@volcengine/veplayer 1.9.3-rc.2 → 1.9.3-rc.3

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/plugin/dash.js CHANGED
@@ -1,2 +1,2 @@
1
- // Built @Mon, 08 Jul 2024 12:37:54 GMT
2
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("core-js/modules/es.array.slice.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.array.concat.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/web.dom-collections.for-each.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.regexp.to-string.js"),require("xgplayer"),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.string.search.js"),require("core-js/modules/es.array.includes.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.typed-array.of.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/es.typed-array.uint8-array.js"),require("core-js/modules/es.typed-array.copy-within.js"),require("core-js/modules/es.typed-array.every.js"),require("core-js/modules/es.typed-array.fill.js"),require("core-js/modules/es.typed-array.filter.js"),require("core-js/modules/es.typed-array.find.js"),require("core-js/modules/es.typed-array.find-index.js"),require("core-js/modules/es.typed-array.for-each.js"),require("core-js/modules/es.typed-array.includes.js"),require("core-js/modules/es.typed-array.index-of.js"),require("core-js/modules/es.typed-array.iterator.js"),require("core-js/modules/es.typed-array.join.js"),require("core-js/modules/es.typed-array.last-index-of.js"),require("core-js/modules/es.typed-array.map.js"),require("core-js/modules/es.typed-array.reduce.js"),require("core-js/modules/es.typed-array.reduce-right.js"),require("core-js/modules/es.typed-array.reverse.js"),require("core-js/modules/es.typed-array.set.js"),require("core-js/modules/es.typed-array.slice.js"),require("core-js/modules/es.typed-array.some.js"),require("core-js/modules/es.typed-array.sort.js"),require("core-js/modules/es.typed-array.subarray.js"),require("core-js/modules/es.typed-array.to-locale-string.js"),require("core-js/modules/es.typed-array.to-string.js"),require("core-js/modules/es.array-buffer.constructor.js"),require("core-js/modules/es.string.replace.js"),require("core-js/modules/es.array.join.js"),require("core-js/modules/es.number.constructor.js"),require("core-js/modules/es.number.to-fixed.js"),require("core-js/modules/es.promise.finally.js"),require("core-js/modules/es.string.match.js"),require("core-js/modules/es.array.sort.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.number.is-finite.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/web.url.js"),require("core-js/modules/web.url-search-params.js"),require("core-js/modules/es.string.includes.js"),require("core-js/modules/es.array.splice.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.object.values.js"),require("core-js/modules/es.string.split.js"),require("core-js/modules/es.map.js"),require("core-js/modules/esnext.map.delete-all.js"),require("core-js/modules/esnext.map.every.js"),require("core-js/modules/esnext.map.filter.js"),require("core-js/modules/esnext.map.find.js"),require("core-js/modules/esnext.map.find-key.js"),require("core-js/modules/esnext.map.includes.js"),require("core-js/modules/esnext.map.key-of.js"),require("core-js/modules/esnext.map.map-keys.js"),require("core-js/modules/esnext.map.map-values.js"),require("core-js/modules/esnext.map.merge.js"),require("core-js/modules/esnext.map.reduce.js"),require("core-js/modules/esnext.map.some.js"),require("core-js/modules/esnext.map.update.js"),require("core-js/modules/es.number.is-nan.js"),require("core-js/modules/es.string.repeat.js"),require("core-js/modules/es.array.find.js"),require("core-js/modules/es.typed-array.int32-array.js")):"function"==typeof define&&define.amd?define(["core-js/modules/es.array.slice.js","core-js/modules/es.array.map.js","core-js/modules/es.array.concat.js","core-js/modules/es.object.assign.js","core-js/modules/es.object.to-string.js","core-js/modules/web.dom-collections.for-each.js","core-js/modules/es.object.keys.js","core-js/modules/es.regexp.to-string.js","xgplayer","core-js/modules/es.regexp.exec.js","core-js/modules/es.string.search.js","core-js/modules/es.array.includes.js","core-js/modules/es.promise.js","core-js/modules/es.typed-array.of.js","core-js/modules/es.array.iterator.js","core-js/modules/es.typed-array.uint8-array.js","core-js/modules/es.typed-array.copy-within.js","core-js/modules/es.typed-array.every.js","core-js/modules/es.typed-array.fill.js","core-js/modules/es.typed-array.filter.js","core-js/modules/es.typed-array.find.js","core-js/modules/es.typed-array.find-index.js","core-js/modules/es.typed-array.for-each.js","core-js/modules/es.typed-array.includes.js","core-js/modules/es.typed-array.index-of.js","core-js/modules/es.typed-array.iterator.js","core-js/modules/es.typed-array.join.js","core-js/modules/es.typed-array.last-index-of.js","core-js/modules/es.typed-array.map.js","core-js/modules/es.typed-array.reduce.js","core-js/modules/es.typed-array.reduce-right.js","core-js/modules/es.typed-array.reverse.js","core-js/modules/es.typed-array.set.js","core-js/modules/es.typed-array.slice.js","core-js/modules/es.typed-array.some.js","core-js/modules/es.typed-array.sort.js","core-js/modules/es.typed-array.subarray.js","core-js/modules/es.typed-array.to-locale-string.js","core-js/modules/es.typed-array.to-string.js","core-js/modules/es.array-buffer.constructor.js","core-js/modules/es.string.replace.js","core-js/modules/es.array.join.js","core-js/modules/es.number.constructor.js","core-js/modules/es.number.to-fixed.js","core-js/modules/es.promise.finally.js","core-js/modules/es.string.match.js","core-js/modules/es.array.sort.js","core-js/modules/es.array.filter.js","core-js/modules/es.number.is-finite.js","core-js/modules/es.string.iterator.js","core-js/modules/web.dom-collections.iterator.js","core-js/modules/web.url.js","core-js/modules/web.url-search-params.js","core-js/modules/es.string.includes.js","core-js/modules/es.array.splice.js","core-js/modules/es.function.name.js","core-js/modules/es.object.values.js","core-js/modules/es.string.split.js","core-js/modules/es.map.js","core-js/modules/esnext.map.delete-all.js","core-js/modules/esnext.map.every.js","core-js/modules/esnext.map.filter.js","core-js/modules/esnext.map.find.js","core-js/modules/esnext.map.find-key.js","core-js/modules/esnext.map.includes.js","core-js/modules/esnext.map.key-of.js","core-js/modules/esnext.map.map-keys.js","core-js/modules/esnext.map.map-values.js","core-js/modules/esnext.map.merge.js","core-js/modules/esnext.map.reduce.js","core-js/modules/esnext.map.some.js","core-js/modules/esnext.map.update.js","core-js/modules/es.number.is-nan.js","core-js/modules/es.string.repeat.js","core-js/modules/es.array.find.js","core-js/modules/es.typed-array.int32-array.js"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).DashPlugin=t(null,null,null,null,null,null,null,null,e.Player)}(this,(function(e,t,n,U,F,Q,i,l,r){"use strict";function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);t&&(U=U.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,U)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){h(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(){o=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",l=F.toStringTag||"@@toStringTag";function r(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{r({},"")}catch(N){r=function(e,t,n){return e[t]=n}}function a(e,t,n,F){var Q=t&&t.prototype instanceof B?t:B,i=Object.create(Q.prototype),l=new E(F||[]);return U(i,"_invoke",{value:J(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(N){return{type:"throw",arg:N}}}e.wrap=a;var s={};function B(){}function c(){}function R(){}var V={};r(V,Q,(function(){return this}));var u=Object.getPrototypeOf,h=u&&u(u(y([])));h&&h!==t&&n.call(h,Q)&&(V=h);var Z=R.prototype=B.prototype=Object.create(V);function S(e){["next","throw","return"].forEach((function(t){r(e,t,(function(e){return this._invoke(t,e)}))}))}function p(e,t){function F(U,Q,i,l){var r=d(e[U],e,Q);if("throw"!==r.type){var a=r.arg,o=a.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,l)}),(function(e){F("throw",e,i,l)})):t.resolve(o).then((function(e){a.value=e,i(a)}),(function(e){return F("throw",e,i,l)}))}l(r.arg)}var Q;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return Q=Q?Q.then(U,U):U()}})}function J(e,t,n){var U="suspendedStart";return function(F,Q){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(n.method=F,n.arg=Q;;){var i=n.delegate;if(i){var l=m(i,n);if(l){if(l===s)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var r=d(e,t,n);if("normal"===r.type){if(U=n.done?"completed":"suspendedYield",r.arg===s)continue;return{value:r.arg,done:n.done}}"throw"===r.type&&(U="completed",n.method="throw",n.arg=r.arg)}}}function m(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,m(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),s;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,s;var Q=F.arg;return Q?Q.done?(t[e.resultName]=Q.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,s):Q:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,s)}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 E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function y(e){if(e){var t=e[Q];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:f}}function f(){return{value:void 0,done:!0}}return c.prototype=R,U(Z,"constructor",{value:R,configurable:!0}),U(R,"constructor",{value:c,configurable:!0}),c.displayName=r(R,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===c||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,R):(e.__proto__=R,r(e,l,"GeneratorFunction")),e.prototype=Object.create(Z),e},e.awrap=function(e){return{__await:e}},S(p.prototype),r(p.prototype,i,(function(){return this})),e.AsyncIterator=p,e.async=function(t,n,U,F,Q){void 0===Q&&(Q=Promise);var i=new p(a(t,n,U,F),Q);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},S(Z),r(Z,l,"Generator"),r(Z,Q,(function(){return this})),r(Z,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=y,E.prototype={constructor:E,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(k),!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 U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],i=Q.completion;if("root"===Q.tryLoc)return U("end");if(Q.tryLoc<=this.prev){var l=n.call(Q,"catchLoc"),r=n.call(Q,"finallyLoc");if(l&&r){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}else if(l){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0)}else{if(!r)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=t&&t<=Q.finallyLoc&&(Q=null);var i=Q?Q.completion:{};return i.type=e,i.arg=t,Q?(this.method="next",this.next=Q.finallyLoc,s):this.complete(i)},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),s},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),s}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;k(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:y(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),s}},e}function s(e){return(s="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 B(e,t,n,U,F,Q,i){try{var l=e[Q](i),r=l.value}catch(a){return void n(a)}l.done?t(r):Promise.resolve(r).then(U,F)}function c(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var Q=e.apply(t,n);function i(e){B(Q,U,F,i,l,"next",e)}function l(e){B(Q,U,F,i,l,"throw",e)}i(void 0)}))}}function R(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function V(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,b(U.key),U)}}function u(e,t,n){return t&&V(e.prototype,t),n&&V(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function h(e,t,n){return(t=b(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Z(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&&p(e,t)}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e,t){return(p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function J(e,t){if(null==e)return{};var n,U,F=function(e,t){if(null==e)return{};var n,U,F={},Q=Object.keys(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||(F[n]=e[n]);return F}(e,t);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(F[n]=e[n])}return F}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function W(e){var t=function(){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}}();return function(){var n,U=S(e);if(t){var F=S(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return 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 m(e)}(this,n)}}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var U,F,Q,i,l=[],r=!0,a=!1;try{if(Q=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;r=!1}else for(;!(r=(U=Q.call(n)).done)&&(l.push(U.value),l.length!==t);r=!0);}catch(d){a=!0,F=d}finally{try{if(!r&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(a)throw F}}return l}}(e,t)||y(e,t)||function(){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 E(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||y(e)||function(){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 y(e,t){if(e){if("string"==typeof e)return f(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)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,U=new Array(t);n<t;n++)U[n]=e[n];return U}function N(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=y(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var U=0,F=function(){};return{s:F,n:function(){return U>=e.length?{done:!0}:{done:!1,value:e[U++]}},e:function(e){throw e},f:F}}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 Q,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,Q=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw Q}}}}function b(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var v=function(){function e(){R(this,e)}return u(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(),U=Math.max(16.7-(n-e),0),F=setTimeout(t,U);return e=n+U,F}}window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}}]),e}(),T=function(){function e(){R(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 u(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(){v.install()}}]),e}(),C=function(){function e(){R(this,e),this.timeID=null,this.func=null}return u(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}(),g=D&&!function(){var e="_localstorage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(t){return!0}}();function D(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}var X={length:g?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(U){}},getItem:function(e){try{return localStorage.getItem(e)}catch(t){return null}},key:function(e){try{return localStorage.key(e)}catch(t){return null}},setItem:function(e,t){try{localStorage.setItem(e,t)}catch(n){}},removeItem:function(e){try{localStorage.removeItem(e)}catch(t){}},isSupport:g},x=function(){function e(){var t,n;R(this,e);var U=new Promise((function(e,U){t=e,n=U}));return U.resolve=t,U.reject=n,U}return u(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),L=function(){function e(){R(this,e)}return u(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(U){t=null}return t}},{key:"parseDOMChildren",value:function(t,n){if(t.nodeType===Node.DOCUMENT_NODE){for(var U={},F=t.childNodes,Q=0;Q<F.length;Q++){var i=F[Q];i.nodeType===Node.ELEMENT_NODE&&(U=e.parseDOMChildren(i))}return U}if(t.nodeType===Node.ELEMENT_NODE){for(var l={__cnt:0},r=[],a=t.childNodes,d=0;d<a.length;d++){var o=a[d],s=e.getNodeLocalName(o);if(o.nodeType!==Node.COMMENT_NODE){var B="".concat(n,".").concat(s);if(l.__cnt++,null==l[s]){var c=e.parseDOMChildren(o,B);if("#text"!==s||/[^\s]/.test(c)){var R={};R[s]=c,r.push(R)}l[s]=c,e.toArrayAccessForm(l,s)}else{null!=l[s]&&(l[s]instanceof Array||(l[s]=[l[s]],e.toArrayAccessForm(l,s,B)));var V=e.parseDOMChildren(o,B);if("#text"!==s||/[^\s]/.test(V)){var u={};u[s]=V,r.push(u)}l[s][l[s].length]=V}}}for(var h=0;h<t.attributes.length;h++){var Z=t.attributes[h];l.__cnt++;var S=Z.value;l[Z.name]=S}var p=t.prefix;return null!=p&&""!==p&&(l.__cnt++,l.__prefix=p),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 I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);t&&(U=U.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,U)}return n}function G(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach((function(t){P(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function M(){M=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",l=F.toStringTag||"@@toStringTag";function r(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{r({},"")}catch(f){r=function(e,t,n){return e[t]=n}}function a(e,t,n,F){var Q=t&&t.prototype instanceof s?t:s,i=Object.create(Q.prototype),l=new k(F||[]);return U(i,"_invoke",{value:p(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(f){return{type:"throw",arg:f}}}e.wrap=a;var o={};function s(){}function B(){}function c(){}var R={};r(R,Q,(function(){return this}));var V=Object.getPrototypeOf,u=V&&V(V(E([])));u&&u!==t&&n.call(u,Q)&&(R=u);var h=c.prototype=s.prototype=Object.create(R);function Z(e){["next","throw","return"].forEach((function(t){r(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function F(U,Q,i,l){var r=d(e[U],e,Q);if("throw"!==r.type){var a=r.arg,o=a.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,l)}),(function(e){F("throw",e,i,l)})):t.resolve(o).then((function(e){a.value=e,i(a)}),(function(e){return F("throw",e,i,l)}))}l(r.arg)}var Q;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return Q=Q?Q.then(U,U):U()}})}function p(e,t,n){var U="suspendedStart";return function(F,Q){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(n.method=F,n.arg=Q;;){var i=n.delegate;if(i){var l=J(i,n);if(l){if(l===o)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var r=d(e,t,n);if("normal"===r.type){if(U=n.done?"completed":"suspendedYield",r.arg===o)continue;return{value:r.arg,done:n.done}}"throw"===r.type&&(U="completed",n.method="throw",n.arg=r.arg)}}}function J(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,J(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),o;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,o;var Q=F.arg;return Q?Q.done?(t[e.resultName]=Q.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):Q:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}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 W(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function E(e){if(e){var t=e[Q];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return B.prototype=c,U(h,"constructor",{value:c,configurable:!0}),U(c,"constructor",{value:B,configurable:!0}),B.displayName=r(c,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,r(e,l,"GeneratorFunction")),e.prototype=Object.create(h),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),r(S.prototype,i,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,U,F,Q){void 0===Q&&(Q=Promise);var i=new S(a(t,n,U,F),Q);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},Z(h),r(h,l,"Generator"),r(h,Q,(function(){return this})),r(h,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=E,k.prototype={constructor:k,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(W),!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 U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],i=Q.completion;if("root"===Q.tryLoc)return U("end");if(Q.tryLoc<=this.prev){var l=n.call(Q,"catchLoc"),r=n.call(Q,"finallyLoc");if(l&&r){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}else if(l){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0)}else{if(!r)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=t&&t<=Q.finallyLoc&&(Q=null);var i=Q?Q.completion:{};return i.type=e,i.arg=t,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(i)},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),o},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),W(n),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;W(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),o}},e}function Y(e){return(Y="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 w(e,t,n,U,F,Q,i){try{var l=e[Q](i),r=l.value}catch(a){return void n(a)}l.done?t(r):Promise.resolve(r).then(U,F)}function K(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var Q=e.apply(t,n);function i(e){w(Q,U,F,i,l,"next",e)}function l(e){w(Q,U,F,i,l,"throw",e)}i(void 0)}))}}function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function j(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,le(U.key),U)}}function H(e,t,n){return t&&j(e.prototype,t),n&&j(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function P(e,t,n){return(t=le(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z(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&&A(e,t)}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function A(e,t){return(A=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function q(){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 $(e,t,n){return($=q()?Reflect.construct.bind():function(e,t,n){var U=[null];U.push.apply(U,t);var F=new(Function.bind.apply(e,U));return n&&A(F,n.prototype),F}).apply(null,arguments)}function ee(e){var t="function"==typeof Map?new Map:void 0;return ee=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;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,U)}function U(){return $(e,arguments,O(this).constructor)}return U.prototype=Object.create(e.prototype,{constructor:{value:U,enumerable:!1,writable:!0,configurable:!0}}),A(U,e)},ee(e)}function te(e,t){if(null==e)return{};var n,U,F=function(e,t){if(null==e)return{};var n,U,F={},Q=Object.keys(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||(F[n]=e[n]);return F}(e,t);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(F[n]=e[n])}return F}function ne(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ue(e){var t=q();return function(){var n,U=O(e);if(t){var F=O(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return 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 ne(e)}(this,n)}}function Fe(){return Fe="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var U=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=O(e)););return e}(e,t);if(U){var F=Object.getOwnPropertyDescriptor(U,t);return F.get?F.get.call(arguments.length<3?e:n):F.value}},Fe.apply(this,arguments)}function Qe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,U=new Array(t);n<t;n++)U[n]=e[n];return U}function ie(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Qe(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)?Qe(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var U=0,F=function(){};return{s:F,n:function(){return U>=e.length?{done:!0}:{done:!1,value:e[U++]}},e:function(e){throw e},f:F}}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 Q,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,Q=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw Q}}}}function le(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}Promise.withResolvers||(Promise.withResolvers=function(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e});var re,ae=function(){function e(){_(this,e)}return H(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(t){}}},{key:"buffers",value:function(e,t){if(!e||!e.length)return[];for(var n=[],U=0,F=e.length;U<F;U++){var Q=n.length;if(Q&&t){var i=n[Q-1],l=i[1];if(e.start(U)-l<=t){var r=e.end(U);r>l&&(i[1]=r)}else n.push([e.start(U),e.end(U)])}else n.push([e.start(U),e.end(U)])}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,U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!t||!t.length)return{start:0,end:0,buffers:[]};for(var F=0,Q=0,i=0,l=0,r=0,a=0,d=0,o=e.buffers(t,U),s=0,B=o.length;s<B;s++){var c=o[s];if(n+U>=c[0]&&n<=c[1])F=c[0],Q=c[1],i=s;else{if(n+U<c[0]){l=c[0],r=c[1];break}n+U>c[1]&&(a=c[0],d=c[1])}}return{start:F,end:Q,index:i,buffers:o,nextStart:l,nextEnd:r,prevStart:a,prevEnd:d,currentTime:n,behind:n-F,remaining:Q?Q-n:0,length:e.totalLength&&e.totalLength(o)}}}]),e}(),de="undefined"!=typeof window,oe="manifest",se="network",Be="network_timeout",ce="network_forbidden",Re="network_notfound",Ve="network_range_not_satisfiable",ue="demux",he="remux",Ze="media",Se="drm",pe="other",Je="runtime",me={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"},We=(P(re={},oe,{HLS:1100,DASH:1200}),P(re,se,2100),P(re,Be,2101),P(re,ce,2103),P(re,Re,2104),P(re,Ve,2116),P(re,ue,{FLV:3100,HLS:3200,MP4:3300,FMP4:3400,SIDX:3410}),P(re,he,{FMP4:4100,MP4:4200}),P(re,Ze,{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}),P(re,Se,{LICENSE:7100,CUSTOM_LICENSE:7200}),P(re,pe,8e3),P(re,Je,{NO_CANPLAY_ERROR:9001,BUFFERBREAK_ERROR:9002,WAITING_TIMEOUT_ERROR:9003}),re),ke=function(e){z(n,e);var t=Ue(n);function n(e,U,F,Q,i){var l;return _(this,n),(l=t.call(this,i||(null==F?void 0:F.message))).errorType=e===Be?se:e,l.originError=F,l.ext=Q,l.errorCode=We[e][U]||We[e],l.errorMessage=l.message,l.errorCode||(l.errorType=pe,l.errorCode=We[l.errorType]),l}return H(n,null,[{key:"create",value:function(e,t,U,F,Q){return e instanceof n?e:(e instanceof Error&&(U=e,e=""),e||(e=pe),new n(e,t,U,F,Q))}},{key:"network",value:function(e){var t;return new n(null!=e&&e.isTimeout?Be:se,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}(ee(Error)),Ee={DEBUG:1,LOG:2,WARN:3,ERROR:4},ye=["Boolean","Number","String","Undefined","Null","Date","Object"],fe=function(){function e(t,n){_(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)||204800,this.logSize=0,this.logTextArray=[]}return H(e,[{key:"debug",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Ee.DEBUG].concat(U)),e.disabled||(t=console).debug.apply(t,[this._prefix,Ne()].concat(U))}},{key:"log",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Ee.LOG].concat(U)),e.disabled||(t=console).log.apply(t,[this._prefix,Ne()].concat(U))}},{key:"warn",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Ee.WARN].concat(U)),e.disabled||(t=console).warn.apply(t,[this._prefix,Ne()].concat(U))}},{key:"error",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Ee.ERROR].concat(U)),e.disabled||(t=console).error.apply(t,[this._prefix,Ne()].concat(U))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];var Q=U.map((function(e){return ve(e)}));t=this._prefix+Ne()+JSON.stringify(Q)}catch(l){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var i=this.logTextArray.shift();this.logSize-=i.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 Ne(){return(new Date).toLocaleString()}function be(e){if("object"!==Y(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 ve(e,t,n){n||(n=1),t||(t=2);var U={};if(!e||"object"!==Y(e))return e;var F=Object.prototype.toString.call(e).slice(8,-1);if(!ye.includes(F))return F;if(!(n>t)){for(var Q in e)Object.prototype.hasOwnProperty.call(e,Q)&&(n===t?U[Q]=be(e[Q]):"object"===Y(e[Q])?U[Q]=ve(e[Q],t,n+1):U[Q]=e[Q]);return U}}function Te(){var e,t,n=new Promise((function(n,U){e=n,t=U}));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 Ce(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}}P(fe,"disabled",!0);var ge=function(e){try{return JSON.stringify(e)}catch(t){return""}};function De(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];try{return de?e&&"undefined"!=typeof ManagedMediaSource?ManagedMediaSource:window.MediaSource:null}catch(t){}}function Xe(e){return/ManagedMediaSource/gi.test(Object.prototype.toString.call(e))}var xe="appendBuffer",Le="removeBuffer",Ie="updateDuration",Ge=function(){function e(t,n){var U=this;_(this,e),P(this,"media",null),P(this,"mediaSource",null),P(this,"_openPromise",Te()),P(this,"_queue",Object.create(null)),P(this,"_sourceBuffer",Object.create(null)),P(this,"_mseFullFlag",{}),P(this,"_st",0),P(this,"_opst",0),P(this,"_logger",null),P(this,"_config",null),P(this,"_url",null),P(this,"_onStartStreaming",(function(){U._logger.debug("startstreaming")})),P(this,"_onEndStreaming",(function(){U._logger.debug("endstreaming")})),P(this,"_onSBUpdateEnd",(function(e){var t=U._queue[e];if(t){var n=t[0];if((null==n?void 0:n.opName)!==Ie&&t.shift(),n){var F,Q,i=Ce()-U._opst;U._logger.debug("UpdateEnd(".concat(e,"/").concat(n.opName,")"),ge(function(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}(null===(F=U._sourceBuffer[e])||void 0===F?void 0:F.buffered)),i,n.context),n.promise.resolve({name:n.opName,context:n.context,costtime:i});var l=null===(Q=n.context)||void 0===Q?void 0:Q.callback;l&&"function"==typeof l&&l(n.context),U._startQueue(e)}}})),P(this,"_onSBUpdateError",(function(e,t){var n=U._queue[e];if(n){var F=n[0];F&&(U._logger.error("UpdateError",e,F.opName,F.context),F.promise.reject(new ke(Ze,me.MSE_APPEND_BUFFER,t)))}})),this._config=Object.assign(e.getDefaultConfig(),n),t&&this.bindMedia(t),this._logger=new fe("MSE"),this._config.openLog&&fe.enable()}var t,n,U;return H(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 U=e._queue[n];Array.isArray(U)&&(t||(t=U.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!Xe(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 U=0;if(Object.keys(this._sourceBuffer).forEach((function(e){try{U=Math.max(t.bufferEnd(e)||0,U)}catch(n){}})),e<U)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))}),Ie,{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 U=Ce()-e._st;e._logger.debug("sourceopen",U),t.removeEventListener("sourceopen",n),e._openPromise.resolve({costtime:U})})),this._openPromise=Te()}return this._openPromise}},{key:"bindMedia",value:(U=K(M().mark((function e(t){var n,U,F,Q,i=this;return M().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=De(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,U=this.mediaSource=new n,F=Xe(U),this._st=Ce(),Q=function e(){var n=Ce()-i._st;i._logger.debug("sourceopen"),U.removeEventListener("sourceopen",e),URL.revokeObjectURL(t.src),i._openPromise.resolve({costtime:n})},U.addEventListener("sourceopen",Q),F&&(U.addEventListener("startstreaming",this._onStartStreaming),U.addEventListener("endstreaming",this._onEndStreaming)),this._url=URL.createObjectURL(U),t.src=this._url,t.disableRemotePlayback=F,e.abrupt("return",this._openPromise);case 17:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"unbindMedia",value:(n=K(M().mark((function e(){var t,n,U,F=this;return M().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=F._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,U="open"===t.readyState,n&&U)try{t.endOfStream()}catch(Q){}Object.keys(this._sourceBuffer).forEach((function(e){try{t.removeSourceBuffer(F._sourceBuffer[e])}catch(Q){}})),Xe(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(Q){}this.media=null}this.mediaSource=null,this._openPromise=Te(),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(U){throw new ke(Ze,me.MSE_ADD_SB,U)}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,U=this._sourceBuffer[e];return this.mediaSource&&U&&U.mimeType!==t?"function"!=typeof U.changeType?Promise.reject(new ke(Ze,me.MSE_CHANGE_TYPE,new Error("changeType is not a function"))):this._enqueueOp(e,(function(){try{U.changeType(t)}catch(F){throw new ke(Ze,me.MSE_CHANGE_TYPE,F)}U.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 U=this;return t&&t.byteLength&&this._sourceBuffer[e]?this._enqueueOp(e,(function(){var F;U.mediaSource&&!U.media.error&&(U._logger.debug("MSE APPEND START",n),U._opst=Ce(),null===(F=U._sourceBuffer[e])||void 0===F||F.appendBuffer(t))}),xe,n):Promise.resolve()}},{key:"remove",value:function(e,t,n,U){var F=this,Q=!1;return this._mseFullFlag[e]&&(Q=!0),this._enqueueOp(e,(function(){if(F.mediaSource&&!F.media.error){var Q=F._sourceBuffer[e];t>=n||!Q?F._onSBUpdateEnd(e):(F._opst=Ce(),F._logger.debug("MSE REMOVE START",e,t,n,U),Q.remove(t,n))}}),Le,U,Q)}},{key:"clearBuffer",value:function(e,t){var n,U=this;return Object.keys(this._sourceBuffer).forEach((function(F){n=U.remove(F,e,t)})),n||Promise.resolve()}},{key:"clearAllBuffer",value:function(){var e,t=this;return Object.keys(this._sourceBuffer).forEach((function(n){var U=t._sourceBuffer[n];e=t.remove(n,0,ae.end(ae.get(U)))})),e}},{key:"clearOpQueues",value:function(e,t){var n;this._logger.debug("MSE clearOpQueue START");var U=this._queue[e];if(t&&U)this._queue[e]=[];else if(U&&U[e]&&!(U.length<5)){var F=[];U.forEach((function(e){e.context&&e.context.isinit&&F.push(e)})),this._queue[e]=U.slice(0,2),F.length>0&&(n=this._queue[e]).push.apply(n,F)}}},{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 ae.get(this._sourceBuffer[e])}},{key:"bufferStart",value:function(e){return ae.start(this.buffered(e))}},{key:"bufferEnd",value:function(e){return ae.end(this.buffered(e))}},{key:"_enqueueOp",value:function(e,t,n,U,F){var Q=this;if(!this.mediaSource)return Promise.resolve();var i=this._queue[e]=this._queue[e]||[],l={exec:t,promise:Te(),opName:n,context:U};return F?(i.splice(0,0,l),this._mseFullFlag[e]=!1,this._startQueue(e)):i.push(l),this.isOpened||this.isEnded?1===i.length&&this._startQueue(e):this._openPromise.then((function(){1===i.length&&Q._startQueue(e)})),l.promise}},{key:"_enqueueBlockingOp",value:(t=K(M().mark((function e(t,n,U){var F,Q,i=this;return M().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((F=Object.keys(this._sourceBuffer)).length){e.next=5;break}return e.abrupt("return",t());case 5:return Q=[],F.forEach((function(e){var t=i._queue[e],F=Te();Q.push(F),t.push({exec:function(){F.resolve()},promise:F,opName:n,context:U}),1===t.length&&i._startQueue(e)})),e.abrupt("return",Promise.all(Q).then((function(){try{return t()}finally{F.forEach((function(e){var t=i._queue[e],n=i._sourceBuffer[e];null==t||t.shift(),n&&n.updating||i._startQueue(e)}))}})));case 8:case"end":return e.stop()}}),e,this)}))),function(e,n,U){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(U){U&&U.message&&U.message.indexOf("SourceBuffer is full")>=0?(this._mseFullFlag[e]=!0,n.context&&"object"===Y(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 ke(Ze,me.MSE_FULL,U))):(this._logger.error(U),n.promise.reject(U.constructor===ke?U:new ke(Ze,me.MSE_OTHER,U)),t.shift(),this._startQueue(e))}}}},{key:"setTimeoffset",value:function(e,t,n){var U=this;return this._enqueueOp(e,(function(){t<0&&(t+=.001),U._sourceBuffer[e].timestampOffset=t,U._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=De();if(!t)return!1;try{return t.isTypeSupported(e)}catch(n){return this._logger.error(e,n),!1}}},{key:"isMMSOnly",value:function(){return"undefined"!=typeof ManagedMediaSource&&"undefined"==typeof MediaSource}},{key:"getDefaultConfig",value:function(){return{openLog:!1,preferMMS:!1}}}]),e}();P(Ge,"VIDEO","video"),P(Ge,"AUDIO","audio");var Me="fetch",Ye="xhr",we="arraybuffer",Ke="text",_e="json",je=function(e){z(n,e);var t=Ue(n);function n(e,U,F,Q){var i;return _(this,n),P(ne(i=t.call(this,Q)),"retryCount",0),P(ne(i),"isTimeout",!1),P(ne(i),"loaderType",Me),P(ne(i),"startTime",0),P(ne(i),"endTime",0),P(ne(i),"options",{}),i.url=e,i.request=U,i.response=F,i}return H(n)}(ee(Error)),He=Object.prototype.toString;function Pe(e){if("[object Object]"!==He.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function ze(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 Oe(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Ae(e,t){if(e){if(!t)return e;var n,U=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){var n;return n=t,"[object Date]"===He.call(n)?t=t.toISOString():function(e){return null!==e&&"object"===Y(e)}(t)&&(t=JSON.stringify(t)),"".concat(Oe(e),"=").concat(Oe(t))})).join("&")})).filter(Boolean).join("&");if(U){var F=e.indexOf("#");-1!==F&&(e=e.slice(0,F)),e+=(-1===e.indexOf("?")?"?":"&")+U}return e}}function qe(e,t,n,U,F,Q,i,l,r,a,d){return F=null!=F?parseFloat(F):null,U=parseInt(U||"0",10),Number.isNaN(U)&&(U=0),{data:e,done:t,options:{range:r,vid:a,index:l,contentLength:U,age:F,startTime:Q,firstByteTime:i,endTime:Date.now(),priOptions:d},response:n}}function $e(e,t){return Math.round(8*e*1e3/t/1024)}var et="error",tt="real_time_speed",nt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Ut(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ft={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function U(){}function F(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function Q(e,t,U,Q,i){if("function"!=typeof U)throw new TypeError("The listener must be a function");var l=new F(U,Q||e,i),r=n?n+t:t;return e._events[r]?e._events[r].fn?e._events[r]=[e._events[r],l]:e._events[r].push(l):(e._events[r]=l,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new U:delete e._events[t]}function l(){this._events=new U,this._eventsCount=0}Object.create&&(U.prototype=Object.create(null),(new U).__proto__||(n=!1)),l.prototype.eventNames=function(){var e,U,F=[];if(0===this._eventsCount)return F;for(U in e=this._events)t.call(e,U)&&F.push(n?U.slice(1):U);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(e)):F},l.prototype.listeners=function(e){var t=n?n+e:e,U=this._events[t];if(!U)return[];if(U.fn)return[U.fn];for(var F=0,Q=U.length,i=new Array(Q);F<Q;F++)i[F]=U[F].fn;return i},l.prototype.listenerCount=function(e){var t=n?n+e:e,U=this._events[t];return U?U.fn?1:U.length:0},l.prototype.emit=function(e,t,U,F,Q,i){var l=n?n+e:e;if(!this._events[l])return!1;var r,a,d=this._events[l],o=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),o){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,U),!0;case 4:return d.fn.call(d.context,t,U,F),!0;case 5:return d.fn.call(d.context,t,U,F,Q),!0;case 6:return d.fn.call(d.context,t,U,F,Q,i),!0}for(a=1,r=new Array(o-1);a<o;a++)r[a-1]=arguments[a];d.fn.apply(d.context,r)}else{var s,B=d.length;for(a=0;a<B;a++)switch(d[a].once&&this.removeListener(e,d[a].fn,void 0,!0),o){case 1:d[a].fn.call(d[a].context);break;case 2:d[a].fn.call(d[a].context,t);break;case 3:d[a].fn.call(d[a].context,t,U);break;case 4:d[a].fn.call(d[a].context,t,U,F);break;default:if(!r)for(s=1,r=new Array(o-1);s<o;s++)r[s-1]=arguments[s];d[a].fn.apply(d[a].context,r)}}return!0},l.prototype.on=function(e,t,n){return Q(this,e,t,n,!1)},l.prototype.once=function(e,t,n){return Q(this,e,t,n,!0)},l.prototype.removeListener=function(e,t,U,F){var Q=n?n+e:e;if(!this._events[Q])return this;if(!t)return i(this,Q),this;var l=this._events[Q];if(l.fn)l.fn!==t||F&&!l.once||U&&l.context!==U||i(this,Q);else{for(var r=0,a=[],d=l.length;r<d;r++)(l[r].fn!==t||F&&!l[r].once||U&&l[r].context!==U)&&a.push(l[r]);a.length?this._events[Q]=1===a.length?a[0]:a:i(this,Q)}return this},l.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new U,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}(Ft);var Qt=Ut(Ft.exports),it=2097152,lt=function(e){z(U,e);var t,n=Ue(U);function U(){var e;return _(this,U),P(ne(e=n.call(this)),"_abortController",null),P(ne(e),"_timeoutTimer",null),P(ne(e),"_reader",null),P(ne(e),"_response",null),P(ne(e),"_aborted",!1),P(ne(e),"_index",-1),P(ne(e),"_range",null),P(ne(e),"_receivedLength",0),P(ne(e),"_running",!1),P(ne(e),"_logger",null),P(ne(e),"_vid",""),P(ne(e),"_onProcessMinLen",0),P(ne(e),"_onCancel",null),P(ne(e),"_priOptions",null),e}return H(U,[{key:"load",value:function(e){var t,n=this,U=e.url,F=e.vid,Q=e.timeout,i=e.responseType,l=e.onProgress,r=e.index,a=e.onTimeout,d=e.onCancel,o=e.range,s=e.transformResponse,B=e.request,c=e.params,R=e.logger,V=e.method,u=e.headers,h=e.body,Z=e.mode,S=e.credentials,p=e.cache,J=e.redirect,m=e.referrer,W=e.referrerPolicy,k=e.onProcessMinLen,E=e.priOptions;this._logger=R,this._aborted=!1,this._onProcessMinLen=k,this._onCancel=d,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=r,this._range=o||[0,0],this._vid=F||U,this._priOptions=E||{};var y={method:V,headers:u,body:h,mode:Z,credentials:S,cache:p,redirect:J,referrer:m,referrerPolicy:W,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},f=!1;clearTimeout(this._timeoutTimer),U=Ae(U,c);var N=ze(o);N&&(u=B?B.headers:y.headers=y.headers||(Headers?new Headers:{}),Headers&&u instanceof Headers?u.append("Range",N):u.Range=N),Q&&(this._timeoutTimer=setTimeout((function(){if(f=!0,n.cancel(),a){var e=new je(U,y,null,"timeout");e.isTimeout=!0,a(e,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions})}}),Q));var b=Date.now();return this._logger.debug("[fetch load start], index,",r,",range,",o),new Promise((function(e,t){fetch(B||U,B?void 0:y).then(function(){var F=K(M().mark((function F(Q){var a,d,B,c;return M().wrap((function(F){for(;;)switch(F.prev=F.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=Q,!n._aborted&&n._running){F.next=4;break}return F.abrupt("return");case 4:if(s&&(Q=s(Q,U)||Q),Q.ok){F.next=7;break}throw new je(U,y,Q,"bad network response");case 7:if(a=Date.now(),i!==Ke){F.next=15;break}return F.next=11,Q.text();case 11:d=F.sent,n._running=!1,F.next=37;break;case 15:if(i!==_e){F.next=22;break}return F.next=18,Q.json();case 18:d=F.sent,n._running=!1,F.next=37;break;case 22:if(!l){F.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(Q,l,b,a),F.abrupt("return");case 29:return F.next=31,Q.arrayBuffer();case 31:d=F.sent,d=new Uint8Array(d),n._running=!1,B=Date.now()-b,c=$e(d.byteLength,B),n.emit(tt,{speed:c,len:d.byteLength,time:B,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",r,",range,",o),e(qe(d,!0,Q,Q.headers.get("Content-Length"),Q.headers.get("age"),b,a,r,o,n._vid,n._priOptions));case 39:case"end":return F.stop()}}),F)})));return function(e){return F.apply(this,arguments)}}()).catch((function(e){var F;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!f||((e=e instanceof je?e:new je(U,y,null,null===(F=e)||void 0===F?void 0:F.message)).startTime=b,e.endTime=Date.now(),e.isTimeout=f,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=K(M().mark((function e(){return M().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(t){}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,U){var F=this;if(!e.body||!e.body.getReader){this._running=!1;var Q=new je(e.url,"",e,"onProgress of bad response.body.getReader");return Q.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(Q)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(it),this._writeIdx=0);var i,l,r,a=this._reader=e.body.getReader(),d=function(){var Q=K(M().mark((function Q(){var o,s,B,c,R,V,u,h;return M().wrap((function(Q){for(;;)switch(Q.prev=Q.next){case 0:return l=Date.now(),Q.prev=1,Q.next=4,a.read();case 4:i=Q.sent,r=Date.now(),Q.next=13;break;case 8:return Q.prev=8,Q.t0=Q.catch(1),r=Date.now(),F._aborted||(F._running=!1,Q.t0.options={index:F._index,range:F._range,vid:F._vid,priOptions:F._priOptions},F.reject(Q.t0)),Q.abrupt("return");case 13:if(s=(null===(o=F._range)||void 0===o?void 0:o.length)>0?F._range[0]:0,B=s+F._receivedLength,!F._aborted){Q.next=19;break}return F._running=!1,t(void 0,!1,{range:[B,B],vid:F._vid,index:F._index,startTime:l,endTime:r,st:n,firstByteTime:U,priOptions:F._priOptions},e),Q.abrupt("return");case 19:c=i.value?i.value.byteLength:0,F._receivedLength+=c,F._logger.debug("【fetchLoader,onProgress call】,task,",F._range,", start,",B,", end,",s+F._receivedLength,", done,",i.done),F._onProcessMinLen>0?F._writeIdx+c>=F._onProcessMinLen||i.done?((R=new Uint8Array(F._writeIdx+c)).set(F._cache.slice(0,F._writeIdx),0),c>0&&R.set(i.value,F._writeIdx),F._writeIdx=0,F._logger.debug("【fetchLoader,onProgress enough】,done,",i.done,",len,",R.byteLength,", writeIdx,",F._writeIdx)):c>0&&F._writeIdx+c<it?(F._cache.set(i.value,F._writeIdx),F._writeIdx+=c,F._logger.debug("【fetchLoader,onProgress cache】,len,",c,", writeIdx,",F._writeIdx)):c>0&&(V=new Uint8Array(F._writeIdx+c+2048),F._logger.debug("【fetchLoader,onProgress extra start】,size,",F._writeIdx+c+2048,", datalen,",c,", writeIdx,",F._writeIdx),V.set(F._cache.slice(0,F._writeIdx),0),c>0&&V.set(i.value,F._writeIdx),F._writeIdx+=c,delete F._cache,F._cache=V,F._logger.debug("【fetchLoader,onProgress extra end】,len,",c,", writeIdx,",F._writeIdx)):R=i.value,(R&&R.byteLength>0||i.done)&&t(R,i.done,{range:[F._range[0]+F._receivedLength-(R?R.byteLength:0),F._range[0]+F._receivedLength],vid:F._vid,index:F._index,startTime:l,endTime:r,st:n,firstByteTime:U,priOptions:F._priOptions},e),i.done?(u=Date.now()-n,h=$e(F._receivedLength,u),F.emit(tt,{speed:h,len:F._receivedLength,time:u,vid:F._vid,index:F._index,range:F._range,priOptions:F._priOptions}),F._running=!1,F._logger.debug("[fetchLoader onProgress end],task,",F._range,",done,",i.done),F.resolve(qe(i,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,U,F._index,F._range,F._vid,F._priOptions))):d();case 25:case"end":return Q.stop()}}),Q,null,[[1,8]])})));return function(){return Q.apply(this,arguments)}}();d()}},{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)}}]),U}(Qt);var rt=function(e){z(n,e);var t=Ue(n);function n(){var e;return _(this,n),P(ne(e=t.call(this)),"_xhr",null),P(ne(e),"_aborted",!1),P(ne(e),"_timeoutTimer",null),P(ne(e),"_range",null),P(ne(e),"_receivedLength",0),P(ne(e),"_url",null),P(ne(e),"_onProgress",null),P(ne(e),"_index",-1),P(ne(e),"_headers",null),P(ne(e),"_currentChunkSizeKB",384),P(ne(e),"_timeout",null),P(ne(e),"_xhr",null),P(ne(e),"_withCredentials",null),P(ne(e),"_startTime",-1),P(ne(e),"_loadCompleteResolve",null),P(ne(e),"_loadCompleteReject",null),P(ne(e),"_runing",!1),P(ne(e),"_logger",!1),P(ne(e),"_vid",""),P(ne(e),"_responseType",void 0),P(ne(e),"_credentials",void 0),P(ne(e),"_method",void 0),P(ne(e),"_transformResponse",void 0),P(ne(e),"_firstRtt",void 0),P(ne(e),"_onCancel",null),P(ne(e),"_priOptions",null),e}return H(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=Ae(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 je?e:new je(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===we&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,U=this._range[1];t<this._range[1]-n&&(U=n+t),e=[n,U],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,U,F;t._running=!1;var Q=new je(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(U=e.currentTarget)||void 0===U?void 0:U.status)+",statusText,"+(null==e||null===(F=e.currentTarget)||void 0===F?void 0:F.statusText));Q.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(Q)},n.ontimeout=function(e){t.cancel();var n=new je(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 U=this._headers||{},F=ze(e);F&&(U.Range=F),U&&Object.keys(U).forEach((function(e){n.setRequestHeader(e,U[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(Q){Q.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(Q)}}},{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 U=new je(this._url,null,G(G({},e.target.response),{},{status:n}),"bad response,status:"+n);return U.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(U)}var F,Q=null,i=!1,l=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===we){var r,a=new Uint8Array(e.target.response);if(F=l+this._receivedLength,a&&a.byteLength>0){this._receivedLength+=a.byteLength;var d=Date.now()-this._startTime,o=$e(this._receivedLength,d);this.emit(tt,{speed:o,len:this._receivedLength,time:d,vid:this._vid,index:this._index,range:[F,l+this._receivedLength],priOptions:this._priOptions})}Q=a,i=!((null===(r=this._range)||void 0===r?void 0:r.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",F,"end ",l+this._receivedLength,",dataLen,",a?a.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",i)}else i=!0,Q=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(Q,i,{index:this._index,vid:this._vid,range:[F,l+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},s),i?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(qe(this._onProgress?null:Q,i,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,Fe(O(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={},U=ie(e.getAllResponseHeaders().trim().split("\r\n"));try{for(U.s();!(t=U.n()).done;){var F=t.value.split(": ");n[F[0].toLowerCase()]=F.slice(1).join(": ")}}catch(Q){U.e(Q)}finally{U.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}(Qt),at=["retry","retryDelay","onRetryError","transformError"],dt=function(){function e(t,n){_(this,e),this.promise=Te(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new fe("Loader")),this._loaderType=t,this._loader=t===Me&&"undefined"!=typeof fetch?new lt:new rt,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return H(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,U=t.retryDelay,F=t.onRetryError,Q=t.transformError,i=te(t,at),l=function(){var t=K(M().mark((function t(){var r,a,d;return M().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(i);case 3:r=t.sent,e.promise.resolve(r),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,a=t.t0,Q&&(a=Q(a)||a),F&&e._retryCount>0&&F(a,e._retryCount,{index:i.index,vid:i.vid,range:i.range,priOptions:i.priOptions}),e._retryCount++,d=!0,e._retryCheckFunc&&(d=e._retryCheckFunc(t.t0)),!(d&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",i.range),e._retryTimer=setTimeout(l,U),t.abrupt("return");case 26:e.promise.reject(a);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=K(M().mark((function e(){return M().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 ot(){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 U=new Uint8Array(t.reduce((function(e,t){return e+t.byteLength}),0)),F=0;return t.forEach((function(e){U.set(e,F),F+=e.byteLength})),U}function st(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}var Bt=function(e){z(U,e);var t,n=Ue(U);function U(e){var t;return _(this,U),P(ne(t=n.call(this,e)),"type",Me),P(ne(t),"_queue",[]),P(ne(t),"_alive",[]),P(ne(t),"_currentTask",null),P(ne(t),"_finnalUrl",""),P(ne(t),"_config",void 0),t._config=function(e){return G({loaderType:Me,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:Ke,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)}(e),t._config.loaderType!==Ye&&lt.isSupported()||(t.type=Ye),t.log=e.logger,t}return H(U,[{key:"isFetch",value:function(){return this.type===Me}},{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&&Pe(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&Pe(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var U=new dt(this.type,n);return U.loader.on(tt,(function(e){t.emit(tt,e)})),this._queue.push(U),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),U.promise}},{key:"cancel",value:(t=K(M().mark((function e(){var t;return M().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,st();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 lt.isSupported()}}]),U}(Qt),ct="undefined"!=typeof window&&(window.location.search.indexOf("log=true")>-1||!!X.getItem("abrdebug")||!!X.getItem("playerlog"));var Rt=new fe("Logger",{logCacheLevel:Ee.DEBUG});ct&&fe.enable();var Vt={},ut=["abr"],ht=function(e){ut.includes(e)?Vt[e]=ct?function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];(t=console).log.apply(t,["[".concat(e,"]"),(new Date).toLocaleString()].concat(U))}:function(){}:Vt[e]=function(){for(var t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];Rt.log.apply(Rt,["[".concat(e,"]")].concat(n))}};for(var Zt in{log:"log",network:"network",abr:"abr",encrypt:"encrypt",segment:"segment",definition:"definition",content:"content",mse:"mse",media:"media",time:"time",preload:"preload",gap:"gap"})ht(Zt);function St(){return Rt}var pt=Vt,Jt=1e3,mt=6e3,Wt="danger_d_speed",kt={"x-cache":"x_cache","x-response-sinfo":"server_ip"},Et={"360p":.45,"480p":.75,"720p":1.6,"1080p":5,"2k":7.5,"4k":12.5},yt="player_start",ft="wasm_start",Nt="wasm_ready",bt="init_finished",vt="core_start",Tt="start_play",Ct="error_handler",gt="next_finished",Dt=0,Xt=1,xt=2,Lt="media_exception",It="task_request_error",Gt=1,Mt={MAIN:"0",BACK:"1"},Yt={INIT:"init",ERR:"error"},wt="currentDashType",Kt="cdn",_t="pcdn",jt="buffer_control",Ht="waiting",Pt="playing",zt={BUFFER_CONTROLS:"buffer_control"};function Ot(){var e=window.navigator.userAgent,t=e.indexOf("MSIE "),n=e.indexOf("Trident/");return t>0||n>0}function At(){return window.navigator.userAgent.toLowerCase().indexOf("qqbrowser")>-1}function qt(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function $t(){return navigator.userAgent.indexOf("Edge")>0}function en(){var e,t=qt(),n=Ot(),U=(e=window.navigator.userAgent,!(window.location.search.indexOf("firefox_dash=true")>-1||X.getItem("firefox_dash"))&&e.toLowerCase().indexOf("firefox")>-1),F=$t();return t||n||U||F}function tn(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":s(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(t){console.log(t)}return!1}function nn(){var e=window.MediaSource=window.MediaSource||window.WebKitMediaSource;return e&&"function"==typeof e.isTypeSupported}var Un=['video/mp4; codecs="av01.0.01M.08,mp4a.40.5"'];function Fn(e){if(!nn())return!1;for(var t=0;t<e.length;t++){var n=e[t];if(MediaSource.isTypeSupported(n))return!0}return!1}function Qn(){return!!navigator.requestMediaKeySystemAccess&&!en()}var ln,rn=Object.freeze({__proto__:null,AV1MimeTypes:Un,checkWebAssemblySupport:tn,getDrmServerUrl:function(e){return new Promise((function(t){tn()&&nn()&&navigator.requestMediaKeySystemAccess||t(void 0);qt();var n=navigator.userAgent.toLowerCase().indexOf("chrome")>-1,U=$t();n&&!At()?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(U?"https://".concat(e,"/video/drm/v1/playready?aid=32&kid="):void 0)}))},isAV1Supported:function(){return Fn(Un)},isCodecSupported:Fn,isEMESupported:Qn,isEncryptSupported:function(){return tn()&&nn()&&!Ot()&&!At()},isSupported:function(){return tn()&&nn()&&!Ot()}}),an=function(){function e(t,n,U,F){var Q=this;R(this,e),this.config=e.getDefaultConfig(),this.bitrate=0,F&&Object.keys(F).map((function(e){void 0!==F[e]&&null!==F[e]&&(Q.config[e]=F[e])})),this.duration=U,this.player=t,this.updateBitrate(n)}return u(e,[{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,U=e&&null!=n&&n.end?n.end-e.currentTime:0;return Math.max(t.rangeMaxDuration-U,t.rangeMinDuration)}},{key:"getAdaptCacheBuffer",value:function(){var e=this.player,t=this.config,n=this.bitrate;if(!t.targetCacheControl)return-1;var U=t.estPlayTime,F=U;if(t.estPTcontrol){var Q,i=null!==(Q=this.duration)&&void 0!==Q?Q:(null==e?void 0:e.duration)||0,l=(null==e?void 0:e.currentTime)||0;F=Math.min(U,i-l)}var r=e&&1024*e.avgSpeed||0,a=Math.max(t.safeFactor*r,t.minBandwidth);null!=e&&e.avgSpeed&&(a=t.safeFactor*r);var d=n>0?Math.floor((1-a/n)*F):0;return d=t.minDangerThreshold+Math.max(d,0),Math.min(Math.max(t.cacheSafeFactor*d,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}}}]),e}(),dn=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}(dn||{}),on=function(e){return e[e.Normal=0]="Normal",e[e.Ad=1]="Ad",e}(on||{}),sn=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}(sn||{}),Bn="real_time_speed",cn="cdn",Rn=function(e){return e.CHANGE_FLYING_PLUGIN_CONFIG="CHANGE_FLYING_PLUGIN_CONFIG",e}(Rn||{}),Vn=function(e){Z(n,e);var t=W(n);function n(e){var U;R(this,n);var F=m(U=t.call(this,e)),Q=F.player,i=F.playerConfig;return U.playerId=Q.playerId,U.codecType=i.codecType?i.codecType.toLowerCase():sn.H264,U.bizType=Q.bizType="number"==typeof i.bizType?i.bizType:on.Normal,i.vtype&&(U.vtype=i.vtype.toUpperCase()),ln&&(Q.preloader=ln),U}return u(n,[{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){ln=e}}]),n}(r.BasePlugin);function un(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);t&&(U=U.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,U)}return n}function hn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?un(Object(n),!0).forEach((function(t){En(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):un(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Zn(){Zn=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",l=F.toStringTag||"@@toStringTag";function r(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{r({},"")}catch(f){r=function(e,t,n){return e[t]=n}}function a(e,t,n,F){var Q=t&&t.prototype instanceof s?t:s,i=Object.create(Q.prototype),l=new k(F||[]);return U(i,"_invoke",{value:p(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(f){return{type:"throw",arg:f}}}e.wrap=a;var o={};function s(){}function B(){}function c(){}var R={};r(R,Q,(function(){return this}));var V=Object.getPrototypeOf,u=V&&V(V(E([])));u&&u!==t&&n.call(u,Q)&&(R=u);var h=c.prototype=s.prototype=Object.create(R);function Z(e){["next","throw","return"].forEach((function(t){r(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function F(U,Q,i,l){var r=d(e[U],e,Q);if("throw"!==r.type){var a=r.arg,o=a.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,l)}),(function(e){F("throw",e,i,l)})):t.resolve(o).then((function(e){a.value=e,i(a)}),(function(e){return F("throw",e,i,l)}))}l(r.arg)}var Q;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return Q=Q?Q.then(U,U):U()}})}function p(e,t,n){var U="suspendedStart";return function(F,Q){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(n.method=F,n.arg=Q;;){var i=n.delegate;if(i){var l=J(i,n);if(l){if(l===o)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var r=d(e,t,n);if("normal"===r.type){if(U=n.done?"completed":"suspendedYield",r.arg===o)continue;return{value:r.arg,done:n.done}}"throw"===r.type&&(U="completed",n.method="throw",n.arg=r.arg)}}}function J(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,J(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),o;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,o;var Q=F.arg;return Q?Q.done?(t[e.resultName]=Q.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):Q:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}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 W(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function E(e){if(e){var t=e[Q];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return B.prototype=c,U(h,"constructor",{value:c,configurable:!0}),U(c,"constructor",{value:B,configurable:!0}),B.displayName=r(c,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,r(e,l,"GeneratorFunction")),e.prototype=Object.create(h),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),r(S.prototype,i,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,U,F,Q){void 0===Q&&(Q=Promise);var i=new S(a(t,n,U,F),Q);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},Z(h),r(h,l,"Generator"),r(h,Q,(function(){return this})),r(h,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=E,k.prototype={constructor:k,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(W),!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 U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],i=Q.completion;if("root"===Q.tryLoc)return U("end");if(Q.tryLoc<=this.prev){var l=n.call(Q,"catchLoc"),r=n.call(Q,"finallyLoc");if(l&&r){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}else if(l){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0)}else{if(!r)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=t&&t<=Q.finallyLoc&&(Q=null);var i=Q?Q.completion:{};return i.type=e,i.arg=t,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(i)},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),o},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),W(n),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;W(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),o}},e}function Sn(e){return(Sn="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 pn(e,t,n,U,F,Q,i){try{var l=e[Q](i),r=l.value}catch(a){return void n(a)}l.done?t(r):Promise.resolve(r).then(U,F)}function Jn(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var Q=e.apply(t,n);function i(e){pn(Q,U,F,i,l,"next",e)}function l(e){pn(Q,U,F,i,l,"throw",e)}i(void 0)}))}}function mn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Wn(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,In(U.key),U)}}function kn(e,t,n){return t&&Wn(e.prototype,t),n&&Wn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function En(e,t,n){return(t=In(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yn(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&&Nn(e,t)}function fn(e){return(fn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Nn(e,t){return(Nn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function bn(){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 vn(e,t,n){return(vn=bn()?Reflect.construct.bind():function(e,t,n){var U=[null];U.push.apply(U,t);var F=new(Function.bind.apply(e,U));return n&&Nn(F,n.prototype),F}).apply(null,arguments)}function Tn(e){var t="function"==typeof Map?new Map:void 0;return Tn=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;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,U)}function U(){return vn(e,arguments,fn(this).constructor)}return U.prototype=Object.create(e.prototype,{constructor:{value:U,enumerable:!1,writable:!0,configurable:!0}}),Nn(U,e)},Tn(e)}function Cn(e,t){if(null==e)return{};var n,U,F=function(e,t){if(null==e)return{};var n,U,F={},Q=Object.keys(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||(F[n]=e[n]);return F}(e,t);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(F[n]=e[n])}return F}function gn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Dn(e){var t=bn();return function(){var n,U=fn(e);if(t){var F=fn(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return 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 gn(e)}(this,n)}}function Xn(){return Xn="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var U=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=fn(e)););return e}(e,t);if(U){var F=Object.getOwnPropertyDescriptor(U,t);return F.get?F.get.call(arguments.length<3?e:n):F.value}},Xn.apply(this,arguments)}function xn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,U=new Array(t);n<t;n++)U[n]=e[n];return U}function Ln(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return xn(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)?xn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var U=0,F=function(){};return{s:F,n:function(){return U>=e.length?{done:!0}:{done:!1,value:e[U++]}},e:function(e){throw e},f:F}}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 Q,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,Q=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw Q}}}}function In(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function Gn(){var e,t,n=new Promise((function(n,U){e=n,t=U}));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}var Mn={DEBUG:1,LOG:2,WARN:3,ERROR:4},Yn=["Boolean","Number","String","Undefined","Null","Date","Object"],wn=function(){function e(t,n){mn(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)||204800,this.logSize=0,this.logTextArray=[]}return kn(e,[{key:"debug",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Mn.DEBUG].concat(U)),e.disabled||(t=console).debug.apply(t,[this._prefix,Kn()].concat(U))}},{key:"log",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Mn.LOG].concat(U)),e.disabled||(t=console).log.apply(t,[this._prefix,Kn()].concat(U))}},{key:"warn",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Mn.WARN].concat(U)),e.disabled||(t=console).warn.apply(t,[this._prefix,Kn()].concat(U))}},{key:"error",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Mn.ERROR].concat(U)),e.disabled||(t=console).error.apply(t,[this._prefix,Kn()].concat(U))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];var Q=U.map((function(e){return jn(e)}));t=this._prefix+Kn()+JSON.stringify(Q)}catch(l){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var i=this.logTextArray.shift();this.logSize-=i.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 Kn(){return(new Date).toLocaleString()}function _n(e){if("object"!==Sn(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 jn(e,t,n){n||(n=1),t||(t=2);var U={};if(!e||"object"!==Sn(e))return e;var F=Object.prototype.toString.call(e).slice(8,-1);if(!Yn.includes(F))return F;if(!(n>t)){for(var Q in e)Object.prototype.hasOwnProperty.call(e,Q)&&(n===t?U[Q]=_n(e[Q]):"object"===Sn(e[Q])?U[Q]=jn(e[Q],t,n+1):U[Q]=e[Q]);return U}}En(wn,"disabled",!0);var Hn="fetch",Pn="xhr",zn="arraybuffer",On="text",An="json",qn=function(e){yn(n,e);var t=Dn(n);function n(e,U,F,Q){var i;return mn(this,n),En(gn(i=t.call(this,Q)),"retryCount",0),En(gn(i),"isTimeout",!1),En(gn(i),"loaderType",Hn),En(gn(i),"startTime",0),En(gn(i),"endTime",0),En(gn(i),"options",{}),i.url=e,i.request=U,i.response=F,i}return kn(n)}(Tn(Error)),$n=Object.prototype.toString;function eU(e){if("[object Object]"!==$n.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function tU(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 nU(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function UU(e,t){if(e){if(!t)return e;var n,U=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){var n;return n=t,"[object Date]"===$n.call(n)?t=t.toISOString():function(e){return null!==e&&"object"===Sn(e)}(t)&&(t=JSON.stringify(t)),"".concat(nU(e),"=").concat(nU(t))})).join("&")})).filter(Boolean).join("&");if(U){var F=e.indexOf("#");-1!==F&&(e=e.slice(0,F)),e+=(-1===e.indexOf("?")?"?":"&")+U}return e}}function FU(e,t,n,U,F,Q,i,l,r,a,d){return F=null!=F?parseFloat(F):null,U=parseInt(U||"0",10),Number.isNaN(U)&&(U=0),{data:e,done:t,options:{range:r,vid:a,index:l,contentLength:U,age:F,startTime:Q,firstByteTime:i,endTime:Date.now(),priOptions:d},response:n}}function QU(e,t){return Math.round(8*e*1e3/t/1024)}var iU="real_time_speed",lU=2097152,rU=function(e){yn(U,e);var t,n=Dn(U);function U(){var e;return mn(this,U),En(gn(e=n.call(this)),"_abortController",null),En(gn(e),"_timeoutTimer",null),En(gn(e),"_reader",null),En(gn(e),"_response",null),En(gn(e),"_aborted",!1),En(gn(e),"_index",-1),En(gn(e),"_range",null),En(gn(e),"_receivedLength",0),En(gn(e),"_running",!1),En(gn(e),"_logger",null),En(gn(e),"_vid",""),En(gn(e),"_onProcessMinLen",0),En(gn(e),"_onCancel",null),En(gn(e),"_priOptions",null),e}return kn(U,[{key:"load",value:function(e){var t,n=this,U=e.url,F=e.vid,Q=e.timeout,i=e.responseType,l=e.onProgress,r=e.index,a=e.onTimeout,d=e.onCancel,o=e.range,s=e.transformResponse,B=e.request,c=e.params,R=e.logger,V=e.method,u=e.headers,h=e.body,Z=e.mode,S=e.credentials,p=e.cache,J=e.redirect,m=e.referrer,W=e.referrerPolicy,k=e.onProcessMinLen,E=e.priOptions;this._logger=R,this._aborted=!1,this._onProcessMinLen=k,this._onCancel=d,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=r,this._range=o||[0,0],this._vid=F||U,this._priOptions=E||{};var y={method:V,headers:u,body:h,mode:Z,credentials:S,cache:p,redirect:J,referrer:m,referrerPolicy:W,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},f=!1;clearTimeout(this._timeoutTimer),U=UU(U,c);var N=tU(o);N&&(u=B?B.headers:y.headers=y.headers||(Headers?new Headers:{}),Headers&&u instanceof Headers?u.append("Range",N):u.Range=N),Q&&(this._timeoutTimer=setTimeout((function(){if(f=!0,n.cancel(),a){var e=new qn(U,y,null,"timeout");e.isTimeout=!0,a(e,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions})}}),Q));var b=Date.now();return this._logger.debug("[fetch load start], index,",r,",range,",o),new Promise((function(e,t){fetch(B||U,B?void 0:y).then(function(){var F=Jn(Zn().mark((function F(Q){var a,d,B,c;return Zn().wrap((function(F){for(;;)switch(F.prev=F.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=Q,!n._aborted&&n._running){F.next=4;break}return F.abrupt("return");case 4:if(s&&(Q=s(Q,U)||Q),Q.ok){F.next=7;break}throw new qn(U,y,Q,"bad network response");case 7:if(a=Date.now(),i!==On){F.next=15;break}return F.next=11,Q.text();case 11:d=F.sent,n._running=!1,F.next=37;break;case 15:if(i!==An){F.next=22;break}return F.next=18,Q.json();case 18:d=F.sent,n._running=!1,F.next=37;break;case 22:if(!l){F.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(Q,l,b,a),F.abrupt("return");case 29:return F.next=31,Q.arrayBuffer();case 31:d=F.sent,d=new Uint8Array(d),n._running=!1,B=Date.now()-b,c=QU(d.byteLength,B),n.emit(iU,{speed:c,len:d.byteLength,time:B,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",r,",range,",o),e(FU(d,!0,Q,Q.headers.get("Content-Length"),Q.headers.get("age"),b,a,r,o,n._vid,n._priOptions));case 39:case"end":return F.stop()}}),F)})));return function(e){return F.apply(this,arguments)}}()).catch((function(e){var F;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!f||((e=e instanceof qn?e:new qn(U,y,null,null===(F=e)||void 0===F?void 0:F.message)).startTime=b,e.endTime=Date.now(),e.isTimeout=f,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=Jn(Zn().mark((function e(){return Zn().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(t){}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,U){var F=this;if(!e.body||!e.body.getReader){this._running=!1;var Q=new qn(e.url,"",e,"onProgress of bad response.body.getReader");return Q.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(Q)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(lU),this._writeIdx=0);var i,l,r,a=this._reader=e.body.getReader(),d=function(){var Q=Jn(Zn().mark((function Q(){var o,s,B,c,R,V,u,h;return Zn().wrap((function(Q){for(;;)switch(Q.prev=Q.next){case 0:return l=Date.now(),Q.prev=1,Q.next=4,a.read();case 4:i=Q.sent,r=Date.now(),Q.next=13;break;case 8:return Q.prev=8,Q.t0=Q.catch(1),r=Date.now(),F._aborted||(F._running=!1,Q.t0.options={index:F._index,range:F._range,vid:F._vid,priOptions:F._priOptions},F.reject(Q.t0)),Q.abrupt("return");case 13:if(s=(null===(o=F._range)||void 0===o?void 0:o.length)>0?F._range[0]:0,B=s+F._receivedLength,!F._aborted){Q.next=19;break}return F._running=!1,t(void 0,!1,{range:[B,B],vid:F._vid,index:F._index,startTime:l,endTime:r,st:n,firstByteTime:U,priOptions:F._priOptions},e),Q.abrupt("return");case 19:c=i.value?i.value.byteLength:0,F._receivedLength+=c,F._logger.debug("【fetchLoader,onProgress call】,task,",F._range,", start,",B,", end,",s+F._receivedLength,", done,",i.done),F._onProcessMinLen>0?F._writeIdx+c>=F._onProcessMinLen||i.done?((R=new Uint8Array(F._writeIdx+c)).set(F._cache.slice(0,F._writeIdx),0),c>0&&R.set(i.value,F._writeIdx),F._writeIdx=0,F._logger.debug("【fetchLoader,onProgress enough】,done,",i.done,",len,",R.byteLength,", writeIdx,",F._writeIdx)):c>0&&F._writeIdx+c<lU?(F._cache.set(i.value,F._writeIdx),F._writeIdx+=c,F._logger.debug("【fetchLoader,onProgress cache】,len,",c,", writeIdx,",F._writeIdx)):c>0&&(V=new Uint8Array(F._writeIdx+c+2048),F._logger.debug("【fetchLoader,onProgress extra start】,size,",F._writeIdx+c+2048,", datalen,",c,", writeIdx,",F._writeIdx),V.set(F._cache.slice(0,F._writeIdx),0),c>0&&V.set(i.value,F._writeIdx),F._writeIdx+=c,delete F._cache,F._cache=V,F._logger.debug("【fetchLoader,onProgress extra end】,len,",c,", writeIdx,",F._writeIdx)):R=i.value,(R&&R.byteLength>0||i.done)&&t(R,i.done,{range:[F._range[0]+F._receivedLength-(R?R.byteLength:0),F._range[0]+F._receivedLength],vid:F._vid,index:F._index,startTime:l,endTime:r,st:n,firstByteTime:U,priOptions:F._priOptions},e),i.done?(u=Date.now()-n,h=QU(F._receivedLength,u),F.emit(iU,{speed:h,len:F._receivedLength,time:u,vid:F._vid,index:F._index,range:F._range,priOptions:F._priOptions}),F._running=!1,F._logger.debug("[fetchLoader onProgress end],task,",F._range,",done,",i.done),F.resolve(FU(i,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,U,F._index,F._range,F._vid,F._priOptions))):d();case 25:case"end":return Q.stop()}}),Q,null,[[1,8]])})));return function(){return Q.apply(this,arguments)}}();d()}},{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)}}]),U}(Qt);var aU=function(e){yn(n,e);var t=Dn(n);function n(){var e;return mn(this,n),En(gn(e=t.call(this)),"_xhr",null),En(gn(e),"_aborted",!1),En(gn(e),"_timeoutTimer",null),En(gn(e),"_range",null),En(gn(e),"_receivedLength",0),En(gn(e),"_url",null),En(gn(e),"_onProgress",null),En(gn(e),"_index",-1),En(gn(e),"_headers",null),En(gn(e),"_currentChunkSizeKB",384),En(gn(e),"_timeout",null),En(gn(e),"_xhr",null),En(gn(e),"_withCredentials",null),En(gn(e),"_startTime",-1),En(gn(e),"_loadCompleteResolve",null),En(gn(e),"_loadCompleteReject",null),En(gn(e),"_runing",!1),En(gn(e),"_logger",!1),En(gn(e),"_vid",""),En(gn(e),"_responseType",void 0),En(gn(e),"_credentials",void 0),En(gn(e),"_method",void 0),En(gn(e),"_transformResponse",void 0),En(gn(e),"_firstRtt",void 0),En(gn(e),"_onCancel",null),En(gn(e),"_priOptions",null),e}return kn(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=UU(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 qn?e:new qn(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===zn&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,U=this._range[1];t<this._range[1]-n&&(U=n+t),e=[n,U],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,U,F;t._running=!1;var Q=new qn(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(U=e.currentTarget)||void 0===U?void 0:U.status)+",statusText,"+(null==e||null===(F=e.currentTarget)||void 0===F?void 0:F.statusText));Q.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(Q)},n.ontimeout=function(e){t.cancel();var n=new qn(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 U=this._headers||{},F=tU(e);F&&(U.Range=F),U&&Object.keys(U).forEach((function(e){n.setRequestHeader(e,U[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(Q){Q.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(Q)}}},{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 U=new qn(this._url,null,hn(hn({},e.target.response),{},{status:n}),"bad response,status:"+n);return U.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(U)}var F,Q=null,i=!1,l=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===zn){var r,a=new Uint8Array(e.target.response);if(F=l+this._receivedLength,a&&a.byteLength>0){this._receivedLength+=a.byteLength;var d=Date.now()-this._startTime,o=QU(this._receivedLength,d);this.emit(iU,{speed:o,len:this._receivedLength,time:d,vid:this._vid,index:this._index,range:[F,l+this._receivedLength],priOptions:this._priOptions})}Q=a,i=!((null===(r=this._range)||void 0===r?void 0:r.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",F,"end ",l+this._receivedLength,",dataLen,",a?a.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",i)}else i=!0,Q=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(Q,i,{index:this._index,vid:this._vid,range:[F,l+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},s),i?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(FU(this._onProgress?null:Q,i,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,Xn(fn(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={},U=Ln(e.getAllResponseHeaders().trim().split("\r\n"));try{for(U.s();!(t=U.n()).done;){var F=t.value.split(": ");n[F[0].toLowerCase()]=F.slice(1).join(": ")}}catch(Q){U.e(Q)}finally{U.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}(Qt),dU=["retry","retryDelay","onRetryError","transformError"],oU=function(){function e(t,n){mn(this,e),this.promise=Gn(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new wn("Loader")),this._loaderType=t,this._loader=t===Hn&&"undefined"!=typeof fetch?new rU:new aU,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return kn(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,U=t.retryDelay,F=t.onRetryError,Q=t.transformError,i=Cn(t,dU),l=function(){var t=Jn(Zn().mark((function t(){var r,a,d;return Zn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(i);case 3:r=t.sent,e.promise.resolve(r),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,a=t.t0,Q&&(a=Q(a)||a),F&&e._retryCount>0&&F(a,e._retryCount,{index:i.index,vid:i.vid,range:i.range,priOptions:i.priOptions}),e._retryCount++,d=!0,e._retryCheckFunc&&(d=e._retryCheckFunc(t.t0)),!(d&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",i.range),e._retryTimer=setTimeout(l,U),t.abrupt("return");case 26:e.promise.reject(a);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=Jn(Zn().mark((function e(){return Zn().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 sU(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}var BU=function(e){yn(U,e);var t,n=Dn(U);function U(e){var t;return mn(this,U),En(gn(t=n.call(this,e)),"type",Hn),En(gn(t),"_queue",[]),En(gn(t),"_alive",[]),En(gn(t),"_currentTask",null),En(gn(t),"_finnalUrl",""),En(gn(t),"_config",void 0),t._config=function(e){return hn({loaderType:Hn,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:On,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)}(e),t._config.loaderType!==Pn&&rU.isSupported()||(t.type=Pn),t.log=e.logger,t}return kn(U,[{key:"isFetch",value:function(){return this.type===Hn}},{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&&eU(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&eU(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var U=new oU(this.type,n);return U.loader.on(iU,(function(e){t.emit(iU,e)})),this._queue.push(U),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),U.promise}},{key:"cancel",value:(t=Jn(Zn().mark((function e(){var t;return Zn().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,sU();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 rU.isSupported()}}]),U}(Qt),cU=function(){function e(t,n,U,F){var Q=this;R(this,e),this.config=e.getDefaultConfig(),Object.keys(F).map((function(e){void 0!==F[e]&&null!==F[e]&&(Q.config[e]=F[e])})),this.duration=U,this.player=t,this.updateBitrate(n),this.curPCDNInBuffer=this.config.maxPCDNInBuffer,this.curPCDNOutBuffer=this.config.maxPCDNOutBuffer,this.PCDNChangeCnt=0}return u(e,[{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 U=e.estPlayTime,F=U;e.estPTcontrol&&(F=Math.min(U,Math.max(0,this.duration-((null==t?void 0:t.currentTime)||0))));var Q=e.safePCDNInFactor,i=e.minBandwidth,l=e.maxPCDNInBuffer,r=e.minPCDNInBuffer,a=Q*Math.max(1024*(null==t?void 0:t.avgSpeedPCDN)||0,i),d=n>0?(1-a/n)*F:0;return this.curPCDNInBuffer=Math.min(l,Math.max(r,d)),this.curPCDNInBuffer}},{key:"getPCDNOutBuffer",value:function(){var e=this.config,t=this.player,n=this.bitrate;if(!e.PCDNBufferControl)return null;var U=e.estPlayTime,F=U;e.estPTcontrol&&(F=Math.min(U,Math.max(0,this.duration-((null==t?void 0:t.currentTime)||0))));var Q=e.safePCDNOutFactor,i=e.minBandwidth,l=e.maxPCDNOutBuffer,r=e.minPCDNOutBuffer,a=Q*Math.max(1024*(null==t?void 0:t.avgSpeedPCDN)||0,i),d=n>0?(1-a/n)*F:0;return this.curPCDNOutBuffer=Math.min(l,Math.max(r,d)),this.curPCDNOutBuffer}},{key:"getPCDNChangeCnt",value:function(){var e=this.config,t=e.PCDNCntControl,n=e.alpha,U=this.curPCDNInBuffer,F=this.player,Q=(null==F?void 0:F.bufferedPoint)||null,i=Q&&Q.end?Q.end-F.currentTime:0;t?i>U+(this.PCDNChangeCnt-1)*n&&this.PCDNChangeCnt++:i>=U&&this.PCDNChangeCnt<2&&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}}}]),e}(),RU=new Map,VU=function(){function e(t,n,U,F){var Q,i,l=this;R(this,e),this.options=e.getDefaultConfig(),Object.keys(t).map((function(e){void 0!==t[e]&&null!==t[e]&&(l.options[e]=t[e])})),this.options.productConfig&&this.options.productConfig.app_id||console.error("productConfig must has"),this.loader=new BU(this.options),this.resetTrackeArgs(),this._lastFileInfo=null,this.lastfetchNodeTime=-1,this._lastRetFileKey=null,this._minUpdateNodeStep=this.options.ErrorTimeStep,null!==(Q=this.options)&&void 0!==Q&&null!==(i=Q.adaptPCDNConfig)&&void 0!==i&&i.PCDNBufferControl&&(this.pcdnAdapt=new cU(n,U,F,this.options.adaptPCDNConfig))}var t,n;return u(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 U,F=hU(t),Q=RU.get(uU(e,F)),i=new Gn;return null==Q||!Q.nodes||(null==Q||null===(U=Q.nodes)||void 0===U?void 0:U.length)<1?this.fetchPCDNNode(null,null,n).then((function(e){i.resolve(e)})).catch((function(e){i.reject(e)})):(Q.fromCache=!0,i.resolve(Q)),i}},{key:"removePCDNNode",value:function(e,t,n){var U=hU(t),F=RU.get(uU(e,U)),Q=null==F?void 0:F.nodes;Q&&(n?F.nodes=Q.filter((function(e){return e&&n.indexOf(e.url)<0})):Q.shift(),RU.set(uU(e,U),F)),Q&&Q.length||this.fetchPCDNNode().then().catch((function(){}))}},{key:"fetchPCDNNode",value:(n=c(o().mark((function t(n,U,F){var Q,i,l,r,a,d,s,B,c,R,V,u,h,Z,S,p,J;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(Q=new Gn,U){t.next=5;break}U=this._lastFileInfo,t.next=15;break;case 5:if(U.byterate=hU(U.bitrate),this.options.trackerOptions&&Object.assign(U,this.options.trackerOptions),this._lastFileInfo=Object.assign({},U,{byterate:U.byterate}),!((null==(l=RU.get(uU(U.vid,U.byterate)))||null===(i=l.nodes)||void 0===i?void 0:i.length)>0)){t.next=13;break}return l.fromCache=!0,Q.resolve(l),t.abrupt("return",Q);case 13:delete U.bitrate,this._lastFileInfo=U;case 15:if(U){t.next=18;break}return Q.resolve(null),t.abrupt("return",Q);case 18:if(r=!1,a=uU(U.vid,U.byterate),this._lastRetFileKey!==a&&(this.resetTrackeArgs(),r=!0),!(Date.now()-this.lastfetchNodeTime<this._minUpdateNodeStep)||r){t.next=24;break}return Q.resolve(null),t.abrupt("return",Q);case 24:if(this.lastfetchNodeTime=Date.now(),this._lastRetFileKey=a,U.sfid?U.version=1:U.vid&&(U.version=2),this.options.withReferer&&(U.with_referer=this.options.withReferer),d=Object.assign(this.options.productConfig,{file_info:U},this.trackeArgs,{req_id:F}),s=JSON.stringify(d),!(this.trackeArgs.req_times>=this.options.maxCnt)){t.next=33;break}return Q.resolve(null),t.abrupt("return",Q);case 33:return this.loader||(this.loader=new BU(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:s});case 39:B=t.sent,c=null,B&&(this.trackeArgs.resp_times+=1,V=8*U.byterate,B.done&&null!==(R=B.data)&&void 0!==R&&R.Result?(u=B.data.Result,(c=u.nodes)&&c.length>0?e.pcdn_tracker_success_cnt++:this._minUpdateNodeStep=this.options.NULLNodeTimeStep,c.map((function(e){e.vid=U.vid,e.bitrate=V})),h=u.fid,Z=u.trace_id,S=u.req_id,p={nodes:c,fid:h,vid:U.vid,trace_id:Z,req_id:S,bitrate:V},J=uU(U.vid,U.byterate),RU.set(J,p),this.trackeArgs.fid=u.fid,this.trackeArgs.trace_id=u.trace_id,this.trackeArgs.token=u.token,Q.resolve(p)):(this._minUpdateNodeStep=this.options.ErrorTimeStep,Q.reject(B))),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),Q.reject(t.t0);case 49:return t.abrupt("return",Q);case 50:case"end":return t.stop()}}),t,this,[[35,44]])}))),function(e,t,U){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:Hn,responseType:An,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=c(o().mark((function t(n,U,F,Q){var i,l,r,a,d,s,B,c,R;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=e.getDefaultConfig(),Object.keys(U).map((function(e){void 0!==U[e]&&null!==U[e]&&(i[e]=U[e])})),Q&&Q.app_id||console.error("productConfig must has"),l=new Gn,F?(F.byterate=hU(F.bitrate),this.options.trackerOptions&&Object.assign(F,this.options.trackerOptions),delete F.bitrate):l.reject("video fileInfo need set"),r=Object.assign(Q,{file_info:F},{node_num:(null==U?void 0:U.node_num)||3}),a=JSON.stringify(r),d=new BU(i),t.prev=8,e.pcdn_tracker_request_cnt++,t.next=12,d.load(n,{body:a});case 12:(R=t.sent).done&&(null===(s=R.data)||void 0===s||null===(B=s.Result)||void 0===B||null===(c=B.nodes)||void 0===c?void 0:c.length)>0&&e.pcdn_tracker_success_cnt++,l.resolve(R),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,U,F){return t.apply(this,arguments)})}]),e}();function uU(e,t){return"".concat(e,"-").concat(t)}function hU(e){return Math.floor(e/8)}h(VU,"pcdn_tracker_request_cnt",0),h(VU,"pcdn_tracker_success_cnt",0);var ZU=["bitrate","definition"],SU={};function pU(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]}SU.ArrayBufferToString=function(e){for(var t="",n=new Uint8Array(e),U=0;U<n.length;U++)t+=String.fromCharCode(n[U]);return t},SU.StringToArrayBuffer=function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),U=0;U<e.length;U++)n[U]=e.charCodeAt(U);return t},SU.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 U=[],F=0;F<n.length;F++)U.push(n.charCodeAt(F));return new Uint8Array(U).buffer}for(var Q="",i=0;i<n.length;i++)Q+="0".concat(n.charCodeAt(i).toString(16)).substr(-2);return Q},SU.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,"_")},SU.padStart=function(e,t,n){for(var U=String(n),F=t>>0,Q=Math.ceil(F/U.length),i=[],l=String(e);Q--;)i.push(U);return i.join("").substring(0,F-l.length)+l},SU.durationConvert=function(e){var t=0,n=0,U=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"))),U=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"))),U=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"))),U=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("S")))):e.indexOf("H")<0&&e.indexOf("M")<0&&e.indexOf("S")>-1?U=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+U},SU.preFixInterge=function(e,t){return(Array(t).join(0)+e).slice(-t)},SU.toHex=function(){for(var e=[],t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];return n.forEach((function(t){e.push(SU.padStart(Number(t).toString(16),2,0))})),e},SU.sum=function(){for(var e=0,t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];return n.forEach((function(t){e+=t})),e},SU.toUTF8=function(e){for(var t=encodeURIComponent(e),n=unescape(t),U=new Uint8Array(n.length),F=0;F<n.length;++F)U[F]=n.charCodeAt(F);return U.buffer},SU.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},SU.fromCharCode=function(e){for(var t="",n=0;n<e.length;n+=16e3){var U=e.subarray(n,n+16e3);t+=String.fromCharCode.apply(null,U)}return t},SU.toBase64=function(e,t){var n=SU.fromCharCode(e);t=void 0===t||t;var U=window.btoa(n).replace(/\+/g,"-").replace(/\//g,"_");return t?U:U.replace(/=*$/,"")},SU.str2hex=function(e){if(""===e)return"";for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t},SU.bufferToString=function(e){return"0".concat(Number(e).toString(16)).slice(-2).toUpperCase()},SU.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)},SU.round=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Number(e.toFixed(t))},SU.isEdge=function(){var e=window.navigator.userAgent.toLowerCase();return e.indexOf("edge")>-1||e.indexOf("edg/")>-1},SU.offInDestroy=function(e,t,n,U){e.once(U,(function F(){e.off(t,n),e.off(U,F)}))},SU.on=function(e,t,n,U){if(U)e.on(t,n),SU.offInDestroy(e,t,n,U);else{e.on(t,(function U(F){n(F),e.off(t,U)}))}},SU.once=function(e,t,n,U){if(U)e.once(t,n),SU.offInDestroy(e,t,n,U);else{e.once(t,(function U(F){n(F),e.off(t,U)}))}},SU.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)},SU.transformHeaders=function(e,t){var n=Object.assign({},e);return Object.keys(t).forEach((function(U){var F=t[U];e&&e[U]&&(n[F]=e[U],delete n[U])})),n},SU.generateRequestUniqueKey=function(e){var t=e.vid,n=e.start,U=e.end,F=e.mediaType,Q=e.definition,i=e.codecType,l=e.vtype,r=e.bitrate,a=e.fileId,d=e.range;if(d&&d.length>0?(n=d[0],U=d[1]):(n=n||0,U=U||0),i="hevc"===i?"h265":i||"h264",l=l||dn.DASH,!t||!F)return null;var o=Q?"".concat(t,"#").concat(F,"#").concat(i,"#").concat(l,"#").concat(Q,"#").concat(n,"#").concat(U):"".concat(t,"#").concat(F,"#").concat(i,"#").concat(l,"##").concat(n,"#").concat(U,"#").concat(r);return a?"".concat(o,"#").concat(a):o},SU.getDefinition=function(e){if(!e)return null;var t=e.split("#");return t.length>2?t[2]:null},SU.exchangeListUrl=function(e){if(e&&0!==e.length)for(var t=0;t<e.length;t++)SU.exchangeUrl(e[t])},SU.exchangeUrl=function(e){if(e&&e.main_url&&e.backup_url_1){var t=e.main_url,n=e.backup_url_1,U=t.split("?");2===U.length&&-1===n.indexOf("?")?(e.main_url="".concat(n,"?").concat(U[1]),e.backup_url_1=U[0]):(e.main_url=n,e.backup_url_1=t)}},SU.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),U=String.fromCharCode.apply(null,n);if(2===t.length){var F=t[1]-t[0]+1;if(!(e.byteLength===F))return}if("moof"!==U&&"styp"!==U&&"ftyp"!==U)return!1}catch(Q){return!1}return!0}return!1},SU.validateUrlRange=function(e,t){if((e=e||[]).length>0&&t)for(var n=0;n<e.length;n++){var U=e[n];if(/([0-9.\-A-Za-z]+)/.test(U)&&t.indexOf(U)>-1)return!0}return!1},SU.nowTime=function(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}},SU.getBitrateItem=function(e,t,n){var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,F=t,Q=SU.getSelectorList(e,n);return F.getSuitableBitrate?F.getSuitableBitrate(Q,U):F.bitRateAdapter.select(Q)},SU.getSelectorList=function(e,t){for(var n=e.dynamic_video_list,U=[],F=0;F<n.length;F++){var Q=n[F],i=Q.bitrate,l=Q.definition,r=J(Q,ZU);U.push(d({bitrate:i,definition:l,duration:t,mediaType:"video"},r))}return U},SU.typeof=pU,SU.getHostFromUrl=function(e){if("String"!==pU(e)||!e)return"";var t=e.split("/"),n="";return t.length>3&&t[2]&&(n=t[2]),n},SU.checkValidTopBox=function(e){var t=SU.getTopBoxType(e);return"moof"===t||"styp"===t},SU.getTopBoxType=function(e){if(SU.isArrayBuffer(e)){var t=e.subarray(4,8);return String.fromCharCode.apply(null,t)}return null},SU.isArrayBuffer=function(e){return e instanceof ArrayBuffer||e instanceof Uint8Array},SU.getBufferData=function(e,t){var n=0,U=0,F=0,Q=0,i=0;if(!e||0===e.length)return{beforeBufLen:n,afterBufLen:U,beforeLastBuffEnd:F,afterFirstBuffEnd:Q,afterFirstBuffStart:i};Q=1/0,i=1/0;for(var l=0,r=e.length;l<r;l++){var a=e.end(l),d=e.start(l),o=a-d;a<t?(n+=o,F=a):d<=t&&t<=a?(n+=t-d,U+=a-t):(i=Math.min(d,i),Q=Math.min(a,Q),U+=o)}return{beforeBufLen:n,afterBufLen:U,beforeLastBuffEnd:F,afterFirstBuffEnd:Q}};var JU,mU,WU=SU,kU={exports:{}},EU={exports:{}},yU=function(e){return null!=e},fU=yU,NU={object:!0,function:!0,undefined:!0},bU=function(e){return!!fU(e)&&hasOwnProperty.call(NU,typeof e)},vU=function(e){if(!bU(e))return!1;try{return!!e.constructor&&e.constructor.prototype===e}catch(t){return!1}},TU=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(t){return!1}return!vU(e)},CU=/^\s*class[\s{/}]/,gU=Function.prototype.toString;var DU,XU,xU,LU,IU,GU,MU,YU,wU=function(e){return null!=e};function KU(){return LU?xU:(LU=1,xU=(mU?JU:(mU=1,JU=function(){try{return Object.keys("primitive"),!0}catch(e){return!1}}))()?Object.keys:function(){if(XU)return DU;XU=1;var e=wU,t=Object.keys;return DU=function(n){return t(e(n)?Object(n):n)}}())}var _U,jU,HU,PU,zU="function"==typeof(jU=Object.assign)&&(jU(_U={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),_U.foo+_U.bar+_U.trzy==="razdwatrzy")?Object.assign:function(){if(YU)return MU;YU=1;var e=KU(),t=function(){if(GU)return IU;GU=1;var e=wU;return IU=function(t){if(!e(t))throw new TypeError("Cannot use null or undefined");return t}}(),n=Math.max;return MU=function(U,F){var Q,i,l,r=n(arguments.length,2);for(U=Object(t(U)),l=function(e){try{U[e]=F[e]}catch(t){Q||(Q=t)}},i=1;i<r;++i)e(F=arguments[i]).forEach(l);if(void 0!==Q)throw Q;return U},MU}(),OU=wU,AU=Array.prototype.forEach,qU=Object.create,$U="razdwatrzy";var eF="function"==typeof $U.contains&&!0===$U.contains("dwa")&&!1===$U.contains("foo")?String.prototype.contains:function(){if(PU)return HU;PU=1;var e=String.prototype.indexOf;return HU=function(t){return e.call(this,t,arguments[1])>-1},HU}(),tF=yU,nF=function(e){return!!TU(e)&&!CU.test(gU.call(e))},UF=zU,FF=function(e){var t=qU(null);return AU.call(arguments,(function(e){OU(e)&&function(e,t){var n;for(n in e)t[n]=e[n]}(Object(e),t)})),t},QF=eF,iF=EU.exports=function(e,t){var n,U,F,Q,i;return arguments.length<2||"string"!=typeof e?(Q=t,t=e,e=null):Q=arguments[2],tF(e)?(n=QF.call(e,"c"),U=QF.call(e,"e"),F=QF.call(e,"w")):(n=F=!0,U=!1),i={value:t,configurable:n,enumerable:U,writable:F},Q?UF(FF(Q),i):i};iF.gs=function(e,t,n){var U,F,Q,i;return"string"!=typeof e?(Q=n,n=t,t=e,e=null):Q=arguments[3],tF(t)?nF(t)?tF(n)?nF(n)||(Q=n,n=void 0):n=void 0:(Q=t,t=n=void 0):t=void 0,tF(e)?(U=QF.call(e,"c"),F=QF.call(e,"e")):(U=!0,F=!1),i={get:t,set:n,configurable:U,enumerable:F},Q?UF(FF(Q),i):i};var lF,rF,aF,dF,oF,sF,BF,cF,RF,VF,uF,hF,ZF,SF,pF,JF,mF,WF,kF=EU.exports;lF=kU,rF=kU.exports,VF=kF,uF=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e},hF=Function.prototype.apply,ZF=Function.prototype.call,SF=Object.create,pF=Object.defineProperty,JF=Object.defineProperties,mF=Object.prototype.hasOwnProperty,WF={configurable:!0,enumerable:!1,writable:!0},dF=function(e,t){var n,U;return uF(t),U=this,aF.call(this,e,n=function(){oF.call(U,e,n),hF.call(t,this,arguments)}),n.__eeOnceListener__=t,this},sF=function(e){var t,n,U,F,Q;if(mF.call(this,"__ee__")&&(F=this.__ee__[e]))if("object"==typeof F){for(n=arguments.length,Q=new Array(n-1),t=1;t<n;++t)Q[t-1]=arguments[t];for(F=F.slice(),t=0;U=F[t];++t)hF.call(U,this,Q)}else switch(arguments.length){case 1:ZF.call(F,this);break;case 2:ZF.call(F,this,arguments[1]);break;case 3:ZF.call(F,this,arguments[1],arguments[2]);break;default:for(n=arguments.length,Q=new Array(n-1),t=1;t<n;++t)Q[t-1]=arguments[t];hF.call(F,this,Q)}},BF={on:aF=function(e,t){var n;return uF(t),mF.call(this,"__ee__")?n=this.__ee__:(n=WF.value=SF(null),pF(this,"__ee__",WF),WF.value=null),n[e]?"object"==typeof n[e]?n[e].push(t):n[e]=[n[e],t]:n[e]=t,this},once:dF,off:oF=function(e,t){var n,U,F,Q;if(uF(t),!mF.call(this,"__ee__"))return this;if(!(n=this.__ee__)[e])return this;if("object"==typeof(U=n[e]))for(Q=0;F=U[Q];++Q)F!==t&&F.__eeOnceListener__!==t||(2===U.length?n[e]=U[Q?0:1]:U.splice(Q,1));else U!==t&&U.__eeOnceListener__!==t||delete n[e];return this},emit:sF},cF={on:VF(aF),once:VF(dF),off:VF(oF),emit:VF(sF)},RF=JF({},cF),lF.exports=rF=function(e){return null==e?SF(RF):JF(Object(e),cF)},rF.methods=BF;var EF=Ut(kU.exports),yF=wU,fF={function:!0,object:!0},NF=function(e){return yF(e)&&fF[typeof e]||!1},bF=function(e){if(!NF(e))throw new TypeError(e+" is not an Object");return e},vF=Object.prototype.hasOwnProperty,TF=function(e){var t,n=arguments[1];if(bF(e),void 0===n)vF.call(e,"__ee__")&&delete e.__ee__;else{if(!(t=vF.call(e,"__ee__")&&e.__ee__))return;t[n]&&delete t[n]}},CF=Ut(TF),gF={exports:{}};!function(e,t){!function(e){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==nt?nt:"undefined"!=typeof self?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var U=function(e){return e&&e.Math==Math&&e},F=U("object"==typeof globalThis&&globalThis)||U("object"==typeof window&&window)||U("object"==typeof self&&self)||U("object"==typeof t&&t)||function(){return this}()||Function("return this")(),Q={},i=function(e){try{return!!e()}catch(fu){return!0}},l=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),r={},a={}.propertyIsEnumerable,d=Object.getOwnPropertyDescriptor,o=d&&!a.call({1:2},1);r.f=o?function(e){var t=d(this,e);return!!t&&t.enumerable}:a;var s=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},B={}.toString,c=function(e){return B.call(e).slice(8,-1)},R=c,V="".split,u=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==R(e)?V.call(e,""):Object(e)}:Object,h=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},Z=u,S=h,p=function(e){return Z(S(e))},J=function(e){return"object"==typeof e?null!==e:"function"==typeof e},m=J,W=function(e,t){if(!m(e))return e;var n,U;if(t&&"function"==typeof(n=e.toString)&&!m(U=n.call(e)))return U;if("function"==typeof(n=e.valueOf)&&!m(U=n.call(e)))return U;if(!t&&"function"==typeof(n=e.toString)&&!m(U=n.call(e)))return U;throw TypeError("Can't convert object to primitive value")},k=h,E=function(e){return Object(k(e))},y=E,f={}.hasOwnProperty,N=function(e,t){return f.call(y(e),t)},b=J,v=F.document,T=b(v)&&b(v.createElement),C=function(e){return T?v.createElement(e):{}},g=C,D=!l&&!i((function(){return 7!=Object.defineProperty(g("div"),"a",{get:function(){return 7}}).a})),X=l,x=r,L=s,I=p,G=W,M=N,Y=D,w=Object.getOwnPropertyDescriptor;Q.f=X?w:function(e,t){if(e=I(e),t=G(t,!0),Y)try{return w(e,t)}catch(n){}if(M(e,t))return L(!x.f.call(e,t),e[t])};var K={},_=J,j=function(e){if(!_(e))throw TypeError(String(e)+" is not an object");return e},H=l,P=D,z=j,O=W,A=Object.defineProperty;K.f=H?A:function(e,t,n){if(z(e),t=O(t,!0),z(n),P)try{return A(e,t,n)}catch(U){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var q=K,$=s,ee=l?function(e,t,n){return q.f(e,t,$(1,n))}:function(e,t,n){return e[t]=n,e},te={exports:{}},ne=F,Ue=ee,Fe=function(e,t){try{Ue(ne,e,t)}catch(n){ne[e]=t}return t},Qe=Fe,ie="__core-js_shared__",le=F[ie]||Qe(ie,{}),re=le,ae=Function.toString;"function"!=typeof re.inspectSource&&(re.inspectSource=function(e){return ae.call(e)});var de=re.inspectSource,oe=de,se=F.WeakMap,Be="function"==typeof se&&/native code/.test(oe(se)),ce={exports:{}},Re=le;(ce.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 Ve,ue,he,Ze=ce.exports,Se=0,pe=Math.random(),Je=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Se+pe).toString(36)},me=Je,We=Ze("keys"),ke=function(e){return We[e]||(We[e]=me(e))},Ee={},ye=Be,fe=J,Ne=ee,be=N,ve=le,Te=ke,Ce=Ee,ge="Object already initialized",De=F.WeakMap;if(ye||ve.state){var Xe=ve.state||(ve.state=new De),xe=Xe.get,Le=Xe.has,Ie=Xe.set;Ve=function(e,t){if(Le.call(Xe,e))throw new TypeError(ge);return t.facade=e,Ie.call(Xe,e,t),t},ue=function(e){return xe.call(Xe,e)||{}},he=function(e){return Le.call(Xe,e)}}else{var Ge=Te("state");Ce[Ge]=!0,Ve=function(e,t){if(be(e,Ge))throw new TypeError(ge);return t.facade=e,Ne(e,Ge,t),t},ue=function(e){return be(e,Ge)?e[Ge]:{}},he=function(e){return be(e,Ge)}}var Me={set:Ve,get:ue,has:he,enforce:function(e){return he(e)?ue(e):Ve(e,{})},getterFor:function(e){return function(t){var n;if(!fe(t)||(n=ue(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},Ye=F,we=ee,Ke=N,_e=Fe,je=de,He=Me.get,Pe=Me.enforce,ze=String(String).split("String");(te.exports=function(e,t,n,U){var F,Q=!!U&&!!U.unsafe,i=!!U&&!!U.enumerable,l=!!U&&!!U.noTargetGet;"function"==typeof n&&("string"!=typeof t||Ke(n,"name")||we(n,"name",t),(F=Pe(n)).source||(F.source=ze.join("string"==typeof t?t:""))),e!==Ye?(Q?!l&&e[t]&&(i=!0):delete e[t],i?e[t]=n:we(e,t,n)):i?e[t]=n:_e(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&He(this).source||je(this)}));var Oe=te.exports,Ae=F,qe=F,$e=function(e){return"function"==typeof e?e:void 0},et=function(e,t){return arguments.length<2?$e(Ae[e])||$e(qe[e]):Ae[e]&&Ae[e][t]||qe[e]&&qe[e][t]},tt={},Ut=Math.ceil,Ft=Math.floor,Qt=function(e){return isNaN(e=+e)?0:(e>0?Ft:Ut)(e)},it=Qt,lt=Math.min,rt=function(e){return e>0?lt(it(e),9007199254740991):0},at=Qt,dt=Math.max,ot=Math.min,st=function(e,t){var n=at(e);return n<0?dt(n+t,0):ot(n,t)},Bt=p,ct=rt,Rt=st,Vt=function(e){return function(t,n,U){var F,Q=Bt(t),i=ct(Q.length),l=Rt(U,i);if(e&&n!=n){for(;i>l;)if((F=Q[l++])!=F)return!0}else for(;i>l;l++)if((e||l in Q)&&Q[l]===n)return e||l||0;return!e&&-1}},ut={includes:Vt(!0),indexOf:Vt(!1)},ht=N,Zt=p,St=ut.indexOf,pt=Ee,Jt=function(e,t){var n,U=Zt(e),F=0,Q=[];for(n in U)!ht(pt,n)&&ht(U,n)&&Q.push(n);for(;t.length>F;)ht(U,n=t[F++])&&(~St(Q,n)||Q.push(n));return Q},mt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Wt=Jt,kt=mt.concat("length","prototype");tt.f=Object.getOwnPropertyNames||function(e){return Wt(e,kt)};var Et={};Et.f=Object.getOwnPropertySymbols;var yt=tt,ft=Et,Nt=j,bt=et("Reflect","ownKeys")||function(e){var t=yt.f(Nt(e)),n=ft.f;return n?t.concat(n(e)):t},vt=N,Tt=bt,Ct=Q,gt=K,Dt=i,Xt=/#|\.prototype\./,xt=function(e,t){var n=It[Lt(e)];return n==Mt||n!=Gt&&("function"==typeof t?Dt(t):!!t)},Lt=xt.normalize=function(e){return String(e).replace(Xt,".").toLowerCase()},It=xt.data={},Gt=xt.NATIVE="N",Mt=xt.POLYFILL="P",Yt=xt,wt=F,Kt=Q.f,_t=ee,jt=Oe,Ht=Fe,Pt=function(e,t){for(var n=Tt(t),U=gt.f,F=Ct.f,Q=0;Q<n.length;Q++){var i=n[Q];vt(e,i)||U(e,i,F(t,i))}},zt=Yt,Ot=function(e,t){var n,U,F,Q,i,l=e.target,r=e.global,a=e.stat;if(n=r?wt:a?wt[l]||Ht(l,{}):(wt[l]||{}).prototype)for(U in t){if(Q=t[U],F=e.noTargetGet?(i=Kt(n,U))&&i.value:n[U],!zt(r?U:l+(a?".":"#")+U,e.forced)&&void 0!==F){if(typeof Q==typeof F)continue;Pt(Q,F)}(e.sham||F&&F.sham)&&_t(Q,"sham",!0),jt(n,U,Q,e)}};function At(){At=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",l=F.toStringTag||"@@toStringTag";function r(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{r({},"")}catch(f){r=function(e,t,n){return e[t]=n}}function a(e,t,n,F){var Q=t&&t.prototype instanceof s?t:s,i=Object.create(Q.prototype),l=new k(F||[]);return U(i,"_invoke",{value:p(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(f){return{type:"throw",arg:f}}}e.wrap=a;var o={};function s(){}function B(){}function c(){}var R={};r(R,Q,(function(){return this}));var V=Object.getPrototypeOf,u=V&&V(V(E([])));u&&u!==t&&n.call(u,Q)&&(R=u);var h=c.prototype=s.prototype=Object.create(R);function Z(e){["next","throw","return"].forEach((function(t){r(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function F(U,Q,i,l){var r=d(e[U],e,Q);if("throw"!==r.type){var a=r.arg,o=a.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,l)}),(function(e){F("throw",e,i,l)})):t.resolve(o).then((function(e){a.value=e,i(a)}),(function(e){return F("throw",e,i,l)}))}l(r.arg)}var Q;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return Q=Q?Q.then(U,U):U()}})}function p(e,t,n){var U="suspendedStart";return function(F,Q){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(n.method=F,n.arg=Q;;){var i=n.delegate;if(i){var l=J(i,n);if(l){if(l===o)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var r=d(e,t,n);if("normal"===r.type){if(U=n.done?"completed":"suspendedYield",r.arg===o)continue;return{value:r.arg,done:n.done}}"throw"===r.type&&(U="completed",n.method="throw",n.arg=r.arg)}}}function J(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,J(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),o;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,o;var Q=F.arg;return Q?Q.done?(t[e.resultName]=Q.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):Q:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}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 W(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function E(e){if(e){var t=e[Q];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return B.prototype=c,U(h,"constructor",{value:c,configurable:!0}),U(c,"constructor",{value:B,configurable:!0}),B.displayName=r(c,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,r(e,l,"GeneratorFunction")),e.prototype=Object.create(h),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),r(S.prototype,i,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,U,F,Q){void 0===Q&&(Q=Promise);var i=new S(a(t,n,U,F),Q);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},Z(h),r(h,l,"Generator"),r(h,Q,(function(){return this})),r(h,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=E,k.prototype={constructor:k,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(W),!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 U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],i=Q.completion;if("root"===Q.tryLoc)return U("end");if(Q.tryLoc<=this.prev){var l=n.call(Q,"catchLoc"),r=n.call(Q,"finallyLoc");if(l&&r){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}else if(l){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0)}else{if(!r)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=t&&t<=Q.finallyLoc&&(Q=null);var i=Q?Q.completion:{};return i.type=e,i.arg=t,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(i)},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),o},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),W(n),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;W(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),o}},e}function qt(e){return(qt="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 $t(e,t,n,U,F,Q,i){try{var l=e[Q](i),r=l.value}catch(a){return void n(a)}l.done?t(r):Promise.resolve(r).then(U,F)}function en(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var Q=e.apply(t,n);function i(e){$t(Q,U,F,i,l,"next",e)}function l(e){$t(Q,U,F,i,l,"throw",e)}i(void 0)}))}}function tn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function nn(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,on(U.key),U)}}function Un(e,t,n){return t&&nn(e.prototype,t),n&&nn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Fn(e,t,n){return(t=on(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qn(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&&rn(e,t)}function ln(e){return(ln=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function rn(e,t){return(rn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function an(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function dn(e){var t=function(){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}}();return function(){var n,U=ln(e);if(t){var F=ln(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return 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 an(e)}(this,n)}}function on(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}Ot({global:!0},{globalThis:F});var sn,Bn,cn=et("navigator","userAgent")||"",Rn=cn,Vn=F.process,un=Vn&&Vn.versions,hn=un&&un.v8;hn?Bn=(sn=hn.split("."))[0]<4?1:sn[0]+sn[1]:Rn&&(!(sn=Rn.match(/Edge\/(\d+)/))||sn[1]>=74)&&(sn=Rn.match(/Chrome\/(\d+)/))&&(Bn=sn[1]);var Zn,Sn=Bn&&+Bn,pn=Sn,Jn=i,mn=!!Object.getOwnPropertySymbols&&!Jn((function(){return!String(Symbol())||!Symbol.sham&&pn&&pn<41})),Wn=mn&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,kn=F,En=N,yn=Je,fn=mn,Nn=Wn,bn=Ze("wks"),vn=kn.Symbol,Tn=Nn?vn:vn&&vn.withoutSetter||yn,Cn=function(e){return En(bn,e)&&(fn||"string"==typeof bn[e])||(fn&&En(vn,e)?bn[e]=vn[e]:bn[e]=Tn("Symbol."+e)),bn[e]},gn=Jt,Dn=mt,Xn=Object.keys||function(e){return gn(e,Dn)},xn=K,Ln=j,In=Xn,Gn=l?Object.defineProperties:function(e,t){Ln(e);for(var n,U=In(t),F=U.length,Q=0;F>Q;)xn.f(e,n=U[Q++],t[n]);return e},Mn=et("document","documentElement"),Yn=j,wn=Gn,Kn=mt,_n=Ee,jn=Mn,Hn=C,Pn="prototype",zn="script",On=ke("IE_PROTO"),An=function(){},qn=function(e){return"<"+zn+">"+e+"</"+zn+">"},$n=function(){try{Zn=document.domain&&new ActiveXObject("htmlfile")}catch(F){}var e,t,n;$n=Zn?function(e){e.write(qn("")),e.close();var t=e.parentWindow.Object;return e=null,t}(Zn):(t=Hn("iframe"),n="java"+zn+":",t.style.display="none",jn.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(qn("document.F=Object")),e.close(),e.F);for(var U=Kn.length;U--;)delete $n[Pn][Kn[U]];return $n()};_n[On]=!0;var eU=Object.create||function(e,t){var n;return null!==e?(An[Pn]=Yn(e),n=new An,An[Pn]=null,n[On]=e):n=$n(),void 0===t?n:wn(n,t)},tU=eU,nU=K,UU=Cn("unscopables"),FU=Array.prototype;null==FU[UU]&&nU.f(FU,UU,{configurable:!0,value:tU(null)});var QU,iU,lU,rU={},aU=!i((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),dU=N,oU=E,sU=aU,BU=ke("IE_PROTO"),cU=Object.prototype,RU=sU?Object.getPrototypeOf:function(e){return e=oU(e),dU(e,BU)?e[BU]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?cU:null},VU=i,uU=RU,hU=ee,ZU=N,SU=Cn("iterator"),pU=!1;[].keys&&("next"in(lU=[].keys())?(iU=uU(uU(lU)))!==Object.prototype&&(QU=iU):pU=!0),(null==QU||VU((function(){var e={};return QU[SU].call(e)!==e})))&&(QU={}),ZU(QU,SU)||hU(QU,SU,(function(){return this}));var JU={IteratorPrototype:QU,BUGGY_SAFARI_ITERATORS:pU},mU=K.f,WU=N,kU=Cn("toStringTag"),EU=function(e,t,n){e&&!WU(e=n?e:e.prototype,kU)&&mU(e,kU,{configurable:!0,value:t})},yU=JU.IteratorPrototype,fU=eU,NU=s,bU=EU,vU=rU,TU=function(){return this},CU=J,gU=j,DU=function(e){if(!CU(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},XU=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(U){}return function(n,U){return gU(n),DU(U),t?e.call(n,U):n.__proto__=U,n}}():void 0),xU=Ot,LU=function(e,t,n){var U=t+" Iterator";return e.prototype=fU(yU,{next:NU(1,n)}),bU(e,U,!1),vU[U]=TU,e},IU=RU,GU=XU,MU=EU,YU=ee,wU=Oe,KU=rU,_U=JU.IteratorPrototype,jU=JU.BUGGY_SAFARI_ITERATORS,HU=Cn("iterator"),PU="keys",zU="values",OU="entries",AU=function(){return this},qU=function(e,t,n,U,F,Q,i){LU(n,t,U);var l,r,a,d=function(e){if(e===F&&R)return R;if(!jU&&e in B)return B[e];switch(e){case PU:case zU:case OU:return function(){return new n(this,e)}}return function(){return new n(this)}},o=t+" Iterator",s=!1,B=e.prototype,c=B[HU]||B["@@iterator"]||F&&B[F],R=!jU&&c||d(F),V="Array"==t&&B.entries||c;if(V&&(l=IU(V.call(new e)),_U!==Object.prototype&&l.next&&(IU(l)!==_U&&(GU?GU(l,_U):"function"!=typeof l[HU]&&YU(l,HU,AU)),MU(l,o,!0))),F==zU&&c&&c.name!==zU&&(s=!0,R=function(){return c.call(this)}),B[HU]!==R&&YU(B,HU,R),KU[t]=R,F)if(r={values:d(zU),keys:Q?R:d(PU),entries:d(OU)},i)for(a in r)(jU||s||!(a in B))&&wU(B,a,r[a]);else xU({target:t,proto:!0,forced:jU||s},r);return r},$U=p,eF=function(e){FU[UU][e]=!0},tF=rU,nF=Me,UF=qU,FF="Array Iterator",QF=nF.set,iF=nF.getterFor(FF),lF=UF(Array,"Array",(function(e,t){QF(this,{type:FF,target:$U(e),index:0,kind:t})}),(function(){var e=iF(this),t=e.target,n=e.kind,U=e.index++;return!t||U>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:U,done:!1}:"values"==n?{value:t[U],done:!1}:{value:[U,t[U]],done:!1}}),"values");tF.Arguments=tF.Array,eF("keys"),eF("values"),eF("entries");var rF={exports:{}},aF=!i((function(){return Object.isExtensible(Object.preventExtensions({}))})),dF=Ee,oF=J,sF=N,BF=K.f,cF=aF,RF=Je("meta"),VF=0,uF=Object.isExtensible||function(){return!0},hF=function(e){BF(e,RF,{value:{objectID:"O"+ ++VF,weakData:{}}})},ZF=rF.exports={REQUIRED:!1,fastKey:function(e,t){if(!oF(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!sF(e,RF)){if(!uF(e))return"F";if(!t)return"E";hF(e)}return e[RF].objectID},getWeakData:function(e,t){if(!sF(e,RF)){if(!uF(e))return!0;if(!t)return!1;hF(e)}return e[RF].weakData},onFreeze:function(e){return cF&&ZF.REQUIRED&&uF(e)&&!sF(e,RF)&&hF(e),e}};dF[RF]=!0;var SF=rF.exports,pF=rU,JF=Cn("iterator"),mF=Array.prototype,WF=function(e){return void 0!==e&&(pF.Array===e||mF[JF]===e)},kF=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},EF=kF,yF=function(e,t,n){if(EF(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,U){return e.call(t,n,U)};case 3:return function(n,U,F){return e.call(t,n,U,F)}}return function(){return e.apply(t,arguments)}},fF={};fF[Cn("toStringTag")]="z";var NF="[object z]"===String(fF),bF=NF,vF=c,TF=Cn("toStringTag"),CF="Arguments"==vF(function(){return arguments}()),gF=bF?vF:function(e){var t,n,U;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),TF))?n:CF?vF(t):"Object"==(U=vF(t))&&"function"==typeof t.callee?"Arguments":U},DF=gF,XF=rU,xF=Cn("iterator"),LF=function(e){if(null!=e)return e[xF]||e["@@iterator"]||XF[DF(e)]},IF=j,GF=j,MF=WF,YF=rt,wF=yF,KF=LF,_F=function(e){var t=e.return;if(void 0!==t)return IF(t.call(e)).value},jF=function(e,t){this.stopped=e,this.result=t},HF=function(e,t,n){var U,F,Q,i,l,r,a,d=n&&n.that,o=!(!n||!n.AS_ENTRIES),s=!(!n||!n.IS_ITERATOR),B=!(!n||!n.INTERRUPTED),c=wF(t,d,1+o+B),R=function(e){return U&&_F(U),new jF(!0,e)},V=function(e){return o?(GF(e),B?c(e[0],e[1],R):c(e[0],e[1])):B?c(e,R):c(e)};if(s)U=e;else{if("function"!=typeof(F=KF(e)))throw TypeError("Target is not iterable");if(MF(F)){for(Q=0,i=YF(e.length);i>Q;Q++)if((l=V(e[Q]))&&l instanceof jF)return l;return new jF(!1)}U=F.call(e)}for(r=U.next;!(a=r.call(U)).done;){try{l=V(a.value)}catch(u){throw _F(U),u}if("object"==typeof l&&l&&l instanceof jF)return l}return new jF(!1)},PF=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e},zF=Cn("iterator"),OF=!1;try{var AF=0,qF={next:function(){return{done:!!AF++}},return:function(){OF=!0}};qF[zF]=function(){return this},Array.from(qF,(function(){throw 2}))}catch(Ch){}var $F=function(e,t){if(!t&&!OF)return!1;var n=!1;try{var U={};U[zF]=function(){return{next:function(){return{done:n=!0}}}},e(U)}catch(Ch){}return n},eQ=J,tQ=XU,nQ=function(e,t,n){var U,F;return tQ&&"function"==typeof(U=t.constructor)&&U!==n&&eQ(F=U.prototype)&&F!==n.prototype&&tQ(e,F),e},UQ=Ot,FQ=F,QQ=Yt,iQ=Oe,lQ=SF,rQ=HF,aQ=PF,dQ=J,oQ=i,sQ=$F,BQ=EU,cQ=nQ,RQ=Oe,VQ=function(e,t,n){for(var U in t)RQ(e,U,t[U],n);return e},uQ=et,hQ=K,ZQ=l,SQ=Cn("species"),pQ=function(e){var t=uQ(e),n=hQ.f;ZQ&&t&&!t[SQ]&&n(t,SQ,{configurable:!0,get:function(){return this}})},JQ=K.f,mQ=eU,WQ=VQ,kQ=yF,EQ=PF,yQ=HF,fQ=qU,NQ=pQ,bQ=l,vQ=SF.fastKey,TQ=Me.set,CQ=Me.getterFor,gQ={getConstructor:function(e,t,n,U){var F=e((function(e,Q){EQ(e,F,t),TQ(e,{type:t,index:mQ(null),first:void 0,last:void 0,size:0}),bQ||(e.size=0),null!=Q&&yQ(Q,e[U],{that:e,AS_ENTRIES:n})})),Q=CQ(t),i=function(e,t,n){var U,F,i=Q(e),r=l(e,t);return r?r.value=n:(i.last=r={index:F=vQ(t,!0),key:t,value:n,previous:U=i.last,next:void 0,removed:!1},i.first||(i.first=r),U&&(U.next=r),bQ?i.size++:e.size++,"F"!==F&&(i.index[F]=r)),e},l=function(e,t){var n,U=Q(e),F=vQ(t);if("F"!==F)return U.index[F];for(n=U.first;n;n=n.next)if(n.key==t)return n};return WQ(F.prototype,{clear:function(){for(var e=Q(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,bQ?e.size=0:this.size=0},delete:function(e){var t=this,n=Q(t),U=l(t,e);if(U){var F=U.next,i=U.previous;delete n.index[U.index],U.removed=!0,i&&(i.next=F),F&&(F.previous=i),n.first==U&&(n.first=F),n.last==U&&(n.last=i),bQ?n.size--:t.size--}return!!U},forEach:function(e){for(var t,n=Q(this),U=kQ(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:n.first;)for(U(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!l(this,e)}}),WQ(F.prototype,n?{get:function(e){var t=l(this,e);return t&&t.value},set:function(e,t){return i(this,0===e?0:e,t)}}:{add:function(e){return i(this,e=0===e?0:e,e)}}),bQ&&JQ(F.prototype,"size",{get:function(){return Q(this).size}}),F},setStrong:function(e,t,n){var U=t+" Iterator",F=CQ(t),Q=CQ(U);fQ(e,t,(function(e,t){TQ(this,{type:U,target:e,state:F(e),kind:t,last:void 0})}),(function(){for(var e=Q(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),NQ(t)}};!function(e,t,n){var U=-1!==e.indexOf("Map"),F=-1!==e.indexOf("Weak"),Q=U?"set":"add",i=FQ[e],l=i&&i.prototype,r=i,a={},d=function(e){var t=l[e];iQ(l,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(F&&!dQ(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return F&&!dQ(e)?void 0:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(F&&!dQ(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(QQ(e,"function"!=typeof i||!(F||l.forEach&&!oQ((function(){(new i).entries().next()})))))r=n.getConstructor(t,e,U,Q),lQ.REQUIRED=!0;else if(QQ(e,!0)){var o=new r,s=o[Q](F?{}:-0,1)!=o,B=oQ((function(){o.has(1)})),c=sQ((function(e){new i(e)})),R=!F&&oQ((function(){for(var e=new i,t=5;t--;)e[Q](t,t);return!e.has(-0)}));c||((r=t((function(t,n){aQ(t,r,e);var F=cQ(new i,t,r);return null!=n&&rQ(n,F[Q],{that:F,AS_ENTRIES:U}),F}))).prototype=l,l.constructor=r),(B||R)&&(d("delete"),d("has"),U&&d("get")),(R||s)&&d(Q),F&&l.clear&&delete l.clear}a[e]=r,UQ({global:!0,forced:r!=i},a),BQ(r,e),F||n.setStrong(r,e,U)}("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),gQ);var DQ=gF,XQ=NF?{}.toString:function(){return"[object "+DQ(this)+"]"};NF||Oe(Object.prototype,"toString",XQ,{unsafe:!0});var xQ=Qt,LQ=h,IQ=function(e){return function(t,n){var U,F,Q=String(LQ(t)),i=xQ(n),l=Q.length;return i<0||i>=l?e?"":void 0:(U=Q.charCodeAt(i))<55296||U>56319||i+1===l||(F=Q.charCodeAt(i+1))<56320||F>57343?e?Q.charAt(i):U:e?Q.slice(i,i+2):F-56320+(U-55296<<10)+65536}},GQ={codeAt:IQ(!1),charAt:IQ(!0)},MQ=GQ.charAt,YQ=Me,wQ=qU,KQ="String Iterator",_Q=YQ.set,jQ=YQ.getterFor(KQ);wQ(String,"String",(function(e){_Q(this,{type:KQ,string:String(e),index:0})}),(function(){var e,t=jQ(this),n=t.string,U=t.index;return U>=n.length?{value:void 0,done:!0}:(e=MQ(n,U),t.index+=e.length,{value:e,done:!1})}));var HQ=j,PQ=kF,zQ=function(){for(var e,t=HQ(this),n=PQ(t.delete),U=!0,F=0,Q=arguments.length;F<Q;F++)e=n.call(t,arguments[F]),U=U&&e;return!!U};Ot({target:"Map",proto:!0,real:!0,forced:!1},{deleteAll:function(){return zQ.apply(this,arguments)}});var OQ=function(e){return Map.prototype.entries.call(e)},AQ=j,qQ=yF,$Q=OQ,ei=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{every:function(e){var t=AQ(this),n=$Q(t),U=qQ(e,arguments.length>1?arguments[1]:void 0,3);return!ei(n,(function(e,n,F){if(!U(n,e,t))return F()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var ti=j,ni=kF,Ui=Cn("species"),Fi=function(e,t){var n,U=ti(e).constructor;return void 0===U||null==(n=ti(U)[Ui])?t:ni(n)},Qi=et,ii=j,li=kF,ri=yF,ai=Fi,di=OQ,oi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{filter:function(e){var t=ii(this),n=di(t),U=ri(e,arguments.length>1?arguments[1]:void 0,3),F=new(ai(t,Qi("Map"))),Q=li(F.set);return oi(n,(function(e,n){U(n,e,t)&&Q.call(F,e,n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var si=j,Bi=yF,ci=OQ,Ri=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{find:function(e){var t=si(this),n=ci(t),U=Bi(e,arguments.length>1?arguments[1]:void 0,3);return Ri(n,(function(e,n,F){if(U(n,e,t))return F(n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Vi=j,ui=yF,hi=OQ,Zi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{findKey:function(e){var t=Vi(this),n=hi(t),U=ui(e,arguments.length>1?arguments[1]:void 0,3);return Zi(n,(function(e,n,F){if(U(n,e,t))return F(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Si=j,pi=OQ,Ji=function(e,t){return e===t||e!=e&&t!=t},mi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{includes:function(e){return mi(pi(Si(this)),(function(t,n,U){if(Ji(n,e))return U()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var Wi=j,ki=OQ,Ei=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{keyOf:function(e){return Ei(ki(Wi(this)),(function(t,n,U){if(n===e)return U(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var yi=et,fi=j,Ni=kF,bi=yF,vi=Fi,Ti=OQ,Ci=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{mapKeys:function(e){var t=fi(this),n=Ti(t),U=bi(e,arguments.length>1?arguments[1]:void 0,3),F=new(vi(t,yi("Map"))),Q=Ni(F.set);return Ci(n,(function(e,n){Q.call(F,U(n,e,t),n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var gi=et,Di=j,Xi=kF,xi=yF,Li=Fi,Ii=OQ,Gi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{mapValues:function(e){var t=Di(this),n=Ii(t),U=xi(e,arguments.length>1?arguments[1]:void 0,3),F=new(Li(t,gi("Map"))),Q=Xi(F.set);return Gi(n,(function(e,n){Q.call(F,e,U(n,e,t))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var Mi=j,Yi=kF,wi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{merge:function(e){for(var t=Mi(this),n=Yi(t.set),U=0;U<arguments.length;)wi(arguments[U++],n,{that:t,AS_ENTRIES:!0});return t}});var Ki=j,_i=kF,ji=OQ,Hi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{reduce:function(e){var t=Ki(this),n=ji(t),U=arguments.length<2,F=U?void 0:arguments[1];if(_i(e),Hi(n,(function(n,Q){U?(U=!1,F=Q):F=e(F,Q,n,t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),U)throw TypeError("Reduce of empty map with no initial value");return F}});var Pi=j,zi=yF,Oi=OQ,Ai=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{some:function(e){var t=Pi(this),n=Oi(t),U=zi(e,arguments.length>1?arguments[1]:void 0,3);return Ai(n,(function(e,n,F){if(U(n,e,t))return F()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var qi=j,$i=kF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{update:function(e,t){var n=qi(this),U=arguments.length;$i(t);var F=n.has(e);if(!F&&U<3)throw TypeError("Updating absent value");var Q=F?n.get(e):$i(U>2?arguments[2]:void 0)(e,n);return n.set(e,t(Q,e,n)),n}});var el={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},tl=F,nl=el,Ul=lF,Fl=ee,Ql=Cn,il=Ql("iterator"),ll=Ql("toStringTag"),rl=Ul.values;for(var al in nl){var dl=tl[al],ol=dl&&dl.prototype;if(ol){if(ol[il]!==rl)try{Fl(ol,il,rl)}catch(Ch){ol[il]=rl}if(ol[ll]||Fl(ol,ll,al),nl[al])for(var sl in Ul)if(ol[sl]!==Ul[sl])try{Fl(ol,sl,Ul[sl])}catch(Ch){ol[sl]=Ul[sl]}}}var Bl=c,cl=Array.isArray||function(e){return"Array"==Bl(e)},Rl=J,Vl=cl,ul=Cn("species"),hl=function(e,t){var n;return Vl(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!Vl(n.prototype)?Rl(n)&&null===(n=n[ul])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)},Zl=yF,Sl=u,pl=E,Jl=rt,ml=hl,Wl=[].push,kl=function(e){var t=1==e,n=2==e,U=3==e,F=4==e,Q=6==e,i=7==e,l=5==e||Q;return function(r,a,d,o){for(var s,B,c=pl(r),R=Sl(c),V=Zl(a,d,3),u=Jl(R.length),h=0,Z=o||ml,S=t?Z(r,u):n||i?Z(r,0):void 0;u>h;h++)if((l||h in R)&&(B=V(s=R[h],h,c),e))if(t)S[h]=B;else if(B)switch(e){case 3:return!0;case 5:return s;case 6:return h;case 2:Wl.call(S,s)}else switch(e){case 4:return!1;case 7:Wl.call(S,s)}return Q?-1:U||F?F:S}},El={forEach:kl(0),map:kl(1),filter:kl(2),some:kl(3),every:kl(4),find:kl(5),findIndex:kl(6),filterOut:kl(7)},yl=i,fl=Sn,Nl=Cn("species"),bl=function(e){return fl>=51||!yl((function(){var t=[];return(t.constructor={})[Nl]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},vl=El.map;Ot({target:"Array",proto:!0,forced:!bl("map")},{map:function(e){return vl(this,e,arguments.length>1?arguments[1]:void 0)}});var Tl=E,Cl=Xn;Ot({target:"Object",stat:!0,forced:i((function(){Cl(1)}))},{keys:function(e){return Cl(Tl(e))}});var gl=W,Dl=K,Xl=s,xl=function(e,t,n){var U=gl(t);U in e?Dl.f(e,U,Xl(0,n)):e[U]=n},Ll=Ot,Il=i,Gl=cl,Ml=J,Yl=E,wl=rt,Kl=xl,_l=hl,jl=bl,Hl=Sn,Pl=Cn("isConcatSpreadable"),zl=9007199254740991,Ol="Maximum allowed index exceeded",Al=Hl>=51||!Il((function(){var e=[];return e[Pl]=!1,e.concat()[0]!==e})),ql=jl("concat"),$l=function(e){if(!Ml(e))return!1;var t=e[Pl];return void 0!==t?!!t:Gl(e)};Ll({target:"Array",proto:!0,forced:!Al||!ql},{concat:function(e){var t,n,U,F,Q,i=Yl(this),l=_l(i,0),r=0;for(t=-1,U=arguments.length;t<U;t++)if($l(Q=-1===t?i:arguments[t])){if(r+(F=wl(Q.length))>zl)throw TypeError(Ol);for(n=0;n<F;n++,r++)n in Q&&Kl(l,r,Q[n])}else{if(r>=zl)throw TypeError(Ol);Kl(l,r++,Q)}return l.length=r,l}});var er,tr,nr,Ur=F.Promise,Fr=/(?:iphone|ipod|ipad).*applewebkit/i.test(cn),Qr="process"==c(F.process),ir=F,lr=i,rr=yF,ar=Mn,dr=C,or=Fr,sr=Qr,Br=ir.location,cr=ir.setImmediate,Rr=ir.clearImmediate,Vr=ir.process,ur=ir.MessageChannel,hr=ir.Dispatch,Zr=0,Sr={},pr="onreadystatechange",Jr=function(e){if(Sr.hasOwnProperty(e)){var t=Sr[e];delete Sr[e],t()}},mr=function(e){return function(){Jr(e)}},Wr=function(e){Jr(e.data)},kr=function(e){ir.postMessage(e+"",Br.protocol+"//"+Br.host)};cr&&Rr||(cr=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return Sr[++Zr]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},er(Zr),Zr},Rr=function(e){delete Sr[e]},sr?er=function(e){Vr.nextTick(mr(e))}:hr&&hr.now?er=function(e){hr.now(mr(e))}:ur&&!or?(nr=(tr=new ur).port2,tr.port1.onmessage=Wr,er=rr(nr.postMessage,nr,1)):ir.addEventListener&&"function"==typeof postMessage&&!ir.importScripts&&Br&&"file:"!==Br.protocol&&!lr(kr)?(er=kr,ir.addEventListener("message",Wr,!1)):er=pr in dr("script")?function(e){ar.appendChild(dr("script"))[pr]=function(){ar.removeChild(this),Jr(e)}}:function(e){setTimeout(mr(e),0)});var Er,yr,fr,Nr,br,vr,Tr,Cr,gr={set:cr,clear:Rr},Dr=/web0s(?!.*chrome)/i.test(cn),Xr=F,xr=Q.f,Lr=gr.set,Ir=Fr,Gr=Dr,Mr=Qr,Yr=Xr.MutationObserver||Xr.WebKitMutationObserver,wr=Xr.document,Kr=Xr.process,_r=Xr.Promise,jr=xr(Xr,"queueMicrotask"),Hr=jr&&jr.value;Hr||(Er=function(){var e,t;for(Mr&&(e=Kr.domain)&&e.exit();yr;){t=yr.fn,yr=yr.next;try{t()}catch(Ch){throw yr?Nr():fr=void 0,Ch}}fr=void 0,e&&e.enter()},Ir||Mr||Gr||!Yr||!wr?_r&&_r.resolve?((Tr=_r.resolve(void 0)).constructor=_r,Cr=Tr.then,Nr=function(){Cr.call(Tr,Er)}):Nr=Mr?function(){Kr.nextTick(Er)}:function(){Lr.call(Xr,Er)}:(br=!0,vr=wr.createTextNode(""),new Yr(Er).observe(vr,{characterData:!0}),Nr=function(){vr.data=br=!br}));var Pr=Hr||function(e){var t={fn:e,next:void 0};fr&&(fr.next=t),yr||(yr=t,Nr()),fr=t},zr={},Or=kF,Ar=function(e){var t,n;this.promise=new e((function(e,U){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=U})),this.resolve=Or(t),this.reject=Or(n)};zr.f=function(e){return new Ar(e)};var qr,$r,ea,ta,na=j,Ua=J,Fa=zr,Qa=F,ia="object"==typeof window,la=Ot,ra=F,aa=et,da=Ur,oa=Oe,sa=VQ,Ba=XU,ca=EU,Ra=pQ,Va=J,ua=kF,ha=PF,Za=de,Sa=HF,pa=$F,Ja=Fi,ma=gr.set,Wa=Pr,ka=function(e,t){if(na(e),Ua(t)&&t.constructor===e)return t;var n=Fa.f(e);return(0,n.resolve)(t),n.promise},Ea=function(e,t){var n=Qa.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))},ya=zr,fa=function(e){try{return{error:!1,value:e()}}catch(Ch){return{error:!0,value:Ch}}},Na=Me,ba=Yt,va=ia,Ta=Qr,Ca=Sn,ga=Cn("species"),Da="Promise",Xa=Na.get,xa=Na.set,La=Na.getterFor(Da),Ia=da&&da.prototype,Ga=da,Ma=Ia,Ya=ra.TypeError,wa=ra.document,Ka=ra.process,_a=ya.f,ja=_a,Ha=!!(wa&&wa.createEvent&&ra.dispatchEvent),Pa="function"==typeof PromiseRejectionEvent,za="unhandledrejection",Oa=!1,Aa=ba(Da,(function(){var e=Za(Ga)!==String(Ga);if(!e&&66===Ca)return!0;if(Ca>=51&&/native code/.test(Ga))return!1;var t=new Ga((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))};return(t.constructor={})[ga]=n,!(Oa=t.then((function(){}))instanceof n)||!e&&va&&!Pa})),qa=Aa||!pa((function(e){Ga.all(e).catch((function(){}))})),$a=function(e){var t;return!(!Va(e)||"function"!=typeof(t=e.then))&&t},ed=function(e,t){if(!e.notified){e.notified=!0;var n=e.reactions;Wa((function(){for(var U=e.value,F=1==e.state,Q=0;n.length>Q;){var i,l,r,a=n[Q++],d=F?a.ok:a.fail,o=a.resolve,s=a.reject,B=a.domain;try{d?(F||(2===e.rejection&&Fd(e),e.rejection=1),!0===d?i=U:(B&&B.enter(),i=d(U),B&&(B.exit(),r=!0)),i===a.promise?s(Ya("Promise-chain cycle")):(l=$a(i))?l.call(i,o,s):o(i)):s(U)}catch(Ch){B&&!r&&B.exit(),s(Ch)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&nd(e)}))}},td=function(e,t,n){var U,F;Ha?((U=wa.createEvent("Event")).promise=t,U.reason=n,U.initEvent(e,!1,!0),ra.dispatchEvent(U)):U={promise:t,reason:n},!Pa&&(F=ra["on"+e])?F(U):e===za&&Ea("Unhandled promise rejection",n)},nd=function(e){ma.call(ra,(function(){var t,n=e.facade,U=e.value;if(Ud(e)&&(t=fa((function(){Ta?Ka.emit("unhandledRejection",U,n):td(za,n,U)})),e.rejection=Ta||Ud(e)?2:1,t.error))throw t.value}))},Ud=function(e){return 1!==e.rejection&&!e.parent},Fd=function(e){ma.call(ra,(function(){var t=e.facade;Ta?Ka.emit("rejectionHandled",t):td("rejectionhandled",t,e.value)}))},Qd=function(e,t,n){return function(U){e(t,U,n)}},id=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,ed(e,!0))},ld=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw Ya("Promise can't be resolved itself");var U=$a(t);U?Wa((function(){var n={done:!1};try{U.call(t,Qd(ld,n,e),Qd(id,n,e))}catch(Ch){id(n,Ch,e)}})):(e.value=t,e.state=1,ed(e,!1))}catch(Ch){id({done:!1},Ch,e)}}};if(Aa&&(Ma=(Ga=function(e){ha(this,Ga,Da),ua(e),qr.call(this);var t=Xa(this);try{e(Qd(ld,t),Qd(id,t))}catch(Ch){id(t,Ch)}}).prototype,(qr=function(e){xa(this,{type:Da,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=sa(Ma,{then:function(e,t){var n=La(this),U=_a(Ja(this,Ga));return U.ok="function"!=typeof e||e,U.fail="function"==typeof t&&t,U.domain=Ta?Ka.domain:void 0,n.parent=!0,n.reactions.push(U),0!=n.state&&ed(n,!1),U.promise},catch:function(e){return this.then(void 0,e)}}),$r=function(){var e=new qr,t=Xa(e);this.promise=e,this.resolve=Qd(ld,t),this.reject=Qd(id,t)},ya.f=_a=function(e){return e===Ga||e===ea?new $r(e):ja(e)},"function"==typeof da&&Ia!==Object.prototype)){ta=Ia.then,Oa||(oa(Ia,"then",(function(e,t){var n=this;return new Ga((function(e,t){ta.call(n,e,t)})).then(e,t)}),{unsafe:!0}),oa(Ia,"catch",Ma.catch,{unsafe:!0}));try{delete Ia.constructor}catch(Ch){}Ba&&Ba(Ia,Ma)}la({global:!0,wrap:!0,forced:Aa},{Promise:Ga}),ca(Ga,Da,!1),Ra(Da),ea=aa(Da),la({target:Da,stat:!0,forced:Aa},{reject:function(e){var t=_a(this);return t.reject.call(void 0,e),t.promise}}),la({target:Da,stat:!0,forced:Aa},{resolve:function(e){return ka(this,e)}}),la({target:Da,stat:!0,forced:qa},{all:function(e){var t=this,n=_a(t),U=n.resolve,F=n.reject,Q=fa((function(){var n=ua(t.resolve),Q=[],i=0,l=1;Sa(e,(function(e){var r=i++,a=!1;Q.push(void 0),l++,n.call(t,e).then((function(e){a||(a=!0,Q[r]=e,--l||U(Q))}),F)})),--l||U(Q)}));return Q.error&&F(Q.value),n.promise},race:function(e){var t=this,n=_a(t),U=n.reject,F=fa((function(){var F=ua(t.resolve);Sa(e,(function(e){F.call(t,e).then(n.resolve,U)}))}));return F.error&&U(F.value),n.promise}});var rd={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function U(){}function F(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function Q(e,t,U,Q,i){if("function"!=typeof U)throw new TypeError("The listener must be a function");var l=new F(U,Q||e,i),r=n?n+t:t;return e._events[r]?e._events[r].fn?e._events[r]=[e._events[r],l]:e._events[r].push(l):(e._events[r]=l,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new U:delete e._events[t]}function l(){this._events=new U,this._eventsCount=0}Object.create&&(U.prototype=Object.create(null),(new U).__proto__||(n=!1)),l.prototype.eventNames=function(){var e,U,F=[];if(0===this._eventsCount)return F;for(U in e=this._events)t.call(e,U)&&F.push(n?U.slice(1):U);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(e)):F},l.prototype.listeners=function(e){var t=n?n+e:e,U=this._events[t];if(!U)return[];if(U.fn)return[U.fn];for(var F=0,Q=U.length,i=new Array(Q);F<Q;F++)i[F]=U[F].fn;return i},l.prototype.listenerCount=function(e){var t=n?n+e:e,U=this._events[t];return U?U.fn?1:U.length:0},l.prototype.emit=function(e,t,U,F,Q,i){var l=n?n+e:e;if(!this._events[l])return!1;var r,a,d=this._events[l],o=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),o){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,U),!0;case 4:return d.fn.call(d.context,t,U,F),!0;case 5:return d.fn.call(d.context,t,U,F,Q),!0;case 6:return d.fn.call(d.context,t,U,F,Q,i),!0}for(a=1,r=new Array(o-1);a<o;a++)r[a-1]=arguments[a];d.fn.apply(d.context,r)}else{var s,B=d.length;for(a=0;a<B;a++)switch(d[a].once&&this.removeListener(e,d[a].fn,void 0,!0),o){case 1:d[a].fn.call(d[a].context);break;case 2:d[a].fn.call(d[a].context,t);break;case 3:d[a].fn.call(d[a].context,t,U);break;case 4:d[a].fn.call(d[a].context,t,U,F);break;default:if(!r)for(s=1,r=new Array(o-1);s<o;s++)r[s-1]=arguments[s];d[a].fn.apply(d[a].context,r)}}return!0},l.prototype.on=function(e,t,n){return Q(this,e,t,n,!1)},l.prototype.once=function(e,t,n){return Q(this,e,t,n,!0)},l.prototype.removeListener=function(e,t,U,F){var Q=n?n+e:e;if(!this._events[Q])return this;if(!t)return i(this,Q),this;var l=this._events[Q];if(l.fn)l.fn!==t||F&&!l.once||U&&l.context!==U||i(this,Q);else{for(var r=0,a=[],d=l.length;r<d;r++)(l[r].fn!==t||F&&!l[r].once||U&&l[r].context!==U)&&a.push(l[r]);a.length?this._events[Q]=1===a.length?a[0]:a:i(this,Q)}return this},l.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new U,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}(rd);var ad=n(rd.exports),dd={exports:{}};dd.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],U=e[1],F=e[2],Q=e[3];U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&F|~U&Q)+t[0]-680876936|0)<<7|n>>>25)+U|0)&U|~n&F)+t[1]-389564586|0)<<12|Q>>>20)+n|0)&n|~Q&U)+t[2]+606105819|0)<<17|F>>>15)+Q|0)&Q|~F&n)+t[3]-1044525330|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&F|~U&Q)+t[4]-176418897|0)<<7|n>>>25)+U|0)&U|~n&F)+t[5]+1200080426|0)<<12|Q>>>20)+n|0)&n|~Q&U)+t[6]-1473231341|0)<<17|F>>>15)+Q|0)&Q|~F&n)+t[7]-45705983|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&F|~U&Q)+t[8]+1770035416|0)<<7|n>>>25)+U|0)&U|~n&F)+t[9]-1958414417|0)<<12|Q>>>20)+n|0)&n|~Q&U)+t[10]-42063|0)<<17|F>>>15)+Q|0)&Q|~F&n)+t[11]-1990404162|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&F|~U&Q)+t[12]+1804603682|0)<<7|n>>>25)+U|0)&U|~n&F)+t[13]-40341101|0)<<12|Q>>>20)+n|0)&n|~Q&U)+t[14]-1502002290|0)<<17|F>>>15)+Q|0)&Q|~F&n)+t[15]+1236535329|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&Q|F&~Q)+t[1]-165796510|0)<<5|n>>>27)+U|0)&F|U&~F)+t[6]-1069501632|0)<<9|Q>>>23)+n|0)&U|n&~U)+t[11]+643717713|0)<<14|F>>>18)+Q|0)&n|Q&~n)+t[0]-373897302|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&Q|F&~Q)+t[5]-701558691|0)<<5|n>>>27)+U|0)&F|U&~F)+t[10]+38016083|0)<<9|Q>>>23)+n|0)&U|n&~U)+t[15]-660478335|0)<<14|F>>>18)+Q|0)&n|Q&~n)+t[4]-405537848|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&Q|F&~Q)+t[9]+568446438|0)<<5|n>>>27)+U|0)&F|U&~F)+t[14]-1019803690|0)<<9|Q>>>23)+n|0)&U|n&~U)+t[3]-187363961|0)<<14|F>>>18)+Q|0)&n|Q&~n)+t[8]+1163531501|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&Q|F&~Q)+t[13]-1444681467|0)<<5|n>>>27)+U|0)&F|U&~F)+t[2]-51403784|0)<<9|Q>>>23)+n|0)&U|n&~U)+t[7]+1735328473|0)<<14|F>>>18)+Q|0)&n|Q&~n)+t[12]-1926607734|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U^F^Q)+t[5]-378558|0)<<4|n>>>28)+U|0)^U^F)+t[8]-2022574463|0)<<11|Q>>>21)+n|0)^n^U)+t[11]+1839030562|0)<<16|F>>>16)+Q|0)^Q^n)+t[14]-35309556|0)<<23|U>>>9)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U^F^Q)+t[1]-1530992060|0)<<4|n>>>28)+U|0)^U^F)+t[4]+1272893353|0)<<11|Q>>>21)+n|0)^n^U)+t[7]-155497632|0)<<16|F>>>16)+Q|0)^Q^n)+t[10]-1094730640|0)<<23|U>>>9)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U^F^Q)+t[13]+681279174|0)<<4|n>>>28)+U|0)^U^F)+t[0]-358537222|0)<<11|Q>>>21)+n|0)^n^U)+t[3]-722521979|0)<<16|F>>>16)+Q|0)^Q^n)+t[6]+76029189|0)<<23|U>>>9)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U^F^Q)+t[9]-640364487|0)<<4|n>>>28)+U|0)^U^F)+t[12]-421815835|0)<<11|Q>>>21)+n|0)^n^U)+t[15]+530742520|0)<<16|F>>>16)+Q|0)^Q^n)+t[2]-995338651|0)<<23|U>>>9)+F|0,U=((U+=((Q=((Q+=(U^((n=((n+=(F^(U|~Q))+t[0]-198630844|0)<<6|n>>>26)+U|0)|~F))+t[7]+1126891415|0)<<10|Q>>>22)+n|0)^((F=((F+=(n^(Q|~U))+t[14]-1416354905|0)<<15|F>>>17)+Q|0)|~n))+t[5]-57434055|0)<<21|U>>>11)+F|0,U=((U+=((Q=((Q+=(U^((n=((n+=(F^(U|~Q))+t[12]+1700485571|0)<<6|n>>>26)+U|0)|~F))+t[3]-1894986606|0)<<10|Q>>>22)+n|0)^((F=((F+=(n^(Q|~U))+t[10]-1051523|0)<<15|F>>>17)+Q|0)|~n))+t[1]-2054922799|0)<<21|U>>>11)+F|0,U=((U+=((Q=((Q+=(U^((n=((n+=(F^(U|~Q))+t[8]+1873313359|0)<<6|n>>>26)+U|0)|~F))+t[15]-30611744|0)<<10|Q>>>22)+n|0)^((F=((F+=(n^(Q|~U))+t[6]-1560198380|0)<<15|F>>>17)+Q|0)|~n))+t[13]+1309151649|0)<<21|U>>>11)+F|0,U=((U+=((Q=((Q+=(U^((n=((n+=(F^(U|~Q))+t[4]-145523070|0)<<6|n>>>26)+U|0)|~F))+t[11]-1120210379|0)<<10|Q>>>22)+n|0)^((F=((F+=(n^(Q|~U))+t[2]+718787259|0)<<15|F>>>17)+Q|0)|~n))+t[9]-343485551|0)<<21|U>>>11)+F|0,e[0]=n+e[0]|0,e[1]=U+e[1]|0,e[2]=F+e[2]|0,e[3]=Q+e[3]|0}function U(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 F(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 Q(e){var t,F,Q,i,l,r,a=e.length,d=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=a;t+=64)n(d,U(e.substring(t-64,t)));for(F=(e=e.substring(t-64)).length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<F;t+=1)Q[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(Q[t>>2]|=128<<(t%4<<3),t>55)for(n(d,Q),t=0;t<16;t+=1)Q[t]=0;return i=(i=8*a).toString(16).match(/(.*?)(.{0,8})$/),l=parseInt(i[2],16),r=parseInt(i[1],16)||0,Q[14]=l,Q[15]=r,n(d,Q),d}function i(e){var t,U,Q,i,l,r,a=e.length,d=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=a;t+=64)n(d,F(e.subarray(t-64,t)));for(U=(e=t-64<a?e.subarray(t-64):new Uint8Array(0)).length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<U;t+=1)Q[t>>2]|=e[t]<<(t%4<<3);if(Q[t>>2]|=128<<(t%4<<3),t>55)for(n(d,Q),t=0;t<16;t+=1)Q[t]=0;return i=(i=8*a).toString(16).match(/(.*?)(.{0,8})$/),l=parseInt(i[2],16),r=parseInt(i[1],16)||0,Q[14]=l,Q[15]=r,n(d,Q),d}function l(e){var n,U="";for(n=0;n<4;n+=1)U+=t[e>>8*n+4&15]+t[e>>8*n&15];return U}function r(e){var t;for(t=0;t<e.length;t+=1)e[t]=l(e[t]);return e.join("")}function a(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),e}function d(e,t){var n,U=e.length,F=new ArrayBuffer(U),Q=new Uint8Array(F);for(n=0;n<U;n+=1)Q[n]=e.charCodeAt(n);return t?Q:F}function o(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function s(e,t,n){var U=new Uint8Array(e.byteLength+t.byteLength);return U.set(new Uint8Array(e)),U.set(new Uint8Array(t),e.byteLength),n?U:U.buffer}function B(e){var t,n=[],U=e.length;for(t=0;t<U-1;t+=2)n.push(parseInt(e.substr(t,2),16));return String.fromCharCode.apply(String,n)}function c(){this.reset()}return r(Q("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,U){var F,Q,i,l,r=this.byteLength,a=t(n,r),d=r;return U!==e&&(d=t(U,r)),a>d?new ArrayBuffer(0):(F=d-a,Q=new ArrayBuffer(F),i=new Uint8Array(Q),l=new Uint8Array(this,a,F),i.set(l),Q)}}(),c.prototype.append=function(e){return this.appendBinary(a(e)),this},c.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,F=this._buff.length;for(t=64;t<=F;t+=64)n(this._hash,U(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},c.prototype.end=function(e){var t,n,U=this._buff,F=U.length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<F;t+=1)Q[t>>2]|=U.charCodeAt(t)<<(t%4<<3);return this._finish(Q,F),n=r(this._hash),e&&(n=B(n)),this.reset(),n},c.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},c.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},c.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},c.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},c.prototype._finish=function(e,t){var U,F,Q,i=t;if(e[i>>2]|=128<<(i%4<<3),i>55)for(n(this._hash,e),i=0;i<16;i+=1)e[i]=0;U=(U=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),F=parseInt(U[2],16),Q=parseInt(U[1],16)||0,e[14]=F,e[15]=Q,n(this._hash,e)},c.hash=function(e,t){return c.hashBinary(a(e),t)},c.hashBinary=function(e,t){var n=r(Q(e));return t?B(n):n},c.ArrayBuffer=function(){this.reset()},c.ArrayBuffer.prototype.append=function(e){var t,U=s(this._buff.buffer,e,!0),Q=U.length;for(this._length+=e.byteLength,t=64;t<=Q;t+=64)n(this._hash,F(U.subarray(t-64,t)));return this._buff=t-64<Q?new Uint8Array(U.buffer.slice(t-64)):new Uint8Array(0),this},c.ArrayBuffer.prototype.end=function(e){var t,n,U=this._buff,F=U.length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<F;t+=1)Q[t>>2]|=U[t]<<(t%4<<3);return this._finish(Q,F),n=r(this._hash),e&&(n=B(n)),this.reset(),n},c.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},c.ArrayBuffer.prototype.getState=function(){var e=c.prototype.getState.call(this);return e.buff=o(e.buff),e},c.ArrayBuffer.prototype.setState=function(e){return e.buff=d(e.buff,!0),c.prototype.setState.call(this,e)},c.ArrayBuffer.prototype.destroy=c.prototype.destroy,c.ArrayBuffer.prototype._finish=c.prototype._finish,c.ArrayBuffer.hash=function(e,t){var n=r(i(new Uint8Array(e)));return t?B(n):n},c}();var od=n(dd.exports),sd=i,Bd=function(e,t){var n=[][e];return!!n&&sd((function(){n.call(null,t||function(){throw 1},1)}))},cd=Ot,Rd=p,Vd=[].join,ud=u!=Object,hd=Bd("join",",");cd({target:"Array",proto:!0,forced:ud||!hd},{join:function(e){return Vd.call(Rd(this),void 0===e?",":e)}});var Zd=function(e){return e>="0"&&e<="9"?e.charCodeAt(0)-"0".charCodeAt(0):e>="a"&&e<="z"?e.charCodeAt(0)-"a".charCodeAt(0)+10:255},Sd=function(e,t){var n,U=(e[0].charCodeAt()^e[1].charCodeAt()^e[2].charCodeAt())-"0".charCodeAt(0),F=t-U-1,Q=new Array(F),i=new Array(U);for(n=U;n>0;n--)i[U-n]=String.fromCharCode(e[t-U-2].charCodeAt()^e[t-U-1].charCodeAt()^e[t-n].charCodeAt());for(n=0;n<F;n++)Q[n]=e[n+1];return{convertKey:Q,convertLen:F,method:i.join(""),methodLen:U}},pd=function(e){var t=0;for(t=0;0!==e;t++)e&=e-1;return t},Jd=function(e,t,n){var U=e+pd(t)+n;return String.fromCharCode(255&U)},md=function(e,t,n){var U=e.charCodeAt()-pd(t)-n;return String.fromCharCode(255&U)},Wd=function(e,t,n){for(var U,F=85,Q=250,i=0;i<t;i++)i%2==1?(U=F^e[i].charCodeAt(),F=e[i].charCodeAt()):(U=Q^e[i].charCodeAt(),Q=e[i].charCodeAt()),e[i]=0===n?md(U,i,21):Jd(U,i,21);return e},kd=function(e,t,n){var U=85,F=250;Ed(e);for(var Q,i,l,r=0;r<t;r++){(l=e[r].charCodeAt(0))>127&&(l-=256),r%2==1?(Q=U^l,U=l,i=F):(Q=F^l,F=l,i=U),Q>127&&(Q-=256);var a=(0===n?md(Q,r,21):Jd(Q,r,21)).charCodeAt(0);a>127&&(a-=256);var d=a-i;d<0&&(d+=256),e[r]=String.fromCharCode(d)}return Ed(e),e};function Ed(e){for(var t,n=e.length,U=0;U<n&&U!==n-1;U+=2)t=e[U],e[U]=e[U+1],e[U+1]=t;return e}function yd(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,U=e;t=t||U.length;var F=Sd(U,t),Q=F.convertKey,i=F.convertLen;switch(F.method){case"11":case"22":case"appdevice":case"webdevice":Q=Wd(Q,i,n);break;case"app_v2":case"web_v2":Q=kd(Q,i,n)}var l=i-Zd(Q[0])-1,r=new Array(l+1);r[l]="";var a=0;for(a=0;a<l;a++)r[a]=Q[a+1];return r.join("")}var fd,Nd={exports:{}},bd="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,vd=bd,Td=l,Cd=F,gd=J,Dd=N,Xd=gF,xd=ee,Ld=Oe,Id=K.f,Gd=RU,Md=XU,Yd=Cn,wd=Je,Kd=Cd.Int8Array,_d=Kd&&Kd.prototype,jd=Cd.Uint8ClampedArray,Hd=jd&&jd.prototype,Pd=Kd&&Gd(Kd),zd=_d&&Gd(_d),Od=Object.prototype,Ad=Od.isPrototypeOf,qd=Yd("toStringTag"),$d=wd("TYPED_ARRAY_TAG"),eo=vd&&!!Md&&"Opera"!==Xd(Cd.opera),to=!1,no={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Uo={BigInt64Array:8,BigUint64Array:8},Fo=function(e){if(!gd(e))return!1;var t=Xd(e);return Dd(no,t)||Dd(Uo,t)};for(fd in no)Cd[fd]||(eo=!1);if((!eo||"function"!=typeof Pd||Pd===Function.prototype)&&(Pd=function(){throw TypeError("Incorrect invocation")},eo))for(fd in no)Cd[fd]&&Md(Cd[fd],Pd);if((!eo||!zd||zd===Od)&&(zd=Pd.prototype,eo))for(fd in no)Cd[fd]&&Md(Cd[fd].prototype,zd);if(eo&&Gd(Hd)!==zd&&Md(Hd,zd),Td&&!Dd(zd,qd))for(fd in to=!0,Id(zd,qd,{get:function(){return gd(this)?this[$d]:void 0}}),no)Cd[fd]&&xd(Cd[fd],$d,fd);var Qo={NATIVE_ARRAY_BUFFER_VIEWS:eo,TYPED_ARRAY_TAG:to&&$d,aTypedArray:function(e){if(Fo(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(Md){if(Ad.call(Pd,e))return e}else for(var t in no)if(Dd(no,fd)){var n=Cd[t];if(n&&(e===n||Ad.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(Td){if(n)for(var U in no){var F=Cd[U];if(F&&Dd(F.prototype,e))try{delete F.prototype[e]}catch(Ch){}}zd[e]&&!n||Ld(zd,e,n?t:eo&&_d[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var U,F;if(Td){if(Md){if(n)for(U in no)if((F=Cd[U])&&Dd(F,e))try{delete F[e]}catch(Ch){}if(Pd[e]&&!n)return;try{return Ld(Pd,e,n?t:eo&&Pd[e]||t)}catch(Ch){}}for(U in no)!(F=Cd[U])||F[e]&&!n||Ld(F,e,t)}},isView:function(e){if(!gd(e))return!1;var t=Xd(e);return"DataView"===t||Dd(no,t)||Dd(Uo,t)},isTypedArray:Fo,TypedArray:Pd,TypedArrayPrototype:zd},io=F,lo=i,ro=$F,ao=Qo.NATIVE_ARRAY_BUFFER_VIEWS,oo=io.ArrayBuffer,so=io.Int8Array,Bo=!ao||!lo((function(){so(1)}))||!lo((function(){new so(-1)}))||!ro((function(e){new so,new so(null),new so(1.5),new so(e)}),!0)||lo((function(){return 1!==new so(new oo(2),1,void 0).length})),co=Qt,Ro=rt,Vo=function(e){if(void 0===e)return 0;var t=co(e),n=Ro(t);if(t!==n)throw RangeError("Wrong length or index");return n},uo=Math.abs,ho=Math.pow,Zo=Math.floor,So=Math.log,po=Math.LN2,Jo=E,mo=st,Wo=rt,ko=function(e){for(var t=Jo(this),n=Wo(t.length),U=arguments.length,F=mo(U>1?arguments[1]:void 0,n),Q=U>2?arguments[2]:void 0,i=void 0===Q?n:mo(Q,n);i>F;)t[F++]=e;return t},Eo=F,yo=l,fo=bd,No=ee,bo=VQ,vo=i,To=PF,Co=Qt,go=rt,Do=Vo,Xo={pack:function(e,t,n){var U,F,Q,i=new Array(n),l=8*n-t-1,r=(1<<l)-1,a=r>>1,d=23===t?ho(2,-24)-ho(2,-77):0,o=e<0||0===e&&1/e<0?1:0,s=0;for((e=uo(e))!=e||e===1/0?(F=e!=e?1:0,U=r):(U=Zo(So(e)/po),e*(Q=ho(2,-U))<1&&(U--,Q*=2),(e+=U+a>=1?d/Q:d*ho(2,1-a))*Q>=2&&(U++,Q/=2),U+a>=r?(F=0,U=r):U+a>=1?(F=(e*Q-1)*ho(2,t),U+=a):(F=e*ho(2,a-1)*ho(2,t),U=0));t>=8;i[s++]=255&F,F/=256,t-=8);for(U=U<<t|F,l+=t;l>0;i[s++]=255&U,U/=256,l-=8);return i[--s]|=128*o,i},unpack:function(e,t){var n,U=e.length,F=8*U-t-1,Q=(1<<F)-1,i=Q>>1,l=F-7,r=U-1,a=e[r--],d=127&a;for(a>>=7;l>0;d=256*d+e[r],r--,l-=8);for(n=d&(1<<-l)-1,d>>=-l,l+=t;l>0;n=256*n+e[r],r--,l-=8);if(0===d)d=1-i;else{if(d===Q)return n?NaN:a?-1/0:1/0;n+=ho(2,t),d-=i}return(a?-1:1)*n*ho(2,d-t)}},xo=RU,Lo=XU,Io=tt.f,Go=K.f,Mo=ko,Yo=EU,wo=Me.get,Ko=Me.set,_o="ArrayBuffer",jo="DataView",Ho="prototype",Po="Wrong index",zo=Eo[_o],Oo=zo,Ao=Eo[jo],qo=Ao&&Ao[Ho],$o=Object.prototype,es=Eo.RangeError,ts=Xo.pack,ns=Xo.unpack,Us=function(e){return[255&e]},Fs=function(e){return[255&e,e>>8&255]},Qs=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},is=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},ls=function(e){return ts(e,23,4)},rs=function(e){return ts(e,52,8)},as=function(e,t){Go(e[Ho],t,{get:function(){return wo(this)[t]}})},ds=function(e,t,n,U){var F=Do(n),Q=wo(e);if(F+t>Q.byteLength)throw es(Po);var i=wo(Q.buffer).bytes,l=F+Q.byteOffset,r=i.slice(l,l+t);return U?r:r.reverse()},os=function(e,t,n,U,F,Q){var i=Do(n),l=wo(e);if(i+t>l.byteLength)throw es(Po);for(var r=wo(l.buffer).bytes,a=i+l.byteOffset,d=U(+F),o=0;o<t;o++)r[a+o]=d[Q?o:t-o-1]};if(fo){if(!vo((function(){zo(1)}))||!vo((function(){new zo(-1)}))||vo((function(){return new zo,new zo(1.5),new zo(NaN),zo.name!=_o}))){for(var ss,Bs=(Oo=function(e){return To(this,Oo),new zo(Do(e))})[Ho]=zo[Ho],cs=Io(zo),Rs=0;cs.length>Rs;)(ss=cs[Rs++])in Oo||No(Oo,ss,zo[ss]);Bs.constructor=Oo}Lo&&xo(qo)!==$o&&Lo(qo,$o);var Vs=new Ao(new Oo(2)),us=qo.setInt8;Vs.setInt8(0,2147483648),Vs.setInt8(1,2147483649),!Vs.getInt8(0)&&Vs.getInt8(1)||bo(qo,{setInt8:function(e,t){us.call(this,e,t<<24>>24)},setUint8:function(e,t){us.call(this,e,t<<24>>24)}},{unsafe:!0})}else Oo=function(e){To(this,Oo,_o);var t=Do(e);Ko(this,{bytes:Mo.call(new Array(t),0),byteLength:t}),yo||(this.byteLength=t)},Ao=function(e,t,n){To(this,Ao,jo),To(e,Oo,jo);var U=wo(e).byteLength,F=Co(t);if(F<0||F>U)throw es("Wrong offset");if(F+(n=void 0===n?U-F:go(n))>U)throw es("Wrong length");Ko(this,{buffer:e,byteLength:n,byteOffset:F}),yo||(this.buffer=e,this.byteLength=n,this.byteOffset=F)},yo&&(as(Oo,"byteLength"),as(Ao,"buffer"),as(Ao,"byteLength"),as(Ao,"byteOffset")),bo(Ao[Ho],{getInt8:function(e){return ds(this,1,e)[0]<<24>>24},getUint8:function(e){return ds(this,1,e)[0]},getInt16:function(e){var t=ds(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=ds(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return is(ds(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return is(ds(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return ns(ds(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return ns(ds(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){os(this,1,e,Us,t)},setUint8:function(e,t){os(this,1,e,Us,t)},setInt16:function(e,t){os(this,2,e,Fs,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){os(this,2,e,Fs,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){os(this,4,e,Qs,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){os(this,4,e,Qs,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){os(this,4,e,ls,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){os(this,8,e,rs,t,arguments.length>2?arguments[2]:void 0)}});Yo(Oo,_o),Yo(Ao,jo);var hs={ArrayBuffer:Oo,DataView:Ao},Zs=Qt,Ss=function(e){var t=Zs(e);if(t<0)throw RangeError("The argument can't be less than 0");return t},ps=function(e,t){var n=Ss(e);if(n%t)throw RangeError("Wrong offset");return n},Js=E,ms=rt,Ws=LF,ks=WF,Es=yF,ys=Qo.aTypedArrayConstructor,fs=Ot,Ns=F,bs=l,vs=Bo,Ts=Qo,Cs=hs,gs=PF,Ds=s,Xs=ee,xs=rt,Ls=Vo,Is=ps,Gs=W,Ms=N,Ys=gF,ws=J,Ks=eU,_s=XU,js=tt.f,Hs=function(e){var t,n,U,F,Q,i,l=Js(e),r=arguments.length,a=r>1?arguments[1]:void 0,d=void 0!==a,o=Ws(l);if(null!=o&&!ks(o))for(i=(Q=o.call(l)).next,l=[];!(F=i.call(Q)).done;)l.push(F.value);for(d&&r>2&&(a=Es(a,arguments[2],2)),n=ms(l.length),U=new(ys(this))(n),t=0;n>t;t++)U[t]=d?a(l[t],t):l[t];return U},Ps=El.forEach,zs=pQ,Os=K,As=Q,qs=nQ,$s=Me.get,eB=Me.set,tB=Os.f,nB=As.f,UB=Math.round,FB=Ns.RangeError,QB=Cs.ArrayBuffer,iB=Cs.DataView,lB=Ts.NATIVE_ARRAY_BUFFER_VIEWS,rB=Ts.TYPED_ARRAY_TAG,aB=Ts.TypedArray,dB=Ts.TypedArrayPrototype,oB=Ts.aTypedArrayConstructor,sB=Ts.isTypedArray,BB="BYTES_PER_ELEMENT",cB="Wrong length",RB=function(e,t){for(var n=0,U=t.length,F=new(oB(e))(U);U>n;)F[n]=t[n++];return F},VB=function(e,t){tB(e,t,{get:function(){return $s(this)[t]}})},uB=function(e){var t;return e instanceof QB||"ArrayBuffer"==(t=Ys(e))||"SharedArrayBuffer"==t},hB=function(e,t){return sB(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},ZB=function(e,t){return hB(e,t=Gs(t,!0))?Ds(2,e[t]):nB(e,t)},SB=function(e,t,n){return!(hB(e,t=Gs(t,!0))&&ws(n)&&Ms(n,"value"))||Ms(n,"get")||Ms(n,"set")||n.configurable||Ms(n,"writable")&&!n.writable||Ms(n,"enumerable")&&!n.enumerable?tB(e,t,n):(e[t]=n.value,e)};bs?(lB||(As.f=ZB,Os.f=SB,VB(dB,"buffer"),VB(dB,"byteOffset"),VB(dB,"byteLength"),VB(dB,"length")),fs({target:"Object",stat:!0,forced:!lB},{getOwnPropertyDescriptor:ZB,defineProperty:SB}),Nd.exports=function(e,t,n){var U=e.match(/\d+$/)[0]/8,F=e+(n?"Clamped":"")+"Array",Q="get"+e,i="set"+e,l=Ns[F],r=l,a=r&&r.prototype,d={},o=function(e,t){tB(e,t,{get:function(){return e=t,(n=$s(this)).view[Q](e*U+n.byteOffset,!0);var e,n},set:function(e){return F=t,Q=e,l=$s(this),n&&(Q=(Q=UB(Q))<0?0:Q>255?255:255&Q),void l.view[i](F*U+l.byteOffset,Q,!0);var F,Q,l},enumerable:!0})};lB?vs&&(r=t((function(e,t,n,Q){return gs(e,r,F),qs(ws(t)?uB(t)?void 0!==Q?new l(t,Is(n,U),Q):void 0!==n?new l(t,Is(n,U)):new l(t):sB(t)?RB(r,t):Hs.call(r,t):new l(Ls(t)),e,r)})),_s&&_s(r,aB),Ps(js(l),(function(e){e in r||Xs(r,e,l[e])})),r.prototype=a):(r=t((function(e,t,n,Q){gs(e,r,F);var i,l,a,d=0,s=0;if(ws(t)){if(!uB(t))return sB(t)?RB(r,t):Hs.call(r,t);i=t,s=Is(n,U);var B=t.byteLength;if(void 0===Q){if(B%U)throw FB(cB);if((l=B-s)<0)throw FB(cB)}else if((l=xs(Q)*U)+s>B)throw FB(cB);a=l/U}else a=Ls(t),i=new QB(l=a*U);for(eB(e,{buffer:i,byteOffset:s,byteLength:l,length:a,view:new iB(i)});d<a;)o(e,d++)})),_s&&_s(r,aB),a=r.prototype=Ks(dB)),a.constructor!==r&&Xs(a,"constructor",r),rB&&Xs(a,rB,F),d[F]=r,fs({global:!0,forced:r!=l,sham:!lB},d),BB in r||Xs(r,BB,U),BB in a||Xs(a,BB,U),zs(F)}):Nd.exports=function(){};var pB=Nd.exports;pB("Uint8",(function(e){return function(t,n,U){return e(this,t,n,U)}}));var JB=E,mB=st,WB=rt,kB=Math.min,EB=[].copyWithin||function(e,t){var n=JB(this),U=WB(n.length),F=mB(e,U),Q=mB(t,U),i=arguments.length>2?arguments[2]:void 0,l=kB((void 0===i?U:mB(i,U))-Q,U-F),r=1;for(Q<F&&F<Q+l&&(r=-1,Q+=l-1,F+=l-1);l-- >0;)Q in n?n[F]=n[Q]:delete n[F],F+=r,Q+=r;return n},yB=EB,fB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("copyWithin",(function(e,t){return yB.call(fB(this),e,t,arguments.length>2?arguments[2]:void 0)}));var NB=El.every,bB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("every",(function(e){return NB(bB(this),e,arguments.length>1?arguments[1]:void 0)}));var vB=ko,TB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("fill",(function(e){return vB.apply(TB(this),arguments)}));var CB=Qo.aTypedArrayConstructor,gB=Fi,DB=El.filter,XB=function(e,t){for(var n=gB(e,e.constructor),U=0,F=t.length,Q=new(CB(n))(F);F>U;)Q[U]=t[U++];return Q},xB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("filter",(function(e){var t=DB(xB(this),e,arguments.length>1?arguments[1]:void 0);return XB(this,t)}));var LB=El.find,IB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("find",(function(e){return LB(IB(this),e,arguments.length>1?arguments[1]:void 0)}));var GB=El.findIndex,MB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("findIndex",(function(e){return GB(MB(this),e,arguments.length>1?arguments[1]:void 0)}));var YB=El.forEach,wB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("forEach",(function(e){YB(wB(this),e,arguments.length>1?arguments[1]:void 0)}));var KB=ut.includes,_B=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("includes",(function(e){return KB(_B(this),e,arguments.length>1?arguments[1]:void 0)}));var jB=ut.indexOf,HB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("indexOf",(function(e){return jB(HB(this),e,arguments.length>1?arguments[1]:void 0)}));var PB=F,zB=Qo,OB=lF,AB=Cn("iterator"),qB=PB.Uint8Array,$B=OB.values,ec=OB.keys,tc=OB.entries,nc=zB.aTypedArray,Uc=zB.exportTypedArrayMethod,Fc=qB&&qB.prototype[AB],Qc=!!Fc&&("values"==Fc.name||null==Fc.name),ic=function(){return $B.call(nc(this))};Uc("entries",(function(){return tc.call(nc(this))})),Uc("keys",(function(){return ec.call(nc(this))})),Uc("values",ic,!Qc),Uc(AB,ic,!Qc);var lc=Qo.aTypedArray,rc=[].join;(0,Qo.exportTypedArrayMethod)("join",(function(e){return rc.apply(lc(this),arguments)}));var ac=p,dc=Qt,oc=rt,sc=Bd,Bc=Math.min,cc=[].lastIndexOf,Rc=!!cc&&1/[1].lastIndexOf(1,-0)<0,Vc=sc("lastIndexOf"),uc=Rc||!Vc?function(e){if(Rc)return cc.apply(this,arguments)||0;var t=ac(this),n=oc(t.length),U=n-1;for(arguments.length>1&&(U=Bc(U,dc(arguments[1]))),U<0&&(U=n+U);U>=0;U--)if(U in t&&t[U]===e)return U||0;return-1}:cc,hc=uc,Zc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("lastIndexOf",(function(e){return hc.apply(Zc(this),arguments)}));var Sc=El.map,pc=Fi,Jc=Qo.aTypedArray,mc=Qo.aTypedArrayConstructor;(0,Qo.exportTypedArrayMethod)("map",(function(e){return Sc(Jc(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(mc(pc(e,e.constructor)))(t)}))}));var Wc=kF,kc=E,Ec=u,yc=rt,fc=function(e){return function(t,n,U,F){Wc(n);var Q=kc(t),i=Ec(Q),l=yc(Q.length),r=e?l-1:0,a=e?-1:1;if(U<2)for(;;){if(r in i){F=i[r],r+=a;break}if(r+=a,e?r<0:l<=r)throw TypeError("Reduce of empty array with no initial value")}for(;e?r>=0:l>r;r+=a)r in i&&(F=n(F,i[r],r,Q));return F}},Nc={left:fc(!1),right:fc(!0)},bc=Nc.left,vc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("reduce",(function(e){return bc(vc(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var Tc=Nc.right,Cc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("reduceRight",(function(e){return Tc(Cc(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var gc=Qo.aTypedArray,Dc=Qo.exportTypedArrayMethod,Xc=Math.floor;Dc("reverse",(function(){for(var e,t=this,n=gc(t).length,U=Xc(n/2),F=0;F<U;)e=t[F],t[F++]=t[--n],t[n]=e;return t}));var xc=rt,Lc=ps,Ic=E,Gc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("set",(function(e){Gc(this);var t=Lc(arguments.length>1?arguments[1]:void 0,1),n=this.length,U=Ic(e),F=xc(U.length),Q=0;if(F+t>n)throw RangeError("Wrong length");for(;Q<F;)this[t+Q]=U[Q++]}),i((function(){new Int8Array(1).set({})})));var Mc=Fi,Yc=Qo.aTypedArray,wc=Qo.aTypedArrayConstructor,Kc=[].slice;(0,Qo.exportTypedArrayMethod)("slice",(function(e,t){for(var n=Kc.call(Yc(this),e,t),U=Mc(this,this.constructor),F=0,Q=n.length,i=new(wc(U))(Q);Q>F;)i[F]=n[F++];return i}),i((function(){new Int8Array(1).slice()})));var _c=El.some,jc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("some",(function(e){return _c(jc(this),e,arguments.length>1?arguments[1]:void 0)}));var Hc=Qo.aTypedArray,Pc=[].sort;(0,Qo.exportTypedArrayMethod)("sort",(function(e){return Pc.call(Hc(this),e)}));var zc=rt,Oc=st,Ac=Fi,qc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("subarray",(function(e,t){var n=qc(this),U=n.length,F=Oc(e,U);return new(Ac(n,n.constructor))(n.buffer,n.byteOffset+F*n.BYTES_PER_ELEMENT,zc((void 0===t?U:Oc(t,U))-F))}));var $c=Qo,eR=i,tR=F.Int8Array,nR=$c.aTypedArray,UR=$c.exportTypedArrayMethod,FR=[].toLocaleString,QR=[].slice,iR=!!tR&&eR((function(){FR.call(new tR(1))}));UR("toLocaleString",(function(){return FR.apply(iR?QR.call(nR(this)):nR(this),arguments)}),eR((function(){return[1,2].toLocaleString()!=new tR([1,2]).toLocaleString()}))||!eR((function(){tR.prototype.toLocaleString.call([1,2])})));var lR=Qo.exportTypedArrayMethod,rR=i,aR=F.Uint8Array,dR=aR&&aR.prototype||{},oR=[].toString,sR=[].join;rR((function(){oR.call({})}))&&(oR=function(){return sR.call(this)});var BR=dR.toString!=oR;lR("toString",oR,BR);var cR=El.forEach,RR=Bd("forEach")?[].forEach:function(e){return cR(this,e,arguments.length>1?arguments[1]:void 0)},VR=F,uR=el,hR=RR,ZR=ee;for(var SR in uR){var pR=VR[SR],JR=pR&&pR.prototype;if(JR&&JR.forEach!==hR)try{ZR(JR,"forEach",hR)}catch(Ch){JR.forEach=hR}}pB("Uint16",(function(e){return function(t,n,U){return e(this,t,n,U)}}));var mR=j,WR=function(){var e=mR(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},kR={},ER=i;function yR(e,t){return RegExp(e,t)}kR.UNSUPPORTED_Y=ER((function(){var e=yR("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),kR.BROKEN_CARET=ER((function(){var e=yR("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var fR,NR,bR=WR,vR=kR,TR=Ze,CR=RegExp.prototype.exec,gR=TR("native-string-replace",String.prototype.replace),DR=CR,XR=(fR=/a/,NR=/b*/g,CR.call(fR,"a"),CR.call(NR,"a"),0!==fR.lastIndex||0!==NR.lastIndex),xR=vR.UNSUPPORTED_Y||vR.BROKEN_CARET,LR=void 0!==/()??/.exec("")[1];(XR||LR||xR)&&(DR=function(e){var t,n,U,F,Q=this,i=xR&&Q.sticky,l=bR.call(Q),r=Q.source,a=0,d=e;return i&&(-1===(l=l.replace("y","")).indexOf("g")&&(l+="g"),d=String(e).slice(Q.lastIndex),Q.lastIndex>0&&(!Q.multiline||Q.multiline&&"\n"!==e[Q.lastIndex-1])&&(r="(?: "+r+")",d=" "+d,a++),n=new RegExp("^(?:"+r+")",l)),LR&&(n=new RegExp("^"+r+"$(?!\\s)",l)),XR&&(t=Q.lastIndex),U=CR.call(i?n:Q,d),i?U?(U.input=U.input.slice(a),U[0]=U[0].slice(a),U.index=Q.lastIndex,Q.lastIndex+=U[0].length):Q.lastIndex=0:XR&&U&&(Q.lastIndex=Q.global?U.index+U[0].length:t),LR&&U&&U.length>1&&gR.call(U[0],n,(function(){for(F=1;F<arguments.length-2;F++)void 0===arguments[F]&&(U[F]=void 0)})),U});var IR=DR;Ot({target:"RegExp",proto:!0,forced:/./.exec!==IR},{exec:IR});var GR=Oe,MR=IR,YR=i,wR=Cn,KR=ee,_R=wR("species"),jR=RegExp.prototype,HR=!YR((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),PR="$0"==="a".replace(/./,"$0"),zR=wR("replace"),OR=!!/./[zR]&&""===/./[zR]("a","$0"),AR=!YR((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]})),qR=function(e,t,n,U){var F=wR(e),Q=!YR((function(){var t={};return t[F]=function(){return 7},7!=""[e](t)})),i=Q&&!YR((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[_R]=function(){return n},n.flags="",n[F]=/./[F]),n.exec=function(){return t=!0,null},n[F](""),!t}));if(!Q||!i||"replace"===e&&(!HR||!PR||OR)||"split"===e&&!AR){var l=/./[F],r=n(F,""[e],(function(e,t,n,U,F){var i=t.exec;return i===MR||i===jR.exec?Q&&!F?{done:!0,value:l.call(t,n,U)}:{done:!0,value:e.call(n,t,U)}:{done:!1}}),{REPLACE_KEEPS_$0:PR,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:OR}),a=r[0],d=r[1];GR(String.prototype,e,a),GR(jR,F,2==t?function(e,t){return d.call(e,this,t)}:function(e){return d.call(e,this)})}U&&KR(jR[F],"sham",!0)},$R=GQ.charAt,eV=function(e,t,n){return t+(n?$R(e,t).length:1)},tV=E,nV=Math.floor,UV="".replace,FV=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,QV=/\$([$&'`]|\d{1,2})/g,iV=c,lV=IR,rV=function(e,t){var n=e.exec;if("function"==typeof n){var U=n.call(e,t);if("object"!=typeof U)throw TypeError("RegExp exec method returned something other than an Object or null");return U}if("RegExp"!==iV(e))throw TypeError("RegExp#exec called on incompatible receiver");return lV.call(e,t)},aV=qR,dV=j,oV=rt,sV=Qt,BV=h,cV=eV,RV=function(e,t,n,U,F,Q){var i=n+e.length,l=U.length,r=QV;return void 0!==F&&(F=tV(F),r=FV),UV.call(Q,r,(function(Q,r){var a;switch(r.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(i);case"<":a=F[r.slice(1,-1)];break;default:var d=+r;if(0===d)return Q;if(d>l){var o=nV(d/10);return 0===o?Q:o<=l?void 0===U[o-1]?r.charAt(1):U[o-1]+r.charAt(1):Q}a=U[d-1]}return void 0===a?"":a}))},VV=rV,uV=Math.max,hV=Math.min;aV("replace",2,(function(e,t,n,U){var F=U.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,Q=U.REPLACE_KEEPS_$0,i=F?"$":"$0";return[function(n,U){var F=BV(this),Q=null==n?void 0:n[e];return void 0!==Q?Q.call(n,F,U):t.call(String(F),n,U)},function(e,U){if(!F&&Q||"string"==typeof U&&-1===U.indexOf(i)){var l=n(t,e,this,U);if(l.done)return l.value}var r=dV(e),a=String(this),d="function"==typeof U;d||(U=String(U));var o=r.global;if(o){var s=r.unicode;r.lastIndex=0}for(var B=[];;){var c=VV(r,a);if(null===c)break;if(B.push(c),!o)break;""===String(c[0])&&(r.lastIndex=cV(a,oV(r.lastIndex),s))}for(var R,V="",u=0,h=0;h<B.length;h++){c=B[h];for(var Z=String(c[0]),S=uV(hV(sV(c.index),a.length),0),p=[],J=1;J<c.length;J++)p.push(void 0===(R=c[J])?R:String(R));var m=c.groups;if(d){var W=[Z].concat(p,S,a);void 0!==m&&W.push(m);var k=String(U.apply(void 0,W))}else k=RV(Z,a,S,p,m,U);S>=u&&(V+=a.slice(u,S)+k,u=S+Z.length)}return V+a.slice(u)}]}));var ZV=Oe,SV=j,pV=i,JV=WR,mV="toString",WV=RegExp.prototype,kV=WV[mV],EV=pV((function(){return"/a/b"!=kV.call({source:"a",flags:"b"})})),yV=kV.name!=mV;(EV||yV)&&ZV(RegExp.prototype,mV,(function(){var e=SV(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(void 0===n&&e instanceof RegExp&&!("flags"in WV)?JV.call(e):n)}),{unsafe:!0});var fV=Ot,NV=J,bV=cl,vV=st,TV=rt,CV=p,gV=xl,DV=Cn,XV=bl("slice"),xV=DV("species"),LV=[].slice,IV=Math.max;fV({target:"Array",proto:!0,forced:!XV},{slice:function(e,t){var n,U,F,Q=CV(this),i=TV(Q.length),l=vV(e,i),r=vV(void 0===t?i:t,i);if(bV(Q)&&("function"!=typeof(n=Q.constructor)||n!==Array&&!bV(n.prototype)?NV(n)&&null===(n=n[xV])&&(n=void 0):n=void 0,n===Array||void 0===n))return LV.call(Q,l,r);for(U=new(void 0===n?Array:n)(IV(r-l,0)),F=0;l<r;l++,F++)l in Q&&gV(U,F,Q[l]);return U.length=F,U}});var GV=pQ,MV="ArrayBuffer",YV=hs[MV];Ot({global:!0,forced:F[MV]!==YV},{ArrayBuffer:YV}),GV(MV);var wV=h,KV="[\t\n\v\f\r                 \u2028\u2029\ufeff]",_V=RegExp("^"+KV+KV+"*"),jV=RegExp(KV+KV+"*$"),HV=function(e){return function(t){var n=String(wV(t));return 1&e&&(n=n.replace(_V,"")),2&e&&(n=n.replace(jV,"")),n}},PV={start:HV(1),end:HV(2),trim:HV(3)},zV=l,OV=F,AV=Yt,qV=Oe,$V=N,eu=c,tu=nQ,nu=W,Uu=i,Fu=eU,Qu=tt.f,iu=Q.f,lu=K.f,ru=PV.trim,au="Number",du=OV[au],ou=du.prototype,su=eu(Fu(ou))==au,Bu=function(e){var t,n,U,F,Q,i,l,r,a=nu(e,!1);if("string"==typeof a&&a.length>2)if(43===(t=(a=ru(a)).charCodeAt(0))||45===t){if(88===(n=a.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(a.charCodeAt(1)){case 66:case 98:U=2,F=49;break;case 79:case 111:U=8,F=55;break;default:return+a}for(i=(Q=a.slice(2)).length,l=0;l<i;l++)if((r=Q.charCodeAt(l))<48||r>F)return NaN;return parseInt(Q,U)}return+a};if(AV(au,!du(" 0o1")||!du("0b1")||du("+0x1"))){for(var cu,Ru=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof Ru&&(su?Uu((function(){ou.valueOf.call(n)})):eu(n)!=au)?tu(new du(Bu(t)),n,Ru):Bu(t)},Vu=zV?Qu(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(","),uu=0;Vu.length>uu;uu++)$V(du,cu=Vu[uu])&&!$V(Ru,cu)&&lu(Ru,cu,iu(du,cu));Ru.prototype=ou,ou.constructor=Ru,qV(OV,au,Ru)}var hu=j,Zu=rt,Su=h,pu=eV,Ju=rV;qR("match",1,(function(e,t,n){return[function(t){var n=Su(this),U=null==t?void 0:t[e];return void 0!==U?U.call(t,n):new RegExp(t)[e](String(n))},function(e){var U=n(t,e,this);if(U.done)return U.value;var F=hu(e),Q=String(this);if(!F.global)return Ju(F,Q);var i=F.unicode;F.lastIndex=0;for(var l,r=[],a=0;null!==(l=Ju(F,Q));){var d=String(l[0]);r[a]=d,""===d&&(F.lastIndex=pu(Q,Zu(F.lastIndex),i)),a++}return 0===a?null:r}]}));var mu,Wu,ku,Eu,yu,fu,Nu={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 U=[],F=0;F<n.length;F++)U.push(n.charCodeAt(F));return new Uint8Array(U).buffer}for(var Q="",i=0;i<n.length;i++)Q+="0".concat(n.charCodeAt(i).toString(16)).substr(-2);return Q},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 U=parseInt(vu(t.slice(e.length))),F=(new Date).getTime()-U;if(F>0&&F<=1e3*n)return!0;console.error("UnionInfo timestamp expire!!!")}else console.error("unionID and UnionInfo not match!!!");return!1},getUnionInfo:function(){return"".concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").concat(bu((new Date).getTime().toString()))},StringToArrayBuffer:function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),U=0;U<e.length;U++)n[U]=e.charCodeAt(U);return t},ArrayBufferToString:function(e){var t=[];e=ArrayBuffer.isView(e)?e:new Uint8Array(e);for(var n,U=0;U<e.length;U++)n=e[U],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)},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},fromCharCode:function(e){for(var t="",n=0;n<e.length;n+=16e3){var U=e.subarray(n,n+16e3);t+=String.fromCharCode.apply(null,U)}return t},toBase64:function(e,t){var n=Nu.fromCharCode(e);t=void 0===t||t;var U=window.btoa(n).replace(/\+/g,"-").replace(/\//g,"_");return t?U:U.replace(/=*$/,"")},toUTF8:function(e){for(var t=encodeURIComponent(e),n=unescape(t),U=new Uint8Array(n.length),F=0;F<n.length;++F)U[F]=n.charCodeAt(F);return U.buffer}},bu=(mu="vodTimestampSalt",Wu=function(e){return e.split("").map((function(e){return e.charCodeAt(0)}))},ku=function(e){return"0".concat(Number(e).toString(16)).substr(-2)},Eu=function(e){return Wu(mu).reduce((function(e,t){return e^t}),e)},function(e){return e.split("").map(Wu).map(Eu).map(ku).join("")}),vu=(yu="vodTimestampSalt",fu=function(e){return(t=yu,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(fu).map((function(e){return String.fromCharCode(e)})).join("")}),Tu=Nu,Cu="kid",gu={ERROR:"error",ENCRYPTED:"encrypted",CDM_LICENSE_SUCCESS:"CDM_LICENSE_SUCCESS",CDM_LICENSE_ERROR:"CDM_LICENSE_ERROR"},Du=function(e){Qn(n,e);var t=dn(n);function n(e){var U;return tn(this,n),Fn(an(U=t.call(this)),"encryptHandle",(function(e){var t,n,F,Q=an(U).video,i=an(U);"org.w3.clearkey"===U.KEYSYSTEM_TYPE?(t="keyids",n=JSON.stringify({kids:["0123456789abcdef0123456789abcdef"]}),F=new Uint8Array(Tu.toUTF8(n))):"com.widevine.alpha"===U.KEYSYSTEM_TYPE?(t="cenc",F=e&&new Uint8Array(e.initData)||new Uint8Array([0,0,0,67,112,115,115,104,0,0,0,0,237,239,139,169,121,214,74,206,163,200,39,220,213,29,33,237,0,0,0,35,8,1,18,16,51,51,51,51,51,51,51,51,51,51,51,51,0,0,0,0,26,10,105,110,116,101,114,116,114,117,115,116,34,1,42])):"com.microsoft.playready"===U.KEYSYSTEM_TYPE&&(t="cenc",F=e&&new Uint8Array(e.initData)||new Uint8Array([0,0,2,38,112,115,115,104,0,0,0,0,154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149,0,0,2,6,6,2,0,0,1,0,1,0,252,1,60,0,87,0,82,0,77,0,72,0,69,0,65,0,68,0,69,0,82,0,32,0,120,0,109,0,108,0,110,0,115,0,61,0,34,0,104,0,116,0,116,0,112,0,58,0,47,0,47,0,115,0,99,0,104,0,101,0,109,0,97,0,115,0,46,0,109,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,99,0,111,0,109,0,47,0,68,0,82,0,77,0,47,0,50,0,48,0,48,0,55,0,47,0,48,0,51,0,47,0,80,0,108,0,97,0,121,0,82,0,101,0,97,0,100,0,121,0,72,0,101,0,97,0,100,0,101,0,114,0,34,0,32,0,118,0,101,0,114,0,115,0,105,0,111,0,110,0,61,0,34,0,52,0,46,0,48,0,46,0,48,0,46,0,48,0,34,0,62,0,60,0,68,0,65,0,84,0,65,0,62,0,60,0,80,0,82,0,79,0,84,0,69,0,67,0,84,0,73,0,78,0,70,0,79,0,62,0,60,0,75,0,69,0,89,0,76,0,69,0,78,0,62,0,49,0,54,0,60,0,47,0,75,0,69,0,89,0,76,0,69,0,78,0,62,0,60,0,65,0,76,0,71,0,73,0,68,0,62,0,65,0,69,0,83,0,67,0,84,0,82,0,60,0,47,0,65,0,76,0,71,0,73,0,68,0,62,0,60,0,47,0,80,0,82,0,79,0,84,0,69,0,67,0,84,0,73,0,78,0,70,0,79,0,62,0,60,0,75,0,73,0,68,0,62,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,65,0,65,0,65,0,65,0,65,0,65,0,61,0,61,0,60,0,47,0,75,0,73,0,68,0,62,0,60,0,67,0,72,0,69,0,67,0,75,0,83,0,85,0,77,0,62,0,65,0,49,0,53,0,66,0,89,0,87,0,68,0,52,0,113,0,115,0,73,0,61,0,60,0,47,0,67,0,72,0,69,0,67,0,75,0,83,0,85,0,77,0,62,0,60,0,47,0,68,0,65,0,84,0,65,0,62,0,60,0,47,0,87,0,82,0,77,0,72,0,69,0,65,0,68,0,69,0,82,0,62,0])),i.EnsureMediaKeysCreated(Q,i.KEYSYSTEM_TYPE,i.options).then((function(){var e=Q.mediaKeys.createSession();return Q.sessions.push(e),"org.w3.clearkey"===i.KEYSYSTEM_TYPE?e.addEventListener("message",i.updateSessionFunc(i.keys)):("com.widevine.alpha"===i.KEYSYSTEM_TYPE||"com.microsoft.playready"===i.KEYSYSTEM_TYPE)&&e.addEventListener("message",i.licenseRequestReady.bind(i)),e.generateRequest(t,F.buffer)}),(function(){return i.bail(" failed to ensure MediaKeys on HTMLMediaElement")})).then((function(){}),(function(){return i.bail(" Failed to generate request.")}))})),U.KEYSYSTEM_TYPE="",U.keys={},U.updateDrm(e),U.options=[],U.ensurePromise=void 0,U.kid=Cu,U.video=null,U.licenseStep=0,U.on(gu.ENCRYPTED,U.encryptHandle),U}return Un(n,[{key:"updateDrm",value:function(e,t){null!=e&&e.clearKeys&&(this.KEYSYSTEM_TYPE="org.w3.clearkey",this.keys=e.clearKeys),null!=e&&e.clearKeys?this.KEYSYSTEM_TYPE="org.w3.clearkey":null!=e&&e.widevine?(this.KEYSYSTEM_TYPE="com.widevine.alpha",this.keys=e.widevine):null!=e&&e.playready&&(this.KEYSYSTEM_TYPE="com.microsoft.playready",this.keys=e.playready),t&&(this.kid=t)}},{key:"updateKid",value:function(e){this.kid===Cu&&this.keys[this.kid]&&(this.keys[e]=this.keys[this.kid],delete this.keys[Cu]),this.kid=e}},{key:"setOptions",value:function(){this.options=[{initDataTypes:["keyids","webm"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01e"'},{contentType:'video/mp4; codecs="hev1.1.6.L120.90"'},{contentType:'video/webm; codecs="vp8"'}]}]}},{key:"bail",value:function(e){console.error("[EME]",e),this.emit(gu.ERROR,e)}},{key:"updateSessionFunc",value:function(e){var t=this;return function(n){var U=[],F=[];Object.keys(e).forEach((function(t){var n=e[t],Q=Tu.fromHex(t),i=Tu.fromHex(n),l={kty:"oct",kid:Tu.toBase64(Q,!1),k:Tu.toBase64(i,!1)};U.push(l),F.push(l.kid)}));var Q={keys:U},i=JSON.stringify(Q);n.target.update(Tu.StringToArrayBuffer(i)).then((function(){}),(function(){return t.bail(" MediaKeySession update failed")}))}}},{key:"keysChange",value:function(){}},{key:"EnsureMediaKeysCreated",value:function(e,t,n){var U=this;return this.ensurePromise||e.mediaKeys?this.ensurePromise||Promise.resolve():(this.ensurePromise=navigator.requestMediaKeySystemAccess(t,n).then((function(e){return e.createMediaKeys()}),(function(){return U.bail(" Failed to request key system access.")})).then((function(t){return e.setMediaKeys(t)}),(function(){return U.bail(" failed to create MediaKeys object")})),this.ensurePromise)}},{key:"setupEME",value:function(e){this.video=e,e.sessions=[]}},{key:"parseServerResponse",value:function(e){var t="https://schemas.xmlsoap.org/soap/envelope/";if(window.DOMParser){var n=this.uintToString(e),U=(new window.DOMParser).parseFromString(n,"text/xml"),F=U?U.getElementsByTagNameNS(t,"Envelope")[0]:null,Q=F?F.getElementsByTagNameNS(t,"Body")[0]:null;if(Q&&Q.getElementsByTagNameNS(t,"Fault")[0])return null}return e}},{key:"uintToString",value:function(e){var t=String.fromCharCode.apply(null,new Uint8Array(e));return decodeURIComponent(escape(t))}},{key:"licenseRequestReady",value:function(e){var t=this,n=new XMLHttpRequest;n.open("GET",this.keys.serverURL),n.onreadystatechange=function(){if(4===n.readyState){var U=e.message,F=n.response;if("com.microsoft.playready"===t.KEYSYSTEM_TYPE&&(F=JSON.parse(n.response),F="".concat(F.licenseAcquisitionUrl,"?ExpressPlayToken=").concat(F.token)),!F)return void t.emit(gu.CDM_LICENSE_ERROR,{data:"".concat(t.keys.serverURL," request failed! \n status:").concat(n.status," statusText:").concat(n.statusText)});var Q=new XMLHttpRequest;Q.keySession=e.target,Q.responseType="arraybuffer",Q.withCredentials=!1,Q.open("POST",String(F)),"com.microsoft.playready"===t.KEYSYSTEM_TYPE&&Q.setRequestHeader("Content-type","text/xml"),Q.onreadystatechange=function(){if(4===Q.readyState){if(200!==Q.status)return void t.emit(gu.CDM_LICENSE_ERROR,{data:"".concat(F," request failed! \n status:").concat(Q.status," statusText:").concat(Q.statusText)});var e;t.emit(gu.CDM_LICENSE_SUCCESS,{data:t.licenseStep}),t.licenseStep++,e="com.microsoft.playready"===t.KEYSYSTEM_TYPE?t.parseServerResponse(Q.response):new Uint8Array(Q.response),Q.keySession.update(e).catch(console.error.bind(console,"update() failed"))}},Q.send(t.getLicenseRequestFromMessage(U))}},n.send()}},{key:"getLicenseRequestFromMessage",value:function(e){if("com.microsoft.playready"===this.KEYSYSTEM_TYPE){var t=null,n=new DOMParser,U=new Uint16Array(e),F=String.fromCharCode.apply(null,U),Q=n.parseFromString(F,"application/xml");if(!Q.getElementsByTagName("PlayReadyKeyMessage")[0])return e;var i=Q.getElementsByTagName("Challenge")[0].childNodes[0].nodeValue;return i&&(t=window.atob(i)),t}return new Uint8Array(e)}},{key:"destroy",value:function(){this.removeAllListeners(),this.video=null}}]),n}(ad),Xu=Qo.aTypedArrayConstructor;(0,Qo.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(Xu(this))(t);t>e;)n[e]=arguments[e++];return n}),Bo);var xu=function(){function e(){var t,n;tn(this,e);var U=new Promise((function(e,U){t=e,n=U}));return U.resolve=function(e){t(e),U.state="fulfilled"},U.reject=function(e){n(e),U.state="rejected",U.isBreak="DESTROYED"===e},U.state="pending",U}return Un(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),Lu=Un((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.url,U=t.method,F=void 0===U?"GET":U,Q=t.type,i=void 0===Q?"arraybuffer":Q,l=t.data,r=void 0===l?{}:l;return tn(this,e),new Promise((function(e,t){var U=new window.XMLHttpRequest,Q=F.toUpperCase(),l=[];if(Object.keys(r).map((function(e){l.push("k=".concat(r[e]))})),"GET"===Q){var a="";a=n.indexOf("?")<0?"".concat(n,"?").concat(l.join("&")):(null==l?void 0:l.length)>0?"".concat(n,"&").concat(l.join("&")):n,U.open(Q,a),i&&(U.responseType=i),U.send()}else{if("POST"!==Q)throw new Error("xhr ".concat(Q," is not supported"));U.open(Q,n,!0),i&&(U.responseType=i),U.setRequestHeader("Content-Type","application/json"),U.send(JSON.stringify(r))}U.onload=function(){200===U.status||206===U.status?e(U):t(U)},U.onerror=function(){t(U)}}))})),Iu=Lu,Gu=null;function Mu(e,t,n){var U=new xu;return new Iu({type:"json",method:"POST",url:n,data:{drm_type:"22",version:"2.0",license_request:[{vid:e,kids:[].concat(t)}]}}).then((function(n){var F=null==n?void 0:n.response;if("string"==typeof F&&(F=JSON.parse(F)),F){var Q=F.play_licenses[e][t];U.resolve(Q)}else console.error("getSecretKeyByKid end, vid,",e,", kid",t,"response null"),U.reject()})).catch((function(){console.error("getSecretKeyByKid end, vid,",e,", kid",t,"catch"),U.reject()})),U}function Yu(){return function(e,t,n){function U(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 F,Q=0,i=[],l=[];for(F=0;F<4;++F)Q+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var r=parseInt(e.slice(16,24),16),a=2*parseInt(e.slice(32,40),16);for(F=40;F<a+40;F+=2)i.push(parseInt(e.slice(F,F+2),16));var d=a+40,o=parseInt(e.slice(d,d+4),16);for(d+=4,F=0;F<o;++F){var s=U(e,d);d+=2*s[0];for(var B="",c=0;c<s[1];++c){var R=U(e,d);B+=String.fromCharCode(Q^R[1]),d+=2*R[0]}l.push(B)}return t.p=null,function e(t,n,U,F,Q){var r,a,d,o,s,B=-1,c=[],R=null,V=[n];for(a=Math.min(n.length,U),d=0;d<a;++d)V.push(n[d]);V.p=F;for(var u=[];;)try{switch(i[t++]){case 39:c[++B]=null;break;case 0:r=i[t++],c[++B]=r<<24>>24;break;case 33:r=((r=((r=i[t++])<<8)+i[t++])<<8)+i[t++],c[++B]=(r<<8)+i[t++];break;case 34:r=(i[t]<<8)+i[t+1],t+=2,c[++B]=l[r];break;case 67:c[++B]=void 0;break;case 9:c[++B]={};break;case 32:r=(i[t]<<8)+i[t+1],t+=2,a=l[r],d=c[B--],c[B][a]=d;break;case 65:for(a=i[t++],d=i[t++],o=V;a>0;--a)o=o.p;c[++B]=o[d];break;case 18:r=(i[t]<<8)+i[t+1],t+=2,a=l[r],c[B]=c[B][a];break;case 52:a=c[B--],c[B]=c[B][a];break;case 30:for(a=i[t++],d=i[t++],o=V;a>0;--a)o=o.p;o[d]=c[B--];break;case 76:r=(i[t]<<8)+i[t+1],t+=2,a=l[r],d=c[B--],o=c[B--],d[a]=o;break;case 16:a=c[B--],d=c[B--],o=c[B--],d[a]=o;break;case 48:a=c[B--],c[B]=c[B]!==a;break;case 7:a=c[B--],c[B]=c[B]>a;break;case 12:r=(r=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?--B:t+=r;break;case 63:r=i[t++],a=c[B--],(d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[a,r,V],d._u=e,c[++B]=d;break;case 60:for(a=c[B--],d=null;o=u.pop();)if(2===o[0]||3===o[0]){d=o;break}if(d)t=d[2],d[0]=0,u.push(d);else{if(!R)return a;t=R[1],Q=R[2],V=R[3],u=R[4],c[++B]=a,R=R[0]}break;case 22:B-=r=i[t++],d=c.slice(B+1,B+r+1),a=c[B--],o=c[B--],a._u===e?(a=a._v,R=[R,t,Q,V,u],t=a[0],null==o&&(o=function(){return this}()),Q=o,(V=[d].concat(d)).length=Math.min(a[1],r)+1,V.p=a[2],u=[]):(s=a.apply(o,d),c[++B]=s);break;case 53:for(r=i[t++],o=[void 0],s=r;s>0;--s)o[s]=c[B--];d=c[B--],s=new(a=Function.bind.apply(d,o)),c[++B]=s;break;case 75:t+=2+(r=(r=(i[t]<<8)+i[t+1])<<16>>16);break;case 11:r=(r=(i[t]<<8)+i[t+1])<<16>>16,t+=2,(a=c[B--])||(t+=r);break;case 27:--B;break;case 56:a=c[B],c[++B]=a;break;default:throw new Error("ioe")}}catch(h){for(;(r=u.pop())&&!r[0];);if(!r){e:for(;R;){for(a=R[4];r=a.pop();)if(r[0])break e;R=R[0]}if(!R)throw h;t=R[1],Q=R[2],V=R[3],u=R[4],R=R[0]}1===(a=r[0])?(t=r[2],r[0]=0,u.push(r),c[++B]=h):2===a?(t=r[2],r[0]=0,u.push(r)):(t=r[3],r[0]=2,u.push(r),c[++B]=h)}}(r,[],0,t,n)}("504B01015737ac560000004554ae36570000014e2741020127410202410001160116011e000209092000021e0003410002410003120002410103104101053812000341000316011b433c4101053812000841000116011b433c4101041200000000070c000841010400003443300b00094101040000344b00032200011e00014101041200000001070b00094101040001344b0001431e00024101041200000002070b00094101040002344b0001431e00034101041200000003070b00094101040003344b0001431e000441010035001e00054100020b004d2741010127410102410002160116011e00064100030b002509092000021e0007410006410007120002410003104100053812000341000716011b4b000d4100053812000341000616011b4b00392741010341000141000341000416031e00082200044100084c00054100083812000621000000003f0116013812000721000000363f0116011b4100053c00090680e380ea80e180e880fb80e7000980ec80e380ea80ee80fd80c480ea80f680fc0780fd80ea80fc80e080e380f980ea0e80fd80ea80fe80fa80ea80fc80fb80df80fd80e080e280e680fc80ea0280e680eb0480fb80e780ea80e10580ec80ee80fb80ec80e70680fd80ea80e580ea80ec80fb",{get 0(){return xu},get 1(){return yd},get 2(){return atob},get 3(){return Mu},4:arguments},this)}function wu(e){var t;if(null===Gu)try{Gu=localStorage&&!!localStorage.getItem("secretkeylog")}catch(Q){}for(var n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];Gu&&console.log&&(t=console).log.apply(t,["[XGSecretkey]",e].concat(U))}var Ku={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 _u(e,t){return ju.apply(this,arguments)}function ju(){return(ju=en(At().mark((function e(t,n){var U,F,Q,i,l;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=n.iv,F=n.tagLength,Q=n.data,i=null,t=Tu.StringToArrayBuffer(t),Q=Tu.Base64ToHex(Q,!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),new Error("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(U),tagLength:F},l,Q);case 16:i=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 new Error("Wrong Password.");case 25:if("InvalidAccessError"!==String(e.t1)){e.next=29;break}throw new Error("Invalid Key");case 29:throw e.t1;case 30:return e.abrupt("return",new TextDecoder("utf-8").decode(i));case 31:case"end":return e.stop()}}),e,null,[[4,10],[13,19]])})))).apply(this,arguments)}function Hu(e,t){return Pu.apply(this,arguments)}function Pu(){return(Pu=en(At().mark((function e(t,n){var U,F,Q,i,l,r,a;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=n.iv,F=n.tagLength,Q=n.data,i=btoa(Tu.ArrayBufferToString(U)),l=Ku.codec.base64.toBits(i),r=Ku.codec.utf8String.toBits(t),a=new Ku.cipher.aes(r),e.abrupt("return",Ku.codec.utf8String.fromBits(Ku.mode.gcm.decrypt(a,Ku.codec.base64.toBits(Q),l,[],F)));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}Ku.cipher.aes=function(e){this._tables[0][0][0]||this._precompute();var t,n,U,F,Q,i=this._tables[0][4],l=this._tables[1],r=e.length,a=1;if(4!==r&&6!==r&&8!==r)throw new Ku.exception.invalid("invalid aes key size");for(this._key=[F=e.slice(0),Q=[]],t=r;t<4*r+28;t++)U=F[t-1],(t%r==0||8===r&&t%r==4)&&(U=i[U>>>24]<<24^i[U>>16&255]<<16^i[U>>8&255]<<8^i[255&U],t%r==0&&(U=U<<8^U>>>24^a<<24,a=a<<1^283*(a>>7))),F[t]=F[t-r]^U;for(n=0;t;n++,t--)U=F[3&n?t:t-4],Q[n]=t<=4||n<4?U:l[0][i[U>>>24]]^l[1][i[U>>16&255]]^l[2][i[U>>8&255]]^l[3][i[255&U]]},Ku.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,U,F,Q,i,l,r=this._tables[0],a=this._tables[1],d=r[4],o=a[4],s=[],B=[];for(e=0;e<256;e++)B[(s[e]=e<<1^283*(e>>7))^e]=e;for(t=n=0;!d[t];t^=U||1,n=B[n]||1)for(Q=(Q=n^n<<1^n<<2^n<<3^n<<4)>>8^255&Q^99,d[t]=Q,o[Q]=t,l=16843009*s[F=s[U=s[t]]]^65537*F^257*U^16843008*t,i=257*s[Q]^16843008*Q,e=0;e<4;e++)r[e][t]=i=i<<24^i>>>8,a[e][Q]=l=l<<24^l>>>8;for(e=0;e<5;e++)r[e]=r[e].slice(0),a[e]=a[e].slice(0)},_crypt:function(e,t){if(4!==e.length)throw new Ku.exception.invalid("invalid aes block size");var n,U,F,Q,i=this._key[t],l=e[0]^i[0],r=e[t?3:1]^i[1],a=e[2]^i[2],d=e[t?1:3]^i[3],o=i.length/4-2,s=4,B=[0,0,0,0],c=this._tables[t],R=c[0],V=c[1],u=c[2],h=c[3],Z=c[4];for(Q=0;Q<o;Q++)n=R[l>>>24]^V[r>>16&255]^u[a>>8&255]^h[255&d]^i[s],U=R[r>>>24]^V[a>>16&255]^u[d>>8&255]^h[255&l]^i[s+1],F=R[a>>>24]^V[d>>16&255]^u[l>>8&255]^h[255&r]^i[s+2],d=R[d>>>24]^V[l>>16&255]^u[r>>8&255]^h[255&a]^i[s+3],s+=4,l=n,r=U,a=F;for(Q=0;Q<4;Q++)B[t?3&-Q:Q]=Z[l>>>24]<<24^Z[r>>16&255]<<16^Z[a>>8&255]<<8^Z[255&d]^i[s++],n=l,l=r,r=a,a=d,d=n;return B}},Ku.bitArray={bitSlice:function(e,t,n){return e=Ku.bitArray._shiftRight(e.slice(t/32),32-(31&t)).slice(1),void 0===n?e:Ku.bitArray.clamp(e,n-t)},extract:function(e,t,n){var U=Math.floor(-t-n&31);return(-32&(t+n-1^t)?e[t/32|0]<<32-U^e[t/32+1|0]>>>U:e[t/32|0]>>>U)&(1<<n)-1},concat:function(e,t){if(0===e.length||0===t.length)return e.concat(t);var n=e[e.length-1],U=Ku.bitArray.getPartial(n);return 32===U?e.concat(t):Ku.bitArray._shiftRight(t,U,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)+Ku.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]=Ku.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(Ku.bitArray.bitLength(e)!==Ku.bitArray.bitLength(t))return!1;var n,U=0;for(n=0;n<e.length;n++)U|=e[n]^t[n];return 0===U},_shiftRight:function(e,t,n,U){var F,Q,i;for(void 0===U&&(U=[]);t>=32;t-=32)U.push(n),n=0;if(0===t)return U.concat(e);for(F=0;F<e.length;F++)U.push(n|e[F]>>>t),n=e[F]<<32-t;return Q=e.length?e[e.length-1]:0,i=Ku.bitArray.getPartial(Q),U.push(Ku.bitArray.partial(t+i&31,t+i>32?n:U.pop(),1)),U},_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}},Ku.codec.utf8String={fromBits:function(e){var t,n,U="",F=Ku.bitArray.bitLength(e);for(t=0;t<F/8;t++)0==(3&t)&&(n=e[t/4]),U+=String.fromCharCode(n>>>8>>>8>>>8),n<<=8;return decodeURIComponent(escape(U))},toBits:function(e){e=unescape(encodeURIComponent(e));var t,n=[],U=0;for(t=0;t<e.length;t++)U=U<<8|e.charCodeAt(t),3==(3&t)&&(n.push(U),U=0);return 3&t&&n.push(Ku.bitArray.partial(8*(3&t),U)),n}},Ku.codec.base64={_chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(e,t,n){var U,F="",Q=0,i=Ku.codec.base64._chars,l=0,r=Ku.bitArray.bitLength(e);for(n&&(i=i.substr(0,62)+"-_"),U=0;6*F.length<r;)F+=i.charAt((l^e[U]>>>Q)>>>26),Q<6?(l=e[U]<<6-Q,Q+=26,U++):(l<<=6,Q-=6);for(;3&F.length&&!t;)F+="=";return F},toBits:function(e,t){e=e.replace(/\s|=/g,"");var n,U,F=[],Q=0,i=Ku.codec.base64._chars,l=0;for(t&&(i=i.substr(0,62)+"-_"),n=0;n<e.length;n++){if((U=i.indexOf(e.charAt(n)))<0)throw new Ku.exception.invalid("this isn't base64!");Q>26?(Q-=26,F.push(l^U>>>Q),l=U<<32-Q):l^=U<<32-(Q+=6)}return 56&Q&&F.push(Ku.bitArray.partial(56&Q,l,1)),F}},Ku.codec.base64url={fromBits:function(e){return Ku.codec.base64.fromBits(e,1,1)},toBits:function(e){return Ku.codec.base64.toBits(e,1)}},Ku.mode.gcm={name:"gcm",encrypt:function(e,t,n,U,F){var Q,i=t.slice(0),l=Ku.bitArray;return F=F||128,U=U||[],Q=Ku.mode.gcm._ctrMode(!0,e,i,U,n,F),l.concat(Q.data,Q.tag)},decrypt:function(e,t,n,U,F){var Q,i,l=t.slice(0),r=Ku.bitArray,a=r.bitLength(l);if(U=U||[],(F=F||128)<=a?(i=r.bitSlice(l,a-F),l=r.bitSlice(l,0,a-F)):(i=l,l=[]),Q=Ku.mode.gcm._ctrMode(!1,e,l,U,n,F),!r.equal(Q.tag,i))throw new Ku.exception.corrupt("gcm: tag doesn't match");return Q.data},_galoisMultiply:function(e,t){var n,U,F,Q,i,l=Ku.bitArray._xor4;for(F=[0,0,0,0],Q=t.slice(0),n=0;n<128;n++){for(0!=(e[Math.floor(n/32)]&1<<31-n%32)&&(F=l(F,Q)),i=0!=(1&Q[3]),U=3;U>0;U--)Q[U]=Q[U]>>>1|(1&Q[U-1])<<31;Q[0]=Q[0]>>>1,i&&(Q[0]=Q[0]^225<<24)}return F},_ghash:function(e,t,n){var U,F,Q=n.length;for(U=t.slice(0),F=0;F<Q;F+=4)U[0]^=4294967295&n[F],U[1]^=4294967295&n[F+1],U[2]^=4294967295&n[F+2],U[3]^=4294967295&n[F+3],U=Ku.mode.gcm._galoisMultiply(U,e);return U},_ctrMode:function(e,t,n,U,F,Q){var i,l,r,a,d,o,s,B,c,R,V,u,h=Ku.bitArray;for(c=n.length,R=h.bitLength(n),V=h.bitLength(U),u=h.bitLength(F),i=t.encrypt([0,0,0,0]),96===u?(l=F.slice(0),l=h.concat(l,[1])):(l=Ku.mode.gcm._ghash(i,[0,0,0,0],F),l=Ku.mode.gcm._ghash(i,l,[0,0,Math.floor(u/4294967296),4294967295&u])),r=Ku.mode.gcm._ghash(i,[0,0,0,0],U),o=l.slice(0),s=r.slice(0),e||(s=Ku.mode.gcm._ghash(i,r,n)),d=0;d<c;d+=4)o[3]++,a=t.encrypt(o),n[d]^=a[0],n[d+1]^=a[1],n[d+2]^=a[2],n[d+3]^=a[3];return n=h.clamp(n,R),e&&(s=Ku.mode.gcm._ghash(i,r,n)),B=[Math.floor(V/4294967296),4294967295&V,Math.floor(R/4294967296),4294967295&R],s=Ku.mode.gcm._ghash(i,s,B),a=t.encrypt(l),s[0]^=a[0],s[1]^=a[1],s[2]^=a[2],s[3]^=a[3],{tag:h.bitSlice(s,0,Q),data:n}}};var zu,Ou={webCryptoDecrypt:_u,decrypt:(zu=en(At().mark((function e(t,n){var U,F;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"==typeof n&&(n=JSON.parse(n)),!n.enableSoftwareAES&&null!==(U=crypto)&&void 0!==U&&U.subtle){e.next=7;break}return e.next=4,Hu(t,n);case 4:F=e.sent,e.next=18;break;case 7:return e.prev=7,e.next=10,_u(t,n);case 10:F=e.sent,e.next=18;break;case 13:return e.prev=13,e.t0=e.catch(7),e.next=17,Hu(t,n);case 17:F=e.sent;case 18:return e.abrupt("return",F);case 19:case"end":return e.stop()}}),e,null,[[7,13]])}))),function(e,t){return zu.apply(this,arguments)})},Au=new Uint8Array([91,104,69,75,156,171,238,71,202,4,244,5]).buffer;function qu(e,t){return $u.apply(this,arguments)}function $u(){return($u=en(At().mark((function e(t,n){var U,F;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=od.hash(n),e.next=3,Ou.decrypt(U,{data:t,iv:Au,tagLength:128});case 3:return F=e.sent,e.abrupt("return",F);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var eh="volcvui",th=new Map,nh=function(e){Qn(U,e);var t,n=dn(U);function U(e){var t;return tn(this,U),Fn(an(t=n.call(this)),"EMEError",(function(e){t.emit(gu.ERROR,e)})),Fn(an(t),"encryptHandle",(function(){var e;null===(e=t.eme)||void 0===e||e.emit(gu.ENCRYPTED)})),t.config=U.defaultConfig,t.updateConfig(e),t.config.isEncrypt=!!(t.config.kid||t.config.drm||t.config.secretKey||t.config.drmKeyToken||t.config.keyValue||t.config.drm),t.on(gu.ENCRYPTED,t.encryptHandle),t}return Un(U,[{key:"updateConfig",value:function(e){var t=this;Object.keys(e).map((function(n){void 0!==e[n]&&null!==e[n]&&void 0!==t.config[n]&&(t.config[n]=e[n])})),this.log("set config",JSON.stringify(this.config))}},{key:"setupEME",value:function(e){this.eme&&this.eme.setupEME(e)}},{key:"setOptions",value:function(e){this.eme&&this.eme.setOptions(e)}},{key:"getSecretKeyByToken",value:function(e,t,n){var U=this,F=this.config,Q=e||F.kid,i=t||F.playDomain;i.indexOf("//")<0&&(i="//".concat(i));var l=n||F.drmKeyToken,r=Tu.isBase64(l)?window.atob(l):l,a="".concat(i,"?").concat(r,"&PlayAuthIds=").concat(Q,"&ssl=true");r.indexOf("DrmType=")<0&&(a+="&DrmType=".concat(F.useUnionInfoDRM?"webdevice":"22")),this.log("getSecretKeyByToken start, vid,",F.vid,a);var d=new xu;return new Iu({type:"json",method:"GET",url:a}).then((function(e){var t,n,Q=e.response;if("string"==typeof Q&&(Q=JSON.parse(Q)),Q&&null!==(t=Q)&&void 0!==t&&t.Result&&(null===(n=Q.Result.PlayAuthInfoList)||void 0===n?void 0:n.length)>0){var i=Q.Result.PlayAuthInfoList[0].PlayAuthContent;U.log("getSecretKeyByToken end, vid,",F.vid,",res,",JSON.stringify(Q)),d.resolve(i)}})).catch((function(e){d.reject(e)})),d}},{key:"getLicense",value:function(){var e=this,t=this.config,n=t.vid,U=t.kid,F=t.getLicenseUrl,Q=new xu;return Promise.resolve().then(en(At().mark((function t(){var i,l,r,a,d,o,s,B,c,R,V,u;return At().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i={method:"getLicense",success:!1},t.next=3,e._tryGetSecretKeyByToken(i,Q);case 3:if(l=e.config,r=l.secretKey,a=l.keyValue,!(U||r||a||e.config.drm)){t.next=39;break}if(t.prev=5,d=e.config.drm||a,!(r||U&&F)){t.next=11;break}return t.next=10,Yu(n,r,U,F);case 10:d=t.sent;case 11:if(o=d&&d.clearKeys?d.clearKeys[U]:d,B=e.config,c=B.sessionId,R=B.useUnionInfoDRM,V=B.keyTokenExpiredDuration,u=th.get(c),!o&&(o=e.config.keyValue),!R||!Tu.checkUnionInfoExpired(u.unionID,u.unionInfo,V)){t.next=25;break}return t.next=19,qu(o,u.unionInfo);case 19:s=t.sent,t.next=23;break;case 22:throw new Error('The "transformUnionKey" should be provided in configuration as a function');case 23:t.next=26;break;case 25:s=o;case 26:d&&d.clearKeys&&(d.clearKeys[U]=s,i.drm=d),i.keyValue=s,i.success=!0,Q.resolve(i),t.next=37;break;case 32:t.prev=32,t.t0=t.catch(5),i.success=!1,i.error=t.t0,Q.reject(i);case 37:t.next=41;break;case 39:i.success=!0,Q.resolve(i);case 41:case"end":return t.stop()}}),t,null,[[5,32]])})))),Q}},{key:"_tryGetSecretKeyByToken",value:(t=en(At().mark((function e(t,n){var U,F,Q,i;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U=this.config,F=U.kid,Q=U.drmKeyToken,i=U.playDomain,!(F&&Q&&i)){e.next=13;break}return e.prev=2,e.next=5,this.getSecretKeyByToken(F,i,Q);case 5:this.config.secretKey=e.sent,e.next=13;break;case 8:e.prev=8,e.t0=e.catch(2),t.success=!1,t.error=e.t0,n.reject(t);case 13:case"end":return e.stop()}}),e,this,[[2,8]])}))),function(e,n){return t.apply(this,arguments)})},{key:"updateKid",value:function(e){this.eme&&this.eme.updateKid(e)}},{key:"getLicenseSecret",value:function(){var e=this,t=this.config,n=t.vid,U=t.kid,F=t.getLicenseUrl,Q=t.useEME,i=t.keyValue;if(this.config.useEME&&!this.eme){this.eme=new Du,this.eme.on(gu.ERROR,this.EMEError),this.eme.on(gu.CDM_LICENSE_SUCCESS,(function(t){e.emit(gu.CDM_LICENSE_SUCCESS,t)})),this.eme.on(gu.CDM_LICENSE_ERROR,(function(t){e.emit(gu.CDM_LICENSE_ERROR,t)}));var l=this.config.intertrustServerURL;if(U&&l){var r=Fn({},window.navigator.userAgent.toLocaleLowerCase().indexOf("chrome")>-1?"widevine":"playready",{serverURL:l+U});return this.eme.updateDrm(r),Promise.resolve()}}var a=new xu;return Promise.resolve().then(en(At().mark((function t(){var l,r,d,o,s,B,c,R,V;return At().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return l={method:"getLicense",success:!1},t.next=3,e._tryGetSecretKeyByToken(l,a);case 3:if((r=e.config.secretKey)||i){t.next=8;break}return t.next=7,Mu(n,U,F);case 7:r=t.sent;case 8:if(Q&&(r&&(r=yd(atob(r))),i&&(r=i)),t.prev=9,d=e.config,o=d.sessionId,s=d.useUnionInfoDRM,B=d.keyTokenExpiredDuration,c=th.get(o),!s||!Tu.checkUnionInfoExpired(c.unionID,c.unionInfo,B)){t.next=18;break}if(!Q){t.next=17;break}return t.next=16,qu(r,c.unionInfo);case 16:r=t.sent;case 17:l.decryptKey=Tu.StringToArrayBuffer(od.hash(c.unionInfo));case 18:Q?((R={clearKeys:{}}).clearKeys[V=U||Cu]=r,e.eme.updateDrm(R,V),l.secretKey=null):l.secretKey=r,l.success=!0,a.resolve(l),t.next=28;break;case 23:t.prev=23,t.t0=t.catch(9),l.success=!1,l.error=t.t0,a.reject(l);case 28:case"end":return t.stop()}}),t,null,[[9,23]])})))),a}},{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),U=1;U<t;U++)n[U-1]=arguments[U];wu.apply(void 0,[e].concat(n))}},{key:"getSecretKey",value:function(){var e=this.config,t=e.vid,n=e.kid,U=e.getLicenseUrl,F=e.drmKeyToken,Q=e.playDomain,i=e.secretKey;return U&&n?Mu(t,n,U):F&&n&&Q?this.getSecretKeyByToken(n,Q,F):i||(console.error("[DRM]DRM,getSecretKey args is invalid"),null)}},{key:"getKeyValue",value:function(){var e=this.config,t=e.vid,n=e.kid,U=e.getLicenseUrl;return Yu(t,e.secretKey,n,U)}}],[{key:"pluginName",get:function(){return"XGSecretKey"}},{key:"defaultConfig",get:function(){return{keyValue:null,kid:null,getLicenseUrl:"",secretKey:null,drm:null,vid:"",useUnionInfoDRM:!1,transformUnionKey:null,drmKeyToken:null,keyTokenExpiredDuration:null,playDomain:null,sessionId:eh,useEME:!0,intertrustServerURL:null}}},{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]:eh,n=Tu.getUnionInfo(e);return th.set(t,{unionID:e,unionInfo:n}),n}}]),U}(ad);nh.isWebAssemblySupported=function(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":qt(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(fu){}return!1};var Uh=J,Fh=c,Qh=Cn("match"),ih=l,lh=F,rh=Yt,ah=nQ,dh=K.f,oh=tt.f,sh=function(e){var t;return Uh(e)&&(void 0!==(t=e[Qh])?!!t:"RegExp"==Fh(e))},Bh=WR,ch=kR,Rh=Oe,Vh=i,uh=Me.enforce,hh=pQ,Zh=Cn("match"),Sh=lh.RegExp,ph=Sh.prototype,Jh=/a/g,mh=/a/g,Wh=new Sh(Jh)!==Jh,kh=ch.UNSUPPORTED_Y;if(ih&&rh("RegExp",!Wh||kh||Vh((function(){return mh[Zh]=!1,Sh(Jh)!=Jh||Sh(mh)==mh||"/a/i"!=Sh(Jh,"i")})))){for(var Eh=function(e,t){var n,U=this instanceof Eh,F=sh(e),Q=void 0===t;if(!U&&F&&e.constructor===Eh&&Q)return e;Wh?F&&!Q&&(e=e.source):e instanceof Eh&&(Q&&(t=Bh.call(e)),e=e.source),kh&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var i=ah(Wh?new Sh(e,t):Sh(e,t),U?this:ph,Eh);return kh&&n&&(uh(i).sticky=!0),i},yh=function(e){e in Eh||dh(Eh,e,{configurable:!0,get:function(){return Sh[e]},set:function(t){Sh[e]=t}})},fh=oh(Sh),Nh=0;fh.length>Nh;)yh(fh[Nh++]);ph.constructor=Eh,Eh.prototype=ph,Rh(lh,"RegExp",Eh)}hh("RegExp");var bh=Object.prototype.toString,vh=Function.prototype.toString;function Th(e){var t=!0;if(Array.isArray(e))t=e.reduce((function(e,t){return e&&Th(t)}),t);else{var n=RegExp("^".concat(String(bh).replace(/[.*+?^${}()|[\]\/\\]/g,"\\$&").replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?"),"$"));t="function"==typeof e&&n.test(vh.call(e))}return t}e.EVENT_EME=gu,e.TRANSFORM_IV=Au,e.XGSecretKey=nh,e.aes4js=Ou,e.checkEMEValid=function(){var e=[];return"undefined"!=typeof MediaKeySession&&e.push(MediaKeySession.prototype.update),0===e.length||Th(e)},e.checkMSEValid=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=function(){return"undefined"!=typeof MediaSource?MediaSource:arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&void 0!==self.ManagedMediaSource?self.ManagedMediaSource:void 0!==self.WebKitMediaSource?self.WebKitMediaSource:void 0}(e),n=function(){return"undefined"!=typeof SourceBuffer?SourceBuffer:arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&void 0!==self.ManagedSourceBuffer?self.ManagedSourceBuffer:void 0}(e),U=!1;if(t&&n){var F=[];n&&(F.push(n),F.push(n.prototype.appendBuffer)),t&&(F.push(t),F.push(t.prototype.addSourceBuffer)),Th(F)&&(U=!0)}return U},e.isNativeFunction=Th,e.transformUnionKey=qu,e.util=Tu}(t)}(0,gF.exports);var DF=gF.exports,XF=u((function e(t,n){var U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};R(this,e);var F="number"==typeof n?n:void 0;U.playerVersion="3.5.27-alpha.5",this.errorType=t,this.errorCode=F||We[t][n]||We[t],this.ext=U}));XF.DUR_PARSE_ERROR=9201,XF.SEG_PARSE_ERROR=9202,XF.INIT_SEGMENT_ERROR=9203,XF.MPD_INIT_ERROR=9204,XF.SEGMENT_CONTENT_ERROR=9205,XF.BACK_URL_FAIL=9206;var xF,LF=XF,IF=u((function e(t,n,U,F,Q,i){R(this,e),this.type=t,this.codecs=n,this.visualEntryBox=U,this.configurationBox=F,this.types=Q,this.logCodeType=i})),GF="avc",MF="av1",YF="hevc",wF="bytevc1",KF=(h(xF={},GF,new IF("avc","avc1.64001E","avc1","avcC",["h264"],"h264")),h(xF,MF,new IF("av1","av01.0.08M.08","av01","av1C",["av1"],"av1")),h(xF,YF,new IF("hevc","hev1.1.6.L120.90","hvc1","hvcC",["h265"],"h265")),h(xF,wF,new IF("hevc","hev1.1.6.L120.90","hvc1","hvcC",["bytevc1","h265"],"h265")),xF);function _F(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function jF(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,zF(U.key),U)}}function HF(e,t,n){return t&&jF(e.prototype,t),n&&jF(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function PF(e,t,n){return(t=zF(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zF(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var OF="video",AF="audio",qF="avc",$F="hevc",eQ="vvcC",tQ="aac",nQ="g7110a",UQ="g7110m",FQ=function(){function e(){_F(this,e),PF(this,"id",1),PF(this,"type",OF),PF(this,"codecType",qF),PF(this,"pid",-1),PF(this,"hvcC",void 0),PF(this,"codec",""),PF(this,"timescale",0),PF(this,"formatTimescale",0),PF(this,"sequenceNumber",0),PF(this,"baseMediaDecodeTime",0),PF(this,"baseDts",0),PF(this,"duration",0),PF(this,"warnings",[]),PF(this,"samples",[]),PF(this,"pps",[]),PF(this,"sps",[]),PF(this,"vps",[]),PF(this,"fpsNum",0),PF(this,"fpsDen",0),PF(this,"sarRatio",[]),PF(this,"width",0),PF(this,"height",0),PF(this,"nalUnitSize",4),PF(this,"present",!1),PF(this,"isVideoEncryption",!1),PF(this,"isAudioEncryption",!1),PF(this,"isVideo",!0),PF(this,"kid",null),PF(this,"pssh",null),PF(this,"ext",void 0)}return HF(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}(),QQ=function(){function e(){_F(this,e),PF(this,"id",2),PF(this,"type",AF),PF(this,"codecType",tQ),PF(this,"pid",-1),PF(this,"codec",""),PF(this,"sequenceNumber",0),PF(this,"sampleDuration",0),PF(this,"timescale",0),PF(this,"formatTimescale",0),PF(this,"baseMediaDecodeTime",0),PF(this,"duration",0),PF(this,"warnings",[]),PF(this,"samples",[]),PF(this,"baseDts",0),PF(this,"sampleSize",16),PF(this,"sampleRate",0),PF(this,"channelCount",0),PF(this,"objectType",0),PF(this,"sampleRateIndex",0),PF(this,"config",[]),PF(this,"present",!1),PF(this,"isVideoEncryption",!1),PF(this,"isAudioEncryption",!1),PF(this,"kid",null),PF(this,"ext",void 0)}return HF(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===tQ)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isAudioEncryption}}]),e}(),iQ="undefined"!=typeof window,lQ=iQ&&navigator.userAgent.toLocaleLowerCase(),rQ=iQ&&lQ.includes("firefox"),aQ=iQ&&lQ.includes("android"),dQ=function(){function e(){_F(this,e)}return HF(e,null,[{key:"getRateIndexByRate",value:function(t){return e.FREQ.indexOf(t)}},{key:"parseADTS",value:function(t,n){for(var U=t.length,F=0;F+2<U&&(255!==t[F]||240!=(246&t[F+1]));)F++;if(!(F>=U)){var Q=F,i=[],l=(60&t[F+2])>>>2,r=e.FREQ[l];if(!r)throw new Error("Invalid sampling index: ".concat(l));for(var a,d,o=1+((192&t[F+2])>>>6),s=(1&t[F+2])<<2|(192&t[F+3])>>>6,B=e._getConfig(l,s,o),c=B.config,R=B.codec,V=0,u=e.getFrameDuration(r);F+7<U;)if(255===t[F]&&240==(246&t[F+1])){if(U-F<(d=(3&t[F+3])<<11|t[F+4]<<3|(224&t[F+5])>>5))break;a=2*(1&~t[F+1]),i.push({pts:n+V*u,data:t.subarray(F+7+a,F+d)}),V++,F+=d}else F++;return{skip:Q,remaining:F>=U?void 0:t.subarray(F),frames:i,samplingFrequencyIndex:l,sampleRate:r,objectType:o,channelCount:s,codec:R,config:c,originCodec:"mp4a.40.".concat(o)}}}},{key:"parseAudioSpecificConfig",value:function(t){if(t.length){var n=t[0]>>>3,U=(7&t[0])<<1|t[1]>>>7,F=(120&t[1])>>>3,Q=e.FREQ[U];if(Q){var i=e._getConfig(U,F,n);return{samplingFrequencyIndex:U,sampleRate:Q,objectType:n,channelCount:F,config:i.config,codec:i.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 U,F,Q=[];return rQ?e>=6?(U=5,F=e-3):(U=2,F=e):aQ?(U=2,F=e):(U=2===n||5===n?n:5,F=e,e>=6?F=e-3:1===t&&(U=2,F=e)),Q[0]=U<<3,Q[0]|=(14&e)>>1,Q[1]=(1&e)<<7,Q[1]|=t<<3,5===U&&(Q[1]|=(14&F)>>1,Q[2]=(1&F)<<7,Q[2]|=8,Q[3]=0),{config:Q,codec:"mp4a.40.".concat(U)}}},{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}();PF(dQ,"FREQ",[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350]);var oQ=Math.pow(2,32);function sQ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<8)+(e[t+1]||0)}function BQ(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 cQ(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 RQ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return BQ(e,t)*oQ+BQ(e,t+4)}function VQ(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)}var uQ=function(){function e(t){if(_F(this,e),PF(this,"_bytesAvailable",void 0),PF(this,"_bitsAvailable",0),PF(this,"_word",0),!t)throw new Error("ExpGolomb data params is required");this._data=t,this._bytesAvailable=t.byteLength,this._bytesAvailable&&this._loadWord()}return HF(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,U=0;U<e;U++)0!==n&&(n=(t+this.readEG()+256)%256),t=0===n?t:n}}]),e}(),hQ=function(){function e(t){_F(this,e),this._buffer=t,this._offset=0,this._heldBits=0,this._numHeldBits=0}return HF(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}(),ZQ=function(){function e(){_F(this,e)}return HF(e,null,[{key:"parseVVCDecoderConfigurationRecord",value:function(t){var n=new hQ(t),U=n.readUint8();n.streamRead1Bytes(),n.extractBits(5);var F,Q,i,l,r,a,d,o,s=n.extractBits(2)+1,B=n.extractBits(1),c={};B&&(n.streamRead2Bytes(),l=n.extractBits(2),r=n.extractBits(3),Q=n.extractBits(3),i=n.extractBits(2),n.extractBits(6),c=e.parseVVCPTLRecord(n,Q),F=n.readUint16(),a=n.readUint16(),d=n.readUint16(),o=n.readUint16());for(var R=n.readUint8(),V=[],u=[],h=[],Z=null,S=0;S<R;S++){n.streamRead1Bytes(),n.extractBits(1),n.extractBits(2);var p=n.extractBits(5),J=1;13!==p&&12!==p&&(J=n.readUint16());for(var m=0;m<J;m++){var W=n.readUint16();switch(p){case 14:V.push(n.readUint8Array(W));break;case 15:var k=n.readUint8Array(W);Z||(Z=e.parseSPS(e.removeEPB(k))),u.push(k);break;case 16:h.push(n.readUint8Array(W))}}}return{data:t,configurationVersion:U,codec:"bvc2.1.6.L93.B0",nalUnitSize:s,ptlPresentFlag:B,olsIdx:F,numSublayers:Q,constantFrameRate:i,chromaFormatIdc:l,bitDepthLumaMinus8:r,ptlRecord:c,width:a,height:d,sampleRate:o,numOfArrays:R,vps:V,sps:u,pps:h,spsParsed:Z}}},{key:"parseVVCPTLRecord",value:function(e,t){e.streamRead2Bytes(),e.extractBits(2);var n=e.extractBits(6),U=e.extractBits(7),F=e.extractBits(1),Q=e.readUint8();e.streamRead1Bytes();var i=e.extractBits(1),l=e.extractBits(1),r=new Uint8Array(n);if(n){for(var a=0;a<n-1;a++){var d=e.extractBits(6);e.streamRead1Bytes();var o=e.extractBits(2);r[a]=d<<2|o}r[n-1]=e.extractBits(6)}else e.extractBits(6);var s=[];if(t>1){e.streamRead1Bytes();for(var B=0,c=t-2;c>=0;--c){B|=e.extractBits(1)<<c}for(var R=t;R<=8&&t>1;++R)e.extractBits(1);for(var V=t-2;V>=0;--V)B&1<<V&&(s[V]=e.readUint8())}var u=e.readUint8(),h=[];if(u)for(var Z=0;Z<u;Z++)h.push(e.readUint32());return{generalProfileIdc:U,generalTierFlag:F,generalLevelIdc:Q,ptlFrameOnlyConstraintFlag:i,ptlMultilayerEnabledFlag:l,generalConstraintInfo:r,subLayerLevelIdc:s,generalSubProfileIdc:h,ptlNumSubProfiles:u,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 U=e.buffer.slice(e.position,e.position+4);e.skip(4);var F=new Uint8Array(e.buffer.slice(e.position,e.position+n));e.skip(n),t.push({header:U,body:F})}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=[],U=1;U<t-2;)0===e[U]&&0===e[U+1]&&3===e[U+2]?(n.push(U+2),U+=2):U++;if(!n.length)return e;var F=t-n.length,Q=new Uint8Array(F),i=0;for(U=0;U<F;i++,U++)i===n[0]&&(i++,n.shift()),Q[U]=e[i];return Q}},{key:"parseVps",value:function(){}},{key:"parseSPS",value:function(t){var n=new uQ(t);n.readUByte(),n.readUByte(),n.skipBits(4);var U=n.readBits(4),F=n.readBits(3),Q=n.readBits(2),i=420;Q<=3&&(i=[0,420,422,444][Q]),n.readBits(2),n.readBits(1);var l=e._parseProfileTierLevel(n,1,F);return n.readBits(1),n.readBits(1)&&n.readBits(1),{width:n.readUEG(),height:n.readUEG(),spsMaxSubLayerMinus1:F,spsVideoParameterSetId:U,chromaFormatIdc:Q,chromaFormat:i,ptlInfo:l}}},{key:"_parseProfileTierLevel",value:function(t,n,U){var F,Q=t.readBits(7),i=t.readBits(1),l=t.readBits(8),r=t.readBits(1),a=t.readBits(1);n&&(F=e._parseGeneralConstraintsInfo(t));for(var d=U-1,o=[],s=[],B=[],c=d;c>=0;--c)o[c]=t.readBits(1);for(;!t.byteAligned();)t.readBits(1);for(var R=d;R>=0;--R)o[R]&&(s[R]=t.readUByte());if(n)for(var V=t.readUByte(),u=0;u<V;u++)B[u]=t.readBits(32);return{generalProfileIdc:Q,generalTierFlag:i,generalLevelIdc:l,ptlFrameOnlyConstraintFlag:r,ptlMultilayerEnabledFlag:a,ptlSublayerLevelPresentFlags:o,ptlSublayerLevelIdcs:s,ptlSubProfileIdcs:B,gciInfo:F}}},{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 U=8-e.bitsPos()%8;return e.skipBits(U),{gciPresentFlag:t}}}]),e}(),SQ=function(){function e(){_F(this,e)}return HF(e,null,[{key:"findBox",value:function(t,n){var U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,F=[];if(!t)return F;for(var Q=0,i="",l=0;t.length>7;){if(Q=BQ(t),i=String.fromCharCode.apply(null,t.subarray(4,8)),l=8,1===Q?(Q=RQ(t,8),l+=8):Q||(Q=t.length),!n[0]||i===n[0]){var r=t.subarray(0,Q);if(!(n.length<2))return e.findBox(r.subarray(l),n.slice(1),U+l);F.push({start:U,size:Q,headerSize:l,type:i,data:r})}U+=Q,t=t.subarray(Q)}return F}},{key:"tfhd",value:function(e){return WQ(e,!0,(function(e,t){e.trackId=BQ(t);var n=4,U=1&e.flags,F=2&e.flags,Q=8&e.flags,i=16&e.flags,l=32&e.flags;U&&(n+=4,e.baseDataOffset=BQ(t,n),n+=4),F&&(e.sampleDescriptionIndex=BQ(t,n),n+=4),Q&&(e.defaultSampleDuration=BQ(t,n),n+=4),i&&(e.defaultSampleSize=BQ(t,n),n+=4),l&&(e.defaultSampleFlags=BQ(t,n))}))}},{key:"sidx",value:function(e){return WQ(e,!0,(function(e,t){var n=0;e.reference_ID=BQ(t,n),n+=4,e.timescale=BQ(t,n),n+=4,0===e.version?(e.earliest_presentation_time=BQ(t,n),n+=4,e.first_offset=BQ(t,n),n+=4):(e.earliest_presentation_time=RQ(t,n),n+=8,e.first_offset=RQ(t,n),n+=8),n+=2,e.references=[];var U=sQ(t,n);n+=2;for(var F=0;F<U;F++){var Q={};e.references.push(Q);var i=BQ(t,n);n+=4,Q.reference_type=i>>31&1,Q.referenced_size=2147483647&i,Q.subsegment_duration=BQ(t,n),i=BQ(t,n+=4),n+=4,Q.starts_with_SAP=i>>31&1,Q.SAP_type=i>>28&7,Q.SAP_delta_time=268435455&i}}))}},{key:"moov",value:function(t){return WQ(t,!1,(function(t,n,U){t.mvhd=e.mvhd(e.findBox(n,["mvhd"],U)[0]),t.trak=e.findBox(n,["trak"],U).map((function(t){return e.trak(t)})),t.pssh=e.pssh(e.findBox(n,["pssh"],U)[0])}))}},{key:"mvhd",value:function(e){return WQ(e,!0,(function(e,t){var n=0;1===e.version?(e.timescale=BQ(t,16),e.duration=RQ(t,20),n+=28):(e.timescale=BQ(t,8),e.duration=BQ(t,12),n+=16),e.nextTrackId=BQ(t,n+76)}))}},{key:"trak",value:function(t){return WQ(t,!1,(function(t,n,U){t.tkhd=e.tkhd(e.findBox(n,["tkhd"],U)[0]),t.mdia=e.mdia(e.findBox(n,["mdia"],U)[0]),t.edts=e.edts(e.findBox(n,["edts"],U)[0])}))}},{key:"tkhd",value:function(e){return WQ(e,!0,(function(e,t){var n=0;1===e.version?(e.trackId=BQ(t,16),e.duration=RQ(t,24),n+=32):(e.trackId=BQ(t,8),e.duration=BQ(t,16),n+=20),e.width=BQ(t,n+52),e.height=BQ(t,n+56)}))}},{key:"mdia",value:function(t){return WQ(t,!1,(function(t,n,U){t.mdhd=e.mdhd(e.findBox(n,["mdhd"],U)[0]),t.hdlr=e.hdlr(e.findBox(n,["hdlr"],U)[0]),t.minf=e.minf(e.findBox(n,["minf"],U)[0])}))}},{key:"edts",value:function(t){return WQ(t,!1,(function(t,n,U){t.elst=e.elst(e.findBox(n,["elst"],U)[0])}))}},{key:"elst",value:function(e){return WQ(e,!0,(function(e,t,n){e.entries=[],e.entriesData=t;var U=0,F=BQ(t,U);U+=4;for(var Q=0;Q<F;Q++){var i={};e.entries.push(i),1===e.version?(i.segment_duration=RQ(t,U),U+=8,i.media_time=VQ(t,U),U+=8):(i.segment_duration=BQ(t,U),U+=4,i.media_time=cQ(t,U),U+=4),i.media_rate_integer=sQ(t,U),U+=2,i.media_rate_fraction=sQ(t,n),U+=2}}))}},{key:"mdhd",value:function(e){return WQ(e,!0,(function(e,t){var n=0;1===e.version?(e.timescale=BQ(t,16),e.duration=RQ(t,20),n+=28):(e.timescale=BQ(t,8),e.duration=BQ(t,12),n+=16);var U=sQ(t,n);e.language=String.fromCharCode(96+(U>>10&31),96+(U>>5&31),96+(31&U))}))}},{key:"hdlr",value:function(e){return WQ(e,!0,(function(e,t){0===e.version&&(e.handlerType=String.fromCharCode.apply(null,t.subarray(4,8)))}))}},{key:"minf",value:function(t){return WQ(t,!1,(function(t,n,U){t.vmhd=e.vmhd(e.findBox(n,["vmhd"],U)[0]),t.smhd=e.smhd(e.findBox(n,["smhd"],U)[0]),t.stbl=e.stbl(e.findBox(n,["stbl"],U)[0])}))}},{key:"vmhd",value:function(e){return WQ(e,!0,(function(e,t){e.graphicsmode=sQ(t),e.opcolor=[sQ(t,2),sQ(t,4),sQ(t,6)]}))}},{key:"smhd",value:function(e){return WQ(e,!0,(function(e,t){e.balance=sQ(t)}))}},{key:"stbl",value:function(t){return WQ(t,!1,(function(t,n,U){var F,Q,i;t.stsd=e.stsd(e.findBox(n,["stsd"],U)[0]),t.stts=e.stts(e.findBox(n,["stts"],U)[0]),t.ctts=e.ctts(e.findBox(n,["ctts"],U)[0]),t.stsc=e.stsc(e.findBox(n,["stsc"],U)[0]),t.stsz=e.stsz(e.findBox(n,["stsz"],U)[0]),t.stco=e.stco(e.findBox(n,["stco"],U)[0]),t.stco||(t.co64=e.co64(e.findBox(n,["co64"],U)[0]),t.stco=t.co64);var l=null===(F=t.stsd.entries[0])||void 0===F||null===(Q=F.sinf)||void 0===Q||null===(i=Q.schi)||void 0===i?void 0:i.tenc.default_IV_size;t.stss=e.stss(e.findBox(n,["stss"],U)[0]),t.senc=e.senc(e.findBox(n,["senc"],U)[0],l)}))}},{key:"senc",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return WQ(e,!0,(function(e,n){var U=0,F=BQ(n,U);U+=4,e.samples=[];for(var Q=0;Q<F;Q++){for(var i={InitializationVector:[]},l=0;l<t;l++)i.InitializationVector[l]=n[U+l];if(U+=t,2&e.flags){i.subsamples=[];var r=sQ(n,U);U+=2;for(var a=0;a<r;a++){var d={};d.BytesOfClearData=sQ(n,U),U+=2,d.BytesOfProtectedData=BQ(n,U),U+=4,i.subsamples.push(d)}}e.samples.push(i)}}))}},{key:"pssh",value:function(e){return WQ(e,!0,(function(e,t){for(var n=[],U=[],F=0,Q=0;Q<16;Q++)U.push(kQ(t[F+Q]));if(F+=16,e.version>0){var i=BQ(t,F);F+=4;for(var l=0;l<(""+i).length;l++)for(var r=0;r<16;r++){var a=t[F];F+=1,n.push(kQ(a))}}var d=BQ(t,F);e.data_size=d,F+=4,e.kid=n,e.system_id=U,e.buffer=t}))}},{key:"bvc2",value:function(t){return WQ(t,!1,(function(t,n,U){var F=JQ(t,n),Q=n.subarray(F);U+=F,t.vvcC=e.bv2C(e.findBox(Q,["bv2C"],U)[0]),t.pasp=e.pasp(e.findBox(Q,["pasp"],U)[0])}))}},{key:"bv2C",value:function(e){return WQ(e,!1,(function(e,t,n){var U=ZQ.parseVVCDecoderConfigurationRecord(t);for(var F in U)Object.prototype.hasOwnProperty.call(U,F)&&(e[F]=U[F])}))}},{key:"stsd",value:function(t){return WQ(t,!0,(function(t,n,U){t.entryCount=BQ(n),t.entries=e.findBox(n.subarray(4),[],U+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 WQ(t,!1,(function(t,n,U){t.channelCount=sQ(n,16),t.samplesize=sQ(n,18),t.sampleRate=BQ(n,24)/65536,n=n.subarray(28),t.sinf=e.sinf(e.findBox(n,["sinf"],U)[0]),t.esds=e.esds(e.findBox(n,["esds"],U)[0])}));case"encv":return WQ(t,!1,(function(t,n,U){t.width=sQ(n,24),t.height=sQ(n,26),t.horizresolution=BQ(n,28),t.vertresolution=BQ(n,32),n=n.subarray(78),t.sinf=e.sinf(e.findBox(n,["sinf"],U)[0]),t.avcC=e.avcC(e.findBox(n,["avcC"],U)[0]),t.hvcC=e.hvcC(e.findBox(n,["hvcC"],U)[0]),t.pasp=e.pasp(e.findBox(n,["pasp"],U)[0])}))}})).filter(Boolean)}))}},{key:"tenc",value:function(e){return WQ(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 U=0;U<16;U++)e.default_KID.push(kQ(t[n])),n+=1}))}},{key:"schi",value:function(t){return WQ(t,!1,(function(t,n,U){t.tenc=e.tenc(e.findBox(n,["tenc"],U)[0])}))}},{key:"sinf",value:function(t){return WQ(t,!1,(function(t,n,U){t.schi=e.schi(e.findBox(n,["schi"],U)[0]),t.frma=e.frma(e.findBox(n,["frma"],U)[0])}))}},{key:"frma",value:function(e){return WQ(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 WQ(t,!1,(function(t,n,U){var F=JQ(t,n),Q=n.subarray(F);U+=F,t.avcC=e.avcC(e.findBox(Q,["avcC"],U)[0]),t.pasp=e.pasp(e.findBox(Q,["pasp"],U)[0])}))}},{key:"avcC",value:function(e){return WQ(e,!1,(function(e,t){e.configurationVersion=t[0],e.AVCProfileIndication=t[1],e.profileCompatibility=t[2],e.AVCLevelIndication=t[3],e.codec=function(e){for(var t,n="avc1.",U=0;U<3;U++)(t=e[U].toString(16)).length<2&&(t="0".concat(t)),n+=t;return n}([t[1],t[2],t[3]]),e.lengthSizeMinusOne=3&t[4],e.spsLength=31&t[5],e.sps=[];for(var n=6,U=0;U<e.spsLength;U++){var F=sQ(t,n);n+=2,e.sps.push(t.subarray(n,n+F)),n+=F}e.ppsLength=t[n],n+=1,e.pps=[];for(var Q=0;Q<e.ppsLength;Q++){var i=sQ(t,n);n+=2,e.pps.push(t.subarray(n,n+=i)),n+=i}}))}},{key:"hvc1",value:function(t){return WQ(t,!1,(function(t,n,U){var F=JQ(t,n),Q=n.subarray(F);U+=F,t.hvcC=e.hvcC(e.findBox(Q,["hvcC"],U)[0]),t.pasp=e.pasp(e.findBox(Q,["pasp"],U)[0])}))}},{key:"hvcC",value:function(e){return WQ(e,!1,(function(t,n){t.data=e.data,t.codec="hev1.1.6.L93.B0",t.configurationVersion=n[0];var U=n[1];t.generalProfileSpace=U>>6,t.generalTierFlag=(32&U)>>5,t.generalProfileIdc=31&U,t.generalProfileCompatibility=BQ(n,2),t.generalConstraintIndicatorFlags=n.subarray(6,12),t.generalLevelIdc=n[12],t.avgFrameRate=sQ(n,19),t.numOfArrays=n[22],t.vps=[],t.sps=[],t.pps=[];for(var F=23,Q=0,i=0,l=0,r=0;r<t.numOfArrays;r++){Q=63&n[F],i=sQ(n,F+1),F+=3;for(var a,d=[],o=0;o<i;o++)l=sQ(n,F),F+=2,d.push(n.subarray(F,F+l)),F+=l;if(32===Q)(a=t.vps).push.apply(a,d);else if(33===Q){var s;(s=t.sps).push.apply(s,d)}else if(34===Q){var B;(B=t.pps).push.apply(B,d)}}}))}},{key:"pasp",value:function(e){return WQ(e,!1,(function(e,t){e.hSpacing=BQ(t),e.vSpacing=BQ(t,4)}))}},{key:"mp4a",value:function(t){return WQ(t,!1,(function(t,n,U){var F=mQ(t,n);t.esds=e.esds(e.findBox(n.subarray(F),["esds"],U+F)[0])}))}},{key:"esds",value:function(e){return WQ(e,!0,(function(e,t){e.codec="mp4a.";for(var n=0,U=0,F=0,Q=0;t.length;){for(Q=t[n=0],U=t[n+1],n+=2;128&U;)F=(127&U)<<7,U=t[n],n+=1;if(F+=127&U,3===Q)t=t.subarray(n+3);else{if(4!==Q){if(5===Q){var i=e.config=t.subarray(n,n+F),l=(248&i[0])>>3;return 31===l&&i.length>=2&&(l=32+((7&i[0])<<3)+((224&i[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 WQ(e,!1,(function(e,t){mQ(e,t)}))}},{key:"stts",value:function(e){return WQ(e,!0,(function(e,t){for(var n=BQ(t),U=[],F=4,Q=0;Q<n;Q++)U.push({count:BQ(t,F),delta:BQ(t,F+4)}),F+=8;e.entryCount=n,e.entries=U}))}},{key:"ctts",value:function(e){return WQ(e,!0,(function(e,t){var n=BQ(t),U=[],F=4;if(1===e.version)for(var Q=0;Q<n;Q++)U.push({count:BQ(t,F),offset:BQ(t,F+4)}),F+=8;else for(var i=0;i<n;i++)U.push({count:BQ(t,F),offset:-(1+~BQ(t,F+4))}),F+=8;e.entryCount=n,e.entries=U}))}},{key:"stsc",value:function(e){return WQ(e,!0,(function(e,t){for(var n=BQ(t),U=new Array(n),F=4,Q=0;Q<n;Q++)U[Q]={firstChunk:BQ(t,F),samplesPerChunk:BQ(t,F+4),sampleDescriptionIndex:BQ(t,F+8)},F+=12;e.entryCount=n,e.entries=U}))}},{key:"stsz",value:function(e){return WQ(e,!0,(function(e,t){var n=BQ(t),U=BQ(t,4),F=new Array(U);if(!n)for(var Q=8,i=0;i<U;i++)F[i]=BQ(t,Q),Q+=4;e.sampleSize=n,e.sampleCount=U,e.entrySizes=F}))}},{key:"stco",value:function(e){return WQ(e,!0,(function(e,t){for(var n=BQ(t),U=new Array(n),F=4,Q=0;Q<n;Q++)U[Q]=BQ(t,F),F+=4;e.entryCount=n,e.entries=U}))}},{key:"co64",value:function(e){return WQ(e,!0,(function(e,t){for(var n=BQ(t),U=new Array(n),F=4,Q=0;Q<n;Q++)U[Q]=RQ(t,F),F+=8;e.entryCount=n,e.entries=U}))}},{key:"stss",value:function(e){return WQ(e,!0,(function(e,t){for(var n=BQ(t),U=new Array(n),F=4,Q=0;Q<n;Q++)U[Q]=BQ(t,F),F+=4;e.entryCount=n,e.entries=U}))}},{key:"moof",value:function(t){return WQ(t,!1,(function(t,n,U){t.mfhd=e.mfhd(e.findBox(n,["mfhd"],U)[0]),t.traf=e.findBox(n,["traf"],U).map((function(t){return e.traf(t)}))}))}},{key:"mfhd",value:function(e){return WQ(e,!0,(function(e,t){e.sequenceNumber=BQ(t)}))}},{key:"traf",value:function(t){return WQ(t,!1,(function(t,n,U){t.tfhd=e.tfhd(e.findBox(n,["tfhd"],U)[0]),t.tfdt=e.tfdt(e.findBox(n,["tfdt"],U)[0]),t.trun=e.trun(e.findBox(n,["trun"],U)[0])}))}},{key:"trun",value:function(e){return WQ(e,!0,(function(e,t){var n=e.version,U=e.flags,F=t.length,Q=e.sampleCount=BQ(t),i=4;if(F>i&&1&U&&(e.dataOffset=-(1+~BQ(t,i)),i+=4),F>i&&4&U&&(e.firstSampleFlags=BQ(t,i),i+=4),F>i){var l;e.samples=new Array(Q);for(var r=0;r<Q;r++)l={},256&U&&(l.duration=BQ(t,i),i+=4),512&U&&(l.size=BQ(t,i),i+=4),1024&U&&(l.flags=BQ(t,i),i+=4),2048&U&&(l.cts=n?-(1+~BQ(t,i+4)):BQ(t,i),i+=4),e.samples[r]=l}}))}},{key:"tfdt",value:function(e){return WQ(e,!0,(function(e,t){1===e.version?e.baseMediaDecodeTime=RQ(t):e.baseMediaDecodeTime=BQ(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 U,F,Q=e.trak;if(Q&&Q.length){var i=Q.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=Q.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(i&&t){var r,a,d,o,s,B,c,R,V=t,u=null===(r=i.tkhd)||void 0===r?void 0:r.trackId;null!=u&&(V.id=i.tkhd.trackId),V.tkhdDuration=i.tkhd.duration,V.mvhdDurtion=e.mvhd.duration,V.mvhdTimecale=e.mvhd.timescale,V.timescale=V.formatTimescale=i.mdia.mdhd.timescale,V.duration=i.mdia.mdhd.duration||V.mvhdDurtion/V.mvhdTimecale*V.timescale,null!==(a=i.edts)&&void 0!==a&&a.elst&&(V.editList=i.edts.elst,V.editListApplied=i.editListApplied);var h,Z,S,p,J,m,W,k,E=i.mdia.minf.stbl.stsd.entries[0];if(V.width=E.width,V.height=E.height,E.pasp&&(V.sarRatio=[E.pasp.hSpacing,E.pasp.vSpacing]),E.hvcC)V.codecType=$F,V.codec=E.hvcC.codec,V.vps=E.hvcC.vps,V.sps=E.hvcC.sps,V.pps=E.hvcC.pps,V.hvcC=E.hvcC.data;else if(E.avcC)V.codec=E.avcC.codec,V.sps=E.avcC.sps,V.pps=E.avcC.pps;else{if(!E.vvcC)throw new Error("unknown video stsd entry");V.codecType=eQ,V.codec=E.vvcC.codec,V.sps=E.vvcC.sps,V.pps=E.vvcC.pps,V.vps=E.vvcC.vps,V.vvcC=E.vvcC.data}if(V.present=!0,V.ext={},V.ext.stss=null===(d=i.mdia)||void 0===d||null===(o=d.minf)||void 0===o||null===(s=o.stbl)||void 0===s?void 0:s.stss,V.ext.ctts=null===(B=i.mdia)||void 0===B||null===(c=B.minf)||void 0===c||null===(R=c.stbl)||void 0===R?void 0:R.ctts,E&&"encv"===E.type)V.isVideoEncryption=!0,E.default_KID=null===(h=E.sinf)||void 0===h||null===(Z=h.schi)||void 0===Z?void 0:Z.tenc.default_KID,E.default_IsEncrypted=null===(S=E.sinf)||void 0===S||null===(p=S.schi)||void 0===p?void 0:p.tenc.default_IsEncrypted,E.default_IV_size=null===(J=E.sinf)||void 0===J||null===(m=J.schi)||void 0===m?void 0:m.tenc.default_IV_size,V.videoSenc=i.mdia.minf.stbl.senc&&i.mdia.minf.stbl.senc.samples,E.data_format=null===(W=E.sinf)||void 0===W||null===(k=W.frma)||void 0===k?void 0:k.data_format,V.useEME=e.useEME,V.kidValue=e.kidValue,V.pssh=e.pssh,V.encv=E}if(l&&n){var y,f,N,b,v,T,C,g,D,X,x=n,L=null===(y=l.tkhd)||void 0===y?void 0:y.trackId;null!=L&&(x.id=l.tkhd.trackId),x.tkhdDuration=l.tkhd.duration,x.mvhdDurtion=e.mvhd.duration,x.mvhdTimecale=e.mvhd.timescale,x.timescale=x.formatTimescale=l.mdia.mdhd.timescale,x.duration=l.mdia.mdhd.duration||x.mvhdDurtion/x.mvhdTimecale*x.timescale,null!==(f=l.edts)&&void 0!==f&&f.elst&&(x.editList=l.edts.elst,x.editListApplied=l.editListApplied);var I,G,M,Y,w,K,_,j,H=l.mdia.minf.stbl.stsd.entries[0];switch(x.sampleSize=H.sampleSize,x.sampleRate=H.sampleRate,x.channelCount=H.channelCount,x.present=!0,H.type){case"alaw":x.codecType=x.codec=nQ,x.sampleRate=8e3;break;case"ulaw":x.codecType=x.codec=UQ,x.sampleRate=8e3;break;default:x.sampleDuration=dQ.getFrameDuration(x.sampleRate,x.timescale),x.sampleRateIndex=dQ.getRateIndexByRate(x.sampleRate),x.objectType=(null===(U=H.esds)||void 0===U?void 0:U.objectType)||2,H.esds&&(x.config=Array.from(H.esds.config)),x.codec=(null===(F=H.esds)||void 0===F?void 0:F.codec)||"mp4a.40.2"}if(x.sampleDuration=dQ.getFrameDuration(x.sampleRate,x.timescale),x.objectType=(null===(N=H.esds)||void 0===N?void 0:N.objectType)||2,H.esds&&(H.esds.config?x.config=Array.from(H.esds.config):console.warn("esds config is null")),x.codec=(null===(b=H.esds)||void 0===b?void 0:b.codec)||"mp4a.40.2",x.sampleRateIndex=dQ.getRateIndexByRate(x.sampleRate),x.ext={},x.ext.stss=null===(v=l.mdia)||void 0===v||null===(T=v.minf)||void 0===T||null===(C=T.stbl)||void 0===C?void 0:C.stss,x.ext.ctts=null===(g=l.mdia)||void 0===g||null===(D=g.minf)||void 0===D||null===(X=D.stbl)||void 0===X?void 0:X.ctts,x.present=!0,H&&"enca"===H.type)x.isAudioEncryption=!0,H.data_format=null===(I=H.sinf)||void 0===I||null===(G=I.frma)||void 0===G?void 0:G.data_format,H.default_KID=null===(M=H.sinf)||void 0===M||null===(Y=M.schi)||void 0===Y?void 0:Y.tenc.default_KID,H.default_IsEncrypted=null===(w=H.sinf)||void 0===w||null===(K=w.schi)||void 0===K?void 0:K.tenc.default_IsEncrypted,H.default_IV_size=null===(_=H.sinf)||void 0===_||null===(j=_.schi)||void 0===j?void 0:j.tenc.default_IV_size,x.audioSenc=l.mdia.minf.stbl.senc&&l.mdia.minf.stbl.senc.samples,x.useEME=e.useEME,x.kidValue=e.kidValue,x.enca=H}if(n&&(n.isVideoEncryption=!!t&&t.isVideoEncryption),t&&(t.isAudioEncryption=!!n&&n.isAudioEncryption),null!=t&&t.encv||null!=n&&n.enca){var P,z,O=null==t||null===(P=t.encv)||void 0===P?void 0:P.default_KID,A=null==n||null===(z=n.enca)||void 0===z?void 0:z.default_KID,q=O||A?(O||A).join(""):null;t&&(t.kid=q),n&&(n.kid=q)}return t&&(t.flags=3841),n&&(n.flags=1793),{videoTrack:t,audioTrack:n}}}},{key:"evaluateDefaultDuration",value:function(e,t,n){var U,F=null==t||null===(U=t.samples)||void 0===U?void 0:U.length;return F?1024*F/t.timescale*e.timescale/n:1024}},{key:"moofToSamples",value:function(t,n,U){var F={};return t.mfhd&&(n&&(n.sequenceNumber=t.mfhd.sequenceNumber),U&&(U.sequenceNumber=t.mfhd.sequenceNumber)),t.traf.forEach((function(t){var Q=t.tfhd,i=t.tfdt,l=t.trun;if(Q&&l){i&&(n&&n.id===Q.trackId&&(n.baseMediaDecodeTime=i.baseMediaDecodeTime),U&&U.id===Q.trackId&&(U.baseMediaDecodeTime=i.baseMediaDecodeTime));var r=Q.defaultSampleSize||0,a=Q.defaultSampleDuration||e.evaluateDefaultDuration(n,U,l.samples.length||l.sampleCount),d=l.dataOffset||0,o=0,s=-1;if(!l.samples.length&&l.sampleCount){F[Q.trackId]=new Array(l.sampleCount);for(var B=0;B<l.sampleCount;B++)F[Q.trackId][B]={offset:d,dts:o,duration:a,size:r},o+=a,d+=r}else F[Q.trackId]=l.samples.map((function(e,t){return(e={offset:d,dts:o,pts:o+(e.cts||0),duration:e.duration||a,size:e.size||r,gopId:s,keyframe:0===t||null!==e.flags&&void 0!==e.flags&&(65536&e.flags)>>>0!=65536}).keyframe&&(s++,e.gopId=s),o+=e.duration,d+=e.size,e}))}})),F}},{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)})),U=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||U){var F,Q;if(n){var i,l,r=null===(i=n.mdia)||void 0===i||null===(l=i.minf)||void 0===l?void 0:l.stbl;if(!r)return;var a=r.stts,d=r.stsc,o=r.stsz,s=r.stco,B=r.stss,c=r.ctts;if(!(a&&d&&o&&s&&B))return;F=pQ(a,d,o,s,c,B)}if(U){var R,V,u,h=null===(R=U.mdia)||void 0===R||null===(V=R.minf)||void 0===V?void 0:V.stbl;if(!h)return;var Z=null===(u=U.mdia.mdhd)||void 0===u?void 0:u.timescale,S=h.stts,p=h.stsc,J=h.stsz,m=h.stco;if(!(Z&&S&&p&&J&&m))return;Q=pQ(S,p,J,m)}return{videoSamples:F,audioSamples:Q}}}}}]),e}();function pQ(e,t,n,U,F,Q){var i,l,r,a=[],d=null==F?void 0:F.entries,o=t.entries,s=U.entries,B=n.entrySizes,c=null==Q?void 0:Q.entries;c&&(i={},c.forEach((function(e){i[e-1]=!0}))),d&&(l=[],d.forEach((function(e){for(var t=e.count,n=e.offset,U=0;U<t;U++)l.push(n)})));var R=-1,V=0,u=0,h=0,Z=0,S=0,p=o[0].samplesPerChunk,J=o[1]?o[1].firstChunk-1:1/0;return e.entries.forEach((function(e){for(var t=e.count,U=e.delta,F=0;F<t;F++)r={dts:V,duration:U,size:B[u]||n.sampleSize,offset:s[h]+S,index:u},c&&(r.keyframe=i[u],r.keyframe&&R++,r.gopId=R),l&&u<l.length&&(r.pts=r.dts+l[u]),a.push(r),V+=U,++u<p?S+=r.size:(h++,S=0,h>=J&&(Z++,J=o[Z+1]?o[Z+1].firstChunk-1:1/0),p+=o[Z].samplesPerChunk)})),a}function JQ(e,t){return e.dataReferenceIndex=sQ(t,6),e.width=sQ(t,24),e.height=sQ(t,26),e.horizresolution=BQ(t,28),e.vertresolution=BQ(t,32),e.frameCount=sQ(t,40),e.depth=sQ(t,74),78}function mQ(e,t){return e.dataReferenceIndex=sQ(t,6),e.channelCount=sQ(t,16),e.sampleSize=sQ(t,18),e.sampleRate=BQ(t,24)/65536,28}function WQ(e,t,n){if(e){if(e.size!==e.data.length)throw new Error("box ".concat(e.type," size !== data.length"));var U={start:e.start,size:e.size,headerSize:e.headerSize,type:e.type};return t&&(U.version=e.data[e.headerSize],U.flags=function(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)}(e.data,e.headerSize+1),U.headerSize+=4),n(U,e.data.subarray(U.headerSize),U.start+U.headerSize),U}}var kQ=function(){for(var e=[],t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];return n.forEach((function(t){e.push(function(e,t,n){for(var U=String(n),F=t>>0,Q=Math.ceil(F/U.length),i=[],l=String(e);Q--;)i.push(U);return i.join("").substring(0,F-l.length)+l}(Number(t).toString(16),2,0))})),e[0]};function EQ(e,t,n,U){return e[t]?U?U(e[t]):e[t]:n}var yQ=function(){function e(t){var n,U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},F=arguments.length>2?arguments[2]:void 0;R(this,e),EF(this),this.url=t,this.options=U,this.dash=F,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 x,this._loadStates={video:this._createLoadingState(),audio:this._createLoadingState()}}var t;return u(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 U=Object.keys(KF),F=0;F<U.length;F++){var Q=U[F],i=KF[Q];if(i.types.concat(i.visualEntryBox).indexOf(n)>-1){this.videoCodecType="hevc"===Q?"h265":Q,this.videoCodecs=i.codecs;break}}pt.log("mpd dataType:",e,"codecs:",t,"cal type:",this.videoCodecType,"videoCodecs",this.videoCodecs),this.videoCodecType||(this.videoCodecType=GF,this.videoCodecs=KF[GF].codecs,console.warn("calcVideoCodeType default")),this.dash&&this.dash._pluginInst&&this.dash._pluginInst.setCodeInfo(this.videoCodecType)}}},{key:"fetch",value:(t=c(o().mark((function t(n){var U,F,Q,i,l,r,a,d,s;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return U=this,F={TYPE:"LIVE",ENDLIST:""},Q=[],t.prev=3,i=new Bt({}),t.next=7,i.load(n);case 7:if(l=t.sent,!(r=l.data)){t.next=21;break}if(a=e.parseMPD(r)){t.next=13;break}throw new Error("parse mpd error");case 13:return this._parseMeta(F,a),this._parseSegments(a,n),["video","audio"].forEach((function(e){U.mediaList[e].length>0&&(U.mediaList[e].selectedIdx="video"===e&&U.dash.selectedIdx||0,U.mediaList[e].sort((function(t,n){return"video"===e?n.height-t.height:n.bandwidth-t.bandwidth})))})),0===U.mediaList.video.length&&0===U.mediaList.audio.length&&(null===(d=U.dash)||void 0===d||d.emit("error",new LF(oe,me.DASH,{url:n,message:"NO_MEDIALIST fetch"}))),t.abrupt("return",{meta:F,segments:Q});case 21:throw U.dash.emit("error",new LF(oe,me.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),U.dash.emit("error",new LF(Je,LF.MPD_INIT_ERROR,{httpCode:null===(s=t.t0.response)||void 0===s?void 0:s.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=WU.durationConvert(t.minBufferTime)),t.maxSegmentDuration&&(e.maxSegmentDuration=WU.durationConvert(t.maxSegmentDuration)),t.mediaPresentationDuration&&(this.duration=WU.durationConvert(t.mediaPresentationDuration));var n=t.Period[0];!this.duration&&n&&n.duration&&(this.duration=WU.durationConvert(n.duration)),e.duration=this.duration}},{key:"_parseST",value:function(e,t,n,U,F){for(var Q=parseFloat(e.timescale),i=parseFloat(e.duration),l=Math.round(i/Q),r=parseInt(e.startNumber,10),a=r+Math.ceil(this.duration/l)-1,d=r;d<=a;d++){var o=l*(d-r),s=l*(d-r+1);d===a&&(l=this.duration-l*(a-r),s=this.duration),t.push({idx:d,start:Math.round(o),end:Math.round(s),url:U+e.media.replace("$RepresentationID$",n).replace("$Number%04d$",WU.preFixInterge(d,4)),downloaded:0,segmentDuration:l,height:F})}}},{key:"_getVideoSegments",value:function(e){var t,n,U,F,Q=e.bandwidth,i=e.id,l=e.baseURL,r=e.initSegment,a=e.mediaSegments,d=e.mimeType,o=e.codecs,s=e.width,B=e.height,c=e.frameRate,R=e.sar,V=e.startWithSAP,u=e.timescale,h=e.duration,Z=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_video_list)for(var S=0;S<this.options.dynamic_video.dynamic_video_list.length;S++){var p=this.options.dynamic_video.dynamic_video_list[S];p.bitrate===Q&&(t=p.size,n=p.definition,U=p.file_id,F=p.audio_file_id)}this.mediaList.video.push({id:i,baseURL:l,initSegment:l+r.replace("$RepresentationID$",i),inited:!1,mediaSegments:a,mimeType:d,codecs:o,width:s,height:B,size:t,frameRate:c,sar:R,startWithSAP:V,bandwidth:Q,timescale:u,duration:h,encrypted:Z,definition:n,fileId:U,audioFileId:F})}},{key:"_getAudioSegments",value:function(e){var t,n=e.bandwidth,U=e.id,F=e.baseURL,Q=e.initSegment,i=e.mediaSegments,l=e.mimeType,r=e.codecs,a=e.startWithSAP,d=e.timescale,o=e.duration,s=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_audio_list)for(var B=0;B<this.options.dynamic_video.dynamic_audio_list.length;B++)this.options.dynamic_video.dynamic_audio_list[B].bitrate===n&&(t=this.options.dynamic_video.dynamic_audio_list[B].size);this.mediaList.audio.push({id:U,baseURL:F,initSegment:F+Q.replace("$RepresentationID$",U),inited:!1,mediaSegments:i,mimeType:l,codecs:r,startWithSAP:a,bandwidth:n,size:t,timescale:d,duration:o,encrypted:s})}},{key:"_parseSegments",value:function(e,t){var n=this,U=[],F="";e.BaseURL&&(F=e.BaseURL[0]);var Q=e.Period[0];Q.AdaptationSet&&Q.AdaptationSet.length>1&&Q.AdaptationSet.forEach((function(e){var Q="video/mp4",i="avc1.64001E",l="640",r="360",a="25",d="1:1",o="1",s="588633";e.mimeType&&("video/mp4"===(Q=e.mimeType)?(i=e.codecs,l=parseFloat(e.width),r=parseFloat(e.height),a=parseFloat(e.frameRate),d=e.sar,o=e.startWithSAP,s=parseFloat(e.bandwidth),n.calcVideoCodeType(null,i)):"audio/mp4"===Q&&(i=e.codecs,o=e.startWithSAP,s=parseFloat(e.bandwidth))),e.Representation.forEach((function(B){U.indexOf(B.id)>-1&&(B.id=(parseInt(U[U.length-1],10)+1).toString()),U.push(B.id);var c,R="",V=[],u=0,h=t.slice(0,t.lastIndexOf("/")+1)+F;"video/mp4"===(Q=EQ(B,"mimeType",Q))?(B.codecs&&(i=B.codecs,n.calcVideoCodeType(null,i)),l=EQ(B,"width",l,parseFloat),r=EQ(B,"height",r,parseFloat),a=EQ(B,"frameRate",a,parseFloat),d=EQ(B,"sar",d)):"audio/mp4"===Q&&(i=EQ(B,"codecs",i)),o=EQ(B,"startWithSAP",o),s=EQ(B,"bandwidth",s,parseFloat),B.BaseURL&&B.BaseURL.length>0&&(h+=B.BaseURL[0]),e.SegmentTemplate&&e.SegmentTemplate.length>0&&(c=e.SegmentTemplate[0]),B.SegmentTemplate&&B.SegmentTemplate.length>0&&(c=B.SegmentTemplate[0]);var Z=!1;(e.ContentProtection||B.ContentProtection)&&(Z=!0),c&&(R=c.initialization,u=parseFloat(c.duration),n._parseST(c,V,B.id,h,r)),s=parseInt(s),"video/mp4"===Q?n._getVideoSegments({id:B.id,bandwidth:s,baseURL:h,initSegment:R,mediaSegments:V,mimeType:Q,codecs:i,width:l,height:r,frameRate:a,sar:d,startWithSAP:o,timescale:0,duration:u,encrypted:Z}):"audio/mp4"===Q&&n._getAudioSegments({id:B.id,baseURL:h,bandwidth:s,initSegment:R,mediaSegments:V,mimeType:Q,codecs:i,startWithSAP:o,timescale:0,duration:u,encrypted:Z})}))}))}},{key:"init",value:function(){var e=this,t=e.options;if(t.dynamic_video.dynamic_type&&"segment_template"!==t.dynamic_video.dynamic_type){e.dashType="segment_base";var n=0;t.duration;var U,F=t.dynamic_video;if(["dynamic_video_list","dynamic_audio_list"].forEach((function(U){var Q="dynamic_audio_list"===U;F[U].forEach((function(F){var i=parseInt(F.init_range.split("-")[0],10),l=parseInt(F.init_range.split("-")[1],10),r=parseInt(F.index_range.split("-")[0],10),a=parseInt(F.index_range.split("-")[1],10),d=F.first_moofmdat_range,o=d?[parseInt(d.split("-")[0],10),parseInt(d.split("-")[1],10)]:null;Q||e.calcVideoCodeType(F.codec_type),e.mediaList["dynamic_audio_list"===U?"audio":"video"].push({id:("dynamic_audio_list"===U?0:n++).toString(),baseURL:F.main_url,initSegment:F.main_url,initSegmentRange:[i,l],sidxRange:[r,a],firstMoofMdatRange:o,inited:!1,hasSidx:!1,mediaSegments:[],mimeType:Q?"audio/mp4":"video/mp4",codecs:Q?"mp4a.40.2":F.codec_type&&F.codec_type.indexOf("h265")>-1?"hev1.1.6.L93.B0":e.videoCodecs,width:F.vwidth,height:F.vheight,bandwidth:parseInt(F.bitrate),avg_bitrate:F.avg_bitrate,size:F.size,timescale:-1,duration:t.duration,encrypted:F.encrypt,kid:F.kid,definition:F.definition,sidxRes:void 0,fileId:F.file_id,audioFileId:F.audio_file_id,fallbackUrl:F.fallback_url,hasFallback:!1,backupUrl:F.backup_url_1,hasBackup:!1})}))})),e.type="vod",["video","audio"].forEach((function(t){e.mediaList[t].length>0&&(e.mediaList[t].selectedIdx="video"===t&&e.dash.selectedIdx||0,"video"===t&&e.mediaList[t].sort((function(e,n){return"video"===t?n.height-e.height:n.bandwidth-e.bandwidth})))})),0===e.mediaList.video.length&&0===e.mediaList.audio.length)pt.log("medaiList is null",JSON.stringify(e.options.dynamic_video)),null===(U=e.dash)||void 0===U||U.emit("error",new LF(oe,me.DASH,{message:"NO_MEDIALIST"}));e.emit("ready"),e._readyPromise.resolve()}else e.dashType="segment_template",e.fetch(t.dynamic_video.main_url).then((function(t){e.type=t.meta.TYPE.toLocaleLowerCase(),e.emit("ready"),e._readyPromise.resolve()}),(function(){["video","audio"].forEach((function(t){e.mediaList[t]=[]})),e.retry++,e.retry,e.retryMax}))}},{key:"getSidx",value:function(e){var t,n=this,U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"video",F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,Q=arguments.length>3?arguments[3]:void 0,i=this,l=i.mediaList[U][F],r=l.sidxRange[1];try{var a=e instanceof ArrayBuffer?e:e.buffer,d=new Uint8Array(a),o=String.fromCharCode.apply(null,d.subarray(4,8));if("sidx"!==o)throw pt.log("mpd sdix parse err"),new Error("topLevel ".concat(o,", index:").concat(F,", res:").concat(e.byteLength,", range:").concat(JSON.stringify(l.sidxRange)));var s=(t=SQ.sidx(SQ.findBox(new Uint8Array(a),[])[0])).timescale,B=[],c=0,R=0,V=r+1,u=V-1;t.references.forEach((function(e,t){R+=e.subsegment_duration,u+=e.referenced_size,B.push({idx:t+1,url:l.initSegment,start:Math.round(c/s),end:Math.round(R/s),startRaw:c/s,endRaw:R/s,range:[V,u],downloaded:l.firstMoofMdatRange&&0===c?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:U}),c=R+1,V=u+1})),B[0].startTime_=0,l.mediaDuration=0,B.forEach((function(e,t){l.mediaDuration+=e.segmentDuration,t>0&&(e.startTime_=B[t-1].startTime_+B[t-1].segmentDuration),t===B.length-1&&Q&&(e.end=Q)})),l.hasSidx=!0,l.mediaSegments=B,l.timescale=s,l.sidxRes=e}catch(h){if(i.sidxHanded)return;throw i.sidxHanded=!0,new LF(ue,me.SIDX,{line:398,handle:"[MPD] getSidx",message:"mpd segment base Parse getSidx error ".concat(U," err: ").concat(h.message)})}}},{key:"getCodecType",value:function(){return("hevc"===this.videoCodecType?"h265":this.videoCodecType)||"h264"}},{key:"_checkInBufferedOld",value:function(e,t,n,U,F){if(0===e.length)return!1;var Q=this._inBufferedOld(t,U,e),i=this._inBufferedOld(n,F,e);return!(!Q.in||!i.in||Q.index!==i.index)}},{key:"_inBufferedOld",value:function(e,t,n){for(var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5,F=0;F<n.length;F++){var Q=n[F].start,i=n[F].end,l=WU.round(Q),r=WU.round(i);if(l<=e&&e<=r||Q<=e&&e<=i)return{index:F,in:!0};if(l<=t&&t-U<=r||Q<=t&&t-U<=i)return{index:F,in:!0}}return{in:!1}}},{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 U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5,F=0;F<n.length;F++){var Q=n[F].start,i=n[F].end;if(!(t<Q||e>i)&&(Q-U<e&&t<i+U))return!0}return!1}},{key:"_doSyncAV",value:function(){var e=this.mediaList;if(!this.hasSync){var t=!1;if(e.video.length<1&&(t=!0),e.audio.length<1&&(t=!0),!t){var n=this.mediaList.video[this.mediaList.video.selectedIdx].mediaSegments,U=this.mediaList.audio[this.mediaList.audio.selectedIdx].mediaSegments;if(0===n.length||0===U.length)return;var F=Math.min(n.length,U.length),Q=Math.abs(n.length-U.length);if(Q>=1){var i=n.length>U.length?n:U;if(1===Q){var l=i[i.length-1],r=i[i.length-2];l&&(i.pop(),r.end=l.end,r.endRaw=l.endRaw,r.range[1]=l.range[1])}else for(var a=F;a<i.length;a++)i[a].incomplete=!0}var d=U[F-1],o=n[F-1];d&&(d.incomplete=!0),o&&(o.incomplete=!0)}this.hasSync=!0}}},{key:"syncAV",value:function(){this.hasSync=!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=[],U=0;U<t.length;U++)n.push({start:t.start(U),end:t.end(U)});return n}},{key:"_getMseBuffered",value:function(e){var t,n,U,F,Q,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===(U=n.videoRender)||void 0===U?void 0:U.buffered:null===(F=i.timeline)||void 0===F||null===(Q=F.audioRender)||void 0===Q?void 0:Q.buffered;return t}},{key:"seek",value:function(e,t,n){this._doSyncAV();return this.useSeparationMode?this._getMediaResultsSeparate(t,n,["video","audio"]):this._getMediaResults(e,t)}},{key:"_getMediaResults",value:function(e,t){var n=t>e,U={},F=this;return["video","audio"].forEach((function(Q){if(F.mediaList[Q].length<1)return!0;var i=F._getBuffered(Q),l=F.mediaList[Q][F.mediaList[Q].selectedIdx].mediaSegments;"video"===Q&&pt.log("seek",Q,"idx",F.mediaList[Q].selectedIdx),U[Q]=l.filter((function(U,r){if(U.end<e&&U.end<t)return!1;if(U.downloaded===xt){if(F._checkInBufferedOld(i,U.start,U.end,U.startRaw,U.endRaw))return!1;if(U.incomplete)return pt.log("".concat(Q," ").concat(r," start:").concat(U.start," end:").concat(U.end," segment incomplete")),!1;pt.log("".concat(Q," ").concat(r," start:").concat(U.start," end:").concat(U.end," segment downloaded set false")),U.downloaded=Dt}var a=U.start<=e&&e<=U.end;if(U.downloaded===Dt){if(a)return!0;var d=t>0&&U.startRaw<=t&&t<=U.endRaw,o=t>0&&U.start>=t&&U.end<=e,s=l[r-1],B=!(!n||!s)&&(s.startRaw<=t&&t<=s.endRaw);if(o||d||B)return!F._checkInBufferedOld(i,U.start,U.end,U.startRaw,U.endRaw)}return!1}))})),U}},{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 U,F=e[n],Q=null===(U=this.mediaList[F][this.mediaList[F].selectedIdx])||void 0===U?void 0:U.mediaSegments;if(Q){var i,l,r,a=this._loadStates[F].currentIndex;t[F]=Q[a],pt.log("getCurSegment",F,null===(i=t[F])||void 0===i?void 0:i.idx,null===(l=t[F])||void 0===l?void 0:l.start,null===(r=t[F])||void 0===r?void 0:r.end,"idx",a,"len",Q.length)}}return t}},{key:"checkRemovedSegment",value:function(e){for(var t=["video","audio"],n={},U=0;U<t.length;U++){var F=t[U],Q=e[F];if(Q){var i=this._getBuffered(F);!this.checkInBuffered(i,Q.startRaw,Q.endRaw)&&(n[F]={remove:!0,start:Q.startRaw,end:Q.endRaw})}}return n}},{key:"_setSegmentBySeek",value:function(e,t){var n=this._findSegmentIndexByTime(t,e),U=n;n=this._adjustSegIndex(n,t),pt.log("_setSegmentBySeek",t,U,"newSeg",n),this.setNextSegmentIndex(t,n),this.setLoadingState(t,!1)}},{key:"_adjustSegIndex",value:function(e,t){var n=this.mediaList[t][this.mediaList[t].selectedIdx].mediaSegments;if(n.length>0)for(var U=this._getBuffered(t),F=e;F<n.length;F++){var Q=n[F];if(this._isItemBufferRemoved(t,U,Q),0===Q.downloaded){e=F;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,U=this._adjustSegIndex(n+1,e);this._loadStates[e].currentIndex=U,n+1!==U&&pt.log("seekResult moveNextSegmentIndex mediaType",e,"segIdx",n+1,"segIdx",U)}}},{key:"_getMediaResultsSeparate",value:function(e,t,n){for(var U={},F=0;F<n.length;F++){var Q=n[F];U[Q]=[];var i=this._getCurBuffered(Q),l=this._getBuffered(Q),r=this._loadStates[Q];if(!r.isLoading&&!(e+t<(null==i?void 0:i[1]))){var a=this.mediaList[Q][this.mediaList[Q].selectedIdx].mediaSegments;if(0!==a.length&&!(r.currentIndex>=a.length)){var d=r.currentIndex,o=a[d];if(o){var s=o.end-o.start;if(0===(null==i?void 0:i[1])||(null==i?void 0:i[1])>0&&o.start-i[1]>s+1){var B=this._findSegmentIndexByTime(Q,e);if(B===d-1)pt.log("getMediaResults seq",Q,"nsegIndex",B);else{var c,R,V=B;(null==i?void 0:i[1])>0&&(V=this._adjustSegIndex(B,Q),pt.log("getMediaResults adjust1",Q,d,"new",B,"adjustIdx",V,"buf",null==i?void 0:i[1])),this.setNextSegmentIndex(Q,V),o=a[r.currentIndex],pt.log("getMediaResults",Q,d,"new",B,"adjustIdx",V,"buf",null==i?void 0:i[1],"gap",(null===(c=o)||void 0===c?void 0:c.start)-i[1],"mediaBuffers",JSON.stringify(l),"seg downloaded",null===(R=o)||void 0===R?void 0:R.downloaded)}}if(o){var u=this.checkInBuffered(l,o.startRaw,o.endRaw);if(0===(null==i?void 0:i[1])&&u&&(pt.log("_getMediaResults buffer gap fix",Q),r.currentIndex<a.length-1&&(r.currentIndex++,o=a[r.currentIndex])),(null==i?void 0:i[1])>0&&o.end<e){var h=o.end;this._setSegmentBySeek(i[1],Q),o=a[r.currentIndex],pt.log("getMediaResults low",Q,"curBuffers",i,"orgEnd",h,"newend",o.end,"currentTime",e)}o&&o.downloaded===Dt&&U[Q].push(o)}}}}}return U}},{key:"_findSegmentIndexByTime",value:function(e,t){var n=this.mediaList[e][this.mediaList[e].selectedIdx].mediaSegments;if(n&&n.length>0){for(var U=0;U<n.length;U++){var F=n[U];if(t>=F.start&&t<F.end)return U}var Q=n[n.length-1];if(Math.abs(t-(null==Q?void 0:Q.end))<.2)return n.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===xt)return!this.checkInBuffered(t,n.startRaw,n.endRaw)&&(pt.log("".concat(e," start:").concat(n.start," end:").concat(n.end," segment downloaded to set false")),n.downloaded=Dt,!0);if(n&&n.downloaded===Dt&&this.checkInBuffered(t,n.startRaw,n.endRaw))return n.downloaded=xt,pt.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)){pt.log("mpd clearBuffer ".concat(n," start:").concat(e," end:").concat(t));var U=this,F=n?[n]:["video","audio"];"vod"===U.type&&F.forEach((function(n){if(U.mediaList[n].length>0){var F=U.mediaList[n][U.mediaList[n].selectedIdx],Q=[];F.mediaSegments.forEach((function(n,U){n.end<e||n.start>t||(n.downloaded=Dt,n.extRange=void 0,Q.push(U))}));var i=Q.length>0?Q[0]:void 0,l=Q.length>1?Q[Q.length-1]:i;pt.log("".concat(n," start:").concat(e," end:").concat(t,",\n startId:").concat(i," , endId:").concat(l,", segment downloaded set false"))}}))}}},{key:"isLastSegmentAndAppend",value:function(e,t){if(!this.mediaList[e])return!0;var n=t-1,U=this.mediaList[e].selectedIdx,F=this.mediaList[e][U].mediaSegments;return!!F&&(!F[n]||this._isSegmentAppend(F[n])&&F.length-1===n)}},{key:"_isSegmentAppend",value:function(e){return e.downloaded===xt||e.incomplete}},{key:"isSegmentAppendFromIdx",value:function(e,t){if(!this.mediaList[e])return{res:!0,emptyTrack:!0};var n=0,U=this.mediaList[e].selectedIdx,F=this.mediaList[e][U].mediaSegments||[];if(0===F.length)return{res:!0,emptySegments:!0};for(var Q=0;Q<F.length;Q++)if(F[Q].start<=t&&t<=F[Q].end){n=Q;break}F&&t>=F[F.length-1].end&&(n=F.length-1);var i=!0;if(F){for(var l=n;n<F.length&&F[l];l++)if(!this._isSegmentAppend(F[l])){i=!1;break}}else i=!1;return{res:i}}}],[{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 U=performance.now();return t=t.replace(/<(\/)?(\w+:)+(\w+)/g,"<$1$3"),pt.log("MPD cost",performance.now()-U),L.parse(t)}}]),e}(),fQ=yQ,NQ=function(e){return e[e.INDEXDB=0]="INDEXDB",e[e.MEMORY=1]="MEMORY",e}(NQ||{}),bQ=function(e){return e.PRELOAD_NEXT="PRELOAD_NEXT",e.PRELOAD_START="PRELOAD_START",e.PRELOAD_CANCEL="PRELOAD_CANCEL",e}(bQ||{});var vQ=function(){try{if("undefined"!=typeof indexedDB)return indexedDB}catch(e){}}();function TQ(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function CQ(e){return"string"!=typeof e&&(console.warn("".concat(e," used as a key, but it is not a string.")),e=String(e)),e}var gQ={},DQ="readonly",XQ="readwrite";function xQ(e){var t=gQ[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 LQ(e,t){return new Promise((function(n,U){if(gQ[e.name]=gQ[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return n(e.db);xQ(e),e.db.close()}var F=[e.name];t&&F.push(e.version);var Q=null==vQ?void 0:vQ.open.apply(vQ,F);t&&(Q.onupgradeneeded=function(t){var n=Q.result;try{n.createObjectStore(e.storeName)}catch(U){if("ConstraintError"!==U.name)throw U;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.'))}}),Q.onerror=function(e){e.preventDefault(),U(Q.error)},Q.onsuccess=function(){n(Q.result),function(e){var t=gQ[e.name].deferredOperations.pop();if(t)t.resolve(),t.promise}(e)}}))}function IQ(e){return LQ(e,!1)}function GQ(e){return LQ(e,!0)}function MQ(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),U=e.version<e.db.version,F=e.version>e.db.version;if(U&&(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),F||n){if(n){var Q=e.db.version+1;Q>e.version&&(e.version=Q)}return!0}return!1}function YQ(e){xQ(e);for(var t=gQ[e.name],n=t.forages,U=0;U<n.length;U++){var F=n[U];F._dbInfo.db&&(F._dbInfo.db.close(),F._dbInfo.db=null)}return e.db=null,IQ(e).then((function(t){return e.db=t,MQ(e)?GQ(e):t})).then((function(U){e.db=t.db=U;for(var F=0;F<n.length;F++)n[F]._dbInfo.db=U})).catch((function(t){throw function(e,t){var n=gQ[e.name].deferredOperations.pop();if(n)n.reject(t),n.promise}(e,t),t}))}function wQ(e,t,n,U){void 0===U&&(U=1);try{var F=e.db.transaction(e.storeName,t);n(null,F)}catch(Q){if(U>0&&(!e.db||"InvalidStateError"===Q.name||"NotFoundError"===Q.name))return Promise.resolve().then((function(){if(!e.db||"NotFoundError"===Q.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),GQ(e)})).then((function(){return YQ(e).then((function(){wQ(e,t,n,U-1)}))})).catch(n);n(Q)}}var KQ=function(){function e(){R(this,e)}return u(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 U in e)n[U]=e[U];var F=gQ[n.name];F||(F={forages:[],db:null,dbReady:null,deferredOperations:[]},gQ[n.name]=F),F.forages.push(t),t._initReady||(t._initReady=t.ready,t._ready=t._fullyReady);var Q=[];function i(){return Promise.resolve()}for(var l=0;l<F.forages.length;l++){var r=F.forages[l];r!==t&&Q.push(r._initReady().catch(i))}var a=F.forages.slice(0);return t._ready=Promise.all(Q).then((function(){return n.db=F.db,IQ(n)})).then((function(e){return n.db=e,MQ(n,t._defaultConfig.version)?GQ(n):e})).then((function(e){n.db=F.db=e,t._dbInfo=n;for(var U=0;U<a.length;U++){var Q=a[U];Q!==t&&(Q._dbInfo.db=n.db,Q._dbInfo.version=n.version)}})),t._ready}},{key:"probeSupport",get:function(){return function(){try{if(null==vQ||!vQ.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(n){return!1}}()}},{key:"getItem",value:function(e,t){var n=this;e=CQ(e);var U=new Promise((function(t,U){n.ready().then((function(){wQ(n._dbInfo,DQ,(function(F,Q){if(F)return U(F);try{var i=Q.objectStore(n._dbInfo.storeName).get(e);i.onsuccess=function(){var e=i.result;void 0===e&&(e=null),t(e)},i.onerror=function(){U(i.error)}}catch(l){U(l)}}))})).catch(U)}));return TQ(U,t),U}},{key:"setItem",value:function(e,t,n){var U=this;e=CQ(e);var F=new Promise((function(n,F){U.ready().then((function(){return U._dbInfo,t})).then((function(t){wQ(U._dbInfo,XQ,(function(Q,i){if(Q)return F(Q);try{var l=i.objectStore(U._dbInfo.storeName);null===t&&(t=void 0);var r=l.put(t,e);i.oncomplete=function(){void 0===t&&(t=null),n(t)},i.onabort=i.onerror=function(){var e=r.error?r.error:r.transaction.error;F(e)}}catch(a){F(a)}}))})).catch(F)}));return TQ(F,n),F}},{key:"removeItem",value:function(e,t){var n=this;e=CQ(e);var U=new Promise((function(t,U){n.ready().then((function(){wQ(n._dbInfo,XQ,(function(F,Q){if(F)return U(F);try{var i=Q.objectStore(n._dbInfo.storeName).delete(e);Q.oncomplete=function(){t()},Q.onerror=function(){U(i.error)},Q.onabort=function(){var e=i.error?i.error:i.transaction.error;U(e)}}catch(l){U(l)}}))})).catch(U)}));return TQ(U,t),U}},{key:"clear",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){wQ(t._dbInfo,XQ,(function(U,F){if(U)return n(U);try{var Q=F.objectStore(t._dbInfo.storeName).clear();F.oncomplete=function(){e()},F.onabort=F.onerror=function(){var e=Q.error?Q.error:Q.transaction.error;n(e)}}catch(i){n(i)}}))})).catch(n)}));return TQ(n,e),n}},{key:"length",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){wQ(t._dbInfo,DQ,(function(U,F){if(U)return n(U);try{var Q=F.objectStore(t._dbInfo.storeName).count();Q.onsuccess=function(){e(Q.result)},Q.onerror=function(){n(Q.error)}}catch(i){n(i)}}))})).catch(n)}));return TQ(n,e),n}},{key:"all",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){wQ(t._dbInfo,DQ,(function(U,F){if(U)return n(U);try{var Q=F.objectStore(t._dbInfo.storeName).openCursor(),i=[];Q.onsuccess=function(){var t=Q.result;t?(i.push({key:t.key,value:t.value}),t.continue()):e(i)},Q.onerror=function(){n(Q.error)}}catch(l){n(l)}}))})).catch(n)}));return TQ(n,e),n}},{key:"_fullyReady",value:function(e){var t=this,n=t._initReady().then((function(){var e=gQ[t._dbInfo.name];if(null!=e&&e.dbReady)return e.dbReady}));return function(e,t,n){"function"==typeof t&&e.then(t),"function"==typeof n&&e.catch(n)}(n,e,e),n}},{key:"getItemSync",value:function(){throw new Error("NotSupported")}}]),e}(),_Q=function(){function e(){R(this,e)}return u(e,[{key:"_initStorage",value:function(e){var t=e.name,n=e.storeName,U="".concat(t,"_").concat(n);return this.key=U,window[U]&&"object"===s(window[U])||(window[U]={}),this.store=window[U],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 TQ(n,e),n}},{key:"all",value:function(e){for(var t=[],n=Object.keys(this.store),U=0;U<n.length;U++){var F=n[U];t.push({key:F,value:this.store[F]})}return this._internalPromise(e,t)}},{key:"probeSupport",value:function(){return!0}}]),e}(),jQ={description:"",name:"__PRE_CACHE__",storeName:"keyvaluepairs",version:1},HQ="__PRE_CACHE__KEYS",PQ=function(){function e(t,n){R(this,e),this._allCachedKeyMap={},this._memory=0,this._cnt=0;var U=n===NQ.MEMORY?_Q:KQ;this._cacheType=n,this._driver=new U,this._driver._initStorage(jQ).catch((function(){})),this._hasIdbForbidden=!1,this._maxCache=!t||t<=0?200:t,this.setMaxCache(this._maxCache),this._allCachedKeys={},this._allCachedTimeKeys={},this.getCachedKeysFromLocal(),this._readyPromise=new x,this.init()}var t;return u(e,[{key:"supportSync",value:function(){return this._cacheType===NQ.MEMORY}},{key:"getCachedKeysFromLocal",value:function(){var e=X.getItem(HQ);if(e)for(var t=e.split("|"),n=0;n<t.length;n++){var U=t[n],F=this._getCacheKeyInfos(U),Q=F.time,i=F.cachedKey;this._allCachedKeys[i]=1,this._allCachedTimeKeys[i]=Q}}},{key:"_getCacheKeyInfos",value:function(e){var t,n=e.split("$");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 U=e[n].key,F=this._getCacheKeyInfos(U),Q=F.time,i=F.cachedKey;this._allCachedKeys[i]=1,this._allCachedTimeKeys[i]=Q,t.push(U)}var l=t.join("|");X.setItem(HQ,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 _Q,e._driver._initStorage(jQ)),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,U=t;if(n>0){var F=t.slice(0,n);U=t.slice(n);for(var Q=0;Q<F.length;Q++)e.removeItem(F[Q].key).then((function(){}))}e._cnt=U.length;for(var i=0;i<U.length;i++){var l=U[i];if("object"===s(l.value)){Object.values(l.value).forEach((function(t){e._memory+=(null==t?void 0:t.memory)||0}));var r=e._getCacheKeyInfos(l.key).cachedKey;e._allCachedKeyMap[r]=Object.keys(l.value)}}e.writeCachedKeysToLocal(U)})).catch((function(){}))}},{key:"getAllCachedDataKeys",value:function(){var e=[];return Object.values(this._allCachedKeyMap).forEach((function(t){e.push.apply(e,E(t))})),e}},{key:"getItem",value:(t=c(o().mark((function e(t,n,U){var F,Q,i,l,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((F=this.hasItem(t))&&U&&(Q=this._allCachedKeyMap[t],F=(null==Q?void 0:Q.includes(U))||!1),F){e.next=4;break}return e.abrupt("return",Promise.resolve(!1));case 4:return i=this._getTimeKey(t),l=i.timeKey,e.next=7,this._driver.getItem(l,n);case 7:if(r=e.sent,!U){e.next=10;break}return e.abrupt("return",r[U]);case 10:return e.abrupt("return",r);case 11:case"end":return e.stop()}}),e,this)}))),function(e,n,U){return t.apply(this,arguments)})},{key:"getItemSync",value:function(e,t,n){var U=this.hasItem(e);if(U&&n){var F=this._allCachedKeyMap[e];U=(null==F?void 0:F.includes(n))||!1}if(!U)return!1;var Q=this._getTimeKey(e).timeKey,i=this._driver.getItemSync(Q,t);return n?i[n]:i}},{key:"setItem",value:function(e,t,n){var U=this;this._getTimeKey(e).timeKey&&this.removeItem(e);var F=(new Date).getTime();this._allCachedKeys[e]=1,this._allCachedTimeKeys[e]=F;var Q=this._genTimeKey(e,F);return n=n?function(){U._getAll(),n()}:function(){U._getAll()},this._driver.setItem(Q,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("$").concat(e)}},{key:"removeItem",value:function(e,t){var n=this._getTimeKey(e).timeKey,U=this._driver.removeItem(n,t);return delete this._allCachedKeys[e],delete this._allCachedTimeKeys[e],delete this._allCachedKeyMap[e],U}},{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}(),zQ=PQ,OQ=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],AQ=0,qQ=function(){function e(t){var n=this;R(this,e),this._preload_bandwith_map=new Map,this._usepreload_info=new Map,this._pcdn_info_map=new Map,this._updateRealTimeSpeed=function(e){AQ=e.speed,n.emit(Bn,e)},this._manager=t}return u(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 U=this._pcdn_info_map.get(e);!U&&(U={}),U[t]||(U[t]={},U[t].loadLen=0),U[t].loadLen=U[t].loadLen+n,this._pcdn_info_map.set(e,U)}},{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=N(this._preload_bandwith_map);try{for(n.s();!(e=n.n()).done;){var U=k(e.value,2),F=U[0],Q=U[1];if(this._usepreload_info.get(F))this._preload_bandwith_map.delete(F);else{var i=F.split("#"),l=i.length>0?i[0]:F;t[l]?(t[l].bw+=Q.bw||0,t[l].pbw+=Q.pbw||0):t[l]={vid:l,bw:Q.bw||0,pbw:Q.pbw||0,bitrate:Q.bitrate||0,duration:Q.duration||0}}}}catch(r){n.e(r)}finally{n.f()}return Object.values(t)}},{key:"bwEventEmit",value:function(e){var t=e.vid,n=e.loadType,U=e.size,F=e.speed,Q=e.cacheKey,i=e.vtype,l=e.duration,r=e.bitrate,a=J(e,OQ),o=this.getPreloadBandwidth(Q)||{bw:0,pbw:0,vid:t,duration:l,bitrate:r};n&&n!==cn?(o.pbw=o.pbw+U,this.emit("prf_data_size",d({vid:t,task_type:2,pcdn_size:U,pcdn_speed:F,vtype:i,bitrate:r,duration:l},a))):(o.bw=o.bw+U,this.emit("prf_data_size",d({vid:t,task_type:2,cdn_size:U,cdn_speed:F,vtype:i,duration:l,bitrate:r},a))),this.setPreloadBandwidth(Q,o),this._updateRealTimeSpeed({speed:F,type:n||cn}),this._updateLoadInfo(Q,n,U)}},{key:"setUsePreloadInfo",value:function(e,t){this._usepreload_info.set(e,t)}},{key:"realTimeSpeed",get:function(){return AQ}},{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 $Q(e,t){var n=[0,0];if(e)for(var U=0,F=e.length;U<F&&(n[0]=e.start(U),n[1]=e.end(U),!(n[0]<=t&&t<=n[1]));U++);return n[0]-t<=0&&t-n[1]<=0?n:[0,0]}function ei(e,t,n){for(var U=0;U<e.length;U++)if(n===e[U][t])return U;return-1}var ti=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],ni=!1,Ui=function(e){Z(r,e);var t,n,U,F,Q,i,l=W(r);function r(){var e;return R(this,r),(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=c(o().mark((function t(){var n,U,F,Q,i,l,r,a,d,s,B,c,R,V;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(F=m(e),Q=F._preloadDataList,i=F._config,!(!e._isOpen||e._currentPreloadInst||e._preloadDataList.length<1)){t.next=3;break}return t.abrupt("return",!1);case 3:if(l=e.findPreloadItem(Q,!1),r=null==l?void 0:l.data,l&&null!=r&&r.payload){t.next=7;break}return t.abrupt("return",!1);case 7:if(null,a=e.selectBeforeStart(r),e._filterMixPayload(r,a),e.setStartDefinition(null===(n=a)||void 0===n?void 0:n.definition),e.log("log","selectBeforeStart",null===(U=a)||void 0===U?void 0:U.vtype,a),d=e._getPreloaderKey(a||r)){t.next=17;break}return e.log("warn","need to set vtype, no preloader",r),i.autoPreload&&e.emit(bQ.PRELOAD_NEXT),t.abrupt("return",!1);case 17:if(s=e._getLoaderInst(d)){t.next=23;break}if(B=e._getLoader(d)){t.next=22;break}return t.abrupt("return",!1);case 22:s=new B(m(e),e._config);case 23:return e._currentPreloadInst=s,e._currentPreloadInst.setData(r),e._emitEvtByStart(r),t.prev=26,e.log("log","loaderInst.start",d,e.getStartDefinition(),r),t.next=30,s.start(r,e.getStartDefinition());case 30:(c=t.sent)&&c.remove&&(R=Q.indexOf(l))>-1&&Q.splice(R,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===(V=e._currentPreloadInst)||void 0===V||V.setData(null),e._currentPreloadInst=null,e._config.autoPreload&&e.emit(bQ.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 qQ(m(e)),e}return u(r,[{key:"VTYPES",get:function(){return dn}},{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,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];ni&&(t=console)[e].apply(t,["[PreloaderManager]"].concat(U))}},{key:"register",value:function(e){try{if("undefined"==typeof window)return void this.log("preloader in ssr");var t=r.getDefaultConfig();this._config=Object.assign({},t,e.config),this._options=e;var n=this._config,U=n.preloadMaxCacheCount,F=n.preloadCacheType;this._stepwise=!!this._config.stepwise,this._cacheInst=new zQ(U,F),this._selector=e.BitrateSelector,this.on(bQ.PRELOAD_NEXT,this.onPreloadNext);for(var Q=e.loaders,i=0;i<Q.length;i++)this.registerLoader(Q[i].vtype,Q[i])}catch(l){this.log("register error",l)}}},{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?function(e,t,n){if(!e)return!1;var U=$Q(e.buffered,e.currentTime),F=t.startPreloadControl,Q=t.startPreloadMinBuffer,i=t.startPreloadMinPosTime,l=t.minBufferLength;if(F){var r=Math.max(U[1]-e.currentTime,0);if(r>Q){if(e.currentTime>i||e.currentTime>e.duration/2)return null==n||n("log","[checkIfStartPreload] hit buffer",r,"startPreloadMinBuffer",Q),!0}else if(e.currentTime+Q+1>e.duration&&e.currentTime+r>e.duration-1)return null==n||n("log","[checkIfStartPreload] hit end"),!0}else{var a=e.duration>l+5?l:e.duration/2,d=Math.min(e.currentTime+l,e.duration),o=U[1]-d;if(e.currentTime>a&&o>-1)return null==n||n("log","[checkIfStartPreload] hit minPos",a,"minCacheTime",d),!0}return!1}(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,U=ei(this._playingVids,"playerId",e);U>-1?n[U].vid=t:n.push({vid:t,playerId:e})}},{key:"selectBeforeStart",value:function(e){var t=e.targetDefinition,n=e.defaultDefinition;if(t)return d({},t);var U=this.getUserSelectDefinition(),F=this.selectBitrate(null==e?void 0:e.payload,n,U),Q=(null==F?void 0:F.vtype)||e.vtype,i=d(d({},F),{},{vtype:Q});return e.targetDefinition=i,this.log("log","selectBeforeStart",null==e?void 0:e.vid,Q,null==F?void 0:F.definition,null==e?void 0:e.payload,F),i}},{key:"selectBitrate",value:function(e,t,n){if(e.length<1)return null;var U=null;if(this._selector){var F,Q,i;U=this._selector.getSuitableBitrate(e,n),this.log("log","BitRateAdapter result",null===(F=U)||void 0===F?void 0:F.vtype,null===(Q=U)||void 0===Q?void 0:Q.definition,null===(i=U)||void 0===i?void 0:i.bitrate)}else{for(var l=-1,r=-1,a=0;a<e.length;a++){var o=e[a];n&&o.definition===n?l=a:t&&o.definition===t&&(r=a)}U=e[l>=0?l:r>=0?r:0]}return d({},U)}},{key:"startCheckTask",value:function(){var e=this,t=this._preloadDataList,n=this._currentPreloadInst,U=this._config.autoCheck;(this._taskIntervalId&&(clearTimeout(this._taskIntervalId),this._taskIntervalId=0),null!=n&&n.taskInProgress&&function(e,t,n){var U=t.endPreloadControl,F=t.endPreloadMinBuffer,Q=t.startPreloadMinBuffer;if(!e)return!1;if(U){if(e.currentTime+Q>=e.duration)return!1;var i=$Q(e.buffered,e.currentTime),l=Math.max(i[1]-e.currentTime,0);if(l<=F)return null==n||n("log","[checkIfCancelPreload] hit buffer:",l,"endPreloadMinBuffer:",F,"video:","".concat(e.currentTime,"/").concat(e.duration)),!0}return!1}(this._media,this._config,this.log))?this.cancelPreloadingTask():0!==t.length&&(this._checkIfCanPreload()&&this.onPreloadNext(),this._taskIntervalId=setTimeout((function(){e.startCheckTask()}),U.interval))}},{key:"cancelPreloadingTask",value:function(){var e=this._preloadDataList,t=this._wipPreloadTask,n=this._config.endPreloadTaskStrategy;if(this.cancel(),t){var U;if(this.stepwise)"number"==typeof(null===(U=t.data)||void 0===U?void 0:U.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=[],U="",F=0;F<t.length;F++){var Q=t[F],i=r.parseKey(Q);i.vid===e&&(U=i.vtype,n.push(Q))}if(0===n.length)return null;var l=this._getLoaderInst(U);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 U=e.vtype===n;e.vtype=n,e.payload=e.payload.filter((function(e){return e.vtype===n||U}))}}},{key:"_emitEvtByStart",value:function(e){var t=this._player;if(e&&t)try{this.emit(bQ.PRELOAD_START,this._getEventPayload(e,t))}catch(n){this.log("warn","preload emit start error",null==n?void 0:n.stack)}}},{key:"_emitEvtByCancel",value:function(e){var t=this._player;if(e&&t)try{this.emit(bQ.PRELOAD_CANCEL,this._getEventPayload(e,t))}catch(n){this.log("warn","preload emit cancel error",null==n?void 0:n.stack)}}},{key:"_getEventPayload",value:function(e,t){var n=t.config.vid,U=this._config,F=U.minBufferLength,Q=U.startPreloadControl,i=U.startPreloadMinBuffer,l=U.startPreloadMinPosTime,r=U.endPreloadMinBuffer,a=U.endPreloadControl,d=$Q(t.video.buffered,t.currentTime),o=d[1]?d[1]-t.currentTime:0;return{vid:n,pid:e.vid,buffer:d,bufferHead:o,currentTime:t.currentTime,minBufferLength:F,startPreloadControl:Q,startPreloadMinBuffer:i,startPreloadMinPosTime:l,endPreloadControl:a,endPreloadMinBuffer:r}}},{key:"addPreloadList",value:(i=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._sort(t),n=N(t),e.prev=2,n.s();case 4:if((U=n.n()).done){e.next=10;break}return F=U.value,e.next=8,this._addData(F);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 i.apply(this,arguments)})},{key:"addPlayingId",value:function(e,t){for(var n=this._preloadDataList,U=-1,F=0;F<n.length;F++){if(e===n[F].data.vid){U=F;break}}if(U>-1){var Q=n.splice(U,1);this.log("log","cancelPreloadByVid remove from list",Q.length>0&&Q[0].data.vid)}var i=this._currentPreloadInst,l=i?i.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=ei(t,"playerId",e);if(n>-1){var U=t.splice(n,1);this.log("log","removePlayingId",U.length>0&&U[0].playerId)}}},{key:"addPreload",value:(Q=c(o().mark((function e(t){return o().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 Q.apply(this,arguments)})},{key:"_addData",value:(F=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a,d,s=this;return o().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,U=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(F=this._playingVids,!((Q=ei(F,"vid",t.data.vid))>=0)){e.next=14;break}return i=F[Q],this.log("log","vid:".concat(i.vid," is already instantiated and loaded, playerId is ").concat(i.playerId)),e.abrupt("return");case 14:return l=this._getUniqueKey(t),e.next=17,this.getItem(t.data,!0);case 17:if(!(r=e.sent)){e.next=22;break}if(!U.isUniqueCache(r)){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(!(a=this._currentPreloadInst.getData())){e.next=29;break}if(this._getUniqueKey({data:a,order:0})!==l){e.next=29;break}return this.log("log","currentKey repeat"),e.abrupt("return");case 29:if(d=this._preloadDataList.filter((function(e){return s._getUniqueKey(e)===l})),this.log("log","addedItems",l,d),0!==d.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 F.apply(this,arguments)})},{key:"_getUniqueKey",value:function(e){return e.data.vtype?r.generateUniqueCacheKey(e.data):e.data.vid}},{key:"_checkAutoTask",value:function(){var e=this,t=this._config,n=t.autoCheck,U=t.autoPreload;Promise.resolve().then((function(){U&&e.emit(bQ.PRELOAD_NEXT),n.enable&&!e._taskIntervalId&&e.startCheckTask()}))}},{key:"setItem",value:function(e,t,n,U){var F=r.generateUniqueCacheKey(e);if(!n){var Q=this._getLoader(e.vtype);if(!Q)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);t=h({},Q.generateUniqueKey(e),t)}return this._cacheInst.setItem(F,t,U)}},{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,U=r.generateUniqueCacheKey(e),F=this._getLoader(e.vtype);if(!F)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);var Q=t?"":F.generateUniqueKey(e);return this._cacheInst.getItem(U,n,Q)}},{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,U=r.generateUniqueCacheKey(e),F=this._getLoader(e.vtype);if(!F)return this.log("warn","no ".concat(e.vtype," preloader, register")),!1;var Q=t?"":F.generateUniqueKey(e);return this._cacheInst.getItemSync(U,n,Q)}},{key:"supportSync",value:function(){return this._cacheInst.supportSync()}},{key:"removeItem",value:function(e,t){var n=r.generateUniqueCacheKey(e);return this._cacheInst.removeItem(n,t)}},{key:"getPreLoadData",value:(U=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.vtype,!(U=this._getLoaderInst(n))){e.next=7;break}return e.next=5,U.getPreLoadData(t);case 5:return F=e.sent,e.abrupt("return",F);case 7:return e.abrupt("return",null);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return U.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=c(o().mark((function e(){var t,n,U,F;return o().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(U=t[n],!(F=this._getLoaderInst(U))){e.next=9;break}return e.next=9,F.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=c(o().mark((function e(){var t;return o().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 U=this._preloadDataList[n];if(U.data.vid===e&&U.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 U=t.generateUniqueKey(e);return n.hasItemSameVid(U)}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,U=e.size,F=e.speed,Q=e.cacheKey,i=e.vtype,l=e.duration,r=e.bitrate,a=J(e,ti);this._stats.bwEventEmit(d({vid:t,loadType:n,size:U,speed:F,cacheKey:Q,vtype:i,duration:l,bitrate:r},a))}},{key:"findPreloadItem",value:function(e){var t,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this._stepwise){var U=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})),F=e.filter((function(e){return e.data.stepIdx===U.data.stepIdx}));if(F.length>1&&this._sort(F),t=F[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 Q=e.indexOf(t);e.splice(Q,1)}t.data.stepIdx===1/0&&(t=void 0)}}else t=n?e[0]:e.shift();return t}},{key:"updateConfig",value:function(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,U=n.preProcessUrl,F=n.preProcessUrlOptions;return"function"==typeof U?U(e,Object.assign({},F,t)):{url:e}}}],[{key:"getDefaultConfig",value:function(){return{autoPreload:!1,autoCheck:{enable:!1,interval:1e3},preloadMaxCacheCount:5,preloadCacheType:NQ.MEMORY,autoCheckPreload:!0,startPreloadControl:!1,startPreloadMinBuffer:5,startPreloadMinPosTime:5,minBufferLength:5,endPreloadControl:!1,endPreloadTaskStrategy:0}}},{key:"generateUniqueCacheKey",value:function(e){var t=e.vid,n=e.codecType,U=e.vtype;return"".concat(t,"#").concat(n,"#").concat(U.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){ni=!!e}}]),r}(Qt),Fi=function(e){Z(i,e);var t,n,U,F,Q=W(i);function i(e,t){var n;return R(this,i),(n=Q.call(this))._data=null,n.preloadManager=e,n._config=t,n.promisePolyfill(),n}return u(i,[{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,U=t.reqOptions,F={};return e?F=e.reqOptions?e.reqOptions:"function"==typeof n?n(e):U||{}:F}},{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:(F=c(o().mark((function e(t,n){return o().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 F.apply(this,arguments)})},{key:"cancel",value:(U=c(o().mark((function e(){return o().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 U.apply(this,arguments)})},{key:"getPreLoadData",value:(n=c(o().mark((function e(t){return o().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=c(o().mark((function e(){return o().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 Ui.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}}]),i}(Qt),Qi="TOP",ii="FEED";function li(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],U={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,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(U):"audio"!==n.MediaType&&"audio"!==n.FileType||e.dashOpts.dynamic_video.dynamic_audio_list.push(U)}}function ri(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,U=0;U<n.length;U++){var F,Q,i,l=n[U];if(l.vtype.toUpperCase()===dn.DASH)l.main_url=null===(F=l.url[0])||void 0===F?void 0:F.src,l.backup_url_1=null===(Q=l.url[1])||void 0===Q?void 0:Q.src,l.fallback_url=null===(i=l.url[2])||void 0===i?void 0:i.src,l.codec_type="bytevc1"===l.codecType?"h265":l.codecType,"video"===l.mediaType&&t.dynamic_video_list.push(l),"audio"===l.mediaType&&t.dynamic_audio_list.push(l)}}function ai(e,t){var n;t.selectedIdx=0;var U=null===(n=e[e.selectedIdx])||void 0===n?void 0:n.audioFileId;if(!U)return 0;for(var F=0;F<t.length;F++)if(t[F].fileId===U)return F;return 0}var di=["app_id","trackerUrl","sid","task_type"],oi="close",si="open",Bi="forbidden",ci=1,Ri=0,Vi=1;var ui={enterMinBuffer:10,minDuration:25,openPreloadPCDN:!1,outMaxBuffer:5,openPCDN:!1,trackerUrl:"https://vc-gate.ndcpp.com/sdk/get_peer",withReferer:1},hi=function(){function e(t,n,U,F,Q,i){R(this,e),this._pcdnNodes=null,this._cachedPcdn={},this._PCDNState=oi,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._pcdnConfig=Object.assign({},ui,t),this._isOpenPCDN=n,this.updateConfig({vid:F,duration:U}),this._player=Q,this._tag=i}var t,n,U,F,Q,i;return u(e,[{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;(function(e){return/^http(s)?:\/\/.+/.test(e)})(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:(i=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a,s,B,c,R,V;return o().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(U=t.bitrate,!(F=this._cachedPcdn[U])){e.next=12;break}if(Q=F.pcdnNodeList,i=F.pcdnTraceInfo,!(Q&&Q.length>0&&i)){e.next=12;break}return this._pcdnTraceInfo=i,e.abrupt("return");case 12:return l=this._pcdnConfig,r=l.app_id,a=l.trackerUrl,s=l.sid,B=l.task_type,c=J(l,di),R=t.file_id||t.fileId,V=this._createFileInfo(t),this._bitrate2file[t.bitrate]=R,this._pcdn?(pt.log(this._tag,"resetTrackeArgs"),this._pcdn.resetTrackeArgs()):this._pcdn=new VU(d({productConfig:{app_id:r,sid:s,task_type:B||Vi},trackerUrl:a},c),this._player,V.bitrate,V.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 i.apply(this,arguments)})},{key:"setSetRetryInfo",value:function(e){var t=WU.getHostFromUrl(e);this._retryInfo[t]=!0}},{key:"_updateNodeList",value:function(e,t){var n=this;if(e&&e.nodes){var U,F={pcdnNodeList:e.nodes.filter((function(e){if(!Object.prototype.hasOwnProperty.call(n._retryInfo,WU.getHostFromUrl(null==e?void 0:e.url)))return e})),pcdnTraceInfo:{uri:e.vid,fid:e.fid,trace_id:e.trace_id}},Q=this._bitrate2file[t];if(null!==(U=e.fid)&&void 0!==U&&U.includes(Q))this._cachedPcdn[t]=F,this._pcdnTraceInfo=F.pcdnTraceInfo,pt.log(this._tag,"_updateNodeList",JSON.stringify(this._cachedPcdn));else{var i=8*function(e){return Math.floor(e/8)}(t);i===e.bitrate&&(this._cachedPcdn[t]=F,pt.log(this._tag,"_updateNodeList not file not match cachedFileid",Q,"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!==Bi&&!e){var U;if(this.isUsePCDN(t)){this._isUseCDN=!1;var F=this._getNodeListByBitrate(t);F&&(U=F[0].url,this._lastPCDNUrl!==U&&(this._lastPCDNUrl=U,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(Bi,(function(){}))),this._isUseCDN=!0;return U}this._isUseCDN=!0}}},{key:"isUsePCDN",value:function(e){var t=this._getNodeListByBitrate(e);return this._PCDNState===si&&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,U=null===(e=this._pcdnConfig)||void 0===e?void 0:e.openPCDN,F=this._pcdnConfig,Q=null===(t=this._pcdn)||void 0===t?void 0:t.getPCDNInBuffer(),i=null===(n=this._pcdn)||void 0===n?void 0:n.getPCDNOutBuffer(),l=Q||(null==F?void 0:F.enterMinBuffer)||(null==F?void 0:F.minBuffer)||-1,r=i||(null==F?void 0:F.outMaxBuffer)||-1;return{PCDNInBuffer:U?l:-1,PCDNOutBuffer:U?r:-1}}},{key:"isOpenPCDN",value:function(e,t,n,U){var F;if(null===(F=this._pcdnConfig)||void 0===F?void 0:F.openPCDN){var Q=this.getPCDNInOUtBuffer(),i=Q.PCDNInBuffer,l=Q.PCDNOutBuffer;e>=i?this._doOpenPCDN(t,U):e<l&&this.updatePCDNState(oi,n)}}},{key:"_emptyCancel",value:function(){}},{key:"_doOpenPCDN",value:(Q=c(o().mark((function e(t,n){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.updatePCDNState(si,this._emptyCancel),null===(U=this._pcdn)||void 0===U||U.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 Q.apply(this,arguments)})},{key:"openPCDNForce",value:(F=c(o().mark((function e(t,n){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===(U=this._pcdnConfig)||void 0===U?void 0:U.openPCDN){e.next=3;break}return e.abrupt("return");case 3:return this._PCDNState=si,e.next=6,this.checkPCDN(n);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return F.apply(this,arguments)})},{key:"updatePCDNState",value:(U=c(o().mark((function e(t,n){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t!==Bi){e.next=5;break}this._PCDNState=t,pt.log(this._tag,"updatePCDNState",Bi),e.next=16;break;case 5:if(this._PCDNState===Bi||this._PCDNState===t){e.next=16;break}if(this._isUseCDN||t!==oi||this._PCDNState===oi){e.next=14;break}return this._PCDNState=t,pt.log(this._tag,"updatePCDNState",oi),e.next=11,n();case 11:this._pcdnVVStat.pSCCancelCnt++,e.next=16;break;case 14:this._PCDNState=t,pt.log(this._tag,"updatePCDNState",t);case 16:case"end":return e.stop()}}),e,this)}))),function(e,t){return U.apply(this,arguments)})},{key:"getPCDNNode",value:(n=c(o().mark((function e(t,n){var U,F,Q,i,l,r,a,d;return o().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,F=n.mediaType,Q=this._lastfetchNodeTime[F]||0,!((i=Date.now())-Q<this._pcdn.options.NULLNodeTimeStep)){e.next=8;break}return e.abrupt("return");case 8:return this._lastfetchNodeTime[F]=i,l=this._getPCDNReqIdBitrate(this._vid,t),r=this._createFileInfo(n),e.next=13,this._pcdn.fetchPCDNNode(null,r,l);case 13:if(a=e.sent,d=this._getPCDNReqIdBitrate(this._vid,t),null==a||!a.req_id||d===a.req_id){e.next=18;break}return pt.log("getPCDNNode is not match curDefinition reqId",l,", pcdnRet.req_id",a.req_id),e.abrupt("return");case 18:a&&this._updateNodeList(a,t),this._pcdnVVStat.try_req_node+=1,this._pcdnVVStat.req_node_succ+=1,this._pcdnVVStat.has_ret_node+=(null==a||null===(U=a.nodes)||void 0===U?void 0:U.length)>0?1:0,e.next=28;break;case 24:e.prev=24,e.t0=e.catch(2),this._pcdnVVStat.try_req_node+=1,console.log("err",e.t0);case 28:case"end":return e.stop()}}),e,this,[[2,24]])}))),function(e,t){return n.apply(this,arguments)})},{key:"removePCDNNode",value:(t=c(o().mark((function e(t,n){return o().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 pt.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(e,n){return t.apply(this,arguments)})},{key:"pcdnReqCnt",get:function(){var e=VU.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}}}]),e}();var Zi=function(){function e(t,n){R(this,e),this._mediaTypeToServiceType={audio:null,video:null},this._useSeparationMode=!1;var U=t.config,F=t.isOpenPCDN,Q=t.videoDuration,i=t.uri,l=U.pcdnConfig,r=U.useSeparationMode;this._useSeparationMode=r,r?(this._mediaTypeToServiceType.video=this._createPCDNService(l,F,Q,i,n,"video_PCDN"),this._mediaTypeToServiceType.audio=this._createPCDNService(l,F,Q,i,n,"audio_PCDN")):this._pcdn=this._createPCDNService(l,F,Q,i,n,"all_PCDN")}var t,n;return u(e,[{key:"openPCDNForce",value:(n=c(o().mark((function e(t,n){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=this._getPCDNService(n.mediaType),e.next=3,U.openPCDNForce(t,n);case 3:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.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,U,F,Q){return new hi(e,t,n,U,F,Q)}},{key:"selectedPCDN",value:function(e,t,n){var U=this._getPCDNService(e);return null==U?void 0:U.selectedPCDN(t,n)}},{key:"isOpenPCDN",value:function(e,t,n,U,F){var Q=this._getPCDNService(e);null==Q||Q.isOpenPCDN(t,n,U,F)}},{key:"setSetRetryInfo",value:function(e,t){var n=this._getPCDNService(e);null==n||n.setSetRetryInfo(t)}},{key:"removePCDNNode",value:(t=c(o().mark((function e(t,n,U){var F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return F=this._getPCDNService(t),e.next=3,null==F?void 0:F.removePCDNNode(n,U);case 3:case"end":return e.stop()}}),e,this)}))),function(e,n,U){return t.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,U={};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 F=this._mediaTypeToServiceType.video.pcdnReqCnt,Q=this._mediaTypeToServiceType.audio.pcdnReqCnt;return Object.keys(F).forEach((function(t){U[t]=e._getValue(t,F)+e._getValue(t,Q)})),U}},{key:"pcdnReqCnt",get:function(){var e,t,n,U,F=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===(U=this._mediaTypeToServiceType.audio)||void 0===U?void 0:U.pcdnVVStat)||{};var Q={},i=["is_try_open","trace_id"],l=null===(e=this._mediaTypeToServiceType.video)||void 0===e?void 0:e.pcdnVVStat,r=null===(t=this._mediaTypeToServiceType.audio)||void 0===t?void 0:t.pcdnVVStat;return Object.keys(l).forEach((function(e){i.includes(e)?Q[e]=l[e]||r[e]:Q[e]=F._getValue(e,l)+F._getValue(e,r)})),Q}},{key:"_getValue",value:function(e,t){return t[e]||0}},{key:"updateConfig",value:function(e,t){this._getPCDNService(e).updateConfig(t)}}]),e}(),Si=function(e){Z(a,e);var t,n,U,F,Q,i,l,r=W(a);function a(e,t){var n;return R(this,a),(n=r.call(this,e,t))._loader=new ki({loaderCount:1,loaderType:Ye},e,"preloader"),n._loader.on(Bn,(function(t){if((null==t?void 0:t.len)>0){var U,F,Q=(null==t||null===(U=t.priOptions)||void 0===U?void 0:U.type)||cn,i=Math.round(8*t.len*1e3/t.time/1024),l=null==t?void 0:t.priOptions.extData,r=l.cacheKey,a=null===(F=n._pendingItem)||void 0===F?void 0:F.duration,d={vid:l.vid,loadType:Q,size:t.len,speed:i,cacheKey:r,vtype:dn.DASH,duration:a,bitrate:l.bitrate,range:t.range,mediaType:l.mediaType,format:dn.DASH,segmentDuration:null==l?void 0:l.segmentDuration};e.bwEventEmit(d)}})),n.options=t,n._pendingTask=null,n}return u(a,[{key:"_setItem",value:(l=c(o().mark((function e(t,n){var U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.vtype=dn.DASH,e.next=3,this.preloadManager.getItem(t,!0);case 3:(U=e.sent)?(F=Object.assign({},U,n),this.preloadManager.setItem(t,F,!0)):this.preloadManager.setItem(t,n,!0);case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return l.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 U={dashOpts:e.payload};li(U),n=U.dashOpts.dynamic_video}if(Array.isArray(n)){var F={dashOpts:{Data:e,dynamic_video:e}};ri(F),n=F.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:(i=c(o().mark((function e(t,n,U,F){var Q,i,l,r,a,d,s;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Q=t.mediaList.video||[],i=t.mediaList.audio||[],l=[],i&&i.length>0&&(r=this.makeInitBaseSegemntRequest(t,n.duration,"audio",i.selectedIdx,void 0,n.vid),l.push(r)),Q&&Q.length>0&&(a=this._calVideoItemIdx(Q,F.bandwidth)||0,d=Q[a].definition,s=this.makeInitBaseSegemntRequest(t,n.duration,"video",a,d,n.vid),l.push(s)),e.next=7,Promise.all(l);case 7:e.sent.forEach((function(e){"video"===e.data.mediaType&&(e.data.orgDefinition=F.orgDefinition),U[e.key]=e.data}));case 9:case"end":return e.stop()}}),e,this)}))),function(e,t,n,U){return i.apply(this,arguments)})},{key:"start",value:(Q=c(o().mark((function e(t,n){var U,F,Q,i,l,r,a,s,B,c,R,V,u,h,Z,S,p,J,m,W,k,E,y,f,b,v,T,C,g,D,X,L,I,G,M,Y,w,K,_,j=this;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l=Promise.withResolvers(),r=l.resolve,a=l.promise,s={},this._pendingTask={resolve:r,data:t,map:s},B=new x,c=this._getDashContext(t),R=new fQ("anytext",c,this),V=this._getStartContext(),u=function(){V.mediaInfos.dynamic_video_list=R.mediaList.video||[],V.mediaInfos.dynamic_audio_list=R.mediaList.audio||[],B.resolve(V)},R.once("ready",u),R.init(),e.next=12,B;case 12:if(this._pendingTask){e.next=15;break}return r({remove:!this.stepwise}),e.abrupt("return",a);case 15:if(h=new x,Z=V.mediaInfos,S=this._getIdx(Z.dynamic_video_list,n||t.defaultDefinition),p=Z.dynamic_video_list[S]||Z.dynamic_video_list[0],Z.dynamic_video_list[S]&&R.mediaList.audio&&Z.dynamic_audio_list.length>0&&(R.mediaList.video.selectedIdx=S,J=ai(R.mediaList.video,R.mediaList.audio),pt.log("audio definition preload",J),R.mediaList.audio.selectedIdx=J),null===(U=this.options)||void 0===U||null===(F=U.pcdnConfig)||void 0===F||!F.openPreloadPCDN||null===(Q=this.options)||void 0===Q||null===(i=Q.pcdnConfig)||void 0===i||!i.openDASHPreloadPCDN||"segment_template"===R.dashType){e.next=36;break}if(m=this.options.pcdnConfig,!((W=c.dynamic_video.dynamic_video_list.filter((function(e){return e.definition===p.definition})))&&W.length>0)){e.next=36;break}if(k=W[0],E=k.duration,y=k.uri,this._pcdn?this._pcdn.updateConfig("video",{vid:y,duration:E}):(f={pcdnConfig:m},this._pcdn=new Zi({config:f,isOpenPCDN:!0,videoDuration:E,uri:y},null)),!Z.dynamic_video_list[S]){e.next=30;break}return p.bitrate||(p.bitrate=p.bandwidth),e.next=30,this._pcdn.openPCDNForce(p.bitrate||p.bandwidth,d({mediaType:"video"},p));case 30:if(!(R.mediaList.audio&&Z.dynamic_audio_list.length>0)){e.next=36;break}return b=R.mediaList.audio,(v=b[b.selectedIdx]).bitrate||(v.bitrate=v.bandwidth),e.next=36,this._pcdn.openPCDNForce(v.bitrate||v.bandwidth,d({mediaType:"audio"},v));case 36:if(this._pendingItem=p,this._pendingItem.duration||(this._pendingItem.duration=t.duration),T={bandwidth:p.bitrate||p.bandwidth,time:t.startTime||0,orgDefinition:p.orgDefinition},C=[],e.prev=40,L=void 0===t.video||0===(null===(g=t.video.segments)||void 0===g?void 0:g.length),void 0===t.stepIdx&&(t.stepIdx=0),void 0===t.steps&&(t.steps=[0]),0!==t.stepIdx&&!L){e.next=59;break}if("segment_template"!==R.dashType){e.next=50;break}this._calRequests(R,T,h,t,!0),h.resolve(),e.next=57;break;case 50:if(0!==t.stepIdx){e.next=56;break}return e.next=53,this._cacheInitSegments(R,t,s,T);case 53:this._calRequests(R,T,h,t),e.next=57;break;case 56:h.resolve([]);case 57:e.next=60;break;case 59:h.resolve([]);case 60:return e.next=62,h;case 62:if(C=e.sent,this._setItem(t,s),this._pendingTask){e.next=67;break}return r({remove:!this.stepwise}),e.abrupt("return",a);case 67:I=this.stepwise?t.stepIdx:0,G=[null===(D=t.video)||void 0===D?void 0:D.segments[I],null===(X=t.audio)||void 0===X?void 0:X.segments[I]],M=(C||[]).concat(G).filter((function(e){return Boolean(e)})),Y=[],w=N(M),e.prev=72,_=o().mark((function e(){var n,U,F,Q,i;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=K.value,U=n.url,F=n.range,Q=n.extData,i=j._getData(U,F,Q).then((function(e){if("video"===e.mediaType&&(e.orgDefinition=T.orgDefinition),!e.fromCache){var n=Q.cacheKey;s[n]=e,j._setItem(t,s)}})),Y.push(i);case 4:case"end":return e.stop()}}),e)})),w.s();case 75:if((K=w.n()).done){e.next=79;break}return e.delegateYield(_(),"t0",77);case 77:e.next=75;break;case 79:e.next=84;break;case 81:e.prev=81,e.t1=e.catch(72),w.e(e.t1);case 84:return e.prev=84,w.f(),e.finish(84);case 87:return e.next=89,Promise.all(Y);case 89:e.next=94;break;case 91:e.prev=91,e.t2=e.catch(40),console.warn&&console.warn("catch no reqeuset",e.t2);case 94:return e.prev=94,r({remove:!this.stepwise}),e.finish(94);case 97:return this._pendingTask=null,e.abrupt("return",a);case 99:case"end":return e.stop()}}),e,this,[[40,91,94,97],[72,81,84,87]])}))),function(e,t){return Q.apply(this,arguments)})},{key:"_getIdx",value:function(e,t){var n=0;return e.forEach((function(e,U){e.definition===t&&(n=U)})),n}},{key:"_calRequests",value:function(e,t,n,U){var F=arguments.length>4&&void 0!==arguments[4]&&arguments[4],Q=[],i=t.bandwidth,l=e.mediaList.video||[],r=e.mediaList.audio||[],a=U.vid,d=e.videoCodecType;if(r&&r.length>0){var o=r.selectedIdx;r[o].codec_type=d;var s=this._calUrls(r[o],"audio",a,null,F,U);Q=Q.concat(s)}if(l&&l.length>0){var B=l[this._calVideoItemIdx(l,i)||0];B.codec_type=d;var c=this._calUrls(B,"video",a,B.definition,F,U);Q=Q.concat(c)}Q.length,n.resolve(Q)}},{key:"_calUrls",value:function(e,t,n,U,F,Q){var i=[];if(e){var l=e,r=l.avg_bitrate||l.bandwidth||l.bitrate,d=a.vtype;Q[t]||(Q[t]={initSegment:null,segments:[]});var o=Q[t];if(F){var s=l.initSegmentRange||[],B={url:l.initSegment,range:s,extData:{cacheKey:WU.generateRequestUniqueKey({vid:n,mediaType:t,codecType:l.codec_type,vtype:d,bitrate:r,fileId:l.fileId,range:s}),vid:n,vtype:d,isInitSegment:!0,mediaType:t,useUrlRange:WU.validateUrlRange(this.options.config.url_range_domains,l.initSegment),codecType:l.codec_type,range:s,bitrate:r,segmentDuration:0,checkPreload:!0}};i.push(B),o.initSegment=B}var c,R=e.mediaSegments,V=N(Q.steps);try{for(V.s();!(c=V.n()).done;){var u=R[c.value],h=WU.generateRequestUniqueKey({vid:n,mediaType:t,codecType:l.codec_type,vtype:d,start:u.start,end:u.end,definition:U,bitrate:r,fileId:l.fileId,range:u.range});o.segments.push({url:u.url,range:u.range||[],extData:{cacheKey:h,vid:n,vtype:d,isInitSegment:!1,mediaType:t,useUrlRange:WU.validateUrlRange(this.options.url_range_domains,u.url),codecType:l.codec_type,range:u.range,bitrate:r,segmentDuration:u.endRaw-u.startRaw,checkPreload:!0}})}}catch(Z){V.e(Z)}finally{V.f()}}return i}},{key:"_calStartEnd",value:function(e,t){for(var n=-1,U=0;U<e.length;U++){var F=e[U],Q=t||0;if(F.start>=Q&&Q<F.end){n=U;break}}return-1===n&&(n=0),n}},{key:"_calVideoItemIdx",value:function(e,t){for(var n=0;n<e.length;n++){var U=e[n];if(U&&U.bandwidth===t)return n}return null}},{key:"_getData",value:(F=c(o().mark((function e(t,n,U){var F,Q,i,l,r,d,s,B,c,R,V,u;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,Q=t,this._pcdn&&(i=U.mediaType,l=U.bitrate,(r=this._pcdn.selectedPCDN(i,!1,l))&&(t=r,U.isPCDN=!0,pt.log("preload _pcdn",r,U.mediaType,U.bitrate))),U.reqOptions=this.getRequestOption(null===(F=this._pendingTask)||void 0===F?void 0:F.data.reqOptions),e.next=6,this._loader.load(U.mediaType,t,n,U,!0);case 6:if(d=e.sent,!U.isPCDN||"error"!==d.res){e.next=13;break}return U.isPCDN=!1,e.next=11,this._loader.load(U.mediaType,Q,n,U,!0);case 11:s=e.sent,d=s;case 13:return c=(B=d).res,R=B.headers,V=B.status,u=B.fromCache,e.abrupt("return",{res:c,headers:R,status:V,fromCache:u,memory:c.byteLength,vtype:a.vtype,mediaType:U.mediaType,duration:U.segmentDuration,orgDefinition:void 0});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 F.apply(this,arguments)})},{key:"makeInitBaseSegemntRequest",value:function(e,t,n,U,F,Q){var i=this,l=new x,r=e.mediaList[n][U],d=[r.initSegmentRange[0],r.sidxRange[1]],o=r.initSegment,s=e.videoCodecType,B=r.avg_bitrate||r.bandwidth||r.bitrate,c=a.vtype,R={checkPreload:!0,mediaType:n,vid:Q,definition:F,useUrlRange:!1,timeout:-1,isInitSegment:!0,bitrate:B,codecType:s,cacheKey:WU.generateRequestUniqueKey({vid:Q,codecType:s,mediaType:n,definition:F,vtype:c,bitrate:B,fileId:r.fileId,range:d})};return this._getData(o,d,R).then((function(F){var a=F.res;a&&"error"!==a?i.handleInitData(a,d,r.sidxRange).then((function(i){if(i.sidxSegmentRes&&e.getSidx(i.sidxSegmentRes,n,U,t),WU.validateFragment(i.initSegmentRes,d)){var r=Object.assign({},F,{vid:Q,mediaType:n,isInitSegment:!0,vtype:c});l.resolve({key:R.cacheKey,data:r})}else l.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})).catch((function(){l.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})):l.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})).catch((function(){l.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})),l}},{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,U=new x;if(e instanceof ArrayBuffer){var F=0===t.length?e:e.slice(t[0],t[1]+1),Q=null===n?null:e.slice(n[0],n[1]+1);U.resolve({initSegmentRes:F,sidxSegmentRes:Q})}else;return U}},{key:"cancel",value:(U=c(o().mark((function e(){var t,n,U;return o().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&&(this._pendingTask.resolve({remove:!this.stepwise}),t=this._pendingTask,n=t.data,U=t.map,Object.values(U).length>0&&this._setItem(n,U),this._pendingTask=null);case 4:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){var t=WU.generateRequestUniqueKey(e),n=this.preloadManager.getItemSync(e),U=this.preloadManager.getLoadInfoAndDelete(t);return d(d({cacheKey:t},n),{},{loadInfo:U})}},{key:"getPreLoadData",value:(n=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=WU.generateRequestUniqueKey(t),e.next=3,this.preloadManager.getItem(t);case 3:return U=e.sent,F=this.preloadManager.getLoadInfoAndDelete(n),e.abrupt("return",d(d({cacheKey:n},U),{},{loadInfo:F}));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"destroy",value:(t=c(o().mark((function e(){var t;return o().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 t.apply(this,arguments)})},{key:"parseKey",value:function(e){var t,n,U=N(e);try{for(U.s();!(n=U.n()).done;){var F=n.value,Q=Ui.parseKey(F);"audio"===Q.mediaType?Q.hasAudio=!0:(Q.hasVideo=!0,t=Object.assign({},t,Q))}}catch(i){U.e(i)}finally{U.f()}return t}},{key:"taskInProgress",get:function(){return!!this._pendingTask.resolve&&!!this._pendingTask.data}}],[{key:"vtype",get:function(){return dn.DASH}},{key:"isUniqueCache",value:function(e){return!!e&&4===Object.keys(e).length}},{key:"generateUniqueKey",value:function(e){return WU.generateRequestUniqueKey(e)}}]),a}(Fi);function pi(e){if(window.Headers&&e instanceof Headers){var t,n={},U=N(e);try{for(U.s();!(t=U.n()).done;){var F=t.value;n[F[0]]=F[1]}}catch(Q){U.e(Q)}finally{U.f()}return n}return e}Si.encryptUtils=rn;var Ji={loaderCount:1,loaderType:Me,onProcessMinLen:5120,enableDynamicMinLen:!0};function mi(e,t){if(e.length>0)for(var n=0,U=!0,F=0;F<e.length;F++){var Q=e[F];if(Q>t){U=!1;break}if((n+=Q)/e.length>t&&(U=!1),!U)return!1}return!0}var Wi=0,ki=function(){function e(t,n){var U=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";R(this,e),EF(this),this._config=Object.assign({},Ji,d({responseType:"arraybuffer"},t)),this._loaderCount=1,this._config.loaderCount>1&&console&&console.warn("only support loaderCount 1"),this._loaderType=this._config.loaderType||Me,this._enableDynamicMinLen=this._config.enableDynamicMinLen,this._preloadManager=n,t.openLog&&fe.enable(),this._videoLoaders=[],this._audioLoaders=[],this._videoIdx=0,this._audioIdx=0;for(var Q=0;Q<this._loaderCount;Q++){var i=new fe("".concat(F,"VideoLoader_").concat(Q),this._config.vid),l=new fe("".concat(F,"AudioLoader_").concat(Q),this._config.vid),r=new Bt(d(d({},this._config),{},{logger:i,loaderType:this._loaderType})),a=new Bt(d(d({},this._config),{},{logger:l,loaderType:this._loaderType}));this._videoLoaders.push(r),this._audioLoaders.push(a),this._videoSpeeds=[],r.on(tt,(function(e){Wi=e.speed,U._cacheSpeed(e)})),a.on(tt,(function(e){Wi=e.speed,U._cacheSpeed(e)})),this._videoReqCosts=[]}this._moofVideoLoader=new Bt(d(d({},this._config),{},{loaderType:this._loaderType})),this._moofAudioLoader=new Bt(d(d({},this._config),{},{loaderType:this._loaderType})),this._isSupportUrlRange="fetch"===this._loaderType,this._preloadCacheDatas={},this._reqCost={cdn:{count:0,avg:0},pcdn:{count:0,avg:0}}}var t,n,U,F;return u(e,[{key:"_cacheProgress",value:function(e,t){var n=t[e];if(n&&n.range&&n.done){var U=WU.generateRequestUniqueKey(d(d({},n.extData),{},{range:n.range}));if(!U)return;this._preloadCacheDatas[U]={duration:n.extData.segmentDuration,vtype:dn.DASH,res:n.data.buffer,mediaType:e,memory:n.data.byteLength},pt.log("cacheProgress",U,JSON.stringify(this._preloadCacheDatas[U]))}}},{key:"cachePreloadData",value:(F=c(o().mark((function e(t,n){var U,F,Q;return o().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=Si.vtype,U=Object.keys(this._preloadCacheDatas).length,!(this._preloadManager&&U>0)){e.next=11;break}return e.next=9,this._preloadManager.getItem(t,!0);case 9:(F=e.sent)?(Q=Object.assign({},F,this._preloadCacheDatas),this._preloadManager.setItem(t,Q,!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 F.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(!mi(this._videoReqCosts,4))return!1;var U=this._videoSpeeds.map((function(t){return 1e3*t*5/e}));if(!mi(U,4))return!1;if(!t&&0===U.length)try{try{var F=parseFloat(X.getItem(Wt))||0;if(0===F||1e3*F*5/e>4)return!1}catch(Q){}}catch(Q){}return!0}},{key:"_cacheSpeed",value:function(t){var n,U=t.speed;e.historySpeed.length>=20&&e.historySpeed.shift(),e.historySpeed.push(U),this.emit(tt,d({speed:U,type:(null==t||null===(n=t.priOptions)||void 0===n?void 0:n.type)||Kt},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:(U=c(o().mark((function e(t,n,U,F){var Q,i,l,r,a,s,B,c,R,V,u,h,Z,S,p,J,m,W,k,E,y,f,N,b,v,T,C,g=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Q=g.length>4&&void 0!==g[4]&&g[4],i=g.length>5&&void 0!==g[5]?g[5]:null,l=g.length>6&&void 0!==g[6]?g[6]:null,r=g.length>7&&void 0!==g[7]?g[7]:null,a=g.length>8&&void 0!==g[8]?g[8]:null,F.vtype=dn.DASH,F.isPreload=Q,F.range=U,s={start:F.start,end:F.end,bandwidth:F.bandwidth||F.bitrate,sequence:F.idx,fps:F.fps,mediaType:t,selectedIdx:F.selectedIdx,definition:F.definition,range:U.concat()},B=this._config.onProcessMinLen,this._enableDynamicMinLen&&s.bandwidth&&i&&(c=0===F.start?.5:1,B=Math.floor(s.bandwidth*c/8)),!this._preloadManager||!F.checkPreload){e.next=25;break}if(R=WU.nowTime(),V=null,!this._preloadManager.supportSync()){e.next=18;break}V=this._preloadManager.getPreLoadDataSync(F),e.next=21;break;case 18:return e.next=20,this._preloadManager.getPreLoadData(F);case 20:V=e.sent;case 21:if(!(V&&V.res instanceof ArrayBuffer)){e.next=25;break}return pt.log("changeState preload hit cache",V.cacheKey,"cost",WU.nowTime()-R,"ms"),i&&i(V.res,!0,{range:U,fromCache:!0},null,F),e.abrupt("return",{res:V.res,headers:V.headers,status:V.status,fromCache:!0,selectedIdx:F.selectedIdx,extData:s,orgDefinition:V.orgDefinition,cacheKey:V.cacheKey,duration:V.duration});case 25:if(u=F.isPCDN,h=!i||this._isSupportUrlRange,Z=h&&(this._config.useUrlRange||F.useUrlRange||!1)&&!u,S=n,Z&&U&&U.length>1&&(S="".concat(n+(n.split("?")[1]?"&":"?"),"range=").concat(U[0],"-").concat(U[1])),U&&0!==U.length&&!Z||(U=void 0),p=performance.now(),pt.log("load res start:",JSON.stringify(F),"startTime",p,"userUrlRange",Z,"onProgress",!!i,"onProcessMinLen",B),e.prev=33,m=this._getLoader(t,F)){e.next=37;break}return e.abrupt("return");case 37:return W=this._config.headers||{},k=F.reqOptions||{},e.next=41,m.load(S,d({range:U,onProgress:i,selectedIdx:F.selectedIdx,sequence:F.idx,initSegment:F.initSegment,onProcessMinLen:B,onCancel:l,timeout:r,onTimeout:a,headers:u?Object.assign({},W,{"X-Origin-Server-Host":F.cdnHost}):W,priOptions:{type:u?_t:Kt,extData:F}},k));case 41:if(E=e.sent){e.next=44;break}return e.abrupt("return",null);case 44:return"video"===t&&this._addCost((performance.now()-p)/1e3),y=E.data,f=E.response,N={res:y instanceof Uint8Array?y.buffer:y,headers:pi(f.headers),status:f.status,duration:F.end-F.start||0,memory:y.byteLength,vtype:Si.vtype,mediaType:t,costTime:0},b=performance.now()-p,pt.log("load res finish: ",JSON.stringify(F),"cost time",b,"ms","range",null===(J=N.headers)||void 0===J?void 0:J["content-range"]),this._calCostTime(u,b),F.checkPreload&&!y.done&&(v=WU.generateRequestUniqueKey(F),this._preloadCacheDatas[v]=N),e.abrupt("return",d(d({},N),{},{extData:s,selectedIdx:F.selectedIdx,isPCDN:u,costTime:b,url:n}));case 54:return e.prev=54,e.t0=e.catch(33),pt.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:pi(null===(C=e.t0.response)||void 0===C?void 0:C.headers),error:e.t0,isPCDN:u,url:S,bitrate:F.bandwidth||s.bandwidth,costTime:-1});case 58:case"end":return e.stop()}}),e,this,[[33,54]])}))),function(e,t,n,F){return U.apply(this,arguments)})},{key:"_getLoader",value:function(e,t){var n="video"===e;if(t.moof)return n?this._moofVideoLoader:this._moofAudioLoader;if(n){var U=this._videoLoaders[this._videoIdx];return this._videoIdx++,this._videoIdx>=this._videoLoaders.length&&(this._videoIdx=0),U}var F=this._audioLoaders[this._audioIdx];return this._audioIdx++,this._audioIdx>=this._audioLoaders.length&&(this._audioIdx=0),F}},{key:"cancel",value:(n=c(o().mark((function e(t){var n;return o().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._moofVideoLoader.cancel();case 16:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"cancelLoaders",value:(t=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=N(t),e.prev=1,n.s();case 3:if((U=n.n()).done){e.next=9;break}return F=U.value,e.next=7,F.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 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 Wi}},{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}}]),e}();ki.historySpeed=[];var Ei=function(){function e(t,n,U,F){R(this,e),this.adaptRangeRes=[],F&&(this.adaptRange=new an(t,n,U,F))}return u(e,[{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=[]}}]),e}(),yi=DF.EVENT_EME.CDM_LICENSE_ERROR,fi=DF.EVENT_EME.CDM_LICENSE_SUCCESS,Ni=function(){function e(t,n,U){var F,Q,i=this;R(this,e),EF(this),this._pluginInst=n,this.__dash__=U;var l=n.config,r=n.player,a=n._kernal;this.kernal=a,this.mse=void 0,this.config=l,this.player=r,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.segment_request={video:[],audio:[]},this._initStates={emitEncrypt:!1};var d=this.config,o=d.loader,s=d.reqOptions;this.loader=new ki(Object.assign({openLog:ct},o,s),this._pluginInst.preloadManager),this.loader.on(tt,(function(e){i.player.emit(tt,e)})),this._vTrack=null,this._aTrack=null,this._onLoadingItems=[],this._videoEncryption=!1,this._audioEncryption=!1;var B=this.config.duration||this.config.dashOpts.video_duration||this.config.dashOpts.dynamic_video.video_duration;this.config.duration=B;var c="segment_base"===(null===(F=this.config.dashOpts)||void 0===F||null===(Q=F.dynamic_video)||void 0===Q?void 0:Q.dynamic_type);this._vid=l.vid;var V=this.player.config.uri||l.vid;this._pcdnScv=new Zi({config:l,isOpenPCDN:c,videoDuration:B,uri:V},this.player),this._dynamicBufferService=new Ei(this.player,0,B,this.config.adaptRange),this._audioMetaReadyPromise=null,this._videoMetaReadyPromise=null,this._resetProgressInfos(),this._appendBufferDelta={video:this._genEmptyBufferDelta(),audio:this._genEmptyBufferDelta()},this._lastAppendBufferEnd={video:{prevRangeEnd:0,prevItem:null},audio:{prevRangeEnd:0,prevItem:null}}}var t,n,U,F,Q,i,l;return u(e,[{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(){var e,t;this._optionDataLenInfo={video:(e={},h(e,ci,{size:0}),h(e,Ri,{size:0}),e),audio:(t={},h(t,ci,{size:0}),h(t,Ri,{size:0}),t)}}},{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=c(o().mark((function e(t,n,U){var F,Q,i,l,r,a,d;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=(null===(F=this.player)||void 0===F?void 0:F.currentTime)||-1,l=n.startRaw<i&&i<n.endRaw||n.startRaw>i,e.next=4,null===(Q=this.loader)||void 0===Q?void 0:Q.cancel(t);case 4:l?this._appendBufferDelta&&((d=this._appendBufferDelta[t]).range&&n.range&&n.range[0]<d.range[1]&&d.range[1]<n.range[1]&&(n.extRange=[d.range[1],n.range[1]]),pt.log("_abortAndRemove",t,"start",n.startRaw,"end",n.endRaw,"extRange",JSON.stringify(n.extRange),"range",JSON.stringify(n.range),U),this._appendBufferDelta[t]=this._genEmptyBufferDelta()):(null===(r=this.__dash__)||void 0===r||r.abort(t),null===(a=this.__dash__)||void 0===a||a.clearBufferDirect(t,n.start,n.end),this.updateItemState(n),pt.log("_abortAndRemove",t,"start",n.startRaw,"end",n.endRaw,"from",U));case 5: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;if(t)for(var U=Object.keys(this._appendBufferDelta),F=WU.nowTime(),Q=0;Q<U.length;Q++){var i=U[Q],l=this._appendBufferDelta[i],r=l.delta,a=l.requestDelta,d=l.item;if(l.isPCDN&&d){var o=this.player.playbackRate,s=r>0&&F-r>n,B=a>0&&F-a>1e3*(d.end-d.start)/o;(s||B)&&(pt.log("_abortAndRemove PCDN request cancel, progressiveTimeout",s,"requestTimeout",B,"segDuration",d.end-d.start,"s"),this.player&&this.player.emit("log",{type:"oneevent",end_type:s?"progressive_timeout":"pcdn_request_timeout"}),this._abortAndRemove(i,d,"pcdn onTimeUpdate"))}}}}},{key:"getData",value:(i=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a,d,s,B,c,R,V,u,h,Z,S,p,J,m,W=this,k=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=k.length>1&&void 0!==k[1]?k[1]:[],U=k.length>2?k[2]:void 0,Q=k.length>4&&void 0!==k[4]&&k[4],i=k.length>5&&void 0!==k[5]?k[5]:null,l=k.length>6&&void 0!==k[6]?k[6]:null,r=k.length>7&&void 0!==k[7]?k[7]:null,a=k.length>8&&void 0!==k[8]?k[8]:null,d=(F=k.length>3&&void 0!==k[3]?k[3]:{}).isPCDN,s=d?ci:Ri,F.url=t,e.next=13,this.loader.load(U,t,n,F,Q,i?function(e,t,Q,l){var r=s;if(W._optionDataLenInfo){var a=W._optionDataLenInfo[U][r];if(e&&e.byteLength&&(a.size+=e.byteLength,a.range=n,a.extData=F),t&&!Q.fromCache){var d=n[1]-n[0]+1,o=Date.now()-Q.st;W._emitPrfDataSizeEvent(s,d,U,n,F,0,o),a.size=0,a.range=null,a.extData=null}if(F.checkPreload&&!Q.fromCache){var B=W._progressInfos[U];B.data=ot(B.data,e),B.extData=F,null===B.range?B.range=Q.range:B.range[1]=Math.min((null==n?void 0:n[1])||1/0,Q.range[1]),B.done=t,t&&W.cachePreloadData()}i(e,t,Q,l,F)}}:null,l,r,a);case 13:if(!((B=e.sent)&&B.res instanceof ArrayBuffer)){e.next=20;break}return c=B.res,R=B.headers,V=B.status,u=B.fromCache,h=B.cacheKey,Z=B.orgDefinition,S=B.duration,u?this.emitPreloadHit(h):this._emitPrfDataSizeEvent(s,B.res.byteLength,U,n,F,0,B.costTime),e.abrupt("return",{res:c,headers:R,status:V,fromCache:u,orgDefinition:Z,duration:S});case 20:B&&"error"===B.res&&!this._isAbort(null==B?void 0:B.error)&&this.player&&this.player.emit("source_error",{host:WU.getHostFromUrl(null==B?void 0:B.url),src:null==B?void 0:B.url,errorCode:(null==B?void 0:B.status)||"networkError",message:null==B||null===(p=B.error)||void 0===p?void 0:p.message,range:n,headers:null==B?void 0:B.header,error:{msg:null==B||null===(J=B.error)||void 0===J?void 0:J.message,stack:null==B||null===(m=B.error)||void 0===m?void 0:m.stack}});case 21:return e.abrupt("return",B);case 22:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"_emitPrfDataSizeEvent",value:function(e,t,n,U,F){var Q,i,l,r,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:-1,s=ki.currentSpeed,B=F.fileId,c=F.definition,R=F.adaptItemParam,V=F.bitrate,u=F.first_gop,h=F.segmentDuration,Z=F.start,S=F.end,p=F.url,J=(null===(Q=this.player)||void 0===Q?void 0:Q.config.uri)||(null===(i=this.config)||void 0===i?void 0:i.vid),m="cdn";e===Ri?null===(l=this.player)||void 0===l||l.emit("prf_data_size",d(d({vid:this._vid,task_type:1,cdn_size:t,mediaType:n,range:JSON.stringify(U),fileid:B,definition:c,cdn_speed:s},R),{},{emitType:a,bitrate:V,format:"DASH",uri:J,first_gop:u,segmentDuration:h,costTime:o,start:Z,end:S,url:p})):(m="pcdn",null===(r=this.player)||void 0===r||r.emit("prf_data_size",d(d({vid:this._vid,task_type:1,pcdn_size:t,mediaType:n,range:JSON.stringify(U),fileid:B,definition:c,pcdn_speed:s},R),{},{emitType:a,bitrate:V,format:"DASH",uri:J,first_gop:u,segmentDuration:h,costTime:o,start:Z,end:S,url:p})));this._updateLoadInfo(m,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 U=0;U<this.dynamic_video.dynamic_audio_list.length;U++)if(this.dynamic_video.dynamic_audio_list[U].kid){e=this.dynamic_video.dynamic_audio_list[U].kid,t=this.dynamic_video.dynamic_audio_list[U].spade_a,this._audioEncryption=!0;break}return{keyId:e,spade_a:t}}},{key:"init",value:(Q=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a;return o().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(),U=n.keyId,F=n.spade_a,(Q=this).config.usePlaySpade&&(Q.config.secretKey=F),i=Q.config,l=i.secretKey,r=i.drmKeyToken,a=i.playDomain,!(U||l||r&&a)){e.next=18;break}return e.prev=10,e.next=13,this._initSecret(U);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",Q.initDash(t));case 19:case"end":return e.stop()}}),e,this,[[10,15]])}))),function(e){return Q.apply(this,arguments)})},{key:"_handleIncompleSegment",value:function(e,t){var n=this;e.incomplete=!0,n.__dash__&&(n.__dash__._minDuration=Math.min(t,n.__dash__._minDuration))}},{key:"_initSecret",value:function(e){var t,n,U,F=this,Q=new x,i=this.config,l=i.secretKey,r=i.drmKeyToken,a=i.playDomain,d=i.useUnionInfoDRM,o=i.keyTokenExpiredDuration,s=i.sessionId,B=this.player.config.drm;if(((null==B||null===(t=B.widevine)||void 0===t?void 0:t.serverProcessSPCPath)||(null==B||null===(n=B.fairplay)||void 0===n?void 0:n.serverProcessSPCPath)||(null==B||null===(U=B.playready)||void 0===U?void 0:U.serverProcessSPCPath))&&this.player.plugins.drm)return Q.resolve(),Q;var c=new DF.XGSecretKey({kid:e,getLicenseUrl:this.getLicenseUrl,secretKey:l,vid:this.config.vid||"",useUnionInfoDRM:d,drmKeyToken:r||this.config.keyToken,keyTokenExpiredDuration:o,playDomain:a,sessionId:s,useEME:this.useEME,intertrustServerURL:this.config.intertrustServerURL});return this._secret=c,c.getLicenseSecret().then((function(e){if(!F._pluginInst)return pt.log("getLicense callback destroy"),void Q.reject("getLicense callback destroy");F.config.dashOpts&&F.useEME?(F._initEME(),null==c||c.setOptions(),null==c||c.setupEME(F.player.video)):(F.__dash__.crypto&&F.__dash__.crypto.updateValue(e),F.keyValue=!0),pt.encrypt("getLicense resolve"),Q.resolve()})).catch((function(e){pt.log("DRM_ERROR",e),Q.reject("catch error"),void 0!==e.status&&F.emit("error",new LF(Se,me.CUSTOM_LICENSE,{url:F.getLicenseUrl,httpCode:e.status,message:"CUSTOM_LICENSE_ERROR"}))})),Q}},{key:"_initEME",value:function(){var e=this;if(!DF.checkEMEValid())return this.player.errorHandler(new LF(Ze,me.EME_HIJACK,{message:"EME API被劫持"})),void this.__dash__.destroy();this._secret.on(yi,(function(t){e.player&&e.player.emit("log",d({type:"oneevent",end_type:yi,ua:navigator.userAgent},t)),pt.log("EME CDM_LICENSE_ERROR"),e.player.errorHandler(new LF(Se,me.LICENSE,{message:"DRM接口失败".concat(t.data)}))})),this._secret.on(fi,(function(t){e.player&&e.player.emit("log",d({type:"oneevent",end_type:fi,ua:navigator.userAgent},t)),pt.log("EME CDM_LICENSE_SUCCESS")}))}},{key:"_initDefaultDefinition",value:function(){var e=this,t=this,n=t.config,U=this.mpd.mediaList.video,F=n.defaultDefinition?n.defaultDefinition.toString():null,Q=this.player.preloader&&this.player.preloader.getPreloadMetaByVid(t.config.vid),i=!1;Q&&Q.definition&&(F=Q.definition,i=!0,pt.log("dashDefinition",t.config.vid,"hasPreload",F));var l=this.player.config;if(!!l.userSelectDefinition&&l.focusUserDefinition&&(F!==l.userSelectDefinition.toString()&&i&&(i=!1,pt.log("dashDefinition",t.config.vid,"hasPreload",F,"change to userSelectDefinition",l.userSelectDefinition)),F=l.userSelectDefinition.toString()),this._pluginInst.bitRateAdapter&&!i){var r=this.player?l.userSelectDefinition:null,a=WU.getBitrateItem(t.config.dashOpts.dynamic_video,this._pluginInst.bitRateAdapter,t.config.dashOpts.dynamic_video.duration,r);if(pt.log("[dashDefinition] onReady BitRateAdapter",t.config.vid,"item",a),a){F=a.definition.toString();var d=t.config.dashOpts.dynamic_video.dynamic_video_list,o=null==d?void 0:d.filter((function(e){return e.definition===a.definition}))[0];o&&(o.fromType=a.fromType,o.orgDefinition=a.orgDefinition,o.type=a.type)}}pt.log("[dashDefinition] onReady",t.config.vid,"video definition",F);var s=!1;F&&U.forEach((function(t,n){t.definition.toString()===F.toString()&&(e.config.defaultDefinition=F.toString(),U.selectedIdx=n,s=!0)})),s||(U.selectedIdx=0),this._selectAudio()}},{key:"_selectAudio",value:function(){var e=this.mpd.mediaList.video,t=this.mpd.mediaList.audio,n=ai(e,t);t.selectedIdx=n,pt.log("audio definition",t.selectedIdx)}},{key:"_initMSE",value:function(){var e=this;this.kernal.setNodeTime("initmse_sbopen");var t,n,U=Date.now(),F=this.mpd.mediaList.audio,Q=this.mpd.mediaList.video,i={};if(this._hasAudio&&(i[Ge.AUDIO]={mimeType:"audio/mp4",codec:'audio/mp4; codecs="'.concat(F[F.selectedIdx].codecs,'"')}),this._hasVideo&&(i[Ge.VIDEO]={mimeType:"video/mp4",codec:'video/mp4; codecs="'.concat(Q[Q.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&&!DF.checkMSEValid())return void this.player.errorHandler(new LF(Ze,me.MSE_HIJACK,{message:"MSE被劫持"}));(n=(t=new Ge(void 0,{openLog:ct})).bindMedia(this.player.video)).then((function(){if(e._pluginInst){e.kernal.setNodeTime("initmse_sbopendone"),e._pluginInst.info({msg:"mse init success",name:"mseInit",startMs:U,profile:!0});try{for(var n=Object.keys(i),F=0;F<n.length;F++){var Q=n[F];t.createSource(Q,i[Q].codec)}}catch(l){pt.log("MSE MSE_MEDIA_TYPES_NOT_SUPPORTED",JSON.stringify({msg:l.message})),e&&e.player&&e.player.errorHandler(new LF(Ze,me.MSE_ADD_SB,{line:329,message:"mse init fail"})),pt.log("mse init error",l,"player destroyed ? ",!(e&&e.player))}}else pt.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,U=this;if(this._hasDestroyed)pt.log("addBuffer destroy");else if(this.mpd){var F=this.mpd.mediaList[t],Q=this.mpd.mediaList[t];if(!(Q.length<1)&&Q[Q.selectedIdx]&&Q[Q.selectedIdx].mimeType){var i=e;if(!i.initSegmentRes)return pt.log("initSegment null, task request error, stop"),void U.emit("error",new LF(Je,LF.SEG_PARSE_ERROR,{message:"wrapperData.initSegmentRes is null"}));U.__dash__&&U.__dash__._appendInitSegment(t,i,Q.selectedIdx).then((function(){var e="video"===t?n._videoMetaReadyPromise:n._audioMetaReadyPromise;e&&(n.kernal.setNodeTime("initSegment ".concat(t," append")),e.resolve()),U.inited=!0;var Q,i=F.selectedIdx;(F.length>0&&(F[i].encrypted||F[i].kid)&&(n._hasEmitEncrypt||(n._hasEmitEncrypt=!0,U._secret&&U._secret.emit(DF.EVENT_EME.ENCRYPTED))),"vod"===U.type)&&(null===(Q=U.__dash__)||void 0===Q||Q.loadData(0),U.emit("start_play"))})).catch((function(e){var t;n._hasCatchAppendError||(n._hasCatchAppendError=!0,null===(t=U.player)||void 0===t||t.errorHandler(new LF(Ze,me.MSE_APPEND_BUFFER,{line:329,message:"mse append error ".concat(e.message?e.message:e)})))}))}}else pt.log("addBuffer mpd empty")}},{key:"initDash",value:(F=c(o().mark((function e(t){var n,U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pluginInst){e.next=3;break}return pt.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"),U=new fQ(t,n.config.dashOpts,n),n.mpd=U,U.init(),e.next=12,U.readyPromise;case 12:return this._onMPDReady(U),e.abrupt("return",this.mse);case 14:case"end":return e.stop()}}),e,this)}))),function(e){return F.apply(this,arguments)})},{key:"_createMoofSegment",value:function(e,t){var n=t.mediaList[e],U=n[n.selectedIdx].firstMoofMdatRange;if(U){var F=new x;e===Ge.VIDEO?this._videoMetaReadyPromise=F:this._audioMetaReadyPromise=F;var Q={codecType:this.mpd.getCodecType(),range:U,url:n[n.selectedIdx].initSegment,idx:1,start:0,moof:!0,checkProload:!0};this._makeSegmentRequestByItem(Q,e,{},!1,F)}}},{key:"_onMPDReady",value:function(e){var t=this,n=Date.now();if(this._pluginInst){pt.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 U=e.mediaList.video,F=e.mediaList.audio;this._initDefaultDefinition();var Q=!!(U.length>0&&U[U.selectedIdx])&&this.config&&!this.config.dashOpts.audioOnly,i=!!(F.length>0&&F[F.selectedIdx]);this._hasVideo=Q,this._hasAudio=i;var l=this._initMSE();if(l){var r=[],a=this.config?this.config.dashOpts.audioOnly:null;if(this.config&&!a&&U&&U.length>0&&U[U.selectedIdx]&&U[U.selectedIdx].initSegment){var d=this.__dash__._makeInitSegemntRequestWithRetry("video",U.selectedIdx,!0);d.then((function(e){t._addBufferSafe(e,Ge.VIDEO,l)})),r.push(d),this._createMoofSegment(Ge.VIDEO,e)}if(F[F.selectedIdx]&&F[F.selectedIdx].initSegment){var o=this.__dash__._makeInitSegemntRequestWithRetry("audio",F.selectedIdx,!0);o.then((function(e){t._addBufferSafe(e,Ge.AUDIO,l)})),r.push(o),this._createMoofSegment(Ge.AUDIO,e)}Promise.all(r).catch((function(e){t&&t.player&&t.player.errorHandler(e),pt.log("appendInitPromise error",e,"player destroyed ? ",!(t&&t.player))}))}}else pt.log("mpd ready destroy")}},{key:"_addBufferSafe",value:function(e,t,n){var U=this;this.mse.isOpened?this._addBuffer(e,t):n.then((function(){U._addBuffer(e,t)}))}},{key:"seek",value:function(e,t){var n,U,F,Q,i=this,l=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=this,d=this.mpd.seek(e,t,r),o=this.popDynamicBufferServiceRes(),s=null===(n=a.mpd)||void 0===n||null===(U=n.mediaList)||void 0===U?void 0:U.video,B=null===(F=a.mpd)||void 0===F||null===(Q=F.mediaList)||void 0===Q?void 0:Q.audio;if(a.mpd){var c=!!(s.length>0&&s[s.selectedIdx]),R=!!(B.length>0&&B[B.selectedIdx]);if(c&&R&&2*s[s.selectedIdx].mediaDuration<B[B.selectedIdx].mediaDuration)a.emit("error",new LF(Je,LF.DUR_PARSE_ERROR,{message:"the video.mediaDuration not match audio.mediaDuration"}));else{var V={},u=["video","audio"];u.forEach((function(e){d[e]&&d[e].length>0&&(V[e]=[],d[e].forEach((function(t){var n=t.idx,U=t.start,F=t.end,Q=t.downloaded,i=t.range;V[e].push({idx:n,start:U,end:F,downloaded:Q,range:i})})))})),pt.log("seekResult: time",e,"currentTime",t,JSON.stringify(V)),(a.config.dashOpts&&a.config.dashOpts.audioOnly?["audio"]:u).forEach((function(e){d[e]&&d[e].length>0&&d[e].every((function(t){return i._makeSegmentRequestByItem(t,e,o,l)}))}))}}else pt.log("dash seek destroy")}},{key:"_makeSegmentRequestByItem",value:function(e,t,n,U){var F=this,Q=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=this;if(e.downloaded===xt||e.downloaded===Xt)return!0;e.downloaded=Xt;var l=Object.assign({},n,{load_tar_dur:e.end-e.start,load_dur:e.end-e.start});e.adaptItemParam=l;var r=this._videoEncryption||this._audioEncryption,a=!r||r&&this.useEME,d=i.config.useProgressiveAppend&&!this._pluginInst.softVideo&&a&&this.loader.isSupportedProgress(),s=0===e.start||U;i._addToList(e);var B=i.mpd.mediaList[t],R=B[B.selectedIdx],V=s&&this.loader.checkProgressSatisfied(R.bandwidth||R.bitrate),u=i.config.useProgressiveAppendAll,h=d&&(V||u);s&&pt.log("progressDownloaded match, config p ".concat(i.config.useProgressiveAppend,", \n progressDownloaded ").concat(d,", encEnableProgress :").concat(a,",\n useProgressiveAppendAll:").concat(u)),h&&0===e.start&&("video"===t?i._pluginInst.pvStartup=!0:i._pluginInst.paStartup=!0);var Z=function(){i.updateItemState(e,!1),pt.log("onCancel",e),i._removeFromList(e),i._setLoading(t,!1),h&&(null==i||i._abortAndRemove(t,e,"oncancel"))};this._setLoading(t,!0,!1),h?(pt.log("progressDownloaded, mediaType:".concat(t,",\n start:").concat(e.start,", bitrate:").concat(R.bandwidth||R.bitrate)),i.makeSegmentRequest(t,e,function(){var n=c(o().mark((function n(U,l,r,a,d){var s,B,c;return o().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(n.prev=0,null!==(s=F._appendBufferDelta)&&void 0!==s&&s[t]&&((B=F._appendBufferDelta[t]).delta=WU.nowTime(),B.item=e,B.requestDelta||(B.requestDelta=WU.nowTime())),c=r.range||e.range,d.range=c,d.status=null==a?void 0:a.status,200!==d.status||"ftyp"!==WU.getTopBoxType(U)){n.next=10;break}return n.next=8,F.loader.cancel(t);case 8:return i._onRequestFail({message:"response 200, cancel"},e,t),n.abrupt("return");case 10:i.appendSegment(t,U,e,{},d,!1,l,Q),l&&(e.extRange=void 0,i._removeFromList(e),F._setLoading(t,!1,!0,e.idx),F._appendBufferDelta&&(F._appendBufferDelta[t]=F._genEmptyBufferDelta()),pt.log("mediaType",t,"item",e.idx,"done")),n.next=17;break;case 14:n.prev=14,n.t0=n.catch(0),F.__dash__?(F._abortAndRemove(t,e,"errorCatch"),i._onRequestFail(n.t0,e,t)):pt.log("__dash__ null, destroy");case 17:case"end":return n.stop()}}),n,null,[[0,14]])})));return function(e,t,U,F,Q){return n.apply(this,arguments)}}(),Z).catch((function(n){i._onRequestFail(n,e,t)}))):i.makeSegmentRequest(t,e,null,Z).then((function(n){var U=n.res,F=n.headers,l=n.extData;pt.log("append ".concat(t," ").concat(e.start," ").concat(e.end)),i._setLoading(t,!1,!0,e.idx),i.appendSegment(t,U,e,F||{},l,!0,!0,Q),i._removeFromList(e)})).catch((function(n){i._onRequestFail(n,e,t)})).finally((function(){i._setLoading(t,!1)}))}},{key:"_onRequestFail",value:function(e,t,n){var U,F;(this._setLoading(n,!1),this.updateItemState(t),this._removeFromList(t),e.isPCDN)&&(null===(U=this._pcdnScv)||void 0===U||U.setSetRetryInfo(n,e.url),null===(F=this._pcdnScv)||void 0===F||F.removePCDNNode(n,e.bitrate,e.url));if(this.mpd){var Q=this.mpd.mediaList;pt.log("_onRequestFail",null==e?void 0:e.message,JSON.stringify(t));var i="video"===n?Q.video:Q.audio,l=i[i.selectedIdx],r=!this._isAbort(e.error)&&!e.isPCDN;!l.hasBackup&&l.backupUrl&&r?l.hasBackup=!0:l.fallbackUrl&&r&&(l.hasFallback=!0)}else pt.log("_onRequestFail destroy")}},{key:"_setLoading",value:function(e,t){var n,U,F=arguments.length>2&&void 0!==arguments[2]&&arguments[2],Q=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;(pt.log("setLoading",e,"isLoading",t,"addNext",F,"prevIdx",Q),null===(n=this.mpd)||void 0===n||n.setLoadingState(e,t),F)&&(null===(U=this.mpd)||void 0===U||U.moveNextSegmentIndex(e,Q))}},{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:"makeSegmentRequest",value:function(e,t){var n,U=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,Q=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=this,l=new x;void 0===t.range&&(t.range=[]),"video"===e&&pt.network("http get video start: ".concat(t.start,", end: ").concat(t.end," ,range: ").concat(t.range)),i.player&&i.__dash__._checkUrlRange(t.url);var r={limitSizeM:1/0,segment_resolution:"",isVideo:"video"===e,ratio:i.config.segmentRatio||7.5,vid:i.config.vid,mediaType:e,start:t.start,end:t.end,useUrlRange:i.config.useUrlRange},a=1/0,d=i.mpd.mediaList[e],o=d[d.selectedIdx],s=t.url;o.hasFallback?s=o.fallbackUrl:o.hasBackup&&(s=o.backupUrl);var B=(null===(n=t.extRange)||void 0===n?void 0:n.length)>0,c=!1;if(this._pcdnScv){var R=this._pcdnScv.selectedPCDN(e,!1,o.bandwidth),V="audio"===e||(null==R?void 0:R.includes(o.fileId));R&&!V&&(this._pcdnScv.removePCDNNode(e,o.bandwidth),pt.log("PCDNURL remove, url,",R,"fileid",o.fileId)),V&&R&&!B&&(c=!0,(!this._cdnHost||s.indexOf(this._cdnHost)<0)&&(this._cdnHost=WU.getHostFromUrl(s)),this._cdnHost||(this._cdnHost=WU.getHostFromUrl(s)),r.cdnHost=this._cdnHost,s=R,pt.log("PCDNURL",s))}if("video"===e){try{var u=o.definition||i.__dash__.bandwidth2item[o.bandwidth].definition;u=u.toString(),a=Et[u.toLowerCase()],r.segment_resolution=u.toLowerCase(),r.definition=r.segment_resolution,t.definition=u,this.setCurrentHost(s)}catch(S){a=1/0}r.limitSizeM=a}r.bitrate=o.avg_bitrate||o.bandwidth||o.bitrate,r.bandwidth=o.bandwidth||o.bitrate,r.idx=o.idx,r.first_gop=0===t.start?1:0,r.isPCDN=c,r.fileId=o.fileId,r.codecType=this.mpd.videoCodecType,r.adaptItemParam=t.adaptItemParam,r.segmentDuration=t.end-t.start,delete t.adaptItemParam,r.moof=t.moof,r.checkPreload=t.checkPreload||r.first_gop;var h=this.config.timeout;r.first_gop&&this.kernal.setNodeTime("init".concat(e,"_segstart")),this._appendBufferDelta[e].isPCDN=c;var Z=t.range;return t.extRange&&(pt.log("_PCDN extRange",t.extRange,"medaiType",e,"isPCDNTimeout",B),t.extRange[0]<t.extRange[1]&&(Z=t.extRange)),this.getData(s,Z,e,r,!1,F,Q,h,(function(){i.updateItemState(t,!1),pt.log("onTimeout",t),i._removeFromList(t),i._onRequestFail(Object.assign({url:s,error:{message:"Timeout"}},r),t,e)})).then((function(n){if(U._pluginInst)if(n){var Q=n.res,a=n.fromCache,d=n.duration,s=Q instanceof ArrayBuffer;if(r.first_gop&&U.kernal.setNodeTime("init".concat(e,"_segdone"),{fromCache:a,mediaType:e,definition:r.definition,duration:d,byteLength:s?Q.byteLength:0,error:s||Q.done?null:Q}),Q instanceof ArrayBuffer)l.resolve({res:Q,headers:null,extData:{status:n.status,segment_resolution:r.segment_resolution}}),i.mseLog("task loadsucc",t,e);else if(!(206===n.status||200===n.status)){if(i.mseLog("task loaderror",t,e),F&&U._abortAndRemove(e,t,"onProgress task loaderror"),403===n.status){var B;o.fallbackUrl||null==i||i.__dash__.clearProgressTimer(),null==i||null===(B=i._pluginInst)||void 0===B||B.emitExpireEvent({url:t.url,response:n})}else{var c=U._isAbort(null==n?void 0:n.error);if(o.hasFallback&&!c){var R,V;pt.log("fallUrl fail",null==n||null===(R=n.error)||void 0===R?void 0:R.message),null==i||i.__dash__.clearProgressTimer();var u=new LF(Je,LF.BACK_URL_FAIL,{message:"fall url fail ".concat(null==n||null===(V=n.error)||void 0===V?void 0:V.message)});U.player.errorHandler(u)}}l.reject(n)}}else console.log("response err"),l.reject(new Error("request error"))})),l}},{key:"setCurrentHost",value:function(e){this._pluginInst.loadURL=e}},{key:"reportMonitorEvent",value:function(e,t,n,U,F){var Q=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=this,l=i.getReportData(n,U,F,Q),r=F.eagleid;if(r){if(!this.egleIds||this.egleIds[r])return;this.egleIds[r]=1}i.player&&i.player.emit("log",{type:"oneevent",end_type:e,cdnUrl:t,ext:l})}},{key:"getReportData",value:function(e,t,n){var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},F=WU.transformHeaders(n,kt);return Object.assign({},{start:e||-1,end:t||-1},F,U)}},{key:"reportMenuEvent",value:function(e,t,n,U){var F=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},Q=this._pluginInst.player,i=this.getReportData(t,n,U,F);i.url=e,Q.emit("menusegment",i)}},{key:"_reportInvalidEvent",value:function(e,t,n,U){var F=this,Q=0,i=e.byteLength,l=n.status,r=n.segment_resolution,a=t.realUrl||t.url;try{var d=WU.getTopBoxType(e);if("moof"!==d&&"styp"!==d&&(pt.media("segment content error",t,U),Q=1,F.reportMonitorEvent(Lt,a,t.range[0],t.range[1],U,{segment_size:e.byteLength,status:l,segment_resolution:r,box_type:d,step:Q,segment_origin_size:i})),"ftyp"===d&&200===l&&2===t.range.length){this.player&&this.player.emit("source_error",{host:WU.getHostFromUrl(a),src:a,errorCode:l,message:"boxType error",range:t.range,headers:U}),Q=2;var o=t.range[0];return e=e.subarray(o,t.range[1]+1),"moof"!==(d=WU.getTopBoxType(e))&&"styp"!==d?(F.emit("error",new LF(Je,LF.SEGMENT_CONTENT_ERROR,{message:"boxType is ".concat(d,", range:").concat(JSON.stringify(t.range),", url:").concat(a,", respHeaders:").concat(JSON.stringify(U),", isPCDN:").concat(n.isPCDN)})),F.reportMonitorEvent(Lt,a,t.range[0],t.range[1],U,{segment_size:e.byteLength,status:l,segment_resolution:r,box_type:d,step:Q,segment_origin_size:i}),null):e}}catch(s){F.reportMonitorEvent(Lt,a,t.range[0],t.range[1],U,{segment_size:e.byteLength,status:l,segment_resolution:r,step:Q,box_type:"error",segment_origin_size:i}),pt.media("segment content catch",t,s)}return null}},{key:"appendSegment",value:function(e,t,n,U,F){var Q=arguments.length>5&&void 0!==arguments[5]&&arguments[5],i=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,r=this;if(!this._hasDestroyed&&r.mpd&&t)if(WU.isArrayBuffer(t)){var a=t instanceof ArrayBuffer?t:t.buffer,d=new Uint8Array(a),o=WU.checkValidTopBox(d),s=F.status,B=F.segment_resolution,c=r.mpd.mediaList[e],R=c.selectedIdx,V=n.realUrl||n.url;if(Q&&!o){if(null===(d=r._reportInvalidEvent(d,n,F,U)))return pt.log("segment content response 200, res is null"),void r.updateItemState(n);pt.log("segment content response 200, subrange is ok, go ahead")}r.reportMenuEvent(V,n.range[0],n.range[1],U,{segment_size:d.byteLength,status:s,segment_resolution:B});var u=this._pluginInst.softVideo;if(r.keyValue||u){var h=0;(u||r.__dash__.dashVideoEncrypted||r.__dash__.dashAudioEncrypted)&&!1===r.useEME&&r.__dash__.crypto?(h=performance.now(),r.mseLog("decryptBody start",n,e),r.__dash__.crypto.decryptBody(d,"video"===e,!u).then((function(t){var U=t.data,F=t.id,Q=t.headerId;if(U.res||u){var a=U.res,d=U.videoTrack,o=U.audioTrack,s=performance.now();if(r.encryptTotalAll||(r.encryptTotalAll=0),r.encryptTotalAll+=s-h,pt.encrypt("encryptTotalAll:".concat(r.encryptTotalAll)),"video"===e&&(r.encryptTotal||(r.encryptTotal=0),r.encryptTotal+=s-h,pt.encrypt("encryptVideo:".concat(r.encryptTotal)),F<Q&&!l))return r.updateItemState(n),void console.warn("decrytbody discard, id:".concat(F,", headerId:").concat(Q,",\n index:").concat(R,", url:").concat(n.url,", start:").concat(n.start));r.doAppendSegment(e,c,a,n,R,null,i,d,o,l)}else r.updateItemState(n)}))):r.doAppendSegment(e,c,d,n,R,F.range,i,null,null,l)}else r.doAppendSegment(e,c,d,n,R,F.range,i,null,null,l)}else console.log("appendSegment return done",i)}},{key:"isAllAppend",value:function(){var e=this.mpd;if(!e)return!1;var t=this.player.currentTime,n=e.isSegmentAppendFromIdx(Ge.VIDEO,t),U=n.res,F=n.emptySegments,Q=e.isSegmentAppendFromIdx(Ge.AUDIO,t),i=Q.res,l=Q.emptySegments,r=this._hasVideo&&F,a=this._hasAudio&&l;return!r&&!a&&!(!U||!i)}},{key:"doAppendSegment",value:function(e,t,n,U,F,Q,i,l,r,a){var o=this;if(!this._hasDestroyed){var s=this,B={start:U.start,end:U.end,index:F,bandwidth:t[t.selectedIdx].bandwidth,fps:t[t.selectedIdx].fps,mediaType:e,sequence:U.idx};if(e===Ge.VIDEO&&-1!==this.__dash__.curVideoInitSegmentIdx&&F!==this.__dash__.curVideoInitSegmentIdx)return this.updateItemState(U),void pt.log("init 与 segment不匹配, curVideoInitSegmentIdx",this.__dash__.curVideoInitSegmentIdx,"selectedIdx",F);var c=function(t){var n;if(!(null!=t&&t.used||null!=t&&null!==(n=t.context)&&void 0!==n&&n.used))if(0===U.start&&o.kernal.setNodeTime("init".concat(e,"SegmentAppend"),t),t&&(t.used=!0),s.player){if(U.range[1]<=(null==Q?void 0:Q[1])||i){var F;if(s.updateItemState(U,!0),"video"===e)null===(F=s.player)||void 0===F||F.emit("addVideoBufferEnd",B);if(a){var l,r,d=null===(l=o.mpd)||void 0===l?void 0:l.mediaList[e],c=d&&(null===(r=d[d.selectedIdx])||void 0===r?void 0:r.mediaSegments);c.length>0&&s.updateItemState(c[0],!0)}}if(o.mseLog("appendBuffer success",U,e,Q),i){s.updateItemState(U,!0);var R=s.mpd._getBuffered(e);pt.log("fixbuffer: mediaType",e,"buffered",JSON.stringify(R),"item.start",U.start,"item.end",U.end);for(var V=!0,u=0;u<R.length;u++){var h=R[u].start,Z=R[u].end;U.start>=h-1&&U.end<=Z+1&&(V=!1)}if(V&&U.end>U.start){var S=s.mse.getSourceBuffer(e);pt.log("fixbuffer: buffer Miss",!!S),S&&o._abortAndRemove(e,U,"fixbuffer")}}"video"===e&&s.player.emit("addVideoBufferEnd",B);var p=s.mse,J=s.mpd;if(p&&B.start>=0&&i&&!o._pluginInst.softVideo){var m=p.buffered(e);if(0===m.length)return;var W=m.end(m.length-1),k=J.mediaList[e][B.index].mediaSegments[B.sequence-1];k.incomplete&&(s._handleIncompleSegment(k,W),pt.log("extData",B))}var E=J.isLastSegmentAndAppend(e,U.idx),y=e===Ge.AUDIO?Ge.VIDEO:Ge.AUDIO,f=J.isLastSegmentAndAppend(y,U.idx);E&&f&&(pt.log("append check endofStream"),p.endOfStream()),o.isAllAppend()&&(p.endOfStream(),pt.log("append all endofstream"));var N=s.player.buffered;if(N.length>0){var b=N.start(N.length-1),v=N.end(N.length-1);s.player.currentTime>b&&Math.abs(v-s.player.duration)<.5&&(pt.log("append buffer match endofstream"),p.endOfStream())}}else pt.log("appendBuffer destroy return")},R=d(d({range:Q},B),{},{callback:c,item:U});this.appendBuffer(e,new Uint8Array(n),R,l,r,a).then(c).catch((function(e){pt.log("append buffer catch",e);var t=e&&e.errorCode===We[Ze][me.MSE_FULL];t||s.updateItemState(U,!1),t&&s.__dash__&&s.__dash__.checkRemoveBuffer(!0),e&&e.errorCode&&s.player&&s.player.emit(new LF(Ze,e.errorCode,{line:800,message:"append buffer".concat(e.message)}))}))}}},{key:"appendBuffer",value:function(e,t,n,U,F,Q){var i=this;if(this._appendBufferDelta&&(this._appendBufferDelta[e].range=n.range),this._lastAppendBufferEnd){var l=this._lastAppendBufferEnd[e],r=l.prevRangeEnd,a=l.prevItem;if(n.range&&n.range.length>0){var d,o,s=r===(null==a?void 0:a.range[1]),B=r>0&&(r===(null==a?void 0:a.range[1])+1||s);if(r>0&&!B&&r!==n.range[0])if(n.range[1]<n.item.range[1])pt.log("appendBuffer seek remove",e,r,"now",n.range[0],"start",a.startRaw,"endRaw",a.endRaw),null===(d=this.__dash__)||void 0===d||d.abort(e),null===(o=this.__dash__)||void 0===o||o.clearBufferDirect(e,a.start,a.end),n.item.extRange=void 0;this._lastAppendBufferEnd[e]={prevRangeEnd:n.range[1],prevItem:n.item}}}var c=function(){return i._pluginInst.softVideo?(i._hasVideo&&"video"===e&&(i._vTrack=new FQ,Object.keys(U).forEach((function(e){i._vTrack[e]=U[e]}))),i._hasAudio&&"audio"===e&&(i._aTrack=new QQ,Object.keys(F).forEach((function(e){i._aTrack[e]=F[e]}))),i.mse.appendBuffer(i._vTrack,i._aTrack),Promise.resolve()):i.mse.append(e,new Uint8Array(t),n)};return Q?Q.then((function(){return c()})):c()}},{key:"changeType",value:function(e,t){var n="";n=e===Ge.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:"abortLoadingTasks",value:(U=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U=null===(n=this.player)||void 0===n?void 0:n.currentTime,F=[],Q=[],i=!!t,this._onLoadingItems)for(l=0;l<this._onLoadingItems.length;l++)(r=this._onLoadingItems[l]).start<=U&&U<=r.end?(pt.log("abortLoadingTasks currentTime seek",U,"start",r.start,"end",r.end),F.push(r)):i||r.mediaType===t?(Q.includes(r.mediaType)||Q.push(r.mediaType),this._abortAndRemove(r.mediaType,r,"abortLoadingTasks")):F.push(r);if(!(Q.length>0)){e.next=10;break}return pt.log("abortLoadingTasks cancelMediaTypes",JSON.stringify(Q)),a=2===Q.length?void 0:Q[0],e.next=10,this._doCancel(a);case 10:this._onLoadingItems=F;case 11:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"_doCancel",value:(n=c(o().mark((function e(t){return o().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 n.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(U){var F=n[U]||{},Q=F.size,i=F.range,l=F.extData;Q>0&&e._emitPrfDataSizeEvent(Number(U),Q,t,i,l,1)}))}))}catch(t){}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?xt:Dt}))}},{key:"mseLog",value:function(e,t,n,U){pt.mse("type-".concat(n,"-start-").concat(t.start,"-end-").concat(t.end,"-").concat(e,",range:").concat(JSON.stringify(U||t.range)))}},{key:"emitPreloadHit",value:function(e){pt.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(),CF(this.loader),null===(e=this._secret)||void 0===e||e.destroy(),this._hasDestroyed=!0,null===(t=this._dynamicBufferService)||void 0===t||t.destroy()}},{key:"clearFailedSegment",value:function(){this.segment_request={video:[],audio:[]},this.player&&this.player.emit(It,this.segment_request)}},{key:"checkPCDN",value:(t=c(o().mark((function e(){var t,n,U,F,Q,i;return o().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(d(d({},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,U=this.mpd.mediaList.audio,F=U[U.selectedIdx],Q=F.bandwidth,i=F.baseURL,e.next=17,this._pcdnScv.checkPCDN(d(d({},U[U.selectedIdx]),{},{bitrate:Q,main_url:i,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 t.apply(this,arguments)})},{key:"isOpenPCDN",value:function(e){var t=this;if(this._pcdnScv){var n,U,F=this._pluginInst.currentDefitionFromPlayer;if(!F)return void pt.log("isOpenCPDN curDef is null");var Q=F.item,i=Q.bitrate,l=null===(n=this.mpd)||void 0===n?void 0:n._getCurBuffered(Ge.VIDEO),r=null===(U=this.mpd)||void 0===U?void 0:U._getCurBuffered(Ge.AUDIO),a=(e=Math.max(e,null==l?void 0:l[1],null==r?void 0:r[1]))-this.player.currentTime,d=a,s=a,B=this.player.currentTime;this.config.useSeparationMode&&(s=Math.max(0,(null==r?void 0:r[1])-B),d=Math.max(0,(null==l?void 0:l[1])-B)),this._pcdnScv.isOpenPCDN("video",d,i,c(o().mark((function e(){return o().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)}))),Q);var R=this.__dash__.dash.mpd.mediaList;if(R.audio.length>0){var V=R.audio[R.audio.selectedIdx],u=this.config.dashOpts.dynamic_video.dynamic_audio_list.filter((function(e){return e.bitrate===V.bandwidth}))[0];this._pcdnScv.isOpenPCDN("audio",s,V.bandwidth,c(o().mark((function e(){return o().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)}))),u)}}}},{key:"pcdnReqCnt",value:function(){return this._pcdnScv.pcdnReqCnt||{}}},{key:"pcdnVVStat",value:function(){return this._pcdnScv.pcdnVVStat||{}}}]),e}(),bi=Ni,vi="IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBBPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sZz1mdW5jdGlvbihBKXt0cnl7cmV0dXJuISFBKCl9Y2F0Y2goZyl7cmV0dXJuITB9fSxJPXt9LnRvU3RyaW5nLEI9ZnVuY3Rpb24oQSl7cmV0dXJuIEkuY2FsbChBKS5zbGljZSg4LC0xKX0sUT1CLEM9IiIuc3BsaXQsRT1nKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihBKXtyZXR1cm4iU3RyaW5nIj09UShBKT9DLmNhbGwoQSwiIik6T2JqZWN0KEEpfTpPYmplY3QsaT1mdW5jdGlvbihBKXtpZihudWxsPT1BKXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIitBKTtyZXR1cm4gQX0sdD1FLGU9aSxvPWZ1bmN0aW9uKEEpe3JldHVybiB0KGUoQSkpfSxuPWZ1bmN0aW9uKEEpe3JldHVybiBBJiZBLk1hdGg9PU1hdGgmJkF9LHI9bigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxuKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxuKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fG4oIm9iamVjdCI9PXR5cGVvZiBBJiZBKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxhPXtleHBvcnRzOnt9fSxzPSFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSksYz17fSxoPWZ1bmN0aW9uKEEpe3JldHVybiJvYmplY3QiPT10eXBlb2YgQT9udWxsIT09QToiZnVuY3Rpb24iPT10eXBlb2YgQX0seT1oLEQ9ci5kb2N1bWVudCxmPXkoRCkmJnkoRC5jcmVhdGVFbGVtZW50KSx1PWZ1bmN0aW9uKEEpe3JldHVybiBmP0QuY3JlYXRlRWxlbWVudChBKTp7fX0sdz11LGQ9IXMmJiFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkodygiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpLEY9aCxsPWZ1bmN0aW9uKEEpe2lmKCFGKEEpKXRocm93IFR5cGVFcnJvcihTdHJpbmcoQSkrIiBpcyBub3QgYW4gb2JqZWN0Iik7cmV0dXJuIEF9LEc9aCxSPWZ1bmN0aW9uKEEsZyl7aWYoIUcoQSkpcmV0dXJuIEE7dmFyIEksQjtpZihnJiYiZnVuY3Rpb24iPT10eXBlb2YoST1BLnRvU3RyaW5nKSYmIUcoQj1JLmNhbGwoQSkpKXJldHVybiBCO2lmKCJmdW5jdGlvbiI9PXR5cGVvZihJPUEudmFsdWVPZikmJiFHKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjtpZighZyYmImZ1bmN0aW9uIj09dHlwZW9mKEk9QS50b1N0cmluZykmJiFHKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjt0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfSxVPXMsaz1kLFM9bCxOPVIsTT1PYmplY3QuZGVmaW5lUHJvcGVydHk7Yy5mPVU/TTpmdW5jdGlvbihBLGcsSSl7aWYoUyhBKSxnPU4oZywhMCksUyhJKSxrKXRyeXtyZXR1cm4gTShBLGcsSSl9Y2F0Y2goQil7fWlmKCJnZXQiaW4gSXx8InNldCJpbiBJKXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gSSYmKEFbZ109SS52YWx1ZSksQX07dmFyIFk9ZnVuY3Rpb24oQSxnKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmQSksY29uZmlndXJhYmxlOiEoMiZBKSx3cml0YWJsZTohKDQmQSksdmFsdWU6Z319LEg9YyxwPVksSj1zP2Z1bmN0aW9uKEEsZyxJKXtyZXR1cm4gSC5mKEEsZyxwKDEsSSkpfTpmdW5jdGlvbihBLGcsSSl7cmV0dXJuIEFbZ109SSxBfSxMPXIsdj1KLEs9ZnVuY3Rpb24oQSxnKXt0cnl7dihMLEEsZyl9Y2F0Y2goSSl7TFtBXT1nfXJldHVybiBnfSxtPUsseD0iX19jb3JlLWpzX3NoYXJlZF9fIixxPXJbeF18fG0oeCx7fSksYj1xOyhhLmV4cG9ydHM9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYltBXXx8KGJbQV09dm9pZCAwIT09Zz9nOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMTIuMSIsbW9kZToiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMjEgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSk7dmFyIFQsTyxXPWEuZXhwb3J0cyxaPWksaj1mdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0KFooQSkpfSxQPWosWD17fS5oYXNPd25Qcm9wZXJ0eSxWPWZ1bmN0aW9uKEEsZyl7cmV0dXJuIFguY2FsbChQKEEpLGcpfSx6PTAsXz1NYXRoLnJhbmRvbSgpLCQ9ZnVuY3Rpb24oQSl7cmV0dXJuIlN5bWJvbCgiK1N0cmluZyh2b2lkIDA9PT1BPyIiOkEpKyIpXyIrKCsreitfKS50b1N0cmluZygzNil9LEFBPXIsZ0E9cixJQT1mdW5jdGlvbihBKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgQT9BOnZvaWQgMH0sQkE9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP0lBKEFBW0FdKXx8SUEoZ0FbQV0pOkFBW0FdJiZBQVtBXVtnXXx8Z0FbQV0mJmdBW0FdW2ddfSxRQT1CQSgibmF2aWdhdG9yIiwidXNlckFnZW50Iil8fCIiLENBPVFBLEVBPXIucHJvY2VzcyxpQT1FQSYmRUEudmVyc2lvbnMsdEE9aUEmJmlBLnY4O3RBP089KFQ9dEEuc3BsaXQoIi4iKSlbMF08ND8xOlRbMF0rVFsxXTpDQSYmKCEoVD1DQS5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fFRbMV0+PTc0KSYmKFQ9Q0EubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihPPVRbMV0pO3ZhciBlQSxvQT1PJiYrTyxuQT1vQSxyQT1nLGFBPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIXJBKChmdW5jdGlvbigpe3JldHVybiFTdHJpbmcoU3ltYm9sKCkpfHwhU3ltYm9sLnNoYW0mJm5BJiZuQTw0MX0pKSxzQT1hQSYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcixjQT1yLGhBPVYseUE9JCxEQT1hQSxmQT1zQSx1QT1XKCJ3a3MiKSx3QT1jQS5TeW1ib2wsZEE9ZkE/d0E6d0EmJndBLndpdGhvdXRTZXR0ZXJ8fHlBLEZBPWZ1bmN0aW9uKEEpe3JldHVybiBoQSh1QSxBKSYmKERBfHwic3RyaW5nIj09dHlwZW9mIHVBW0FdKXx8KERBJiZoQSh3QSxBKT91QVtBXT13QVtBXTp1QVtBXT1kQSgiU3ltYm9sLiIrQSkpLHVBW0FdfSxsQT1NYXRoLmNlaWwsR0E9TWF0aC5mbG9vcixSQT1mdW5jdGlvbihBKXtyZXR1cm4gaXNOYU4oQT0rQSk/MDooQT4wP0dBOmxBKShBKX0sVUE9UkEsa0E9TWF0aC5taW4sU0E9ZnVuY3Rpb24oQSl7cmV0dXJuIEE+MD9rQShVQShBKSw5MDA3MTk5MjU0NzQwOTkxKTowfSxOQT1SQSxNQT1NYXRoLm1heCxZQT1NYXRoLm1pbixIQT1mdW5jdGlvbihBLGcpe3ZhciBJPU5BKEEpO3JldHVybiBJPDA/TUEoSStnLDApOllBKEksZyl9LHBBPW8sSkE9U0EsTEE9SEEsdkE9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDPXBBKGcpLEU9SkEoQy5sZW5ndGgpLGk9TEEoQixFKTtpZihBJiZJIT1JKXtmb3IoO0U+aTspaWYoKFE9Q1tpKytdKSE9USlyZXR1cm4hMH1lbHNlIGZvcig7RT5pO2krKylpZigoQXx8aSBpbiBDKSYmQ1tpXT09PUkpcmV0dXJuIEF8fGl8fDA7cmV0dXJuIUEmJi0xfX0sS0E9e2luY2x1ZGVzOnZBKCEwKSxpbmRleE9mOnZBKCExKX0sbUE9e30seEE9VixxQT1vLGJBPUtBLmluZGV4T2YsVEE9bUEsT0E9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPXFBKEEpLFE9MCxDPVtdO2ZvcihJIGluIEIpIXhBKFRBLEkpJiZ4QShCLEkpJiZDLnB1c2goSSk7Zm9yKDtnLmxlbmd0aD5ROyl4QShCLEk9Z1tRKytdKSYmKH5iQShDLEkpfHxDLnB1c2goSSkpO3JldHVybiBDfSxXQT1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLFpBPU9BLGpBPVdBLFBBPU9iamVjdC5rZXlzfHxmdW5jdGlvbihBKXtyZXR1cm4gWkEoQSxqQSl9LFhBPWMsVkE9bCx6QT1QQSxfQT1zP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKEEsZyl7VkEoQSk7Zm9yKHZhciBJLEI9ekEoZyksUT1CLmxlbmd0aCxDPTA7UT5DOylYQS5mKEEsST1CW0MrK10sZ1tJXSk7cmV0dXJuIEF9LCRBPUJBKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpLEFnPSQsZ2c9Vygia2V5cyIpLElnPWZ1bmN0aW9uKEEpe3JldHVybiBnZ1tBXXx8KGdnW0FdPUFnKEEpKX0sQmc9bCxRZz1fQSxDZz1XQSxFZz1tQSxpZz0kQSx0Zz11LGVnPSJwcm90b3R5cGUiLG9nPSJzY3JpcHQiLG5nPUlnKCJJRV9QUk9UTyIpLHJnPWZ1bmN0aW9uKCl7fSxhZz1mdW5jdGlvbihBKXtyZXR1cm4iPCIrb2crIj4iK0ErIjwvIitvZysiPiJ9LHNnPWZ1bmN0aW9uKCl7dHJ5e2VBPWRvY3VtZW50LmRvbWFpbiYmbmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2goUSl7fXZhciBBLGcsSTtzZz1lQT9mdW5jdGlvbihBKXtBLndyaXRlKGFnKCIiKSksQS5jbG9zZSgpO3ZhciBnPUEucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gQT1udWxsLGd9KGVBKTooZz10ZygiaWZyYW1lIiksST0iamF2YSIrb2crIjoiLGcuc3R5bGUuZGlzcGxheT0ibm9uZSIsaWcuYXBwZW5kQ2hpbGQoZyksZy5zcmM9U3RyaW5nKEkpLChBPWcuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLEEud3JpdGUoYWcoImRvY3VtZW50LkY9T2JqZWN0IikpLEEuY2xvc2UoKSxBLkYpO2Zvcih2YXIgQj1DZy5sZW5ndGg7Qi0tOylkZWxldGUgc2dbZWddW0NnW0JdXTtyZXR1cm4gc2coKX07RWdbbmddPSEwO3ZhciBjZz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihBLGcpe3ZhciBJO3JldHVybiBudWxsIT09QT8ocmdbZWddPUJnKEEpLEk9bmV3IHJnLHJnW2VnXT1udWxsLElbbmddPUEpOkk9c2coKSx2b2lkIDA9PT1nP0k6UWcoSSxnKX0saGc9Y2cseWc9YyxEZz1GQSgidW5zY29wYWJsZXMiKSxmZz1BcnJheS5wcm90b3R5cGU7bnVsbD09ZmdbRGddJiZ5Zy5mKGZnLERnLHtjb25maWd1cmFibGU6ITAsdmFsdWU6aGcobnVsbCl9KTt2YXIgdWc9ZnVuY3Rpb24oQSl7ZmdbRGddW0FdPSEwfSx3Zz17fSxkZz1xLEZnPUZ1bmN0aW9uLnRvU3RyaW5nOyJmdW5jdGlvbiIhPXR5cGVvZiBkZy5pbnNwZWN0U291cmNlJiYoZGcuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihBKXtyZXR1cm4gRmcuY2FsbChBKX0pO3ZhciBsZyxHZyxSZyxVZz1kZy5pbnNwZWN0U291cmNlLGtnPVVnLFNnPXIuV2Vha01hcCxOZz0iZnVuY3Rpb24iPT10eXBlb2YgU2cmJi9uYXRpdmUgY29kZS8udGVzdChrZyhTZykpLE1nPWgsWWc9SixIZz1WLHBnPXEsSmc9SWcsTGc9bUEsdmc9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixLZz1yLldlYWtNYXA7aWYoTmd8fHBnLnN0YXRlKXt2YXIgbWc9cGcuc3RhdGV8fChwZy5zdGF0ZT1uZXcgS2cpLHhnPW1nLmdldCxxZz1tZy5oYXMsYmc9bWcuc2V0O2xnPWZ1bmN0aW9uKEEsZyl7aWYocWcuY2FsbChtZyxBKSl0aHJvdyBuZXcgVHlwZUVycm9yKHZnKTtyZXR1cm4gZy5mYWNhZGU9QSxiZy5jYWxsKG1nLEEsZyksZ30sR2c9ZnVuY3Rpb24oQSl7cmV0dXJuIHhnLmNhbGwobWcsQSl8fHt9fSxSZz1mdW5jdGlvbihBKXtyZXR1cm4gcWcuY2FsbChtZyxBKX19ZWxzZXt2YXIgVGc9SmcoInN0YXRlIik7TGdbVGddPSEwLGxnPWZ1bmN0aW9uKEEsZyl7aWYoSGcoQSxUZykpdGhyb3cgbmV3IFR5cGVFcnJvcih2Zyk7cmV0dXJuIGcuZmFjYWRlPUEsWWcoQSxUZyxnKSxnfSxHZz1mdW5jdGlvbihBKXtyZXR1cm4gSGcoQSxUZyk/QVtUZ106e319LFJnPWZ1bmN0aW9uKEEpe3JldHVybiBIZyhBLFRnKX19dmFyIE9nPXtzZXQ6bGcsZ2V0OkdnLGhhczpSZyxlbmZvcmNlOmZ1bmN0aW9uKEEpe3JldHVybiBSZyhBKT9HZyhBKTpsZyhBLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnKXt2YXIgSTtpZighTWcoZyl8fChJPUdnKGcpKS50eXBlIT09QSl0aHJvdyBUeXBlRXJyb3IoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitBKyIgcmVxdWlyZWQiKTtyZXR1cm4gSX19fSxXZz17fSxaZz17fSxqZz17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxQZz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFhnPVBnJiYhamcuY2FsbCh7MToyfSwxKTtaZy5mPVhnP2Z1bmN0aW9uKEEpe3ZhciBnPVBnKHRoaXMsQSk7cmV0dXJuISFnJiZnLmVudW1lcmFibGV9OmpnO3ZhciBWZz1zLHpnPVpnLF9nPVksJGc9byxBST1SLGdJPVYsSUk9ZCxCST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1dnLmY9Vmc/Qkk6ZnVuY3Rpb24oQSxnKXtpZihBPSRnKEEpLGc9QUkoZywhMCksSUkpdHJ5e3JldHVybiBCSShBLGcpfWNhdGNoKEkpe31pZihnSShBLGcpKXJldHVybiBfZyghemcuZi5jYWxsKEEsZyksQVtnXSl9O3ZhciBRST17ZXhwb3J0czp7fX0sQ0k9cixFST1KLGlJPVYsdEk9SyxlST1VZyxvST1PZy5nZXQsbkk9T2cuZW5mb3JjZSxyST1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7KFFJLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFEsQz0hIUImJiEhQi51bnNhZmUsRT0hIUImJiEhQi5lbnVtZXJhYmxlLGk9ISFCJiYhIUIubm9UYXJnZXRHZXQ7ImZ1bmN0aW9uIj09dHlwZW9mIEkmJigic3RyaW5nIiE9dHlwZW9mIGd8fGlJKEksIm5hbWUiKXx8RUkoSSwibmFtZSIsZyksKFE9bkkoSSkpLnNvdXJjZXx8KFEuc291cmNlPXJJLmpvaW4oInN0cmluZyI9PXR5cGVvZiBnP2c6IiIpKSksQSE9PUNJPyhDPyFpJiZBW2ddJiYoRT0hMCk6ZGVsZXRlIEFbZ10sRT9BW2ddPUk6RUkoQSxnLEkpKTpFP0FbZ109STp0SShnLEkpfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJm9JKHRoaXMpLnNvdXJjZXx8ZUkodGhpcyl9KSk7dmFyIGFJPVFJLmV4cG9ydHMsc0k9e30sY0k9T0EsaEk9V0EuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtzSS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihBKXtyZXR1cm4gY0koQSxoSSl9O3ZhciB5ST17fTt5SS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIERJLGZJLHVJLHdJPXNJLGRJPXlJLEZJPWwsbEk9QkEoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKEEpe3ZhciBnPXdJLmYoRkkoQSkpLEk9ZEkuZjtyZXR1cm4gST9nLmNvbmNhdChJKEEpKTpnfSxHST1WLFJJPWxJLFVJPVdnLGtJPWMsU0k9ZyxOST0vI3xcLnByb3RvdHlwZVwuLyxNST1mdW5jdGlvbihBLGcpe3ZhciBJPUhJW1lJKEEpXTtyZXR1cm4gST09Skl8fEkhPXBJJiYoImZ1bmN0aW9uIj09dHlwZW9mIGc/U0koZyk6ISFnKX0sWUk9TUkubm9ybWFsaXplPWZ1bmN0aW9uKEEpe3JldHVybiBTdHJpbmcoQSkucmVwbGFjZShOSSwiLiIpLnRvTG93ZXJDYXNlKCl9LEhJPU1JLmRhdGE9e30scEk9TUkuTkFUSVZFPSJOIixKST1NSS5QT0xZRklMTD0iUCIsTEk9TUksdkk9cixLST1XZy5mLG1JPUoseEk9YUkscUk9SyxiST1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1SSShnKSxCPWtJLmYsUT1VSS5mLEM9MDtDPEkubGVuZ3RoO0MrKyl7dmFyIEU9SVtDXTtHSShBLEUpfHxCKEEsRSxRKGcsRSkpfX0sVEk9TEksT0k9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQyxFLGk9QS50YXJnZXQsdD1BLmdsb2JhbCxlPUEuc3RhdDtpZihJPXQ/dkk6ZT92SVtpXXx8cUkoaSx7fSk6KHZJW2ldfHx7fSkucHJvdG90eXBlKWZvcihCIGluIGcpe2lmKEM9Z1tCXSxRPUEubm9UYXJnZXRHZXQ/KEU9S0koSSxCKSkmJkUudmFsdWU6SVtCXSwhVEkodD9COmkrKGU/Ii4iOiIjIikrQixBLmZvcmNlZCkmJnZvaWQgMCE9PVEpe2lmKHR5cGVvZiBDPT10eXBlb2YgUSljb250aW51ZTtiSShDLFEpfShBLnNoYW18fFEmJlEuc2hhbSkmJm1JKEMsInNoYW0iLCEwKSx4SShJLEIsQyxBKX19LFdJPSFnKChmdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt9cmV0dXJuIEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBBKSE9PUEucHJvdG90eXBlfSkpLFpJPVYsakk9aixQST1XSSxYST1JZygiSUVfUFJPVE8iKSxWST1PYmplY3QucHJvdG90eXBlLHpJPVBJP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihBKXtyZXR1cm4gQT1qSShBKSxaSShBLFhJKT9BW1hJXToiZnVuY3Rpb24iPT10eXBlb2YgQS5jb25zdHJ1Y3RvciYmQSBpbnN0YW5jZW9mIEEuY29uc3RydWN0b3I/QS5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6QSBpbnN0YW5jZW9mIE9iamVjdD9WSTpudWxsfSxfST1nLCRJPXpJLEFCPUosZ0I9VixJQj1GQSgiaXRlcmF0b3IiKSxCQj0hMTtbXS5rZXlzJiYoIm5leHQiaW4odUk9W10ua2V5cygpKT8oZkk9JEkoJEkodUkpKSkhPT1PYmplY3QucHJvdG90eXBlJiYoREk9ZkkpOkJCPSEwKSwobnVsbD09REl8fF9JKChmdW5jdGlvbigpe3ZhciBBPXt9O3JldHVybiBESVtJQl0uY2FsbChBKSE9PUF9KSkpJiYoREk9e30pLGdCKERJLElCKXx8QUIoREksSUIsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIFFCPXtJdGVyYXRvclByb3RvdHlwZTpESSxCVUdHWV9TQUZBUklfSVRFUkFUT1JTOkJCfSxDQj1jLmYsRUI9VixpQj1GQSgidG9TdHJpbmdUYWciKSx0Qj1mdW5jdGlvbihBLGcsSSl7QSYmIUVCKEE9ST9BOkEucHJvdG90eXBlLGlCKSYmQ0IoQSxpQix7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmd9KX0sZUI9UUIuSXRlcmF0b3JQcm90b3R5cGUsb0I9Y2csbkI9WSxyQj10QixhQj13ZyxzQj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxjQj1oLGhCPWwseUI9ZnVuY3Rpb24oQSl7aWYoIWNCKEEpJiZudWxsIT09QSl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IHNldCAiK1N0cmluZyhBKSsiIGFzIGEgcHJvdG90eXBlIik7cmV0dXJuIEF9LERCPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciBBLGc9ITEsST17fTt0cnl7KEE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQpLmNhbGwoSSxbXSksZz1JIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goQil7fXJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBoQihJKSx5QihCKSxnP0EuY2FsbChJLEIpOkkuX19wcm90b19fPUIsSX19KCk6dm9pZCAwKSxmQj1PSSx1Qj1mdW5jdGlvbihBLGcsSSl7dmFyIEI9ZysiIEl0ZXJhdG9yIjtyZXR1cm4gQS5wcm90b3R5cGU9b0IoZUIse25leHQ6bkIoMSxJKX0pLHJCKEEsQiwhMSksYUJbQl09c0IsQX0sd0I9ekksZEI9REIsRkI9dEIsbEI9SixHQj1hSSxSQj13ZyxVQj1RQi5JdGVyYXRvclByb3RvdHlwZSxrQj1RQi5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLFNCPUZBKCJpdGVyYXRvciIpLE5CPSJrZXlzIixNQj0idmFsdWVzIixZQj0iZW50cmllcyIsSEI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scEI9byxKQj11ZyxMQj13Zyx2Qj1PZyxLQj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt1QihJLGcsQik7dmFyIGksdCxlLG89ZnVuY3Rpb24oQSl7aWYoQT09PVEmJmMpcmV0dXJuIGM7aWYoIWtCJiZBIGluIGEpcmV0dXJuIGFbQV07c3dpdGNoKEEpe2Nhc2UgTkI6Y2FzZSBNQjpjYXNlIFlCOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgSSh0aGlzLEEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEkodGhpcyl9fSxuPWcrIiBJdGVyYXRvciIscj0hMSxhPUEucHJvdG90eXBlLHM9YVtTQl18fGFbIkBAaXRlcmF0b3IiXXx8USYmYVtRXSxjPSFrQiYmc3x8byhRKSxoPSJBcnJheSI9PWcmJmEuZW50cmllc3x8cztpZihoJiYoaT13QihoLmNhbGwobmV3IEEpKSxVQiE9PU9iamVjdC5wcm90b3R5cGUmJmkubmV4dCYmKHdCKGkpIT09VUImJihkQj9kQihpLFVCKToiZnVuY3Rpb24iIT10eXBlb2YgaVtTQl0mJmxCKGksU0IsSEIpKSxGQihpLG4sITApKSksUT09TUImJnMmJnMubmFtZSE9PU1CJiYocj0hMCxjPWZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzKX0pLGFbU0JdIT09YyYmbEIoYSxTQixjKSxSQltnXT1jLFEpaWYodD17dmFsdWVzOm8oTUIpLGtleXM6Qz9jOm8oTkIpLGVudHJpZXM6byhZQil9LEUpZm9yKGUgaW4gdCkoa0J8fHJ8fCEoZSBpbiBhKSkmJkdCKGEsZSx0W2VdKTtlbHNlIGZCKHt0YXJnZXQ6Zyxwcm90bzohMCxmb3JjZWQ6a0J8fHJ9LHQpO3JldHVybiB0fSxtQj0iQXJyYXkgSXRlcmF0b3IiLHhCPXZCLnNldCxxQj12Qi5nZXR0ZXJGb3IobUIpLGJCPUtCKEFycmF5LCJBcnJheSIsKGZ1bmN0aW9uKEEsZyl7eEIodGhpcyx7dHlwZTptQix0YXJnZXQ6cEIoQSksaW5kZXg6MCxraW5kOmd9KX0pLChmdW5jdGlvbigpe3ZhciBBPXFCKHRoaXMpLGc9QS50YXJnZXQsST1BLmtpbmQsQj1BLmluZGV4Kys7cmV0dXJuIWd8fEI+PWcubGVuZ3RoPyhBLnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk6ImtleXMiPT1JP3t2YWx1ZTpCLGRvbmU6ITF9OiJ2YWx1ZXMiPT1JP3t2YWx1ZTpnW0JdLGRvbmU6ITF9Ont2YWx1ZTpbQixnW0JdXSxkb25lOiExfX0pLCJ2YWx1ZXMiKTtMQi5Bcmd1bWVudHM9TEIuQXJyYXksSkIoImtleXMiKSxKQigidmFsdWVzIiksSkIoImVudHJpZXMiKTt2YXIgVEI9e307VEJbRkEoInRvU3RyaW5nVGFnIildPSJ6Ijt2YXIgT0I9IltvYmplY3Qgel0iPT09U3RyaW5nKFRCKSxXQj1PQixaQj1CLGpCPUZBKCJ0b1N0cmluZ1RhZyIpLFBCPSJBcmd1bWVudHMiPT1aQihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpLFhCPVdCP1pCOmZ1bmN0aW9uKEEpe3ZhciBnLEksQjtyZXR1cm4gdm9pZCAwPT09QT8iVW5kZWZpbmVkIjpudWxsPT09QT8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihJPWZ1bmN0aW9uKEEsZyl7dHJ5e3JldHVybiBBW2ddfWNhdGNoKEkpe319KGc9T2JqZWN0KEEpLGpCKSk/STpQQj9aQihnKToiT2JqZWN0Ij09KEI9WkIoZykpJiYiZnVuY3Rpb24iPT10eXBlb2YgZy5jYWxsZWU/IkFyZ3VtZW50cyI6Qn0sVkI9WEIsekI9T0I/e30udG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK1ZCKHRoaXMpKyJdIn07T0J8fGFJKE9iamVjdC5wcm90b3R5cGUsInRvU3RyaW5nIix6Qix7dW5zYWZlOiEwfSk7dmFyIF9CPXtleHBvcnRzOnt9fSwkQj1GQSgiaXRlcmF0b3IiKSxBUT0hMTt0cnl7dmFyIGdRPTAsSVE9e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohIWdRKyt9fSxyZXR1cm46ZnVuY3Rpb24oKXtBUT0hMH19O0lRWyRCXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxBcnJheS5mcm9tKElRLChmdW5jdGlvbigpe3Rocm93IDJ9KSl9Y2F0Y2godEQpe312YXIgQlEsUVE9ZnVuY3Rpb24oQSxnKXtpZighZyYmIUFRKXJldHVybiExO3ZhciBJPSExO3RyeXt2YXIgQj17fTtCWyRCXT1mdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ST0hMH19fX0sQShCKX1jYXRjaCh0RCl7fXJldHVybiBJfSxDUT0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3LEVRPUNRLGlRPXMsdFE9cixlUT1oLG9RPVYsblE9WEIsclE9SixhUT1hSSxzUT1jLmYsY1E9ekksaFE9REIseVE9RkEsRFE9JCxmUT10US5JbnQ4QXJyYXksdVE9ZlEmJmZRLnByb3RvdHlwZSx3UT10US5VaW50OENsYW1wZWRBcnJheSxkUT13USYmd1EucHJvdG90eXBlLEZRPWZRJiZjUShmUSksbFE9dVEmJmNRKHVRKSxHUT1PYmplY3QucHJvdG90eXBlLFJRPUdRLmlzUHJvdG90eXBlT2YsVVE9eVEoInRvU3RyaW5nVGFnIiksa1E9RFEoIlRZUEVEX0FSUkFZX1RBRyIpLFNRPUVRJiYhIWhRJiYiT3BlcmEiIT09blEodFEub3BlcmEpLE5RPSExLE1RPXtJbnQ4QXJyYXk6MSxVaW50OEFycmF5OjEsVWludDhDbGFtcGVkQXJyYXk6MSxJbnQxNkFycmF5OjIsVWludDE2QXJyYXk6MixJbnQzMkFycmF5OjQsVWludDMyQXJyYXk6NCxGbG9hdDMyQXJyYXk6NCxGbG9hdDY0QXJyYXk6OH0sWVE9e0JpZ0ludDY0QXJyYXk6OCxCaWdVaW50NjRBcnJheTo4fSxIUT1mdW5jdGlvbihBKXtpZighZVEoQSkpcmV0dXJuITE7dmFyIGc9blEoQSk7cmV0dXJuIG9RKE1RLGcpfHxvUShZUSxnKX07Zm9yKEJRIGluIE1RKXRRW0JRXXx8KFNRPSExKTtpZigoIVNRfHwiZnVuY3Rpb24iIT10eXBlb2YgRlF8fEZRPT09RnVuY3Rpb24ucHJvdG90eXBlKSYmKEZRPWZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfSxTUSkpZm9yKEJRIGluIE1RKXRRW0JRXSYmaFEodFFbQlFdLEZRKTtpZigoIVNRfHwhbFF8fGxRPT09R1EpJiYobFE9RlEucHJvdG90eXBlLFNRKSlmb3IoQlEgaW4gTVEpdFFbQlFdJiZoUSh0UVtCUV0ucHJvdG90eXBlLGxRKTtpZihTUSYmY1EoZFEpIT09bFEmJmhRKGRRLGxRKSxpUSYmIW9RKGxRLFVRKSlmb3IoQlEgaW4gTlE9ITAsc1EobFEsVVEse2dldDpmdW5jdGlvbigpe3JldHVybiBlUSh0aGlzKT90aGlzW2tRXTp2b2lkIDB9fSksTVEpdFFbQlFdJiZyUSh0UVtCUV0sa1EsQlEpO3ZhciBwUT17TkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUzpTUSxUWVBFRF9BUlJBWV9UQUc6TlEmJmtRLGFUeXBlZEFycmF5OmZ1bmN0aW9uKEEpe2lmKEhRKEEpKXJldHVybiBBO3Rocm93IFR5cGVFcnJvcigiVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Iil9LGFUeXBlZEFycmF5Q29uc3RydWN0b3I6ZnVuY3Rpb24oQSl7aWYoaFEpe2lmKFJRLmNhbGwoRlEsQSkpcmV0dXJuIEF9ZWxzZSBmb3IodmFyIGcgaW4gTVEpaWYob1EoTVEsQlEpKXt2YXIgST10UVtnXTtpZihJJiYoQT09PUl8fFJRLmNhbGwoSSxBKSkpcmV0dXJuIEF9dGhyb3cgVHlwZUVycm9yKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkgY29uc3RydWN0b3IiKX0sZXhwb3J0VHlwZWRBcnJheU1ldGhvZDpmdW5jdGlvbihBLGcsSSl7aWYoaVEpe2lmKEkpZm9yKHZhciBCIGluIE1RKXt2YXIgUT10UVtCXTtpZihRJiZvUShRLnByb3RvdHlwZSxBKSl0cnl7ZGVsZXRlIFEucHJvdG90eXBlW0FdfWNhdGNoKHREKXt9fWxRW0FdJiYhSXx8YVEobFEsQSxJP2c6U1EmJnVRW0FdfHxnKX19LGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7aWYoaVEpe2lmKGhRKXtpZihJKWZvcihCIGluIE1RKWlmKChRPXRRW0JdKSYmb1EoUSxBKSl0cnl7ZGVsZXRlIFFbQV19Y2F0Y2godEQpe31pZihGUVtBXSYmIUkpcmV0dXJuO3RyeXtyZXR1cm4gYVEoRlEsQSxJP2c6U1EmJkZRW0FdfHxnKX1jYXRjaCh0RCl7fX1mb3IoQiBpbiBNUSkhKFE9dFFbQl0pfHxRW0FdJiYhSXx8YVEoUSxBLGcpfX0saXNWaWV3OmZ1bmN0aW9uKEEpe2lmKCFlUShBKSlyZXR1cm4hMTt2YXIgZz1uUShBKTtyZXR1cm4iRGF0YVZpZXciPT09Z3x8b1EoTVEsZyl8fG9RKFlRLGcpfSxpc1R5cGVkQXJyYXk6SFEsVHlwZWRBcnJheTpGUSxUeXBlZEFycmF5UHJvdG90eXBlOmxRfSxKUT1yLExRPWcsdlE9UVEsS1E9cFEuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyxtUT1KUS5BcnJheUJ1ZmZlcix4UT1KUS5JbnQ4QXJyYXkscVE9IUtRfHwhTFEoKGZ1bmN0aW9uKCl7eFEoMSl9KSl8fCFMUSgoZnVuY3Rpb24oKXtuZXcgeFEoLTEpfSkpfHwhdlEoKGZ1bmN0aW9uKEEpe25ldyB4USxuZXcgeFEobnVsbCksbmV3IHhRKDEuNSksbmV3IHhRKEEpfSksITApfHxMUSgoZnVuY3Rpb24oKXtyZXR1cm4gMSE9PW5ldyB4UShuZXcgbVEoMiksMSx2b2lkIDApLmxlbmd0aH0pKSxiUT1hSSxUUT1mdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCIGluIGcpYlEoQSxCLGdbQl0sSSk7cmV0dXJuIEF9LE9RPWZ1bmN0aW9uKEEsZyxJKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCAiKyhJP0krIiAiOiIiKSsiaW52b2NhdGlvbiIpO3JldHVybiBBfSxXUT1SQSxaUT1TQSxqUT1mdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXJldHVybiAwO3ZhciBnPVdRKEEpLEk9WlEoZyk7aWYoZyE9PUkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIG9yIGluZGV4Iik7cmV0dXJuIEl9LFBRPU1hdGguYWJzLFhRPU1hdGgucG93LFZRPU1hdGguZmxvb3IselE9TWF0aC5sb2csX1E9TWF0aC5MTjIsJFE9aixBQz1IQSxnQz1TQSxJQz1mdW5jdGlvbihBKXtmb3IodmFyIGc9JFEodGhpcyksST1nQyhnLmxlbmd0aCksQj1hcmd1bWVudHMubGVuZ3RoLFE9QUMoQj4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsSSksQz1CPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxFPXZvaWQgMD09PUM/STpBQyhDLEkpO0U+UTspZ1tRKytdPUE7cmV0dXJuIGd9LEJDPXIsUUM9cyxDQz1DUSxFQz1KLGlDPVRRLHRDPWcsZUM9T1Esb0M9UkEsbkM9U0EsckM9alEsYUM9e3BhY2s6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFEsQyxFPW5ldyBBcnJheShJKSxpPTgqSS1nLTEsdD0oMTw8aSktMSxlPXQ+PjEsbz0yMz09PWc/WFEoMiwtMjQpLVhRKDIsLTc3KTowLG49QTwwfHwwPT09QSYmMS9BPDA/MTowLHI9MDtmb3IoKEE9UFEoQSkpIT1BfHxBPT09MS8wPyhRPUEhPUE/MTowLEI9dCk6KEI9VlEoelEoQSkvX1EpLEEqKEM9WFEoMiwtQikpPDEmJihCLS0sQyo9MiksKEErPUIrZT49MT9vL0M6bypYUSgyLDEtZSkpKkM+PTImJihCKyssQy89MiksQitlPj10PyhRPTAsQj10KTpCK2U+PTE/KFE9KEEqQy0xKSpYUSgyLGcpLEIrPWUpOihRPUEqWFEoMixlLTEpKlhRKDIsZyksQj0wKSk7Zz49ODtFW3IrK109MjU1JlEsUS89MjU2LGctPTgpO2ZvcihCPUI8PGd8USxpKz1nO2k+MDtFW3IrK109MjU1JkIsQi89MjU2LGktPTgpO3JldHVybiBFWy0tcl18PTEyOCpuLEV9LHVucGFjazpmdW5jdGlvbihBLGcpe3ZhciBJLEI9QS5sZW5ndGgsUT04KkItZy0xLEM9KDE8PFEpLTEsRT1DPj4xLGk9US03LHQ9Qi0xLGU9QVt0LS1dLG89MTI3JmU7Zm9yKGU+Pj03O2k+MDtvPTI1NipvK0FbdF0sdC0tLGktPTgpO2ZvcihJPW8mKDE8PC1pKS0xLG8+Pj0taSxpKz1nO2k+MDtJPTI1NipJK0FbdF0sdC0tLGktPTgpO2lmKDA9PT1vKW89MS1FO2Vsc2V7aWYobz09PUMpcmV0dXJuIEk/TmFOOmU/LTEvMDoxLzA7SSs9WFEoMixnKSxvLT1FfXJldHVybihlPy0xOjEpKkkqWFEoMixvLWcpfX0sc0M9ekksY0M9REIsaEM9c0kuZix5Qz1jLmYsREM9SUMsZkM9dEIsdUM9T2cuZ2V0LHdDPU9nLnNldCxkQz0iQXJyYXlCdWZmZXIiLEZDPSJEYXRhVmlldyIsbEM9InByb3RvdHlwZSIsR0M9Ildyb25nIGluZGV4IixSQz1CQ1tkQ10sVUM9UkMsa0M9QkNbRkNdLFNDPWtDJiZrQ1tsQ10sTkM9T2JqZWN0LnByb3RvdHlwZSxNQz1CQy5SYW5nZUVycm9yLFlDPWFDLnBhY2ssSEM9YUMudW5wYWNrLHBDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQV19LEpDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NV19LExDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NSxBPj4xNiYyNTUsQT4+MjQmMjU1XX0sdkM9ZnVuY3Rpb24oQSl7cmV0dXJuIEFbM108PDI0fEFbMl08PDE2fEFbMV08PDh8QVswXX0sS0M9ZnVuY3Rpb24oQSl7cmV0dXJuIFlDKEEsMjMsNCl9LG1DPWZ1bmN0aW9uKEEpe3JldHVybiBZQyhBLDUyLDgpfSx4Qz1mdW5jdGlvbihBLGcpe3lDKEFbbENdLGcse2dldDpmdW5jdGlvbigpe3JldHVybiB1Qyh0aGlzKVtnXX19KX0scUM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9ckMoSSksQz11QyhBKTtpZihRK2c+Qy5ieXRlTGVuZ3RoKXRocm93IE1DKEdDKTt2YXIgRT11QyhDLmJ1ZmZlcikuYnl0ZXMsaT1RK0MuYnl0ZU9mZnNldCx0PUUuc2xpY2UoaSxpK2cpO3JldHVybiBCP3Q6dC5yZXZlcnNlKCl9LGJDPWZ1bmN0aW9uKEEsZyxJLEIsUSxDKXt2YXIgRT1yQyhJKSxpPXVDKEEpO2lmKEUrZz5pLmJ5dGVMZW5ndGgpdGhyb3cgTUMoR0MpO2Zvcih2YXIgdD11QyhpLmJ1ZmZlcikuYnl0ZXMsZT1FK2kuYnl0ZU9mZnNldCxvPUIoK1EpLG49MDtuPGc7bisrKXRbZStuXT1vW0M/bjpnLW4tMV19O2lmKENDKXtpZighdEMoKGZ1bmN0aW9uKCl7UkMoMSl9KSl8fCF0QygoZnVuY3Rpb24oKXtuZXcgUkMoLTEpfSkpfHx0QygoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFJDLG5ldyBSQygxLjUpLG5ldyBSQyhOYU4pLFJDLm5hbWUhPWRDfSkpKXtmb3IodmFyIFRDLE9DPShVQz1mdW5jdGlvbihBKXtyZXR1cm4gZUModGhpcyxVQyksbmV3IFJDKHJDKEEpKX0pW2xDXT1SQ1tsQ10sV0M9aEMoUkMpLFpDPTA7V0MubGVuZ3RoPlpDOykoVEM9V0NbWkMrK10paW4gVUN8fEVDKFVDLFRDLFJDW1RDXSk7T0MuY29uc3RydWN0b3I9VUN9Y0MmJnNDKFNDKSE9PU5DJiZjQyhTQyxOQyk7dmFyIGpDPW5ldyBrQyhuZXcgVUMoMikpLFBDPVNDLnNldEludDg7akMuc2V0SW50OCgwLDIxNDc0ODM2NDgpLGpDLnNldEludDgoMSwyMTQ3NDgzNjQ5KSwhakMuZ2V0SW50OCgwKSYmakMuZ2V0SW50OCgxKXx8aUMoU0Mse3NldEludDg6ZnVuY3Rpb24oQSxnKXtQQy5jYWxsKHRoaXMsQSxnPDwyND4+MjQpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe1BDLmNhbGwodGhpcyxBLGc8PDI0Pj4yNCl9fSx7dW5zYWZlOiEwfSl9ZWxzZSBVQz1mdW5jdGlvbihBKXtlQyh0aGlzLFVDLGRDKTt2YXIgZz1yQyhBKTt3Qyh0aGlzLHtieXRlczpEQy5jYWxsKG5ldyBBcnJheShnKSwwKSxieXRlTGVuZ3RoOmd9KSxRQ3x8KHRoaXMuYnl0ZUxlbmd0aD1nKX0sa0M9ZnVuY3Rpb24oQSxnLEkpe2VDKHRoaXMsa0MsRkMpLGVDKEEsVUMsRkMpO3ZhciBCPXVDKEEpLmJ5dGVMZW5ndGgsUT1vQyhnKTtpZihRPDB8fFE+Qil0aHJvdyBNQygiV3Jvbmcgb2Zmc2V0Iik7aWYoUSsoST12b2lkIDA9PT1JP0ItUTpuQyhJKSk+Qil0aHJvdyBNQygiV3JvbmcgbGVuZ3RoIik7d0ModGhpcyx7YnVmZmVyOkEsYnl0ZUxlbmd0aDpJLGJ5dGVPZmZzZXQ6UX0pLFFDfHwodGhpcy5idWZmZXI9QSx0aGlzLmJ5dGVMZW5ndGg9SSx0aGlzLmJ5dGVPZmZzZXQ9USl9LFFDJiYoeEMoVUMsImJ5dGVMZW5ndGgiKSx4QyhrQywiYnVmZmVyIikseEMoa0MsImJ5dGVMZW5ndGgiKSx4QyhrQywiYnl0ZU9mZnNldCIpKSxpQyhrQ1tsQ10se2dldEludDg6ZnVuY3Rpb24oQSl7cmV0dXJuIHFDKHRoaXMsMSxBKVswXTw8MjQ+PjI0fSxnZXRVaW50ODpmdW5jdGlvbihBKXtyZXR1cm4gcUModGhpcywxLEEpWzBdfSxnZXRJbnQxNjpmdW5jdGlvbihBKXt2YXIgZz1xQyh0aGlzLDIsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuKGdbMV08PDh8Z1swXSk8PDE2Pj4xNn0sZ2V0VWludDE2OmZ1bmN0aW9uKEEpe3ZhciBnPXFDKHRoaXMsMixBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4gZ1sxXTw8OHxnWzBdfSxnZXRJbnQzMjpmdW5jdGlvbihBKXtyZXR1cm4gdkMocUModGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApKX0sZ2V0VWludDMyOmZ1bmN0aW9uKEEpe3JldHVybiB2QyhxQyh0aGlzLDQsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbihBKXtyZXR1cm4gSEMocUModGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDIzKX0sZ2V0RmxvYXQ2NDpmdW5jdGlvbihBKXtyZXR1cm4gSEMocUModGhpcyw4LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDUyKX0sc2V0SW50ODpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMSxBLHBDLGcpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMSxBLHBDLGcpfSxzZXRJbnQxNjpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMixBLEpDLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSxzZXRVaW50MTY6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDIsQSxKQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0SW50MzI6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDQsQSxMQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0VWludDMyOmZ1bmN0aW9uKEEsZyl7YkModGhpcyw0LEEsTEMsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldEZsb2F0MzI6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDQsQSxLQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0RmxvYXQ2NDpmdW5jdGlvbihBLGcpe2JDKHRoaXMsOCxBLG1DLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfX0pO2ZDKFVDLGRDKSxmQyhrQyxGQyk7dmFyIFhDPXtBcnJheUJ1ZmZlcjpVQyxEYXRhVmlldzprQ30sVkM9UkEsekM9ZnVuY3Rpb24oQSl7dmFyIGc9VkMoQSk7aWYoZzwwKXRocm93IFJhbmdlRXJyb3IoIlRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMCIpO3JldHVybiBnfSxfQz1mdW5jdGlvbihBLGcpe3ZhciBJPXpDKEEpO2lmKEklZyl0aHJvdyBSYW5nZUVycm9yKCJXcm9uZyBvZmZzZXQiKTtyZXR1cm4gSX0sJEM9WEIsQUU9d2csZ0U9RkEoIml0ZXJhdG9yIiksSUU9ZnVuY3Rpb24oQSl7aWYobnVsbCE9QSlyZXR1cm4gQVtnRV18fEFbIkBAaXRlcmF0b3IiXXx8QUVbJEMoQSldfSxCRT13ZyxRRT1GQSgiaXRlcmF0b3IiKSxDRT1BcnJheS5wcm90b3R5cGUsRUU9ZnVuY3Rpb24oQSl7cmV0dXJuIHZvaWQgMCE9PUEmJihCRS5BcnJheT09PUF8fENFW1FFXT09PUEpfSxpRT1mdW5jdGlvbihBKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQSl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKEEpKyIgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4gQX0sdEU9aUUsZUU9ZnVuY3Rpb24oQSxnLEkpe2lmKHRFKEEpLHZvaWQgMD09PWcpcmV0dXJuIEE7c3dpdGNoKEkpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5jYWxsKGcpfTtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKEkpe3JldHVybiBBLmNhbGwoZyxJKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBBLmNhbGwoZyxJLEIpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKEksQixRKXtyZXR1cm4gQS5jYWxsKGcsSSxCLFEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShnLGFyZ3VtZW50cyl9fSxvRT1qLG5FPVNBLHJFPUlFLGFFPUVFLHNFPWVFLGNFPXBRLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsaEU9Qix5RT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihBKXtyZXR1cm4iQXJyYXkiPT1oRShBKX0sREU9aCxmRT15RSx1RT1GQSgic3BlY2llcyIpLHdFPWZ1bmN0aW9uKEEsZyl7dmFyIEk7cmV0dXJuIGZFKEEpJiYoImZ1bmN0aW9uIiE9dHlwZW9mKEk9QS5jb25zdHJ1Y3Rvcil8fEkhPT1BcnJheSYmIWZFKEkucHJvdG90eXBlKT9ERShJKSYmbnVsbD09PShJPUlbdUVdKSYmKEk9dm9pZCAwKTpJPXZvaWQgMCksbmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoMD09PWc/MDpnKX0sZEU9ZUUsRkU9RSxsRT1qLEdFPVNBLFJFPXdFLFVFPVtdLnB1c2gsa0U9ZnVuY3Rpb24oQSl7dmFyIGc9MT09QSxJPTI9PUEsQj0zPT1BLFE9ND09QSxDPTY9PUEsRT03PT1BLGk9NT09QXx8QztyZXR1cm4gZnVuY3Rpb24odCxlLG8sbil7Zm9yKHZhciByLGEscz1sRSh0KSxjPUZFKHMpLGg9ZEUoZSxvLDMpLHk9R0UoYy5sZW5ndGgpLEQ9MCxmPW58fFJFLHU9Zz9mKHQseSk6SXx8RT9mKHQsMCk6dm9pZCAwO3k+RDtEKyspaWYoKGl8fEQgaW4gYykmJihhPWgocj1jW0RdLEQscyksQSkpaWYoZyl1W0RdPWE7ZWxzZSBpZihhKXN3aXRjaChBKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiByO2Nhc2UgNjpyZXR1cm4gRDtjYXNlIDI6VUUuY2FsbCh1LHIpfWVsc2Ugc3dpdGNoKEEpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6VUUuY2FsbCh1LHIpfXJldHVybiBDPy0xOkJ8fFE/UTp1fX0sU0U9e2ZvckVhY2g6a0UoMCksbWFwOmtFKDEpLGZpbHRlcjprRSgyKSxzb21lOmtFKDMpLGV2ZXJ5OmtFKDQpLGZpbmQ6a0UoNSksZmluZEluZGV4OmtFKDYpLGZpbHRlck91dDprRSg3KX0sTkU9QkEsTUU9YyxZRT1zLEhFPUZBKCJzcGVjaWVzIikscEU9ZnVuY3Rpb24oQSl7dmFyIGc9TkUoQSksST1NRS5mO1lFJiZnJiYhZ1tIRV0mJkkoZyxIRSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfSxKRT1oLExFPURCLHZFPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRO3JldHVybiBMRSYmImZ1bmN0aW9uIj09dHlwZW9mKEI9Zy5jb25zdHJ1Y3RvcikmJkIhPT1JJiZKRShRPUIucHJvdG90eXBlKSYmUSE9PUkucHJvdG90eXBlJiZMRShBLFEpLEF9LEtFPU9JLG1FPXIseEU9cyxxRT1xUSxiRT1wUSxURT1YQyxPRT1PUSxXRT1ZLFpFPUosakU9U0EsUEU9alEsWEU9X0MsVkU9Uix6RT1WLF9FPVhCLCRFPWgsQWk9Y2csZ2k9REIsSWk9c0kuZixCaT1mdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxDLEUsaT1vRShBKSx0PWFyZ3VtZW50cy5sZW5ndGgsZT10PjE/YXJndW1lbnRzWzFdOnZvaWQgMCxvPXZvaWQgMCE9PWUsbj1yRShpKTtpZihudWxsIT1uJiYhYUUobikpZm9yKEU9KEM9bi5jYWxsKGkpKS5uZXh0LGk9W107IShRPUUuY2FsbChDKSkuZG9uZTspaS5wdXNoKFEudmFsdWUpO2ZvcihvJiZ0PjImJihlPXNFKGUsYXJndW1lbnRzWzJdLDIpKSxJPW5FKGkubGVuZ3RoKSxCPW5ldyhjRSh0aGlzKSkoSSksZz0wO0k+ZztnKyspQltnXT1vP2UoaVtnXSxnKTppW2ddO3JldHVybiBCfSxRaT1TRS5mb3JFYWNoLENpPXBFLEVpPWMsaWk9V2csdGk9dkUsZWk9T2cuZ2V0LG9pPU9nLnNldCxuaT1FaS5mLHJpPWlpLmYsYWk9TWF0aC5yb3VuZCxzaT1tRS5SYW5nZUVycm9yLGNpPVRFLkFycmF5QnVmZmVyLGhpPVRFLkRhdGFWaWV3LHlpPWJFLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MsRGk9YkUuVFlQRURfQVJSQVlfVEFHLGZpPWJFLlR5cGVkQXJyYXksdWk9YkUuVHlwZWRBcnJheVByb3RvdHlwZSx3aT1iRS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLGRpPWJFLmlzVHlwZWRBcnJheSxGaT0iQllURVNfUEVSX0VMRU1FTlQiLGxpPSJXcm9uZyBsZW5ndGgiLEdpPWZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPTAsQj1nLmxlbmd0aCxRPW5ldyh3aShBKSkoQik7Qj5JOylRW0ldPWdbSSsrXTtyZXR1cm4gUX0sUmk9ZnVuY3Rpb24oQSxnKXtuaShBLGcse2dldDpmdW5jdGlvbigpe3JldHVybiBlaSh0aGlzKVtnXX19KX0sVWk9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuIEEgaW5zdGFuY2VvZiBjaXx8IkFycmF5QnVmZmVyIj09KGc9X0UoQSkpfHwiU2hhcmVkQXJyYXlCdWZmZXIiPT1nfSxraT1mdW5jdGlvbihBLGcpe3JldHVybiBkaShBKSYmInN5bWJvbCIhPXR5cGVvZiBnJiZnIGluIEEmJlN0cmluZygrZyk9PVN0cmluZyhnKX0sU2k9ZnVuY3Rpb24oQSxnKXtyZXR1cm4ga2koQSxnPVZFKGcsITApKT9XRSgyLEFbZ10pOnJpKEEsZyl9LE5pPWZ1bmN0aW9uKEEsZyxJKXtyZXR1cm4hKGtpKEEsZz1WRShnLCEwKSkmJiRFKEkpJiZ6RShJLCJ2YWx1ZSIpKXx8ekUoSSwiZ2V0Iil8fHpFKEksInNldCIpfHxJLmNvbmZpZ3VyYWJsZXx8ekUoSSwid3JpdGFibGUiKSYmIUkud3JpdGFibGV8fHpFKEksImVudW1lcmFibGUiKSYmIUkuZW51bWVyYWJsZT9uaShBLGcsSSk6KEFbZ109SS52YWx1ZSxBKX07eEU/KHlpfHwoaWkuZj1TaSxFaS5mPU5pLFJpKHVpLCJidWZmZXIiKSxSaSh1aSwiYnl0ZU9mZnNldCIpLFJpKHVpLCJieXRlTGVuZ3RoIiksUmkodWksImxlbmd0aCIpKSxLRSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiF5aX0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpTaSxkZWZpbmVQcm9wZXJ0eTpOaX0pLF9CLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPUEubWF0Y2goL1xkKyQvKVswXS84LFE9QSsoST8iQ2xhbXBlZCI6IiIpKyJBcnJheSIsQz0iZ2V0IitBLEU9InNldCIrQSxpPW1FW1FdLHQ9aSxlPXQmJnQucHJvdG90eXBlLG89e30sbj1mdW5jdGlvbihBLGcpe25pKEEsZyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKEEsZyl7dmFyIEk9ZWkoQSk7cmV0dXJuIEkudmlld1tDXShnKkIrSS5ieXRlT2Zmc2V0LCEwKX0odGhpcyxnKX0sc2V0OmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihBLGcsUSl7dmFyIEM9ZWkoQSk7SSYmKFE9KFE9YWkoUSkpPDA/MDpRPjI1NT8yNTU6MjU1JlEpLEMudmlld1tFXShnKkIrQy5ieXRlT2Zmc2V0LFEsITApfSh0aGlzLGcsQSl9LGVudW1lcmFibGU6ITB9KX07eWk/cUUmJih0PWcoKGZ1bmN0aW9uKEEsZyxJLEMpe3JldHVybiBPRShBLHQsUSksdGkoJEUoZyk/VWkoZyk/dm9pZCAwIT09Qz9uZXcgaShnLFhFKEksQiksQyk6dm9pZCAwIT09ST9uZXcgaShnLFhFKEksQikpOm5ldyBpKGcpOmRpKGcpP0dpKHQsZyk6QmkuY2FsbCh0LGcpOm5ldyBpKFBFKGcpKSxBLHQpfSkpLGdpJiZnaSh0LGZpKSxRaShJaShpKSwoZnVuY3Rpb24oQSl7QSBpbiB0fHxaRSh0LEEsaVtBXSl9KSksdC5wcm90b3R5cGU9ZSk6KHQ9ZygoZnVuY3Rpb24oQSxnLEksQyl7T0UoQSx0LFEpO3ZhciBFLGksZSxvPTAscj0wO2lmKCRFKGcpKXtpZighVWkoZykpcmV0dXJuIGRpKGcpP0dpKHQsZyk6QmkuY2FsbCh0LGcpO0U9ZyxyPVhFKEksQik7dmFyIGE9Zy5ieXRlTGVuZ3RoO2lmKHZvaWQgMD09PUMpe2lmKGElQil0aHJvdyBzaShsaSk7aWYoKGk9YS1yKTwwKXRocm93IHNpKGxpKX1lbHNlIGlmKChpPWpFKEMpKkIpK3I+YSl0aHJvdyBzaShsaSk7ZT1pL0J9ZWxzZSBlPVBFKGcpLEU9bmV3IGNpKGk9ZSpCKTtmb3Iob2koQSx7YnVmZmVyOkUsYnl0ZU9mZnNldDpyLGJ5dGVMZW5ndGg6aSxsZW5ndGg6ZSx2aWV3Om5ldyBoaShFKX0pO288ZTspbihBLG8rKyl9KSksZ2kmJmdpKHQsZmkpLGU9dC5wcm90b3R5cGU9QWkodWkpKSxlLmNvbnN0cnVjdG9yIT09dCYmWkUoZSwiY29uc3RydWN0b3IiLHQpLERpJiZaRShlLERpLFEpLG9bUV09dCxLRSh7Z2xvYmFsOiEwLGZvcmNlZDp0IT1pLHNoYW06IXlpfSxvKSxGaSBpbiB0fHxaRSh0LEZpLEIpLEZpIGluIGV8fFpFKGUsRmksQiksQ2koUSl9KTpfQi5leHBvcnRzPWZ1bmN0aW9uKCl7fTt2YXIgTWk9X0IuZXhwb3J0cztNaSgiVWludDgiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKTt2YXIgWWk9aixIaT1IQSxwaT1TQSxKaT1NYXRoLm1pbixMaT1bXS5jb3B5V2l0aGlufHxmdW5jdGlvbihBLGcpe3ZhciBJPVlpKHRoaXMpLEI9cGkoSS5sZW5ndGgpLFE9SGkoQSxCKSxDPUhpKGcsQiksRT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxpPUppKCh2b2lkIDA9PT1FP0I6SGkoRSxCKSktQyxCLVEpLHQ9MTtmb3IoQzxRJiZRPEMraSYmKHQ9LTEsQys9aS0xLFErPWktMSk7aS0tID4wOylDIGluIEk/SVtRXT1JW0NdOmRlbGV0ZSBJW1FdLFErPXQsQys9dDtyZXR1cm4gSX0sdmk9TGksS2k9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImNvcHlXaXRoaW4iLChmdW5jdGlvbihBLGcpe3JldHVybiB2aS5jYWxsKEtpKHRoaXMpLEEsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9KSk7dmFyIG1pPVNFLmV2ZXJ5LHhpPXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJldmVyeSIsKGZ1bmN0aW9uKEEpe3JldHVybiBtaSh4aSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgcWk9SUMsYmk9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbGwiLChmdW5jdGlvbihBKXtyZXR1cm4gcWkuYXBwbHkoYmkodGhpcyksYXJndW1lbnRzKX0pKTt2YXIgVGk9bCxPaT1pRSxXaT1GQSgic3BlY2llcyIpLFppPWZ1bmN0aW9uKEEsZyl7dmFyIEksQj1UaShBKS5jb25zdHJ1Y3RvcjtyZXR1cm4gdm9pZCAwPT09Qnx8bnVsbD09KEk9VGkoQilbV2ldKT9nOk9pKEkpfSxqaT1wUS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLFBpPVppLFhpPVNFLmZpbHRlcixWaT1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QaShBLEEuY29uc3RydWN0b3IpLEI9MCxRPWcubGVuZ3RoLEM9bmV3KGppKEkpKShRKTtRPkI7KUNbQl09Z1tCKytdO3JldHVybiBDfSx6aT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmlsdGVyIiwoZnVuY3Rpb24oQSl7dmFyIGc9WGkoemkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIFZpKHRoaXMsZyl9KSk7dmFyIF9pPVNFLmZpbmQsJGk9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbmQiLChmdW5jdGlvbihBKXtyZXR1cm4gX2koJGkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIEF0PVNFLmZpbmRJbmRleCxndD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmluZEluZGV4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIEF0KGd0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBJdD1TRS5mb3JFYWNoLEJ0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJmb3JFYWNoIiwoZnVuY3Rpb24oQSl7SXQoQnQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIFF0PUtBLmluY2x1ZGVzLEN0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJpbmNsdWRlcyIsKGZ1bmN0aW9uKEEpe3JldHVybiBRdChDdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgRXQ9S0EuaW5kZXhPZixpdD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiaW5kZXhPZiIsKGZ1bmN0aW9uKEEpe3JldHVybiBFdChpdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgdHQ9cixldD1wUSxvdD1iQixudD1GQSgiaXRlcmF0b3IiKSxydD10dC5VaW50OEFycmF5LGF0PW90LnZhbHVlcyxzdD1vdC5rZXlzLGN0PW90LmVudHJpZXMsaHQ9ZXQuYVR5cGVkQXJyYXkseXQ9ZXQuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxEdD1ydCYmcnQucHJvdG90eXBlW250XSxmdD0hIUR0JiYoInZhbHVlcyI9PUR0Lm5hbWV8fG51bGw9PUR0Lm5hbWUpLHV0PWZ1bmN0aW9uKCl7cmV0dXJuIGF0LmNhbGwoaHQodGhpcykpfTt5dCgiZW50cmllcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN0LmNhbGwoaHQodGhpcykpfSkpLHl0KCJrZXlzIiwoZnVuY3Rpb24oKXtyZXR1cm4gc3QuY2FsbChodCh0aGlzKSl9KSkseXQoInZhbHVlcyIsdXQsIWZ0KSx5dChudCx1dCwhZnQpO3ZhciB3dD1wUS5hVHlwZWRBcnJheSxkdD1bXS5qb2luOygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJqb2luIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGR0LmFwcGx5KHd0KHRoaXMpLGFyZ3VtZW50cyl9KSk7dmFyIEZ0PWcsbHQ9ZnVuY3Rpb24oQSxnKXt2YXIgST1bXVtBXTtyZXR1cm4hIUkmJkZ0KChmdW5jdGlvbigpe0kuY2FsbChudWxsLGd8fGZ1bmN0aW9uKCl7dGhyb3cgMX0sMSl9KSl9LEd0PW8sUnQ9UkEsVXQ9U0Esa3Q9bHQsU3Q9TWF0aC5taW4sTnQ9W10ubGFzdEluZGV4T2YsTXQ9ISFOdCYmMS9bMV0ubGFzdEluZGV4T2YoMSwtMCk8MCxZdD1rdCgibGFzdEluZGV4T2YiKSxIdD1NdHx8IVl0P2Z1bmN0aW9uKEEpe2lmKE10KXJldHVybiBOdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA7dmFyIGc9R3QodGhpcyksST1VdChnLmxlbmd0aCksQj1JLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKEI9U3QoQixSdChhcmd1bWVudHNbMV0pKSksQjwwJiYoQj1JK0IpO0I+PTA7Qi0tKWlmKEIgaW4gZyYmZ1tCXT09PUEpcmV0dXJuIEJ8fDA7cmV0dXJuLTF9Ok50LHB0PUh0LEp0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJsYXN0SW5kZXhPZiIsKGZ1bmN0aW9uKEEpe3JldHVybiBwdC5hcHBseShKdCh0aGlzKSxhcmd1bWVudHMpfSkpO3ZhciBMdD1TRS5tYXAsdnQ9WmksS3Q9cFEuYVR5cGVkQXJyYXksbXQ9cFEuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgibWFwIiwoZnVuY3Rpb24oQSl7cmV0dXJuIEx0KEt0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIG5ldyhtdCh2dChBLEEuY29uc3RydWN0b3IpKSkoZyl9KSl9KSk7dmFyIHh0PWlFLHF0PWosYnQ9RSxUdD1TQSxPdD1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIsUSl7eHQoSSk7dmFyIEM9cXQoZyksRT1idChDKSxpPVR0KEMubGVuZ3RoKSx0PUE/aS0xOjAsZT1BPy0xOjE7aWYoQjwyKWZvcig7Oyl7aWYodCBpbiBFKXtRPUVbdF0sdCs9ZTticmVha31pZih0Kz1lLEE/dDwwOmk8PXQpdGhyb3cgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIil9Zm9yKDtBP3Q+PTA6aT50O3QrPWUpdCBpbiBFJiYoUT1JKFEsRVt0XSx0LEMpKTtyZXR1cm4gUX19LFd0PXtsZWZ0Ok90KCExKSxyaWdodDpPdCghMCl9LFp0PVd0LmxlZnQsanQ9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInJlZHVjZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBadChqdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBQdD1XdC5yaWdodCxYdD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgicmVkdWNlUmlnaHQiLChmdW5jdGlvbihBKXtyZXR1cm4gUHQoWHQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgVnQ9cFEuYVR5cGVkQXJyYXksenQ9cFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxfdD1NYXRoLmZsb29yO3p0KCJyZXZlcnNlIiwoZnVuY3Rpb24oKXtmb3IodmFyIEEsZz10aGlzLEk9VnQoZykubGVuZ3RoLEI9X3QoSS8yKSxRPTA7UTxCOylBPWdbUV0sZ1tRKytdPWdbLS1JXSxnW0ldPUE7cmV0dXJuIGd9KSk7dmFyICR0PVNBLEFlPV9DLGdlPWosSWU9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNldCIsKGZ1bmN0aW9uKEEpe0llKHRoaXMpO3ZhciBnPUFlKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDEpLEk9dGhpcy5sZW5ndGgsQj1nZShBKSxRPSR0KEIubGVuZ3RoKSxDPTA7aWYoUStnPkkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIik7Zm9yKDtDPFE7KXRoaXNbZytDXT1CW0MrK119KSxnKChmdW5jdGlvbigpe25ldyBJbnQ4QXJyYXkoMSkuc2V0KHt9KX0pKSk7dmFyIEJlPVppLFFlPXBRLmFUeXBlZEFycmF5LENlPXBRLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsRWU9W10uc2xpY2U7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNsaWNlIiwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9RWUuY2FsbChRZSh0aGlzKSxBLGcpLEI9QmUodGhpcyx0aGlzLmNvbnN0cnVjdG9yKSxRPTAsQz1JLmxlbmd0aCxFPW5ldyhDZShCKSkoQyk7Qz5ROylFW1FdPUlbUSsrXTtyZXR1cm4gRX0pLGcoKGZ1bmN0aW9uKCl7bmV3IEludDhBcnJheSgxKS5zbGljZSgpfSkpKTt2YXIgaWU9U0Uuc29tZSx0ZT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29tZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBpZSh0ZSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgZWU9cFEuYVR5cGVkQXJyYXksb2U9W10uc29ydDsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29ydCIsKGZ1bmN0aW9uKEEpe3JldHVybiBvZS5jYWxsKGVlKHRoaXMpLEEpfSkpO3ZhciBuZT1TQSxyZT1IQSxhZT1aaSxzZT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic3ViYXJyYXkiLChmdW5jdGlvbihBLGcpe3ZhciBJPXNlKHRoaXMpLEI9SS5sZW5ndGgsUT1yZShBLEIpO3JldHVybiBuZXcoYWUoSSxJLmNvbnN0cnVjdG9yKSkoSS5idWZmZXIsSS5ieXRlT2Zmc2V0K1EqSS5CWVRFU19QRVJfRUxFTUVOVCxuZSgodm9pZCAwPT09Zz9COnJlKGcsQikpLVEpKX0pKTt2YXIgY2U9cFEsaGU9Zyx5ZT1yLkludDhBcnJheSxEZT1jZS5hVHlwZWRBcnJheSxmZT1jZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kLHVlPVtdLnRvTG9jYWxlU3RyaW5nLHdlPVtdLnNsaWNlLGRlPSEheWUmJmhlKChmdW5jdGlvbigpe3VlLmNhbGwobmV3IHllKDEpKX0pKTtmZSgidG9Mb2NhbGVTdHJpbmciLChmdW5jdGlvbigpe3JldHVybiB1ZS5hcHBseShkZT93ZS5jYWxsKERlKHRoaXMpKTpEZSh0aGlzKSxhcmd1bWVudHMpfSksaGUoKGZ1bmN0aW9uKCl7cmV0dXJuWzEsMl0udG9Mb2NhbGVTdHJpbmcoKSE9bmV3IHllKFsxLDJdKS50b0xvY2FsZVN0cmluZygpfSkpfHwhaGUoKGZ1bmN0aW9uKCl7eWUucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpKTt2YXIgRmU9cFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxsZT1nLEdlPXIuVWludDhBcnJheSxSZT1HZSYmR2UucHJvdG90eXBlfHx7fSxVZT1bXS50b1N0cmluZyxrZT1bXS5qb2luO2xlKChmdW5jdGlvbigpe1VlLmNhbGwoe30pfSkpJiYoVWU9ZnVuY3Rpb24oKXtyZXR1cm4ga2UuY2FsbCh0aGlzKX0pO3ZhciBTZT1SZS50b1N0cmluZyE9VWU7RmUoInRvU3RyaW5nIixVZSxTZSk7dmFyIE5lPVNFLmZvckVhY2gsTWU9bHQoImZvckVhY2giKT9bXS5mb3JFYWNoOmZ1bmN0aW9uKEEpe3JldHVybiBOZSh0aGlzLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSxZZT1yLEhlPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfSxwZT1NZSxKZT1KO2Zvcih2YXIgTGUgaW4gSGUpe3ZhciB2ZT1ZZVtMZV0sS2U9dmUmJnZlLnByb3RvdHlwZTtpZihLZSYmS2UuZm9yRWFjaCE9PXBlKXRyeXtKZShLZSwiZm9yRWFjaCIscGUpfWNhdGNoKHREKXtLZS5mb3JFYWNoPXBlfX12YXIgbWU9cyx4ZT1nLHFlPVBBLGJlPXlJLFRlPVpnLE9lPWosV2U9RSxaZT1PYmplY3QuYXNzaWduLGplPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxQZT0hWmV8fHhlKChmdW5jdGlvbigpe2lmKG1lJiYxIT09WmUoe2I6MX0sWmUoamUoe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2plKHRoaXMsImIiLHt2YWx1ZTozLGVudW1lcmFibGU6ITF9KX19KSx7YjoyfSkpLmIpcmV0dXJuITA7dmFyIEE9e30sZz17fSxJPVN5bWJvbCgpLEI9ImFiY2RlZmdoaWprbG1ub3BxcnN0IjtyZXR1cm4gQVtJXT03LEIuc3BsaXQoIiIpLmZvckVhY2goKGZ1bmN0aW9uKEEpe2dbQV09QX0pKSw3IT1aZSh7fSxBKVtJXXx8cWUoWmUoe30sZykpLmpvaW4oIiIpIT1CfSkpP2Z1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPU9lKEEpLEI9YXJndW1lbnRzLmxlbmd0aCxRPTEsQz1iZS5mLEU9VGUuZjtCPlE7KWZvcih2YXIgaSx0PVdlKGFyZ3VtZW50c1tRKytdKSxlPUM/cWUodCkuY29uY2F0KEModCkpOnFlKHQpLG89ZS5sZW5ndGgsbj0wO28+bjspaT1lW24rK10sbWUmJiFFLmNhbGwodCxpKXx8KElbaV09dFtpXSk7cmV0dXJuIEl9OlplLFhlPVBlO09JKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6T2JqZWN0LmFzc2lnbiE9PVhlfSx7YXNzaWduOlhlfSk7dmFyIFZlPVIsemU9YyxfZT1ZLCRlPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1WZShnKTtCIGluIEE/emUuZihBLEIsX2UoMCxJKSk6QVtCXT1JfSxBbz1nLGdvPW9BLElvPUZBKCJzcGVjaWVzIiksQm89ZnVuY3Rpb24oQSl7cmV0dXJuIGdvPj01MXx8IUFvKChmdW5jdGlvbigpe3ZhciBnPVtdO3JldHVybihnLmNvbnN0cnVjdG9yPXt9KVtJb109ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09Z1tBXShCb29sZWFuKS5mb299KSl9LFFvPU9JLENvPWgsRW89eUUsaW89SEEsdG89U0EsZW89byxvbz0kZSxubz1GQSxybz1Cbygic2xpY2UiKSxhbz1ubygic3BlY2llcyIpLHNvPVtdLnNsaWNlLGNvPU1hdGgubWF4O2Z1bmN0aW9uIGhvKEEsZyl7aWYoIShBIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24geW8oQSxnKXtmb3IodmFyIEk9MDtJPGcubGVuZ3RoO0krKyl7dmFyIEI9Z1tJXTtCLmVudW1lcmFibGU9Qi5lbnVtZXJhYmxlfHwhMSxCLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gQiYmKEIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLEdvKEIua2V5KSxCKX19ZnVuY3Rpb24gRG8oQSxnLEkpe3JldHVybiBnJiZ5byhBLnByb3RvdHlwZSxnKSxJJiZ5byhBLEkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLEF9ZnVuY3Rpb24gZm8oQSxnLEkpe3JldHVybihnPUdvKGcpKWluIEE/T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsZyx7dmFsdWU6SSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOkFbZ109SSxBfWZ1bmN0aW9uIHVvKEEsZyl7cmV0dXJuIGZ1bmN0aW9uKEEpe2lmKEFycmF5LmlzQXJyYXkoQSkpcmV0dXJuIEF9KEEpfHxmdW5jdGlvbihBLGcpe3ZhciBJPW51bGw9PUE/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmQVtTeW1ib2wuaXRlcmF0b3JdfHxBWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9SSl7dmFyIEIsUSxDLEUsaT1bXSx0PSEwLGU9ITE7dHJ5e2lmKEM9KEk9SS5jYWxsKEEpKS5uZXh0LDA9PT1nKXtpZihPYmplY3QoSSkhPT1JKXJldHVybjt0PSExfWVsc2UgZm9yKDshKHQ9KEI9Qy5jYWxsKEkpKS5kb25lKSYmKGkucHVzaChCLnZhbHVlKSxpLmxlbmd0aCE9PWcpO3Q9ITApO31jYXRjaChvKXtlPSEwLFE9b31maW5hbGx5e3RyeXtpZighdCYmbnVsbCE9SS5yZXR1cm4mJihFPUkucmV0dXJuKCksT2JqZWN0KEUpIT09RSkpcmV0dXJufWZpbmFsbHl7aWYoZSl0aHJvdyBRfX1yZXR1cm4gaX19KEEsZyl8fEZvKEEsZyl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB3byhBKXtyZXR1cm4gZnVuY3Rpb24oQSl7aWYoQXJyYXkuaXNBcnJheShBKSlyZXR1cm4gbG8oQSl9KEEpfHxmdW5jdGlvbihBKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9QVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1BWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oQSl9KEEpfHxGbyhBKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBGbyhBLGcpe2lmKEEpe2lmKCJzdHJpbmciPT10eXBlb2YgQSlyZXR1cm4gbG8oQSxnKTt2YXIgST1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1JJiZBLmNvbnN0cnVjdG9yJiYoST1BLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09SXx8IlNldCI9PT1JP0FycmF5LmZyb20oQSk6IkFyZ3VtZW50cyI9PT1JfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChJKT9sbyhBLGcpOnZvaWQgMH19ZnVuY3Rpb24gbG8oQSxnKXsobnVsbD09Z3x8Zz5BLmxlbmd0aCkmJihnPUEubGVuZ3RoKTtmb3IodmFyIEk9MCxCPW5ldyBBcnJheShnKTtJPGc7SSsrKUJbSV09QVtJXTtyZXR1cm4gQn1mdW5jdGlvbiBHbyhBKXt2YXIgZz1mdW5jdGlvbihBLGcpe2lmKCJvYmplY3QiIT10eXBlb2YgQXx8bnVsbD09PUEpcmV0dXJuIEE7dmFyIEk9QVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PUkpe3ZhciBCPUkuY2FsbChBLGd8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXJldHVybiBCO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09Zz9TdHJpbmc6TnVtYmVyKShBKX0oQSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBnP2c6U3RyaW5nKGcpfVFvKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IXJvfSx7c2xpY2U6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQz1lbyh0aGlzKSxFPXRvKEMubGVuZ3RoKSxpPWlvKEEsRSksdD1pbyh2b2lkIDA9PT1nP0U6ZyxFKTtpZihFbyhDKSYmKCJmdW5jdGlvbiIhPXR5cGVvZihJPUMuY29uc3RydWN0b3IpfHxJIT09QXJyYXkmJiFFbyhJLnByb3RvdHlwZSk/Q28oSSkmJm51bGw9PT0oST1JW2FvXSkmJihJPXZvaWQgMCk6ST12b2lkIDAsST09PUFycmF5fHx2b2lkIDA9PT1JKSlyZXR1cm4gc28uY2FsbChDLGksdCk7Zm9yKEI9bmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoY28odC1pLDApKSxRPTA7aTx0O2krKyxRKyspaSBpbiBDJiZvbyhCLFEsQ1tpXSk7cmV0dXJuIEIubGVuZ3RoPVEsQn19KTt2YXIgUm89InZpZGVvIixVbz0iYXVkaW8iLGtvPSJtZXRhZGF0YSIsU289ImF2YyIsTm89ImhldmMiLE1vPSJ2dmNDIixZbz0iYWFjIixIbz0iZzcxMTBhIixwbz0iZzcxMTBtIixKbz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpLGZvKHRoaXMsImlkIiwxKSxmbyh0aGlzLCJ0eXBlIixSbyksZm8odGhpcywiY29kZWNUeXBlIixTbyksZm8odGhpcywicGlkIiwtMSksZm8odGhpcywiaHZjQyIsdm9pZCAwKSxmbyh0aGlzLCJjb2RlYyIsIiIpLGZvKHRoaXMsInRpbWVzY2FsZSIsMCksZm8odGhpcywiZm9ybWF0VGltZXNjYWxlIiwwKSxmbyh0aGlzLCJzZXF1ZW5jZU51bWJlciIsMCksZm8odGhpcywiYmFzZU1lZGlhRGVjb2RlVGltZSIsMCksZm8odGhpcywiYmFzZUR0cyIsMCksZm8odGhpcywiZHVyYXRpb24iLDApLGZvKHRoaXMsIndhcm5pbmdzIixbXSksZm8odGhpcywic2FtcGxlcyIsW10pLGZvKHRoaXMsInBwcyIsW10pLGZvKHRoaXMsInNwcyIsW10pLGZvKHRoaXMsInZwcyIsW10pLGZvKHRoaXMsImZwc051bSIsMCksZm8odGhpcywiZnBzRGVuIiwwKSxmbyh0aGlzLCJzYXJSYXRpbyIsW10pLGZvKHRoaXMsIndpZHRoIiwwKSxmbyh0aGlzLCJoZWlnaHQiLDApLGZvKHRoaXMsIm5hbFVuaXRTaXplIiw0KSxmbyh0aGlzLCJwcmVzZW50IiwhMSksZm8odGhpcywiaXNWaWRlb0VuY3J5cHRpb24iLCExKSxmbyh0aGlzLCJpc0F1ZGlvRW5jcnlwdGlvbiIsITEpLGZvKHRoaXMsImlzVmlkZW8iLCEwKSxmbyh0aGlzLCJraWQiLG51bGwpLGZvKHRoaXMsInBzc2giLG51bGwpLGZvKHRoaXMsImV4dCIsdm9pZCAwKX1yZXR1cm4gRG8oQSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj10aGlzLndpZHRoPXRoaXMuaGVpZ2h0PXRoaXMuZnBzRGVuPXRoaXMuZnBzTnVtPXRoaXMuZHVyYXRpb249dGhpcy5iYXNlTWVkaWFEZWNvZGVUaW1lPXRoaXMudGltZXNjYWxlPTAsdGhpcy5jb2RlYz0iIix0aGlzLnByZXNlbnQ9ITEsdGhpcy5waWQ9LTEsdGhpcy5wcHM9W10sdGhpcy5zcHM9W10sdGhpcy52cHM9W10sdGhpcy5zYXJSYXRpbz1bXSx0aGlzLnNhbXBsZXM9W10sdGhpcy53YXJuaW5ncz1bXSx0aGlzLmh2Y0M9bnVsbH19LHtrZXk6ImV4aXN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhKHRoaXMucHBzLmxlbmd0aCYmdGhpcy5zcHMubGVuZ3RoJiZ0aGlzLmNvZGVjKX19LHtrZXk6Imhhc1NhbXBsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuc2FtcGxlcy5sZW5ndGh9fSx7a2V5OiJpc0VuY3J5cHRpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmlkZW9FbmNyeXB0aW9ufX1dKSxBfSgpLExvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2hvKHRoaXMsQSksZm8odGhpcywiaWQiLDIpLGZvKHRoaXMsInR5cGUiLFVvKSxmbyh0aGlzLCJjb2RlY1R5cGUiLFlvKSxmbyh0aGlzLCJwaWQiLC0xKSxmbyh0aGlzLCJjb2RlYyIsIiIpLGZvKHRoaXMsInNlcXVlbmNlTnVtYmVyIiwwKSxmbyh0aGlzLCJzYW1wbGVEdXJhdGlvbiIsMCksZm8odGhpcywidGltZXNjYWxlIiwwKSxmbyh0aGlzLCJmb3JtYXRUaW1lc2NhbGUiLDApLGZvKHRoaXMsImJhc2VNZWRpYURlY29kZVRpbWUiLDApLGZvKHRoaXMsImR1cmF0aW9uIiwwKSxmbyh0aGlzLCJ3YXJuaW5ncyIsW10pLGZvKHRoaXMsInNhbXBsZXMiLFtdKSxmbyh0aGlzLCJiYXNlRHRzIiwwKSxmbyh0aGlzLCJzYW1wbGVTaXplIiwxNiksZm8odGhpcywic2FtcGxlUmF0ZSIsMCksZm8odGhpcywiY2hhbm5lbENvdW50IiwwKSxmbyh0aGlzLCJvYmplY3RUeXBlIiwwKSxmbyh0aGlzLCJzYW1wbGVSYXRlSW5kZXgiLDApLGZvKHRoaXMsImNvbmZpZyIsW10pLGZvKHRoaXMsInByZXNlbnQiLCExKSxmbyh0aGlzLCJpc1ZpZGVvRW5jcnlwdGlvbiIsITEpLGZvKHRoaXMsImlzQXVkaW9FbmNyeXB0aW9uIiwhMSksZm8odGhpcywia2lkIixudWxsKSxmbyh0aGlzLCJleHQiLHZvaWQgMCl9cmV0dXJuIERvKEEsW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2VxdWVuY2VOdW1iZXI9MCx0aGlzLnRpbWVzY2FsZT0wLHRoaXMuc2FtcGxlRHVyYXRpb249MCx0aGlzLnNhbXBsZVJhdGU9MCx0aGlzLmNoYW5uZWxDb3VudD0wLHRoaXMuYmFzZU1lZGlhRGVjb2RlVGltZT0wLHRoaXMucHJlc2VudD0hMSx0aGlzLnBpZD0tMSx0aGlzLmNvZGVjPSIiLHRoaXMuc2FtcGxlcz1bXSx0aGlzLmNvbmZpZz1bXSx0aGlzLndhcm5pbmdzPVtdfX0se2tleToiZXhpc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5zYW1wbGVSYXRlJiZ0aGlzLmNoYW5uZWxDb3VudCYmdGhpcy5jb2RlYyYmdGhpcy5jb2RlY1R5cGU9PT1Zbyl9fSx7a2V5OiJoYXNTYW1wbGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnNhbXBsZXMubGVuZ3RofX0se2tleToiaXNFbmNyeXB0aW9uIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0F1ZGlvRW5jcnlwdGlvbn19XSksQX0oKSx2bz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyxJLEIpe2hvKHRoaXMsQSksZm8odGhpcywiZmxhZyIse30pLGZvKHRoaXMsImtleWZyYW1lIiwhMSksZm8odGhpcywiZ29wSWQiLDApLGZvKHRoaXMsImR1cmF0aW9uIiwwKSxmbyh0aGlzLCJzaXplIiwwKSxmbyh0aGlzLCJ1bml0cyIsW10pLGZvKHRoaXMsImNocm9tYUZvcm1hdCIsNDIwKSx0aGlzLm9yaWdpblB0cz10aGlzLnB0cz1nLHRoaXMub3JpZ2luRHRzPXRoaXMuZHRzPUksQiYmKHRoaXMudW5pdHM9Qil9cmV0dXJuIERvKEEsW3trZXk6ImN0cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHRzLXRoaXMuZHRzfX0se2tleToic2V0VG9LZXlmcmFtZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmtleWZyYW1lPSEwLHRoaXMuZmxhZy5kZXBlbmRzT249Mix0aGlzLmZsYWcuaXNOb25TeW5jU2FtcGxlPTB9fV0pLEF9KCksS289RG8oKGZ1bmN0aW9uIEEoZyxJLEIsUSl7aG8odGhpcyxBKSxmbyh0aGlzLCJkdXJhdGlvbiIsMTAyNCksZm8odGhpcywiZmxhZyIse2RlcGVuZHNPbjoyLGlzTm9uU3luY1NhbXBsZTowfSksZm8odGhpcywia2V5ZnJhbWUiLCEwKSx0aGlzLm9yaWdpblB0cz10aGlzLnB0cz10aGlzLmR0cz1nLHRoaXMuZGF0YT1JLHRoaXMuc2l6ZT1JLmJ5dGVMZW5ndGgsdGhpcy5zYW1wbGVPZmZzZXQ9USxCJiYodGhpcy5kdXJhdGlvbj1CKX0pKSxtbz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpLGZvKHRoaXMsImlkIiwzKSxmbyh0aGlzLCJ0eXBlIixrbyksZm8odGhpcywidGltZXNjYWxlIiwwKSxmbyh0aGlzLCJmbHZTY3JpcHRTYW1wbGVzIixbXSksZm8odGhpcywic2VpU2FtcGxlcyIsW10pfXJldHVybiBEbyhBLFt7a2V5OiJleGlzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLmZsdlNjcmlwdFNhbXBsZXMubGVuZ3RoJiYhdGhpcy5zZWlTYW1wbGVzLmxlbmd0aHx8IXRoaXMudGltZXNjYWxlKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudGltZXNjYWxlPTAsdGhpcy5mbHZTY3JpcHRTYW1wbGVzPVtdLHRoaXMuc2VpU2FtcGxlcz1bXX19LHtrZXk6Imhhc1NhbXBsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLmZsdlNjcmlwdFNhbXBsZXMubGVuZ3RoJiYhdGhpcy5zZWlTYW1wbGVzLmxlbmd0aCl9fV0pLEF9KCkseG89InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cscW89eG8mJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb2NhbGVMb3dlckNhc2UoKSxibz14byYmcW8uaW5jbHVkZXMoImZpcmVmb3giKSxUbz14byYmcW8uaW5jbHVkZXMoImFuZHJvaWQiKSxPbz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpfXJldHVybiBEbyhBLG51bGwsW3trZXk6ImdldFJhdGVJbmRleEJ5UmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuRlJFUS5pbmRleE9mKGcpfX0se2tleToicGFyc2VBRFRTIix2YWx1ZTpmdW5jdGlvbihnLEkpe2Zvcih2YXIgQj1nLmxlbmd0aCxRPTA7USsyPEImJigyNTUhPT1nW1FdfHwyNDAhPSgyNDYmZ1tRKzFdKSk7KVErKztpZighKFE+PUIpKXt2YXIgQz1RLEU9W10saT0oNjAmZ1tRKzJdKT4+PjIsdD1BLkZSRVFbaV07aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNhbXBsaW5nIGluZGV4OiAiLmNvbmNhdChpKSk7Zm9yKHZhciBlLG8sbj0xKygoMTkyJmdbUSsyXSk+Pj42KSxyPSgxJmdbUSsyXSk8PDJ8KDE5MiZnW1ErM10pPj4+NixhPUEuX2dldENvbmZpZyhpLHIsbikscz1hLmNvbmZpZyxjPWEuY29kZWMsaD0wLHk9QS5nZXRGcmFtZUR1cmF0aW9uKHQpO1ErNzxCOylpZigyNTU9PT1nW1FdJiYyNDA9PSgyNDYmZ1tRKzFdKSl7aWYoQi1RPChvPSgzJmdbUSszXSk8PDExfGdbUSs0XTw8M3woMjI0JmdbUSs1XSk+PjUpKWJyZWFrO2U9MiooMSZ+Z1tRKzFdKSxFLnB1c2goe3B0czpJK2gqeSxkYXRhOmcuc3ViYXJyYXkoUSs3K2UsUStvKX0pLGgrKyxRKz1vfWVsc2UgUSsrO3JldHVybntza2lwOkMscmVtYWluaW5nOlE+PUI/dm9pZCAwOmcuc3ViYXJyYXkoUSksZnJhbWVzOkUsc2FtcGxpbmdGcmVxdWVuY3lJbmRleDppLHNhbXBsZVJhdGU6dCxvYmplY3RUeXBlOm4sY2hhbm5lbENvdW50OnIsY29kZWM6Yyxjb25maWc6cyxvcmlnaW5Db2RlYzoibXA0YS40MC4iLmNvbmNhdChuKX19fX0se2tleToicGFyc2VBdWRpb1NwZWNpZmljQ29uZmlnIix2YWx1ZTpmdW5jdGlvbihnKXtpZihnLmxlbmd0aCl7dmFyIEk9Z1swXT4+PjMsQj0oNyZnWzBdKTw8MXxnWzFdPj4+NyxRPSgxMjAmZ1sxXSk+Pj4zLEM9QS5GUkVRW0JdO2lmKEMpe3ZhciBFPUEuX2dldENvbmZpZyhCLFEsSSk7cmV0dXJue3NhbXBsaW5nRnJlcXVlbmN5SW5kZXg6QixzYW1wbGVSYXRlOkMsb2JqZWN0VHlwZTpJLGNoYW5uZWxDb3VudDpRLGNvbmZpZzpFLmNvbmZpZyxjb2RlYzpFLmNvZGVjLG9yaWdpbkNvZGVjOiJtcDRhLjQwLiIuY29uY2F0KEkpfX19fX0se2tleToiZ2V0RnJhbWVEdXJhdGlvbiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIDEwMjQqKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo5ZTQpL0F9fSx7a2V5OiJfZ2V0Q29uZmlnIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxDPVtdO3JldHVybiBibz9BPj02PyhCPTUsUT1BLTMpOihCPTIsUT1BKTpUbz8oQj0yLFE9QSk6KEI9Mj09PUl8fDU9PT1JP0k6NSxRPUEsQT49Nj9RPUEtMzoxPT09ZyYmKEI9MixRPUEpKSxDWzBdPUI8PDMsQ1swXXw9KDE0JkEpPj4xLENbMV09KDEmQSk8PDcsQ1sxXXw9Zzw8Myw1PT09QiYmKENbMV18PSgxNCZRKT4+MSxDWzJdPSgxJlEpPDw3LENbMl18PTgsQ1szXT0wKSx7Y29uZmlnOkMsY29kZWM6Im1wNGEuNDAuIi5jb25jYXQoQil9fX0se2tleToiZ2V0U2lsZW50RnJhbWUiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7aWYoIm1wNGEuNDAuMiI9PT1BKXtpZigxPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDM1LDEyOF0pO2lmKDI9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMzMsMCw3MywxNDQsMiwyNSwwLDM1LDEyOF0pO2lmKDM9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxNDJdKTtpZig0PT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDMyLDEzMiwxLDM4LDY0LDgsMTAwLDAsMTI4LDQ0LDEyOCw4LDIsNTZdKTtpZig1PT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDMyLDEzMiwxLDM4LDY0LDgsMTAwLDAsMTMwLDQ4LDQsMTUzLDAsMzMsMTQ0LDIsNTZdKTtpZig2PT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDMyLDEzMiwxLDM4LDY0LDgsMTAwLDAsMTMwLDQ4LDQsMTUzLDAsMzMsMTQ0LDIsMCwxNzgsMCwzMiw4LDIyNF0pfWVsc2V7aWYoMT09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFsxLDY0LDM0LDEyOCwxNjMsNzgsMjMwLDEyOCwxODYsOCwwLDAsMCwyOCw2LDI0MSwxOTMsMTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTRdKTtpZigyPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzEsNjQsMzQsMTI4LDE2Myw5NCwyMzAsMTI4LDE4Niw4LDAsMCwwLDAsMTQ5LDAsNiwyNDEsMTYxLDEwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDk0XSk7aWYoMz09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFsxLDY0LDM0LDEyOCwxNjMsOTQsMjMwLDEyOCwxODYsOCwwLDAsMCwwLDE0OSwwLDYsMjQxLDE2MSwxMCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5NF0pfX19XSksQX0oKTtmdW5jdGlvbiBXbygpe2Zvcih2YXIgQT1hcmd1bWVudHMubGVuZ3RoLGc9bmV3IEFycmF5KEEpLEk9MDtJPEE7SSsrKWdbSV09YXJndW1lbnRzW0ldO2c9Zy5maWx0ZXIoQm9vbGVhbik7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoZy5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEErZy5ieXRlTGVuZ3RofSksMCkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChBLFEpLFErPUEuYnl0ZUxlbmd0aH0pKSxCfWZvKE9vLCJGUkVRIixbOTZlMyw4ODIwMCw2NGUzLDQ4ZTMsNDQxMDAsMzJlMywyNGUzLDIyMDUwLDE2ZTMsMTJlMywxMTAyNSw4ZTMsNzM1MF0pO3ZhciBabz1NYXRoLnBvdygyLDMyKTtmdW5jdGlvbiBqbyhBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtyZXR1cm4oQVtnXTw8OCkrKEFbZysxXXx8MCl9ZnVuY3Rpb24gUG8oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuKEFbZ108PDI0Pj4+MCkrKEFbZysxXTw8MTYpKyhBW2crMl08PDgpKyhBW2crM118fDApfWZ1bmN0aW9uIFhvKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybiBuZXcgRGF0YVZpZXcoQS5idWZmZXIsQS5ieXRlT2Zmc2V0LEEuYnl0ZUxlbmd0aCkuZ2V0SW50MzIoZyl9ZnVuY3Rpb24gVm8oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuIFBvKEEsZykqWm8rUG8oQSxnKzQpfWZ1bmN0aW9uIHpvKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLEk9bmV3IERhdGFWaWV3KEEuYnVmZmVyLEEuYnl0ZU9mZnNldCxBLmJ5dGVMZW5ndGgpO3JldHVybiBJLmdldFVpbnQzMihnKTw8MzJ8SS5nZXRVaW50MzIoZys0KX1mdW5jdGlvbiBfbyhBKXt2YXIgZz0iIjtpZihBLmZvckVhY2goKGZ1bmN0aW9uKEEpe2crPWZ1bmN0aW9uKEEpe3JldHVybigiMCIrTnVtYmVyKEEpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpLnRvVXBwZXJDYXNlKCl9KEEpfSkpLGcubGVuZ3RoPD0zMilmb3IodmFyIEk9MzItZy5sZW5ndGgsQj0wO0I8STtCKyspZys9IjAiO3JldHVybiBnfWZ1bmN0aW9uICRvKEEpe2lmKCFBcnJheS5pc0FycmF5KEEpKXtmb3IodmFyIGc9W10sST0iIixCPTA7QjxBLmxlbmd0aDtCKyspQiUyJiYoST1BW0ItMV0rQVtCXSxnLnB1c2gocGFyc2VJbnQoSSwxNikpLEk9IiIpO3JldHVybiBnfXJldHVybiBBLm1hcCgoZnVuY3Rpb24oQSl7cmV0dXJuIHBhcnNlSW50KEEsMTYpfSkpfXZhciBBbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyl7aWYoaG8odGhpcyxBKSxmbyh0aGlzLCJfYnl0ZXNBdmFpbGFibGUiLHZvaWQgMCksZm8odGhpcywiX2JpdHNBdmFpbGFibGUiLDApLGZvKHRoaXMsIl93b3JkIiwwKSwhZyl0aHJvdyBuZXcgRXJyb3IoIkV4cEdvbG9tYiBkYXRhIHBhcmFtcyBpcyByZXF1aXJlZCIpO3RoaXMuX2RhdGE9Zyx0aGlzLl9ieXRlc0F2YWlsYWJsZT1nLmJ5dGVMZW5ndGgsdGhpcy5fYnl0ZXNBdmFpbGFibGUmJnRoaXMuX2xvYWRXb3JkKCl9cmV0dXJuIERvKEEsW3trZXk6Il9sb2FkV29yZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9kYXRhLmJ5dGVMZW5ndGgtdGhpcy5fYnl0ZXNBdmFpbGFibGUsZz1NYXRoLm1pbig0LHRoaXMuX2J5dGVzQXZhaWxhYmxlKTtpZigwPT09Zyl0aHJvdyBuZXcgRXJyb3IoIk5vIGJ5dGVzIGF2YWlsYWJsZSIpO3ZhciBJPW5ldyBVaW50OEFycmF5KDQpO0kuc2V0KHRoaXMuX2RhdGEuc3ViYXJyYXkoQSxBK2cpKSx0aGlzLl93b3JkPW5ldyBEYXRhVmlldyhJLmJ1ZmZlcikuZ2V0VWludDMyKDApLHRoaXMuX2JpdHNBdmFpbGFibGU9OCpnLHRoaXMuX2J5dGVzQXZhaWxhYmxlLT1nfX0se2tleToiYml0c1BvcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gOCp0aGlzLl9ieXRlc0F2YWlsYWJsZS10aGlzLl9iaXRzQXZhaWxhYmxlfX0se2tleToiYml0c0xlZnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDgqdGhpcy5fZGF0YS5sZW5ndGgtdGhpcy5iaXRzUG9zKCl9fSx7a2V5OiJieXRlQWxpZ25lZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuYml0c1BvcygpfHx0aGlzLmJpdHNQb3MoKSU4PT0wfX0se2tleToic2tpcEJpdHMiLHZhbHVlOmZ1bmN0aW9uKEEpe2lmKHRoaXMuX2JpdHNBdmFpbGFibGU+QSl0aGlzLl93b3JkPDw9QSx0aGlzLl9iaXRzQXZhaWxhYmxlLT1BO2Vsc2V7QS09dGhpcy5fYml0c0F2YWlsYWJsZTt2YXIgZz1NYXRoLmZsb29yKEEvOCk7QS09OCpnLHRoaXMuX2J5dGVzQXZhaWxhYmxlLT1nLHRoaXMuX2xvYWRXb3JkKCksdGhpcy5fd29yZDw8PUEsdGhpcy5fYml0c0F2YWlsYWJsZS09QX19fSx7a2V5OiJyZWFkQml0cyIsdmFsdWU6ZnVuY3Rpb24oQSl7aWYoQT4zMil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZWFkIG1vcmUgdGhhbiAzMiBiaXRzIik7dmFyIGc9TWF0aC5taW4odGhpcy5fYml0c0F2YWlsYWJsZSxBKSxJPXRoaXMuX3dvcmQ+Pj4zMi1nO3JldHVybiB0aGlzLl9iaXRzQXZhaWxhYmxlLT1nLHRoaXMuX2JpdHNBdmFpbGFibGU+MD90aGlzLl93b3JkPDw9Zzp0aGlzLl9ieXRlc0F2YWlsYWJsZT4wJiZ0aGlzLl9sb2FkV29yZCgpLChnPUEtZyk+MCYmdGhpcy5fYml0c0F2YWlsYWJsZT9JPDxnfHRoaXMucmVhZEJpdHMoZyk6SX19LHtrZXk6InNraXBMWiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQTtmb3IoQT0wO0E8dGhpcy5fYml0c0F2YWlsYWJsZTsrK0EpaWYoMCE9KHRoaXMuX3dvcmQmMjE0NzQ4MzY0OD4+PkEpKXJldHVybiB0aGlzLl93b3JkPDw9QSx0aGlzLl9iaXRzQXZhaWxhYmxlLT1BLEE7cmV0dXJuIHRoaXMuX2xvYWRXb3JkKCksQSt0aGlzLnNraXBMWigpfX0se2tleToic2tpcFVFRyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNraXBCaXRzKDErdGhpcy5za2lwTFooKSl9fSx7a2V5OiJyZWFkVUVHIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMuc2tpcExaKCk7cmV0dXJuIHRoaXMucmVhZEJpdHMoQSsxKS0xfX0se2tleToicmVhZEVHIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMucmVhZFVFRygpO3JldHVybiAxJkE/MStBPj4+MTotMSooQT4+PjEpfX0se2tleToicmVhZEJvb2wiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLnJlYWRCaXRzKDEpfX0se2tleToicmVhZFVCeXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRCaXRzKDgpfX0se2tleToic2tpcFNjYWxpbmdMaXN0Iix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9OCxJPTgsQj0wO0I8QTtCKyspMCE9PUkmJihJPShnK3RoaXMucmVhZEVHKCkrMjU2KSUyNTYpLGc9MD09PUk/ZzpJfX1dKSxBfSgpLGduPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnKXtobyh0aGlzLEEpLHRoaXMuX2J1ZmZlcj1nLHRoaXMuX29mZnNldD0wLHRoaXMuX2hlbGRCaXRzPTAsdGhpcy5fbnVtSGVsZEJpdHM9MH1yZXR1cm4gRG8oQSxbe2tleToicmVhZFVpbnQ4Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8OHx0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8MjR8dGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8MTZ8dGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8OHx0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQ4QXJyYXkiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMuX2J1ZmZlci5zbGljZSh0aGlzLl9vZmZzZXQsdGhpcy5fb2Zmc2V0K0EpO3JldHVybiB0aGlzLl9vZmZzZXQrPUEsZ319LHtrZXk6InN0cmVhbVJlYWQxQnl0ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGVsZEJpdHM9dGhpcy5yZWFkVWludDgoKSx0aGlzLl9udW1IZWxkQml0cz04fX0se2tleToic3RyZWFtUmVhZDJCeXRlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oZWxkQml0cz10aGlzLnJlYWRVaW50MTYoKSx0aGlzLl9udW1IZWxkQml0cz0xNn19LHtrZXk6ImV4dHJhY3RCaXRzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz10aGlzLl9oZWxkQml0cz4+dGhpcy5fbnVtSGVsZEJpdHMtQSYoMTw8QSktMTtyZXR1cm4gdGhpcy5fbnVtSGVsZEJpdHMtPUEsZ319XSksQX0oKSxJbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpfXJldHVybiBEbyhBLG51bGwsW3trZXk6InBhcnNlVlZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBnbihnKSxCPUkucmVhZFVpbnQ4KCk7SS5zdHJlYW1SZWFkMUJ5dGVzKCksSS5leHRyYWN0Qml0cyg1KTt2YXIgUSxDLEUsaSx0LGUsbyxuLHI9SS5leHRyYWN0Qml0cygyKSsxLGE9SS5leHRyYWN0Qml0cygxKSxzPXt9O2EmJihJLnN0cmVhbVJlYWQyQnl0ZXMoKSxpPUkuZXh0cmFjdEJpdHMoMiksdD1JLmV4dHJhY3RCaXRzKDMpLEM9SS5leHRyYWN0Qml0cygzKSxFPUkuZXh0cmFjdEJpdHMoMiksSS5leHRyYWN0Qml0cyg2KSxzPUEucGFyc2VWVkNQVExSZWNvcmQoSSxDKSxRPUkucmVhZFVpbnQxNigpLGU9SS5yZWFkVWludDE2KCksbz1JLnJlYWRVaW50MTYoKSxuPUkucmVhZFVpbnQxNigpKTtmb3IodmFyIGM9SS5yZWFkVWludDgoKSxoPVtdLHk9W10sRD1bXSxmPW51bGwsdT0wO3U8Yzt1Kyspe0kuc3RyZWFtUmVhZDFCeXRlcygpLEkuZXh0cmFjdEJpdHMoMSksSS5leHRyYWN0Qml0cygyKTt2YXIgdz1JLmV4dHJhY3RCaXRzKDUpLGQ9MTsxMyE9PXcmJjEyIT09dyYmKGQ9SS5yZWFkVWludDE2KCkpO2Zvcih2YXIgRj0wO0Y8ZDtGKyspe3ZhciBsPUkucmVhZFVpbnQxNigpO3N3aXRjaCh3KXtjYXNlIDE0OmgucHVzaChJLnJlYWRVaW50OEFycmF5KGwpKTticmVhaztjYXNlIDE1OnZhciBHPUkucmVhZFVpbnQ4QXJyYXkobCk7Znx8KGY9QS5wYXJzZVNQUyhBLnJlbW92ZUVQQihHKSkpLHkucHVzaChHKTticmVhaztjYXNlIDE2OkQucHVzaChJLnJlYWRVaW50OEFycmF5KGwpKX19fXJldHVybntkYXRhOmcsY29uZmlndXJhdGlvblZlcnNpb246Qixjb2RlYzoiYnZjMi4xLjYuTDkzLkIwIixuYWxVbml0U2l6ZTpyLHB0bFByZXNlbnRGbGFnOmEsb2xzSWR4OlEsbnVtU3VibGF5ZXJzOkMsY29uc3RhbnRGcmFtZVJhdGU6RSxjaHJvbWFGb3JtYXRJZGM6aSxiaXREZXB0aEx1bWFNaW51czg6dCxwdGxSZWNvcmQ6cyx3aWR0aDplLGhlaWdodDpvLHNhbXBsZVJhdGU6bixudW1PZkFycmF5czpjLHZwczpoLHNwczp5LHBwczpELHNwc1BhcnNlZDpmfX19LHtrZXk6InBhcnNlVlZDUFRMUmVjb3JkIix2YWx1ZTpmdW5jdGlvbihBLGcpe0Euc3RyZWFtUmVhZDJCeXRlcygpLEEuZXh0cmFjdEJpdHMoMik7dmFyIEk9QS5leHRyYWN0Qml0cyg2KSxCPUEuZXh0cmFjdEJpdHMoNyksUT1BLmV4dHJhY3RCaXRzKDEpLEM9QS5yZWFkVWludDgoKTtBLnN0cmVhbVJlYWQxQnl0ZXMoKTt2YXIgRT1BLmV4dHJhY3RCaXRzKDEpLGk9QS5leHRyYWN0Qml0cygxKSx0PW5ldyBVaW50OEFycmF5KEkpO2lmKEkpe2Zvcih2YXIgZT0wO2U8SS0xO2UrKyl7dmFyIG89QS5leHRyYWN0Qml0cyg2KTtBLnN0cmVhbVJlYWQxQnl0ZXMoKTt2YXIgbj1BLmV4dHJhY3RCaXRzKDIpO3RbZV09bzw8MnxufXRbSS0xXT1BLmV4dHJhY3RCaXRzKDYpfWVsc2UgQS5leHRyYWN0Qml0cyg2KTt2YXIgcj1bXTtpZihnPjEpe0Euc3RyZWFtUmVhZDFCeXRlcygpO2Zvcih2YXIgYT0wLHM9Zy0yO3M+PTA7LS1zKXthfD1BLmV4dHJhY3RCaXRzKDEpPDxzfWZvcih2YXIgYz1nO2M8PTgmJmc+MTsrK2MpQS5leHRyYWN0Qml0cygxKTtmb3IodmFyIGg9Zy0yO2g+PTA7LS1oKWEmMTw8aCYmKHJbaF09QS5yZWFkVWludDgoKSl9dmFyIHk9QS5yZWFkVWludDgoKSxEPVtdO2lmKHkpZm9yKHZhciBmPTA7Zjx5O2YrKylELnB1c2goQS5yZWFkVWludDMyKCkpO3JldHVybntnZW5lcmFsUHJvZmlsZUlkYzpCLGdlbmVyYWxUaWVyRmxhZzpRLGdlbmVyYWxMZXZlbElkYzpDLHB0bEZyYW1lT25seUNvbnN0cmFpbnRGbGFnOkUscHRsTXVsdGlsYXllckVuYWJsZWRGbGFnOmksZ2VuZXJhbENvbnN0cmFpbnRJbmZvOnQsc3ViTGF5ZXJMZXZlbElkYzpyLGdlbmVyYWxTdWJQcm9maWxlSWRjOkQscHRsTnVtU3ViUHJvZmlsZXM6eSxudW1CeXRlc0NvbnN0cmFpbnRJbmZvOkl9fX0se2tleToiZ2V0QXZjY05hbHMiLHZhbHVlOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1bXTtBLnBvc2l0aW9uPEEubGVuZ3RoLTQ7KXt2YXIgST1BLmRhdGF2aWV3LmdldEludDMyKEEuZGF0YXZpZXcucG9zaXRpb24pO2lmKCEoQS5sZW5ndGgtQS5wb3NpdGlvbj49SSkpYnJlYWs7dmFyIEI9QS5idWZmZXIuc2xpY2UoQS5wb3NpdGlvbixBLnBvc2l0aW9uKzQpO0Euc2tpcCg0KTt2YXIgUT1uZXcgVWludDhBcnJheShBLmJ1ZmZlci5zbGljZShBLnBvc2l0aW9uLEEucG9zaXRpb24rSSkpO0Euc2tpcChJKSxnLnB1c2goe2hlYWRlcjpCLGJvZHk6UX0pfXJldHVybiBnfX0se2tleToiYW5hbHlzZU5hbCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9KDI0OCZBLmJvZHlbMV0pPj4zO3N3aXRjaChBLnR5cGU9ZyxnKXtjYXNlIDIzOmNhc2UgMjQ6YnJlYWs7Y2FzZSA3OmNhc2UgODpBLmtleT0hMDticmVhaztjYXNlIDE0OkEudnBzPSEwO2JyZWFrO2Nhc2UgMTU6QS5zcHM9ITA7YnJlYWs7Y2FzZSAxNjpBLnBwcz0hMDticmVhaztjYXNlIDE3OkEuYXBzPSEwfX19LHtrZXk6InJlbW92ZUVQQiIsdmFsdWU6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuYnl0ZUxlbmd0aCxJPVtdLEI9MTtCPGctMjspMD09PUFbQl0mJjA9PT1BW0IrMV0mJjM9PT1BW0IrMl0/KEkucHVzaChCKzIpLEIrPTIpOkIrKztpZighSS5sZW5ndGgpcmV0dXJuIEE7dmFyIFE9Zy1JLmxlbmd0aCxDPW5ldyBVaW50OEFycmF5KFEpLEU9MDtmb3IoQj0wO0I8UTtFKyssQisrKUU9PT1JWzBdJiYoRSsrLEkuc2hpZnQoKSksQ1tCXT1BW0VdO3JldHVybiBDfX0se2tleToicGFyc2VWcHMiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToicGFyc2VTUFMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBBbihnKTtJLnJlYWRVQnl0ZSgpLEkucmVhZFVCeXRlKCksSS5za2lwQml0cyg0KTt2YXIgQj1JLnJlYWRCaXRzKDQpLFE9SS5yZWFkQml0cygzKSxDPUkucmVhZEJpdHMoMiksRT00MjA7Qzw9MyYmKEU9WzAsNDIwLDQyMiw0NDRdW0NdKSxJLnJlYWRCaXRzKDIpLEkucmVhZEJpdHMoMSk7dmFyIGk9QS5fcGFyc2VQcm9maWxlVGllckxldmVsKEksMSxRKTtyZXR1cm4gSS5yZWFkQml0cygxKSxJLnJlYWRCaXRzKDEpJiZJLnJlYWRCaXRzKDEpLHt3aWR0aDpJLnJlYWRVRUcoKSxoZWlnaHQ6SS5yZWFkVUVHKCksc3BzTWF4U3ViTGF5ZXJNaW51czE6USxzcHNWaWRlb1BhcmFtZXRlclNldElkOkIsY2hyb21hRm9ybWF0SWRjOkMsY2hyb21hRm9ybWF0OkUscHRsSW5mbzppfX19LHtrZXk6Il9wYXJzZVByb2ZpbGVUaWVyTGV2ZWwiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDPWcucmVhZEJpdHMoNyksRT1nLnJlYWRCaXRzKDEpLGk9Zy5yZWFkQml0cyg4KSx0PWcucmVhZEJpdHMoMSksZT1nLnJlYWRCaXRzKDEpO0kmJihRPUEuX3BhcnNlR2VuZXJhbENvbnN0cmFpbnRzSW5mbyhnKSk7Zm9yKHZhciBvPUItMSxuPVtdLHI9W10sYT1bXSxzPW87cz49MDstLXMpbltzXT1nLnJlYWRCaXRzKDEpO2Zvcig7IWcuYnl0ZUFsaWduZWQoKTspZy5yZWFkQml0cygxKTtmb3IodmFyIGM9bztjPj0wOy0tYyluW2NdJiYocltjXT1nLnJlYWRVQnl0ZSgpKTtpZihJKWZvcih2YXIgaD1nLnJlYWRVQnl0ZSgpLHk9MDt5PGg7eSsrKWFbeV09Zy5yZWFkQml0cygzMik7cmV0dXJue2dlbmVyYWxQcm9maWxlSWRjOkMsZ2VuZXJhbFRpZXJGbGFnOkUsZ2VuZXJhbExldmVsSWRjOmkscHRsRnJhbWVPbmx5Q29uc3RyYWludEZsYWc6dCxwdGxNdWx0aWxheWVyRW5hYmxlZEZsYWc6ZSxwdGxTdWJsYXllckxldmVsUHJlc2VudEZsYWdzOm4scHRsU3VibGF5ZXJMZXZlbElkY3M6cixwdGxTdWJQcm9maWxlSWRjczphLGdjaUluZm86UX19fSx7a2V5OiJfcGFyc2VHZW5lcmFsQ29uc3RyYWludHNJbmZvIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BLnJlYWRCaXRzKDEpO2lmKGcpe0Euc2tpcEJpdHMoNzEpO3ZhciBJPUEucmVhZEJpdHMoOCk7SSYmQS5za2lwQml0cyhJKX12YXIgQj04LUEuYml0c1BvcygpJTg7cmV0dXJuIEEuc2tpcEJpdHMoQikse2djaVByZXNlbnRGbGFnOmd9fX1dKSxBfSgpLEJuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2hvKHRoaXMsQSl9cmV0dXJuIERvKEEsbnVsbCxbe2tleToiZmluZEJveCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPVtdO2lmKCFnKXJldHVybiBRO2Zvcih2YXIgQz0wLEU9IiIsaT0wO2cubGVuZ3RoPjc7KXtpZihDPVBvKGcpLEU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSksaT04LDE9PT1DPyhDPVZvKGcsOCksaSs9OCk6Q3x8KEM9Zy5sZW5ndGgpLCFJWzBdfHxFPT09SVswXSl7dmFyIHQ9Zy5zdWJhcnJheSgwLEMpO2lmKCEoSS5sZW5ndGg8MikpcmV0dXJuIEEuZmluZEJveCh0LnN1YmFycmF5KGkpLEkuc2xpY2UoMSksQitpKTtRLnB1c2goe3N0YXJ0OkIsc2l6ZTpDLGhlYWRlclNpemU6aSx0eXBlOkUsZGF0YTp0fSl9Qis9QyxnPWcuc3ViYXJyYXkoQyl9cmV0dXJuIFF9fSx7a2V5OiJ0ZmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtBLnRyYWNrSWQ9UG8oZyk7dmFyIEk9NCxCPTEmQS5mbGFncyxRPTImQS5mbGFncyxDPTgmQS5mbGFncyxFPTE2JkEuZmxhZ3MsaT0zMiZBLmZsYWdzO0ImJihJKz00LEEuYmFzZURhdGFPZmZzZXQ9UG8oZyxJKSxJKz00KSxRJiYoQS5zYW1wbGVEZXNjcmlwdGlvbkluZGV4PVBvKGcsSSksSSs9NCksQyYmKEEuZGVmYXVsdFNhbXBsZUR1cmF0aW9uPVBvKGcsSSksSSs9NCksRSYmKEEuZGVmYXVsdFNhbXBsZVNpemU9UG8oZyxJKSxJKz00KSxpJiYoQS5kZWZhdWx0U2FtcGxlRmxhZ3M9UG8oZyxJKSl9KSl9fSx7a2V5OiJzaWR4Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wO0EucmVmZXJlbmNlX0lEPVBvKGcsSSksSSs9NCxBLnRpbWVzY2FsZT1QbyhnLEkpLEkrPTQsMD09PUEudmVyc2lvbj8oQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1QbyhnLEkpLEkrPTQsQS5maXJzdF9vZmZzZXQ9UG8oZyxJKSxJKz00KTooQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1WbyhnLEkpLEkrPTgsQS5maXJzdF9vZmZzZXQ9Vm8oZyxJKSxJKz04KSxJKz0yLEEucmVmZXJlbmNlcz1bXTt2YXIgQj1qbyhnLEkpO0krPTI7Zm9yKHZhciBRPTA7UTxCO1ErKyl7dmFyIEM9e307QS5yZWZlcmVuY2VzLnB1c2goQyk7dmFyIEU9UG8oZyxJKTtJKz00LEMucmVmZXJlbmNlX3R5cGU9RT4+MzEmMSxDLnJlZmVyZW5jZWRfc2l6ZT0yMTQ3NDgzNjQ3JkUsQy5zdWJzZWdtZW50X2R1cmF0aW9uPVBvKGcsSSksRT1QbyhnLEkrPTQpLEkrPTQsQy5zdGFydHNfd2l0aF9TQVA9RT4+MzEmMSxDLlNBUF90eXBlPUU+PjI4JjcsQy5TQVBfZGVsdGFfdGltZT0yNjg0MzU0NTUmRX19KSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubXZoZD1BLm12aGQoQS5maW5kQm94KEksWyJtdmhkIl0sQilbMF0pLGcudHJhaz1BLmZpbmRCb3goSSxbInRyYWsiXSxCKS5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSksZy5wc3NoPUEucHNzaChBLmZpbmRCb3goSSxbInBzc2giXSxCKVswXSl9KSl9fSx7a2V5OiJtdmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudGltZXNjYWxlPVBvKGcsMTYpLEEuZHVyYXRpb249Vm8oZywyMCksSSs9MjgpOihBLnRpbWVzY2FsZT1QbyhnLDgpLEEuZHVyYXRpb249UG8oZywxMiksSSs9MTYpLEEubmV4dFRyYWNrSWQ9UG8oZyxJKzc2KX0pKX19LHtrZXk6InRyYWsiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7Zy50a2hkPUEudGtoZChBLmZpbmRCb3goSSxbInRraGQiXSxCKVswXSksZy5tZGlhPUEubWRpYShBLmZpbmRCb3goSSxbIm1kaWEiXSxCKVswXSksZy5lZHRzPUEuZWR0cyhBLmZpbmRCb3goSSxbImVkdHMiXSxCKVswXSl9KSl9fSx7a2V5OiJ0a2hkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudHJhY2tJZD1QbyhnLDE2KSxBLmR1cmF0aW9uPVZvKGcsMjQpLEkrPTMyKTooQS50cmFja0lkPVBvKGcsOCksQS5kdXJhdGlvbj1QbyhnLDE2KSxJKz0yMCksQS53aWR0aD1QbyhnLEkrNTIpLEEuaGVpZ2h0PVBvKGcsSSs1Nil9KSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubWRoZD1BLm1kaGQoQS5maW5kQm94KEksWyJtZGhkIl0sQilbMF0pLGcuaGRscj1BLmhkbHIoQS5maW5kQm94KEksWyJoZGxyIl0sQilbMF0pLGcubWluZj1BLm1pbmYoQS5maW5kQm94KEksWyJtaW5mIl0sQilbMF0pfSkpfX0se2tleToiZWR0cyIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLmVsc3Q9QS5lbHN0KEEuZmluZEJveChJLFsiZWxzdCJdLEIpWzBdKX0pKX19LHtrZXk6ImVsc3QiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcsSSl7QS5lbnRyaWVzPVtdLEEuZW50cmllc0RhdGE9Zzt2YXIgQj0wLFE9UG8oZyxCKTtCKz00O2Zvcih2YXIgQz0wO0M8UTtDKyspe3ZhciBFPXt9O0EuZW50cmllcy5wdXNoKEUpLDE9PT1BLnZlcnNpb24/KEUuc2VnbWVudF9kdXJhdGlvbj1WbyhnLEIpLEIrPTgsRS5tZWRpYV90aW1lPXpvKGcsQiksQis9OCk6KEUuc2VnbWVudF9kdXJhdGlvbj1QbyhnLEIpLEIrPTQsRS5tZWRpYV90aW1lPVhvKGcsQiksQis9NCksRS5tZWRpYV9yYXRlX2ludGVnZXI9am8oZyxCKSxCKz0yLEUubWVkaWFfcmF0ZV9mcmFjdGlvbj1qbyhnLEkpLEIrPTJ9fSkpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9MDsxPT09QS52ZXJzaW9uPyhBLnRpbWVzY2FsZT1QbyhnLDE2KSxBLmR1cmF0aW9uPVZvKGcsMjApLEkrPTI4KTooQS50aW1lc2NhbGU9UG8oZyw4KSxBLmR1cmF0aW9uPVBvKGcsMTIpLEkrPTE2KTt2YXIgQj1qbyhnLEkpO0EubGFuZ3VhZ2U9U3RyaW5nLmZyb21DaGFyQ29kZSg5NisoQj4+MTAmMzEpLDk2KyhCPj41JjMxKSw5NisoMzEmQikpfSkpfX0se2tleToiaGRsciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7MD09PUEudmVyc2lvbiYmKEEuaGFuZGxlclR5cGU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSkpfSkpfX0se2tleToibWluZiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnZtaGQ9QS52bWhkKEEuZmluZEJveChJLFsidm1oZCJdLEIpWzBdKSxnLnNtaGQ9QS5zbWhkKEEuZmluZEJveChJLFsic21oZCJdLEIpWzBdKSxnLnN0Ymw9QS5zdGJsKEEuZmluZEJveChJLFsic3RibCJdLEIpWzBdKX0pKX19LHtrZXk6InZtaGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe0EuZ3JhcGhpY3Ntb2RlPWpvKGcpLEEub3Bjb2xvcj1bam8oZywyKSxqbyhnLDQpLGpvKGcsNildfSkpfX0se2tleToic21oZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7QS5iYWxhbmNlPWpvKGcpfSkpfX0se2tleToic3RibCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDLEU7Zy5zdHNkPUEuc3RzZChBLmZpbmRCb3goSSxbInN0c2QiXSxCKVswXSksZy5zdHRzPUEuc3R0cyhBLmZpbmRCb3goSSxbInN0dHMiXSxCKVswXSksZy5jdHRzPUEuY3R0cyhBLmZpbmRCb3goSSxbImN0dHMiXSxCKVswXSksZy5zdHNjPUEuc3RzYyhBLmZpbmRCb3goSSxbInN0c2MiXSxCKVswXSksZy5zdHN6PUEuc3RzeihBLmZpbmRCb3goSSxbInN0c3oiXSxCKVswXSksZy5zdGNvPUEuc3RjbyhBLmZpbmRCb3goSSxbInN0Y28iXSxCKVswXSksZy5zdGNvfHwoZy5jbzY0PUEuY282NChBLmZpbmRCb3goSSxbImNvNjQiXSxCKVswXSksZy5zdGNvPWcuY282NCk7dmFyIGk9bnVsbD09PShRPWcuc3RzZC5lbnRyaWVzWzBdKXx8dm9pZCAwPT09UXx8bnVsbD09PShDPVEuc2luZil8fHZvaWQgMD09PUN8fG51bGw9PT0oRT1DLnNjaGkpfHx2b2lkIDA9PT1FP3ZvaWQgMDpFLnRlbmMuZGVmYXVsdF9JVl9zaXplO2cuc3Rzcz1BLnN0c3MoQS5maW5kQm94KEksWyJzdHNzIl0sQilbMF0pLGcuc2VuYz1BLnNlbmMoQS5maW5kQm94KEksWyJzZW5jIl0sQilbMF0saSl9KSl9fSx7a2V5OiJzZW5jIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ODtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxJKXt2YXIgQj0wLFE9UG8oSSxCKTtCKz00LEEuc2FtcGxlcz1bXTtmb3IodmFyIEM9MDtDPFE7QysrKXtmb3IodmFyIEU9e0luaXRpYWxpemF0aW9uVmVjdG9yOltdfSxpPTA7aTxnO2krKylFLkluaXRpYWxpemF0aW9uVmVjdG9yW2ldPUlbQitpXTtpZihCKz1nLDImQS5mbGFncyl7RS5zdWJzYW1wbGVzPVtdO3ZhciB0PWpvKEksQik7Qis9Mjtmb3IodmFyIGU9MDtlPHQ7ZSsrKXt2YXIgbz17fTtvLkJ5dGVzT2ZDbGVhckRhdGE9am8oSSxCKSxCKz0yLG8uQnl0ZXNPZlByb3RlY3RlZERhdGE9UG8oSSxCKSxCKz00LEUuc3Vic2FtcGxlcy5wdXNoKG8pfX1BLnNhbXBsZXMucHVzaChFKX19KSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9W10sQj1bXSxRPTAsQz0wO0M8MTY7QysrKUIucHVzaChlbihnW1ErQ10pKTtpZihRKz0xNixBLnZlcnNpb24+MCl7dmFyIEU9UG8oZyxRKTtRKz00O2Zvcih2YXIgaT0wO2k8KCIiK0UpLmxlbmd0aDtpKyspZm9yKHZhciB0PTA7dDwxNjt0Kyspe3ZhciBlPWdbUV07USs9MSxJLnB1c2goZW4oZSkpfX12YXIgbz1QbyhnLFEpO0EuZGF0YV9zaXplPW8sUSs9NCxBLmtpZD1JLEEuc3lzdGVtX2lkPUIsQS5idWZmZXI9Z30pKX19LHtrZXk6ImJ2YzIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9Q24oZyxJKSxDPUkuc3ViYXJyYXkoUSk7Qis9USxnLnZ2Y0M9QS5idjJDKEEuZmluZEJveChDLFsiYnYyQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChDLFsicGFzcCJdLEIpWzBdKX0pKX19LHtrZXk6ImJ2MkMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCExLChmdW5jdGlvbihBLGcsSSl7dmFyIEI9SW4ucGFyc2VWVkNEZWNvZGVyQ29uZmlndXJhdGlvblJlY29yZChnKTtmb3IodmFyIFEgaW4gQilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQixRKSYmKEFbUV09QltRXSl9KSl9fSx7a2V5OiJzdHNkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMCwoZnVuY3Rpb24oZyxJLEIpe2cuZW50cnlDb3VudD1QbyhJKSxnLmVudHJpZXM9QS5maW5kQm94KEkuc3ViYXJyYXkoNCksW10sQis0KS5tYXAoKGZ1bmN0aW9uKGcpe3N3aXRjaChnLnR5cGUpe2Nhc2UiYXZjMSI6Y2FzZSJhdmMyIjpjYXNlImF2YzMiOmNhc2UiYXZjNCI6cmV0dXJuIEEuYXZjMShnKTtjYXNlImh2YzEiOmNhc2UiaGV2MSI6cmV0dXJuIEEuaHZjMShnKTtjYXNlImJ2YzIiOnJldHVybiBBLmJ2YzIoZyk7Y2FzZSJtcDRhIjpyZXR1cm4gQS5tcDRhKGcpO2Nhc2UiYWxhdyI6Y2FzZSJ1bGF3IjpyZXR1cm4gQS5hbGF3KGcpO2Nhc2UiZW5jYSI6cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLmNoYW5uZWxDb3VudD1qbyhJLDE2KSxnLnNhbXBsZXNpemU9am8oSSwxOCksZy5zYW1wbGVSYXRlPVBvKEksMjQpLzY1NTM2LEk9SS5zdWJhcnJheSgyOCksZy5zaW5mPUEuc2luZihBLmZpbmRCb3goSSxbInNpbmYiXSxCKVswXSksZy5lc2RzPUEuZXNkcyhBLmZpbmRCb3goSSxbImVzZHMiXSxCKVswXSl9KSk7Y2FzZSJlbmN2IjpyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cud2lkdGg9am8oSSwyNCksZy5oZWlnaHQ9am8oSSwyNiksZy5ob3JpenJlc29sdXRpb249UG8oSSwyOCksZy52ZXJ0cmVzb2x1dGlvbj1QbyhJLDMyKSxJPUkuc3ViYXJyYXkoNzgpLGcuc2luZj1BLnNpbmYoQS5maW5kQm94KEksWyJzaW5mIl0sQilbMF0pLGcuYXZjQz1BLmF2Y0MoQS5maW5kQm94KEksWyJhdmNDIl0sQilbMF0pLGcuaHZjQz1BLmh2Y0MoQS5maW5kQm94KEksWyJodmNDIl0sQilbMF0pLGcucGFzcD1BLnBhc3AoQS5maW5kQm94KEksWyJwYXNwIl0sQilbMF0pfSkpfX0pKS5maWx0ZXIoQm9vbGVhbil9KSl9fSx7a2V5OiJ0ZW5jIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMSwoZnVuY3Rpb24oQSxnKXt2YXIgST02O0EuZGVmYXVsdF9Jc0VuY3J5cHRlZD1nW0ldLEkrPTEsQS5kZWZhdWx0X0lWX3NpemU9Z1tJXSxJKz0xLEEuZGVmYXVsdF9LSUQ9W107Zm9yKHZhciBCPTA7QjwxNjtCKyspQS5kZWZhdWx0X0tJRC5wdXNoKGVuKGdbSV0pKSxJKz0xfSkpfX0se2tleToic2NoaSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnRlbmM9QS50ZW5jKEEuZmluZEJveChJLFsidGVuYyJdLEIpWzBdKX0pKX19LHtrZXk6InNpbmYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7Zy5zY2hpPUEuc2NoaShBLmZpbmRCb3goSSxbInNjaGkiXSxCKVswXSksZy5mcm1hPUEuZnJtYShBLmZpbmRCb3goSSxbImZybWEiXSxCKVswXSl9KSl9fSx7a2V5OiJmcm1hIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMSwoZnVuY3Rpb24oQSxnKXtBLmRhdGFfZm9ybWF0PSIiO2Zvcih2YXIgST0wO0k8NDtJKyspQS5kYXRhX2Zvcm1hdCs9U3RyaW5nLmZyb21DaGFyQ29kZShnW0ldKX0pKX19LHtrZXk6ImF2YzEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9Q24oZyxJKSxDPUkuc3ViYXJyYXkoUSk7Qis9USxnLmF2Y0M9QS5hdmNDKEEuZmluZEJveChDLFsiYXZjQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChDLFsicGFzcCJdLEIpWzBdKX0pKX19LHtrZXk6ImF2Y0MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCExLChmdW5jdGlvbihBLGcpe0EuY29uZmlndXJhdGlvblZlcnNpb249Z1swXSxBLkFWQ1Byb2ZpbGVJbmRpY2F0aW9uPWdbMV0sQS5wcm9maWxlQ29tcGF0aWJpbGl0eT1nWzJdLEEuQVZDTGV2ZWxJbmRpY2F0aW9uPWdbM10sQS5jb2RlYz1mdW5jdGlvbihBKXtmb3IodmFyIGcsST0iYXZjMS4iLEI9MDtCPDM7QisrKShnPUFbQl0udG9TdHJpbmcoMTYpKS5sZW5ndGg8MiYmKGc9IjAiLmNvbmNhdChnKSksSSs9ZztyZXR1cm4gSX0oW2dbMV0sZ1syXSxnWzNdXSksQS5sZW5ndGhTaXplTWludXNPbmU9MyZnWzRdLEEuc3BzTGVuZ3RoPTMxJmdbNV0sQS5zcHM9W107Zm9yKHZhciBJPTYsQj0wO0I8QS5zcHNMZW5ndGg7QisrKXt2YXIgUT1qbyhnLEkpO0krPTIsQS5zcHMucHVzaChnLnN1YmFycmF5KEksSStRKSksSSs9UX1BLnBwc0xlbmd0aD1nW0ldLEkrPTEsQS5wcHM9W107Zm9yKHZhciBDPTA7QzxBLnBwc0xlbmd0aDtDKyspe3ZhciBFPWpvKGcsSSk7SSs9MixBLnBwcy5wdXNoKGcuc3ViYXJyYXkoSSxJKz1FKSksSSs9RX19KSl9fSx7a2V5OiJodmMxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe3ZhciBRPUNuKGcsSSksQz1JLnN1YmFycmF5KFEpO0IrPVEsZy5odmNDPUEuaHZjQyhBLmZpbmRCb3goQyxbImh2Y0MiXSxCKVswXSksZy5wYXNwPUEucGFzcChBLmZpbmRCb3goQyxbInBhc3AiXSxCKVswXSl9KSl9fSx7a2V5OiJodmNDIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMSwoZnVuY3Rpb24oZyxJKXtnLmRhdGE9QS5kYXRhLGcuY29kZWM9ImhldjEuMS42Lkw5My5CMCIsZy5jb25maWd1cmF0aW9uVmVyc2lvbj1JWzBdO3ZhciBCPUlbMV07Zy5nZW5lcmFsUHJvZmlsZVNwYWNlPUI+PjYsZy5nZW5lcmFsVGllckZsYWc9KDMyJkIpPj41LGcuZ2VuZXJhbFByb2ZpbGVJZGM9MzEmQixnLmdlbmVyYWxQcm9maWxlQ29tcGF0aWJpbGl0eT1QbyhJLDIpLGcuZ2VuZXJhbENvbnN0cmFpbnRJbmRpY2F0b3JGbGFncz1JLnN1YmFycmF5KDYsMTIpLGcuZ2VuZXJhbExldmVsSWRjPUlbMTJdLGcuYXZnRnJhbWVSYXRlPWpvKEksMTkpLGcubnVtT2ZBcnJheXM9SVsyMl0sZy52cHM9W10sZy5zcHM9W10sZy5wcHM9W107Zm9yKHZhciBRPTIzLEM9MCxFPTAsaT0wLHQ9MDt0PGcubnVtT2ZBcnJheXM7dCsrKXtDPTYzJklbUV0sRT1qbyhJLFErMSksUSs9Mztmb3IodmFyIGUsbz1bXSxuPTA7bjxFO24rKylpPWpvKEksUSksUSs9MixvLnB1c2goSS5zdWJhcnJheShRLFEraSkpLFErPWk7aWYoMzI9PT1DKShlPWcudnBzKS5wdXNoLmFwcGx5KGUsbyk7ZWxzZSBpZigzMz09PUMpe3ZhciByOyhyPWcuc3BzKS5wdXNoLmFwcGx5KHIsbyl9ZWxzZSBpZigzND09PUMpe3ZhciBhOyhhPWcucHBzKS5wdXNoLmFwcGx5KGEsbyl9fX0pKX19LHtrZXk6InBhc3AiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCExLChmdW5jdGlvbihBLGcpe0EuaFNwYWNpbmc9UG8oZyksQS52U3BhY2luZz1QbyhnLDQpfSkpfX0se2tleToibXA0YSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUT1FbihnLEkpO2cuZXNkcz1BLmVzZHMoQS5maW5kQm94KEkuc3ViYXJyYXkoUSksWyJlc2RzIl0sQitRKVswXSl9KSl9fSx7a2V5OiJlc2RzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtBLmNvZGVjPSJtcDRhLiI7Zm9yKHZhciBJPTAsQj0wLFE9MCxDPTA7Zy5sZW5ndGg7KXtmb3IoQz1nW0k9MF0sQj1nW0krMV0sSSs9MjsxMjgmQjspUT0oMTI3JkIpPDw3LEI9Z1tJXSxJKz0xO2lmKFErPTEyNyZCLDM9PT1DKWc9Zy5zdWJhcnJheShJKzMpO2Vsc2V7aWYoNCE9PUMpe2lmKDU9PT1DKXt2YXIgRT1BLmNvbmZpZz1nLnN1YmFycmF5KEksSStRKSxpPSgyNDgmRVswXSk+PjM7cmV0dXJuIDMxPT09aSYmRS5sZW5ndGg+PTImJihpPTMyKygoNyZFWzBdKTw8MykrKCgyMjQmRVsxXSk+PjUpKSxBLm9iamVjdFR5cGU9aSxBLmNvZGVjKz1pLnRvU3RyaW5nKDE2KSx2b2lkKCIuIj09PUEuY29kZWNbQS5jb2RlYy5sZW5ndGgtMV0mJihBLmNvZGVjPUEuY29kZWMuc3Vic3RyaW5nKDAsQS5jb2RlYy5sZW5ndGgtMSkpKX1yZXR1cm4gdm9pZCgiLiI9PT1BLmNvZGVjW0EuY29kZWMubGVuZ3RoLTFdJiYoQS5jb2RlYz1BLmNvZGVjLnN1YnN0cmluZygwLEEuY29kZWMubGVuZ3RoLTEpKSl9QS5jb2RlYys9KGdbSV0udG9TdHJpbmcoMTYpKyIuIikucGFkU3RhcnQoMywiMCIpLGc9Zy5zdWJhcnJheShJKzEzKX19fSkpfX0se2tleToiYWxhdyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITEsKGZ1bmN0aW9uKEEsZyl7RW4oQSxnKX0pKX19LHtrZXk6InN0dHMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QbyhnKSxCPVtdLFE9NCxDPTA7QzxJO0MrKylCLnB1c2goe2NvdW50OlBvKGcsUSksZGVsdGE6UG8oZyxRKzQpfSksUSs9ODtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6ImN0dHMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe3ZhciBJPVBvKGcpLEI9W10sUT00O2lmKDE9PT1BLnZlcnNpb24pZm9yKHZhciBDPTA7QzxJO0MrKylCLnB1c2goe2NvdW50OlBvKGcsUSksb2Zmc2V0OlBvKGcsUSs0KX0pLFErPTg7ZWxzZSBmb3IodmFyIEU9MDtFPEk7RSsrKUIucHVzaCh7Y291bnQ6UG8oZyxRKSxvZmZzZXQ6LSgxK35QbyhnLFErNCkpfSksUSs9ODtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6InN0c2MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QbyhnKSxCPW5ldyBBcnJheShJKSxRPTQsQz0wO0M8STtDKyspQltDXT17Zmlyc3RDaHVuazpQbyhnLFEpLHNhbXBsZXNQZXJDaHVuazpQbyhnLFErNCksc2FtcGxlRGVzY3JpcHRpb25JbmRleDpQbyhnLFErOCl9LFErPTEyO0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzeiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9UG8oZyksQj1QbyhnLDQpLFE9bmV3IEFycmF5KEIpO2lmKCFJKWZvcih2YXIgQz04LEU9MDtFPEI7RSsrKVFbRV09UG8oZyxDKSxDKz00O0Euc2FtcGxlU2l6ZT1JLEEuc2FtcGxlQ291bnQ9QixBLmVudHJ5U2l6ZXM9UX0pKX19LHtrZXk6InN0Y28iLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QbyhnKSxCPW5ldyBBcnJheShJKSxRPTQsQz0wO0M8STtDKyspQltDXT1QbyhnLFEpLFErPTQ7QS5lbnRyeUNvdW50PUksQS5lbnRyaWVzPUJ9KSl9fSx7a2V5OiJjbzY0Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9UG8oZyksQj1uZXcgQXJyYXkoSSksUT00LEM9MDtDPEk7QysrKUJbQ109Vm8oZyxRKSxRKz04O0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPVBvKGcpLEI9bmV3IEFycmF5KEkpLFE9NCxDPTA7QzxJO0MrKylCW0NdPVBvKGcsUSksUSs9NDtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6Im1vb2YiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7Zy5tZmhkPUEubWZoZChBLmZpbmRCb3goSSxbIm1maGQiXSxCKVswXSksZy50cmFmPUEuZmluZEJveChJLFsidHJhZiJdLEIpLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhZihnKX0pKX0pKX19LHtrZXk6Im1maGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe0Euc2VxdWVuY2VOdW1iZXI9UG8oZyl9KSl9fSx7a2V5OiJ0cmFmIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cudGZoZD1BLnRmaGQoQS5maW5kQm94KEksWyJ0ZmhkIl0sQilbMF0pLGcudGZkdD1BLnRmZHQoQS5maW5kQm94KEksWyJ0ZmR0Il0sQilbMF0pLGcudHJ1bj1BLnRydW4oQS5maW5kQm94KEksWyJ0cnVuIl0sQilbMF0pfSkpfX0se2tleToidHJ1biIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9QS52ZXJzaW9uLEI9QS5mbGFncyxRPWcubGVuZ3RoLEM9QS5zYW1wbGVDb3VudD1QbyhnKSxFPTQ7aWYoUT5FJiYxJkImJihBLmRhdGFPZmZzZXQ9LSgxK35QbyhnLEUpKSxFKz00KSxRPkUmJjQmQiYmKEEuZmlyc3RTYW1wbGVGbGFncz1QbyhnLEUpLEUrPTQpLFE+RSl7dmFyIGk7QS5zYW1wbGVzPW5ldyBBcnJheShDKTtmb3IodmFyIHQ9MDt0PEM7dCsrKWk9e30sMjU2JkImJihpLmR1cmF0aW9uPVBvKGcsRSksRSs9NCksNTEyJkImJihpLnNpemU9UG8oZyxFKSxFKz00KSwxMDI0JkImJihpLmZsYWdzPVBvKGcsRSksRSs9NCksMjA0OCZCJiYoaS5jdHM9ST8tKDErflBvKGcsRSs0KSk6UG8oZyxFKSxFKz00KSxBLnNhbXBsZXNbdF09aX19KSl9fSx7a2V5OiJ0ZmR0Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXsxPT09QS52ZXJzaW9uP0EuYmFzZU1lZGlhRGVjb2RlVGltZT1WbyhnKTpBLmJhc2VNZWRpYURlY29kZVRpbWU9UG8oZyl9KSl9fSx7a2V5OiJwcm9iZSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuISFBLmZpbmRCb3goZyxbImZ0eXAiXSl9fSx7a2V5OiJwYXJzZVNhbXBsZUZsYWdzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm57aXNMZWFkaW5nOigxMiZBWzBdKT4+PjIsZGVwZW5kc09uOjMmQVswXSxpc0RlcGVuZGVkT246KDE5MiZBWzFdKT4+PjYsaGFzUmVkdW5kYW5jeTooNDgmQVsxXSk+Pj40LHBhZGRpbmdWYWx1ZTooMTQmQVsxXSk+Pj4xLGlzTm9uU3luY1NhbXBsZToxJkFbMV0sZGVncmFkYXRpb25Qcmlvcml0eTpBWzJdPDw4fEFbM119fX0se2tleToibW9vdlRvVHJhY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEM9QS50cmFrO2lmKEMmJkMubGVuZ3RoKXt2YXIgRT1DLmZpbmQoKGZ1bmN0aW9uKEEpe3ZhciBnLEk7cmV0dXJuInZpZGUiPT09KG51bGw9PT0oZz1BLm1kaWEpfHx2b2lkIDA9PT1nfHxudWxsPT09KEk9Zy5oZGxyKXx8dm9pZCAwPT09ST92b2lkIDA6SS5oYW5kbGVyVHlwZSl9KSksaT1DLmZpbmQoKGZ1bmN0aW9uKEEpe3ZhciBnLEk7cmV0dXJuInNvdW4iPT09KG51bGw9PT0oZz1BLm1kaWEpfHx2b2lkIDA9PT1nfHxudWxsPT09KEk9Zy5oZGxyKXx8dm9pZCAwPT09ST92b2lkIDA6SS5oYW5kbGVyVHlwZSl9KSk7aWYoRSYmZyl7dmFyIHQsZSxvLG4scixhLHMsYyxoPWcseT1udWxsPT09KHQ9RS50a2hkKXx8dm9pZCAwPT09dD92b2lkIDA6dC50cmFja0lkO251bGwhPXkmJihoLmlkPUUudGtoZC50cmFja0lkKSxoLnRraGREdXJhdGlvbj1FLnRraGQuZHVyYXRpb24saC5tdmhkRHVydGlvbj1BLm12aGQuZHVyYXRpb24saC5tdmhkVGltZWNhbGU9QS5tdmhkLnRpbWVzY2FsZSxoLnRpbWVzY2FsZT1oLmZvcm1hdFRpbWVzY2FsZT1FLm1kaWEubWRoZC50aW1lc2NhbGUsaC5kdXJhdGlvbj1FLm1kaWEubWRoZC5kdXJhdGlvbnx8aC5tdmhkRHVydGlvbi9oLm12aGRUaW1lY2FsZSpoLnRpbWVzY2FsZSxudWxsIT09KGU9RS5lZHRzKSYmdm9pZCAwIT09ZSYmZS5lbHN0JiYoaC5lZGl0TGlzdD1FLmVkdHMuZWxzdCxoLmVkaXRMaXN0QXBwbGllZD1FLmVkaXRMaXN0QXBwbGllZCk7dmFyIEQsZix1LHcsZCxGLGwsRyxSPUUubWRpYS5taW5mLnN0Ymwuc3RzZC5lbnRyaWVzWzBdO2lmKGgud2lkdGg9Ui53aWR0aCxoLmhlaWdodD1SLmhlaWdodCxSLnBhc3AmJihoLnNhclJhdGlvPVtSLnBhc3AuaFNwYWNpbmcsUi5wYXNwLnZTcGFjaW5nXSksUi5odmNDKWguY29kZWNUeXBlPU5vLGguY29kZWM9Ui5odmNDLmNvZGVjLGgudnBzPVIuaHZjQy52cHMsaC5zcHM9Ui5odmNDLnNwcyxoLnBwcz1SLmh2Y0MucHBzLGguaHZjQz1SLmh2Y0MuZGF0YTtlbHNlIGlmKFIuYXZjQyloLmNvZGVjPVIuYXZjQy5jb2RlYyxoLnNwcz1SLmF2Y0Muc3BzLGgucHBzPVIuYXZjQy5wcHM7ZWxzZXtpZighUi52dmNDKXRocm93IG5ldyBFcnJvcigidW5rbm93biB2aWRlbyBzdHNkIGVudHJ5Iik7aC5jb2RlY1R5cGU9TW8saC5jb2RlYz1SLnZ2Y0MuY29kZWMsaC5zcHM9Ui52dmNDLnNwcyxoLnBwcz1SLnZ2Y0MucHBzLGgudnBzPVIudnZjQy52cHMsaC52dmNDPVIudnZjQy5kYXRhfWlmKGgucHJlc2VudD0hMCxoLmV4dD17fSxoLmV4dC5zdHNzPW51bGw9PT0obz1FLm1kaWEpfHx2b2lkIDA9PT1vfHxudWxsPT09KG49by5taW5mKXx8dm9pZCAwPT09bnx8bnVsbD09PShyPW4uc3RibCl8fHZvaWQgMD09PXI/dm9pZCAwOnIuc3RzcyxoLmV4dC5jdHRzPW51bGw9PT0oYT1FLm1kaWEpfHx2b2lkIDA9PT1hfHxudWxsPT09KHM9YS5taW5mKXx8dm9pZCAwPT09c3x8bnVsbD09PShjPXMuc3RibCl8fHZvaWQgMD09PWM/dm9pZCAwOmMuY3R0cyxSJiYiZW5jdiI9PT1SLnR5cGUpaC5pc1ZpZGVvRW5jcnlwdGlvbj0hMCxSLmRlZmF1bHRfS0lEPW51bGw9PT0oRD1SLnNpbmYpfHx2b2lkIDA9PT1EfHxudWxsPT09KGY9RC5zY2hpKXx8dm9pZCAwPT09Zj92b2lkIDA6Zi50ZW5jLmRlZmF1bHRfS0lELFIuZGVmYXVsdF9Jc0VuY3J5cHRlZD1udWxsPT09KHU9Ui5zaW5mKXx8dm9pZCAwPT09dXx8bnVsbD09PSh3PXUuc2NoaSl8fHZvaWQgMD09PXc/dm9pZCAwOncudGVuYy5kZWZhdWx0X0lzRW5jcnlwdGVkLFIuZGVmYXVsdF9JVl9zaXplPW51bGw9PT0oZD1SLnNpbmYpfHx2b2lkIDA9PT1kfHxudWxsPT09KEY9ZC5zY2hpKXx8dm9pZCAwPT09Rj92b2lkIDA6Ri50ZW5jLmRlZmF1bHRfSVZfc2l6ZSxoLnZpZGVvU2VuYz1FLm1kaWEubWluZi5zdGJsLnNlbmMmJkUubWRpYS5taW5mLnN0Ymwuc2VuYy5zYW1wbGVzLFIuZGF0YV9mb3JtYXQ9bnVsbD09PShsPVIuc2luZil8fHZvaWQgMD09PWx8fG51bGw9PT0oRz1sLmZybWEpfHx2b2lkIDA9PT1HP3ZvaWQgMDpHLmRhdGFfZm9ybWF0LGgudXNlRU1FPUEudXNlRU1FLGgua2lkVmFsdWU9QS5raWRWYWx1ZSxoLnBzc2g9QS5wc3NoLGguZW5jdj1SfWlmKGkmJkkpe3ZhciBVLGssUyxOLE0sWSxILHAsSixMLHY9SSxLPW51bGw9PT0oVT1pLnRraGQpfHx2b2lkIDA9PT1VP3ZvaWQgMDpVLnRyYWNrSWQ7bnVsbCE9SyYmKHYuaWQ9aS50a2hkLnRyYWNrSWQpLHYudGtoZER1cmF0aW9uPWkudGtoZC5kdXJhdGlvbix2Lm12aGREdXJ0aW9uPUEubXZoZC5kdXJhdGlvbix2Lm12aGRUaW1lY2FsZT1BLm12aGQudGltZXNjYWxlLHYudGltZXNjYWxlPXYuZm9ybWF0VGltZXNjYWxlPWkubWRpYS5tZGhkLnRpbWVzY2FsZSx2LmR1cmF0aW9uPWkubWRpYS5tZGhkLmR1cmF0aW9ufHx2Lm12aGREdXJ0aW9uL3YubXZoZFRpbWVjYWxlKnYudGltZXNjYWxlLG51bGwhPT0oaz1pLmVkdHMpJiZ2b2lkIDAhPT1rJiZrLmVsc3QmJih2LmVkaXRMaXN0PWkuZWR0cy5lbHN0LHYuZWRpdExpc3RBcHBsaWVkPWkuZWRpdExpc3RBcHBsaWVkKTt2YXIgbSx4LHEsYixULE8sVyxaLGo9aS5tZGlhLm1pbmYuc3RibC5zdHNkLmVudHJpZXNbMF07c3dpdGNoKHYuc2FtcGxlU2l6ZT1qLnNhbXBsZVNpemUsdi5zYW1wbGVSYXRlPWouc2FtcGxlUmF0ZSx2LmNoYW5uZWxDb3VudD1qLmNoYW5uZWxDb3VudCx2LnByZXNlbnQ9ITAsai50eXBlKXtjYXNlImFsYXciOnYuY29kZWNUeXBlPXYuY29kZWM9SG8sdi5zYW1wbGVSYXRlPThlMzticmVhaztjYXNlInVsYXciOnYuY29kZWNUeXBlPXYuY29kZWM9cG8sdi5zYW1wbGVSYXRlPThlMzticmVhaztkZWZhdWx0OnYuc2FtcGxlRHVyYXRpb249T28uZ2V0RnJhbWVEdXJhdGlvbih2LnNhbXBsZVJhdGUsdi50aW1lc2NhbGUpLHYuc2FtcGxlUmF0ZUluZGV4PU9vLmdldFJhdGVJbmRleEJ5UmF0ZSh2LnNhbXBsZVJhdGUpLHYub2JqZWN0VHlwZT0obnVsbD09PShCPWouZXNkcyl8fHZvaWQgMD09PUI/dm9pZCAwOkIub2JqZWN0VHlwZSl8fDIsai5lc2RzJiYodi5jb25maWc9QXJyYXkuZnJvbShqLmVzZHMuY29uZmlnKSksdi5jb2RlYz0obnVsbD09PShRPWouZXNkcyl8fHZvaWQgMD09PVE/dm9pZCAwOlEuY29kZWMpfHwibXA0YS40MC4yIn1pZih2LnNhbXBsZUR1cmF0aW9uPU9vLmdldEZyYW1lRHVyYXRpb24odi5zYW1wbGVSYXRlLHYudGltZXNjYWxlKSx2Lm9iamVjdFR5cGU9KG51bGw9PT0oUz1qLmVzZHMpfHx2b2lkIDA9PT1TP3ZvaWQgMDpTLm9iamVjdFR5cGUpfHwyLGouZXNkcyYmKGouZXNkcy5jb25maWc/di5jb25maWc9QXJyYXkuZnJvbShqLmVzZHMuY29uZmlnKTpjb25zb2xlLndhcm4oImVzZHMgY29uZmlnIGlzIG51bGwiKSksdi5jb2RlYz0obnVsbD09PShOPWouZXNkcyl8fHZvaWQgMD09PU4/dm9pZCAwOk4uY29kZWMpfHwibXA0YS40MC4yIix2LnNhbXBsZVJhdGVJbmRleD1Pby5nZXRSYXRlSW5kZXhCeVJhdGUodi5zYW1wbGVSYXRlKSx2LmV4dD17fSx2LmV4dC5zdHNzPW51bGw9PT0oTT1pLm1kaWEpfHx2b2lkIDA9PT1NfHxudWxsPT09KFk9TS5taW5mKXx8dm9pZCAwPT09WXx8bnVsbD09PShIPVkuc3RibCl8fHZvaWQgMD09PUg/dm9pZCAwOkguc3Rzcyx2LmV4dC5jdHRzPW51bGw9PT0ocD1pLm1kaWEpfHx2b2lkIDA9PT1wfHxudWxsPT09KEo9cC5taW5mKXx8dm9pZCAwPT09Snx8bnVsbD09PShMPUouc3RibCl8fHZvaWQgMD09PUw/dm9pZCAwOkwuY3R0cyx2LnByZXNlbnQ9ITAsaiYmImVuY2EiPT09ai50eXBlKXYuaXNBdWRpb0VuY3J5cHRpb249ITAsai5kYXRhX2Zvcm1hdD1udWxsPT09KG09ai5zaW5mKXx8dm9pZCAwPT09bXx8bnVsbD09PSh4PW0uZnJtYSl8fHZvaWQgMD09PXg/dm9pZCAwOnguZGF0YV9mb3JtYXQsai5kZWZhdWx0X0tJRD1udWxsPT09KHE9ai5zaW5mKXx8dm9pZCAwPT09cXx8bnVsbD09PShiPXEuc2NoaSl8fHZvaWQgMD09PWI/dm9pZCAwOmIudGVuYy5kZWZhdWx0X0tJRCxqLmRlZmF1bHRfSXNFbmNyeXB0ZWQ9bnVsbD09PShUPWouc2luZil8fHZvaWQgMD09PVR8fG51bGw9PT0oTz1ULnNjaGkpfHx2b2lkIDA9PT1PP3ZvaWQgMDpPLnRlbmMuZGVmYXVsdF9Jc0VuY3J5cHRlZCxqLmRlZmF1bHRfSVZfc2l6ZT1udWxsPT09KFc9ai5zaW5mKXx8dm9pZCAwPT09V3x8bnVsbD09PShaPVcuc2NoaSl8fHZvaWQgMD09PVo/dm9pZCAwOloudGVuYy5kZWZhdWx0X0lWX3NpemUsdi5hdWRpb1NlbmM9aS5tZGlhLm1pbmYuc3RibC5zZW5jJiZpLm1kaWEubWluZi5zdGJsLnNlbmMuc2FtcGxlcyx2LnVzZUVNRT1BLnVzZUVNRSx2LmtpZFZhbHVlPUEua2lkVmFsdWUsdi5lbmNhPWp9aWYoSSYmKEkuaXNWaWRlb0VuY3J5cHRpb249ISFnJiZnLmlzVmlkZW9FbmNyeXB0aW9uKSxnJiYoZy5pc0F1ZGlvRW5jcnlwdGlvbj0hIUkmJkkuaXNBdWRpb0VuY3J5cHRpb24pLG51bGwhPWcmJmcuZW5jdnx8bnVsbCE9SSYmSS5lbmNhKXt2YXIgUCxYLFY9bnVsbD09Z3x8bnVsbD09PShQPWcuZW5jdil8fHZvaWQgMD09PVA/dm9pZCAwOlAuZGVmYXVsdF9LSUQsej1udWxsPT1JfHxudWxsPT09KFg9SS5lbmNhKXx8dm9pZCAwPT09WD92b2lkIDA6WC5kZWZhdWx0X0tJRCxfPVZ8fHo/KFZ8fHopLmpvaW4oIiIpOm51bGw7ZyYmKGcua2lkPV8pLEkmJihJLmtpZD1fKX1yZXR1cm4gZyYmKGcuZmxhZ3M9Mzg0MSksSSYmKEkuZmxhZ3M9MTc5Mykse3ZpZGVvVHJhY2s6ZyxhdWRpb1RyYWNrOkl9fX19LHtrZXk6ImV2YWx1YXRlRGVmYXVsdER1cmF0aW9uIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUT1udWxsPT1nfHxudWxsPT09KEI9Zy5zYW1wbGVzKXx8dm9pZCAwPT09Qj92b2lkIDA6Qi5sZW5ndGg7cmV0dXJuIFE/MTAyNCpRL2cudGltZXNjYWxlKkEudGltZXNjYWxlL0k6MTAyNH19LHtrZXk6Im1vb2ZUb1NhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUT17fTtyZXR1cm4gZy5tZmhkJiYoSSYmKEkuc2VxdWVuY2VOdW1iZXI9Zy5tZmhkLnNlcXVlbmNlTnVtYmVyKSxCJiYoQi5zZXF1ZW5jZU51bWJlcj1nLm1maGQuc2VxdWVuY2VOdW1iZXIpKSxnLnRyYWYuZm9yRWFjaCgoZnVuY3Rpb24oZyl7dmFyIEM9Zy50ZmhkLEU9Zy50ZmR0LGk9Zy50cnVuO2lmKEMmJmkpe0UmJihJJiZJLmlkPT09Qy50cmFja0lkJiYoSS5iYXNlTWVkaWFEZWNvZGVUaW1lPUUuYmFzZU1lZGlhRGVjb2RlVGltZSksQiYmQi5pZD09PUMudHJhY2tJZCYmKEIuYmFzZU1lZGlhRGVjb2RlVGltZT1FLmJhc2VNZWRpYURlY29kZVRpbWUpKTt2YXIgdD1DLmRlZmF1bHRTYW1wbGVTaXplfHwwLGU9Qy5kZWZhdWx0U2FtcGxlRHVyYXRpb258fEEuZXZhbHVhdGVEZWZhdWx0RHVyYXRpb24oSSxCLGkuc2FtcGxlcy5sZW5ndGh8fGkuc2FtcGxlQ291bnQpLG89aS5kYXRhT2Zmc2V0fHwwLG49MCxyPS0xO2lmKCFpLnNhbXBsZXMubGVuZ3RoJiZpLnNhbXBsZUNvdW50KXtRW0MudHJhY2tJZF09bmV3IEFycmF5KGkuc2FtcGxlQ291bnQpO2Zvcih2YXIgYT0wO2E8aS5zYW1wbGVDb3VudDthKyspUVtDLnRyYWNrSWRdW2FdPXtvZmZzZXQ6byxkdHM6bixkdXJhdGlvbjplLHNpemU6dH0sbis9ZSxvKz10fWVsc2UgUVtDLnRyYWNrSWRdPWkuc2FtcGxlcy5tYXAoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuKEE9e29mZnNldDpvLGR0czpuLHB0czpuKyhBLmN0c3x8MCksZHVyYXRpb246QS5kdXJhdGlvbnx8ZSxzaXplOkEuc2l6ZXx8dCxnb3BJZDpyLGtleWZyYW1lOjA9PT1nfHxudWxsIT09QS5mbGFncyYmdm9pZCAwIT09QS5mbGFncyYmKDY1NTM2JkEuZmxhZ3MpPj4+MCE9NjU1MzZ9KS5rZXlmcmFtZSYmKHIrKyxBLmdvcElkPXIpLG4rPUEuZHVyYXRpb24sbys9QS5zaXplLEF9KSl9fSkpLFF9fSx7a2V5OiJtb292VG9TYW1wbGVzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BLnRyYWs7aWYoZyYmZy5sZW5ndGgpe3ZhciBJPWcuZmluZCgoZnVuY3Rpb24oQSl7dmFyIGcsSTtyZXR1cm4idmlkZSI9PT0obnVsbD09PShnPUEubWRpYSl8fHZvaWQgMD09PWd8fG51bGw9PT0oST1nLmhkbHIpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmhhbmRsZXJUeXBlKX0pKSxCPWcuZmluZCgoZnVuY3Rpb24oQSl7dmFyIGcsSTtyZXR1cm4ic291biI9PT0obnVsbD09PShnPUEubWRpYSl8fHZvaWQgMD09PWd8fG51bGw9PT0oST1nLmhkbHIpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmhhbmRsZXJUeXBlKX0pKTtpZihJfHxCKXt2YXIgUSxDO2lmKEkpe3ZhciBFLGksdD1udWxsPT09KEU9SS5tZGlhKXx8dm9pZCAwPT09RXx8bnVsbD09PShpPUUubWluZil8fHZvaWQgMD09PWk/dm9pZCAwOmkuc3RibDtpZighdClyZXR1cm47dmFyIGU9dC5zdHRzLG89dC5zdHNjLG49dC5zdHN6LHI9dC5zdGNvLGE9dC5zdHNzLHM9dC5jdHRzO2lmKCEoZSYmbyYmbiYmciYmYSkpcmV0dXJuO1E9UW4oZSxvLG4scixzLGEpfWlmKEIpe3ZhciBjLGgseSxEPW51bGw9PT0oYz1CLm1kaWEpfHx2b2lkIDA9PT1jfHxudWxsPT09KGg9Yy5taW5mKXx8dm9pZCAwPT09aD92b2lkIDA6aC5zdGJsO2lmKCFEKXJldHVybjt2YXIgZj1udWxsPT09KHk9Qi5tZGlhLm1kaGQpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LnRpbWVzY2FsZSx1PUQuc3R0cyx3PUQuc3RzYyxkPUQuc3RzeixGPUQuc3RjbztpZighKGYmJnUmJncmJmQmJkYpKXJldHVybjtDPVFuKHUsdyxkLEYpfXJldHVybnt2aWRlb1NhbXBsZXM6USxhdWRpb1NhbXBsZXM6Q319fX19XSksQX0oKTtmdW5jdGlvbiBRbihBLGcsSSxCLFEsQyl7dmFyIEUsaSx0LGU9W10sbz1udWxsPT1RP3ZvaWQgMDpRLmVudHJpZXMsbj1nLmVudHJpZXMscj1CLmVudHJpZXMsYT1JLmVudHJ5U2l6ZXMscz1udWxsPT1DP3ZvaWQgMDpDLmVudHJpZXM7cyYmKEU9e30scy5mb3JFYWNoKChmdW5jdGlvbihBKXtFW0EtMV09ITB9KSkpLG8mJihpPVtdLG8uZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuY291bnQsST1BLm9mZnNldCxCPTA7QjxnO0IrKylpLnB1c2goSSl9KSkpO3ZhciBjPS0xLGg9MCx5PTAsRD0wLGY9MCx1PTAsdz1uWzBdLnNhbXBsZXNQZXJDaHVuayxkPW5bMV0/blsxXS5maXJzdENodW5rLTE6MS8wO3JldHVybiBBLmVudHJpZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuY291bnQsQj1BLmRlbHRhLFE9MDtRPGc7USsrKXQ9e2R0czpoLGR1cmF0aW9uOkIsc2l6ZTphW3ldfHxJLnNhbXBsZVNpemUsb2Zmc2V0OnJbRF0rdSxpbmRleDp5fSxzJiYodC5rZXlmcmFtZT1FW3ldLHQua2V5ZnJhbWUmJmMrKyx0LmdvcElkPWMpLGkmJnk8aS5sZW5ndGgmJih0LnB0cz10LmR0cytpW3ldKSxlLnB1c2godCksaCs9QiwrK3k8dz91Kz10LnNpemU6KEQrKyx1PTAsRD49ZCYmKGYrKyxkPW5bZisxXT9uW2YrMV0uZmlyc3RDaHVuay0xOjEvMCksdys9bltmXS5zYW1wbGVzUGVyQ2h1bmspfSkpLGV9ZnVuY3Rpb24gQ24oQSxnKXtyZXR1cm4gQS5kYXRhUmVmZXJlbmNlSW5kZXg9am8oZyw2KSxBLndpZHRoPWpvKGcsMjQpLEEuaGVpZ2h0PWpvKGcsMjYpLEEuaG9yaXpyZXNvbHV0aW9uPVBvKGcsMjgpLEEudmVydHJlc29sdXRpb249UG8oZywzMiksQS5mcmFtZUNvdW50PWpvKGcsNDApLEEuZGVwdGg9am8oZyw3NCksNzh9ZnVuY3Rpb24gRW4oQSxnKXtyZXR1cm4gQS5kYXRhUmVmZXJlbmNlSW5kZXg9am8oZyw2KSxBLmNoYW5uZWxDb3VudD1qbyhnLDE2KSxBLnNhbXBsZVNpemU9am8oZywxOCksQS5zYW1wbGVSYXRlPVBvKGcsMjQpLzY1NTM2LDI4fWZ1bmN0aW9uIHRuKEEsZyxJKXtpZihBKXtpZihBLnNpemUhPT1BLmRhdGEubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYm94ICIuY29uY2F0KEEudHlwZSwiIHNpemUgIT09IGRhdGEubGVuZ3RoIikpO3ZhciBCPXtzdGFydDpBLnN0YXJ0LHNpemU6QS5zaXplLGhlYWRlclNpemU6QS5oZWFkZXJTaXplLHR5cGU6QS50eXBlfTtyZXR1cm4gZyYmKEIudmVyc2lvbj1BLmRhdGFbQS5oZWFkZXJTaXplXSxCLmZsYWdzPWZ1bmN0aW9uKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwxNikrKEFbZysxXTw8OCkrKEFbZysyXXx8MCl9KEEuZGF0YSxBLmhlYWRlclNpemUrMSksQi5oZWFkZXJTaXplKz00KSxJKEIsQS5kYXRhLnN1YmFycmF5KEIuaGVhZGVyU2l6ZSksQi5zdGFydCtCLmhlYWRlclNpemUpLEJ9fXZhciBlbj1mdW5jdGlvbigpe2Zvcih2YXIgQT1bXSxnPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoZyksQj0wO0I8ZztCKyspSVtCXT1hcmd1bWVudHNbQl07cmV0dXJuIEkuZm9yRWFjaCgoZnVuY3Rpb24oZyl7QS5wdXNoKGZ1bmN0aW9uKEEsZyxJKXtmb3IodmFyIEI9U3RyaW5nKEkpLFE9Zz4+MCxDPU1hdGguY2VpbChRL0IubGVuZ3RoKSxFPVtdLGk9U3RyaW5nKEEpO0MtLTspRS5wdXNoKEIpO3JldHVybiBFLmpvaW4oIiIpLnN1YnN0cmluZygwLFEtaS5sZW5ndGgpK2l9KE51bWJlcihnKS50b1N0cmluZygxNiksMiwwKSl9KSksQVswXX0sb249ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKGcsSSxCKXtobyh0aGlzLEEpLHRoaXMudmlkZW9UcmFjaz1nfHxuZXcgSm8sdGhpcy5hdWRpb1RyYWNrPUl8fG5ldyBMbyx0aGlzLm1ldGFkYXRhVHJhY2s9Qnx8bmV3IG1vfXJldHVybiBEbyhBLFt7a2V5OiJkZW11eCIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgST10aGlzLnZpZGVvVHJhY2ssQj10aGlzLmF1ZGlvVHJhY2ssUT1JLmV4aXN0KCksQz1CLmV4aXN0KCk7aWYoSS5zYW1wbGVzPVtdLEIuc2FtcGxlcz1bXSxnKXtpZighQyl7dmFyIEU9Qm4uZmluZEJveChnLFsibW9vdiJdKVswXTtpZighRSl0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBmb3VuZCBtb292IGJveCIpO0JuLm1vb3ZUb1RyYWNrKEJuLm1vb3YoRSksbnVsbCxCKX12YXIgaT1Cbi5maW5kQm94KGcsWyJtb29mIl0pWzBdO2lmKGkpe3ZhciB0PUJuLm1vb2ZUb1NhbXBsZXMoQm4ubW9vZihpKSxudWxsLEIpW0IuaWRdLGU9Qi5iYXNlTWVkaWFEZWNvZGVUaW1lO2lmKHQpe3ZhciBvPWkuc3RhcnQ7dC5tYXAoKGZ1bmN0aW9uKEEpe0Eub2Zmc2V0Kz1vO3ZhciBJPWcuc3ViYXJyYXkoQS5vZmZzZXQsQS5vZmZzZXQrQS5zaXplKTtCLnNhbXBsZXMucHVzaChuZXcgS28oQS5kdHMrZSxJLEEuZHVyYXRpb24pKX0pKX19fWlmKEEpe2lmKCFRJiYhQyl7dmFyIG49Qm4uZmluZEJveChBLFsibW9vdiJdKVswXTtpZighbil0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBmb3VuZCBtb292IGJveCIpO0JuLm1vb3ZUb1RyYWNrKEJuLm1vb3YobiksSSxCKX12YXIgcj1Cbi5maW5kQm94KEEsWyJtb29mIl0pWzBdO2lmKHIpe3ZhciBhLHM9Qm4ubW9vZlRvU2FtcGxlcyhCbi5tb29mKHIpLEksQiksYz1JLmJhc2VNZWRpYURlY29kZVRpbWUsaD1CLmJhc2VNZWRpYURlY29kZVRpbWUseT1yLnN0YXJ0O09iamVjdC5rZXlzKHMpLmZvckVhY2goKGZ1bmN0aW9uKGcpe0kuaWQ9PWc/c1tnXS5tYXAoKGZ1bmN0aW9uKGcpe2cub2Zmc2V0Kz15O3ZhciBCPW5ldyB2bygoIm51bWJlciI9PXR5cGVvZiBnLnB0cz9nLnB0czpnLmR0cykrYyxnLmR0cytjKTtCLmR1cmF0aW9uPWcuZHVyYXRpb24sQi5nb3BJZD1nLmdvcElkLGcua2V5ZnJhbWUmJkIuc2V0VG9LZXlmcmFtZSgpO3ZhciBRPUEuc3ViYXJyYXkoZy5vZmZzZXQsZy5vZmZzZXQrZy5zaXplKTtCLmRhdGE9UTtmb3IodmFyIEM9MCxFPVEubGVuZ3RoLTE7QzxFOylhPVBvKFEsQyksQys9NCxCLnVuaXRzLnB1c2goUS5zdWJhcnJheShDLEMrYSkpLEMrPWE7SS5zYW1wbGVzLnB1c2goQil9KSk6Qi5pZD09ZyYmc1tnXS5tYXAoKGZ1bmN0aW9uKGcpe2cub2Zmc2V0Kz15O3ZhciBJPUEuc3ViYXJyYXkoZy5vZmZzZXQsZy5vZmZzZXQrZy5zaXplKTtCLnNhbXBsZXMucHVzaChuZXcgS28oZy5kdHMraCxJLGcuZHVyYXRpb24pKX0pKX0pKX19cmV0dXJue3ZpZGVvVHJhY2s6SSxhdWRpb1RyYWNrOkIsbWV0YWRhdGFUcmFjazp0aGlzLm1ldGFkYXRhVHJhY2t9fX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52aWRlb1RyYWNrLnJlc2V0KCksdGhpcy5hdWRpb1RyYWNrLnJlc2V0KCksdGhpcy5tZXRhZGF0YVRyYWNrLnJlc2V0KCl9fV0sW3trZXk6InByb2JlIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gQm4ucHJvYmUoQSl9fV0pLEF9KCk7dmFyIG5uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2hvKHRoaXMsQSksdGhpcy5idWZmZXI9bmV3IFVpbnQ4QXJyYXkoMCl9cmV0dXJuIERvKEEsW3trZXk6IndyaXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgQT10aGlzLGc9YXJndW1lbnRzLmxlbmd0aCxJPW5ldyBBcnJheShnKSxCPTA7QjxnO0IrKylJW0JdPWFyZ3VtZW50c1tCXTtJLmZvckVhY2goKGZ1bmN0aW9uKGcpe2c/QS5idWZmZXI9ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPTAsST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEk+MT9JLTE6MCksUT0xO1E8STtRKyspQltRLTFdPWFyZ3VtZW50c1tRXTtCLmZvckVhY2goKGZ1bmN0aW9uKEEpe2crPUEubGVuZ3RofSkpO3ZhciBDPW5ldyBBKGcpLEU9MDtyZXR1cm4gQi5mb3JFYWNoKChmdW5jdGlvbihBKXtDLnNldChBLEUpLEUrPUEubGVuZ3RofSkpLEN9KFVpbnQ4QXJyYXksQS5idWZmZXIsZyk6d2luZG93LmNvbnNvbGUud2FybihnKX0pKX19XSxbe2tleToid3JpdGVVaW50MTYiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgVWludDhBcnJheShbQT4+OCYyNTUsMjU1JkFdKX19LHtrZXk6IndyaXRlVWludDMyIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoW0E+PjI0LEE+PjE2JjI1NSxBPj44JjI1NSwyNTUmQV0pfX1dKSxBfSgpLHJuPU1hdGgucG93KDIsMzIpLTEsYW49ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7aG8odGhpcyxBKX1yZXR1cm4gRG8oQSxudWxsLFt7a2V5OiJib3giLHZhbHVlOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KGc+MT9nLTE6MCksQj0xO0I8ZztCKyspSVtCLTFdPWFyZ3VtZW50c1tCXTt2YXIgUT04KyhJPUkuZmlsdGVyKEJvb2xlYW4pKS5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEErZy5ieXRlTGVuZ3RofSksMCksQz1uZXcgVWludDhBcnJheShRKTtDWzBdPVE+PjI0JjI1NSxDWzFdPVE+PjE2JjI1NSxDWzJdPVE+PjgmMjU1LENbM109MjU1JlEsQy5zZXQoQSw0KTt2YXIgRT04O3JldHVybiBJLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Muc2V0KEEsRSksRSs9QS5ieXRlTGVuZ3RofSkpLEN9fSx7a2V5OiJGdWxsQm94Iix2YWx1ZTpmdW5jdGlvbihnLEksQil7Zm9yKHZhciBRPWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoUT4zP1EtMzowKSxFPTM7RTxRO0UrKylDW0UtM109YXJndW1lbnRzW0VdO3JldHVybiBBLmJveC5hcHBseShBLFtnLG5ldyBVaW50OEFycmF5KFtJLEI+PjE2JjI1NSxCPj44JjI1NSwyNTUmQl0pXS5jb25jYXQoQykpfX0se2tleToiZnR5cCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZmluZCgoZnVuY3Rpb24oQSl7cmV0dXJuIEEudHlwZT09PVJvJiZBLmNvZGVjVHlwZT09PU5vfSkpP0EuRlRZUEhFVjE6QS5GVFlQQVZDMX19LHtrZXk6ImluaXRTZWdtZW50Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gV28oQS5mdHlwKGcpLEEubW9vdihnKSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbMSwwLDAsMF0uY29uY2F0KFsxNiwxMTksMjM5LDIzNiwxOTIsMTc4LDc3LDIsMTcyLDIyNyw2MCwzMCw4MiwyMjYsMjUxLDc1XSxbMCwwLDAsMV0sJG8oZy5raWQpLFswLDAsMCwwXSkpO3JldHVybiBBLmJveChBLnR5cGVzLnBzc2gsSSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtpZihnWzBdLnVzZUVNRSYmKGdbMF0uZW5jdnx8Z1swXS5lbmNhKSl7Z1swXS5wc3NofHwoZ1swXS5wc3NoPXtraWQ6Z1swXS5raWR9KTt2YXIgST10aGlzLnBzc2goZ1swXS5wc3NoKTtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb292LEEubXZoZChnWzBdLm12aGREdXJ0aW9ufHxnWzBdLmR1cmF0aW9uLGdbMF0ubXZoZFRpbWVjYWxlfHxnWzBdLnRpbWVzY2FsZSksQS5tdmV4KGcpXS5jb25jYXQod28oZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSkpLFtJXSkpfXJldHVybiBBLmJveC5hcHBseShBLFtBLnR5cGVzLm1vb3YsQS5tdmhkKGdbMF0ubXZoZER1cnRpb258fGdbMF0uZHVyYXRpb24sZ1swXS5tdmhkVGltZWNhbGV8fGdbMF0udGltZXNjYWxlKV0uY29uY2F0KHdvKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmFrKGcpfSkpKSxbQS5tdmV4KGcpXSkpfX0se2tleToibXZoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNDtyZXR1cm4gQS5ib3goQS50eXBlcy5tdmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwxLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1XSkpfX0se2tleToidHJhayIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhayxBLnRraGQoZy5pZCxnLnRraGREdXJhdGlvbnx8MCxnLndpZHRoLGcuaGVpZ2h0KSxBLm1kaWEoZykpfX0se2tleToidGtoZCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTowO3JldHVybiBBLmJveChBLnR5cGVzLnRraGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDcsMCwwLDAsMCwwLDAsMCwwLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDAsMCwwLEI+PjgmMjU1LDI1NSZCLDAsMCxRPj44JjI1NSwyNTUmUSwwLDBdKSl9fSx7a2V5OiJlZHRzIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5lZHRzLEEuZWxzdChnKSl9fSx7a2V5OiJlbHN0Iix2YWx1ZTpmdW5jdGlvbihnKXtnLmVudHJpZXM7dmFyIEk9Zy5lbnRyaWVzRGF0YSxCPWcudmVyc2lvbjtyZXR1cm4gQS5GdWxsQm94KEEudHlwZXMuZWxzdCxCLDAsSSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGlhLEEubWRoZChnLmR1cmF0aW9uLGcudGltZXNjYWxlKSxBLmhkbHIoZy50eXBlKSxBLm1pbmYoZykpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNDtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsODUsMTk2LDAsMF0pKX19LHtrZXk6ImhkbHIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLmhkbHIsQS5IRExSX1RZUEVTW2ddKX19LHtrZXk6Im1pbmYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1pbmYsZy50eXBlPT09Um8/QS5WTUhEOkEuU01IRCxBLkRJTkYsQS5zdGJsKGcpKX19LHtrZXk6InN0YmwiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPVtdO3JldHVybiBnJiZnLmV4dCYmZy5leHQuc3RzcyYmSS5wdXNoKEEuc3RzcyhnLmV4dC5zdHNzLmVudHJpZXMpKSxBLmJveChBLnR5cGVzLnN0YmwsQS5zdHNkKGcpLEEuU1RUUyxJWzBdLEEuU1RTQyxBLlNUU1osQS5TVENPKX19LHtrZXk6InN0c2QiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJO3JldHVybiBJPSJhdWRpbyI9PT1nLnR5cGU/Zy51c2VFTUUmJmcuZW5jYT9BLmVuY2EoZyk6QS5tcDRhKGcpOmcudXNlRU1FJiZnLmVuY3Y/QS5lbmN2KGcpOkEuYXZjMWhldjF2dmMxKGcpLEEuYm94KEEudHlwZXMuc3RzZCxuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxXSksSSl9fSx7a2V5OiJlbmNhIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmVuY2EuY2hhbm5lbENvdW50LEI9Zy5lbmNhLnNhbXBsZVJhdGUsUT1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLEksMCwxNiwwLDAsMCwwLEI+PjgmMjU1LDI1NSZCLDAsMF0pLEM9QS5lc2RzKGcuY29uZmlnKSxFPUEuc2luZihnLmVuY2EpO3JldHVybiBBLmJveChBLnR5cGVzLmVuY2EsUSxDLEUpfX0se2tleToiZW5jdiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEksQixRPWcuc3BzLmxlbmd0aD4wP2cuc3BzWzBdOltdLEM9Zy5wcHMubGVuZ3RoPjA/Zy5wcHNbMF06W10sRT1nLndpZHRoLGk9Zy5oZWlnaHQsdD1nLnNhclJhdGlvWzBdLGU9Zy5zYXJSYXRpb1sxXSxvPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxFPj44JjI1NSwyNTUmRSxpPj44JjI1NSwyNTUmaSwwLDcyLDAsMCwwLDcyLDAsMCwwLDAsMCwwLDAsMSwxOCwxMDAsOTcsMTA1LDEwOCwxMjEsMTA5LDExMSwxMTYsMTA1LDExMSwxMTAsNDcsMTA0LDEwOCwxMTUsNDYsMTA2LDExNSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQsMTcsMTddKSxuPW5ldyBVaW50OEFycmF5KChJPShCPVsxLFFbMV0sUVsyXSxRWzNdLDI1NSwyMjUsUS5sZW5ndGg+Pj44JjI1NSwyNTUmUS5sZW5ndGhdKS5jb25jYXQuYXBwbHkoQix3byhRKSkuY29uY2F0KFsxLEMubGVuZ3RoPj4+OCYyNTUsMjU1JkMubGVuZ3RoXSkpLmNvbmNhdC5hcHBseShJLHdvKEMpKSkscj1uZXcgVWludDhBcnJheShbMCwwLDg4LDU3LDAsMTUsMjAwLDE5MiwwLDQsODYsNzJdKSxhPUEuc2luZihnLmVuY3YpLHM9bmV3IFVpbnQ4QXJyYXkoW3Q+PjI0LHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCxlPj4yNCxlPj4xNiYyNTUsZT4+OCYyNTUsMjU1JmVdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5lbmN2LG8sQS5ib3goQS50eXBlcy5hdmNDLG4pLEEuYm94KEEudHlwZXMuYnRydCxyKSxhLEEuYm94KEEudHlwZXMucGFzcCxzKSl9fSx7a2V5OiJzY2hpIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbXSksQj1BLnRlbmMoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2NoaSxJLEIpfX0se2tleToidGVuYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDI1NSZnLmRlZmF1bHRfSXNFbmNyeXB0ZWQsMjU1JmcuZGVmYXVsdF9JVl9zaXplXS5jb25jYXQoJG8oZy5kZWZhdWx0X0tJRCkpKTtyZXR1cm4gQS5ib3goQS50eXBlcy50ZW5jLEkpfX0se2tleToic2luZiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IFVpbnQ4QXJyYXkoW10pLEI9bmV3IFVpbnQ4QXJyYXkoW2cuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgwKSxnLmRhdGFfZm9ybWF0LmNoYXJDb2RlQXQoMSksZy5kYXRhX2Zvcm1hdC5jaGFyQ29kZUF0KDIpLGcuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgzKV0pLFE9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsOTksMTAxLDExMCw5OSwwLDEsMCwwXSksQz1BLnNjaGkoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2luZixJLEEuYm94KEEudHlwZXMuZnJtYSxCKSxBLmJveChBLnR5cGVzLnNjaG0sUSksQyl9fSx7a2V5OiJhdmMxaGV2MXZ2YzEiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJLEI7Zy5jb2RlY1R5cGU9PT1Obz8oST1BLmh2Y0MoZyksQj1BLnR5cGVzLmh2YzEpOmcuY29kZWNUeXBlPT09TW8/KEk9QS52dmNDKGcpLEI9QS50eXBlcy5idmMyKTooST1BLmF2Y0MoZyksQj1BLnR5cGVzLmF2YzEpO3ZhciBRPVtuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsZy53aWR0aD4+OCYyNTUsMjU1Jmcud2lkdGgsZy5oZWlnaHQ+PjgmMjU1LDI1NSZnLmhlaWdodCwwLDcyLDAsMCwwLDcyLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNCwxNywxN10pLEldO3JldHVybiBnLmNvZGVjVHlwZT09PU5vP1EucHVzaChBLmJveChBLnR5cGVzLmZpZWwsbmV3IFVpbnQ4QXJyYXkoWzEsMF0pKSk6Zy5zYXJSYXRpbyYmZy5zYXJSYXRpby5sZW5ndGg+MSYmUS5wdXNoKEEucGFzcChnLnNhclJhdGlvKSksQS5ib3guYXBwbHkoQSxbQl0uY29uY2F0KFEpKX19LHtrZXk6ImF2Y0MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJLEIsUSxDPVtdLEU9W107cmV0dXJuIGcuc3BzLmZvckVhY2goKGZ1bmN0aW9uKEEpe1E9QS5ieXRlTGVuZ3RoLEMucHVzaChRPj4+OCYyNTUpLEMucHVzaCgyNTUmUSksQy5wdXNoLmFwcGx5KEMsd28oQSkpfSkpLGcucHBzLmZvckVhY2goKGZ1bmN0aW9uKEEpe1E9QS5ieXRlTGVuZ3RoLEUucHVzaChRPj4+OCYyNTUpLEUucHVzaCgyNTUmUSksRS5wdXNoLmFwcGx5KEUsd28oQSkpfSkpLEEuYm94KEEudHlwZXMuYXZjQyxuZXcgVWludDhBcnJheSgoST0oQj1bMSxDWzNdLENbNF0sQ1s1XSwyNTUsMjI0fGcuc3BzLmxlbmd0aF0pLmNvbmNhdC5hcHBseShCLEMpLmNvbmNhdChbZy5wcHMubGVuZ3RoXSkpLmNvbmNhdC5hcHBseShJLEUpKSl9fSx7a2V5OiJ2dmNDIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLnZ2Y0M7cmV0dXJuIEEuYm94KEEudHlwZXMuYnYyQyxuZXcgVWludDhBcnJheShJKSl9fSx7a2V5OiJodmNDIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmh2Y0M7aWYoSSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxJIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gSTt2YXIgQixRPWcudnBzLEM9Zy5zcHMsRT1nLnBwcztpZihJKXt2YXIgaT1JLmdlbmVyYWxQcm9maWxlQ29tcGF0aWJpbGl0eUZsYWdzLHQ9SS5nZW5lcmFsQ29uc3RyYWludEluZGljYXRvckZsYWdzLGU9KFEubGVuZ3RoJiYxKSsoQy5sZW5ndGgmJjEpKyhFLmxlbmd0aCYmMSk7Qj1bMSxJLmdlbmVyYWxQcm9maWxlU3BhY2U8PDZ8SS5nZW5lcmFsVGllckZsYWc8PDV8SS5nZW5lcmFsUHJvZmlsZUlkYyxpPj4+MjQsaT4+PjE2LGk+Pj44LGksdFswXSx0WzFdLHRbMl0sdFszXSx0WzRdLHRbNV0sSS5nZW5lcmFsTGV2ZWxJZGMsMjQwLDAsMjUyLDI1MnxJLmNocm9tYUZvcm1hdElkYywyNDh8SS5iaXREZXB0aEx1bWFNaW51czgsMjQ4fEkuYml0RGVwdGhDaHJvbWFNaW51czgsMCwwLEkubnVtVGVtcG9yYWxMYXllcnM8PDN8SS50ZW1wb3JhbElkTmVzdGVkPDwyfDMsZV07dmFyIG89ZnVuY3Rpb24oQSl7dmFyIGc7Qi5wdXNoKEEubGVuZ3RoPj44LEEubGVuZ3RoKSwoZz1CKS5wdXNoLmFwcGx5KGcsd28oQSkpfTtRLmxlbmd0aCYmKEIucHVzaCgxNjAsMCxRLmxlbmd0aCksUS5mb3JFYWNoKG8pKSxDLmxlbmd0aCYmKEIucHVzaCgxNjEsMCxDLmxlbmd0aCksQy5mb3JFYWNoKG8pKSxFLmxlbmd0aCYmKEIucHVzaCgxNjIsMCxFLmxlbmd0aCksRS5mb3JFYWNoKG8pKX1lbHNlIEI9WzEsMSw5NiwwLDAsMCwxNDQsMCwwLDAsMCwwLDkzLDI0MCwwLDI1MiwyNTMsMjQ4LDI0OCwwLDAsMTUsMywxNjAsMCwxLDAsMjQsNjQsMSwxMiwxLDI1NSwyNTUsMSw5NiwwLDAsMywwLDE0NCwwLDAsMywwLDAsMywwLDkzLDE1MywxNTIsOSwxNjEsMCwxLDAsNDUsNjYsMSwxLDEsOTYsMCwwLDMsMCwxNDQsMCwwLDMsMCwwLDMsMCw5MywxNjAsMiwxMjgsMTI4LDQ1LDIyLDg5LDE1MywxNjQsMTQ3LDQzLDE1NCwxMjgsMTI4LDEyOCwxMzAsMCwwLDMsMCwyLDAsMCwzLDAsNTAsMTYsMTYyLDAsMSwwLDcsNjgsMSwxOTMsMTE0LDE4MCw5OCw2NF07cmV0dXJuIEEuYm94KEEudHlwZXMuaHZjQyxuZXcgVWludDhBcnJheShCKSl9fSx7a2V5OiJwYXNwIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST11byhnLDIpLEI9SVswXSxRPUlbMV07cmV0dXJuIEEuYm94KEEudHlwZXMucGFzcCxuZXcgVWludDhBcnJheShbQj4+MjQsQj4+MTYmMjU1LEI+PjgmMjU1LDI1NSZCLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKX19LHtrZXk6Im1wNGEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1wNGEsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCxnLmNoYW5uZWxDb3VudCwwLDE2LDAsMCwwLDAsZy5zYW1wbGVSYXRlPj44JjI1NSwyNTUmZy5zYW1wbGVSYXRlLDAsMF0pLGcuY29uZmlnLmxlbmd0aD9BLmVzZHMoZy5jb25maWcpOnZvaWQgMCl9fSx7a2V5OiJlc2RzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aDtyZXR1cm4gQS5ib3goQS50eXBlcy5lc2RzLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDMsMjMrSSwwLDAsMCw0LDE1K0ksNjQsMjEsMCw2LDAsMCwwLDIxOCwxOTIsMCwwLDIxOCwxOTIsNV0uY29uY2F0KFtJXSkuY29uY2F0KGcpLmNvbmNhdChbNiwxLDJdKSkpfX0se2tleToibXZleCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94LmFwcGx5KEEsW0EudHlwZXMubXZleF0uY29uY2F0KHdvKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmV4KGcuaWQpfSkpKSkpfX0se2tleToidHJleCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJleCxuZXcgVWludDhBcnJheShbMCwwLDAsMCxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMV0pKX19LHtrZXk6InRyZXgxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmV4LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZywwLDAsMCwxLDAsMCwyLDAsMCwwLDAsMCwwLDEsMCwwXSkpfX0se2tleToidHJleDIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLnRyZXgsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnLDAsMCwwLDEsMCwwLDQsMCwwLDAsMCwwLDIsMCwwLDBdKSl9fSx7a2V5OiJtb29mIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb29mLEEubWZoZChnWzBdLnNhbXBsZXM/Z1swXS5zYW1wbGVzWzBdLmdvcElkOjApXS5jb25jYXQod28oZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWYoZyl9KSkpKSl9fSx7a2V5OiJtZmhkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pKX19LHtrZXk6InRyYWYiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPUEudGZoZChnLmlkKSxCPUEudGZkdChnLGcuYmFzZU1lZGlhRGVjb2RlVGltZSksUT0wO2lmKGcuaXNWaWRlbyYmZy52aWRlb1NlbmMmJmcudmlkZW9TZW5jLmZvckVhY2goKGZ1bmN0aW9uKEEpe1ErPTgsQS5zdWJzYW1wbGVzJiZBLnN1YnNhbXBsZXMubGVuZ3RoJiYoUSs9MixRKz02KkEuc3Vic2FtcGxlcy5sZW5ndGgpfSkpLGcudmlkZW9TZW5jTGVuZ3RoPVEsZy51c2VFTUUmJihnLmlzVmlkZW9FbmNyeXB0aW9ufHxnLmlzQXVkaW9FbmNyeXB0aW9uKSl7aWYoZy5pc1ZpZGVvRW5jcnlwdGlvbil7aWYoZy5pc1ZpZGVvKXt2YXIgQz1BLnNhaXooZyksRT1BLnNhaW8oZyksaT1BLnRydW4xKGcpLHQ9QS5zZW5jKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLEMsRSxpLHQpfWlmKGcuaXNBdWRpb0VuY3J5cHRpb24pe3ZhciBlPUEuc2JncCgpLG89QS5zYWl6KGcpLG49QS5zYWlvKGcpLHI9QS5zZW5jKGcpLGE9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixlLG8sbixyLGEpfXZhciBzPUEuc2JncCgpLGM9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixzLGMpfWlmKGcuaXNWaWRlbyl7dmFyIGg9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixoKX12YXIgeT1BLnNiZ3AoKSxEPUEuc2FpeihnKSxmPUEuc2FpbyhnKSx1PUEuc2VuYyhnKSx3PUEudHJ1bjEoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIseSxELGYsdSx3KX12YXIgZD1BLnNkdHAoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIsZCxBLnRydW4oZy5zYW1wbGVzLGQuYnl0ZUxlbmd0aCs3NikpfX0se2tleToic2R0cCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IG5uO3JldHVybiBnLnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7SS53cml0ZShuZXcgVWludDhBcnJheShnLmlzVmlkZW8/W0Eua2V5ZnJhbWU/MzI6MTZdOlsxNl0pKX0pKSxBLmJveChBLnR5cGVzLnNkdHAsdGhpcy5leHRlbnNpb24oMCwwKSxJLmJ1ZmZlcil9fSx7a2V5OiJ0cnVuMSIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IG5uLEI9bm4ud3JpdGVVaW50MzIoZy5zYW1wbGVzLmxlbmd0aCksUT1udWxsO2lmKGcuaXNWaWRlbyl7dmFyIEM9Zy52aWRlb1NlbmNMZW5ndGg7UT1ubi53cml0ZVVpbnQzMigxNipnLnNhbXBsZXMubGVuZ3RoK0MrMTQ5KSwhZy5pc1ZpZGVvRW5jcnlwdGlvbiYmZy5pc0F1ZGlvRW5jcnlwdGlvbiYmKFE9bm4ud3JpdGVVaW50MzIoMTYqZy5zYW1wbGVzLmxlbmd0aCs5MikpfWVsc2V7dmFyIEU9MTIqZy5zYW1wbGVzLmxlbmd0aCsxMjQ7Zy5pc0F1ZGlvRW5jcnlwdGlvbiYmKEU9MTIqZy5zYW1wbGVzLmxlbmd0aCs4KmcuYXVkaW9TZW5jLmxlbmd0aCsxNzcpLFE9bm4ud3JpdGVVaW50MzIoRSl9cmV0dXJuIGcuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXtJLndyaXRlKG5uLndyaXRlVWludDMyKEEuZHVyYXRpb24pKSxJLndyaXRlKG5uLndyaXRlVWludDMyKEEuc2l6ZSkpLEkud3JpdGUobm4ud3JpdGVVaW50MzIoQS5rZXlmcmFtZT8zMzU1NDQzMjo2NTUzNikpLGcuaXNWaWRlbyYmSS53cml0ZShubi53cml0ZVVpbnQzMihBLmN0cz9BLmN0czowKSl9KSksQS5ib3goQS50eXBlcy50cnVuLHRoaXMuZXh0ZW5zaW9uKDAsZy5mbGFncyksQixRLEkuYnVmZmVyKX19LHtrZXk6InNlbmMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBubixCPWcuc2FtcGxlcy5sZW5ndGgsUT1nLmlzVmlkZW8/MTY6OCxDPWcuaXNWaWRlbz8yOjAsRT1bXSxpPTA7cmV0dXJuIGcuaXNWaWRlbz8oRT1nLnZpZGVvU2VuYyxpPWcudmlkZW9TZW5jTGVuZ3RoKTpFPWcuYXVkaW9TZW5jLGk9aXx8USpCLEkud3JpdGUobm4ud3JpdGVVaW50MzIoMTYraSksQS50eXBlcy5zZW5jLHRoaXMuZXh0ZW5zaW9uKDAsQykpLEkud3JpdGUobm4ud3JpdGVVaW50MzIoQikpLEUuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPTA7ZzxBLkluaXRpYWxpemF0aW9uVmVjdG9yLmxlbmd0aDtnKyspSS53cml0ZShuZXcgVWludDhBcnJheShbQS5Jbml0aWFsaXphdGlvblZlY3RvcltnXV0pKTtBLnN1YnNhbXBsZXMmJkEuc3Vic2FtcGxlcy5sZW5ndGgmJihJLndyaXRlKG5uLndyaXRlVWludDE2KEEuc3Vic2FtcGxlcy5sZW5ndGgpKSxBLnN1YnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7SS53cml0ZShubi53cml0ZVVpbnQxNihBLkJ5dGVzT2ZDbGVhckRhdGEpKSxJLndyaXRlKG5uLndyaXRlVWludDMyKEEuQnl0ZXNPZlByb3RlY3RlZERhdGEpKX0pKSl9KSksSS5idWZmZXJ9fSx7a2V5OiJzYWlvIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST0xMipnLnNhbXBsZXMubGVuZ3RoKzE0MTshZy5pc1ZpZGVvJiZnLmlzQXVkaW9FbmNyeXB0aW9uJiYoST0xNDkpO3ZhciBCPW5ldyBVaW50OEFycmF5KFsxLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2FpbyxCKX19LHtrZXk6InNhaXoiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcuc2FtcGxlcy5sZW5ndGgsQj1uZXcgVWludDhBcnJheShbMCwwLDAsMCwxNixJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2FpeixCKX19LHtrZXk6InNiZ3AiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc9bmV3IFVpbnQ4QXJyYXkoWzExNCwxMTEsMTA4LDEwOCwwLDAsMCwxLDAsMCwxLDI1LDAsMCwwLDFdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zYmdwLHRoaXMuZXh0ZW5zaW9uKDAsMCksZyl9fSx7a2V5OiJleHRlbnNpb24iLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtBLGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pfX0se2tleToidGZoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudGZoZCxuZXcgVWludDhBcnJheShbMCwwLDAsMCxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmddKSl9fSx7a2V5OiJ0ZmR0Iix2YWx1ZTpmdW5jdGlvbihnLEkpe3ZhciBCPU1hdGguZmxvb3IoSS8ocm4rMSkpLFE9TWF0aC5mbG9vcihJJShybisxKSk7cmV0dXJuIGcudXNlRU1FJiYoZy5pc1ZpZGVvRW5jcnlwdGlvbnx8Zy5pc0F1ZGlvRW5jcnlwdGlvbik/QS5ib3goQS50eXBlcy50ZmR0LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKTpBLmJveChBLnR5cGVzLnRmZHQsbmV3IFVpbnQ4QXJyYXkoWzEsMCwwLDAsQj4+MjQsQj4+MTYmMjU1LEI+PjgmMjU1LDI1NSZCLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKX19LHtrZXk6InRydW4iLHZhbHVlOmZ1bmN0aW9uKGcsSSl7dmFyIEI9Zy5sZW5ndGgsUT0xMisxNipCO0krPTgrUTt2YXIgQz1uZXcgVWludDhBcnJheShRKTtDLnNldChbMCwwLDE1LDEsQj4+PjI0JjI1NSxCPj4+MTYmMjU1LEI+Pj44JjI1NSwyNTUmQixJPj4+MjQmMjU1LEk+Pj4xNiYyNTUsST4+PjgmMjU1LDI1NSZJXSwwKTtmb3IodmFyIEU9MDtFPEI7RSsrKXt2YXIgaT1nW0VdLHQ9aS5kdXJhdGlvbixlPWkuc2l6ZSxvPWkuZmxhZyxuPXZvaWQgMD09PW8/e306byxyPWkuY3RzLGE9dm9pZCAwPT09cj8wOnI7Qy5zZXQoW3Q+Pj4yNCYyNTUsdD4+PjE2JjI1NSx0Pj4+OCYyNTUsMjU1JnQsZT4+PjI0JjI1NSxlPj4+MTYmMjU1LGU+Pj44JjI1NSwyNTUmZSxuLmlzTGVhZGluZzw8MnwobnVsbD09PW4uZGVwZW5kc09ufHx2b2lkIDA9PT1uLmRlcGVuZHNPbj8xOm4uZGVwZW5kc09uKSxuLmlzRGVwZW5kZWRPbjw8NnxuLmhhc1JlZHVuZGFuY3k8PDR8bi5wYWRkaW5nVmFsdWU8PDF8KG51bGw9PT1uLmlzTm9uU3luY1NhbXBsZXx8dm9pZCAwPT09bi5pc05vblN5bmNTYW1wbGU/MTpuLmlzTm9uU3luY1NhbXBsZSksNjE0NDAmbi5kZWdyYWRhdGlvblByaW9yaXR5LDE1Jm4uZGVncmFkYXRpb25Qcmlvcml0eSxhPj4+MjQmMjU1LGE+Pj4xNiYyNTUsYT4+PjgmMjU1LDI1NSZhXSwxMisxNipFKX1yZXR1cm4gQS5ib3goQS50eXBlcy50cnVuLEMpfX0se2tleToibW9vdk1QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94LmFwcGx5KEEsW0EudHlwZXMubW9vdixBLm12aGQoZ1swXS5kdXJhdGlvbixnWzBdLnRpbWVzY2FsZSldLmNvbmNhdCh3byhnLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhY2tNUDQoZyl9KSkpKSl9fSx7a2V5OiJ0cmFja01QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhayxBLnRraGQoZy5pZCxnLmR1cmF0aW9uLGcud2lkdGgsZy5oZWlnaHQpLEEubWRpYU1QNChnKSl9fSx7a2V5OiJtZGlhTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGlhLEEubWRoZChnLmR1cmF0aW9uLGcudGltZXNjYWxlKSxBLmhkbHIoZy50eXBlKSxBLm1pbmZNUDQoZykpfX0se2tleToibWluZk1QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubWluZixnLnR5cGU9PT1Sbz9BLlZNSEQ6QS5TTUhELEEuRElORixBLnN0YmxNUDQoZykpfX0se2tleToic3RibE1QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5leHQsQj1bQS5zdHNkKGcpLEEuc3R0cyhJLnN0dHMpLEEuc3RzYyhJLnN0c2MpLEEuc3RzeihJLnN0c3opLEEuc3RjbyhJLnN0Y28pXTtyZXR1cm4gSS5zdHNzLmxlbmd0aCYmQi5wdXNoKEEuc3RzcyhJLnN0c3MpKSxJLmN0dHMubGVuZ3RoJiZCLnB1c2goQS5jdHRzKEkuY3R0cykpLEEuYm94LmFwcGx5KEEsW0EudHlwZXMuc3RibF0uY29uY2F0KEIpKX19LHtrZXk6InN0dHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoOCpJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS52YWx1ZSxJPUEuY291bnQ7Qi5zZXQoW0k+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSSxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmddLFEpLFErPTh9KSksQS5ib3goQS50eXBlcy5zdHRzLFdvKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6InN0c2MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoMTIqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEuZmlyc3RDaHVuayxJPUEuc2FtcGxlc1BlckNodW5rLEM9QS5zYW1wbGVEZXNjSW5kZXg7Qi5zZXQoW2c+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZyxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksQz4+MjQsQz4+MTYmMjU1LEM+PjgmMjU1LDI1NSZDXSxRKSxRKz0xMn0pKSxBLmJveChBLnR5cGVzLnN0c2MsV28obmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RzeiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg0KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSxRKSxRKz00fSkpLEEuYm94KEEudHlwZXMuc3RzeixXbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6InN0Y28iLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoNCpJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Qi5zZXQoW0E+PjI0LEE+PjE2JjI1NSxBPj44JjI1NSwyNTUmQV0sUSksUSs9NH0pKSxBLmJveChBLnR5cGVzLnN0Y28sV28obmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RzcyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg0KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSxRKSxRKz00fSkpLEEuYm94KEEudHlwZXMuc3RzcyxXbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJjdHRzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KDgqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEudmFsdWUsST1BLmNvdW50O0Iuc2V0KFtJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnXSxRKSxRKz04fSkpLEEuYm94KEEudHlwZXMuY3R0cyxXbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJzdHlwIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBBLmJveChBLnR5cGVzLnN0eXAsbmV3IFVpbnQ4QXJyYXkoWzEwOSwxMTUsMTAwLDEwNCwwLDAsMCwwLDEwOSwxMTUsMTAwLDEwNCwxMDksMTE1LDEwNSwxMjBdKSl9fSx7a2V5OiJzaWR4Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLnRpbWVzY2FsZSxCPWcuc2FtcGxlc1swXS5kdXJhdGlvbixRPUIqZy5zYW1wbGVzLmxlbmd0aCxDPWcuc2FtcGxlc1swXS5zYW1wbGVPZmZzZXQqQixFPTg7Zy5zYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe0UrPUEuc2l6ZX0pKTt2YXIgaT0wO2lmKGcuaXNWaWRlbyl7dmFyIHQsZT0wO2cudmlkZW9TZW5jJiYodD1nLnZpZGVvU2VuYyksZy5pc1ZpZGVvJiZ0LmZvckVhY2goKGZ1bmN0aW9uKEEpe2UrPTgsQS5zdWJzYW1wbGVzJiZBLnN1YnNhbXBsZXMubGVuZ3RoJiYoZSs9MixlKz02KkEuc3Vic2FtcGxlcy5sZW5ndGgpfSkpLGcudmlkZW9TZW5jTGVuZ3RoPWUsaT1FKzE0MSsxNipnLnNhbXBsZXMubGVuZ3RoK2UsZy51c2VFTUUmJmcuaXNBdWRpb0VuY3J5cHRpb24mJiFnLmlzVmlkZW9FbmNyeXB0aW9uJiYoaT1FKzE2Kmcuc2FtcGxlcy5sZW5ndGgrODQpfWVsc2UgaT1FKzExNisxMipnLnNhbXBsZXMubGVuZ3RoLGcudXNlRU1FJiZnLmlzQXVkaW9FbmNyeXB0aW9uJiYoaT1FKzE2OSsxMipnLnNhbXBsZXMubGVuZ3RoKzgqZy5hdWRpb1NlbmMubGVuZ3RoKTt2YXIgbz1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwyNTUmZy5pZCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLEM+PjI0JjI1NSxDPj4xNiYyNTUsQz4+OCYyNTUsMjU1JkMsMCwwLDAsMCwwLDAsMCwxLDAsaT4+MTYmMjU1LGk+PjgmMjU1LDI1NSZpLFE+PjI0JjI1NSxRPj4xNiYyNTUsUT4+OCYyNTUsMjU1JlEsMTQ0LDAsMCwwXSk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2lkeCxvKX19LHtrZXk6Im1kYXQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1kYXQsZyl9fV0pLEF9KCk7Zm8oYW4sInR5cGVzIixbImF2YzEiLCJhdmNDIiwiaHZjMSIsImh2Y0MiLCJkaW5mIiwiZHJlZiIsImVkdHMiLCJlbHN0IiwiZXNkcyIsImZ0eXAiLCJoZGxyIiwibWRhdCIsIm1kaGQiLCJtZGlhIiwibWZoZCIsIm1pbmYiLCJtb29mIiwibW9vdiIsIm1wNGEiLCJtdmV4IiwibXZoZCIsInBhc3AiLCJzdGJsIiwic3RjbyIsInN0c2MiLCJzdHNkIiwic3RzeiIsInN0dHMiLCJ0ZmR0IiwidGZoZCIsInRyYWYiLCJ0cmFrIiwidHJleCIsInRraGQiLCJ2bWhkIiwic21oZCIsImN0dHMiLCJzdHNzIiwic3R5cCIsInBzc2giLCJzaWR4Iiwic2JncCIsInNhaXoiLCJzYWlvIiwic2VuYyIsInRydW4iLCJlbmN2IiwiZW5jYSIsInNpbmYiLCJidHJ0IiwiZnJtYSIsInRlbmMiLCJzY2htIiwic2NoaSIsIm1laGQiLCJmaWVsIiwic2R0cCIsImJ2YzIiLCJidjJDIl0ucmVkdWNlKChmdW5jdGlvbihBLGcpe3JldHVybiBBW2ddPVtnLmNoYXJDb2RlQXQoMCksZy5jaGFyQ29kZUF0KDEpLGcuY2hhckNvZGVBdCgyKSxnLmNoYXJDb2RlQXQoMyldLEF9KSxPYmplY3QuY3JlYXRlKG51bGwpKSksZm8oYW4sIkhETFJfVFlQRVMiLHt2aWRlbzpuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLDExOCwxMDUsMTAwLDEwMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4NiwxMDUsMTAwLDEwMSwxMTEsNzIsOTcsMTEwLDEwMCwxMDgsMTAxLDExNCwwXSksYXVkaW86bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwxMTUsMTExLDExNywxMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsODMsMTExLDExNywxMTAsMTAwLDcyLDk3LDExMCwxMDAsMTA4LDEwMSwxMTQsMF0pfSksZm8oYW4sIkZUWVBBVkMxIixhbi5ib3goYW4udHlwZXMuZnR5cCxuZXcgVWludDhBcnJheShbMTA1LDExNSwxMTEsMTA5LDAsMCwwLDEsMTA1LDExNSwxMTEsMTA5LDk3LDExOCw5OSw0OV0pKSksZm8oYW4sIkZUWVBIRVYxIixhbi5ib3goYW4udHlwZXMuZnR5cCxuZXcgVWludDhBcnJheShbMTA1LDExNSwxMTEsMTA5LDAsMCwwLDEsMTA1LDExNSwxMTEsMTA5LDEwNCwxMDEsMTE4LDQ5XSkpKSxmbyhhbiwiRElORiIsYW4uYm94KGFuLnR5cGVzLmRpbmYsYW4uYm94KGFuLnR5cGVzLmRyZWYsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMSwwLDAsMCwxMiwxMTcsMTE0LDEwOCwzMiwwLDAsMCwxXSkpKSksZm8oYW4sIlZNSEQiLGFuLmJveChhbi50eXBlcy52bWhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwxLDAsMCwwLDAsMCwwLDAsMF0pKSksZm8oYW4sIlNNSEQiLGFuLmJveChhbi50eXBlcy5zbWhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDBdKSkpLGZvKGFuLCJTdGJsVGFibGUiLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDBdKSksZm8oYW4sIlNUVFMiLGFuLmJveChhbi50eXBlcy5zdHRzLGFuLlN0YmxUYWJsZSkpLGZvKGFuLCJTVFNDIixhbi5ib3goYW4udHlwZXMuc3RzYyxhbi5TdGJsVGFibGUpKSxmbyhhbiwiU1RTWiIsYW4uYm94KGFuLnR5cGVzLnN0c3osbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSkpKSxmbyhhbiwiU1RDTyIsYW4uYm94KGFuLnR5cGVzLnN0Y28sYW4uU3RibFRhYmxlKSk7dmFyIHNuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnLEkpe2hvKHRoaXMsQSksdGhpcy5uYW1lPWd8fCIiLHRoaXMuX3ByZWZpeD0iWyIuY29uY2F0KHRoaXMubmFtZSwiXSIpLEEuZGlzYWJsZWQ9SX1yZXR1cm4gRG8oQSxbe2tleToiZGVidWciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLmRlYnVnLmFwcGx5KGcsW3RoaXMuX3ByZWZpeF0uY29uY2F0KEIpKX19fSx7a2V5OiJsb2ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLmxvZy5hcHBseShnLFt0aGlzLl9wcmVmaXhdLmNvbmNhdChCKSl9fX0se2tleToid2FybiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztpZighQS5kaXNhYmxlZCl7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoSSksUT0wO1E8STtRKyspQltRXT1hcmd1bWVudHNbUV07KGc9Y29uc29sZSkud2Fybi5hcHBseShnLFt0aGlzLl9wcmVmaXhdLmNvbmNhdChCKSl9fX0se2tleToiZXJyb3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLmVycm9yLmFwcGx5KGcsW3RoaXMuX3ByZWZpeF0uY29uY2F0KEIpKX19fSx7a2V5OiJ0YWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztBLmRpc2FibGVkfHwoY29uc29sZS5ncm91cCh0aGlzLl9wcmVmaXgpLChnPWNvbnNvbGUpLnRhYmxlLmFwcGx5KGcsYXJndW1lbnRzKSxjb25zb2xlLmdyb3VwRW5kKCkpfX1dLFt7a2V5OiJlbmFibGUiLHZhbHVlOmZ1bmN0aW9uKCl7QS5kaXNhYmxlZD0hMX19LHtrZXk6ImRpc2FibGUiLHZhbHVlOmZ1bmN0aW9uKCl7QS5kaXNhYmxlZD0hMH19XSksQX0oKTtmbyhzbiwiZGlzYWJsZWQiLCEwKTt2YXIgY249ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKGcsSSxCKXtobyh0aGlzLEEpLHRoaXMudmlkZW9UcmFjaz1nLHRoaXMuYXVkaW9UcmFjaz1JO3ZhciBRPS9DaHJvbWVcLyhbXi5dKykvLmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudCk7dGhpcy5mb3JjZUZpcnN0SURSPVEmJk51bWJlcihRWzFdKTw1MCx0aGlzLmxvZz1uZXcgc24oIkZNUDRSZW11eGVyIiwhQnx8IUIub3BlbkxvZ3x8IUIub3BlbkxvZyl9cmV0dXJuIERvKEEsW3trZXk6InJlbXV4Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBLGcsSSxCLFEsQz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLEU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGk9dGhpcy52aWRlb1RyYWNrLHQ9dGhpcy5hdWRpb1RyYWNrLGU9aS5leGlzdCgpLG89dC5leGlzdCgpLG49W107cmV0dXJuIEMmJihFJiZFLmluaXRNZXJnZT8oZSYmbi5wdXNoKHRoaXMudmlkZW9UcmFjayksbyYmbi5wdXNoKHRoaXMuYXVkaW9UcmFjayksST1hbi5pbml0U2VnbWVudChuKSk6KGUmJihBPWFuLmluaXRTZWdtZW50KFt0aGlzLnZpZGVvVHJhY2tdKSksbyYmKGc9YW4uaW5pdFNlZ21lbnQoW3RoaXMuYXVkaW9UcmFja10pKSkpLGUmJmkuaGFzU2FtcGxlKCkmJihCPXRoaXMuX3JlbXV4VmlkZW8oKSksbyYmdC5oYXNTYW1wbGUoKSYmKFE9dGhpcy5fcmVtdXhBdWRpbygpKSxpLnNhbXBsZXM9W10sdC5zYW1wbGVzPVtdLHtpbml0U2VnbWVudDpJLHZpZGVvSW5pdFNlZ21lbnQ6QSxhdWRpb0luaXRTZWdtZW50OmcsdmlkZW9TZWdtZW50OkIsYXVkaW9TZWdtZW50OlF9fX0se2tleToiX3JlbXV4VmlkZW8iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy52aWRlb1RyYWNrO3RoaXMuZm9yY2VGaXJzdElEUiYmKEEuc2FtcGxlc1swXS5mbGFnPXtkZXBlbmRzT246Mixpc05vblN5bmNTYW1wbGU6MH0pO3ZhciBnPUEuc2FtcGxlcyxJPTA7Zy5mb3JFYWNoKChmdW5jdGlvbihBKXtJKz1BLnVuaXRzLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLmJ5dGVMZW5ndGh9KSwwKSxJKz00KkEudW5pdHMubGVuZ3RofSkpO2Zvcih2YXIgQixRPW5ldyBVaW50OEFycmF5KEkpLEM9bmV3IERhdGFWaWV3KFEuYnVmZmVyKSxFPWZ1bmN0aW9uKEEsSSl7ST1nW2ldO3ZhciBFPTA7SS51bml0cy5mb3JFYWNoKChmdW5jdGlvbihnKXtDLnNldFVpbnQzMihBLGcuYnl0ZUxlbmd0aCksQSs9NCxRLnNldChnLEEpLEErPWcuYnl0ZUxlbmd0aCxFKz00K2cuYnl0ZUxlbmd0aH0pKSxJLnNpemU9RSxlPUEsQj1JfSxpPTAsdD1nLmxlbmd0aCxlPTA7aTx0O2krKylFKGUsQik7dmFyIG89YW4ubWRhdChRKTtyZXR1cm4gV28oYW4ubW9vZihbQV0pLG8pfX0se2tleToiX3JlbXV4QXVkaW8iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5hdWRpb1RyYWNrLGc9bmV3IFVpbnQ4QXJyYXkoQS5zYW1wbGVzLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLnNpemV9KSwwKSk7QS5zYW1wbGVzLnJlZHVjZSgoZnVuY3Rpb24oQSxJKXtyZXR1cm4gZy5zZXQoSS5kYXRhLEEpLEErSS5zaXplfSksMCk7dmFyIEk9YW4ubWRhdChnKTtyZXR1cm4gV28oYW4ubW9vZihbQV0pLEkpfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52aWRlb1RyYWNrLnJlc2V0KCksdGhpcy5hdWRpb1RyYWNrLnJlc2V0KCl9fV0pLEF9KCk7ZnVuY3Rpb24gaG4oQSl7cmV0dXJuKGhuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKEEpe3JldHVybiB0eXBlb2YgQX06ZnVuY3Rpb24oQSl7cmV0dXJuIEEmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJkEuY29uc3RydWN0b3I9PT1TeW1ib2wmJkEhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBBfSkoQSl9ZnVuY3Rpb24geW4oQSxnKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBEbihBLGcpe2Zvcih2YXIgST0wO0k8Zy5sZW5ndGg7SSsrKXt2YXIgQj1nW0ldO0IuZW51bWVyYWJsZT1CLmVudW1lcmFibGV8fCExLEIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBCJiYoQi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsKFE9Qi5rZXksQz12b2lkIDAsInN5bWJvbCI9PXR5cGVvZihDPWZ1bmN0aW9uKEEsZyl7aWYoIm9iamVjdCIhPXR5cGVvZiBBfHxudWxsPT09QSlyZXR1cm4gQTt2YXIgST1BW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09SSl7dmFyIEI9SS5jYWxsKEEsZ3x8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIEIpcmV0dXJuIEI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1nP1N0cmluZzpOdW1iZXIpKEEpfShRLCJzdHJpbmciKSk/QzpTdHJpbmcoQykpLEIpfXZhciBRLEN9ZnVuY3Rpb24gZm4oQSxnLEkpe3JldHVybiBnJiZEbihBLnByb3RvdHlwZSxnKSxJJiZEbihBLEkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLEF9ZnVuY3Rpb24gdW4oQSxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6QSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmZG4oQSxnKX1mdW5jdGlvbiB3bihBKXtyZXR1cm4od249T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oQSl7cmV0dXJuIEEuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoQSl9KShBKX1mdW5jdGlvbiBkbihBLGcpe3JldHVybihkbj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihBLGcpe3JldHVybiBBLl9fcHJvdG9fXz1nLEF9KShBLGcpfWZ1bmN0aW9uIEZuKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKEEpe3JldHVybiExfX1mdW5jdGlvbiBsbihBLGcsSSl7cmV0dXJuKGxuPUZuKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1bbnVsbF07Qi5wdXNoLmFwcGx5KEIsZyk7dmFyIFE9bmV3KEZ1bmN0aW9uLmJpbmQuYXBwbHkoQSxCKSk7cmV0dXJuIEkmJmRuKFEsSS5wcm90b3R5cGUpLFF9KS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gR24oQSxnKXtpZihnJiYoIm9iamVjdCI9PXR5cGVvZiBnfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIEF9KEEpfWZ1bmN0aW9uIFJuKEEpe3ZhciBnPUZuKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEksQj13bihBKTtpZihnKXt2YXIgUT13bih0aGlzKS5jb25zdHJ1Y3RvcjtJPVJlZmxlY3QuY29uc3RydWN0KEIsYXJndW1lbnRzLFEpfWVsc2UgST1CLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gR24odGhpcyxJKX19ZnVuY3Rpb24gVW4oKXtyZXR1cm4gVW49InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPWZ1bmN0aW9uKEEsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEEsZykmJm51bGwhPT0oQT13bihBKSk7KTtyZXR1cm4gQX0oQSxnKTtpZihCKXt2YXIgUT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEIsZyk7cmV0dXJuIFEuZ2V0P1EuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP0E6SSk6US52YWx1ZX19LFVuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIga249cEUsU249IkFycmF5QnVmZmVyIixObj1YQ1tTbl07T0koe2dsb2JhbDohMCxmb3JjZWQ6cltTbl0hPT1Obn0se0FycmF5QnVmZmVyOk5ufSksa24oU24pLE1pKCJJbnQ4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSksTWkoIlVpbnQ4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSwhMCksTWkoIkludDE2IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSksTWkoIlVpbnQxNiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJJbnQzMiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJVaW50MzIiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxNaSgiRmxvYXQzMiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJGbG9hdDY0IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSk7dmFyIE1uPWwsWW49ZnVuY3Rpb24oKXt2YXIgQT1Nbih0aGlzKSxnPSIiO3JldHVybiBBLmdsb2JhbCYmKGcrPSJnIiksQS5pZ25vcmVDYXNlJiYoZys9ImkiKSxBLm11bHRpbGluZSYmKGcrPSJtIiksQS5kb3RBbGwmJihnKz0icyIpLEEudW5pY29kZSYmKGcrPSJ1IiksQS5zdGlja3kmJihnKz0ieSIpLGd9LEhuPWFJLHBuPWwsSm49ZyxMbj1Zbix2bj0idG9TdHJpbmciLEtuPVJlZ0V4cC5wcm90b3R5cGUsbW49S25bdm5dLHhuPUpuKChmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9bW4uY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9KX0pKSxxbj1tbi5uYW1lIT12bjsoeG58fHFuKSYmSG4oUmVnRXhwLnByb3RvdHlwZSx2biwoZnVuY3Rpb24oKXt2YXIgQT1wbih0aGlzKSxnPVN0cmluZyhBLnNvdXJjZSksST1BLmZsYWdzO3JldHVybiIvIitnKyIvIitTdHJpbmcodm9pZCAwPT09SSYmQSBpbnN0YW5jZW9mIFJlZ0V4cCYmISgiZmxhZ3MiaW4gS24pP0xuLmNhbGwoQSk6SSl9KSx7dW5zYWZlOiEwfSk7dmFyIGJuPU9JLFRuPW8sT249W10uam9pbixXbj1FIT1PYmplY3QsWm49bHQoImpvaW4iLCIsIik7Ym4oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpXbnx8IVpufSx7am9pbjpmdW5jdGlvbihBKXtyZXR1cm4gT24uY2FsbChUbih0aGlzKSx2b2lkIDA9PT1BPyIsIjpBKX19KTt2YXIgam49T0ksUG49ZyxYbj15RSxWbj1oLHpuPWosX249U0EsJG49JGUsQXI9d0UsZ3I9Qm8sSXI9b0EsQnI9RkEoImlzQ29uY2F0U3ByZWFkYWJsZSIpLFFyPTkwMDcxOTkyNTQ3NDA5OTEsQ3I9Ik1heGltdW0gYWxsb3dlZCBpbmRleCBleGNlZWRlZCIsRXI9SXI+PTUxfHwhUG4oKGZ1bmN0aW9uKCl7dmFyIEE9W107cmV0dXJuIEFbQnJdPSExLEEuY29uY2F0KClbMF0hPT1BfSkpLGlyPWdyKCJjb25jYXQiKSx0cj1mdW5jdGlvbihBKXtpZighVm4oQSkpcmV0dXJuITE7dmFyIGc9QVtCcl07cmV0dXJuIHZvaWQgMCE9PWc/ISFnOlhuKEEpfTtqbih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFFcnx8IWlyfSx7Y29uY2F0OmZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEMsRT16bih0aGlzKSxpPUFyKEUsMCksdD0wO2ZvcihnPS0xLEI9YXJndW1lbnRzLmxlbmd0aDtnPEI7ZysrKWlmKHRyKEM9LTE9PT1nP0U6YXJndW1lbnRzW2ddKSl7aWYodCsoUT1fbihDLmxlbmd0aCkpPlFyKXRocm93IFR5cGVFcnJvcihDcik7Zm9yKEk9MDtJPFE7SSsrLHQrKylJIGluIEMmJiRuKGksdCxDW0ldKX1lbHNle2lmKHQ+PVFyKXRocm93IFR5cGVFcnJvcihDcik7JG4oaSx0KyssQyl9cmV0dXJuIGkubGVuZ3RoPXQsaX19KTt2YXIgZXI9T0ksb3I9SEEsbnI9UkEscnI9U0EsYXI9aixzcj13RSxjcj0kZSxocj1Cbygic3BsaWNlIikseXI9TWF0aC5tYXgsRHI9TWF0aC5taW47ZXIoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohaHJ9LHtzcGxpY2U6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQyxFLGksdD1hcih0aGlzKSxlPXJyKHQubGVuZ3RoKSxvPW9yKEEsZSksbj1hcmd1bWVudHMubGVuZ3RoO2lmKDA9PT1uP0k9Qj0wOjE9PT1uPyhJPTAsQj1lLW8pOihJPW4tMixCPURyKHlyKG5yKGcpLDApLGUtbykpLGUrSS1CPjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgVHlwZUVycm9yKCJNYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIGV4Y2VlZGVkIik7Zm9yKFE9c3IodCxCKSxDPTA7QzxCO0MrKykoRT1vK0MpaW4gdCYmY3IoUSxDLHRbRV0pO2lmKFEubGVuZ3RoPUIsSTxCKXtmb3IoQz1vO0M8ZS1CO0MrKylpPUMrSSwoRT1DK0IpaW4gdD90W2ldPXRbRV06ZGVsZXRlIHRbaV07Zm9yKEM9ZTtDPmUtQitJO0MtLSlkZWxldGUgdFtDLTFdfWVsc2UgaWYoST5CKWZvcihDPWUtQjtDPm87Qy0tKWk9QytJLTEsKEU9QytCLTEpaW4gdD90W2ldPXRbRV06ZGVsZXRlIHRbaV07Zm9yKEM9MDtDPEk7QysrKXRbQytvXT1hcmd1bWVudHNbQysyXTtyZXR1cm4gdC5sZW5ndGg9ZS1CK0ksUX19KTtmb3IodmFyIGZyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe3luKHRoaXMsQSl9cmV0dXJuIGZuKEEsW3trZXk6Im1peEluIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLEEpfX0se2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9bmV3IHRoaXMuY29uc3RydWN0b3I7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx0aGlzKSxBfX1dLFt7a2V5OiJjcmVhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBBPWFyZ3VtZW50cy5sZW5ndGgsZz1uZXcgQXJyYXkoQSksST0wO0k8QTtJKyspZ1tJXT1hcmd1bWVudHNbSV07cmV0dXJuIGxuKHRoaXMsZyl9fV0pLEF9KCksdXI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7dmFyIEEsQj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10sUT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NCpCLmxlbmd0aDt5bih0aGlzLEkpLEE9Zy5jYWxsKHRoaXMpO3ZhciBDPUI7aWYoQyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiYoQz1uZXcgVWludDhBcnJheShDKSksKEMgaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8QyBpbnN0YW5jZW9mIEludDE2QXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8QyBpbnN0YW5jZW9mIEludDMyQXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8QyBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8QyBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkmJihDPW5ldyBVaW50OEFycmF5KEMuYnVmZmVyLEMuYnl0ZU9mZnNldCxDLmJ5dGVMZW5ndGgpKSxDIGluc3RhbmNlb2YgVWludDhBcnJheSl7Zm9yKHZhciBFPUMuYnl0ZUxlbmd0aCxpPVtdLHQ9MDt0PEU7dCs9MSlpW3Q+Pj4yXXw9Q1t0XTw8MjQtdCU0Kjg7QS53b3Jkcz1pLEEuc2lnQnl0ZXM9RX1lbHNlIEEud29yZHM9QixBLnNpZ0J5dGVzPVE7cmV0dXJuIEF9cmV0dXJuIGZuKEksW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybihhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06d3IpLnN0cmluZ2lmeSh0aGlzKX19LHtrZXk6ImNvbmNhdCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcy53b3JkcyxJPUEud29yZHMsQj10aGlzLnNpZ0J5dGVzLFE9QS5zaWdCeXRlcztpZih0aGlzLmNsYW1wKCksQiU0KWZvcih2YXIgQz0wO0M8UTtDKz0xKXt2YXIgRT1JW0M+Pj4yXT4+PjI0LUMlNCo4JjI1NTtnW0IrQz4+PjJdfD1FPDwyNC0oQitDKSU0Kjh9ZWxzZSBmb3IodmFyIGk9MDtpPFE7aSs9NClnW0IraT4+PjJdPUlbaT4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1RLHRoaXN9fSx7a2V5OiJjbGFtcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLndvcmRzLGc9dGhpcy5zaWdCeXRlcztBW2c+Pj4yXSY9NDI5NDk2NzI5NTw8MzItZyU0KjgsQS5sZW5ndGg9TWF0aC5jZWlsKGcvNCl9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1Vbih3bihJLnByb3RvdHlwZSksImNsb25lIix0aGlzKS5jYWxsKHRoaXMpO3JldHVybiBBLndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCksQX19XSxbe2tleToicmFuZG9tIix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIGcsQj1bXSxRPWZ1bmN0aW9uKEEpe3ZhciBnPUEsST05ODc2NTQzMjEsQj00Mjk0OTY3Mjk1O3JldHVybiBmdW5jdGlvbigpe3ZhciBBPSgoST0zNjk2OSooNjU1MzUmSSkrKEk+PjE2KSZCKTw8MTYpKyhnPTE4ZTMqKDY1NTM1JmcpKyhnPj4xNikmQikmQjtyZXR1cm4gQS89NDI5NDk2NzI5NiwoQSs9LjUpKihNYXRoLnJhbmRvbSgpPi41PzE6LTEpfX0sQz0wO0M8QTtDKz00KXt2YXIgRT1RKDQyOTQ5NjcyOTYqKGd8fE1hdGgucmFuZG9tKCkpKTtnPTk4NzY1NDA3MSpFKCksQi5wdXNoKDQyOTQ5NjcyOTYqRSgpfDApfXJldHVybiBuZXcgSShCLEEpfX1dKSxJfShmciksd3I9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS53b3JkcyxJPUEuc2lnQnl0ZXMsQj1bXSxRPTA7UTxJO1ErPTEpe3ZhciBDPWdbUT4+PjJdPj4+MjQtUSU0KjgmMjU1O0IucHVzaCgoQz4+PjQpLnRvU3RyaW5nKDE2KSksQi5wdXNoKCgxNSZDKS50b1N0cmluZygxNikpfXJldHVybiBCLmpvaW4oIiIpfSxwYXJzZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5sZW5ndGgsST1bXSxCPTA7QjxnO0IrPTIpSVtCPj4+M118PXBhcnNlSW50KEEuc3Vic3RyKEIsMiksMTYpPDwyNC1CJTgqNDtyZXR1cm4gbmV3IHVyKEksZy8yKX19LGRyPWZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1BLmxlbmd0aCxJPVtdLEI9MDtCPGc7Qis9MSlJW0I+Pj4yXXw9KDI1NSZBLmNoYXJDb2RlQXQoQikpPDwyNC1CJTQqODtyZXR1cm4gbmV3IHVyKEksZyl9LEZyPWZ1bmN0aW9uKEEpe3JldHVybiBkcih1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoQSkpKX0sbHI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7dmFyIEE7cmV0dXJuIHluKHRoaXMsSSksKEE9Zy5jYWxsKHRoaXMpKS5fbWluQnVmZmVyU2l6ZT0wLEF9cmV0dXJuIGZuKEksW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2RhdGE9bmV3IHVyLHRoaXMuX25EYXRhQnl0ZXM9MH19LHtrZXk6Il9hcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPUE7InN0cmluZyI9PXR5cGVvZiBnJiYoZz1GcihnKSksdGhpcy5fZGF0YS5jb25jYXQoZyksdGhpcy5fbkRhdGFCeXRlcys9Zy5zaWdCeXRlc319LHtrZXk6Il9wcm9jZXNzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZyxJPXRoaXMuX2RhdGEsQj10aGlzLmJsb2NrU2l6ZSxRPUkud29yZHMsQz1JLnNpZ0J5dGVzLEU9Qy8oNCpCKSxpPShFPUE/TWF0aC5jZWlsKEUpOk1hdGgubWF4KCgwfEUpLXRoaXMuX21pbkJ1ZmZlclNpemUsMCkpKkIsdD1NYXRoLm1pbig0KmksQyk7aWYoaSl7Zm9yKHZhciBlPTA7ZTxpO2UrPUIpdGhpcy5fZG9Qcm9jZXNzQmxvY2soUSxlKTtnPVEuc3BsaWNlKDAsaSksSS5zaWdCeXRlcy09dH1yZXR1cm4gbmV3IHVyKGcsdCl9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1Vbih3bihJLnByb3RvdHlwZSksImNsb25lIix0aGlzKS5jYWxsKHRoaXMpO3JldHVybiBBLl9kYXRhPXRoaXMuX2RhdGEuY2xvbmUoKSxBfX1dKSxJfShmciksR3I9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKEEpe3ZhciBCO3JldHVybiB5bih0aGlzLEkpLChCPWcuY2FsbCh0aGlzKSkuYmxvY2tTaXplPTE2LEIuY2ZnPU9iamVjdC5hc3NpZ24obmV3IGZyLEEpLEIucmVzZXQoKSxCfXJldHVybiBmbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXtVbih3bihJLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2FwcGVuZChBKSx0aGlzLl9wcm9jZXNzKCksdGhpc319LHtrZXk6ImZpbmFsaXplIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gQSYmdGhpcy5fYXBwZW5kKEEpLHRoaXMuX2RvRmluYWxpemUoKX19XSxbe2tleToiX2NyZWF0ZUhlbHBlciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSl7cmV0dXJuIG5ldyBBKEkpLmZpbmFsaXplKGcpfX19LHtrZXk6Il9jcmVhdGVIbWFjSGVscGVyIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJKXtyZXR1cm4gbmV3IFJyKEEsSSkuZmluYWxpemUoZyl9fX1dKSxJfShsciksUnI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKEEsQil7dmFyIFE7eW4odGhpcyxJKSxRPWcuY2FsbCh0aGlzKTt2YXIgQz1uZXcgQTtRLl9oYXNoZXI9Qzt2YXIgRT1COyJzdHJpbmciPT10eXBlb2YgRSYmKEU9RnIoRSkpO3ZhciBpPUMuYmxvY2tTaXplLHQ9NCppO0Uuc2lnQnl0ZXM+dCYmKEU9Qy5maW5hbGl6ZShCKSksRS5jbGFtcCgpO3ZhciBlPUUuY2xvbmUoKTtRLl9vS2V5PWU7dmFyIG89RS5jbG9uZSgpO1EuX2lLZXk9bztmb3IodmFyIG49ZS53b3JkcyxyPW8ud29yZHMsYT0wO2E8aTthKz0xKW5bYV1ePTE1NDk1NTY4MjgsclthXV49OTA5NTIyNDg2O3JldHVybiBlLnNpZ0J5dGVzPXQsby5zaWdCeXRlcz10LFEucmVzZXQoKSxRfXJldHVybiBmbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9oYXNoZXI7QS5yZXNldCgpLEEudXBkYXRlKHRoaXMuX2lLZXkpfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5faGFzaGVyLnVwZGF0ZShBKSx0aGlzfX0se2tleToiZmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMuX2hhc2hlcixJPWcuZmluYWxpemUoQSk7cmV0dXJuIGcucmVzZXQoKSxnLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQoSSkpfX1dKSxJfShmciksVXI9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXt2YXIgZz1BLndvcmRzLEk9QS5zaWdCeXRlcyxCPXRoaXMuX21hcDtBLmNsYW1wKCk7Zm9yKHZhciBRPVtdLEM9MDtDPEk7Qys9Mylmb3IodmFyIEU9KGdbQz4+PjJdPj4+MjQtQyU0KjgmMjU1KTw8MTZ8KGdbQysxPj4+Ml0+Pj4yNC0oQysxKSU0KjgmMjU1KTw8OHxnW0MrMj4+PjJdPj4+MjQtKEMrMiklNCo4JjI1NSxpPTA7aTw0JiZDKy43NSppPEk7aSs9MSlRLnB1c2goQi5jaGFyQXQoRT4+PjYqKDMtaSkmNjMpKTt2YXIgdD1CLmNoYXJBdCg2NCk7aWYodClmb3IoO1EubGVuZ3RoJTQ7KVEucHVzaCh0KTtyZXR1cm4gUS5qb2luKCIiKX0scGFyc2U6ZnVuY3Rpb24oQSl7dmFyIGc9QS5sZW5ndGgsST10aGlzLl9tYXAsQj10aGlzLl9yZXZlcnNlTWFwO2lmKCFCKXt0aGlzLl9yZXZlcnNlTWFwPVtdLEI9dGhpcy5fcmV2ZXJzZU1hcDtmb3IodmFyIFE9MDtRPEkubGVuZ3RoO1ErPTEpQltJLmNoYXJDb2RlQXQoUSldPVF9dmFyIEM9SS5jaGFyQXQoNjQpO2lmKEMpe3ZhciBFPUEuaW5kZXhPZihDKTstMSE9PUUmJihnPUUpfXJldHVybiBmdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCPVtdLFE9MCxDPTA7QzxnO0MrPTEpaWYoQyU0KXt2YXIgRT1JW0EuY2hhckNvZGVBdChDLTEpXTw8QyU0KjJ8SVtBLmNoYXJDb2RlQXQoQyldPj4+Ni1DJTQqMjtCW1E+Pj4yXXw9RTw8MjQtUSU0KjgsUSs9MX1yZXR1cm4gdXIuY3JlYXRlKEIsUSl9KEEsZyxCKX0sX21hcDoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0ifSxrcj1bXSxTcj0wO1NyPDY0O1NyKz0xKWtyW1NyXT00Mjk0OTY3Mjk2Kk1hdGguYWJzKE1hdGguc2luKFNyKzEpKXwwO3ZhciBOcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhnJkl8fmcmQikrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxNcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhnJkJ8SSZ+QikrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxZcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhnXkleQikrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxIcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhJXihnfH5CKSkrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxwcj1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4geW4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZm4oSSxbe2tleToiX2RvUmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgdXIoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OF0pfX0se2tleToiX2RvUHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1BLEI9MDtCPDE2O0IrPTEpe3ZhciBRPWcrQixDPUFbUV07SVtRXT0xNjcxMTkzNSYoQzw8OHxDPj4+MjQpfDQyNzgyNTUzNjAmKEM8PDI0fEM+Pj44KX12YXIgRT10aGlzLl9oYXNoLndvcmRzLGk9SVtnKzBdLHQ9SVtnKzFdLGU9SVtnKzJdLG89SVtnKzNdLG49SVtnKzRdLHI9SVtnKzVdLGE9SVtnKzZdLHM9SVtnKzddLGM9SVtnKzhdLGg9SVtnKzldLHk9SVtnKzEwXSxEPUlbZysxMV0sZj1JW2crMTJdLHU9SVtnKzEzXSx3PUlbZysxNF0sZD1JW2crMTVdLEY9RVswXSxsPUVbMV0sRz1FWzJdLFI9RVszXTtGPU5yKEYsbCxHLFIsaSw3LGtyWzBdKSxSPU5yKFIsRixsLEcsdCwxMixrclsxXSksRz1OcihHLFIsRixsLGUsMTcsa3JbMl0pLGw9TnIobCxHLFIsRixvLDIyLGtyWzNdKSxGPU5yKEYsbCxHLFIsbiw3LGtyWzRdKSxSPU5yKFIsRixsLEcsciwxMixrcls1XSksRz1OcihHLFIsRixsLGEsMTcsa3JbNl0pLGw9TnIobCxHLFIsRixzLDIyLGtyWzddKSxGPU5yKEYsbCxHLFIsYyw3LGtyWzhdKSxSPU5yKFIsRixsLEcsaCwxMixrcls5XSksRz1OcihHLFIsRixsLHksMTcsa3JbMTBdKSxsPU5yKGwsRyxSLEYsRCwyMixrclsxMV0pLEY9TnIoRixsLEcsUixmLDcsa3JbMTJdKSxSPU5yKFIsRixsLEcsdSwxMixrclsxM10pLEc9TnIoRyxSLEYsbCx3LDE3LGtyWzE0XSksbD1OcihsLEcsUixGLGQsMjIsa3JbMTVdKSxGPU1yKEYsbCxHLFIsdCw1LGtyWzE2XSksUj1NcihSLEYsbCxHLGEsOSxrclsxN10pLEc9TXIoRyxSLEYsbCxELDE0LGtyWzE4XSksbD1NcihsLEcsUixGLGksMjAsa3JbMTldKSxGPU1yKEYsbCxHLFIsciw1LGtyWzIwXSksUj1NcihSLEYsbCxHLHksOSxrclsyMV0pLEc9TXIoRyxSLEYsbCxkLDE0LGtyWzIyXSksbD1NcihsLEcsUixGLG4sMjAsa3JbMjNdKSxGPU1yKEYsbCxHLFIsaCw1LGtyWzI0XSksUj1NcihSLEYsbCxHLHcsOSxrclsyNV0pLEc9TXIoRyxSLEYsbCxvLDE0LGtyWzI2XSksbD1NcihsLEcsUixGLGMsMjAsa3JbMjddKSxGPU1yKEYsbCxHLFIsdSw1LGtyWzI4XSksUj1NcihSLEYsbCxHLGUsOSxrclsyOV0pLEc9TXIoRyxSLEYsbCxzLDE0LGtyWzMwXSksbD1NcihsLEcsUixGLGYsMjAsa3JbMzFdKSxGPVlyKEYsbCxHLFIsciw0LGtyWzMyXSksUj1ZcihSLEYsbCxHLGMsMTEsa3JbMzNdKSxHPVlyKEcsUixGLGwsRCwxNixrclszNF0pLGw9WXIobCxHLFIsRix3LDIzLGtyWzM1XSksRj1ZcihGLGwsRyxSLHQsNCxrclszNl0pLFI9WXIoUixGLGwsRyxuLDExLGtyWzM3XSksRz1ZcihHLFIsRixsLHMsMTYsa3JbMzhdKSxsPVlyKGwsRyxSLEYseSwyMyxrclszOV0pLEY9WXIoRixsLEcsUix1LDQsa3JbNDBdKSxSPVlyKFIsRixsLEcsaSwxMSxrcls0MV0pLEc9WXIoRyxSLEYsbCxvLDE2LGtyWzQyXSksbD1ZcihsLEcsUixGLGEsMjMsa3JbNDNdKSxGPVlyKEYsbCxHLFIsaCw0LGtyWzQ0XSksUj1ZcihSLEYsbCxHLGYsMTEsa3JbNDVdKSxHPVlyKEcsUixGLGwsZCwxNixrcls0Nl0pLGw9WXIobCxHLFIsRixlLDIzLGtyWzQ3XSksRj1IcihGLGwsRyxSLGksNixrcls0OF0pLFI9SHIoUixGLGwsRyxzLDEwLGtyWzQ5XSksRz1IcihHLFIsRixsLHcsMTUsa3JbNTBdKSxsPUhyKGwsRyxSLEYsciwyMSxrcls1MV0pLEY9SHIoRixsLEcsUixmLDYsa3JbNTJdKSxSPUhyKFIsRixsLEcsbywxMCxrcls1M10pLEc9SHIoRyxSLEYsbCx5LDE1LGtyWzU0XSksbD1IcihsLEcsUixGLHQsMjEsa3JbNTVdKSxGPUhyKEYsbCxHLFIsYyw2LGtyWzU2XSksUj1IcihSLEYsbCxHLGQsMTAsa3JbNTddKSxHPUhyKEcsUixGLGwsYSwxNSxrcls1OF0pLGw9SHIobCxHLFIsRix1LDIxLGtyWzU5XSksRj1IcihGLGwsRyxSLG4sNixrcls2MF0pLFI9SHIoUixGLGwsRyxELDEwLGtyWzYxXSksRz1IcihHLFIsRixsLGUsMTUsa3JbNjJdKSxsPUhyKGwsRyxSLEYsaCwyMSxrcls2M10pLEVbMF09RVswXStGfDAsRVsxXT1FWzFdK2x8MCxFWzJdPUVbMl0rR3wwLEVbM109RVszXStSfDB9fSx7a2V5OiJfZG9GaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9kYXRhLGc9QS53b3JkcyxJPTgqdGhpcy5fbkRhdGFCeXRlcyxCPTgqQS5zaWdCeXRlcztnW0I+Pj41XXw9MTI4PDwyNC1CJTMyO3ZhciBRPU1hdGguZmxvb3IoSS80Mjk0OTY3Mjk2KSxDPUk7Z1sxNSsoQis2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoUTw8OHxRPj4+MjQpfDQyNzgyNTUzNjAmKFE8PDI0fFE+Pj44KSxnWzE0KyhCKzY0Pj4+OTw8NCldPTE2NzExOTM1JihDPDw4fEM+Pj4yNCl8NDI3ODI1NTM2MCYoQzw8MjR8Qz4+PjgpLEEuc2lnQnl0ZXM9NCooZy5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgRT10aGlzLl9oYXNoLGk9RS53b3Jkcyx0PTA7dDw0O3QrPTEpe3ZhciBlPWlbdF07aVt0XT0xNjcxMTkzNSYoZTw8OHxlPj4+MjQpfDQyNzgyNTUzNjAmKGU8PDI0fGU+Pj44KX1yZXR1cm4gRX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPVVuKHduKEkucHJvdG90eXBlKSwiY2xvbmUiLHRoaXMpLmNhbGwodGhpcyk7cmV0dXJuIEEuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLEF9fV0pLEl9KEdyKTtHci5fY3JlYXRlSGVscGVyKHByKSxHci5fY3JlYXRlSG1hY0hlbHBlcihwcik7dmFyIEpyPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSShBKXt2YXIgQjtyZXR1cm4geW4odGhpcyxJKSwoQj1nLmNhbGwodGhpcykpLmNmZz1PYmplY3QuYXNzaWduKG5ldyBmcix7a2V5U2l6ZTo0LGhhc2hlcjpwcixpdGVyYXRpb25zOjF9LEEpLEJ9cmV0dXJuIGZuKEksW3trZXk6ImNvbXB1dGUiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJLEI9dGhpcy5jZmcsUT1CLmhhc2hlci5jcmVhdGUoKSxDPXVyLmNyZWF0ZSgpLEU9Qy53b3JkcyxpPUIua2V5U2l6ZSx0PUIuaXRlcmF0aW9ucztFLmxlbmd0aDxpOyl7SSYmUS51cGRhdGUoSSksST1RLnVwZGF0ZShBKS5maW5hbGl6ZShnKSxRLnJlc2V0KCk7Zm9yKHZhciBlPTE7ZTx0O2UrPTEpST1RLmZpbmFsaXplKEkpLFEucmVzZXQoKTtDLmNvbmNhdChJKX1yZXR1cm4gQy5zaWdCeXRlcz00KmksQ319XSksSX0oZnIpLExyPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSShBLEIsUSl7dmFyIEM7cmV0dXJuIHluKHRoaXMsSSksKEM9Zy5jYWxsKHRoaXMpKS5jZmc9T2JqZWN0LmFzc2lnbihuZXcgZnIsUSksQy5feGZvcm1Nb2RlPUEsQy5fa2V5PUIsQy5yZXNldCgpLEN9cmV0dXJuIGZuKEksW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe1VuKHduKEkucHJvdG90eXBlKSwicmVzZXQiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfX0se2tleToicHJvY2VzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2FwcGVuZChBKSx0aGlzLl9wcm9jZXNzKCl9fSx7a2V5OiJmaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIEEmJnRoaXMuX2FwcGVuZChBKSx0aGlzLl9kb0ZpbmFsaXplKCl9fV0sW3trZXk6ImNyZWF0ZUVuY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fRU5DX1hGT1JNX01PREUsQSxnKX19LHtrZXk6ImNyZWF0ZURlY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fREVDX1hGT1JNX01PREUsQSxnKX19LHtrZXk6Il9jcmVhdGVIZWxwZXIiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPWZ1bmN0aW9uKEEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQT9acjpPcn07cmV0dXJue2VuY3J5cHQ6ZnVuY3Rpb24oSSxCLFEpe3JldHVybiBnKEIpLmVuY3J5cHQoQSxJLEIsUSl9LGRlY3J5cHQ6ZnVuY3Rpb24oSSxCLFEpe3JldHVybiBnKEIpLmRlY3J5cHQoQSxJLEIsUSl9fX19XSksSX0obHIpO0xyLl9FTkNfWEZPUk1fTU9ERT0xLExyLl9ERUNfWEZPUk1fTU9ERT0yLExyLmtleVNpemU9NCxMci5pdlNpemU9NDt2YXIgdnI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKEEsQil7dmFyIFE7cmV0dXJuIHluKHRoaXMsSSksKFE9Zy5jYWxsKHRoaXMpKS5fY2lwaGVyPUEsUS5faXY9QixRfXJldHVybiBmbihJLG51bGwsW3trZXk6ImNyZWF0ZUVuY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5FbmNyeXB0b3IuY3JlYXRlKEEsZyl9fSx7a2V5OiJjcmVhdGVEZWNyeXB0b3IiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMuRGVjcnlwdG9yLmNyZWF0ZShBLGcpfX1dKSxJfShmcik7ZnVuY3Rpb24gS3IoQSxnLEkpe3ZhciBCLFE9QSxDPXRoaXMuX2l2O0M/KEI9Qyx0aGlzLl9pdj12b2lkIDApOkI9dGhpcy5fcHJldkJsb2NrO2Zvcih2YXIgRT0wO0U8STtFKz0xKVFbZytFXV49QltFXX12YXIgbXI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHluKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZuKEkpfSh2cik7bXIuRW5jcnlwdG9yPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiB5bih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmbihJLFt7a2V5OiJwcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEk9dGhpcy5fY2lwaGVyLEI9SS5ibG9ja1NpemU7S3IuY2FsbCh0aGlzLEEsZyxCKSxJLmVuY3J5cHRCbG9jayhBLGcpLHRoaXMuX3ByZXZCbG9jaz1BLnNsaWNlKGcsZytCKX19XSksSX0obXIpLG1yLkRlY3J5cHRvcj1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4geW4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZm4oSSxbe2tleToicHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXMuX2NpcGhlcixCPUkuYmxvY2tTaXplLFE9QS5zbGljZShnLGcrQik7SS5kZWNyeXB0QmxvY2soQSxnKSxLci5jYWxsKHRoaXMsQSxnLEIpLHRoaXMuX3ByZXZCbG9jaz1RfX1dKSxJfShtcik7dmFyIHhyPXtwYWQ6ZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9NCpnLEI9SS1BLnNpZ0J5dGVzJUksUT1CPDwyNHxCPDwxNnxCPDw4fEIsQz1bXSxFPTA7RTxCO0UrPTQpQy5wdXNoKFEpO3ZhciBpPXVyLmNyZWF0ZShDLEIpO0EuY29uY2F0KGkpfSx1bnBhZDpmdW5jdGlvbihBKXt2YXIgZz1BLEk9MjU1Jmcud29yZHNbZy5zaWdCeXRlcy0xPj4+Ml07Zy5zaWdCeXRlcy09SX19LHFyPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSShBLEIsUSl7dmFyIEM7cmV0dXJuIHluKHRoaXMsSSksKEM9Zy5jYWxsKHRoaXMsQSxCLE9iamVjdC5hc3NpZ24oe21vZGU6bXIscGFkZGluZzp4cn0sUSkpKS5ibG9ja1NpemU9NCxDfXJldHVybiBmbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQTtVbih3bihJLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpO3ZhciBnPXRoaXMuY2ZnLEI9Zy5pdixRPWcubW9kZTt0aGlzLl94Zm9ybU1vZGU9PT10aGlzLmNvbnN0cnVjdG9yLl9FTkNfWEZPUk1fTU9ERT9BPVEuY3JlYXRlRW5jcnlwdG9yOihBPVEuY3JlYXRlRGVjcnlwdG9yLHRoaXMuX21pbkJ1ZmZlclNpemU9MSksdGhpcy5fbW9kZT1BLmNhbGwoUSx0aGlzLEImJkIud29yZHMpLHRoaXMuX21vZGUuX19jcmVhdG9yPUF9fSx7a2V5OiJfZG9Qcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dGhpcy5fbW9kZS5wcm9jZXNzQmxvY2soQSxnKX19LHtrZXk6Il9kb0ZpbmFsaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBLGc9dGhpcy5jZmcucGFkZGluZztyZXR1cm4gdGhpcy5feGZvcm1Nb2RlPT09dGhpcy5jb25zdHJ1Y3Rvci5fRU5DX1hGT1JNX01PREU/KGcucGFkKHRoaXMuX2RhdGEsdGhpcy5ibG9ja1NpemUpLEE9dGhpcy5fcHJvY2VzcyghMCkpOihBPXRoaXMuX3Byb2Nlc3MoITApLGcudW5wYWQoQSkpLEF9fV0pLEl9KExyKSxicj1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoQSl7dmFyIEI7cmV0dXJuIHluKHRoaXMsSSksKEI9Zy5jYWxsKHRoaXMpKS5taXhJbihBKSxCfXJldHVybiBmbihJLFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuKEF8fHRoaXMuZm9ybWF0dGVyKS5zdHJpbmdpZnkodGhpcyl9fV0pLEl9KGZyKSxUcj17c3RyaW5naWZ5OmZ1bmN0aW9uKEEpe3ZhciBnPUEuY2lwaGVydGV4dCxJPUEuc2FsdDtyZXR1cm4oST91ci5jcmVhdGUoWzEzOTg4OTM2ODQsMTcwMTA3NjgzMV0pLmNvbmNhdChJKS5jb25jYXQoZyk6ZykudG9TdHJpbmcoVXIpfSxwYXJzZTpmdW5jdGlvbihBKXt2YXIgZyxJPVVyLnBhcnNlKEEpLEI9SS53b3JkcztyZXR1cm4gMTM5ODg5MzY4ND09PUJbMF0mJjE3MDEwNzY4MzE9PT1CWzFdJiYoZz11ci5jcmVhdGUoQi5zbGljZSgyLDQpKSxCLnNwbGljZSgwLDQpLEkuc2lnQnl0ZXMtPTE2KSxici5jcmVhdGUoe2NpcGhlcnRleHQ6SSxzYWx0Omd9KX19LE9yPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiB5bih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmbihJLG51bGwsW3trZXk6ImVuY3J5cHQiLHZhbHVlOmZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPU9iamVjdC5hc3NpZ24obmV3IGZyLHRoaXMuY2ZnLEIpLEM9QS5jcmVhdGVFbmNyeXB0b3IoSSxRKSxFPUMuZmluYWxpemUoZyksaT1DLmNmZztyZXR1cm4gYnIuY3JlYXRlKHtjaXBoZXJ0ZXh0OkUsa2V5OkksaXY6aS5pdixhbGdvcml0aG06QSxtb2RlOmkubW9kZSxwYWRkaW5nOmkucGFkZGluZyxibG9ja1NpemU6Qy5ibG9ja1NpemUsZm9ybWF0dGVyOlEuZm9ybWF0fSl9fSx7a2V5OiJkZWNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1nLEM9T2JqZWN0LmFzc2lnbihuZXcgZnIsdGhpcy5jZmcsQik7cmV0dXJuIFE9dGhpcy5fcGFyc2UoUSxDLmZvcm1hdCksQS5jcmVhdGVEZWNyeXB0b3IoSSxDKS5maW5hbGl6ZShRLmNpcGhlcnRleHQpfX0se2tleToiX3BhcnNlIix2YWx1ZTpmdW5jdGlvbihBLGcpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQT9nLnBhcnNlKEEsdGhpcyk6QX19XSksSX0oZnIpO09yLmNmZz1PYmplY3QuYXNzaWduKG5ldyBmcix7Zm9ybWF0OlRyfSk7dmFyIFdyPXtleGVjdXRlOmZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPUI7UXx8KFE9dXIucmFuZG9tKDgpKTt2YXIgQz1Kci5jcmVhdGUoe2tleVNpemU6ZytJfSkuY29tcHV0ZShBLFEpLEU9dXIuY3JlYXRlKEMud29yZHMuc2xpY2UoZyksNCpJKTtyZXR1cm4gQy5zaWdCeXRlcz00KmcsYnIuY3JlYXRlKHtrZXk6QyxpdjpFLHNhbHQ6UX0pfX0sWnI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHluKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZuKEksbnVsbCxbe2tleToiZW5jcnlwdCIsdmFsdWU6ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9T2JqZWN0LmFzc2lnbihuZXcgZnIsdGhpcy5jZmcsQiksQz1RLmtkZi5leGVjdXRlKEksQS5rZXlTaXplLEEuaXZTaXplKTtRLml2PUMuaXY7dmFyIEU9T3IuZW5jcnlwdC5jYWxsKHRoaXMsQSxnLEMua2V5LFEpO3JldHVybiBFLm1peEluKEMpLEV9fSx7a2V5OiJkZWNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1nLEM9T2JqZWN0LmFzc2lnbihuZXcgZnIsdGhpcy5jZmcsQik7UT10aGlzLl9wYXJzZShRLEMuZm9ybWF0KTt2YXIgRT1DLmtkZi5leGVjdXRlKEksQS5rZXlTaXplLEEuaXZTaXplLFEuc2FsdCk7cmV0dXJuIEMuaXY9RS5pdixPci5kZWNyeXB0LmNhbGwodGhpcyxBLFEsRS5rZXksQyl9fV0pLEl9KE9yKTtaci5jZmc9T2JqZWN0LmFzc2lnbihPci5jZmcse2tkZjpXcn0pO2Zvcih2YXIganI9W10sUHI9W10sWHI9W10sVnI9W10senI9W10sX3I9W10sJHI9W10sQWE9W10sZ2E9W10sSWE9W10sQmE9W10sUWE9MDtRYTwyNTY7UWErPTEpQmFbUWFdPVFhPDEyOD9RYTw8MTpRYTw8MV4yODM7Zm9yKHZhciBDYT0wLEVhPTAsaWE9MDtpYTwyNTY7aWErPTEpe3ZhciB0YT1FYV5FYTw8MV5FYTw8Ml5FYTw8M15FYTw8NDt0YT10YT4+PjheMjU1JnRhXjk5LGpyW0NhXT10YSxQclt0YV09Q2E7dmFyIGVhPUJhW0NhXSxvYT1CYVtlYV0sbmE9QmFbb2FdLHJhPTI1NypCYVt0YV1eMTY4NDMwMDgqdGE7WHJbQ2FdPXJhPDwyNHxyYT4+PjgsVnJbQ2FdPXJhPDwxNnxyYT4+PjE2LHpyW0NhXT1yYTw8OHxyYT4+PjI0LF9yW0NhXT1yYSxyYT0xNjg0MzAwOSpuYV42NTUzNypvYV4yNTcqZWFeMTY4NDMwMDgqQ2EsJHJbdGFdPXJhPDwyNHxyYT4+PjgsQWFbdGFdPXJhPDwxNnxyYT4+PjE2LGdhW3RhXT1yYTw8OHxyYT4+PjI0LElhW3RhXT1yYSxDYT8oQ2E9ZWFeQmFbQmFbQmFbbmFeZWFdXV0sRWFePUJhW0JhW0VhXV0pOkNhPUVhPTF9dmFyIGFhPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxzYT1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4geW4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZm4oSSxbe2tleToiX2RvUmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE7aWYoIXRoaXMuX25Sb3VuZHN8fHRoaXMuX2tleVByaW9yUmVzZXQhPT10aGlzLl9rZXkpe3RoaXMuX2tleVByaW9yUmVzZXQ9dGhpcy5fa2V5O3ZhciBnPXRoaXMuX2tleVByaW9yUmVzZXQsST1nLndvcmRzLEI9Zy5zaWdCeXRlcy80O3RoaXMuX25Sb3VuZHM9Qis2O3ZhciBRPTQqKHRoaXMuX25Sb3VuZHMrMSk7dGhpcy5fa2V5U2NoZWR1bGU9W107Zm9yKHZhciBDPXRoaXMuX2tleVNjaGVkdWxlLEU9MDtFPFE7RSs9MSlFPEI/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+PjgmMjU1XTw8OHxpWzI1NSZyXSleSVtzXTtzKz0xLHRbZ109dSx0W2crMV09dyx0W2crMl09ZCx0W2crM109Rn19XSksSX0ocXIpO3NhLmtleVNpemU9ODt2YXIgY2E9cXIuX2NyZWF0ZUhlbHBlcihzYSksaGE9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHluKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZuKEkpfSh2cik7aGEuRW5jcnlwdG9yPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiB5bih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmbihJLFt7a2V5OiJwcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEk9QSxCPXRoaXMuX2NpcGhlcixRPUIuYmxvY2tTaXplLEM9dGhpcy5faXYsRT10aGlzLl9jb3VudGVyO0MmJih0aGlzLl9jb3VudGVyPUMuc2xpY2UoMCksRT10aGlzLl9jb3VudGVyLHRoaXMuX2l2PXZvaWQgMCk7dmFyIGk9RS5zbGljZSgwKTtCLmVuY3J5cHRCbG9jayhpLDApLEVbUS0xXT1FW1EtMV0rMXwwO2Zvcih2YXIgdD0wO3Q8UTt0Kz0xKUlbZyt0XV49aVt0XX19XSksSX0oaGEpLGhhLkRlY3J5cHRvcj1oYS5FbmNyeXB0b3I7dmFyIHlhPXtwYWQ6ZnVuY3Rpb24oKXt9LHVucGFkOmZ1bmN0aW9uKCl7fX0sRGE9e2RlY3J5cHRXb3JkQXJyYXk6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPXdyLnBhcnNlKGcpLFE9d3IucGFyc2UoX28oSSkpLEM9dXIuY3JlYXRlKG5ldyBVaW50OEFycmF5KEEpKSxFPWNhLmRlY3J5cHQoYnIuY3JlYXRlKHtjaXBoZXJ0ZXh0OkN9KSxCLHtpdjpRLG1vZGU6aGEscGFkZGluZzp5YX0pO3JldHVybiBEYS53b3JkQXJyYXlUb1VpbnQ4QXJyYXkoRSl9LHdvcmRBcnJheVRvVWludDhBcnJheTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5zaWdCeXRlcyxJPUEud29yZHMsQj1uZXcgVWludDhBcnJheShnKSxRPTAsQz0wO1EhPT1nOyl7dmFyIEU9SVtDKytdO2lmKEJbUSsrXT0oNDI3ODE5MDA4MCZFKT4+PjI0LFE9PT1nKWJyZWFrO2lmKEJbUSsrXT0oMTY3MTE2ODAmRSk+Pj4xNixRPT09ZylicmVhaztpZihCW1ErK109KDY1MjgwJkUpPj4+OCxRPT09ZylicmVhaztCW1ErK109MjU1JkV9cmV0dXJuIEJ9LGRlY29kZXJBRVNDVFJEYXRhOmZ1bmN0aW9uKEEsZyxJKXtpZihBLnZpZGVvU2VuYyl7dmFyIEI9QS5raWRWYWx1ZSxRPUEudmlkZW9TZW5jO0Euc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihnLEMpe3ZhciBFPVFbQ10saT1nLmRhdGEsdD1bXSxlPVtdLG89RS5Jbml0aWFsaXphdGlvblZlY3RvcjtpZihFLnN1YnNhbXBsZXMmJkUuc3Vic2FtcGxlcy5sZW5ndGgpRS5zdWJzYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEuQnl0ZXNPZkNsZWFyRGF0YStBLkJ5dGVzT2ZQcm90ZWN0ZWREYXRhLEk9aS5zbGljZSgwLGcpO3QucHVzaChJLnNsaWNlKDAsQS5CeXRlc09mQ2xlYXJEYXRhKSksZS5wdXNoKEkuc2xpY2UoQS5CeXRlc09mQ2xlYXJEYXRhKSksaT1pLnNsaWNlKGcpfSkpO2Vsc2V7dmFyIG49Zy5zaXplO3QucHVzaChpLnNsaWNlKDAsMCkpLGUucHVzaChpLnNsaWNlKDAsbikpLGk9aS5zbGljZShuKX12YXIgcj1uZXcgbm47ci53cml0ZS5hcHBseShyLGUpO3ZhciBhPUk/SShyLmJ1ZmZlcixCLG8pOkRhLmRlY3J5cHRXb3JkQXJyYXkoci5idWZmZXIsQixvKSxzPW5ldyBubjt0LmZvckVhY2goKGZ1bmN0aW9uKEEsZyl7dmFyIEk9ZVtnXS5sZW5ndGgsQj1hLnNsaWNlKDAsSSk7cy53cml0ZShBKSxzLndyaXRlKEIpLGE9YS5zbGljZShJKX0pKSxBLnNhbXBsZXNbQ10uZGF0YT1zLmJ1ZmZlcn0pKX1pZihnLmF1ZGlvU2VuYyl7dmFyIEM9Zy5raWRWYWx1ZSxFPWcuYXVkaW9TZW5jO2cuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBLEIpe3ZhciBRPUVbQl0saT1JP0koQS5kYXRhLEMsUS5Jbml0aWFsaXphdGlvblZlY3Rvcik6RGEuZGVjcnlwdFdvcmRBcnJheShBLmRhdGEsQyxRLkluaXRpYWxpemF0aW9uVmVjdG9yKTtnLnNhbXBsZXNbQl0uZGF0YT1pfSkpfX19LGZhPWksdWE9IltcdFxuXHZcZlxyIMKg4ZqA4oCA4oCB4oCC4oCD4oCE4oCF4oCG4oCH4oCI4oCJ4oCK4oCv4oGf44CAXHUyMDI4XHUyMDI5XHVmZWZmXSIsd2E9UmVnRXhwKCJeIit1YSt1YSsiKiIpLGRhPVJlZ0V4cCh1YSt1YSsiKiQiKSxGYT1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyl7dmFyIEk9U3RyaW5nKGZhKGcpKTtyZXR1cm4gMSZBJiYoST1JLnJlcGxhY2Uod2EsIiIpKSwyJkEmJihJPUkucmVwbGFjZShkYSwiIikpLEl9fSxsYT17c3RhcnQ6RmEoMSksZW5kOkZhKDIpLHRyaW06RmEoMyl9LEdhPXMsUmE9cixVYT1MSSxrYT1hSSxTYT1WLE5hPUIsTWE9dkUsWWE9UixIYT1nLHBhPWNnLEphPXNJLmYsTGE9V2cuZix2YT1jLmYsS2E9bGEudHJpbSxtYT0iTnVtYmVyIix4YT1SYVttYV0scWE9eGEucHJvdG90eXBlLGJhPU5hKHBhKHFhKSk9PW1hLFRhPWZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEMsRSxpLHQsZT1ZYShBLCExKTtpZigic3RyaW5nIj09dHlwZW9mIGUmJmUubGVuZ3RoPjIpaWYoNDM9PT0oZz0oZT1LYShlKSkuY2hhckNvZGVBdCgwKSl8fDQ1PT09Zyl7aWYoODg9PT0oST1lLmNoYXJDb2RlQXQoMikpfHwxMjA9PT1JKXJldHVybiBOYU59ZWxzZSBpZig0OD09PWcpe3N3aXRjaChlLmNoYXJDb2RlQXQoMSkpe2Nhc2UgNjY6Y2FzZSA5ODpCPTIsUT00OTticmVhaztjYXNlIDc5OmNhc2UgMTExOkI9OCxRPTU1O2JyZWFrO2RlZmF1bHQ6cmV0dXJuK2V9Zm9yKEU9KEM9ZS5zbGljZSgyKSkubGVuZ3RoLGk9MDtpPEU7aSsrKWlmKCh0PUMuY2hhckNvZGVBdChpKSk8NDh8fHQ+USlyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludChDLEIpfXJldHVybitlfTtpZihVYShtYSwheGEoIiAwbzEiKXx8IXhhKCIwYjEiKXx8eGEoIisweDEiKSkpe2Zvcih2YXIgT2EsV2E9ZnVuY3Rpb24oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aDwxPzA6QSxJPXRoaXM7cmV0dXJuIEkgaW5zdGFuY2VvZiBXYSYmKGJhP0hhKChmdW5jdGlvbigpe3FhLnZhbHVlT2YuY2FsbChJKX0pKTpOYShJKSE9bWEpP01hKG5ldyB4YShUYShnKSksSSxXYSk6VGEoZyl9LFphPUdhP0phKHhhKToiTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksRVBTSUxPTixpc0Zpbml0ZSxpc0ludGVnZXIsaXNOYU4saXNTYWZlSW50ZWdlcixNQVhfU0FGRV9JTlRFR0VSLE1JTl9TQUZFX0lOVEVHRVIscGFyc2VGbG9hdCxwYXJzZUludCxpc0ludGVnZXIsZnJvbVN0cmluZyxyYW5nZSIuc3BsaXQoIiwiKSxqYT0wO1phLmxlbmd0aD5qYTtqYSsrKVNhKHhhLE9hPVphW2phXSkmJiFTYShXYSxPYSkmJnZhKFdhLE9hLExhKHhhLE9hKSk7V2EucHJvdG90eXBlPXFhLHFhLmNvbnN0cnVjdG9yPVdhLGthKFJhLG1hLFdhKX12YXIgUGE9e30sWGE9ZztmdW5jdGlvbiBWYShBLGcpe3JldHVybiBSZWdFeHAoQSxnKX1QYS5VTlNVUFBPUlRFRF9ZPVhhKChmdW5jdGlvbigpe3ZhciBBPVZhKCJhIiwieSIpO3JldHVybiBBLmxhc3RJbmRleD0yLG51bGwhPUEuZXhlYygiYWJjZCIpfSkpLFBhLkJST0tFTl9DQVJFVD1YYSgoZnVuY3Rpb24oKXt2YXIgQT1WYSgiXnIiLCJneSIpO3JldHVybiBBLmxhc3RJbmRleD0yLG51bGwhPUEuZXhlYygic3RyIil9KSk7dmFyIHphLF9hLCRhPVluLEFzPVBhLGdzPVcsSXM9UmVnRXhwLnByb3RvdHlwZS5leGVjLEJzPWdzKCJuYXRpdmUtc3RyaW5nLXJlcGxhY2UiLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksUXM9SXMsQ3M9KHphPS9hLyxfYT0vYiovZyxJcy5jYWxsKHphLCJhIiksSXMuY2FsbChfYSwiYSIpLDAhPT16YS5sYXN0SW5kZXh8fDAhPT1fYS5sYXN0SW5kZXgpLEVzPUFzLlVOU1VQUE9SVEVEX1l8fEFzLkJST0tFTl9DQVJFVCxpcz12b2lkIDAhPT0vKCk/Py8uZXhlYygiIilbMV07KENzfHxpc3x8RXMpJiYoUXM9ZnVuY3Rpb24oQSl7dmFyIGcsSSxCLFEsQz10aGlzLEU9RXMmJkMuc3RpY2t5LGk9JGEuY2FsbChDKSx0PUMuc291cmNlLGU9MCxvPUE7cmV0dXJuIEUmJigtMT09PShpPWkucmVwbGFjZSgieSIsIiIpKS5pbmRleE9mKCJnIikmJihpKz0iZyIpLG89U3RyaW5nKEEpLnNsaWNlKEMubGFzdEluZGV4KSxDLmxhc3RJbmRleD4wJiYoIUMubXVsdGlsaW5lfHxDLm11bHRpbGluZSYmIlxuIiE9PUFbQy5sYXN0SW5kZXgtMV0pJiYodD0iKD86ICIrdCsiKSIsbz0iICIrbyxlKyspLEk9bmV3IFJlZ0V4cCgiXig/OiIrdCsiKSIsaSkpLGlzJiYoST1uZXcgUmVnRXhwKCJeIit0KyIkKD8hXFxzKSIsaSkpLENzJiYoZz1DLmxhc3RJbmRleCksQj1Jcy5jYWxsKEU/STpDLG8pLEU/Qj8oQi5pbnB1dD1CLmlucHV0LnNsaWNlKGUpLEJbMF09QlswXS5zbGljZShlKSxCLmluZGV4PUMubGFzdEluZGV4LEMubGFzdEluZGV4Kz1CWzBdLmxlbmd0aCk6Qy5sYXN0SW5kZXg9MDpDcyYmQiYmKEMubGFzdEluZGV4PUMuZ2xvYmFsP0IuaW5kZXgrQlswXS5sZW5ndGg6ZyksaXMmJkImJkIubGVuZ3RoPjEmJkJzLmNhbGwoQlswXSxJLChmdW5jdGlvbigpe2ZvcihRPTE7UTxhcmd1bWVudHMubGVuZ3RoLTI7USsrKXZvaWQgMD09PWFyZ3VtZW50c1tRXSYmKEJbUV09dm9pZCAwKX0pKSxCfSk7dmFyIHRzPVFzO09JKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAsZm9yY2VkOi8uLy5leGVjIT09dHN9LHtleGVjOnRzfSk7dmFyIGVzPWFJLG9zPXRzLG5zPWcscnM9RkEsYXM9Sixzcz1ycygic3BlY2llcyIpLGNzPVJlZ0V4cC5wcm90b3R5cGUsaHM9IW5zKChmdW5jdGlvbigpe3ZhciBBPS8uLztyZXR1cm4gQS5leGVjPWZ1bmN0aW9uKCl7dmFyIEE9W107cmV0dXJuIEEuZ3JvdXBzPXthOiI3In0sQX0sIjciIT09IiIucmVwbGFjZShBLCIkPGE+Iil9KSkseXM9IiQwIj09PSJhIi5yZXBsYWNlKC8uLywiJDAiKSxEcz1ycygicmVwbGFjZSIpLGZzPSEhLy4vW0RzXSYmIiI9PT0vLi9bRHNdKCJhIiwiJDAiKSx1cz0hbnMoKGZ1bmN0aW9uKCl7dmFyIEE9Lyg/OikvLGc9QS5leGVjO0EuZXhlYz1mdW5jdGlvbigpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dmFyIEk9ImFiIi5zcGxpdChBKTtyZXR1cm4gMiE9PUkubGVuZ3RofHwiYSIhPT1JWzBdfHwiYiIhPT1JWzFdfSkpLHdzPVJBLGRzPWksRnM9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSl7dmFyIEIsUSxDPVN0cmluZyhkcyhnKSksRT13cyhJKSxpPUMubGVuZ3RoO3JldHVybiBFPDB8fEU+PWk/QT8iIjp2b2lkIDA6KEI9Qy5jaGFyQ29kZUF0KEUpKTw1NTI5Nnx8Qj41NjMxOXx8RSsxPT09aXx8KFE9Qy5jaGFyQ29kZUF0KEUrMSkpPDU2MzIwfHxRPjU3MzQzP0E/Qy5jaGFyQXQoRSk6QjpBP0Muc2xpY2UoRSxFKzIpOlEtNTYzMjArKEItNTUyOTY8PDEwKSs2NTUzNn19LGxzPXtjb2RlQXQ6RnMoITEpLGNoYXJBdDpGcyghMCl9LmNoYXJBdCxHcz1qLFJzPU1hdGguZmxvb3IsVXM9IiIucmVwbGFjZSxrcz0vXCQoWyQmJ2BdfFxkezEsMn18PFtePl0qPikvZyxTcz0vXCQoWyQmJ2BdfFxkezEsMn0pL2csTnM9QixNcz10cyxZcz1mdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1ycyhBKSxDPSFucygoZnVuY3Rpb24oKXt2YXIgZz17fTtyZXR1cm4gZ1tRXT1mdW5jdGlvbigpe3JldHVybiA3fSw3IT0iIltBXShnKX0pKSxFPUMmJiFucygoZnVuY3Rpb24oKXt2YXIgZz0hMSxJPS9hLztyZXR1cm4ic3BsaXQiPT09QSYmKChJPXt9KS5jb25zdHJ1Y3Rvcj17fSxJLmNvbnN0cnVjdG9yW3NzXT1mdW5jdGlvbigpe3JldHVybiBJfSxJLmZsYWdzPSIiLElbUV09Ly4vW1FdKSxJLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZz0hMCxudWxsfSxJW1FdKCIiKSwhZ30pKTtpZighQ3x8IUV8fCJyZXBsYWNlIj09PUEmJighaHN8fCF5c3x8ZnMpfHwic3BsaXQiPT09QSYmIXVzKXt2YXIgaT0vLi9bUV0sdD1JKFEsIiJbQV0sKGZ1bmN0aW9uKEEsZyxJLEIsUSl7dmFyIEU9Zy5leGVjO3JldHVybiBFPT09b3N8fEU9PT1jcy5leGVjP0MmJiFRP3tkb25lOiEwLHZhbHVlOmkuY2FsbChnLEksQil9Ontkb25lOiEwLHZhbHVlOkEuY2FsbChJLGcsQil9Ontkb25lOiExfX0pLHtSRVBMQUNFX0tFRVBTXyQwOnlzLFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFOmZzfSksZT10WzBdLG89dFsxXTtlcyhTdHJpbmcucHJvdG90eXBlLEEsZSksZXMoY3MsUSwyPT1nP2Z1bmN0aW9uKEEsZyl7cmV0dXJuIG8uY2FsbChBLHRoaXMsZyl9OmZ1bmN0aW9uKEEpe3JldHVybiBvLmNhbGwoQSx0aGlzKX0pfUImJmFzKGNzW1FdLCJzaGFtIiwhMCl9LEhzPWwscHM9U0EsSnM9UkEsTHM9aSx2cz1mdW5jdGlvbihBLGcsSSl7cmV0dXJuIGcrKEk/bHMoQSxnKS5sZW5ndGg6MSl9LEtzPWZ1bmN0aW9uKEEsZyxJLEIsUSxDKXt2YXIgRT1JK0EubGVuZ3RoLGk9Qi5sZW5ndGgsdD1TcztyZXR1cm4gdm9pZCAwIT09USYmKFE9R3MoUSksdD1rcyksVXMuY2FsbChDLHQsKGZ1bmN0aW9uKEMsdCl7dmFyIGU7c3dpdGNoKHQuY2hhckF0KDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiBBO2Nhc2UiYCI6cmV0dXJuIGcuc2xpY2UoMCxJKTtjYXNlIiciOnJldHVybiBnLnNsaWNlKEUpO2Nhc2UiPCI6ZT1RW3Quc2xpY2UoMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIG89K3Q7aWYoMD09PW8pcmV0dXJuIEM7aWYobz5pKXt2YXIgbj1ScyhvLzEwKTtyZXR1cm4gMD09PW4/QzpuPD1pP3ZvaWQgMD09PUJbbi0xXT90LmNoYXJBdCgxKTpCW24tMV0rdC5jaGFyQXQoMSk6Q31lPUJbby0xXX1yZXR1cm4gdm9pZCAwPT09ZT8iIjplfSkpfSxtcz1mdW5jdGlvbihBLGcpe3ZhciBJPUEuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2YgSSl7dmFyIEI9SS5jYWxsKEEsZyk7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXRocm93IFR5cGVFcnJvcigiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsIik7cmV0dXJuIEJ9aWYoIlJlZ0V4cCIhPT1OcyhBKSl0aHJvdyBUeXBlRXJyb3IoIlJlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXIiKTtyZXR1cm4gTXMuY2FsbChBLGcpfSx4cz1NYXRoLm1heCxxcz1NYXRoLm1pbjtZcygicmVwbGFjZSIsMiwoZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9Qi5SRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSxDPUIuUkVQTEFDRV9LRUVQU18kMCxFPVE/IiQiOiIkMCI7cmV0dXJuW2Z1bmN0aW9uKEksQil7dmFyIFE9THModGhpcyksQz1udWxsPT1JP3ZvaWQgMDpJW0FdO3JldHVybiB2b2lkIDAhPT1DP0MuY2FsbChJLFEsQik6Zy5jYWxsKFN0cmluZyhRKSxJLEIpfSxmdW5jdGlvbihBLEIpe2lmKCFRJiZDfHwic3RyaW5nIj09dHlwZW9mIEImJi0xPT09Qi5pbmRleE9mKEUpKXt2YXIgaT1JKGcsQSx0aGlzLEIpO2lmKGkuZG9uZSlyZXR1cm4gaS52YWx1ZX12YXIgdD1IcyhBKSxlPVN0cmluZyh0aGlzKSxvPSJmdW5jdGlvbiI9PXR5cGVvZiBCO298fChCPVN0cmluZyhCKSk7dmFyIG49dC5nbG9iYWw7aWYobil7dmFyIHI9dC51bmljb2RlO3QubGFzdEluZGV4PTB9Zm9yKHZhciBhPVtdOzspe3ZhciBzPW1zKHQsZSk7aWYobnVsbD09PXMpYnJlYWs7aWYoYS5wdXNoKHMpLCFuKWJyZWFrOyIiPT09U3RyaW5nKHNbMF0pJiYodC5sYXN0SW5kZXg9dnMoZSxwcyh0Lmxhc3RJbmRleCkscikpfWZvcih2YXIgYyxoPSIiLHk9MCxEPTA7RDxhLmxlbmd0aDtEKyspe3M9YVtEXTtmb3IodmFyIGY9U3RyaW5nKHNbMF0pLHU9eHMocXMoSnMocy5pbmRleCksZS5sZW5ndGgpLDApLHc9W10sZD0xO2Q8cy5sZW5ndGg7ZCsrKXcucHVzaCh2b2lkIDA9PT0oYz1zW2RdKT9jOlN0cmluZyhjKSk7dmFyIEY9cy5ncm91cHM7aWYobyl7dmFyIGw9W2ZdLmNvbmNhdCh3LHUsZSk7dm9pZCAwIT09RiYmbC5wdXNoKEYpO3ZhciBHPVN0cmluZyhCLmFwcGx5KHZvaWQgMCxsKSl9ZWxzZSBHPUtzKGYsZSx1LHcsRixCKTt1Pj15JiYoaCs9ZS5zbGljZSh5LHUpK0cseT11K2YubGVuZ3RoKX1yZXR1cm4gaCtlLnNsaWNlKHkpfV19KSk7dmFyIGJzLFRzPWgsT3M9QixXcz1GQSgibWF0Y2giKSxacz1mdW5jdGlvbihBKXt2YXIgZztyZXR1cm4gVHMoQSkmJih2b2lkIDAhPT0oZz1BW1dzXSk/ISFnOiJSZWdFeHAiPT1PcyhBKSl9LGpzPVpzLFBzPWZ1bmN0aW9uKEEpe2lmKGpzKEEpKXRocm93IFR5cGVFcnJvcigiVGhlIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCByZWd1bGFyIGV4cHJlc3Npb25zIik7cmV0dXJuIEF9LFhzPUZBKCJtYXRjaCIpLFZzPWZ1bmN0aW9uKEEpe3ZhciBnPS8uLzt0cnl7Ii8uLyJbQV0oZyl9Y2F0Y2goSSl7dHJ5e3JldHVybiBnW1hzXT0hMSwiLy4vIltBXShnKX1jYXRjaChCKXt9fXJldHVybiExfSx6cz1PSSxfcz1XZy5mLCRzPVNBLEFjPVBzLGdjPWksSWM9VnMsQmM9IiIuc3RhcnRzV2l0aCxRYz1NYXRoLm1pbixDYz1JYygic3RhcnRzV2l0aCIpO3pzKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiEhKENjfHwoYnM9X3MoU3RyaW5nLnByb3RvdHlwZSwic3RhcnRzV2l0aCIpLCFic3x8YnMud3JpdGFibGUpKSYmIUNjfSx7c3RhcnRzV2l0aDpmdW5jdGlvbihBKXt2YXIgZz1TdHJpbmcoZ2ModGhpcykpO0FjKEEpO3ZhciBJPSRzKFFjKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGcubGVuZ3RoKSksQj1TdHJpbmcoQSk7cmV0dXJuIEJjP0JjLmNhbGwoZyxCLEkpOmcuc2xpY2UoSSxJK0IubGVuZ3RoKT09PUJ9fSk7dmFyIEVjLGljLHRjLGVjPXIuUHJvbWlzZSxvYz1sLG5jPWwscmM9RUUsYWM9U0Esc2M9ZUUsY2M9SUUsaGM9ZnVuY3Rpb24oQSl7dmFyIGc9QS5yZXR1cm47aWYodm9pZCAwIT09ZylyZXR1cm4gb2MoZy5jYWxsKEEpKS52YWx1ZX0seWM9ZnVuY3Rpb24oQSxnKXt0aGlzLnN0b3BwZWQ9QSx0aGlzLnJlc3VsdD1nfSxEYz0vKD86aXBob25lfGlwb2R8aXBhZCkuKmFwcGxld2Via2l0L2kudGVzdChRQSksZmM9InByb2Nlc3MiPT1CKHIucHJvY2VzcyksdWM9cix3Yz1nLGRjPWVFLEZjPSRBLGxjPXUsR2M9RGMsUmM9ZmMsVWM9dWMubG9jYXRpb24sa2M9dWMuc2V0SW1tZWRpYXRlLFNjPXVjLmNsZWFySW1tZWRpYXRlLE5jPXVjLnByb2Nlc3MsTWM9dWMuTWVzc2FnZUNoYW5uZWwsWWM9dWMuRGlzcGF0Y2gsSGM9MCxwYz17fSxKYz0ib25yZWFkeXN0YXRlY2hhbmdlIixMYz1mdW5jdGlvbihBKXtpZihwYy5oYXNPd25Qcm9wZXJ0eShBKSl7dmFyIGc9cGNbQV07ZGVsZXRlIHBjW0FdLGcoKX19LHZjPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbigpe0xjKEEpfX0sS2M9ZnVuY3Rpb24oQSl7TGMoQS5kYXRhKX0sbWM9ZnVuY3Rpb24oQSl7dWMucG9zdE1lc3NhZ2UoQSsiIixVYy5wcm90b2NvbCsiLy8iK1VjLmhvc3QpfTtrYyYmU2N8fChrYz1mdW5jdGlvbihBKXtmb3IodmFyIGc9W10sST0xO2FyZ3VtZW50cy5sZW5ndGg+STspZy5wdXNoKGFyZ3VtZW50c1tJKytdKTtyZXR1cm4gcGNbKytIY109ZnVuY3Rpb24oKXsoImZ1bmN0aW9uIj09dHlwZW9mIEE/QTpGdW5jdGlvbihBKSkuYXBwbHkodm9pZCAwLGcpfSxFYyhIYyksSGN9LFNjPWZ1bmN0aW9uKEEpe2RlbGV0ZSBwY1tBXX0sUmM/RWM9ZnVuY3Rpb24oQSl7TmMubmV4dFRpY2sodmMoQSkpfTpZYyYmWWMubm93P0VjPWZ1bmN0aW9uKEEpe1ljLm5vdyh2YyhBKSl9Ok1jJiYhR2M/KHRjPShpYz1uZXcgTWMpLnBvcnQyLGljLnBvcnQxLm9ubWVzc2FnZT1LYyxFYz1kYyh0Yy5wb3N0TWVzc2FnZSx0YywxKSk6dWMuYWRkRXZlbnRMaXN0ZW5lciYmImZ1bmN0aW9uIj09dHlwZW9mIHBvc3RNZXNzYWdlJiYhdWMuaW1wb3J0U2NyaXB0cyYmVWMmJiJmaWxlOiIhPT1VYy5wcm90b2NvbCYmIXdjKG1jKT8oRWM9bWMsdWMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsS2MsITEpKTpFYz1KYyBpbiBsYygic2NyaXB0Iik/ZnVuY3Rpb24oQSl7RmMuYXBwZW5kQ2hpbGQobGMoInNjcmlwdCIpKVtKY109ZnVuY3Rpb24oKXtGYy5yZW1vdmVDaGlsZCh0aGlzKSxMYyhBKX19OmZ1bmN0aW9uKEEpe3NldFRpbWVvdXQodmMoQSksMCl9KTt2YXIgeGMscWMsYmMsVGMsT2MsV2MsWmMsamMsUGM9e3NldDprYyxjbGVhcjpTY30sWGM9L3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdChRQSksVmM9cix6Yz1XZy5mLF9jPVBjLnNldCwkYz1EYyxBaD1YYyxnaD1mYyxJaD1WYy5NdXRhdGlvbk9ic2VydmVyfHxWYy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLEJoPVZjLmRvY3VtZW50LFFoPVZjLnByb2Nlc3MsQ2g9VmMuUHJvbWlzZSxFaD16YyhWYywicXVldWVNaWNyb3Rhc2siKSxpaD1FaCYmRWgudmFsdWU7aWh8fCh4Yz1mdW5jdGlvbigpe3ZhciBBLGc7Zm9yKGdoJiYoQT1RaC5kb21haW4pJiZBLmV4aXQoKTtxYzspe2c9cWMuZm4scWM9cWMubmV4dDt0cnl7ZygpfWNhdGNoKHREKXt0aHJvdyBxYz9UYygpOmJjPXZvaWQgMCx0RH19YmM9dm9pZCAwLEEmJkEuZW50ZXIoKX0sJGN8fGdofHxBaHx8IUlofHwhQmg/Q2gmJkNoLnJlc29sdmU/KChaYz1DaC5yZXNvbHZlKHZvaWQgMCkpLmNvbnN0cnVjdG9yPUNoLGpjPVpjLnRoZW4sVGM9ZnVuY3Rpb24oKXtqYy5jYWxsKFpjLHhjKX0pOlRjPWdoP2Z1bmN0aW9uKCl7UWgubmV4dFRpY2soeGMpfTpmdW5jdGlvbigpe19jLmNhbGwoVmMseGMpfTooT2M9ITAsV2M9QmguY3JlYXRlVGV4dE5vZGUoIiIpLG5ldyBJaCh4Yykub2JzZXJ2ZShXYyx7Y2hhcmFjdGVyRGF0YTohMH0pLFRjPWZ1bmN0aW9uKCl7V2MuZGF0YT1PYz0hT2N9KSk7dmFyIHRoPWlofHxmdW5jdGlvbihBKXt2YXIgZz17Zm46QSxuZXh0OnZvaWQgMH07YmMmJihiYy5uZXh0PWcpLHFjfHwocWM9ZyxUYygpKSxiYz1nfSxlaD17fSxvaD1pRSxuaD1mdW5jdGlvbihBKXt2YXIgZyxJO3RoaXMucHJvbWlzZT1uZXcgQSgoZnVuY3Rpb24oQSxCKXtpZih2b2lkIDAhPT1nfHx2b2lkIDAhPT1JKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtnPUEsST1CfSkpLHRoaXMucmVzb2x2ZT1vaChnKSx0aGlzLnJlamVjdD1vaChJKX07ZWguZj1mdW5jdGlvbihBKXtyZXR1cm4gbmV3IG5oKEEpfTt2YXIgcmgsYWgsc2gsY2gsaGg9bCx5aD1oLERoPWVoLGZoPXIsdWg9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3csd2g9T0ksZGg9cixGaD1CQSxsaD1lYyxHaD1hSSxSaD1UUSxVaD1EQixraD10QixTaD1wRSxOaD1oLE1oPWlFLFloPU9RLEhoPVVnLHBoPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEMsRSxpLHQsZSxvPUkmJkkudGhhdCxuPSEoIUl8fCFJLkFTX0VOVFJJRVMpLHI9ISghSXx8IUkuSVNfSVRFUkFUT1IpLGE9ISghSXx8IUkuSU5URVJSVVBURUQpLHM9c2MoZyxvLDErbithKSxjPWZ1bmN0aW9uKEEpe3JldHVybiBCJiZoYyhCKSxuZXcgeWMoITAsQSl9LGg9ZnVuY3Rpb24oQSl7cmV0dXJuIG4/KG5jKEEpLGE/cyhBWzBdLEFbMV0sYyk6cyhBWzBdLEFbMV0pKTphP3MoQSxjKTpzKEEpfTtpZihyKUI9QTtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZihRPWNjKEEpKSl0aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgaXRlcmFibGUiKTtpZihyYyhRKSl7Zm9yKEM9MCxFPWFjKEEubGVuZ3RoKTtFPkM7QysrKWlmKChpPWgoQVtDXSkpJiZpIGluc3RhbmNlb2YgeWMpcmV0dXJuIGk7cmV0dXJuIG5ldyB5YyghMSl9Qj1RLmNhbGwoQSl9Zm9yKHQ9Qi5uZXh0OyEoZT10LmNhbGwoQikpLmRvbmU7KXt0cnl7aT1oKGUudmFsdWUpfWNhdGNoKHREKXt0aHJvdyBoYyhCKSx0RH1pZigib2JqZWN0Ij09dHlwZW9mIGkmJmkmJmkgaW5zdGFuY2VvZiB5YylyZXR1cm4gaX1yZXR1cm4gbmV3IHljKCExKX0sSmg9UVEsTGg9Wmksdmg9UGMuc2V0LEtoPXRoLG1oPWZ1bmN0aW9uKEEsZyl7aWYoaGgoQSkseWgoZykmJmcuY29uc3RydWN0b3I9PT1BKXJldHVybiBnO3ZhciBJPURoLmYoQSk7cmV0dXJuKDAsSS5yZXNvbHZlKShnKSxJLnByb21pc2V9LHhoPWZ1bmN0aW9uKEEsZyl7dmFyIEk9ZmguY29uc29sZTtJJiZJLmVycm9yJiYoMT09PWFyZ3VtZW50cy5sZW5ndGg/SS5lcnJvcihBKTpJLmVycm9yKEEsZykpfSxxaD1laCxiaD1mdW5jdGlvbihBKXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOkEoKX19Y2F0Y2godEQpe3JldHVybntlcnJvcjohMCx2YWx1ZTp0RH19fSxUaD1PZyxPaD1MSSxXaD11aCxaaD1mYyxqaD1vQSxQaD1GQSgic3BlY2llcyIpLFhoPSJQcm9taXNlIixWaD1UaC5nZXQsemg9VGguc2V0LF9oPVRoLmdldHRlckZvcihYaCksJGg9bGgmJmxoLnByb3RvdHlwZSxBeT1saCxneT0kaCxJeT1kaC5UeXBlRXJyb3IsQnk9ZGguZG9jdW1lbnQsUXk9ZGgucHJvY2VzcyxDeT1xaC5mLEV5PUN5LGl5PSEhKEJ5JiZCeS5jcmVhdGVFdmVudCYmZGguZGlzcGF0Y2hFdmVudCksdHk9ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCxleT0idW5oYW5kbGVkcmVqZWN0aW9uIixveT0hMSxueT1PaChYaCwoZnVuY3Rpb24oKXt2YXIgQT1IaChBeSkhPT1TdHJpbmcoQXkpO2lmKCFBJiY2Nj09PWpoKXJldHVybiEwO2lmKGpoPj01MSYmL25hdGl2ZSBjb2RlLy50ZXN0KEF5KSlyZXR1cm4hMTt2YXIgZz1uZXcgQXkoKGZ1bmN0aW9uKEEpe0EoMSl9KSksST1mdW5jdGlvbihBKXtBKChmdW5jdGlvbigpe30pLChmdW5jdGlvbigpe30pKX07cmV0dXJuKGcuY29uc3RydWN0b3I9e30pW1BoXT1JLCEob3k9Zy50aGVuKChmdW5jdGlvbigpe30pKWluc3RhbmNlb2YgSSl8fCFBJiZXaCYmIXR5fSkpLHJ5PW55fHwhSmgoKGZ1bmN0aW9uKEEpe0F5LmFsbChBKS5jYXRjaCgoZnVuY3Rpb24oKXt9KSl9KSksYXk9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuISghTmgoQSl8fCJmdW5jdGlvbiIhPXR5cGVvZihnPUEudGhlbikpJiZnfSxzeT1mdW5jdGlvbihBLGcpe2lmKCFBLm5vdGlmaWVkKXtBLm5vdGlmaWVkPSEwO3ZhciBJPUEucmVhY3Rpb25zO0toKChmdW5jdGlvbigpe2Zvcih2YXIgQj1BLnZhbHVlLFE9MT09QS5zdGF0ZSxDPTA7SS5sZW5ndGg+Qzspe3ZhciBFLGksdCxlPUlbQysrXSxvPVE/ZS5vazplLmZhaWwsbj1lLnJlc29sdmUscj1lLnJlamVjdCxhPWUuZG9tYWluO3RyeXtvPyhRfHwoMj09PUEucmVqZWN0aW9uJiZEeShBKSxBLnJlamVjdGlvbj0xKSwhMD09PW8/RT1COihhJiZhLmVudGVyKCksRT1vKEIpLGEmJihhLmV4aXQoKSx0PSEwKSksRT09PWUucHJvbWlzZT9yKEl5KCJQcm9taXNlLWNoYWluIGN5Y2xlIikpOihpPWF5KEUpKT9pLmNhbGwoRSxuLHIpOm4oRSkpOnIoQil9Y2F0Y2godEQpe2EmJiF0JiZhLmV4aXQoKSxyKHREKX19QS5yZWFjdGlvbnM9W10sQS5ub3RpZmllZD0hMSxnJiYhQS5yZWplY3Rpb24mJmh5KEEpfSkpfX0sY3k9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7aXk/KChCPUJ5LmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5wcm9taXNlPWcsQi5yZWFzb249SSxCLmluaXRFdmVudChBLCExLCEwKSxkaC5kaXNwYXRjaEV2ZW50KEIpKTpCPXtwcm9taXNlOmcscmVhc29uOkl9LCF0eSYmKFE9ZGhbIm9uIitBXSk/UShCKTpBPT09ZXkmJnhoKCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24iLEkpfSxoeT1mdW5jdGlvbihBKXt2aC5jYWxsKGRoLChmdW5jdGlvbigpe3ZhciBnLEk9QS5mYWNhZGUsQj1BLnZhbHVlO2lmKHl5KEEpJiYoZz1iaCgoZnVuY3Rpb24oKXtaaD9ReS5lbWl0KCJ1bmhhbmRsZWRSZWplY3Rpb24iLEIsSSk6Y3koZXksSSxCKX0pKSxBLnJlamVjdGlvbj1aaHx8eXkoQSk/MjoxLGcuZXJyb3IpKXRocm93IGcudmFsdWV9KSl9LHl5PWZ1bmN0aW9uKEEpe3JldHVybiAxIT09QS5yZWplY3Rpb24mJiFBLnBhcmVudH0sRHk9ZnVuY3Rpb24oQSl7dmguY2FsbChkaCwoZnVuY3Rpb24oKXt2YXIgZz1BLmZhY2FkZTtaaD9ReS5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIixnKTpjeSgicmVqZWN0aW9uaGFuZGxlZCIsZyxBLnZhbHVlKX0pKX0sZnk9ZnVuY3Rpb24oQSxnLEkpe3JldHVybiBmdW5jdGlvbihCKXtBKGcsQixJKX19LHV5PWZ1bmN0aW9uKEEsZyxJKXtBLmRvbmV8fChBLmRvbmU9ITAsSSYmKEE9SSksQS52YWx1ZT1nLEEuc3RhdGU9MixzeShBLCEwKSl9LHd5PWZ1bmN0aW9uKEEsZyxJKXtpZighQS5kb25lKXtBLmRvbmU9ITAsSSYmKEE9SSk7dHJ5e2lmKEEuZmFjYWRlPT09Zyl0aHJvdyBJeSgiUHJvbWlzZSBjYW4ndCBiZSByZXNvbHZlZCBpdHNlbGYiKTt2YXIgQj1heShnKTtCP0toKChmdW5jdGlvbigpe3ZhciBJPXtkb25lOiExfTt0cnl7Qi5jYWxsKGcsZnkod3ksSSxBKSxmeSh1eSxJLEEpKX1jYXRjaCh0RCl7dXkoSSx0RCxBKX19KSk6KEEudmFsdWU9ZyxBLnN0YXRlPTEsc3koQSwhMSkpfWNhdGNoKHREKXt1eSh7ZG9uZTohMX0sdEQsQSl9fX07aWYobnkmJihneT0oQXk9ZnVuY3Rpb24oQSl7WWgodGhpcyxBeSxYaCksTWgoQSkscmguY2FsbCh0aGlzKTt2YXIgZz1WaCh0aGlzKTt0cnl7QShmeSh3eSxnKSxmeSh1eSxnKSl9Y2F0Y2godEQpe3V5KGcsdEQpfX0pLnByb3RvdHlwZSwocmg9ZnVuY3Rpb24oQSl7emgodGhpcyx7dHlwZTpYaCxkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6W10scmVqZWN0aW9uOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9UmgoZ3kse3RoZW46ZnVuY3Rpb24oQSxnKXt2YXIgST1faCh0aGlzKSxCPUN5KExoKHRoaXMsQXkpKTtyZXR1cm4gQi5vaz0iZnVuY3Rpb24iIT10eXBlb2YgQXx8QSxCLmZhaWw9ImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcsQi5kb21haW49Wmg/UXkuZG9tYWluOnZvaWQgMCxJLnBhcmVudD0hMCxJLnJlYWN0aW9ucy5wdXNoKEIpLDAhPUkuc3RhdGUmJnN5KEksITEpLEIucHJvbWlzZX0sY2F0Y2g6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsQSl9fSksYWg9ZnVuY3Rpb24oKXt2YXIgQT1uZXcgcmgsZz1WaChBKTt0aGlzLnByb21pc2U9QSx0aGlzLnJlc29sdmU9Znkod3ksZyksdGhpcy5yZWplY3Q9ZnkodXksZyl9LHFoLmY9Q3k9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT1BeXx8QT09PXNoP25ldyBhaChBKTpFeShBKX0sImZ1bmN0aW9uIj09dHlwZW9mIGxoJiYkaCE9PU9iamVjdC5wcm90b3R5cGUpKXtjaD0kaC50aGVuLG95fHwoR2goJGgsInRoZW4iLChmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXM7cmV0dXJuIG5ldyBBeSgoZnVuY3Rpb24oQSxnKXtjaC5jYWxsKEksQSxnKX0pKS50aGVuKEEsZyl9KSx7dW5zYWZlOiEwfSksR2goJGgsImNhdGNoIixneS5jYXRjaCx7dW5zYWZlOiEwfSkpO3RyeXtkZWxldGUgJGguY29uc3RydWN0b3J9Y2F0Y2godEQpe31VaCYmVWgoJGgsZ3kpfXdoKHtnbG9iYWw6ITAsd3JhcDohMCxmb3JjZWQ6bnl9LHtQcm9taXNlOkF5fSksa2goQXksWGgsITEpLFNoKFhoKSxzaD1GaChYaCksd2goe3RhcmdldDpYaCxzdGF0OiEwLGZvcmNlZDpueX0se3JlamVjdDpmdW5jdGlvbihBKXt2YXIgZz1DeSh0aGlzKTtyZXR1cm4gZy5yZWplY3QuY2FsbCh2b2lkIDAsQSksZy5wcm9taXNlfX0pLHdoKHt0YXJnZXQ6WGgsc3RhdDohMCxmb3JjZWQ6bnl9LHtyZXNvbHZlOmZ1bmN0aW9uKEEpe3JldHVybiBtaCh0aGlzLEEpfX0pLHdoKHt0YXJnZXQ6WGgsc3RhdDohMCxmb3JjZWQ6cnl9LHthbGw6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcyxJPUN5KGcpLEI9SS5yZXNvbHZlLFE9SS5yZWplY3QsQz1iaCgoZnVuY3Rpb24oKXt2YXIgST1NaChnLnJlc29sdmUpLEM9W10sRT0wLGk9MTtwaChBLChmdW5jdGlvbihBKXt2YXIgdD1FKyssZT0hMTtDLnB1c2godm9pZCAwKSxpKyssSS5jYWxsKGcsQSkudGhlbigoZnVuY3Rpb24oQSl7ZXx8KGU9ITAsQ1t0XT1BLC0taXx8QihDKSl9KSxRKX0pKSwtLWl8fEIoQyl9KSk7cmV0dXJuIEMuZXJyb3ImJlEoQy52YWx1ZSksSS5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMsST1DeShnKSxCPUkucmVqZWN0LFE9YmgoKGZ1bmN0aW9uKCl7dmFyIFE9TWgoZy5yZXNvbHZlKTtwaChBLChmdW5jdGlvbihBKXtRLmNhbGwoZyxBKS50aGVuKEkucmVzb2x2ZSxCKX0pKX0pKTtyZXR1cm4gUS5lcnJvciYmQihRLnZhbHVlKSxJLnByb21pc2V9fSk7dmFyIGR5PXVnO09JKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se2NvcHlXaXRoaW46TGl9KSxkeSgiY29weVdpdGhpbiIpO3ZhciBGeT1zLGx5PXIsR3k9TEksUnk9dkUsVXk9Yy5mLGt5PXNJLmYsU3k9WnMsTnk9WW4sTXk9UGEsWXk9YUksSHk9ZyxweT1PZy5lbmZvcmNlLEp5PXBFLEx5PUZBKCJtYXRjaCIpLHZ5PWx5LlJlZ0V4cCxLeT12eS5wcm90b3R5cGUsbXk9L2EvZyx4eT0vYS9nLHF5PW5ldyB2eShteSkhPT1teSxieT1NeS5VTlNVUFBPUlRFRF9ZO2lmKEZ5JiZHeSgiUmVnRXhwIiwhcXl8fGJ5fHxIeSgoZnVuY3Rpb24oKXtyZXR1cm4geHlbTHldPSExLHZ5KG15KSE9bXl8fHZ5KHh5KT09eHl8fCIvYS9pIiE9dnkobXksImkiKX0pKSkpe2Zvcih2YXIgVHk9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPXRoaXMgaW5zdGFuY2VvZiBUeSxRPVN5KEEpLEM9dm9pZCAwPT09ZztpZighQiYmUSYmQS5jb25zdHJ1Y3Rvcj09PVR5JiZDKXJldHVybiBBO3F5P1EmJiFDJiYoQT1BLnNvdXJjZSk6QSBpbnN0YW5jZW9mIFR5JiYoQyYmKGc9TnkuY2FsbChBKSksQT1BLnNvdXJjZSksYnkmJihJPSEhZyYmZy5pbmRleE9mKCJ5Iik+LTEpJiYoZz1nLnJlcGxhY2UoL3kvZywiIikpO3ZhciBFPVJ5KHF5P25ldyB2eShBLGcpOnZ5KEEsZyksQj90aGlzOkt5LFR5KTtieSYmSSYmKHB5KEUpLnN0aWNreT0hMCk7cmV0dXJuIEV9LE95PWZ1bmN0aW9uKEEpe0EgaW4gVHl8fFV5KFR5LEEse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdnlbQV19LHNldDpmdW5jdGlvbihnKXt2eVtBXT1nfX0pfSxXeT1reSh2eSksWnk9MDtXeS5sZW5ndGg+Wnk7KU95KFd5W1p5KytdKTtLeS5jb25zdHJ1Y3Rvcj1UeSxUeS5wcm90b3R5cGU9S3ksWXkobHksIlJlZ0V4cCIsVHkpfUp5KCJSZWdFeHAiKTt2YXIgank9S0EuaW5jbHVkZXMsUHk9dWc7T0koe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7aW5jbHVkZXM6ZnVuY3Rpb24oQSl7cmV0dXJuIGp5KHRoaXMsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksUHkoImluY2x1ZGVzIik7dmFyIFh5PVBzLFZ5PWk7T0koe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6IVZzKCJpbmNsdWRlcyIpfSx7aW5jbHVkZXM6ZnVuY3Rpb24oQSl7cmV0dXJuISF+U3RyaW5nKFZ5KHRoaXMpKS5pbmRleE9mKFh5KEEpLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KTt2YXIgenk9QT0+ZnVuY3Rpb24oQSxnKXtpZihnLnN0YXJ0c1dpdGgoImRhdGE6Iikpe3ZhciBJLEI9Zy5yZXBsYWNlKC9eZGF0YTouKj9iYXNlNjQsLywiIik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEJ1ZmZlciYmImZ1bmN0aW9uIj09dHlwZW9mIEJ1ZmZlci5mcm9tKUk9QnVmZmVyLmZyb20oQiwiYmFzZTY0Iik7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YgYXRvYil0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBkZWNvZGUgYmFzZTY0LWVuY29kZWQgZGF0YSBVUkwsIEJ1ZmZlciBhbmQgYXRvYiBhcmUgbm90IHN1cHBvcnRlZCIpO3ZhciBRPWF0b2IoQik7ST1uZXcgVWludDhBcnJheShRLmxlbmd0aCk7Zm9yKHZhciBDPTA7QzxRLmxlbmd0aDtDKyspSVtDXT1RLmNoYXJDb2RlQXQoQyl9cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEksQSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEEuaW5zdGFuY2V9KSl9dmFyIEU9dm9pZCAwLGk9dm9pZCAwO3JldHVybiBmZXRjaChnKS50aGVuKChmdW5jdGlvbihnKXtyZXR1cm4gaT0oRT1nKS5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIil8fCIiLCJpbnN0YW50aWF0ZVN0cmVhbWluZyJpbiBXZWJBc3NlbWJseSYmaS5zdGFydHNXaXRoKCJhcHBsaWNhdGlvbi93YXNtIik/V2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoRSxBKTpFLmFycmF5QnVmZmVyKCl9KSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShnLEEpOmd9KSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEEuaW5zdGFuY2V9KSl9KEEsImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsQUdGemJRRUFBQUFCL0FJdVlBRi9BWDlnQVg4QVlBSi9md0YvWUFKL2Z3QmdBMzkvZndGL1lBWi9mMzkvZjM4QmYyQUZmMzkvZjM4QmYyQURmMzkvQUdBRWYzOS9md0JnQm45L2YzOS9md0JnQlg5L2YzOS9BR0FFZjM5L2Z3Ri9ZQWgvZjM5L2YzOS9md0YvWUFkL2YzOS9mMzkvQVg5Z0JYOStmbjUrQUdBQUFHQUhmMzkvZjM5L2Z3QmdCSDkvZjM4QmZtQUZmMzkvZjM0QmYyQUFBWDlnQkg5K2ZuOEFZQUovZmdCZ0JYOS9mbjkvQUdBS2YzOS9mMzkvZjM5L2Z3Ri9ZQXgvZjM5L2YzOS9mMzkvZjM4QmYyQUlmMzkvZjM5L2YzOEFZQTkvZjM5L2YzOS9mMzkvZjM5L2YzOEFZQXAvZjM5L2YzOS9mMzkvQUdBTGYzOS9mMzkvZjM5L2YzOEJmMkFHZjN4L2YzOS9BWDlnQjM5L2YzOS9mbjRCZjJBR2YzOS9mMzUrQVg5Z0JYOS9mMzk4QVg5Z0FuOThBR0FFZm41K2ZnRi9ZQUorZndGL1lBSitmZ0Y4WUFGL0FYeGdBMzUrZmdGL1lBTi9mMzhCZkdBRGYzOS9BWDFnQkg5L2YzNEJmbUFDZkg4QmZHQURmMzkrQUdBQ2ZuNEJmV0FDZjM4QmZnSXhDQUZoQVdFQUR3RmhBV0lBQmdGaEFXTUFBZ0ZoQVdRQUFnRmhBV1VBQUFGaEFXWUFCQUZoQVdjQUJ3RmhBV2dBQUFQTEJNa0VBZ0FBQWdNQUFRTUJBQUFBQXdNVER3NEFBQUVEQVFRQUFRQUFBUUFBQWdNQ0FnY09CZ2dLRkFNQ0FBTURBQUlEQUFNREFBNENCQVFBQXdRQUJBQUVBQUFBQXdNREF3UUFBQUVDRlFJSEJRTUdCZ3NDQUNFQ0FBd01CUWdDQUFBQUF3TURBd0FJQUFnQUJ3QUFBQU1DQWdNREFpSVVBQUFFQXdJQUFBTUFCd0lDQUFBWEFCY0FJd01BQUFNQUFRQUJCd0lIQ0FBREFnSUtBd0lCQkFNQUJ3SURBQUFEQXhBRUVBSU5BZzBMQWdzQUFBSVZBQUFFQ0FJQUNRY0lBZ2NEQ2dFQUJBWURBUUFBQXdRWUNnUVlDZ2dSQWdBRUpBNGxKZ0FCQVFBQUNnOEFBQWNCQXhVQkJBZ0NBZ29aQUFjSEdRQUJBd2NDQXdFQ0V3RUlCd29BQUFBQkFBWUhEQUFCQXdFQUFBTUJBUUVBQkJvYkdoc0FBZ0FBQWdNY0F3SUFBQWNESEFNREFnSURDUWNLQ1FrS0NRa0FFQVFRQXdJRkJ3UUFDQ2NvRVFzRkN4RUxBQUlIRVNrQUN3QUJBd0lDQWdjRUFBWXFBZ0FDQWdRckxDMElEZ0lPRkE0QUFRSUNBQUFBQndNREJ3TURBUUFBQWdNQ0FBQUNBUUFDQUFFQkFnUUFBQVFJRmdRQkFRQUFBUk1CQVFBSkNRa0tDZ29BQ0FnSUJBOEJBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQU1EQXdNREF3QUFBUUVHREF3R0RBd0FCZ0FHREF3QkJnWUVDd1FDQkFJQkJnUUxCQUlFQWdzTEN3UUJBUUVCQ1FrRkhnVWVEUTBORFEwTkRBVUZCUVVGQnd3RkJRVUZCUVlmSUJJR0VnY0dCZ1lmSUJJR0Vna0dCZ1VGQlFVRkJRVUZCUVVGQlFVRkFBVUZCUWtGQkFnR0JBZ0lCZ1FESFFRQkFRQUJBQWdCRmdJQ0FBQUJBUUFBQVFBQkFRQUVCQWNCY0FIQkFzRUNCUVlCQVRDQWdBSUdDQUYvQVVHZzF3RUxCMGdQQVdrQ0FBRnFBT2NCQVdzQUdRRnNBQkFCYlFEYUFnRnVBTFFFQVc4QXJnUUJjQUNaQkFGeEFKQUVBWElBckFFQmN3Q0RCQUYwQVFBQmRRQ1ZBd0YyQUpRREFYY0Frd01KeHdRQkFFRUJDOEFDelFTcUJNRUJ2QUdRQTZ3Qmp3T09BNDBEVDArTUE0c0RpZ09JQTlBRWlBUGxBWWNEendUT0JPUUIrUUxNQk1zRXVBSGpBY29FeUFUSkJNY0UwQUhCQk1JRXdBVEZCTVFFd3dSK2tRT0tBZUlCdndTK0JMMEV2QVRoQWJzRXVnUzVCTGdFdHdRUXlRSHZBKzBEd0FPK0E3d0R1Z080QTdZRHRBT3lBN0FEcmdPc0E2b0RxQU9tQTVNQzhBUHVBNDRDNFFQZ0E5OEQzZ1BkQTY4QzNBUGJBOW9EbUFMWUE5Y0QxZ1BWQTlRRFQ5TUQwZ09IQXNzRHlRUElBOGNEeFFQREE0WUN5Z1BHQkpJRHhnUEVBOElEWmlBZzdBUHJBK29ENlFQb0ErY0Q1Z1BsQTY4QzVBUGpBK0lESUkwQ2pRTE1BYjBCdlFIWkE3MEJJTkVEMEFQTUFVOVB6d09JQWlET0E4MER6QUZQVDh3RGlBSm1JTFlFdFFTekJHWWdzZ1N4QkxBRUlLOEVyUVNzQktzRXlBTElBcWtFcUFTbkJLWUVwUVFncEFTakJLSUVvUVMvQXI4Q29BU2ZCSjRFblFTY0JDQ2JCSm9FbUFTWEJKWUVsUVNVQkpNRUlKSUVrUVNQQkk0RWpRU01CSXNFaWdSbUlMa0NpUVNJQkljRWhnU0ZCSVFFd1FPOUE3a0RyUU9wQTdVRHNRTm1JTGtDZ2dTQkJJQUUvd1ArQS8wRHZ3TzdBN2NEcXdPbkE3TURyd1BLQVlJQy9BUEtBWUlDK3dNZ3F3R3JBV3RyYTYwQ1QycHFJS3NCcXdGcmEydXRBazlxYWlDcUFhb0JhNmtCcVFHc0FrOXFhaUNxQWFvQmE2a0JxUUdzQWs5cWFpRDZBL2tESVBnRDl3TWc5Z1AxQXlEMEEvTURJSmtDOGdPc0FTQ1pBdkVEckFGbXBRT2tBMllneVFISkFhTURtUU9jQTZJRElKb0RuUU9oQXlDYkE1NERvQU5tSUpnRGx3T2ZBNVlEQ3FUZkI4a0VCd0FnQUNBQmVBc1VBQ0FBRURVRVFDQUFLQUlFRHdzZ0FDMEFDd3NkQVFGL0lBQVFOUVJBSUFBb0FnQWhBU0FBRUgwYUlBRVFFQXNnQUFzSkFDQUFFQTBnQVdvTDBnRUJCSDhDUUNBQklBQVFDU0lEU3dSQUl3QkJFR3NpQWlRQUlBRWdBMnNpQXdSQUlBQVFFeUVFSUFBUUNTSUJJQU5xSVFVZ0F5QUVJQUZyU3dSQUlBQWdCQ0FGSUFScklBRWdBUkRJQVFzZ0FTQUFFQTBpQkdvZ0EwRUFFUGNCSUFBZ0JSQjRJQUpCQURvQUR5QUVJQVZxSUFKQkQyb1FOQXNNQVFzakFFRVFheUlDSkFBQ1FDQUFFRFVFUUNBQUtBSUFJUU1nQWtFQU9nQVBJQUVnQTJvZ0FrRVBhaEEwSUFBZ0FSQTVEQUVMSUFKQkFEb0FEaUFBSUFGcUlBSkJEbW9RTkNBQUlBRVFPZ3NMSUFKQkVHb2tBQXNSQUNBQUVEVUVRQ0FBS0FJQUR3c2dBQXNLQUNBQUtBSUFFS01CQ3d3QUlBQWdBVUVjYWhDUUFndk1EQUVIZndKQUlBQkZEUUFnQUVFSWF5SURJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBeUFES0FJQUlnRnJJZ05CNklFQktBSUFTUTBCSUFBZ0FXb2hBQ0FEUWV5QkFTZ0NBRWNFUUNBQlFmOEJUUVJBSUFNb0FnZ2lBaUFCUVFOMklnUkJBM1JCZ0lJQmFrWWFJQUlnQXlnQ0RDSUJSZ1JBUWRpQkFVSFlnUUVvQWdCQmZpQUVkM0UyQWdBTUF3c2dBaUFCTmdJTUlBRWdBallDQ0F3Q0N5QURLQUlZSVFZQ1FDQURJQU1vQWd3aUFVY0VRQ0FES0FJSUlnSWdBVFlDRENBQklBSTJBZ2dNQVFzQ1FDQURRUlJxSWdJb0FnQWlCQTBBSUFOQkVHb2lBaWdDQUNJRURRQkJBQ0VCREFFTEEwQWdBaUVISUFRaUFVRVVhaUlDS0FJQUlnUU5BQ0FCUVJCcUlRSWdBU2dDRUNJRURRQUxJQWRCQURZQ0FBc2dCa1VOQVFKQUlBTWdBeWdDSENJQ1FRSjBRWWlFQVdvaUJDZ0NBRVlFUUNBRUlBRTJBZ0FnQVEwQlFkeUJBVUhjZ1FFb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQmtFUVFSUWdCaWdDRUNBRFJodHFJQUUyQWdBZ0FVVU5BZ3NnQVNBR05nSVlJQU1vQWhBaUFnUkFJQUVnQWpZQ0VDQUNJQUUyQWhnTElBTW9BaFFpQWtVTkFTQUJJQUkyQWhRZ0FpQUJOZ0lZREFFTElBVW9BZ1FpQVVFRGNVRURSdzBBUWVDQkFTQUFOZ0lBSUFVZ0FVRitjVFlDQkNBRElBQkJBWEkyQWdRZ0FDQURhaUFBTmdJQUR3c2dBeUFGVHcwQUlBVW9BZ1FpQVVFQmNVVU5BQUpBSUFGQkFuRkZCRUFnQlVId2dRRW9BZ0JHQkVCQjhJRUJJQU0yQWdCQjVJRUJRZVNCQVNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQURRZXlCQVNnQ0FFY05BMEhnZ1FGQkFEWUNBRUhzZ1FGQkFEWUNBQThMSUFWQjdJRUJLQUlBUmdSQVFleUJBU0FETmdJQVFlQ0JBVUhnZ1FFb0FnQWdBR29pQURZQ0FDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFEd3NnQVVGNGNTQUFhaUVBQWtBZ0FVSC9BVTBFUUNBRktBSUlJZ0lnQVVFRGRpSUVRUU4wUVlDQ0FXcEdHaUFDSUFVb0Fnd2lBVVlFUUVIWWdRRkIySUVCS0FJQVFYNGdCSGR4TmdJQURBSUxJQUlnQVRZQ0RDQUJJQUkyQWdnTUFRc2dCU2dDR0NFR0FrQWdCU0FGS0FJTUlnRkhCRUFnQlNnQ0NDSUNRZWlCQVNnQ0FFa2FJQUlnQVRZQ0RDQUJJQUkyQWdnTUFRc0NRQ0FGUVJScUlnSW9BZ0FpQkEwQUlBVkJFR29pQWlnQ0FDSUVEUUJCQUNFQkRBRUxBMEFnQWlFSElBUWlBVUVVYWlJQ0tBSUFJZ1FOQUNBQlFSQnFJUUlnQVNnQ0VDSUVEUUFMSUFkQkFEWUNBQXNnQmtVTkFBSkFJQVVnQlNnQ0hDSUNRUUowUVlpRUFXb2lCQ2dDQUVZRVFDQUVJQUUyQWdBZ0FRMEJRZHlCQVVIY2dRRW9BZ0JCZmlBQ2QzRTJBZ0FNQWdzZ0JrRVFRUlFnQmlnQ0VDQUZSaHRxSUFFMkFnQWdBVVVOQVFzZ0FTQUdOZ0lZSUFVb0FoQWlBZ1JBSUFFZ0FqWUNFQ0FDSUFFMkFoZ0xJQVVvQWhRaUFrVU5BQ0FCSUFJMkFoUWdBaUFCTmdJWUN5QURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFJQU5CN0lFQktBSUFSdzBCUWVDQkFTQUFOZ0lBRHdzZ0JTQUJRWDV4TmdJRUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQUxJQUJCL3dGTkJFQWdBRUVEZGlJQlFRTjBRWUNDQVdvaEFBSi9RZGlCQVNnQ0FDSUNRUUVnQVhRaUFYRkZCRUJCMklFQklBRWdBbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUNJQUFnQXpZQ0NDQUNJQU0yQWd3Z0F5QUFOZ0lNSUFNZ0FqWUNDQThMUVI4aEFpQURRZ0EzQWhBZ0FFSC8vLzhIVFFSQUlBQkJDSFlpQVNBQlFZRCtQMnBCRUhaQkNIRWlBWFFpQWlBQ1FZRGdIMnBCRUhaQkJIRWlBblFpQkNBRVFZQ0FEMnBCRUhaQkFuRWlCSFJCRDNZZ0FTQUNjaUFFY21zaUFVRUJkQ0FBSUFGQkZXcDJRUUZ4Y2tFY2FpRUNDeUFESUFJMkFod2dBa0VDZEVHSWhBRnFJUUVDUUFKQUFrQkIzSUVCS0FJQUlnUkJBU0FDZENJSGNVVUVRRUhjZ1FFZ0JDQUhjallDQUNBQklBTTJBZ0FnQXlBQk5nSVlEQUVMSUFCQkFFRVpJQUpCQVhacklBSkJIMFliZENFQ0lBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFKQkhYWWhBU0FDUVFGMElRSWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBRE5nSVFJQU1nQkRZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUVLQUlJSWdBZ0F6WUNEQ0FFSUFNMkFnZ2dBMEVBTmdJWUlBTWdCRFlDRENBRElBQTJBZ2dMUWZpQkFVSDRnUUVvQWdCQkFXc2lBRUYvSUFBYk5nSUFDd3NrQVFGL0l3QkJFR3NpQVNRQUlBQkNBRGNDQUNBQVFRQTJBZ2dnQVVFUWFpUUFJQUFMaXdJQ0EzOENmZ0pBSUFBcEEzQWlCRkJGSUFRZ0FDa0RlQ0FBS0FJRUlnRWdBQ2dDTENJQ2E2eDhJZ1ZYY1VVRVFDTUFRUkJySWdJa0FFRi9JUUVDUUNBQUVPa0JEUUFnQUNBQ1FROXFRUUVnQUNnQ0lCRUVBRUVCUncwQUlBSXRBQThoQVFzZ0FrRVFhaVFBSUFFaUEwRUFUZzBCSUFBb0FnUWhBU0FBS0FJc0lRSUxJQUJDZnpjRGNDQUFJQUUyQW1nZ0FDQUZJQUlnQVd1c2ZEY0RlRUYvRHdzZ0JVSUJmQ0VGSUFBb0FnUWhBU0FBS0FJSUlRSUNRQ0FBS1FOd0lnUlFEUUFnQkNBRmZTSUVJQUlnQVd1c1dRMEFJQUVnQktkcUlRSUxJQUFnQWpZQ2FDQUFJQVVnQUNnQ0xDSUFJQUZyckh3M0EzZ2dBQ0FCVHdSQUlBRkJBV3NnQXpvQUFBc2dBd3NaQVFGL1FRb2hBU0FBRURVRWZ5QUFFSDFCQVdzRklBRUxDK01CQVFaL0lBRVEwd0loQXlNQVFSQnJJZ1VrQUFKQUlBTWdBQ0lFRU04QklnQk5CRUFnQkJBTklnWWhBaUFESWdBRWZ3SkFJQUVnQWtZTkFDQUNJQUZySUFCQkFuUlBCRUFnQUVVTkFRTkFJQUlnQVNnQ0FEWUNBQ0FDUVFScUlRSWdBVUVFYWlFQklBQkJBV3NpQUEwQUN3d0JDeUFBUlEwQUEwQWdBaUFBUVFGcklnQkJBblFpQjJvZ0FTQUhhaWdDQURZQ0FDQUFEUUFMQzBFQUJTQUNDeG9nQlVFQU5nSU1JQVlnQTBFQ2RHb2dCVUVNYWhBeklBUWdBeEI0REFFTElBUWdBQ0FESUFCcklBUVFDU0lBUVFBZ0FDQURJQUVROUFFTElBVkJFR29rQUF0ekFRTi9JQUVRa2dFaEFpTUFRUkJySWdRa0FBSkFJQUlnQUJBVElnTk5CRUFnQUJBTklRTWdBZ1JBSUFNZ0FTQUNFT29CQ3lBRVFRQTZBQThnQWlBRGFpQUVRUTlxRURRZ0FDQUNFSGdNQVFzZ0FDQURJQUlnQTJzZ0FCQUpJZ0JCQUNBQUlBSWdBUkQ0QVFzZ0JFRVFhaVFBQyswQ0FRUi9Ba0JCM0lnQkxRQUFRUUZ4RFFCQjNJZ0JFQ1JGRFFBakFFRWdheUlDSkFBQ1FBSkFBMEFnQWtFSWFpQUFRUUowYWdKL1FRRWdBSFJCLy8vLy93ZHhJZ05CQVhKRkJFQWdBRUVDZENnQ0FBd0JDeUFBUVpvZVFhUWZJQU1iRU9BQ0N5SUROZ0lBSUFOQmYwY0VRQ0FBUVFGcUlnQkJCa1lOQWd3QkN3c01BUXRCQUJEZkFrVUVRRUhJTFNFQklBSkJDR3BCeUMwUW53RkZEUUZCNEMwaEFTQUNRUWhxUWVBdEVKOEJSUTBCUVFBaEFFR3dod0V0QUFCRkJFQURRQ0FBUVFKMFFZQ0hBV29nQUVHa0h4RGdBallDQUNBQVFRRnFJZ0JCQmtjTkFBdEJzSWNCUVFFNkFBQkJtSWNCUVlDSEFTZ0NBRFlDQUF0QmdJY0JJUUVnQWtFSWFrR0Fod0VRbndGRkRRRkJtSWNCSVFFZ0FrRUlha0dZaHdFUW53RkZEUUZCR0JBWklnRkZEUUVMSUFFZ0Fpa0RDRGNDQUNBQklBSXBBeGczQWhBZ0FTQUNLUU1RTndJSUN5QUNRU0JxSkFCQjJJZ0JJQUUyQWdCQjNJZ0JFQ01MUWRpSUFTZ0NBQXNGQUJBQUFBdmZDZ0lGZnc5K0l3QkI0QUJySWdVa0FDQUVRdi8vLy8vLy96K0RJZzFDRDRZZ0EwSXhpSVFoRGlBQ0lBU0ZRb0NBZ0lDQWdJQ0FnSCtESVFvZ0FrTC8vLy8vLy84L2d5SUxRaUNJSVE4Z0RVSVJpQ0VRSUFSQ01JaW5RZi8vQVhFaEJ3SkFBa0FnQWtJd2lLZEIvLzhCY1NJSlFRRnJRZjMvQVUwRVFDQUhRUUZyUWY3L0FVa05BUXNnQVZBZ0FrTC8vLy8vLy8vLy8vOEFneUlNUW9DQWdJQ0FnTUQvL3dCVUlBeENnSUNBZ0lDQXdQLy9BRkViUlFSQUlBSkNnSUNBZ0lDQUlJUWhDZ3dDQ3lBRFVDQUVRdi8vLy8vLy8vLy8vd0NESWdKQ2dJQ0FnSUNBd1AvL0FGUWdBa0tBZ0lDQWdJREEvLzhBVVJ0RkJFQWdCRUtBZ0lDQWdJQWdoQ0VLSUFNaEFRd0NDeUFCSUF4Q2dJQ0FnSUNBd1AvL0FJV0VVQVJBSUFJZ0E0UlFCRUJDZ0lDQWdJQ0E0UC8vQUNFS1FnQWhBUXdEQ3lBS1FvQ0FnSUNBZ01ELy93Q0VJUXBDQUNFQkRBSUxJQU1nQWtLQWdJQ0FnSURBLy84QWhZUlFCRUFnQVNBTWhDRUNRZ0FoQVNBQ1VBUkFRb0NBZ0lDQWdPRC8vd0FoQ2d3REN5QUtRb0NBZ0lDQWdNRC8vd0NFSVFvTUFnc2dBU0FNaEZBRVFFSUFJUUVNQWdzZ0FpQURoRkFFUUVJQUlRRU1BZ3NnREVMLy8vLy8vLzgvV0FSQUlBVkIwQUJxSUFFZ0N5QUJJQXNnQzFBaUJodDVJQVpCQm5TdGZLY2lCa0VQYXhBdlFSQWdCbXNoQmlBRktRTllJZ3RDSUlnaER5QUZLUU5RSVFFTElBSkMvLy8vLy8vL1AxWU5BQ0FGUVVCcklBTWdEU0FESUEwZ0RWQWlDQnQ1SUFoQkJuU3RmS2NpQ0VFUGF4QXZJQVlnQ0d0QkVHb2hCaUFGS1FOSUlnSkNENFlnQlNrRFFDSURRakdJaENFT0lBSkNFWWdoRUFzZ0EwSVBoa0tBZ1A3L0Q0TWlBaUFCUWlDSUlnUitJaElnQTBJUmlFTC8vLy8vRDRNaURDQUJRdi8vLy84UGd5SUJmbndpRVVJZ2hpSU5JQUVnQW41OElnTWdEVlN0SUFJZ0MwTC8vLy8vRDRNaUMzNGlGU0FFSUF4K2ZDSVRJQTVDLy8vLy93K0RJZzBnQVg1OEloUWdFU0FTVksxQ0lJWWdFVUlnaUlSOEloRWdBaUFQUW9DQUJJUWlEbjRpRmlBTElBeCtmQ0lQSUFRZ0RYNThJaElnRUVMLy8vLy9CNE5DZ0lDQWdBaUVJZ0lnQVg1OEloQkNJSVo4SWhkOElRRWdCeUFKYWlBR2FrSC8vd0JySVFZQ1FDQUxJQTErSWhnZ0RDQU9mbndpRENBWVZLMGdEQ0FDSUFSK2ZDSUVJQXhVclh3Z0FpQU9mbndnQkNBRUlCTWdGVlN0SUJNZ0ZGYXRmSHdpQkZhdGZDQUNJQXQrSWdzZ0RTQU9mbndpQWlBTFZLMUNJSVlnQWtJZ2lJUjhJQVFnQWtJZ2hud2lBaUFFVksxOElBSWdBaUFRSUJKVXJTQVBJQlpVclNBUElCSldyWHg4UWlDR0lCQkNJSWlFZkNJQ1ZxMThJQUlnQWlBUklCUlVyU0FSSUJkV3JYeDhJZ0pXclh3aUJFS0FnSUNBZ0lEQUFJTlFSUVJBSUFaQkFXb2hCZ3dCQ3lBRFFqK0lJUXNnQkVJQmhpQUNRaitJaENFRUlBSkNBWVlnQVVJL2lJUWhBaUFEUWdHR0lRTWdDeUFCUWdHR2hDRUJDeUFHUWYvL0FVNEVRQ0FLUW9DQWdJQ0FnTUQvL3dDRUlRcENBQ0VCREFFTEFuNGdCa0VBVEFSQVFRRWdCbXNpQjBHQUFVOEVRRUlBSVFFTUF3c2dCVUV3YWlBRElBRWdCa0gvQUdvaUJoQXZJQVZCSUdvZ0FpQUVJQVlRTHlBRlFSQnFJQU1nQVNBSEVId2dCU0FDSUFRZ0J4QjhJQVVwQXpBZ0JTa0RPSVJDQUZLdElBVXBBeUFnQlNrREVJU0VJUU1nQlNrREtDQUZLUU1ZaENFQklBVXBBd0FoQWlBRktRTUlEQUVMSUFSQy8vLy8vLy8vUDRNZ0JxMUNNSWFFQ3lBS2hDRUtJQU5RSUFGQ0FGa2dBVUtBZ0lDQWdJQ0FnSUIvVVJ0RkJFQWdDaUFDUWdGOElnRWdBbFN0ZkNFS0RBRUxJQU1nQVVLQWdJQ0FnSUNBZ0lCL2hZUlFSUVJBSUFJaEFRd0JDeUFLSUFJZ0FrSUJnM3dpQVNBQ1ZLMThJUW9MSUFBZ0FUY0RBQ0FBSUFvM0F3Z2dCVUhnQUdva0FBdUFMZ0VMZnlNQVFSQnJJZ3NrQUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBRUgwQVUwRVFFSFlnUUVvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUIwRURkaUlDZGlJQlFRTnhCRUFnQVVGL2MwRUJjU0FDYWlJRFFRTjBJZ0ZCaUlJQmFpZ0NBQ0lFUVFocUlRQUNRQ0FFS0FJSUlnSWdBVUdBZ2dGcUlnRkdCRUJCMklFQklBWkJmaUFEZDNFMkFnQU1BUXNnQWlBQk5nSU1JQUVnQWpZQ0NBc2dCQ0FEUVFOMElnRkJBM0kyQWdRZ0FTQUVhaUlCSUFFb0FnUkJBWEkyQWdRTURBc2dCMEhnZ1FFb0FnQWlDazBOQVNBQkJFQUNRRUVDSUFKMElnQkJBQ0FBYTNJZ0FTQUNkSEVpQUVFQUlBQnJjVUVCYXlJQUlBQkJESFpCRUhFaUFuWWlBVUVGZGtFSWNTSUFJQUp5SUFFZ0FIWWlBVUVDZGtFRWNTSUFjaUFCSUFCMklnRkJBWFpCQW5FaUFISWdBU0FBZGlJQlFRRjJRUUZ4SWdCeUlBRWdBSFpxSWdOQkEzUWlBRUdJZ2dGcUtBSUFJZ1FvQWdnaUFTQUFRWUNDQVdvaUFFWUVRRUhZZ1FFZ0JrRitJQU4zY1NJR05nSUFEQUVMSUFFZ0FEWUNEQ0FBSUFFMkFnZ0xJQVJCQ0dvaEFDQUVJQWRCQTNJMkFnUWdCQ0FIYWlJQ0lBTkJBM1FpQVNBSGF5SURRUUZ5TmdJRUlBRWdCR29nQXpZQ0FDQUtCRUFnQ2tFRGRpSUJRUU4wUVlDQ0FXb2hCVUhzZ1FFb0FnQWhCQUovSUFaQkFTQUJkQ0lCY1VVRVFFSFlnUUVnQVNBR2NqWUNBQ0FGREFFTElBVW9BZ2dMSVFFZ0JTQUVOZ0lJSUFFZ0JEWUNEQ0FFSUFVMkFnd2dCQ0FCTmdJSUMwSHNnUUVnQWpZQ0FFSGdnUUVnQXpZQ0FBd01DMEhjZ1FFb0FnQWlDVVVOQVNBSlFRQWdDV3R4UVFGcklnQWdBRUVNZGtFUWNTSUNkaUlCUVFWMlFRaHhJZ0FnQW5JZ0FTQUFkaUlCUVFKMlFRUnhJZ0J5SUFFZ0FIWWlBVUVCZGtFQ2NTSUFjaUFCSUFCMklnRkJBWFpCQVhFaUFISWdBU0FBZG1wQkFuUkJpSVFCYWlnQ0FDSUJLQUlFUVhoeElBZHJJUU1nQVNFQ0EwQUNRQ0FDS0FJUUlnQkZCRUFnQWlnQ0ZDSUFSUTBCQ3lBQUtBSUVRWGh4SUFkcklnSWdBeUFDSUFOSklnSWJJUU1nQUNBQklBSWJJUUVnQUNFQ0RBRUxDeUFCS0FJWUlRZ2dBU0FCS0FJTUlnUkhCRUFnQVNnQ0NDSUFRZWlCQVNnQ0FFa2FJQUFnQkRZQ0RDQUVJQUEyQWdnTUN3c2dBVUVVYWlJQ0tBSUFJZ0JGQkVBZ0FTZ0NFQ0lBUlEwRElBRkJFR29oQWdzRFFDQUNJUVVnQUNJRVFSUnFJZ0lvQWdBaUFBMEFJQVJCRUdvaEFpQUVLQUlRSWdBTkFBc2dCVUVBTmdJQURBb0xRWDhoQnlBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFSFFkeUJBU2dDQUNJSlJRMEFRUUFnQjJzaEF3SkFBa0FDUUFKL1FRQWdCMEdBQWtrTkFCcEJIeUFIUWYvLy93ZExEUUFhSUFCQkNIWWlBQ0FBUVlEK1AycEJFSFpCQ0hFaUFuUWlBQ0FBUVlEZ0gycEJFSFpCQkhFaUFYUWlBQ0FBUVlDQUQycEJFSFpCQW5FaUFIUkJEM1lnQVNBQ2NpQUFjbXNpQUVFQmRDQUhJQUJCRldwMlFRRnhja0VjYWdzaUJrRUNkRUdJaEFGcUtBSUFJZ0pGQkVCQkFDRUFEQUVMUVFBaEFDQUhRUUJCR1NBR1FRRjJheUFHUVI5R0czUWhBUU5BQWtBZ0FpZ0NCRUY0Y1NBSGF5SUZJQU5QRFFBZ0FpRUVJQVVpQXcwQVFRQWhBeUFDSVFBTUF3c2dBQ0FDS0FJVUlnVWdCU0FDSUFGQkhYWkJCSEZxS0FJUUlnSkdHeUFBSUFVYklRQWdBVUVCZENFQklBSU5BQXNMSUFBZ0JISkZCRUJCQUNFRVFRSWdCblFpQUVFQUlBQnJjaUFKY1NJQVJRMERJQUJCQUNBQWEzRkJBV3NpQUNBQVFReDJRUkJ4SWdKMklnRkJCWFpCQ0hFaUFDQUNjaUFCSUFCMklnRkJBblpCQkhFaUFISWdBU0FBZGlJQlFRRjJRUUp4SWdCeUlBRWdBSFlpQVVFQmRrRUJjU0lBY2lBQklBQjJha0VDZEVHSWhBRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBSGF5SUJJQU5KSVFJZ0FTQURJQUliSVFNZ0FDQUVJQUliSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRZUNCQVNnQ0FDQUhhMDhOQUNBRUtBSVlJUVlnQkNBRUtBSU1JZ0ZIQkVBZ0JDZ0NDQ0lBUWVpQkFTZ0NBRWthSUFBZ0FUWUNEQ0FCSUFBMkFnZ01DUXNnQkVFVWFpSUNLQUlBSWdCRkJFQWdCQ2dDRUNJQVJRMERJQVJCRUdvaEFnc0RRQ0FDSVFVZ0FDSUJRUlJxSWdJb0FnQWlBQTBBSUFGQkVHb2hBaUFCS0FJUUlnQU5BQXNnQlVFQU5nSUFEQWdMSUFkQjRJRUJLQUlBSWdKTkJFQkI3SUVCS0FJQUlRTUNRQ0FDSUFkcklnRkJFRThFUUVIZ2dRRWdBVFlDQUVIc2dRRWdBeUFIYWlJQU5nSUFJQUFnQVVFQmNqWUNCQ0FDSUFOcUlBRTJBZ0FnQXlBSFFRTnlOZ0lFREFFTFFleUJBVUVBTmdJQVFlQ0JBVUVBTmdJQUlBTWdBa0VEY2pZQ0JDQUNJQU5xSWdBZ0FDZ0NCRUVCY2pZQ0JBc2dBMEVJYWlFQURBb0xJQWRCNUlFQktBSUFJZ2hKQkVCQjVJRUJJQWdnQjJzaUFUWUNBRUh3Z1FGQjhJRUJLQUlBSWdJZ0Iyb2lBRFlDQUNBQUlBRkJBWEkyQWdRZ0FpQUhRUU55TmdJRUlBSkJDR29oQUF3S0MwRUFJUUFnQjBFdmFpSUpBbjlCc0lVQktBSUFCRUJCdUlVQktBSUFEQUVMUWJ5RkFVSi9Od0lBUWJTRkFVS0FvSUNBZ0lBRU53SUFRYkNGQVNBTFFReHFRWEJ4UWRpcTFhb0ZjellDQUVIRWhRRkJBRFlDQUVHVWhRRkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ1Z4SWdJZ0IwME5DVUdRaFFFb0FnQWlCQVJBUVlpRkFTZ0NBQ0lESUFKcUlnRWdBMDBnQVNBRVMzSU5DZ3RCbElVQkxRQUFRUVJ4RFFRQ1FBSkFRZkNCQVNnQ0FDSURCRUJCbUlVQklRQURRQ0FESUFBb0FnQWlBVThFUUNBQklBQW9BZ1JxSUFOTERRTUxJQUFvQWdnaUFBMEFDd3RCQUJCeUlnRkJmMFlOQlNBQ0lRWkJ0SVVCS0FJQUlnTkJBV3NpQUNBQmNRUkFJQUlnQVdzZ0FDQUJha0VBSUFOcmNXb2hCZ3NnQmlBSFRTQUdRZjcvLy84SFMzSU5CVUdRaFFFb0FnQWlCQVJBUVlpRkFTZ0NBQ0lESUFacUlnQWdBMDBnQUNBRVMzSU5CZ3NnQmhCeUlnQWdBVWNOQVF3SEN5QUdJQWhySUFWeElnWkIvdi8vL3dkTERRUWdCaEJ5SWdFZ0FDZ0NBQ0FBS0FJRWFrWU5BeUFCSVFBTElBQkJmMFlnQjBFd2FpQUdUWEpGQkVCQnVJVUJLQUlBSWdFZ0NTQUdhMnBCQUNBQmEzRWlBVUgrLy8vL0Iwc0VRQ0FBSVFFTUJ3c2dBUkJ5UVg5SEJFQWdBU0FHYWlFR0lBQWhBUXdIQzBFQUlBWnJFSElhREFRTElBQWlBVUYvUncwRkRBTUxRUUFoQkF3SEMwRUFJUUVNQlFzZ0FVRi9SdzBDQzBHVWhRRkJsSVVCS0FJQVFRUnlOZ0lBQ3lBQ1FmNy8vLzhIU3cwQklBSVFjaUlCUVg5R1FRQVFjaUlBUVg5R2NpQUFJQUZOY2cwQklBQWdBV3NpQmlBSFFTaHFUUTBCQzBHSWhRRkJpSVVCS0FJQUlBWnFJZ0EyQWdCQmpJVUJLQUlBSUFCSkJFQkJqSVVCSUFBMkFnQUxBa0FDUUFKQVFmQ0JBU2dDQUNJRkJFQkJtSVVCSVFBRFFDQUJJQUFvQWdBaUF5QUFLQUlFSWdKcVJnMENJQUFvQWdnaUFBMEFDd3dDQzBIb2dRRW9BZ0FpQUVFQUlBQWdBVTBiUlFSQVFlaUJBU0FCTmdJQUMwRUFJUUJCbklVQklBWTJBZ0JCbUlVQklBRTJBZ0JCK0lFQlFYODJBZ0JCL0lFQlFiQ0ZBU2dDQURZQ0FFR2toUUZCQURZQ0FBTkFJQUJCQTNRaUEwR0lnZ0ZxSUFOQmdJSUJhaUlDTmdJQUlBTkJqSUlCYWlBQ05nSUFJQUJCQVdvaUFFRWdSdzBBQzBIa2dRRWdCa0VvYXlJRFFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUFheUlDTmdJQVFmQ0JBU0FBSUFGcUlnQTJBZ0FnQUNBQ1FRRnlOZ0lFSUFFZ0EycEJLRFlDQkVIMGdRRkJ3SVVCS0FJQU5nSUFEQUlMSUFBdEFBeEJDSEVnQXlBRlMzSWdBU0FGVFhJTkFDQUFJQUlnQm1vMkFnUkI4SUVCSUFWQmVDQUZhMEVIY1VFQUlBVkJDR3BCQjNFYklnQnFJZ0kyQWdCQjVJRUJRZVNCQVNnQ0FDQUdhaUlCSUFCcklnQTJBZ0FnQWlBQVFRRnlOZ0lFSUFFZ0JXcEJLRFlDQkVIMGdRRkJ3SVVCS0FJQU5nSUFEQUVMUWVpQkFTZ0NBQ0FCU3dSQVFlaUJBU0FCTmdJQUN5QUJJQVpxSVFKQm1JVUJJUUFDUUFKQUFrQUNRQUpBQWtBRFFDQUNJQUFvQWdCSEJFQWdBQ2dDQ0NJQURRRU1BZ3NMSUFBdEFBeEJDSEZGRFFFTFFaaUZBU0VBQTBBZ0JTQUFLQUlBSWdKUEJFQWdBaUFBS0FJRWFpSUVJQVZMRFFNTElBQW9BZ2doQUF3QUN3QUxJQUFnQVRZQ0FDQUFJQUFvQWdRZ0JtbzJBZ1FnQVVGNElBRnJRUWR4UVFBZ0FVRUlha0VIY1J0cUlna2dCMEVEY2pZQ0JDQUNRWGdnQW10QkIzRkJBQ0FDUVFocVFRZHhHMm9pQmlBSElBbHFJZ2hySVFJZ0JTQUdSZ1JBUWZDQkFTQUlOZ0lBUWVTQkFVSGtnUUVvQWdBZ0Ftb2lBRFlDQUNBSUlBQkJBWEkyQWdRTUF3c2dCa0hzZ1FFb0FnQkdCRUJCN0lFQklBZzJBZ0JCNElFQlFlQ0JBU2dDQUNBQ2FpSUFOZ0lBSUFnZ0FFRUJjallDQkNBQUlBaHFJQUEyQWdBTUF3c2dCaWdDQkNJQVFRTnhRUUZHQkVBZ0FFRjRjU0VGQWtBZ0FFSC9BVTBFUUNBR0tBSUlJZ01nQUVFRGRpSUFRUU4wUVlDQ0FXcEdHaUFESUFZb0Fnd2lBVVlFUUVIWWdRRkIySUVCS0FJQVFYNGdBSGR4TmdJQURBSUxJQU1nQVRZQ0RDQUJJQU0yQWdnTUFRc2dCaWdDR0NFSEFrQWdCaUFHS0FJTUlnRkhCRUFnQmlnQ0NDSUFJQUUyQWd3Z0FTQUFOZ0lJREFFTEFrQWdCa0VVYWlJQUtBSUFJZ01OQUNBR1FSQnFJZ0FvQWdBaUF3MEFRUUFoQVF3QkN3TkFJQUFoQkNBRElnRkJGR29pQUNnQ0FDSUREUUFnQVVFUWFpRUFJQUVvQWhBaUF3MEFDeUFFUVFBMkFnQUxJQWRGRFFBQ1FDQUdJQVlvQWh3aUEwRUNkRUdJaEFGcUlnQW9BZ0JHQkVBZ0FDQUJOZ0lBSUFFTkFVSGNnUUZCM0lFQktBSUFRWDRnQTNkeE5nSUFEQUlMSUFkQkVFRVVJQWNvQWhBZ0JrWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0J6WUNHQ0FHS0FJUUlnQUVRQ0FCSUFBMkFoQWdBQ0FCTmdJWUN5QUdLQUlVSWdCRkRRQWdBU0FBTmdJVUlBQWdBVFlDR0FzZ0JTQUdhaUVHSUFJZ0JXb2hBZ3NnQmlBR0tBSUVRWDV4TmdJRUlBZ2dBa0VCY2pZQ0JDQUNJQWhxSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdCQkEzUkJnSUlCYWlFQ0FuOUIySUVCS0FJQUlnRkJBU0FBZENJQWNVVUVRRUhZZ1FFZ0FDQUJjallDQUNBQ0RBRUxJQUlvQWdnTElRQWdBaUFJTmdJSUlBQWdDRFlDRENBSUlBSTJBZ3dnQ0NBQU5nSUlEQU1MUVI4aEFDQUNRZi8vL3dkTkJFQWdBa0VJZGlJQUlBQkJnUDQvYWtFUWRrRUljU0lEZENJQUlBQkJnT0FmYWtFUWRrRUVjU0lCZENJQUlBQkJnSUFQYWtFUWRrRUNjU0lBZEVFUGRpQUJJQU55SUFCeWF5SUFRUUYwSUFJZ0FFRVZhblpCQVhGeVFSeHFJUUFMSUFnZ0FEWUNIQ0FJUWdBM0FoQWdBRUVDZEVHSWhBRnFJUVFDUUVIY2dRRW9BZ0FpQTBFQklBQjBJZ0Z4UlFSQVFkeUJBU0FCSUFOeU5nSUFJQVFnQ0RZQ0FDQUlJQVEyQWhnTUFRc2dBa0VBUVJrZ0FFRUJkbXNnQUVFZlJodDBJUUFnQkNnQ0FDRUJBMEFnQVNJREtBSUVRWGh4SUFKR0RRTWdBRUVkZGlFQklBQkJBWFFoQUNBRElBRkJCSEZxSWdRb0FoQWlBUTBBQ3lBRUlBZzJBaEFnQ0NBRE5nSVlDeUFJSUFnMkFnd2dDQ0FJTmdJSURBSUxRZVNCQVNBR1FTaHJJZ05CZUNBQmEwRUhjVUVBSUFGQkNHcEJCM0ViSWdCcklnSTJBZ0JCOElFQklBQWdBV29pQURZQ0FDQUFJQUpCQVhJMkFnUWdBU0FEYWtFb05nSUVRZlNCQVVIQWhRRW9BZ0EyQWdBZ0JTQUVRU2NnQkd0QkIzRkJBQ0FFUVNkclFRZHhHMnBCTDJzaUFDQUFJQVZCRUdwSkd5SUNRUnMyQWdRZ0FrR2doUUVwQWdBM0FoQWdBa0dZaFFFcEFnQTNBZ2hCb0lVQklBSkJDR28yQWdCQm5JVUJJQVkyQWdCQm1JVUJJQUUyQWdCQnBJVUJRUUEyQWdBZ0FrRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2hBU0FBUVFScUlRQWdBU0FFU1EwQUN5QUNJQVZHRFFNZ0FpQUNLQUlFUVg1eE5nSUVJQVVnQWlBRmF5SUVRUUZ5TmdJRUlBSWdCRFlDQUNBRVFmOEJUUVJBSUFSQkEzWWlBRUVEZEVHQWdnRnFJUUlDZjBIWWdRRW9BZ0FpQVVFQklBQjBJZ0J4UlFSQVFkaUJBU0FBSUFGeU5nSUFJQUlNQVFzZ0FpZ0NDQXNoQUNBQ0lBVTJBZ2dnQUNBRk5nSU1JQVVnQWpZQ0RDQUZJQUEyQWdnTUJBdEJIeUVBSUFWQ0FEY0NFQ0FFUWYvLy93ZE5CRUFnQkVFSWRpSUFJQUJCZ1A0L2FrRVFka0VJY1NJQ2RDSUFJQUJCZ09BZmFrRVFka0VFY1NJQmRDSUFJQUJCZ0lBUGFrRVFka0VDY1NJQWRFRVBkaUFCSUFKeUlBQnlheUlBUVFGMElBUWdBRUVWYW5aQkFYRnlRUnhxSVFBTElBVWdBRFlDSENBQVFRSjBRWWlFQVdvaEF3SkFRZHlCQVNnQ0FDSUNRUUVnQUhRaUFYRkZCRUJCM0lFQklBRWdBbkkyQWdBZ0F5QUZOZ0lBSUFVZ0F6WUNHQXdCQ3lBRVFRQkJHU0FBUVFGMmF5QUFRUjlHRzNRaEFDQURLQUlBSVFFRFFDQUJJZ0lvQWdSQmVIRWdCRVlOQkNBQVFSMTJJUUVnQUVFQmRDRUFJQUlnQVVFRWNXb2lBeWdDRUNJQkRRQUxJQU1nQlRZQ0VDQUZJQUkyQWhnTElBVWdCVFlDRENBRklBVTJBZ2dNQXdzZ0F5Z0NDQ0lBSUFnMkFnd2dBeUFJTmdJSUlBaEJBRFlDR0NBSUlBTTJBZ3dnQ0NBQU5nSUlDeUFKUVFocUlRQU1CUXNnQWlnQ0NDSUFJQVUyQWd3Z0FpQUZOZ0lJSUFWQkFEWUNHQ0FGSUFJMkFnd2dCU0FBTmdJSUMwSGtnUUVvQWdBaUFDQUhUUTBBUWVTQkFTQUFJQWRySWdFMkFnQkI4SUVCUWZDQkFTZ0NBQ0lDSUFkcUlnQTJBZ0FnQUNBQlFRRnlOZ0lFSUFJZ0IwRURjallDQkNBQ1FRaHFJUUFNQXd0QjFJRUJRVEEyQWdCQkFDRUFEQUlMQWtBZ0JrVU5BQUpBSUFRb0Fod2lBa0VDZEVHSWhBRnFJZ0FvQWdBZ0JFWUVRQ0FBSUFFMkFnQWdBUTBCUWR5QkFTQUpRWDRnQW5keElnazJBZ0FNQWdzZ0JrRVFRUlFnQmlnQ0VDQUVSaHRxSUFFMkFnQWdBVVVOQVFzZ0FTQUdOZ0lZSUFRb0FoQWlBQVJBSUFFZ0FEWUNFQ0FBSUFFMkFoZ0xJQVFvQWhRaUFFVU5BQ0FCSUFBMkFoUWdBQ0FCTmdJWUN3SkFJQU5CRDAwRVFDQUVJQU1nQjJvaUFFRURjallDQkNBQUlBUnFJZ0FnQUNnQ0JFRUJjallDQkF3QkN5QUVJQWRCQTNJMkFnUWdCQ0FIYWlJRklBTkJBWEkyQWdRZ0F5QUZhaUFETmdJQUlBTkIvd0ZOQkVBZ0EwRURkaUlBUVFOMFFZQ0NBV29oQWdKL1FkaUJBU2dDQUNJQlFRRWdBSFFpQUhGRkJFQkIySUVCSUFBZ0FYSTJBZ0FnQWd3QkN5QUNLQUlJQ3lFQUlBSWdCVFlDQ0NBQUlBVTJBZ3dnQlNBQ05nSU1JQVVnQURZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJDSFlpQUNBQVFZRCtQMnBCRUhaQkNIRWlBblFpQUNBQVFZRGdIMnBCRUhaQkJIRWlBWFFpQUNBQVFZQ0FEMnBCRUhaQkFuRWlBSFJCRDNZZ0FTQUNjaUFBY21zaUFFRUJkQ0FESUFCQkZXcDJRUUZ4Y2tFY2FpRUFDeUFGSUFBMkFod2dCVUlBTndJUUlBQkJBblJCaUlRQmFpRUJBa0FDUUNBSlFRRWdBSFFpQW5GRkJFQkIzSUVCSUFJZ0NYSTJBZ0FnQVNBRk5nSUFEQUVMSUFOQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQndOQUlBY2lBU2dDQkVGNGNTQURSZzBDSUFCQkhYWWhBaUFBUVFGMElRQWdBU0FDUVFSeGFpSUNLQUlRSWdjTkFBc2dBaUFGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFoRkRRQUNRQ0FCS0FJY0lnSkJBblJCaUlRQmFpSUFLQUlBSUFGR0JFQWdBQ0FFTmdJQUlBUU5BVUhjZ1FFZ0NVRitJQUozY1RZQ0FBd0NDeUFJUVJCQkZDQUlLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFnMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUhhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0IwRURjallDQkNBQklBZHFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQ2dSQUlBcEJBM1lpQUVFRGRFR0FnZ0ZxSVFWQjdJRUJLQUlBSVFRQ2YwRUJJQUIwSWdBZ0JuRkZCRUJCMklFQklBQWdCbkkyQWdBZ0JRd0JDeUFGS0FJSUN5RUFJQVVnQkRZQ0NDQUFJQVEyQWd3Z0JDQUZOZ0lNSUFRZ0FEWUNDQXRCN0lFQklBSTJBZ0JCNElFQklBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMcHdFQkJIOGpBRUVnYXlJQkpBQWdBVUVBTmdJTUlBRkJOellDQ0NBQklBRXBBd2czQXdBZ0FVRVFhaUlESUFFcEFnQTNBZ1FnQXlBQU5nSUFJd0JCRUdzaUFpUUFJQUFvQWdCQmYwY0VRQ0FDUVFocUlnUWdBeEI2R2lBQ0lBUVFlaG9EUUNBQUtBSUFRUUZHRFFBTElBQW9BZ0JGQkVBZ0FFRUJOZ0lBSUFKQk9CRUJBQ0FBUVg4MkFnQUxDeUFDUVJCcUpBQWdBQ2dDQkNFQUlBRkJJR29rQUNBQVFRRnJDeHNBSUFCQkFEWUNCQ0FBUWRqOEFEWUNBQ0FBUVpqV0FEWUNBQXVZQmdFSmZ5TUFRUkJySWdna0FDQUFFTTRCSXdCQkVHc2lBaVFBSUFJZ0FEWUNEQ0FJUVFocUlnVWdBa0VNYWhBeklBSkJFR29rQUVHd2xRRVFVQ0FCVFFSQUFrQkJzSlVCRUZBaUFpQUJRUUZxSWdCSkJFQWpBRUVnYXlJSkpBQUNRQ0FBSUFKcklnWkJzSlVCRUVNb0FnQkJ0SlVCS0FJQWEwRUNkVTBFUUNBR0VKY0NEQUVMUWJDVkFSQjBJUWNnQ1VFSWFpRUNBbjlCc0pVQkVGQWdCbW9oQkNNQVFSQnJJZ0FrQUNBQUlBUTJBZ3dnQkJDQkFpSURUUVJBUWJDVkFSQnpJZ1FnQTBFQmRra0VRQ0FBSUFSQkFYUTJBZ2dnQUVFSWFpQUFRUXhxRUhZb0FnQWhBd3NnQUVFUWFpUUFJQU1NQVFzUUZ3QUxJUUJCc0pVQkVGQWhDa0VBSVFNakFFRVFheUlFSkFBZ0JFRUFOZ0lNSUFKQkRHb2dCRUVNYWlBSEVJUUNJQUFFUUNBQ0tBSVFJQUFRZ0FJaEF3c2dBaUFETmdJQUlBSWdBeUFLUVFKMGFpSUhOZ0lJSUFJZ0J6WUNCQ0FDRUlNQklBTWdBRUVDZEdvMkFnQWdCRUVRYWlRQUl3QkJFR3NpQUNRQUlBQWdBaWdDQ0RZQ0FDQUNLQUlJSVFNZ0FDQUNRUWhxTmdJSUlBQWdBeUFHUVFKMGFqWUNCQ0FBS0FJQUlRTURRQ0FBS0FJRUlBTkhCRUFnQWlnQ0VDQUFLQUlBRVA0QklBQWdBQ2dDQUVFRWFpSUROZ0lBREFFTEN5QUFLQUlJSUFBb0FnQTJBZ0FnQUVFUWFpUUFRYkNWQVJDUkFrR3dsUUVRZEVHd2xRRW9BZ0JCdEpVQktBSUFJQUpCQkdvaUFCQ0RBa0d3bFFFZ0FCQjFRYlNWQVNBQ1FRaHFFSFZCc0pVQkVFTWdBaENEQVJCMUlBSWdBaWdDQkRZQ0FFR3dsUUVRVUJEL0FTQUNLQUlFSVFBRFFDQUFJQUlvQWdoSEJFQWdBaWdDRUJvZ0FpQUNLQUlJUVFSck5nSUlEQUVMQ3lBQ0tBSUFCRUFnQWlnQ0VDQUNLQUlBSUFJUWd3RW9BZ0FnQWlnQ0FHdEJBblVRL0FFTEN5QUpRU0JxSkFBTUFRc2dBQ0FDU1FSQVFiQ1ZBU2dDQUNBQVFRSjBhaUVBUWJDVkFSQlFJUUpCc0pVQklBQVErd0ZCc0pVQklBSVFsQUlMQ3d0QnNKVUJJQUVRZHlnQ0FBUkFRYkNWQVNBQkVIY29BZ0FRb3dFTElBVVFwZ0VoQUVHd2xRRWdBUkIzSUFBMkFnQWdCU2dDQUNFQUlBVkJBRFlDQUNBQUJFQWdBQkNqQVFzZ0NFRVFhaVFBQ3dnQUlBQkJBQkFuQ3k4QkFYOGpBRUVRYXlJREpBQWdBeUFCTmdJTUlBQWdBMEVNYWhBeklBQkJCR29nQWhBeklBTkJFR29rQUNBQUN4QUFJQUFvQWdBUWdBTkJHSFJCR0hVTEJnQWdBQkFRQ3dvQUlBQW9BZ0FRK3dJTERRQWdBQ2dDQUJEL0Fob2dBQXRMQVFKL0l3QkJFR3NpQVNRQUlBRWdBQkR5QVNFQUl3QkJFR3NpQWlRQUlBSkJDR29nQUNnQ0JCQjZLQUlBUVFFNkFBQWdBQ2dDQ0VFQk9nQUFJQUpCRUdva0FDQUJRUkJxSkFBTGR3RURmeU1BUVJCcklnSWtBQ0FDSUFBUThnRWhBQ01BUVJCcklnTWtBQ0FEUVFocUlBQW9BZ1FRZWlnQ0FDMEFBRVVFUUFKL0FrQWdBQ2dDQ0NJQUxRQUFJZ0ZCQVVjRWZ5QUJRUUp4RFFFZ0FFRUNPZ0FBUVFFRlFRQUxEQUVMRUJjQUN5RUJDeUFEUVJCcUpBQWdBa0VRYWlRQUlBRUxEUUFnQUNnQ0FCRDZBaG9nQUFzSkFDQUFJQUVRZ1FNTEpBRUJmeUFBS0FJQUlRSWdBQ0FCTmdJQUlBSUVRQ0FDSUFBUWxnRW9BZ0FSQVFBTEN3a0FJQUFnQVJEOEFnc1JBQ0FBSUFFZ0FDZ0NBQ2dDSEJFQ0FBdS9BUUVEZnlBQUxRQUFRU0J4UlFSQUFrQWdBU0VEQWtBZ0FpQUFJZ0VvQWhBaUFBUi9JQUFGSUFFUTZBRU5BU0FCS0FJUUN5QUJLQUlVSWdWclN3UkFJQUVnQXlBQ0lBRW9BaVFSQkFBYURBSUxBa0FnQVNnQ1VFRUFTQTBBSUFJaEFBTkFJQUFpQkVVTkFTQURJQVJCQVdzaUFHb3RBQUJCQ2tjTkFBc2dBU0FESUFRZ0FTZ0NKQkVFQUNBRVNRMEJJQU1nQkdvaEF5QUNJQVJySVFJZ0FTZ0NGQ0VGQ3lBRklBTWdBaEJDR2lBQklBRW9BaFFnQW1vMkFoUUxDd3NMZFFFQmZpQUFJQUVnQkg0Z0FpQURmbndnQTBJZ2lDSUNJQUZDSUlnaUJINThJQU5DLy8vLy93K0RJZ01nQVVMLy8vLy9ENE1pQVg0aUJVSWdpQ0FESUFSK2ZDSURRaUNJZkNBQklBSitJQU5DLy8vLy93K0RmQ0lCUWlDSWZEY0RDQ0FBSUFWQy8vLy8vdytESUFGQ0lJYUVOd01BQzBNQkFYOGpBRUVRYXlJRkpBQWdCU0FDTmdJTUlBVWdCRFlDQ0NBRklBVkJER29RVWlFQ0lBQWdBU0FESUFVb0FnZ1F0UUVoQUNBQ0VGRWdCVUVRYWlRQUlBQUxvUUVCQW44Q1FDQUFFQWxGSUFJZ0FXdEJCVWh5RFFBZ0FTQUNFSzBCSUFKQkJHc2hCQ0FBRUEwaUFpQUFFQWxxSVFVQ1FBTkFBa0FnQWl3QUFDRUFJQUVnQkU4TkFDQUFRUUJNSUFCQi93Qk9ja1VFUUNBQktBSUFJQUlzQUFCSERRTUxJQUZCQkdvaEFTQUNJQVVnQW10QkFVcHFJUUlNQVFzTElBQkJBRXdnQUVIL0FFNXlEUUVnQWl3QUFDQUVLQUlBUVFGclN3MEJDeUFEUVFRMkFnQUxDMjBCQVg4akFFR0FBbXNpQlNRQUlBUkJnTUFFY1NBQ0lBTk1ja1VFUUNBRklBRkIvd0Z4SUFJZ0Eyc2lBa0dBQWlBQ1FZQUNTU0lCR3hCR0dpQUJSUVJBQTBBZ0FDQUZRWUFDRUNvZ0FrR0FBbXNpQWtIL0FVc05BQXNMSUFBZ0JTQUNFQ29MSUFWQmdBSnFKQUFMVUFFQmZnSkFJQU5Cd0FCeEJFQWdBU0FEUVVCcXJZWWhBa0lBSVFFTUFRc2dBMFVOQUNBQ0lBT3RJZ1NHSUFGQndBQWdBMnV0aUlRaEFpQUJJQVNHSVFFTElBQWdBVGNEQUNBQUlBSTNBd2dMVlFFQ2Z5TUFRUkJySWdJa0FDQUFFRFVFUUNBQUtBSUFJUU1nQUJCOUdpQURFQkFMSUFBZ0FTZ0NDRFlDQ0NBQUlBRXBBZ0EzQWdBZ0FVRUFFRG9nQWtFQU9nQVBJQUVnQWtFUGFoQTBJQUpCRUdva0FBc01BQ0FBSUFFUWdRTkJBWE1MQ2dBZ0FFR0VpUUVRWkFzTUFDQUFJQUVvQWdBMkFnQUxEQUFnQUNBQkxRQUFPZ0FBQ3dvQUlBQXRBQXRCQjNZTERBQWdBQ0FCRVB3Q1FRRnpDeEVBSUFBZ0FTQUJLQUlBS0FJVUVRTUFDdzhBSUFBZ0FDZ0NBQ2dDRUJFQUFBc0pBQ0FBSUFFMkFnUUxDUUFnQUNBQk9nQUxDd29BSUFCQi9JZ0JFR1FMMFFrQ0JIOEVmaU1BUWZBQWF5SUZKQUFnQkVMLy8vLy8vLy8vLy84QWd5RUtBa0FDUUNBQlFnRjlJZ3RDZjFFZ0FrTC8vLy8vLy8vLy8vOEFneUlKSUFFZ0MxYXRmRUlCZlNJTFF2Ly8vLy8vLzcvLy93QldJQXRDLy8vLy8vLy92Ly8vQUZFYlJRUkFJQU5DQVgwaUMwSi9VaUFLSUFNZ0MxYXRmRUlCZlNJTFF2Ly8vLy8vLzcvLy93QlVJQXRDLy8vLy8vLy92Ly8vQUZFYkRRRUxJQUZRSUFsQ2dJQ0FnSUNBd1AvL0FGUWdDVUtBZ0lDQWdJREEvLzhBVVJ0RkJFQWdBa0tBZ0lDQWdJQWdoQ0VFSUFFaEF3d0NDeUFEVUNBS1FvQ0FnSUNBZ01ELy93QlVJQXBDZ0lDQWdJQ0F3UC8vQUZFYlJRUkFJQVJDZ0lDQWdJQ0FJSVFoQkF3Q0N5QUJJQWxDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFRb0NBZ0lDQWdPRC8vd0FnQWlBQklBT0ZJQUlnQklWQ2dJQ0FnSUNBZ0lDQWY0V0VVQ0lHR3lFRVFnQWdBU0FHR3lFRERBSUxJQU1nQ2tLQWdJQ0FnSURBLy84QWhZUlFEUUVnQVNBSmhGQUVRQ0FESUFxRVFnQlNEUUlnQVNBRGd5RURJQUlnQklNaEJBd0NDeUFESUFxRVVFVU5BQ0FCSVFNZ0FpRUVEQUVMSUFNZ0FTQUJJQU5VSUFrZ0NsUWdDU0FLVVJzaUJ4c2hDaUFFSUFJZ0J4c2lDMEwvLy8vLy8vOC9neUVKSUFJZ0JDQUhHeUlDUWpDSXAwSC8vd0Z4SVFnZ0MwSXdpS2RCLy84QmNTSUdSUVJBSUFWQjRBQnFJQW9nQ1NBS0lBa2dDVkFpQmh0NUlBWkJCblN0ZktjaUJrRVBheEF2SUFVcEEyZ2hDU0FGS1FOZ0lRcEJFQ0FHYXlFR0N5QUJJQU1nQnhzaEF5QUNRdi8vLy8vLy96K0RJUVFnQ0VVRVFDQUZRZEFBYWlBRElBUWdBeUFFSUFSUUlnY2JlU0FIUVFaMHJYeW5JZ2RCRDJzUUwwRVFJQWRySVFnZ0JTa0RXQ0VFSUFVcEExQWhBd3NnQkVJRGhpQURRajJJaEVLQWdJQ0FnSUNBQklRaEJDQUpRZ09HSUFwQ1BZaUVJUWtnQWlBTGhTRU1BbjRnQTBJRGhpSUJJQVlnQ0dzaUIwVU5BQm9nQjBIL0FFc0VRRUlBSVFSQ0FRd0JDeUFGUVVCcklBRWdCRUdBQVNBSGF4QXZJQVZCTUdvZ0FTQUVJQWNRZkNBRktRTTRJUVFnQlNrRE1DQUZLUU5BSUFVcEEwaUVRZ0JTcllRTElRSWdDVUtBZ0lDQWdJQ0FCSVFoQ1NBS1FnT0dJUU1DUUNBTVFnQlRCRUFnQXlBQ2ZTSUJJQWtnQkgwZ0FpQURWcTE5SWdTRVVBUkFRZ0FoQTBJQUlRUU1Bd3NnQkVMLy8vLy8vLy8vQTFZTkFTQUZRU0JxSUFFZ0JDQUJJQVFnQkZBaUJ4dDVJQWRCQm5TdGZLZEJER3NpQnhBdklBWWdCMnNoQmlBRktRTW9JUVFnQlNrRElDRUJEQUVMSUFJZ0Ezd2lBU0FDVkswZ0JDQUpmSHdpQkVLQWdJQ0FnSUNBQ0lOUURRQWdBVUlCZ3lBRVFqK0dJQUZDQVlpRWhDRUJJQVpCQVdvaEJpQUVRZ0dJSVFRTElBdENnSUNBZ0lDQWdJQ0FmNE1oQWlBR1FmLy9BVTRFUUNBQ1FvQ0FnSUNBZ01ELy93Q0VJUVJDQUNFRERBRUxRUUFoQndKQUlBWkJBRW9FUUNBR0lRY01BUXNnQlVFUWFpQUJJQVFnQmtIL0FHb1FMeUFGSUFFZ0JFRUJJQVpyRUh3Z0JTa0RBQ0FGS1FNUUlBVXBBeGlFUWdCU3JZUWhBU0FGS1FNSUlRUUxJQUduUVFkeElnWkJCRXV0SUFSQ1BZWWdBVUlEaUlRaUFYd2lBeUFCVkswZ0JFSURpRUwvLy8vLy8vOC9neUFIclVJd2hvUWdBb1I4SVFRQ1FDQUdRUVJHQkVBZ0JDQURRZ0dESWdFZ0Ezd2lBeUFCVksxOElRUU1BUXNnQmtVTkFRc0xJQUFnQXpjREFDQUFJQVEzQXdnZ0JVSHdBR29rQUFzUkFDQUFJQUVnQUNnQ0FDZ0NMQkVDQUFzdEFDQUNSUVJBSUFBb0FnUWdBU2dDQkVZUEN5QUFJQUZHQkVCQkFROExJQUFvQWdRZ0FTZ0NCQkMyQVVVTFl3QWdBaWdDQkVHd0FYRWlBa0VnUmdSQUlBRVBDd0pBSUFKQkVFY05BQUpBQWtBZ0FDMEFBQ0lDUVN0ckRnTUFBUUFCQ3lBQVFRRnFEd3NnQWtFd1J5QUJJQUJyUVFKSWNnMEFJQUF0QUFGQklISkIrQUJIRFFBZ0FFRUNhaUVBQ3lBQUN5WUJBWDhqQUVFUWF5SUJKQUFnQVVFSWFpQUFFQTBRZWlnQ0FDRUFJQUZCRUdva0FDQUFDMzRDQW44QmZpTUFRUkJySWdNa0FDQUFBbjRnQVVVRVFFSUFEQUVMSUFNZ0FTQUJRUjkxSWdKcUlBSnpJZ0t0UWdBZ0FtY2lBa0hSQUdvUUx5QURLUU1JUW9DQWdJQ0FnTUFBaFVHZWdBRWdBbXV0UWpDR2ZDQUJRWUNBZ0lCNGNhMUNJSWFFSVFRZ0F5a0RBQXMzQXdBZ0FDQUVOd01JSUFOQkVHb2tBQXVEQkFFRGZ5QUNRWUFFVHdSQUlBQWdBU0FDRUFVYUlBQVBDeUFBSUFKcUlRTUNRQ0FBSUFGelFRTnhSUVJBQWtBZ0FFRURjVVVFUUNBQUlRSU1BUXNnQWtFQVRBUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2lBa0VEY1VVTkFTQUNJQU5KRFFBTEN3SkFJQU5CZkhFaUJFSEFBRWtOQUNBQ0lBUkJRR29pQlVzTkFBTkFJQUlnQVNnQ0FEWUNBQ0FDSUFFb0FnUTJBZ1FnQWlBQktBSUlOZ0lJSUFJZ0FTZ0NERFlDRENBQ0lBRW9BaEEyQWhBZ0FpQUJLQUlVTmdJVUlBSWdBU2dDR0RZQ0dDQUNJQUVvQWh3MkFod2dBaUFCS0FJZ05nSWdJQUlnQVNnQ0pEWUNKQ0FDSUFFb0FpZzJBaWdnQWlBQktBSXNOZ0lzSUFJZ0FTZ0NNRFlDTUNBQ0lBRW9BalEyQWpRZ0FpQUJLQUk0TmdJNElBSWdBU2dDUERZQ1BDQUJRVUJySVFFZ0FrRkFheUlDSUFWTkRRQUxDeUFDSUFSUERRRURRQ0FDSUFFb0FnQTJBZ0FnQVVFRWFpRUJJQUpCQkdvaUFpQUVTUTBBQ3d3QkN5QURRUVJKQkVBZ0FDRUNEQUVMSUFBZ0EwRUVheUlFU3dSQUlBQWhBZ3dCQ3lBQUlRSURRQ0FDSUFFdEFBQTZBQUFnQWlBQkxRQUJPZ0FCSUFJZ0FTMEFBam9BQWlBQ0lBRXRBQU02QUFNZ0FVRUVhaUVCSUFKQkJHb2lBaUFFVFEwQUN3c2dBaUFEU1FSQUEwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwY05BQXNMSUFBTEJ3QWdBRUVJYWdzbkFRRi9JQUpCQUU0RWZ5QUFLQUlJSUFKQi93RnhRUUYwYWk4QkFDQUJjVUVBUndVZ0F3c0xDZ0FnQUVFd2EwRUtTUXZ5QWdJQ2Z3RitBa0FnQWtVTkFDQUFJQUU2QUFBZ0FDQUNhaUlEUVFGcklBRTZBQUFnQWtFRFNRMEFJQUFnQVRvQUFpQUFJQUU2QUFFZ0EwRURheUFCT2dBQUlBTkJBbXNnQVRvQUFDQUNRUWRKRFFBZ0FDQUJPZ0FESUFOQkJHc2dBVG9BQUNBQ1FRbEpEUUFnQUVFQUlBQnJRUU54SWdScUlnTWdBVUgvQVhGQmdZS0VDR3dpQVRZQ0FDQURJQUlnQkd0QmZIRWlCR29pQWtFRWF5QUJOZ0lBSUFSQkNVa05BQ0FESUFFMkFnZ2dBeUFCTmdJRUlBSkJDR3NnQVRZQ0FDQUNRUXhySUFFMkFnQWdCRUVaU1EwQUlBTWdBVFlDR0NBRElBRTJBaFFnQXlBQk5nSVFJQU1nQVRZQ0RDQUNRUkJySUFFMkFnQWdBa0VVYXlBQk5nSUFJQUpCR0dzZ0FUWUNBQ0FDUVJ4cklBRTJBZ0FnQkNBRFFRUnhRUmh5SWdScklnSkJJRWtOQUNBQnJVS0JnSUNBRUg0aEJTQURJQVJxSVFFRFFDQUJJQVUzQXhnZ0FTQUZOd01RSUFFZ0JUY0RDQ0FCSUFVM0F3QWdBVUVnYWlFQklBSkJJR3NpQWtFZlN3MEFDd3NnQUFzM0FRSi9Jd0JCRUdzaUFpUUFBMEFnQVVFRFJ3UkFJQUFnQVVFQ2RHcEJBRFlDQUNBQlFRRnFJUUVNQVFzTElBSkJFR29rQUNBQUN3OEFJQUFnQUNnQ0FDZ0NEQkVBQUFzSEFDQUFFQWxGQ3hFQUlBQWdBU0FCS0FJQUtBSWNFUU1BQ3hFQUlBQWdBU0FCS0FJQUtBSVlFUU1BQ3hBQUlBQWdBVUdBZ0lDQWVISTJBZ2dMQ1FBZ0FDQUJOZ0lBQ3hNQUlBQWdBU0FDSUFBb0FnQW9BZ3dSQkFBTEJBQkJBQXNRQUNBQUtBSUVJQUFvQWdCclFRSjFDeElBSUFBb0FnQWlBQVJBSUFBUTBRSWFDd3NSQUNBQUlBRW9BZ0FRMFFJMkFnQWdBQXRCQVFGL0lBQWdBVGNEY0NBQUlBQW9BaXdnQUNnQ0JDSUNhNnczQTNnZ0FDQUJVQ0FBS0FJSUlnQWdBbXVzSUFGWGNnUi9JQUFGSUFJZ0FhZHFDellDYUFzaUFRRi9Jd0JCRUdzaUFpUUFJQUFnQVNBQkVKSUJFUFlCSUFKQkVHb2tBQ0FBQ3hBQUlBSUVRQ0FBSUFFZ0FoQkNHZ3NMblFFQkJIOGpBRUVRYXlJSEpBQUNRQ0FBUlEwQUlBUW9BZ3doQmlBQ0lBRnJJZ2hCQUVvRVFDQUFJQUVnQ0JCL0lBaEhEUUVMSUFZZ0F5QUJheUlCYTBFQUlBRWdCa2diSWdGQkFFb0VRQ0FBSUFjZ0FTQUZFTzhCSWdVUURTQUJFSDhoQmlBRkVBb2FJQUVnQmtjTkFRc2dBeUFDYXlJQlFRQktCRUFnQUNBQ0lBRVFmeUFCUncwQkN5QUVFTzRCSUFBaENRc2dCMEVRYWlRQUlBa0xWUUVDZnlNQVFSQnJJZ0lrQUNBQUVEVUVRQ0FBS0FJQUlRTWdBQkI5R2lBREVCQUxJQUFnQVNnQ0NEWUNDQ0FBSUFFcEFnQTNBZ0FnQVVFQUVEb2dBa0VBTmdJTUlBRWdBa0VNYWhBeklBSkJFR29rQUF1OEFRRURmeU1BUVJCcklnVWtBQ0FGSUFFMkFnaEJBQ0VCUVFZaEJnSkFBa0FnQUNBRlFRaHFFQ2dOQUVFRUlRWWdBMEdBRUNBQUVDRWlCeEJPUlEwQUlBTWdCeENIQVNFQkEwQUNRQ0FBRUNVYUlBRkJNR3NoQVNBQUlBVkJDR29RTmtVZ0JFRUNTSElOQUNBRFFZQVFJQUFRSVNJR0VFNUZEUU1nQkVFQmF5RUVJQU1nQmhDSEFTQUJRUXBzYWlFQkRBRUxDMEVDSVFZZ0FDQUZRUWhxRUNoRkRRRUxJQUlnQWlnQ0FDQUdjallDQUFzZ0JVRVFhaVFBSUFFTHZBRUJBMzhqQUVFUWF5SUZKQUFnQlNBQk5nSUlRUUFoQVVFR0lRWUNRQUpBSUFBZ0JVRUlhaEFtRFFCQkJDRUdJQU5CZ0JBZ0FCQWZJZ2NRUkVVTkFDQURJQWNRaUFFaEFRTkFBa0FnQUJBaUdpQUJRVEJySVFFZ0FDQUZRUWhxRURGRklBUkJBa2h5RFFBZ0EwR0FFQ0FBRUI4aUJoQkVSUTBESUFSQkFXc2hCQ0FESUFZUWlBRWdBVUVLYkdvaEFRd0JDd3RCQWlFR0lBQWdCVUVJYWhBbVJRMEJDeUFDSUFJb0FnQWdCbkkyQWdBTElBVkJFR29rQUNBQkM1b0JBUU4vSXdCQkVHc2lCQ1FBSUFRZ0FUWUNEQ0FFSUFNMkFnZ2dCQ0FFUVF4cUVGSWhCaUFFS0FJSUlRTWpBRUVRYXlJQkpBQWdBU0FETmdJTUlBRWdBellDQ0VGL0lRVUNRRUVBUVFBZ0FpQURFTFVCSWdOQkFFZ05BQ0FBSUFOQkFXb2lBeEFaSWdBMkFnQWdBRVVOQUNBQUlBTWdBaUFCS0FJTUVMVUJJUVVMSUFGQkVHb2tBQ0FGSVFBZ0JoQlJJQVJCRUdva0FDQUFDdzBBSUFBb0FnQWdBU2dDQUVjTExnQUNRQ0FBS0FJRVFjb0FjU0lBQkVBZ0FFSEFBRVlFUUVFSUR3c2dBRUVJUncwQlFSQVBDMEVBRHd0QkNndjVBUUlEZmdKL0l3QkJFR3NpQlNRQUFuNGdBYjBpQTBMLy8vLy8vLy8vLy84QWd5SUNRb0NBZ0lDQWdJQUlmVUwvLy8vLy8vLy83LzhBV0FSQUlBSkNQSVloQkNBQ1FnU0lRb0NBZ0lDQWdJQ0FQSHdNQVFzZ0FrS0FnSUNBZ0lDQStQOEFXZ1JBSUFOQ1BJWWhCQ0FEUWdTSVFvQ0FnSUNBZ01ELy93Q0VEQUVMSUFKUUJFQkNBQXdCQ3lBRklBSkNBQ0FEcDJkQklHb2dBa0lnaUtkbklBSkNnSUNBZ0JCVUd5SUdRVEZxRUM4Z0JTa0RBQ0VFSUFVcEF3aENnSUNBZ0lDQXdBQ0ZRWXo0QUNBR2E2MUNNSWFFQ3lFQ0lBQWdCRGNEQUNBQUlBSWdBMEtBZ0lDQWdJQ0FnSUIvZzRRM0F3Z2dCVUVRYWlRQUN3Y0FJQUFnQVVZTE13RUJmeUFBUVFFZ0FCc2hBQUpBQTBBZ0FCQVpJZ0VOQVVHWWx3RW9BZ0FpQVFSQUlBRVJEd0FNQVFzTEVBQUFDeUFCQzhRREFRTi9Jd0JCSUdzaUNDUUFJQWdnQWpZQ0VDQUlJQUUyQWhnZ0NFRUlhaUlCSUFNUUR5QUJFRHNoQ1NBQkVBNGdCRUVBTmdJQVFRQWhBZ0pBQTBBZ0JpQUhSaUFDY2cwQkFrQWdDRUVZYWlBSVFSQnFFQ2dOQUFKQUlBa2dCaWdDQUJDSEFVRWxSZ1JBSUFaQkJHb2lBaUFIUmcwQ1FRQWhDZ0ovSUFrZ0FpZ0NBQkNIQVNJQlFjVUFSaUFCUWY4QmNVRXdSbkpGQkVBZ0JpRUNJQUVNQVFzZ0JrRUlhaUFIUmcwRElBRWhDaUFKSUFZb0FnZ1Fod0VMSVFFZ0NDQUFJQWdvQWhnZ0NDZ0NFQ0FESUFRZ0JTQUJJQW9nQUNnQ0FDZ0NKQkVNQURZQ0dDQUNRUWhxSVFZTUFRc2dDVUdBd0FBZ0JpZ0NBQkJPQkVBRFFBSkFJQWNnQmtFRWFpSUdSZ1JBSUFjaEJnd0JDeUFKUVlEQUFDQUdLQUlBRUU0TkFRc0xBMEFnQ0VFWWFpQUlRUkJxRURaRkRRSWdDVUdBd0FBZ0NFRVlhaEFoRUU1RkRRSWdDRUVZYWhBbEdnd0FDd0FMSUFrZ0NFRVlhaEFoRUNrZ0NTQUdLQUlBRUNsR0JFQWdCa0VFYWlFR0lBaEJHR29RSlJvTUFRc2dCRUVFTmdJQUN5QUVLQUlBSVFJTUFRc0xJQVJCQkRZQ0FBc2dDRUVZYWlBSVFSQnFFQ2dFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQWdvQWhnaEFDQUlRU0JxSkFBZ0FBdkdBd0VEZnlNQVFTQnJJZ2drQUNBSUlBSTJBaEFnQ0NBQk5nSVlJQWhCQ0dvaUFTQURFQThnQVJBeUlRa2dBUkFPSUFSQkFEWUNBRUVBSVFJQ1FBTkFJQVlnQjBZZ0FuSU5BUUpBSUFoQkdHb2dDRUVRYWhBbURRQUNRQ0FKSUFZc0FBQVFpQUZCSlVZRVFDQUdRUUZxSWdJZ0IwWU5Ba0VBSVFvQ2Z5QUpJQUlzQUFBUWlBRWlBVUhGQUVZZ0FVSC9BWEZCTUVaeVJRUkFJQVloQWlBQkRBRUxJQVpCQW1vZ0IwWU5BeUFCSVFvZ0NTQUdMQUFDRUlnQkN5RUJJQWdnQUNBSUtBSVlJQWdvQWhBZ0F5QUVJQVVnQVNBS0lBQW9BZ0FvQWlRUkRBQTJBaGdnQWtFQ2FpRUdEQUVMSUFsQmdNQUFJQVlzQUFBUVJBUkFBMEFDUUNBSElBWkJBV29pQmtZRVFDQUhJUVlNQVFzZ0NVR0F3QUFnQml3QUFCQkVEUUVMQ3dOQUlBaEJHR29nQ0VFUWFoQXhSUTBDSUFsQmdNQUFJQWhCR0dvUUh4QkVSUTBDSUFoQkdHb1FJaG9NQUFzQUN5QUpJQWhCR0dvUUh4Q3pBU0FKSUFZc0FBQVFzd0ZHQkVBZ0JrRUJhaUVHSUFoQkdHb1FJaG9NQVFzZ0JFRUVOZ0lBQ3lBRUtBSUFJUUlNQVFzTElBUkJCRFlDQUFzZ0NFRVlhaUFJUVJCcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBZ29BaGdoQUNBSVFTQnFKQUFnQUF1cUFRRUVmeU1BUVJCcklnZ2tBQUpBSUFCRkRRQWdCQ2dDRENFR0lBSWdBV3NpQjBFQVNnUkFJQUFnQVNBSFFRSjFJZ2NRZnlBSFJ3MEJDeUFHSUFNZ0FXdEJBblVpQVd0QkFDQUJJQVpJR3lJQlFRQktCRUFnQUNBSUlBRWdCUkM3QWlJRkVBMGdBUkIvSVFZZ0JSQUtHaUFCSUFaSERRRUxJQU1nQW1zaUFVRUFTZ1JBSUFBZ0FpQUJRUUoxSWdFUWZ5QUJSdzBCQ3lBRUVPNEJJQUFoQ1FzZ0NFRVFhaVFBSUFrTEZnQWdBQ0FCSUFJZ0F5QUFLQUlBS0FJd0VRc0FHZ3RDQVFGL0lBQW9BZ0FoQWlBQkVCb2hBQ0FDUVFocUlnRVFVQ0FBU3dSL0lBRWdBQkIzS0FJQVFRQkhCVUVBQzBVRVFCQVhBQXNnQWtFSWFpQUFFSGNvQWdBTENBQWdBRUgvQVhFTEJBQWdBQXNQQUNBQUlBQW9BZ0FvQWlRUkFBQUxFUUFnQUNBQklBRW9BZ0FvQWlBUkF3QUxFUUFnQUNBQklBRW9BZ0FvQWl3UkF3QUxEQUFnQUVHQ2hvQWdOZ0FBQ3djQUlBQVFFUm9MTGdFQmZ5TUFRUkJySWdFa0FDQUJRUWhxSUFBUURTQUFFQWxCQW5ScUVIb29BZ0FoQUNBQlFSQnFKQUFnQUF1cUFRRUJmd0pBSUFOQmdCQnhSUTBBSUFKRklBTkJ5Z0J4SWdSQkNFWWdCRUhBQUVaeWNnMEFJQUJCS3pvQUFDQUFRUUZxSVFBTElBTkJnQVJ4QkVBZ0FFRWpPZ0FBSUFCQkFXb2hBQXNEUUNBQkxRQUFJZ1FFUUNBQUlBUTZBQUFnQUVFQmFpRUFJQUZCQVdvaEFRd0JDd3NnQUFKL1FlOEFJQU5CeWdCeElnRkJ3QUJHRFFBYVFkZ0FRZmdBSUFOQmdJQUJjUnNnQVVFSVJnMEFHa0hrQUVIMUFDQUNHd3M2QUFBTEt3RUJmeU1BUVJCcklnRWtBQ0FCUVFocUlBQVFEU0FBRUFscUVIb29BZ0FoQUNBQlFSQnFKQUFnQUFzV0FDQUFJQUVnQWlBRElBQW9BZ0FvQWlBUkN3QWFDeEFBSUFCQklFWWdBRUVKYTBFRlNYSUxOZ0FnQWdSL0lBSUVRQU5BSUFBZ0FTZ0NBRFlDQUNBQVFRUnFJUUFnQVVFRWFpRUJJQUpCQVdzaUFnMEFDd3RCQUFVZ0FBc2FDMUlCQW45QjhJQUJLQUlBSWdFZ0FFRURha0Y4Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQVFCRVVOQVF0QjhJQUJJQUEyQWdBZ0FROExRZFNCQVVFd05nSUFRWDhMRWdBZ0FCQkRLQUlBSUFBb0FnQnJRUUoxQ3djQUlBQkJFR29MTlFFQmZ5TUFRUkJySWdJa0FDQUNJQUFvQWdBMkFnd2dBQ0FCS0FJQU5nSUFJQUVnQWtFTWFpZ0NBRFlDQUNBQ1FSQnFKQUFMSkFFQ2Z5TUFRUkJySWdJa0FDQUFJQUVROFFFaEF5QUNRUkJxSkFBZ0FTQUFJQU1iQ3cwQUlBQW9BZ0FnQVVFQ2RHb0xGZ0FnQUJBMUJFQWdBQ0FCRURrUEN5QUFJQUVRT2dzc0FBSkFJQUFnQVVZTkFBTkFJQUFnQVVFQmF5SUJUdzBCSUFBZ0FSQ3dBaUFBUVFGcUlRQU1BQXNBQ3dzTEFDQUFJQUUyQWdBZ0FBdmJBUUlCZndKK1FRRWhCQUpBSUFCQ0FGSWdBVUwvLy8vLy8vLy8vLzhBZ3lJRlFvQ0FnSUNBZ01ELy93QldJQVZDZ0lDQWdJQ0F3UC8vQUZFYkRRQWdBa0lBVWlBRFF2Ly8vLy8vLy8vLy93Q0RJZ1pDZ0lDQWdJQ0F3UC8vQUZZZ0JrS0FnSUNBZ0lEQS8vOEFVUnNOQUNBQUlBS0VJQVVnQm9TRVVBUkFRUUFQQ3lBQklBT0RRZ0JaQkVCQmZ5RUVJQUFnQWxRZ0FTQURVeUFCSUFOUkd3MEJJQUFnQW9VZ0FTQURoWVJDQUZJUEMwRi9JUVFnQUNBQ1ZpQUJJQU5WSUFFZ0ExRWJEUUFnQUNBQ2hTQUJJQU9GaEVJQVVpRUVDeUFFQzFBQkFYNENRQ0FEUWNBQWNRUkFJQUlnQTBGQWFxMklJUUZDQUNFQ0RBRUxJQU5GRFFBZ0FrSEFBQ0FEYTYyR0lBRWdBNjBpQklpRUlRRWdBaUFFaUNFQ0N5QUFJQUUzQXdBZ0FDQUNOd01JQ3c0QUlBQW9BZ2hCLy8vLy93ZHhDd29BSUFBUTRRRWFJQUFMRXdBZ0FDQUJJQUlnQUNnQ0FDZ0NNQkVFQUFzbUFDQUFJQUFvQWhoRklBQW9BaEFnQVhKeUlnRTJBaEFnQUNnQ0ZDQUJjUVJBRUJjQUN3c0pBQ0FBSUFFUS9RRUxKQUFnQUVFQ1R3Ui9JQUJCQkdwQmZIRWlBQ0FBUVFGcklnQWdBRUVDUmhzRlFRRUxDd2NBSUFCQkRHb0xsUUVCQlg4akFFRVFheUlGSkFBZ0FSRFRBaUVDSXdCQkVHc2lBeVFBQWtBZ0FrSHYvLy8vQTAwRVFBSkFJQUpCQVUwRVFDQUFJQUlRT2lBQUlRUU1BUXNnQUNBQUlBSVFnZ0ZCQVdvaUJoQ0JBU0lFRUUwZ0FDQUdFRXdnQUNBQ0VEa0xJQVFnQVNBQ0VIRWdBMEVBTmdJTUlBUWdBa0VDZEdvZ0EwRU1haEF6SUFOQkVHb2tBQXdCQ3hBWEFBc2dCVUVRYWlRQUN3OEFJQUFRUXlnQ0FDQUFLQUlBYXd2RUFRRUdmeU1BUVJCcklnUWtBQ0FBRUpZQktBSUFJUVVDZnlBQ0tBSUFJQUFvQWdCcklnTkIvLy8vL3dkSkJFQWdBMEVCZEF3QkMwRi9DeUlEUVFRZ0F4c2hBeUFCS0FJQUlRWWdBQ2dDQUNFSElBVkJOa1lFZjBFQUJTQUFLQUlBQ3lBREVKNEJJZ2dFUUNBRlFUWkhCRUFnQUJDbUFSb0xJQVJCTlRZQ0JDQUFJQVJCQ0dvZ0NDQUVRUVJxRUI0aUJSQ2xBaUFGRUIwZ0FTQUFLQUlBSUFZZ0IydHFOZ0lBSUFJZ0FDZ0NBQ0FEUVh4eGFqWUNBQ0FFUVJCcUpBQVBDeEFYQUFzVEFDQUFJQUZCQUNBQUtBSUFLQUkwRVFRQUN4TUFJQUFnQVVFQUlBQW9BZ0FvQWlRUkJBQUxEUUFnQUNnQ0JDQUFLQUlBYXd0REFRRi9JQUJCckNZb0FnQWlBVFlDQUNBQUlBRkJER3NvQWdCcVFjd21LQUlBTmdJQUlBQkIwQ1lvQWdBMkFnZ2dBRUVNYWhEUUFSb2dBRUZBYXhCK0dpQUFDL0lDQVFKL0l3QkJFR3NpQ2lRQUlBb2dBRFlDREFKQUFrQUNRQ0FES0FJQUlBSkhEUUJCS3lFTElBQWdDU2dDWUVjRVFFRXRJUXNnQ1NnQ1pDQUFSdzBCQ3lBRElBSkJBV28yQWdBZ0FpQUxPZ0FBREFFTElBWVFDVVVnQUNBRlIzSkZCRUJCQUNFQUlBZ29BZ0FpQVNBSGEwR2ZBVW9OQWlBRUtBSUFJUUFnQ0NBQlFRUnFOZ0lBSUFFZ0FEWUNBQXdCQzBGL0lRQWdDU0FKUWVnQWFpQUtRUXhxRU5JQklBbHJJZ1pCM0FCS0RRRWdCa0VDZFNFRkFrQUNRQUpBSUFGQkNHc09Bd0FDQUFFTElBRWdCVW9OQVF3REN5QUJRUkJISUFaQjJBQkljZzBBSUFNb0FnQWlBU0FDUmlBQklBSnJRUUpLY2cwQ0lBRkJBV3N0QUFCQk1FY05Ba0VBSVFBZ0JFRUFOZ0lBSUFNZ0FVRUJhallDQUNBQklBVkI0TkFBYWkwQUFEb0FBQXdDQ3lBRElBTW9BZ0FpQUVFQmFqWUNBQ0FBSUFWQjROQUFhaTBBQURvQUFDQUVJQVFvQWdCQkFXbzJBZ0JCQUNFQURBRUxRUUFoQUNBRVFRQTJBZ0FMSUFwQkVHb2tBQ0FBQ3dvQUlBQkJ0SWtCRUdRTDdnSUJBMzhqQUVFUWF5SUtKQUFnQ2lBQU9nQVBBa0FDUUFKQUlBTW9BZ0FnQWtjTkFFRXJJUXNnQUVIL0FYRWlEQ0FKTFFBWVJ3UkFRUzBoQ3lBSkxRQVpJQXhIRFFFTElBTWdBa0VCYWpZQ0FDQUNJQXM2QUFBTUFRc2dCaEFKUlNBQUlBVkhja1VFUUVFQUlRQWdDQ2dDQUNJQklBZHJRWjhCU2cwQ0lBUW9BZ0FoQUNBSUlBRkJCR28yQWdBZ0FTQUFOZ0lBREFFTFFYOGhBQ0FKSUFsQkdtb2dDa0VQYWhEVkFTQUpheUlGUVJkS0RRRUNRQUpBQWtBZ0FVRUlhdzREQUFJQUFRc2dBU0FGU2cwQkRBTUxJQUZCRUVjZ0JVRVdTSElOQUNBREtBSUFJZ0VnQWtZZ0FTQUNhMEVDU25JTkFpQUJRUUZyTFFBQVFUQkhEUUpCQUNFQUlBUkJBRFlDQUNBRElBRkJBV28yQWdBZ0FTQUZRZURRQUdvdEFBQTZBQUFNQWdzZ0F5QURLQUlBSWdCQkFXbzJBZ0FnQUNBRlFlRFFBR290QUFBNkFBQWdCQ0FFS0FJQVFRRnFOZ0lBUVFBaEFBd0JDMEVBSVFBZ0JFRUFOZ0lBQ3lBS1FSQnFKQUFnQUFzS0FDQUFRYXlKQVJCa0M0TUJBZ04vQVg0Q1FDQUFRb0NBZ0lBUVZBUkFJQUFoQlF3QkN3TkFJQUZCQVdzaUFTQUFJQUJDQ29BaUJVSUtmbjJuUVRCeU9nQUFJQUJDLy8vLy81OEJWaUVDSUFVaEFDQUNEUUFMQ3lBRnB5SUNCRUFEUUNBQlFRRnJJZ0VnQWlBQ1FRcHVJZ05CQ214clFUQnlPZ0FBSUFKQkNVc2hCQ0FESVFJZ0JBMEFDd3NnQVF0akFnRi9BWDRqQUVFUWF5SUNKQUFnQUFKK0lBRkZCRUJDQUF3QkN5QUNJQUd0UWdBZ0FXY2lBVUhSQUdvUUx5QUNLUU1JUW9DQWdJQ0FnTUFBaFVHZWdBRWdBV3V0UWpDR2ZDRURJQUlwQXdBTE53TUFJQUFnQXpjRENDQUNRUkJxSkFBTEpBQWdBRUVMVHdSL0lBQkJFR3BCY0hFaUFDQUFRUUZySWdBZ0FFRUxSaHNGUVFvTEMzOEJBMzhnQUNFQkFrQWdBRUVEY1FSQUEwQWdBUzBBQUVVTkFpQUJRUUZxSWdGQkEzRU5BQXNMQTBBZ0FTSUNRUVJxSVFFZ0FpZ0NBQ0lEUVg5eklBTkJnWUtFQ0d0eFFZQ0Jnb1I0Y1VVTkFBc2dBMEgvQVhGRkJFQWdBaUFBYXc4TEEwQWdBaTBBQVNFRElBSkJBV29pQVNFQ0lBTU5BQXNMSUFFZ0FHc0xLUUFnQUNBQlFRaDBRWUNBL0FkeElBRkJHSFJ5SUFGQkNIWkJnUDREY1NBQlFSaDJjbkkyQUFBTEtRQWdBQ2dBQUNJQVFSaDBJQUJCQ0hSQmdJRDhCM0Z5SUFCQkNIWkJnUDREY1NBQVFSaDJjbklMRHdBZ0FDQUFLQUlBUVFScU5nSUFDd2NBSUFCQkJHb0xEd0FnQUNBQUtBSUFRUUZxTmdJQUN6Y0JBbjhqQUVFUWF5SURKQUFnQTBFSWFpSUVJQUVRRHlBQ0lBUVFqQUVpQVJBNE5nSUFJQUFnQVJBM0lBUVFEaUFEUVJCcUpBQUxOUUVDZnlNQVFSQnJJZ0lrQUNBQ1FRaHFJZ01nQUJBUElBTVFPMEhnMEFCQit0QUFJQUVRWXlBREVBNGdBa0VRYWlRQUlBRUxOd0VDZnlNQVFSQnJJZ01rQUNBRFFRaHFJZ1FnQVJBUElBSWdCQkNPQVNJQkVEZzZBQUFnQUNBQkVEY2dCQkFPSUFOQkVHb2tBQXNYQUNBQUlBTTJBaEFnQUNBQ05nSU1JQUFnQVRZQ0NBc0tBQ0FBUVJoMFFSaDFDMElBSUFBZ0FDZ0NBQ0FCS0FJQWN6WUNBQ0FBSUFBb0FnUWdBU2dDQkhNMkFnUWdBQ0FBS0FJSUlBRW9BZ2h6TmdJSUlBQWdBQ2dDRENBQktBSU1jellDREF1Y0NBRUxmeUFBUlFSQUlBRVFHUThMSUFGQlFFOEVRRUhVZ1FGQk1EWUNBRUVBRHdzQ2YwRVFJQUZCQzJwQmVIRWdBVUVMU1JzaEJpQUFRUWhySWdVb0FnUWlDVUY0Y1NFRUFrQWdDVUVEY1VVRVFFRUFJQVpCZ0FKSkRRSWFJQVpCQkdvZ0JFMEVRQ0FGSVFJZ0JDQUdhMEc0aFFFb0FnQkJBWFJORFFJTFFRQU1BZ3NnQkNBRmFpRUhBa0FnQkNBR1R3UkFJQVFnQm1zaUEwRVFTUTBCSUFVZ0NVRUJjU0FHY2tFQ2NqWUNCQ0FGSUFacUlnSWdBMEVEY2pZQ0JDQUhJQWNvQWdSQkFYSTJBZ1FnQWlBREVPd0JEQUVMSUFkQjhJRUJLQUlBUmdSQVFlU0JBU2dDQUNBRWFpSUVJQVpORFFJZ0JTQUpRUUZ4SUFaeVFRSnlOZ0lFSUFVZ0Jtb2lBeUFFSUFacklnSkJBWEkyQWdSQjVJRUJJQUkyQWdCQjhJRUJJQU0yQWdBTUFRc2dCMEhzZ1FFb0FnQkdCRUJCNElFQktBSUFJQVJxSWdNZ0Jra05BZ0pBSUFNZ0Jtc2lBa0VRVHdSQUlBVWdDVUVCY1NBR2NrRUNjallDQkNBRklBWnFJZ1FnQWtFQmNqWUNCQ0FESUFWcUlnTWdBallDQUNBRElBTW9BZ1JCZm5FMkFnUU1BUXNnQlNBSlFRRnhJQU55UVFKeU5nSUVJQU1nQldvaUFpQUNLQUlFUVFGeU5nSUVRUUFoQWtFQUlRUUxRZXlCQVNBRU5nSUFRZUNCQVNBQ05nSUFEQUVMSUFjb0FnUWlBMEVDY1EwQklBTkJlSEVnQkdvaUNpQUdTUTBCSUFvZ0Jtc2hEQUpBSUFOQi93Rk5CRUFnQnlnQ0NDSUVJQU5CQTNZaUFrRURkRUdBZ2dGcVJob2dCQ0FIS0FJTUlnTkdCRUJCMklFQlFkaUJBU2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUVJQU0yQWd3Z0F5QUVOZ0lJREFFTElBY29BaGdoQ3dKQUlBY2dCeWdDRENJSVJ3UkFJQWNvQWdnaUFrSG9nUUVvQWdCSkdpQUNJQWcyQWd3Z0NDQUNOZ0lJREFFTEFrQWdCMEVVYWlJRUtBSUFJZ0lOQUNBSFFSQnFJZ1FvQWdBaUFnMEFRUUFoQ0F3QkN3TkFJQVFoQXlBQ0lnaEJGR29pQkNnQ0FDSUNEUUFnQ0VFUWFpRUVJQWdvQWhBaUFnMEFDeUFEUVFBMkFnQUxJQXRGRFFBQ1FDQUhJQWNvQWh3aUEwRUNkRUdJaEFGcUlnSW9BZ0JHQkVBZ0FpQUlOZ0lBSUFnTkFVSGNnUUZCM0lFQktBSUFRWDRnQTNkeE5nSUFEQUlMSUF0QkVFRVVJQXNvQWhBZ0IwWWJhaUFJTmdJQUlBaEZEUUVMSUFnZ0N6WUNHQ0FIS0FJUUlnSUVRQ0FJSUFJMkFoQWdBaUFJTmdJWUN5QUhLQUlVSWdKRkRRQWdDQ0FDTmdJVUlBSWdDRFlDR0FzZ0RFRVBUUVJBSUFVZ0NVRUJjU0FLY2tFQ2NqWUNCQ0FGSUFwcUlnSWdBaWdDQkVFQmNqWUNCQXdCQ3lBRklBbEJBWEVnQm5KQkFuSTJBZ1FnQlNBR2FpSURJQXhCQTNJMkFnUWdCU0FLYWlJQ0lBSW9BZ1JCQVhJMkFnUWdBeUFNRU93QkN5QUZJUUlMSUFJTElnSUVRQ0FDUVFocUR3c2dBUkFaSWdWRkJFQkJBQThMSUFVZ0FFRjhRWGdnQUVFRWF5Z0NBQ0lDUVFOeEd5QUNRWGh4YWlJQ0lBRWdBU0FDU3hzUVFob2dBQkFRSUFVTGZRRURmMEVZSVFJQ1FBSkFJQUFnQVhKQkEzRU5BQU5BSUFBb0FnQWdBU2dDQUVjTkFTQUJRUVJxSVFFZ0FFRUVhaUVBSUFKQkJHc2lBa0VEU3cwQUN5QUNSUTBCQ3dOQUlBQXRBQUFpQXlBQkxRQUFJZ1JHQkVBZ0FVRUJhaUVCSUFCQkFXb2hBQ0FDUVFGcklnSU5BUXdDQ3dzZ0F5QUVhdzhMUVFBTFNRRUNmeUFBS0FJRUlnWkJDSFVoQlNBR1FRRnhCRUFnQWlnQ0FDQUZFTVVCSVFVTElBQW9BZ0FpQUNBQklBSWdCV29nQTBFQ0lBWkJBbkViSUFRZ0FDZ0NBQ2dDR0JFS0FBdTJBUUVEZnlNQVFSQnJJZ01rQUNBRElBRTZBQThDUUFKQUFrQUNRQ0FBRURVRVFDQUFFSDBoQVNBQUtBSUVJZ1FnQVVFQmF5SUNSZzBCREFNTFFRb2hCRUVLSVFJZ0FDMEFDeUlCUVFwSERRRUxJQUFnQWtFQklBSWdBaERJQVNBRUlRRWdBQkExRFFFTElBQWhBaUFBSUFGQkFXb1FPZ3dCQ3lBQUtBSUFJUUlnQUNBRVFRRnFFRGtnQkNFQkN5QUJJQUpxSWdBZ0EwRVBhaEEwSUFOQkFEb0FEaUFBUVFGcUlBTkJEbW9RTkNBRFFSQnFKQUFMSkFFQ2Z5TUFRUkJySWdJa0FDQUJJQUFROFFFaEF5QUNRUkJxSkFBZ0FTQUFJQU1iQ3gwQUlBQkJCR29Ra2dKQmYwWUVRQ0FBSUFBb0FnQW9BZ2dSQVFBTEN5UUFJQUFRK1FFaEFDQUJFUGtCSUFCcklnRUVRQ0FDSUFBZ0FSRHFBUXNnQVNBQ2Fnc1JBQ0FBSUFFZ0FTZ0NBQ2dDS0JFREFBc1VBUUYvSUFBb0FnQWhBU0FBUVFBMkFnQWdBUXVyTEFFUmZ5QUFLQUx3QVNFU0lBQW9BZ1FnQVNnQUJDSUVRUmgwSUFSQkNIUkJnSUQ4QjNGeUlBUkJDSFpCZ1A0RGNTQUVRUmgyY25KeklnUkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hCaUFBS0FJSUlBRW9BQWdpQlVFWWRDQUZRUWgwUVlDQS9BZHhjaUFGUVFoMlFZRCtBM0VnQlVFWWRuSnljeUlGUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFnZ0FDZ0NEQ0FCS0FBTUlnTkJHSFFnQTBFSWRFR0FnUHdIY1hJZ0EwRUlka0dBL2dOeElBTkJHSFp5Y25NaUEwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUhJQVZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQ1NBRFFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRb2dBQ2dDQUNBQktBQUFJZ0ZCR0hRZ0FVRUlkRUdBZ1B3SGNYSWdBVUVJZGtHQS9nTnhJQUZCR0haeWNuTWlBVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQUJRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQkVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFT0lBRkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEeUFFUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVJBZ0JVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRVJJQUFvQWhRZ0N5QUtJQWtnQkVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRa2dBQ2dDR0NBT0lBMGdEQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdWQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaENpQUFLQUljSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFTElBVkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEQ0FEUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVEwZ0FDZ0NFQ0FISUFnZ0JpQUJRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ0ZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQmlBRFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRZ2dBVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VISUFSQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaERpQUJRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUThnQkVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFUUlBVkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hFU0FBS0FJa0lBWWdEU0FNSUFSQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUdJQUFvQWlnZ0RpQUhJQWdnQlVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRZ2dBQ2dDTENBUklCQWdEeUFEUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdOQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEJ5QUZRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUXdnQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTklBQW9BaUFnQ3lBS0lBa2dBVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlCUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFrZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUtJQUZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ3lBRVFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRNGdBVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VQSUFSQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEVDQUZRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUkVnQUNnQ05DQUpJQTBnRENBRVFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnUkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hDU0FBS0FJNElBNGdDeUFLSUFWQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUtJQUFvQWp3Z0VTQVFJQThnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRc2dCVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VNSUFOQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaERTQUFLQUl3SUFjZ0NDQUdJQUZCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQVVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFR0lBTkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hDQ0FCUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFjZ0JFSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRU9JQUZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRHlBRVFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlSQWdCVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VSSUFBb0FrUWdCaUFOSUF3Z0JFRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUVRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUVlnQUNnQ1NDQU9JQWNnQ0NBRlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnVkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hDQ0FBS0FKTUlCRWdFQ0FQSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUEwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUhJQVZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRENBRFFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRMGdBQ2dDUUNBTElBb2dDU0FCUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdGQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaENTQURRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUW9nQVVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTElBUkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hEaUFCUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVE4Z0JFRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRVFJQVZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRVNBQUtBSlVJQWtnRFNBTUlBUkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCRUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VKSUFBb0FsZ2dEaUFMSUFvZ0JVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUZRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUW9nQUNnQ1hDQVJJQkFnRHlBRFFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hDeUFGUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVF3Z0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRU5JQUFvQWxBZ0J5QUlJQVlnQVVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRWWdBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VJSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEJ5QUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0NaQ0FHSUEwZ0RDQUVRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1JCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQmlBQUtBSm9JQTRnQnlBSUlBVkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VJSUFBb0Ftd2dFU0FRSUE4Z0EwRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUWNnQlVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFTUlBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hEU0FBS0FKZ0lBc2dDaUFKSUFGQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUFVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUpJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQ2lBQlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRc2dCRUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VPSUFGQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaER5QUVRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUkFnQlVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFUklBQW9BblFnQ1NBTklBd2dCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFrZ0FDZ0NlQ0FPSUFzZ0NpQUZRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1ZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQUtBSjhJQkVnRUNBUElBTkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFWQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQURRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQUNnQ2NDQUhJQWdnQmlBQlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnRkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hCaUFEUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFjZ0FVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRU9JQVJCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRHlBQlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlSQWdCRUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VSSUFWQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEV5QUFLQUtFQVNBR0lBMGdEQ0FFUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdaQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnZ0FDZ0NnQUVnQ3lBS0lBa2dBVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlJUVJaMlFmd0hjVUdBQ0dvb0FnQnpJQUFvQW9nQklBOGdEaUFISUFWQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUIwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNITWdBQ2dDakFFZ0V5QVJJQkFnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUtRQVhNaEFTQUhRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJQVpCRm5aQi9BZHhRWUFJYWlnQ0FITWdBMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQ0VIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0NsQUZ6SVFRZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUhRUloyUWZ3SGNVR0FDR29vQWdCeklBaEJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQVpCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0FwZ0JjeUVGQW44Z0NFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQURRUloyUWZ3SGNVR0FDR29vQWdCeklBWkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQWRCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0Fwd0JjeUlESUJKQkMwZ05BQm9nQkVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFSUlBVkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hCeUFEUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFrZ0JVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUdJQU5CQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRc2dBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VNSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaERTQUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0NwQUVnQ3lBS0lBWWdCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlHUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFBb0FxQUJJQWtnQnlBSUlBRkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlDRUVXZGtIOEIzRkJnQWhxS0FJQWN5QUFLQUtvQVNBT0lBMGdEQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdkQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFoeklBQW9BcXdCSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0NzQUZ6SVFFZ0IwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUdRUloyUWZ3SGNVR0FDR29vQWdCeklBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQWhCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0FyUUJjeUVFSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnZ0IwRVdka0g4QjNGQmdBaHFLQUlBY3lBSVFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSWN5QUdRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUljeUFBS0FLNEFYTWhCU0FJUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQmtFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0IwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNITWdBQ2dDdkFGeklnTWdFa0VOU0EwQUdpQUVRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUWdnQlVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFSElBTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hDU0FGUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFZZ0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUtJQUZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQ3lBRFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRd2dBVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VOSUFSQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaERpQUJRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUThnQkVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFUUlBVkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hFU0FBS0FMRUFTQUxJQW9nQmlBRVFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnWkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2dBQ2dDd0FFZ0NTQUhJQWdnQVVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJSVFSWjJRZndIY1VHQUNHb29BZ0J6SUFBb0FzZ0JJQTRnRFNBTUlBVkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQUNnQ3pBRWdFU0FRSUE4Z0EwRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUljeUFBS0FMUUFYTWhBU0FIUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFaQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0NFSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNITWdBQ2dDMUFGeklRUWdBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0FIUVJaMlFmd0hjVUdBQ0dvb0FnQnpJQWhCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWh6SUFaQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFoeklBQW9BdGdCY3lFRklBaEJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2dBMEVXZGtIOEIzRkJnQWhxS0FJQWN5QUdRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUljeUFIUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJY3lBQUtBTGNBWE1MSVFNZ0FpQUFJQkpCQkhScUlnQW9BZ0FnQTBIL0FYRkJBblJCZ0FocUxRQUJJQUZCRm5aQi9BZHhRWUFJYWlnQ0FFRUlkRUdBZ0lCNGNTQUVRUTUyUWZ3SGNVR0FDR290QUFKQkVIUnlJQVZCQm5aQi9BZHhRWUFJYWkwQUFVRUlkSEp5Y3lJU1FSaDBJQkpCQ0hSQmdJRDhCM0Z5SUJKQkNIWkJnUDREY1NBU1FSaDJjbkkyQUFBZ0FpQUFLQUlFSUFGQi93RnhRUUowUVlBSWFpMEFBU0FFUVJaMlFmd0hjVUdBQ0dvb0FnQkJDSFJCZ0lDQWVIRWdCVUVPZGtIOEIzRkJnQWhxTFFBQ1FSQjBjaUFEUVFaMlFmd0hjVUdBQ0dvdEFBRkJDSFJ5Y25NaUVrRVlkQ0FTUVFoMFFZQ0EvQWR4Y2lBU1FRaDJRWUQrQTNFZ0VrRVlkbkp5TmdBRUlBSWdBQ2dDQ0NBRVFmOEJjVUVDZEVHQUNHb3RBQUVnQlVFV2RrSDhCM0ZCZ0FocUtBSUFRUWgwUVlDQWdIaHhJQU5CRG5aQi9BZHhRWUFJYWkwQUFrRVFkSElnQVVFR2RrSDhCM0ZCZ0FocUxRQUJRUWgwY25KekloSkJHSFFnRWtFSWRFR0FnUHdIY1hJZ0VrRUlka0dBL2dOeElCSkJHSFp5Y2pZQUNDQUNJQUFvQWd3Z0JVSC9BWEZCQW5SQmdBaHFMUUFCSUFOQkZuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjU0FCUVE1MlFmd0hjVUdBQ0dvdEFBSkJFSFJ5SUFSQkJuWkIvQWR4UVlBSWFpMEFBVUVJZEhKeWN5SUFRUmgwSUFCQkNIUkJnSUQ4QjNGeUlBQkJDSFpCZ1A0RGNTQUFRUmgyY25JMkFBd0xEZ0FnQUNBQktBSUFOZ0lBSUFBTEJ3QWdBQkJIR2dzSUFFSC8vLy8vQndzRkFFSC9BQXNEQUFFTEt3QUNRQ0FBSUFGR0RRQURRQ0FBSUFGQkJHc2lBVThOQVNBQUlBRVFkU0FBUVFScUlRQU1BQXNBQ3d2VUF3RUlmeU1BUVJCcklnb2tBQ0FHRURzaEN5QUtJQVlRakFFaUJoQTNBa0FnQ2hCSkJFQWdDeUFBSUFJZ0F4QmpJQVVnQXlBQ0lBQnJRUUowYWlJR05nSUFEQUVMSUFVZ0F6WUNBQUpBQWtBZ0FDSUlMUUFBSWdkQksyc09Bd0FCQUFFTElBc2dCMEVZZEVFWWRSQTlJUWdnQlNBRktBSUFJZ2RCQkdvMkFnQWdCeUFJTmdJQUlBQkJBV29oQ0FzQ1FDQUNJQWhyUVFKSURRQWdDQzBBQUVFd1J3MEFJQWd0QUFGQklISkIrQUJIRFFBZ0MwRXdFRDBoQnlBRklBVW9BZ0FpQ1VFRWFqWUNBQ0FKSUFjMkFnQWdDeUFJTEFBQkVEMGhCeUFGSUFVb0FnQWlDVUVFYWpZQ0FDQUpJQWMyQWdBZ0NFRUNhaUVJQ3lBSUlBSVFlVUVBSVFrZ0JoQTRJUXhCQUNFSElBZ2hCZ04vSUFJZ0JrMEVmeUFESUFnZ0FHdEJBblJxSUFVb0FnQVFyUUVnQlNnQ0FBVUNRQ0FLSUFjUUN5MEFBRVVOQUNBSklBb2dCeEFMTEFBQVJ3MEFJQVVnQlNnQ0FDSUpRUVJxTmdJQUlBa2dERFlDQUNBSElBY2dDaEFKUVFGclNXb2hCMEVBSVFrTElBc2dCaXdBQUJBOUlRMGdCU0FGS0FJQUlnNUJCR28yQWdBZ0RpQU5OZ0lBSUFaQkFXb2hCaUFKUVFGcUlRa01BUXNMSVFZTElBUWdCaUFESUFFZ0FHdEJBblJxSUFFZ0FrWWJOZ0lBSUFvUUNob2dDa0VRYWlRQUM5QUJBUUovSUFKQmdCQnhCRUFnQUVFck9nQUFJQUJCQVdvaEFBc2dBa0dBQ0hFRVFDQUFRU002QUFBZ0FFRUJhaUVBQ3lBQ1FZUUNjU0lEUVlRQ1J3UkFJQUJCcnRRQU93QUFJQUJCQW1vaEFBc2dBa0dBZ0FGeElRSURRQ0FCTFFBQUlnUUVRQ0FBSUFRNkFBQWdBRUVCYWlFQUlBRkJBV29oQVF3QkN3c2dBQUovQWtBZ0EwR0FBa2NFUUNBRFFRUkhEUUZCeGdCQjVnQWdBaHNNQWd0QnhRQkI1UUFnQWhzTUFRdEJ3UUJCNFFBZ0Foc2dBMEdFQWtZTkFCcEJ4d0JCNXdBZ0Foc0xPZ0FBSUFOQmhBSkhDOG9EQVFoL0l3QkJFR3NpQ2lRQUlBWVFNaUVMSUFvZ0JoQ09BU0lHRURjQ1FDQUtFRWtFUUNBTElBQWdBaUFERUc4Z0JTQURJQUlnQUd0cUlnWTJBZ0FNQVFzZ0JTQUROZ0lBQWtBQ1FDQUFJZ2d0QUFBaUIwRXJhdzREQUFFQUFRc2dDeUFIUVJoMFFSaDFFQ2toQ0NBRklBVW9BZ0FpQjBFQmFqWUNBQ0FISUFnNkFBQWdBRUVCYWlFSUN3SkFJQUlnQ0d0QkFrZ05BQ0FJTFFBQVFUQkhEUUFnQ0MwQUFVRWdja0g0QUVjTkFDQUxRVEFRS1NFSElBVWdCU2dDQUNJSlFRRnFOZ0lBSUFrZ0J6b0FBQ0FMSUFnc0FBRVFLU0VISUFVZ0JTZ0NBQ0lKUVFGcU5nSUFJQWtnQnpvQUFDQUlRUUpxSVFnTElBZ2dBaEI1UVFBaENTQUdFRGdoREVFQUlRY2dDQ0VHQTM4Z0FpQUdUUVIvSUFNZ0NDQUFhMm9nQlNnQ0FCQjVJQVVvQWdBRkFrQWdDaUFIRUFzdEFBQkZEUUFnQ1NBS0lBY1FDeXdBQUVjTkFDQUZJQVVvQWdBaUNVRUJhallDQUNBSklBdzZBQUFnQnlBSElBb1FDVUVCYTBscUlRZEJBQ0VKQ3lBTElBWXNBQUFRS1NFTklBVWdCU2dDQUNJT1FRRnFOZ0lBSUE0Z0RUb0FBQ0FHUVFGcUlRWWdDVUVCYWlFSkRBRUxDeUVHQ3lBRUlBWWdBeUFCSUFCcmFpQUJJQUpHR3pZQ0FDQUtFQW9hSUFwQkVHb2tBQXNNQUNBQUVBMGdBVUVDZEdvTHFnUUJDMzhqQUVHQUFXc2lDaVFBSUFvZ0FUWUNlQ0FDSUFNUXpRSWhDQ0FLUVRVMkFoQWdDa0VJYWtFQUlBcEJFR29pQ1JBZUlSQUNRQ0FJUWVVQVR3UkFJQWdRR1NJSlJRMEJJQkFnQ1JBbkN5QUpJUWNnQWlFQkEwQWdBU0FEUmdSQUEwQUNRQ0FBSUFwQitBQnFFRFpCQUNBSUcwVUVRQ0FBSUFwQitBQnFFQ2dFUUNBRklBVW9BZ0JCQW5JMkFnQUxEQUVMSUFBUUlTRU9JQVpGQkVBZ0JDQU9FQ2toRGdzZ0RFRUJhaUVOUVFBaER5QUpJUWNnQWlFQkEwQWdBU0FEUmdSQUlBMGhEQ0FQUlEwRElBQVFKUm9nQ1NFSElBSWhBU0FJSUF0cVFRSkpEUU1EUUNBQklBTkdCRUFNQlFVQ1FDQUhMUUFBUVFKSERRQWdBUkFKSUExR0RRQWdCMEVBT2dBQUlBdEJBV3NoQ3dzZ0IwRUJhaUVISUFGQkRHb2hBUXdCQ3dBTEFBVUNRQ0FITFFBQVFRRkhEUUFnQVNBTUVMRUJLQUlBSVJFQ1FDQUdCSDhnRVFVZ0JDQVJFQ2tMSUE1R0JFQkJBU0VQSUFFUUNTQU5SdzBDSUFkQkFqb0FBQ0FMUVFGcUlRc01BUXNnQjBFQU9nQUFDeUFJUVFGcklRZ0xJQWRCQVdvaEJ5QUJRUXhxSVFFTUFRc0FDd0FMQ3dKQUFrQURRQ0FDSUFOR0RRRWdDUzBBQUVFQ1J3UkFJQWxCQVdvaENTQUNRUXhxSVFJTUFRc0xJQUloQXd3QkN5QUZJQVVvQWdCQkJISTJBZ0FMSUJBUUhTQUtRWUFCYWlRQUlBTVBCUUpBSUFFUVNVVUVRQ0FIUVFFNkFBQU1BUXNnQjBFQ09nQUFJQXRCQVdvaEN5QUlRUUZySVFnTElBZEJBV29oQnlBQlFReHFJUUVNQVFzQUN3QUxFQmNBQ3hFQUlBQWdBU0FBS0FJQUtBSU1FUUlBQzdNRUFRdC9Jd0JCZ0FGcklnb2tBQ0FLSUFFMkFuZ2dBaUFERU0wQ0lRZ2dDa0UxTmdJUUlBcEJDR3BCQUNBS1FSQnFJZ2tRSGlFUUFrQWdDRUhsQUU4RVFDQUlFQmtpQ1VVTkFTQVFJQWtRSndzZ0NTRUhJQUloQVFOQUlBRWdBMFlFUUFOQUFrQWdBQ0FLUWZnQWFoQXhRUUFnQ0J0RkJFQWdBQ0FLUWZnQWFoQW1CRUFnQlNBRktBSUFRUUp5TmdJQUN3d0JDeUFBRUI4aERpQUdSUVJBSUFRZ0RoQ3pBU0VPQ3lBTVFRRnFJUTFCQUNFUElBa2hCeUFDSVFFRFFDQUJJQU5HQkVBZ0RTRU1JQTlGRFFNZ0FCQWlHaUFKSVFjZ0FpRUJJQWdnQzJwQkFra05Bd05BSUFFZ0EwWUVRQXdGQlFKQUlBY3RBQUJCQWtjTkFDQUJFQWtnRFVZTkFDQUhRUUE2QUFBZ0MwRUJheUVMQ3lBSFFRRnFJUWNnQVVFTWFpRUJEQUVMQUFzQUJRSkFJQWN0QUFCQkFVY05BQ0FCSUF3UUN5d0FBQ0VSQWtBZ0RrSC9BWEVnQmdSL0lCRUZJQVFnRVJDekFRdEIvd0Z4UmdSQVFRRWhEeUFCRUFrZ0RVY05BaUFIUVFJNkFBQWdDMEVCYWlFTERBRUxJQWRCQURvQUFBc2dDRUVCYXlFSUN5QUhRUUZxSVFjZ0FVRU1haUVCREFFTEFBc0FDd3NDUUFKQUEwQWdBaUFEUmcwQklBa3RBQUJCQWtjRVFDQUpRUUZxSVFrZ0FrRU1haUVDREFFTEN5QUNJUU1NQVFzZ0JTQUZLQUlBUVFSeU5nSUFDeUFRRUIwZ0NrR0FBV29rQUNBRER3VUNRQ0FCRUVsRkJFQWdCMEVCT2dBQURBRUxJQWRCQWpvQUFDQUxRUUZxSVFzZ0NFRUJheUVJQ3lBSFFRRnFJUWNnQVVFTWFpRUJEQUVMQUFzQUN4QVhBQXZsQXdFRGZ5TUFRYUFCYXlJRUpBQkJmeUVGSUFRZ0FVRUJhMEVBSUFFYk5nS1VBU0FFSUFBZ0JFR2VBV29nQVJzaUJqWUNrQUVnQkVFQVFaQUJFRVlpQUVGL05nSk1JQUJCTkRZQ0pDQUFRWDgyQWxBZ0FDQUFRWjhCYWpZQ0xDQUFJQUJCa0FGcU5nSlVBa0FnQVVFQVNBUkFRZFNCQVVFOU5nSUFEQUVMSUFaQkFEb0FBRUVBSVFRakFFSFFBV3NpQVNRQUlBRWdBellDekFFZ0FVR2dBV29pQTBFQVFTZ1FSaG9nQVNBQktBTE1BVFlDeUFFQ1FFRUFJQUlnQVVISUFXb2dBVUhRQUdvZ0F4RGNBa0VBU0FSQVFYOGhBZ3dCQ3lBQUtBSk1RUUJPSVFVZ0FDZ0NBQ0VESUFBb0FraEJBRXdFUUNBQUlBTkJYM0UyQWdBTEFuOENRQUpBSUFBb0FqQkZCRUFnQUVIUUFEWUNNQ0FBUVFBMkFod2dBRUlBTndNUUlBQW9BaXdoQkNBQUlBRTJBaXdNQVFzZ0FDZ0NFQTBCQzBGL0lBQVE2QUVOQVJvTElBQWdBaUFCUWNnQmFpQUJRZEFBYWlBQlFhQUJhaERjQWdzaEFpQUVCRUFnQUVFQVFRQWdBQ2dDSkJFRUFCb2dBRUVBTmdJd0lBQWdCRFlDTENBQVFRQTJBaHdnQUVFQU5nSVFJQUFvQWhRaEJDQUFRUUEyQWhRZ0FrRi9JQVFiSVFJTElBQWdBQ2dDQUNJRUlBTkJJSEZ5TmdJQVFYOGdBaUFFUVNCeEd5RUNJQVZGRFFBTElBRkIwQUZxSkFBZ0FpRUZDeUFBUWFBQmFpUUFJQVVMU2dFQ2Z3SkFJQUF0QUFBaUFrVWdBaUFCTFFBQUlnTkhjZzBBQTBBZ0FTMEFBU0VESUFBdEFBRWlBa1VOQVNBQlFRRnFJUUVnQUVFQmFpRUFJQUlnQTBZTkFBc0xJQUlnQTJzTDVBSUJCbjhqQUVFUWF5SUhKQUFnQTBId2hnRWdBeHNpQlNnQ0FDRURBa0FDUUFKQUlBRkZCRUFnQXcwQkRBTUxRWDRoQkNBQ1JRMENJQUFnQjBFTWFpQUFHeUVHQWtBZ0F3UkFJQUloQUF3QkN5QUJMUUFBSWdCQkdIUkJHSFVpQTBFQVRnUkFJQVlnQURZQ0FDQURRUUJISVFRTUJBc2dBU3dBQUNFQVFkaUdBU2dDQUNnQ0FFVUVRQ0FHSUFCQi83OERjVFlDQUVFQklRUU1CQXNnQUVIL0FYRkJ3Z0ZySWdCQk1rc05BU0FBUVFKMFFjQXJhaWdDQUNFRElBSkJBV3NpQUVVTkFpQUJRUUZxSVFFTElBRXRBQUFpQ0VFRGRpSUpRUkJySUFOQkduVWdDV3B5UVFkTERRQURRQ0FBUVFGcklRQWdDRUdBQVdzZ0EwRUdkSElpQTBFQVRnUkFJQVZCQURZQ0FDQUdJQU0yQWdBZ0FpQUFheUVFREFRTElBQkZEUUlnQVVFQmFpSUJMUUFBSWdoQndBRnhRWUFCUmcwQUN3c2dCVUVBTmdJQVFkU0JBVUVaTmdJQVFYOGhCQXdCQ3lBRklBTTJBZ0FMSUFkQkVHb2tBQ0FFQ3d3QUlBQkJER29RZmhvZ0FBc0lBQ0FBS0FJUVJRc29BUUovSXdCQkVHc2lBaVFBSUFFb0FnQWdBQ2dDQUVnaEF5QUNRUkJxSkFBZ0FTQUFJQU1iQ3hBQUlBQWdBVGNEQ0NBQVFnQTNBd0FMRXdBZ0FFRzhIellDQUNBQVFRUnFFQTRnQUFzRUFFRUJDMlVCQTM4Z0FrVUVRRUVBRHdzQ1FDQUFMUUFBSWdORkRRQURRQUpBSUFFdEFBQWlCVVVOQUNBQ1FRRnJJZ0pGSUFNZ0JVZHlEUUFnQVVFQmFpRUJJQUF0QUFFaEF5QUFRUUZxSVFBZ0F3MEJEQUlMQ3lBRElRUUxJQVJCL3dGeElBRXRBQUJyQzY0QkFRUi9Jd0JCRUdzaUJTUUFJQUVoQkNBQ1FSQlBCRUFnQWtFRWRpRUhBMEFnQXlBRUVKMEJJQU1nQUNBRkVMSUNJQU1nQlNrRENEY0FDQ0FESUFVcEF3QTNBQUFnQkVFUWFpRUVJQVpCQVdvaUJpQUhSdzBBQ3dzZ0JDQUJJQUpxSWdGSkJFQWdCU0FFSUFFZ0JHc2lBaEJDSWdFZ0FtcEJBRUVRSUFKckVFWWFJQU1nQVJDZEFTQURJQUFnQVJDeUFpQURJQUVwQXdnM0FBZ2dBeUFCS1FNQU53QUFDeUFGUVJCcUpBQUxHZ0FnQUNBQklBRW9BZ0JCREdzb0FnQnFLQUlZTmdJQUlBQUxLd0VCZnlBQVFmei9BRFlDQUFKQUlBQW9BZ1JCREdzaUFVRUlhaENTQWtFQVRnMEFJQUVRRUFzZ0FBdExBUUovSUFBb0FnUWlCMEVJZFNFR0lBZEJBWEVFUUNBREtBSUFJQVlReFFFaEJnc2dBQ2dDQUNJQUlBRWdBaUFESUFacUlBUkJBaUFIUVFKeEd5QUZJQUFvQWdBb0FoUVJDUUFMSUFBQ1FDQUFLQUlFSUFGSERRQWdBQ2dDSEVFQlJnMEFJQUFnQWpZQ0hBc0xtZ0VBSUFCQkFUb0FOUUpBSUFBb0FnUWdBa2NOQUNBQVFRRTZBRFFDUUNBQUtBSVFJZ0pGQkVBZ0FFRUJOZ0lrSUFBZ0F6WUNHQ0FBSUFFMkFoQWdBQ2dDTUVFQlJ3MENJQU5CQVVZTkFRd0NDeUFCSUFKR0JFQWdBQ2dDR0NJQ1FRSkdCRUFnQUNBRE5nSVlJQU1oQWdzZ0FDZ0NNRUVCUncwQ0lBSkJBVVlOQVF3Q0N5QUFJQUFvQWlSQkFXbzJBaVFMSUFCQkFUb0FOZ3NMQ2dBZ0FDQUJhaWdDQUF0ZEFRRi9JQUFvQWhBaUEwVUVRQ0FBUVFFMkFpUWdBQ0FDTmdJWUlBQWdBVFlDRUE4TEFrQWdBU0FEUmdSQUlBQW9BaGhCQWtjTkFTQUFJQUkyQWhnUEN5QUFRUUU2QURZZ0FFRUNOZ0lZSUFBZ0FDZ0NKRUVCYWpZQ0pBc0x1UUVCQTM4akFFRVFheUlESkFBZ0F5QUJOZ0lNQWtBQ1FBSkFBa0FnQUJBMUJFQWdBQkI5SVFFZ0FDZ0NCQ0lFSUFGQkFXc2lBa1lOQVF3REMwRUJJUVJCQVNFQ0lBQXRBQXNpQVVFQlJ3MEJDeUFBSUFKQkFTQUNJQUlROHdFZ0JDRUJJQUFRTlEwQkN5QUFJUUlnQUNBQlFRRnFFRG9NQVFzZ0FDZ0NBQ0VDSUFBZ0JFRUJhaEE1SUFRaEFRc2dBaUFCUVFKMGFpSUFJQU5CREdvUU15QURRUUEyQWdnZ0FFRUVhaUFEUVFocUVETWdBMEVRYWlRQUM2OEJBUU4vSXdCQkVHc2lCU1FBSUFKQmJ5SUdJQUZyVFFSQUlBQVFEU0VIQW44Z0FTQUdRUUYyUVJCclNRUkFJQVVnQVVFQmREWUNDQ0FGSUFFZ0FtbzJBZ3dnQlVFTWFpQUZRUWhxRUhZb0FnQVFrUUVNQVFzZ0JrRUJhd3RCQVdvaUJoQmZJUUlnQkFSQUlBSWdCeUFFRUZVTElBTWdCR3NpQXdSQUlBSWdCR29nQkNBSGFpQURFRlVMSUFGQkNrY0VRQ0FIRUJBTElBQWdBaEJOSUFBZ0JoQk1JQVZCRUdva0FBOExFQmNBQ3dNQUFRc1hBQ0FBS0FJSUVCWkhCRUFnQUNnQ0NCRFVBZ3NnQUFzNEFRRi9Jd0JCRUdzaUF5UUFJQU1nQWpZQ0RDQURRUWhxSUFOQkRHb1FVaUVDSUFBZ0FSRGFBU0VBSUFJUVVTQURRUkJxSkFBZ0FBc0xBQ0FFSUFJMkFnQkJBd3NKQUNBQVFRQTJBZ0FMRHdBZ0FDQUFLQUlFUVFGcU5nSUVDeGtCQVg5QkFTRUJJQUFRTlFSL0lBQVFmVUVCYXdVZ0FRc0xHZ0FnQUVHMElUWUNBQ0FBUVNCcUVBb2FJQUFRdkFFYUlBQUxrd0VCQkg4akFFRVFheUlESkFBQ1FDQUJFRFZGQkVBZ0FDQUJLQUlJTmdJSUlBQWdBU2tDQURjQ0FBd0JDeUFCS0FJQUlRUUNRQUpBQWtBZ0FTZ0NCQ0lDUVFwTkJFQWdBQ0VCSUFBZ0FoQTZEQUVMSUFKQmIwc05BU0FBSUFJUWtRRkJBV29pQlJCZklnRVFUU0FBSUFVUVRDQUFJQUlRT1FzZ0FTQUVJQUpCQVdvUVZRd0JDeEFYQUFzTElBTkJFR29rQUFzeEFDQUNLQUlBSVFJRFFBSkFJQUFnQVVjRWZ5QUFLQUlBSUFKSERRRWdBQVVnQVFzUEN5QUFRUVJxSVFBTUFBc0FDL2tEQVFGL0l3QkJFR3NpRENRQUlBd2dBRFlDREFKQUFrQWdBQ0FGUmdSQUlBRXRBQUJGRFFGQkFDRUFJQUZCQURvQUFDQUVJQVFvQWdBaUFVRUJhallDQUNBQlFTNDZBQUFnQnhBSlJRMENJQWtvQWdBaUFTQUlhMEdmQVVvTkFpQUtLQUlBSVFJZ0NTQUJRUVJxTmdJQUlBRWdBallDQUF3Q0N3SkFJQUFnQmtjTkFDQUhFQWxGRFFBZ0FTMEFBRVVOQVVFQUlRQWdDU2dDQUNJQklBaHJRWjhCU2cwQ0lBb29BZ0FoQUNBSklBRkJCR28yQWdBZ0FTQUFOZ0lBUVFBaEFDQUtRUUEyQWdBTUFndEJmeUVBSUFzZ0MwR0FBV29nREVFTWFoRFNBU0FMYXlJRlFmd0FTZzBCSUFWQkFuVkI0TkFBYWkwQUFDRUdBa0FDUUNBRlFYdHhJZ0JCMkFCSEJFQWdBRUhnQUVjTkFTQURJQVFvQWdBaUFVY0VRRUYvSVFBZ0FVRUJheTBBQUVIZkFIRWdBaTBBQUVIL0FIRkhEUVVMSUFRZ0FVRUJhallDQUNBQklBWTZBQUJCQUNFQURBUUxJQUpCMEFBNkFBQU1BUXNnQWl3QUFDSUFJQVpCM3dCeFJ3MEFJQUlnQUVHQUFYSTZBQUFnQVMwQUFFVU5BQ0FCUVFBNkFBQWdCeEFKUlEwQUlBa29BZ0FpQUNBSWEwR2ZBVW9OQUNBS0tBSUFJUUVnQ1NBQVFRUnFOZ0lBSUFBZ0FUWUNBQXNnQkNBRUtBSUFJZ0JCQVdvMkFnQWdBQ0FHT2dBQVFRQWhBQ0FGUWRRQVNnMEJJQW9nQ2lnQ0FFRUJhallDQUF3QkMwRi9JUUFMSUF4QkVHb2tBQ0FBQzFBQkFuOGpBRUVRYXlJR0pBQWdCa0VJYWlJRklBRVFEeUFGRUR0QjROQUFRWURSQUNBQ0VHTWdBeUFGRUl3QklnRVFTRFlDQUNBRUlBRVFPRFlDQUNBQUlBRVFOeUFGRUE0Z0JrRVFhaVFBQ3pFQUlBSXRBQUFoQWdOQUFrQWdBQ0FCUndSL0lBQXRBQUFnQWtjTkFTQUFCU0FCQ3c4TElBQkJBV29oQUF3QUN3QUw3UU1CQVg4akFFRVFheUlNSkFBZ0RDQUFPZ0FQQWtBQ1FDQUFJQVZHQkVBZ0FTMEFBRVVOQVVFQUlRQWdBVUVBT2dBQUlBUWdCQ2dDQUNJQlFRRnFOZ0lBSUFGQkxqb0FBQ0FIRUFsRkRRSWdDU2dDQUNJQklBaHJRWjhCU2cwQ0lBb29BZ0FoQWlBSklBRkJCR28yQWdBZ0FTQUNOZ0lBREFJTEFrQWdBQ0FHUncwQUlBY1FDVVVOQUNBQkxRQUFSUTBCUVFBaEFDQUpLQUlBSWdFZ0NHdEJud0ZLRFFJZ0NpZ0NBQ0VBSUFrZ0FVRUVhallDQUNBQklBQTJBZ0JCQUNFQUlBcEJBRFlDQUF3Q0MwRi9JUUFnQ3lBTFFTQnFJQXhCRDJvUTFRRWdDMnNpQlVFZlNnMEJJQVZCNE5BQWFpMEFBQ0VHQWtBQ1FBSkFBa0FnQlVGK2NVRVdhdzREQVFJQUFnc2dBeUFFS0FJQUlnRkhCRUFnQVVFQmF5MEFBRUhmQUhFZ0FpMEFBRUgvQUhGSERRVUxJQVFnQVVFQmFqWUNBQ0FCSUFZNkFBQkJBQ0VBREFRTElBSkIwQUE2QUFBTUFRc2dBaXdBQUNJQUlBWkIzd0J4UncwQUlBSWdBRUdBQVhJNkFBQWdBUzBBQUVVTkFDQUJRUUE2QUFBZ0J4QUpSUTBBSUFrb0FnQWlBQ0FJYTBHZkFVb05BQ0FLS0FJQUlRRWdDU0FBUVFScU5nSUFJQUFnQVRZQ0FBc2dCQ0FFS0FJQUlnQkJBV28yQWdBZ0FDQUdPZ0FBUVFBaEFDQUZRUlZLRFFFZ0NpQUtLQUlBUVFGcU5nSUFEQUVMUVg4aEFBc2dERUVRYWlRQUlBQUxVQUVDZnlNQVFSQnJJZ1lrQUNBR1FRaHFJZ1VnQVJBUElBVVFNa0hnMEFCQmdORUFJQUlRYnlBRElBVVFqZ0VpQVJCSU9nQUFJQVFnQVJBNE9nQUFJQUFnQVJBM0lBVVFEaUFHUVJCcUpBQUxmZ0lDZndKK0l3QkJvQUZySWdRa0FDQUVJQUUyQWp3Z0JDQUJOZ0lVSUFSQmZ6WUNHQ0FFUVJCcUlnVkNBQkJUSUFRZ0JTQURRUUVRNWdJZ0JDa0RDQ0VHSUFRcEF3QWhCeUFDQkVBZ0FpQUJJQVFvQWhRZ0JDZ0NpQUZxSUFRb0FqeHJhallDQUFzZ0FDQUhOd01BSUFBZ0JqY0RDQ0FFUWFBQmFpUUFDdzBBSUFBZ0FTQUNRbjhRMEFJTGlRSUFBa0FnQUFSL0lBRkIvd0JORFFFQ1FFSFloZ0VvQWdBb0FnQkZCRUFnQVVHQWYzRkJnTDhEUmcwRERBRUxJQUZCL3c5TkJFQWdBQ0FCUVQ5eFFZQUJjam9BQVNBQUlBRkJCblpCd0FGeU9nQUFRUUlQQ3lBQlFZQkFjVUdBd0FOSElBRkJnTEFEVDNGRkJFQWdBQ0FCUVQ5eFFZQUJjam9BQWlBQUlBRkJESFpCNEFGeU9nQUFJQUFnQVVFR2RrRS9jVUdBQVhJNkFBRkJBdzhMSUFGQmdJQUVhMEgvL3o5TkJFQWdBQ0FCUVQ5eFFZQUJjam9BQXlBQUlBRkJFblpCOEFGeU9nQUFJQUFnQVVFR2RrRS9jVUdBQVhJNkFBSWdBQ0FCUVF4MlFUOXhRWUFCY2pvQUFVRUVEd3NMUWRTQkFVRVpOZ0lBUVg4RlFRRUxEd3NnQUNBQk9nQUFRUUVMcndJQkJIOENmd0pBSUFBaUFVRURjUVJBQTBBZ0FTMEFBQ0lDUlNBQ1FUMUdjZzBDSUFGQkFXb2lBVUVEY1EwQUN3c0NRQ0FCS0FJQUlnSkJmM01nQWtHQmdvUUlhM0ZCZ0lHQ2hIaHhEUUFEUUNBQ1FiMzY5T2tEY3lJQ1FYOXpJQUpCZ1lLRUNHdHhRWUNCZ29SNGNRMEJJQUVvQWdRaEFpQUJRUVJxSVFFZ0FrR0Jnb1FJYXlBQ1FYOXpjVUdBZ1lLRWVIRkZEUUFMQ3dOQUlBRWlBaTBBQUNJREJFQWdBa0VCYWlFQklBTkJQVWNOQVFzTElBSU1BUXNnQVFzZ0FHc2lBa1VFUUVFQUR3c0NRQ0FBSUFKcUxRQUFEUUJCOUlZQktBSUFJZ0ZGRFFBZ0FTZ0NBQ0lEUlEwQUEwQUNRQ0FBSUFNZ0FoQytBVVVFUUNBQktBSUFJQUpxSWdNdEFBQkJQVVlOQVFzZ0FTZ0NCQ0VESUFGQkJHb2hBU0FERFFFTUFnc0xJQU5CQVdvaEJBc2dCQXZoQVFFQ2Z5QUNRUUJISVFNQ1FBSkFBa0FnQUVFRGNVVWdBa1Z5RFFBZ0FVSC9BWEVoQkFOQUlBQXRBQUFnQkVZTkFpQUNRUUZySWdKQkFFY2hBeUFBUVFGcUlnQkJBM0ZGRFFFZ0FnMEFDd3NnQTBVTkFRc0NRQ0FBTFFBQUlBRkIvd0Z4UmlBQ1FRUkpjZzBBSUFGQi93RnhRWUdDaEFoc0lRTURRQ0FBS0FJQUlBTnpJZ1JCZjNNZ0JFR0Jnb1FJYTNGQmdJR0NoSGh4RFFFZ0FFRUVhaUVBSUFKQkJHc2lBa0VEU3cwQUN3c2dBa1VOQUNBQlFmOEJjU0VCQTBBZ0FTQUFMUUFBUmdSQUlBQVBDeUFBUVFGcUlRQWdBa0VCYXlJQ0RRQUxDMEVBQzljREFnSitBbjhqQUVFZ2F5SUVKQUFDUUNBQlF2Ly8vLy8vLy8vLy93Q0RJZ05DZ0lDQWdJQ0F3SUE4ZlNBRFFvQ0FnSUNBZ01EL3d3QjlWQVJBSUFGQ0JJWWdBRUk4aUlRaEF5QUFRdi8vLy8vLy8vLy9ENE1pQUVLQmdJQ0FnSUNBZ0FoYUJFQWdBMEtCZ0lDQWdJQ0FnTUFBZkNFQ0RBSUxJQU5DZ0lDQWdJQ0FnSUJBZlNFQ0lBQkNnSUNBZ0lDQWdJQUloVUlBVWcwQklBSWdBMElCZzN3aEFnd0JDeUFBVUNBRFFvQ0FnSUNBZ01ELy93QlVJQU5DZ0lDQWdJQ0F3UC8vQUZFYlJRUkFJQUZDQklZZ0FFSThpSVJDLy8vLy8vLy8vd09EUW9DQWdJQ0FnSUQ4L3dDRUlRSU1BUXRDZ0lDQWdJQ0FnUGovQUNFQ0lBTkMvLy8vLy8vL3YvL0RBRllOQUVJQUlRSWdBMEl3aUtjaUJVR1I5d0JKRFFBZ0JFRVFhaUFBSUFGQy8vLy8vLy8vUDROQ2dJQ0FnSUNBd0FDRUlnSWdCVUdCOXdCckVDOGdCQ0FBSUFKQmdmZ0FJQVZyRUh3Z0JDa0RDRUlFaGlBRUtRTUFJZ0JDUElpRUlRSWdCQ2tERUNBRUtRTVloRUlBVXEwZ0FFTC8vLy8vLy8vLy93K0RoQ0lBUW9HQWdJQ0FnSUNBQ0ZvRVFDQUNRZ0Y4SVFJTUFRc2dBRUtBZ0lDQWdJQ0FnQWlGUWdCU0RRQWdBa0lCZ3lBQ2ZDRUNDeUFFUVNCcUpBQWdBaUFCUW9DQWdJQ0FnSUNBZ0grRGhMOExSQUVCZnlNQVFSQnJJZ1VrQUNBRklBRWdBaUFESUFSQ2dJQ0FnSUNBZ0lDQWY0VVFQQ0FGS1FNQUlRRWdBQ0FGS1FNSU53TUlJQUFnQVRjREFDQUZRUkJxSkFBTHFRRUJBWHhFQUFBQUFBQUE4RDhoQVFKQUlBQkJnQWhPQkVCRUFBQUFBQUFBNEg4aEFTQUFRZjhQU0FSQUlBQkIvd2RySVFBTUFndEVBQUFBQUFBQThIOGhBU0FBUWYwWElBQkIvUmRJRzBIK0Qyc2hBQXdCQ3lBQVFZRjRTZzBBUkFBQUFBQUFBR0FESVFFZ0FFRzRjRW9FUUNBQVFja0hhaUVBREFFTFJBQUFBQUFBQUFBQUlRRWdBRUh3YUNBQVFmQm9TaHRCa2c5cUlRQUxJQUVnQUVIL0IycXRRalNHdjZJTHhBRUNBWDhDZmtGL0lRTUNRQ0FBUWdCU0lBRkMvLy8vLy8vLy8vLy9BSU1pQkVLQWdJQ0FnSURBLy84QVZpQUVRb0NBZ0lDQWdNRC8vd0JSR3cwQVFRQWdBa0wvLy8vLy8vLy8vLzhBZ3lJRlFvQ0FnSUNBZ01ELy93QldJQVZDZ0lDQWdJQ0F3UC8vQUZFYkRRQWdBQ0FFSUFXRWhGQUVRRUVBRHdzZ0FTQUNnMElBV1FSQVFRQWdBU0FDVXlBQklBSlJHdzBCSUFBZ0FTQUNoWVJDQUZJUEN5QUFRZ0JTSUFFZ0FsVWdBU0FDVVJzTkFDQUFJQUVnQW9XRVFnQlNJUU1MSUFNTGFRRUNmeUFBUWJ3b05nSUFJQUFvQWlnaEFRTkFJQUVFUUVFQUlBQWdBVUVCYXlJQlFRSjBJZ0lnQUNnQ0pHb29BZ0FnQUNnQ0lDQUNhaWdDQUJFSEFBd0JDd3NnQUVFY2FoQU9JQUFvQWlBUUVDQUFLQUlrRUJBZ0FDZ0NNQkFRSUFBb0Fqd1FFQ0FBQ3drQUlBQVFpZ0VRRUFzSkFDQUFFTGdCRUJBTERBQWdBRUVFYWhCK0dpQUFDd3dBSUFCQkNHb1FmaG9nQUF2L0x3RVJmeU1BUVNCckloTWtBQUovUWZRQkVCa2lDQVIvQWtBZ0NDSUdJQUFnQVVFRGRCQ0pBeUlBUVFCTURRQWdBRUVDZENFUEEwQWdCaUFSUVFKMElnZHFJZ0VvQWdBaENpQUJJQVlnRDBFQ2RDSVFhaUlCS0FJQU5nSUFJQUVnQ2pZQ0FDQUdJQWRCQkhKcUlnRW9BZ0FoQ2lBQklBWWdFRUVFY21vaUFTZ0NBRFlDQUNBQklBbzJBZ0FnQmlBSFFRaHlhaUlCS0FJQUlRb2dBU0FHSUJCQkNISnFJZ0VvQWdBMkFnQWdBU0FLTmdJQUlBWWdCMEVNY21vaUFTZ0NBQ0VLSUFFZ0JpQVFRUXh5YWlJQktBSUFOZ0lBSUFFZ0NqWUNBQ0FSUVFScUloRWdEMEVFYXlJUFNBMEFDMEVCSVJFZ0FFRUJUQTBBQTBBZ0JrRVFhaUVHUVFBaER3TkFJQVlnRDBFQ2RHb2lBU0FCS0FJQUlnRkJEblpCL0FkeFFZQUlhaWdDQUVFR2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBQlFSWjJRZndIY1VHQUNHb29BZ0JCQm5aQi9BZHhRWUFRYWlnQ0FITWdBVUVHZGtIOEIzRkJnQWhxS0FJQVFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUJRZjhCY1VFQ2RFR0FDR29vQWdCQkJuWkIvQWR4UVlBUWFpZ0NBRUVZRUFoek5nSUFJQTlCQVdvaUQwRUVSdzBBQ3lBUlFRRnFJaEVnQUVjTkFBc0xJQUJCQUVnRVFDQUlFQkJCQUF3Q0N5QUlJQUEyQXZBQklBZ0ZRUUFMQ3lJQUJIOGdFeUFDS1FBQU53TVFJQk1nQWlrQUNEY0RHQ0FFUVJCUEJFQWdCRUVFZGlFVlFRQWhBUU5BSUJNZ0F5a0FBRGNEQUNBVElBTXBBQWczQXdnZ0FDZ0M4QUVoRkNBQUtBSU1JQU1vQUF3aUFrRVlkQ0FDUVFoMFFZQ0EvQWR4Y2lBQ1FRaDJRWUQrQTNFZ0FrRVlkbkp5Y3lJUFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSSWdBQ2dDQ0NBREtBQUlJZ0pCR0hRZ0FrRUlkRUdBZ1B3SGNYSWdBa0VJZGtHQS9nTnhJQUpCR0haeWNuTWlFVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VPSUFBb0FnUWdBeWdBQkNJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkp6SWdkQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaENTQUFLQUlBSUFNb0FBQWlBa0VZZENBQ1FRaDBRWUNBL0FkeGNpQUNRUWgyUVlEK0EzRWdBa0VZZG5KeWN5SUxRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUkFnRDBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFS0lCRkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCaUFIUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVFnZ0MwRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUVJQTlCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQWlBUlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBOUJGblpCL0FkeFFZQVFhaWdDQUhNZ0IwRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdDMEgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ0hITWlERUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VQSUFBb0FoZ2dBaUFFSUFnZ0VVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SU5RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUkVnQUNnQ0ZDQUdJQW9nRUNBSFFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnVkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCeUFBS0FJUUlBa2dEaUFTSUF0QkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUMwRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVFJQXhCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQ2lBTlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRWWdCVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VJSUF0QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEJDQU1RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUUlnRFVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBTVFSWjJRZndIY1VHQUVHb29BZ0J6SUFWQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBdEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQWl4eklneEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFaUFBS0FJb0lBSWdCQ0FJSUExQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaURVRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRU9JQUFvQWlRZ0JpQUtJQkFnQlVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJRlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRa2dBQ2dDSUNBSElCRWdEeUFMUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWd0QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaEVDQU1RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUW9nRFVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFR0lBVkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hDQ0FMUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFRZ0RFSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUNJQTFCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnREVFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFGUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBTFFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSWN5QUFLQUk4Y3lJTVFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlROGdBQ2dDT0NBQ0lBUWdDQ0FOUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWcxQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEVTQUFLQUkwSUFZZ0NpQVFJQVZCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQlVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFSElBQW9BakFnQ1NBT0lCSWdDMEVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlMUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVJBZ0RFRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUtJQTFCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQmlBRlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlRZ2dDMEVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VFSUF4Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEFpQU5RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQXhCRm5aQi9BZHhRWUFRYWlnQ0FITWdCVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDSE1nQzBIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0NUSE1pREVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFU0lBQW9Ba2dnQWlBRUlBZ2dEVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlOUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVE0Z0FDZ0NSQ0FHSUFvZ0VDQUZRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ1ZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQ1NBQUtBSkFJQWNnRVNBUElBdEJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlDMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VRSUF4QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaENpQU5RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUVlnQlVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFSUlBdEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hCQ0FNUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFJZ0RVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQU1RUloyUWZ3SGNVR0FFR29vQWdCeklBVkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQXRCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0FseHpJZ3hCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRHlBQUtBSllJQUlnQkNBSUlBMUJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlEVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VSSUFBb0FsUWdCaUFLSUJBZ0JVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUZRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUWNnQUNnQ1VDQUpJQTRnRWlBTFFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklndEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFQ0FNUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFvZ0RVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUdJQVZCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoQ0NBTFFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRUWdERUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VDSUExQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0RFRVdka0g4QjNGQmdCQnFLQUlBY3lBRlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUxRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FKc2N5SU1RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUklnQUNnQ2FDQUNJQVFnQ0NBTlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnMUJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hEaUFBS0FKa0lBWWdDaUFRSUFWQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUJVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUpJQUFvQW1BZ0J5QVJJQThnQzBFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSQWdERUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VLSUExQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJpQUZRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUWdnQzBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFRUlBeEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hBaUFOUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUF4QkZuWkIvQWR4UVlBUWFpZ0NBSE1nQlVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0MwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDZkhNaURFRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVBJQUFvQW5nZ0FpQUVJQWdnRFVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlSRWdBQ2dDZENBR0lBb2dFQ0FGUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdWQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJ5QUFLQUp3SUFrZ0RpQVNJQXRCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pRGtFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUUlBeEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hDaUFOUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFZZ0JVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRUlJQTVCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQkNBTVFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRSWdEVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FNUVJaMlFmd0hjVUdBRUdvb0FnQnpJQVZCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUE1Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9Bb3dCY3lJSlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBQW9Bb0FCSUFjZ0VTQVBJQTVCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQjBFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFBS0FLSUFTQUNJQVFnQ0NBTlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnUkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQUFvQW9RQklBWWdDaUFRSUFWQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUFrSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDa0FGeklRVWdCMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FDUVJaMlFmd0hjVUdBRUdvb0FnQnpJQWxCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFSQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BcFFCY3lFU0lBSkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dCRUVXZGtIOEIzRkJnQkJxS0FJQWN5QUhRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFKUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBS1lBWE1oRGdKL0lBUkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dDVUVXZGtIOEIzRkJnQkJxS0FJQWN5QUNRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFIUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBS2NBWE1pQ1NBVVFRdElEUUFhSUFsQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaER5QU9RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUkVnRWtIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFSElBVkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFQ0FKUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFvZ0RrSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUdJQkpCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoQ0NBRlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRUWdDVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VDSUE1QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0NVRVdka0g4QjNGQmdCQnFLQUlBY3lBU1FRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUZRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FLc0FYTWlDVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FBS0FLZ0FTQUhJQkVnRHlBRlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnZEJGblpCL0FkeFFZQVFhaWdDQUhNZ0FDZ0NxQUVnQWlBRUlBZ2dEa0VXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlFUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBQUtBS2tBU0FHSUFvZ0VDQVNRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ0pCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0FyQUJjeUVGSUFkQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0FrRVdka0g4QjNGQmdCQnFLQUlBY3lBSlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUVRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FLMEFYTWhFaUFDUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFSQkZuWkIvQWR4UVlBUWFpZ0NBSE1nQjBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0NVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDdUFGeklRNGdCRUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FKUVJaMlFmd0hjVUdBRUdvb0FnQnpJQUpCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFkQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BcndCY3lJSklCUkJEVWdOQUJvZ0NVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVBJQTVCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoRVNBU1FmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRY2dCVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VRSUFsQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaENpQU9RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUVlnRWtFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFSUlBVkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hCQ0FKUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFJZ0RrRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQUpRUloyUWZ3SGNVR0FFR29vQWdCeklCSkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQVZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0Fzd0JjeUlKUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFBb0FzQUJJQWNnRVNBUElBVkJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlCMEVXZGtIOEIzRkJnQkJxS0FJQWN5QUFLQUxJQVNBQ0lBUWdDQ0FPUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdSQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBQW9Bc1FCSUFZZ0NpQVFJQkpCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQWtIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0MwQUZ6SVFVZ0IwRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQUNRUloyUWZ3SGNVR0FFR29vQWdCeklBbEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQVJCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0F0UUJjeUVTSUFKQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0JFRVdka0g4QjNGQmdCQnFLQUlBY3lBSFFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUpRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FMWUFYTWhEaUFFUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFsQkZuWkIvQWR4UVlBUWFpZ0NBSE1nQWtFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0IwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDM0FGekN5RUlJQU1nQUNBVVFRUjBhaUlFS0FJQUlCSkIvd0Z4UVlBWWFpMEFBQ0FJUVJCMlFmOEJjVUdBR0dvdEFBQkJFSFFnQlVFWWRrR0FHR290QUFCQkdIUnlJQTVCQ0haQi93RnhRWUFZYWkwQUFFRUlkSEp5Y3lJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkkyQUFBZ0F5QUVLQUlFSUE1Qi93RnhRWUFZYWkwQUFDQUZRUkIyUWY4QmNVR0FHR290QUFCQkVIUWdFa0VZZGtHQUdHb3RBQUJCR0hSeUlBaEJDSFpCL3dGeFFZQVlhaTBBQUVFSWRISnljeUlDUVJoMElBSkJDSFJCZ0lEOEIzRnlJQUpCQ0haQmdQNERjU0FDUVJoMmNuSTJBQVFnQXlBRUtBSUlJQWhCL3dGeFFZQVlhaTBBQUNBU1FSQjJRZjhCY1VHQUdHb3RBQUJCRUhRZ0RrRVlka0dBR0dvdEFBQkJHSFJ5SUFWQkNIWkIvd0Z4UVlBWWFpMEFBRUVJZEhKeWN5SUNRUmgwSUFKQkNIUkJnSUQ4QjNGeUlBSkJDSFpCZ1A0RGNTQUNRUmgyY25JMkFBZ2dBeUFFS0FJTUlBVkIvd0Z4UVlBWWFpMEFBQ0FPUVJCMlFmOEJjVUdBR0dvdEFBQkJFSFFnQ0VFWWRrR0FHR290QUFCQkdIUnlJQkpCQ0haQi93RnhRWUFZYWkwQUFFRUlkSEp5Y3lJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkkyQUF4QkFDRUNBMEFnQWlBRGFpSUVJQVF0QUFBZ0UwRVFhaUFDYWkwQUFITTZBQUFnQWtFQmFpSUNRUkJIRFFBTElCTWdFeWtEQ0RjREdDQVRJQk1wQXdBM0F4QWdBMEVRYWlFRElBRkJBV29pQVNBVlJ3MEFDd3NnQUJBUVFRQUZRWDhMR2lBVFFTQnFKQUFMbGdFQkFuOGpBRUVRYXlJQUpBQUNRQ0FBUVF4cUlBQkJDR29RQXcwQVFmU0dBU0FBS0FJTVFRSjBRUVJxRUJraUFUWUNBQ0FCUlEwQUlBQW9BZ2dRR1NJQkJFQkI5SVlCS0FJQUlBQW9BZ3hCQW5ScVFRQTJBZ0JCOUlZQktBSUFJQUVRQWtVTkFRdEI5SVlCUVFBMkFnQUxJQUJCRUdva0FFSElnUUZCdlI0UVZCcEIySVlCUWVpRkFUWUNBRUdRaGdGQktqWUNBQXRaQVFGL0lBQWdBQ2dDU0NJQlFRRnJJQUZ5TmdKSUlBQW9BZ0FpQVVFSWNRUkFJQUFnQVVFZ2NqWUNBRUYvRHdzZ0FFSUFOd0lFSUFBZ0FDZ0NMQ0lCTmdJY0lBQWdBVFlDRkNBQUlBRWdBQ2dDTUdvMkFoQkJBQXQ4QVFKL0lBQWdBQ2dDU0NJQlFRRnJJQUZ5TmdKSUlBQW9BaFFnQUNnQ0hFY0VRQ0FBUVFCQkFDQUFLQUlrRVFRQUdnc2dBRUVBTmdJY0lBQkNBRGNERUNBQUtBSUFJZ0ZCQkhFRVFDQUFJQUZCSUhJMkFnQkJmdzhMSUFBZ0FDZ0NMQ0FBS0FJd2FpSUNOZ0lJSUFBZ0FqWUNCQ0FCUVJ0MFFSOTFDOVVDQVFKL0FrQWdBQ0FCUmcwQUlBRWdBQ0FDYWlJRWEwRUFJQUpCQVhSclRRUkFJQUFnQVNBQ0VFSWFEd3NnQUNBQmMwRURjU0VEQWtBQ1FDQUFJQUZKQkVBZ0F3MENJQUJCQTNGRkRRRURRQ0FDUlEwRUlBQWdBUzBBQURvQUFDQUJRUUZxSVFFZ0FrRUJheUVDSUFCQkFXb2lBRUVEY1EwQUN3d0JDd0pBSUFNTkFDQUVRUU54QkVBRFFDQUNSUTBGSUFBZ0FrRUJheUlDYWlJRElBRWdBbW90QUFBNkFBQWdBMEVEY1EwQUN3c2dBa0VEVFEwQUEwQWdBQ0FDUVFScklnSnFJQUVnQW1vb0FnQTJBZ0FnQWtFRFN3MEFDd3NnQWtVTkFnTkFJQUFnQWtFQmF5SUNhaUFCSUFKcUxRQUFPZ0FBSUFJTkFBc01BZ3NnQWtFRFRRMEFBMEFnQUNBQktBSUFOZ0lBSUFGQkJHb2hBU0FBUVFScUlRQWdBa0VFYXlJQ1FRTkxEUUFMQ3lBQ1JRMEFBMEFnQUNBQkxRQUFPZ0FBSUFCQkFXb2hBQ0FCUVFGcUlRRWdBa0VCYXlJQ0RRQUxDd3NVQUNBQVFReHFJZ0FnQUJDVUFVRUJhaENUQVF1TERBRUdmeUFBSUFGcUlRVUNRQUpBSUFBb0FnUWlBa0VCY1EwQUlBSkJBM0ZGRFFFZ0FDZ0NBQ0lDSUFGcUlRRUNRQ0FBSUFKcklnQkI3SUVCS0FJQVJ3UkFJQUpCL3dGTkJFQWdBQ2dDQ0NJRUlBSkJBM1lpQWtFRGRFR0FnZ0ZxUmhvZ0FDZ0NEQ0lESUFSSERRSkIySUVCUWRpQkFTZ0NBRUYrSUFKM2NUWUNBQXdEQ3lBQUtBSVlJUVlDUUNBQUlBQW9BZ3dpQTBjRVFDQUFLQUlJSWdKQjZJRUJLQUlBU1JvZ0FpQUROZ0lNSUFNZ0FqWUNDQXdCQ3dKQUlBQkJGR29pQWlnQ0FDSUVEUUFnQUVFUWFpSUNLQUlBSWdRTkFFRUFJUU1NQVFzRFFDQUNJUWNnQkNJRFFSUnFJZ0lvQWdBaUJBMEFJQU5CRUdvaEFpQURLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBDQWtBZ0FDQUFLQUljSWdSQkFuUkJpSVFCYWlJQ0tBSUFSZ1JBSUFJZ0F6WUNBQ0FERFFGQjNJRUJRZHlCQVNnQ0FFRitJQVIzY1RZQ0FBd0VDeUFHUVJCQkZDQUdLQUlRSUFCR0cyb2dBellDQUNBRFJRMERDeUFESUFZMkFoZ2dBQ2dDRUNJQ0JFQWdBeUFDTmdJUUlBSWdBellDR0FzZ0FDZ0NGQ0lDUlEwQ0lBTWdBallDRkNBQ0lBTTJBaGdNQWdzZ0JTZ0NCQ0lDUVFOeFFRTkhEUUZCNElFQklBRTJBZ0FnQlNBQ1FYNXhOZ0lFSUFBZ0FVRUJjallDQkNBRklBRTJBZ0FQQ3lBRUlBTTJBZ3dnQXlBRU5nSUlDd0pBSUFVb0FnUWlBa0VDY1VVRVFDQUZRZkNCQVNnQ0FFWUVRRUh3Z1FFZ0FEWUNBRUhrZ1FGQjVJRUJLQUlBSUFGcUlnRTJBZ0FnQUNBQlFRRnlOZ0lFSUFCQjdJRUJLQUlBUncwRFFlQ0JBVUVBTmdJQVFleUJBVUVBTmdJQUR3c2dCVUhzZ1FFb0FnQkdCRUJCN0lFQklBQTJBZ0JCNElFQlFlQ0JBU2dDQUNBQmFpSUJOZ0lBSUFBZ0FVRUJjallDQkNBQUlBRnFJQUUyQWdBUEN5QUNRWGh4SUFGcUlRRUNRQ0FDUWY4QlRRUkFJQVVvQWdnaUJDQUNRUU4ySWdKQkEzUkJnSUlCYWtZYUlBUWdCU2dDRENJRFJnUkFRZGlCQVVIWWdRRW9BZ0JCZmlBQ2QzRTJBZ0FNQWdzZ0JDQUROZ0lNSUFNZ0JEWUNDQXdCQ3lBRktBSVlJUVlDUUNBRklBVW9BZ3dpQTBjRVFDQUZLQUlJSWdKQjZJRUJLQUlBU1JvZ0FpQUROZ0lNSUFNZ0FqWUNDQXdCQ3dKQUlBVkJGR29pQkNnQ0FDSUNEUUFnQlVFUWFpSUVLQUlBSWdJTkFFRUFJUU1NQVFzRFFDQUVJUWNnQWlJRFFSUnFJZ1FvQWdBaUFnMEFJQU5CRUdvaEJDQURLQUlRSWdJTkFBc2dCMEVBTmdJQUN5QUdSUTBBQWtBZ0JTQUZLQUljSWdSQkFuUkJpSVFCYWlJQ0tBSUFSZ1JBSUFJZ0F6WUNBQ0FERFFGQjNJRUJRZHlCQVNnQ0FFRitJQVIzY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFWR0cyb2dBellDQUNBRFJRMEJDeUFESUFZMkFoZ2dCU2dDRUNJQ0JFQWdBeUFDTmdJUUlBSWdBellDR0FzZ0JTZ0NGQ0lDUlEwQUlBTWdBallDRkNBQ0lBTTJBaGdMSUFBZ0FVRUJjallDQkNBQUlBRnFJQUUyQWdBZ0FFSHNnUUVvQWdCSERRRkI0SUVCSUFFMkFnQVBDeUFGSUFKQmZuRTJBZ1FnQUNBQlFRRnlOZ0lFSUFBZ0FXb2dBVFlDQUFzZ0FVSC9BVTBFUUNBQlFRTjJJZ0pCQTNSQmdJSUJhaUVCQW45QjJJRUJLQUlBSWdOQkFTQUNkQ0lDY1VVRVFFSFlnUUVnQWlBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFJZ0FTQUFOZ0lJSUFJZ0FEWUNEQ0FBSUFFMkFnd2dBQ0FDTmdJSUR3dEJIeUVDSUFCQ0FEY0NFQ0FCUWYvLy93ZE5CRUFnQVVFSWRpSUNJQUpCZ1A0L2FrRVFka0VJY1NJRWRDSUNJQUpCZ09BZmFrRVFka0VFY1NJRGRDSUNJQUpCZ0lBUGFrRVFka0VDY1NJQ2RFRVBkaUFESUFSeUlBSnlheUlDUVFGMElBRWdBa0VWYW5aQkFYRnlRUnhxSVFJTElBQWdBallDSENBQ1FRSjBRWWlFQVdvaEJ3SkFBa0JCM0lFQktBSUFJZ1JCQVNBQ2RDSURjVVVFUUVIY2dRRWdBeUFFY2pZQ0FDQUhJQUEyQWdBZ0FDQUhOZ0lZREFFTElBRkJBRUVaSUFKQkFYWnJJQUpCSDBZYmRDRUNJQWNvQWdBaEF3TkFJQU1pQkNnQ0JFRjRjU0FCUmcwQ0lBSkJIWFloQXlBQ1FRRjBJUUlnQkNBRFFRUnhhaUlIUVJCcUtBSUFJZ01OQUFzZ0J5QUFOZ0lRSUFBZ0JEWUNHQXNnQUNBQU5nSU1JQUFnQURZQ0NBOExJQVFvQWdnaUFTQUFOZ0lNSUFRZ0FEWUNDQ0FBUVFBMkFoZ2dBQ0FFTmdJTUlBQWdBVFlDQ0FzTFpBQWdBQ0FCUWlpR1FvQ0FnSUNBZ01EL0FJTWdBVUk0aG9RZ0FVSVloa0tBZ0lDQWdPQS9neUFCUWdpR1FvQ0FnSUR3SDRPRWhDQUJRZ2lJUW9DQWdQZ1BneUFCUWhpSVFvQ0EvQWVEaENBQlFpaUlRb0QrQTRNZ0FVSTRpSVNFaERjQUFBc1BBQ0FBS0FJTUdpQUFRUUEyQWd3TGh3RUJCSDhqQUVFUWF5SUZKQUFqQUVFUWF5SURKQUFDUUNBQlFXOU5CRUFDUUNBQlFRcE5CRUFnQUNBQkVEb2dBQ0VFREFFTElBQWdBUkNSQVVFQmFpSUdFRjhpQkJCTklBQWdCaEJNSUFBZ0FSQTVDeUFFSUFFZ0FoRDNBU0FEUVFBNkFBOGdBU0FFYWlBRFFROXFFRFFnQTBFUWFpUUFEQUVMRUJjQUN5QUZRUkJxSkFBZ0FBdFZBUUovSUFBb0FnUWhCQUovUVFBZ0FrVU5BQm9nQkVFSWRTSUZJQVJCQVhGRkRRQWFJQUlvQWdBZ0JSREZBUXNoQlNBQUtBSUFJZ0FnQVNBQ0lBVnFJQU5CQWlBRVFRSnhHeUFBS0FJQUtBSWNFUWdBQ3cwQUlBQW9BZ0FnQVNnQ0FFa0xJd0FnQUVFQU5nSU1JQUFnQVRZQ0JDQUFJQUUyQWdBZ0FDQUJRUUZxTmdJSUlBQUx1d0VCQTM4akFFRVFheUlGSkFBZ0FrSHYvLy8vQXlJR0lBRnJUUVJBSUFBUURTRUhJQUFDZnlBQklBWkJBWFpCRUd0SkJFQWdCU0FCUVFGME5nSUlJQVVnQVNBQ2FqWUNEQ0FGUVF4cUlBVkJDR29RZGlnQ0FCQ0NBUXdCQ3lBR1FRRnJDMEVCYWlJR0VJRUJJUUlnQkFSQUlBSWdCeUFFRUhFTElBTWdCR3NpQXdSQUlBUkJBblFpQkNBQ2FpQUVJQWRxSUFNUWNRc2dBVUVCUndSQUlBY1FFQXNnQUNBQ0VFMGdBQ0FHRUV3Z0JVRVFhaVFBRHdzUUZ3QUxoQUlCQTM4akFFRVFheUlJSkFBZ0FrSHYvLy8vQXlJSklBRkJmM05xVFFSQUlBQVFEU0VLSUFBQ2Z5QUJJQWxCQVhaQkVHdEpCRUFnQ0NBQlFRRjBOZ0lJSUFnZ0FTQUNhallDRENBSVFReHFJQWhCQ0dvUWRpZ0NBQkNDQVF3QkN5QUpRUUZyQzBFQmFpSUpFSUVCSVFJZ0JBUkFJQUlnQ2lBRUVIRUxJQVlFUUNBRVFRSjBJQUpxSUFjZ0JoQnhDeUFESUFRZ0JXcHJJZ01FUUNBRVFRSjBJZ2NnQW1vZ0JrRUNkR29nQnlBS2FpQUZRUUowYWlBREVIRUxJQUZCQVVjRVFDQUtFQkFMSUFBZ0FoQk5JQUFnQ1JCTUlBQWdCQ0FHYWlBRGFpSUFFRGtnQ0VFQU5nSUVJQUlnQUVFQ2RHb2dDRUVFYWhBeklBaEJFR29rQUE4TEVCY0FDMWdCQTM5QnlJRUJFQTBoQTBISWdRRVFDU0VCSXdCQkVHc2lBaVFBSUFJZ0FEb0FEMEYvSVFBZ0FRUkFJQUVFZnlBRElBSXNBQThRWlNBQkVOd0JCVUVBQ3lJQUlBTnJRWDhnQUJzaEFBc2dBa0VRYWlRQUlBQUxjQUVEZnlNQVFSQnJJZ01rQUNBQ1FXOU5CRUFDUUNBQ1FRcE5CRUFnQUNBQ0VEb2dBQ0VFREFFTElBQWdBaENSQVVFQmFpSUZFRjhpQkJCTklBQWdCUkJNSUFBZ0FoQTVDeUFFSUFFZ0FoQlZJQU5CQURvQUR5QUNJQVJxSUFOQkQyb1FOQ0FEUVJCcUpBQVBDeEFYQUFzU0FDQUJCRUFnQUNBQ0VHVWdBUkJHR2dzTDdBRUJBMzhqQUVFUWF5SUlKQUFnQWtGdklna2dBVUYvYzJwTkJFQWdBQkFOSVFvQ2Z5QUJJQWxCQVhaQkVHdEpCRUFnQ0NBQlFRRjBOZ0lJSUFnZ0FTQUNhallDRENBSVFReHFJQWhCQ0dvUWRpZ0NBQkNSQVF3QkN5QUpRUUZyQzBFQmFpSUpFRjhoQWlBRUJFQWdBaUFLSUFRUVZRc2dCZ1JBSUFJZ0JHb2dCeUFHRUZVTElBTWdCQ0FGYW1zaUF3UkFJQUlnQkdvZ0Jtb2dCQ0FLYWlBRmFpQURFRlVMSUFGQkNrY0VRQ0FLRUJBTElBQWdBaEJOSUFBZ0NSQk1JQUFnQkNBR2FpQURhaUlBRURrZ0NFRUFPZ0FISUFBZ0Ftb2dDRUVIYWhBMElBaEJFR29rQUE4TEVCY0FDeVFCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lJSUFFb0FnZ2hBQ0FCUVJCcUpBQWdBQXNKQUNBQUVCWTJBZ0FMS3dFQmZ5QUFLQUlFSVFJRFFDQUJJQUpIQkVBZ0FCQjBHaUFDUVFScklRSU1BUXNMSUFBZ0FUWUNCQXNxQUNNQVFSQnJJZ0lrQUFKQUlBQWdBVVlFUUNBQVFRQTZBSGdNQVFzZ0FSQVFDeUFDUVJCcUpBQUxIQUFnQVVILy8vLy9BMHNFUUVINEhCQ1dBZ0FMSUFGQkFuUVFYd3NKQUNBQlFRQTJBZ0FMTmdCQnNKVUJLQUlBR2tHd2xRRW9BZ0JCc0pVQkVITkJBblJxR2tHd2xRRW9BZ0JCc0pVQkVITkJBblJxR2tHd2xRRW9BZ0FhQ3owQkFYOGpBRUVRYXlJQ0pBQUNRQ0FBTFFCNElBRkJIa3R5UlFSQUlBQkJBVG9BZUF3QkN5QUNRUWhxSUFFUS9RRWhBQXNnQWtFUWFpUUFJQUFMUlFFQ2Z5TUFRUkJySWdBa0FFR3dsUUVRZEJvZ0FFSC8vLy8vQXpZQ0RDQUFRZi8vLy84SE5nSUlJQUJCREdvZ0FFRUlhaENpQVNnQ0FDRUJJQUJCRUdva0FDQUJDd2tBSUFBUXlnRVFFQXNuQUNBRElBTW9BZ0FnQWlBQmF5SUFheUlDTmdJQUlBQkJBRW9FUUNBQ0lBRWdBQkJDR2dzTEVBQWdBQ0FCRU0wQklBQWdBallDQkF2SUFRRUVmeU1BUVNCcklnVWtBQ0FGSUFFcEFBQTNBeEFnQlNBQktRQUlOd01ZQWtBZ0EwRVFTUVJBSUFJaEFRd0JDeUFEUVFSMklRY2dBaUVCQTBBZ0FDQUZRUkJxSWdnZ0JCQ25BU0FFSUFFUW5RRWdCRUVRYWlFRUlBRkJFR29oQVNBSUVPc0JJQVpCQVdvaUJpQUhSdzBBQ3dzZ0FpQURhaUFCYXlJQ0JFQWdBQ0FGUVJCcUlBVVFwd0ZCQUNFR0EwQWdCQ0FGSUFacUxRQUFJQUV0QUFCek9nQUFJQVJCQVdvaEJDQUJRUUZxSVFFZ0JrRUJhaUlHSUFKSERRQUxDeUFGUVNCcUpBQUxGUUFnQUVINDB3QTJBZ0FnQUVFUWFoQUtHaUFBQ3hVQUlBQkIwTk1BTmdJQUlBQkJER29RQ2hvZ0FBc0VBRUVFQ3c4QUlBQW9BZ0FnQUNnQ0JEWUNCQXRBQVFKL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENBQlFRaHFJQUZCREdvUVVpRUFRUVJCQVVIWWhnRW9BZ0FvQWdBYklRSWdBQkJSSUFGQkVHb2tBQ0FDQ3p3QkFYOGpBRUVRYXlJRkpBQWdCU0FFTmdJTUlBVkJDR29nQlVFTWFoQlNJUVFnQUNBQklBSWdBeEMzQVNFQUlBUVFVU0FGUVJCcUpBQWdBQXNNQUNBQklBSXRBQUE2QUFBTEVnQWdCQ0FDTmdJQUlBY2dCVFlDQUVFREN5Z0JBWDhnQUVIczBnQTJBZ0FDUUNBQUtBSUlJZ0ZGRFFBZ0FDMEFERVVOQUNBQkVCQUxJQUFMNUFrQkFYOENRRUgwaUFFdEFBQkJBWEVOQUVIMGlBRVFKRVVOQUFKQVFlaUlBUzBBQUVFQmNRMEFRZWlJQVJBa1JRMEFRYWlWQVJBYlFhaVZBVUhZMGdBMkFnQWpBRUVRYXlJQkpBQkJzSlVCUWdBM0F3QWdBVUVBTmdJTVFiaVZBU0FCUVF4cUVNMEJRYmlXQVVFQU9nQUFJQUZCRUdva0FCQ0JBa0VlU1FSQUVCY0FDMEd3bFFGQnNKVUJFSFJCSGhDQUFpSUJOZ0lBUWJTVkFTQUJOZ0lBUWJDVkFSQkRJQUZCK0FCcU5nSUFRUUFRL3dGQkhoQ1hBa0hBbGdGQm1oNFFWQnBCc0pVQkVGQWhBVUd3bFFFUWxRSkJzSlVCSUFFUWxBSkI4SklCRUJ0QjhKSUJRWVRkQURZQ0FFSHdrZ0ZCdUljQkVCb1FIRUg0a2dFUUcwSDRrZ0ZCcE4wQU5nSUFRZmlTQVVIQWh3RVFHaEFjUVlDVEFSQWJRWXlUQVVFQU9nQUFRWWlUQVVFQU5nSUFRWUNUQVVIczBnQTJBZ0JCaUpNQlFiQXlLQUlBTmdJQVFZQ1RBVUdFaVFFUUdoQWNRWkNUQVJBYlFaQ1RBVUhRMWdBMkFnQkJrSk1CUWZ5SUFSQWFFQnhCbUpNQkVCdEJtSk1CUWVUWEFEWUNBRUdZa3dGQmpJa0JFQm9RSEVHZ2t3RVFHMEdna3dGQm9OTUFOZ0lBUWFpVEFSQVdOZ0lBUWFDVEFVR1VpUUVRR2hBY1FiQ1RBUkFiUWJDVEFVSDQyQUEyQWdCQnNKTUJRWnlKQVJBYUVCeEJ1Sk1CRUJ0QnVKTUJRZXpaQURZQ0FFRzRrd0ZCcElrQkVCb1FIRUhBa3dFUUcwSElrd0ZCcnRnQU93RUFRY0NUQVVIUTB3QTJBZ0JCekpNQkVCRWFRY0NUQVVHc2lRRVFHaEFjUWRpVEFSQWJRZUNUQVVLdWdJQ0F3QVUzQWdCQjJKTUJRZmpUQURZQ0FFSG9rd0VRRVJwQjJKTUJRYlNKQVJBYUVCeEIrSk1CRUJ0QitKTUJRY1RkQURZQ0FFSDRrd0ZCeUljQkVCb1FIRUdBbEFFUUcwR0FsQUZCdU44QU5nSUFRWUNVQVVIUWh3RVFHaEFjUVlpVUFSQWJRWWlVQVVHTTRRQTJBZ0JCaUpRQlFkaUhBUkFhRUJ4QmtKUUJFQnRCa0pRQlFmVGlBRFlDQUVHUWxBRkI0SWNCRUJvUUhFR1lsQUVRRzBHWWxBRkJ6T29BTmdJQVFaaVVBVUdJaUFFUUdoQWNRYUNVQVJBYlFhQ1VBVUhnNndBMkFnQkJvSlFCUVpDSUFSQWFFQnhCcUpRQkVCdEJxSlFCUWRUc0FEWUNBRUdvbEFGQm1JZ0JFQm9RSEVHd2xBRVFHMEd3bEFGQnlPMEFOZ0lBUWJDVUFVR2dpQUVRR2hBY1FiaVVBUkFiUWJpVUFVRzg3Z0EyQWdCQnVKUUJRYWlJQVJBYUVCeEJ3SlFCRUJ0QndKUUJRZUR2QURZQ0FFSEFsQUZCc0lnQkVCb1FIRUhJbEFFUUcwSElsQUZCaFBFQU5nSUFRY2lVQVVHNGlBRVFHaEFjUWRDVUFSQWJRZENVQVVHbzhnQTJBZ0JCMEpRQlFjQ0lBUkFhRUJ4QjJKUUJFQnRCNEpRQlFaRDhBRFlDQUVIWWxBRkJ2T1FBTmdJQVFlQ1VBVUhzNUFBMkFnQkIySlFCUWVpSEFSQWFFQnhCNkpRQkVCdEI4SlFCUWJUOEFEWUNBRUhvbEFGQnhPWUFOZ0lBUWZDVUFVSDA1Z0EyQWdCQjZKUUJRZkNIQVJBYUVCeEIrSlFCRUJ0QmdKVUJFUG9CUWZpVUFVR3c2QUEyQWdCQitKUUJRZmlIQVJBYUVCeEJpSlVCRUJ0QmtKVUJFUG9CUVlpVkFVSE02UUEyQWdCQmlKVUJRWUNJQVJBYUVCeEJtSlVCRUJ0Qm1KVUJRY3p6QURZQ0FFR1lsUUZCeUlnQkVCb1FIRUdnbFFFUUcwR2dsUUZCeFBRQU5nSUFRYUNWQVVIUWlBRVFHaEFjUWVDSUFVR29sUUUyQWdCQjVJZ0JRZUNJQVRZQ0FFSG9pQUVRSXd0QjdJZ0JRZVNJQVNnQ0FCQ1FBa0h3aUFGQjdJZ0JOZ0lBUWZTSUFSQWpDeUFBUWZDSUFTZ0NBQ2dDQUNJQU5nSUFJQUFRemdFTEV3QWdBQ0FCS0FJQUlnQTJBZ0FnQUJET0FRc3lBQ0FBS0FJQUdpQUFLQUlBSUFBUWMwRUNkR29hSUFBb0FnQWdBQkJRUVFKMGFob2dBQ2dDQUNBQUVITkJBblJxR2dzVEFDQUFJQUFvQWdCQkFXc2lBRFlDQUNBQUMyOEJBbjhnQUVIWTBnQTJBZ0FnQUVFSWFpRUJBMEFnQVJCUUlBSkxCRUFnQVNBQ0VIY29BZ0FFUUNBQklBSVFkeWdDQUJDakFRc2dBa0VCYWlFQ0RBRUxDeUFBUVpnQmFoQUtHaUFCRUpFQ0lBRW9BZ0FFUUNBQkVKVUNJQUVRZENBQktBSUFJQUVRY3hEOEFRc2dBQXNxQUNBQUtBSUFHaUFBS0FJQUlBQVFjMEVDZEdvYUlBQW9BZ0FhSUFBb0FnQWdBQkJRUVFKMGFob0xEQUFnQUNBQUtBSUFFUHNCQzJJQkEzOUJDQkFISWdGQjBQOEFOZ0lBSUFGQi9QOEFOZ0lBSUFBUWtnRWlBa0VOYWhCZklnTkJBRFlDQ0NBRElBSTJBZ1FnQXlBQ05nSUFJQUVnQTBFTWFpQUFJQUpCQVdvUVFqWUNCQ0FCUWF5QUFUWUNBQ0FCUWN5QUFVRURFQVlBQzNJQkEzOGpBRUVRYXlJQkpBQWdBVUd3bFFFMkFnQWdBVUcwbFFFb0FnQWlBallDQkNBQklBSWdBRUVDZEdvMkFnZ2dBU0lES0FJRUlRQWdBeWdDQ0NFQ0EwQWdBQ0FDUmdSQUlBTVFpUUlnQVVFUWFpUUFCVUd3bFFFUWRDQUFFUDRCSUFNZ0FFRUVhaUlBTmdJRURBRUxDd3NnQUNBQVFhRFRBRFlDQUNBQUtBSUlFQlpIQkVBZ0FDZ0NDQkRVQWdzZ0FBc0VBRUYvQytJRkFRcC9Jd0JCRUdzaUV5UUFJQUlnQURZQ0FDQURRWUFFY1NFVklBZEJBblFoRmdOQUlCUkJCRVlFUUNBTkVBbEJBVXNFUUNBVElBMFFRRFlDQ0NBQ0lCTkJDR3BCQVJDZkFpQU5FR3dnQWlnQ0FCQ2tBVFlDQUFzZ0EwR3dBWEVpQTBFUVJ3UkFJQUVnQTBFZ1JnUi9JQUlvQWdBRklBQUxOZ0lBQ3lBVFFSQnFKQUFGQWtBQ1FBSkFBa0FDUUFKQUlBZ2dGR29zQUFBT0JRQUJBd0lFQlFzZ0FTQUNLQUlBTmdJQURBUUxJQUVnQWlnQ0FEWUNBQ0FHUVNBUVBTRUhJQUlnQWlnQ0FDSVBRUVJxTmdJQUlBOGdCellDQUF3REN5QU5FRWtOQWlBTlFRQVFzUUVvQWdBaEJ5QUNJQUlvQWdBaUQwRUVhallDQUNBUElBYzJBZ0FNQWdzZ0RCQkpJQlZGY2cwQklBSWdEQkJBSUF3UWJDQUNLQUlBRUtRQk5nSUFEQUVMSUFJb0FnQWhGeUFFSUJacUlnUWhCd05BQWtBZ0JTQUhUUTBBSUFaQmdCQWdCeWdDQUJCT1JRMEFJQWRCQkdvaEJ3d0JDd3NnRGlJUFFRQktCRUFEUUNBUFFRQk1JQVFnQjA5eVJRUkFJQWRCQkdzaUJ5Z0NBQ0VRSUFJZ0FpZ0NBQ0lSUVFScU5nSUFJQkVnRURZQ0FDQVBRUUZySVE4TUFRc0xJQTlCQUV3RWYwRUFCU0FHUVRBUVBRc2hFUU5BSUFJZ0FpZ0NBQ0lRUVFScU5nSUFJQTlCQUVvRVFDQVFJQkUyQWdBZ0QwRUJheUVQREFFTEN5QVFJQWsyQWdBTEFrQWdCQ0FIUmdSQUlBWkJNQkE5SVE4Z0FpQUNLQUlBSWhCQkJHb2lCellDQUNBUUlBODJBZ0FNQVFzZ0N4QkpCSDlCZndVZ0MwRUFFQXNzQUFBTElSQkJBQ0VQUVFBaEVnTkFJQVFnQjBjRVFBSkFJQThnRUVjRVFDQVBJUkVNQVFzZ0FpQUNLQUlBSWhCQkJHbzJBZ0FnRUNBS05nSUFRUUFoRVNBTEVBa2dFa0VCYWlJU1RRUkFJQThoRUF3QkN5QUxJQklRQ3kwQUFFSC9BRVlFUUVGL0lSQU1BUXNnQ3lBU0VBc3NBQUFoRUFzZ0IwRUVheUlIS0FJQUlROGdBaUFDS0FJQUloaEJCR28yQWdBZ0dDQVBOZ0lBSUJGQkFXb2hEd3dCQ3dzZ0FpZ0NBQ0VIQ3lBWElBY1FyUUVMSUJSQkFXb2hGQXdCQ3dzTHBRSUJBWDhqQUVFUWF5SUtKQUFnQ1FKL0lBQUVRQ0FDRUtFQ0lRQUNRQ0FCQkVBZ0NpQUFFR2tnQXlBS0tBSUFOZ0FBSUFvZ0FCQm9EQUVMSUFvZ0FCQ2xBU0FESUFvb0FnQTJBQUFnQ2lBQUVFb0xJQWdnQ2hCWElBb1FDaG9nQkNBQUVFZzJBZ0FnQlNBQUVEZzJBZ0FnQ2lBQUVEY2dCaUFLRURBZ0NoQUtHaUFLSUFBUVN5QUhJQW9RVnlBS0VBb2FJQUFRWnd3QkN5QUNFS0FDSVFBQ1FDQUJCRUFnQ2lBQUVHa2dBeUFLS0FJQU5nQUFJQW9nQUJCb0RBRUxJQW9nQUJDbEFTQURJQW9vQWdBMkFBQWdDaUFBRUVvTElBZ2dDaEJYSUFvUUNob2dCQ0FBRUVnMkFnQWdCU0FBRURnMkFnQWdDaUFBRURjZ0JpQUtFREFnQ2hBS0dpQUtJQUFRU3lBSElBb1FWeUFLRUFvYUlBQVFad3MyQWdBZ0NrRVFhaVFBQzlRRkFRcC9Jd0JCRUdzaUZDUUFJQUlnQURZQ0FDQURRWUFFY1NFV0EwQWdGVUVFUmdSQUlBMFFDVUVCU3dSQUlCUWdEUkJBTmdJSUlBSWdGRUVJYWtFQkVLWUNJQTBRYmlBQ0tBSUFFS1FCTmdJQUN5QURRYkFCY1NJRFFSQkhCRUFnQVNBRFFTQkdCSDhnQWlnQ0FBVWdBQXMyQWdBTElCUkJFR29rQUE4TEFrQUNRQUpBQWtBQ1FBSkFJQWdnRldvc0FBQU9CUUFCQXdJRUJRc2dBU0FDS0FJQU5nSUFEQVFMSUFFZ0FpZ0NBRFlDQUNBR1FTQVFLU0VQSUFJZ0FpZ0NBQ0lRUVFGcU5nSUFJQkFnRHpvQUFBd0RDeUFORUVrTkFpQU5RUUFRQ3kwQUFDRVBJQUlnQWlnQ0FDSVFRUUZxTmdJQUlCQWdEem9BQUF3Q0N5QU1FRWtnRmtWeURRRWdBaUFNRUVBZ0RCQnVJQUlvQWdBUXBBRTJBZ0FNQVFzZ0FpZ0NBQ0VYSUFRZ0Iyb2lCQ0VSQTBBQ1FDQUZJQkZORFFBZ0JrR0FFQ0FSTEFBQUVFUkZEUUFnRVVFQmFpRVJEQUVMQ3lBT0lnOUJBRW9FUUFOQUlBOUJBRXdnQkNBUlQzSkZCRUFnRVVFQmF5SVJMUUFBSVJBZ0FpQUNLQUlBSWhKQkFXbzJBZ0FnRWlBUU9nQUFJQTlCQVdzaER3d0JDd3NnRDBFQVRBUi9RUUFGSUFaQk1CQXBDeUVTQTBBZ0FpQUNLQUlBSWhCQkFXbzJBZ0FnRDBFQVNnUkFJQkFnRWpvQUFDQVBRUUZySVE4TUFRc0xJQkFnQ1RvQUFBc0NRQ0FFSUJGR0JFQWdCa0V3RUNraER5QUNJQUlvQWdBaUVFRUJhallDQUNBUUlBODZBQUFNQVFzZ0N4QkpCSDlCZndVZ0MwRUFFQXNzQUFBTElSQkJBQ0VQUVFBaEV3TkFJQVFnRVVZTkFRSkFJQThnRUVjRVFDQVBJUklNQVFzZ0FpQUNLQUlBSWhCQkFXbzJBZ0FnRUNBS09nQUFRUUFoRWlBTEVBa2dFMEVCYWlJVFRRUkFJQThoRUF3QkN5QUxJQk1RQ3kwQUFFSC9BRVlFUUVGL0lSQU1BUXNnQ3lBVEVBc3NBQUFoRUFzZ0VVRUJheUlSTFFBQUlROGdBaUFDS0FJQUloaEJBV28yQWdBZ0dDQVBPZ0FBSUJKQkFXb2hEd3dBQ3dBTElCY2dBaWdDQUJCNUN5QVZRUUZxSVJVTUFBc0FDNlVDQVFGL0l3QkJFR3NpQ2lRQUlBa0NmeUFBQkVBZ0FoQ29BaUVBQWtBZ0FRUkFJQW9nQUJCcElBTWdDaWdDQURZQUFDQUtJQUFRYUF3QkN5QUtJQUFRcFFFZ0F5QUtLQUlBTmdBQUlBb2dBQkJLQ3lBSUlBb1FNQ0FLRUFvYUlBUWdBQkJJT2dBQUlBVWdBQkE0T2dBQUlBb2dBQkEzSUFZZ0NoQXdJQW9RQ2hvZ0NpQUFFRXNnQnlBS0VEQWdDaEFLR2lBQUVHY01BUXNnQWhDbkFpRUFBa0FnQVFSQUlBb2dBQkJwSUFNZ0NpZ0NBRFlBQUNBS0lBQVFhQXdCQ3lBS0lBQVFwUUVnQXlBS0tBSUFOZ0FBSUFvZ0FCQktDeUFJSUFvUU1DQUtFQW9hSUFRZ0FCQklPZ0FBSUFVZ0FCQTRPZ0FBSUFvZ0FCQTNJQVlnQ2hBd0lBb1FDaG9nQ2lBQUVFc2dCeUFLRURBZ0NoQUtHaUFBRUdjTE5nSUFJQXBCRUdva0FBc0lBQ0FBS0FJQVJRczNBUUYvSXdCQkVHc2lBaVFBSUFJZ0FDZ0NBRFlDQ0NBQ0lBSW9BZ2dnQVVFQ2RHbzJBZ2dnQWlnQ0NDRUFJQUpCRUdva0FDQUFDd29BSUFCQm1JZ0JFR1FMQ2dBZ0FFR2dpQUVRWkFzSkFDQUFJQUVRcmdJTEh3RUJmeUFCS0FJQUVQb0NJUUlnQUNBQktBSUFOZ0lFSUFBZ0FqWUNBQXZ4RHdFS2Z5TUFRYkFFYXlJTEpBQWdDeUFLTmdLa0JDQUxJQUUyQXFnRUlBdEJOallDWUNBTElBdEJpQUZxSUF0QmtBRnFJQXRCNEFCcUlnRVFIaUlQS0FJQUlnbzJBb1FCSUFzZ0NrR1FBMm8yQW9BQklBRVFFU0VSSUF0QjBBQnFFRWNoRGlBTFFVQnJFRWNoRENBTFFUQnFFRWNoRFNBTFFTQnFFRWNoRUNNQVFSQnJJZ0VrQUNBTEFuOGdBZ1JBSUFFZ0F4Q2hBaUlDRUdrZ0N5QUJLQUlBTmdCNElBRWdBaEJvSUEwZ0FSQlhJQUVRQ2hvZ0FTQUNFRW9nRENBQkVGY2dBUkFLR2lBTElBSVFTRFlDZENBTElBSVFPRFlDY0NBQklBSVFOeUFSSUFFUU1DQUJFQW9hSUFFZ0FoQkxJQTRnQVJCWElBRVFDaG9nQWhCbkRBRUxJQUVnQXhDZ0FpSUNFR2tnQ3lBQktBSUFOZ0I0SUFFZ0FoQm9JQTBnQVJCWElBRVFDaG9nQVNBQ0VFb2dEQ0FCRUZjZ0FSQUtHaUFMSUFJUVNEWUNkQ0FMSUFJUU9EWUNjQ0FCSUFJUU55QVJJQUVRTUNBQkVBb2FJQUVnQWhCTElBNGdBUkJYSUFFUUNob2dBaEJuQ3pZQ0hDQUJRUkJxSkFBZ0NTQUlLQUlBTmdJQUlBUkJnQVJ4SWhKQkNYWWhFMEVBSVFGQkFDRUNBMEFnQWlFS0FrQUNRQUpBQWtBZ0FVRUVSZzBBSUFBZ0MwR29CR29RTmtVTkFFRUFJUVFDUUFKQUFrQUNRQUpBQWtBZ0MwSDRBR29nQVdvc0FBQU9CUUVBQkFNRkNRc2dBVUVEUmcwSElBZEJnTUFBSUFBUUlSQk9CRUFnQzBFUWFpQUFFS01DSUJBZ0N5Z0NFQkRIQVF3Q0N5QUZJQVVvQWdCQkJISTJBZ0JCQUNFQURBWUxJQUZCQTBZTkJnc0RRQ0FBSUF0QnFBUnFFRFpGRFFZZ0IwR0F3QUFnQUJBaEVFNUZEUVlnQzBFUWFpQUFFS01DSUJBZ0N5Z0NFQkRIQVF3QUN3QUxJQXdRQ1VFQUlBMFFDV3RHRFFRQ1FDQU1FQWtFUUNBTkVBa05BUXNnREJBSklRTWdBQkFoSVFJZ0F3UkFJQXdRRFNnQ0FDQUNSZ1JBSUFBUUpSb2dEQ0FLSUF3UUNVRUJTeHNoQWd3SUN5QUdRUUU2QUFBTUJnc2dBaUFORUEwb0FnQkhEUVVnQUJBbEdpQUdRUUU2QUFBZ0RTQUtJQTBRQ1VFQlN4c2hBZ3dHQ3lBQUVDRWdEQkFOS0FJQVJnUkFJQUFRSlJvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dHQ3lBQUVDRWdEUkFOS0FJQVJnUkFJQUFRSlJvZ0JrRUJPZ0FBSUEwZ0NpQU5FQWxCQVVzYklRSU1CZ3NnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBS0lBRkJBa2x5UlFSQVFRQWhBaUFUSUFGQkFrWWdDeTBBZTBFQVIzRnlSUTBGQ3lBTElBNFFRRFlDQ0NBTFFSQnFJQXRCQ0dvUXFBRWhBZ0pBSUFGRkRRQWdBU0FMYWkwQWQwRUJTdzBBQTBBQ1FDQUxJQTRRYkRZQ0NDQUNJQXRCQ0dvUVcwVU5BQ0FIUVlEQUFDQUNLQUlBS0FJQUVFNUZEUUFnQWhDVkFRd0JDd3NnQ3lBT0VFQTJBZ2dnQWlnQ0FDQUxLQUlJYTBFQ2RTSUNJQkFRQ1UwRVFDQUxJQkFRYkRZQ0NDQUxRUWhxUVFBZ0Ftc1Fud0loQXlBUUVHd2hCQ0FPRUVBaEZDTUFRU0JySWdJa0FDQUNJQVEyQWhBZ0FpQUROZ0lZSUFJZ0ZEWUNDQU5BQWtBZ0FrRVlhaUFDUVJCcUVGc2lBMFVOQUNBQ0tBSVlLQUlBSUFJb0FnZ29BZ0JIRFFBZ0FrRVlhaENWQVNBQ1FRaHFFSlVCREFFTEN5QUNRU0JxSkFBZ0EwRUJjdzBCQ3lBTElBNFFRRFlDQUNBTFFRaHFJQXNRcUFFYUlBc2dDeWdDQ0RZQ0VBc2dDeUFMS0FJUU5nSUlBMEFDUUNBTElBNFFiRFlDQUNBTFFRaHFJQXNRVzBVTkFDQUFJQXRCcUFScUVEWkZEUUFnQUJBaElBc29BZ2dvQWdCSERRQWdBQkFsR2lBTFFRaHFFSlVCREFFTEN5QVNSUTBESUFzZ0RoQnNOZ0lBSUF0QkNHb2dDeEJiUlEwRElBVWdCU2dDQUVFRWNqWUNBRUVBSVFBTUFnc0RRQUpBSUFBZ0MwR29CR29RTmtVTkFBSi9JQWRCZ0JBZ0FCQWhJZ0lRVGdSQUlBa29BZ0FpQXlBTEtBS2tCRVlFUUNBSUlBa2dDMEdrQkdvUWhnRWdDU2dDQUNFREN5QUpJQU5CQkdvMkFnQWdBeUFDTmdJQUlBUkJBV29NQVFzZ0VSQUpSU0FFUlhJTkFTQUNJQXNvQW5CSERRRWdDeWdDaEFFaUFpQUxLQUtBQVVZRVFDQVBJQXRCaEFGcUlBdEJnQUZxRUlZQklBc29Bb1FCSVFJTElBc2dBa0VFYWpZQ2hBRWdBaUFFTmdJQVFRQUxJUVFnQUJBbEdnd0JDd3NnQkVVZ0N5Z0NoQUVpQWlBUEtBSUFSbkpGQkVBZ0N5Z0NnQUVnQWtZRVFDQVBJQXRCaEFGcUlBdEJnQUZxRUlZQklBc29Bb1FCSVFJTElBc2dBa0VFYWpZQ2hBRWdBaUFFTmdJQUN3SkFJQXNvQWh4QkFFd05BQUpBSUFBZ0MwR29CR29RS0VVRVFDQUFFQ0VnQ3lnQ2RFWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3dOQUlBQVFKUm9nQ3lnQ0hFRUFUQTBCQWtBZ0FDQUxRYWdFYWhBb1JRUkFJQWRCZ0JBZ0FCQWhFRTROQVFzZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3RUN5QUpLQUlBSUFzb0FxUUVSZ1JBSUFnZ0NTQUxRYVFFYWhDR0FRc2dBQkFoSVFJZ0NTQUpLQUlBSWdOQkJHbzJBZ0FnQXlBQ05nSUFJQXNnQ3lnQ0hFRUJhellDSEF3QUN3QUxJQW9oQWlBSUtBSUFJQWtvQWdCSERRTWdCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0JDd0pBSUFwRkRRQkJBU0VFQTBBZ0NoQUpJQVJORFFFQ1FDQUFJQXRCcUFScUVDaEZCRUFnQUJBaElBb2dCQkN4QVNnQ0FFWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBQUVDVWFJQVJCQVdvaEJBd0FDd0FMUVFFaEFDQVBLQUlBSUFzb0FvUUJSZzBBUVFBaEFDQUxRUUEyQWhBZ0VTQVBLQUlBSUFzb0FvUUJJQXRCRUdvUUxTQUxLQUlRQkVBZ0JTQUZLQUlBUVFSeU5nSUFEQUVMUVFFaEFBc2dFQkFLR2lBTkVBb2FJQXdRQ2hvZ0RoQUtHaUFSRUFvYUlBOFFIU0FMUWJBRWFpUUFJQUFQQ3lBS0lRSUxJQUZCQVdvaEFRd0FDd0FMSHdBZ0FDQUJFS1lCRUNjZ0FSQ1dBU2dDQUNFQklBQVFsZ0VnQVRZQ0FBczBBUUYvSXdCQkVHc2lBaVFBSUFJZ0FDZ0NBRFlDQ0NBQ0lBSW9BZ2dnQVdvMkFnZ2dBaWdDQ0NFQUlBSkJFR29rQUNBQUN3b0FJQUJCaUlnQkVHUUxDZ0FnQUVHUWlBRVFaQXZCQVFFR2Z5TUFRUkJySWdRa0FDQUFFSllCS0FJQUlRVUNmeUFDS0FJQUlBQW9BZ0JySWdOQi8vLy8vd2RKQkVBZ0EwRUJkQXdCQzBGL0N5SURRUUVnQXhzaEF5QUJLQUlBSVFZZ0FDZ0NBQ0VISUFWQk5rWUVmMEVBQlNBQUtBSUFDeUFERUo0QklnZ0VRQ0FGUVRaSEJFQWdBQkNtQVJvTElBUkJOVFlDQkNBQUlBUkJDR29nQ0NBRVFRUnFFQjRpQlJDbEFpQUZFQjBnQVNBQUtBSUFJQVlnQjJ0cU5nSUFJQUlnQXlBQUtBSUFhallDQUNBRVFSQnFKQUFQQ3hBWEFBc2xBUUYvSUFFb0FnQVEvd0pCR0hSQkdIVWhBaUFBSUFFb0FnQTJBZ1FnQUNBQ09nQUFDNThRQVFwL0l3QkJzQVJySWdza0FDQUxJQW8yQXFRRUlBc2dBVFlDcUFRZ0MwRTJOZ0pvSUFzZ0MwR0lBV29nQzBHUUFXb2dDMEhvQUdvaUFSQWVJZzhvQWdBaUNqWUNoQUVnQ3lBS1FaQURhallDZ0FFZ0FSQVJJUkVnQzBIWUFHb1FFU0VPSUF0QnlBQnFFQkVoRENBTFFUaHFFQkVoRFNBTFFTaHFFQkVoRUNNQVFSQnJJZ0VrQUNBTEFuOGdBZ1JBSUFFZ0F4Q29BaUlDRUdrZ0N5QUJLQUlBTmdCNElBRWdBaEJvSUEwZ0FSQXdJQUVRQ2hvZ0FTQUNFRW9nRENBQkVEQWdBUkFLR2lBTElBSVFTRG9BZHlBTElBSVFPRG9BZGlBQklBSVFOeUFSSUFFUU1DQUJFQW9hSUFFZ0FoQkxJQTRnQVJBd0lBRVFDaG9nQWhCbkRBRUxJQUVnQXhDbkFpSUNFR2tnQ3lBQktBSUFOZ0I0SUFFZ0FoQm9JQTBnQVJBd0lBRVFDaG9nQVNBQ0VFb2dEQ0FCRURBZ0FSQUtHaUFMSUFJUVNEb0FkeUFMSUFJUU9Eb0FkaUFCSUFJUU55QVJJQUVRTUNBQkVBb2FJQUVnQWhCTElBNGdBUkF3SUFFUUNob2dBaEJuQ3pZQ0pDQUJRUkJxSkFBZ0NTQUlLQUlBTmdJQUlBUkJnQVJ4SWhKQkNYWWhFMEVBSVFGQkFDRUNBMEFnQWlFS0FrQUNRQUpBQWtBZ0FVRUVSZzBBSUFBZ0MwR29CR29RTVVVTkFFRUFJUVFDUUFKQUFrQUNRQUpBQWtBZ0MwSDRBR29nQVdvc0FBQU9CUUVBQkFNRkNRc2dBVUVEUmcwSElBZEJnTUFBSUFBUUh4QkVCRUFnQzBFWWFpQUFFS29DSUJBZ0N5d0FHQkNoQVF3Q0N5QUZJQVVvQWdCQkJISTJBZ0JCQUNFQURBWUxJQUZCQTBZTkJnc0RRQ0FBSUF0QnFBUnFFREZGRFFZZ0IwR0F3QUFnQUJBZkVFUkZEUVlnQzBFWWFpQUFFS29DSUJBZ0N5d0FHQkNoQVF3QUN3QUxJQXdRQ1VFQUlBMFFDV3RHRFFRQ1FDQU1FQWtFUUNBTkVBa05BUXNnREJBSklRTWdBQkFmSVFJZ0F3UkFJQXhCQUJBTExRQUFJQUpCL3dGeFJnUkFJQUFRSWhvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dJQ3lBR1FRRTZBQUFNQmdzZ0RVRUFFQXN0QUFBZ0FrSC9BWEZIRFFVZ0FCQWlHaUFHUVFFNkFBQWdEU0FLSUEwUUNVRUJTeHNoQWd3R0N5QUFFQjlCL3dGeElBeEJBQkFMTFFBQVJnUkFJQUFRSWhvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dHQ3lBQUVCOUIvd0Z4SUExQkFCQUxMUUFBUmdSQUlBQVFJaG9nQmtFQk9nQUFJQTBnQ2lBTkVBbEJBVXNiSVFJTUJnc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0RDeUFLSUFGQkFrbHlSUVJBUVFBaEFpQVRJQUZCQWtZZ0N5MEFlMEVBUjNGeVJRMEZDeUFMSUE0UVFEWUNFQ0FMUVJocUlBdEJFR29RcUFFaEFnSkFJQUZGRFFBZ0FTQUxhaTBBZDBFQlN3MEFBMEFDUUNBTElBNFFiallDRUNBQ0lBdEJFR29RVzBVTkFDQUhRWURBQUNBQ0tBSUFMQUFBRUVSRkRRQWdBaENYQVF3QkN3c2dDeUFPRUVBMkFoQWdBaWdDQUNBTEtBSVFheUlDSUJBUUNVMEVRQ0FMSUJBUWJqWUNFQ0FMUVJCcVFRQWdBbXNRcGdJaEF5QVFFRzRoQkNBT0VFQWhGQ01BUVNCcklnSWtBQ0FDSUFRMkFoQWdBaUFETmdJWUlBSWdGRFlDQ0FOQUFrQWdBa0VZYWlBQ1FSQnFFRnNpQTBVTkFDQUNLQUlZTFFBQUlBSW9BZ2d0QUFCSERRQWdBa0VZYWhDWEFTQUNRUWhxRUpjQkRBRUxDeUFDUVNCcUpBQWdBMEVCY3cwQkN5QUxJQTRRUURZQ0NDQUxRUkJxSUF0QkNHb1FxQUVhSUFzZ0N5Z0NFRFlDR0FzZ0N5QUxLQUlZTmdJUUEwQUNRQ0FMSUE0UWJqWUNDQ0FMUVJCcUlBdEJDR29RVzBVTkFDQUFJQXRCcUFScUVERkZEUUFnQUJBZlFmOEJjU0FMS0FJUUxRQUFSdzBBSUFBUUlob2dDMEVRYWhDWEFRd0JDd3NnRWtVTkF5QUxJQTRRYmpZQ0NDQUxRUkJxSUF0QkNHb1FXMFVOQXlBRklBVW9BZ0JCQkhJMkFnQkJBQ0VBREFJTEEwQUNRQ0FBSUF0QnFBUnFFREZGRFFBQ2Z5QUhRWUFRSUFBUUh5SUNFRVFFUUNBSktBSUFJZ01nQ3lnQ3BBUkdCRUFnQ0NBSklBdEJwQVJxRUtrQ0lBa29BZ0FoQXdzZ0NTQURRUUZxTmdJQUlBTWdBam9BQUNBRVFRRnFEQUVMSUJFUUNVVWdCRVZ5RFFFZ0N5MEFkaUFDUWY4QmNVY05BU0FMS0FLRUFTSUNJQXNvQW9BQlJnUkFJQThnQzBHRUFXb2dDMEdBQVdvUWhnRWdDeWdDaEFFaEFnc2dDeUFDUVFScU5nS0VBU0FDSUFRMkFnQkJBQXNoQkNBQUVDSWFEQUVMQ3lBRVJTQUxLQUtFQVNJQ0lBOG9BZ0JHY2tVRVFDQUxLQUtBQVNBQ1JnUkFJQThnQzBHRUFXb2dDMEdBQVdvUWhnRWdDeWdDaEFFaEFnc2dDeUFDUVFScU5nS0VBU0FDSUFRMkFnQUxBa0FnQ3lnQ0pFRUFUQTBBQWtBZ0FDQUxRYWdFYWhBbVJRUkFJQUFRSDBIL0FYRWdDeTBBZDBZTkFRc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0RDd05BSUFBUUlob2dDeWdDSkVFQVRBMEJBa0FnQUNBTFFhZ0VhaEFtUlFSQUlBZEJnQkFnQUJBZkVFUU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdFQ3lBSktBSUFJQXNvQXFRRVJnUkFJQWdnQ1NBTFFhUUVhaENwQWdzZ0FCQWZJUUlnQ1NBSktBSUFJZ05CQVdvMkFnQWdBeUFDT2dBQUlBc2dDeWdDSkVFQmF6WUNKQXdBQ3dBTElBb2hBaUFJS0FJQUlBa29BZ0JIRFFNZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3QkN3SkFJQXBGRFFCQkFTRUVBMEFnQ2hBSklBUk5EUUVDUUNBQUlBdEJxQVJxRUNaRkJFQWdBQkFmUWY4QmNTQUtJQVFRQ3kwQUFFWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBQUVDSWFJQVJCQVdvaEJBd0FDd0FMUVFFaEFDQVBLQUlBSUFzb0FvUUJSZzBBUVFBaEFDQUxRUUEyQWhnZ0VTQVBLQUlBSUFzb0FvUUJJQXRCR0dvUUxTQUxLQUlZQkVBZ0JTQUZLQUlBUVFSeU5nSUFEQUVMUVFFaEFBc2dFQkFLR2lBTkVBb2FJQXdRQ2hvZ0RoQUtHaUFSRUFvYUlBOFFIU0FMUWJBRWFpUUFJQUFQQ3lBS0lRSUxJQUZCQVdvaEFRd0FDd0FMREFBZ0FFRUJRUzBRdXdJYUN3d0FJQUJCQVVFdEVPOEJHZ3NLQUNBQklBQnJRUUoxQ3dRQUlBRUxOUUVCZnlNQVFSQnJJZ0lrQUNBQ0lBQXRBQUE2QUE4Z0FDQUJMUUFBT2dBQUlBRWdBa0VQYWkwQUFEb0FBQ0FDUVJCcUpBQUxaQUVCZnlNQVFSQnJJZ1lrQUNBR1FRQTZBQThnQmlBRk9nQU9JQVlnQkRvQURTQUdRU1U2QUF3Z0JRUkFJQVpCRFdvZ0JrRU9haEN3QWdzZ0FpQUJJQUVnQWlnQ0FCRHVBaUFHUVF4cUlBTWdBQ2dDQUJBQklBRnFOZ0lBSUFaQkVHb2tBQXZ5QVFFRmZ5TUFRUkJySWdNa0FDQUNRZ0EzQUFBZ0FrSUFOd0FJSUFNZ0FTa0FDRGNEQ0NBRElBRXBBQUEzQXdBRFFDQUFJQVZxSVFaQkFDRUJBMEFnQmkwQUFFRUhJQUZyZGtFQmNRUkFJQUlnQXhDZEFRc2dBeTBBRHlFSElBTkJER29pQkNBRExRQUxRUjkwSUFRUWxBRkJBWFp5RUpNQklBTkJDR29pQkNBRExRQUhRUjkwSUFRUWxBRkJBWFp5RUpNQklBTkJCR29pQkNBRExRQURRUjkwSUFRUWxBRkJBWFp5RUpNQklBTWdBeENVQVVFQmRoQ1RBU0FIUVFGeEJFQWdBeUFETFFBQVFlRUJjem9BQUFzZ0FVRUJhaUlCUVFoSERRQUxJQVZCQVdvaUJVRVFSdzBBQ3lBRFFSQnFKQUFMUVFBZ0FTQUNJQU1nQkVFRUVGZ2hBU0FETFFBQVFRUnhSUVJBSUFBZ0FVSFFEMm9nQVVIc0Rtb2dBU0FCUWVRQVNCc2dBVUhGQUVnYlFld09hellDQUFzTFFBQWdBaUFESUFCQkNHb2dBQ2dDQ0NnQ0JCRUFBQ0lBSUFCQm9BSnFJQVVnQkVFQUVMSUJJQUJySWdCQm53Sk1CRUFnQVNBQVFReHRRUXh2TmdJQUN3dEFBQ0FDSUFNZ0FFRUlhaUFBS0FJSUtBSUFFUUFBSWdBZ0FFR29BV29nQlNBRVFRQVFzZ0VnQUdzaUFFR25BVXdFUUNBQklBQkJERzFCQjI4MkFnQUxDMEVBSUFFZ0FpQURJQVJCQkJCWklRRWdBeTBBQUVFRWNVVUVRQ0FBSUFGQjBBOXFJQUZCN0E1cUlBRWdBVUhrQUVnYklBRkJ4UUJJRzBIc0RtczJBZ0FMQzBBQUlBSWdBeUFBUVFocUlBQW9BZ2dvQWdRUkFBQWlBQ0FBUWFBQ2FpQUZJQVJCQUJDMEFTQUFheUlBUVo4Q1RBUkFJQUVnQUVFTWJVRU1iellDQUFzTFFBQWdBaUFESUFCQkNHb2dBQ2dDQ0NnQ0FCRUFBQ0lBSUFCQnFBRnFJQVVnQkVFQUVMUUJJQUJySWdCQnB3Rk1CRUFnQVNBQVFReHRRUWR2TmdJQUN3c0VBRUVDQzY4RkFRcC9Jd0JCRUdzaUNTUUFJQVlRT3lFS0lBa2dCaENNQVNJTkVEY2dCU0FETmdJQUFrQUNRQ0FBSWdjdEFBQWlCa0VyYXc0REFBRUFBUXNnQ2lBR1FSaDBRUmgxRUQwaEJpQUZJQVVvQWdBaUIwRUVhallDQUNBSElBWTJBZ0FnQUVFQmFpRUhDd0pBQWtBZ0FpQUhJZ1pyUVFGTURRQWdCeTBBQUVFd1J3MEFJQWN0QUFGQklISkIrQUJIRFFBZ0NrRXdFRDBoQmlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFZMkFnQWdDaUFITEFBQkVEMGhCaUFGSUFVb0FnQWlDRUVFYWpZQ0FDQUlJQVkyQWdBZ0IwRUNhaUlISVFZRFFDQUNJQVpORFFJZ0Jpd0FBQkFXRU5nQ1JRMENJQVpCQVdvaEJnd0FDd0FMQTBBZ0FpQUdUUTBCSUFZc0FBQWhDQkFXR2lBSUVFVkZEUUVnQmtFQmFpRUdEQUFMQUFzQ1FDQUpFRWtFUUNBS0lBY2dCaUFGS0FJQUVHTWdCU0FGS0FJQUlBWWdCMnRCQW5ScU5nSUFEQUVMSUFjZ0JoQjVJQTBRT0NFT0lBY2hDQU5BSUFZZ0NFMEVRQ0FESUFjZ0FHdEJBblJxSUFVb0FnQVFyUUVGQWtBZ0NTQUxFQXNzQUFCQkFFd05BQ0FNSUFrZ0N4QUxMQUFBUncwQUlBVWdCU2dDQUNJTVFRUnFOZ0lBSUF3Z0RqWUNBQ0FMSUFzZ0NSQUpRUUZyU1dvaEMwRUFJUXdMSUFvZ0NDd0FBQkE5SVE4Z0JTQUZLQUlBSWhCQkJHbzJBZ0FnRUNBUE5nSUFJQWhCQVdvaENDQU1RUUZxSVF3TUFRc0xDd0pBQWtBRFFDQUNJQVpORFFFZ0JpMEFBQ0lIUVM1SEJFQWdDaUFIUVJoMFFSaDFFRDBoQnlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFjMkFnQWdCa0VCYWlFR0RBRUxDeUFORUVnaEJ5QUZJQVVvQWdBaUMwRUVhaUlJTmdJQUlBc2dCellDQUNBR1FRRnFJUVlNQVFzZ0JTZ0NBQ0VJQ3lBS0lBWWdBaUFJRUdNZ0JTQUZLQUlBSUFJZ0JtdEJBblJxSWdVMkFnQWdCQ0FGSUFNZ0FTQUFhMEVDZEdvZ0FTQUNSaHMyQWdBZ0NSQUtHaUFKUVJCcUpBQUx1QUVCQlg4akFFRVFheUlISkFBakFFRVFheUlGSkFBQ1FDQUJRZS8vLy84RFRRUkFBa0FnQVVFQlRRUkFJQUFnQVJBNklBQWhCZ3dCQ3lBQUlBQWdBUkNDQVVFQmFpSURFSUVCSWdZUVRTQUFJQU1RVENBQUlBRVFPUXNnQmlFRUlBRWlBd1IvSUFNRVFBTkFJQVFnQWpZQ0FDQUVRUVJxSVFRZ0EwRUJheUlERFFBTEMwRUFCU0FFQ3hvZ0JVRUFOZ0lNSUFZZ0FVRUNkR29nQlVFTWFoQXpJQVZCRUdva0FBd0JDeEFYQUFzZ0IwRVFhaVFBSUFBTG1RVUJDbjhqQUVFUWF5SUpKQUFnQmhBeUlRb2dDU0FHRUk0QklnMFFOeUFGSUFNMkFnQUNRQUpBSUFBaUJ5MEFBQ0lHUVN0ckRnTUFBUUFCQ3lBS0lBWkJHSFJCR0hVUUtTRUdJQVVnQlNnQ0FDSUhRUUZxTmdJQUlBY2dCam9BQUNBQVFRRnFJUWNMQWtBQ1FDQUNJQWNpQm10QkFVd05BQ0FITFFBQVFUQkhEUUFnQnkwQUFVRWdja0g0QUVjTkFDQUtRVEFRS1NFR0lBVWdCU2dDQUNJSVFRRnFOZ0lBSUFnZ0Jqb0FBQ0FLSUFjc0FBRVFLU0VHSUFVZ0JTZ0NBQ0lJUVFGcU5nSUFJQWdnQmpvQUFDQUhRUUpxSWdjaEJnTkFJQUlnQmswTkFpQUdMQUFBRUJZUTJBSkZEUUlnQmtFQmFpRUdEQUFMQUFzRFFDQUNJQVpORFFFZ0Jpd0FBQ0VJRUJZYUlBZ1FSVVVOQVNBR1FRRnFJUVlNQUFzQUN3SkFJQWtRU1FSQUlBb2dCeUFHSUFVb0FnQVFieUFGSUFVb0FnQWdCaUFIYTJvMkFnQU1BUXNnQnlBR0VIa2dEUkE0SVE0Z0J5RUlBMEFnQmlBSVRRUkFJQU1nQnlBQWEyb2dCU2dDQUJCNUJRSkFJQWtnREJBTExBQUFRUUJNRFFBZ0N5QUpJQXdRQ3l3QUFFY05BQ0FGSUFVb0FnQWlDMEVCYWpZQ0FDQUxJQTQ2QUFBZ0RDQU1JQWtRQ1VFQmEwbHFJUXhCQUNFTEN5QUtJQWdzQUFBUUtTRVBJQVVnQlNnQ0FDSVFRUUZxTmdJQUlCQWdEem9BQUNBSVFRRnFJUWdnQzBFQmFpRUxEQUVMQ3dzRFFBSkFJQUlnQmtzRVFDQUdMUUFBSWdkQkxrY05BU0FORUVnaEJ5QUZJQVVvQWdBaUNFRUJhallDQUNBSUlBYzZBQUFnQmtFQmFpRUdDeUFLSUFZZ0FpQUZLQUlBRUc4Z0JTQUZLQUlBSUFJZ0JtdHFJZ1UyQWdBZ0JDQUZJQU1nQVNBQWEyb2dBU0FDUmhzMkFnQWdDUkFLR2lBSlFSQnFKQUFQQ3lBS0lBZEJHSFJCR0hVUUtTRUhJQVVnQlNnQ0FDSUlRUUZxTmdJQUlBZ2dCem9BQUNBR1FRRnFJUVlNQUFzQUMvUUJBUWwvSUFFUURTRUVJQUVRQ1NFSEl3QkJJR3NpQVNRQUFrQWdBVUVZYWlBQUVJUURJZ2d0QUFCRkRRQWdBVUVJYWlBQUVNQUJJUWtnQUNBQUtBSUFRUXhyS0FJQWFpSUZLQUlFSVFvQ1FFRi9JQVVpQWlnQ1RCQmVSUVJBSUFJb0Frd2hBZ3dCQ3lBQ0FuOGpBRUVRYXlJREpBQWdBMEVJYWlJR0lBSVFEeUFHRURKQklCQXBJUUlnQmhBT0lBTkJFR29rQUNBQ0N6WUNUQXNnQWtFWWRFRVlkU0VDSUFFZ0NTZ0NBQ0FFSUFRZ0Iyb2lBeUFFSUFwQnNBRnhRU0JHR3lBRElBVWdBaEJXTmdJUUlBRW9BaEFOQUNBQUlBQW9BZ0JCREdzb0FnQnFRUVVRZ0FFTElBZ1FnZ01nQVVFZ2FpUUFDellCQW45QjlBRVFHU0lDQkg4Z0FpQUFJQUZCQTNRUWlRTWlBRUVBU0FSQUlBSVFFRUVBRHdzZ0FpQUFOZ0x3QVNBQ0JTQURDd3VkQXdFQ2Z5TUFRZUFDYXlJQUpBQWdBQ0FDTmdMUUFpQUFJQUUyQXRnQ0lBTVFYQ0VHSUFNZ0FFSGdBV29RbVFFaEJ5QUFRZEFCYWlBRElBQkJ6QUpxRUpnQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQjJBSnFJQUJCMEFKcUVEWkZEUUFnQUNnQ3ZBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJ3QkN5QUFRZGdDYWhBaElBWWdBaUFBUWJ3QmFpQUFRUWhxSUFBb0Fzd0NJQUJCMEFGcUlBQkJFR29nQUVFTWFpQUhFSXNCRFFBZ0FFSFlBbW9RSlJvTUFRc0xBa0FnQUVIUUFXb1FDVVVOQUNBQUtBSU1JZ01nQUVFUWFtdEJud0ZLRFFBZ0FDQURRUVJxTmdJTUlBTWdBQ2dDQ0RZQ0FBc2dCU0FDSUFBb0Fyd0JJQVFnQmhESEFqWUNBQ0FBUWRBQmFpQUFRUkJxSUFBb0Fnd2dCQkF0SUFCQjJBSnFJQUJCMEFKcUVDZ0VRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9BdGdDSVFJZ0FSQUtHaUFBUWRBQmFoQUtHaUFBUWVBQ2FpUUFJQUlMVkFFQ2Z5TUFRUkJySWdNa0FDQURRUUkyQWd3Z0FpQUJFQWtpQkVzRVFCQVhBQXNnQVJBTklRRWdBeUFFSUFKck5nSUVJQUFnQVNBQ2FpQURRUXhxSUFOQkJHb1FvZ0VvQWdBUTlnRWdBMEVRYWlRQUMwSUJBWDhqQUVFUWF5SURKQUFnQXlBQk5nSU1JQU1nQWpZQ0NDQURJQU5CREdvUVVpRUJJQUJCOHhzZ0F5Z0NDQkRpQWlFQUlBRVFVU0FEUVJCcUpBQWdBQXNZQUNBQUlBQW9BZ0JCREdzb0FnQnFRUUlSQUFBYUlBQUxzUUlDQkg0RmZ5TUFRU0JySWdna0FBSkFBa0FDUUNBQklBSkhCRUJCMUlFQktBSUFJUXhCMUlFQlFRQTJBZ0FqQUVFUWF5SUpKQUFRRmhvakFFRVFheUlLSkFBakFFRVFheUlMSkFBZ0N5QUJJQWhCSEdwQkFoRFlBU0FMS1FNQUlRUWdDaUFMS1FNSU53TUlJQW9nQkRjREFDQUxRUkJxSkFBZ0Npa0RBQ0VFSUFrZ0Npa0RDRGNEQ0NBSklBUTNBd0FnQ2tFUWFpUUFJQWtwQXdBaEJDQUlJQWtwQXdnM0F4QWdDQ0FFTndNSUlBbEJFR29rQUNBSUtRTVFJUVFnQ0NrRENDRUZRZFNCQVNnQ0FDSUJSUTBCSUFnb0Fod2dBa2NOQWlBRklRWWdCQ0VISUFGQnhBQkhEUU1NQWdzZ0EwRUVOZ0lBREFJTFFkU0JBU0FNTmdJQUlBZ29BaHdnQWtZTkFRc2dBMEVFTmdJQUlBWWhCU0FISVFRTElBQWdCVGNEQUNBQUlBUTNBd2dnQ0VFZ2FpUUFDN1lCQWdKOEEzOGpBRUVRYXlJRkpBQUNRQUpBQWtBZ0FDQUJSd1JBUWRTQkFTZ0NBQ0VIUWRTQkFVRUFOZ0lBRUJZYUl3QkJFR3NpQmlRQUlBWWdBQ0FGUVF4cVFRRVEyQUVnQmlrREFDQUdLUU1JRU4wQklRTWdCa0VRYWlRQVFkU0JBU2dDQUNJQVJRMEJJQVVvQWd3Z0FVY05BaUFESVFRZ0FFSEVBRWNOQXd3Q0N5QUNRUVEyQWdBTUFndEIxSUVCSUFjMkFnQWdCU2dDRENBQlJnMEJDeUFDUVFRMkFnQWdCQ0VEQ3lBRlFSQnFKQUFnQXd1MkFRSUNmUU4vSXdCQkVHc2lCU1FBQWtBQ1FBSkFJQUFnQVVjRVFFSFVnUUVvQWdBaEIwSFVnUUZCQURZQ0FCQVdHaU1BUVJCcklnWWtBQ0FHSUFBZ0JVRU1ha0VBRU5nQklBWXBBd0FnQmlrRENCRGtBaUVESUFaQkVHb2tBRUhVZ1FFb0FnQWlBRVVOQVNBRktBSU1JQUZIRFFJZ0F5RUVJQUJCeEFCSERRTU1BZ3NnQWtFRU5nSUFEQUlMUWRTQkFTQUhOZ0lBSUFVb0Fnd2dBVVlOQVFzZ0FrRUVOZ0lBSUFRaEF3c2dCVUVRYWlRQUlBTUx4Z0VDQTM4QmZpTUFRUkJySWdRa0FBSitBa0FDUUNBQUlBRkhCRUFDUUFKQUlBQXRBQUFpQlVFdFJ3MEFJQUJCQVdvaUFDQUJSdzBBREFFTFFkU0JBU2dDQUNFR1FkU0JBVUVBTmdJQUlBQWdCRUVNYWlBREVCWVEyUUVoQndKQVFkU0JBU2dDQUNJQUJFQWdCQ2dDRENBQlJ3MEJJQUJCeEFCR0RRUU1CUXRCMUlFQklBWTJBZ0FnQkNnQ0RDQUJSZzBFQ3dzTElBSkJCRFlDQUVJQURBSUxJQUpCQkRZQ0FFSi9EQUVMUWdBZ0IzMGdCeUFGUVMxR0d3c2hCeUFFUVJCcUpBQWdCd3ZYQVFJRGZ3RitJd0JCRUdzaUJDUUFBbjhDUUFKQUFrQWdBQ0FCUndSQUFrQUNRQ0FBTFFBQUlnVkJMVWNOQUNBQVFRRnFJZ0FnQVVjTkFBd0JDMEhVZ1FFb0FnQWhCa0hVZ1FGQkFEWUNBQ0FBSUFSQkRHb2dBeEFXRU5rQklRY0NRRUhVZ1FFb0FnQWlBQVJBSUFRb0Fnd2dBVWNOQVNBQVFjUUFSZzBGREFRTFFkU0JBU0FHTmdJQUlBUW9BZ3dnQVVZTkF3c0xDeUFDUVFRMkFnQkJBQXdEQ3lBSFF2Ly8vLzhQV0EwQkN5QUNRUVEyQWdCQmZ3d0JDMEVBSUFlbklnQnJJQUFnQlVFdFJoc0xJUUFnQkVFUWFpUUFJQUFMa2dNQkFYOGpBRUdRQW1zaUFDUUFJQUFnQWpZQ2dBSWdBQ0FCTmdLSUFpQURFRndoQmlBQVFkQUJhaUFESUFCQi93RnFFSm9CSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCaUFKcUlBQkJnQUpxRURGRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFZZ0NhaEFmSUFZZ0FpQUFRYndCYWlBQVFRaHFJQUFzQVA4QklBQkIwQUZxSUFCQkVHb2dBRUVNYWtIZzBBQVFqUUVOQUNBQVFZZ0NhaEFpR2d3QkN3c0NRQ0FBUWRBQmFoQUpSUTBBSUFBb0Fnd2lBeUFBUVJCcWEwR2ZBVW9OQUNBQUlBTkJCR28yQWd3Z0F5QUFLQUlJTmdJQUN5QUZJQUlnQUNnQ3ZBRWdCQ0FHRU1jQ05nSUFJQUJCMEFGcUlBQkJFR29nQUNnQ0RDQUVFQzBnQUVHSUFtb2dBRUdBQW1vUUpnUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0NpQUloQWlBQkVBb2FJQUJCMEFGcUVBb2FJQUJCa0FKcUpBQWdBZ3ZjQVFJRGZ3RitJd0JCRUdzaUJDUUFBbjhDUUFKQUFrQWdBQ0FCUndSQUFrQUNRQ0FBTFFBQUlnVkJMVWNOQUNBQVFRRnFJZ0FnQVVjTkFBd0JDMEhVZ1FFb0FnQWhCa0hVZ1FGQkFEWUNBQ0FBSUFSQkRHb2dBeEFXRU5rQklRY0NRRUhVZ1FFb0FnQWlBQVJBSUFRb0Fnd2dBVWNOQVNBQVFjUUFSZzBGREFRTFFkU0JBU0FHTmdJQUlBUW9BZ3dnQVVZTkF3c0xDeUFDUVFRMkFnQkJBQXdEQ3lBSFF2Ly9BMWdOQVFzZ0FrRUVOZ0lBUWYvL0F3d0JDMEVBSUFlbklnQnJJQUFnQlVFdFJoc0xJUUFnQkVFUWFpUUFJQUJCLy84RGNRdTJBUUlCZmdKL0l3QkJFR3NpQlNRQUFrQUNRQ0FBSUFGSEJFQkIxSUVCS0FJQUlRWkIxSUVCUVFBMkFnQWdBQ0FGUVF4cUlBTVFGaERQQWlFRUFrQkIxSUVCS0FJQUlnQUVRQ0FGS0FJTUlBRkhEUUVnQUVIRUFFWU5Bd3dFQzBIVWdRRWdCallDQUNBRktBSU1JQUZHRFFNTEN5QUNRUVEyQWdCQ0FDRUVEQUVMSUFKQkJEWUNBQ0FFUWdCVkJFQkMvLy8vLy8vLy8vLy9BQ0VFREFFTFFvQ0FnSUNBZ0lDQWdIOGhCQXNnQlVFUWFpUUFJQVFMd3dFQ0FuOEJmaU1BUVJCcklnUWtBQUovQWtBQ1FDQUFJQUZIQkVCQjFJRUJLQUlBSVFWQjFJRUJRUUEyQWdBZ0FDQUVRUXhxSUFNUUZoRFBBaUVHQWtCQjFJRUJLQUlBSWdBRVFDQUVLQUlNSUFGSERRRWdBRUhFQUVZTkJBd0RDMEhVZ1FFZ0JUWUNBQ0FFS0FJTUlBRkdEUUlMQ3lBQ1FRUTJBZ0JCQUF3Q0N5QUdRb0NBZ0lCNFV5QUdRdi8vLy84SFZYSU5BQ0FHcHd3QkN5QUNRUVEyQWdCQi8vLy8vd2NnQmtJQVZRMEFHa0dBZ0lDQWVBc2hBQ0FFUVJCcUpBQWdBQXZtQWdFRWZ5QUFRVUJySWdOQnZDZzJBZ0FnQTBIMElUWUNBQ0FBUWZ3bE5nSUFJQU5CcENZMkFnQWdBRUdRSmpZQ0NDQUFRYlFtS0FJQUlnRTJBZ0FnQUNBQlFReHJLQUlBYWtHNEppZ0NBRFlDQUNBQVFRQTJBZ1FnQUNBQUtBSUFRUXhyS0FJQWFpSUNRUUEyQWhRZ0FpQUFRUXhxSWdFMkFoZ2dBa0VBTmdJTUlBSkNncUNBZ09BQU53SUVJQUlnQVVVMkFoQWdBa0VnYWtFQVFTZ1FSaG9nQWtFY2FoQ1BBaUFDUVFBMkFrZ2dBa0YvTmdKTUlBQkJDR29pQWtHOEppZ0NBQ0lFTmdJQUlBSWdCRUVNYXlnQ0FHcEJ3Q1lvQWdBMkFnQWdBRUd3SmlnQ0FDSUNOZ0lBSUFBZ0FrRU1heWdDQUdwQnhDWW9BZ0EyQWdBZ0FFSElKaWdDQURZQ0NDQUFRZndsTmdJQUlBTkJwQ1kyQWdBZ0FFR1FKallDQ0NBQlFid2ZOZ0lBSUFGQkJHb1Fqd0lnQVVJQU53SVlJQUZDQURjQ0VDQUJRZ0EzQWdnZ0FVRzBJVFlDQUNBQlFTQnFFQkVhSUFGQkdEWUNNQ0FCUVFBMkFpd2dBQXNLQUNBQklBQnJRUXh0QzVRQkFRUi9Jd0JCRUdzaUJTUUFJQUVnQWhDaUFpSUVRZS8vLy84RFRRUkFBa0FnQkVFQlRRUkFJQUFnQkJBNklBQWhBd3dCQ3lBQUlBQWdCQkNDQVVFQmFpSUdFSUVCSWdNUVRTQUFJQVlRVENBQUlBUVFPUXNEUUNBQklBSkhCRUFnQXlBQkVETWdBMEVFYWlFRElBRkJCR29oQVF3QkN3c2dCVUVBTmdJTUlBTWdCVUVNYWhBeklBVkJFR29rQUE4TEVCY0FDeFlBSUFBZ0FTQUNRb0NBZ0lDQWdJQ0FnSDhRMEFJTGtnUUNCMzhFZmlNQVFSQnJJZ2drQUFKQUFrQUNRQ0FDUVNSTUJFQWdBQzBBQUNJRkRRRWdBQ0VFREFJTFFkU0JBVUVjTmdJQVFnQWhBd3dDQ3lBQUlRUUNRQU5BSUFWQkdIUkJHSFVRY0VVTkFTQUVMUUFCSVFVZ0JFRUJhaUVFSUFVTkFBc01BUXNDUUNBRUxRQUFJZ1ZCSzJzT0F3QUJBQUVMUVg5QkFDQUZRUzFHR3lFSElBUkJBV29oQkFzQ2Z3SkFJQUpCYjNFTkFDQUVMUUFBUVRCSERRQkJBU0VKSUFRdEFBRkIzd0Z4UWRnQVJnUkFJQVJCQW1vaEJFRVFEQUlMSUFSQkFXb2hCQ0FDUVFnZ0Foc01BUXNnQWtFS0lBSWJDeUlLckNFTVFRQWhBZ05BQWtCQlVDRUZBa0FnQkN3QUFDSUdRVEJyUWY4QmNVRUtTUTBBUWFsL0lRVWdCa0hoQUd0Qi93RnhRUnBKRFFCQlNTRUZJQVpCd1FCclFmOEJjVUVaU3cwQkN5QUZJQVpxSWdZZ0NrNE5BQ0FJSUF4Q0FDQUxRZ0FRSzBFQklRVUNRQ0FJS1FNSVFnQlNEUUFnQ3lBTWZpSU5JQWFzSWc1Q2Y0VldEUUFnRFNBT2ZDRUxRUUVoQ1NBQ0lRVUxJQVJCQVdvaEJDQUZJUUlNQVFzTElBRUVRQ0FCSUFRZ0FDQUpHellDQUFzQ1FBSkFJQUlFUUVIVWdRRkJ4QUEyQWdBZ0IwRUFJQU5DQVlNaURGQWJJUWNnQXlFTERBRUxJQU1nQzFZTkFTQURRZ0dESVF3TElBeW5JQWR5UlFSQVFkU0JBVUhFQURZQ0FDQURRZ0Y5SVFNTUFnc2dBeUFMV2cwQVFkU0JBVUhFQURZQ0FBd0JDeUFMSUFlc0lnT0ZJQU45SVFNTElBaEJFR29rQUNBREN6RUJBWDlCMklZQktBSUFJUUVnQUFSQVFkaUdBVUhvaFFFZ0FDQUFRWDlHR3pZQ0FBdEJmeUFCSUFGQjZJVUJSaHNMclFnQkJYOGdBU2dDQUNFRUFrQUNRQUpBQWtBQ1FBSkFBa0FDZndKQUFrQUNRQUpBSUFORkRRQWdBeWdDQUNJR1JRMEFJQUJGQkVBZ0FpRUREQU1MSUFOQkFEWUNBQ0FDSVFNTUFRc0NRRUhZaGdFb0FnQW9BZ0JGQkVBZ0FFVU5BU0FDUlEwTUlBSWhCZ05BSUFRc0FBQWlBd1JBSUFBZ0EwSC92d054TmdJQUlBQkJCR29oQUNBRVFRRnFJUVFnQmtFQmF5SUdEUUVNRGdzTElBQkJBRFlDQUNBQlFRQTJBZ0FnQWlBR2F3OExJQUloQXlBQVJRMEREQVVMSUFRUWtnRVBDMEVCSVFVTUF3dEJBQXdCQzBFQkN5RUZBMEFnQlVVRVFDQUVMUUFBUVFOMklnVkJFR3NnQmtFYWRTQUZhbkpCQjBzTkF3Si9JQVJCQVdvaUJTQUdRWUNBZ0JCeFJRMEFHaUFGTFFBQVFjQUJjVUdBQVVjRVFDQUVRUUZySVFRTUJ3c2dCRUVDYWlJRklBWkJnSUFnY1VVTkFCb2dCUzBBQUVIQUFYRkJnQUZIQkVBZ0JFRUJheUVFREFjTElBUkJBMm9MSVFRZ0EwRUJheUVEUVFFaEJRd0JDd05BQWtBZ0JFRURjU0FFTFFBQUlnWkJBV3RCL2dCTGNnMEFJQVFvQWdBaUJrR0Jnb1FJYXlBR2NrR0FnWUtFZUhFTkFBTkFJQU5CQkdzaEF5QUVLQUlFSVFZZ0JFRUVhaUVFSUFZZ0JrR0Jnb1FJYTNKQmdJR0NoSGh4UlEwQUN3c2dCa0gvQVhFaUJVRUJhMEgrQUUwRVFDQURRUUZySVFNZ0JFRUJhaUVFREFFTEN5QUZRY0lCYXlJRlFUSkxEUU1nQkVFQmFpRUVJQVZCQW5SQndDdHFLQUlBSVFaQkFDRUZEQUFMQUFzRFFDQUZSUVJBSUFORkRRY0RRQUpBQWtBQ1FDQUVMUUFBSWdWQkFXc2lCMEgrQUVzRVFDQUZJUVlNQVFzZ0JFRURjU0FEUVFWSmNnMEJBa0FEUUNBRUtBSUFJZ1pCZ1lLRUNHc2dCbkpCZ0lHQ2hIaHhEUUVnQUNBR1FmOEJjVFlDQUNBQUlBUXRBQUUyQWdRZ0FDQUVMUUFDTmdJSUlBQWdCQzBBQXpZQ0RDQUFRUkJxSVFBZ0JFRUVhaUVFSUFOQkJHc2lBMEVFU3cwQUN5QUVMUUFBSVFZTElBWkIvd0Z4SWdWQkFXc2hCd3NnQjBIK0FFc05BUXNnQUNBRk5nSUFJQUJCQkdvaEFDQUVRUUZxSVFRZ0EwRUJheUlERFFFTUNRc0xJQVZCd2dGcklnVkJNa3NOQXlBRVFRRnFJUVFnQlVFQ2RFSEFLMm9vQWdBaEJrRUJJUVVNQVFzZ0JDMEFBQ0lGUVFOMklnZEJFR3NnQnlBR1FScDFhbkpCQjBzTkFRSkFBa0FDZnlBRVFRRnFJZ2NnQlVHQUFXc2dCa0VHZEhJaUJVRUFUZzBBR2lBSExRQUFRWUFCYXlJSFFUOUxEUUVnQkVFQ2FpSUlJQWNnQlVFR2RISWlCVUVBVGcwQUdpQUlMUUFBUVlBQmF5SUhRVDlMRFFFZ0J5QUZRUVowY2lFRklBUkJBMm9MSVFRZ0FDQUZOZ0lBSUFOQkFXc2hBeUFBUVFScUlRQU1BUXRCMUlFQlFSazJBZ0FnQkVFQmF5RUVEQVVMUVFBaEJRd0FDd0FMSUFSQkFXc2hCQ0FHRFFFZ0JDMEFBQ0VHQ3lBR1FmOEJjUTBBSUFBRVFDQUFRUUEyQWdBZ0FVRUFOZ0lBQ3lBQ0lBTnJEd3RCMUlFQlFSazJBZ0FnQUVVTkFRc2dBU0FFTmdJQUMwRi9Ed3NnQVNBRU5nSUFJQUlMSXdFQ2Z5QUFJUUVEUUNBQklnSkJCR29oQVNBQ0tBSUFEUUFMSUFJZ0FHdEJBblVMRGdBZ0FCRGZBZ1JBSUFBUUVBc0xVd0VFZndKQUlBRkJBRXdOQUNBQlFRRnJJZ1JGRFFBRFFDQUFJQUpxSWdNdEFBQWhCU0FESUFBZ0FrRUJjbW9pQXkwQUFEb0FBQ0FESUFVNkFBQWdBa0VDYWlJQ0lBRk9EUUVnQWlBRVJ3MEFDd3NMTEFFQmZ5TUFRUkJySWdJa0FDQUNJQUUyQWd3Z0FFSGtBRUh1SENBQkVMVUJJUUFnQWtFUWFpUUFJQUFMS1FFQmZ5TUFRUkJySWdJa0FDQUNJQUUyQWd3Z0FFSDBIQ0FCRU9JQ0lRQWdBa0VRYWlRQUlBQUxGZ0FnQUJCRlFRQkhJQUJCSUhKQjRRQnJRUVpKY2d1OEFnQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFGQkNXc09FZ0FJQ1FvSUNRRUNBd1FLQ1FvS0NBa0ZCZ2NMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVNnQ0FEWUNBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRJQkFEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRNQkFEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRBQUFEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRFQUFEY0RBQThMSUFJZ0FpZ0NBRUVIYWtGNGNTSUJRUWhxTmdJQUlBQWdBU3NEQURrREFBOExJQUFnQWtFekVRTUFDdzhMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRRQ0FEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRVQ0FEY0RBQThMSUFJZ0FpZ0NBRUVIYWtGNGNTSUJRUWhxTmdJQUlBQWdBU2tEQURjREFBditGQUVPZnlNQVFVQnFJZ01rQUNBRFFRQTJBaEFnQTBFQU5nSU1JQU5CQURZQ0NDQURRUUEyQWdRZ0F5QURRUkJxSWdRMkFoUWdBeUFEUVF4cUlnZzJBaGdnQXlnQ0ZCb2dBeUFEUVFocUlnbzJBaHdnQXlnQ0dCb2dBeUFEUVFScUlnWTJBaUFnQXlnQ0hCb2dBeWdDSUJvakFFRVFheUlISkFBZ0JpQUFMUUFDSUFBdEFBRWdBQzBBQUhOelFSaDBRUmgxSWdWQk1ITWdCVUVCZEVHZmYzSnFRUUZxSWdVMkFnQWdDaUFGUVg5eklBRnhJQVVnQVVGL2N5SU1jV3NpQlVGK2NpQUZRWDV4YWtFQmFpSUZOZ0lBSUFRZ0JSQVpOZ0lBSUFnZ0JpZ0NBQ0lKRUJrMkFnQURRQUpBUWIzdSthRitJUVVEUUFKQUFrQWdCVUc4N3ZtaGZrd0VRQ0FGUWUzc2hPTjVSZzBCSUFWQmlhM04yM3hHRFFJZ0JVR0loWUxjZkVjTkF5QUhRUkJxSkFBTUJBc2dCVUgyam9iVkJFY0VRQ0FGUVpxZW84a0RSZ1JBUVFBaEMwSHQ3SVRqZVNFRkRBUUxJQVZCdmU3NW9YNUhEUU1nQnlBSk5nSUlRZmFPaHRVRVFacWVvOGtESUFjb0FnaEJBRW9iSVFVTUF3c2dCaWdDQUNJRlFYOXpJQUZ4SUFVZ0RIRnJJZ2xCZm5NZ0NVRUJkRUY4Y1dvZ0FHb3RBQUVoRFNBSUtBSUFJQVVnQnlnQ0NHdHFJQUFnQnlnQ0NDSUZRWDl6SUFGeFFRRjBJQUVnQlhOcmFpMEFBQ0FBSUFscVFRSnJMUUFBSUExemN6b0FBQ0FIS0FJSVFRRnJJUWtNQkFzZ0J5QUxOZ0lNUVltdHpkdDhRWWlGZ3R4OElBb29BZ0FnQnlnQ0RFb2JJUVVNQVFzZ0JDZ0NBQ0FIS0FJTWFpQUFJQWNvQWd4QkFXb2lDMm90QUFBNkFBQkI3ZXlFNDNraEJRd0FDd0FMQ3lBRElBTW9BZ3hCcng0Z0F5Z0NCQkMrQVRZQ0pFSE51dmFlQlNFQUEwQUNRQUpBQWtBQ1FBSkFBa0FDUUNBQVFjcndxYUlCVEFSQUlBQkIvYlhhNzM1TUJFQWdBRUdSMVl1VWUwWU5CeUFBUWMyVjY5cDdSZzBESUFCQmdOSG4vWHhIRFFsQmtkV0xsSHNoQUVFQUlRRU1DUXNnQUVIK3RkcnZma1lOQkNBQVFhNm0wL1lBUmcwQklBQkIwYUM1R0VjTkNDQURLQUlRRUJBZ0F5Z0NEQkFRSUFNb0FpQWFJQU1vQWh3YUlBTW9BaGdhSUFNb0FoUWFJQU1vQWl3aEFDQURRVUJySkFBZ0FBOExJQUJCNzRUcjlRSk1CRUFnQUVITDhLbWlBVVlOQnlBQVFZekF5b0FDUncwSUlBTW9BaEFoQ0NBREtBSUlJUTVCQUNFSlFRQWhDa0VBSVFWQkFDRUhRUUFoQ3lNQVFSQnJJZ1FrQUVHU21PekRCVUc3N0x5SUJDQUNHeUVHUWRVQUlReEIrZ0VoRFFOQUFrQkI1cXFmZWlFQUEwQUNRQUpBQWtBQ1FBSkFJQUJCcE5XRDlnRk1CRUFnQUVIb3lwQzVmRXdFUUNBQVFmaTErUHQ1UmcwR0lBQkI1TkNXdDNwR0RRVWdBRUdZOWUzT2VVY05CeUFFUVJCcUpBQU1DQXNnQUVIcHlwQzVmRVlOQVNBQVFlYXFuM3BIRFFZZ0JDQUpOZ0lFSUFRZ0RUb0FDeUFFSUF3NkFBeEI2Y3FRdVh4Qm1QWHR6bmtnQkNnQ0JDQU9TQnNoQUF3R0N5QUFRYkR0aXJrRVRBUkFJQUJCcGRXRDlnRkdEUUlnQUVHNzdMeUlCRWNOQmtINHRmajdlU0VBSUFRc0FBMGdCQ2dDQkJEb0FpRUtEQVlMSUFCQnNlMkt1UVJHRFFJZ0FFR1NtT3pEQlVjTkJVSDR0Zmo3ZVNFQUlBUXNBQTBnQkNnQ0JCRGhBaUVLREFVTFFhWFZnL1lCUWJIdGlya0VJQVFvQWdSQkFtOUJBVVliSVFBTUJBc2dDQ0FFS0FJRWFpMEFBQ0lGSUFRdEFBeHpJUWRCNU5DV3Qzb2hBQ0FFTFFBTElRc01Bd3NnQ0NBRUtBSUVhaTBBQUNJTElBUXRBQXR6SVFkQjVOQ1d0M29oQUNBRUxRQU1JUVVNQWdzZ0JDQUxPZ0FPSUFRZ0J6b0FEU0FFSUFVNkFBOGdCaUVBREFFTEN5QUlJQVFvQWdScUlBbzZBQUFnQkNnQ0JFRUJhaUVKSUFRdEFBOGhEQ0FFTFFBT0lRME1BUXNMUWZDRTYvVUNJUUFNQ0FzZ0FFSHdoT3YxQWtZTkFpQUFRWmpYcXBFRFJnMEVJQUJCemJyMm5nVkhEUWRCcnFiVDlnQkJ6WlhyMm5zZ0F5Z0NKQnNoQUF3SEMwR013TXFBQWtITmxldmFleUFES0FJTVFiWWVJQU1vQWdRUXZnRWJJUUFNQmdzZ0F5Z0NFQ0VJSUFNb0FnZ2hCVUVBSVFwQkFDRU5RUUFoQjBFQUlRdEJBQ0VKUVFBaERDTUFRUkJySWdRa0FDQUlJQVVRMVFKQnNxYmJpd1JCdXYrRG9ua2dBaHNoQmtIVkFDRU9RZm9CSVE4RFFBSkFRYlNXMGJvQ0lRQURRQUpBQWtBQ1FDQUFRYk9XMGJvQ1RBUkFJQUJCcGZIYTIzMU1CRUFnQUVHNi80T2llVVlOQkNBQVFaL1VucGg3UmcwRElBQkIwK2k2NDNoSERRVWdDQ0FGRU5VQ0lBUkJFR29rQUF3R0N5QUFRYWJ4MnR0OVJnMEJJQUJCZzZhWnJRRkhEUVJCbDRYY3ZnUkJwdkhhMjMwZ0JDZ0NCRUVDYjBFQlJoc2hBQXdFQ3dKQUFrQWdBRUdXaGR5K0JFd0VRQ0FBUWJTVzBib0NSZzBCSUFCQnNxYmJpd1JIRFFaQi83TGxsd1VoQUNBRUxBQU5JQVFvQWdRUTRRSWhDZ3dHQ3lBQVFaZUYzTDRFUmcwQklBQkIvN0xsbHdWSERRVWdDQ0FFS0FJRWFpQUVMUUFNSWdBZ0NuTWdBQ0FLUVg5emNVRUJkR3M2QUFBZ0JDZ0NCRUVCYWlFTklBUXRBQThoRGlBRUxRQU9JUThNQndzZ0JDQU5OZ0lFSUFRZ0R6b0FDaUFFSUE0NkFBdEJnNmFaclFGQjAraTY0M2dnQkNnQ0JDQUZTQnNoQUF3RUN5QUlJQVFvQWdScUxRQUFJZ2NnQkMwQUMzTWhDMEdmMUo2WWV5RUFJQVF0QUFvaENTQUVMUUFLSVF3TUF3c2dDQ0FFS0FJRWFpMEFBQ0lKSUFRdEFBcHpJUXRCbjlTZW1Ic2hBQ0FFTFFBTElRY2dCQzBBQ3lFTURBSUxJQVFnQ3pvQURTQUVJQXc2QUF3Z0JDQUpPZ0FPSUFRZ0J6b0FEeUFHSVFBTUFRdEIvN0xsbHdVaEFDQUVMQUFOSUFRb0FnUVE2QUloQ2d3QUN3QUxDMEh3aE92MUFpRUFEQVVMSUFNQ2YwRUFJUVFqQUVFUWF5SUdJQU1vQWhBc0FBQTJBZ2dnQmlBR0tBSUlRUzlLT2dBT0lBWWdCaWdDQ0VFNlNEb0FEMEdNNEpTQ2VpRUFBMEFDUUNBQVFhemNoNGg3VEFSQUlBQkJsZXJCdW5oR0JFQkIvd0VoQkVHdDNJZUlleUVBREFNTElBQkJqT0NVZ25wR0RRRWdBRUc4b09mTGVrY05BaUFHS0FJSUlnQkI0UUJ6SUFCQkFYUkJ2WDV5YWtFQmFpSUFRUUYwUVJSeElBQkJDbk5xSVFSQnJkeUhpSHNoQUF3Q0N5QUFRYTNjaDRoN1J3UkFJQUJCbXFYNDZ3SkhCRUFnQUVIQTRyRENBMGNOQXlBR0tBSUlJZ0JCendGeUlBQkJ6d0Z4YWtFQmFpRUVRYTNjaDRoN0lRQU1Bd3RCdktEbnkzcEJsZXJCdW5nZ0JpZ0NDRUg3QUVnYlFaWHF3YnA0SUFZb0FnaEI0QUJLR3lFQURBSUxJQVJCR0hSQkdIVU1BZ3RCd09Ld3dnTkJtcVg0NndJZ0JpMEFEMEVCY1J0Qm1xWDQ2d0lnQmkwQURrRUJjUnNoQUF3QUN3QUxJZ0EyQWdRZ0F5QURLQUlJSWdZZ0FFRi9jM0VnQUNBR1FYOXpjV3NpQmtGK2NpQUdRWDV4YWtFQmFqWUNLQ0FESUFZUUdUWUNMQ0FESUFCQkFYUkJBbkVnQUVFQmMyb1FHVFlDTUVFQUlSQWdBeWdDS0NBREtBSXNha0VBT2dBQUlBTW9BZ1FnQXlnQ01HcEJBRG9BQUVIK3RkcnZmaUVBREFRTElBTWdFRFlDT0VHWTE2cVJBMEdBMGVmOWZDQURLQUlvSUFNb0FqaEtHeUVBREFNTElBTW9BaXdnQXlnQ09Hb2dBeWdDT0NJQVFRRjBRUUp5SUFCQmZuTnFRUUZxSWhBZ0F5Z0NFR290QUFBNkFBQkIvclhhNzM0aEFBd0NDeUFESUFNb0FnUTJBalFnQXlBQk5nSThRY3Z3cWFJQlFkR2d1UmdnQXlnQ05DQURLQUk4U2hzaEFBd0JDeUFES0FJd0lBTW9BanhxSUFNb0FoQWdBeWdDQ0NBREtBSTBheUlBSUFNb0Fqd2lBWEpCQVhRZ0FDQUJjMnRxTFFBQU9nQUFJQU1vQWp4QkFXb2hBVUdSMVl1VWV5RUFEQUFMQUF0ckFRUi9JQUFvQWdBc0FBQVFSVVVFUUVFQUR3c0RRQ0FBS0FJQUlRTkJmeUVCSUFKQnpKbXo1Z0JOQkVCQmZ5QURMQUFBUVRCcklnUWdBa0VLYkNJQmFpQUVRZi8vLy84SElBRnJTaHNoQVFzZ0FDQURRUUZxTmdJQUlBRWhBaUFETEFBQkVFVU5BQXNnQVF2MEVnSVJmd0YrSXdCQjBBQnJJZ1VrQUNBRklBRTJBa3dnQlVFM2FpRVVJQVZCT0dvaEVFRUFJUUVDUUFKQUFrQUNRQU5BSUFGQi8vLy8vd2NnQzJ0S0RRRWdBU0FMYWlFTElBVW9Ba3dpQ2lFQkFrQUNRQUpBSUFvdEFBQWlDUVJBQTBBQ1FBSkFJQWxCL3dGeElnWkZCRUFnQVNFSkRBRUxJQVpCSlVjTkFTQUJJUWtEUUNBQkxRQUJRU1ZIRFFFZ0JTQUJRUUpxSWdZMkFrd2dDVUVCYWlFSklBRXRBQUloQ0NBR0lRRWdDRUVsUmcwQUN3c2dDU0FLYXlJQlFmLy8vLzhISUF0ckloVktEUWNnQUFSQUlBQWdDaUFCRUNvTElBRU5Ca0YvSVE1QkFTRUdJQVVvQWt3c0FBRVFSU0VCSUFVb0Frd2hDQUpBSUFGRkRRQWdDQzBBQWtFa1J3MEFJQWdzQUFGQk1Hc2hEa0VCSVJKQkF5RUdDeUFGSUFZZ0NHb2lBVFlDVEVFQUlRd0NRQ0FCTEFBQUloRkJJR3NpQ0VFZlN3UkFJQUVoQmd3QkN5QUJJUVpCQVNBSWRDSUhRWW5SQkhGRkRRQURRQ0FGSUFGQkFXb2lCallDVENBSElBeHlJUXdnQVN3QUFTSVJRU0JySWdoQklFOE5BU0FHSVFGQkFTQUlkQ0lIUVluUkJIRU5BQXNMQWtBZ0VVRXFSZ1JBSUFVQ2Z3SkFJQVlzQUFFUVJVVU5BQ0FGS0FKTUlnRXRBQUpCSkVjTkFDQUJMQUFCUVFKMElBUnFRY0FCYTBFS05nSUFJQUVzQUFGQkEzUWdBMnBCZ0FOcktBSUFJUTFCQVNFU0lBRkJBMm9NQVFzZ0VnMEdRUUFoRWtFQUlRMGdBQVJBSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUVvQWdBaERRc2dCU2dDVEVFQmFnc2lBVFlDVENBTlFRQk9EUUZCQUNBTmF5RU5JQXhCZ01BQWNpRU1EQUVMSUFWQnpBQnFFTnNDSWcxQkFFZ05DQ0FGS0FKTUlRRUxRUUFoQmtGL0lRY0NmMEVBSUFFdEFBQkJMa2NOQUJvZ0FTMEFBVUVxUmdSQUlBVUNmd0pBSUFFc0FBSVFSVVVOQUNBRktBSk1JZ0V0QUFOQkpFY05BQ0FCTEFBQ1FRSjBJQVJxUWNBQmEwRUtOZ0lBSUFFc0FBSkJBM1FnQTJwQmdBTnJLQUlBSVFjZ0FVRUVhZ3dCQ3lBU0RRWWdBQVIvSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUVvQWdBRlFRQUxJUWNnQlNnQ1RFRUNhZ3NpQVRZQ1RDQUhRWDl6UVI5MkRBRUxJQVVnQVVFQmFqWUNUQ0FGUWN3QWFoRGJBaUVISUFVb0Frd2hBVUVCQ3lFVEEwQWdCaUVQUVJ3aENTQUJMQUFBUWNFQWEwRTVTdzBKSUFVZ0FVRUJhaUlSTmdKTUlBRXNBQUFoQmlBUklRRWdCaUFQUVRwc2FrR1BMbW90QUFBaUJrRUJhMEVJU1EwQUN3SkFBa0FnQmtFYlJ3UkFJQVpGRFFzZ0RrRUFUZ1JBSUFRZ0RrRUNkR29nQmpZQ0FDQUZJQU1nRGtFRGRHb3BBd0EzQTBBTUFnc2dBRVVOQ0NBRlFVQnJJQVlnQWhEWkFpQUZLQUpNSVJFTUFnc2dEa0VBVGcwS0MwRUFJUUVnQUVVTkJ3c2dERUgvLzN0eElnZ2dEQ0FNUVlEQUFIRWJJUVpCQUNFTVFlOGFJUTRnRUNFSkFrQUNRQUpBQW44Q1FBSkFBa0FDUUFKL0FrQUNRQUpBQWtBQ1FBSkFBa0FnRVVFQmF5d0FBQ0lCUVY5eElBRWdBVUVQY1VFRFJoc2dBU0FQR3lJQlFkZ0FhdzRoQkJRVUZCUVVGQlFVRGhRUEJnNE9EaFFHRkJRVUZBSUZBeFFVQ1JRQkZCUUVBQXNDUUNBQlFjRUFhdzRIRGhRTEZBNE9EZ0FMSUFGQjB3QkdEUWtNRXdzZ0JTa0RRQ0VXUWU4YURBVUxRUUFoQVFKQUFrQUNRQUpBQWtBQ1FBSkFJQTlCL3dGeERnZ0FBUUlEQkJvRkJob0xJQVVvQWtBZ0N6WUNBQXdaQ3lBRktBSkFJQXMyQWdBTUdBc2dCU2dDUUNBTHJEY0RBQXdYQ3lBRktBSkFJQXM3QVFBTUZnc2dCU2dDUUNBTE9nQUFEQlVMSUFVb0FrQWdDellDQUF3VUN5QUZLQUpBSUF1c053TUFEQk1MSUFkQkNDQUhRUWhMR3lFSElBWkJDSEloQmtINEFDRUJDeUFRSVFnZ0FVRWdjU0VQSUFVcEEwQWlGbEJGQkVBRFFDQUlRUUZySWdnZ0ZxZEJEM0ZCb0RKcUxRQUFJQTl5T2dBQUlCWkNEMVloQ2lBV1FnU0lJUllnQ2cwQUN3c2dDQ0VLSUFaQkNIRkZJQVVwQTBCUWNnMERJQUZCQkhaQjd4cHFJUTVCQWlFTURBTUxJQkFoQVNBRktRTkFJaFpRUlFSQUEwQWdBVUVCYXlJQklCYW5RUWR4UVRCeU9nQUFJQlpDQjFZaENDQVdRZ09JSVJZZ0NBMEFDd3NnQVNFS0lBWkJDSEZGRFFJZ0J5QVFJQXBySWdGQkFXb2dBU0FIU0JzaEJ3d0NDeUFGS1FOQUloWkNBRk1FUUNBRlFnQWdGbjBpRmpjRFFFRUJJUXhCN3hvTUFRc2dCa0dBRUhFRVFFRUJJUXhCOEJvTUFRdEI4UnBCN3hvZ0JrRUJjU0lNR3dzaERpQVdJQkFRandFaENnc2dFMEVBSUFkQkFFZ2JEUTRnQmtILy8zdHhJQVlnRXhzaEJpQUZLUU5BSWhaQ0FGSWdCM0pGQkVBZ0VDRUtRUUFoQnd3TUN5QUhJQlpRSUJBZ0NtdHFJZ0VnQVNBSFNCc2hCd3dMQ3lBRktBSkFJZ0ZCZ0I4Z0FSc2lDaUlKUVFCQi8vLy8vd2NnQnlBSFFRQklHeUlHRU53QklnRWdDV3NnQmlBQkd5SUJJQXBxSVFrZ0IwRUFUZ1JBSUFnaEJpQUJJUWNNQ3dzZ0NDRUdJQUVoQnlBSkxRQUFEUTBNQ2dzZ0J3UkFJQVVvQWtBTUFndEJBQ0VCSUFCQklDQU5RUUFnQmhBdURBSUxJQVZCQURZQ0RDQUZJQVVwQTBBK0FnZ2dCU0FGUVFocUlnRTJBa0JCZnlFSElBRUxJUWxCQUNFQkFrQURRQ0FKS0FJQUlnaEZEUUVnQlVFRWFpQUlFTjRDSWdwQkFFZ2lDQ0FLSUFjZ0FXdExja1VFUUNBSlFRUnFJUWtnQnlBQklBcHFJZ0ZMRFFFTUFnc0xJQWdORFF0QlBTRUpJQUZCQUVnTkN5QUFRU0FnRFNBQklBWVFMaUFCUlFSQVFRQWhBUXdCQzBFQUlRY2dCU2dDUUNFSkEwQWdDU2dDQUNJSVJRMEJJQVZCQkdvZ0NCRGVBaUlJSUFkcUlnY2dBVXNOQVNBQUlBVkJCR29nQ0JBcUlBbEJCR29oQ1NBQklBZExEUUFMQ3lBQVFTQWdEU0FCSUFaQmdNQUFjeEF1SUEwZ0FTQUJJQTFJR3lFQkRBZ0xJQk5CQUNBSFFRQklHdzBJUVQwaENTQUFJQVVyQTBBZ0RTQUhJQVlnQVVFeUVSMEFJZ0ZCQUU0TkJ3d0pDeUFGSUFVcEEwQThBRGRCQVNFSElCUWhDaUFJSVFZTUJBc2dCU0FCUVFGcUlnWTJBa3dnQVMwQUFTRUpJQVloQVF3QUN3QUxJQUFOQnlBU1JRMENRUUVoQVFOQUlBUWdBVUVDZEdvb0FnQWlBQVJBSUFNZ0FVRURkR29nQUNBQ0VOa0NRUUVoQ3lBQlFRRnFJZ0ZCQ2tjTkFRd0pDd3RCQVNFTElBRkJDazhOQndOQUlBUWdBVUVDZEdvb0FnQU5BU0FCUVFGcUlnRkJDa2NOQUFzTUJ3dEJIQ0VKREFRTElBa2dDbXNpRHlBSElBY2dEMGdiSWdoQi8vLy8vd2NnREd0S0RRSkJQU0VKSUFnZ0RHb2lCeUFOSUFjZ0RVb2JJZ0VnRlVvTkF5QUFRU0FnQVNBSElBWVFMaUFBSUE0Z0RCQXFJQUJCTUNBQklBY2dCa0dBZ0FSekVDNGdBRUV3SUFnZ0QwRUFFQzRnQUNBS0lBOFFLaUFBUVNBZ0FTQUhJQVpCZ01BQWN4QXVEQUVMQzBFQUlRc01Bd3RCUFNFSkMwSFVnUUVnQ1RZQ0FBdEJmeUVMQ3lBRlFkQUFhaVFBSUFzTGZ3SUJmd0YrSUFDOUlnTkNOSWluUWY4UGNTSUNRZjhQUndSOElBSkZCRUFnQVNBQVJBQUFBQUFBQUFBQVlRUi9RUUFGSUFCRUFBQUFBQUFBOEVPaUlBRVEzUUloQUNBQktBSUFRVUJxQ3pZQ0FDQUFEd3NnQVNBQ1FmNEhhellDQUNBRFF2Ly8vLy8vLy8rSGdIK0RRb0NBZ0lDQWdJRHdQNFMvQlNBQUN3c1NBQ0FBUlFSQVFRQVBDeUFBSUFFUTJnRUxKUUFnQUVFQVJ5QUFRY2d0UjNFZ0FFSGdMVWR4SUFCQmdJY0JSM0VnQUVHWWh3RkhjUXZvQWdFRGZ3SkFJQUV0QUFBTkFFR0tIaERiQVNJQkJFQWdBUzBBQUEwQkN5QUFRUXhzUVlBdWFoRGJBU0lCQkVBZ0FTMEFBQTBCQzBHUkhoRGJBU0lCQkVBZ0FTMEFBQTBCQzBHbkhpRUJDd0pBQTBBZ0FTQUNhaTBBQUNJRVJTQUVRUzlHY2tVRVFFRVhJUVFnQWtFQmFpSUNRUmRIRFFFTUFnc0xJQUloQkF0QnB4NGhBd0pBQWtBQ1FBSkFBa0FnQVMwQUFDSUNRUzVHRFFBZ0FTQUVhaTBBQUEwQUlBRWhBeUFDUWNNQVJ3MEJDeUFETFFBQlJRMEJDeUFEUWFjZUVMWUJSUTBBSUFOQjhSMFF0Z0VOQVFzZ0FFVUVRRUdrTFNFQ0lBTXRBQUZCTGtZTkFndEJBQThMUVFBaEFVSDhoZ0VvQWdBaUFnUkFBMEFnQXlBQ1FRaHFFTFlCUlEwQ0lBSW9BaUFpQWcwQUN3dEJKQkFaSWdJRVFDQUNRYVF0S1FJQU53SUFJQUpCQ0dvaUFTQURJQVFRUWhvZ0FTQUVha0VBT2dBQUlBSkIvSVlCS0FJQU5nSWdRZnlHQVNBQ05nSUFJQUloQVFzZ0FVR2tMU0FBSUFGeUd5RUNDeUFDQ3k4QUlBRVE3QUlpQVNBQVFmOEJjU0lBY1VFQmRDQUFJQUZ6YWlJQVFSVnlRUUYwSUFCQkZYTnJRUmgwUVJoMUM0MGVBZzkvQlg0akFFR1FBV3NpQkNRQUlBUkJBRUdRQVJCR0lnTkJmellDVENBRElBQTJBaXdnQTBFeE5nSWdJQU1nQURZQ1ZDQUJJUVFnQWlFT0l3QkJzQUpySWdZa0FDQURLQUpNR2dKQUFrQUNRQUpBSUFNb0FnUU5BQ0FERU9rQkdpQURLQUlFRFFBTUFRc2dCQzBBQUNJQVJRMENBa0FEUUFKQUFrQWdBRUgvQVhFUWNBUkFBMEFnQkNJQVFRRnFJUVFnQUMwQUFSQndEUUFMSUFOQ0FCQlRBMEFDZnlBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFERUJJTEVIQU5BQXNnQXlnQ0JDRUVJQU1wQTNCQ0FGa0VRQ0FESUFSQkFXc2lCRFlDQkFzZ0JDQURLQUlzYTZ3Z0F5a0RlQ0FVZkh3aEZBd0JDd0ovQWtBQ1FDQUVMUUFBUVNWR0JFQWdCQzBBQVNJQVFTcEdEUUVnQUVFbFJ3MENDeUFEUWdBUVV3SkFJQVF0QUFCQkpVWUVRQU5BQW44Z0F5Z0NCQ0lBSUFNb0FtaEhCRUFnQXlBQVFRRnFOZ0lFSUFBdEFBQU1BUXNnQXhBU0N5SUFFSEFOQUFzZ0JFRUJhaUVFREFFTElBTW9BZ1FpQUNBREtBSm9Sd1JBSUFNZ0FFRUJhallDQkNBQUxRQUFJUUFNQVFzZ0F4QVNJUUFMSUFRdEFBQWdBRWNFUUNBREtRTndRZ0JaQkVBZ0F5QURLQUlFUVFGck5nSUVDeUFBUVFCT0RRcEJBQ0VNSUExRkRRZ01DZ3NnQXlnQ0JDQURLQUlzYTZ3Z0F5a0RlQ0FVZkh3aEZDQUVJUUFNQXd0QkFDRUNJQVJCQW1vTUFRc0NRQ0FBRUVWRkRRQWdCQzBBQWtFa1J3MEFJQVF0QUFGQk1Hc2hBQ01BUVJCcklnRWdEallDRENBQklBNGdBRUVDZEVFRWEwRUFJQUJCQVVzYmFpSUFRUVJxTmdJSUlBQW9BZ0FoQWlBRVFRTnFEQUVMSUE0b0FnQWhBaUFPUVFScUlRNGdCRUVCYWdzaEFFRUFJUXhCQUNFRUlBQXRBQUFRUlFSQUEwQWdBQzBBQUNBRVFRcHNha0V3YXlFRUlBQXRBQUVoQVNBQVFRRnFJUUFnQVJCRkRRQUxDeUFBTFFBQUlnVkI3UUJIQkg4Z0FBVkJBQ0VKSUFKQkFFY2hEQ0FBTFFBQklRVkJBQ0VLSUFCQkFXb0xJZ0ZCQVdvaEFFRURJUWNDUUFKQUFrQUNRQUpBQWtBZ0JVSEJBR3NPT2dRSkJBa0VCQVFKQ1FrSkF3a0pDUWtKQ1FRSkNRa0pCQWtKQkFrSkNRa0pCQWtFQkFRRUJBQUVCUWtCQ1FRRUJBa0pCQUlFQ1FrRUNRSUpDeUFCUVFKcUlBQWdBUzBBQVVIb0FFWWlBUnNoQUVGK1FYOGdBUnNoQnd3RUN5QUJRUUpxSUFBZ0FTMEFBVUhzQUVZaUFSc2hBRUVEUVFFZ0FSc2hCd3dEQzBFQklRY01BZ3RCQWlFSERBRUxRUUFoQnlBQklRQUxRUUVnQnlBQUxRQUFJZ0ZCTDNGQkEwWWlCUnNoRHdKQUlBRkJJSElnQVNBRkd5SUxRZHNBUmcwQUFrQWdDMEh1QUVjRVFDQUxRZU1BUncwQklBUkJBU0FFUVFGS0d5RUVEQUlMSUFJZ0R5QVVFT01DREFJTElBTkNBQkJUQTBBQ2Z5QURLQUlFSWdFZ0F5Z0NhRWNFUUNBRElBRkJBV28yQWdRZ0FTMEFBQXdCQ3lBREVCSUxFSEFOQUFzZ0F5Z0NCQ0VCSUFNcEEzQkNBRmtFUUNBRElBRkJBV3NpQVRZQ0JBc2dBU0FES0FJc2E2d2dBeWtEZUNBVWZId2hGQXNnQXlBRXJDSVNFRk1DUUNBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FNQVFzZ0F4QVNRUUJJRFFRTElBTXBBM0JDQUZrRVFDQURJQU1vQWdSQkFXczJBZ1FMUVJBaEFRSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBTFFkZ0FhdzRoQmdzTEFnc0xDd3NMQVFzQ0JBRUJBUXNGQ3dzTEN3c0RCZ3NMQWdzRUN3c0dBQXNnQzBIQkFHc2lBVUVHUzBFQklBRjBRZkVBY1VWeURRb0xJQVpCQ0dvZ0F5QVBRUUFRNWdJZ0F5a0RlRUlBSUFNb0FnUWdBeWdDTEd1c2ZWRU5EeUFDUlEwSklBWXBBeEFoRWlBR0tRTUlJUk1nRHc0REJRWUhDUXNnQzBIdkFYRkI0d0JHQkVBZ0JrRWdha0YvUVlFQ0VFWWFJQVpCQURvQUlDQUxRZk1BUncwSUlBWkJBRG9BUVNBR1FRQTZBQzRnQmtFQU5nRXFEQWdMSUFaQklHb2dBQzBBQVNJQlFkNEFSaUlGUVlFQ0VFWWFJQVpCQURvQUlDQUFRUUpxSUFCQkFXb2dCUnNoQ0FKL0FrQUNRQ0FBUVFKQkFTQUZHMm90QUFBaUFFRXRSd1JBSUFCQjNRQkdEUUVnQVVIZUFFY2hCeUFJREFNTElBWWdBVUhlQUVjaUJ6b0FUZ3dCQ3lBR0lBRkIzZ0JISWdjNkFINExJQWhCQVdvTElRQURRQUpBSUFBdEFBQWlBVUV0UndSQUlBRkZEUThnQVVIZEFFY05BUXdLQzBFdElRRWdBQzBBQVNJRlJTQUZRZDBBUm5JTkFDQUFRUUZxSVFnQ1FDQUZJQUJCQVdzdEFBQWlBRTBFUUNBRklRRU1BUXNEUUNBQVFRRnFJZ0FnQmtFZ2Ftb2dCem9BQUNBQUlBZ3RBQUFpQVVrTkFBc0xJQWdoQUFzZ0FTQUdhaUFIT2dBaElBQkJBV29oQUF3QUN3QUxRUWdoQVF3Q0MwRUtJUUVNQVF0QkFDRUJDMElBSVJKQkFDRUZRUUFoQ0VFQUlRY2pBRUVRYXlJUUpBQUNRQ0FCUVFGSElBRkJKRTF4UlFSQVFkU0JBVUVjTmdJQURBRUxBMEFDZnlBREtBSUVJZ1FnQXlnQ2FFY0VRQ0FESUFSQkFXbzJBZ1FnQkMwQUFBd0JDeUFERUJJTElnUVFjQTBBQ3dKQUFrQWdCRUVyYXc0REFBRUFBUXRCZjBFQUlBUkJMVVliSVFjZ0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQWhCQXdCQ3lBREVCSWhCQXNDUUFKQUFrQUNRQ0FCUVc5eElBUkJNRWR5UlFSQUFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDeUlFUVY5eFFkZ0FSZ1JBUVJBaEFRSi9JQU1vQWdRaUJDQURLQUpvUndSQUlBTWdCRUVCYWpZQ0JDQUVMUUFBREFFTElBTVFFZ3NpQkVHeEtXb3RBQUJCRUVrTkF5QURLUU53UWdCWkJFQWdBeUFES0FJRVFRRnJOZ0lFQ3lBRFFnQVFVd3dHQ3lBQkRRRkJDQ0VCREFJTElBRkJDaUFCR3lJQklBUkJzU2xxTFFBQVN3MEFJQU1wQTNCQ0FGa0VRQ0FESUFNb0FnUkJBV3MyQWdRTElBTkNBQkJUUWRTQkFVRWNOZ0lBREFRTElBRkJDa2NOQUNBRVFUQnJJZ1ZCQ1UwRVFFRUFJUUVEUUNBQlFRcHNJQVZxSWdGQm1iUG16QUZKQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0N5SUVRVEJySWdWQkNVMXhEUUFMSUFHdElSSUxBa0FnQlVFSlN3MEFJQkpDQ240aEV5QUZyU0VWQTBBQ2Z5QURLQUlFSWdFZ0F5Z0NhRWNFUUNBRElBRkJBV28yQWdRZ0FTMEFBQXdCQ3lBREVCSUxJZ1JCTUdzaUJVRUpTeUFUSUJWOEloSkNtclBtekptejVzd1pXbklOQVNBU1FncCtJaE1nQmEwaUZVSi9oVmdOQUF0QkNpRUJEQUlMUVFvaEFTQUZRUWxORFFFTUFnc2dBU0FCUVFGcmNRUkFJQVJCc1NscUxRQUFJZ2dnQVVrRVFBTkFJQUVnQld3Z0NHb2lCVUhINC9FNFNRSi9JQU1vQWdRaUJDQURLQUpvUndSQUlBTWdCRUVCYWpZQ0JDQUVMUUFBREFFTElBTVFFZ3NpQkVHeEtXb3RBQUFpQ0NBQlNYRU5BQXNnQmEwaEVnc2dBU0FJVFEwQklBR3RJUk1EUUNBU0lCTitJaFVnQ0sxQy93R0RJaFpDZjRWV0RRSWdGU0FXZkNFU0lBRUNmeUFES0FJRUlnUWdBeWdDYUVjRVFDQURJQVJCQVdvMkFnUWdCQzBBQUF3QkN5QURFQklMSWdSQnNTbHFMUUFBSWdoTkRRSWdFQ0FUUWdBZ0VrSUFFQ3NnRUNrRENGQU5BQXNNQVFzZ0FVRVhiRUVGZGtFSGNVR3hLMm9zQUFBaEVTQUVRYkVwYWkwQUFDSUZJQUZKQkVBRFFDQUlJQkYwSUFWeUlnaEJnSUNBd0FCSkFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDeUlFUWJFcGFpMEFBQ0lGSUFGSmNRMEFDeUFJclNFU0N5QUJJQVZORFFCQ2Z5QVJyU0lUaUNJVklCSlVEUUFEUUNBRnJVTC9BWU1nRWlBVGhvUWhFaUFCQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0N5SUVRYkVwYWkwQUFDSUZUUTBCSUJJZ0ZWZ05BQXNMSUFFZ0JFR3hLV290QUFCTkRRQURRQ0FCQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0MwR3hLV290QUFCTERRQUxRZFNCQVVIRUFEWUNBRUVBSVFkQ2Z5RVNDeUFES1FOd1FnQlpCRUFnQXlBREtBSUVRUUZyTmdJRUMwRUFJQkpDZjFFZ0IwRUJjaHNFUUVIVWdRRkJ4QUEyQWdCQ2ZpRVNEQUVMSUJJZ0I2d2lFNFVnRTMwaEVnc2dFRUVRYWlRQUlBTXBBM2hDQUNBREtBSUVJQU1vQWl4cnJIMVJEUW9nQWtVZ0MwSHdBRWR5UlFSQUlBSWdFajRDQUF3RkN5QUNJQThnRWhEakFnd0VDeUFDSUJNZ0VoRGtBamdDQUF3REN5QUNJQk1nRWhEZEFUa0RBQXdDQ3lBQ0lCTTNBd0FnQWlBU053TUlEQUVMSUFSQkFXcEJIeUFMUWVNQVJpSUZHeUVIQWtBQ1FDQVBRUUZISWdoRkJFQWdBaUVCSUF3RVFDQUhRUUowRUJraUFVVU5CZ3NnQmtJQU53T29Ba0VBSVFRRFFDQUJJUW9EUUFKL0lBTW9BZ1FpQVNBREtBSm9Sd1JBSUFNZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFNUUVnc2lBU0FHYWkwQUlVVU5BeUFHSUFFNkFCc2dCa0VjYWlBR1FSdHFRUUVnQmtHb0Ftb1F0d0VpQVVGK1JnMEFRUUFoQ1NBQlFYOUdEUWtnQ2dSQUlBb2dCRUVDZEdvZ0JpZ0NIRFlDQUNBRVFRRnFJUVFMSUF3Z0JDQUhSbkZGRFFBTElBb2dCMEVCZEVFQmNpSUhRUUowRUo0QklnRU5BQXNNQndzZ0RBUkFRUUFoQkNBSEVCa2lBVVVOQlFOQUlBRWhDUU5BQW44Z0F5Z0NCQ0lCSUFNb0FtaEhCRUFnQXlBQlFRRnFOZ0lFSUFFdEFBQU1BUXNnQXhBU0N5SUJJQVpxTFFBaFJRUkFRUUFoQ2d3RkN5QUVJQWxxSUFFNkFBQWdCRUVCYWlJRUlBZEhEUUFMUVFBaENpQUpJQWRCQVhSQkFYSWlCeENlQVNJQkRRQUxEQWNMUVFBaEJDQUNCRUFEUUFKL0lBTW9BZ1FpQVNBREtBSm9Sd1JBSUFNZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFNUUVnc2lBU0FHYWkwQUlRUkFJQUlnQkdvZ0FUb0FBQ0FFUVFGcUlRUU1BUVZCQUNFS0lBSWhDUXdFQ3dBTEFBc0RRQUovSUFNb0FnUWlBU0FES0FKb1J3UkFJQU1nQVVFQmFqWUNCQ0FCTFFBQURBRUxJQU1RRWdzZ0Jtb3RBQ0VOQUF0QkFDRUpRUUFoQ2d3QkMwRUFJUWtnQmtHb0Ftb0VmeUFHS0FLb0FnVkJBQXNOQlFzZ0F5Z0NCQ0VCSUFNcEEzQkNBRmtFUUNBRElBRkJBV3NpQVRZQ0JBc2dBeWtEZUNBQklBTW9BaXhyckh3aUUxQWdDMEhqQUVZZ0VpQVRVbkZ5RFFZQ1FDQU1SUTBBSUFoRkJFQWdBaUFLTmdJQURBRUxJQUlnQ1RZQ0FBc2dCUTBBSUFvRVFDQUtJQVJCQW5ScVFRQTJBZ0FMSUFsRkJFQkJBQ0VKREFFTElBUWdDV3BCQURvQUFBc2dBeWdDQkNBREtBSXNhNndnQXlrRGVDQVVmSHdoRkNBTklBSkJBRWRxSVEwTElBQkJBV29oQkNBQUxRQUJJZ0FOQVF3RkN3dEJBQ0VKUVFBaENnc2dEUTBCQzBGL0lRMExJQXhGRFFBZ0NSQVFJQW9RRUFzZ0JrR3dBbW9rQUNBTklRQWdBMEdRQVdva0FDQUFDME1BQWtBZ0FFVU5BQUpBQWtBQ1FBSkFJQUZCQW1vT0JnQUJBZ0lFQXdRTElBQWdBandBQUE4TElBQWdBajBCQUE4TElBQWdBajRDQUE4TElBQWdBamNEQUFzTHRBTUNBMzhCZmlNQVFTQnJJZ01rQUFKQUlBRkMvLy8vLy8vLy8vLy9BSU1pQlVLQWdJQ0FnSURBd0Q5OUlBVkNnSUNBZ0lDQXdML0FBSDFVQkVBZ0FVSVppS2NoQkNBQVVDQUJRdi8vL3crRElnVkNnSUNBQ0ZRZ0JVS0FnSUFJVVJ0RkJFQWdCRUdCZ0lDQUJHb2hBZ3dDQ3lBRVFZQ0FnSUFFYWlFQ0lBQWdCVUtBZ0lBSWhZUkNBRklOQVNBQ0lBUkJBWEZxSVFJTUFRc2dBRkFnQlVLQWdJQ0FnSURBLy84QVZDQUZRb0NBZ0lDQWdNRC8vd0JSRzBVRVFDQUJRaG1JcDBILy8vOEJjVUdBZ0lEK0IzSWhBZ3dCQzBHQWdJRDhCeUVDSUFWQy8vLy8vLy8vdjcvQUFGWU5BRUVBSVFJZ0JVSXdpS2NpQkVHUi9nQkpEUUFnQTBFUWFpQUFJQUZDLy8vLy8vLy9QNE5DZ0lDQWdJQ0F3QUNFSWdVZ0JFR0IvZ0JyRUM4Z0F5QUFJQVZCZ2Y4QUlBUnJFSHdnQXlrRENDSUFRaG1JcHlFQ0lBTXBBd0FnQXlrREVDQURLUU1ZaEVJQVVxMkVJZ1ZRSUFCQy8vLy9ENE1pQUVLQWdJQUlWQ0FBUW9DQWdBaFJHMFVFUUNBQ1FRRnFJUUlNQVFzZ0JTQUFRb0NBZ0FpRmhFSUFVZzBBSUFKQkFYRWdBbW9oQWdzZ0EwRWdhaVFBSUFJZ0FVSWdpS2RCZ0lDQWdIaHhjcjRMZ1FRQ0EzOEJmZ0pBQWtBQ1FBSi9JQUFvQWdRaUFpQUFLQUpvUndSQUlBQWdBa0VCYWpZQ0JDQUNMUUFBREFFTElBQVFFZ3NpQTBFcmF3NERBUUFCQUFzZ0EwRXdheUVCREFFTElBTkJMVVloQkFKQUlBRkZBbjhnQUNnQ0JDSUNJQUFvQW1oSEJFQWdBQ0FDUVFGcU5nSUVJQUl0QUFBTUFRc2dBQkFTQ3lJQ1FUQnJJZ0ZCQ2tseURRQWdBQ2tEY0VJQVV3MEFJQUFnQUNnQ0JFRUJhellDQkFzZ0FpRURDd0pBSUFGQkNra0VRRUVBSVFJRFFDQURJQUpCQ214cUlRRUNmeUFBS0FJRUlnSWdBQ2dDYUVjRVFDQUFJQUpCQVdvMkFnUWdBaTBBQUF3QkN5QUFFQklMSVFNZ0FVRXdheUVDSUFKQnpKbXo1Z0JJSUFOQk1Hc2lBVUVKVFhFTkFBc2dBcXdoQlFKQUlBRkJDazhOQUFOQUlBT3RJQVZDQ241OFFqQjlJUVVDZnlBQUtBSUVJZ0VnQUNnQ2FFY0VRQ0FBSUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFBRUJJTElnTkJNR3NpQVVFSlN3MEJJQVZDcm8rRjE4ZkM2Nk1CVXcwQUN3c2dBVUVLU1FSQUEwQUNmeUFBS0FJRUlnRWdBQ2dDYUVjRVFDQUFJQUZCQVdvMkFnUWdBUzBBQUF3QkN5QUFFQklMUVRCclFRcEpEUUFMQ3lBQUtRTndRZ0JaQkVBZ0FDQUFLQUlFUVFGck5nSUVDMElBSUFWOUlBVWdCQnNoQlF3QkMwS0FnSUNBZ0lDQWdJQi9JUVVnQUNrRGNFSUFVdzBBSUFBZ0FDZ0NCRUVCYXpZQ0JFS0FnSUNBZ0lDQWdJQi9Ed3NnQlF1Z01nTVFmd2QrQVh3akFFRXdheUlNSkFBQ1FDQUNRUUpOQkVBZ0FrRUNkQ0lDUVp3cGFpZ0NBQ0VQSUFKQmtDbHFLQUlBSVE0RFFBSi9JQUVvQWdRaUFpQUJLQUpvUndSQUlBRWdBa0VCYWpZQ0JDQUNMUUFBREFFTElBRVFFZ3NpQWhCd0RRQUxRUUVoQmdKQUFrQWdBa0VyYXc0REFBRUFBUXRCZjBFQklBSkJMVVliSVFZZ0FTZ0NCQ0lDSUFFb0FtaEhCRUFnQVNBQ1FRRnFOZ0lFSUFJdEFBQWhBZ3dCQ3lBQkVCSWhBZ3NDUUFKQUEwQWdCVUdLR21vc0FBQWdBa0VnY2tZRVFBSkFJQVZCQmtzTkFDQUJLQUlFSWdJZ0FTZ0NhRWNFUUNBQklBSkJBV28yQWdRZ0FpMEFBQ0VDREFFTElBRVFFaUVDQ3lBRlFRRnFJZ1ZCQ0VjTkFRd0NDd3NnQlVFRFJ3UkFJQVZCQ0VZTkFTQURSU0FGUVFSSmNnMENJQVZCQ0VZTkFRc2dBU2tEY0NJVVFnQlpCRUFnQVNBQktBSUVRUUZyTmdJRUN5QURSU0FGUVFSSmNnMEFJQlJDQUZNaEFnTkFJQUpGQkVBZ0FTQUJLQUlFUVFGck5nSUVDeUFGUVFGcklnVkJBMHNOQUFzTFFnQWhGQ01BUVJCcklnSWtBQUorSUFheVF3QUFnSCtVdkNJRFFmLy8vLzhIY1NJQlFZQ0FnQVJyUWYvLy8vY0hUUVJBSUFHdFFobUdRb0NBZ0lDQWdJREFQM3dNQVFzZ0E2MUNHWVpDZ0lDQWdJQ0F3UC8vQUlRZ0FVR0FnSUQ4QjA4TkFCcENBQ0FCUlEwQUdpQUNJQUd0UWdBZ0FXY2lBVUhSQUdvUUx5QUNLUU1BSVJRZ0Fpa0RDRUtBZ0lDQWdJREFBSVZCaWY4QUlBRnJyVUl3aG9RTElSVWdEQ0FVTndNQUlBd2dGU0FEUVlDQWdJQjRjYTFDSUlhRU53TUlJQUpCRUdva0FDQU1LUU1JSVJRZ0RDa0RBQ0VWREFJTEFrQUNRQUpBSUFVTkFFRUFJUVVEUUNBRlFjY2NhaXdBQUNBQ1FTQnlSdzBCQWtBZ0JVRUJTdzBBSUFFb0FnUWlBaUFCS0FKb1J3UkFJQUVnQWtFQmFqWUNCQ0FDTFFBQUlRSU1BUXNnQVJBU0lRSUxJQVZCQVdvaUJVRURSdzBBQ3d3QkN3SkFBa0FnQlE0RUFBRUJBZ0VMQWtBZ0FrRXdSdzBBQW44Z0FTZ0NCQ0lGSUFFb0FtaEhCRUFnQVNBRlFRRnFOZ0lFSUFVdEFBQU1BUXNnQVJBU0MwRmZjVUhZQUVZRVFDTUFRYkFEYXlJQ0pBQUNmeUFCS0FJRUlnVWdBU2dDYUVjRVFDQUJJQVZCQVdvMkFnUWdCUzBBQUF3QkN5QUJFQklMSVFVQ1FBSi9BMEFnQlVFd1J3UkFBa0FnQlVFdVJ3MEVJQUVvQWdRaUJTQUJLQUpvUmcwQUlBRWdCVUVCYWpZQ0JDQUZMUUFBREFNTEJTQUJLQUlFSWdVZ0FTZ0NhRWNFZjBFQklRb2dBU0FGUVFGcU5nSUVJQVV0QUFBRlFRRWhDaUFCRUJJTElRVU1BUXNMSUFFUUVnc2hCVUVCSVFRZ0JVRXdSdzBBQTBBZ0YwSUJmU0VYQW44Z0FTZ0NCQ0lGSUFFb0FtaEhCRUFnQVNBRlFRRnFOZ0lFSUFVdEFBQU1BUXNnQVJBU0N5SUZRVEJHRFFBTFFRRWhDZ3RDZ0lDQWdJQ0F3UDgvSVJVQ1FBTkFBa0FnQlVFZ2NpRUxBa0FDUUNBRlFUQnJJZ2hCQ2trTkFDQUZRUzVISUF0QjRRQnJRUVpQY1EwRUlBVkJMa2NOQUNBRURRSkJBU0VFSUJRaEZ3d0JDeUFMUWRjQWF5QUlJQVZCT1VvYklRVUNRQ0FVUWdkWEJFQWdCU0FKUVFSMGFpRUpEQUVMSUJSQ0hGY0VRQ0FDUVRCcUlBVVFRU0FDUVNCcUlCa2dGVUlBUW9DQWdJQ0FnTUQ5UHhBWUlBSkJFR29nQWlrRElDSVpJQUlwQXlnaUZTQUNLUU13SUFJcEF6Z1FHQ0FDSUJZZ0dDQUNLUU1RSUFJcEF4Z1FQQ0FDS1FNSUlSZ2dBaWtEQUNFV0RBRUxJQVZGSUFkeURRQWdBa0hRQUdvZ0dTQVZRZ0JDZ0lDQWdJQ0FnUDgvRUJnZ0FrRkFheUFXSUJnZ0Fpa0RVQ0FDS1FOWUVEd2dBaWtEU0NFWVFRRWhCeUFDS1FOQUlSWUxJQlJDQVh3aEZFRUJJUW9MSUFFb0FnUWlCU0FCS0FKb1J3Ui9JQUVnQlVFQmFqWUNCQ0FGTFFBQUJTQUJFQklMSVFVTUFRc0xRUzRoQlFzQ2ZpQUtSUVJBQWtBQ1FDQUJLUU53UWdCWkJFQWdBU0FCS0FJRUlnVkJBV3MyQWdRZ0EwVU5BU0FCSUFWQkFtczJBZ1FnQkVVTkFpQUJJQVZCQTJzMkFnUU1BZ3NnQXcwQkN5QUJRZ0FRVXdzZ0FrSGdBR29nQnJkRUFBQUFBQUFBQUFDaUVGMGdBaWtEWUNFV0lBSXBBMmdNQVFzZ0ZFSUhWd1JBSUJRaEZRTkFJQWxCQkhRaENTQVZRZ0Y4SWhWQ0NGSU5BQXNMQWtBQ1FBSkFJQVZCWDNGQjBBQkdCRUFnQVNBREVPVUNJaFZDZ0lDQWdJQ0FnSUNBZjFJTkF5QURCRUFnQVNrRGNFSUFXUTBDREFNTFFnQWhGaUFCUWdBUVUwSUFEQVFMUWdBaEZTQUJLUU53UWdCVERRSUxJQUVnQVNnQ0JFRUJhellDQkF0Q0FDRVZDeUFKUlFSQUlBSkI4QUJxSUFhM1JBQUFBQUFBQUFBQW9oQmRJQUlwQTNBaEZpQUNLUU40REFFTElCY2dGQ0FFRzBJQ2hpQVZmRUlnZlNJVVFRQWdEMnV0VlFSQVFkU0JBVUhFQURZQ0FDQUNRYUFCYWlBR0VFRWdBa0dRQVdvZ0Fpa0RvQUVnQWlrRHFBRkNmMEwvLy8vLy8vKy8vLzhBRUJnZ0FrR0FBV29nQWlrRGtBRWdBaWtEbUFGQ2YwTC8vLy8vLy8rLy8vOEFFQmdnQWlrRGdBRWhGaUFDS1FPSUFRd0JDeUFQUWVJQmE2d2dGRmNFUUNBSlFRQk9CRUFEUUNBQ1FhQURhaUFXSUJoQ0FFS0FnSUNBZ0lEQS83OS9FRHdnRmlBWVFvQ0FnSUNBZ0lEL1B4RGdBU0VCSUFKQmtBTnFJQllnR0NBV0lBSXBBNkFESUFGQkFFZ2lBeHNnR0NBQ0tRT29BeUFER3hBOElCUkNBWDBoRkNBQ0tRT1lBeUVZSUFJcEE1QURJUllnQ1VFQmRDQUJRUUJPY2lJSlFRQk9EUUFMQ3dKK0lCUWdENng5UWlCOEloV25JZ0ZCQUNBQlFRQktHeUFPSUJVZ0RxMVRHeUlCUWZFQVRnUkFJQUpCZ0FOcUlBWVFRU0FDS1FPSUF5RVhJQUlwQTRBRElSbENBQXdCQ3lBQ1FlQUNha0dRQVNBQmF4RGZBUkJkSUFKQjBBSnFJQVlRUVNBQ1FmQUNhaUFDS1FQZ0FpQUNLUVBvQWlBQ0tRUFFBaUlaSUFJcEE5Z0NJaGNRNndJZ0Fpa0QrQUloR2lBQ0tRUHdBZ3NoRlNBQ1FjQUNhaUFKSUFsQkFYRkZJQllnR0VJQVFnQVFlMEVBUnlBQlFTQkljWEVpQVdvUWtBRWdBa0d3QW1vZ0dTQVhJQUlwQThBQ0lBSXBBOGdDRUJnZ0FrR1FBbW9nQWlrRHNBSWdBaWtEdUFJZ0ZTQWFFRHdnQWtHZ0FtcENBQ0FXSUFFYlFnQWdHQ0FCR3lBWklCY1FHQ0FDUVlBQ2FpQUNLUU9nQWlBQ0tRT29BaUFDS1FPUUFpQUNLUU9ZQWhBOElBSkI4QUZxSUFJcEE0QUNJQUlwQTRnQ0lCVWdHaERlQVNBQ0tRUHdBU0lWSUFJcEEvZ0JJaGRDQUVJQUVIdEZCRUJCMUlFQlFjUUFOZ0lBQ3lBQ1FlQUJhaUFWSUJjZ0ZLY1E2Z0lnQWlrRDRBRWhGaUFDS1FQb0FRd0JDMEhVZ1FGQnhBQTJBZ0FnQWtIUUFXb2dCaEJCSUFKQndBRnFJQUlwQTlBQklBSXBBOWdCUWdCQ2dJQ0FnSUNBd0FBUUdDQUNRYkFCYWlBQ0tRUEFBU0FDS1FQSUFVSUFRb0NBZ0lDQWdNQUFFQmdnQWlrRHNBRWhGaUFDS1FPNEFRc2hGQ0FNSUJZM0F4QWdEQ0FVTndNWUlBSkJzQU5xSkFBZ0RDa0RHQ0VVSUF3cEF4QWhGUXdHQ3lBQktRTndRZ0JURFFBZ0FTQUJLQUlFUVFGck5nSUVDeUFCSVFVZ0JpRUpJQU1oQ2tFQUlRWkJBQ0VESXdCQmtNWUFheUlFSkFCQkFDQU9JQTlxSWhKcklSTUNRQUovQTBBZ0FrRXdSd1JBQWtBZ0FrRXVSdzBFSUFVb0FnUWlBU0FGS0FKb1JnMEFJQVVnQVVFQmFqWUNCQ0FCTFFBQURBTUxCU0FGS0FJRUlnRWdCU2dDYUVjRWYwRUJJUVlnQlNBQlFRRnFOZ0lFSUFFdEFBQUZRUUVoQmlBRkVCSUxJUUlNQVFzTElBVVFFZ3NoQWtFQklRY2dBa0V3UncwQUEwQWdGRUlCZlNFVUFuOGdCU2dDQkNJQklBVW9BbWhIQkVBZ0JTQUJRUUZxTmdJRUlBRXRBQUFNQVFzZ0JSQVNDeUlDUVRCR0RRQUxRUUVoQmdzZ0JFRUFOZ0tRQmdKK0FrQUNRQUpBQWtBQ1FDQUNRUzVHSWdGRklBSkJNR3NpQ0VFSlMzRkZCRUFEUUFKQUlBRkJBWEVFUUNBSFJRUkFJQlVoRkVFQklRY01BZ3NnQmtVaEFRd0VDeUFWUWdGOElSVWdBMEg4RDB3RVFDQU5JQlduSUFKQk1FWWJJUTBnQkVHUUJtb2dBMEVDZEdvaUFTQUxCSDhnQWlBQktBSUFRUXBzYWtFd2F3VWdDQXMyQWdCQkFTRUdRUUFnQzBFQmFpSUJJQUZCQ1VZaUFSc2hDeUFCSUFOcUlRTU1BUXNnQWtFd1JnMEFJQVFnQkNnQ2dFWkJBWEkyQW9CR1FkeVBBU0VOQ3dKL0lBVW9BZ1FpQVNBRktBSm9Sd1JBSUFVZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFVUUVnc2lBa0V1UmlJQklBSkJNR3NpQ0VFS1NYSU5BQXNMSUJRZ0ZTQUhHeUVVSUFaRklBSkJYM0ZCeFFCSGNrVUVRQUpBSUFVZ0NoRGxBaUlXUW9DQWdJQ0FnSUNBZ0g5U0RRQWdDa1VOQlVJQUlSWWdCU2tEY0VJQVV3MEFJQVVnQlNnQ0JFRUJhellDQkFzZ0JrVU5BeUFVSUJaOElSUU1CUXNnQmtVaEFTQUNRUUJJRFFFTElBVXBBM0JDQUZNTkFDQUZJQVVvQWdSQkFXczJBZ1FMSUFGRkRRSUxRZFNCQVVFY05nSUFDMElBSVJVZ0JVSUFFRk5DQUF3QkN5QUVLQUtRQmlJQlJRUkFJQVFnQ2JkRUFBQUFBQUFBQUFDaUVGMGdCQ2tEQUNFVklBUXBBd2dNQVFzZ0ZDQVZVaUFWUWdsVmNpQU9RUjVNUVFBZ0FTQU9kaHR5UlFSQUlBUkJNR29nQ1JCQklBUkJJR29nQVJDUUFTQUVRUkJxSUFRcEF6QWdCQ2tET0NBRUtRTWdJQVFwQXlnUUdDQUVLUU1RSVJVZ0JDa0RHQXdCQ3lBUFFYNXRyU0FVVXdSQVFkU0JBVUhFQURZQ0FDQUVRZUFBYWlBSkVFRWdCRUhRQUdvZ0JDa0RZQ0FFS1FOb1FuOUMvLy8vLy8vL3YvLy9BQkFZSUFSQlFHc2dCQ2tEVUNBRUtRTllRbjlDLy8vLy8vLy92Ly8vQUJBWUlBUXBBMEFoRlNBRUtRTklEQUVMSUE5QjRnRnJyQ0FVVlFSQVFkU0JBVUhFQURZQ0FDQUVRWkFCYWlBSkVFRWdCRUdBQVdvZ0JDa0RrQUVnQkNrRG1BRkNBRUtBZ0lDQWdJREFBQkFZSUFSQjhBQnFJQVFwQTRBQklBUXBBNGdCUWdCQ2dJQ0FnSUNBd0FBUUdDQUVLUU53SVJVZ0JDa0RlQXdCQ3lBTEJFQWdDMEVJVEFSQUlBUkJrQVpxSUFOQkFuUnFJZ0VvQWdBaEJRTkFJQVZCQ213aEJTQUxRUUZxSWd0QkNVY05BQXNnQVNBRk5nSUFDeUFEUVFGcUlRTUxBa0FnRFNBVXB5SUhTaUFOUVFsT2NpQUhRUkZLY2cwQUlBZEJDVVlFUUNBRVFjQUJhaUFKRUVFZ0JFR3dBV29nQkNnQ2tBWVFrQUVnQkVHZ0FXb2dCQ2tEd0FFZ0JDa0R5QUVnQkNrRHNBRWdCQ2tEdUFFUUdDQUVLUU9nQVNFVklBUXBBNmdCREFJTElBZEJDRXdFUUNBRVFaQUNhaUFKRUVFZ0JFR0FBbW9nQkNnQ2tBWVFrQUVnQkVId0FXb2dCQ2tEa0FJZ0JDa0RtQUlnQkNrRGdBSWdCQ2tEaUFJUUdDQUVRZUFCYWtFQUlBZHJRUUowUVpBcGFpZ0NBQkJCSUFSQjBBRnFJQVFwQS9BQklBUXBBL2dCSUFRcEErQUJJQVFwQStnQkVPa0NJQVFwQTlBQklSVWdCQ2tEMkFFTUFnc2dEaUFIUVgxc2FrRWJhaUlCUVI1TVFRQWdCQ2dDa0FZaUFpQUJkaHNOQUNBRVFlQUNhaUFKRUVFZ0JFSFFBbW9nQWhDUUFTQUVRY0FDYWlBRUtRUGdBaUFFS1FQb0FpQUVLUVBRQWlBRUtRUFlBaEFZSUFSQnNBSnFJQWRCQW5SQnlDaHFLQUlBRUVFZ0JFR2dBbW9nQkNrRHdBSWdCQ2tEeUFJZ0JDa0RzQUlnQkNrRHVBSVFHQ0FFS1FPZ0FpRVZJQVFwQTZnQ0RBRUxBMEFnQkVHUUJtb2dBeUlDUVFGcklnTkJBblJxS0FJQVJRMEFDMEVBSVFzQ1FDQUhRUWx2SWdGRkJFQkJBQ0VCREFFTElBRWdBVUVKYWlBSFFRQk9HeUVEQWtBZ0FrVUVRRUVBSVFGQkFDRUNEQUVMUVlDVTY5d0RRUUFnQTJ0QkFuUkJrQ2xxS0FJQUlnWnRJUXBCQUNFSVFRQWhCVUVBSVFFRFFDQUVRWkFHYWlBRlFRSjBhaUlOSUFnZ0RTZ0NBQ0lOSUFadUloQnFJZ2cyQWdBZ0FVRUJha0gvRDNFZ0FTQUlSU0FCSUFWR2NTSUlHeUVCSUFkQkNXc2dCeUFJR3lFSElBb2dEU0FHSUJCc2Eyd2hDQ0FGUVFGcUlnVWdBa2NOQUFzZ0NFVU5BQ0FFUVpBR2FpQUNRUUowYWlBSU5nSUFJQUpCQVdvaEFnc2dCeUFEYTBFSmFpRUhDd05BQWtBZ0IwRWtUZ1JBSUFkQkpFY05BU0FFUVpBR2FpQUJRUUowYWlnQ0FFSFI2ZmtFVHcwQkN5QUNRZjhQYWlFR1FRQWhDQU5BSUFpdElBUkJrQVpxSUFaQi93OXhJZ05CQW5ScUlnWTFBZ0JDSFlaOEloUkNnWlRyM0FOVUJIOUJBQVVnRkNBVVFvQ1U2OXdEZ0NJVlFvQ1U2OXdEZm4waEZDQVZwd3NoQ0NBR0lCU25JZ1kyQWdBZ0FpQUNJQUlnQXlBR0d5QUJJQU5HR3lBRElBSkJBV3RCL3c5eFJ4c2hBaUFEUVFGcklRWWdBU0FEUncwQUN5QUxRUjFySVFzZ0NFVU5BU0FDSUFGQkFXdEIvdzl4SWdGR0JFQWdCRUdRQm1vaUF5QUNRZjRQYWtIL0QzRkJBblJxSWdZZ0JpZ0NBQ0FDUVFGclFmOFBjU0lDUVFKMElBTnFLQUlBY2pZQ0FBc2dCMEVKYWlFSElBUkJrQVpxSUFGQkFuUnFJQWcyQWdBTUFRc0xBa0FEUUNBQ1FRRnFRZjhQY1NFRElBUkJrQVpxSUFKQkFXdEIvdzl4UVFKMGFpRUlBMEFnQVNFR1FRQWhCUUpBQWtBRFFBSkFJQVVnQm1wQi93OXhJZ0VnQWtZTkFDQUVRWkFHYWlBQlFRSjBhaWdDQUNJQklBVkJBblJCNENocUtBSUFJZ3BKRFFBZ0FTQUtTdzBDSUFWQkFXb2lCVUVFUncwQkN3c2dCMEVrUncwQVFnQWhGRUVBSVFWQ0FDRVZBMEFnQWlBRklBWnFRZjhQY1NJQlJnUkFJQUpCQVdwQi93OXhJZ0pCQW5RZ0JHcEJBRFlDakFZTElBUkJnQVpxSUJRZ0ZVSUFRb0NBZ0lEbG1yZU93QUFRR0NBRVFmQUZhaUFFUVpBR2FpQUJRUUowYWlnQ0FCQ1FBU0FFUWVBRmFpQUVLUU9BQmlBRUtRT0lCaUFFS1FQd0JTQUVLUVA0QlJBOElBUXBBK2dGSVJVZ0JDa0Q0QVVoRkNBRlFRRnFJZ1ZCQkVjTkFBc2dCRUhRQldvZ0NSQkJJQVJCd0FWcUlCUWdGU0FFS1FQUUJTQUVLUVBZQlJBWUlBUXBBOGdGSVJWQ0FDRVVJQVFwQThBRklSWWdDMEh4QUdvaUJ5QVBheUlEUVFBZ0EwRUFTaHNnRGlBRElBNUlJZ1ViSWdGQjhBQk1EUUVNQkF0QkNVRUJJQWRCTFVvYklnb2dDMm9oQ3lBR0lBSWlBVVlOQVVHQWxPdmNBeUFLZGlFTlFYOGdDblJCZjNNaEVFRUFJUVVnQmlFQkEwQWdCRUdRQm1vZ0JrRUNkR29pRVNBRklCRW9BZ0FpRVNBS2Rtb2lCVFlDQUNBQlFRRnFRZjhQY1NBQklBVkZJQUVnQmtaeElnVWJJUUVnQjBFSmF5QUhJQVViSVFjZ0VDQVJjU0FOYkNFRklBWkJBV3BCL3c5eElnWWdBa2NOQUFzZ0JVVU5BU0FCSUFOSEJFQWdCRUdRQm1vZ0FrRUNkR29nQlRZQ0FDQURJUUlNQXdzZ0NDQUlLQUlBUVFGeU5nSUFJQU1oQVF3QkN3c0xJQVJCa0FWcVFlRUJJQUZyRU44QkVGMGdCRUd3QldvZ0JDa0RrQVVnQkNrRG1BVWdGaUFWRU9zQ0lBUXBBN2dGSVJrZ0JDa0RzQVVoR0NBRVFZQUZha0h4QUNBQmF4RGZBUkJkSUFSQm9BVnFJQllnRlNBRUtRT0FCU0FFS1FPSUJSRG5BaUFFUWZBRWFpQVdJQlVnQkNrRG9BVWlGQ0FFS1FPb0JTSVhFTjRCSUFSQjRBUnFJQmdnR1NBRUtRUHdCQ0FFS1FQNEJCQThJQVFwQStnRUlSVWdCQ2tENEFRaEZnc0NRQ0FHUVFScVFmOFBjU0lLSUFKR0RRQUNRQ0FFUVpBR2FpQUtRUUowYWlnQ0FDSUtRZi9KdGU0QlRRUkFJQXBGSUFaQkJXcEIvdzl4SUFKR2NRMEJJQVJCOEFOcUlBbTNSQUFBQUFBQUFOQS9vaEJkSUFSQjRBTnFJQlFnRnlBRUtRUHdBeUFFS1FQNEF4QThJQVFwQStnRElSY2dCQ2tENEFNaEZBd0JDeUFLUVlES3RlNEJSd1JBSUFSQjBBUnFJQW0zUkFBQUFBQUFBT2cvb2hCZElBUkJ3QVJxSUJRZ0Z5QUVLUVBRQkNBRUtRUFlCQkE4SUFRcEE4Z0VJUmNnQkNrRHdBUWhGQXdCQ3lBSnR5RWJJQUlnQmtFRmFrSC9EM0ZHQkVBZ0JFR1FCR29nRzBRQUFBQUFBQURnUDZJUVhTQUVRWUFFYWlBVUlCY2dCQ2tEa0FRZ0JDa0RtQVFRUENBRUtRT0lCQ0VYSUFRcEE0QUVJUlFNQVFzZ0JFR3dCR29nRzBRQUFBQUFBQURvUDZJUVhTQUVRYUFFYWlBVUlCY2dCQ2tEc0FRZ0JDa0R1QVFRUENBRUtRT29CQ0VYSUFRcEE2QUVJUlFMSUFGQjd3QktEUUFnQkVIUUEyb2dGQ0FYUWdCQ2dJQ0FnSUNBd1A4L0VPY0NJQVFwQTlBRElBUXBBOWdEUWdCQ0FCQjdEUUFnQkVIQUEyb2dGQ0FYUWdCQ2dJQ0FnSUNBd1A4L0VEd2dCQ2tEeUFNaEZ5QUVLUVBBQXlFVUN5QUVRYkFEYWlBV0lCVWdGQ0FYRUR3Z0JFR2dBMm9nQkNrRHNBTWdCQ2tEdUFNZ0dDQVpFTjRCSUFRcEE2Z0RJUlVnQkNrRG9BTWhGZ0pBUVg0Z0Vtc2dCMEgvLy8vL0IzRk9EUUFnQkNBVlF2Ly8vLy8vLy8vLy93Q0ROd09ZQXlBRUlCWTNBNUFESUFSQmdBTnFJQllnRlVJQVFvQ0FnSUNBZ0lEL1B4QVlJQVFwQTVBREloZ2dCQ2tEbUFNaUdVS0FnSUNBZ0lDQXVNQUFFT0FCSVFJZ0ZTQUVLUU9JQXlBQ1FRQklJZ1liSVJVZ0ZpQUVLUU9BQXlBR0d5RVdJQk1nQ3lBQ1FRQk9haUlMUWU0QWFrNEVRQ0FGSUFVZ0FTQURSM0VnR0NBWlFvQ0FnSUNBZ0lDNHdBQVE0QUZCQUVnYlFRRkhEUUVnRkNBWFFnQkNBQkI3UlEwQkMwSFVnUUZCeEFBMkFnQUxJQVJCOEFKcUlCWWdGU0FMRU9vQ0lBUXBBL0FDSVJVZ0JDa0QrQUlMSVJRZ0RDQVZOd01nSUF3Z0ZEY0RLQ0FFUVpER0FHb2tBQ0FNS1FNb0lSUWdEQ2tESUNFVkRBUUxJQUVwQTNCQ0FGa0VRQ0FCSUFFb0FnUkJBV3MyQWdRTERBRUxBa0FDZnlBQktBSUVJZ0lnQVNnQ2FFY0VRQ0FCSUFKQkFXbzJBZ1FnQWkwQUFBd0JDeUFCRUJJTFFTaEdCRUJCQVNFRkRBRUxRb0NBZ0lDQWdPRC8vd0FoRkNBQktRTndRZ0JURFFNZ0FTQUJLQUlFUVFGck5nSUVEQU1MQTBBQ2Z5QUJLQUlFSWdJZ0FTZ0NhRWNFUUNBQklBSkJBV28yQWdRZ0FpMEFBQXdCQ3lBQkVCSUxJZ0pCTUd0QkNra2dBa0hCQUd0QkdrbHlJQUpCM3dCR2NrVWdBa0hoQUd0QkdrOXhSUVJBSUFWQkFXb2hCUXdCQ3d0Q2dJQ0FnSUNBNFAvL0FDRVVJQUpCS1VZTkFpQUJLUU53SWhkQ0FGa0VRQ0FCSUFFb0FnUkJBV3MyQWdRTEFrQWdBd1JBSUFVTkFRd0VDd3dCQ3dOQUlBVkJBV3NoQlNBWFFnQlpCRUFnQVNBQktBSUVRUUZyTmdJRUN5QUZEUUFMREFJTFFkU0JBVUVjTmdJQUlBRkNBQkJUQzBJQUlSUUxJQUFnRlRjREFDQUFJQlEzQXdnZ0RFRXdhaVFBQzhvR0FnUi9BMzRqQUVHQUFXc2lCU1FBQWtBQ1FBSkFJQU1nQkVJQVFnQVFlMFVOQUFKL0lBUkMvLy8vLy8vL1A0TWhDUUovSUFSQ01JaW5RZi8vQVhFaUJrSC8vd0ZIQkVCQkJDQUdEUUVhUVFKQkF5QURJQW1FVUJzTUFnc2dBeUFKaEZBTEMwVU5BQ0FDUWpDSXB5SUlRZi8vQVhFaUJrSC8vd0ZIRFFFTElBVkJFR29nQVNBQ0lBTWdCQkFZSUFVZ0JTa0RFQ0lCSUFVcEF4Z2lBaUFCSUFJUTZRSWdCU2tEQ0NFQ0lBVXBBd0FoQkF3QkN5QUJJQUpDLy8vLy8vLy9QNE1nQnExQ01JYUVJZ29nQXlBRVF2Ly8vLy8vL3orRElBUkNNSWluUWYvL0FYRWlCNjFDTUlhRUlna1FlMEVBVEFSQUlBRWdDaUFESUFrUWV3UkFJQUVoQkF3Q0N5QUZRZkFBYWlBQklBSkNBRUlBRUJnZ0JTa0RlQ0VDSUFVcEEzQWhCQXdCQ3lBR0JINGdBUVVnQlVIZ0FHb2dBU0FLUWdCQ2dJQ0FnSUNBd0x2QUFCQVlJQVVwQTJnaUNrSXdpS2RCK0FCcklRWWdCU2tEWUFzaEJDQUhSUVJBSUFWQjBBQnFJQU1nQ1VJQVFvQ0FnSUNBZ01DN3dBQVFHQ0FGS1FOWUlnbENNSWluUWZnQWF5RUhJQVVwQTFBaEF3c2dDVUwvLy8vLy8vOC9nMEtBZ0lDQWdJREFBSVFoQ1NBS1F2Ly8vLy8vL3orRFFvQ0FnSUNBZ01BQWhDRUtJQVlnQjBvRVFBTkFBbjRnQ2lBSmZTQURJQVJXclgwaUMwSUFXUVJBSUFzZ0JDQURmU0lFaEZBRVFDQUZRU0JxSUFFZ0FrSUFRZ0FRR0NBRktRTW9JUUlnQlNrRElDRUVEQVVMSUF0Q0FZWWdCRUkvaUlRTUFRc2dDa0lCaGlBRVFqK0loQXNoQ2lBRVFnR0dJUVFnQmtFQmF5SUdJQWRLRFFBTElBY2hCZ3NDUUNBS0lBbDlJQU1nQkZhdGZTSUpRZ0JUQkVBZ0NpRUpEQUVMSUFrZ0JDQURmU0lFaEVJQVVnMEFJQVZCTUdvZ0FTQUNRZ0JDQUJBWUlBVXBBemdoQWlBRktRTXdJUVFNQVFzZ0NVTC8vLy8vLy84L1dBUkFBMEFnQkVJL2lDRUJJQVpCQVdzaEJpQUVRZ0dHSVFRZ0FTQUpRZ0dHaENJSlFvQ0FnSUNBZ01BQVZBMEFDd3NnQ0VHQWdBSnhJUWNnQmtFQVRBUkFJQVZCUUdzZ0JDQUpRdi8vLy8vLy96K0RJQVpCK0FCcUlBZHlyVUl3aG9SQ0FFS0FnSUNBZ0lEQXd6OFFHQ0FGS1FOSUlRSWdCU2tEUUNFRURBRUxJQWxDLy8vLy8vLy9QNE1nQmlBSGNxMUNNSWFFSVFJTElBQWdCRGNEQUNBQUlBSTNBd2dnQlVHQUFXb2tBQXN5QUNBQVFmOEJjU0lBSUFFUTdBSWlBVUYvYzNGQkFYUWdBQ0FCYzJzaUFFRnFjVUVCZENBQVFSVnphMEVZZEVFWWRRdXFEd0lGZnc1K0l3QkIwQUpySWdVa0FDQUVRdi8vLy8vLy96K0RJUXNnQWtMLy8vLy8vLzgvZ3lFS0lBSWdCSVZDZ0lDQWdJQ0FnSUNBZjRNaERTQUVRakNJcDBILy93RnhJUWdDUUFKQUlBSkNNSWluUWYvL0FYRWlDVUVCYTBIOS93Rk5CRUFnQ0VFQmEwSCsvd0ZKRFFFTElBRlFJQUpDLy8vLy8vLy8vLy8vQUlNaURFS0FnSUNBZ0lEQS8vOEFWQ0FNUW9DQWdJQ0FnTUQvL3dCUkcwVUVRQ0FDUW9DQWdJQ0FnQ0NFSVEwTUFnc2dBMUFnQkVMLy8vLy8vLy8vLy84QWd5SUNRb0NBZ0lDQWdNRC8vd0JVSUFKQ2dJQ0FnSUNBd1AvL0FGRWJSUVJBSUFSQ2dJQ0FnSUNBSUlRaERTQURJUUVNQWdzZ0FTQU1Rb0NBZ0lDQWdNRC8vd0NGaEZBRVFDQURJQUpDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFRZ0FoQVVLQWdJQ0FnSURnLy84QUlRME1Bd3NnRFVLQWdJQ0FnSURBLy84QWhDRU5RZ0FoQVF3Q0N5QURJQUpDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFRZ0FoQVF3Q0N5QUJJQXlFVUFSQVFvQ0FnSUNBZ09ELy93QWdEU0FDSUFPRVVCc2hEVUlBSVFFTUFnc2dBaUFEaEZBRVFDQU5Rb0NBZ0lDQWdNRC8vd0NFSVExQ0FDRUJEQUlMSUF4Qy8vLy8vLy8vUDFnRVFDQUZRY0FDYWlBQklBb2dBU0FLSUFwUUlnWWJlU0FHUVFaMHJYeW5JZ1pCRDJzUUwwRVFJQVpySVFZZ0JTa0R5QUloQ2lBRktRUEFBaUVCQ3lBQ1F2Ly8vLy8vL3o5V0RRQWdCVUd3QW1vZ0F5QUxJQU1nQ3lBTFVDSUhHM2tnQjBFR2RLMThweUlIUVE5ckVDOGdCaUFIYWtFUWF5RUdJQVVwQTdnQ0lRc2dCU2tEc0FJaEF3c2dCVUdnQW1vZ0MwS0FnSUNBZ0lEQUFJUWlFa0lQaGlBRFFqR0loQ0lDUWdCQ2dJQ0FnTERtdklMMUFDQUNmU0lFUWdBUUt5QUZRWkFDYWtJQUlBVXBBNmdDZlVJQUlBUkNBQkFySUFWQmdBSnFJQVVwQTVnQ1FnR0dJQVVwQTVBQ1FqK0loQ0lFUWdBZ0FrSUFFQ3NnQlVId0FXb2dCRUlBUWdBZ0JTa0RpQUo5UWdBUUt5QUZRZUFCYWlBRktRUDRBVUlCaGlBRktRUHdBVUkvaUlRaUJFSUFJQUpDQUJBcklBVkIwQUZxSUFSQ0FFSUFJQVVwQStnQmZVSUFFQ3NnQlVIQUFXb2dCU2tEMkFGQ0FZWWdCU2tEMEFGQ1A0aUVJZ1JDQUNBQ1FnQVFLeUFGUWJBQmFpQUVRZ0JDQUNBRktRUElBWDFDQUJBcklBVkJvQUZxSUFKQ0FDQUZLUU80QVVJQmhpQUZLUU93QVVJL2lJUkNBWDBpQWtJQUVDc2dCVUdRQVdvZ0EwSVBoa0lBSUFKQ0FCQXJJQVZCOEFCcUlBSkNBRUlBSUFVcEE2Z0JJQVVwQTZBQklnd2dCU2tEbUFGOElnUWdERlN0ZkNBRVFnRldyWHg5UWdBUUt5QUZRWUFCYWtJQklBUjlRZ0FnQWtJQUVDc2dCaUFKSUFocmFpRUdBbjhnQlNrRGNDSVRRZ0dHSWc0Z0JTa0RpQUVpRDBJQmhpQUZLUU9BQVVJL2lJUjhJaEJDNSt3QWZTSVVRaUNJSWdJZ0NrS0FnSUNBZ0lEQUFJUWlGVUlmaUVMLy8vLy9ENE1pQkg0aUVTQUJRZ0dHSWd4Q0lJZ2lDeUFRSUJSV3JTQU9JQkJXclNBRktRTjRRZ0dHSUJOQ1A0aUVJQTlDUDRoOGZIeENBWDBpRTBJZ2lDSVFmbndpRGlBUlZLMGdEaUFPSUJOQy8vLy8vdytESWhNZ0FVSS9pQ0lXSUFwQ0FZYUVRdi8vLy84UGd5SUtmbndpRGxhdGZDQUVJQkIrZkNBRUlCTitJaEVnQ2lBUWZud2lEeUFSVksxQ0lJWWdEMElnaUlSOElBNGdEaUFQUWlDR2ZDSU9WcTE4SUE0Z0RpQVVRdi8vLy84UGd5SVVJQXArSWhFZ0FpQUxmbndpRHlBUlZLMGdEeUFQSUJNZ0RFTCsvLy8vRDRNaUVYNThJZzlXclh4OElnNVdyWHdnRGlBRUlCUitJaGNnRUNBUmZud2lCQ0FDSUFwK2ZDSUtJQXNnRTM1OEloQkNJSWdnQ2lBUVZxMGdCQ0FYVkswZ0JDQUtWcTE4ZkVJZ2hvUjhJZ1FnRGxTdGZDQUVJQThnQWlBUmZpSUNJQXNnRkg1OElndENJSWdnQWlBTFZxMUNJSWFFZkNJQ0lBOVVyU0FDSUJCQ0lJWjhJQUpVclh4OElnSWdCRlN0ZkNJRVF2Ly8vLy8vLy84QVdBUkFJQlZDQVlZZ0ZvUWhGU0FGUWRBQWFpQUNJQVFnQXlBU0VDc2dBVUl4aGlBRktRTllmU0FGS1FOUUlnRkNBRkt0ZlNFS1FnQWdBWDBoQ3lBR1FmNy9BR29NQVFzZ0JVSGdBR29nQkVJL2hpQUNRZ0dJaENJQ0lBUkNBWWdpQkNBRElCSVFLeUFCUWpDR0lBVXBBMmg5SUFVcEEyQWlERUlBVXExOUlRcENBQ0FNZlNFTElBRWhEQ0FHUWYvL0FHb0xJZ1pCLy84QlRnUkFJQTFDZ0lDQWdJQ0F3UC8vQUlRaERVSUFJUUVNQVFzQ2ZpQUdRUUJLQkVBZ0NrSUJoaUFMUWorSWhDRUtJQVJDLy8vLy8vLy9QNE1nQnExQ01JYUVJUXdnQzBJQmhnd0JDeUFHUVk5L1RBUkFRZ0FoQVF3Q0N5QUZRVUJySUFJZ0JFRUJJQVpyRUh3Z0JVRXdhaUFNSUJVZ0JrSHdBR29RTHlBRlFTQnFJQU1nRWlBRktRTkFJZ0lnQlNrRFNDSU1FQ3NnQlNrRE9DQUZLUU1vUWdHR0lBVXBBeUFpQVVJL2lJUjlJQVVwQXpBaUJDQUJRZ0dHSWdGVXJYMGhDaUFFSUFGOUN5RUVJQVZCRUdvZ0F5QVNRZ05DQUJBcklBVWdBeUFTUWdWQ0FCQXJJQXdnQWlBQ0lBTWdBa0lCZ3lJQklBUjhJZ05VSUFvZ0FTQURWcTE4SWdFZ0VsWWdBU0FTVVJ1dGZDSUNWcTE4SWdRZ0FpQUNJQVJDZ0lDQWdJQ0F3UC8vQUZRZ0F5QUZLUU1RVmlBQklBVXBBeGdpQkZZZ0FTQUVVUnR4clh3aUFsYXRmQ0lFSUFJZ0JFS0FnSUNBZ0lEQS8vOEFWQ0FESUFVcEF3QldJQUVnQlNrRENDSURWaUFCSUFOUkczR3RmQ0lCSUFKVXJYd2dEWVFoRFFzZ0FDQUJOd01BSUFBZ0RUY0RDQ0FGUWRBQ2FpUUFDNzhDQVFGL0l3QkIwQUJySWdRa0FBSkFJQU5CZ0lBQlRnUkFJQVJCSUdvZ0FTQUNRZ0JDZ0lDQWdJQ0FnUC8vQUJBWUlBUXBBeWdoQWlBRUtRTWdJUUVnQTBILy93RklCRUFnQTBILy93QnJJUU1NQWdzZ0JFRVFhaUFCSUFKQ0FFS0FnSUNBZ0lDQS8vOEFFQmdnQTBIOS93SWdBMEg5L3dKSUcwSCsvd0ZySVFNZ0JDa0RHQ0VDSUFRcEF4QWhBUXdCQ3lBRFFZR0FmMG9OQUNBRVFVQnJJQUVnQWtJQVFvQ0FnSUNBZ0lBNUVCZ2dCQ2tEU0NFQ0lBUXBBMEFoQVNBRFFmU0Fma29FUUNBRFFZMy9BR29oQXd3QkN5QUVRVEJxSUFFZ0FrSUFRb0NBZ0lDQWdJQTVFQmdnQTBIb2dYMGdBMEhvZ1gxS0cwR2EvZ0ZxSVFNZ0JDa0RPQ0VDSUFRcEF6QWhBUXNnQkNBQklBSkNBQ0FEUWYvL0FHcXRRakNHRUJnZ0FDQUVLUU1JTndNSUlBQWdCQ2tEQURjREFDQUVRZEFBYWlRQUN6VUFJQUFnQVRjREFDQUFJQUpDLy8vLy8vLy9QNE1nQkVJd2lLZEJnSUFDY1NBQ1FqQ0lwMEgvL3dGeGNxMUNNSWFFTndNSUM0NEJBUU4vSXdCQkVHc2hBUU5BUWV5Y3I5OERJUUlDUUFOQUlBSkIzYmJodkFaR0RRRWdBa0dXejhLK0JFY0VRQ0FDUWV5Y3I5OERSdzBCSUFFZ0FEWUNEQ0FCSUFNMkFnaEJscy9DdmdSQjNiYmh2QVlnQVNnQ0RCc2hBZ3dCQ3dzZ0FTZ0NDQ0lBUVFGMFFRSnhJQUJCQVhOcUlRTWdBU2dDRENBQktBSU1RUUZyY1NFQURBRUxDeUFCS0FJSUN5d0FJQUFvQWdBYUlBQW9BZ0FnQUJDRkFXb2FJQUFvQWdBZ0FCQ0pBV29hSUFBb0FnQWdBQkNGQVdvYUN3Y0FJQUVnQUdzTENRQWdBQ0FCRU80Q0N5c0JBWDhnQUNnQ0FDSUJCRUFnQVJEN0FrRi9FRjVGQkVBZ0FDZ0NBRVVQQ3lBQVFRQTJBZ0FMUVFFTEt3RUJmeUFBS0FJQUlnRUVRQ0FCRUlBRFFYOFFYa1VFUUNBQUtBSUFSUThMSUFCQkFEWUNBQXRCQVFzTkFFRUFJQUFnQUVGL0VGNGJDNDBCQVFSL0l3QkJFR3NpQlNRQUlBRWdBaER2QWlJRVFXOU5CRUFDUUNBRVFRcE5CRUFnQUNBRUVEb2dBQ0VEREFFTElBQWdCQkNSQVVFQmFpSUdFRjhpQXhCTklBQWdCaEJNSUFBZ0JCQTVDd05BSUFFZ0FrY0VRQ0FESUFFUU5DQURRUUZxSVFNZ0FVRUJhaUVCREFFTEN5QUZRUUE2QUE4Z0F5QUZRUTlxRURRZ0JVRVFhaVFBRHdzUUZ3QUw1UVFCQjM4Z0FDZ0NCQ0FBRUVNb0FnQkhCRUFqQUVFUWF5SUNKQUFnQWlBQU5nSUFJQUlnQUNnQ0JDSUROZ0lFSUFJZ0EwRUJhallDQ0NBQUVFTWdBaWdDQkNBQkVJd0NJQUlnQWlnQ0JFRUJhallDQkNBQ0VJa0NJQUpCRUdva0FBOExJd0JCSUdzaUJ5UUFJQUFRUXlJSUFuOGdCMEVJYWlFQ0FuOGdBQkNKQVVFQmFpRUdJd0JCRUdzaUJTUUFJQVVnQmpZQ0RDTUFRUkJySWdRa0FDQUFFRU1hSUFSQmZ6WUNEQ0FFUWYvLy8vOEhOZ0lJSUFSQkRHb2dCRUVJYWhDaUFTZ0NBQ0VESUFSQkVHb2tBQ0FESUFaUEJFQWdBQkNGQVNJRUlBTkJBWFpKQkVBZ0JTQUVRUUYwTmdJSUlBVkJDR29nQlVFTWFoQjJLQUlBSVFNTElBVkJFR29rQUNBRERBRUxRYWNiRUpZQ0FBc2hCU0FBRUlrQklRWkJBQ0VESXdCQkVHc2lCQ1FBSUFSQkFEWUNEQ0FDUVF4cUlBUkJER29nQ0JDRUFpQUZCRUFnQWlnQ0VCb2dCUkJmSVFNTElBSWdBellDQUNBQ0lBTWdCbW9pQmpZQ0NDQUNJQVkyQWdRZ0FoQ0RBU0FESUFWcU5nSUFJQVJCRUdva0FDQUNLQUlJQ3lBQkVJd0NJQUlnQWlnQ0NFRUJhallDQ0NBQUVPMENJQUFRUXlBQUtBSUFJQUFvQWdRZ0FrRUVhaUlCRUlNQ0lBQWdBUkIxSUFCQkJHb2dBa0VJYWhCMUlBQVFReUFDRUlNQkVIVWdBaUFDS0FJRU5nSUFJQUFRaVFFYUlBQW9BZ0FhSUFBb0FnQWdBQkNGQVdvYUlBQW9BZ0FnQUJDRkFXb2FJQUFvQWdBYUlBSW9BZ1FpQUNBQ0tBSUlSd1JBQTBBZ0FpZ0NFQm9nQWlBQ0tBSUlRUUZyTmdJSUlBSW9BZ2dnQUVjTkFBc0xJQUlvQWdBRVFDQUNLQUlRR2lBQ0tBSUFJUUFnQWhDREFTZ0NBQ0FDS0FJQWF4b2dBQkFRQ3lBSFFTQnFKQUFMRHdBZ0FDQUFLQUlZSUFGcU5nSVlDeGNBSUFBZ0FqWUNIQ0FBSUFFMkFoUWdBQ0FCTmdJWUMxWUJBbjhDUUNBQUtBSUFJZ0pGRFFBQ2Z5QUNLQUlZSWdNZ0FpZ0NIRVlFUUNBQ0lBRWdBaWdDQUNnQ05CRUNBQXdCQ3lBQ0lBTkJCR28yQWhnZ0F5QUJOZ0lBSUFFTFFYOFFYa1VOQUNBQVFRQTJBZ0FMQ3lZQkFYOENRQ0FBS0FJQUlnSkZEUUFnQWlBQkVQNENRWDhRWGtVTkFDQUFRUUEyQWdBTEN3a0FJQUFRNUFFUUVBc3hBUUYvSUFBb0Fnd2lBU0FBS0FJUVJnUkFJQUFnQUNnQ0FDZ0NLQkVBQUE4TElBQWdBVUVFYWpZQ0RDQUJLQUlBQ3ljQkFYOGdBQ2dDRENJQklBQW9BaEJHQkVBZ0FDQUFLQUlBS0FJa0VRQUFEd3NnQVNnQ0FBc1FBQ0FBRVBBQ0lBRVE4QUp6UVFGekM0c0VBUVovSXdCQklHc2lBaVFBSUFKQkFEWUNIQ01BUVNCcklnUWtBQ0FDUVJocUlnWkJBRG9BQUNBQUlBQW9BZ0JCREdzb0FnQnFFTGtCSVFVZ0FDQUFLQUlBUVF4cktBSUFhaUVEQWtBZ0JRUkFJQU1vQWtnRVFDQUFJQUFvQWdCQkRHc29BZ0JxS0FKSUVJWURDd0pBSUFBZ0FDZ0NBRUVNYXlnQ0FHb29BZ1JCZ0NCeFJRMEFJQVJCR0dvaUF5QUFJQUFvQWdCQkRHc29BZ0JxRUE4Z0F4QXlJUWNnQXhBT0lBUkJFR29nQUJEQUFTRURJQVJCQ0dvUWhRTWhCUU5BQWtBZ0F5QUZFREZGRFFBZ0IwR0F3QUFnQXhBZkVFUkZEUUFnQXhBaUdnd0JDd3NnQXlBRkVDWkZEUUFnQUNBQUtBSUFRUXhyS0FJQWFrRUdFSUFCQ3lBR0lBQWdBQ2dDQUVFTWF5Z0NBR29RdVFFNkFBQU1BUXNnQTBFRUVJQUJDeUFFUVNCcUpBQWdCaTBBQUFSQUlBSkJFR29pQkNBQUlBQW9BZ0JCREdzb0FnQnFFQThnQkVISWh3RVFaQ0VESUFKQkNHb2dBQkRBQVNFR0lBSVFoUU1oQlNBRElBWW9BZ0FnQlNnQ0FDQUFJQUFvQWdCQkRHc29BZ0JxSUFKQkhHb2dBa0VVYWlBREtBSUFLQUlRRVFVQUdpQUVFQTRnQVFKL0lBSW9BaFJCZ0lDQWdIaElCRUFnQWlBQ0tBSWNRUVJ5TmdJY1FZQ0FnSUI0REFFTElBSW9BaFJCLy8vLy93ZEtCRUFnQWlBQ0tBSWNRUVJ5TmdJY1FmLy8vLzhIREFFTElBSW9BaFFMTmdJQUlBQWdBQ2dDQUVFTWF5Z0NBR29nQWlnQ0hCQ0FBUXNnQWtFZ2FpUUFDenNCQVg4Z0FDZ0NHQ0lDSUFBb0FoeEdCRUFnQUNBQkVHVWdBQ2dDQUNnQ05CRUNBQThMSUFBZ0FrRUJhallDR0NBQ0lBRTZBQUFnQVJCbEN6TUJBWDhnQUNnQ0RDSUJJQUFvQWhCR0JFQWdBQ0FBS0FJQUtBSW9FUUFBRHdzZ0FDQUJRUUZxTmdJTUlBRXNBQUFRWlFzcEFRRi9JQUFvQWd3aUFTQUFLQUlRUmdSQUlBQWdBQ2dDQUNnQ0pCRUFBQThMSUFFc0FBQVFaUXNRQUNBQUVQRUNJQUVROFFKelFRRnpDNDBCQVFGL0FrQWdBQ2dDQkNJQklBRW9BZ0JCREdzb0FnQnFLQUlZUlEwQUlBQW9BZ1FpQVNBQktBSUFRUXhyS0FJQWFoQzVBVVVOQUNBQUtBSUVJZ0VnQVNnQ0FFRU1heWdDQUdvb0FnUkJnTUFBY1VVTkFDQUFLQUlFSWdFZ0FTZ0NBRUVNYXlnQ0FHb29BaGdRZ3dOQmYwY05BQ0FBS0FJRUlnQWdBQ2dDQUVFTWF5Z0NBR3BCQVJDQUFRc0xEd0FnQUNBQUtBSUFLQUlZRVFBQUMxVUFJQUFnQVRZQ0JDQUFRUUE2QUFBZ0FTQUJLQUlBUVF4cktBSUFhaEM1QVFSQUlBRWdBU2dDQUVFTWF5Z0NBR29vQWtnRVFDQUJJQUVvQWdCQkRHc29BZ0JxS0FKSUVJWURDeUFBUVFFNkFBQUxJQUFMQ3dBZ0FFRUFOZ0lBSUFBTGJnRUNmeU1BUVJCcklnRWtBQ0FBSUFBb0FnQkJER3NvQWdCcUtBSVlCRUFDUUNBQlFRaHFJQUFRaEFNaUFpMEFBRVVOQUNBQUlBQW9BZ0JCREdzb0FnQnFLQUlZRUlNRFFYOUhEUUFnQUNBQUtBSUFRUXhyS0FJQWFrRUJFSUFCQ3lBQ0VJSURDeUFCUVJCcUpBQUxDUUFnQUJEbEFSQVFDd1FBUVg4THhnZ0JCbjhnQUNBQktBQUFJZ05CR0hRZ0EwRUlkRUdBZ1B3SGNYSWdBMEVJZGtHQS9nTnhJQU5CR0haeWNpSUZOZ0lBSUFBZ0FTZ0FCQ0lEUVJoMElBTkJDSFJCZ0lEOEIzRnlJQU5CQ0haQmdQNERjU0FEUVJoMmNuSWlCallDQkNBQUlBRW9BQWdpQTBFWWRDQURRUWgwUVlDQS9BZHhjaUFEUVFoMlFZRCtBM0VnQTBFWWRuSnlJZ2MyQWdnZ0FDQUJLQUFNSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUlFTmdJTUFrQWdBa0dBQVVZRVFFRUFJUU1EUUNBQUlBUkJGblpCL0FkeFFZQUlhaTBBQVNBRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0hSQmdJQ0FlSEVnQlhNZ0JFRUdka0g4QjNGQmdBaHFMUUFDUVJCMGN5QUVRZjhCY1VFQ2RFR0FDR290QUFGQkNIUnpjeUFEUVlBYWFpMEFBRUVZZEhNaUJUWUNFQ0FBSUFVZ0JuTWlCallDRkNBQUlBWWdCM01pQnpZQ0dDQUFJQVFnQjNNaUJEWUNIQ0FBUVJCcUlRQkJDaUVCSUFOQkFXb2lBMEVLUncwQUN3d0JDeUFBSUFFb0FCQWlBMEVZZENBRFFRaDBRWUNBL0FkeGNpQURRUWgyUVlEK0EzRWdBMEVZZG5KeU5nSVFJQUFnQVNnQUZDSURRUmgwSUFOQkNIUkJnSUQ4QjNGeUlBTkJDSFpCZ1A0RGNTQURRUmgyY25JaUF6WUNGQ0FDUWNBQlJnUkFRUUFoQVFOQUlBQWdBMEVXZGtIOEIzRkJnQWhxTFFBQklBTkJEblpCL0FkeFFZQUlhaWdDQUVFSWRFR0FnSUI0Y1NBRmN5QURRUVoyUWZ3SGNVR0FDR290QUFKQkVIUnpJQU5CL3dGeFFRSjBRWUFJYWkwQUFVRUlkSE56SUFGQmdCcHFMUUFBUVJoMGN5SUZOZ0lZSUFBZ0JTQUdjeUlHTmdJY0lBQWdCaUFIY3lJSE5nSWdJQUFnQkNBSGN5SUVOZ0lrSUFGQkIwWUVRRUVNRHdVZ0FDQUFLQUlRSUFSeklnSTJBaWdnQUNBQ0lBTnpJZ00yQWl3Z0FVRUJhaUVCSUFCQkdHb2hBQXdCQ3dBTEFBc2dBQ0FCS0FBWUlnTkJHSFFnQTBFSWRFR0FnUHdIY1hJZ0EwRUlka0dBL2dOeElBTkJHSFp5Y2pZQ0dDQUFJQUVvQUJ3aUFVRVlkQ0FCUVFoMFFZQ0EvQWR4Y2lBQlFRaDJRWUQrQTNFZ0FVRVlkbkp5SWdNMkFoeEJmeUVCSUFKQmdBSkhEUUJCQUNFQ1FRNGhBUU5BSUFBZ0EwRVdka0g4QjNGQmdBaHFMUUFCSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjU0FGY3lBRFFRWjJRZndIY1VHQUNHb3RBQUpCRUhSeklBTkIvd0Z4UVFKMFFZQUlhaTBBQVVFSWRITnpJQUpCZ0JwcUxRQUFRUmgwY3lJRk5nSWdJQUFnQlNBR2N5SUdOZ0lrSUFBZ0JpQUhjeUlITmdJb0lBQWdCQ0FIY3lJRU5nSXNJQUpCQmtZTkFTQUFJQVJCL3dGeFFRSjBRWUFJYWkwQUFTQUFLQUlRSUFSQkZuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjWE1nQkVFT2RrSDhCM0ZCZ0FocUxRQUNRUkIwY3lBRVFRWjJRZndIY1VHQUNHb3RBQUZCQ0hSemN5SUlOZ0l3SUFBZ0NDQUFLQUlVY3lJSU5nSTBJQUFnQUNnQ0dDQUljeUlJTmdJNElBQWdBeUFJY3lJRE5nSThJQUpCQVdvaEFpQUFRU0JxSVFBTUFBc0FDeUFCQ3k0QUlBQWdBQ2dDQUNnQ0pCRUFBRUYvUmdSQVFYOFBDeUFBSUFBb0Fnd2lBRUVCYWpZQ0RDQUFMQUFBRUdVTEJBQkJmd3UvQVFFRWZ5TUFRUkJySWdRa0FBTkFBa0FnQWlBRlRBMEFBa0FnQUNnQ0RDSURJQUFvQWhBaUJra0VRQ0FFUWYvLy8vOEhOZ0lNSUFRZ0JpQURhellDQ0NBRUlBSWdCV3MyQWdRZ0JFRU1haUFFUVFocUlBUkJCR29RdWdFUXVnRWhBeUFCSUFBb0Fnd2dBeWdDQUNJREVGVWdBQ0FBS0FJTUlBTnFOZ0lNREFFTElBQWdBQ2dDQUNnQ0tCRUFBQ0lEUVg5R0RRRWdBU0FERUp3Qk9nQUFRUUVoQXdzZ0FTQURhaUVCSUFNZ0JXb2hCUXdCQ3dzZ0JFRVFhaVFBSUFVTENRQWdBRUovRUxzQkN3a0FJQUJDZnhDN0FRc0VBQ0FBQ3drQUlBQVF2QUVRRUFzSUFDQUFFSDRRRUFzSEFDQUFLQUlNQ3hBQUl3QWdBR3RCY0hFaUFDUUFJQUFMQmdBZ0FDUUFDd1FBSXdBTERBQWdBQkRCQVJvZ0FCQVFDd2tBSUFBUXdRRVFFQXNGQUVIK0d3c2JBQ0FBSUFFb0FnZ2dCUkErQkVBZ0FTQUNJQU1nQkJERUFRc0xPQUFnQUNBQktBSUlJQVVRUGdSQUlBRWdBaUFESUFRUXhBRVBDeUFBS0FJSUlnQWdBU0FDSUFNZ0JDQUZJQUFvQWdBb0FoUVJDUUFMbGdJQkJuOGdBQ0FCS0FJSUlBVVFQZ1JBSUFFZ0FpQURJQVFReEFFUEN5QUJMUUExSVFjZ0FDZ0NEQ0VHSUFGQkFEb0FOU0FCTFFBMElRZ2dBVUVBT2dBMElBQkJFR29pQ1NBQklBSWdBeUFFSUFVUXdnRWdCeUFCTFFBMUlncHlJUWNnQ0NBQkxRQTBJZ3R5SVFnQ1FDQUdRUUpJRFFBZ0NTQUdRUU4wYWlFSklBQkJHR29oQmdOQUlBRXRBRFlOQVFKQUlBc0VRQ0FCS0FJWVFRRkdEUU1nQUMwQUNFRUNjUTBCREFNTElBcEZEUUFnQUMwQUNFRUJjVVVOQWdzZ0FVRUFPd0UwSUFZZ0FTQUNJQU1nQkNBRkVNSUJJQUV0QURVaUNpQUhjaUVISUFFdEFEUWlDeUFJY2lFSUlBWkJDR29pQmlBSlNRMEFDd3NnQVNBSFFmOEJjVUVBUnpvQU5TQUJJQWhCL3dGeFFRQkhPZ0EwQzVJQkFDQUFJQUVvQWdnZ0JCQStCRUFnQVNBQ0lBTVF3d0VQQ3dKQUlBQWdBU2dDQUNBRUVENUZEUUFDUUNBQ0lBRW9BaEJIQkVBZ0FTZ0NGQ0FDUncwQkN5QURRUUZIRFFFZ0FVRUJOZ0lnRHdzZ0FTQUNOZ0lVSUFFZ0F6WUNJQ0FCSUFFb0FpaEJBV28yQWlnQ1FDQUJLQUlrUVFGSERRQWdBU2dDR0VFQ1J3MEFJQUZCQVRvQU5nc2dBVUVFTmdJc0N3dnpBUUFnQUNBQktBSUlJQVFRUGdSQUlBRWdBaUFERU1NQkR3c0NRQ0FBSUFFb0FnQWdCQkErQkVBQ1FDQUNJQUVvQWhCSEJFQWdBU2dDRkNBQ1J3MEJDeUFEUVFGSERRSWdBVUVCTmdJZ0R3c2dBU0FETmdJZ0FrQWdBU2dDTEVFRVJnMEFJQUZCQURzQk5DQUFLQUlJSWdBZ0FTQUNJQUpCQVNBRUlBQW9BZ0FvQWhRUkNRQWdBUzBBTlFSQUlBRkJBellDTENBQkxRQTBSUTBCREFNTElBRkJCRFlDTEFzZ0FTQUNOZ0lVSUFFZ0FTZ0NLRUVCYWpZQ0tDQUJLQUlrUVFGSERRRWdBU2dDR0VFQ1J3MEJJQUZCQVRvQU5nOExJQUFvQWdnaUFDQUJJQUlnQXlBRUlBQW9BZ0FvQWhnUkNnQUxDNTBFQVFOL0lBQWdBU2dDQ0NBRUVENEVRQ0FCSUFJZ0F4RERBUThMQWtBZ0FDQUJLQUlBSUFRUVBnUkFBa0FnQWlBQktBSVFSd1JBSUFFb0FoUWdBa2NOQVFzZ0EwRUJSdzBDSUFGQkFUWUNJQThMSUFFZ0F6WUNJQ0FCS0FJc1FRUkhCRUFnQUVFUWFpSUZJQUFvQWd4QkEzUnFJUWRCQUNFRElBRUNmd0pBQTBBQ1FDQUZJQWRQRFFBZ0FVRUFPd0UwSUFVZ0FTQUNJQUpCQVNBRUVNSUJJQUV0QURZTkFBSkFJQUV0QURWRkRRQWdBUzBBTkFSQVFRRWhBeUFCS0FJWVFRRkdEUVJCQVNFR0lBQXRBQWhCQW5FTkFRd0VDMEVCSVFZZ0FDMEFDRUVCY1VVTkF3c2dCVUVJYWlFRkRBRUxDMEVFSUFaRkRRRWFDMEVEQ3pZQ0xDQURRUUZ4RFFJTElBRWdBallDRkNBQklBRW9BaWhCQVdvMkFpZ2dBU2dDSkVFQlJ3MEJJQUVvQWhoQkFrY05BU0FCUVFFNkFEWVBDeUFBS0FJTUlRVWdBRUVRYWlJR0lBRWdBaUFESUFRUW9BRWdCVUVDU0EwQUlBWWdCVUVEZEdvaEJpQUFRUmhxSVFVQ1FDQUFLQUlJSWdCQkFuRkZCRUFnQVNnQ0pFRUJSdzBCQ3dOQUlBRXRBRFlOQWlBRklBRWdBaUFESUFRUW9BRWdCVUVJYWlJRklBWkpEUUFMREFFTElBQkJBWEZGQkVBRFFDQUJMUUEyRFFJZ0FTZ0NKRUVCUmcwQ0lBVWdBU0FDSUFNZ0JCQ2dBU0FGUVFocUlnVWdCa2tOQUF3Q0N3QUxBMEFnQVMwQU5nMEJJQUVvQWlSQkFVWUVRQ0FCS0FJWVFRRkdEUUlMSUFVZ0FTQUNJQU1nQkJDZ0FTQUZRUWhxSWdVZ0Jra05BQXNMQ3djQUlBQW9BZ1FMYndFQ2Z5QUFJQUVvQWdoQkFCQStCRUFnQVNBQ0lBTVF4Z0VQQ3lBQUtBSU1JUVFnQUVFUWFpSUZJQUVnQWlBREVQQUJBa0FnQkVFQ1NBMEFJQVVnQkVFRGRHb2hCQ0FBUVJocUlRQURRQ0FBSUFFZ0FpQURFUEFCSUFFdEFEWU5BU0FBUVFocUlnQWdCRWtOQUFzTEN6SUFJQUFnQVNnQ0NFRUFFRDRFUUNBQklBSWdBeERHQVE4TElBQW9BZ2dpQUNBQklBSWdBeUFBS0FJQUtBSWNFUWdBQ3hrQUlBQWdBU2dDQ0VFQUVENEVRQ0FCSUFJZ0F4REdBUXNMdWdNQkJYOGpBRUZBYWlJRUpBQUNmMEVCSUFBZ0FVRUFFRDROQUJwQkFDQUJSUTBBR2lNQVFVQnFJZ01rQUNBQktBSUFJZ1ZCQkdzb0FnQWhCaUFGUVFocktBSUFJUWNnQTBFQU5nSVVJQU5CclAwQU5nSVFJQU1nQVRZQ0RDQURRZHo5QURZQ0NFRUFJUVVnQTBFWWFrRUFRU2NRUmhvZ0FTQUhhaUVCQWtBZ0JrSGMvUUJCQUJBK0JFQWdBMEVCTmdJNElBWWdBMEVJYWlBQklBRkJBVUVBSUFZb0FnQW9BaFFSQ1FBZ0FVRUFJQU1vQWlCQkFVWWJJUVVNQVFzZ0JpQURRUWhxSUFGQkFVRUFJQVlvQWdBb0FoZ1JDZ0FDUUFKQUlBTW9BaXdPQWdBQkFnc2dBeWdDSEVFQUlBTW9BaWhCQVVZYlFRQWdBeWdDSkVFQlJodEJBQ0FES0FJd1FRRkdHeUVGREFFTElBTW9BaUJCQVVjRVFDQURLQUl3RFFFZ0F5Z0NKRUVCUncwQklBTW9BaWhCQVVjTkFRc2dBeWdDR0NFRkN5QURRVUJySkFCQkFDQUZJZ0ZGRFFBYUlBUkJDR29pQTBFRWNrRUFRVFFRUmhvZ0JFRUJOZ0k0SUFSQmZ6WUNGQ0FFSUFBMkFoQWdCQ0FCTmdJSUlBRWdBeUFDS0FJQVFRRWdBU2dDQUNnQ0hCRUlBQ0FFS0FJZ0lnQkJBVVlFUUNBQ0lBUW9BaGcyQWdBTElBQkJBVVlMSVFBZ0JFRkFheVFBSUFBTEJRQVFGd0FMQXdBQUN3a0FRZHlLQVJBS0dnc3ZBQUpBUWVpS0FTMEFBRUVCY1EwQVFlaUtBUkFrUlEwQVFkeUtBVUhnMVFBUWhBRkI2SW9CRUNNTFFkeUtBUXNKQUVITWlnRVFDaG9MTGdBQ1FFSFlpZ0V0QUFCQkFYRU5BRUhZaWdFUUpFVU5BRUhNaWdGQjZoc1FWQnBCMklvQkVDTUxRY3lLQVFzSkFFRzhpZ0VRQ2hvTEx3QUNRRUhJaWdFdEFBQkJBWEVOQUVISWlnRVFKRVVOQUVHOGlnRkJqTlVBRUlRQlFjaUtBUkFqQzBHOGlnRUxDUUJCcklvQkVBb2FDeTRBQWtCQnVJb0JMUUFBUVFGeERRQkJ1SW9CRUNSRkRRQkJySW9CUWR3ZEVGUWFRYmlLQVJBakMwR3NpZ0VMQ1FCQm5Jb0JFQW9hQ3k4QUFrQkJxSW9CTFFBQVFRRnhEUUJCcUlvQkVDUkZEUUJCbklvQlFlalVBQkNFQVVHb2lnRVFJd3RCbklvQkN3a0FRWXlLQVJBS0dnc3VBQUpBUVppS0FTMEFBRUVCY1EwQVFaaUtBUkFrUlEwQVFZeUtBVUgzSFJCVUdrR1lpZ0VRSXd0QmpJb0JDd2tBUWZ5SkFSQUtHZ3N2QUFKQVFZaUtBUzBBQUVFQmNRMEFRWWlLQVJBa1JRMEFRZnlKQVVIRTFBQVFoQUZCaUlvQkVDTUxRZnlKQVFzSkFFSHNpUUVRQ2hvTExnQUNRRUg0aVFFdEFBQkJBWEVOQUVINGlRRVFKRVVOQUVIc2lRRkI1aG9RVkJwQitJa0JFQ01MUWV5SkFRc2JBRUhva2dFaEFBTkFJQUJCREdzUUNpSUFRZENTQVVjTkFBc0xmUUFDUUVIb2lRRXRBQUJCQVhFTkFFSG9pUUVRSkVVTkFBSkFRZWlTQVMwQUFFRUJjUTBBUWVpU0FSQWtSUTBBUWRDU0FTRUFBMEFnQUJCSFFReHFJZ0JCNkpJQlJ3MEFDMEhva2dFUUl3dEIwSklCUWZEN0FCQVVRZHlTQVVIOCt3QVFGRUhraVFGQjBKSUJOZ0lBUWVpSkFSQWpDMEhraVFFb0FnQUxHd0JCeUpJQklRQURRQ0FBUVF4ckVBb2lBRUd3a2dGSERRQUxDM3NBQWtCQjRJa0JMUUFBUVFGeERRQkI0SWtCRUNSRkRRQUNRRUhJa2dFdEFBQkJBWEVOQUVISWtnRVFKRVVOQUVHd2tnRWhBQU5BSUFBUUVVRU1haUlBUWNpU0FVY05BQXRCeUpJQkVDTUxRYkNTQVVHSEhoQVZRYnlTQVVHRUhoQVZRZHlKQVVHd2tnRTJBZ0JCNElrQkVDTUxRZHlKQVNnQ0FBc2JBRUdna2dFaEFBTkFJQUJCREdzUUNpSUFRWUNRQVVjTkFBc0wyUUlBQWtCQjJJa0JMUUFBUVFGeERRQkIySWtCRUNSRkRRQUNRRUdna2dFdEFBQkJBWEVOQUVHZ2tnRVFKRVVOQUVHQWtBRWhBQU5BSUFBUVIwRU1haUlBUWFDU0FVY05BQXRCb0pJQkVDTUxRWUNRQVVIbzl3QVFGRUdNa0FGQmlQZ0FFQlJCbUpBQlFhejRBQkFVUWFTUUFVSEUrQUFRRkVHd2tBRkIzUGdBRUJSQnZKQUJRZXo0QUJBVVFjaVFBVUdBK1FBUUZFSFVrQUZCbFBrQUVCUkI0SkFCUWJENUFCQVVRZXlRQVVIWStRQVFGRUg0a0FGQitQa0FFQlJCaEpFQlFaejZBQkFVUVpDUkFVSEErZ0FRRkVHY2tRRkIwUG9BRUJSQnFKRUJRZUQ2QUJBVVFiU1JBVUh3K2dBUUZFSEFrUUZCM1BnQUVCUkJ6SkVCUVlEN0FCQVVRZGlSQVVHUSt3QVFGRUhra1FGQm9Qc0FFQlJCOEpFQlFiRDdBQkFVUWZ5UkFVSEErd0FRRkVHSWtnRkIwUHNBRUJSQmxKSUJRZUQ3QUJBVVFkU0pBVUdBa0FFMkFnQkIySWtCRUNNTFFkU0pBU2dDQUFzYkFFSHdqd0VoQUFOQUlBQkJER3NRQ2lJQVFkQ05BVWNOQUFzTHdRSUFBa0JCMElrQkxRQUFRUUZ4RFFCQjBJa0JFQ1JGRFFBQ1FFSHdqd0V0QUFCQkFYRU5BRUh3andFUUpFVU5BRUhRalFFaEFBTkFJQUFRRVVFTWFpSUFRZkNQQVVjTkFBdEI4SThCRUNNTFFkQ05BVUdjR2hBVlFkeU5BVUdUR2hBVlFlaU5BVUhnSEJBVlFmU05BVUhXSEJBVlFZQ09BVUhpR2hBVlFZeU9BVUhMSFJBVlFaaU9BVUdrR2hBVlFhU09BVUdVR3hBVlFiQ09BVUcvR3hBVlFieU9BVUd1R3hBVlFjaU9BVUcyR3hBVlFkU09BVUhKR3hBVlFlQ09BVUhMSEJBVlFleU9BVUhZSFJBVlFmaU9BVUhpR3hBVlFZU1BBVUdqR3hBVlFaQ1BBVUhpR2hBVlFaeVBBVUg2R3hBVlFhaVBBVUhQSEJBVlFiU1BBVUhtSEJBVlFjQ1BBVUhtR3hBVlFjeVBBVUdiR3hBVlFkaVBBVUdNR3hBVlFlU1BBVUhVSFJBVlFjeUpBVUhRalFFMkFnQkIwSWtCRUNNTFFjeUpBU2dDQUFzYkFFSElqUUVoQUFOQUlBQkJER3NRQ2lJQVFhQ01BVWNOQUFzTDlRRUFBa0JCeUlrQkxRQUFRUUZ4RFFCQnlJa0JFQ1JGRFFBQ1FFSElqUUV0QUFCQkFYRU5BRUhJalFFUUpFVU5BRUdnakFFaEFBTkFJQUFRUjBFTWFpSUFRY2lOQVVjTkFBdEJ5STBCRUNNTFFhQ01BVUdVOVFBUUZFR3NqQUZCc1BVQUVCUkJ1SXdCUWN6MUFCQVVRY1NNQVVIczlRQVFGRUhRakFGQmxQWUFFQlJCM0l3QlFiajJBQkFVUWVpTUFVSFU5Z0FRRkVIMGpBRkIrUFlBRUJSQmdJMEJRWWozQUJBVVFZeU5BVUdZOXdBUUZFR1lqUUZCcVBjQUVCUkJwSTBCUWJqM0FCQVVRYkNOQVVISTl3QVFGRUc4alFGQjJQY0FFQlJCeElrQlFhQ01BVFlDQUVISWlRRVFJd3RCeElrQktBSUFDeHNBUVppTUFTRUFBMEFnQUVFTWF4QUtJZ0JCOElvQlJ3MEFDd3ZuQVFBQ1FFSEFpUUV0QUFCQkFYRU5BRUhBaVFFUUpFVU5BQUpBUVppTUFTMEFBRUVCY1EwQVFaaU1BUkFrUlEwQVFmQ0tBU0VBQTBBZ0FCQVJRUXhxSWdCQm1Jd0JSdzBBQzBHWWpBRVFJd3RCOElvQlFjMGFFQlZCL0lvQlFkUWFFQlZCaUlzQlFiSWFFQlZCbElzQlFib2FFQlZCb0lzQlFha2FFQlZCcklzQlFkc2FFQlZCdUlzQlFjUWFFQlZCeElzQlFmWWJFQlZCMElzQlFjTWNFQlZCM0lzQlFjRWRFQlZCNklzQlFkQWRFQlZCOUlzQlFaQWJFQlZCZ0l3QlFkd2NFQlZCakl3QlFaOGJFQlZCdklrQlFmQ0tBVFlDQUVIQWlRRVFJd3RCdklrQktBSUFDd3NBSUFCQnJOUUFFSVFCQ3dvQUlBQkJ4UjBRVkJvTEN3QWdBRUdZMUFBUWhBRUxDZ0FnQUVHOEhSQlVHZ3NNQUNBQUlBRkJFR29RMFFFTERBQWdBQ0FCUVF4cUVORUJDd2NBSUFBc0FBa0xCd0FnQUN3QUNBc0pBQ0FBRUlZQ0VCQUxDUUFnQUJDSEFoQVFDK1lEQVFWL0lBSWhBQU5BQWtBZ0JDQUlUU0FBSUFOUGNnMEFJQUFzQUFBaUJrSC9BWEVoQVFKQUlBWkJBRTRFUUVFQklRWWdBVUgvLzhNQVRRMEJEQUlMSUFGQndnRkpEUUVnQVVIZkFVMEVRQ0FESUFCclFRSklEUUlnQUMwQUFTSUZRY0FCY1VHQUFVY05Ba0VDSVFZZ0JVRS9jU0FCUVFaMFFjQVBjWEpCLy8vREFFME5BUXdDQ3dKQUFrQWdBVUh2QVUwRVFDQURJQUJyUVFOSURRUWdBQzBBQWlFSElBQXRBQUVoQlNBQlFlMEJSZzBCSUFGQjRBRkdCRUFnQlVIZ0FYRkJvQUZHRFFNTUJRc2dCVUhBQVhGQmdBRkhEUVFNQWdzZ0F5QUFhMEVFU0NBQlFmUUJTM0lOQXlBQUxRQURJUWNnQUMwQUFpRUpJQUF0QUFFaEJRSkFBa0FDUUFKQUlBRkI4QUZyRGdVQUFnSUNBUUlMSUFWQjhBQnFRZjhCY1VFd1NRMENEQVlMSUFWQjhBRnhRWUFCUmcwQkRBVUxJQVZCd0FGeFFZQUJSdzBFQ3lBSlFjQUJjVUdBQVVjZ0IwSEFBWEZCZ0FGSGNnMERRUVFoQmlBSFFUOXhJQWxCQm5SQndCOXhJQUZCRW5SQmdJRHdBSEVnQlVFL2NVRU1kSEp5Y2tILy84TUFTdzBEREFJTElBVkI0QUZ4UVlBQlJ3MENDeUFIUWNBQmNVR0FBVWNOQVVFRElRWWdCMEUvY1NBQlFReDBRWURnQTNFZ0JVRS9jVUVHZEhKeVFmLy93d0JMRFFFTElBaEJBV29oQ0NBQUlBWnFJUUFNQVFzTElBQWdBbXNMNGdRQkJYOGpBRUVRYXlJQUpBQWdBQ0FDTmdJTUlBQWdCVFlDQ0FKL0lBQWdBallDRENBQUlBVTJBZ2dDUUFKQUEwQUNRQ0FBS0FJTUlnSWdBMDhOQUNBQUtBSUlJZ3dnQms4TkFDQUNMQUFBSWdWQi93RnhJUUVDUUNBRlFRQk9CRUFnQVVILy84TUFUUVJBUVFFaEJRd0NDMEVDREFZTFFRSWhDaUFCUWNJQlNRMERJQUZCM3dGTkJFQWdBeUFDYTBFQ1NBMEZJQUl0QUFFaUNFSEFBWEZCZ0FGSERRUkJBaUVGSUFoQlAzRWdBVUVHZEVIQUQzRnlJZ0ZCLy8vREFFME5BUXdFQ3lBQlFlOEJUUVJBSUFNZ0FtdEJBMGdOQlNBQ0xRQUNJUWtnQWkwQUFTRUlBa0FDUUNBQlFlMEJSd1JBSUFGQjRBRkhEUUVnQ0VIZ0FYRkJvQUZHRFFJTUJ3c2dDRUhnQVhGQmdBRkdEUUVNQmdzZ0NFSEFBWEZCZ0FGSERRVUxJQWxCd0FGeFFZQUJSdzBFUVFNaEJTQUpRVDl4SUFGQkRIUkJnT0FEY1NBSVFUOXhRUVowY25JaUFVSC8vOE1BVFEwQkRBUUxJQUZCOUFGTERRTWdBeUFDYTBFRVNBMEVJQUl0QUFNaENTQUNMUUFDSVFzZ0FpMEFBU0VJQWtBQ1FBSkFBa0FnQVVId0FXc09CUUFDQWdJQkFnc2dDRUh3QUdwQi93RnhRVEJKRFFJTUJnc2dDRUh3QVhGQmdBRkdEUUVNQlFzZ0NFSEFBWEZCZ0FGSERRUUxJQXRCd0FGeFFZQUJSeUFKUWNBQmNVR0FBVWR5RFFOQkJDRUZJQWxCUDNFZ0MwRUdkRUhBSDNFZ0FVRVNkRUdBZ1BBQWNTQUlRVDl4UVF4MGNuSnlJZ0ZCLy8vREFFc05Bd3NnRENBQk5nSUFJQUFnQWlBRmFqWUNEQ0FBSUFBb0FnaEJCR28yQWdnTUFRc0xJQUlnQTBraENnc2dDZ3dCQzBFQkN5RUJJQVFnQUNnQ0REWUNBQ0FISUFBb0FnZzJBZ0FnQUVFUWFpUUFJQUVMamdRQUl3QkJFR3NpQUNRQUlBQWdBallDRENBQUlBVTJBZ2dDZnlBQUlBSTJBZ3dnQUNBRk5nSUlJQUFvQWd3aEFRSkFBMEFnQVNBRFR3UkFRUUFoQWd3Q0MwRUNJUUlnQVNnQ0FDSUJRWUJ3Y1VHQXNBTkdJQUZCLy8vREFFdHlEUUVDUUFKQUlBRkIvd0JOQkVCQkFTRUNJQVlnQUNnQ0NDSUZhMEVBVEEwRUlBQWdCVUVCYWpZQ0NDQUZJQUU2QUFBTUFRc2dBVUgvRDAwRVFDQUdJQUFvQWdnaUFtdEJBa2dOQWlBQUlBSkJBV28yQWdnZ0FpQUJRUVoyUWNBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCUDNGQmdBRnlPZ0FBREFFTElBWWdBQ2dDQ0NJQ2F5RUZJQUZCLy84RFRRUkFJQVZCQTBnTkFpQUFJQUpCQVdvMkFnZ2dBaUFCUVF4MlFlQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQkJuWkJQM0ZCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFNQVFzZ0JVRUVTQTBCSUFBZ0FrRUJhallDQ0NBQ0lBRkJFblpCOEFGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUVNZGtFL2NVR0FBWEk2QUFBZ0FDQUFLQUlJSWdKQkFXbzJBZ2dnQWlBQlFRWjJRVDl4UVlBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCUDNGQmdBRnlPZ0FBQ3lBQUlBQW9BZ3hCQkdvaUFUWUNEQXdCQ3d0QkFRd0JDeUFDQ3lFQklBUWdBQ2dDRERZQ0FDQUhJQUFvQWdnMkFnQWdBRUVRYWlRQUlBRUw3Z01CQkg4Z0FpRUFBMEFDUUNBRUlBWk5JQUFnQTA5eURRQWdBQzBBQUNJQlFmLy93d0JMRFFBQ2Z5QUFRUUZxSUFGQkdIUkJHSFZCQUU0TkFCb2dBVUhDQVVrTkFTQUJRZDhCVFFSQUlBTWdBR3RCQWtnTkFpQUFMUUFCSWdWQndBRnhRWUFCUnlBRlFUOXhJQUZCQm5SQndBOXhja0gvLzhNQVMzSU5BaUFBUVFKcURBRUxBa0FDUUNBQlFlOEJUUVJBSUFNZ0FHdEJBMGdOQkNBQUxRQUNJUWNnQUMwQUFTRUZJQUZCN1FGR0RRRWdBVUhnQVVZRVFDQUZRZUFCY1VHZ0FVWU5Bd3dGQ3lBRlFjQUJjVUdBQVVjTkJBd0NDeUFESUFCclFRUklJQUZCOUFGTGNpQUVJQVpyUVFKSmNnMERJQUF0QUFNaEJ5QUFMUUFDSVFnZ0FDMEFBU0VGQWtBQ1FBSkFBa0FnQVVId0FXc09CUUFDQWdJQkFnc2dCVUh3QUdwQi93RnhRVEJKRFFJTUJnc2dCVUh3QVhGQmdBRkdEUUVNQlFzZ0JVSEFBWEZCZ0FGSERRUUxJQWhCd0FGeFFZQUJSeUFIUWNBQmNVR0FBVWR5SUFkQlAzRWdDRUVHZEVIQUgzRWdBVUVTZEVHQWdQQUFjU0FGUVQ5eFFReDBjbkp5UWYvL3d3QkxjZzBESUFaQkFXb2hCaUFBUVFScURBSUxJQVZCNEFGeFFZQUJSdzBDQ3lBSFFjQUJjVUdBQVVjZ0IwRS9jU0FCUVF4MFFZRGdBM0VnQlVFL2NVRUdkSEp5UWYvL3d3QkxjZzBCSUFCQkEyb0xJUUFnQmtFQmFpRUdEQUVMQ3lBQUlBSnJDOU1GQVFSL0l3QkJFR3NpQUNRQUlBQWdBallDRENBQUlBVTJBZ2dDZnlBQUlBSTJBZ3dnQUNBRk5nSUlBa0FDUUFKQUEwQUNRQ0FBS0FJTUlnRWdBMDhOQUNBQUtBSUlJZ1VnQms4TkFFRUNJUW9nQVMwQUFDSUNRZi8vd3dCTERRUWdBQUovSUFKQkdIUkJHSFZCQUU0RVFDQUZJQUk3QVFBZ0FVRUJhZ3dCQ3lBQ1FjSUJTUTBGSUFKQjN3Rk5CRUFnQXlBQmEwRUNTQTBGSUFFdEFBRWlDRUhBQVhGQmdBRkhEUVFnQ0VFL2NTQUNRUVowUWNBUGNYSWlBa0gvLzhNQVN3MEVJQVVnQWpzQkFDQUJRUUpxREFFTElBSkI3d0ZOQkVBZ0F5QUJhMEVEU0EwRklBRXRBQUloQ1NBQkxRQUJJUWdDUUFKQUlBSkI3UUZIQkVBZ0FrSGdBVWNOQVNBSVFlQUJjVUdnQVVZTkFnd0hDeUFJUWVBQmNVR0FBVVlOQVF3R0N5QUlRY0FCY1VHQUFVY05CUXNnQ1VIQUFYRkJnQUZIRFFRZ0NVRS9jU0FJUVQ5eFFRWjBJQUpCREhSeWNpSUNRZi8vQTNGQi8vL0RBRXNOQkNBRklBSTdBUUFnQVVFRGFnd0JDeUFDUWZRQlN3MEZRUUVoQ2lBRElBRnJRUVJJRFFNZ0FTMEFBeUVKSUFFdEFBSWhDQ0FCTFFBQklRRUNRQUpBQWtBQ1FDQUNRZkFCYXc0RkFBSUNBZ0VDQ3lBQlFmQUFha0gvQVhGQk1FOE5DQXdDQ3lBQlFmQUJjVUdBQVVjTkJ3d0JDeUFCUWNBQmNVR0FBVWNOQmdzZ0NFSEFBWEZCZ0FGSElBbEJ3QUZ4UVlBQlIzSU5CU0FHSUFWclFRUklEUU5CQWlFS0lBbEJQM0VpQ1NBSVFRWjBJZ3RCd0I5eElBRkJESFJCZ09BUGNTQUNRUWR4SWdKQkVuUnljbkpCLy8vREFFc05BeUFGSUFoQkJIWkJBM0VnQVVFQ2RDSUJRY0FCY1NBQ1FRaDBjaUFCUVR4eGNuSkJ3UDhBYWtHQXNBTnlPd0VBSUFBZ0JVRUNhallDQ0NBRklBdEJ3QWR4SUFseVFZQzRBM0k3QVFJZ0FDZ0NERUVFYWdzMkFnd2dBQ0FBS0FJSVFRSnFOZ0lJREFFTEN5QUJJQU5KSVFvTElBb01BZ3RCQVF3QkMwRUNDeUVCSUFRZ0FDZ0NERFlDQUNBSElBQW9BZ2cyQWdBZ0FFRVFhaVFBSUFFTCtnVUJBWDhqQUVFUWF5SUFKQUFnQUNBQ05nSU1JQUFnQlRZQ0NBSi9JQUFnQWpZQ0RDQUFJQVUyQWdnZ0FDZ0NEQ0VDQWtBQ1FBTkFJQUlnQTA4RVFFRUFJUVVNQXd0QkFpRUZJQUl2QVFBaUFVSC8vOE1BU3cwQ0FrQUNRQ0FCUWY4QVRRUkFRUUVoQlNBR0lBQW9BZ2dpQW10QkFFd05CU0FBSUFKQkFXbzJBZ2dnQWlBQk9nQUFEQUVMSUFGQi93OU5CRUFnQmlBQUtBSUlJZ0pyUVFKSURRUWdBQ0FDUVFGcU5nSUlJQUlnQVVFR2RrSEFBWEk2QUFBZ0FDQUFLQUlJSWdKQkFXbzJBZ2dnQWlBQlFUOXhRWUFCY2pvQUFBd0JDeUFCUWYrdkEwMEVRQ0FHSUFBb0FnZ2lBbXRCQTBnTkJDQUFJQUpCQVdvMkFnZ2dBaUFCUVF4MlFlQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQkJuWkJQM0ZCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFNQVFzZ0FVSC90d05OQkVCQkFTRUZJQU1nQW10QkJFZ05CU0FDTHdFQ0lnaEJnUGdEY1VHQXVBTkhEUUlnQmlBQUtBSUlhMEVFU0EwRklBaEIvd2R4SUFGQkNuUkJnUGdEY1NBQlFjQUhjU0lGUVFwMGNuSkJnSUFFYWtILy84TUFTdzBDSUFBZ0FrRUNhallDRENBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFWQkJuWkJBV29pQWtFQ2RrSHdBWEk2QUFBZ0FDQUFLQUlJSWdWQkFXbzJBZ2dnQlNBQ1FRUjBRVEJ4SUFGQkFuWkJEM0Z5UVlBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQWhCQm5aQkQzRWdBVUVFZEVFd2NYSkJnQUZ5T2dBQUlBQWdBQ2dDQ0NJQlFRRnFOZ0lJSUFFZ0NFRS9jVUdBQVhJNkFBQU1BUXNnQVVHQXdBTkpEUVFnQmlBQUtBSUlJZ0pyUVFOSURRTWdBQ0FDUVFGcU5nSUlJQUlnQVVFTWRrSGdBWEk2QUFBZ0FDQUFLQUlJSWdKQkFXbzJBZ2dnQWlBQlFRWjJRVDl4UVlBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCUDNGQmdBRnlPZ0FBQ3lBQUlBQW9BZ3hCQW1vaUFqWUNEQXdCQ3d0QkFnd0NDMEVCREFFTElBVUxJUUVnQkNBQUtBSU1OZ0lBSUFjZ0FDZ0NDRFlDQUNBQVFSQnFKQUFnQVFzVkFDQUFLQUlJSWdCRkJFQkJBUThMSUFBUWlnSUxrQUVCQm44RFFBSkFJQUlnQTBZZ0JDQUlUWElOQUVFQklRY2dBQ2dDQ0NFRkl3QkJFR3NpQmlRQUlBWWdCVFlDRENBR1FRaHFJQVpCREdvUVVpRUtRUUFnQWlBRElBSnJJQUZCdEljQklBRWJFTGNCSVFVZ0NoQlJJQVpCRUdva0FBSkFBa0FnQlVFQ2FnNERBZ0lCQUFzZ0JTRUhDeUFJUVFGcUlRZ2dCeUFKYWlFSklBSWdCMm9oQWd3QkN3c2dDUXRtQVFOL0lBQW9BZ2doQWlNQVFSQnJJZ0VrQUNBQklBSTJBZ3dnQVVFSWFpQUJRUXhxRUZJaEFpTUFRUkJySWdNa0FDQURRUkJxSkFCQkFDRURJQUlRVVNBQlFSQnFKQUFnQXdSL1FYOEZJQUFvQWdnaUFFVUVRRUVCRHdzZ0FCQ0tBa0VCUmdzTGtnRUJBWDhqQUVFUWF5SUZKQUFnQkNBQ05nSUFBbjlCQWlBRlFReHFRUUFnQUNnQ0NCRExBU0lBUVFGcVFRSkpEUUFhUVFFZ0FFRUJheUlCSUFNZ0JDZ0NBR3RMRFFBYUlBVkJER29oQWdOL0lBRUVmeUFDTFFBQUlRQWdCQ0FFS0FJQUlnTkJBV28yQWdBZ0F5QUFPZ0FBSUFGQkFXc2hBU0FDUVFGcUlRSU1BUVZCQUFzTEN5RUNJQVZCRUdva0FDQUNDOHNHQVF4L0l3QkJFR3NpRVNRQUlBSWhDQU5BQWtBZ0F5QUlSZ1JBSUFNaENBd0JDeUFJTFFBQVJRMEFJQWhCQVdvaENBd0JDd3NnQnlBRk5nSUFJQVFnQWpZQ0FBTkFBa0FDZndKQUlBSWdBMFlnQlNBR1JuSU5BQ0FSSUFFcEFnQTNBd2dnQUNnQ0NDRUpJd0JCRUdzaUVDUUFJQkFnQ1RZQ0RDQVFRUWhxSUJCQkRHb1FVaUVUSUFnZ0Ftc2hEVUVBSVFvakFFR1FDR3NpQ3lRQUlBc2dCQ2dDQUNJT05nSU1JQVVnQzBFUWFpQUZHeUVQQWtBQ1FBSkFJQTVGSUFZZ0JXdEJBblZCZ0FJZ0JSc2lERVZ5RFFBRFFDQU5RUUoySWdrZ0RFa2dEVUdEQVUxeERRSWdEeUFMUVF4cUlBd2dDU0FKSUF4UEd5QUJFTklDSWhKQmYwWUVRRUYvSVFwQkFDRU1JQXNvQWd3aERnd0NDeUFNUVFBZ0VpQVBJQXRCRUdwR0d5SUpheUVNSUE4Z0NVRUNkR29oRHlBTklBNXFJQXNvQWd3aURtdEJBQ0FPR3lFTklBb2dFbW9oQ2lBT1JRMEJJQXdOQUFzTElBNUZEUUVMSUF4RklBMUZjZzBBSUFvaENRTkFBa0FDUUNBUElBNGdEU0FCRUxjQklncEJBbXBCQWswRVFBSkFBa0FnQ2tFQmFnNENCZ0FCQ3lBTFFRQTJBZ3dNQWdzZ0FVRUFOZ0lBREFFTElBc2dDeWdDRENBS2FpSU9OZ0lNSUFsQkFXb2hDU0FNUVFGcklnd05BUXNnQ1NFS0RBSUxJQTlCQkdvaER5QU5JQXBySVEwZ0NTRUtJQTBOQUFzTElBVUVRQ0FFSUFzb0FndzJBZ0FMSUF0QmtBaHFKQUFnQ2lFSklCTVFVU0FRUVJCcUpBQUNRQUpBQWtBQ1FDQUpRWDlHQkVBRFFBSkFJQWNnQlRZQ0FDQUNJQVFvQWdCR0RRQkJBU0VHQWtBQ1FBSkFJQVVnQWlBSUlBSnJJQkZCQ0dvZ0FDZ0NDQkNMQWlJQlFRSnFEZ01JQUFJQkN5QUVJQUkyQWdBTUJRc2dBU0VHQ3lBQ0lBWnFJUUlnQnlnQ0FFRUVhaUVGREFFTEN5QUVJQUkyQWdBTUJRc2dCeUFIS0FJQUlBbEJBblJxSWdVMkFnQWdCU0FHUmcwRElBUW9BZ0FoQWlBRElBaEdCRUFnQXlFSURBZ0xJQVVnQWtFQklBRWdBQ2dDQ0JDTEFrVU5BUXRCQWd3RUN5QUhJQWNvQWdCQkJHbzJBZ0FnQkNBRUtBSUFRUUZxSWdJMkFnQWdBaUVJQTBBZ0F5QUlSZ1JBSUFNaENBd0dDeUFJTFFBQVJRMEZJQWhCQVdvaENBd0FDd0FMSUFRZ0FqWUNBRUVCREFJTElBUW9BZ0FoQWdzZ0FpQURSd3NoQUNBUlFSQnFKQUFnQUE4TElBY29BZ0FoQlF3QUN3QUxzd1VCREg4akFFRVFheUlOSkFBZ0FpRUlBMEFDUUNBRElBaEdCRUFnQXlFSURBRUxJQWdvQWdCRkRRQWdDRUVFYWlFSURBRUxDeUFISUFVMkFnQWdCQ0FDTmdJQUEwQUNRQUpBSUFJZ0EwWWdCU0FHUm5JRWZ5QUNCU0FOSUFFcEFnQTNBd2hCQVNFUUlBQW9BZ2doQ1NNQVFSQnJJZzRrQUNBT0lBazJBZ3dnRGtFSWFpQU9RUXhxRUZJaEV5QUdJQVVpQ1dzaENrRUFJUThqQUVFUWF5SVJKQUFDUUNBRUtBSUFJZ3RGSUFnZ0FtdEJBblVpRWtWeURRQWdDa0VBSUFrYklRb0RRQ0FSUVF4cUlBa2dDa0VFU1JzZ0N5Z0NBQkRhQVNJTVFYOUdCRUJCZnlFUERBSUxJQWtFZnlBS1FRTk5CRUFnQ2lBTVNRMERJQWtnRVVFTWFpQU1FRUlhQ3lBS0lBeHJJUW9nQ1NBTWFnVkJBQXNoQ1NBTEtBSUFSUVJBUVFBaEN3d0NDeUFNSUE5cUlROGdDMEVFYWlFTElCSkJBV3NpRWcwQUN3c2dDUVJBSUFRZ0N6WUNBQXNnRVVFUWFpUUFJQThoQ1NBVEVGRWdEa0VRYWlRQUFrQUNRQUpBQWtBQ1FDQUpRUUZxRGdJQUJnRUxJQWNnQlRZQ0FBTkFBa0FnQWlBRUtBSUFSZzBBSUFVZ0FpZ0NBQ0FBS0FJSUVNc0JJZ0ZCZjBZTkFDQUhJQWNvQWdBZ0FXb2lCVFlDQUNBQ1FRUnFJUUlNQVFzTElBUWdBallDQUF3QkN5QUhJQWNvQWdBZ0NXb2lCVFlDQUNBRklBWkdEUUlnQXlBSVJnUkFJQVFvQWdBaEFpQURJUWdNQndzZ0RVRUVha0VBSUFBb0FnZ1F5d0VpQ0VGL1J3MEJDMEVDSVJBTUF3c2dEVUVFYWlFQ0lBWWdCeWdDQUdzZ0NFa05BZ05BSUFnRVFDQUNMUUFBSVFVZ0J5QUhLQUlBSWdsQkFXbzJBZ0FnQ1NBRk9nQUFJQWhCQVdzaENDQUNRUUZxSVFJTUFRc0xJQVFnQkNnQ0FFRUVhaUlDTmdJQUlBSWhDQU5BSUFNZ0NFWUVRQ0FESVFnTUJRc2dDQ2dDQUVVTkJDQUlRUVJxSVFnTUFBc0FDeUFFS0FJQUN5QURSeUVRQ3lBTlFSQnFKQUFnRUE4TElBY29BZ0FoQlF3QUN3QUxDUUFnQUJDWUFoQVFDemNBSXdCQkVHc2lBQ1FBSUFBZ0JEWUNEQ0FBSUFNZ0FtczJBZ2dnQUVFTWFpQUFRUWhxRUtJQktBSUFJUUVnQUVFUWFpUUFJQUVMTkFBRFFDQUJJQUpHUlFSQUlBUWdBU3dBQUNJQUlBTWdBRUVBVGhzNkFBQWdCRUVCYWlFRUlBRkJBV29oQVF3QkN3c2dBZ3NNQUNBQklBSWdBVUVBVGhzTEtnQURRQ0FCSUFKR1JRUkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQkRBRUxDeUFDQzBBQUEwQWdBU0FDUndSQUlBRWdBU3dBQUNJQVFRQk9CSDlCME1RQUtBSUFJQUVzQUFCQkFuUnFLQUlBQlNBQUN6b0FBQ0FCUVFGcUlRRU1BUXNMSUFJTEp3QWdBVUVBVGdSL1FkREVBQ2dDQUNBQlFmOEJjVUVDZEdvb0FnQUZJQUVMUVJoMFFSaDFDejhBQTBBZ0FTQUNSd1JBSUFFZ0FTd0FBQ0lBUVFCT0JIOUJ3RGdvQWdBZ0FTd0FBRUVDZEdvb0FnQUZJQUFMT2dBQUlBRkJBV29oQVF3QkN3c2dBZ3NtQUNBQlFRQk9CSDlCd0Rnb0FnQWdBVUgvQVhGQkFuUnFLQUlBQlNBQkMwRVlkRUVZZFFzSkFDQUFFSTRDRUJBTE5RQURRQ0FCSUFKR1JRUkFJQVFnQVNnQ0FDSUFJQU1nQUVHQUFVa2JPZ0FBSUFSQkFXb2hCQ0FCUVFScUlRRU1BUXNMSUFJTEV3QWdBU0FDSUFGQmdBRkpHMEVZZEVFWWRRc3FBQU5BSUFFZ0FrWkZCRUFnQXlBQkxBQUFOZ0lBSUFOQkJHb2hBeUFCUVFGcUlRRU1BUXNMSUFJTFFRQURRQ0FCSUFKSEJFQWdBU0FCS0FJQUlnQkIvd0JOQkg5QjBNUUFLQUlBSUFFb0FnQkJBblJxS0FJQUJTQUFDellDQUNBQlFRUnFJUUVNQVFzTElBSUxIZ0FnQVVIL0FFMEVmMEhReEFBb0FnQWdBVUVDZEdvb0FnQUZJQUVMQzBBQUEwQWdBU0FDUndSQUlBRWdBU2dDQUNJQVFmOEFUUVIvUWNBNEtBSUFJQUVvQWdCQkFuUnFLQUlBQlNBQUN6WUNBQ0FCUVFScUlRRU1BUXNMSUFJTEhRQWdBVUgvQUUwRWYwSEFPQ2dDQUNBQlFRSjBhaWdDQUFVZ0FRc0xSQUFDUUFOQUlBSWdBMFlOQVFKQUlBSW9BZ0JCL3dCTERRQkJzRElvQWdBZ0FpZ0NBRUVCZEdvdkFRQWdBWEZGRFFBZ0FrRUVhaUVDREFFTEN5QUNJUU1MSUFNTFF3QURRQUpBSUFJZ0EwY0VmeUFDS0FJQVFmOEFTdzBCUWJBeUtBSUFJQUlvQWdCQkFYUnFMd0VBSUFGeFJRMEJJQUlGSUFNTER3c2dBa0VFYWlFQ0RBQUxBQXRGQUFOQUlBRWdBa2NFUUNBRElBRW9BZ0JCL3dCTkJIOUJzRElvQWdBZ0FTZ0NBRUVCZEdvdkFRQUZRUUFMT3dFQUlBTkJBbW9oQXlBQlFRUnFJUUVNQVFzTElBSUxJd0FnQWtIL0FFMEVmMEd3TWlnQ0FDQUNRUUYwYWk4QkFDQUJjVUVBUndWQkFBc0xRQUVDZnlBQUtBSUFLQUlBSWdBb0FnQWdBQ2dDQ0NJQ1FRRjFhaUVCSUFBb0FnUWhBQ0FCSUFKQkFYRUVmeUFCS0FJQUlBQnFLQUlBQlNBQUN4RUJBQXNQQUNBQUlBQW9BZ0FvQWdRUkFRQUxId0FnQUFKL1FmaUlBVUg0aUFFb0FnQkJBV29pQURZQ0FDQUFDellDQkFzSkFDQUFFSk1DRUJBTG1BRUFJd0JCRUdzaUF5UUFBa0FnQlJBMVJRUkFJQUFnQlNnQ0NEWUNDQ0FBSUFVcEFnQTNBZ0FNQVFzZ0JTZ0NBQ0VFQWtBQ1FBSkFJQVVvQWdRaUFrRUJUUVJBSUFBaEFTQUFJQUlRT2d3QkN5QUNRZS8vLy84RFN3MEJJQUFnQUNBQ0VJSUJRUUZxSWdVUWdRRWlBUkJOSUFBZ0JSQk1JQUFnQWhBNUN5QUJJQVFnQWtFQmFoQnhEQUVMRUJjQUN3c2dBMEVRYWlRQUN3a0FJQUFnQlJEUkFRdUdBd0VJZnlNQVFmQURheUlBSkFBZ0FFSG9BMm9pQmlBREVBOGdCaEE3SVFvZ0JSQUpCRUFnQlVFQUVMRUJLQUlBSUFwQkxSQTlSaUVMQ3lBQ0lBc2dBRUhvQTJvZ0FFSGdBMm9nQUVIY0Eyb2dBRUhZQTJvZ0FFSElBMm9RRVNJTUlBQkJ1QU5xRUVjaUJpQUFRYWdEYWhCSElnY2dBRUdrQTJvUW13SWdBRUUxTmdJUUlBQkJDR3BCQUNBQVFSQnFJZ0lRSGlFSUFrQUNmeUFGRUFrZ0FDZ0NwQU5LQkVBZ0JSQUpJUWtnQUNnQ3BBTWhEU0FIRUFrZ0NTQU5hMEVCZEdvZ0JoQUphaUFBS0FLa0EycEJBV29NQVFzZ0J4QUpJQVlRQ1dvZ0FDZ0NwQU5xUVFKcUN5SUpRZVVBU1EwQUlBZ2dDVUVDZEJBWkVDY2dDQ2dDQUNJQ0RRQVFGd0FMSUFJZ0FFRUVhaUFBSUFNb0FnUWdCUkFOSUFVUURTQUZFQWxCQW5ScUlBb2dDeUFBUWVBRGFpQUFLQUxjQXlBQUtBTFlBeUFNSUFZZ0J5QUFLQUtrQXhDYUFpQUJJQUlnQUNnQ0JDQUFLQUlBSUFNZ0JCQmlJUUVnQ0JBZElBY1FDaG9nQmhBS0dpQU1FQW9hSUFCQjZBTnFFQTRnQUVId0Eyb2tBQ0FCQzdzRUFRdC9Jd0JCc0FocklnQWtBQ0FBSUFVM0F4QWdBQ0FHTndNWUlBQWdBRUhBQjJvaUJ6WUN2QWNnQnlBQVFSQnFFTllDSVFjZ0FFRTFOZ0tnQkNBQVFaZ0Vha0VBSUFCQm9BUnFJZ2tRSGlFT0lBQkJOVFlDb0FRZ0FFR1FCR3BCQUNBSkVCNGhDZ0pBSUFkQjVBQlBCRUFRRmlFSElBQWdCVGNEQUNBQUlBWTNBd2dnQUVHOEIyb2dCMEh1SENBQUVGb2lCMEYvUmcwQklBNGdBQ2dDdkFjUUp5QUtJQWRCQW5RUUdSQW5JQW9RbmdJTkFTQUtLQUlBSVFrTElBQkJpQVJxSWdnZ0F4QVBJQWdRT3lJUklBQW9BcndISWdnZ0J5QUlhaUFKRUdNZ0IwRUFTZ1JBSUFBb0Fyd0hMUUFBUVMxR0lROExJQUlnRHlBQVFZZ0VhaUFBUVlBRWFpQUFRZndEYWlBQVFmZ0RhaUFBUWVnRGFoQVJJaEFnQUVIWUEyb1FSeUlJSUFCQnlBTnFFRWNpQ3lBQVFjUURhaENiQWlBQVFUVTJBakFnQUVFb2FrRUFJQUJCTUdvaUFoQWVJUXdDZnlBQUtBTEVBeUlOSUFkSUJFQWdDeEFKSUFjZ0RXdEJBWFJxSUFnUUNXb2dBQ2dDeEFOcVFRRnFEQUVMSUFzUUNTQUlFQWxxSUFBb0FzUURha0VDYWdzaURVSGxBRThFUUNBTUlBMUJBblFRR1JBbklBd29BZ0FpQWtVTkFRc2dBaUFBUVNScUlBQkJJR29nQXlnQ0JDQUpJQWtnQjBFQ2RHb2dFU0FQSUFCQmdBUnFJQUFvQXZ3RElBQW9BdmdESUJBZ0NDQUxJQUFvQXNRREVKb0NJQUVnQWlBQUtBSWtJQUFvQWlBZ0F5QUVFR0loQVNBTUVCMGdDeEFLR2lBSUVBb2FJQkFRQ2hvZ0FFR0lCR29RRGlBS0VCMGdEaEFkSUFCQnNBaHFKQUFnQVE4TEVCY0FDLzRDQVFoL0l3QkJ3QUZySWdBa0FDQUFRYmdCYWlJR0lBTVFEeUFHRURJaENpQUZFQWtFUUNBRlFRQVFDeTBBQUNBS1FTMFFLVUgvQVhGR0lRc0xJQUlnQ3lBQVFiZ0JhaUFBUWJBQmFpQUFRYThCYWlBQVFhNEJhaUFBUWFBQmFoQVJJZ3dnQUVHUUFXb1FFU0lHSUFCQmdBRnFFQkVpQnlBQVFmd0FhaENkQWlBQVFUVTJBaEFnQUVFSWFrRUFJQUJCRUdvaUFoQWVJUWdDUUFKL0lBVVFDU0FBS0FKOFNnUkFJQVVRQ1NFSklBQW9BbndoRFNBSEVBa2dDU0FOYTBFQmRHb2dCaEFKYWlBQUtBSjhha0VCYWd3QkN5QUhFQWtnQmhBSmFpQUFLQUo4YWtFQ2Fnc2lDVUhsQUVrTkFDQUlJQWtRR1JBbklBZ29BZ0FpQWcwQUVCY0FDeUFDSUFCQkJHb2dBQ0FES0FJRUlBVVFEU0FGRUEwZ0JSQUphaUFLSUFzZ0FFR3dBV29nQUN3QXJ3RWdBQ3dBcmdFZ0RDQUdJQWNnQUNnQ2ZCQ2NBaUFCSUFJZ0FDZ0NCQ0FBS0FJQUlBTWdCQkJXSVFFZ0NCQWRJQWNRQ2hvZ0JoQUtHaUFNRUFvYUlBQkJ1QUZxRUE0Z0FFSEFBV29rQUNBQkM3SUVBUXQvSXdCQjBBTnJJZ0FrQUNBQUlBVTNBeEFnQUNBR053TVlJQUFnQUVIZ0Ftb2lCellDM0FJZ0J5QUFRUkJxRU5ZQ0lRY2dBRUUxTmdMd0FTQUFRZWdCYWtFQUlBQkI4QUZxSWdrUUhpRU9JQUJCTlRZQzhBRWdBRUhnQVdwQkFDQUpFQjRoQ2dKQUlBZEI1QUJQQkVBUUZpRUhJQUFnQlRjREFDQUFJQVkzQXdnZ0FFSGNBbW9nQjBIdUhDQUFFRm9pQjBGL1JnMEJJQTRnQUNnQzNBSVFKeUFLSUFjUUdSQW5JQW9RbmdJTkFTQUtLQUlBSVFrTElBQkIyQUZxSWdnZ0F4QVBJQWdRTWlJUklBQW9BdHdDSWdnZ0J5QUlhaUFKRUc4Z0IwRUFTZ1JBSUFBb0F0d0NMUUFBUVMxR0lROExJQUlnRHlBQVFkZ0JhaUFBUWRBQmFpQUFRYzhCYWlBQVFjNEJhaUFBUWNBQmFoQVJJaEFnQUVHd0FXb1FFU0lJSUFCQm9BRnFFQkVpQ3lBQVFad0JhaENkQWlBQVFUVTJBakFnQUVFb2FrRUFJQUJCTUdvaUFoQWVJUXdDZnlBQUtBS2NBU0lOSUFkSUJFQWdDeEFKSUFjZ0RXdEJBWFJxSUFnUUNXb2dBQ2dDbkFGcVFRRnFEQUVMSUFzUUNTQUlFQWxxSUFBb0Fwd0Jha0VDYWdzaURVSGxBRThFUUNBTUlBMFFHUkFuSUF3b0FnQWlBa1VOQVFzZ0FpQUFRU1JxSUFCQklHb2dBeWdDQkNBSklBY2dDV29nRVNBUElBQkIwQUZxSUFBc0FNOEJJQUFzQU00QklCQWdDQ0FMSUFBb0Fwd0JFSndDSUFFZ0FpQUFLQUlrSUFBb0FpQWdBeUFFRUZZaEFTQU1FQjBnQ3hBS0dpQUlFQW9hSUJBUUNob2dBRUhZQVdvUURpQUtFQjBnRGhBZElBQkIwQU5xSkFBZ0FROExFQmNBQzZjRkFRTi9Jd0JCd0FOcklnQWtBQ0FBSUFJMkFyQURJQUFnQVRZQ3VBTWdBRUUyTmdJVUlBQkJHR29nQUVFZ2FpQUFRUlJxSWdjUUhpRUpJQUJCRUdvaUFTQUVFQThnQVJBN0lRZ2dBRUVBT2dBUElBQkJ1QU5xSUFJZ0F5QUJJQVFvQWdRZ0JTQUFRUTlxSUFnZ0NTQUhJQUJCc0FOcUVLUUNCRUFqQUVFUWF5SUJKQUFDUUNBR0VEVUVRQ0FHS0FJQUlRSWdBVUVBTmdJTUlBSWdBVUVNYWhBeklBWkJBQkE1REFFTElBRkJBRFlDQ0NBR0lBRkJDR29RTXlBR1FRQVFPZ3NnQVVFUWFpUUFJQUF0QUE4RVFDQUdJQWhCTFJBOUVNY0JDeUFJUVRBUVBTRUJJQWtvQWdBaEJDQUFLQUlVSWdoQkJHc2hBZ05BQWtBZ0FpQUVUUTBBSUFRb0FnQWdBVWNOQUNBRVFRUnFJUVFNQVFzTEl3QkJFR3NpQVNRQUlBWVFDU0VDSUFZUXp3RWhBd0pBSUFRZ0NCQ2lBaUlIUlEwQUlBWVFEU0FFVFFSL0lBUWdCaEFOSUFZUUNVRUNkR3BOQlVFQUMwVUVRQ0FISUFNZ0FtdExCRUFnQmlBRElBSWdCMm9nQTJzZ0FpQUNFUE1CQ3lBR0VBMGdBa0VDZEdvaEF3TkFJQVFnQ0VjRVFDQURJQVFRTXlBRVFRUnFJUVFnQTBFRWFpRUREQUVMQ3lBQlFRQTJBZ0FnQXlBQkVETWdCaUFDSUFkcUVIZ01BUXNqQUVFUWF5SUNKQUFnQVNBRUlBZ1F6Z0lnQWtFUWFpUUFJQUVRRFNFSUlBRVFDU0VDSXdCQkVHc2lCQ1FBQWtBZ0FpQUdFTThCSWdjZ0JoQUpJZ05yVFFSQUlBSkZEUUVnQmhBTklnY2dBMEVDZEdvZ0NDQUNFSEVnQmlBQ0lBTnFJZ0lRZUNBRVFRQTJBZ3dnQnlBQ1FRSjBhaUFFUVF4cUVETU1BUXNnQmlBSElBSWdBMm9nQjJzZ0F5QURRUUFnQWlBSUVQUUJDeUFFUVJCcUpBQWdBUkFLR2dzZ0FVRVFhaVFBQ3lBQVFiZ0RhaUFBUWJBRGFoQW9CRUFnQlNBRktBSUFRUUp5TmdJQUN5QUFLQUs0QXlFQklBQkJFR29RRGlBSkVCMGdBRUhBQTJva0FDQUJDOWNEQVFKL0l3QkI4QVJySWdBa0FDQUFJQUkyQXVBRUlBQWdBVFlDNkFRZ0FFRTJOZ0lRSUFCQnlBRnFJQUJCMEFGcUlBQkJFR29RSGlFQklBQkJ3QUZxSWdjZ0JCQVBJQWNRT3lFSUlBQkJBRG9BdndFQ1FDQUFRZWdFYWlBQ0lBTWdCeUFFS0FJRUlBVWdBRUcvQVdvZ0NDQUJJQUJCeEFGcUlBQkI0QVJxRUtRQ1JRMEFJQUJCb3g0b0FBQTJBTGNCSUFCQm5CNHBBQUEzQTdBQklBZ2dBRUd3QVdvZ0FFRzZBV29nQUVHQUFXb1FZeUFBUVRVMkFoQWdBRUVJYWtFQUlBQkJFR29pQWhBZUlRTUNRQ0FBS0FMRUFTQUJLQUlBYTBHSkEwNEVRQ0FESUFBb0FzUUJJQUVvQWdCclFRSjFRUUpxRUJrUUp5QURLQUlBUlEwQklBTW9BZ0FoQWdzZ0FDMEF2d0VFUUNBQ1FTMDZBQUFnQWtFQmFpRUNDeUFCS0FJQUlRUURRQ0FBS0FMRUFTQUVUUVJBQWtBZ0FrRUFPZ0FBSUFBZ0JqWUNBQ0FBUVJCcUlBQVExd0pCQVVjTkFDQURFQjBNQkFzRklBSWdBRUd3QVdvZ0FFR0FBV29pQnlBSFFTaHFJQVFRMGdFZ0IydEJBblZxTFFBQU9nQUFJQUpCQVdvaEFpQUVRUVJxSVFRTUFRc0xFQmNBQ3hBWEFBc2dBRUhvQkdvZ0FFSGdCR29RS0FSQUlBVWdCU2dDQUVFQ2NqWUNBQXNnQUNnQzZBUWhBaUFBUWNBQmFoQU9JQUVRSFNBQVFmQUVhaVFBSUFJTHBBVUJBMzhqQUVHZ0FXc2lBQ1FBSUFBZ0FqWUNrQUVnQUNBQk5nS1lBU0FBUVRZMkFoUWdBRUVZYWlBQVFTQnFJQUJCRkdvaUJ4QWVJUWtnQUVFUWFpSUJJQVFRRHlBQkVESWhDQ0FBUVFBNkFBOGdBRUdZQVdvZ0FpQURJQUVnQkNnQ0JDQUZJQUJCRDJvZ0NDQUpJQWNnQUVHRUFXb1Fxd0lFUUNNQVFSQnJJZ0VrQUFKQUlBWVFOUVJBSUFZb0FnQWhBaUFCUVFBNkFBOGdBaUFCUVE5cUVEUWdCa0VBRURrTUFRc2dBVUVBT2dBT0lBWWdBVUVPYWhBMElBWkJBQkE2Q3lBQlFSQnFKQUFnQUMwQUR3UkFJQVlnQ0VFdEVDa1FvUUVMSUFoQk1CQXBJUUVnQ1NnQ0FDRUVJQUFvQWhRaUNFRUJheUVDSUFGQi93RnhJUUVEUUFKQUlBSWdCRTBOQUNBRUxRQUFJQUZIRFFBZ0JFRUJhaUVFREFFTEN5TUFRUkJySWdFa0FDQUdFQWtoQWlBR0VCTWhBd0pBSUFRZ0NCRHZBaUlIUlEwQUlBWVFEU0FFVFFSL0lBUWdCaEFOSUFZUUNXcE5CVUVBQzBVRVFDQUhJQU1nQW10TEJFQWdCaUFESUFJZ0Iyb2dBMnNnQWlBQ0VNZ0JDeUFHRUEwZ0Ftb2hBd05BSUFRZ0NFY0VRQ0FESUFRUU5DQUVRUUZxSVFRZ0EwRUJhaUVEREFFTEN5QUJRUUE2QUE4Z0F5QUJRUTlxRURRZ0JpQUNJQWRxRUhnTUFRc2pBRUVRYXlJQ0pBQWdBU0FFSUFnUTh3SWdBa0VRYWlRQUlBRVFEU0VJSUFFUUNTRUNJd0JCRUdzaUJDUUFBa0FnQWlBR0VCTWlCeUFHRUFraUEydE5CRUFnQWtVTkFTQUdFQTBpQnlBRGFpQUlJQUlRVlNBR0lBSWdBMm9pQWhCNElBUkJBRG9BRHlBQ0lBZHFJQVJCRDJvUU5Bd0JDeUFHSUFjZ0FpQURhaUFIYXlBRElBTkJBQ0FDSUFnUStBRUxJQVJCRUdva0FDQUJFQW9hQ3lBQlFSQnFKQUFMSUFCQm1BRnFJQUJCa0FGcUVDWUVRQ0FGSUFVb0FnQkJBbkkyQWdBTElBQW9BcGdCSVFFZ0FFRVFhaEFPSUFrUUhTQUFRYUFCYWlRQUlBRUx6UU1CQW44akFFR2dBbXNpQUNRQUlBQWdBallDa0FJZ0FDQUJOZ0tZQWlBQVFUWTJBaEFnQUVHWUFXb2dBRUdnQVdvZ0FFRVFhaEFlSVFFZ0FFR1FBV29pQnlBRUVBOGdCeEF5SVFnZ0FFRUFPZ0NQQVFKQUlBQkJtQUpxSUFJZ0F5QUhJQVFvQWdRZ0JTQUFRWThCYWlBSUlBRWdBRUdVQVdvZ0FFR0VBbW9RcXdKRkRRQWdBRUdqSGlnQUFEWUFod0VnQUVHY0hpa0FBRGNEZ0FFZ0NDQUFRWUFCYWlBQVFZb0JhaUFBUWZZQWFoQnZJQUJCTlRZQ0VDQUFRUWhxUVFBZ0FFRVFhaUlDRUI0aEF3SkFJQUFvQXBRQklBRW9BZ0JyUWVNQVRnUkFJQU1nQUNnQ2xBRWdBU2dDQUd0QkFtb1FHUkFuSUFNb0FnQkZEUUVnQXlnQ0FDRUNDeUFBTFFDUEFRUkFJQUpCTFRvQUFDQUNRUUZxSVFJTElBRW9BZ0FoQkFOQUlBQW9BcFFCSUFSTkJFQUNRQ0FDUVFBNkFBQWdBQ0FHTmdJQUlBQkJFR29nQUJEWEFrRUJSdzBBSUFNUUhRd0VDd1VnQWlBQVFmWUFhaUlISUFkQkNtb2dCQkRWQVNBQWF5QUFhaTBBQ2pvQUFDQUNRUUZxSVFJZ0JFRUJhaUVFREFFTEN4QVhBQXNRRndBTElBQkJtQUpxSUFCQmtBSnFFQ1lFUUNBRklBVW9BZ0JCQW5JMkFnQUxJQUFvQXBnQ0lRSWdBRUdRQVdvUURpQUJFQjBnQUVHZ0Ftb2tBQ0FDQzVnQ0FRSi9Jd0JCb0FOcklnZ2tBQ0FJSUFoQm9BTnFJZ00yQWd3akFFR1FBV3NpQnlRQUlBY2dCMEdFQVdvMkFod2dBRUVJYWlBSFFTQnFJZ0lnQjBFY2FpQUVJQVVnQmhDeEFpQUhRZ0EzQXhBZ0J5QUNOZ0lNSUFoQkVHb2lBaUFJS0FJTUVLNENJUVFnQUNnQ0NDRUZJd0JCRUdzaUFDUUFJQUFnQlRZQ0RDQUFRUWhxSUFCQkRHb1FVaUVGSUFJZ0IwRU1haUFFSUFkQkVHb1EwZ0loQkNBRkVGRWdBRUVRYWlRQUlBUkJmMFlFUUJBWEFBc2dDQ0FDSUFSQkFuUnFOZ0lNSUFkQmtBRnFKQUFnQ0NnQ0RDRUVJd0JCRUdzaUFDUUFJQUFnQVRZQ0NBTkFJQUlnQkVjRVFDQUFRUWhxSUFJb0FnQVE5d0lnQWtFRWFpRUNEQUVMQ3lBQUtBSUlJUUVnQUVFUWFpUUFJQU1rQUNBQkM0VUJBQ01BUVlBQmF5SUNKQUFnQWlBQ1FmUUFhallDRENBQVFRaHFJQUpCRUdvaUFDQUNRUXhxSUFRZ0JTQUdFTEVDSUFBaEJDQUNLQUlNSVFNakFFRVFheUlBSkFBZ0FDQUJOZ0lJQTBBZ0F5QUVSd1JBSUFCQkNHb2dCQ3dBQUJENEFpQUVRUUZxSVFRTUFRc0xJQUFvQWdnaEFTQUFRUkJxSkFBZ0FrR0FBV29rQUNBQkMrQU1BUUYvSXdCQlFHb2lCeVFBSUFjZ0FUWUNPQ0FFUVFBMkFnQWdCeUFERUE4Z0J4QTdJUWdnQnhBT0FuOENRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBWkJ3UUJyRGprQUFSY0VGd1VYQmdjWEZ4Y0tGeGNYRnc0UEVCY1hGeE1WRnhjWEZ4Y1hGd0FCQWdNREZ4Y0JGd2dYRndrTEZ3d1hEUmNMRnhjUkVoUVdDeUFBSUFWQkdHb2dCMEU0YWlBQ0lBUWdDQkMxQWd3WUN5QUFJQVZCRUdvZ0IwRTRhaUFDSUFRZ0NCQzBBZ3dYQ3lBSElBQWdBU0FDSUFNZ0JDQUZJQUJCQ0dvZ0FDZ0NDQ2dDREJFQUFDSUFFQTBnQUJBTklBQVFDVUVDZEdvUVlEWUNPQXdXQ3lBSFFUaHFJQUlnQkNBSVFRSVFXQ0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJBRXh5SUFCQkgwcHlSUVJBSUFVZ0FEWUNEQXdCQ3lBRUlBRkJCSEkyQWdBTERCVUxJQWRCdU5FQUtRTUFOd01ZSUFkQnNORUFLUU1BTndNUUlBZEJxTkVBS1FNQU53TUlJQWRCb05FQUtRTUFOd01BSUFjZ0FDQUJJQUlnQXlBRUlBVWdCeUFIUVNCcUVHQTJBamdNRkFzZ0IwSFkwUUFwQXdBM0F4Z2dCMEhRMFFBcEF3QTNBeEFnQjBISTBRQXBBd0EzQXdnZ0IwSEEwUUFwQXdBM0F3QWdCeUFBSUFFZ0FpQURJQVFnQlNBSElBZEJJR29RWURZQ09Bd1RDeUFIUVRocUlBSWdCQ0FJUVFJUVdDRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQkYwcHlSUVJBSUFVZ0FEWUNDQXdCQ3lBRUlBRkJCSEkyQWdBTERCSUxJQWRCT0dvZ0FpQUVJQWhCQWhCWUlRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFQVRISWdBRUVNU25KRkJFQWdCU0FBTmdJSURBRUxJQVFnQVVFRWNqWUNBQXNNRVFzZ0IwRTRhaUFDSUFRZ0NFRURFRmdoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRZTBDU25KRkJFQWdCU0FBTmdJY0RBRUxJQVFnQVVFRWNqWUNBQXNNRUFzZ0IwRTRhaUFDSUFRZ0NFRUNFRmdoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRUXhLY2tVRVFDQUZJQUJCQVdzMkFoQU1BUXNnQkNBQlFRUnlOZ0lBQ3d3UEN5QUhRVGhxSUFJZ0JDQUlRUUlRV0NFQUFrQWdCQ2dDQUNJQlFRUnhJQUJCTzBweVJRUkFJQVVnQURZQ0JBd0JDeUFFSUFGQkJISTJBZ0FMREE0TElBZEJPR29oQUNNQVFSQnJJZ0VrQUNBQklBSTJBZ2dEUUFKQUlBQWdBVUVJYWhBMlJRMEFJQWhCZ01BQUlBQVFJUkJPUlEwQUlBQVFKUm9NQVFzTElBQWdBVUVJYWhBb0JFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQlFSQnFKQUFNRFFzZ0IwRTRhaUVCQWtBZ0FFRUlhaUFBS0FJSUtBSUlFUUFBSWdBUUNVRUFJQUJCREdvUUNXdEdCRUFnQkNBRUtBSUFRUVJ5TmdJQURBRUxJQUVnQWlBQUlBQkJHR29nQ0NBRVFRQVFzZ0VnQUdzaUFTQUZLQUlJSWdCQkRFZHlSUVJBSUFWQkFEWUNDQXdCQ3lBQlFReEhJQUJCQzBweVJRUkFJQVVnQUVFTWFqWUNDQXNMREF3TElBZEI0TkVBUVN3UVFpSUdJQUFnQVNBQ0lBTWdCQ0FGSUFZZ0JrRXNhaEJnTmdJNERBc0xJQWRCb05JQUtBSUFOZ0lRSUFkQm1OSUFLUU1BTndNSUlBZEJrTklBS1FNQU53TUFJQWNnQUNBQklBSWdBeUFFSUFVZ0J5QUhRUlJxRUdBMkFqZ01DZ3NnQjBFNGFpQUNJQVFnQ0VFQ0VGZ2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFUeEtja1VFUUNBRklBQTJBZ0FNQVFzZ0JDQUJRUVJ5TmdJQUN3d0pDeUFIUWNqU0FDa0RBRGNER0NBSFFjRFNBQ2tEQURjREVDQUhRYmpTQUNrREFEY0RDQ0FIUWJEU0FDa0RBRGNEQUNBSElBQWdBU0FDSUFNZ0JDQUZJQWNnQjBFZ2FoQmdOZ0k0REFnTElBZEJPR29nQWlBRUlBaEJBUkJZSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUVHU25KRkJFQWdCU0FBTmdJWURBRUxJQVFnQVVFRWNqWUNBQXNNQndzZ0FDQUJJQUlnQXlBRUlBVWdBQ2dDQUNnQ0ZCRUZBQXdIQ3lBSElBQWdBU0FDSUFNZ0JDQUZJQUJCQ0dvZ0FDZ0NDQ2dDR0JFQUFDSUFFQTBnQUJBTklBQVFDVUVDZEdvUVlEWUNPQXdGQ3lBRlFSUnFJQWRCT0dvZ0FpQUVJQWdRc3dJTUJBc2dCMEU0YWlBQ0lBUWdDRUVFRUZnaEFDQUVMUUFBUVFSeFJRUkFJQVVnQUVIc0RtczJBaFFMREFNTElBWkJKVVlOQVFzZ0JDQUVLQUlBUVFSeU5nSUFEQUVMSXdCQkVHc2lBQ1FBSUFBZ0FqWUNDRUVHSVFFQ1FBSkFJQWRCT0dvaUFpQUFRUWhxRUNnTkFFRUVJUUVnQ0NBQ0VDRVFod0ZCSlVjTkFFRUNJUUVnQWhBbElBQkJDR29RS0VVTkFRc2dCQ0FFS0FJQUlBRnlOZ0lBQ3lBQVFSQnFKQUFMSUFjb0FqZ0xJUUFnQjBGQWF5UUFJQUFMUndFQmZ5TUFRUkJySWdZa0FDQUdJQUUyQWdnZ0JpQURFQThnQmhBN0lRRWdCaEFPSUFWQkZHb2dCa0VJYWlBQ0lBUWdBUkN6QWlBR0tBSUlJUUFnQmtFUWFpUUFJQUFMU1FFQmZ5TUFRUkJySWdZa0FDQUdJQUUyQWdnZ0JpQURFQThnQmhBN0lRRWdCaEFPSUFBZ0JVRVFhaUFHUVFocUlBSWdCQ0FCRUxRQ0lBWW9BZ2doQUNBR1FSQnFKQUFnQUF0SkFRRi9Jd0JCRUdzaUJpUUFJQVlnQVRZQ0NDQUdJQU1RRHlBR0VEc2hBU0FHRUE0Z0FDQUZRUmhxSUFaQkNHb2dBaUFFSUFFUXRRSWdCaWdDQ0NFQUlBWkJFR29rQUNBQUN6QUFJQUFnQVNBQ0lBTWdCQ0FGSUFCQkNHb2dBQ2dDQ0NnQ0ZCRUFBQ0lBRUEwZ0FCQU5JQUFRQ1VFQ2RHb1FZQXRjQVFGL0l3QkJJR3NpQmlRQUlBWkJ5TklBS1FNQU53TVlJQVpCd05JQUtRTUFOd01RSUFaQnVOSUFLUU1BTndNSUlBWkJzTklBS1FNQU53TUFJQUFnQVNBQ0lBTWdCQ0FGSUFZZ0JrRWdhaUlCRUdBaEFDQUJKQUFnQUF0TUFRRi9RY1NCQVVIQWdRRWdBaHNnQVRZQ0FDQUJRUUJLQkVCQm9JRUJRWUNCQVNBQ0d5RURRUUFoQWdOQUlBSWdBMm9nQUNBQ2FpMEFBRG9BQUNBQ1FRRnFJZ0lnQVVjTkFBc0xDNUFNQVFKL0l3QkJJR3NpQnlRQUlBY2dBVFlDR0NBRVFRQTJBZ0FnQjBFSWFpSUpJQU1RRHlBSkVESWhDQ0FKRUE0Q2Z3SkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0JrSEJBR3NPT1FBQkZ3UVhCUmNHQnhjWEZ3b1hGeGNYRGc4UUZ4Y1hFeFVYRnhjWEZ4Y1hBQUVDQXdNWEZ3RVhDQmNYQ1FzWERCY05Gd3NYRnhFU0ZCWUxJQUFnQlVFWWFpQUhRUmhxSUFJZ0JDQUlFTGdDREJnTElBQWdCVUVRYWlBSFFSaHFJQUlnQkNBSUVMY0NEQmNMSUFjZ0FDQUJJQUlnQXlBRUlBVWdBRUVJYWlBQUtBSUlLQUlNRVFBQUlnQVFEU0FBRUEwZ0FCQUphaEJoTmdJWURCWUxJQWRCR0dvZ0FpQUVJQWhCQWhCWklRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFQVRISWdBRUVmU25KRkJFQWdCU0FBTmdJTURBRUxJQVFnQVVFRWNqWUNBQXNNRlFzZ0IwS2wycjJwd3V6TGt2a0FOd01JSUFjZ0FDQUJJQUlnQXlBRUlBVWdCMEVJYWlBSFFSQnFFR0UyQWhnTUZBc2dCMEtsc3JXcDBxM0xrdVFBTndNSUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQjBFSWFpQUhRUkJxRUdFMkFoZ01Fd3NnQjBFWWFpQUNJQVFnQ0VFQ0VGa2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFSZEtja1VFUUNBRklBQTJBZ2dNQVFzZ0JDQUJRUVJ5TmdJQUN3d1NDeUFIUVJocUlBSWdCQ0FJUVFJUVdTRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQkFFeHlJQUJCREVweVJRUkFJQVVnQURZQ0NBd0JDeUFFSUFGQkJISTJBZ0FMREJFTElBZEJHR29nQWlBRUlBaEJBeEJaSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUh0QWtweVJRUkFJQVVnQURZQ0hBd0JDeUFFSUFGQkJISTJBZ0FMREJBTElBZEJHR29nQWlBRUlBaEJBaEJaSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUVNU25KRkJFQWdCU0FBUVFGck5nSVFEQUVMSUFRZ0FVRUVjallDQUFzTUR3c2dCMEVZYWlBQ0lBUWdDRUVDRUZraEFBSkFJQVFvQWdBaUFVRUVjU0FBUVR0S2NrVUVRQ0FGSUFBMkFnUU1BUXNnQkNBQlFRUnlOZ0lBQ3d3T0N5QUhRUmhxSVFBakFFRVFheUlCSkFBZ0FTQUNOZ0lJQTBBQ1FDQUFJQUZCQ0dvUU1VVU5BQ0FJUVlEQUFDQUFFQjhRUkVVTkFDQUFFQ0lhREFFTEN5QUFJQUZCQ0dvUUpnUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FVRVFhaVFBREEwTElBZEJHR29oQVFKQUlBQkJDR29nQUNnQ0NDZ0NDQkVBQUNJQUVBbEJBQ0FBUVF4cUVBbHJSZ1JBSUFRZ0JDZ0NBRUVFY2pZQ0FBd0JDeUFCSUFJZ0FDQUFRUmhxSUFnZ0JFRUFFTFFCSUFCcklnRWdCU2dDQ0NJQVFReEhja1VFUUNBRlFRQTJBZ2dNQVFzZ0FVRU1SeUFBUVF0S2NrVUVRQ0FGSUFCQkRHbzJBZ2dMQ3d3TUN5QUhRWlRSQUNnQUFEWUFEeUFIUVkzUkFDa0FBRGNEQ0NBSElBQWdBU0FDSUFNZ0JDQUZJQWRCQ0dvZ0IwRVRhaEJoTmdJWURBc0xJQWRCbk5FQUxRQUFPZ0FNSUFkQm1ORUFLQUFBTmdJSUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQjBFSWFpQUhRUTFxRUdFMkFoZ01DZ3NnQjBFWWFpQUNJQVFnQ0VFQ0VGa2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFUeEtja1VFUUNBRklBQTJBZ0FNQVFzZ0JDQUJRUVJ5TmdJQUN3d0pDeUFIUXFXUTZhblN5YzZTMHdBM0F3Z2dCeUFBSUFFZ0FpQURJQVFnQlNBSFFRaHFJQWRCRUdvUVlUWUNHQXdJQ3lBSFFSaHFJQUlnQkNBSVFRRVFXU0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJCa3B5UlFSQUlBVWdBRFlDR0F3QkN5QUVJQUZCQkhJMkFnQUxEQWNMSUFBZ0FTQUNJQU1nQkNBRklBQW9BZ0FvQWhRUkJRQU1Cd3NnQnlBQUlBRWdBaUFESUFRZ0JTQUFRUWhxSUFBb0FnZ29BaGdSQUFBaUFCQU5JQUFRRFNBQUVBbHFFR0UyQWhnTUJRc2dCVUVVYWlBSFFSaHFJQUlnQkNBSUVMWUNEQVFMSUFkQkdHb2dBaUFFSUFoQkJCQlpJUUFnQkMwQUFFRUVjVVVFUUNBRklBQkI3QTVyTmdJVUN3d0RDeUFHUVNWR0RRRUxJQVFnQkNnQ0FFRUVjallDQUF3QkN5TUFRUkJySWdBa0FDQUFJQUkyQWdoQkJpRUJBa0FDUUNBSFFSaHFJZ0lnQUVFSWFoQW1EUUJCQkNFQklBZ2dBaEFmRUlnQlFTVkhEUUJCQWlFQklBSVFJaUFBUVFocUVDWkZEUUVMSUFRZ0JDZ0NBQ0FCY2pZQ0FBc2dBRUVRYWlRQUN5QUhLQUlZQ3lFQUlBZEJJR29rQUNBQUMwY0JBWDhqQUVFUWF5SUdKQUFnQmlBQk5nSUlJQVlnQXhBUElBWVFNaUVCSUFZUURpQUZRUlJxSUFaQkNHb2dBaUFFSUFFUXRnSWdCaWdDQ0NFQUlBWkJFR29rQUNBQUMwa0JBWDhqQUVFUWF5SUdKQUFnQmlBQk5nSUlJQVlnQXhBUElBWVFNaUVCSUFZUURpQUFJQVZCRUdvZ0JrRUlhaUFDSUFRZ0FSQzNBaUFHS0FJSUlRQWdCa0VRYWlRQUlBQUxTUUVCZnlNQVFSQnJJZ1lrQUNBR0lBRTJBZ2dnQmlBREVBOGdCaEF5SVFFZ0JoQU9JQUFnQlVFWWFpQUdRUWhxSUFJZ0JDQUJFTGdDSUFZb0FnZ2hBQ0FHUVJCcUpBQWdBQXN0QUNBQUlBRWdBaUFESUFRZ0JTQUFRUWhxSUFBb0FnZ29BaFFSQUFBaUFCQU5JQUFRRFNBQUVBbHFFR0VMUHdFQmZ5TUFRUkJySWdZa0FDQUdRcVdRNmFuU3ljNlMwd0EzQXdnZ0FDQUJJQUlnQXlBRUlBVWdCa0VJYWlBR1FSQnFJZ0VRWVNFQUlBRWtBQ0FBQzY0QkFRVi9Jd0JCMEFGcklnQWtBQ0FBUVl2UkFDOEFBRHNCekFFZ0FFR0gwUUFvQUFBMkFzZ0JFQlloQmlBQUlBUTJBZ0FnQUVHd0FXb2lCeUFISUFkQkZDQUdJQUJCeUFGcUlBQVFMQ0lJYWlJRUlBSVFQeUVHSUFCQkVHb2lCU0FDRUE4Z0JSQTdJUWtnQlJBT0lBa2dCeUFFSUFVUVl5QUJJQVVnQ0VFQ2RDQUZhaUlCSUFZZ0FHdEJBblFnQUdwQnNBVnJJQVFnQmtZYklBRWdBaUFERUdJaEFTQUFRZEFCYWlRQUlBRUxnQVFCQjM4akFFR3dBMnNpQUNRQUlBQkNKVGNEcUFNZ0FFR29BMnBCQVhKQmp4NGdBaWdDQkJDdkFTRUlJQUFnQUVHQUEybzJBdndDRUJZaEJnSi9JQWdFUUNBQ0tBSUlJUWNnQUVGQWF5QUZOd01BSUFBZ0JEY0RPQ0FBSUFjMkFqQWdBRUdBQTJwQkhpQUdJQUJCcUFOcUlBQkJNR29RTEF3QkN5QUFJQVEzQTFBZ0FDQUZOd05ZSUFCQmdBTnFRUjRnQmlBQVFhZ0RhaUFBUWRBQWFoQXNDeUVHSUFCQk5UWUNnQUVnQUVId0FtcEJBQ0FBUVlBQmFoQWVJUWtnQUVHQUEyb2lDaUVIQWtBZ0JrRWVUZ1JBRUJZaEJnSi9JQWdFUUNBQ0tBSUlJUWNnQUNBRk53TVFJQUFnQkRjRENDQUFJQWMyQWdBZ0FFSDhBbW9nQmlBQVFhZ0RhaUFBRUZvTUFRc2dBQ0FFTndNZ0lBQWdCVGNES0NBQVFmd0NhaUFHSUFCQnFBTnFJQUJCSUdvUVdnc2lCa0YvUmcwQklBa2dBQ2dDL0FJUUp5QUFLQUw4QWlFSEN5QUhJQVlnQjJvaUN5QUNFRDhoRENBQVFUVTJBb0FCSUFCQitBQnFRUUFnQUVHQUFXb1FIaUVIQWtBZ0FDZ0MvQUlnQUVHQUEycEdCRUFnQUVHQUFXb2hCZ3dCQ3lBR1FRTjBFQmtpQmtVTkFTQUhJQVlRSnlBQUtBTDhBaUVLQ3lBQVFlZ0FhaUlJSUFJUUR5QUtJQXdnQ3lBR0lBQkI5QUJxSUFCQjhBQnFJQWdRdWdJZ0NCQU9JQUVnQmlBQUtBSjBJQUFvQW5BZ0FpQURFR0loQVNBSEVCMGdDUkFkSUFCQnNBTnFKQUFnQVE4TEVCY0FDOXdEQVFkL0l3QkJnQU5ySWdBa0FDQUFRaVUzQS9nQ0lBQkIrQUpxUVFGeVFhUWZJQUlvQWdRUXJ3RWhCeUFBSUFCQjBBSnFOZ0xNQWhBV0lRVUNmeUFIQkVBZ0FpZ0NDQ0VHSUFBZ0JEa0RLQ0FBSUFZMkFpQWdBRUhRQW1wQkhpQUZJQUJCK0FKcUlBQkJJR29RTEF3QkN5QUFJQVE1QXpBZ0FFSFFBbXBCSGlBRklBQkIrQUpxSUFCQk1Hb1FMQXNoQlNBQVFUVTJBbEFnQUVIQUFtcEJBQ0FBUWRBQWFoQWVJUWdnQUVIUUFtb2lDU0VHQWtBZ0JVRWVUZ1JBRUJZaEJRSi9JQWNFUUNBQ0tBSUlJUVlnQUNBRU9RTUlJQUFnQmpZQ0FDQUFRY3dDYWlBRklBQkIrQUpxSUFBUVdnd0JDeUFBSUFRNUF4QWdBRUhNQW1vZ0JTQUFRZmdDYWlBQVFSQnFFRm9MSWdWQmYwWU5BU0FJSUFBb0Fzd0NFQ2NnQUNnQ3pBSWhCZ3NnQmlBRklBWnFJZ29nQWhBL0lRc2dBRUUxTmdKUUlBQkJ5QUJxUVFBZ0FFSFFBR29RSGlFR0FrQWdBQ2dDekFJZ0FFSFFBbXBHQkVBZ0FFSFFBR29oQlF3QkN5QUZRUU4wRUJraUJVVU5BU0FHSUFVUUp5QUFLQUxNQWlFSkN5QUFRVGhxSWdjZ0FoQVBJQWtnQ3lBS0lBVWdBRUhFQUdvZ0FFRkFheUFIRUxvQ0lBY1FEaUFCSUFVZ0FDZ0NSQ0FBS0FKQUlBSWdBeEJpSVFFZ0JoQWRJQWdRSFNBQVFZQURhaVFBSUFFUEN4QVhBQXVpQVFFRWZ5TUFRWUFDYXlJQUpBQWdBRUlsTndQNEFTQUFRZmdCYWlJR1FRRnlRZE1jUVFBZ0FpZ0NCQkJ0RUJZaEJ5QUFJQVEzQXdBZ0FFSGdBV29pQlNBRlFSZ2dCeUFHSUFBUUxDQUZhaUlISUFJUVB5RUlJQUJCRUdvaUJpQUNFQThnQlNBSUlBY2dBRUVnYWlJRklBQkJIR29nQUVFWWFpQUdFSzRCSUFZUURpQUJJQVVnQUNnQ0hDQUFLQUlZSUFJZ0F4QmlJUUVnQUVHQUFtb2tBQ0FCQzdRQkFRTi9Jd0JCb0FGcklnQWtBQ0FBUVlYUkFDOEFBRHNCbkFFZ0FFR0IwUUFvQUFBMkFwZ0JJQUJCbUFGcUlnVkJBWEpCMmh4QkFDQUNLQUlFRUcwUUZpRUdJQUFnQkRZQ0FDQUFRWXNCYWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRcmdFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFR0loQVNBQVFhQUJhaVFBSUFFTG9nRUJCSDhqQUVHQUFtc2lBQ1FBSUFCQ0pUY0QrQUVnQUVINEFXb2lCa0VCY2tIVEhFRUJJQUlvQWdRUWJSQVdJUWNnQUNBRU53TUFJQUJCNEFGcUlnVWdCVUVZSUFjZ0JpQUFFQ3dnQldvaUJ5QUNFRDhoQ0NBQVFSQnFJZ1lnQWhBUElBVWdDQ0FISUFCQklHb2lCU0FBUVJ4cUlBQkJHR29nQmhDdUFTQUdFQTRnQVNBRklBQW9BaHdnQUNnQ0dDQUNJQU1RWWlFQklBQkJnQUpxSkFBZ0FRc1dBRUdnZ1FGQnhJRUJLQUlBSUFJZ0FDQUJFT1lCQzdRQkFRTi9Jd0JCb0FGcklnQWtBQ0FBUVlYUkFDOEFBRHNCbkFFZ0FFR0IwUUFvQUFBMkFwZ0JJQUJCbUFGcUlnVkJBWEpCMmh4QkFTQUNLQUlFRUcwUUZpRUdJQUFnQkRZQ0FDQUFRWXNCYWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRcmdFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFR0loQVNBQVFhQUJhaVFBSUFFTHpRRUJBWDhqQUVFd2F5SUZKQUFnQlNBQk5nSW9Ba0FnQWlnQ0JFRUJjVVVFUUNBQUlBRWdBaUFESUFRZ0FDZ0NBQ2dDR0JFR0FDRUNEQUVMSUFWQkdHb2lBQ0FDRUE4Z0FCQ01BU0VCSUFBUURnSkFJQVFFUUNBRlFSaHFJQUVRU3d3QkN5QUZRUmhxSUFFUVNnc2dCU0FGUVJocUVFQTJBaEFEUUNBRklBVkJHR29RYkRZQ0NDQUZRUkJxSUFWQkNHb1FXd1JBSUFWQktHb2dCVUVRYWlJQUtBSUFLQUlBRVBjQ0lBQVFsUUVNQVFVZ0JTZ0NLQ0VDSUFWQkdHb1FDaG9MQ3dzZ0JVRXdhaVFBSUFJTHBBRUJCWDhqQUVIZ0FHc2lBQ1FBSUFCQmk5RUFMd0FBT3dGY0lBQkJoOUVBS0FBQU5nSllFQlloQmlBQUlBUTJBZ0FnQUVGQWF5SUhJQWNnQjBFVUlBWWdBRUhZQUdvZ0FCQXNJZ2hxSWdRZ0FoQS9JUVlnQUVFUWFpSUZJQUlRRHlBRkVESWhDU0FGRUE0Z0NTQUhJQVFnQlJCdklBRWdCU0FGSUFocUlnRWdCaUFBYXlBQWFrRXdheUFFSUFaR0d5QUJJQUlnQXhCV0lRRWdBRUhnQUdva0FDQUJDNEFFQVFkL0l3QkJnQUpySWdBa0FDQUFRaVUzQS9nQklBQkIrQUZxUVFGeVFZOGVJQUlvQWdRUXJ3RWhDQ0FBSUFCQjBBRnFOZ0xNQVJBV0lRWUNmeUFJQkVBZ0FpZ0NDQ0VISUFCQlFHc2dCVGNEQUNBQUlBUTNBemdnQUNBSE5nSXdJQUJCMEFGcVFSNGdCaUFBUWZnQmFpQUFRVEJxRUN3TUFRc2dBQ0FFTndOUUlBQWdCVGNEV0NBQVFkQUJha0VlSUFZZ0FFSDRBV29nQUVIUUFHb1FMQXNoQmlBQVFUVTJBb0FCSUFCQndBRnFRUUFnQUVHQUFXb1FIaUVKSUFCQjBBRnFJZ29oQndKQUlBWkJIazRFUUJBV0lRWUNmeUFJQkVBZ0FpZ0NDQ0VISUFBZ0JUY0RFQ0FBSUFRM0F3Z2dBQ0FITmdJQUlBQkJ6QUZxSUFZZ0FFSDRBV29nQUJCYURBRUxJQUFnQkRjRElDQUFJQVUzQXlnZ0FFSE1BV29nQmlBQVFmZ0JhaUFBUVNCcUVGb0xJZ1pCZjBZTkFTQUpJQUFvQXN3QkVDY2dBQ2dDekFFaEJ3c2dCeUFHSUFkcUlnc2dBaEEvSVF3Z0FFRTFOZ0tBQVNBQVFmZ0Fha0VBSUFCQmdBRnFFQjRoQndKQUlBQW9Bc3dCSUFCQjBBRnFSZ1JBSUFCQmdBRnFJUVlNQVFzZ0JrRUJkQkFaSWdaRkRRRWdCeUFHRUNjZ0FDZ0N6QUVoQ2dzZ0FFSG9BR29pQ0NBQ0VBOGdDaUFNSUFzZ0JpQUFRZlFBYWlBQVFmQUFhaUFJRUx3Q0lBZ1FEaUFCSUFZZ0FDZ0NkQ0FBS0FKd0lBSWdBeEJXSVFFZ0J4QWRJQWtRSFNBQVFZQUNhaVFBSUFFUEN4QVhBQXZjQXdFSGZ5TUFRZEFCYXlJQUpBQWdBRUlsTndQSUFTQUFRY2dCYWtFQmNrR2tIeUFDS0FJRUVLOEJJUWNnQUNBQVFhQUJhallDbkFFUUZpRUZBbjhnQndSQUlBSW9BZ2doQmlBQUlBUTVBeWdnQUNBR05nSWdJQUJCb0FGcVFSNGdCU0FBUWNnQmFpQUFRU0JxRUN3TUFRc2dBQ0FFT1FNd0lBQkJvQUZxUVI0Z0JTQUFRY2dCYWlBQVFUQnFFQ3dMSVFVZ0FFRTFOZ0pRSUFCQmtBRnFRUUFnQUVIUUFHb1FIaUVJSUFCQm9BRnFJZ2toQmdKQUlBVkJIazRFUUJBV0lRVUNmeUFIQkVBZ0FpZ0NDQ0VHSUFBZ0JEa0RDQ0FBSUFZMkFnQWdBRUdjQVdvZ0JTQUFRY2dCYWlBQUVGb01BUXNnQUNBRU9RTVFJQUJCbkFGcUlBVWdBRUhJQVdvZ0FFRVFhaEJhQ3lJRlFYOUdEUUVnQ0NBQUtBS2NBUkFuSUFBb0Fwd0JJUVlMSUFZZ0JTQUdhaUlLSUFJUVB5RUxJQUJCTlRZQ1VDQUFRY2dBYWtFQUlBQkIwQUJxRUI0aEJnSkFJQUFvQXB3QklBQkJvQUZxUmdSQUlBQkIwQUJxSVFVTUFRc2dCVUVCZEJBWklnVkZEUUVnQmlBRkVDY2dBQ2dDbkFFaENRc2dBRUU0YWlJSElBSVFEeUFKSUFzZ0NpQUZJQUJCeEFCcUlBQkJRR3NnQnhDOEFpQUhFQTRnQVNBRklBQW9Ba1FnQUNnQ1FDQUNJQU1RVmlFQklBWVFIU0FJRUIwZ0FFSFFBV29rQUNBQkR3c1FGd0FMb1FFQkJIOGpBRUh3QUdzaUFDUUFJQUJDSlRjRGFDQUFRZWdBYWlJR1FRRnlRZE1jUVFBZ0FpZ0NCQkJ0RUJZaEJ5QUFJQVEzQXdBZ0FFSFFBR29pQlNBRlFSZ2dCeUFHSUFBUUxDQUZhaUlISUFJUVB5RUlJQUJCRUdvaUJpQUNFQThnQlNBSUlBY2dBRUVnYWlJRklBQkJIR29nQUVFWWFpQUdFTEFCSUFZUURpQUJJQVVnQUNnQ0hDQUFLQUlZSUFJZ0F4QldJUUVnQUVId0FHb2tBQ0FCQzdFQkFRTi9Jd0JCMEFCcklnQWtBQ0FBUVlYUkFDOEFBRHNCVENBQVFZSFJBQ2dBQURZQ1NDQUFRY2dBYWlJRlFRRnlRZG9jUVFBZ0FpZ0NCQkJ0RUJZaEJpQUFJQVEyQWdBZ0FFRTdhaUlFSUFSQkRTQUdJQVVnQUJBc0lBUnFJZ1lnQWhBL0lRY2dBRUVRYWlJRklBSVFEeUFFSUFjZ0JpQUFRU0JxSWdRZ0FFRWNhaUFBUVJocUlBVVFzQUVnQlJBT0lBRWdCQ0FBS0FJY0lBQW9BaGdnQWlBREVGWWhBU0FBUWRBQWFpUUFJQUVMb1FFQkJIOGpBRUh3QUdzaUFDUUFJQUJDSlRjRGFDQUFRZWdBYWlJR1FRRnlRZE1jUVFFZ0FpZ0NCQkJ0RUJZaEJ5QUFJQVEzQXdBZ0FFSFFBR29pQlNBRlFSZ2dCeUFHSUFBUUxDQUZhaUlISUFJUVB5RUlJQUJCRUdvaUJpQUNFQThnQlNBSUlBY2dBRUVnYWlJRklBQkJIR29nQUVFWWFpQUdFTEFCSUFZUURpQUJJQVVnQUNnQ0hDQUFLQUlZSUFJZ0F4QldJUUVnQUVId0FHb2tBQ0FCQyswUkFRNS9Jd0JCd0FKcklnWWtBQ0FHSUFFZ0FrRUJFTm9DTmdLVUFpQUdJQVlvQXBRQ0VKSUJOZ0tZQWtHaitJYXJmMEdjbE1MbGZTQUVHeUVPSUFCRklROUJzWmZYdW5vaEFRTkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFFaUFFSHd1dDdlQVV3RVFDQUFRY2l5dGRKN1RBUkFJQUJCeHN1cmlIcE1CRUFnQUVIdDVMR2plRVlOQ3lBQVFZeUdwN3g1UmcwS0lBQkJsOHpnOVhsSERSSWdCaWdDdEFKQmdJRUJhaUFHTFFDZkFqb0FBRUdYck13cElRRU1FZ3NnQUVHeGw5ZTZla1lOQWlBQVFleVpwdUo2UmcwTElBQkJ4OHVyaUhwSERSRWdCa0hBQW1va0FBOExJQUJCOUxlMTRuNU1CRUFnQUVISnNyWFNlMFlOQkNBQVFaeVV3dVY5UmcwR0lBQkJqUHlyeEg1SERSRU1FQXNnQUVIMXQ3WGlma1lOQkNBQVFhUDRocXQvUmcwR0lBQkJsNnpNS1VjTkVDQUdLQUswQWtFQmFpRU5RWVMxNDhVSElRRU1FQXNnQUVHdTA4ekRCVXdFUUNBQVFmVEh2dGdDVEFSQUlBNGhBU0FBUWZHNjN0NEJSZzBSSUFBaEFTQUFRZVAycnA0Q1J3MFJJQVpCb0FGcUVBb2FJQVlvQXFBQ0dnd1FDeUFBUWZYSHZ0Z0NSZzBNSUFCQjBPRFZod05HRFFjZ0FFSGszZk8zQkVjTkVDQUdLQUswQWtHZ2dRRnFJQVl0QUo4Q09nQUFRWmVzekNraEFRd1FDeUFBUWR5QWhMTUdUQVJBSUFCQnI5UE13d1ZHRFFzZ0FFRzAyNUhNQlVZTkRpQUFRWlhnK040RlJ3MFFRY1NCQVNBRE5nSUFRZkc2M3Q0QklRRU1FQXNnQUVIZGdJU3pCa1lORENBQVFkWGZ3Zk1HUmcwQklBQkJoTFhqeFFkSERROGdCaUFOTmdLMEFrR01ocWU4ZVVHTS9LdkVmaUFHS0FLMEFpQURTQnNoQVF3UEMwRUFJUWNnQmlBRVFRQktPZ0NkQWtIVjM4SHpCa0hKc3JYU2V5QUdMUUNkQWtFQmNSc2hBU0FHS0FLVUFpRUtEQTRMSUFaQmlBSnFJQVlvQXBRQ0VGUWlFQ0VLUVFBaENFRUFJUWtqQUVFUWF5SUJKQUFnQ2hBSklRc2pBRUVRYXlJSEpBQWdCa0g0QVdvaUFFSUFOd0lBSUFkQkFEWUNEQ0FBUVFocUlBZEJER29RelFFZ0IwRVFhaVFBQWtBZ0MwVU5BQU5BQWtBZ0NpQUpFQXN0QUFCQlBVWU5BQ0FLSUFrUUN5MEFBQ0lIUVN0R0lBZEJJSEpCNFFCclFScEpCSDlCQVFVZ0J4QkZRUUJIQzBFQVIzSWdCMEV2Um5KRkRRQWdDMEVCYXlFTElBRkJER29nQ0dvZ0NpQUpFQXN0QUFBNkFBQkJBQ0VISUFoQkFXb2lDRUVFUmdSQUEwQWdBVUVNYWlBSGFpSUlJQWdzQUFBUTlRRTZBQUFnQjBFQmFpSUhRUVJIRFFBTElBRWdBUzBBRHlBQkxRQU9JZ2RCQm5ScU9nQUxJQUVnQVMwQURTSUlRUVIyUVFOeElBRXRBQXhCQW5SeU9nQUpJQUVnQjBFQ2RrRVBjU0FJUVFSMGNqb0FDa0VBSVFoQkFDRUhBMEFnQUNBQlFRbHFJQWRxRVBRQ0lBZEJBV29pQjBFRFJ3MEFDd3NnQ1VFQmFpRUpJQXNOQVFzTElBaEZEUUFnQ0VFRFRBUkFJQUZCREdvZ0NHcEJBRUVFSUFockVFWWFDMEVBSVFjRFFDQUJRUXhxSUFkcUlna2dDU3dBQUJEMUFUb0FBQ0FIUVFGcUlnZEJCRWNOQUFzZ0FTQUJMUUFQSUFFdEFBNGlCMEVHZEdvNkFBc2dBU0FCTFFBTklnbEJCSFpCQTNFZ0FTMEFERUVDZEhJNkFBa2dBU0FIUVFKMlFROXhJQWxCQkhSeU9nQUtJQWhCQWtnTkFDQUlRUUZySVFoQkFDRUhBMEFnQUNBQlFRbHFJQWRxRVBRQ0lBZEJBV29pQnlBSVJ3MEFDd3NnQVVFUWFpUUFJQUFRaVFFaEVTQUFLQUlBSVF3Z0JrR3RIeWdBQURZQzhBRWdCa0dsSHlrQUFEY0Q2QUVnQmtJQU53UFlBU0FHUWdBM0E5QUJJQVpDQURjRHlBRWdCa0lBTndQQUFTQUdRZ0EzQTdnQklBWkNBRGNEc0FFZ0FCQ0pBU0VMSUFaQnNBRnFJUW9qQUVFd2F5SUJKQUFnQVVFZ2FpRUlJQVVnQkJDK0FpSUhCRUFnQ0VJQU53QUFJQWhDQURjQUNDQUhJQWdnQ0JDbkFRc2dCa0cvQW1vaEVpQUdRZEFCYWlFVElBY0VmeU1BUVJCcklna2tBQ0FCUVJCcUlnZ2dCaWtBNkFFM0FBQWdDQ0FHS0FEd0FUWUFDQ0FJUVlDQWdBZzJBQXdnQ1VFUWFpUUFJd0JCRUdzaUNTUUFJQXNFUUNBSklBZ3BBQUEzQXdBZ0NTQUlLUUFJTndNSUlBa1E2d0VnQnlBSklBd2dDeUFLRUlVQ0N5QUpRUkJxSkFBakFFRVFheUlKSkFBZ0FVSUFOd0FBSUFGQ0FEY0FDQ0FCUVNCcUlnd2dFa0VBSUFFUXZ3RWdEQ0FLSUFzZ0FSQy9BU0FKUWdBUTdRRWdDVUVJY2lBTFFRTjByUkR0QVNBTUlBbEJFQ0FCRUw4QklBbEJFR29rQUNBSElBZ2dBVUVRSUJNUWhRSWdCeEFRUVFBRlFYOExHaUFCUVRCcUpBQWdBQkR0QWlBQUtBSUFCRUFnQUNnQ0JDSUJJQUFvQWdBaUIwY0VRQU5BSUFBUVF4b2dCeUFCUVFGcklnRkhEUUFMQ3lBQUlBYzJBZ1FnQUJCREdpQUFLQUlBSVFFZ0FCQ0ZBUm9nQVJBUUN5QVFFQW9hUVNCQkVDQVJRVEJHR3lFSFFjbXl0ZEo3SVFFTURRc2dCaUFQT2dDZUFpQUdJQWMyQXJBQ0lBWWdDallDckFKQjliZTE0bjVCbGVENDNnVWdCaTBBbmdKQkFYRWJJUUVNREF0QndJRUJJQU0yQWdCQjhicmUzZ0VoQVF3TEMwSFE0TldIQTBHaitJYXJmeUFHS0FLWUFpQURSaHNoQVF3S0MwSFE0TldIQTBIdDVMR2plQ0FHS0FLd0FrRVFSaHRCN2VTeG8zZ2dCaTBBblFKQkFYRWJJUUVNQ1F0QmhMWGp4UWNoQVVFQUlRME1DQXNnQmlBR0tBS3NBaUFHS0FLMEFtb3RBQUE2QUo4Q0lBWXRBSjhDR2tHWHpPRDFlVUhrM2ZPM0JDQUdMUUNlQWtFQmNSc2hBUXdIQ3lBR0lBWkJvQUZxSWdBMkFxQUNJQVlvQXFBQ0dpQUFJQVlvQXF3Q0VGUWFRZXlacHVKNklRRkJBQ0VDREFZTElBWWdBallDdUFKQnI5UE13d1ZCNC9hdW5nSWdCaWdDdUFJZ0EwZ2JJUUVNQlFzZ0JpQUdRUkJxSWdBMkFxUUNJQVlvQXFRQ0dpQUFFTXdDR2lBR0lBWkJER29pQ0RZQ3FBSWdCaWdDcUFJYUlBWW9BcVFDUVFocUVNSUNJUWtnQmtHd0FXb2lBU0FHUWFBQmFpQUdLQUs0QWtFQmRCREFBaUFKSUFFUXZRSWdBUkFLR2lBQUlBZ1EvUUpCOWNlKzJBSkIzWUNFc3dZZ0JpMEFuZ0pCQVhFYklRRU1CQXNnQmlnQ3VBSkJnSUVCYWlBR0tBSU1PZ0FBUWJUYmtjd0ZJUUVNQXdzZ0JpZ0N1QUpCb0lFQmFpQUdLQUlNT2dBQVFiVGJrY3dGSVFFTUFnc2dCaWdDcUFJYUlBWkJFR29RaWdFYUlBWW9BcVFDR2lBR0tBSzRBaUlBUVFGMFFRSnhJQUJCQVhOcUlRSkI3Sm1tNG5vaEFRd0JDMEhIeTZ1SWVpRUJEQUFMQUF1eEFRRURmeU1BUWRBQWF5SUFKQUFnQUVHRjBRQXZBQUE3QVV3Z0FFR0IwUUFvQUFBMkFrZ2dBRUhJQUdvaUJVRUJja0hhSEVFQklBSW9BZ1FRYlJBV0lRWWdBQ0FFTmdJQUlBQkJPMm9pQkNBRVFRMGdCaUFGSUFBUUxDQUVhaUlHSUFJUVB5RUhJQUJCRUdvaUJTQUNFQThnQkNBSElBWWdBRUVnYWlJRUlBQkJIR29nQUVFWWFpQUZFTEFCSUFVUURpQUJJQVFnQUNnQ0hDQUFLQUlZSUFJZ0F4QldJUUVnQUVIUUFHb2tBQ0FCQzgwQkFRRi9Jd0JCTUdzaUJTUUFJQVVnQVRZQ0tBSkFJQUlvQWdSQkFYRkZCRUFnQUNBQklBSWdBeUFFSUFBb0FnQW9BaGdSQmdBaEFnd0JDeUFGUVJocUlnQWdBaEFQSUFBUWpnRWhBU0FBRUE0Q1FDQUVCRUFnQlVFWWFpQUJFRXNNQVFzZ0JVRVlhaUFCRUVvTElBVWdCVUVZYWhCQU5nSVFBMEFnQlNBRlFSaHFFRzQyQWdnZ0JVRVFhaUFGUVFocUVGc0VRQ0FGUVNocUlBVkJFR29pQUNnQ0FDd0FBQkQ0QWlBQUVKY0JEQUVGSUFVb0FpZ2hBaUFGUVJocUVBb2FDd3NMSUFWQk1Hb2tBQ0FDQy9JQ0FRRi9Jd0JCNEFKcklnQWtBQ0FBSUFJMkF0QUNJQUFnQVRZQzJBSWdBRUhRQVdvUUVTRUdJQUJCRUdvaUFpQURFQThnQWhBN1FlRFFBRUg2MEFBZ0FFSGdBV29RWXlBQ0VBNGdBRUhBQVdvUUVTSURJQU1RRXhBTUlBQWdBMEVBRUFzaUFUWUN2QUVnQUNBQ05nSU1JQUJCQURZQ0NBTkFBa0FnQUVIWUFtb2dBRUhRQW1vUU5rVU5BQ0FBS0FLOEFTQURFQWtnQVdwR0JFQWdBeEFKSVFJZ0F5QURFQWxCQVhRUURDQURJQU1RRXhBTUlBQWdBaUFEUVFBUUN5SUJhallDdkFFTElBQkIyQUpxRUNGQkVDQUJJQUJCdkFGcUlBQkJDR3BCQUNBR0lBQkJFR29nQUVFTWFpQUFRZUFCYWhDTEFRMEFJQUJCMkFKcUVDVWFEQUVMQ3lBRElBQW9BcndCSUFGckVBd2dBeEFOSVFJUUZpRUJJQUFnQlRZQ0FDQUNJQUVnQUJEQkFrRUJSd1JBSUFSQkJEWUNBQXNnQUVIWUFtb2dBRUhRQW1vUUtBUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0MyQUloQVNBREVBb2FJQVlRQ2hvZ0FFSGdBbW9rQUNBQkM5SURBUUYrSXdCQmdBTnJJZ0FrQUNBQUlBSTJBdkFDSUFBZ0FUWUMrQUlnQUVIWUFXb2dBeUFBUWZBQmFpQUFRZXdCYWlBQVFlZ0JhaERVQVNBQVFjZ0JhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdMRUFTQUFJQUJCSUdvMkFod2dBRUVBTmdJWUlBQkJBVG9BRnlBQVFjVUFPZ0FXQTBBQ1FDQUFRZmdDYWlBQVFmQUNhaEEyUlEwQUlBQW9Bc1FCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nTEVBUXNnQUVINEFtb1FJU0FBUVJkcUlBQkJGbW9nQWlBQVFjUUJhaUFBS0FMc0FTQUFLQUxvQVNBQVFkZ0JhaUFBUVNCcUlBQkJIR29nQUVFWWFpQUFRZkFCYWhEVEFRMEFJQUJCK0FKcUVDVWFEQUVMQ3dKQUlBQkIyQUZxRUFsRkRRQWdBQzBBRjBVTkFDQUFLQUljSWdNZ0FFRWdhbXRCbndGS0RRQWdBQ0FEUVFScU5nSWNJQU1nQUNnQ0dEWUNBQXNnQUNBQ0lBQW9Bc1FCSUFRUXd3SWdBQ2tEQUNFR0lBVWdBQ2tEQ0RjRENDQUZJQVkzQXdBZ0FFSFlBV29nQUVFZ2FpQUFLQUljSUFRUUxTQUFRZmdDYWlBQVFmQUNhaEFvQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FMNEFpRUNJQUVRQ2hvZ0FFSFlBV29RQ2hvZ0FFR0FBMm9rQUNBQ0M3c0RBQ01BUWZBQ2F5SUFKQUFnQUNBQ05nTGdBaUFBSUFFMkF1Z0NJQUJCeUFGcUlBTWdBRUhnQVdvZ0FFSGNBV29nQUVIWUFXb1ExQUVnQUVHNEFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDdEFFZ0FDQUFRUkJxTmdJTUlBQkJBRFlDQ0NBQVFRRTZBQWNnQUVIRkFEb0FCZ05BQWtBZ0FFSG9BbW9nQUVIZ0Ftb1FOa1VOQUNBQUtBSzBBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3RBRUxJQUJCNkFKcUVDRWdBRUVIYWlBQVFRWnFJQUlnQUVHMEFXb2dBQ2dDM0FFZ0FDZ0MyQUVnQUVISUFXb2dBRUVRYWlBQVFReHFJQUJCQ0dvZ0FFSGdBV29RMHdFTkFDQUFRZWdDYWhBbEdnd0JDd3NDUUNBQVFjZ0JhaEFKUlEwQUlBQXRBQWRGRFFBZ0FDZ0NEQ0lESUFCQkVHcHJRWjhCU2cwQUlBQWdBMEVFYWpZQ0RDQURJQUFvQWdnMkFnQUxJQVVnQWlBQUtBSzBBU0FFRU1RQ09RTUFJQUJCeUFGcUlBQkJFR29nQUNnQ0RDQUVFQzBnQUVIb0Ftb2dBRUhnQW1vUUtBUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0M2QUloQWlBQkVBb2FJQUJCeUFGcUVBb2FJQUJCOEFKcUpBQWdBZ3U3QXdBakFFSHdBbXNpQUNRQUlBQWdBallDNEFJZ0FDQUJOZ0xvQWlBQVFjZ0JhaUFESUFCQjRBRnFJQUJCM0FGcUlBQkIyQUZxRU5RQklBQkJ1QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyUUJJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ2dBRUVCT2dBSElBQkJ4UUE2QUFZRFFBSkFJQUJCNkFKcUlBQkI0QUpxRURaRkRRQWdBQ2dDdEFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBclFCQ3lBQVFlZ0NhaEFoSUFCQkIyb2dBRUVHYWlBQ0lBQkJ0QUZxSUFBb0F0d0JJQUFvQXRnQklBQkJ5QUZxSUFCQkVHb2dBRUVNYWlBQVFRaHFJQUJCNEFGcUVOTUJEUUFnQUVIb0Ftb1FKUm9NQVFzTEFrQWdBRUhJQVdvUUNVVU5BQ0FBTFFBSFJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdEFFZ0JCREZBamdDQUNBQVFjZ0JhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkI2QUpxSUFCQjRBSnFFQ2dFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQXVnQ0lRSWdBUkFLR2lBQVFjZ0JhaEFLR2lBQVFmQUNhaVFBSUFJTG5RTUJBbjhqQUVIZ0Ftc2lBQ1FBSUFBZ0FqWUMwQUlnQUNBQk5nTFlBaUFERUZ3aEJpQURJQUJCNEFGcUVKa0JJUWNnQUVIUUFXb2dBeUFBUWN3Q2FoQ1lBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJQTBBQ1FDQUFRZGdDYWlBQVFkQUNhaEEyUlEwQUlBQW9BcndCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzhBUXNnQUVIWUFtb1FJU0FHSUFJZ0FFRzhBV29nQUVFSWFpQUFLQUxNQWlBQVFkQUJhaUFBUVJCcUlBQkJER29nQnhDTEFRMEFJQUJCMkFKcUVDVWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF4Z0kzQXdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRZGdDYWlBQVFkQUNhaEFvQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FMWUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFSGdBbW9rQUNBQ0M1MERBUUovSXdCQjRBSnJJZ0FrQUNBQUlBSTJBdEFDSUFBZ0FUWUMyQUlnQXhCY0lRWWdBeUFBUWVBQmFoQ1pBU0VISUFCQjBBRnFJQU1nQUVITUFtb1FtQUVnQUVIQUFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDdkFFZ0FDQUFRUkJxTmdJTUlBQkJBRFlDQ0FOQUFrQWdBRUhZQW1vZ0FFSFFBbW9RTmtVTkFDQUFLQUs4QVNBQkVBa2dBbXBHQkVBZ0FSQUpJUU1nQVNBQkVBbEJBWFFRRENBQklBRVFFeEFNSUFBZ0F5QUJRUUFRQ3lJQ2FqWUN2QUVMSUFCQjJBSnFFQ0VnQmlBQ0lBQkJ2QUZxSUFCQkNHb2dBQ2dDekFJZ0FFSFFBV29nQUVFUWFpQUFRUXhxSUFjUWl3RU5BQ0FBUWRnQ2FoQWxHZ3dCQ3dzQ1FDQUFRZEFCYWhBSlJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JDQUdFTWtDT3dFQUlBQkIwQUZxSUFCQkVHb2dBQ2dDRENBRUVDMGdBRUhZQW1vZ0FFSFFBbW9RS0FSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQzJBSWhBaUFCRUFvYUlBQkIwQUZxRUFvYUlBQkI0QUpxSkFBZ0FndWRBd0VDZnlNQVFlQUNheUlBSkFBZ0FDQUNOZ0xRQWlBQUlBRTJBdGdDSUFNUVhDRUdJQU1nQUVIZ0FXb1FtUUVoQnlBQVFkQUJhaUFESUFCQnpBSnFFSmdCSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCMkFKcUlBQkIwQUpxRURaRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFkZ0NhaEFoSUFZZ0FpQUFRYndCYWlBQVFRaHFJQUFvQXN3Q0lBQkIwQUZxSUFCQkVHb2dBRUVNYWlBSEVJc0JEUUFnQUVIWUFtb1FKUm9NQVFzTEFrQWdBRUhRQVdvUUNVVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUWdCaERLQWpjREFDQUFRZEFCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCMkFKcUlBQkIwQUpxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0F0Z0NJUUlnQVJBS0dpQUFRZEFCYWhBS0dpQUFRZUFDYWlRQUlBSUxuUU1CQW44akFFSGdBbXNpQUNRQUlBQWdBallDMEFJZ0FDQUJOZ0xZQWlBREVGd2hCaUFESUFCQjRBRnFFSmtCSVFjZ0FFSFFBV29nQXlBQVFjd0NhaENZQVNBQVFjQUJhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdLOEFTQUFJQUJCRUdvMkFnd2dBRUVBTmdJSUEwQUNRQ0FBUWRnQ2FpQUFRZEFDYWhBMlJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFSFlBbW9RSVNBR0lBSWdBRUc4QVdvZ0FFRUlhaUFBS0FMTUFpQUFRZEFCYWlBQVFSQnFJQUJCREdvZ0J4Q0xBUTBBSUFCQjJBSnFFQ1VhREFFTEN3SkFJQUJCMEFGcUVBbEZEUUFnQUNnQ0RDSURJQUJCRUdwclFaOEJTZzBBSUFBZ0EwRUVhallDRENBRElBQW9BZ2cyQWdBTElBVWdBaUFBS0FLOEFTQUVJQVlReXdJMkFnQWdBRUhRQVdvZ0FFRVFhaUFBS0FJTUlBUVFMU0FBUWRnQ2FpQUFRZEFDYWhBb0JFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQUtBTFlBaUVDSUFFUUNob2dBRUhRQVdvUUNob2dBRUhnQW1va0FDQUNDK3dCQVFGL0l3QkJJR3NpQmlRQUlBWWdBVFlDR0FKQUlBTW9BZ1JCQVhGRkJFQWdCa0YvTmdJQUlBWWdBQ0FCSUFJZ0F5QUVJQVlnQUNnQ0FDZ0NFQkVGQUNJQk5nSVlBa0FDUUFKQUlBWW9BZ0FPQWdBQkFnc2dCVUVBT2dBQURBTUxJQVZCQVRvQUFBd0NDeUFGUVFFNkFBQWdCRUVFTmdJQURBRUxJQVlnQXhBUElBWVFPeUVCSUFZUURpQUdJQU1RRHlBR0VJd0JJUUFnQmhBT0lBWWdBQkJMSUFaQkRISWdBQkJLSUFVZ0JrRVlhaUlESUFJZ0JpQURJQUVnQkVFQkVMSUJJQVpHT2dBQUlBWW9BaGdoQVFOQUlBTkJER3NRQ2lJRElBWkhEUUFMQ3lBR1FTQnFKQUFnQVF2eUFnRUJmeU1BUVpBQ2F5SUFKQUFnQUNBQ05nS0FBaUFBSUFFMkFvZ0NJQUJCMEFGcUVCRWhCaUFBUVJCcUlnSWdBeEFQSUFJUU1rSGcwQUJCK3RBQUlBQkI0QUZxRUc4Z0FoQU9JQUJCd0FGcUVCRWlBeUFERUJNUURDQUFJQU5CQUJBTElnRTJBcndCSUFBZ0FqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQmlBSnFJQUJCZ0FKcUVERkZEUUFnQUNnQ3ZBRWdBeEFKSUFGcVJnUkFJQU1RQ1NFQ0lBTWdBeEFKUVFGMEVBd2dBeUFERUJNUURDQUFJQUlnQTBFQUVBc2lBV28yQXJ3QkN5QUFRWWdDYWhBZlFSQWdBU0FBUWJ3QmFpQUFRUWhxUVFBZ0JpQUFRUkJxSUFCQkRHb2dBRUhnQVdvUWpRRU5BQ0FBUVlnQ2FoQWlHZ3dCQ3dzZ0F5QUFLQUs4QVNBQmF4QU1JQU1RRFNFQ0VCWWhBU0FBSUFVMkFnQWdBaUFCSUFBUXdRSkJBVWNFUUNBRVFRUTJBZ0FMSUFCQmlBSnFJQUJCZ0FKcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9Bb2dDSVFFZ0F4QUtHaUFHRUFvYUlBQkJrQUpxSkFBZ0FRdlNBd0VCZmlNQVFhQUNheUlBSkFBZ0FDQUNOZ0tRQWlBQUlBRTJBcGdDSUFCQjRBRnFJQU1nQUVId0FXb2dBRUh2QVdvZ0FFSHVBV29RMXdFZ0FFSFFBV29RRVNJQklBRVFFeEFNSUFBZ0FVRUFFQXNpQWpZQ3pBRWdBQ0FBUVNCcU5nSWNJQUJCQURZQ0dDQUFRUUU2QUJjZ0FFSEZBRG9BRmdOQUFrQWdBRUdZQW1vZ0FFR1FBbW9RTVVVTkFDQUFLQUxNQVNBQkVBa2dBbXBHQkVBZ0FSQUpJUU1nQVNBQkVBbEJBWFFRRENBQklBRVFFeEFNSUFBZ0F5QUJRUUFRQ3lJQ2FqWUN6QUVMSUFCQm1BSnFFQjhnQUVFWGFpQUFRUlpxSUFJZ0FFSE1BV29nQUN3QTd3RWdBQ3dBN2dFZ0FFSGdBV29nQUVFZ2FpQUFRUnhxSUFCQkdHb2dBRUh3QVdvUTFnRU5BQ0FBUVpnQ2FoQWlHZ3dCQ3dzQ1FDQUFRZUFCYWhBSlJRMEFJQUF0QUJkRkRRQWdBQ2dDSENJRElBQkJJR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNIQ0FESUFBb0FoZzJBZ0FMSUFBZ0FpQUFLQUxNQVNBRUVNTUNJQUFwQXdBaEJpQUZJQUFwQXdnM0F3Z2dCU0FHTndNQUlBQkI0QUZxSUFCQklHb2dBQ2dDSENBRUVDMGdBRUdZQW1vZ0FFR1FBbW9RSmdSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQ21BSWhBaUFCRUFvYUlBQkI0QUZxRUFvYUlBQkJvQUpxSkFBZ0FndTdBd0FqQUVHUUFtc2lBQ1FBSUFBZ0FqWUNnQUlnQUNBQk5nS0lBaUFBUWRBQmFpQURJQUJCNEFGcUlBQkIzd0ZxSUFCQjNnRnFFTmNCSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnZ0FFRUJPZ0FISUFCQnhRQTZBQVlEUUFKQUlBQkJpQUpxSUFCQmdBSnFFREZGRFFBZ0FDZ0N2QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyd0JDeUFBUVlnQ2FoQWZJQUJCQjJvZ0FFRUdhaUFDSUFCQnZBRnFJQUFzQU44QklBQXNBTjRCSUFCQjBBRnFJQUJCRUdvZ0FFRU1haUFBUVFocUlBQkI0QUZxRU5ZQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFMUUFIUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N2QUVnQkJERUFqa0RBQ0FBUWRBQmFpQUFRUkJxSUFBb0Fnd2dCQkF0SUFCQmlBSnFJQUJCZ0FKcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9Bb2dDSVFJZ0FSQUtHaUFBUWRBQmFoQUtHaUFBUVpBQ2FpUUFJQUlMdXdNQUl3QkJrQUpySWdBa0FDQUFJQUkyQW9BQ0lBQWdBVFlDaUFJZ0FFSFFBV29nQXlBQVFlQUJhaUFBUWQ4QmFpQUFRZDRCYWhEWEFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlJQUJCQVRvQUJ5QUFRY1VBT2dBR0EwQUNRQ0FBUVlnQ2FpQUFRWUFDYWhBeFJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFR0lBbW9RSHlBQVFRZHFJQUJCQm1vZ0FpQUFRYndCYWlBQUxBRGZBU0FBTEFEZUFTQUFRZEFCYWlBQVFSQnFJQUJCREdvZ0FFRUlhaUFBUWVBQmFoRFdBUTBBSUFCQmlBSnFFQ0lhREFFTEN3SkFJQUJCMEFGcUVBbEZEUUFnQUMwQUIwVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUVF4UUk0QWdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRWWdDYWlBQVFZQUNhaEFtQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FLSUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFR1FBbW9rQUNBQ0M1SURBUUYvSXdCQmtBSnJJZ0FrQUNBQUlBSTJBb0FDSUFBZ0FUWUNpQUlnQXhCY0lRWWdBRUhRQVdvZ0F5QUFRZjhCYWhDYUFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUdJQUlnQUVHOEFXb2dBRUVJYWlBQUxBRC9BU0FBUWRBQmFpQUFRUkJxSUFCQkRHcEI0TkFBRUkwQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREdBamNEQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTEpRQWdBQ2dDQkJvZ0FDQUFLQUlFUWJWL2NUWUNCQ0FBSUFBb0FnUkJDSEkyQWdRZ0FBdVNBd0VCZnlNQVFaQUNheUlBSkFBZ0FDQUNOZ0tBQWlBQUlBRTJBb2dDSUFNUVhDRUdJQUJCMEFGcUlBTWdBRUgvQVdvUW1nRWdBRUhBQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN2QUVnQUNBQVFSQnFOZ0lNSUFCQkFEWUNDQU5BQWtBZ0FFR0lBbW9nQUVHQUFtb1FNVVVOQUNBQUtBSzhBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3ZBRUxJQUJCaUFKcUVCOGdCaUFDSUFCQnZBRnFJQUJCQ0dvZ0FDd0Evd0VnQUVIUUFXb2dBRUVRYWlBQVFReHFRZURRQUJDTkFRMEFJQUJCaUFKcUVDSWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF5UUk3QVFBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRWWdDYWlBQVFZQUNhaEFtQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FLSUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFR1FBbW9rQUNBQ0M1SURBUUYvSXdCQmtBSnJJZ0FrQUNBQUlBSTJBb0FDSUFBZ0FUWUNpQUlnQXhCY0lRWWdBRUhRQVdvZ0F5QUFRZjhCYWhDYUFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUdJQUlnQUVHOEFXb2dBRUVJYWlBQUxBRC9BU0FBUWRBQmFpQUFRUkJxSUFCQkRHcEI0TkFBRUkwQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREtBamNEQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTGtnTUJBWDhqQUVHUUFtc2lBQ1FBSUFBZ0FqWUNnQUlnQUNBQk5nS0lBaUFERUZ3aEJpQUFRZEFCYWlBRElBQkIvd0ZxRUpvQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQmlBSnFJQUJCZ0FKcUVERkZEUUFnQUNnQ3ZBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJ3QkN5QUFRWWdDYWhBZklBWWdBaUFBUWJ3QmFpQUFRUWhxSUFBc0FQOEJJQUJCMEFGcUlBQkJFR29nQUVFTWFrSGcwQUFRalFFTkFDQUFRWWdDYWhBaUdnd0JDd3NDUUNBQVFkQUJhaEFKUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N2QUVnQkNBR0VNc0NOZ0lBSUFCQjBBRnFJQUJCRUdvZ0FDZ0NEQ0FFRUMwZ0FFR0lBbW9nQUVHQUFtb1FKZ1JBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDaUFJaEFpQUJFQW9hSUFCQjBBRnFFQW9hSUFCQmtBSnFKQUFnQWd2VkJRRUlmeU1BUWRBQmF5SUdKQUFnQXhBWklRY2dCaUFDTmdLOEFTQUdJQWMyQXJnQlFiZXBtdVo4UWVuMzh2SjVJQVZCRUVZYlFlbjM4dko1SUFOQklFWWJJUXNnQmtFZ2FpRU1BMEJCeXZmbTl3SWhBZ05BQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FDUWJ2VHFiQjlUQVJBSUFKQmdzT29qbnhNQkVBZ0FrSG4rSWU1ZUVZTkFpQUNRZFMzK3NCNFJnMEZJQUpCNmZmeThubEhEUXBCZzhPb2pud2hBa0VBSVFjTUNnc2dBa0dEdzZpT2ZFWU5CeUFDUVk2RnN1UjhSZzBGSUFKQnQ2bWE1bnhIRFFrZ0JpQUdRYWdCYWlJQ05nTEFBU0FHS0FMQUFSb2dBaUFHS0FLNEFSQlVHa0dPaGJMa2ZDRUNRUUFoQ0F3SkN5QUNRWW1DdE80Q1NnMEJJQUpCdk5PcHNIMUdEUUlnQWtIUzQ3eVNBa1lOQlNBQ1FlVy8rSjhDUncwSUlBWkJxQUZxRUFvYUlBWW9Bc0FCR2d0QmlvSzA3Z0loQWd3SEN5QUNRY3IzNXZjQ1J3UkFJQUpCcHNmVnBnUkdEUVlnQWtHS2dyVHVBa2NOQnlBR0tBSzRBUkFRSUFaQjBBRnFKQUFQQ3lBR0lBbzJBc1FCUWRTMytzQjRRYnpUcWJCOUlBWW9Bc1FCSUFOSUd5RUNEQVlMUWNTQkFTQUZOZ0lBSUFBZ0FTQUVJQVlvQXJnQklBTVE1Z0VnQ3lFQ0RBVUxJQVlvQXJnQklBWW9Bc1FCYWlBR0tBSzhBU0FHS0FMRUFXb3RBQUE2QUFBZ0JpZ0N4QUZCQVdvaENnd0ZDeUFHSUFnMkFzZ0JRZExqdkpJQ1FlVy8rSjhDSUFZb0FzZ0JJQVZJR3lFQ0RBTUxJQVpCR0dvaURSRE1BaUVDSUF3UXdnSWhDQ0FHUVFocUlna2dCa0dvQVdvZ0JpZ0N5QUZCQVhRUXdBSWdDQ0FKRUwwQ0lBa1FDaG9nRFNBSkVQMENJQVlvQXNnQlFhQ0JBV29nQmlnQ0NEb0FBQ0FDRUlvQkdpQUdLQUxJQVVFQmFpRUlRWTZGc3VSOElRSU1BZ3NnQmlBSE5nTE1BVUdteDlXbUJFSG4rSWU1ZUNBR0tBTE1BU0FGU0JzaEFnd0JDeUFHS0FMTUFVR2dnUUZxSUFZb0FyZ0JJQVlvQXN3QmFpMEFBRG9BQUNBR0tBTE1BVUVCYWlFSFFZUERxSTU4SVFJTUFBc0FDd0FMN0FFQkFYOGpBRUVnYXlJR0pBQWdCaUFCTmdJWUFrQWdBeWdDQkVFQmNVVUVRQ0FHUVg4MkFnQWdCaUFBSUFFZ0FpQURJQVFnQmlBQUtBSUFLQUlRRVFVQUlnRTJBaGdDUUFKQUFrQWdCaWdDQUE0Q0FBRUNDeUFGUVFBNkFBQU1Bd3NnQlVFQk9nQUFEQUlMSUFWQkFUb0FBQ0FFUVFRMkFnQU1BUXNnQmlBREVBOGdCaEF5SVFFZ0JoQU9JQVlnQXhBUElBWVFqZ0VoQUNBR0VBNGdCaUFBRUVzZ0JrRU1jaUFBRUVvZ0JTQUdRUmhxSWdNZ0FpQUdJQU1nQVNBRVFRRVF0QUVnQmtZNkFBQWdCaWdDR0NFQkEwQWdBMEVNYXhBS0lnTWdCa2NOQUFzTElBWkJJR29rQUNBQkMwQUJBWDlCQUNFQUEzOGdBU0FDUmdSL0lBQUZJQUVvQWdBZ0FFRUVkR29pQUVHQWdJQ0FmM0VpQTBFWWRpQURjaUFBY3lFQUlBRkJCR29oQVF3QkN3c0xHd0FqQUVFUWF5SUJKQUFnQUNBQ0lBTVF6Z0lnQVVFUWFpUUFDMVFCQW44Q1FBTkFJQU1nQkVjRVFFRi9JUUFnQVNBQ1JnMENJQUVvQWdBaUJTQURLQUlBSWdaSURRSWdCU0FHU2dSQVFRRVBCU0FEUVFScUlRTWdBVUVFYWlFQkRBSUxBQXNMSUFFZ0FrY2hBQXNnQUF0QUFRRi9RUUFoQUFOL0lBRWdBa1lFZnlBQUJTQUJMQUFBSUFCQkJIUnFJZ0JCZ0lDQWdIOXhJZ05CR0hZZ0EzSWdBSE1oQUNBQlFRRnFJUUVNQVFzTEMvY0JBUU4vSUFCRkJFQkJ3SUVCS0FJQUlRQWpBRUVnYXlJRUpBQkJnSUVCSUFBUXZnSWlCUVIvSUFRZ0F5a0FBRGNERUNBRUlBTXBBQWczQXhnZ0FnUkFBMEFnQlNBRVFSQnFJQVFRcHdFZ0FrRVFJQUpCRUVrYklRTkJBQ0VBQTBBZ0FDQUJhaUlHSUFZdEFBQWdBQ0FFYWkwQUFITTZBQUFnQUVFQmFpSUFJQU5IRFFBTElBSWdBMnNoQWlBQklBTnFJUUZCRHlFQUEwQUNRQ0FBSWdNZ0JFRVFhbW9pQUNBQUxRQUFRUUZxSWdBNkFBQWdBRUgvQVhFTkFDQURRUUZySVFBZ0F3MEJDd3NnQWcwQUN3c2dCUkFRUVFBRlFYOExHaUFFUVNCcUpBQVBDMEdnZ1FGQnhJRUJLQUlBSUFNZ0FTQUNFT1lCQ3hzQUl3QkJFR3NpQVNRQUlBQWdBaUFERVBNQ0lBRkJFR29rQUF0ZUFRTi9JQUVnQkNBRGEyb2hCUUpBQTBBZ0F5QUVSd1JBUVg4aEFDQUJJQUpHRFFJZ0FTd0FBQ0lHSUFNc0FBQWlCMGdOQWlBR0lBZEtCRUJCQVE4RklBTkJBV29oQXlBQlFRRnFJUUVNQWdzQUN3c2dBaUFGUnlFQUN5QUFDNmtCQVFSL0lBQW9BbFFpQXlnQ0JDSUZJQUFvQWhRZ0FDZ0NIQ0lHYXlJRUlBUWdCVXNiSWdRRVFDQURLQUlBSUFZZ0JCQkNHaUFESUFNb0FnQWdCR28yQWdBZ0F5QURLQUlFSUFScklnVTJBZ1FMSUFNb0FnQWhCQ0FGSUFJZ0FpQUZTeHNpQlFSQUlBUWdBU0FGRUVJYUlBTWdBeWdDQUNBRmFpSUVOZ0lBSUFNZ0F5Z0NCQ0FGYXpZQ0JBc2dCRUVBT2dBQUlBQWdBQ2dDTENJQk5nSWNJQUFnQVRZQ0ZDQUNDeWtBSUFFZ0FTZ0NBRUVIYWtGNGNTSUJRUkJxTmdJQUlBQWdBU2tEQUNBQktRTUlFTjBCT1FNQUM3UVlBeEovQVh3Q2ZpTUFRYkFFYXlJTEpBQWdDMEVBTmdJc0FrQWdBYjBpR1VJQVV3UkFRUUVoRUVINUdpRVRJQUdhSWdHOUlSa01BUXNnQkVHQUVIRUVRRUVCSVJCQi9Cb2hFd3dCQzBIL0drSDZHaUFFUVFGeEloQWJJUk1nRUVVaEZBc0NRQ0FaUW9DQWdJQ0FnSUQ0L3dDRFFvQ0FnSUNBZ0lENC93QlJCRUFnQUVFZ0lBSWdFRUVEYWlJRElBUkIvLzk3Y1JBdUlBQWdFeUFRRUNvZ0FFSEhIRUdBSGlBRlFTQnhJZ1ViUWVvY1FaWWVJQVViSUFFZ0FXSWJRUU1RS2lBQVFTQWdBaUFESUFSQmdNQUFjeEF1SUFJZ0F5QUNJQU5LR3lFSkRBRUxJQXRCRUdvaEVRSkFBbjhDUUNBQklBdEJMR29RM1FJaUFTQUJvQ0lCUkFBQUFBQUFBQUFBWWdSQUlBc2dDeWdDTENJR1FRRnJOZ0lzSUFWQklISWlEa0hoQUVjTkFRd0RDeUFGUVNCeUlnNUI0UUJHRFFJZ0N5Z0NMQ0VLUVFZZ0F5QURRUUJJR3d3QkN5QUxJQVpCSFdzaUNqWUNMQ0FCUkFBQUFBQUFBTEJCb2lFQlFRWWdBeUFEUVFCSUd3c2hEQ0FMUVRCcUlBdEIwQUpxSUFwQkFFZ2JJZzBoQndOQUlBY0NmeUFCUkFBQUFBQUFBUEJCWXlBQlJBQUFBQUFBQUFBQVpuRUVRQ0FCcXd3QkMwRUFDeUlETmdJQUlBZEJCR29oQnlBQklBTzRvVVFBQUFBQVpjM05RYUlpQVVRQUFBQUFBQUFBQUdJTkFBc0NRQ0FLUVFCTUJFQWdDaUVESUFjaEJpQU5JUWdNQVFzZ0RTRUlJQW9oQXdOQUlBTkJIU0FEUVIxSUd5RURBa0FnQjBFRWF5SUdJQWhKRFFBZ0E2MGhHa0lBSVJrRFFDQUdJQmxDLy8vLy93K0RJQVkxQWdBZ0dvWjhJaGtnR1VLQWxPdmNBNEFpR1VLQWxPdmNBMzU5UGdJQUlBWkJCR3NpQmlBSVR3MEFDeUFacHlJR1JRMEFJQWhCQkdzaUNDQUdOZ0lBQ3dOQUlBZ2dCeUlHU1FSQUlBWkJCR3NpQnlnQ0FFVU5BUXNMSUFzZ0N5Z0NMQ0FEYXlJRE5nSXNJQVloQnlBRFFRQktEUUFMQ3lBTVFSbHFRUWx1SVFjZ0EwRUFTQVJBSUFkQkFXb2hFaUFPUWVZQVJpRVZBMEJCQUNBRGF5SURRUWtnQTBFSlNCc2hDUUpBSUFZZ0NFc0VRRUdBbE92Y0F5QUpkaUVXUVg4Z0NYUkJmM01oRDBFQUlRTWdDQ0VIQTBBZ0J5QURJQWNvQWdBaUZ5QUpkbW8yQWdBZ0R5QVhjU0FXYkNFRElBZEJCR29pQnlBR1NRMEFDeUFJS0FJQUlRY2dBMFVOQVNBR0lBTTJBZ0FnQmtFRWFpRUdEQUVMSUFnb0FnQWhCd3NnQ3lBTEtBSXNJQWxxSWdNMkFpd2dEU0FJSUFkRlFRSjBhaUlJSUJVYklnY2dFa0VDZEdvZ0JpQUdJQWRyUVFKMUlCSktHeUVHSUFOQkFFZ05BQXNMUVFBaEF3SkFJQVlnQ0UwTkFDQU5JQWhyUVFKMVFRbHNJUU5CQ2lFSElBZ29BZ0FpQ1VFS1NRMEFBMEFnQTBFQmFpRURJQWtnQjBFS2JDSUhUdzBBQ3dzZ0RFRUFJQU1nRGtIbUFFWWJheUFPUWVjQVJpQU1RUUJIY1dzaUJ5QUdJQTFyUVFKMVFRbHNRUWxyU0FSQVFRUkJwQUlnQ2tFQVNCc2dDMm9nQjBHQXlBQnFJZ2xCQ1cwaUQwRUNkR3BCMEI5cklRcEJDaUVISUFrZ0QwRUpiR3NpQ1VFSFRBUkFBMEFnQjBFS2JDRUhJQWxCQVdvaUNVRUlSdzBBQ3dzQ1FDQUtLQUlBSWhJZ0VpQUhiaUlWSUFkc2F5SUpSU0FLUVFScUlnOGdCa1p4RFFBQ1FDQVZRUUZ4UlFSQVJBQUFBQUFBQUVCRElRRWdCMEdBbE92Y0EwY2dDQ0FLVDNJTkFTQUtRUVJyTFFBQVFRRnhSUTBCQzBRQkFBQUFBQUJBUXlFQkMwUUFBQUFBQUFEZ1AwUUFBQUFBQUFEd1AwUUFBQUFBQUFENFB5QUdJQTlHRzBRQUFBQUFBQUQ0UHlBSklBZEJBWFlpRDBZYklBa2dEMGtiSVJnQ1FDQVVEUUFnRXkwQUFFRXRSdzBBSUJpYUlSZ2dBWm9oQVFzZ0NpQVNJQWxySWdrMkFnQWdBU0FZb0NBQllRMEFJQW9nQnlBSmFpSUROZ0lBSUFOQmdKVHIzQU5QQkVBRFFDQUtRUUEyQWdBZ0NDQUtRUVJySWdwTEJFQWdDRUVFYXlJSVFRQTJBZ0FMSUFvZ0NpZ0NBRUVCYWlJRE5nSUFJQU5CLzVQcjNBTkxEUUFMQ3lBTklBaHJRUUoxUVFsc0lRTkJDaUVISUFnb0FnQWlDVUVLU1EwQUEwQWdBMEVCYWlFRElBa2dCMEVLYkNJSFR3MEFDd3NnQ2tFRWFpSUhJQVlnQmlBSFN4c2hCZ3NEUUNBR0lnY2dDRTBpQ1VVRVFDQUhRUVJySWdZb0FnQkZEUUVMQ3dKQUlBNUI1d0JIQkVBZ0JFRUljU0VLREFFTElBTkJmM05CZnlBTVFRRWdEQnNpQmlBRFNpQURRWHRLY1NJS0d5QUdhaUVNUVg5QmZpQUtHeUFGYWlFRklBUkJDSEVpQ2cwQVFYY2hCZ0pBSUFrTkFDQUhRUVJyS0FJQUlnNUZEUUJCQ2lFSlFRQWhCaUFPUVFwd0RRQURRQ0FHSWdwQkFXb2hCaUFPSUFsQkNtd2lDWEJGRFFBTElBcEJmM01oQmdzZ0J5QU5hMEVDZFVFSmJDRUpJQVZCWDNGQnhnQkdCRUJCQUNFS0lBd2dCaUFKYWtFSmF5SUdRUUFnQmtFQVNoc2lCaUFHSUF4S0d5RU1EQUVMUVFBaENpQU1JQU1nQ1dvZ0JtcEJDV3NpQmtFQUlBWkJBRW9iSWdZZ0JpQU1TaHNoREF0QmZ5RUpJQXhCL2YvLy93ZEIvdi8vL3djZ0NpQU1jaUlHRzBvTkFTQU1JQVpCQUVjaUVtcEJBV29oRGdKQUlBVkJYM0VpRkVIR0FFWUVRQ0FEUWYvLy8vOEhJQTVyU2cwRElBTkJBQ0FEUVFCS0d5RUdEQUVMSUJFZ0F5QURRUjkxSWdacUlBWnpyU0FSRUk4QklnWnJRUUZNQkVBRFFDQUdRUUZySWdaQk1Eb0FBQ0FSSUFaclFRSklEUUFMQ3lBR1FRSnJJZzhnQlRvQUFDQUdRUUZyUVMxQkt5QURRUUJJR3pvQUFDQVJJQTlySWdaQi8vLy8vd2NnRG10S0RRSUxJQVlnRG1vaUF5QVFRZi8vLy84SGMwb05BU0FBUVNBZ0FpQURJQkJxSWdVZ0JCQXVJQUFnRXlBUUVDb2dBRUV3SUFJZ0JTQUVRWUNBQkhNUUxnSkFBa0FDUUNBVVFjWUFSZ1JBSUF0QkVHb2lCa0VJY2lFRElBWkJDWEloQ2lBTklBZ2dDQ0FOU3hzaUNTRUlBMEFnQ0RVQ0FDQUtFSThCSVFZQ1FDQUlJQWxIQkVBZ0JpQUxRUkJxVFEwQkEwQWdCa0VCYXlJR1FUQTZBQUFnQmlBTFFSQnFTdzBBQ3d3QkN5QUdJQXBIRFFBZ0MwRXdPZ0FZSUFNaEJnc2dBQ0FHSUFvZ0Jtc1FLaUFJUVFScUlnZ2dEVTBOQUF0QkFDRUdJQkpGRFFJZ0FFSCtIa0VCRUNvZ0RFRUFUQ0FISUFoTmNnMEJBMEFnQ0RVQ0FDQUtFSThCSWdZZ0MwRVFha3NFUUFOQUlBWkJBV3NpQmtFd09nQUFJQVlnQzBFUWFrc05BQXNMSUFBZ0JpQU1RUWtnREVFSlNCc1FLaUFNUVFscklRWWdDRUVFYWlJSUlBZFBEUU1nREVFSlNpRURJQVloRENBRERRQUxEQUlMQWtBZ0RFRUFTQTBBSUFjZ0NFRUVhaUFISUFoTEd5RUpJQXRCRUdvaUEwRUpjaUVOSUFOQkNISWhBeUFJSVFjRFFDQU5JQWMxQWdBZ0RSQ1BBU0lHUmdSQUlBdEJNRG9BR0NBRElRWUxBa0FnQnlBSVJ3UkFJQVlnQzBFUWFrME5BUU5BSUFaQkFXc2lCa0V3T2dBQUlBWWdDMEVRYWtzTkFBc01BUXNnQUNBR1FRRVFLaUFHUVFGcUlRWkJBQ0FNUVFCTUlBb2JEUUFnQUVIK0hrRUJFQ29MSUFBZ0JpQU5JQVpySWdZZ0RDQUdJQXhJR3hBcUlBd2dCbXNoRENBSFFRUnFJZ2NnQ1U4TkFTQU1RUUJPRFFBTEN5QUFRVEFnREVFU2FrRVNRUUFRTGlBQUlBOGdFU0FQYXhBcURBSUxJQXdoQmdzZ0FFRXdJQVpCQ1dwQkNVRUFFQzRMSUFCQklDQUNJQVVnQkVHQXdBQnpFQzRnQWlBRklBSWdCVW9iSVFrTUFRc2dFeUFGUVJwMFFSOTFRUWx4YWlFTUFrQWdBMEVMU3cwQVFRd2dBMnNoQmtRQUFBQUFBQUF3UUNFWUEwQWdHRVFBQUFBQUFBQXdRS0loR0NBR1FRRnJJZ1lOQUFzZ0RDMEFBRUV0UmdSQUlCZ2dBWm9nR0tHZ21pRUJEQUVMSUFFZ0dLQWdHS0VoQVFzZ0VTQUxLQUlzSWdZZ0JrRWZkU0lHYWlBR2M2MGdFUkNQQVNJR1JnUkFJQXRCTURvQUR5QUxRUTlxSVFZTElCQkJBbkloQ2lBRlFTQnhJUWdnQ3lnQ0xDRUhJQVpCQW1zaURTQUZRUTlxT2dBQUlBWkJBV3RCTFVFcklBZEJBRWdiT2dBQUlBUkJDSEVoQmlBTFFSQnFJUWNEUUNBSElnVUNmeUFCbVVRQUFBQUFBQURnUVdNRVFDQUJxZ3dCQzBHQWdJQ0FlQXNpQjBHZ01tb3RBQUFnQ0hJNkFBQkJBU0FEUVFCS0lBRWdCN2VoUkFBQUFBQUFBREJBb2lJQlJBQUFBQUFBQUFBQVluSWdCaHRGSUFWQkFXb2lCeUFMUVJCcWEwRUJSM0pGQkVBZ0JVRXVPZ0FCSUFWQkFtb2hCd3NnQVVRQUFBQUFBQUFBQUdJTkFBdEJmeUVKUWYzLy8vOEhJQW9nRVNBTmF5SUZhaUlHYXlBRFNBMEFJQUJCSUNBQ0lBWUNmd0pBSUFORkRRQWdCeUFMUVJCcWF5SUlRUUpySUFOT0RRQWdBMEVDYWd3QkN5QUhJQXRCRUdwcklnZ0xJZ2RxSWdNZ0JCQXVJQUFnRENBS0VDb2dBRUV3SUFJZ0F5QUVRWUNBQkhNUUxpQUFJQXRCRUdvZ0NCQXFJQUJCTUNBSElBaHJRUUJCQUJBdUlBQWdEU0FGRUNvZ0FFRWdJQUlnQXlBRVFZREFBSE1RTGlBQ0lBTWdBaUFEU2hzaENRc2dDMEd3Qkdva0FDQUpDMVFCQW44Z0FTQUFLQUpVSWdFZ0FVRUFJQUpCZ0FKcUlnTVEzQUVpQkNBQmF5QURJQVFiSWdNZ0FpQUNJQU5MR3lJQ0VFSWFJQUFnQVNBRGFpSUROZ0pVSUFBZ0F6WUNDQ0FBSUFFZ0FtbzJBZ1FnQWdzSkFDQUFFT0VCRUJBTEV3QWdBQ0FBS0FJQVFReHJLQUlBYWhEaUFRc1RBQ0FBSUFBb0FnQkJER3NvQWdCcUVJb0JDd29BSUFCQkNHc1E0Z0VMQ2dBZ0FFRUlheENLQVFzYUFDQUFJQUVnQWlrRENFRUFJQU1nQVNnQ0FDZ0NFQkVXQUFzSkFDQUFFTkFCRUJBTGxBSUNBWDhEZmlBQktBSVlJQUVvQWl4TEJFQWdBU0FCS0FJWU5nSXNDMEovSVFnQ1FDQUVRUmh4SWdWRklBVkJHRVlnQTBFQlJuRnlEUUFnQVNnQ0xDSUZCRUFnQlNBQlFTQnFFQTFyckNFR0N3SkFBa0FDUUNBRERnTUNBQUVEQ3lBRVFRaHhCRUFnQVNnQ0RDQUJLQUlJYTZ3aEJ3d0NDeUFCS0FJWUlBRW9BaFJyckNFSERBRUxJQVloQndzZ0FpQUhmQ0lDUWdCVElBSWdCbFZ5RFFBZ0JFRUljU0VEQWtBZ0FsQU5BQ0FEQkVBZ0FTZ0NERVVOQWdzZ0JFRVFjVVVOQUNBQktBSVlSUTBCQ3lBREJFQWdBU0FCS0FJSUlBRW9BZ2dnQXFkcUlBRW9BaXdRbXdFTElBUkJFSEVFUUNBQklBRW9BaFFnQVNnQ0hCRDJBaUFCSUFLbkVQVUNDeUFDSVFnTElBQWdDQkM3QVF1REFnRUpmeU1BUVJCcklnTWtBQUovSUFGQmZ4QmVSUVJBSUFBb0Fnd2hCQ0FBS0FJSUlRVWdBQ2dDR0NBQUtBSWNSZ1JBUVg4Z0FDMEFNRUVRY1VVTkFob2dBQ2dDR0NFR0lBQW9BaFFoQnlBQUtBSXNJUWdnQUNnQ0ZDRUpJQUJCSUdvaUFrRUFFS0VCSUFJZ0FoQVRFQXdnQUNBQ0VBMGlDaUFDRUFrZ0Ntb1E5Z0lnQUNBR0lBZHJFUFVDSUFBZ0FDZ0NGQ0FJSUFscmFqWUNMQXNnQXlBQUtBSVlRUUZxTmdJTUlBQWdBMEVNYWlBQVFTeHFFSFlvQWdBMkFpd2dBQzBBTUVFSWNRUkFJQUFnQUVFZ2FoQU5JZ0lnQWlBRUlBVnJhaUFBS0FJc0VKc0JDeUFBSUFFUW5BRVEvZ0lNQVFzZ0FSRHlBZ3NoQUNBRFFSQnFKQUFnQUF1Z0FRRUJmeUFBS0FJWUlBQW9BaXhMQkVBZ0FDQUFLQUlZTmdJc0N3SkFJQUFvQWdnZ0FDZ0NERThOQUNBQlFYOFFYZ1JBSUFBZ0FDZ0NDQ0FBS0FJTVFRRnJJQUFvQWl3UW13RWdBUkR5QWc4TElBQXRBREJCRUhGRkJFQWdBUkNjQVNBQUtBSU1RUUZyTEFBQUVGNUZEUUVMSUFBZ0FDZ0NDQ0FBS0FJTVFRRnJJQUFvQWl3UW13RWdBUkNjQVNFQ0lBQW9BZ3dnQWpvQUFDQUJEd3RCZnd0a0FDQUFLQUlZSUFBb0FpeExCRUFnQUNBQUtBSVlOZ0lzQ3dKQUlBQXRBREJCQ0hGRkRRQWdBQ2dDRUNBQUtBSXNTUVJBSUFBZ0FDZ0NDQ0FBS0FJTUlBQW9BaXdRbXdFTElBQW9BZ3dnQUNnQ0VFOE5BQ0FBS0FJTUxBQUFFR1VQQzBGL0N3Y0FJQUFvQWdnTEV3QWdBQ0FBS0FJQVFReHJLQUlBYWhEakFRc0tBQ0FBUVFockVPTUJDeE1BSUFBZ0FDZ0NBRUVNYXlnQ0FHb1F1QUVMQ2dBZ0FFRUlheEM0QVFzVEFDQUFJQUFvQWdCQkRHc29BZ0JxRVBrQ0N4TUFJQUFnQUNnQ0FFRU1heWdDQUdvUTVBRUxDUUJCeUlFQkVBb2FDeE1BSUFBZ0FDZ0NBRUVNYXlnQ0FHb1Fod01MRXdBZ0FDQUFLQUlBUVF4cktBSUFhaERsQVF1dEFRRUVmeU1BUVJCcklnVWtBQU5BQWtBZ0FpQUVUQTBBSUFBb0FoZ2lBeUFBS0FJY0lnWlBCRUFnQUNBQkxBQUFFR1VnQUNnQ0FDZ0NOQkVDQUVGL1JnMEJJQVJCQVdvaEJDQUJRUUZxSVFFRklBVWdCaUFEYXpZQ0RDQUZJQUlnQkdzMkFnZ2dCVUVNYWlBRlFRaHFFTG9CSVFNZ0FDZ0NHQ0FCSUFNb0FnQWlBeEJWSUFBZ0F5QUFLQUlZYWpZQ0dDQURJQVJxSVFRZ0FTQURhaUVCQ3d3QkN3c2dCVUVRYWlRQUlBUUxDL0ppSWdCQmdBZ0xzeVdsWTJQR2hIeDgrSmwzZCs2TmUzdjJEZkx5LzcxcmE5YXhiMi9lVk1YRmtWQXdNR0FEQVFFQ3FXZG56bjBySzFZWi92N25ZdGZYdGVhcnEwMmFkbmJzUmNyS2o1MkNnaDlBeWNtSmgzMTkraFg2K3UvcldWbXl5VWRIamd2dzhQdnNyYTFCWjlUVXMvMmlvbC9xcjY5RnY1eWNJL2VrcEZPV2NuTGtXOERBbThLM3QzVWMvZjNocnBPVFBXb21Ka3hhTmpac1FUOC9mZ0wzOS9WUHpNeURYRFEwYVBTbHBWRTA1ZVhSQ1BIeCtaTnhjZUp6Mk5pclV6RXhZajhWRlNvTUJBUUlVc2ZIbFdVakkwWmV3OE9kS0JnWU1LR1dsamNQQlFVS3RacWFMd2tIQnc0MkVoSWttNENBR3ozaTR0OG02K3ZOYVNjblRzMnlzbitmZFhYcUd3a0pFcDZEZ3gxMExDeFlMaG9hTkMwYkd6YXlibTdjN2xwYXRQdWdvRnYyVWxLa1RUczdkbUhXMXJmT3M3TjlleWtwVWo3ajQ5MXhMeTllbDRTRUUvVlRVNlpvMGRHNUFBQUFBQ3p0N2NGZ0lDQkFIL3o4NDhpeHNYbnRXMXUydm1wcTFFYkx5NDNadnI1blN6azVjdDVLU3BUVVRFeVk2RmhZc0VyUHo0VnIwTkM3S3UvdnhlV3FxazhXKy92dHhVTkRodGROVFpwVk16Tm1sSVdGRWM5RlJZb1ErZm5wQmdJQ0JJRi9mLzd3VUZDZ1JEdzhlTHFmbnlYanFLaEw4MUZSb3Y2am8xM0FRRUNBaW8rUEJhMlNrais4blowaFNEZzRjQVQxOWZIZnZMeGp3YmEyZDNYYTJxOWpJU0ZDTUJBUUlCci8vK1VPOC9QOWJkTFN2MHpOellFVURBd1lOUk1USmkvczdNUGhYMSsrb3BlWE5jeEVSSWc1RnhjdVY4VEVrL0tucDFXQ2ZuNzhSejA5ZXF4a1pNam5YVjI2S3hrWk1wVnpjK2FnWUdEQW1JR0JHZEZQVDU1LzNOeWpaaUlpUkg0cUtsU3JrSkE3ZzRpSUM4cEdSb3dwN3U3SDA3aTRhendVRkNoNTN0Nm40bDVldkIwTEN4WjIyOXV0TytEZzIxWXlNbVJPT2pwMEhnb0tGTnRKU1pJS0JnWU1iQ1FrU09SY1hMaGR3c0tmYnRQVHZlK3NyRU9tWW1MRXFKR1JPYVNWbFRFMzVPVFRpM2w1OGpMbjU5VkR5TWlMV1RjM2JyZHRiZHFNalkwQlpOWFZzZEpPVHB6Z3FhbEp0R3hzMlBwV1Zxd0g5UFR6SmVycXo2OWxaY3FPZW5yMDZhNnVSeGdJQ0JEVnVycHZpSGg0OEc4bEpVcHlMaTVjSkJ3Y09QR21wbGZIdExSelVjYkdseVBvNk10ODNkMmhuSFIwNkNFZkh6N2RTMHVXM0wyOVlZYUxpdzJGaW9vUGtIQnc0RUkrUG56RXRiVnhxbVptek5oSVNKQUZBd01HQWZiMjl4SU9EaHlqWVdIQ1h6VTFhdmxYVjY3UXVibHBrWWFHRjFqQndaa25IUjA2dVo2ZUp6amg0ZGtUK1BqcnM1aVlLek1SRVNLN2FXblNjTm5acVltT2pnZW5sSlF6dHB1YkxTSWVIanlTaDRjVklPbnB5VW5Pem9mL1ZWV3FlQ2dvVUhyZjM2V1BqSXdEK0tHaFdZQ0ppUWtYRFEwYTJyKy9aVEhtNXRmR1FrS0V1R2hvME1OQlFZS3dtWmtwZHkwdFdoRVBEeDdMc0xCNy9GUlVxTmE3dTIwNkZoWXNVS2YwVVZObFFYN0RwQmNhbGw0bk9zdHJxenZ4UlowZnExajZySk1ENDB0VitqQWc5bTEyclpGMnpJZ2xUQUwxL05mbFQ5ZkxLc1dBUkRVbWo2Tml0VWxhc2Q1bkc3b2xtQTdxUmVIQS9sMENkUy9ERXZCTWdhT1hSbzNHK2ROcjUxK1BBNVdja2hYcmVtMi8ybGxTbFMyRHZ0VFRJWFJZS1duZ1NVVEl5WTVxaWNKMWVIbU85R3MrV0puZGNia250ay9odmhldGlQQm1yQ0RKdERyT2ZSaEszMk9DTVJybFlETlJsMFYvVTJMZ2QyU3hoSzVydXh5Z2dmNlVLd2o1V0doSWNCbjlSWStIYk42VXQvaDdVaVBUYzZ2aUFrdHlWNDhmNHlxclZXWUhLT3V5QThLMUw1cDd4WWFsQ0RmVDhvY29NTEtsdnlPNmFnTUNYSUlXN1NzY3o0cVN0SG1uOFBJSDg2SGlhVTdOOU5wbDFiNEZCaDlpTk5HSy9xYkVuVk11TktCVjg2SXk0WW9GZGV2MnBEbnNnd3VxNzJCQUJwOXhYbEVRYnIzNWlpRStQUWJkbHE0RlB0MUd2ZVpOdFkxVWtRVmR4SEZ2MUFZRS94VlFZQ1Q3bUJtWDZiM1d6RU5BaVhlZTJXZTlRdWl3aUl1SkJ6aGJHZWZiN3NoNVJ3cDhvZWtQUW56SkhvVDRBQUFBQUlPR2dBbEk3U3N5ckhBUkhrNXlXbXo3L3c3OVZqaUZEeDdWcmowbk9TMDJaTmtQQ2lHbVhHalJWRnViT2k0MkpMRm5DZ3dQNTFlVDBwYnV0SjZSbXh0UHhjQ0FvaURjWVdsTGQxb1dHaEljQ3JxVDR1VXFvTUJENENJOEhSY2JFZ3NOQ1E2dHg0dnl1YWkyTGNpcEhoU0ZHZkZYVEFkMXI3dmRtZTc5WUgram55WUI5N3oxY2x6Rk8yWkVOSDc3VzNZcFE0dmN4aVBMYVB6dHRtUHg1TGpLM0RIWEVJVmpRa0FpbHhNZ0VjYUVmU1JLaGZnOXU5SVJNdm11YmFFcHgwc3ZuaDN6TUxMYzdGS0dEZERqd1hkc0ZyTXJtYmx3cWZwSWxCRWlaT2xIeEl6OHFCby84S0RZTEgxVzc1QXpJc2RPU1lmQjBUalovcUxLakRZTDFKalBnZldtS041NnBTYU90OXFrdjYwLzVKMDZMQTJTZUZDYnpGOXFZa1orVk1JVGpmYm91TmlRWHZjNUx2V3Z3NEsrZ0YyZmZKUFFhYWt0MVcrekVpWFBPNW1zeUtkOUdCQnVZNXpvZTdzNzJ3bDRKczMwR0ZsdUFiZWE3S2lhVDRObGJwWG1mdWIvcWdqUHZDSG02Qlh2Mlp2bnVzNDJiMHJVQ1ovcTFueXdLYSt5cERFeEl6OHFNSlNseHNCbW9qVTN2RTUwcHNxQy9MRFFrT0FWMktjelNwZ0U4ZmZhN0VFT1VNMS9ML2FSRjQzV1RYWk5zTzlEVkUycXpOOEVsdVRqdGRHZUc0aHFUTGdmTE1GL1VXVkdCT3BlblYwMWpBRnpkSWY2TGtFTCsxb2RaN05TMHR1U00xWVE2Uk5IMW0yTVlkZWFlZ3loTjQ0VStGbUpQQlByN2llcHpqWEpZYmZ0NVJ6aFBMRkhlbG5mMHB3L2MvSlZlYzRVR0w4M3gzUHF6ZmRUVzZyOVh4UnZQZCtHMjBSNGdmT3Z5ajdFYUxrc05DUTRYMENqd25MREhSWU1KZUs4aTBrOEtFR1ZEZjl4QWFnNTNyTU1DSnprdE5pUXdWWmtZWVRMZTNDMk10VjBYR3hJUWxlNDBGSUphdFV3TnFVNHYwQ2pub0h6MS90ODR6bUNteS8vaHpTT1EwVEUzdW5MVkh1VU1xYkNJejN1VEpVTFF2ckRUZ2d1b1dZbzJTU3lkbHVpU1cyTDBTVnkrUFpraG1pWUZ0U2tYTXhkWmJhU2JIQklVUDN0dWRwZUZVWlhwNDJkaEpEWXF3Q012Tk1LOStSWUJiaXpSUWJRTEI2UHlqOFBBc0d2dlFNQkU0cHJPcEVSUVU5bjNPcVg4cy9POExUbWM1YXNkQ0xuclRXRjR2azM2QngxMzI1SDhScHhIU25GaVcrM1lnNnFHTDRiL0ZZK1M4YlNlU0NhMjhEK2VNMWE5Qi9kcURPSUI4Y3hzUklRV1NlQTdGOWdVWCtwR2JWS0RTM2xlcCtUeVp6dm9PQTdUYTRxOWJESTY3czhnMU9aWVJjckJINjZkOVltNFdrVVkxVWhESDBCQWdRSUVDQkFnQnMyYVc1bWFXNXBkSGtBUm1WaWNuVmhjbmtBU21GdWRXRnllUUJLZFd4NUFGUm9kWEp6WkdGNUFGUjFaWE5rWVhrQVYyVmtibVZ6WkdGNUFGTmhkSFZ5WkdGNUFGTjFibVJoZVFCTmIyNWtZWGtBUm5KcFpHRjVBRTFoZVFBbGJTOGxaQzhsZVFBdEt5QWdJREJZTUhnQUxUQllLekJZSURCWUxUQjRLekI0SURCNEFFNXZkZ0JVYUhVQVFYVm5kWE4wQUU5amRBQlRZWFFBUVhCeUFIWmxZM1J2Y2dCUFkzUnZZbVZ5QUU1dmRtVnRZbVZ5QUZObGNIUmxiV0psY2dCRVpXTmxiV0psY2dCcGIzTmZZbUZ6WlRvNlkyeGxZWElBVFdGeUFGTmxjQUFsU1RvbFRUb2xVeUFsY0FCVGRXNEFTblZ1QUhOMFpEbzZaWGhqWlhCMGFXOXVBRjlmWTNoaFgyZDFZWEprWDJGamNYVnBjbVVnWkdWMFpXTjBaV1FnY21WamRYSnphWFpsSUdsdWFYUnBZV3hwZW1GMGFXOXVBRTF2YmdCdVlXNEFTbUZ1QUVwMWJBQnNiQUJCY0hKcGJBQkdjbWtBVFdGeVkyZ0FRWFZuQUdsdVpnQWxMakJNWmdBbFRHWUFZV3hzYjJOaGRHOXlQRlErT2pwaGJHeHZZMkYwWlNoemFYcGxYM1FnYmlrZ0oyNG5JR1Y0WTJWbFpITWdiV0Y0YVcxMWJTQnpkWEJ3YjNKMFpXUWdjMmw2WlFCMGNuVmxBRlIxWlFCbVlXeHpaUUJLZFc1bEFGZGxaQUJFWldNQVJtVmlBQ1ZoSUNWaUlDVmtJQ1ZJT2lWTk9pVlRJQ1ZaQUZCUFUwbFlBQ1ZJT2lWTk9pVlRBRTVCVGdCUVRRQkJUUUJNUTE5QlRFd0FURUZPUndCSlRrWUFRd0F3TVRJek5EVTJOemc1QUVNdVZWUkdMVGdBWVhCd1gzWXlBSGRsWWw5Mk1nQkJRa05FUlVaSFNFbEtTMHhOVGs5UVVWSlRWRlZXVjFoWldtRmlZMlJsWm1kb2FXcHJiRzF1YjNCeGNuTjBkWFozZUhsNk1ERXlNelExTmpjNE9Tc3ZBQzRBS0c1MWJHd3BBRkIxY21VZ2RtbHlkSFZoYkNCbWRXNWpkR2x2YmlCallXeHNaV1FoQUZ0b1JVdWNxKzVIeWdUMEJRQUFBQUFBQUFCb0VRQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFJQUFBQUFBQUFBS0FSQUFBU0FBQUFFd0FBQVBqLy8vLzQvLy8vb0JFQUFCUUFBQUFWQUFBQUFCQUFBQlFRQUFBRUFBQUFBQUFBQU9nUkFBQVdBQUFBRndBQUFQei8vLy84Ly8vLzZCRUFBQmdBQUFBWkFBQUFNQkFBQUVRUUFBQU1BQUFBQUFBQUFJQVNBQUFhQUFBQUd3QUFBQVFBQUFENC8vLy9nQklBQUJ3QUFBQWRBQUFBOVAvLy8vVC8vLytBRWdBQUhnQUFBQjhBQUFCZ0VBQUFEQklBQUNBU0FBQTBFZ0FBU0JJQUFJZ1FBQUIwRUFBQUFBQUFBT1FTQUFBZ0FBQUFJUUFBQUFZQUFBQUhBQUFBSWdBQUFDTUFBQUFLQUFBQUN3QUFBQXdBQUFBa0FBQUFEZ0FBQUNVQUFBQVFBQUFBSmdBQUFBQUFBQUFvRVFBQUp3QUFBQ2dBQUFCT1UzUXpYMTh5T1dKaGMybGpYMmx2YzBsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSUUFBQUJnL0FBRDhFQUFBV0JRQUFFNVRkRE5mWHpJeE5XSmhjMmxqWDNOMGNtVmhiV0oxWmtsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSUUFBQUFEd1BnQUFOQkVBQUU1VGRETmZYekl4TTJKaGMybGpYMmx6ZEhKbFlXMUpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVVQUFIUS9BQUJ3RVFBQUFBQUFBQUVBQUFBb0VRQUFBL1QvLzA1VGRETmZYekl4TTJKaGMybGpYMjl6ZEhKbFlXMUpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVVQUFIUS9BQUM0RVFBQUFBQUFBQUVBQUFBb0VRQUFBL1QvL3d3QUFBQUFBQUFBb0JFQUFCSUFBQUFUQUFBQTlQLy8vL1QvLy8rZ0VRQUFGQUFBQUJVQUFBQUVBQUFBQUFBQUFPZ1JBQUFXQUFBQUZ3QUFBUHovLy8vOC8vLy82QkVBQUJnQUFBQVpBQUFBVGxOME0xOWZNakUwWW1GemFXTmZhVzl6ZEhKbFlXMUpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVVQWREOEFBRkFTQUFBREFBQUFBZ0FBQUtBUkFBQUNBQUFBNkJFQUFBSUlBQUJPVTNRelgxOHlNVFZpWVhOcFkxOXpkSEpwYm1kaWRXWkpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGVGxOZk9XRnNiRzlqWVhSdmNrbGpSVVZGUlFBQUFCZy9BQUNnRWdBQWFCRUFBRUFBQUFBQUFBQUFLQlFBQUNrQUFBQXFBQUFBT0FBQUFQai8vLzhvRkFBQUt3QUFBQ3dBQUFEQS8vLy93UC8vL3lnVUFBQXRBQUFBTGdBQUFQd1NBQUJnRXdBQW5CTUFBTEFUQUFERUV3QUEyQk1BQUlnVEFBQjBFd0FBSkJNQUFCQVRBQUJBQUFBQUFBQUFBSUFTQUFBYUFBQUFHd0FBQURnQUFBRDQvLy8vZ0JJQUFCd0FBQUFkQUFBQXdQLy8vOEQvLy8rQUVnQUFIZ0FBQUI4QUFBQkFBQUFBQUFBQUFLQVJBQUFTQUFBQUV3QUFBTUQvLy8vQS8vLy9vQkVBQUJRQUFBQVZBQUFBT0FBQUFBQUFBQURvRVFBQUZnQUFBQmNBQUFESS8vLy95UC8vLytnUkFBQVlBQUFBR1FBQUFFNVRkRE5mWHpJeE9HSmhjMmxqWDNOMGNtbHVaM04wY21WaGJVbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZPVTE4NVlXeHNiMk5oZEc5eVNXTkZSVVZGQUFBQUFCZy9BQURnRXdBQWdCSUFBQUFBQUFCWUZBQUFMd0FBQURBQUFBQk9VM1F6WDE4eU9HbHZjMTlpWVhObFJRQUFBUEErQUFCRUZBQUEwWFNlQUZlZHZTcUFjRklQLy84K0p3b0FBQUJrQUFBQTZBTUFBQkFuQUFDZ2hnRUFRRUlQQUlDV21BQUE0ZlVGR0FBQUFEVUFBQUJ4QUFBQWEvLy8vODc3Ly8rU3YvLy9BQUFBQUFBQUFBRC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQUFFQ0F3UUZCZ2NJQ2YvLy8vLy8vLzhLQ3d3TkRnOFFFUklURkJVV0Z4Z1pHaHNjSFI0ZklDRWlJLy8vLy8vLy93b0xEQTBPRHhBUkVoTVVGUllYR0JrYUd4d2RIaDhnSVNJai8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3dBQkFnUUhBd1lGQUFBQUFBQUFBQUlBQU1BREFBREFCQUFBd0FVQUFNQUdBQURBQndBQXdBZ0FBTUFKQUFEQUNnQUF3QXNBQU1BTUFBREFEUUFBd0E0QUFNQVBBQURBRUFBQXdCRUFBTUFTQUFEQUV3QUF3QlFBQU1BVkFBREFGZ0FBd0JjQUFNQVlBQURBR1FBQXdCb0FBTUFiQUFEQUhBQUF3QjBBQU1BZUFBREFId0FBd0FBQUFMTUJBQUREQWdBQXd3TUFBTU1FQUFEREJRQUF3d1lBQU1NSEFBRERDQUFBd3drQUFNTUtBQUREQ3dBQXd3d0FBTU1OQUFEVERnQUF3dzhBQU1NQUFBeTdBUUFNd3dJQURNTURBQXpEQkFBTTJ3QUFBQURlRWdTVkFBQUFBUC8vLy8vLy8vLy8vLy8vLzVBV0FBQVVBQUFBUXk1VlZFWXRPQUJCNEMwTEFxUVdBRUdBTGd0SFRFTmZRMVJaVUVVQUFBQUFURU5mVGxWTlJWSkpRd0FBVEVOZlZFbE5SUUFBQUFBQVRFTmZRMDlNVEVGVVJRQUFURU5mVFU5T1JWUkJVbGtBVEVOZlRVVlRVMEZIUlZNQVFkQXVDMEVaQUFvQUdSa1pBQUFBQUFVQUFBQUFBQUFKQUFBQUFBc0FBQUFBQUFBQUFCa0FFUW9aR1JrRENnY0FBUUFKQ3hnQUFBa0dDd0FBQ3dBR0dRQUFBQmtaR1FCQm9TOExJUTRBQUFBQUFBQUFBQmtBQ2cwWkdSa0FEUUFBQWdBSkRnQUFBQWtBRGdBQURnQkIyeThMQVF3QVFlY3ZDeFVUQUFBQUFCTUFBQUFBQ1F3QUFBQUFBQXdBQUF3QVFaVXdDd0VRQUVHaE1Bc1ZEd0FBQUFRUEFBQUFBQWtRQUFBQUFBQVFBQUFRQUVIUE1Bc0JFZ0JCMnpBTEhoRUFBQUFBRVFBQUFBQUpFZ0FBQUFBQUVnQUFFZ0FBR2dBQUFCb2FHZ0JCa2pFTERob0FBQUFhR2hvQUFBQUFBQUFKQUVIRE1Rc0JGQUJCenpFTEZSY0FBQUFBRndBQUFBQUpGQUFBQUFBQUZBQUFGQUJCL1RFTEFSWUFRWWt5Q3lrVkFBQUFBQlVBQUFBQUNSWUFBQUFBQUJZQUFCWUFBREF4TWpNME5UWTNPRGxCUWtORVJVWkFHZ0JCd0RRTC93RUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQURJQUlnQWlBQ0lBSWdBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBV0FFd0FUQUJNQUV3QVRBQk1BRXdBVEFCTUFFd0FUQUJNQUV3QVRBQk1BSTJBallDTmdJMkFqWUNOZ0kyQWpZQ05nSTJBVEFCTUFFd0FUQUJNQUV3QVRBQ05VSTFRalZDTlVJMVFqVkNNVUl4UWpGQ01VSXhRakZDTVVJeFFqRkNNVUl4UWpGQ01VSXhRakZDTVVJeFFqRkNNVUl4UVRBQk1BRXdBVEFCTUFFd0FqV0NOWUkxZ2pXQ05ZSTFnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlFd0FUQUJNQUV3QUlBUWNBNEN3SlFIZ0JCMUR3TCtRTUJBQUFBQWdBQUFBTUFBQUFFQUFBQUJRQUFBQVlBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFBQUFFUUFBQUJJQUFBQVRBQUFBRkFBQUFCVUFBQUFXQUFBQUZ3QUFBQmdBQUFBWkFBQUFHZ0FBQUJzQUFBQWNBQUFBSFFBQUFCNEFBQUFmQUFBQUlBQUFBQ0VBQUFBaUFBQUFJd0FBQUNRQUFBQWxBQUFBSmdBQUFDY0FBQUFvQUFBQUtRQUFBQ29BQUFBckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFEQUFBQUF4QUFBQU1nQUFBRE1BQUFBMEFBQUFOUUFBQURZQUFBQTNBQUFBT0FBQUFEa0FBQUE2QUFBQU93QUFBRHdBQUFBOUFBQUFQZ0FBQUQ4QUFBQkFBQUFBUVFBQUFFSUFBQUJEQUFBQVJBQUFBRVVBQUFCR0FBQUFSd0FBQUVnQUFBQkpBQUFBU2dBQUFFc0FBQUJNQUFBQVRRQUFBRTRBQUFCUEFBQUFVQUFBQUZFQUFBQlNBQUFBVXdBQUFGUUFBQUJWQUFBQVZnQUFBRmNBQUFCWUFBQUFXUUFBQUZvQUFBQmJBQUFBWEFBQUFGMEFBQUJlQUFBQVh3QUFBR0FBQUFCQkFBQUFRZ0FBQUVNQUFBQkVBQUFBUlFBQUFFWUFBQUJIQUFBQVNBQUFBRWtBQUFCS0FBQUFTd0FBQUV3QUFBQk5BQUFBVGdBQUFFOEFBQUJRQUFBQVVRQUFBRklBQUFCVEFBQUFWQUFBQUZVQUFBQldBQUFBVndBQUFGZ0FBQUJaQUFBQVdnQUFBSHNBQUFCOEFBQUFmUUFBQUg0QUFBQi9BRUhReEFBTEFtQWtBRUhreUFBTCtRTUJBQUFBQWdBQUFBTUFBQUFFQUFBQUJRQUFBQVlBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFBQUFFUUFBQUJJQUFBQVRBQUFBRkFBQUFCVUFBQUFXQUFBQUZ3QUFBQmdBQUFBWkFBQUFHZ0FBQUJzQUFBQWNBQUFBSFFBQUFCNEFBQUFmQUFBQUlBQUFBQ0VBQUFBaUFBQUFJd0FBQUNRQUFBQWxBQUFBSmdBQUFDY0FBQUFvQUFBQUtRQUFBQ29BQUFBckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFEQUFBQUF4QUFBQU1nQUFBRE1BQUFBMEFBQUFOUUFBQURZQUFBQTNBQUFBT0FBQUFEa0FBQUE2QUFBQU93QUFBRHdBQUFBOUFBQUFQZ0FBQUQ4QUFBQkFBQUFBWVFBQUFHSUFBQUJqQUFBQVpBQUFBR1VBQUFCbUFBQUFad0FBQUdnQUFBQnBBQUFBYWdBQUFHc0FBQUJzQUFBQWJRQUFBRzRBQUFCdkFBQUFjQUFBQUhFQUFBQnlBQUFBY3dBQUFIUUFBQUIxQUFBQWRnQUFBSGNBQUFCNEFBQUFlUUFBQUhvQUFBQmJBQUFBWEFBQUFGMEFBQUJlQUFBQVh3QUFBR0FBQUFCaEFBQUFZZ0FBQUdNQUFBQmtBQUFBWlFBQUFHWUFBQUJuQUFBQWFBQUFBR2tBQUFCcUFBQUFhd0FBQUd3QUFBQnRBQUFBYmdBQUFHOEFBQUJ3QUFBQWNRQUFBSElBQUFCekFBQUFkQUFBQUhVQUFBQjJBQUFBZHdBQUFIZ0FBQUI1QUFBQWVnQUFBSHNBQUFCOEFBQUFmUUFBQUg0QUFBQi9BRUhnMEFBTHdRRXdNVEl6TkRVMk56ZzVZV0pqWkdWbVFVSkRSRVZHZUZnckxYQlFhVWx1VGdBbEFBQUFBQUFsY0FBQUFBQWxTVG9sVFRvbFV5QWxjQ1ZJT2lWTkFBQUFKUUFBQUcwQUFBQXZBQUFBSlFBQUFHUUFBQUF2QUFBQUpRQUFBSGtBQUFBbEFBQUFXUUFBQUMwQUFBQWxBQUFBYlFBQUFDMEFBQUFsQUFBQVpBQUFBQ1VBQUFCSkFBQUFPZ0FBQUNVQUFBQk5BQUFBT2dBQUFDVUFBQUJUQUFBQUlBQUFBQ1VBQUFCd0FBQUFBQUFBQUNVQUFBQklBQUFBT2dBQUFDVUFBQUJOQUVHdzBnQUwyUU1sQUFBQVNBQUFBRG9BQUFBbEFBQUFUUUFBQURvQUFBQWxBQUFBVXdBQUFBQUFBQUMwTFFBQVJ3QUFBRWdBQUFCSkFBQUFBQUFBQUJRdUFBQktBQUFBU3dBQUFFa0FBQUJNQUFBQVRRQUFBRTRBQUFCUEFBQUFVQUFBQUZFQUFBQlNBQUFBVXdBQUFBQUFBQUI4TFFBQVZBQUFBRlVBQUFCSkFBQUFWZ0FBQUZjQUFBQllBQUFBV1FBQUFGb0FBQUJiQUFBQVhBQUFBQUFBQUFCTUxnQUFYUUFBQUY0QUFBQkpBQUFBWHdBQUFHQUFBQUJoQUFBQVlnQUFBR01BQUFBQUFBQUFjQzRBQUdRQUFBQmxBQUFBU1FBQUFHWUFBQUJuQUFBQWFBQUFBR2tBQUFCcUFBQUFkQUFBQUhJQUFBQjFBQUFBWlFBQUFBQUFBQUJtQUFBQVlRQUFBR3dBQUFCekFBQUFaUUFBQUFBQUFBQWxBQUFBYlFBQUFDOEFBQUFsQUFBQVpBQUFBQzhBQUFBbEFBQUFlUUFBQUFBQUFBQWxBQUFBU0FBQUFEb0FBQUFsQUFBQVRRQUFBRG9BQUFBbEFBQUFVd0FBQUFBQUFBQWxBQUFBWVFBQUFDQUFBQUFsQUFBQVlnQUFBQ0FBQUFBbEFBQUFaQUFBQUNBQUFBQWxBQUFBU0FBQUFEb0FBQUFsQUFBQVRRQUFBRG9BQUFBbEFBQUFVd0FBQUNBQUFBQWxBQUFBV1FBQUFBQUFBQUFsQUFBQVNRQUFBRG9BQUFBbEFBQUFUUUFBQURvQUFBQWxBQUFBVXdBQUFDQUFBQUFsQUFBQWNBQkJsTllBQzVZSlBDc0FBR3NBQUFCc0FBQUFTUUFBQUU1VGRETmZYekkyYkc5allXeGxOV1poWTJWMFJRQUFBQmcvQUFBa0t3QUFnRDRBQUFBQUFBQzhLd0FBYXdBQUFHMEFBQUJKQUFBQWJnQUFBRzhBQUFCd0FBQUFjUUFBQUhJQUFBQnpBQUFBZEFBQUFIVUFBQUIyQUFBQWR3QUFBSGdBQUFCNUFBQUFUbE4wTTE5Zk1qVmpkSGx3WlVsM1JVVUFUbE4wTTE5Zk1qRXdZM1I1Y0dWZlltRnpaVVVBQVBBK0FBQ2VLd0FBZEQ4QUFJd3JBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUF0Q3NBQUFJQUFBQUFBQUFBVUN3QUFHc0FBQUI2QUFBQVNRQUFBSHNBQUFCOEFBQUFmUUFBQUg0QUFBQi9BQUFBZ0FBQUFJRUFBQUJPVTNRelgxOHlOMk52WkdWamRuUkpZMk14TVY5ZmJXSnpkR0YwWlY5MFJVVUFUbE4wTTE5Zk1qRXlZMjlrWldOMmRGOWlZWE5sUlFBQUFBRHdQZ0FBTGl3QUFIUS9BQUFNTEFBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQUVnc0FBQUNBQUFBQUFBQUFNUXNBQUJyQUFBQWdnQUFBRWtBQUFDREFBQUFoQUFBQUlVQUFBQ0dBQUFBaHdBQUFJZ0FBQUNKQUFBQVRsTjBNMTlmTWpkamIyUmxZM1owU1VSell6RXhYMTl0WW5OMFlYUmxYM1JGUlFBQWREOEFBS0FzQUFBQUFBQUFBZ0FBQUR3ckFBQUNBQUFBU0N3QUFBSUFBQUFBQUFBQU9DMEFBR3NBQUFDS0FBQUFTUUFBQUlzQUFBQ01BQUFBalFBQUFJNEFBQUNQQUFBQWtBQUFBSkVBQUFCT1UzUXpYMTh5TjJOdlpHVmpkblJKUkdsak1URmZYMjFpYzNSaGRHVmZkRVZGQUFCMFB3QUFGQzBBQUFBQUFBQUNBQUFBUENzQUFBSUFBQUJJTEFBQUFnQUFBRTVUZEROZlh6STNZMjlrWldOMmRFbDNZekV4WDE5dFluTjBZWFJsWDNSRlJRQUFBSFEvQUFCWUxRQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFFZ3NBQUFDQUFBQVRsTjBNMTlmTWpac2IyTmhiR1UxWDE5cGJYQkZBQUFBR0Q4QUFKd3RBQUE4S3dBQVRsTjBNMTlmTWpkamIyeHNZWFJsU1dORlJRQVlQd0FBd0MwQUFEd3JBQUJPVTNRelgxOHlOMk52Ykd4aGRHVkpkMFZGQUJnL0FBRGdMUUFBUENzQUFFNVRkRE5mWHpJMVkzUjVjR1ZKWTBWRkFBQUFkRDhBQUFBdUFBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQXRDc0FBQUlBQUFCT1UzUXpYMTh5T0c1MWJYQjFibU4wU1dORlJRQUFBQUFZUHdBQU5DNEFBRHdyQUFCT1UzUXpYMTh5T0c1MWJYQjFibU4wU1hkRlJRQUFBQUFZUHdBQVdDNEFBRHdyQUFBQUFBQUExQzBBQUpJQUFBQ1RBQUFBU1FBQUFKUUFBQUNWQUFBQWxnQUFBQUFBQUFEMExRQUFsd0FBQUpnQUFBQkpBQUFBbVFBQUFKb0FBQUNiQUFBQUFBQUFBSkF2QUFCckFBQUFuQUFBQUVrQUFBQ2RBQUFBbmdBQUFKOEFBQUNnQUFBQW9RQUFBS0lBQUFDakFBQUFwQUFBQUtVQUFBQ21BQUFBcHdBQUFFNVRkRE5mWHpJM2JuVnRYMmRsZEVsalRsTmZNVGxwYzNSeVpXRnRZblZtWDJsMFpYSmhkRzl5U1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZSVVVBVGxOME0xOWZNamxmWDI1MWJWOW5aWFJKWTBWRkFFNVRkRE5mWHpJeE5GOWZiblZ0WDJkbGRGOWlZWE5sUlFBQThENEFBRll2QUFCMFB3QUFRQzhBQUFBQUFBQUJBQUFBY0M4QUFBQUFBQUIwUHdBQS9DNEFBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQjRMd0JCdE44QUM4b0JaREFBQUdzQUFBQ29BQUFBU1FBQUFLa0FBQUNxQUFBQXF3QUFBS3dBQUFDdEFBQUFyZ0FBQUs4QUFBQ3dBQUFBc1FBQUFMSUFBQUN6QUFBQVRsTjBNMTlmTWpkdWRXMWZaMlYwU1hkT1UxOHhPV2x6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKZDA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KZDBWRlJVVkZSUUJPVTNRelgxOHlPVjlmYm5WdFgyZGxkRWwzUlVVQUFBQjBQd0FBTkRBQUFBQUFBQUFCQUFBQWNDOEFBQUFBQUFCMFB3QUE4QzhBQUFBQUFBQUNBQUFBUENzQUFBSUFBQUJNTUFCQmlPRUFDOTRCVERFQUFHc0FBQUMwQUFBQVNRQUFBTFVBQUFDMkFBQUF0d0FBQUxnQUFBQzVBQUFBdWdBQUFMc0FBQUM4QUFBQVRsTjBNMTlmTWpkdWRXMWZjSFYwU1dOT1UxOHhPVzl6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlJVVkZSUUJPVTNRelgxOHlPVjlmYm5WdFgzQjFkRWxqUlVVQVRsTjBNMTlmTWpFMFgxOXVkVzFmY0hWMFgySmhjMlZGQUFEd1BnQUFFakVBQUhRL0FBRDhNQUFBQUFBQUFBRUFBQUFzTVFBQUFBQUFBSFEvQUFDNE1BQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFEUXhBRUh3NGdBTHZnRVVNZ0FBYXdBQUFMMEFBQUJKQUFBQXZnQUFBTDhBQUFEQUFBQUF3UUFBQU1JQUFBRERBQUFBeEFBQUFNVUFBQUJPVTNRelgxOHlOMjUxYlY5d2RYUkpkMDVUWHpFNWIzTjBjbVZoYldKMVpsOXBkR1Z5WVhSdmNrbDNUbE5mTVRGamFHRnlYM1J5WVdsMGMwbDNSVVZGUlVWRkFFNVRkRE5mWHpJNVgxOXVkVzFmY0hWMFNYZEZSUUFBQUhRL0FBRGtNUUFBQUFBQUFBRUFBQUFzTVFBQUFBQUFBSFEvQUFDZ01RQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFQd3hBRUc0NUFBTG1nc1VNd0FBeGdBQUFNY0FBQUJKQUFBQXlBQUFBTWtBQUFES0FBQUF5d0FBQU13QUFBRE5BQUFBemdBQUFQai8vLzhVTXdBQXp3QUFBTkFBQUFEUkFBQUEwZ0FBQU5NQUFBRFVBQUFBMVFBQUFFNVRkRE5mWHpJNGRHbHRaVjluWlhSSlkwNVRYekU1YVhOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSVVZGQUU1VGRETmZYekk1ZEdsdFpWOWlZWE5sUlFEd1BnQUF6VElBQUU1VGRETmZYekl5TUY5ZmRHbHRaVjluWlhSZlkxOXpkRzl5WVdkbFNXTkZSUUFBQVBBK0FBRG9NZ0FBZEQ4QUFJZ3lBQUFBQUFBQUF3QUFBRHdyQUFBQ0FBQUE0RElBQUFJQUFBQU1Nd0FBQUFnQUFBQUFBQUFBTkFBQTFnQUFBTmNBQUFCSkFBQUEyQUFBQU5rQUFBRGFBQUFBMndBQUFOd0FBQURkQUFBQTNnQUFBUGovLy84QU5BQUEzd0FBQU9BQUFBRGhBQUFBNGdBQUFPTUFBQURrQUFBQTVRQUFBRTVUZEROZlh6STRkR2x0WlY5blpYUkpkMDVUWHpFNWFYTjBjbVZoYldKMVpsOXBkR1Z5WVhSdmNrbDNUbE5mTVRGamFHRnlYM1J5WVdsMGMwbDNSVVZGUlVWRkFFNVRkRE5mWHpJeU1GOWZkR2x0WlY5blpYUmZZMTl6ZEc5eVlXZGxTWGRGUlFBQThENEFBTlV6QUFCMFB3QUFrRE1BQUFBQUFBQURBQUFBUENzQUFBSUFBQURnTWdBQUFnQUFBUGd6QUFBQUNBQUFBQUFBQUtRMEFBRG1BQUFBNXdBQUFFa0FBQURvQUFBQVRsTjBNMTlmTWpoMGFXMWxYM0IxZEVsalRsTmZNVGx2YzNSeVpXRnRZblZtWDJsMFpYSmhkRzl5U1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZSVVVBVGxOME0xOWZNakV3WDE5MGFXMWxYM0IxZEVVQUFBRHdQZ0FBaFRRQUFIUS9BQUJBTkFBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQUp3MEFBQUFDQUFBQUFBQUFDUTFBQURwQUFBQTZnQUFBRWtBQUFEckFBQUFUbE4wTTE5Zk1qaDBhVzFsWDNCMWRFbDNUbE5mTVRsdmMzUnlaV0Z0WW5WbVgybDBaWEpoZEc5eVNYZE9VMTh4TVdOb1lYSmZkSEpoYVhSelNYZEZSVVZGUlVVQUFBQUFkRDhBQU53MEFBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQW5EUUFBQUFJQUFBQUFBQUF1RFVBQUdzQUFBRHNBQUFBU1FBQUFPMEFBQUR1QUFBQTd3QUFBUEFBQUFEeEFBQUE4Z0FBQVBNQUFBRDBBQUFBOVFBQUFFNVRkRE5mWHpJeE1HMXZibVY1Y0hWdVkzUkpZMHhpTUVWRlJRQk9VM1F6WDE4eU1UQnRiMjVsZVY5aVlYTmxSUUFBQUFEd1BnQUFtRFVBQUhRL0FBQjhOUUFBQUFBQUFBSUFBQUE4S3dBQUFnQUFBTEExQUFBQ0FBQUFBQUFBQUN3MkFBQnJBQUFBOWdBQUFFa0FBQUQzQUFBQStBQUFBUGtBQUFENkFBQUErd0FBQVB3QUFBRDlBQUFBL2dBQUFQOEFBQUJPVTNRelgxOHlNVEJ0YjI1bGVYQjFibU4wU1dOTVlqRkZSVVVBZEQ4QUFCQTJBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFzRFVBQUFJQUFBQUFBQUFBb0RZQUFHc0FBQUFBQVFBQVNRQUFBQUVCQUFBQ0FRQUFBd0VBQUFRQkFBQUZBUUFBQmdFQUFBY0JBQUFJQVFBQUNRRUFBRTVUZEROZlh6SXhNRzF2Ym1WNWNIVnVZM1JKZDB4aU1FVkZSUUIwUHdBQWhEWUFBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQ3dOUUFBQWdBQUFBQUFBQUFVTndBQWF3QUFBQW9CQUFCSkFBQUFDd0VBQUF3QkFBQU5BUUFBRGdFQUFBOEJBQUFRQVFBQUVRRUFBQklCQUFBVEFRQUFUbE4wTTE5Zk1qRXdiVzl1Wlhsd2RXNWpkRWwzVEdJeFJVVkZBSFEvQUFENE5nQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFMQTFBQUFDQUFBQUFBQUFBTGczQUFCckFBQUFGQUVBQUVrQUFBQVZBUUFBRmdFQUFFNVRkRE5mWHpJNWJXOXVaWGxmWjJWMFNXTk9VMTh4T1dsemRISmxZVzFpZFdaZmFYUmxjbUYwYjNKSlkwNVRYekV4WTJoaGNsOTBjbUZwZEhOSlkwVkZSVVZGUlFCT1UzUXpYMTh5TVRGZlgyMXZibVY1WDJkbGRFbGpSVVVBQVBBK0FBQ1dOd0FBZEQ4QUFGQTNBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFzRGNBUWR6dkFBdWFBVnc0QUFCckFBQUFGd0VBQUVrQUFBQVlBUUFBR1FFQUFFNVRkRE5mWHpJNWJXOXVaWGxmWjJWMFNYZE9VMTh4T1dsemRISmxZVzFpZFdaZmFYUmxjbUYwYjNKSmQwNVRYekV4WTJoaGNsOTBjbUZwZEhOSmQwVkZSVVZGUlFCT1UzUXpYMTh5TVRGZlgyMXZibVY1WDJkbGRFbDNSVVVBQVBBK0FBQTZPQUFBZEQ4QUFQUTNBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFWRGdBUVlIeEFBdVpBVGtBQUdzQUFBQWFBUUFBU1FBQUFCc0JBQUFjQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjl3ZFhSSlkwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmY0hWMFNXTkZSUUFBOEQ0QUFONDRBQUIwUHdBQW1EZ0FBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBRDRPQUJCcFBJQUM1b0JwRGtBQUdzQUFBQWRBUUFBU1FBQUFCNEJBQUFmQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjl3ZFhSSmQwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsM1RsTmZNVEZqYUdGeVgzUnlZV2wwYzBsM1JVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmY0hWMFNYZEZSUUFBOEQ0QUFJSTVBQUIwUHdBQVBEa0FBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQ2NPUUJCeVBNQUM3a0lIRG9BQUdzQUFBQWdBUUFBU1FBQUFDRUJBQUFpQVFBQUl3RUFBRTVUZEROZlh6STRiV1Z6YzJGblpYTkpZMFZGQUU1VGRETmZYekl4TTIxbGMzTmhaMlZ6WDJKaGMyVkZBQUFBQVBBK0FBRDVPUUFBZEQ4QUFPUTVBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFGRG9BQUFJQUFBQUFBQUFBZERvQUFHc0FBQUFrQVFBQVNRQUFBQ1VCQUFBbUFRQUFKd0VBQUU1VGRETmZYekk0YldWemMyRm5aWE5KZDBWRkFBQUFBSFEvQUFCY09nQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFCUTZBQUFDQUFBQVV3QUFBSFVBQUFCdUFBQUFaQUFBQUdFQUFBQjVBQUFBQUFBQUFFMEFBQUJ2QUFBQWJnQUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQlVBQUFBZFFBQUFHVUFBQUJ6QUFBQVpBQUFBR0VBQUFCNUFBQUFBQUFBQUZjQUFBQmxBQUFBWkFBQUFHNEFBQUJsQUFBQWN3QUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQlVBQUFBYUFBQUFIVUFBQUJ5QUFBQWN3QUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQkdBQUFBY2dBQUFHa0FBQUJrQUFBQVlRQUFBSGtBQUFBQUFBQUFVd0FBQUdFQUFBQjBBQUFBZFFBQUFISUFBQUJrQUFBQVlRQUFBSGtBQUFBQUFBQUFVd0FBQUhVQUFBQnVBQUFBQUFBQUFFMEFBQUJ2QUFBQWJnQUFBQUFBQUFCVUFBQUFkUUFBQUdVQUFBQUFBQUFBVndBQUFHVUFBQUJrQUFBQUFBQUFBRlFBQUFCb0FBQUFkUUFBQUFBQUFBQkdBQUFBY2dBQUFHa0FBQUFBQUFBQVV3QUFBR0VBQUFCMEFBQUFBQUFBQUVvQUFBQmhBQUFBYmdBQUFIVUFBQUJoQUFBQWNnQUFBSGtBQUFBQUFBQUFSZ0FBQUdVQUFBQmlBQUFBY2dBQUFIVUFBQUJoQUFBQWNnQUFBSGtBQUFBQUFBQUFUUUFBQUdFQUFBQnlBQUFBWXdBQUFHZ0FBQUFBQUFBQVFRQUFBSEFBQUFCeUFBQUFhUUFBQUd3QUFBQUFBQUFBVFFBQUFHRUFBQUI1QUFBQUFBQUFBRW9BQUFCMUFBQUFiZ0FBQUdVQUFBQUFBQUFBU2dBQUFIVUFBQUJzQUFBQWVRQUFBQUFBQUFCQkFBQUFkUUFBQUdjQUFBQjFBQUFBY3dBQUFIUUFBQUFBQUFBQVV3QUFBR1VBQUFCd0FBQUFkQUFBQUdVQUFBQnRBQUFBWWdBQUFHVUFBQUJ5QUFBQUFBQUFBRThBQUFCakFBQUFkQUFBQUc4QUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVRnQUFBRzhBQUFCMkFBQUFaUUFBQUcwQUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVJBQUFBR1VBQUFCakFBQUFaUUFBQUcwQUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVNnQUFBR0VBQUFCdUFBQUFBQUFBQUVZQUFBQmxBQUFBWWdBQUFBQUFBQUJOQUFBQVlRQUFBSElBQUFBQUFBQUFRUUFBQUhBQUFBQnlBQUFBQUFBQUFFb0FBQUIxQUFBQWJnQUFBQUFBQUFCS0FBQUFkUUFBQUd3QUFBQUFBQUFBUVFBQUFIVUFBQUJuQUFBQUFBQUFBRk1BQUFCbEFBQUFjQUFBQUFBQUFBQlBBQUFBWXdBQUFIUUFBQUFBQUFBQVRnQUFBRzhBQUFCMkFBQUFBQUFBQUVRQUFBQmxBQUFBWXdBQUFBQUFBQUJCQUFBQVRRQUFBQUFBQUFCUUFBQUFUUUJCalB3QUMrSUVERE1BQU04QUFBRFFBQUFBMFFBQUFOSUFBQURUQUFBQTFBQUFBTlVBQUFBQUFBQUErRE1BQU44QUFBRGdBQUFBNFFBQUFPSUFBQURqQUFBQTVBQUFBT1VBQUFBQUFBQUFnRDRBQUNnQkFBQXBBUUFBS2dFQUFFNVRkRE5mWHpJeE5GOWZjMmhoY21Wa1gyTnZkVzUwUlFBQUFBRHdQZ0FBWkQ0QUFFNHhNRjlmWTNoNFlXSnBkakV4Tmw5ZmMyaHBiVjkwZVhCbFgybHVabTlGQUFBQUFCZy9BQUNJUGdBQWFFQUFBRTR4TUY5ZlkzaDRZV0pwZGpFeE4xOWZZMnhoYzNOZmRIbHdaVjlwYm1adlJRQUFBQmcvQUFDNFBnQUFyRDRBQUFBQUFBRGNQZ0FBS3dFQUFDd0JBQUF0QVFBQUxnRUFBQzhCQUFBd0FRQUFNUUVBQURJQkFBQUFBQUFBWUQ4QUFDc0JBQUF6QVFBQUxRRUFBQzRCQUFBdkFRQUFOQUVBQURVQkFBQTJBUUFBVGpFd1gxOWplSGhoWW1sMk1USXdYMTl6YVY5amJHRnpjMTkwZVhCbFgybHVabTlGQUFBQUFCZy9BQUE0UHdBQTNENEFBQUFBQUFDOFB3QUFLd0VBQURjQkFBQXRBUUFBTGdFQUFDOEJBQUE0QVFBQU9RRUFBRG9CQUFCT01UQmZYMk40ZUdGaWFYWXhNakZmWDNadGFWOWpiR0Z6YzE5MGVYQmxYMmx1Wm05RkFBQUFHRDhBQUpRL0FBRGNQZ0FBQUFBQUFPdy9BQUE3QVFBQVBBRUFBRDBCQUFCVGREbGxlR05sY0hScGIyNEFBQUFBOEQ0QUFOdy9BQUFBQUFBQUdFQUFBQU1BQUFBK0FRQUFQd0VBQUZOME1URnNiMmRwWTE5bGNuSnZjZ0FZUHdBQUNFQUFBT3cvQUFBQUFBQUFURUFBQUFNQUFBQkFBUUFBUHdFQUFGTjBNVEpzWlc1bmRHaGZaWEp5YjNJQUFBQUFHRDhBQURoQUFBQVlRQUFBVTNRNWRIbHdaVjlwYm1adkFBQUFBUEErQUFCWVFBQkI4SUFCQ3dLZ2F3PT0iKSxfeT1mdW5jdGlvbihBKXsoQT1BfHx7fSkuaW5zdGFudGlhdGVXYXNtPWZ1bmN0aW9uKEEsZyl7enkoQSkudGhlbigoZnVuY3Rpb24oQSl7Zyh7ZXhwb3J0czpBLmV4cG9ydHN9KX0pKX07dmFyIGcsST12b2lkIDAhPT1BP0E6e30sQj1PYmplY3QuYXNzaWduLFE9Qih7fSxJKSxDPSIuL3RoaXMucHJvZ3JhbSIsRT0hMCxpPSIiO2k9MCE9PShpPXNlbGYubG9jYXRpb24uaHJlZikuaW5kZXhPZigiYmxvYjoiKT9pLnN1YnN0cigwLGkucmVwbGFjZSgvWz8jXS4qLywiIikubGFzdEluZGV4T2YoIi8iKSsxKToiIixnPWZ1bmN0aW9uKEEpe3ZhciBnPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gZy5vcGVuKCJHRVQiLEEsITEpLGcucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsZy5zZW5kKG51bGwpLG5ldyBVaW50OEFycmF5KGcucmVzcG9uc2UpfSxJLnByaW50fHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpO3ZhciB0LGUsbz1JLnByaW50RXJyfHxjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtCKEksUSksUT1udWxsLEkuYXJndW1lbnRzJiZJLmFyZ3VtZW50cyxJLnRoaXNQcm9ncmFtJiYoQz1JLnRoaXNQcm9ncmFtKSxJLnF1aXQmJkkucXVpdCxJLndhc21CaW5hcnkmJih0PUkud2FzbUJpbmFyeSksSS5ub0V4aXRSdW50aW1lLCJvYmplY3QiIT09KCJ1bmRlZmluZWQiPT10eXBlb2YgV2ViQXNzZW1ibHk/InVuZGVmaW5lZCI6aG4oV2ViQXNzZW1ibHkpKSYmaygibm8gbmF0aXZlIHdhc20gc3VwcG9ydCBkZXRlY3RlZCIpO3ZhciBuLHIsYSxzLGMsaD0hMSx5PSJ1bmRlZmluZWQiIT10eXBlb2YgVGV4dERlY29kZXI/bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik6dm9pZCAwO2Z1bmN0aW9uIEQoQSxnKXtyZXR1cm4gQT9mdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCPWcrSSxRPWc7QVtRXSYmIShRPj1CKTspKytRO2lmKFEtZz4xNiYmQS5zdWJhcnJheSYmeSlyZXR1cm4geS5kZWNvZGUoQS5zdWJhcnJheShnLFEpKTtmb3IodmFyIEM9IiI7ZzxROyl7dmFyIEU9QVtnKytdO2lmKDEyOCZFKXt2YXIgaT02MyZBW2crK107aWYoMTkyIT0oMjI0JkUpKXt2YXIgdD02MyZBW2crK107aWYoKEU9MjI0PT0oMjQwJkUpPygxNSZFKTw8MTJ8aTw8Nnx0Oig3JkUpPDwxOHxpPDwxMnx0PDw2fDYzJkFbZysrXSk8NjU1MzYpQys9U3RyaW5nLmZyb21DaGFyQ29kZShFKTtlbHNle3ZhciBlPUUtNjU1MzY7Qys9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxlPj4xMCw1NjMyMHwxMDIzJmUpfX1lbHNlIEMrPVN0cmluZy5mcm9tQ2hhckNvZGUoKDMxJkUpPDw2fGkpfWVsc2UgQys9U3RyaW5nLmZyb21DaGFyQ29kZShFKX1yZXR1cm4gQ30oYSxBLGcpOiIifWZ1bmN0aW9uIGYoQSxnLEksQil7aWYoIShCPjApKXJldHVybiAwO2Zvcih2YXIgUT1JLEM9SStCLTEsRT0wO0U8QS5sZW5ndGg7KytFKXt2YXIgaT1BLmNoYXJDb2RlQXQoRSk7aWYoaT49NTUyOTYmJmk8PTU3MzQzJiYoaT02NTUzNisoKDEwMjMmaSk8PDEwKXwxMDIzJkEuY2hhckNvZGVBdCgrK0UpKSxpPD0xMjcpe2lmKEk+PUMpYnJlYWs7Z1tJKytdPWl9ZWxzZSBpZihpPD0yMDQ3KXtpZihJKzE+PUMpYnJlYWs7Z1tJKytdPTE5MnxpPj42LGdbSSsrXT0xMjh8NjMmaX1lbHNlIGlmKGk8PTY1NTM1KXtpZihJKzI+PUMpYnJlYWs7Z1tJKytdPTIyNHxpPj4xMixnW0krK109MTI4fGk+PjYmNjMsZ1tJKytdPTEyOHw2MyZpfWVsc2V7aWYoSSszPj1DKWJyZWFrO2dbSSsrXT0yNDB8aT4+MTgsZ1tJKytdPTEyOHxpPj4xMiY2MyxnW0krK109MTI4fGk+PjYmNjMsZ1tJKytdPTEyOHw2MyZpfX1yZXR1cm4gZ1tJXT0wLEktUX1mdW5jdGlvbiB1KEEpe2Zvcih2YXIgZz0wLEk9MDtJPEEubGVuZ3RoOysrSSl7dmFyIEI9QS5jaGFyQ29kZUF0KEkpO0I+PTU1Mjk2JiZCPD01NzM0MyYmKEI9NjU1MzYrKCgxMDIzJkIpPDwxMCl8MTAyMyZBLmNoYXJDb2RlQXQoKytJKSksQjw9MTI3PysrZzpnKz1CPD0yMDQ3PzI6Qjw9NjU1MzU/Mzo0fXJldHVybiBnfWZ1bmN0aW9uIHcoQSxnKXtyLnNldChBLGcpfWZ1bmN0aW9uIGQoQSl7bj1BLEkuSEVBUDg9cj1uZXcgSW50OEFycmF5KEEpLEkuSEVBUDE2PW5ldyBJbnQxNkFycmF5KEEpLEkuSEVBUDMyPXM9bmV3IEludDMyQXJyYXkoQSksSS5IRUFQVTg9YT1uZXcgVWludDhBcnJheShBKSxJLkhFQVBVMTY9bmV3IFVpbnQxNkFycmF5KEEpLEkuSEVBUFUzMj1uZXcgVWludDMyQXJyYXkoQSksSS5IRUFQRjMyPW5ldyBGbG9hdDMyQXJyYXkoQSksSS5IRUFQRjY0PW5ldyBGbG9hdDY0QXJyYXkoQSl9SS5JTklUSUFMX01FTU9SWTt2YXIgRj1bXSxsPVtdLEc9W10sUj0wLFU9bnVsbDtmdW5jdGlvbiBrKEEpe3Rocm93IEkub25BYm9ydCYmSS5vbkFib3J0KEEpLG8oQT0iQWJvcnRlZCgiK0ErIikiKSxoPSEwLEErPSIuIEJ1aWxkIHdpdGggLXMgQVNTRVJUSU9OUz0xIGZvciBtb3JlIGluZm8uIixuZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKEEpfUkucHJlbG9hZGVkSW1hZ2VzPXt9LEkucHJlbG9hZGVkQXVkaW9zPXt9O3ZhciBTLE4sTT0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCI7ZnVuY3Rpb24gWShBKXtyZXR1cm4gQS5zdGFydHNXaXRoKE0pfWZ1bmN0aW9uIEgoQSl7dHJ5e2lmKEE9PVMmJnQpcmV0dXJuIG5ldyBVaW50OEFycmF5KHQpO2lmKGcpcmV0dXJuIGcoQSk7dGhyb3ciYm90aCBhc3luYyBhbmQgc3luYyBmZXRjaGluZyBvZiB0aGUgd2FzbSBmYWlsZWQifWNhdGNoKEkpe2soSSl9fWZ1bmN0aW9uIHAoQSl7Zm9yKDtBLmxlbmd0aD4wOyl7dmFyIGc9QS5zaGlmdCgpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnKXt2YXIgQj1nLmZ1bmM7Im51bWJlciI9PXR5cGVvZiBCP3ZvaWQgMD09PWcuYXJnP0ooQikoKTpKKEIpKGcuYXJnKTpCKHZvaWQgMD09PWcuYXJnP251bGw6Zy5hcmcpfWVsc2UgZyhJKX19ZnVuY3Rpb24gSihBKXtyZXR1cm4gYy5nZXQoQSl9ZnVuY3Rpb24gTChBKXt0aGlzLmV4Y1B0cj1BLHRoaXMucHRyPUEtMTYsdGhpcy5zZXRfdHlwZT1mdW5jdGlvbihBKXtzW3RoaXMucHRyKzQ+PjJdPUF9LHRoaXMuZ2V0X3R5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gc1t0aGlzLnB0cis0Pj4yXX0sdGhpcy5zZXRfZGVzdHJ1Y3Rvcj1mdW5jdGlvbihBKXtzW3RoaXMucHRyKzg+PjJdPUF9LHRoaXMuZ2V0X2Rlc3RydWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gc1t0aGlzLnB0cis4Pj4yXX0sdGhpcy5zZXRfcmVmY291bnQ9ZnVuY3Rpb24oQSl7c1t0aGlzLnB0cj4+Ml09QX0sdGhpcy5zZXRfY2F1Z2h0PWZ1bmN0aW9uKEEpe0E9QT8xOjAsclt0aGlzLnB0cisxMj4+MF09QX0sdGhpcy5nZXRfY2F1Z2h0PWZ1bmN0aW9uKCl7cmV0dXJuIDAhPXJbdGhpcy5wdHIrMTI+PjBdfSx0aGlzLnNldF9yZXRocm93bj1mdW5jdGlvbihBKXtBPUE/MTowLHJbdGhpcy5wdHIrMTM+PjBdPUF9LHRoaXMuZ2V0X3JldGhyb3duPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPXJbdGhpcy5wdHIrMTM+PjBdfSx0aGlzLmluaXQ9ZnVuY3Rpb24oQSxnKXt0aGlzLnNldF90eXBlKEEpLHRoaXMuc2V0X2Rlc3RydWN0b3IoZyksdGhpcy5zZXRfcmVmY291bnQoMCksdGhpcy5zZXRfY2F1Z2h0KCExKSx0aGlzLnNldF9yZXRocm93bighMSl9LHRoaXMuYWRkX3JlZj1mdW5jdGlvbigpe3ZhciBBPXNbdGhpcy5wdHI+PjJdO3NbdGhpcy5wdHI+PjJdPUErMX0sdGhpcy5yZWxlYXNlX3JlZj1mdW5jdGlvbigpe3ZhciBBPXNbdGhpcy5wdHI+PjJdO3JldHVybiBzW3RoaXMucHRyPj4yXT1BLTEsMT09PUF9fWZ1bmN0aW9uIHYoQSl7dHJ5e3JldHVybiBlLmdyb3coQS1uLmJ5dGVMZW5ndGgrNjU1MzU+Pj4xNiksZChlLmJ1ZmZlciksMX1jYXRjaChnKXt9fVkoUz0iYXcud2FzbSIpfHwoTj1TLFM9SS5sb2NhdGVGaWxlP0kubG9jYXRlRmlsZShOLGkpOmkrTik7dmFyIEs9e307ZnVuY3Rpb24gbSgpe2lmKCFtLnN0cmluZ3Mpe3ZhciBBPXtVU0VSOiJ3ZWJfdXNlciIsTE9HTkFNRToid2ViX3VzZXIiLFBBVEg6Ii8iLFBXRDoiLyIsSE9NRToiL2hvbWUvd2ViX3VzZXIiLExBTkc6KCJvYmplY3QiPT09KCJ1bmRlZmluZWQiPT10eXBlb2YgbmF2aWdhdG9yPyJ1bmRlZmluZWQiOmhuKG5hdmlnYXRvcikpJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHwiQyIpLnJlcGxhY2UoIi0iLCJfIikrIi5VVEYtOCIsXzpDfHwiLi90aGlzLnByb2dyYW0ifTtmb3IodmFyIGcgaW4gSyl2b2lkIDA9PT1LW2ddP2RlbGV0ZSBBW2ddOkFbZ109S1tnXTt2YXIgST1bXTtmb3IodmFyIGcgaW4gQSlJLnB1c2goZysiPSIrQVtnXSk7bS5zdHJpbmdzPUl9cmV0dXJuIG0uc3RyaW5nc31mdW5jdGlvbiB4KEEpe3JldHVybiBBJTQ9PTAmJihBJTEwMCE9MHx8QSU0MDA9PTApfWZ1bmN0aW9uIHEoQSxnKXtmb3IodmFyIEk9MCxCPTA7Qjw9ZztJKz1BW0IrK10pO3JldHVybiBJfXZhciBiPVszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sVD1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO2Z1bmN0aW9uIE8oQSxnKXtmb3IodmFyIEk9bmV3IERhdGUoQS5nZXRUaW1lKCkpO2c+MDspe3ZhciBCPXgoSS5nZXRGdWxsWWVhcigpKSxRPUkuZ2V0TW9udGgoKSxDPShCP2I6VClbUV07aWYoIShnPkMtSS5nZXREYXRlKCkpKXJldHVybiBJLnNldERhdGUoSS5nZXREYXRlKCkrZyksSTtnLT1DLUkuZ2V0RGF0ZSgpKzEsSS5zZXREYXRlKDEpLFE8MTE/SS5zZXRNb250aChRKzEpOihJLnNldE1vbnRoKDApLEkuc2V0RnVsbFllYXIoSS5nZXRGdWxsWWVhcigpKzEpKX1yZXR1cm4gSX1mdW5jdGlvbiBXKEEsZyxJKXt2YXIgQj1JPjA/STp1KEEpKzEsUT1uZXcgQXJyYXkoQiksQz1mKEEsUSwwLFEubGVuZ3RoKTtyZXR1cm4gZyYmKFEubGVuZ3RoPUMpLFF9dmFyIFo9e2g6ZnVuY3Rpb24oQSl7cmV0dXJuIGooQSsxNikrMTZ9LGc6ZnVuY3Rpb24oQSxnLEkpe3Rocm93IG5ldyBMKEEpLmluaXQoZyxJKSxBfSxhOmZ1bmN0aW9uKCl7aygiIil9LGY6ZnVuY3Rpb24oQSxnLEkpe2EuY29weVdpdGhpbihBLGcsZytJKX0sZTpmdW5jdGlvbihBKXt2YXIgZyxJLEI9YS5sZW5ndGgsUT0yMTQ3NDgzNjQ4O2lmKChBPj4+PTApPlEpcmV0dXJuITE7Zm9yKHZhciBDPTE7Qzw9NDtDKj0yKXt2YXIgRT1CKigxKy4yL0MpO2lmKEU9TWF0aC5taW4oRSxBKzEwMDY2MzI5NiksdihNYXRoLm1pbihRLCgoZz1NYXRoLm1heChBLEUpKSUoST02NTUzNik+MCYmKGcrPUktZyVJKSxnKSkpKXJldHVybiEwfXJldHVybiExfSxjOmZ1bmN0aW9uKEEsZyl7dmFyIEk9MDtyZXR1cm4gbSgpLmZvckVhY2goKGZ1bmN0aW9uKEIsUSl7dmFyIEM9ZytJO3NbQSs0KlE+PjJdPUMsZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj0wO0I8QS5sZW5ndGg7KytCKXJbZysrPj4wXT1BLmNoYXJDb2RlQXQoQik7SXx8KHJbZz4+MF09MCl9KEIsQyksSSs9Qi5sZW5ndGgrMX0pKSwwfSxkOmZ1bmN0aW9uKEEsZyl7dmFyIEk9bSgpO3NbQT4+Ml09SS5sZW5ndGg7dmFyIEI9MDtyZXR1cm4gSS5mb3JFYWNoKChmdW5jdGlvbihBKXtCKz1BLmxlbmd0aCsxfSkpLHNbZz4+Ml09QiwwfSxiOmZ1bmN0aW9uKEEsZyxJLEIpe3JldHVybiBmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1zW0IrNDA+PjJdLEM9e3RtX3NlYzpzW0I+PjJdLHRtX21pbjpzW0IrND4+Ml0sdG1faG91cjpzW0IrOD4+Ml0sdG1fbWRheTpzW0IrMTI+PjJdLHRtX21vbjpzW0IrMTY+PjJdLHRtX3llYXI6c1tCKzIwPj4yXSx0bV93ZGF5OnNbQisyND4+Ml0sdG1feWRheTpzW0IrMjg+PjJdLHRtX2lzZHN0OnNbQiszMj4+Ml0sdG1fZ210b2ZmOnNbQiszNj4+Ml0sdG1fem9uZTpRP0QoUSk6IiJ9LEU9RChJKSxpPXsiJWMiOiIlYSAlYiAlZCAlSDolTTolUyAlWSIsIiVEIjoiJW0vJWQvJXkiLCIlRiI6IiVZLSVtLSVkIiwiJWgiOiIlYiIsIiVyIjoiJUk6JU06JVMgJXAiLCIlUiI6IiVIOiVNIiwiJVQiOiIlSDolTTolUyIsIiV4IjoiJW0vJWQvJXkiLCIlWCI6IiVIOiVNOiVTIiwiJUVjIjoiJWMiLCIlRUMiOiIlQyIsIiVFeCI6IiVtLyVkLyV5IiwiJUVYIjoiJUg6JU06JVMiLCIlRXkiOiIleSIsIiVFWSI6IiVZIiwiJU9kIjoiJWQiLCIlT2UiOiIlZSIsIiVPSCI6IiVIIiwiJU9JIjoiJUkiLCIlT20iOiIlbSIsIiVPTSI6IiVNIiwiJU9TIjoiJVMiLCIlT3UiOiIldSIsIiVPVSI6IiVVIiwiJU9WIjoiJVYiLCIlT3ciOiIldyIsIiVPVyI6IiVXIiwiJU95IjoiJXkifTtmb3IodmFyIHQgaW4gaSlFPUUucmVwbGFjZShuZXcgUmVnRXhwKHQsImciKSxpW3RdKTt2YXIgZT1bIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sbz1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl07ZnVuY3Rpb24gbihBLGcsSSl7Zm9yKHZhciBCPSJudW1iZXIiPT10eXBlb2YgQT9BLnRvU3RyaW5nKCk6QXx8IiI7Qi5sZW5ndGg8ZzspQj1JWzBdK0I7cmV0dXJuIEJ9ZnVuY3Rpb24gcihBLGcpe3JldHVybiBuKEEsZywiMCIpfWZ1bmN0aW9uIGEoQSxnKXtmdW5jdGlvbiBJKEEpe3JldHVybiBBPDA/LTE6QT4wPzE6MH12YXIgQjtyZXR1cm4gMD09PShCPUkoQS5nZXRGdWxsWWVhcigpLWcuZ2V0RnVsbFllYXIoKSkpJiYwPT09KEI9SShBLmdldE1vbnRoKCktZy5nZXRNb250aCgpKSkmJihCPUkoQS5nZXREYXRlKCktZy5nZXREYXRlKCkpKSxCfWZ1bmN0aW9uIGMoQSl7c3dpdGNoKEEuZ2V0RGF5KCkpe2Nhc2UgMDpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLTEsMTEsMjkpO2Nhc2UgMTpyZXR1cm4gQTtjYXNlIDI6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKSwwLDMpO2Nhc2UgMzpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLDAsMik7Y2FzZSA0OnJldHVybiBuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCksMCwxKTtjYXNlIDU6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDMxKTtjYXNlIDY6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDMwKX19ZnVuY3Rpb24gaChBKXt2YXIgZz1PKG5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsMSksQS50bV95ZGF5KSxJPW5ldyBEYXRlKGcuZ2V0RnVsbFllYXIoKSwwLDQpLEI9bmV3IERhdGUoZy5nZXRGdWxsWWVhcigpKzEsMCw0KSxRPWMoSSksQz1jKEIpO3JldHVybiBhKFEsZyk8PTA/YShDLGcpPD0wP2cuZ2V0RnVsbFllYXIoKSsxOmcuZ2V0RnVsbFllYXIoKTpnLmdldEZ1bGxZZWFyKCktMX12YXIgeT17IiVhIjpmdW5jdGlvbihBKXtyZXR1cm4gZVtBLnRtX3dkYXldLnN1YnN0cmluZygwLDMpfSwiJUEiOmZ1bmN0aW9uKEEpe3JldHVybiBlW0EudG1fd2RheV19LCIlYiI6ZnVuY3Rpb24oQSl7cmV0dXJuIG9bQS50bV9tb25dLnN1YnN0cmluZygwLDMpfSwiJUIiOmZ1bmN0aW9uKEEpe3JldHVybiBvW0EudG1fbW9uXX0sIiVDIjpmdW5jdGlvbihBKXtyZXR1cm4gcigoQS50bV95ZWFyKzE5MDApLzEwMHwwLDIpfSwiJWQiOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1fbWRheSwyKX0sIiVlIjpmdW5jdGlvbihBKXtyZXR1cm4gbihBLnRtX21kYXksMiwiICIpfSwiJWciOmZ1bmN0aW9uKEEpe3JldHVybiBoKEEpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJUciOmZ1bmN0aW9uKEEpe3JldHVybiBoKEEpfSwiJUgiOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1faG91ciwyKX0sIiVJIjpmdW5jdGlvbihBKXt2YXIgZz1BLnRtX2hvdXI7cmV0dXJuIDA9PWc/Zz0xMjpnPjEyJiYoZy09MTIpLHIoZywyKX0sIiVqIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21kYXkrcSh4KEEudG1feWVhcisxOTAwKT9iOlQsQS50bV9tb24tMSksMyl9LCIlbSI6ZnVuY3Rpb24oQSl7cmV0dXJuIHIoQS50bV9tb24rMSwyKX0sIiVNIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21pbiwyKX0sIiVuIjpmdW5jdGlvbigpe3JldHVybiJcbiJ9LCIlcCI6ZnVuY3Rpb24oQSl7cmV0dXJuIEEudG1faG91cj49MCYmQS50bV9ob3VyPDEyPyJBTSI6IlBNIn0sIiVTIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX3NlYywyKX0sIiV0IjpmdW5jdGlvbigpe3JldHVybiJcdCJ9LCIldSI6ZnVuY3Rpb24oQSl7cmV0dXJuIEEudG1fd2RheXx8N30sIiVVIjpmdW5jdGlvbihBKXt2YXIgZz1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMCwwLDEpLEk9MD09PWcuZ2V0RGF5KCk/ZzpPKGcsNy1nLmdldERheSgpKSxCPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLEEudG1fbW9uLEEudG1fbWRheSk7aWYoYShJLEIpPDApe3ZhciBRPXEoeChCLmdldEZ1bGxZZWFyKCkpP2I6VCxCLmdldE1vbnRoKCktMSktMzEsQz0zMS1JLmdldERhdGUoKStRK0IuZ2V0RGF0ZSgpO3JldHVybiByKE1hdGguY2VpbChDLzcpLDIpfXJldHVybiAwPT09YShJLGcpPyIwMSI6IjAwIn0sIiVWIjpmdW5jdGlvbihBKXt2YXIgZyxJPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsNCksQj1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMSwwLDQpLFE9YyhJKSxDPWMoQiksRT1PKG5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsMSksQS50bV95ZGF5KTtyZXR1cm4gYShFLFEpPDA/IjUzIjphKEMsRSk8PTA/IjAxIjooZz1RLmdldEZ1bGxZZWFyKCk8QS50bV95ZWFyKzE5MDA/QS50bV95ZGF5KzMyLVEuZ2V0RGF0ZSgpOkEudG1feWRheSsxLVEuZ2V0RGF0ZSgpLHIoTWF0aC5jZWlsKGcvNyksMikpfSwiJXciOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3dkYXl9LCIlVyI6ZnVuY3Rpb24oQSl7dmFyIGc9bmV3IERhdGUoQS50bV95ZWFyLDAsMSksST0xPT09Zy5nZXREYXkoKT9nOk8oZywwPT09Zy5nZXREYXkoKT8xOjctZy5nZXREYXkoKSsxKSxCPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLEEudG1fbW9uLEEudG1fbWRheSk7aWYoYShJLEIpPDApe3ZhciBRPXEoeChCLmdldEZ1bGxZZWFyKCkpP2I6VCxCLmdldE1vbnRoKCktMSktMzEsQz0zMS1JLmdldERhdGUoKStRK0IuZ2V0RGF0ZSgpO3JldHVybiByKE1hdGguY2VpbChDLzcpLDIpfXJldHVybiAwPT09YShJLGcpPyIwMSI6IjAwIn0sIiV5IjpmdW5jdGlvbihBKXtyZXR1cm4oQS50bV95ZWFyKzE5MDApLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJVkiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3llYXIrMTkwMH0sIiV6IjpmdW5jdGlvbihBKXt2YXIgZz1BLnRtX2dtdG9mZixJPWc+PTA7cmV0dXJuIGc9KGc9TWF0aC5hYnMoZykvNjApLzYwKjEwMCtnJTYwLChJPyIrIjoiLSIpK1N0cmluZygiMDAwMCIrZykuc2xpY2UoLTQpfSwiJVoiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3pvbmV9LCIlJSI6ZnVuY3Rpb24oKXtyZXR1cm4iJSJ9fTtmb3IodmFyIHQgaW4geSlFLmluY2x1ZGVzKHQpJiYoRT1FLnJlcGxhY2UobmV3IFJlZ0V4cCh0LCJnIikseVt0XShDKSkpO3ZhciBmPVcoRSwhMSk7cmV0dXJuIGYubGVuZ3RoPmc/MDoodyhmLEEpLGYubGVuZ3RoLTEpfShBLGcsSSxCKX19OyFmdW5jdGlvbigpe3ZhciBBPXthOlp9O2Z1bmN0aW9uIGcoQSxnKXt2YXIgQixRPUEuZXhwb3J0cztJLmFzbT1RLGQoKGU9SS5hc20uaSkuYnVmZmVyKSxjPUkuYXNtLnQsQj1JLmFzbS5qLGwudW5zaGlmdChCKSxmdW5jdGlvbihBKXtpZihSLS0sSS5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZJLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMoUiksMD09UiYmVSl7dmFyIGc9VTtVPW51bGwsZygpfX0oKX1mdW5jdGlvbiBCKEEpe2coQS5pbnN0YW5jZSl9ZnVuY3Rpb24gUShnKXtyZXR1cm4oIXQmJkUmJiJmdW5jdGlvbiI9PXR5cGVvZiBmZXRjaD9mZXRjaChTLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbigoZnVuY3Rpb24oQSl7aWYoIUEub2spdGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIitTKyInIjtyZXR1cm4gQS5hcnJheUJ1ZmZlcigpfSkpLmNhdGNoKChmdW5jdGlvbigpe3JldHVybiBIKFMpfSkpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIEgoUyl9KSkpLnRoZW4oKGZ1bmN0aW9uKGcpe3JldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShnLEEpfSkpLnRoZW4oKGZ1bmN0aW9uKEEpe3JldHVybiBBfSkpLnRoZW4oZywoZnVuY3Rpb24oQSl7bygiZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogIitBKSxrKEEpfSkpfWlmKFIrKyxJLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJkkubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhSKSxJLmluc3RhbnRpYXRlV2FzbSl0cnl7cmV0dXJuIEkuaW5zdGFudGlhdGVXYXNtKEEsZyl9Y2F0Y2goQyl7cmV0dXJuIG8oIk1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICIrQyksITF9dHx8ImZ1bmN0aW9uIiE9dHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nfHxZKFMpfHwiZnVuY3Rpb24iIT10eXBlb2YgZmV0Y2g/UShCKTpmZXRjaChTLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKGcsQSkudGhlbihCLChmdW5jdGlvbihBKXtyZXR1cm4gbygid2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICIrQSksbygiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKSxRKEIpfSkpfSkpfSgpLEkuX19fd2FzbV9jYWxsX2N0b3JzPWZ1bmN0aW9uKCl7cmV0dXJuKEkuX19fd2FzbV9jYWxsX2N0b3JzPUkuYXNtLmopLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIGo9SS5fbWFsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKGo9SS5fbWFsbG9jPUkuYXNtLmspLmFwcGx5KG51bGwsYXJndW1lbnRzKX07SS5fZnJlZT1mdW5jdGlvbigpe3JldHVybihJLl9mcmVlPUkuYXNtLmwpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fb3BlbkJveD1mdW5jdGlvbigpe3JldHVybihJLl9vcGVuQm94PUkuYXNtLm0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fZGVzY3J5cHQ9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fZGVzY3J5cHQ9SS5hc20ubikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJLl9kZXNjcnlwdEtkc0tleT1mdW5jdGlvbigpe3JldHVybihJLl9kZXNjcnlwdEtkc0tleT1JLmFzbS5vKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEkuX2RlY3J5cHRLZXk9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fZGVjcnlwdEtleT1JLmFzbS5wKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEkuX2Rlc2NyeXB0Q0JDPWZ1bmN0aW9uKCl7cmV0dXJuKEkuX2Rlc2NyeXB0Q0JDPUkuYXNtLnEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fcmVsZWFzZT1mdW5jdGlvbigpe3JldHVybihJLl9yZWxlYXNlPUkuYXNtLnIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fc2V0UmF3PWZ1bmN0aW9uKCl7cmV0dXJuKEkuX3NldFJhdz1JLmFzbS5zKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBQLFg9SS5zdGFja1NhdmU9ZnVuY3Rpb24oKXtyZXR1cm4oWD1JLnN0YWNrU2F2ZT1JLmFzbS51KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFY9SS5zdGFja1Jlc3RvcmU9ZnVuY3Rpb24oKXtyZXR1cm4oVj1JLnN0YWNrUmVzdG9yZT1JLmFzbS52KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHo9SS5zdGFja0FsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKHo9SS5zdGFja0FsbG9jPUkuYXNtLncpLmFwcGx5KG51bGwsYXJndW1lbnRzKX07ZnVuY3Rpb24gXyhBKXtmdW5jdGlvbiBnKCl7UHx8KFA9ITAsSS5jYWxsZWRSdW49ITAsaHx8KHAobCksSS5vblJ1bnRpbWVJbml0aWFsaXplZCYmSS5vblJ1bnRpbWVJbml0aWFsaXplZCgpLGZ1bmN0aW9uKCl7aWYoSS5wb3N0UnVuKWZvcigiZnVuY3Rpb24iPT10eXBlb2YgSS5wb3N0UnVuJiYoSS5wb3N0UnVuPVtJLnBvc3RSdW5dKTtJLnBvc3RSdW4ubGVuZ3RoOylBPUkucG9zdFJ1bi5zaGlmdCgpLEcudW5zaGlmdChBKTt2YXIgQTtwKEcpfSgpKSl9Uj4wfHwoZnVuY3Rpb24oKXtpZihJLnByZVJ1bilmb3IoImZ1bmN0aW9uIj09dHlwZW9mIEkucHJlUnVuJiYoSS5wcmVSdW49W0kucHJlUnVuXSk7SS5wcmVSdW4ubGVuZ3RoOylBPUkucHJlUnVuLnNoaWZ0KCksRi51bnNoaWZ0KEEpO3ZhciBBO3AoRil9KCksUj4wfHwoSS5zZXRTdGF0dXM/KEkuc2V0U3RhdHVzKCJSdW5uaW5nLi4uIiksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe0kuc2V0U3RhdHVzKCIiKX0pLDEpLGcoKX0pLDEpKTpnKCkpKX1pZihJLmludEFycmF5RnJvbVN0cmluZz1XLEkuY2NhbGw9ZnVuY3Rpb24oQSxnLEIsUSxDKXt2YXIgRT17c3RyaW5nOmZ1bmN0aW9uKEEpe3ZhciBnPTA7aWYobnVsbCE9QSYmMCE9PUEpe3ZhciBJPTErKEEubGVuZ3RoPDwyKTshZnVuY3Rpb24oQSxnLEkpe2YoQSxhLGcsSSl9KEEsZz16KEkpLEkpfXJldHVybiBnfSxhcnJheTpmdW5jdGlvbihBKXt2YXIgZz16KEEubGVuZ3RoKTtyZXR1cm4gdyhBLGcpLGd9fSxpPWZ1bmN0aW9uKEEpe3JldHVybiBJWyJfIitBXX0oQSksdD1bXSxlPTA7aWYoUSlmb3IodmFyIG89MDtvPFEubGVuZ3RoO28rKyl7dmFyIG49RVtCW29dXTtuPygwPT09ZSYmKGU9WCgpKSx0W29dPW4oUVtvXSkpOnRbb109UVtvXX12YXIgcixzPWkuYXBwbHkobnVsbCx0KTtyZXR1cm4gcj1zLDAhPT1lJiZWKGUpLHM9ZnVuY3Rpb24oQSl7cmV0dXJuInN0cmluZyI9PT1nP0QoQSk6ImJvb2xlYW4iPT09Zz9Cb29sZWFuKEEpOkF9KHIpfSxJLlVURjhUb1N0cmluZz1ELEkuYWxsb2NhdGVVVEY4PWZ1bmN0aW9uKEEpe3ZhciBnPXUoQSkrMSxJPWooZyk7cmV0dXJuIEkmJmYoQSxyLEksZyksSX0sVT1mdW5jdGlvbiBBKCl7UHx8XygpLFB8fChVPUEpfSxJLnJ1bj1fLEkucHJlSW5pdClmb3IoImZ1bmN0aW9uIj09dHlwZW9mIEkucHJlSW5pdCYmKEkucHJlSW5pdD1bSS5wcmVJbml0XSk7SS5wcmVJbml0Lmxlbmd0aD4wOylJLnByZUluaXQucG9wKCkoKTtyZXR1cm4gXygpLEEucmVhZHl9LCR5PV95O3ZhciBBRD1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt2YXIgZyxJO3luKHRoaXMsQSk7dmFyIEI9bmV3IFByb21pc2UoKGZ1bmN0aW9uKEEsQil7Zz1BLEk9Qn0pKTtyZXR1cm4gQi5yZXNvbHZlPWcsQi5yZWplY3Q9SSxCfXJldHVybiBmbihBLFt7a2V5OiJyZXNvbHZlIix2YWx1ZTpmdW5jdGlvbihBKXt9fSx7a2V5OiJyZWplY3QiLHZhbHVlOmZ1bmN0aW9uKEEpe319XSksQX0oKTtQcm9taXNlLndpdGhSZXNvbHZlcnN8fChQcm9taXNlLndpdGhSZXNvbHZlcnM9ZnVuY3Rpb24oKXt2YXIgQT17fTtyZXR1cm4gQS5wcm9taXNlPW5ldyBQcm9taXNlKChmdW5jdGlvbihnLEkpe0EucmVzb2x2ZT1nLEEucmVqZWN0PUl9KSksQX0pO3ZhciBnRCxJRCxCRD0wLFFEPTEsQ0Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7eW4odGhpcyxBKX1yZXR1cm4gZm4oQSxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1uZXcgQUQ7cmV0dXJuIHRoaXMubW9kdWxlPXtvblJ1bnRpbWVJbml0aWFsaXplZDpmdW5jdGlvbigpe0EucmVzb2x2ZSgpfSxvbkFib3J0OmZ1bmN0aW9uKGcpe0EucmVqZWN0KGcpfX0sJHkodGhpcy5tb2R1bGUpLEF9fSx7a2V5OiJkZXNjcnlwdEtleSIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFE9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjE2LEM9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOkJEO3RyeXt2YXIgRT1mdW5jdGlvbihBKXtpZigiIj09PUEpcmV0dXJuIiI7Zm9yKHZhciBnPVtdLEk9MDtJPEEubGVuZ3RoO0krKylnLnB1c2goQS5jaGFyQ29kZUF0KEkpKTtyZXR1cm4gZ30oc2VsZi5hdG9iKEEpKTtJPXRoaXMubW9kdWxlLl9tYWxsb2MoTnVtYmVyKEUubGVuZ3RoKSksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEUsSSksZz1nfHxuZXcgVWludDhBcnJheSxnPW5ldyBVaW50OEFycmF5KGcpLEI9dGhpcy5tb2R1bGUuX21hbGxvYyhnLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChnLEIpLHRoaXMubW9kdWxlLl9kZWNyeXB0S2V5KEMsSSxFLmxlbmd0aCxRLGcuYnl0ZUxlbmd0aCxCKX1jYXRjaChpKXtjb25zb2xlLmxvZyhpKX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKEkpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJLEIsUT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06QkQ7dHJ5e3ZhciBDPW5ldyBVaW50OEFycmF5KGcpO0k9dGhpcy5tb2R1bGUuX21hbGxvYyhBLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChBLEkpLEI9dGhpcy5tb2R1bGUuX21hbGxvYyhDLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChDLEIpLHRoaXMubW9kdWxlLl9kZXNjcnlwdChRLEksQS5ieXRlTGVuZ3RoLEIpO3ZhciBFPXRoaXMubW9kdWxlLkhFQVBVOC5zbGljZShJLEkrQS5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoRSl9Y2F0Y2godEQpe2NvbnNvbGUubG9nKHREKX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKEkpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0S2RzS2V5Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxDLEU9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjE2O3RyeXt2YXIgaT1uZXcgVWludDhBcnJheShnKSx0PW5ldyBVaW50OEFycmF5KEkpO0I9dGhpcy5tb2R1bGUuX21hbGxvYyhpLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChpLEIpLFE9dGhpcy5tb2R1bGUuX21hbGxvYyhBLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChBLFEpLEM9dGhpcy5tb2R1bGUuX21hbGxvYyh0LmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldCh0LEMpLHRoaXMubW9kdWxlLl9kZXNjcnlwdEtkc0tleShCLGkuYnl0ZUxlbmd0aCxRLEEuYnl0ZUxlbmd0aCxDLEUpfWNhdGNoKHREKXtjb25zb2xlLmxvZyh0RCl9ZmluYWxseXt0aGlzLm1vZHVsZS5fZnJlZShRKSx0aGlzLm1vZHVsZS5fZnJlZShDKSx0aGlzLm1vZHVsZS5fZnJlZShCKX19fSx7a2V5OiJkZXNjcnlwdENCQyIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCO3RyeXt2YXIgUT1uZXcgVWludDhBcnJheShnKTtyZXR1cm4gST10aGlzLm1vZHVsZS5fbWFsbG9jKEEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEEsSSksQj10aGlzLm1vZHVsZS5fbWFsbG9jKFEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KFEsQiksdGhpcy5tb2R1bGUuX2Rlc2NyeXB0Q0JDKEksQS5ieXRlTGVuZ3RoLEIpLHRoaXMubW9kdWxlLkhFQVBVOC5zbGljZShJLEkrQS5ieXRlTGVuZ3RoKX1jYXRjaCh0RCl7Y29uc29sZS5sb2codEQpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoSSksdGhpcy5tb2R1bGUuX2ZyZWUoQil9fX0se2tleToic2V0UmF3Iix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpRRDt0cnl7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoQSk7Zz10aGlzLm1vZHVsZS5fbWFsbG9jKEIuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEIsZyksdGhpcy5tb2R1bGUuX3NldFJhdyhnLEIuYnl0ZUxlbmd0aCxJKX1jYXRjaCh0RCl7Y29uc29sZS5sb2codEQpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoZyl9fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1vZHVsZSYmKHRoaXMubW9kdWxlPW51bGwpfX1dKSxBfSgpO2Z1bmN0aW9uIEVEKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwyND4+PjApKyhBW2crMV08PDE2KSsoQVtnKzJdPDw4KSsoQVtnKzNdfHwwKX12YXIgaUQ9e2RlY3J5cHRIZWFkZXI6ZnVuY3Rpb24oQSxnKXt2YXIgST0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO2dEPW5ldyBvbixJRD1uZXcgY24oZ0QudmlkZW9UcmFjayxnRC5hdWRpb1RyYWNrKTt2YXIgQj1uZXcgVWludDhBcnJheShBKSxRPWdELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPXtyZXM6bnVsbCx2aWRlb1RyYWNrOlEudmlkZW9UcmFjayxhdWRpb1RyYWNrOlEuYXVkaW9UcmFja307aWYoSSl7dmFyIEU9SUQucmVtdXgoITApLGk9RS52aWRlb0luaXRTZWdtZW50LHQ9RS5hdWRpb0luaXRTZWdtZW50O0MucmVzPWc/aTp0fXJldHVybiBDfSxkZWNyeXB0Qm9keTpmdW5jdGlvbihBLGcpe3ZhciBJPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sQj1uZXcgVWludDhBcnJheShBKSxRPWdELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPVEudmlkZW9UcmFjayxFPVEuYXVkaW9UcmFjayxpPUJuLmZpbmRCb3goQixbIm1vb2YiLCJ0cmFmIiwic2VuYyJdKVswXTtpZihpKXt2YXIgdCxlLG89Zz9udWxsPT1DfHxudWxsPT09KHQ9Qy5lbmN2KXx8dm9pZCAwPT09dD92b2lkIDA6dC5kZWZhdWx0X0lWX3NpemU6bnVsbD09RXx8bnVsbD09PShlPUUuZW5jYSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZGVmYXVsdF9JVl9zaXplLG49Qm4uc2VuYyhpLG8pO2c/Qy52aWRlb1NlbmM9bi5zYW1wbGVzOkUuYXVkaW9TZW5jPW4uc2FtcGxlcyxpRC5kZWNvZGVyRGF0YShDLEUpLGcmJkMuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZyxJPUEuZGF0YTtBLnVuaXRzPVtdO2Zvcih2YXIgQj0wLFE9SS5sZW5ndGgtMTtCPFE7KWc9RUQoSSxCKSxCKz00LEEudW5pdHMucHVzaChJLnN1YmFycmF5KEIsQitnKSksQis9Z30pKX12YXIgcj17cmVzOm51bGwsdmlkZW9UcmFjazpDLGF1ZGlvVHJhY2s6RX07aWYoSSl7dmFyIGE9SUQucmVtdXgoKSxzPWEudmlkZW9TZWdtZW50LGM9YS5hdWRpb1NlZ21lbnQ7ci5yZXM9Zz9zOmN9cmV0dXJuIHJ9LGRlY29kZXJEYXRhOmZ1bmN0aW9uKEEsZyl7RGEuZGVjb2RlckFFU0NUUkRhdGEoQSxnLChmdW5jdGlvbihBLGcsSSl7cmV0dXJuIHNlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0KEEsSSl9KSl9fTtvbm1lc3NhZ2U9ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcztpZigiZGVjcnlwdEJvZHkiPT09QS5kYXRhLm1ldGhvZClzZWxmLnAudGhlbigoZnVuY3Rpb24oKXt2YXIgST1BLmRhdGEuYXJncyxCPWlELmRlY3J5cHRCb2R5KEkuYnVmLEkuaXNWaWRlbyxJLm5lZWRSZW11eCk7Zy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0Qm9keSIsaWQ6QS5kYXRhLmlkLGFyZ3M6e2RhdGE6Qn19KX0pKTtlbHNlIGlmKCJkZWNyeXB0SGVhZGVyIj09PUEuZGF0YS5tZXRob2Qpe3ZhciBJPWlELmRlY3J5cHRIZWFkZXIoQS5kYXRhLmJ1ZixBLmRhdGEuaXNWaWRlbyk7dGhpcy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0SGVhZGVyIixpZDpBLmRhdGEuaWQsYXJnczp7ZGF0YTpJfX0pfWVsc2UgaWYoInVwZGF0ZVZhbHVlIj09PUEuZGF0YS5tZXRob2Qpe3RoaXMuY2FjaGVEYXRhPUEuZGF0YS52YWx1ZSxzZWxmLmF3TWFuYWdlcj1uZXcgQ0Q7dmFyIEI9c2VsZi5hd01hbmFnZXIuaW5pdCh0aGlzLmNhY2hlRGF0YS53YXNtQmluYXJ5RmlsZSk7c2VsZi5wPUIsQi50aGVuKChmdW5jdGlvbigpe3NlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0S2V5KGcuY2FjaGVEYXRhLnNlY3JldEtleSxnLmNhY2hlRGF0YS5kZWNyeXB0S2V5KX0pKX1lbHNlImRlc3Ryb3kiPT09QS5kYXRhLm1ldGhvZCYmc2VsZi5hd01hbmFnZXImJihzZWxmLmF3TWFuYWdlci5kZXN0cm95KCksc2VsZi5hd01hbmFnZXI9bnVsbCl9fSgpOwo=",Ti="undefined"!=typeof window&&window.Blob&&new Blob([atob(vi)],{type:"text/javascript;charset=utf-8"});function Ci(){var e;try{if(!(e=Ti&&(window.URL||window.webkitURL).createObjectURL(Ti)))throw"";return new Worker(e)}catch(t){return new Worker("data:application/javascript;base64,"+vi)}finally{!("undefined"!=typeof window&&navigator.userAgent.indexOf("Trident/")>0)&&e&&(window.URL||window.webkitlRL).revokeObjectURL(e)}}var gi=function(){function e(){R(this,e),EF(this),this.bodyId=0,this.isSwitchHeader=!1,this.workers={audio:null,video:null},this.init(),this.headerId=0,this.crypto=window.crypto||window.msCrypto}return u(e,[{key:"init",value:function(){for(var e=this,t=Object.keys(this.workers),n=0;n<t.length;n++){var U=t[n],F=new Ci;F.onmessage=function(t){e.emit(t.data.method,t.data)},this.workers[U]=F}}},{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],U=this;return this.updateHeaderId(),new Promise((function(F){var Q=Math.floor(1e3*Math.random()),i=U.getWorker(t);i&&i.postMessage({method:"decryptHeader",id:Q,buf:e,isVideo:t,needRemux:n});U.on("decryptHeader",(function e(t){t.id===Q&&(U.off("decryptHeader",e),F({data:t.args.data,vid:t.args.vid}))}))}))}},{key:"updateValue",value:function(e){for(var t=Object.keys(this.workers),n=0;n<t.length;n++){var U=t[n];this.workers[U].postMessage({method:"updateValue",value:e})}}},{key:"decryptBody",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],U=e instanceof ArrayBuffer?e:e.buffer,F=this,Q=F.bodyId+1;return F.bodyId=Q,new Promise((function(e){F.on("decryptBody",(function t(n){n.id===Q&&(F.off("decryptBody",t),e({data:n.args.data,id:Q,headerId:F.headerId}))}));var i=F.getWorker(t);i&&i.postMessage({method:"decryptBody",id:Q,args:{isVideo:t,id:F.workerIndex,aeskey:F.aeskey,buf:U,needRemux:n}},[U])}))}}]),e}(),Di=gi,Xi="danger_d_speed";var xi=function(){function e(t,n,U,F){var Q=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{logger:function(){},openLog:!1};R(this,e),this.bitrate=n,this.segment_duration=F||5e3,this.logger=Q.logger,this.openLog=Q.openLog,this.cdnHost=t.cdnHost,this._loadedPromise=new x,this._wasmPromise=new x,this.config=t,this.autoBitrateOpts=t.autoBitrateOpts||{},this.stall_penalty=this.autoBitrateOpts.stall_penalty||11,this.switch_penalty=this.autoBitrateOpts.switch_penalty||4,this.interval=this.autoBitrateOpts.interval||1e3;var i=t.progressTimer||1e3,l=this.autoBitrateOpts.startInterval||i;this.initInterval=.8*l,this._prealodMethod=t.preloadmethod||0,this._videoWidth=0,this._videoHeight=0,this._hasDeviceInfoChanged=!0,this._maxDefinition=this.autoBitrateOpts.maxDefinition||null,this._underflowDefinition=this.autoBitrateOpts.underflowDefinition||null,this.updateMediaInfos(U,!1)}return u(e,[{key:"onLoadWasm",value:function(){var e=this,t=this.module={onRuntimeInitialized:function(){e._wasmPromise.resolve()}};return(0,this.autoBitrateOpts.module)(t),this._wasmPromise}},{key:"updateMediaInfos",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._heightToDefitionConfig=new Map,this._bitrateToDefitionConfig=new Map,this._definitionToDefitionConfig=new Map,e?(this.mediaInfos=e,this.mediaInfos.dynamic_video_list.forEach((function(e){t._heightToDefitionConfig.set(e.vheight,e),t._bitrateToDefitionConfig.set(e.bitrate,e),t._definitionToDefitionConfig.set(e.definition,e)})),this._maxDefinition&&(this._defaultMaxBitrate=this._getBitrate(this._maxDefinition)),this._underflowDefinition&&(this._underflowBitrate=this._getBitrate(this._underflowDefinition))):n&&console.error("baseAbr mediaInfos null")}},{key:"_getBitrate",value:function(e){var t;return(null===(t=this._definitionToDefitionConfig.get(e))||void 0===t?void 0:t.bitrate)||-1}},{key:"parseMPD",value:function(){if(this.setDebugModel(this.openLog),this.mediaInfos){this.logger("mediaInfos",this.mediaInfos);try{for(var e=[],t=this.mediaInfos.dynamic_video_list,n=0;n<t.length;n++){var U=t[n];e.push({stream_id:"s".concat(n),bandwidth:U.bitrate||U.bandwidth,width:U.vwidth||U.width,height:U.vheight||U.height,codec:U.codecs||U.codec_type||"h264",frame_rate:Number(U.fps)||-1,segment_duration:this.segment_duration})}var F={v_adaptation:e},Q=JSON.stringify(F);this.module.ccall("parseMPD","null",["string"],[Q])}catch(i){}}else console.warn("mediaInfos is null")}},{key:"_getDefautSpeed",value:function(e){var t=0,n=window.navigator.connection;if(n&&n.downlink)t=1024*navigator.connection.downlink/8,this.logger("initSpeed connect",t);else try{t=parseFloat(X.getItem(Xi))||0,this.logger("initSpeed connect",t)}catch(U){}return 0===t&&(t=e&&e.historyAvspeed||0,this.logger("initSpeed history",t)),t}},{key:"setDebugModel",value:function(e){this.module._setDebugModel(e)}},{key:"updateBitrate",value:function(e){this.bitrate=e}},{key:"_updatePreloadSupplier",value:function(e,t){this.module._updatePreloadSupplier(e,t)}},{key:"updatePreloadSupplier",value:function(e){var t=this._getDefautSpeed();this._updatePreloadSupplier(t,e)}},{key:"getPreloadBitrate",value:function(){var e,t=null,n=[];try{this.logger("preloadMethod",this._prealodMethod),e=this.module._getPreloadBitrate(this._prealodMethod);for(var U=0;U<5;U++)n.push(this.module.HEAP32[e/Int32Array.BYTES_PER_ELEMENT+U]);var F={bitrate:n[0],pduration:n[1],preloadType:n[2],size:n[3],mediaType:n[4]};return this.logger("getPreloadBitrate",F),F}catch(Q){t=null,console.log("getPreloadBitrate",Q)}finally{this.module._free(e)}return t}},{key:"_updateDeviceInfo",value:function(e){try{if(this._hasDeviceInfoChanged){var t=window.devicePixelRatio||1;this.module._updateDeviceInfo(this._videoWidth||Number(this.config.width),this._videoHeight||Number(this.config.height),t,e||-1)}this._hasDeviceInfoChanged=!1}catch(n){console.log("_updateDeviceInfo")}}},{key:"preload",value:function(e){this.parseMPD(),this.updatePreloadSupplier(e),this._updateDeviceInfo(-1);var t=window.devicePixelRatio||1;return this.logger("baseAbr updateDeviceInfo width",this._videoWidth||Number(this.config.width),"height",this._videoHeight||Number(this.config.height),"dpr",t),this.getPreloadBitrate()}}]),e}();xi.SPPED_CACHE=Xi;var Li="ABR_CHANGE_A",Ii="UPDATE_AUTO_DESC",Gi="ABR_START_PROGRESS",Mi="MAX_BUFFER_CHANGE",Yi="ABR_LIMIT_BITRATE",wi="__auto__",Ki=0,_i=1,ji=-1,Hi=0,Pi=1,zi={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"},Oi=function(e){Z(n,e);var t=W(n);function n(e,U,F,Q,i){var l,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{logger:function(){},openLog:!1};R(this,n),(l=t.call(this,U,F,Q,i,r)).player=e,l.timerId=0,l.isOpenAutoDefi=!!l.autoBitrateOpts.isOpenAutoDefi,l._maxDefinition=l.autoBitrateOpts.maxDefinition||null,l.onPlayrateChange=l._onPlayrateChange.bind(m(l)),l.onPlay=l._onPlay.bind(m(l)),l._stop=l.stop.bind(m(l)),l._bufferRange=new Map,l._sortedBufferRange=[],l._lastCheckResolutionStamp=0,l._currentDefinition=null,l._isSeeking=!1,l._waitingStartTime=0,l._stallCount=0,l._seekState=Ki,l._stallState=Hi,l._videoCurrentTime=0,l._maxBitrate=-1,l.listeners=[{evt:"playbackrateChange",handler:l.onPlayrateChange},{evt:"ended",handler:l._stop},{evt:"error",handler:l._stop},{evt:"timeupdate",handler:l._onTimeUpdate.bind(m(l))},{evt:"addVideoBufferEnd",handler:l._bufferRangeUpdate.bind(m(l))},{evt:"canplay",handler:l._updateAutoDesc.bind(m(l))},{evt:"play",handler:l._onplayStart.bind(m(l))},{evt:Mi,handler:l._onMaxBufferChange.bind(m(l))},{evt:"seeking",handler:l._onSeeking.bind(m(l))},{evt:"seeked",handler:l._onSeekEnd.bind(m(l))},{evt:"waiting",handler:l._onWaiting.bind(m(l))},{evt:"playing",handler:l._onPlaying.bind(m(l))}],l._hasStart=!1,l.listeners.forEach((function(e){var t=e.evt,n=e.handler;l.player.on(t,n)})),l._isPaused=!1,l._hasAddFrament=!1,l._eventInfo={local_time_ms:0,internet_speed:0,buffer_length:0,last_bitrate:0,now_bitrate:0,play_speed:1},l._bitrateSet=[],l._generalInfo={},l._currentInAbr=!1,l._hasCalcTimelineLog=!1,l._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:[]}},l._abrMethod=l.autoBitrateOpts.method||0,l.logger("abr: constructor"),l._loopInterval=l.initInterval,l._tickCount=0,l._fps=30,T.install(),l.startTime=performance.now(),l.logger("time abr",(new Date).getTime()),l._maxCacheTimeVideo=l.config.preloadTime||5,l._maxCacheTimeAudio=l._maxCacheTimeVideo,l._prevDefinitionItem=null,l._currentItem=null,l._switchCount=0,l._switchBitrate=0,l._avgStatItems={};for(var a=Object.keys(zi),d=0;d<a.length;d++){var o=a[d],s=zi[o];l._avgStatItems[s]=new Ai}return l._qoeArgs=[0,0,0,0],l._abrUsed=-1,l._abrAlwaysOn=1,l._prelaodInfo=null,l._hasLogStartInfo=!1,l._hasExecuteAbrAlgo=!1,l._lastExecuteTimeInMs=0,l}return u(n,[{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.onPlay()}},{key:"_onSeeking",value:function(){this._isSeeking=!0,this.player.currentTime<this._videoCurrentTime?this._seekState=ji:this._seekState=_i,this.logger("seekState",this._seekState)}},{key:"_onSeekEnd",value:function(){this._isSeeking=!1}},{key:"_onWaiting",value:function(){var e=this;if(!(this._isSeeking||this._waitingStartTime>0)){for(var t=this.player.video.buffered,n=this.player.currentTime,U=!1,F=0;F<t.length;F++){var Q=t.start(F),i=t.end(F);if(Q<=n&&n<i-1&&this.player.readyState<HTMLVideoElement.HAVE_ENOUGH_DATA){U=!0;break}}U&&(this._defaultMaxBitrate||this._underflowBitrate)&&(this.player.emit(Yi),this._underflowBitrate>0&&(this._maxBitrate=this._underflowBitrate)),this._waitingStartTime=(new Date).getTime(),this._stallId=setTimeout((function(){clearTimeout(e._stallId),e._stallCount++,e._stallState=Pi}),200)}}},{key:"_onPlaying",value:function(){this._waitingStartTime=0,this._stallState=Hi,clearTimeout(this._stallId)}},{key:"initFps",value:function(){this.fpsDetection=new T,this.fpsDetection.start(),this._fps=this.fpsDetection.fps,this._hasDeviceInfoChanged=!0}},{key:"listenSize",value:function(){var e,t,n,U;this.mediaElem=this.player.video,this._onWinSizeChange=(e=this.onWinElemSizeChange.bind(this),t=1e3,n=!1,function(){for(var F=this,Q=arguments.length,i=new Array(Q),l=0;l<Q;l++)i[l]=arguments[l];var r=i,a=n&&!U;clearTimeout(U),U=setTimeout((function(){U=null,n||e.apply(F,r)}),t),a&&e.apply(F,r)}),window.addEventListener("resize",this._onWinSizeChange)}},{key:"onWinElemSizeChange",value:function(){if(this.mediaElem){var e=this.mediaElem.getBoundingClientRect();this._videoWidth=Math.floor(e.width),this._videoHeight=Math.floor(e.height),this._hasDeviceInfoChanged=!0}}},{key:"_onMaxBufferChange",value:function(e){var t=e.videoCacheTime,n=e.audioCacheTime;this._maxCacheTimeAudio=n,this._maxCacheTimeVideo=t}},{key:"_onTimeUpdate",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this._sortedBufferRange&&0!==this._sortedBufferRange.length&&this._currentInAbr){this._videoCurrentTime=this.player.currentTime;var n=Date.now();if(!(n-this._lastCheckResolutionStamp<1e3&&0!==this._lastCheckResolutionStamp)||t){this._lastCheckResolutionStamp=n;for(var U=this.player.currentTime,F=0,Q=this._sortedBufferRange.length-1,i=null;F<=Q;){var l=Math.floor(F+(Q-F)/2),r=this._sortedBufferRange[l];if(U<r.start)Q=l-1;else{if(!(U>=r.end)){i=r;break}F=l+1}}if(i){var a=this._bitrateToDefitionConfig.get(i.bandwidth),d=a&&a.definition;if(this._currentDefinition===d&&!t||!d)return void(d||this.logger("error defintion, mpd配置与接口配置不一致"));this._currentDefinition=d,this._prevDefinitionItem=this._currentItem,this._currentFps=a.fps,this._currentItem=a,this._emitAutoDescChange(d,!1,this._currentFps,a)}}}}},{key:"_emitAutoDescChange",value:function(e,t,n,U){this.player.emit(Ii,{definition:e,reset:t,fps:n,item:U,pre_item:this._prevDefinitionItem})}},{key:"_onplayStart",value:function(){this._hasStart=!0,this.logger("onplaystart")}},{key:"_updateAutoDesc",value:function(){var e=this;this._currentInAbr&&this._currentDefinition&&(this._updateId=setTimeout((function(){clearTimeout(e._updateId),e._emitAutoDescChange(e._currentDefinition,!1,e._currentFps,e._currentItem)}),0))}},{key:"_bufferRangeUpdate",value:function(e){if(void 0!==e.start){null===this._currentItem&&this._onTimeUpdate(null,!0);var t=e.start;this._hasAddFrament=!0,this._bufferRange.set(t,e);var n=E(this._bufferRange.values());this._sortedBufferRange=n.sort((function(e,t){return e.start-t.start})),this.avgStat(zi.DOWNLOAD_BITRATE,e.bandwidth)}}},{key:"_onPlayrateChange",value:function(){this.module&&this.updateBufferInfo()}},{key:"_onPlay",value:function(){var e=this;if(!this.isOpenAutoDefi)return this.logger("onPlay"),0;var t=0;try{this.logger("abr: loadeddata"),this.updateSwitchInfo(),this.parseMPD(),this.updateDeviceInfo();var U=n.getIsPlayAutoDefi(this.autoBitrateOpts);if(this.isOpenAutoDefi&&U){this._abrUsed=1;var F=this._getDefautSpeed(this.player);t=this._loopAbr(F),this.start(),this.logger("time abr start prgress",(new Date).getTime()),this.logger("time abr costTime",performance.now()-this.startTime),this.logger("abr onplay"),this.startTimer=setTimeout((function(){e._loopInterval=e.interval,clearTimeout(e.startTimer),e.logger("interval change")}),5e3)}}catch(Q){this.logger("abr: loadeddata error",Q),this.logger("time abr costTime err",performance.now()-this.startTime)}return t}},{key:"start",value:function(){if(this.logger("abr: start"),this._isPaused=!1,!this._hasCalcTimelineLog){var e=1===Math.floor(100*Math.random());this._abr_play_info.is_hint=e?1:0}this._hasCalcTimelineLog=!0,this._loop()}},{key:"_loop",value:function(){var e=this;this._isPaused||(clearTimeout(this.timerId),this.timerId=setTimeout((function(){if(!e.player.paused||!e.player.config.autoplay&&!e._hasStart){var t=e._hasAddFrament?void 0:e._getDefautSpeed(e.player);e._loopAbr(t)}e._loop()}),this._loopInterval))}},{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(t){}}},{key:"updateBufferInfo",value:function(e){var t=this.player.playbackRate,n=this.bufferLength,U=e||Math.floor(this.player.downloadSpeed);this._tickCount<5&&0===U&&(U=this._getDefautSpeed(this.player),this.logger("initSpeed fix"));var F=-1===this._maxBitrate?this._defaultMaxBitrate:this._maxBitrate;return this.logger("maxCacheTimeAudio:",this._maxCacheTimeAudio,"maxCacheVideoTime",this._maxCacheTimeVideo,"seekState",this._seekState,"stallState",this._stallState,"maxBitrate",F),this.module._updateBufferInfo(t,this._maxCacheTimeAudio,this._maxCacheTimeVideo,n,n,U,this._seekState,this.player.currentTime,this._stallState,F),this._seekState=Ki,this._eventInfo={internet_speed:U,buffer_length:n,last_bitrate:this.bitrate,play_speed:t},this.logger("playRate:",t,"buff:",n,"downloadSpeed:",U),{buffer:n,downloadSpeed:U}}},{key:"updateSwitchInfo",value:function(){var e=(new Date).getTime();this._openTimeMs=e,this._abr_play_info.start_play_time_ms=e;var t,n,U=this.player.config.preloadTime||50,F=(n=(t=e).toString(16)).length<=8?{high:0,low:t}:{high:parseInt(n.substr(0,n.length-8),16),low:parseInt(n.substr(n.length-8),16)},Q=this.autoBitrateOpts.noStallCheckTime||5,i=this.openLog;this.logger("openTime:",e,"this.logger",i),this.module._updateSwitchInfo(F.low,F.high,Q,i,this.stall_penalty,this.switch_penalty);var l=this._mediaList.video,r=l.map((function(e){var t=e.bandwidth,n=e.bitrate;return t||n}));this._bitrateSet=r.map((function(e,t){return{bitrate:e,codecs:l[t].codecs||l[t].codec_type}})),this._generalInfo={max_cache_time:U,bitrate_set:this._bitrateSet,segment_duration:this.segment_duration,preload_info:{},startup_info:{}}}},{key:"updatePreloadCacheInfo",value:function(e){try{this._prelaodInfo=e,this.logger("update preloadInfo",e),e&&e.item_num!==e.items.length&&(this.logger("preloadInfo invalid"),this._prelaodInfo=null)}catch(t){this.logger("updatePreloadCacheInfo",t),this._prelaodInfo=null}}},{key:"updatePreloadLogInfo",value:function(e){this._generalInfo.preload_info=e||{}}},{key:"_updatePreloadInfo",value:function(){try{var e=this.player.getPreloadInfos();if(e){var t=e.preloadInfo,n=e.abr;this.updatePreloadLogInfo(t),n&&this.updatePreloadCacheInfo(t)}if(this.logger("_updatePreloadInfo preloadinfos",e),null!=this._prelaodInfo){var U=JSON.stringify(this._prelaodInfo);this.module.ccall("updatePreloadInfo","null",["string"],[U])}else this.logger("_updatePreloadInfo preloadinfo null, no preload")}catch(F){this.logger("_updatePreloadInfo err",F)}}},{key:"_loopAbr",value:function(e){var t;this._tickCount++;var n=[];try{this.updateDeviceInfo();var U=this.updateBufferInfo(e),F=U.downloadSpeed,Q=U.buffer;t=this.module._getPredictedBitrate(this.bitrate,this._abrMethod);for(var i=0;i<7;i++)n.push(this.module.HEAP32[t/Int32Array.BYTES_PER_ELEMENT+i]);var l=n[0],r=1===n[1];this._eventInfo.now_bitrate=l,this._eventInfo.local_time_ms=(new Date).getTime();var a=0;if(l!==this.bitrate&&0!==l){var d=this.bitrate;a=Math.abs(d-l);for(var o=[],s=this.player.video.buffered,B=0;B<s.length;B++)o.push({start:s.start(B),end:s.end(B)});var c=this._videoWidth||Number(this.config.width),R=this._videoHeight||Number(this.config.height),V=(new Date).getTime(),u={speed:"".concat(F," KB/s"),buffer_length:"".concat(Q," s"),video_pos:this.player.currentTime,all_buffers:o,seek_state:this._seekState,stall_state:this._stallState,screen_width:c,screen_height:R,dpr:window&&window.devicePixelRatio,playbackRate:this.player.playbackRate,bitrateSet:this._bitrateSet,abrMethod:this._abrMethod,delta:this._hasExecuteAbrAlgo?V-this._lastExecuteTimeInMs:0};this._lastExecuteTimeInMs=V,this._hasExecuteAbrAlgo=!0,this.player.emit(Li,this.bitrate,l,r,JSON.stringify(u)),this.logger("abr loop predicte:",l,"willStall:",r,"switchBitrate",a,"cur",d),this.bitrate=l}this._hasLogStartInfo||(this._hasLogStartInfo=!0,this._generalInfo.startup_info={predict_bitrate:l,download_speed:F,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}),this.player.emit("ABR_LOOP"),this.onAbrLoop(F,n[2],a,n.slice(3))}catch(h){this.logger("abr error",h),console.log("error",h)}finally{this.module._free(t)}return this.bitrate}},{key:"stop",value:function(){!0===(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&(this._abrAlwaysOn=-1),clearTimeout(this.timerId),this._isPaused=!0,this.logger("abr: stop")}},{key:"destroy",value:function(){var e=this;this._stop(),this.listeners.forEach((function(t){var n=t.evt,U=t.handler;e.player.off(n,U)})),this.player=null,this._heightToDefitionConfig=null,this._bitrateToDefitionConfig=null,this._bufferRange=null,this._sortedBufferRange=null,this.module=null,clearTimeout(this._stallId),clearTimeout(this._updateId),clearTimeout(this.startTimer),window.removeEventListener("resize",this._onWinSizeChange),this.fpsDetection&&this.fpsDetection.stop(),this._maxBitrate=-1,this.player=null}},{key:"eventInfo",get:function(){return this._eventInfo}},{key:"generalInfo",get:function(){return this._generalInfo}},{key:"bufferLength",get:function(){var e=this.player.getBufferedRange(),t=this.player.video.currentTime,n=e[1]-Math.max(e[0],t);return n=Math.max(0,n).toFixed(2),parseFloat(n)}},{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=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(this._qoeArgs=U,this._currentItem&&this.avgStat(zi.PLAYBACK_BITRATE,this._currentItem.bitrate),this.avgStat(zi.DOWNLOAD_NETWORK_SPEED,1e3*e*8),this.avgStat(zi.PREDICT_NETWORK_SPEED,t),this.avgStat(zi.BUFFER_LENGTH,this.bufferLength),this.avgStat(zi.QOE,this.getQoeRelValue(0)),n>0&&(this._switchCount++,this._switchBitrate+=n),this._abr_play_info.is_hint){var F=this,Q=((new Date).getTime()-this.openTimeMs)/1e3;Q=parseFloat(Q.toFixed(2)),this._abr_play_info.playback_info.internet_speed_record.push([Q,F.downloadSpeed]),this._abr_play_info.playback_info.play_bitrate_record.push([Q,F.nowBitrate]),this._abr_play_info.playback_info.buffer_length_record.push([Q,F.bufferLength]),this._abr_play_info.playback_info.play_speed_record.push([Q,this.player.playbackRate]),this._abr_play_info.playback_info.qoe_record.push([Q,this.getQoeRelValue(0)]),this._abr_play_info.playback_info.qoe_a_record.push([Q,this.getQoeRelValue(1)]),this._abr_play_info.playback_info.qoe_b_record.push([Q,this.getQoeRelValue(2)]),this._abr_play_info.playback_info.qoe_c_record.push([Q,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:"getAbrVVStats",value:function(){for(var e={},t=Object.keys(zi),n=0;n<t.length;n++){var U=t[n],F=zi[U],Q=this._avgStatItems[F];e[F]=Q.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}}],[{key:"getIsPlayAutoDefi",value:function(e){return!!e.isPlayAutoDefi}}]),n}(xi),Ai=function(){function e(){R(this,e),this.total=0,this.count=0}return u(e,[{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)}}]),e}(),qi=function(){function e(t){R(this,e),this.onTick_=t,this.cancelPending_=null}return u(e,[{key:"tickAfter",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.stop();var U=!0,F=null;this.cancelPending_=function(){window.clearTimeout(F),U=!1};return F=window.setTimeout((function(){U&&(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)}}]),e}(),$i={stallSkip:.1,stallCount:3,stallTimer:1,failCount:2},el=function(){function e(t,n){var U=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;R(this,e),this.player=t,this.mediaElem=t.video,this.config=Object.assign({},n,$i),this.timer=new qi((function(){U.onGapJump()})),this.inBufferTimer=new qi((function(){U._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=F,this.player.on(It,(function(e){U.requests=e})),!1!==this.config.useGapJump&&this._start()}return u(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,U=this._checkIfNextRequestFailed(e,t),F=this._checkIfNextRequestFailed(e,n);if(U.result||F.result){var Q=U.result?U.end:F.end;Q=Q<this.player.duration-.5?Q+.5:this.player.duration,this.player.currentTime=Q,this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap_req",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*Q)}})}}}},{key:"_checkIfNextRequestFailed",value:function(e,t){for(var n=0;n<t.length;n++){var U=t[n],F=U.start-e<1.5,Q=U.start<=e&&e<=U.end,i=403!==(null==U?void 0:U.response.status);if(F&&Q&&U.count>=this.config.failCount&&i)return{end:U.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,U=this.config.gapDetectionThreshold||.5,F=this.mediaElem.currentTime,Q=this._getIndex(t,F,U);if(null!==Q&&(0!==Q||this.segmentAppended)){var i=t.start(Q);if(!(i>this.mediaElem.duration)){var l=i-F,r=l<=n;l<e.BROWSER_GAP_TOLERANCE||r&&(this.mediaElem.currentTime=this.isSafari?i+.1:i,pt.gap("gapJump gapIndex",Q,"isGapSamll",r,"jumpLargeGap",!1,"currentTime",this.mediaElem.currentTime),.08!==i&&this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*i)}}))}}}}}},{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,U=[],F=0;F<t.length;F++){var Q=t.start(F),i=t.end(F);U.push({start:Q,end:i}),e<Q-.1||(e>i-.5||(n=!0))}var l=this.mediaElem.buffered,r=l.length;r>0&&this.mediaElem.duration===l.end(r-1)&&(n=!0);var a=this.mediaElem.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA;if(n&&a&&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,U))}catch(d){}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 U=this._getBuffered(e),F=null,Q=0;Q<U.length;Q++){if(U[Q].start>t&&(0===Q||U[Q-1].end-t<=n)){F=Q;break}}return F}},{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}}]),e}();el.BROWSER_GAP_TOLERANCE=.001;var tl=Yt,nl=function(){function e(t){var n=this;R(this,e),h(this,"_onChangeConfig",(function(e){if(e){var t,U=e.nextBufferLength===(null===(t=n.config)||void 0===t?void 0:t.minBufferLength);if(n._nextBufferLength=e.nextBufferLength,e.nextBufferLength&&!U)try{n.loadData()}catch(F){}}})),h(this,"startProgressTimer",(function(){n._pluginInst.info({msg:"startProgressTimer"});var e=n;n._loadDataTime=0;var t=n.player,U=n.config;t&&e&&e.isDashCanUse&&e.dash.mse&&(e.dash.mse.progressTimer=new C,e.dash.mse.progressTimer.repeat((function(){n._checkAndLoadData("timer")}),1e3*U.tickInSeconds||U.progressTimer||Jt),n._startCheckBufferBreakTimer(),n.player.on(r.Events.TIME_UPDATE,n._onTimeUpdate))})),h(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())})),h(this,"_checkAndLoadData",(function(){var e=n.config;if(n.isDashCanUse&&n.dash.mse&&n.dash.mse.progressTimer){var t=1e3*e.tickInSeconds||e.progressTimer||Jt,U=WU.nowTime();U-n._loadDataTime>=t&&(n._loadDataTime=U,n.checkRemoveBuffer(),n.handleUrlExpire(),n.loadData(void 0),n.isEnded())}})),h(this,"_onAutoDescChange",(function(e){var t=e.definition,U=e.reset,F=e.fps,Q=e.item;n.updateAutoDefiDesc(t,U,F,Q)})),this._pluginInst=t.pluginInst;var U=this._pluginInst,F=U.player,Q=U.config;this._minDuration=1/0,this.player=F,this.config=Q,this.startTimestamp=(new Date).getTime(),this.lastDefiIdx=void 0,this.__isDashCanUse=!1,this.preloadBufferThreshold=this.config.preloadBufferThreshold||.5,this.abrInstance=null,this.definitions=[];var i=this.config.autoBitrateOpts||{};this.isPlayAutoDefi=Oi.getIsPlayAutoDefi(i),this.isOpenAutoDefi=!!i.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.getPlayInfoTimestamp=this.startTimestamp/1e3;var l=Q.dashOpts.dynamic_video.dynamic_video_list,a=Q.dashOpts.dynamic_video.dynamic_audio_list;l&&l.length>0?this.urlExpireTimestamp=Q.dashOpts.dynamic_video.dynamic_video_list[0].url_expire||0:a&&a.length>0&&(this.urlExpireTimestamp=Q.dashOpts.dynamic_video.dynamic_audio_list[0].url_expire||0),this.gapJumpInst=new el(F,Q),WU.on(F,"addVideoBufferEnd",(function(){n.gapJumpInst.onSegmentAppend()}),"dashDestroy"),this._nextBufferLength=this.config.nextBufferLength,WU.on(F,Rn.CHANGE_FLYING_PLUGIN_CONFIG,this._onChangeConfig,"dashDestroy"),this._lastRemoveTimestamp=0}var t,n;return u(e,[{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,U){e.definition===n.defaultDefinition&&(t.dash.selectedIdx=U)})),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(){return this.dashVideoEncrypted||this.dashAudioEncrypted?this.config.useEME?1:2:0}},{key:"isEnded",value:function(){var e=this.dash,t=this.player,n=this.mse,U=this.config;if("vod"===e.type)if(t.ended)pt.log("player.ended === true"),"safari"===r.Sniffer.browser&&(t.pause(),t.emit("ended"));else{var F=U.duration||t.duration||e.mpd.duration;if(t.duration&&(F=Math.min(F,t.duration)),e.mpd.duration&&(F=Math.min(F,e.mpd.duration)),F-this._minDuration<10&&(F=Math.min(F,this._minDuration)),F>0&&F-t.currentTime<1){var Q=this._findRangeForPlaybackTime(t.currentTime)||{start:0,end:0};pt.log("range",Q,"current",t.currentTime,"duration",F);var i=Math.min(Q.end,t.duration),l=t.currentTime-i>=0&&Q.end>0,a=i-t.currentTime<1&&Q.end>0;(l||a)&&(pt.log("isEnded execute, isOver",l,"isClosed",a),console.log("isEnded execute, isOver",l,"isClosed",a),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(r.Events.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 U in this)delete this[U]}},{key:"bindComEvent",value:function(){var e=this;this._lastSeekTime=null;var t=this.player,n=this.config;WU.on(t,"error",e.clearProgressTimer.bind(e),"dashDestroy"),WU.on(t,"ended",e.clearProgressTimer.bind(e),"dashDestroy"),WU.on(t,"ended",(function(){e.ended=!0}),"dashDestroy");var U=function(){var U=c(o().mark((function U(){var F,Q,i,l,r,a,d,s,B,c;return o().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:if(pt.log("dash onSeeking",t.currentTime,"duration",t.duration),e.isDashCanUse&&n.dashOpts&&e.mse){U.next=3;break}return U.abrupt("return");case 3:if(Q=e.ended,e.ended=t.ended,!Q){U.next=8;break}return this.isOpenAutoDefi?this._pluginInst.next(t.currentTime,"NEXT",t.config.DASHPlugin,!0):e.startProgressTimer(),U.abrupt("return");case 8:if(i=t.getBufferedRange(t.buffered)[1],l=0===i,pt.log("dash onseeking, bufferEnd:".concat(i,", outBuffer:").concat(l,", \n switching:").concat(e.switching,", isFull:").concat(null===(F=e.mse)||void 0===F?void 0:F.isFull(Ge.VIDEO))),!l||e.switching){U.next=16;break}return e.abortLoading=!0,U.next=15,e.dash.abortLoadingTasks();case 15:pt.log("dash cancel loading task execute");case 16:if(e.dash){U.next=18;break}return U.abrupt("return");case 18:if(e.seekingCurSegment=e.dash.mpd.getCurSegment(),e.dash.mpd.setSegmentIndexByTime(t.currentTime),e.mse){U.next=22;break}return U.abrupt("return");case 22:if((r=e.mse).isFull&&(r.isFull(Ge.VIDEO)||r.isFull(Ge.AUDIO)))e.checkRemoveBuffer(!0,!0);else if(!l&&n.removeBufferWhenSeekInBuffer)try{a=t.getBufferedRange(e.mse.buffered("video"))[1],d=t.getBufferedRange(e.mse.buffered("audio"))[1],e._clearBufferByTime(Math.max(a,d),t.duration)}catch(o){}e.abortLoading=!1,l&&e._checkAndLoadData(),s=n.useDurationBackoff||!1,B=Date.now()/1e3,c=t.duration-t.currentTime<1,s&&c&&(!this._lastSeekTime||this._lastSeekTime<B-1)&&(this._lastSeekTime=B,t.currentTime=t.duration-1),e.gapJumpInst&&e.gapJumpInst.onSeeking(),l&&e.dash.clearFailedSegment();case 32:case"end":return U.stop()}}),U,this)})));return function(){return U.apply(this,arguments)}}();WU.on(t,"seeking",U,"dashDestroy");WU.on(t,"seeked",(function(){pt.log("dash onSeeked",t.currentTime),e.seeking=!1,e.isEnded(),e.dash.isAllAppend()&&(e.mse.endOfStream(),pt.log("dash seeked endofstream"))}),"dashDestroy"),WU.on(t,"dashDestroy",e.dashDestroy.bind(this))}},{key:"_seekingCheckBuffer",value:function(){var e=this;if(this.dash)for(var t=[Ge.VIDEO,Ge.AUDIO],n=0;n<t.length;n++)for(var U=t[n],F=this.dash.mpd.getBuffered(U),Q=function(){var t=F[i],n=e.player.currentTime,Q=t.start<=n&&n<=t.end;if(!Q&&t.end-t.start<.5){pt.log("remove buffer _seekingCheckBuffer",t.start,t.end,"curTime",n,"inBuffer",Q,"mediaType",U,"mediaBuffered",F);var l=e.removeBuffer(U,t.start,t.end);l&&l.catch((function(e){pt.log("_seekingCheckBuffer start",t.start,"end",t.end,e.message)}))}},i=0;i<F.length;i++)Q()}},{key:"destroy",value:function(){this.player.emit("dashDestroy")}},{key:"_findRangeForPlaybackTime",value:function(e){var t=this.player.buffered;if(t)for(var n=0;n<t.length;n++)if(WU.round(t.start(n))<=WU.round(e)&&WU.round(t.end(n))>=WU.round(e))return{start:WU.round(t.start(n)),end:WU.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,U=this.player,F=this.config;if(n.switching||n.abortLoading)pt.log("loadData switching",n.switching);else if(n.dash){var Q,i=F.maxBufferLength||F.preloadTime||50,l=n.dash.mpd.mediaList.video;if(l&&l.length>0&&l[l.selectedIdx]){var r=l[l.selectedIdx].bandwidth;Q=l[l.selectedIdx].definition||this.bandwidth2item[r].definition}if(F.dynamicPreloadTimeOpts&&Q){var a=F.dynamicPreloadTimeOpts[Q];a&&(i=a)}var d=!1;U.paused&&(d=!0),i=d?U.isInstNext&&this._nextBufferLength>=0?this._nextBufferLength:F.minBufferLength:n.dash.getAdaptCacheBuffer(i),n.preloadTime!==i&&(n.preloadTime=i,pt.log("maxCacheTimeAudio change",i),U.emit(Mi,{videoCacheTime:i,audioCacheTime:i})),e||(e=U.currentTime);var o=this._findRangeForPlaybackTime(e),s=o&&Math.ceil(Math.max(o.end,o.rawEnd))||Math.floor(e);if(n.dash.isOpenPCDN((null==o?void 0:o.end)||0),!(s>e+i)){var B=n.dash.getPCDNInOutBuffer(),c={force_set_min:d,buffer_dur:i,load_size:-1,load_tar_dur:-1,load_dur:-1,in_buf:B.PCDNInBuffer||-1,out_buf:B.PCDNOutBuffer||-1};n.dash.pushDynamicBufferServiceRes(c),n.dash.seek(s,U.currentTime,t,i)}}}},{key:"startCheckCanplayTimer",value:function(){var e=this,t=this.player,n=this.config;if(t&&e&&!n.disableCanplayCheck){e.checkCanplayTimer=new C,e.checkCanplayTimer.repeat((function(){t&&e&&e.isDashCanUse&&e.checkCanplayTimer&&t.errorHandler&&(t.enterIsHide?(pt.log("视频已起播,重置标记"),e.dashNoCanplay=0,e.clearCheckCanplayTimer()):e.dashNoCanplay||"visible"!==document.visibilityState||(e.dashNoCanplay=1,pt.log("未起播计时开始!持续".concat(mt,"毫秒没有获取到init分片则确认没有起播")),e.dashNoCanplayTimer=setTimeout((function(){e.dashNoCanplayTimer=null,1===e.dashNoCanplay&&!1===t.enterIsHide&&(t.dashState!==Tt?(e.dashNoCanplay=2,pt.log("确认未获取到init分片,没有起播!!!"),e.clearCheckCanplayTimer(),t.errorHandler(new LF(Je,me.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"}))):n.disableDashNoCanplayCheck||(pt.log("未起播计时开始!持续".concat(1e4,"毫秒则确认没有起播")),e.dashNoCanplayTimer=setTimeout((function(){e.dashNoCanplayTimer=null,1===e.dashNoCanplay&&!1===t.enterIsHide&&(e.dashNoCanplay=2,pt.log("确认没有起播!!!"),e.clearCheckCanplayTimer(),t.errorHandler(new LF(Je,me.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"})))}),1e4)))}),mt)))}),n.progressTimer||Jt)}}},{key:"clearCheckCanplayTimer",value:function(){this.checkCanplayTimer&&(this.checkCanplayTimer.clear(),this.checkCanplayTimer=null),this.dashNoCanplayTimer&&(clearTimeout(this.dashNoCanplayTimer),this.dashNoCanplayTimer=null,this.dashNoCanplay=void 0)}},{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;this.config.disableBufferBreakCheck||(this.clearBufferBreakTimer(),this.bufferCheckTimer=setTimeout((function(){e._onBufferBreakCheck(),e._startCheckBufferBreakTimer()}),Jt))}},{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||(pt.log("视频没有卡死,重置卡死标记"),e.dashBufferBreak=0,clearTimeout(e.dashBufferBreakTimer),e.dashBufferBreakTimer=null):e.dashBufferBreak||(e.dashBufferBreak=1,pt.log("卡死计时开始!持续".concat(n.waitingTimeOut,"毫秒则确认卡死")),e.dashBufferBreakTimer=setTimeout((function(){if(1===e.dashBufferBreak){e.dashBufferBreak=2,pt.log("确认卡死!!!");var t=document.hidden||"hidden"===document.visibilityState?me.WAITING_TIMEOUT_ERROR:me.BUFFERBREAK_ERROR;e.dash.emit("error",new LF(Je,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(Ge.VIDEO)||this.mse.isFull(Ge.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,U=this.config,F=(new Date).getTime(),Q=this._isMseFull(),i=e||Q;if(!(F-this._lastRemoveTimestamp<1e3*U.removeBufferLen)||i){this._lastRemoveTimestamp=F;var l=n.currentTime,r=n.getBufferedRange(),a=r&&r[0]>=0&&l-r[0]>U.removeBufferLen;pt.log("checkRemoveBuffer","mseFull",Q,"force",e,"needRemove",a),(i||a)&&this._clearBuffer(i,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],U=this.player;if(this.isDashCanUse&&this.mse){var F=U.getBufferedRange()[1]>0,Q=U.currentTime,i=WU.getBufferData(null==U?void 0:U.buffered,Q),l=i.beforeBufLen,r=i.afterBufLen,a=i.beforeLastBuffEnd,d=i.afterFirstBuffEnd,o=i.afterFirstBuffStart;F||(Q=Q-a<15?a:Q);var s=this._findClosetGop(Q,!1),B=t&&n&&!F,c=B?.1:5;if(s&&this._clearBufferByTime(0,s,(function(t){B&&(null==t?void 0:t.removeDur)<5&&e._clearBuffer(!0,!0)})),t){pt.log("clearBuffer isFull","isSeeking",n,"isInBuffer",F,"beforeBufLen",l,"afterBufLen",r,"afterFirstBuffEnd",d,"afterFirstBuffStart",o,"beforeLastBuffEnd",a);var R=0,V=0;if(n&&!F){if(V=this._findClosetGop(o,!0,2),R=this._findClosetGop(d,!1,1),pt.log("clearBuffer isFull removeStart",V,"removeEnd",R),0===l){for(var u=this.player.video.buffered,h=0,Z=u.length-1;Z>=0;Z--){var S=u.start(Z),p=u.end(Z);if((h+=p-S)>10){V=WU.round(S),R=WU.round(p);break}}pt.log("clearBuffer isFull beforeBufLen 0 removeStart",V,"removeEnd",R)}V<R?this._clearBufferByTime(V,R,(function(t){B&&(null==t?void 0:t.removeDur)<5&&e._clearBuffer(!0,!0)})):this._checkBufferFull(c)}else this._checkBufferFull(c)}}}},{key:"_findClosetGop",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,U=this.dash.mpd.mediaList.video;U[U.selectedIdx]||(U=this.dash.mpd.mediaList.audio);var F=U[U.selectedIdx].mediaSegments;if(t){for(var Q=0,i=0;i<F.length;i++)if(F[i].startRaw>e&&++Q>n)return F[i].start}else for(var l=0,r=F.length-1;r>-1;r--)if(F[r].endRaw<e&&++l>n)return F[r].end}},{key:"_getFirstGopEnd",value:function(){var e=this.dash.mpd.mediaList,t=e.video.length>0,n=this.dash.mpd.mediaList.audio.length>0,U=0;if(t){var F=e.video[e.video.selectedIdx].mediaSegments[0].end;U=Math.max(U,F)}if(n){var Q=e.audio[e.audio.selectedIdx].mediaSegments[0].end;U=Math.max(U,Q)}return{clearMinStart:U,hasVideo:t,hasAudio:n}}},{key:"clearBufferDirect",value:function(e,t,n){if(!(t>=n)){var U=this.removeBuffer(e,t,n);U&&U.catch((function(){pt.log("mediaType",e,"catch clearBufferDirect start: ".concat(t," end: ").concat(n))}))}}},{key:"_clearBufferByTime",value:function(e,t,n){var U=this,F=[],Q=this._getFirstGopEnd(),i=Q.clearMinStart,l=Q.hasVideo,r=Q.hasAudio;e=Math.max(i,e),pt.log("removeBuffer clearBufferByTime start: ".concat(e," end: ").concat(t," clearMinStart:").concat(i));var a=this.getBufferDur();if(e>t)return pt.log("clearBuffer return clearBufferByTime start: ".concat(e," end: ").concat(t," clearMinStart:").concat(i)),void n({removeDur:0});if(l){var d=this.removeBuffer(Ge.VIDEO,e,t);d&&F.push(d)}if(r){var o=this.removeBuffer(Ge.AUDIO,e,t);o&&F.push(o)}Promise.all(F).then((function(){var e=U.getBufferDur(),t=a-e;t>0&&(U.player.emit("removeBuffer",{removeDur:t}),pt.log("removeBuffer dur,",t,"oldTotalBuffer",a,"newTotalBuffer",e),U.player.emit("removeBufferEnd"),n&&n({removeDur:t}))})).catch((function(e){pt.log("removeBuffer error",e),n&&n({removeDur:0})}))}},{key:"removeBuffer",value:function(e,t,n){if(this.dash.mpd.clearBuffer(t,n,e),this.mse.remove&&!this._pluginInst.softVideo){var U=this.mse.remove(e,t,n);return U&&U.catch((function(){})),U}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,U=0,F=t.length;U<F;U++)n+=t.end(U)-t.start(U);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],U={width:n.width,height:n.height};e.emit("RESOLUTION_UPDATE",U)}else e.emit("RESOLUTION_UPDATE")}catch(F){e.emit("RESOLUTION_UPDATE")}}},{key:"updateDashType",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=X.getItem(wt),U=Mt;e=t||n===U.BACK?U.MAIN:U.BACK,X.setItem(wt,e)}},{key:"changeMainBackUrl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:tl.INIT;if(!(arguments.length>1&&void 0!==arguments[1]&&arguments[1])&&this._pluginInst){var t=this._pluginInst.config,n=X.getItem(wt),U=!1;if((e===tl.INIT&&n===Mt.BACK||e===tl.ERR)&&(U=!0),pt.log("curDashType",n,"changeState",e,"needChange",U),U){var F=t.dashOpts.dynamic_video.main_url,Q=t.dashOpts.dynamic_video.backup_url_1;t.dashOpts.dynamic_video.main_url=Q,t.dashOpts.dynamic_video.backup_url_1=F,WU.exchangeListUrl(t.dashOpts.dynamic_video.dynamic_video_list),WU.exchangeListUrl(t.dashOpts.dynamic_video.dynamic_audio_list)}var i=t.dashOpts.dynamic_video.main_url;return this._checkUrlRange(i),t}}},{key:"_checkUrlRange",value:function(e){var t=this._pluginInst.config,n=t.url_range_domains||[],U=WU.validateUrlRange(n,e);t.useUrlRange=U}},{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,U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,F=this.player,Q=(this.config.autoBitrateOpts||{}).autoDefiText||"auto";F.emit("ABR_AUTO_DESC_CHANGE",Q,t?void 0:e,n,U),t||this._pluginInst.setCurrentDefitionInfos("自动 ".concat(e),U)}},{key:"_abrLoadMetaSuccess",value:function(e,t,n){var U=this,F=this.dash,Q=this.config,i=F.mpd.mediaList.video;this.abrInstance&&this.abrInstance.updateBitrate(U.defiIdMap[e].bitrate),n&&(this.lastDefiIdx=e),U.selectedIdx=t,Q.defaultDefinition=i[U.selectedIdx].definition}},{key:"_startLoadInitSegment",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],U=new x,F=this,Q=this.dash,i=this.config;if(!Q.mpd)return pt.log("_startLoadInitSegment dash.mpd is null"),void U.reject();var l=Q.mpd.mediaList.video,r=l.selectedIdx;return l.every((function(Q,a){if(Q.id===e){r=a,F.switching=!0;var d=l[r].wrapperData;if(d)(F.dashVideoEncrypted||F.dashAudioEncrypted)&&!1===i.useEME&&F.crypto&&F.crypto.updateHeaderId(),t._abrLoadMetaSuccess(e,r,n),U.resolve(d);else{F._makeInitSegemntRequestWithRetry("video",r,!1,(function(){F.switching=!1})).then((function(F){t._abrLoadMetaSuccess(e,r,n),U.resolve(F)})).catch((function(e){F.switching=!1,pt.log("_makeInitSegemntRequestWithRetry",JSON.stringify({msg:e.message}))}))}return!1}return!0})),U}},{key:"setCurrentDefinition",value:function(){try{var e=this.dash,t=e.mpd.mediaList.video,n=t[t.selectedIdx],U=n.definition,F=n.bandwidth;this._pluginInst.setCurrentDefitionInfos(U,this.definition2item[U]),e.updateDynamicBufferServiceBitrate(F),e.checkPCDN()}catch(Q){console.log("setCurrentDefinition error",Q)}}},{key:"_emitDefinitionChangeDetailEvent",value:function(e){this.player.emit("definitionChangeDetail",e)}},{key:"setPlayerCurDefinition",value:function(e){var t=this._pluginInst.player;if(t.curDefinition=e,t.curDefinition){var n=this.dash.mpd.mediaList.audio,U=n[n.selectedIdx],F=this.config.dashOpts.dynamic_video.dynamic_audio_list;if(F.length>0)try{t.curDefinition.audioDefinition=F.filter((function(e){return e.main_url===U.baseURL}))[0]}catch(Q){pt.log("setAudioFaild",Q)}}}},{key:"switchURL",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],U=this,F=this._pluginInst.player;if(e){var Q=e.toString();e=Q.split("/")[Q.split("/").length-1];var i=U.definitions.filter((function(t){return t.url===e}))[0];if(i){this.setPlayerCurDefinition(i);var l=e===wi;if(pt.log("switchURL",e,n),l)return U.abrInstance.start(),U.isCurrentAutoDefi=!0,U.abrInstance.isCurrentInAbr=!0,void setTimeout((function(){U.abrInstance._onTimeUpdate(null,!0)}));U.isCurrentAutoDefi&&(U.updateAutoDefiDesc("",!0),U.isCurrentAutoDefi=!1,U.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi),n&&U.abrInstance.stop(!0),U._startLoadInitSegment(e,!0).then(function(){var e=c(o().mark((function e(n){var Q,i,l,a,d,s,B,c,R,V;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U.selectedIdx===n.newIdx){e.next=3;break}return pt.log("definitionSwitchTime cancel, current:",U.selectedIdx,"self",n.newIdx),e.abrupt("return");case 3:return i=U.dash,l=i.mpd.mediaList.video,e.next=7,U._switch(n.newIdx);case 7:if(a=e.sent,d=F.currentTime,s=null,s=l[a||0].mediaSegments.find((function(e){return e.start-d>2.5})),B=!1,s||(c=l[a||0].mediaSegments,s=c[c.length-1],B=!0),s){e.next=15;break}return e.abrupt("return");case 15:R=WU.round(s.start),V=WU.round(F.getBufferedRange(F.buffered)[1]),pt.log("切换清晰度 curTime: ".concat(d," start: ").concat(R," end: ").concat(V)),U.setCurrentDefinition(),U.isCurrentInAbr()||(pt.log("definitionSwitchTime emit, current",U.selectedIdx),F.emit("definitionSwitchTime",R)),t._emitDefinitionChangeDetailEvent({start:R,bitrate:null===(Q=l[n.newIdx])||void 0===Q?void 0:Q.bandwidth,mediaType:Ge.VIDEO,definition:n.definition,url:n.url,fileid:n.fileId}),V-R>0&&"safari"!==r.Sniffer.browser&&!B&&(pt.log("removeBuffer: ".concat(R," ").concat(V)),U.removeBuffer(Ge.VIDEO,R,V)),U._appendInitSegment("video",n,n.newIdx).then((function(){pt.log("switchURL appendInitSegment",n.newIdx),U.switching=!1,U.loadData((s.start+s.end)/2,Gt),U.emitMenuResolutionChange(),U.dash.clearFailedSegment()}));case 23:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}}}},{key:"abrSwitchURL",value:function(e){var t=this,n=this.dash,U=this.player;e=e.split("/")[e.split("/").length-1],pt.log("abrSwitchURL",e),this._startLoadInitSegment(e).then(function(){var e=c(o().mark((function e(F){var Q,i,l,r,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Q=n.mpd.mediaList.video,e.next=3,t._switch(F.newIdx);case 3:if(i=e.sent,l=U.getBufferedRange(U.buffered)[1],r=Q[i].mediaSegments.find((function(e){return e.start-l>=0}))){e.next=8;break}return e.abrupt("return");case 8:a=0===l?U.currentTime:(r.start+r.end)/2,t._pluginInst.info({msg:"abr switch",data:{bd:Q[i].definition,d:Q[F.newIdx].definition,start:0===l?U.currentTime:r.start},add:!0}),t.setCurrentDefinition(),t._appendInitSegment("video",F,F.newIdx).then((function(){pt.log("abrSwitchURL appendInitSegment",F.newIdx),t.switching=!1,t.loadData(a,Gt)})).catch((function(e){pt.log("appendInitSegment",e)}));case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){pt.log("startLoadInitSegemnt",e)}))}},{key:"_switch",value:(n=c(o().mark((function e(t){var n,U,F,Q;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.dash,U=n.mpd.mediaList.video,F=U.selectedIdx,U.selectedIdx=t,this.abort(Ge.VIDEO),e.next=7,n.abortLoadingTasks();case 7:return U[F].mediaSegments.every((function(e){return e.downloaded=Dt,!0})),(Q=n.mpd.mediaList.audio)[Q.selectedIdx]&&Q[Q.selectedIdx].mediaSegments&&Q[Q.selectedIdx].mediaSegments.forEach((function(e){e.downloaded===Xt&&(e.downloaded=Dt)})),n.mpd.syncAV(),e.abrupt("return",F);case 12:case"end":return e.stop()}}),e,this)}))),function(e){return n.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,U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},F=arguments.length>4?arguments[4]:void 0,Q=this.dash,i=new x;if(e instanceof ArrayBuffer){var l=0===t.length?e:e.slice(t[0],t[1]+1),r=null===n?null:e.slice(n[0],n[1]+1);!1===Q.useEME&&this.crypto?this.crypto.decryptHeader(l,"video"===F,!this._pluginInst.softVideo).then((function(t){var n=t.data,F=n.res,Q=n.videoTrack,l=n.audioTrack,a=F;i.resolve({initSegmentRes:a,data:e,sidxSegmentRes:r,headers:U,videoTrack:Q,audioTrack:l})})):i.resolve({initSegmentRes:l,data:e,sidxSegmentRes:r,vid:null,headers:U})}else;return i}},{key:"_appendInitSegment",value:function(e,t,n){var U=this,F=this.player,Q=this.config.duration;this.dash.mpd.duration>0&&(Q=this.dash.mpd.duration);var i=new x,l=this.dash.mpd.mediaList[e],r=t.initSegmentRes,a=t.sidxSegmentRes;if(!t.fromCache&&(t.fromCache=!0,l[l.selectedIdx].wrapperData=t,a))try{this.dash.mpd.getSidx(a,e,n,Q)}catch(o){F.errorHandler(o)}if(e===Ge.VIDEO){var d=function(e){for(var t=Object.keys(KF),n=0;n<t.length;n++){var U=t[n];if(KF[U].codecs===e)return U}return null}(l[l.selectedIdx].codecs);this._pluginInst.setCodeInfo(d)}return pt.log("appendInitSegment mediaType:".concat(e,", index: ").concat(n)),this.dash.changeType(e,l[l.selectedIdx].codecs),this._pluginInst._kernal.setNodeTime("init_".concat(e,"_appendStart")),this.dash.appendBuffer(e,r,{mediaType:e,index:n,initSegment:!0,allSegment:!0},t.videoTrack,t.audioTrack).then((function(t){if(U._pluginInst.info({msg:"appendBuffer",data:{mediaType:e,index:n}}),U._pluginInst._kernal.setNodeTime("init_".concat(e,"_appendDone"),t),pt.log("appendInitSegment success mediaType:".concat(e,", index: ").concat(n,", \n curVideoInitSegment:").concat(U.curVideoInitSegmentIdx)),l[l.selectedIdx].inited=!0,i.resolve(),"video"===e&&U.curVideoInitSegmentIdx!==n){U.curVideoInitSegmentIdx=n;var Q=U._findClosetGop(F.currentTime,!0,0);U.dash.mpd.clearBuffer(Q,F.duration,"video")}})).catch((function(t){pt.log("appendInitSegment type-".concat(e,"-appendCatch,range:").concat(JSON.stringify(r),",\n message:").concat(t.message)),t&&t.errorCode&&F&&F.emit(new LF(Ze,t.errorCode,{message:"appendInit ".concat(t.message)}))})),i}},{key:"_makeInitSegemntRequest",value:(t=c(o().mark((function e(){var t,n,U,F,Q,i,l,r,a,d,s,B,c,R,V,u,h,Z,S,p,J,m,W,k=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=k.length>0&&void 0!==k[0]?k[0]:"video",U=k.length>1&&void 0!==k[1]?k[1]:0,F=k.length>2&&void 0!==k[2]?k[2]:null,Q=this.dash,i=this.config,l=new x,r=Q.mpd&&Q.mpd.mediaList[n][U],a=[],d="",r){e.next=12;break}return l.reject({mediaType:n,index:U,initSegmentRange:a,url:d,rejected:!0,msg:"list is null"}),pt.log("initSegmentRequest error"),e.abrupt("return",l);case 12:return a=(r.initSegmentRange||[]).concat(),(s="segment_base"===Q.mpd.dashType)&&(a[1]=r.sidxRange[1]),d=r.initSegment,B="video"===n&&(r.definition||this.bandwidth2item[r.bandwidth].definition),this._checkUrlRange(d),c={mediaType:n,vid:i.vid,definition:"video"===n?B:void 0,useUrlRange:i.useUrlRange,timeout:-1,bitrate:r.avg_bitrate||r.bandwidth||r.bitrate,initSegment:!0,codecType:(null===(t=Q.mpd)||void 0===t?void 0:t.videoCodecType)||"h264",fileId:r.fileId,checkPreload:!0},e.next=21,Q.getData(d,a,n,c,!1,null,F);case 21:return R=e.sent,V=R.res,u=R.headers,h=R.status,Z=R.readyState,S=R.fromCache,p=R.error,J=R.orgDefinition,V&&"error"!==V?(J&&B===(null===(W=this.player.curDefinition)||void 0===W?void 0:W.definition)&&(this.player.curDefinition.orgDefinition=J),this._handleInitData(V,r.initSegmentRange,s?r.sidxRange:null,u,n).then((function(e){e.newIdx=U,e.mediaType=n,e.initSegmentRange=a,e.cache=S,e.definition=c.definition,e.bitrate=c.bitrate,e.url=d,e.fileId=c.fileId,l.resolve(e)}))):(m=!1,r.fallbackUrl&&!r.hasFallback&&s&&(r.hasFallback=!0,m=!0,r.initSegment=r.fallbackUrl),l.reject({mediaType:n,index:U,initSegmentRange:a,url:d,rejected:!0,reason:V,status:h,readyState:Z,ext:p instanceof Error?{msg:p.message}:p,retry:m})),e.abrupt("return",l);case 31:case"end":return e.stop()}}),e,this)}))),function(){return t.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,U=arguments.length>2&&void 0!==arguments[2]&&arguments[2],F=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,Q=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;this.handleUrlExpire();var i=Q||new x;return U&&this._pluginInst._kernal.setNodeTime("init".concat(t,"_metastart")),this._makeInitSegemntRequest(t,n,F).then((function(F){e._pluginInst.info({msg:"initSegmentRequest succ"}),U&&(e._pluginInst._kernal.setNodeTime("init".concat(t,"_metadone"),{fromCache:F.cache,byteLength:F.data.byteLength,mediaType:t,index:n,definition:F.definition,isInitSegment:!0}),e._emitDefinitionChangeDetailEvent({start:0,bitrate:F.bitrate,mediaType:t,definition:F.definition,url:F.url,fileid:F.fileId})),i.resolve(F)})).catch((function(U){var Q;if(U.retry)e._makeInitSegemntRequestWithRetry(t,n,!1,F,i);else{var l=U.message?U.message:U;i.reject(new LF(Je,LF.INIT_SEGMENT_ERROR,{line:329,mediaType:t,index:n,error:l,message:"reason ".concat((null==U||null===(Q=U.ext)||void 0===Q?void 0:Q.msg)||(null==l?void 0:l.reason)," status ").concat(null==l?void 0:l.status),retry:U.retry}))}})),i}},{key:"updateAbrCacheData",value:function(e,t,n){var U=this.dash,F=this.config,Q=F.autoBitrateOpts||{},i=U.mpd.mediaList.video,l=n.definition,r=F.definitionText&&F.definitionText[l]||l,a=i[e],d=n.bitrate;this.bitrateMap[d]={url:a.id,definition:l,definitionName:r},this.defiIdMap[a.id]={bitrate:d,definition:l},e===i.length-1&&this.isOpenAutoDefi&&this.definitions.push({name:Q.autoDefiText||"auto",url:wi,selected:t,definition:"自动",fps:void 0})}},{key:"destroyAbr",value:function(){var e=this,t=this.player;e.abrInstance&&(t&&t.off(Ii,this._onAutoDescChange),e.abrInstance.destroy(),e.abrInstance=null)}},{key:"initAbr",value:function(){var e=this,t=this,n=this.player,U=this.config;WU.on(n,Ii,this._onAutoDescChange,"dashDestroy"),this.bitrateMap={},this.defiIdMap={};var F=ct;t.abrInstance=new Oi(n,U,0,U.dashOpts.dynamic_video,5e3,{logger:pt.abr,openLog:F}),WU.once(n,Gi,this.startProgressTimer,"dashDestroy"),t.abrInstance.onAbrChange=function(e,U,F,Q){var i=t.bitrateMap[e],l=t.bitrateMap[U],r=null==i?void 0:i.definition,a=null==l?void 0:l.definition;pt.abr("abr change prevD:",r,"curDef:".concat(a)),r!==a&&l&&(t.abrSwitchURL(l.url),n.emit("ABR_CHANGE",{prev:r,cur:a,prevName:i.definitionName,curName:l.definitionName,abrInfo:Q}))},WU.on(n,Li,t.abrInstance.onAbrChange,"dashDestroy"),WU.on(n,Yi,(function(){if(t.isCurrentInAbr()){var U=5*Math.floor(n.currentTime/5)+5;pt.log("ABR_LIMIT_BITRATE, currentTime",n.currentTime,"removeStart",U),e.removeBuffer(Ge.VIDEO,U,n.duration)}}),"dashDestroy"),t.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi}},{key:"isCurrentInAbr",value:function(){return!!this.abrInstance&&this.abrInstance.isCurrentInAbr}}]),e}(),Ul=nl,Fl=Yt,Ql=["initaudio_metadone","initvideo_metadone","initaudio_segdone","initvideo_segdone"],il=function(){function e(t){var n=this;R(this,e),h(this,"start",function(){var e=c(o().mark((function e(t){var U,F,Q,i,l,r,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n._beforeLoadStartCostTime=0,n._tm=WU.nowTime(),n._sTime=WU.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"),U=Date.now(),F=n.__dash__,Q=n._pluginInst,i=Q.player,l=Q.config,i.dashState=yt,i.emit("dashStateChange",yt),t||(t=i.config.url="anytext"),r=new bi(t,n._pluginInst,F),F){e.next=17;break}return n._info({msg:"__dash__ is null, dashOpts",startMs:U,name:"start __dash__"}),e.abrupt("return");case 17:return F.initDash(r),F.dashVideoEncrypted||F.dashAudioEncrypted||n._pluginInst.softVideo?(pt.log("加密视频"),a=!1===l.useEME,l.useEME=Qn(),(a||n._pluginInst.softVideo)&&(l.useEME=!1),l.intertrustServerURL&&(l.useEME=!0),l.useEME||(F.crypto=new Di),r.useEME=l.useEME,n._info({msg:"encrypt video ready useEME ".concat(r.useEME)})):(pt.log("非加密视频"),n._info({msg:" no encrypt video ready"})),i.dashState=ft,i.emit("dashStateChange",ft),e.next=23,n._onWasmReady({url:t});case 23:n._info({msg:"info player start execute",startMs:U,name:"start",profile:!0}),n._hasStart=!0;case 25:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),h(this,"_onLoadStart",(function(){var e=WU.nowTime()-n._tm;n._beforeLoadStartCostTime=e>100?100:e,n.changeState("loadstart","beforeLoadStartCostTime ".concat(n._beforeLoadStartCostTime))})),h(this,"_onLoadData",c(o().mark((function e(){var t,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.changeState("loaddata"),null==(F=n.__dash__)||null===(t=F.dash)||void 0===t||t.checkPCDN(),null==F||null===(U=F.dash)||void 0===U||U.cachePreloadData(),null==F||!F.abrInstance){e.next=8;break}return e.next=7,F.abrInstance.init(F.dash.mpd.mediaList);case 7:F.abrInstance.execute();case 8:case"end":return e.stop()}}),e)})))),h(this,"_errorHandler",(function(e){var t,U;if(!n._checkHasDestroy("errorHandler")){var F=n._pluginInst,Q=F.player,i=F.config;if(i.codecType===KF[YF].logCodeType&&(null===(t=Q.video.error)||void 0===t||null===(U=t.message)||void 0===U?void 0:U.indexOf("video decoder initialization failed"))>=0&&(pt.log("ErrorHandler DECODER_FAILED"),Q.emit("DECODER_FAILED",{codecType:i.codecType,vid:i.vid})),e instanceof LF)e=new r.Errors(Q,e);else{if(Q.video.error)e=new r.Errors(Q,{errorType:Ze,errorCode:5100+Q.video.error.code});else{var l=e;if("string"!=typeof e)try{l=JSON.stringify(e)}catch(B){l="other"}e=new r.Errors(Q,{errorType:pe,errorCode:0,errorMessage:l})}}if(n._errors.push({time:(new Date).getTime(),err:e}),pt.log(e),Q.emit("xglog_cache"),e&&Q.dashState!==Ct){Q.dashState=Ct,e.vid=i.vid,e.url=Q.src;var a=n.__dash__,d=a&&a.isCurrentAutoDefi;if(e.errd&&"object"===s(e.errd)&&a&&a.dash&&(e.errd.url=a.dash.url,e.url=a.dash.url),e.url&&e.url.indexOf("blob:")>-1&&i.dashOpts&&i.dashOpts.dynamic_video&&(e.url=i.dashOpts.dynamic_video.main_url),!e||e.errorCode!==n._getCode(Ze,me.MSE_HIJACK)&&e.errorCode!==n._getCode(Ze,me.EME_HIJACK)){if(Q.emit("DATA_REPORT",e),e&&e.errorCode===n._getCode(Se,me.LICENSE))return n._pluginInst.destroyKernal(),void Q.emit("error",e);if(!e||e.errorCode!==n._getCode(Ze,me.MSE_ADD_SB)&&e.errorCode!==n._getCode(ue,me.SIDX)){if(e.segmentExpired||"task_request_expired"===e.msg)return a&&a.abrInstance&&"function"==typeof a.abrInstance._stop&&(a.abrInstance._stop(),pt.abr("error stop","expired",e.segmentExpired,e.ex)),void n._pluginInst.emitExpireEvent(e);if(!e.curReqVideoSegInfo&&a&&(e.curReqVideoSegInfo=JSON.parse(JSON.stringify(a.curReqVideoSegInfo||{}))),e.headers||(e.headers=e.curReqVideoSegInfo.headers||{}),!!i.useBackUrl&&!n._pluginInst._hasUsedBackUrl&&i.dashOpts&&i.dashOpts.dynamic_video&&a){pt.log("backup replay");var o=a.changeMainBackUrl(Fl.ERR,n._pluginInst._hasUsedBackUrl);return a.updateDashType(),d?o.autoBitrateOpts&&(o.autoBitrateOpts.isPlayAutoDefi=!0):(n.currentDefitionFromPlayer&&(o.defaultDefinition=n.currentDefitionFromPlayer.definition),o.autoBitrateOpts&&(o.autoBitrateOpts.isPlayAutoDefi=!1)),n._pluginInst._hasUsedBackUrl=!0,n._pluginInst.next(Q.currentTime,"REPLAY",o,!0,"dash"),Q.emit("playCatch","dash",e),pt.log("playCatch dash",JSON.stringify(e)),void n._emitDegradeEvent(e,"dash")}a&&a.updateDashType(!0),n._handleDegradeToMp4(e)}else n._handleDegradeToMp4(e)}else Q.emit("error",e)}}})),this._pluginInst=t,this._errors=[],this._initProfile(),this._proxyPlayer(),this._initialize(),this._bindEvents()}var t,n;return u(e,[{key:"changeState",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._pTime||(this._pTime=WU.nowTime());var n=WU.nowTime()-this._pTime,U=WU.nowTime()-this._sTime;pt.log(">>>changeState[".concat(e,"]"),n,U,JSON.stringify(t));var F={state:e,t1:n,t2:U,data:t};this.states[e]||(this.states[e]=F),this.allPhases.push(F),this._pTime=WU.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;this.changeState(e,t),Ql.includes(e)&&(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:(n=c(o().mark((function e(t){var n,U,F,Q,i,l,a,s,B,c,R,V,u,h,Z,S=this;return o().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,U=this._pluginInst,F=U.player,Q=U.config,i=this.__dash__,l=i.dash,F.dashState=Nt,F.emit("dashStateChange",Nt),pt.log("监听到wasm_ready"),this._info({msg:"wasm_ready"}),WU.on(l,"error",this._errorHandler,"destroy"),i.bindComEvent(),e.prev=12,e.next=15,l.init(n);case 15:if(a=e.sent){e.next=19;break}return this._info({msg:"isDestroy ".concat(!F,", isMseNull ").concat(!a)}),e.abrupt("return");case 19:if(pt.time("initReady cost",(new Date).getTime()-i.startTimestamp),F.dashState=bt,F.emit("dashStateChange",bt),pt.log("dash init完成"),l.mpd.mediaList.video.length>0){for(Q.defaultDefinition||(Q.defaultDefinition=Q.dashOpts.dynamic_video.dynamic_video_list[0].definition,i.lastDefiIdx=0),i.isOpenAutoDefi||(i.isCurrentAutoDefi=!1,i.abrInstance.isCurrentInAbr=!1),s=Q.dashOpts.dynamic_video.dynamic_video_list,B=0;B<s.length;B++)c=s[B],i.bandwidth2item[c.bitrate]=c,i.definition2item[c.definition]=c;l.mpd.mediaList.video.sort((function(e,t){return t.height-e.height})),l.mpd.mediaList.video.forEach((function(e,t){var n=i.bandwidth2item[e.bandwidth];if(n){var U=n.definition.toString(),r=Q.defaultDefinition.toString(),a=!(U!==r||i.isOpenAutoDefi&&i.isPlayAutoDefi);i.definitions.push(d({name:Q.definitionText&&Q.definitionText[U]||U,url:e.id,selected:a,definition:n.definition,fps:n.fps},n)),e.frameRate=e.frameRate||n.fps||25;var o=n.bitrate;i.updateAbrCacheData(t,i.isPlayAutoDefi,n),U===r&&(pt.log("dashDefinition",U),F.emit("initialUrl",l.mpd.mediaList.video[t].baseURL),i.curBitrate=o,i.lastDefiIdx=t),a&&S._pluginInst.setCurrentDefitionInfos(n.definition,n)}})),(R=i.definitions.some((function(e){return e.selected})))&&void 0!==i.lastDefiIdx||(R||(i.definitions[0].selected=!0,V=i.definitions[0].definition,this._pluginInst.setCurrentDefitionInfos(V,i.definition2item[V])),F.emit("initialUrl",l.mpd.mediaList.video[0].baseURL),i.curBitrate=Q.dashOpts.dynamic_video.dynamic_video_list[0].bitrate,i.lastDefiIdx=0),F.emit("resourceReady",i.definitions,Q.dashOpts.dynamic_video.dynamic_video_list),i.abrInstance.updateBitrate(i.curBitrate),u=i.definitions.filter((function(e){return e.selected}))[0],i.setPlayerCurDefinition(u)}this._pluginInst.originStartInit.call(F,a.url),pt.time("start call cost",(new Date).getTime()-i.startTimestamp),F.dashState=vt,F.emit("dashStateChange",vt),i.startCheckCanplayTimer(),i.isDashCanUse=!0,i.mse=a,i.emitMenuResolutionChange(),"safari"===r.Sniffer.browser&&(r.Util.addClass(F.root,"canplay"),h=function(){r.Util.removeClass(F.root,"xgplayer-is-enter")},WU.once(F,"waiting",h)),Z=function(){S._checkHasDestroy("onStartPlay")||(F.emit("dash_start_play"),S._info({msg:"dash_start_play"}),F.dashState=Tt,S._info({msg:"START_PLAY ready"}),F.emit("dashStateChange",Tt),F.emit("playInterfaceInfo",Q.dashOpts||{}),i.isCurrentAutoDefi||pt.time("onStartPlay cost not abr",(new Date).getTime()-i.startTimestamp),i.startProgressTimer(),pt.time("onStartPlay cost",(new Date).getTime()-i.startTimestamp),i.setCurrentDefinition())},WU.once(l,"start_play",Z),this._info({msg:"START_PLAY dashready"}),F.emit("dashready"),e.next=42;break;case 39:e.prev=39,e.t0=e.catch(12),F.errorHandler(e.t0);case 42:case"end":return e.stop()}}),e,this,[[12,39]])}))),function(e){return n.apply(this,arguments)})},{key:"_initialize",value:function(){pt.log("执行dashKernal");var e=this._pluginInst,t=e.player,n=e.config,U=t.config;if(n.playInfoType===ii&&U.definition){var F=n.dashOpts.Data,Q=(null==F?void 0:F.vid)===n.vid?F.playInfoList:U.definition.list;n.defaultDefinition=U.defaultDefinition||U.definition.defaultDefinition,U.definition.list=Q.filter((function(e){return e.vtype.toUpperCase()===dn.DASH&&"video"===e.mediaType})),n.dashOpts.Data={vid:U.vid,duration:U.duration,playInfoList:Q};var i=Q.filter((function(e){return e.vtype.toUpperCase()===dn.MP4}));if(i.length>0||U.downgradeUrl){var l=i.length>0?i:[{url:U.downgradeUrl,definition:"1",vtype:"MP4",size:0,codecType:"h264"}];n.mp4Opts={mp4List:l}}else n.mp4Opts=null}if(!n.dashOpts)return console.error("dashOpts in plugin config miss"),void this._info({msg:"dashOpts is null",startMs:Date.now(),name:"_initialize",add:!0});(!n.dashOpts.Data||n.playInfoType!==Qi&&n.playInfoType!==ii||this._playInfoInit(),n.dashOpts.dynamic_video)&&(n.dashOpts.dynamic_video.dynamic_video_list=n.dashOpts.dynamic_video.dynamic_video_list||[],n.dashOpts.dynamic_video.dynamic_audio_list=n.dashOpts.dynamic_video.dynamic_audio_list||[],[n.dashOpts.dynamic_video.dynamic_video_list,n.dashOpts.dynamic_video.dynamic_audio_list].forEach((function(e){e.forEach((function(e){if(e.bitrate=parseInt(e.real_bitrate||e.bitrate),U&&"function"==typeof U.preProcessUrl){var t=U.preProcessUrlOptions||{};e.main_url=U.preProcessUrl(e.main_url,t).url,e.backup_url_1=U.preProcessUrl(e.backup_url_1,t).url;var n=Object.assign({},t,{isFallback:!0});e.fallback_url=U.preProcessUrl(e.fallback_url,n).url}}))})));var r=Yt,a=new Ul({pluginInst:this._pluginInst});this.__dash__=a;var d=Ge.isSupported('video/mp4; codecs="avc1.64001E, mp4a.40.5"');d?a.changeMainBackUrl(r.INIT,this._hasUsedBackUrl):(this._info({msg:"isCodecSupported ".concat(d),add:!0}),t.errorHandler(new LF(Ze,me.MEDIA_ERR_CODEC_NOT_SUPPORTED,{message:"init"})))}},{key:"_bindEvents",value:function(){var e=this._pluginInst.player;e.on(r.Events.LOAD_START,this._onLoadStart),e.on(r.Events.LOADED_DATA,this._onLoadData)}},{key:"beforeLoadStartCostTime",get:function(){return this._beforeLoadStartCostTime}},{key:"_switchURL",value:(t=c(o().mark((function e(t){var n,U,F=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=!(F.length>1&&void 0!==F[1])||F[1],U=this.__dash__,e.next=4,U.switchURL(t,n);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"_playInfoInit",value:function(){var e=this._pluginInst,t=e.config,n=e.playerConfig,U=t.dashOpts.Data;t.vid=U.VideoID||U.Vid||U.vid,n.vid=t.vid,t.playInfoType===Qi?li(t):t.playInfoType===ii&&ri(t)}},{key:"_getCode",value:function(e,t){return We[e][t]}},{key:"_emitDegradeEvent",value:function(e,t){if(this._pluginInst){var n=this._pluginInst.player,U=e.errorCode,F=e.errorMessage,Q=d(d({},e),{},{vtype:t,errc:U,err_msg:F});n.pause(),n.emit("degrade",Q),pt.log("degrade event emit",JSON.stringify(Q))}}},{key:"_handleDegradeToMp4",value:function(e){var t=this;if(!this._checkHasDestroy("_handleDegradeToMp4")){var n=this._pluginInst,U=n.player,F=n.config;if(F.mp4Opts&&!this._hasDegradeMp4){pt.log("_handleDegradeToMp4"),this._hasDegradeMp4=!0,U.dashState="error_catching";var Q=F.startTime||U.currentTime||0;setTimeout((function(){t._checkHasDestroy("degrademp4")||(t._pluginInst._setStartTime("destroy",Q,!0,!1),U.emit("playertypechange"),U.dashState="error_catch_finished",U.emit("playCatch","dash_mp4_2",e),pt.log("playCatch dash_mp4_2",JSON.stringify(e)),t._emitDegradeEvent(e,"dash_mp4_2"),F.defaultFormat="mp4",t._pluginInst.changeKernal(!0,!1,"dash_mp4_2"),U.once("canplay",(function(){if(U.config.autoplay){var e=U.video.play();e&&e.catch((function(){}))}})))}),0)}else U.dashState="error_no_mp4opts",U.emit("error",e),pt.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(r.Events.LOADED_DATA,this._onLoadStart),e.off(r.Events.LOADED_DATA,this._onLoadData),e.errorHandler=this._originErrorHandler,e._startInit=this._pluginInst._originStartInit,e.switchURL=this._originSwitchURL,this._pluginInst=null,this._hasStart=!1,pt.log("dashKernal destroy")}},{key:"_checkHasDestroy",value:function(e){return!this._pluginInst&&(this._info({msg:"dashKernal destroy ".concat(e),add:!0}),pt.log("checkHasDestroy",e),!0)}},{key:"executeReady",value:function(){if(!this._checkHasDestroy("executeReady")){var e=this._pluginInst.player;WU.once(e,"dash_start_play",(function(){e.dashState=gt,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 U=this.__dash__.dash.mse;if(U._sourceBuffer)for(var F=Object.keys(U._sourceBuffer),Q=0;Q<F.length;Q++){var i=F[Q],l=(U._queue[i]||[]).map((function(e){return{opName:e.opName,context:e.context}}));n[i]={updating:U._sourceBuffer[i].updating,queue:l.slice(0,Math.max(5,l.length)),queueEmpty:!U._queue[i]}}}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 r=this._pluginInst.player;e.currentTime=r.currentTime;var a=r.video.error;return e.dVideoError=a?{code:a.code,message:a.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 U=e.states[n],F=e.states[t],Q=(null==U?void 0:U.t2)-(null==F?void 0:F.t2);return Number.isFinite(Q)?Q:-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=Ql,t={length:0,byteLength:0,load:[]},n=0;n<e.length;n++){var U=this.preloadMap[e[n]]||{};if(U&&U.fromCache&&U.byteLength){if(t.length+=U.byteLength,t.byteLength+=U.byteLength,t.load.push(U),!U.isInitSegment&&!U.duration)try{var F,Q=this.__dash__.dash.mpd.mediaList[U.mediaType],i=null===(F=Q[Q.selectedIdx].mediaSegments)||void 0===F?void 0:F[0].endRaw;U.duration=i}catch(r){U.duration=5}var l=Math.max(t.duration||0,U.duration||0);"video"===U.mediaType?t.duration=l:t.audioDuration=l}}return t.loadLength=t.load.length,t}},{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}}}}]),e}(),ll=function(){function e(t){var n=this;R(this,e),h(this,"start",(function(){var e=n._pluginInst.player;n._pluginInst.originStartInit.call(e,n._url),n._pluginInst.info({msg:"dash mp4 kernal start"})})),h(this,"_errorHandler",(function(e){var t=n._pluginInst.player;if(t.video.error){e=new r.Errors(t,{errorType:Ze,errorCode:5100+t.video.error.code})}else{var U=e;if("string"!=typeof e)try{U=JSON.stringify(e)}catch(Q){U="other"}e=new r.Errors(t,{errorType:pe,errorCode:0,errorMessage:U})}n._stat.error.push({err:e}),pt.log("mp4 error",e);var F=(new Date).getTime()/1e3>=n.urlExpireTimestamp&&n.urlExpireTimestamp>0;n._pluginInst.info({msg:"dash mp4 kernal error happend, url expired ".concat(F),err:e}),!F||!t.video.error||4!==t.video.error.code&&2!==t.video.error.code?t.emit("error",e):n._urlExpiredWhenInit||n._mp4CheckExpire()})),h(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:[]}}return u(e,[{key:"executeReady",value:function(){var e=this._pluginInst.player;e.dashState=gt,e.emit("nextEnded")}},{key:"_initialize",value:function(){var e=this;this._handleMp4Definitions(),this._getMp4Opts();var t=this._pluginInst.player;t.dash=!1,setTimeout((function(){t.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:"_handleMp4Definitions",value:function(){var e=this,t=this._pluginInst,n=t.player,U=t.config,F=t.playerConfig;if(U.mp4Opts){var Q;this.mp4AutoItem=null;var i=[].concat(U.mp4Opts.mp4List||[]);i.every((function(e){return!!e.bitrate}))&&i.sort((function(e,t){return t.bitrate-e.bitrate}));var l=U.mp4Opts.isOpenAutoDefi,a=U.mp4Opts.isPlayAutoDefi,d=!1;if(l){var o={};i.forEach((function(e){o[(e.definition||"").toLowerCase()]=e}));for(var s=["720p","480p","360p"],B=null,c=0;c<s.length;c++){var R=o[s[c]];if(R){B=R;break}}if(B){this.mp4AutoItem=B;var V=U.mp4Opts.autoDefiText||"自动",u="".concat(V,"(").concat(B.definition,")");i.push({definition:V,url:wi,name:u,url_expire:B.url_expire||0,selected:!!a}),d=a}}if(i.length>0){i.forEach((function(e){if(F&&"function"==typeof F.preProcessUrl){var t=F.preProcessUrlOptions||{};e.url=F.preProcessUrl(e.url,t).url}}));var h=i[0].url,Z=i[0].url;i.forEach((function(e){e.definition===U.defaultDefinition&&(h=e.url,Z=e.url)})),l&&a&&this.mp4AutoItem&&(h=this.mp4AutoItem.url,Z=wi),this._mp4Url=Z,this._url=h,this._pluginInst.loadURL=h}if(!d){for(var S=0;S<i.length;S++){var p=i[S];if(U.defaultDefinition===p.definition){p.selected=!0,d=!0;break}}if(!d){if(!(i.length>0))return void setTimeout((function(){var e=We[Ze][me.MEDIA_ERR_URL_EMPTY],t=new r.Errors(n,{errorType:Ze,errorCode:e});n.emit(et,t),console&&console.error("empty mp4 definitions")}));i[0].selected=!0}}this._mp4Definitions=i.map((function(t){U.defaultDefinition===t.definition&&(e._url=t.url,a||(t.selected=!0));var n=JSON.parse(JSON.stringify(t));return n.name=U.definitionText&&U.definitionText[t.definition]||t.definition,n.url_expire=t.url_expire||0,n})),this._backup_url=this._mp4Definitions[0].backup_url,this._RawMp4Definitions=i;var J=!1;this._pluginInst.setCodeInfo(null===(Q=i[0])||void 0===Q?void 0:Q.codec_type);for(var m=0;m<i.length;m++){var W=i[m];W.codec_type&&W.vtype&&("h264"===W.codec_type&&"mp4"===W.vtype||(J=!0))}J&&n.emit("log",{type:"oneevent",end_type:"mp4_source_exception"})}}},{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,U=e.split("/")[e.split("/").length-1]===wi,F=U?this.mp4AutoItem.url:e;this._pluginInst.loadURL=F,n.curTime=n.currentTime;var Q=n.paused;this._url=U?wi:e,n.ended||(n.src=F,WU.once(n,"canplay",(function(){if(n.currentTime=n.curTime,!Q){var e=n.play();void 0!==e&&e&&e.catch((function(){}))}}))),U?this._setCurrentDefitionInfos("自动 ".concat(this.mp4AutoItem.definition),this.mp4AutoItem):WU.once(n,"definitionChange",(function(e){for(var n=e.to,U=null,F=t._pluginInst.cnofig,Q=0;Q<F.mp4Opts.mp4List.length;Q++){var i=F.mp4Opts.mp4List[Q];if(i.definition===n){U=i;break}}t._setCurrentDefitionInfos("".concat(n),U)}))}},{key:"_mp4CheckExpire",value:function(){this._pluginInst.handleUrlExpire(this,!0)}},{key:"_updateMp4AutoDesc",value:function(){var e=this._pluginInst.player,t=this._url!==wi||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}}]),e}(),rl={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,disableDashNoCanplayCheck:!0,disableBufferBreakCheck:!0,waitingTimeOut:2e4,definitionText:null,useUnionInfoDRM:!1,keyTokenExpiredDuration:null,keyToken:null,playDomain:null,usePlaySpade:!1,preloadBufferThreshold:.5,vtype:dn.DASH,useProgressiveAppend:!1,useProgressiveAppendAll:!1,loader:Ji,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,useSeparationMode:!1},al=r.Events.STATS_EVENTS,dl="mp4",ol="dash",sl="void";function Bl(e){return{playerVersion:{get:function(){return"3.5.27-alpha.5"},configurable:!0},downloadSpeed:{get:function(){return ki.currentSpeed/8},configurable:!0},historyAvspeed:{get:function(){return ki.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,ki.historySpeed.length-10),n=ki.historySpeed.slice(t,t+10);return d(d({},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=St();return e.getLogCache&&e.getLogCache()},configurable:!0},pcdnReq:{get:function(){var t;return e._kernalType===ol?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===ol?null===(t=e._kernal)||void 0===t?void 0:t.pcdnVVStat():null},configurable:!0},beforeLoadStartCostTime:{get:function(){var t;return e._kernalType===ol&&e._kernal?null===(t=e._kernal)||void 0===t?void 0:t.beforeLoadStartCostTime:0},configurable:!0}}}var cl=null,Rl=function(e){Z(n,e);var t=W(n);function n(){var e;R(this,n);for(var U=arguments.length,F=new Array(U),Q=0;Q<U;Q++)F[Q]=arguments[Q];return h(m(e=t.call.apply(t,[this].concat(F))),"_hasUsedBackUrl",!1),h(m(e),"_onSeeking",(function(){var t=m(e).player;e.waitLevelStartTime=t.currentTime})),h(m(e),"_onPlaying",(function(){var t,n;pt.log("onPlaying,",JSON.stringify({curtime:e.player.currentTime,buffer:JSON.stringify(null===(t=e.player)||void 0===t||null===(n=t.buffered2)||void 0===n?void 0:n.bufferedList)})),e._waitAdjustTimeCnt>0&&e._waitInBufferTimer&&(e._waitAdjustTimeCnt-=1,pt.log("[waitInBuffer resume play], waitAdjustTimeCnt,",e._waitAdjustTimeCnt)),clearTimeout(e._waitInBufferTimer),e._waitInBufferTimer=null;var U=m(e).player,F=e.config.resumePlayWaterLevel;if(e._kernalType!==dl){if(!(U.duration>0&&U.duration-U.currentTime<=F)&&(e.waitLevelStartTime<0&&(e.waitLevelStartTime=U.currentTime),e.playFlag||(e.playFlag=!0),F>0&&U.currentTime-e.waitLevelStartTime>=2)){var Q=U.getBufferedRange(U.buffered2);if(Q[1]>0&&Q[1]-U.currentTime<F){var i;if(!U.paused)e.emit(jt,{type:Ht}),U.pause(null===(i=zt)||void 0===i?void 0:i.BUFFER_CONTROLS),U.isBufferControlPaused=!0,pt.log("[!!!!!buffer not rich, pause],currentTime, ",U.currentTime,", bufferEnd,",Q[1]);clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=setTimeout(e._onPlaying,F/2*1e3)}else U.isBufferControlPaused&&U.paused&&(pt.log("[!!!!!buffer rich, play],, currentTime, ",U.currentTime,", bufferEnd,",Q[1]),clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=null,U.isBufferControlPaused=!1,e.emit(jt,{type:Pt}),U.play())}}else e.checkResumePlayTimer>0&&(clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=null,U.isBufferControlPaused&&(U.isBufferControlPaused=!1),U.paused&&U.play())})),h(m(e),"_onWaiting",(function(){var t,n=m(e),U=n.player,F=n.config;clearTimeout(e._waitInBufferTimer),e._waitInBufferTimer=null;var Q=U.currentTime;pt.log(",[onWaiting],curTime, ",Q,",buffer,",JSON.stringify(null==U||null===(t=U.buffered2)||void 0===t?void 0:t.bufferedList),",dur,",U.duration);var i=U.bufferedPoint;i.end>0&&i.end-Q>=2&&e._waitAdjustTimeCnt<F.waitJampBufferMaxCnt&&(e._waitInBufferTimer=setTimeout((function(){e._waitAdjustTimeCnt++,U.currentTime=U.currentTime+.5}),F.waitingInBufferTimeOut))})),e}return u(n,[{key:"initDashPlayer",value:function(e){this._checkVideoSwitch(),this._hasTriggerBufferThreshold=!1,this._setArgsFromConfig(),this.lastBuffer="0,0",this._menuCodeType=null,this._setConfigDashType(),WU.promisePolyfill(),(window.location.href.indexOf("playerInstance=true")>-1||X.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=r.Util.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 U=this.removeVideo.parentNode;U&&U.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,U=arguments.length>3?arguments[3]:void 0,F=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;pt.log("next currentTime: ".concat(e,", nextType: ").concat(t,", autoplay:").concat(U));var Q=this.player,i=this.config;this._pausedWhenExpiredRestart=!1,"MEDIA_EXPIRED"===t&&Q.paused&&(this._pausedWhenExpiredRestart=!0),Q.dashState="next_start";var l=!1;if(Q.isSrcVoid||!i.dashOpts&&!i.mp4Opts||Q.ended||"MEDIA_EXPIRED"===t||"REPLAY"===t||Q.duration&&Q.currentTime<Q.duration-1&&(Q.emit("logger_next",t),l=!0),this._hasTriggerBufferThreshold=!1,Q.emit("next",t),Q.emit("playertypechange"),n)for(var r in n)i[r]=n[r];Q.config.vid&&(i.vid=Q.config.vid),Q.config.duration&&(i.duration=Q.config.duration),this._setArgsFromConfig(),l&&this._setConfigDashType(),"NEXT"===t&&Q.resetState&&Q.resetState(),Q.config.startTime=e,Q.config.startTimeCache=e,n&&(Q.config.DASHPlugin=n);var a=Q.config.autoplay;this._pausedWhenExpiredRestart&&a&&(Q.config.autoplay=!1,Q.once("canplay",(function(){setTimeout((function(){Q.config.autoplay=a,Q.pause()}))}))),this._syncParameters(),this.changeKernal(!0,!0,F),!U&&!Q.config.autoplay||this._pausedWhenExpiredRestart||Q.once("canplay",(function(){if(Q.video&&(Q.config.autoplay||U)){var e=Q.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:"startPlayHandler",value:function(e,t,n){var U=this.config;if(U.dashOpts||U.mp4Opts){var F="NEXT"===t||"REPLAY"===t;this._setStartTime(n,e,F,!0)}}},{key:"beforePlayerInit",value:function(){if(!this._hasExecuteBeforeInit){var e=this.player;r.BasePlugin.defineGetterOrSetter(e,Bl(this)),this._hasExecuteBeforeInit=!0,e.isReady=!0,this._kernalType===ol&&(e.vtype="DASH")}}},{key:"afterCreate",value:function(){var e=this;this.steps=[];var t=this.player,n=this.config;this._syncParameters(),t.config.nullUrlStart=!0,St().logMaxSize=n.logMaxSize,this._proxyPlayer(),this.initDashPlayer(t),this.on("xglog",(function(n){"firstFrame"===n.eventType&&pt.log("[xgplayer-encrypt]>>>>firstFrame ",e.playerConfig.vid,n.fvt,"stat",t.stat)})),this._bindEvents()}},{key:"info",value:function(e){var t=this.player;al&&t.emit(al.STATS_INFO,e),e.add&&this.steps.push(e)}},{key:"resetStat",value:function(){var e=this.player;al&&e.emit(al.STATS_RESET)}},{key:"_syncParameters",value:function(){var e,t=this.config,n=this.playerConfig,U=t.vid||n.vid;t.vid=n.vid=U,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()})),"function"==typeof this.player.playNext&&(cl=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),pt.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),U=0;U<t;U++)n[U]=arguments[U];var F=n[0],Q=n[1],i=n[2],l=n[3];e.setConfig(F),this.next(Q,i,F.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=ol:this._kernalType=dl:this._kernalType=sl}},{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;this._setKernalType();var U=this.player;this.destroyKernal();var F=this._kernalType;F===sl?(U.isSrcVoid=!0,U.emit("playOptsVoid"),t&&U.emit("nextEnded")):(U.isSrcVoid=!1,this._setStartTime("destroy",U.config.startTime,!0,!1),F===dl?(this._kernal=new ll(this),U.vtype="dash_mp4"):F===ol&&(this._kernal=new il(this),U.vtype="DASH"),n&&(U.vtype=n)),e&&this._kernal&&(this._kernal.start(),t&&this._kernal.executeReady())}},{key:"destroyKernal",value:function(){this._kernal&&(pt.log("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=t?t.fps:void 0;this._currentDefinition={definition:e,fps:n,item:t}}},{key:"handleUrlExpire",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],U=this.config,F=this.player,Q=F.paused,i=(new Date).getTime()/1e3>=e.urlExpireTimestamp&&e.urlExpireTimestamp>0;if(i&&(n||!Q)&&U.getServerTime)F.serverTimeDiffPromise=F.serverTimeDiffPromise||U.getServerTime().catch((function(){return 0})),F.serverTimeDiffPromise.then((function(n){if(n&&(F.serverTimeDiff=(new Date).getTime()/1e3-n),(new Date).getTime()/1e3>=e.urlExpireTimestamp+F.serverTimeDiff){e.urlExpireTimestamp=5e9;var U=new LF(ce);t.emitExpireEvent(U)}}));else if(i){var l=new LF(ce);this.emitExpireEvent(l)}}},{key:"emitExpireEvent",value:function(e){var t=this.player,n=(new Date).getTime()/1e3;this.emitExpireTimestamp?n-this.emitExpireTimestamp>300&&(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=X.getItem(wt);return e===Mt.BACK?e:Mt.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 U=KF[e],F=KF[GF],Q=F.logCodeType,i=F.codecs;U&&(Q=U.logCodeType,i=U.codecs),n&&(n.codec_type=Q),this.menuCodeType=i,this.config&&(this.config.codecType=Q)}},{key:"cacheSpeed",value:function(){try{var e=ki.historyAvspeed;e>0&&e!==1/0&&X.setItem(Wt,e)}catch(t){}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(t){}}},{key:"destroy",value:function(){var e,t=this.player;clearInterval(this._bufferCheckTimer),this.cacheSpeed(),this.destroyKernal(),this.bitRateAdapter&&this.bitRateAdapter.destroy();var n=Bl(this);Object.keys(n).forEach((function(e){delete t[e]})),this.player.playNext=cl,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._originResetState&&(this.player.resetState=this._originResetState)}},{key:"_bindEvents",value:function(){this.on("playing",this._onPlaying),this.on("seeking",this._onSeeking),this.on("waiting",this._onWaiting)}},{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,U=0,F=0;F<t.length&&(n=t.start(F),U=t.end(F),!(n<=e.video.currentTime&&e.video.currentTime<=U));F++);U-e.video.currentTime>=this._bufferThreshold&&!this._hasTriggerBufferThreshold&&(this._hasTriggerBufferThreshold=!0,e.emit("BUFFER_THRESHOLD",U-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 U=0,F=t.video.buffered.length;U<F;U++)n.push([t.video.buffered.start(U),t.video.buffered.end(U)]);n.toString()!==e.lastBuffer&&(e.lastBuffer=n.toString(),e._onBufferReachThreshold())}catch(Q){}}}),200)}},{key:"_setStartTime",value:function(e,t,n,U){var F=this,Q=this.player,i=this.playerConfig,l=this.config;if(t>0||U){var r=!1,a=function(){r||(r=!0,Q.currentTime=t,i.startTime=0,n&&t>0&&Q.emit("setStartTime"),"mp4"===l.defaultFormat&&F.setCodeInfo(GF))};WU.once(Q,"canplay",a,e),WU.once(Q,"playing",a,e)}}},{key:"preloadManager",get:function(){return this.player.preloader}},{key:"domain",get:function(){return this._cdnHost?this._cdnHost:null}},{key:"playerType",get:function(){return this.config.defaultFormat}},{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=WU.getHostFromUrl(e);this._cdnHost!==t&&(this._cdnHost=t,this.player&&this.player.emit("changeHost",t))}}],[{key:"pluginName",get:function(){return"DASHPlugin"}},{key:"defaultConfig",get:function(){return rl}},{key:"isEMESupported",value:function(){return Qn()}},{key:"encryptUtils",get:function(){return rn}}]),n}(Vn);return Rl.updateUnionInfo=DF.XGSecretKey.updateUnionInfo,Rl.registerPreloader=Vn.registerPreloader,Rl}));
1
+ // Built @Tue, 23 Jul 2024 06:48:14 GMT
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("core-js/modules/es.array.slice.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.array.concat.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/web.dom-collections.for-each.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.regexp.to-string.js"),require("xgplayer"),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.string.search.js"),require("core-js/modules/es.array.includes.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.typed-array.of.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/es.typed-array.uint8-array.js"),require("core-js/modules/es.typed-array.copy-within.js"),require("core-js/modules/es.typed-array.every.js"),require("core-js/modules/es.typed-array.fill.js"),require("core-js/modules/es.typed-array.filter.js"),require("core-js/modules/es.typed-array.find.js"),require("core-js/modules/es.typed-array.find-index.js"),require("core-js/modules/es.typed-array.for-each.js"),require("core-js/modules/es.typed-array.includes.js"),require("core-js/modules/es.typed-array.index-of.js"),require("core-js/modules/es.typed-array.iterator.js"),require("core-js/modules/es.typed-array.join.js"),require("core-js/modules/es.typed-array.last-index-of.js"),require("core-js/modules/es.typed-array.map.js"),require("core-js/modules/es.typed-array.reduce.js"),require("core-js/modules/es.typed-array.reduce-right.js"),require("core-js/modules/es.typed-array.reverse.js"),require("core-js/modules/es.typed-array.set.js"),require("core-js/modules/es.typed-array.slice.js"),require("core-js/modules/es.typed-array.some.js"),require("core-js/modules/es.typed-array.sort.js"),require("core-js/modules/es.typed-array.subarray.js"),require("core-js/modules/es.typed-array.to-locale-string.js"),require("core-js/modules/es.typed-array.to-string.js"),require("core-js/modules/es.array-buffer.constructor.js"),require("core-js/modules/es.string.replace.js"),require("core-js/modules/es.array.join.js"),require("core-js/modules/es.number.constructor.js"),require("core-js/modules/es.number.to-fixed.js"),require("core-js/modules/es.promise.finally.js"),require("core-js/modules/es.string.match.js"),require("core-js/modules/es.object.values.js"),require("core-js/modules/es.array.sort.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.number.is-finite.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/web.url.js"),require("core-js/modules/web.url-search-params.js"),require("core-js/modules/es.string.includes.js"),require("core-js/modules/es.array.splice.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.string.split.js"),require("core-js/modules/es.map.js"),require("core-js/modules/esnext.map.delete-all.js"),require("core-js/modules/esnext.map.every.js"),require("core-js/modules/esnext.map.filter.js"),require("core-js/modules/esnext.map.find.js"),require("core-js/modules/esnext.map.find-key.js"),require("core-js/modules/esnext.map.includes.js"),require("core-js/modules/esnext.map.key-of.js"),require("core-js/modules/esnext.map.map-keys.js"),require("core-js/modules/esnext.map.map-values.js"),require("core-js/modules/esnext.map.merge.js"),require("core-js/modules/esnext.map.reduce.js"),require("core-js/modules/esnext.map.some.js"),require("core-js/modules/esnext.map.update.js"),require("core-js/modules/es.number.is-nan.js"),require("core-js/modules/es.string.repeat.js"),require("core-js/modules/es.array.find.js"),require("core-js/modules/es.typed-array.int32-array.js")):"function"==typeof define&&define.amd?define(["core-js/modules/es.array.slice.js","core-js/modules/es.array.map.js","core-js/modules/es.array.concat.js","core-js/modules/es.object.assign.js","core-js/modules/es.object.to-string.js","core-js/modules/web.dom-collections.for-each.js","core-js/modules/es.object.keys.js","core-js/modules/es.regexp.to-string.js","xgplayer","core-js/modules/es.regexp.exec.js","core-js/modules/es.string.search.js","core-js/modules/es.array.includes.js","core-js/modules/es.promise.js","core-js/modules/es.typed-array.of.js","core-js/modules/es.array.iterator.js","core-js/modules/es.typed-array.uint8-array.js","core-js/modules/es.typed-array.copy-within.js","core-js/modules/es.typed-array.every.js","core-js/modules/es.typed-array.fill.js","core-js/modules/es.typed-array.filter.js","core-js/modules/es.typed-array.find.js","core-js/modules/es.typed-array.find-index.js","core-js/modules/es.typed-array.for-each.js","core-js/modules/es.typed-array.includes.js","core-js/modules/es.typed-array.index-of.js","core-js/modules/es.typed-array.iterator.js","core-js/modules/es.typed-array.join.js","core-js/modules/es.typed-array.last-index-of.js","core-js/modules/es.typed-array.map.js","core-js/modules/es.typed-array.reduce.js","core-js/modules/es.typed-array.reduce-right.js","core-js/modules/es.typed-array.reverse.js","core-js/modules/es.typed-array.set.js","core-js/modules/es.typed-array.slice.js","core-js/modules/es.typed-array.some.js","core-js/modules/es.typed-array.sort.js","core-js/modules/es.typed-array.subarray.js","core-js/modules/es.typed-array.to-locale-string.js","core-js/modules/es.typed-array.to-string.js","core-js/modules/es.array-buffer.constructor.js","core-js/modules/es.string.replace.js","core-js/modules/es.array.join.js","core-js/modules/es.number.constructor.js","core-js/modules/es.number.to-fixed.js","core-js/modules/es.promise.finally.js","core-js/modules/es.string.match.js","core-js/modules/es.object.values.js","core-js/modules/es.array.sort.js","core-js/modules/es.array.filter.js","core-js/modules/es.number.is-finite.js","core-js/modules/es.string.iterator.js","core-js/modules/web.dom-collections.iterator.js","core-js/modules/web.url.js","core-js/modules/web.url-search-params.js","core-js/modules/es.string.includes.js","core-js/modules/es.array.splice.js","core-js/modules/es.function.name.js","core-js/modules/es.string.split.js","core-js/modules/es.map.js","core-js/modules/esnext.map.delete-all.js","core-js/modules/esnext.map.every.js","core-js/modules/esnext.map.filter.js","core-js/modules/esnext.map.find.js","core-js/modules/esnext.map.find-key.js","core-js/modules/esnext.map.includes.js","core-js/modules/esnext.map.key-of.js","core-js/modules/esnext.map.map-keys.js","core-js/modules/esnext.map.map-values.js","core-js/modules/esnext.map.merge.js","core-js/modules/esnext.map.reduce.js","core-js/modules/esnext.map.some.js","core-js/modules/esnext.map.update.js","core-js/modules/es.number.is-nan.js","core-js/modules/es.string.repeat.js","core-js/modules/es.array.find.js","core-js/modules/es.typed-array.int32-array.js"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).DashPlugin=t(null,null,null,null,null,null,null,null,e.Player)}(this,(function(e,t,n,U,F,Q,i,l,r){"use strict";function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);t&&(U=U.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,U)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){h(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(){o=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",l=F.toStringTag||"@@toStringTag";function r(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{r({},"")}catch(N){r=function(e,t,n){return e[t]=n}}function a(e,t,n,F){var Q=t&&t.prototype instanceof B?t:B,i=Object.create(Q.prototype),l=new E(F||[]);return U(i,"_invoke",{value:J(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(N){return{type:"throw",arg:N}}}e.wrap=a;var s={};function B(){}function c(){}function R(){}var V={};r(V,Q,(function(){return this}));var u=Object.getPrototypeOf,h=u&&u(u(y([])));h&&h!==t&&n.call(h,Q)&&(V=h);var Z=R.prototype=B.prototype=Object.create(V);function S(e){["next","throw","return"].forEach((function(t){r(e,t,(function(e){return this._invoke(t,e)}))}))}function p(e,t){function F(U,Q,i,l){var r=d(e[U],e,Q);if("throw"!==r.type){var a=r.arg,o=a.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,l)}),(function(e){F("throw",e,i,l)})):t.resolve(o).then((function(e){a.value=e,i(a)}),(function(e){return F("throw",e,i,l)}))}l(r.arg)}var Q;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return Q=Q?Q.then(U,U):U()}})}function J(e,t,n){var U="suspendedStart";return function(F,Q){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(n.method=F,n.arg=Q;;){var i=n.delegate;if(i){var l=m(i,n);if(l){if(l===s)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var r=d(e,t,n);if("normal"===r.type){if(U=n.done?"completed":"suspendedYield",r.arg===s)continue;return{value:r.arg,done:n.done}}"throw"===r.type&&(U="completed",n.method="throw",n.arg=r.arg)}}}function m(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,m(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),s;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,s;var Q=F.arg;return Q?Q.done?(t[e.resultName]=Q.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,s):Q:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,s)}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 E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function y(e){if(e){var t=e[Q];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:f}}function f(){return{value:void 0,done:!0}}return c.prototype=R,U(Z,"constructor",{value:R,configurable:!0}),U(R,"constructor",{value:c,configurable:!0}),c.displayName=r(R,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===c||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,R):(e.__proto__=R,r(e,l,"GeneratorFunction")),e.prototype=Object.create(Z),e},e.awrap=function(e){return{__await:e}},S(p.prototype),r(p.prototype,i,(function(){return this})),e.AsyncIterator=p,e.async=function(t,n,U,F,Q){void 0===Q&&(Q=Promise);var i=new p(a(t,n,U,F),Q);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},S(Z),r(Z,l,"Generator"),r(Z,Q,(function(){return this})),r(Z,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=y,E.prototype={constructor:E,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(k),!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 U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],i=Q.completion;if("root"===Q.tryLoc)return U("end");if(Q.tryLoc<=this.prev){var l=n.call(Q,"catchLoc"),r=n.call(Q,"finallyLoc");if(l&&r){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}else if(l){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0)}else{if(!r)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=t&&t<=Q.finallyLoc&&(Q=null);var i=Q?Q.completion:{};return i.type=e,i.arg=t,Q?(this.method="next",this.next=Q.finallyLoc,s):this.complete(i)},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),s},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),s}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;k(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:y(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),s}},e}function s(e){return(s="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 B(e,t,n,U,F,Q,i){try{var l=e[Q](i),r=l.value}catch(a){return void n(a)}l.done?t(r):Promise.resolve(r).then(U,F)}function c(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var Q=e.apply(t,n);function i(e){B(Q,U,F,i,l,"next",e)}function l(e){B(Q,U,F,i,l,"throw",e)}i(void 0)}))}}function R(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function V(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,b(U.key),U)}}function u(e,t,n){return t&&V(e.prototype,t),n&&V(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function h(e,t,n){return(t=b(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Z(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&&p(e,t)}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e,t){return(p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function J(e,t){if(null==e)return{};var n,U,F=function(e,t){if(null==e)return{};var n,U,F={},Q=Object.keys(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||(F[n]=e[n]);return F}(e,t);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(F[n]=e[n])}return F}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function W(e){var t=function(){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}}();return function(){var n,U=S(e);if(t){var F=S(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return 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 m(e)}(this,n)}}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var U,F,Q,i,l=[],r=!0,a=!1;try{if(Q=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;r=!1}else for(;!(r=(U=Q.call(n)).done)&&(l.push(U.value),l.length!==t);r=!0);}catch(d){a=!0,F=d}finally{try{if(!r&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(a)throw F}}return l}}(e,t)||y(e,t)||function(){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 E(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||y(e)||function(){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 y(e,t){if(e){if("string"==typeof e)return f(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)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,U=new Array(t);n<t;n++)U[n]=e[n];return U}function N(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=y(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var U=0,F=function(){};return{s:F,n:function(){return U>=e.length?{done:!0}:{done:!1,value:e[U++]}},e:function(e){throw e},f:F}}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 Q,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,Q=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw Q}}}}function b(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var v=function(){function e(){R(this,e)}return u(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(),U=Math.max(16.7-(n-e),0),F=setTimeout(t,U);return e=n+U,F}}window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}}]),e}(),T=function(){function e(){R(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 u(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(){v.install()}}]),e}(),C=function(){function e(){R(this,e),this.timeID=null,this.func=null}return u(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}(),g=D&&!function(){var e="_localstorage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(t){return!0}}();function D(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}var X={length:g?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(U){}},getItem:function(e){try{return localStorage.getItem(e)}catch(t){return null}},key:function(e){try{return localStorage.key(e)}catch(t){return null}},setItem:function(e,t){try{localStorage.setItem(e,t)}catch(n){}},removeItem:function(e){try{localStorage.removeItem(e)}catch(t){}},isSupport:g},x=function(){function e(){var t,n;R(this,e);var U=new Promise((function(e,U){t=e,n=U}));return U.resolve=t,U.reject=n,U}return u(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),L=function(){function e(){R(this,e)}return u(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(U){t=null}return t}},{key:"parseDOMChildren",value:function(t,n){if(t.nodeType===Node.DOCUMENT_NODE){for(var U={},F=t.childNodes,Q=0;Q<F.length;Q++){var i=F[Q];i.nodeType===Node.ELEMENT_NODE&&(U=e.parseDOMChildren(i))}return U}if(t.nodeType===Node.ELEMENT_NODE){for(var l={__cnt:0},r=[],a=t.childNodes,d=0;d<a.length;d++){var o=a[d],s=e.getNodeLocalName(o);if(o.nodeType!==Node.COMMENT_NODE){var B="".concat(n,".").concat(s);if(l.__cnt++,null==l[s]){var c=e.parseDOMChildren(o,B);if("#text"!==s||/[^\s]/.test(c)){var R={};R[s]=c,r.push(R)}l[s]=c,e.toArrayAccessForm(l,s)}else{null!=l[s]&&(l[s]instanceof Array||(l[s]=[l[s]],e.toArrayAccessForm(l,s,B)));var V=e.parseDOMChildren(o,B);if("#text"!==s||/[^\s]/.test(V)){var u={};u[s]=V,r.push(u)}l[s][l[s].length]=V}}}for(var h=0;h<t.attributes.length;h++){var Z=t.attributes[h];l.__cnt++;var S=Z.value;l[Z.name]=S}var p=t.prefix;return null!=p&&""!==p&&(l.__cnt++,l.__prefix=p),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 I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);t&&(U=U.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,U)}return n}function G(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach((function(t){P(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function M(){M=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",l=F.toStringTag||"@@toStringTag";function r(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{r({},"")}catch(f){r=function(e,t,n){return e[t]=n}}function a(e,t,n,F){var Q=t&&t.prototype instanceof s?t:s,i=Object.create(Q.prototype),l=new k(F||[]);return U(i,"_invoke",{value:p(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(f){return{type:"throw",arg:f}}}e.wrap=a;var o={};function s(){}function B(){}function c(){}var R={};r(R,Q,(function(){return this}));var V=Object.getPrototypeOf,u=V&&V(V(E([])));u&&u!==t&&n.call(u,Q)&&(R=u);var h=c.prototype=s.prototype=Object.create(R);function Z(e){["next","throw","return"].forEach((function(t){r(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function F(U,Q,i,l){var r=d(e[U],e,Q);if("throw"!==r.type){var a=r.arg,o=a.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,l)}),(function(e){F("throw",e,i,l)})):t.resolve(o).then((function(e){a.value=e,i(a)}),(function(e){return F("throw",e,i,l)}))}l(r.arg)}var Q;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return Q=Q?Q.then(U,U):U()}})}function p(e,t,n){var U="suspendedStart";return function(F,Q){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(n.method=F,n.arg=Q;;){var i=n.delegate;if(i){var l=J(i,n);if(l){if(l===o)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var r=d(e,t,n);if("normal"===r.type){if(U=n.done?"completed":"suspendedYield",r.arg===o)continue;return{value:r.arg,done:n.done}}"throw"===r.type&&(U="completed",n.method="throw",n.arg=r.arg)}}}function J(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,J(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),o;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,o;var Q=F.arg;return Q?Q.done?(t[e.resultName]=Q.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):Q:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}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 W(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function E(e){if(e){var t=e[Q];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return B.prototype=c,U(h,"constructor",{value:c,configurable:!0}),U(c,"constructor",{value:B,configurable:!0}),B.displayName=r(c,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,r(e,l,"GeneratorFunction")),e.prototype=Object.create(h),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),r(S.prototype,i,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,U,F,Q){void 0===Q&&(Q=Promise);var i=new S(a(t,n,U,F),Q);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},Z(h),r(h,l,"Generator"),r(h,Q,(function(){return this})),r(h,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=E,k.prototype={constructor:k,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(W),!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 U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],i=Q.completion;if("root"===Q.tryLoc)return U("end");if(Q.tryLoc<=this.prev){var l=n.call(Q,"catchLoc"),r=n.call(Q,"finallyLoc");if(l&&r){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}else if(l){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0)}else{if(!r)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=t&&t<=Q.finallyLoc&&(Q=null);var i=Q?Q.completion:{};return i.type=e,i.arg=t,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(i)},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),o},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),W(n),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;W(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),o}},e}function Y(e){return(Y="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 w(e,t,n,U,F,Q,i){try{var l=e[Q](i),r=l.value}catch(a){return void n(a)}l.done?t(r):Promise.resolve(r).then(U,F)}function K(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var Q=e.apply(t,n);function i(e){w(Q,U,F,i,l,"next",e)}function l(e){w(Q,U,F,i,l,"throw",e)}i(void 0)}))}}function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function j(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,le(U.key),U)}}function H(e,t,n){return t&&j(e.prototype,t),n&&j(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function P(e,t,n){return(t=le(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z(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&&A(e,t)}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function A(e,t){return(A=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function q(){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 $(e,t,n){return($=q()?Reflect.construct.bind():function(e,t,n){var U=[null];U.push.apply(U,t);var F=new(Function.bind.apply(e,U));return n&&A(F,n.prototype),F}).apply(null,arguments)}function ee(e){var t="function"==typeof Map?new Map:void 0;return ee=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;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,U)}function U(){return $(e,arguments,O(this).constructor)}return U.prototype=Object.create(e.prototype,{constructor:{value:U,enumerable:!1,writable:!0,configurable:!0}}),A(U,e)},ee(e)}function te(e,t){if(null==e)return{};var n,U,F=function(e,t){if(null==e)return{};var n,U,F={},Q=Object.keys(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||(F[n]=e[n]);return F}(e,t);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(F[n]=e[n])}return F}function ne(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ue(e){var t=q();return function(){var n,U=O(e);if(t){var F=O(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return 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 ne(e)}(this,n)}}function Fe(){return Fe="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var U=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=O(e)););return e}(e,t);if(U){var F=Object.getOwnPropertyDescriptor(U,t);return F.get?F.get.call(arguments.length<3?e:n):F.value}},Fe.apply(this,arguments)}function Qe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,U=new Array(t);n<t;n++)U[n]=e[n];return U}function ie(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Qe(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)?Qe(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var U=0,F=function(){};return{s:F,n:function(){return U>=e.length?{done:!0}:{done:!1,value:e[U++]}},e:function(e){throw e},f:F}}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 Q,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,Q=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw Q}}}}function le(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}Promise.withResolvers||(Promise.withResolvers=function(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e});var re,ae=function(){function e(){_(this,e)}return H(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(t){}}},{key:"buffers",value:function(e,t){if(!e||!e.length)return[];for(var n=[],U=0,F=e.length;U<F;U++){var Q=n.length;if(Q&&t){var i=n[Q-1],l=i[1];if(e.start(U)-l<=t){var r=e.end(U);r>l&&(i[1]=r)}else n.push([e.start(U),e.end(U)])}else n.push([e.start(U),e.end(U)])}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,U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!t||!t.length)return{start:0,end:0,buffers:[]};for(var F=0,Q=0,i=0,l=0,r=0,a=0,d=0,o=e.buffers(t,U),s=0,B=o.length;s<B;s++){var c=o[s];if(n+U>=c[0]&&n<=c[1])F=c[0],Q=c[1],i=s;else{if(n+U<c[0]){l=c[0],r=c[1];break}n+U>c[1]&&(a=c[0],d=c[1])}}return{start:F,end:Q,index:i,buffers:o,nextStart:l,nextEnd:r,prevStart:a,prevEnd:d,currentTime:n,behind:n-F,remaining:Q?Q-n:0,length:e.totalLength&&e.totalLength(o)}}}]),e}(),de="undefined"!=typeof window,oe="manifest",se="network",Be="network_timeout",ce="network_forbidden",Re="network_notfound",Ve="network_range_not_satisfiable",ue="demux",he="remux",Ze="media",Se="drm",pe="other",Je="runtime",me={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"},We=(P(re={},oe,{HLS:1100,DASH:1200}),P(re,se,2100),P(re,Be,2101),P(re,ce,2103),P(re,Re,2104),P(re,Ve,2116),P(re,ue,{FLV:3100,HLS:3200,MP4:3300,FMP4:3400,SIDX:3410}),P(re,he,{FMP4:4100,MP4:4200}),P(re,Ze,{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}),P(re,Se,{LICENSE:7100,CUSTOM_LICENSE:7200}),P(re,pe,8e3),P(re,Je,{NO_CANPLAY_ERROR:9001,BUFFERBREAK_ERROR:9002,WAITING_TIMEOUT_ERROR:9003}),re),ke=function(e){z(n,e);var t=Ue(n);function n(e,U,F,Q,i){var l;return _(this,n),(l=t.call(this,i||(null==F?void 0:F.message))).errorType=e===Be?se:e,l.originError=F,l.ext=Q,l.errorCode=We[e][U]||We[e],l.errorMessage=l.message,l.errorCode||(l.errorType=pe,l.errorCode=We[l.errorType]),l}return H(n,null,[{key:"create",value:function(e,t,U,F,Q){return e instanceof n?e:(e instanceof Error&&(U=e,e=""),e||(e=pe),new n(e,t,U,F,Q))}},{key:"network",value:function(e){var t;return new n(null!=e&&e.isTimeout?Be:se,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}(ee(Error)),Ee={DEBUG:1,LOG:2,WARN:3,ERROR:4},ye=["Boolean","Number","String","Undefined","Null","Date","Object"],fe=function(){function e(t,n){_(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)||204800,this.logSize=0,this.logTextArray=[]}return H(e,[{key:"debug",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Ee.DEBUG].concat(U)),e.disabled||(t=console).debug.apply(t,[this._prefix,Ne()].concat(U))}},{key:"log",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Ee.LOG].concat(U)),e.disabled||(t=console).log.apply(t,[this._prefix,Ne()].concat(U))}},{key:"warn",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Ee.WARN].concat(U)),e.disabled||(t=console).warn.apply(t,[this._prefix,Ne()].concat(U))}},{key:"error",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Ee.ERROR].concat(U)),e.disabled||(t=console).error.apply(t,[this._prefix,Ne()].concat(U))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];var Q=U.map((function(e){return ve(e)}));t=this._prefix+Ne()+JSON.stringify(Q)}catch(l){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var i=this.logTextArray.shift();this.logSize-=i.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 Ne(){return(new Date).toLocaleString()}function be(e){if("object"!==Y(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 ve(e,t,n){n||(n=1),t||(t=2);var U={};if(!e||"object"!==Y(e))return e;var F=Object.prototype.toString.call(e).slice(8,-1);if(!ye.includes(F))return F;if(!(n>t)){for(var Q in e)Object.prototype.hasOwnProperty.call(e,Q)&&(n===t?U[Q]=be(e[Q]):"object"===Y(e[Q])?U[Q]=ve(e[Q],t,n+1):U[Q]=e[Q]);return U}}function Te(){var e,t,n=new Promise((function(n,U){e=n,t=U}));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 Ce(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}}P(fe,"disabled",!0);var ge=function(e){try{return JSON.stringify(e)}catch(t){return""}};function De(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];try{return de?e&&"undefined"!=typeof ManagedMediaSource?ManagedMediaSource:window.MediaSource:null}catch(t){}}function Xe(e){return/ManagedMediaSource/gi.test(Object.prototype.toString.call(e))}var xe="appendBuffer",Le="removeBuffer",Ie="updateDuration",Ge=function(){function e(t,n){var U=this;_(this,e),P(this,"media",null),P(this,"mediaSource",null),P(this,"_openPromise",Te()),P(this,"_queue",Object.create(null)),P(this,"_sourceBuffer",Object.create(null)),P(this,"_mseFullFlag",{}),P(this,"_st",0),P(this,"_opst",0),P(this,"_logger",null),P(this,"_config",null),P(this,"_url",null),P(this,"_onStartStreaming",(function(){U._logger.debug("startstreaming")})),P(this,"_onEndStreaming",(function(){U._logger.debug("endstreaming")})),P(this,"_onSBUpdateEnd",(function(e){var t=U._queue[e];if(t){var n=t[0];if((null==n?void 0:n.opName)!==Ie&&t.shift(),n){var F,Q,i=Ce()-U._opst;U._logger.debug("UpdateEnd(".concat(e,"/").concat(n.opName,")"),ge(function(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}(null===(F=U._sourceBuffer[e])||void 0===F?void 0:F.buffered)),i,n.context),n.promise.resolve({name:n.opName,context:n.context,costtime:i});var l=null===(Q=n.context)||void 0===Q?void 0:Q.callback;l&&"function"==typeof l&&l(n.context),U._startQueue(e)}}})),P(this,"_onSBUpdateError",(function(e,t){var n=U._queue[e];if(n){var F=n[0];F&&(U._logger.error("UpdateError",e,F.opName,F.context),F.promise.reject(new ke(Ze,me.MSE_APPEND_BUFFER,t)))}})),this._config=Object.assign(e.getDefaultConfig(),n),t&&this.bindMedia(t),this._logger=new fe("MSE"),this._config.openLog&&fe.enable()}var t,n,U;return H(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 U=e._queue[n];Array.isArray(U)&&(t||(t=U.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!Xe(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 U=0;if(Object.keys(this._sourceBuffer).forEach((function(e){try{U=Math.max(t.bufferEnd(e)||0,U)}catch(n){}})),e<U)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))}),Ie,{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 U=Ce()-e._st;e._logger.debug("sourceopen",U),t.removeEventListener("sourceopen",n),e._openPromise.resolve({costtime:U})})),this._openPromise=Te()}return this._openPromise}},{key:"bindMedia",value:(U=K(M().mark((function e(t){var n,U,F,Q,i=this;return M().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=De(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,U=this.mediaSource=new n,F=Xe(U),this._st=Ce(),Q=function e(){var n=Ce()-i._st;i._logger.debug("sourceopen"),U.removeEventListener("sourceopen",e),URL.revokeObjectURL(t.src),i._openPromise.resolve({costtime:n})},U.addEventListener("sourceopen",Q),F&&(U.addEventListener("startstreaming",this._onStartStreaming),U.addEventListener("endstreaming",this._onEndStreaming)),this._url=URL.createObjectURL(U),t.src=this._url,t.disableRemotePlayback=F,e.abrupt("return",this._openPromise);case 17:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"unbindMedia",value:(n=K(M().mark((function e(){var t,n,U,F=this;return M().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=F._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,U="open"===t.readyState,n&&U)try{t.endOfStream()}catch(Q){}Object.keys(this._sourceBuffer).forEach((function(e){try{t.removeSourceBuffer(F._sourceBuffer[e])}catch(Q){}})),Xe(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(Q){}this.media=null}this.mediaSource=null,this._openPromise=Te(),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(U){throw new ke(Ze,me.MSE_ADD_SB,U)}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,U=this._sourceBuffer[e];return this.mediaSource&&U&&U.mimeType!==t?"function"!=typeof U.changeType?Promise.reject(new ke(Ze,me.MSE_CHANGE_TYPE,new Error("changeType is not a function"))):this._enqueueOp(e,(function(){try{U.changeType(t)}catch(F){throw new ke(Ze,me.MSE_CHANGE_TYPE,F)}U.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 U=this;return t&&t.byteLength&&this._sourceBuffer[e]?this._enqueueOp(e,(function(){var F;U.mediaSource&&!U.media.error&&(U._logger.debug("MSE APPEND START",n),U._opst=Ce(),null===(F=U._sourceBuffer[e])||void 0===F||F.appendBuffer(t))}),xe,n):Promise.resolve()}},{key:"remove",value:function(e,t,n,U){var F=this,Q=!1;return this._mseFullFlag[e]&&(Q=!0),this._enqueueOp(e,(function(){if(F.mediaSource&&!F.media.error){var Q=F._sourceBuffer[e];t>=n||!Q?F._onSBUpdateEnd(e):(F._opst=Ce(),F._logger.debug("MSE REMOVE START",e,t,n,U),Q.remove(t,n))}}),Le,U,Q)}},{key:"clearBuffer",value:function(e,t){var n,U=this;return Object.keys(this._sourceBuffer).forEach((function(F){n=U.remove(F,e,t)})),n||Promise.resolve()}},{key:"clearAllBuffer",value:function(){var e,t=this;return Object.keys(this._sourceBuffer).forEach((function(n){var U=t._sourceBuffer[n];e=t.remove(n,0,ae.end(ae.get(U)))})),e}},{key:"clearOpQueues",value:function(e,t){var n;this._logger.debug("MSE clearOpQueue START");var U=this._queue[e];if(t&&U)this._queue[e]=[];else if(U&&U[e]&&!(U.length<5)){var F=[];U.forEach((function(e){e.context&&e.context.isinit&&F.push(e)})),this._queue[e]=U.slice(0,2),F.length>0&&(n=this._queue[e]).push.apply(n,F)}}},{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 ae.get(this._sourceBuffer[e])}},{key:"bufferStart",value:function(e){return ae.start(this.buffered(e))}},{key:"bufferEnd",value:function(e){return ae.end(this.buffered(e))}},{key:"_enqueueOp",value:function(e,t,n,U,F){var Q=this;if(!this.mediaSource)return Promise.resolve();var i=this._queue[e]=this._queue[e]||[],l={exec:t,promise:Te(),opName:n,context:U};return F?(i.splice(0,0,l),this._mseFullFlag[e]=!1,this._startQueue(e)):i.push(l),this.isOpened||this.isEnded?1===i.length&&this._startQueue(e):this._openPromise.then((function(){1===i.length&&Q._startQueue(e)})),l.promise}},{key:"_enqueueBlockingOp",value:(t=K(M().mark((function e(t,n,U){var F,Q,i=this;return M().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((F=Object.keys(this._sourceBuffer)).length){e.next=5;break}return e.abrupt("return",t());case 5:return Q=[],F.forEach((function(e){var t=i._queue[e],F=Te();Q.push(F),t.push({exec:function(){F.resolve()},promise:F,opName:n,context:U}),1===t.length&&i._startQueue(e)})),e.abrupt("return",Promise.all(Q).then((function(){try{return t()}finally{F.forEach((function(e){var t=i._queue[e],n=i._sourceBuffer[e];null==t||t.shift(),n&&n.updating||i._startQueue(e)}))}})));case 8:case"end":return e.stop()}}),e,this)}))),function(e,n,U){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(U){U&&U.message&&U.message.indexOf("SourceBuffer is full")>=0?(this._mseFullFlag[e]=!0,n.context&&"object"===Y(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 ke(Ze,me.MSE_FULL,U))):(this._logger.error(U),n.promise.reject(U.constructor===ke?U:new ke(Ze,me.MSE_OTHER,U)),t.shift(),this._startQueue(e))}}}},{key:"setTimeoffset",value:function(e,t,n){var U=this;return this._enqueueOp(e,(function(){t<0&&(t+=.001),U._sourceBuffer[e].timestampOffset=t,U._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=De();if(!t)return!1;try{return t.isTypeSupported(e)}catch(n){return this._logger.error(e,n),!1}}},{key:"isMMSOnly",value:function(){return"undefined"!=typeof ManagedMediaSource&&"undefined"==typeof MediaSource}},{key:"getDefaultConfig",value:function(){return{openLog:!1,preferMMS:!1}}}]),e}();P(Ge,"VIDEO","video"),P(Ge,"AUDIO","audio");var Me="fetch",Ye="xhr",we="arraybuffer",Ke="text",_e="json",je=function(e){z(n,e);var t=Ue(n);function n(e,U,F,Q){var i;return _(this,n),P(ne(i=t.call(this,Q)),"retryCount",0),P(ne(i),"isTimeout",!1),P(ne(i),"loaderType",Me),P(ne(i),"startTime",0),P(ne(i),"endTime",0),P(ne(i),"options",{}),i.url=e,i.request=U,i.response=F,i}return H(n)}(ee(Error)),He=Object.prototype.toString;function Pe(e){if("[object Object]"!==He.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function ze(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 Oe(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Ae(e,t){if(e){if(!t)return e;var n,U=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){var n;return n=t,"[object Date]"===He.call(n)?t=t.toISOString():function(e){return null!==e&&"object"===Y(e)}(t)&&(t=JSON.stringify(t)),"".concat(Oe(e),"=").concat(Oe(t))})).join("&")})).filter(Boolean).join("&");if(U){var F=e.indexOf("#");-1!==F&&(e=e.slice(0,F)),e+=(-1===e.indexOf("?")?"?":"&")+U}return e}}function qe(e,t,n,U,F,Q,i,l,r,a,d){return F=null!=F?parseFloat(F):null,U=parseInt(U||"0",10),Number.isNaN(U)&&(U=0),{data:e,done:t,options:{range:r,vid:a,index:l,contentLength:U,age:F,startTime:Q,firstByteTime:i,endTime:Date.now(),priOptions:d},response:n}}function $e(e,t){return Math.round(8*e*1e3/t/1024)}var et="error",tt="real_time_speed",nt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Ut(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ft={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function U(){}function F(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function Q(e,t,U,Q,i){if("function"!=typeof U)throw new TypeError("The listener must be a function");var l=new F(U,Q||e,i),r=n?n+t:t;return e._events[r]?e._events[r].fn?e._events[r]=[e._events[r],l]:e._events[r].push(l):(e._events[r]=l,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new U:delete e._events[t]}function l(){this._events=new U,this._eventsCount=0}Object.create&&(U.prototype=Object.create(null),(new U).__proto__||(n=!1)),l.prototype.eventNames=function(){var e,U,F=[];if(0===this._eventsCount)return F;for(U in e=this._events)t.call(e,U)&&F.push(n?U.slice(1):U);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(e)):F},l.prototype.listeners=function(e){var t=n?n+e:e,U=this._events[t];if(!U)return[];if(U.fn)return[U.fn];for(var F=0,Q=U.length,i=new Array(Q);F<Q;F++)i[F]=U[F].fn;return i},l.prototype.listenerCount=function(e){var t=n?n+e:e,U=this._events[t];return U?U.fn?1:U.length:0},l.prototype.emit=function(e,t,U,F,Q,i){var l=n?n+e:e;if(!this._events[l])return!1;var r,a,d=this._events[l],o=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),o){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,U),!0;case 4:return d.fn.call(d.context,t,U,F),!0;case 5:return d.fn.call(d.context,t,U,F,Q),!0;case 6:return d.fn.call(d.context,t,U,F,Q,i),!0}for(a=1,r=new Array(o-1);a<o;a++)r[a-1]=arguments[a];d.fn.apply(d.context,r)}else{var s,B=d.length;for(a=0;a<B;a++)switch(d[a].once&&this.removeListener(e,d[a].fn,void 0,!0),o){case 1:d[a].fn.call(d[a].context);break;case 2:d[a].fn.call(d[a].context,t);break;case 3:d[a].fn.call(d[a].context,t,U);break;case 4:d[a].fn.call(d[a].context,t,U,F);break;default:if(!r)for(s=1,r=new Array(o-1);s<o;s++)r[s-1]=arguments[s];d[a].fn.apply(d[a].context,r)}}return!0},l.prototype.on=function(e,t,n){return Q(this,e,t,n,!1)},l.prototype.once=function(e,t,n){return Q(this,e,t,n,!0)},l.prototype.removeListener=function(e,t,U,F){var Q=n?n+e:e;if(!this._events[Q])return this;if(!t)return i(this,Q),this;var l=this._events[Q];if(l.fn)l.fn!==t||F&&!l.once||U&&l.context!==U||i(this,Q);else{for(var r=0,a=[],d=l.length;r<d;r++)(l[r].fn!==t||F&&!l[r].once||U&&l[r].context!==U)&&a.push(l[r]);a.length?this._events[Q]=1===a.length?a[0]:a:i(this,Q)}return this},l.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new U,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}(Ft);var Qt=Ut(Ft.exports),it=2097152,lt=function(e){z(U,e);var t,n=Ue(U);function U(){var e;return _(this,U),P(ne(e=n.call(this)),"_abortController",null),P(ne(e),"_timeoutTimer",null),P(ne(e),"_reader",null),P(ne(e),"_response",null),P(ne(e),"_aborted",!1),P(ne(e),"_index",-1),P(ne(e),"_range",null),P(ne(e),"_receivedLength",0),P(ne(e),"_running",!1),P(ne(e),"_logger",null),P(ne(e),"_vid",""),P(ne(e),"_onProcessMinLen",0),P(ne(e),"_onCancel",null),P(ne(e),"_priOptions",null),e}return H(U,[{key:"load",value:function(e){var t,n=this,U=e.url,F=e.vid,Q=e.timeout,i=e.responseType,l=e.onProgress,r=e.index,a=e.onTimeout,d=e.onCancel,o=e.range,s=e.transformResponse,B=e.request,c=e.params,R=e.logger,V=e.method,u=e.headers,h=e.body,Z=e.mode,S=e.credentials,p=e.cache,J=e.redirect,m=e.referrer,W=e.referrerPolicy,k=e.onProcessMinLen,E=e.priOptions;this._logger=R,this._aborted=!1,this._onProcessMinLen=k,this._onCancel=d,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=r,this._range=o||[0,0],this._vid=F||U,this._priOptions=E||{};var y={method:V,headers:u,body:h,mode:Z,credentials:S,cache:p,redirect:J,referrer:m,referrerPolicy:W,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},f=!1;clearTimeout(this._timeoutTimer),U=Ae(U,c);var N=ze(o);N&&(u=B?B.headers:y.headers=y.headers||(Headers?new Headers:{}),Headers&&u instanceof Headers?u.append("Range",N):u.Range=N),Q&&(this._timeoutTimer=setTimeout((function(){if(f=!0,n.cancel(),a){var e=new je(U,y,null,"timeout");e.isTimeout=!0,a(e,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions})}}),Q));var b=Date.now();return this._logger.debug("[fetch load start], index,",r,",range,",o),new Promise((function(e,t){fetch(B||U,B?void 0:y).then(function(){var F=K(M().mark((function F(Q){var a,d,B,c;return M().wrap((function(F){for(;;)switch(F.prev=F.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=Q,!n._aborted&&n._running){F.next=4;break}return F.abrupt("return");case 4:if(s&&(Q=s(Q,U)||Q),Q.ok){F.next=7;break}throw new je(U,y,Q,"bad network response");case 7:if(a=Date.now(),i!==Ke){F.next=15;break}return F.next=11,Q.text();case 11:d=F.sent,n._running=!1,F.next=37;break;case 15:if(i!==_e){F.next=22;break}return F.next=18,Q.json();case 18:d=F.sent,n._running=!1,F.next=37;break;case 22:if(!l){F.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(Q,l,b,a),F.abrupt("return");case 29:return F.next=31,Q.arrayBuffer();case 31:d=F.sent,d=new Uint8Array(d),n._running=!1,B=Date.now()-b,c=$e(d.byteLength,B),n.emit(tt,{speed:c,len:d.byteLength,time:B,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",r,",range,",o),e(qe(d,!0,Q,Q.headers.get("Content-Length"),Q.headers.get("age"),b,a,r,o,n._vid,n._priOptions));case 39:case"end":return F.stop()}}),F)})));return function(e){return F.apply(this,arguments)}}()).catch((function(e){var F;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!f||((e=e instanceof je?e:new je(U,y,null,null===(F=e)||void 0===F?void 0:F.message)).startTime=b,e.endTime=Date.now(),e.isTimeout=f,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=K(M().mark((function e(){return M().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(t){}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,U){var F=this;if(!e.body||!e.body.getReader){this._running=!1;var Q=new je(e.url,"",e,"onProgress of bad response.body.getReader");return Q.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(Q)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(it),this._writeIdx=0);var i,l,r,a=this._reader=e.body.getReader(),d=function(){var Q=K(M().mark((function Q(){var o,s,B,c,R,V,u,h;return M().wrap((function(Q){for(;;)switch(Q.prev=Q.next){case 0:return l=Date.now(),Q.prev=1,Q.next=4,a.read();case 4:i=Q.sent,r=Date.now(),Q.next=13;break;case 8:return Q.prev=8,Q.t0=Q.catch(1),r=Date.now(),F._aborted||(F._running=!1,Q.t0.options={index:F._index,range:F._range,vid:F._vid,priOptions:F._priOptions},F.reject(Q.t0)),Q.abrupt("return");case 13:if(s=(null===(o=F._range)||void 0===o?void 0:o.length)>0?F._range[0]:0,B=s+F._receivedLength,!F._aborted){Q.next=19;break}return F._running=!1,t(void 0,!1,{range:[B,B],vid:F._vid,index:F._index,startTime:l,endTime:r,st:n,firstByteTime:U,priOptions:F._priOptions},e),Q.abrupt("return");case 19:c=i.value?i.value.byteLength:0,F._receivedLength+=c,F._logger.debug("【fetchLoader,onProgress call】,task,",F._range,", start,",B,", end,",s+F._receivedLength,", done,",i.done),F._onProcessMinLen>0?F._writeIdx+c>=F._onProcessMinLen||i.done?((R=new Uint8Array(F._writeIdx+c)).set(F._cache.slice(0,F._writeIdx),0),c>0&&R.set(i.value,F._writeIdx),F._writeIdx=0,F._logger.debug("【fetchLoader,onProgress enough】,done,",i.done,",len,",R.byteLength,", writeIdx,",F._writeIdx)):c>0&&F._writeIdx+c<it?(F._cache.set(i.value,F._writeIdx),F._writeIdx+=c,F._logger.debug("【fetchLoader,onProgress cache】,len,",c,", writeIdx,",F._writeIdx)):c>0&&(V=new Uint8Array(F._writeIdx+c+2048),F._logger.debug("【fetchLoader,onProgress extra start】,size,",F._writeIdx+c+2048,", datalen,",c,", writeIdx,",F._writeIdx),V.set(F._cache.slice(0,F._writeIdx),0),c>0&&V.set(i.value,F._writeIdx),F._writeIdx+=c,delete F._cache,F._cache=V,F._logger.debug("【fetchLoader,onProgress extra end】,len,",c,", writeIdx,",F._writeIdx)):R=i.value,(R&&R.byteLength>0||i.done)&&t(R,i.done,{range:[F._range[0]+F._receivedLength-(R?R.byteLength:0),F._range[0]+F._receivedLength],vid:F._vid,index:F._index,startTime:l,endTime:r,st:n,firstByteTime:U,priOptions:F._priOptions},e),i.done?(u=Date.now()-n,h=$e(F._receivedLength,u),F.emit(tt,{speed:h,len:F._receivedLength,time:u,vid:F._vid,index:F._index,range:F._range,priOptions:F._priOptions}),F._running=!1,F._logger.debug("[fetchLoader onProgress end],task,",F._range,",done,",i.done),F.resolve(qe(i,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,U,F._index,F._range,F._vid,F._priOptions))):d();case 25:case"end":return Q.stop()}}),Q,null,[[1,8]])})));return function(){return Q.apply(this,arguments)}}();d()}},{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)}}]),U}(Qt);var rt=function(e){z(n,e);var t=Ue(n);function n(){var e;return _(this,n),P(ne(e=t.call(this)),"_xhr",null),P(ne(e),"_aborted",!1),P(ne(e),"_timeoutTimer",null),P(ne(e),"_range",null),P(ne(e),"_receivedLength",0),P(ne(e),"_url",null),P(ne(e),"_onProgress",null),P(ne(e),"_index",-1),P(ne(e),"_headers",null),P(ne(e),"_currentChunkSizeKB",384),P(ne(e),"_timeout",null),P(ne(e),"_xhr",null),P(ne(e),"_withCredentials",null),P(ne(e),"_startTime",-1),P(ne(e),"_loadCompleteResolve",null),P(ne(e),"_loadCompleteReject",null),P(ne(e),"_runing",!1),P(ne(e),"_logger",!1),P(ne(e),"_vid",""),P(ne(e),"_responseType",void 0),P(ne(e),"_credentials",void 0),P(ne(e),"_method",void 0),P(ne(e),"_transformResponse",void 0),P(ne(e),"_firstRtt",void 0),P(ne(e),"_onCancel",null),P(ne(e),"_priOptions",null),e}return H(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=Ae(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 je?e:new je(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===we&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,U=this._range[1];t<this._range[1]-n&&(U=n+t),e=[n,U],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,U,F;t._running=!1;var Q=new je(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(U=e.currentTarget)||void 0===U?void 0:U.status)+",statusText,"+(null==e||null===(F=e.currentTarget)||void 0===F?void 0:F.statusText));Q.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(Q)},n.ontimeout=function(e){t.cancel();var n=new je(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 U=this._headers||{},F=ze(e);F&&(U.Range=F),U&&Object.keys(U).forEach((function(e){n.setRequestHeader(e,U[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(Q){Q.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(Q)}}},{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 U=new je(this._url,null,G(G({},e.target.response),{},{status:n}),"bad response,status:"+n);return U.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(U)}var F,Q=null,i=!1,l=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===we){var r,a=new Uint8Array(e.target.response);if(F=l+this._receivedLength,a&&a.byteLength>0){this._receivedLength+=a.byteLength;var d=Date.now()-this._startTime,o=$e(this._receivedLength,d);this.emit(tt,{speed:o,len:this._receivedLength,time:d,vid:this._vid,index:this._index,range:[F,l+this._receivedLength],priOptions:this._priOptions})}Q=a,i=!((null===(r=this._range)||void 0===r?void 0:r.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",F,"end ",l+this._receivedLength,",dataLen,",a?a.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",i)}else i=!0,Q=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(Q,i,{index:this._index,vid:this._vid,range:[F,l+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},s),i?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(qe(this._onProgress?null:Q,i,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,Fe(O(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={},U=ie(e.getAllResponseHeaders().trim().split("\r\n"));try{for(U.s();!(t=U.n()).done;){var F=t.value.split(": ");n[F[0].toLowerCase()]=F.slice(1).join(": ")}}catch(Q){U.e(Q)}finally{U.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}(Qt),at=["retry","retryDelay","onRetryError","transformError"],dt=function(){function e(t,n){_(this,e),this.promise=Te(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new fe("Loader")),this._loaderType=t,this._loader=t===Me&&"undefined"!=typeof fetch?new lt:new rt,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return H(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,U=t.retryDelay,F=t.onRetryError,Q=t.transformError,i=te(t,at),l=function(){var t=K(M().mark((function t(){var r,a,d;return M().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(i);case 3:r=t.sent,e.promise.resolve(r),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,a=t.t0,Q&&(a=Q(a)||a),F&&e._retryCount>0&&F(a,e._retryCount,{index:i.index,vid:i.vid,range:i.range,priOptions:i.priOptions}),e._retryCount++,d=!0,e._retryCheckFunc&&(d=e._retryCheckFunc(t.t0)),!(d&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",i.range),e._retryTimer=setTimeout(l,U),t.abrupt("return");case 26:e.promise.reject(a);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=K(M().mark((function e(){return M().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 ot(){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 U=new Uint8Array(t.reduce((function(e,t){return e+t.byteLength}),0)),F=0;return t.forEach((function(e){U.set(e,F),F+=e.byteLength})),U}function st(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}var Bt=function(e){z(U,e);var t,n=Ue(U);function U(e){var t;return _(this,U),P(ne(t=n.call(this,e)),"type",Me),P(ne(t),"_queue",[]),P(ne(t),"_alive",[]),P(ne(t),"_currentTask",null),P(ne(t),"_finnalUrl",""),P(ne(t),"_config",void 0),t._config=function(e){return G({loaderType:Me,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:Ke,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)}(e),t._config.loaderType!==Ye&&lt.isSupported()||(t.type=Ye),t.log=e.logger,t}return H(U,[{key:"isFetch",value:function(){return this.type===Me}},{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&&Pe(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&Pe(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var U=new dt(this.type,n);return U.loader.on(tt,(function(e){t.emit(tt,e)})),this._queue.push(U),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),U.promise}},{key:"cancel",value:(t=K(M().mark((function e(){var t;return M().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,st();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 lt.isSupported()}}]),U}(Qt),ct="undefined"!=typeof window&&(window.location.search.indexOf("log=true")>-1||!!X.getItem("abrdebug")||!!X.getItem("playerlog"));var Rt=new fe("Logger",{logCacheLevel:Ee.DEBUG});ct&&fe.enable();var Vt={},ut=["abr"],ht=function(e){ut.includes(e)?Vt[e]=ct?function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];(t=console).log.apply(t,["[".concat(e,"]"),(new Date).toLocaleString()].concat(U))}:function(){}:Vt[e]=function(){for(var t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];Rt.log.apply(Rt,["[".concat(e,"]")].concat(n))}};for(var Zt in{log:"log",network:"network",abr:"abr",encrypt:"encrypt",segment:"segment",definition:"definition",content:"content",mse:"mse",media:"media",time:"time",preload:"preload",gap:"gap"})ht(Zt);function St(){return Rt}var pt=Vt,Jt=1e3,mt=6e3,Wt="danger_d_speed",kt={"x-cache":"x_cache","x-response-sinfo":"server_ip"},Et={"360p":.45,"480p":.75,"720p":1.6,"1080p":5,"2k":7.5,"4k":12.5},yt="player_start",ft="wasm_start",Nt="wasm_ready",bt="init_finished",vt="core_start",Tt="start_play",Ct="error_handler",gt="next_finished",Dt=0,Xt=1,xt=2,Lt="media_exception",It="task_request_error",Gt=1,Mt={MAIN:"0",BACK:"1"},Yt={INIT:"init",ERR:"error"},wt="currentDashType",Kt="cdn",_t="pcdn",jt="buffer_control",Ht="waiting",Pt="playing",zt={BUFFER_CONTROLS:"buffer_control"};function Ot(){var e=window.navigator.userAgent,t=e.indexOf("MSIE "),n=e.indexOf("Trident/");return t>0||n>0}function At(){return window.navigator.userAgent.toLowerCase().indexOf("qqbrowser")>-1}function qt(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function $t(){return navigator.userAgent.indexOf("Edge")>0}function en(){var e,t=qt(),n=Ot(),U=(e=window.navigator.userAgent,!(window.location.search.indexOf("firefox_dash=true")>-1||X.getItem("firefox_dash"))&&e.toLowerCase().indexOf("firefox")>-1),F=$t();return t||n||U||F}function tn(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":s(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(t){console.log(t)}return!1}function nn(){var e=window.MediaSource=window.MediaSource||window.WebKitMediaSource;return e&&"function"==typeof e.isTypeSupported}var Un=['video/mp4; codecs="av01.0.01M.08,mp4a.40.5"'];function Fn(e){if(!nn())return!1;for(var t=0;t<e.length;t++){var n=e[t];if(MediaSource.isTypeSupported(n))return!0}return!1}function Qn(){return!!navigator.requestMediaKeySystemAccess&&!en()}var ln,rn=Object.freeze({__proto__:null,AV1MimeTypes:Un,checkWebAssemblySupport:tn,getDrmServerUrl:function(e){return new Promise((function(t){tn()&&nn()&&navigator.requestMediaKeySystemAccess||t(void 0);qt();var n=navigator.userAgent.toLowerCase().indexOf("chrome")>-1,U=$t();n&&!At()?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(U?"https://".concat(e,"/video/drm/v1/playready?aid=32&kid="):void 0)}))},isAV1Supported:function(){return Fn(Un)},isCodecSupported:Fn,isEMESupported:Qn,isEncryptSupported:function(){return tn()&&nn()&&!Ot()&&!At()},isSupported:function(){return tn()&&nn()&&!Ot()}}),an=function(){function e(t,n,U,F){var Q=this;R(this,e),this.config=e.getDefaultConfig(),this.bitrate=0,F&&Object.keys(F).map((function(e){void 0!==F[e]&&null!==F[e]&&(Q.config[e]=F[e])})),this.duration=U,this.player=t,this.updateBitrate(n)}return u(e,[{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,U=e&&null!=n&&n.end?n.end-e.currentTime:0;return Math.max(t.rangeMaxDuration-U,t.rangeMinDuration)}},{key:"getAdaptCacheBuffer",value:function(){var e=this.player,t=this.config,n=this.bitrate;if(!t.targetCacheControl)return-1;var U=t.estPlayTime,F=U;if(t.estPTcontrol){var Q,i=null!==(Q=this.duration)&&void 0!==Q?Q:(null==e?void 0:e.duration)||0,l=(null==e?void 0:e.currentTime)||0;F=Math.min(U,i-l)}var r=e&&1024*e.avgSpeed||0,a=Math.max(t.safeFactor*r,t.minBandwidth);null!=e&&e.avgSpeed&&(a=t.safeFactor*r);var d=n>0?Math.floor((1-a/n)*F):0;return d=t.minDangerThreshold+Math.max(d,0),Math.min(Math.max(t.cacheSafeFactor*d,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}}}]),e}(),dn=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}(dn||{}),on=function(e){return e[e.Normal=0]="Normal",e[e.Ad=1]="Ad",e}(on||{}),sn=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}(sn||{}),Bn="real_time_speed",cn="cdn",Rn=function(e){return e.CHANGE_FLYING_PLUGIN_CONFIG="CHANGE_FLYING_PLUGIN_CONFIG",e}(Rn||{}),Vn=function(e){Z(n,e);var t=W(n);function n(e){var U;R(this,n);var F=m(U=t.call(this,e)),Q=F.player,i=F.playerConfig;return U.playerId=Q.playerId,U.codecType=i.codecType?i.codecType.toLowerCase():sn.H264,U.bizType=Q.bizType="number"==typeof i.bizType?i.bizType:on.Normal,i.vtype&&(U.vtype=i.vtype.toUpperCase()),ln&&(Q.preloader=ln),U}return u(n,[{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){ln=e}}]),n}(r.BasePlugin);function un(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);t&&(U=U.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,U)}return n}function hn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?un(Object(n),!0).forEach((function(t){En(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):un(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Zn(){Zn=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",l=F.toStringTag||"@@toStringTag";function r(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{r({},"")}catch(f){r=function(e,t,n){return e[t]=n}}function a(e,t,n,F){var Q=t&&t.prototype instanceof s?t:s,i=Object.create(Q.prototype),l=new k(F||[]);return U(i,"_invoke",{value:p(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(f){return{type:"throw",arg:f}}}e.wrap=a;var o={};function s(){}function B(){}function c(){}var R={};r(R,Q,(function(){return this}));var V=Object.getPrototypeOf,u=V&&V(V(E([])));u&&u!==t&&n.call(u,Q)&&(R=u);var h=c.prototype=s.prototype=Object.create(R);function Z(e){["next","throw","return"].forEach((function(t){r(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function F(U,Q,i,l){var r=d(e[U],e,Q);if("throw"!==r.type){var a=r.arg,o=a.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,l)}),(function(e){F("throw",e,i,l)})):t.resolve(o).then((function(e){a.value=e,i(a)}),(function(e){return F("throw",e,i,l)}))}l(r.arg)}var Q;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return Q=Q?Q.then(U,U):U()}})}function p(e,t,n){var U="suspendedStart";return function(F,Q){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(n.method=F,n.arg=Q;;){var i=n.delegate;if(i){var l=J(i,n);if(l){if(l===o)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var r=d(e,t,n);if("normal"===r.type){if(U=n.done?"completed":"suspendedYield",r.arg===o)continue;return{value:r.arg,done:n.done}}"throw"===r.type&&(U="completed",n.method="throw",n.arg=r.arg)}}}function J(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,J(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),o;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,o;var Q=F.arg;return Q?Q.done?(t[e.resultName]=Q.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):Q:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}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 W(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function E(e){if(e){var t=e[Q];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return B.prototype=c,U(h,"constructor",{value:c,configurable:!0}),U(c,"constructor",{value:B,configurable:!0}),B.displayName=r(c,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,r(e,l,"GeneratorFunction")),e.prototype=Object.create(h),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),r(S.prototype,i,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,U,F,Q){void 0===Q&&(Q=Promise);var i=new S(a(t,n,U,F),Q);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},Z(h),r(h,l,"Generator"),r(h,Q,(function(){return this})),r(h,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=E,k.prototype={constructor:k,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(W),!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 U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],i=Q.completion;if("root"===Q.tryLoc)return U("end");if(Q.tryLoc<=this.prev){var l=n.call(Q,"catchLoc"),r=n.call(Q,"finallyLoc");if(l&&r){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}else if(l){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0)}else{if(!r)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=t&&t<=Q.finallyLoc&&(Q=null);var i=Q?Q.completion:{};return i.type=e,i.arg=t,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(i)},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),o},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),W(n),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;W(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),o}},e}function Sn(e){return(Sn="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 pn(e,t,n,U,F,Q,i){try{var l=e[Q](i),r=l.value}catch(a){return void n(a)}l.done?t(r):Promise.resolve(r).then(U,F)}function Jn(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var Q=e.apply(t,n);function i(e){pn(Q,U,F,i,l,"next",e)}function l(e){pn(Q,U,F,i,l,"throw",e)}i(void 0)}))}}function mn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Wn(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,In(U.key),U)}}function kn(e,t,n){return t&&Wn(e.prototype,t),n&&Wn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function En(e,t,n){return(t=In(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yn(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&&Nn(e,t)}function fn(e){return(fn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Nn(e,t){return(Nn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function bn(){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 vn(e,t,n){return(vn=bn()?Reflect.construct.bind():function(e,t,n){var U=[null];U.push.apply(U,t);var F=new(Function.bind.apply(e,U));return n&&Nn(F,n.prototype),F}).apply(null,arguments)}function Tn(e){var t="function"==typeof Map?new Map:void 0;return Tn=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;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,U)}function U(){return vn(e,arguments,fn(this).constructor)}return U.prototype=Object.create(e.prototype,{constructor:{value:U,enumerable:!1,writable:!0,configurable:!0}}),Nn(U,e)},Tn(e)}function Cn(e,t){if(null==e)return{};var n,U,F=function(e,t){if(null==e)return{};var n,U,F={},Q=Object.keys(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||(F[n]=e[n]);return F}(e,t);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(U=0;U<Q.length;U++)n=Q[U],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(F[n]=e[n])}return F}function gn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Dn(e){var t=bn();return function(){var n,U=fn(e);if(t){var F=fn(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return 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 gn(e)}(this,n)}}function Xn(){return Xn="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var U=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=fn(e)););return e}(e,t);if(U){var F=Object.getOwnPropertyDescriptor(U,t);return F.get?F.get.call(arguments.length<3?e:n):F.value}},Xn.apply(this,arguments)}function xn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,U=new Array(t);n<t;n++)U[n]=e[n];return U}function Ln(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return xn(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)?xn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var U=0,F=function(){};return{s:F,n:function(){return U>=e.length?{done:!0}:{done:!1,value:e[U++]}},e:function(e){throw e},f:F}}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 Q,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,Q=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw Q}}}}function In(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function Gn(){var e,t,n=new Promise((function(n,U){e=n,t=U}));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}var Mn={DEBUG:1,LOG:2,WARN:3,ERROR:4},Yn=["Boolean","Number","String","Undefined","Null","Date","Object"],wn=function(){function e(t,n){mn(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)||204800,this.logSize=0,this.logTextArray=[]}return kn(e,[{key:"debug",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Mn.DEBUG].concat(U)),e.disabled||(t=console).debug.apply(t,[this._prefix,Kn()].concat(U))}},{key:"log",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Mn.LOG].concat(U)),e.disabled||(t=console).log.apply(t,[this._prefix,Kn()].concat(U))}},{key:"warn",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Mn.WARN].concat(U)),e.disabled||(t=console).warn.apply(t,[this._prefix,Kn()].concat(U))}},{key:"error",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[Mn.ERROR].concat(U)),e.disabled||(t=console).error.apply(t,[this._prefix,Kn()].concat(U))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];var Q=U.map((function(e){return jn(e)}));t=this._prefix+Kn()+JSON.stringify(Q)}catch(l){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var i=this.logTextArray.shift();this.logSize-=i.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 Kn(){return(new Date).toLocaleString()}function _n(e){if("object"!==Sn(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 jn(e,t,n){n||(n=1),t||(t=2);var U={};if(!e||"object"!==Sn(e))return e;var F=Object.prototype.toString.call(e).slice(8,-1);if(!Yn.includes(F))return F;if(!(n>t)){for(var Q in e)Object.prototype.hasOwnProperty.call(e,Q)&&(n===t?U[Q]=_n(e[Q]):"object"===Sn(e[Q])?U[Q]=jn(e[Q],t,n+1):U[Q]=e[Q]);return U}}En(wn,"disabled",!0);var Hn="fetch",Pn="xhr",zn="arraybuffer",On="text",An="json",qn=function(e){yn(n,e);var t=Dn(n);function n(e,U,F,Q){var i;return mn(this,n),En(gn(i=t.call(this,Q)),"retryCount",0),En(gn(i),"isTimeout",!1),En(gn(i),"loaderType",Hn),En(gn(i),"startTime",0),En(gn(i),"endTime",0),En(gn(i),"options",{}),i.url=e,i.request=U,i.response=F,i}return kn(n)}(Tn(Error)),$n=Object.prototype.toString;function eU(e){if("[object Object]"!==$n.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function tU(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 nU(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function UU(e,t){if(e){if(!t)return e;var n,U=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){var n;return n=t,"[object Date]"===$n.call(n)?t=t.toISOString():function(e){return null!==e&&"object"===Sn(e)}(t)&&(t=JSON.stringify(t)),"".concat(nU(e),"=").concat(nU(t))})).join("&")})).filter(Boolean).join("&");if(U){var F=e.indexOf("#");-1!==F&&(e=e.slice(0,F)),e+=(-1===e.indexOf("?")?"?":"&")+U}return e}}function FU(e,t,n,U,F,Q,i,l,r,a,d){return F=null!=F?parseFloat(F):null,U=parseInt(U||"0",10),Number.isNaN(U)&&(U=0),{data:e,done:t,options:{range:r,vid:a,index:l,contentLength:U,age:F,startTime:Q,firstByteTime:i,endTime:Date.now(),priOptions:d},response:n}}function QU(e,t){return Math.round(8*e*1e3/t/1024)}var iU="real_time_speed",lU=2097152,rU=function(e){yn(U,e);var t,n=Dn(U);function U(){var e;return mn(this,U),En(gn(e=n.call(this)),"_abortController",null),En(gn(e),"_timeoutTimer",null),En(gn(e),"_reader",null),En(gn(e),"_response",null),En(gn(e),"_aborted",!1),En(gn(e),"_index",-1),En(gn(e),"_range",null),En(gn(e),"_receivedLength",0),En(gn(e),"_running",!1),En(gn(e),"_logger",null),En(gn(e),"_vid",""),En(gn(e),"_onProcessMinLen",0),En(gn(e),"_onCancel",null),En(gn(e),"_priOptions",null),e}return kn(U,[{key:"load",value:function(e){var t,n=this,U=e.url,F=e.vid,Q=e.timeout,i=e.responseType,l=e.onProgress,r=e.index,a=e.onTimeout,d=e.onCancel,o=e.range,s=e.transformResponse,B=e.request,c=e.params,R=e.logger,V=e.method,u=e.headers,h=e.body,Z=e.mode,S=e.credentials,p=e.cache,J=e.redirect,m=e.referrer,W=e.referrerPolicy,k=e.onProcessMinLen,E=e.priOptions;this._logger=R,this._aborted=!1,this._onProcessMinLen=k,this._onCancel=d,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=r,this._range=o||[0,0],this._vid=F||U,this._priOptions=E||{};var y={method:V,headers:u,body:h,mode:Z,credentials:S,cache:p,redirect:J,referrer:m,referrerPolicy:W,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},f=!1;clearTimeout(this._timeoutTimer),U=UU(U,c);var N=tU(o);N&&(u=B?B.headers:y.headers=y.headers||(Headers?new Headers:{}),Headers&&u instanceof Headers?u.append("Range",N):u.Range=N),Q&&(this._timeoutTimer=setTimeout((function(){if(f=!0,n.cancel(),a){var e=new qn(U,y,null,"timeout");e.isTimeout=!0,a(e,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions})}}),Q));var b=Date.now();return this._logger.debug("[fetch load start], index,",r,",range,",o),new Promise((function(e,t){fetch(B||U,B?void 0:y).then(function(){var F=Jn(Zn().mark((function F(Q){var a,d,B,c;return Zn().wrap((function(F){for(;;)switch(F.prev=F.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=Q,!n._aborted&&n._running){F.next=4;break}return F.abrupt("return");case 4:if(s&&(Q=s(Q,U)||Q),Q.ok){F.next=7;break}throw new qn(U,y,Q,"bad network response");case 7:if(a=Date.now(),i!==On){F.next=15;break}return F.next=11,Q.text();case 11:d=F.sent,n._running=!1,F.next=37;break;case 15:if(i!==An){F.next=22;break}return F.next=18,Q.json();case 18:d=F.sent,n._running=!1,F.next=37;break;case 22:if(!l){F.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(Q,l,b,a),F.abrupt("return");case 29:return F.next=31,Q.arrayBuffer();case 31:d=F.sent,d=new Uint8Array(d),n._running=!1,B=Date.now()-b,c=QU(d.byteLength,B),n.emit(iU,{speed:c,len:d.byteLength,time:B,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",r,",range,",o),e(FU(d,!0,Q,Q.headers.get("Content-Length"),Q.headers.get("age"),b,a,r,o,n._vid,n._priOptions));case 39:case"end":return F.stop()}}),F)})));return function(e){return F.apply(this,arguments)}}()).catch((function(e){var F;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!f||((e=e instanceof qn?e:new qn(U,y,null,null===(F=e)||void 0===F?void 0:F.message)).startTime=b,e.endTime=Date.now(),e.isTimeout=f,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=Jn(Zn().mark((function e(){return Zn().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(t){}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,U){var F=this;if(!e.body||!e.body.getReader){this._running=!1;var Q=new qn(e.url,"",e,"onProgress of bad response.body.getReader");return Q.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(Q)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(lU),this._writeIdx=0);var i,l,r,a=this._reader=e.body.getReader(),d=function(){var Q=Jn(Zn().mark((function Q(){var o,s,B,c,R,V,u,h;return Zn().wrap((function(Q){for(;;)switch(Q.prev=Q.next){case 0:return l=Date.now(),Q.prev=1,Q.next=4,a.read();case 4:i=Q.sent,r=Date.now(),Q.next=13;break;case 8:return Q.prev=8,Q.t0=Q.catch(1),r=Date.now(),F._aborted||(F._running=!1,Q.t0.options={index:F._index,range:F._range,vid:F._vid,priOptions:F._priOptions},F.reject(Q.t0)),Q.abrupt("return");case 13:if(s=(null===(o=F._range)||void 0===o?void 0:o.length)>0?F._range[0]:0,B=s+F._receivedLength,!F._aborted){Q.next=19;break}return F._running=!1,t(void 0,!1,{range:[B,B],vid:F._vid,index:F._index,startTime:l,endTime:r,st:n,firstByteTime:U,priOptions:F._priOptions},e),Q.abrupt("return");case 19:c=i.value?i.value.byteLength:0,F._receivedLength+=c,F._logger.debug("【fetchLoader,onProgress call】,task,",F._range,", start,",B,", end,",s+F._receivedLength,", done,",i.done),F._onProcessMinLen>0?F._writeIdx+c>=F._onProcessMinLen||i.done?((R=new Uint8Array(F._writeIdx+c)).set(F._cache.slice(0,F._writeIdx),0),c>0&&R.set(i.value,F._writeIdx),F._writeIdx=0,F._logger.debug("【fetchLoader,onProgress enough】,done,",i.done,",len,",R.byteLength,", writeIdx,",F._writeIdx)):c>0&&F._writeIdx+c<lU?(F._cache.set(i.value,F._writeIdx),F._writeIdx+=c,F._logger.debug("【fetchLoader,onProgress cache】,len,",c,", writeIdx,",F._writeIdx)):c>0&&(V=new Uint8Array(F._writeIdx+c+2048),F._logger.debug("【fetchLoader,onProgress extra start】,size,",F._writeIdx+c+2048,", datalen,",c,", writeIdx,",F._writeIdx),V.set(F._cache.slice(0,F._writeIdx),0),c>0&&V.set(i.value,F._writeIdx),F._writeIdx+=c,delete F._cache,F._cache=V,F._logger.debug("【fetchLoader,onProgress extra end】,len,",c,", writeIdx,",F._writeIdx)):R=i.value,(R&&R.byteLength>0||i.done)&&t(R,i.done,{range:[F._range[0]+F._receivedLength-(R?R.byteLength:0),F._range[0]+F._receivedLength],vid:F._vid,index:F._index,startTime:l,endTime:r,st:n,firstByteTime:U,priOptions:F._priOptions},e),i.done?(u=Date.now()-n,h=QU(F._receivedLength,u),F.emit(iU,{speed:h,len:F._receivedLength,time:u,vid:F._vid,index:F._index,range:F._range,priOptions:F._priOptions}),F._running=!1,F._logger.debug("[fetchLoader onProgress end],task,",F._range,",done,",i.done),F.resolve(FU(i,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,U,F._index,F._range,F._vid,F._priOptions))):d();case 25:case"end":return Q.stop()}}),Q,null,[[1,8]])})));return function(){return Q.apply(this,arguments)}}();d()}},{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)}}]),U}(Qt);var aU=function(e){yn(n,e);var t=Dn(n);function n(){var e;return mn(this,n),En(gn(e=t.call(this)),"_xhr",null),En(gn(e),"_aborted",!1),En(gn(e),"_timeoutTimer",null),En(gn(e),"_range",null),En(gn(e),"_receivedLength",0),En(gn(e),"_url",null),En(gn(e),"_onProgress",null),En(gn(e),"_index",-1),En(gn(e),"_headers",null),En(gn(e),"_currentChunkSizeKB",384),En(gn(e),"_timeout",null),En(gn(e),"_xhr",null),En(gn(e),"_withCredentials",null),En(gn(e),"_startTime",-1),En(gn(e),"_loadCompleteResolve",null),En(gn(e),"_loadCompleteReject",null),En(gn(e),"_runing",!1),En(gn(e),"_logger",!1),En(gn(e),"_vid",""),En(gn(e),"_responseType",void 0),En(gn(e),"_credentials",void 0),En(gn(e),"_method",void 0),En(gn(e),"_transformResponse",void 0),En(gn(e),"_firstRtt",void 0),En(gn(e),"_onCancel",null),En(gn(e),"_priOptions",null),e}return kn(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=UU(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 qn?e:new qn(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===zn&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,U=this._range[1];t<this._range[1]-n&&(U=n+t),e=[n,U],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,U,F;t._running=!1;var Q=new qn(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(U=e.currentTarget)||void 0===U?void 0:U.status)+",statusText,"+(null==e||null===(F=e.currentTarget)||void 0===F?void 0:F.statusText));Q.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(Q)},n.ontimeout=function(e){t.cancel();var n=new qn(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 U=this._headers||{},F=tU(e);F&&(U.Range=F),U&&Object.keys(U).forEach((function(e){n.setRequestHeader(e,U[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(Q){Q.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(Q)}}},{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 U=new qn(this._url,null,hn(hn({},e.target.response),{},{status:n}),"bad response,status:"+n);return U.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(U)}var F,Q=null,i=!1,l=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===zn){var r,a=new Uint8Array(e.target.response);if(F=l+this._receivedLength,a&&a.byteLength>0){this._receivedLength+=a.byteLength;var d=Date.now()-this._startTime,o=QU(this._receivedLength,d);this.emit(iU,{speed:o,len:this._receivedLength,time:d,vid:this._vid,index:this._index,range:[F,l+this._receivedLength],priOptions:this._priOptions})}Q=a,i=!((null===(r=this._range)||void 0===r?void 0:r.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",F,"end ",l+this._receivedLength,",dataLen,",a?a.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",i)}else i=!0,Q=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(Q,i,{index:this._index,vid:this._vid,range:[F,l+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},s),i?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(FU(this._onProgress?null:Q,i,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,Xn(fn(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={},U=Ln(e.getAllResponseHeaders().trim().split("\r\n"));try{for(U.s();!(t=U.n()).done;){var F=t.value.split(": ");n[F[0].toLowerCase()]=F.slice(1).join(": ")}}catch(Q){U.e(Q)}finally{U.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}(Qt),dU=["retry","retryDelay","onRetryError","transformError"],oU=function(){function e(t,n){mn(this,e),this.promise=Gn(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new wn("Loader")),this._loaderType=t,this._loader=t===Hn&&"undefined"!=typeof fetch?new rU:new aU,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return kn(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,U=t.retryDelay,F=t.onRetryError,Q=t.transformError,i=Cn(t,dU),l=function(){var t=Jn(Zn().mark((function t(){var r,a,d;return Zn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(i);case 3:r=t.sent,e.promise.resolve(r),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,a=t.t0,Q&&(a=Q(a)||a),F&&e._retryCount>0&&F(a,e._retryCount,{index:i.index,vid:i.vid,range:i.range,priOptions:i.priOptions}),e._retryCount++,d=!0,e._retryCheckFunc&&(d=e._retryCheckFunc(t.t0)),!(d&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",i.range),e._retryTimer=setTimeout(l,U),t.abrupt("return");case 26:e.promise.reject(a);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=Jn(Zn().mark((function e(){return Zn().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 sU(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}var BU=function(e){yn(U,e);var t,n=Dn(U);function U(e){var t;return mn(this,U),En(gn(t=n.call(this,e)),"type",Hn),En(gn(t),"_queue",[]),En(gn(t),"_alive",[]),En(gn(t),"_currentTask",null),En(gn(t),"_finnalUrl",""),En(gn(t),"_config",void 0),t._config=function(e){return hn({loaderType:Hn,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:On,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)}(e),t._config.loaderType!==Pn&&rU.isSupported()||(t.type=Pn),t.log=e.logger,t}return kn(U,[{key:"isFetch",value:function(){return this.type===Hn}},{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&&eU(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&eU(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var U=new oU(this.type,n);return U.loader.on(iU,(function(e){t.emit(iU,e)})),this._queue.push(U),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),U.promise}},{key:"cancel",value:(t=Jn(Zn().mark((function e(){var t;return Zn().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,sU();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 rU.isSupported()}}]),U}(Qt),cU=function(){function e(t,n,U,F){var Q=this;R(this,e),this.config=e.getDefaultConfig(),Object.keys(F).map((function(e){void 0!==F[e]&&null!==F[e]&&(Q.config[e]=F[e])})),this.duration=U,this.player=t,this.updateBitrate(n),this.curPCDNInBuffer=this.config.maxPCDNInBuffer,this.curPCDNOutBuffer=this.config.maxPCDNOutBuffer,this.PCDNChangeCnt=0}return u(e,[{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 U=e.estPlayTime,F=U;e.estPTcontrol&&(F=Math.min(U,Math.max(0,this.duration-((null==t?void 0:t.currentTime)||0))));var Q=e.safePCDNInFactor,i=e.minBandwidth,l=e.maxPCDNInBuffer,r=e.minPCDNInBuffer,a=Q*Math.max(1024*(null==t?void 0:t.avgSpeedPCDN)||0,i),d=n>0?(1-a/n)*F:0;return this.curPCDNInBuffer=Math.min(l,Math.max(r,d)),this.curPCDNInBuffer}},{key:"getPCDNOutBuffer",value:function(){var e=this.config,t=this.player,n=this.bitrate;if(!e.PCDNBufferControl)return null;var U=e.estPlayTime,F=U;e.estPTcontrol&&(F=Math.min(U,Math.max(0,this.duration-((null==t?void 0:t.currentTime)||0))));var Q=e.safePCDNOutFactor,i=e.minBandwidth,l=e.maxPCDNOutBuffer,r=e.minPCDNOutBuffer,a=Q*Math.max(1024*(null==t?void 0:t.avgSpeedPCDN)||0,i),d=n>0?(1-a/n)*F:0;return this.curPCDNOutBuffer=Math.min(l,Math.max(r,d)),this.curPCDNOutBuffer}},{key:"getPCDNChangeCnt",value:function(){var e=this.config,t=e.PCDNCntControl,n=e.alpha,U=this.curPCDNInBuffer,F=this.player,Q=(null==F?void 0:F.bufferedPoint)||null,i=Q&&Q.end?Q.end-F.currentTime:0;t?i>U+(this.PCDNChangeCnt-1)*n&&this.PCDNChangeCnt++:i>=U&&this.PCDNChangeCnt<2&&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}}}]),e}(),RU=new Map,VU=function(){function e(t,n,U,F){var Q,i,l=this;R(this,e),this.options=e.getDefaultConfig(),Object.keys(t).map((function(e){void 0!==t[e]&&null!==t[e]&&(l.options[e]=t[e])})),this.options.productConfig&&this.options.productConfig.app_id||console.error("productConfig must has"),this.loader=new BU(this.options),this.resetTrackeArgs(),this._lastFileInfo=null,this.lastfetchNodeTime=-1,this._lastRetFileKey=null,this._minUpdateNodeStep=this.options.ErrorTimeStep,null!==(Q=this.options)&&void 0!==Q&&null!==(i=Q.adaptPCDNConfig)&&void 0!==i&&i.PCDNBufferControl&&(this.pcdnAdapt=new cU(n,U,F,this.options.adaptPCDNConfig))}var t,n;return u(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 U,F=hU(t),Q=RU.get(uU(e,F)),i=new Gn;return null==Q||!Q.nodes||(null==Q||null===(U=Q.nodes)||void 0===U?void 0:U.length)<1?this.fetchPCDNNode(null,null,n).then((function(e){i.resolve(e)})).catch((function(e){i.reject(e)})):(Q.fromCache=!0,i.resolve(Q)),i}},{key:"removePCDNNode",value:function(e,t,n){var U=hU(t),F=RU.get(uU(e,U)),Q=null==F?void 0:F.nodes;Q&&(n?F.nodes=Q.filter((function(e){return e&&n.indexOf(e.url)<0})):Q.shift(),RU.set(uU(e,U),F)),Q&&Q.length||this.fetchPCDNNode().then().catch((function(){}))}},{key:"fetchPCDNNode",value:(n=c(o().mark((function t(n,U,F){var Q,i,l,r,a,d,s,B,c,R,V,u,h,Z,S,p,J;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(Q=new Gn,U){t.next=5;break}U=this._lastFileInfo,t.next=15;break;case 5:if(U.byterate=hU(U.bitrate),this.options.trackerOptions&&Object.assign(U,this.options.trackerOptions),this._lastFileInfo=Object.assign({},U,{byterate:U.byterate}),!((null==(l=RU.get(uU(U.vid,U.byterate)))||null===(i=l.nodes)||void 0===i?void 0:i.length)>0)){t.next=13;break}return l.fromCache=!0,Q.resolve(l),t.abrupt("return",Q);case 13:delete U.bitrate,this._lastFileInfo=U;case 15:if(U){t.next=18;break}return Q.resolve(null),t.abrupt("return",Q);case 18:if(r=!1,a=uU(U.vid,U.byterate),this._lastRetFileKey!==a&&(this.resetTrackeArgs(),r=!0),!(Date.now()-this.lastfetchNodeTime<this._minUpdateNodeStep)||r){t.next=24;break}return Q.resolve(null),t.abrupt("return",Q);case 24:if(this.lastfetchNodeTime=Date.now(),this._lastRetFileKey=a,U.sfid?U.version=1:U.vid&&(U.version=2),this.options.withReferer&&(U.with_referer=this.options.withReferer),d=Object.assign(this.options.productConfig,{file_info:U},this.trackeArgs,{req_id:F}),s=JSON.stringify(d),!(this.trackeArgs.req_times>=this.options.maxCnt)){t.next=33;break}return Q.resolve(null),t.abrupt("return",Q);case 33:return this.loader||(this.loader=new BU(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:s});case 39:B=t.sent,c=null,B&&(this.trackeArgs.resp_times+=1,V=8*U.byterate,B.done&&null!==(R=B.data)&&void 0!==R&&R.Result?(u=B.data.Result,(c=u.nodes)&&c.length>0?e.pcdn_tracker_success_cnt++:this._minUpdateNodeStep=this.options.NULLNodeTimeStep,c.map((function(e){e.vid=U.vid,e.bitrate=V})),h=u.fid,Z=u.trace_id,S=u.req_id,p={nodes:c,fid:h,vid:U.vid,trace_id:Z,req_id:S,bitrate:V},J=uU(U.vid,U.byterate),RU.set(J,p),this.trackeArgs.fid=u.fid,this.trackeArgs.trace_id=u.trace_id,this.trackeArgs.token=u.token,Q.resolve(p)):(this._minUpdateNodeStep=this.options.ErrorTimeStep,Q.reject(B))),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),Q.reject(t.t0);case 49:return t.abrupt("return",Q);case 50:case"end":return t.stop()}}),t,this,[[35,44]])}))),function(e,t,U){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:Hn,responseType:An,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=c(o().mark((function t(n,U,F,Q){var i,l,r,a,d,s,B,c,R;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=e.getDefaultConfig(),Object.keys(U).map((function(e){void 0!==U[e]&&null!==U[e]&&(i[e]=U[e])})),Q&&Q.app_id||console.error("productConfig must has"),l=new Gn,F?(F.byterate=hU(F.bitrate),this.options.trackerOptions&&Object.assign(F,this.options.trackerOptions),delete F.bitrate):l.reject("video fileInfo need set"),r=Object.assign(Q,{file_info:F},{node_num:(null==U?void 0:U.node_num)||3}),a=JSON.stringify(r),d=new BU(i),t.prev=8,e.pcdn_tracker_request_cnt++,t.next=12,d.load(n,{body:a});case 12:(R=t.sent).done&&(null===(s=R.data)||void 0===s||null===(B=s.Result)||void 0===B||null===(c=B.nodes)||void 0===c?void 0:c.length)>0&&e.pcdn_tracker_success_cnt++,l.resolve(R),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,U,F){return t.apply(this,arguments)})}]),e}();function uU(e,t){return"".concat(e,"-").concat(t)}function hU(e){return Math.floor(e/8)}h(VU,"pcdn_tracker_request_cnt",0),h(VU,"pcdn_tracker_success_cnt",0);var ZU=["bitrate","definition"],SU={};function pU(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]}function JU(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,U=0,F=0,Q=new Uint8Array,i=0,l=t;i<l.length;i++){var r=l[i],a=r.range[0],o=r.range[1];if(U>0){if(F+1!==a)break;Q=ot(Q,new Uint8Array(r.res))}else Q=ot(Q,new Uint8Array(r.res));U=a,F=o,n=r}var s=k(n.cacheKey.split("#"),9),B=s[0],c=s[1],R=s[2],V=s[3],u=s[4],Z=s[5],S=s[6],p=s[7],J=s[8],m=t[0].range[0],W={vid:B,mediaType:c,codecType:R,vtype:V,definition:u,start:Z,end:S,fileId:"video"===c?p:J,range:[m,F],bitrate:p},E=SU.generateRequestUniqueKey(W);return delete n.cacheKey,h({},E,d(d({},n),{},{res:Q.buffer,range:[m,F],memory:Q.buffer.byteLength}))}function mU(e){for(var t={},n=0,U=Object.keys(e);n<U.length;n++){var F=U[n],Q=e[F],i=F.split("#"),l=i[1],r=i[4],a=i[7],d="video"===l?r:a;t[d]||(t[d]={}),t[d][F]=Q}return t}SU.ArrayBufferToString=function(e){for(var t="",n=new Uint8Array(e),U=0;U<n.length;U++)t+=String.fromCharCode(n[U]);return t},SU.StringToArrayBuffer=function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),U=0;U<e.length;U++)n[U]=e.charCodeAt(U);return t},SU.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 U=[],F=0;F<n.length;F++)U.push(n.charCodeAt(F));return new Uint8Array(U).buffer}for(var Q="",i=0;i<n.length;i++)Q+="0".concat(n.charCodeAt(i).toString(16)).substr(-2);return Q},SU.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,"_")},SU.padStart=function(e,t,n){for(var U=String(n),F=t>>0,Q=Math.ceil(F/U.length),i=[],l=String(e);Q--;)i.push(U);return i.join("").substring(0,F-l.length)+l},SU.durationConvert=function(e){var t=0,n=0,U=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"))),U=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"))),U=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"))),U=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("S")))):e.indexOf("H")<0&&e.indexOf("M")<0&&e.indexOf("S")>-1?U=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+U},SU.preFixInterge=function(e,t){return(Array(t).join(0)+e).slice(-t)},SU.toHex=function(){for(var e=[],t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];return n.forEach((function(t){e.push(SU.padStart(Number(t).toString(16),2,0))})),e},SU.sum=function(){for(var e=0,t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];return n.forEach((function(t){e+=t})),e},SU.toUTF8=function(e){for(var t=encodeURIComponent(e),n=unescape(t),U=new Uint8Array(n.length),F=0;F<n.length;++F)U[F]=n.charCodeAt(F);return U.buffer},SU.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},SU.fromCharCode=function(e){for(var t="",n=0;n<e.length;n+=16e3){var U=e.subarray(n,n+16e3);t+=String.fromCharCode.apply(null,U)}return t},SU.toBase64=function(e,t){var n=SU.fromCharCode(e);t=void 0===t||t;var U=window.btoa(n).replace(/\+/g,"-").replace(/\//g,"_");return t?U:U.replace(/=*$/,"")},SU.str2hex=function(e){if(""===e)return"";for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t},SU.bufferToString=function(e){return"0".concat(Number(e).toString(16)).slice(-2).toUpperCase()},SU.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)},SU.round=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Number(e.toFixed(t))},SU.isEdge=function(){var e=window.navigator.userAgent.toLowerCase();return e.indexOf("edge")>-1||e.indexOf("edg/")>-1},SU.offInDestroy=function(e,t,n,U){e.once(U,(function F(){e.off(t,n),e.off(U,F)}))},SU.on=function(e,t,n,U){if(U)e.on(t,n),SU.offInDestroy(e,t,n,U);else{e.on(t,(function U(F){n(F),e.off(t,U)}))}},SU.once=function(e,t,n,U){if(U)e.once(t,n),SU.offInDestroy(e,t,n,U);else{e.once(t,(function U(F){n(F),e.off(t,U)}))}},SU.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)},SU.transformHeaders=function(e,t){var n=Object.assign({},e);return Object.keys(t).forEach((function(U){var F=t[U];e&&e[U]&&(n[F]=e[U],delete n[U])})),n},SU.generateRequestUniqueKey=function(e){var t=e.vid,n=e.start,U=e.end,F=e.mediaType,Q=e.definition,i=e.codecType,l=e.vtype,r=e.bitrate,a=e.fileId,d=e.range;if(d&&d.length>0?(n=d[0],U=d[1]):(n=n||0,U=U||0),i="hevc"===i?"h265":i||"h264",l=l||dn.DASH,!t||!F)return null;var o=Q?"".concat(t,"#").concat(F,"#").concat(i,"#").concat(l,"#").concat(Q,"#").concat(n,"#").concat(U):"".concat(t,"#").concat(F,"#").concat(i,"#").concat(l,"##").concat(n,"#").concat(U,"#").concat(r);return a?"".concat(o,"#").concat(a):o},SU.getDefinition=function(e){if(!e)return null;var t=e.split("#");return t.length>2?t[2]:null},SU.exchangeListUrl=function(e){if(e&&0!==e.length)for(var t=0;t<e.length;t++)SU.exchangeUrl(e[t])},SU.exchangeUrl=function(e){if(e&&e.main_url&&e.backup_url_1){var t=e.main_url,n=e.backup_url_1,U=t.split("?");2===U.length&&-1===n.indexOf("?")?(e.main_url="".concat(n,"?").concat(U[1]),e.backup_url_1=U[0]):(e.main_url=n,e.backup_url_1=t)}},SU.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),U=String.fromCharCode.apply(null,n);if(2===t.length){var F=t[1]-t[0]+1;if(!(e.byteLength===F))return}if("moof"!==U&&"styp"!==U&&"ftyp"!==U)return!1}catch(Q){return!1}return!0}return!1},SU.validateUrlRange=function(e,t){if((e=e||[]).length>0&&t)for(var n=0;n<e.length;n++){var U=e[n];if(/([0-9.\-A-Za-z]+)/.test(U)&&t.indexOf(U)>-1)return!0}return!1},SU.nowTime=function(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}},SU.getBitrateItem=function(e,t,n){var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,F=t,Q=SU.getSelectorList(e,n);return F.getSuitableBitrate?F.getSuitableBitrate(Q,U):F.bitRateAdapter.select(Q)},SU.getSelectorList=function(e,t){for(var n=e.dynamic_video_list,U=[],F=0;F<n.length;F++){var Q=n[F],i=Q.bitrate,l=Q.definition,r=J(Q,ZU);U.push(d({bitrate:i,definition:l,duration:t,mediaType:"video"},r))}return U},SU.typeof=pU,SU.getHostFromUrl=function(e){if("String"!==pU(e)||!e)return"";var t=e.split("/"),n="";return t.length>3&&t[2]&&(n=t[2]),n},SU.checkValidTopBox=function(e){var t=SU.getTopBoxType(e);return"moof"===t||"styp"===t},SU.getTopBoxType=function(e){if(SU.isArrayBuffer(e)){var t=e.subarray(4,8);return String.fromCharCode.apply(null,t)}return null},SU.isArrayBuffer=function(e){return e instanceof ArrayBuffer||e instanceof Uint8Array},SU.getBufferData=function(e,t){var n=0,U=0,F=0,Q=0,i=0;if(!e||0===e.length)return{beforeBufLen:n,afterBufLen:U,beforeLastBuffEnd:F,afterFirstBuffEnd:Q,afterFirstBuffStart:i};Q=1/0,i=1/0;for(var l=0,r=e.length;l<r;l++){var a=e.end(l),d=e.start(l),o=a-d;a<t?(n+=o,F=a):d<=t&&t<=a?(n+=t-d,U+=a-t):(i=Math.min(d,i),Q=Math.min(a,Q),U+=o)}return{beforeBufLen:n,afterBufLen:U,beforeLastBuffEnd:F,afterFirstBuffEnd:Q}},SU.combinePreloadData=function(e){for(var t={},n={},U={},F=0,Q=Object.keys(e);F<Q.length;F++){var i=Q[F],l=e[i];l.isInitSegment?U[i]=l:("audio"===l.mediaType?t[i]=l:"video"===l.mediaType&&(n[i]=l),l.cacheKey=i)}for(var r=mU(t),a=0,d=Object.keys(r);a<d.length;a++){var o=d[a];Object.assign(U,JU(r[o]))}for(var s=mU(n),B=0,c=Object.keys(s);B<c.length;B++){var R=c[B];Object.assign(U,JU(s[R]))}return U};var WU,kU,EU=SU,yU={exports:{}},fU={exports:{}},NU=function(e){return null!=e},bU=NU,vU={object:!0,function:!0,undefined:!0},TU=function(e){return!!bU(e)&&hasOwnProperty.call(vU,typeof e)},CU=function(e){if(!TU(e))return!1;try{return!!e.constructor&&e.constructor.prototype===e}catch(t){return!1}},gU=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(t){return!1}return!CU(e)},DU=/^\s*class[\s{/}]/,XU=Function.prototype.toString;var xU,LU,IU,GU,MU,YU,wU,KU,_U=function(e){return null!=e};function jU(){return GU?IU:(GU=1,IU=(kU?WU:(kU=1,WU=function(){try{return Object.keys("primitive"),!0}catch(e){return!1}}))()?Object.keys:function(){if(LU)return xU;LU=1;var e=_U,t=Object.keys;return xU=function(n){return t(e(n)?Object(n):n)}}())}var HU,PU,zU,OU,AU="function"==typeof(PU=Object.assign)&&(PU(HU={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),HU.foo+HU.bar+HU.trzy==="razdwatrzy")?Object.assign:function(){if(KU)return wU;KU=1;var e=jU(),t=function(){if(YU)return MU;YU=1;var e=_U;return MU=function(t){if(!e(t))throw new TypeError("Cannot use null or undefined");return t}}(),n=Math.max;return wU=function(U,F){var Q,i,l,r=n(arguments.length,2);for(U=Object(t(U)),l=function(e){try{U[e]=F[e]}catch(t){Q||(Q=t)}},i=1;i<r;++i)e(F=arguments[i]).forEach(l);if(void 0!==Q)throw Q;return U},wU}(),qU=_U,$U=Array.prototype.forEach,eF=Object.create,tF="razdwatrzy";var nF="function"==typeof tF.contains&&!0===tF.contains("dwa")&&!1===tF.contains("foo")?String.prototype.contains:function(){if(OU)return zU;OU=1;var e=String.prototype.indexOf;return zU=function(t){return e.call(this,t,arguments[1])>-1},zU}(),UF=NU,FF=function(e){return!!gU(e)&&!DU.test(XU.call(e))},QF=AU,iF=function(e){var t=eF(null);return $U.call(arguments,(function(e){qU(e)&&function(e,t){var n;for(n in e)t[n]=e[n]}(Object(e),t)})),t},lF=nF,rF=fU.exports=function(e,t){var n,U,F,Q,i;return arguments.length<2||"string"!=typeof e?(Q=t,t=e,e=null):Q=arguments[2],UF(e)?(n=lF.call(e,"c"),U=lF.call(e,"e"),F=lF.call(e,"w")):(n=F=!0,U=!1),i={value:t,configurable:n,enumerable:U,writable:F},Q?QF(iF(Q),i):i};rF.gs=function(e,t,n){var U,F,Q,i;return"string"!=typeof e?(Q=n,n=t,t=e,e=null):Q=arguments[3],UF(t)?FF(t)?UF(n)?FF(n)||(Q=n,n=void 0):n=void 0:(Q=t,t=n=void 0):t=void 0,UF(e)?(U=lF.call(e,"c"),F=lF.call(e,"e")):(U=!0,F=!1),i={get:t,set:n,configurable:U,enumerable:F},Q?QF(iF(Q),i):i};var aF,dF,oF,sF,BF,cF,RF,VF,uF,hF,ZF,SF,pF,JF,mF,WF,kF,EF,yF=fU.exports;aF=yU,dF=yU.exports,hF=yF,ZF=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e},SF=Function.prototype.apply,pF=Function.prototype.call,JF=Object.create,mF=Object.defineProperty,WF=Object.defineProperties,kF=Object.prototype.hasOwnProperty,EF={configurable:!0,enumerable:!1,writable:!0},sF=function(e,t){var n,U;return ZF(t),U=this,oF.call(this,e,n=function(){BF.call(U,e,n),SF.call(t,this,arguments)}),n.__eeOnceListener__=t,this},cF=function(e){var t,n,U,F,Q;if(kF.call(this,"__ee__")&&(F=this.__ee__[e]))if("object"==typeof F){for(n=arguments.length,Q=new Array(n-1),t=1;t<n;++t)Q[t-1]=arguments[t];for(F=F.slice(),t=0;U=F[t];++t)SF.call(U,this,Q)}else switch(arguments.length){case 1:pF.call(F,this);break;case 2:pF.call(F,this,arguments[1]);break;case 3:pF.call(F,this,arguments[1],arguments[2]);break;default:for(n=arguments.length,Q=new Array(n-1),t=1;t<n;++t)Q[t-1]=arguments[t];SF.call(F,this,Q)}},RF={on:oF=function(e,t){var n;return ZF(t),kF.call(this,"__ee__")?n=this.__ee__:(n=EF.value=JF(null),mF(this,"__ee__",EF),EF.value=null),n[e]?"object"==typeof n[e]?n[e].push(t):n[e]=[n[e],t]:n[e]=t,this},once:sF,off:BF=function(e,t){var n,U,F,Q;if(ZF(t),!kF.call(this,"__ee__"))return this;if(!(n=this.__ee__)[e])return this;if("object"==typeof(U=n[e]))for(Q=0;F=U[Q];++Q)F!==t&&F.__eeOnceListener__!==t||(2===U.length?n[e]=U[Q?0:1]:U.splice(Q,1));else U!==t&&U.__eeOnceListener__!==t||delete n[e];return this},emit:cF},VF={on:hF(oF),once:hF(sF),off:hF(BF),emit:hF(cF)},uF=WF({},VF),aF.exports=dF=function(e){return null==e?JF(uF):WF(Object(e),VF)},dF.methods=RF;var fF=Ut(yU.exports),NF=_U,bF={function:!0,object:!0},vF=function(e){return NF(e)&&bF[typeof e]||!1},TF=function(e){if(!vF(e))throw new TypeError(e+" is not an Object");return e},CF=Object.prototype.hasOwnProperty,gF=function(e){var t,n=arguments[1];if(TF(e),void 0===n)CF.call(e,"__ee__")&&delete e.__ee__;else{if(!(t=CF.call(e,"__ee__")&&e.__ee__))return;t[n]&&delete t[n]}},DF=Ut(gF),XF={exports:{}};!function(e,t){!function(e){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==nt?nt:"undefined"!=typeof self?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var U=function(e){return e&&e.Math==Math&&e},F=U("object"==typeof globalThis&&globalThis)||U("object"==typeof window&&window)||U("object"==typeof self&&self)||U("object"==typeof t&&t)||function(){return this}()||Function("return this")(),Q={},i=function(e){try{return!!e()}catch(fu){return!0}},l=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),r={},a={}.propertyIsEnumerable,d=Object.getOwnPropertyDescriptor,o=d&&!a.call({1:2},1);r.f=o?function(e){var t=d(this,e);return!!t&&t.enumerable}:a;var s=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},B={}.toString,c=function(e){return B.call(e).slice(8,-1)},R=c,V="".split,u=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==R(e)?V.call(e,""):Object(e)}:Object,h=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},Z=u,S=h,p=function(e){return Z(S(e))},J=function(e){return"object"==typeof e?null!==e:"function"==typeof e},m=J,W=function(e,t){if(!m(e))return e;var n,U;if(t&&"function"==typeof(n=e.toString)&&!m(U=n.call(e)))return U;if("function"==typeof(n=e.valueOf)&&!m(U=n.call(e)))return U;if(!t&&"function"==typeof(n=e.toString)&&!m(U=n.call(e)))return U;throw TypeError("Can't convert object to primitive value")},k=h,E=function(e){return Object(k(e))},y=E,f={}.hasOwnProperty,N=function(e,t){return f.call(y(e),t)},b=J,v=F.document,T=b(v)&&b(v.createElement),C=function(e){return T?v.createElement(e):{}},g=C,D=!l&&!i((function(){return 7!=Object.defineProperty(g("div"),"a",{get:function(){return 7}}).a})),X=l,x=r,L=s,I=p,G=W,M=N,Y=D,w=Object.getOwnPropertyDescriptor;Q.f=X?w:function(e,t){if(e=I(e),t=G(t,!0),Y)try{return w(e,t)}catch(n){}if(M(e,t))return L(!x.f.call(e,t),e[t])};var K={},_=J,j=function(e){if(!_(e))throw TypeError(String(e)+" is not an object");return e},H=l,P=D,z=j,O=W,A=Object.defineProperty;K.f=H?A:function(e,t,n){if(z(e),t=O(t,!0),z(n),P)try{return A(e,t,n)}catch(U){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var q=K,$=s,ee=l?function(e,t,n){return q.f(e,t,$(1,n))}:function(e,t,n){return e[t]=n,e},te={exports:{}},ne=F,Ue=ee,Fe=function(e,t){try{Ue(ne,e,t)}catch(n){ne[e]=t}return t},Qe=Fe,ie="__core-js_shared__",le=F[ie]||Qe(ie,{}),re=le,ae=Function.toString;"function"!=typeof re.inspectSource&&(re.inspectSource=function(e){return ae.call(e)});var de=re.inspectSource,oe=de,se=F.WeakMap,Be="function"==typeof se&&/native code/.test(oe(se)),ce={exports:{}},Re=le;(ce.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 Ve,ue,he,Ze=ce.exports,Se=0,pe=Math.random(),Je=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Se+pe).toString(36)},me=Je,We=Ze("keys"),ke=function(e){return We[e]||(We[e]=me(e))},Ee={},ye=Be,fe=J,Ne=ee,be=N,ve=le,Te=ke,Ce=Ee,ge="Object already initialized",De=F.WeakMap;if(ye||ve.state){var Xe=ve.state||(ve.state=new De),xe=Xe.get,Le=Xe.has,Ie=Xe.set;Ve=function(e,t){if(Le.call(Xe,e))throw new TypeError(ge);return t.facade=e,Ie.call(Xe,e,t),t},ue=function(e){return xe.call(Xe,e)||{}},he=function(e){return Le.call(Xe,e)}}else{var Ge=Te("state");Ce[Ge]=!0,Ve=function(e,t){if(be(e,Ge))throw new TypeError(ge);return t.facade=e,Ne(e,Ge,t),t},ue=function(e){return be(e,Ge)?e[Ge]:{}},he=function(e){return be(e,Ge)}}var Me={set:Ve,get:ue,has:he,enforce:function(e){return he(e)?ue(e):Ve(e,{})},getterFor:function(e){return function(t){var n;if(!fe(t)||(n=ue(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},Ye=F,we=ee,Ke=N,_e=Fe,je=de,He=Me.get,Pe=Me.enforce,ze=String(String).split("String");(te.exports=function(e,t,n,U){var F,Q=!!U&&!!U.unsafe,i=!!U&&!!U.enumerable,l=!!U&&!!U.noTargetGet;"function"==typeof n&&("string"!=typeof t||Ke(n,"name")||we(n,"name",t),(F=Pe(n)).source||(F.source=ze.join("string"==typeof t?t:""))),e!==Ye?(Q?!l&&e[t]&&(i=!0):delete e[t],i?e[t]=n:we(e,t,n)):i?e[t]=n:_e(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&He(this).source||je(this)}));var Oe=te.exports,Ae=F,qe=F,$e=function(e){return"function"==typeof e?e:void 0},et=function(e,t){return arguments.length<2?$e(Ae[e])||$e(qe[e]):Ae[e]&&Ae[e][t]||qe[e]&&qe[e][t]},tt={},Ut=Math.ceil,Ft=Math.floor,Qt=function(e){return isNaN(e=+e)?0:(e>0?Ft:Ut)(e)},it=Qt,lt=Math.min,rt=function(e){return e>0?lt(it(e),9007199254740991):0},at=Qt,dt=Math.max,ot=Math.min,st=function(e,t){var n=at(e);return n<0?dt(n+t,0):ot(n,t)},Bt=p,ct=rt,Rt=st,Vt=function(e){return function(t,n,U){var F,Q=Bt(t),i=ct(Q.length),l=Rt(U,i);if(e&&n!=n){for(;i>l;)if((F=Q[l++])!=F)return!0}else for(;i>l;l++)if((e||l in Q)&&Q[l]===n)return e||l||0;return!e&&-1}},ut={includes:Vt(!0),indexOf:Vt(!1)},ht=N,Zt=p,St=ut.indexOf,pt=Ee,Jt=function(e,t){var n,U=Zt(e),F=0,Q=[];for(n in U)!ht(pt,n)&&ht(U,n)&&Q.push(n);for(;t.length>F;)ht(U,n=t[F++])&&(~St(Q,n)||Q.push(n));return Q},mt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Wt=Jt,kt=mt.concat("length","prototype");tt.f=Object.getOwnPropertyNames||function(e){return Wt(e,kt)};var Et={};Et.f=Object.getOwnPropertySymbols;var yt=tt,ft=Et,Nt=j,bt=et("Reflect","ownKeys")||function(e){var t=yt.f(Nt(e)),n=ft.f;return n?t.concat(n(e)):t},vt=N,Tt=bt,Ct=Q,gt=K,Dt=i,Xt=/#|\.prototype\./,xt=function(e,t){var n=It[Lt(e)];return n==Mt||n!=Gt&&("function"==typeof t?Dt(t):!!t)},Lt=xt.normalize=function(e){return String(e).replace(Xt,".").toLowerCase()},It=xt.data={},Gt=xt.NATIVE="N",Mt=xt.POLYFILL="P",Yt=xt,wt=F,Kt=Q.f,_t=ee,jt=Oe,Ht=Fe,Pt=function(e,t){for(var n=Tt(t),U=gt.f,F=Ct.f,Q=0;Q<n.length;Q++){var i=n[Q];vt(e,i)||U(e,i,F(t,i))}},zt=Yt,Ot=function(e,t){var n,U,F,Q,i,l=e.target,r=e.global,a=e.stat;if(n=r?wt:a?wt[l]||Ht(l,{}):(wt[l]||{}).prototype)for(U in t){if(Q=t[U],F=e.noTargetGet?(i=Kt(n,U))&&i.value:n[U],!zt(r?U:l+(a?".":"#")+U,e.forced)&&void 0!==F){if(typeof Q==typeof F)continue;Pt(Q,F)}(e.sham||F&&F.sham)&&_t(Q,"sham",!0),jt(n,U,Q,e)}};function At(){At=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",l=F.toStringTag||"@@toStringTag";function r(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{r({},"")}catch(f){r=function(e,t,n){return e[t]=n}}function a(e,t,n,F){var Q=t&&t.prototype instanceof s?t:s,i=Object.create(Q.prototype),l=new k(F||[]);return U(i,"_invoke",{value:p(e,n,l)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(f){return{type:"throw",arg:f}}}e.wrap=a;var o={};function s(){}function B(){}function c(){}var R={};r(R,Q,(function(){return this}));var V=Object.getPrototypeOf,u=V&&V(V(E([])));u&&u!==t&&n.call(u,Q)&&(R=u);var h=c.prototype=s.prototype=Object.create(R);function Z(e){["next","throw","return"].forEach((function(t){r(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function F(U,Q,i,l){var r=d(e[U],e,Q);if("throw"!==r.type){var a=r.arg,o=a.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,l)}),(function(e){F("throw",e,i,l)})):t.resolve(o).then((function(e){a.value=e,i(a)}),(function(e){return F("throw",e,i,l)}))}l(r.arg)}var Q;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return Q=Q?Q.then(U,U):U()}})}function p(e,t,n){var U="suspendedStart";return function(F,Q){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(n.method=F,n.arg=Q;;){var i=n.delegate;if(i){var l=J(i,n);if(l){if(l===o)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var r=d(e,t,n);if("normal"===r.type){if(U=n.done?"completed":"suspendedYield",r.arg===o)continue;return{value:r.arg,done:n.done}}"throw"===r.type&&(U="completed",n.method="throw",n.arg=r.arg)}}}function J(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,J(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),o;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,o;var Q=F.arg;return Q?Q.done?(t[e.resultName]=Q.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):Q:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}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 W(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function E(e){if(e){var t=e[Q];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return B.prototype=c,U(h,"constructor",{value:c,configurable:!0}),U(c,"constructor",{value:B,configurable:!0}),B.displayName=r(c,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,r(e,l,"GeneratorFunction")),e.prototype=Object.create(h),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),r(S.prototype,i,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,U,F,Q){void 0===Q&&(Q=Promise);var i=new S(a(t,n,U,F),Q);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},Z(h),r(h,l,"Generator"),r(h,Q,(function(){return this})),r(h,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=E,k.prototype={constructor:k,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(W),!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 U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],i=Q.completion;if("root"===Q.tryLoc)return U("end");if(Q.tryLoc<=this.prev){var l=n.call(Q,"catchLoc"),r=n.call(Q,"finallyLoc");if(l&&r){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}else if(l){if(this.prev<Q.catchLoc)return U(Q.catchLoc,!0)}else{if(!r)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return U(Q.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=t&&t<=Q.finallyLoc&&(Q=null);var i=Q?Q.completion:{};return i.type=e,i.arg=t,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(i)},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),o},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),W(n),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;W(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),o}},e}function qt(e){return(qt="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 $t(e,t,n,U,F,Q,i){try{var l=e[Q](i),r=l.value}catch(a){return void n(a)}l.done?t(r):Promise.resolve(r).then(U,F)}function en(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var Q=e.apply(t,n);function i(e){$t(Q,U,F,i,l,"next",e)}function l(e){$t(Q,U,F,i,l,"throw",e)}i(void 0)}))}}function tn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function nn(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,on(U.key),U)}}function Un(e,t,n){return t&&nn(e.prototype,t),n&&nn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Fn(e,t,n){return(t=on(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qn(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&&rn(e,t)}function ln(e){return(ln=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function rn(e,t){return(rn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function an(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function dn(e){var t=function(){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}}();return function(){var n,U=ln(e);if(t){var F=ln(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return 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 an(e)}(this,n)}}function on(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}Ot({global:!0},{globalThis:F});var sn,Bn,cn=et("navigator","userAgent")||"",Rn=cn,Vn=F.process,un=Vn&&Vn.versions,hn=un&&un.v8;hn?Bn=(sn=hn.split("."))[0]<4?1:sn[0]+sn[1]:Rn&&(!(sn=Rn.match(/Edge\/(\d+)/))||sn[1]>=74)&&(sn=Rn.match(/Chrome\/(\d+)/))&&(Bn=sn[1]);var Zn,Sn=Bn&&+Bn,pn=Sn,Jn=i,mn=!!Object.getOwnPropertySymbols&&!Jn((function(){return!String(Symbol())||!Symbol.sham&&pn&&pn<41})),Wn=mn&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,kn=F,En=N,yn=Je,fn=mn,Nn=Wn,bn=Ze("wks"),vn=kn.Symbol,Tn=Nn?vn:vn&&vn.withoutSetter||yn,Cn=function(e){return En(bn,e)&&(fn||"string"==typeof bn[e])||(fn&&En(vn,e)?bn[e]=vn[e]:bn[e]=Tn("Symbol."+e)),bn[e]},gn=Jt,Dn=mt,Xn=Object.keys||function(e){return gn(e,Dn)},xn=K,Ln=j,In=Xn,Gn=l?Object.defineProperties:function(e,t){Ln(e);for(var n,U=In(t),F=U.length,Q=0;F>Q;)xn.f(e,n=U[Q++],t[n]);return e},Mn=et("document","documentElement"),Yn=j,wn=Gn,Kn=mt,_n=Ee,jn=Mn,Hn=C,Pn="prototype",zn="script",On=ke("IE_PROTO"),An=function(){},qn=function(e){return"<"+zn+">"+e+"</"+zn+">"},$n=function(){try{Zn=document.domain&&new ActiveXObject("htmlfile")}catch(F){}var e,t,n;$n=Zn?function(e){e.write(qn("")),e.close();var t=e.parentWindow.Object;return e=null,t}(Zn):(t=Hn("iframe"),n="java"+zn+":",t.style.display="none",jn.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(qn("document.F=Object")),e.close(),e.F);for(var U=Kn.length;U--;)delete $n[Pn][Kn[U]];return $n()};_n[On]=!0;var eU=Object.create||function(e,t){var n;return null!==e?(An[Pn]=Yn(e),n=new An,An[Pn]=null,n[On]=e):n=$n(),void 0===t?n:wn(n,t)},tU=eU,nU=K,UU=Cn("unscopables"),FU=Array.prototype;null==FU[UU]&&nU.f(FU,UU,{configurable:!0,value:tU(null)});var QU,iU,lU,rU={},aU=!i((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),dU=N,oU=E,sU=aU,BU=ke("IE_PROTO"),cU=Object.prototype,RU=sU?Object.getPrototypeOf:function(e){return e=oU(e),dU(e,BU)?e[BU]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?cU:null},VU=i,uU=RU,hU=ee,ZU=N,SU=Cn("iterator"),pU=!1;[].keys&&("next"in(lU=[].keys())?(iU=uU(uU(lU)))!==Object.prototype&&(QU=iU):pU=!0),(null==QU||VU((function(){var e={};return QU[SU].call(e)!==e})))&&(QU={}),ZU(QU,SU)||hU(QU,SU,(function(){return this}));var JU={IteratorPrototype:QU,BUGGY_SAFARI_ITERATORS:pU},mU=K.f,WU=N,kU=Cn("toStringTag"),EU=function(e,t,n){e&&!WU(e=n?e:e.prototype,kU)&&mU(e,kU,{configurable:!0,value:t})},yU=JU.IteratorPrototype,fU=eU,NU=s,bU=EU,vU=rU,TU=function(){return this},CU=J,gU=j,DU=function(e){if(!CU(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},XU=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(U){}return function(n,U){return gU(n),DU(U),t?e.call(n,U):n.__proto__=U,n}}():void 0),xU=Ot,LU=function(e,t,n){var U=t+" Iterator";return e.prototype=fU(yU,{next:NU(1,n)}),bU(e,U,!1),vU[U]=TU,e},IU=RU,GU=XU,MU=EU,YU=ee,wU=Oe,KU=rU,_U=JU.IteratorPrototype,jU=JU.BUGGY_SAFARI_ITERATORS,HU=Cn("iterator"),PU="keys",zU="values",OU="entries",AU=function(){return this},qU=function(e,t,n,U,F,Q,i){LU(n,t,U);var l,r,a,d=function(e){if(e===F&&R)return R;if(!jU&&e in B)return B[e];switch(e){case PU:case zU:case OU:return function(){return new n(this,e)}}return function(){return new n(this)}},o=t+" Iterator",s=!1,B=e.prototype,c=B[HU]||B["@@iterator"]||F&&B[F],R=!jU&&c||d(F),V="Array"==t&&B.entries||c;if(V&&(l=IU(V.call(new e)),_U!==Object.prototype&&l.next&&(IU(l)!==_U&&(GU?GU(l,_U):"function"!=typeof l[HU]&&YU(l,HU,AU)),MU(l,o,!0))),F==zU&&c&&c.name!==zU&&(s=!0,R=function(){return c.call(this)}),B[HU]!==R&&YU(B,HU,R),KU[t]=R,F)if(r={values:d(zU),keys:Q?R:d(PU),entries:d(OU)},i)for(a in r)(jU||s||!(a in B))&&wU(B,a,r[a]);else xU({target:t,proto:!0,forced:jU||s},r);return r},$U=p,eF=function(e){FU[UU][e]=!0},tF=rU,nF=Me,UF=qU,FF="Array Iterator",QF=nF.set,iF=nF.getterFor(FF),lF=UF(Array,"Array",(function(e,t){QF(this,{type:FF,target:$U(e),index:0,kind:t})}),(function(){var e=iF(this),t=e.target,n=e.kind,U=e.index++;return!t||U>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:U,done:!1}:"values"==n?{value:t[U],done:!1}:{value:[U,t[U]],done:!1}}),"values");tF.Arguments=tF.Array,eF("keys"),eF("values"),eF("entries");var rF={exports:{}},aF=!i((function(){return Object.isExtensible(Object.preventExtensions({}))})),dF=Ee,oF=J,sF=N,BF=K.f,cF=aF,RF=Je("meta"),VF=0,uF=Object.isExtensible||function(){return!0},hF=function(e){BF(e,RF,{value:{objectID:"O"+ ++VF,weakData:{}}})},ZF=rF.exports={REQUIRED:!1,fastKey:function(e,t){if(!oF(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!sF(e,RF)){if(!uF(e))return"F";if(!t)return"E";hF(e)}return e[RF].objectID},getWeakData:function(e,t){if(!sF(e,RF)){if(!uF(e))return!0;if(!t)return!1;hF(e)}return e[RF].weakData},onFreeze:function(e){return cF&&ZF.REQUIRED&&uF(e)&&!sF(e,RF)&&hF(e),e}};dF[RF]=!0;var SF=rF.exports,pF=rU,JF=Cn("iterator"),mF=Array.prototype,WF=function(e){return void 0!==e&&(pF.Array===e||mF[JF]===e)},kF=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},EF=kF,yF=function(e,t,n){if(EF(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,U){return e.call(t,n,U)};case 3:return function(n,U,F){return e.call(t,n,U,F)}}return function(){return e.apply(t,arguments)}},fF={};fF[Cn("toStringTag")]="z";var NF="[object z]"===String(fF),bF=NF,vF=c,TF=Cn("toStringTag"),CF="Arguments"==vF(function(){return arguments}()),gF=bF?vF:function(e){var t,n,U;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),TF))?n:CF?vF(t):"Object"==(U=vF(t))&&"function"==typeof t.callee?"Arguments":U},DF=gF,XF=rU,xF=Cn("iterator"),LF=function(e){if(null!=e)return e[xF]||e["@@iterator"]||XF[DF(e)]},IF=j,GF=j,MF=WF,YF=rt,wF=yF,KF=LF,_F=function(e){var t=e.return;if(void 0!==t)return IF(t.call(e)).value},jF=function(e,t){this.stopped=e,this.result=t},HF=function(e,t,n){var U,F,Q,i,l,r,a,d=n&&n.that,o=!(!n||!n.AS_ENTRIES),s=!(!n||!n.IS_ITERATOR),B=!(!n||!n.INTERRUPTED),c=wF(t,d,1+o+B),R=function(e){return U&&_F(U),new jF(!0,e)},V=function(e){return o?(GF(e),B?c(e[0],e[1],R):c(e[0],e[1])):B?c(e,R):c(e)};if(s)U=e;else{if("function"!=typeof(F=KF(e)))throw TypeError("Target is not iterable");if(MF(F)){for(Q=0,i=YF(e.length);i>Q;Q++)if((l=V(e[Q]))&&l instanceof jF)return l;return new jF(!1)}U=F.call(e)}for(r=U.next;!(a=r.call(U)).done;){try{l=V(a.value)}catch(u){throw _F(U),u}if("object"==typeof l&&l&&l instanceof jF)return l}return new jF(!1)},PF=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e},zF=Cn("iterator"),OF=!1;try{var AF=0,qF={next:function(){return{done:!!AF++}},return:function(){OF=!0}};qF[zF]=function(){return this},Array.from(qF,(function(){throw 2}))}catch(Ch){}var $F=function(e,t){if(!t&&!OF)return!1;var n=!1;try{var U={};U[zF]=function(){return{next:function(){return{done:n=!0}}}},e(U)}catch(Ch){}return n},eQ=J,tQ=XU,nQ=function(e,t,n){var U,F;return tQ&&"function"==typeof(U=t.constructor)&&U!==n&&eQ(F=U.prototype)&&F!==n.prototype&&tQ(e,F),e},UQ=Ot,FQ=F,QQ=Yt,iQ=Oe,lQ=SF,rQ=HF,aQ=PF,dQ=J,oQ=i,sQ=$F,BQ=EU,cQ=nQ,RQ=Oe,VQ=function(e,t,n){for(var U in t)RQ(e,U,t[U],n);return e},uQ=et,hQ=K,ZQ=l,SQ=Cn("species"),pQ=function(e){var t=uQ(e),n=hQ.f;ZQ&&t&&!t[SQ]&&n(t,SQ,{configurable:!0,get:function(){return this}})},JQ=K.f,mQ=eU,WQ=VQ,kQ=yF,EQ=PF,yQ=HF,fQ=qU,NQ=pQ,bQ=l,vQ=SF.fastKey,TQ=Me.set,CQ=Me.getterFor,gQ={getConstructor:function(e,t,n,U){var F=e((function(e,Q){EQ(e,F,t),TQ(e,{type:t,index:mQ(null),first:void 0,last:void 0,size:0}),bQ||(e.size=0),null!=Q&&yQ(Q,e[U],{that:e,AS_ENTRIES:n})})),Q=CQ(t),i=function(e,t,n){var U,F,i=Q(e),r=l(e,t);return r?r.value=n:(i.last=r={index:F=vQ(t,!0),key:t,value:n,previous:U=i.last,next:void 0,removed:!1},i.first||(i.first=r),U&&(U.next=r),bQ?i.size++:e.size++,"F"!==F&&(i.index[F]=r)),e},l=function(e,t){var n,U=Q(e),F=vQ(t);if("F"!==F)return U.index[F];for(n=U.first;n;n=n.next)if(n.key==t)return n};return WQ(F.prototype,{clear:function(){for(var e=Q(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,bQ?e.size=0:this.size=0},delete:function(e){var t=this,n=Q(t),U=l(t,e);if(U){var F=U.next,i=U.previous;delete n.index[U.index],U.removed=!0,i&&(i.next=F),F&&(F.previous=i),n.first==U&&(n.first=F),n.last==U&&(n.last=i),bQ?n.size--:t.size--}return!!U},forEach:function(e){for(var t,n=Q(this),U=kQ(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:n.first;)for(U(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!l(this,e)}}),WQ(F.prototype,n?{get:function(e){var t=l(this,e);return t&&t.value},set:function(e,t){return i(this,0===e?0:e,t)}}:{add:function(e){return i(this,e=0===e?0:e,e)}}),bQ&&JQ(F.prototype,"size",{get:function(){return Q(this).size}}),F},setStrong:function(e,t,n){var U=t+" Iterator",F=CQ(t),Q=CQ(U);fQ(e,t,(function(e,t){TQ(this,{type:U,target:e,state:F(e),kind:t,last:void 0})}),(function(){for(var e=Q(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),NQ(t)}};!function(e,t,n){var U=-1!==e.indexOf("Map"),F=-1!==e.indexOf("Weak"),Q=U?"set":"add",i=FQ[e],l=i&&i.prototype,r=i,a={},d=function(e){var t=l[e];iQ(l,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(F&&!dQ(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return F&&!dQ(e)?void 0:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(F&&!dQ(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(QQ(e,"function"!=typeof i||!(F||l.forEach&&!oQ((function(){(new i).entries().next()})))))r=n.getConstructor(t,e,U,Q),lQ.REQUIRED=!0;else if(QQ(e,!0)){var o=new r,s=o[Q](F?{}:-0,1)!=o,B=oQ((function(){o.has(1)})),c=sQ((function(e){new i(e)})),R=!F&&oQ((function(){for(var e=new i,t=5;t--;)e[Q](t,t);return!e.has(-0)}));c||((r=t((function(t,n){aQ(t,r,e);var F=cQ(new i,t,r);return null!=n&&rQ(n,F[Q],{that:F,AS_ENTRIES:U}),F}))).prototype=l,l.constructor=r),(B||R)&&(d("delete"),d("has"),U&&d("get")),(R||s)&&d(Q),F&&l.clear&&delete l.clear}a[e]=r,UQ({global:!0,forced:r!=i},a),BQ(r,e),F||n.setStrong(r,e,U)}("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),gQ);var DQ=gF,XQ=NF?{}.toString:function(){return"[object "+DQ(this)+"]"};NF||Oe(Object.prototype,"toString",XQ,{unsafe:!0});var xQ=Qt,LQ=h,IQ=function(e){return function(t,n){var U,F,Q=String(LQ(t)),i=xQ(n),l=Q.length;return i<0||i>=l?e?"":void 0:(U=Q.charCodeAt(i))<55296||U>56319||i+1===l||(F=Q.charCodeAt(i+1))<56320||F>57343?e?Q.charAt(i):U:e?Q.slice(i,i+2):F-56320+(U-55296<<10)+65536}},GQ={codeAt:IQ(!1),charAt:IQ(!0)},MQ=GQ.charAt,YQ=Me,wQ=qU,KQ="String Iterator",_Q=YQ.set,jQ=YQ.getterFor(KQ);wQ(String,"String",(function(e){_Q(this,{type:KQ,string:String(e),index:0})}),(function(){var e,t=jQ(this),n=t.string,U=t.index;return U>=n.length?{value:void 0,done:!0}:(e=MQ(n,U),t.index+=e.length,{value:e,done:!1})}));var HQ=j,PQ=kF,zQ=function(){for(var e,t=HQ(this),n=PQ(t.delete),U=!0,F=0,Q=arguments.length;F<Q;F++)e=n.call(t,arguments[F]),U=U&&e;return!!U};Ot({target:"Map",proto:!0,real:!0,forced:!1},{deleteAll:function(){return zQ.apply(this,arguments)}});var OQ=function(e){return Map.prototype.entries.call(e)},AQ=j,qQ=yF,$Q=OQ,ei=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{every:function(e){var t=AQ(this),n=$Q(t),U=qQ(e,arguments.length>1?arguments[1]:void 0,3);return!ei(n,(function(e,n,F){if(!U(n,e,t))return F()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var ti=j,ni=kF,Ui=Cn("species"),Fi=function(e,t){var n,U=ti(e).constructor;return void 0===U||null==(n=ti(U)[Ui])?t:ni(n)},Qi=et,ii=j,li=kF,ri=yF,ai=Fi,di=OQ,oi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{filter:function(e){var t=ii(this),n=di(t),U=ri(e,arguments.length>1?arguments[1]:void 0,3),F=new(ai(t,Qi("Map"))),Q=li(F.set);return oi(n,(function(e,n){U(n,e,t)&&Q.call(F,e,n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var si=j,Bi=yF,ci=OQ,Ri=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{find:function(e){var t=si(this),n=ci(t),U=Bi(e,arguments.length>1?arguments[1]:void 0,3);return Ri(n,(function(e,n,F){if(U(n,e,t))return F(n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Vi=j,ui=yF,hi=OQ,Zi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{findKey:function(e){var t=Vi(this),n=hi(t),U=ui(e,arguments.length>1?arguments[1]:void 0,3);return Zi(n,(function(e,n,F){if(U(n,e,t))return F(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Si=j,pi=OQ,Ji=function(e,t){return e===t||e!=e&&t!=t},mi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{includes:function(e){return mi(pi(Si(this)),(function(t,n,U){if(Ji(n,e))return U()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var Wi=j,ki=OQ,Ei=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{keyOf:function(e){return Ei(ki(Wi(this)),(function(t,n,U){if(n===e)return U(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var yi=et,fi=j,Ni=kF,bi=yF,vi=Fi,Ti=OQ,Ci=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{mapKeys:function(e){var t=fi(this),n=Ti(t),U=bi(e,arguments.length>1?arguments[1]:void 0,3),F=new(vi(t,yi("Map"))),Q=Ni(F.set);return Ci(n,(function(e,n){Q.call(F,U(n,e,t),n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var gi=et,Di=j,Xi=kF,xi=yF,Li=Fi,Ii=OQ,Gi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{mapValues:function(e){var t=Di(this),n=Ii(t),U=xi(e,arguments.length>1?arguments[1]:void 0,3),F=new(Li(t,gi("Map"))),Q=Xi(F.set);return Gi(n,(function(e,n){Q.call(F,e,U(n,e,t))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var Mi=j,Yi=kF,wi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{merge:function(e){for(var t=Mi(this),n=Yi(t.set),U=0;U<arguments.length;)wi(arguments[U++],n,{that:t,AS_ENTRIES:!0});return t}});var Ki=j,_i=kF,ji=OQ,Hi=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{reduce:function(e){var t=Ki(this),n=ji(t),U=arguments.length<2,F=U?void 0:arguments[1];if(_i(e),Hi(n,(function(n,Q){U?(U=!1,F=Q):F=e(F,Q,n,t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),U)throw TypeError("Reduce of empty map with no initial value");return F}});var Pi=j,zi=yF,Oi=OQ,Ai=HF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{some:function(e){var t=Pi(this),n=Oi(t),U=zi(e,arguments.length>1?arguments[1]:void 0,3);return Ai(n,(function(e,n,F){if(U(n,e,t))return F()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var qi=j,$i=kF;Ot({target:"Map",proto:!0,real:!0,forced:!1},{update:function(e,t){var n=qi(this),U=arguments.length;$i(t);var F=n.has(e);if(!F&&U<3)throw TypeError("Updating absent value");var Q=F?n.get(e):$i(U>2?arguments[2]:void 0)(e,n);return n.set(e,t(Q,e,n)),n}});var el={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},tl=F,nl=el,Ul=lF,Fl=ee,Ql=Cn,il=Ql("iterator"),ll=Ql("toStringTag"),rl=Ul.values;for(var al in nl){var dl=tl[al],ol=dl&&dl.prototype;if(ol){if(ol[il]!==rl)try{Fl(ol,il,rl)}catch(Ch){ol[il]=rl}if(ol[ll]||Fl(ol,ll,al),nl[al])for(var sl in Ul)if(ol[sl]!==Ul[sl])try{Fl(ol,sl,Ul[sl])}catch(Ch){ol[sl]=Ul[sl]}}}var Bl=c,cl=Array.isArray||function(e){return"Array"==Bl(e)},Rl=J,Vl=cl,ul=Cn("species"),hl=function(e,t){var n;return Vl(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!Vl(n.prototype)?Rl(n)&&null===(n=n[ul])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)},Zl=yF,Sl=u,pl=E,Jl=rt,ml=hl,Wl=[].push,kl=function(e){var t=1==e,n=2==e,U=3==e,F=4==e,Q=6==e,i=7==e,l=5==e||Q;return function(r,a,d,o){for(var s,B,c=pl(r),R=Sl(c),V=Zl(a,d,3),u=Jl(R.length),h=0,Z=o||ml,S=t?Z(r,u):n||i?Z(r,0):void 0;u>h;h++)if((l||h in R)&&(B=V(s=R[h],h,c),e))if(t)S[h]=B;else if(B)switch(e){case 3:return!0;case 5:return s;case 6:return h;case 2:Wl.call(S,s)}else switch(e){case 4:return!1;case 7:Wl.call(S,s)}return Q?-1:U||F?F:S}},El={forEach:kl(0),map:kl(1),filter:kl(2),some:kl(3),every:kl(4),find:kl(5),findIndex:kl(6),filterOut:kl(7)},yl=i,fl=Sn,Nl=Cn("species"),bl=function(e){return fl>=51||!yl((function(){var t=[];return(t.constructor={})[Nl]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},vl=El.map;Ot({target:"Array",proto:!0,forced:!bl("map")},{map:function(e){return vl(this,e,arguments.length>1?arguments[1]:void 0)}});var Tl=E,Cl=Xn;Ot({target:"Object",stat:!0,forced:i((function(){Cl(1)}))},{keys:function(e){return Cl(Tl(e))}});var gl=W,Dl=K,Xl=s,xl=function(e,t,n){var U=gl(t);U in e?Dl.f(e,U,Xl(0,n)):e[U]=n},Ll=Ot,Il=i,Gl=cl,Ml=J,Yl=E,wl=rt,Kl=xl,_l=hl,jl=bl,Hl=Sn,Pl=Cn("isConcatSpreadable"),zl=9007199254740991,Ol="Maximum allowed index exceeded",Al=Hl>=51||!Il((function(){var e=[];return e[Pl]=!1,e.concat()[0]!==e})),ql=jl("concat"),$l=function(e){if(!Ml(e))return!1;var t=e[Pl];return void 0!==t?!!t:Gl(e)};Ll({target:"Array",proto:!0,forced:!Al||!ql},{concat:function(e){var t,n,U,F,Q,i=Yl(this),l=_l(i,0),r=0;for(t=-1,U=arguments.length;t<U;t++)if($l(Q=-1===t?i:arguments[t])){if(r+(F=wl(Q.length))>zl)throw TypeError(Ol);for(n=0;n<F;n++,r++)n in Q&&Kl(l,r,Q[n])}else{if(r>=zl)throw TypeError(Ol);Kl(l,r++,Q)}return l.length=r,l}});var er,tr,nr,Ur=F.Promise,Fr=/(?:iphone|ipod|ipad).*applewebkit/i.test(cn),Qr="process"==c(F.process),ir=F,lr=i,rr=yF,ar=Mn,dr=C,or=Fr,sr=Qr,Br=ir.location,cr=ir.setImmediate,Rr=ir.clearImmediate,Vr=ir.process,ur=ir.MessageChannel,hr=ir.Dispatch,Zr=0,Sr={},pr="onreadystatechange",Jr=function(e){if(Sr.hasOwnProperty(e)){var t=Sr[e];delete Sr[e],t()}},mr=function(e){return function(){Jr(e)}},Wr=function(e){Jr(e.data)},kr=function(e){ir.postMessage(e+"",Br.protocol+"//"+Br.host)};cr&&Rr||(cr=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return Sr[++Zr]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},er(Zr),Zr},Rr=function(e){delete Sr[e]},sr?er=function(e){Vr.nextTick(mr(e))}:hr&&hr.now?er=function(e){hr.now(mr(e))}:ur&&!or?(nr=(tr=new ur).port2,tr.port1.onmessage=Wr,er=rr(nr.postMessage,nr,1)):ir.addEventListener&&"function"==typeof postMessage&&!ir.importScripts&&Br&&"file:"!==Br.protocol&&!lr(kr)?(er=kr,ir.addEventListener("message",Wr,!1)):er=pr in dr("script")?function(e){ar.appendChild(dr("script"))[pr]=function(){ar.removeChild(this),Jr(e)}}:function(e){setTimeout(mr(e),0)});var Er,yr,fr,Nr,br,vr,Tr,Cr,gr={set:cr,clear:Rr},Dr=/web0s(?!.*chrome)/i.test(cn),Xr=F,xr=Q.f,Lr=gr.set,Ir=Fr,Gr=Dr,Mr=Qr,Yr=Xr.MutationObserver||Xr.WebKitMutationObserver,wr=Xr.document,Kr=Xr.process,_r=Xr.Promise,jr=xr(Xr,"queueMicrotask"),Hr=jr&&jr.value;Hr||(Er=function(){var e,t;for(Mr&&(e=Kr.domain)&&e.exit();yr;){t=yr.fn,yr=yr.next;try{t()}catch(Ch){throw yr?Nr():fr=void 0,Ch}}fr=void 0,e&&e.enter()},Ir||Mr||Gr||!Yr||!wr?_r&&_r.resolve?((Tr=_r.resolve(void 0)).constructor=_r,Cr=Tr.then,Nr=function(){Cr.call(Tr,Er)}):Nr=Mr?function(){Kr.nextTick(Er)}:function(){Lr.call(Xr,Er)}:(br=!0,vr=wr.createTextNode(""),new Yr(Er).observe(vr,{characterData:!0}),Nr=function(){vr.data=br=!br}));var Pr=Hr||function(e){var t={fn:e,next:void 0};fr&&(fr.next=t),yr||(yr=t,Nr()),fr=t},zr={},Or=kF,Ar=function(e){var t,n;this.promise=new e((function(e,U){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=U})),this.resolve=Or(t),this.reject=Or(n)};zr.f=function(e){return new Ar(e)};var qr,$r,ea,ta,na=j,Ua=J,Fa=zr,Qa=F,ia="object"==typeof window,la=Ot,ra=F,aa=et,da=Ur,oa=Oe,sa=VQ,Ba=XU,ca=EU,Ra=pQ,Va=J,ua=kF,ha=PF,Za=de,Sa=HF,pa=$F,Ja=Fi,ma=gr.set,Wa=Pr,ka=function(e,t){if(na(e),Ua(t)&&t.constructor===e)return t;var n=Fa.f(e);return(0,n.resolve)(t),n.promise},Ea=function(e,t){var n=Qa.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))},ya=zr,fa=function(e){try{return{error:!1,value:e()}}catch(Ch){return{error:!0,value:Ch}}},Na=Me,ba=Yt,va=ia,Ta=Qr,Ca=Sn,ga=Cn("species"),Da="Promise",Xa=Na.get,xa=Na.set,La=Na.getterFor(Da),Ia=da&&da.prototype,Ga=da,Ma=Ia,Ya=ra.TypeError,wa=ra.document,Ka=ra.process,_a=ya.f,ja=_a,Ha=!!(wa&&wa.createEvent&&ra.dispatchEvent),Pa="function"==typeof PromiseRejectionEvent,za="unhandledrejection",Oa=!1,Aa=ba(Da,(function(){var e=Za(Ga)!==String(Ga);if(!e&&66===Ca)return!0;if(Ca>=51&&/native code/.test(Ga))return!1;var t=new Ga((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))};return(t.constructor={})[ga]=n,!(Oa=t.then((function(){}))instanceof n)||!e&&va&&!Pa})),qa=Aa||!pa((function(e){Ga.all(e).catch((function(){}))})),$a=function(e){var t;return!(!Va(e)||"function"!=typeof(t=e.then))&&t},ed=function(e,t){if(!e.notified){e.notified=!0;var n=e.reactions;Wa((function(){for(var U=e.value,F=1==e.state,Q=0;n.length>Q;){var i,l,r,a=n[Q++],d=F?a.ok:a.fail,o=a.resolve,s=a.reject,B=a.domain;try{d?(F||(2===e.rejection&&Fd(e),e.rejection=1),!0===d?i=U:(B&&B.enter(),i=d(U),B&&(B.exit(),r=!0)),i===a.promise?s(Ya("Promise-chain cycle")):(l=$a(i))?l.call(i,o,s):o(i)):s(U)}catch(Ch){B&&!r&&B.exit(),s(Ch)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&nd(e)}))}},td=function(e,t,n){var U,F;Ha?((U=wa.createEvent("Event")).promise=t,U.reason=n,U.initEvent(e,!1,!0),ra.dispatchEvent(U)):U={promise:t,reason:n},!Pa&&(F=ra["on"+e])?F(U):e===za&&Ea("Unhandled promise rejection",n)},nd=function(e){ma.call(ra,(function(){var t,n=e.facade,U=e.value;if(Ud(e)&&(t=fa((function(){Ta?Ka.emit("unhandledRejection",U,n):td(za,n,U)})),e.rejection=Ta||Ud(e)?2:1,t.error))throw t.value}))},Ud=function(e){return 1!==e.rejection&&!e.parent},Fd=function(e){ma.call(ra,(function(){var t=e.facade;Ta?Ka.emit("rejectionHandled",t):td("rejectionhandled",t,e.value)}))},Qd=function(e,t,n){return function(U){e(t,U,n)}},id=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,ed(e,!0))},ld=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw Ya("Promise can't be resolved itself");var U=$a(t);U?Wa((function(){var n={done:!1};try{U.call(t,Qd(ld,n,e),Qd(id,n,e))}catch(Ch){id(n,Ch,e)}})):(e.value=t,e.state=1,ed(e,!1))}catch(Ch){id({done:!1},Ch,e)}}};if(Aa&&(Ma=(Ga=function(e){ha(this,Ga,Da),ua(e),qr.call(this);var t=Xa(this);try{e(Qd(ld,t),Qd(id,t))}catch(Ch){id(t,Ch)}}).prototype,(qr=function(e){xa(this,{type:Da,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=sa(Ma,{then:function(e,t){var n=La(this),U=_a(Ja(this,Ga));return U.ok="function"!=typeof e||e,U.fail="function"==typeof t&&t,U.domain=Ta?Ka.domain:void 0,n.parent=!0,n.reactions.push(U),0!=n.state&&ed(n,!1),U.promise},catch:function(e){return this.then(void 0,e)}}),$r=function(){var e=new qr,t=Xa(e);this.promise=e,this.resolve=Qd(ld,t),this.reject=Qd(id,t)},ya.f=_a=function(e){return e===Ga||e===ea?new $r(e):ja(e)},"function"==typeof da&&Ia!==Object.prototype)){ta=Ia.then,Oa||(oa(Ia,"then",(function(e,t){var n=this;return new Ga((function(e,t){ta.call(n,e,t)})).then(e,t)}),{unsafe:!0}),oa(Ia,"catch",Ma.catch,{unsafe:!0}));try{delete Ia.constructor}catch(Ch){}Ba&&Ba(Ia,Ma)}la({global:!0,wrap:!0,forced:Aa},{Promise:Ga}),ca(Ga,Da,!1),Ra(Da),ea=aa(Da),la({target:Da,stat:!0,forced:Aa},{reject:function(e){var t=_a(this);return t.reject.call(void 0,e),t.promise}}),la({target:Da,stat:!0,forced:Aa},{resolve:function(e){return ka(this,e)}}),la({target:Da,stat:!0,forced:qa},{all:function(e){var t=this,n=_a(t),U=n.resolve,F=n.reject,Q=fa((function(){var n=ua(t.resolve),Q=[],i=0,l=1;Sa(e,(function(e){var r=i++,a=!1;Q.push(void 0),l++,n.call(t,e).then((function(e){a||(a=!0,Q[r]=e,--l||U(Q))}),F)})),--l||U(Q)}));return Q.error&&F(Q.value),n.promise},race:function(e){var t=this,n=_a(t),U=n.reject,F=fa((function(){var F=ua(t.resolve);Sa(e,(function(e){F.call(t,e).then(n.resolve,U)}))}));return F.error&&U(F.value),n.promise}});var rd={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function U(){}function F(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function Q(e,t,U,Q,i){if("function"!=typeof U)throw new TypeError("The listener must be a function");var l=new F(U,Q||e,i),r=n?n+t:t;return e._events[r]?e._events[r].fn?e._events[r]=[e._events[r],l]:e._events[r].push(l):(e._events[r]=l,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new U:delete e._events[t]}function l(){this._events=new U,this._eventsCount=0}Object.create&&(U.prototype=Object.create(null),(new U).__proto__||(n=!1)),l.prototype.eventNames=function(){var e,U,F=[];if(0===this._eventsCount)return F;for(U in e=this._events)t.call(e,U)&&F.push(n?U.slice(1):U);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(e)):F},l.prototype.listeners=function(e){var t=n?n+e:e,U=this._events[t];if(!U)return[];if(U.fn)return[U.fn];for(var F=0,Q=U.length,i=new Array(Q);F<Q;F++)i[F]=U[F].fn;return i},l.prototype.listenerCount=function(e){var t=n?n+e:e,U=this._events[t];return U?U.fn?1:U.length:0},l.prototype.emit=function(e,t,U,F,Q,i){var l=n?n+e:e;if(!this._events[l])return!1;var r,a,d=this._events[l],o=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),o){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,U),!0;case 4:return d.fn.call(d.context,t,U,F),!0;case 5:return d.fn.call(d.context,t,U,F,Q),!0;case 6:return d.fn.call(d.context,t,U,F,Q,i),!0}for(a=1,r=new Array(o-1);a<o;a++)r[a-1]=arguments[a];d.fn.apply(d.context,r)}else{var s,B=d.length;for(a=0;a<B;a++)switch(d[a].once&&this.removeListener(e,d[a].fn,void 0,!0),o){case 1:d[a].fn.call(d[a].context);break;case 2:d[a].fn.call(d[a].context,t);break;case 3:d[a].fn.call(d[a].context,t,U);break;case 4:d[a].fn.call(d[a].context,t,U,F);break;default:if(!r)for(s=1,r=new Array(o-1);s<o;s++)r[s-1]=arguments[s];d[a].fn.apply(d[a].context,r)}}return!0},l.prototype.on=function(e,t,n){return Q(this,e,t,n,!1)},l.prototype.once=function(e,t,n){return Q(this,e,t,n,!0)},l.prototype.removeListener=function(e,t,U,F){var Q=n?n+e:e;if(!this._events[Q])return this;if(!t)return i(this,Q),this;var l=this._events[Q];if(l.fn)l.fn!==t||F&&!l.once||U&&l.context!==U||i(this,Q);else{for(var r=0,a=[],d=l.length;r<d;r++)(l[r].fn!==t||F&&!l[r].once||U&&l[r].context!==U)&&a.push(l[r]);a.length?this._events[Q]=1===a.length?a[0]:a:i(this,Q)}return this},l.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new U,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}(rd);var ad=n(rd.exports),dd={exports:{}};dd.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],U=e[1],F=e[2],Q=e[3];U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&F|~U&Q)+t[0]-680876936|0)<<7|n>>>25)+U|0)&U|~n&F)+t[1]-389564586|0)<<12|Q>>>20)+n|0)&n|~Q&U)+t[2]+606105819|0)<<17|F>>>15)+Q|0)&Q|~F&n)+t[3]-1044525330|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&F|~U&Q)+t[4]-176418897|0)<<7|n>>>25)+U|0)&U|~n&F)+t[5]+1200080426|0)<<12|Q>>>20)+n|0)&n|~Q&U)+t[6]-1473231341|0)<<17|F>>>15)+Q|0)&Q|~F&n)+t[7]-45705983|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&F|~U&Q)+t[8]+1770035416|0)<<7|n>>>25)+U|0)&U|~n&F)+t[9]-1958414417|0)<<12|Q>>>20)+n|0)&n|~Q&U)+t[10]-42063|0)<<17|F>>>15)+Q|0)&Q|~F&n)+t[11]-1990404162|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&F|~U&Q)+t[12]+1804603682|0)<<7|n>>>25)+U|0)&U|~n&F)+t[13]-40341101|0)<<12|Q>>>20)+n|0)&n|~Q&U)+t[14]-1502002290|0)<<17|F>>>15)+Q|0)&Q|~F&n)+t[15]+1236535329|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&Q|F&~Q)+t[1]-165796510|0)<<5|n>>>27)+U|0)&F|U&~F)+t[6]-1069501632|0)<<9|Q>>>23)+n|0)&U|n&~U)+t[11]+643717713|0)<<14|F>>>18)+Q|0)&n|Q&~n)+t[0]-373897302|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&Q|F&~Q)+t[5]-701558691|0)<<5|n>>>27)+U|0)&F|U&~F)+t[10]+38016083|0)<<9|Q>>>23)+n|0)&U|n&~U)+t[15]-660478335|0)<<14|F>>>18)+Q|0)&n|Q&~n)+t[4]-405537848|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&Q|F&~Q)+t[9]+568446438|0)<<5|n>>>27)+U|0)&F|U&~F)+t[14]-1019803690|0)<<9|Q>>>23)+n|0)&U|n&~U)+t[3]-187363961|0)<<14|F>>>18)+Q|0)&n|Q&~n)+t[8]+1163531501|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U&Q|F&~Q)+t[13]-1444681467|0)<<5|n>>>27)+U|0)&F|U&~F)+t[2]-51403784|0)<<9|Q>>>23)+n|0)&U|n&~U)+t[7]+1735328473|0)<<14|F>>>18)+Q|0)&n|Q&~n)+t[12]-1926607734|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U^F^Q)+t[5]-378558|0)<<4|n>>>28)+U|0)^U^F)+t[8]-2022574463|0)<<11|Q>>>21)+n|0)^n^U)+t[11]+1839030562|0)<<16|F>>>16)+Q|0)^Q^n)+t[14]-35309556|0)<<23|U>>>9)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U^F^Q)+t[1]-1530992060|0)<<4|n>>>28)+U|0)^U^F)+t[4]+1272893353|0)<<11|Q>>>21)+n|0)^n^U)+t[7]-155497632|0)<<16|F>>>16)+Q|0)^Q^n)+t[10]-1094730640|0)<<23|U>>>9)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U^F^Q)+t[13]+681279174|0)<<4|n>>>28)+U|0)^U^F)+t[0]-358537222|0)<<11|Q>>>21)+n|0)^n^U)+t[3]-722521979|0)<<16|F>>>16)+Q|0)^Q^n)+t[6]+76029189|0)<<23|U>>>9)+F|0,U=((U+=((F=((F+=((Q=((Q+=((n=((n+=(U^F^Q)+t[9]-640364487|0)<<4|n>>>28)+U|0)^U^F)+t[12]-421815835|0)<<11|Q>>>21)+n|0)^n^U)+t[15]+530742520|0)<<16|F>>>16)+Q|0)^Q^n)+t[2]-995338651|0)<<23|U>>>9)+F|0,U=((U+=((Q=((Q+=(U^((n=((n+=(F^(U|~Q))+t[0]-198630844|0)<<6|n>>>26)+U|0)|~F))+t[7]+1126891415|0)<<10|Q>>>22)+n|0)^((F=((F+=(n^(Q|~U))+t[14]-1416354905|0)<<15|F>>>17)+Q|0)|~n))+t[5]-57434055|0)<<21|U>>>11)+F|0,U=((U+=((Q=((Q+=(U^((n=((n+=(F^(U|~Q))+t[12]+1700485571|0)<<6|n>>>26)+U|0)|~F))+t[3]-1894986606|0)<<10|Q>>>22)+n|0)^((F=((F+=(n^(Q|~U))+t[10]-1051523|0)<<15|F>>>17)+Q|0)|~n))+t[1]-2054922799|0)<<21|U>>>11)+F|0,U=((U+=((Q=((Q+=(U^((n=((n+=(F^(U|~Q))+t[8]+1873313359|0)<<6|n>>>26)+U|0)|~F))+t[15]-30611744|0)<<10|Q>>>22)+n|0)^((F=((F+=(n^(Q|~U))+t[6]-1560198380|0)<<15|F>>>17)+Q|0)|~n))+t[13]+1309151649|0)<<21|U>>>11)+F|0,U=((U+=((Q=((Q+=(U^((n=((n+=(F^(U|~Q))+t[4]-145523070|0)<<6|n>>>26)+U|0)|~F))+t[11]-1120210379|0)<<10|Q>>>22)+n|0)^((F=((F+=(n^(Q|~U))+t[2]+718787259|0)<<15|F>>>17)+Q|0)|~n))+t[9]-343485551|0)<<21|U>>>11)+F|0,e[0]=n+e[0]|0,e[1]=U+e[1]|0,e[2]=F+e[2]|0,e[3]=Q+e[3]|0}function U(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 F(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 Q(e){var t,F,Q,i,l,r,a=e.length,d=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=a;t+=64)n(d,U(e.substring(t-64,t)));for(F=(e=e.substring(t-64)).length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<F;t+=1)Q[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(Q[t>>2]|=128<<(t%4<<3),t>55)for(n(d,Q),t=0;t<16;t+=1)Q[t]=0;return i=(i=8*a).toString(16).match(/(.*?)(.{0,8})$/),l=parseInt(i[2],16),r=parseInt(i[1],16)||0,Q[14]=l,Q[15]=r,n(d,Q),d}function i(e){var t,U,Q,i,l,r,a=e.length,d=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=a;t+=64)n(d,F(e.subarray(t-64,t)));for(U=(e=t-64<a?e.subarray(t-64):new Uint8Array(0)).length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<U;t+=1)Q[t>>2]|=e[t]<<(t%4<<3);if(Q[t>>2]|=128<<(t%4<<3),t>55)for(n(d,Q),t=0;t<16;t+=1)Q[t]=0;return i=(i=8*a).toString(16).match(/(.*?)(.{0,8})$/),l=parseInt(i[2],16),r=parseInt(i[1],16)||0,Q[14]=l,Q[15]=r,n(d,Q),d}function l(e){var n,U="";for(n=0;n<4;n+=1)U+=t[e>>8*n+4&15]+t[e>>8*n&15];return U}function r(e){var t;for(t=0;t<e.length;t+=1)e[t]=l(e[t]);return e.join("")}function a(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),e}function d(e,t){var n,U=e.length,F=new ArrayBuffer(U),Q=new Uint8Array(F);for(n=0;n<U;n+=1)Q[n]=e.charCodeAt(n);return t?Q:F}function o(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function s(e,t,n){var U=new Uint8Array(e.byteLength+t.byteLength);return U.set(new Uint8Array(e)),U.set(new Uint8Array(t),e.byteLength),n?U:U.buffer}function B(e){var t,n=[],U=e.length;for(t=0;t<U-1;t+=2)n.push(parseInt(e.substr(t,2),16));return String.fromCharCode.apply(String,n)}function c(){this.reset()}return r(Q("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,U){var F,Q,i,l,r=this.byteLength,a=t(n,r),d=r;return U!==e&&(d=t(U,r)),a>d?new ArrayBuffer(0):(F=d-a,Q=new ArrayBuffer(F),i=new Uint8Array(Q),l=new Uint8Array(this,a,F),i.set(l),Q)}}(),c.prototype.append=function(e){return this.appendBinary(a(e)),this},c.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,F=this._buff.length;for(t=64;t<=F;t+=64)n(this._hash,U(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},c.prototype.end=function(e){var t,n,U=this._buff,F=U.length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<F;t+=1)Q[t>>2]|=U.charCodeAt(t)<<(t%4<<3);return this._finish(Q,F),n=r(this._hash),e&&(n=B(n)),this.reset(),n},c.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},c.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},c.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},c.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},c.prototype._finish=function(e,t){var U,F,Q,i=t;if(e[i>>2]|=128<<(i%4<<3),i>55)for(n(this._hash,e),i=0;i<16;i+=1)e[i]=0;U=(U=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),F=parseInt(U[2],16),Q=parseInt(U[1],16)||0,e[14]=F,e[15]=Q,n(this._hash,e)},c.hash=function(e,t){return c.hashBinary(a(e),t)},c.hashBinary=function(e,t){var n=r(Q(e));return t?B(n):n},c.ArrayBuffer=function(){this.reset()},c.ArrayBuffer.prototype.append=function(e){var t,U=s(this._buff.buffer,e,!0),Q=U.length;for(this._length+=e.byteLength,t=64;t<=Q;t+=64)n(this._hash,F(U.subarray(t-64,t)));return this._buff=t-64<Q?new Uint8Array(U.buffer.slice(t-64)):new Uint8Array(0),this},c.ArrayBuffer.prototype.end=function(e){var t,n,U=this._buff,F=U.length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<F;t+=1)Q[t>>2]|=U[t]<<(t%4<<3);return this._finish(Q,F),n=r(this._hash),e&&(n=B(n)),this.reset(),n},c.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},c.ArrayBuffer.prototype.getState=function(){var e=c.prototype.getState.call(this);return e.buff=o(e.buff),e},c.ArrayBuffer.prototype.setState=function(e){return e.buff=d(e.buff,!0),c.prototype.setState.call(this,e)},c.ArrayBuffer.prototype.destroy=c.prototype.destroy,c.ArrayBuffer.prototype._finish=c.prototype._finish,c.ArrayBuffer.hash=function(e,t){var n=r(i(new Uint8Array(e)));return t?B(n):n},c}();var od=n(dd.exports),sd=i,Bd=function(e,t){var n=[][e];return!!n&&sd((function(){n.call(null,t||function(){throw 1},1)}))},cd=Ot,Rd=p,Vd=[].join,ud=u!=Object,hd=Bd("join",",");cd({target:"Array",proto:!0,forced:ud||!hd},{join:function(e){return Vd.call(Rd(this),void 0===e?",":e)}});var Zd=function(e){return e>="0"&&e<="9"?e.charCodeAt(0)-"0".charCodeAt(0):e>="a"&&e<="z"?e.charCodeAt(0)-"a".charCodeAt(0)+10:255},Sd=function(e,t){var n,U=(e[0].charCodeAt()^e[1].charCodeAt()^e[2].charCodeAt())-"0".charCodeAt(0),F=t-U-1,Q=new Array(F),i=new Array(U);for(n=U;n>0;n--)i[U-n]=String.fromCharCode(e[t-U-2].charCodeAt()^e[t-U-1].charCodeAt()^e[t-n].charCodeAt());for(n=0;n<F;n++)Q[n]=e[n+1];return{convertKey:Q,convertLen:F,method:i.join(""),methodLen:U}},pd=function(e){var t=0;for(t=0;0!==e;t++)e&=e-1;return t},Jd=function(e,t,n){var U=e+pd(t)+n;return String.fromCharCode(255&U)},md=function(e,t,n){var U=e.charCodeAt()-pd(t)-n;return String.fromCharCode(255&U)},Wd=function(e,t,n){for(var U,F=85,Q=250,i=0;i<t;i++)i%2==1?(U=F^e[i].charCodeAt(),F=e[i].charCodeAt()):(U=Q^e[i].charCodeAt(),Q=e[i].charCodeAt()),e[i]=0===n?md(U,i,21):Jd(U,i,21);return e},kd=function(e,t,n){var U=85,F=250;Ed(e);for(var Q,i,l,r=0;r<t;r++){(l=e[r].charCodeAt(0))>127&&(l-=256),r%2==1?(Q=U^l,U=l,i=F):(Q=F^l,F=l,i=U),Q>127&&(Q-=256);var a=(0===n?md(Q,r,21):Jd(Q,r,21)).charCodeAt(0);a>127&&(a-=256);var d=a-i;d<0&&(d+=256),e[r]=String.fromCharCode(d)}return Ed(e),e};function Ed(e){for(var t,n=e.length,U=0;U<n&&U!==n-1;U+=2)t=e[U],e[U]=e[U+1],e[U+1]=t;return e}function yd(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,U=e;t=t||U.length;var F=Sd(U,t),Q=F.convertKey,i=F.convertLen;switch(F.method){case"11":case"22":case"appdevice":case"webdevice":Q=Wd(Q,i,n);break;case"app_v2":case"web_v2":Q=kd(Q,i,n)}var l=i-Zd(Q[0])-1,r=new Array(l+1);r[l]="";var a=0;for(a=0;a<l;a++)r[a]=Q[a+1];return r.join("")}var fd,Nd={exports:{}},bd="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,vd=bd,Td=l,Cd=F,gd=J,Dd=N,Xd=gF,xd=ee,Ld=Oe,Id=K.f,Gd=RU,Md=XU,Yd=Cn,wd=Je,Kd=Cd.Int8Array,_d=Kd&&Kd.prototype,jd=Cd.Uint8ClampedArray,Hd=jd&&jd.prototype,Pd=Kd&&Gd(Kd),zd=_d&&Gd(_d),Od=Object.prototype,Ad=Od.isPrototypeOf,qd=Yd("toStringTag"),$d=wd("TYPED_ARRAY_TAG"),eo=vd&&!!Md&&"Opera"!==Xd(Cd.opera),to=!1,no={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Uo={BigInt64Array:8,BigUint64Array:8},Fo=function(e){if(!gd(e))return!1;var t=Xd(e);return Dd(no,t)||Dd(Uo,t)};for(fd in no)Cd[fd]||(eo=!1);if((!eo||"function"!=typeof Pd||Pd===Function.prototype)&&(Pd=function(){throw TypeError("Incorrect invocation")},eo))for(fd in no)Cd[fd]&&Md(Cd[fd],Pd);if((!eo||!zd||zd===Od)&&(zd=Pd.prototype,eo))for(fd in no)Cd[fd]&&Md(Cd[fd].prototype,zd);if(eo&&Gd(Hd)!==zd&&Md(Hd,zd),Td&&!Dd(zd,qd))for(fd in to=!0,Id(zd,qd,{get:function(){return gd(this)?this[$d]:void 0}}),no)Cd[fd]&&xd(Cd[fd],$d,fd);var Qo={NATIVE_ARRAY_BUFFER_VIEWS:eo,TYPED_ARRAY_TAG:to&&$d,aTypedArray:function(e){if(Fo(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(Md){if(Ad.call(Pd,e))return e}else for(var t in no)if(Dd(no,fd)){var n=Cd[t];if(n&&(e===n||Ad.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(Td){if(n)for(var U in no){var F=Cd[U];if(F&&Dd(F.prototype,e))try{delete F.prototype[e]}catch(Ch){}}zd[e]&&!n||Ld(zd,e,n?t:eo&&_d[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var U,F;if(Td){if(Md){if(n)for(U in no)if((F=Cd[U])&&Dd(F,e))try{delete F[e]}catch(Ch){}if(Pd[e]&&!n)return;try{return Ld(Pd,e,n?t:eo&&Pd[e]||t)}catch(Ch){}}for(U in no)!(F=Cd[U])||F[e]&&!n||Ld(F,e,t)}},isView:function(e){if(!gd(e))return!1;var t=Xd(e);return"DataView"===t||Dd(no,t)||Dd(Uo,t)},isTypedArray:Fo,TypedArray:Pd,TypedArrayPrototype:zd},io=F,lo=i,ro=$F,ao=Qo.NATIVE_ARRAY_BUFFER_VIEWS,oo=io.ArrayBuffer,so=io.Int8Array,Bo=!ao||!lo((function(){so(1)}))||!lo((function(){new so(-1)}))||!ro((function(e){new so,new so(null),new so(1.5),new so(e)}),!0)||lo((function(){return 1!==new so(new oo(2),1,void 0).length})),co=Qt,Ro=rt,Vo=function(e){if(void 0===e)return 0;var t=co(e),n=Ro(t);if(t!==n)throw RangeError("Wrong length or index");return n},uo=Math.abs,ho=Math.pow,Zo=Math.floor,So=Math.log,po=Math.LN2,Jo=E,mo=st,Wo=rt,ko=function(e){for(var t=Jo(this),n=Wo(t.length),U=arguments.length,F=mo(U>1?arguments[1]:void 0,n),Q=U>2?arguments[2]:void 0,i=void 0===Q?n:mo(Q,n);i>F;)t[F++]=e;return t},Eo=F,yo=l,fo=bd,No=ee,bo=VQ,vo=i,To=PF,Co=Qt,go=rt,Do=Vo,Xo={pack:function(e,t,n){var U,F,Q,i=new Array(n),l=8*n-t-1,r=(1<<l)-1,a=r>>1,d=23===t?ho(2,-24)-ho(2,-77):0,o=e<0||0===e&&1/e<0?1:0,s=0;for((e=uo(e))!=e||e===1/0?(F=e!=e?1:0,U=r):(U=Zo(So(e)/po),e*(Q=ho(2,-U))<1&&(U--,Q*=2),(e+=U+a>=1?d/Q:d*ho(2,1-a))*Q>=2&&(U++,Q/=2),U+a>=r?(F=0,U=r):U+a>=1?(F=(e*Q-1)*ho(2,t),U+=a):(F=e*ho(2,a-1)*ho(2,t),U=0));t>=8;i[s++]=255&F,F/=256,t-=8);for(U=U<<t|F,l+=t;l>0;i[s++]=255&U,U/=256,l-=8);return i[--s]|=128*o,i},unpack:function(e,t){var n,U=e.length,F=8*U-t-1,Q=(1<<F)-1,i=Q>>1,l=F-7,r=U-1,a=e[r--],d=127&a;for(a>>=7;l>0;d=256*d+e[r],r--,l-=8);for(n=d&(1<<-l)-1,d>>=-l,l+=t;l>0;n=256*n+e[r],r--,l-=8);if(0===d)d=1-i;else{if(d===Q)return n?NaN:a?-1/0:1/0;n+=ho(2,t),d-=i}return(a?-1:1)*n*ho(2,d-t)}},xo=RU,Lo=XU,Io=tt.f,Go=K.f,Mo=ko,Yo=EU,wo=Me.get,Ko=Me.set,_o="ArrayBuffer",jo="DataView",Ho="prototype",Po="Wrong index",zo=Eo[_o],Oo=zo,Ao=Eo[jo],qo=Ao&&Ao[Ho],$o=Object.prototype,es=Eo.RangeError,ts=Xo.pack,ns=Xo.unpack,Us=function(e){return[255&e]},Fs=function(e){return[255&e,e>>8&255]},Qs=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},is=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},ls=function(e){return ts(e,23,4)},rs=function(e){return ts(e,52,8)},as=function(e,t){Go(e[Ho],t,{get:function(){return wo(this)[t]}})},ds=function(e,t,n,U){var F=Do(n),Q=wo(e);if(F+t>Q.byteLength)throw es(Po);var i=wo(Q.buffer).bytes,l=F+Q.byteOffset,r=i.slice(l,l+t);return U?r:r.reverse()},os=function(e,t,n,U,F,Q){var i=Do(n),l=wo(e);if(i+t>l.byteLength)throw es(Po);for(var r=wo(l.buffer).bytes,a=i+l.byteOffset,d=U(+F),o=0;o<t;o++)r[a+o]=d[Q?o:t-o-1]};if(fo){if(!vo((function(){zo(1)}))||!vo((function(){new zo(-1)}))||vo((function(){return new zo,new zo(1.5),new zo(NaN),zo.name!=_o}))){for(var ss,Bs=(Oo=function(e){return To(this,Oo),new zo(Do(e))})[Ho]=zo[Ho],cs=Io(zo),Rs=0;cs.length>Rs;)(ss=cs[Rs++])in Oo||No(Oo,ss,zo[ss]);Bs.constructor=Oo}Lo&&xo(qo)!==$o&&Lo(qo,$o);var Vs=new Ao(new Oo(2)),us=qo.setInt8;Vs.setInt8(0,2147483648),Vs.setInt8(1,2147483649),!Vs.getInt8(0)&&Vs.getInt8(1)||bo(qo,{setInt8:function(e,t){us.call(this,e,t<<24>>24)},setUint8:function(e,t){us.call(this,e,t<<24>>24)}},{unsafe:!0})}else Oo=function(e){To(this,Oo,_o);var t=Do(e);Ko(this,{bytes:Mo.call(new Array(t),0),byteLength:t}),yo||(this.byteLength=t)},Ao=function(e,t,n){To(this,Ao,jo),To(e,Oo,jo);var U=wo(e).byteLength,F=Co(t);if(F<0||F>U)throw es("Wrong offset");if(F+(n=void 0===n?U-F:go(n))>U)throw es("Wrong length");Ko(this,{buffer:e,byteLength:n,byteOffset:F}),yo||(this.buffer=e,this.byteLength=n,this.byteOffset=F)},yo&&(as(Oo,"byteLength"),as(Ao,"buffer"),as(Ao,"byteLength"),as(Ao,"byteOffset")),bo(Ao[Ho],{getInt8:function(e){return ds(this,1,e)[0]<<24>>24},getUint8:function(e){return ds(this,1,e)[0]},getInt16:function(e){var t=ds(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=ds(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return is(ds(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return is(ds(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return ns(ds(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return ns(ds(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){os(this,1,e,Us,t)},setUint8:function(e,t){os(this,1,e,Us,t)},setInt16:function(e,t){os(this,2,e,Fs,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){os(this,2,e,Fs,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){os(this,4,e,Qs,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){os(this,4,e,Qs,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){os(this,4,e,ls,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){os(this,8,e,rs,t,arguments.length>2?arguments[2]:void 0)}});Yo(Oo,_o),Yo(Ao,jo);var hs={ArrayBuffer:Oo,DataView:Ao},Zs=Qt,Ss=function(e){var t=Zs(e);if(t<0)throw RangeError("The argument can't be less than 0");return t},ps=function(e,t){var n=Ss(e);if(n%t)throw RangeError("Wrong offset");return n},Js=E,ms=rt,Ws=LF,ks=WF,Es=yF,ys=Qo.aTypedArrayConstructor,fs=Ot,Ns=F,bs=l,vs=Bo,Ts=Qo,Cs=hs,gs=PF,Ds=s,Xs=ee,xs=rt,Ls=Vo,Is=ps,Gs=W,Ms=N,Ys=gF,ws=J,Ks=eU,_s=XU,js=tt.f,Hs=function(e){var t,n,U,F,Q,i,l=Js(e),r=arguments.length,a=r>1?arguments[1]:void 0,d=void 0!==a,o=Ws(l);if(null!=o&&!ks(o))for(i=(Q=o.call(l)).next,l=[];!(F=i.call(Q)).done;)l.push(F.value);for(d&&r>2&&(a=Es(a,arguments[2],2)),n=ms(l.length),U=new(ys(this))(n),t=0;n>t;t++)U[t]=d?a(l[t],t):l[t];return U},Ps=El.forEach,zs=pQ,Os=K,As=Q,qs=nQ,$s=Me.get,eB=Me.set,tB=Os.f,nB=As.f,UB=Math.round,FB=Ns.RangeError,QB=Cs.ArrayBuffer,iB=Cs.DataView,lB=Ts.NATIVE_ARRAY_BUFFER_VIEWS,rB=Ts.TYPED_ARRAY_TAG,aB=Ts.TypedArray,dB=Ts.TypedArrayPrototype,oB=Ts.aTypedArrayConstructor,sB=Ts.isTypedArray,BB="BYTES_PER_ELEMENT",cB="Wrong length",RB=function(e,t){for(var n=0,U=t.length,F=new(oB(e))(U);U>n;)F[n]=t[n++];return F},VB=function(e,t){tB(e,t,{get:function(){return $s(this)[t]}})},uB=function(e){var t;return e instanceof QB||"ArrayBuffer"==(t=Ys(e))||"SharedArrayBuffer"==t},hB=function(e,t){return sB(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},ZB=function(e,t){return hB(e,t=Gs(t,!0))?Ds(2,e[t]):nB(e,t)},SB=function(e,t,n){return!(hB(e,t=Gs(t,!0))&&ws(n)&&Ms(n,"value"))||Ms(n,"get")||Ms(n,"set")||n.configurable||Ms(n,"writable")&&!n.writable||Ms(n,"enumerable")&&!n.enumerable?tB(e,t,n):(e[t]=n.value,e)};bs?(lB||(As.f=ZB,Os.f=SB,VB(dB,"buffer"),VB(dB,"byteOffset"),VB(dB,"byteLength"),VB(dB,"length")),fs({target:"Object",stat:!0,forced:!lB},{getOwnPropertyDescriptor:ZB,defineProperty:SB}),Nd.exports=function(e,t,n){var U=e.match(/\d+$/)[0]/8,F=e+(n?"Clamped":"")+"Array",Q="get"+e,i="set"+e,l=Ns[F],r=l,a=r&&r.prototype,d={},o=function(e,t){tB(e,t,{get:function(){return e=t,(n=$s(this)).view[Q](e*U+n.byteOffset,!0);var e,n},set:function(e){return F=t,Q=e,l=$s(this),n&&(Q=(Q=UB(Q))<0?0:Q>255?255:255&Q),void l.view[i](F*U+l.byteOffset,Q,!0);var F,Q,l},enumerable:!0})};lB?vs&&(r=t((function(e,t,n,Q){return gs(e,r,F),qs(ws(t)?uB(t)?void 0!==Q?new l(t,Is(n,U),Q):void 0!==n?new l(t,Is(n,U)):new l(t):sB(t)?RB(r,t):Hs.call(r,t):new l(Ls(t)),e,r)})),_s&&_s(r,aB),Ps(js(l),(function(e){e in r||Xs(r,e,l[e])})),r.prototype=a):(r=t((function(e,t,n,Q){gs(e,r,F);var i,l,a,d=0,s=0;if(ws(t)){if(!uB(t))return sB(t)?RB(r,t):Hs.call(r,t);i=t,s=Is(n,U);var B=t.byteLength;if(void 0===Q){if(B%U)throw FB(cB);if((l=B-s)<0)throw FB(cB)}else if((l=xs(Q)*U)+s>B)throw FB(cB);a=l/U}else a=Ls(t),i=new QB(l=a*U);for(eB(e,{buffer:i,byteOffset:s,byteLength:l,length:a,view:new iB(i)});d<a;)o(e,d++)})),_s&&_s(r,aB),a=r.prototype=Ks(dB)),a.constructor!==r&&Xs(a,"constructor",r),rB&&Xs(a,rB,F),d[F]=r,fs({global:!0,forced:r!=l,sham:!lB},d),BB in r||Xs(r,BB,U),BB in a||Xs(a,BB,U),zs(F)}):Nd.exports=function(){};var pB=Nd.exports;pB("Uint8",(function(e){return function(t,n,U){return e(this,t,n,U)}}));var JB=E,mB=st,WB=rt,kB=Math.min,EB=[].copyWithin||function(e,t){var n=JB(this),U=WB(n.length),F=mB(e,U),Q=mB(t,U),i=arguments.length>2?arguments[2]:void 0,l=kB((void 0===i?U:mB(i,U))-Q,U-F),r=1;for(Q<F&&F<Q+l&&(r=-1,Q+=l-1,F+=l-1);l-- >0;)Q in n?n[F]=n[Q]:delete n[F],F+=r,Q+=r;return n},yB=EB,fB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("copyWithin",(function(e,t){return yB.call(fB(this),e,t,arguments.length>2?arguments[2]:void 0)}));var NB=El.every,bB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("every",(function(e){return NB(bB(this),e,arguments.length>1?arguments[1]:void 0)}));var vB=ko,TB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("fill",(function(e){return vB.apply(TB(this),arguments)}));var CB=Qo.aTypedArrayConstructor,gB=Fi,DB=El.filter,XB=function(e,t){for(var n=gB(e,e.constructor),U=0,F=t.length,Q=new(CB(n))(F);F>U;)Q[U]=t[U++];return Q},xB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("filter",(function(e){var t=DB(xB(this),e,arguments.length>1?arguments[1]:void 0);return XB(this,t)}));var LB=El.find,IB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("find",(function(e){return LB(IB(this),e,arguments.length>1?arguments[1]:void 0)}));var GB=El.findIndex,MB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("findIndex",(function(e){return GB(MB(this),e,arguments.length>1?arguments[1]:void 0)}));var YB=El.forEach,wB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("forEach",(function(e){YB(wB(this),e,arguments.length>1?arguments[1]:void 0)}));var KB=ut.includes,_B=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("includes",(function(e){return KB(_B(this),e,arguments.length>1?arguments[1]:void 0)}));var jB=ut.indexOf,HB=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("indexOf",(function(e){return jB(HB(this),e,arguments.length>1?arguments[1]:void 0)}));var PB=F,zB=Qo,OB=lF,AB=Cn("iterator"),qB=PB.Uint8Array,$B=OB.values,ec=OB.keys,tc=OB.entries,nc=zB.aTypedArray,Uc=zB.exportTypedArrayMethod,Fc=qB&&qB.prototype[AB],Qc=!!Fc&&("values"==Fc.name||null==Fc.name),ic=function(){return $B.call(nc(this))};Uc("entries",(function(){return tc.call(nc(this))})),Uc("keys",(function(){return ec.call(nc(this))})),Uc("values",ic,!Qc),Uc(AB,ic,!Qc);var lc=Qo.aTypedArray,rc=[].join;(0,Qo.exportTypedArrayMethod)("join",(function(e){return rc.apply(lc(this),arguments)}));var ac=p,dc=Qt,oc=rt,sc=Bd,Bc=Math.min,cc=[].lastIndexOf,Rc=!!cc&&1/[1].lastIndexOf(1,-0)<0,Vc=sc("lastIndexOf"),uc=Rc||!Vc?function(e){if(Rc)return cc.apply(this,arguments)||0;var t=ac(this),n=oc(t.length),U=n-1;for(arguments.length>1&&(U=Bc(U,dc(arguments[1]))),U<0&&(U=n+U);U>=0;U--)if(U in t&&t[U]===e)return U||0;return-1}:cc,hc=uc,Zc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("lastIndexOf",(function(e){return hc.apply(Zc(this),arguments)}));var Sc=El.map,pc=Fi,Jc=Qo.aTypedArray,mc=Qo.aTypedArrayConstructor;(0,Qo.exportTypedArrayMethod)("map",(function(e){return Sc(Jc(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(mc(pc(e,e.constructor)))(t)}))}));var Wc=kF,kc=E,Ec=u,yc=rt,fc=function(e){return function(t,n,U,F){Wc(n);var Q=kc(t),i=Ec(Q),l=yc(Q.length),r=e?l-1:0,a=e?-1:1;if(U<2)for(;;){if(r in i){F=i[r],r+=a;break}if(r+=a,e?r<0:l<=r)throw TypeError("Reduce of empty array with no initial value")}for(;e?r>=0:l>r;r+=a)r in i&&(F=n(F,i[r],r,Q));return F}},Nc={left:fc(!1),right:fc(!0)},bc=Nc.left,vc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("reduce",(function(e){return bc(vc(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var Tc=Nc.right,Cc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("reduceRight",(function(e){return Tc(Cc(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var gc=Qo.aTypedArray,Dc=Qo.exportTypedArrayMethod,Xc=Math.floor;Dc("reverse",(function(){for(var e,t=this,n=gc(t).length,U=Xc(n/2),F=0;F<U;)e=t[F],t[F++]=t[--n],t[n]=e;return t}));var xc=rt,Lc=ps,Ic=E,Gc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("set",(function(e){Gc(this);var t=Lc(arguments.length>1?arguments[1]:void 0,1),n=this.length,U=Ic(e),F=xc(U.length),Q=0;if(F+t>n)throw RangeError("Wrong length");for(;Q<F;)this[t+Q]=U[Q++]}),i((function(){new Int8Array(1).set({})})));var Mc=Fi,Yc=Qo.aTypedArray,wc=Qo.aTypedArrayConstructor,Kc=[].slice;(0,Qo.exportTypedArrayMethod)("slice",(function(e,t){for(var n=Kc.call(Yc(this),e,t),U=Mc(this,this.constructor),F=0,Q=n.length,i=new(wc(U))(Q);Q>F;)i[F]=n[F++];return i}),i((function(){new Int8Array(1).slice()})));var _c=El.some,jc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("some",(function(e){return _c(jc(this),e,arguments.length>1?arguments[1]:void 0)}));var Hc=Qo.aTypedArray,Pc=[].sort;(0,Qo.exportTypedArrayMethod)("sort",(function(e){return Pc.call(Hc(this),e)}));var zc=rt,Oc=st,Ac=Fi,qc=Qo.aTypedArray;(0,Qo.exportTypedArrayMethod)("subarray",(function(e,t){var n=qc(this),U=n.length,F=Oc(e,U);return new(Ac(n,n.constructor))(n.buffer,n.byteOffset+F*n.BYTES_PER_ELEMENT,zc((void 0===t?U:Oc(t,U))-F))}));var $c=Qo,eR=i,tR=F.Int8Array,nR=$c.aTypedArray,UR=$c.exportTypedArrayMethod,FR=[].toLocaleString,QR=[].slice,iR=!!tR&&eR((function(){FR.call(new tR(1))}));UR("toLocaleString",(function(){return FR.apply(iR?QR.call(nR(this)):nR(this),arguments)}),eR((function(){return[1,2].toLocaleString()!=new tR([1,2]).toLocaleString()}))||!eR((function(){tR.prototype.toLocaleString.call([1,2])})));var lR=Qo.exportTypedArrayMethod,rR=i,aR=F.Uint8Array,dR=aR&&aR.prototype||{},oR=[].toString,sR=[].join;rR((function(){oR.call({})}))&&(oR=function(){return sR.call(this)});var BR=dR.toString!=oR;lR("toString",oR,BR);var cR=El.forEach,RR=Bd("forEach")?[].forEach:function(e){return cR(this,e,arguments.length>1?arguments[1]:void 0)},VR=F,uR=el,hR=RR,ZR=ee;for(var SR in uR){var pR=VR[SR],JR=pR&&pR.prototype;if(JR&&JR.forEach!==hR)try{ZR(JR,"forEach",hR)}catch(Ch){JR.forEach=hR}}pB("Uint16",(function(e){return function(t,n,U){return e(this,t,n,U)}}));var mR=j,WR=function(){var e=mR(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},kR={},ER=i;function yR(e,t){return RegExp(e,t)}kR.UNSUPPORTED_Y=ER((function(){var e=yR("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),kR.BROKEN_CARET=ER((function(){var e=yR("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var fR,NR,bR=WR,vR=kR,TR=Ze,CR=RegExp.prototype.exec,gR=TR("native-string-replace",String.prototype.replace),DR=CR,XR=(fR=/a/,NR=/b*/g,CR.call(fR,"a"),CR.call(NR,"a"),0!==fR.lastIndex||0!==NR.lastIndex),xR=vR.UNSUPPORTED_Y||vR.BROKEN_CARET,LR=void 0!==/()??/.exec("")[1];(XR||LR||xR)&&(DR=function(e){var t,n,U,F,Q=this,i=xR&&Q.sticky,l=bR.call(Q),r=Q.source,a=0,d=e;return i&&(-1===(l=l.replace("y","")).indexOf("g")&&(l+="g"),d=String(e).slice(Q.lastIndex),Q.lastIndex>0&&(!Q.multiline||Q.multiline&&"\n"!==e[Q.lastIndex-1])&&(r="(?: "+r+")",d=" "+d,a++),n=new RegExp("^(?:"+r+")",l)),LR&&(n=new RegExp("^"+r+"$(?!\\s)",l)),XR&&(t=Q.lastIndex),U=CR.call(i?n:Q,d),i?U?(U.input=U.input.slice(a),U[0]=U[0].slice(a),U.index=Q.lastIndex,Q.lastIndex+=U[0].length):Q.lastIndex=0:XR&&U&&(Q.lastIndex=Q.global?U.index+U[0].length:t),LR&&U&&U.length>1&&gR.call(U[0],n,(function(){for(F=1;F<arguments.length-2;F++)void 0===arguments[F]&&(U[F]=void 0)})),U});var IR=DR;Ot({target:"RegExp",proto:!0,forced:/./.exec!==IR},{exec:IR});var GR=Oe,MR=IR,YR=i,wR=Cn,KR=ee,_R=wR("species"),jR=RegExp.prototype,HR=!YR((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),PR="$0"==="a".replace(/./,"$0"),zR=wR("replace"),OR=!!/./[zR]&&""===/./[zR]("a","$0"),AR=!YR((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]})),qR=function(e,t,n,U){var F=wR(e),Q=!YR((function(){var t={};return t[F]=function(){return 7},7!=""[e](t)})),i=Q&&!YR((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[_R]=function(){return n},n.flags="",n[F]=/./[F]),n.exec=function(){return t=!0,null},n[F](""),!t}));if(!Q||!i||"replace"===e&&(!HR||!PR||OR)||"split"===e&&!AR){var l=/./[F],r=n(F,""[e],(function(e,t,n,U,F){var i=t.exec;return i===MR||i===jR.exec?Q&&!F?{done:!0,value:l.call(t,n,U)}:{done:!0,value:e.call(n,t,U)}:{done:!1}}),{REPLACE_KEEPS_$0:PR,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:OR}),a=r[0],d=r[1];GR(String.prototype,e,a),GR(jR,F,2==t?function(e,t){return d.call(e,this,t)}:function(e){return d.call(e,this)})}U&&KR(jR[F],"sham",!0)},$R=GQ.charAt,eV=function(e,t,n){return t+(n?$R(e,t).length:1)},tV=E,nV=Math.floor,UV="".replace,FV=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,QV=/\$([$&'`]|\d{1,2})/g,iV=c,lV=IR,rV=function(e,t){var n=e.exec;if("function"==typeof n){var U=n.call(e,t);if("object"!=typeof U)throw TypeError("RegExp exec method returned something other than an Object or null");return U}if("RegExp"!==iV(e))throw TypeError("RegExp#exec called on incompatible receiver");return lV.call(e,t)},aV=qR,dV=j,oV=rt,sV=Qt,BV=h,cV=eV,RV=function(e,t,n,U,F,Q){var i=n+e.length,l=U.length,r=QV;return void 0!==F&&(F=tV(F),r=FV),UV.call(Q,r,(function(Q,r){var a;switch(r.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(i);case"<":a=F[r.slice(1,-1)];break;default:var d=+r;if(0===d)return Q;if(d>l){var o=nV(d/10);return 0===o?Q:o<=l?void 0===U[o-1]?r.charAt(1):U[o-1]+r.charAt(1):Q}a=U[d-1]}return void 0===a?"":a}))},VV=rV,uV=Math.max,hV=Math.min;aV("replace",2,(function(e,t,n,U){var F=U.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,Q=U.REPLACE_KEEPS_$0,i=F?"$":"$0";return[function(n,U){var F=BV(this),Q=null==n?void 0:n[e];return void 0!==Q?Q.call(n,F,U):t.call(String(F),n,U)},function(e,U){if(!F&&Q||"string"==typeof U&&-1===U.indexOf(i)){var l=n(t,e,this,U);if(l.done)return l.value}var r=dV(e),a=String(this),d="function"==typeof U;d||(U=String(U));var o=r.global;if(o){var s=r.unicode;r.lastIndex=0}for(var B=[];;){var c=VV(r,a);if(null===c)break;if(B.push(c),!o)break;""===String(c[0])&&(r.lastIndex=cV(a,oV(r.lastIndex),s))}for(var R,V="",u=0,h=0;h<B.length;h++){c=B[h];for(var Z=String(c[0]),S=uV(hV(sV(c.index),a.length),0),p=[],J=1;J<c.length;J++)p.push(void 0===(R=c[J])?R:String(R));var m=c.groups;if(d){var W=[Z].concat(p,S,a);void 0!==m&&W.push(m);var k=String(U.apply(void 0,W))}else k=RV(Z,a,S,p,m,U);S>=u&&(V+=a.slice(u,S)+k,u=S+Z.length)}return V+a.slice(u)}]}));var ZV=Oe,SV=j,pV=i,JV=WR,mV="toString",WV=RegExp.prototype,kV=WV[mV],EV=pV((function(){return"/a/b"!=kV.call({source:"a",flags:"b"})})),yV=kV.name!=mV;(EV||yV)&&ZV(RegExp.prototype,mV,(function(){var e=SV(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(void 0===n&&e instanceof RegExp&&!("flags"in WV)?JV.call(e):n)}),{unsafe:!0});var fV=Ot,NV=J,bV=cl,vV=st,TV=rt,CV=p,gV=xl,DV=Cn,XV=bl("slice"),xV=DV("species"),LV=[].slice,IV=Math.max;fV({target:"Array",proto:!0,forced:!XV},{slice:function(e,t){var n,U,F,Q=CV(this),i=TV(Q.length),l=vV(e,i),r=vV(void 0===t?i:t,i);if(bV(Q)&&("function"!=typeof(n=Q.constructor)||n!==Array&&!bV(n.prototype)?NV(n)&&null===(n=n[xV])&&(n=void 0):n=void 0,n===Array||void 0===n))return LV.call(Q,l,r);for(U=new(void 0===n?Array:n)(IV(r-l,0)),F=0;l<r;l++,F++)l in Q&&gV(U,F,Q[l]);return U.length=F,U}});var GV=pQ,MV="ArrayBuffer",YV=hs[MV];Ot({global:!0,forced:F[MV]!==YV},{ArrayBuffer:YV}),GV(MV);var wV=h,KV="[\t\n\v\f\r                 \u2028\u2029\ufeff]",_V=RegExp("^"+KV+KV+"*"),jV=RegExp(KV+KV+"*$"),HV=function(e){return function(t){var n=String(wV(t));return 1&e&&(n=n.replace(_V,"")),2&e&&(n=n.replace(jV,"")),n}},PV={start:HV(1),end:HV(2),trim:HV(3)},zV=l,OV=F,AV=Yt,qV=Oe,$V=N,eu=c,tu=nQ,nu=W,Uu=i,Fu=eU,Qu=tt.f,iu=Q.f,lu=K.f,ru=PV.trim,au="Number",du=OV[au],ou=du.prototype,su=eu(Fu(ou))==au,Bu=function(e){var t,n,U,F,Q,i,l,r,a=nu(e,!1);if("string"==typeof a&&a.length>2)if(43===(t=(a=ru(a)).charCodeAt(0))||45===t){if(88===(n=a.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(a.charCodeAt(1)){case 66:case 98:U=2,F=49;break;case 79:case 111:U=8,F=55;break;default:return+a}for(i=(Q=a.slice(2)).length,l=0;l<i;l++)if((r=Q.charCodeAt(l))<48||r>F)return NaN;return parseInt(Q,U)}return+a};if(AV(au,!du(" 0o1")||!du("0b1")||du("+0x1"))){for(var cu,Ru=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof Ru&&(su?Uu((function(){ou.valueOf.call(n)})):eu(n)!=au)?tu(new du(Bu(t)),n,Ru):Bu(t)},Vu=zV?Qu(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(","),uu=0;Vu.length>uu;uu++)$V(du,cu=Vu[uu])&&!$V(Ru,cu)&&lu(Ru,cu,iu(du,cu));Ru.prototype=ou,ou.constructor=Ru,qV(OV,au,Ru)}var hu=j,Zu=rt,Su=h,pu=eV,Ju=rV;qR("match",1,(function(e,t,n){return[function(t){var n=Su(this),U=null==t?void 0:t[e];return void 0!==U?U.call(t,n):new RegExp(t)[e](String(n))},function(e){var U=n(t,e,this);if(U.done)return U.value;var F=hu(e),Q=String(this);if(!F.global)return Ju(F,Q);var i=F.unicode;F.lastIndex=0;for(var l,r=[],a=0;null!==(l=Ju(F,Q));){var d=String(l[0]);r[a]=d,""===d&&(F.lastIndex=pu(Q,Zu(F.lastIndex),i)),a++}return 0===a?null:r}]}));var mu,Wu,ku,Eu,yu,fu,Nu={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 U=[],F=0;F<n.length;F++)U.push(n.charCodeAt(F));return new Uint8Array(U).buffer}for(var Q="",i=0;i<n.length;i++)Q+="0".concat(n.charCodeAt(i).toString(16)).substr(-2);return Q},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 U=parseInt(vu(t.slice(e.length))),F=(new Date).getTime()-U;if(F>0&&F<=1e3*n)return!0;console.error("UnionInfo timestamp expire!!!")}else console.error("unionID and UnionInfo not match!!!");return!1},getUnionInfo:function(){return"".concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").concat(bu((new Date).getTime().toString()))},StringToArrayBuffer:function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),U=0;U<e.length;U++)n[U]=e.charCodeAt(U);return t},ArrayBufferToString:function(e){var t=[];e=ArrayBuffer.isView(e)?e:new Uint8Array(e);for(var n,U=0;U<e.length;U++)n=e[U],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)},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},fromCharCode:function(e){for(var t="",n=0;n<e.length;n+=16e3){var U=e.subarray(n,n+16e3);t+=String.fromCharCode.apply(null,U)}return t},toBase64:function(e,t){var n=Nu.fromCharCode(e);t=void 0===t||t;var U=window.btoa(n).replace(/\+/g,"-").replace(/\//g,"_");return t?U:U.replace(/=*$/,"")},toUTF8:function(e){for(var t=encodeURIComponent(e),n=unescape(t),U=new Uint8Array(n.length),F=0;F<n.length;++F)U[F]=n.charCodeAt(F);return U.buffer}},bu=(mu="vodTimestampSalt",Wu=function(e){return e.split("").map((function(e){return e.charCodeAt(0)}))},ku=function(e){return"0".concat(Number(e).toString(16)).substr(-2)},Eu=function(e){return Wu(mu).reduce((function(e,t){return e^t}),e)},function(e){return e.split("").map(Wu).map(Eu).map(ku).join("")}),vu=(yu="vodTimestampSalt",fu=function(e){return(t=yu,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(fu).map((function(e){return String.fromCharCode(e)})).join("")}),Tu=Nu,Cu="kid",gu={ERROR:"error",ENCRYPTED:"encrypted",CDM_LICENSE_SUCCESS:"CDM_LICENSE_SUCCESS",CDM_LICENSE_ERROR:"CDM_LICENSE_ERROR"},Du=function(e){Qn(n,e);var t=dn(n);function n(e){var U;return tn(this,n),Fn(an(U=t.call(this)),"encryptHandle",(function(e){var t,n,F,Q=an(U).video,i=an(U);"org.w3.clearkey"===U.KEYSYSTEM_TYPE?(t="keyids",n=JSON.stringify({kids:["0123456789abcdef0123456789abcdef"]}),F=new Uint8Array(Tu.toUTF8(n))):"com.widevine.alpha"===U.KEYSYSTEM_TYPE?(t="cenc",F=e&&new Uint8Array(e.initData)||new Uint8Array([0,0,0,67,112,115,115,104,0,0,0,0,237,239,139,169,121,214,74,206,163,200,39,220,213,29,33,237,0,0,0,35,8,1,18,16,51,51,51,51,51,51,51,51,51,51,51,51,0,0,0,0,26,10,105,110,116,101,114,116,114,117,115,116,34,1,42])):"com.microsoft.playready"===U.KEYSYSTEM_TYPE&&(t="cenc",F=e&&new Uint8Array(e.initData)||new Uint8Array([0,0,2,38,112,115,115,104,0,0,0,0,154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149,0,0,2,6,6,2,0,0,1,0,1,0,252,1,60,0,87,0,82,0,77,0,72,0,69,0,65,0,68,0,69,0,82,0,32,0,120,0,109,0,108,0,110,0,115,0,61,0,34,0,104,0,116,0,116,0,112,0,58,0,47,0,47,0,115,0,99,0,104,0,101,0,109,0,97,0,115,0,46,0,109,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,99,0,111,0,109,0,47,0,68,0,82,0,77,0,47,0,50,0,48,0,48,0,55,0,47,0,48,0,51,0,47,0,80,0,108,0,97,0,121,0,82,0,101,0,97,0,100,0,121,0,72,0,101,0,97,0,100,0,101,0,114,0,34,0,32,0,118,0,101,0,114,0,115,0,105,0,111,0,110,0,61,0,34,0,52,0,46,0,48,0,46,0,48,0,46,0,48,0,34,0,62,0,60,0,68,0,65,0,84,0,65,0,62,0,60,0,80,0,82,0,79,0,84,0,69,0,67,0,84,0,73,0,78,0,70,0,79,0,62,0,60,0,75,0,69,0,89,0,76,0,69,0,78,0,62,0,49,0,54,0,60,0,47,0,75,0,69,0,89,0,76,0,69,0,78,0,62,0,60,0,65,0,76,0,71,0,73,0,68,0,62,0,65,0,69,0,83,0,67,0,84,0,82,0,60,0,47,0,65,0,76,0,71,0,73,0,68,0,62,0,60,0,47,0,80,0,82,0,79,0,84,0,69,0,67,0,84,0,73,0,78,0,70,0,79,0,62,0,60,0,75,0,73,0,68,0,62,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,65,0,65,0,65,0,65,0,65,0,65,0,61,0,61,0,60,0,47,0,75,0,73,0,68,0,62,0,60,0,67,0,72,0,69,0,67,0,75,0,83,0,85,0,77,0,62,0,65,0,49,0,53,0,66,0,89,0,87,0,68,0,52,0,113,0,115,0,73,0,61,0,60,0,47,0,67,0,72,0,69,0,67,0,75,0,83,0,85,0,77,0,62,0,60,0,47,0,68,0,65,0,84,0,65,0,62,0,60,0,47,0,87,0,82,0,77,0,72,0,69,0,65,0,68,0,69,0,82,0,62,0])),i.EnsureMediaKeysCreated(Q,i.KEYSYSTEM_TYPE,i.options).then((function(){var e=Q.mediaKeys.createSession();return Q.sessions.push(e),"org.w3.clearkey"===i.KEYSYSTEM_TYPE?e.addEventListener("message",i.updateSessionFunc(i.keys)):("com.widevine.alpha"===i.KEYSYSTEM_TYPE||"com.microsoft.playready"===i.KEYSYSTEM_TYPE)&&e.addEventListener("message",i.licenseRequestReady.bind(i)),e.generateRequest(t,F.buffer)}),(function(){return i.bail(" failed to ensure MediaKeys on HTMLMediaElement")})).then((function(){}),(function(){return i.bail(" Failed to generate request.")}))})),U.KEYSYSTEM_TYPE="",U.keys={},U.updateDrm(e),U.options=[],U.ensurePromise=void 0,U.kid=Cu,U.video=null,U.licenseStep=0,U.on(gu.ENCRYPTED,U.encryptHandle),U}return Un(n,[{key:"updateDrm",value:function(e,t){null!=e&&e.clearKeys&&(this.KEYSYSTEM_TYPE="org.w3.clearkey",this.keys=e.clearKeys),null!=e&&e.clearKeys?this.KEYSYSTEM_TYPE="org.w3.clearkey":null!=e&&e.widevine?(this.KEYSYSTEM_TYPE="com.widevine.alpha",this.keys=e.widevine):null!=e&&e.playready&&(this.KEYSYSTEM_TYPE="com.microsoft.playready",this.keys=e.playready),t&&(this.kid=t)}},{key:"updateKid",value:function(e){this.kid===Cu&&this.keys[this.kid]&&(this.keys[e]=this.keys[this.kid],delete this.keys[Cu]),this.kid=e}},{key:"setOptions",value:function(){this.options=[{initDataTypes:["keyids","webm"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01e"'},{contentType:'video/mp4; codecs="hev1.1.6.L120.90"'},{contentType:'video/webm; codecs="vp8"'}]}]}},{key:"bail",value:function(e){console.error("[EME]",e),this.emit(gu.ERROR,e)}},{key:"updateSessionFunc",value:function(e){var t=this;return function(n){var U=[],F=[];Object.keys(e).forEach((function(t){var n=e[t],Q=Tu.fromHex(t),i=Tu.fromHex(n),l={kty:"oct",kid:Tu.toBase64(Q,!1),k:Tu.toBase64(i,!1)};U.push(l),F.push(l.kid)}));var Q={keys:U},i=JSON.stringify(Q);n.target.update(Tu.StringToArrayBuffer(i)).then((function(){}),(function(){return t.bail(" MediaKeySession update failed")}))}}},{key:"keysChange",value:function(){}},{key:"EnsureMediaKeysCreated",value:function(e,t,n){var U=this;return this.ensurePromise||e.mediaKeys?this.ensurePromise||Promise.resolve():(this.ensurePromise=navigator.requestMediaKeySystemAccess(t,n).then((function(e){return e.createMediaKeys()}),(function(){return U.bail(" Failed to request key system access.")})).then((function(t){return e.setMediaKeys(t)}),(function(){return U.bail(" failed to create MediaKeys object")})),this.ensurePromise)}},{key:"setupEME",value:function(e){this.video=e,e.sessions=[]}},{key:"parseServerResponse",value:function(e){var t="https://schemas.xmlsoap.org/soap/envelope/";if(window.DOMParser){var n=this.uintToString(e),U=(new window.DOMParser).parseFromString(n,"text/xml"),F=U?U.getElementsByTagNameNS(t,"Envelope")[0]:null,Q=F?F.getElementsByTagNameNS(t,"Body")[0]:null;if(Q&&Q.getElementsByTagNameNS(t,"Fault")[0])return null}return e}},{key:"uintToString",value:function(e){var t=String.fromCharCode.apply(null,new Uint8Array(e));return decodeURIComponent(escape(t))}},{key:"licenseRequestReady",value:function(e){var t=this,n=new XMLHttpRequest;n.open("GET",this.keys.serverURL),n.onreadystatechange=function(){if(4===n.readyState){var U=e.message,F=n.response;if("com.microsoft.playready"===t.KEYSYSTEM_TYPE&&(F=JSON.parse(n.response),F="".concat(F.licenseAcquisitionUrl,"?ExpressPlayToken=").concat(F.token)),!F)return void t.emit(gu.CDM_LICENSE_ERROR,{data:"".concat(t.keys.serverURL," request failed! \n status:").concat(n.status," statusText:").concat(n.statusText)});var Q=new XMLHttpRequest;Q.keySession=e.target,Q.responseType="arraybuffer",Q.withCredentials=!1,Q.open("POST",String(F)),"com.microsoft.playready"===t.KEYSYSTEM_TYPE&&Q.setRequestHeader("Content-type","text/xml"),Q.onreadystatechange=function(){if(4===Q.readyState){if(200!==Q.status)return void t.emit(gu.CDM_LICENSE_ERROR,{data:"".concat(F," request failed! \n status:").concat(Q.status," statusText:").concat(Q.statusText)});var e;t.emit(gu.CDM_LICENSE_SUCCESS,{data:t.licenseStep}),t.licenseStep++,e="com.microsoft.playready"===t.KEYSYSTEM_TYPE?t.parseServerResponse(Q.response):new Uint8Array(Q.response),Q.keySession.update(e).catch(console.error.bind(console,"update() failed"))}},Q.send(t.getLicenseRequestFromMessage(U))}},n.send()}},{key:"getLicenseRequestFromMessage",value:function(e){if("com.microsoft.playready"===this.KEYSYSTEM_TYPE){var t=null,n=new DOMParser,U=new Uint16Array(e),F=String.fromCharCode.apply(null,U),Q=n.parseFromString(F,"application/xml");if(!Q.getElementsByTagName("PlayReadyKeyMessage")[0])return e;var i=Q.getElementsByTagName("Challenge")[0].childNodes[0].nodeValue;return i&&(t=window.atob(i)),t}return new Uint8Array(e)}},{key:"destroy",value:function(){this.removeAllListeners(),this.video=null}}]),n}(ad),Xu=Qo.aTypedArrayConstructor;(0,Qo.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(Xu(this))(t);t>e;)n[e]=arguments[e++];return n}),Bo);var xu=function(){function e(){var t,n;tn(this,e);var U=new Promise((function(e,U){t=e,n=U}));return U.resolve=function(e){t(e),U.state="fulfilled"},U.reject=function(e){n(e),U.state="rejected",U.isBreak="DESTROYED"===e},U.state="pending",U}return Un(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),Lu=Un((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.url,U=t.method,F=void 0===U?"GET":U,Q=t.type,i=void 0===Q?"arraybuffer":Q,l=t.data,r=void 0===l?{}:l;return tn(this,e),new Promise((function(e,t){var U=new window.XMLHttpRequest,Q=F.toUpperCase(),l=[];if(Object.keys(r).map((function(e){l.push("k=".concat(r[e]))})),"GET"===Q){var a="";a=n.indexOf("?")<0?"".concat(n,"?").concat(l.join("&")):(null==l?void 0:l.length)>0?"".concat(n,"&").concat(l.join("&")):n,U.open(Q,a),i&&(U.responseType=i),U.send()}else{if("POST"!==Q)throw new Error("xhr ".concat(Q," is not supported"));U.open(Q,n,!0),i&&(U.responseType=i),U.setRequestHeader("Content-Type","application/json"),U.send(JSON.stringify(r))}U.onload=function(){200===U.status||206===U.status?e(U):t(U)},U.onerror=function(){t(U)}}))})),Iu=Lu,Gu=null;function Mu(e,t,n){var U=new xu;return new Iu({type:"json",method:"POST",url:n,data:{drm_type:"22",version:"2.0",license_request:[{vid:e,kids:[].concat(t)}]}}).then((function(n){var F=null==n?void 0:n.response;if("string"==typeof F&&(F=JSON.parse(F)),F){var Q=F.play_licenses[e][t];U.resolve(Q)}else console.error("getSecretKeyByKid end, vid,",e,", kid",t,"response null"),U.reject()})).catch((function(){console.error("getSecretKeyByKid end, vid,",e,", kid",t,"catch"),U.reject()})),U}function Yu(){return function(e,t,n){function U(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 F,Q=0,i=[],l=[];for(F=0;F<4;++F)Q+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var r=parseInt(e.slice(16,24),16),a=2*parseInt(e.slice(32,40),16);for(F=40;F<a+40;F+=2)i.push(parseInt(e.slice(F,F+2),16));var d=a+40,o=parseInt(e.slice(d,d+4),16);for(d+=4,F=0;F<o;++F){var s=U(e,d);d+=2*s[0];for(var B="",c=0;c<s[1];++c){var R=U(e,d);B+=String.fromCharCode(Q^R[1]),d+=2*R[0]}l.push(B)}return t.p=null,function e(t,n,U,F,Q){var r,a,d,o,s,B=-1,c=[],R=null,V=[n];for(a=Math.min(n.length,U),d=0;d<a;++d)V.push(n[d]);V.p=F;for(var u=[];;)try{switch(i[t++]){case 48:c[++B]=null;break;case 37:r=i[t++],c[++B]=r<<24>>24;break;case 31:r=((r=((r=i[t++])<<8)+i[t++])<<8)+i[t++],c[++B]=(r<<8)+i[t++];break;case 11:r=(i[t]<<8)+i[t+1],t+=2,c[++B]=l[r];break;case 66:c[++B]=void 0;break;case 70:c[++B]={};break;case 1:r=(i[t]<<8)+i[t+1],t+=2,a=l[r],d=c[B--],c[B][a]=d;break;case 3:for(a=i[t++],d=i[t++],o=V;a>0;--a)o=o.p;c[++B]=o[d];break;case 49:r=(i[t]<<8)+i[t+1],t+=2,a=l[r],c[B]=c[B][a];break;case 51:a=c[B--],c[B]=c[B][a];break;case 53:for(a=i[t++],d=i[t++],o=V;a>0;--a)o=o.p;o[d]=c[B--];break;case 38:r=(i[t]<<8)+i[t+1],t+=2,a=l[r],d=c[B--],o=c[B--],d[a]=o;break;case 73:a=c[B--],d=c[B--],o=c[B--],d[a]=o;break;case 43:a=c[B--],c[B]=c[B]!==a;break;case 5:a=c[B--],c[B]=c[B]>a;break;case 14:r=(r=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?--B:t+=r;break;case 20:r=i[t++],a=c[B--],(d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[a,r,V],d._u=e,c[++B]=d;break;case 47:for(a=c[B--],d=null;o=u.pop();)if(2===o[0]||3===o[0]){d=o;break}if(d)t=d[2],d[0]=0,u.push(d);else{if(!R)return a;t=R[1],Q=R[2],V=R[3],u=R[4],c[++B]=a,R=R[0]}break;case 60:B-=r=i[t++],d=c.slice(B+1,B+r+1),a=c[B--],o=c[B--],a._u===e?(a=a._v,R=[R,t,Q,V,u],t=a[0],null==o&&(o=function(){return this}()),Q=o,(V=[d].concat(d)).length=Math.min(a[1],r)+1,V.p=a[2],u=[]):(s=a.apply(o,d),c[++B]=s);break;case 58:for(r=i[t++],o=[void 0],s=r;s>0;--s)o[s]=c[B--];d=c[B--],s=new(a=Function.bind.apply(d,o)),c[++B]=s;break;case 7:t+=2+(r=(r=(i[t]<<8)+i[t+1])<<16>>16);break;case 8:r=(r=(i[t]<<8)+i[t+1])<<16>>16,t+=2,(a=c[B--])||(t+=r);break;case 44:--B;break;case 27:a=c[B],c[++B]=a;break;default:throw new Error("ioe")}}catch(h){for(;(r=u.pop())&&!r[0];);if(!r){e:for(;R;){for(a=R[4];r=a.pop();)if(r[0])break e;R=R[0]}if(!R)throw h;t=R[1],Q=R[2],V=R[3],u=R[4],R=R[0]}1===(a=r[0])?(t=r[2],r[0]=0,u.push(r),c[++B]=h):2===a?(t=r[2],r[0]=0,u.push(r)):(t=r[3],r[0]=2,u.push(r),c[++B]=h)}}(r,[],0,t,n)}("504B010128789c8300000045809e79290000014e30030201300302020300013c013c013500024646010002350003030002030003310002030103490301051b3100030300033c012c422f0301051b3100080300013c012c422f0301043100002500050e0008030104250033422b0800090301042500330700030b00013500010301043100002501050800090301042501330700014235000203010431000025020508000903010425023307000142350003030104310000250305080009030104250333070001423500040301003a0035000503000208004d30030101300301020300023c013c013500060300030800254646010002350007030006030007310002030003490300051b3100030300073c012c07000d0300051b3100030300063c012c070039300301030300010300030300043c033500080b00040300082600050300081b3100061f0000000014013c011b3100071f0000003614013c012c0300052f00090680ac80a580ae80a780b480a8000980a380ac80a580a180b2808b80a580b980b30780b280a580b380af80ac80b680a50e80b280a580b180b580a580b380b4809080b280af80ad80a980b380a50280a980a40480b480a880a580ae0580a380a180b480a380a80680b280a580aa80a580a380b4",{get 0(){return xu},get 1(){return yd},get 2(){return atob},get 3(){return Mu},4:arguments},this)}function wu(e){var t;if(null===Gu)try{Gu=localStorage&&!!localStorage.getItem("secretkeylog")}catch(Q){}for(var n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];Gu&&console.log&&(t=console).log.apply(t,["[XGSecretkey]",e].concat(U))}var Ku={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 _u(e,t){return ju.apply(this,arguments)}function ju(){return(ju=en(At().mark((function e(t,n){var U,F,Q,i,l;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=n.iv,F=n.tagLength,Q=n.data,i=null,t=Tu.StringToArrayBuffer(t),Q=Tu.Base64ToHex(Q,!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),new Error("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(U),tagLength:F},l,Q);case 16:i=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 new Error("Wrong Password.");case 25:if("InvalidAccessError"!==String(e.t1)){e.next=29;break}throw new Error("Invalid Key");case 29:throw e.t1;case 30:return e.abrupt("return",new TextDecoder("utf-8").decode(i));case 31:case"end":return e.stop()}}),e,null,[[4,10],[13,19]])})))).apply(this,arguments)}function Hu(e,t){return Pu.apply(this,arguments)}function Pu(){return(Pu=en(At().mark((function e(t,n){var U,F,Q,i,l,r,a;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=n.iv,F=n.tagLength,Q=n.data,i=btoa(Tu.ArrayBufferToString(U)),l=Ku.codec.base64.toBits(i),r=Ku.codec.utf8String.toBits(t),a=new Ku.cipher.aes(r),e.abrupt("return",Ku.codec.utf8String.fromBits(Ku.mode.gcm.decrypt(a,Ku.codec.base64.toBits(Q),l,[],F)));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}Ku.cipher.aes=function(e){this._tables[0][0][0]||this._precompute();var t,n,U,F,Q,i=this._tables[0][4],l=this._tables[1],r=e.length,a=1;if(4!==r&&6!==r&&8!==r)throw new Ku.exception.invalid("invalid aes key size");for(this._key=[F=e.slice(0),Q=[]],t=r;t<4*r+28;t++)U=F[t-1],(t%r==0||8===r&&t%r==4)&&(U=i[U>>>24]<<24^i[U>>16&255]<<16^i[U>>8&255]<<8^i[255&U],t%r==0&&(U=U<<8^U>>>24^a<<24,a=a<<1^283*(a>>7))),F[t]=F[t-r]^U;for(n=0;t;n++,t--)U=F[3&n?t:t-4],Q[n]=t<=4||n<4?U:l[0][i[U>>>24]]^l[1][i[U>>16&255]]^l[2][i[U>>8&255]]^l[3][i[255&U]]},Ku.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,U,F,Q,i,l,r=this._tables[0],a=this._tables[1],d=r[4],o=a[4],s=[],B=[];for(e=0;e<256;e++)B[(s[e]=e<<1^283*(e>>7))^e]=e;for(t=n=0;!d[t];t^=U||1,n=B[n]||1)for(Q=(Q=n^n<<1^n<<2^n<<3^n<<4)>>8^255&Q^99,d[t]=Q,o[Q]=t,l=16843009*s[F=s[U=s[t]]]^65537*F^257*U^16843008*t,i=257*s[Q]^16843008*Q,e=0;e<4;e++)r[e][t]=i=i<<24^i>>>8,a[e][Q]=l=l<<24^l>>>8;for(e=0;e<5;e++)r[e]=r[e].slice(0),a[e]=a[e].slice(0)},_crypt:function(e,t){if(4!==e.length)throw new Ku.exception.invalid("invalid aes block size");var n,U,F,Q,i=this._key[t],l=e[0]^i[0],r=e[t?3:1]^i[1],a=e[2]^i[2],d=e[t?1:3]^i[3],o=i.length/4-2,s=4,B=[0,0,0,0],c=this._tables[t],R=c[0],V=c[1],u=c[2],h=c[3],Z=c[4];for(Q=0;Q<o;Q++)n=R[l>>>24]^V[r>>16&255]^u[a>>8&255]^h[255&d]^i[s],U=R[r>>>24]^V[a>>16&255]^u[d>>8&255]^h[255&l]^i[s+1],F=R[a>>>24]^V[d>>16&255]^u[l>>8&255]^h[255&r]^i[s+2],d=R[d>>>24]^V[l>>16&255]^u[r>>8&255]^h[255&a]^i[s+3],s+=4,l=n,r=U,a=F;for(Q=0;Q<4;Q++)B[t?3&-Q:Q]=Z[l>>>24]<<24^Z[r>>16&255]<<16^Z[a>>8&255]<<8^Z[255&d]^i[s++],n=l,l=r,r=a,a=d,d=n;return B}},Ku.bitArray={bitSlice:function(e,t,n){return e=Ku.bitArray._shiftRight(e.slice(t/32),32-(31&t)).slice(1),void 0===n?e:Ku.bitArray.clamp(e,n-t)},extract:function(e,t,n){var U=Math.floor(-t-n&31);return(-32&(t+n-1^t)?e[t/32|0]<<32-U^e[t/32+1|0]>>>U:e[t/32|0]>>>U)&(1<<n)-1},concat:function(e,t){if(0===e.length||0===t.length)return e.concat(t);var n=e[e.length-1],U=Ku.bitArray.getPartial(n);return 32===U?e.concat(t):Ku.bitArray._shiftRight(t,U,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)+Ku.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]=Ku.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(Ku.bitArray.bitLength(e)!==Ku.bitArray.bitLength(t))return!1;var n,U=0;for(n=0;n<e.length;n++)U|=e[n]^t[n];return 0===U},_shiftRight:function(e,t,n,U){var F,Q,i;for(void 0===U&&(U=[]);t>=32;t-=32)U.push(n),n=0;if(0===t)return U.concat(e);for(F=0;F<e.length;F++)U.push(n|e[F]>>>t),n=e[F]<<32-t;return Q=e.length?e[e.length-1]:0,i=Ku.bitArray.getPartial(Q),U.push(Ku.bitArray.partial(t+i&31,t+i>32?n:U.pop(),1)),U},_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}},Ku.codec.utf8String={fromBits:function(e){var t,n,U="",F=Ku.bitArray.bitLength(e);for(t=0;t<F/8;t++)0==(3&t)&&(n=e[t/4]),U+=String.fromCharCode(n>>>8>>>8>>>8),n<<=8;return decodeURIComponent(escape(U))},toBits:function(e){e=unescape(encodeURIComponent(e));var t,n=[],U=0;for(t=0;t<e.length;t++)U=U<<8|e.charCodeAt(t),3==(3&t)&&(n.push(U),U=0);return 3&t&&n.push(Ku.bitArray.partial(8*(3&t),U)),n}},Ku.codec.base64={_chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(e,t,n){var U,F="",Q=0,i=Ku.codec.base64._chars,l=0,r=Ku.bitArray.bitLength(e);for(n&&(i=i.substr(0,62)+"-_"),U=0;6*F.length<r;)F+=i.charAt((l^e[U]>>>Q)>>>26),Q<6?(l=e[U]<<6-Q,Q+=26,U++):(l<<=6,Q-=6);for(;3&F.length&&!t;)F+="=";return F},toBits:function(e,t){e=e.replace(/\s|=/g,"");var n,U,F=[],Q=0,i=Ku.codec.base64._chars,l=0;for(t&&(i=i.substr(0,62)+"-_"),n=0;n<e.length;n++){if((U=i.indexOf(e.charAt(n)))<0)throw new Ku.exception.invalid("this isn't base64!");Q>26?(Q-=26,F.push(l^U>>>Q),l=U<<32-Q):l^=U<<32-(Q+=6)}return 56&Q&&F.push(Ku.bitArray.partial(56&Q,l,1)),F}},Ku.codec.base64url={fromBits:function(e){return Ku.codec.base64.fromBits(e,1,1)},toBits:function(e){return Ku.codec.base64.toBits(e,1)}},Ku.mode.gcm={name:"gcm",encrypt:function(e,t,n,U,F){var Q,i=t.slice(0),l=Ku.bitArray;return F=F||128,U=U||[],Q=Ku.mode.gcm._ctrMode(!0,e,i,U,n,F),l.concat(Q.data,Q.tag)},decrypt:function(e,t,n,U,F){var Q,i,l=t.slice(0),r=Ku.bitArray,a=r.bitLength(l);if(U=U||[],(F=F||128)<=a?(i=r.bitSlice(l,a-F),l=r.bitSlice(l,0,a-F)):(i=l,l=[]),Q=Ku.mode.gcm._ctrMode(!1,e,l,U,n,F),!r.equal(Q.tag,i))throw new Ku.exception.corrupt("gcm: tag doesn't match");return Q.data},_galoisMultiply:function(e,t){var n,U,F,Q,i,l=Ku.bitArray._xor4;for(F=[0,0,0,0],Q=t.slice(0),n=0;n<128;n++){for(0!=(e[Math.floor(n/32)]&1<<31-n%32)&&(F=l(F,Q)),i=0!=(1&Q[3]),U=3;U>0;U--)Q[U]=Q[U]>>>1|(1&Q[U-1])<<31;Q[0]=Q[0]>>>1,i&&(Q[0]=Q[0]^225<<24)}return F},_ghash:function(e,t,n){var U,F,Q=n.length;for(U=t.slice(0),F=0;F<Q;F+=4)U[0]^=4294967295&n[F],U[1]^=4294967295&n[F+1],U[2]^=4294967295&n[F+2],U[3]^=4294967295&n[F+3],U=Ku.mode.gcm._galoisMultiply(U,e);return U},_ctrMode:function(e,t,n,U,F,Q){var i,l,r,a,d,o,s,B,c,R,V,u,h=Ku.bitArray;for(c=n.length,R=h.bitLength(n),V=h.bitLength(U),u=h.bitLength(F),i=t.encrypt([0,0,0,0]),96===u?(l=F.slice(0),l=h.concat(l,[1])):(l=Ku.mode.gcm._ghash(i,[0,0,0,0],F),l=Ku.mode.gcm._ghash(i,l,[0,0,Math.floor(u/4294967296),4294967295&u])),r=Ku.mode.gcm._ghash(i,[0,0,0,0],U),o=l.slice(0),s=r.slice(0),e||(s=Ku.mode.gcm._ghash(i,r,n)),d=0;d<c;d+=4)o[3]++,a=t.encrypt(o),n[d]^=a[0],n[d+1]^=a[1],n[d+2]^=a[2],n[d+3]^=a[3];return n=h.clamp(n,R),e&&(s=Ku.mode.gcm._ghash(i,r,n)),B=[Math.floor(V/4294967296),4294967295&V,Math.floor(R/4294967296),4294967295&R],s=Ku.mode.gcm._ghash(i,s,B),a=t.encrypt(l),s[0]^=a[0],s[1]^=a[1],s[2]^=a[2],s[3]^=a[3],{tag:h.bitSlice(s,0,Q),data:n}}};var zu,Ou={webCryptoDecrypt:_u,decrypt:(zu=en(At().mark((function e(t,n){var U,F;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"==typeof n&&(n=JSON.parse(n)),!n.enableSoftwareAES&&null!==(U=crypto)&&void 0!==U&&U.subtle){e.next=7;break}return e.next=4,Hu(t,n);case 4:F=e.sent,e.next=18;break;case 7:return e.prev=7,e.next=10,_u(t,n);case 10:F=e.sent,e.next=18;break;case 13:return e.prev=13,e.t0=e.catch(7),e.next=17,Hu(t,n);case 17:F=e.sent;case 18:return e.abrupt("return",F);case 19:case"end":return e.stop()}}),e,null,[[7,13]])}))),function(e,t){return zu.apply(this,arguments)})},Au=new Uint8Array([91,104,69,75,156,171,238,71,202,4,244,5]).buffer;function qu(e,t){return $u.apply(this,arguments)}function $u(){return($u=en(At().mark((function e(t,n){var U,F;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=od.hash(n),e.next=3,Ou.decrypt(U,{data:t,iv:Au,tagLength:128});case 3:return F=e.sent,e.abrupt("return",F);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var eh="volcvui",th=new Map,nh=function(e){Qn(U,e);var t,n=dn(U);function U(e){var t;return tn(this,U),Fn(an(t=n.call(this)),"EMEError",(function(e){t.emit(gu.ERROR,e)})),Fn(an(t),"encryptHandle",(function(){var e;null===(e=t.eme)||void 0===e||e.emit(gu.ENCRYPTED)})),t.config=U.defaultConfig,t.updateConfig(e),t.config.isEncrypt=!!(t.config.kid||t.config.drm||t.config.secretKey||t.config.drmKeyToken||t.config.keyValue||t.config.drm),t.on(gu.ENCRYPTED,t.encryptHandle),t}return Un(U,[{key:"updateConfig",value:function(e){var t=this;Object.keys(e).map((function(n){void 0!==e[n]&&null!==e[n]&&void 0!==t.config[n]&&(t.config[n]=e[n])})),this.log("set config",JSON.stringify(this.config))}},{key:"setupEME",value:function(e){this.eme&&this.eme.setupEME(e)}},{key:"setOptions",value:function(e){this.eme&&this.eme.setOptions(e)}},{key:"getSecretKeyByToken",value:function(e,t,n){var U=this,F=this.config,Q=e||F.kid,i=t||F.playDomain;i.indexOf("//")<0&&(i="//".concat(i));var l=n||F.drmKeyToken,r=Tu.isBase64(l)?window.atob(l):l,a="".concat(i,"?").concat(r,"&PlayAuthIds=").concat(Q,"&ssl=true");r.indexOf("DrmType=")<0&&(a+="&DrmType=".concat(F.useUnionInfoDRM?"webdevice":"22")),this.log("getSecretKeyByToken start, vid,",F.vid,a);var d=new xu;return new Iu({type:"json",method:"GET",url:a}).then((function(e){var t,n,Q=e.response;if("string"==typeof Q&&(Q=JSON.parse(Q)),Q&&null!==(t=Q)&&void 0!==t&&t.Result&&(null===(n=Q.Result.PlayAuthInfoList)||void 0===n?void 0:n.length)>0){var i=Q.Result.PlayAuthInfoList[0].PlayAuthContent;U.log("getSecretKeyByToken end, vid,",F.vid,",res,",JSON.stringify(Q)),d.resolve(i)}})).catch((function(e){d.reject(e)})),d}},{key:"getLicense",value:function(){var e=this,t=this.config,n=t.vid,U=t.kid,F=t.getLicenseUrl,Q=new xu;return Promise.resolve().then(en(At().mark((function t(){var i,l,r,a,d,o,s,B,c,R,V,u;return At().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i={method:"getLicense",success:!1},t.next=3,e._tryGetSecretKeyByToken(i,Q);case 3:if(l=e.config,r=l.secretKey,a=l.keyValue,!(U||r||a||e.config.drm)){t.next=39;break}if(t.prev=5,d=e.config.drm||a,!(r||U&&F)){t.next=11;break}return t.next=10,Yu(n,r,U,F);case 10:d=t.sent;case 11:if(o=d&&d.clearKeys?d.clearKeys[U]:d,B=e.config,c=B.sessionId,R=B.useUnionInfoDRM,V=B.keyTokenExpiredDuration,u=th.get(c),!o&&(o=e.config.keyValue),!R||!Tu.checkUnionInfoExpired(u.unionID,u.unionInfo,V)){t.next=25;break}return t.next=19,qu(o,u.unionInfo);case 19:s=t.sent,t.next=23;break;case 22:throw new Error('The "transformUnionKey" should be provided in configuration as a function');case 23:t.next=26;break;case 25:s=o;case 26:d&&d.clearKeys&&(d.clearKeys[U]=s,i.drm=d),i.keyValue=s,i.success=!0,Q.resolve(i),t.next=37;break;case 32:t.prev=32,t.t0=t.catch(5),i.success=!1,i.error=t.t0,Q.reject(i);case 37:t.next=41;break;case 39:i.success=!0,Q.resolve(i);case 41:case"end":return t.stop()}}),t,null,[[5,32]])})))),Q}},{key:"_tryGetSecretKeyByToken",value:(t=en(At().mark((function e(t,n){var U,F,Q,i;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U=this.config,F=U.kid,Q=U.drmKeyToken,i=U.playDomain,!(F&&Q&&i)){e.next=13;break}return e.prev=2,e.next=5,this.getSecretKeyByToken(F,i,Q);case 5:this.config.secretKey=e.sent,e.next=13;break;case 8:e.prev=8,e.t0=e.catch(2),t.success=!1,t.error=e.t0,n.reject(t);case 13:case"end":return e.stop()}}),e,this,[[2,8]])}))),function(e,n){return t.apply(this,arguments)})},{key:"updateKid",value:function(e){this.eme&&this.eme.updateKid(e)}},{key:"getLicenseSecret",value:function(){var e=this,t=this.config,n=t.vid,U=t.kid,F=t.getLicenseUrl,Q=t.useEME,i=t.keyValue;if(this.config.useEME&&!this.eme){this.eme=new Du,this.eme.on(gu.ERROR,this.EMEError),this.eme.on(gu.CDM_LICENSE_SUCCESS,(function(t){e.emit(gu.CDM_LICENSE_SUCCESS,t)})),this.eme.on(gu.CDM_LICENSE_ERROR,(function(t){e.emit(gu.CDM_LICENSE_ERROR,t)}));var l=this.config.intertrustServerURL;if(U&&l){var r=Fn({},window.navigator.userAgent.toLocaleLowerCase().indexOf("chrome")>-1?"widevine":"playready",{serverURL:l+U});return this.eme.updateDrm(r),Promise.resolve()}}var a=new xu;return Promise.resolve().then(en(At().mark((function t(){var l,r,d,o,s,B,c,R,V;return At().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return l={method:"getLicense",success:!1},t.next=3,e._tryGetSecretKeyByToken(l,a);case 3:if((r=e.config.secretKey)||i){t.next=8;break}return t.next=7,Mu(n,U,F);case 7:r=t.sent;case 8:if(Q&&(r&&(r=yd(atob(r))),i&&(r=i)),t.prev=9,d=e.config,o=d.sessionId,s=d.useUnionInfoDRM,B=d.keyTokenExpiredDuration,c=th.get(o),!s||!Tu.checkUnionInfoExpired(c.unionID,c.unionInfo,B)){t.next=18;break}if(!Q){t.next=17;break}return t.next=16,qu(r,c.unionInfo);case 16:r=t.sent;case 17:l.decryptKey=Tu.StringToArrayBuffer(od.hash(c.unionInfo));case 18:Q?((R={clearKeys:{}}).clearKeys[V=U||Cu]=r,e.eme.updateDrm(R,V),l.secretKey=null):l.secretKey=r,l.success=!0,a.resolve(l),t.next=28;break;case 23:t.prev=23,t.t0=t.catch(9),l.success=!1,l.error=t.t0,a.reject(l);case 28:case"end":return t.stop()}}),t,null,[[9,23]])})))),a}},{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),U=1;U<t;U++)n[U-1]=arguments[U];wu.apply(void 0,[e].concat(n))}},{key:"getSecretKey",value:function(){var e=this.config,t=e.vid,n=e.kid,U=e.getLicenseUrl,F=e.drmKeyToken,Q=e.playDomain,i=e.secretKey;return U&&n?Mu(t,n,U):F&&n&&Q?this.getSecretKeyByToken(n,Q,F):i||(console.error("[DRM]DRM,getSecretKey args is invalid"),null)}},{key:"getKeyValue",value:function(){var e=this.config,t=e.vid,n=e.kid,U=e.getLicenseUrl;return Yu(t,e.secretKey,n,U)}}],[{key:"pluginName",get:function(){return"XGSecretKey"}},{key:"defaultConfig",get:function(){return{keyValue:null,kid:null,getLicenseUrl:"",secretKey:null,drm:null,vid:"",useUnionInfoDRM:!1,transformUnionKey:null,drmKeyToken:null,keyTokenExpiredDuration:null,playDomain:null,sessionId:eh,useEME:!0,intertrustServerURL:null}}},{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]:eh,n=Tu.getUnionInfo(e);return th.set(t,{unionID:e,unionInfo:n}),n}}]),U}(ad);nh.isWebAssemblySupported=function(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":qt(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(fu){}return!1};var Uh=J,Fh=c,Qh=Cn("match"),ih=l,lh=F,rh=Yt,ah=nQ,dh=K.f,oh=tt.f,sh=function(e){var t;return Uh(e)&&(void 0!==(t=e[Qh])?!!t:"RegExp"==Fh(e))},Bh=WR,ch=kR,Rh=Oe,Vh=i,uh=Me.enforce,hh=pQ,Zh=Cn("match"),Sh=lh.RegExp,ph=Sh.prototype,Jh=/a/g,mh=/a/g,Wh=new Sh(Jh)!==Jh,kh=ch.UNSUPPORTED_Y;if(ih&&rh("RegExp",!Wh||kh||Vh((function(){return mh[Zh]=!1,Sh(Jh)!=Jh||Sh(mh)==mh||"/a/i"!=Sh(Jh,"i")})))){for(var Eh=function(e,t){var n,U=this instanceof Eh,F=sh(e),Q=void 0===t;if(!U&&F&&e.constructor===Eh&&Q)return e;Wh?F&&!Q&&(e=e.source):e instanceof Eh&&(Q&&(t=Bh.call(e)),e=e.source),kh&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var i=ah(Wh?new Sh(e,t):Sh(e,t),U?this:ph,Eh);return kh&&n&&(uh(i).sticky=!0),i},yh=function(e){e in Eh||dh(Eh,e,{configurable:!0,get:function(){return Sh[e]},set:function(t){Sh[e]=t}})},fh=oh(Sh),Nh=0;fh.length>Nh;)yh(fh[Nh++]);ph.constructor=Eh,Eh.prototype=ph,Rh(lh,"RegExp",Eh)}hh("RegExp");var bh=Object.prototype.toString,vh=Function.prototype.toString;function Th(e){var t=!0;if(Array.isArray(e))t=e.reduce((function(e,t){return e&&Th(t)}),t);else{var n=RegExp("^".concat(String(bh).replace(/[.*+?^${}()|[\]\/\\]/g,"\\$&").replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?"),"$"));t="function"==typeof e&&n.test(vh.call(e))}return t}e.EVENT_EME=gu,e.TRANSFORM_IV=Au,e.XGSecretKey=nh,e.aes4js=Ou,e.checkEMEValid=function(){var e=[];return"undefined"!=typeof MediaKeySession&&e.push(MediaKeySession.prototype.update),0===e.length||Th(e)},e.checkMSEValid=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=function(){return"undefined"!=typeof MediaSource?MediaSource:arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&void 0!==self.ManagedMediaSource?self.ManagedMediaSource:void 0!==self.WebKitMediaSource?self.WebKitMediaSource:void 0}(e),n=function(){return"undefined"!=typeof SourceBuffer?SourceBuffer:arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&void 0!==self.ManagedSourceBuffer?self.ManagedSourceBuffer:void 0}(e),U=!1;if(t&&n){var F=[];n&&(F.push(n),F.push(n.prototype.appendBuffer)),t&&(F.push(t),F.push(t.prototype.addSourceBuffer)),Th(F)&&(U=!0)}return U},e.isNativeFunction=Th,e.transformUnionKey=qu,e.util=Tu}(t)}(0,XF.exports);var xF=XF.exports,LF=u((function e(t,n){var U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};R(this,e);var F="number"==typeof n?n:void 0;U.playerVersion="3.5.27-alpha.7",this.errorType=t,this.errorCode=F||We[t][n]||We[t],this.ext=U}));LF.DUR_PARSE_ERROR=9201,LF.SEG_PARSE_ERROR=9202,LF.INIT_SEGMENT_ERROR=9203,LF.MPD_INIT_ERROR=9204,LF.SEGMENT_CONTENT_ERROR=9205,LF.BACK_URL_FAIL=9206;var IF,GF=LF,MF=u((function e(t,n,U,F,Q,i){R(this,e),this.type=t,this.codecs=n,this.visualEntryBox=U,this.configurationBox=F,this.types=Q,this.logCodeType=i})),YF="avc",wF="av1",KF="hevc",_F="bytevc1",jF=(h(IF={},YF,new MF("avc","avc1.64001E","avc1","avcC",["h264"],"h264")),h(IF,wF,new MF("av1","av01.0.08M.08","av01","av1C",["av1"],"av1")),h(IF,KF,new MF("hevc","hev1.1.6.L120.90","hvc1","hvcC",["h265"],"h265")),h(IF,_F,new MF("hevc","hev1.1.6.L120.90","hvc1","hvcC",["bytevc1","h265"],"h265")),IF);function HF(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function PF(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,AF(U.key),U)}}function zF(e,t,n){return t&&PF(e.prototype,t),n&&PF(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function OF(e,t,n){return(t=AF(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function AF(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var qF="video",$F="audio",eQ="avc",tQ="hevc",nQ="vvcC",UQ="aac",FQ="g7110a",QQ="g7110m",iQ=function(){function e(){HF(this,e),OF(this,"id",1),OF(this,"type",qF),OF(this,"codecType",eQ),OF(this,"pid",-1),OF(this,"hvcC",void 0),OF(this,"codec",""),OF(this,"timescale",0),OF(this,"formatTimescale",0),OF(this,"sequenceNumber",0),OF(this,"baseMediaDecodeTime",0),OF(this,"baseDts",0),OF(this,"duration",0),OF(this,"warnings",[]),OF(this,"samples",[]),OF(this,"pps",[]),OF(this,"sps",[]),OF(this,"vps",[]),OF(this,"fpsNum",0),OF(this,"fpsDen",0),OF(this,"sarRatio",[]),OF(this,"width",0),OF(this,"height",0),OF(this,"nalUnitSize",4),OF(this,"present",!1),OF(this,"isVideoEncryption",!1),OF(this,"isAudioEncryption",!1),OF(this,"isVideo",!0),OF(this,"kid",null),OF(this,"pssh",null),OF(this,"ext",void 0)}return zF(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}(),lQ=function(){function e(){HF(this,e),OF(this,"id",2),OF(this,"type",$F),OF(this,"codecType",UQ),OF(this,"pid",-1),OF(this,"codec",""),OF(this,"sequenceNumber",0),OF(this,"sampleDuration",0),OF(this,"timescale",0),OF(this,"formatTimescale",0),OF(this,"baseMediaDecodeTime",0),OF(this,"duration",0),OF(this,"warnings",[]),OF(this,"samples",[]),OF(this,"baseDts",0),OF(this,"sampleSize",16),OF(this,"sampleRate",0),OF(this,"channelCount",0),OF(this,"objectType",0),OF(this,"sampleRateIndex",0),OF(this,"config",[]),OF(this,"present",!1),OF(this,"isVideoEncryption",!1),OF(this,"isAudioEncryption",!1),OF(this,"kid",null),OF(this,"ext",void 0)}return zF(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===UQ)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isAudioEncryption}}]),e}(),rQ="undefined"!=typeof window,aQ=rQ&&navigator.userAgent.toLocaleLowerCase(),dQ=rQ&&aQ.includes("firefox"),oQ=rQ&&aQ.includes("android"),sQ=function(){function e(){HF(this,e)}return zF(e,null,[{key:"getRateIndexByRate",value:function(t){return e.FREQ.indexOf(t)}},{key:"parseADTS",value:function(t,n){for(var U=t.length,F=0;F+2<U&&(255!==t[F]||240!=(246&t[F+1]));)F++;if(!(F>=U)){var Q=F,i=[],l=(60&t[F+2])>>>2,r=e.FREQ[l];if(!r)throw new Error("Invalid sampling index: ".concat(l));for(var a,d,o=1+((192&t[F+2])>>>6),s=(1&t[F+2])<<2|(192&t[F+3])>>>6,B=e._getConfig(l,s,o),c=B.config,R=B.codec,V=0,u=e.getFrameDuration(r);F+7<U;)if(255===t[F]&&240==(246&t[F+1])){if(U-F<(d=(3&t[F+3])<<11|t[F+4]<<3|(224&t[F+5])>>5))break;a=2*(1&~t[F+1]),i.push({pts:n+V*u,data:t.subarray(F+7+a,F+d)}),V++,F+=d}else F++;return{skip:Q,remaining:F>=U?void 0:t.subarray(F),frames:i,samplingFrequencyIndex:l,sampleRate:r,objectType:o,channelCount:s,codec:R,config:c,originCodec:"mp4a.40.".concat(o)}}}},{key:"parseAudioSpecificConfig",value:function(t){if(t.length){var n=t[0]>>>3,U=(7&t[0])<<1|t[1]>>>7,F=(120&t[1])>>>3,Q=e.FREQ[U];if(Q){var i=e._getConfig(U,F,n);return{samplingFrequencyIndex:U,sampleRate:Q,objectType:n,channelCount:F,config:i.config,codec:i.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 U,F,Q=[];return dQ?e>=6?(U=5,F=e-3):(U=2,F=e):oQ?(U=2,F=e):(U=2===n||5===n?n:5,F=e,e>=6?F=e-3:1===t&&(U=2,F=e)),Q[0]=U<<3,Q[0]|=(14&e)>>1,Q[1]=(1&e)<<7,Q[1]|=t<<3,5===U&&(Q[1]|=(14&F)>>1,Q[2]=(1&F)<<7,Q[2]|=8,Q[3]=0),{config:Q,codec:"mp4a.40.".concat(U)}}},{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}();OF(sQ,"FREQ",[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350]);var BQ=Math.pow(2,32);function cQ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<8)+(e[t+1]||0)}function RQ(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 VQ(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 uQ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return RQ(e,t)*BQ+RQ(e,t+4)}function hQ(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)}var ZQ=function(){function e(t){if(HF(this,e),OF(this,"_bytesAvailable",void 0),OF(this,"_bitsAvailable",0),OF(this,"_word",0),!t)throw new Error("ExpGolomb data params is required");this._data=t,this._bytesAvailable=t.byteLength,this._bytesAvailable&&this._loadWord()}return zF(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,U=0;U<e;U++)0!==n&&(n=(t+this.readEG()+256)%256),t=0===n?t:n}}]),e}(),SQ=function(){function e(t){HF(this,e),this._buffer=t,this._offset=0,this._heldBits=0,this._numHeldBits=0}return zF(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}(),pQ=function(){function e(){HF(this,e)}return zF(e,null,[{key:"parseVVCDecoderConfigurationRecord",value:function(t){var n=new SQ(t),U=n.readUint8();n.streamRead1Bytes(),n.extractBits(5);var F,Q,i,l,r,a,d,o,s=n.extractBits(2)+1,B=n.extractBits(1),c={};B&&(n.streamRead2Bytes(),l=n.extractBits(2),r=n.extractBits(3),Q=n.extractBits(3),i=n.extractBits(2),n.extractBits(6),c=e.parseVVCPTLRecord(n,Q),F=n.readUint16(),a=n.readUint16(),d=n.readUint16(),o=n.readUint16());for(var R=n.readUint8(),V=[],u=[],h=[],Z=null,S=0;S<R;S++){n.streamRead1Bytes(),n.extractBits(1),n.extractBits(2);var p=n.extractBits(5),J=1;13!==p&&12!==p&&(J=n.readUint16());for(var m=0;m<J;m++){var W=n.readUint16();switch(p){case 14:V.push(n.readUint8Array(W));break;case 15:var k=n.readUint8Array(W);Z||(Z=e.parseSPS(e.removeEPB(k))),u.push(k);break;case 16:h.push(n.readUint8Array(W))}}}return{data:t,configurationVersion:U,codec:"bvc2.1.6.L93.B0",nalUnitSize:s,ptlPresentFlag:B,olsIdx:F,numSublayers:Q,constantFrameRate:i,chromaFormatIdc:l,bitDepthLumaMinus8:r,ptlRecord:c,width:a,height:d,sampleRate:o,numOfArrays:R,vps:V,sps:u,pps:h,spsParsed:Z}}},{key:"parseVVCPTLRecord",value:function(e,t){e.streamRead2Bytes(),e.extractBits(2);var n=e.extractBits(6),U=e.extractBits(7),F=e.extractBits(1),Q=e.readUint8();e.streamRead1Bytes();var i=e.extractBits(1),l=e.extractBits(1),r=new Uint8Array(n);if(n){for(var a=0;a<n-1;a++){var d=e.extractBits(6);e.streamRead1Bytes();var o=e.extractBits(2);r[a]=d<<2|o}r[n-1]=e.extractBits(6)}else e.extractBits(6);var s=[];if(t>1){e.streamRead1Bytes();for(var B=0,c=t-2;c>=0;--c){B|=e.extractBits(1)<<c}for(var R=t;R<=8&&t>1;++R)e.extractBits(1);for(var V=t-2;V>=0;--V)B&1<<V&&(s[V]=e.readUint8())}var u=e.readUint8(),h=[];if(u)for(var Z=0;Z<u;Z++)h.push(e.readUint32());return{generalProfileIdc:U,generalTierFlag:F,generalLevelIdc:Q,ptlFrameOnlyConstraintFlag:i,ptlMultilayerEnabledFlag:l,generalConstraintInfo:r,subLayerLevelIdc:s,generalSubProfileIdc:h,ptlNumSubProfiles:u,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 U=e.buffer.slice(e.position,e.position+4);e.skip(4);var F=new Uint8Array(e.buffer.slice(e.position,e.position+n));e.skip(n),t.push({header:U,body:F})}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=[],U=1;U<t-2;)0===e[U]&&0===e[U+1]&&3===e[U+2]?(n.push(U+2),U+=2):U++;if(!n.length)return e;var F=t-n.length,Q=new Uint8Array(F),i=0;for(U=0;U<F;i++,U++)i===n[0]&&(i++,n.shift()),Q[U]=e[i];return Q}},{key:"parseVps",value:function(){}},{key:"parseSPS",value:function(t){var n=new ZQ(t);n.readUByte(),n.readUByte(),n.skipBits(4);var U=n.readBits(4),F=n.readBits(3),Q=n.readBits(2),i=420;Q<=3&&(i=[0,420,422,444][Q]),n.readBits(2),n.readBits(1);var l=e._parseProfileTierLevel(n,1,F);return n.readBits(1),n.readBits(1)&&n.readBits(1),{width:n.readUEG(),height:n.readUEG(),spsMaxSubLayerMinus1:F,spsVideoParameterSetId:U,chromaFormatIdc:Q,chromaFormat:i,ptlInfo:l}}},{key:"_parseProfileTierLevel",value:function(t,n,U){var F,Q=t.readBits(7),i=t.readBits(1),l=t.readBits(8),r=t.readBits(1),a=t.readBits(1);n&&(F=e._parseGeneralConstraintsInfo(t));for(var d=U-1,o=[],s=[],B=[],c=d;c>=0;--c)o[c]=t.readBits(1);for(;!t.byteAligned();)t.readBits(1);for(var R=d;R>=0;--R)o[R]&&(s[R]=t.readUByte());if(n)for(var V=t.readUByte(),u=0;u<V;u++)B[u]=t.readBits(32);return{generalProfileIdc:Q,generalTierFlag:i,generalLevelIdc:l,ptlFrameOnlyConstraintFlag:r,ptlMultilayerEnabledFlag:a,ptlSublayerLevelPresentFlags:o,ptlSublayerLevelIdcs:s,ptlSubProfileIdcs:B,gciInfo:F}}},{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 U=8-e.bitsPos()%8;return e.skipBits(U),{gciPresentFlag:t}}}]),e}(),JQ=function(){function e(){HF(this,e)}return zF(e,null,[{key:"findBox",value:function(t,n){var U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,F=[];if(!t)return F;for(var Q=0,i="",l=0;t.length>7;){if(Q=RQ(t),i=String.fromCharCode.apply(null,t.subarray(4,8)),l=8,1===Q?(Q=uQ(t,8),l+=8):Q||(Q=t.length),!n[0]||i===n[0]){var r=t.subarray(0,Q);if(!(n.length<2))return e.findBox(r.subarray(l),n.slice(1),U+l);F.push({start:U,size:Q,headerSize:l,type:i,data:r})}U+=Q,t=t.subarray(Q)}return F}},{key:"tfhd",value:function(e){return EQ(e,!0,(function(e,t){e.trackId=RQ(t);var n=4,U=1&e.flags,F=2&e.flags,Q=8&e.flags,i=16&e.flags,l=32&e.flags;U&&(n+=4,e.baseDataOffset=RQ(t,n),n+=4),F&&(e.sampleDescriptionIndex=RQ(t,n),n+=4),Q&&(e.defaultSampleDuration=RQ(t,n),n+=4),i&&(e.defaultSampleSize=RQ(t,n),n+=4),l&&(e.defaultSampleFlags=RQ(t,n))}))}},{key:"sidx",value:function(e){return EQ(e,!0,(function(e,t){var n=0;e.reference_ID=RQ(t,n),n+=4,e.timescale=RQ(t,n),n+=4,0===e.version?(e.earliest_presentation_time=RQ(t,n),n+=4,e.first_offset=RQ(t,n),n+=4):(e.earliest_presentation_time=uQ(t,n),n+=8,e.first_offset=uQ(t,n),n+=8),n+=2,e.references=[];var U=cQ(t,n);n+=2;for(var F=0;F<U;F++){var Q={};e.references.push(Q);var i=RQ(t,n);n+=4,Q.reference_type=i>>31&1,Q.referenced_size=2147483647&i,Q.subsegment_duration=RQ(t,n),i=RQ(t,n+=4),n+=4,Q.starts_with_SAP=i>>31&1,Q.SAP_type=i>>28&7,Q.SAP_delta_time=268435455&i}}))}},{key:"moov",value:function(t){return EQ(t,!1,(function(t,n,U){t.mvhd=e.mvhd(e.findBox(n,["mvhd"],U)[0]),t.trak=e.findBox(n,["trak"],U).map((function(t){return e.trak(t)})),t.pssh=e.pssh(e.findBox(n,["pssh"],U)[0])}))}},{key:"mvhd",value:function(e){return EQ(e,!0,(function(e,t){var n=0;1===e.version?(e.timescale=RQ(t,16),e.duration=uQ(t,20),n+=28):(e.timescale=RQ(t,8),e.duration=RQ(t,12),n+=16),e.nextTrackId=RQ(t,n+76)}))}},{key:"trak",value:function(t){return EQ(t,!1,(function(t,n,U){t.tkhd=e.tkhd(e.findBox(n,["tkhd"],U)[0]),t.mdia=e.mdia(e.findBox(n,["mdia"],U)[0]),t.edts=e.edts(e.findBox(n,["edts"],U)[0])}))}},{key:"tkhd",value:function(e){return EQ(e,!0,(function(e,t){var n=0;1===e.version?(e.trackId=RQ(t,16),e.duration=uQ(t,24),n+=32):(e.trackId=RQ(t,8),e.duration=RQ(t,16),n+=20),e.width=RQ(t,n+52),e.height=RQ(t,n+56)}))}},{key:"mdia",value:function(t){return EQ(t,!1,(function(t,n,U){t.mdhd=e.mdhd(e.findBox(n,["mdhd"],U)[0]),t.hdlr=e.hdlr(e.findBox(n,["hdlr"],U)[0]),t.minf=e.minf(e.findBox(n,["minf"],U)[0])}))}},{key:"edts",value:function(t){return EQ(t,!1,(function(t,n,U){t.elst=e.elst(e.findBox(n,["elst"],U)[0])}))}},{key:"elst",value:function(e){return EQ(e,!0,(function(e,t,n){e.entries=[],e.entriesData=t;var U=0,F=RQ(t,U);U+=4;for(var Q=0;Q<F;Q++){var i={};e.entries.push(i),1===e.version?(i.segment_duration=uQ(t,U),U+=8,i.media_time=hQ(t,U),U+=8):(i.segment_duration=RQ(t,U),U+=4,i.media_time=VQ(t,U),U+=4),i.media_rate_integer=cQ(t,U),U+=2,i.media_rate_fraction=cQ(t,n),U+=2}}))}},{key:"mdhd",value:function(e){return EQ(e,!0,(function(e,t){var n=0;1===e.version?(e.timescale=RQ(t,16),e.duration=uQ(t,20),n+=28):(e.timescale=RQ(t,8),e.duration=RQ(t,12),n+=16);var U=cQ(t,n);e.language=String.fromCharCode(96+(U>>10&31),96+(U>>5&31),96+(31&U))}))}},{key:"hdlr",value:function(e){return EQ(e,!0,(function(e,t){0===e.version&&(e.handlerType=String.fromCharCode.apply(null,t.subarray(4,8)))}))}},{key:"minf",value:function(t){return EQ(t,!1,(function(t,n,U){t.vmhd=e.vmhd(e.findBox(n,["vmhd"],U)[0]),t.smhd=e.smhd(e.findBox(n,["smhd"],U)[0]),t.stbl=e.stbl(e.findBox(n,["stbl"],U)[0])}))}},{key:"vmhd",value:function(e){return EQ(e,!0,(function(e,t){e.graphicsmode=cQ(t),e.opcolor=[cQ(t,2),cQ(t,4),cQ(t,6)]}))}},{key:"smhd",value:function(e){return EQ(e,!0,(function(e,t){e.balance=cQ(t)}))}},{key:"stbl",value:function(t){return EQ(t,!1,(function(t,n,U){var F,Q,i;t.stsd=e.stsd(e.findBox(n,["stsd"],U)[0]),t.stts=e.stts(e.findBox(n,["stts"],U)[0]),t.ctts=e.ctts(e.findBox(n,["ctts"],U)[0]),t.stsc=e.stsc(e.findBox(n,["stsc"],U)[0]),t.stsz=e.stsz(e.findBox(n,["stsz"],U)[0]),t.stco=e.stco(e.findBox(n,["stco"],U)[0]),t.stco||(t.co64=e.co64(e.findBox(n,["co64"],U)[0]),t.stco=t.co64);var l=null===(F=t.stsd.entries[0])||void 0===F||null===(Q=F.sinf)||void 0===Q||null===(i=Q.schi)||void 0===i?void 0:i.tenc.default_IV_size;t.stss=e.stss(e.findBox(n,["stss"],U)[0]),t.senc=e.senc(e.findBox(n,["senc"],U)[0],l)}))}},{key:"senc",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return EQ(e,!0,(function(e,n){var U=0,F=RQ(n,U);U+=4,e.samples=[];for(var Q=0;Q<F;Q++){for(var i={InitializationVector:[]},l=0;l<t;l++)i.InitializationVector[l]=n[U+l];if(U+=t,2&e.flags){i.subsamples=[];var r=cQ(n,U);U+=2;for(var a=0;a<r;a++){var d={};d.BytesOfClearData=cQ(n,U),U+=2,d.BytesOfProtectedData=RQ(n,U),U+=4,i.subsamples.push(d)}}e.samples.push(i)}}))}},{key:"pssh",value:function(e){return EQ(e,!0,(function(e,t){for(var n=[],U=[],F=0,Q=0;Q<16;Q++)U.push(yQ(t[F+Q]));if(F+=16,e.version>0){var i=RQ(t,F);F+=4;for(var l=0;l<(""+i).length;l++)for(var r=0;r<16;r++){var a=t[F];F+=1,n.push(yQ(a))}}var d=RQ(t,F);e.data_size=d,F+=4,e.kid=n,e.system_id=U,e.buffer=t}))}},{key:"bvc2",value:function(t){return EQ(t,!1,(function(t,n,U){var F=WQ(t,n),Q=n.subarray(F);U+=F,t.vvcC=e.bv2C(e.findBox(Q,["bv2C"],U)[0]),t.pasp=e.pasp(e.findBox(Q,["pasp"],U)[0])}))}},{key:"bv2C",value:function(e){return EQ(e,!1,(function(e,t,n){var U=pQ.parseVVCDecoderConfigurationRecord(t);for(var F in U)Object.prototype.hasOwnProperty.call(U,F)&&(e[F]=U[F])}))}},{key:"stsd",value:function(t){return EQ(t,!0,(function(t,n,U){t.entryCount=RQ(n),t.entries=e.findBox(n.subarray(4),[],U+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 EQ(t,!1,(function(t,n,U){t.channelCount=cQ(n,16),t.samplesize=cQ(n,18),t.sampleRate=RQ(n,24)/65536,n=n.subarray(28),t.sinf=e.sinf(e.findBox(n,["sinf"],U)[0]),t.esds=e.esds(e.findBox(n,["esds"],U)[0])}));case"encv":return EQ(t,!1,(function(t,n,U){t.width=cQ(n,24),t.height=cQ(n,26),t.horizresolution=RQ(n,28),t.vertresolution=RQ(n,32),n=n.subarray(78),t.sinf=e.sinf(e.findBox(n,["sinf"],U)[0]),t.avcC=e.avcC(e.findBox(n,["avcC"],U)[0]),t.hvcC=e.hvcC(e.findBox(n,["hvcC"],U)[0]),t.pasp=e.pasp(e.findBox(n,["pasp"],U)[0])}))}})).filter(Boolean)}))}},{key:"tenc",value:function(e){return EQ(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 U=0;U<16;U++)e.default_KID.push(yQ(t[n])),n+=1}))}},{key:"schi",value:function(t){return EQ(t,!1,(function(t,n,U){t.tenc=e.tenc(e.findBox(n,["tenc"],U)[0])}))}},{key:"sinf",value:function(t){return EQ(t,!1,(function(t,n,U){t.schi=e.schi(e.findBox(n,["schi"],U)[0]),t.frma=e.frma(e.findBox(n,["frma"],U)[0])}))}},{key:"frma",value:function(e){return EQ(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 EQ(t,!1,(function(t,n,U){var F=WQ(t,n),Q=n.subarray(F);U+=F,t.avcC=e.avcC(e.findBox(Q,["avcC"],U)[0]),t.pasp=e.pasp(e.findBox(Q,["pasp"],U)[0])}))}},{key:"avcC",value:function(e){return EQ(e,!1,(function(e,t){e.configurationVersion=t[0],e.AVCProfileIndication=t[1],e.profileCompatibility=t[2],e.AVCLevelIndication=t[3],e.codec=function(e){for(var t,n="avc1.",U=0;U<3;U++)(t=e[U].toString(16)).length<2&&(t="0".concat(t)),n+=t;return n}([t[1],t[2],t[3]]),e.lengthSizeMinusOne=3&t[4],e.spsLength=31&t[5],e.sps=[];for(var n=6,U=0;U<e.spsLength;U++){var F=cQ(t,n);n+=2,e.sps.push(t.subarray(n,n+F)),n+=F}e.ppsLength=t[n],n+=1,e.pps=[];for(var Q=0;Q<e.ppsLength;Q++){var i=cQ(t,n);n+=2,e.pps.push(t.subarray(n,n+=i)),n+=i}}))}},{key:"hvc1",value:function(t){return EQ(t,!1,(function(t,n,U){var F=WQ(t,n),Q=n.subarray(F);U+=F,t.hvcC=e.hvcC(e.findBox(Q,["hvcC"],U)[0]),t.pasp=e.pasp(e.findBox(Q,["pasp"],U)[0])}))}},{key:"hvcC",value:function(e){return EQ(e,!1,(function(t,n){t.data=e.data,t.codec="hev1.1.6.L93.B0",t.configurationVersion=n[0];var U=n[1];t.generalProfileSpace=U>>6,t.generalTierFlag=(32&U)>>5,t.generalProfileIdc=31&U,t.generalProfileCompatibility=RQ(n,2),t.generalConstraintIndicatorFlags=n.subarray(6,12),t.generalLevelIdc=n[12],t.avgFrameRate=cQ(n,19),t.numOfArrays=n[22],t.vps=[],t.sps=[],t.pps=[];for(var F=23,Q=0,i=0,l=0,r=0;r<t.numOfArrays;r++){Q=63&n[F],i=cQ(n,F+1),F+=3;for(var a,d=[],o=0;o<i;o++)l=cQ(n,F),F+=2,d.push(n.subarray(F,F+l)),F+=l;if(32===Q)(a=t.vps).push.apply(a,d);else if(33===Q){var s;(s=t.sps).push.apply(s,d)}else if(34===Q){var B;(B=t.pps).push.apply(B,d)}}}))}},{key:"pasp",value:function(e){return EQ(e,!1,(function(e,t){e.hSpacing=RQ(t),e.vSpacing=RQ(t,4)}))}},{key:"mp4a",value:function(t){return EQ(t,!1,(function(t,n,U){var F=kQ(t,n);t.esds=e.esds(e.findBox(n.subarray(F),["esds"],U+F)[0])}))}},{key:"esds",value:function(e){return EQ(e,!0,(function(e,t){e.codec="mp4a.";for(var n=0,U=0,F=0,Q=0;t.length;){for(Q=t[n=0],U=t[n+1],n+=2;128&U;)F=(127&U)<<7,U=t[n],n+=1;if(F+=127&U,3===Q)t=t.subarray(n+3);else{if(4!==Q){if(5===Q){var i=e.config=t.subarray(n,n+F),l=(248&i[0])>>3;return 31===l&&i.length>=2&&(l=32+((7&i[0])<<3)+((224&i[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 EQ(e,!1,(function(e,t){kQ(e,t)}))}},{key:"stts",value:function(e){return EQ(e,!0,(function(e,t){for(var n=RQ(t),U=[],F=4,Q=0;Q<n;Q++)U.push({count:RQ(t,F),delta:RQ(t,F+4)}),F+=8;e.entryCount=n,e.entries=U}))}},{key:"ctts",value:function(e){return EQ(e,!0,(function(e,t){var n=RQ(t),U=[],F=4;if(1===e.version)for(var Q=0;Q<n;Q++)U.push({count:RQ(t,F),offset:RQ(t,F+4)}),F+=8;else for(var i=0;i<n;i++)U.push({count:RQ(t,F),offset:-(1+~RQ(t,F+4))}),F+=8;e.entryCount=n,e.entries=U}))}},{key:"stsc",value:function(e){return EQ(e,!0,(function(e,t){for(var n=RQ(t),U=new Array(n),F=4,Q=0;Q<n;Q++)U[Q]={firstChunk:RQ(t,F),samplesPerChunk:RQ(t,F+4),sampleDescriptionIndex:RQ(t,F+8)},F+=12;e.entryCount=n,e.entries=U}))}},{key:"stsz",value:function(e){return EQ(e,!0,(function(e,t){var n=RQ(t),U=RQ(t,4),F=new Array(U);if(!n)for(var Q=8,i=0;i<U;i++)F[i]=RQ(t,Q),Q+=4;e.sampleSize=n,e.sampleCount=U,e.entrySizes=F}))}},{key:"stco",value:function(e){return EQ(e,!0,(function(e,t){for(var n=RQ(t),U=new Array(n),F=4,Q=0;Q<n;Q++)U[Q]=RQ(t,F),F+=4;e.entryCount=n,e.entries=U}))}},{key:"co64",value:function(e){return EQ(e,!0,(function(e,t){for(var n=RQ(t),U=new Array(n),F=4,Q=0;Q<n;Q++)U[Q]=uQ(t,F),F+=8;e.entryCount=n,e.entries=U}))}},{key:"stss",value:function(e){return EQ(e,!0,(function(e,t){for(var n=RQ(t),U=new Array(n),F=4,Q=0;Q<n;Q++)U[Q]=RQ(t,F),F+=4;e.entryCount=n,e.entries=U}))}},{key:"moof",value:function(t){return EQ(t,!1,(function(t,n,U){t.mfhd=e.mfhd(e.findBox(n,["mfhd"],U)[0]),t.traf=e.findBox(n,["traf"],U).map((function(t){return e.traf(t)}))}))}},{key:"mfhd",value:function(e){return EQ(e,!0,(function(e,t){e.sequenceNumber=RQ(t)}))}},{key:"traf",value:function(t){return EQ(t,!1,(function(t,n,U){t.tfhd=e.tfhd(e.findBox(n,["tfhd"],U)[0]),t.tfdt=e.tfdt(e.findBox(n,["tfdt"],U)[0]),t.trun=e.trun(e.findBox(n,["trun"],U)[0])}))}},{key:"trun",value:function(e){return EQ(e,!0,(function(e,t){var n=e.version,U=e.flags,F=t.length,Q=e.sampleCount=RQ(t),i=4;if(F>i&&1&U&&(e.dataOffset=-(1+~RQ(t,i)),i+=4),F>i&&4&U&&(e.firstSampleFlags=RQ(t,i),i+=4),F>i){var l;e.samples=new Array(Q);for(var r=0;r<Q;r++)l={},256&U&&(l.duration=RQ(t,i),i+=4),512&U&&(l.size=RQ(t,i),i+=4),1024&U&&(l.flags=RQ(t,i),i+=4),2048&U&&(l.cts=n?-(1+~RQ(t,i+4)):RQ(t,i),i+=4),e.samples[r]=l}}))}},{key:"tfdt",value:function(e){return EQ(e,!0,(function(e,t){1===e.version?e.baseMediaDecodeTime=uQ(t):e.baseMediaDecodeTime=RQ(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 U,F,Q=e.trak;if(Q&&Q.length){var i=Q.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=Q.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(i&&t){var r,a,d,o,s,B,c,R,V=t,u=null===(r=i.tkhd)||void 0===r?void 0:r.trackId;null!=u&&(V.id=i.tkhd.trackId),V.tkhdDuration=i.tkhd.duration,V.mvhdDurtion=e.mvhd.duration,V.mvhdTimecale=e.mvhd.timescale,V.timescale=V.formatTimescale=i.mdia.mdhd.timescale,V.duration=i.mdia.mdhd.duration||V.mvhdDurtion/V.mvhdTimecale*V.timescale,null!==(a=i.edts)&&void 0!==a&&a.elst&&(V.editList=i.edts.elst,V.editListApplied=i.editListApplied);var h,Z,S,p,J,m,W,k,E=i.mdia.minf.stbl.stsd.entries[0];if(V.width=E.width,V.height=E.height,E.pasp&&(V.sarRatio=[E.pasp.hSpacing,E.pasp.vSpacing]),E.hvcC)V.codecType=tQ,V.codec=E.hvcC.codec,V.vps=E.hvcC.vps,V.sps=E.hvcC.sps,V.pps=E.hvcC.pps,V.hvcC=E.hvcC.data;else if(E.avcC)V.codec=E.avcC.codec,V.sps=E.avcC.sps,V.pps=E.avcC.pps;else{if(!E.vvcC)throw new Error("unknown video stsd entry");V.codecType=nQ,V.codec=E.vvcC.codec,V.sps=E.vvcC.sps,V.pps=E.vvcC.pps,V.vps=E.vvcC.vps,V.vvcC=E.vvcC.data}if(V.present=!0,V.ext={},V.ext.stss=null===(d=i.mdia)||void 0===d||null===(o=d.minf)||void 0===o||null===(s=o.stbl)||void 0===s?void 0:s.stss,V.ext.ctts=null===(B=i.mdia)||void 0===B||null===(c=B.minf)||void 0===c||null===(R=c.stbl)||void 0===R?void 0:R.ctts,E&&"encv"===E.type)V.isVideoEncryption=!0,E.default_KID=null===(h=E.sinf)||void 0===h||null===(Z=h.schi)||void 0===Z?void 0:Z.tenc.default_KID,E.default_IsEncrypted=null===(S=E.sinf)||void 0===S||null===(p=S.schi)||void 0===p?void 0:p.tenc.default_IsEncrypted,E.default_IV_size=null===(J=E.sinf)||void 0===J||null===(m=J.schi)||void 0===m?void 0:m.tenc.default_IV_size,V.videoSenc=i.mdia.minf.stbl.senc&&i.mdia.minf.stbl.senc.samples,E.data_format=null===(W=E.sinf)||void 0===W||null===(k=W.frma)||void 0===k?void 0:k.data_format,V.useEME=e.useEME,V.kidValue=e.kidValue,V.pssh=e.pssh,V.encv=E}if(l&&n){var y,f,N,b,v,T,C,g,D,X,x=n,L=null===(y=l.tkhd)||void 0===y?void 0:y.trackId;null!=L&&(x.id=l.tkhd.trackId),x.tkhdDuration=l.tkhd.duration,x.mvhdDurtion=e.mvhd.duration,x.mvhdTimecale=e.mvhd.timescale,x.timescale=x.formatTimescale=l.mdia.mdhd.timescale,x.duration=l.mdia.mdhd.duration||x.mvhdDurtion/x.mvhdTimecale*x.timescale,null!==(f=l.edts)&&void 0!==f&&f.elst&&(x.editList=l.edts.elst,x.editListApplied=l.editListApplied);var I,G,M,Y,w,K,_,j,H=l.mdia.minf.stbl.stsd.entries[0];switch(x.sampleSize=H.sampleSize,x.sampleRate=H.sampleRate,x.channelCount=H.channelCount,x.present=!0,H.type){case"alaw":x.codecType=x.codec=FQ,x.sampleRate=8e3;break;case"ulaw":x.codecType=x.codec=QQ,x.sampleRate=8e3;break;default:x.sampleDuration=sQ.getFrameDuration(x.sampleRate,x.timescale),x.sampleRateIndex=sQ.getRateIndexByRate(x.sampleRate),x.objectType=(null===(U=H.esds)||void 0===U?void 0:U.objectType)||2,H.esds&&(x.config=Array.from(H.esds.config)),x.codec=(null===(F=H.esds)||void 0===F?void 0:F.codec)||"mp4a.40.2"}if(x.sampleDuration=sQ.getFrameDuration(x.sampleRate,x.timescale),x.objectType=(null===(N=H.esds)||void 0===N?void 0:N.objectType)||2,H.esds&&(H.esds.config?x.config=Array.from(H.esds.config):console.warn("esds config is null")),x.codec=(null===(b=H.esds)||void 0===b?void 0:b.codec)||"mp4a.40.2",x.sampleRateIndex=sQ.getRateIndexByRate(x.sampleRate),x.ext={},x.ext.stss=null===(v=l.mdia)||void 0===v||null===(T=v.minf)||void 0===T||null===(C=T.stbl)||void 0===C?void 0:C.stss,x.ext.ctts=null===(g=l.mdia)||void 0===g||null===(D=g.minf)||void 0===D||null===(X=D.stbl)||void 0===X?void 0:X.ctts,x.present=!0,H&&"enca"===H.type)x.isAudioEncryption=!0,H.data_format=null===(I=H.sinf)||void 0===I||null===(G=I.frma)||void 0===G?void 0:G.data_format,H.default_KID=null===(M=H.sinf)||void 0===M||null===(Y=M.schi)||void 0===Y?void 0:Y.tenc.default_KID,H.default_IsEncrypted=null===(w=H.sinf)||void 0===w||null===(K=w.schi)||void 0===K?void 0:K.tenc.default_IsEncrypted,H.default_IV_size=null===(_=H.sinf)||void 0===_||null===(j=_.schi)||void 0===j?void 0:j.tenc.default_IV_size,x.audioSenc=l.mdia.minf.stbl.senc&&l.mdia.minf.stbl.senc.samples,x.useEME=e.useEME,x.kidValue=e.kidValue,x.enca=H}if(n&&(n.isVideoEncryption=!!t&&t.isVideoEncryption),t&&(t.isAudioEncryption=!!n&&n.isAudioEncryption),null!=t&&t.encv||null!=n&&n.enca){var P,z,O=null==t||null===(P=t.encv)||void 0===P?void 0:P.default_KID,A=null==n||null===(z=n.enca)||void 0===z?void 0:z.default_KID,q=O||A?(O||A).join(""):null;t&&(t.kid=q),n&&(n.kid=q)}return t&&(t.flags=3841),n&&(n.flags=1793),{videoTrack:t,audioTrack:n}}}},{key:"evaluateDefaultDuration",value:function(e,t,n){var U,F=null==t||null===(U=t.samples)||void 0===U?void 0:U.length;return F?1024*F/t.timescale*e.timescale/n:1024}},{key:"moofToSamples",value:function(t,n,U){var F={};return t.mfhd&&(n&&(n.sequenceNumber=t.mfhd.sequenceNumber),U&&(U.sequenceNumber=t.mfhd.sequenceNumber)),t.traf.forEach((function(t){var Q=t.tfhd,i=t.tfdt,l=t.trun;if(Q&&l){i&&(n&&n.id===Q.trackId&&(n.baseMediaDecodeTime=i.baseMediaDecodeTime),U&&U.id===Q.trackId&&(U.baseMediaDecodeTime=i.baseMediaDecodeTime));var r=Q.defaultSampleSize||0,a=Q.defaultSampleDuration||e.evaluateDefaultDuration(n,U,l.samples.length||l.sampleCount),d=l.dataOffset||0,o=0,s=-1;if(!l.samples.length&&l.sampleCount){F[Q.trackId]=new Array(l.sampleCount);for(var B=0;B<l.sampleCount;B++)F[Q.trackId][B]={offset:d,dts:o,duration:a,size:r},o+=a,d+=r}else F[Q.trackId]=l.samples.map((function(e,t){return(e={offset:d,dts:o,pts:o+(e.cts||0),duration:e.duration||a,size:e.size||r,gopId:s,keyframe:0===t||null!==e.flags&&void 0!==e.flags&&(65536&e.flags)>>>0!=65536}).keyframe&&(s++,e.gopId=s),o+=e.duration,d+=e.size,e}))}})),F}},{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)})),U=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||U){var F,Q;if(n){var i,l,r=null===(i=n.mdia)||void 0===i||null===(l=i.minf)||void 0===l?void 0:l.stbl;if(!r)return;var a=r.stts,d=r.stsc,o=r.stsz,s=r.stco,B=r.stss,c=r.ctts;if(!(a&&d&&o&&s&&B))return;F=mQ(a,d,o,s,c,B)}if(U){var R,V,u,h=null===(R=U.mdia)||void 0===R||null===(V=R.minf)||void 0===V?void 0:V.stbl;if(!h)return;var Z=null===(u=U.mdia.mdhd)||void 0===u?void 0:u.timescale,S=h.stts,p=h.stsc,J=h.stsz,m=h.stco;if(!(Z&&S&&p&&J&&m))return;Q=mQ(S,p,J,m)}return{videoSamples:F,audioSamples:Q}}}}}]),e}();function mQ(e,t,n,U,F,Q){var i,l,r,a=[],d=null==F?void 0:F.entries,o=t.entries,s=U.entries,B=n.entrySizes,c=null==Q?void 0:Q.entries;c&&(i={},c.forEach((function(e){i[e-1]=!0}))),d&&(l=[],d.forEach((function(e){for(var t=e.count,n=e.offset,U=0;U<t;U++)l.push(n)})));var R=-1,V=0,u=0,h=0,Z=0,S=0,p=o[0].samplesPerChunk,J=o[1]?o[1].firstChunk-1:1/0;return e.entries.forEach((function(e){for(var t=e.count,U=e.delta,F=0;F<t;F++)r={dts:V,duration:U,size:B[u]||n.sampleSize,offset:s[h]+S,index:u},c&&(r.keyframe=i[u],r.keyframe&&R++,r.gopId=R),l&&u<l.length&&(r.pts=r.dts+l[u]),a.push(r),V+=U,++u<p?S+=r.size:(h++,S=0,h>=J&&(Z++,J=o[Z+1]?o[Z+1].firstChunk-1:1/0),p+=o[Z].samplesPerChunk)})),a}function WQ(e,t){return e.dataReferenceIndex=cQ(t,6),e.width=cQ(t,24),e.height=cQ(t,26),e.horizresolution=RQ(t,28),e.vertresolution=RQ(t,32),e.frameCount=cQ(t,40),e.depth=cQ(t,74),78}function kQ(e,t){return e.dataReferenceIndex=cQ(t,6),e.channelCount=cQ(t,16),e.sampleSize=cQ(t,18),e.sampleRate=RQ(t,24)/65536,28}function EQ(e,t,n){if(e){if(e.size!==e.data.length)throw new Error("box ".concat(e.type," size !== data.length"));var U={start:e.start,size:e.size,headerSize:e.headerSize,type:e.type};return t&&(U.version=e.data[e.headerSize],U.flags=function(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)}(e.data,e.headerSize+1),U.headerSize+=4),n(U,e.data.subarray(U.headerSize),U.start+U.headerSize),U}}var yQ=function(){for(var e=[],t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];return n.forEach((function(t){e.push(function(e,t,n){for(var U=String(n),F=t>>0,Q=Math.ceil(F/U.length),i=[],l=String(e);Q--;)i.push(U);return i.join("").substring(0,F-l.length)+l}(Number(t).toString(16),2,0))})),e[0]};function fQ(e,t,n,U){return e[t]?U?U(e[t]):e[t]:n}var NQ=function(){function e(t){var n,U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},F=arguments.length>2?arguments[2]:void 0;R(this,e),fF(this),this.url=t,this.options=U,this.dash=F,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 x,this._loadStates={video:this._createLoadingState(),audio:this._createLoadingState()}}var t;return u(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 U=Object.keys(jF),F=0;F<U.length;F++){var Q=U[F],i=jF[Q];if(i.types.concat(i.visualEntryBox).indexOf(n)>-1){this.videoCodecType="hevc"===Q?"h265":Q,this.videoCodecs=i.codecs;break}}pt.log("mpd dataType:",e,"codecs:",t,"cal type:",this.videoCodecType,"videoCodecs",this.videoCodecs),this.videoCodecType||(this.videoCodecType=YF,this.videoCodecs=jF[YF].codecs,console.warn("calcVideoCodeType default")),this.dash&&this.dash._pluginInst&&this.dash._pluginInst.setCodeInfo(this.videoCodecType)}}},{key:"fetch",value:(t=c(o().mark((function t(n){var U,F,Q,i,l,r,a,d,s;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return U=this,F={TYPE:"LIVE",ENDLIST:""},Q=[],t.prev=3,i=new Bt({}),t.next=7,i.load(n);case 7:if(l=t.sent,!(r=l.data)){t.next=21;break}if(a=e.parseMPD(r)){t.next=13;break}throw new Error("parse mpd error");case 13:return this._parseMeta(F,a),this._parseSegments(a,n),["video","audio"].forEach((function(e){U.mediaList[e].length>0&&(U.mediaList[e].selectedIdx="video"===e&&U.dash.selectedIdx||0,U.mediaList[e].sort((function(t,n){return"video"===e?n.height-t.height:n.bandwidth-t.bandwidth})))})),0===U.mediaList.video.length&&0===U.mediaList.audio.length&&(null===(d=U.dash)||void 0===d||d.emit("error",new GF(oe,me.DASH,{url:n,message:"NO_MEDIALIST fetch"}))),t.abrupt("return",{meta:F,segments:Q});case 21:throw U.dash.emit("error",new GF(oe,me.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),U.dash.emit("error",new GF(Je,GF.MPD_INIT_ERROR,{httpCode:null===(s=t.t0.response)||void 0===s?void 0:s.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=EU.durationConvert(t.minBufferTime)),t.maxSegmentDuration&&(e.maxSegmentDuration=EU.durationConvert(t.maxSegmentDuration)),t.mediaPresentationDuration&&(this.duration=EU.durationConvert(t.mediaPresentationDuration));var n=t.Period[0];!this.duration&&n&&n.duration&&(this.duration=EU.durationConvert(n.duration)),e.duration=this.duration}},{key:"_parseST",value:function(e,t,n,U,F){for(var Q=parseFloat(e.timescale),i=parseFloat(e.duration),l=Math.round(i/Q),r=parseInt(e.startNumber,10),a=r+Math.ceil(this.duration/l)-1,d=r;d<=a;d++){var o=l*(d-r),s=l*(d-r+1);d===a&&(l=this.duration-l*(a-r),s=this.duration),t.push({idx:d,start:Math.round(o),end:Math.round(s),url:U+e.media.replace("$RepresentationID$",n).replace("$Number%04d$",EU.preFixInterge(d,4)),downloaded:0,segmentDuration:l,height:F})}}},{key:"_getVideoSegments",value:function(e){var t,n,U,F,Q=e.bandwidth,i=e.id,l=e.baseURL,r=e.initSegment,a=e.mediaSegments,d=e.mimeType,o=e.codecs,s=e.width,B=e.height,c=e.frameRate,R=e.sar,V=e.startWithSAP,u=e.timescale,h=e.duration,Z=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_video_list)for(var S=0;S<this.options.dynamic_video.dynamic_video_list.length;S++){var p=this.options.dynamic_video.dynamic_video_list[S];p.bitrate===Q&&(t=p.size,n=p.definition,U=p.file_id,F=p.audio_file_id)}this.mediaList.video.push({id:i,baseURL:l,initSegment:l+r.replace("$RepresentationID$",i),inited:!1,mediaSegments:a,mimeType:d,codecs:o,width:s,height:B,size:t,frameRate:c,sar:R,startWithSAP:V,bandwidth:Q,timescale:u,duration:h,encrypted:Z,definition:n,fileId:U,audioFileId:F})}},{key:"_getAudioSegments",value:function(e){var t,n=e.bandwidth,U=e.id,F=e.baseURL,Q=e.initSegment,i=e.mediaSegments,l=e.mimeType,r=e.codecs,a=e.startWithSAP,d=e.timescale,o=e.duration,s=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_audio_list)for(var B=0;B<this.options.dynamic_video.dynamic_audio_list.length;B++)this.options.dynamic_video.dynamic_audio_list[B].bitrate===n&&(t=this.options.dynamic_video.dynamic_audio_list[B].size);this.mediaList.audio.push({id:U,baseURL:F,initSegment:F+Q.replace("$RepresentationID$",U),inited:!1,mediaSegments:i,mimeType:l,codecs:r,startWithSAP:a,bandwidth:n,size:t,timescale:d,duration:o,encrypted:s})}},{key:"_parseSegments",value:function(e,t){var n=this,U=[],F="";e.BaseURL&&(F=e.BaseURL[0]);var Q=e.Period[0];Q.AdaptationSet&&Q.AdaptationSet.length>1&&Q.AdaptationSet.forEach((function(e){var Q="video/mp4",i="avc1.64001E",l="640",r="360",a="25",d="1:1",o="1",s="588633";e.mimeType&&("video/mp4"===(Q=e.mimeType)?(i=e.codecs,l=parseFloat(e.width),r=parseFloat(e.height),a=parseFloat(e.frameRate),d=e.sar,o=e.startWithSAP,s=parseFloat(e.bandwidth),n.calcVideoCodeType(null,i)):"audio/mp4"===Q&&(i=e.codecs,o=e.startWithSAP,s=parseFloat(e.bandwidth))),e.Representation.forEach((function(B){U.indexOf(B.id)>-1&&(B.id=(parseInt(U[U.length-1],10)+1).toString()),U.push(B.id);var c,R="",V=[],u=0,h=t.slice(0,t.lastIndexOf("/")+1)+F;"video/mp4"===(Q=fQ(B,"mimeType",Q))?(B.codecs&&(i=B.codecs,n.calcVideoCodeType(null,i)),l=fQ(B,"width",l,parseFloat),r=fQ(B,"height",r,parseFloat),a=fQ(B,"frameRate",a,parseFloat),d=fQ(B,"sar",d)):"audio/mp4"===Q&&(i=fQ(B,"codecs",i)),o=fQ(B,"startWithSAP",o),s=fQ(B,"bandwidth",s,parseFloat),B.BaseURL&&B.BaseURL.length>0&&(h+=B.BaseURL[0]),e.SegmentTemplate&&e.SegmentTemplate.length>0&&(c=e.SegmentTemplate[0]),B.SegmentTemplate&&B.SegmentTemplate.length>0&&(c=B.SegmentTemplate[0]);var Z=!1;(e.ContentProtection||B.ContentProtection)&&(Z=!0),c&&(R=c.initialization,u=parseFloat(c.duration),n._parseST(c,V,B.id,h,r)),s=parseInt(s),"video/mp4"===Q?n._getVideoSegments({id:B.id,bandwidth:s,baseURL:h,initSegment:R,mediaSegments:V,mimeType:Q,codecs:i,width:l,height:r,frameRate:a,sar:d,startWithSAP:o,timescale:0,duration:u,encrypted:Z}):"audio/mp4"===Q&&n._getAudioSegments({id:B.id,baseURL:h,bandwidth:s,initSegment:R,mediaSegments:V,mimeType:Q,codecs:i,startWithSAP:o,timescale:0,duration:u,encrypted:Z})}))}))}},{key:"init",value:function(){var e=this,t=e.options;if(t.dynamic_video.dynamic_type&&"segment_template"!==t.dynamic_video.dynamic_type){e.dashType="segment_base";var n=0;t.duration;var U,F=t.dynamic_video;if(["dynamic_video_list","dynamic_audio_list"].forEach((function(U){var Q="dynamic_audio_list"===U;F[U].forEach((function(F){var i=parseInt(F.init_range.split("-")[0],10),l=parseInt(F.init_range.split("-")[1],10),r=parseInt(F.index_range.split("-")[0],10),a=parseInt(F.index_range.split("-")[1],10),d=F.first_moofmdat_range,o=d?[parseInt(d.split("-")[0],10),parseInt(d.split("-")[1],10)]:null;Q||e.calcVideoCodeType(F.codec_type),e.mediaList["dynamic_audio_list"===U?"audio":"video"].push({id:("dynamic_audio_list"===U?0:n++).toString(),baseURL:F.main_url,initSegment:F.main_url,initSegmentRange:[i,l],sidxRange:[r,a],firstMoofMdatRange:o,inited:!1,hasSidx:!1,mediaSegments:[],mimeType:Q?"audio/mp4":"video/mp4",codecs:Q?"mp4a.40.2":F.codec_type&&F.codec_type.indexOf("h265")>-1?"hev1.1.6.L93.B0":e.videoCodecs,width:F.vwidth,height:F.vheight,bandwidth:parseInt(F.bitrate),avg_bitrate:F.avg_bitrate,size:F.size,timescale:-1,duration:t.duration,encrypted:F.encrypt,kid:F.kid,definition:F.definition,sidxRes:void 0,fileId:F.file_id,audioFileId:F.audio_file_id,fallbackUrl:F.fallback_url,hasFallback:!1,backupUrl:F.backup_url_1,hasBackup:!1})}))})),e.type="vod",["video","audio"].forEach((function(t){e.mediaList[t].length>0&&(e.mediaList[t].selectedIdx="video"===t&&e.dash.selectedIdx||0,"video"===t&&e.mediaList[t].sort((function(e,n){return"video"===t?n.height-e.height:n.bandwidth-e.bandwidth})))})),0===e.mediaList.video.length&&0===e.mediaList.audio.length)pt.log("medaiList is null",JSON.stringify(e.options.dynamic_video)),null===(U=e.dash)||void 0===U||U.emit("error",new GF(oe,me.DASH,{message:"NO_MEDIALIST"}));e.emit("ready"),e._readyPromise.resolve()}else e.dashType="segment_template",e.fetch(t.dynamic_video.main_url).then((function(t){e.type=t.meta.TYPE.toLocaleLowerCase(),e.emit("ready"),e._readyPromise.resolve()}),(function(){["video","audio"].forEach((function(t){e.mediaList[t]=[]})),e.retry++,e.retry,e.retryMax}))}},{key:"getSidx",value:function(e){var t,n=this,U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"video",F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,Q=arguments.length>3?arguments[3]:void 0,i=this,l=i.mediaList[U][F],r=l.sidxRange[1];try{var a=e instanceof ArrayBuffer?e:e.buffer,d=new Uint8Array(a),o=String.fromCharCode.apply(null,d.subarray(4,8));if("sidx"!==o)throw pt.log("mpd sdix parse err"),new Error("topLevel ".concat(o,", index:").concat(F,", res:").concat(e.byteLength,", range:").concat(JSON.stringify(l.sidxRange)));var s=(t=JQ.sidx(JQ.findBox(new Uint8Array(a),[])[0])).timescale,B=[],c=0,R=0,V=r+1,u=V-1;t.references.forEach((function(e,t){R+=e.subsegment_duration,u+=e.referenced_size,B.push({idx:t+1,url:l.initSegment,start:Math.round(c/s),end:Math.round(R/s),startRaw:c/s,endRaw:R/s,range:[V,u],downloaded:l.firstMoofMdatRange&&0===c?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:U}),c=R+1,V=u+1})),B[0].startTime_=0,l.mediaDuration=0,B.forEach((function(e,t){l.mediaDuration+=e.segmentDuration,t>0&&(e.startTime_=B[t-1].startTime_+B[t-1].segmentDuration),t===B.length-1&&Q&&(e.end=Q)})),l.hasSidx=!0,l.mediaSegments=B,l.timescale=s,l.sidxRes=e}catch(h){if(i.sidxHanded)return;throw i.sidxHanded=!0,new GF(ue,me.SIDX,{line:398,handle:"[MPD] getSidx",message:"mpd segment base Parse getSidx error ".concat(U," err: ").concat(h.message)})}}},{key:"getCodecType",value:function(){return("hevc"===this.videoCodecType?"h265":this.videoCodecType)||"h264"}},{key:"_checkInBufferedOld",value:function(e,t,n,U,F){if(0===e.length)return!1;var Q=this._inBufferedOld(t,U,e),i=this._inBufferedOld(n,F,e);return!(!Q.in||!i.in||Q.index!==i.index)}},{key:"_inBufferedOld",value:function(e,t,n){for(var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5,F=0;F<n.length;F++){var Q=n[F].start,i=n[F].end,l=EU.round(Q),r=EU.round(i);if(l<=e&&e<=r||Q<=e&&e<=i)return{index:F,in:!0};if(l<=t&&t-U<=r||Q<=t&&t-U<=i)return{index:F,in:!0}}return{in:!1}}},{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 U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5,F=0;F<n.length;F++){var Q=n[F].start,i=n[F].end;if(!(t<Q||e>i)&&(Q-U<e&&t<i+U))return!0}return!1}},{key:"_doSyncAV",value:function(){var e=this.mediaList;if(!this.hasSync){var t=!1;if(e.video.length<1&&(t=!0),e.audio.length<1&&(t=!0),!t){var n=this.mediaList.video[this.mediaList.video.selectedIdx].mediaSegments,U=this.mediaList.audio[this.mediaList.audio.selectedIdx].mediaSegments;if(0===n.length||0===U.length)return;var F=Math.min(n.length,U.length),Q=Math.abs(n.length-U.length);if(Q>=1){var i=n.length>U.length?n:U;if(1===Q){var l=i[i.length-1],r=i[i.length-2];l&&(i.pop(),r.end=l.end,r.endRaw=l.endRaw,r.range[1]=l.range[1])}else{for(var a=Math.min(n[n.length-1].endRaw,U[U.length-1].endRaw),d=-1,o=F;o<i.length;o++)if(i[o].startRaw>=a){i[o].incomplete=!0,d=o;break}d>0&&i.splice(d)}}var s=U[F-1],B=n[F-1];s&&(s.incomplete=!0),B&&(B.incomplete=!0)}this.hasSync=!0}}},{key:"syncAV",value:function(){this.hasSync=!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=[],U=0;U<t.length;U++)n.push({start:t.start(U),end:t.end(U)});return n}},{key:"_getMseBuffered",value:function(e){var t,n,U,F,Q,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===(U=n.videoRender)||void 0===U?void 0:U.buffered:null===(F=i.timeline)||void 0===F||null===(Q=F.audioRender)||void 0===Q?void 0:Q.buffered;return t}},{key:"seek",value:function(e,t,n){this._doSyncAV();return this.useSeparationMode?this._getMediaResultsSeparate(t,n,["video","audio"]):this._getMediaResults(e,t)}},{key:"_getMediaResults",value:function(e,t){var n=t>e,U={},F=this;return["video","audio"].forEach((function(Q){if(F.mediaList[Q].length<1)return!0;var i=F._getBuffered(Q),l=F.mediaList[Q][F.mediaList[Q].selectedIdx].mediaSegments;"video"===Q&&pt.log("seek",Q,"idx",F.mediaList[Q].selectedIdx),U[Q]=l.filter((function(U,r){if(U.end<e&&U.end<t)return!1;if(U.downloaded===xt){if(F._checkInBufferedOld(i,U.start,U.end,U.startRaw,U.endRaw))return!1;if(U.incomplete)return pt.log("".concat(Q," ").concat(r," start:").concat(U.start," end:").concat(U.end," segment incomplete")),!1;pt.log("".concat(Q," ").concat(r," start:").concat(U.start," end:").concat(U.end," segment downloaded set false")),U.downloaded=Dt}var a=U.start<=e&&e<=U.end;if(U.downloaded===Dt){if(a)return!0;var d=t>0&&U.startRaw<=t&&t<=U.endRaw,o=t>0&&U.start>=t&&U.end<=e,s=l[r-1],B=!(!n||!s)&&(s.startRaw<=t&&t<=s.endRaw);if(o||d||B)return!F._checkInBufferedOld(i,U.start,U.end,U.startRaw,U.endRaw)}return!1}))})),U}},{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 U,F=e[n],Q=null===(U=this.mediaList[F][this.mediaList[F].selectedIdx])||void 0===U?void 0:U.mediaSegments;if(Q){var i,l,r,a=this._loadStates[F].currentIndex;t[F]=Q[a],pt.log("getCurSegment",F,null===(i=t[F])||void 0===i?void 0:i.idx,null===(l=t[F])||void 0===l?void 0:l.start,null===(r=t[F])||void 0===r?void 0:r.end,"idx",a,"len",Q.length)}}return t}},{key:"checkRemovedSegment",value:function(e){for(var t=["video","audio"],n={},U=0;U<t.length;U++){var F=t[U],Q=e[F];if(Q){var i=this._getBuffered(F);!this.checkInBuffered(i,Q.startRaw,Q.endRaw)&&(n[F]={remove:!0,start:Q.startRaw,end:Q.endRaw})}}return n}},{key:"_setSegmentBySeek",value:function(e,t){var n=this._findSegmentIndexByTime(t,e),U=n;n=this._adjustSegIndex(n,t),pt.log("_setSegmentBySeek",t,U,"newSeg",n),this.setNextSegmentIndex(t,n),this.setLoadingState(t,!1)}},{key:"_adjustSegIndex",value:function(e,t){var n=this.mediaList[t][this.mediaList[t].selectedIdx].mediaSegments;if(n.length>0)for(var U=this._getBuffered(t),F=e;F<n.length;F++){var Q=n[F];if(this._isItemBufferRemoved(t,U,Q),0===Q.downloaded){e=F;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,U=this._adjustSegIndex(n+1,e);this._loadStates[e].currentIndex=U,n+1!==U&&pt.log("seekResult moveNextSegmentIndex mediaType",e,"segIdx",n+1,"segIdx",U)}}},{key:"_getMediaResultsSeparate",value:function(e,t,n){for(var U={},F=0;F<n.length;F++){var Q=n[F];U[Q]=[];var i=this._getCurBuffered(Q),l=this._getBuffered(Q),r=this._loadStates[Q];if(!r.isLoading&&!(e+t<(null==i?void 0:i[1]))){var a=this.mediaList[Q][this.mediaList[Q].selectedIdx].mediaSegments;if(0!==a.length&&!(r.currentIndex>=a.length)){var d=r.currentIndex,o=a[d];if(o){var s=o.end-o.start;if(0===(null==i?void 0:i[1])||(null==i?void 0:i[1])>0&&o.start-i[1]>s+1){var B=this._findSegmentIndexByTime(Q,e);if(B===d-1)pt.log("getMediaResults seq",Q,"nsegIndex",B);else{var c,R,V=B;(null==i?void 0:i[1])>0&&(V=this._adjustSegIndex(B,Q),pt.log("getMediaResults adjust1",Q,d,"new",B,"adjustIdx",V,"buf",null==i?void 0:i[1])),this.setNextSegmentIndex(Q,V),o=a[r.currentIndex],pt.log("getMediaResults",Q,d,"new",B,"adjustIdx",V,"buf",null==i?void 0:i[1],"gap",(null===(c=o)||void 0===c?void 0:c.start)-i[1],"mediaBuffers",JSON.stringify(l),"seg downloaded",null===(R=o)||void 0===R?void 0:R.downloaded)}}if(o){var u=this.checkInBuffered(l,o.startRaw,o.endRaw);if(0===(null==i?void 0:i[1])&&u&&(pt.log("_getMediaResults buffer gap fix",Q),r.currentIndex<a.length-1&&(r.currentIndex++,o=a[r.currentIndex])),(null==i?void 0:i[1])>0&&o.end<e){var h=o.end;this._setSegmentBySeek(i[1],Q),o=a[r.currentIndex],pt.log("getMediaResults low",Q,"curBuffers",i,"orgEnd",h,"newend",o.end,"currentTime",e)}o&&o.downloaded===Dt&&U[Q].push(o)}}}}}return U}},{key:"_findSegmentIndexByTime",value:function(e,t){var n=this.mediaList[e][this.mediaList[e].selectedIdx].mediaSegments;if(n&&n.length>0){for(var U=0;U<n.length;U++){var F=n[U];if(t>=F.start&&t<F.end)return U}var Q=n[n.length-1];if(Math.abs(t-(null==Q?void 0:Q.end))<.2)return n.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===xt)return!this.checkInBuffered(t,n.startRaw,n.endRaw)&&(pt.log("".concat(e," start:").concat(n.start," end:").concat(n.end," segment downloaded to set false")),n.downloaded=Dt,!0);if(n&&n.downloaded===Dt&&this.checkInBuffered(t,n.startRaw,n.endRaw))return n.downloaded=xt,pt.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)){pt.log("mpd clearBuffer ".concat(n," start:").concat(e," end:").concat(t));var U=this,F=n?[n]:["video","audio"];"vod"===U.type&&F.forEach((function(n){if(U.mediaList[n].length>0){var F=U.mediaList[n][U.mediaList[n].selectedIdx],Q=[];F.mediaSegments.forEach((function(n,U){n.end<e||n.start>t||(n.downloaded=Dt,n.extRange=void 0,Q.push(U))}));var i=Q.length>0?Q[0]:void 0,l=Q.length>1?Q[Q.length-1]:i;pt.log("".concat(n," start:").concat(e," end:").concat(t,",\n startId:").concat(i," , endId:").concat(l,", segment downloaded set false"))}}))}}},{key:"isLastSegmentAndAppend",value:function(e,t){if(!this.mediaList[e])return!0;var n=t-1,U=this.mediaList[e].selectedIdx,F=this.mediaList[e][U].mediaSegments;return!!F&&(!F[n]||this._isSegmentAppend(F[n])&&F.length-1===n)}},{key:"_isSegmentAppend",value:function(e){return e.downloaded===xt}},{key:"isSegmentAppendFromIdx",value:function(e,t){if(!this.mediaList[e])return{res:!0,emptyTrack:!0};var n=0,U=this.mediaList[e].selectedIdx,F=this.mediaList[e][U].mediaSegments||[];if(0===F.length)return{res:!0,emptySegments:!0};for(var Q=0;Q<F.length;Q++)if(F[Q].start<=t&&t<=F[Q].end){n=Q;break}F&&t>=F[F.length-1].end&&(n=F.length-1);var i=!0;if(F){for(var l=n;n<F.length&&F[l];l++)if(!this._isSegmentAppend(F[l])){i=!1;break}}else i=!1;return{res:i}}}],[{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 U=performance.now();return t=t.replace(/<(\/)?(\w+:)+(\w+)/g,"<$1$3"),pt.log("MPD cost",performance.now()-U),L.parse(t)}}]),e}(),bQ=NQ,vQ=function(e){return e[e.INDEXDB=0]="INDEXDB",e[e.MEMORY=1]="MEMORY",e}(vQ||{}),TQ=function(e){return e.PRELOAD_NEXT="PRELOAD_NEXT",e.PRELOAD_START="PRELOAD_START",e.PRELOAD_CANCEL="PRELOAD_CANCEL",e}(TQ||{});var CQ=function(){try{if("undefined"!=typeof indexedDB)return indexedDB}catch(e){}}();function gQ(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function DQ(e){return"string"!=typeof e&&(console.warn("".concat(e," used as a key, but it is not a string.")),e=String(e)),e}var XQ={},xQ="readonly",LQ="readwrite";function IQ(e){var t=XQ[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 GQ(e,t){return new Promise((function(n,U){if(XQ[e.name]=XQ[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return n(e.db);IQ(e),e.db.close()}var F=[e.name];t&&F.push(e.version);var Q=null==CQ?void 0:CQ.open.apply(CQ,F);t&&(Q.onupgradeneeded=function(t){var n=Q.result;try{n.createObjectStore(e.storeName)}catch(U){if("ConstraintError"!==U.name)throw U;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.'))}}),Q.onerror=function(e){e.preventDefault(),U(Q.error)},Q.onsuccess=function(){n(Q.result),function(e){var t=XQ[e.name].deferredOperations.pop();if(t)t.resolve(),t.promise}(e)}}))}function MQ(e){return GQ(e,!1)}function YQ(e){return GQ(e,!0)}function wQ(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),U=e.version<e.db.version,F=e.version>e.db.version;if(U&&(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),F||n){if(n){var Q=e.db.version+1;Q>e.version&&(e.version=Q)}return!0}return!1}function KQ(e){IQ(e);for(var t=XQ[e.name],n=t.forages,U=0;U<n.length;U++){var F=n[U];F._dbInfo.db&&(F._dbInfo.db.close(),F._dbInfo.db=null)}return e.db=null,MQ(e).then((function(t){return e.db=t,wQ(e)?YQ(e):t})).then((function(U){e.db=t.db=U;for(var F=0;F<n.length;F++)n[F]._dbInfo.db=U})).catch((function(t){throw function(e,t){var n=XQ[e.name].deferredOperations.pop();if(n)n.reject(t),n.promise}(e,t),t}))}function _Q(e,t,n,U){void 0===U&&(U=1);try{var F=e.db.transaction(e.storeName,t);n(null,F)}catch(Q){if(U>0&&(!e.db||"InvalidStateError"===Q.name||"NotFoundError"===Q.name))return Promise.resolve().then((function(){if(!e.db||"NotFoundError"===Q.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),YQ(e)})).then((function(){return KQ(e).then((function(){_Q(e,t,n,U-1)}))})).catch(n);n(Q)}}var jQ=function(){function e(){R(this,e)}return u(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 U in e)n[U]=e[U];var F=XQ[n.name];F||(F={forages:[],db:null,dbReady:null,deferredOperations:[]},XQ[n.name]=F),F.forages.push(t),t._initReady||(t._initReady=t.ready,t._ready=t._fullyReady);var Q=[];function i(){return Promise.resolve()}for(var l=0;l<F.forages.length;l++){var r=F.forages[l];r!==t&&Q.push(r._initReady().catch(i))}var a=F.forages.slice(0);return t._ready=Promise.all(Q).then((function(){return n.db=F.db,MQ(n)})).then((function(e){return n.db=e,wQ(n,t._defaultConfig.version)?YQ(n):e})).then((function(e){n.db=F.db=e,t._dbInfo=n;for(var U=0;U<a.length;U++){var Q=a[U];Q!==t&&(Q._dbInfo.db=n.db,Q._dbInfo.version=n.version)}})),t._ready}},{key:"probeSupport",get:function(){return function(){try{if(null==CQ||!CQ.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(n){return!1}}()}},{key:"getItem",value:function(e,t){var n=this;e=DQ(e);var U=new Promise((function(t,U){n.ready().then((function(){_Q(n._dbInfo,xQ,(function(F,Q){if(F)return U(F);try{var i=Q.objectStore(n._dbInfo.storeName).get(e);i.onsuccess=function(){var e=i.result;void 0===e&&(e=null),t(e)},i.onerror=function(){U(i.error)}}catch(l){U(l)}}))})).catch(U)}));return gQ(U,t),U}},{key:"setItem",value:function(e,t,n){var U=this;e=DQ(e);var F=new Promise((function(n,F){U.ready().then((function(){return U._dbInfo,t})).then((function(t){_Q(U._dbInfo,LQ,(function(Q,i){if(Q)return F(Q);try{var l=i.objectStore(U._dbInfo.storeName);null===t&&(t=void 0);var r=l.put(t,e);i.oncomplete=function(){void 0===t&&(t=null),n(t)},i.onabort=i.onerror=function(){var e=r.error?r.error:r.transaction.error;F(e)}}catch(a){F(a)}}))})).catch(F)}));return gQ(F,n),F}},{key:"removeItem",value:function(e,t){var n=this;e=DQ(e);var U=new Promise((function(t,U){n.ready().then((function(){_Q(n._dbInfo,LQ,(function(F,Q){if(F)return U(F);try{var i=Q.objectStore(n._dbInfo.storeName).delete(e);Q.oncomplete=function(){t()},Q.onerror=function(){U(i.error)},Q.onabort=function(){var e=i.error?i.error:i.transaction.error;U(e)}}catch(l){U(l)}}))})).catch(U)}));return gQ(U,t),U}},{key:"clear",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){_Q(t._dbInfo,LQ,(function(U,F){if(U)return n(U);try{var Q=F.objectStore(t._dbInfo.storeName).clear();F.oncomplete=function(){e()},F.onabort=F.onerror=function(){var e=Q.error?Q.error:Q.transaction.error;n(e)}}catch(i){n(i)}}))})).catch(n)}));return gQ(n,e),n}},{key:"length",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){_Q(t._dbInfo,xQ,(function(U,F){if(U)return n(U);try{var Q=F.objectStore(t._dbInfo.storeName).count();Q.onsuccess=function(){e(Q.result)},Q.onerror=function(){n(Q.error)}}catch(i){n(i)}}))})).catch(n)}));return gQ(n,e),n}},{key:"all",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){_Q(t._dbInfo,xQ,(function(U,F){if(U)return n(U);try{var Q=F.objectStore(t._dbInfo.storeName).openCursor(),i=[];Q.onsuccess=function(){var t=Q.result;t?(i.push({key:t.key,value:t.value}),t.continue()):e(i)},Q.onerror=function(){n(Q.error)}}catch(l){n(l)}}))})).catch(n)}));return gQ(n,e),n}},{key:"_fullyReady",value:function(e){var t=this,n=t._initReady().then((function(){var e=XQ[t._dbInfo.name];if(null!=e&&e.dbReady)return e.dbReady}));return function(e,t,n){"function"==typeof t&&e.then(t),"function"==typeof n&&e.catch(n)}(n,e,e),n}},{key:"getItemSync",value:function(){throw new Error("NotSupported")}}]),e}(),HQ=function(){function e(){R(this,e)}return u(e,[{key:"_initStorage",value:function(e){var t=e.name,n=e.storeName,U="".concat(t,"_").concat(n);return this.key=U,window[U]&&"object"===s(window[U])||(window[U]={}),this.store=window[U],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 gQ(n,e),n}},{key:"all",value:function(e){for(var t=[],n=Object.keys(this.store),U=0;U<n.length;U++){var F=n[U];t.push({key:F,value:this.store[F]})}return this._internalPromise(e,t)}},{key:"probeSupport",value:function(){return!0}}]),e}(),PQ={description:"",name:"__PRE_CACHE__",storeName:"keyvaluepairs",version:1},zQ="__PRE_CACHE__KEYS",OQ=function(){function e(t,n){R(this,e),this._allCachedKeyMap={},this._memory=0,this._cnt=0;var U=n===vQ.MEMORY?HQ:jQ;this._cacheType=n,this._driver=new U,this._driver._initStorage(PQ).catch((function(){})),this._hasIdbForbidden=!1,this._maxCache=!t||t<=0?200:t,this.setMaxCache(this._maxCache),this._allCachedKeys={},this._allCachedTimeKeys={},this.getCachedKeysFromLocal(),this._readyPromise=new x,this.init()}var t;return u(e,[{key:"supportSync",value:function(){return this._cacheType===vQ.MEMORY}},{key:"getCachedKeysFromLocal",value:function(){var e=X.getItem(zQ);if(e)for(var t=e.split("|"),n=0;n<t.length;n++){var U=t[n],F=this._getCacheKeyInfos(U),Q=F.time,i=F.cachedKey;this._allCachedKeys[i]=1,this._allCachedTimeKeys[i]=Q}}},{key:"_getCacheKeyInfos",value:function(e){var t,n=e.split("$");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 U=e[n].key,F=this._getCacheKeyInfos(U),Q=F.time,i=F.cachedKey;this._allCachedKeys[i]=1,this._allCachedTimeKeys[i]=Q,t.push(U)}var l=t.join("|");X.setItem(zQ,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 HQ,e._driver._initStorage(PQ)),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,U=t;if(n>0){var F=t.slice(0,n);U=t.slice(n);for(var Q=0;Q<F.length;Q++)e.removeItem(F[Q].key).then((function(){}))}e._cnt=U.length;for(var i=0;i<U.length;i++){var l=U[i];if("object"===s(l.value)){Object.values(l.value).forEach((function(t){e._memory+=(null==t?void 0:t.memory)||0}));var r=e._getCacheKeyInfos(l.key).cachedKey;e._allCachedKeyMap[r]=Object.keys(l.value)}}e.writeCachedKeysToLocal(U)})).catch((function(){}))}},{key:"getAllCachedDataKeys",value:function(){var e=[];return Object.values(this._allCachedKeyMap).forEach((function(t){e.push.apply(e,E(t))})),e}},{key:"getItem",value:(t=c(o().mark((function e(t,n,U){var F,Q,i,l,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((F=this.hasItem(t))&&U&&(Q=this._allCachedKeyMap[t],F=(null==Q?void 0:Q.includes(U))||!1),F){e.next=4;break}return e.abrupt("return",Promise.resolve(!1));case 4:return i=this._getTimeKey(t),l=i.timeKey,e.next=7,this._driver.getItem(l,n);case 7:if(r=e.sent,!U){e.next=10;break}return e.abrupt("return",r[U]);case 10:return e.abrupt("return",r);case 11:case"end":return e.stop()}}),e,this)}))),function(e,n,U){return t.apply(this,arguments)})},{key:"getItemSync",value:function(e,t,n){var U=this.hasItem(e);if(U&&n){var F=this._allCachedKeyMap[e];U=(null==F?void 0:F.includes(n))||!1}if(!U)return!1;var Q=this._getTimeKey(e).timeKey,i=this._driver.getItemSync(Q,t);return n?i[n]:i}},{key:"setItem",value:function(e,t,n){var U=this;this._getTimeKey(e).timeKey&&this.removeItem(e);var F=(new Date).getTime();this._allCachedKeys[e]=1,this._allCachedTimeKeys[e]=F;var Q=this._genTimeKey(e,F);return n=n?function(){U._getAll(),n()}:function(){U._getAll()},this._driver.setItem(Q,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("$").concat(e)}},{key:"removeItem",value:function(e,t){var n=this._getTimeKey(e).timeKey,U=this._driver.removeItem(n,t);return delete this._allCachedKeys[e],delete this._allCachedTimeKeys[e],delete this._allCachedKeyMap[e],U}},{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}(),AQ=OQ,qQ=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],$Q=0,ei=function(){function e(t){var n=this;R(this,e),this._preload_bandwith_map=new Map,this._usepreload_info=new Map,this._pcdn_info_map=new Map,this._updateRealTimeSpeed=function(e){$Q=e.speed,n.emit(Bn,e)},this._manager=t}return u(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 U=this._pcdn_info_map.get(e);!U&&(U={}),U[t]||(U[t]={},U[t].loadLen=0),U[t].loadLen=U[t].loadLen+n,this._pcdn_info_map.set(e,U)}},{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=N(this._preload_bandwith_map);try{for(n.s();!(e=n.n()).done;){var U=k(e.value,2),F=U[0],Q=U[1];if(this._usepreload_info.get(F))this._preload_bandwith_map.delete(F);else{var i=F.split("#"),l=i.length>0?i[0]:F;t[l]?(t[l].bw+=Q.bw||0,t[l].pbw+=Q.pbw||0):t[l]={vid:l,bw:Q.bw||0,pbw:Q.pbw||0,bitrate:Q.bitrate||0,duration:Q.duration||0}}}}catch(r){n.e(r)}finally{n.f()}return Object.values(t)}},{key:"bwEventEmit",value:function(e){var t=e.vid,n=e.loadType,U=e.size,F=e.speed,Q=e.cacheKey,i=e.vtype,l=e.duration,r=e.bitrate,a=J(e,qQ),o=this.getPreloadBandwidth(Q)||{bw:0,pbw:0,vid:t,duration:l,bitrate:r};n&&n!==cn?(o.pbw=o.pbw+U,this.emit("prf_data_size",d({vid:t,task_type:2,pcdn_size:U,pcdn_speed:F,vtype:i,bitrate:r,duration:l},a))):(o.bw=o.bw+U,this.emit("prf_data_size",d({vid:t,task_type:2,cdn_size:U,cdn_speed:F,vtype:i,duration:l,bitrate:r},a))),this.setPreloadBandwidth(Q,o),this._updateRealTimeSpeed({speed:F,type:n||cn}),this._updateLoadInfo(Q,n,U)}},{key:"setUsePreloadInfo",value:function(e,t){this._usepreload_info.set(e,t)}},{key:"realTimeSpeed",get:function(){return $Q}},{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 ti(e,t){var n=[0,0];if(e)for(var U=0,F=e.length;U<F&&(n[0]=e.start(U),n[1]=e.end(U),!(n[0]<=t&&t<=n[1]));U++);return n[0]-t<=0&&t-n[1]<=0?n:[0,0]}function ni(e,t,n){for(var U=0;U<e.length;U++)if(n===e[U][t])return U;return-1}var Ui=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],Fi=!1,Qi=function(e){Z(r,e);var t,n,U,F,Q,i,l=W(r);function r(){var e;return R(this,r),(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=c(o().mark((function t(){var n,U,F,Q,i,l,r,a,d,s,B,c,R,V;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(F=m(e),Q=F._preloadDataList,i=F._config,!(!e._isOpen||e._currentPreloadInst||e._preloadDataList.length<1)){t.next=3;break}return t.abrupt("return",!1);case 3:if(l=e.findPreloadItem(Q,!1),r=null==l?void 0:l.data,l&&null!=r&&r.payload){t.next=7;break}return t.abrupt("return",!1);case 7:if(null,a=e.selectBeforeStart(r),e._filterMixPayload(r,a),e.setStartDefinition(null===(n=a)||void 0===n?void 0:n.definition),e.log("log","selectBeforeStart",null===(U=a)||void 0===U?void 0:U.vtype,a),d=e._getPreloaderKey(a||r)){t.next=17;break}return e.log("warn","need to set vtype, no preloader",r),i.autoPreload&&e.emit(TQ.PRELOAD_NEXT),t.abrupt("return",!1);case 17:if(s=e._getLoaderInst(d)){t.next=23;break}if(B=e._getLoader(d)){t.next=22;break}return t.abrupt("return",!1);case 22:s=new B(m(e),e._config);case 23:return e._currentPreloadInst=s,e._currentPreloadInst.setData(r),e._emitEvtByStart(r),t.prev=26,e.log("log","loaderInst.start",d,e.getStartDefinition(),r),t.next=30,s.start(r,e.getStartDefinition());case 30:(c=t.sent)&&c.remove&&(R=Q.indexOf(l))>-1&&Q.splice(R,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===(V=e._currentPreloadInst)||void 0===V||V.setData(null),e._currentPreloadInst=null,e._config.autoPreload&&e.emit(TQ.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 ei(m(e)),e}return u(r,[{key:"VTYPES",get:function(){return dn}},{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,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];Fi&&(t=console)[e].apply(t,["[PreloaderManager]"].concat(U))}},{key:"register",value:function(e){try{if("undefined"==typeof window)return void this.log("preloader in ssr");var t=r.getDefaultConfig();this._config=Object.assign({},t,e.config),this._options=e;var n=this._config,U=n.preloadMaxCacheCount,F=n.preloadCacheType;this._stepwise=!!this._config.stepwise,this._cacheInst=new AQ(U,F),this._selector=e.BitrateSelector,this.on(TQ.PRELOAD_NEXT,this.onPreloadNext);for(var Q=e.loaders,i=0;i<Q.length;i++)this.registerLoader(Q[i].vtype,Q[i])}catch(l){this.log("register error",l)}}},{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?function(e,t,n){if(!e)return!1;var U=ti(e.buffered,e.currentTime),F=t.startPreloadControl,Q=t.startPreloadMinBuffer,i=t.startPreloadMinPosTime,l=t.minBufferLength;if(F){var r=Math.max(U[1]-e.currentTime,0);if(r>Q){if(e.currentTime>i||e.currentTime>e.duration/2)return null==n||n("log","[checkIfStartPreload] hit buffer",r,"startPreloadMinBuffer",Q),!0}else if(e.currentTime+Q+1>e.duration&&e.currentTime+r>e.duration-1)return null==n||n("log","[checkIfStartPreload] hit end"),!0}else{var a=e.duration>l+5?l:e.duration/2,d=Math.min(e.currentTime+l,e.duration),o=U[1]-d;if(e.currentTime>a&&o>-1)return null==n||n("log","[checkIfStartPreload] hit minPos",a,"minCacheTime",d),!0}return!1}(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,U=ni(this._playingVids,"playerId",e);U>-1?n[U].vid=t:n.push({vid:t,playerId:e})}},{key:"selectBeforeStart",value:function(e){var t=e.targetDefinition,n=e.defaultDefinition;if(t)return d({},t);var U=this.getUserSelectDefinition(),F=this.selectBitrate(null==e?void 0:e.payload,n,U),Q=(null==F?void 0:F.vtype)||e.vtype,i=d(d({},F),{},{vtype:Q});return e.targetDefinition=i,this.log("log","selectBeforeStart",null==e?void 0:e.vid,Q,null==F?void 0:F.definition,null==e?void 0:e.payload,F),i}},{key:"selectBitrate",value:function(e,t,n){if(e.length<1)return null;var U=null;if(this._selector){var F,Q,i;U=this._selector.getSuitableBitrate(e,n),this.log("log","BitRateAdapter result",null===(F=U)||void 0===F?void 0:F.vtype,null===(Q=U)||void 0===Q?void 0:Q.definition,null===(i=U)||void 0===i?void 0:i.bitrate)}else{for(var l=-1,r=-1,a=0;a<e.length;a++){var o=e[a];n&&o.definition===n?l=a:t&&o.definition===t&&(r=a)}U=e[l>=0?l:r>=0?r:0]}return d({},U)}},{key:"startCheckTask",value:function(){var e=this,t=this._preloadDataList,n=this._currentPreloadInst,U=this._config.autoCheck;(this._taskIntervalId&&(clearTimeout(this._taskIntervalId),this._taskIntervalId=0),null!=n&&n.taskInProgress&&function(e,t,n){var U=t.endPreloadControl,F=t.endPreloadMinBuffer,Q=t.startPreloadMinBuffer;if(!e)return!1;if(U){if(e.currentTime+Q>=e.duration)return!1;var i=ti(e.buffered,e.currentTime),l=Math.max(i[1]-e.currentTime,0);if(l<=F)return null==n||n("log","[checkIfCancelPreload] hit buffer:",l,"endPreloadMinBuffer:",F,"video:","".concat(e.currentTime,"/").concat(e.duration)),!0}return!1}(this._media,this._config,this.log))?this.cancelPreloadingTask():0!==t.length&&(this._checkIfCanPreload()&&this.onPreloadNext(),this._taskIntervalId=setTimeout((function(){e.startCheckTask()}),U.interval))}},{key:"cancelPreloadingTask",value:function(){var e=this._preloadDataList,t=this._wipPreloadTask,n=this._config.endPreloadTaskStrategy;if(this.cancel(),t){var U;if(this.stepwise)"number"==typeof(null===(U=t.data)||void 0===U?void 0:U.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=[],U="",F=0;F<t.length;F++){var Q=t[F],i=r.parseKey(Q);i.vid===e&&(U=i.vtype,n.push(Q))}if(0===n.length)return null;var l=this._getLoaderInst(U);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 U=e.vtype===n;e.vtype=n,e.payload=e.payload.filter((function(e){return e.vtype===n||U}))}}},{key:"_emitEvtByStart",value:function(e){var t=this._player;if(e&&t)try{this.emit(TQ.PRELOAD_START,this._getEventPayload(e,t))}catch(n){this.log("warn","preload emit start error",null==n?void 0:n.stack)}}},{key:"_emitEvtByCancel",value:function(e){var t=this._player;if(e&&t)try{this.emit(TQ.PRELOAD_CANCEL,this._getEventPayload(e,t))}catch(n){this.log("warn","preload emit cancel error",null==n?void 0:n.stack)}}},{key:"_getEventPayload",value:function(e,t){var n=t.config.vid,U=this._config,F=U.minBufferLength,Q=U.startPreloadControl,i=U.startPreloadMinBuffer,l=U.startPreloadMinPosTime,r=U.endPreloadMinBuffer,a=U.endPreloadControl,d=ti(t.video.buffered,t.currentTime),o=d[1]?d[1]-t.currentTime:0;return{vid:n,pid:e.vid,buffer:d,bufferHead:o,currentTime:t.currentTime,minBufferLength:F,startPreloadControl:Q,startPreloadMinBuffer:i,startPreloadMinPosTime:l,endPreloadControl:a,endPreloadMinBuffer:r}}},{key:"addPreloadList",value:(i=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._sort(t),n=N(t),e.prev=2,n.s();case 4:if((U=n.n()).done){e.next=10;break}return F=U.value,e.next=8,this._addData(F);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 i.apply(this,arguments)})},{key:"addPlayingId",value:function(e,t){for(var n=this._preloadDataList,U=-1,F=0;F<n.length;F++){if(e===n[F].data.vid){U=F;break}}if(U>-1){var Q=n.splice(U,1);this.log("log","cancelPreloadByVid remove from list",Q.length>0&&Q[0].data.vid)}var i=this._currentPreloadInst,l=i?i.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=ni(t,"playerId",e);if(n>-1){var U=t.splice(n,1);this.log("log","removePlayingId",U.length>0&&U[0].playerId)}}},{key:"addPreload",value:(Q=c(o().mark((function e(t){return o().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 Q.apply(this,arguments)})},{key:"_addData",value:(F=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a,d,s=this;return o().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,U=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(F=this._playingVids,!((Q=ni(F,"vid",t.data.vid))>=0)){e.next=14;break}return i=F[Q],this.log("log","vid:".concat(i.vid," is already instantiated and loaded, playerId is ").concat(i.playerId)),e.abrupt("return");case 14:return l=this._getUniqueKey(t),e.next=17,this.getItem(t.data,!0);case 17:if(!(r=e.sent)){e.next=22;break}if(!U.isUniqueCache(r)){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(!(a=this._currentPreloadInst.getData())){e.next=29;break}if(this._getUniqueKey({data:a,order:0})!==l){e.next=29;break}return this.log("log","currentKey repeat"),e.abrupt("return");case 29:if(d=this._preloadDataList.filter((function(e){return s._getUniqueKey(e)===l})),this.log("log","addedItems",l,d),0!==d.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 F.apply(this,arguments)})},{key:"_getUniqueKey",value:function(e){return e.data.vtype?r.generateUniqueCacheKey(e.data):e.data.vid}},{key:"_checkAutoTask",value:function(){var e=this,t=this._config,n=t.autoCheck,U=t.autoPreload;Promise.resolve().then((function(){U&&e.emit(TQ.PRELOAD_NEXT),n.enable&&!e._taskIntervalId&&e.startCheckTask()}))}},{key:"setItem",value:function(e,t,n,U){var F=r.generateUniqueCacheKey(e);if(!n){var Q=this._getLoader(e.vtype);if(!Q)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);t=h({},Q.generateUniqueKey(e),t)}return this._cacheInst.setItem(F,t,U)}},{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,U=r.generateUniqueCacheKey(e),F=this._getLoader(e.vtype);if(!F)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);var Q=t?"":F.generateUniqueKey(e);return this._cacheInst.getItem(U,n,Q)}},{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,U=r.generateUniqueCacheKey(e),F=this._getLoader(e.vtype);if(!F)return this.log("warn","no ".concat(e.vtype," preloader, register")),!1;var Q=t?"":F.generateUniqueKey(e);return this._cacheInst.getItemSync(U,n,Q)}},{key:"supportSync",value:function(){return this._cacheInst.supportSync()}},{key:"removeItem",value:function(e,t){var n=r.generateUniqueCacheKey(e);return this._cacheInst.removeItem(n,t)}},{key:"getPreLoadData",value:(U=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.vtype,!(U=this._getLoaderInst(n))){e.next=7;break}return e.next=5,U.getPreLoadData(t);case 5:return F=e.sent,e.abrupt("return",F);case 7:return e.abrupt("return",null);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return U.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=c(o().mark((function e(){var t,n,U,F;return o().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(U=t[n],!(F=this._getLoaderInst(U))){e.next=9;break}return e.next=9,F.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=c(o().mark((function e(){var t;return o().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 U=this._preloadDataList[n];if(U.data.vid===e&&U.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 U=t.generateUniqueKey(e);return n.hasItemSameVid(U)}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,U=e.size,F=e.speed,Q=e.cacheKey,i=e.vtype,l=e.duration,r=e.bitrate,a=J(e,Ui);this._stats.bwEventEmit(d({vid:t,loadType:n,size:U,speed:F,cacheKey:Q,vtype:i,duration:l,bitrate:r},a))}},{key:"findPreloadItem",value:function(e){var t,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this._stepwise){var U=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})),F=e.filter((function(e){return e.data.stepIdx===U.data.stepIdx}));if(F.length>1&&this._sort(F),t=F[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 Q=e.indexOf(t);e.splice(Q,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({},r.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,U=n.preProcessUrl,F=n.preProcessUrlOptions;return"function"==typeof U?U(e,Object.assign({},F,t)):{url:e}}}],[{key:"getDefaultConfig",value:function(){return{autoPreload:!1,autoCheck:{enable:!1,interval:1e3},preloadMaxCacheCount:5,preloadCacheType:vQ.MEMORY,autoCheckPreload:!0,startPreloadControl:!1,startPreloadMinBuffer:5,startPreloadMinPosTime:5,minBufferLength:5,endPreloadControl:!1,endPreloadTaskStrategy:0}}},{key:"generateUniqueCacheKey",value:function(e){var t=e.vid,n=e.codecType,U=e.vtype;return"".concat(t,"#").concat(n,"#").concat(U.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){Fi=!!e}}]),r}(Qt),ii=function(e){Z(i,e);var t,n,U,F,Q=W(i);function i(e,t){var n;return R(this,i),(n=Q.call(this))._data=null,n.preloadManager=e,n._config=t,n.promisePolyfill(),n}return u(i,[{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,U=t.reqOptions,F={};return e?F=e.reqOptions?e.reqOptions:"function"==typeof n?n(e):U||{}:F}},{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:(F=c(o().mark((function e(t,n){return o().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 F.apply(this,arguments)})},{key:"cancel",value:(U=c(o().mark((function e(){return o().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 U.apply(this,arguments)})},{key:"getPreLoadData",value:(n=c(o().mark((function e(t){return o().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=c(o().mark((function e(){return o().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 Qi.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}}]),i}(Qt),li="TOP",ri="FEED";function ai(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],U={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,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(U):"audio"!==n.MediaType&&"audio"!==n.FileType||e.dashOpts.dynamic_video.dynamic_audio_list.push(U)}}function di(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,U=0;U<n.length;U++){var F,Q,i,l=n[U];if(l.vtype.toUpperCase()===dn.DASH)l.main_url=null===(F=l.url[0])||void 0===F?void 0:F.src,l.backup_url_1=null===(Q=l.url[1])||void 0===Q?void 0:Q.src,l.fallback_url=null===(i=l.url[2])||void 0===i?void 0:i.src,l.codec_type="bytevc1"===l.codecType?"h265":l.codecType,"video"===l.mediaType&&t.dynamic_video_list.push(l),"audio"===l.mediaType&&t.dynamic_audio_list.push(l)}}function oi(e,t){var n;t.selectedIdx=0;var U=null===(n=e[e.selectedIdx])||void 0===n?void 0:n.audioFileId;if(!U)return 0;for(var F=0;F<t.length;F++)if(t[F].fileId===U)return F;return 0}var si=["app_id","trackerUrl","sid","task_type"],Bi="close",ci="open",Ri="forbidden",Vi=1,ui=0,hi=1;var Zi={enterMinBuffer:10,minDuration:25,openPreloadPCDN:!1,outMaxBuffer:5,openPCDN:!1,trackerUrl:"https://vc-gate.ndcpp.com/sdk/get_peer",withReferer:1},Si=function(){function e(t,n,U,F,Q,i){R(this,e),this._pcdnNodes=null,this._cachedPcdn={},this._PCDNState=Bi,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._pcdnConfig=Object.assign({},Zi,t),this._isOpenPCDN=n,this.updateConfig({vid:F,duration:U}),this._player=Q,this._tag=i}var t,n,U,F,Q,i;return u(e,[{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;(function(e){return/^http(s)?:\/\/.+/.test(e)})(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:(i=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a,s,B,c,R,V;return o().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(U=t.bitrate,!(F=this._cachedPcdn[U])){e.next=12;break}if(Q=F.pcdnNodeList,i=F.pcdnTraceInfo,!(Q&&Q.length>0&&i)){e.next=12;break}return this._pcdnTraceInfo=i,e.abrupt("return");case 12:return l=this._pcdnConfig,r=l.app_id,a=l.trackerUrl,s=l.sid,B=l.task_type,c=J(l,si),R=t.file_id||t.fileId,V=this._createFileInfo(t),this._bitrate2file[t.bitrate]=R,this._pcdn?(pt.log(this._tag,"resetTrackeArgs"),this._pcdn.resetTrackeArgs()):this._pcdn=new VU(d({productConfig:{app_id:r,sid:s,task_type:B||hi},trackerUrl:a},c),this._player,V.bitrate,V.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 i.apply(this,arguments)})},{key:"setSetRetryInfo",value:function(e){var t=EU.getHostFromUrl(e);this._retryInfo[t]=!0}},{key:"_updateNodeList",value:function(e,t){var n=this;if(e&&e.nodes){var U,F={pcdnNodeList:e.nodes.filter((function(e){if(!Object.prototype.hasOwnProperty.call(n._retryInfo,EU.getHostFromUrl(null==e?void 0:e.url)))return e})),pcdnTraceInfo:{uri:e.vid,fid:e.fid,trace_id:e.trace_id}},Q=this._bitrate2file[t];if(null!==(U=e.fid)&&void 0!==U&&U.includes(Q))this._cachedPcdn[t]=F,this._pcdnTraceInfo=F.pcdnTraceInfo,pt.log(this._tag,"_updateNodeList",JSON.stringify(this._cachedPcdn));else{var i=8*function(e){return Math.floor(e/8)}(t);i===e.bitrate&&(this._cachedPcdn[t]=F,pt.log(this._tag,"_updateNodeList not file not match cachedFileid",Q,"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!==Ri&&!e){var U;if(this.isUsePCDN(t)){this._isUseCDN=!1;var F=this._getNodeListByBitrate(t);F&&(U=F[0].url,this._lastPCDNUrl!==U&&(this._lastPCDNUrl=U,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(Ri,(function(){}))),this._isUseCDN=!0;return U}this._isUseCDN=!0}}},{key:"isUsePCDN",value:function(e){var t=this._getNodeListByBitrate(e);return this._PCDNState===ci&&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,U=null===(e=this._pcdnConfig)||void 0===e?void 0:e.openPCDN,F=this._pcdnConfig,Q=null===(t=this._pcdn)||void 0===t?void 0:t.getPCDNInBuffer(),i=null===(n=this._pcdn)||void 0===n?void 0:n.getPCDNOutBuffer(),l=Q||(null==F?void 0:F.enterMinBuffer)||(null==F?void 0:F.minBuffer)||-1,r=i||(null==F?void 0:F.outMaxBuffer)||-1;return{PCDNInBuffer:U?l:-1,PCDNOutBuffer:U?r:-1}}},{key:"isOpenPCDN",value:function(e,t,n,U){var F;if(null===(F=this._pcdnConfig)||void 0===F?void 0:F.openPCDN){var Q=this.getPCDNInOUtBuffer(),i=Q.PCDNInBuffer,l=Q.PCDNOutBuffer;e>=i?this._doOpenPCDN(t,U):e<l&&this.updatePCDNState(Bi,n)}}},{key:"_emptyCancel",value:function(){}},{key:"_doOpenPCDN",value:(Q=c(o().mark((function e(t,n){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.updatePCDNState(ci,this._emptyCancel),null===(U=this._pcdn)||void 0===U||U.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 Q.apply(this,arguments)})},{key:"openPCDNForce",value:(F=c(o().mark((function e(t,n){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===(U=this._pcdnConfig)||void 0===U?void 0:U.openPCDN){e.next=3;break}return e.abrupt("return");case 3:return this._PCDNState=ci,e.next=6,this.checkPCDN(n);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return F.apply(this,arguments)})},{key:"updatePCDNState",value:(U=c(o().mark((function e(t,n){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t!==Ri){e.next=5;break}this._PCDNState=t,pt.log(this._tag,"updatePCDNState",Ri),e.next=16;break;case 5:if(this._PCDNState===Ri||this._PCDNState===t){e.next=16;break}if(this._isUseCDN||t!==Bi||this._PCDNState===Bi){e.next=14;break}return this._PCDNState=t,pt.log(this._tag,"updatePCDNState",Bi),e.next=11,n();case 11:this._pcdnVVStat.pSCCancelCnt++,e.next=16;break;case 14:this._PCDNState=t,pt.log(this._tag,"updatePCDNState",t);case 16:case"end":return e.stop()}}),e,this)}))),function(e,t){return U.apply(this,arguments)})},{key:"getPCDNNode",value:(n=c(o().mark((function e(t,n){var U,F,Q,i,l,r,a,d;return o().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,F=n.mediaType,Q=this._lastfetchNodeTime[F]||0,!((i=Date.now())-Q<this._pcdn.options.NULLNodeTimeStep)){e.next=8;break}return e.abrupt("return");case 8:return this._lastfetchNodeTime[F]=i,l=this._getPCDNReqIdBitrate(this._vid,t),r=this._createFileInfo(n),e.next=13,this._pcdn.fetchPCDNNode(null,r,l);case 13:if(a=e.sent,d=this._getPCDNReqIdBitrate(this._vid,t),null==a||!a.req_id||d===a.req_id){e.next=18;break}return pt.log("getPCDNNode is not match curDefinition reqId",l,", pcdnRet.req_id",a.req_id),e.abrupt("return");case 18:a&&this._updateNodeList(a,t),this._pcdnVVStat.try_req_node+=1,this._pcdnVVStat.req_node_succ+=1,this._pcdnVVStat.has_ret_node+=(null==a||null===(U=a.nodes)||void 0===U?void 0:U.length)>0?1:0,e.next=28;break;case 24:e.prev=24,e.t0=e.catch(2),this._pcdnVVStat.try_req_node+=1,console.log("err",e.t0);case 28:case"end":return e.stop()}}),e,this,[[2,24]])}))),function(e,t){return n.apply(this,arguments)})},{key:"removePCDNNode",value:(t=c(o().mark((function e(t,n){return o().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 pt.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(e,n){return t.apply(this,arguments)})},{key:"pcdnReqCnt",get:function(){var e=VU.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}}}]),e}();var pi=function(){function e(t,n){R(this,e),this._mediaTypeToServiceType={audio:null,video:null},this._useSeparationMode=!1;var U=t.config,F=t.isOpenPCDN,Q=t.videoDuration,i=t.uri,l=U.pcdnConfig,r=U.useSeparationMode;this._useSeparationMode=r,r?(this._mediaTypeToServiceType.video=this._createPCDNService(l,F,Q,i,n,"video_PCDN"),this._mediaTypeToServiceType.audio=this._createPCDNService(l,F,Q,i,n,"audio_PCDN")):this._pcdn=this._createPCDNService(l,F,Q,i,n,"all_PCDN")}var t,n;return u(e,[{key:"openPCDNForce",value:(n=c(o().mark((function e(t,n){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=this._getPCDNService(n.mediaType),e.next=3,U.openPCDNForce(t,n);case 3:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.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,U,F,Q){return new Si(e,t,n,U,F,Q)}},{key:"selectedPCDN",value:function(e,t,n){var U=this._getPCDNService(e);return null==U?void 0:U.selectedPCDN(t,n)}},{key:"isOpenPCDN",value:function(e,t,n,U,F){var Q=this._getPCDNService(e);null==Q||Q.isOpenPCDN(t,n,U,F)}},{key:"setSetRetryInfo",value:function(e,t){var n=this._getPCDNService(e);null==n||n.setSetRetryInfo(t)}},{key:"removePCDNNode",value:(t=c(o().mark((function e(t,n,U){var F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return F=this._getPCDNService(t),e.next=3,null==F?void 0:F.removePCDNNode(n,U);case 3:case"end":return e.stop()}}),e,this)}))),function(e,n,U){return t.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,U={};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 F=this._mediaTypeToServiceType.video.pcdnReqCnt,Q=this._mediaTypeToServiceType.audio.pcdnReqCnt;return Object.keys(F).forEach((function(t){U[t]=e._getValue(t,F)+e._getValue(t,Q)})),U}},{key:"pcdnReqCnt",get:function(){var e,t,n,U,F=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===(U=this._mediaTypeToServiceType.audio)||void 0===U?void 0:U.pcdnVVStat)||{};var Q={},i=["is_try_open","trace_id"],l=null===(e=this._mediaTypeToServiceType.video)||void 0===e?void 0:e.pcdnVVStat,r=null===(t=this._mediaTypeToServiceType.audio)||void 0===t?void 0:t.pcdnVVStat;return Object.keys(l).forEach((function(e){i.includes(e)?Q[e]=l[e]||r[e]:Q[e]=F._getValue(e,l)+F._getValue(e,r)})),Q}},{key:"_getValue",value:function(e,t){return t[e]||0}},{key:"updateConfig",value:function(e,t){this._getPCDNService(e).updateConfig(t)}}]),e}(),Ji=function(e){Z(a,e);var t,n,U,F,Q,i,l,r=W(a);function a(e,t){var n;return R(this,a),(n=r.call(this,e,t))._loader=new yi({loaderCount:1,loaderType:Ye},e,"preloader"),n._loader.on(Bn,(function(t){if((null==t?void 0:t.len)>0){var U,F,Q=(null==t||null===(U=t.priOptions)||void 0===U?void 0:U.type)||cn,i=Math.round(8*t.len*1e3/t.time/1024),l=null==t?void 0:t.priOptions.extData,r=l.cacheKey,a=null===(F=n._pendingItem)||void 0===F?void 0:F.duration,d={vid:l.vid,loadType:Q,size:t.len,speed:i,cacheKey:r,vtype:dn.DASH,duration:a,bitrate:l.bitrate,range:t.range,mediaType:l.mediaType,format:dn.DASH,segmentDuration:null==l?void 0:l.segmentDuration};e.bwEventEmit(d)}})),n.options=t,n._pendingTask=null,n}return u(a,[{key:"_setItem",value:(l=c(o().mark((function e(t,n){var U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.vtype=dn.DASH,e.next=3,this.preloadManager.getItem(t,!0);case 3:(U=e.sent)?(F=Object.assign({},U,n),F=EU.combinePreloadData(F),this.preloadManager.setItem(t,F,!0)):this.preloadManager.setItem(t,n,!0);case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return l.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 U={dashOpts:e.payload};ai(U),n=U.dashOpts.dynamic_video}if(Array.isArray(n)){var F={dashOpts:{Data:e,dynamic_video:e}};di(F),n=F.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:(i=c(o().mark((function e(t,n,U,F){var Q,i,l,r,a,d,s;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Q=t.mediaList.video||[],i=t.mediaList.audio||[],l=[],i&&i.length>0&&(r=this.makeInitBaseSegemntRequest(t,n.duration,"audio",i.selectedIdx,void 0,n.vid),l.push(r)),Q&&Q.length>0&&(a=this._calVideoItemIdx(Q,F.bandwidth)||0,d=Q[a].definition,s=this.makeInitBaseSegemntRequest(t,n.duration,"video",a,d,n.vid),l.push(s)),e.next=7,Promise.all(l);case 7:e.sent.forEach((function(e){"video"===e.data.mediaType&&(e.data.orgDefinition=F.orgDefinition),U[e.key]=e.data}));case 9:case"end":return e.stop()}}),e,this)}))),function(e,t,n,U){return i.apply(this,arguments)})},{key:"start",value:(Q=c(o().mark((function e(t,n){var U,F,Q,i,l,r,a,s,B,c,R,V,u,h,Z,S,p,J,m,W,k,E,y,f,b,v,T,C,g,D,X,L,I,G,M,Y,w,K,_,j=this;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l=Promise.withResolvers(),r=l.resolve,a=l.promise,s={},this._pendingTask={resolve:r,data:t,map:s},B=new x,c=this._getDashContext(t),R=new bQ("anytext",c,this),V=this._getStartContext(),u=function(){V.mediaInfos.dynamic_video_list=R.mediaList.video||[],V.mediaInfos.dynamic_audio_list=R.mediaList.audio||[],B.resolve(V)},R.once("ready",u),R.init(),e.next=12,B;case 12:if(this._pendingTask){e.next=15;break}return r({remove:!this.stepwise}),e.abrupt("return",a);case 15:if(h=new x,Z=V.mediaInfos,S=this._getIdx(Z.dynamic_video_list,n||t.defaultDefinition),p=Z.dynamic_video_list[S]||Z.dynamic_video_list[0],Z.dynamic_video_list[S]&&R.mediaList.audio&&Z.dynamic_audio_list.length>0&&(R.mediaList.video.selectedIdx=S,J=oi(R.mediaList.video,R.mediaList.audio),pt.log("audio definition preload",J),R.mediaList.audio.selectedIdx=J),t.dashType=R.dashType,null===(U=this.options)||void 0===U||null===(F=U.pcdnConfig)||void 0===F||!F.openPreloadPCDN||null===(Q=this.options)||void 0===Q||null===(i=Q.pcdnConfig)||void 0===i||!i.openDASHPreloadPCDN||"segment_template"===R.dashType){e.next=37;break}if(m=this.options.pcdnConfig,!((W=c.dynamic_video.dynamic_video_list.filter((function(e){return e.definition===p.definition})))&&W.length>0)){e.next=37;break}if(k=W[0],E=k.duration,y=k.uri,this._pcdn?this._pcdn.updateConfig("video",{vid:y,duration:E}):(f={pcdnConfig:m},this._pcdn=new pi({config:f,isOpenPCDN:!0,videoDuration:E,uri:y},null)),!Z.dynamic_video_list[S]){e.next=31;break}return p.bitrate||(p.bitrate=p.bandwidth),e.next=31,this._pcdn.openPCDNForce(p.bitrate||p.bandwidth,d({mediaType:"video"},p));case 31:if(!(R.mediaList.audio&&Z.dynamic_audio_list.length>0)){e.next=37;break}return b=R.mediaList.audio,(v=b[b.selectedIdx]).bitrate||(v.bitrate=v.bandwidth),e.next=37,this._pcdn.openPCDNForce(v.bitrate||v.bandwidth,d({mediaType:"audio"},v));case 37:if(this._pendingItem=p,this._pendingItem.duration||(this._pendingItem.duration=t.duration),T={bandwidth:p.bitrate||p.bandwidth,time:t.startTime||0,orgDefinition:p.orgDefinition},C=[],e.prev=41,L=void 0===t.video||0===(null===(g=t.video.segments)||void 0===g?void 0:g.length),void 0===t.stepIdx&&(t.stepIdx=0),void 0===t.steps&&(t.steps=[0]),0!==t.stepIdx&&!L){e.next=60;break}if("segment_template"!==R.dashType){e.next=51;break}this._calRequests(R,T,h,t,!0),h.resolve(),e.next=58;break;case 51:if(0!==t.stepIdx){e.next=57;break}return e.next=54,this._cacheInitSegments(R,t,s,T);case 54:this._calRequests(R,T,h,t),e.next=58;break;case 57:h.resolve([]);case 58:e.next=61;break;case 60:h.resolve([]);case 61:return e.next=63,h;case 63:if(C=e.sent,0===(I=this.stepwise?t.stepIdx:0)&&this._setItem(t,s),this._pendingTask){e.next=69;break}return r({remove:!this.stepwise}),e.abrupt("return",a);case 69:G=[null===(D=t.video)||void 0===D?void 0:D.segments[I],null===(X=t.audio)||void 0===X?void 0:X.segments[I]],M=(C||[]).concat(G).filter((function(e){return Boolean(e)})),Y=[],w=N(M),e.prev=73,_=o().mark((function e(){var n,U,F,Q,i;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=K.value,U=n.url,F=n.range,Q=n.extData,i=j._getData(U,F,Q).then((function(e){if("video"===e.mediaType&&(e.orgDefinition=T.orgDefinition),!e.fromCache){var n=Q.cacheKey;s[n]=e,j._setItem(t,s)}})),Y.push(i);case 4:case"end":return e.stop()}}),e)})),w.s();case 76:if((K=w.n()).done){e.next=80;break}return e.delegateYield(_(),"t0",78);case 78:e.next=76;break;case 80:e.next=85;break;case 82:e.prev=82,e.t1=e.catch(73),w.e(e.t1);case 85:return e.prev=85,w.f(),e.finish(85);case 88:return e.next=90,Promise.all(Y);case 90:e.next=95;break;case 92:e.prev=92,e.t2=e.catch(41),console.warn&&console.warn("catch no reqeuset",e.t2);case 95:return e.prev=95,r({remove:!this.stepwise}),e.finish(95);case 98:return this._pendingTask=null,e.abrupt("return",a);case 100:case"end":return e.stop()}}),e,this,[[41,92,95,98],[73,82,85,88]])}))),function(e,t){return Q.apply(this,arguments)})},{key:"_getIdx",value:function(e,t){var n=0;return e.forEach((function(e,U){e.definition===t&&(n=U)})),n}},{key:"_calRequests",value:function(e,t,n,U){var F=arguments.length>4&&void 0!==arguments[4]&&arguments[4],Q=[],i=t.bandwidth,l=e.mediaList.video||[],r=e.mediaList.audio||[],a=U.vid,d=e.videoCodecType;if(r&&r.length>0){var o=r.selectedIdx;r[o].codec_type=d;var s=this._calUrls(r[o],"audio",a,null,F,U);Q=Q.concat(s)}if(l&&l.length>0){var B=l[this._calVideoItemIdx(l,i)||0];B.codec_type=d;var c=this._calUrls(B,"video",a,B.definition,F,U);Q=Q.concat(c)}Q.length,n.resolve(Q)}},{key:"_getRange",value:function(e,t){var n,U,F,Q,i,l=e.mediaSegments,r=t.steps[0]+0,a=[],d=N(l);try{for(d.s();!(i=d.n()).done;){var o=i.value,s=o.endRaw;if(o.startRaw<=r&&r<=s){F=o,Q=o.range;break}}}catch(b){d.e(b)}finally{d.f()}var B="segment_template"===t.dashType;if(B&&(Q=[]),(null===(n=t.steps)||void 0===n?void 0:n.length)>0&&(null===(U=t.steps)||void 0===U?void 0:U[0])>0&&!B){var c,R=[],V=N(t.steps);try{for(V.s();!(c=V.n()).done;){var u=c.value;if(u>=F.endRaw){R.push(F.endRaw);break}R.push(u)}}catch(b){V.e(b)}finally{V.f()}var h=void 0===this.options.needfixSizeSegment||this.options.needfixSizeSegment;h&&R.length>0&&R[R.length-1]<F.endRaw&&(R.push(F.endRaw),pt.log("repload change steps"));for(var Z=Q[0],S=0,p=0,J=R;p<J.length;p++){var m,W=J[p],k=Z,E=h?S===R.length-1:W>=F.endRaw;S++;var y=Math.floor(W*e.bandwidth/8)+Q[0]+1,f=E?null===(m=F.range)||void 0===m?void 0:m[1]:y-1;Z=f+1,Q=[k,f],a.push({item:F,range:Q,segmentDuration:W,rangeEnd:F.range[1]})}t.steps=R}else a.push({item:F,range:Q,segmentDuration:F.endRaw-F.startRaw,rangeEnd:F.range[1]});return a}},{key:"_calUrls",value:function(e,t,n,U,F,Q){var i=[];if(e){var l=e,r=l.avg_bitrate||l.bandwidth||l.bitrate,d=a.vtype;Q[t]||(Q[t]={initSegment:null,segments:[]});var o=Q[t];if(F){var s=l.initSegmentRange||[],B={url:l.initSegment,range:s,extData:{cacheKey:EU.generateRequestUniqueKey({vid:n,mediaType:t,codecType:l.codec_type,vtype:d,bitrate:r,fileId:l.fileId,range:s}),vid:n,vtype:d,isInitSegment:!0,mediaType:t,useUrlRange:EU.validateUrlRange(this.options.url_range_domains,l.initSegment),codecType:l.codec_type,range:s,bitrate:r,segmentDuration:0,checkPreload:!0}};i.push(B),o.initSegment=B}var c,R=N(this._getRange(e,Q));try{for(R.s();!(c=R.n()).done;){var V=c.value,u=V.item,h=V.range,Z=V.segmentDuration,S=V.rangeEnd,p=EU.generateRequestUniqueKey({vid:n,mediaType:t,codecType:l.codec_type,vtype:d,start:u.start,end:u.end,definition:U,bitrate:r,fileId:l.fileId,range:h});o.segments.push({url:u.url,range:h,extData:{cacheKey:p,vid:n,vtype:d,isInitSegment:!1,mediaType:t,useUrlRange:EU.validateUrlRange(this.options.url_range_domains,u.url),codecType:l.codec_type,range:h,bitrate:r,segmentDuration:Z,checkPreload:!0,rangeEnd:S}})}}catch(J){R.e(J)}finally{R.f()}}return i}},{key:"_calStartEnd",value:function(e,t){for(var n=-1,U=0;U<e.length;U++){var F=e[U],Q=t||0;if(F.start>=Q&&Q<F.end){n=U;break}}return-1===n&&(n=0),n}},{key:"_calVideoItemIdx",value:function(e,t){for(var n=0;n<e.length;n++){var U=e[n];if(U&&U.bandwidth===t)return n}return null}},{key:"_getData",value:(F=c(o().mark((function e(t,n,U){var F,Q,i,l,r,d,s,B,c,R,V,u;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,Q=t,this._pcdn&&(i=U.mediaType,l=U.bitrate,(r=this._pcdn.selectedPCDN(i,!1,l))&&(t=r,U.isPCDN=!0,pt.log("preload _pcdn",r,U.mediaType,U.bitrate))),U.reqOptions=this.getRequestOption(null===(F=this._pendingTask)||void 0===F?void 0:F.data.reqOptions),e.next=6,this._loader.load(U.mediaType,t,n,U,!0);case 6:if(d=e.sent,!U.isPCDN||"error"!==d.res){e.next=13;break}return U.isPCDN=!1,e.next=11,this._loader.load(U.mediaType,Q,n,U,!0);case 11:s=e.sent,d=s;case 13:return c=(B=d).res,R=B.headers,V=B.status,u=B.fromCache,e.abrupt("return",{res:c,headers:R,status:V,fromCache:u,memory:c.byteLength,vtype:a.vtype,mediaType:U.mediaType,duration:U.segmentDuration,orgDefinition:void 0,range:n,rangeEnd:U.rangeEnd});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 F.apply(this,arguments)})},{key:"makeInitBaseSegemntRequest",value:function(e,t,n,U,F,Q){var i=this,l=new x,r=e.mediaList[n][U],d=[r.initSegmentRange[0],r.sidxRange[1]],o=r.initSegment,s=e.videoCodecType,B=r.avg_bitrate||r.bandwidth||r.bitrate,c=a.vtype,R={checkPreload:!0,mediaType:n,vid:Q,definition:F,useUrlRange:!1,timeout:-1,isInitSegment:!0,bitrate:B,codecType:s,cacheKey:EU.generateRequestUniqueKey({vid:Q,codecType:s,mediaType:n,definition:F,vtype:c,bitrate:B,fileId:r.fileId,range:d})};return this._getData(o,d,R).then((function(F){var a=F.res;a&&"error"!==a?i.handleInitData(a,d,r.sidxRange).then((function(i){if(i.sidxSegmentRes&&e.getSidx(i.sidxSegmentRes,n,U,t),EU.validateFragment(i.initSegmentRes,d)){var r=Object.assign({},F,{vid:Q,mediaType:n,isInitSegment:!0,vtype:c});l.resolve({key:R.cacheKey,data:r})}else l.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})).catch((function(){l.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})):l.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})).catch((function(){l.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})),l}},{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,U=new x;if(e instanceof ArrayBuffer){var F=0===t.length?e:e.slice(t[0],t[1]+1),Q=null===n?null:e.slice(n[0],n[1]+1);U.resolve({initSegmentRes:F,sidxSegmentRes:Q})}else;return U}},{key:"cancel",value:(U=c(o().mark((function e(){var t,n,U;return o().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&&(this._pendingTask.resolve({remove:!this.stepwise}),t=this._pendingTask,n=t.data,U=t.map,Object.values(U).length>0&&this._setItem(n,U),this._pendingTask=null);case 4:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=EU.generateRequestUniqueKey(e),U=this.preloadManager.getItemSync(e,t),F=this.preloadManager.getLoadInfoAndDelete(n);return d(d({cacheKey:n},U),{},{loadInfo:F})}},{key:"getPreLoadData",value:(n=c(o().mark((function e(t){var n,U,F,Q,i=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=i.length>1&&void 0!==i[1]&&i[1],U=EU.generateRequestUniqueKey(t),e.next=4,this.preloadManager.getItem(t,n);case 4:return F=e.sent,Q=this.preloadManager.getLoadInfoAndDelete(U),e.abrupt("return",d(d({cacheKey:U},F),{},{loadInfo:Q}));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"destroy",value:(t=c(o().mark((function e(){var t;return o().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 t.apply(this,arguments)})},{key:"parseKey",value:function(e){var t,n,U=N(e);try{for(U.s();!(n=U.n()).done;){var F=n.value,Q=Qi.parseKey(F);"audio"===Q.mediaType?Q.hasAudio=!0:(Q.hasVideo=!0,t=Object.assign({},t,Q))}}catch(i){U.e(i)}finally{U.f()}return t}},{key:"taskInProgress",get:function(){return!!this._pendingTask.resolve&&!!this._pendingTask.data}}],[{key:"vtype",get:function(){return dn.DASH}},{key:"isUniqueCache",value:function(e){return!!e&&4===Object.keys(e).length}},{key:"generateUniqueKey",value:function(e){return EU.generateRequestUniqueKey(e)}}]),a}(ii);function mi(e){if(window.Headers&&e instanceof Headers){var t,n={},U=N(e);try{for(U.s();!(t=U.n()).done;){var F=t.value;n[F[0]]=F[1]}}catch(Q){U.e(Q)}finally{U.f()}return n}return e}Ji.encryptUtils=rn;var Wi={loaderCount:1,loaderType:Me,onProcessMinLen:5120,enableDynamicMinLen:!0};function ki(e,t){if(e.length>0)for(var n=0,U=!0,F=0;F<e.length;F++){var Q=e[F];if(Q>t){U=!1;break}if((n+=Q)/e.length>t&&(U=!1),!U)return!1}return!0}var Ei=0,yi=function(){function e(t,n){var U=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";R(this,e),fF(this),this._config=Object.assign({},Wi,d({responseType:"arraybuffer"},t)),this._loaderCount=1,this._config.loaderCount>1&&console&&console.warn("only support loaderCount 1"),this._loaderType=this._config.loaderType||Me,this._enableDynamicMinLen=this._config.enableDynamicMinLen,this._preloadManager=n,t.openLog&&fe.enable(),this._videoLoaders=[],this._audioLoaders=[],this._videoIdx=0,this._audioIdx=0;for(var Q=0;Q<this._loaderCount;Q++){var i=new fe("".concat(F,"VideoLoader_").concat(Q),this._config.vid),l=new fe("".concat(F,"AudioLoader_").concat(Q),this._config.vid),r=new Bt(d(d({},this._config),{},{logger:i,loaderType:this._loaderType})),a=new Bt(d(d({},this._config),{},{logger:l,loaderType:this._loaderType}));this._videoLoaders.push(r),this._audioLoaders.push(a),this._videoSpeeds=[],r.on(tt,(function(e){Ei=e.speed,U._cacheSpeed(e)})),a.on(tt,(function(e){Ei=e.speed,U._cacheSpeed(e)})),this._videoReqCosts=[]}this._moofVideoLoader=new Bt(d(d({},this._config),{},{loaderType:this._loaderType})),this._moofAudioLoader=new Bt(d(d({},this._config),{},{loaderType:this._loaderType})),this._isSupportUrlRange="fetch"===this._loaderType,this._preloadCacheDatas={},this._reqCost={cdn:{count:0,avg:0},pcdn:{count:0,avg:0}}}var t,n,U,F;return u(e,[{key:"_cacheProgress",value:function(e,t){var n=t[e];if(n&&n.range&&n.done){var U=EU.generateRequestUniqueKey(d(d({},n.extData),{},{range:n.range}));if(!U)return;this._preloadCacheDatas[U]={duration:n.extData.segmentDuration,vtype:dn.DASH,res:n.data.buffer,mediaType:e,memory:n.data.byteLength,range:n.range,rangeEnd:n.range[1]},pt.log("cacheProgress",U,JSON.stringify(this._preloadCacheDatas[U]))}}},{key:"cachePreloadData",value:(F=c(o().mark((function e(t,n){var U,F,Q;return o().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=Ji.vtype,U=Object.keys(this._preloadCacheDatas).length,!(this._preloadManager&&U>0)){e.next=11;break}return e.next=9,this._preloadManager.getItem(t,!0);case 9:(F=e.sent)?(Q=Object.assign({},F,this._preloadCacheDatas),Q=EU.combinePreloadData(Q),this._preloadManager.setItem(t,Q,!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 F.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(!ki(this._videoReqCosts,4))return!1;var U=this._videoSpeeds.map((function(t){return 1e3*t*5/e}));if(!ki(U,4))return!1;if(!t&&0===U.length)try{try{var F=parseFloat(X.getItem(Wt))||0;if(0===F||1e3*F*5/e>4)return!1}catch(Q){}}catch(Q){}return!0}},{key:"_cacheSpeed",value:function(t){var n,U=t.speed;e.historySpeed.length>=20&&e.historySpeed.shift(),e.historySpeed.push(U),this.emit(tt,d({speed:U,type:(null==t||null===(n=t.priOptions)||void 0===n?void 0:n.type)||Kt},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:(U=c(o().mark((function e(t,n,U,F){var Q,i,l,r,a,s,B,c,R,V,u,h,Z,S,p,J,m,W,k,E,y,f,N,b,v,T,C,g=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Q=g.length>4&&void 0!==g[4]&&g[4],i=g.length>5&&void 0!==g[5]?g[5]:null,l=g.length>6&&void 0!==g[6]?g[6]:null,r=g.length>7&&void 0!==g[7]?g[7]:null,a=g.length>8&&void 0!==g[8]?g[8]:null,F.vtype=dn.DASH,F.isPreload=Q,F.range=U,s={start:F.start,end:F.end,bandwidth:F.bandwidth||F.bitrate,sequence:F.idx,fps:F.fps,mediaType:t,selectedIdx:F.selectedIdx,definition:F.definition,range:U.concat()},B=this._config.onProcessMinLen,this._enableDynamicMinLen&&s.bandwidth&&i&&(c=0===F.start?.5:1,B=Math.floor(s.bandwidth*c/8)),!this._preloadManager||!F.checkPreload){e.next=25;break}if(R=EU.nowTime(),V=null,!this._preloadManager.supportSync()){e.next=18;break}V=this._preloadManager.getPreLoadDataSync(F),e.next=21;break;case 18:return e.next=20,this._preloadManager.getPreLoadData(F);case 20:V=e.sent;case 21:if(!(V&&V.res instanceof ArrayBuffer)){e.next=25;break}return pt.log("changeState preload hit cache",V.cacheKey,"cost",EU.nowTime()-R,"ms"),i&&i(V.res,!0,{range:U,fromCache:!0},null,F),e.abrupt("return",{res:V.res,headers:V.headers,status:V.status,fromCache:!0,selectedIdx:F.selectedIdx,extData:s,orgDefinition:V.orgDefinition,cacheKey:V.cacheKey,duration:V.duration});case 25:if(u=F.isPCDN,h=!i||this._isSupportUrlRange,Z=h&&(this._config.useUrlRange||F.useUrlRange||!1)&&!u,S=n,Z&&U&&U.length>1&&(S="".concat(n+(n.split("?")[1]?"&":"?"),"range=").concat(U[0],"-").concat(U[1])),U&&0!==U.length&&!Z||(U=void 0),p=performance.now(),pt.log("load res start:",JSON.stringify(F),"startTime",p,"userUrlRange",Z,"onProgress",!!i,"onProcessMinLen",B),e.prev=33,m=this._getLoader(t,F)){e.next=37;break}return e.abrupt("return");case 37:return W=this._config.headers||{},k=F.reqOptions||{},e.next=41,m.load(S,d({range:U,onProgress:i,selectedIdx:F.selectedIdx,sequence:F.idx,initSegment:F.initSegment,onProcessMinLen:B,onCancel:l,timeout:r,onTimeout:a,headers:u?Object.assign({},W,{"X-Origin-Server-Host":F.cdnHost}):W,priOptions:{type:u?_t:Kt,extData:F}},k));case 41:if(E=e.sent){e.next=44;break}return e.abrupt("return",null);case 44:return"video"===t&&this._addCost((performance.now()-p)/1e3),y=E.data,f=E.response,N={res:y instanceof Uint8Array?y.buffer:y,headers:mi(f.headers),status:f.status,duration:F.end-F.start||0,memory:y.byteLength,vtype:Ji.vtype,mediaType:t,costTime:0,range:U,isInitSegment:F.initSegment},b=performance.now()-p,pt.log("load res finish: ",JSON.stringify(F),"cost time",b,"ms","range",null===(J=N.headers)||void 0===J?void 0:J["content-range"]),this._calCostTime(u,b),F.checkPreload&&!y.done&&(v=EU.generateRequestUniqueKey(F),this._preloadCacheDatas[v]=N),e.abrupt("return",d(d({},N),{},{extData:s,selectedIdx:F.selectedIdx,isPCDN:u,costTime:b,url:n}));case 54:return e.prev=54,e.t0=e.catch(33),pt.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:mi(null===(C=e.t0.response)||void 0===C?void 0:C.headers),error:e.t0,isPCDN:u,url:S,bitrate:F.bandwidth||s.bandwidth,costTime:-1});case 58:case"end":return e.stop()}}),e,this,[[33,54]])}))),function(e,t,n,F){return U.apply(this,arguments)})},{key:"_getLoader",value:function(e,t){var n="video"===e;if(t.moof)return n?this._moofVideoLoader:this._moofAudioLoader;if(n){var U=this._videoLoaders[this._videoIdx];return this._videoIdx++,this._videoIdx>=this._videoLoaders.length&&(this._videoIdx=0),U}var F=this._audioLoaders[this._audioIdx];return this._audioIdx++,this._audioIdx>=this._audioLoaders.length&&(this._audioIdx=0),F}},{key:"cancel",value:(n=c(o().mark((function e(t){var n;return o().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._moofVideoLoader.cancel();case 16:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"cancelLoaders",value:(t=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=N(t),e.prev=1,n.s();case 3:if((U=n.n()).done){e.next=9;break}return F=U.value,e.next=7,F.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 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 Ei}},{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}}]),e}();yi.historySpeed=[];var fi=function(){function e(t,n,U,F){R(this,e),this.adaptRangeRes=[],F&&(this.adaptRange=new an(t,n,U,F))}return u(e,[{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=[]}}]),e}(),Ni=xF.EVENT_EME.CDM_LICENSE_ERROR,bi=xF.EVENT_EME.CDM_LICENSE_SUCCESS,vi=function(){function e(t,n,U){var F,Q,i=this;R(this,e),fF(this),this._pluginInst=n,this.__dash__=U;var l=n.config,r=n.player,a=n._kernal;this.kernal=a,this.mse=void 0,this.config=l,this.player=r,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.segment_request={video:[],audio:[]},this._initStates={emitEncrypt:!1};var d=this.config,o=d.loader,s=d.reqOptions;this.loader=new yi(Object.assign({openLog:ct},o,s),this._pluginInst.preloadManager),this.loader.on(tt,(function(e){i.player.emit(tt,e)})),this._vTrack=null,this._aTrack=null,this._onLoadingItems=[],this._videoEncryption=!1,this._audioEncryption=!1;var B=this.config.duration||this.config.dashOpts.video_duration||this.config.dashOpts.dynamic_video.video_duration;this.config.duration=B;var c="segment_base"===(null===(F=this.config.dashOpts)||void 0===F||null===(Q=F.dynamic_video)||void 0===Q?void 0:Q.dynamic_type);this._vid=l.vid;var V=this.player.config.uri||l.vid;this._pcdnScv=new pi({config:l,isOpenPCDN:c,videoDuration:B,uri:V},this.player),this._dynamicBufferService=new fi(this.player,0,B,this.config.adaptRange),this._audioMetaReadyPromise=null,this._videoMetaReadyPromise=null,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:[]}}var t,n,U,F,Q,i,l;return u(e,[{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(){var e,t;this._optionDataLenInfo={video:(e={},h(e,Vi,{size:0}),h(e,ui,{size:0}),e),audio:(t={},h(t,Vi,{size:0}),h(t,ui,{size:0}),t)}}},{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=c(o().mark((function e(t,n,U){var F,Q,i,l,r,a,d;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=(null===(F=this.player)||void 0===F?void 0:F.currentTime)||-1,l=n.startRaw<i&&i<n.endRaw||n.startRaw>i,e.next=4,null===(Q=this.loader)||void 0===Q?void 0:Q.cancel(t);case 4:l?this._appendBufferDelta&&((d=this._appendBufferDelta[t]).range&&n.range&&n.range[0]<d.range[1]&&d.range[1]<n.range[1]&&(n.extRange=[d.range[1],n.range[1]]),pt.log("_abortAndRemove",t,"start",n.startRaw,"end",n.endRaw,"extRange",JSON.stringify(n.extRange),"range",JSON.stringify(n.range),U),this._appendBufferDelta[t]=this._genEmptyBufferDelta()):(null===(r=this.__dash__)||void 0===r||r.abort(t),null===(a=this.__dash__)||void 0===a||a.clearBufferDirect(t,n.start,n.end),this.updateItemState(n),pt.log("_abortAndRemove",t,"start",n.startRaw,"end",n.endRaw,"from",U));case 5: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;if(t)for(var U=Object.keys(this._appendBufferDelta),F=EU.nowTime(),Q=0;Q<U.length;Q++){var i=U[Q],l=this._appendBufferDelta[i],r=l.delta,a=l.requestDelta,d=l.item;if(l.isPCDN&&d){var o=this.player.playbackRate,s=r>0&&F-r>n,B=a>0&&F-a>1e3*(d.end-d.start)/o;(s||B)&&(pt.log("_abortAndRemove PCDN request cancel, progressiveTimeout",s,"requestTimeout",B,"segDuration",d.end-d.start,"s"),this.player&&this.player.emit("log",{type:"oneevent",end_type:s?"progressive_timeout":"pcdn_request_timeout"}),this._abortAndRemove(i,d,"pcdn onTimeUpdate"))}}}}},{key:"getData",value:(i=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a,d,s,B,c,R,V,u,h,Z,S,p,J,m,W=this,k=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=k.length>1&&void 0!==k[1]?k[1]:[],U=k.length>2?k[2]:void 0,Q=k.length>4&&void 0!==k[4]&&k[4],i=k.length>5&&void 0!==k[5]?k[5]:null,l=k.length>6&&void 0!==k[6]?k[6]:null,r=k.length>7&&void 0!==k[7]?k[7]:null,a=k.length>8&&void 0!==k[8]?k[8]:null,d=(F=k.length>3&&void 0!==k[3]?k[3]:{}).isPCDN,s=d?Vi:ui,F.url=t,e.next=13,this.loader.load(U,t,n,F,Q,i?function(e,t,Q,l){var r=s;if(W._optionDataLenInfo){var a=W._optionDataLenInfo[U][r];if(e&&e.byteLength&&(a.size+=e.byteLength,a.range=n,a.extData=F),t&&!Q.fromCache){var d=n[1]-n[0]+1,o=Date.now()-Q.st;W._emitPrfDataSizeEvent(s,d,U,n,F,0,o),a.size=0,a.range=null,a.extData=null}if(F.checkPreload&&!Q.fromCache){var B=W._progressInfos[U];B.data=ot(B.data,e),B.extData=F,null===B.range?B.range=Q.range:B.range[1]=Math.min((null==n?void 0:n[1])||1/0,Q.range[1]),B.done=t,t&&W.cachePreloadData()}i(e,t,Q,l,F)}}:null,l,r,a);case 13:if(!((B=e.sent)&&B.res instanceof ArrayBuffer)){e.next=20;break}return c=B.res,R=B.headers,V=B.status,u=B.fromCache,h=B.cacheKey,Z=B.orgDefinition,S=B.duration,u?this.emitPreloadHit(h):this._emitPrfDataSizeEvent(s,B.res.byteLength,U,n,F,0,B.costTime),e.abrupt("return",{res:c,headers:R,status:V,fromCache:u,orgDefinition:Z,duration:S});case 20:B&&"error"===B.res&&!this._isAbort(null==B?void 0:B.error)&&this.player&&this.player.emit("source_error",{host:EU.getHostFromUrl(null==B?void 0:B.url),src:null==B?void 0:B.url,errorCode:(null==B?void 0:B.status)||"networkError",message:null==B||null===(p=B.error)||void 0===p?void 0:p.message,range:n,headers:null==B?void 0:B.header,error:{msg:null==B||null===(J=B.error)||void 0===J?void 0:J.message,stack:null==B||null===(m=B.error)||void 0===m?void 0:m.stack}});case 21:return e.abrupt("return",B);case 22:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"_emitPrfDataSizeEvent",value:function(e,t,n,U,F){var Q,i,l,r,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:-1,s=yi.currentSpeed,B=F.fileId,c=F.definition,R=F.adaptItemParam,V=F.bitrate,u=F.first_gop,h=F.segmentDuration,Z=F.start,S=F.end,p=F.url,J=(null===(Q=this.player)||void 0===Q?void 0:Q.config.uri)||(null===(i=this.config)||void 0===i?void 0:i.vid),m="cdn";e===ui?null===(l=this.player)||void 0===l||l.emit("prf_data_size",d(d({vid:this._vid,task_type:1,cdn_size:t,mediaType:n,range:JSON.stringify(U),fileid:B,definition:c,cdn_speed:s},R),{},{emitType:a,bitrate:V,format:"DASH",uri:J,first_gop:u,segmentDuration:h,costTime:o,start:Z,end:S,url:p})):(m="pcdn",null===(r=this.player)||void 0===r||r.emit("prf_data_size",d(d({vid:this._vid,task_type:1,pcdn_size:t,mediaType:n,range:JSON.stringify(U),fileid:B,definition:c,pcdn_speed:s},R),{},{emitType:a,bitrate:V,format:"DASH",uri:J,first_gop:u,segmentDuration:h,costTime:o,start:Z,end:S,url:p})));this._updateLoadInfo(m,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 U=0;U<this.dynamic_video.dynamic_audio_list.length;U++)if(this.dynamic_video.dynamic_audio_list[U].kid){e=this.dynamic_video.dynamic_audio_list[U].kid,t=this.dynamic_video.dynamic_audio_list[U].spade_a,this._audioEncryption=!0;break}return{keyId:e,spade_a:t}}},{key:"init",value:(Q=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a;return o().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(),U=n.keyId,F=n.spade_a,(Q=this).config.usePlaySpade&&(Q.config.secretKey=F),i=Q.config,l=i.secretKey,r=i.drmKeyToken,a=i.playDomain,!(U||l||r&&a)){e.next=18;break}return e.prev=10,e.next=13,this._initSecret(U);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",Q.initDash(t));case 19:case"end":return e.stop()}}),e,this,[[10,15]])}))),function(e){return Q.apply(this,arguments)})},{key:"_handleIncompleSegment",value:function(e,t){var n=this;e.incomplete=!0,n.__dash__&&(n.__dash__._minDuration=Math.min(t,n.__dash__._minDuration))}},{key:"_initSecret",value:function(e){var t=this,n=new x,U=this.config,F=U.secretKey,Q=U.drmKeyToken,i=U.playDomain,l=U.useUnionInfoDRM,r=U.keyTokenExpiredDuration,a=U.sessionId;if(this.player.plugins.drm)return n.resolve(),n;var d=new xF.XGSecretKey({kid:e,getLicenseUrl:this.getLicenseUrl,secretKey:F,vid:this.config.vid||"",useUnionInfoDRM:l,drmKeyToken:Q||this.config.keyToken,keyTokenExpiredDuration:r,playDomain:i,sessionId:a,useEME:this.useEME,intertrustServerURL:this.config.intertrustServerURL});return this._secret=d,d.getLicenseSecret().then((function(e){if(!t._pluginInst)return pt.log("getLicense callback destroy"),void n.reject("getLicense callback destroy");t.config.dashOpts&&t.useEME?(t._initEME(),null==d||d.setOptions(),null==d||d.setupEME(t.player.video)):(t.__dash__.crypto&&t.__dash__.crypto.updateValue(e),t.keyValue=!0),pt.encrypt("getLicense resolve"),n.resolve()})).catch((function(e){pt.log("DRM_ERROR",e),n.reject("catch error"),void 0!==e.status&&t.emit("error",new GF(Se,me.CUSTOM_LICENSE,{url:t.getLicenseUrl,httpCode:e.status,message:"CUSTOM_LICENSE_ERROR"}))})),n}},{key:"_initEME",value:function(){var e=this;if(!xF.checkEMEValid())return this.player.errorHandler(new GF(Ze,me.EME_HIJACK,{message:"EME API被劫持"})),void this.__dash__.destroy();this._secret.on(Ni,(function(t){e.player&&e.player.emit("log",d({type:"oneevent",end_type:Ni,ua:navigator.userAgent},t)),pt.log("EME CDM_LICENSE_ERROR"),e.player.errorHandler(new GF(Se,me.LICENSE,{message:"DRM接口失败".concat(t.data)}))})),this._secret.on(bi,(function(t){e.player&&e.player.emit("log",d({type:"oneevent",end_type:bi,ua:navigator.userAgent},t)),pt.log("EME CDM_LICENSE_SUCCESS")}))}},{key:"_initDefaultDefinition",value:function(){var e=this,t=this,n=t.config,U=this.mpd.mediaList.video,F=n.defaultDefinition?n.defaultDefinition.toString():null,Q=this.player.preloader&&this.player.preloader.getPreloadMetaByVid(t.config.vid),i=!1;if(Q&&Q.definition){F=Q.definition,i=!0;var l=this._pluginInst.preloadManager;if(l&&l.supportSync()){var r=this.mpd.getCodecType(),a=l.getPreLoadDataSync({vid:this._vid,codecType:r,vtype:dn.DASH});delete a.cacheKey,delete a.loadInfo,Object.values(a).forEach((function(t){var n,U,F;!t.isInitSegment&&(null===(n=t.range)||void 0===n?void 0:n.length)>0&&(null===(U=t.range)||void 0===U?void 0:U[1])<t.rangeEnd&&(null===(F=e._preloadSegDatas[t.mediaType])||void 0===F||F.push(t))}))}pt.log("dashDefinition",t.config.vid,"hasPreload",F)}var d=this.player.config;if(!!d.userSelectDefinition&&d.focusUserDefinition&&(F!==d.userSelectDefinition.toString()&&i&&(i=!1,pt.log("dashDefinition",t.config.vid,"hasPreload",F,"change to userSelectDefinition",d.userSelectDefinition)),F=d.userSelectDefinition.toString()),this._pluginInst.bitRateAdapter&&!i){var o=this.player?d.userSelectDefinition:null,s=EU.getBitrateItem(t.config.dashOpts.dynamic_video,this._pluginInst.bitRateAdapter,t.config.dashOpts.dynamic_video.duration,o);if(pt.log("[dashDefinition] onReady BitRateAdapter",t.config.vid,"item",s),s){F=s.definition.toString();var B=t.config.dashOpts.dynamic_video.dynamic_video_list,c=null==B?void 0:B.filter((function(e){return e.definition===s.definition}))[0];c&&(c.fromType=s.fromType,c.orgDefinition=s.orgDefinition,c.type=s.type)}}pt.log("[dashDefinition] onReady",t.config.vid,"video definition",F);var R=!1;F&&U.forEach((function(t,n){t.definition.toString()===F.toString()&&(e.config.defaultDefinition=F.toString(),U.selectedIdx=n,R=!0)})),R||(U.selectedIdx=0),this._selectAudio()}},{key:"_selectAudio",value:function(){var e=this.mpd.mediaList.video,t=this.mpd.mediaList.audio,n=oi(e,t);t.selectedIdx=n,pt.log("audio definition",t.selectedIdx)}},{key:"_initMSE",value:function(){var e=this;this.kernal.setNodeTime("initmse_sbopen");var t,n,U=Date.now(),F=this.mpd.mediaList.audio,Q=this.mpd.mediaList.video,i={};if(this._hasAudio&&(i[Ge.AUDIO]={mimeType:"audio/mp4",codec:'audio/mp4; codecs="'.concat(F[F.selectedIdx].codecs,'"')}),this._hasVideo&&(i[Ge.VIDEO]={mimeType:"video/mp4",codec:'video/mp4; codecs="'.concat(Q[Q.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&&!xF.checkMSEValid())return void this.player.errorHandler(new GF(Ze,me.MSE_HIJACK,{message:"MSE被劫持"}));(n=(t=new Ge(void 0,{openLog:ct})).bindMedia(this.player.video)).then((function(){if(e._pluginInst){e.kernal.setNodeTime("initmse_sbopendone"),e._pluginInst.info({msg:"mse init success",name:"mseInit",startMs:U,profile:!0});try{for(var n=Object.keys(i),F=0;F<n.length;F++){var Q=n[F];t.createSource(Q,i[Q].codec)}}catch(l){pt.log("MSE MSE_MEDIA_TYPES_NOT_SUPPORTED",JSON.stringify({msg:l.message})),e&&e.player&&e.player.errorHandler(new GF(Ze,me.MSE_ADD_SB,{line:329,message:"mse init fail"})),pt.log("mse init error",l,"player destroyed ? ",!(e&&e.player))}}else pt.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,U=this;if(this._hasDestroyed)pt.log("addBuffer destroy");else if(this.mpd){var F=this.mpd.mediaList[t],Q=this.mpd.mediaList[t];if(!(Q.length<1)&&Q[Q.selectedIdx]&&Q[Q.selectedIdx].mimeType){var i=e;if(!i.initSegmentRes)return pt.log("initSegment null, task request error, stop"),void U.emit("error",new GF(Je,GF.SEG_PARSE_ERROR,{message:"wrapperData.initSegmentRes is null"}));U.__dash__&&U.__dash__._appendInitSegment(t,i,Q.selectedIdx).then((function(){var e="video"===t?n._videoMetaReadyPromise:n._audioMetaReadyPromise;e&&(n.kernal.setNodeTime("initSegment ".concat(t," append")),e.resolve()),U.inited=!0;var Q,i=F.selectedIdx;(F.length>0&&(F[i].encrypted||F[i].kid)&&(n._hasEmitEncrypt||(n._hasEmitEncrypt=!0,U._secret&&U._secret.emit(xF.EVENT_EME.ENCRYPTED))),"vod"===U.type)&&(null===(Q=U.__dash__)||void 0===Q||Q.loadData(0),U.emit("start_play"))})).catch((function(e){var t;n._hasCatchAppendError||(n._hasCatchAppendError=!0,null===(t=U.player)||void 0===t||t.errorHandler(new GF(Ze,me.MSE_APPEND_BUFFER,{line:329,message:"mse append error ".concat(e.message?e.message:e)})))}))}}else pt.log("addBuffer mpd empty")}},{key:"initDash",value:(F=c(o().mark((function e(t){var n,U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pluginInst){e.next=3;break}return pt.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"),U=new bQ(t,n.config.dashOpts,n),n.mpd=U,U.init(),e.next=12,U.readyPromise;case 12:return this._onMPDReady(U),e.abrupt("return",this.mse);case 14:case"end":return e.stop()}}),e,this)}))),function(e){return F.apply(this,arguments)})},{key:"_createMoofSegment",value:function(e,t){var n=t.mediaList[e],U=n[n.selectedIdx].firstMoofMdatRange;if(U){var F=new x;e===Ge.VIDEO?this._videoMetaReadyPromise=F:this._audioMetaReadyPromise=F;var Q={codecType:this.mpd.getCodecType(),range:U,url:n[n.selectedIdx].initSegment,idx:1,start:0,moof:!0,checkProload:!0,mediaType:e};this._makeSegmentRequestByItem(Q,e,{},!1,F)}}},{key:"_onMPDReady",value:function(e){var t=this,n=Date.now();if(this._pluginInst){pt.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 U=e.mediaList.video,F=e.mediaList.audio;this._initDefaultDefinition();var Q=!!(U.length>0&&U[U.selectedIdx])&&this.config&&!this.config.dashOpts.audioOnly,i=!!(F.length>0&&F[F.selectedIdx]);this._hasVideo=Q,this._hasAudio=i;var l=this._initMSE();if(l){var r=[],a=this.config?this.config.dashOpts.audioOnly:null;if(this.config&&!a&&U&&U.length>0&&U[U.selectedIdx]&&U[U.selectedIdx].initSegment){var d=this.__dash__._makeInitSegemntRequestWithRetry("video",U.selectedIdx,!0);d.then((function(e){t._addBufferSafe(e,Ge.VIDEO,l)})),r.push(d),this._createMoofSegment(Ge.VIDEO,e)}if(F[F.selectedIdx]&&F[F.selectedIdx].initSegment){var o=this.__dash__._makeInitSegemntRequestWithRetry("audio",F.selectedIdx,!0);o.then((function(e){t._addBufferSafe(e,Ge.AUDIO,l)})),r.push(o),this._createMoofSegment(Ge.AUDIO,e)}Promise.all(r).catch((function(e){t&&t.player&&t.player.errorHandler(e),pt.log("appendInitPromise error",e,"player destroyed ? ",!(t&&t.player))}))}}else pt.log("mpd ready destroy")}},{key:"_addBufferSafe",value:function(e,t,n){var U=this;this.mse.isOpened?this._addBuffer(e,t):n.then((function(){U._addBuffer(e,t)}))}},{key:"seek",value:function(e,t){var n,U,F,Q,i=this,l=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=this,d=this.mpd.seek(e,t,r),o=this.popDynamicBufferServiceRes(),s=null===(n=a.mpd)||void 0===n||null===(U=n.mediaList)||void 0===U?void 0:U.video,B=null===(F=a.mpd)||void 0===F||null===(Q=F.mediaList)||void 0===Q?void 0:Q.audio;if(a.mpd){var c=!!(s.length>0&&s[s.selectedIdx]),R=!!(B.length>0&&B[B.selectedIdx]);if(c&&R&&2*s[s.selectedIdx].mediaDuration<B[B.selectedIdx].mediaDuration)a._hastEmitDurErr||(a._hastEmitDurErr=!0,a.emit("error",new GF(Je,GF.DUR_PARSE_ERROR,{message:"the video.mediaDuration not match audio.mediaDuration"})));else{var V={},u=["video","audio"];u.forEach((function(e){d[e]&&d[e].length>0&&(V[e]=[],d[e].forEach((function(t){var n=t.idx,U=t.start,F=t.end,Q=t.downloaded,i=t.range;V[e].push({idx:n,start:U,end:F,downloaded:Q,range:i})})))})),pt.log("seekResult: time",e,"currentTime",t,JSON.stringify(V)),(a.config.dashOpts&&a.config.dashOpts.audioOnly?["audio"]:u).forEach((function(e){d[e]&&d[e].length>0&&d[e].every((function(t){return i._makeSegmentRequestByItem(t,e,o,l)}))}))}}else pt.log("dash seek destroy")}},{key:"_makeSegmentRequestByItem",value:function(e,t,n,U){var F=this,Q=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=this;if(e.downloaded===xt||e.downloaded===Xt)return!0;e.downloaded=Xt;var l=Object.assign({},n,{load_tar_dur:e.end-e.start,load_dur:e.end-e.start});e.adaptItemParam=l;var r=this._videoEncryption||this._audioEncryption,a=!r||r&&this.useEME,d=i.config.useProgressiveAppend&&!this._pluginInst.softVideo&&a&&this.loader.isSupportedProgress(),s=0===e.start||U;i._addToList(e);var B=i.mpd.mediaList[t],R=B[B.selectedIdx],V=s&&this.loader.checkProgressSatisfied(R.bandwidth||R.bitrate),u=i.config.useProgressiveAppendAll,h=d&&(V||u);s&&pt.log("progressDownloaded match, config p ".concat(i.config.useProgressiveAppend,", \n progressDownloaded ").concat(d,", encEnableProgress :").concat(a,",\n useProgressiveAppendAll:").concat(u)),h&&0===e.start&&("video"===t?i._pluginInst.pvStartup=!0:i._pluginInst.paStartup=!0);var Z=function(){i.updateItemState(e,!1),pt.log("onCancel",e),i._removeFromList(e),i._setLoading(t,!1),h&&(null==i||i._abortAndRemove(t,e,"oncancel"))};this._setLoading(t,!0,!1),h?(pt.log("progressDownloaded, mediaType:".concat(t,",\n start:").concat(e.start,", bitrate:").concat(R.bandwidth||R.bitrate)),i.makeSegmentRequest(t,e,function(){var n=c(o().mark((function n(U,l,r,a,d){var s,B,c;return o().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(n.prev=0,null!==(s=F._appendBufferDelta)&&void 0!==s&&s[t]&&((B=F._appendBufferDelta[t]).delta=EU.nowTime(),B.item=e,B.requestDelta||(B.requestDelta=EU.nowTime())),c=r.range||e.range,d.range=c,d.status=null==a?void 0:a.status,200!==d.status||"ftyp"!==EU.getTopBoxType(U)){n.next=10;break}return n.next=8,F.loader.cancel(t);case 8:return i._onRequestFail({message:"response 200, cancel"},e,t),n.abrupt("return");case 10:i.appendSegment(t,U,e,{},d,!1,l,Q),l&&(e.extRange=void 0,i._removeFromList(e),F._setLoading(t,!1,!0,e.idx),F._appendBufferDelta&&(F._appendBufferDelta[t]=F._genEmptyBufferDelta()),pt.log("mediaType",t,"item",e.idx,"done")),n.next=17;break;case 14:n.prev=14,n.t0=n.catch(0),F.__dash__?(F._abortAndRemove(t,e,"errorCatch"),i._onRequestFail(n.t0,e,t)):pt.log("__dash__ null, destroy");case 17:case"end":return n.stop()}}),n,null,[[0,14]])})));return function(e,t,U,F,Q){return n.apply(this,arguments)}}(),Z,Q).catch((function(n){i._onRequestFail(n,e,t)}))):i.makeSegmentRequest(t,e,null,Z).then((function(n){var U=n.res,F=n.headers,l=n.extData;pt.log("append ".concat(t," ").concat(e.start," ").concat(e.end)),i._setLoading(t,!1,!0,e.idx),i.appendSegment(t,U,e,F||{},l,!0,!0,Q),i._removeFromList(e)}),null,Q).catch((function(n){i._onRequestFail(n,e,t)})).finally((function(){i._setLoading(t,!1)}))}},{key:"_onRequestFail",value:function(e,t,n){var U,F;(this._setLoading(n,!1),this.updateItemState(t),this._removeFromList(t),e.isPCDN)&&(null===(U=this._pcdnScv)||void 0===U||U.setSetRetryInfo(n,e.url),null===(F=this._pcdnScv)||void 0===F||F.removePCDNNode(n,e.bitrate,e.url));if(this.mpd){var Q=this.mpd.mediaList;pt.log("_onRequestFail",null==e?void 0:e.message,JSON.stringify(t));var i="video"===n?Q.video:Q.audio,l=i[i.selectedIdx],r=!this._isAbort(e.error)&&!e.isPCDN;!l.hasBackup&&l.backupUrl&&r?l.hasBackup=!0:l.fallbackUrl&&r&&(l.hasFallback=!0)}else pt.log("_onRequestFail destroy")}},{key:"_setLoading",value:function(e,t){var n,U,F=arguments.length>2&&void 0!==arguments[2]&&arguments[2],Q=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;(pt.log("setLoading",e,"isLoading",t,"addNext",F,"prevIdx",Q),null===(n=this.mpd)||void 0===n||n.setLoadingState(e,t),F)&&(null===(U=this.mpd)||void 0===U||U.moveNextSegmentIndex(e,Q))}},{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,U=this._preloadSegDatas[t];if(!U||0===(null==U?void 0:U.length))return{isSlice:!1};var F,Q=N(U);try{for(Q.s();!(F=Q.n()).done;){var i=F.value;if(i.range[0]===n[0]){var l=i.res,r=i.duration;return{isSlice:!0,range:[i.range[1]+1,n[1]],res:l,duration:r}}}}catch(a){Q.e(a)}finally{Q.f()}return{isSlice:!1}}},{key:"makeSegmentRequest",value:function(e,t){var n,U=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,Q=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,l=this,r=new x;void 0===t.range&&(t.range=[]),"video"===e&&pt.network("http get video start: ".concat(t.start,", end: ").concat(t.end," ,range: ").concat(t.range)),l.player&&l.__dash__._checkUrlRange(t.url);var a={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},o=1/0,s=l.mpd.mediaList[e],B=s[s.selectedIdx],c=t.url;B.hasFallback?c=B.fallbackUrl:B.hasBackup&&(c=B.backupUrl);var R=(null===(n=t.extRange)||void 0===n?void 0:n.length)>0,V=!1;if(this._pcdnScv){var u=this._pcdnScv.selectedPCDN(e,!1,B.bandwidth),h="audio"===e||(null==u?void 0:u.includes(B.fileId));u&&!h&&(this._pcdnScv.removePCDNNode(e,B.bandwidth),pt.log("PCDNURL remove, url,",u,"fileid",B.fileId)),h&&u&&!R&&(V=!0,(!this._cdnHost||c.indexOf(this._cdnHost)<0)&&(this._cdnHost=EU.getHostFromUrl(c)),this._cdnHost||(this._cdnHost=EU.getHostFromUrl(c)),a.cdnHost=this._cdnHost,c=u,pt.log("PCDNURL",c))}if("video"===e){try{var Z=B.definition||l.__dash__.bandwidth2item[B.bandwidth].definition;Z=Z.toString(),o=Et[Z.toLowerCase()],a.segment_resolution=Z.toLowerCase(),a.definition=a.segment_resolution,t.definition=Z,this.setCurrentHost(c)}catch(f){o=1/0}a.limitSizeM=o}a.bitrate=B.avg_bitrate||B.bandwidth||B.bitrate,a.bandwidth=B.bandwidth||B.bitrate,a.idx=B.idx,a.first_gop=0===t.start?1:0,a.isPCDN=V,a.fileId=B.fileId,a.codecType=this.mpd.videoCodecType,a.adaptItemParam=t.adaptItemParam,a.segmentDuration=t.end-t.start,delete t.adaptItemParam,a.moof=t.moof,a.checkPreload=t.checkPreload||a.first_gop;var S=this.config.timeout;a.first_gop&&this.kernal.setNodeTime("init".concat(e,"_segstart")),this._appendBufferDelta[e].isPCDN=V;var p=t.range;if(t.extRange&&(pt.log("_PCDN extRange",t.extRange,"medaiType",e,"isPCDNTimeout",R),t.extRange[0]<t.extRange[1]&&(p=t.extRange)),a.checkPreload){var J=this._doSizePreloadCheck(t),m=J.isSlice,W=J.range,k=J.res,E=J.duration;if(m){p=W,a.isSlice=!0,console.log("hit preload size");var y=d(d({},t),{},{range:[t.range[0],W[0]-1]});this.appendSegment(e,k,y,{},a,!1,!1,i),this.kernal.setNodeTime("init".concat(e,"_segcache"),{fromCache:!0,mediaType:e,definition:a.definition,duration:E,byteLength:k.byteLength})}}return this.getData(c,p,e,a,!1,F,Q,S,(function(){l.updateItemState(t,!1),pt.log("onTimeout",t),l._removeFromList(t),l._onRequestFail(Object.assign({url:c,error:{message:"Timeout"}},a),t,e)})).then((function(n){if(U._pluginInst)if(n){var Q=n.res,i=n.fromCache,d=n.duration,o=Q instanceof ArrayBuffer;if(a.first_gop&&U.kernal.setNodeTime("init".concat(e,"_segdone"),{fromCache:i,mediaType:e,definition:a.definition,duration:d,byteLength:o?Q.byteLength:0,error:o||Q.done?null:Q}),Q instanceof ArrayBuffer)r.resolve({res:Q,headers:null,extData:{status:n.status,segment_resolution:a.segment_resolution}}),l.mseLog("task loadsucc",t,e);else if(!(206===n.status||200===n.status)){if(l.mseLog("task loaderror",t,e),F&&U._abortAndRemove(e,t,"onProgress task loaderror"),403===n.status){var s;B.fallbackUrl||null==l||l.__dash__.clearProgressTimer(),null==l||null===(s=l._pluginInst)||void 0===s||s.emitExpireEvent({url:t.url,response:n})}else{var c=U._isAbort(null==n?void 0:n.error);if(B.hasFallback&&!c){var R,V;pt.log("fallUrl fail",null==n||null===(R=n.error)||void 0===R?void 0:R.message),null==l||l.__dash__.clearProgressTimer();var u=new GF(Je,GF.BACK_URL_FAIL,{message:"fall url fail ".concat(null==n||null===(V=n.error)||void 0===V?void 0:V.message)});U.player.errorHandler(u)}}r.reject(n)}}else console.log("response err"),r.reject(new Error("request error"))})),r}},{key:"setCurrentHost",value:function(e){this._pluginInst.loadURL=e}},{key:"reportMonitorEvent",value:function(e,t,n,U,F){var Q=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=this,l=i.getReportData(n,U,F,Q),r=F.eagleid;if(r){if(!this.egleIds||this.egleIds[r])return;this.egleIds[r]=1}i.player&&i.player.emit("log",{type:"oneevent",end_type:e,cdnUrl:t,ext:l})}},{key:"getReportData",value:function(e,t,n){var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},F=EU.transformHeaders(n,kt);return Object.assign({},{start:e||-1,end:t||-1},F,U)}},{key:"reportMenuEvent",value:function(e,t,n,U){var F=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},Q=this._pluginInst.player,i=this.getReportData(t,n,U,F);i.url=e,Q.emit("menusegment",i)}},{key:"_reportInvalidEvent",value:function(e,t,n,U){var F=this,Q=0,i=e.byteLength,l=n.status,r=n.segment_resolution,a=t.realUrl||t.url;try{var d=EU.getTopBoxType(e);if("moof"!==d&&"styp"!==d&&(pt.media("segment content error",t,U),Q=1,F.reportMonitorEvent(Lt,a,t.range[0],t.range[1],U,{segment_size:e.byteLength,status:l,segment_resolution:r,box_type:d,step:Q,segment_origin_size:i})),"ftyp"===d&&200===l&&2===t.range.length){this.player&&this.player.emit("source_error",{host:EU.getHostFromUrl(a),src:a,errorCode:l,message:"boxType error",range:t.range,headers:U}),Q=2;var o=t.range[0];return e=e.subarray(o,t.range[1]+1),"moof"!==(d=EU.getTopBoxType(e))&&"styp"!==d?(F.emit("error",new GF(Je,GF.SEGMENT_CONTENT_ERROR,{message:"boxType is ".concat(d,", range:").concat(JSON.stringify(t.range),", url:").concat(a,", respHeaders:").concat(JSON.stringify(U),", isPCDN:").concat(n.isPCDN)})),F.reportMonitorEvent(Lt,a,t.range[0],t.range[1],U,{segment_size:e.byteLength,status:l,segment_resolution:r,box_type:d,step:Q,segment_origin_size:i}),null):e}}catch(s){F.reportMonitorEvent(Lt,a,t.range[0],t.range[1],U,{segment_size:e.byteLength,status:l,segment_resolution:r,step:Q,box_type:"error",segment_origin_size:i}),pt.media("segment content catch",t,s)}return null}},{key:"appendSegment",value:function(e,t,n,U,F){var Q=arguments.length>5&&void 0!==arguments[5]&&arguments[5],i=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,r=this;if(!this._hasDestroyed&&r.mpd&&t)if(EU.isArrayBuffer(t)){var a=t instanceof ArrayBuffer?t:t.buffer,d=new Uint8Array(a),o=EU.checkValidTopBox(d),s=F.status,B=F.segment_resolution,c=r.mpd.mediaList[e],R=c.selectedIdx,V=n.realUrl||n.url;if(Q&&!o){if(null===(d=r._reportInvalidEvent(d,n,F,U)))return pt.log("segment content response 200, res is null"),void r.updateItemState(n);pt.log("segment content response 200, subrange is ok, go ahead")}r.reportMenuEvent(V,n.range[0],n.range[1],U,{segment_size:d.byteLength,status:s,segment_resolution:B});var u=this._pluginInst.softVideo;if(r.keyValue||u){var h=0;(u||r.__dash__.dashVideoEncrypted||r.__dash__.dashAudioEncrypted)&&!1===r.useEME&&r.__dash__.crypto?(h=performance.now(),r.mseLog("decryptBody start",n,e),r.__dash__.crypto.decryptBody(d,"video"===e,!u).then((function(t){var U=t.data,F=t.id,Q=t.headerId;if(U.res||u){var a=U.res,d=U.videoTrack,o=U.audioTrack,s=performance.now();if(r.encryptTotalAll||(r.encryptTotalAll=0),r.encryptTotalAll+=s-h,pt.encrypt("encryptTotalAll:".concat(r.encryptTotalAll)),"video"===e&&(r.encryptTotal||(r.encryptTotal=0),r.encryptTotal+=s-h,pt.encrypt("encryptVideo:".concat(r.encryptTotal)),F<Q&&!l))return r.updateItemState(n),void console.warn("decrytbody discard, id:".concat(F,", headerId:").concat(Q,",\n index:").concat(R,", url:").concat(n.url,", start:").concat(n.start));r.doAppendSegment(e,c,a,n,R,null,i,d,o,l)}else r.updateItemState(n)}))):r.doAppendSegment(e,c,d,n,R,F.range,i,null,null,l)}else r.doAppendSegment(e,c,d,n,R,F.range,i,null,null,l)}else console.log("appendSegment return done",i)}},{key:"isAllAppend",value:function(){var e=this.mpd;if(!e)return!1;var t=this.player.currentTime,n=e.isSegmentAppendFromIdx(Ge.VIDEO,t),U=n.res,F=n.emptySegments,Q=e.isSegmentAppendFromIdx(Ge.AUDIO,t),i=Q.res,l=Q.emptySegments,r=this._hasVideo&&F,a=this._hasAudio&&l;return!r&&!a&&!(!U||!i)}},{key:"doAppendSegment",value:function(e,t,n,U,F,Q,i,l,r,a){var o=this;if(!this._hasDestroyed){var s=this,B={start:U.start,end:U.end,index:F,bandwidth:t[t.selectedIdx].bandwidth,fps:t[t.selectedIdx].fps,mediaType:e,sequence:U.idx};if(e===Ge.VIDEO&&-1!==this.__dash__.curVideoInitSegmentIdx&&F!==this.__dash__.curVideoInitSegmentIdx)return this.updateItemState(U),void pt.log("init 与 segment不匹配, curVideoInitSegmentIdx",this.__dash__.curVideoInitSegmentIdx,"selectedIdx",F);var c=function(t){var n;if(!(null!=t&&t.used||null!=t&&null!==(n=t.context)&&void 0!==n&&n.used))if(0===U.start&&o.kernal.setNodeTime("init".concat(e,"SegmentAppend"),t),t&&(t.used=!0),s.player){if(U.range[1]<=(null==Q?void 0:Q[1])||i){var F;if(s.updateItemState(U,!0),"video"===e)null===(F=s.player)||void 0===F||F.emit("addVideoBufferEnd",B);if(a){var l,r,d=null===(l=o.mpd)||void 0===l?void 0:l.mediaList[e],c=d&&(null===(r=d[d.selectedIdx])||void 0===r?void 0:r.mediaSegments);c.length>0&&s.updateItemState(c[0],!0)}}if(o.mseLog("appendBuffer success",U,e,Q),i){s.updateItemState(U,!0);var R=s.mpd._getBuffered(e);pt.log("fixbuffer: mediaType",e,"buffered",JSON.stringify(R),"item.start",U.start,"item.end",U.end);for(var V=!0,u=0;u<R.length;u++){var h=R[u].start,Z=R[u].end;U.start>=h-1&&U.end<=Z+1&&(V=!1)}if(V&&U.end>U.start){var S=s.mse.getSourceBuffer(e);pt.log("fixbuffer: buffer Miss",!!S),S&&o._abortAndRemove(e,U,"fixbuffer")}}"video"===e&&s.player.emit("addVideoBufferEnd",B);var p=s.mse,J=s.mpd;if(p&&B.start>=0&&i&&!o._pluginInst.softVideo){var m=p.buffered(e);if(0===m.length)return;var W=m.end(m.length-1),k=J.mediaList[e][B.index].mediaSegments[B.sequence-1];k.incomplete&&(s._handleIncompleSegment(k,W),pt.log("extData",B))}var E=J.isLastSegmentAndAppend(e,U.idx),y=e===Ge.AUDIO?Ge.VIDEO:Ge.AUDIO,f=J.isLastSegmentAndAppend(y,U.idx);E&&f&&(pt.log("append check endofStream"),p.endOfStream()),o.isAllAppend()&&(p.endOfStream(),console.log("append all endofstream"))}else pt.log("appendBuffer destroy return")},R=d(d({range:Q},B),{},{callback:c,item:U});this.appendBuffer(e,new Uint8Array(n),R,l,r,a).then(c).catch((function(e){pt.log("append buffer catch",e);var t=e&&e.errorCode===We[Ze][me.MSE_FULL];t||s.updateItemState(U,!1),t&&s.__dash__&&s.__dash__.checkRemoveBuffer(!0),e&&e.errorCode&&s.player&&s.player.emit(new GF(Ze,e.errorCode,{line:800,message:"append buffer".concat(e.message)}))}))}}},{key:"appendBuffer",value:function(e,t,n,U,F,Q){var i=this;if(this._appendBufferDelta&&(this._appendBufferDelta[e].range=n.range),this._lastAppendBufferEnd){var l=this._lastAppendBufferEnd[e],r=l.prevRangeEnd,a=l.prevItem;if(n.range&&n.range.length>0){var d,o,s=r===(null==a?void 0:a.range[1]),B=r>0&&(r===(null==a?void 0:a.range[1])+1||s);if(r>0&&!B&&r!==n.range[0])if(n.range[1]<n.item.range[1])pt.log("appendBuffer seek remove",e,r,"now",n.range[0],"start",a.startRaw,"endRaw",a.endRaw),null===(d=this.__dash__)||void 0===d||d.abort(e),null===(o=this.__dash__)||void 0===o||o.clearBufferDirect(e,a.start,a.end),n.item.extRange=void 0;this._lastAppendBufferEnd[e]={prevRangeEnd:n.range[1],prevItem:n.item}}}var c=function(){return i._pluginInst.softVideo?(i._hasVideo&&"video"===e&&(i._vTrack=new iQ,Object.keys(U).forEach((function(e){i._vTrack[e]=U[e]}))),i._hasAudio&&"audio"===e&&(i._aTrack=new lQ,Object.keys(F).forEach((function(e){i._aTrack[e]=F[e]}))),i.mse.appendBuffer(i._vTrack,i._aTrack),Promise.resolve()):i.mse.append(e,new Uint8Array(t),n)};return Q?Q.then((function(){return c()})):c()}},{key:"changeType",value:function(e,t){var n="";n=e===Ge.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:"abortLoadingTasks",value:(U=c(o().mark((function e(t){var n,U,F,Q,i,l,r,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U=null===(n=this.player)||void 0===n?void 0:n.currentTime,F=[],Q=[],i=!!t,this._onLoadingItems)for(l=0;l<this._onLoadingItems.length;l++)(r=this._onLoadingItems[l]).start<=U&&U<=r.end?(pt.log("abortLoadingTasks currentTime seek",U,"start",r.start,"end",r.end),F.push(r)):i||r.mediaType===t?(Q.includes(r.mediaType)||Q.push(r.mediaType),this._abortAndRemove(r.mediaType,r,"abortLoadingTasks")):F.push(r);if(!(Q.length>0)){e.next=10;break}return pt.log("abortLoadingTasks cancelMediaTypes",JSON.stringify(Q)),a=2===Q.length?void 0:Q[0],e.next=10,this._doCancel(a);case 10:this._onLoadingItems=F;case 11:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"_doCancel",value:(n=c(o().mark((function e(t){return o().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 n.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(U){var F=n[U]||{},Q=F.size,i=F.range,l=F.extData;Q>0&&e._emitPrfDataSizeEvent(Number(U),Q,t,i,l,1)}))}))}catch(t){}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?xt:Dt}))}},{key:"mseLog",value:function(e,t,n,U){pt.mse("type-".concat(n,"-start-").concat(t.start,"-end-").concat(t.end,"-").concat(e,",range:").concat(JSON.stringify(U||t.range)))}},{key:"emitPreloadHit",value:function(e){pt.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(),DF(this.loader),null===(e=this._secret)||void 0===e||e.destroy(),this._hasDestroyed=!0,null===(t=this._dynamicBufferService)||void 0===t||t.destroy()}},{key:"clearFailedSegment",value:function(){this.segment_request={video:[],audio:[]},this.player&&this.player.emit(It,this.segment_request)}},{key:"checkPCDN",value:(t=c(o().mark((function e(){var t,n,U,F,Q,i;return o().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(d(d({},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,U=this.mpd.mediaList.audio,F=U[U.selectedIdx],Q=F.bandwidth,i=F.baseURL,e.next=17,this._pcdnScv.checkPCDN(d(d({},U[U.selectedIdx]),{},{bitrate:Q,main_url:i,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 t.apply(this,arguments)})},{key:"isOpenPCDN",value:function(e){var t=this;if(this._pcdnScv){var n,U,F=this._pluginInst.currentDefitionFromPlayer;if(!F)return void pt.log("isOpenCPDN curDef is null");var Q=F.item,i=Q.bitrate,l=null===(n=this.mpd)||void 0===n?void 0:n._getCurBuffered(Ge.VIDEO),r=null===(U=this.mpd)||void 0===U?void 0:U._getCurBuffered(Ge.AUDIO),a=(e=Math.max(e,null==l?void 0:l[1],null==r?void 0:r[1]))-this.player.currentTime,d=a,s=a,B=this.player.currentTime;this.config.useSeparationMode&&(s=Math.max(0,(null==r?void 0:r[1])-B),d=Math.max(0,(null==l?void 0:l[1])-B)),this._pcdnScv.isOpenPCDN("video",d,i,c(o().mark((function e(){return o().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)}))),Q);var R=this.__dash__.dash.mpd.mediaList;if(R.audio.length>0){var V=R.audio[R.audio.selectedIdx],u=this.config.dashOpts.dynamic_video.dynamic_audio_list.filter((function(e){return e.bitrate===V.bandwidth}))[0];this._pcdnScv.isOpenPCDN("audio",s,V.bandwidth,c(o().mark((function e(){return o().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)}))),u)}}}},{key:"pcdnReqCnt",value:function(){return this._pcdnScv.pcdnReqCnt||{}}},{key:"pcdnVVStat",value:function(){return this._pcdnScv.pcdnVVStat||{}}}]),e}(),Ti=vi,Ci="IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBBPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sZz1mdW5jdGlvbihBKXt0cnl7cmV0dXJuISFBKCl9Y2F0Y2goZyl7cmV0dXJuITB9fSxJPXt9LnRvU3RyaW5nLEI9ZnVuY3Rpb24oQSl7cmV0dXJuIEkuY2FsbChBKS5zbGljZSg4LC0xKX0sUT1CLEM9IiIuc3BsaXQsRT1nKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihBKXtyZXR1cm4iU3RyaW5nIj09UShBKT9DLmNhbGwoQSwiIik6T2JqZWN0KEEpfTpPYmplY3QsaT1mdW5jdGlvbihBKXtpZihudWxsPT1BKXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIitBKTtyZXR1cm4gQX0sdD1FLGU9aSxvPWZ1bmN0aW9uKEEpe3JldHVybiB0KGUoQSkpfSxuPWZ1bmN0aW9uKEEpe3JldHVybiBBJiZBLk1hdGg9PU1hdGgmJkF9LHI9bigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxuKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxuKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fG4oIm9iamVjdCI9PXR5cGVvZiBBJiZBKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxhPXtleHBvcnRzOnt9fSxzPSFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSksYz17fSxoPWZ1bmN0aW9uKEEpe3JldHVybiJvYmplY3QiPT10eXBlb2YgQT9udWxsIT09QToiZnVuY3Rpb24iPT10eXBlb2YgQX0seT1oLEQ9ci5kb2N1bWVudCxmPXkoRCkmJnkoRC5jcmVhdGVFbGVtZW50KSx1PWZ1bmN0aW9uKEEpe3JldHVybiBmP0QuY3JlYXRlRWxlbWVudChBKTp7fX0sdz11LGQ9IXMmJiFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkodygiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpLEY9aCxsPWZ1bmN0aW9uKEEpe2lmKCFGKEEpKXRocm93IFR5cGVFcnJvcihTdHJpbmcoQSkrIiBpcyBub3QgYW4gb2JqZWN0Iik7cmV0dXJuIEF9LEc9aCxSPWZ1bmN0aW9uKEEsZyl7aWYoIUcoQSkpcmV0dXJuIEE7dmFyIEksQjtpZihnJiYiZnVuY3Rpb24iPT10eXBlb2YoST1BLnRvU3RyaW5nKSYmIUcoQj1JLmNhbGwoQSkpKXJldHVybiBCO2lmKCJmdW5jdGlvbiI9PXR5cGVvZihJPUEudmFsdWVPZikmJiFHKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjtpZighZyYmImZ1bmN0aW9uIj09dHlwZW9mKEk9QS50b1N0cmluZykmJiFHKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjt0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfSxVPXMsaz1kLFM9bCxOPVIsTT1PYmplY3QuZGVmaW5lUHJvcGVydHk7Yy5mPVU/TTpmdW5jdGlvbihBLGcsSSl7aWYoUyhBKSxnPU4oZywhMCksUyhJKSxrKXRyeXtyZXR1cm4gTShBLGcsSSl9Y2F0Y2goQil7fWlmKCJnZXQiaW4gSXx8InNldCJpbiBJKXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gSSYmKEFbZ109SS52YWx1ZSksQX07dmFyIFk9ZnVuY3Rpb24oQSxnKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmQSksY29uZmlndXJhYmxlOiEoMiZBKSx3cml0YWJsZTohKDQmQSksdmFsdWU6Z319LEg9YyxwPVksSj1zP2Z1bmN0aW9uKEEsZyxJKXtyZXR1cm4gSC5mKEEsZyxwKDEsSSkpfTpmdW5jdGlvbihBLGcsSSl7cmV0dXJuIEFbZ109SSxBfSxMPXIsdj1KLEs9ZnVuY3Rpb24oQSxnKXt0cnl7dihMLEEsZyl9Y2F0Y2goSSl7TFtBXT1nfXJldHVybiBnfSxtPUsseD0iX19jb3JlLWpzX3NoYXJlZF9fIixxPXJbeF18fG0oeCx7fSksYj1xOyhhLmV4cG9ydHM9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYltBXXx8KGJbQV09dm9pZCAwIT09Zz9nOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMTIuMSIsbW9kZToiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMjEgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSk7dmFyIFQsTyxXPWEuZXhwb3J0cyxaPWksaj1mdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0KFooQSkpfSxQPWosWD17fS5oYXNPd25Qcm9wZXJ0eSxWPWZ1bmN0aW9uKEEsZyl7cmV0dXJuIFguY2FsbChQKEEpLGcpfSx6PTAsXz1NYXRoLnJhbmRvbSgpLCQ9ZnVuY3Rpb24oQSl7cmV0dXJuIlN5bWJvbCgiK1N0cmluZyh2b2lkIDA9PT1BPyIiOkEpKyIpXyIrKCsreitfKS50b1N0cmluZygzNil9LEFBPXIsZ0E9cixJQT1mdW5jdGlvbihBKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgQT9BOnZvaWQgMH0sQkE9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP0lBKEFBW0FdKXx8SUEoZ0FbQV0pOkFBW0FdJiZBQVtBXVtnXXx8Z0FbQV0mJmdBW0FdW2ddfSxRQT1CQSgibmF2aWdhdG9yIiwidXNlckFnZW50Iil8fCIiLENBPVFBLEVBPXIucHJvY2VzcyxpQT1FQSYmRUEudmVyc2lvbnMsdEE9aUEmJmlBLnY4O3RBP089KFQ9dEEuc3BsaXQoIi4iKSlbMF08ND8xOlRbMF0rVFsxXTpDQSYmKCEoVD1DQS5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fFRbMV0+PTc0KSYmKFQ9Q0EubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihPPVRbMV0pO3ZhciBlQSxvQT1PJiYrTyxuQT1vQSxyQT1nLGFBPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIXJBKChmdW5jdGlvbigpe3JldHVybiFTdHJpbmcoU3ltYm9sKCkpfHwhU3ltYm9sLnNoYW0mJm5BJiZuQTw0MX0pKSxzQT1hQSYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcixjQT1yLGhBPVYseUE9JCxEQT1hQSxmQT1zQSx1QT1XKCJ3a3MiKSx3QT1jQS5TeW1ib2wsZEE9ZkE/d0E6d0EmJndBLndpdGhvdXRTZXR0ZXJ8fHlBLEZBPWZ1bmN0aW9uKEEpe3JldHVybiBoQSh1QSxBKSYmKERBfHwic3RyaW5nIj09dHlwZW9mIHVBW0FdKXx8KERBJiZoQSh3QSxBKT91QVtBXT13QVtBXTp1QVtBXT1kQSgiU3ltYm9sLiIrQSkpLHVBW0FdfSxsQT1NYXRoLmNlaWwsR0E9TWF0aC5mbG9vcixSQT1mdW5jdGlvbihBKXtyZXR1cm4gaXNOYU4oQT0rQSk/MDooQT4wP0dBOmxBKShBKX0sVUE9UkEsa0E9TWF0aC5taW4sU0E9ZnVuY3Rpb24oQSl7cmV0dXJuIEE+MD9rQShVQShBKSw5MDA3MTk5MjU0NzQwOTkxKTowfSxOQT1SQSxNQT1NYXRoLm1heCxZQT1NYXRoLm1pbixIQT1mdW5jdGlvbihBLGcpe3ZhciBJPU5BKEEpO3JldHVybiBJPDA/TUEoSStnLDApOllBKEksZyl9LHBBPW8sSkE9U0EsTEE9SEEsdkE9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDPXBBKGcpLEU9SkEoQy5sZW5ndGgpLGk9TEEoQixFKTtpZihBJiZJIT1JKXtmb3IoO0U+aTspaWYoKFE9Q1tpKytdKSE9USlyZXR1cm4hMH1lbHNlIGZvcig7RT5pO2krKylpZigoQXx8aSBpbiBDKSYmQ1tpXT09PUkpcmV0dXJuIEF8fGl8fDA7cmV0dXJuIUEmJi0xfX0sS0E9e2luY2x1ZGVzOnZBKCEwKSxpbmRleE9mOnZBKCExKX0sbUE9e30seEE9VixxQT1vLGJBPUtBLmluZGV4T2YsVEE9bUEsT0E9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPXFBKEEpLFE9MCxDPVtdO2ZvcihJIGluIEIpIXhBKFRBLEkpJiZ4QShCLEkpJiZDLnB1c2goSSk7Zm9yKDtnLmxlbmd0aD5ROyl4QShCLEk9Z1tRKytdKSYmKH5iQShDLEkpfHxDLnB1c2goSSkpO3JldHVybiBDfSxXQT1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLFpBPU9BLGpBPVdBLFBBPU9iamVjdC5rZXlzfHxmdW5jdGlvbihBKXtyZXR1cm4gWkEoQSxqQSl9LFhBPWMsVkE9bCx6QT1QQSxfQT1zP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKEEsZyl7VkEoQSk7Zm9yKHZhciBJLEI9ekEoZyksUT1CLmxlbmd0aCxDPTA7UT5DOylYQS5mKEEsST1CW0MrK10sZ1tJXSk7cmV0dXJuIEF9LCRBPUJBKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpLEFnPSQsZ2c9Vygia2V5cyIpLElnPWZ1bmN0aW9uKEEpe3JldHVybiBnZ1tBXXx8KGdnW0FdPUFnKEEpKX0sQmc9bCxRZz1fQSxDZz1XQSxFZz1tQSxpZz0kQSx0Zz11LGVnPSJwcm90b3R5cGUiLG9nPSJzY3JpcHQiLG5nPUlnKCJJRV9QUk9UTyIpLHJnPWZ1bmN0aW9uKCl7fSxhZz1mdW5jdGlvbihBKXtyZXR1cm4iPCIrb2crIj4iK0ErIjwvIitvZysiPiJ9LHNnPWZ1bmN0aW9uKCl7dHJ5e2VBPWRvY3VtZW50LmRvbWFpbiYmbmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2goUSl7fXZhciBBLGcsSTtzZz1lQT9mdW5jdGlvbihBKXtBLndyaXRlKGFnKCIiKSksQS5jbG9zZSgpO3ZhciBnPUEucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gQT1udWxsLGd9KGVBKTooZz10ZygiaWZyYW1lIiksST0iamF2YSIrb2crIjoiLGcuc3R5bGUuZGlzcGxheT0ibm9uZSIsaWcuYXBwZW5kQ2hpbGQoZyksZy5zcmM9U3RyaW5nKEkpLChBPWcuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLEEud3JpdGUoYWcoImRvY3VtZW50LkY9T2JqZWN0IikpLEEuY2xvc2UoKSxBLkYpO2Zvcih2YXIgQj1DZy5sZW5ndGg7Qi0tOylkZWxldGUgc2dbZWddW0NnW0JdXTtyZXR1cm4gc2coKX07RWdbbmddPSEwO3ZhciBjZz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihBLGcpe3ZhciBJO3JldHVybiBudWxsIT09QT8ocmdbZWddPUJnKEEpLEk9bmV3IHJnLHJnW2VnXT1udWxsLElbbmddPUEpOkk9c2coKSx2b2lkIDA9PT1nP0k6UWcoSSxnKX0saGc9Y2cseWc9YyxEZz1GQSgidW5zY29wYWJsZXMiKSxmZz1BcnJheS5wcm90b3R5cGU7bnVsbD09ZmdbRGddJiZ5Zy5mKGZnLERnLHtjb25maWd1cmFibGU6ITAsdmFsdWU6aGcobnVsbCl9KTt2YXIgdWc9ZnVuY3Rpb24oQSl7ZmdbRGddW0FdPSEwfSx3Zz17fSxkZz1xLEZnPUZ1bmN0aW9uLnRvU3RyaW5nOyJmdW5jdGlvbiIhPXR5cGVvZiBkZy5pbnNwZWN0U291cmNlJiYoZGcuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihBKXtyZXR1cm4gRmcuY2FsbChBKX0pO3ZhciBsZyxHZyxSZyxVZz1kZy5pbnNwZWN0U291cmNlLGtnPVVnLFNnPXIuV2Vha01hcCxOZz0iZnVuY3Rpb24iPT10eXBlb2YgU2cmJi9uYXRpdmUgY29kZS8udGVzdChrZyhTZykpLE1nPWgsWWc9SixIZz1WLHBnPXEsSmc9SWcsTGc9bUEsdmc9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixLZz1yLldlYWtNYXA7aWYoTmd8fHBnLnN0YXRlKXt2YXIgbWc9cGcuc3RhdGV8fChwZy5zdGF0ZT1uZXcgS2cpLHhnPW1nLmdldCxxZz1tZy5oYXMsYmc9bWcuc2V0O2xnPWZ1bmN0aW9uKEEsZyl7aWYocWcuY2FsbChtZyxBKSl0aHJvdyBuZXcgVHlwZUVycm9yKHZnKTtyZXR1cm4gZy5mYWNhZGU9QSxiZy5jYWxsKG1nLEEsZyksZ30sR2c9ZnVuY3Rpb24oQSl7cmV0dXJuIHhnLmNhbGwobWcsQSl8fHt9fSxSZz1mdW5jdGlvbihBKXtyZXR1cm4gcWcuY2FsbChtZyxBKX19ZWxzZXt2YXIgVGc9SmcoInN0YXRlIik7TGdbVGddPSEwLGxnPWZ1bmN0aW9uKEEsZyl7aWYoSGcoQSxUZykpdGhyb3cgbmV3IFR5cGVFcnJvcih2Zyk7cmV0dXJuIGcuZmFjYWRlPUEsWWcoQSxUZyxnKSxnfSxHZz1mdW5jdGlvbihBKXtyZXR1cm4gSGcoQSxUZyk/QVtUZ106e319LFJnPWZ1bmN0aW9uKEEpe3JldHVybiBIZyhBLFRnKX19dmFyIE9nPXtzZXQ6bGcsZ2V0OkdnLGhhczpSZyxlbmZvcmNlOmZ1bmN0aW9uKEEpe3JldHVybiBSZyhBKT9HZyhBKTpsZyhBLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnKXt2YXIgSTtpZighTWcoZyl8fChJPUdnKGcpKS50eXBlIT09QSl0aHJvdyBUeXBlRXJyb3IoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitBKyIgcmVxdWlyZWQiKTtyZXR1cm4gSX19fSxXZz17fSxaZz17fSxqZz17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxQZz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFhnPVBnJiYhamcuY2FsbCh7MToyfSwxKTtaZy5mPVhnP2Z1bmN0aW9uKEEpe3ZhciBnPVBnKHRoaXMsQSk7cmV0dXJuISFnJiZnLmVudW1lcmFibGV9OmpnO3ZhciBWZz1zLHpnPVpnLF9nPVksJGc9byxBST1SLGdJPVYsSUk9ZCxCST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1dnLmY9Vmc/Qkk6ZnVuY3Rpb24oQSxnKXtpZihBPSRnKEEpLGc9QUkoZywhMCksSUkpdHJ5e3JldHVybiBCSShBLGcpfWNhdGNoKEkpe31pZihnSShBLGcpKXJldHVybiBfZyghemcuZi5jYWxsKEEsZyksQVtnXSl9O3ZhciBRST17ZXhwb3J0czp7fX0sQ0k9cixFST1KLGlJPVYsdEk9SyxlST1VZyxvST1PZy5nZXQsbkk9T2cuZW5mb3JjZSxyST1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7KFFJLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFEsQz0hIUImJiEhQi51bnNhZmUsRT0hIUImJiEhQi5lbnVtZXJhYmxlLGk9ISFCJiYhIUIubm9UYXJnZXRHZXQ7ImZ1bmN0aW9uIj09dHlwZW9mIEkmJigic3RyaW5nIiE9dHlwZW9mIGd8fGlJKEksIm5hbWUiKXx8RUkoSSwibmFtZSIsZyksKFE9bkkoSSkpLnNvdXJjZXx8KFEuc291cmNlPXJJLmpvaW4oInN0cmluZyI9PXR5cGVvZiBnP2c6IiIpKSksQSE9PUNJPyhDPyFpJiZBW2ddJiYoRT0hMCk6ZGVsZXRlIEFbZ10sRT9BW2ddPUk6RUkoQSxnLEkpKTpFP0FbZ109STp0SShnLEkpfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJm9JKHRoaXMpLnNvdXJjZXx8ZUkodGhpcyl9KSk7dmFyIGFJPVFJLmV4cG9ydHMsc0k9e30sY0k9T0EsaEk9V0EuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtzSS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihBKXtyZXR1cm4gY0koQSxoSSl9O3ZhciB5ST17fTt5SS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIERJLGZJLHVJLHdJPXNJLGRJPXlJLEZJPWwsbEk9QkEoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKEEpe3ZhciBnPXdJLmYoRkkoQSkpLEk9ZEkuZjtyZXR1cm4gST9nLmNvbmNhdChJKEEpKTpnfSxHST1WLFJJPWxJLFVJPVdnLGtJPWMsU0k9ZyxOST0vI3xcLnByb3RvdHlwZVwuLyxNST1mdW5jdGlvbihBLGcpe3ZhciBJPUhJW1lJKEEpXTtyZXR1cm4gST09Skl8fEkhPXBJJiYoImZ1bmN0aW9uIj09dHlwZW9mIGc/U0koZyk6ISFnKX0sWUk9TUkubm9ybWFsaXplPWZ1bmN0aW9uKEEpe3JldHVybiBTdHJpbmcoQSkucmVwbGFjZShOSSwiLiIpLnRvTG93ZXJDYXNlKCl9LEhJPU1JLmRhdGE9e30scEk9TUkuTkFUSVZFPSJOIixKST1NSS5QT0xZRklMTD0iUCIsTEk9TUksdkk9cixLST1XZy5mLG1JPUoseEk9YUkscUk9SyxiST1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1SSShnKSxCPWtJLmYsUT1VSS5mLEM9MDtDPEkubGVuZ3RoO0MrKyl7dmFyIEU9SVtDXTtHSShBLEUpfHxCKEEsRSxRKGcsRSkpfX0sVEk9TEksT0k9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQyxFLGk9QS50YXJnZXQsdD1BLmdsb2JhbCxlPUEuc3RhdDtpZihJPXQ/dkk6ZT92SVtpXXx8cUkoaSx7fSk6KHZJW2ldfHx7fSkucHJvdG90eXBlKWZvcihCIGluIGcpe2lmKEM9Z1tCXSxRPUEubm9UYXJnZXRHZXQ/KEU9S0koSSxCKSkmJkUudmFsdWU6SVtCXSwhVEkodD9COmkrKGU/Ii4iOiIjIikrQixBLmZvcmNlZCkmJnZvaWQgMCE9PVEpe2lmKHR5cGVvZiBDPT10eXBlb2YgUSljb250aW51ZTtiSShDLFEpfShBLnNoYW18fFEmJlEuc2hhbSkmJm1JKEMsInNoYW0iLCEwKSx4SShJLEIsQyxBKX19LFdJPSFnKChmdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt9cmV0dXJuIEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBBKSE9PUEucHJvdG90eXBlfSkpLFpJPVYsakk9aixQST1XSSxYST1JZygiSUVfUFJPVE8iKSxWST1PYmplY3QucHJvdG90eXBlLHpJPVBJP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihBKXtyZXR1cm4gQT1qSShBKSxaSShBLFhJKT9BW1hJXToiZnVuY3Rpb24iPT10eXBlb2YgQS5jb25zdHJ1Y3RvciYmQSBpbnN0YW5jZW9mIEEuY29uc3RydWN0b3I/QS5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6QSBpbnN0YW5jZW9mIE9iamVjdD9WSTpudWxsfSxfST1nLCRJPXpJLEFCPUosZ0I9VixJQj1GQSgiaXRlcmF0b3IiKSxCQj0hMTtbXS5rZXlzJiYoIm5leHQiaW4odUk9W10ua2V5cygpKT8oZkk9JEkoJEkodUkpKSkhPT1PYmplY3QucHJvdG90eXBlJiYoREk9ZkkpOkJCPSEwKSwobnVsbD09REl8fF9JKChmdW5jdGlvbigpe3ZhciBBPXt9O3JldHVybiBESVtJQl0uY2FsbChBKSE9PUF9KSkpJiYoREk9e30pLGdCKERJLElCKXx8QUIoREksSUIsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIFFCPXtJdGVyYXRvclByb3RvdHlwZTpESSxCVUdHWV9TQUZBUklfSVRFUkFUT1JTOkJCfSxDQj1jLmYsRUI9VixpQj1GQSgidG9TdHJpbmdUYWciKSx0Qj1mdW5jdGlvbihBLGcsSSl7QSYmIUVCKEE9ST9BOkEucHJvdG90eXBlLGlCKSYmQ0IoQSxpQix7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmd9KX0sZUI9UUIuSXRlcmF0b3JQcm90b3R5cGUsb0I9Y2csbkI9WSxyQj10QixhQj13ZyxzQj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxjQj1oLGhCPWwseUI9ZnVuY3Rpb24oQSl7aWYoIWNCKEEpJiZudWxsIT09QSl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IHNldCAiK1N0cmluZyhBKSsiIGFzIGEgcHJvdG90eXBlIik7cmV0dXJuIEF9LERCPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciBBLGc9ITEsST17fTt0cnl7KEE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQpLmNhbGwoSSxbXSksZz1JIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goQil7fXJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBoQihJKSx5QihCKSxnP0EuY2FsbChJLEIpOkkuX19wcm90b19fPUIsSX19KCk6dm9pZCAwKSxmQj1PSSx1Qj1mdW5jdGlvbihBLGcsSSl7dmFyIEI9ZysiIEl0ZXJhdG9yIjtyZXR1cm4gQS5wcm90b3R5cGU9b0IoZUIse25leHQ6bkIoMSxJKX0pLHJCKEEsQiwhMSksYUJbQl09c0IsQX0sd0I9ekksZEI9REIsRkI9dEIsbEI9SixHQj1hSSxSQj13ZyxVQj1RQi5JdGVyYXRvclByb3RvdHlwZSxrQj1RQi5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLFNCPUZBKCJpdGVyYXRvciIpLE5CPSJrZXlzIixNQj0idmFsdWVzIixZQj0iZW50cmllcyIsSEI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scEI9byxKQj11ZyxMQj13Zyx2Qj1PZyxLQj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt1QihJLGcsQik7dmFyIGksdCxlLG89ZnVuY3Rpb24oQSl7aWYoQT09PVEmJmMpcmV0dXJuIGM7aWYoIWtCJiZBIGluIGEpcmV0dXJuIGFbQV07c3dpdGNoKEEpe2Nhc2UgTkI6Y2FzZSBNQjpjYXNlIFlCOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgSSh0aGlzLEEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEkodGhpcyl9fSxuPWcrIiBJdGVyYXRvciIscj0hMSxhPUEucHJvdG90eXBlLHM9YVtTQl18fGFbIkBAaXRlcmF0b3IiXXx8USYmYVtRXSxjPSFrQiYmc3x8byhRKSxoPSJBcnJheSI9PWcmJmEuZW50cmllc3x8cztpZihoJiYoaT13QihoLmNhbGwobmV3IEEpKSxVQiE9PU9iamVjdC5wcm90b3R5cGUmJmkubmV4dCYmKHdCKGkpIT09VUImJihkQj9kQihpLFVCKToiZnVuY3Rpb24iIT10eXBlb2YgaVtTQl0mJmxCKGksU0IsSEIpKSxGQihpLG4sITApKSksUT09TUImJnMmJnMubmFtZSE9PU1CJiYocj0hMCxjPWZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzKX0pLGFbU0JdIT09YyYmbEIoYSxTQixjKSxSQltnXT1jLFEpaWYodD17dmFsdWVzOm8oTUIpLGtleXM6Qz9jOm8oTkIpLGVudHJpZXM6byhZQil9LEUpZm9yKGUgaW4gdCkoa0J8fHJ8fCEoZSBpbiBhKSkmJkdCKGEsZSx0W2VdKTtlbHNlIGZCKHt0YXJnZXQ6Zyxwcm90bzohMCxmb3JjZWQ6a0J8fHJ9LHQpO3JldHVybiB0fSxtQj0iQXJyYXkgSXRlcmF0b3IiLHhCPXZCLnNldCxxQj12Qi5nZXR0ZXJGb3IobUIpLGJCPUtCKEFycmF5LCJBcnJheSIsKGZ1bmN0aW9uKEEsZyl7eEIodGhpcyx7dHlwZTptQix0YXJnZXQ6cEIoQSksaW5kZXg6MCxraW5kOmd9KX0pLChmdW5jdGlvbigpe3ZhciBBPXFCKHRoaXMpLGc9QS50YXJnZXQsST1BLmtpbmQsQj1BLmluZGV4Kys7cmV0dXJuIWd8fEI+PWcubGVuZ3RoPyhBLnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk6ImtleXMiPT1JP3t2YWx1ZTpCLGRvbmU6ITF9OiJ2YWx1ZXMiPT1JP3t2YWx1ZTpnW0JdLGRvbmU6ITF9Ont2YWx1ZTpbQixnW0JdXSxkb25lOiExfX0pLCJ2YWx1ZXMiKTtMQi5Bcmd1bWVudHM9TEIuQXJyYXksSkIoImtleXMiKSxKQigidmFsdWVzIiksSkIoImVudHJpZXMiKTt2YXIgVEI9e307VEJbRkEoInRvU3RyaW5nVGFnIildPSJ6Ijt2YXIgT0I9IltvYmplY3Qgel0iPT09U3RyaW5nKFRCKSxXQj1PQixaQj1CLGpCPUZBKCJ0b1N0cmluZ1RhZyIpLFBCPSJBcmd1bWVudHMiPT1aQihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpLFhCPVdCP1pCOmZ1bmN0aW9uKEEpe3ZhciBnLEksQjtyZXR1cm4gdm9pZCAwPT09QT8iVW5kZWZpbmVkIjpudWxsPT09QT8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihJPWZ1bmN0aW9uKEEsZyl7dHJ5e3JldHVybiBBW2ddfWNhdGNoKEkpe319KGc9T2JqZWN0KEEpLGpCKSk/STpQQj9aQihnKToiT2JqZWN0Ij09KEI9WkIoZykpJiYiZnVuY3Rpb24iPT10eXBlb2YgZy5jYWxsZWU/IkFyZ3VtZW50cyI6Qn0sVkI9WEIsekI9T0I/e30udG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK1ZCKHRoaXMpKyJdIn07T0J8fGFJKE9iamVjdC5wcm90b3R5cGUsInRvU3RyaW5nIix6Qix7dW5zYWZlOiEwfSk7dmFyIF9CPXtleHBvcnRzOnt9fSwkQj1GQSgiaXRlcmF0b3IiKSxBUT0hMTt0cnl7dmFyIGdRPTAsSVE9e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohIWdRKyt9fSxyZXR1cm46ZnVuY3Rpb24oKXtBUT0hMH19O0lRWyRCXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxBcnJheS5mcm9tKElRLChmdW5jdGlvbigpe3Rocm93IDJ9KSl9Y2F0Y2godEQpe312YXIgQlEsUVE9ZnVuY3Rpb24oQSxnKXtpZighZyYmIUFRKXJldHVybiExO3ZhciBJPSExO3RyeXt2YXIgQj17fTtCWyRCXT1mdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ST0hMH19fX0sQShCKX1jYXRjaCh0RCl7fXJldHVybiBJfSxDUT0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3LEVRPUNRLGlRPXMsdFE9cixlUT1oLG9RPVYsblE9WEIsclE9SixhUT1hSSxzUT1jLmYsY1E9ekksaFE9REIseVE9RkEsRFE9JCxmUT10US5JbnQ4QXJyYXksdVE9ZlEmJmZRLnByb3RvdHlwZSx3UT10US5VaW50OENsYW1wZWRBcnJheSxkUT13USYmd1EucHJvdG90eXBlLEZRPWZRJiZjUShmUSksbFE9dVEmJmNRKHVRKSxHUT1PYmplY3QucHJvdG90eXBlLFJRPUdRLmlzUHJvdG90eXBlT2YsVVE9eVEoInRvU3RyaW5nVGFnIiksa1E9RFEoIlRZUEVEX0FSUkFZX1RBRyIpLFNRPUVRJiYhIWhRJiYiT3BlcmEiIT09blEodFEub3BlcmEpLE5RPSExLE1RPXtJbnQ4QXJyYXk6MSxVaW50OEFycmF5OjEsVWludDhDbGFtcGVkQXJyYXk6MSxJbnQxNkFycmF5OjIsVWludDE2QXJyYXk6MixJbnQzMkFycmF5OjQsVWludDMyQXJyYXk6NCxGbG9hdDMyQXJyYXk6NCxGbG9hdDY0QXJyYXk6OH0sWVE9e0JpZ0ludDY0QXJyYXk6OCxCaWdVaW50NjRBcnJheTo4fSxIUT1mdW5jdGlvbihBKXtpZighZVEoQSkpcmV0dXJuITE7dmFyIGc9blEoQSk7cmV0dXJuIG9RKE1RLGcpfHxvUShZUSxnKX07Zm9yKEJRIGluIE1RKXRRW0JRXXx8KFNRPSExKTtpZigoIVNRfHwiZnVuY3Rpb24iIT10eXBlb2YgRlF8fEZRPT09RnVuY3Rpb24ucHJvdG90eXBlKSYmKEZRPWZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfSxTUSkpZm9yKEJRIGluIE1RKXRRW0JRXSYmaFEodFFbQlFdLEZRKTtpZigoIVNRfHwhbFF8fGxRPT09R1EpJiYobFE9RlEucHJvdG90eXBlLFNRKSlmb3IoQlEgaW4gTVEpdFFbQlFdJiZoUSh0UVtCUV0ucHJvdG90eXBlLGxRKTtpZihTUSYmY1EoZFEpIT09bFEmJmhRKGRRLGxRKSxpUSYmIW9RKGxRLFVRKSlmb3IoQlEgaW4gTlE9ITAsc1EobFEsVVEse2dldDpmdW5jdGlvbigpe3JldHVybiBlUSh0aGlzKT90aGlzW2tRXTp2b2lkIDB9fSksTVEpdFFbQlFdJiZyUSh0UVtCUV0sa1EsQlEpO3ZhciBwUT17TkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUzpTUSxUWVBFRF9BUlJBWV9UQUc6TlEmJmtRLGFUeXBlZEFycmF5OmZ1bmN0aW9uKEEpe2lmKEhRKEEpKXJldHVybiBBO3Rocm93IFR5cGVFcnJvcigiVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Iil9LGFUeXBlZEFycmF5Q29uc3RydWN0b3I6ZnVuY3Rpb24oQSl7aWYoaFEpe2lmKFJRLmNhbGwoRlEsQSkpcmV0dXJuIEF9ZWxzZSBmb3IodmFyIGcgaW4gTVEpaWYob1EoTVEsQlEpKXt2YXIgST10UVtnXTtpZihJJiYoQT09PUl8fFJRLmNhbGwoSSxBKSkpcmV0dXJuIEF9dGhyb3cgVHlwZUVycm9yKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkgY29uc3RydWN0b3IiKX0sZXhwb3J0VHlwZWRBcnJheU1ldGhvZDpmdW5jdGlvbihBLGcsSSl7aWYoaVEpe2lmKEkpZm9yKHZhciBCIGluIE1RKXt2YXIgUT10UVtCXTtpZihRJiZvUShRLnByb3RvdHlwZSxBKSl0cnl7ZGVsZXRlIFEucHJvdG90eXBlW0FdfWNhdGNoKHREKXt9fWxRW0FdJiYhSXx8YVEobFEsQSxJP2c6U1EmJnVRW0FdfHxnKX19LGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7aWYoaVEpe2lmKGhRKXtpZihJKWZvcihCIGluIE1RKWlmKChRPXRRW0JdKSYmb1EoUSxBKSl0cnl7ZGVsZXRlIFFbQV19Y2F0Y2godEQpe31pZihGUVtBXSYmIUkpcmV0dXJuO3RyeXtyZXR1cm4gYVEoRlEsQSxJP2c6U1EmJkZRW0FdfHxnKX1jYXRjaCh0RCl7fX1mb3IoQiBpbiBNUSkhKFE9dFFbQl0pfHxRW0FdJiYhSXx8YVEoUSxBLGcpfX0saXNWaWV3OmZ1bmN0aW9uKEEpe2lmKCFlUShBKSlyZXR1cm4hMTt2YXIgZz1uUShBKTtyZXR1cm4iRGF0YVZpZXciPT09Z3x8b1EoTVEsZyl8fG9RKFlRLGcpfSxpc1R5cGVkQXJyYXk6SFEsVHlwZWRBcnJheTpGUSxUeXBlZEFycmF5UHJvdG90eXBlOmxRfSxKUT1yLExRPWcsdlE9UVEsS1E9cFEuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyxtUT1KUS5BcnJheUJ1ZmZlcix4UT1KUS5JbnQ4QXJyYXkscVE9IUtRfHwhTFEoKGZ1bmN0aW9uKCl7eFEoMSl9KSl8fCFMUSgoZnVuY3Rpb24oKXtuZXcgeFEoLTEpfSkpfHwhdlEoKGZ1bmN0aW9uKEEpe25ldyB4USxuZXcgeFEobnVsbCksbmV3IHhRKDEuNSksbmV3IHhRKEEpfSksITApfHxMUSgoZnVuY3Rpb24oKXtyZXR1cm4gMSE9PW5ldyB4UShuZXcgbVEoMiksMSx2b2lkIDApLmxlbmd0aH0pKSxiUT1hSSxUUT1mdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCIGluIGcpYlEoQSxCLGdbQl0sSSk7cmV0dXJuIEF9LE9RPWZ1bmN0aW9uKEEsZyxJKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCAiKyhJP0krIiAiOiIiKSsiaW52b2NhdGlvbiIpO3JldHVybiBBfSxXUT1SQSxaUT1TQSxqUT1mdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXJldHVybiAwO3ZhciBnPVdRKEEpLEk9WlEoZyk7aWYoZyE9PUkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIG9yIGluZGV4Iik7cmV0dXJuIEl9LFBRPU1hdGguYWJzLFhRPU1hdGgucG93LFZRPU1hdGguZmxvb3IselE9TWF0aC5sb2csX1E9TWF0aC5MTjIsJFE9aixBQz1IQSxnQz1TQSxJQz1mdW5jdGlvbihBKXtmb3IodmFyIGc9JFEodGhpcyksST1nQyhnLmxlbmd0aCksQj1hcmd1bWVudHMubGVuZ3RoLFE9QUMoQj4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsSSksQz1CPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxFPXZvaWQgMD09PUM/STpBQyhDLEkpO0U+UTspZ1tRKytdPUE7cmV0dXJuIGd9LEJDPXIsUUM9cyxDQz1DUSxFQz1KLGlDPVRRLHRDPWcsZUM9T1Esb0M9UkEsbkM9U0EsckM9alEsYUM9e3BhY2s6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFEsQyxFPW5ldyBBcnJheShJKSxpPTgqSS1nLTEsdD0oMTw8aSktMSxlPXQ+PjEsbz0yMz09PWc/WFEoMiwtMjQpLVhRKDIsLTc3KTowLG49QTwwfHwwPT09QSYmMS9BPDA/MTowLHI9MDtmb3IoKEE9UFEoQSkpIT1BfHxBPT09MS8wPyhRPUEhPUE/MTowLEI9dCk6KEI9VlEoelEoQSkvX1EpLEEqKEM9WFEoMiwtQikpPDEmJihCLS0sQyo9MiksKEErPUIrZT49MT9vL0M6bypYUSgyLDEtZSkpKkM+PTImJihCKyssQy89MiksQitlPj10PyhRPTAsQj10KTpCK2U+PTE/KFE9KEEqQy0xKSpYUSgyLGcpLEIrPWUpOihRPUEqWFEoMixlLTEpKlhRKDIsZyksQj0wKSk7Zz49ODtFW3IrK109MjU1JlEsUS89MjU2LGctPTgpO2ZvcihCPUI8PGd8USxpKz1nO2k+MDtFW3IrK109MjU1JkIsQi89MjU2LGktPTgpO3JldHVybiBFWy0tcl18PTEyOCpuLEV9LHVucGFjazpmdW5jdGlvbihBLGcpe3ZhciBJLEI9QS5sZW5ndGgsUT04KkItZy0xLEM9KDE8PFEpLTEsRT1DPj4xLGk9US03LHQ9Qi0xLGU9QVt0LS1dLG89MTI3JmU7Zm9yKGU+Pj03O2k+MDtvPTI1NipvK0FbdF0sdC0tLGktPTgpO2ZvcihJPW8mKDE8PC1pKS0xLG8+Pj0taSxpKz1nO2k+MDtJPTI1NipJK0FbdF0sdC0tLGktPTgpO2lmKDA9PT1vKW89MS1FO2Vsc2V7aWYobz09PUMpcmV0dXJuIEk/TmFOOmU/LTEvMDoxLzA7SSs9WFEoMixnKSxvLT1FfXJldHVybihlPy0xOjEpKkkqWFEoMixvLWcpfX0sc0M9ekksY0M9REIsaEM9c0kuZix5Qz1jLmYsREM9SUMsZkM9dEIsdUM9T2cuZ2V0LHdDPU9nLnNldCxkQz0iQXJyYXlCdWZmZXIiLEZDPSJEYXRhVmlldyIsbEM9InByb3RvdHlwZSIsR0M9Ildyb25nIGluZGV4IixSQz1CQ1tkQ10sVUM9UkMsa0M9QkNbRkNdLFNDPWtDJiZrQ1tsQ10sTkM9T2JqZWN0LnByb3RvdHlwZSxNQz1CQy5SYW5nZUVycm9yLFlDPWFDLnBhY2ssSEM9YUMudW5wYWNrLHBDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQV19LEpDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NV19LExDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NSxBPj4xNiYyNTUsQT4+MjQmMjU1XX0sdkM9ZnVuY3Rpb24oQSl7cmV0dXJuIEFbM108PDI0fEFbMl08PDE2fEFbMV08PDh8QVswXX0sS0M9ZnVuY3Rpb24oQSl7cmV0dXJuIFlDKEEsMjMsNCl9LG1DPWZ1bmN0aW9uKEEpe3JldHVybiBZQyhBLDUyLDgpfSx4Qz1mdW5jdGlvbihBLGcpe3lDKEFbbENdLGcse2dldDpmdW5jdGlvbigpe3JldHVybiB1Qyh0aGlzKVtnXX19KX0scUM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9ckMoSSksQz11QyhBKTtpZihRK2c+Qy5ieXRlTGVuZ3RoKXRocm93IE1DKEdDKTt2YXIgRT11QyhDLmJ1ZmZlcikuYnl0ZXMsaT1RK0MuYnl0ZU9mZnNldCx0PUUuc2xpY2UoaSxpK2cpO3JldHVybiBCP3Q6dC5yZXZlcnNlKCl9LGJDPWZ1bmN0aW9uKEEsZyxJLEIsUSxDKXt2YXIgRT1yQyhJKSxpPXVDKEEpO2lmKEUrZz5pLmJ5dGVMZW5ndGgpdGhyb3cgTUMoR0MpO2Zvcih2YXIgdD11QyhpLmJ1ZmZlcikuYnl0ZXMsZT1FK2kuYnl0ZU9mZnNldCxvPUIoK1EpLG49MDtuPGc7bisrKXRbZStuXT1vW0M/bjpnLW4tMV19O2lmKENDKXtpZighdEMoKGZ1bmN0aW9uKCl7UkMoMSl9KSl8fCF0QygoZnVuY3Rpb24oKXtuZXcgUkMoLTEpfSkpfHx0QygoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFJDLG5ldyBSQygxLjUpLG5ldyBSQyhOYU4pLFJDLm5hbWUhPWRDfSkpKXtmb3IodmFyIFRDLE9DPShVQz1mdW5jdGlvbihBKXtyZXR1cm4gZUModGhpcyxVQyksbmV3IFJDKHJDKEEpKX0pW2xDXT1SQ1tsQ10sV0M9aEMoUkMpLFpDPTA7V0MubGVuZ3RoPlpDOykoVEM9V0NbWkMrK10paW4gVUN8fEVDKFVDLFRDLFJDW1RDXSk7T0MuY29uc3RydWN0b3I9VUN9Y0MmJnNDKFNDKSE9PU5DJiZjQyhTQyxOQyk7dmFyIGpDPW5ldyBrQyhuZXcgVUMoMikpLFBDPVNDLnNldEludDg7akMuc2V0SW50OCgwLDIxNDc0ODM2NDgpLGpDLnNldEludDgoMSwyMTQ3NDgzNjQ5KSwhakMuZ2V0SW50OCgwKSYmakMuZ2V0SW50OCgxKXx8aUMoU0Mse3NldEludDg6ZnVuY3Rpb24oQSxnKXtQQy5jYWxsKHRoaXMsQSxnPDwyND4+MjQpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe1BDLmNhbGwodGhpcyxBLGc8PDI0Pj4yNCl9fSx7dW5zYWZlOiEwfSl9ZWxzZSBVQz1mdW5jdGlvbihBKXtlQyh0aGlzLFVDLGRDKTt2YXIgZz1yQyhBKTt3Qyh0aGlzLHtieXRlczpEQy5jYWxsKG5ldyBBcnJheShnKSwwKSxieXRlTGVuZ3RoOmd9KSxRQ3x8KHRoaXMuYnl0ZUxlbmd0aD1nKX0sa0M9ZnVuY3Rpb24oQSxnLEkpe2VDKHRoaXMsa0MsRkMpLGVDKEEsVUMsRkMpO3ZhciBCPXVDKEEpLmJ5dGVMZW5ndGgsUT1vQyhnKTtpZihRPDB8fFE+Qil0aHJvdyBNQygiV3Jvbmcgb2Zmc2V0Iik7aWYoUSsoST12b2lkIDA9PT1JP0ItUTpuQyhJKSk+Qil0aHJvdyBNQygiV3JvbmcgbGVuZ3RoIik7d0ModGhpcyx7YnVmZmVyOkEsYnl0ZUxlbmd0aDpJLGJ5dGVPZmZzZXQ6UX0pLFFDfHwodGhpcy5idWZmZXI9QSx0aGlzLmJ5dGVMZW5ndGg9SSx0aGlzLmJ5dGVPZmZzZXQ9USl9LFFDJiYoeEMoVUMsImJ5dGVMZW5ndGgiKSx4QyhrQywiYnVmZmVyIikseEMoa0MsImJ5dGVMZW5ndGgiKSx4QyhrQywiYnl0ZU9mZnNldCIpKSxpQyhrQ1tsQ10se2dldEludDg6ZnVuY3Rpb24oQSl7cmV0dXJuIHFDKHRoaXMsMSxBKVswXTw8MjQ+PjI0fSxnZXRVaW50ODpmdW5jdGlvbihBKXtyZXR1cm4gcUModGhpcywxLEEpWzBdfSxnZXRJbnQxNjpmdW5jdGlvbihBKXt2YXIgZz1xQyh0aGlzLDIsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuKGdbMV08PDh8Z1swXSk8PDE2Pj4xNn0sZ2V0VWludDE2OmZ1bmN0aW9uKEEpe3ZhciBnPXFDKHRoaXMsMixBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4gZ1sxXTw8OHxnWzBdfSxnZXRJbnQzMjpmdW5jdGlvbihBKXtyZXR1cm4gdkMocUModGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApKX0sZ2V0VWludDMyOmZ1bmN0aW9uKEEpe3JldHVybiB2QyhxQyh0aGlzLDQsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbihBKXtyZXR1cm4gSEMocUModGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDIzKX0sZ2V0RmxvYXQ2NDpmdW5jdGlvbihBKXtyZXR1cm4gSEMocUModGhpcyw4LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDUyKX0sc2V0SW50ODpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMSxBLHBDLGcpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMSxBLHBDLGcpfSxzZXRJbnQxNjpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMixBLEpDLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSxzZXRVaW50MTY6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDIsQSxKQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0SW50MzI6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDQsQSxMQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0VWludDMyOmZ1bmN0aW9uKEEsZyl7YkModGhpcyw0LEEsTEMsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldEZsb2F0MzI6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDQsQSxLQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0RmxvYXQ2NDpmdW5jdGlvbihBLGcpe2JDKHRoaXMsOCxBLG1DLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfX0pO2ZDKFVDLGRDKSxmQyhrQyxGQyk7dmFyIFhDPXtBcnJheUJ1ZmZlcjpVQyxEYXRhVmlldzprQ30sVkM9UkEsekM9ZnVuY3Rpb24oQSl7dmFyIGc9VkMoQSk7aWYoZzwwKXRocm93IFJhbmdlRXJyb3IoIlRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMCIpO3JldHVybiBnfSxfQz1mdW5jdGlvbihBLGcpe3ZhciBJPXpDKEEpO2lmKEklZyl0aHJvdyBSYW5nZUVycm9yKCJXcm9uZyBvZmZzZXQiKTtyZXR1cm4gSX0sJEM9WEIsQUU9d2csZ0U9RkEoIml0ZXJhdG9yIiksSUU9ZnVuY3Rpb24oQSl7aWYobnVsbCE9QSlyZXR1cm4gQVtnRV18fEFbIkBAaXRlcmF0b3IiXXx8QUVbJEMoQSldfSxCRT13ZyxRRT1GQSgiaXRlcmF0b3IiKSxDRT1BcnJheS5wcm90b3R5cGUsRUU9ZnVuY3Rpb24oQSl7cmV0dXJuIHZvaWQgMCE9PUEmJihCRS5BcnJheT09PUF8fENFW1FFXT09PUEpfSxpRT1mdW5jdGlvbihBKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQSl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKEEpKyIgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4gQX0sdEU9aUUsZUU9ZnVuY3Rpb24oQSxnLEkpe2lmKHRFKEEpLHZvaWQgMD09PWcpcmV0dXJuIEE7c3dpdGNoKEkpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5jYWxsKGcpfTtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKEkpe3JldHVybiBBLmNhbGwoZyxJKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBBLmNhbGwoZyxJLEIpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKEksQixRKXtyZXR1cm4gQS5jYWxsKGcsSSxCLFEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShnLGFyZ3VtZW50cyl9fSxvRT1qLG5FPVNBLHJFPUlFLGFFPUVFLHNFPWVFLGNFPXBRLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsaEU9Qix5RT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihBKXtyZXR1cm4iQXJyYXkiPT1oRShBKX0sREU9aCxmRT15RSx1RT1GQSgic3BlY2llcyIpLHdFPWZ1bmN0aW9uKEEsZyl7dmFyIEk7cmV0dXJuIGZFKEEpJiYoImZ1bmN0aW9uIiE9dHlwZW9mKEk9QS5jb25zdHJ1Y3Rvcil8fEkhPT1BcnJheSYmIWZFKEkucHJvdG90eXBlKT9ERShJKSYmbnVsbD09PShJPUlbdUVdKSYmKEk9dm9pZCAwKTpJPXZvaWQgMCksbmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoMD09PWc/MDpnKX0sZEU9ZUUsRkU9RSxsRT1qLEdFPVNBLFJFPXdFLFVFPVtdLnB1c2gsa0U9ZnVuY3Rpb24oQSl7dmFyIGc9MT09QSxJPTI9PUEsQj0zPT1BLFE9ND09QSxDPTY9PUEsRT03PT1BLGk9NT09QXx8QztyZXR1cm4gZnVuY3Rpb24odCxlLG8sbil7Zm9yKHZhciByLGEscz1sRSh0KSxjPUZFKHMpLGg9ZEUoZSxvLDMpLHk9R0UoYy5sZW5ndGgpLEQ9MCxmPW58fFJFLHU9Zz9mKHQseSk6SXx8RT9mKHQsMCk6dm9pZCAwO3k+RDtEKyspaWYoKGl8fEQgaW4gYykmJihhPWgocj1jW0RdLEQscyksQSkpaWYoZyl1W0RdPWE7ZWxzZSBpZihhKXN3aXRjaChBKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiByO2Nhc2UgNjpyZXR1cm4gRDtjYXNlIDI6VUUuY2FsbCh1LHIpfWVsc2Ugc3dpdGNoKEEpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6VUUuY2FsbCh1LHIpfXJldHVybiBDPy0xOkJ8fFE/UTp1fX0sU0U9e2ZvckVhY2g6a0UoMCksbWFwOmtFKDEpLGZpbHRlcjprRSgyKSxzb21lOmtFKDMpLGV2ZXJ5OmtFKDQpLGZpbmQ6a0UoNSksZmluZEluZGV4OmtFKDYpLGZpbHRlck91dDprRSg3KX0sTkU9QkEsTUU9YyxZRT1zLEhFPUZBKCJzcGVjaWVzIikscEU9ZnVuY3Rpb24oQSl7dmFyIGc9TkUoQSksST1NRS5mO1lFJiZnJiYhZ1tIRV0mJkkoZyxIRSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfSxKRT1oLExFPURCLHZFPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRO3JldHVybiBMRSYmImZ1bmN0aW9uIj09dHlwZW9mKEI9Zy5jb25zdHJ1Y3RvcikmJkIhPT1JJiZKRShRPUIucHJvdG90eXBlKSYmUSE9PUkucHJvdG90eXBlJiZMRShBLFEpLEF9LEtFPU9JLG1FPXIseEU9cyxxRT1xUSxiRT1wUSxURT1YQyxPRT1PUSxXRT1ZLFpFPUosakU9U0EsUEU9alEsWEU9X0MsVkU9Uix6RT1WLF9FPVhCLCRFPWgsQWk9Y2csZ2k9REIsSWk9c0kuZixCaT1mdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxDLEUsaT1vRShBKSx0PWFyZ3VtZW50cy5sZW5ndGgsZT10PjE/YXJndW1lbnRzWzFdOnZvaWQgMCxvPXZvaWQgMCE9PWUsbj1yRShpKTtpZihudWxsIT1uJiYhYUUobikpZm9yKEU9KEM9bi5jYWxsKGkpKS5uZXh0LGk9W107IShRPUUuY2FsbChDKSkuZG9uZTspaS5wdXNoKFEudmFsdWUpO2ZvcihvJiZ0PjImJihlPXNFKGUsYXJndW1lbnRzWzJdLDIpKSxJPW5FKGkubGVuZ3RoKSxCPW5ldyhjRSh0aGlzKSkoSSksZz0wO0k+ZztnKyspQltnXT1vP2UoaVtnXSxnKTppW2ddO3JldHVybiBCfSxRaT1TRS5mb3JFYWNoLENpPXBFLEVpPWMsaWk9V2csdGk9dkUsZWk9T2cuZ2V0LG9pPU9nLnNldCxuaT1FaS5mLHJpPWlpLmYsYWk9TWF0aC5yb3VuZCxzaT1tRS5SYW5nZUVycm9yLGNpPVRFLkFycmF5QnVmZmVyLGhpPVRFLkRhdGFWaWV3LHlpPWJFLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MsRGk9YkUuVFlQRURfQVJSQVlfVEFHLGZpPWJFLlR5cGVkQXJyYXksdWk9YkUuVHlwZWRBcnJheVByb3RvdHlwZSx3aT1iRS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLGRpPWJFLmlzVHlwZWRBcnJheSxGaT0iQllURVNfUEVSX0VMRU1FTlQiLGxpPSJXcm9uZyBsZW5ndGgiLEdpPWZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPTAsQj1nLmxlbmd0aCxRPW5ldyh3aShBKSkoQik7Qj5JOylRW0ldPWdbSSsrXTtyZXR1cm4gUX0sUmk9ZnVuY3Rpb24oQSxnKXtuaShBLGcse2dldDpmdW5jdGlvbigpe3JldHVybiBlaSh0aGlzKVtnXX19KX0sVWk9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuIEEgaW5zdGFuY2VvZiBjaXx8IkFycmF5QnVmZmVyIj09KGc9X0UoQSkpfHwiU2hhcmVkQXJyYXlCdWZmZXIiPT1nfSxraT1mdW5jdGlvbihBLGcpe3JldHVybiBkaShBKSYmInN5bWJvbCIhPXR5cGVvZiBnJiZnIGluIEEmJlN0cmluZygrZyk9PVN0cmluZyhnKX0sU2k9ZnVuY3Rpb24oQSxnKXtyZXR1cm4ga2koQSxnPVZFKGcsITApKT9XRSgyLEFbZ10pOnJpKEEsZyl9LE5pPWZ1bmN0aW9uKEEsZyxJKXtyZXR1cm4hKGtpKEEsZz1WRShnLCEwKSkmJiRFKEkpJiZ6RShJLCJ2YWx1ZSIpKXx8ekUoSSwiZ2V0Iil8fHpFKEksInNldCIpfHxJLmNvbmZpZ3VyYWJsZXx8ekUoSSwid3JpdGFibGUiKSYmIUkud3JpdGFibGV8fHpFKEksImVudW1lcmFibGUiKSYmIUkuZW51bWVyYWJsZT9uaShBLGcsSSk6KEFbZ109SS52YWx1ZSxBKX07eEU/KHlpfHwoaWkuZj1TaSxFaS5mPU5pLFJpKHVpLCJidWZmZXIiKSxSaSh1aSwiYnl0ZU9mZnNldCIpLFJpKHVpLCJieXRlTGVuZ3RoIiksUmkodWksImxlbmd0aCIpKSxLRSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiF5aX0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpTaSxkZWZpbmVQcm9wZXJ0eTpOaX0pLF9CLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPUEubWF0Y2goL1xkKyQvKVswXS84LFE9QSsoST8iQ2xhbXBlZCI6IiIpKyJBcnJheSIsQz0iZ2V0IitBLEU9InNldCIrQSxpPW1FW1FdLHQ9aSxlPXQmJnQucHJvdG90eXBlLG89e30sbj1mdW5jdGlvbihBLGcpe25pKEEsZyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKEEsZyl7dmFyIEk9ZWkoQSk7cmV0dXJuIEkudmlld1tDXShnKkIrSS5ieXRlT2Zmc2V0LCEwKX0odGhpcyxnKX0sc2V0OmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihBLGcsUSl7dmFyIEM9ZWkoQSk7SSYmKFE9KFE9YWkoUSkpPDA/MDpRPjI1NT8yNTU6MjU1JlEpLEMudmlld1tFXShnKkIrQy5ieXRlT2Zmc2V0LFEsITApfSh0aGlzLGcsQSl9LGVudW1lcmFibGU6ITB9KX07eWk/cUUmJih0PWcoKGZ1bmN0aW9uKEEsZyxJLEMpe3JldHVybiBPRShBLHQsUSksdGkoJEUoZyk/VWkoZyk/dm9pZCAwIT09Qz9uZXcgaShnLFhFKEksQiksQyk6dm9pZCAwIT09ST9uZXcgaShnLFhFKEksQikpOm5ldyBpKGcpOmRpKGcpP0dpKHQsZyk6QmkuY2FsbCh0LGcpOm5ldyBpKFBFKGcpKSxBLHQpfSkpLGdpJiZnaSh0LGZpKSxRaShJaShpKSwoZnVuY3Rpb24oQSl7QSBpbiB0fHxaRSh0LEEsaVtBXSl9KSksdC5wcm90b3R5cGU9ZSk6KHQ9ZygoZnVuY3Rpb24oQSxnLEksQyl7T0UoQSx0LFEpO3ZhciBFLGksZSxvPTAscj0wO2lmKCRFKGcpKXtpZighVWkoZykpcmV0dXJuIGRpKGcpP0dpKHQsZyk6QmkuY2FsbCh0LGcpO0U9ZyxyPVhFKEksQik7dmFyIGE9Zy5ieXRlTGVuZ3RoO2lmKHZvaWQgMD09PUMpe2lmKGElQil0aHJvdyBzaShsaSk7aWYoKGk9YS1yKTwwKXRocm93IHNpKGxpKX1lbHNlIGlmKChpPWpFKEMpKkIpK3I+YSl0aHJvdyBzaShsaSk7ZT1pL0J9ZWxzZSBlPVBFKGcpLEU9bmV3IGNpKGk9ZSpCKTtmb3Iob2koQSx7YnVmZmVyOkUsYnl0ZU9mZnNldDpyLGJ5dGVMZW5ndGg6aSxsZW5ndGg6ZSx2aWV3Om5ldyBoaShFKX0pO288ZTspbihBLG8rKyl9KSksZ2kmJmdpKHQsZmkpLGU9dC5wcm90b3R5cGU9QWkodWkpKSxlLmNvbnN0cnVjdG9yIT09dCYmWkUoZSwiY29uc3RydWN0b3IiLHQpLERpJiZaRShlLERpLFEpLG9bUV09dCxLRSh7Z2xvYmFsOiEwLGZvcmNlZDp0IT1pLHNoYW06IXlpfSxvKSxGaSBpbiB0fHxaRSh0LEZpLEIpLEZpIGluIGV8fFpFKGUsRmksQiksQ2koUSl9KTpfQi5leHBvcnRzPWZ1bmN0aW9uKCl7fTt2YXIgTWk9X0IuZXhwb3J0cztNaSgiVWludDgiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKTt2YXIgWWk9aixIaT1IQSxwaT1TQSxKaT1NYXRoLm1pbixMaT1bXS5jb3B5V2l0aGlufHxmdW5jdGlvbihBLGcpe3ZhciBJPVlpKHRoaXMpLEI9cGkoSS5sZW5ndGgpLFE9SGkoQSxCKSxDPUhpKGcsQiksRT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxpPUppKCh2b2lkIDA9PT1FP0I6SGkoRSxCKSktQyxCLVEpLHQ9MTtmb3IoQzxRJiZRPEMraSYmKHQ9LTEsQys9aS0xLFErPWktMSk7aS0tID4wOylDIGluIEk/SVtRXT1JW0NdOmRlbGV0ZSBJW1FdLFErPXQsQys9dDtyZXR1cm4gSX0sdmk9TGksS2k9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImNvcHlXaXRoaW4iLChmdW5jdGlvbihBLGcpe3JldHVybiB2aS5jYWxsKEtpKHRoaXMpLEEsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9KSk7dmFyIG1pPVNFLmV2ZXJ5LHhpPXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJldmVyeSIsKGZ1bmN0aW9uKEEpe3JldHVybiBtaSh4aSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgcWk9SUMsYmk9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbGwiLChmdW5jdGlvbihBKXtyZXR1cm4gcWkuYXBwbHkoYmkodGhpcyksYXJndW1lbnRzKX0pKTt2YXIgVGk9bCxPaT1pRSxXaT1GQSgic3BlY2llcyIpLFppPWZ1bmN0aW9uKEEsZyl7dmFyIEksQj1UaShBKS5jb25zdHJ1Y3RvcjtyZXR1cm4gdm9pZCAwPT09Qnx8bnVsbD09KEk9VGkoQilbV2ldKT9nOk9pKEkpfSxqaT1wUS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLFBpPVppLFhpPVNFLmZpbHRlcixWaT1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QaShBLEEuY29uc3RydWN0b3IpLEI9MCxRPWcubGVuZ3RoLEM9bmV3KGppKEkpKShRKTtRPkI7KUNbQl09Z1tCKytdO3JldHVybiBDfSx6aT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmlsdGVyIiwoZnVuY3Rpb24oQSl7dmFyIGc9WGkoemkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIFZpKHRoaXMsZyl9KSk7dmFyIF9pPVNFLmZpbmQsJGk9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbmQiLChmdW5jdGlvbihBKXtyZXR1cm4gX2koJGkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIEF0PVNFLmZpbmRJbmRleCxndD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmluZEluZGV4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIEF0KGd0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBJdD1TRS5mb3JFYWNoLEJ0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJmb3JFYWNoIiwoZnVuY3Rpb24oQSl7SXQoQnQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIFF0PUtBLmluY2x1ZGVzLEN0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJpbmNsdWRlcyIsKGZ1bmN0aW9uKEEpe3JldHVybiBRdChDdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgRXQ9S0EuaW5kZXhPZixpdD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiaW5kZXhPZiIsKGZ1bmN0aW9uKEEpe3JldHVybiBFdChpdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgdHQ9cixldD1wUSxvdD1iQixudD1GQSgiaXRlcmF0b3IiKSxydD10dC5VaW50OEFycmF5LGF0PW90LnZhbHVlcyxzdD1vdC5rZXlzLGN0PW90LmVudHJpZXMsaHQ9ZXQuYVR5cGVkQXJyYXkseXQ9ZXQuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxEdD1ydCYmcnQucHJvdG90eXBlW250XSxmdD0hIUR0JiYoInZhbHVlcyI9PUR0Lm5hbWV8fG51bGw9PUR0Lm5hbWUpLHV0PWZ1bmN0aW9uKCl7cmV0dXJuIGF0LmNhbGwoaHQodGhpcykpfTt5dCgiZW50cmllcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN0LmNhbGwoaHQodGhpcykpfSkpLHl0KCJrZXlzIiwoZnVuY3Rpb24oKXtyZXR1cm4gc3QuY2FsbChodCh0aGlzKSl9KSkseXQoInZhbHVlcyIsdXQsIWZ0KSx5dChudCx1dCwhZnQpO3ZhciB3dD1wUS5hVHlwZWRBcnJheSxkdD1bXS5qb2luOygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJqb2luIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGR0LmFwcGx5KHd0KHRoaXMpLGFyZ3VtZW50cyl9KSk7dmFyIEZ0PWcsbHQ9ZnVuY3Rpb24oQSxnKXt2YXIgST1bXVtBXTtyZXR1cm4hIUkmJkZ0KChmdW5jdGlvbigpe0kuY2FsbChudWxsLGd8fGZ1bmN0aW9uKCl7dGhyb3cgMX0sMSl9KSl9LEd0PW8sUnQ9UkEsVXQ9U0Esa3Q9bHQsU3Q9TWF0aC5taW4sTnQ9W10ubGFzdEluZGV4T2YsTXQ9ISFOdCYmMS9bMV0ubGFzdEluZGV4T2YoMSwtMCk8MCxZdD1rdCgibGFzdEluZGV4T2YiKSxIdD1NdHx8IVl0P2Z1bmN0aW9uKEEpe2lmKE10KXJldHVybiBOdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA7dmFyIGc9R3QodGhpcyksST1VdChnLmxlbmd0aCksQj1JLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKEI9U3QoQixSdChhcmd1bWVudHNbMV0pKSksQjwwJiYoQj1JK0IpO0I+PTA7Qi0tKWlmKEIgaW4gZyYmZ1tCXT09PUEpcmV0dXJuIEJ8fDA7cmV0dXJuLTF9Ok50LHB0PUh0LEp0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJsYXN0SW5kZXhPZiIsKGZ1bmN0aW9uKEEpe3JldHVybiBwdC5hcHBseShKdCh0aGlzKSxhcmd1bWVudHMpfSkpO3ZhciBMdD1TRS5tYXAsdnQ9WmksS3Q9cFEuYVR5cGVkQXJyYXksbXQ9cFEuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgibWFwIiwoZnVuY3Rpb24oQSl7cmV0dXJuIEx0KEt0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIG5ldyhtdCh2dChBLEEuY29uc3RydWN0b3IpKSkoZyl9KSl9KSk7dmFyIHh0PWlFLHF0PWosYnQ9RSxUdD1TQSxPdD1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIsUSl7eHQoSSk7dmFyIEM9cXQoZyksRT1idChDKSxpPVR0KEMubGVuZ3RoKSx0PUE/aS0xOjAsZT1BPy0xOjE7aWYoQjwyKWZvcig7Oyl7aWYodCBpbiBFKXtRPUVbdF0sdCs9ZTticmVha31pZih0Kz1lLEE/dDwwOmk8PXQpdGhyb3cgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIil9Zm9yKDtBP3Q+PTA6aT50O3QrPWUpdCBpbiBFJiYoUT1JKFEsRVt0XSx0LEMpKTtyZXR1cm4gUX19LFd0PXtsZWZ0Ok90KCExKSxyaWdodDpPdCghMCl9LFp0PVd0LmxlZnQsanQ9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInJlZHVjZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBadChqdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBQdD1XdC5yaWdodCxYdD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgicmVkdWNlUmlnaHQiLChmdW5jdGlvbihBKXtyZXR1cm4gUHQoWHQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgVnQ9cFEuYVR5cGVkQXJyYXksenQ9cFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxfdD1NYXRoLmZsb29yO3p0KCJyZXZlcnNlIiwoZnVuY3Rpb24oKXtmb3IodmFyIEEsZz10aGlzLEk9VnQoZykubGVuZ3RoLEI9X3QoSS8yKSxRPTA7UTxCOylBPWdbUV0sZ1tRKytdPWdbLS1JXSxnW0ldPUE7cmV0dXJuIGd9KSk7dmFyICR0PVNBLEFlPV9DLGdlPWosSWU9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNldCIsKGZ1bmN0aW9uKEEpe0llKHRoaXMpO3ZhciBnPUFlKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDEpLEk9dGhpcy5sZW5ndGgsQj1nZShBKSxRPSR0KEIubGVuZ3RoKSxDPTA7aWYoUStnPkkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIik7Zm9yKDtDPFE7KXRoaXNbZytDXT1CW0MrK119KSxnKChmdW5jdGlvbigpe25ldyBJbnQ4QXJyYXkoMSkuc2V0KHt9KX0pKSk7dmFyIEJlPVppLFFlPXBRLmFUeXBlZEFycmF5LENlPXBRLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsRWU9W10uc2xpY2U7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNsaWNlIiwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9RWUuY2FsbChRZSh0aGlzKSxBLGcpLEI9QmUodGhpcyx0aGlzLmNvbnN0cnVjdG9yKSxRPTAsQz1JLmxlbmd0aCxFPW5ldyhDZShCKSkoQyk7Qz5ROylFW1FdPUlbUSsrXTtyZXR1cm4gRX0pLGcoKGZ1bmN0aW9uKCl7bmV3IEludDhBcnJheSgxKS5zbGljZSgpfSkpKTt2YXIgaWU9U0Uuc29tZSx0ZT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29tZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBpZSh0ZSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgZWU9cFEuYVR5cGVkQXJyYXksb2U9W10uc29ydDsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29ydCIsKGZ1bmN0aW9uKEEpe3JldHVybiBvZS5jYWxsKGVlKHRoaXMpLEEpfSkpO3ZhciBuZT1TQSxyZT1IQSxhZT1aaSxzZT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic3ViYXJyYXkiLChmdW5jdGlvbihBLGcpe3ZhciBJPXNlKHRoaXMpLEI9SS5sZW5ndGgsUT1yZShBLEIpO3JldHVybiBuZXcoYWUoSSxJLmNvbnN0cnVjdG9yKSkoSS5idWZmZXIsSS5ieXRlT2Zmc2V0K1EqSS5CWVRFU19QRVJfRUxFTUVOVCxuZSgodm9pZCAwPT09Zz9COnJlKGcsQikpLVEpKX0pKTt2YXIgY2U9cFEsaGU9Zyx5ZT1yLkludDhBcnJheSxEZT1jZS5hVHlwZWRBcnJheSxmZT1jZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kLHVlPVtdLnRvTG9jYWxlU3RyaW5nLHdlPVtdLnNsaWNlLGRlPSEheWUmJmhlKChmdW5jdGlvbigpe3VlLmNhbGwobmV3IHllKDEpKX0pKTtmZSgidG9Mb2NhbGVTdHJpbmciLChmdW5jdGlvbigpe3JldHVybiB1ZS5hcHBseShkZT93ZS5jYWxsKERlKHRoaXMpKTpEZSh0aGlzKSxhcmd1bWVudHMpfSksaGUoKGZ1bmN0aW9uKCl7cmV0dXJuWzEsMl0udG9Mb2NhbGVTdHJpbmcoKSE9bmV3IHllKFsxLDJdKS50b0xvY2FsZVN0cmluZygpfSkpfHwhaGUoKGZ1bmN0aW9uKCl7eWUucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpKTt2YXIgRmU9cFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxsZT1nLEdlPXIuVWludDhBcnJheSxSZT1HZSYmR2UucHJvdG90eXBlfHx7fSxVZT1bXS50b1N0cmluZyxrZT1bXS5qb2luO2xlKChmdW5jdGlvbigpe1VlLmNhbGwoe30pfSkpJiYoVWU9ZnVuY3Rpb24oKXtyZXR1cm4ga2UuY2FsbCh0aGlzKX0pO3ZhciBTZT1SZS50b1N0cmluZyE9VWU7RmUoInRvU3RyaW5nIixVZSxTZSk7dmFyIE5lPVNFLmZvckVhY2gsTWU9bHQoImZvckVhY2giKT9bXS5mb3JFYWNoOmZ1bmN0aW9uKEEpe3JldHVybiBOZSh0aGlzLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSxZZT1yLEhlPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfSxwZT1NZSxKZT1KO2Zvcih2YXIgTGUgaW4gSGUpe3ZhciB2ZT1ZZVtMZV0sS2U9dmUmJnZlLnByb3RvdHlwZTtpZihLZSYmS2UuZm9yRWFjaCE9PXBlKXRyeXtKZShLZSwiZm9yRWFjaCIscGUpfWNhdGNoKHREKXtLZS5mb3JFYWNoPXBlfX12YXIgbWU9cyx4ZT1nLHFlPVBBLGJlPXlJLFRlPVpnLE9lPWosV2U9RSxaZT1PYmplY3QuYXNzaWduLGplPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxQZT0hWmV8fHhlKChmdW5jdGlvbigpe2lmKG1lJiYxIT09WmUoe2I6MX0sWmUoamUoe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2plKHRoaXMsImIiLHt2YWx1ZTozLGVudW1lcmFibGU6ITF9KX19KSx7YjoyfSkpLmIpcmV0dXJuITA7dmFyIEE9e30sZz17fSxJPVN5bWJvbCgpLEI9ImFiY2RlZmdoaWprbG1ub3BxcnN0IjtyZXR1cm4gQVtJXT03LEIuc3BsaXQoIiIpLmZvckVhY2goKGZ1bmN0aW9uKEEpe2dbQV09QX0pKSw3IT1aZSh7fSxBKVtJXXx8cWUoWmUoe30sZykpLmpvaW4oIiIpIT1CfSkpP2Z1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPU9lKEEpLEI9YXJndW1lbnRzLmxlbmd0aCxRPTEsQz1iZS5mLEU9VGUuZjtCPlE7KWZvcih2YXIgaSx0PVdlKGFyZ3VtZW50c1tRKytdKSxlPUM/cWUodCkuY29uY2F0KEModCkpOnFlKHQpLG89ZS5sZW5ndGgsbj0wO28+bjspaT1lW24rK10sbWUmJiFFLmNhbGwodCxpKXx8KElbaV09dFtpXSk7cmV0dXJuIEl9OlplLFhlPVBlO09JKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6T2JqZWN0LmFzc2lnbiE9PVhlfSx7YXNzaWduOlhlfSk7dmFyIFZlPVIsemU9YyxfZT1ZLCRlPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1WZShnKTtCIGluIEE/emUuZihBLEIsX2UoMCxJKSk6QVtCXT1JfSxBbz1nLGdvPW9BLElvPUZBKCJzcGVjaWVzIiksQm89ZnVuY3Rpb24oQSl7cmV0dXJuIGdvPj01MXx8IUFvKChmdW5jdGlvbigpe3ZhciBnPVtdO3JldHVybihnLmNvbnN0cnVjdG9yPXt9KVtJb109ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09Z1tBXShCb29sZWFuKS5mb299KSl9LFFvPU9JLENvPWgsRW89eUUsaW89SEEsdG89U0EsZW89byxvbz0kZSxubz1GQSxybz1Cbygic2xpY2UiKSxhbz1ubygic3BlY2llcyIpLHNvPVtdLnNsaWNlLGNvPU1hdGgubWF4O2Z1bmN0aW9uIGhvKEEsZyl7aWYoIShBIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24geW8oQSxnKXtmb3IodmFyIEk9MDtJPGcubGVuZ3RoO0krKyl7dmFyIEI9Z1tJXTtCLmVudW1lcmFibGU9Qi5lbnVtZXJhYmxlfHwhMSxCLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gQiYmKEIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLEdvKEIua2V5KSxCKX19ZnVuY3Rpb24gRG8oQSxnLEkpe3JldHVybiBnJiZ5byhBLnByb3RvdHlwZSxnKSxJJiZ5byhBLEkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLEF9ZnVuY3Rpb24gZm8oQSxnLEkpe3JldHVybihnPUdvKGcpKWluIEE/T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsZyx7dmFsdWU6SSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOkFbZ109SSxBfWZ1bmN0aW9uIHVvKEEsZyl7cmV0dXJuIGZ1bmN0aW9uKEEpe2lmKEFycmF5LmlzQXJyYXkoQSkpcmV0dXJuIEF9KEEpfHxmdW5jdGlvbihBLGcpe3ZhciBJPW51bGw9PUE/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmQVtTeW1ib2wuaXRlcmF0b3JdfHxBWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9SSl7dmFyIEIsUSxDLEUsaT1bXSx0PSEwLGU9ITE7dHJ5e2lmKEM9KEk9SS5jYWxsKEEpKS5uZXh0LDA9PT1nKXtpZihPYmplY3QoSSkhPT1JKXJldHVybjt0PSExfWVsc2UgZm9yKDshKHQ9KEI9Qy5jYWxsKEkpKS5kb25lKSYmKGkucHVzaChCLnZhbHVlKSxpLmxlbmd0aCE9PWcpO3Q9ITApO31jYXRjaChvKXtlPSEwLFE9b31maW5hbGx5e3RyeXtpZighdCYmbnVsbCE9SS5yZXR1cm4mJihFPUkucmV0dXJuKCksT2JqZWN0KEUpIT09RSkpcmV0dXJufWZpbmFsbHl7aWYoZSl0aHJvdyBRfX1yZXR1cm4gaX19KEEsZyl8fEZvKEEsZyl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB3byhBKXtyZXR1cm4gZnVuY3Rpb24oQSl7aWYoQXJyYXkuaXNBcnJheShBKSlyZXR1cm4gbG8oQSl9KEEpfHxmdW5jdGlvbihBKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9QVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1BWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oQSl9KEEpfHxGbyhBKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBGbyhBLGcpe2lmKEEpe2lmKCJzdHJpbmciPT10eXBlb2YgQSlyZXR1cm4gbG8oQSxnKTt2YXIgST1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1JJiZBLmNvbnN0cnVjdG9yJiYoST1BLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09SXx8IlNldCI9PT1JP0FycmF5LmZyb20oQSk6IkFyZ3VtZW50cyI9PT1JfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChJKT9sbyhBLGcpOnZvaWQgMH19ZnVuY3Rpb24gbG8oQSxnKXsobnVsbD09Z3x8Zz5BLmxlbmd0aCkmJihnPUEubGVuZ3RoKTtmb3IodmFyIEk9MCxCPW5ldyBBcnJheShnKTtJPGc7SSsrKUJbSV09QVtJXTtyZXR1cm4gQn1mdW5jdGlvbiBHbyhBKXt2YXIgZz1mdW5jdGlvbihBLGcpe2lmKCJvYmplY3QiIT10eXBlb2YgQXx8bnVsbD09PUEpcmV0dXJuIEE7dmFyIEk9QVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PUkpe3ZhciBCPUkuY2FsbChBLGd8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXJldHVybiBCO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09Zz9TdHJpbmc6TnVtYmVyKShBKX0oQSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBnP2c6U3RyaW5nKGcpfVFvKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IXJvfSx7c2xpY2U6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQz1lbyh0aGlzKSxFPXRvKEMubGVuZ3RoKSxpPWlvKEEsRSksdD1pbyh2b2lkIDA9PT1nP0U6ZyxFKTtpZihFbyhDKSYmKCJmdW5jdGlvbiIhPXR5cGVvZihJPUMuY29uc3RydWN0b3IpfHxJIT09QXJyYXkmJiFFbyhJLnByb3RvdHlwZSk/Q28oSSkmJm51bGw9PT0oST1JW2FvXSkmJihJPXZvaWQgMCk6ST12b2lkIDAsST09PUFycmF5fHx2b2lkIDA9PT1JKSlyZXR1cm4gc28uY2FsbChDLGksdCk7Zm9yKEI9bmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoY28odC1pLDApKSxRPTA7aTx0O2krKyxRKyspaSBpbiBDJiZvbyhCLFEsQ1tpXSk7cmV0dXJuIEIubGVuZ3RoPVEsQn19KTt2YXIgUm89InZpZGVvIixVbz0iYXVkaW8iLGtvPSJtZXRhZGF0YSIsU289ImF2YyIsTm89ImhldmMiLE1vPSJ2dmNDIixZbz0iYWFjIixIbz0iZzcxMTBhIixwbz0iZzcxMTBtIixKbz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpLGZvKHRoaXMsImlkIiwxKSxmbyh0aGlzLCJ0eXBlIixSbyksZm8odGhpcywiY29kZWNUeXBlIixTbyksZm8odGhpcywicGlkIiwtMSksZm8odGhpcywiaHZjQyIsdm9pZCAwKSxmbyh0aGlzLCJjb2RlYyIsIiIpLGZvKHRoaXMsInRpbWVzY2FsZSIsMCksZm8odGhpcywiZm9ybWF0VGltZXNjYWxlIiwwKSxmbyh0aGlzLCJzZXF1ZW5jZU51bWJlciIsMCksZm8odGhpcywiYmFzZU1lZGlhRGVjb2RlVGltZSIsMCksZm8odGhpcywiYmFzZUR0cyIsMCksZm8odGhpcywiZHVyYXRpb24iLDApLGZvKHRoaXMsIndhcm5pbmdzIixbXSksZm8odGhpcywic2FtcGxlcyIsW10pLGZvKHRoaXMsInBwcyIsW10pLGZvKHRoaXMsInNwcyIsW10pLGZvKHRoaXMsInZwcyIsW10pLGZvKHRoaXMsImZwc051bSIsMCksZm8odGhpcywiZnBzRGVuIiwwKSxmbyh0aGlzLCJzYXJSYXRpbyIsW10pLGZvKHRoaXMsIndpZHRoIiwwKSxmbyh0aGlzLCJoZWlnaHQiLDApLGZvKHRoaXMsIm5hbFVuaXRTaXplIiw0KSxmbyh0aGlzLCJwcmVzZW50IiwhMSksZm8odGhpcywiaXNWaWRlb0VuY3J5cHRpb24iLCExKSxmbyh0aGlzLCJpc0F1ZGlvRW5jcnlwdGlvbiIsITEpLGZvKHRoaXMsImlzVmlkZW8iLCEwKSxmbyh0aGlzLCJraWQiLG51bGwpLGZvKHRoaXMsInBzc2giLG51bGwpLGZvKHRoaXMsImV4dCIsdm9pZCAwKX1yZXR1cm4gRG8oQSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj10aGlzLndpZHRoPXRoaXMuaGVpZ2h0PXRoaXMuZnBzRGVuPXRoaXMuZnBzTnVtPXRoaXMuZHVyYXRpb249dGhpcy5iYXNlTWVkaWFEZWNvZGVUaW1lPXRoaXMudGltZXNjYWxlPTAsdGhpcy5jb2RlYz0iIix0aGlzLnByZXNlbnQ9ITEsdGhpcy5waWQ9LTEsdGhpcy5wcHM9W10sdGhpcy5zcHM9W10sdGhpcy52cHM9W10sdGhpcy5zYXJSYXRpbz1bXSx0aGlzLnNhbXBsZXM9W10sdGhpcy53YXJuaW5ncz1bXSx0aGlzLmh2Y0M9bnVsbH19LHtrZXk6ImV4aXN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhKHRoaXMucHBzLmxlbmd0aCYmdGhpcy5zcHMubGVuZ3RoJiZ0aGlzLmNvZGVjKX19LHtrZXk6Imhhc1NhbXBsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuc2FtcGxlcy5sZW5ndGh9fSx7a2V5OiJpc0VuY3J5cHRpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmlkZW9FbmNyeXB0aW9ufX1dKSxBfSgpLExvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2hvKHRoaXMsQSksZm8odGhpcywiaWQiLDIpLGZvKHRoaXMsInR5cGUiLFVvKSxmbyh0aGlzLCJjb2RlY1R5cGUiLFlvKSxmbyh0aGlzLCJwaWQiLC0xKSxmbyh0aGlzLCJjb2RlYyIsIiIpLGZvKHRoaXMsInNlcXVlbmNlTnVtYmVyIiwwKSxmbyh0aGlzLCJzYW1wbGVEdXJhdGlvbiIsMCksZm8odGhpcywidGltZXNjYWxlIiwwKSxmbyh0aGlzLCJmb3JtYXRUaW1lc2NhbGUiLDApLGZvKHRoaXMsImJhc2VNZWRpYURlY29kZVRpbWUiLDApLGZvKHRoaXMsImR1cmF0aW9uIiwwKSxmbyh0aGlzLCJ3YXJuaW5ncyIsW10pLGZvKHRoaXMsInNhbXBsZXMiLFtdKSxmbyh0aGlzLCJiYXNlRHRzIiwwKSxmbyh0aGlzLCJzYW1wbGVTaXplIiwxNiksZm8odGhpcywic2FtcGxlUmF0ZSIsMCksZm8odGhpcywiY2hhbm5lbENvdW50IiwwKSxmbyh0aGlzLCJvYmplY3RUeXBlIiwwKSxmbyh0aGlzLCJzYW1wbGVSYXRlSW5kZXgiLDApLGZvKHRoaXMsImNvbmZpZyIsW10pLGZvKHRoaXMsInByZXNlbnQiLCExKSxmbyh0aGlzLCJpc1ZpZGVvRW5jcnlwdGlvbiIsITEpLGZvKHRoaXMsImlzQXVkaW9FbmNyeXB0aW9uIiwhMSksZm8odGhpcywia2lkIixudWxsKSxmbyh0aGlzLCJleHQiLHZvaWQgMCl9cmV0dXJuIERvKEEsW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2VxdWVuY2VOdW1iZXI9MCx0aGlzLnRpbWVzY2FsZT0wLHRoaXMuc2FtcGxlRHVyYXRpb249MCx0aGlzLnNhbXBsZVJhdGU9MCx0aGlzLmNoYW5uZWxDb3VudD0wLHRoaXMuYmFzZU1lZGlhRGVjb2RlVGltZT0wLHRoaXMucHJlc2VudD0hMSx0aGlzLnBpZD0tMSx0aGlzLmNvZGVjPSIiLHRoaXMuc2FtcGxlcz1bXSx0aGlzLmNvbmZpZz1bXSx0aGlzLndhcm5pbmdzPVtdfX0se2tleToiZXhpc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5zYW1wbGVSYXRlJiZ0aGlzLmNoYW5uZWxDb3VudCYmdGhpcy5jb2RlYyYmdGhpcy5jb2RlY1R5cGU9PT1Zbyl9fSx7a2V5OiJoYXNTYW1wbGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnNhbXBsZXMubGVuZ3RofX0se2tleToiaXNFbmNyeXB0aW9uIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0F1ZGlvRW5jcnlwdGlvbn19XSksQX0oKSx2bz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyxJLEIpe2hvKHRoaXMsQSksZm8odGhpcywiZmxhZyIse30pLGZvKHRoaXMsImtleWZyYW1lIiwhMSksZm8odGhpcywiZ29wSWQiLDApLGZvKHRoaXMsImR1cmF0aW9uIiwwKSxmbyh0aGlzLCJzaXplIiwwKSxmbyh0aGlzLCJ1bml0cyIsW10pLGZvKHRoaXMsImNocm9tYUZvcm1hdCIsNDIwKSx0aGlzLm9yaWdpblB0cz10aGlzLnB0cz1nLHRoaXMub3JpZ2luRHRzPXRoaXMuZHRzPUksQiYmKHRoaXMudW5pdHM9Qil9cmV0dXJuIERvKEEsW3trZXk6ImN0cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHRzLXRoaXMuZHRzfX0se2tleToic2V0VG9LZXlmcmFtZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmtleWZyYW1lPSEwLHRoaXMuZmxhZy5kZXBlbmRzT249Mix0aGlzLmZsYWcuaXNOb25TeW5jU2FtcGxlPTB9fV0pLEF9KCksS289RG8oKGZ1bmN0aW9uIEEoZyxJLEIsUSl7aG8odGhpcyxBKSxmbyh0aGlzLCJkdXJhdGlvbiIsMTAyNCksZm8odGhpcywiZmxhZyIse2RlcGVuZHNPbjoyLGlzTm9uU3luY1NhbXBsZTowfSksZm8odGhpcywia2V5ZnJhbWUiLCEwKSx0aGlzLm9yaWdpblB0cz10aGlzLnB0cz10aGlzLmR0cz1nLHRoaXMuZGF0YT1JLHRoaXMuc2l6ZT1JLmJ5dGVMZW5ndGgsdGhpcy5zYW1wbGVPZmZzZXQ9USxCJiYodGhpcy5kdXJhdGlvbj1CKX0pKSxtbz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpLGZvKHRoaXMsImlkIiwzKSxmbyh0aGlzLCJ0eXBlIixrbyksZm8odGhpcywidGltZXNjYWxlIiwwKSxmbyh0aGlzLCJmbHZTY3JpcHRTYW1wbGVzIixbXSksZm8odGhpcywic2VpU2FtcGxlcyIsW10pfXJldHVybiBEbyhBLFt7a2V5OiJleGlzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLmZsdlNjcmlwdFNhbXBsZXMubGVuZ3RoJiYhdGhpcy5zZWlTYW1wbGVzLmxlbmd0aHx8IXRoaXMudGltZXNjYWxlKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudGltZXNjYWxlPTAsdGhpcy5mbHZTY3JpcHRTYW1wbGVzPVtdLHRoaXMuc2VpU2FtcGxlcz1bXX19LHtrZXk6Imhhc1NhbXBsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLmZsdlNjcmlwdFNhbXBsZXMubGVuZ3RoJiYhdGhpcy5zZWlTYW1wbGVzLmxlbmd0aCl9fV0pLEF9KCkseG89InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cscW89eG8mJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb2NhbGVMb3dlckNhc2UoKSxibz14byYmcW8uaW5jbHVkZXMoImZpcmVmb3giKSxUbz14byYmcW8uaW5jbHVkZXMoImFuZHJvaWQiKSxPbz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpfXJldHVybiBEbyhBLG51bGwsW3trZXk6ImdldFJhdGVJbmRleEJ5UmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuRlJFUS5pbmRleE9mKGcpfX0se2tleToicGFyc2VBRFRTIix2YWx1ZTpmdW5jdGlvbihnLEkpe2Zvcih2YXIgQj1nLmxlbmd0aCxRPTA7USsyPEImJigyNTUhPT1nW1FdfHwyNDAhPSgyNDYmZ1tRKzFdKSk7KVErKztpZighKFE+PUIpKXt2YXIgQz1RLEU9W10saT0oNjAmZ1tRKzJdKT4+PjIsdD1BLkZSRVFbaV07aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNhbXBsaW5nIGluZGV4OiAiLmNvbmNhdChpKSk7Zm9yKHZhciBlLG8sbj0xKygoMTkyJmdbUSsyXSk+Pj42KSxyPSgxJmdbUSsyXSk8PDJ8KDE5MiZnW1ErM10pPj4+NixhPUEuX2dldENvbmZpZyhpLHIsbikscz1hLmNvbmZpZyxjPWEuY29kZWMsaD0wLHk9QS5nZXRGcmFtZUR1cmF0aW9uKHQpO1ErNzxCOylpZigyNTU9PT1nW1FdJiYyNDA9PSgyNDYmZ1tRKzFdKSl7aWYoQi1RPChvPSgzJmdbUSszXSk8PDExfGdbUSs0XTw8M3woMjI0JmdbUSs1XSk+PjUpKWJyZWFrO2U9MiooMSZ+Z1tRKzFdKSxFLnB1c2goe3B0czpJK2gqeSxkYXRhOmcuc3ViYXJyYXkoUSs3K2UsUStvKX0pLGgrKyxRKz1vfWVsc2UgUSsrO3JldHVybntza2lwOkMscmVtYWluaW5nOlE+PUI/dm9pZCAwOmcuc3ViYXJyYXkoUSksZnJhbWVzOkUsc2FtcGxpbmdGcmVxdWVuY3lJbmRleDppLHNhbXBsZVJhdGU6dCxvYmplY3RUeXBlOm4sY2hhbm5lbENvdW50OnIsY29kZWM6Yyxjb25maWc6cyxvcmlnaW5Db2RlYzoibXA0YS40MC4iLmNvbmNhdChuKX19fX0se2tleToicGFyc2VBdWRpb1NwZWNpZmljQ29uZmlnIix2YWx1ZTpmdW5jdGlvbihnKXtpZihnLmxlbmd0aCl7dmFyIEk9Z1swXT4+PjMsQj0oNyZnWzBdKTw8MXxnWzFdPj4+NyxRPSgxMjAmZ1sxXSk+Pj4zLEM9QS5GUkVRW0JdO2lmKEMpe3ZhciBFPUEuX2dldENvbmZpZyhCLFEsSSk7cmV0dXJue3NhbXBsaW5nRnJlcXVlbmN5SW5kZXg6QixzYW1wbGVSYXRlOkMsb2JqZWN0VHlwZTpJLGNoYW5uZWxDb3VudDpRLGNvbmZpZzpFLmNvbmZpZyxjb2RlYzpFLmNvZGVjLG9yaWdpbkNvZGVjOiJtcDRhLjQwLiIuY29uY2F0KEkpfX19fX0se2tleToiZ2V0RnJhbWVEdXJhdGlvbiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIDEwMjQqKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo5ZTQpL0F9fSx7a2V5OiJfZ2V0Q29uZmlnIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxDPVtdO3JldHVybiBibz9BPj02PyhCPTUsUT1BLTMpOihCPTIsUT1BKTpUbz8oQj0yLFE9QSk6KEI9Mj09PUl8fDU9PT1JP0k6NSxRPUEsQT49Nj9RPUEtMzoxPT09ZyYmKEI9MixRPUEpKSxDWzBdPUI8PDMsQ1swXXw9KDE0JkEpPj4xLENbMV09KDEmQSk8PDcsQ1sxXXw9Zzw8Myw1PT09QiYmKENbMV18PSgxNCZRKT4+MSxDWzJdPSgxJlEpPDw3LENbMl18PTgsQ1szXT0wKSx7Y29uZmlnOkMsY29kZWM6Im1wNGEuNDAuIi5jb25jYXQoQil9fX0se2tleToiZ2V0U2lsZW50RnJhbWUiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7aWYoIm1wNGEuNDAuMiI9PT1BKXtpZigxPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDM1LDEyOF0pO2lmKDI9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMzMsMCw3MywxNDQsMiwyNSwwLDM1LDEyOF0pO2lmKDM9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxNDJdKTtpZig0PT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDMyLDEzMiwxLDM4LDY0LDgsMTAwLDAsMTI4LDQ0LDEyOCw4LDIsNTZdKTtpZig1PT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDMyLDEzMiwxLDM4LDY0LDgsMTAwLDAsMTMwLDQ4LDQsMTUzLDAsMzMsMTQ0LDIsNTZdKTtpZig2PT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDMyLDEzMiwxLDM4LDY0LDgsMTAwLDAsMTMwLDQ4LDQsMTUzLDAsMzMsMTQ0LDIsMCwxNzgsMCwzMiw4LDIyNF0pfWVsc2V7aWYoMT09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFsxLDY0LDM0LDEyOCwxNjMsNzgsMjMwLDEyOCwxODYsOCwwLDAsMCwyOCw2LDI0MSwxOTMsMTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTRdKTtpZigyPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzEsNjQsMzQsMTI4LDE2Myw5NCwyMzAsMTI4LDE4Niw4LDAsMCwwLDAsMTQ5LDAsNiwyNDEsMTYxLDEwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDk0XSk7aWYoMz09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFsxLDY0LDM0LDEyOCwxNjMsOTQsMjMwLDEyOCwxODYsOCwwLDAsMCwwLDE0OSwwLDYsMjQxLDE2MSwxMCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5NF0pfX19XSksQX0oKTtmdW5jdGlvbiBXbygpe2Zvcih2YXIgQT1hcmd1bWVudHMubGVuZ3RoLGc9bmV3IEFycmF5KEEpLEk9MDtJPEE7SSsrKWdbSV09YXJndW1lbnRzW0ldO2c9Zy5maWx0ZXIoQm9vbGVhbik7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoZy5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEErZy5ieXRlTGVuZ3RofSksMCkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChBLFEpLFErPUEuYnl0ZUxlbmd0aH0pKSxCfWZvKE9vLCJGUkVRIixbOTZlMyw4ODIwMCw2NGUzLDQ4ZTMsNDQxMDAsMzJlMywyNGUzLDIyMDUwLDE2ZTMsMTJlMywxMTAyNSw4ZTMsNzM1MF0pO3ZhciBabz1NYXRoLnBvdygyLDMyKTtmdW5jdGlvbiBqbyhBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtyZXR1cm4oQVtnXTw8OCkrKEFbZysxXXx8MCl9ZnVuY3Rpb24gUG8oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuKEFbZ108PDI0Pj4+MCkrKEFbZysxXTw8MTYpKyhBW2crMl08PDgpKyhBW2crM118fDApfWZ1bmN0aW9uIFhvKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybiBuZXcgRGF0YVZpZXcoQS5idWZmZXIsQS5ieXRlT2Zmc2V0LEEuYnl0ZUxlbmd0aCkuZ2V0SW50MzIoZyl9ZnVuY3Rpb24gVm8oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuIFBvKEEsZykqWm8rUG8oQSxnKzQpfWZ1bmN0aW9uIHpvKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLEk9bmV3IERhdGFWaWV3KEEuYnVmZmVyLEEuYnl0ZU9mZnNldCxBLmJ5dGVMZW5ndGgpO3JldHVybiBJLmdldFVpbnQzMihnKTw8MzJ8SS5nZXRVaW50MzIoZys0KX1mdW5jdGlvbiBfbyhBKXt2YXIgZz0iIjtpZihBLmZvckVhY2goKGZ1bmN0aW9uKEEpe2crPWZ1bmN0aW9uKEEpe3JldHVybigiMCIrTnVtYmVyKEEpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpLnRvVXBwZXJDYXNlKCl9KEEpfSkpLGcubGVuZ3RoPD0zMilmb3IodmFyIEk9MzItZy5sZW5ndGgsQj0wO0I8STtCKyspZys9IjAiO3JldHVybiBnfWZ1bmN0aW9uICRvKEEpe2lmKCFBcnJheS5pc0FycmF5KEEpKXtmb3IodmFyIGc9W10sST0iIixCPTA7QjxBLmxlbmd0aDtCKyspQiUyJiYoST1BW0ItMV0rQVtCXSxnLnB1c2gocGFyc2VJbnQoSSwxNikpLEk9IiIpO3JldHVybiBnfXJldHVybiBBLm1hcCgoZnVuY3Rpb24oQSl7cmV0dXJuIHBhcnNlSW50KEEsMTYpfSkpfXZhciBBbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyl7aWYoaG8odGhpcyxBKSxmbyh0aGlzLCJfYnl0ZXNBdmFpbGFibGUiLHZvaWQgMCksZm8odGhpcywiX2JpdHNBdmFpbGFibGUiLDApLGZvKHRoaXMsIl93b3JkIiwwKSwhZyl0aHJvdyBuZXcgRXJyb3IoIkV4cEdvbG9tYiBkYXRhIHBhcmFtcyBpcyByZXF1aXJlZCIpO3RoaXMuX2RhdGE9Zyx0aGlzLl9ieXRlc0F2YWlsYWJsZT1nLmJ5dGVMZW5ndGgsdGhpcy5fYnl0ZXNBdmFpbGFibGUmJnRoaXMuX2xvYWRXb3JkKCl9cmV0dXJuIERvKEEsW3trZXk6Il9sb2FkV29yZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9kYXRhLmJ5dGVMZW5ndGgtdGhpcy5fYnl0ZXNBdmFpbGFibGUsZz1NYXRoLm1pbig0LHRoaXMuX2J5dGVzQXZhaWxhYmxlKTtpZigwPT09Zyl0aHJvdyBuZXcgRXJyb3IoIk5vIGJ5dGVzIGF2YWlsYWJsZSIpO3ZhciBJPW5ldyBVaW50OEFycmF5KDQpO0kuc2V0KHRoaXMuX2RhdGEuc3ViYXJyYXkoQSxBK2cpKSx0aGlzLl93b3JkPW5ldyBEYXRhVmlldyhJLmJ1ZmZlcikuZ2V0VWludDMyKDApLHRoaXMuX2JpdHNBdmFpbGFibGU9OCpnLHRoaXMuX2J5dGVzQXZhaWxhYmxlLT1nfX0se2tleToiYml0c1BvcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gOCp0aGlzLl9ieXRlc0F2YWlsYWJsZS10aGlzLl9iaXRzQXZhaWxhYmxlfX0se2tleToiYml0c0xlZnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDgqdGhpcy5fZGF0YS5sZW5ndGgtdGhpcy5iaXRzUG9zKCl9fSx7a2V5OiJieXRlQWxpZ25lZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuYml0c1BvcygpfHx0aGlzLmJpdHNQb3MoKSU4PT0wfX0se2tleToic2tpcEJpdHMiLHZhbHVlOmZ1bmN0aW9uKEEpe2lmKHRoaXMuX2JpdHNBdmFpbGFibGU+QSl0aGlzLl93b3JkPDw9QSx0aGlzLl9iaXRzQXZhaWxhYmxlLT1BO2Vsc2V7QS09dGhpcy5fYml0c0F2YWlsYWJsZTt2YXIgZz1NYXRoLmZsb29yKEEvOCk7QS09OCpnLHRoaXMuX2J5dGVzQXZhaWxhYmxlLT1nLHRoaXMuX2xvYWRXb3JkKCksdGhpcy5fd29yZDw8PUEsdGhpcy5fYml0c0F2YWlsYWJsZS09QX19fSx7a2V5OiJyZWFkQml0cyIsdmFsdWU6ZnVuY3Rpb24oQSl7aWYoQT4zMil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZWFkIG1vcmUgdGhhbiAzMiBiaXRzIik7dmFyIGc9TWF0aC5taW4odGhpcy5fYml0c0F2YWlsYWJsZSxBKSxJPXRoaXMuX3dvcmQ+Pj4zMi1nO3JldHVybiB0aGlzLl9iaXRzQXZhaWxhYmxlLT1nLHRoaXMuX2JpdHNBdmFpbGFibGU+MD90aGlzLl93b3JkPDw9Zzp0aGlzLl9ieXRlc0F2YWlsYWJsZT4wJiZ0aGlzLl9sb2FkV29yZCgpLChnPUEtZyk+MCYmdGhpcy5fYml0c0F2YWlsYWJsZT9JPDxnfHRoaXMucmVhZEJpdHMoZyk6SX19LHtrZXk6InNraXBMWiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQTtmb3IoQT0wO0E8dGhpcy5fYml0c0F2YWlsYWJsZTsrK0EpaWYoMCE9KHRoaXMuX3dvcmQmMjE0NzQ4MzY0OD4+PkEpKXJldHVybiB0aGlzLl93b3JkPDw9QSx0aGlzLl9iaXRzQXZhaWxhYmxlLT1BLEE7cmV0dXJuIHRoaXMuX2xvYWRXb3JkKCksQSt0aGlzLnNraXBMWigpfX0se2tleToic2tpcFVFRyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNraXBCaXRzKDErdGhpcy5za2lwTFooKSl9fSx7a2V5OiJyZWFkVUVHIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMuc2tpcExaKCk7cmV0dXJuIHRoaXMucmVhZEJpdHMoQSsxKS0xfX0se2tleToicmVhZEVHIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMucmVhZFVFRygpO3JldHVybiAxJkE/MStBPj4+MTotMSooQT4+PjEpfX0se2tleToicmVhZEJvb2wiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLnJlYWRCaXRzKDEpfX0se2tleToicmVhZFVCeXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRCaXRzKDgpfX0se2tleToic2tpcFNjYWxpbmdMaXN0Iix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9OCxJPTgsQj0wO0I8QTtCKyspMCE9PUkmJihJPShnK3RoaXMucmVhZEVHKCkrMjU2KSUyNTYpLGc9MD09PUk/ZzpJfX1dKSxBfSgpLGduPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnKXtobyh0aGlzLEEpLHRoaXMuX2J1ZmZlcj1nLHRoaXMuX29mZnNldD0wLHRoaXMuX2hlbGRCaXRzPTAsdGhpcy5fbnVtSGVsZEJpdHM9MH1yZXR1cm4gRG8oQSxbe2tleToicmVhZFVpbnQ4Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8OHx0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8MjR8dGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8MTZ8dGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8OHx0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQ4QXJyYXkiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMuX2J1ZmZlci5zbGljZSh0aGlzLl9vZmZzZXQsdGhpcy5fb2Zmc2V0K0EpO3JldHVybiB0aGlzLl9vZmZzZXQrPUEsZ319LHtrZXk6InN0cmVhbVJlYWQxQnl0ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGVsZEJpdHM9dGhpcy5yZWFkVWludDgoKSx0aGlzLl9udW1IZWxkQml0cz04fX0se2tleToic3RyZWFtUmVhZDJCeXRlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oZWxkQml0cz10aGlzLnJlYWRVaW50MTYoKSx0aGlzLl9udW1IZWxkQml0cz0xNn19LHtrZXk6ImV4dHJhY3RCaXRzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz10aGlzLl9oZWxkQml0cz4+dGhpcy5fbnVtSGVsZEJpdHMtQSYoMTw8QSktMTtyZXR1cm4gdGhpcy5fbnVtSGVsZEJpdHMtPUEsZ319XSksQX0oKSxJbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpfXJldHVybiBEbyhBLG51bGwsW3trZXk6InBhcnNlVlZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBnbihnKSxCPUkucmVhZFVpbnQ4KCk7SS5zdHJlYW1SZWFkMUJ5dGVzKCksSS5leHRyYWN0Qml0cyg1KTt2YXIgUSxDLEUsaSx0LGUsbyxuLHI9SS5leHRyYWN0Qml0cygyKSsxLGE9SS5leHRyYWN0Qml0cygxKSxzPXt9O2EmJihJLnN0cmVhbVJlYWQyQnl0ZXMoKSxpPUkuZXh0cmFjdEJpdHMoMiksdD1JLmV4dHJhY3RCaXRzKDMpLEM9SS5leHRyYWN0Qml0cygzKSxFPUkuZXh0cmFjdEJpdHMoMiksSS5leHRyYWN0Qml0cyg2KSxzPUEucGFyc2VWVkNQVExSZWNvcmQoSSxDKSxRPUkucmVhZFVpbnQxNigpLGU9SS5yZWFkVWludDE2KCksbz1JLnJlYWRVaW50MTYoKSxuPUkucmVhZFVpbnQxNigpKTtmb3IodmFyIGM9SS5yZWFkVWludDgoKSxoPVtdLHk9W10sRD1bXSxmPW51bGwsdT0wO3U8Yzt1Kyspe0kuc3RyZWFtUmVhZDFCeXRlcygpLEkuZXh0cmFjdEJpdHMoMSksSS5leHRyYWN0Qml0cygyKTt2YXIgdz1JLmV4dHJhY3RCaXRzKDUpLGQ9MTsxMyE9PXcmJjEyIT09dyYmKGQ9SS5yZWFkVWludDE2KCkpO2Zvcih2YXIgRj0wO0Y8ZDtGKyspe3ZhciBsPUkucmVhZFVpbnQxNigpO3N3aXRjaCh3KXtjYXNlIDE0OmgucHVzaChJLnJlYWRVaW50OEFycmF5KGwpKTticmVhaztjYXNlIDE1OnZhciBHPUkucmVhZFVpbnQ4QXJyYXkobCk7Znx8KGY9QS5wYXJzZVNQUyhBLnJlbW92ZUVQQihHKSkpLHkucHVzaChHKTticmVhaztjYXNlIDE2OkQucHVzaChJLnJlYWRVaW50OEFycmF5KGwpKX19fXJldHVybntkYXRhOmcsY29uZmlndXJhdGlvblZlcnNpb246Qixjb2RlYzoiYnZjMi4xLjYuTDkzLkIwIixuYWxVbml0U2l6ZTpyLHB0bFByZXNlbnRGbGFnOmEsb2xzSWR4OlEsbnVtU3VibGF5ZXJzOkMsY29uc3RhbnRGcmFtZVJhdGU6RSxjaHJvbWFGb3JtYXRJZGM6aSxiaXREZXB0aEx1bWFNaW51czg6dCxwdGxSZWNvcmQ6cyx3aWR0aDplLGhlaWdodDpvLHNhbXBsZVJhdGU6bixudW1PZkFycmF5czpjLHZwczpoLHNwczp5LHBwczpELHNwc1BhcnNlZDpmfX19LHtrZXk6InBhcnNlVlZDUFRMUmVjb3JkIix2YWx1ZTpmdW5jdGlvbihBLGcpe0Euc3RyZWFtUmVhZDJCeXRlcygpLEEuZXh0cmFjdEJpdHMoMik7dmFyIEk9QS5leHRyYWN0Qml0cyg2KSxCPUEuZXh0cmFjdEJpdHMoNyksUT1BLmV4dHJhY3RCaXRzKDEpLEM9QS5yZWFkVWludDgoKTtBLnN0cmVhbVJlYWQxQnl0ZXMoKTt2YXIgRT1BLmV4dHJhY3RCaXRzKDEpLGk9QS5leHRyYWN0Qml0cygxKSx0PW5ldyBVaW50OEFycmF5KEkpO2lmKEkpe2Zvcih2YXIgZT0wO2U8SS0xO2UrKyl7dmFyIG89QS5leHRyYWN0Qml0cyg2KTtBLnN0cmVhbVJlYWQxQnl0ZXMoKTt2YXIgbj1BLmV4dHJhY3RCaXRzKDIpO3RbZV09bzw8MnxufXRbSS0xXT1BLmV4dHJhY3RCaXRzKDYpfWVsc2UgQS5leHRyYWN0Qml0cyg2KTt2YXIgcj1bXTtpZihnPjEpe0Euc3RyZWFtUmVhZDFCeXRlcygpO2Zvcih2YXIgYT0wLHM9Zy0yO3M+PTA7LS1zKXthfD1BLmV4dHJhY3RCaXRzKDEpPDxzfWZvcih2YXIgYz1nO2M8PTgmJmc+MTsrK2MpQS5leHRyYWN0Qml0cygxKTtmb3IodmFyIGg9Zy0yO2g+PTA7LS1oKWEmMTw8aCYmKHJbaF09QS5yZWFkVWludDgoKSl9dmFyIHk9QS5yZWFkVWludDgoKSxEPVtdO2lmKHkpZm9yKHZhciBmPTA7Zjx5O2YrKylELnB1c2goQS5yZWFkVWludDMyKCkpO3JldHVybntnZW5lcmFsUHJvZmlsZUlkYzpCLGdlbmVyYWxUaWVyRmxhZzpRLGdlbmVyYWxMZXZlbElkYzpDLHB0bEZyYW1lT25seUNvbnN0cmFpbnRGbGFnOkUscHRsTXVsdGlsYXllckVuYWJsZWRGbGFnOmksZ2VuZXJhbENvbnN0cmFpbnRJbmZvOnQsc3ViTGF5ZXJMZXZlbElkYzpyLGdlbmVyYWxTdWJQcm9maWxlSWRjOkQscHRsTnVtU3ViUHJvZmlsZXM6eSxudW1CeXRlc0NvbnN0cmFpbnRJbmZvOkl9fX0se2tleToiZ2V0QXZjY05hbHMiLHZhbHVlOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1bXTtBLnBvc2l0aW9uPEEubGVuZ3RoLTQ7KXt2YXIgST1BLmRhdGF2aWV3LmdldEludDMyKEEuZGF0YXZpZXcucG9zaXRpb24pO2lmKCEoQS5sZW5ndGgtQS5wb3NpdGlvbj49SSkpYnJlYWs7dmFyIEI9QS5idWZmZXIuc2xpY2UoQS5wb3NpdGlvbixBLnBvc2l0aW9uKzQpO0Euc2tpcCg0KTt2YXIgUT1uZXcgVWludDhBcnJheShBLmJ1ZmZlci5zbGljZShBLnBvc2l0aW9uLEEucG9zaXRpb24rSSkpO0Euc2tpcChJKSxnLnB1c2goe2hlYWRlcjpCLGJvZHk6UX0pfXJldHVybiBnfX0se2tleToiYW5hbHlzZU5hbCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9KDI0OCZBLmJvZHlbMV0pPj4zO3N3aXRjaChBLnR5cGU9ZyxnKXtjYXNlIDIzOmNhc2UgMjQ6YnJlYWs7Y2FzZSA3OmNhc2UgODpBLmtleT0hMDticmVhaztjYXNlIDE0OkEudnBzPSEwO2JyZWFrO2Nhc2UgMTU6QS5zcHM9ITA7YnJlYWs7Y2FzZSAxNjpBLnBwcz0hMDticmVhaztjYXNlIDE3OkEuYXBzPSEwfX19LHtrZXk6InJlbW92ZUVQQiIsdmFsdWU6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuYnl0ZUxlbmd0aCxJPVtdLEI9MTtCPGctMjspMD09PUFbQl0mJjA9PT1BW0IrMV0mJjM9PT1BW0IrMl0/KEkucHVzaChCKzIpLEIrPTIpOkIrKztpZighSS5sZW5ndGgpcmV0dXJuIEE7dmFyIFE9Zy1JLmxlbmd0aCxDPW5ldyBVaW50OEFycmF5KFEpLEU9MDtmb3IoQj0wO0I8UTtFKyssQisrKUU9PT1JWzBdJiYoRSsrLEkuc2hpZnQoKSksQ1tCXT1BW0VdO3JldHVybiBDfX0se2tleToicGFyc2VWcHMiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToicGFyc2VTUFMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBBbihnKTtJLnJlYWRVQnl0ZSgpLEkucmVhZFVCeXRlKCksSS5za2lwQml0cyg0KTt2YXIgQj1JLnJlYWRCaXRzKDQpLFE9SS5yZWFkQml0cygzKSxDPUkucmVhZEJpdHMoMiksRT00MjA7Qzw9MyYmKEU9WzAsNDIwLDQyMiw0NDRdW0NdKSxJLnJlYWRCaXRzKDIpLEkucmVhZEJpdHMoMSk7dmFyIGk9QS5fcGFyc2VQcm9maWxlVGllckxldmVsKEksMSxRKTtyZXR1cm4gSS5yZWFkQml0cygxKSxJLnJlYWRCaXRzKDEpJiZJLnJlYWRCaXRzKDEpLHt3aWR0aDpJLnJlYWRVRUcoKSxoZWlnaHQ6SS5yZWFkVUVHKCksc3BzTWF4U3ViTGF5ZXJNaW51czE6USxzcHNWaWRlb1BhcmFtZXRlclNldElkOkIsY2hyb21hRm9ybWF0SWRjOkMsY2hyb21hRm9ybWF0OkUscHRsSW5mbzppfX19LHtrZXk6Il9wYXJzZVByb2ZpbGVUaWVyTGV2ZWwiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDPWcucmVhZEJpdHMoNyksRT1nLnJlYWRCaXRzKDEpLGk9Zy5yZWFkQml0cyg4KSx0PWcucmVhZEJpdHMoMSksZT1nLnJlYWRCaXRzKDEpO0kmJihRPUEuX3BhcnNlR2VuZXJhbENvbnN0cmFpbnRzSW5mbyhnKSk7Zm9yKHZhciBvPUItMSxuPVtdLHI9W10sYT1bXSxzPW87cz49MDstLXMpbltzXT1nLnJlYWRCaXRzKDEpO2Zvcig7IWcuYnl0ZUFsaWduZWQoKTspZy5yZWFkQml0cygxKTtmb3IodmFyIGM9bztjPj0wOy0tYyluW2NdJiYocltjXT1nLnJlYWRVQnl0ZSgpKTtpZihJKWZvcih2YXIgaD1nLnJlYWRVQnl0ZSgpLHk9MDt5PGg7eSsrKWFbeV09Zy5yZWFkQml0cygzMik7cmV0dXJue2dlbmVyYWxQcm9maWxlSWRjOkMsZ2VuZXJhbFRpZXJGbGFnOkUsZ2VuZXJhbExldmVsSWRjOmkscHRsRnJhbWVPbmx5Q29uc3RyYWludEZsYWc6dCxwdGxNdWx0aWxheWVyRW5hYmxlZEZsYWc6ZSxwdGxTdWJsYXllckxldmVsUHJlc2VudEZsYWdzOm4scHRsU3VibGF5ZXJMZXZlbElkY3M6cixwdGxTdWJQcm9maWxlSWRjczphLGdjaUluZm86UX19fSx7a2V5OiJfcGFyc2VHZW5lcmFsQ29uc3RyYWludHNJbmZvIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BLnJlYWRCaXRzKDEpO2lmKGcpe0Euc2tpcEJpdHMoNzEpO3ZhciBJPUEucmVhZEJpdHMoOCk7SSYmQS5za2lwQml0cyhJKX12YXIgQj04LUEuYml0c1BvcygpJTg7cmV0dXJuIEEuc2tpcEJpdHMoQikse2djaVByZXNlbnRGbGFnOmd9fX1dKSxBfSgpLEJuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2hvKHRoaXMsQSl9cmV0dXJuIERvKEEsbnVsbCxbe2tleToiZmluZEJveCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPVtdO2lmKCFnKXJldHVybiBRO2Zvcih2YXIgQz0wLEU9IiIsaT0wO2cubGVuZ3RoPjc7KXtpZihDPVBvKGcpLEU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSksaT04LDE9PT1DPyhDPVZvKGcsOCksaSs9OCk6Q3x8KEM9Zy5sZW5ndGgpLCFJWzBdfHxFPT09SVswXSl7dmFyIHQ9Zy5zdWJhcnJheSgwLEMpO2lmKCEoSS5sZW5ndGg8MikpcmV0dXJuIEEuZmluZEJveCh0LnN1YmFycmF5KGkpLEkuc2xpY2UoMSksQitpKTtRLnB1c2goe3N0YXJ0OkIsc2l6ZTpDLGhlYWRlclNpemU6aSx0eXBlOkUsZGF0YTp0fSl9Qis9QyxnPWcuc3ViYXJyYXkoQyl9cmV0dXJuIFF9fSx7a2V5OiJ0ZmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtBLnRyYWNrSWQ9UG8oZyk7dmFyIEk9NCxCPTEmQS5mbGFncyxRPTImQS5mbGFncyxDPTgmQS5mbGFncyxFPTE2JkEuZmxhZ3MsaT0zMiZBLmZsYWdzO0ImJihJKz00LEEuYmFzZURhdGFPZmZzZXQ9UG8oZyxJKSxJKz00KSxRJiYoQS5zYW1wbGVEZXNjcmlwdGlvbkluZGV4PVBvKGcsSSksSSs9NCksQyYmKEEuZGVmYXVsdFNhbXBsZUR1cmF0aW9uPVBvKGcsSSksSSs9NCksRSYmKEEuZGVmYXVsdFNhbXBsZVNpemU9UG8oZyxJKSxJKz00KSxpJiYoQS5kZWZhdWx0U2FtcGxlRmxhZ3M9UG8oZyxJKSl9KSl9fSx7a2V5OiJzaWR4Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wO0EucmVmZXJlbmNlX0lEPVBvKGcsSSksSSs9NCxBLnRpbWVzY2FsZT1QbyhnLEkpLEkrPTQsMD09PUEudmVyc2lvbj8oQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1QbyhnLEkpLEkrPTQsQS5maXJzdF9vZmZzZXQ9UG8oZyxJKSxJKz00KTooQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1WbyhnLEkpLEkrPTgsQS5maXJzdF9vZmZzZXQ9Vm8oZyxJKSxJKz04KSxJKz0yLEEucmVmZXJlbmNlcz1bXTt2YXIgQj1qbyhnLEkpO0krPTI7Zm9yKHZhciBRPTA7UTxCO1ErKyl7dmFyIEM9e307QS5yZWZlcmVuY2VzLnB1c2goQyk7dmFyIEU9UG8oZyxJKTtJKz00LEMucmVmZXJlbmNlX3R5cGU9RT4+MzEmMSxDLnJlZmVyZW5jZWRfc2l6ZT0yMTQ3NDgzNjQ3JkUsQy5zdWJzZWdtZW50X2R1cmF0aW9uPVBvKGcsSSksRT1QbyhnLEkrPTQpLEkrPTQsQy5zdGFydHNfd2l0aF9TQVA9RT4+MzEmMSxDLlNBUF90eXBlPUU+PjI4JjcsQy5TQVBfZGVsdGFfdGltZT0yNjg0MzU0NTUmRX19KSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubXZoZD1BLm12aGQoQS5maW5kQm94KEksWyJtdmhkIl0sQilbMF0pLGcudHJhaz1BLmZpbmRCb3goSSxbInRyYWsiXSxCKS5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSksZy5wc3NoPUEucHNzaChBLmZpbmRCb3goSSxbInBzc2giXSxCKVswXSl9KSl9fSx7a2V5OiJtdmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudGltZXNjYWxlPVBvKGcsMTYpLEEuZHVyYXRpb249Vm8oZywyMCksSSs9MjgpOihBLnRpbWVzY2FsZT1QbyhnLDgpLEEuZHVyYXRpb249UG8oZywxMiksSSs9MTYpLEEubmV4dFRyYWNrSWQ9UG8oZyxJKzc2KX0pKX19LHtrZXk6InRyYWsiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7Zy50a2hkPUEudGtoZChBLmZpbmRCb3goSSxbInRraGQiXSxCKVswXSksZy5tZGlhPUEubWRpYShBLmZpbmRCb3goSSxbIm1kaWEiXSxCKVswXSksZy5lZHRzPUEuZWR0cyhBLmZpbmRCb3goSSxbImVkdHMiXSxCKVswXSl9KSl9fSx7a2V5OiJ0a2hkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudHJhY2tJZD1QbyhnLDE2KSxBLmR1cmF0aW9uPVZvKGcsMjQpLEkrPTMyKTooQS50cmFja0lkPVBvKGcsOCksQS5kdXJhdGlvbj1QbyhnLDE2KSxJKz0yMCksQS53aWR0aD1QbyhnLEkrNTIpLEEuaGVpZ2h0PVBvKGcsSSs1Nil9KSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubWRoZD1BLm1kaGQoQS5maW5kQm94KEksWyJtZGhkIl0sQilbMF0pLGcuaGRscj1BLmhkbHIoQS5maW5kQm94KEksWyJoZGxyIl0sQilbMF0pLGcubWluZj1BLm1pbmYoQS5maW5kQm94KEksWyJtaW5mIl0sQilbMF0pfSkpfX0se2tleToiZWR0cyIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLmVsc3Q9QS5lbHN0KEEuZmluZEJveChJLFsiZWxzdCJdLEIpWzBdKX0pKX19LHtrZXk6ImVsc3QiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcsSSl7QS5lbnRyaWVzPVtdLEEuZW50cmllc0RhdGE9Zzt2YXIgQj0wLFE9UG8oZyxCKTtCKz00O2Zvcih2YXIgQz0wO0M8UTtDKyspe3ZhciBFPXt9O0EuZW50cmllcy5wdXNoKEUpLDE9PT1BLnZlcnNpb24/KEUuc2VnbWVudF9kdXJhdGlvbj1WbyhnLEIpLEIrPTgsRS5tZWRpYV90aW1lPXpvKGcsQiksQis9OCk6KEUuc2VnbWVudF9kdXJhdGlvbj1QbyhnLEIpLEIrPTQsRS5tZWRpYV90aW1lPVhvKGcsQiksQis9NCksRS5tZWRpYV9yYXRlX2ludGVnZXI9am8oZyxCKSxCKz0yLEUubWVkaWFfcmF0ZV9mcmFjdGlvbj1qbyhnLEkpLEIrPTJ9fSkpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9MDsxPT09QS52ZXJzaW9uPyhBLnRpbWVzY2FsZT1QbyhnLDE2KSxBLmR1cmF0aW9uPVZvKGcsMjApLEkrPTI4KTooQS50aW1lc2NhbGU9UG8oZyw4KSxBLmR1cmF0aW9uPVBvKGcsMTIpLEkrPTE2KTt2YXIgQj1qbyhnLEkpO0EubGFuZ3VhZ2U9U3RyaW5nLmZyb21DaGFyQ29kZSg5NisoQj4+MTAmMzEpLDk2KyhCPj41JjMxKSw5NisoMzEmQikpfSkpfX0se2tleToiaGRsciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7MD09PUEudmVyc2lvbiYmKEEuaGFuZGxlclR5cGU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSkpfSkpfX0se2tleToibWluZiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnZtaGQ9QS52bWhkKEEuZmluZEJveChJLFsidm1oZCJdLEIpWzBdKSxnLnNtaGQ9QS5zbWhkKEEuZmluZEJveChJLFsic21oZCJdLEIpWzBdKSxnLnN0Ymw9QS5zdGJsKEEuZmluZEJveChJLFsic3RibCJdLEIpWzBdKX0pKX19LHtrZXk6InZtaGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe0EuZ3JhcGhpY3Ntb2RlPWpvKGcpLEEub3Bjb2xvcj1bam8oZywyKSxqbyhnLDQpLGpvKGcsNildfSkpfX0se2tleToic21oZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7QS5iYWxhbmNlPWpvKGcpfSkpfX0se2tleToic3RibCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDLEU7Zy5zdHNkPUEuc3RzZChBLmZpbmRCb3goSSxbInN0c2QiXSxCKVswXSksZy5zdHRzPUEuc3R0cyhBLmZpbmRCb3goSSxbInN0dHMiXSxCKVswXSksZy5jdHRzPUEuY3R0cyhBLmZpbmRCb3goSSxbImN0dHMiXSxCKVswXSksZy5zdHNjPUEuc3RzYyhBLmZpbmRCb3goSSxbInN0c2MiXSxCKVswXSksZy5zdHN6PUEuc3RzeihBLmZpbmRCb3goSSxbInN0c3oiXSxCKVswXSksZy5zdGNvPUEuc3RjbyhBLmZpbmRCb3goSSxbInN0Y28iXSxCKVswXSksZy5zdGNvfHwoZy5jbzY0PUEuY282NChBLmZpbmRCb3goSSxbImNvNjQiXSxCKVswXSksZy5zdGNvPWcuY282NCk7dmFyIGk9bnVsbD09PShRPWcuc3RzZC5lbnRyaWVzWzBdKXx8dm9pZCAwPT09UXx8bnVsbD09PShDPVEuc2luZil8fHZvaWQgMD09PUN8fG51bGw9PT0oRT1DLnNjaGkpfHx2b2lkIDA9PT1FP3ZvaWQgMDpFLnRlbmMuZGVmYXVsdF9JVl9zaXplO2cuc3Rzcz1BLnN0c3MoQS5maW5kQm94KEksWyJzdHNzIl0sQilbMF0pLGcuc2VuYz1BLnNlbmMoQS5maW5kQm94KEksWyJzZW5jIl0sQilbMF0saSl9KSl9fSx7a2V5OiJzZW5jIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ODtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxJKXt2YXIgQj0wLFE9UG8oSSxCKTtCKz00LEEuc2FtcGxlcz1bXTtmb3IodmFyIEM9MDtDPFE7QysrKXtmb3IodmFyIEU9e0luaXRpYWxpemF0aW9uVmVjdG9yOltdfSxpPTA7aTxnO2krKylFLkluaXRpYWxpemF0aW9uVmVjdG9yW2ldPUlbQitpXTtpZihCKz1nLDImQS5mbGFncyl7RS5zdWJzYW1wbGVzPVtdO3ZhciB0PWpvKEksQik7Qis9Mjtmb3IodmFyIGU9MDtlPHQ7ZSsrKXt2YXIgbz17fTtvLkJ5dGVzT2ZDbGVhckRhdGE9am8oSSxCKSxCKz0yLG8uQnl0ZXNPZlByb3RlY3RlZERhdGE9UG8oSSxCKSxCKz00LEUuc3Vic2FtcGxlcy5wdXNoKG8pfX1BLnNhbXBsZXMucHVzaChFKX19KSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9W10sQj1bXSxRPTAsQz0wO0M8MTY7QysrKUIucHVzaChlbihnW1ErQ10pKTtpZihRKz0xNixBLnZlcnNpb24+MCl7dmFyIEU9UG8oZyxRKTtRKz00O2Zvcih2YXIgaT0wO2k8KCIiK0UpLmxlbmd0aDtpKyspZm9yKHZhciB0PTA7dDwxNjt0Kyspe3ZhciBlPWdbUV07USs9MSxJLnB1c2goZW4oZSkpfX12YXIgbz1QbyhnLFEpO0EuZGF0YV9zaXplPW8sUSs9NCxBLmtpZD1JLEEuc3lzdGVtX2lkPUIsQS5idWZmZXI9Z30pKX19LHtrZXk6ImJ2YzIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9Q24oZyxJKSxDPUkuc3ViYXJyYXkoUSk7Qis9USxnLnZ2Y0M9QS5idjJDKEEuZmluZEJveChDLFsiYnYyQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChDLFsicGFzcCJdLEIpWzBdKX0pKX19LHtrZXk6ImJ2MkMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCExLChmdW5jdGlvbihBLGcsSSl7dmFyIEI9SW4ucGFyc2VWVkNEZWNvZGVyQ29uZmlndXJhdGlvblJlY29yZChnKTtmb3IodmFyIFEgaW4gQilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQixRKSYmKEFbUV09QltRXSl9KSl9fSx7a2V5OiJzdHNkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMCwoZnVuY3Rpb24oZyxJLEIpe2cuZW50cnlDb3VudD1QbyhJKSxnLmVudHJpZXM9QS5maW5kQm94KEkuc3ViYXJyYXkoNCksW10sQis0KS5tYXAoKGZ1bmN0aW9uKGcpe3N3aXRjaChnLnR5cGUpe2Nhc2UiYXZjMSI6Y2FzZSJhdmMyIjpjYXNlImF2YzMiOmNhc2UiYXZjNCI6cmV0dXJuIEEuYXZjMShnKTtjYXNlImh2YzEiOmNhc2UiaGV2MSI6cmV0dXJuIEEuaHZjMShnKTtjYXNlImJ2YzIiOnJldHVybiBBLmJ2YzIoZyk7Y2FzZSJtcDRhIjpyZXR1cm4gQS5tcDRhKGcpO2Nhc2UiYWxhdyI6Y2FzZSJ1bGF3IjpyZXR1cm4gQS5hbGF3KGcpO2Nhc2UiZW5jYSI6cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLmNoYW5uZWxDb3VudD1qbyhJLDE2KSxnLnNhbXBsZXNpemU9am8oSSwxOCksZy5zYW1wbGVSYXRlPVBvKEksMjQpLzY1NTM2LEk9SS5zdWJhcnJheSgyOCksZy5zaW5mPUEuc2luZihBLmZpbmRCb3goSSxbInNpbmYiXSxCKVswXSksZy5lc2RzPUEuZXNkcyhBLmZpbmRCb3goSSxbImVzZHMiXSxCKVswXSl9KSk7Y2FzZSJlbmN2IjpyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cud2lkdGg9am8oSSwyNCksZy5oZWlnaHQ9am8oSSwyNiksZy5ob3JpenJlc29sdXRpb249UG8oSSwyOCksZy52ZXJ0cmVzb2x1dGlvbj1QbyhJLDMyKSxJPUkuc3ViYXJyYXkoNzgpLGcuc2luZj1BLnNpbmYoQS5maW5kQm94KEksWyJzaW5mIl0sQilbMF0pLGcuYXZjQz1BLmF2Y0MoQS5maW5kQm94KEksWyJhdmNDIl0sQilbMF0pLGcuaHZjQz1BLmh2Y0MoQS5maW5kQm94KEksWyJodmNDIl0sQilbMF0pLGcucGFzcD1BLnBhc3AoQS5maW5kQm94KEksWyJwYXNwIl0sQilbMF0pfSkpfX0pKS5maWx0ZXIoQm9vbGVhbil9KSl9fSx7a2V5OiJ0ZW5jIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMSwoZnVuY3Rpb24oQSxnKXt2YXIgST02O0EuZGVmYXVsdF9Jc0VuY3J5cHRlZD1nW0ldLEkrPTEsQS5kZWZhdWx0X0lWX3NpemU9Z1tJXSxJKz0xLEEuZGVmYXVsdF9LSUQ9W107Zm9yKHZhciBCPTA7QjwxNjtCKyspQS5kZWZhdWx0X0tJRC5wdXNoKGVuKGdbSV0pKSxJKz0xfSkpfX0se2tleToic2NoaSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnRlbmM9QS50ZW5jKEEuZmluZEJveChJLFsidGVuYyJdLEIpWzBdKX0pKX19LHtrZXk6InNpbmYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7Zy5zY2hpPUEuc2NoaShBLmZpbmRCb3goSSxbInNjaGkiXSxCKVswXSksZy5mcm1hPUEuZnJtYShBLmZpbmRCb3goSSxbImZybWEiXSxCKVswXSl9KSl9fSx7a2V5OiJmcm1hIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMSwoZnVuY3Rpb24oQSxnKXtBLmRhdGFfZm9ybWF0PSIiO2Zvcih2YXIgST0wO0k8NDtJKyspQS5kYXRhX2Zvcm1hdCs9U3RyaW5nLmZyb21DaGFyQ29kZShnW0ldKX0pKX19LHtrZXk6ImF2YzEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9Q24oZyxJKSxDPUkuc3ViYXJyYXkoUSk7Qis9USxnLmF2Y0M9QS5hdmNDKEEuZmluZEJveChDLFsiYXZjQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChDLFsicGFzcCJdLEIpWzBdKX0pKX19LHtrZXk6ImF2Y0MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCExLChmdW5jdGlvbihBLGcpe0EuY29uZmlndXJhdGlvblZlcnNpb249Z1swXSxBLkFWQ1Byb2ZpbGVJbmRpY2F0aW9uPWdbMV0sQS5wcm9maWxlQ29tcGF0aWJpbGl0eT1nWzJdLEEuQVZDTGV2ZWxJbmRpY2F0aW9uPWdbM10sQS5jb2RlYz1mdW5jdGlvbihBKXtmb3IodmFyIGcsST0iYXZjMS4iLEI9MDtCPDM7QisrKShnPUFbQl0udG9TdHJpbmcoMTYpKS5sZW5ndGg8MiYmKGc9IjAiLmNvbmNhdChnKSksSSs9ZztyZXR1cm4gSX0oW2dbMV0sZ1syXSxnWzNdXSksQS5sZW5ndGhTaXplTWludXNPbmU9MyZnWzRdLEEuc3BzTGVuZ3RoPTMxJmdbNV0sQS5zcHM9W107Zm9yKHZhciBJPTYsQj0wO0I8QS5zcHNMZW5ndGg7QisrKXt2YXIgUT1qbyhnLEkpO0krPTIsQS5zcHMucHVzaChnLnN1YmFycmF5KEksSStRKSksSSs9UX1BLnBwc0xlbmd0aD1nW0ldLEkrPTEsQS5wcHM9W107Zm9yKHZhciBDPTA7QzxBLnBwc0xlbmd0aDtDKyspe3ZhciBFPWpvKGcsSSk7SSs9MixBLnBwcy5wdXNoKGcuc3ViYXJyYXkoSSxJKz1FKSksSSs9RX19KSl9fSx7a2V5OiJodmMxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe3ZhciBRPUNuKGcsSSksQz1JLnN1YmFycmF5KFEpO0IrPVEsZy5odmNDPUEuaHZjQyhBLmZpbmRCb3goQyxbImh2Y0MiXSxCKVswXSksZy5wYXNwPUEucGFzcChBLmZpbmRCb3goQyxbInBhc3AiXSxCKVswXSl9KSl9fSx7a2V5OiJodmNDIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMSwoZnVuY3Rpb24oZyxJKXtnLmRhdGE9QS5kYXRhLGcuY29kZWM9ImhldjEuMS42Lkw5My5CMCIsZy5jb25maWd1cmF0aW9uVmVyc2lvbj1JWzBdO3ZhciBCPUlbMV07Zy5nZW5lcmFsUHJvZmlsZVNwYWNlPUI+PjYsZy5nZW5lcmFsVGllckZsYWc9KDMyJkIpPj41LGcuZ2VuZXJhbFByb2ZpbGVJZGM9MzEmQixnLmdlbmVyYWxQcm9maWxlQ29tcGF0aWJpbGl0eT1QbyhJLDIpLGcuZ2VuZXJhbENvbnN0cmFpbnRJbmRpY2F0b3JGbGFncz1JLnN1YmFycmF5KDYsMTIpLGcuZ2VuZXJhbExldmVsSWRjPUlbMTJdLGcuYXZnRnJhbWVSYXRlPWpvKEksMTkpLGcubnVtT2ZBcnJheXM9SVsyMl0sZy52cHM9W10sZy5zcHM9W10sZy5wcHM9W107Zm9yKHZhciBRPTIzLEM9MCxFPTAsaT0wLHQ9MDt0PGcubnVtT2ZBcnJheXM7dCsrKXtDPTYzJklbUV0sRT1qbyhJLFErMSksUSs9Mztmb3IodmFyIGUsbz1bXSxuPTA7bjxFO24rKylpPWpvKEksUSksUSs9MixvLnB1c2goSS5zdWJhcnJheShRLFEraSkpLFErPWk7aWYoMzI9PT1DKShlPWcudnBzKS5wdXNoLmFwcGx5KGUsbyk7ZWxzZSBpZigzMz09PUMpe3ZhciByOyhyPWcuc3BzKS5wdXNoLmFwcGx5KHIsbyl9ZWxzZSBpZigzND09PUMpe3ZhciBhOyhhPWcucHBzKS5wdXNoLmFwcGx5KGEsbyl9fX0pKX19LHtrZXk6InBhc3AiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCExLChmdW5jdGlvbihBLGcpe0EuaFNwYWNpbmc9UG8oZyksQS52U3BhY2luZz1QbyhnLDQpfSkpfX0se2tleToibXA0YSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUT1FbihnLEkpO2cuZXNkcz1BLmVzZHMoQS5maW5kQm94KEkuc3ViYXJyYXkoUSksWyJlc2RzIl0sQitRKVswXSl9KSl9fSx7a2V5OiJlc2RzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtBLmNvZGVjPSJtcDRhLiI7Zm9yKHZhciBJPTAsQj0wLFE9MCxDPTA7Zy5sZW5ndGg7KXtmb3IoQz1nW0k9MF0sQj1nW0krMV0sSSs9MjsxMjgmQjspUT0oMTI3JkIpPDw3LEI9Z1tJXSxJKz0xO2lmKFErPTEyNyZCLDM9PT1DKWc9Zy5zdWJhcnJheShJKzMpO2Vsc2V7aWYoNCE9PUMpe2lmKDU9PT1DKXt2YXIgRT1BLmNvbmZpZz1nLnN1YmFycmF5KEksSStRKSxpPSgyNDgmRVswXSk+PjM7cmV0dXJuIDMxPT09aSYmRS5sZW5ndGg+PTImJihpPTMyKygoNyZFWzBdKTw8MykrKCgyMjQmRVsxXSk+PjUpKSxBLm9iamVjdFR5cGU9aSxBLmNvZGVjKz1pLnRvU3RyaW5nKDE2KSx2b2lkKCIuIj09PUEuY29kZWNbQS5jb2RlYy5sZW5ndGgtMV0mJihBLmNvZGVjPUEuY29kZWMuc3Vic3RyaW5nKDAsQS5jb2RlYy5sZW5ndGgtMSkpKX1yZXR1cm4gdm9pZCgiLiI9PT1BLmNvZGVjW0EuY29kZWMubGVuZ3RoLTFdJiYoQS5jb2RlYz1BLmNvZGVjLnN1YnN0cmluZygwLEEuY29kZWMubGVuZ3RoLTEpKSl9QS5jb2RlYys9KGdbSV0udG9TdHJpbmcoMTYpKyIuIikucGFkU3RhcnQoMywiMCIpLGc9Zy5zdWJhcnJheShJKzEzKX19fSkpfX0se2tleToiYWxhdyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITEsKGZ1bmN0aW9uKEEsZyl7RW4oQSxnKX0pKX19LHtrZXk6InN0dHMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QbyhnKSxCPVtdLFE9NCxDPTA7QzxJO0MrKylCLnB1c2goe2NvdW50OlBvKGcsUSksZGVsdGE6UG8oZyxRKzQpfSksUSs9ODtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6ImN0dHMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe3ZhciBJPVBvKGcpLEI9W10sUT00O2lmKDE9PT1BLnZlcnNpb24pZm9yKHZhciBDPTA7QzxJO0MrKylCLnB1c2goe2NvdW50OlBvKGcsUSksb2Zmc2V0OlBvKGcsUSs0KX0pLFErPTg7ZWxzZSBmb3IodmFyIEU9MDtFPEk7RSsrKUIucHVzaCh7Y291bnQ6UG8oZyxRKSxvZmZzZXQ6LSgxK35QbyhnLFErNCkpfSksUSs9ODtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6InN0c2MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QbyhnKSxCPW5ldyBBcnJheShJKSxRPTQsQz0wO0M8STtDKyspQltDXT17Zmlyc3RDaHVuazpQbyhnLFEpLHNhbXBsZXNQZXJDaHVuazpQbyhnLFErNCksc2FtcGxlRGVzY3JpcHRpb25JbmRleDpQbyhnLFErOCl9LFErPTEyO0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzeiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9UG8oZyksQj1QbyhnLDQpLFE9bmV3IEFycmF5KEIpO2lmKCFJKWZvcih2YXIgQz04LEU9MDtFPEI7RSsrKVFbRV09UG8oZyxDKSxDKz00O0Euc2FtcGxlU2l6ZT1JLEEuc2FtcGxlQ291bnQ9QixBLmVudHJ5U2l6ZXM9UX0pKX19LHtrZXk6InN0Y28iLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QbyhnKSxCPW5ldyBBcnJheShJKSxRPTQsQz0wO0M8STtDKyspQltDXT1QbyhnLFEpLFErPTQ7QS5lbnRyeUNvdW50PUksQS5lbnRyaWVzPUJ9KSl9fSx7a2V5OiJjbzY0Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9UG8oZyksQj1uZXcgQXJyYXkoSSksUT00LEM9MDtDPEk7QysrKUJbQ109Vm8oZyxRKSxRKz04O0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPVBvKGcpLEI9bmV3IEFycmF5KEkpLFE9NCxDPTA7QzxJO0MrKylCW0NdPVBvKGcsUSksUSs9NDtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6Im1vb2YiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7Zy5tZmhkPUEubWZoZChBLmZpbmRCb3goSSxbIm1maGQiXSxCKVswXSksZy50cmFmPUEuZmluZEJveChJLFsidHJhZiJdLEIpLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhZihnKX0pKX0pKX19LHtrZXk6Im1maGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe0Euc2VxdWVuY2VOdW1iZXI9UG8oZyl9KSl9fSx7a2V5OiJ0cmFmIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cudGZoZD1BLnRmaGQoQS5maW5kQm94KEksWyJ0ZmhkIl0sQilbMF0pLGcudGZkdD1BLnRmZHQoQS5maW5kQm94KEksWyJ0ZmR0Il0sQilbMF0pLGcudHJ1bj1BLnRydW4oQS5maW5kQm94KEksWyJ0cnVuIl0sQilbMF0pfSkpfX0se2tleToidHJ1biIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9QS52ZXJzaW9uLEI9QS5mbGFncyxRPWcubGVuZ3RoLEM9QS5zYW1wbGVDb3VudD1QbyhnKSxFPTQ7aWYoUT5FJiYxJkImJihBLmRhdGFPZmZzZXQ9LSgxK35QbyhnLEUpKSxFKz00KSxRPkUmJjQmQiYmKEEuZmlyc3RTYW1wbGVGbGFncz1QbyhnLEUpLEUrPTQpLFE+RSl7dmFyIGk7QS5zYW1wbGVzPW5ldyBBcnJheShDKTtmb3IodmFyIHQ9MDt0PEM7dCsrKWk9e30sMjU2JkImJihpLmR1cmF0aW9uPVBvKGcsRSksRSs9NCksNTEyJkImJihpLnNpemU9UG8oZyxFKSxFKz00KSwxMDI0JkImJihpLmZsYWdzPVBvKGcsRSksRSs9NCksMjA0OCZCJiYoaS5jdHM9ST8tKDErflBvKGcsRSs0KSk6UG8oZyxFKSxFKz00KSxBLnNhbXBsZXNbdF09aX19KSl9fSx7a2V5OiJ0ZmR0Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXsxPT09QS52ZXJzaW9uP0EuYmFzZU1lZGlhRGVjb2RlVGltZT1WbyhnKTpBLmJhc2VNZWRpYURlY29kZVRpbWU9UG8oZyl9KSl9fSx7a2V5OiJwcm9iZSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuISFBLmZpbmRCb3goZyxbImZ0eXAiXSl9fSx7a2V5OiJwYXJzZVNhbXBsZUZsYWdzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm57aXNMZWFkaW5nOigxMiZBWzBdKT4+PjIsZGVwZW5kc09uOjMmQVswXSxpc0RlcGVuZGVkT246KDE5MiZBWzFdKT4+PjYsaGFzUmVkdW5kYW5jeTooNDgmQVsxXSk+Pj40LHBhZGRpbmdWYWx1ZTooMTQmQVsxXSk+Pj4xLGlzTm9uU3luY1NhbXBsZToxJkFbMV0sZGVncmFkYXRpb25Qcmlvcml0eTpBWzJdPDw4fEFbM119fX0se2tleToibW9vdlRvVHJhY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEM9QS50cmFrO2lmKEMmJkMubGVuZ3RoKXt2YXIgRT1DLmZpbmQoKGZ1bmN0aW9uKEEpe3ZhciBnLEk7cmV0dXJuInZpZGUiPT09KG51bGw9PT0oZz1BLm1kaWEpfHx2b2lkIDA9PT1nfHxudWxsPT09KEk9Zy5oZGxyKXx8dm9pZCAwPT09ST92b2lkIDA6SS5oYW5kbGVyVHlwZSl9KSksaT1DLmZpbmQoKGZ1bmN0aW9uKEEpe3ZhciBnLEk7cmV0dXJuInNvdW4iPT09KG51bGw9PT0oZz1BLm1kaWEpfHx2b2lkIDA9PT1nfHxudWxsPT09KEk9Zy5oZGxyKXx8dm9pZCAwPT09ST92b2lkIDA6SS5oYW5kbGVyVHlwZSl9KSk7aWYoRSYmZyl7dmFyIHQsZSxvLG4scixhLHMsYyxoPWcseT1udWxsPT09KHQ9RS50a2hkKXx8dm9pZCAwPT09dD92b2lkIDA6dC50cmFja0lkO251bGwhPXkmJihoLmlkPUUudGtoZC50cmFja0lkKSxoLnRraGREdXJhdGlvbj1FLnRraGQuZHVyYXRpb24saC5tdmhkRHVydGlvbj1BLm12aGQuZHVyYXRpb24saC5tdmhkVGltZWNhbGU9QS5tdmhkLnRpbWVzY2FsZSxoLnRpbWVzY2FsZT1oLmZvcm1hdFRpbWVzY2FsZT1FLm1kaWEubWRoZC50aW1lc2NhbGUsaC5kdXJhdGlvbj1FLm1kaWEubWRoZC5kdXJhdGlvbnx8aC5tdmhkRHVydGlvbi9oLm12aGRUaW1lY2FsZSpoLnRpbWVzY2FsZSxudWxsIT09KGU9RS5lZHRzKSYmdm9pZCAwIT09ZSYmZS5lbHN0JiYoaC5lZGl0TGlzdD1FLmVkdHMuZWxzdCxoLmVkaXRMaXN0QXBwbGllZD1FLmVkaXRMaXN0QXBwbGllZCk7dmFyIEQsZix1LHcsZCxGLGwsRyxSPUUubWRpYS5taW5mLnN0Ymwuc3RzZC5lbnRyaWVzWzBdO2lmKGgud2lkdGg9Ui53aWR0aCxoLmhlaWdodD1SLmhlaWdodCxSLnBhc3AmJihoLnNhclJhdGlvPVtSLnBhc3AuaFNwYWNpbmcsUi5wYXNwLnZTcGFjaW5nXSksUi5odmNDKWguY29kZWNUeXBlPU5vLGguY29kZWM9Ui5odmNDLmNvZGVjLGgudnBzPVIuaHZjQy52cHMsaC5zcHM9Ui5odmNDLnNwcyxoLnBwcz1SLmh2Y0MucHBzLGguaHZjQz1SLmh2Y0MuZGF0YTtlbHNlIGlmKFIuYXZjQyloLmNvZGVjPVIuYXZjQy5jb2RlYyxoLnNwcz1SLmF2Y0Muc3BzLGgucHBzPVIuYXZjQy5wcHM7ZWxzZXtpZighUi52dmNDKXRocm93IG5ldyBFcnJvcigidW5rbm93biB2aWRlbyBzdHNkIGVudHJ5Iik7aC5jb2RlY1R5cGU9TW8saC5jb2RlYz1SLnZ2Y0MuY29kZWMsaC5zcHM9Ui52dmNDLnNwcyxoLnBwcz1SLnZ2Y0MucHBzLGgudnBzPVIudnZjQy52cHMsaC52dmNDPVIudnZjQy5kYXRhfWlmKGgucHJlc2VudD0hMCxoLmV4dD17fSxoLmV4dC5zdHNzPW51bGw9PT0obz1FLm1kaWEpfHx2b2lkIDA9PT1vfHxudWxsPT09KG49by5taW5mKXx8dm9pZCAwPT09bnx8bnVsbD09PShyPW4uc3RibCl8fHZvaWQgMD09PXI/dm9pZCAwOnIuc3RzcyxoLmV4dC5jdHRzPW51bGw9PT0oYT1FLm1kaWEpfHx2b2lkIDA9PT1hfHxudWxsPT09KHM9YS5taW5mKXx8dm9pZCAwPT09c3x8bnVsbD09PShjPXMuc3RibCl8fHZvaWQgMD09PWM/dm9pZCAwOmMuY3R0cyxSJiYiZW5jdiI9PT1SLnR5cGUpaC5pc1ZpZGVvRW5jcnlwdGlvbj0hMCxSLmRlZmF1bHRfS0lEPW51bGw9PT0oRD1SLnNpbmYpfHx2b2lkIDA9PT1EfHxudWxsPT09KGY9RC5zY2hpKXx8dm9pZCAwPT09Zj92b2lkIDA6Zi50ZW5jLmRlZmF1bHRfS0lELFIuZGVmYXVsdF9Jc0VuY3J5cHRlZD1udWxsPT09KHU9Ui5zaW5mKXx8dm9pZCAwPT09dXx8bnVsbD09PSh3PXUuc2NoaSl8fHZvaWQgMD09PXc/dm9pZCAwOncudGVuYy5kZWZhdWx0X0lzRW5jcnlwdGVkLFIuZGVmYXVsdF9JVl9zaXplPW51bGw9PT0oZD1SLnNpbmYpfHx2b2lkIDA9PT1kfHxudWxsPT09KEY9ZC5zY2hpKXx8dm9pZCAwPT09Rj92b2lkIDA6Ri50ZW5jLmRlZmF1bHRfSVZfc2l6ZSxoLnZpZGVvU2VuYz1FLm1kaWEubWluZi5zdGJsLnNlbmMmJkUubWRpYS5taW5mLnN0Ymwuc2VuYy5zYW1wbGVzLFIuZGF0YV9mb3JtYXQ9bnVsbD09PShsPVIuc2luZil8fHZvaWQgMD09PWx8fG51bGw9PT0oRz1sLmZybWEpfHx2b2lkIDA9PT1HP3ZvaWQgMDpHLmRhdGFfZm9ybWF0LGgudXNlRU1FPUEudXNlRU1FLGgua2lkVmFsdWU9QS5raWRWYWx1ZSxoLnBzc2g9QS5wc3NoLGguZW5jdj1SfWlmKGkmJkkpe3ZhciBVLGssUyxOLE0sWSxILHAsSixMLHY9SSxLPW51bGw9PT0oVT1pLnRraGQpfHx2b2lkIDA9PT1VP3ZvaWQgMDpVLnRyYWNrSWQ7bnVsbCE9SyYmKHYuaWQ9aS50a2hkLnRyYWNrSWQpLHYudGtoZER1cmF0aW9uPWkudGtoZC5kdXJhdGlvbix2Lm12aGREdXJ0aW9uPUEubXZoZC5kdXJhdGlvbix2Lm12aGRUaW1lY2FsZT1BLm12aGQudGltZXNjYWxlLHYudGltZXNjYWxlPXYuZm9ybWF0VGltZXNjYWxlPWkubWRpYS5tZGhkLnRpbWVzY2FsZSx2LmR1cmF0aW9uPWkubWRpYS5tZGhkLmR1cmF0aW9ufHx2Lm12aGREdXJ0aW9uL3YubXZoZFRpbWVjYWxlKnYudGltZXNjYWxlLG51bGwhPT0oaz1pLmVkdHMpJiZ2b2lkIDAhPT1rJiZrLmVsc3QmJih2LmVkaXRMaXN0PWkuZWR0cy5lbHN0LHYuZWRpdExpc3RBcHBsaWVkPWkuZWRpdExpc3RBcHBsaWVkKTt2YXIgbSx4LHEsYixULE8sVyxaLGo9aS5tZGlhLm1pbmYuc3RibC5zdHNkLmVudHJpZXNbMF07c3dpdGNoKHYuc2FtcGxlU2l6ZT1qLnNhbXBsZVNpemUsdi5zYW1wbGVSYXRlPWouc2FtcGxlUmF0ZSx2LmNoYW5uZWxDb3VudD1qLmNoYW5uZWxDb3VudCx2LnByZXNlbnQ9ITAsai50eXBlKXtjYXNlImFsYXciOnYuY29kZWNUeXBlPXYuY29kZWM9SG8sdi5zYW1wbGVSYXRlPThlMzticmVhaztjYXNlInVsYXciOnYuY29kZWNUeXBlPXYuY29kZWM9cG8sdi5zYW1wbGVSYXRlPThlMzticmVhaztkZWZhdWx0OnYuc2FtcGxlRHVyYXRpb249T28uZ2V0RnJhbWVEdXJhdGlvbih2LnNhbXBsZVJhdGUsdi50aW1lc2NhbGUpLHYuc2FtcGxlUmF0ZUluZGV4PU9vLmdldFJhdGVJbmRleEJ5UmF0ZSh2LnNhbXBsZVJhdGUpLHYub2JqZWN0VHlwZT0obnVsbD09PShCPWouZXNkcyl8fHZvaWQgMD09PUI/dm9pZCAwOkIub2JqZWN0VHlwZSl8fDIsai5lc2RzJiYodi5jb25maWc9QXJyYXkuZnJvbShqLmVzZHMuY29uZmlnKSksdi5jb2RlYz0obnVsbD09PShRPWouZXNkcyl8fHZvaWQgMD09PVE/dm9pZCAwOlEuY29kZWMpfHwibXA0YS40MC4yIn1pZih2LnNhbXBsZUR1cmF0aW9uPU9vLmdldEZyYW1lRHVyYXRpb24odi5zYW1wbGVSYXRlLHYudGltZXNjYWxlKSx2Lm9iamVjdFR5cGU9KG51bGw9PT0oUz1qLmVzZHMpfHx2b2lkIDA9PT1TP3ZvaWQgMDpTLm9iamVjdFR5cGUpfHwyLGouZXNkcyYmKGouZXNkcy5jb25maWc/di5jb25maWc9QXJyYXkuZnJvbShqLmVzZHMuY29uZmlnKTpjb25zb2xlLndhcm4oImVzZHMgY29uZmlnIGlzIG51bGwiKSksdi5jb2RlYz0obnVsbD09PShOPWouZXNkcyl8fHZvaWQgMD09PU4/dm9pZCAwOk4uY29kZWMpfHwibXA0YS40MC4yIix2LnNhbXBsZVJhdGVJbmRleD1Pby5nZXRSYXRlSW5kZXhCeVJhdGUodi5zYW1wbGVSYXRlKSx2LmV4dD17fSx2LmV4dC5zdHNzPW51bGw9PT0oTT1pLm1kaWEpfHx2b2lkIDA9PT1NfHxudWxsPT09KFk9TS5taW5mKXx8dm9pZCAwPT09WXx8bnVsbD09PShIPVkuc3RibCl8fHZvaWQgMD09PUg/dm9pZCAwOkguc3Rzcyx2LmV4dC5jdHRzPW51bGw9PT0ocD1pLm1kaWEpfHx2b2lkIDA9PT1wfHxudWxsPT09KEo9cC5taW5mKXx8dm9pZCAwPT09Snx8bnVsbD09PShMPUouc3RibCl8fHZvaWQgMD09PUw/dm9pZCAwOkwuY3R0cyx2LnByZXNlbnQ9ITAsaiYmImVuY2EiPT09ai50eXBlKXYuaXNBdWRpb0VuY3J5cHRpb249ITAsai5kYXRhX2Zvcm1hdD1udWxsPT09KG09ai5zaW5mKXx8dm9pZCAwPT09bXx8bnVsbD09PSh4PW0uZnJtYSl8fHZvaWQgMD09PXg/dm9pZCAwOnguZGF0YV9mb3JtYXQsai5kZWZhdWx0X0tJRD1udWxsPT09KHE9ai5zaW5mKXx8dm9pZCAwPT09cXx8bnVsbD09PShiPXEuc2NoaSl8fHZvaWQgMD09PWI/dm9pZCAwOmIudGVuYy5kZWZhdWx0X0tJRCxqLmRlZmF1bHRfSXNFbmNyeXB0ZWQ9bnVsbD09PShUPWouc2luZil8fHZvaWQgMD09PVR8fG51bGw9PT0oTz1ULnNjaGkpfHx2b2lkIDA9PT1PP3ZvaWQgMDpPLnRlbmMuZGVmYXVsdF9Jc0VuY3J5cHRlZCxqLmRlZmF1bHRfSVZfc2l6ZT1udWxsPT09KFc9ai5zaW5mKXx8dm9pZCAwPT09V3x8bnVsbD09PShaPVcuc2NoaSl8fHZvaWQgMD09PVo/dm9pZCAwOloudGVuYy5kZWZhdWx0X0lWX3NpemUsdi5hdWRpb1NlbmM9aS5tZGlhLm1pbmYuc3RibC5zZW5jJiZpLm1kaWEubWluZi5zdGJsLnNlbmMuc2FtcGxlcyx2LnVzZUVNRT1BLnVzZUVNRSx2LmtpZFZhbHVlPUEua2lkVmFsdWUsdi5lbmNhPWp9aWYoSSYmKEkuaXNWaWRlb0VuY3J5cHRpb249ISFnJiZnLmlzVmlkZW9FbmNyeXB0aW9uKSxnJiYoZy5pc0F1ZGlvRW5jcnlwdGlvbj0hIUkmJkkuaXNBdWRpb0VuY3J5cHRpb24pLG51bGwhPWcmJmcuZW5jdnx8bnVsbCE9SSYmSS5lbmNhKXt2YXIgUCxYLFY9bnVsbD09Z3x8bnVsbD09PShQPWcuZW5jdil8fHZvaWQgMD09PVA/dm9pZCAwOlAuZGVmYXVsdF9LSUQsej1udWxsPT1JfHxudWxsPT09KFg9SS5lbmNhKXx8dm9pZCAwPT09WD92b2lkIDA6WC5kZWZhdWx0X0tJRCxfPVZ8fHo/KFZ8fHopLmpvaW4oIiIpOm51bGw7ZyYmKGcua2lkPV8pLEkmJihJLmtpZD1fKX1yZXR1cm4gZyYmKGcuZmxhZ3M9Mzg0MSksSSYmKEkuZmxhZ3M9MTc5Mykse3ZpZGVvVHJhY2s6ZyxhdWRpb1RyYWNrOkl9fX19LHtrZXk6ImV2YWx1YXRlRGVmYXVsdER1cmF0aW9uIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUT1udWxsPT1nfHxudWxsPT09KEI9Zy5zYW1wbGVzKXx8dm9pZCAwPT09Qj92b2lkIDA6Qi5sZW5ndGg7cmV0dXJuIFE/MTAyNCpRL2cudGltZXNjYWxlKkEudGltZXNjYWxlL0k6MTAyNH19LHtrZXk6Im1vb2ZUb1NhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUT17fTtyZXR1cm4gZy5tZmhkJiYoSSYmKEkuc2VxdWVuY2VOdW1iZXI9Zy5tZmhkLnNlcXVlbmNlTnVtYmVyKSxCJiYoQi5zZXF1ZW5jZU51bWJlcj1nLm1maGQuc2VxdWVuY2VOdW1iZXIpKSxnLnRyYWYuZm9yRWFjaCgoZnVuY3Rpb24oZyl7dmFyIEM9Zy50ZmhkLEU9Zy50ZmR0LGk9Zy50cnVuO2lmKEMmJmkpe0UmJihJJiZJLmlkPT09Qy50cmFja0lkJiYoSS5iYXNlTWVkaWFEZWNvZGVUaW1lPUUuYmFzZU1lZGlhRGVjb2RlVGltZSksQiYmQi5pZD09PUMudHJhY2tJZCYmKEIuYmFzZU1lZGlhRGVjb2RlVGltZT1FLmJhc2VNZWRpYURlY29kZVRpbWUpKTt2YXIgdD1DLmRlZmF1bHRTYW1wbGVTaXplfHwwLGU9Qy5kZWZhdWx0U2FtcGxlRHVyYXRpb258fEEuZXZhbHVhdGVEZWZhdWx0RHVyYXRpb24oSSxCLGkuc2FtcGxlcy5sZW5ndGh8fGkuc2FtcGxlQ291bnQpLG89aS5kYXRhT2Zmc2V0fHwwLG49MCxyPS0xO2lmKCFpLnNhbXBsZXMubGVuZ3RoJiZpLnNhbXBsZUNvdW50KXtRW0MudHJhY2tJZF09bmV3IEFycmF5KGkuc2FtcGxlQ291bnQpO2Zvcih2YXIgYT0wO2E8aS5zYW1wbGVDb3VudDthKyspUVtDLnRyYWNrSWRdW2FdPXtvZmZzZXQ6byxkdHM6bixkdXJhdGlvbjplLHNpemU6dH0sbis9ZSxvKz10fWVsc2UgUVtDLnRyYWNrSWRdPWkuc2FtcGxlcy5tYXAoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuKEE9e29mZnNldDpvLGR0czpuLHB0czpuKyhBLmN0c3x8MCksZHVyYXRpb246QS5kdXJhdGlvbnx8ZSxzaXplOkEuc2l6ZXx8dCxnb3BJZDpyLGtleWZyYW1lOjA9PT1nfHxudWxsIT09QS5mbGFncyYmdm9pZCAwIT09QS5mbGFncyYmKDY1NTM2JkEuZmxhZ3MpPj4+MCE9NjU1MzZ9KS5rZXlmcmFtZSYmKHIrKyxBLmdvcElkPXIpLG4rPUEuZHVyYXRpb24sbys9QS5zaXplLEF9KSl9fSkpLFF9fSx7a2V5OiJtb292VG9TYW1wbGVzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BLnRyYWs7aWYoZyYmZy5sZW5ndGgpe3ZhciBJPWcuZmluZCgoZnVuY3Rpb24oQSl7dmFyIGcsSTtyZXR1cm4idmlkZSI9PT0obnVsbD09PShnPUEubWRpYSl8fHZvaWQgMD09PWd8fG51bGw9PT0oST1nLmhkbHIpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmhhbmRsZXJUeXBlKX0pKSxCPWcuZmluZCgoZnVuY3Rpb24oQSl7dmFyIGcsSTtyZXR1cm4ic291biI9PT0obnVsbD09PShnPUEubWRpYSl8fHZvaWQgMD09PWd8fG51bGw9PT0oST1nLmhkbHIpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmhhbmRsZXJUeXBlKX0pKTtpZihJfHxCKXt2YXIgUSxDO2lmKEkpe3ZhciBFLGksdD1udWxsPT09KEU9SS5tZGlhKXx8dm9pZCAwPT09RXx8bnVsbD09PShpPUUubWluZil8fHZvaWQgMD09PWk/dm9pZCAwOmkuc3RibDtpZighdClyZXR1cm47dmFyIGU9dC5zdHRzLG89dC5zdHNjLG49dC5zdHN6LHI9dC5zdGNvLGE9dC5zdHNzLHM9dC5jdHRzO2lmKCEoZSYmbyYmbiYmciYmYSkpcmV0dXJuO1E9UW4oZSxvLG4scixzLGEpfWlmKEIpe3ZhciBjLGgseSxEPW51bGw9PT0oYz1CLm1kaWEpfHx2b2lkIDA9PT1jfHxudWxsPT09KGg9Yy5taW5mKXx8dm9pZCAwPT09aD92b2lkIDA6aC5zdGJsO2lmKCFEKXJldHVybjt2YXIgZj1udWxsPT09KHk9Qi5tZGlhLm1kaGQpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LnRpbWVzY2FsZSx1PUQuc3R0cyx3PUQuc3RzYyxkPUQuc3RzeixGPUQuc3RjbztpZighKGYmJnUmJncmJmQmJkYpKXJldHVybjtDPVFuKHUsdyxkLEYpfXJldHVybnt2aWRlb1NhbXBsZXM6USxhdWRpb1NhbXBsZXM6Q319fX19XSksQX0oKTtmdW5jdGlvbiBRbihBLGcsSSxCLFEsQyl7dmFyIEUsaSx0LGU9W10sbz1udWxsPT1RP3ZvaWQgMDpRLmVudHJpZXMsbj1nLmVudHJpZXMscj1CLmVudHJpZXMsYT1JLmVudHJ5U2l6ZXMscz1udWxsPT1DP3ZvaWQgMDpDLmVudHJpZXM7cyYmKEU9e30scy5mb3JFYWNoKChmdW5jdGlvbihBKXtFW0EtMV09ITB9KSkpLG8mJihpPVtdLG8uZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuY291bnQsST1BLm9mZnNldCxCPTA7QjxnO0IrKylpLnB1c2goSSl9KSkpO3ZhciBjPS0xLGg9MCx5PTAsRD0wLGY9MCx1PTAsdz1uWzBdLnNhbXBsZXNQZXJDaHVuayxkPW5bMV0/blsxXS5maXJzdENodW5rLTE6MS8wO3JldHVybiBBLmVudHJpZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuY291bnQsQj1BLmRlbHRhLFE9MDtRPGc7USsrKXQ9e2R0czpoLGR1cmF0aW9uOkIsc2l6ZTphW3ldfHxJLnNhbXBsZVNpemUsb2Zmc2V0OnJbRF0rdSxpbmRleDp5fSxzJiYodC5rZXlmcmFtZT1FW3ldLHQua2V5ZnJhbWUmJmMrKyx0LmdvcElkPWMpLGkmJnk8aS5sZW5ndGgmJih0LnB0cz10LmR0cytpW3ldKSxlLnB1c2godCksaCs9QiwrK3k8dz91Kz10LnNpemU6KEQrKyx1PTAsRD49ZCYmKGYrKyxkPW5bZisxXT9uW2YrMV0uZmlyc3RDaHVuay0xOjEvMCksdys9bltmXS5zYW1wbGVzUGVyQ2h1bmspfSkpLGV9ZnVuY3Rpb24gQ24oQSxnKXtyZXR1cm4gQS5kYXRhUmVmZXJlbmNlSW5kZXg9am8oZyw2KSxBLndpZHRoPWpvKGcsMjQpLEEuaGVpZ2h0PWpvKGcsMjYpLEEuaG9yaXpyZXNvbHV0aW9uPVBvKGcsMjgpLEEudmVydHJlc29sdXRpb249UG8oZywzMiksQS5mcmFtZUNvdW50PWpvKGcsNDApLEEuZGVwdGg9am8oZyw3NCksNzh9ZnVuY3Rpb24gRW4oQSxnKXtyZXR1cm4gQS5kYXRhUmVmZXJlbmNlSW5kZXg9am8oZyw2KSxBLmNoYW5uZWxDb3VudD1qbyhnLDE2KSxBLnNhbXBsZVNpemU9am8oZywxOCksQS5zYW1wbGVSYXRlPVBvKGcsMjQpLzY1NTM2LDI4fWZ1bmN0aW9uIHRuKEEsZyxJKXtpZihBKXtpZihBLnNpemUhPT1BLmRhdGEubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYm94ICIuY29uY2F0KEEudHlwZSwiIHNpemUgIT09IGRhdGEubGVuZ3RoIikpO3ZhciBCPXtzdGFydDpBLnN0YXJ0LHNpemU6QS5zaXplLGhlYWRlclNpemU6QS5oZWFkZXJTaXplLHR5cGU6QS50eXBlfTtyZXR1cm4gZyYmKEIudmVyc2lvbj1BLmRhdGFbQS5oZWFkZXJTaXplXSxCLmZsYWdzPWZ1bmN0aW9uKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwxNikrKEFbZysxXTw8OCkrKEFbZysyXXx8MCl9KEEuZGF0YSxBLmhlYWRlclNpemUrMSksQi5oZWFkZXJTaXplKz00KSxJKEIsQS5kYXRhLnN1YmFycmF5KEIuaGVhZGVyU2l6ZSksQi5zdGFydCtCLmhlYWRlclNpemUpLEJ9fXZhciBlbj1mdW5jdGlvbigpe2Zvcih2YXIgQT1bXSxnPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoZyksQj0wO0I8ZztCKyspSVtCXT1hcmd1bWVudHNbQl07cmV0dXJuIEkuZm9yRWFjaCgoZnVuY3Rpb24oZyl7QS5wdXNoKGZ1bmN0aW9uKEEsZyxJKXtmb3IodmFyIEI9U3RyaW5nKEkpLFE9Zz4+MCxDPU1hdGguY2VpbChRL0IubGVuZ3RoKSxFPVtdLGk9U3RyaW5nKEEpO0MtLTspRS5wdXNoKEIpO3JldHVybiBFLmpvaW4oIiIpLnN1YnN0cmluZygwLFEtaS5sZW5ndGgpK2l9KE51bWJlcihnKS50b1N0cmluZygxNiksMiwwKSl9KSksQVswXX0sb249ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKGcsSSxCKXtobyh0aGlzLEEpLHRoaXMudmlkZW9UcmFjaz1nfHxuZXcgSm8sdGhpcy5hdWRpb1RyYWNrPUl8fG5ldyBMbyx0aGlzLm1ldGFkYXRhVHJhY2s9Qnx8bmV3IG1vfXJldHVybiBEbyhBLFt7a2V5OiJkZW11eCIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgST10aGlzLnZpZGVvVHJhY2ssQj10aGlzLmF1ZGlvVHJhY2ssUT1JLmV4aXN0KCksQz1CLmV4aXN0KCk7aWYoSS5zYW1wbGVzPVtdLEIuc2FtcGxlcz1bXSxnKXtpZighQyl7dmFyIEU9Qm4uZmluZEJveChnLFsibW9vdiJdKVswXTtpZighRSl0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBmb3VuZCBtb292IGJveCIpO0JuLm1vb3ZUb1RyYWNrKEJuLm1vb3YoRSksbnVsbCxCKX12YXIgaT1Cbi5maW5kQm94KGcsWyJtb29mIl0pWzBdO2lmKGkpe3ZhciB0PUJuLm1vb2ZUb1NhbXBsZXMoQm4ubW9vZihpKSxudWxsLEIpW0IuaWRdLGU9Qi5iYXNlTWVkaWFEZWNvZGVUaW1lO2lmKHQpe3ZhciBvPWkuc3RhcnQ7dC5tYXAoKGZ1bmN0aW9uKEEpe0Eub2Zmc2V0Kz1vO3ZhciBJPWcuc3ViYXJyYXkoQS5vZmZzZXQsQS5vZmZzZXQrQS5zaXplKTtCLnNhbXBsZXMucHVzaChuZXcgS28oQS5kdHMrZSxJLEEuZHVyYXRpb24pKX0pKX19fWlmKEEpe2lmKCFRJiYhQyl7dmFyIG49Qm4uZmluZEJveChBLFsibW9vdiJdKVswXTtpZighbil0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBmb3VuZCBtb292IGJveCIpO0JuLm1vb3ZUb1RyYWNrKEJuLm1vb3YobiksSSxCKX12YXIgcj1Cbi5maW5kQm94KEEsWyJtb29mIl0pWzBdO2lmKHIpe3ZhciBhLHM9Qm4ubW9vZlRvU2FtcGxlcyhCbi5tb29mKHIpLEksQiksYz1JLmJhc2VNZWRpYURlY29kZVRpbWUsaD1CLmJhc2VNZWRpYURlY29kZVRpbWUseT1yLnN0YXJ0O09iamVjdC5rZXlzKHMpLmZvckVhY2goKGZ1bmN0aW9uKGcpe0kuaWQ9PWc/c1tnXS5tYXAoKGZ1bmN0aW9uKGcpe2cub2Zmc2V0Kz15O3ZhciBCPW5ldyB2bygoIm51bWJlciI9PXR5cGVvZiBnLnB0cz9nLnB0czpnLmR0cykrYyxnLmR0cytjKTtCLmR1cmF0aW9uPWcuZHVyYXRpb24sQi5nb3BJZD1nLmdvcElkLGcua2V5ZnJhbWUmJkIuc2V0VG9LZXlmcmFtZSgpO3ZhciBRPUEuc3ViYXJyYXkoZy5vZmZzZXQsZy5vZmZzZXQrZy5zaXplKTtCLmRhdGE9UTtmb3IodmFyIEM9MCxFPVEubGVuZ3RoLTE7QzxFOylhPVBvKFEsQyksQys9NCxCLnVuaXRzLnB1c2goUS5zdWJhcnJheShDLEMrYSkpLEMrPWE7SS5zYW1wbGVzLnB1c2goQil9KSk6Qi5pZD09ZyYmc1tnXS5tYXAoKGZ1bmN0aW9uKGcpe2cub2Zmc2V0Kz15O3ZhciBJPUEuc3ViYXJyYXkoZy5vZmZzZXQsZy5vZmZzZXQrZy5zaXplKTtCLnNhbXBsZXMucHVzaChuZXcgS28oZy5kdHMraCxJLGcuZHVyYXRpb24pKX0pKX0pKX19cmV0dXJue3ZpZGVvVHJhY2s6SSxhdWRpb1RyYWNrOkIsbWV0YWRhdGFUcmFjazp0aGlzLm1ldGFkYXRhVHJhY2t9fX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52aWRlb1RyYWNrLnJlc2V0KCksdGhpcy5hdWRpb1RyYWNrLnJlc2V0KCksdGhpcy5tZXRhZGF0YVRyYWNrLnJlc2V0KCl9fV0sW3trZXk6InByb2JlIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gQm4ucHJvYmUoQSl9fV0pLEF9KCk7dmFyIG5uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2hvKHRoaXMsQSksdGhpcy5idWZmZXI9bmV3IFVpbnQ4QXJyYXkoMCl9cmV0dXJuIERvKEEsW3trZXk6IndyaXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgQT10aGlzLGc9YXJndW1lbnRzLmxlbmd0aCxJPW5ldyBBcnJheShnKSxCPTA7QjxnO0IrKylJW0JdPWFyZ3VtZW50c1tCXTtJLmZvckVhY2goKGZ1bmN0aW9uKGcpe2c/QS5idWZmZXI9ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPTAsST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEk+MT9JLTE6MCksUT0xO1E8STtRKyspQltRLTFdPWFyZ3VtZW50c1tRXTtCLmZvckVhY2goKGZ1bmN0aW9uKEEpe2crPUEubGVuZ3RofSkpO3ZhciBDPW5ldyBBKGcpLEU9MDtyZXR1cm4gQi5mb3JFYWNoKChmdW5jdGlvbihBKXtDLnNldChBLEUpLEUrPUEubGVuZ3RofSkpLEN9KFVpbnQ4QXJyYXksQS5idWZmZXIsZyk6d2luZG93LmNvbnNvbGUud2FybihnKX0pKX19XSxbe2tleToid3JpdGVVaW50MTYiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgVWludDhBcnJheShbQT4+OCYyNTUsMjU1JkFdKX19LHtrZXk6IndyaXRlVWludDMyIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoW0E+PjI0LEE+PjE2JjI1NSxBPj44JjI1NSwyNTUmQV0pfX1dKSxBfSgpLHJuPU1hdGgucG93KDIsMzIpLTEsYW49ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7aG8odGhpcyxBKX1yZXR1cm4gRG8oQSxudWxsLFt7a2V5OiJib3giLHZhbHVlOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KGc+MT9nLTE6MCksQj0xO0I8ZztCKyspSVtCLTFdPWFyZ3VtZW50c1tCXTt2YXIgUT04KyhJPUkuZmlsdGVyKEJvb2xlYW4pKS5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEErZy5ieXRlTGVuZ3RofSksMCksQz1uZXcgVWludDhBcnJheShRKTtDWzBdPVE+PjI0JjI1NSxDWzFdPVE+PjE2JjI1NSxDWzJdPVE+PjgmMjU1LENbM109MjU1JlEsQy5zZXQoQSw0KTt2YXIgRT04O3JldHVybiBJLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Muc2V0KEEsRSksRSs9QS5ieXRlTGVuZ3RofSkpLEN9fSx7a2V5OiJGdWxsQm94Iix2YWx1ZTpmdW5jdGlvbihnLEksQil7Zm9yKHZhciBRPWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoUT4zP1EtMzowKSxFPTM7RTxRO0UrKylDW0UtM109YXJndW1lbnRzW0VdO3JldHVybiBBLmJveC5hcHBseShBLFtnLG5ldyBVaW50OEFycmF5KFtJLEI+PjE2JjI1NSxCPj44JjI1NSwyNTUmQl0pXS5jb25jYXQoQykpfX0se2tleToiZnR5cCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZmluZCgoZnVuY3Rpb24oQSl7cmV0dXJuIEEudHlwZT09PVJvJiZBLmNvZGVjVHlwZT09PU5vfSkpP0EuRlRZUEhFVjE6QS5GVFlQQVZDMX19LHtrZXk6ImluaXRTZWdtZW50Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gV28oQS5mdHlwKGcpLEEubW9vdihnKSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbMSwwLDAsMF0uY29uY2F0KFsxNiwxMTksMjM5LDIzNiwxOTIsMTc4LDc3LDIsMTcyLDIyNyw2MCwzMCw4MiwyMjYsMjUxLDc1XSxbMCwwLDAsMV0sJG8oZy5raWQpLFswLDAsMCwwXSkpO3JldHVybiBBLmJveChBLnR5cGVzLnBzc2gsSSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtpZihnWzBdLnVzZUVNRSYmKGdbMF0uZW5jdnx8Z1swXS5lbmNhKSl7Z1swXS5wc3NofHwoZ1swXS5wc3NoPXtraWQ6Z1swXS5raWR9KTt2YXIgST10aGlzLnBzc2goZ1swXS5wc3NoKTtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb292LEEubXZoZChnWzBdLm12aGREdXJ0aW9ufHxnWzBdLmR1cmF0aW9uLGdbMF0ubXZoZFRpbWVjYWxlfHxnWzBdLnRpbWVzY2FsZSksQS5tdmV4KGcpXS5jb25jYXQod28oZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSkpLFtJXSkpfXJldHVybiBBLmJveC5hcHBseShBLFtBLnR5cGVzLm1vb3YsQS5tdmhkKGdbMF0ubXZoZER1cnRpb258fGdbMF0uZHVyYXRpb24sZ1swXS5tdmhkVGltZWNhbGV8fGdbMF0udGltZXNjYWxlKV0uY29uY2F0KHdvKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmFrKGcpfSkpKSxbQS5tdmV4KGcpXSkpfX0se2tleToibXZoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNDtyZXR1cm4gQS5ib3goQS50eXBlcy5tdmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwxLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1XSkpfX0se2tleToidHJhayIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhayxBLnRraGQoZy5pZCxnLnRraGREdXJhdGlvbnx8MCxnLndpZHRoLGcuaGVpZ2h0KSxBLm1kaWEoZykpfX0se2tleToidGtoZCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTowO3JldHVybiBBLmJveChBLnR5cGVzLnRraGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDcsMCwwLDAsMCwwLDAsMCwwLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDAsMCwwLEI+PjgmMjU1LDI1NSZCLDAsMCxRPj44JjI1NSwyNTUmUSwwLDBdKSl9fSx7a2V5OiJlZHRzIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5lZHRzLEEuZWxzdChnKSl9fSx7a2V5OiJlbHN0Iix2YWx1ZTpmdW5jdGlvbihnKXtnLmVudHJpZXM7dmFyIEk9Zy5lbnRyaWVzRGF0YSxCPWcudmVyc2lvbjtyZXR1cm4gQS5GdWxsQm94KEEudHlwZXMuZWxzdCxCLDAsSSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGlhLEEubWRoZChnLmR1cmF0aW9uLGcudGltZXNjYWxlKSxBLmhkbHIoZy50eXBlKSxBLm1pbmYoZykpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNDtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsODUsMTk2LDAsMF0pKX19LHtrZXk6ImhkbHIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLmhkbHIsQS5IRExSX1RZUEVTW2ddKX19LHtrZXk6Im1pbmYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1pbmYsZy50eXBlPT09Um8/QS5WTUhEOkEuU01IRCxBLkRJTkYsQS5zdGJsKGcpKX19LHtrZXk6InN0YmwiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPVtdO3JldHVybiBnJiZnLmV4dCYmZy5leHQuc3RzcyYmSS5wdXNoKEEuc3RzcyhnLmV4dC5zdHNzLmVudHJpZXMpKSxBLmJveChBLnR5cGVzLnN0YmwsQS5zdHNkKGcpLEEuU1RUUyxJWzBdLEEuU1RTQyxBLlNUU1osQS5TVENPKX19LHtrZXk6InN0c2QiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJO3JldHVybiBJPSJhdWRpbyI9PT1nLnR5cGU/Zy51c2VFTUUmJmcuZW5jYT9BLmVuY2EoZyk6QS5tcDRhKGcpOmcudXNlRU1FJiZnLmVuY3Y/QS5lbmN2KGcpOkEuYXZjMWhldjF2dmMxKGcpLEEuYm94KEEudHlwZXMuc3RzZCxuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxXSksSSl9fSx7a2V5OiJlbmNhIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmVuY2EuY2hhbm5lbENvdW50LEI9Zy5lbmNhLnNhbXBsZVJhdGUsUT1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLEksMCwxNiwwLDAsMCwwLEI+PjgmMjU1LDI1NSZCLDAsMF0pLEM9QS5lc2RzKGcuY29uZmlnKSxFPUEuc2luZihnLmVuY2EpO3JldHVybiBBLmJveChBLnR5cGVzLmVuY2EsUSxDLEUpfX0se2tleToiZW5jdiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEksQixRPWcuc3BzLmxlbmd0aD4wP2cuc3BzWzBdOltdLEM9Zy5wcHMubGVuZ3RoPjA/Zy5wcHNbMF06W10sRT1nLndpZHRoLGk9Zy5oZWlnaHQsdD1nLnNhclJhdGlvWzBdLGU9Zy5zYXJSYXRpb1sxXSxvPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxFPj44JjI1NSwyNTUmRSxpPj44JjI1NSwyNTUmaSwwLDcyLDAsMCwwLDcyLDAsMCwwLDAsMCwwLDAsMSwxOCwxMDAsOTcsMTA1LDEwOCwxMjEsMTA5LDExMSwxMTYsMTA1LDExMSwxMTAsNDcsMTA0LDEwOCwxMTUsNDYsMTA2LDExNSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQsMTcsMTddKSxuPW5ldyBVaW50OEFycmF5KChJPShCPVsxLFFbMV0sUVsyXSxRWzNdLDI1NSwyMjUsUS5sZW5ndGg+Pj44JjI1NSwyNTUmUS5sZW5ndGhdKS5jb25jYXQuYXBwbHkoQix3byhRKSkuY29uY2F0KFsxLEMubGVuZ3RoPj4+OCYyNTUsMjU1JkMubGVuZ3RoXSkpLmNvbmNhdC5hcHBseShJLHdvKEMpKSkscj1uZXcgVWludDhBcnJheShbMCwwLDg4LDU3LDAsMTUsMjAwLDE5MiwwLDQsODYsNzJdKSxhPUEuc2luZihnLmVuY3YpLHM9bmV3IFVpbnQ4QXJyYXkoW3Q+PjI0LHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCxlPj4yNCxlPj4xNiYyNTUsZT4+OCYyNTUsMjU1JmVdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5lbmN2LG8sQS5ib3goQS50eXBlcy5hdmNDLG4pLEEuYm94KEEudHlwZXMuYnRydCxyKSxhLEEuYm94KEEudHlwZXMucGFzcCxzKSl9fSx7a2V5OiJzY2hpIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbXSksQj1BLnRlbmMoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2NoaSxJLEIpfX0se2tleToidGVuYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDI1NSZnLmRlZmF1bHRfSXNFbmNyeXB0ZWQsMjU1JmcuZGVmYXVsdF9JVl9zaXplXS5jb25jYXQoJG8oZy5kZWZhdWx0X0tJRCkpKTtyZXR1cm4gQS5ib3goQS50eXBlcy50ZW5jLEkpfX0se2tleToic2luZiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IFVpbnQ4QXJyYXkoW10pLEI9bmV3IFVpbnQ4QXJyYXkoW2cuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgwKSxnLmRhdGFfZm9ybWF0LmNoYXJDb2RlQXQoMSksZy5kYXRhX2Zvcm1hdC5jaGFyQ29kZUF0KDIpLGcuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgzKV0pLFE9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsOTksMTAxLDExMCw5OSwwLDEsMCwwXSksQz1BLnNjaGkoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2luZixJLEEuYm94KEEudHlwZXMuZnJtYSxCKSxBLmJveChBLnR5cGVzLnNjaG0sUSksQyl9fSx7a2V5OiJhdmMxaGV2MXZ2YzEiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJLEI7Zy5jb2RlY1R5cGU9PT1Obz8oST1BLmh2Y0MoZyksQj1BLnR5cGVzLmh2YzEpOmcuY29kZWNUeXBlPT09TW8/KEk9QS52dmNDKGcpLEI9QS50eXBlcy5idmMyKTooST1BLmF2Y0MoZyksQj1BLnR5cGVzLmF2YzEpO3ZhciBRPVtuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsZy53aWR0aD4+OCYyNTUsMjU1Jmcud2lkdGgsZy5oZWlnaHQ+PjgmMjU1LDI1NSZnLmhlaWdodCwwLDcyLDAsMCwwLDcyLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNCwxNywxN10pLEldO3JldHVybiBnLmNvZGVjVHlwZT09PU5vP1EucHVzaChBLmJveChBLnR5cGVzLmZpZWwsbmV3IFVpbnQ4QXJyYXkoWzEsMF0pKSk6Zy5zYXJSYXRpbyYmZy5zYXJSYXRpby5sZW5ndGg+MSYmUS5wdXNoKEEucGFzcChnLnNhclJhdGlvKSksQS5ib3guYXBwbHkoQSxbQl0uY29uY2F0KFEpKX19LHtrZXk6ImF2Y0MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJLEIsUSxDPVtdLEU9W107cmV0dXJuIGcuc3BzLmZvckVhY2goKGZ1bmN0aW9uKEEpe1E9QS5ieXRlTGVuZ3RoLEMucHVzaChRPj4+OCYyNTUpLEMucHVzaCgyNTUmUSksQy5wdXNoLmFwcGx5KEMsd28oQSkpfSkpLGcucHBzLmZvckVhY2goKGZ1bmN0aW9uKEEpe1E9QS5ieXRlTGVuZ3RoLEUucHVzaChRPj4+OCYyNTUpLEUucHVzaCgyNTUmUSksRS5wdXNoLmFwcGx5KEUsd28oQSkpfSkpLEEuYm94KEEudHlwZXMuYXZjQyxuZXcgVWludDhBcnJheSgoST0oQj1bMSxDWzNdLENbNF0sQ1s1XSwyNTUsMjI0fGcuc3BzLmxlbmd0aF0pLmNvbmNhdC5hcHBseShCLEMpLmNvbmNhdChbZy5wcHMubGVuZ3RoXSkpLmNvbmNhdC5hcHBseShJLEUpKSl9fSx7a2V5OiJ2dmNDIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLnZ2Y0M7cmV0dXJuIEEuYm94KEEudHlwZXMuYnYyQyxuZXcgVWludDhBcnJheShJKSl9fSx7a2V5OiJodmNDIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmh2Y0M7aWYoSSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxJIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gSTt2YXIgQixRPWcudnBzLEM9Zy5zcHMsRT1nLnBwcztpZihJKXt2YXIgaT1JLmdlbmVyYWxQcm9maWxlQ29tcGF0aWJpbGl0eUZsYWdzLHQ9SS5nZW5lcmFsQ29uc3RyYWludEluZGljYXRvckZsYWdzLGU9KFEubGVuZ3RoJiYxKSsoQy5sZW5ndGgmJjEpKyhFLmxlbmd0aCYmMSk7Qj1bMSxJLmdlbmVyYWxQcm9maWxlU3BhY2U8PDZ8SS5nZW5lcmFsVGllckZsYWc8PDV8SS5nZW5lcmFsUHJvZmlsZUlkYyxpPj4+MjQsaT4+PjE2LGk+Pj44LGksdFswXSx0WzFdLHRbMl0sdFszXSx0WzRdLHRbNV0sSS5nZW5lcmFsTGV2ZWxJZGMsMjQwLDAsMjUyLDI1MnxJLmNocm9tYUZvcm1hdElkYywyNDh8SS5iaXREZXB0aEx1bWFNaW51czgsMjQ4fEkuYml0RGVwdGhDaHJvbWFNaW51czgsMCwwLEkubnVtVGVtcG9yYWxMYXllcnM8PDN8SS50ZW1wb3JhbElkTmVzdGVkPDwyfDMsZV07dmFyIG89ZnVuY3Rpb24oQSl7dmFyIGc7Qi5wdXNoKEEubGVuZ3RoPj44LEEubGVuZ3RoKSwoZz1CKS5wdXNoLmFwcGx5KGcsd28oQSkpfTtRLmxlbmd0aCYmKEIucHVzaCgxNjAsMCxRLmxlbmd0aCksUS5mb3JFYWNoKG8pKSxDLmxlbmd0aCYmKEIucHVzaCgxNjEsMCxDLmxlbmd0aCksQy5mb3JFYWNoKG8pKSxFLmxlbmd0aCYmKEIucHVzaCgxNjIsMCxFLmxlbmd0aCksRS5mb3JFYWNoKG8pKX1lbHNlIEI9WzEsMSw5NiwwLDAsMCwxNDQsMCwwLDAsMCwwLDkzLDI0MCwwLDI1MiwyNTMsMjQ4LDI0OCwwLDAsMTUsMywxNjAsMCwxLDAsMjQsNjQsMSwxMiwxLDI1NSwyNTUsMSw5NiwwLDAsMywwLDE0NCwwLDAsMywwLDAsMywwLDkzLDE1MywxNTIsOSwxNjEsMCwxLDAsNDUsNjYsMSwxLDEsOTYsMCwwLDMsMCwxNDQsMCwwLDMsMCwwLDMsMCw5MywxNjAsMiwxMjgsMTI4LDQ1LDIyLDg5LDE1MywxNjQsMTQ3LDQzLDE1NCwxMjgsMTI4LDEyOCwxMzAsMCwwLDMsMCwyLDAsMCwzLDAsNTAsMTYsMTYyLDAsMSwwLDcsNjgsMSwxOTMsMTE0LDE4MCw5OCw2NF07cmV0dXJuIEEuYm94KEEudHlwZXMuaHZjQyxuZXcgVWludDhBcnJheShCKSl9fSx7a2V5OiJwYXNwIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST11byhnLDIpLEI9SVswXSxRPUlbMV07cmV0dXJuIEEuYm94KEEudHlwZXMucGFzcCxuZXcgVWludDhBcnJheShbQj4+MjQsQj4+MTYmMjU1LEI+PjgmMjU1LDI1NSZCLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKX19LHtrZXk6Im1wNGEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1wNGEsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCxnLmNoYW5uZWxDb3VudCwwLDE2LDAsMCwwLDAsZy5zYW1wbGVSYXRlPj44JjI1NSwyNTUmZy5zYW1wbGVSYXRlLDAsMF0pLGcuY29uZmlnLmxlbmd0aD9BLmVzZHMoZy5jb25maWcpOnZvaWQgMCl9fSx7a2V5OiJlc2RzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aDtyZXR1cm4gQS5ib3goQS50eXBlcy5lc2RzLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDMsMjMrSSwwLDAsMCw0LDE1K0ksNjQsMjEsMCw2LDAsMCwwLDIxOCwxOTIsMCwwLDIxOCwxOTIsNV0uY29uY2F0KFtJXSkuY29uY2F0KGcpLmNvbmNhdChbNiwxLDJdKSkpfX0se2tleToibXZleCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94LmFwcGx5KEEsW0EudHlwZXMubXZleF0uY29uY2F0KHdvKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmV4KGcuaWQpfSkpKSkpfX0se2tleToidHJleCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJleCxuZXcgVWludDhBcnJheShbMCwwLDAsMCxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMV0pKX19LHtrZXk6InRyZXgxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmV4LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZywwLDAsMCwxLDAsMCwyLDAsMCwwLDAsMCwwLDEsMCwwXSkpfX0se2tleToidHJleDIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLnRyZXgsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnLDAsMCwwLDEsMCwwLDQsMCwwLDAsMCwwLDIsMCwwLDBdKSl9fSx7a2V5OiJtb29mIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb29mLEEubWZoZChnWzBdLnNhbXBsZXM/Z1swXS5zYW1wbGVzWzBdLmdvcElkOjApXS5jb25jYXQod28oZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWYoZyl9KSkpKSl9fSx7a2V5OiJtZmhkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pKX19LHtrZXk6InRyYWYiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPUEudGZoZChnLmlkKSxCPUEudGZkdChnLGcuYmFzZU1lZGlhRGVjb2RlVGltZSksUT0wO2lmKGcuaXNWaWRlbyYmZy52aWRlb1NlbmMmJmcudmlkZW9TZW5jLmZvckVhY2goKGZ1bmN0aW9uKEEpe1ErPTgsQS5zdWJzYW1wbGVzJiZBLnN1YnNhbXBsZXMubGVuZ3RoJiYoUSs9MixRKz02KkEuc3Vic2FtcGxlcy5sZW5ndGgpfSkpLGcudmlkZW9TZW5jTGVuZ3RoPVEsZy51c2VFTUUmJihnLmlzVmlkZW9FbmNyeXB0aW9ufHxnLmlzQXVkaW9FbmNyeXB0aW9uKSl7aWYoZy5pc1ZpZGVvRW5jcnlwdGlvbil7aWYoZy5pc1ZpZGVvKXt2YXIgQz1BLnNhaXooZyksRT1BLnNhaW8oZyksaT1BLnRydW4xKGcpLHQ9QS5zZW5jKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLEMsRSxpLHQpfWlmKGcuaXNBdWRpb0VuY3J5cHRpb24pe3ZhciBlPUEuc2JncCgpLG89QS5zYWl6KGcpLG49QS5zYWlvKGcpLHI9QS5zZW5jKGcpLGE9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixlLG8sbixyLGEpfXZhciBzPUEuc2JncCgpLGM9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixzLGMpfWlmKGcuaXNWaWRlbyl7dmFyIGg9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixoKX12YXIgeT1BLnNiZ3AoKSxEPUEuc2FpeihnKSxmPUEuc2FpbyhnKSx1PUEuc2VuYyhnKSx3PUEudHJ1bjEoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIseSxELGYsdSx3KX12YXIgZD1BLnNkdHAoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIsZCxBLnRydW4oZy5zYW1wbGVzLGQuYnl0ZUxlbmd0aCs3NikpfX0se2tleToic2R0cCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IG5uO3JldHVybiBnLnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7SS53cml0ZShuZXcgVWludDhBcnJheShnLmlzVmlkZW8/W0Eua2V5ZnJhbWU/MzI6MTZdOlsxNl0pKX0pKSxBLmJveChBLnR5cGVzLnNkdHAsdGhpcy5leHRlbnNpb24oMCwwKSxJLmJ1ZmZlcil9fSx7a2V5OiJ0cnVuMSIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IG5uLEI9bm4ud3JpdGVVaW50MzIoZy5zYW1wbGVzLmxlbmd0aCksUT1udWxsO2lmKGcuaXNWaWRlbyl7dmFyIEM9Zy52aWRlb1NlbmNMZW5ndGg7UT1ubi53cml0ZVVpbnQzMigxNipnLnNhbXBsZXMubGVuZ3RoK0MrMTQ5KSwhZy5pc1ZpZGVvRW5jcnlwdGlvbiYmZy5pc0F1ZGlvRW5jcnlwdGlvbiYmKFE9bm4ud3JpdGVVaW50MzIoMTYqZy5zYW1wbGVzLmxlbmd0aCs5MikpfWVsc2V7dmFyIEU9MTIqZy5zYW1wbGVzLmxlbmd0aCsxMjQ7Zy5pc0F1ZGlvRW5jcnlwdGlvbiYmKEU9MTIqZy5zYW1wbGVzLmxlbmd0aCs4KmcuYXVkaW9TZW5jLmxlbmd0aCsxNzcpLFE9bm4ud3JpdGVVaW50MzIoRSl9cmV0dXJuIGcuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXtJLndyaXRlKG5uLndyaXRlVWludDMyKEEuZHVyYXRpb24pKSxJLndyaXRlKG5uLndyaXRlVWludDMyKEEuc2l6ZSkpLEkud3JpdGUobm4ud3JpdGVVaW50MzIoQS5rZXlmcmFtZT8zMzU1NDQzMjo2NTUzNikpLGcuaXNWaWRlbyYmSS53cml0ZShubi53cml0ZVVpbnQzMihBLmN0cz9BLmN0czowKSl9KSksQS5ib3goQS50eXBlcy50cnVuLHRoaXMuZXh0ZW5zaW9uKDAsZy5mbGFncyksQixRLEkuYnVmZmVyKX19LHtrZXk6InNlbmMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBubixCPWcuc2FtcGxlcy5sZW5ndGgsUT1nLmlzVmlkZW8/MTY6OCxDPWcuaXNWaWRlbz8yOjAsRT1bXSxpPTA7cmV0dXJuIGcuaXNWaWRlbz8oRT1nLnZpZGVvU2VuYyxpPWcudmlkZW9TZW5jTGVuZ3RoKTpFPWcuYXVkaW9TZW5jLGk9aXx8USpCLEkud3JpdGUobm4ud3JpdGVVaW50MzIoMTYraSksQS50eXBlcy5zZW5jLHRoaXMuZXh0ZW5zaW9uKDAsQykpLEkud3JpdGUobm4ud3JpdGVVaW50MzIoQikpLEUuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPTA7ZzxBLkluaXRpYWxpemF0aW9uVmVjdG9yLmxlbmd0aDtnKyspSS53cml0ZShuZXcgVWludDhBcnJheShbQS5Jbml0aWFsaXphdGlvblZlY3RvcltnXV0pKTtBLnN1YnNhbXBsZXMmJkEuc3Vic2FtcGxlcy5sZW5ndGgmJihJLndyaXRlKG5uLndyaXRlVWludDE2KEEuc3Vic2FtcGxlcy5sZW5ndGgpKSxBLnN1YnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7SS53cml0ZShubi53cml0ZVVpbnQxNihBLkJ5dGVzT2ZDbGVhckRhdGEpKSxJLndyaXRlKG5uLndyaXRlVWludDMyKEEuQnl0ZXNPZlByb3RlY3RlZERhdGEpKX0pKSl9KSksSS5idWZmZXJ9fSx7a2V5OiJzYWlvIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST0xMipnLnNhbXBsZXMubGVuZ3RoKzE0MTshZy5pc1ZpZGVvJiZnLmlzQXVkaW9FbmNyeXB0aW9uJiYoST0xNDkpO3ZhciBCPW5ldyBVaW50OEFycmF5KFsxLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2FpbyxCKX19LHtrZXk6InNhaXoiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcuc2FtcGxlcy5sZW5ndGgsQj1uZXcgVWludDhBcnJheShbMCwwLDAsMCwxNixJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2FpeixCKX19LHtrZXk6InNiZ3AiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc9bmV3IFVpbnQ4QXJyYXkoWzExNCwxMTEsMTA4LDEwOCwwLDAsMCwxLDAsMCwxLDI1LDAsMCwwLDFdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zYmdwLHRoaXMuZXh0ZW5zaW9uKDAsMCksZyl9fSx7a2V5OiJleHRlbnNpb24iLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtBLGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pfX0se2tleToidGZoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudGZoZCxuZXcgVWludDhBcnJheShbMCwwLDAsMCxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmddKSl9fSx7a2V5OiJ0ZmR0Iix2YWx1ZTpmdW5jdGlvbihnLEkpe3ZhciBCPU1hdGguZmxvb3IoSS8ocm4rMSkpLFE9TWF0aC5mbG9vcihJJShybisxKSk7cmV0dXJuIGcudXNlRU1FJiYoZy5pc1ZpZGVvRW5jcnlwdGlvbnx8Zy5pc0F1ZGlvRW5jcnlwdGlvbik/QS5ib3goQS50eXBlcy50ZmR0LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKTpBLmJveChBLnR5cGVzLnRmZHQsbmV3IFVpbnQ4QXJyYXkoWzEsMCwwLDAsQj4+MjQsQj4+MTYmMjU1LEI+PjgmMjU1LDI1NSZCLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKX19LHtrZXk6InRydW4iLHZhbHVlOmZ1bmN0aW9uKGcsSSl7dmFyIEI9Zy5sZW5ndGgsUT0xMisxNipCO0krPTgrUTt2YXIgQz1uZXcgVWludDhBcnJheShRKTtDLnNldChbMCwwLDE1LDEsQj4+PjI0JjI1NSxCPj4+MTYmMjU1LEI+Pj44JjI1NSwyNTUmQixJPj4+MjQmMjU1LEk+Pj4xNiYyNTUsST4+PjgmMjU1LDI1NSZJXSwwKTtmb3IodmFyIEU9MDtFPEI7RSsrKXt2YXIgaT1nW0VdLHQ9aS5kdXJhdGlvbixlPWkuc2l6ZSxvPWkuZmxhZyxuPXZvaWQgMD09PW8/e306byxyPWkuY3RzLGE9dm9pZCAwPT09cj8wOnI7Qy5zZXQoW3Q+Pj4yNCYyNTUsdD4+PjE2JjI1NSx0Pj4+OCYyNTUsMjU1JnQsZT4+PjI0JjI1NSxlPj4+MTYmMjU1LGU+Pj44JjI1NSwyNTUmZSxuLmlzTGVhZGluZzw8MnwobnVsbD09PW4uZGVwZW5kc09ufHx2b2lkIDA9PT1uLmRlcGVuZHNPbj8xOm4uZGVwZW5kc09uKSxuLmlzRGVwZW5kZWRPbjw8NnxuLmhhc1JlZHVuZGFuY3k8PDR8bi5wYWRkaW5nVmFsdWU8PDF8KG51bGw9PT1uLmlzTm9uU3luY1NhbXBsZXx8dm9pZCAwPT09bi5pc05vblN5bmNTYW1wbGU/MTpuLmlzTm9uU3luY1NhbXBsZSksNjE0NDAmbi5kZWdyYWRhdGlvblByaW9yaXR5LDE1Jm4uZGVncmFkYXRpb25Qcmlvcml0eSxhPj4+MjQmMjU1LGE+Pj4xNiYyNTUsYT4+PjgmMjU1LDI1NSZhXSwxMisxNipFKX1yZXR1cm4gQS5ib3goQS50eXBlcy50cnVuLEMpfX0se2tleToibW9vdk1QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94LmFwcGx5KEEsW0EudHlwZXMubW9vdixBLm12aGQoZ1swXS5kdXJhdGlvbixnWzBdLnRpbWVzY2FsZSldLmNvbmNhdCh3byhnLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhY2tNUDQoZyl9KSkpKSl9fSx7a2V5OiJ0cmFja01QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhayxBLnRraGQoZy5pZCxnLmR1cmF0aW9uLGcud2lkdGgsZy5oZWlnaHQpLEEubWRpYU1QNChnKSl9fSx7a2V5OiJtZGlhTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGlhLEEubWRoZChnLmR1cmF0aW9uLGcudGltZXNjYWxlKSxBLmhkbHIoZy50eXBlKSxBLm1pbmZNUDQoZykpfX0se2tleToibWluZk1QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubWluZixnLnR5cGU9PT1Sbz9BLlZNSEQ6QS5TTUhELEEuRElORixBLnN0YmxNUDQoZykpfX0se2tleToic3RibE1QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5leHQsQj1bQS5zdHNkKGcpLEEuc3R0cyhJLnN0dHMpLEEuc3RzYyhJLnN0c2MpLEEuc3RzeihJLnN0c3opLEEuc3RjbyhJLnN0Y28pXTtyZXR1cm4gSS5zdHNzLmxlbmd0aCYmQi5wdXNoKEEuc3RzcyhJLnN0c3MpKSxJLmN0dHMubGVuZ3RoJiZCLnB1c2goQS5jdHRzKEkuY3R0cykpLEEuYm94LmFwcGx5KEEsW0EudHlwZXMuc3RibF0uY29uY2F0KEIpKX19LHtrZXk6InN0dHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoOCpJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS52YWx1ZSxJPUEuY291bnQ7Qi5zZXQoW0k+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSSxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmddLFEpLFErPTh9KSksQS5ib3goQS50eXBlcy5zdHRzLFdvKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6InN0c2MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoMTIqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEuZmlyc3RDaHVuayxJPUEuc2FtcGxlc1BlckNodW5rLEM9QS5zYW1wbGVEZXNjSW5kZXg7Qi5zZXQoW2c+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZyxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksQz4+MjQsQz4+MTYmMjU1LEM+PjgmMjU1LDI1NSZDXSxRKSxRKz0xMn0pKSxBLmJveChBLnR5cGVzLnN0c2MsV28obmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RzeiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg0KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSxRKSxRKz00fSkpLEEuYm94KEEudHlwZXMuc3RzeixXbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6InN0Y28iLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoNCpJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Qi5zZXQoW0E+PjI0LEE+PjE2JjI1NSxBPj44JjI1NSwyNTUmQV0sUSksUSs9NH0pKSxBLmJveChBLnR5cGVzLnN0Y28sV28obmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RzcyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg0KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSxRKSxRKz00fSkpLEEuYm94KEEudHlwZXMuc3RzcyxXbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJjdHRzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KDgqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEudmFsdWUsST1BLmNvdW50O0Iuc2V0KFtJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnXSxRKSxRKz04fSkpLEEuYm94KEEudHlwZXMuY3R0cyxXbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJzdHlwIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBBLmJveChBLnR5cGVzLnN0eXAsbmV3IFVpbnQ4QXJyYXkoWzEwOSwxMTUsMTAwLDEwNCwwLDAsMCwwLDEwOSwxMTUsMTAwLDEwNCwxMDksMTE1LDEwNSwxMjBdKSl9fSx7a2V5OiJzaWR4Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLnRpbWVzY2FsZSxCPWcuc2FtcGxlc1swXS5kdXJhdGlvbixRPUIqZy5zYW1wbGVzLmxlbmd0aCxDPWcuc2FtcGxlc1swXS5zYW1wbGVPZmZzZXQqQixFPTg7Zy5zYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe0UrPUEuc2l6ZX0pKTt2YXIgaT0wO2lmKGcuaXNWaWRlbyl7dmFyIHQsZT0wO2cudmlkZW9TZW5jJiYodD1nLnZpZGVvU2VuYyksZy5pc1ZpZGVvJiZ0LmZvckVhY2goKGZ1bmN0aW9uKEEpe2UrPTgsQS5zdWJzYW1wbGVzJiZBLnN1YnNhbXBsZXMubGVuZ3RoJiYoZSs9MixlKz02KkEuc3Vic2FtcGxlcy5sZW5ndGgpfSkpLGcudmlkZW9TZW5jTGVuZ3RoPWUsaT1FKzE0MSsxNipnLnNhbXBsZXMubGVuZ3RoK2UsZy51c2VFTUUmJmcuaXNBdWRpb0VuY3J5cHRpb24mJiFnLmlzVmlkZW9FbmNyeXB0aW9uJiYoaT1FKzE2Kmcuc2FtcGxlcy5sZW5ndGgrODQpfWVsc2UgaT1FKzExNisxMipnLnNhbXBsZXMubGVuZ3RoLGcudXNlRU1FJiZnLmlzQXVkaW9FbmNyeXB0aW9uJiYoaT1FKzE2OSsxMipnLnNhbXBsZXMubGVuZ3RoKzgqZy5hdWRpb1NlbmMubGVuZ3RoKTt2YXIgbz1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwyNTUmZy5pZCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLEM+PjI0JjI1NSxDPj4xNiYyNTUsQz4+OCYyNTUsMjU1JkMsMCwwLDAsMCwwLDAsMCwxLDAsaT4+MTYmMjU1LGk+PjgmMjU1LDI1NSZpLFE+PjI0JjI1NSxRPj4xNiYyNTUsUT4+OCYyNTUsMjU1JlEsMTQ0LDAsMCwwXSk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2lkeCxvKX19LHtrZXk6Im1kYXQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1kYXQsZyl9fV0pLEF9KCk7Zm8oYW4sInR5cGVzIixbImF2YzEiLCJhdmNDIiwiaHZjMSIsImh2Y0MiLCJkaW5mIiwiZHJlZiIsImVkdHMiLCJlbHN0IiwiZXNkcyIsImZ0eXAiLCJoZGxyIiwibWRhdCIsIm1kaGQiLCJtZGlhIiwibWZoZCIsIm1pbmYiLCJtb29mIiwibW9vdiIsIm1wNGEiLCJtdmV4IiwibXZoZCIsInBhc3AiLCJzdGJsIiwic3RjbyIsInN0c2MiLCJzdHNkIiwic3RzeiIsInN0dHMiLCJ0ZmR0IiwidGZoZCIsInRyYWYiLCJ0cmFrIiwidHJleCIsInRraGQiLCJ2bWhkIiwic21oZCIsImN0dHMiLCJzdHNzIiwic3R5cCIsInBzc2giLCJzaWR4Iiwic2JncCIsInNhaXoiLCJzYWlvIiwic2VuYyIsInRydW4iLCJlbmN2IiwiZW5jYSIsInNpbmYiLCJidHJ0IiwiZnJtYSIsInRlbmMiLCJzY2htIiwic2NoaSIsIm1laGQiLCJmaWVsIiwic2R0cCIsImJ2YzIiLCJidjJDIl0ucmVkdWNlKChmdW5jdGlvbihBLGcpe3JldHVybiBBW2ddPVtnLmNoYXJDb2RlQXQoMCksZy5jaGFyQ29kZUF0KDEpLGcuY2hhckNvZGVBdCgyKSxnLmNoYXJDb2RlQXQoMyldLEF9KSxPYmplY3QuY3JlYXRlKG51bGwpKSksZm8oYW4sIkhETFJfVFlQRVMiLHt2aWRlbzpuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLDExOCwxMDUsMTAwLDEwMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4NiwxMDUsMTAwLDEwMSwxMTEsNzIsOTcsMTEwLDEwMCwxMDgsMTAxLDExNCwwXSksYXVkaW86bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwxMTUsMTExLDExNywxMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsODMsMTExLDExNywxMTAsMTAwLDcyLDk3LDExMCwxMDAsMTA4LDEwMSwxMTQsMF0pfSksZm8oYW4sIkZUWVBBVkMxIixhbi5ib3goYW4udHlwZXMuZnR5cCxuZXcgVWludDhBcnJheShbMTA1LDExNSwxMTEsMTA5LDAsMCwwLDEsMTA1LDExNSwxMTEsMTA5LDk3LDExOCw5OSw0OV0pKSksZm8oYW4sIkZUWVBIRVYxIixhbi5ib3goYW4udHlwZXMuZnR5cCxuZXcgVWludDhBcnJheShbMTA1LDExNSwxMTEsMTA5LDAsMCwwLDEsMTA1LDExNSwxMTEsMTA5LDEwNCwxMDEsMTE4LDQ5XSkpKSxmbyhhbiwiRElORiIsYW4uYm94KGFuLnR5cGVzLmRpbmYsYW4uYm94KGFuLnR5cGVzLmRyZWYsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMSwwLDAsMCwxMiwxMTcsMTE0LDEwOCwzMiwwLDAsMCwxXSkpKSksZm8oYW4sIlZNSEQiLGFuLmJveChhbi50eXBlcy52bWhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwxLDAsMCwwLDAsMCwwLDAsMF0pKSksZm8oYW4sIlNNSEQiLGFuLmJveChhbi50eXBlcy5zbWhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDBdKSkpLGZvKGFuLCJTdGJsVGFibGUiLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDBdKSksZm8oYW4sIlNUVFMiLGFuLmJveChhbi50eXBlcy5zdHRzLGFuLlN0YmxUYWJsZSkpLGZvKGFuLCJTVFNDIixhbi5ib3goYW4udHlwZXMuc3RzYyxhbi5TdGJsVGFibGUpKSxmbyhhbiwiU1RTWiIsYW4uYm94KGFuLnR5cGVzLnN0c3osbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSkpKSxmbyhhbiwiU1RDTyIsYW4uYm94KGFuLnR5cGVzLnN0Y28sYW4uU3RibFRhYmxlKSk7dmFyIHNuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnLEkpe2hvKHRoaXMsQSksdGhpcy5uYW1lPWd8fCIiLHRoaXMuX3ByZWZpeD0iWyIuY29uY2F0KHRoaXMubmFtZSwiXSIpLEEuZGlzYWJsZWQ9SX1yZXR1cm4gRG8oQSxbe2tleToiZGVidWciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLmRlYnVnLmFwcGx5KGcsW3RoaXMuX3ByZWZpeF0uY29uY2F0KEIpKX19fSx7a2V5OiJsb2ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLmxvZy5hcHBseShnLFt0aGlzLl9wcmVmaXhdLmNvbmNhdChCKSl9fX0se2tleToid2FybiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztpZighQS5kaXNhYmxlZCl7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoSSksUT0wO1E8STtRKyspQltRXT1hcmd1bWVudHNbUV07KGc9Y29uc29sZSkud2Fybi5hcHBseShnLFt0aGlzLl9wcmVmaXhdLmNvbmNhdChCKSl9fX0se2tleToiZXJyb3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLmVycm9yLmFwcGx5KGcsW3RoaXMuX3ByZWZpeF0uY29uY2F0KEIpKX19fSx7a2V5OiJ0YWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztBLmRpc2FibGVkfHwoY29uc29sZS5ncm91cCh0aGlzLl9wcmVmaXgpLChnPWNvbnNvbGUpLnRhYmxlLmFwcGx5KGcsYXJndW1lbnRzKSxjb25zb2xlLmdyb3VwRW5kKCkpfX1dLFt7a2V5OiJlbmFibGUiLHZhbHVlOmZ1bmN0aW9uKCl7QS5kaXNhYmxlZD0hMX19LHtrZXk6ImRpc2FibGUiLHZhbHVlOmZ1bmN0aW9uKCl7QS5kaXNhYmxlZD0hMH19XSksQX0oKTtmbyhzbiwiZGlzYWJsZWQiLCEwKTt2YXIgY249ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKGcsSSxCKXtobyh0aGlzLEEpLHRoaXMudmlkZW9UcmFjaz1nLHRoaXMuYXVkaW9UcmFjaz1JO3ZhciBRPS9DaHJvbWVcLyhbXi5dKykvLmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudCk7dGhpcy5mb3JjZUZpcnN0SURSPVEmJk51bWJlcihRWzFdKTw1MCx0aGlzLmxvZz1uZXcgc24oIkZNUDRSZW11eGVyIiwhQnx8IUIub3BlbkxvZ3x8IUIub3BlbkxvZyl9cmV0dXJuIERvKEEsW3trZXk6InJlbXV4Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBLGcsSSxCLFEsQz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLEU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGk9dGhpcy52aWRlb1RyYWNrLHQ9dGhpcy5hdWRpb1RyYWNrLGU9aS5leGlzdCgpLG89dC5leGlzdCgpLG49W107cmV0dXJuIEMmJihFJiZFLmluaXRNZXJnZT8oZSYmbi5wdXNoKHRoaXMudmlkZW9UcmFjayksbyYmbi5wdXNoKHRoaXMuYXVkaW9UcmFjayksST1hbi5pbml0U2VnbWVudChuKSk6KGUmJihBPWFuLmluaXRTZWdtZW50KFt0aGlzLnZpZGVvVHJhY2tdKSksbyYmKGc9YW4uaW5pdFNlZ21lbnQoW3RoaXMuYXVkaW9UcmFja10pKSkpLGUmJmkuaGFzU2FtcGxlKCkmJihCPXRoaXMuX3JlbXV4VmlkZW8oKSksbyYmdC5oYXNTYW1wbGUoKSYmKFE9dGhpcy5fcmVtdXhBdWRpbygpKSxpLnNhbXBsZXM9W10sdC5zYW1wbGVzPVtdLHtpbml0U2VnbWVudDpJLHZpZGVvSW5pdFNlZ21lbnQ6QSxhdWRpb0luaXRTZWdtZW50OmcsdmlkZW9TZWdtZW50OkIsYXVkaW9TZWdtZW50OlF9fX0se2tleToiX3JlbXV4VmlkZW8iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy52aWRlb1RyYWNrO3RoaXMuZm9yY2VGaXJzdElEUiYmKEEuc2FtcGxlc1swXS5mbGFnPXtkZXBlbmRzT246Mixpc05vblN5bmNTYW1wbGU6MH0pO3ZhciBnPUEuc2FtcGxlcyxJPTA7Zy5mb3JFYWNoKChmdW5jdGlvbihBKXtJKz1BLnVuaXRzLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLmJ5dGVMZW5ndGh9KSwwKSxJKz00KkEudW5pdHMubGVuZ3RofSkpO2Zvcih2YXIgQixRPW5ldyBVaW50OEFycmF5KEkpLEM9bmV3IERhdGFWaWV3KFEuYnVmZmVyKSxFPWZ1bmN0aW9uKEEsSSl7ST1nW2ldO3ZhciBFPTA7SS51bml0cy5mb3JFYWNoKChmdW5jdGlvbihnKXtDLnNldFVpbnQzMihBLGcuYnl0ZUxlbmd0aCksQSs9NCxRLnNldChnLEEpLEErPWcuYnl0ZUxlbmd0aCxFKz00K2cuYnl0ZUxlbmd0aH0pKSxJLnNpemU9RSxlPUEsQj1JfSxpPTAsdD1nLmxlbmd0aCxlPTA7aTx0O2krKylFKGUsQik7dmFyIG89YW4ubWRhdChRKTtyZXR1cm4gV28oYW4ubW9vZihbQV0pLG8pfX0se2tleToiX3JlbXV4QXVkaW8iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5hdWRpb1RyYWNrLGc9bmV3IFVpbnQ4QXJyYXkoQS5zYW1wbGVzLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLnNpemV9KSwwKSk7QS5zYW1wbGVzLnJlZHVjZSgoZnVuY3Rpb24oQSxJKXtyZXR1cm4gZy5zZXQoSS5kYXRhLEEpLEErSS5zaXplfSksMCk7dmFyIEk9YW4ubWRhdChnKTtyZXR1cm4gV28oYW4ubW9vZihbQV0pLEkpfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52aWRlb1RyYWNrLnJlc2V0KCksdGhpcy5hdWRpb1RyYWNrLnJlc2V0KCl9fV0pLEF9KCk7ZnVuY3Rpb24gaG4oQSl7cmV0dXJuKGhuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKEEpe3JldHVybiB0eXBlb2YgQX06ZnVuY3Rpb24oQSl7cmV0dXJuIEEmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJkEuY29uc3RydWN0b3I9PT1TeW1ib2wmJkEhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBBfSkoQSl9ZnVuY3Rpb24geW4oQSxnKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBEbihBLGcpe2Zvcih2YXIgST0wO0k8Zy5sZW5ndGg7SSsrKXt2YXIgQj1nW0ldO0IuZW51bWVyYWJsZT1CLmVudW1lcmFibGV8fCExLEIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBCJiYoQi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsKFE9Qi5rZXksQz12b2lkIDAsInN5bWJvbCI9PXR5cGVvZihDPWZ1bmN0aW9uKEEsZyl7aWYoIm9iamVjdCIhPXR5cGVvZiBBfHxudWxsPT09QSlyZXR1cm4gQTt2YXIgST1BW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09SSl7dmFyIEI9SS5jYWxsKEEsZ3x8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIEIpcmV0dXJuIEI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1nP1N0cmluZzpOdW1iZXIpKEEpfShRLCJzdHJpbmciKSk/QzpTdHJpbmcoQykpLEIpfXZhciBRLEN9ZnVuY3Rpb24gZm4oQSxnLEkpe3JldHVybiBnJiZEbihBLnByb3RvdHlwZSxnKSxJJiZEbihBLEkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLEF9ZnVuY3Rpb24gdW4oQSxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6QSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmZG4oQSxnKX1mdW5jdGlvbiB3bihBKXtyZXR1cm4od249T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oQSl7cmV0dXJuIEEuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoQSl9KShBKX1mdW5jdGlvbiBkbihBLGcpe3JldHVybihkbj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihBLGcpe3JldHVybiBBLl9fcHJvdG9fXz1nLEF9KShBLGcpfWZ1bmN0aW9uIEZuKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKEEpe3JldHVybiExfX1mdW5jdGlvbiBsbihBLGcsSSl7cmV0dXJuKGxuPUZuKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1bbnVsbF07Qi5wdXNoLmFwcGx5KEIsZyk7dmFyIFE9bmV3KEZ1bmN0aW9uLmJpbmQuYXBwbHkoQSxCKSk7cmV0dXJuIEkmJmRuKFEsSS5wcm90b3R5cGUpLFF9KS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gR24oQSxnKXtpZihnJiYoIm9iamVjdCI9PXR5cGVvZiBnfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIEF9KEEpfWZ1bmN0aW9uIFJuKEEpe3ZhciBnPUZuKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEksQj13bihBKTtpZihnKXt2YXIgUT13bih0aGlzKS5jb25zdHJ1Y3RvcjtJPVJlZmxlY3QuY29uc3RydWN0KEIsYXJndW1lbnRzLFEpfWVsc2UgST1CLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gR24odGhpcyxJKX19ZnVuY3Rpb24gVW4oKXtyZXR1cm4gVW49InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPWZ1bmN0aW9uKEEsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEEsZykmJm51bGwhPT0oQT13bihBKSk7KTtyZXR1cm4gQX0oQSxnKTtpZihCKXt2YXIgUT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEIsZyk7cmV0dXJuIFEuZ2V0P1EuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP0E6SSk6US52YWx1ZX19LFVuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIga249cEUsU249IkFycmF5QnVmZmVyIixObj1YQ1tTbl07T0koe2dsb2JhbDohMCxmb3JjZWQ6cltTbl0hPT1Obn0se0FycmF5QnVmZmVyOk5ufSksa24oU24pLE1pKCJJbnQ4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSksTWkoIlVpbnQ4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSwhMCksTWkoIkludDE2IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSksTWkoIlVpbnQxNiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJJbnQzMiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJVaW50MzIiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxNaSgiRmxvYXQzMiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJGbG9hdDY0IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSk7dmFyIE1uPWwsWW49ZnVuY3Rpb24oKXt2YXIgQT1Nbih0aGlzKSxnPSIiO3JldHVybiBBLmdsb2JhbCYmKGcrPSJnIiksQS5pZ25vcmVDYXNlJiYoZys9ImkiKSxBLm11bHRpbGluZSYmKGcrPSJtIiksQS5kb3RBbGwmJihnKz0icyIpLEEudW5pY29kZSYmKGcrPSJ1IiksQS5zdGlja3kmJihnKz0ieSIpLGd9LEhuPWFJLHBuPWwsSm49ZyxMbj1Zbix2bj0idG9TdHJpbmciLEtuPVJlZ0V4cC5wcm90b3R5cGUsbW49S25bdm5dLHhuPUpuKChmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9bW4uY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9KX0pKSxxbj1tbi5uYW1lIT12bjsoeG58fHFuKSYmSG4oUmVnRXhwLnByb3RvdHlwZSx2biwoZnVuY3Rpb24oKXt2YXIgQT1wbih0aGlzKSxnPVN0cmluZyhBLnNvdXJjZSksST1BLmZsYWdzO3JldHVybiIvIitnKyIvIitTdHJpbmcodm9pZCAwPT09SSYmQSBpbnN0YW5jZW9mIFJlZ0V4cCYmISgiZmxhZ3MiaW4gS24pP0xuLmNhbGwoQSk6SSl9KSx7dW5zYWZlOiEwfSk7dmFyIGJuPU9JLFRuPW8sT249W10uam9pbixXbj1FIT1PYmplY3QsWm49bHQoImpvaW4iLCIsIik7Ym4oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpXbnx8IVpufSx7am9pbjpmdW5jdGlvbihBKXtyZXR1cm4gT24uY2FsbChUbih0aGlzKSx2b2lkIDA9PT1BPyIsIjpBKX19KTt2YXIgam49T0ksUG49ZyxYbj15RSxWbj1oLHpuPWosX249U0EsJG49JGUsQXI9d0UsZ3I9Qm8sSXI9b0EsQnI9RkEoImlzQ29uY2F0U3ByZWFkYWJsZSIpLFFyPTkwMDcxOTkyNTQ3NDA5OTEsQ3I9Ik1heGltdW0gYWxsb3dlZCBpbmRleCBleGNlZWRlZCIsRXI9SXI+PTUxfHwhUG4oKGZ1bmN0aW9uKCl7dmFyIEE9W107cmV0dXJuIEFbQnJdPSExLEEuY29uY2F0KClbMF0hPT1BfSkpLGlyPWdyKCJjb25jYXQiKSx0cj1mdW5jdGlvbihBKXtpZighVm4oQSkpcmV0dXJuITE7dmFyIGc9QVtCcl07cmV0dXJuIHZvaWQgMCE9PWc/ISFnOlhuKEEpfTtqbih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFFcnx8IWlyfSx7Y29uY2F0OmZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEMsRT16bih0aGlzKSxpPUFyKEUsMCksdD0wO2ZvcihnPS0xLEI9YXJndW1lbnRzLmxlbmd0aDtnPEI7ZysrKWlmKHRyKEM9LTE9PT1nP0U6YXJndW1lbnRzW2ddKSl7aWYodCsoUT1fbihDLmxlbmd0aCkpPlFyKXRocm93IFR5cGVFcnJvcihDcik7Zm9yKEk9MDtJPFE7SSsrLHQrKylJIGluIEMmJiRuKGksdCxDW0ldKX1lbHNle2lmKHQ+PVFyKXRocm93IFR5cGVFcnJvcihDcik7JG4oaSx0KyssQyl9cmV0dXJuIGkubGVuZ3RoPXQsaX19KTt2YXIgZXI9T0ksb3I9SEEsbnI9UkEscnI9U0EsYXI9aixzcj13RSxjcj0kZSxocj1Cbygic3BsaWNlIikseXI9TWF0aC5tYXgsRHI9TWF0aC5taW47ZXIoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohaHJ9LHtzcGxpY2U6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQyxFLGksdD1hcih0aGlzKSxlPXJyKHQubGVuZ3RoKSxvPW9yKEEsZSksbj1hcmd1bWVudHMubGVuZ3RoO2lmKDA9PT1uP0k9Qj0wOjE9PT1uPyhJPTAsQj1lLW8pOihJPW4tMixCPURyKHlyKG5yKGcpLDApLGUtbykpLGUrSS1CPjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgVHlwZUVycm9yKCJNYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIGV4Y2VlZGVkIik7Zm9yKFE9c3IodCxCKSxDPTA7QzxCO0MrKykoRT1vK0MpaW4gdCYmY3IoUSxDLHRbRV0pO2lmKFEubGVuZ3RoPUIsSTxCKXtmb3IoQz1vO0M8ZS1CO0MrKylpPUMrSSwoRT1DK0IpaW4gdD90W2ldPXRbRV06ZGVsZXRlIHRbaV07Zm9yKEM9ZTtDPmUtQitJO0MtLSlkZWxldGUgdFtDLTFdfWVsc2UgaWYoST5CKWZvcihDPWUtQjtDPm87Qy0tKWk9QytJLTEsKEU9QytCLTEpaW4gdD90W2ldPXRbRV06ZGVsZXRlIHRbaV07Zm9yKEM9MDtDPEk7QysrKXRbQytvXT1hcmd1bWVudHNbQysyXTtyZXR1cm4gdC5sZW5ndGg9ZS1CK0ksUX19KTtmb3IodmFyIGZyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe3luKHRoaXMsQSl9cmV0dXJuIGZuKEEsW3trZXk6Im1peEluIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLEEpfX0se2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9bmV3IHRoaXMuY29uc3RydWN0b3I7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx0aGlzKSxBfX1dLFt7a2V5OiJjcmVhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBBPWFyZ3VtZW50cy5sZW5ndGgsZz1uZXcgQXJyYXkoQSksST0wO0k8QTtJKyspZ1tJXT1hcmd1bWVudHNbSV07cmV0dXJuIGxuKHRoaXMsZyl9fV0pLEF9KCksdXI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7dmFyIEEsQj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10sUT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NCpCLmxlbmd0aDt5bih0aGlzLEkpLEE9Zy5jYWxsKHRoaXMpO3ZhciBDPUI7aWYoQyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiYoQz1uZXcgVWludDhBcnJheShDKSksKEMgaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8QyBpbnN0YW5jZW9mIEludDE2QXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8QyBpbnN0YW5jZW9mIEludDMyQXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8QyBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8QyBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkmJihDPW5ldyBVaW50OEFycmF5KEMuYnVmZmVyLEMuYnl0ZU9mZnNldCxDLmJ5dGVMZW5ndGgpKSxDIGluc3RhbmNlb2YgVWludDhBcnJheSl7Zm9yKHZhciBFPUMuYnl0ZUxlbmd0aCxpPVtdLHQ9MDt0PEU7dCs9MSlpW3Q+Pj4yXXw9Q1t0XTw8MjQtdCU0Kjg7QS53b3Jkcz1pLEEuc2lnQnl0ZXM9RX1lbHNlIEEud29yZHM9QixBLnNpZ0J5dGVzPVE7cmV0dXJuIEF9cmV0dXJuIGZuKEksW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybihhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06d3IpLnN0cmluZ2lmeSh0aGlzKX19LHtrZXk6ImNvbmNhdCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcy53b3JkcyxJPUEud29yZHMsQj10aGlzLnNpZ0J5dGVzLFE9QS5zaWdCeXRlcztpZih0aGlzLmNsYW1wKCksQiU0KWZvcih2YXIgQz0wO0M8UTtDKz0xKXt2YXIgRT1JW0M+Pj4yXT4+PjI0LUMlNCo4JjI1NTtnW0IrQz4+PjJdfD1FPDwyNC0oQitDKSU0Kjh9ZWxzZSBmb3IodmFyIGk9MDtpPFE7aSs9NClnW0IraT4+PjJdPUlbaT4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1RLHRoaXN9fSx7a2V5OiJjbGFtcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLndvcmRzLGc9dGhpcy5zaWdCeXRlcztBW2c+Pj4yXSY9NDI5NDk2NzI5NTw8MzItZyU0KjgsQS5sZW5ndGg9TWF0aC5jZWlsKGcvNCl9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1Vbih3bihJLnByb3RvdHlwZSksImNsb25lIix0aGlzKS5jYWxsKHRoaXMpO3JldHVybiBBLndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCksQX19XSxbe2tleToicmFuZG9tIix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIGcsQj1bXSxRPWZ1bmN0aW9uKEEpe3ZhciBnPUEsST05ODc2NTQzMjEsQj00Mjk0OTY3Mjk1O3JldHVybiBmdW5jdGlvbigpe3ZhciBBPSgoST0zNjk2OSooNjU1MzUmSSkrKEk+PjE2KSZCKTw8MTYpKyhnPTE4ZTMqKDY1NTM1JmcpKyhnPj4xNikmQikmQjtyZXR1cm4gQS89NDI5NDk2NzI5NiwoQSs9LjUpKihNYXRoLnJhbmRvbSgpPi41PzE6LTEpfX0sQz0wO0M8QTtDKz00KXt2YXIgRT1RKDQyOTQ5NjcyOTYqKGd8fE1hdGgucmFuZG9tKCkpKTtnPTk4NzY1NDA3MSpFKCksQi5wdXNoKDQyOTQ5NjcyOTYqRSgpfDApfXJldHVybiBuZXcgSShCLEEpfX1dKSxJfShmciksd3I9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS53b3JkcyxJPUEuc2lnQnl0ZXMsQj1bXSxRPTA7UTxJO1ErPTEpe3ZhciBDPWdbUT4+PjJdPj4+MjQtUSU0KjgmMjU1O0IucHVzaCgoQz4+PjQpLnRvU3RyaW5nKDE2KSksQi5wdXNoKCgxNSZDKS50b1N0cmluZygxNikpfXJldHVybiBCLmpvaW4oIiIpfSxwYXJzZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5sZW5ndGgsST1bXSxCPTA7QjxnO0IrPTIpSVtCPj4+M118PXBhcnNlSW50KEEuc3Vic3RyKEIsMiksMTYpPDwyNC1CJTgqNDtyZXR1cm4gbmV3IHVyKEksZy8yKX19LGRyPWZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1BLmxlbmd0aCxJPVtdLEI9MDtCPGc7Qis9MSlJW0I+Pj4yXXw9KDI1NSZBLmNoYXJDb2RlQXQoQikpPDwyNC1CJTQqODtyZXR1cm4gbmV3IHVyKEksZyl9LEZyPWZ1bmN0aW9uKEEpe3JldHVybiBkcih1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoQSkpKX0sbHI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7dmFyIEE7cmV0dXJuIHluKHRoaXMsSSksKEE9Zy5jYWxsKHRoaXMpKS5fbWluQnVmZmVyU2l6ZT0wLEF9cmV0dXJuIGZuKEksW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2RhdGE9bmV3IHVyLHRoaXMuX25EYXRhQnl0ZXM9MH19LHtrZXk6Il9hcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPUE7InN0cmluZyI9PXR5cGVvZiBnJiYoZz1GcihnKSksdGhpcy5fZGF0YS5jb25jYXQoZyksdGhpcy5fbkRhdGFCeXRlcys9Zy5zaWdCeXRlc319LHtrZXk6Il9wcm9jZXNzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZyxJPXRoaXMuX2RhdGEsQj10aGlzLmJsb2NrU2l6ZSxRPUkud29yZHMsQz1JLnNpZ0J5dGVzLEU9Qy8oNCpCKSxpPShFPUE/TWF0aC5jZWlsKEUpOk1hdGgubWF4KCgwfEUpLXRoaXMuX21pbkJ1ZmZlclNpemUsMCkpKkIsdD1NYXRoLm1pbig0KmksQyk7aWYoaSl7Zm9yKHZhciBlPTA7ZTxpO2UrPUIpdGhpcy5fZG9Qcm9jZXNzQmxvY2soUSxlKTtnPVEuc3BsaWNlKDAsaSksSS5zaWdCeXRlcy09dH1yZXR1cm4gbmV3IHVyKGcsdCl9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1Vbih3bihJLnByb3RvdHlwZSksImNsb25lIix0aGlzKS5jYWxsKHRoaXMpO3JldHVybiBBLl9kYXRhPXRoaXMuX2RhdGEuY2xvbmUoKSxBfX1dKSxJfShmciksR3I9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKEEpe3ZhciBCO3JldHVybiB5bih0aGlzLEkpLChCPWcuY2FsbCh0aGlzKSkuYmxvY2tTaXplPTE2LEIuY2ZnPU9iamVjdC5hc3NpZ24obmV3IGZyLEEpLEIucmVzZXQoKSxCfXJldHVybiBmbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXtVbih3bihJLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2FwcGVuZChBKSx0aGlzLl9wcm9jZXNzKCksdGhpc319LHtrZXk6ImZpbmFsaXplIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gQSYmdGhpcy5fYXBwZW5kKEEpLHRoaXMuX2RvRmluYWxpemUoKX19XSxbe2tleToiX2NyZWF0ZUhlbHBlciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSl7cmV0dXJuIG5ldyBBKEkpLmZpbmFsaXplKGcpfX19LHtrZXk6Il9jcmVhdGVIbWFjSGVscGVyIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJKXtyZXR1cm4gbmV3IFJyKEEsSSkuZmluYWxpemUoZyl9fX1dKSxJfShsciksUnI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKEEsQil7dmFyIFE7eW4odGhpcyxJKSxRPWcuY2FsbCh0aGlzKTt2YXIgQz1uZXcgQTtRLl9oYXNoZXI9Qzt2YXIgRT1COyJzdHJpbmciPT10eXBlb2YgRSYmKEU9RnIoRSkpO3ZhciBpPUMuYmxvY2tTaXplLHQ9NCppO0Uuc2lnQnl0ZXM+dCYmKEU9Qy5maW5hbGl6ZShCKSksRS5jbGFtcCgpO3ZhciBlPUUuY2xvbmUoKTtRLl9vS2V5PWU7dmFyIG89RS5jbG9uZSgpO1EuX2lLZXk9bztmb3IodmFyIG49ZS53b3JkcyxyPW8ud29yZHMsYT0wO2E8aTthKz0xKW5bYV1ePTE1NDk1NTY4MjgsclthXV49OTA5NTIyNDg2O3JldHVybiBlLnNpZ0J5dGVzPXQsby5zaWdCeXRlcz10LFEucmVzZXQoKSxRfXJldHVybiBmbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9oYXNoZXI7QS5yZXNldCgpLEEudXBkYXRlKHRoaXMuX2lLZXkpfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5faGFzaGVyLnVwZGF0ZShBKSx0aGlzfX0se2tleToiZmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMuX2hhc2hlcixJPWcuZmluYWxpemUoQSk7cmV0dXJuIGcucmVzZXQoKSxnLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQoSSkpfX1dKSxJfShmciksVXI9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXt2YXIgZz1BLndvcmRzLEk9QS5zaWdCeXRlcyxCPXRoaXMuX21hcDtBLmNsYW1wKCk7Zm9yKHZhciBRPVtdLEM9MDtDPEk7Qys9Mylmb3IodmFyIEU9KGdbQz4+PjJdPj4+MjQtQyU0KjgmMjU1KTw8MTZ8KGdbQysxPj4+Ml0+Pj4yNC0oQysxKSU0KjgmMjU1KTw8OHxnW0MrMj4+PjJdPj4+MjQtKEMrMiklNCo4JjI1NSxpPTA7aTw0JiZDKy43NSppPEk7aSs9MSlRLnB1c2goQi5jaGFyQXQoRT4+PjYqKDMtaSkmNjMpKTt2YXIgdD1CLmNoYXJBdCg2NCk7aWYodClmb3IoO1EubGVuZ3RoJTQ7KVEucHVzaCh0KTtyZXR1cm4gUS5qb2luKCIiKX0scGFyc2U6ZnVuY3Rpb24oQSl7dmFyIGc9QS5sZW5ndGgsST10aGlzLl9tYXAsQj10aGlzLl9yZXZlcnNlTWFwO2lmKCFCKXt0aGlzLl9yZXZlcnNlTWFwPVtdLEI9dGhpcy5fcmV2ZXJzZU1hcDtmb3IodmFyIFE9MDtRPEkubGVuZ3RoO1ErPTEpQltJLmNoYXJDb2RlQXQoUSldPVF9dmFyIEM9SS5jaGFyQXQoNjQpO2lmKEMpe3ZhciBFPUEuaW5kZXhPZihDKTstMSE9PUUmJihnPUUpfXJldHVybiBmdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCPVtdLFE9MCxDPTA7QzxnO0MrPTEpaWYoQyU0KXt2YXIgRT1JW0EuY2hhckNvZGVBdChDLTEpXTw8QyU0KjJ8SVtBLmNoYXJDb2RlQXQoQyldPj4+Ni1DJTQqMjtCW1E+Pj4yXXw9RTw8MjQtUSU0KjgsUSs9MX1yZXR1cm4gdXIuY3JlYXRlKEIsUSl9KEEsZyxCKX0sX21hcDoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0ifSxrcj1bXSxTcj0wO1NyPDY0O1NyKz0xKWtyW1NyXT00Mjk0OTY3Mjk2Kk1hdGguYWJzKE1hdGguc2luKFNyKzEpKXwwO3ZhciBOcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhnJkl8fmcmQikrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxNcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhnJkJ8SSZ+QikrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxZcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhnXkleQikrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxIcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhJXihnfH5CKSkrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxwcj1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4geW4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZm4oSSxbe2tleToiX2RvUmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgdXIoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OF0pfX0se2tleToiX2RvUHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1BLEI9MDtCPDE2O0IrPTEpe3ZhciBRPWcrQixDPUFbUV07SVtRXT0xNjcxMTkzNSYoQzw8OHxDPj4+MjQpfDQyNzgyNTUzNjAmKEM8PDI0fEM+Pj44KX12YXIgRT10aGlzLl9oYXNoLndvcmRzLGk9SVtnKzBdLHQ9SVtnKzFdLGU9SVtnKzJdLG89SVtnKzNdLG49SVtnKzRdLHI9SVtnKzVdLGE9SVtnKzZdLHM9SVtnKzddLGM9SVtnKzhdLGg9SVtnKzldLHk9SVtnKzEwXSxEPUlbZysxMV0sZj1JW2crMTJdLHU9SVtnKzEzXSx3PUlbZysxNF0sZD1JW2crMTVdLEY9RVswXSxsPUVbMV0sRz1FWzJdLFI9RVszXTtGPU5yKEYsbCxHLFIsaSw3LGtyWzBdKSxSPU5yKFIsRixsLEcsdCwxMixrclsxXSksRz1OcihHLFIsRixsLGUsMTcsa3JbMl0pLGw9TnIobCxHLFIsRixvLDIyLGtyWzNdKSxGPU5yKEYsbCxHLFIsbiw3LGtyWzRdKSxSPU5yKFIsRixsLEcsciwxMixrcls1XSksRz1OcihHLFIsRixsLGEsMTcsa3JbNl0pLGw9TnIobCxHLFIsRixzLDIyLGtyWzddKSxGPU5yKEYsbCxHLFIsYyw3LGtyWzhdKSxSPU5yKFIsRixsLEcsaCwxMixrcls5XSksRz1OcihHLFIsRixsLHksMTcsa3JbMTBdKSxsPU5yKGwsRyxSLEYsRCwyMixrclsxMV0pLEY9TnIoRixsLEcsUixmLDcsa3JbMTJdKSxSPU5yKFIsRixsLEcsdSwxMixrclsxM10pLEc9TnIoRyxSLEYsbCx3LDE3LGtyWzE0XSksbD1OcihsLEcsUixGLGQsMjIsa3JbMTVdKSxGPU1yKEYsbCxHLFIsdCw1LGtyWzE2XSksUj1NcihSLEYsbCxHLGEsOSxrclsxN10pLEc9TXIoRyxSLEYsbCxELDE0LGtyWzE4XSksbD1NcihsLEcsUixGLGksMjAsa3JbMTldKSxGPU1yKEYsbCxHLFIsciw1LGtyWzIwXSksUj1NcihSLEYsbCxHLHksOSxrclsyMV0pLEc9TXIoRyxSLEYsbCxkLDE0LGtyWzIyXSksbD1NcihsLEcsUixGLG4sMjAsa3JbMjNdKSxGPU1yKEYsbCxHLFIsaCw1LGtyWzI0XSksUj1NcihSLEYsbCxHLHcsOSxrclsyNV0pLEc9TXIoRyxSLEYsbCxvLDE0LGtyWzI2XSksbD1NcihsLEcsUixGLGMsMjAsa3JbMjddKSxGPU1yKEYsbCxHLFIsdSw1LGtyWzI4XSksUj1NcihSLEYsbCxHLGUsOSxrclsyOV0pLEc9TXIoRyxSLEYsbCxzLDE0LGtyWzMwXSksbD1NcihsLEcsUixGLGYsMjAsa3JbMzFdKSxGPVlyKEYsbCxHLFIsciw0LGtyWzMyXSksUj1ZcihSLEYsbCxHLGMsMTEsa3JbMzNdKSxHPVlyKEcsUixGLGwsRCwxNixrclszNF0pLGw9WXIobCxHLFIsRix3LDIzLGtyWzM1XSksRj1ZcihGLGwsRyxSLHQsNCxrclszNl0pLFI9WXIoUixGLGwsRyxuLDExLGtyWzM3XSksRz1ZcihHLFIsRixsLHMsMTYsa3JbMzhdKSxsPVlyKGwsRyxSLEYseSwyMyxrclszOV0pLEY9WXIoRixsLEcsUix1LDQsa3JbNDBdKSxSPVlyKFIsRixsLEcsaSwxMSxrcls0MV0pLEc9WXIoRyxSLEYsbCxvLDE2LGtyWzQyXSksbD1ZcihsLEcsUixGLGEsMjMsa3JbNDNdKSxGPVlyKEYsbCxHLFIsaCw0LGtyWzQ0XSksUj1ZcihSLEYsbCxHLGYsMTEsa3JbNDVdKSxHPVlyKEcsUixGLGwsZCwxNixrcls0Nl0pLGw9WXIobCxHLFIsRixlLDIzLGtyWzQ3XSksRj1IcihGLGwsRyxSLGksNixrcls0OF0pLFI9SHIoUixGLGwsRyxzLDEwLGtyWzQ5XSksRz1IcihHLFIsRixsLHcsMTUsa3JbNTBdKSxsPUhyKGwsRyxSLEYsciwyMSxrcls1MV0pLEY9SHIoRixsLEcsUixmLDYsa3JbNTJdKSxSPUhyKFIsRixsLEcsbywxMCxrcls1M10pLEc9SHIoRyxSLEYsbCx5LDE1LGtyWzU0XSksbD1IcihsLEcsUixGLHQsMjEsa3JbNTVdKSxGPUhyKEYsbCxHLFIsYyw2LGtyWzU2XSksUj1IcihSLEYsbCxHLGQsMTAsa3JbNTddKSxHPUhyKEcsUixGLGwsYSwxNSxrcls1OF0pLGw9SHIobCxHLFIsRix1LDIxLGtyWzU5XSksRj1IcihGLGwsRyxSLG4sNixrcls2MF0pLFI9SHIoUixGLGwsRyxELDEwLGtyWzYxXSksRz1IcihHLFIsRixsLGUsMTUsa3JbNjJdKSxsPUhyKGwsRyxSLEYsaCwyMSxrcls2M10pLEVbMF09RVswXStGfDAsRVsxXT1FWzFdK2x8MCxFWzJdPUVbMl0rR3wwLEVbM109RVszXStSfDB9fSx7a2V5OiJfZG9GaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9kYXRhLGc9QS53b3JkcyxJPTgqdGhpcy5fbkRhdGFCeXRlcyxCPTgqQS5zaWdCeXRlcztnW0I+Pj41XXw9MTI4PDwyNC1CJTMyO3ZhciBRPU1hdGguZmxvb3IoSS80Mjk0OTY3Mjk2KSxDPUk7Z1sxNSsoQis2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoUTw8OHxRPj4+MjQpfDQyNzgyNTUzNjAmKFE8PDI0fFE+Pj44KSxnWzE0KyhCKzY0Pj4+OTw8NCldPTE2NzExOTM1JihDPDw4fEM+Pj4yNCl8NDI3ODI1NTM2MCYoQzw8MjR8Qz4+PjgpLEEuc2lnQnl0ZXM9NCooZy5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgRT10aGlzLl9oYXNoLGk9RS53b3Jkcyx0PTA7dDw0O3QrPTEpe3ZhciBlPWlbdF07aVt0XT0xNjcxMTkzNSYoZTw8OHxlPj4+MjQpfDQyNzgyNTUzNjAmKGU8PDI0fGU+Pj44KX1yZXR1cm4gRX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPVVuKHduKEkucHJvdG90eXBlKSwiY2xvbmUiLHRoaXMpLmNhbGwodGhpcyk7cmV0dXJuIEEuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLEF9fV0pLEl9KEdyKTtHci5fY3JlYXRlSGVscGVyKHByKSxHci5fY3JlYXRlSG1hY0hlbHBlcihwcik7dmFyIEpyPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSShBKXt2YXIgQjtyZXR1cm4geW4odGhpcyxJKSwoQj1nLmNhbGwodGhpcykpLmNmZz1PYmplY3QuYXNzaWduKG5ldyBmcix7a2V5U2l6ZTo0LGhhc2hlcjpwcixpdGVyYXRpb25zOjF9LEEpLEJ9cmV0dXJuIGZuKEksW3trZXk6ImNvbXB1dGUiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJLEI9dGhpcy5jZmcsUT1CLmhhc2hlci5jcmVhdGUoKSxDPXVyLmNyZWF0ZSgpLEU9Qy53b3JkcyxpPUIua2V5U2l6ZSx0PUIuaXRlcmF0aW9ucztFLmxlbmd0aDxpOyl7SSYmUS51cGRhdGUoSSksST1RLnVwZGF0ZShBKS5maW5hbGl6ZShnKSxRLnJlc2V0KCk7Zm9yKHZhciBlPTE7ZTx0O2UrPTEpST1RLmZpbmFsaXplKEkpLFEucmVzZXQoKTtDLmNvbmNhdChJKX1yZXR1cm4gQy5zaWdCeXRlcz00KmksQ319XSksSX0oZnIpLExyPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSShBLEIsUSl7dmFyIEM7cmV0dXJuIHluKHRoaXMsSSksKEM9Zy5jYWxsKHRoaXMpKS5jZmc9T2JqZWN0LmFzc2lnbihuZXcgZnIsUSksQy5feGZvcm1Nb2RlPUEsQy5fa2V5PUIsQy5yZXNldCgpLEN9cmV0dXJuIGZuKEksW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe1VuKHduKEkucHJvdG90eXBlKSwicmVzZXQiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfX0se2tleToicHJvY2VzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2FwcGVuZChBKSx0aGlzLl9wcm9jZXNzKCl9fSx7a2V5OiJmaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIEEmJnRoaXMuX2FwcGVuZChBKSx0aGlzLl9kb0ZpbmFsaXplKCl9fV0sW3trZXk6ImNyZWF0ZUVuY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fRU5DX1hGT1JNX01PREUsQSxnKX19LHtrZXk6ImNyZWF0ZURlY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fREVDX1hGT1JNX01PREUsQSxnKX19LHtrZXk6Il9jcmVhdGVIZWxwZXIiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPWZ1bmN0aW9uKEEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQT9acjpPcn07cmV0dXJue2VuY3J5cHQ6ZnVuY3Rpb24oSSxCLFEpe3JldHVybiBnKEIpLmVuY3J5cHQoQSxJLEIsUSl9LGRlY3J5cHQ6ZnVuY3Rpb24oSSxCLFEpe3JldHVybiBnKEIpLmRlY3J5cHQoQSxJLEIsUSl9fX19XSksSX0obHIpO0xyLl9FTkNfWEZPUk1fTU9ERT0xLExyLl9ERUNfWEZPUk1fTU9ERT0yLExyLmtleVNpemU9NCxMci5pdlNpemU9NDt2YXIgdnI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKEEsQil7dmFyIFE7cmV0dXJuIHluKHRoaXMsSSksKFE9Zy5jYWxsKHRoaXMpKS5fY2lwaGVyPUEsUS5faXY9QixRfXJldHVybiBmbihJLG51bGwsW3trZXk6ImNyZWF0ZUVuY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5FbmNyeXB0b3IuY3JlYXRlKEEsZyl9fSx7a2V5OiJjcmVhdGVEZWNyeXB0b3IiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMuRGVjcnlwdG9yLmNyZWF0ZShBLGcpfX1dKSxJfShmcik7ZnVuY3Rpb24gS3IoQSxnLEkpe3ZhciBCLFE9QSxDPXRoaXMuX2l2O0M/KEI9Qyx0aGlzLl9pdj12b2lkIDApOkI9dGhpcy5fcHJldkJsb2NrO2Zvcih2YXIgRT0wO0U8STtFKz0xKVFbZytFXV49QltFXX12YXIgbXI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHluKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZuKEkpfSh2cik7bXIuRW5jcnlwdG9yPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiB5bih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmbihJLFt7a2V5OiJwcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEk9dGhpcy5fY2lwaGVyLEI9SS5ibG9ja1NpemU7S3IuY2FsbCh0aGlzLEEsZyxCKSxJLmVuY3J5cHRCbG9jayhBLGcpLHRoaXMuX3ByZXZCbG9jaz1BLnNsaWNlKGcsZytCKX19XSksSX0obXIpLG1yLkRlY3J5cHRvcj1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4geW4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZm4oSSxbe2tleToicHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXMuX2NpcGhlcixCPUkuYmxvY2tTaXplLFE9QS5zbGljZShnLGcrQik7SS5kZWNyeXB0QmxvY2soQSxnKSxLci5jYWxsKHRoaXMsQSxnLEIpLHRoaXMuX3ByZXZCbG9jaz1RfX1dKSxJfShtcik7dmFyIHhyPXtwYWQ6ZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9NCpnLEI9SS1BLnNpZ0J5dGVzJUksUT1CPDwyNHxCPDwxNnxCPDw4fEIsQz1bXSxFPTA7RTxCO0UrPTQpQy5wdXNoKFEpO3ZhciBpPXVyLmNyZWF0ZShDLEIpO0EuY29uY2F0KGkpfSx1bnBhZDpmdW5jdGlvbihBKXt2YXIgZz1BLEk9MjU1Jmcud29yZHNbZy5zaWdCeXRlcy0xPj4+Ml07Zy5zaWdCeXRlcy09SX19LHFyPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSShBLEIsUSl7dmFyIEM7cmV0dXJuIHluKHRoaXMsSSksKEM9Zy5jYWxsKHRoaXMsQSxCLE9iamVjdC5hc3NpZ24oe21vZGU6bXIscGFkZGluZzp4cn0sUSkpKS5ibG9ja1NpemU9NCxDfXJldHVybiBmbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQTtVbih3bihJLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpO3ZhciBnPXRoaXMuY2ZnLEI9Zy5pdixRPWcubW9kZTt0aGlzLl94Zm9ybU1vZGU9PT10aGlzLmNvbnN0cnVjdG9yLl9FTkNfWEZPUk1fTU9ERT9BPVEuY3JlYXRlRW5jcnlwdG9yOihBPVEuY3JlYXRlRGVjcnlwdG9yLHRoaXMuX21pbkJ1ZmZlclNpemU9MSksdGhpcy5fbW9kZT1BLmNhbGwoUSx0aGlzLEImJkIud29yZHMpLHRoaXMuX21vZGUuX19jcmVhdG9yPUF9fSx7a2V5OiJfZG9Qcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dGhpcy5fbW9kZS5wcm9jZXNzQmxvY2soQSxnKX19LHtrZXk6Il9kb0ZpbmFsaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBLGc9dGhpcy5jZmcucGFkZGluZztyZXR1cm4gdGhpcy5feGZvcm1Nb2RlPT09dGhpcy5jb25zdHJ1Y3Rvci5fRU5DX1hGT1JNX01PREU/KGcucGFkKHRoaXMuX2RhdGEsdGhpcy5ibG9ja1NpemUpLEE9dGhpcy5fcHJvY2VzcyghMCkpOihBPXRoaXMuX3Byb2Nlc3MoITApLGcudW5wYWQoQSkpLEF9fV0pLEl9KExyKSxicj1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoQSl7dmFyIEI7cmV0dXJuIHluKHRoaXMsSSksKEI9Zy5jYWxsKHRoaXMpKS5taXhJbihBKSxCfXJldHVybiBmbihJLFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuKEF8fHRoaXMuZm9ybWF0dGVyKS5zdHJpbmdpZnkodGhpcyl9fV0pLEl9KGZyKSxUcj17c3RyaW5naWZ5OmZ1bmN0aW9uKEEpe3ZhciBnPUEuY2lwaGVydGV4dCxJPUEuc2FsdDtyZXR1cm4oST91ci5jcmVhdGUoWzEzOTg4OTM2ODQsMTcwMTA3NjgzMV0pLmNvbmNhdChJKS5jb25jYXQoZyk6ZykudG9TdHJpbmcoVXIpfSxwYXJzZTpmdW5jdGlvbihBKXt2YXIgZyxJPVVyLnBhcnNlKEEpLEI9SS53b3JkcztyZXR1cm4gMTM5ODg5MzY4ND09PUJbMF0mJjE3MDEwNzY4MzE9PT1CWzFdJiYoZz11ci5jcmVhdGUoQi5zbGljZSgyLDQpKSxCLnNwbGljZSgwLDQpLEkuc2lnQnl0ZXMtPTE2KSxici5jcmVhdGUoe2NpcGhlcnRleHQ6SSxzYWx0Omd9KX19LE9yPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiB5bih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmbihJLG51bGwsW3trZXk6ImVuY3J5cHQiLHZhbHVlOmZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPU9iamVjdC5hc3NpZ24obmV3IGZyLHRoaXMuY2ZnLEIpLEM9QS5jcmVhdGVFbmNyeXB0b3IoSSxRKSxFPUMuZmluYWxpemUoZyksaT1DLmNmZztyZXR1cm4gYnIuY3JlYXRlKHtjaXBoZXJ0ZXh0OkUsa2V5OkksaXY6aS5pdixhbGdvcml0aG06QSxtb2RlOmkubW9kZSxwYWRkaW5nOmkucGFkZGluZyxibG9ja1NpemU6Qy5ibG9ja1NpemUsZm9ybWF0dGVyOlEuZm9ybWF0fSl9fSx7a2V5OiJkZWNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1nLEM9T2JqZWN0LmFzc2lnbihuZXcgZnIsdGhpcy5jZmcsQik7cmV0dXJuIFE9dGhpcy5fcGFyc2UoUSxDLmZvcm1hdCksQS5jcmVhdGVEZWNyeXB0b3IoSSxDKS5maW5hbGl6ZShRLmNpcGhlcnRleHQpfX0se2tleToiX3BhcnNlIix2YWx1ZTpmdW5jdGlvbihBLGcpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQT9nLnBhcnNlKEEsdGhpcyk6QX19XSksSX0oZnIpO09yLmNmZz1PYmplY3QuYXNzaWduKG5ldyBmcix7Zm9ybWF0OlRyfSk7dmFyIFdyPXtleGVjdXRlOmZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPUI7UXx8KFE9dXIucmFuZG9tKDgpKTt2YXIgQz1Kci5jcmVhdGUoe2tleVNpemU6ZytJfSkuY29tcHV0ZShBLFEpLEU9dXIuY3JlYXRlKEMud29yZHMuc2xpY2UoZyksNCpJKTtyZXR1cm4gQy5zaWdCeXRlcz00KmcsYnIuY3JlYXRlKHtrZXk6QyxpdjpFLHNhbHQ6UX0pfX0sWnI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHluKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZuKEksbnVsbCxbe2tleToiZW5jcnlwdCIsdmFsdWU6ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9T2JqZWN0LmFzc2lnbihuZXcgZnIsdGhpcy5jZmcsQiksQz1RLmtkZi5leGVjdXRlKEksQS5rZXlTaXplLEEuaXZTaXplKTtRLml2PUMuaXY7dmFyIEU9T3IuZW5jcnlwdC5jYWxsKHRoaXMsQSxnLEMua2V5LFEpO3JldHVybiBFLm1peEluKEMpLEV9fSx7a2V5OiJkZWNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1nLEM9T2JqZWN0LmFzc2lnbihuZXcgZnIsdGhpcy5jZmcsQik7UT10aGlzLl9wYXJzZShRLEMuZm9ybWF0KTt2YXIgRT1DLmtkZi5leGVjdXRlKEksQS5rZXlTaXplLEEuaXZTaXplLFEuc2FsdCk7cmV0dXJuIEMuaXY9RS5pdixPci5kZWNyeXB0LmNhbGwodGhpcyxBLFEsRS5rZXksQyl9fV0pLEl9KE9yKTtaci5jZmc9T2JqZWN0LmFzc2lnbihPci5jZmcse2tkZjpXcn0pO2Zvcih2YXIganI9W10sUHI9W10sWHI9W10sVnI9W10senI9W10sX3I9W10sJHI9W10sQWE9W10sZ2E9W10sSWE9W10sQmE9W10sUWE9MDtRYTwyNTY7UWErPTEpQmFbUWFdPVFhPDEyOD9RYTw8MTpRYTw8MV4yODM7Zm9yKHZhciBDYT0wLEVhPTAsaWE9MDtpYTwyNTY7aWErPTEpe3ZhciB0YT1FYV5FYTw8MV5FYTw8Ml5FYTw8M15FYTw8NDt0YT10YT4+PjheMjU1JnRhXjk5LGpyW0NhXT10YSxQclt0YV09Q2E7dmFyIGVhPUJhW0NhXSxvYT1CYVtlYV0sbmE9QmFbb2FdLHJhPTI1NypCYVt0YV1eMTY4NDMwMDgqdGE7WHJbQ2FdPXJhPDwyNHxyYT4+PjgsVnJbQ2FdPXJhPDwxNnxyYT4+PjE2LHpyW0NhXT1yYTw8OHxyYT4+PjI0LF9yW0NhXT1yYSxyYT0xNjg0MzAwOSpuYV42NTUzNypvYV4yNTcqZWFeMTY4NDMwMDgqQ2EsJHJbdGFdPXJhPDwyNHxyYT4+PjgsQWFbdGFdPXJhPDwxNnxyYT4+PjE2LGdhW3RhXT1yYTw8OHxyYT4+PjI0LElhW3RhXT1yYSxDYT8oQ2E9ZWFeQmFbQmFbQmFbbmFeZWFdXV0sRWFePUJhW0JhW0VhXV0pOkNhPUVhPTF9dmFyIGFhPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxzYT1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4geW4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZm4oSSxbe2tleToiX2RvUmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE7aWYoIXRoaXMuX25Sb3VuZHN8fHRoaXMuX2tleVByaW9yUmVzZXQhPT10aGlzLl9rZXkpe3RoaXMuX2tleVByaW9yUmVzZXQ9dGhpcy5fa2V5O3ZhciBnPXRoaXMuX2tleVByaW9yUmVzZXQsST1nLndvcmRzLEI9Zy5zaWdCeXRlcy80O3RoaXMuX25Sb3VuZHM9Qis2O3ZhciBRPTQqKHRoaXMuX25Sb3VuZHMrMSk7dGhpcy5fa2V5U2NoZWR1bGU9W107Zm9yKHZhciBDPXRoaXMuX2tleVNjaGVkdWxlLEU9MDtFPFE7RSs9MSlFPEI/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+PjgmMjU1XTw8OHxpWzI1NSZyXSleSVtzXTtzKz0xLHRbZ109dSx0W2crMV09dyx0W2crMl09ZCx0W2crM109Rn19XSksSX0ocXIpO3NhLmtleVNpemU9ODt2YXIgY2E9cXIuX2NyZWF0ZUhlbHBlcihzYSksaGE9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHluKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZuKEkpfSh2cik7aGEuRW5jcnlwdG9yPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiB5bih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmbihJLFt7a2V5OiJwcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEk9QSxCPXRoaXMuX2NpcGhlcixRPUIuYmxvY2tTaXplLEM9dGhpcy5faXYsRT10aGlzLl9jb3VudGVyO0MmJih0aGlzLl9jb3VudGVyPUMuc2xpY2UoMCksRT10aGlzLl9jb3VudGVyLHRoaXMuX2l2PXZvaWQgMCk7dmFyIGk9RS5zbGljZSgwKTtCLmVuY3J5cHRCbG9jayhpLDApLEVbUS0xXT1FW1EtMV0rMXwwO2Zvcih2YXIgdD0wO3Q8UTt0Kz0xKUlbZyt0XV49aVt0XX19XSksSX0oaGEpLGhhLkRlY3J5cHRvcj1oYS5FbmNyeXB0b3I7dmFyIHlhPXtwYWQ6ZnVuY3Rpb24oKXt9LHVucGFkOmZ1bmN0aW9uKCl7fX0sRGE9e2RlY3J5cHRXb3JkQXJyYXk6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPXdyLnBhcnNlKGcpLFE9d3IucGFyc2UoX28oSSkpLEM9dXIuY3JlYXRlKG5ldyBVaW50OEFycmF5KEEpKSxFPWNhLmRlY3J5cHQoYnIuY3JlYXRlKHtjaXBoZXJ0ZXh0OkN9KSxCLHtpdjpRLG1vZGU6aGEscGFkZGluZzp5YX0pO3JldHVybiBEYS53b3JkQXJyYXlUb1VpbnQ4QXJyYXkoRSl9LHdvcmRBcnJheVRvVWludDhBcnJheTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5zaWdCeXRlcyxJPUEud29yZHMsQj1uZXcgVWludDhBcnJheShnKSxRPTAsQz0wO1EhPT1nOyl7dmFyIEU9SVtDKytdO2lmKEJbUSsrXT0oNDI3ODE5MDA4MCZFKT4+PjI0LFE9PT1nKWJyZWFrO2lmKEJbUSsrXT0oMTY3MTE2ODAmRSk+Pj4xNixRPT09ZylicmVhaztpZihCW1ErK109KDY1MjgwJkUpPj4+OCxRPT09ZylicmVhaztCW1ErK109MjU1JkV9cmV0dXJuIEJ9LGRlY29kZXJBRVNDVFJEYXRhOmZ1bmN0aW9uKEEsZyxJKXtpZihBLnZpZGVvU2VuYyl7dmFyIEI9QS5raWRWYWx1ZSxRPUEudmlkZW9TZW5jO0Euc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihnLEMpe3ZhciBFPVFbQ10saT1nLmRhdGEsdD1bXSxlPVtdLG89RS5Jbml0aWFsaXphdGlvblZlY3RvcjtpZihFLnN1YnNhbXBsZXMmJkUuc3Vic2FtcGxlcy5sZW5ndGgpRS5zdWJzYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEuQnl0ZXNPZkNsZWFyRGF0YStBLkJ5dGVzT2ZQcm90ZWN0ZWREYXRhLEk9aS5zbGljZSgwLGcpO3QucHVzaChJLnNsaWNlKDAsQS5CeXRlc09mQ2xlYXJEYXRhKSksZS5wdXNoKEkuc2xpY2UoQS5CeXRlc09mQ2xlYXJEYXRhKSksaT1pLnNsaWNlKGcpfSkpO2Vsc2V7dmFyIG49Zy5zaXplO3QucHVzaChpLnNsaWNlKDAsMCkpLGUucHVzaChpLnNsaWNlKDAsbikpLGk9aS5zbGljZShuKX12YXIgcj1uZXcgbm47ci53cml0ZS5hcHBseShyLGUpO3ZhciBhPUk/SShyLmJ1ZmZlcixCLG8pOkRhLmRlY3J5cHRXb3JkQXJyYXkoci5idWZmZXIsQixvKSxzPW5ldyBubjt0LmZvckVhY2goKGZ1bmN0aW9uKEEsZyl7dmFyIEk9ZVtnXS5sZW5ndGgsQj1hLnNsaWNlKDAsSSk7cy53cml0ZShBKSxzLndyaXRlKEIpLGE9YS5zbGljZShJKX0pKSxBLnNhbXBsZXNbQ10uZGF0YT1zLmJ1ZmZlcn0pKX1pZihnLmF1ZGlvU2VuYyl7dmFyIEM9Zy5raWRWYWx1ZSxFPWcuYXVkaW9TZW5jO2cuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBLEIpe3ZhciBRPUVbQl0saT1JP0koQS5kYXRhLEMsUS5Jbml0aWFsaXphdGlvblZlY3Rvcik6RGEuZGVjcnlwdFdvcmRBcnJheShBLmRhdGEsQyxRLkluaXRpYWxpemF0aW9uVmVjdG9yKTtnLnNhbXBsZXNbQl0uZGF0YT1pfSkpfX19LGZhPWksdWE9IltcdFxuXHZcZlxyIMKg4ZqA4oCA4oCB4oCC4oCD4oCE4oCF4oCG4oCH4oCI4oCJ4oCK4oCv4oGf44CAXHUyMDI4XHUyMDI5XHVmZWZmXSIsd2E9UmVnRXhwKCJeIit1YSt1YSsiKiIpLGRhPVJlZ0V4cCh1YSt1YSsiKiQiKSxGYT1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyl7dmFyIEk9U3RyaW5nKGZhKGcpKTtyZXR1cm4gMSZBJiYoST1JLnJlcGxhY2Uod2EsIiIpKSwyJkEmJihJPUkucmVwbGFjZShkYSwiIikpLEl9fSxsYT17c3RhcnQ6RmEoMSksZW5kOkZhKDIpLHRyaW06RmEoMyl9LEdhPXMsUmE9cixVYT1MSSxrYT1hSSxTYT1WLE5hPUIsTWE9dkUsWWE9UixIYT1nLHBhPWNnLEphPXNJLmYsTGE9V2cuZix2YT1jLmYsS2E9bGEudHJpbSxtYT0iTnVtYmVyIix4YT1SYVttYV0scWE9eGEucHJvdG90eXBlLGJhPU5hKHBhKHFhKSk9PW1hLFRhPWZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEMsRSxpLHQsZT1ZYShBLCExKTtpZigic3RyaW5nIj09dHlwZW9mIGUmJmUubGVuZ3RoPjIpaWYoNDM9PT0oZz0oZT1LYShlKSkuY2hhckNvZGVBdCgwKSl8fDQ1PT09Zyl7aWYoODg9PT0oST1lLmNoYXJDb2RlQXQoMikpfHwxMjA9PT1JKXJldHVybiBOYU59ZWxzZSBpZig0OD09PWcpe3N3aXRjaChlLmNoYXJDb2RlQXQoMSkpe2Nhc2UgNjY6Y2FzZSA5ODpCPTIsUT00OTticmVhaztjYXNlIDc5OmNhc2UgMTExOkI9OCxRPTU1O2JyZWFrO2RlZmF1bHQ6cmV0dXJuK2V9Zm9yKEU9KEM9ZS5zbGljZSgyKSkubGVuZ3RoLGk9MDtpPEU7aSsrKWlmKCh0PUMuY2hhckNvZGVBdChpKSk8NDh8fHQ+USlyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludChDLEIpfXJldHVybitlfTtpZihVYShtYSwheGEoIiAwbzEiKXx8IXhhKCIwYjEiKXx8eGEoIisweDEiKSkpe2Zvcih2YXIgT2EsV2E9ZnVuY3Rpb24oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aDwxPzA6QSxJPXRoaXM7cmV0dXJuIEkgaW5zdGFuY2VvZiBXYSYmKGJhP0hhKChmdW5jdGlvbigpe3FhLnZhbHVlT2YuY2FsbChJKX0pKTpOYShJKSE9bWEpP01hKG5ldyB4YShUYShnKSksSSxXYSk6VGEoZyl9LFphPUdhP0phKHhhKToiTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksRVBTSUxPTixpc0Zpbml0ZSxpc0ludGVnZXIsaXNOYU4saXNTYWZlSW50ZWdlcixNQVhfU0FGRV9JTlRFR0VSLE1JTl9TQUZFX0lOVEVHRVIscGFyc2VGbG9hdCxwYXJzZUludCxpc0ludGVnZXIsZnJvbVN0cmluZyxyYW5nZSIuc3BsaXQoIiwiKSxqYT0wO1phLmxlbmd0aD5qYTtqYSsrKVNhKHhhLE9hPVphW2phXSkmJiFTYShXYSxPYSkmJnZhKFdhLE9hLExhKHhhLE9hKSk7V2EucHJvdG90eXBlPXFhLHFhLmNvbnN0cnVjdG9yPVdhLGthKFJhLG1hLFdhKX12YXIgUGE9e30sWGE9ZztmdW5jdGlvbiBWYShBLGcpe3JldHVybiBSZWdFeHAoQSxnKX1QYS5VTlNVUFBPUlRFRF9ZPVhhKChmdW5jdGlvbigpe3ZhciBBPVZhKCJhIiwieSIpO3JldHVybiBBLmxhc3RJbmRleD0yLG51bGwhPUEuZXhlYygiYWJjZCIpfSkpLFBhLkJST0tFTl9DQVJFVD1YYSgoZnVuY3Rpb24oKXt2YXIgQT1WYSgiXnIiLCJneSIpO3JldHVybiBBLmxhc3RJbmRleD0yLG51bGwhPUEuZXhlYygic3RyIil9KSk7dmFyIHphLF9hLCRhPVluLEFzPVBhLGdzPVcsSXM9UmVnRXhwLnByb3RvdHlwZS5leGVjLEJzPWdzKCJuYXRpdmUtc3RyaW5nLXJlcGxhY2UiLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksUXM9SXMsQ3M9KHphPS9hLyxfYT0vYiovZyxJcy5jYWxsKHphLCJhIiksSXMuY2FsbChfYSwiYSIpLDAhPT16YS5sYXN0SW5kZXh8fDAhPT1fYS5sYXN0SW5kZXgpLEVzPUFzLlVOU1VQUE9SVEVEX1l8fEFzLkJST0tFTl9DQVJFVCxpcz12b2lkIDAhPT0vKCk/Py8uZXhlYygiIilbMV07KENzfHxpc3x8RXMpJiYoUXM9ZnVuY3Rpb24oQSl7dmFyIGcsSSxCLFEsQz10aGlzLEU9RXMmJkMuc3RpY2t5LGk9JGEuY2FsbChDKSx0PUMuc291cmNlLGU9MCxvPUE7cmV0dXJuIEUmJigtMT09PShpPWkucmVwbGFjZSgieSIsIiIpKS5pbmRleE9mKCJnIikmJihpKz0iZyIpLG89U3RyaW5nKEEpLnNsaWNlKEMubGFzdEluZGV4KSxDLmxhc3RJbmRleD4wJiYoIUMubXVsdGlsaW5lfHxDLm11bHRpbGluZSYmIlxuIiE9PUFbQy5sYXN0SW5kZXgtMV0pJiYodD0iKD86ICIrdCsiKSIsbz0iICIrbyxlKyspLEk9bmV3IFJlZ0V4cCgiXig/OiIrdCsiKSIsaSkpLGlzJiYoST1uZXcgUmVnRXhwKCJeIit0KyIkKD8hXFxzKSIsaSkpLENzJiYoZz1DLmxhc3RJbmRleCksQj1Jcy5jYWxsKEU/STpDLG8pLEU/Qj8oQi5pbnB1dD1CLmlucHV0LnNsaWNlKGUpLEJbMF09QlswXS5zbGljZShlKSxCLmluZGV4PUMubGFzdEluZGV4LEMubGFzdEluZGV4Kz1CWzBdLmxlbmd0aCk6Qy5sYXN0SW5kZXg9MDpDcyYmQiYmKEMubGFzdEluZGV4PUMuZ2xvYmFsP0IuaW5kZXgrQlswXS5sZW5ndGg6ZyksaXMmJkImJkIubGVuZ3RoPjEmJkJzLmNhbGwoQlswXSxJLChmdW5jdGlvbigpe2ZvcihRPTE7UTxhcmd1bWVudHMubGVuZ3RoLTI7USsrKXZvaWQgMD09PWFyZ3VtZW50c1tRXSYmKEJbUV09dm9pZCAwKX0pKSxCfSk7dmFyIHRzPVFzO09JKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAsZm9yY2VkOi8uLy5leGVjIT09dHN9LHtleGVjOnRzfSk7dmFyIGVzPWFJLG9zPXRzLG5zPWcscnM9RkEsYXM9Sixzcz1ycygic3BlY2llcyIpLGNzPVJlZ0V4cC5wcm90b3R5cGUsaHM9IW5zKChmdW5jdGlvbigpe3ZhciBBPS8uLztyZXR1cm4gQS5leGVjPWZ1bmN0aW9uKCl7dmFyIEE9W107cmV0dXJuIEEuZ3JvdXBzPXthOiI3In0sQX0sIjciIT09IiIucmVwbGFjZShBLCIkPGE+Iil9KSkseXM9IiQwIj09PSJhIi5yZXBsYWNlKC8uLywiJDAiKSxEcz1ycygicmVwbGFjZSIpLGZzPSEhLy4vW0RzXSYmIiI9PT0vLi9bRHNdKCJhIiwiJDAiKSx1cz0hbnMoKGZ1bmN0aW9uKCl7dmFyIEE9Lyg/OikvLGc9QS5leGVjO0EuZXhlYz1mdW5jdGlvbigpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dmFyIEk9ImFiIi5zcGxpdChBKTtyZXR1cm4gMiE9PUkubGVuZ3RofHwiYSIhPT1JWzBdfHwiYiIhPT1JWzFdfSkpLHdzPVJBLGRzPWksRnM9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSl7dmFyIEIsUSxDPVN0cmluZyhkcyhnKSksRT13cyhJKSxpPUMubGVuZ3RoO3JldHVybiBFPDB8fEU+PWk/QT8iIjp2b2lkIDA6KEI9Qy5jaGFyQ29kZUF0KEUpKTw1NTI5Nnx8Qj41NjMxOXx8RSsxPT09aXx8KFE9Qy5jaGFyQ29kZUF0KEUrMSkpPDU2MzIwfHxRPjU3MzQzP0E/Qy5jaGFyQXQoRSk6QjpBP0Muc2xpY2UoRSxFKzIpOlEtNTYzMjArKEItNTUyOTY8PDEwKSs2NTUzNn19LGxzPXtjb2RlQXQ6RnMoITEpLGNoYXJBdDpGcyghMCl9LmNoYXJBdCxHcz1qLFJzPU1hdGguZmxvb3IsVXM9IiIucmVwbGFjZSxrcz0vXCQoWyQmJ2BdfFxkezEsMn18PFtePl0qPikvZyxTcz0vXCQoWyQmJ2BdfFxkezEsMn0pL2csTnM9QixNcz10cyxZcz1mdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1ycyhBKSxDPSFucygoZnVuY3Rpb24oKXt2YXIgZz17fTtyZXR1cm4gZ1tRXT1mdW5jdGlvbigpe3JldHVybiA3fSw3IT0iIltBXShnKX0pKSxFPUMmJiFucygoZnVuY3Rpb24oKXt2YXIgZz0hMSxJPS9hLztyZXR1cm4ic3BsaXQiPT09QSYmKChJPXt9KS5jb25zdHJ1Y3Rvcj17fSxJLmNvbnN0cnVjdG9yW3NzXT1mdW5jdGlvbigpe3JldHVybiBJfSxJLmZsYWdzPSIiLElbUV09Ly4vW1FdKSxJLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZz0hMCxudWxsfSxJW1FdKCIiKSwhZ30pKTtpZighQ3x8IUV8fCJyZXBsYWNlIj09PUEmJighaHN8fCF5c3x8ZnMpfHwic3BsaXQiPT09QSYmIXVzKXt2YXIgaT0vLi9bUV0sdD1JKFEsIiJbQV0sKGZ1bmN0aW9uKEEsZyxJLEIsUSl7dmFyIEU9Zy5leGVjO3JldHVybiBFPT09b3N8fEU9PT1jcy5leGVjP0MmJiFRP3tkb25lOiEwLHZhbHVlOmkuY2FsbChnLEksQil9Ontkb25lOiEwLHZhbHVlOkEuY2FsbChJLGcsQil9Ontkb25lOiExfX0pLHtSRVBMQUNFX0tFRVBTXyQwOnlzLFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFOmZzfSksZT10WzBdLG89dFsxXTtlcyhTdHJpbmcucHJvdG90eXBlLEEsZSksZXMoY3MsUSwyPT1nP2Z1bmN0aW9uKEEsZyl7cmV0dXJuIG8uY2FsbChBLHRoaXMsZyl9OmZ1bmN0aW9uKEEpe3JldHVybiBvLmNhbGwoQSx0aGlzKX0pfUImJmFzKGNzW1FdLCJzaGFtIiwhMCl9LEhzPWwscHM9U0EsSnM9UkEsTHM9aSx2cz1mdW5jdGlvbihBLGcsSSl7cmV0dXJuIGcrKEk/bHMoQSxnKS5sZW5ndGg6MSl9LEtzPWZ1bmN0aW9uKEEsZyxJLEIsUSxDKXt2YXIgRT1JK0EubGVuZ3RoLGk9Qi5sZW5ndGgsdD1TcztyZXR1cm4gdm9pZCAwIT09USYmKFE9R3MoUSksdD1rcyksVXMuY2FsbChDLHQsKGZ1bmN0aW9uKEMsdCl7dmFyIGU7c3dpdGNoKHQuY2hhckF0KDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiBBO2Nhc2UiYCI6cmV0dXJuIGcuc2xpY2UoMCxJKTtjYXNlIiciOnJldHVybiBnLnNsaWNlKEUpO2Nhc2UiPCI6ZT1RW3Quc2xpY2UoMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIG89K3Q7aWYoMD09PW8pcmV0dXJuIEM7aWYobz5pKXt2YXIgbj1ScyhvLzEwKTtyZXR1cm4gMD09PW4/QzpuPD1pP3ZvaWQgMD09PUJbbi0xXT90LmNoYXJBdCgxKTpCW24tMV0rdC5jaGFyQXQoMSk6Q31lPUJbby0xXX1yZXR1cm4gdm9pZCAwPT09ZT8iIjplfSkpfSxtcz1mdW5jdGlvbihBLGcpe3ZhciBJPUEuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2YgSSl7dmFyIEI9SS5jYWxsKEEsZyk7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXRocm93IFR5cGVFcnJvcigiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsIik7cmV0dXJuIEJ9aWYoIlJlZ0V4cCIhPT1OcyhBKSl0aHJvdyBUeXBlRXJyb3IoIlJlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXIiKTtyZXR1cm4gTXMuY2FsbChBLGcpfSx4cz1NYXRoLm1heCxxcz1NYXRoLm1pbjtZcygicmVwbGFjZSIsMiwoZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9Qi5SRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSxDPUIuUkVQTEFDRV9LRUVQU18kMCxFPVE/IiQiOiIkMCI7cmV0dXJuW2Z1bmN0aW9uKEksQil7dmFyIFE9THModGhpcyksQz1udWxsPT1JP3ZvaWQgMDpJW0FdO3JldHVybiB2b2lkIDAhPT1DP0MuY2FsbChJLFEsQik6Zy5jYWxsKFN0cmluZyhRKSxJLEIpfSxmdW5jdGlvbihBLEIpe2lmKCFRJiZDfHwic3RyaW5nIj09dHlwZW9mIEImJi0xPT09Qi5pbmRleE9mKEUpKXt2YXIgaT1JKGcsQSx0aGlzLEIpO2lmKGkuZG9uZSlyZXR1cm4gaS52YWx1ZX12YXIgdD1IcyhBKSxlPVN0cmluZyh0aGlzKSxvPSJmdW5jdGlvbiI9PXR5cGVvZiBCO298fChCPVN0cmluZyhCKSk7dmFyIG49dC5nbG9iYWw7aWYobil7dmFyIHI9dC51bmljb2RlO3QubGFzdEluZGV4PTB9Zm9yKHZhciBhPVtdOzspe3ZhciBzPW1zKHQsZSk7aWYobnVsbD09PXMpYnJlYWs7aWYoYS5wdXNoKHMpLCFuKWJyZWFrOyIiPT09U3RyaW5nKHNbMF0pJiYodC5sYXN0SW5kZXg9dnMoZSxwcyh0Lmxhc3RJbmRleCkscikpfWZvcih2YXIgYyxoPSIiLHk9MCxEPTA7RDxhLmxlbmd0aDtEKyspe3M9YVtEXTtmb3IodmFyIGY9U3RyaW5nKHNbMF0pLHU9eHMocXMoSnMocy5pbmRleCksZS5sZW5ndGgpLDApLHc9W10sZD0xO2Q8cy5sZW5ndGg7ZCsrKXcucHVzaCh2b2lkIDA9PT0oYz1zW2RdKT9jOlN0cmluZyhjKSk7dmFyIEY9cy5ncm91cHM7aWYobyl7dmFyIGw9W2ZdLmNvbmNhdCh3LHUsZSk7dm9pZCAwIT09RiYmbC5wdXNoKEYpO3ZhciBHPVN0cmluZyhCLmFwcGx5KHZvaWQgMCxsKSl9ZWxzZSBHPUtzKGYsZSx1LHcsRixCKTt1Pj15JiYoaCs9ZS5zbGljZSh5LHUpK0cseT11K2YubGVuZ3RoKX1yZXR1cm4gaCtlLnNsaWNlKHkpfV19KSk7dmFyIGJzLFRzPWgsT3M9QixXcz1GQSgibWF0Y2giKSxacz1mdW5jdGlvbihBKXt2YXIgZztyZXR1cm4gVHMoQSkmJih2b2lkIDAhPT0oZz1BW1dzXSk/ISFnOiJSZWdFeHAiPT1PcyhBKSl9LGpzPVpzLFBzPWZ1bmN0aW9uKEEpe2lmKGpzKEEpKXRocm93IFR5cGVFcnJvcigiVGhlIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCByZWd1bGFyIGV4cHJlc3Npb25zIik7cmV0dXJuIEF9LFhzPUZBKCJtYXRjaCIpLFZzPWZ1bmN0aW9uKEEpe3ZhciBnPS8uLzt0cnl7Ii8uLyJbQV0oZyl9Y2F0Y2goSSl7dHJ5e3JldHVybiBnW1hzXT0hMSwiLy4vIltBXShnKX1jYXRjaChCKXt9fXJldHVybiExfSx6cz1PSSxfcz1XZy5mLCRzPVNBLEFjPVBzLGdjPWksSWM9VnMsQmM9IiIuc3RhcnRzV2l0aCxRYz1NYXRoLm1pbixDYz1JYygic3RhcnRzV2l0aCIpO3pzKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiEhKENjfHwoYnM9X3MoU3RyaW5nLnByb3RvdHlwZSwic3RhcnRzV2l0aCIpLCFic3x8YnMud3JpdGFibGUpKSYmIUNjfSx7c3RhcnRzV2l0aDpmdW5jdGlvbihBKXt2YXIgZz1TdHJpbmcoZ2ModGhpcykpO0FjKEEpO3ZhciBJPSRzKFFjKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGcubGVuZ3RoKSksQj1TdHJpbmcoQSk7cmV0dXJuIEJjP0JjLmNhbGwoZyxCLEkpOmcuc2xpY2UoSSxJK0IubGVuZ3RoKT09PUJ9fSk7dmFyIEVjLGljLHRjLGVjPXIuUHJvbWlzZSxvYz1sLG5jPWwscmM9RUUsYWM9U0Esc2M9ZUUsY2M9SUUsaGM9ZnVuY3Rpb24oQSl7dmFyIGc9QS5yZXR1cm47aWYodm9pZCAwIT09ZylyZXR1cm4gb2MoZy5jYWxsKEEpKS52YWx1ZX0seWM9ZnVuY3Rpb24oQSxnKXt0aGlzLnN0b3BwZWQ9QSx0aGlzLnJlc3VsdD1nfSxEYz0vKD86aXBob25lfGlwb2R8aXBhZCkuKmFwcGxld2Via2l0L2kudGVzdChRQSksZmM9InByb2Nlc3MiPT1CKHIucHJvY2VzcyksdWM9cix3Yz1nLGRjPWVFLEZjPSRBLGxjPXUsR2M9RGMsUmM9ZmMsVWM9dWMubG9jYXRpb24sa2M9dWMuc2V0SW1tZWRpYXRlLFNjPXVjLmNsZWFySW1tZWRpYXRlLE5jPXVjLnByb2Nlc3MsTWM9dWMuTWVzc2FnZUNoYW5uZWwsWWM9dWMuRGlzcGF0Y2gsSGM9MCxwYz17fSxKYz0ib25yZWFkeXN0YXRlY2hhbmdlIixMYz1mdW5jdGlvbihBKXtpZihwYy5oYXNPd25Qcm9wZXJ0eShBKSl7dmFyIGc9cGNbQV07ZGVsZXRlIHBjW0FdLGcoKX19LHZjPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbigpe0xjKEEpfX0sS2M9ZnVuY3Rpb24oQSl7TGMoQS5kYXRhKX0sbWM9ZnVuY3Rpb24oQSl7dWMucG9zdE1lc3NhZ2UoQSsiIixVYy5wcm90b2NvbCsiLy8iK1VjLmhvc3QpfTtrYyYmU2N8fChrYz1mdW5jdGlvbihBKXtmb3IodmFyIGc9W10sST0xO2FyZ3VtZW50cy5sZW5ndGg+STspZy5wdXNoKGFyZ3VtZW50c1tJKytdKTtyZXR1cm4gcGNbKytIY109ZnVuY3Rpb24oKXsoImZ1bmN0aW9uIj09dHlwZW9mIEE/QTpGdW5jdGlvbihBKSkuYXBwbHkodm9pZCAwLGcpfSxFYyhIYyksSGN9LFNjPWZ1bmN0aW9uKEEpe2RlbGV0ZSBwY1tBXX0sUmM/RWM9ZnVuY3Rpb24oQSl7TmMubmV4dFRpY2sodmMoQSkpfTpZYyYmWWMubm93P0VjPWZ1bmN0aW9uKEEpe1ljLm5vdyh2YyhBKSl9Ok1jJiYhR2M/KHRjPShpYz1uZXcgTWMpLnBvcnQyLGljLnBvcnQxLm9ubWVzc2FnZT1LYyxFYz1kYyh0Yy5wb3N0TWVzc2FnZSx0YywxKSk6dWMuYWRkRXZlbnRMaXN0ZW5lciYmImZ1bmN0aW9uIj09dHlwZW9mIHBvc3RNZXNzYWdlJiYhdWMuaW1wb3J0U2NyaXB0cyYmVWMmJiJmaWxlOiIhPT1VYy5wcm90b2NvbCYmIXdjKG1jKT8oRWM9bWMsdWMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsS2MsITEpKTpFYz1KYyBpbiBsYygic2NyaXB0Iik/ZnVuY3Rpb24oQSl7RmMuYXBwZW5kQ2hpbGQobGMoInNjcmlwdCIpKVtKY109ZnVuY3Rpb24oKXtGYy5yZW1vdmVDaGlsZCh0aGlzKSxMYyhBKX19OmZ1bmN0aW9uKEEpe3NldFRpbWVvdXQodmMoQSksMCl9KTt2YXIgeGMscWMsYmMsVGMsT2MsV2MsWmMsamMsUGM9e3NldDprYyxjbGVhcjpTY30sWGM9L3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdChRQSksVmM9cix6Yz1XZy5mLF9jPVBjLnNldCwkYz1EYyxBaD1YYyxnaD1mYyxJaD1WYy5NdXRhdGlvbk9ic2VydmVyfHxWYy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLEJoPVZjLmRvY3VtZW50LFFoPVZjLnByb2Nlc3MsQ2g9VmMuUHJvbWlzZSxFaD16YyhWYywicXVldWVNaWNyb3Rhc2siKSxpaD1FaCYmRWgudmFsdWU7aWh8fCh4Yz1mdW5jdGlvbigpe3ZhciBBLGc7Zm9yKGdoJiYoQT1RaC5kb21haW4pJiZBLmV4aXQoKTtxYzspe2c9cWMuZm4scWM9cWMubmV4dDt0cnl7ZygpfWNhdGNoKHREKXt0aHJvdyBxYz9UYygpOmJjPXZvaWQgMCx0RH19YmM9dm9pZCAwLEEmJkEuZW50ZXIoKX0sJGN8fGdofHxBaHx8IUlofHwhQmg/Q2gmJkNoLnJlc29sdmU/KChaYz1DaC5yZXNvbHZlKHZvaWQgMCkpLmNvbnN0cnVjdG9yPUNoLGpjPVpjLnRoZW4sVGM9ZnVuY3Rpb24oKXtqYy5jYWxsKFpjLHhjKX0pOlRjPWdoP2Z1bmN0aW9uKCl7UWgubmV4dFRpY2soeGMpfTpmdW5jdGlvbigpe19jLmNhbGwoVmMseGMpfTooT2M9ITAsV2M9QmguY3JlYXRlVGV4dE5vZGUoIiIpLG5ldyBJaCh4Yykub2JzZXJ2ZShXYyx7Y2hhcmFjdGVyRGF0YTohMH0pLFRjPWZ1bmN0aW9uKCl7V2MuZGF0YT1PYz0hT2N9KSk7dmFyIHRoPWlofHxmdW5jdGlvbihBKXt2YXIgZz17Zm46QSxuZXh0OnZvaWQgMH07YmMmJihiYy5uZXh0PWcpLHFjfHwocWM9ZyxUYygpKSxiYz1nfSxlaD17fSxvaD1pRSxuaD1mdW5jdGlvbihBKXt2YXIgZyxJO3RoaXMucHJvbWlzZT1uZXcgQSgoZnVuY3Rpb24oQSxCKXtpZih2b2lkIDAhPT1nfHx2b2lkIDAhPT1JKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtnPUEsST1CfSkpLHRoaXMucmVzb2x2ZT1vaChnKSx0aGlzLnJlamVjdD1vaChJKX07ZWguZj1mdW5jdGlvbihBKXtyZXR1cm4gbmV3IG5oKEEpfTt2YXIgcmgsYWgsc2gsY2gsaGg9bCx5aD1oLERoPWVoLGZoPXIsdWg9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3csd2g9T0ksZGg9cixGaD1CQSxsaD1lYyxHaD1hSSxSaD1UUSxVaD1EQixraD10QixTaD1wRSxOaD1oLE1oPWlFLFloPU9RLEhoPVVnLHBoPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEMsRSxpLHQsZSxvPUkmJkkudGhhdCxuPSEoIUl8fCFJLkFTX0VOVFJJRVMpLHI9ISghSXx8IUkuSVNfSVRFUkFUT1IpLGE9ISghSXx8IUkuSU5URVJSVVBURUQpLHM9c2MoZyxvLDErbithKSxjPWZ1bmN0aW9uKEEpe3JldHVybiBCJiZoYyhCKSxuZXcgeWMoITAsQSl9LGg9ZnVuY3Rpb24oQSl7cmV0dXJuIG4/KG5jKEEpLGE/cyhBWzBdLEFbMV0sYyk6cyhBWzBdLEFbMV0pKTphP3MoQSxjKTpzKEEpfTtpZihyKUI9QTtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZihRPWNjKEEpKSl0aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgaXRlcmFibGUiKTtpZihyYyhRKSl7Zm9yKEM9MCxFPWFjKEEubGVuZ3RoKTtFPkM7QysrKWlmKChpPWgoQVtDXSkpJiZpIGluc3RhbmNlb2YgeWMpcmV0dXJuIGk7cmV0dXJuIG5ldyB5YyghMSl9Qj1RLmNhbGwoQSl9Zm9yKHQ9Qi5uZXh0OyEoZT10LmNhbGwoQikpLmRvbmU7KXt0cnl7aT1oKGUudmFsdWUpfWNhdGNoKHREKXt0aHJvdyBoYyhCKSx0RH1pZigib2JqZWN0Ij09dHlwZW9mIGkmJmkmJmkgaW5zdGFuY2VvZiB5YylyZXR1cm4gaX1yZXR1cm4gbmV3IHljKCExKX0sSmg9UVEsTGg9Wmksdmg9UGMuc2V0LEtoPXRoLG1oPWZ1bmN0aW9uKEEsZyl7aWYoaGgoQSkseWgoZykmJmcuY29uc3RydWN0b3I9PT1BKXJldHVybiBnO3ZhciBJPURoLmYoQSk7cmV0dXJuKDAsSS5yZXNvbHZlKShnKSxJLnByb21pc2V9LHhoPWZ1bmN0aW9uKEEsZyl7dmFyIEk9ZmguY29uc29sZTtJJiZJLmVycm9yJiYoMT09PWFyZ3VtZW50cy5sZW5ndGg/SS5lcnJvcihBKTpJLmVycm9yKEEsZykpfSxxaD1laCxiaD1mdW5jdGlvbihBKXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOkEoKX19Y2F0Y2godEQpe3JldHVybntlcnJvcjohMCx2YWx1ZTp0RH19fSxUaD1PZyxPaD1MSSxXaD11aCxaaD1mYyxqaD1vQSxQaD1GQSgic3BlY2llcyIpLFhoPSJQcm9taXNlIixWaD1UaC5nZXQsemg9VGguc2V0LF9oPVRoLmdldHRlckZvcihYaCksJGg9bGgmJmxoLnByb3RvdHlwZSxBeT1saCxneT0kaCxJeT1kaC5UeXBlRXJyb3IsQnk9ZGguZG9jdW1lbnQsUXk9ZGgucHJvY2VzcyxDeT1xaC5mLEV5PUN5LGl5PSEhKEJ5JiZCeS5jcmVhdGVFdmVudCYmZGguZGlzcGF0Y2hFdmVudCksdHk9ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCxleT0idW5oYW5kbGVkcmVqZWN0aW9uIixveT0hMSxueT1PaChYaCwoZnVuY3Rpb24oKXt2YXIgQT1IaChBeSkhPT1TdHJpbmcoQXkpO2lmKCFBJiY2Nj09PWpoKXJldHVybiEwO2lmKGpoPj01MSYmL25hdGl2ZSBjb2RlLy50ZXN0KEF5KSlyZXR1cm4hMTt2YXIgZz1uZXcgQXkoKGZ1bmN0aW9uKEEpe0EoMSl9KSksST1mdW5jdGlvbihBKXtBKChmdW5jdGlvbigpe30pLChmdW5jdGlvbigpe30pKX07cmV0dXJuKGcuY29uc3RydWN0b3I9e30pW1BoXT1JLCEob3k9Zy50aGVuKChmdW5jdGlvbigpe30pKWluc3RhbmNlb2YgSSl8fCFBJiZXaCYmIXR5fSkpLHJ5PW55fHwhSmgoKGZ1bmN0aW9uKEEpe0F5LmFsbChBKS5jYXRjaCgoZnVuY3Rpb24oKXt9KSl9KSksYXk9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuISghTmgoQSl8fCJmdW5jdGlvbiIhPXR5cGVvZihnPUEudGhlbikpJiZnfSxzeT1mdW5jdGlvbihBLGcpe2lmKCFBLm5vdGlmaWVkKXtBLm5vdGlmaWVkPSEwO3ZhciBJPUEucmVhY3Rpb25zO0toKChmdW5jdGlvbigpe2Zvcih2YXIgQj1BLnZhbHVlLFE9MT09QS5zdGF0ZSxDPTA7SS5sZW5ndGg+Qzspe3ZhciBFLGksdCxlPUlbQysrXSxvPVE/ZS5vazplLmZhaWwsbj1lLnJlc29sdmUscj1lLnJlamVjdCxhPWUuZG9tYWluO3RyeXtvPyhRfHwoMj09PUEucmVqZWN0aW9uJiZEeShBKSxBLnJlamVjdGlvbj0xKSwhMD09PW8/RT1COihhJiZhLmVudGVyKCksRT1vKEIpLGEmJihhLmV4aXQoKSx0PSEwKSksRT09PWUucHJvbWlzZT9yKEl5KCJQcm9taXNlLWNoYWluIGN5Y2xlIikpOihpPWF5KEUpKT9pLmNhbGwoRSxuLHIpOm4oRSkpOnIoQil9Y2F0Y2godEQpe2EmJiF0JiZhLmV4aXQoKSxyKHREKX19QS5yZWFjdGlvbnM9W10sQS5ub3RpZmllZD0hMSxnJiYhQS5yZWplY3Rpb24mJmh5KEEpfSkpfX0sY3k9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7aXk/KChCPUJ5LmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5wcm9taXNlPWcsQi5yZWFzb249SSxCLmluaXRFdmVudChBLCExLCEwKSxkaC5kaXNwYXRjaEV2ZW50KEIpKTpCPXtwcm9taXNlOmcscmVhc29uOkl9LCF0eSYmKFE9ZGhbIm9uIitBXSk/UShCKTpBPT09ZXkmJnhoKCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24iLEkpfSxoeT1mdW5jdGlvbihBKXt2aC5jYWxsKGRoLChmdW5jdGlvbigpe3ZhciBnLEk9QS5mYWNhZGUsQj1BLnZhbHVlO2lmKHl5KEEpJiYoZz1iaCgoZnVuY3Rpb24oKXtaaD9ReS5lbWl0KCJ1bmhhbmRsZWRSZWplY3Rpb24iLEIsSSk6Y3koZXksSSxCKX0pKSxBLnJlamVjdGlvbj1aaHx8eXkoQSk/MjoxLGcuZXJyb3IpKXRocm93IGcudmFsdWV9KSl9LHl5PWZ1bmN0aW9uKEEpe3JldHVybiAxIT09QS5yZWplY3Rpb24mJiFBLnBhcmVudH0sRHk9ZnVuY3Rpb24oQSl7dmguY2FsbChkaCwoZnVuY3Rpb24oKXt2YXIgZz1BLmZhY2FkZTtaaD9ReS5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIixnKTpjeSgicmVqZWN0aW9uaGFuZGxlZCIsZyxBLnZhbHVlKX0pKX0sZnk9ZnVuY3Rpb24oQSxnLEkpe3JldHVybiBmdW5jdGlvbihCKXtBKGcsQixJKX19LHV5PWZ1bmN0aW9uKEEsZyxJKXtBLmRvbmV8fChBLmRvbmU9ITAsSSYmKEE9SSksQS52YWx1ZT1nLEEuc3RhdGU9MixzeShBLCEwKSl9LHd5PWZ1bmN0aW9uKEEsZyxJKXtpZighQS5kb25lKXtBLmRvbmU9ITAsSSYmKEE9SSk7dHJ5e2lmKEEuZmFjYWRlPT09Zyl0aHJvdyBJeSgiUHJvbWlzZSBjYW4ndCBiZSByZXNvbHZlZCBpdHNlbGYiKTt2YXIgQj1heShnKTtCP0toKChmdW5jdGlvbigpe3ZhciBJPXtkb25lOiExfTt0cnl7Qi5jYWxsKGcsZnkod3ksSSxBKSxmeSh1eSxJLEEpKX1jYXRjaCh0RCl7dXkoSSx0RCxBKX19KSk6KEEudmFsdWU9ZyxBLnN0YXRlPTEsc3koQSwhMSkpfWNhdGNoKHREKXt1eSh7ZG9uZTohMX0sdEQsQSl9fX07aWYobnkmJihneT0oQXk9ZnVuY3Rpb24oQSl7WWgodGhpcyxBeSxYaCksTWgoQSkscmguY2FsbCh0aGlzKTt2YXIgZz1WaCh0aGlzKTt0cnl7QShmeSh3eSxnKSxmeSh1eSxnKSl9Y2F0Y2godEQpe3V5KGcsdEQpfX0pLnByb3RvdHlwZSwocmg9ZnVuY3Rpb24oQSl7emgodGhpcyx7dHlwZTpYaCxkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6W10scmVqZWN0aW9uOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9UmgoZ3kse3RoZW46ZnVuY3Rpb24oQSxnKXt2YXIgST1faCh0aGlzKSxCPUN5KExoKHRoaXMsQXkpKTtyZXR1cm4gQi5vaz0iZnVuY3Rpb24iIT10eXBlb2YgQXx8QSxCLmZhaWw9ImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcsQi5kb21haW49Wmg/UXkuZG9tYWluOnZvaWQgMCxJLnBhcmVudD0hMCxJLnJlYWN0aW9ucy5wdXNoKEIpLDAhPUkuc3RhdGUmJnN5KEksITEpLEIucHJvbWlzZX0sY2F0Y2g6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsQSl9fSksYWg9ZnVuY3Rpb24oKXt2YXIgQT1uZXcgcmgsZz1WaChBKTt0aGlzLnByb21pc2U9QSx0aGlzLnJlc29sdmU9Znkod3ksZyksdGhpcy5yZWplY3Q9ZnkodXksZyl9LHFoLmY9Q3k9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT1BeXx8QT09PXNoP25ldyBhaChBKTpFeShBKX0sImZ1bmN0aW9uIj09dHlwZW9mIGxoJiYkaCE9PU9iamVjdC5wcm90b3R5cGUpKXtjaD0kaC50aGVuLG95fHwoR2goJGgsInRoZW4iLChmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXM7cmV0dXJuIG5ldyBBeSgoZnVuY3Rpb24oQSxnKXtjaC5jYWxsKEksQSxnKX0pKS50aGVuKEEsZyl9KSx7dW5zYWZlOiEwfSksR2goJGgsImNhdGNoIixneS5jYXRjaCx7dW5zYWZlOiEwfSkpO3RyeXtkZWxldGUgJGguY29uc3RydWN0b3J9Y2F0Y2godEQpe31VaCYmVWgoJGgsZ3kpfXdoKHtnbG9iYWw6ITAsd3JhcDohMCxmb3JjZWQ6bnl9LHtQcm9taXNlOkF5fSksa2goQXksWGgsITEpLFNoKFhoKSxzaD1GaChYaCksd2goe3RhcmdldDpYaCxzdGF0OiEwLGZvcmNlZDpueX0se3JlamVjdDpmdW5jdGlvbihBKXt2YXIgZz1DeSh0aGlzKTtyZXR1cm4gZy5yZWplY3QuY2FsbCh2b2lkIDAsQSksZy5wcm9taXNlfX0pLHdoKHt0YXJnZXQ6WGgsc3RhdDohMCxmb3JjZWQ6bnl9LHtyZXNvbHZlOmZ1bmN0aW9uKEEpe3JldHVybiBtaCh0aGlzLEEpfX0pLHdoKHt0YXJnZXQ6WGgsc3RhdDohMCxmb3JjZWQ6cnl9LHthbGw6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcyxJPUN5KGcpLEI9SS5yZXNvbHZlLFE9SS5yZWplY3QsQz1iaCgoZnVuY3Rpb24oKXt2YXIgST1NaChnLnJlc29sdmUpLEM9W10sRT0wLGk9MTtwaChBLChmdW5jdGlvbihBKXt2YXIgdD1FKyssZT0hMTtDLnB1c2godm9pZCAwKSxpKyssSS5jYWxsKGcsQSkudGhlbigoZnVuY3Rpb24oQSl7ZXx8KGU9ITAsQ1t0XT1BLC0taXx8QihDKSl9KSxRKX0pKSwtLWl8fEIoQyl9KSk7cmV0dXJuIEMuZXJyb3ImJlEoQy52YWx1ZSksSS5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMsST1DeShnKSxCPUkucmVqZWN0LFE9YmgoKGZ1bmN0aW9uKCl7dmFyIFE9TWgoZy5yZXNvbHZlKTtwaChBLChmdW5jdGlvbihBKXtRLmNhbGwoZyxBKS50aGVuKEkucmVzb2x2ZSxCKX0pKX0pKTtyZXR1cm4gUS5lcnJvciYmQihRLnZhbHVlKSxJLnByb21pc2V9fSk7dmFyIGR5PXVnO09JKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se2NvcHlXaXRoaW46TGl9KSxkeSgiY29weVdpdGhpbiIpO3ZhciBGeT1zLGx5PXIsR3k9TEksUnk9dkUsVXk9Yy5mLGt5PXNJLmYsU3k9WnMsTnk9WW4sTXk9UGEsWXk9YUksSHk9ZyxweT1PZy5lbmZvcmNlLEp5PXBFLEx5PUZBKCJtYXRjaCIpLHZ5PWx5LlJlZ0V4cCxLeT12eS5wcm90b3R5cGUsbXk9L2EvZyx4eT0vYS9nLHF5PW5ldyB2eShteSkhPT1teSxieT1NeS5VTlNVUFBPUlRFRF9ZO2lmKEZ5JiZHeSgiUmVnRXhwIiwhcXl8fGJ5fHxIeSgoZnVuY3Rpb24oKXtyZXR1cm4geHlbTHldPSExLHZ5KG15KSE9bXl8fHZ5KHh5KT09eHl8fCIvYS9pIiE9dnkobXksImkiKX0pKSkpe2Zvcih2YXIgVHk9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPXRoaXMgaW5zdGFuY2VvZiBUeSxRPVN5KEEpLEM9dm9pZCAwPT09ZztpZighQiYmUSYmQS5jb25zdHJ1Y3Rvcj09PVR5JiZDKXJldHVybiBBO3F5P1EmJiFDJiYoQT1BLnNvdXJjZSk6QSBpbnN0YW5jZW9mIFR5JiYoQyYmKGc9TnkuY2FsbChBKSksQT1BLnNvdXJjZSksYnkmJihJPSEhZyYmZy5pbmRleE9mKCJ5Iik+LTEpJiYoZz1nLnJlcGxhY2UoL3kvZywiIikpO3ZhciBFPVJ5KHF5P25ldyB2eShBLGcpOnZ5KEEsZyksQj90aGlzOkt5LFR5KTtieSYmSSYmKHB5KEUpLnN0aWNreT0hMCk7cmV0dXJuIEV9LE95PWZ1bmN0aW9uKEEpe0EgaW4gVHl8fFV5KFR5LEEse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdnlbQV19LHNldDpmdW5jdGlvbihnKXt2eVtBXT1nfX0pfSxXeT1reSh2eSksWnk9MDtXeS5sZW5ndGg+Wnk7KU95KFd5W1p5KytdKTtLeS5jb25zdHJ1Y3Rvcj1UeSxUeS5wcm90b3R5cGU9S3ksWXkobHksIlJlZ0V4cCIsVHkpfUp5KCJSZWdFeHAiKTt2YXIgank9S0EuaW5jbHVkZXMsUHk9dWc7T0koe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7aW5jbHVkZXM6ZnVuY3Rpb24oQSl7cmV0dXJuIGp5KHRoaXMsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksUHkoImluY2x1ZGVzIik7dmFyIFh5PVBzLFZ5PWk7T0koe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6IVZzKCJpbmNsdWRlcyIpfSx7aW5jbHVkZXM6ZnVuY3Rpb24oQSl7cmV0dXJuISF+U3RyaW5nKFZ5KHRoaXMpKS5pbmRleE9mKFh5KEEpLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KTt2YXIgenk9QT0+ZnVuY3Rpb24oQSxnKXtpZihnLnN0YXJ0c1dpdGgoImRhdGE6Iikpe3ZhciBJLEI9Zy5yZXBsYWNlKC9eZGF0YTouKj9iYXNlNjQsLywiIik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEJ1ZmZlciYmImZ1bmN0aW9uIj09dHlwZW9mIEJ1ZmZlci5mcm9tKUk9QnVmZmVyLmZyb20oQiwiYmFzZTY0Iik7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YgYXRvYil0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBkZWNvZGUgYmFzZTY0LWVuY29kZWQgZGF0YSBVUkwsIEJ1ZmZlciBhbmQgYXRvYiBhcmUgbm90IHN1cHBvcnRlZCIpO3ZhciBRPWF0b2IoQik7ST1uZXcgVWludDhBcnJheShRLmxlbmd0aCk7Zm9yKHZhciBDPTA7QzxRLmxlbmd0aDtDKyspSVtDXT1RLmNoYXJDb2RlQXQoQyl9cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEksQSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEEuaW5zdGFuY2V9KSl9dmFyIEU9dm9pZCAwLGk9dm9pZCAwO3JldHVybiBmZXRjaChnKS50aGVuKChmdW5jdGlvbihnKXtyZXR1cm4gaT0oRT1nKS5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIil8fCIiLCJpbnN0YW50aWF0ZVN0cmVhbWluZyJpbiBXZWJBc3NlbWJseSYmaS5zdGFydHNXaXRoKCJhcHBsaWNhdGlvbi93YXNtIik/V2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoRSxBKTpFLmFycmF5QnVmZmVyKCl9KSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShnLEEpOmd9KSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEEuaW5zdGFuY2V9KSl9KEEsImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsQUdGemJRRUFBQUFCL0FJdVlBRi9BWDlnQVg4QVlBSi9md0YvWUFKL2Z3QmdBMzkvZndGL1lBWi9mMzkvZjM4QmYyQUZmMzkvZjM4QmYyQURmMzkvQUdBRWYzOS9md0JnQm45L2YzOS9md0JnQlg5L2YzOS9BR0FFZjM5L2Z3Ri9ZQWgvZjM5L2YzOS9md0YvWUFkL2YzOS9mMzkvQVg5Z0JYOStmbjUrQUdBQUFHQUhmMzkvZjM5L2Z3QmdCSDkvZjM4QmZtQUZmMzkvZjM0QmYyQUFBWDlnQkg5K2ZuOEFZQUovZmdCZ0JYOS9mbjkvQUdBS2YzOS9mMzkvZjM5L2Z3Ri9ZQXgvZjM5L2YzOS9mMzkvZjM4QmYyQUlmMzkvZjM5L2YzOEFZQTkvZjM5L2YzOS9mMzkvZjM5L2YzOEFZQXAvZjM5L2YzOS9mMzkvQUdBTGYzOS9mMzkvZjM5L2YzOEJmMkFHZjN4L2YzOS9BWDlnQjM5L2YzOS9mbjRCZjJBR2YzOS9mMzUrQVg5Z0JYOS9mMzk4QVg5Z0FuOThBR0FFZm41K2ZnRi9ZQUorZndGL1lBSitmZ0Y4WUFGL0FYeGdBMzUrZmdGL1lBTi9mMzhCZkdBRGYzOS9BWDFnQkg5L2YzNEJmbUFDZkg4QmZHQURmMzkrQUdBQ2ZuNEJmV0FDZjM4QmZnSXhDQUZoQVdFQUR3RmhBV0lBQmdGaEFXTUFBZ0ZoQVdRQUFnRmhBV1VBQUFGaEFXWUFCQUZoQVdjQUJ3RmhBV2dBQUFQTEJNa0VBZ0FBQWdNQUFRTUJBQUFBQXdNVER3NEFBQUVEQVFRQUFRQUFBUUFBQWdNQ0FnY09CZ2dLRkFNQ0FBTURBQUlEQUFNREFBNENCQVFBQXdRQUJBQUVBQUFBQXdNREF3UUFBQUVDRlFJSEJRTUdCZ3NDQUNFQ0FBd01CUWdDQUFBQUF3TURBd0FJQUFnQUJ3QUFBQU1DQWdNREFpSVVBQUFFQXdJQUFBTUFCd0lDQUFBWEFCY0FJd01BQUFNQUFRQUJCd0lIQ0FBREFnSUtBd0lCQkFNQUJ3SURBQUFEQXhBRUVBSU5BZzBMQWdzQUFBSVZBQUFFQ0FJQUNRY0lBZ2NEQ2dFQUJBWURBUUFBQXdRWUNnUVlDZ2dSQWdBRUpBNGxKZ0FCQVFBQUNnOEFBQWNCQXhVQkJBZ0NBZ29aQUFjSEdRQUJBd2NDQXdFQ0V3RUlCd29BQUFBQkFBWUhEQUFCQXdFQUFBTUJBUUVBQkJvYkdoc0FBZ0FBQWdNY0F3SUFBQWNESEFNREFnSURDUWNLQ1FrS0NRa0FFQVFRQXdJRkJ3UUFDQ2NvRVFzRkN4RUxBQUlIRVNrQUN3QUJBd0lDQWdjRUFBWXFBZ0FDQWdRckxDMElEZ0lPRkE0QUFRSUNBQUFBQndNREJ3TURBUUFBQWdNQ0FBQUNBUUFDQUFFQkFnUUFBQVFJRmdRQkFRQUFBUk1CQVFBSkNRa0tDZ29BQ0FnSUJBOEJBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQU1EQXdNREF3QUFBUUVHREF3R0RBd0FCZ0FHREF3QkJnWUVDd1FDQkFJQkJnUUxCQUlFQWdzTEN3UUJBUUVCQ1FrRkhnVWVEUTBORFEwTkRBVUZCUVVGQnd3RkJRVUZCUVlmSUJJR0VnY0dCZ1lmSUJJR0Vna0dCZ1VGQlFVRkJRVUZCUVVGQlFVRkFBVUZCUWtGQkFnR0JBZ0lCZ1FESFFRQkFRQUJBQWdCRmdJQ0FBQUJBUUFBQVFBQkFRQUVCQWNCY0FIQkFzRUNCUVlCQVRDQWdBSUdDQUYvQVVHZzF3RUxCMGdQQVdrQ0FBRnFBT2NCQVdzQUdRRnNBQkFCYlFEYUFnRnVBTFFFQVc4QXJnUUJjQUNaQkFGeEFKQUVBWElBckFFQmN3Q0RCQUYwQVFBQmRRQ1ZBd0YyQUpRREFYY0Frd01KeHdRQkFFRUJDOEFDelFTcUJNRUJ2QUdRQTZ3Qmp3T09BNDBEVDArTUE0c0RpZ09JQTlBRWlBUGxBWWNEendUT0JPUUIrUUxNQk1zRXVBSGpBY29FeUFUSkJNY0UwQUhCQk1JRXdBVEZCTVFFd3dSK2tRT0tBZUlCdndTK0JMMEV2QVRoQWJzRXVnUzVCTGdFdHdRUXlRSHZBKzBEd0FPK0E3d0R1Z080QTdZRHRBT3lBN0FEcmdPc0E2b0RxQU9tQTVNQzhBUHVBNDRDNFFQZ0E5OEQzZ1BkQTY4QzNBUGJBOW9EbUFMWUE5Y0QxZ1BWQTlRRFQ5TUQwZ09IQXNzRHlRUElBOGNEeFFQREE0WUN5Z1BHQkpJRHhnUEVBOElEWmlBZzdBUHJBK29ENlFQb0ErY0Q1Z1BsQTY4QzVBUGpBK0lESUkwQ2pRTE1BYjBCdlFIWkE3MEJJTkVEMEFQTUFVOVB6d09JQWlET0E4MER6QUZQVDh3RGlBSm1JTFlFdFFTekJHWWdzZ1N4QkxBRUlLOEVyUVNzQktzRXlBTElBcWtFcUFTbkJLWUVwUVFncEFTakJLSUVvUVMvQXI4Q29BU2ZCSjRFblFTY0JDQ2JCSm9FbUFTWEJKWUVsUVNVQkpNRUlKSUVrUVNQQkk0RWpRU01CSXNFaWdSbUlMa0NpUVNJQkljRWhnU0ZCSVFFd1FPOUE3a0RyUU9wQTdVRHNRTm1JTGtDZ2dTQkJJQUUvd1ArQS8wRHZ3TzdBN2NEcXdPbkE3TURyd1BLQVlJQy9BUEtBWUlDK3dNZ3F3R3JBV3RyYTYwQ1QycHFJS3NCcXdGcmEydXRBazlxYWlDcUFhb0JhNmtCcVFHc0FrOXFhaUNxQWFvQmE2a0JxUUdzQWs5cWFpRDZBL2tESVBnRDl3TWc5Z1AxQXlEMEEvTURJSmtDOGdPc0FTQ1pBdkVEckFGbXBRT2tBMllneVFISkFhTURtUU9jQTZJRElKb0RuUU9oQXlDYkE1NERvQU5tSUpnRGx3T2ZBNVlEQ3FUZkI4a0VCd0FnQUNBQmVBc1VBQ0FBRURVRVFDQUFLQUlFRHdzZ0FDMEFDd3NkQVFGL0lBQVFOUVJBSUFBb0FnQWhBU0FBRUgwYUlBRVFFQXNnQUFzSkFDQUFFQTBnQVdvTDBnRUJCSDhDUUNBQklBQVFDU0lEU3dSQUl3QkJFR3NpQWlRQUlBRWdBMnNpQXdSQUlBQVFFeUVFSUFBUUNTSUJJQU5xSVFVZ0F5QUVJQUZyU3dSQUlBQWdCQ0FGSUFScklBRWdBUkRJQVFzZ0FTQUFFQTBpQkdvZ0EwRUFFUGNCSUFBZ0JSQjRJQUpCQURvQUR5QUVJQVZxSUFKQkQyb1FOQXNNQVFzakFFRVFheUlDSkFBQ1FDQUFFRFVFUUNBQUtBSUFJUU1nQWtFQU9nQVBJQUVnQTJvZ0FrRVBhaEEwSUFBZ0FSQTVEQUVMSUFKQkFEb0FEaUFBSUFGcUlBSkJEbW9RTkNBQUlBRVFPZ3NMSUFKQkVHb2tBQXNSQUNBQUVEVUVRQ0FBS0FJQUR3c2dBQXNLQUNBQUtBSUFFS01CQ3d3QUlBQWdBVUVjYWhDUUFndk1EQUVIZndKQUlBQkZEUUFnQUVFSWF5SURJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBeUFES0FJQUlnRnJJZ05CNklFQktBSUFTUTBCSUFBZ0FXb2hBQ0FEUWV5QkFTZ0NBRWNFUUNBQlFmOEJUUVJBSUFNb0FnZ2lBaUFCUVFOMklnUkJBM1JCZ0lJQmFrWWFJQUlnQXlnQ0RDSUJSZ1JBUWRpQkFVSFlnUUVvQWdCQmZpQUVkM0UyQWdBTUF3c2dBaUFCTmdJTUlBRWdBallDQ0F3Q0N5QURLQUlZSVFZQ1FDQURJQU1vQWd3aUFVY0VRQ0FES0FJSUlnSWdBVFlDRENBQklBSTJBZ2dNQVFzQ1FDQURRUlJxSWdJb0FnQWlCQTBBSUFOQkVHb2lBaWdDQUNJRURRQkJBQ0VCREFFTEEwQWdBaUVISUFRaUFVRVVhaUlDS0FJQUlnUU5BQ0FCUVJCcUlRSWdBU2dDRUNJRURRQUxJQWRCQURZQ0FBc2dCa1VOQVFKQUlBTWdBeWdDSENJQ1FRSjBRWWlFQVdvaUJDZ0NBRVlFUUNBRUlBRTJBZ0FnQVEwQlFkeUJBVUhjZ1FFb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQmtFUVFSUWdCaWdDRUNBRFJodHFJQUUyQWdBZ0FVVU5BZ3NnQVNBR05nSVlJQU1vQWhBaUFnUkFJQUVnQWpZQ0VDQUNJQUUyQWhnTElBTW9BaFFpQWtVTkFTQUJJQUkyQWhRZ0FpQUJOZ0lZREFFTElBVW9BZ1FpQVVFRGNVRURSdzBBUWVDQkFTQUFOZ0lBSUFVZ0FVRitjVFlDQkNBRElBQkJBWEkyQWdRZ0FDQURhaUFBTmdJQUR3c2dBeUFGVHcwQUlBVW9BZ1FpQVVFQmNVVU5BQUpBSUFGQkFuRkZCRUFnQlVId2dRRW9BZ0JHQkVCQjhJRUJJQU0yQWdCQjVJRUJRZVNCQVNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQURRZXlCQVNnQ0FFY05BMEhnZ1FGQkFEWUNBRUhzZ1FGQkFEWUNBQThMSUFWQjdJRUJLQUlBUmdSQVFleUJBU0FETmdJQVFlQ0JBVUhnZ1FFb0FnQWdBR29pQURZQ0FDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFEd3NnQVVGNGNTQUFhaUVBQWtBZ0FVSC9BVTBFUUNBRktBSUlJZ0lnQVVFRGRpSUVRUU4wUVlDQ0FXcEdHaUFDSUFVb0Fnd2lBVVlFUUVIWWdRRkIySUVCS0FJQVFYNGdCSGR4TmdJQURBSUxJQUlnQVRZQ0RDQUJJQUkyQWdnTUFRc2dCU2dDR0NFR0FrQWdCU0FGS0FJTUlnRkhCRUFnQlNnQ0NDSUNRZWlCQVNnQ0FFa2FJQUlnQVRZQ0RDQUJJQUkyQWdnTUFRc0NRQ0FGUVJScUlnSW9BZ0FpQkEwQUlBVkJFR29pQWlnQ0FDSUVEUUJCQUNFQkRBRUxBMEFnQWlFSElBUWlBVUVVYWlJQ0tBSUFJZ1FOQUNBQlFSQnFJUUlnQVNnQ0VDSUVEUUFMSUFkQkFEWUNBQXNnQmtVTkFBSkFJQVVnQlNnQ0hDSUNRUUowUVlpRUFXb2lCQ2dDQUVZRVFDQUVJQUUyQWdBZ0FRMEJRZHlCQVVIY2dRRW9BZ0JCZmlBQ2QzRTJBZ0FNQWdzZ0JrRVFRUlFnQmlnQ0VDQUZSaHRxSUFFMkFnQWdBVVVOQVFzZ0FTQUdOZ0lZSUFVb0FoQWlBZ1JBSUFFZ0FqWUNFQ0FDSUFFMkFoZ0xJQVVvQWhRaUFrVU5BQ0FCSUFJMkFoUWdBaUFCTmdJWUN5QURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFJQU5CN0lFQktBSUFSdzBCUWVDQkFTQUFOZ0lBRHdzZ0JTQUJRWDV4TmdJRUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQUxJQUJCL3dGTkJFQWdBRUVEZGlJQlFRTjBRWUNDQVdvaEFBSi9RZGlCQVNnQ0FDSUNRUUVnQVhRaUFYRkZCRUJCMklFQklBRWdBbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUNJQUFnQXpZQ0NDQUNJQU0yQWd3Z0F5QUFOZ0lNSUFNZ0FqWUNDQThMUVI4aEFpQURRZ0EzQWhBZ0FFSC8vLzhIVFFSQUlBQkJDSFlpQVNBQlFZRCtQMnBCRUhaQkNIRWlBWFFpQWlBQ1FZRGdIMnBCRUhaQkJIRWlBblFpQkNBRVFZQ0FEMnBCRUhaQkFuRWlCSFJCRDNZZ0FTQUNjaUFFY21zaUFVRUJkQ0FBSUFGQkZXcDJRUUZ4Y2tFY2FpRUNDeUFESUFJMkFod2dBa0VDZEVHSWhBRnFJUUVDUUFKQUFrQkIzSUVCS0FJQUlnUkJBU0FDZENJSGNVVUVRRUhjZ1FFZ0JDQUhjallDQUNBQklBTTJBZ0FnQXlBQk5nSVlEQUVMSUFCQkFFRVpJQUpCQVhacklBSkJIMFliZENFQ0lBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFKQkhYWWhBU0FDUVFGMElRSWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBRE5nSVFJQU1nQkRZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUVLQUlJSWdBZ0F6WUNEQ0FFSUFNMkFnZ2dBMEVBTmdJWUlBTWdCRFlDRENBRElBQTJBZ2dMUWZpQkFVSDRnUUVvQWdCQkFXc2lBRUYvSUFBYk5nSUFDd3NrQVFGL0l3QkJFR3NpQVNRQUlBQkNBRGNDQUNBQVFRQTJBZ2dnQVVFUWFpUUFJQUFMaXdJQ0EzOENmZ0pBSUFBcEEzQWlCRkJGSUFRZ0FDa0RlQ0FBS0FJRUlnRWdBQ2dDTENJQ2E2eDhJZ1ZYY1VVRVFDTUFRUkJySWdJa0FFRi9JUUVDUUNBQUVPa0JEUUFnQUNBQ1FROXFRUUVnQUNnQ0lCRUVBRUVCUncwQUlBSXRBQThoQVFzZ0FrRVFhaVFBSUFFaUEwRUFUZzBCSUFBb0FnUWhBU0FBS0FJc0lRSUxJQUJDZnpjRGNDQUFJQUUyQW1nZ0FDQUZJQUlnQVd1c2ZEY0RlRUYvRHdzZ0JVSUJmQ0VGSUFBb0FnUWhBU0FBS0FJSUlRSUNRQ0FBS1FOd0lnUlFEUUFnQkNBRmZTSUVJQUlnQVd1c1dRMEFJQUVnQktkcUlRSUxJQUFnQWpZQ2FDQUFJQVVnQUNnQ0xDSUFJQUZyckh3M0EzZ2dBQ0FCVHdSQUlBRkJBV3NnQXpvQUFBc2dBd3NaQVFGL1FRb2hBU0FBRURVRWZ5QUFFSDFCQVdzRklBRUxDK01CQVFaL0lBRVEwd0loQXlNQVFSQnJJZ1VrQUFKQUlBTWdBQ0lFRU04QklnQk5CRUFnQkJBTklnWWhBaUFESWdBRWZ3SkFJQUVnQWtZTkFDQUNJQUZySUFCQkFuUlBCRUFnQUVVTkFRTkFJQUlnQVNnQ0FEWUNBQ0FDUVFScUlRSWdBVUVFYWlFQklBQkJBV3NpQUEwQUN3d0JDeUFBUlEwQUEwQWdBaUFBUVFGcklnQkJBblFpQjJvZ0FTQUhhaWdDQURZQ0FDQUFEUUFMQzBFQUJTQUNDeG9nQlVFQU5nSU1JQVlnQTBFQ2RHb2dCVUVNYWhBeklBUWdBeEI0REFFTElBUWdBQ0FESUFCcklBUVFDU0lBUVFBZ0FDQURJQUVROUFFTElBVkJFR29rQUF0ekFRTi9JQUVRa2dFaEFpTUFRUkJySWdRa0FBSkFJQUlnQUJBVElnTk5CRUFnQUJBTklRTWdBZ1JBSUFNZ0FTQUNFT29CQ3lBRVFRQTZBQThnQWlBRGFpQUVRUTlxRURRZ0FDQUNFSGdNQVFzZ0FDQURJQUlnQTJzZ0FCQUpJZ0JCQUNBQUlBSWdBUkQ0QVFzZ0JFRVFhaVFBQyswQ0FRUi9Ba0JCM0lnQkxRQUFRUUZ4RFFCQjNJZ0JFQ1JGRFFBakFFRWdheUlDSkFBQ1FBSkFBMEFnQWtFSWFpQUFRUUowYWdKL1FRRWdBSFJCLy8vLy93ZHhJZ05CQVhKRkJFQWdBRUVDZENnQ0FBd0JDeUFBUVpvZVFhUWZJQU1iRU9BQ0N5SUROZ0lBSUFOQmYwY0VRQ0FBUVFGcUlnQkJCa1lOQWd3QkN3c01BUXRCQUJEZkFrVUVRRUhJTFNFQklBSkJDR3BCeUMwUW53RkZEUUZCNEMwaEFTQUNRUWhxUWVBdEVKOEJSUTBCUVFBaEFFR3dod0V0QUFCRkJFQURRQ0FBUVFKMFFZQ0hBV29nQUVHa0h4RGdBallDQUNBQVFRRnFJZ0JCQmtjTkFBdEJzSWNCUVFFNkFBQkJtSWNCUVlDSEFTZ0NBRFlDQUF0QmdJY0JJUUVnQWtFSWFrR0Fod0VRbndGRkRRRkJtSWNCSVFFZ0FrRUlha0dZaHdFUW53RkZEUUZCR0JBWklnRkZEUUVMSUFFZ0Fpa0RDRGNDQUNBQklBSXBBeGczQWhBZ0FTQUNLUU1RTndJSUN5QUNRU0JxSkFCQjJJZ0JJQUUyQWdCQjNJZ0JFQ01MUWRpSUFTZ0NBQXNGQUJBQUFBdmZDZ0lGZnc5K0l3QkI0QUJySWdVa0FDQUVRdi8vLy8vLy96K0RJZzFDRDRZZ0EwSXhpSVFoRGlBQ0lBU0ZRb0NBZ0lDQWdJQ0FnSCtESVFvZ0FrTC8vLy8vLy84L2d5SUxRaUNJSVE4Z0RVSVJpQ0VRSUFSQ01JaW5RZi8vQVhFaEJ3SkFBa0FnQWtJd2lLZEIvLzhCY1NJSlFRRnJRZjMvQVUwRVFDQUhRUUZyUWY3L0FVa05BUXNnQVZBZ0FrTC8vLy8vLy8vLy8vOEFneUlNUW9DQWdJQ0FnTUQvL3dCVUlBeENnSUNBZ0lDQXdQLy9BRkViUlFSQUlBSkNnSUNBZ0lDQUlJUWhDZ3dDQ3lBRFVDQUVRdi8vLy8vLy8vLy8vd0NESWdKQ2dJQ0FnSUNBd1AvL0FGUWdBa0tBZ0lDQWdJREEvLzhBVVJ0RkJFQWdCRUtBZ0lDQWdJQWdoQ0VLSUFNaEFRd0NDeUFCSUF4Q2dJQ0FnSUNBd1AvL0FJV0VVQVJBSUFJZ0E0UlFCRUJDZ0lDQWdJQ0E0UC8vQUNFS1FnQWhBUXdEQ3lBS1FvQ0FnSUNBZ01ELy93Q0VJUXBDQUNFQkRBSUxJQU1nQWtLQWdJQ0FnSURBLy84QWhZUlFCRUFnQVNBTWhDRUNRZ0FoQVNBQ1VBUkFRb0NBZ0lDQWdPRC8vd0FoQ2d3REN5QUtRb0NBZ0lDQWdNRC8vd0NFSVFvTUFnc2dBU0FNaEZBRVFFSUFJUUVNQWdzZ0FpQURoRkFFUUVJQUlRRU1BZ3NnREVMLy8vLy8vLzgvV0FSQUlBVkIwQUJxSUFFZ0N5QUJJQXNnQzFBaUJodDVJQVpCQm5TdGZLY2lCa0VQYXhBdlFSQWdCbXNoQmlBRktRTllJZ3RDSUlnaER5QUZLUU5RSVFFTElBSkMvLy8vLy8vL1AxWU5BQ0FGUVVCcklBTWdEU0FESUEwZ0RWQWlDQnQ1SUFoQkJuU3RmS2NpQ0VFUGF4QXZJQVlnQ0d0QkVHb2hCaUFGS1FOSUlnSkNENFlnQlNrRFFDSURRakdJaENFT0lBSkNFWWdoRUFzZ0EwSVBoa0tBZ1A3L0Q0TWlBaUFCUWlDSUlnUitJaElnQTBJUmlFTC8vLy8vRDRNaURDQUJRdi8vLy84UGd5SUJmbndpRVVJZ2hpSU5JQUVnQW41OElnTWdEVlN0SUFJZ0MwTC8vLy8vRDRNaUMzNGlGU0FFSUF4K2ZDSVRJQTVDLy8vLy93K0RJZzBnQVg1OEloUWdFU0FTVksxQ0lJWWdFVUlnaUlSOEloRWdBaUFQUW9DQUJJUWlEbjRpRmlBTElBeCtmQ0lQSUFRZ0RYNThJaElnRUVMLy8vLy9CNE5DZ0lDQWdBaUVJZ0lnQVg1OEloQkNJSVo4SWhkOElRRWdCeUFKYWlBR2FrSC8vd0JySVFZQ1FDQUxJQTErSWhnZ0RDQU9mbndpRENBWVZLMGdEQ0FDSUFSK2ZDSUVJQXhVclh3Z0FpQU9mbndnQkNBRUlCTWdGVlN0SUJNZ0ZGYXRmSHdpQkZhdGZDQUNJQXQrSWdzZ0RTQU9mbndpQWlBTFZLMUNJSVlnQWtJZ2lJUjhJQVFnQWtJZ2hud2lBaUFFVksxOElBSWdBaUFRSUJKVXJTQVBJQlpVclNBUElCSldyWHg4UWlDR0lCQkNJSWlFZkNJQ1ZxMThJQUlnQWlBUklCUlVyU0FSSUJkV3JYeDhJZ0pXclh3aUJFS0FnSUNBZ0lEQUFJTlFSUVJBSUFaQkFXb2hCZ3dCQ3lBRFFqK0lJUXNnQkVJQmhpQUNRaitJaENFRUlBSkNBWVlnQVVJL2lJUWhBaUFEUWdHR0lRTWdDeUFCUWdHR2hDRUJDeUFHUWYvL0FVNEVRQ0FLUW9DQWdJQ0FnTUQvL3dDRUlRcENBQ0VCREFFTEFuNGdCa0VBVEFSQVFRRWdCbXNpQjBHQUFVOEVRRUlBSVFFTUF3c2dCVUV3YWlBRElBRWdCa0gvQUdvaUJoQXZJQVZCSUdvZ0FpQUVJQVlRTHlBRlFSQnFJQU1nQVNBSEVId2dCU0FDSUFRZ0J4QjhJQVVwQXpBZ0JTa0RPSVJDQUZLdElBVXBBeUFnQlNrREVJU0VJUU1nQlNrREtDQUZLUU1ZaENFQklBVXBBd0FoQWlBRktRTUlEQUVMSUFSQy8vLy8vLy8vUDRNZ0JxMUNNSWFFQ3lBS2hDRUtJQU5RSUFGQ0FGa2dBVUtBZ0lDQWdJQ0FnSUIvVVJ0RkJFQWdDaUFDUWdGOElnRWdBbFN0ZkNFS0RBRUxJQU1nQVVLQWdJQ0FnSUNBZ0lCL2hZUlFSUVJBSUFJaEFRd0JDeUFLSUFJZ0FrSUJnM3dpQVNBQ1ZLMThJUW9MSUFBZ0FUY0RBQ0FBSUFvM0F3Z2dCVUhnQUdva0FBdUFMZ0VMZnlNQVFSQnJJZ3NrQUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBRUgwQVUwRVFFSFlnUUVvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUIwRURkaUlDZGlJQlFRTnhCRUFnQVVGL2MwRUJjU0FDYWlJRFFRTjBJZ0ZCaUlJQmFpZ0NBQ0lFUVFocUlRQUNRQ0FFS0FJSUlnSWdBVUdBZ2dGcUlnRkdCRUJCMklFQklBWkJmaUFEZDNFMkFnQU1BUXNnQWlBQk5nSU1JQUVnQWpZQ0NBc2dCQ0FEUVFOMElnRkJBM0kyQWdRZ0FTQUVhaUlCSUFFb0FnUkJBWEkyQWdRTURBc2dCMEhnZ1FFb0FnQWlDazBOQVNBQkJFQUNRRUVDSUFKMElnQkJBQ0FBYTNJZ0FTQUNkSEVpQUVFQUlBQnJjVUVCYXlJQUlBQkJESFpCRUhFaUFuWWlBVUVGZGtFSWNTSUFJQUp5SUFFZ0FIWWlBVUVDZGtFRWNTSUFjaUFCSUFCMklnRkJBWFpCQW5FaUFISWdBU0FBZGlJQlFRRjJRUUZ4SWdCeUlBRWdBSFpxSWdOQkEzUWlBRUdJZ2dGcUtBSUFJZ1FvQWdnaUFTQUFRWUNDQVdvaUFFWUVRRUhZZ1FFZ0JrRitJQU4zY1NJR05nSUFEQUVMSUFFZ0FEWUNEQ0FBSUFFMkFnZ0xJQVJCQ0dvaEFDQUVJQWRCQTNJMkFnUWdCQ0FIYWlJQ0lBTkJBM1FpQVNBSGF5SURRUUZ5TmdJRUlBRWdCR29nQXpZQ0FDQUtCRUFnQ2tFRGRpSUJRUU4wUVlDQ0FXb2hCVUhzZ1FFb0FnQWhCQUovSUFaQkFTQUJkQ0lCY1VVRVFFSFlnUUVnQVNBR2NqWUNBQ0FGREFFTElBVW9BZ2dMSVFFZ0JTQUVOZ0lJSUFFZ0JEWUNEQ0FFSUFVMkFnd2dCQ0FCTmdJSUMwSHNnUUVnQWpZQ0FFSGdnUUVnQXpZQ0FBd01DMEhjZ1FFb0FnQWlDVVVOQVNBSlFRQWdDV3R4UVFGcklnQWdBRUVNZGtFUWNTSUNkaUlCUVFWMlFRaHhJZ0FnQW5JZ0FTQUFkaUlCUVFKMlFRUnhJZ0J5SUFFZ0FIWWlBVUVCZGtFQ2NTSUFjaUFCSUFCMklnRkJBWFpCQVhFaUFISWdBU0FBZG1wQkFuUkJpSVFCYWlnQ0FDSUJLQUlFUVhoeElBZHJJUU1nQVNFQ0EwQUNRQ0FDS0FJUUlnQkZCRUFnQWlnQ0ZDSUFSUTBCQ3lBQUtBSUVRWGh4SUFkcklnSWdBeUFDSUFOSklnSWJJUU1nQUNBQklBSWJJUUVnQUNFQ0RBRUxDeUFCS0FJWUlRZ2dBU0FCS0FJTUlnUkhCRUFnQVNnQ0NDSUFRZWlCQVNnQ0FFa2FJQUFnQkRZQ0RDQUVJQUEyQWdnTUN3c2dBVUVVYWlJQ0tBSUFJZ0JGQkVBZ0FTZ0NFQ0lBUlEwRElBRkJFR29oQWdzRFFDQUNJUVVnQUNJRVFSUnFJZ0lvQWdBaUFBMEFJQVJCRUdvaEFpQUVLQUlRSWdBTkFBc2dCVUVBTmdJQURBb0xRWDhoQnlBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFSFFkeUJBU2dDQUNJSlJRMEFRUUFnQjJzaEF3SkFBa0FDUUFKL1FRQWdCMEdBQWtrTkFCcEJIeUFIUWYvLy93ZExEUUFhSUFCQkNIWWlBQ0FBUVlEK1AycEJFSFpCQ0hFaUFuUWlBQ0FBUVlEZ0gycEJFSFpCQkhFaUFYUWlBQ0FBUVlDQUQycEJFSFpCQW5FaUFIUkJEM1lnQVNBQ2NpQUFjbXNpQUVFQmRDQUhJQUJCRldwMlFRRnhja0VjYWdzaUJrRUNkRUdJaEFGcUtBSUFJZ0pGQkVCQkFDRUFEQUVMUVFBaEFDQUhRUUJCR1NBR1FRRjJheUFHUVI5R0czUWhBUU5BQWtBZ0FpZ0NCRUY0Y1NBSGF5SUZJQU5QRFFBZ0FpRUVJQVVpQXcwQVFRQWhBeUFDSVFBTUF3c2dBQ0FDS0FJVUlnVWdCU0FDSUFGQkhYWkJCSEZxS0FJUUlnSkdHeUFBSUFVYklRQWdBVUVCZENFQklBSU5BQXNMSUFBZ0JISkZCRUJCQUNFRVFRSWdCblFpQUVFQUlBQnJjaUFKY1NJQVJRMERJQUJCQUNBQWEzRkJBV3NpQUNBQVFReDJRUkJ4SWdKMklnRkJCWFpCQ0hFaUFDQUNjaUFCSUFCMklnRkJBblpCQkhFaUFISWdBU0FBZGlJQlFRRjJRUUp4SWdCeUlBRWdBSFlpQVVFQmRrRUJjU0lBY2lBQklBQjJha0VDZEVHSWhBRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBSGF5SUJJQU5KSVFJZ0FTQURJQUliSVFNZ0FDQUVJQUliSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRZUNCQVNnQ0FDQUhhMDhOQUNBRUtBSVlJUVlnQkNBRUtBSU1JZ0ZIQkVBZ0JDZ0NDQ0lBUWVpQkFTZ0NBRWthSUFBZ0FUWUNEQ0FCSUFBMkFnZ01DUXNnQkVFVWFpSUNLQUlBSWdCRkJFQWdCQ2dDRUNJQVJRMERJQVJCRUdvaEFnc0RRQ0FDSVFVZ0FDSUJRUlJxSWdJb0FnQWlBQTBBSUFGQkVHb2hBaUFCS0FJUUlnQU5BQXNnQlVFQU5nSUFEQWdMSUFkQjRJRUJLQUlBSWdKTkJFQkI3SUVCS0FJQUlRTUNRQ0FDSUFkcklnRkJFRThFUUVIZ2dRRWdBVFlDQUVIc2dRRWdBeUFIYWlJQU5nSUFJQUFnQVVFQmNqWUNCQ0FDSUFOcUlBRTJBZ0FnQXlBSFFRTnlOZ0lFREFFTFFleUJBVUVBTmdJQVFlQ0JBVUVBTmdJQUlBTWdBa0VEY2pZQ0JDQUNJQU5xSWdBZ0FDZ0NCRUVCY2pZQ0JBc2dBMEVJYWlFQURBb0xJQWRCNUlFQktBSUFJZ2hKQkVCQjVJRUJJQWdnQjJzaUFUWUNBRUh3Z1FGQjhJRUJLQUlBSWdJZ0Iyb2lBRFlDQUNBQUlBRkJBWEkyQWdRZ0FpQUhRUU55TmdJRUlBSkJDR29oQUF3S0MwRUFJUUFnQjBFdmFpSUpBbjlCc0lVQktBSUFCRUJCdUlVQktBSUFEQUVMUWJ5RkFVSi9Od0lBUWJTRkFVS0FvSUNBZ0lBRU53SUFRYkNGQVNBTFFReHFRWEJ4UWRpcTFhb0ZjellDQUVIRWhRRkJBRFlDQUVHVWhRRkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ1Z4SWdJZ0IwME5DVUdRaFFFb0FnQWlCQVJBUVlpRkFTZ0NBQ0lESUFKcUlnRWdBMDBnQVNBRVMzSU5DZ3RCbElVQkxRQUFRUVJ4RFFRQ1FBSkFRZkNCQVNnQ0FDSURCRUJCbUlVQklRQURRQ0FESUFBb0FnQWlBVThFUUNBQklBQW9BZ1JxSUFOTERRTUxJQUFvQWdnaUFBMEFDd3RCQUJCeUlnRkJmMFlOQlNBQ0lRWkJ0SVVCS0FJQUlnTkJBV3NpQUNBQmNRUkFJQUlnQVdzZ0FDQUJha0VBSUFOcmNXb2hCZ3NnQmlBSFRTQUdRZjcvLy84SFMzSU5CVUdRaFFFb0FnQWlCQVJBUVlpRkFTZ0NBQ0lESUFacUlnQWdBMDBnQUNBRVMzSU5CZ3NnQmhCeUlnQWdBVWNOQVF3SEN5QUdJQWhySUFWeElnWkIvdi8vL3dkTERRUWdCaEJ5SWdFZ0FDZ0NBQ0FBS0FJRWFrWU5BeUFCSVFBTElBQkJmMFlnQjBFd2FpQUdUWEpGQkVCQnVJVUJLQUlBSWdFZ0NTQUdhMnBCQUNBQmEzRWlBVUgrLy8vL0Iwc0VRQ0FBSVFFTUJ3c2dBUkJ5UVg5SEJFQWdBU0FHYWlFR0lBQWhBUXdIQzBFQUlBWnJFSElhREFRTElBQWlBVUYvUncwRkRBTUxRUUFoQkF3SEMwRUFJUUVNQlFzZ0FVRi9SdzBDQzBHVWhRRkJsSVVCS0FJQVFRUnlOZ0lBQ3lBQ1FmNy8vLzhIU3cwQklBSVFjaUlCUVg5R1FRQVFjaUlBUVg5R2NpQUFJQUZOY2cwQklBQWdBV3NpQmlBSFFTaHFUUTBCQzBHSWhRRkJpSVVCS0FJQUlBWnFJZ0EyQWdCQmpJVUJLQUlBSUFCSkJFQkJqSVVCSUFBMkFnQUxBa0FDUUFKQVFmQ0JBU2dDQUNJRkJFQkJtSVVCSVFBRFFDQUJJQUFvQWdBaUF5QUFLQUlFSWdKcVJnMENJQUFvQWdnaUFBMEFDd3dDQzBIb2dRRW9BZ0FpQUVFQUlBQWdBVTBiUlFSQVFlaUJBU0FCTmdJQUMwRUFJUUJCbklVQklBWTJBZ0JCbUlVQklBRTJBZ0JCK0lFQlFYODJBZ0JCL0lFQlFiQ0ZBU2dDQURZQ0FFR2toUUZCQURZQ0FBTkFJQUJCQTNRaUEwR0lnZ0ZxSUFOQmdJSUJhaUlDTmdJQUlBTkJqSUlCYWlBQ05nSUFJQUJCQVdvaUFFRWdSdzBBQzBIa2dRRWdCa0VvYXlJRFFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUFheUlDTmdJQVFmQ0JBU0FBSUFGcUlnQTJBZ0FnQUNBQ1FRRnlOZ0lFSUFFZ0EycEJLRFlDQkVIMGdRRkJ3SVVCS0FJQU5nSUFEQUlMSUFBdEFBeEJDSEVnQXlBRlMzSWdBU0FGVFhJTkFDQUFJQUlnQm1vMkFnUkI4SUVCSUFWQmVDQUZhMEVIY1VFQUlBVkJDR3BCQjNFYklnQnFJZ0kyQWdCQjVJRUJRZVNCQVNnQ0FDQUdhaUlCSUFCcklnQTJBZ0FnQWlBQVFRRnlOZ0lFSUFFZ0JXcEJLRFlDQkVIMGdRRkJ3SVVCS0FJQU5nSUFEQUVMUWVpQkFTZ0NBQ0FCU3dSQVFlaUJBU0FCTmdJQUN5QUJJQVpxSVFKQm1JVUJJUUFDUUFKQUFrQUNRQUpBQWtBRFFDQUNJQUFvQWdCSEJFQWdBQ2dDQ0NJQURRRU1BZ3NMSUFBdEFBeEJDSEZGRFFFTFFaaUZBU0VBQTBBZ0JTQUFLQUlBSWdKUEJFQWdBaUFBS0FJRWFpSUVJQVZMRFFNTElBQW9BZ2doQUF3QUN3QUxJQUFnQVRZQ0FDQUFJQUFvQWdRZ0JtbzJBZ1FnQVVGNElBRnJRUWR4UVFBZ0FVRUlha0VIY1J0cUlna2dCMEVEY2pZQ0JDQUNRWGdnQW10QkIzRkJBQ0FDUVFocVFRZHhHMm9pQmlBSElBbHFJZ2hySVFJZ0JTQUdSZ1JBUWZDQkFTQUlOZ0lBUWVTQkFVSGtnUUVvQWdBZ0Ftb2lBRFlDQUNBSUlBQkJBWEkyQWdRTUF3c2dCa0hzZ1FFb0FnQkdCRUJCN0lFQklBZzJBZ0JCNElFQlFlQ0JBU2dDQUNBQ2FpSUFOZ0lBSUFnZ0FFRUJjallDQkNBQUlBaHFJQUEyQWdBTUF3c2dCaWdDQkNJQVFRTnhRUUZHQkVBZ0FFRjRjU0VGQWtBZ0FFSC9BVTBFUUNBR0tBSUlJZ01nQUVFRGRpSUFRUU4wUVlDQ0FXcEdHaUFESUFZb0Fnd2lBVVlFUUVIWWdRRkIySUVCS0FJQVFYNGdBSGR4TmdJQURBSUxJQU1nQVRZQ0RDQUJJQU0yQWdnTUFRc2dCaWdDR0NFSEFrQWdCaUFHS0FJTUlnRkhCRUFnQmlnQ0NDSUFJQUUyQWd3Z0FTQUFOZ0lJREFFTEFrQWdCa0VVYWlJQUtBSUFJZ01OQUNBR1FSQnFJZ0FvQWdBaUF3MEFRUUFoQVF3QkN3TkFJQUFoQkNBRElnRkJGR29pQUNnQ0FDSUREUUFnQVVFUWFpRUFJQUVvQWhBaUF3MEFDeUFFUVFBMkFnQUxJQWRGRFFBQ1FDQUdJQVlvQWh3aUEwRUNkRUdJaEFGcUlnQW9BZ0JHQkVBZ0FDQUJOZ0lBSUFFTkFVSGNnUUZCM0lFQktBSUFRWDRnQTNkeE5nSUFEQUlMSUFkQkVFRVVJQWNvQWhBZ0JrWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0J6WUNHQ0FHS0FJUUlnQUVRQ0FCSUFBMkFoQWdBQ0FCTmdJWUN5QUdLQUlVSWdCRkRRQWdBU0FBTmdJVUlBQWdBVFlDR0FzZ0JTQUdhaUVHSUFJZ0JXb2hBZ3NnQmlBR0tBSUVRWDV4TmdJRUlBZ2dBa0VCY2pZQ0JDQUNJQWhxSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdCQkEzUkJnSUlCYWlFQ0FuOUIySUVCS0FJQUlnRkJBU0FBZENJQWNVVUVRRUhZZ1FFZ0FDQUJjallDQUNBQ0RBRUxJQUlvQWdnTElRQWdBaUFJTmdJSUlBQWdDRFlDRENBSUlBSTJBZ3dnQ0NBQU5nSUlEQU1MUVI4aEFDQUNRZi8vL3dkTkJFQWdBa0VJZGlJQUlBQkJnUDQvYWtFUWRrRUljU0lEZENJQUlBQkJnT0FmYWtFUWRrRUVjU0lCZENJQUlBQkJnSUFQYWtFUWRrRUNjU0lBZEVFUGRpQUJJQU55SUFCeWF5SUFRUUYwSUFJZ0FFRVZhblpCQVhGeVFSeHFJUUFMSUFnZ0FEWUNIQ0FJUWdBM0FoQWdBRUVDZEVHSWhBRnFJUVFDUUVIY2dRRW9BZ0FpQTBFQklBQjBJZ0Z4UlFSQVFkeUJBU0FCSUFOeU5nSUFJQVFnQ0RZQ0FDQUlJQVEyQWhnTUFRc2dBa0VBUVJrZ0FFRUJkbXNnQUVFZlJodDBJUUFnQkNnQ0FDRUJBMEFnQVNJREtBSUVRWGh4SUFKR0RRTWdBRUVkZGlFQklBQkJBWFFoQUNBRElBRkJCSEZxSWdRb0FoQWlBUTBBQ3lBRUlBZzJBaEFnQ0NBRE5nSVlDeUFJSUFnMkFnd2dDQ0FJTmdJSURBSUxRZVNCQVNBR1FTaHJJZ05CZUNBQmEwRUhjVUVBSUFGQkNHcEJCM0ViSWdCcklnSTJBZ0JCOElFQklBQWdBV29pQURZQ0FDQUFJQUpCQVhJMkFnUWdBU0FEYWtFb05nSUVRZlNCQVVIQWhRRW9BZ0EyQWdBZ0JTQUVRU2NnQkd0QkIzRkJBQ0FFUVNkclFRZHhHMnBCTDJzaUFDQUFJQVZCRUdwSkd5SUNRUnMyQWdRZ0FrR2doUUVwQWdBM0FoQWdBa0dZaFFFcEFnQTNBZ2hCb0lVQklBSkJDR28yQWdCQm5JVUJJQVkyQWdCQm1JVUJJQUUyQWdCQnBJVUJRUUEyQWdBZ0FrRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2hBU0FBUVFScUlRQWdBU0FFU1EwQUN5QUNJQVZHRFFNZ0FpQUNLQUlFUVg1eE5nSUVJQVVnQWlBRmF5SUVRUUZ5TmdJRUlBSWdCRFlDQUNBRVFmOEJUUVJBSUFSQkEzWWlBRUVEZEVHQWdnRnFJUUlDZjBIWWdRRW9BZ0FpQVVFQklBQjBJZ0J4UlFSQVFkaUJBU0FBSUFGeU5nSUFJQUlNQVFzZ0FpZ0NDQXNoQUNBQ0lBVTJBZ2dnQUNBRk5nSU1JQVVnQWpZQ0RDQUZJQUEyQWdnTUJBdEJIeUVBSUFWQ0FEY0NFQ0FFUWYvLy93ZE5CRUFnQkVFSWRpSUFJQUJCZ1A0L2FrRVFka0VJY1NJQ2RDSUFJQUJCZ09BZmFrRVFka0VFY1NJQmRDSUFJQUJCZ0lBUGFrRVFka0VDY1NJQWRFRVBkaUFCSUFKeUlBQnlheUlBUVFGMElBUWdBRUVWYW5aQkFYRnlRUnhxSVFBTElBVWdBRFlDSENBQVFRSjBRWWlFQVdvaEF3SkFRZHlCQVNnQ0FDSUNRUUVnQUhRaUFYRkZCRUJCM0lFQklBRWdBbkkyQWdBZ0F5QUZOZ0lBSUFVZ0F6WUNHQXdCQ3lBRVFRQkJHU0FBUVFGMmF5QUFRUjlHRzNRaEFDQURLQUlBSVFFRFFDQUJJZ0lvQWdSQmVIRWdCRVlOQkNBQVFSMTJJUUVnQUVFQmRDRUFJQUlnQVVFRWNXb2lBeWdDRUNJQkRRQUxJQU1nQlRZQ0VDQUZJQUkyQWhnTElBVWdCVFlDRENBRklBVTJBZ2dNQXdzZ0F5Z0NDQ0lBSUFnMkFnd2dBeUFJTmdJSUlBaEJBRFlDR0NBSUlBTTJBZ3dnQ0NBQU5nSUlDeUFKUVFocUlRQU1CUXNnQWlnQ0NDSUFJQVUyQWd3Z0FpQUZOZ0lJSUFWQkFEWUNHQ0FGSUFJMkFnd2dCU0FBTmdJSUMwSGtnUUVvQWdBaUFDQUhUUTBBUWVTQkFTQUFJQWRySWdFMkFnQkI4SUVCUWZDQkFTZ0NBQ0lDSUFkcUlnQTJBZ0FnQUNBQlFRRnlOZ0lFSUFJZ0IwRURjallDQkNBQ1FRaHFJUUFNQXd0QjFJRUJRVEEyQWdCQkFDRUFEQUlMQWtBZ0JrVU5BQUpBSUFRb0Fod2lBa0VDZEVHSWhBRnFJZ0FvQWdBZ0JFWUVRQ0FBSUFFMkFnQWdBUTBCUWR5QkFTQUpRWDRnQW5keElnazJBZ0FNQWdzZ0JrRVFRUlFnQmlnQ0VDQUVSaHRxSUFFMkFnQWdBVVVOQVFzZ0FTQUdOZ0lZSUFRb0FoQWlBQVJBSUFFZ0FEWUNFQ0FBSUFFMkFoZ0xJQVFvQWhRaUFFVU5BQ0FCSUFBMkFoUWdBQ0FCTmdJWUN3SkFJQU5CRDAwRVFDQUVJQU1nQjJvaUFFRURjallDQkNBQUlBUnFJZ0FnQUNnQ0JFRUJjallDQkF3QkN5QUVJQWRCQTNJMkFnUWdCQ0FIYWlJRklBTkJBWEkyQWdRZ0F5QUZhaUFETmdJQUlBTkIvd0ZOQkVBZ0EwRURkaUlBUVFOMFFZQ0NBV29oQWdKL1FkaUJBU2dDQUNJQlFRRWdBSFFpQUhGRkJFQkIySUVCSUFBZ0FYSTJBZ0FnQWd3QkN5QUNLQUlJQ3lFQUlBSWdCVFlDQ0NBQUlBVTJBZ3dnQlNBQ05nSU1JQVVnQURZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJDSFlpQUNBQVFZRCtQMnBCRUhaQkNIRWlBblFpQUNBQVFZRGdIMnBCRUhaQkJIRWlBWFFpQUNBQVFZQ0FEMnBCRUhaQkFuRWlBSFJCRDNZZ0FTQUNjaUFBY21zaUFFRUJkQ0FESUFCQkZXcDJRUUZ4Y2tFY2FpRUFDeUFGSUFBMkFod2dCVUlBTndJUUlBQkJBblJCaUlRQmFpRUJBa0FDUUNBSlFRRWdBSFFpQW5GRkJFQkIzSUVCSUFJZ0NYSTJBZ0FnQVNBRk5nSUFEQUVMSUFOQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQndOQUlBY2lBU2dDQkVGNGNTQURSZzBDSUFCQkhYWWhBaUFBUVFGMElRQWdBU0FDUVFSeGFpSUNLQUlRSWdjTkFBc2dBaUFGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFoRkRRQUNRQ0FCS0FJY0lnSkJBblJCaUlRQmFpSUFLQUlBSUFGR0JFQWdBQ0FFTmdJQUlBUU5BVUhjZ1FFZ0NVRitJQUozY1RZQ0FBd0NDeUFJUVJCQkZDQUlLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFnMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUhhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0IwRURjallDQkNBQklBZHFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQ2dSQUlBcEJBM1lpQUVFRGRFR0FnZ0ZxSVFWQjdJRUJLQUlBSVFRQ2YwRUJJQUIwSWdBZ0JuRkZCRUJCMklFQklBQWdCbkkyQWdBZ0JRd0JDeUFGS0FJSUN5RUFJQVVnQkRZQ0NDQUFJQVEyQWd3Z0JDQUZOZ0lNSUFRZ0FEWUNDQXRCN0lFQklBSTJBZ0JCNElFQklBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMcHdFQkJIOGpBRUVnYXlJQkpBQWdBVUVBTmdJTUlBRkJOellDQ0NBQklBRXBBd2czQXdBZ0FVRVFhaUlESUFFcEFnQTNBZ1FnQXlBQU5nSUFJd0JCRUdzaUFpUUFJQUFvQWdCQmYwY0VRQ0FDUVFocUlnUWdBeEI2R2lBQ0lBUVFlaG9EUUNBQUtBSUFRUUZHRFFBTElBQW9BZ0JGQkVBZ0FFRUJOZ0lBSUFKQk9CRUJBQ0FBUVg4MkFnQUxDeUFDUVJCcUpBQWdBQ2dDQkNFQUlBRkJJR29rQUNBQVFRRnJDeHNBSUFCQkFEWUNCQ0FBUWRqOEFEWUNBQ0FBUVpqV0FEWUNBQXVZQmdFSmZ5TUFRUkJySWdna0FDQUFFTTRCSXdCQkVHc2lBaVFBSUFJZ0FEWUNEQ0FJUVFocUlnVWdBa0VNYWhBeklBSkJFR29rQUVHd2xRRVFVQ0FCVFFSQUFrQkJzSlVCRUZBaUFpQUJRUUZxSWdCSkJFQWpBRUVnYXlJSkpBQUNRQ0FBSUFKcklnWkJzSlVCRUVNb0FnQkJ0SlVCS0FJQWEwRUNkVTBFUUNBR0VKY0NEQUVMUWJDVkFSQjBJUWNnQ1VFSWFpRUNBbjlCc0pVQkVGQWdCbW9oQkNNQVFSQnJJZ0FrQUNBQUlBUTJBZ3dnQkJDQkFpSURUUVJBUWJDVkFSQnpJZ1FnQTBFQmRra0VRQ0FBSUFSQkFYUTJBZ2dnQUVFSWFpQUFRUXhxRUhZb0FnQWhBd3NnQUVFUWFpUUFJQU1NQVFzUUZ3QUxJUUJCc0pVQkVGQWhDa0VBSVFNakFFRVFheUlFSkFBZ0JFRUFOZ0lNSUFKQkRHb2dCRUVNYWlBSEVJUUNJQUFFUUNBQ0tBSVFJQUFRZ0FJaEF3c2dBaUFETmdJQUlBSWdBeUFLUVFKMGFpSUhOZ0lJSUFJZ0J6WUNCQ0FDRUlNQklBTWdBRUVDZEdvMkFnQWdCRUVRYWlRQUl3QkJFR3NpQUNRQUlBQWdBaWdDQ0RZQ0FDQUNLQUlJSVFNZ0FDQUNRUWhxTmdJSUlBQWdBeUFHUVFKMGFqWUNCQ0FBS0FJQUlRTURRQ0FBS0FJRUlBTkhCRUFnQWlnQ0VDQUFLQUlBRVA0QklBQWdBQ2dDQUVFRWFpSUROZ0lBREFFTEN5QUFLQUlJSUFBb0FnQTJBZ0FnQUVFUWFpUUFRYkNWQVJDUkFrR3dsUUVRZEVHd2xRRW9BZ0JCdEpVQktBSUFJQUpCQkdvaUFCQ0RBa0d3bFFFZ0FCQjFRYlNWQVNBQ1FRaHFFSFZCc0pVQkVFTWdBaENEQVJCMUlBSWdBaWdDQkRZQ0FFR3dsUUVRVUJEL0FTQUNLQUlFSVFBRFFDQUFJQUlvQWdoSEJFQWdBaWdDRUJvZ0FpQUNLQUlJUVFSck5nSUlEQUVMQ3lBQ0tBSUFCRUFnQWlnQ0VDQUNLQUlBSUFJUWd3RW9BZ0FnQWlnQ0FHdEJBblVRL0FFTEN5QUpRU0JxSkFBTUFRc2dBQ0FDU1FSQVFiQ1ZBU2dDQUNBQVFRSjBhaUVBUWJDVkFSQlFJUUpCc0pVQklBQVErd0ZCc0pVQklBSVFsQUlMQ3d0QnNKVUJJQUVRZHlnQ0FBUkFRYkNWQVNBQkVIY29BZ0FRb3dFTElBVVFwZ0VoQUVHd2xRRWdBUkIzSUFBMkFnQWdCU2dDQUNFQUlBVkJBRFlDQUNBQUJFQWdBQkNqQVFzZ0NFRVFhaVFBQ3dnQUlBQkJBQkFuQ3k4QkFYOGpBRUVRYXlJREpBQWdBeUFCTmdJTUlBQWdBMEVNYWhBeklBQkJCR29nQWhBeklBTkJFR29rQUNBQUN4QUFJQUFvQWdBUWdBTkJHSFJCR0hVTEJnQWdBQkFRQ3dvQUlBQW9BZ0FRK3dJTERRQWdBQ2dDQUJEL0Fob2dBQXRMQVFKL0l3QkJFR3NpQVNRQUlBRWdBQkR5QVNFQUl3QkJFR3NpQWlRQUlBSkJDR29nQUNnQ0JCQjZLQUlBUVFFNkFBQWdBQ2dDQ0VFQk9nQUFJQUpCRUdva0FDQUJRUkJxSkFBTGR3RURmeU1BUVJCcklnSWtBQ0FDSUFBUThnRWhBQ01BUVJCcklnTWtBQ0FEUVFocUlBQW9BZ1FRZWlnQ0FDMEFBRVVFUUFKL0FrQWdBQ2dDQ0NJQUxRQUFJZ0ZCQVVjRWZ5QUJRUUp4RFFFZ0FFRUNPZ0FBUVFFRlFRQUxEQUVMRUJjQUN5RUJDeUFEUVJCcUpBQWdBa0VRYWlRQUlBRUxEUUFnQUNnQ0FCRDZBaG9nQUFzSkFDQUFJQUVRZ1FNTEpBRUJmeUFBS0FJQUlRSWdBQ0FCTmdJQUlBSUVRQ0FDSUFBUWxnRW9BZ0FSQVFBTEN3a0FJQUFnQVJEOEFnc1JBQ0FBSUFFZ0FDZ0NBQ2dDSEJFQ0FBdS9BUUVEZnlBQUxRQUFRU0J4UlFSQUFrQWdBU0VEQWtBZ0FpQUFJZ0VvQWhBaUFBUi9JQUFGSUFFUTZBRU5BU0FCS0FJUUN5QUJLQUlVSWdWclN3UkFJQUVnQXlBQ0lBRW9BaVFSQkFBYURBSUxBa0FnQVNnQ1VFRUFTQTBBSUFJaEFBTkFJQUFpQkVVTkFTQURJQVJCQVdzaUFHb3RBQUJCQ2tjTkFBc2dBU0FESUFRZ0FTZ0NKQkVFQUNBRVNRMEJJQU1nQkdvaEF5QUNJQVJySVFJZ0FTZ0NGQ0VGQ3lBRklBTWdBaEJDR2lBQklBRW9BaFFnQW1vMkFoUUxDd3NMZFFFQmZpQUFJQUVnQkg0Z0FpQURmbndnQTBJZ2lDSUNJQUZDSUlnaUJINThJQU5DLy8vLy93K0RJZ01nQVVMLy8vLy9ENE1pQVg0aUJVSWdpQ0FESUFSK2ZDSURRaUNJZkNBQklBSitJQU5DLy8vLy93K0RmQ0lCUWlDSWZEY0RDQ0FBSUFWQy8vLy8vdytESUFGQ0lJYUVOd01BQzBNQkFYOGpBRUVRYXlJRkpBQWdCU0FDTmdJTUlBVWdCRFlDQ0NBRklBVkJER29RVWlFQ0lBQWdBU0FESUFVb0FnZ1F0UUVoQUNBQ0VGRWdCVUVRYWlRQUlBQUxvUUVCQW44Q1FDQUFFQWxGSUFJZ0FXdEJCVWh5RFFBZ0FTQUNFSzBCSUFKQkJHc2hCQ0FBRUEwaUFpQUFFQWxxSVFVQ1FBTkFBa0FnQWl3QUFDRUFJQUVnQkU4TkFDQUFRUUJNSUFCQi93Qk9ja1VFUUNBQktBSUFJQUlzQUFCSERRTUxJQUZCQkdvaEFTQUNJQVVnQW10QkFVcHFJUUlNQVFzTElBQkJBRXdnQUVIL0FFNXlEUUVnQWl3QUFDQUVLQUlBUVFGclN3MEJDeUFEUVFRMkFnQUxDMjBCQVg4akFFR0FBbXNpQlNRQUlBUkJnTUFFY1NBQ0lBTk1ja1VFUUNBRklBRkIvd0Z4SUFJZ0Eyc2lBa0dBQWlBQ1FZQUNTU0lCR3hCR0dpQUJSUVJBQTBBZ0FDQUZRWUFDRUNvZ0FrR0FBbXNpQWtIL0FVc05BQXNMSUFBZ0JTQUNFQ29MSUFWQmdBSnFKQUFMVUFFQmZnSkFJQU5Cd0FCeEJFQWdBU0FEUVVCcXJZWWhBa0lBSVFFTUFRc2dBMFVOQUNBQ0lBT3RJZ1NHSUFGQndBQWdBMnV0aUlRaEFpQUJJQVNHSVFFTElBQWdBVGNEQUNBQUlBSTNBd2dMVlFFQ2Z5TUFRUkJySWdJa0FDQUFFRFVFUUNBQUtBSUFJUU1nQUJCOUdpQURFQkFMSUFBZ0FTZ0NDRFlDQ0NBQUlBRXBBZ0EzQWdBZ0FVRUFFRG9nQWtFQU9nQVBJQUVnQWtFUGFoQTBJQUpCRUdva0FBc01BQ0FBSUFFUWdRTkJBWE1MQ2dBZ0FFR0VpUUVRWkFzTUFDQUFJQUVvQWdBMkFnQUxEQUFnQUNBQkxRQUFPZ0FBQ3dvQUlBQXRBQXRCQjNZTERBQWdBQ0FCRVB3Q1FRRnpDeEVBSUFBZ0FTQUJLQUlBS0FJVUVRTUFDdzhBSUFBZ0FDZ0NBQ2dDRUJFQUFBc0pBQ0FBSUFFMkFnUUxDUUFnQUNBQk9nQUxDd29BSUFCQi9JZ0JFR1FMMFFrQ0JIOEVmaU1BUWZBQWF5SUZKQUFnQkVMLy8vLy8vLy8vLy84QWd5RUtBa0FDUUNBQlFnRjlJZ3RDZjFFZ0FrTC8vLy8vLy8vLy8vOEFneUlKSUFFZ0MxYXRmRUlCZlNJTFF2Ly8vLy8vLzcvLy93QldJQXRDLy8vLy8vLy92Ly8vQUZFYlJRUkFJQU5DQVgwaUMwSi9VaUFLSUFNZ0MxYXRmRUlCZlNJTFF2Ly8vLy8vLzcvLy93QlVJQXRDLy8vLy8vLy92Ly8vQUZFYkRRRUxJQUZRSUFsQ2dJQ0FnSUNBd1AvL0FGUWdDVUtBZ0lDQWdJREEvLzhBVVJ0RkJFQWdBa0tBZ0lDQWdJQWdoQ0VFSUFFaEF3d0NDeUFEVUNBS1FvQ0FnSUNBZ01ELy93QlVJQXBDZ0lDQWdJQ0F3UC8vQUZFYlJRUkFJQVJDZ0lDQWdJQ0FJSVFoQkF3Q0N5QUJJQWxDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFRb0NBZ0lDQWdPRC8vd0FnQWlBQklBT0ZJQUlnQklWQ2dJQ0FnSUNBZ0lDQWY0V0VVQ0lHR3lFRVFnQWdBU0FHR3lFRERBSUxJQU1nQ2tLQWdJQ0FnSURBLy84QWhZUlFEUUVnQVNBSmhGQUVRQ0FESUFxRVFnQlNEUUlnQVNBRGd5RURJQUlnQklNaEJBd0NDeUFESUFxRVVFVU5BQ0FCSVFNZ0FpRUVEQUVMSUFNZ0FTQUJJQU5VSUFrZ0NsUWdDU0FLVVJzaUJ4c2hDaUFFSUFJZ0J4c2lDMEwvLy8vLy8vOC9neUVKSUFJZ0JDQUhHeUlDUWpDSXAwSC8vd0Z4SVFnZ0MwSXdpS2RCLy84QmNTSUdSUVJBSUFWQjRBQnFJQW9nQ1NBS0lBa2dDVkFpQmh0NUlBWkJCblN0ZktjaUJrRVBheEF2SUFVcEEyZ2hDU0FGS1FOZ0lRcEJFQ0FHYXlFR0N5QUJJQU1nQnhzaEF5QUNRdi8vLy8vLy96K0RJUVFnQ0VVRVFDQUZRZEFBYWlBRElBUWdBeUFFSUFSUUlnY2JlU0FIUVFaMHJYeW5JZ2RCRDJzUUwwRVFJQWRySVFnZ0JTa0RXQ0VFSUFVcEExQWhBd3NnQkVJRGhpQURRajJJaEVLQWdJQ0FnSUNBQklRaEJDQUpRZ09HSUFwQ1BZaUVJUWtnQWlBTGhTRU1BbjRnQTBJRGhpSUJJQVlnQ0dzaUIwVU5BQm9nQjBIL0FFc0VRRUlBSVFSQ0FRd0JDeUFGUVVCcklBRWdCRUdBQVNBSGF4QXZJQVZCTUdvZ0FTQUVJQWNRZkNBRktRTTRJUVFnQlNrRE1DQUZLUU5BSUFVcEEwaUVRZ0JTcllRTElRSWdDVUtBZ0lDQWdJQ0FCSVFoQ1NBS1FnT0dJUU1DUUNBTVFnQlRCRUFnQXlBQ2ZTSUJJQWtnQkgwZ0FpQURWcTE5SWdTRVVBUkFRZ0FoQTBJQUlRUU1Bd3NnQkVMLy8vLy8vLy8vQTFZTkFTQUZRU0JxSUFFZ0JDQUJJQVFnQkZBaUJ4dDVJQWRCQm5TdGZLZEJER3NpQnhBdklBWWdCMnNoQmlBRktRTW9JUVFnQlNrRElDRUJEQUVMSUFJZ0Ezd2lBU0FDVkswZ0JDQUpmSHdpQkVLQWdJQ0FnSUNBQ0lOUURRQWdBVUlCZ3lBRVFqK0dJQUZDQVlpRWhDRUJJQVpCQVdvaEJpQUVRZ0dJSVFRTElBdENnSUNBZ0lDQWdJQ0FmNE1oQWlBR1FmLy9BVTRFUUNBQ1FvQ0FnSUNBZ01ELy93Q0VJUVJDQUNFRERBRUxRUUFoQndKQUlBWkJBRW9FUUNBR0lRY01BUXNnQlVFUWFpQUJJQVFnQmtIL0FHb1FMeUFGSUFFZ0JFRUJJQVpyRUh3Z0JTa0RBQ0FGS1FNUUlBVXBBeGlFUWdCU3JZUWhBU0FGS1FNSUlRUUxJQUduUVFkeElnWkJCRXV0SUFSQ1BZWWdBVUlEaUlRaUFYd2lBeUFCVkswZ0JFSURpRUwvLy8vLy8vOC9neUFIclVJd2hvUWdBb1I4SVFRQ1FDQUdRUVJHQkVBZ0JDQURRZ0dESWdFZ0Ezd2lBeUFCVksxOElRUU1BUXNnQmtVTkFRc0xJQUFnQXpjREFDQUFJQVEzQXdnZ0JVSHdBR29rQUFzUkFDQUFJQUVnQUNnQ0FDZ0NMQkVDQUFzdEFDQUNSUVJBSUFBb0FnUWdBU2dDQkVZUEN5QUFJQUZHQkVCQkFROExJQUFvQWdRZ0FTZ0NCQkMyQVVVTFl3QWdBaWdDQkVHd0FYRWlBa0VnUmdSQUlBRVBDd0pBSUFKQkVFY05BQUpBQWtBZ0FDMEFBQ0lDUVN0ckRnTUFBUUFCQ3lBQVFRRnFEd3NnQWtFd1J5QUJJQUJyUVFKSWNnMEFJQUF0QUFGQklISkIrQUJIRFFBZ0FFRUNhaUVBQ3lBQUN5WUJBWDhqQUVFUWF5SUJKQUFnQVVFSWFpQUFFQTBRZWlnQ0FDRUFJQUZCRUdva0FDQUFDMzRDQW44QmZpTUFRUkJySWdNa0FDQUFBbjRnQVVVRVFFSUFEQUVMSUFNZ0FTQUJRUjkxSWdKcUlBSnpJZ0t0UWdBZ0FtY2lBa0hSQUdvUUx5QURLUU1JUW9DQWdJQ0FnTUFBaFVHZWdBRWdBbXV0UWpDR2ZDQUJRWUNBZ0lCNGNhMUNJSWFFSVFRZ0F5a0RBQXMzQXdBZ0FDQUVOd01JSUFOQkVHb2tBQXVEQkFFRGZ5QUNRWUFFVHdSQUlBQWdBU0FDRUFVYUlBQVBDeUFBSUFKcUlRTUNRQ0FBSUFGelFRTnhSUVJBQWtBZ0FFRURjVVVFUUNBQUlRSU1BUXNnQWtFQVRBUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2lBa0VEY1VVTkFTQUNJQU5KRFFBTEN3SkFJQU5CZkhFaUJFSEFBRWtOQUNBQ0lBUkJRR29pQlVzTkFBTkFJQUlnQVNnQ0FEWUNBQ0FDSUFFb0FnUTJBZ1FnQWlBQktBSUlOZ0lJSUFJZ0FTZ0NERFlDRENBQ0lBRW9BaEEyQWhBZ0FpQUJLQUlVTmdJVUlBSWdBU2dDR0RZQ0dDQUNJQUVvQWh3MkFod2dBaUFCS0FJZ05nSWdJQUlnQVNnQ0pEWUNKQ0FDSUFFb0FpZzJBaWdnQWlBQktBSXNOZ0lzSUFJZ0FTZ0NNRFlDTUNBQ0lBRW9BalEyQWpRZ0FpQUJLQUk0TmdJNElBSWdBU2dDUERZQ1BDQUJRVUJySVFFZ0FrRkFheUlDSUFWTkRRQUxDeUFDSUFSUERRRURRQ0FDSUFFb0FnQTJBZ0FnQVVFRWFpRUJJQUpCQkdvaUFpQUVTUTBBQ3d3QkN5QURRUVJKQkVBZ0FDRUNEQUVMSUFBZ0EwRUVheUlFU3dSQUlBQWhBZ3dCQ3lBQUlRSURRQ0FDSUFFdEFBQTZBQUFnQWlBQkxRQUJPZ0FCSUFJZ0FTMEFBam9BQWlBQ0lBRXRBQU02QUFNZ0FVRUVhaUVCSUFKQkJHb2lBaUFFVFEwQUN3c2dBaUFEU1FSQUEwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwY05BQXNMSUFBTEJ3QWdBRUVJYWdzbkFRRi9JQUpCQUU0RWZ5QUFLQUlJSUFKQi93RnhRUUYwYWk4QkFDQUJjVUVBUndVZ0F3c0xDZ0FnQUVFd2EwRUtTUXZ5QWdJQ2Z3RitBa0FnQWtVTkFDQUFJQUU2QUFBZ0FDQUNhaUlEUVFGcklBRTZBQUFnQWtFRFNRMEFJQUFnQVRvQUFpQUFJQUU2QUFFZ0EwRURheUFCT2dBQUlBTkJBbXNnQVRvQUFDQUNRUWRKRFFBZ0FDQUJPZ0FESUFOQkJHc2dBVG9BQUNBQ1FRbEpEUUFnQUVFQUlBQnJRUU54SWdScUlnTWdBVUgvQVhGQmdZS0VDR3dpQVRZQ0FDQURJQUlnQkd0QmZIRWlCR29pQWtFRWF5QUJOZ0lBSUFSQkNVa05BQ0FESUFFMkFnZ2dBeUFCTmdJRUlBSkJDR3NnQVRZQ0FDQUNRUXhySUFFMkFnQWdCRUVaU1EwQUlBTWdBVFlDR0NBRElBRTJBaFFnQXlBQk5nSVFJQU1nQVRZQ0RDQUNRUkJySUFFMkFnQWdBa0VVYXlBQk5nSUFJQUpCR0dzZ0FUWUNBQ0FDUVJ4cklBRTJBZ0FnQkNBRFFRUnhRUmh5SWdScklnSkJJRWtOQUNBQnJVS0JnSUNBRUg0aEJTQURJQVJxSVFFRFFDQUJJQVUzQXhnZ0FTQUZOd01RSUFFZ0JUY0RDQ0FCSUFVM0F3QWdBVUVnYWlFQklBSkJJR3NpQWtFZlN3MEFDd3NnQUFzM0FRSi9Jd0JCRUdzaUFpUUFBMEFnQVVFRFJ3UkFJQUFnQVVFQ2RHcEJBRFlDQUNBQlFRRnFJUUVNQVFzTElBSkJFR29rQUNBQUN3OEFJQUFnQUNnQ0FDZ0NEQkVBQUFzSEFDQUFFQWxGQ3hFQUlBQWdBU0FCS0FJQUtBSWNFUU1BQ3hFQUlBQWdBU0FCS0FJQUtBSVlFUU1BQ3hBQUlBQWdBVUdBZ0lDQWVISTJBZ2dMQ1FBZ0FDQUJOZ0lBQ3hNQUlBQWdBU0FDSUFBb0FnQW9BZ3dSQkFBTEJBQkJBQXNRQUNBQUtBSUVJQUFvQWdCclFRSjFDeElBSUFBb0FnQWlBQVJBSUFBUTBRSWFDd3NSQUNBQUlBRW9BZ0FRMFFJMkFnQWdBQXRCQVFGL0lBQWdBVGNEY0NBQUlBQW9BaXdnQUNnQ0JDSUNhNnczQTNnZ0FDQUJVQ0FBS0FJSUlnQWdBbXVzSUFGWGNnUi9JQUFGSUFJZ0FhZHFDellDYUFzaUFRRi9Jd0JCRUdzaUFpUUFJQUFnQVNBQkVKSUJFUFlCSUFKQkVHb2tBQ0FBQ3hBQUlBSUVRQ0FBSUFFZ0FoQkNHZ3NMblFFQkJIOGpBRUVRYXlJSEpBQUNRQ0FBUlEwQUlBUW9BZ3doQmlBQ0lBRnJJZ2hCQUVvRVFDQUFJQUVnQ0JCL0lBaEhEUUVMSUFZZ0F5QUJheUlCYTBFQUlBRWdCa2diSWdGQkFFb0VRQ0FBSUFjZ0FTQUZFTzhCSWdVUURTQUJFSDhoQmlBRkVBb2FJQUVnQmtjTkFRc2dBeUFDYXlJQlFRQktCRUFnQUNBQ0lBRVFmeUFCUncwQkN5QUVFTzRCSUFBaENRc2dCMEVRYWlRQUlBa0xWUUVDZnlNQVFSQnJJZ0lrQUNBQUVEVUVRQ0FBS0FJQUlRTWdBQkI5R2lBREVCQUxJQUFnQVNnQ0NEWUNDQ0FBSUFFcEFnQTNBZ0FnQVVFQUVEb2dBa0VBTmdJTUlBRWdBa0VNYWhBeklBSkJFR29rQUF1OEFRRURmeU1BUVJCcklnVWtBQ0FGSUFFMkFnaEJBQ0VCUVFZaEJnSkFBa0FnQUNBRlFRaHFFQ2dOQUVFRUlRWWdBMEdBRUNBQUVDRWlCeEJPUlEwQUlBTWdCeENIQVNFQkEwQUNRQ0FBRUNVYUlBRkJNR3NoQVNBQUlBVkJDR29RTmtVZ0JFRUNTSElOQUNBRFFZQVFJQUFRSVNJR0VFNUZEUU1nQkVFQmF5RUVJQU1nQmhDSEFTQUJRUXBzYWlFQkRBRUxDMEVDSVFZZ0FDQUZRUWhxRUNoRkRRRUxJQUlnQWlnQ0FDQUdjallDQUFzZ0JVRVFhaVFBSUFFTHZBRUJBMzhqQUVFUWF5SUZKQUFnQlNBQk5nSUlRUUFoQVVFR0lRWUNRQUpBSUFBZ0JVRUlhaEFtRFFCQkJDRUdJQU5CZ0JBZ0FCQWZJZ2NRUkVVTkFDQURJQWNRaUFFaEFRTkFBa0FnQUJBaUdpQUJRVEJySVFFZ0FDQUZRUWhxRURGRklBUkJBa2h5RFFBZ0EwR0FFQ0FBRUI4aUJoQkVSUTBESUFSQkFXc2hCQ0FESUFZUWlBRWdBVUVLYkdvaEFRd0JDd3RCQWlFR0lBQWdCVUVJYWhBbVJRMEJDeUFDSUFJb0FnQWdCbkkyQWdBTElBVkJFR29rQUNBQkM1b0JBUU4vSXdCQkVHc2lCQ1FBSUFRZ0FUWUNEQ0FFSUFNMkFnZ2dCQ0FFUVF4cUVGSWhCaUFFS0FJSUlRTWpBRUVRYXlJQkpBQWdBU0FETmdJTUlBRWdBellDQ0VGL0lRVUNRRUVBUVFBZ0FpQURFTFVCSWdOQkFFZ05BQ0FBSUFOQkFXb2lBeEFaSWdBMkFnQWdBRVVOQUNBQUlBTWdBaUFCS0FJTUVMVUJJUVVMSUFGQkVHb2tBQ0FGSVFBZ0JoQlJJQVJCRUdva0FDQUFDdzBBSUFBb0FnQWdBU2dDQUVjTExnQUNRQ0FBS0FJRVFjb0FjU0lBQkVBZ0FFSEFBRVlFUUVFSUR3c2dBRUVJUncwQlFSQVBDMEVBRHd0QkNndjVBUUlEZmdKL0l3QkJFR3NpQlNRQUFuNGdBYjBpQTBMLy8vLy8vLy8vLy84QWd5SUNRb0NBZ0lDQWdJQUlmVUwvLy8vLy8vLy83LzhBV0FSQUlBSkNQSVloQkNBQ1FnU0lRb0NBZ0lDQWdJQ0FQSHdNQVFzZ0FrS0FnSUNBZ0lDQStQOEFXZ1JBSUFOQ1BJWWhCQ0FEUWdTSVFvQ0FnSUNBZ01ELy93Q0VEQUVMSUFKUUJFQkNBQXdCQ3lBRklBSkNBQ0FEcDJkQklHb2dBa0lnaUtkbklBSkNnSUNBZ0JCVUd5SUdRVEZxRUM4Z0JTa0RBQ0VFSUFVcEF3aENnSUNBZ0lDQXdBQ0ZRWXo0QUNBR2E2MUNNSWFFQ3lFQ0lBQWdCRGNEQUNBQUlBSWdBMEtBZ0lDQWdJQ0FnSUIvZzRRM0F3Z2dCVUVRYWlRQUN3Y0FJQUFnQVVZTE13RUJmeUFBUVFFZ0FCc2hBQUpBQTBBZ0FCQVpJZ0VOQVVHWWx3RW9BZ0FpQVFSQUlBRVJEd0FNQVFzTEVBQUFDeUFCQzhRREFRTi9Jd0JCSUdzaUNDUUFJQWdnQWpZQ0VDQUlJQUUyQWhnZ0NFRUlhaUlCSUFNUUR5QUJFRHNoQ1NBQkVBNGdCRUVBTmdJQVFRQWhBZ0pBQTBBZ0JpQUhSaUFDY2cwQkFrQWdDRUVZYWlBSVFSQnFFQ2dOQUFKQUlBa2dCaWdDQUJDSEFVRWxSZ1JBSUFaQkJHb2lBaUFIUmcwQ1FRQWhDZ0ovSUFrZ0FpZ0NBQkNIQVNJQlFjVUFSaUFCUWY4QmNVRXdSbkpGQkVBZ0JpRUNJQUVNQVFzZ0JrRUlhaUFIUmcwRElBRWhDaUFKSUFZb0FnZ1Fod0VMSVFFZ0NDQUFJQWdvQWhnZ0NDZ0NFQ0FESUFRZ0JTQUJJQW9nQUNnQ0FDZ0NKQkVNQURZQ0dDQUNRUWhxSVFZTUFRc2dDVUdBd0FBZ0JpZ0NBQkJPQkVBRFFBSkFJQWNnQmtFRWFpSUdSZ1JBSUFjaEJnd0JDeUFKUVlEQUFDQUdLQUlBRUU0TkFRc0xBMEFnQ0VFWWFpQUlRUkJxRURaRkRRSWdDVUdBd0FBZ0NFRVlhaEFoRUU1RkRRSWdDRUVZYWhBbEdnd0FDd0FMSUFrZ0NFRVlhaEFoRUNrZ0NTQUdLQUlBRUNsR0JFQWdCa0VFYWlFR0lBaEJHR29RSlJvTUFRc2dCRUVFTmdJQUN5QUVLQUlBSVFJTUFRc0xJQVJCQkRZQ0FBc2dDRUVZYWlBSVFSQnFFQ2dFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQWdvQWhnaEFDQUlRU0JxSkFBZ0FBdkdBd0VEZnlNQVFTQnJJZ2drQUNBSUlBSTJBaEFnQ0NBQk5nSVlJQWhCQ0dvaUFTQURFQThnQVJBeUlRa2dBUkFPSUFSQkFEWUNBRUVBSVFJQ1FBTkFJQVlnQjBZZ0FuSU5BUUpBSUFoQkdHb2dDRUVRYWhBbURRQUNRQ0FKSUFZc0FBQVFpQUZCSlVZRVFDQUdRUUZxSWdJZ0IwWU5Ba0VBSVFvQ2Z5QUpJQUlzQUFBUWlBRWlBVUhGQUVZZ0FVSC9BWEZCTUVaeVJRUkFJQVloQWlBQkRBRUxJQVpCQW1vZ0IwWU5BeUFCSVFvZ0NTQUdMQUFDRUlnQkN5RUJJQWdnQUNBSUtBSVlJQWdvQWhBZ0F5QUVJQVVnQVNBS0lBQW9BZ0FvQWlRUkRBQTJBaGdnQWtFQ2FpRUdEQUVMSUFsQmdNQUFJQVlzQUFBUVJBUkFBMEFDUUNBSElBWkJBV29pQmtZRVFDQUhJUVlNQVFzZ0NVR0F3QUFnQml3QUFCQkVEUUVMQ3dOQUlBaEJHR29nQ0VFUWFoQXhSUTBDSUFsQmdNQUFJQWhCR0dvUUh4QkVSUTBDSUFoQkdHb1FJaG9NQUFzQUN5QUpJQWhCR0dvUUh4Q3pBU0FKSUFZc0FBQVFzd0ZHQkVBZ0JrRUJhaUVHSUFoQkdHb1FJaG9NQVFzZ0JFRUVOZ0lBQ3lBRUtBSUFJUUlNQVFzTElBUkJCRFlDQUFzZ0NFRVlhaUFJUVJCcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBZ29BaGdoQUNBSVFTQnFKQUFnQUF1cUFRRUVmeU1BUVJCcklnZ2tBQUpBSUFCRkRRQWdCQ2dDRENFR0lBSWdBV3NpQjBFQVNnUkFJQUFnQVNBSFFRSjFJZ2NRZnlBSFJ3MEJDeUFHSUFNZ0FXdEJBblVpQVd0QkFDQUJJQVpJR3lJQlFRQktCRUFnQUNBSUlBRWdCUkM3QWlJRkVBMGdBUkIvSVFZZ0JSQUtHaUFCSUFaSERRRUxJQU1nQW1zaUFVRUFTZ1JBSUFBZ0FpQUJRUUoxSWdFUWZ5QUJSdzBCQ3lBRUVPNEJJQUFoQ1FzZ0NFRVFhaVFBSUFrTEZnQWdBQ0FCSUFJZ0F5QUFLQUlBS0FJd0VRc0FHZ3RDQVFGL0lBQW9BZ0FoQWlBQkVCb2hBQ0FDUVFocUlnRVFVQ0FBU3dSL0lBRWdBQkIzS0FJQVFRQkhCVUVBQzBVRVFCQVhBQXNnQWtFSWFpQUFFSGNvQWdBTENBQWdBRUgvQVhFTEJBQWdBQXNQQUNBQUlBQW9BZ0FvQWlRUkFBQUxFUUFnQUNBQklBRW9BZ0FvQWlBUkF3QUxFUUFnQUNBQklBRW9BZ0FvQWl3UkF3QUxEQUFnQUVHQ2hvQWdOZ0FBQ3djQUlBQVFFUm9MTGdFQmZ5TUFRUkJySWdFa0FDQUJRUWhxSUFBUURTQUFFQWxCQW5ScUVIb29BZ0FoQUNBQlFSQnFKQUFnQUF1cUFRRUJmd0pBSUFOQmdCQnhSUTBBSUFKRklBTkJ5Z0J4SWdSQkNFWWdCRUhBQUVaeWNnMEFJQUJCS3pvQUFDQUFRUUZxSVFBTElBTkJnQVJ4QkVBZ0FFRWpPZ0FBSUFCQkFXb2hBQXNEUUNBQkxRQUFJZ1FFUUNBQUlBUTZBQUFnQUVFQmFpRUFJQUZCQVdvaEFRd0JDd3NnQUFKL1FlOEFJQU5CeWdCeElnRkJ3QUJHRFFBYVFkZ0FRZmdBSUFOQmdJQUJjUnNnQVVFSVJnMEFHa0hrQUVIMUFDQUNHd3M2QUFBTEt3RUJmeU1BUVJCcklnRWtBQ0FCUVFocUlBQVFEU0FBRUFscUVIb29BZ0FoQUNBQlFSQnFKQUFnQUFzV0FDQUFJQUVnQWlBRElBQW9BZ0FvQWlBUkN3QWFDeEFBSUFCQklFWWdBRUVKYTBFRlNYSUxOZ0FnQWdSL0lBSUVRQU5BSUFBZ0FTZ0NBRFlDQUNBQVFRUnFJUUFnQVVFRWFpRUJJQUpCQVdzaUFnMEFDd3RCQUFVZ0FBc2FDMUlCQW45QjhJQUJLQUlBSWdFZ0FFRURha0Y4Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQVFCRVVOQVF0QjhJQUJJQUEyQWdBZ0FROExRZFNCQVVFd05nSUFRWDhMRWdBZ0FCQkRLQUlBSUFBb0FnQnJRUUoxQ3djQUlBQkJFR29MTlFFQmZ5TUFRUkJySWdJa0FDQUNJQUFvQWdBMkFnd2dBQ0FCS0FJQU5nSUFJQUVnQWtFTWFpZ0NBRFlDQUNBQ1FSQnFKQUFMSkFFQ2Z5TUFRUkJySWdJa0FDQUFJQUVROFFFaEF5QUNRUkJxSkFBZ0FTQUFJQU1iQ3cwQUlBQW9BZ0FnQVVFQ2RHb0xGZ0FnQUJBMUJFQWdBQ0FCRURrUEN5QUFJQUVRT2dzc0FBSkFJQUFnQVVZTkFBTkFJQUFnQVVFQmF5SUJUdzBCSUFBZ0FSQ3dBaUFBUVFGcUlRQU1BQXNBQ3dzTEFDQUFJQUUyQWdBZ0FBdmJBUUlCZndKK1FRRWhCQUpBSUFCQ0FGSWdBVUwvLy8vLy8vLy8vLzhBZ3lJRlFvQ0FnSUNBZ01ELy93QldJQVZDZ0lDQWdJQ0F3UC8vQUZFYkRRQWdBa0lBVWlBRFF2Ly8vLy8vLy8vLy93Q0RJZ1pDZ0lDQWdJQ0F3UC8vQUZZZ0JrS0FnSUNBZ0lEQS8vOEFVUnNOQUNBQUlBS0VJQVVnQm9TRVVBUkFRUUFQQ3lBQklBT0RRZ0JaQkVCQmZ5RUVJQUFnQWxRZ0FTQURVeUFCSUFOUkd3MEJJQUFnQW9VZ0FTQURoWVJDQUZJUEMwRi9JUVFnQUNBQ1ZpQUJJQU5WSUFFZ0ExRWJEUUFnQUNBQ2hTQUJJQU9GaEVJQVVpRUVDeUFFQzFBQkFYNENRQ0FEUWNBQWNRUkFJQUlnQTBGQWFxMklJUUZDQUNFQ0RBRUxJQU5GRFFBZ0FrSEFBQ0FEYTYyR0lBRWdBNjBpQklpRUlRRWdBaUFFaUNFQ0N5QUFJQUUzQXdBZ0FDQUNOd01JQ3c0QUlBQW9BZ2hCLy8vLy93ZHhDd29BSUFBUTRRRWFJQUFMRXdBZ0FDQUJJQUlnQUNnQ0FDZ0NNQkVFQUFzbUFDQUFJQUFvQWhoRklBQW9BaEFnQVhKeUlnRTJBaEFnQUNnQ0ZDQUJjUVJBRUJjQUN3c0pBQ0FBSUFFUS9RRUxKQUFnQUVFQ1R3Ui9JQUJCQkdwQmZIRWlBQ0FBUVFGcklnQWdBRUVDUmhzRlFRRUxDd2NBSUFCQkRHb0xsUUVCQlg4akFFRVFheUlGSkFBZ0FSRFRBaUVDSXdCQkVHc2lBeVFBQWtBZ0FrSHYvLy8vQTAwRVFBSkFJQUpCQVUwRVFDQUFJQUlRT2lBQUlRUU1BUXNnQUNBQUlBSVFnZ0ZCQVdvaUJoQ0JBU0lFRUUwZ0FDQUdFRXdnQUNBQ0VEa0xJQVFnQVNBQ0VIRWdBMEVBTmdJTUlBUWdBa0VDZEdvZ0EwRU1haEF6SUFOQkVHb2tBQXdCQ3hBWEFBc2dCVUVRYWlRQUN3OEFJQUFRUXlnQ0FDQUFLQUlBYXd2RUFRRUdmeU1BUVJCcklnUWtBQ0FBRUpZQktBSUFJUVVDZnlBQ0tBSUFJQUFvQWdCcklnTkIvLy8vL3dkSkJFQWdBMEVCZEF3QkMwRi9DeUlEUVFRZ0F4c2hBeUFCS0FJQUlRWWdBQ2dDQUNFSElBVkJOa1lFZjBFQUJTQUFLQUlBQ3lBREVKNEJJZ2dFUUNBRlFUWkhCRUFnQUJDbUFSb0xJQVJCTlRZQ0JDQUFJQVJCQ0dvZ0NDQUVRUVJxRUI0aUJSQ2xBaUFGRUIwZ0FTQUFLQUlBSUFZZ0IydHFOZ0lBSUFJZ0FDZ0NBQ0FEUVh4eGFqWUNBQ0FFUVJCcUpBQVBDeEFYQUFzVEFDQUFJQUZCQUNBQUtBSUFLQUkwRVFRQUN4TUFJQUFnQVVFQUlBQW9BZ0FvQWlRUkJBQUxEUUFnQUNnQ0JDQUFLQUlBYXd0REFRRi9JQUJCckNZb0FnQWlBVFlDQUNBQUlBRkJER3NvQWdCcVFjd21LQUlBTmdJQUlBQkIwQ1lvQWdBMkFnZ2dBRUVNYWhEUUFSb2dBRUZBYXhCK0dpQUFDL0lDQVFKL0l3QkJFR3NpQ2lRQUlBb2dBRFlDREFKQUFrQUNRQ0FES0FJQUlBSkhEUUJCS3lFTElBQWdDU2dDWUVjRVFFRXRJUXNnQ1NnQ1pDQUFSdzBCQ3lBRElBSkJBV28yQWdBZ0FpQUxPZ0FBREFFTElBWVFDVVVnQUNBRlIzSkZCRUJCQUNFQUlBZ29BZ0FpQVNBSGEwR2ZBVW9OQWlBRUtBSUFJUUFnQ0NBQlFRUnFOZ0lBSUFFZ0FEWUNBQXdCQzBGL0lRQWdDU0FKUWVnQWFpQUtRUXhxRU5JQklBbHJJZ1pCM0FCS0RRRWdCa0VDZFNFRkFrQUNRQUpBSUFGQkNHc09Bd0FDQUFFTElBRWdCVW9OQVF3REN5QUJRUkJISUFaQjJBQkljZzBBSUFNb0FnQWlBU0FDUmlBQklBSnJRUUpLY2cwQ0lBRkJBV3N0QUFCQk1FY05Ba0VBSVFBZ0JFRUFOZ0lBSUFNZ0FVRUJhallDQUNBQklBVkI0TkFBYWkwQUFEb0FBQXdDQ3lBRElBTW9BZ0FpQUVFQmFqWUNBQ0FBSUFWQjROQUFhaTBBQURvQUFDQUVJQVFvQWdCQkFXbzJBZ0JCQUNFQURBRUxRUUFoQUNBRVFRQTJBZ0FMSUFwQkVHb2tBQ0FBQ3dvQUlBQkJ0SWtCRUdRTDdnSUJBMzhqQUVFUWF5SUtKQUFnQ2lBQU9nQVBBa0FDUUFKQUlBTW9BZ0FnQWtjTkFFRXJJUXNnQUVIL0FYRWlEQ0FKTFFBWVJ3UkFRUzBoQ3lBSkxRQVpJQXhIRFFFTElBTWdBa0VCYWpZQ0FDQUNJQXM2QUFBTUFRc2dCaEFKUlNBQUlBVkhja1VFUUVFQUlRQWdDQ2dDQUNJQklBZHJRWjhCU2cwQ0lBUW9BZ0FoQUNBSUlBRkJCR28yQWdBZ0FTQUFOZ0lBREFFTFFYOGhBQ0FKSUFsQkdtb2dDa0VQYWhEVkFTQUpheUlGUVJkS0RRRUNRQUpBQWtBZ0FVRUlhdzREQUFJQUFRc2dBU0FGU2cwQkRBTUxJQUZCRUVjZ0JVRVdTSElOQUNBREtBSUFJZ0VnQWtZZ0FTQUNhMEVDU25JTkFpQUJRUUZyTFFBQVFUQkhEUUpCQUNFQUlBUkJBRFlDQUNBRElBRkJBV28yQWdBZ0FTQUZRZURRQUdvdEFBQTZBQUFNQWdzZ0F5QURLQUlBSWdCQkFXbzJBZ0FnQUNBRlFlRFFBR290QUFBNkFBQWdCQ0FFS0FJQVFRRnFOZ0lBUVFBaEFBd0JDMEVBSVFBZ0JFRUFOZ0lBQ3lBS1FSQnFKQUFnQUFzS0FDQUFRYXlKQVJCa0M0TUJBZ04vQVg0Q1FDQUFRb0NBZ0lBUVZBUkFJQUFoQlF3QkN3TkFJQUZCQVdzaUFTQUFJQUJDQ29BaUJVSUtmbjJuUVRCeU9nQUFJQUJDLy8vLy81OEJWaUVDSUFVaEFDQUNEUUFMQ3lBRnB5SUNCRUFEUUNBQlFRRnJJZ0VnQWlBQ1FRcHVJZ05CQ214clFUQnlPZ0FBSUFKQkNVc2hCQ0FESVFJZ0JBMEFDd3NnQVF0akFnRi9BWDRqQUVFUWF5SUNKQUFnQUFKK0lBRkZCRUJDQUF3QkN5QUNJQUd0UWdBZ0FXY2lBVUhSQUdvUUx5QUNLUU1JUW9DQWdJQ0FnTUFBaFVHZWdBRWdBV3V0UWpDR2ZDRURJQUlwQXdBTE53TUFJQUFnQXpjRENDQUNRUkJxSkFBTEpBQWdBRUVMVHdSL0lBQkJFR3BCY0hFaUFDQUFRUUZySWdBZ0FFRUxSaHNGUVFvTEMzOEJBMzhnQUNFQkFrQWdBRUVEY1FSQUEwQWdBUzBBQUVVTkFpQUJRUUZxSWdGQkEzRU5BQXNMQTBBZ0FTSUNRUVJxSVFFZ0FpZ0NBQ0lEUVg5eklBTkJnWUtFQ0d0eFFZQ0Jnb1I0Y1VVTkFBc2dBMEgvQVhGRkJFQWdBaUFBYXc4TEEwQWdBaTBBQVNFRElBSkJBV29pQVNFQ0lBTU5BQXNMSUFFZ0FHc0xLUUFnQUNBQlFRaDBRWUNBL0FkeElBRkJHSFJ5SUFGQkNIWkJnUDREY1NBQlFSaDJjbkkyQUFBTEtRQWdBQ2dBQUNJQVFSaDBJQUJCQ0hSQmdJRDhCM0Z5SUFCQkNIWkJnUDREY1NBQVFSaDJjbklMRHdBZ0FDQUFLQUlBUVFScU5nSUFDd2NBSUFCQkJHb0xEd0FnQUNBQUtBSUFRUUZxTmdJQUN6Y0JBbjhqQUVFUWF5SURKQUFnQTBFSWFpSUVJQUVRRHlBQ0lBUVFqQUVpQVJBNE5nSUFJQUFnQVJBM0lBUVFEaUFEUVJCcUpBQUxOUUVDZnlNQVFSQnJJZ0lrQUNBQ1FRaHFJZ01nQUJBUElBTVFPMEhnMEFCQit0QUFJQUVRWXlBREVBNGdBa0VRYWlRQUlBRUxOd0VDZnlNQVFSQnJJZ01rQUNBRFFRaHFJZ1FnQVJBUElBSWdCQkNPQVNJQkVEZzZBQUFnQUNBQkVEY2dCQkFPSUFOQkVHb2tBQXNYQUNBQUlBTTJBaEFnQUNBQ05nSU1JQUFnQVRZQ0NBc0tBQ0FBUVJoMFFSaDFDMElBSUFBZ0FDZ0NBQ0FCS0FJQWN6WUNBQ0FBSUFBb0FnUWdBU2dDQkhNMkFnUWdBQ0FBS0FJSUlBRW9BZ2h6TmdJSUlBQWdBQ2dDRENBQktBSU1jellDREF1Y0NBRUxmeUFBUlFSQUlBRVFHUThMSUFGQlFFOEVRRUhVZ1FGQk1EWUNBRUVBRHdzQ2YwRVFJQUZCQzJwQmVIRWdBVUVMU1JzaEJpQUFRUWhySWdVb0FnUWlDVUY0Y1NFRUFrQWdDVUVEY1VVRVFFRUFJQVpCZ0FKSkRRSWFJQVpCQkdvZ0JFMEVRQ0FGSVFJZ0JDQUdhMEc0aFFFb0FnQkJBWFJORFFJTFFRQU1BZ3NnQkNBRmFpRUhBa0FnQkNBR1R3UkFJQVFnQm1zaUEwRVFTUTBCSUFVZ0NVRUJjU0FHY2tFQ2NqWUNCQ0FGSUFacUlnSWdBMEVEY2pZQ0JDQUhJQWNvQWdSQkFYSTJBZ1FnQWlBREVPd0JEQUVMSUFkQjhJRUJLQUlBUmdSQVFlU0JBU2dDQUNBRWFpSUVJQVpORFFJZ0JTQUpRUUZ4SUFaeVFRSnlOZ0lFSUFVZ0Jtb2lBeUFFSUFacklnSkJBWEkyQWdSQjVJRUJJQUkyQWdCQjhJRUJJQU0yQWdBTUFRc2dCMEhzZ1FFb0FnQkdCRUJCNElFQktBSUFJQVJxSWdNZ0Jra05BZ0pBSUFNZ0Jtc2lBa0VRVHdSQUlBVWdDVUVCY1NBR2NrRUNjallDQkNBRklBWnFJZ1FnQWtFQmNqWUNCQ0FESUFWcUlnTWdBallDQUNBRElBTW9BZ1JCZm5FMkFnUU1BUXNnQlNBSlFRRnhJQU55UVFKeU5nSUVJQU1nQldvaUFpQUNLQUlFUVFGeU5nSUVRUUFoQWtFQUlRUUxRZXlCQVNBRU5nSUFRZUNCQVNBQ05nSUFEQUVMSUFjb0FnUWlBMEVDY1EwQklBTkJlSEVnQkdvaUNpQUdTUTBCSUFvZ0Jtc2hEQUpBSUFOQi93Rk5CRUFnQnlnQ0NDSUVJQU5CQTNZaUFrRURkRUdBZ2dGcVJob2dCQ0FIS0FJTUlnTkdCRUJCMklFQlFkaUJBU2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUVJQU0yQWd3Z0F5QUVOZ0lJREFFTElBY29BaGdoQ3dKQUlBY2dCeWdDRENJSVJ3UkFJQWNvQWdnaUFrSG9nUUVvQWdCSkdpQUNJQWcyQWd3Z0NDQUNOZ0lJREFFTEFrQWdCMEVVYWlJRUtBSUFJZ0lOQUNBSFFSQnFJZ1FvQWdBaUFnMEFRUUFoQ0F3QkN3TkFJQVFoQXlBQ0lnaEJGR29pQkNnQ0FDSUNEUUFnQ0VFUWFpRUVJQWdvQWhBaUFnMEFDeUFEUVFBMkFnQUxJQXRGRFFBQ1FDQUhJQWNvQWh3aUEwRUNkRUdJaEFGcUlnSW9BZ0JHQkVBZ0FpQUlOZ0lBSUFnTkFVSGNnUUZCM0lFQktBSUFRWDRnQTNkeE5nSUFEQUlMSUF0QkVFRVVJQXNvQWhBZ0IwWWJhaUFJTmdJQUlBaEZEUUVMSUFnZ0N6WUNHQ0FIS0FJUUlnSUVRQ0FJSUFJMkFoQWdBaUFJTmdJWUN5QUhLQUlVSWdKRkRRQWdDQ0FDTmdJVUlBSWdDRFlDR0FzZ0RFRVBUUVJBSUFVZ0NVRUJjU0FLY2tFQ2NqWUNCQ0FGSUFwcUlnSWdBaWdDQkVFQmNqWUNCQXdCQ3lBRklBbEJBWEVnQm5KQkFuSTJBZ1FnQlNBR2FpSURJQXhCQTNJMkFnUWdCU0FLYWlJQ0lBSW9BZ1JCQVhJMkFnUWdBeUFNRU93QkN5QUZJUUlMSUFJTElnSUVRQ0FDUVFocUR3c2dBUkFaSWdWRkJFQkJBQThMSUFVZ0FFRjhRWGdnQUVFRWF5Z0NBQ0lDUVFOeEd5QUNRWGh4YWlJQ0lBRWdBU0FDU3hzUVFob2dBQkFRSUFVTGZRRURmMEVZSVFJQ1FBSkFJQUFnQVhKQkEzRU5BQU5BSUFBb0FnQWdBU2dDQUVjTkFTQUJRUVJxSVFFZ0FFRUVhaUVBSUFKQkJHc2lBa0VEU3cwQUN5QUNSUTBCQ3dOQUlBQXRBQUFpQXlBQkxRQUFJZ1JHQkVBZ0FVRUJhaUVCSUFCQkFXb2hBQ0FDUVFGcklnSU5BUXdDQ3dzZ0F5QUVhdzhMUVFBTFNRRUNmeUFBS0FJRUlnWkJDSFVoQlNBR1FRRnhCRUFnQWlnQ0FDQUZFTVVCSVFVTElBQW9BZ0FpQUNBQklBSWdCV29nQTBFQ0lBWkJBbkViSUFRZ0FDZ0NBQ2dDR0JFS0FBdTJBUUVEZnlNQVFSQnJJZ01rQUNBRElBRTZBQThDUUFKQUFrQUNRQ0FBRURVRVFDQUFFSDBoQVNBQUtBSUVJZ1FnQVVFQmF5SUNSZzBCREFNTFFRb2hCRUVLSVFJZ0FDMEFDeUlCUVFwSERRRUxJQUFnQWtFQklBSWdBaERJQVNBRUlRRWdBQkExRFFFTElBQWhBaUFBSUFGQkFXb1FPZ3dCQ3lBQUtBSUFJUUlnQUNBRVFRRnFFRGtnQkNFQkN5QUJJQUpxSWdBZ0EwRVBhaEEwSUFOQkFEb0FEaUFBUVFGcUlBTkJEbW9RTkNBRFFSQnFKQUFMSkFFQ2Z5TUFRUkJySWdJa0FDQUJJQUFROFFFaEF5QUNRUkJxSkFBZ0FTQUFJQU1iQ3gwQUlBQkJCR29Ra2dKQmYwWUVRQ0FBSUFBb0FnQW9BZ2dSQVFBTEN5UUFJQUFRK1FFaEFDQUJFUGtCSUFCcklnRUVRQ0FDSUFBZ0FSRHFBUXNnQVNBQ2Fnc1JBQ0FBSUFFZ0FTZ0NBQ2dDS0JFREFBc1VBUUYvSUFBb0FnQWhBU0FBUVFBMkFnQWdBUXVyTEFFUmZ5QUFLQUx3QVNFU0lBQW9BZ1FnQVNnQUJDSUVRUmgwSUFSQkNIUkJnSUQ4QjNGeUlBUkJDSFpCZ1A0RGNTQUVRUmgyY25KeklnUkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hCaUFBS0FJSUlBRW9BQWdpQlVFWWRDQUZRUWgwUVlDQS9BZHhjaUFGUVFoMlFZRCtBM0VnQlVFWWRuSnljeUlGUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFnZ0FDZ0NEQ0FCS0FBTUlnTkJHSFFnQTBFSWRFR0FnUHdIY1hJZ0EwRUlka0dBL2dOeElBTkJHSFp5Y25NaUEwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUhJQVZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQ1NBRFFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRb2dBQ2dDQUNBQktBQUFJZ0ZCR0hRZ0FVRUlkRUdBZ1B3SGNYSWdBVUVJZGtHQS9nTnhJQUZCR0haeWNuTWlBVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQUJRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQkVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFT0lBRkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEeUFFUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVJBZ0JVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRVJJQUFvQWhRZ0N5QUtJQWtnQkVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRa2dBQ2dDR0NBT0lBMGdEQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdWQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaENpQUFLQUljSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFTElBVkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEQ0FEUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVEwZ0FDZ0NFQ0FISUFnZ0JpQUJRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ0ZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQmlBRFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRZ2dBVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VISUFSQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaERpQUJRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUThnQkVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFUUlBVkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hFU0FBS0FJa0lBWWdEU0FNSUFSQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUdJQUFvQWlnZ0RpQUhJQWdnQlVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRZ2dBQ2dDTENBUklCQWdEeUFEUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdOQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEJ5QUZRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUXdnQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTklBQW9BaUFnQ3lBS0lBa2dBVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlCUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFrZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUtJQUZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ3lBRVFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRNGdBVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VQSUFSQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEVDQUZRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUkVnQUNnQ05DQUpJQTBnRENBRVFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnUkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hDU0FBS0FJNElBNGdDeUFLSUFWQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUtJQUFvQWp3Z0VTQVFJQThnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRc2dCVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VNSUFOQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaERTQUFLQUl3SUFjZ0NDQUdJQUZCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQVVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFR0lBTkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hDQ0FCUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFjZ0JFSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRU9JQUZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRHlBRVFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlSQWdCVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VSSUFBb0FrUWdCaUFOSUF3Z0JFRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUVRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUVlnQUNnQ1NDQU9JQWNnQ0NBRlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnVkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hDQ0FBS0FKTUlCRWdFQ0FQSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUEwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUhJQVZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRENBRFFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRMGdBQ2dDUUNBTElBb2dDU0FCUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdGQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaENTQURRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUW9nQVVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTElBUkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hEaUFCUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVE4Z0JFRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRVFJQVZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRVNBQUtBSlVJQWtnRFNBTUlBUkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCRUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VKSUFBb0FsZ2dEaUFMSUFvZ0JVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUZRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUW9nQUNnQ1hDQVJJQkFnRHlBRFFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hDeUFGUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVF3Z0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRU5JQUFvQWxBZ0J5QUlJQVlnQVVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRWWdBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VJSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEJ5QUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0NaQ0FHSUEwZ0RDQUVRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1JCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQmlBQUtBSm9JQTRnQnlBSUlBVkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VJSUFBb0Ftd2dFU0FRSUE4Z0EwRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUWNnQlVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFTUlBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hEU0FBS0FKZ0lBc2dDaUFKSUFGQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUFVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUpJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQ2lBQlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRc2dCRUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VPSUFGQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaER5QUVRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUkFnQlVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFUklBQW9BblFnQ1NBTklBd2dCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFrZ0FDZ0NlQ0FPSUFzZ0NpQUZRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1ZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQUtBSjhJQkVnRUNBUElBTkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFWQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQURRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQUNnQ2NDQUhJQWdnQmlBQlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnRkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hCaUFEUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFjZ0FVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRU9JQVJCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRHlBQlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlSQWdCRUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VSSUFWQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEV5QUFLQUtFQVNBR0lBMGdEQ0FFUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdaQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnZ0FDZ0NnQUVnQ3lBS0lBa2dBVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlJUVJaMlFmd0hjVUdBQ0dvb0FnQnpJQUFvQW9nQklBOGdEaUFISUFWQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUIwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNITWdBQ2dDakFFZ0V5QVJJQkFnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUtRQVhNaEFTQUhRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJQVpCRm5aQi9BZHhRWUFJYWlnQ0FITWdBMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQ0VIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0NsQUZ6SVFRZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUhRUloyUWZ3SGNVR0FDR29vQWdCeklBaEJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQVpCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0FwZ0JjeUVGQW44Z0NFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQURRUloyUWZ3SGNVR0FDR29vQWdCeklBWkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQWRCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0Fwd0JjeUlESUJKQkMwZ05BQm9nQkVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFSUlBVkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hCeUFEUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFrZ0JVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUdJQU5CQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRc2dBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VNSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaERTQUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0NwQUVnQ3lBS0lBWWdCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlHUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFBb0FxQUJJQWtnQnlBSUlBRkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlDRUVXZGtIOEIzRkJnQWhxS0FJQWN5QUFLQUtvQVNBT0lBMGdEQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdkQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFoeklBQW9BcXdCSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0NzQUZ6SVFFZ0IwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUdRUloyUWZ3SGNVR0FDR29vQWdCeklBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQWhCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0FyUUJjeUVFSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnZ0IwRVdka0g4QjNGQmdBaHFLQUlBY3lBSVFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSWN5QUdRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUljeUFBS0FLNEFYTWhCU0FJUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQmtFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0IwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNITWdBQ2dDdkFGeklnTWdFa0VOU0EwQUdpQUVRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUWdnQlVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFSElBTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hDU0FGUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFZZ0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUtJQUZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQ3lBRFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRd2dBVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VOSUFSQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaERpQUJRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUThnQkVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFUUlBVkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hFU0FBS0FMRUFTQUxJQW9nQmlBRVFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnWkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2dBQ2dDd0FFZ0NTQUhJQWdnQVVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJSVFSWjJRZndIY1VHQUNHb29BZ0J6SUFBb0FzZ0JJQTRnRFNBTUlBVkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQUNnQ3pBRWdFU0FRSUE4Z0EwRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUljeUFBS0FMUUFYTWhBU0FIUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFaQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0NFSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNITWdBQ2dDMUFGeklRUWdBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0FIUVJaMlFmd0hjVUdBQ0dvb0FnQnpJQWhCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWh6SUFaQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFoeklBQW9BdGdCY3lFRklBaEJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2dBMEVXZGtIOEIzRkJnQWhxS0FJQWN5QUdRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUljeUFIUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJY3lBQUtBTGNBWE1MSVFNZ0FpQUFJQkpCQkhScUlnQW9BZ0FnQTBIL0FYRkJBblJCZ0FocUxRQUJJQUZCRm5aQi9BZHhRWUFJYWlnQ0FFRUlkRUdBZ0lCNGNTQUVRUTUyUWZ3SGNVR0FDR290QUFKQkVIUnlJQVZCQm5aQi9BZHhRWUFJYWkwQUFVRUlkSEp5Y3lJU1FSaDBJQkpCQ0hSQmdJRDhCM0Z5SUJKQkNIWkJnUDREY1NBU1FSaDJjbkkyQUFBZ0FpQUFLQUlFSUFGQi93RnhRUUowUVlBSWFpMEFBU0FFUVJaMlFmd0hjVUdBQ0dvb0FnQkJDSFJCZ0lDQWVIRWdCVUVPZGtIOEIzRkJnQWhxTFFBQ1FSQjBjaUFEUVFaMlFmd0hjVUdBQ0dvdEFBRkJDSFJ5Y25NaUVrRVlkQ0FTUVFoMFFZQ0EvQWR4Y2lBU1FRaDJRWUQrQTNFZ0VrRVlkbkp5TmdBRUlBSWdBQ2dDQ0NBRVFmOEJjVUVDZEVHQUNHb3RBQUVnQlVFV2RrSDhCM0ZCZ0FocUtBSUFRUWgwUVlDQWdIaHhJQU5CRG5aQi9BZHhRWUFJYWkwQUFrRVFkSElnQVVFR2RrSDhCM0ZCZ0FocUxRQUJRUWgwY25KekloSkJHSFFnRWtFSWRFR0FnUHdIY1hJZ0VrRUlka0dBL2dOeElCSkJHSFp5Y2pZQUNDQUNJQUFvQWd3Z0JVSC9BWEZCQW5SQmdBaHFMUUFCSUFOQkZuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjU0FCUVE1MlFmd0hjVUdBQ0dvdEFBSkJFSFJ5SUFSQkJuWkIvQWR4UVlBSWFpMEFBVUVJZEhKeWN5SUFRUmgwSUFCQkNIUkJnSUQ4QjNGeUlBQkJDSFpCZ1A0RGNTQUFRUmgyY25JMkFBd0xEZ0FnQUNBQktBSUFOZ0lBSUFBTEJ3QWdBQkJIR2dzSUFFSC8vLy8vQndzRkFFSC9BQXNEQUFFTEt3QUNRQ0FBSUFGR0RRQURRQ0FBSUFGQkJHc2lBVThOQVNBQUlBRVFkU0FBUVFScUlRQU1BQXNBQ3d2VUF3RUlmeU1BUVJCcklnb2tBQ0FHRURzaEN5QUtJQVlRakFFaUJoQTNBa0FnQ2hCSkJFQWdDeUFBSUFJZ0F4QmpJQVVnQXlBQ0lBQnJRUUowYWlJR05nSUFEQUVMSUFVZ0F6WUNBQUpBQWtBZ0FDSUlMUUFBSWdkQksyc09Bd0FCQUFFTElBc2dCMEVZZEVFWWRSQTlJUWdnQlNBRktBSUFJZ2RCQkdvMkFnQWdCeUFJTmdJQUlBQkJBV29oQ0FzQ1FDQUNJQWhyUVFKSURRQWdDQzBBQUVFd1J3MEFJQWd0QUFGQklISkIrQUJIRFFBZ0MwRXdFRDBoQnlBRklBVW9BZ0FpQ1VFRWFqWUNBQ0FKSUFjMkFnQWdDeUFJTEFBQkVEMGhCeUFGSUFVb0FnQWlDVUVFYWpZQ0FDQUpJQWMyQWdBZ0NFRUNhaUVJQ3lBSUlBSVFlVUVBSVFrZ0JoQTRJUXhCQUNFSElBZ2hCZ04vSUFJZ0JrMEVmeUFESUFnZ0FHdEJBblJxSUFVb0FnQVFyUUVnQlNnQ0FBVUNRQ0FLSUFjUUN5MEFBRVVOQUNBSklBb2dCeEFMTEFBQVJ3MEFJQVVnQlNnQ0FDSUpRUVJxTmdJQUlBa2dERFlDQUNBSElBY2dDaEFKUVFGclNXb2hCMEVBSVFrTElBc2dCaXdBQUJBOUlRMGdCU0FGS0FJQUlnNUJCR28yQWdBZ0RpQU5OZ0lBSUFaQkFXb2hCaUFKUVFGcUlRa01BUXNMSVFZTElBUWdCaUFESUFFZ0FHdEJBblJxSUFFZ0FrWWJOZ0lBSUFvUUNob2dDa0VRYWlRQUM5QUJBUUovSUFKQmdCQnhCRUFnQUVFck9nQUFJQUJCQVdvaEFBc2dBa0dBQ0hFRVFDQUFRU002QUFBZ0FFRUJhaUVBQ3lBQ1FZUUNjU0lEUVlRQ1J3UkFJQUJCcnRRQU93QUFJQUJCQW1vaEFBc2dBa0dBZ0FGeElRSURRQ0FCTFFBQUlnUUVRQ0FBSUFRNkFBQWdBRUVCYWlFQUlBRkJBV29oQVF3QkN3c2dBQUovQWtBZ0EwR0FBa2NFUUNBRFFRUkhEUUZCeGdCQjVnQWdBaHNNQWd0QnhRQkI1UUFnQWhzTUFRdEJ3UUJCNFFBZ0Foc2dBMEdFQWtZTkFCcEJ4d0JCNXdBZ0Foc0xPZ0FBSUFOQmhBSkhDOG9EQVFoL0l3QkJFR3NpQ2lRQUlBWVFNaUVMSUFvZ0JoQ09BU0lHRURjQ1FDQUtFRWtFUUNBTElBQWdBaUFERUc4Z0JTQURJQUlnQUd0cUlnWTJBZ0FNQVFzZ0JTQUROZ0lBQWtBQ1FDQUFJZ2d0QUFBaUIwRXJhdzREQUFFQUFRc2dDeUFIUVJoMFFSaDFFQ2toQ0NBRklBVW9BZ0FpQjBFQmFqWUNBQ0FISUFnNkFBQWdBRUVCYWlFSUN3SkFJQUlnQ0d0QkFrZ05BQ0FJTFFBQVFUQkhEUUFnQ0MwQUFVRWdja0g0QUVjTkFDQUxRVEFRS1NFSElBVWdCU2dDQUNJSlFRRnFOZ0lBSUFrZ0J6b0FBQ0FMSUFnc0FBRVFLU0VISUFVZ0JTZ0NBQ0lKUVFGcU5nSUFJQWtnQnpvQUFDQUlRUUpxSVFnTElBZ2dBaEI1UVFBaENTQUdFRGdoREVFQUlRY2dDQ0VHQTM4Z0FpQUdUUVIvSUFNZ0NDQUFhMm9nQlNnQ0FCQjVJQVVvQWdBRkFrQWdDaUFIRUFzdEFBQkZEUUFnQ1NBS0lBY1FDeXdBQUVjTkFDQUZJQVVvQWdBaUNVRUJhallDQUNBSklBdzZBQUFnQnlBSElBb1FDVUVCYTBscUlRZEJBQ0VKQ3lBTElBWXNBQUFRS1NFTklBVWdCU2dDQUNJT1FRRnFOZ0lBSUE0Z0RUb0FBQ0FHUVFGcUlRWWdDVUVCYWlFSkRBRUxDeUVHQ3lBRUlBWWdBeUFCSUFCcmFpQUJJQUpHR3pZQ0FDQUtFQW9hSUFwQkVHb2tBQXNNQUNBQUVBMGdBVUVDZEdvTHFnUUJDMzhqQUVHQUFXc2lDaVFBSUFvZ0FUWUNlQ0FDSUFNUXpRSWhDQ0FLUVRVMkFoQWdDa0VJYWtFQUlBcEJFR29pQ1JBZUlSQUNRQ0FJUWVVQVR3UkFJQWdRR1NJSlJRMEJJQkFnQ1JBbkN5QUpJUWNnQWlFQkEwQWdBU0FEUmdSQUEwQUNRQ0FBSUFwQitBQnFFRFpCQUNBSUcwVUVRQ0FBSUFwQitBQnFFQ2dFUUNBRklBVW9BZ0JCQW5JMkFnQUxEQUVMSUFBUUlTRU9JQVpGQkVBZ0JDQU9FQ2toRGdzZ0RFRUJhaUVOUVFBaER5QUpJUWNnQWlFQkEwQWdBU0FEUmdSQUlBMGhEQ0FQUlEwRElBQVFKUm9nQ1NFSElBSWhBU0FJSUF0cVFRSkpEUU1EUUNBQklBTkdCRUFNQlFVQ1FDQUhMUUFBUVFKSERRQWdBUkFKSUExR0RRQWdCMEVBT2dBQUlBdEJBV3NoQ3dzZ0IwRUJhaUVISUFGQkRHb2hBUXdCQ3dBTEFBVUNRQ0FITFFBQVFRRkhEUUFnQVNBTUVMRUJLQUlBSVJFQ1FDQUdCSDhnRVFVZ0JDQVJFQ2tMSUE1R0JFQkJBU0VQSUFFUUNTQU5SdzBDSUFkQkFqb0FBQ0FMUVFGcUlRc01BUXNnQjBFQU9nQUFDeUFJUVFGcklRZ0xJQWRCQVdvaEJ5QUJRUXhxSVFFTUFRc0FDd0FMQ3dKQUFrQURRQ0FDSUFOR0RRRWdDUzBBQUVFQ1J3UkFJQWxCQVdvaENTQUNRUXhxSVFJTUFRc0xJQUloQXd3QkN5QUZJQVVvQWdCQkJISTJBZ0FMSUJBUUhTQUtRWUFCYWlRQUlBTVBCUUpBSUFFUVNVVUVRQ0FIUVFFNkFBQU1BUXNnQjBFQ09nQUFJQXRCQVdvaEN5QUlRUUZySVFnTElBZEJBV29oQnlBQlFReHFJUUVNQVFzQUN3QUxFQmNBQ3hFQUlBQWdBU0FBS0FJQUtBSU1FUUlBQzdNRUFRdC9Jd0JCZ0FGcklnb2tBQ0FLSUFFMkFuZ2dBaUFERU0wQ0lRZ2dDa0UxTmdJUUlBcEJDR3BCQUNBS1FSQnFJZ2tRSGlFUUFrQWdDRUhsQUU4RVFDQUlFQmtpQ1VVTkFTQVFJQWtRSndzZ0NTRUhJQUloQVFOQUlBRWdBMFlFUUFOQUFrQWdBQ0FLUWZnQWFoQXhRUUFnQ0J0RkJFQWdBQ0FLUWZnQWFoQW1CRUFnQlNBRktBSUFRUUp5TmdJQUN3d0JDeUFBRUI4aERpQUdSUVJBSUFRZ0RoQ3pBU0VPQ3lBTVFRRnFJUTFCQUNFUElBa2hCeUFDSVFFRFFDQUJJQU5HQkVBZ0RTRU1JQTlGRFFNZ0FCQWlHaUFKSVFjZ0FpRUJJQWdnQzJwQkFra05Bd05BSUFFZ0EwWUVRQXdGQlFKQUlBY3RBQUJCQWtjTkFDQUJFQWtnRFVZTkFDQUhRUUE2QUFBZ0MwRUJheUVMQ3lBSFFRRnFJUWNnQVVFTWFpRUJEQUVMQUFzQUJRSkFJQWN0QUFCQkFVY05BQ0FCSUF3UUN5d0FBQ0VSQWtBZ0RrSC9BWEVnQmdSL0lCRUZJQVFnRVJDekFRdEIvd0Z4UmdSQVFRRWhEeUFCRUFrZ0RVY05BaUFIUVFJNkFBQWdDMEVCYWlFTERBRUxJQWRCQURvQUFBc2dDRUVCYXlFSUN5QUhRUUZxSVFjZ0FVRU1haUVCREFFTEFBc0FDd3NDUUFKQUEwQWdBaUFEUmcwQklBa3RBQUJCQWtjRVFDQUpRUUZxSVFrZ0FrRU1haUVDREFFTEN5QUNJUU1NQVFzZ0JTQUZLQUlBUVFSeU5nSUFDeUFRRUIwZ0NrR0FBV29rQUNBRER3VUNRQ0FCRUVsRkJFQWdCMEVCT2dBQURBRUxJQWRCQWpvQUFDQUxRUUZxSVFzZ0NFRUJheUVJQ3lBSFFRRnFJUWNnQVVFTWFpRUJEQUVMQUFzQUN4QVhBQXZsQXdFRGZ5TUFRYUFCYXlJRUpBQkJmeUVGSUFRZ0FVRUJhMEVBSUFFYk5nS1VBU0FFSUFBZ0JFR2VBV29nQVJzaUJqWUNrQUVnQkVFQVFaQUJFRVlpQUVGL05nSk1JQUJCTkRZQ0pDQUFRWDgyQWxBZ0FDQUFRWjhCYWpZQ0xDQUFJQUJCa0FGcU5nSlVBa0FnQVVFQVNBUkFRZFNCQVVFOU5nSUFEQUVMSUFaQkFEb0FBRUVBSVFRakFFSFFBV3NpQVNRQUlBRWdBellDekFFZ0FVR2dBV29pQTBFQVFTZ1FSaG9nQVNBQktBTE1BVFlDeUFFQ1FFRUFJQUlnQVVISUFXb2dBVUhRQUdvZ0F4RGNBa0VBU0FSQVFYOGhBZ3dCQ3lBQUtBSk1RUUJPSVFVZ0FDZ0NBQ0VESUFBb0FraEJBRXdFUUNBQUlBTkJYM0UyQWdBTEFuOENRQUpBSUFBb0FqQkZCRUFnQUVIUUFEWUNNQ0FBUVFBMkFod2dBRUlBTndNUUlBQW9BaXdoQkNBQUlBRTJBaXdNQVFzZ0FDZ0NFQTBCQzBGL0lBQVE2QUVOQVJvTElBQWdBaUFCUWNnQmFpQUJRZEFBYWlBQlFhQUJhaERjQWdzaEFpQUVCRUFnQUVFQVFRQWdBQ2dDSkJFRUFCb2dBRUVBTmdJd0lBQWdCRFlDTENBQVFRQTJBaHdnQUVFQU5nSVFJQUFvQWhRaEJDQUFRUUEyQWhRZ0FrRi9JQVFiSVFJTElBQWdBQ2dDQUNJRUlBTkJJSEZ5TmdJQVFYOGdBaUFFUVNCeEd5RUNJQVZGRFFBTElBRkIwQUZxSkFBZ0FpRUZDeUFBUWFBQmFpUUFJQVVMU2dFQ2Z3SkFJQUF0QUFBaUFrVWdBaUFCTFFBQUlnTkhjZzBBQTBBZ0FTMEFBU0VESUFBdEFBRWlBa1VOQVNBQlFRRnFJUUVnQUVFQmFpRUFJQUlnQTBZTkFBc0xJQUlnQTJzTDVBSUJCbjhqQUVFUWF5SUhKQUFnQTBId2hnRWdBeHNpQlNnQ0FDRURBa0FDUUFKQUlBRkZCRUFnQXcwQkRBTUxRWDRoQkNBQ1JRMENJQUFnQjBFTWFpQUFHeUVHQWtBZ0F3UkFJQUloQUF3QkN5QUJMUUFBSWdCQkdIUkJHSFVpQTBFQVRnUkFJQVlnQURZQ0FDQURRUUJISVFRTUJBc2dBU3dBQUNFQVFkaUdBU2dDQUNnQ0FFVUVRQ0FHSUFCQi83OERjVFlDQUVFQklRUU1CQXNnQUVIL0FYRkJ3Z0ZySWdCQk1rc05BU0FBUVFKMFFjQXJhaWdDQUNFRElBSkJBV3NpQUVVTkFpQUJRUUZxSVFFTElBRXRBQUFpQ0VFRGRpSUpRUkJySUFOQkduVWdDV3B5UVFkTERRQURRQ0FBUVFGcklRQWdDRUdBQVdzZ0EwRUdkSElpQTBFQVRnUkFJQVZCQURZQ0FDQUdJQU0yQWdBZ0FpQUFheUVFREFRTElBQkZEUUlnQVVFQmFpSUJMUUFBSWdoQndBRnhRWUFCUmcwQUN3c2dCVUVBTmdJQVFkU0JBVUVaTmdJQVFYOGhCQXdCQ3lBRklBTTJBZ0FMSUFkQkVHb2tBQ0FFQ3d3QUlBQkJER29RZmhvZ0FBc0lBQ0FBS0FJUVJRc29BUUovSXdCQkVHc2lBaVFBSUFFb0FnQWdBQ2dDQUVnaEF5QUNRUkJxSkFBZ0FTQUFJQU1iQ3hBQUlBQWdBVGNEQ0NBQVFnQTNBd0FMRXdBZ0FFRzhIellDQUNBQVFRUnFFQTRnQUFzRUFFRUJDMlVCQTM4Z0FrVUVRRUVBRHdzQ1FDQUFMUUFBSWdORkRRQURRQUpBSUFFdEFBQWlCVVVOQUNBQ1FRRnJJZ0pGSUFNZ0JVZHlEUUFnQVVFQmFpRUJJQUF0QUFFaEF5QUFRUUZxSVFBZ0F3MEJEQUlMQ3lBRElRUUxJQVJCL3dGeElBRXRBQUJyQzY0QkFRUi9Jd0JCRUdzaUJTUUFJQUVoQkNBQ1FSQlBCRUFnQWtFRWRpRUhBMEFnQXlBRUVKMEJJQU1nQUNBRkVMSUNJQU1nQlNrRENEY0FDQ0FESUFVcEF3QTNBQUFnQkVFUWFpRUVJQVpCQVdvaUJpQUhSdzBBQ3dzZ0JDQUJJQUpxSWdGSkJFQWdCU0FFSUFFZ0JHc2lBaEJDSWdFZ0FtcEJBRUVRSUFKckVFWWFJQU1nQVJDZEFTQURJQUFnQVJDeUFpQURJQUVwQXdnM0FBZ2dBeUFCS1FNQU53QUFDeUFGUVJCcUpBQUxHZ0FnQUNBQklBRW9BZ0JCREdzb0FnQnFLQUlZTmdJQUlBQUxLd0VCZnlBQVFmei9BRFlDQUFKQUlBQW9BZ1JCREdzaUFVRUlhaENTQWtFQVRnMEFJQUVRRUFzZ0FBdExBUUovSUFBb0FnUWlCMEVJZFNFR0lBZEJBWEVFUUNBREtBSUFJQVlReFFFaEJnc2dBQ2dDQUNJQUlBRWdBaUFESUFacUlBUkJBaUFIUVFKeEd5QUZJQUFvQWdBb0FoUVJDUUFMSUFBQ1FDQUFLQUlFSUFGSERRQWdBQ2dDSEVFQlJnMEFJQUFnQWpZQ0hBc0xtZ0VBSUFCQkFUb0FOUUpBSUFBb0FnUWdBa2NOQUNBQVFRRTZBRFFDUUNBQUtBSVFJZ0pGQkVBZ0FFRUJOZ0lrSUFBZ0F6WUNHQ0FBSUFFMkFoQWdBQ2dDTUVFQlJ3MENJQU5CQVVZTkFRd0NDeUFCSUFKR0JFQWdBQ2dDR0NJQ1FRSkdCRUFnQUNBRE5nSVlJQU1oQWdzZ0FDZ0NNRUVCUncwQ0lBSkJBVVlOQVF3Q0N5QUFJQUFvQWlSQkFXbzJBaVFMSUFCQkFUb0FOZ3NMQ2dBZ0FDQUJhaWdDQUF0ZEFRRi9JQUFvQWhBaUEwVUVRQ0FBUVFFMkFpUWdBQ0FDTmdJWUlBQWdBVFlDRUE4TEFrQWdBU0FEUmdSQUlBQW9BaGhCQWtjTkFTQUFJQUkyQWhnUEN5QUFRUUU2QURZZ0FFRUNOZ0lZSUFBZ0FDZ0NKRUVCYWpZQ0pBc0x1UUVCQTM4akFFRVFheUlESkFBZ0F5QUJOZ0lNQWtBQ1FBSkFBa0FnQUJBMUJFQWdBQkI5SVFFZ0FDZ0NCQ0lFSUFGQkFXc2lBa1lOQVF3REMwRUJJUVJCQVNFQ0lBQXRBQXNpQVVFQlJ3MEJDeUFBSUFKQkFTQUNJQUlROHdFZ0JDRUJJQUFRTlEwQkN5QUFJUUlnQUNBQlFRRnFFRG9NQVFzZ0FDZ0NBQ0VDSUFBZ0JFRUJhaEE1SUFRaEFRc2dBaUFCUVFKMGFpSUFJQU5CREdvUU15QURRUUEyQWdnZ0FFRUVhaUFEUVFocUVETWdBMEVRYWlRQUM2OEJBUU4vSXdCQkVHc2lCU1FBSUFKQmJ5SUdJQUZyVFFSQUlBQVFEU0VIQW44Z0FTQUdRUUYyUVJCclNRUkFJQVVnQVVFQmREWUNDQ0FGSUFFZ0FtbzJBZ3dnQlVFTWFpQUZRUWhxRUhZb0FnQVFrUUVNQVFzZ0JrRUJhd3RCQVdvaUJoQmZJUUlnQkFSQUlBSWdCeUFFRUZVTElBTWdCR3NpQXdSQUlBSWdCR29nQkNBSGFpQURFRlVMSUFGQkNrY0VRQ0FIRUJBTElBQWdBaEJOSUFBZ0JoQk1JQVZCRUdva0FBOExFQmNBQ3dNQUFRc1hBQ0FBS0FJSUVCWkhCRUFnQUNnQ0NCRFVBZ3NnQUFzNEFRRi9Jd0JCRUdzaUF5UUFJQU1nQWpZQ0RDQURRUWhxSUFOQkRHb1FVaUVDSUFBZ0FSRGFBU0VBSUFJUVVTQURRUkJxSkFBZ0FBc0xBQ0FFSUFJMkFnQkJBd3NKQUNBQVFRQTJBZ0FMRHdBZ0FDQUFLQUlFUVFGcU5nSUVDeGtCQVg5QkFTRUJJQUFRTlFSL0lBQVFmVUVCYXdVZ0FRc0xHZ0FnQUVHMElUWUNBQ0FBUVNCcUVBb2FJQUFRdkFFYUlBQUxrd0VCQkg4akFFRVFheUlESkFBQ1FDQUJFRFZGQkVBZ0FDQUJLQUlJTmdJSUlBQWdBU2tDQURjQ0FBd0JDeUFCS0FJQUlRUUNRQUpBQWtBZ0FTZ0NCQ0lDUVFwTkJFQWdBQ0VCSUFBZ0FoQTZEQUVMSUFKQmIwc05BU0FBSUFJUWtRRkJBV29pQlJCZklnRVFUU0FBSUFVUVRDQUFJQUlRT1FzZ0FTQUVJQUpCQVdvUVZRd0JDeEFYQUFzTElBTkJFR29rQUFzeEFDQUNLQUlBSVFJRFFBSkFJQUFnQVVjRWZ5QUFLQUlBSUFKSERRRWdBQVVnQVFzUEN5QUFRUVJxSVFBTUFBc0FDL2tEQVFGL0l3QkJFR3NpRENRQUlBd2dBRFlDREFKQUFrQWdBQ0FGUmdSQUlBRXRBQUJGRFFGQkFDRUFJQUZCQURvQUFDQUVJQVFvQWdBaUFVRUJhallDQUNBQlFTNDZBQUFnQnhBSlJRMENJQWtvQWdBaUFTQUlhMEdmQVVvTkFpQUtLQUlBSVFJZ0NTQUJRUVJxTmdJQUlBRWdBallDQUF3Q0N3SkFJQUFnQmtjTkFDQUhFQWxGRFFBZ0FTMEFBRVVOQVVFQUlRQWdDU2dDQUNJQklBaHJRWjhCU2cwQ0lBb29BZ0FoQUNBSklBRkJCR28yQWdBZ0FTQUFOZ0lBUVFBaEFDQUtRUUEyQWdBTUFndEJmeUVBSUFzZ0MwR0FBV29nREVFTWFoRFNBU0FMYXlJRlFmd0FTZzBCSUFWQkFuVkI0TkFBYWkwQUFDRUdBa0FDUUNBRlFYdHhJZ0JCMkFCSEJFQWdBRUhnQUVjTkFTQURJQVFvQWdBaUFVY0VRRUYvSVFBZ0FVRUJheTBBQUVIZkFIRWdBaTBBQUVIL0FIRkhEUVVMSUFRZ0FVRUJhallDQUNBQklBWTZBQUJCQUNFQURBUUxJQUpCMEFBNkFBQU1BUXNnQWl3QUFDSUFJQVpCM3dCeFJ3MEFJQUlnQUVHQUFYSTZBQUFnQVMwQUFFVU5BQ0FCUVFBNkFBQWdCeEFKUlEwQUlBa29BZ0FpQUNBSWEwR2ZBVW9OQUNBS0tBSUFJUUVnQ1NBQVFRUnFOZ0lBSUFBZ0FUWUNBQXNnQkNBRUtBSUFJZ0JCQVdvMkFnQWdBQ0FHT2dBQVFRQWhBQ0FGUWRRQVNnMEJJQW9nQ2lnQ0FFRUJhallDQUF3QkMwRi9JUUFMSUF4QkVHb2tBQ0FBQzFBQkFuOGpBRUVRYXlJR0pBQWdCa0VJYWlJRklBRVFEeUFGRUR0QjROQUFRWURSQUNBQ0VHTWdBeUFGRUl3QklnRVFTRFlDQUNBRUlBRVFPRFlDQUNBQUlBRVFOeUFGRUE0Z0JrRVFhaVFBQ3pFQUlBSXRBQUFoQWdOQUFrQWdBQ0FCUndSL0lBQXRBQUFnQWtjTkFTQUFCU0FCQ3c4TElBQkJBV29oQUF3QUN3QUw3UU1CQVg4akFFRVFheUlNSkFBZ0RDQUFPZ0FQQWtBQ1FDQUFJQVZHQkVBZ0FTMEFBRVVOQVVFQUlRQWdBVUVBT2dBQUlBUWdCQ2dDQUNJQlFRRnFOZ0lBSUFGQkxqb0FBQ0FIRUFsRkRRSWdDU2dDQUNJQklBaHJRWjhCU2cwQ0lBb29BZ0FoQWlBSklBRkJCR28yQWdBZ0FTQUNOZ0lBREFJTEFrQWdBQ0FHUncwQUlBY1FDVVVOQUNBQkxRQUFSUTBCUVFBaEFDQUpLQUlBSWdFZ0NHdEJud0ZLRFFJZ0NpZ0NBQ0VBSUFrZ0FVRUVhallDQUNBQklBQTJBZ0JCQUNFQUlBcEJBRFlDQUF3Q0MwRi9JUUFnQ3lBTFFTQnFJQXhCRDJvUTFRRWdDMnNpQlVFZlNnMEJJQVZCNE5BQWFpMEFBQ0VHQWtBQ1FBSkFBa0FnQlVGK2NVRVdhdzREQVFJQUFnc2dBeUFFS0FJQUlnRkhCRUFnQVVFQmF5MEFBRUhmQUhFZ0FpMEFBRUgvQUhGSERRVUxJQVFnQVVFQmFqWUNBQ0FCSUFZNkFBQkJBQ0VBREFRTElBSkIwQUE2QUFBTUFRc2dBaXdBQUNJQUlBWkIzd0J4UncwQUlBSWdBRUdBQVhJNkFBQWdBUzBBQUVVTkFDQUJRUUE2QUFBZ0J4QUpSUTBBSUFrb0FnQWlBQ0FJYTBHZkFVb05BQ0FLS0FJQUlRRWdDU0FBUVFScU5nSUFJQUFnQVRZQ0FBc2dCQ0FFS0FJQUlnQkJBV28yQWdBZ0FDQUdPZ0FBUVFBaEFDQUZRUlZLRFFFZ0NpQUtLQUlBUVFGcU5nSUFEQUVMUVg4aEFBc2dERUVRYWlRQUlBQUxVQUVDZnlNQVFSQnJJZ1lrQUNBR1FRaHFJZ1VnQVJBUElBVVFNa0hnMEFCQmdORUFJQUlRYnlBRElBVVFqZ0VpQVJCSU9nQUFJQVFnQVJBNE9nQUFJQUFnQVJBM0lBVVFEaUFHUVJCcUpBQUxmZ0lDZndKK0l3QkJvQUZySWdRa0FDQUVJQUUyQWp3Z0JDQUJOZ0lVSUFSQmZ6WUNHQ0FFUVJCcUlnVkNBQkJUSUFRZ0JTQURRUUVRNWdJZ0JDa0RDQ0VHSUFRcEF3QWhCeUFDQkVBZ0FpQUJJQVFvQWhRZ0JDZ0NpQUZxSUFRb0FqeHJhallDQUFzZ0FDQUhOd01BSUFBZ0JqY0RDQ0FFUWFBQmFpUUFDdzBBSUFBZ0FTQUNRbjhRMEFJTGlRSUFBa0FnQUFSL0lBRkIvd0JORFFFQ1FFSFloZ0VvQWdBb0FnQkZCRUFnQVVHQWYzRkJnTDhEUmcwRERBRUxJQUZCL3c5TkJFQWdBQ0FCUVQ5eFFZQUJjam9BQVNBQUlBRkJCblpCd0FGeU9nQUFRUUlQQ3lBQlFZQkFjVUdBd0FOSElBRkJnTEFEVDNGRkJFQWdBQ0FCUVQ5eFFZQUJjam9BQWlBQUlBRkJESFpCNEFGeU9nQUFJQUFnQVVFR2RrRS9jVUdBQVhJNkFBRkJBdzhMSUFGQmdJQUVhMEgvL3o5TkJFQWdBQ0FCUVQ5eFFZQUJjam9BQXlBQUlBRkJFblpCOEFGeU9nQUFJQUFnQVVFR2RrRS9jVUdBQVhJNkFBSWdBQ0FCUVF4MlFUOXhRWUFCY2pvQUFVRUVEd3NMUWRTQkFVRVpOZ0lBUVg4RlFRRUxEd3NnQUNBQk9nQUFRUUVMcndJQkJIOENmd0pBSUFBaUFVRURjUVJBQTBBZ0FTMEFBQ0lDUlNBQ1FUMUdjZzBDSUFGQkFXb2lBVUVEY1EwQUN3c0NRQ0FCS0FJQUlnSkJmM01nQWtHQmdvUUlhM0ZCZ0lHQ2hIaHhEUUFEUUNBQ1FiMzY5T2tEY3lJQ1FYOXpJQUpCZ1lLRUNHdHhRWUNCZ29SNGNRMEJJQUVvQWdRaEFpQUJRUVJxSVFFZ0FrR0Jnb1FJYXlBQ1FYOXpjVUdBZ1lLRWVIRkZEUUFMQ3dOQUlBRWlBaTBBQUNJREJFQWdBa0VCYWlFQklBTkJQVWNOQVFzTElBSU1BUXNnQVFzZ0FHc2lBa1VFUUVFQUR3c0NRQ0FBSUFKcUxRQUFEUUJCOUlZQktBSUFJZ0ZGRFFBZ0FTZ0NBQ0lEUlEwQUEwQUNRQ0FBSUFNZ0FoQytBVVVFUUNBQktBSUFJQUpxSWdNdEFBQkJQVVlOQVFzZ0FTZ0NCQ0VESUFGQkJHb2hBU0FERFFFTUFnc0xJQU5CQVdvaEJBc2dCQXZoQVFFQ2Z5QUNRUUJISVFNQ1FBSkFBa0FnQUVFRGNVVWdBa1Z5RFFBZ0FVSC9BWEVoQkFOQUlBQXRBQUFnQkVZTkFpQUNRUUZySWdKQkFFY2hBeUFBUVFGcUlnQkJBM0ZGRFFFZ0FnMEFDd3NnQTBVTkFRc0NRQ0FBTFFBQUlBRkIvd0Z4UmlBQ1FRUkpjZzBBSUFGQi93RnhRWUdDaEFoc0lRTURRQ0FBS0FJQUlBTnpJZ1JCZjNNZ0JFR0Jnb1FJYTNGQmdJR0NoSGh4RFFFZ0FFRUVhaUVBSUFKQkJHc2lBa0VEU3cwQUN3c2dBa1VOQUNBQlFmOEJjU0VCQTBBZ0FTQUFMUUFBUmdSQUlBQVBDeUFBUVFGcUlRQWdBa0VCYXlJQ0RRQUxDMEVBQzljREFnSitBbjhqQUVFZ2F5SUVKQUFDUUNBQlF2Ly8vLy8vLy8vLy93Q0RJZ05DZ0lDQWdJQ0F3SUE4ZlNBRFFvQ0FnSUNBZ01EL3d3QjlWQVJBSUFGQ0JJWWdBRUk4aUlRaEF5QUFRdi8vLy8vLy8vLy9ENE1pQUVLQmdJQ0FnSUNBZ0FoYUJFQWdBMEtCZ0lDQWdJQ0FnTUFBZkNFQ0RBSUxJQU5DZ0lDQWdJQ0FnSUJBZlNFQ0lBQkNnSUNBZ0lDQWdJQUloVUlBVWcwQklBSWdBMElCZzN3aEFnd0JDeUFBVUNBRFFvQ0FnSUNBZ01ELy93QlVJQU5DZ0lDQWdJQ0F3UC8vQUZFYlJRUkFJQUZDQklZZ0FFSThpSVJDLy8vLy8vLy8vd09EUW9DQWdJQ0FnSUQ4L3dDRUlRSU1BUXRDZ0lDQWdJQ0FnUGovQUNFQ0lBTkMvLy8vLy8vL3YvL0RBRllOQUVJQUlRSWdBMEl3aUtjaUJVR1I5d0JKRFFBZ0JFRVFhaUFBSUFGQy8vLy8vLy8vUDROQ2dJQ0FnSUNBd0FDRUlnSWdCVUdCOXdCckVDOGdCQ0FBSUFKQmdmZ0FJQVZyRUh3Z0JDa0RDRUlFaGlBRUtRTUFJZ0JDUElpRUlRSWdCQ2tERUNBRUtRTVloRUlBVXEwZ0FFTC8vLy8vLy8vLy93K0RoQ0lBUW9HQWdJQ0FnSUNBQ0ZvRVFDQUNRZ0Y4SVFJTUFRc2dBRUtBZ0lDQWdJQ0FnQWlGUWdCU0RRQWdBa0lCZ3lBQ2ZDRUNDeUFFUVNCcUpBQWdBaUFCUW9DQWdJQ0FnSUNBZ0grRGhMOExSQUVCZnlNQVFSQnJJZ1VrQUNBRklBRWdBaUFESUFSQ2dJQ0FnSUNBZ0lDQWY0VVFQQ0FGS1FNQUlRRWdBQ0FGS1FNSU53TUlJQUFnQVRjREFDQUZRUkJxSkFBTHFRRUJBWHhFQUFBQUFBQUE4RDhoQVFKQUlBQkJnQWhPQkVCRUFBQUFBQUFBNEg4aEFTQUFRZjhQU0FSQUlBQkIvd2RySVFBTUFndEVBQUFBQUFBQThIOGhBU0FBUWYwWElBQkIvUmRJRzBIK0Qyc2hBQXdCQ3lBQVFZRjRTZzBBUkFBQUFBQUFBR0FESVFFZ0FFRzRjRW9FUUNBQVFja0hhaUVBREFFTFJBQUFBQUFBQUFBQUlRRWdBRUh3YUNBQVFmQm9TaHRCa2c5cUlRQUxJQUVnQUVIL0IycXRRalNHdjZJTHhBRUNBWDhDZmtGL0lRTUNRQ0FBUWdCU0lBRkMvLy8vLy8vLy8vLy9BSU1pQkVLQWdJQ0FnSURBLy84QVZpQUVRb0NBZ0lDQWdNRC8vd0JSR3cwQVFRQWdBa0wvLy8vLy8vLy8vLzhBZ3lJRlFvQ0FnSUNBZ01ELy93QldJQVZDZ0lDQWdJQ0F3UC8vQUZFYkRRQWdBQ0FFSUFXRWhGQUVRRUVBRHdzZ0FTQUNnMElBV1FSQVFRQWdBU0FDVXlBQklBSlJHdzBCSUFBZ0FTQUNoWVJDQUZJUEN5QUFRZ0JTSUFFZ0FsVWdBU0FDVVJzTkFDQUFJQUVnQW9XRVFnQlNJUU1MSUFNTGFRRUNmeUFBUWJ3b05nSUFJQUFvQWlnaEFRTkFJQUVFUUVFQUlBQWdBVUVCYXlJQlFRSjBJZ0lnQUNnQ0pHb29BZ0FnQUNnQ0lDQUNhaWdDQUJFSEFBd0JDd3NnQUVFY2FoQU9JQUFvQWlBUUVDQUFLQUlrRUJBZ0FDZ0NNQkFRSUFBb0Fqd1FFQ0FBQ3drQUlBQVFpZ0VRRUFzSkFDQUFFTGdCRUJBTERBQWdBRUVFYWhCK0dpQUFDd3dBSUFCQkNHb1FmaG9nQUF2L0x3RVJmeU1BUVNCckloTWtBQUovUWZRQkVCa2lDQVIvQWtBZ0NDSUdJQUFnQVVFRGRCQ0pBeUlBUVFCTURRQWdBRUVDZENFUEEwQWdCaUFSUVFKMElnZHFJZ0VvQWdBaENpQUJJQVlnRDBFQ2RDSVFhaUlCS0FJQU5nSUFJQUVnQ2pZQ0FDQUdJQWRCQkhKcUlnRW9BZ0FoQ2lBQklBWWdFRUVFY21vaUFTZ0NBRFlDQUNBQklBbzJBZ0FnQmlBSFFRaHlhaUlCS0FJQUlRb2dBU0FHSUJCQkNISnFJZ0VvQWdBMkFnQWdBU0FLTmdJQUlBWWdCMEVNY21vaUFTZ0NBQ0VLSUFFZ0JpQVFRUXh5YWlJQktBSUFOZ0lBSUFFZ0NqWUNBQ0FSUVFScUloRWdEMEVFYXlJUFNBMEFDMEVCSVJFZ0FFRUJUQTBBQTBBZ0JrRVFhaUVHUVFBaER3TkFJQVlnRDBFQ2RHb2lBU0FCS0FJQUlnRkJEblpCL0FkeFFZQUlhaWdDQUVFR2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBQlFSWjJRZndIY1VHQUNHb29BZ0JCQm5aQi9BZHhRWUFRYWlnQ0FITWdBVUVHZGtIOEIzRkJnQWhxS0FJQVFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUJRZjhCY1VFQ2RFR0FDR29vQWdCQkJuWkIvQWR4UVlBUWFpZ0NBRUVZRUFoek5nSUFJQTlCQVdvaUQwRUVSdzBBQ3lBUlFRRnFJaEVnQUVjTkFBc0xJQUJCQUVnRVFDQUlFQkJCQUF3Q0N5QUlJQUEyQXZBQklBZ0ZRUUFMQ3lJQUJIOGdFeUFDS1FBQU53TVFJQk1nQWlrQUNEY0RHQ0FFUVJCUEJFQWdCRUVFZGlFVlFRQWhBUU5BSUJNZ0F5a0FBRGNEQUNBVElBTXBBQWczQXdnZ0FDZ0M4QUVoRkNBQUtBSU1JQU1vQUF3aUFrRVlkQ0FDUVFoMFFZQ0EvQWR4Y2lBQ1FRaDJRWUQrQTNFZ0FrRVlkbkp5Y3lJUFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSSWdBQ2dDQ0NBREtBQUlJZ0pCR0hRZ0FrRUlkRUdBZ1B3SGNYSWdBa0VJZGtHQS9nTnhJQUpCR0haeWNuTWlFVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VPSUFBb0FnUWdBeWdBQkNJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkp6SWdkQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaENTQUFLQUlBSUFNb0FBQWlBa0VZZENBQ1FRaDBRWUNBL0FkeGNpQUNRUWgyUVlEK0EzRWdBa0VZZG5KeWN5SUxRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUkFnRDBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFS0lCRkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCaUFIUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVFnZ0MwRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUVJQTlCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQWlBUlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBOUJGblpCL0FkeFFZQVFhaWdDQUhNZ0IwRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdDMEgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ0hITWlERUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VQSUFBb0FoZ2dBaUFFSUFnZ0VVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SU5RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUkVnQUNnQ0ZDQUdJQW9nRUNBSFFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnVkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCeUFBS0FJUUlBa2dEaUFTSUF0QkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUMwRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVFJQXhCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQ2lBTlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRWWdCVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VJSUF0QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEJDQU1RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUUlnRFVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBTVFSWjJRZndIY1VHQUVHb29BZ0J6SUFWQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBdEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQWl4eklneEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFaUFBS0FJb0lBSWdCQ0FJSUExQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaURVRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRU9JQUFvQWlRZ0JpQUtJQkFnQlVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJRlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRa2dBQ2dDSUNBSElCRWdEeUFMUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWd0QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaEVDQU1RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUW9nRFVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFR0lBVkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hDQ0FMUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFRZ0RFSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUNJQTFCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnREVFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFGUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBTFFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSWN5QUFLQUk4Y3lJTVFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlROGdBQ2dDT0NBQ0lBUWdDQ0FOUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWcxQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEVTQUFLQUkwSUFZZ0NpQVFJQVZCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQlVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFSElBQW9BakFnQ1NBT0lCSWdDMEVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlMUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVJBZ0RFRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUtJQTFCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQmlBRlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlRZ2dDMEVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VFSUF4Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEFpQU5RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQXhCRm5aQi9BZHhRWUFRYWlnQ0FITWdCVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDSE1nQzBIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0NUSE1pREVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFU0lBQW9Ba2dnQWlBRUlBZ2dEVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlOUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVE0Z0FDZ0NSQ0FHSUFvZ0VDQUZRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ1ZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQ1NBQUtBSkFJQWNnRVNBUElBdEJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlDMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VRSUF4QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaENpQU5RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUVlnQlVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFSUlBdEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hCQ0FNUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFJZ0RVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQU1RUloyUWZ3SGNVR0FFR29vQWdCeklBVkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQXRCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0FseHpJZ3hCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRHlBQUtBSllJQUlnQkNBSUlBMUJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlEVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VSSUFBb0FsUWdCaUFLSUJBZ0JVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUZRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUWNnQUNnQ1VDQUpJQTRnRWlBTFFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklndEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFQ0FNUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFvZ0RVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUdJQVZCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoQ0NBTFFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRUWdERUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VDSUExQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0RFRVdka0g4QjNGQmdCQnFLQUlBY3lBRlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUxRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FKc2N5SU1RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUklnQUNnQ2FDQUNJQVFnQ0NBTlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnMUJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hEaUFBS0FKa0lBWWdDaUFRSUFWQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUJVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUpJQUFvQW1BZ0J5QVJJQThnQzBFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSQWdERUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VLSUExQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJpQUZRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUWdnQzBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFRUlBeEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hBaUFOUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUF4QkZuWkIvQWR4UVlBUWFpZ0NBSE1nQlVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0MwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDZkhNaURFRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVBJQUFvQW5nZ0FpQUVJQWdnRFVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlSRWdBQ2dDZENBR0lBb2dFQ0FGUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdWQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJ5QUFLQUp3SUFrZ0RpQVNJQXRCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pRGtFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUUlBeEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hDaUFOUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFZZ0JVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRUlJQTVCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQkNBTVFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRSWdEVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FNUVJaMlFmd0hjVUdBRUdvb0FnQnpJQVZCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUE1Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9Bb3dCY3lJSlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBQW9Bb0FCSUFjZ0VTQVBJQTVCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQjBFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFBS0FLSUFTQUNJQVFnQ0NBTlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnUkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQUFvQW9RQklBWWdDaUFRSUFWQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUFrSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDa0FGeklRVWdCMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FDUVJaMlFmd0hjVUdBRUdvb0FnQnpJQWxCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFSQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BcFFCY3lFU0lBSkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dCRUVXZGtIOEIzRkJnQkJxS0FJQWN5QUhRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFKUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBS1lBWE1oRGdKL0lBUkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dDVUVXZGtIOEIzRkJnQkJxS0FJQWN5QUNRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFIUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBS2NBWE1pQ1NBVVFRdElEUUFhSUFsQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaER5QU9RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUkVnRWtIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFSElBVkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFQ0FKUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFvZ0RrSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUdJQkpCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoQ0NBRlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRUWdDVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VDSUE1QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0NVRVdka0g4QjNGQmdCQnFLQUlBY3lBU1FRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUZRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FLc0FYTWlDVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FBS0FLZ0FTQUhJQkVnRHlBRlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnZEJGblpCL0FkeFFZQVFhaWdDQUhNZ0FDZ0NxQUVnQWlBRUlBZ2dEa0VXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlFUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBQUtBS2tBU0FHSUFvZ0VDQVNRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ0pCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0FyQUJjeUVGSUFkQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0FrRVdka0g4QjNGQmdCQnFLQUlBY3lBSlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUVRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FLMEFYTWhFaUFDUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFSQkZuWkIvQWR4UVlBUWFpZ0NBSE1nQjBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0NVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDdUFGeklRNGdCRUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FKUVJaMlFmd0hjVUdBRUdvb0FnQnpJQUpCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFkQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BcndCY3lJSklCUkJEVWdOQUJvZ0NVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVBJQTVCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoRVNBU1FmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRY2dCVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VRSUFsQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaENpQU9RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUVlnRWtFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFSUlBVkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hCQ0FKUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFJZ0RrRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQUpRUloyUWZ3SGNVR0FFR29vQWdCeklCSkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQVZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0Fzd0JjeUlKUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFBb0FzQUJJQWNnRVNBUElBVkJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlCMEVXZGtIOEIzRkJnQkJxS0FJQWN5QUFLQUxJQVNBQ0lBUWdDQ0FPUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdSQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBQW9Bc1FCSUFZZ0NpQVFJQkpCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQWtIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0MwQUZ6SVFVZ0IwRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQUNRUloyUWZ3SGNVR0FFR29vQWdCeklBbEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQVJCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0F0UUJjeUVTSUFKQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0JFRVdka0g4QjNGQmdCQnFLQUlBY3lBSFFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUpRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FMWUFYTWhEaUFFUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFsQkZuWkIvQWR4UVlBUWFpZ0NBSE1nQWtFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0IwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDM0FGekN5RUlJQU1nQUNBVVFRUjBhaUlFS0FJQUlCSkIvd0Z4UVlBWWFpMEFBQ0FJUVJCMlFmOEJjVUdBR0dvdEFBQkJFSFFnQlVFWWRrR0FHR290QUFCQkdIUnlJQTVCQ0haQi93RnhRWUFZYWkwQUFFRUlkSEp5Y3lJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkkyQUFBZ0F5QUVLQUlFSUE1Qi93RnhRWUFZYWkwQUFDQUZRUkIyUWY4QmNVR0FHR290QUFCQkVIUWdFa0VZZGtHQUdHb3RBQUJCR0hSeUlBaEJDSFpCL3dGeFFZQVlhaTBBQUVFSWRISnljeUlDUVJoMElBSkJDSFJCZ0lEOEIzRnlJQUpCQ0haQmdQNERjU0FDUVJoMmNuSTJBQVFnQXlBRUtBSUlJQWhCL3dGeFFZQVlhaTBBQUNBU1FSQjJRZjhCY1VHQUdHb3RBQUJCRUhRZ0RrRVlka0dBR0dvdEFBQkJHSFJ5SUFWQkNIWkIvd0Z4UVlBWWFpMEFBRUVJZEhKeWN5SUNRUmgwSUFKQkNIUkJnSUQ4QjNGeUlBSkJDSFpCZ1A0RGNTQUNRUmgyY25JMkFBZ2dBeUFFS0FJTUlBVkIvd0Z4UVlBWWFpMEFBQ0FPUVJCMlFmOEJjVUdBR0dvdEFBQkJFSFFnQ0VFWWRrR0FHR290QUFCQkdIUnlJQkpCQ0haQi93RnhRWUFZYWkwQUFFRUlkSEp5Y3lJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkkyQUF4QkFDRUNBMEFnQWlBRGFpSUVJQVF0QUFBZ0UwRVFhaUFDYWkwQUFITTZBQUFnQWtFQmFpSUNRUkJIRFFBTElCTWdFeWtEQ0RjREdDQVRJQk1wQXdBM0F4QWdBMEVRYWlFRElBRkJBV29pQVNBVlJ3MEFDd3NnQUJBUVFRQUZRWDhMR2lBVFFTQnFKQUFMbGdFQkFuOGpBRUVRYXlJQUpBQUNRQ0FBUVF4cUlBQkJDR29RQXcwQVFmU0dBU0FBS0FJTVFRSjBRUVJxRUJraUFUWUNBQ0FCUlEwQUlBQW9BZ2dRR1NJQkJFQkI5SVlCS0FJQUlBQW9BZ3hCQW5ScVFRQTJBZ0JCOUlZQktBSUFJQUVRQWtVTkFRdEI5SVlCUVFBMkFnQUxJQUJCRUdva0FFSElnUUZCdlI0UVZCcEIySVlCUWVpRkFUWUNBRUdRaGdGQktqWUNBQXRaQVFGL0lBQWdBQ2dDU0NJQlFRRnJJQUZ5TmdKSUlBQW9BZ0FpQVVFSWNRUkFJQUFnQVVFZ2NqWUNBRUYvRHdzZ0FFSUFOd0lFSUFBZ0FDZ0NMQ0lCTmdJY0lBQWdBVFlDRkNBQUlBRWdBQ2dDTUdvMkFoQkJBQXQ4QVFKL0lBQWdBQ2dDU0NJQlFRRnJJQUZ5TmdKSUlBQW9BaFFnQUNnQ0hFY0VRQ0FBUVFCQkFDQUFLQUlrRVFRQUdnc2dBRUVBTmdJY0lBQkNBRGNERUNBQUtBSUFJZ0ZCQkhFRVFDQUFJQUZCSUhJMkFnQkJmdzhMSUFBZ0FDZ0NMQ0FBS0FJd2FpSUNOZ0lJSUFBZ0FqWUNCQ0FCUVJ0MFFSOTFDOVVDQVFKL0FrQWdBQ0FCUmcwQUlBRWdBQ0FDYWlJRWEwRUFJQUpCQVhSclRRUkFJQUFnQVNBQ0VFSWFEd3NnQUNBQmMwRURjU0VEQWtBQ1FDQUFJQUZKQkVBZ0F3MENJQUJCQTNGRkRRRURRQ0FDUlEwRUlBQWdBUzBBQURvQUFDQUJRUUZxSVFFZ0FrRUJheUVDSUFCQkFXb2lBRUVEY1EwQUN3d0JDd0pBSUFNTkFDQUVRUU54QkVBRFFDQUNSUTBGSUFBZ0FrRUJheUlDYWlJRElBRWdBbW90QUFBNkFBQWdBMEVEY1EwQUN3c2dBa0VEVFEwQUEwQWdBQ0FDUVFScklnSnFJQUVnQW1vb0FnQTJBZ0FnQWtFRFN3MEFDd3NnQWtVTkFnTkFJQUFnQWtFQmF5SUNhaUFCSUFKcUxRQUFPZ0FBSUFJTkFBc01BZ3NnQWtFRFRRMEFBMEFnQUNBQktBSUFOZ0lBSUFGQkJHb2hBU0FBUVFScUlRQWdBa0VFYXlJQ1FRTkxEUUFMQ3lBQ1JRMEFBMEFnQUNBQkxRQUFPZ0FBSUFCQkFXb2hBQ0FCUVFGcUlRRWdBa0VCYXlJQ0RRQUxDd3NVQUNBQVFReHFJZ0FnQUJDVUFVRUJhaENUQVF1TERBRUdmeUFBSUFGcUlRVUNRQUpBSUFBb0FnUWlBa0VCY1EwQUlBSkJBM0ZGRFFFZ0FDZ0NBQ0lDSUFGcUlRRUNRQ0FBSUFKcklnQkI3SUVCS0FJQVJ3UkFJQUpCL3dGTkJFQWdBQ2dDQ0NJRUlBSkJBM1lpQWtFRGRFR0FnZ0ZxUmhvZ0FDZ0NEQ0lESUFSSERRSkIySUVCUWRpQkFTZ0NBRUYrSUFKM2NUWUNBQXdEQ3lBQUtBSVlJUVlDUUNBQUlBQW9BZ3dpQTBjRVFDQUFLQUlJSWdKQjZJRUJLQUlBU1JvZ0FpQUROZ0lNSUFNZ0FqWUNDQXdCQ3dKQUlBQkJGR29pQWlnQ0FDSUVEUUFnQUVFUWFpSUNLQUlBSWdRTkFFRUFJUU1NQVFzRFFDQUNJUWNnQkNJRFFSUnFJZ0lvQWdBaUJBMEFJQU5CRUdvaEFpQURLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBDQWtBZ0FDQUFLQUljSWdSQkFuUkJpSVFCYWlJQ0tBSUFSZ1JBSUFJZ0F6WUNBQ0FERFFGQjNJRUJRZHlCQVNnQ0FFRitJQVIzY1RZQ0FBd0VDeUFHUVJCQkZDQUdLQUlRSUFCR0cyb2dBellDQUNBRFJRMERDeUFESUFZMkFoZ2dBQ2dDRUNJQ0JFQWdBeUFDTmdJUUlBSWdBellDR0FzZ0FDZ0NGQ0lDUlEwQ0lBTWdBallDRkNBQ0lBTTJBaGdNQWdzZ0JTZ0NCQ0lDUVFOeFFRTkhEUUZCNElFQklBRTJBZ0FnQlNBQ1FYNXhOZ0lFSUFBZ0FVRUJjallDQkNBRklBRTJBZ0FQQ3lBRUlBTTJBZ3dnQXlBRU5nSUlDd0pBSUFVb0FnUWlBa0VDY1VVRVFDQUZRZkNCQVNnQ0FFWUVRRUh3Z1FFZ0FEWUNBRUhrZ1FGQjVJRUJLQUlBSUFGcUlnRTJBZ0FnQUNBQlFRRnlOZ0lFSUFCQjdJRUJLQUlBUncwRFFlQ0JBVUVBTmdJQVFleUJBVUVBTmdJQUR3c2dCVUhzZ1FFb0FnQkdCRUJCN0lFQklBQTJBZ0JCNElFQlFlQ0JBU2dDQUNBQmFpSUJOZ0lBSUFBZ0FVRUJjallDQkNBQUlBRnFJQUUyQWdBUEN5QUNRWGh4SUFGcUlRRUNRQ0FDUWY4QlRRUkFJQVVvQWdnaUJDQUNRUU4ySWdKQkEzUkJnSUlCYWtZYUlBUWdCU2dDRENJRFJnUkFRZGlCQVVIWWdRRW9BZ0JCZmlBQ2QzRTJBZ0FNQWdzZ0JDQUROZ0lNSUFNZ0JEWUNDQXdCQ3lBRktBSVlJUVlDUUNBRklBVW9BZ3dpQTBjRVFDQUZLQUlJSWdKQjZJRUJLQUlBU1JvZ0FpQUROZ0lNSUFNZ0FqWUNDQXdCQ3dKQUlBVkJGR29pQkNnQ0FDSUNEUUFnQlVFUWFpSUVLQUlBSWdJTkFFRUFJUU1NQVFzRFFDQUVJUWNnQWlJRFFSUnFJZ1FvQWdBaUFnMEFJQU5CRUdvaEJDQURLQUlRSWdJTkFBc2dCMEVBTmdJQUN5QUdSUTBBQWtBZ0JTQUZLQUljSWdSQkFuUkJpSVFCYWlJQ0tBSUFSZ1JBSUFJZ0F6WUNBQ0FERFFGQjNJRUJRZHlCQVNnQ0FFRitJQVIzY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFWR0cyb2dBellDQUNBRFJRMEJDeUFESUFZMkFoZ2dCU2dDRUNJQ0JFQWdBeUFDTmdJUUlBSWdBellDR0FzZ0JTZ0NGQ0lDUlEwQUlBTWdBallDRkNBQ0lBTTJBaGdMSUFBZ0FVRUJjallDQkNBQUlBRnFJQUUyQWdBZ0FFSHNnUUVvQWdCSERRRkI0SUVCSUFFMkFnQVBDeUFGSUFKQmZuRTJBZ1FnQUNBQlFRRnlOZ0lFSUFBZ0FXb2dBVFlDQUFzZ0FVSC9BVTBFUUNBQlFRTjJJZ0pCQTNSQmdJSUJhaUVCQW45QjJJRUJLQUlBSWdOQkFTQUNkQ0lDY1VVRVFFSFlnUUVnQWlBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFJZ0FTQUFOZ0lJSUFJZ0FEWUNEQ0FBSUFFMkFnd2dBQ0FDTmdJSUR3dEJIeUVDSUFCQ0FEY0NFQ0FCUWYvLy93ZE5CRUFnQVVFSWRpSUNJQUpCZ1A0L2FrRVFka0VJY1NJRWRDSUNJQUpCZ09BZmFrRVFka0VFY1NJRGRDSUNJQUpCZ0lBUGFrRVFka0VDY1NJQ2RFRVBkaUFESUFSeUlBSnlheUlDUVFGMElBRWdBa0VWYW5aQkFYRnlRUnhxSVFJTElBQWdBallDSENBQ1FRSjBRWWlFQVdvaEJ3SkFBa0JCM0lFQktBSUFJZ1JCQVNBQ2RDSURjVVVFUUVIY2dRRWdBeUFFY2pZQ0FDQUhJQUEyQWdBZ0FDQUhOZ0lZREFFTElBRkJBRUVaSUFKQkFYWnJJQUpCSDBZYmRDRUNJQWNvQWdBaEF3TkFJQU1pQkNnQ0JFRjRjU0FCUmcwQ0lBSkJIWFloQXlBQ1FRRjBJUUlnQkNBRFFRUnhhaUlIUVJCcUtBSUFJZ01OQUFzZ0J5QUFOZ0lRSUFBZ0JEWUNHQXNnQUNBQU5nSU1JQUFnQURZQ0NBOExJQVFvQWdnaUFTQUFOZ0lNSUFRZ0FEWUNDQ0FBUVFBMkFoZ2dBQ0FFTmdJTUlBQWdBVFlDQ0FzTFpBQWdBQ0FCUWlpR1FvQ0FnSUNBZ01EL0FJTWdBVUk0aG9RZ0FVSVloa0tBZ0lDQWdPQS9neUFCUWdpR1FvQ0FnSUR3SDRPRWhDQUJRZ2lJUW9DQWdQZ1BneUFCUWhpSVFvQ0EvQWVEaENBQlFpaUlRb0QrQTRNZ0FVSTRpSVNFaERjQUFBc1BBQ0FBS0FJTUdpQUFRUUEyQWd3TGh3RUJCSDhqQUVFUWF5SUZKQUFqQUVFUWF5SURKQUFDUUNBQlFXOU5CRUFDUUNBQlFRcE5CRUFnQUNBQkVEb2dBQ0VFREFFTElBQWdBUkNSQVVFQmFpSUdFRjhpQkJCTklBQWdCaEJNSUFBZ0FSQTVDeUFFSUFFZ0FoRDNBU0FEUVFBNkFBOGdBU0FFYWlBRFFROXFFRFFnQTBFUWFpUUFEQUVMRUJjQUN5QUZRUkJxSkFBZ0FBdFZBUUovSUFBb0FnUWhCQUovUVFBZ0FrVU5BQm9nQkVFSWRTSUZJQVJCQVhGRkRRQWFJQUlvQWdBZ0JSREZBUXNoQlNBQUtBSUFJZ0FnQVNBQ0lBVnFJQU5CQWlBRVFRSnhHeUFBS0FJQUtBSWNFUWdBQ3cwQUlBQW9BZ0FnQVNnQ0FFa0xJd0FnQUVFQU5nSU1JQUFnQVRZQ0JDQUFJQUUyQWdBZ0FDQUJRUUZxTmdJSUlBQUx1d0VCQTM4akFFRVFheUlGSkFBZ0FrSHYvLy8vQXlJR0lBRnJUUVJBSUFBUURTRUhJQUFDZnlBQklBWkJBWFpCRUd0SkJFQWdCU0FCUVFGME5nSUlJQVVnQVNBQ2FqWUNEQ0FGUVF4cUlBVkJDR29RZGlnQ0FCQ0NBUXdCQ3lBR1FRRnJDMEVCYWlJR0VJRUJJUUlnQkFSQUlBSWdCeUFFRUhFTElBTWdCR3NpQXdSQUlBUkJBblFpQkNBQ2FpQUVJQWRxSUFNUWNRc2dBVUVCUndSQUlBY1FFQXNnQUNBQ0VFMGdBQ0FHRUV3Z0JVRVFhaVFBRHdzUUZ3QUxoQUlCQTM4akFFRVFheUlJSkFBZ0FrSHYvLy8vQXlJSklBRkJmM05xVFFSQUlBQVFEU0VLSUFBQ2Z5QUJJQWxCQVhaQkVHdEpCRUFnQ0NBQlFRRjBOZ0lJSUFnZ0FTQUNhallDRENBSVFReHFJQWhCQ0dvUWRpZ0NBQkNDQVF3QkN5QUpRUUZyQzBFQmFpSUpFSUVCSVFJZ0JBUkFJQUlnQ2lBRUVIRUxJQVlFUUNBRVFRSjBJQUpxSUFjZ0JoQnhDeUFESUFRZ0JXcHJJZ01FUUNBRVFRSjBJZ2NnQW1vZ0JrRUNkR29nQnlBS2FpQUZRUUowYWlBREVIRUxJQUZCQVVjRVFDQUtFQkFMSUFBZ0FoQk5JQUFnQ1JCTUlBQWdCQ0FHYWlBRGFpSUFFRGtnQ0VFQU5nSUVJQUlnQUVFQ2RHb2dDRUVFYWhBeklBaEJFR29rQUE4TEVCY0FDMWdCQTM5QnlJRUJFQTBoQTBISWdRRVFDU0VCSXdCQkVHc2lBaVFBSUFJZ0FEb0FEMEYvSVFBZ0FRUkFJQUVFZnlBRElBSXNBQThRWlNBQkVOd0JCVUVBQ3lJQUlBTnJRWDhnQUJzaEFBc2dBa0VRYWlRQUlBQUxjQUVEZnlNQVFSQnJJZ01rQUNBQ1FXOU5CRUFDUUNBQ1FRcE5CRUFnQUNBQ0VEb2dBQ0VFREFFTElBQWdBaENSQVVFQmFpSUZFRjhpQkJCTklBQWdCUkJNSUFBZ0FoQTVDeUFFSUFFZ0FoQlZJQU5CQURvQUR5QUNJQVJxSUFOQkQyb1FOQ0FEUVJCcUpBQVBDeEFYQUFzU0FDQUJCRUFnQUNBQ0VHVWdBUkJHR2dzTDdBRUJBMzhqQUVFUWF5SUlKQUFnQWtGdklna2dBVUYvYzJwTkJFQWdBQkFOSVFvQ2Z5QUJJQWxCQVhaQkVHdEpCRUFnQ0NBQlFRRjBOZ0lJSUFnZ0FTQUNhallDRENBSVFReHFJQWhCQ0dvUWRpZ0NBQkNSQVF3QkN5QUpRUUZyQzBFQmFpSUpFRjhoQWlBRUJFQWdBaUFLSUFRUVZRc2dCZ1JBSUFJZ0JHb2dCeUFHRUZVTElBTWdCQ0FGYW1zaUF3UkFJQUlnQkdvZ0Jtb2dCQ0FLYWlBRmFpQURFRlVMSUFGQkNrY0VRQ0FLRUJBTElBQWdBaEJOSUFBZ0NSQk1JQUFnQkNBR2FpQURhaUlBRURrZ0NFRUFPZ0FISUFBZ0Ftb2dDRUVIYWhBMElBaEJFR29rQUE4TEVCY0FDeVFCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lJSUFFb0FnZ2hBQ0FCUVJCcUpBQWdBQXNKQUNBQUVCWTJBZ0FMS3dFQmZ5QUFLQUlFSVFJRFFDQUJJQUpIQkVBZ0FCQjBHaUFDUVFScklRSU1BUXNMSUFBZ0FUWUNCQXNxQUNNQVFSQnJJZ0lrQUFKQUlBQWdBVVlFUUNBQVFRQTZBSGdNQVFzZ0FSQVFDeUFDUVJCcUpBQUxIQUFnQVVILy8vLy9BMHNFUUVINEhCQ1dBZ0FMSUFGQkFuUVFYd3NKQUNBQlFRQTJBZ0FMTmdCQnNKVUJLQUlBR2tHd2xRRW9BZ0JCc0pVQkVITkJBblJxR2tHd2xRRW9BZ0JCc0pVQkVITkJBblJxR2tHd2xRRW9BZ0FhQ3owQkFYOGpBRUVRYXlJQ0pBQUNRQ0FBTFFCNElBRkJIa3R5UlFSQUlBQkJBVG9BZUF3QkN5QUNRUWhxSUFFUS9RRWhBQXNnQWtFUWFpUUFJQUFMUlFFQ2Z5TUFRUkJySWdBa0FFR3dsUUVRZEJvZ0FFSC8vLy8vQXpZQ0RDQUFRZi8vLy84SE5nSUlJQUJCREdvZ0FFRUlhaENpQVNnQ0FDRUJJQUJCRUdva0FDQUJDd2tBSUFBUXlnRVFFQXNuQUNBRElBTW9BZ0FnQWlBQmF5SUFheUlDTmdJQUlBQkJBRW9FUUNBQ0lBRWdBQkJDR2dzTEVBQWdBQ0FCRU0wQklBQWdBallDQkF2SUFRRUVmeU1BUVNCcklnVWtBQ0FGSUFFcEFBQTNBeEFnQlNBQktRQUlOd01ZQWtBZ0EwRVFTUVJBSUFJaEFRd0JDeUFEUVFSMklRY2dBaUVCQTBBZ0FDQUZRUkJxSWdnZ0JCQ25BU0FFSUFFUW5RRWdCRUVRYWlFRUlBRkJFR29oQVNBSUVPc0JJQVpCQVdvaUJpQUhSdzBBQ3dzZ0FpQURhaUFCYXlJQ0JFQWdBQ0FGUVJCcUlBVVFwd0ZCQUNFR0EwQWdCQ0FGSUFacUxRQUFJQUV0QUFCek9nQUFJQVJCQVdvaEJDQUJRUUZxSVFFZ0JrRUJhaUlHSUFKSERRQUxDeUFGUVNCcUpBQUxGUUFnQUVINDB3QTJBZ0FnQUVFUWFoQUtHaUFBQ3hVQUlBQkIwTk1BTmdJQUlBQkJER29RQ2hvZ0FBc0VBRUVFQ3c4QUlBQW9BZ0FnQUNnQ0JEWUNCQXRBQVFKL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENBQlFRaHFJQUZCREdvUVVpRUFRUVJCQVVIWWhnRW9BZ0FvQWdBYklRSWdBQkJSSUFGQkVHb2tBQ0FDQ3p3QkFYOGpBRUVRYXlJRkpBQWdCU0FFTmdJTUlBVkJDR29nQlVFTWFoQlNJUVFnQUNBQklBSWdBeEMzQVNFQUlBUVFVU0FGUVJCcUpBQWdBQXNNQUNBQklBSXRBQUE2QUFBTEVnQWdCQ0FDTmdJQUlBY2dCVFlDQUVFREN5Z0JBWDhnQUVIczBnQTJBZ0FDUUNBQUtBSUlJZ0ZGRFFBZ0FDMEFERVVOQUNBQkVCQUxJQUFMNUFrQkFYOENRRUgwaUFFdEFBQkJBWEVOQUVIMGlBRVFKRVVOQUFKQVFlaUlBUzBBQUVFQmNRMEFRZWlJQVJBa1JRMEFRYWlWQVJBYlFhaVZBVUhZMGdBMkFnQWpBRUVRYXlJQkpBQkJzSlVCUWdBM0F3QWdBVUVBTmdJTVFiaVZBU0FCUVF4cUVNMEJRYmlXQVVFQU9nQUFJQUZCRUdva0FCQ0JBa0VlU1FSQUVCY0FDMEd3bFFGQnNKVUJFSFJCSGhDQUFpSUJOZ0lBUWJTVkFTQUJOZ0lBUWJDVkFSQkRJQUZCK0FCcU5nSUFRUUFRL3dGQkhoQ1hBa0hBbGdGQm1oNFFWQnBCc0pVQkVGQWhBVUd3bFFFUWxRSkJzSlVCSUFFUWxBSkI4SklCRUJ0QjhKSUJRWVRkQURZQ0FFSHdrZ0ZCdUljQkVCb1FIRUg0a2dFUUcwSDRrZ0ZCcE4wQU5nSUFRZmlTQVVIQWh3RVFHaEFjUVlDVEFSQWJRWXlUQVVFQU9nQUFRWWlUQVVFQU5nSUFRWUNUQVVIczBnQTJBZ0JCaUpNQlFiQXlLQUlBTmdJQVFZQ1RBVUdFaVFFUUdoQWNRWkNUQVJBYlFaQ1RBVUhRMWdBMkFnQkJrSk1CUWZ5SUFSQWFFQnhCbUpNQkVCdEJtSk1CUWVUWEFEWUNBRUdZa3dGQmpJa0JFQm9RSEVHZ2t3RVFHMEdna3dGQm9OTUFOZ0lBUWFpVEFSQVdOZ0lBUWFDVEFVR1VpUUVRR2hBY1FiQ1RBUkFiUWJDVEFVSDQyQUEyQWdCQnNKTUJRWnlKQVJBYUVCeEJ1Sk1CRUJ0QnVKTUJRZXpaQURZQ0FFRzRrd0ZCcElrQkVCb1FIRUhBa3dFUUcwSElrd0ZCcnRnQU93RUFRY0NUQVVIUTB3QTJBZ0JCekpNQkVCRWFRY0NUQVVHc2lRRVFHaEFjUWRpVEFSQWJRZUNUQVVLdWdJQ0F3QVUzQWdCQjJKTUJRZmpUQURZQ0FFSG9rd0VRRVJwQjJKTUJRYlNKQVJBYUVCeEIrSk1CRUJ0QitKTUJRY1RkQURZQ0FFSDRrd0ZCeUljQkVCb1FIRUdBbEFFUUcwR0FsQUZCdU44QU5nSUFRWUNVQVVIUWh3RVFHaEFjUVlpVUFSQWJRWWlVQVVHTTRRQTJBZ0JCaUpRQlFkaUhBUkFhRUJ4QmtKUUJFQnRCa0pRQlFmVGlBRFlDQUVHUWxBRkI0SWNCRUJvUUhFR1lsQUVRRzBHWWxBRkJ6T29BTmdJQVFaaVVBVUdJaUFFUUdoQWNRYUNVQVJBYlFhQ1VBVUhnNndBMkFnQkJvSlFCUVpDSUFSQWFFQnhCcUpRQkVCdEJxSlFCUWRUc0FEWUNBRUdvbEFGQm1JZ0JFQm9RSEVHd2xBRVFHMEd3bEFGQnlPMEFOZ0lBUWJDVUFVR2dpQUVRR2hBY1FiaVVBUkFiUWJpVUFVRzg3Z0EyQWdCQnVKUUJRYWlJQVJBYUVCeEJ3SlFCRUJ0QndKUUJRZUR2QURZQ0FFSEFsQUZCc0lnQkVCb1FIRUhJbEFFUUcwSElsQUZCaFBFQU5nSUFRY2lVQVVHNGlBRVFHaEFjUWRDVUFSQWJRZENVQVVHbzhnQTJBZ0JCMEpRQlFjQ0lBUkFhRUJ4QjJKUUJFQnRCNEpRQlFaRDhBRFlDQUVIWWxBRkJ2T1FBTmdJQVFlQ1VBVUhzNUFBMkFnQkIySlFCUWVpSEFSQWFFQnhCNkpRQkVCdEI4SlFCUWJUOEFEWUNBRUhvbEFGQnhPWUFOZ0lBUWZDVUFVSDA1Z0EyQWdCQjZKUUJRZkNIQVJBYUVCeEIrSlFCRUJ0QmdKVUJFUG9CUWZpVUFVR3c2QUEyQWdCQitKUUJRZmlIQVJBYUVCeEJpSlVCRUJ0QmtKVUJFUG9CUVlpVkFVSE02UUEyQWdCQmlKVUJRWUNJQVJBYUVCeEJtSlVCRUJ0Qm1KVUJRY3p6QURZQ0FFR1lsUUZCeUlnQkVCb1FIRUdnbFFFUUcwR2dsUUZCeFBRQU5nSUFRYUNWQVVIUWlBRVFHaEFjUWVDSUFVR29sUUUyQWdCQjVJZ0JRZUNJQVRZQ0FFSG9pQUVRSXd0QjdJZ0JRZVNJQVNnQ0FCQ1FBa0h3aUFGQjdJZ0JOZ0lBUWZTSUFSQWpDeUFBUWZDSUFTZ0NBQ2dDQUNJQU5nSUFJQUFRemdFTEV3QWdBQ0FCS0FJQUlnQTJBZ0FnQUJET0FRc3lBQ0FBS0FJQUdpQUFLQUlBSUFBUWMwRUNkR29hSUFBb0FnQWdBQkJRUVFKMGFob2dBQ2dDQUNBQUVITkJBblJxR2dzVEFDQUFJQUFvQWdCQkFXc2lBRFlDQUNBQUMyOEJBbjhnQUVIWTBnQTJBZ0FnQUVFSWFpRUJBMEFnQVJCUUlBSkxCRUFnQVNBQ0VIY29BZ0FFUUNBQklBSVFkeWdDQUJDakFRc2dBa0VCYWlFQ0RBRUxDeUFBUVpnQmFoQUtHaUFCRUpFQ0lBRW9BZ0FFUUNBQkVKVUNJQUVRZENBQktBSUFJQUVRY3hEOEFRc2dBQXNxQUNBQUtBSUFHaUFBS0FJQUlBQVFjMEVDZEdvYUlBQW9BZ0FhSUFBb0FnQWdBQkJRUVFKMGFob0xEQUFnQUNBQUtBSUFFUHNCQzJJQkEzOUJDQkFISWdGQjBQOEFOZ0lBSUFGQi9QOEFOZ0lBSUFBUWtnRWlBa0VOYWhCZklnTkJBRFlDQ0NBRElBSTJBZ1FnQXlBQ05nSUFJQUVnQTBFTWFpQUFJQUpCQVdvUVFqWUNCQ0FCUWF5QUFUWUNBQ0FCUWN5QUFVRURFQVlBQzNJQkEzOGpBRUVRYXlJQkpBQWdBVUd3bFFFMkFnQWdBVUcwbFFFb0FnQWlBallDQkNBQklBSWdBRUVDZEdvMkFnZ2dBU0lES0FJRUlRQWdBeWdDQ0NFQ0EwQWdBQ0FDUmdSQUlBTVFpUUlnQVVFUWFpUUFCVUd3bFFFUWRDQUFFUDRCSUFNZ0FFRUVhaUlBTmdJRURBRUxDd3NnQUNBQVFhRFRBRFlDQUNBQUtBSUlFQlpIQkVBZ0FDZ0NDQkRVQWdzZ0FBc0VBRUYvQytJRkFRcC9Jd0JCRUdzaUV5UUFJQUlnQURZQ0FDQURRWUFFY1NFVklBZEJBblFoRmdOQUlCUkJCRVlFUUNBTkVBbEJBVXNFUUNBVElBMFFRRFlDQ0NBQ0lCTkJDR3BCQVJDZkFpQU5FR3dnQWlnQ0FCQ2tBVFlDQUFzZ0EwR3dBWEVpQTBFUVJ3UkFJQUVnQTBFZ1JnUi9JQUlvQWdBRklBQUxOZ0lBQ3lBVFFSQnFKQUFGQWtBQ1FBSkFBa0FDUUFKQUlBZ2dGR29zQUFBT0JRQUJBd0lFQlFzZ0FTQUNLQUlBTmdJQURBUUxJQUVnQWlnQ0FEWUNBQ0FHUVNBUVBTRUhJQUlnQWlnQ0FDSVBRUVJxTmdJQUlBOGdCellDQUF3REN5QU5FRWtOQWlBTlFRQVFzUUVvQWdBaEJ5QUNJQUlvQWdBaUQwRUVhallDQUNBUElBYzJBZ0FNQWdzZ0RCQkpJQlZGY2cwQklBSWdEQkJBSUF3UWJDQUNLQUlBRUtRQk5nSUFEQUVMSUFJb0FnQWhGeUFFSUJacUlnUWhCd05BQWtBZ0JTQUhUUTBBSUFaQmdCQWdCeWdDQUJCT1JRMEFJQWRCQkdvaEJ3d0JDd3NnRGlJUFFRQktCRUFEUUNBUFFRQk1JQVFnQjA5eVJRUkFJQWRCQkdzaUJ5Z0NBQ0VRSUFJZ0FpZ0NBQ0lSUVFScU5nSUFJQkVnRURZQ0FDQVBRUUZySVE4TUFRc0xJQTlCQUV3RWYwRUFCU0FHUVRBUVBRc2hFUU5BSUFJZ0FpZ0NBQ0lRUVFScU5nSUFJQTlCQUVvRVFDQVFJQkUyQWdBZ0QwRUJheUVQREFFTEN5QVFJQWsyQWdBTEFrQWdCQ0FIUmdSQUlBWkJNQkE5SVE4Z0FpQUNLQUlBSWhCQkJHb2lCellDQUNBUUlBODJBZ0FNQVFzZ0N4QkpCSDlCZndVZ0MwRUFFQXNzQUFBTElSQkJBQ0VQUVFBaEVnTkFJQVFnQjBjRVFBSkFJQThnRUVjRVFDQVBJUkVNQVFzZ0FpQUNLQUlBSWhCQkJHbzJBZ0FnRUNBS05nSUFRUUFoRVNBTEVBa2dFa0VCYWlJU1RRUkFJQThoRUF3QkN5QUxJQklRQ3kwQUFFSC9BRVlFUUVGL0lSQU1BUXNnQ3lBU0VBc3NBQUFoRUFzZ0IwRUVheUlIS0FJQUlROGdBaUFDS0FJQUloaEJCR28yQWdBZ0dDQVBOZ0lBSUJGQkFXb2hEd3dCQ3dzZ0FpZ0NBQ0VIQ3lBWElBY1FyUUVMSUJSQkFXb2hGQXdCQ3dzTHBRSUJBWDhqQUVFUWF5SUtKQUFnQ1FKL0lBQUVRQ0FDRUtFQ0lRQUNRQ0FCQkVBZ0NpQUFFR2tnQXlBS0tBSUFOZ0FBSUFvZ0FCQm9EQUVMSUFvZ0FCQ2xBU0FESUFvb0FnQTJBQUFnQ2lBQUVFb0xJQWdnQ2hCWElBb1FDaG9nQkNBQUVFZzJBZ0FnQlNBQUVEZzJBZ0FnQ2lBQUVEY2dCaUFLRURBZ0NoQUtHaUFLSUFBUVN5QUhJQW9RVnlBS0VBb2FJQUFRWnd3QkN5QUNFS0FDSVFBQ1FDQUJCRUFnQ2lBQUVHa2dBeUFLS0FJQU5nQUFJQW9nQUJCb0RBRUxJQW9nQUJDbEFTQURJQW9vQWdBMkFBQWdDaUFBRUVvTElBZ2dDaEJYSUFvUUNob2dCQ0FBRUVnMkFnQWdCU0FBRURnMkFnQWdDaUFBRURjZ0JpQUtFREFnQ2hBS0dpQUtJQUFRU3lBSElBb1FWeUFLRUFvYUlBQVFad3MyQWdBZ0NrRVFhaVFBQzlRRkFRcC9Jd0JCRUdzaUZDUUFJQUlnQURZQ0FDQURRWUFFY1NFV0EwQWdGVUVFUmdSQUlBMFFDVUVCU3dSQUlCUWdEUkJBTmdJSUlBSWdGRUVJYWtFQkVLWUNJQTBRYmlBQ0tBSUFFS1FCTmdJQUN5QURRYkFCY1NJRFFSQkhCRUFnQVNBRFFTQkdCSDhnQWlnQ0FBVWdBQXMyQWdBTElCUkJFR29rQUE4TEFrQUNRQUpBQWtBQ1FBSkFJQWdnRldvc0FBQU9CUUFCQXdJRUJRc2dBU0FDS0FJQU5nSUFEQVFMSUFFZ0FpZ0NBRFlDQUNBR1FTQVFLU0VQSUFJZ0FpZ0NBQ0lRUVFGcU5nSUFJQkFnRHpvQUFBd0RDeUFORUVrTkFpQU5RUUFRQ3kwQUFDRVBJQUlnQWlnQ0FDSVFRUUZxTmdJQUlCQWdEem9BQUF3Q0N5QU1FRWtnRmtWeURRRWdBaUFNRUVBZ0RCQnVJQUlvQWdBUXBBRTJBZ0FNQVFzZ0FpZ0NBQ0VYSUFRZ0Iyb2lCQ0VSQTBBQ1FDQUZJQkZORFFBZ0JrR0FFQ0FSTEFBQUVFUkZEUUFnRVVFQmFpRVJEQUVMQ3lBT0lnOUJBRW9FUUFOQUlBOUJBRXdnQkNBUlQzSkZCRUFnRVVFQmF5SVJMUUFBSVJBZ0FpQUNLQUlBSWhKQkFXbzJBZ0FnRWlBUU9nQUFJQTlCQVdzaER3d0JDd3NnRDBFQVRBUi9RUUFGSUFaQk1CQXBDeUVTQTBBZ0FpQUNLQUlBSWhCQkFXbzJBZ0FnRDBFQVNnUkFJQkFnRWpvQUFDQVBRUUZySVE4TUFRc0xJQkFnQ1RvQUFBc0NRQ0FFSUJGR0JFQWdCa0V3RUNraER5QUNJQUlvQWdBaUVFRUJhallDQUNBUUlBODZBQUFNQVFzZ0N4QkpCSDlCZndVZ0MwRUFFQXNzQUFBTElSQkJBQ0VQUVFBaEV3TkFJQVFnRVVZTkFRSkFJQThnRUVjRVFDQVBJUklNQVFzZ0FpQUNLQUlBSWhCQkFXbzJBZ0FnRUNBS09nQUFRUUFoRWlBTEVBa2dFMEVCYWlJVFRRUkFJQThoRUF3QkN5QUxJQk1RQ3kwQUFFSC9BRVlFUUVGL0lSQU1BUXNnQ3lBVEVBc3NBQUFoRUFzZ0VVRUJheUlSTFFBQUlROGdBaUFDS0FJQUloaEJBV28yQWdBZ0dDQVBPZ0FBSUJKQkFXb2hEd3dBQ3dBTElCY2dBaWdDQUJCNUN5QVZRUUZxSVJVTUFBc0FDNlVDQVFGL0l3QkJFR3NpQ2lRQUlBa0NmeUFBQkVBZ0FoQ29BaUVBQWtBZ0FRUkFJQW9nQUJCcElBTWdDaWdDQURZQUFDQUtJQUFRYUF3QkN5QUtJQUFRcFFFZ0F5QUtLQUlBTmdBQUlBb2dBQkJLQ3lBSUlBb1FNQ0FLRUFvYUlBUWdBQkJJT2dBQUlBVWdBQkE0T2dBQUlBb2dBQkEzSUFZZ0NoQXdJQW9RQ2hvZ0NpQUFFRXNnQnlBS0VEQWdDaEFLR2lBQUVHY01BUXNnQWhDbkFpRUFBa0FnQVFSQUlBb2dBQkJwSUFNZ0NpZ0NBRFlBQUNBS0lBQVFhQXdCQ3lBS0lBQVFwUUVnQXlBS0tBSUFOZ0FBSUFvZ0FCQktDeUFJSUFvUU1DQUtFQW9hSUFRZ0FCQklPZ0FBSUFVZ0FCQTRPZ0FBSUFvZ0FCQTNJQVlnQ2hBd0lBb1FDaG9nQ2lBQUVFc2dCeUFLRURBZ0NoQUtHaUFBRUdjTE5nSUFJQXBCRUdva0FBc0lBQ0FBS0FJQVJRczNBUUYvSXdCQkVHc2lBaVFBSUFJZ0FDZ0NBRFlDQ0NBQ0lBSW9BZ2dnQVVFQ2RHbzJBZ2dnQWlnQ0NDRUFJQUpCRUdva0FDQUFDd29BSUFCQm1JZ0JFR1FMQ2dBZ0FFR2dpQUVRWkFzSkFDQUFJQUVRcmdJTEh3RUJmeUFCS0FJQUVQb0NJUUlnQUNBQktBSUFOZ0lFSUFBZ0FqWUNBQXZ4RHdFS2Z5TUFRYkFFYXlJTEpBQWdDeUFLTmdLa0JDQUxJQUUyQXFnRUlBdEJOallDWUNBTElBdEJpQUZxSUF0QmtBRnFJQXRCNEFCcUlnRVFIaUlQS0FJQUlnbzJBb1FCSUFzZ0NrR1FBMm8yQW9BQklBRVFFU0VSSUF0QjBBQnFFRWNoRGlBTFFVQnJFRWNoRENBTFFUQnFFRWNoRFNBTFFTQnFFRWNoRUNNQVFSQnJJZ0VrQUNBTEFuOGdBZ1JBSUFFZ0F4Q2hBaUlDRUdrZ0N5QUJLQUlBTmdCNElBRWdBaEJvSUEwZ0FSQlhJQUVRQ2hvZ0FTQUNFRW9nRENBQkVGY2dBUkFLR2lBTElBSVFTRFlDZENBTElBSVFPRFlDY0NBQklBSVFOeUFSSUFFUU1DQUJFQW9hSUFFZ0FoQkxJQTRnQVJCWElBRVFDaG9nQWhCbkRBRUxJQUVnQXhDZ0FpSUNFR2tnQ3lBQktBSUFOZ0I0SUFFZ0FoQm9JQTBnQVJCWElBRVFDaG9nQVNBQ0VFb2dEQ0FCRUZjZ0FSQUtHaUFMSUFJUVNEWUNkQ0FMSUFJUU9EWUNjQ0FCSUFJUU55QVJJQUVRTUNBQkVBb2FJQUVnQWhCTElBNGdBUkJYSUFFUUNob2dBaEJuQ3pZQ0hDQUJRUkJxSkFBZ0NTQUlLQUlBTmdJQUlBUkJnQVJ4SWhKQkNYWWhFMEVBSVFGQkFDRUNBMEFnQWlFS0FrQUNRQUpBQWtBZ0FVRUVSZzBBSUFBZ0MwR29CR29RTmtVTkFFRUFJUVFDUUFKQUFrQUNRQUpBQWtBZ0MwSDRBR29nQVdvc0FBQU9CUUVBQkFNRkNRc2dBVUVEUmcwSElBZEJnTUFBSUFBUUlSQk9CRUFnQzBFUWFpQUFFS01DSUJBZ0N5Z0NFQkRIQVF3Q0N5QUZJQVVvQWdCQkJISTJBZ0JCQUNFQURBWUxJQUZCQTBZTkJnc0RRQ0FBSUF0QnFBUnFFRFpGRFFZZ0IwR0F3QUFnQUJBaEVFNUZEUVlnQzBFUWFpQUFFS01DSUJBZ0N5Z0NFQkRIQVF3QUN3QUxJQXdRQ1VFQUlBMFFDV3RHRFFRQ1FDQU1FQWtFUUNBTkVBa05BUXNnREJBSklRTWdBQkFoSVFJZ0F3UkFJQXdRRFNnQ0FDQUNSZ1JBSUFBUUpSb2dEQ0FLSUF3UUNVRUJTeHNoQWd3SUN5QUdRUUU2QUFBTUJnc2dBaUFORUEwb0FnQkhEUVVnQUJBbEdpQUdRUUU2QUFBZ0RTQUtJQTBRQ1VFQlN4c2hBZ3dHQ3lBQUVDRWdEQkFOS0FJQVJnUkFJQUFRSlJvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dHQ3lBQUVDRWdEUkFOS0FJQVJnUkFJQUFRSlJvZ0JrRUJPZ0FBSUEwZ0NpQU5FQWxCQVVzYklRSU1CZ3NnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBS0lBRkJBa2x5UlFSQVFRQWhBaUFUSUFGQkFrWWdDeTBBZTBFQVIzRnlSUTBGQ3lBTElBNFFRRFlDQ0NBTFFSQnFJQXRCQ0dvUXFBRWhBZ0pBSUFGRkRRQWdBU0FMYWkwQWQwRUJTdzBBQTBBQ1FDQUxJQTRRYkRZQ0NDQUNJQXRCQ0dvUVcwVU5BQ0FIUVlEQUFDQUNLQUlBS0FJQUVFNUZEUUFnQWhDVkFRd0JDd3NnQ3lBT0VFQTJBZ2dnQWlnQ0FDQUxLQUlJYTBFQ2RTSUNJQkFRQ1UwRVFDQUxJQkFRYkRZQ0NDQUxRUWhxUVFBZ0Ftc1Fud0loQXlBUUVHd2hCQ0FPRUVBaEZDTUFRU0JySWdJa0FDQUNJQVEyQWhBZ0FpQUROZ0lZSUFJZ0ZEWUNDQU5BQWtBZ0FrRVlhaUFDUVJCcUVGc2lBMFVOQUNBQ0tBSVlLQUlBSUFJb0FnZ29BZ0JIRFFBZ0FrRVlhaENWQVNBQ1FRaHFFSlVCREFFTEN5QUNRU0JxSkFBZ0EwRUJjdzBCQ3lBTElBNFFRRFlDQUNBTFFRaHFJQXNRcUFFYUlBc2dDeWdDQ0RZQ0VBc2dDeUFMS0FJUU5nSUlBMEFDUUNBTElBNFFiRFlDQUNBTFFRaHFJQXNRVzBVTkFDQUFJQXRCcUFScUVEWkZEUUFnQUJBaElBc29BZ2dvQWdCSERRQWdBQkFsR2lBTFFRaHFFSlVCREFFTEN5QVNSUTBESUFzZ0RoQnNOZ0lBSUF0QkNHb2dDeEJiUlEwRElBVWdCU2dDQUVFRWNqWUNBRUVBSVFBTUFnc0RRQUpBSUFBZ0MwR29CR29RTmtVTkFBSi9JQWRCZ0JBZ0FCQWhJZ0lRVGdSQUlBa29BZ0FpQXlBTEtBS2tCRVlFUUNBSUlBa2dDMEdrQkdvUWhnRWdDU2dDQUNFREN5QUpJQU5CQkdvMkFnQWdBeUFDTmdJQUlBUkJBV29NQVFzZ0VSQUpSU0FFUlhJTkFTQUNJQXNvQW5CSERRRWdDeWdDaEFFaUFpQUxLQUtBQVVZRVFDQVBJQXRCaEFGcUlBdEJnQUZxRUlZQklBc29Bb1FCSVFJTElBc2dBa0VFYWpZQ2hBRWdBaUFFTmdJQVFRQUxJUVFnQUJBbEdnd0JDd3NnQkVVZ0N5Z0NoQUVpQWlBUEtBSUFSbkpGQkVBZ0N5Z0NnQUVnQWtZRVFDQVBJQXRCaEFGcUlBdEJnQUZxRUlZQklBc29Bb1FCSVFJTElBc2dBa0VFYWpZQ2hBRWdBaUFFTmdJQUN3SkFJQXNvQWh4QkFFd05BQUpBSUFBZ0MwR29CR29RS0VVRVFDQUFFQ0VnQ3lnQ2RFWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3dOQUlBQVFKUm9nQ3lnQ0hFRUFUQTBCQWtBZ0FDQUxRYWdFYWhBb1JRUkFJQWRCZ0JBZ0FCQWhFRTROQVFzZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3RUN5QUpLQUlBSUFzb0FxUUVSZ1JBSUFnZ0NTQUxRYVFFYWhDR0FRc2dBQkFoSVFJZ0NTQUpLQUlBSWdOQkJHbzJBZ0FnQXlBQ05nSUFJQXNnQ3lnQ0hFRUJhellDSEF3QUN3QUxJQW9oQWlBSUtBSUFJQWtvQWdCSERRTWdCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0JDd0pBSUFwRkRRQkJBU0VFQTBBZ0NoQUpJQVJORFFFQ1FDQUFJQXRCcUFScUVDaEZCRUFnQUJBaElBb2dCQkN4QVNnQ0FFWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBQUVDVWFJQVJCQVdvaEJBd0FDd0FMUVFFaEFDQVBLQUlBSUFzb0FvUUJSZzBBUVFBaEFDQUxRUUEyQWhBZ0VTQVBLQUlBSUFzb0FvUUJJQXRCRUdvUUxTQUxLQUlRQkVBZ0JTQUZLQUlBUVFSeU5nSUFEQUVMUVFFaEFBc2dFQkFLR2lBTkVBb2FJQXdRQ2hvZ0RoQUtHaUFSRUFvYUlBOFFIU0FMUWJBRWFpUUFJQUFQQ3lBS0lRSUxJQUZCQVdvaEFRd0FDd0FMSHdBZ0FDQUJFS1lCRUNjZ0FSQ1dBU2dDQUNFQklBQVFsZ0VnQVRZQ0FBczBBUUYvSXdCQkVHc2lBaVFBSUFJZ0FDZ0NBRFlDQ0NBQ0lBSW9BZ2dnQVdvMkFnZ2dBaWdDQ0NFQUlBSkJFR29rQUNBQUN3b0FJQUJCaUlnQkVHUUxDZ0FnQUVHUWlBRVFaQXZCQVFFR2Z5TUFRUkJySWdRa0FDQUFFSllCS0FJQUlRVUNmeUFDS0FJQUlBQW9BZ0JySWdOQi8vLy8vd2RKQkVBZ0EwRUJkQXdCQzBGL0N5SURRUUVnQXhzaEF5QUJLQUlBSVFZZ0FDZ0NBQ0VISUFWQk5rWUVmMEVBQlNBQUtBSUFDeUFERUo0QklnZ0VRQ0FGUVRaSEJFQWdBQkNtQVJvTElBUkJOVFlDQkNBQUlBUkJDR29nQ0NBRVFRUnFFQjRpQlJDbEFpQUZFQjBnQVNBQUtBSUFJQVlnQjJ0cU5nSUFJQUlnQXlBQUtBSUFhallDQUNBRVFSQnFKQUFQQ3hBWEFBc2xBUUYvSUFFb0FnQVEvd0pCR0hSQkdIVWhBaUFBSUFFb0FnQTJBZ1FnQUNBQ09nQUFDNThRQVFwL0l3QkJzQVJySWdza0FDQUxJQW8yQXFRRUlBc2dBVFlDcUFRZ0MwRTJOZ0pvSUFzZ0MwR0lBV29nQzBHUUFXb2dDMEhvQUdvaUFSQWVJZzhvQWdBaUNqWUNoQUVnQ3lBS1FaQURhallDZ0FFZ0FSQVJJUkVnQzBIWUFHb1FFU0VPSUF0QnlBQnFFQkVoRENBTFFUaHFFQkVoRFNBTFFTaHFFQkVoRUNNQVFSQnJJZ0VrQUNBTEFuOGdBZ1JBSUFFZ0F4Q29BaUlDRUdrZ0N5QUJLQUlBTmdCNElBRWdBaEJvSUEwZ0FSQXdJQUVRQ2hvZ0FTQUNFRW9nRENBQkVEQWdBUkFLR2lBTElBSVFTRG9BZHlBTElBSVFPRG9BZGlBQklBSVFOeUFSSUFFUU1DQUJFQW9hSUFFZ0FoQkxJQTRnQVJBd0lBRVFDaG9nQWhCbkRBRUxJQUVnQXhDbkFpSUNFR2tnQ3lBQktBSUFOZ0I0SUFFZ0FoQm9JQTBnQVJBd0lBRVFDaG9nQVNBQ0VFb2dEQ0FCRURBZ0FSQUtHaUFMSUFJUVNEb0FkeUFMSUFJUU9Eb0FkaUFCSUFJUU55QVJJQUVRTUNBQkVBb2FJQUVnQWhCTElBNGdBUkF3SUFFUUNob2dBaEJuQ3pZQ0pDQUJRUkJxSkFBZ0NTQUlLQUlBTmdJQUlBUkJnQVJ4SWhKQkNYWWhFMEVBSVFGQkFDRUNBMEFnQWlFS0FrQUNRQUpBQWtBZ0FVRUVSZzBBSUFBZ0MwR29CR29RTVVVTkFFRUFJUVFDUUFKQUFrQUNRQUpBQWtBZ0MwSDRBR29nQVdvc0FBQU9CUUVBQkFNRkNRc2dBVUVEUmcwSElBZEJnTUFBSUFBUUh4QkVCRUFnQzBFWWFpQUFFS29DSUJBZ0N5d0FHQkNoQVF3Q0N5QUZJQVVvQWdCQkJISTJBZ0JCQUNFQURBWUxJQUZCQTBZTkJnc0RRQ0FBSUF0QnFBUnFFREZGRFFZZ0IwR0F3QUFnQUJBZkVFUkZEUVlnQzBFWWFpQUFFS29DSUJBZ0N5d0FHQkNoQVF3QUN3QUxJQXdRQ1VFQUlBMFFDV3RHRFFRQ1FDQU1FQWtFUUNBTkVBa05BUXNnREJBSklRTWdBQkFmSVFJZ0F3UkFJQXhCQUJBTExRQUFJQUpCL3dGeFJnUkFJQUFRSWhvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dJQ3lBR1FRRTZBQUFNQmdzZ0RVRUFFQXN0QUFBZ0FrSC9BWEZIRFFVZ0FCQWlHaUFHUVFFNkFBQWdEU0FLSUEwUUNVRUJTeHNoQWd3R0N5QUFFQjlCL3dGeElBeEJBQkFMTFFBQVJnUkFJQUFRSWhvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dHQ3lBQUVCOUIvd0Z4SUExQkFCQUxMUUFBUmdSQUlBQVFJaG9nQmtFQk9nQUFJQTBnQ2lBTkVBbEJBVXNiSVFJTUJnc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0RDeUFLSUFGQkFrbHlSUVJBUVFBaEFpQVRJQUZCQWtZZ0N5MEFlMEVBUjNGeVJRMEZDeUFMSUE0UVFEWUNFQ0FMUVJocUlBdEJFR29RcUFFaEFnSkFJQUZGRFFBZ0FTQUxhaTBBZDBFQlN3MEFBMEFDUUNBTElBNFFiallDRUNBQ0lBdEJFR29RVzBVTkFDQUhRWURBQUNBQ0tBSUFMQUFBRUVSRkRRQWdBaENYQVF3QkN3c2dDeUFPRUVBMkFoQWdBaWdDQUNBTEtBSVFheUlDSUJBUUNVMEVRQ0FMSUJBUWJqWUNFQ0FMUVJCcVFRQWdBbXNRcGdJaEF5QVFFRzRoQkNBT0VFQWhGQ01BUVNCcklnSWtBQ0FDSUFRMkFoQWdBaUFETmdJWUlBSWdGRFlDQ0FOQUFrQWdBa0VZYWlBQ1FSQnFFRnNpQTBVTkFDQUNLQUlZTFFBQUlBSW9BZ2d0QUFCSERRQWdBa0VZYWhDWEFTQUNRUWhxRUpjQkRBRUxDeUFDUVNCcUpBQWdBMEVCY3cwQkN5QUxJQTRRUURZQ0NDQUxRUkJxSUF0QkNHb1FxQUVhSUFzZ0N5Z0NFRFlDR0FzZ0N5QUxLQUlZTmdJUUEwQUNRQ0FMSUE0UWJqWUNDQ0FMUVJCcUlBdEJDR29RVzBVTkFDQUFJQXRCcUFScUVERkZEUUFnQUJBZlFmOEJjU0FMS0FJUUxRQUFSdzBBSUFBUUlob2dDMEVRYWhDWEFRd0JDd3NnRWtVTkF5QUxJQTRRYmpZQ0NDQUxRUkJxSUF0QkNHb1FXMFVOQXlBRklBVW9BZ0JCQkhJMkFnQkJBQ0VBREFJTEEwQUNRQ0FBSUF0QnFBUnFFREZGRFFBQ2Z5QUhRWUFRSUFBUUh5SUNFRVFFUUNBSktBSUFJZ01nQ3lnQ3BBUkdCRUFnQ0NBSklBdEJwQVJxRUtrQ0lBa29BZ0FoQXdzZ0NTQURRUUZxTmdJQUlBTWdBam9BQUNBRVFRRnFEQUVMSUJFUUNVVWdCRVZ5RFFFZ0N5MEFkaUFDUWY4QmNVY05BU0FMS0FLRUFTSUNJQXNvQW9BQlJnUkFJQThnQzBHRUFXb2dDMEdBQVdvUWhnRWdDeWdDaEFFaEFnc2dDeUFDUVFScU5nS0VBU0FDSUFRMkFnQkJBQXNoQkNBQUVDSWFEQUVMQ3lBRVJTQUxLQUtFQVNJQ0lBOG9BZ0JHY2tVRVFDQUxLQUtBQVNBQ1JnUkFJQThnQzBHRUFXb2dDMEdBQVdvUWhnRWdDeWdDaEFFaEFnc2dDeUFDUVFScU5nS0VBU0FDSUFRMkFnQUxBa0FnQ3lnQ0pFRUFUQTBBQWtBZ0FDQUxRYWdFYWhBbVJRUkFJQUFRSDBIL0FYRWdDeTBBZDBZTkFRc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0RDd05BSUFBUUlob2dDeWdDSkVFQVRBMEJBa0FnQUNBTFFhZ0VhaEFtUlFSQUlBZEJnQkFnQUJBZkVFUU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdFQ3lBSktBSUFJQXNvQXFRRVJnUkFJQWdnQ1NBTFFhUUVhaENwQWdzZ0FCQWZJUUlnQ1NBSktBSUFJZ05CQVdvMkFnQWdBeUFDT2dBQUlBc2dDeWdDSkVFQmF6WUNKQXdBQ3dBTElBb2hBaUFJS0FJQUlBa29BZ0JIRFFNZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3QkN3SkFJQXBGRFFCQkFTRUVBMEFnQ2hBSklBUk5EUUVDUUNBQUlBdEJxQVJxRUNaRkJFQWdBQkFmUWY4QmNTQUtJQVFRQ3kwQUFFWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBQUVDSWFJQVJCQVdvaEJBd0FDd0FMUVFFaEFDQVBLQUlBSUFzb0FvUUJSZzBBUVFBaEFDQUxRUUEyQWhnZ0VTQVBLQUlBSUFzb0FvUUJJQXRCR0dvUUxTQUxLQUlZQkVBZ0JTQUZLQUlBUVFSeU5nSUFEQUVMUVFFaEFBc2dFQkFLR2lBTkVBb2FJQXdRQ2hvZ0RoQUtHaUFSRUFvYUlBOFFIU0FMUWJBRWFpUUFJQUFQQ3lBS0lRSUxJQUZCQVdvaEFRd0FDd0FMREFBZ0FFRUJRUzBRdXdJYUN3d0FJQUJCQVVFdEVPOEJHZ3NLQUNBQklBQnJRUUoxQ3dRQUlBRUxOUUVCZnlNQVFSQnJJZ0lrQUNBQ0lBQXRBQUE2QUE4Z0FDQUJMUUFBT2dBQUlBRWdBa0VQYWkwQUFEb0FBQ0FDUVJCcUpBQUxaQUVCZnlNQVFSQnJJZ1lrQUNBR1FRQTZBQThnQmlBRk9nQU9JQVlnQkRvQURTQUdRU1U2QUF3Z0JRUkFJQVpCRFdvZ0JrRU9haEN3QWdzZ0FpQUJJQUVnQWlnQ0FCRHVBaUFHUVF4cUlBTWdBQ2dDQUJBQklBRnFOZ0lBSUFaQkVHb2tBQXZ5QVFFRmZ5TUFRUkJySWdNa0FDQUNRZ0EzQUFBZ0FrSUFOd0FJSUFNZ0FTa0FDRGNEQ0NBRElBRXBBQUEzQXdBRFFDQUFJQVZxSVFaQkFDRUJBMEFnQmkwQUFFRUhJQUZyZGtFQmNRUkFJQUlnQXhDZEFRc2dBeTBBRHlFSElBTkJER29pQkNBRExRQUxRUjkwSUFRUWxBRkJBWFp5RUpNQklBTkJDR29pQkNBRExRQUhRUjkwSUFRUWxBRkJBWFp5RUpNQklBTkJCR29pQkNBRExRQURRUjkwSUFRUWxBRkJBWFp5RUpNQklBTWdBeENVQVVFQmRoQ1RBU0FIUVFGeEJFQWdBeUFETFFBQVFlRUJjem9BQUFzZ0FVRUJhaUlCUVFoSERRQUxJQVZCQVdvaUJVRVFSdzBBQ3lBRFFSQnFKQUFMUVFBZ0FTQUNJQU1nQkVFRUVGZ2hBU0FETFFBQVFRUnhSUVJBSUFBZ0FVSFFEMm9nQVVIc0Rtb2dBU0FCUWVRQVNCc2dBVUhGQUVnYlFld09hellDQUFzTFFBQWdBaUFESUFCQkNHb2dBQ2dDQ0NnQ0JCRUFBQ0lBSUFCQm9BSnFJQVVnQkVFQUVMSUJJQUJySWdCQm53Sk1CRUFnQVNBQVFReHRRUXh2TmdJQUN3dEFBQ0FDSUFNZ0FFRUlhaUFBS0FJSUtBSUFFUUFBSWdBZ0FFR29BV29nQlNBRVFRQVFzZ0VnQUdzaUFFR25BVXdFUUNBQklBQkJERzFCQjI4MkFnQUxDMEVBSUFFZ0FpQURJQVJCQkJCWklRRWdBeTBBQUVFRWNVVUVRQ0FBSUFGQjBBOXFJQUZCN0E1cUlBRWdBVUhrQUVnYklBRkJ4UUJJRzBIc0RtczJBZ0FMQzBBQUlBSWdBeUFBUVFocUlBQW9BZ2dvQWdRUkFBQWlBQ0FBUWFBQ2FpQUZJQVJCQUJDMEFTQUFheUlBUVo4Q1RBUkFJQUVnQUVFTWJVRU1iellDQUFzTFFBQWdBaUFESUFCQkNHb2dBQ2dDQ0NnQ0FCRUFBQ0lBSUFCQnFBRnFJQVVnQkVFQUVMUUJJQUJySWdCQnB3Rk1CRUFnQVNBQVFReHRRUWR2TmdJQUN3c0VBRUVDQzY4RkFRcC9Jd0JCRUdzaUNTUUFJQVlRT3lFS0lBa2dCaENNQVNJTkVEY2dCU0FETmdJQUFrQUNRQ0FBSWdjdEFBQWlCa0VyYXc0REFBRUFBUXNnQ2lBR1FSaDBRUmgxRUQwaEJpQUZJQVVvQWdBaUIwRUVhallDQUNBSElBWTJBZ0FnQUVFQmFpRUhDd0pBQWtBZ0FpQUhJZ1pyUVFGTURRQWdCeTBBQUVFd1J3MEFJQWN0QUFGQklISkIrQUJIRFFBZ0NrRXdFRDBoQmlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFZMkFnQWdDaUFITEFBQkVEMGhCaUFGSUFVb0FnQWlDRUVFYWpZQ0FDQUlJQVkyQWdBZ0IwRUNhaUlISVFZRFFDQUNJQVpORFFJZ0Jpd0FBQkFXRU5nQ1JRMENJQVpCQVdvaEJnd0FDd0FMQTBBZ0FpQUdUUTBCSUFZc0FBQWhDQkFXR2lBSUVFVkZEUUVnQmtFQmFpRUdEQUFMQUFzQ1FDQUpFRWtFUUNBS0lBY2dCaUFGS0FJQUVHTWdCU0FGS0FJQUlBWWdCMnRCQW5ScU5nSUFEQUVMSUFjZ0JoQjVJQTBRT0NFT0lBY2hDQU5BSUFZZ0NFMEVRQ0FESUFjZ0FHdEJBblJxSUFVb0FnQVFyUUVGQWtBZ0NTQUxFQXNzQUFCQkFFd05BQ0FNSUFrZ0N4QUxMQUFBUncwQUlBVWdCU2dDQUNJTVFRUnFOZ0lBSUF3Z0RqWUNBQ0FMSUFzZ0NSQUpRUUZyU1dvaEMwRUFJUXdMSUFvZ0NDd0FBQkE5SVE4Z0JTQUZLQUlBSWhCQkJHbzJBZ0FnRUNBUE5nSUFJQWhCQVdvaENDQU1RUUZxSVF3TUFRc0xDd0pBQWtBRFFDQUNJQVpORFFFZ0JpMEFBQ0lIUVM1SEJFQWdDaUFIUVJoMFFSaDFFRDBoQnlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFjMkFnQWdCa0VCYWlFR0RBRUxDeUFORUVnaEJ5QUZJQVVvQWdBaUMwRUVhaUlJTmdJQUlBc2dCellDQUNBR1FRRnFJUVlNQVFzZ0JTZ0NBQ0VJQ3lBS0lBWWdBaUFJRUdNZ0JTQUZLQUlBSUFJZ0JtdEJBblJxSWdVMkFnQWdCQ0FGSUFNZ0FTQUFhMEVDZEdvZ0FTQUNSaHMyQWdBZ0NSQUtHaUFKUVJCcUpBQUx1QUVCQlg4akFFRVFheUlISkFBakFFRVFheUlGSkFBQ1FDQUJRZS8vLy84RFRRUkFBa0FnQVVFQlRRUkFJQUFnQVJBNklBQWhCZ3dCQ3lBQUlBQWdBUkNDQVVFQmFpSURFSUVCSWdZUVRTQUFJQU1RVENBQUlBRVFPUXNnQmlFRUlBRWlBd1IvSUFNRVFBTkFJQVFnQWpZQ0FDQUVRUVJxSVFRZ0EwRUJheUlERFFBTEMwRUFCU0FFQ3hvZ0JVRUFOZ0lNSUFZZ0FVRUNkR29nQlVFTWFoQXpJQVZCRUdva0FBd0JDeEFYQUFzZ0IwRVFhaVFBSUFBTG1RVUJDbjhqQUVFUWF5SUpKQUFnQmhBeUlRb2dDU0FHRUk0QklnMFFOeUFGSUFNMkFnQUNRQUpBSUFBaUJ5MEFBQ0lHUVN0ckRnTUFBUUFCQ3lBS0lBWkJHSFJCR0hVUUtTRUdJQVVnQlNnQ0FDSUhRUUZxTmdJQUlBY2dCam9BQUNBQVFRRnFJUWNMQWtBQ1FDQUNJQWNpQm10QkFVd05BQ0FITFFBQVFUQkhEUUFnQnkwQUFVRWdja0g0QUVjTkFDQUtRVEFRS1NFR0lBVWdCU2dDQUNJSVFRRnFOZ0lBSUFnZ0Jqb0FBQ0FLSUFjc0FBRVFLU0VHSUFVZ0JTZ0NBQ0lJUVFGcU5nSUFJQWdnQmpvQUFDQUhRUUpxSWdjaEJnTkFJQUlnQmswTkFpQUdMQUFBRUJZUTJBSkZEUUlnQmtFQmFpRUdEQUFMQUFzRFFDQUNJQVpORFFFZ0Jpd0FBQ0VJRUJZYUlBZ1FSVVVOQVNBR1FRRnFJUVlNQUFzQUN3SkFJQWtRU1FSQUlBb2dCeUFHSUFVb0FnQVFieUFGSUFVb0FnQWdCaUFIYTJvMkFnQU1BUXNnQnlBR0VIa2dEUkE0SVE0Z0J5RUlBMEFnQmlBSVRRUkFJQU1nQnlBQWEyb2dCU2dDQUJCNUJRSkFJQWtnREJBTExBQUFRUUJNRFFBZ0N5QUpJQXdRQ3l3QUFFY05BQ0FGSUFVb0FnQWlDMEVCYWpZQ0FDQUxJQTQ2QUFBZ0RDQU1JQWtRQ1VFQmEwbHFJUXhCQUNFTEN5QUtJQWdzQUFBUUtTRVBJQVVnQlNnQ0FDSVFRUUZxTmdJQUlCQWdEem9BQUNBSVFRRnFJUWdnQzBFQmFpRUxEQUVMQ3dzRFFBSkFJQUlnQmtzRVFDQUdMUUFBSWdkQkxrY05BU0FORUVnaEJ5QUZJQVVvQWdBaUNFRUJhallDQUNBSUlBYzZBQUFnQmtFQmFpRUdDeUFLSUFZZ0FpQUZLQUlBRUc4Z0JTQUZLQUlBSUFJZ0JtdHFJZ1UyQWdBZ0JDQUZJQU1nQVNBQWEyb2dBU0FDUmhzMkFnQWdDUkFLR2lBSlFSQnFKQUFQQ3lBS0lBZEJHSFJCR0hVUUtTRUhJQVVnQlNnQ0FDSUlRUUZxTmdJQUlBZ2dCem9BQUNBR1FRRnFJUVlNQUFzQUMvUUJBUWwvSUFFUURTRUVJQUVRQ1NFSEl3QkJJR3NpQVNRQUFrQWdBVUVZYWlBQUVJUURJZ2d0QUFCRkRRQWdBVUVJYWlBQUVNQUJJUWtnQUNBQUtBSUFRUXhyS0FJQWFpSUZLQUlFSVFvQ1FFRi9JQVVpQWlnQ1RCQmVSUVJBSUFJb0Frd2hBZ3dCQ3lBQ0FuOGpBRUVRYXlJREpBQWdBMEVJYWlJR0lBSVFEeUFHRURKQklCQXBJUUlnQmhBT0lBTkJFR29rQUNBQ0N6WUNUQXNnQWtFWWRFRVlkU0VDSUFFZ0NTZ0NBQ0FFSUFRZ0Iyb2lBeUFFSUFwQnNBRnhRU0JHR3lBRElBVWdBaEJXTmdJUUlBRW9BaEFOQUNBQUlBQW9BZ0JCREdzb0FnQnFRUVVRZ0FFTElBZ1FnZ01nQVVFZ2FpUUFDellCQW45QjlBRVFHU0lDQkg4Z0FpQUFJQUZCQTNRUWlRTWlBRUVBU0FSQUlBSVFFRUVBRHdzZ0FpQUFOZ0x3QVNBQ0JTQURDd3VkQXdFQ2Z5TUFRZUFDYXlJQUpBQWdBQ0FDTmdMUUFpQUFJQUUyQXRnQ0lBTVFYQ0VHSUFNZ0FFSGdBV29RbVFFaEJ5QUFRZEFCYWlBRElBQkJ6QUpxRUpnQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQjJBSnFJQUJCMEFKcUVEWkZEUUFnQUNnQ3ZBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJ3QkN5QUFRZGdDYWhBaElBWWdBaUFBUWJ3QmFpQUFRUWhxSUFBb0Fzd0NJQUJCMEFGcUlBQkJFR29nQUVFTWFpQUhFSXNCRFFBZ0FFSFlBbW9RSlJvTUFRc0xBa0FnQUVIUUFXb1FDVVVOQUNBQUtBSU1JZ01nQUVFUWFtdEJud0ZLRFFBZ0FDQURRUVJxTmdJTUlBTWdBQ2dDQ0RZQ0FBc2dCU0FDSUFBb0Fyd0JJQVFnQmhESEFqWUNBQ0FBUWRBQmFpQUFRUkJxSUFBb0Fnd2dCQkF0SUFCQjJBSnFJQUJCMEFKcUVDZ0VRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9BdGdDSVFJZ0FSQUtHaUFBUWRBQmFoQUtHaUFBUWVBQ2FpUUFJQUlMVkFFQ2Z5TUFRUkJySWdNa0FDQURRUUkyQWd3Z0FpQUJFQWtpQkVzRVFCQVhBQXNnQVJBTklRRWdBeUFFSUFKck5nSUVJQUFnQVNBQ2FpQURRUXhxSUFOQkJHb1FvZ0VvQWdBUTlnRWdBMEVRYWlRQUMwSUJBWDhqQUVFUWF5SURKQUFnQXlBQk5nSU1JQU1nQWpZQ0NDQURJQU5CREdvUVVpRUJJQUJCOHhzZ0F5Z0NDQkRpQWlFQUlBRVFVU0FEUVJCcUpBQWdBQXNZQUNBQUlBQW9BZ0JCREdzb0FnQnFRUUlSQUFBYUlBQUxzUUlDQkg0RmZ5TUFRU0JySWdna0FBSkFBa0FDUUNBQklBSkhCRUJCMUlFQktBSUFJUXhCMUlFQlFRQTJBZ0FqQUVFUWF5SUpKQUFRRmhvakFFRVFheUlLSkFBakFFRVFheUlMSkFBZ0N5QUJJQWhCSEdwQkFoRFlBU0FMS1FNQUlRUWdDaUFMS1FNSU53TUlJQW9nQkRjREFDQUxRUkJxSkFBZ0Npa0RBQ0VFSUFrZ0Npa0RDRGNEQ0NBSklBUTNBd0FnQ2tFUWFpUUFJQWtwQXdBaEJDQUlJQWtwQXdnM0F4QWdDQ0FFTndNSUlBbEJFR29rQUNBSUtRTVFJUVFnQ0NrRENDRUZRZFNCQVNnQ0FDSUJSUTBCSUFnb0Fod2dBa2NOQWlBRklRWWdCQ0VISUFGQnhBQkhEUU1NQWdzZ0EwRUVOZ0lBREFJTFFkU0JBU0FNTmdJQUlBZ29BaHdnQWtZTkFRc2dBMEVFTmdJQUlBWWhCU0FISVFRTElBQWdCVGNEQUNBQUlBUTNBd2dnQ0VFZ2FpUUFDN1lCQWdKOEEzOGpBRUVRYXlJRkpBQUNRQUpBQWtBZ0FDQUJSd1JBUWRTQkFTZ0NBQ0VIUWRTQkFVRUFOZ0lBRUJZYUl3QkJFR3NpQmlRQUlBWWdBQ0FGUVF4cVFRRVEyQUVnQmlrREFDQUdLUU1JRU4wQklRTWdCa0VRYWlRQVFkU0JBU2dDQUNJQVJRMEJJQVVvQWd3Z0FVY05BaUFESVFRZ0FFSEVBRWNOQXd3Q0N5QUNRUVEyQWdBTUFndEIxSUVCSUFjMkFnQWdCU2dDRENBQlJnMEJDeUFDUVFRMkFnQWdCQ0VEQ3lBRlFSQnFKQUFnQXd1MkFRSUNmUU4vSXdCQkVHc2lCU1FBQWtBQ1FBSkFJQUFnQVVjRVFFSFVnUUVvQWdBaEIwSFVnUUZCQURZQ0FCQVdHaU1BUVJCcklnWWtBQ0FHSUFBZ0JVRU1ha0VBRU5nQklBWXBBd0FnQmlrRENCRGtBaUVESUFaQkVHb2tBRUhVZ1FFb0FnQWlBRVVOQVNBRktBSU1JQUZIRFFJZ0F5RUVJQUJCeEFCSERRTU1BZ3NnQWtFRU5nSUFEQUlMUWRTQkFTQUhOZ0lBSUFVb0Fnd2dBVVlOQVFzZ0FrRUVOZ0lBSUFRaEF3c2dCVUVRYWlRQUlBTUx4Z0VDQTM4QmZpTUFRUkJySWdRa0FBSitBa0FDUUNBQUlBRkhCRUFDUUFKQUlBQXRBQUFpQlVFdFJ3MEFJQUJCQVdvaUFDQUJSdzBBREFFTFFkU0JBU2dDQUNFR1FkU0JBVUVBTmdJQUlBQWdCRUVNYWlBREVCWVEyUUVoQndKQVFkU0JBU2dDQUNJQUJFQWdCQ2dDRENBQlJ3MEJJQUJCeEFCR0RRUU1CUXRCMUlFQklBWTJBZ0FnQkNnQ0RDQUJSZzBFQ3dzTElBSkJCRFlDQUVJQURBSUxJQUpCQkRZQ0FFSi9EQUVMUWdBZ0IzMGdCeUFGUVMxR0d3c2hCeUFFUVJCcUpBQWdCd3ZYQVFJRGZ3RitJd0JCRUdzaUJDUUFBbjhDUUFKQUFrQWdBQ0FCUndSQUFrQUNRQ0FBTFFBQUlnVkJMVWNOQUNBQVFRRnFJZ0FnQVVjTkFBd0JDMEhVZ1FFb0FnQWhCa0hVZ1FGQkFEWUNBQ0FBSUFSQkRHb2dBeEFXRU5rQklRY0NRRUhVZ1FFb0FnQWlBQVJBSUFRb0Fnd2dBVWNOQVNBQVFjUUFSZzBGREFRTFFkU0JBU0FHTmdJQUlBUW9BZ3dnQVVZTkF3c0xDeUFDUVFRMkFnQkJBQXdEQ3lBSFF2Ly8vLzhQV0EwQkN5QUNRUVEyQWdCQmZ3d0JDMEVBSUFlbklnQnJJQUFnQlVFdFJoc0xJUUFnQkVFUWFpUUFJQUFMa2dNQkFYOGpBRUdRQW1zaUFDUUFJQUFnQWpZQ2dBSWdBQ0FCTmdLSUFpQURFRndoQmlBQVFkQUJhaUFESUFCQi93RnFFSm9CSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCaUFKcUlBQkJnQUpxRURGRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFZZ0NhaEFmSUFZZ0FpQUFRYndCYWlBQVFRaHFJQUFzQVA4QklBQkIwQUZxSUFCQkVHb2dBRUVNYWtIZzBBQVFqUUVOQUNBQVFZZ0NhaEFpR2d3QkN3c0NRQ0FBUWRBQmFoQUpSUTBBSUFBb0Fnd2lBeUFBUVJCcWEwR2ZBVW9OQUNBQUlBTkJCR28yQWd3Z0F5QUFLQUlJTmdJQUN5QUZJQUlnQUNnQ3ZBRWdCQ0FHRU1jQ05nSUFJQUJCMEFGcUlBQkJFR29nQUNnQ0RDQUVFQzBnQUVHSUFtb2dBRUdBQW1vUUpnUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0NpQUloQWlBQkVBb2FJQUJCMEFGcUVBb2FJQUJCa0FKcUpBQWdBZ3ZjQVFJRGZ3RitJd0JCRUdzaUJDUUFBbjhDUUFKQUFrQWdBQ0FCUndSQUFrQUNRQ0FBTFFBQUlnVkJMVWNOQUNBQVFRRnFJZ0FnQVVjTkFBd0JDMEhVZ1FFb0FnQWhCa0hVZ1FGQkFEWUNBQ0FBSUFSQkRHb2dBeEFXRU5rQklRY0NRRUhVZ1FFb0FnQWlBQVJBSUFRb0Fnd2dBVWNOQVNBQVFjUUFSZzBGREFRTFFkU0JBU0FHTmdJQUlBUW9BZ3dnQVVZTkF3c0xDeUFDUVFRMkFnQkJBQXdEQ3lBSFF2Ly9BMWdOQVFzZ0FrRUVOZ0lBUWYvL0F3d0JDMEVBSUFlbklnQnJJQUFnQlVFdFJoc0xJUUFnQkVFUWFpUUFJQUJCLy84RGNRdTJBUUlCZmdKL0l3QkJFR3NpQlNRQUFrQUNRQ0FBSUFGSEJFQkIxSUVCS0FJQUlRWkIxSUVCUVFBMkFnQWdBQ0FGUVF4cUlBTVFGaERQQWlFRUFrQkIxSUVCS0FJQUlnQUVRQ0FGS0FJTUlBRkhEUUVnQUVIRUFFWU5Bd3dFQzBIVWdRRWdCallDQUNBRktBSU1JQUZHRFFNTEN5QUNRUVEyQWdCQ0FDRUVEQUVMSUFKQkJEWUNBQ0FFUWdCVkJFQkMvLy8vLy8vLy8vLy9BQ0VFREFFTFFvQ0FnSUNBZ0lDQWdIOGhCQXNnQlVFUWFpUUFJQVFMd3dFQ0FuOEJmaU1BUVJCcklnUWtBQUovQWtBQ1FDQUFJQUZIQkVCQjFJRUJLQUlBSVFWQjFJRUJRUUEyQWdBZ0FDQUVRUXhxSUFNUUZoRFBBaUVHQWtCQjFJRUJLQUlBSWdBRVFDQUVLQUlNSUFGSERRRWdBRUhFQUVZTkJBd0RDMEhVZ1FFZ0JUWUNBQ0FFS0FJTUlBRkdEUUlMQ3lBQ1FRUTJBZ0JCQUF3Q0N5QUdRb0NBZ0lCNFV5QUdRdi8vLy84SFZYSU5BQ0FHcHd3QkN5QUNRUVEyQWdCQi8vLy8vd2NnQmtJQVZRMEFHa0dBZ0lDQWVBc2hBQ0FFUVJCcUpBQWdBQXZtQWdFRWZ5QUFRVUJySWdOQnZDZzJBZ0FnQTBIMElUWUNBQ0FBUWZ3bE5nSUFJQU5CcENZMkFnQWdBRUdRSmpZQ0NDQUFRYlFtS0FJQUlnRTJBZ0FnQUNBQlFReHJLQUlBYWtHNEppZ0NBRFlDQUNBQVFRQTJBZ1FnQUNBQUtBSUFRUXhyS0FJQWFpSUNRUUEyQWhRZ0FpQUFRUXhxSWdFMkFoZ2dBa0VBTmdJTUlBSkNncUNBZ09BQU53SUVJQUlnQVVVMkFoQWdBa0VnYWtFQVFTZ1FSaG9nQWtFY2FoQ1BBaUFDUVFBMkFrZ2dBa0YvTmdKTUlBQkJDR29pQWtHOEppZ0NBQ0lFTmdJQUlBSWdCRUVNYXlnQ0FHcEJ3Q1lvQWdBMkFnQWdBRUd3SmlnQ0FDSUNOZ0lBSUFBZ0FrRU1heWdDQUdwQnhDWW9BZ0EyQWdBZ0FFSElKaWdDQURZQ0NDQUFRZndsTmdJQUlBTkJwQ1kyQWdBZ0FFR1FKallDQ0NBQlFid2ZOZ0lBSUFGQkJHb1Fqd0lnQVVJQU53SVlJQUZDQURjQ0VDQUJRZ0EzQWdnZ0FVRzBJVFlDQUNBQlFTQnFFQkVhSUFGQkdEWUNNQ0FCUVFBMkFpd2dBQXNLQUNBQklBQnJRUXh0QzVRQkFRUi9Jd0JCRUdzaUJTUUFJQUVnQWhDaUFpSUVRZS8vLy84RFRRUkFBa0FnQkVFQlRRUkFJQUFnQkJBNklBQWhBd3dCQ3lBQUlBQWdCQkNDQVVFQmFpSUdFSUVCSWdNUVRTQUFJQVlRVENBQUlBUVFPUXNEUUNBQklBSkhCRUFnQXlBQkVETWdBMEVFYWlFRElBRkJCR29oQVF3QkN3c2dCVUVBTmdJTUlBTWdCVUVNYWhBeklBVkJFR29rQUE4TEVCY0FDeFlBSUFBZ0FTQUNRb0NBZ0lDQWdJQ0FnSDhRMEFJTGtnUUNCMzhFZmlNQVFSQnJJZ2drQUFKQUFrQUNRQ0FDUVNSTUJFQWdBQzBBQUNJRkRRRWdBQ0VFREFJTFFkU0JBVUVjTmdJQVFnQWhBd3dDQ3lBQUlRUUNRQU5BSUFWQkdIUkJHSFVRY0VVTkFTQUVMUUFCSVFVZ0JFRUJhaUVFSUFVTkFBc01BUXNDUUNBRUxRQUFJZ1ZCSzJzT0F3QUJBQUVMUVg5QkFDQUZRUzFHR3lFSElBUkJBV29oQkFzQ2Z3SkFJQUpCYjNFTkFDQUVMUUFBUVRCSERRQkJBU0VKSUFRdEFBRkIzd0Z4UWRnQVJnUkFJQVJCQW1vaEJFRVFEQUlMSUFSQkFXb2hCQ0FDUVFnZ0Foc01BUXNnQWtFS0lBSWJDeUlLckNFTVFRQWhBZ05BQWtCQlVDRUZBa0FnQkN3QUFDSUdRVEJyUWY4QmNVRUtTUTBBUWFsL0lRVWdCa0hoQUd0Qi93RnhRUnBKRFFCQlNTRUZJQVpCd1FCclFmOEJjVUVaU3cwQkN5QUZJQVpxSWdZZ0NrNE5BQ0FJSUF4Q0FDQUxRZ0FRSzBFQklRVUNRQ0FJS1FNSVFnQlNEUUFnQ3lBTWZpSU5JQWFzSWc1Q2Y0VldEUUFnRFNBT2ZDRUxRUUVoQ1NBQ0lRVUxJQVJCQVdvaEJDQUZJUUlNQVFzTElBRUVRQ0FCSUFRZ0FDQUpHellDQUFzQ1FBSkFJQUlFUUVIVWdRRkJ4QUEyQWdBZ0IwRUFJQU5DQVlNaURGQWJJUWNnQXlFTERBRUxJQU1nQzFZTkFTQURRZ0dESVF3TElBeW5JQWR5UlFSQVFkU0JBVUhFQURZQ0FDQURRZ0Y5SVFNTUFnc2dBeUFMV2cwQVFkU0JBVUhFQURZQ0FBd0JDeUFMSUFlc0lnT0ZJQU45SVFNTElBaEJFR29rQUNBREN6RUJBWDlCMklZQktBSUFJUUVnQUFSQVFkaUdBVUhvaFFFZ0FDQUFRWDlHR3pZQ0FBdEJmeUFCSUFGQjZJVUJSaHNMclFnQkJYOGdBU2dDQUNFRUFrQUNRQUpBQWtBQ1FBSkFBa0FDZndKQUFrQUNRQUpBSUFORkRRQWdBeWdDQUNJR1JRMEFJQUJGQkVBZ0FpRUREQU1MSUFOQkFEWUNBQ0FDSVFNTUFRc0NRRUhZaGdFb0FnQW9BZ0JGQkVBZ0FFVU5BU0FDUlEwTUlBSWhCZ05BSUFRc0FBQWlBd1JBSUFBZ0EwSC92d054TmdJQUlBQkJCR29oQUNBRVFRRnFJUVFnQmtFQmF5SUdEUUVNRGdzTElBQkJBRFlDQUNBQlFRQTJBZ0FnQWlBR2F3OExJQUloQXlBQVJRMEREQVVMSUFRUWtnRVBDMEVCSVFVTUF3dEJBQXdCQzBFQkN5RUZBMEFnQlVVRVFDQUVMUUFBUVFOMklnVkJFR3NnQmtFYWRTQUZhbkpCQjBzTkF3Si9JQVJCQVdvaUJTQUdRWUNBZ0JCeFJRMEFHaUFGTFFBQVFjQUJjVUdBQVVjRVFDQUVRUUZySVFRTUJ3c2dCRUVDYWlJRklBWkJnSUFnY1VVTkFCb2dCUzBBQUVIQUFYRkJnQUZIQkVBZ0JFRUJheUVFREFjTElBUkJBMm9MSVFRZ0EwRUJheUVEUVFFaEJRd0JDd05BQWtBZ0JFRURjU0FFTFFBQUlnWkJBV3RCL2dCTGNnMEFJQVFvQWdBaUJrR0Jnb1FJYXlBR2NrR0FnWUtFZUhFTkFBTkFJQU5CQkdzaEF5QUVLQUlFSVFZZ0JFRUVhaUVFSUFZZ0JrR0Jnb1FJYTNKQmdJR0NoSGh4UlEwQUN3c2dCa0gvQVhFaUJVRUJhMEgrQUUwRVFDQURRUUZySVFNZ0JFRUJhaUVFREFFTEN5QUZRY0lCYXlJRlFUSkxEUU1nQkVFQmFpRUVJQVZCQW5SQndDdHFLQUlBSVFaQkFDRUZEQUFMQUFzRFFDQUZSUVJBSUFORkRRY0RRQUpBQWtBQ1FDQUVMUUFBSWdWQkFXc2lCMEgrQUVzRVFDQUZJUVlNQVFzZ0JFRURjU0FEUVFWSmNnMEJBa0FEUUNBRUtBSUFJZ1pCZ1lLRUNHc2dCbkpCZ0lHQ2hIaHhEUUVnQUNBR1FmOEJjVFlDQUNBQUlBUXRBQUUyQWdRZ0FDQUVMUUFDTmdJSUlBQWdCQzBBQXpZQ0RDQUFRUkJxSVFBZ0JFRUVhaUVFSUFOQkJHc2lBMEVFU3cwQUN5QUVMUUFBSVFZTElBWkIvd0Z4SWdWQkFXc2hCd3NnQjBIK0FFc05BUXNnQUNBRk5nSUFJQUJCQkdvaEFDQUVRUUZxSVFRZ0EwRUJheUlERFFFTUNRc0xJQVZCd2dGcklnVkJNa3NOQXlBRVFRRnFJUVFnQlVFQ2RFSEFLMm9vQWdBaEJrRUJJUVVNQVFzZ0JDMEFBQ0lGUVFOMklnZEJFR3NnQnlBR1FScDFhbkpCQjBzTkFRSkFBa0FDZnlBRVFRRnFJZ2NnQlVHQUFXc2dCa0VHZEhJaUJVRUFUZzBBR2lBSExRQUFRWUFCYXlJSFFUOUxEUUVnQkVFQ2FpSUlJQWNnQlVFR2RISWlCVUVBVGcwQUdpQUlMUUFBUVlBQmF5SUhRVDlMRFFFZ0J5QUZRUVowY2lFRklBUkJBMm9MSVFRZ0FDQUZOZ0lBSUFOQkFXc2hBeUFBUVFScUlRQU1BUXRCMUlFQlFSazJBZ0FnQkVFQmF5RUVEQVVMUVFBaEJRd0FDd0FMSUFSQkFXc2hCQ0FHRFFFZ0JDMEFBQ0VHQ3lBR1FmOEJjUTBBSUFBRVFDQUFRUUEyQWdBZ0FVRUFOZ0lBQ3lBQ0lBTnJEd3RCMUlFQlFSazJBZ0FnQUVVTkFRc2dBU0FFTmdJQUMwRi9Ed3NnQVNBRU5nSUFJQUlMSXdFQ2Z5QUFJUUVEUUNBQklnSkJCR29oQVNBQ0tBSUFEUUFMSUFJZ0FHdEJBblVMRGdBZ0FCRGZBZ1JBSUFBUUVBc0xVd0VFZndKQUlBRkJBRXdOQUNBQlFRRnJJZ1JGRFFBRFFDQUFJQUpxSWdNdEFBQWhCU0FESUFBZ0FrRUJjbW9pQXkwQUFEb0FBQ0FESUFVNkFBQWdBa0VDYWlJQ0lBRk9EUUVnQWlBRVJ3MEFDd3NMTEFFQmZ5TUFRUkJySWdJa0FDQUNJQUUyQWd3Z0FFSGtBRUh1SENBQkVMVUJJUUFnQWtFUWFpUUFJQUFMS1FFQmZ5TUFRUkJySWdJa0FDQUNJQUUyQWd3Z0FFSDBIQ0FCRU9JQ0lRQWdBa0VRYWlRQUlBQUxGZ0FnQUJCRlFRQkhJQUJCSUhKQjRRQnJRUVpKY2d1OEFnQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFGQkNXc09FZ0FJQ1FvSUNRRUNBd1FLQ1FvS0NBa0ZCZ2NMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVNnQ0FEWUNBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRJQkFEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRNQkFEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRBQUFEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRFQUFEY0RBQThMSUFJZ0FpZ0NBRUVIYWtGNGNTSUJRUWhxTmdJQUlBQWdBU3NEQURrREFBOExJQUFnQWtFekVRTUFDdzhMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRRQ0FEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRVQ0FEY0RBQThMSUFJZ0FpZ0NBRUVIYWtGNGNTSUJRUWhxTmdJQUlBQWdBU2tEQURjREFBditGQUVPZnlNQVFVQnFJZ01rQUNBRFFRQTJBaEFnQTBFQU5nSU1JQU5CQURZQ0NDQURRUUEyQWdRZ0F5QURRUkJxSWdRMkFoUWdBeUFEUVF4cUlnZzJBaGdnQXlnQ0ZCb2dBeUFEUVFocUlnbzJBaHdnQXlnQ0dCb2dBeUFEUVFScUlnWTJBaUFnQXlnQ0hCb2dBeWdDSUJvakFFRVFheUlISkFBZ0JpQUFMUUFDSUFBdEFBRWdBQzBBQUhOelFSaDBRUmgxSWdWQk1ITWdCVUVCZEVHZmYzSnFRUUZxSWdVMkFnQWdDaUFGUVg5eklBRnhJQVVnQVVGL2N5SU1jV3NpQlVGK2NpQUZRWDV4YWtFQmFpSUZOZ0lBSUFRZ0JSQVpOZ0lBSUFnZ0JpZ0NBQ0lKRUJrMkFnQURRQUpBUWIzdSthRitJUVVEUUFKQUFrQWdCVUc4N3ZtaGZrd0VRQ0FGUWUzc2hPTjVSZzBCSUFWQmlhM04yM3hHRFFJZ0JVR0loWUxjZkVjTkF5QUhRUkJxSkFBTUJBc2dCVUgyam9iVkJFY0VRQ0FGUVpxZW84a0RSZ1JBUVFBaEMwSHQ3SVRqZVNFRkRBUUxJQVZCdmU3NW9YNUhEUU1nQnlBSk5nSUlRZmFPaHRVRVFacWVvOGtESUFjb0FnaEJBRW9iSVFVTUF3c2dCaWdDQUNJRlFYOXpJQUZ4SUFVZ0RIRnJJZ2xCZm5NZ0NVRUJkRUY4Y1dvZ0FHb3RBQUVoRFNBSUtBSUFJQVVnQnlnQ0NHdHFJQUFnQnlnQ0NDSUZRWDl6SUFGeFFRRjBJQUVnQlhOcmFpMEFBQ0FBSUFscVFRSnJMUUFBSUExemN6b0FBQ0FIS0FJSVFRRnJJUWtNQkFzZ0J5QUxOZ0lNUVltdHpkdDhRWWlGZ3R4OElBb29BZ0FnQnlnQ0RFb2JJUVVNQVFzZ0JDZ0NBQ0FIS0FJTWFpQUFJQWNvQWd4QkFXb2lDMm90QUFBNkFBQkI3ZXlFNDNraEJRd0FDd0FMQ3lBRElBTW9BZ3hCcng0Z0F5Z0NCQkMrQVRZQ0pFSE51dmFlQlNFQUEwQUNRQUpBQWtBQ1FBSkFBa0FDUUNBQVFjcndxYUlCVEFSQUlBQkIvYlhhNzM1TUJFQWdBRUdSMVl1VWUwWU5CeUFBUWMyVjY5cDdSZzBESUFCQmdOSG4vWHhIRFFsQmtkV0xsSHNoQUVFQUlRRU1DUXNnQUVIK3RkcnZma1lOQkNBQVFhNm0wL1lBUmcwQklBQkIwYUM1R0VjTkNDQURLQUlRRUJBZ0F5Z0NEQkFRSUFNb0FpQWFJQU1vQWh3YUlBTW9BaGdhSUFNb0FoUWFJQU1vQWl3aEFDQURRVUJySkFBZ0FBOExJQUJCNzRUcjlRSk1CRUFnQUVITDhLbWlBVVlOQnlBQVFZekF5b0FDUncwSUlBTW9BaEFoQ0NBREtBSUlJUTVCQUNFSlFRQWhDa0VBSVFWQkFDRUhRUUFoQ3lNQVFSQnJJZ1FrQUVHU21PekRCVUc3N0x5SUJDQUNHeUVHUWRVQUlReEIrZ0VoRFFOQUFrQkI1cXFmZWlFQUEwQUNRQUpBQWtBQ1FBSkFJQUJCcE5XRDlnRk1CRUFnQUVIb3lwQzVmRXdFUUNBQVFmaTErUHQ1UmcwR0lBQkI1TkNXdDNwR0RRVWdBRUdZOWUzT2VVY05CeUFFUVJCcUpBQU1DQXNnQUVIcHlwQzVmRVlOQVNBQVFlYXFuM3BIRFFZZ0JDQUpOZ0lFSUFRZ0RUb0FDeUFFSUF3NkFBeEI2Y3FRdVh4Qm1QWHR6bmtnQkNnQ0JDQU9TQnNoQUF3R0N5QUFRYkR0aXJrRVRBUkFJQUJCcGRXRDlnRkdEUUlnQUVHNzdMeUlCRWNOQmtINHRmajdlU0VBSUFRc0FBMGdCQ2dDQkJEb0FpRUtEQVlMSUFCQnNlMkt1UVJHRFFJZ0FFR1NtT3pEQlVjTkJVSDR0Zmo3ZVNFQUlBUXNBQTBnQkNnQ0JCRGhBaUVLREFVTFFhWFZnL1lCUWJIdGlya0VJQVFvQWdSQkFtOUJBVVliSVFBTUJBc2dDQ0FFS0FJRWFpMEFBQ0lGSUFRdEFBeHpJUWRCNU5DV3Qzb2hBQ0FFTFFBTElRc01Bd3NnQ0NBRUtBSUVhaTBBQUNJTElBUXRBQXR6SVFkQjVOQ1d0M29oQUNBRUxRQU1JUVVNQWdzZ0JDQUxPZ0FPSUFRZ0J6b0FEU0FFSUFVNkFBOGdCaUVBREFFTEN5QUlJQVFvQWdScUlBbzZBQUFnQkNnQ0JFRUJhaUVKSUFRdEFBOGhEQ0FFTFFBT0lRME1BUXNMUWZDRTYvVUNJUUFNQ0FzZ0FFSHdoT3YxQWtZTkFpQUFRWmpYcXBFRFJnMEVJQUJCemJyMm5nVkhEUWRCcnFiVDlnQkJ6WlhyMm5zZ0F5Z0NKQnNoQUF3SEMwR013TXFBQWtITmxldmFleUFES0FJTVFiWWVJQU1vQWdRUXZnRWJJUUFNQmdzZ0F5Z0NFQ0VJSUFNb0FnZ2hCVUVBSVFwQkFDRU5RUUFoQjBFQUlRdEJBQ0VKUVFBaERDTUFRUkJySWdRa0FDQUlJQVVRMVFKQnNxYmJpd1JCdXYrRG9ua2dBaHNoQmtIVkFDRU9RZm9CSVE4RFFBSkFRYlNXMGJvQ0lRQURRQUpBQWtBQ1FDQUFRYk9XMGJvQ1RBUkFJQUJCcGZIYTIzMU1CRUFnQUVHNi80T2llVVlOQkNBQVFaL1VucGg3UmcwRElBQkIwK2k2NDNoSERRVWdDQ0FGRU5VQ0lBUkJFR29rQUF3R0N5QUFRYWJ4MnR0OVJnMEJJQUJCZzZhWnJRRkhEUVJCbDRYY3ZnUkJwdkhhMjMwZ0JDZ0NCRUVDYjBFQlJoc2hBQXdFQ3dKQUFrQWdBRUdXaGR5K0JFd0VRQ0FBUWJTVzBib0NSZzBCSUFCQnNxYmJpd1JIRFFaQi83TGxsd1VoQUNBRUxBQU5JQVFvQWdRUTRRSWhDZ3dHQ3lBQVFaZUYzTDRFUmcwQklBQkIvN0xsbHdWSERRVWdDQ0FFS0FJRWFpQUVMUUFNSWdBZ0NuTWdBQ0FLUVg5emNVRUJkR3M2QUFBZ0JDZ0NCRUVCYWlFTklBUXRBQThoRGlBRUxRQU9JUThNQndzZ0JDQU5OZ0lFSUFRZ0R6b0FDaUFFSUE0NkFBdEJnNmFaclFGQjAraTY0M2dnQkNnQ0JDQUZTQnNoQUF3RUN5QUlJQVFvQWdScUxRQUFJZ2NnQkMwQUMzTWhDMEdmMUo2WWV5RUFJQVF0QUFvaENTQUVMUUFLSVF3TUF3c2dDQ0FFS0FJRWFpMEFBQ0lKSUFRdEFBcHpJUXRCbjlTZW1Ic2hBQ0FFTFFBTElRY2dCQzBBQ3lFTURBSUxJQVFnQ3pvQURTQUVJQXc2QUF3Z0JDQUpPZ0FPSUFRZ0J6b0FEeUFHSVFBTUFRdEIvN0xsbHdVaEFDQUVMQUFOSUFRb0FnUVE2QUloQ2d3QUN3QUxDMEh3aE92MUFpRUFEQVVMSUFNQ2YwRUFJUVFqQUVFUWF5SUdJQU1vQWhBc0FBQTJBZ2dnQmlBR0tBSUlRUzlLT2dBT0lBWWdCaWdDQ0VFNlNEb0FEMEdNNEpTQ2VpRUFBMEFDUUNBQVFhemNoNGg3VEFSQUlBQkJsZXJCdW5oR0JFQkIvd0VoQkVHdDNJZUlleUVBREFNTElBQkJqT0NVZ25wR0RRRWdBRUc4b09mTGVrY05BaUFHS0FJSUlnQkI0UUJ6SUFCQkFYUkJ2WDV5YWtFQmFpSUFRUUYwUVJSeElBQkJDbk5xSVFSQnJkeUhpSHNoQUF3Q0N5QUFRYTNjaDRoN1J3UkFJQUJCbXFYNDZ3SkhCRUFnQUVIQTRyRENBMGNOQXlBR0tBSUlJZ0JCendGeUlBQkJ6d0Z4YWtFQmFpRUVRYTNjaDRoN0lRQU1Bd3RCdktEbnkzcEJsZXJCdW5nZ0JpZ0NDRUg3QUVnYlFaWHF3YnA0SUFZb0FnaEI0QUJLR3lFQURBSUxJQVJCR0hSQkdIVU1BZ3RCd09Ld3dnTkJtcVg0NndJZ0JpMEFEMEVCY1J0Qm1xWDQ2d0lnQmkwQURrRUJjUnNoQUF3QUN3QUxJZ0EyQWdRZ0F5QURLQUlJSWdZZ0FFRi9jM0VnQUNBR1FYOXpjV3NpQmtGK2NpQUdRWDV4YWtFQmFqWUNLQ0FESUFZUUdUWUNMQ0FESUFCQkFYUkJBbkVnQUVFQmMyb1FHVFlDTUVFQUlSQWdBeWdDS0NBREtBSXNha0VBT2dBQUlBTW9BZ1FnQXlnQ01HcEJBRG9BQUVIK3RkcnZmaUVBREFRTElBTWdFRFlDT0VHWTE2cVJBMEdBMGVmOWZDQURLQUlvSUFNb0FqaEtHeUVBREFNTElBTW9BaXdnQXlnQ09Hb2dBeWdDT0NJQVFRRjBRUUp5SUFCQmZuTnFRUUZxSWhBZ0F5Z0NFR290QUFBNkFBQkIvclhhNzM0aEFBd0NDeUFESUFNb0FnUTJBalFnQXlBQk5nSThRY3Z3cWFJQlFkR2d1UmdnQXlnQ05DQURLQUk4U2hzaEFBd0JDeUFES0FJd0lBTW9BanhxSUFNb0FoQWdBeWdDQ0NBREtBSTBheUlBSUFNb0Fqd2lBWEpCQVhRZ0FDQUJjMnRxTFFBQU9nQUFJQU1vQWp4QkFXb2hBVUdSMVl1VWV5RUFEQUFMQUF0ckFRUi9JQUFvQWdBc0FBQVFSVVVFUUVFQUR3c0RRQ0FBS0FJQUlRTkJmeUVCSUFKQnpKbXo1Z0JOQkVCQmZ5QURMQUFBUVRCcklnUWdBa0VLYkNJQmFpQUVRZi8vLy84SElBRnJTaHNoQVFzZ0FDQURRUUZxTmdJQUlBRWhBaUFETEFBQkVFVU5BQXNnQVF2MEVnSVJmd0YrSXdCQjBBQnJJZ1VrQUNBRklBRTJBa3dnQlVFM2FpRVVJQVZCT0dvaEVFRUFJUUVDUUFKQUFrQUNRQU5BSUFGQi8vLy8vd2NnQzJ0S0RRRWdBU0FMYWlFTElBVW9Ba3dpQ2lFQkFrQUNRQUpBSUFvdEFBQWlDUVJBQTBBQ1FBSkFJQWxCL3dGeElnWkZCRUFnQVNFSkRBRUxJQVpCSlVjTkFTQUJJUWtEUUNBQkxRQUJRU1ZIRFFFZ0JTQUJRUUpxSWdZMkFrd2dDVUVCYWlFSklBRXRBQUloQ0NBR0lRRWdDRUVsUmcwQUN3c2dDU0FLYXlJQlFmLy8vLzhISUF0ckloVktEUWNnQUFSQUlBQWdDaUFCRUNvTElBRU5Ca0YvSVE1QkFTRUdJQVVvQWt3c0FBRVFSU0VCSUFVb0Frd2hDQUpBSUFGRkRRQWdDQzBBQWtFa1J3MEFJQWdzQUFGQk1Hc2hEa0VCSVJKQkF5RUdDeUFGSUFZZ0NHb2lBVFlDVEVFQUlRd0NRQ0FCTEFBQUloRkJJR3NpQ0VFZlN3UkFJQUVoQmd3QkN5QUJJUVpCQVNBSWRDSUhRWW5SQkhGRkRRQURRQ0FGSUFGQkFXb2lCallDVENBSElBeHlJUXdnQVN3QUFTSVJRU0JySWdoQklFOE5BU0FHSVFGQkFTQUlkQ0lIUVluUkJIRU5BQXNMQWtBZ0VVRXFSZ1JBSUFVQ2Z3SkFJQVlzQUFFUVJVVU5BQ0FGS0FKTUlnRXRBQUpCSkVjTkFDQUJMQUFCUVFKMElBUnFRY0FCYTBFS05nSUFJQUVzQUFGQkEzUWdBMnBCZ0FOcktBSUFJUTFCQVNFU0lBRkJBMm9NQVFzZ0VnMEdRUUFoRWtFQUlRMGdBQVJBSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUVvQWdBaERRc2dCU2dDVEVFQmFnc2lBVFlDVENBTlFRQk9EUUZCQUNBTmF5RU5JQXhCZ01BQWNpRU1EQUVMSUFWQnpBQnFFTnNDSWcxQkFFZ05DQ0FGS0FKTUlRRUxRUUFoQmtGL0lRY0NmMEVBSUFFdEFBQkJMa2NOQUJvZ0FTMEFBVUVxUmdSQUlBVUNmd0pBSUFFc0FBSVFSVVVOQUNBRktBSk1JZ0V0QUFOQkpFY05BQ0FCTEFBQ1FRSjBJQVJxUWNBQmEwRUtOZ0lBSUFFc0FBSkJBM1FnQTJwQmdBTnJLQUlBSVFjZ0FVRUVhZ3dCQ3lBU0RRWWdBQVIvSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUVvQWdBRlFRQUxJUWNnQlNnQ1RFRUNhZ3NpQVRZQ1RDQUhRWDl6UVI5MkRBRUxJQVVnQVVFQmFqWUNUQ0FGUWN3QWFoRGJBaUVISUFVb0Frd2hBVUVCQ3lFVEEwQWdCaUVQUVJ3aENTQUJMQUFBUWNFQWEwRTVTdzBKSUFVZ0FVRUJhaUlSTmdKTUlBRXNBQUFoQmlBUklRRWdCaUFQUVRwc2FrR1BMbW90QUFBaUJrRUJhMEVJU1EwQUN3SkFBa0FnQmtFYlJ3UkFJQVpGRFFzZ0RrRUFUZ1JBSUFRZ0RrRUNkR29nQmpZQ0FDQUZJQU1nRGtFRGRHb3BBd0EzQTBBTUFnc2dBRVVOQ0NBRlFVQnJJQVlnQWhEWkFpQUZLQUpNSVJFTUFnc2dEa0VBVGcwS0MwRUFJUUVnQUVVTkJ3c2dERUgvLzN0eElnZ2dEQ0FNUVlEQUFIRWJJUVpCQUNFTVFlOGFJUTRnRUNFSkFrQUNRQUpBQW44Q1FBSkFBa0FDUUFKL0FrQUNRQUpBQWtBQ1FBSkFBa0FnRVVFQmF5d0FBQ0lCUVY5eElBRWdBVUVQY1VFRFJoc2dBU0FQR3lJQlFkZ0FhdzRoQkJRVUZCUVVGQlFVRGhRUEJnNE9EaFFHRkJRVUZBSUZBeFFVQ1JRQkZCUUVBQXNDUUNBQlFjRUFhdzRIRGhRTEZBNE9EZ0FMSUFGQjB3QkdEUWtNRXdzZ0JTa0RRQ0VXUWU4YURBVUxRUUFoQVFKQUFrQUNRQUpBQWtBQ1FBSkFJQTlCL3dGeERnZ0FBUUlEQkJvRkJob0xJQVVvQWtBZ0N6WUNBQXdaQ3lBRktBSkFJQXMyQWdBTUdBc2dCU2dDUUNBTHJEY0RBQXdYQ3lBRktBSkFJQXM3QVFBTUZnc2dCU2dDUUNBTE9nQUFEQlVMSUFVb0FrQWdDellDQUF3VUN5QUZLQUpBSUF1c053TUFEQk1MSUFkQkNDQUhRUWhMR3lFSElBWkJDSEloQmtINEFDRUJDeUFRSVFnZ0FVRWdjU0VQSUFVcEEwQWlGbEJGQkVBRFFDQUlRUUZySWdnZ0ZxZEJEM0ZCb0RKcUxRQUFJQTl5T2dBQUlCWkNEMVloQ2lBV1FnU0lJUllnQ2cwQUN3c2dDQ0VLSUFaQkNIRkZJQVVwQTBCUWNnMERJQUZCQkhaQjd4cHFJUTVCQWlFTURBTUxJQkFoQVNBRktRTkFJaFpRUlFSQUEwQWdBVUVCYXlJQklCYW5RUWR4UVRCeU9nQUFJQlpDQjFZaENDQVdRZ09JSVJZZ0NBMEFDd3NnQVNFS0lBWkJDSEZGRFFJZ0J5QVFJQXBySWdGQkFXb2dBU0FIU0JzaEJ3d0NDeUFGS1FOQUloWkNBRk1FUUNBRlFnQWdGbjBpRmpjRFFFRUJJUXhCN3hvTUFRc2dCa0dBRUhFRVFFRUJJUXhCOEJvTUFRdEI4UnBCN3hvZ0JrRUJjU0lNR3dzaERpQVdJQkFRandFaENnc2dFMEVBSUFkQkFFZ2JEUTRnQmtILy8zdHhJQVlnRXhzaEJpQUZLUU5BSWhaQ0FGSWdCM0pGQkVBZ0VDRUtRUUFoQnd3TUN5QUhJQlpRSUJBZ0NtdHFJZ0VnQVNBSFNCc2hCd3dMQ3lBRktBSkFJZ0ZCZ0I4Z0FSc2lDaUlKUVFCQi8vLy8vd2NnQnlBSFFRQklHeUlHRU53QklnRWdDV3NnQmlBQkd5SUJJQXBxSVFrZ0IwRUFUZ1JBSUFnaEJpQUJJUWNNQ3dzZ0NDRUdJQUVoQnlBSkxRQUFEUTBNQ2dzZ0J3UkFJQVVvQWtBTUFndEJBQ0VCSUFCQklDQU5RUUFnQmhBdURBSUxJQVZCQURZQ0RDQUZJQVVwQTBBK0FnZ2dCU0FGUVFocUlnRTJBa0JCZnlFSElBRUxJUWxCQUNFQkFrQURRQ0FKS0FJQUlnaEZEUUVnQlVFRWFpQUlFTjRDSWdwQkFFZ2lDQ0FLSUFjZ0FXdExja1VFUUNBSlFRUnFJUWtnQnlBQklBcHFJZ0ZMRFFFTUFnc0xJQWdORFF0QlBTRUpJQUZCQUVnTkN5QUFRU0FnRFNBQklBWVFMaUFCUlFSQVFRQWhBUXdCQzBFQUlRY2dCU2dDUUNFSkEwQWdDU2dDQUNJSVJRMEJJQVZCQkdvZ0NCRGVBaUlJSUFkcUlnY2dBVXNOQVNBQUlBVkJCR29nQ0JBcUlBbEJCR29oQ1NBQklBZExEUUFMQ3lBQVFTQWdEU0FCSUFaQmdNQUFjeEF1SUEwZ0FTQUJJQTFJR3lFQkRBZ0xJQk5CQUNBSFFRQklHdzBJUVQwaENTQUFJQVVyQTBBZ0RTQUhJQVlnQVVFeUVSMEFJZ0ZCQUU0TkJ3d0pDeUFGSUFVcEEwQThBRGRCQVNFSElCUWhDaUFJSVFZTUJBc2dCU0FCUVFGcUlnWTJBa3dnQVMwQUFTRUpJQVloQVF3QUN3QUxJQUFOQnlBU1JRMENRUUVoQVFOQUlBUWdBVUVDZEdvb0FnQWlBQVJBSUFNZ0FVRURkR29nQUNBQ0VOa0NRUUVoQ3lBQlFRRnFJZ0ZCQ2tjTkFRd0pDd3RCQVNFTElBRkJDazhOQndOQUlBUWdBVUVDZEdvb0FnQU5BU0FCUVFGcUlnRkJDa2NOQUFzTUJ3dEJIQ0VKREFRTElBa2dDbXNpRHlBSElBY2dEMGdiSWdoQi8vLy8vd2NnREd0S0RRSkJQU0VKSUFnZ0RHb2lCeUFOSUFjZ0RVb2JJZ0VnRlVvTkF5QUFRU0FnQVNBSElBWVFMaUFBSUE0Z0RCQXFJQUJCTUNBQklBY2dCa0dBZ0FSekVDNGdBRUV3SUFnZ0QwRUFFQzRnQUNBS0lBOFFLaUFBUVNBZ0FTQUhJQVpCZ01BQWN4QXVEQUVMQzBFQUlRc01Bd3RCUFNFSkMwSFVnUUVnQ1RZQ0FBdEJmeUVMQ3lBRlFkQUFhaVFBSUFzTGZ3SUJmd0YrSUFDOUlnTkNOSWluUWY4UGNTSUNRZjhQUndSOElBSkZCRUFnQVNBQVJBQUFBQUFBQUFBQVlRUi9RUUFGSUFCRUFBQUFBQUFBOEVPaUlBRVEzUUloQUNBQktBSUFRVUJxQ3pZQ0FDQUFEd3NnQVNBQ1FmNEhhellDQUNBRFF2Ly8vLy8vLy8rSGdIK0RRb0NBZ0lDQWdJRHdQNFMvQlNBQUN3c1NBQ0FBUlFSQVFRQVBDeUFBSUFFUTJnRUxKUUFnQUVFQVJ5QUFRY2d0UjNFZ0FFSGdMVWR4SUFCQmdJY0JSM0VnQUVHWWh3RkhjUXZvQWdFRGZ3SkFJQUV0QUFBTkFFR0tIaERiQVNJQkJFQWdBUzBBQUEwQkN5QUFRUXhzUVlBdWFoRGJBU0lCQkVBZ0FTMEFBQTBCQzBHUkhoRGJBU0lCQkVBZ0FTMEFBQTBCQzBHbkhpRUJDd0pBQTBBZ0FTQUNhaTBBQUNJRVJTQUVRUzlHY2tVRVFFRVhJUVFnQWtFQmFpSUNRUmRIRFFFTUFnc0xJQUloQkF0QnB4NGhBd0pBQWtBQ1FBSkFBa0FnQVMwQUFDSUNRUzVHRFFBZ0FTQUVhaTBBQUEwQUlBRWhBeUFDUWNNQVJ3MEJDeUFETFFBQlJRMEJDeUFEUWFjZUVMWUJSUTBBSUFOQjhSMFF0Z0VOQVFzZ0FFVUVRRUdrTFNFQ0lBTXRBQUZCTGtZTkFndEJBQThMUVFBaEFVSDhoZ0VvQWdBaUFnUkFBMEFnQXlBQ1FRaHFFTFlCUlEwQ0lBSW9BaUFpQWcwQUN3dEJKQkFaSWdJRVFDQUNRYVF0S1FJQU53SUFJQUpCQ0dvaUFTQURJQVFRUWhvZ0FTQUVha0VBT2dBQUlBSkIvSVlCS0FJQU5nSWdRZnlHQVNBQ05nSUFJQUloQVFzZ0FVR2tMU0FBSUFGeUd5RUNDeUFDQ3k4QUlBRVE3QUlpQVNBQVFmOEJjU0lBY1VFQmRDQUFJQUZ6YWlJQVFSVnlRUUYwSUFCQkZYTnJRUmgwUVJoMUM0MGVBZzkvQlg0akFFR1FBV3NpQkNRQUlBUkJBRUdRQVJCR0lnTkJmellDVENBRElBQTJBaXdnQTBFeE5nSWdJQU1nQURZQ1ZDQUJJUVFnQWlFT0l3QkJzQUpySWdZa0FDQURLQUpNR2dKQUFrQUNRQUpBSUFNb0FnUU5BQ0FERU9rQkdpQURLQUlFRFFBTUFRc2dCQzBBQUNJQVJRMENBa0FEUUFKQUFrQWdBRUgvQVhFUWNBUkFBMEFnQkNJQVFRRnFJUVFnQUMwQUFSQndEUUFMSUFOQ0FCQlRBMEFDZnlBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFERUJJTEVIQU5BQXNnQXlnQ0JDRUVJQU1wQTNCQ0FGa0VRQ0FESUFSQkFXc2lCRFlDQkFzZ0JDQURLQUlzYTZ3Z0F5a0RlQ0FVZkh3aEZBd0JDd0ovQWtBQ1FDQUVMUUFBUVNWR0JFQWdCQzBBQVNJQVFTcEdEUUVnQUVFbFJ3MENDeUFEUWdBUVV3SkFJQVF0QUFCQkpVWUVRQU5BQW44Z0F5Z0NCQ0lBSUFNb0FtaEhCRUFnQXlBQVFRRnFOZ0lFSUFBdEFBQU1BUXNnQXhBU0N5SUFFSEFOQUFzZ0JFRUJhaUVFREFFTElBTW9BZ1FpQUNBREtBSm9Sd1JBSUFNZ0FFRUJhallDQkNBQUxRQUFJUUFNQVFzZ0F4QVNJUUFMSUFRdEFBQWdBRWNFUUNBREtRTndRZ0JaQkVBZ0F5QURLQUlFUVFGck5nSUVDeUFBUVFCT0RRcEJBQ0VNSUExRkRRZ01DZ3NnQXlnQ0JDQURLQUlzYTZ3Z0F5a0RlQ0FVZkh3aEZDQUVJUUFNQXd0QkFDRUNJQVJCQW1vTUFRc0NRQ0FBRUVWRkRRQWdCQzBBQWtFa1J3MEFJQVF0QUFGQk1Hc2hBQ01BUVJCcklnRWdEallDRENBQklBNGdBRUVDZEVFRWEwRUFJQUJCQVVzYmFpSUFRUVJxTmdJSUlBQW9BZ0FoQWlBRVFRTnFEQUVMSUE0b0FnQWhBaUFPUVFScUlRNGdCRUVCYWdzaEFFRUFJUXhCQUNFRUlBQXRBQUFRUlFSQUEwQWdBQzBBQUNBRVFRcHNha0V3YXlFRUlBQXRBQUVoQVNBQVFRRnFJUUFnQVJCRkRRQUxDeUFBTFFBQUlnVkI3UUJIQkg4Z0FBVkJBQ0VKSUFKQkFFY2hEQ0FBTFFBQklRVkJBQ0VLSUFCQkFXb0xJZ0ZCQVdvaEFFRURJUWNDUUFKQUFrQUNRQUpBQWtBZ0JVSEJBR3NPT2dRSkJBa0VCQVFKQ1FrSkF3a0pDUWtKQ1FRSkNRa0pCQWtKQkFrSkNRa0pCQWtFQkFRRUJBQUVCUWtCQ1FRRUJBa0pCQUlFQ1FrRUNRSUpDeUFCUVFKcUlBQWdBUzBBQVVIb0FFWWlBUnNoQUVGK1FYOGdBUnNoQnd3RUN5QUJRUUpxSUFBZ0FTMEFBVUhzQUVZaUFSc2hBRUVEUVFFZ0FSc2hCd3dEQzBFQklRY01BZ3RCQWlFSERBRUxRUUFoQnlBQklRQUxRUUVnQnlBQUxRQUFJZ0ZCTDNGQkEwWWlCUnNoRHdKQUlBRkJJSElnQVNBRkd5SUxRZHNBUmcwQUFrQWdDMEh1QUVjRVFDQUxRZU1BUncwQklBUkJBU0FFUVFGS0d5RUVEQUlMSUFJZ0R5QVVFT01DREFJTElBTkNBQkJUQTBBQ2Z5QURLQUlFSWdFZ0F5Z0NhRWNFUUNBRElBRkJBV28yQWdRZ0FTMEFBQXdCQ3lBREVCSUxFSEFOQUFzZ0F5Z0NCQ0VCSUFNcEEzQkNBRmtFUUNBRElBRkJBV3NpQVRZQ0JBc2dBU0FES0FJc2E2d2dBeWtEZUNBVWZId2hGQXNnQXlBRXJDSVNFRk1DUUNBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FNQVFzZ0F4QVNRUUJJRFFRTElBTXBBM0JDQUZrRVFDQURJQU1vQWdSQkFXczJBZ1FMUVJBaEFRSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBTFFkZ0FhdzRoQmdzTEFnc0xDd3NMQVFzQ0JBRUJBUXNGQ3dzTEN3c0RCZ3NMQWdzRUN3c0dBQXNnQzBIQkFHc2lBVUVHUzBFQklBRjBRZkVBY1VWeURRb0xJQVpCQ0dvZ0F5QVBRUUFRNWdJZ0F5a0RlRUlBSUFNb0FnUWdBeWdDTEd1c2ZWRU5EeUFDUlEwSklBWXBBeEFoRWlBR0tRTUlJUk1nRHc0REJRWUhDUXNnQzBIdkFYRkI0d0JHQkVBZ0JrRWdha0YvUVlFQ0VFWWFJQVpCQURvQUlDQUxRZk1BUncwSUlBWkJBRG9BUVNBR1FRQTZBQzRnQmtFQU5nRXFEQWdMSUFaQklHb2dBQzBBQVNJQlFkNEFSaUlGUVlFQ0VFWWFJQVpCQURvQUlDQUFRUUpxSUFCQkFXb2dCUnNoQ0FKL0FrQUNRQ0FBUVFKQkFTQUZHMm90QUFBaUFFRXRSd1JBSUFCQjNRQkdEUUVnQVVIZUFFY2hCeUFJREFNTElBWWdBVUhlQUVjaUJ6b0FUZ3dCQ3lBR0lBRkIzZ0JISWdjNkFINExJQWhCQVdvTElRQURRQUpBSUFBdEFBQWlBVUV0UndSQUlBRkZEUThnQVVIZEFFY05BUXdLQzBFdElRRWdBQzBBQVNJRlJTQUZRZDBBUm5JTkFDQUFRUUZxSVFnQ1FDQUZJQUJCQVdzdEFBQWlBRTBFUUNBRklRRU1BUXNEUUNBQVFRRnFJZ0FnQmtFZ2Ftb2dCem9BQUNBQUlBZ3RBQUFpQVVrTkFBc0xJQWdoQUFzZ0FTQUdhaUFIT2dBaElBQkJBV29oQUF3QUN3QUxRUWdoQVF3Q0MwRUtJUUVNQVF0QkFDRUJDMElBSVJKQkFDRUZRUUFoQ0VFQUlRY2pBRUVRYXlJUUpBQUNRQ0FCUVFGSElBRkJKRTF4UlFSQVFkU0JBVUVjTmdJQURBRUxBMEFDZnlBREtBSUVJZ1FnQXlnQ2FFY0VRQ0FESUFSQkFXbzJBZ1FnQkMwQUFBd0JDeUFERUJJTElnUVFjQTBBQ3dKQUFrQWdCRUVyYXc0REFBRUFBUXRCZjBFQUlBUkJMVVliSVFjZ0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQWhCQXdCQ3lBREVCSWhCQXNDUUFKQUFrQUNRQ0FCUVc5eElBUkJNRWR5UlFSQUFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDeUlFUVY5eFFkZ0FSZ1JBUVJBaEFRSi9JQU1vQWdRaUJDQURLQUpvUndSQUlBTWdCRUVCYWpZQ0JDQUVMUUFBREFFTElBTVFFZ3NpQkVHeEtXb3RBQUJCRUVrTkF5QURLUU53UWdCWkJFQWdBeUFES0FJRVFRRnJOZ0lFQ3lBRFFnQVFVd3dHQ3lBQkRRRkJDQ0VCREFJTElBRkJDaUFCR3lJQklBUkJzU2xxTFFBQVN3MEFJQU1wQTNCQ0FGa0VRQ0FESUFNb0FnUkJBV3MyQWdRTElBTkNBQkJUUWRTQkFVRWNOZ0lBREFRTElBRkJDa2NOQUNBRVFUQnJJZ1ZCQ1UwRVFFRUFJUUVEUUNBQlFRcHNJQVZxSWdGQm1iUG16QUZKQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0N5SUVRVEJySWdWQkNVMXhEUUFMSUFHdElSSUxBa0FnQlVFSlN3MEFJQkpDQ240aEV5QUZyU0VWQTBBQ2Z5QURLQUlFSWdFZ0F5Z0NhRWNFUUNBRElBRkJBV28yQWdRZ0FTMEFBQXdCQ3lBREVCSUxJZ1JCTUdzaUJVRUpTeUFUSUJWOEloSkNtclBtekptejVzd1pXbklOQVNBU1FncCtJaE1nQmEwaUZVSi9oVmdOQUF0QkNpRUJEQUlMUVFvaEFTQUZRUWxORFFFTUFnc2dBU0FCUVFGcmNRUkFJQVJCc1NscUxRQUFJZ2dnQVVrRVFBTkFJQUVnQld3Z0NHb2lCVUhINC9FNFNRSi9JQU1vQWdRaUJDQURLQUpvUndSQUlBTWdCRUVCYWpZQ0JDQUVMUUFBREFFTElBTVFFZ3NpQkVHeEtXb3RBQUFpQ0NBQlNYRU5BQXNnQmEwaEVnc2dBU0FJVFEwQklBR3RJUk1EUUNBU0lCTitJaFVnQ0sxQy93R0RJaFpDZjRWV0RRSWdGU0FXZkNFU0lBRUNmeUFES0FJRUlnUWdBeWdDYUVjRVFDQURJQVJCQVdvMkFnUWdCQzBBQUF3QkN5QURFQklMSWdSQnNTbHFMUUFBSWdoTkRRSWdFQ0FUUWdBZ0VrSUFFQ3NnRUNrRENGQU5BQXNNQVFzZ0FVRVhiRUVGZGtFSGNVR3hLMm9zQUFBaEVTQUVRYkVwYWkwQUFDSUZJQUZKQkVBRFFDQUlJQkYwSUFWeUlnaEJnSUNBd0FCSkFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDeUlFUWJFcGFpMEFBQ0lGSUFGSmNRMEFDeUFJclNFU0N5QUJJQVZORFFCQ2Z5QVJyU0lUaUNJVklCSlVEUUFEUUNBRnJVTC9BWU1nRWlBVGhvUWhFaUFCQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0N5SUVRYkVwYWkwQUFDSUZUUTBCSUJJZ0ZWZ05BQXNMSUFFZ0JFR3hLV290QUFCTkRRQURRQ0FCQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0MwR3hLV290QUFCTERRQUxRZFNCQVVIRUFEWUNBRUVBSVFkQ2Z5RVNDeUFES1FOd1FnQlpCRUFnQXlBREtBSUVRUUZyTmdJRUMwRUFJQkpDZjFFZ0IwRUJjaHNFUUVIVWdRRkJ4QUEyQWdCQ2ZpRVNEQUVMSUJJZ0I2d2lFNFVnRTMwaEVnc2dFRUVRYWlRQUlBTXBBM2hDQUNBREtBSUVJQU1vQWl4cnJIMVJEUW9nQWtVZ0MwSHdBRWR5UlFSQUlBSWdFajRDQUF3RkN5QUNJQThnRWhEakFnd0VDeUFDSUJNZ0VoRGtBamdDQUF3REN5QUNJQk1nRWhEZEFUa0RBQXdDQ3lBQ0lCTTNBd0FnQWlBU053TUlEQUVMSUFSQkFXcEJIeUFMUWVNQVJpSUZHeUVIQWtBQ1FDQVBRUUZISWdoRkJFQWdBaUVCSUF3RVFDQUhRUUowRUJraUFVVU5CZ3NnQmtJQU53T29Ba0VBSVFRRFFDQUJJUW9EUUFKL0lBTW9BZ1FpQVNBREtBSm9Sd1JBSUFNZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFNUUVnc2lBU0FHYWkwQUlVVU5BeUFHSUFFNkFCc2dCa0VjYWlBR1FSdHFRUUVnQmtHb0Ftb1F0d0VpQVVGK1JnMEFRUUFoQ1NBQlFYOUdEUWtnQ2dSQUlBb2dCRUVDZEdvZ0JpZ0NIRFlDQUNBRVFRRnFJUVFMSUF3Z0JDQUhSbkZGRFFBTElBb2dCMEVCZEVFQmNpSUhRUUowRUo0QklnRU5BQXNNQndzZ0RBUkFRUUFoQkNBSEVCa2lBVVVOQlFOQUlBRWhDUU5BQW44Z0F5Z0NCQ0lCSUFNb0FtaEhCRUFnQXlBQlFRRnFOZ0lFSUFFdEFBQU1BUXNnQXhBU0N5SUJJQVpxTFFBaFJRUkFRUUFoQ2d3RkN5QUVJQWxxSUFFNkFBQWdCRUVCYWlJRUlBZEhEUUFMUVFBaENpQUpJQWRCQVhSQkFYSWlCeENlQVNJQkRRQUxEQWNMUVFBaEJDQUNCRUFEUUFKL0lBTW9BZ1FpQVNBREtBSm9Sd1JBSUFNZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFNUUVnc2lBU0FHYWkwQUlRUkFJQUlnQkdvZ0FUb0FBQ0FFUVFGcUlRUU1BUVZCQUNFS0lBSWhDUXdFQ3dBTEFBc0RRQUovSUFNb0FnUWlBU0FES0FKb1J3UkFJQU1nQVVFQmFqWUNCQ0FCTFFBQURBRUxJQU1RRWdzZ0Jtb3RBQ0VOQUF0QkFDRUpRUUFoQ2d3QkMwRUFJUWtnQmtHb0Ftb0VmeUFHS0FLb0FnVkJBQXNOQlFzZ0F5Z0NCQ0VCSUFNcEEzQkNBRmtFUUNBRElBRkJBV3NpQVRZQ0JBc2dBeWtEZUNBQklBTW9BaXhyckh3aUUxQWdDMEhqQUVZZ0VpQVRVbkZ5RFFZQ1FDQU1SUTBBSUFoRkJFQWdBaUFLTmdJQURBRUxJQUlnQ1RZQ0FBc2dCUTBBSUFvRVFDQUtJQVJCQW5ScVFRQTJBZ0FMSUFsRkJFQkJBQ0VKREFFTElBUWdDV3BCQURvQUFBc2dBeWdDQkNBREtBSXNhNndnQXlrRGVDQVVmSHdoRkNBTklBSkJBRWRxSVEwTElBQkJBV29oQkNBQUxRQUJJZ0FOQVF3RkN3dEJBQ0VKUVFBaENnc2dEUTBCQzBGL0lRMExJQXhGRFFBZ0NSQVFJQW9RRUFzZ0JrR3dBbW9rQUNBTklRQWdBMEdRQVdva0FDQUFDME1BQWtBZ0FFVU5BQUpBQWtBQ1FBSkFJQUZCQW1vT0JnQUJBZ0lFQXdRTElBQWdBandBQUE4TElBQWdBajBCQUE4TElBQWdBajRDQUE4TElBQWdBamNEQUFzTHRBTUNBMzhCZmlNQVFTQnJJZ01rQUFKQUlBRkMvLy8vLy8vLy8vLy9BSU1pQlVLQWdJQ0FnSURBd0Q5OUlBVkNnSUNBZ0lDQXdML0FBSDFVQkVBZ0FVSVppS2NoQkNBQVVDQUJRdi8vL3crRElnVkNnSUNBQ0ZRZ0JVS0FnSUFJVVJ0RkJFQWdCRUdCZ0lDQUJHb2hBZ3dDQ3lBRVFZQ0FnSUFFYWlFQ0lBQWdCVUtBZ0lBSWhZUkNBRklOQVNBQ0lBUkJBWEZxSVFJTUFRc2dBRkFnQlVLQWdJQ0FnSURBLy84QVZDQUZRb0NBZ0lDQWdNRC8vd0JSRzBVRVFDQUJRaG1JcDBILy8vOEJjVUdBZ0lEK0IzSWhBZ3dCQzBHQWdJRDhCeUVDSUFWQy8vLy8vLy8vdjcvQUFGWU5BRUVBSVFJZ0JVSXdpS2NpQkVHUi9nQkpEUUFnQTBFUWFpQUFJQUZDLy8vLy8vLy9QNE5DZ0lDQWdJQ0F3QUNFSWdVZ0JFR0IvZ0JyRUM4Z0F5QUFJQVZCZ2Y4QUlBUnJFSHdnQXlrRENDSUFRaG1JcHlFQ0lBTXBBd0FnQXlrREVDQURLUU1ZaEVJQVVxMkVJZ1ZRSUFCQy8vLy9ENE1pQUVLQWdJQUlWQ0FBUW9DQWdBaFJHMFVFUUNBQ1FRRnFJUUlNQVFzZ0JTQUFRb0NBZ0FpRmhFSUFVZzBBSUFKQkFYRWdBbW9oQWdzZ0EwRWdhaVFBSUFJZ0FVSWdpS2RCZ0lDQWdIaHhjcjRMZ1FRQ0EzOEJmZ0pBQWtBQ1FBSi9JQUFvQWdRaUFpQUFLQUpvUndSQUlBQWdBa0VCYWpZQ0JDQUNMUUFBREFFTElBQVFFZ3NpQTBFcmF3NERBUUFCQUFzZ0EwRXdheUVCREFFTElBTkJMVVloQkFKQUlBRkZBbjhnQUNnQ0JDSUNJQUFvQW1oSEJFQWdBQ0FDUVFGcU5nSUVJQUl0QUFBTUFRc2dBQkFTQ3lJQ1FUQnJJZ0ZCQ2tseURRQWdBQ2tEY0VJQVV3MEFJQUFnQUNnQ0JFRUJhellDQkFzZ0FpRURDd0pBSUFGQkNra0VRRUVBSVFJRFFDQURJQUpCQ214cUlRRUNmeUFBS0FJRUlnSWdBQ2dDYUVjRVFDQUFJQUpCQVdvMkFnUWdBaTBBQUF3QkN5QUFFQklMSVFNZ0FVRXdheUVDSUFKQnpKbXo1Z0JJSUFOQk1Hc2lBVUVKVFhFTkFBc2dBcXdoQlFKQUlBRkJDazhOQUFOQUlBT3RJQVZDQ241OFFqQjlJUVVDZnlBQUtBSUVJZ0VnQUNnQ2FFY0VRQ0FBSUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFBRUJJTElnTkJNR3NpQVVFSlN3MEJJQVZDcm8rRjE4ZkM2Nk1CVXcwQUN3c2dBVUVLU1FSQUEwQUNmeUFBS0FJRUlnRWdBQ2dDYUVjRVFDQUFJQUZCQVdvMkFnUWdBUzBBQUF3QkN5QUFFQklMUVRCclFRcEpEUUFMQ3lBQUtRTndRZ0JaQkVBZ0FDQUFLQUlFUVFGck5nSUVDMElBSUFWOUlBVWdCQnNoQlF3QkMwS0FnSUNBZ0lDQWdJQi9JUVVnQUNrRGNFSUFVdzBBSUFBZ0FDZ0NCRUVCYXpZQ0JFS0FnSUNBZ0lDQWdJQi9Ed3NnQlF1Z01nTVFmd2QrQVh3akFFRXdheUlNSkFBQ1FDQUNRUUpOQkVBZ0FrRUNkQ0lDUVp3cGFpZ0NBQ0VQSUFKQmtDbHFLQUlBSVE0RFFBSi9JQUVvQWdRaUFpQUJLQUpvUndSQUlBRWdBa0VCYWpZQ0JDQUNMUUFBREFFTElBRVFFZ3NpQWhCd0RRQUxRUUVoQmdKQUFrQWdBa0VyYXc0REFBRUFBUXRCZjBFQklBSkJMVVliSVFZZ0FTZ0NCQ0lDSUFFb0FtaEhCRUFnQVNBQ1FRRnFOZ0lFSUFJdEFBQWhBZ3dCQ3lBQkVCSWhBZ3NDUUFKQUEwQWdCVUdLR21vc0FBQWdBa0VnY2tZRVFBSkFJQVZCQmtzTkFDQUJLQUlFSWdJZ0FTZ0NhRWNFUUNBQklBSkJBV28yQWdRZ0FpMEFBQ0VDREFFTElBRVFFaUVDQ3lBRlFRRnFJZ1ZCQ0VjTkFRd0NDd3NnQlVFRFJ3UkFJQVZCQ0VZTkFTQURSU0FGUVFSSmNnMENJQVZCQ0VZTkFRc2dBU2tEY0NJVVFnQlpCRUFnQVNBQktBSUVRUUZyTmdJRUN5QURSU0FGUVFSSmNnMEFJQlJDQUZNaEFnTkFJQUpGQkVBZ0FTQUJLQUlFUVFGck5nSUVDeUFGUVFGcklnVkJBMHNOQUFzTFFnQWhGQ01BUVJCcklnSWtBQUorSUFheVF3QUFnSCtVdkNJRFFmLy8vLzhIY1NJQlFZQ0FnQVJyUWYvLy8vY0hUUVJBSUFHdFFobUdRb0NBZ0lDQWdJREFQM3dNQVFzZ0E2MUNHWVpDZ0lDQWdJQ0F3UC8vQUlRZ0FVR0FnSUQ4QjA4TkFCcENBQ0FCUlEwQUdpQUNJQUd0UWdBZ0FXY2lBVUhSQUdvUUx5QUNLUU1BSVJRZ0Fpa0RDRUtBZ0lDQWdJREFBSVZCaWY4QUlBRnJyVUl3aG9RTElSVWdEQ0FVTndNQUlBd2dGU0FEUVlDQWdJQjRjYTFDSUlhRU53TUlJQUpCRUdva0FDQU1LUU1JSVJRZ0RDa0RBQ0VWREFJTEFrQUNRQUpBSUFVTkFFRUFJUVVEUUNBRlFjY2NhaXdBQUNBQ1FTQnlSdzBCQWtBZ0JVRUJTdzBBSUFFb0FnUWlBaUFCS0FKb1J3UkFJQUVnQWtFQmFqWUNCQ0FDTFFBQUlRSU1BUXNnQVJBU0lRSUxJQVZCQVdvaUJVRURSdzBBQ3d3QkN3SkFBa0FnQlE0RUFBRUJBZ0VMQWtBZ0FrRXdSdzBBQW44Z0FTZ0NCQ0lGSUFFb0FtaEhCRUFnQVNBRlFRRnFOZ0lFSUFVdEFBQU1BUXNnQVJBU0MwRmZjVUhZQUVZRVFDTUFRYkFEYXlJQ0pBQUNmeUFCS0FJRUlnVWdBU2dDYUVjRVFDQUJJQVZCQVdvMkFnUWdCUzBBQUF3QkN5QUJFQklMSVFVQ1FBSi9BMEFnQlVFd1J3UkFBa0FnQlVFdVJ3MEVJQUVvQWdRaUJTQUJLQUpvUmcwQUlBRWdCVUVCYWpZQ0JDQUZMUUFBREFNTEJTQUJLQUlFSWdVZ0FTZ0NhRWNFZjBFQklRb2dBU0FGUVFGcU5nSUVJQVV0QUFBRlFRRWhDaUFCRUJJTElRVU1BUXNMSUFFUUVnc2hCVUVCSVFRZ0JVRXdSdzBBQTBBZ0YwSUJmU0VYQW44Z0FTZ0NCQ0lGSUFFb0FtaEhCRUFnQVNBRlFRRnFOZ0lFSUFVdEFBQU1BUXNnQVJBU0N5SUZRVEJHRFFBTFFRRWhDZ3RDZ0lDQWdJQ0F3UDgvSVJVQ1FBTkFBa0FnQlVFZ2NpRUxBa0FDUUNBRlFUQnJJZ2hCQ2trTkFDQUZRUzVISUF0QjRRQnJRUVpQY1EwRUlBVkJMa2NOQUNBRURRSkJBU0VFSUJRaEZ3d0JDeUFMUWRjQWF5QUlJQVZCT1VvYklRVUNRQ0FVUWdkWEJFQWdCU0FKUVFSMGFpRUpEQUVMSUJSQ0hGY0VRQ0FDUVRCcUlBVVFRU0FDUVNCcUlCa2dGVUlBUW9DQWdJQ0FnTUQ5UHhBWUlBSkJFR29nQWlrRElDSVpJQUlwQXlnaUZTQUNLUU13SUFJcEF6Z1FHQ0FDSUJZZ0dDQUNLUU1RSUFJcEF4Z1FQQ0FDS1FNSUlSZ2dBaWtEQUNFV0RBRUxJQVZGSUFkeURRQWdBa0hRQUdvZ0dTQVZRZ0JDZ0lDQWdJQ0FnUDgvRUJnZ0FrRkFheUFXSUJnZ0Fpa0RVQ0FDS1FOWUVEd2dBaWtEU0NFWVFRRWhCeUFDS1FOQUlSWUxJQlJDQVh3aEZFRUJJUW9MSUFFb0FnUWlCU0FCS0FKb1J3Ui9JQUVnQlVFQmFqWUNCQ0FGTFFBQUJTQUJFQklMSVFVTUFRc0xRUzRoQlFzQ2ZpQUtSUVJBQWtBQ1FDQUJLUU53UWdCWkJFQWdBU0FCS0FJRUlnVkJBV3MyQWdRZ0EwVU5BU0FCSUFWQkFtczJBZ1FnQkVVTkFpQUJJQVZCQTJzMkFnUU1BZ3NnQXcwQkN5QUJRZ0FRVXdzZ0FrSGdBR29nQnJkRUFBQUFBQUFBQUFDaUVGMGdBaWtEWUNFV0lBSXBBMmdNQVFzZ0ZFSUhWd1JBSUJRaEZRTkFJQWxCQkhRaENTQVZRZ0Y4SWhWQ0NGSU5BQXNMQWtBQ1FBSkFJQVZCWDNGQjBBQkdCRUFnQVNBREVPVUNJaFZDZ0lDQWdJQ0FnSUNBZjFJTkF5QURCRUFnQVNrRGNFSUFXUTBDREFNTFFnQWhGaUFCUWdBUVUwSUFEQVFMUWdBaEZTQUJLUU53UWdCVERRSUxJQUVnQVNnQ0JFRUJhellDQkF0Q0FDRVZDeUFKUlFSQUlBSkI4QUJxSUFhM1JBQUFBQUFBQUFBQW9oQmRJQUlwQTNBaEZpQUNLUU40REFFTElCY2dGQ0FFRzBJQ2hpQVZmRUlnZlNJVVFRQWdEMnV0VlFSQVFkU0JBVUhFQURZQ0FDQUNRYUFCYWlBR0VFRWdBa0dRQVdvZ0Fpa0RvQUVnQWlrRHFBRkNmMEwvLy8vLy8vKy8vLzhBRUJnZ0FrR0FBV29nQWlrRGtBRWdBaWtEbUFGQ2YwTC8vLy8vLy8rLy8vOEFFQmdnQWlrRGdBRWhGaUFDS1FPSUFRd0JDeUFQUWVJQmE2d2dGRmNFUUNBSlFRQk9CRUFEUUNBQ1FhQURhaUFXSUJoQ0FFS0FnSUNBZ0lEQS83OS9FRHdnRmlBWVFvQ0FnSUNBZ0lEL1B4RGdBU0VCSUFKQmtBTnFJQllnR0NBV0lBSXBBNkFESUFGQkFFZ2lBeHNnR0NBQ0tRT29BeUFER3hBOElCUkNBWDBoRkNBQ0tRT1lBeUVZSUFJcEE1QURJUllnQ1VFQmRDQUJRUUJPY2lJSlFRQk9EUUFMQ3dKK0lCUWdENng5UWlCOEloV25JZ0ZCQUNBQlFRQktHeUFPSUJVZ0RxMVRHeUlCUWZFQVRnUkFJQUpCZ0FOcUlBWVFRU0FDS1FPSUF5RVhJQUlwQTRBRElSbENBQXdCQ3lBQ1FlQUNha0dRQVNBQmF4RGZBUkJkSUFKQjBBSnFJQVlRUVNBQ1FmQUNhaUFDS1FQZ0FpQUNLUVBvQWlBQ0tRUFFBaUlaSUFJcEE5Z0NJaGNRNndJZ0Fpa0QrQUloR2lBQ0tRUHdBZ3NoRlNBQ1FjQUNhaUFKSUFsQkFYRkZJQllnR0VJQVFnQVFlMEVBUnlBQlFTQkljWEVpQVdvUWtBRWdBa0d3QW1vZ0dTQVhJQUlwQThBQ0lBSXBBOGdDRUJnZ0FrR1FBbW9nQWlrRHNBSWdBaWtEdUFJZ0ZTQWFFRHdnQWtHZ0FtcENBQ0FXSUFFYlFnQWdHQ0FCR3lBWklCY1FHQ0FDUVlBQ2FpQUNLUU9nQWlBQ0tRT29BaUFDS1FPUUFpQUNLUU9ZQWhBOElBSkI4QUZxSUFJcEE0QUNJQUlwQTRnQ0lCVWdHaERlQVNBQ0tRUHdBU0lWSUFJcEEvZ0JJaGRDQUVJQUVIdEZCRUJCMUlFQlFjUUFOZ0lBQ3lBQ1FlQUJhaUFWSUJjZ0ZLY1E2Z0lnQWlrRDRBRWhGaUFDS1FQb0FRd0JDMEhVZ1FGQnhBQTJBZ0FnQWtIUUFXb2dCaEJCSUFKQndBRnFJQUlwQTlBQklBSXBBOWdCUWdCQ2dJQ0FnSUNBd0FBUUdDQUNRYkFCYWlBQ0tRUEFBU0FDS1FQSUFVSUFRb0NBZ0lDQWdNQUFFQmdnQWlrRHNBRWhGaUFDS1FPNEFRc2hGQ0FNSUJZM0F4QWdEQ0FVTndNWUlBSkJzQU5xSkFBZ0RDa0RHQ0VVSUF3cEF4QWhGUXdHQ3lBQktRTndRZ0JURFFBZ0FTQUJLQUlFUVFGck5nSUVDeUFCSVFVZ0JpRUpJQU1oQ2tFQUlRWkJBQ0VESXdCQmtNWUFheUlFSkFCQkFDQU9JQTlxSWhKcklSTUNRQUovQTBBZ0FrRXdSd1JBQWtBZ0FrRXVSdzBFSUFVb0FnUWlBU0FGS0FKb1JnMEFJQVVnQVVFQmFqWUNCQ0FCTFFBQURBTUxCU0FGS0FJRUlnRWdCU2dDYUVjRWYwRUJJUVlnQlNBQlFRRnFOZ0lFSUFFdEFBQUZRUUVoQmlBRkVCSUxJUUlNQVFzTElBVVFFZ3NoQWtFQklRY2dBa0V3UncwQUEwQWdGRUlCZlNFVUFuOGdCU2dDQkNJQklBVW9BbWhIQkVBZ0JTQUJRUUZxTmdJRUlBRXRBQUFNQVFzZ0JSQVNDeUlDUVRCR0RRQUxRUUVoQmdzZ0JFRUFOZ0tRQmdKK0FrQUNRQUpBQWtBQ1FDQUNRUzVHSWdGRklBSkJNR3NpQ0VFSlMzRkZCRUFEUUFKQUlBRkJBWEVFUUNBSFJRUkFJQlVoRkVFQklRY01BZ3NnQmtVaEFRd0VDeUFWUWdGOElSVWdBMEg4RDB3RVFDQU5JQlduSUFKQk1FWWJJUTBnQkVHUUJtb2dBMEVDZEdvaUFTQUxCSDhnQWlBQktBSUFRUXBzYWtFd2F3VWdDQXMyQWdCQkFTRUdRUUFnQzBFQmFpSUJJQUZCQ1VZaUFSc2hDeUFCSUFOcUlRTU1BUXNnQWtFd1JnMEFJQVFnQkNnQ2dFWkJBWEkyQW9CR1FkeVBBU0VOQ3dKL0lBVW9BZ1FpQVNBRktBSm9Sd1JBSUFVZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFVUUVnc2lBa0V1UmlJQklBSkJNR3NpQ0VFS1NYSU5BQXNMSUJRZ0ZTQUhHeUVVSUFaRklBSkJYM0ZCeFFCSGNrVUVRQUpBSUFVZ0NoRGxBaUlXUW9DQWdJQ0FnSUNBZ0g5U0RRQWdDa1VOQlVJQUlSWWdCU2tEY0VJQVV3MEFJQVVnQlNnQ0JFRUJhellDQkFzZ0JrVU5BeUFVSUJaOElSUU1CUXNnQmtVaEFTQUNRUUJJRFFFTElBVXBBM0JDQUZNTkFDQUZJQVVvQWdSQkFXczJBZ1FMSUFGRkRRSUxRZFNCQVVFY05nSUFDMElBSVJVZ0JVSUFFRk5DQUF3QkN5QUVLQUtRQmlJQlJRUkFJQVFnQ2JkRUFBQUFBQUFBQUFDaUVGMGdCQ2tEQUNFVklBUXBBd2dNQVFzZ0ZDQVZVaUFWUWdsVmNpQU9RUjVNUVFBZ0FTQU9kaHR5UlFSQUlBUkJNR29nQ1JCQklBUkJJR29nQVJDUUFTQUVRUkJxSUFRcEF6QWdCQ2tET0NBRUtRTWdJQVFwQXlnUUdDQUVLUU1RSVJVZ0JDa0RHQXdCQ3lBUFFYNXRyU0FVVXdSQVFkU0JBVUhFQURZQ0FDQUVRZUFBYWlBSkVFRWdCRUhRQUdvZ0JDa0RZQ0FFS1FOb1FuOUMvLy8vLy8vL3YvLy9BQkFZSUFSQlFHc2dCQ2tEVUNBRUtRTllRbjlDLy8vLy8vLy92Ly8vQUJBWUlBUXBBMEFoRlNBRUtRTklEQUVMSUE5QjRnRnJyQ0FVVlFSQVFkU0JBVUhFQURZQ0FDQUVRWkFCYWlBSkVFRWdCRUdBQVdvZ0JDa0RrQUVnQkNrRG1BRkNBRUtBZ0lDQWdJREFBQkFZSUFSQjhBQnFJQVFwQTRBQklBUXBBNGdCUWdCQ2dJQ0FnSUNBd0FBUUdDQUVLUU53SVJVZ0JDa0RlQXdCQ3lBTEJFQWdDMEVJVEFSQUlBUkJrQVpxSUFOQkFuUnFJZ0VvQWdBaEJRTkFJQVZCQ213aEJTQUxRUUZxSWd0QkNVY05BQXNnQVNBRk5nSUFDeUFEUVFGcUlRTUxBa0FnRFNBVXB5SUhTaUFOUVFsT2NpQUhRUkZLY2cwQUlBZEJDVVlFUUNBRVFjQUJhaUFKRUVFZ0JFR3dBV29nQkNnQ2tBWVFrQUVnQkVHZ0FXb2dCQ2tEd0FFZ0JDa0R5QUVnQkNrRHNBRWdCQ2tEdUFFUUdDQUVLUU9nQVNFVklBUXBBNmdCREFJTElBZEJDRXdFUUNBRVFaQUNhaUFKRUVFZ0JFR0FBbW9nQkNnQ2tBWVFrQUVnQkVId0FXb2dCQ2tEa0FJZ0JDa0RtQUlnQkNrRGdBSWdCQ2tEaUFJUUdDQUVRZUFCYWtFQUlBZHJRUUowUVpBcGFpZ0NBQkJCSUFSQjBBRnFJQVFwQS9BQklBUXBBL2dCSUFRcEErQUJJQVFwQStnQkVPa0NJQVFwQTlBQklSVWdCQ2tEMkFFTUFnc2dEaUFIUVgxc2FrRWJhaUlCUVI1TVFRQWdCQ2dDa0FZaUFpQUJkaHNOQUNBRVFlQUNhaUFKRUVFZ0JFSFFBbW9nQWhDUUFTQUVRY0FDYWlBRUtRUGdBaUFFS1FQb0FpQUVLUVBRQWlBRUtRUFlBaEFZSUFSQnNBSnFJQWRCQW5SQnlDaHFLQUlBRUVFZ0JFR2dBbW9nQkNrRHdBSWdCQ2tEeUFJZ0JDa0RzQUlnQkNrRHVBSVFHQ0FFS1FPZ0FpRVZJQVFwQTZnQ0RBRUxBMEFnQkVHUUJtb2dBeUlDUVFGcklnTkJBblJxS0FJQVJRMEFDMEVBSVFzQ1FDQUhRUWx2SWdGRkJFQkJBQ0VCREFFTElBRWdBVUVKYWlBSFFRQk9HeUVEQWtBZ0FrVUVRRUVBSVFGQkFDRUNEQUVMUVlDVTY5d0RRUUFnQTJ0QkFuUkJrQ2xxS0FJQUlnWnRJUXBCQUNFSVFRQWhCVUVBSVFFRFFDQUVRWkFHYWlBRlFRSjBhaUlOSUFnZ0RTZ0NBQ0lOSUFadUloQnFJZ2cyQWdBZ0FVRUJha0gvRDNFZ0FTQUlSU0FCSUFWR2NTSUlHeUVCSUFkQkNXc2dCeUFJR3lFSElBb2dEU0FHSUJCc2Eyd2hDQ0FGUVFGcUlnVWdBa2NOQUFzZ0NFVU5BQ0FFUVpBR2FpQUNRUUowYWlBSU5nSUFJQUpCQVdvaEFnc2dCeUFEYTBFSmFpRUhDd05BQWtBZ0IwRWtUZ1JBSUFkQkpFY05BU0FFUVpBR2FpQUJRUUowYWlnQ0FFSFI2ZmtFVHcwQkN5QUNRZjhQYWlFR1FRQWhDQU5BSUFpdElBUkJrQVpxSUFaQi93OXhJZ05CQW5ScUlnWTFBZ0JDSFlaOEloUkNnWlRyM0FOVUJIOUJBQVVnRkNBVVFvQ1U2OXdEZ0NJVlFvQ1U2OXdEZm4waEZDQVZwd3NoQ0NBR0lCU25JZ1kyQWdBZ0FpQUNJQUlnQXlBR0d5QUJJQU5HR3lBRElBSkJBV3RCL3c5eFJ4c2hBaUFEUVFGcklRWWdBU0FEUncwQUN5QUxRUjFySVFzZ0NFVU5BU0FDSUFGQkFXdEIvdzl4SWdGR0JFQWdCRUdRQm1vaUF5QUNRZjRQYWtIL0QzRkJBblJxSWdZZ0JpZ0NBQ0FDUVFGclFmOFBjU0lDUVFKMElBTnFLQUlBY2pZQ0FBc2dCMEVKYWlFSElBUkJrQVpxSUFGQkFuUnFJQWcyQWdBTUFRc0xBa0FEUUNBQ1FRRnFRZjhQY1NFRElBUkJrQVpxSUFKQkFXdEIvdzl4UVFKMGFpRUlBMEFnQVNFR1FRQWhCUUpBQWtBRFFBSkFJQVVnQm1wQi93OXhJZ0VnQWtZTkFDQUVRWkFHYWlBQlFRSjBhaWdDQUNJQklBVkJBblJCNENocUtBSUFJZ3BKRFFBZ0FTQUtTdzBDSUFWQkFXb2lCVUVFUncwQkN3c2dCMEVrUncwQVFnQWhGRUVBSVFWQ0FDRVZBMEFnQWlBRklBWnFRZjhQY1NJQlJnUkFJQUpCQVdwQi93OXhJZ0pCQW5RZ0JHcEJBRFlDakFZTElBUkJnQVpxSUJRZ0ZVSUFRb0NBZ0lEbG1yZU93QUFRR0NBRVFmQUZhaUFFUVpBR2FpQUJRUUowYWlnQ0FCQ1FBU0FFUWVBRmFpQUVLUU9BQmlBRUtRT0lCaUFFS1FQd0JTQUVLUVA0QlJBOElBUXBBK2dGSVJVZ0JDa0Q0QVVoRkNBRlFRRnFJZ1ZCQkVjTkFBc2dCRUhRQldvZ0NSQkJJQVJCd0FWcUlCUWdGU0FFS1FQUUJTQUVLUVBZQlJBWUlBUXBBOGdGSVJWQ0FDRVVJQVFwQThBRklSWWdDMEh4QUdvaUJ5QVBheUlEUVFBZ0EwRUFTaHNnRGlBRElBNUlJZ1ViSWdGQjhBQk1EUUVNQkF0QkNVRUJJQWRCTFVvYklnb2dDMm9oQ3lBR0lBSWlBVVlOQVVHQWxPdmNBeUFLZGlFTlFYOGdDblJCZjNNaEVFRUFJUVVnQmlFQkEwQWdCRUdRQm1vZ0JrRUNkR29pRVNBRklCRW9BZ0FpRVNBS2Rtb2lCVFlDQUNBQlFRRnFRZjhQY1NBQklBVkZJQUVnQmtaeElnVWJJUUVnQjBFSmF5QUhJQVViSVFjZ0VDQVJjU0FOYkNFRklBWkJBV3BCL3c5eElnWWdBa2NOQUFzZ0JVVU5BU0FCSUFOSEJFQWdCRUdRQm1vZ0FrRUNkR29nQlRZQ0FDQURJUUlNQXdzZ0NDQUlLQUlBUVFGeU5nSUFJQU1oQVF3QkN3c0xJQVJCa0FWcVFlRUJJQUZyRU44QkVGMGdCRUd3QldvZ0JDa0RrQVVnQkNrRG1BVWdGaUFWRU9zQ0lBUXBBN2dGSVJrZ0JDa0RzQVVoR0NBRVFZQUZha0h4QUNBQmF4RGZBUkJkSUFSQm9BVnFJQllnRlNBRUtRT0FCU0FFS1FPSUJSRG5BaUFFUWZBRWFpQVdJQlVnQkNrRG9BVWlGQ0FFS1FPb0JTSVhFTjRCSUFSQjRBUnFJQmdnR1NBRUtRUHdCQ0FFS1FQNEJCQThJQVFwQStnRUlSVWdCQ2tENEFRaEZnc0NRQ0FHUVFScVFmOFBjU0lLSUFKR0RRQUNRQ0FFUVpBR2FpQUtRUUowYWlnQ0FDSUtRZi9KdGU0QlRRUkFJQXBGSUFaQkJXcEIvdzl4SUFKR2NRMEJJQVJCOEFOcUlBbTNSQUFBQUFBQUFOQS9vaEJkSUFSQjRBTnFJQlFnRnlBRUtRUHdBeUFFS1FQNEF4QThJQVFwQStnRElSY2dCQ2tENEFNaEZBd0JDeUFLUVlES3RlNEJSd1JBSUFSQjBBUnFJQW0zUkFBQUFBQUFBT2cvb2hCZElBUkJ3QVJxSUJRZ0Z5QUVLUVBRQkNBRUtRUFlCQkE4SUFRcEE4Z0VJUmNnQkNrRHdBUWhGQXdCQ3lBSnR5RWJJQUlnQmtFRmFrSC9EM0ZHQkVBZ0JFR1FCR29nRzBRQUFBQUFBQURnUDZJUVhTQUVRWUFFYWlBVUlCY2dCQ2tEa0FRZ0JDa0RtQVFRUENBRUtRT0lCQ0VYSUFRcEE0QUVJUlFNQVFzZ0JFR3dCR29nRzBRQUFBQUFBQURvUDZJUVhTQUVRYUFFYWlBVUlCY2dCQ2tEc0FRZ0JDa0R1QVFRUENBRUtRT29CQ0VYSUFRcEE2QUVJUlFMSUFGQjd3QktEUUFnQkVIUUEyb2dGQ0FYUWdCQ2dJQ0FnSUNBd1A4L0VPY0NJQVFwQTlBRElBUXBBOWdEUWdCQ0FCQjdEUUFnQkVIQUEyb2dGQ0FYUWdCQ2dJQ0FnSUNBd1A4L0VEd2dCQ2tEeUFNaEZ5QUVLUVBBQXlFVUN5QUVRYkFEYWlBV0lCVWdGQ0FYRUR3Z0JFR2dBMm9nQkNrRHNBTWdCQ2tEdUFNZ0dDQVpFTjRCSUFRcEE2Z0RJUlVnQkNrRG9BTWhGZ0pBUVg0Z0Vtc2dCMEgvLy8vL0IzRk9EUUFnQkNBVlF2Ly8vLy8vLy8vLy93Q0ROd09ZQXlBRUlCWTNBNUFESUFSQmdBTnFJQllnRlVJQVFvQ0FnSUNBZ0lEL1B4QVlJQVFwQTVBREloZ2dCQ2tEbUFNaUdVS0FnSUNBZ0lDQXVNQUFFT0FCSVFJZ0ZTQUVLUU9JQXlBQ1FRQklJZ1liSVJVZ0ZpQUVLUU9BQXlBR0d5RVdJQk1nQ3lBQ1FRQk9haUlMUWU0QWFrNEVRQ0FGSUFVZ0FTQURSM0VnR0NBWlFvQ0FnSUNBZ0lDNHdBQVE0QUZCQUVnYlFRRkhEUUVnRkNBWFFnQkNBQkI3UlEwQkMwSFVnUUZCeEFBMkFnQUxJQVJCOEFKcUlCWWdGU0FMRU9vQ0lBUXBBL0FDSVJVZ0JDa0QrQUlMSVJRZ0RDQVZOd01nSUF3Z0ZEY0RLQ0FFUVpER0FHb2tBQ0FNS1FNb0lSUWdEQ2tESUNFVkRBUUxJQUVwQTNCQ0FGa0VRQ0FCSUFFb0FnUkJBV3MyQWdRTERBRUxBa0FDZnlBQktBSUVJZ0lnQVNnQ2FFY0VRQ0FCSUFKQkFXbzJBZ1FnQWkwQUFBd0JDeUFCRUJJTFFTaEdCRUJCQVNFRkRBRUxRb0NBZ0lDQWdPRC8vd0FoRkNBQktRTndRZ0JURFFNZ0FTQUJLQUlFUVFGck5nSUVEQU1MQTBBQ2Z5QUJLQUlFSWdJZ0FTZ0NhRWNFUUNBQklBSkJBV28yQWdRZ0FpMEFBQXdCQ3lBQkVCSUxJZ0pCTUd0QkNra2dBa0hCQUd0QkdrbHlJQUpCM3dCR2NrVWdBa0hoQUd0QkdrOXhSUVJBSUFWQkFXb2hCUXdCQ3d0Q2dJQ0FnSUNBNFAvL0FDRVVJQUpCS1VZTkFpQUJLUU53SWhkQ0FGa0VRQ0FCSUFFb0FnUkJBV3MyQWdRTEFrQWdBd1JBSUFVTkFRd0VDd3dCQ3dOQUlBVkJBV3NoQlNBWFFnQlpCRUFnQVNBQktBSUVRUUZyTmdJRUN5QUZEUUFMREFJTFFkU0JBVUVjTmdJQUlBRkNBQkJUQzBJQUlSUUxJQUFnRlRjREFDQUFJQlEzQXdnZ0RFRXdhaVFBQzhvR0FnUi9BMzRqQUVHQUFXc2lCU1FBQWtBQ1FBSkFJQU1nQkVJQVFnQVFlMFVOQUFKL0lBUkMvLy8vLy8vL1A0TWhDUUovSUFSQ01JaW5RZi8vQVhFaUJrSC8vd0ZIQkVCQkJDQUdEUUVhUVFKQkF5QURJQW1FVUJzTUFnc2dBeUFKaEZBTEMwVU5BQ0FDUWpDSXB5SUlRZi8vQVhFaUJrSC8vd0ZIRFFFTElBVkJFR29nQVNBQ0lBTWdCQkFZSUFVZ0JTa0RFQ0lCSUFVcEF4Z2lBaUFCSUFJUTZRSWdCU2tEQ0NFQ0lBVXBBd0FoQkF3QkN5QUJJQUpDLy8vLy8vLy9QNE1nQnExQ01JYUVJZ29nQXlBRVF2Ly8vLy8vL3orRElBUkNNSWluUWYvL0FYRWlCNjFDTUlhRUlna1FlMEVBVEFSQUlBRWdDaUFESUFrUWV3UkFJQUVoQkF3Q0N5QUZRZkFBYWlBQklBSkNBRUlBRUJnZ0JTa0RlQ0VDSUFVcEEzQWhCQXdCQ3lBR0JINGdBUVVnQlVIZ0FHb2dBU0FLUWdCQ2dJQ0FnSUNBd0x2QUFCQVlJQVVwQTJnaUNrSXdpS2RCK0FCcklRWWdCU2tEWUFzaEJDQUhSUVJBSUFWQjBBQnFJQU1nQ1VJQVFvQ0FnSUNBZ01DN3dBQVFHQ0FGS1FOWUlnbENNSWluUWZnQWF5RUhJQVVwQTFBaEF3c2dDVUwvLy8vLy8vOC9nMEtBZ0lDQWdJREFBSVFoQ1NBS1F2Ly8vLy8vL3orRFFvQ0FnSUNBZ01BQWhDRUtJQVlnQjBvRVFBTkFBbjRnQ2lBSmZTQURJQVJXclgwaUMwSUFXUVJBSUFzZ0JDQURmU0lFaEZBRVFDQUZRU0JxSUFFZ0FrSUFRZ0FRR0NBRktRTW9JUUlnQlNrRElDRUVEQVVMSUF0Q0FZWWdCRUkvaUlRTUFRc2dDa0lCaGlBRVFqK0loQXNoQ2lBRVFnR0dJUVFnQmtFQmF5SUdJQWRLRFFBTElBY2hCZ3NDUUNBS0lBbDlJQU1nQkZhdGZTSUpRZ0JUQkVBZ0NpRUpEQUVMSUFrZ0JDQURmU0lFaEVJQVVnMEFJQVZCTUdvZ0FTQUNRZ0JDQUJBWUlBVXBBemdoQWlBRktRTXdJUVFNQVFzZ0NVTC8vLy8vLy84L1dBUkFBMEFnQkVJL2lDRUJJQVpCQVdzaEJpQUVRZ0dHSVFRZ0FTQUpRZ0dHaENJSlFvQ0FnSUNBZ01BQVZBMEFDd3NnQ0VHQWdBSnhJUWNnQmtFQVRBUkFJQVZCUUdzZ0JDQUpRdi8vLy8vLy96K0RJQVpCK0FCcUlBZHlyVUl3aG9SQ0FFS0FnSUNBZ0lEQXd6OFFHQ0FGS1FOSUlRSWdCU2tEUUNFRURBRUxJQWxDLy8vLy8vLy9QNE1nQmlBSGNxMUNNSWFFSVFJTElBQWdCRGNEQUNBQUlBSTNBd2dnQlVHQUFXb2tBQXN5QUNBQVFmOEJjU0lBSUFFUTdBSWlBVUYvYzNGQkFYUWdBQ0FCYzJzaUFFRnFjVUVCZENBQVFSVnphMEVZZEVFWWRRdXFEd0lGZnc1K0l3QkIwQUpySWdVa0FDQUVRdi8vLy8vLy96K0RJUXNnQWtMLy8vLy8vLzgvZ3lFS0lBSWdCSVZDZ0lDQWdJQ0FnSUNBZjRNaERTQUVRakNJcDBILy93RnhJUWdDUUFKQUlBSkNNSWluUWYvL0FYRWlDVUVCYTBIOS93Rk5CRUFnQ0VFQmEwSCsvd0ZKRFFFTElBRlFJQUpDLy8vLy8vLy8vLy8vQUlNaURFS0FnSUNBZ0lEQS8vOEFWQ0FNUW9DQWdJQ0FnTUQvL3dCUkcwVUVRQ0FDUW9DQWdJQ0FnQ0NFSVEwTUFnc2dBMUFnQkVMLy8vLy8vLy8vLy84QWd5SUNRb0NBZ0lDQWdNRC8vd0JVSUFKQ2dJQ0FnSUNBd1AvL0FGRWJSUVJBSUFSQ2dJQ0FnSUNBSUlRaERTQURJUUVNQWdzZ0FTQU1Rb0NBZ0lDQWdNRC8vd0NGaEZBRVFDQURJQUpDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFRZ0FoQVVLQWdJQ0FnSURnLy84QUlRME1Bd3NnRFVLQWdJQ0FnSURBLy84QWhDRU5RZ0FoQVF3Q0N5QURJQUpDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFRZ0FoQVF3Q0N5QUJJQXlFVUFSQVFvQ0FnSUNBZ09ELy93QWdEU0FDSUFPRVVCc2hEVUlBSVFFTUFnc2dBaUFEaEZBRVFDQU5Rb0NBZ0lDQWdNRC8vd0NFSVExQ0FDRUJEQUlMSUF4Qy8vLy8vLy8vUDFnRVFDQUZRY0FDYWlBQklBb2dBU0FLSUFwUUlnWWJlU0FHUVFaMHJYeW5JZ1pCRDJzUUwwRVFJQVpySVFZZ0JTa0R5QUloQ2lBRktRUEFBaUVCQ3lBQ1F2Ly8vLy8vL3o5V0RRQWdCVUd3QW1vZ0F5QUxJQU1nQ3lBTFVDSUhHM2tnQjBFR2RLMThweUlIUVE5ckVDOGdCaUFIYWtFUWF5RUdJQVVwQTdnQ0lRc2dCU2tEc0FJaEF3c2dCVUdnQW1vZ0MwS0FnSUNBZ0lEQUFJUWlFa0lQaGlBRFFqR0loQ0lDUWdCQ2dJQ0FnTERtdklMMUFDQUNmU0lFUWdBUUt5QUZRWkFDYWtJQUlBVXBBNmdDZlVJQUlBUkNBQkFySUFWQmdBSnFJQVVwQTVnQ1FnR0dJQVVwQTVBQ1FqK0loQ0lFUWdBZ0FrSUFFQ3NnQlVId0FXb2dCRUlBUWdBZ0JTa0RpQUo5UWdBUUt5QUZRZUFCYWlBRktRUDRBVUlCaGlBRktRUHdBVUkvaUlRaUJFSUFJQUpDQUJBcklBVkIwQUZxSUFSQ0FFSUFJQVVwQStnQmZVSUFFQ3NnQlVIQUFXb2dCU2tEMkFGQ0FZWWdCU2tEMEFGQ1A0aUVJZ1JDQUNBQ1FnQVFLeUFGUWJBQmFpQUVRZ0JDQUNBRktRUElBWDFDQUJBcklBVkJvQUZxSUFKQ0FDQUZLUU80QVVJQmhpQUZLUU93QVVJL2lJUkNBWDBpQWtJQUVDc2dCVUdRQVdvZ0EwSVBoa0lBSUFKQ0FCQXJJQVZCOEFCcUlBSkNBRUlBSUFVcEE2Z0JJQVVwQTZBQklnd2dCU2tEbUFGOElnUWdERlN0ZkNBRVFnRldyWHg5UWdBUUt5QUZRWUFCYWtJQklBUjlRZ0FnQWtJQUVDc2dCaUFKSUFocmFpRUdBbjhnQlNrRGNDSVRRZ0dHSWc0Z0JTa0RpQUVpRDBJQmhpQUZLUU9BQVVJL2lJUjhJaEJDNSt3QWZTSVVRaUNJSWdJZ0NrS0FnSUNBZ0lEQUFJUWlGVUlmaUVMLy8vLy9ENE1pQkg0aUVTQUJRZ0dHSWd4Q0lJZ2lDeUFRSUJSV3JTQU9JQkJXclNBRktRTjRRZ0dHSUJOQ1A0aUVJQTlDUDRoOGZIeENBWDBpRTBJZ2lDSVFmbndpRGlBUlZLMGdEaUFPSUJOQy8vLy8vdytESWhNZ0FVSS9pQ0lXSUFwQ0FZYUVRdi8vLy84UGd5SUtmbndpRGxhdGZDQUVJQkIrZkNBRUlCTitJaEVnQ2lBUWZud2lEeUFSVksxQ0lJWWdEMElnaUlSOElBNGdEaUFQUWlDR2ZDSU9WcTE4SUE0Z0RpQVVRdi8vLy84UGd5SVVJQXArSWhFZ0FpQUxmbndpRHlBUlZLMGdEeUFQSUJNZ0RFTCsvLy8vRDRNaUVYNThJZzlXclh4OElnNVdyWHdnRGlBRUlCUitJaGNnRUNBUmZud2lCQ0FDSUFwK2ZDSUtJQXNnRTM1OEloQkNJSWdnQ2lBUVZxMGdCQ0FYVkswZ0JDQUtWcTE4ZkVJZ2hvUjhJZ1FnRGxTdGZDQUVJQThnQWlBUmZpSUNJQXNnRkg1OElndENJSWdnQWlBTFZxMUNJSWFFZkNJQ0lBOVVyU0FDSUJCQ0lJWjhJQUpVclh4OElnSWdCRlN0ZkNJRVF2Ly8vLy8vLy84QVdBUkFJQlZDQVlZZ0ZvUWhGU0FGUWRBQWFpQUNJQVFnQXlBU0VDc2dBVUl4aGlBRktRTllmU0FGS1FOUUlnRkNBRkt0ZlNFS1FnQWdBWDBoQ3lBR1FmNy9BR29NQVFzZ0JVSGdBR29nQkVJL2hpQUNRZ0dJaENJQ0lBUkNBWWdpQkNBRElCSVFLeUFCUWpDR0lBVXBBMmg5SUFVcEEyQWlERUlBVXExOUlRcENBQ0FNZlNFTElBRWhEQ0FHUWYvL0FHb0xJZ1pCLy84QlRnUkFJQTFDZ0lDQWdJQ0F3UC8vQUlRaERVSUFJUUVNQVFzQ2ZpQUdRUUJLQkVBZ0NrSUJoaUFMUWorSWhDRUtJQVJDLy8vLy8vLy9QNE1nQnExQ01JYUVJUXdnQzBJQmhnd0JDeUFHUVk5L1RBUkFRZ0FoQVF3Q0N5QUZRVUJySUFJZ0JFRUJJQVpyRUh3Z0JVRXdhaUFNSUJVZ0JrSHdBR29RTHlBRlFTQnFJQU1nRWlBRktRTkFJZ0lnQlNrRFNDSU1FQ3NnQlNrRE9DQUZLUU1vUWdHR0lBVXBBeUFpQVVJL2lJUjlJQVVwQXpBaUJDQUJRZ0dHSWdGVXJYMGhDaUFFSUFGOUN5RUVJQVZCRUdvZ0F5QVNRZ05DQUJBcklBVWdBeUFTUWdWQ0FCQXJJQXdnQWlBQ0lBTWdBa0lCZ3lJQklBUjhJZ05VSUFvZ0FTQURWcTE4SWdFZ0VsWWdBU0FTVVJ1dGZDSUNWcTE4SWdRZ0FpQUNJQVJDZ0lDQWdJQ0F3UC8vQUZRZ0F5QUZLUU1RVmlBQklBVXBBeGdpQkZZZ0FTQUVVUnR4clh3aUFsYXRmQ0lFSUFJZ0JFS0FnSUNBZ0lEQS8vOEFWQ0FESUFVcEF3QldJQUVnQlNrRENDSURWaUFCSUFOUkczR3RmQ0lCSUFKVXJYd2dEWVFoRFFzZ0FDQUJOd01BSUFBZ0RUY0RDQ0FGUWRBQ2FpUUFDNzhDQVFGL0l3QkIwQUJySWdRa0FBSkFJQU5CZ0lBQlRnUkFJQVJCSUdvZ0FTQUNRZ0JDZ0lDQWdJQ0FnUC8vQUJBWUlBUXBBeWdoQWlBRUtRTWdJUUVnQTBILy93RklCRUFnQTBILy93QnJJUU1NQWdzZ0JFRVFhaUFCSUFKQ0FFS0FnSUNBZ0lDQS8vOEFFQmdnQTBIOS93SWdBMEg5L3dKSUcwSCsvd0ZySVFNZ0JDa0RHQ0VDSUFRcEF4QWhBUXdCQ3lBRFFZR0FmMG9OQUNBRVFVQnJJQUVnQWtJQVFvQ0FnSUNBZ0lBNUVCZ2dCQ2tEU0NFQ0lBUXBBMEFoQVNBRFFmU0Fma29FUUNBRFFZMy9BR29oQXd3QkN5QUVRVEJxSUFFZ0FrSUFRb0NBZ0lDQWdJQTVFQmdnQTBIb2dYMGdBMEhvZ1gxS0cwR2EvZ0ZxSVFNZ0JDa0RPQ0VDSUFRcEF6QWhBUXNnQkNBQklBSkNBQ0FEUWYvL0FHcXRRakNHRUJnZ0FDQUVLUU1JTndNSUlBQWdCQ2tEQURjREFDQUVRZEFBYWlRQUN6VUFJQUFnQVRjREFDQUFJQUpDLy8vLy8vLy9QNE1nQkVJd2lLZEJnSUFDY1NBQ1FqQ0lwMEgvL3dGeGNxMUNNSWFFTndNSUM0NEJBUU4vSXdCQkVHc2hBUU5BUWV5Y3I5OERJUUlDUUFOQUlBSkIzYmJodkFaR0RRRWdBa0dXejhLK0JFY0VRQ0FDUWV5Y3I5OERSdzBCSUFFZ0FEWUNEQ0FCSUFNMkFnaEJscy9DdmdSQjNiYmh2QVlnQVNnQ0RCc2hBZ3dCQ3dzZ0FTZ0NDQ0lBUVFGMFFRSnhJQUJCQVhOcUlRTWdBU2dDRENBQktBSU1RUUZyY1NFQURBRUxDeUFCS0FJSUN5d0FJQUFvQWdBYUlBQW9BZ0FnQUJDRkFXb2FJQUFvQWdBZ0FCQ0pBV29hSUFBb0FnQWdBQkNGQVdvYUN3Y0FJQUVnQUdzTENRQWdBQ0FCRU80Q0N5c0JBWDhnQUNnQ0FDSUJCRUFnQVJEN0FrRi9FRjVGQkVBZ0FDZ0NBRVVQQ3lBQVFRQTJBZ0FMUVFFTEt3RUJmeUFBS0FJQUlnRUVRQ0FCRUlBRFFYOFFYa1VFUUNBQUtBSUFSUThMSUFCQkFEWUNBQXRCQVFzTkFFRUFJQUFnQUVGL0VGNGJDNDBCQVFSL0l3QkJFR3NpQlNRQUlBRWdBaER2QWlJRVFXOU5CRUFDUUNBRVFRcE5CRUFnQUNBRUVEb2dBQ0VEREFFTElBQWdCQkNSQVVFQmFpSUdFRjhpQXhCTklBQWdCaEJNSUFBZ0JCQTVDd05BSUFFZ0FrY0VRQ0FESUFFUU5DQURRUUZxSVFNZ0FVRUJhaUVCREFFTEN5QUZRUUE2QUE4Z0F5QUZRUTlxRURRZ0JVRVFhaVFBRHdzUUZ3QUw1UVFCQjM4Z0FDZ0NCQ0FBRUVNb0FnQkhCRUFqQUVFUWF5SUNKQUFnQWlBQU5nSUFJQUlnQUNnQ0JDSUROZ0lFSUFJZ0EwRUJhallDQ0NBQUVFTWdBaWdDQkNBQkVJd0NJQUlnQWlnQ0JFRUJhallDQkNBQ0VJa0NJQUpCRUdva0FBOExJd0JCSUdzaUJ5UUFJQUFRUXlJSUFuOGdCMEVJYWlFQ0FuOGdBQkNKQVVFQmFpRUdJd0JCRUdzaUJTUUFJQVVnQmpZQ0RDTUFRUkJySWdRa0FDQUFFRU1hSUFSQmZ6WUNEQ0FFUWYvLy8vOEhOZ0lJSUFSQkRHb2dCRUVJYWhDaUFTZ0NBQ0VESUFSQkVHb2tBQ0FESUFaUEJFQWdBQkNGQVNJRUlBTkJBWFpKQkVBZ0JTQUVRUUYwTmdJSUlBVkJDR29nQlVFTWFoQjJLQUlBSVFNTElBVkJFR29rQUNBRERBRUxRYWNiRUpZQ0FBc2hCU0FBRUlrQklRWkJBQ0VESXdCQkVHc2lCQ1FBSUFSQkFEWUNEQ0FDUVF4cUlBUkJER29nQ0JDRUFpQUZCRUFnQWlnQ0VCb2dCUkJmSVFNTElBSWdBellDQUNBQ0lBTWdCbW9pQmpZQ0NDQUNJQVkyQWdRZ0FoQ0RBU0FESUFWcU5nSUFJQVJCRUdva0FDQUNLQUlJQ3lBQkVJd0NJQUlnQWlnQ0NFRUJhallDQ0NBQUVPMENJQUFRUXlBQUtBSUFJQUFvQWdRZ0FrRUVhaUlCRUlNQ0lBQWdBUkIxSUFCQkJHb2dBa0VJYWhCMUlBQVFReUFDRUlNQkVIVWdBaUFDS0FJRU5nSUFJQUFRaVFFYUlBQW9BZ0FhSUFBb0FnQWdBQkNGQVdvYUlBQW9BZ0FnQUJDRkFXb2FJQUFvQWdBYUlBSW9BZ1FpQUNBQ0tBSUlSd1JBQTBBZ0FpZ0NFQm9nQWlBQ0tBSUlRUUZyTmdJSUlBSW9BZ2dnQUVjTkFBc0xJQUlvQWdBRVFDQUNLQUlRR2lBQ0tBSUFJUUFnQWhDREFTZ0NBQ0FDS0FJQWF4b2dBQkFRQ3lBSFFTQnFKQUFMRHdBZ0FDQUFLQUlZSUFGcU5nSVlDeGNBSUFBZ0FqWUNIQ0FBSUFFMkFoUWdBQ0FCTmdJWUMxWUJBbjhDUUNBQUtBSUFJZ0pGRFFBQ2Z5QUNLQUlZSWdNZ0FpZ0NIRVlFUUNBQ0lBRWdBaWdDQUNnQ05CRUNBQXdCQ3lBQ0lBTkJCR28yQWhnZ0F5QUJOZ0lBSUFFTFFYOFFYa1VOQUNBQVFRQTJBZ0FMQ3lZQkFYOENRQ0FBS0FJQUlnSkZEUUFnQWlBQkVQNENRWDhRWGtVTkFDQUFRUUEyQWdBTEN3a0FJQUFRNUFFUUVBc3hBUUYvSUFBb0Fnd2lBU0FBS0FJUVJnUkFJQUFnQUNnQ0FDZ0NLQkVBQUE4TElBQWdBVUVFYWpZQ0RDQUJLQUlBQ3ljQkFYOGdBQ2dDRENJQklBQW9BaEJHQkVBZ0FDQUFLQUlBS0FJa0VRQUFEd3NnQVNnQ0FBc1FBQ0FBRVBBQ0lBRVE4QUp6UVFGekM0c0VBUVovSXdCQklHc2lBaVFBSUFKQkFEWUNIQ01BUVNCcklnUWtBQ0FDUVJocUlnWkJBRG9BQUNBQUlBQW9BZ0JCREdzb0FnQnFFTGtCSVFVZ0FDQUFLQUlBUVF4cktBSUFhaUVEQWtBZ0JRUkFJQU1vQWtnRVFDQUFJQUFvQWdCQkRHc29BZ0JxS0FKSUVJWURDd0pBSUFBZ0FDZ0NBRUVNYXlnQ0FHb29BZ1JCZ0NCeFJRMEFJQVJCR0dvaUF5QUFJQUFvQWdCQkRHc29BZ0JxRUE4Z0F4QXlJUWNnQXhBT0lBUkJFR29nQUJEQUFTRURJQVJCQ0dvUWhRTWhCUU5BQWtBZ0F5QUZFREZGRFFBZ0IwR0F3QUFnQXhBZkVFUkZEUUFnQXhBaUdnd0JDd3NnQXlBRkVDWkZEUUFnQUNBQUtBSUFRUXhyS0FJQWFrRUdFSUFCQ3lBR0lBQWdBQ2dDQUVFTWF5Z0NBR29RdVFFNkFBQU1BUXNnQTBFRUVJQUJDeUFFUVNCcUpBQWdCaTBBQUFSQUlBSkJFR29pQkNBQUlBQW9BZ0JCREdzb0FnQnFFQThnQkVISWh3RVFaQ0VESUFKQkNHb2dBQkRBQVNFR0lBSVFoUU1oQlNBRElBWW9BZ0FnQlNnQ0FDQUFJQUFvQWdCQkRHc29BZ0JxSUFKQkhHb2dBa0VVYWlBREtBSUFLQUlRRVFVQUdpQUVFQTRnQVFKL0lBSW9BaFJCZ0lDQWdIaElCRUFnQWlBQ0tBSWNRUVJ5TmdJY1FZQ0FnSUI0REFFTElBSW9BaFJCLy8vLy93ZEtCRUFnQWlBQ0tBSWNRUVJ5TmdJY1FmLy8vLzhIREFFTElBSW9BaFFMTmdJQUlBQWdBQ2dDQUVFTWF5Z0NBR29nQWlnQ0hCQ0FBUXNnQWtFZ2FpUUFDenNCQVg4Z0FDZ0NHQ0lDSUFBb0FoeEdCRUFnQUNBQkVHVWdBQ2dDQUNnQ05CRUNBQThMSUFBZ0FrRUJhallDR0NBQ0lBRTZBQUFnQVJCbEN6TUJBWDhnQUNnQ0RDSUJJQUFvQWhCR0JFQWdBQ0FBS0FJQUtBSW9FUUFBRHdzZ0FDQUJRUUZxTmdJTUlBRXNBQUFRWlFzcEFRRi9JQUFvQWd3aUFTQUFLQUlRUmdSQUlBQWdBQ2dDQUNnQ0pCRUFBQThMSUFFc0FBQVFaUXNRQUNBQUVQRUNJQUVROFFKelFRRnpDNDBCQVFGL0FrQWdBQ2dDQkNJQklBRW9BZ0JCREdzb0FnQnFLQUlZUlEwQUlBQW9BZ1FpQVNBQktBSUFRUXhyS0FJQWFoQzVBVVVOQUNBQUtBSUVJZ0VnQVNnQ0FFRU1heWdDQUdvb0FnUkJnTUFBY1VVTkFDQUFLQUlFSWdFZ0FTZ0NBRUVNYXlnQ0FHb29BaGdRZ3dOQmYwY05BQ0FBS0FJRUlnQWdBQ2dDQUVFTWF5Z0NBR3BCQVJDQUFRc0xEd0FnQUNBQUtBSUFLQUlZRVFBQUMxVUFJQUFnQVRZQ0JDQUFRUUE2QUFBZ0FTQUJLQUlBUVF4cktBSUFhaEM1QVFSQUlBRWdBU2dDQUVFTWF5Z0NBR29vQWtnRVFDQUJJQUVvQWdCQkRHc29BZ0JxS0FKSUVJWURDeUFBUVFFNkFBQUxJQUFMQ3dBZ0FFRUFOZ0lBSUFBTGJnRUNmeU1BUVJCcklnRWtBQ0FBSUFBb0FnQkJER3NvQWdCcUtBSVlCRUFDUUNBQlFRaHFJQUFRaEFNaUFpMEFBRVVOQUNBQUlBQW9BZ0JCREdzb0FnQnFLQUlZRUlNRFFYOUhEUUFnQUNBQUtBSUFRUXhyS0FJQWFrRUJFSUFCQ3lBQ0VJSURDeUFCUVJCcUpBQUxDUUFnQUJEbEFSQVFDd1FBUVg4THhnZ0JCbjhnQUNBQktBQUFJZ05CR0hRZ0EwRUlkRUdBZ1B3SGNYSWdBMEVJZGtHQS9nTnhJQU5CR0haeWNpSUZOZ0lBSUFBZ0FTZ0FCQ0lEUVJoMElBTkJDSFJCZ0lEOEIzRnlJQU5CQ0haQmdQNERjU0FEUVJoMmNuSWlCallDQkNBQUlBRW9BQWdpQTBFWWRDQURRUWgwUVlDQS9BZHhjaUFEUVFoMlFZRCtBM0VnQTBFWWRuSnlJZ2MyQWdnZ0FDQUJLQUFNSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUlFTmdJTUFrQWdBa0dBQVVZRVFFRUFJUU1EUUNBQUlBUkJGblpCL0FkeFFZQUlhaTBBQVNBRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0hSQmdJQ0FlSEVnQlhNZ0JFRUdka0g4QjNGQmdBaHFMUUFDUVJCMGN5QUVRZjhCY1VFQ2RFR0FDR290QUFGQkNIUnpjeUFEUVlBYWFpMEFBRUVZZEhNaUJUWUNFQ0FBSUFVZ0JuTWlCallDRkNBQUlBWWdCM01pQnpZQ0dDQUFJQVFnQjNNaUJEWUNIQ0FBUVJCcUlRQkJDaUVCSUFOQkFXb2lBMEVLUncwQUN3d0JDeUFBSUFFb0FCQWlBMEVZZENBRFFRaDBRWUNBL0FkeGNpQURRUWgyUVlEK0EzRWdBMEVZZG5KeU5nSVFJQUFnQVNnQUZDSURRUmgwSUFOQkNIUkJnSUQ4QjNGeUlBTkJDSFpCZ1A0RGNTQURRUmgyY25JaUF6WUNGQ0FDUWNBQlJnUkFRUUFoQVFOQUlBQWdBMEVXZGtIOEIzRkJnQWhxTFFBQklBTkJEblpCL0FkeFFZQUlhaWdDQUVFSWRFR0FnSUI0Y1NBRmN5QURRUVoyUWZ3SGNVR0FDR290QUFKQkVIUnpJQU5CL3dGeFFRSjBRWUFJYWkwQUFVRUlkSE56SUFGQmdCcHFMUUFBUVJoMGN5SUZOZ0lZSUFBZ0JTQUdjeUlHTmdJY0lBQWdCaUFIY3lJSE5nSWdJQUFnQkNBSGN5SUVOZ0lrSUFGQkIwWUVRRUVNRHdVZ0FDQUFLQUlRSUFSeklnSTJBaWdnQUNBQ0lBTnpJZ00yQWl3Z0FVRUJhaUVCSUFCQkdHb2hBQXdCQ3dBTEFBc2dBQ0FCS0FBWUlnTkJHSFFnQTBFSWRFR0FnUHdIY1hJZ0EwRUlka0dBL2dOeElBTkJHSFp5Y2pZQ0dDQUFJQUVvQUJ3aUFVRVlkQ0FCUVFoMFFZQ0EvQWR4Y2lBQlFRaDJRWUQrQTNFZ0FVRVlkbkp5SWdNMkFoeEJmeUVCSUFKQmdBSkhEUUJCQUNFQ1FRNGhBUU5BSUFBZ0EwRVdka0g4QjNGQmdBaHFMUUFCSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjU0FGY3lBRFFRWjJRZndIY1VHQUNHb3RBQUpCRUhSeklBTkIvd0Z4UVFKMFFZQUlhaTBBQVVFSWRITnpJQUpCZ0JwcUxRQUFRUmgwY3lJRk5nSWdJQUFnQlNBR2N5SUdOZ0lrSUFBZ0JpQUhjeUlITmdJb0lBQWdCQ0FIY3lJRU5nSXNJQUpCQmtZTkFTQUFJQVJCL3dGeFFRSjBRWUFJYWkwQUFTQUFLQUlRSUFSQkZuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjWE1nQkVFT2RrSDhCM0ZCZ0FocUxRQUNRUkIwY3lBRVFRWjJRZndIY1VHQUNHb3RBQUZCQ0hSemN5SUlOZ0l3SUFBZ0NDQUFLQUlVY3lJSU5nSTBJQUFnQUNnQ0dDQUljeUlJTmdJNElBQWdBeUFJY3lJRE5nSThJQUpCQVdvaEFpQUFRU0JxSVFBTUFBc0FDeUFCQ3k0QUlBQWdBQ2dDQUNnQ0pCRUFBRUYvUmdSQVFYOFBDeUFBSUFBb0Fnd2lBRUVCYWpZQ0RDQUFMQUFBRUdVTEJBQkJmd3UvQVFFRWZ5TUFRUkJySWdRa0FBTkFBa0FnQWlBRlRBMEFBa0FnQUNnQ0RDSURJQUFvQWhBaUJra0VRQ0FFUWYvLy8vOEhOZ0lNSUFRZ0JpQURhellDQ0NBRUlBSWdCV3MyQWdRZ0JFRU1haUFFUVFocUlBUkJCR29RdWdFUXVnRWhBeUFCSUFBb0Fnd2dBeWdDQUNJREVGVWdBQ0FBS0FJTUlBTnFOZ0lNREFFTElBQWdBQ2dDQUNnQ0tCRUFBQ0lEUVg5R0RRRWdBU0FERUp3Qk9nQUFRUUVoQXdzZ0FTQURhaUVCSUFNZ0JXb2hCUXdCQ3dzZ0JFRVFhaVFBSUFVTENRQWdBRUovRUxzQkN3a0FJQUJDZnhDN0FRc0VBQ0FBQ3drQUlBQVF2QUVRRUFzSUFDQUFFSDRRRUFzSEFDQUFLQUlNQ3hBQUl3QWdBR3RCY0hFaUFDUUFJQUFMQmdBZ0FDUUFDd1FBSXdBTERBQWdBQkRCQVJvZ0FCQVFDd2tBSUFBUXdRRVFFQXNGQUVIK0d3c2JBQ0FBSUFFb0FnZ2dCUkErQkVBZ0FTQUNJQU1nQkJERUFRc0xPQUFnQUNBQktBSUlJQVVRUGdSQUlBRWdBaUFESUFRUXhBRVBDeUFBS0FJSUlnQWdBU0FDSUFNZ0JDQUZJQUFvQWdBb0FoUVJDUUFMbGdJQkJuOGdBQ0FCS0FJSUlBVVFQZ1JBSUFFZ0FpQURJQVFReEFFUEN5QUJMUUExSVFjZ0FDZ0NEQ0VHSUFGQkFEb0FOU0FCTFFBMElRZ2dBVUVBT2dBMElBQkJFR29pQ1NBQklBSWdBeUFFSUFVUXdnRWdCeUFCTFFBMUlncHlJUWNnQ0NBQkxRQTBJZ3R5SVFnQ1FDQUdRUUpJRFFBZ0NTQUdRUU4wYWlFSklBQkJHR29oQmdOQUlBRXRBRFlOQVFKQUlBc0VRQ0FCS0FJWVFRRkdEUU1nQUMwQUNFRUNjUTBCREFNTElBcEZEUUFnQUMwQUNFRUJjVVVOQWdzZ0FVRUFPd0UwSUFZZ0FTQUNJQU1nQkNBRkVNSUJJQUV0QURVaUNpQUhjaUVISUFFdEFEUWlDeUFJY2lFSUlBWkJDR29pQmlBSlNRMEFDd3NnQVNBSFFmOEJjVUVBUnpvQU5TQUJJQWhCL3dGeFFRQkhPZ0EwQzVJQkFDQUFJQUVvQWdnZ0JCQStCRUFnQVNBQ0lBTVF3d0VQQ3dKQUlBQWdBU2dDQUNBRUVENUZEUUFDUUNBQ0lBRW9BaEJIQkVBZ0FTZ0NGQ0FDUncwQkN5QURRUUZIRFFFZ0FVRUJOZ0lnRHdzZ0FTQUNOZ0lVSUFFZ0F6WUNJQ0FCSUFFb0FpaEJBV28yQWlnQ1FDQUJLQUlrUVFGSERRQWdBU2dDR0VFQ1J3MEFJQUZCQVRvQU5nc2dBVUVFTmdJc0N3dnpBUUFnQUNBQktBSUlJQVFRUGdSQUlBRWdBaUFERU1NQkR3c0NRQ0FBSUFFb0FnQWdCQkErQkVBQ1FDQUNJQUVvQWhCSEJFQWdBU2dDRkNBQ1J3MEJDeUFEUVFGSERRSWdBVUVCTmdJZ0R3c2dBU0FETmdJZ0FrQWdBU2dDTEVFRVJnMEFJQUZCQURzQk5DQUFLQUlJSWdBZ0FTQUNJQUpCQVNBRUlBQW9BZ0FvQWhRUkNRQWdBUzBBTlFSQUlBRkJBellDTENBQkxRQTBSUTBCREFNTElBRkJCRFlDTEFzZ0FTQUNOZ0lVSUFFZ0FTZ0NLRUVCYWpZQ0tDQUJLQUlrUVFGSERRRWdBU2dDR0VFQ1J3MEJJQUZCQVRvQU5nOExJQUFvQWdnaUFDQUJJQUlnQXlBRUlBQW9BZ0FvQWhnUkNnQUxDNTBFQVFOL0lBQWdBU2dDQ0NBRUVENEVRQ0FCSUFJZ0F4RERBUThMQWtBZ0FDQUJLQUlBSUFRUVBnUkFBa0FnQWlBQktBSVFSd1JBSUFFb0FoUWdBa2NOQVFzZ0EwRUJSdzBDSUFGQkFUWUNJQThMSUFFZ0F6WUNJQ0FCS0FJc1FRUkhCRUFnQUVFUWFpSUZJQUFvQWd4QkEzUnFJUWRCQUNFRElBRUNmd0pBQTBBQ1FDQUZJQWRQRFFBZ0FVRUFPd0UwSUFVZ0FTQUNJQUpCQVNBRUVNSUJJQUV0QURZTkFBSkFJQUV0QURWRkRRQWdBUzBBTkFSQVFRRWhBeUFCS0FJWVFRRkdEUVJCQVNFR0lBQXRBQWhCQW5FTkFRd0VDMEVCSVFZZ0FDMEFDRUVCY1VVTkF3c2dCVUVJYWlFRkRBRUxDMEVFSUFaRkRRRWFDMEVEQ3pZQ0xDQURRUUZ4RFFJTElBRWdBallDRkNBQklBRW9BaWhCQVdvMkFpZ2dBU2dDSkVFQlJ3MEJJQUVvQWhoQkFrY05BU0FCUVFFNkFEWVBDeUFBS0FJTUlRVWdBRUVRYWlJR0lBRWdBaUFESUFRUW9BRWdCVUVDU0EwQUlBWWdCVUVEZEdvaEJpQUFRUmhxSVFVQ1FDQUFLQUlJSWdCQkFuRkZCRUFnQVNnQ0pFRUJSdzBCQ3dOQUlBRXRBRFlOQWlBRklBRWdBaUFESUFRUW9BRWdCVUVJYWlJRklBWkpEUUFMREFFTElBQkJBWEZGQkVBRFFDQUJMUUEyRFFJZ0FTZ0NKRUVCUmcwQ0lBVWdBU0FDSUFNZ0JCQ2dBU0FGUVFocUlnVWdCa2tOQUF3Q0N3QUxBMEFnQVMwQU5nMEJJQUVvQWlSQkFVWUVRQ0FCS0FJWVFRRkdEUUlMSUFVZ0FTQUNJQU1nQkJDZ0FTQUZRUWhxSWdVZ0Jra05BQXNMQ3djQUlBQW9BZ1FMYndFQ2Z5QUFJQUVvQWdoQkFCQStCRUFnQVNBQ0lBTVF4Z0VQQ3lBQUtBSU1JUVFnQUVFUWFpSUZJQUVnQWlBREVQQUJBa0FnQkVFQ1NBMEFJQVVnQkVFRGRHb2hCQ0FBUVJocUlRQURRQ0FBSUFFZ0FpQURFUEFCSUFFdEFEWU5BU0FBUVFocUlnQWdCRWtOQUFzTEN6SUFJQUFnQVNnQ0NFRUFFRDRFUUNBQklBSWdBeERHQVE4TElBQW9BZ2dpQUNBQklBSWdBeUFBS0FJQUtBSWNFUWdBQ3hrQUlBQWdBU2dDQ0VFQUVENEVRQ0FCSUFJZ0F4REdBUXNMdWdNQkJYOGpBRUZBYWlJRUpBQUNmMEVCSUFBZ0FVRUFFRDROQUJwQkFDQUJSUTBBR2lNQVFVQnFJZ01rQUNBQktBSUFJZ1ZCQkdzb0FnQWhCaUFGUVFocktBSUFJUWNnQTBFQU5nSVVJQU5CclAwQU5nSVFJQU1nQVRZQ0RDQURRZHo5QURZQ0NFRUFJUVVnQTBFWWFrRUFRU2NRUmhvZ0FTQUhhaUVCQWtBZ0JrSGMvUUJCQUJBK0JFQWdBMEVCTmdJNElBWWdBMEVJYWlBQklBRkJBVUVBSUFZb0FnQW9BaFFSQ1FBZ0FVRUFJQU1vQWlCQkFVWWJJUVVNQVFzZ0JpQURRUWhxSUFGQkFVRUFJQVlvQWdBb0FoZ1JDZ0FDUUFKQUlBTW9BaXdPQWdBQkFnc2dBeWdDSEVFQUlBTW9BaWhCQVVZYlFRQWdBeWdDSkVFQlJodEJBQ0FES0FJd1FRRkdHeUVGREFFTElBTW9BaUJCQVVjRVFDQURLQUl3RFFFZ0F5Z0NKRUVCUncwQklBTW9BaWhCQVVjTkFRc2dBeWdDR0NFRkN5QURRVUJySkFCQkFDQUZJZ0ZGRFFBYUlBUkJDR29pQTBFRWNrRUFRVFFRUmhvZ0JFRUJOZ0k0SUFSQmZ6WUNGQ0FFSUFBMkFoQWdCQ0FCTmdJSUlBRWdBeUFDS0FJQVFRRWdBU2dDQUNnQ0hCRUlBQ0FFS0FJZ0lnQkJBVVlFUUNBQ0lBUW9BaGcyQWdBTElBQkJBVVlMSVFBZ0JFRkFheVFBSUFBTEJRQVFGd0FMQXdBQUN3a0FRZHlLQVJBS0dnc3ZBQUpBUWVpS0FTMEFBRUVCY1EwQVFlaUtBUkFrUlEwQVFkeUtBVUhnMVFBUWhBRkI2SW9CRUNNTFFkeUtBUXNKQUVITWlnRVFDaG9MTGdBQ1FFSFlpZ0V0QUFCQkFYRU5BRUhZaWdFUUpFVU5BRUhNaWdGQjZoc1FWQnBCMklvQkVDTUxRY3lLQVFzSkFFRzhpZ0VRQ2hvTEx3QUNRRUhJaWdFdEFBQkJBWEVOQUVISWlnRVFKRVVOQUVHOGlnRkJqTlVBRUlRQlFjaUtBUkFqQzBHOGlnRUxDUUJCcklvQkVBb2FDeTRBQWtCQnVJb0JMUUFBUVFGeERRQkJ1SW9CRUNSRkRRQkJySW9CUWR3ZEVGUWFRYmlLQVJBakMwR3NpZ0VMQ1FCQm5Jb0JFQW9hQ3k4QUFrQkJxSW9CTFFBQVFRRnhEUUJCcUlvQkVDUkZEUUJCbklvQlFlalVBQkNFQVVHb2lnRVFJd3RCbklvQkN3a0FRWXlLQVJBS0dnc3VBQUpBUVppS0FTMEFBRUVCY1EwQVFaaUtBUkFrUlEwQVFZeUtBVUgzSFJCVUdrR1lpZ0VRSXd0QmpJb0JDd2tBUWZ5SkFSQUtHZ3N2QUFKQVFZaUtBUzBBQUVFQmNRMEFRWWlLQVJBa1JRMEFRZnlKQVVIRTFBQVFoQUZCaUlvQkVDTUxRZnlKQVFzSkFFSHNpUUVRQ2hvTExnQUNRRUg0aVFFdEFBQkJBWEVOQUVINGlRRVFKRVVOQUVIc2lRRkI1aG9RVkJwQitJa0JFQ01MUWV5SkFRc2JBRUhva2dFaEFBTkFJQUJCREdzUUNpSUFRZENTQVVjTkFBc0xmUUFDUUVIb2lRRXRBQUJCQVhFTkFFSG9pUUVRSkVVTkFBSkFRZWlTQVMwQUFFRUJjUTBBUWVpU0FSQWtSUTBBUWRDU0FTRUFBMEFnQUJCSFFReHFJZ0JCNkpJQlJ3MEFDMEhva2dFUUl3dEIwSklCUWZEN0FCQVVRZHlTQVVIOCt3QVFGRUhraVFGQjBKSUJOZ0lBUWVpSkFSQWpDMEhraVFFb0FnQUxHd0JCeUpJQklRQURRQ0FBUVF4ckVBb2lBRUd3a2dGSERRQUxDM3NBQWtCQjRJa0JMUUFBUVFGeERRQkI0SWtCRUNSRkRRQUNRRUhJa2dFdEFBQkJBWEVOQUVISWtnRVFKRVVOQUVHd2tnRWhBQU5BSUFBUUVVRU1haUlBUWNpU0FVY05BQXRCeUpJQkVDTUxRYkNTQVVHSEhoQVZRYnlTQVVHRUhoQVZRZHlKQVVHd2tnRTJBZ0JCNElrQkVDTUxRZHlKQVNnQ0FBc2JBRUdna2dFaEFBTkFJQUJCREdzUUNpSUFRWUNRQVVjTkFBc0wyUUlBQWtCQjJJa0JMUUFBUVFGeERRQkIySWtCRUNSRkRRQUNRRUdna2dFdEFBQkJBWEVOQUVHZ2tnRVFKRVVOQUVHQWtBRWhBQU5BSUFBUVIwRU1haUlBUWFDU0FVY05BQXRCb0pJQkVDTUxRWUNRQVVIbzl3QVFGRUdNa0FGQmlQZ0FFQlJCbUpBQlFhejRBQkFVUWFTUUFVSEUrQUFRRkVHd2tBRkIzUGdBRUJSQnZKQUJRZXo0QUJBVVFjaVFBVUdBK1FBUUZFSFVrQUZCbFBrQUVCUkI0SkFCUWJENUFCQVVRZXlRQVVIWStRQVFGRUg0a0FGQitQa0FFQlJCaEpFQlFaejZBQkFVUVpDUkFVSEErZ0FRRkVHY2tRRkIwUG9BRUJSQnFKRUJRZUQ2QUJBVVFiU1JBVUh3K2dBUUZFSEFrUUZCM1BnQUVCUkJ6SkVCUVlEN0FCQVVRZGlSQVVHUSt3QVFGRUhra1FGQm9Qc0FFQlJCOEpFQlFiRDdBQkFVUWZ5UkFVSEErd0FRRkVHSWtnRkIwUHNBRUJSQmxKSUJRZUQ3QUJBVVFkU0pBVUdBa0FFMkFnQkIySWtCRUNNTFFkU0pBU2dDQUFzYkFFSHdqd0VoQUFOQUlBQkJER3NRQ2lJQVFkQ05BVWNOQUFzTHdRSUFBa0JCMElrQkxRQUFRUUZ4RFFCQjBJa0JFQ1JGRFFBQ1FFSHdqd0V0QUFCQkFYRU5BRUh3andFUUpFVU5BRUhRalFFaEFBTkFJQUFRRVVFTWFpSUFRZkNQQVVjTkFBdEI4SThCRUNNTFFkQ05BVUdjR2hBVlFkeU5BVUdUR2hBVlFlaU5BVUhnSEJBVlFmU05BVUhXSEJBVlFZQ09BVUhpR2hBVlFZeU9BVUhMSFJBVlFaaU9BVUdrR2hBVlFhU09BVUdVR3hBVlFiQ09BVUcvR3hBVlFieU9BVUd1R3hBVlFjaU9BVUcyR3hBVlFkU09BVUhKR3hBVlFlQ09BVUhMSEJBVlFleU9BVUhZSFJBVlFmaU9BVUhpR3hBVlFZU1BBVUdqR3hBVlFaQ1BBVUhpR2hBVlFaeVBBVUg2R3hBVlFhaVBBVUhQSEJBVlFiU1BBVUhtSEJBVlFjQ1BBVUhtR3hBVlFjeVBBVUdiR3hBVlFkaVBBVUdNR3hBVlFlU1BBVUhVSFJBVlFjeUpBVUhRalFFMkFnQkIwSWtCRUNNTFFjeUpBU2dDQUFzYkFFSElqUUVoQUFOQUlBQkJER3NRQ2lJQVFhQ01BVWNOQUFzTDlRRUFBa0JCeUlrQkxRQUFRUUZ4RFFCQnlJa0JFQ1JGRFFBQ1FFSElqUUV0QUFCQkFYRU5BRUhJalFFUUpFVU5BRUdnakFFaEFBTkFJQUFRUjBFTWFpSUFRY2lOQVVjTkFBdEJ5STBCRUNNTFFhQ01BVUdVOVFBUUZFR3NqQUZCc1BVQUVCUkJ1SXdCUWN6MUFCQVVRY1NNQVVIczlRQVFGRUhRakFGQmxQWUFFQlJCM0l3QlFiajJBQkFVUWVpTUFVSFU5Z0FRRkVIMGpBRkIrUFlBRUJSQmdJMEJRWWozQUJBVVFZeU5BVUdZOXdBUUZFR1lqUUZCcVBjQUVCUkJwSTBCUWJqM0FCQVVRYkNOQVVISTl3QVFGRUc4alFGQjJQY0FFQlJCeElrQlFhQ01BVFlDQUVISWlRRVFJd3RCeElrQktBSUFDeHNBUVppTUFTRUFBMEFnQUVFTWF4QUtJZ0JCOElvQlJ3MEFDd3ZuQVFBQ1FFSEFpUUV0QUFCQkFYRU5BRUhBaVFFUUpFVU5BQUpBUVppTUFTMEFBRUVCY1EwQVFaaU1BUkFrUlEwQVFmQ0tBU0VBQTBBZ0FCQVJRUXhxSWdCQm1Jd0JSdzBBQzBHWWpBRVFJd3RCOElvQlFjMGFFQlZCL0lvQlFkUWFFQlZCaUlzQlFiSWFFQlZCbElzQlFib2FFQlZCb0lzQlFha2FFQlZCcklzQlFkc2FFQlZCdUlzQlFjUWFFQlZCeElzQlFmWWJFQlZCMElzQlFjTWNFQlZCM0lzQlFjRWRFQlZCNklzQlFkQWRFQlZCOUlzQlFaQWJFQlZCZ0l3QlFkd2NFQlZCakl3QlFaOGJFQlZCdklrQlFmQ0tBVFlDQUVIQWlRRVFJd3RCdklrQktBSUFDd3NBSUFCQnJOUUFFSVFCQ3dvQUlBQkJ4UjBRVkJvTEN3QWdBRUdZMUFBUWhBRUxDZ0FnQUVHOEhSQlVHZ3NNQUNBQUlBRkJFR29RMFFFTERBQWdBQ0FCUVF4cUVORUJDd2NBSUFBc0FBa0xCd0FnQUN3QUNBc0pBQ0FBRUlZQ0VCQUxDUUFnQUJDSEFoQVFDK1lEQVFWL0lBSWhBQU5BQWtBZ0JDQUlUU0FBSUFOUGNnMEFJQUFzQUFBaUJrSC9BWEVoQVFKQUlBWkJBRTRFUUVFQklRWWdBVUgvLzhNQVRRMEJEQUlMSUFGQndnRkpEUUVnQVVIZkFVMEVRQ0FESUFCclFRSklEUUlnQUMwQUFTSUZRY0FCY1VHQUFVY05Ba0VDSVFZZ0JVRS9jU0FCUVFaMFFjQVBjWEpCLy8vREFFME5BUXdDQ3dKQUFrQWdBVUh2QVUwRVFDQURJQUJyUVFOSURRUWdBQzBBQWlFSElBQXRBQUVoQlNBQlFlMEJSZzBCSUFGQjRBRkdCRUFnQlVIZ0FYRkJvQUZHRFFNTUJRc2dCVUhBQVhGQmdBRkhEUVFNQWdzZ0F5QUFhMEVFU0NBQlFmUUJTM0lOQXlBQUxRQURJUWNnQUMwQUFpRUpJQUF0QUFFaEJRSkFBa0FDUUFKQUlBRkI4QUZyRGdVQUFnSUNBUUlMSUFWQjhBQnFRZjhCY1VFd1NRMENEQVlMSUFWQjhBRnhRWUFCUmcwQkRBVUxJQVZCd0FGeFFZQUJSdzBFQ3lBSlFjQUJjVUdBQVVjZ0IwSEFBWEZCZ0FGSGNnMERRUVFoQmlBSFFUOXhJQWxCQm5SQndCOXhJQUZCRW5SQmdJRHdBSEVnQlVFL2NVRU1kSEp5Y2tILy84TUFTdzBEREFJTElBVkI0QUZ4UVlBQlJ3MENDeUFIUWNBQmNVR0FBVWNOQVVFRElRWWdCMEUvY1NBQlFReDBRWURnQTNFZ0JVRS9jVUVHZEhKeVFmLy93d0JMRFFFTElBaEJBV29oQ0NBQUlBWnFJUUFNQVFzTElBQWdBbXNMNGdRQkJYOGpBRUVRYXlJQUpBQWdBQ0FDTmdJTUlBQWdCVFlDQ0FKL0lBQWdBallDRENBQUlBVTJBZ2dDUUFKQUEwQUNRQ0FBS0FJTUlnSWdBMDhOQUNBQUtBSUlJZ3dnQms4TkFDQUNMQUFBSWdWQi93RnhJUUVDUUNBRlFRQk9CRUFnQVVILy84TUFUUVJBUVFFaEJRd0NDMEVDREFZTFFRSWhDaUFCUWNJQlNRMERJQUZCM3dGTkJFQWdBeUFDYTBFQ1NBMEZJQUl0QUFFaUNFSEFBWEZCZ0FGSERRUkJBaUVGSUFoQlAzRWdBVUVHZEVIQUQzRnlJZ0ZCLy8vREFFME5BUXdFQ3lBQlFlOEJUUVJBSUFNZ0FtdEJBMGdOQlNBQ0xRQUNJUWtnQWkwQUFTRUlBa0FDUUNBQlFlMEJSd1JBSUFGQjRBRkhEUUVnQ0VIZ0FYRkJvQUZHRFFJTUJ3c2dDRUhnQVhGQmdBRkdEUUVNQmdzZ0NFSEFBWEZCZ0FGSERRVUxJQWxCd0FGeFFZQUJSdzBFUVFNaEJTQUpRVDl4SUFGQkRIUkJnT0FEY1NBSVFUOXhRUVowY25JaUFVSC8vOE1BVFEwQkRBUUxJQUZCOUFGTERRTWdBeUFDYTBFRVNBMEVJQUl0QUFNaENTQUNMUUFDSVFzZ0FpMEFBU0VJQWtBQ1FBSkFBa0FnQVVId0FXc09CUUFDQWdJQkFnc2dDRUh3QUdwQi93RnhRVEJKRFFJTUJnc2dDRUh3QVhGQmdBRkdEUUVNQlFzZ0NFSEFBWEZCZ0FGSERRUUxJQXRCd0FGeFFZQUJSeUFKUWNBQmNVR0FBVWR5RFFOQkJDRUZJQWxCUDNFZ0MwRUdkRUhBSDNFZ0FVRVNkRUdBZ1BBQWNTQUlRVDl4UVF4MGNuSnlJZ0ZCLy8vREFFc05Bd3NnRENBQk5nSUFJQUFnQWlBRmFqWUNEQ0FBSUFBb0FnaEJCR28yQWdnTUFRc0xJQUlnQTBraENnc2dDZ3dCQzBFQkN5RUJJQVFnQUNnQ0REWUNBQ0FISUFBb0FnZzJBZ0FnQUVFUWFpUUFJQUVMamdRQUl3QkJFR3NpQUNRQUlBQWdBallDRENBQUlBVTJBZ2dDZnlBQUlBSTJBZ3dnQUNBRk5nSUlJQUFvQWd3aEFRSkFBMEFnQVNBRFR3UkFRUUFoQWd3Q0MwRUNJUUlnQVNnQ0FDSUJRWUJ3Y1VHQXNBTkdJQUZCLy8vREFFdHlEUUVDUUFKQUlBRkIvd0JOQkVCQkFTRUNJQVlnQUNnQ0NDSUZhMEVBVEEwRUlBQWdCVUVCYWpZQ0NDQUZJQUU2QUFBTUFRc2dBVUgvRDAwRVFDQUdJQUFvQWdnaUFtdEJBa2dOQWlBQUlBSkJBV28yQWdnZ0FpQUJRUVoyUWNBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCUDNGQmdBRnlPZ0FBREFFTElBWWdBQ2dDQ0NJQ2F5RUZJQUZCLy84RFRRUkFJQVZCQTBnTkFpQUFJQUpCQVdvMkFnZ2dBaUFCUVF4MlFlQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQkJuWkJQM0ZCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFNQVFzZ0JVRUVTQTBCSUFBZ0FrRUJhallDQ0NBQ0lBRkJFblpCOEFGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUVNZGtFL2NVR0FBWEk2QUFBZ0FDQUFLQUlJSWdKQkFXbzJBZ2dnQWlBQlFRWjJRVDl4UVlBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCUDNGQmdBRnlPZ0FBQ3lBQUlBQW9BZ3hCQkdvaUFUWUNEQXdCQ3d0QkFRd0JDeUFDQ3lFQklBUWdBQ2dDRERZQ0FDQUhJQUFvQWdnMkFnQWdBRUVRYWlRQUlBRUw3Z01CQkg4Z0FpRUFBMEFDUUNBRUlBWk5JQUFnQTA5eURRQWdBQzBBQUNJQlFmLy93d0JMRFFBQ2Z5QUFRUUZxSUFGQkdIUkJHSFZCQUU0TkFCb2dBVUhDQVVrTkFTQUJRZDhCVFFSQUlBTWdBR3RCQWtnTkFpQUFMUUFCSWdWQndBRnhRWUFCUnlBRlFUOXhJQUZCQm5SQndBOXhja0gvLzhNQVMzSU5BaUFBUVFKcURBRUxBa0FDUUNBQlFlOEJUUVJBSUFNZ0FHdEJBMGdOQkNBQUxRQUNJUWNnQUMwQUFTRUZJQUZCN1FGR0RRRWdBVUhnQVVZRVFDQUZRZUFCY1VHZ0FVWU5Bd3dGQ3lBRlFjQUJjVUdBQVVjTkJBd0NDeUFESUFCclFRUklJQUZCOUFGTGNpQUVJQVpyUVFKSmNnMERJQUF0QUFNaEJ5QUFMUUFDSVFnZ0FDMEFBU0VGQWtBQ1FBSkFBa0FnQVVId0FXc09CUUFDQWdJQkFnc2dCVUh3QUdwQi93RnhRVEJKRFFJTUJnc2dCVUh3QVhGQmdBRkdEUUVNQlFzZ0JVSEFBWEZCZ0FGSERRUUxJQWhCd0FGeFFZQUJSeUFIUWNBQmNVR0FBVWR5SUFkQlAzRWdDRUVHZEVIQUgzRWdBVUVTZEVHQWdQQUFjU0FGUVQ5eFFReDBjbkp5UWYvL3d3QkxjZzBESUFaQkFXb2hCaUFBUVFScURBSUxJQVZCNEFGeFFZQUJSdzBDQ3lBSFFjQUJjVUdBQVVjZ0IwRS9jU0FCUVF4MFFZRGdBM0VnQlVFL2NVRUdkSEp5UWYvL3d3QkxjZzBCSUFCQkEyb0xJUUFnQmtFQmFpRUdEQUVMQ3lBQUlBSnJDOU1GQVFSL0l3QkJFR3NpQUNRQUlBQWdBallDRENBQUlBVTJBZ2dDZnlBQUlBSTJBZ3dnQUNBRk5nSUlBa0FDUUFKQUEwQUNRQ0FBS0FJTUlnRWdBMDhOQUNBQUtBSUlJZ1VnQms4TkFFRUNJUW9nQVMwQUFDSUNRZi8vd3dCTERRUWdBQUovSUFKQkdIUkJHSFZCQUU0RVFDQUZJQUk3QVFBZ0FVRUJhZ3dCQ3lBQ1FjSUJTUTBGSUFKQjN3Rk5CRUFnQXlBQmEwRUNTQTBGSUFFdEFBRWlDRUhBQVhGQmdBRkhEUVFnQ0VFL2NTQUNRUVowUWNBUGNYSWlBa0gvLzhNQVN3MEVJQVVnQWpzQkFDQUJRUUpxREFFTElBSkI3d0ZOQkVBZ0F5QUJhMEVEU0EwRklBRXRBQUloQ1NBQkxRQUJJUWdDUUFKQUlBSkI3UUZIQkVBZ0FrSGdBVWNOQVNBSVFlQUJjVUdnQVVZTkFnd0hDeUFJUWVBQmNVR0FBVVlOQVF3R0N5QUlRY0FCY1VHQUFVY05CUXNnQ1VIQUFYRkJnQUZIRFFRZ0NVRS9jU0FJUVQ5eFFRWjBJQUpCREhSeWNpSUNRZi8vQTNGQi8vL0RBRXNOQkNBRklBSTdBUUFnQVVFRGFnd0JDeUFDUWZRQlN3MEZRUUVoQ2lBRElBRnJRUVJJRFFNZ0FTMEFBeUVKSUFFdEFBSWhDQ0FCTFFBQklRRUNRQUpBQWtBQ1FDQUNRZkFCYXc0RkFBSUNBZ0VDQ3lBQlFmQUFha0gvQVhGQk1FOE5DQXdDQ3lBQlFmQUJjVUdBQVVjTkJ3d0JDeUFCUWNBQmNVR0FBVWNOQmdzZ0NFSEFBWEZCZ0FGSElBbEJ3QUZ4UVlBQlIzSU5CU0FHSUFWclFRUklEUU5CQWlFS0lBbEJQM0VpQ1NBSVFRWjBJZ3RCd0I5eElBRkJESFJCZ09BUGNTQUNRUWR4SWdKQkVuUnljbkpCLy8vREFFc05BeUFGSUFoQkJIWkJBM0VnQVVFQ2RDSUJRY0FCY1NBQ1FRaDBjaUFCUVR4eGNuSkJ3UDhBYWtHQXNBTnlPd0VBSUFBZ0JVRUNhallDQ0NBRklBdEJ3QWR4SUFseVFZQzRBM0k3QVFJZ0FDZ0NERUVFYWdzMkFnd2dBQ0FBS0FJSVFRSnFOZ0lJREFFTEN5QUJJQU5KSVFvTElBb01BZ3RCQVF3QkMwRUNDeUVCSUFRZ0FDZ0NERFlDQUNBSElBQW9BZ2cyQWdBZ0FFRVFhaVFBSUFFTCtnVUJBWDhqQUVFUWF5SUFKQUFnQUNBQ05nSU1JQUFnQlRZQ0NBSi9JQUFnQWpZQ0RDQUFJQVUyQWdnZ0FDZ0NEQ0VDQWtBQ1FBTkFJQUlnQTA4RVFFRUFJUVVNQXd0QkFpRUZJQUl2QVFBaUFVSC8vOE1BU3cwQ0FrQUNRQ0FCUWY4QVRRUkFRUUVoQlNBR0lBQW9BZ2dpQW10QkFFd05CU0FBSUFKQkFXbzJBZ2dnQWlBQk9nQUFEQUVMSUFGQi93OU5CRUFnQmlBQUtBSUlJZ0pyUVFKSURRUWdBQ0FDUVFGcU5nSUlJQUlnQVVFR2RrSEFBWEk2QUFBZ0FDQUFLQUlJSWdKQkFXbzJBZ2dnQWlBQlFUOXhRWUFCY2pvQUFBd0JDeUFCUWYrdkEwMEVRQ0FHSUFBb0FnZ2lBbXRCQTBnTkJDQUFJQUpCQVdvMkFnZ2dBaUFCUVF4MlFlQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQkJuWkJQM0ZCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFNQVFzZ0FVSC90d05OQkVCQkFTRUZJQU1nQW10QkJFZ05CU0FDTHdFQ0lnaEJnUGdEY1VHQXVBTkhEUUlnQmlBQUtBSUlhMEVFU0EwRklBaEIvd2R4SUFGQkNuUkJnUGdEY1NBQlFjQUhjU0lGUVFwMGNuSkJnSUFFYWtILy84TUFTdzBDSUFBZ0FrRUNhallDRENBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFWQkJuWkJBV29pQWtFQ2RrSHdBWEk2QUFBZ0FDQUFLQUlJSWdWQkFXbzJBZ2dnQlNBQ1FRUjBRVEJ4SUFGQkFuWkJEM0Z5UVlBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQWhCQm5aQkQzRWdBVUVFZEVFd2NYSkJnQUZ5T2dBQUlBQWdBQ2dDQ0NJQlFRRnFOZ0lJSUFFZ0NFRS9jVUdBQVhJNkFBQU1BUXNnQVVHQXdBTkpEUVFnQmlBQUtBSUlJZ0pyUVFOSURRTWdBQ0FDUVFGcU5nSUlJQUlnQVVFTWRrSGdBWEk2QUFBZ0FDQUFLQUlJSWdKQkFXbzJBZ2dnQWlBQlFRWjJRVDl4UVlBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCUDNGQmdBRnlPZ0FBQ3lBQUlBQW9BZ3hCQW1vaUFqWUNEQXdCQ3d0QkFnd0NDMEVCREFFTElBVUxJUUVnQkNBQUtBSU1OZ0lBSUFjZ0FDZ0NDRFlDQUNBQVFSQnFKQUFnQVFzVkFDQUFLQUlJSWdCRkJFQkJBUThMSUFBUWlnSUxrQUVCQm44RFFBSkFJQUlnQTBZZ0JDQUlUWElOQUVFQklRY2dBQ2dDQ0NFRkl3QkJFR3NpQmlRQUlBWWdCVFlDRENBR1FRaHFJQVpCREdvUVVpRUtRUUFnQWlBRElBSnJJQUZCdEljQklBRWJFTGNCSVFVZ0NoQlJJQVpCRUdva0FBSkFBa0FnQlVFQ2FnNERBZ0lCQUFzZ0JTRUhDeUFJUVFGcUlRZ2dCeUFKYWlFSklBSWdCMm9oQWd3QkN3c2dDUXRtQVFOL0lBQW9BZ2doQWlNQVFSQnJJZ0VrQUNBQklBSTJBZ3dnQVVFSWFpQUJRUXhxRUZJaEFpTUFRUkJySWdNa0FDQURRUkJxSkFCQkFDRURJQUlRVVNBQlFSQnFKQUFnQXdSL1FYOEZJQUFvQWdnaUFFVUVRRUVCRHdzZ0FCQ0tBa0VCUmdzTGtnRUJBWDhqQUVFUWF5SUZKQUFnQkNBQ05nSUFBbjlCQWlBRlFReHFRUUFnQUNnQ0NCRExBU0lBUVFGcVFRSkpEUUFhUVFFZ0FFRUJheUlCSUFNZ0JDZ0NBR3RMRFFBYUlBVkJER29oQWdOL0lBRUVmeUFDTFFBQUlRQWdCQ0FFS0FJQUlnTkJBV28yQWdBZ0F5QUFPZ0FBSUFGQkFXc2hBU0FDUVFGcUlRSU1BUVZCQUFzTEN5RUNJQVZCRUdva0FDQUNDOHNHQVF4L0l3QkJFR3NpRVNRQUlBSWhDQU5BQWtBZ0F5QUlSZ1JBSUFNaENBd0JDeUFJTFFBQVJRMEFJQWhCQVdvaENBd0JDd3NnQnlBRk5nSUFJQVFnQWpZQ0FBTkFBa0FDZndKQUlBSWdBMFlnQlNBR1JuSU5BQ0FSSUFFcEFnQTNBd2dnQUNnQ0NDRUpJd0JCRUdzaUVDUUFJQkFnQ1RZQ0RDQVFRUWhxSUJCQkRHb1FVaUVUSUFnZ0Ftc2hEVUVBSVFvakFFR1FDR3NpQ3lRQUlBc2dCQ2dDQUNJT05nSU1JQVVnQzBFUWFpQUZHeUVQQWtBQ1FBSkFJQTVGSUFZZ0JXdEJBblZCZ0FJZ0JSc2lERVZ5RFFBRFFDQU5RUUoySWdrZ0RFa2dEVUdEQVUxeERRSWdEeUFMUVF4cUlBd2dDU0FKSUF4UEd5QUJFTklDSWhKQmYwWUVRRUYvSVFwQkFDRU1JQXNvQWd3aERnd0NDeUFNUVFBZ0VpQVBJQXRCRUdwR0d5SUpheUVNSUE4Z0NVRUNkR29oRHlBTklBNXFJQXNvQWd3aURtdEJBQ0FPR3lFTklBb2dFbW9oQ2lBT1JRMEJJQXdOQUFzTElBNUZEUUVMSUF4RklBMUZjZzBBSUFvaENRTkFBa0FDUUNBUElBNGdEU0FCRUxjQklncEJBbXBCQWswRVFBSkFBa0FnQ2tFQmFnNENCZ0FCQ3lBTFFRQTJBZ3dNQWdzZ0FVRUFOZ0lBREFFTElBc2dDeWdDRENBS2FpSU9OZ0lNSUFsQkFXb2hDU0FNUVFGcklnd05BUXNnQ1NFS0RBSUxJQTlCQkdvaER5QU5JQXBySVEwZ0NTRUtJQTBOQUFzTElBVUVRQ0FFSUFzb0FndzJBZ0FMSUF0QmtBaHFKQUFnQ2lFSklCTVFVU0FRUVJCcUpBQUNRQUpBQWtBQ1FDQUpRWDlHQkVBRFFBSkFJQWNnQlRZQ0FDQUNJQVFvQWdCR0RRQkJBU0VHQWtBQ1FBSkFJQVVnQWlBSUlBSnJJQkZCQ0dvZ0FDZ0NDQkNMQWlJQlFRSnFEZ01JQUFJQkN5QUVJQUkyQWdBTUJRc2dBU0VHQ3lBQ0lBWnFJUUlnQnlnQ0FFRUVhaUVGREFFTEN5QUVJQUkyQWdBTUJRc2dCeUFIS0FJQUlBbEJBblJxSWdVMkFnQWdCU0FHUmcwRElBUW9BZ0FoQWlBRElBaEdCRUFnQXlFSURBZ0xJQVVnQWtFQklBRWdBQ2dDQ0JDTEFrVU5BUXRCQWd3RUN5QUhJQWNvQWdCQkJHbzJBZ0FnQkNBRUtBSUFRUUZxSWdJMkFnQWdBaUVJQTBBZ0F5QUlSZ1JBSUFNaENBd0dDeUFJTFFBQVJRMEZJQWhCQVdvaENBd0FDd0FMSUFRZ0FqWUNBRUVCREFJTElBUW9BZ0FoQWdzZ0FpQURSd3NoQUNBUlFSQnFKQUFnQUE4TElBY29BZ0FoQlF3QUN3QUxzd1VCREg4akFFRVFheUlOSkFBZ0FpRUlBMEFDUUNBRElBaEdCRUFnQXlFSURBRUxJQWdvQWdCRkRRQWdDRUVFYWlFSURBRUxDeUFISUFVMkFnQWdCQ0FDTmdJQUEwQUNRQUpBSUFJZ0EwWWdCU0FHUm5JRWZ5QUNCU0FOSUFFcEFnQTNBd2hCQVNFUUlBQW9BZ2doQ1NNQVFSQnJJZzRrQUNBT0lBazJBZ3dnRGtFSWFpQU9RUXhxRUZJaEV5QUdJQVVpQ1dzaENrRUFJUThqQUVFUWF5SVJKQUFDUUNBRUtBSUFJZ3RGSUFnZ0FtdEJBblVpRWtWeURRQWdDa0VBSUFrYklRb0RRQ0FSUVF4cUlBa2dDa0VFU1JzZ0N5Z0NBQkRhQVNJTVFYOUdCRUJCZnlFUERBSUxJQWtFZnlBS1FRTk5CRUFnQ2lBTVNRMERJQWtnRVVFTWFpQU1FRUlhQ3lBS0lBeHJJUW9nQ1NBTWFnVkJBQXNoQ1NBTEtBSUFSUVJBUVFBaEN3d0NDeUFNSUE5cUlROGdDMEVFYWlFTElCSkJBV3NpRWcwQUN3c2dDUVJBSUFRZ0N6WUNBQXNnRVVFUWFpUUFJQThoQ1NBVEVGRWdEa0VRYWlRQUFrQUNRQUpBQWtBQ1FDQUpRUUZxRGdJQUJnRUxJQWNnQlRZQ0FBTkFBa0FnQWlBRUtBSUFSZzBBSUFVZ0FpZ0NBQ0FBS0FJSUVNc0JJZ0ZCZjBZTkFDQUhJQWNvQWdBZ0FXb2lCVFlDQUNBQ1FRUnFJUUlNQVFzTElBUWdBallDQUF3QkN5QUhJQWNvQWdBZ0NXb2lCVFlDQUNBRklBWkdEUUlnQXlBSVJnUkFJQVFvQWdBaEFpQURJUWdNQndzZ0RVRUVha0VBSUFBb0FnZ1F5d0VpQ0VGL1J3MEJDMEVDSVJBTUF3c2dEVUVFYWlFQ0lBWWdCeWdDQUdzZ0NFa05BZ05BSUFnRVFDQUNMUUFBSVFVZ0J5QUhLQUlBSWdsQkFXbzJBZ0FnQ1NBRk9nQUFJQWhCQVdzaENDQUNRUUZxSVFJTUFRc0xJQVFnQkNnQ0FFRUVhaUlDTmdJQUlBSWhDQU5BSUFNZ0NFWUVRQ0FESVFnTUJRc2dDQ2dDQUVVTkJDQUlRUVJxSVFnTUFBc0FDeUFFS0FJQUN5QURSeUVRQ3lBTlFSQnFKQUFnRUE4TElBY29BZ0FoQlF3QUN3QUxDUUFnQUJDWUFoQVFDemNBSXdCQkVHc2lBQ1FBSUFBZ0JEWUNEQ0FBSUFNZ0FtczJBZ2dnQUVFTWFpQUFRUWhxRUtJQktBSUFJUUVnQUVFUWFpUUFJQUVMTkFBRFFDQUJJQUpHUlFSQUlBUWdBU3dBQUNJQUlBTWdBRUVBVGhzNkFBQWdCRUVCYWlFRUlBRkJBV29oQVF3QkN3c2dBZ3NNQUNBQklBSWdBVUVBVGhzTEtnQURRQ0FCSUFKR1JRUkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQkRBRUxDeUFDQzBBQUEwQWdBU0FDUndSQUlBRWdBU3dBQUNJQVFRQk9CSDlCME1RQUtBSUFJQUVzQUFCQkFuUnFLQUlBQlNBQUN6b0FBQ0FCUVFGcUlRRU1BUXNMSUFJTEp3QWdBVUVBVGdSL1FkREVBQ2dDQUNBQlFmOEJjVUVDZEdvb0FnQUZJQUVMUVJoMFFSaDFDejhBQTBBZ0FTQUNSd1JBSUFFZ0FTd0FBQ0lBUVFCT0JIOUJ3RGdvQWdBZ0FTd0FBRUVDZEdvb0FnQUZJQUFMT2dBQUlBRkJBV29oQVF3QkN3c2dBZ3NtQUNBQlFRQk9CSDlCd0Rnb0FnQWdBVUgvQVhGQkFuUnFLQUlBQlNBQkMwRVlkRUVZZFFzSkFDQUFFSTRDRUJBTE5RQURRQ0FCSUFKR1JRUkFJQVFnQVNnQ0FDSUFJQU1nQUVHQUFVa2JPZ0FBSUFSQkFXb2hCQ0FCUVFScUlRRU1BUXNMSUFJTEV3QWdBU0FDSUFGQmdBRkpHMEVZZEVFWWRRc3FBQU5BSUFFZ0FrWkZCRUFnQXlBQkxBQUFOZ0lBSUFOQkJHb2hBeUFCUVFGcUlRRU1BUXNMSUFJTFFRQURRQ0FCSUFKSEJFQWdBU0FCS0FJQUlnQkIvd0JOQkg5QjBNUUFLQUlBSUFFb0FnQkJBblJxS0FJQUJTQUFDellDQUNBQlFRUnFJUUVNQVFzTElBSUxIZ0FnQVVIL0FFMEVmMEhReEFBb0FnQWdBVUVDZEdvb0FnQUZJQUVMQzBBQUEwQWdBU0FDUndSQUlBRWdBU2dDQUNJQVFmOEFUUVIvUWNBNEtBSUFJQUVvQWdCQkFuUnFLQUlBQlNBQUN6WUNBQ0FCUVFScUlRRU1BUXNMSUFJTEhRQWdBVUgvQUUwRWYwSEFPQ2dDQUNBQlFRSjBhaWdDQUFVZ0FRc0xSQUFDUUFOQUlBSWdBMFlOQVFKQUlBSW9BZ0JCL3dCTERRQkJzRElvQWdBZ0FpZ0NBRUVCZEdvdkFRQWdBWEZGRFFBZ0FrRUVhaUVDREFFTEN5QUNJUU1MSUFNTFF3QURRQUpBSUFJZ0EwY0VmeUFDS0FJQVFmOEFTdzBCUWJBeUtBSUFJQUlvQWdCQkFYUnFMd0VBSUFGeFJRMEJJQUlGSUFNTER3c2dBa0VFYWlFQ0RBQUxBQXRGQUFOQUlBRWdBa2NFUUNBRElBRW9BZ0JCL3dCTkJIOUJzRElvQWdBZ0FTZ0NBRUVCZEdvdkFRQUZRUUFMT3dFQUlBTkJBbW9oQXlBQlFRUnFJUUVNQVFzTElBSUxJd0FnQWtIL0FFMEVmMEd3TWlnQ0FDQUNRUUYwYWk4QkFDQUJjVUVBUndWQkFBc0xRQUVDZnlBQUtBSUFLQUlBSWdBb0FnQWdBQ2dDQ0NJQ1FRRjFhaUVCSUFBb0FnUWhBQ0FCSUFKQkFYRUVmeUFCS0FJQUlBQnFLQUlBQlNBQUN4RUJBQXNQQUNBQUlBQW9BZ0FvQWdRUkFRQUxId0FnQUFKL1FmaUlBVUg0aUFFb0FnQkJBV29pQURZQ0FDQUFDellDQkFzSkFDQUFFSk1DRUJBTG1BRUFJd0JCRUdzaUF5UUFBa0FnQlJBMVJRUkFJQUFnQlNnQ0NEWUNDQ0FBSUFVcEFnQTNBZ0FNQVFzZ0JTZ0NBQ0VFQWtBQ1FBSkFJQVVvQWdRaUFrRUJUUVJBSUFBaEFTQUFJQUlRT2d3QkN5QUNRZS8vLy84RFN3MEJJQUFnQUNBQ0VJSUJRUUZxSWdVUWdRRWlBUkJOSUFBZ0JSQk1JQUFnQWhBNUN5QUJJQVFnQWtFQmFoQnhEQUVMRUJjQUN3c2dBMEVRYWlRQUN3a0FJQUFnQlJEUkFRdUdBd0VJZnlNQVFmQURheUlBSkFBZ0FFSG9BMm9pQmlBREVBOGdCaEE3SVFvZ0JSQUpCRUFnQlVFQUVMRUJLQUlBSUFwQkxSQTlSaUVMQ3lBQ0lBc2dBRUhvQTJvZ0FFSGdBMm9nQUVIY0Eyb2dBRUhZQTJvZ0FFSElBMm9RRVNJTUlBQkJ1QU5xRUVjaUJpQUFRYWdEYWhCSElnY2dBRUdrQTJvUW13SWdBRUUxTmdJUUlBQkJDR3BCQUNBQVFSQnFJZ0lRSGlFSUFrQUNmeUFGRUFrZ0FDZ0NwQU5LQkVBZ0JSQUpJUWtnQUNnQ3BBTWhEU0FIRUFrZ0NTQU5hMEVCZEdvZ0JoQUphaUFBS0FLa0EycEJBV29NQVFzZ0J4QUpJQVlRQ1dvZ0FDZ0NwQU5xUVFKcUN5SUpRZVVBU1EwQUlBZ2dDVUVDZEJBWkVDY2dDQ2dDQUNJQ0RRQVFGd0FMSUFJZ0FFRUVhaUFBSUFNb0FnUWdCUkFOSUFVUURTQUZFQWxCQW5ScUlBb2dDeUFBUWVBRGFpQUFLQUxjQXlBQUtBTFlBeUFNSUFZZ0J5QUFLQUtrQXhDYUFpQUJJQUlnQUNnQ0JDQUFLQUlBSUFNZ0JCQmlJUUVnQ0JBZElBY1FDaG9nQmhBS0dpQU1FQW9hSUFCQjZBTnFFQTRnQUVId0Eyb2tBQ0FCQzdzRUFRdC9Jd0JCc0FocklnQWtBQ0FBSUFVM0F4QWdBQ0FHTndNWUlBQWdBRUhBQjJvaUJ6WUN2QWNnQnlBQVFSQnFFTllDSVFjZ0FFRTFOZ0tnQkNBQVFaZ0Vha0VBSUFCQm9BUnFJZ2tRSGlFT0lBQkJOVFlDb0FRZ0FFR1FCR3BCQUNBSkVCNGhDZ0pBSUFkQjVBQlBCRUFRRmlFSElBQWdCVGNEQUNBQUlBWTNBd2dnQUVHOEIyb2dCMEh1SENBQUVGb2lCMEYvUmcwQklBNGdBQ2dDdkFjUUp5QUtJQWRCQW5RUUdSQW5JQW9RbmdJTkFTQUtLQUlBSVFrTElBQkJpQVJxSWdnZ0F4QVBJQWdRT3lJUklBQW9BcndISWdnZ0J5QUlhaUFKRUdNZ0IwRUFTZ1JBSUFBb0Fyd0hMUUFBUVMxR0lROExJQUlnRHlBQVFZZ0VhaUFBUVlBRWFpQUFRZndEYWlBQVFmZ0RhaUFBUWVnRGFoQVJJaEFnQUVIWUEyb1FSeUlJSUFCQnlBTnFFRWNpQ3lBQVFjUURhaENiQWlBQVFUVTJBakFnQUVFb2FrRUFJQUJCTUdvaUFoQWVJUXdDZnlBQUtBTEVBeUlOSUFkSUJFQWdDeEFKSUFjZ0RXdEJBWFJxSUFnUUNXb2dBQ2dDeEFOcVFRRnFEQUVMSUFzUUNTQUlFQWxxSUFBb0FzUURha0VDYWdzaURVSGxBRThFUUNBTUlBMUJBblFRR1JBbklBd29BZ0FpQWtVTkFRc2dBaUFBUVNScUlBQkJJR29nQXlnQ0JDQUpJQWtnQjBFQ2RHb2dFU0FQSUFCQmdBUnFJQUFvQXZ3RElBQW9BdmdESUJBZ0NDQUxJQUFvQXNRREVKb0NJQUVnQWlBQUtBSWtJQUFvQWlBZ0F5QUVFR0loQVNBTUVCMGdDeEFLR2lBSUVBb2FJQkFRQ2hvZ0FFR0lCR29RRGlBS0VCMGdEaEFkSUFCQnNBaHFKQUFnQVE4TEVCY0FDLzRDQVFoL0l3QkJ3QUZySWdBa0FDQUFRYmdCYWlJR0lBTVFEeUFHRURJaENpQUZFQWtFUUNBRlFRQVFDeTBBQUNBS1FTMFFLVUgvQVhGR0lRc0xJQUlnQ3lBQVFiZ0JhaUFBUWJBQmFpQUFRYThCYWlBQVFhNEJhaUFBUWFBQmFoQVJJZ3dnQUVHUUFXb1FFU0lHSUFCQmdBRnFFQkVpQnlBQVFmd0FhaENkQWlBQVFUVTJBaEFnQUVFSWFrRUFJQUJCRUdvaUFoQWVJUWdDUUFKL0lBVVFDU0FBS0FKOFNnUkFJQVVRQ1NFSklBQW9BbndoRFNBSEVBa2dDU0FOYTBFQmRHb2dCaEFKYWlBQUtBSjhha0VCYWd3QkN5QUhFQWtnQmhBSmFpQUFLQUo4YWtFQ2Fnc2lDVUhsQUVrTkFDQUlJQWtRR1JBbklBZ29BZ0FpQWcwQUVCY0FDeUFDSUFCQkJHb2dBQ0FES0FJRUlBVVFEU0FGRUEwZ0JSQUphaUFLSUFzZ0FFR3dBV29nQUN3QXJ3RWdBQ3dBcmdFZ0RDQUdJQWNnQUNnQ2ZCQ2NBaUFCSUFJZ0FDZ0NCQ0FBS0FJQUlBTWdCQkJXSVFFZ0NCQWRJQWNRQ2hvZ0JoQUtHaUFNRUFvYUlBQkJ1QUZxRUE0Z0FFSEFBV29rQUNBQkM3SUVBUXQvSXdCQjBBTnJJZ0FrQUNBQUlBVTNBeEFnQUNBR053TVlJQUFnQUVIZ0Ftb2lCellDM0FJZ0J5QUFRUkJxRU5ZQ0lRY2dBRUUxTmdMd0FTQUFRZWdCYWtFQUlBQkI4QUZxSWdrUUhpRU9JQUJCTlRZQzhBRWdBRUhnQVdwQkFDQUpFQjRoQ2dKQUlBZEI1QUJQQkVBUUZpRUhJQUFnQlRjREFDQUFJQVkzQXdnZ0FFSGNBbW9nQjBIdUhDQUFFRm9pQjBGL1JnMEJJQTRnQUNnQzNBSVFKeUFLSUFjUUdSQW5JQW9RbmdJTkFTQUtLQUlBSVFrTElBQkIyQUZxSWdnZ0F4QVBJQWdRTWlJUklBQW9BdHdDSWdnZ0J5QUlhaUFKRUc4Z0IwRUFTZ1JBSUFBb0F0d0NMUUFBUVMxR0lROExJQUlnRHlBQVFkZ0JhaUFBUWRBQmFpQUFRYzhCYWlBQVFjNEJhaUFBUWNBQmFoQVJJaEFnQUVHd0FXb1FFU0lJSUFCQm9BRnFFQkVpQ3lBQVFad0JhaENkQWlBQVFUVTJBakFnQUVFb2FrRUFJQUJCTUdvaUFoQWVJUXdDZnlBQUtBS2NBU0lOSUFkSUJFQWdDeEFKSUFjZ0RXdEJBWFJxSUFnUUNXb2dBQ2dDbkFGcVFRRnFEQUVMSUFzUUNTQUlFQWxxSUFBb0Fwd0Jha0VDYWdzaURVSGxBRThFUUNBTUlBMFFHUkFuSUF3b0FnQWlBa1VOQVFzZ0FpQUFRU1JxSUFCQklHb2dBeWdDQkNBSklBY2dDV29nRVNBUElBQkIwQUZxSUFBc0FNOEJJQUFzQU00QklCQWdDQ0FMSUFBb0Fwd0JFSndDSUFFZ0FpQUFLQUlrSUFBb0FpQWdBeUFFRUZZaEFTQU1FQjBnQ3hBS0dpQUlFQW9hSUJBUUNob2dBRUhZQVdvUURpQUtFQjBnRGhBZElBQkIwQU5xSkFBZ0FROExFQmNBQzZjRkFRTi9Jd0JCd0FOcklnQWtBQ0FBSUFJMkFyQURJQUFnQVRZQ3VBTWdBRUUyTmdJVUlBQkJHR29nQUVFZ2FpQUFRUlJxSWdjUUhpRUpJQUJCRUdvaUFTQUVFQThnQVJBN0lRZ2dBRUVBT2dBUElBQkJ1QU5xSUFJZ0F5QUJJQVFvQWdRZ0JTQUFRUTlxSUFnZ0NTQUhJQUJCc0FOcUVLUUNCRUFqQUVFUWF5SUJKQUFDUUNBR0VEVUVRQ0FHS0FJQUlRSWdBVUVBTmdJTUlBSWdBVUVNYWhBeklBWkJBQkE1REFFTElBRkJBRFlDQ0NBR0lBRkJDR29RTXlBR1FRQVFPZ3NnQVVFUWFpUUFJQUF0QUE4RVFDQUdJQWhCTFJBOUVNY0JDeUFJUVRBUVBTRUJJQWtvQWdBaEJDQUFLQUlVSWdoQkJHc2hBZ05BQWtBZ0FpQUVUUTBBSUFRb0FnQWdBVWNOQUNBRVFRUnFJUVFNQVFzTEl3QkJFR3NpQVNRQUlBWVFDU0VDSUFZUXp3RWhBd0pBSUFRZ0NCQ2lBaUlIUlEwQUlBWVFEU0FFVFFSL0lBUWdCaEFOSUFZUUNVRUNkR3BOQlVFQUMwVUVRQ0FISUFNZ0FtdExCRUFnQmlBRElBSWdCMm9nQTJzZ0FpQUNFUE1CQ3lBR0VBMGdBa0VDZEdvaEF3TkFJQVFnQ0VjRVFDQURJQVFRTXlBRVFRUnFJUVFnQTBFRWFpRUREQUVMQ3lBQlFRQTJBZ0FnQXlBQkVETWdCaUFDSUFkcUVIZ01BUXNqQUVFUWF5SUNKQUFnQVNBRUlBZ1F6Z0lnQWtFUWFpUUFJQUVRRFNFSUlBRVFDU0VDSXdCQkVHc2lCQ1FBQWtBZ0FpQUdFTThCSWdjZ0JoQUpJZ05yVFFSQUlBSkZEUUVnQmhBTklnY2dBMEVDZEdvZ0NDQUNFSEVnQmlBQ0lBTnFJZ0lRZUNBRVFRQTJBZ3dnQnlBQ1FRSjBhaUFFUVF4cUVETU1BUXNnQmlBSElBSWdBMm9nQjJzZ0F5QURRUUFnQWlBSUVQUUJDeUFFUVJCcUpBQWdBUkFLR2dzZ0FVRVFhaVFBQ3lBQVFiZ0RhaUFBUWJBRGFoQW9CRUFnQlNBRktBSUFRUUp5TmdJQUN5QUFLQUs0QXlFQklBQkJFR29RRGlBSkVCMGdBRUhBQTJva0FDQUJDOWNEQVFKL0l3QkI4QVJySWdBa0FDQUFJQUkyQXVBRUlBQWdBVFlDNkFRZ0FFRTJOZ0lRSUFCQnlBRnFJQUJCMEFGcUlBQkJFR29RSGlFQklBQkJ3QUZxSWdjZ0JCQVBJQWNRT3lFSUlBQkJBRG9BdndFQ1FDQUFRZWdFYWlBQ0lBTWdCeUFFS0FJRUlBVWdBRUcvQVdvZ0NDQUJJQUJCeEFGcUlBQkI0QVJxRUtRQ1JRMEFJQUJCb3g0b0FBQTJBTGNCSUFCQm5CNHBBQUEzQTdBQklBZ2dBRUd3QVdvZ0FFRzZBV29nQUVHQUFXb1FZeUFBUVRVMkFoQWdBRUVJYWtFQUlBQkJFR29pQWhBZUlRTUNRQ0FBS0FMRUFTQUJLQUlBYTBHSkEwNEVRQ0FESUFBb0FzUUJJQUVvQWdCclFRSjFRUUpxRUJrUUp5QURLQUlBUlEwQklBTW9BZ0FoQWdzZ0FDMEF2d0VFUUNBQ1FTMDZBQUFnQWtFQmFpRUNDeUFCS0FJQUlRUURRQ0FBS0FMRUFTQUVUUVJBQWtBZ0FrRUFPZ0FBSUFBZ0JqWUNBQ0FBUVJCcUlBQVExd0pCQVVjTkFDQURFQjBNQkFzRklBSWdBRUd3QVdvZ0FFR0FBV29pQnlBSFFTaHFJQVFRMGdFZ0IydEJBblZxTFFBQU9nQUFJQUpCQVdvaEFpQUVRUVJxSVFRTUFRc0xFQmNBQ3hBWEFBc2dBRUhvQkdvZ0FFSGdCR29RS0FSQUlBVWdCU2dDQUVFQ2NqWUNBQXNnQUNnQzZBUWhBaUFBUWNBQmFoQU9JQUVRSFNBQVFmQUVhaVFBSUFJTHBBVUJBMzhqQUVHZ0FXc2lBQ1FBSUFBZ0FqWUNrQUVnQUNBQk5nS1lBU0FBUVRZMkFoUWdBRUVZYWlBQVFTQnFJQUJCRkdvaUJ4QWVJUWtnQUVFUWFpSUJJQVFRRHlBQkVESWhDQ0FBUVFBNkFBOGdBRUdZQVdvZ0FpQURJQUVnQkNnQ0JDQUZJQUJCRDJvZ0NDQUpJQWNnQUVHRUFXb1Fxd0lFUUNNQVFSQnJJZ0VrQUFKQUlBWVFOUVJBSUFZb0FnQWhBaUFCUVFBNkFBOGdBaUFCUVE5cUVEUWdCa0VBRURrTUFRc2dBVUVBT2dBT0lBWWdBVUVPYWhBMElBWkJBQkE2Q3lBQlFSQnFKQUFnQUMwQUR3UkFJQVlnQ0VFdEVDa1FvUUVMSUFoQk1CQXBJUUVnQ1NnQ0FDRUVJQUFvQWhRaUNFRUJheUVDSUFGQi93RnhJUUVEUUFKQUlBSWdCRTBOQUNBRUxRQUFJQUZIRFFBZ0JFRUJhaUVFREFFTEN5TUFRUkJySWdFa0FDQUdFQWtoQWlBR0VCTWhBd0pBSUFRZ0NCRHZBaUlIUlEwQUlBWVFEU0FFVFFSL0lBUWdCaEFOSUFZUUNXcE5CVUVBQzBVRVFDQUhJQU1nQW10TEJFQWdCaUFESUFJZ0Iyb2dBMnNnQWlBQ0VNZ0JDeUFHRUEwZ0Ftb2hBd05BSUFRZ0NFY0VRQ0FESUFRUU5DQUVRUUZxSVFRZ0EwRUJhaUVEREFFTEN5QUJRUUE2QUE4Z0F5QUJRUTlxRURRZ0JpQUNJQWRxRUhnTUFRc2pBRUVRYXlJQ0pBQWdBU0FFSUFnUTh3SWdBa0VRYWlRQUlBRVFEU0VJSUFFUUNTRUNJd0JCRUdzaUJDUUFBa0FnQWlBR0VCTWlCeUFHRUFraUEydE5CRUFnQWtVTkFTQUdFQTBpQnlBRGFpQUlJQUlRVlNBR0lBSWdBMm9pQWhCNElBUkJBRG9BRHlBQ0lBZHFJQVJCRDJvUU5Bd0JDeUFHSUFjZ0FpQURhaUFIYXlBRElBTkJBQ0FDSUFnUStBRUxJQVJCRUdva0FDQUJFQW9hQ3lBQlFSQnFKQUFMSUFCQm1BRnFJQUJCa0FGcUVDWUVRQ0FGSUFVb0FnQkJBbkkyQWdBTElBQW9BcGdCSVFFZ0FFRVFhaEFPSUFrUUhTQUFRYUFCYWlRQUlBRUx6UU1CQW44akFFR2dBbXNpQUNRQUlBQWdBallDa0FJZ0FDQUJOZ0tZQWlBQVFUWTJBaEFnQUVHWUFXb2dBRUdnQVdvZ0FFRVFhaEFlSVFFZ0FFR1FBV29pQnlBRUVBOGdCeEF5SVFnZ0FFRUFPZ0NQQVFKQUlBQkJtQUpxSUFJZ0F5QUhJQVFvQWdRZ0JTQUFRWThCYWlBSUlBRWdBRUdVQVdvZ0FFR0VBbW9RcXdKRkRRQWdBRUdqSGlnQUFEWUFod0VnQUVHY0hpa0FBRGNEZ0FFZ0NDQUFRWUFCYWlBQVFZb0JhaUFBUWZZQWFoQnZJQUJCTlRZQ0VDQUFRUWhxUVFBZ0FFRVFhaUlDRUI0aEF3SkFJQUFvQXBRQklBRW9BZ0JyUWVNQVRnUkFJQU1nQUNnQ2xBRWdBU2dDQUd0QkFtb1FHUkFuSUFNb0FnQkZEUUVnQXlnQ0FDRUNDeUFBTFFDUEFRUkFJQUpCTFRvQUFDQUNRUUZxSVFJTElBRW9BZ0FoQkFOQUlBQW9BcFFCSUFSTkJFQUNRQ0FDUVFBNkFBQWdBQ0FHTmdJQUlBQkJFR29nQUJEWEFrRUJSdzBBSUFNUUhRd0VDd1VnQWlBQVFmWUFhaUlISUFkQkNtb2dCQkRWQVNBQWF5QUFhaTBBQ2pvQUFDQUNRUUZxSVFJZ0JFRUJhaUVFREFFTEN4QVhBQXNRRndBTElBQkJtQUpxSUFCQmtBSnFFQ1lFUUNBRklBVW9BZ0JCQW5JMkFnQUxJQUFvQXBnQ0lRSWdBRUdRQVdvUURpQUJFQjBnQUVHZ0Ftb2tBQ0FDQzVnQ0FRSi9Jd0JCb0FOcklnZ2tBQ0FJSUFoQm9BTnFJZ00yQWd3akFFR1FBV3NpQnlRQUlBY2dCMEdFQVdvMkFod2dBRUVJYWlBSFFTQnFJZ0lnQjBFY2FpQUVJQVVnQmhDeEFpQUhRZ0EzQXhBZ0J5QUNOZ0lNSUFoQkVHb2lBaUFJS0FJTUVLNENJUVFnQUNnQ0NDRUZJd0JCRUdzaUFDUUFJQUFnQlRZQ0RDQUFRUWhxSUFCQkRHb1FVaUVGSUFJZ0IwRU1haUFFSUFkQkVHb1EwZ0loQkNBRkVGRWdBRUVRYWlRQUlBUkJmMFlFUUJBWEFBc2dDQ0FDSUFSQkFuUnFOZ0lNSUFkQmtBRnFKQUFnQ0NnQ0RDRUVJd0JCRUdzaUFDUUFJQUFnQVRZQ0NBTkFJQUlnQkVjRVFDQUFRUWhxSUFJb0FnQVE5d0lnQWtFRWFpRUNEQUVMQ3lBQUtBSUlJUUVnQUVFUWFpUUFJQU1rQUNBQkM0VUJBQ01BUVlBQmF5SUNKQUFnQWlBQ1FmUUFhallDRENBQVFRaHFJQUpCRUdvaUFDQUNRUXhxSUFRZ0JTQUdFTEVDSUFBaEJDQUNLQUlNSVFNakFFRVFheUlBSkFBZ0FDQUJOZ0lJQTBBZ0F5QUVSd1JBSUFCQkNHb2dCQ3dBQUJENEFpQUVRUUZxSVFRTUFRc0xJQUFvQWdnaEFTQUFRUkJxSkFBZ0FrR0FBV29rQUNBQkMrQU1BUUYvSXdCQlFHb2lCeVFBSUFjZ0FUWUNPQ0FFUVFBMkFnQWdCeUFERUE4Z0J4QTdJUWdnQnhBT0FuOENRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBWkJ3UUJyRGprQUFSY0VGd1VYQmdjWEZ4Y0tGeGNYRnc0UEVCY1hGeE1WRnhjWEZ4Y1hGd0FCQWdNREZ4Y0JGd2dYRndrTEZ3d1hEUmNMRnhjUkVoUVdDeUFBSUFWQkdHb2dCMEU0YWlBQ0lBUWdDQkMxQWd3WUN5QUFJQVZCRUdvZ0IwRTRhaUFDSUFRZ0NCQzBBZ3dYQ3lBSElBQWdBU0FDSUFNZ0JDQUZJQUJCQ0dvZ0FDZ0NDQ2dDREJFQUFDSUFFQTBnQUJBTklBQVFDVUVDZEdvUVlEWUNPQXdXQ3lBSFFUaHFJQUlnQkNBSVFRSVFXQ0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJBRXh5SUFCQkgwcHlSUVJBSUFVZ0FEWUNEQXdCQ3lBRUlBRkJCSEkyQWdBTERCVUxJQWRCdU5FQUtRTUFOd01ZSUFkQnNORUFLUU1BTndNUUlBZEJxTkVBS1FNQU53TUlJQWRCb05FQUtRTUFOd01BSUFjZ0FDQUJJQUlnQXlBRUlBVWdCeUFIUVNCcUVHQTJBamdNRkFzZ0IwSFkwUUFwQXdBM0F4Z2dCMEhRMFFBcEF3QTNBeEFnQjBISTBRQXBBd0EzQXdnZ0IwSEEwUUFwQXdBM0F3QWdCeUFBSUFFZ0FpQURJQVFnQlNBSElBZEJJR29RWURZQ09Bd1RDeUFIUVRocUlBSWdCQ0FJUVFJUVdDRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQkYwcHlSUVJBSUFVZ0FEWUNDQXdCQ3lBRUlBRkJCSEkyQWdBTERCSUxJQWRCT0dvZ0FpQUVJQWhCQWhCWUlRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFQVRISWdBRUVNU25KRkJFQWdCU0FBTmdJSURBRUxJQVFnQVVFRWNqWUNBQXNNRVFzZ0IwRTRhaUFDSUFRZ0NFRURFRmdoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRZTBDU25KRkJFQWdCU0FBTmdJY0RBRUxJQVFnQVVFRWNqWUNBQXNNRUFzZ0IwRTRhaUFDSUFRZ0NFRUNFRmdoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRUXhLY2tVRVFDQUZJQUJCQVdzMkFoQU1BUXNnQkNBQlFRUnlOZ0lBQ3d3UEN5QUhRVGhxSUFJZ0JDQUlRUUlRV0NFQUFrQWdCQ2dDQUNJQlFRUnhJQUJCTzBweVJRUkFJQVVnQURZQ0JBd0JDeUFFSUFGQkJISTJBZ0FMREE0TElBZEJPR29oQUNNQVFSQnJJZ0VrQUNBQklBSTJBZ2dEUUFKQUlBQWdBVUVJYWhBMlJRMEFJQWhCZ01BQUlBQVFJUkJPUlEwQUlBQVFKUm9NQVFzTElBQWdBVUVJYWhBb0JFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQlFSQnFKQUFNRFFzZ0IwRTRhaUVCQWtBZ0FFRUlhaUFBS0FJSUtBSUlFUUFBSWdBUUNVRUFJQUJCREdvUUNXdEdCRUFnQkNBRUtBSUFRUVJ5TmdJQURBRUxJQUVnQWlBQUlBQkJHR29nQ0NBRVFRQVFzZ0VnQUdzaUFTQUZLQUlJSWdCQkRFZHlSUVJBSUFWQkFEWUNDQXdCQ3lBQlFReEhJQUJCQzBweVJRUkFJQVVnQUVFTWFqWUNDQXNMREF3TElBZEI0TkVBUVN3UVFpSUdJQUFnQVNBQ0lBTWdCQ0FGSUFZZ0JrRXNhaEJnTmdJNERBc0xJQWRCb05JQUtBSUFOZ0lRSUFkQm1OSUFLUU1BTndNSUlBZEJrTklBS1FNQU53TUFJQWNnQUNBQklBSWdBeUFFSUFVZ0J5QUhRUlJxRUdBMkFqZ01DZ3NnQjBFNGFpQUNJQVFnQ0VFQ0VGZ2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFUeEtja1VFUUNBRklBQTJBZ0FNQVFzZ0JDQUJRUVJ5TmdJQUN3d0pDeUFIUWNqU0FDa0RBRGNER0NBSFFjRFNBQ2tEQURjREVDQUhRYmpTQUNrREFEY0RDQ0FIUWJEU0FDa0RBRGNEQUNBSElBQWdBU0FDSUFNZ0JDQUZJQWNnQjBFZ2FoQmdOZ0k0REFnTElBZEJPR29nQWlBRUlBaEJBUkJZSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUVHU25KRkJFQWdCU0FBTmdJWURBRUxJQVFnQVVFRWNqWUNBQXNNQndzZ0FDQUJJQUlnQXlBRUlBVWdBQ2dDQUNnQ0ZCRUZBQXdIQ3lBSElBQWdBU0FDSUFNZ0JDQUZJQUJCQ0dvZ0FDZ0NDQ2dDR0JFQUFDSUFFQTBnQUJBTklBQVFDVUVDZEdvUVlEWUNPQXdGQ3lBRlFSUnFJQWRCT0dvZ0FpQUVJQWdRc3dJTUJBc2dCMEU0YWlBQ0lBUWdDRUVFRUZnaEFDQUVMUUFBUVFSeFJRUkFJQVVnQUVIc0RtczJBaFFMREFNTElBWkJKVVlOQVFzZ0JDQUVLQUlBUVFSeU5nSUFEQUVMSXdCQkVHc2lBQ1FBSUFBZ0FqWUNDRUVHSVFFQ1FBSkFJQWRCT0dvaUFpQUFRUWhxRUNnTkFFRUVJUUVnQ0NBQ0VDRVFod0ZCSlVjTkFFRUNJUUVnQWhBbElBQkJDR29RS0VVTkFRc2dCQ0FFS0FJQUlBRnlOZ0lBQ3lBQVFSQnFKQUFMSUFjb0FqZ0xJUUFnQjBGQWF5UUFJQUFMUndFQmZ5TUFRUkJySWdZa0FDQUdJQUUyQWdnZ0JpQURFQThnQmhBN0lRRWdCaEFPSUFWQkZHb2dCa0VJYWlBQ0lBUWdBUkN6QWlBR0tBSUlJUUFnQmtFUWFpUUFJQUFMU1FFQmZ5TUFRUkJySWdZa0FDQUdJQUUyQWdnZ0JpQURFQThnQmhBN0lRRWdCaEFPSUFBZ0JVRVFhaUFHUVFocUlBSWdCQ0FCRUxRQ0lBWW9BZ2doQUNBR1FSQnFKQUFnQUF0SkFRRi9Jd0JCRUdzaUJpUUFJQVlnQVRZQ0NDQUdJQU1RRHlBR0VEc2hBU0FHRUE0Z0FDQUZRUmhxSUFaQkNHb2dBaUFFSUFFUXRRSWdCaWdDQ0NFQUlBWkJFR29rQUNBQUN6QUFJQUFnQVNBQ0lBTWdCQ0FGSUFCQkNHb2dBQ2dDQ0NnQ0ZCRUFBQ0lBRUEwZ0FCQU5JQUFRQ1VFQ2RHb1FZQXRjQVFGL0l3QkJJR3NpQmlRQUlBWkJ5TklBS1FNQU53TVlJQVpCd05JQUtRTUFOd01RSUFaQnVOSUFLUU1BTndNSUlBWkJzTklBS1FNQU53TUFJQUFnQVNBQ0lBTWdCQ0FGSUFZZ0JrRWdhaUlCRUdBaEFDQUJKQUFnQUF0TUFRRi9RY1NCQVVIQWdRRWdBaHNnQVRZQ0FDQUJRUUJLQkVCQm9JRUJRWUNCQVNBQ0d5RURRUUFoQWdOQUlBSWdBMm9nQUNBQ2FpMEFBRG9BQUNBQ1FRRnFJZ0lnQVVjTkFBc0xDNUFNQVFKL0l3QkJJR3NpQnlRQUlBY2dBVFlDR0NBRVFRQTJBZ0FnQjBFSWFpSUpJQU1RRHlBSkVESWhDQ0FKRUE0Q2Z3SkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0JrSEJBR3NPT1FBQkZ3UVhCUmNHQnhjWEZ3b1hGeGNYRGc4UUZ4Y1hFeFVYRnhjWEZ4Y1hBQUVDQXdNWEZ3RVhDQmNYQ1FzWERCY05Gd3NYRnhFU0ZCWUxJQUFnQlVFWWFpQUhRUmhxSUFJZ0JDQUlFTGdDREJnTElBQWdCVUVRYWlBSFFSaHFJQUlnQkNBSUVMY0NEQmNMSUFjZ0FDQUJJQUlnQXlBRUlBVWdBRUVJYWlBQUtBSUlLQUlNRVFBQUlnQVFEU0FBRUEwZ0FCQUphaEJoTmdJWURCWUxJQWRCR0dvZ0FpQUVJQWhCQWhCWklRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFQVRISWdBRUVmU25KRkJFQWdCU0FBTmdJTURBRUxJQVFnQVVFRWNqWUNBQXNNRlFzZ0IwS2wycjJwd3V6TGt2a0FOd01JSUFjZ0FDQUJJQUlnQXlBRUlBVWdCMEVJYWlBSFFSQnFFR0UyQWhnTUZBc2dCMEtsc3JXcDBxM0xrdVFBTndNSUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQjBFSWFpQUhRUkJxRUdFMkFoZ01Fd3NnQjBFWWFpQUNJQVFnQ0VFQ0VGa2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFSZEtja1VFUUNBRklBQTJBZ2dNQVFzZ0JDQUJRUVJ5TmdJQUN3d1NDeUFIUVJocUlBSWdCQ0FJUVFJUVdTRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQkFFeHlJQUJCREVweVJRUkFJQVVnQURZQ0NBd0JDeUFFSUFGQkJISTJBZ0FMREJFTElBZEJHR29nQWlBRUlBaEJBeEJaSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUh0QWtweVJRUkFJQVVnQURZQ0hBd0JDeUFFSUFGQkJISTJBZ0FMREJBTElBZEJHR29nQWlBRUlBaEJBaEJaSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUVNU25KRkJFQWdCU0FBUVFGck5nSVFEQUVMSUFRZ0FVRUVjallDQUFzTUR3c2dCMEVZYWlBQ0lBUWdDRUVDRUZraEFBSkFJQVFvQWdBaUFVRUVjU0FBUVR0S2NrVUVRQ0FGSUFBMkFnUU1BUXNnQkNBQlFRUnlOZ0lBQ3d3T0N5QUhRUmhxSVFBakFFRVFheUlCSkFBZ0FTQUNOZ0lJQTBBQ1FDQUFJQUZCQ0dvUU1VVU5BQ0FJUVlEQUFDQUFFQjhRUkVVTkFDQUFFQ0lhREFFTEN5QUFJQUZCQ0dvUUpnUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FVRVFhaVFBREEwTElBZEJHR29oQVFKQUlBQkJDR29nQUNnQ0NDZ0NDQkVBQUNJQUVBbEJBQ0FBUVF4cUVBbHJSZ1JBSUFRZ0JDZ0NBRUVFY2pZQ0FBd0JDeUFCSUFJZ0FDQUFRUmhxSUFnZ0JFRUFFTFFCSUFCcklnRWdCU2dDQ0NJQVFReEhja1VFUUNBRlFRQTJBZ2dNQVFzZ0FVRU1SeUFBUVF0S2NrVUVRQ0FGSUFCQkRHbzJBZ2dMQ3d3TUN5QUhRWlRSQUNnQUFEWUFEeUFIUVkzUkFDa0FBRGNEQ0NBSElBQWdBU0FDSUFNZ0JDQUZJQWRCQ0dvZ0IwRVRhaEJoTmdJWURBc0xJQWRCbk5FQUxRQUFPZ0FNSUFkQm1ORUFLQUFBTmdJSUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQjBFSWFpQUhRUTFxRUdFMkFoZ01DZ3NnQjBFWWFpQUNJQVFnQ0VFQ0VGa2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFUeEtja1VFUUNBRklBQTJBZ0FNQVFzZ0JDQUJRUVJ5TmdJQUN3d0pDeUFIUXFXUTZhblN5YzZTMHdBM0F3Z2dCeUFBSUFFZ0FpQURJQVFnQlNBSFFRaHFJQWRCRUdvUVlUWUNHQXdJQ3lBSFFSaHFJQUlnQkNBSVFRRVFXU0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJCa3B5UlFSQUlBVWdBRFlDR0F3QkN5QUVJQUZCQkhJMkFnQUxEQWNMSUFBZ0FTQUNJQU1nQkNBRklBQW9BZ0FvQWhRUkJRQU1Cd3NnQnlBQUlBRWdBaUFESUFRZ0JTQUFRUWhxSUFBb0FnZ29BaGdSQUFBaUFCQU5JQUFRRFNBQUVBbHFFR0UyQWhnTUJRc2dCVUVVYWlBSFFSaHFJQUlnQkNBSUVMWUNEQVFMSUFkQkdHb2dBaUFFSUFoQkJCQlpJUUFnQkMwQUFFRUVjVVVFUUNBRklBQkI3QTVyTmdJVUN3d0RDeUFHUVNWR0RRRUxJQVFnQkNnQ0FFRUVjallDQUF3QkN5TUFRUkJySWdBa0FDQUFJQUkyQWdoQkJpRUJBa0FDUUNBSFFSaHFJZ0lnQUVFSWFoQW1EUUJCQkNFQklBZ2dBaEFmRUlnQlFTVkhEUUJCQWlFQklBSVFJaUFBUVFocUVDWkZEUUVMSUFRZ0JDZ0NBQ0FCY2pZQ0FBc2dBRUVRYWlRQUN5QUhLQUlZQ3lFQUlBZEJJR29rQUNBQUMwY0JBWDhqQUVFUWF5SUdKQUFnQmlBQk5nSUlJQVlnQXhBUElBWVFNaUVCSUFZUURpQUZRUlJxSUFaQkNHb2dBaUFFSUFFUXRnSWdCaWdDQ0NFQUlBWkJFR29rQUNBQUMwa0JBWDhqQUVFUWF5SUdKQUFnQmlBQk5nSUlJQVlnQXhBUElBWVFNaUVCSUFZUURpQUFJQVZCRUdvZ0JrRUlhaUFDSUFRZ0FSQzNBaUFHS0FJSUlRQWdCa0VRYWlRQUlBQUxTUUVCZnlNQVFSQnJJZ1lrQUNBR0lBRTJBZ2dnQmlBREVBOGdCaEF5SVFFZ0JoQU9JQUFnQlVFWWFpQUdRUWhxSUFJZ0JDQUJFTGdDSUFZb0FnZ2hBQ0FHUVJCcUpBQWdBQXN0QUNBQUlBRWdBaUFESUFRZ0JTQUFRUWhxSUFBb0FnZ29BaFFSQUFBaUFCQU5JQUFRRFNBQUVBbHFFR0VMUHdFQmZ5TUFRUkJySWdZa0FDQUdRcVdRNmFuU3ljNlMwd0EzQXdnZ0FDQUJJQUlnQXlBRUlBVWdCa0VJYWlBR1FSQnFJZ0VRWVNFQUlBRWtBQ0FBQzY0QkFRVi9Jd0JCMEFGcklnQWtBQ0FBUVl2UkFDOEFBRHNCekFFZ0FFR0gwUUFvQUFBMkFzZ0JFQlloQmlBQUlBUTJBZ0FnQUVHd0FXb2lCeUFISUFkQkZDQUdJQUJCeUFGcUlBQVFMQ0lJYWlJRUlBSVFQeUVHSUFCQkVHb2lCU0FDRUE4Z0JSQTdJUWtnQlJBT0lBa2dCeUFFSUFVUVl5QUJJQVVnQ0VFQ2RDQUZhaUlCSUFZZ0FHdEJBblFnQUdwQnNBVnJJQVFnQmtZYklBRWdBaUFERUdJaEFTQUFRZEFCYWlRQUlBRUxnQVFCQjM4akFFR3dBMnNpQUNRQUlBQkNKVGNEcUFNZ0FFR29BMnBCQVhKQmp4NGdBaWdDQkJDdkFTRUlJQUFnQUVHQUEybzJBdndDRUJZaEJnSi9JQWdFUUNBQ0tBSUlJUWNnQUVGQWF5QUZOd01BSUFBZ0JEY0RPQ0FBSUFjMkFqQWdBRUdBQTJwQkhpQUdJQUJCcUFOcUlBQkJNR29RTEF3QkN5QUFJQVEzQTFBZ0FDQUZOd05ZSUFCQmdBTnFRUjRnQmlBQVFhZ0RhaUFBUWRBQWFoQXNDeUVHSUFCQk5UWUNnQUVnQUVId0FtcEJBQ0FBUVlBQmFoQWVJUWtnQUVHQUEyb2lDaUVIQWtBZ0JrRWVUZ1JBRUJZaEJnSi9JQWdFUUNBQ0tBSUlJUWNnQUNBRk53TVFJQUFnQkRjRENDQUFJQWMyQWdBZ0FFSDhBbW9nQmlBQVFhZ0RhaUFBRUZvTUFRc2dBQ0FFTndNZ0lBQWdCVGNES0NBQVFmd0NhaUFHSUFCQnFBTnFJQUJCSUdvUVdnc2lCa0YvUmcwQklBa2dBQ2dDL0FJUUp5QUFLQUw4QWlFSEN5QUhJQVlnQjJvaUN5QUNFRDhoRENBQVFUVTJBb0FCSUFCQitBQnFRUUFnQUVHQUFXb1FIaUVIQWtBZ0FDZ0MvQUlnQUVHQUEycEdCRUFnQUVHQUFXb2hCZ3dCQ3lBR1FRTjBFQmtpQmtVTkFTQUhJQVlRSnlBQUtBTDhBaUVLQ3lBQVFlZ0FhaUlJSUFJUUR5QUtJQXdnQ3lBR0lBQkI5QUJxSUFCQjhBQnFJQWdRdWdJZ0NCQU9JQUVnQmlBQUtBSjBJQUFvQW5BZ0FpQURFR0loQVNBSEVCMGdDUkFkSUFCQnNBTnFKQUFnQVE4TEVCY0FDOXdEQVFkL0l3QkJnQU5ySWdBa0FDQUFRaVUzQS9nQ0lBQkIrQUpxUVFGeVFhUWZJQUlvQWdRUXJ3RWhCeUFBSUFCQjBBSnFOZ0xNQWhBV0lRVUNmeUFIQkVBZ0FpZ0NDQ0VHSUFBZ0JEa0RLQ0FBSUFZMkFpQWdBRUhRQW1wQkhpQUZJQUJCK0FKcUlBQkJJR29RTEF3QkN5QUFJQVE1QXpBZ0FFSFFBbXBCSGlBRklBQkIrQUpxSUFCQk1Hb1FMQXNoQlNBQVFUVTJBbEFnQUVIQUFtcEJBQ0FBUWRBQWFoQWVJUWdnQUVIUUFtb2lDU0VHQWtBZ0JVRWVUZ1JBRUJZaEJRSi9JQWNFUUNBQ0tBSUlJUVlnQUNBRU9RTUlJQUFnQmpZQ0FDQUFRY3dDYWlBRklBQkIrQUpxSUFBUVdnd0JDeUFBSUFRNUF4QWdBRUhNQW1vZ0JTQUFRZmdDYWlBQVFSQnFFRm9MSWdWQmYwWU5BU0FJSUFBb0Fzd0NFQ2NnQUNnQ3pBSWhCZ3NnQmlBRklBWnFJZ29nQWhBL0lRc2dBRUUxTmdKUUlBQkJ5QUJxUVFBZ0FFSFFBR29RSGlFR0FrQWdBQ2dDekFJZ0FFSFFBbXBHQkVBZ0FFSFFBR29oQlF3QkN5QUZRUU4wRUJraUJVVU5BU0FHSUFVUUp5QUFLQUxNQWlFSkN5QUFRVGhxSWdjZ0FoQVBJQWtnQ3lBS0lBVWdBRUhFQUdvZ0FFRkFheUFIRUxvQ0lBY1FEaUFCSUFVZ0FDZ0NSQ0FBS0FKQUlBSWdBeEJpSVFFZ0JoQWRJQWdRSFNBQVFZQURhaVFBSUFFUEN4QVhBQXVpQVFFRWZ5TUFRWUFDYXlJQUpBQWdBRUlsTndQNEFTQUFRZmdCYWlJR1FRRnlRZE1jUVFBZ0FpZ0NCQkJ0RUJZaEJ5QUFJQVEzQXdBZ0FFSGdBV29pQlNBRlFSZ2dCeUFHSUFBUUxDQUZhaUlISUFJUVB5RUlJQUJCRUdvaUJpQUNFQThnQlNBSUlBY2dBRUVnYWlJRklBQkJIR29nQUVFWWFpQUdFSzRCSUFZUURpQUJJQVVnQUNnQ0hDQUFLQUlZSUFJZ0F4QmlJUUVnQUVHQUFtb2tBQ0FCQzdRQkFRTi9Jd0JCb0FGcklnQWtBQ0FBUVlYUkFDOEFBRHNCbkFFZ0FFR0IwUUFvQUFBMkFwZ0JJQUJCbUFGcUlnVkJBWEpCMmh4QkFDQUNLQUlFRUcwUUZpRUdJQUFnQkRZQ0FDQUFRWXNCYWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRcmdFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFR0loQVNBQVFhQUJhaVFBSUFFTG9nRUJCSDhqQUVHQUFtc2lBQ1FBSUFCQ0pUY0QrQUVnQUVINEFXb2lCa0VCY2tIVEhFRUJJQUlvQWdRUWJSQVdJUWNnQUNBRU53TUFJQUJCNEFGcUlnVWdCVUVZSUFjZ0JpQUFFQ3dnQldvaUJ5QUNFRDhoQ0NBQVFSQnFJZ1lnQWhBUElBVWdDQ0FISUFCQklHb2lCU0FBUVJ4cUlBQkJHR29nQmhDdUFTQUdFQTRnQVNBRklBQW9BaHdnQUNnQ0dDQUNJQU1RWWlFQklBQkJnQUpxSkFBZ0FRc1dBRUdnZ1FGQnhJRUJLQUlBSUFJZ0FDQUJFT1lCQzdRQkFRTi9Jd0JCb0FGcklnQWtBQ0FBUVlYUkFDOEFBRHNCbkFFZ0FFR0IwUUFvQUFBMkFwZ0JJQUJCbUFGcUlnVkJBWEpCMmh4QkFTQUNLQUlFRUcwUUZpRUdJQUFnQkRZQ0FDQUFRWXNCYWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRcmdFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFR0loQVNBQVFhQUJhaVFBSUFFTHpRRUJBWDhqQUVFd2F5SUZKQUFnQlNBQk5nSW9Ba0FnQWlnQ0JFRUJjVVVFUUNBQUlBRWdBaUFESUFRZ0FDZ0NBQ2dDR0JFR0FDRUNEQUVMSUFWQkdHb2lBQ0FDRUE4Z0FCQ01BU0VCSUFBUURnSkFJQVFFUUNBRlFSaHFJQUVRU3d3QkN5QUZRUmhxSUFFUVNnc2dCU0FGUVJocUVFQTJBaEFEUUNBRklBVkJHR29RYkRZQ0NDQUZRUkJxSUFWQkNHb1FXd1JBSUFWQktHb2dCVUVRYWlJQUtBSUFLQUlBRVBjQ0lBQVFsUUVNQVFVZ0JTZ0NLQ0VDSUFWQkdHb1FDaG9MQ3dzZ0JVRXdhaVFBSUFJTHBBRUJCWDhqQUVIZ0FHc2lBQ1FBSUFCQmk5RUFMd0FBT3dGY0lBQkJoOUVBS0FBQU5nSllFQlloQmlBQUlBUTJBZ0FnQUVGQWF5SUhJQWNnQjBFVUlBWWdBRUhZQUdvZ0FCQXNJZ2hxSWdRZ0FoQS9JUVlnQUVFUWFpSUZJQUlRRHlBRkVESWhDU0FGRUE0Z0NTQUhJQVFnQlJCdklBRWdCU0FGSUFocUlnRWdCaUFBYXlBQWFrRXdheUFFSUFaR0d5QUJJQUlnQXhCV0lRRWdBRUhnQUdva0FDQUJDNEFFQVFkL0l3QkJnQUpySWdBa0FDQUFRaVUzQS9nQklBQkIrQUZxUVFGeVFZOGVJQUlvQWdRUXJ3RWhDQ0FBSUFCQjBBRnFOZ0xNQVJBV0lRWUNmeUFJQkVBZ0FpZ0NDQ0VISUFCQlFHc2dCVGNEQUNBQUlBUTNBemdnQUNBSE5nSXdJQUJCMEFGcVFSNGdCaUFBUWZnQmFpQUFRVEJxRUN3TUFRc2dBQ0FFTndOUUlBQWdCVGNEV0NBQVFkQUJha0VlSUFZZ0FFSDRBV29nQUVIUUFHb1FMQXNoQmlBQVFUVTJBb0FCSUFCQndBRnFRUUFnQUVHQUFXb1FIaUVKSUFCQjBBRnFJZ29oQndKQUlBWkJIazRFUUJBV0lRWUNmeUFJQkVBZ0FpZ0NDQ0VISUFBZ0JUY0RFQ0FBSUFRM0F3Z2dBQ0FITmdJQUlBQkJ6QUZxSUFZZ0FFSDRBV29nQUJCYURBRUxJQUFnQkRjRElDQUFJQVUzQXlnZ0FFSE1BV29nQmlBQVFmZ0JhaUFBUVNCcUVGb0xJZ1pCZjBZTkFTQUpJQUFvQXN3QkVDY2dBQ2dDekFFaEJ3c2dCeUFHSUFkcUlnc2dBaEEvSVF3Z0FFRTFOZ0tBQVNBQVFmZ0Fha0VBSUFCQmdBRnFFQjRoQndKQUlBQW9Bc3dCSUFCQjBBRnFSZ1JBSUFCQmdBRnFJUVlNQVFzZ0JrRUJkQkFaSWdaRkRRRWdCeUFHRUNjZ0FDZ0N6QUVoQ2dzZ0FFSG9BR29pQ0NBQ0VBOGdDaUFNSUFzZ0JpQUFRZlFBYWlBQVFmQUFhaUFJRUx3Q0lBZ1FEaUFCSUFZZ0FDZ0NkQ0FBS0FKd0lBSWdBeEJXSVFFZ0J4QWRJQWtRSFNBQVFZQUNhaVFBSUFFUEN4QVhBQXZjQXdFSGZ5TUFRZEFCYXlJQUpBQWdBRUlsTndQSUFTQUFRY2dCYWtFQmNrR2tIeUFDS0FJRUVLOEJJUWNnQUNBQVFhQUJhallDbkFFUUZpRUZBbjhnQndSQUlBSW9BZ2doQmlBQUlBUTVBeWdnQUNBR05nSWdJQUJCb0FGcVFSNGdCU0FBUWNnQmFpQUFRU0JxRUN3TUFRc2dBQ0FFT1FNd0lBQkJvQUZxUVI0Z0JTQUFRY2dCYWlBQVFUQnFFQ3dMSVFVZ0FFRTFOZ0pRSUFCQmtBRnFRUUFnQUVIUUFHb1FIaUVJSUFCQm9BRnFJZ2toQmdKQUlBVkJIazRFUUJBV0lRVUNmeUFIQkVBZ0FpZ0NDQ0VHSUFBZ0JEa0RDQ0FBSUFZMkFnQWdBRUdjQVdvZ0JTQUFRY2dCYWlBQUVGb01BUXNnQUNBRU9RTVFJQUJCbkFGcUlBVWdBRUhJQVdvZ0FFRVFhaEJhQ3lJRlFYOUdEUUVnQ0NBQUtBS2NBUkFuSUFBb0Fwd0JJUVlMSUFZZ0JTQUdhaUlLSUFJUVB5RUxJQUJCTlRZQ1VDQUFRY2dBYWtFQUlBQkIwQUJxRUI0aEJnSkFJQUFvQXB3QklBQkJvQUZxUmdSQUlBQkIwQUJxSVFVTUFRc2dCVUVCZEJBWklnVkZEUUVnQmlBRkVDY2dBQ2dDbkFFaENRc2dBRUU0YWlJSElBSVFEeUFKSUFzZ0NpQUZJQUJCeEFCcUlBQkJRR3NnQnhDOEFpQUhFQTRnQVNBRklBQW9Ba1FnQUNnQ1FDQUNJQU1RVmlFQklBWVFIU0FJRUIwZ0FFSFFBV29rQUNBQkR3c1FGd0FMb1FFQkJIOGpBRUh3QUdzaUFDUUFJQUJDSlRjRGFDQUFRZWdBYWlJR1FRRnlRZE1jUVFBZ0FpZ0NCQkJ0RUJZaEJ5QUFJQVEzQXdBZ0FFSFFBR29pQlNBRlFSZ2dCeUFHSUFBUUxDQUZhaUlISUFJUVB5RUlJQUJCRUdvaUJpQUNFQThnQlNBSUlBY2dBRUVnYWlJRklBQkJIR29nQUVFWWFpQUdFTEFCSUFZUURpQUJJQVVnQUNnQ0hDQUFLQUlZSUFJZ0F4QldJUUVnQUVId0FHb2tBQ0FCQzdFQkFRTi9Jd0JCMEFCcklnQWtBQ0FBUVlYUkFDOEFBRHNCVENBQVFZSFJBQ2dBQURZQ1NDQUFRY2dBYWlJRlFRRnlRZG9jUVFBZ0FpZ0NCQkJ0RUJZaEJpQUFJQVEyQWdBZ0FFRTdhaUlFSUFSQkRTQUdJQVVnQUJBc0lBUnFJZ1lnQWhBL0lRY2dBRUVRYWlJRklBSVFEeUFFSUFjZ0JpQUFRU0JxSWdRZ0FFRWNhaUFBUVJocUlBVVFzQUVnQlJBT0lBRWdCQ0FBS0FJY0lBQW9BaGdnQWlBREVGWWhBU0FBUWRBQWFpUUFJQUVMb1FFQkJIOGpBRUh3QUdzaUFDUUFJQUJDSlRjRGFDQUFRZWdBYWlJR1FRRnlRZE1jUVFFZ0FpZ0NCQkJ0RUJZaEJ5QUFJQVEzQXdBZ0FFSFFBR29pQlNBRlFSZ2dCeUFHSUFBUUxDQUZhaUlISUFJUVB5RUlJQUJCRUdvaUJpQUNFQThnQlNBSUlBY2dBRUVnYWlJRklBQkJIR29nQUVFWWFpQUdFTEFCSUFZUURpQUJJQVVnQUNnQ0hDQUFLQUlZSUFJZ0F4QldJUUVnQUVId0FHb2tBQ0FCQyswUkFRNS9Jd0JCd0FKcklnWWtBQ0FHSUFFZ0FrRUJFTm9DTmdLVUFpQUdJQVlvQXBRQ0VKSUJOZ0tZQWtHaitJYXJmMEdjbE1MbGZTQUVHeUVPSUFCRklROUJzWmZYdW5vaEFRTkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFFaUFFSHd1dDdlQVV3RVFDQUFRY2l5dGRKN1RBUkFJQUJCeHN1cmlIcE1CRUFnQUVIdDVMR2plRVlOQ3lBQVFZeUdwN3g1UmcwS0lBQkJsOHpnOVhsSERSSWdCaWdDdEFKQmdJRUJhaUFHTFFDZkFqb0FBRUdYck13cElRRU1FZ3NnQUVHeGw5ZTZla1lOQWlBQVFleVpwdUo2UmcwTElBQkJ4OHVyaUhwSERSRWdCa0hBQW1va0FBOExJQUJCOUxlMTRuNU1CRUFnQUVISnNyWFNlMFlOQkNBQVFaeVV3dVY5UmcwR0lBQkJqUHlyeEg1SERSRU1FQXNnQUVIMXQ3WGlma1lOQkNBQVFhUDRocXQvUmcwR0lBQkJsNnpNS1VjTkVDQUdLQUswQWtFQmFpRU5RWVMxNDhVSElRRU1FQXNnQUVHdTA4ekRCVXdFUUNBQVFmVEh2dGdDVEFSQUlBNGhBU0FBUWZHNjN0NEJSZzBSSUFBaEFTQUFRZVAycnA0Q1J3MFJJQVpCb0FGcUVBb2FJQVlvQXFBQ0dnd1FDeUFBUWZYSHZ0Z0NSZzBNSUFCQjBPRFZod05HRFFjZ0FFSGszZk8zQkVjTkVDQUdLQUswQWtHZ2dRRnFJQVl0QUo4Q09nQUFRWmVzekNraEFRd1FDeUFBUWR5QWhMTUdUQVJBSUFCQnI5UE13d1ZHRFFzZ0FFRzAyNUhNQlVZTkRpQUFRWlhnK040RlJ3MFFRY1NCQVNBRE5nSUFRZkc2M3Q0QklRRU1FQXNnQUVIZGdJU3pCa1lORENBQVFkWGZ3Zk1HUmcwQklBQkJoTFhqeFFkSERROGdCaUFOTmdLMEFrR01ocWU4ZVVHTS9LdkVmaUFHS0FLMEFpQURTQnNoQVF3UEMwRUFJUWNnQmlBRVFRQktPZ0NkQWtIVjM4SHpCa0hKc3JYU2V5QUdMUUNkQWtFQmNSc2hBU0FHS0FLVUFpRUtEQTRMSUFaQmlBSnFJQVlvQXBRQ0VGUWlFQ0VLUVFBaENFRUFJUWtqQUVFUWF5SUJKQUFnQ2hBSklRc2pBRUVRYXlJSEpBQWdCa0g0QVdvaUFFSUFOd0lBSUFkQkFEWUNEQ0FBUVFocUlBZEJER29RelFFZ0IwRVFhaVFBQWtBZ0MwVU5BQU5BQWtBZ0NpQUpFQXN0QUFCQlBVWU5BQ0FLSUFrUUN5MEFBQ0lIUVN0R0lBZEJJSEpCNFFCclFScEpCSDlCQVFVZ0J4QkZRUUJIQzBFQVIzSWdCMEV2Um5KRkRRQWdDMEVCYXlFTElBRkJER29nQ0dvZ0NpQUpFQXN0QUFBNkFBQkJBQ0VISUFoQkFXb2lDRUVFUmdSQUEwQWdBVUVNYWlBSGFpSUlJQWdzQUFBUTlRRTZBQUFnQjBFQmFpSUhRUVJIRFFBTElBRWdBUzBBRHlBQkxRQU9JZ2RCQm5ScU9nQUxJQUVnQVMwQURTSUlRUVIyUVFOeElBRXRBQXhCQW5SeU9nQUpJQUVnQjBFQ2RrRVBjU0FJUVFSMGNqb0FDa0VBSVFoQkFDRUhBMEFnQUNBQlFRbHFJQWRxRVBRQ0lBZEJBV29pQjBFRFJ3MEFDd3NnQ1VFQmFpRUpJQXNOQVFzTElBaEZEUUFnQ0VFRFRBUkFJQUZCREdvZ0NHcEJBRUVFSUFockVFWWFDMEVBSVFjRFFDQUJRUXhxSUFkcUlna2dDU3dBQUJEMUFUb0FBQ0FIUVFGcUlnZEJCRWNOQUFzZ0FTQUJMUUFQSUFFdEFBNGlCMEVHZEdvNkFBc2dBU0FCTFFBTklnbEJCSFpCQTNFZ0FTMEFERUVDZEhJNkFBa2dBU0FIUVFKMlFROXhJQWxCQkhSeU9nQUtJQWhCQWtnTkFDQUlRUUZySVFoQkFDRUhBMEFnQUNBQlFRbHFJQWRxRVBRQ0lBZEJBV29pQnlBSVJ3MEFDd3NnQVVFUWFpUUFJQUFRaVFFaEVTQUFLQUlBSVF3Z0JrR3RIeWdBQURZQzhBRWdCa0dsSHlrQUFEY0Q2QUVnQmtJQU53UFlBU0FHUWdBM0E5QUJJQVpDQURjRHlBRWdCa0lBTndQQUFTQUdRZ0EzQTdnQklBWkNBRGNEc0FFZ0FCQ0pBU0VMSUFaQnNBRnFJUW9qQUVFd2F5SUJKQUFnQVVFZ2FpRUlJQVVnQkJDK0FpSUhCRUFnQ0VJQU53QUFJQWhDQURjQUNDQUhJQWdnQ0JDbkFRc2dCa0cvQW1vaEVpQUdRZEFCYWlFVElBY0VmeU1BUVJCcklna2tBQ0FCUVJCcUlnZ2dCaWtBNkFFM0FBQWdDQ0FHS0FEd0FUWUFDQ0FJUVlDQWdBZzJBQXdnQ1VFUWFpUUFJd0JCRUdzaUNTUUFJQXNFUUNBSklBZ3BBQUEzQXdBZ0NTQUlLUUFJTndNSUlBa1E2d0VnQnlBSklBd2dDeUFLRUlVQ0N5QUpRUkJxSkFBakFFRVFheUlKSkFBZ0FVSUFOd0FBSUFGQ0FEY0FDQ0FCUVNCcUlnd2dFa0VBSUFFUXZ3RWdEQ0FLSUFzZ0FSQy9BU0FKUWdBUTdRRWdDVUVJY2lBTFFRTjByUkR0QVNBTUlBbEJFQ0FCRUw4QklBbEJFR29rQUNBSElBZ2dBVUVRSUJNUWhRSWdCeEFRUVFBRlFYOExHaUFCUVRCcUpBQWdBQkR0QWlBQUtBSUFCRUFnQUNnQ0JDSUJJQUFvQWdBaUIwY0VRQU5BSUFBUVF4b2dCeUFCUVFGcklnRkhEUUFMQ3lBQUlBYzJBZ1FnQUJCREdpQUFLQUlBSVFFZ0FCQ0ZBUm9nQVJBUUN5QVFFQW9hUVNCQkVDQVJRVEJHR3lFSFFjbXl0ZEo3SVFFTURRc2dCaUFQT2dDZUFpQUdJQWMyQXJBQ0lBWWdDallDckFKQjliZTE0bjVCbGVENDNnVWdCaTBBbmdKQkFYRWJJUUVNREF0QndJRUJJQU0yQWdCQjhicmUzZ0VoQVF3TEMwSFE0TldIQTBHaitJYXJmeUFHS0FLWUFpQURSaHNoQVF3S0MwSFE0TldIQTBIdDVMR2plQ0FHS0FLd0FrRVFSaHRCN2VTeG8zZ2dCaTBBblFKQkFYRWJJUUVNQ1F0QmhMWGp4UWNoQVVFQUlRME1DQXNnQmlBR0tBS3NBaUFHS0FLMEFtb3RBQUE2QUo4Q0lBWXRBSjhDR2tHWHpPRDFlVUhrM2ZPM0JDQUdMUUNlQWtFQmNSc2hBUXdIQ3lBR0lBWkJvQUZxSWdBMkFxQUNJQVlvQXFBQ0dpQUFJQVlvQXF3Q0VGUWFRZXlacHVKNklRRkJBQ0VDREFZTElBWWdBallDdUFKQnI5UE13d1ZCNC9hdW5nSWdCaWdDdUFJZ0EwZ2JJUUVNQlFzZ0JpQUdRUkJxSWdBMkFxUUNJQVlvQXFRQ0dpQUFFTXdDR2lBR0lBWkJER29pQ0RZQ3FBSWdCaWdDcUFJYUlBWW9BcVFDUVFocUVNSUNJUWtnQmtHd0FXb2lBU0FHUWFBQmFpQUdLQUs0QWtFQmRCREFBaUFKSUFFUXZRSWdBUkFLR2lBQUlBZ1EvUUpCOWNlKzJBSkIzWUNFc3dZZ0JpMEFuZ0pCQVhFYklRRU1CQXNnQmlnQ3VBSkJnSUVCYWlBR0tBSU1PZ0FBUWJUYmtjd0ZJUUVNQXdzZ0JpZ0N1QUpCb0lFQmFpQUdLQUlNT2dBQVFiVGJrY3dGSVFFTUFnc2dCaWdDcUFJYUlBWkJFR29RaWdFYUlBWW9BcVFDR2lBR0tBSzRBaUlBUVFGMFFRSnhJQUJCQVhOcUlRSkI3Sm1tNG5vaEFRd0JDMEhIeTZ1SWVpRUJEQUFMQUF1eEFRRURmeU1BUWRBQWF5SUFKQUFnQUVHRjBRQXZBQUE3QVV3Z0FFR0IwUUFvQUFBMkFrZ2dBRUhJQUdvaUJVRUJja0hhSEVFQklBSW9BZ1FRYlJBV0lRWWdBQ0FFTmdJQUlBQkJPMm9pQkNBRVFRMGdCaUFGSUFBUUxDQUVhaUlHSUFJUVB5RUhJQUJCRUdvaUJTQUNFQThnQkNBSElBWWdBRUVnYWlJRUlBQkJIR29nQUVFWWFpQUZFTEFCSUFVUURpQUJJQVFnQUNnQ0hDQUFLQUlZSUFJZ0F4QldJUUVnQUVIUUFHb2tBQ0FCQzgwQkFRRi9Jd0JCTUdzaUJTUUFJQVVnQVRZQ0tBSkFJQUlvQWdSQkFYRkZCRUFnQUNBQklBSWdBeUFFSUFBb0FnQW9BaGdSQmdBaEFnd0JDeUFGUVJocUlnQWdBaEFQSUFBUWpnRWhBU0FBRUE0Q1FDQUVCRUFnQlVFWWFpQUJFRXNNQVFzZ0JVRVlhaUFCRUVvTElBVWdCVUVZYWhCQU5nSVFBMEFnQlNBRlFSaHFFRzQyQWdnZ0JVRVFhaUFGUVFocUVGc0VRQ0FGUVNocUlBVkJFR29pQUNnQ0FDd0FBQkQ0QWlBQUVKY0JEQUVGSUFVb0FpZ2hBaUFGUVJocUVBb2FDd3NMSUFWQk1Hb2tBQ0FDQy9JQ0FRRi9Jd0JCNEFKcklnQWtBQ0FBSUFJMkF0QUNJQUFnQVRZQzJBSWdBRUhRQVdvUUVTRUdJQUJCRUdvaUFpQURFQThnQWhBN1FlRFFBRUg2MEFBZ0FFSGdBV29RWXlBQ0VBNGdBRUhBQVdvUUVTSURJQU1RRXhBTUlBQWdBMEVBRUFzaUFUWUN2QUVnQUNBQ05nSU1JQUJCQURZQ0NBTkFBa0FnQUVIWUFtb2dBRUhRQW1vUU5rVU5BQ0FBS0FLOEFTQURFQWtnQVdwR0JFQWdBeEFKSVFJZ0F5QURFQWxCQVhRUURDQURJQU1RRXhBTUlBQWdBaUFEUVFBUUN5SUJhallDdkFFTElBQkIyQUpxRUNGQkVDQUJJQUJCdkFGcUlBQkJDR3BCQUNBR0lBQkJFR29nQUVFTWFpQUFRZUFCYWhDTEFRMEFJQUJCMkFKcUVDVWFEQUVMQ3lBRElBQW9BcndCSUFGckVBd2dBeEFOSVFJUUZpRUJJQUFnQlRZQ0FDQUNJQUVnQUJEQkFrRUJSd1JBSUFSQkJEWUNBQXNnQUVIWUFtb2dBRUhRQW1vUUtBUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0MyQUloQVNBREVBb2FJQVlRQ2hvZ0FFSGdBbW9rQUNBQkM5SURBUUYrSXdCQmdBTnJJZ0FrQUNBQUlBSTJBdkFDSUFBZ0FUWUMrQUlnQUVIWUFXb2dBeUFBUWZBQmFpQUFRZXdCYWlBQVFlZ0JhaERVQVNBQVFjZ0JhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdMRUFTQUFJQUJCSUdvMkFod2dBRUVBTmdJWUlBQkJBVG9BRnlBQVFjVUFPZ0FXQTBBQ1FDQUFRZmdDYWlBQVFmQUNhaEEyUlEwQUlBQW9Bc1FCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nTEVBUXNnQUVINEFtb1FJU0FBUVJkcUlBQkJGbW9nQWlBQVFjUUJhaUFBS0FMc0FTQUFLQUxvQVNBQVFkZ0JhaUFBUVNCcUlBQkJIR29nQUVFWWFpQUFRZkFCYWhEVEFRMEFJQUJCK0FKcUVDVWFEQUVMQ3dKQUlBQkIyQUZxRUFsRkRRQWdBQzBBRjBVTkFDQUFLQUljSWdNZ0FFRWdhbXRCbndGS0RRQWdBQ0FEUVFScU5nSWNJQU1nQUNnQ0dEWUNBQXNnQUNBQ0lBQW9Bc1FCSUFRUXd3SWdBQ2tEQUNFR0lBVWdBQ2tEQ0RjRENDQUZJQVkzQXdBZ0FFSFlBV29nQUVFZ2FpQUFLQUljSUFRUUxTQUFRZmdDYWlBQVFmQUNhaEFvQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FMNEFpRUNJQUVRQ2hvZ0FFSFlBV29RQ2hvZ0FFR0FBMm9rQUNBQ0M3c0RBQ01BUWZBQ2F5SUFKQUFnQUNBQ05nTGdBaUFBSUFFMkF1Z0NJQUJCeUFGcUlBTWdBRUhnQVdvZ0FFSGNBV29nQUVIWUFXb1ExQUVnQUVHNEFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDdEFFZ0FDQUFRUkJxTmdJTUlBQkJBRFlDQ0NBQVFRRTZBQWNnQUVIRkFEb0FCZ05BQWtBZ0FFSG9BbW9nQUVIZ0Ftb1FOa1VOQUNBQUtBSzBBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3RBRUxJQUJCNkFKcUVDRWdBRUVIYWlBQVFRWnFJQUlnQUVHMEFXb2dBQ2dDM0FFZ0FDZ0MyQUVnQUVISUFXb2dBRUVRYWlBQVFReHFJQUJCQ0dvZ0FFSGdBV29RMHdFTkFDQUFRZWdDYWhBbEdnd0JDd3NDUUNBQVFjZ0JhaEFKUlEwQUlBQXRBQWRGRFFBZ0FDZ0NEQ0lESUFCQkVHcHJRWjhCU2cwQUlBQWdBMEVFYWpZQ0RDQURJQUFvQWdnMkFnQUxJQVVnQWlBQUtBSzBBU0FFRU1RQ09RTUFJQUJCeUFGcUlBQkJFR29nQUNnQ0RDQUVFQzBnQUVIb0Ftb2dBRUhnQW1vUUtBUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0M2QUloQWlBQkVBb2FJQUJCeUFGcUVBb2FJQUJCOEFKcUpBQWdBZ3U3QXdBakFFSHdBbXNpQUNRQUlBQWdBallDNEFJZ0FDQUJOZ0xvQWlBQVFjZ0JhaUFESUFCQjRBRnFJQUJCM0FGcUlBQkIyQUZxRU5RQklBQkJ1QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyUUJJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ2dBRUVCT2dBSElBQkJ4UUE2QUFZRFFBSkFJQUJCNkFKcUlBQkI0QUpxRURaRkRRQWdBQ2dDdEFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBclFCQ3lBQVFlZ0NhaEFoSUFCQkIyb2dBRUVHYWlBQ0lBQkJ0QUZxSUFBb0F0d0JJQUFvQXRnQklBQkJ5QUZxSUFCQkVHb2dBRUVNYWlBQVFRaHFJQUJCNEFGcUVOTUJEUUFnQUVIb0Ftb1FKUm9NQVFzTEFrQWdBRUhJQVdvUUNVVU5BQ0FBTFFBSFJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdEFFZ0JCREZBamdDQUNBQVFjZ0JhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkI2QUpxSUFCQjRBSnFFQ2dFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQXVnQ0lRSWdBUkFLR2lBQVFjZ0JhaEFLR2lBQVFmQUNhaVFBSUFJTG5RTUJBbjhqQUVIZ0Ftc2lBQ1FBSUFBZ0FqWUMwQUlnQUNBQk5nTFlBaUFERUZ3aEJpQURJQUJCNEFGcUVKa0JJUWNnQUVIUUFXb2dBeUFBUWN3Q2FoQ1lBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJQTBBQ1FDQUFRZGdDYWlBQVFkQUNhaEEyUlEwQUlBQW9BcndCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzhBUXNnQUVIWUFtb1FJU0FHSUFJZ0FFRzhBV29nQUVFSWFpQUFLQUxNQWlBQVFkQUJhaUFBUVJCcUlBQkJER29nQnhDTEFRMEFJQUJCMkFKcUVDVWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF4Z0kzQXdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRZGdDYWlBQVFkQUNhaEFvQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FMWUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFSGdBbW9rQUNBQ0M1MERBUUovSXdCQjRBSnJJZ0FrQUNBQUlBSTJBdEFDSUFBZ0FUWUMyQUlnQXhCY0lRWWdBeUFBUWVBQmFoQ1pBU0VISUFCQjBBRnFJQU1nQUVITUFtb1FtQUVnQUVIQUFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDdkFFZ0FDQUFRUkJxTmdJTUlBQkJBRFlDQ0FOQUFrQWdBRUhZQW1vZ0FFSFFBbW9RTmtVTkFDQUFLQUs4QVNBQkVBa2dBbXBHQkVBZ0FSQUpJUU1nQVNBQkVBbEJBWFFRRENBQklBRVFFeEFNSUFBZ0F5QUJRUUFRQ3lJQ2FqWUN2QUVMSUFCQjJBSnFFQ0VnQmlBQ0lBQkJ2QUZxSUFCQkNHb2dBQ2dDekFJZ0FFSFFBV29nQUVFUWFpQUFRUXhxSUFjUWl3RU5BQ0FBUWRnQ2FoQWxHZ3dCQ3dzQ1FDQUFRZEFCYWhBSlJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JDQUdFTWtDT3dFQUlBQkIwQUZxSUFCQkVHb2dBQ2dDRENBRUVDMGdBRUhZQW1vZ0FFSFFBbW9RS0FSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQzJBSWhBaUFCRUFvYUlBQkIwQUZxRUFvYUlBQkI0QUpxSkFBZ0FndWRBd0VDZnlNQVFlQUNheUlBSkFBZ0FDQUNOZ0xRQWlBQUlBRTJBdGdDSUFNUVhDRUdJQU1nQUVIZ0FXb1FtUUVoQnlBQVFkQUJhaUFESUFCQnpBSnFFSmdCSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCMkFKcUlBQkIwQUpxRURaRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFkZ0NhaEFoSUFZZ0FpQUFRYndCYWlBQVFRaHFJQUFvQXN3Q0lBQkIwQUZxSUFCQkVHb2dBRUVNYWlBSEVJc0JEUUFnQUVIWUFtb1FKUm9NQVFzTEFrQWdBRUhRQVdvUUNVVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUWdCaERLQWpjREFDQUFRZEFCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCMkFKcUlBQkIwQUpxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0F0Z0NJUUlnQVJBS0dpQUFRZEFCYWhBS0dpQUFRZUFDYWlRQUlBSUxuUU1CQW44akFFSGdBbXNpQUNRQUlBQWdBallDMEFJZ0FDQUJOZ0xZQWlBREVGd2hCaUFESUFCQjRBRnFFSmtCSVFjZ0FFSFFBV29nQXlBQVFjd0NhaENZQVNBQVFjQUJhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdLOEFTQUFJQUJCRUdvMkFnd2dBRUVBTmdJSUEwQUNRQ0FBUWRnQ2FpQUFRZEFDYWhBMlJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFSFlBbW9RSVNBR0lBSWdBRUc4QVdvZ0FFRUlhaUFBS0FMTUFpQUFRZEFCYWlBQVFSQnFJQUJCREdvZ0J4Q0xBUTBBSUFCQjJBSnFFQ1VhREFFTEN3SkFJQUJCMEFGcUVBbEZEUUFnQUNnQ0RDSURJQUJCRUdwclFaOEJTZzBBSUFBZ0EwRUVhallDRENBRElBQW9BZ2cyQWdBTElBVWdBaUFBS0FLOEFTQUVJQVlReXdJMkFnQWdBRUhRQVdvZ0FFRVFhaUFBS0FJTUlBUVFMU0FBUWRnQ2FpQUFRZEFDYWhBb0JFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQUtBTFlBaUVDSUFFUUNob2dBRUhRQVdvUUNob2dBRUhnQW1va0FDQUNDK3dCQVFGL0l3QkJJR3NpQmlRQUlBWWdBVFlDR0FKQUlBTW9BZ1JCQVhGRkJFQWdCa0YvTmdJQUlBWWdBQ0FCSUFJZ0F5QUVJQVlnQUNnQ0FDZ0NFQkVGQUNJQk5nSVlBa0FDUUFKQUlBWW9BZ0FPQWdBQkFnc2dCVUVBT2dBQURBTUxJQVZCQVRvQUFBd0NDeUFGUVFFNkFBQWdCRUVFTmdJQURBRUxJQVlnQXhBUElBWVFPeUVCSUFZUURpQUdJQU1RRHlBR0VJd0JJUUFnQmhBT0lBWWdBQkJMSUFaQkRISWdBQkJLSUFVZ0JrRVlhaUlESUFJZ0JpQURJQUVnQkVFQkVMSUJJQVpHT2dBQUlBWW9BaGdoQVFOQUlBTkJER3NRQ2lJRElBWkhEUUFMQ3lBR1FTQnFKQUFnQVF2eUFnRUJmeU1BUVpBQ2F5SUFKQUFnQUNBQ05nS0FBaUFBSUFFMkFvZ0NJQUJCMEFGcUVCRWhCaUFBUVJCcUlnSWdBeEFQSUFJUU1rSGcwQUJCK3RBQUlBQkI0QUZxRUc4Z0FoQU9JQUJCd0FGcUVCRWlBeUFERUJNUURDQUFJQU5CQUJBTElnRTJBcndCSUFBZ0FqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQmlBSnFJQUJCZ0FKcUVERkZEUUFnQUNnQ3ZBRWdBeEFKSUFGcVJnUkFJQU1RQ1NFQ0lBTWdBeEFKUVFGMEVBd2dBeUFERUJNUURDQUFJQUlnQTBFQUVBc2lBV28yQXJ3QkN5QUFRWWdDYWhBZlFSQWdBU0FBUWJ3QmFpQUFRUWhxUVFBZ0JpQUFRUkJxSUFCQkRHb2dBRUhnQVdvUWpRRU5BQ0FBUVlnQ2FoQWlHZ3dCQ3dzZ0F5QUFLQUs4QVNBQmF4QU1JQU1RRFNFQ0VCWWhBU0FBSUFVMkFnQWdBaUFCSUFBUXdRSkJBVWNFUUNBRVFRUTJBZ0FMSUFCQmlBSnFJQUJCZ0FKcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9Bb2dDSVFFZ0F4QUtHaUFHRUFvYUlBQkJrQUpxSkFBZ0FRdlNBd0VCZmlNQVFhQUNheUlBSkFBZ0FDQUNOZ0tRQWlBQUlBRTJBcGdDSUFCQjRBRnFJQU1nQUVId0FXb2dBRUh2QVdvZ0FFSHVBV29RMXdFZ0FFSFFBV29RRVNJQklBRVFFeEFNSUFBZ0FVRUFFQXNpQWpZQ3pBRWdBQ0FBUVNCcU5nSWNJQUJCQURZQ0dDQUFRUUU2QUJjZ0FFSEZBRG9BRmdOQUFrQWdBRUdZQW1vZ0FFR1FBbW9RTVVVTkFDQUFLQUxNQVNBQkVBa2dBbXBHQkVBZ0FSQUpJUU1nQVNBQkVBbEJBWFFRRENBQklBRVFFeEFNSUFBZ0F5QUJRUUFRQ3lJQ2FqWUN6QUVMSUFCQm1BSnFFQjhnQUVFWGFpQUFRUlpxSUFJZ0FFSE1BV29nQUN3QTd3RWdBQ3dBN2dFZ0FFSGdBV29nQUVFZ2FpQUFRUnhxSUFCQkdHb2dBRUh3QVdvUTFnRU5BQ0FBUVpnQ2FoQWlHZ3dCQ3dzQ1FDQUFRZUFCYWhBSlJRMEFJQUF0QUJkRkRRQWdBQ2dDSENJRElBQkJJR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNIQ0FESUFBb0FoZzJBZ0FMSUFBZ0FpQUFLQUxNQVNBRUVNTUNJQUFwQXdBaEJpQUZJQUFwQXdnM0F3Z2dCU0FHTndNQUlBQkI0QUZxSUFCQklHb2dBQ2dDSENBRUVDMGdBRUdZQW1vZ0FFR1FBbW9RSmdSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQ21BSWhBaUFCRUFvYUlBQkI0QUZxRUFvYUlBQkJvQUpxSkFBZ0FndTdBd0FqQUVHUUFtc2lBQ1FBSUFBZ0FqWUNnQUlnQUNBQk5nS0lBaUFBUWRBQmFpQURJQUJCNEFGcUlBQkIzd0ZxSUFCQjNnRnFFTmNCSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnZ0FFRUJPZ0FISUFCQnhRQTZBQVlEUUFKQUlBQkJpQUpxSUFCQmdBSnFFREZGRFFBZ0FDZ0N2QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyd0JDeUFBUVlnQ2FoQWZJQUJCQjJvZ0FFRUdhaUFDSUFCQnZBRnFJQUFzQU44QklBQXNBTjRCSUFCQjBBRnFJQUJCRUdvZ0FFRU1haUFBUVFocUlBQkI0QUZxRU5ZQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFMUUFIUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N2QUVnQkJERUFqa0RBQ0FBUWRBQmFpQUFRUkJxSUFBb0Fnd2dCQkF0SUFCQmlBSnFJQUJCZ0FKcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9Bb2dDSVFJZ0FSQUtHaUFBUWRBQmFoQUtHaUFBUVpBQ2FpUUFJQUlMdXdNQUl3QkJrQUpySWdBa0FDQUFJQUkyQW9BQ0lBQWdBVFlDaUFJZ0FFSFFBV29nQXlBQVFlQUJhaUFBUWQ4QmFpQUFRZDRCYWhEWEFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlJQUJCQVRvQUJ5QUFRY1VBT2dBR0EwQUNRQ0FBUVlnQ2FpQUFRWUFDYWhBeFJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFR0lBbW9RSHlBQVFRZHFJQUJCQm1vZ0FpQUFRYndCYWlBQUxBRGZBU0FBTEFEZUFTQUFRZEFCYWlBQVFSQnFJQUJCREdvZ0FFRUlhaUFBUWVBQmFoRFdBUTBBSUFCQmlBSnFFQ0lhREFFTEN3SkFJQUJCMEFGcUVBbEZEUUFnQUMwQUIwVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUVF4UUk0QWdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRWWdDYWlBQVFZQUNhaEFtQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FLSUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFR1FBbW9rQUNBQ0M1SURBUUYvSXdCQmtBSnJJZ0FrQUNBQUlBSTJBb0FDSUFBZ0FUWUNpQUlnQXhCY0lRWWdBRUhRQVdvZ0F5QUFRZjhCYWhDYUFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUdJQUlnQUVHOEFXb2dBRUVJYWlBQUxBRC9BU0FBUWRBQmFpQUFRUkJxSUFCQkRHcEI0TkFBRUkwQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREdBamNEQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTEpRQWdBQ2dDQkJvZ0FDQUFLQUlFUWJWL2NUWUNCQ0FBSUFBb0FnUkJDSEkyQWdRZ0FBdVNBd0VCZnlNQVFaQUNheUlBSkFBZ0FDQUNOZ0tBQWlBQUlBRTJBb2dDSUFNUVhDRUdJQUJCMEFGcUlBTWdBRUgvQVdvUW1nRWdBRUhBQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN2QUVnQUNBQVFSQnFOZ0lNSUFCQkFEWUNDQU5BQWtBZ0FFR0lBbW9nQUVHQUFtb1FNVVVOQUNBQUtBSzhBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3ZBRUxJQUJCaUFKcUVCOGdCaUFDSUFCQnZBRnFJQUJCQ0dvZ0FDd0Evd0VnQUVIUUFXb2dBRUVRYWlBQVFReHFRZURRQUJDTkFRMEFJQUJCaUFKcUVDSWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF5UUk3QVFBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRWWdDYWlBQVFZQUNhaEFtQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FLSUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFR1FBbW9rQUNBQ0M1SURBUUYvSXdCQmtBSnJJZ0FrQUNBQUlBSTJBb0FDSUFBZ0FUWUNpQUlnQXhCY0lRWWdBRUhRQVdvZ0F5QUFRZjhCYWhDYUFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUdJQUlnQUVHOEFXb2dBRUVJYWlBQUxBRC9BU0FBUWRBQmFpQUFRUkJxSUFCQkRHcEI0TkFBRUkwQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREtBamNEQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTGtnTUJBWDhqQUVHUUFtc2lBQ1FBSUFBZ0FqWUNnQUlnQUNBQk5nS0lBaUFERUZ3aEJpQUFRZEFCYWlBRElBQkIvd0ZxRUpvQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQmlBSnFJQUJCZ0FKcUVERkZEUUFnQUNnQ3ZBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJ3QkN5QUFRWWdDYWhBZklBWWdBaUFBUWJ3QmFpQUFRUWhxSUFBc0FQOEJJQUJCMEFGcUlBQkJFR29nQUVFTWFrSGcwQUFRalFFTkFDQUFRWWdDYWhBaUdnd0JDd3NDUUNBQVFkQUJhaEFKUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N2QUVnQkNBR0VNc0NOZ0lBSUFCQjBBRnFJQUJCRUdvZ0FDZ0NEQ0FFRUMwZ0FFR0lBbW9nQUVHQUFtb1FKZ1JBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDaUFJaEFpQUJFQW9hSUFCQjBBRnFFQW9hSUFCQmtBSnFKQUFnQWd2VkJRRUlmeU1BUWRBQmF5SUdKQUFnQXhBWklRY2dCaUFDTmdLOEFTQUdJQWMyQXJnQlFiZXBtdVo4UWVuMzh2SjVJQVZCRUVZYlFlbjM4dko1SUFOQklFWWJJUXNnQmtFZ2FpRU1BMEJCeXZmbTl3SWhBZ05BQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FDUWJ2VHFiQjlUQVJBSUFKQmdzT29qbnhNQkVBZ0FrSG4rSWU1ZUVZTkFpQUNRZFMzK3NCNFJnMEZJQUpCNmZmeThubEhEUXBCZzhPb2pud2hBa0VBSVFjTUNnc2dBa0dEdzZpT2ZFWU5CeUFDUVk2RnN1UjhSZzBGSUFKQnQ2bWE1bnhIRFFrZ0JpQUdRYWdCYWlJQ05nTEFBU0FHS0FMQUFSb2dBaUFHS0FLNEFSQlVHa0dPaGJMa2ZDRUNRUUFoQ0F3SkN5QUNRWW1DdE80Q1NnMEJJQUpCdk5PcHNIMUdEUUlnQWtIUzQ3eVNBa1lOQlNBQ1FlVy8rSjhDUncwSUlBWkJxQUZxRUFvYUlBWW9Bc0FCR2d0QmlvSzA3Z0loQWd3SEN5QUNRY3IzNXZjQ1J3UkFJQUpCcHNmVnBnUkdEUVlnQWtHS2dyVHVBa2NOQnlBR0tBSzRBUkFRSUFaQjBBRnFKQUFQQ3lBR0lBbzJBc1FCUWRTMytzQjRRYnpUcWJCOUlBWW9Bc1FCSUFOSUd5RUNEQVlMUWNTQkFTQUZOZ0lBSUFBZ0FTQUVJQVlvQXJnQklBTVE1Z0VnQ3lFQ0RBVUxJQVlvQXJnQklBWW9Bc1FCYWlBR0tBSzhBU0FHS0FMRUFXb3RBQUE2QUFBZ0JpZ0N4QUZCQVdvaENnd0ZDeUFHSUFnMkFzZ0JRZExqdkpJQ1FlVy8rSjhDSUFZb0FzZ0JJQVZJR3lFQ0RBTUxJQVpCR0dvaURSRE1BaUVDSUF3UXdnSWhDQ0FHUVFocUlna2dCa0dvQVdvZ0JpZ0N5QUZCQVhRUXdBSWdDQ0FKRUwwQ0lBa1FDaG9nRFNBSkVQMENJQVlvQXNnQlFhQ0JBV29nQmlnQ0NEb0FBQ0FDRUlvQkdpQUdLQUxJQVVFQmFpRUlRWTZGc3VSOElRSU1BZ3NnQmlBSE5nTE1BVUdteDlXbUJFSG4rSWU1ZUNBR0tBTE1BU0FGU0JzaEFnd0JDeUFHS0FMTUFVR2dnUUZxSUFZb0FyZ0JJQVlvQXN3QmFpMEFBRG9BQUNBR0tBTE1BVUVCYWlFSFFZUERxSTU4SVFJTUFBc0FDd0FMN0FFQkFYOGpBRUVnYXlJR0pBQWdCaUFCTmdJWUFrQWdBeWdDQkVFQmNVVUVRQ0FHUVg4MkFnQWdCaUFBSUFFZ0FpQURJQVFnQmlBQUtBSUFLQUlRRVFVQUlnRTJBaGdDUUFKQUFrQWdCaWdDQUE0Q0FBRUNDeUFGUVFBNkFBQU1Bd3NnQlVFQk9nQUFEQUlMSUFWQkFUb0FBQ0FFUVFRMkFnQU1BUXNnQmlBREVBOGdCaEF5SVFFZ0JoQU9JQVlnQXhBUElBWVFqZ0VoQUNBR0VBNGdCaUFBRUVzZ0JrRU1jaUFBRUVvZ0JTQUdRUmhxSWdNZ0FpQUdJQU1nQVNBRVFRRVF0QUVnQmtZNkFBQWdCaWdDR0NFQkEwQWdBMEVNYXhBS0lnTWdCa2NOQUFzTElBWkJJR29rQUNBQkMwQUJBWDlCQUNFQUEzOGdBU0FDUmdSL0lBQUZJQUVvQWdBZ0FFRUVkR29pQUVHQWdJQ0FmM0VpQTBFWWRpQURjaUFBY3lFQUlBRkJCR29oQVF3QkN3c0xHd0FqQUVFUWF5SUJKQUFnQUNBQ0lBTVF6Z0lnQVVFUWFpUUFDMVFCQW44Q1FBTkFJQU1nQkVjRVFFRi9JUUFnQVNBQ1JnMENJQUVvQWdBaUJTQURLQUlBSWdaSURRSWdCU0FHU2dSQVFRRVBCU0FEUVFScUlRTWdBVUVFYWlFQkRBSUxBQXNMSUFFZ0FrY2hBQXNnQUF0QUFRRi9RUUFoQUFOL0lBRWdBa1lFZnlBQUJTQUJMQUFBSUFCQkJIUnFJZ0JCZ0lDQWdIOXhJZ05CR0hZZ0EzSWdBSE1oQUNBQlFRRnFJUUVNQVFzTEMvY0JBUU4vSUFCRkJFQkJ3SUVCS0FJQUlRQWpBRUVnYXlJRUpBQkJnSUVCSUFBUXZnSWlCUVIvSUFRZ0F5a0FBRGNERUNBRUlBTXBBQWczQXhnZ0FnUkFBMEFnQlNBRVFSQnFJQVFRcHdFZ0FrRVFJQUpCRUVrYklRTkJBQ0VBQTBBZ0FDQUJhaUlHSUFZdEFBQWdBQ0FFYWkwQUFITTZBQUFnQUVFQmFpSUFJQU5IRFFBTElBSWdBMnNoQWlBQklBTnFJUUZCRHlFQUEwQUNRQ0FBSWdNZ0JFRVFhbW9pQUNBQUxRQUFRUUZxSWdBNkFBQWdBRUgvQVhFTkFDQURRUUZySVFBZ0F3MEJDd3NnQWcwQUN3c2dCUkFRUVFBRlFYOExHaUFFUVNCcUpBQVBDMEdnZ1FGQnhJRUJLQUlBSUFNZ0FTQUNFT1lCQ3hzQUl3QkJFR3NpQVNRQUlBQWdBaUFERVBNQ0lBRkJFR29rQUF0ZUFRTi9JQUVnQkNBRGEyb2hCUUpBQTBBZ0F5QUVSd1JBUVg4aEFDQUJJQUpHRFFJZ0FTd0FBQ0lHSUFNc0FBQWlCMGdOQWlBR0lBZEtCRUJCQVE4RklBTkJBV29oQXlBQlFRRnFJUUVNQWdzQUN3c2dBaUFGUnlFQUN5QUFDNmtCQVFSL0lBQW9BbFFpQXlnQ0JDSUZJQUFvQWhRZ0FDZ0NIQ0lHYXlJRUlBUWdCVXNiSWdRRVFDQURLQUlBSUFZZ0JCQkNHaUFESUFNb0FnQWdCR28yQWdBZ0F5QURLQUlFSUFScklnVTJBZ1FMSUFNb0FnQWhCQ0FGSUFJZ0FpQUZTeHNpQlFSQUlBUWdBU0FGRUVJYUlBTWdBeWdDQUNBRmFpSUVOZ0lBSUFNZ0F5Z0NCQ0FGYXpZQ0JBc2dCRUVBT2dBQUlBQWdBQ2dDTENJQk5nSWNJQUFnQVRZQ0ZDQUNDeWtBSUFFZ0FTZ0NBRUVIYWtGNGNTSUJRUkJxTmdJQUlBQWdBU2tEQUNBQktRTUlFTjBCT1FNQUM3UVlBeEovQVh3Q2ZpTUFRYkFFYXlJTEpBQWdDMEVBTmdJc0FrQWdBYjBpR1VJQVV3UkFRUUVoRUVINUdpRVRJQUdhSWdHOUlSa01BUXNnQkVHQUVIRUVRRUVCSVJCQi9Cb2hFd3dCQzBIL0drSDZHaUFFUVFGeEloQWJJUk1nRUVVaEZBc0NRQ0FaUW9DQWdJQ0FnSUQ0L3dDRFFvQ0FnSUNBZ0lENC93QlJCRUFnQUVFZ0lBSWdFRUVEYWlJRElBUkIvLzk3Y1JBdUlBQWdFeUFRRUNvZ0FFSEhIRUdBSGlBRlFTQnhJZ1ViUWVvY1FaWWVJQVViSUFFZ0FXSWJRUU1RS2lBQVFTQWdBaUFESUFSQmdNQUFjeEF1SUFJZ0F5QUNJQU5LR3lFSkRBRUxJQXRCRUdvaEVRSkFBbjhDUUNBQklBdEJMR29RM1FJaUFTQUJvQ0lCUkFBQUFBQUFBQUFBWWdSQUlBc2dDeWdDTENJR1FRRnJOZ0lzSUFWQklISWlEa0hoQUVjTkFRd0RDeUFGUVNCeUlnNUI0UUJHRFFJZ0N5Z0NMQ0VLUVFZZ0F5QURRUUJJR3d3QkN5QUxJQVpCSFdzaUNqWUNMQ0FCUkFBQUFBQUFBTEJCb2lFQlFRWWdBeUFEUVFCSUd3c2hEQ0FMUVRCcUlBdEIwQUpxSUFwQkFFZ2JJZzBoQndOQUlBY0NmeUFCUkFBQUFBQUFBUEJCWXlBQlJBQUFBQUFBQUFBQVpuRUVRQ0FCcXd3QkMwRUFDeUlETmdJQUlBZEJCR29oQnlBQklBTzRvVVFBQUFBQVpjM05RYUlpQVVRQUFBQUFBQUFBQUdJTkFBc0NRQ0FLUVFCTUJFQWdDaUVESUFjaEJpQU5JUWdNQVFzZ0RTRUlJQW9oQXdOQUlBTkJIU0FEUVIxSUd5RURBa0FnQjBFRWF5SUdJQWhKRFFBZ0E2MGhHa0lBSVJrRFFDQUdJQmxDLy8vLy93K0RJQVkxQWdBZ0dvWjhJaGtnR1VLQWxPdmNBNEFpR1VLQWxPdmNBMzU5UGdJQUlBWkJCR3NpQmlBSVR3MEFDeUFacHlJR1JRMEFJQWhCQkdzaUNDQUdOZ0lBQ3dOQUlBZ2dCeUlHU1FSQUlBWkJCR3NpQnlnQ0FFVU5BUXNMSUFzZ0N5Z0NMQ0FEYXlJRE5nSXNJQVloQnlBRFFRQktEUUFMQ3lBTVFSbHFRUWx1SVFjZ0EwRUFTQVJBSUFkQkFXb2hFaUFPUWVZQVJpRVZBMEJCQUNBRGF5SURRUWtnQTBFSlNCc2hDUUpBSUFZZ0NFc0VRRUdBbE92Y0F5QUpkaUVXUVg4Z0NYUkJmM01oRDBFQUlRTWdDQ0VIQTBBZ0J5QURJQWNvQWdBaUZ5QUpkbW8yQWdBZ0R5QVhjU0FXYkNFRElBZEJCR29pQnlBR1NRMEFDeUFJS0FJQUlRY2dBMFVOQVNBR0lBTTJBZ0FnQmtFRWFpRUdEQUVMSUFnb0FnQWhCd3NnQ3lBTEtBSXNJQWxxSWdNMkFpd2dEU0FJSUFkRlFRSjBhaUlJSUJVYklnY2dFa0VDZEdvZ0JpQUdJQWRyUVFKMUlCSktHeUVHSUFOQkFFZ05BQXNMUVFBaEF3SkFJQVlnQ0UwTkFDQU5JQWhyUVFKMVFRbHNJUU5CQ2lFSElBZ29BZ0FpQ1VFS1NRMEFBMEFnQTBFQmFpRURJQWtnQjBFS2JDSUhUdzBBQ3dzZ0RFRUFJQU1nRGtIbUFFWWJheUFPUWVjQVJpQU1RUUJIY1dzaUJ5QUdJQTFyUVFKMVFRbHNRUWxyU0FSQVFRUkJwQUlnQ2tFQVNCc2dDMm9nQjBHQXlBQnFJZ2xCQ1cwaUQwRUNkR3BCMEI5cklRcEJDaUVISUFrZ0QwRUpiR3NpQ1VFSFRBUkFBMEFnQjBFS2JDRUhJQWxCQVdvaUNVRUlSdzBBQ3dzQ1FDQUtLQUlBSWhJZ0VpQUhiaUlWSUFkc2F5SUpSU0FLUVFScUlnOGdCa1p4RFFBQ1FDQVZRUUZ4UlFSQVJBQUFBQUFBQUVCRElRRWdCMEdBbE92Y0EwY2dDQ0FLVDNJTkFTQUtRUVJyTFFBQVFRRnhSUTBCQzBRQkFBQUFBQUJBUXlFQkMwUUFBQUFBQUFEZ1AwUUFBQUFBQUFEd1AwUUFBQUFBQUFENFB5QUdJQTlHRzBRQUFBQUFBQUQ0UHlBSklBZEJBWFlpRDBZYklBa2dEMGtiSVJnQ1FDQVVEUUFnRXkwQUFFRXRSdzBBSUJpYUlSZ2dBWm9oQVFzZ0NpQVNJQWxySWdrMkFnQWdBU0FZb0NBQllRMEFJQW9nQnlBSmFpSUROZ0lBSUFOQmdKVHIzQU5QQkVBRFFDQUtRUUEyQWdBZ0NDQUtRUVJySWdwTEJFQWdDRUVFYXlJSVFRQTJBZ0FMSUFvZ0NpZ0NBRUVCYWlJRE5nSUFJQU5CLzVQcjNBTkxEUUFMQ3lBTklBaHJRUUoxUVFsc0lRTkJDaUVISUFnb0FnQWlDVUVLU1EwQUEwQWdBMEVCYWlFRElBa2dCMEVLYkNJSFR3MEFDd3NnQ2tFRWFpSUhJQVlnQmlBSFN4c2hCZ3NEUUNBR0lnY2dDRTBpQ1VVRVFDQUhRUVJySWdZb0FnQkZEUUVMQ3dKQUlBNUI1d0JIQkVBZ0JFRUljU0VLREFFTElBTkJmM05CZnlBTVFRRWdEQnNpQmlBRFNpQURRWHRLY1NJS0d5QUdhaUVNUVg5QmZpQUtHeUFGYWlFRklBUkJDSEVpQ2cwQVFYY2hCZ0pBSUFrTkFDQUhRUVJyS0FJQUlnNUZEUUJCQ2lFSlFRQWhCaUFPUVFwd0RRQURRQ0FHSWdwQkFXb2hCaUFPSUFsQkNtd2lDWEJGRFFBTElBcEJmM01oQmdzZ0J5QU5hMEVDZFVFSmJDRUpJQVZCWDNGQnhnQkdCRUJCQUNFS0lBd2dCaUFKYWtFSmF5SUdRUUFnQmtFQVNoc2lCaUFHSUF4S0d5RU1EQUVMUVFBaENpQU1JQU1nQ1dvZ0JtcEJDV3NpQmtFQUlBWkJBRW9iSWdZZ0JpQU1TaHNoREF0QmZ5RUpJQXhCL2YvLy93ZEIvdi8vL3djZ0NpQU1jaUlHRzBvTkFTQU1JQVpCQUVjaUVtcEJBV29oRGdKQUlBVkJYM0VpRkVIR0FFWUVRQ0FEUWYvLy8vOEhJQTVyU2cwRElBTkJBQ0FEUVFCS0d5RUdEQUVMSUJFZ0F5QURRUjkxSWdacUlBWnpyU0FSRUk4QklnWnJRUUZNQkVBRFFDQUdRUUZySWdaQk1Eb0FBQ0FSSUFaclFRSklEUUFMQ3lBR1FRSnJJZzhnQlRvQUFDQUdRUUZyUVMxQkt5QURRUUJJR3pvQUFDQVJJQTlySWdaQi8vLy8vd2NnRG10S0RRSUxJQVlnRG1vaUF5QVFRZi8vLy84SGMwb05BU0FBUVNBZ0FpQURJQkJxSWdVZ0JCQXVJQUFnRXlBUUVDb2dBRUV3SUFJZ0JTQUVRWUNBQkhNUUxnSkFBa0FDUUNBVVFjWUFSZ1JBSUF0QkVHb2lCa0VJY2lFRElBWkJDWEloQ2lBTklBZ2dDQ0FOU3hzaUNTRUlBMEFnQ0RVQ0FDQUtFSThCSVFZQ1FDQUlJQWxIQkVBZ0JpQUxRUkJxVFEwQkEwQWdCa0VCYXlJR1FUQTZBQUFnQmlBTFFSQnFTdzBBQ3d3QkN5QUdJQXBIRFFBZ0MwRXdPZ0FZSUFNaEJnc2dBQ0FHSUFvZ0Jtc1FLaUFJUVFScUlnZ2dEVTBOQUF0QkFDRUdJQkpGRFFJZ0FFSCtIa0VCRUNvZ0RFRUFUQ0FISUFoTmNnMEJBMEFnQ0RVQ0FDQUtFSThCSWdZZ0MwRVFha3NFUUFOQUlBWkJBV3NpQmtFd09nQUFJQVlnQzBFUWFrc05BQXNMSUFBZ0JpQU1RUWtnREVFSlNCc1FLaUFNUVFscklRWWdDRUVFYWlJSUlBZFBEUU1nREVFSlNpRURJQVloRENBRERRQUxEQUlMQWtBZ0RFRUFTQTBBSUFjZ0NFRUVhaUFISUFoTEd5RUpJQXRCRUdvaUEwRUpjaUVOSUFOQkNISWhBeUFJSVFjRFFDQU5JQWMxQWdBZ0RSQ1BBU0lHUmdSQUlBdEJNRG9BR0NBRElRWUxBa0FnQnlBSVJ3UkFJQVlnQzBFUWFrME5BUU5BSUFaQkFXc2lCa0V3T2dBQUlBWWdDMEVRYWtzTkFBc01BUXNnQUNBR1FRRVFLaUFHUVFGcUlRWkJBQ0FNUVFCTUlBb2JEUUFnQUVIK0hrRUJFQ29MSUFBZ0JpQU5JQVpySWdZZ0RDQUdJQXhJR3hBcUlBd2dCbXNoRENBSFFRUnFJZ2NnQ1U4TkFTQU1RUUJPRFFBTEN5QUFRVEFnREVFU2FrRVNRUUFRTGlBQUlBOGdFU0FQYXhBcURBSUxJQXdoQmdzZ0FFRXdJQVpCQ1dwQkNVRUFFQzRMSUFCQklDQUNJQVVnQkVHQXdBQnpFQzRnQWlBRklBSWdCVW9iSVFrTUFRc2dFeUFGUVJwMFFSOTFRUWx4YWlFTUFrQWdBMEVMU3cwQVFRd2dBMnNoQmtRQUFBQUFBQUF3UUNFWUEwQWdHRVFBQUFBQUFBQXdRS0loR0NBR1FRRnJJZ1lOQUFzZ0RDMEFBRUV0UmdSQUlCZ2dBWm9nR0tHZ21pRUJEQUVMSUFFZ0dLQWdHS0VoQVFzZ0VTQUxLQUlzSWdZZ0JrRWZkU0lHYWlBR2M2MGdFUkNQQVNJR1JnUkFJQXRCTURvQUR5QUxRUTlxSVFZTElCQkJBbkloQ2lBRlFTQnhJUWdnQ3lnQ0xDRUhJQVpCQW1zaURTQUZRUTlxT2dBQUlBWkJBV3RCTFVFcklBZEJBRWdiT2dBQUlBUkJDSEVoQmlBTFFSQnFJUWNEUUNBSElnVUNmeUFCbVVRQUFBQUFBQURnUVdNRVFDQUJxZ3dCQzBHQWdJQ0FlQXNpQjBHZ01tb3RBQUFnQ0hJNkFBQkJBU0FEUVFCS0lBRWdCN2VoUkFBQUFBQUFBREJBb2lJQlJBQUFBQUFBQUFBQVluSWdCaHRGSUFWQkFXb2lCeUFMUVJCcWEwRUJSM0pGQkVBZ0JVRXVPZ0FCSUFWQkFtb2hCd3NnQVVRQUFBQUFBQUFBQUdJTkFBdEJmeUVKUWYzLy8vOEhJQW9nRVNBTmF5SUZhaUlHYXlBRFNBMEFJQUJCSUNBQ0lBWUNmd0pBSUFORkRRQWdCeUFMUVJCcWF5SUlRUUpySUFOT0RRQWdBMEVDYWd3QkN5QUhJQXRCRUdwcklnZ0xJZ2RxSWdNZ0JCQXVJQUFnRENBS0VDb2dBRUV3SUFJZ0F5QUVRWUNBQkhNUUxpQUFJQXRCRUdvZ0NCQXFJQUJCTUNBSElBaHJRUUJCQUJBdUlBQWdEU0FGRUNvZ0FFRWdJQUlnQXlBRVFZREFBSE1RTGlBQ0lBTWdBaUFEU2hzaENRc2dDMEd3Qkdva0FDQUpDMVFCQW44Z0FTQUFLQUpVSWdFZ0FVRUFJQUpCZ0FKcUlnTVEzQUVpQkNBQmF5QURJQVFiSWdNZ0FpQUNJQU5MR3lJQ0VFSWFJQUFnQVNBRGFpSUROZ0pVSUFBZ0F6WUNDQ0FBSUFFZ0FtbzJBZ1FnQWdzSkFDQUFFT0VCRUJBTEV3QWdBQ0FBS0FJQVFReHJLQUlBYWhEaUFRc1RBQ0FBSUFBb0FnQkJER3NvQWdCcUVJb0JDd29BSUFCQkNHc1E0Z0VMQ2dBZ0FFRUlheENLQVFzYUFDQUFJQUVnQWlrRENFRUFJQU1nQVNnQ0FDZ0NFQkVXQUFzSkFDQUFFTkFCRUJBTGxBSUNBWDhEZmlBQktBSVlJQUVvQWl4TEJFQWdBU0FCS0FJWU5nSXNDMEovSVFnQ1FDQUVRUmh4SWdWRklBVkJHRVlnQTBFQlJuRnlEUUFnQVNnQ0xDSUZCRUFnQlNBQlFTQnFFQTFyckNFR0N3SkFBa0FDUUNBRERnTUNBQUVEQ3lBRVFRaHhCRUFnQVNnQ0RDQUJLQUlJYTZ3aEJ3d0NDeUFCS0FJWUlBRW9BaFJyckNFSERBRUxJQVloQndzZ0FpQUhmQ0lDUWdCVElBSWdCbFZ5RFFBZ0JFRUljU0VEQWtBZ0FsQU5BQ0FEQkVBZ0FTZ0NERVVOQWdzZ0JFRVFjVVVOQUNBQktBSVlSUTBCQ3lBREJFQWdBU0FCS0FJSUlBRW9BZ2dnQXFkcUlBRW9BaXdRbXdFTElBUkJFSEVFUUNBQklBRW9BaFFnQVNnQ0hCRDJBaUFCSUFLbkVQVUNDeUFDSVFnTElBQWdDQkM3QVF1REFnRUpmeU1BUVJCcklnTWtBQUovSUFGQmZ4QmVSUVJBSUFBb0Fnd2hCQ0FBS0FJSUlRVWdBQ2dDR0NBQUtBSWNSZ1JBUVg4Z0FDMEFNRUVRY1VVTkFob2dBQ2dDR0NFR0lBQW9BaFFoQnlBQUtBSXNJUWdnQUNnQ0ZDRUpJQUJCSUdvaUFrRUFFS0VCSUFJZ0FoQVRFQXdnQUNBQ0VBMGlDaUFDRUFrZ0Ntb1E5Z0lnQUNBR0lBZHJFUFVDSUFBZ0FDZ0NGQ0FJSUFscmFqWUNMQXNnQXlBQUtBSVlRUUZxTmdJTUlBQWdBMEVNYWlBQVFTeHFFSFlvQWdBMkFpd2dBQzBBTUVFSWNRUkFJQUFnQUVFZ2FoQU5JZ0lnQWlBRUlBVnJhaUFBS0FJc0VKc0JDeUFBSUFFUW5BRVEvZ0lNQVFzZ0FSRHlBZ3NoQUNBRFFSQnFKQUFnQUF1Z0FRRUJmeUFBS0FJWUlBQW9BaXhMQkVBZ0FDQUFLQUlZTmdJc0N3SkFJQUFvQWdnZ0FDZ0NERThOQUNBQlFYOFFYZ1JBSUFBZ0FDZ0NDQ0FBS0FJTVFRRnJJQUFvQWl3UW13RWdBUkR5QWc4TElBQXRBREJCRUhGRkJFQWdBUkNjQVNBQUtBSU1RUUZyTEFBQUVGNUZEUUVMSUFBZ0FDZ0NDQ0FBS0FJTVFRRnJJQUFvQWl3UW13RWdBUkNjQVNFQ0lBQW9BZ3dnQWpvQUFDQUJEd3RCZnd0a0FDQUFLQUlZSUFBb0FpeExCRUFnQUNBQUtBSVlOZ0lzQ3dKQUlBQXRBREJCQ0hGRkRRQWdBQ2dDRUNBQUtBSXNTUVJBSUFBZ0FDZ0NDQ0FBS0FJTUlBQW9BaXdRbXdFTElBQW9BZ3dnQUNnQ0VFOE5BQ0FBS0FJTUxBQUFFR1VQQzBGL0N3Y0FJQUFvQWdnTEV3QWdBQ0FBS0FJQVFReHJLQUlBYWhEakFRc0tBQ0FBUVFockVPTUJDeE1BSUFBZ0FDZ0NBRUVNYXlnQ0FHb1F1QUVMQ2dBZ0FFRUlheEM0QVFzVEFDQUFJQUFvQWdCQkRHc29BZ0JxRVBrQ0N4TUFJQUFnQUNnQ0FFRU1heWdDQUdvUTVBRUxDUUJCeUlFQkVBb2FDeE1BSUFBZ0FDZ0NBRUVNYXlnQ0FHb1Fod01MRXdBZ0FDQUFLQUlBUVF4cktBSUFhaERsQVF1dEFRRUVmeU1BUVJCcklnVWtBQU5BQWtBZ0FpQUVUQTBBSUFBb0FoZ2lBeUFBS0FJY0lnWlBCRUFnQUNBQkxBQUFFR1VnQUNnQ0FDZ0NOQkVDQUVGL1JnMEJJQVJCQVdvaEJDQUJRUUZxSVFFRklBVWdCaUFEYXpZQ0RDQUZJQUlnQkdzMkFnZ2dCVUVNYWlBRlFRaHFFTG9CSVFNZ0FDZ0NHQ0FCSUFNb0FnQWlBeEJWSUFBZ0F5QUFLQUlZYWpZQ0dDQURJQVJxSVFRZ0FTQURhaUVCQ3d3QkN3c2dCVUVRYWlRQUlBUUxDL0ppSWdCQmdBZ0xzeVdsWTJQR2hIeDgrSmwzZCs2TmUzdjJEZkx5LzcxcmE5YXhiMi9lVk1YRmtWQXdNR0FEQVFFQ3FXZG56bjBySzFZWi92N25ZdGZYdGVhcnEwMmFkbmJzUmNyS2o1MkNnaDlBeWNtSmgzMTkraFg2K3UvcldWbXl5VWRIamd2dzhQdnNyYTFCWjlUVXMvMmlvbC9xcjY5RnY1eWNJL2VrcEZPV2NuTGtXOERBbThLM3QzVWMvZjNocnBPVFBXb21Ka3hhTmpac1FUOC9mZ0wzOS9WUHpNeURYRFEwYVBTbHBWRTA1ZVhSQ1BIeCtaTnhjZUp6Mk5pclV6RXhZajhWRlNvTUJBUUlVc2ZIbFdVakkwWmV3OE9kS0JnWU1LR1dsamNQQlFVS3RacWFMd2tIQnc0MkVoSWttNENBR3ozaTR0OG02K3ZOYVNjblRzMnlzbitmZFhYcUd3a0pFcDZEZ3gxMExDeFlMaG9hTkMwYkd6YXlibTdjN2xwYXRQdWdvRnYyVWxLa1RUczdkbUhXMXJmT3M3TjlleWtwVWo3ajQ5MXhMeTllbDRTRUUvVlRVNlpvMGRHNUFBQUFBQ3p0N2NGZ0lDQkFIL3o4NDhpeHNYbnRXMXUydm1wcTFFYkx5NDNadnI1blN6azVjdDVLU3BUVVRFeVk2RmhZc0VyUHo0VnIwTkM3S3UvdnhlV3FxazhXKy92dHhVTkRodGROVFpwVk16Tm1sSVdGRWM5RlJZb1ErZm5wQmdJQ0JJRi9mLzd3VUZDZ1JEdzhlTHFmbnlYanFLaEw4MUZSb3Y2am8xM0FRRUNBaW8rUEJhMlNrais4blowaFNEZzRjQVQxOWZIZnZMeGp3YmEyZDNYYTJxOWpJU0ZDTUJBUUlCci8vK1VPOC9QOWJkTFN2MHpOellFVURBd1lOUk1USmkvczdNUGhYMSsrb3BlWE5jeEVSSWc1RnhjdVY4VEVrL0tucDFXQ2ZuNzhSejA5ZXF4a1pNam5YVjI2S3hrWk1wVnpjK2FnWUdEQW1JR0JHZEZQVDU1LzNOeWpaaUlpUkg0cUtsU3JrSkE3ZzRpSUM4cEdSb3dwN3U3SDA3aTRhendVRkNoNTN0Nm40bDVldkIwTEN4WjIyOXV0TytEZzIxWXlNbVJPT2pwMEhnb0tGTnRKU1pJS0JnWU1iQ1FrU09SY1hMaGR3c0tmYnRQVHZlK3NyRU9tWW1MRXFKR1JPYVNWbFRFMzVPVFRpM2w1OGpMbjU5VkR5TWlMV1RjM2JyZHRiZHFNalkwQlpOWFZzZEpPVHB6Z3FhbEp0R3hzMlBwV1Zxd0g5UFR6SmVycXo2OWxaY3FPZW5yMDZhNnVSeGdJQ0JEVnVycHZpSGg0OEc4bEpVcHlMaTVjSkJ3Y09QR21wbGZIdExSelVjYkdseVBvNk10ODNkMmhuSFIwNkNFZkh6N2RTMHVXM0wyOVlZYUxpdzJGaW9vUGtIQnc0RUkrUG56RXRiVnhxbVptek5oSVNKQUZBd01HQWZiMjl4SU9EaHlqWVdIQ1h6VTFhdmxYVjY3UXVibHBrWWFHRjFqQndaa25IUjA2dVo2ZUp6amg0ZGtUK1BqcnM1aVlLek1SRVNLN2FXblNjTm5acVltT2pnZW5sSlF6dHB1YkxTSWVIanlTaDRjVklPbnB5VW5Pem9mL1ZWV3FlQ2dvVUhyZjM2V1BqSXdEK0tHaFdZQ0ppUWtYRFEwYTJyKy9aVEhtNXRmR1FrS0V1R2hvME1OQlFZS3dtWmtwZHkwdFdoRVBEeDdMc0xCNy9GUlVxTmE3dTIwNkZoWXNVS2YwVVZObFFYN0RwQmNhbGw0bk9zdHJxenZ4UlowZnExajZySk1ENDB0VitqQWc5bTEyclpGMnpJZ2xUQUwxL05mbFQ5ZkxLc1dBUkRVbWo2Tml0VWxhc2Q1bkc3b2xtQTdxUmVIQS9sMENkUy9ERXZCTWdhT1hSbzNHK2ROcjUxK1BBNVdja2hYcmVtMi8ybGxTbFMyRHZ0VFRJWFJZS1duZ1NVVEl5WTVxaWNKMWVIbU85R3MrV0puZGNia250ay9odmhldGlQQm1yQ0RKdERyT2ZSaEszMk9DTVJybFlETlJsMFYvVTJMZ2QyU3hoSzVydXh5Z2dmNlVLd2o1V0doSWNCbjlSWStIYk42VXQvaDdVaVBUYzZ2aUFrdHlWNDhmNHlxclZXWUhLT3V5QThLMUw1cDd4WWFsQ0RmVDhvY29NTEtsdnlPNmFnTUNYSUlXN1NzY3o0cVN0SG1uOFBJSDg2SGlhVTdOOU5wbDFiNEZCaDlpTk5HSy9xYkVuVk11TktCVjg2SXk0WW9GZGV2MnBEbnNnd3VxNzJCQUJwOXhYbEVRYnIzNWlpRStQUWJkbHE0RlB0MUd2ZVpOdFkxVWtRVmR4SEZ2MUFZRS94VlFZQ1Q3bUJtWDZiM1d6RU5BaVhlZTJXZTlRdWl3aUl1SkJ6aGJHZWZiN3NoNVJ3cDhvZWtQUW56SkhvVDRBQUFBQUlPR2dBbEk3U3N5ckhBUkhrNXlXbXo3L3c3OVZqaUZEeDdWcmowbk9TMDJaTmtQQ2lHbVhHalJWRnViT2k0MkpMRm5DZ3dQNTFlVDBwYnV0SjZSbXh0UHhjQ0FvaURjWVdsTGQxb1dHaEljQ3JxVDR1VXFvTUJENENJOEhSY2JFZ3NOQ1E2dHg0dnl1YWkyTGNpcEhoU0ZHZkZYVEFkMXI3dmRtZTc5WUgram55WUI5N3oxY2x6Rk8yWkVOSDc3VzNZcFE0dmN4aVBMYVB6dHRtUHg1TGpLM0RIWEVJVmpRa0FpbHhNZ0VjYUVmU1JLaGZnOXU5SVJNdm11YmFFcHgwc3ZuaDN6TUxMYzdGS0dEZERqd1hkc0ZyTXJtYmx3cWZwSWxCRWlaT2xIeEl6OHFCby84S0RZTEgxVzc1QXpJc2RPU1lmQjBUalovcUxLakRZTDFKalBnZldtS041NnBTYU90OXFrdjYwLzVKMDZMQTJTZUZDYnpGOXFZa1orVk1JVGpmYm91TmlRWHZjNUx2V3Z3NEsrZ0YyZmZKUFFhYWt0MVcrekVpWFBPNW1zeUtkOUdCQnVZNXpvZTdzNzJ3bDRKczMwR0ZsdUFiZWE3S2lhVDRObGJwWG1mdWIvcWdqUHZDSG02Qlh2Mlp2bnVzNDJiMHJVQ1ovcTFueXdLYSt5cERFeEl6OHFNSlNseHNCbW9qVTN2RTUwcHNxQy9MRFFrT0FWMktjelNwZ0U4ZmZhN0VFT1VNMS9ML2FSRjQzV1RYWk5zTzlEVkUycXpOOEVsdVRqdGRHZUc0aHFUTGdmTE1GL1VXVkdCT3BlblYwMWpBRnpkSWY2TGtFTCsxb2RaN05TMHR1U00xWVE2Uk5IMW0yTVlkZWFlZ3loTjQ0VStGbUpQQlByN2llcHpqWEpZYmZ0NVJ6aFBMRkhlbG5mMHB3L2MvSlZlYzRVR0w4M3gzUHF6ZmRUVzZyOVh4UnZQZCtHMjBSNGdmT3Z5ajdFYUxrc05DUTRYMENqd25MREhSWU1KZUs4aTBrOEtFR1ZEZjl4QWFnNTNyTU1DSnprdE5pUXdWWmtZWVRMZTNDMk10VjBYR3hJUWxlNDBGSUphdFV3TnFVNHYwQ2pub0h6MS90ODR6bUNteS8vaHpTT1EwVEUzdW5MVkh1VU1xYkNJejN1VEpVTFF2ckRUZ2d1b1dZbzJTU3lkbHVpU1cyTDBTVnkrUFpraG1pWUZ0U2tYTXhkWmJhU2JIQklVUDN0dWRwZUZVWlhwNDJkaEpEWXF3Q012Tk1LOStSWUJiaXpSUWJRTEI2UHlqOFBBc0d2dlFNQkU0cHJPcEVSUVU5bjNPcVg4cy9POExUbWM1YXNkQ0xuclRXRjR2azM2QngxMzI1SDhScHhIU25GaVcrM1lnNnFHTDRiL0ZZK1M4YlNlU0NhMjhEK2VNMWE5Qi9kcURPSUI4Y3hzUklRV1NlQTdGOWdVWCtwR2JWS0RTM2xlcCtUeVp6dm9PQTdUYTRxOWJESTY3czhnMU9aWVJjckJINjZkOVltNFdrVVkxVWhESDBCQWdRSUVDQkFnQnMyYVc1bWFXNXBkSGtBUm1WaWNuVmhjbmtBU21GdWRXRnllUUJLZFd4NUFGUm9kWEp6WkdGNUFGUjFaWE5rWVhrQVYyVmtibVZ6WkdGNUFGTmhkSFZ5WkdGNUFGTjFibVJoZVFCTmIyNWtZWGtBUm5KcFpHRjVBRTFoZVFBbGJTOGxaQzhsZVFBdEt5QWdJREJZTUhnQUxUQllLekJZSURCWUxUQjRLekI0SURCNEFFNXZkZ0JVYUhVQVFYVm5kWE4wQUU5amRBQlRZWFFBUVhCeUFIWmxZM1J2Y2dCUFkzUnZZbVZ5QUU1dmRtVnRZbVZ5QUZObGNIUmxiV0psY2dCRVpXTmxiV0psY2dCcGIzTmZZbUZ6WlRvNlkyeGxZWElBVFdGeUFGTmxjQUFsU1RvbFRUb2xVeUFsY0FCVGRXNEFTblZ1QUhOMFpEbzZaWGhqWlhCMGFXOXVBRjlmWTNoaFgyZDFZWEprWDJGamNYVnBjbVVnWkdWMFpXTjBaV1FnY21WamRYSnphWFpsSUdsdWFYUnBZV3hwZW1GMGFXOXVBRTF2YmdCdVlXNEFTbUZ1QUVwMWJBQnNiQUJCY0hKcGJBQkdjbWtBVFdGeVkyZ0FRWFZuQUdsdVpnQWxMakJNWmdBbFRHWUFZV3hzYjJOaGRHOXlQRlErT2pwaGJHeHZZMkYwWlNoemFYcGxYM1FnYmlrZ0oyNG5JR1Y0WTJWbFpITWdiV0Y0YVcxMWJTQnpkWEJ3YjNKMFpXUWdjMmw2WlFCMGNuVmxBRlIxWlFCbVlXeHpaUUJLZFc1bEFGZGxaQUJFWldNQVJtVmlBQ1ZoSUNWaUlDVmtJQ1ZJT2lWTk9pVlRJQ1ZaQUZCUFUwbFlBQ1ZJT2lWTk9pVlRBRTVCVGdCUVRRQkJUUUJNUTE5QlRFd0FURUZPUndCSlRrWUFRd0F3TVRJek5EVTJOemc1QUVNdVZWUkdMVGdBWVhCd1gzWXlBSGRsWWw5Mk1nQkJRa05FUlVaSFNFbEtTMHhOVGs5UVVWSlRWRlZXVjFoWldtRmlZMlJsWm1kb2FXcHJiRzF1YjNCeGNuTjBkWFozZUhsNk1ERXlNelExTmpjNE9Tc3ZBQzRBS0c1MWJHd3BBRkIxY21VZ2RtbHlkSFZoYkNCbWRXNWpkR2x2YmlCallXeHNaV1FoQUZ0b1JVdWNxKzVIeWdUMEJRQUFBQUFBQUFCb0VRQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFJQUFBQUFBQUFBS0FSQUFBU0FBQUFFd0FBQVBqLy8vLzQvLy8vb0JFQUFCUUFBQUFWQUFBQUFCQUFBQlFRQUFBRUFBQUFBQUFBQU9nUkFBQVdBQUFBRndBQUFQei8vLy84Ly8vLzZCRUFBQmdBQUFBWkFBQUFNQkFBQUVRUUFBQU1BQUFBQUFBQUFJQVNBQUFhQUFBQUd3QUFBQVFBQUFENC8vLy9nQklBQUJ3QUFBQWRBQUFBOVAvLy8vVC8vLytBRWdBQUhnQUFBQjhBQUFCZ0VBQUFEQklBQUNBU0FBQTBFZ0FBU0JJQUFJZ1FBQUIwRUFBQUFBQUFBT1FTQUFBZ0FBQUFJUUFBQUFZQUFBQUhBQUFBSWdBQUFDTUFBQUFLQUFBQUN3QUFBQXdBQUFBa0FBQUFEZ0FBQUNVQUFBQVFBQUFBSmdBQUFBQUFBQUFvRVFBQUp3QUFBQ2dBQUFCT1UzUXpYMTh5T1dKaGMybGpYMmx2YzBsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSUUFBQUJnL0FBRDhFQUFBV0JRQUFFNVRkRE5mWHpJeE5XSmhjMmxqWDNOMGNtVmhiV0oxWmtsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSUUFBQUFEd1BnQUFOQkVBQUU1VGRETmZYekl4TTJKaGMybGpYMmx6ZEhKbFlXMUpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVVQUFIUS9BQUJ3RVFBQUFBQUFBQUVBQUFBb0VRQUFBL1QvLzA1VGRETmZYekl4TTJKaGMybGpYMjl6ZEhKbFlXMUpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVVQUFIUS9BQUM0RVFBQUFBQUFBQUVBQUFBb0VRQUFBL1QvL3d3QUFBQUFBQUFBb0JFQUFCSUFBQUFUQUFBQTlQLy8vL1QvLy8rZ0VRQUFGQUFBQUJVQUFBQUVBQUFBQUFBQUFPZ1JBQUFXQUFBQUZ3QUFBUHovLy8vOC8vLy82QkVBQUJnQUFBQVpBQUFBVGxOME0xOWZNakUwWW1GemFXTmZhVzl6ZEhKbFlXMUpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVVQWREOEFBRkFTQUFBREFBQUFBZ0FBQUtBUkFBQUNBQUFBNkJFQUFBSUlBQUJPVTNRelgxOHlNVFZpWVhOcFkxOXpkSEpwYm1kaWRXWkpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGVGxOZk9XRnNiRzlqWVhSdmNrbGpSVVZGUlFBQUFCZy9BQUNnRWdBQWFCRUFBRUFBQUFBQUFBQUFLQlFBQUNrQUFBQXFBQUFBT0FBQUFQai8vLzhvRkFBQUt3QUFBQ3dBQUFEQS8vLy93UC8vL3lnVUFBQXRBQUFBTGdBQUFQd1NBQUJnRXdBQW5CTUFBTEFUQUFERUV3QUEyQk1BQUlnVEFBQjBFd0FBSkJNQUFCQVRBQUJBQUFBQUFBQUFBSUFTQUFBYUFBQUFHd0FBQURnQUFBRDQvLy8vZ0JJQUFCd0FBQUFkQUFBQXdQLy8vOEQvLy8rQUVnQUFIZ0FBQUI4QUFBQkFBQUFBQUFBQUFLQVJBQUFTQUFBQUV3QUFBTUQvLy8vQS8vLy9vQkVBQUJRQUFBQVZBQUFBT0FBQUFBQUFBQURvRVFBQUZnQUFBQmNBQUFESS8vLy95UC8vLytnUkFBQVlBQUFBR1FBQUFFNVRkRE5mWHpJeE9HSmhjMmxqWDNOMGNtbHVaM04wY21WaGJVbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZPVTE4NVlXeHNiMk5oZEc5eVNXTkZSVVZGQUFBQUFCZy9BQURnRXdBQWdCSUFBQUFBQUFCWUZBQUFMd0FBQURBQUFBQk9VM1F6WDE4eU9HbHZjMTlpWVhObFJRQUFBUEErQUFCRUZBQUEwWFNlQUZlZHZTcUFjRklQLy84K0p3b0FBQUJrQUFBQTZBTUFBQkFuQUFDZ2hnRUFRRUlQQUlDV21BQUE0ZlVGR0FBQUFEVUFBQUJ4QUFBQWEvLy8vODc3Ly8rU3YvLy9BQUFBQUFBQUFBRC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQUFFQ0F3UUZCZ2NJQ2YvLy8vLy8vLzhLQ3d3TkRnOFFFUklURkJVV0Z4Z1pHaHNjSFI0ZklDRWlJLy8vLy8vLy93b0xEQTBPRHhBUkVoTVVGUllYR0JrYUd4d2RIaDhnSVNJai8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3dBQkFnUUhBd1lGQUFBQUFBQUFBQUlBQU1BREFBREFCQUFBd0FVQUFNQUdBQURBQndBQXdBZ0FBTUFKQUFEQUNnQUF3QXNBQU1BTUFBREFEUUFBd0E0QUFNQVBBQURBRUFBQXdCRUFBTUFTQUFEQUV3QUF3QlFBQU1BVkFBREFGZ0FBd0JjQUFNQVlBQURBR1FBQXdCb0FBTUFiQUFEQUhBQUF3QjBBQU1BZUFBREFId0FBd0FBQUFMTUJBQUREQWdBQXd3TUFBTU1FQUFEREJRQUF3d1lBQU1NSEFBRERDQUFBd3drQUFNTUtBQUREQ3dBQXd3d0FBTU1OQUFEVERnQUF3dzhBQU1NQUFBeTdBUUFNd3dJQURNTURBQXpEQkFBTTJ3QUFBQURlRWdTVkFBQUFBUC8vLy8vLy8vLy8vLy8vLzVBV0FBQVVBQUFBUXk1VlZFWXRPQUJCNEMwTEFxUVdBRUdBTGd0SFRFTmZRMVJaVUVVQUFBQUFURU5mVGxWTlJWSkpRd0FBVEVOZlZFbE5SUUFBQUFBQVRFTmZRMDlNVEVGVVJRQUFURU5mVFU5T1JWUkJVbGtBVEVOZlRVVlRVMEZIUlZNQVFkQXVDMEVaQUFvQUdSa1pBQUFBQUFVQUFBQUFBQUFKQUFBQUFBc0FBQUFBQUFBQUFCa0FFUW9aR1JrRENnY0FBUUFKQ3hnQUFBa0dDd0FBQ3dBR0dRQUFBQmtaR1FCQm9TOExJUTRBQUFBQUFBQUFBQmtBQ2cwWkdSa0FEUUFBQWdBSkRnQUFBQWtBRGdBQURnQkIyeThMQVF3QVFlY3ZDeFVUQUFBQUFCTUFBQUFBQ1F3QUFBQUFBQXdBQUF3QVFaVXdDd0VRQUVHaE1Bc1ZEd0FBQUFRUEFBQUFBQWtRQUFBQUFBQVFBQUFRQUVIUE1Bc0JFZ0JCMnpBTEhoRUFBQUFBRVFBQUFBQUpFZ0FBQUFBQUVnQUFFZ0FBR2dBQUFCb2FHZ0JCa2pFTERob0FBQUFhR2hvQUFBQUFBQUFKQUVIRE1Rc0JGQUJCenpFTEZSY0FBQUFBRndBQUFBQUpGQUFBQUFBQUZBQUFGQUJCL1RFTEFSWUFRWWt5Q3lrVkFBQUFBQlVBQUFBQUNSWUFBQUFBQUJZQUFCWUFBREF4TWpNME5UWTNPRGxCUWtORVJVWkFHZ0JCd0RRTC93RUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQURJQUlnQWlBQ0lBSWdBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBV0FFd0FUQUJNQUV3QVRBQk1BRXdBVEFCTUFFd0FUQUJNQUV3QVRBQk1BSTJBallDTmdJMkFqWUNOZ0kyQWpZQ05nSTJBVEFCTUFFd0FUQUJNQUV3QVRBQ05VSTFRalZDTlVJMVFqVkNNVUl4UWpGQ01VSXhRakZDTVVJeFFqRkNNVUl4UWpGQ01VSXhRakZDTVVJeFFqRkNNVUl4UVRBQk1BRXdBVEFCTUFFd0FqV0NOWUkxZ2pXQ05ZSTFnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlFd0FUQUJNQUV3QUlBUWNBNEN3SlFIZ0JCMUR3TCtRTUJBQUFBQWdBQUFBTUFBQUFFQUFBQUJRQUFBQVlBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFBQUFFUUFBQUJJQUFBQVRBQUFBRkFBQUFCVUFBQUFXQUFBQUZ3QUFBQmdBQUFBWkFBQUFHZ0FBQUJzQUFBQWNBQUFBSFFBQUFCNEFBQUFmQUFBQUlBQUFBQ0VBQUFBaUFBQUFJd0FBQUNRQUFBQWxBQUFBSmdBQUFDY0FBQUFvQUFBQUtRQUFBQ29BQUFBckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFEQUFBQUF4QUFBQU1nQUFBRE1BQUFBMEFBQUFOUUFBQURZQUFBQTNBQUFBT0FBQUFEa0FBQUE2QUFBQU93QUFBRHdBQUFBOUFBQUFQZ0FBQUQ4QUFBQkFBQUFBUVFBQUFFSUFBQUJEQUFBQVJBQUFBRVVBQUFCR0FBQUFSd0FBQUVnQUFBQkpBQUFBU2dBQUFFc0FBQUJNQUFBQVRRQUFBRTRBQUFCUEFBQUFVQUFBQUZFQUFBQlNBQUFBVXdBQUFGUUFBQUJWQUFBQVZnQUFBRmNBQUFCWUFBQUFXUUFBQUZvQUFBQmJBQUFBWEFBQUFGMEFBQUJlQUFBQVh3QUFBR0FBQUFCQkFBQUFRZ0FBQUVNQUFBQkVBQUFBUlFBQUFFWUFBQUJIQUFBQVNBQUFBRWtBQUFCS0FBQUFTd0FBQUV3QUFBQk5BQUFBVGdBQUFFOEFBQUJRQUFBQVVRQUFBRklBQUFCVEFBQUFWQUFBQUZVQUFBQldBQUFBVndBQUFGZ0FBQUJaQUFBQVdnQUFBSHNBQUFCOEFBQUFmUUFBQUg0QUFBQi9BRUhReEFBTEFtQWtBRUhreUFBTCtRTUJBQUFBQWdBQUFBTUFBQUFFQUFBQUJRQUFBQVlBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFBQUFFUUFBQUJJQUFBQVRBQUFBRkFBQUFCVUFBQUFXQUFBQUZ3QUFBQmdBQUFBWkFBQUFHZ0FBQUJzQUFBQWNBQUFBSFFBQUFCNEFBQUFmQUFBQUlBQUFBQ0VBQUFBaUFBQUFJd0FBQUNRQUFBQWxBQUFBSmdBQUFDY0FBQUFvQUFBQUtRQUFBQ29BQUFBckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFEQUFBQUF4QUFBQU1nQUFBRE1BQUFBMEFBQUFOUUFBQURZQUFBQTNBQUFBT0FBQUFEa0FBQUE2QUFBQU93QUFBRHdBQUFBOUFBQUFQZ0FBQUQ4QUFBQkFBQUFBWVFBQUFHSUFBQUJqQUFBQVpBQUFBR1VBQUFCbUFBQUFad0FBQUdnQUFBQnBBQUFBYWdBQUFHc0FBQUJzQUFBQWJRQUFBRzRBQUFCdkFBQUFjQUFBQUhFQUFBQnlBQUFBY3dBQUFIUUFBQUIxQUFBQWRnQUFBSGNBQUFCNEFBQUFlUUFBQUhvQUFBQmJBQUFBWEFBQUFGMEFBQUJlQUFBQVh3QUFBR0FBQUFCaEFBQUFZZ0FBQUdNQUFBQmtBQUFBWlFBQUFHWUFBQUJuQUFBQWFBQUFBR2tBQUFCcUFBQUFhd0FBQUd3QUFBQnRBQUFBYmdBQUFHOEFBQUJ3QUFBQWNRQUFBSElBQUFCekFBQUFkQUFBQUhVQUFBQjJBQUFBZHdBQUFIZ0FBQUI1QUFBQWVnQUFBSHNBQUFCOEFBQUFmUUFBQUg0QUFBQi9BRUhnMEFBTHdRRXdNVEl6TkRVMk56ZzVZV0pqWkdWbVFVSkRSRVZHZUZnckxYQlFhVWx1VGdBbEFBQUFBQUFsY0FBQUFBQWxTVG9sVFRvbFV5QWxjQ1ZJT2lWTkFBQUFKUUFBQUcwQUFBQXZBQUFBSlFBQUFHUUFBQUF2QUFBQUpRQUFBSGtBQUFBbEFBQUFXUUFBQUMwQUFBQWxBQUFBYlFBQUFDMEFBQUFsQUFBQVpBQUFBQ1VBQUFCSkFBQUFPZ0FBQUNVQUFBQk5BQUFBT2dBQUFDVUFBQUJUQUFBQUlBQUFBQ1VBQUFCd0FBQUFBQUFBQUNVQUFBQklBQUFBT2dBQUFDVUFBQUJOQUVHdzBnQUwyUU1sQUFBQVNBQUFBRG9BQUFBbEFBQUFUUUFBQURvQUFBQWxBQUFBVXdBQUFBQUFBQUMwTFFBQVJ3QUFBRWdBQUFCSkFBQUFBQUFBQUJRdUFBQktBQUFBU3dBQUFFa0FBQUJNQUFBQVRRQUFBRTRBQUFCUEFBQUFVQUFBQUZFQUFBQlNBQUFBVXdBQUFBQUFBQUI4TFFBQVZBQUFBRlVBQUFCSkFBQUFWZ0FBQUZjQUFBQllBQUFBV1FBQUFGb0FBQUJiQUFBQVhBQUFBQUFBQUFCTUxnQUFYUUFBQUY0QUFBQkpBQUFBWHdBQUFHQUFBQUJoQUFBQVlnQUFBR01BQUFBQUFBQUFjQzRBQUdRQUFBQmxBQUFBU1FBQUFHWUFBQUJuQUFBQWFBQUFBR2tBQUFCcUFBQUFkQUFBQUhJQUFBQjFBQUFBWlFBQUFBQUFBQUJtQUFBQVlRQUFBR3dBQUFCekFBQUFaUUFBQUFBQUFBQWxBQUFBYlFBQUFDOEFBQUFsQUFBQVpBQUFBQzhBQUFBbEFBQUFlUUFBQUFBQUFBQWxBQUFBU0FBQUFEb0FBQUFsQUFBQVRRQUFBRG9BQUFBbEFBQUFVd0FBQUFBQUFBQWxBQUFBWVFBQUFDQUFBQUFsQUFBQVlnQUFBQ0FBQUFBbEFBQUFaQUFBQUNBQUFBQWxBQUFBU0FBQUFEb0FBQUFsQUFBQVRRQUFBRG9BQUFBbEFBQUFVd0FBQUNBQUFBQWxBQUFBV1FBQUFBQUFBQUFsQUFBQVNRQUFBRG9BQUFBbEFBQUFUUUFBQURvQUFBQWxBQUFBVXdBQUFDQUFBQUFsQUFBQWNBQkJsTllBQzVZSlBDc0FBR3NBQUFCc0FBQUFTUUFBQUU1VGRETmZYekkyYkc5allXeGxOV1poWTJWMFJRQUFBQmcvQUFBa0t3QUFnRDRBQUFBQUFBQzhLd0FBYXdBQUFHMEFBQUJKQUFBQWJnQUFBRzhBQUFCd0FBQUFjUUFBQUhJQUFBQnpBQUFBZEFBQUFIVUFBQUIyQUFBQWR3QUFBSGdBQUFCNUFBQUFUbE4wTTE5Zk1qVmpkSGx3WlVsM1JVVUFUbE4wTTE5Zk1qRXdZM1I1Y0dWZlltRnpaVVVBQVBBK0FBQ2VLd0FBZEQ4QUFJd3JBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUF0Q3NBQUFJQUFBQUFBQUFBVUN3QUFHc0FBQUI2QUFBQVNRQUFBSHNBQUFCOEFBQUFmUUFBQUg0QUFBQi9BQUFBZ0FBQUFJRUFBQUJPVTNRelgxOHlOMk52WkdWamRuUkpZMk14TVY5ZmJXSnpkR0YwWlY5MFJVVUFUbE4wTTE5Zk1qRXlZMjlrWldOMmRGOWlZWE5sUlFBQUFBRHdQZ0FBTGl3QUFIUS9BQUFNTEFBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQUVnc0FBQUNBQUFBQUFBQUFNUXNBQUJyQUFBQWdnQUFBRWtBQUFDREFBQUFoQUFBQUlVQUFBQ0dBQUFBaHdBQUFJZ0FBQUNKQUFBQVRsTjBNMTlmTWpkamIyUmxZM1owU1VSell6RXhYMTl0WW5OMFlYUmxYM1JGUlFBQWREOEFBS0FzQUFBQUFBQUFBZ0FBQUR3ckFBQUNBQUFBU0N3QUFBSUFBQUFBQUFBQU9DMEFBR3NBQUFDS0FBQUFTUUFBQUlzQUFBQ01BQUFBalFBQUFJNEFBQUNQQUFBQWtBQUFBSkVBQUFCT1UzUXpYMTh5TjJOdlpHVmpkblJKUkdsak1URmZYMjFpYzNSaGRHVmZkRVZGQUFCMFB3QUFGQzBBQUFBQUFBQUNBQUFBUENzQUFBSUFBQUJJTEFBQUFnQUFBRTVUZEROZlh6STNZMjlrWldOMmRFbDNZekV4WDE5dFluTjBZWFJsWDNSRlJRQUFBSFEvQUFCWUxRQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFFZ3NBQUFDQUFBQVRsTjBNMTlmTWpac2IyTmhiR1UxWDE5cGJYQkZBQUFBR0Q4QUFKd3RBQUE4S3dBQVRsTjBNMTlmTWpkamIyeHNZWFJsU1dORlJRQVlQd0FBd0MwQUFEd3JBQUJPVTNRelgxOHlOMk52Ykd4aGRHVkpkMFZGQUJnL0FBRGdMUUFBUENzQUFFNVRkRE5mWHpJMVkzUjVjR1ZKWTBWRkFBQUFkRDhBQUFBdUFBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQXRDc0FBQUlBQUFCT1UzUXpYMTh5T0c1MWJYQjFibU4wU1dORlJRQUFBQUFZUHdBQU5DNEFBRHdyQUFCT1UzUXpYMTh5T0c1MWJYQjFibU4wU1hkRlJRQUFBQUFZUHdBQVdDNEFBRHdyQUFBQUFBQUExQzBBQUpJQUFBQ1RBQUFBU1FBQUFKUUFBQUNWQUFBQWxnQUFBQUFBQUFEMExRQUFsd0FBQUpnQUFBQkpBQUFBbVFBQUFKb0FBQUNiQUFBQUFBQUFBSkF2QUFCckFBQUFuQUFBQUVrQUFBQ2RBQUFBbmdBQUFKOEFBQUNnQUFBQW9RQUFBS0lBQUFDakFBQUFwQUFBQUtVQUFBQ21BQUFBcHdBQUFFNVRkRE5mWHpJM2JuVnRYMmRsZEVsalRsTmZNVGxwYzNSeVpXRnRZblZtWDJsMFpYSmhkRzl5U1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZSVVVBVGxOME0xOWZNamxmWDI1MWJWOW5aWFJKWTBWRkFFNVRkRE5mWHpJeE5GOWZiblZ0WDJkbGRGOWlZWE5sUlFBQThENEFBRll2QUFCMFB3QUFRQzhBQUFBQUFBQUJBQUFBY0M4QUFBQUFBQUIwUHdBQS9DNEFBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQjRMd0JCdE44QUM4b0JaREFBQUdzQUFBQ29BQUFBU1FBQUFLa0FBQUNxQUFBQXF3QUFBS3dBQUFDdEFBQUFyZ0FBQUs4QUFBQ3dBQUFBc1FBQUFMSUFBQUN6QUFBQVRsTjBNMTlmTWpkdWRXMWZaMlYwU1hkT1UxOHhPV2x6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKZDA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KZDBWRlJVVkZSUUJPVTNRelgxOHlPVjlmYm5WdFgyZGxkRWwzUlVVQUFBQjBQd0FBTkRBQUFBQUFBQUFCQUFBQWNDOEFBQUFBQUFCMFB3QUE4QzhBQUFBQUFBQUNBQUFBUENzQUFBSUFBQUJNTUFCQmlPRUFDOTRCVERFQUFHc0FBQUMwQUFBQVNRQUFBTFVBQUFDMkFBQUF0d0FBQUxnQUFBQzVBQUFBdWdBQUFMc0FBQUM4QUFBQVRsTjBNMTlmTWpkdWRXMWZjSFYwU1dOT1UxOHhPVzl6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlJVVkZSUUJPVTNRelgxOHlPVjlmYm5WdFgzQjFkRWxqUlVVQVRsTjBNMTlmTWpFMFgxOXVkVzFmY0hWMFgySmhjMlZGQUFEd1BnQUFFakVBQUhRL0FBRDhNQUFBQUFBQUFBRUFBQUFzTVFBQUFBQUFBSFEvQUFDNE1BQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFEUXhBRUh3NGdBTHZnRVVNZ0FBYXdBQUFMMEFBQUJKQUFBQXZnQUFBTDhBQUFEQUFBQUF3UUFBQU1JQUFBRERBQUFBeEFBQUFNVUFBQUJPVTNRelgxOHlOMjUxYlY5d2RYUkpkMDVUWHpFNWIzTjBjbVZoYldKMVpsOXBkR1Z5WVhSdmNrbDNUbE5mTVRGamFHRnlYM1J5WVdsMGMwbDNSVVZGUlVWRkFFNVRkRE5mWHpJNVgxOXVkVzFmY0hWMFNYZEZSUUFBQUhRL0FBRGtNUUFBQUFBQUFBRUFBQUFzTVFBQUFBQUFBSFEvQUFDZ01RQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFQd3hBRUc0NUFBTG1nc1VNd0FBeGdBQUFNY0FBQUJKQUFBQXlBQUFBTWtBQUFES0FBQUF5d0FBQU13QUFBRE5BQUFBemdBQUFQai8vLzhVTXdBQXp3QUFBTkFBQUFEUkFBQUEwZ0FBQU5NQUFBRFVBQUFBMVFBQUFFNVRkRE5mWHpJNGRHbHRaVjluWlhSSlkwNVRYekU1YVhOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSVVZGQUU1VGRETmZYekk1ZEdsdFpWOWlZWE5sUlFEd1BnQUF6VElBQUU1VGRETmZYekl5TUY5ZmRHbHRaVjluWlhSZlkxOXpkRzl5WVdkbFNXTkZSUUFBQVBBK0FBRG9NZ0FBZEQ4QUFJZ3lBQUFBQUFBQUF3QUFBRHdyQUFBQ0FBQUE0RElBQUFJQUFBQU1Nd0FBQUFnQUFBQUFBQUFBTkFBQTFnQUFBTmNBQUFCSkFBQUEyQUFBQU5rQUFBRGFBQUFBMndBQUFOd0FBQURkQUFBQTNnQUFBUGovLy84QU5BQUEzd0FBQU9BQUFBRGhBQUFBNGdBQUFPTUFBQURrQUFBQTVRQUFBRTVUZEROZlh6STRkR2x0WlY5blpYUkpkMDVUWHpFNWFYTjBjbVZoYldKMVpsOXBkR1Z5WVhSdmNrbDNUbE5mTVRGamFHRnlYM1J5WVdsMGMwbDNSVVZGUlVWRkFFNVRkRE5mWHpJeU1GOWZkR2x0WlY5blpYUmZZMTl6ZEc5eVlXZGxTWGRGUlFBQThENEFBTlV6QUFCMFB3QUFrRE1BQUFBQUFBQURBQUFBUENzQUFBSUFBQURnTWdBQUFnQUFBUGd6QUFBQUNBQUFBQUFBQUtRMEFBRG1BQUFBNXdBQUFFa0FBQURvQUFBQVRsTjBNMTlmTWpoMGFXMWxYM0IxZEVsalRsTmZNVGx2YzNSeVpXRnRZblZtWDJsMFpYSmhkRzl5U1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZSVVVBVGxOME0xOWZNakV3WDE5MGFXMWxYM0IxZEVVQUFBRHdQZ0FBaFRRQUFIUS9BQUJBTkFBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQUp3MEFBQUFDQUFBQUFBQUFDUTFBQURwQUFBQTZnQUFBRWtBQUFEckFBQUFUbE4wTTE5Zk1qaDBhVzFsWDNCMWRFbDNUbE5mTVRsdmMzUnlaV0Z0WW5WbVgybDBaWEpoZEc5eVNYZE9VMTh4TVdOb1lYSmZkSEpoYVhSelNYZEZSVVZGUlVVQUFBQUFkRDhBQU53MEFBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQW5EUUFBQUFJQUFBQUFBQUF1RFVBQUdzQUFBRHNBQUFBU1FBQUFPMEFBQUR1QUFBQTd3QUFBUEFBQUFEeEFBQUE4Z0FBQVBNQUFBRDBBQUFBOVFBQUFFNVRkRE5mWHpJeE1HMXZibVY1Y0hWdVkzUkpZMHhpTUVWRlJRQk9VM1F6WDE4eU1UQnRiMjVsZVY5aVlYTmxSUUFBQUFEd1BnQUFtRFVBQUhRL0FBQjhOUUFBQUFBQUFBSUFBQUE4S3dBQUFnQUFBTEExQUFBQ0FBQUFBQUFBQUN3MkFBQnJBQUFBOWdBQUFFa0FBQUQzQUFBQStBQUFBUGtBQUFENkFBQUErd0FBQVB3QUFBRDlBQUFBL2dBQUFQOEFBQUJPVTNRelgxOHlNVEJ0YjI1bGVYQjFibU4wU1dOTVlqRkZSVVVBZEQ4QUFCQTJBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFzRFVBQUFJQUFBQUFBQUFBb0RZQUFHc0FBQUFBQVFBQVNRQUFBQUVCQUFBQ0FRQUFBd0VBQUFRQkFBQUZBUUFBQmdFQUFBY0JBQUFJQVFBQUNRRUFBRTVUZEROZlh6SXhNRzF2Ym1WNWNIVnVZM1JKZDB4aU1FVkZSUUIwUHdBQWhEWUFBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQ3dOUUFBQWdBQUFBQUFBQUFVTndBQWF3QUFBQW9CQUFCSkFBQUFDd0VBQUF3QkFBQU5BUUFBRGdFQUFBOEJBQUFRQVFBQUVRRUFBQklCQUFBVEFRQUFUbE4wTTE5Zk1qRXdiVzl1Wlhsd2RXNWpkRWwzVEdJeFJVVkZBSFEvQUFENE5nQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFMQTFBQUFDQUFBQUFBQUFBTGczQUFCckFBQUFGQUVBQUVrQUFBQVZBUUFBRmdFQUFFNVRkRE5mWHpJNWJXOXVaWGxmWjJWMFNXTk9VMTh4T1dsemRISmxZVzFpZFdaZmFYUmxjbUYwYjNKSlkwNVRYekV4WTJoaGNsOTBjbUZwZEhOSlkwVkZSVVZGUlFCT1UzUXpYMTh5TVRGZlgyMXZibVY1WDJkbGRFbGpSVVVBQVBBK0FBQ1dOd0FBZEQ4QUFGQTNBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFzRGNBUWR6dkFBdWFBVnc0QUFCckFBQUFGd0VBQUVrQUFBQVlBUUFBR1FFQUFFNVRkRE5mWHpJNWJXOXVaWGxmWjJWMFNYZE9VMTh4T1dsemRISmxZVzFpZFdaZmFYUmxjbUYwYjNKSmQwNVRYekV4WTJoaGNsOTBjbUZwZEhOSmQwVkZSVVZGUlFCT1UzUXpYMTh5TVRGZlgyMXZibVY1WDJkbGRFbDNSVVVBQVBBK0FBQTZPQUFBZEQ4QUFQUTNBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFWRGdBUVlIeEFBdVpBVGtBQUdzQUFBQWFBUUFBU1FBQUFCc0JBQUFjQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjl3ZFhSSlkwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmY0hWMFNXTkZSUUFBOEQ0QUFONDRBQUIwUHdBQW1EZ0FBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBRDRPQUJCcFBJQUM1b0JwRGtBQUdzQUFBQWRBUUFBU1FBQUFCNEJBQUFmQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjl3ZFhSSmQwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsM1RsTmZNVEZqYUdGeVgzUnlZV2wwYzBsM1JVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmY0hWMFNYZEZSUUFBOEQ0QUFJSTVBQUIwUHdBQVBEa0FBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQ2NPUUJCeVBNQUM3a0lIRG9BQUdzQUFBQWdBUUFBU1FBQUFDRUJBQUFpQVFBQUl3RUFBRTVUZEROZlh6STRiV1Z6YzJGblpYTkpZMFZGQUU1VGRETmZYekl4TTIxbGMzTmhaMlZ6WDJKaGMyVkZBQUFBQVBBK0FBRDVPUUFBZEQ4QUFPUTVBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFGRG9BQUFJQUFBQUFBQUFBZERvQUFHc0FBQUFrQVFBQVNRQUFBQ1VCQUFBbUFRQUFKd0VBQUU1VGRETmZYekk0YldWemMyRm5aWE5KZDBWRkFBQUFBSFEvQUFCY09nQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFCUTZBQUFDQUFBQVV3QUFBSFVBQUFCdUFBQUFaQUFBQUdFQUFBQjVBQUFBQUFBQUFFMEFBQUJ2QUFBQWJnQUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQlVBQUFBZFFBQUFHVUFBQUJ6QUFBQVpBQUFBR0VBQUFCNUFBQUFBQUFBQUZjQUFBQmxBQUFBWkFBQUFHNEFBQUJsQUFBQWN3QUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQlVBQUFBYUFBQUFIVUFBQUJ5QUFBQWN3QUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQkdBQUFBY2dBQUFHa0FBQUJrQUFBQVlRQUFBSGtBQUFBQUFBQUFVd0FBQUdFQUFBQjBBQUFBZFFBQUFISUFBQUJrQUFBQVlRQUFBSGtBQUFBQUFBQUFVd0FBQUhVQUFBQnVBQUFBQUFBQUFFMEFBQUJ2QUFBQWJnQUFBQUFBQUFCVUFBQUFkUUFBQUdVQUFBQUFBQUFBVndBQUFHVUFBQUJrQUFBQUFBQUFBRlFBQUFCb0FBQUFkUUFBQUFBQUFBQkdBQUFBY2dBQUFHa0FBQUFBQUFBQVV3QUFBR0VBQUFCMEFBQUFBQUFBQUVvQUFBQmhBQUFBYmdBQUFIVUFBQUJoQUFBQWNnQUFBSGtBQUFBQUFBQUFSZ0FBQUdVQUFBQmlBQUFBY2dBQUFIVUFBQUJoQUFBQWNnQUFBSGtBQUFBQUFBQUFUUUFBQUdFQUFBQnlBQUFBWXdBQUFHZ0FBQUFBQUFBQVFRQUFBSEFBQUFCeUFBQUFhUUFBQUd3QUFBQUFBQUFBVFFBQUFHRUFBQUI1QUFBQUFBQUFBRW9BQUFCMUFBQUFiZ0FBQUdVQUFBQUFBQUFBU2dBQUFIVUFBQUJzQUFBQWVRQUFBQUFBQUFCQkFBQUFkUUFBQUdjQUFBQjFBQUFBY3dBQUFIUUFBQUFBQUFBQVV3QUFBR1VBQUFCd0FBQUFkQUFBQUdVQUFBQnRBQUFBWWdBQUFHVUFBQUJ5QUFBQUFBQUFBRThBQUFCakFBQUFkQUFBQUc4QUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVRnQUFBRzhBQUFCMkFBQUFaUUFBQUcwQUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVJBQUFBR1VBQUFCakFBQUFaUUFBQUcwQUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVNnQUFBR0VBQUFCdUFBQUFBQUFBQUVZQUFBQmxBQUFBWWdBQUFBQUFBQUJOQUFBQVlRQUFBSElBQUFBQUFBQUFRUUFBQUhBQUFBQnlBQUFBQUFBQUFFb0FBQUIxQUFBQWJnQUFBQUFBQUFCS0FBQUFkUUFBQUd3QUFBQUFBQUFBUVFBQUFIVUFBQUJuQUFBQUFBQUFBRk1BQUFCbEFBQUFjQUFBQUFBQUFBQlBBQUFBWXdBQUFIUUFBQUFBQUFBQVRnQUFBRzhBQUFCMkFBQUFBQUFBQUVRQUFBQmxBQUFBWXdBQUFBQUFBQUJCQUFBQVRRQUFBQUFBQUFCUUFBQUFUUUJCalB3QUMrSUVERE1BQU04QUFBRFFBQUFBMFFBQUFOSUFBQURUQUFBQTFBQUFBTlVBQUFBQUFBQUErRE1BQU44QUFBRGdBQUFBNFFBQUFPSUFBQURqQUFBQTVBQUFBT1VBQUFBQUFBQUFnRDRBQUNnQkFBQXBBUUFBS2dFQUFFNVRkRE5mWHpJeE5GOWZjMmhoY21Wa1gyTnZkVzUwUlFBQUFBRHdQZ0FBWkQ0QUFFNHhNRjlmWTNoNFlXSnBkakV4Tmw5ZmMyaHBiVjkwZVhCbFgybHVabTlGQUFBQUFCZy9BQUNJUGdBQWFFQUFBRTR4TUY5ZlkzaDRZV0pwZGpFeE4xOWZZMnhoYzNOZmRIbHdaVjlwYm1adlJRQUFBQmcvQUFDNFBnQUFyRDRBQUFBQUFBRGNQZ0FBS3dFQUFDd0JBQUF0QVFBQUxnRUFBQzhCQUFBd0FRQUFNUUVBQURJQkFBQUFBQUFBWUQ4QUFDc0JBQUF6QVFBQUxRRUFBQzRCQUFBdkFRQUFOQUVBQURVQkFBQTJBUUFBVGpFd1gxOWplSGhoWW1sMk1USXdYMTl6YVY5amJHRnpjMTkwZVhCbFgybHVabTlGQUFBQUFCZy9BQUE0UHdBQTNENEFBQUFBQUFDOFB3QUFLd0VBQURjQkFBQXRBUUFBTGdFQUFDOEJBQUE0QVFBQU9RRUFBRG9CQUFCT01UQmZYMk40ZUdGaWFYWXhNakZmWDNadGFWOWpiR0Z6YzE5MGVYQmxYMmx1Wm05RkFBQUFHRDhBQUpRL0FBRGNQZ0FBQUFBQUFPdy9BQUE3QVFBQVBBRUFBRDBCQUFCVGREbGxlR05sY0hScGIyNEFBQUFBOEQ0QUFOdy9BQUFBQUFBQUdFQUFBQU1BQUFBK0FRQUFQd0VBQUZOME1URnNiMmRwWTE5bGNuSnZjZ0FZUHdBQUNFQUFBT3cvQUFBQUFBQUFURUFBQUFNQUFBQkFBUUFBUHdFQUFGTjBNVEpzWlc1bmRHaGZaWEp5YjNJQUFBQUFHRDhBQURoQUFBQVlRQUFBVTNRNWRIbHdaVjlwYm1adkFBQUFBUEErQUFCWVFBQkI4SUFCQ3dLZ2F3PT0iKSxfeT1mdW5jdGlvbihBKXsoQT1BfHx7fSkuaW5zdGFudGlhdGVXYXNtPWZ1bmN0aW9uKEEsZyl7enkoQSkudGhlbigoZnVuY3Rpb24oQSl7Zyh7ZXhwb3J0czpBLmV4cG9ydHN9KX0pKX07dmFyIGcsST12b2lkIDAhPT1BP0E6e30sQj1PYmplY3QuYXNzaWduLFE9Qih7fSxJKSxDPSIuL3RoaXMucHJvZ3JhbSIsRT0hMCxpPSIiO2k9MCE9PShpPXNlbGYubG9jYXRpb24uaHJlZikuaW5kZXhPZigiYmxvYjoiKT9pLnN1YnN0cigwLGkucmVwbGFjZSgvWz8jXS4qLywiIikubGFzdEluZGV4T2YoIi8iKSsxKToiIixnPWZ1bmN0aW9uKEEpe3ZhciBnPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gZy5vcGVuKCJHRVQiLEEsITEpLGcucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsZy5zZW5kKG51bGwpLG5ldyBVaW50OEFycmF5KGcucmVzcG9uc2UpfSxJLnByaW50fHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpO3ZhciB0LGUsbz1JLnByaW50RXJyfHxjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtCKEksUSksUT1udWxsLEkuYXJndW1lbnRzJiZJLmFyZ3VtZW50cyxJLnRoaXNQcm9ncmFtJiYoQz1JLnRoaXNQcm9ncmFtKSxJLnF1aXQmJkkucXVpdCxJLndhc21CaW5hcnkmJih0PUkud2FzbUJpbmFyeSksSS5ub0V4aXRSdW50aW1lLCJvYmplY3QiIT09KCJ1bmRlZmluZWQiPT10eXBlb2YgV2ViQXNzZW1ibHk/InVuZGVmaW5lZCI6aG4oV2ViQXNzZW1ibHkpKSYmaygibm8gbmF0aXZlIHdhc20gc3VwcG9ydCBkZXRlY3RlZCIpO3ZhciBuLHIsYSxzLGMsaD0hMSx5PSJ1bmRlZmluZWQiIT10eXBlb2YgVGV4dERlY29kZXI/bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik6dm9pZCAwO2Z1bmN0aW9uIEQoQSxnKXtyZXR1cm4gQT9mdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCPWcrSSxRPWc7QVtRXSYmIShRPj1CKTspKytRO2lmKFEtZz4xNiYmQS5zdWJhcnJheSYmeSlyZXR1cm4geS5kZWNvZGUoQS5zdWJhcnJheShnLFEpKTtmb3IodmFyIEM9IiI7ZzxROyl7dmFyIEU9QVtnKytdO2lmKDEyOCZFKXt2YXIgaT02MyZBW2crK107aWYoMTkyIT0oMjI0JkUpKXt2YXIgdD02MyZBW2crK107aWYoKEU9MjI0PT0oMjQwJkUpPygxNSZFKTw8MTJ8aTw8Nnx0Oig3JkUpPDwxOHxpPDwxMnx0PDw2fDYzJkFbZysrXSk8NjU1MzYpQys9U3RyaW5nLmZyb21DaGFyQ29kZShFKTtlbHNle3ZhciBlPUUtNjU1MzY7Qys9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxlPj4xMCw1NjMyMHwxMDIzJmUpfX1lbHNlIEMrPVN0cmluZy5mcm9tQ2hhckNvZGUoKDMxJkUpPDw2fGkpfWVsc2UgQys9U3RyaW5nLmZyb21DaGFyQ29kZShFKX1yZXR1cm4gQ30oYSxBLGcpOiIifWZ1bmN0aW9uIGYoQSxnLEksQil7aWYoIShCPjApKXJldHVybiAwO2Zvcih2YXIgUT1JLEM9SStCLTEsRT0wO0U8QS5sZW5ndGg7KytFKXt2YXIgaT1BLmNoYXJDb2RlQXQoRSk7aWYoaT49NTUyOTYmJmk8PTU3MzQzJiYoaT02NTUzNisoKDEwMjMmaSk8PDEwKXwxMDIzJkEuY2hhckNvZGVBdCgrK0UpKSxpPD0xMjcpe2lmKEk+PUMpYnJlYWs7Z1tJKytdPWl9ZWxzZSBpZihpPD0yMDQ3KXtpZihJKzE+PUMpYnJlYWs7Z1tJKytdPTE5MnxpPj42LGdbSSsrXT0xMjh8NjMmaX1lbHNlIGlmKGk8PTY1NTM1KXtpZihJKzI+PUMpYnJlYWs7Z1tJKytdPTIyNHxpPj4xMixnW0krK109MTI4fGk+PjYmNjMsZ1tJKytdPTEyOHw2MyZpfWVsc2V7aWYoSSszPj1DKWJyZWFrO2dbSSsrXT0yNDB8aT4+MTgsZ1tJKytdPTEyOHxpPj4xMiY2MyxnW0krK109MTI4fGk+PjYmNjMsZ1tJKytdPTEyOHw2MyZpfX1yZXR1cm4gZ1tJXT0wLEktUX1mdW5jdGlvbiB1KEEpe2Zvcih2YXIgZz0wLEk9MDtJPEEubGVuZ3RoOysrSSl7dmFyIEI9QS5jaGFyQ29kZUF0KEkpO0I+PTU1Mjk2JiZCPD01NzM0MyYmKEI9NjU1MzYrKCgxMDIzJkIpPDwxMCl8MTAyMyZBLmNoYXJDb2RlQXQoKytJKSksQjw9MTI3PysrZzpnKz1CPD0yMDQ3PzI6Qjw9NjU1MzU/Mzo0fXJldHVybiBnfWZ1bmN0aW9uIHcoQSxnKXtyLnNldChBLGcpfWZ1bmN0aW9uIGQoQSl7bj1BLEkuSEVBUDg9cj1uZXcgSW50OEFycmF5KEEpLEkuSEVBUDE2PW5ldyBJbnQxNkFycmF5KEEpLEkuSEVBUDMyPXM9bmV3IEludDMyQXJyYXkoQSksSS5IRUFQVTg9YT1uZXcgVWludDhBcnJheShBKSxJLkhFQVBVMTY9bmV3IFVpbnQxNkFycmF5KEEpLEkuSEVBUFUzMj1uZXcgVWludDMyQXJyYXkoQSksSS5IRUFQRjMyPW5ldyBGbG9hdDMyQXJyYXkoQSksSS5IRUFQRjY0PW5ldyBGbG9hdDY0QXJyYXkoQSl9SS5JTklUSUFMX01FTU9SWTt2YXIgRj1bXSxsPVtdLEc9W10sUj0wLFU9bnVsbDtmdW5jdGlvbiBrKEEpe3Rocm93IEkub25BYm9ydCYmSS5vbkFib3J0KEEpLG8oQT0iQWJvcnRlZCgiK0ErIikiKSxoPSEwLEErPSIuIEJ1aWxkIHdpdGggLXMgQVNTRVJUSU9OUz0xIGZvciBtb3JlIGluZm8uIixuZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKEEpfUkucHJlbG9hZGVkSW1hZ2VzPXt9LEkucHJlbG9hZGVkQXVkaW9zPXt9O3ZhciBTLE4sTT0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCI7ZnVuY3Rpb24gWShBKXtyZXR1cm4gQS5zdGFydHNXaXRoKE0pfWZ1bmN0aW9uIEgoQSl7dHJ5e2lmKEE9PVMmJnQpcmV0dXJuIG5ldyBVaW50OEFycmF5KHQpO2lmKGcpcmV0dXJuIGcoQSk7dGhyb3ciYm90aCBhc3luYyBhbmQgc3luYyBmZXRjaGluZyBvZiB0aGUgd2FzbSBmYWlsZWQifWNhdGNoKEkpe2soSSl9fWZ1bmN0aW9uIHAoQSl7Zm9yKDtBLmxlbmd0aD4wOyl7dmFyIGc9QS5zaGlmdCgpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnKXt2YXIgQj1nLmZ1bmM7Im51bWJlciI9PXR5cGVvZiBCP3ZvaWQgMD09PWcuYXJnP0ooQikoKTpKKEIpKGcuYXJnKTpCKHZvaWQgMD09PWcuYXJnP251bGw6Zy5hcmcpfWVsc2UgZyhJKX19ZnVuY3Rpb24gSihBKXtyZXR1cm4gYy5nZXQoQSl9ZnVuY3Rpb24gTChBKXt0aGlzLmV4Y1B0cj1BLHRoaXMucHRyPUEtMTYsdGhpcy5zZXRfdHlwZT1mdW5jdGlvbihBKXtzW3RoaXMucHRyKzQ+PjJdPUF9LHRoaXMuZ2V0X3R5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gc1t0aGlzLnB0cis0Pj4yXX0sdGhpcy5zZXRfZGVzdHJ1Y3Rvcj1mdW5jdGlvbihBKXtzW3RoaXMucHRyKzg+PjJdPUF9LHRoaXMuZ2V0X2Rlc3RydWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gc1t0aGlzLnB0cis4Pj4yXX0sdGhpcy5zZXRfcmVmY291bnQ9ZnVuY3Rpb24oQSl7c1t0aGlzLnB0cj4+Ml09QX0sdGhpcy5zZXRfY2F1Z2h0PWZ1bmN0aW9uKEEpe0E9QT8xOjAsclt0aGlzLnB0cisxMj4+MF09QX0sdGhpcy5nZXRfY2F1Z2h0PWZ1bmN0aW9uKCl7cmV0dXJuIDAhPXJbdGhpcy5wdHIrMTI+PjBdfSx0aGlzLnNldF9yZXRocm93bj1mdW5jdGlvbihBKXtBPUE/MTowLHJbdGhpcy5wdHIrMTM+PjBdPUF9LHRoaXMuZ2V0X3JldGhyb3duPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPXJbdGhpcy5wdHIrMTM+PjBdfSx0aGlzLmluaXQ9ZnVuY3Rpb24oQSxnKXt0aGlzLnNldF90eXBlKEEpLHRoaXMuc2V0X2Rlc3RydWN0b3IoZyksdGhpcy5zZXRfcmVmY291bnQoMCksdGhpcy5zZXRfY2F1Z2h0KCExKSx0aGlzLnNldF9yZXRocm93bighMSl9LHRoaXMuYWRkX3JlZj1mdW5jdGlvbigpe3ZhciBBPXNbdGhpcy5wdHI+PjJdO3NbdGhpcy5wdHI+PjJdPUErMX0sdGhpcy5yZWxlYXNlX3JlZj1mdW5jdGlvbigpe3ZhciBBPXNbdGhpcy5wdHI+PjJdO3JldHVybiBzW3RoaXMucHRyPj4yXT1BLTEsMT09PUF9fWZ1bmN0aW9uIHYoQSl7dHJ5e3JldHVybiBlLmdyb3coQS1uLmJ5dGVMZW5ndGgrNjU1MzU+Pj4xNiksZChlLmJ1ZmZlciksMX1jYXRjaChnKXt9fVkoUz0iYXcud2FzbSIpfHwoTj1TLFM9SS5sb2NhdGVGaWxlP0kubG9jYXRlRmlsZShOLGkpOmkrTik7dmFyIEs9e307ZnVuY3Rpb24gbSgpe2lmKCFtLnN0cmluZ3Mpe3ZhciBBPXtVU0VSOiJ3ZWJfdXNlciIsTE9HTkFNRToid2ViX3VzZXIiLFBBVEg6Ii8iLFBXRDoiLyIsSE9NRToiL2hvbWUvd2ViX3VzZXIiLExBTkc6KCJvYmplY3QiPT09KCJ1bmRlZmluZWQiPT10eXBlb2YgbmF2aWdhdG9yPyJ1bmRlZmluZWQiOmhuKG5hdmlnYXRvcikpJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHwiQyIpLnJlcGxhY2UoIi0iLCJfIikrIi5VVEYtOCIsXzpDfHwiLi90aGlzLnByb2dyYW0ifTtmb3IodmFyIGcgaW4gSyl2b2lkIDA9PT1LW2ddP2RlbGV0ZSBBW2ddOkFbZ109S1tnXTt2YXIgST1bXTtmb3IodmFyIGcgaW4gQSlJLnB1c2goZysiPSIrQVtnXSk7bS5zdHJpbmdzPUl9cmV0dXJuIG0uc3RyaW5nc31mdW5jdGlvbiB4KEEpe3JldHVybiBBJTQ9PTAmJihBJTEwMCE9MHx8QSU0MDA9PTApfWZ1bmN0aW9uIHEoQSxnKXtmb3IodmFyIEk9MCxCPTA7Qjw9ZztJKz1BW0IrK10pO3JldHVybiBJfXZhciBiPVszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sVD1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO2Z1bmN0aW9uIE8oQSxnKXtmb3IodmFyIEk9bmV3IERhdGUoQS5nZXRUaW1lKCkpO2c+MDspe3ZhciBCPXgoSS5nZXRGdWxsWWVhcigpKSxRPUkuZ2V0TW9udGgoKSxDPShCP2I6VClbUV07aWYoIShnPkMtSS5nZXREYXRlKCkpKXJldHVybiBJLnNldERhdGUoSS5nZXREYXRlKCkrZyksSTtnLT1DLUkuZ2V0RGF0ZSgpKzEsSS5zZXREYXRlKDEpLFE8MTE/SS5zZXRNb250aChRKzEpOihJLnNldE1vbnRoKDApLEkuc2V0RnVsbFllYXIoSS5nZXRGdWxsWWVhcigpKzEpKX1yZXR1cm4gSX1mdW5jdGlvbiBXKEEsZyxJKXt2YXIgQj1JPjA/STp1KEEpKzEsUT1uZXcgQXJyYXkoQiksQz1mKEEsUSwwLFEubGVuZ3RoKTtyZXR1cm4gZyYmKFEubGVuZ3RoPUMpLFF9dmFyIFo9e2g6ZnVuY3Rpb24oQSl7cmV0dXJuIGooQSsxNikrMTZ9LGc6ZnVuY3Rpb24oQSxnLEkpe3Rocm93IG5ldyBMKEEpLmluaXQoZyxJKSxBfSxhOmZ1bmN0aW9uKCl7aygiIil9LGY6ZnVuY3Rpb24oQSxnLEkpe2EuY29weVdpdGhpbihBLGcsZytJKX0sZTpmdW5jdGlvbihBKXt2YXIgZyxJLEI9YS5sZW5ndGgsUT0yMTQ3NDgzNjQ4O2lmKChBPj4+PTApPlEpcmV0dXJuITE7Zm9yKHZhciBDPTE7Qzw9NDtDKj0yKXt2YXIgRT1CKigxKy4yL0MpO2lmKEU9TWF0aC5taW4oRSxBKzEwMDY2MzI5NiksdihNYXRoLm1pbihRLCgoZz1NYXRoLm1heChBLEUpKSUoST02NTUzNik+MCYmKGcrPUktZyVJKSxnKSkpKXJldHVybiEwfXJldHVybiExfSxjOmZ1bmN0aW9uKEEsZyl7dmFyIEk9MDtyZXR1cm4gbSgpLmZvckVhY2goKGZ1bmN0aW9uKEIsUSl7dmFyIEM9ZytJO3NbQSs0KlE+PjJdPUMsZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj0wO0I8QS5sZW5ndGg7KytCKXJbZysrPj4wXT1BLmNoYXJDb2RlQXQoQik7SXx8KHJbZz4+MF09MCl9KEIsQyksSSs9Qi5sZW5ndGgrMX0pKSwwfSxkOmZ1bmN0aW9uKEEsZyl7dmFyIEk9bSgpO3NbQT4+Ml09SS5sZW5ndGg7dmFyIEI9MDtyZXR1cm4gSS5mb3JFYWNoKChmdW5jdGlvbihBKXtCKz1BLmxlbmd0aCsxfSkpLHNbZz4+Ml09QiwwfSxiOmZ1bmN0aW9uKEEsZyxJLEIpe3JldHVybiBmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1zW0IrNDA+PjJdLEM9e3RtX3NlYzpzW0I+PjJdLHRtX21pbjpzW0IrND4+Ml0sdG1faG91cjpzW0IrOD4+Ml0sdG1fbWRheTpzW0IrMTI+PjJdLHRtX21vbjpzW0IrMTY+PjJdLHRtX3llYXI6c1tCKzIwPj4yXSx0bV93ZGF5OnNbQisyND4+Ml0sdG1feWRheTpzW0IrMjg+PjJdLHRtX2lzZHN0OnNbQiszMj4+Ml0sdG1fZ210b2ZmOnNbQiszNj4+Ml0sdG1fem9uZTpRP0QoUSk6IiJ9LEU9RChJKSxpPXsiJWMiOiIlYSAlYiAlZCAlSDolTTolUyAlWSIsIiVEIjoiJW0vJWQvJXkiLCIlRiI6IiVZLSVtLSVkIiwiJWgiOiIlYiIsIiVyIjoiJUk6JU06JVMgJXAiLCIlUiI6IiVIOiVNIiwiJVQiOiIlSDolTTolUyIsIiV4IjoiJW0vJWQvJXkiLCIlWCI6IiVIOiVNOiVTIiwiJUVjIjoiJWMiLCIlRUMiOiIlQyIsIiVFeCI6IiVtLyVkLyV5IiwiJUVYIjoiJUg6JU06JVMiLCIlRXkiOiIleSIsIiVFWSI6IiVZIiwiJU9kIjoiJWQiLCIlT2UiOiIlZSIsIiVPSCI6IiVIIiwiJU9JIjoiJUkiLCIlT20iOiIlbSIsIiVPTSI6IiVNIiwiJU9TIjoiJVMiLCIlT3UiOiIldSIsIiVPVSI6IiVVIiwiJU9WIjoiJVYiLCIlT3ciOiIldyIsIiVPVyI6IiVXIiwiJU95IjoiJXkifTtmb3IodmFyIHQgaW4gaSlFPUUucmVwbGFjZShuZXcgUmVnRXhwKHQsImciKSxpW3RdKTt2YXIgZT1bIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sbz1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl07ZnVuY3Rpb24gbihBLGcsSSl7Zm9yKHZhciBCPSJudW1iZXIiPT10eXBlb2YgQT9BLnRvU3RyaW5nKCk6QXx8IiI7Qi5sZW5ndGg8ZzspQj1JWzBdK0I7cmV0dXJuIEJ9ZnVuY3Rpb24gcihBLGcpe3JldHVybiBuKEEsZywiMCIpfWZ1bmN0aW9uIGEoQSxnKXtmdW5jdGlvbiBJKEEpe3JldHVybiBBPDA/LTE6QT4wPzE6MH12YXIgQjtyZXR1cm4gMD09PShCPUkoQS5nZXRGdWxsWWVhcigpLWcuZ2V0RnVsbFllYXIoKSkpJiYwPT09KEI9SShBLmdldE1vbnRoKCktZy5nZXRNb250aCgpKSkmJihCPUkoQS5nZXREYXRlKCktZy5nZXREYXRlKCkpKSxCfWZ1bmN0aW9uIGMoQSl7c3dpdGNoKEEuZ2V0RGF5KCkpe2Nhc2UgMDpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLTEsMTEsMjkpO2Nhc2UgMTpyZXR1cm4gQTtjYXNlIDI6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKSwwLDMpO2Nhc2UgMzpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLDAsMik7Y2FzZSA0OnJldHVybiBuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCksMCwxKTtjYXNlIDU6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDMxKTtjYXNlIDY6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDMwKX19ZnVuY3Rpb24gaChBKXt2YXIgZz1PKG5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsMSksQS50bV95ZGF5KSxJPW5ldyBEYXRlKGcuZ2V0RnVsbFllYXIoKSwwLDQpLEI9bmV3IERhdGUoZy5nZXRGdWxsWWVhcigpKzEsMCw0KSxRPWMoSSksQz1jKEIpO3JldHVybiBhKFEsZyk8PTA/YShDLGcpPD0wP2cuZ2V0RnVsbFllYXIoKSsxOmcuZ2V0RnVsbFllYXIoKTpnLmdldEZ1bGxZZWFyKCktMX12YXIgeT17IiVhIjpmdW5jdGlvbihBKXtyZXR1cm4gZVtBLnRtX3dkYXldLnN1YnN0cmluZygwLDMpfSwiJUEiOmZ1bmN0aW9uKEEpe3JldHVybiBlW0EudG1fd2RheV19LCIlYiI6ZnVuY3Rpb24oQSl7cmV0dXJuIG9bQS50bV9tb25dLnN1YnN0cmluZygwLDMpfSwiJUIiOmZ1bmN0aW9uKEEpe3JldHVybiBvW0EudG1fbW9uXX0sIiVDIjpmdW5jdGlvbihBKXtyZXR1cm4gcigoQS50bV95ZWFyKzE5MDApLzEwMHwwLDIpfSwiJWQiOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1fbWRheSwyKX0sIiVlIjpmdW5jdGlvbihBKXtyZXR1cm4gbihBLnRtX21kYXksMiwiICIpfSwiJWciOmZ1bmN0aW9uKEEpe3JldHVybiBoKEEpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJUciOmZ1bmN0aW9uKEEpe3JldHVybiBoKEEpfSwiJUgiOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1faG91ciwyKX0sIiVJIjpmdW5jdGlvbihBKXt2YXIgZz1BLnRtX2hvdXI7cmV0dXJuIDA9PWc/Zz0xMjpnPjEyJiYoZy09MTIpLHIoZywyKX0sIiVqIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21kYXkrcSh4KEEudG1feWVhcisxOTAwKT9iOlQsQS50bV9tb24tMSksMyl9LCIlbSI6ZnVuY3Rpb24oQSl7cmV0dXJuIHIoQS50bV9tb24rMSwyKX0sIiVNIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21pbiwyKX0sIiVuIjpmdW5jdGlvbigpe3JldHVybiJcbiJ9LCIlcCI6ZnVuY3Rpb24oQSl7cmV0dXJuIEEudG1faG91cj49MCYmQS50bV9ob3VyPDEyPyJBTSI6IlBNIn0sIiVTIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX3NlYywyKX0sIiV0IjpmdW5jdGlvbigpe3JldHVybiJcdCJ9LCIldSI6ZnVuY3Rpb24oQSl7cmV0dXJuIEEudG1fd2RheXx8N30sIiVVIjpmdW5jdGlvbihBKXt2YXIgZz1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMCwwLDEpLEk9MD09PWcuZ2V0RGF5KCk/ZzpPKGcsNy1nLmdldERheSgpKSxCPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLEEudG1fbW9uLEEudG1fbWRheSk7aWYoYShJLEIpPDApe3ZhciBRPXEoeChCLmdldEZ1bGxZZWFyKCkpP2I6VCxCLmdldE1vbnRoKCktMSktMzEsQz0zMS1JLmdldERhdGUoKStRK0IuZ2V0RGF0ZSgpO3JldHVybiByKE1hdGguY2VpbChDLzcpLDIpfXJldHVybiAwPT09YShJLGcpPyIwMSI6IjAwIn0sIiVWIjpmdW5jdGlvbihBKXt2YXIgZyxJPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsNCksQj1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMSwwLDQpLFE9YyhJKSxDPWMoQiksRT1PKG5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsMSksQS50bV95ZGF5KTtyZXR1cm4gYShFLFEpPDA/IjUzIjphKEMsRSk8PTA/IjAxIjooZz1RLmdldEZ1bGxZZWFyKCk8QS50bV95ZWFyKzE5MDA/QS50bV95ZGF5KzMyLVEuZ2V0RGF0ZSgpOkEudG1feWRheSsxLVEuZ2V0RGF0ZSgpLHIoTWF0aC5jZWlsKGcvNyksMikpfSwiJXciOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3dkYXl9LCIlVyI6ZnVuY3Rpb24oQSl7dmFyIGc9bmV3IERhdGUoQS50bV95ZWFyLDAsMSksST0xPT09Zy5nZXREYXkoKT9nOk8oZywwPT09Zy5nZXREYXkoKT8xOjctZy5nZXREYXkoKSsxKSxCPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLEEudG1fbW9uLEEudG1fbWRheSk7aWYoYShJLEIpPDApe3ZhciBRPXEoeChCLmdldEZ1bGxZZWFyKCkpP2I6VCxCLmdldE1vbnRoKCktMSktMzEsQz0zMS1JLmdldERhdGUoKStRK0IuZ2V0RGF0ZSgpO3JldHVybiByKE1hdGguY2VpbChDLzcpLDIpfXJldHVybiAwPT09YShJLGcpPyIwMSI6IjAwIn0sIiV5IjpmdW5jdGlvbihBKXtyZXR1cm4oQS50bV95ZWFyKzE5MDApLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJVkiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3llYXIrMTkwMH0sIiV6IjpmdW5jdGlvbihBKXt2YXIgZz1BLnRtX2dtdG9mZixJPWc+PTA7cmV0dXJuIGc9KGc9TWF0aC5hYnMoZykvNjApLzYwKjEwMCtnJTYwLChJPyIrIjoiLSIpK1N0cmluZygiMDAwMCIrZykuc2xpY2UoLTQpfSwiJVoiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3pvbmV9LCIlJSI6ZnVuY3Rpb24oKXtyZXR1cm4iJSJ9fTtmb3IodmFyIHQgaW4geSlFLmluY2x1ZGVzKHQpJiYoRT1FLnJlcGxhY2UobmV3IFJlZ0V4cCh0LCJnIikseVt0XShDKSkpO3ZhciBmPVcoRSwhMSk7cmV0dXJuIGYubGVuZ3RoPmc/MDoodyhmLEEpLGYubGVuZ3RoLTEpfShBLGcsSSxCKX19OyFmdW5jdGlvbigpe3ZhciBBPXthOlp9O2Z1bmN0aW9uIGcoQSxnKXt2YXIgQixRPUEuZXhwb3J0cztJLmFzbT1RLGQoKGU9SS5hc20uaSkuYnVmZmVyKSxjPUkuYXNtLnQsQj1JLmFzbS5qLGwudW5zaGlmdChCKSxmdW5jdGlvbihBKXtpZihSLS0sSS5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZJLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMoUiksMD09UiYmVSl7dmFyIGc9VTtVPW51bGwsZygpfX0oKX1mdW5jdGlvbiBCKEEpe2coQS5pbnN0YW5jZSl9ZnVuY3Rpb24gUShnKXtyZXR1cm4oIXQmJkUmJiJmdW5jdGlvbiI9PXR5cGVvZiBmZXRjaD9mZXRjaChTLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbigoZnVuY3Rpb24oQSl7aWYoIUEub2spdGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIitTKyInIjtyZXR1cm4gQS5hcnJheUJ1ZmZlcigpfSkpLmNhdGNoKChmdW5jdGlvbigpe3JldHVybiBIKFMpfSkpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIEgoUyl9KSkpLnRoZW4oKGZ1bmN0aW9uKGcpe3JldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShnLEEpfSkpLnRoZW4oKGZ1bmN0aW9uKEEpe3JldHVybiBBfSkpLnRoZW4oZywoZnVuY3Rpb24oQSl7bygiZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogIitBKSxrKEEpfSkpfWlmKFIrKyxJLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJkkubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhSKSxJLmluc3RhbnRpYXRlV2FzbSl0cnl7cmV0dXJuIEkuaW5zdGFudGlhdGVXYXNtKEEsZyl9Y2F0Y2goQyl7cmV0dXJuIG8oIk1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICIrQyksITF9dHx8ImZ1bmN0aW9uIiE9dHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nfHxZKFMpfHwiZnVuY3Rpb24iIT10eXBlb2YgZmV0Y2g/UShCKTpmZXRjaChTLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKGcsQSkudGhlbihCLChmdW5jdGlvbihBKXtyZXR1cm4gbygid2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICIrQSksbygiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKSxRKEIpfSkpfSkpfSgpLEkuX19fd2FzbV9jYWxsX2N0b3JzPWZ1bmN0aW9uKCl7cmV0dXJuKEkuX19fd2FzbV9jYWxsX2N0b3JzPUkuYXNtLmopLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIGo9SS5fbWFsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKGo9SS5fbWFsbG9jPUkuYXNtLmspLmFwcGx5KG51bGwsYXJndW1lbnRzKX07SS5fZnJlZT1mdW5jdGlvbigpe3JldHVybihJLl9mcmVlPUkuYXNtLmwpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fb3BlbkJveD1mdW5jdGlvbigpe3JldHVybihJLl9vcGVuQm94PUkuYXNtLm0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fZGVzY3J5cHQ9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fZGVzY3J5cHQ9SS5hc20ubikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJLl9kZXNjcnlwdEtkc0tleT1mdW5jdGlvbigpe3JldHVybihJLl9kZXNjcnlwdEtkc0tleT1JLmFzbS5vKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEkuX2RlY3J5cHRLZXk9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fZGVjcnlwdEtleT1JLmFzbS5wKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEkuX2Rlc2NyeXB0Q0JDPWZ1bmN0aW9uKCl7cmV0dXJuKEkuX2Rlc2NyeXB0Q0JDPUkuYXNtLnEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fcmVsZWFzZT1mdW5jdGlvbigpe3JldHVybihJLl9yZWxlYXNlPUkuYXNtLnIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fc2V0UmF3PWZ1bmN0aW9uKCl7cmV0dXJuKEkuX3NldFJhdz1JLmFzbS5zKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBQLFg9SS5zdGFja1NhdmU9ZnVuY3Rpb24oKXtyZXR1cm4oWD1JLnN0YWNrU2F2ZT1JLmFzbS51KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFY9SS5zdGFja1Jlc3RvcmU9ZnVuY3Rpb24oKXtyZXR1cm4oVj1JLnN0YWNrUmVzdG9yZT1JLmFzbS52KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHo9SS5zdGFja0FsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKHo9SS5zdGFja0FsbG9jPUkuYXNtLncpLmFwcGx5KG51bGwsYXJndW1lbnRzKX07ZnVuY3Rpb24gXyhBKXtmdW5jdGlvbiBnKCl7UHx8KFA9ITAsSS5jYWxsZWRSdW49ITAsaHx8KHAobCksSS5vblJ1bnRpbWVJbml0aWFsaXplZCYmSS5vblJ1bnRpbWVJbml0aWFsaXplZCgpLGZ1bmN0aW9uKCl7aWYoSS5wb3N0UnVuKWZvcigiZnVuY3Rpb24iPT10eXBlb2YgSS5wb3N0UnVuJiYoSS5wb3N0UnVuPVtJLnBvc3RSdW5dKTtJLnBvc3RSdW4ubGVuZ3RoOylBPUkucG9zdFJ1bi5zaGlmdCgpLEcudW5zaGlmdChBKTt2YXIgQTtwKEcpfSgpKSl9Uj4wfHwoZnVuY3Rpb24oKXtpZihJLnByZVJ1bilmb3IoImZ1bmN0aW9uIj09dHlwZW9mIEkucHJlUnVuJiYoSS5wcmVSdW49W0kucHJlUnVuXSk7SS5wcmVSdW4ubGVuZ3RoOylBPUkucHJlUnVuLnNoaWZ0KCksRi51bnNoaWZ0KEEpO3ZhciBBO3AoRil9KCksUj4wfHwoSS5zZXRTdGF0dXM/KEkuc2V0U3RhdHVzKCJSdW5uaW5nLi4uIiksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe0kuc2V0U3RhdHVzKCIiKX0pLDEpLGcoKX0pLDEpKTpnKCkpKX1pZihJLmludEFycmF5RnJvbVN0cmluZz1XLEkuY2NhbGw9ZnVuY3Rpb24oQSxnLEIsUSxDKXt2YXIgRT17c3RyaW5nOmZ1bmN0aW9uKEEpe3ZhciBnPTA7aWYobnVsbCE9QSYmMCE9PUEpe3ZhciBJPTErKEEubGVuZ3RoPDwyKTshZnVuY3Rpb24oQSxnLEkpe2YoQSxhLGcsSSl9KEEsZz16KEkpLEkpfXJldHVybiBnfSxhcnJheTpmdW5jdGlvbihBKXt2YXIgZz16KEEubGVuZ3RoKTtyZXR1cm4gdyhBLGcpLGd9fSxpPWZ1bmN0aW9uKEEpe3JldHVybiBJWyJfIitBXX0oQSksdD1bXSxlPTA7aWYoUSlmb3IodmFyIG89MDtvPFEubGVuZ3RoO28rKyl7dmFyIG49RVtCW29dXTtuPygwPT09ZSYmKGU9WCgpKSx0W29dPW4oUVtvXSkpOnRbb109UVtvXX12YXIgcixzPWkuYXBwbHkobnVsbCx0KTtyZXR1cm4gcj1zLDAhPT1lJiZWKGUpLHM9ZnVuY3Rpb24oQSl7cmV0dXJuInN0cmluZyI9PT1nP0QoQSk6ImJvb2xlYW4iPT09Zz9Cb29sZWFuKEEpOkF9KHIpfSxJLlVURjhUb1N0cmluZz1ELEkuYWxsb2NhdGVVVEY4PWZ1bmN0aW9uKEEpe3ZhciBnPXUoQSkrMSxJPWooZyk7cmV0dXJuIEkmJmYoQSxyLEksZyksSX0sVT1mdW5jdGlvbiBBKCl7UHx8XygpLFB8fChVPUEpfSxJLnJ1bj1fLEkucHJlSW5pdClmb3IoImZ1bmN0aW9uIj09dHlwZW9mIEkucHJlSW5pdCYmKEkucHJlSW5pdD1bSS5wcmVJbml0XSk7SS5wcmVJbml0Lmxlbmd0aD4wOylJLnByZUluaXQucG9wKCkoKTtyZXR1cm4gXygpLEEucmVhZHl9LCR5PV95O3ZhciBBRD1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt2YXIgZyxJO3luKHRoaXMsQSk7dmFyIEI9bmV3IFByb21pc2UoKGZ1bmN0aW9uKEEsQil7Zz1BLEk9Qn0pKTtyZXR1cm4gQi5yZXNvbHZlPWcsQi5yZWplY3Q9SSxCfXJldHVybiBmbihBLFt7a2V5OiJyZXNvbHZlIix2YWx1ZTpmdW5jdGlvbihBKXt9fSx7a2V5OiJyZWplY3QiLHZhbHVlOmZ1bmN0aW9uKEEpe319XSksQX0oKTtQcm9taXNlLndpdGhSZXNvbHZlcnN8fChQcm9taXNlLndpdGhSZXNvbHZlcnM9ZnVuY3Rpb24oKXt2YXIgQT17fTtyZXR1cm4gQS5wcm9taXNlPW5ldyBQcm9taXNlKChmdW5jdGlvbihnLEkpe0EucmVzb2x2ZT1nLEEucmVqZWN0PUl9KSksQX0pO3ZhciBnRCxJRCxCRD0wLFFEPTEsQ0Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7eW4odGhpcyxBKX1yZXR1cm4gZm4oQSxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1uZXcgQUQ7cmV0dXJuIHRoaXMubW9kdWxlPXtvblJ1bnRpbWVJbml0aWFsaXplZDpmdW5jdGlvbigpe0EucmVzb2x2ZSgpfSxvbkFib3J0OmZ1bmN0aW9uKGcpe0EucmVqZWN0KGcpfX0sJHkodGhpcy5tb2R1bGUpLEF9fSx7a2V5OiJkZXNjcnlwdEtleSIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFE9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjE2LEM9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOkJEO3RyeXt2YXIgRT1mdW5jdGlvbihBKXtpZigiIj09PUEpcmV0dXJuIiI7Zm9yKHZhciBnPVtdLEk9MDtJPEEubGVuZ3RoO0krKylnLnB1c2goQS5jaGFyQ29kZUF0KEkpKTtyZXR1cm4gZ30oc2VsZi5hdG9iKEEpKTtJPXRoaXMubW9kdWxlLl9tYWxsb2MoTnVtYmVyKEUubGVuZ3RoKSksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEUsSSksZz1nfHxuZXcgVWludDhBcnJheSxnPW5ldyBVaW50OEFycmF5KGcpLEI9dGhpcy5tb2R1bGUuX21hbGxvYyhnLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChnLEIpLHRoaXMubW9kdWxlLl9kZWNyeXB0S2V5KEMsSSxFLmxlbmd0aCxRLGcuYnl0ZUxlbmd0aCxCKX1jYXRjaChpKXtjb25zb2xlLmxvZyhpKX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKEkpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJLEIsUT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06QkQ7dHJ5e3ZhciBDPW5ldyBVaW50OEFycmF5KGcpO0k9dGhpcy5tb2R1bGUuX21hbGxvYyhBLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChBLEkpLEI9dGhpcy5tb2R1bGUuX21hbGxvYyhDLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChDLEIpLHRoaXMubW9kdWxlLl9kZXNjcnlwdChRLEksQS5ieXRlTGVuZ3RoLEIpO3ZhciBFPXRoaXMubW9kdWxlLkhFQVBVOC5zbGljZShJLEkrQS5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoRSl9Y2F0Y2godEQpe2NvbnNvbGUubG9nKHREKX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKEkpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0S2RzS2V5Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxDLEU9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjE2O3RyeXt2YXIgaT1uZXcgVWludDhBcnJheShnKSx0PW5ldyBVaW50OEFycmF5KEkpO0I9dGhpcy5tb2R1bGUuX21hbGxvYyhpLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChpLEIpLFE9dGhpcy5tb2R1bGUuX21hbGxvYyhBLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChBLFEpLEM9dGhpcy5tb2R1bGUuX21hbGxvYyh0LmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldCh0LEMpLHRoaXMubW9kdWxlLl9kZXNjcnlwdEtkc0tleShCLGkuYnl0ZUxlbmd0aCxRLEEuYnl0ZUxlbmd0aCxDLEUpfWNhdGNoKHREKXtjb25zb2xlLmxvZyh0RCl9ZmluYWxseXt0aGlzLm1vZHVsZS5fZnJlZShRKSx0aGlzLm1vZHVsZS5fZnJlZShDKSx0aGlzLm1vZHVsZS5fZnJlZShCKX19fSx7a2V5OiJkZXNjcnlwdENCQyIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCO3RyeXt2YXIgUT1uZXcgVWludDhBcnJheShnKTtyZXR1cm4gST10aGlzLm1vZHVsZS5fbWFsbG9jKEEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEEsSSksQj10aGlzLm1vZHVsZS5fbWFsbG9jKFEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KFEsQiksdGhpcy5tb2R1bGUuX2Rlc2NyeXB0Q0JDKEksQS5ieXRlTGVuZ3RoLEIpLHRoaXMubW9kdWxlLkhFQVBVOC5zbGljZShJLEkrQS5ieXRlTGVuZ3RoKX1jYXRjaCh0RCl7Y29uc29sZS5sb2codEQpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoSSksdGhpcy5tb2R1bGUuX2ZyZWUoQil9fX0se2tleToic2V0UmF3Iix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpRRDt0cnl7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoQSk7Zz10aGlzLm1vZHVsZS5fbWFsbG9jKEIuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEIsZyksdGhpcy5tb2R1bGUuX3NldFJhdyhnLEIuYnl0ZUxlbmd0aCxJKX1jYXRjaCh0RCl7Y29uc29sZS5sb2codEQpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoZyl9fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1vZHVsZSYmKHRoaXMubW9kdWxlPW51bGwpfX1dKSxBfSgpO2Z1bmN0aW9uIEVEKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwyND4+PjApKyhBW2crMV08PDE2KSsoQVtnKzJdPDw4KSsoQVtnKzNdfHwwKX12YXIgaUQ9e2RlY3J5cHRIZWFkZXI6ZnVuY3Rpb24oQSxnKXt2YXIgST0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO2dEPW5ldyBvbixJRD1uZXcgY24oZ0QudmlkZW9UcmFjayxnRC5hdWRpb1RyYWNrKTt2YXIgQj1uZXcgVWludDhBcnJheShBKSxRPWdELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPXtyZXM6bnVsbCx2aWRlb1RyYWNrOlEudmlkZW9UcmFjayxhdWRpb1RyYWNrOlEuYXVkaW9UcmFja307aWYoSSl7dmFyIEU9SUQucmVtdXgoITApLGk9RS52aWRlb0luaXRTZWdtZW50LHQ9RS5hdWRpb0luaXRTZWdtZW50O0MucmVzPWc/aTp0fXJldHVybiBDfSxkZWNyeXB0Qm9keTpmdW5jdGlvbihBLGcpe3ZhciBJPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sQj1uZXcgVWludDhBcnJheShBKSxRPWdELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPVEudmlkZW9UcmFjayxFPVEuYXVkaW9UcmFjayxpPUJuLmZpbmRCb3goQixbIm1vb2YiLCJ0cmFmIiwic2VuYyJdKVswXTtpZihpKXt2YXIgdCxlLG89Zz9udWxsPT1DfHxudWxsPT09KHQ9Qy5lbmN2KXx8dm9pZCAwPT09dD92b2lkIDA6dC5kZWZhdWx0X0lWX3NpemU6bnVsbD09RXx8bnVsbD09PShlPUUuZW5jYSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZGVmYXVsdF9JVl9zaXplLG49Qm4uc2VuYyhpLG8pO2c/Qy52aWRlb1NlbmM9bi5zYW1wbGVzOkUuYXVkaW9TZW5jPW4uc2FtcGxlcyxpRC5kZWNvZGVyRGF0YShDLEUpLGcmJkMuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZyxJPUEuZGF0YTtBLnVuaXRzPVtdO2Zvcih2YXIgQj0wLFE9SS5sZW5ndGgtMTtCPFE7KWc9RUQoSSxCKSxCKz00LEEudW5pdHMucHVzaChJLnN1YmFycmF5KEIsQitnKSksQis9Z30pKX12YXIgcj17cmVzOm51bGwsdmlkZW9UcmFjazpDLGF1ZGlvVHJhY2s6RX07aWYoSSl7dmFyIGE9SUQucmVtdXgoKSxzPWEudmlkZW9TZWdtZW50LGM9YS5hdWRpb1NlZ21lbnQ7ci5yZXM9Zz9zOmN9cmV0dXJuIHJ9LGRlY29kZXJEYXRhOmZ1bmN0aW9uKEEsZyl7RGEuZGVjb2RlckFFU0NUUkRhdGEoQSxnLChmdW5jdGlvbihBLGcsSSl7cmV0dXJuIHNlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0KEEsSSl9KSl9fTtvbm1lc3NhZ2U9ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcztpZigiZGVjcnlwdEJvZHkiPT09QS5kYXRhLm1ldGhvZClzZWxmLnAudGhlbigoZnVuY3Rpb24oKXt2YXIgST1BLmRhdGEuYXJncyxCPWlELmRlY3J5cHRCb2R5KEkuYnVmLEkuaXNWaWRlbyxJLm5lZWRSZW11eCk7Zy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0Qm9keSIsaWQ6QS5kYXRhLmlkLGFyZ3M6e2RhdGE6Qn19KX0pKTtlbHNlIGlmKCJkZWNyeXB0SGVhZGVyIj09PUEuZGF0YS5tZXRob2Qpe3ZhciBJPWlELmRlY3J5cHRIZWFkZXIoQS5kYXRhLmJ1ZixBLmRhdGEuaXNWaWRlbyk7dGhpcy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0SGVhZGVyIixpZDpBLmRhdGEuaWQsYXJnczp7ZGF0YTpJfX0pfWVsc2UgaWYoInVwZGF0ZVZhbHVlIj09PUEuZGF0YS5tZXRob2Qpe3RoaXMuY2FjaGVEYXRhPUEuZGF0YS52YWx1ZSxzZWxmLmF3TWFuYWdlcj1uZXcgQ0Q7dmFyIEI9c2VsZi5hd01hbmFnZXIuaW5pdCh0aGlzLmNhY2hlRGF0YS53YXNtQmluYXJ5RmlsZSk7c2VsZi5wPUIsQi50aGVuKChmdW5jdGlvbigpe3NlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0S2V5KGcuY2FjaGVEYXRhLnNlY3JldEtleSxnLmNhY2hlRGF0YS5kZWNyeXB0S2V5KX0pKX1lbHNlImRlc3Ryb3kiPT09QS5kYXRhLm1ldGhvZCYmc2VsZi5hd01hbmFnZXImJihzZWxmLmF3TWFuYWdlci5kZXN0cm95KCksc2VsZi5hd01hbmFnZXI9bnVsbCl9fSgpOwo=",gi="undefined"!=typeof window&&window.Blob&&new Blob([atob(Ci)],{type:"text/javascript;charset=utf-8"});function Di(){var e;try{if(!(e=gi&&(window.URL||window.webkitURL).createObjectURL(gi)))throw"";return new Worker(e)}catch(t){return new Worker("data:application/javascript;base64,"+Ci)}finally{!("undefined"!=typeof window&&navigator.userAgent.indexOf("Trident/")>0)&&e&&(window.URL||window.webkitlRL).revokeObjectURL(e)}}var Xi=function(){function e(){R(this,e),fF(this),this.bodyId=0,this.isSwitchHeader=!1,this.workers={audio:null,video:null},this.init(),this.headerId=0,this.crypto=window.crypto||window.msCrypto}return u(e,[{key:"init",value:function(){for(var e=this,t=Object.keys(this.workers),n=0;n<t.length;n++){var U=t[n],F=new Di;F.onmessage=function(t){e.emit(t.data.method,t.data)},this.workers[U]=F}}},{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],U=this;return this.updateHeaderId(),new Promise((function(F){var Q=Math.floor(1e3*Math.random()),i=U.getWorker(t);i&&i.postMessage({method:"decryptHeader",id:Q,buf:e,isVideo:t,needRemux:n});U.on("decryptHeader",(function e(t){t.id===Q&&(U.off("decryptHeader",e),F({data:t.args.data,vid:t.args.vid}))}))}))}},{key:"updateValue",value:function(e){for(var t=Object.keys(this.workers),n=0;n<t.length;n++){var U=t[n];this.workers[U].postMessage({method:"updateValue",value:e})}}},{key:"decryptBody",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],U=e instanceof ArrayBuffer?e:e.buffer,F=this,Q=F.bodyId+1;return F.bodyId=Q,new Promise((function(e){F.on("decryptBody",(function t(n){n.id===Q&&(F.off("decryptBody",t),e({data:n.args.data,id:Q,headerId:F.headerId}))}));var i=F.getWorker(t);i&&i.postMessage({method:"decryptBody",id:Q,args:{isVideo:t,id:F.workerIndex,aeskey:F.aeskey,buf:U,needRemux:n}},[U])}))}}]),e}(),xi=Xi,Li="danger_d_speed";var Ii=function(){function e(t,n,U,F){var Q=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{logger:function(){},openLog:!1};R(this,e),this.bitrate=n,this.segment_duration=F||5e3,this.logger=Q.logger,this.openLog=Q.openLog,this.cdnHost=t.cdnHost,this._loadedPromise=new x,this._wasmPromise=new x,this.config=t,this.autoBitrateOpts=t.autoBitrateOpts||{},this.stall_penalty=this.autoBitrateOpts.stall_penalty||11,this.switch_penalty=this.autoBitrateOpts.switch_penalty||4,this.interval=this.autoBitrateOpts.interval||1e3;var i=t.progressTimer||1e3,l=this.autoBitrateOpts.startInterval||i;this.initInterval=.8*l,this._prealodMethod=t.preloadmethod||0,this._videoWidth=0,this._videoHeight=0,this._hasDeviceInfoChanged=!0,this._maxDefinition=this.autoBitrateOpts.maxDefinition||null,this._underflowDefinition=this.autoBitrateOpts.underflowDefinition||null,this.updateMediaInfos(U,!1)}return u(e,[{key:"onLoadWasm",value:function(){var e=this,t=this.module={onRuntimeInitialized:function(){e._wasmPromise.resolve()}};return(0,this.autoBitrateOpts.module)(t),this._wasmPromise}},{key:"updateMediaInfos",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._heightToDefitionConfig=new Map,this._bitrateToDefitionConfig=new Map,this._definitionToDefitionConfig=new Map,e?(this.mediaInfos=e,this.mediaInfos.dynamic_video_list.forEach((function(e){t._heightToDefitionConfig.set(e.vheight,e),t._bitrateToDefitionConfig.set(e.bitrate,e),t._definitionToDefitionConfig.set(e.definition,e)})),this._maxDefinition&&(this._defaultMaxBitrate=this._getBitrate(this._maxDefinition)),this._underflowDefinition&&(this._underflowBitrate=this._getBitrate(this._underflowDefinition))):n&&console.error("baseAbr mediaInfos null")}},{key:"_getBitrate",value:function(e){var t;return(null===(t=this._definitionToDefitionConfig.get(e))||void 0===t?void 0:t.bitrate)||-1}},{key:"parseMPD",value:function(){if(this.setDebugModel(this.openLog),this.mediaInfos){this.logger("mediaInfos",this.mediaInfos);try{for(var e=[],t=this.mediaInfos.dynamic_video_list,n=0;n<t.length;n++){var U=t[n];e.push({stream_id:"s".concat(n),bandwidth:U.bitrate||U.bandwidth,width:U.vwidth||U.width,height:U.vheight||U.height,codec:U.codecs||U.codec_type||"h264",frame_rate:Number(U.fps)||-1,segment_duration:this.segment_duration})}var F={v_adaptation:e},Q=JSON.stringify(F);this.module.ccall("parseMPD","null",["string"],[Q])}catch(i){}}else console.warn("mediaInfos is null")}},{key:"_getDefautSpeed",value:function(e){var t=0,n=window.navigator.connection;if(n&&n.downlink)t=1024*navigator.connection.downlink/8,this.logger("initSpeed connect",t);else try{t=parseFloat(X.getItem(Li))||0,this.logger("initSpeed connect",t)}catch(U){}return 0===t&&(t=e&&e.historyAvspeed||0,this.logger("initSpeed history",t)),t}},{key:"setDebugModel",value:function(e){this.module._setDebugModel(e)}},{key:"updateBitrate",value:function(e){this.bitrate=e}},{key:"_updatePreloadSupplier",value:function(e,t){this.module._updatePreloadSupplier(e,t)}},{key:"updatePreloadSupplier",value:function(e){var t=this._getDefautSpeed();this._updatePreloadSupplier(t,e)}},{key:"getPreloadBitrate",value:function(){var e,t=null,n=[];try{this.logger("preloadMethod",this._prealodMethod),e=this.module._getPreloadBitrate(this._prealodMethod);for(var U=0;U<5;U++)n.push(this.module.HEAP32[e/Int32Array.BYTES_PER_ELEMENT+U]);var F={bitrate:n[0],pduration:n[1],preloadType:n[2],size:n[3],mediaType:n[4]};return this.logger("getPreloadBitrate",F),F}catch(Q){t=null,console.log("getPreloadBitrate",Q)}finally{this.module._free(e)}return t}},{key:"_updateDeviceInfo",value:function(e){try{if(this._hasDeviceInfoChanged){var t=window.devicePixelRatio||1;this.module._updateDeviceInfo(this._videoWidth||Number(this.config.width),this._videoHeight||Number(this.config.height),t,e||-1)}this._hasDeviceInfoChanged=!1}catch(n){console.log("_updateDeviceInfo")}}},{key:"preload",value:function(e){this.parseMPD(),this.updatePreloadSupplier(e),this._updateDeviceInfo(-1);var t=window.devicePixelRatio||1;return this.logger("baseAbr updateDeviceInfo width",this._videoWidth||Number(this.config.width),"height",this._videoHeight||Number(this.config.height),"dpr",t),this.getPreloadBitrate()}}]),e}();Ii.SPPED_CACHE=Li;var Gi="ABR_CHANGE_A",Mi="UPDATE_AUTO_DESC",Yi="ABR_START_PROGRESS",wi="MAX_BUFFER_CHANGE",Ki="ABR_LIMIT_BITRATE",_i="__auto__",ji=0,Hi=1,Pi=-1,zi=0,Oi=1,Ai={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"},qi=function(e){Z(n,e);var t=W(n);function n(e,U,F,Q,i){var l,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{logger:function(){},openLog:!1};R(this,n),(l=t.call(this,U,F,Q,i,r)).player=e,l.timerId=0,l.isOpenAutoDefi=!!l.autoBitrateOpts.isOpenAutoDefi,l._maxDefinition=l.autoBitrateOpts.maxDefinition||null,l.onPlayrateChange=l._onPlayrateChange.bind(m(l)),l.onPlay=l._onPlay.bind(m(l)),l._stop=l.stop.bind(m(l)),l._bufferRange=new Map,l._sortedBufferRange=[],l._lastCheckResolutionStamp=0,l._currentDefinition=null,l._isSeeking=!1,l._waitingStartTime=0,l._stallCount=0,l._seekState=ji,l._stallState=zi,l._videoCurrentTime=0,l._maxBitrate=-1,l.listeners=[{evt:"playbackrateChange",handler:l.onPlayrateChange},{evt:"ended",handler:l._stop},{evt:"error",handler:l._stop},{evt:"timeupdate",handler:l._onTimeUpdate.bind(m(l))},{evt:"addVideoBufferEnd",handler:l._bufferRangeUpdate.bind(m(l))},{evt:"canplay",handler:l._updateAutoDesc.bind(m(l))},{evt:"play",handler:l._onplayStart.bind(m(l))},{evt:wi,handler:l._onMaxBufferChange.bind(m(l))},{evt:"seeking",handler:l._onSeeking.bind(m(l))},{evt:"seeked",handler:l._onSeekEnd.bind(m(l))},{evt:"waiting",handler:l._onWaiting.bind(m(l))},{evt:"playing",handler:l._onPlaying.bind(m(l))}],l._hasStart=!1,l.listeners.forEach((function(e){var t=e.evt,n=e.handler;l.player.on(t,n)})),l._isPaused=!1,l._hasAddFrament=!1,l._eventInfo={local_time_ms:0,internet_speed:0,buffer_length:0,last_bitrate:0,now_bitrate:0,play_speed:1},l._bitrateSet=[],l._generalInfo={},l._currentInAbr=!1,l._hasCalcTimelineLog=!1,l._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:[]}},l._abrMethod=l.autoBitrateOpts.method||0,l.logger("abr: constructor"),l._loopInterval=l.initInterval,l._tickCount=0,l._fps=30,T.install(),l.startTime=performance.now(),l.logger("time abr",(new Date).getTime()),l._maxCacheTimeVideo=l.config.preloadTime||5,l._maxCacheTimeAudio=l._maxCacheTimeVideo,l._prevDefinitionItem=null,l._currentItem=null,l._switchCount=0,l._switchBitrate=0,l._avgStatItems={};for(var a=Object.keys(Ai),d=0;d<a.length;d++){var o=a[d],s=Ai[o];l._avgStatItems[s]=new $i}return l._qoeArgs=[0,0,0,0],l._abrUsed=-1,l._abrAlwaysOn=1,l._prelaodInfo=null,l._hasLogStartInfo=!1,l._hasExecuteAbrAlgo=!1,l._lastExecuteTimeInMs=0,l}return u(n,[{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.onPlay()}},{key:"_onSeeking",value:function(){this._isSeeking=!0,this.player.currentTime<this._videoCurrentTime?this._seekState=Pi:this._seekState=Hi,this.logger("seekState",this._seekState)}},{key:"_onSeekEnd",value:function(){this._isSeeking=!1}},{key:"_onWaiting",value:function(){var e=this;if(!(this._isSeeking||this._waitingStartTime>0)){for(var t=this.player.video.buffered,n=this.player.currentTime,U=!1,F=0;F<t.length;F++){var Q=t.start(F),i=t.end(F);if(Q<=n&&n<i-1&&this.player.readyState<HTMLVideoElement.HAVE_ENOUGH_DATA){U=!0;break}}U&&(this._defaultMaxBitrate||this._underflowBitrate)&&(this.player.emit(Ki),this._underflowBitrate>0&&(this._maxBitrate=this._underflowBitrate)),this._waitingStartTime=(new Date).getTime(),this._stallId=setTimeout((function(){clearTimeout(e._stallId),e._stallCount++,e._stallState=Oi}),200)}}},{key:"_onPlaying",value:function(){this._waitingStartTime=0,this._stallState=zi,clearTimeout(this._stallId)}},{key:"initFps",value:function(){this.fpsDetection=new T,this.fpsDetection.start(),this._fps=this.fpsDetection.fps,this._hasDeviceInfoChanged=!0}},{key:"listenSize",value:function(){var e,t,n,U;this.mediaElem=this.player.video,this._onWinSizeChange=(e=this.onWinElemSizeChange.bind(this),t=1e3,n=!1,function(){for(var F=this,Q=arguments.length,i=new Array(Q),l=0;l<Q;l++)i[l]=arguments[l];var r=i,a=n&&!U;clearTimeout(U),U=setTimeout((function(){U=null,n||e.apply(F,r)}),t),a&&e.apply(F,r)}),window.addEventListener("resize",this._onWinSizeChange)}},{key:"onWinElemSizeChange",value:function(){if(this.mediaElem){var e=this.mediaElem.getBoundingClientRect();this._videoWidth=Math.floor(e.width),this._videoHeight=Math.floor(e.height),this._hasDeviceInfoChanged=!0}}},{key:"_onMaxBufferChange",value:function(e){var t=e.videoCacheTime,n=e.audioCacheTime;this._maxCacheTimeAudio=n,this._maxCacheTimeVideo=t}},{key:"_onTimeUpdate",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this._sortedBufferRange&&0!==this._sortedBufferRange.length&&this._currentInAbr){this._videoCurrentTime=this.player.currentTime;var n=Date.now();if(!(n-this._lastCheckResolutionStamp<1e3&&0!==this._lastCheckResolutionStamp)||t){this._lastCheckResolutionStamp=n;for(var U=this.player.currentTime,F=0,Q=this._sortedBufferRange.length-1,i=null;F<=Q;){var l=Math.floor(F+(Q-F)/2),r=this._sortedBufferRange[l];if(U<r.start)Q=l-1;else{if(!(U>=r.end)){i=r;break}F=l+1}}if(i){var a=this._bitrateToDefitionConfig.get(i.bandwidth),d=a&&a.definition;if(this._currentDefinition===d&&!t||!d)return void(d||this.logger("error defintion, mpd配置与接口配置不一致"));this._currentDefinition=d,this._prevDefinitionItem=this._currentItem,this._currentFps=a.fps,this._currentItem=a,this._emitAutoDescChange(d,!1,this._currentFps,a)}}}}},{key:"_emitAutoDescChange",value:function(e,t,n,U){this.player.emit(Mi,{definition:e,reset:t,fps:n,item:U,pre_item:this._prevDefinitionItem})}},{key:"_onplayStart",value:function(){this._hasStart=!0,this.logger("onplaystart")}},{key:"_updateAutoDesc",value:function(){var e=this;this._currentInAbr&&this._currentDefinition&&(this._updateId=setTimeout((function(){clearTimeout(e._updateId),e._emitAutoDescChange(e._currentDefinition,!1,e._currentFps,e._currentItem)}),0))}},{key:"_bufferRangeUpdate",value:function(e){if(void 0!==e.start){null===this._currentItem&&this._onTimeUpdate(null,!0);var t=e.start;this._hasAddFrament=!0,this._bufferRange.set(t,e);var n=E(this._bufferRange.values());this._sortedBufferRange=n.sort((function(e,t){return e.start-t.start})),this.avgStat(Ai.DOWNLOAD_BITRATE,e.bandwidth)}}},{key:"_onPlayrateChange",value:function(){this.module&&this.updateBufferInfo()}},{key:"_onPlay",value:function(){var e=this;if(!this.isOpenAutoDefi)return this.logger("onPlay"),0;var t=0;try{this.logger("abr: loadeddata"),this.updateSwitchInfo(),this.parseMPD(),this.updateDeviceInfo();var U=n.getIsPlayAutoDefi(this.autoBitrateOpts);if(this.isOpenAutoDefi&&U){this._abrUsed=1;var F=this._getDefautSpeed(this.player);t=this._loopAbr(F),this.start(),this.logger("time abr start prgress",(new Date).getTime()),this.logger("time abr costTime",performance.now()-this.startTime),this.logger("abr onplay"),this.startTimer=setTimeout((function(){e._loopInterval=e.interval,clearTimeout(e.startTimer),e.logger("interval change")}),5e3)}}catch(Q){this.logger("abr: loadeddata error",Q),this.logger("time abr costTime err",performance.now()-this.startTime)}return t}},{key:"start",value:function(){if(this.logger("abr: start"),this._isPaused=!1,!this._hasCalcTimelineLog){var e=1===Math.floor(100*Math.random());this._abr_play_info.is_hint=e?1:0}this._hasCalcTimelineLog=!0,this._loop()}},{key:"_loop",value:function(){var e=this;this._isPaused||(clearTimeout(this.timerId),this.timerId=setTimeout((function(){if(!e.player.paused||!e.player.config.autoplay&&!e._hasStart){var t=e._hasAddFrament?void 0:e._getDefautSpeed(e.player);e._loopAbr(t)}e._loop()}),this._loopInterval))}},{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(t){}}},{key:"updateBufferInfo",value:function(e){var t=this.player.playbackRate,n=this.bufferLength,U=e||Math.floor(this.player.downloadSpeed);this._tickCount<5&&0===U&&(U=this._getDefautSpeed(this.player),this.logger("initSpeed fix"));var F=-1===this._maxBitrate?this._defaultMaxBitrate:this._maxBitrate;return this.logger("maxCacheTimeAudio:",this._maxCacheTimeAudio,"maxCacheVideoTime",this._maxCacheTimeVideo,"seekState",this._seekState,"stallState",this._stallState,"maxBitrate",F),this.module._updateBufferInfo(t,this._maxCacheTimeAudio,this._maxCacheTimeVideo,n,n,U,this._seekState,this.player.currentTime,this._stallState,F),this._seekState=ji,this._eventInfo={internet_speed:U,buffer_length:n,last_bitrate:this.bitrate,play_speed:t},this.logger("playRate:",t,"buff:",n,"downloadSpeed:",U),{buffer:n,downloadSpeed:U}}},{key:"updateSwitchInfo",value:function(){var e=(new Date).getTime();this._openTimeMs=e,this._abr_play_info.start_play_time_ms=e;var t,n,U=this.player.config.preloadTime||50,F=(n=(t=e).toString(16)).length<=8?{high:0,low:t}:{high:parseInt(n.substr(0,n.length-8),16),low:parseInt(n.substr(n.length-8),16)},Q=this.autoBitrateOpts.noStallCheckTime||5,i=this.openLog;this.logger("openTime:",e,"this.logger",i),this.module._updateSwitchInfo(F.low,F.high,Q,i,this.stall_penalty,this.switch_penalty);var l=this._mediaList.video,r=l.map((function(e){var t=e.bandwidth,n=e.bitrate;return t||n}));this._bitrateSet=r.map((function(e,t){return{bitrate:e,codecs:l[t].codecs||l[t].codec_type}})),this._generalInfo={max_cache_time:U,bitrate_set:this._bitrateSet,segment_duration:this.segment_duration,preload_info:{},startup_info:{}}}},{key:"updatePreloadCacheInfo",value:function(e){try{this._prelaodInfo=e,this.logger("update preloadInfo",e),e&&e.item_num!==e.items.length&&(this.logger("preloadInfo invalid"),this._prelaodInfo=null)}catch(t){this.logger("updatePreloadCacheInfo",t),this._prelaodInfo=null}}},{key:"updatePreloadLogInfo",value:function(e){this._generalInfo.preload_info=e||{}}},{key:"_updatePreloadInfo",value:function(){try{var e=this.player.getPreloadInfos();if(e){var t=e.preloadInfo,n=e.abr;this.updatePreloadLogInfo(t),n&&this.updatePreloadCacheInfo(t)}if(this.logger("_updatePreloadInfo preloadinfos",e),null!=this._prelaodInfo){var U=JSON.stringify(this._prelaodInfo);this.module.ccall("updatePreloadInfo","null",["string"],[U])}else this.logger("_updatePreloadInfo preloadinfo null, no preload")}catch(F){this.logger("_updatePreloadInfo err",F)}}},{key:"_loopAbr",value:function(e){var t;this._tickCount++;var n=[];try{this.updateDeviceInfo();var U=this.updateBufferInfo(e),F=U.downloadSpeed,Q=U.buffer;t=this.module._getPredictedBitrate(this.bitrate,this._abrMethod);for(var i=0;i<7;i++)n.push(this.module.HEAP32[t/Int32Array.BYTES_PER_ELEMENT+i]);var l=n[0],r=1===n[1];this._eventInfo.now_bitrate=l,this._eventInfo.local_time_ms=(new Date).getTime();var a=0;if(l!==this.bitrate&&0!==l){var d=this.bitrate;a=Math.abs(d-l);for(var o=[],s=this.player.video.buffered,B=0;B<s.length;B++)o.push({start:s.start(B),end:s.end(B)});var c=this._videoWidth||Number(this.config.width),R=this._videoHeight||Number(this.config.height),V=(new Date).getTime(),u={speed:"".concat(F," KB/s"),buffer_length:"".concat(Q," s"),video_pos:this.player.currentTime,all_buffers:o,seek_state:this._seekState,stall_state:this._stallState,screen_width:c,screen_height:R,dpr:window&&window.devicePixelRatio,playbackRate:this.player.playbackRate,bitrateSet:this._bitrateSet,abrMethod:this._abrMethod,delta:this._hasExecuteAbrAlgo?V-this._lastExecuteTimeInMs:0};this._lastExecuteTimeInMs=V,this._hasExecuteAbrAlgo=!0,this.player.emit(Gi,this.bitrate,l,r,JSON.stringify(u)),this.logger("abr loop predicte:",l,"willStall:",r,"switchBitrate",a,"cur",d),this.bitrate=l}this._hasLogStartInfo||(this._hasLogStartInfo=!0,this._generalInfo.startup_info={predict_bitrate:l,download_speed:F,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}),this.player.emit("ABR_LOOP"),this.onAbrLoop(F,n[2],a,n.slice(3))}catch(h){this.logger("abr error",h),console.log("error",h)}finally{this.module._free(t)}return this.bitrate}},{key:"stop",value:function(){!0===(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&(this._abrAlwaysOn=-1),clearTimeout(this.timerId),this._isPaused=!0,this.logger("abr: stop")}},{key:"destroy",value:function(){var e=this;this._stop(),this.listeners.forEach((function(t){var n=t.evt,U=t.handler;e.player.off(n,U)})),this.player=null,this._heightToDefitionConfig=null,this._bitrateToDefitionConfig=null,this._bufferRange=null,this._sortedBufferRange=null,this.module=null,clearTimeout(this._stallId),clearTimeout(this._updateId),clearTimeout(this.startTimer),window.removeEventListener("resize",this._onWinSizeChange),this.fpsDetection&&this.fpsDetection.stop(),this._maxBitrate=-1,this.player=null}},{key:"eventInfo",get:function(){return this._eventInfo}},{key:"generalInfo",get:function(){return this._generalInfo}},{key:"bufferLength",get:function(){var e=this.player.getBufferedRange(),t=this.player.video.currentTime,n=e[1]-Math.max(e[0],t);return n=Math.max(0,n).toFixed(2),parseFloat(n)}},{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=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(this._qoeArgs=U,this._currentItem&&this.avgStat(Ai.PLAYBACK_BITRATE,this._currentItem.bitrate),this.avgStat(Ai.DOWNLOAD_NETWORK_SPEED,1e3*e*8),this.avgStat(Ai.PREDICT_NETWORK_SPEED,t),this.avgStat(Ai.BUFFER_LENGTH,this.bufferLength),this.avgStat(Ai.QOE,this.getQoeRelValue(0)),n>0&&(this._switchCount++,this._switchBitrate+=n),this._abr_play_info.is_hint){var F=this,Q=((new Date).getTime()-this.openTimeMs)/1e3;Q=parseFloat(Q.toFixed(2)),this._abr_play_info.playback_info.internet_speed_record.push([Q,F.downloadSpeed]),this._abr_play_info.playback_info.play_bitrate_record.push([Q,F.nowBitrate]),this._abr_play_info.playback_info.buffer_length_record.push([Q,F.bufferLength]),this._abr_play_info.playback_info.play_speed_record.push([Q,this.player.playbackRate]),this._abr_play_info.playback_info.qoe_record.push([Q,this.getQoeRelValue(0)]),this._abr_play_info.playback_info.qoe_a_record.push([Q,this.getQoeRelValue(1)]),this._abr_play_info.playback_info.qoe_b_record.push([Q,this.getQoeRelValue(2)]),this._abr_play_info.playback_info.qoe_c_record.push([Q,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:"getAbrVVStats",value:function(){for(var e={},t=Object.keys(Ai),n=0;n<t.length;n++){var U=t[n],F=Ai[U],Q=this._avgStatItems[F];e[F]=Q.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}}],[{key:"getIsPlayAutoDefi",value:function(e){return!!e.isPlayAutoDefi}}]),n}(Ii),$i=function(){function e(){R(this,e),this.total=0,this.count=0}return u(e,[{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)}}]),e}(),el=function(){function e(t){R(this,e),this.onTick_=t,this.cancelPending_=null}return u(e,[{key:"tickAfter",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.stop();var U=!0,F=null;this.cancelPending_=function(){window.clearTimeout(F),U=!1};return F=window.setTimeout((function(){U&&(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)}}]),e}(),tl={stallSkip:.1,stallCount:3,stallTimer:1,failCount:2},nl=function(){function e(t,n){var U=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;R(this,e),this.player=t,this.mediaElem=t.video,this.config=Object.assign({},n,tl),this.timer=new el((function(){U.onGapJump()})),this.inBufferTimer=new el((function(){U._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=F,this.player.on(It,(function(e){U.requests=e})),!1!==this.config.useGapJump&&this._start()}return u(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,U=this._checkIfNextRequestFailed(e,t),F=this._checkIfNextRequestFailed(e,n);if(U.result||F.result){var Q=U.result?U.end:F.end;Q=Q<this.player.duration-.5?Q+.5:this.player.duration,this.player.currentTime=Q,this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap_req",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*Q)}})}}}},{key:"_checkIfNextRequestFailed",value:function(e,t){for(var n=0;n<t.length;n++){var U=t[n],F=U.start-e<1.5,Q=U.start<=e&&e<=U.end,i=403!==(null==U?void 0:U.response.status);if(F&&Q&&U.count>=this.config.failCount&&i)return{end:U.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,U=this.config.gapDetectionThreshold||.5,F=this.mediaElem.currentTime,Q=this._getIndex(t,F,U);if(null!==Q&&(0!==Q||this.segmentAppended)){var i=t.start(Q);if(!(i>this.mediaElem.duration)){var l=i-F,r=l<=n;l<e.BROWSER_GAP_TOLERANCE||r&&(this.mediaElem.currentTime=this.isSafari?i+.1:i,pt.gap("gapJump gapIndex",Q,"isGapSamll",r,"jumpLargeGap",!1,"currentTime",this.mediaElem.currentTime),.08!==i&&this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*i)}}))}}}}}},{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,U=[],F=0;F<t.length;F++){var Q=t.start(F),i=t.end(F);U.push({start:Q,end:i}),e<Q-.1||(e>i-.5||(n=!0))}var l=this.mediaElem.buffered,r=l.length;r>0&&this.mediaElem.duration===l.end(r-1)&&(n=!0);var a=this.mediaElem.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA;if(n&&a&&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,U))}catch(d){}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 U=this._getBuffered(e),F=null,Q=0;Q<U.length;Q++){if(U[Q].start>t&&(0===Q||U[Q-1].end-t<=n)){F=Q;break}}return F}},{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}}]),e}();nl.BROWSER_GAP_TOLERANCE=.001;var Ul=Yt,Fl=function(){function e(t){var n=this;R(this,e),h(this,"_onChangeConfig",(function(e){if(e){var t,U=e.nextBufferLength===(null===(t=n.config)||void 0===t?void 0:t.minBufferLength);if(n._nextBufferLength=e.nextBufferLength,e.nextBufferLength&&!U)try{n.loadData()}catch(F){}}})),h(this,"startProgressTimer",(function(){n._pluginInst.info({msg:"startProgressTimer"});var e=n;n._loadDataTime=0;var t=n.player,U=n.config;t&&e&&e.isDashCanUse&&e.dash.mse&&(e.dash.mse.progressTimer=new C,e.dash.mse.progressTimer.repeat((function(){n._checkAndLoadData("timer")}),1e3*U.tickInSeconds||U.progressTimer||Jt),n._startCheckBufferBreakTimer(),n.player.on(r.Events.TIME_UPDATE,n._onTimeUpdate))})),h(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())})),h(this,"_checkAndLoadData",(function(){var e=n.config;if(n.isDashCanUse&&n.dash.mse&&n.dash.mse.progressTimer){var t=1e3*e.tickInSeconds||e.progressTimer||Jt,U=EU.nowTime();U-n._loadDataTime>=t&&(n._loadDataTime=U,n.checkRemoveBuffer(),n.handleUrlExpire(),n.loadData(void 0),n.isEnded())}})),h(this,"_onAutoDescChange",(function(e){var t=e.definition,U=e.reset,F=e.fps,Q=e.item;n.updateAutoDefiDesc(t,U,F,Q)})),this._pluginInst=t.pluginInst;var U=this._pluginInst,F=U.player,Q=U.config;this._minDuration=1/0,this.player=F,this.config=Q,this.startTimestamp=(new Date).getTime(),this.lastDefiIdx=void 0,this.__isDashCanUse=!1,this.preloadBufferThreshold=this.config.preloadBufferThreshold||.5,this.abrInstance=null,this.definitions=[];var i=this.config.autoBitrateOpts||{};this.isPlayAutoDefi=qi.getIsPlayAutoDefi(i),this.isOpenAutoDefi=!!i.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.getPlayInfoTimestamp=this.startTimestamp/1e3;var l=Q.dashOpts.dynamic_video.dynamic_video_list,a=Q.dashOpts.dynamic_video.dynamic_audio_list;l&&l.length>0?this.urlExpireTimestamp=Q.dashOpts.dynamic_video.dynamic_video_list[0].url_expire||0:a&&a.length>0&&(this.urlExpireTimestamp=Q.dashOpts.dynamic_video.dynamic_audio_list[0].url_expire||0),this.gapJumpInst=new nl(F,Q),EU.on(F,"addVideoBufferEnd",(function(){n.gapJumpInst.onSegmentAppend()}),"dashDestroy"),this._nextBufferLength=this.config.nextBufferLength,EU.on(F,Rn.CHANGE_FLYING_PLUGIN_CONFIG,this._onChangeConfig,"dashDestroy"),this._lastRemoveTimestamp=0}var t,n;return u(e,[{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,U){e.definition===n.defaultDefinition&&(t.dash.selectedIdx=U)})),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(){return this.dashVideoEncrypted||this.dashAudioEncrypted?this.config.useEME?1:2:0}},{key:"isEnded",value:function(){var e=this.dash,t=this.player,n=this.mse,U=this.config;if("vod"===e.type)if(t.ended)pt.log("player.ended === true"),"safari"===r.Sniffer.browser&&(t.pause(),t.emit("ended"));else{var F=U.duration||t.duration||e.mpd.duration;if(t.duration&&(F=Math.min(F,t.duration)),e.mpd.duration&&(F=Math.min(F,e.mpd.duration)),F-this._minDuration<10&&(F=Math.min(F,this._minDuration)),F>0&&F-t.currentTime<1){var Q=this._findRangeForPlaybackTime(t.currentTime)||{start:0,end:0};pt.log("range",Q,"current",t.currentTime,"duration",F);var i=Math.min(Q.end,t.duration),l=t.currentTime-i>=0&&Q.end>0,a=i-t.currentTime<1&&Q.end>0;(l||a)&&(pt.log("isEnded execute, isOver",l,"isClosed",a),console.log("isEnded execute, isOver",l,"isClosed",a),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(r.Events.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 U in this)delete this[U]}},{key:"bindComEvent",value:function(){var e=this;this._lastSeekTime=null;var t=this.player,n=this.config;EU.on(t,"error",e.clearProgressTimer.bind(e),"dashDestroy"),EU.on(t,"ended",e.clearProgressTimer.bind(e),"dashDestroy"),EU.on(t,"ended",(function(){e.ended=!0}),"dashDestroy");var U=function(){var U=c(o().mark((function U(){var F,Q,i,l,r,a,d,s,B,c;return o().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:if(pt.log("dash onSeeking",t.currentTime,"duration",t.duration),e.isDashCanUse&&n.dashOpts&&e.mse){U.next=3;break}return U.abrupt("return");case 3:if(Q=e.ended,e.ended=t.ended,!Q){U.next=8;break}return this.isOpenAutoDefi?this._pluginInst.next(t.currentTime,"NEXT",t.config.DASHPlugin,!0):e.startProgressTimer(),U.abrupt("return");case 8:if(i=t.getBufferedRange(t.buffered)[1],l=0===i,pt.log("dash onseeking, bufferEnd:".concat(i,", outBuffer:").concat(l,", \n switching:").concat(e.switching,", isFull:").concat(null===(F=e.mse)||void 0===F?void 0:F.isFull(Ge.VIDEO))),!l||e.switching){U.next=16;break}return e.abortLoading=!0,U.next=15,e.dash.abortLoadingTasks();case 15:pt.log("dash cancel loading task execute");case 16:if(e.dash){U.next=18;break}return U.abrupt("return");case 18:if(e.seekingCurSegment=e.dash.mpd.getCurSegment(),e.dash.mpd.setSegmentIndexByTime(t.currentTime),e.mse){U.next=22;break}return U.abrupt("return");case 22:if((r=e.mse).isFull&&(r.isFull(Ge.VIDEO)||r.isFull(Ge.AUDIO)))e.checkRemoveBuffer(!0,!0);else if(!l&&n.removeBufferWhenSeekInBuffer)try{a=t.getBufferedRange(e.mse.buffered("video"))[1],d=t.getBufferedRange(e.mse.buffered("audio"))[1],e._clearBufferByTime(Math.max(a,d),t.duration)}catch(o){}e.abortLoading=!1,l&&e._checkAndLoadData(),s=n.useDurationBackoff||!1,B=Date.now()/1e3,c=t.duration-t.currentTime<1,s&&c&&(!this._lastSeekTime||this._lastSeekTime<B-1)&&(this._lastSeekTime=B,t.currentTime=t.duration-1),e.gapJumpInst&&e.gapJumpInst.onSeeking(),l&&e.dash.clearFailedSegment();case 32:case"end":return U.stop()}}),U,this)})));return function(){return U.apply(this,arguments)}}();EU.on(t,"seeking",U,"dashDestroy");EU.on(t,"seeked",(function(){pt.log("dash onSeeked",t.currentTime),e.seeking=!1,e.isEnded(),e.dash.isAllAppend()&&(e.mse.endOfStream(),pt.log("dash seeked endofstream"))}),"dashDestroy"),EU.on(t,"dashDestroy",e.dashDestroy.bind(this))}},{key:"_seekingCheckBuffer",value:function(){var e=this;if(this.dash)for(var t=[Ge.VIDEO,Ge.AUDIO],n=0;n<t.length;n++)for(var U=t[n],F=this.dash.mpd.getBuffered(U),Q=function(){var t=F[i],n=e.player.currentTime,Q=t.start<=n&&n<=t.end;if(!Q&&t.end-t.start<.5){pt.log("remove buffer _seekingCheckBuffer",t.start,t.end,"curTime",n,"inBuffer",Q,"mediaType",U,"mediaBuffered",F);var l=e.removeBuffer(U,t.start,t.end);l&&l.catch((function(e){pt.log("_seekingCheckBuffer start",t.start,"end",t.end,e.message)}))}},i=0;i<F.length;i++)Q()}},{key:"destroy",value:function(){this.player.emit("dashDestroy")}},{key:"_findRangeForPlaybackTime",value:function(e){var t=this.player.buffered;if(t)for(var n=0;n<t.length;n++)if(EU.round(t.start(n))<=EU.round(e)&&EU.round(t.end(n))>=EU.round(e))return{start:EU.round(t.start(n)),end:EU.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,U=this.player,F=this.config;if(n.switching||n.abortLoading)pt.log("loadData switching",n.switching);else if(n.dash){var Q,i=F.maxBufferLength||F.preloadTime||50,l=n.dash.mpd.mediaList.video;if(l&&l.length>0&&l[l.selectedIdx]){var r=l[l.selectedIdx].bandwidth;Q=l[l.selectedIdx].definition||this.bandwidth2item[r].definition}if(F.dynamicPreloadTimeOpts&&Q){var a=F.dynamicPreloadTimeOpts[Q];a&&(i=a)}var d=!1;U.paused&&(d=!0),i=d?U.isInstNext&&this._nextBufferLength>=0?this._nextBufferLength:F.minBufferLength:n.dash.getAdaptCacheBuffer(i),n.preloadTime!==i&&(n.preloadTime=i,pt.log("maxCacheTimeAudio change",i),U.emit(wi,{videoCacheTime:i,audioCacheTime:i})),e||(e=U.currentTime);var o=this._findRangeForPlaybackTime(e),s=o&&Math.ceil(Math.max(o.end,o.rawEnd))||Math.floor(e);if(n.dash.isOpenPCDN((null==o?void 0:o.end)||0),!(s>e+i)){var B=n.dash.getPCDNInOutBuffer(),c={force_set_min:d,buffer_dur:i,load_size:-1,load_tar_dur:-1,load_dur:-1,in_buf:B.PCDNInBuffer||-1,out_buf:B.PCDNOutBuffer||-1};n.dash.pushDynamicBufferServiceRes(c),n.dash.seek(s,U.currentTime,t,i)}}}},{key:"startCheckCanplayTimer",value:function(){var e=this,t=this.player,n=this.config;if(t&&e&&!n.disableCanplayCheck){e.checkCanplayTimer=new C,e.checkCanplayTimer.repeat((function(){t&&e&&e.isDashCanUse&&e.checkCanplayTimer&&t.errorHandler&&(t.enterIsHide?(pt.log("视频已起播,重置标记"),e.dashNoCanplay=0,e.clearCheckCanplayTimer()):e.dashNoCanplay||"visible"!==document.visibilityState||(e.dashNoCanplay=1,pt.log("未起播计时开始!持续".concat(mt,"毫秒没有获取到init分片则确认没有起播")),e.dashNoCanplayTimer=setTimeout((function(){e.dashNoCanplayTimer=null,1===e.dashNoCanplay&&!1===t.enterIsHide&&(t.dashState!==Tt?(e.dashNoCanplay=2,pt.log("确认未获取到init分片,没有起播!!!"),e.clearCheckCanplayTimer(),t.errorHandler(new GF(Je,me.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"}))):n.disableDashNoCanplayCheck||(pt.log("未起播计时开始!持续".concat(1e4,"毫秒则确认没有起播")),e.dashNoCanplayTimer=setTimeout((function(){e.dashNoCanplayTimer=null,1===e.dashNoCanplay&&!1===t.enterIsHide&&(e.dashNoCanplay=2,pt.log("确认没有起播!!!"),e.clearCheckCanplayTimer(),t.errorHandler(new GF(Je,me.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"})))}),1e4)))}),mt)))}),n.progressTimer||Jt)}}},{key:"clearCheckCanplayTimer",value:function(){this.checkCanplayTimer&&(this.checkCanplayTimer.clear(),this.checkCanplayTimer=null),this.dashNoCanplayTimer&&(clearTimeout(this.dashNoCanplayTimer),this.dashNoCanplayTimer=null,this.dashNoCanplay=void 0)}},{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;this.config.disableBufferBreakCheck||(this.clearBufferBreakTimer(),this.bufferCheckTimer=setTimeout((function(){e._onBufferBreakCheck(),e._startCheckBufferBreakTimer()}),Jt))}},{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||(pt.log("视频没有卡死,重置卡死标记"),e.dashBufferBreak=0,clearTimeout(e.dashBufferBreakTimer),e.dashBufferBreakTimer=null):e.dashBufferBreak||(e.dashBufferBreak=1,pt.log("卡死计时开始!持续".concat(n.waitingTimeOut,"毫秒则确认卡死")),e.dashBufferBreakTimer=setTimeout((function(){if(1===e.dashBufferBreak){e.dashBufferBreak=2,pt.log("确认卡死!!!");var t=document.hidden||"hidden"===document.visibilityState?me.WAITING_TIMEOUT_ERROR:me.BUFFERBREAK_ERROR;e.dash.emit("error",new GF(Je,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(Ge.VIDEO)||this.mse.isFull(Ge.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,U=this.config,F=(new Date).getTime(),Q=this._isMseFull(),i=e||Q;if(!(F-this._lastRemoveTimestamp<1e3*U.removeBufferLen)||i){this._lastRemoveTimestamp=F;var l=n.currentTime,r=n.getBufferedRange(),a=r&&r[0]>=0&&l-r[0]>U.removeBufferLen;pt.log("checkRemoveBuffer","mseFull",Q,"force",e,"needRemove",a),(i||a)&&this._clearBuffer(i,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],U=this.player;if(this.isDashCanUse&&this.mse){var F=U.getBufferedRange()[1]>0,Q=U.currentTime,i=EU.getBufferData(null==U?void 0:U.buffered,Q),l=i.beforeBufLen,r=i.afterBufLen,a=i.beforeLastBuffEnd,d=i.afterFirstBuffEnd,o=i.afterFirstBuffStart;F||(Q=Q-a<15?a:Q);var s=this._findClosetGop(Q,!1),B=t&&n&&!F,c=B?.1:5;if(s&&this._clearBufferByTime(0,s,(function(t){B&&(null==t?void 0:t.removeDur)<5&&e._clearBuffer(!0,!0)})),t){pt.log("clearBuffer isFull","isSeeking",n,"isInBuffer",F,"beforeBufLen",l,"afterBufLen",r,"afterFirstBuffEnd",d,"afterFirstBuffStart",o,"beforeLastBuffEnd",a);var R=0,V=0;if(n&&!F){if(V=this._findClosetGop(o,!0,2),R=this._findClosetGop(d,!1,1),pt.log("clearBuffer isFull removeStart",V,"removeEnd",R),0===l){for(var u=this.player.video.buffered,h=0,Z=u.length-1;Z>=0;Z--){var S=u.start(Z),p=u.end(Z);if((h+=p-S)>10){V=EU.round(S),R=EU.round(p);break}}pt.log("clearBuffer isFull beforeBufLen 0 removeStart",V,"removeEnd",R)}V<R?this._clearBufferByTime(V,R,(function(t){B&&(null==t?void 0:t.removeDur)<5&&e._clearBuffer(!0,!0)})):this._checkBufferFull(c)}else this._checkBufferFull(c)}}}},{key:"_findClosetGop",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,U=this.dash.mpd.mediaList.video;U[U.selectedIdx]||(U=this.dash.mpd.mediaList.audio);var F=U[U.selectedIdx].mediaSegments;if(t){for(var Q=0,i=0;i<F.length;i++)if(F[i].startRaw>e&&++Q>n)return F[i].start}else for(var l=0,r=F.length-1;r>-1;r--)if(F[r].endRaw<e&&++l>n)return F[r].end}},{key:"_getFirstGopEnd",value:function(){var e=this.dash.mpd.mediaList,t=e.video.length>0,n=this.dash.mpd.mediaList.audio.length>0,U=0;if(t){var F=e.video[e.video.selectedIdx].mediaSegments[0].end;U=Math.max(U,F)}if(n){var Q=e.audio[e.audio.selectedIdx].mediaSegments[0].end;U=Math.max(U,Q)}return{clearMinStart:U,hasVideo:t,hasAudio:n}}},{key:"clearBufferDirect",value:function(e,t,n){if(!(t>=n)){var U=this.removeBuffer(e,t,n);U&&U.catch((function(){pt.log("mediaType",e,"catch clearBufferDirect start: ".concat(t," end: ").concat(n))}))}}},{key:"_clearBufferByTime",value:function(e,t,n){var U=this,F=[],Q=this._getFirstGopEnd(),i=Q.clearMinStart,l=Q.hasVideo,r=Q.hasAudio;e=Math.max(i,e),pt.log("removeBuffer clearBufferByTime start: ".concat(e," end: ").concat(t," clearMinStart:").concat(i));var a=this.getBufferDur();if(e>t)return pt.log("clearBuffer return clearBufferByTime start: ".concat(e," end: ").concat(t," clearMinStart:").concat(i)),void n({removeDur:0});if(l){var d=this.removeBuffer(Ge.VIDEO,e,t);d&&F.push(d)}if(r){var o=this.removeBuffer(Ge.AUDIO,e,t);o&&F.push(o)}Promise.all(F).then((function(){var e=U.getBufferDur(),t=a-e;t>0&&(U.player.emit("removeBuffer",{removeDur:t}),pt.log("removeBuffer dur,",t,"oldTotalBuffer",a,"newTotalBuffer",e),U.player.emit("removeBufferEnd"),n&&n({removeDur:t}))})).catch((function(e){pt.log("removeBuffer error",e),n&&n({removeDur:0})}))}},{key:"removeBuffer",value:function(e,t,n){if(this.dash.mpd.clearBuffer(t,n,e),this.mse.remove&&!this._pluginInst.softVideo){var U=this.mse.remove(e,t,n);return U&&U.catch((function(){})),U}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,U=0,F=t.length;U<F;U++)n+=t.end(U)-t.start(U);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],U={width:n.width,height:n.height};e.emit("RESOLUTION_UPDATE",U)}else e.emit("RESOLUTION_UPDATE")}catch(F){e.emit("RESOLUTION_UPDATE")}}},{key:"updateDashType",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=X.getItem(wt),U=Mt;e=t||n===U.BACK?U.MAIN:U.BACK,X.setItem(wt,e)}},{key:"changeMainBackUrl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ul.INIT;if(!(arguments.length>1&&void 0!==arguments[1]&&arguments[1])&&this._pluginInst){var t=this._pluginInst.config,n=X.getItem(wt),U=!1;if((e===Ul.INIT&&n===Mt.BACK||e===Ul.ERR)&&(U=!0),pt.log("curDashType",n,"changeState",e,"needChange",U),U){var F=t.dashOpts.dynamic_video.main_url,Q=t.dashOpts.dynamic_video.backup_url_1;t.dashOpts.dynamic_video.main_url=Q,t.dashOpts.dynamic_video.backup_url_1=F,EU.exchangeListUrl(t.dashOpts.dynamic_video.dynamic_video_list),EU.exchangeListUrl(t.dashOpts.dynamic_video.dynamic_audio_list)}var i=t.dashOpts.dynamic_video.main_url;return this._checkUrlRange(i),t}}},{key:"_checkUrlRange",value:function(e){var t=this._pluginInst.config,n=t.url_range_domains||[],U=EU.validateUrlRange(n,e);t.useUrlRange=U}},{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,U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,F=this.player,Q=(this.config.autoBitrateOpts||{}).autoDefiText||"auto";F.emit("ABR_AUTO_DESC_CHANGE",Q,t?void 0:e,n,U),t||this._pluginInst.setCurrentDefitionInfos("自动 ".concat(e),U)}},{key:"_abrLoadMetaSuccess",value:function(e,t,n){var U=this,F=this.dash,Q=this.config,i=F.mpd.mediaList.video;this.abrInstance&&this.abrInstance.updateBitrate(U.defiIdMap[e].bitrate),n&&(this.lastDefiIdx=e),U.selectedIdx=t,Q.defaultDefinition=i[U.selectedIdx].definition}},{key:"_startLoadInitSegment",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],U=new x,F=this,Q=this.dash,i=this.config;if(!Q.mpd)return pt.log("_startLoadInitSegment dash.mpd is null"),void U.reject();var l=Q.mpd.mediaList.video,r=l.selectedIdx;return l.every((function(Q,a){if(Q.id===e){r=a,F.switching=!0;var d=l[r].wrapperData;if(d)(F.dashVideoEncrypted||F.dashAudioEncrypted)&&!1===i.useEME&&F.crypto&&F.crypto.updateHeaderId(),t._abrLoadMetaSuccess(e,r,n),U.resolve(d);else{F._makeInitSegemntRequestWithRetry("video",r,!1,(function(){F.switching=!1})).then((function(F){t._abrLoadMetaSuccess(e,r,n),U.resolve(F)})).catch((function(e){F.switching=!1,pt.log("_makeInitSegemntRequestWithRetry",JSON.stringify({msg:e.message}))}))}return!1}return!0})),U}},{key:"setCurrentDefinition",value:function(){try{var e=this.dash,t=e.mpd.mediaList.video,n=t[t.selectedIdx],U=n.definition,F=n.bandwidth;this._pluginInst.setCurrentDefitionInfos(U,this.definition2item[U]),e.updateDynamicBufferServiceBitrate(F),e.checkPCDN()}catch(Q){console.log("setCurrentDefinition error",Q)}}},{key:"_emitDefinitionChangeDetailEvent",value:function(e){this.player.emit("definitionChangeDetail",e)}},{key:"setPlayerCurDefinition",value:function(e){var t=this._pluginInst.player;if(t.curDefinition=e,t.curDefinition){var n=this.dash.mpd.mediaList.audio,U=n[n.selectedIdx],F=this.config.dashOpts.dynamic_video.dynamic_audio_list;if(F.length>0)try{t.curDefinition.audioDefinition=F.filter((function(e){return e.main_url===U.baseURL}))[0]}catch(Q){pt.log("setAudioFaild",Q)}}}},{key:"switchURL",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],U=this,F=this._pluginInst.player;if(e){var Q=e.toString();e=Q.split("/")[Q.split("/").length-1];var i=U.definitions.filter((function(t){return t.url===e}))[0];if(i){this.setPlayerCurDefinition(i);var l=e===_i;if(pt.log("switchURL",e,n),l)return U.abrInstance.start(),U.isCurrentAutoDefi=!0,U.abrInstance.isCurrentInAbr=!0,void setTimeout((function(){U.abrInstance._onTimeUpdate(null,!0)}));U.isCurrentAutoDefi&&(U.updateAutoDefiDesc("",!0),U.isCurrentAutoDefi=!1,U.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi),n&&U.abrInstance.stop(!0),U._startLoadInitSegment(e,!0).then(function(){var e=c(o().mark((function e(n){var Q,i,l,a,d,s,B,c,R,V;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U.selectedIdx===n.newIdx){e.next=3;break}return pt.log("definitionSwitchTime cancel, current:",U.selectedIdx,"self",n.newIdx),e.abrupt("return");case 3:return i=U.dash,l=i.mpd.mediaList.video,e.next=7,U._switch(n.newIdx);case 7:if(a=e.sent,d=F.currentTime,s=null,s=l[a||0].mediaSegments.find((function(e){return e.start-d>2.5})),B=!1,s||(c=l[a||0].mediaSegments,s=c[c.length-1],B=!0),s){e.next=15;break}return e.abrupt("return");case 15:R=EU.round(s.start),V=EU.round(F.getBufferedRange(F.buffered)[1]),pt.log("切换清晰度 curTime: ".concat(d," start: ").concat(R," end: ").concat(V)),U.setCurrentDefinition(),U.isCurrentInAbr()||(pt.log("definitionSwitchTime emit, current",U.selectedIdx),F.emit("definitionSwitchTime",R)),t._emitDefinitionChangeDetailEvent({start:R,bitrate:null===(Q=l[n.newIdx])||void 0===Q?void 0:Q.bandwidth,mediaType:Ge.VIDEO,definition:n.definition,url:n.url,fileid:n.fileId}),V-R>0&&"safari"!==r.Sniffer.browser&&!B&&(pt.log("removeBuffer: ".concat(R," ").concat(V)),U.removeBuffer(Ge.VIDEO,R,V)),U._appendInitSegment("video",n,n.newIdx).then((function(){pt.log("switchURL appendInitSegment",n.newIdx),U.switching=!1,U.loadData((s.start+s.end)/2,Gt),U.emitMenuResolutionChange(),U.dash.clearFailedSegment()}));case 23:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}}}},{key:"abrSwitchURL",value:function(e){var t=this,n=this.dash,U=this.player;e=e.split("/")[e.split("/").length-1],pt.log("abrSwitchURL",e),this._startLoadInitSegment(e).then(function(){var e=c(o().mark((function e(F){var Q,i,l,r,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Q=n.mpd.mediaList.video,e.next=3,t._switch(F.newIdx);case 3:if(i=e.sent,l=U.getBufferedRange(U.buffered)[1],r=Q[i].mediaSegments.find((function(e){return e.start-l>=0}))){e.next=8;break}return e.abrupt("return");case 8:a=0===l?U.currentTime:(r.start+r.end)/2,t._pluginInst.info({msg:"abr switch",data:{bd:Q[i].definition,d:Q[F.newIdx].definition,start:0===l?U.currentTime:r.start},add:!0}),t.setCurrentDefinition(),t._appendInitSegment("video",F,F.newIdx).then((function(){pt.log("abrSwitchURL appendInitSegment",F.newIdx),t.switching=!1,t.loadData(a,Gt)})).catch((function(e){pt.log("appendInitSegment",e)}));case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){pt.log("startLoadInitSegemnt",e)}))}},{key:"_switch",value:(n=c(o().mark((function e(t){var n,U,F,Q;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.dash,U=n.mpd.mediaList.video,F=U.selectedIdx,U.selectedIdx=t,this.abort(Ge.VIDEO),e.next=7,n.abortLoadingTasks();case 7:return U[F].mediaSegments.every((function(e){return e.downloaded=Dt,!0})),(Q=n.mpd.mediaList.audio)[Q.selectedIdx]&&Q[Q.selectedIdx].mediaSegments&&Q[Q.selectedIdx].mediaSegments.forEach((function(e){e.downloaded===Xt&&(e.downloaded=Dt)})),n.mpd.syncAV(),e.abrupt("return",F);case 12:case"end":return e.stop()}}),e,this)}))),function(e){return n.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,U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},F=arguments.length>4?arguments[4]:void 0,Q=this.dash,i=new x;if(e instanceof ArrayBuffer){var l=0===t.length?e:e.slice(t[0],t[1]+1),r=null===n?null:e.slice(n[0],n[1]+1);!1===Q.useEME&&this.crypto?this.crypto.decryptHeader(l,"video"===F,!this._pluginInst.softVideo).then((function(t){var n=t.data,F=n.res,Q=n.videoTrack,l=n.audioTrack,a=F;i.resolve({initSegmentRes:a,data:e,sidxSegmentRes:r,headers:U,videoTrack:Q,audioTrack:l})})):i.resolve({initSegmentRes:l,data:e,sidxSegmentRes:r,vid:null,headers:U})}else;return i}},{key:"_appendInitSegment",value:function(e,t,n){var U=this,F=this.player,Q=this.config.duration;this.dash.mpd.duration>0&&(Q=this.dash.mpd.duration);var i=new x,l=this.dash.mpd.mediaList[e],r=t.initSegmentRes,a=t.sidxSegmentRes;if(!t.fromCache&&(t.fromCache=!0,l[l.selectedIdx].wrapperData=t,a))try{this.dash.mpd.getSidx(a,e,n,Q)}catch(o){F.errorHandler(o)}if(e===Ge.VIDEO){var d=function(e){for(var t=Object.keys(jF),n=0;n<t.length;n++){var U=t[n];if(jF[U].codecs===e)return U}return null}(l[l.selectedIdx].codecs);this._pluginInst.setCodeInfo(d)}return pt.log("appendInitSegment mediaType:".concat(e,", index: ").concat(n)),this.dash.changeType(e,l[l.selectedIdx].codecs),this._pluginInst._kernal.setNodeTime("init_".concat(e,"_appendStart")),this.dash.appendBuffer(e,r,{mediaType:e,index:n,initSegment:!0,allSegment:!0},t.videoTrack,t.audioTrack).then((function(t){if(U._pluginInst.info({msg:"appendBuffer",data:{mediaType:e,index:n}}),U._pluginInst._kernal.setNodeTime("init_".concat(e,"_appendDone"),t),pt.log("appendInitSegment success mediaType:".concat(e,", index: ").concat(n,", \n curVideoInitSegment:").concat(U.curVideoInitSegmentIdx)),l[l.selectedIdx].inited=!0,i.resolve(),"video"===e&&U.curVideoInitSegmentIdx!==n){U.curVideoInitSegmentIdx=n;var Q=U._findClosetGop(F.currentTime,!0,0);U.dash.mpd.clearBuffer(Q,F.duration,"video")}})).catch((function(t){pt.log("appendInitSegment type-".concat(e,"-appendCatch,range:").concat(JSON.stringify(r),",\n message:").concat(t.message)),t&&t.errorCode&&F&&F.emit(new GF(Ze,t.errorCode,{message:"appendInit ".concat(t.message)}))})),i}},{key:"_makeInitSegemntRequest",value:(t=c(o().mark((function e(){var t,n,U,F,Q,i,l,r,a,d,s,B,c,R,V,u,h,Z,S,p,J,m,W,k=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=k.length>0&&void 0!==k[0]?k[0]:"video",U=k.length>1&&void 0!==k[1]?k[1]:0,F=k.length>2&&void 0!==k[2]?k[2]:null,Q=this.dash,i=this.config,l=new x,r=Q.mpd&&Q.mpd.mediaList[n][U],a=[],d="",r){e.next=12;break}return l.reject({mediaType:n,index:U,initSegmentRange:a,url:d,rejected:!0,msg:"list is null"}),pt.log("initSegmentRequest error"),e.abrupt("return",l);case 12:return a=(r.initSegmentRange||[]).concat(),(s="segment_base"===Q.mpd.dashType)&&(a[1]=r.sidxRange[1]),d=r.initSegment,B="video"===n&&(r.definition||this.bandwidth2item[r.bandwidth].definition),this._checkUrlRange(d),c={mediaType:n,vid:i.vid,definition:"video"===n?B:void 0,useUrlRange:i.useUrlRange,timeout:-1,bitrate:r.avg_bitrate||r.bandwidth||r.bitrate,initSegment:!0,codecType:(null===(t=Q.mpd)||void 0===t?void 0:t.videoCodecType)||"h264",fileId:r.fileId,checkPreload:!0},e.next=21,Q.getData(d,a,n,c,!1,null,F);case 21:return R=e.sent,V=R.res,u=R.headers,h=R.status,Z=R.readyState,S=R.fromCache,p=R.error,J=R.orgDefinition,V&&"error"!==V?(J&&B===(null===(W=this.player.curDefinition)||void 0===W?void 0:W.definition)&&(this.player.curDefinition.orgDefinition=J),this._handleInitData(V,r.initSegmentRange,s?r.sidxRange:null,u,n).then((function(e){e.newIdx=U,e.mediaType=n,e.initSegmentRange=a,e.cache=S,e.definition=c.definition,e.bitrate=c.bitrate,e.url=d,e.fileId=c.fileId,l.resolve(e)}))):(m=!1,r.fallbackUrl&&!r.hasFallback&&s&&(r.hasFallback=!0,m=!0,r.initSegment=r.fallbackUrl),l.reject({mediaType:n,index:U,initSegmentRange:a,url:d,rejected:!0,reason:V,status:h,readyState:Z,ext:p instanceof Error?{msg:p.message}:p,retry:m})),e.abrupt("return",l);case 31:case"end":return e.stop()}}),e,this)}))),function(){return t.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,U=arguments.length>2&&void 0!==arguments[2]&&arguments[2],F=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,Q=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;this.handleUrlExpire();var i=Q||new x;return U&&this._pluginInst._kernal.setNodeTime("init".concat(t,"_metastart")),this._makeInitSegemntRequest(t,n,F).then((function(F){e._pluginInst.info({msg:"initSegmentRequest succ"}),U&&(e._pluginInst._kernal.setNodeTime("init".concat(t,"_metadone"),{fromCache:F.cache,byteLength:F.data.byteLength,mediaType:t,index:n,definition:F.definition,isInitSegment:!0}),e._emitDefinitionChangeDetailEvent({start:0,bitrate:F.bitrate,mediaType:t,definition:F.definition,url:F.url,fileid:F.fileId})),i.resolve(F)})).catch((function(U){var Q;if(U.retry)e._makeInitSegemntRequestWithRetry(t,n,!1,F,i);else{var l=U.message?U.message:U;i.reject(new GF(Je,GF.INIT_SEGMENT_ERROR,{line:329,mediaType:t,index:n,error:l,message:"reason ".concat((null==U||null===(Q=U.ext)||void 0===Q?void 0:Q.msg)||(null==l?void 0:l.reason)," status ").concat(null==l?void 0:l.status),retry:U.retry}))}})),i}},{key:"updateAbrCacheData",value:function(e,t,n){var U=this.dash,F=this.config,Q=F.autoBitrateOpts||{},i=U.mpd.mediaList.video,l=n.definition,r=F.definitionText&&F.definitionText[l]||l,a=i[e],d=n.bitrate;this.bitrateMap[d]={url:a.id,definition:l,definitionName:r},this.defiIdMap[a.id]={bitrate:d,definition:l},e===i.length-1&&this.isOpenAutoDefi&&this.definitions.push({name:Q.autoDefiText||"auto",url:_i,selected:t,definition:"自动",fps:void 0})}},{key:"destroyAbr",value:function(){var e=this,t=this.player;e.abrInstance&&(t&&t.off(Mi,this._onAutoDescChange),e.abrInstance.destroy(),e.abrInstance=null)}},{key:"initAbr",value:function(){var e=this,t=this,n=this.player,U=this.config;EU.on(n,Mi,this._onAutoDescChange,"dashDestroy"),this.bitrateMap={},this.defiIdMap={};var F=ct;t.abrInstance=new qi(n,U,0,U.dashOpts.dynamic_video,5e3,{logger:pt.abr,openLog:F}),EU.once(n,Yi,this.startProgressTimer,"dashDestroy"),t.abrInstance.onAbrChange=function(e,U,F,Q){var i=t.bitrateMap[e],l=t.bitrateMap[U],r=null==i?void 0:i.definition,a=null==l?void 0:l.definition;pt.abr("abr change prevD:",r,"curDef:".concat(a)),r!==a&&l&&(t.abrSwitchURL(l.url),n.emit("ABR_CHANGE",{prev:r,cur:a,prevName:i.definitionName,curName:l.definitionName,abrInfo:Q}))},EU.on(n,Gi,t.abrInstance.onAbrChange,"dashDestroy"),EU.on(n,Ki,(function(){if(t.isCurrentInAbr()){var U=5*Math.floor(n.currentTime/5)+5;pt.log("ABR_LIMIT_BITRATE, currentTime",n.currentTime,"removeStart",U),e.removeBuffer(Ge.VIDEO,U,n.duration)}}),"dashDestroy"),t.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi}},{key:"isCurrentInAbr",value:function(){return!!this.abrInstance&&this.abrInstance.isCurrentInAbr}}]),e}(),Ql=Fl,il=Yt,ll=["initaudio_metadone","initvideo_metadone","initaudio_segdone","initvideo_segdone","initaudio_segcache","initvideo_segcache"],rl=function(){function e(t){var n=this;R(this,e),h(this,"start",function(){var e=c(o().mark((function e(t){var U,F,Q,i,l,r,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n._beforeLoadStartCostTime=0,n._tm=EU.nowTime(),n._sTime=EU.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"),U=Date.now(),F=n.__dash__,Q=n._pluginInst,i=Q.player,l=Q.config,i.dashState=yt,i.emit("dashStateChange",yt),t||(t=i.config.url="anytext"),r=new Ti(t,n._pluginInst,F),F){e.next=17;break}return n._info({msg:"__dash__ is null, dashOpts",startMs:U,name:"start __dash__"}),e.abrupt("return");case 17:return F.initDash(r),F.dashVideoEncrypted||F.dashAudioEncrypted||n._pluginInst.softVideo?(pt.log("加密视频"),a=!1===l.useEME,l.useEME=Qn(),(a||n._pluginInst.softVideo)&&(l.useEME=!1),l.intertrustServerURL&&(l.useEME=!0),l.useEME||(F.crypto=new xi),r.useEME=l.useEME,n._info({msg:"encrypt video ready useEME ".concat(r.useEME)})):(pt.log("非加密视频"),n._info({msg:" no encrypt video ready"})),i.dashState=ft,i.emit("dashStateChange",ft),e.next=23,n._onWasmReady({url:t});case 23:n._info({msg:"info player start execute",startMs:U,name:"start",profile:!0}),n._hasStart=!0;case 25:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),h(this,"_onLoadStart",(function(){var e=EU.nowTime()-n._tm;n._beforeLoadStartCostTime=e>100?100:e,n.changeState("loadstart","beforeLoadStartCostTime ".concat(n._beforeLoadStartCostTime))})),h(this,"_onLoadData",c(o().mark((function e(){var t,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.changeState("loaddata"),null==(F=n.__dash__)||null===(t=F.dash)||void 0===t||t.checkPCDN(),null==F||null===(U=F.dash)||void 0===U||U.cachePreloadData(),null==F||!F.abrInstance){e.next=8;break}return e.next=7,F.abrInstance.init(F.dash.mpd.mediaList);case 7:F.abrInstance.execute();case 8:case"end":return e.stop()}}),e)})))),h(this,"_errorHandler",(function(e){var t,U;if(!n._checkHasDestroy("errorHandler")){var F=n._pluginInst,Q=F.player,i=F.config;if(i.codecType===jF[KF].logCodeType&&(null===(t=Q.video.error)||void 0===t||null===(U=t.message)||void 0===U?void 0:U.indexOf("video decoder initialization failed"))>=0&&(pt.log("ErrorHandler DECODER_FAILED"),Q.emit("DECODER_FAILED",{codecType:i.codecType,vid:i.vid})),e instanceof GF)e=new r.Errors(Q,e);else{if(Q.video.error)e=new r.Errors(Q,{errorType:Ze,errorCode:5100+Q.video.error.code});else{var l=e;if("string"!=typeof e)try{l=JSON.stringify(e)}catch(B){l="other"}e=new r.Errors(Q,{errorType:pe,errorCode:0,errorMessage:l})}}if(n._errors.push({time:(new Date).getTime(),err:e}),pt.log(e),Q.emit("xglog_cache"),e&&Q.dashState!==Ct){Q.dashState=Ct,e.vid=i.vid,e.url=Q.src;var a=n.__dash__,d=a&&a.isCurrentAutoDefi;if(e.errd&&"object"===s(e.errd)&&a&&a.dash&&(e.errd.url=a.dash.url,e.url=a.dash.url),e.url&&e.url.indexOf("blob:")>-1&&i.dashOpts&&i.dashOpts.dynamic_video&&(e.url=i.dashOpts.dynamic_video.main_url),!e||e.errorCode!==n._getCode(Ze,me.MSE_HIJACK)&&e.errorCode!==n._getCode(Ze,me.EME_HIJACK)){if(Q.emit("DATA_REPORT",e),e&&e.errorCode===n._getCode(Se,me.LICENSE))return n._pluginInst.destroyKernal(),void Q.emit("error",e);if(!e||e.errorCode!==n._getCode(Ze,me.MSE_ADD_SB)&&e.errorCode!==n._getCode(ue,me.SIDX)){if(e.segmentExpired||"task_request_expired"===e.msg)return a&&a.abrInstance&&"function"==typeof a.abrInstance._stop&&(a.abrInstance._stop(),pt.abr("error stop","expired",e.segmentExpired,e.ex)),void n._pluginInst.emitExpireEvent(e);if(!e.curReqVideoSegInfo&&a&&(e.curReqVideoSegInfo=JSON.parse(JSON.stringify(a.curReqVideoSegInfo||{}))),e.headers||(e.headers=e.curReqVideoSegInfo.headers||{}),!!i.useBackUrl&&!n._pluginInst._hasUsedBackUrl&&i.dashOpts&&i.dashOpts.dynamic_video&&a){pt.log("backup replay");var o=a.changeMainBackUrl(il.ERR,n._pluginInst._hasUsedBackUrl);return a.updateDashType(),d?o.autoBitrateOpts&&(o.autoBitrateOpts.isPlayAutoDefi=!0):(n.currentDefitionFromPlayer&&(o.defaultDefinition=n.currentDefitionFromPlayer.definition),o.autoBitrateOpts&&(o.autoBitrateOpts.isPlayAutoDefi=!1)),n._pluginInst._hasUsedBackUrl=!0,n._pluginInst.next(Q.currentTime,"REPLAY",o,!0,"dash"),Q.emit("playCatch","dash",e),pt.log("playCatch dash",JSON.stringify(e)),void n._emitDegradeEvent(e,"dash")}a&&a.updateDashType(!0),n._handleDegradeToMp4(e)}else n._handleDegradeToMp4(e)}else Q.emit("error",e)}}})),this._pluginInst=t,this._errors=[],this._initProfile(),this._proxyPlayer(),this._initialize(),this._bindEvents()}var t,n;return u(e,[{key:"changeState",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._pTime||(this._pTime=EU.nowTime());var n=EU.nowTime()-this._pTime,U=EU.nowTime()-this._sTime;pt.log(">>>changeState[".concat(e,"]"),n,U,JSON.stringify(t));var F={state:e,t1:n,t2:U,data:t};this.states[e]||(this.states[e]=F),this.allPhases.push(F),this._pTime=EU.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;this.changeState(e,t),ll.includes(e)&&(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:(n=c(o().mark((function e(t){var n,U,F,Q,i,l,a,s,B,c,R,V,u,h,Z,S=this;return o().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,U=this._pluginInst,F=U.player,Q=U.config,i=this.__dash__,l=i.dash,F.dashState=Nt,F.emit("dashStateChange",Nt),pt.log("监听到wasm_ready"),this._info({msg:"wasm_ready"}),EU.on(l,"error",this._errorHandler,"destroy"),i.bindComEvent(),e.prev=12,e.next=15,l.init(n);case 15:if(a=e.sent){e.next=19;break}return this._info({msg:"isDestroy ".concat(!F,", isMseNull ").concat(!a)}),e.abrupt("return");case 19:if(pt.time("initReady cost",(new Date).getTime()-i.startTimestamp),F.dashState=bt,F.emit("dashStateChange",bt),pt.log("dash init完成"),l.mpd.mediaList.video.length>0){for(Q.defaultDefinition||(Q.defaultDefinition=Q.dashOpts.dynamic_video.dynamic_video_list[0].definition,i.lastDefiIdx=0),i.isOpenAutoDefi||(i.isCurrentAutoDefi=!1,i.abrInstance.isCurrentInAbr=!1),s=Q.dashOpts.dynamic_video.dynamic_video_list,B=0;B<s.length;B++)c=s[B],i.bandwidth2item[c.bitrate]=c,i.definition2item[c.definition]=c;l.mpd.mediaList.video.sort((function(e,t){return t.height-e.height})),l.mpd.mediaList.video.forEach((function(e,t){var n=i.bandwidth2item[e.bandwidth];if(n){var U=n.definition.toString(),r=Q.defaultDefinition.toString(),a=!(U!==r||i.isOpenAutoDefi&&i.isPlayAutoDefi);i.definitions.push(d({name:Q.definitionText&&Q.definitionText[U]||U,url:e.id,selected:a,definition:n.definition,fps:n.fps},n)),e.frameRate=e.frameRate||n.fps||25;var o=n.bitrate;i.updateAbrCacheData(t,i.isPlayAutoDefi,n),U===r&&(pt.log("dashDefinition",U),F.emit("initialUrl",l.mpd.mediaList.video[t].baseURL),i.curBitrate=o,i.lastDefiIdx=t),a&&S._pluginInst.setCurrentDefitionInfos(n.definition,n)}})),(R=i.definitions.some((function(e){return e.selected})))&&void 0!==i.lastDefiIdx||(R||(i.definitions[0].selected=!0,V=i.definitions[0].definition,this._pluginInst.setCurrentDefitionInfos(V,i.definition2item[V])),F.emit("initialUrl",l.mpd.mediaList.video[0].baseURL),i.curBitrate=Q.dashOpts.dynamic_video.dynamic_video_list[0].bitrate,i.lastDefiIdx=0),F.emit("resourceReady",i.definitions,Q.dashOpts.dynamic_video.dynamic_video_list),i.abrInstance.updateBitrate(i.curBitrate),u=i.definitions.filter((function(e){return e.selected}))[0],i.setPlayerCurDefinition(u)}this._pluginInst.originStartInit.call(F,a.url),pt.time("start call cost",(new Date).getTime()-i.startTimestamp),F.dashState=vt,F.emit("dashStateChange",vt),i.startCheckCanplayTimer(),i.isDashCanUse=!0,i.mse=a,i.emitMenuResolutionChange(),"safari"===r.Sniffer.browser&&(r.Util.addClass(F.root,"canplay"),h=function(){r.Util.removeClass(F.root,"xgplayer-is-enter")},EU.once(F,"waiting",h)),Z=function(){S._checkHasDestroy("onStartPlay")||(F.emit("dash_start_play"),S._info({msg:"dash_start_play"}),F.dashState=Tt,S._info({msg:"START_PLAY ready"}),F.emit("dashStateChange",Tt),F.emit("playInterfaceInfo",Q.dashOpts||{}),i.isCurrentAutoDefi||pt.time("onStartPlay cost not abr",(new Date).getTime()-i.startTimestamp),i.startProgressTimer(),pt.time("onStartPlay cost",(new Date).getTime()-i.startTimestamp),i.setCurrentDefinition())},EU.once(l,"start_play",Z),this._info({msg:"START_PLAY dashready"}),F.emit("dashready"),e.next=42;break;case 39:e.prev=39,e.t0=e.catch(12),F.errorHandler(e.t0);case 42:case"end":return e.stop()}}),e,this,[[12,39]])}))),function(e){return n.apply(this,arguments)})},{key:"_initialize",value:function(){pt.log("执行dashKernal");var e=this._pluginInst,t=e.player,n=e.config,U=t.config;if(n.playInfoType===ri&&U.definition){var F=n.dashOpts.Data,Q=(null==F?void 0:F.vid)===n.vid?F.playInfoList:U.definition.list;n.defaultDefinition=U.defaultDefinition||U.definition.defaultDefinition,U.definition.list=Q.filter((function(e){return e.vtype.toUpperCase()===dn.DASH&&"video"===e.mediaType})),n.dashOpts.Data={vid:U.vid,duration:U.duration,playInfoList:Q};var i=Q.filter((function(e){return e.vtype.toUpperCase()===dn.MP4}));if(i.length>0||U.downgradeUrl){var l=i.length>0?i:[{url:U.downgradeUrl,definition:"1",vtype:"MP4",size:0,codecType:"h264"}];n.mp4Opts={mp4List:l}}else n.mp4Opts=null}if(!n.dashOpts)return console.error("dashOpts in plugin config miss"),void this._info({msg:"dashOpts is null",startMs:Date.now(),name:"_initialize",add:!0});(!n.dashOpts.Data||n.playInfoType!==li&&n.playInfoType!==ri||this._playInfoInit(),n.dashOpts.dynamic_video)&&(n.dashOpts.dynamic_video.dynamic_video_list=n.dashOpts.dynamic_video.dynamic_video_list||[],n.dashOpts.dynamic_video.dynamic_audio_list=n.dashOpts.dynamic_video.dynamic_audio_list||[],[n.dashOpts.dynamic_video.dynamic_video_list,n.dashOpts.dynamic_video.dynamic_audio_list].forEach((function(e){e.forEach((function(e){if(e.bitrate=parseInt(e.real_bitrate||e.bitrate),U&&"function"==typeof U.preProcessUrl){var t=U.preProcessUrlOptions||{};e.main_url=U.preProcessUrl(e.main_url,t).url,e.backup_url_1=U.preProcessUrl(e.backup_url_1,t).url;var n=Object.assign({},t,{isFallback:!0});e.fallback_url=U.preProcessUrl(e.fallback_url,n).url}}))})));var r=Yt,a=new Ql({pluginInst:this._pluginInst});this.__dash__=a;var d=Ge.isSupported('video/mp4; codecs="avc1.64001E, mp4a.40.5"');d?a.changeMainBackUrl(r.INIT,this._hasUsedBackUrl):(this._info({msg:"isCodecSupported ".concat(d),add:!0}),t.errorHandler(new GF(Ze,me.MEDIA_ERR_CODEC_NOT_SUPPORTED,{message:"init"})))}},{key:"_bindEvents",value:function(){var e=this._pluginInst.player;e.on(r.Events.LOAD_START,this._onLoadStart),e.on(r.Events.LOADED_DATA,this._onLoadData)}},{key:"beforeLoadStartCostTime",get:function(){return this._beforeLoadStartCostTime}},{key:"_switchURL",value:(t=c(o().mark((function e(t){var n,U,F=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=!(F.length>1&&void 0!==F[1])||F[1],U=this.__dash__,e.next=4,U.switchURL(t,n);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"_playInfoInit",value:function(){var e=this._pluginInst,t=e.config,n=e.playerConfig,U=t.dashOpts.Data;t.vid=U.VideoID||U.Vid||U.vid,n.vid=t.vid,t.playInfoType===li?ai(t):t.playInfoType===ri&&di(t)}},{key:"_getCode",value:function(e,t){return We[e][t]}},{key:"_emitDegradeEvent",value:function(e,t){if(this._pluginInst){var n=this._pluginInst.player,U=e.errorCode,F=e.errorMessage,Q=d(d({},e),{},{vtype:t,errc:U,err_msg:F});n.pause(),n.emit("degrade",Q),pt.log("degrade event emit",JSON.stringify(Q))}}},{key:"_handleDegradeToMp4",value:function(e){var t=this;if(!this._checkHasDestroy("_handleDegradeToMp4")){var n=this._pluginInst,U=n.player,F=n.config;if(F.mp4Opts&&!this._hasDegradeMp4){pt.log("_handleDegradeToMp4"),this._hasDegradeMp4=!0,U.dashState="error_catching";var Q=F.startTime||U.currentTime||0;setTimeout((function(){t._checkHasDestroy("degrademp4")||(t._pluginInst._setStartTime("destroy",Q,!0,!1),U.emit("playertypechange"),U.dashState="error_catch_finished",U.emit("playCatch","dash_mp4_2",e),pt.log("playCatch dash_mp4_2",JSON.stringify(e)),t._emitDegradeEvent(e,"dash_mp4_2"),F.defaultFormat="mp4",t._pluginInst.changeKernal(!0,!1,"dash_mp4_2"),U.once("canplay",(function(){if(U.config.autoplay){var e=U.video.play();e&&e.catch((function(){}))}})))}),0)}else F.mp4Opts||(U.dashState="error_no_mp4opts",U.emit("dashDestroy"),U.emit("error",e),pt.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(r.Events.LOADED_DATA,this._onLoadStart),e.off(r.Events.LOADED_DATA,this._onLoadData),e.errorHandler=this._originErrorHandler,e._startInit=this._pluginInst._originStartInit,e.switchURL=this._originSwitchURL,this._pluginInst=null,this._hasStart=!1,pt.log("dashKernal destroy")}},{key:"_checkHasDestroy",value:function(e){return!this._pluginInst&&(this._info({msg:"dashKernal destroy ".concat(e),add:!0}),pt.log("checkHasDestroy",e),!0)}},{key:"executeReady",value:function(){if(!this._checkHasDestroy("executeReady")){var e=this._pluginInst.player;EU.once(e,"dash_start_play",(function(){e.dashState=gt,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 U=this.__dash__.dash.mse;if(U._sourceBuffer)for(var F=Object.keys(U._sourceBuffer),Q=0;Q<F.length;Q++){var i=F[Q],l=(U._queue[i]||[]).map((function(e){return{opName:e.opName,context:e.context}}));n[i]={updating:U._sourceBuffer[i].updating,queue:l.slice(0,Math.max(5,l.length)),queueEmpty:!U._queue[i]}}}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 r=this._pluginInst.player;e.currentTime=r.currentTime;var a=r.video.error;return e.dVideoError=a?{code:a.code,message:a.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 U=e.states[n],F=e.states[t],Q=(null==U?void 0:U.t2)-(null==F?void 0:F.t2);return Number.isFinite(Q)?Q:-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=ll,t={length:0,byteLength:0,load:[]},n=0;n<e.length;n++){var U=this.preloadMap[e[n]]||{};if(U&&U.fromCache&&U.byteLength){if(t.length+=U.byteLength,t.byteLength+=U.byteLength,t.load.push(U),!U.isInitSegment&&!U.duration)try{var F,Q=this.__dash__.dash.mpd.mediaList[U.mediaType],i=null===(F=Q[Q.selectedIdx].mediaSegments)||void 0===F?void 0:F[0].endRaw;U.duration=i}catch(r){U.duration=5}var l=Math.max(t.duration||0,U.duration||0);"video"===U.mediaType?t.duration=l:t.audioDuration=l}}return t.loadLength=t.load.length,t}},{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}}}}]),e}(),al=function(){function e(t){var n=this;R(this,e),h(this,"start",(function(){var e=n._pluginInst.player;n._pluginInst.originStartInit.call(e,n._url),n._pluginInst.info({msg:"dash mp4 kernal start"})})),h(this,"_errorHandler",(function(e){var t=n._pluginInst.player;if(t.video.error){e=new r.Errors(t,{errorType:Ze,errorCode:5100+t.video.error.code})}else{var U=e;if("string"!=typeof e)try{U=JSON.stringify(e)}catch(Q){U="other"}e=new r.Errors(t,{errorType:pe,errorCode:0,errorMessage:U})}n._stat.error.push({err:e}),pt.log("mp4 error",e);var F=(new Date).getTime()/1e3>=n.urlExpireTimestamp&&n.urlExpireTimestamp>0;n._pluginInst.info({msg:"dash mp4 kernal error happend, url expired ".concat(F),err:e}),!F||!t.video.error||4!==t.video.error.code&&2!==t.video.error.code?t.emit("error",e):n._urlExpiredWhenInit||n._mp4CheckExpire()})),h(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:[]}}return u(e,[{key:"executeReady",value:function(){var e=this._pluginInst.player;e.dashState=gt,e.emit("nextEnded")}},{key:"_initialize",value:function(){var e=this;this._handleMp4Definitions(),this._getMp4Opts();var t=this._pluginInst.player;t.dash=!1,setTimeout((function(){t.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:"_handleMp4Definitions",value:function(){var e=this,t=this._pluginInst,n=t.player,U=t.config,F=t.playerConfig;if(U.mp4Opts){var Q;this.mp4AutoItem=null;var i=[].concat(U.mp4Opts.mp4List||[]);i.every((function(e){return!!e.bitrate}))&&i.sort((function(e,t){return t.bitrate-e.bitrate}));var l=U.mp4Opts.isOpenAutoDefi,a=U.mp4Opts.isPlayAutoDefi,d=!1;if(l){var o={};i.forEach((function(e){o[(e.definition||"").toLowerCase()]=e}));for(var s=["720p","480p","360p"],B=null,c=0;c<s.length;c++){var R=o[s[c]];if(R){B=R;break}}if(B){this.mp4AutoItem=B;var V=U.mp4Opts.autoDefiText||"自动",u="".concat(V,"(").concat(B.definition,")");i.push({definition:V,url:_i,name:u,url_expire:B.url_expire||0,selected:!!a}),d=a}}if(i.length>0){i.forEach((function(e){if(F&&"function"==typeof F.preProcessUrl){var t=F.preProcessUrlOptions||{};e.url=F.preProcessUrl(e.url,t).url}}));var h=i[0].url,Z=i[0].url;i.forEach((function(e){e.definition===U.defaultDefinition&&(h=e.url,Z=e.url)})),l&&a&&this.mp4AutoItem&&(h=this.mp4AutoItem.url,Z=_i),this._mp4Url=Z,this._url=h,this._pluginInst.loadURL=h}if(!d){for(var S=0;S<i.length;S++){var p=i[S];if(U.defaultDefinition===p.definition){p.selected=!0,d=!0;break}}if(!d){if(!(i.length>0))return void setTimeout((function(){var e=We[Ze][me.MEDIA_ERR_URL_EMPTY],t=new r.Errors(n,{errorType:Ze,errorCode:e});n.emit(et,t),console&&console.error("empty mp4 definitions")}));i[0].selected=!0}}this._mp4Definitions=i.map((function(t){U.defaultDefinition===t.definition&&(e._url=t.url,a||(t.selected=!0));var n=JSON.parse(JSON.stringify(t));return n.name=U.definitionText&&U.definitionText[t.definition]||t.definition,n.url_expire=t.url_expire||0,n})),this._backup_url=this._mp4Definitions[0].backup_url,this._RawMp4Definitions=i;var J=!1;this._pluginInst.setCodeInfo(null===(Q=i[0])||void 0===Q?void 0:Q.codec_type);for(var m=0;m<i.length;m++){var W=i[m];W.codec_type&&W.vtype&&("h264"===W.codec_type&&"mp4"===W.vtype||(J=!0))}J&&n.emit("log",{type:"oneevent",end_type:"mp4_source_exception"})}}},{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,U=e.split("/")[e.split("/").length-1]===_i,F=U?this.mp4AutoItem.url:e;this._pluginInst.loadURL=F,n.curTime=n.currentTime;var Q=n.paused;this._url=U?_i:e,n.ended||(n.src=F,EU.once(n,"canplay",(function(){if(n.currentTime=n.curTime,!Q){var e=n.play();void 0!==e&&e&&e.catch((function(){}))}}))),U?this._setCurrentDefitionInfos("自动 ".concat(this.mp4AutoItem.definition),this.mp4AutoItem):EU.once(n,"definitionChange",(function(e){for(var n=e.to,U=null,F=t._pluginInst.cnofig,Q=0;Q<F.mp4Opts.mp4List.length;Q++){var i=F.mp4Opts.mp4List[Q];if(i.definition===n){U=i;break}}t._setCurrentDefitionInfos("".concat(n),U)}))}},{key:"_mp4CheckExpire",value:function(){this._pluginInst.handleUrlExpire(this,!0)}},{key:"_updateMp4AutoDesc",value:function(){var e=this._pluginInst.player,t=this._url!==_i||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}}]),e}(),dl={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,disableDashNoCanplayCheck:!0,disableBufferBreakCheck:!0,waitingTimeOut:2e4,definitionText:null,useUnionInfoDRM:!1,keyTokenExpiredDuration:null,keyToken:null,playDomain:null,usePlaySpade:!1,preloadBufferThreshold:.5,vtype:dn.DASH,useProgressiveAppend:!1,useProgressiveAppendAll:!1,loader:Wi,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,useSeparationMode:!1},ol=r.Events.STATS_EVENTS,sl="mp4",Bl="dash",cl="void";function Rl(e){return{playerVersion:{get:function(){return"3.5.27-alpha.7"},configurable:!0},downloadSpeed:{get:function(){return yi.currentSpeed/8},configurable:!0},historyAvspeed:{get:function(){return yi.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,yi.historySpeed.length-10),n=yi.historySpeed.slice(t,t+10);return d(d({},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=St();return e.getLogCache&&e.getLogCache()},configurable:!0},pcdnReq:{get:function(){var t;return e._kernalType===Bl?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===Bl?null===(t=e._kernal)||void 0===t?void 0:t.pcdnVVStat():null},configurable:!0},beforeLoadStartCostTime:{get:function(){var t;return e._kernalType===Bl&&e._kernal?null===(t=e._kernal)||void 0===t?void 0:t.beforeLoadStartCostTime:0},configurable:!0}}}var Vl=null,ul=function(e){Z(n,e);var t=W(n);function n(){var e;R(this,n);for(var U=arguments.length,F=new Array(U),Q=0;Q<U;Q++)F[Q]=arguments[Q];return h(m(e=t.call.apply(t,[this].concat(F))),"_hasUsedBackUrl",!1),h(m(e),"_onSeeking",(function(){var t=m(e).player;e.waitLevelStartTime=t.currentTime})),h(m(e),"_onPlaying",(function(){var t,n;pt.log("onPlaying,",JSON.stringify({curtime:e.player.currentTime,buffer:JSON.stringify(null===(t=e.player)||void 0===t||null===(n=t.buffered2)||void 0===n?void 0:n.bufferedList)})),e._waitAdjustTimeCnt>0&&e._waitInBufferTimer&&(e._waitAdjustTimeCnt-=1,pt.log("[waitInBuffer resume play], waitAdjustTimeCnt,",e._waitAdjustTimeCnt)),clearTimeout(e._waitInBufferTimer),e._waitInBufferTimer=null;var U=m(e).player,F=e.config.resumePlayWaterLevel;if(e._kernalType!==sl){if(!(U.duration>0&&U.duration-U.currentTime<=F)&&(e.waitLevelStartTime<0&&(e.waitLevelStartTime=U.currentTime),e.playFlag||(e.playFlag=!0),F>0&&U.currentTime-e.waitLevelStartTime>=2)){var Q=U.getBufferedRange(U.buffered2);if(Q[1]>0&&Q[1]-U.currentTime<F){var i;if(!U.paused)e.emit(jt,{type:Ht}),U.pause(null===(i=zt)||void 0===i?void 0:i.BUFFER_CONTROLS),U.isBufferControlPaused=!0,pt.log("[!!!!!buffer not rich, pause],currentTime, ",U.currentTime,", bufferEnd,",Q[1]);clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=setTimeout(e._onPlaying,F/2*1e3)}else U.isBufferControlPaused&&U.paused&&(pt.log("[!!!!!buffer rich, play],, currentTime, ",U.currentTime,", bufferEnd,",Q[1]),clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=null,U.isBufferControlPaused=!1,e.emit(jt,{type:Pt}),U.play())}}else e.checkResumePlayTimer>0&&(clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=null,U.isBufferControlPaused&&(U.isBufferControlPaused=!1),U.paused&&U.play())})),h(m(e),"_onWaiting",(function(){var t,n=m(e),U=n.player,F=n.config;clearTimeout(e._waitInBufferTimer),e._waitInBufferTimer=null;var Q=U.currentTime;pt.log(",[onWaiting],curTime, ",Q,",buffer,",JSON.stringify(null==U||null===(t=U.buffered2)||void 0===t?void 0:t.bufferedList),",dur,",U.duration);var i=U.bufferedPoint;i.end>0&&i.end-Q>=2&&e._waitAdjustTimeCnt<F.waitJampBufferMaxCnt&&(e._waitInBufferTimer=setTimeout((function(){e._waitAdjustTimeCnt++,U.currentTime=U.currentTime+.5}),F.waitingInBufferTimeOut))})),e}return u(n,[{key:"initDashPlayer",value:function(e){this._checkVideoSwitch(),this._hasTriggerBufferThreshold=!1,this._setArgsFromConfig(),this.lastBuffer="0,0",this._menuCodeType=null,this._setConfigDashType(),EU.promisePolyfill(),(window.location.href.indexOf("playerInstance=true")>-1||X.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=r.Util.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 U=this.removeVideo.parentNode;U&&U.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,U=arguments.length>3?arguments[3]:void 0,F=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;pt.log("next currentTime: ".concat(e,", nextType: ").concat(t,", autoplay:").concat(U));var Q=this.player,i=this.config;this._pausedWhenExpiredRestart=!1,"MEDIA_EXPIRED"===t&&Q.paused&&(this._pausedWhenExpiredRestart=!0),Q.dashState="next_start";var l=!1;if(Q.isSrcVoid||!i.dashOpts&&!i.mp4Opts||Q.ended||"MEDIA_EXPIRED"===t||"REPLAY"===t||Q.duration&&Q.currentTime<Q.duration-1&&(Q.emit("logger_next",t),l=!0),this._hasTriggerBufferThreshold=!1,Q.emit("next",t),Q.emit("playertypechange"),n)for(var r in n)i[r]=n[r];Q.config.vid&&(i.vid=Q.config.vid),i.duration>0&&(i.duration=0),Q.config.duration&&(i.duration=Q.config.duration),this._setArgsFromConfig(),l&&this._setConfigDashType(),"NEXT"===t&&Q.resetState&&Q.resetState(),Q.config.startTime=e,Q.config.startTimeCache=e,n&&(Q.config.DASHPlugin=n);var a=Q.config.autoplay;this._pausedWhenExpiredRestart&&a&&(Q.config.autoplay=!1,Q.once("canplay",(function(){setTimeout((function(){Q.config.autoplay=a,Q.pause()}))}))),this._syncParameters(),this.changeKernal(!0,!0,F),!U&&!Q.config.autoplay||this._pausedWhenExpiredRestart||Q.once("canplay",(function(){if(Q.video&&(Q.config.autoplay||U)){var e=Q.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:"startPlayHandler",value:function(e,t,n){var U=this.config;if(U.dashOpts||U.mp4Opts){var F="NEXT"===t||"REPLAY"===t;this._setStartTime(n,e,F,!0)}}},{key:"beforePlayerInit",value:function(){if(!this._hasExecuteBeforeInit){var e=this.player;r.BasePlugin.defineGetterOrSetter(e,Rl(this)),this._hasExecuteBeforeInit=!0,e.isReady=!0,this._kernalType===Bl&&(e.vtype="DASH")}}},{key:"afterCreate",value:function(){var e=this;this.steps=[];var t=this.player,n=this.config;this._syncParameters(),t.config.nullUrlStart=!0,St().logMaxSize=n.logMaxSize,this._proxyPlayer(),this.initDashPlayer(t),this.on("xglog",(function(n){"firstFrame"===n.eventType&&pt.log("[xgplayer-encrypt]>>>>firstFrame ",e.playerConfig.vid,n.fvt,"stat",t.stat)})),this._bindEvents()}},{key:"info",value:function(e){var t=this.player;ol&&t.emit(ol.STATS_INFO,e),e.add&&this.steps.push(e)}},{key:"resetStat",value:function(){var e=this.player;ol&&e.emit(ol.STATS_RESET)}},{key:"_syncParameters",value:function(){var e,t=this.config,n=this.playerConfig,U=t.vid||n.vid;t.vid=n.vid=U,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()})),"function"==typeof this.player.playNext&&(Vl=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),pt.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),U=0;U<t;U++)n[U]=arguments[U];var F=n[0],Q=n[1],i=n[2],l=n[3];e.setConfig(F),this.next(Q,i,F.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=Bl:this._kernalType=sl:this._kernalType=cl}},{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;this._setKernalType();var U=this.player;this.destroyKernal();var F=this._kernalType;F===cl?(U.isSrcVoid=!0,U.emit("playOptsVoid"),t&&U.emit("nextEnded")):(U.isSrcVoid=!1,this._setStartTime("destroy",U.config.startTime,!0,!1),F===sl?(this._kernal=new al(this),U.vtype="dash_mp4"):F===Bl&&(this._kernal=new rl(this),U.vtype="DASH"),n&&(U.vtype=n)),e&&this._kernal&&(this._kernal.start(),t&&this._kernal.executeReady())}},{key:"destroyKernal",value:function(){this._kernal&&(pt.log("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=t?t.fps:void 0;this._currentDefinition={definition:e,fps:n,item:t}}},{key:"handleUrlExpire",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],U=this.config,F=this.player,Q=F.paused,i=(new Date).getTime()/1e3>=e.urlExpireTimestamp&&e.urlExpireTimestamp>0;if(i&&(n||!Q)&&U.getServerTime)F.serverTimeDiffPromise=F.serverTimeDiffPromise||U.getServerTime().catch((function(){return 0})),F.serverTimeDiffPromise.then((function(n){if(n&&(F.serverTimeDiff=(new Date).getTime()/1e3-n),(new Date).getTime()/1e3>=e.urlExpireTimestamp+F.serverTimeDiff){e.urlExpireTimestamp=5e9;var U=new GF(ce);t.emitExpireEvent(U)}}));else if(i){var l=new GF(ce);this.emitExpireEvent(l)}}},{key:"emitExpireEvent",value:function(e){var t=this.player,n=(new Date).getTime()/1e3;this.emitExpireTimestamp?n-this.emitExpireTimestamp>300&&(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=X.getItem(wt);return e===Mt.BACK?e:Mt.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 U=jF[e],F=jF[YF],Q=F.logCodeType,i=F.codecs;U&&(Q=U.logCodeType,i=U.codecs),n&&(n.codec_type=Q),this.menuCodeType=i,this.config&&(this.config.codecType=Q)}},{key:"cacheSpeed",value:function(){try{var e=yi.historyAvspeed;e>0&&e!==1/0&&X.setItem(Wt,e)}catch(t){}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(t){}}},{key:"destroy",value:function(){var e,t=this.player;clearInterval(this._bufferCheckTimer),this.cacheSpeed(),this.destroyKernal(),this.bitRateAdapter&&this.bitRateAdapter.destroy();var n=Rl(this);Object.keys(n).forEach((function(e){delete t[e]})),this.player.playNext=Vl,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._originResetState&&(this.player.resetState=this._originResetState)}},{key:"_bindEvents",value:function(){this.on("playing",this._onPlaying),this.on("seeking",this._onSeeking),this.on("waiting",this._onWaiting)}},{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,U=0,F=0;F<t.length&&(n=t.start(F),U=t.end(F),!(n<=e.video.currentTime&&e.video.currentTime<=U));F++);U-e.video.currentTime>=this._bufferThreshold&&!this._hasTriggerBufferThreshold&&(this._hasTriggerBufferThreshold=!0,e.emit("BUFFER_THRESHOLD",U-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 U=0,F=t.video.buffered.length;U<F;U++)n.push([t.video.buffered.start(U),t.video.buffered.end(U)]);n.toString()!==e.lastBuffer&&(e.lastBuffer=n.toString(),e._onBufferReachThreshold())}catch(Q){}}}),200)}},{key:"_setStartTime",value:function(e,t,n,U){var F=this,Q=this.player,i=this.playerConfig,l=this.config;if(t>0||U){var r=!1,a=function(){r||(r=!0,Q.currentTime=t,i.startTime=0,n&&t>0&&Q.emit("setStartTime"),"mp4"===l.defaultFormat&&F.setCodeInfo(YF))};EU.once(Q,"canplay",a,e),EU.once(Q,"playing",a,e)}}},{key:"preloadManager",get:function(){return this.player.preloader}},{key:"domain",get:function(){return this._cdnHost?this._cdnHost:null}},{key:"playerType",get:function(){return this.config.defaultFormat}},{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=EU.getHostFromUrl(e);this._cdnHost!==t&&(this._cdnHost=t,this.player&&this.player.emit("changeHost",t))}}],[{key:"pluginName",get:function(){return"DASHPlugin"}},{key:"defaultConfig",get:function(){return dl}},{key:"isEMESupported",value:function(){return Qn()}},{key:"encryptUtils",get:function(){return rn}}]),n}(Vn);return ul.updateUnionInfo=xF.XGSecretKey.updateUnionInfo,ul.registerPreloader=Vn.registerPreloader,ul}));