@untemps/react-vocal 1.7.35 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/.github/workflows/publish.yml +2 -0
  2. package/.husky/commit-msg +1 -0
  3. package/.husky/pre-commit +1 -0
  4. package/.prettierignore +1 -0
  5. package/.prettierrc +1 -1
  6. package/CHANGELOG.md +29 -0
  7. package/CLAUDE.md +12 -8
  8. package/README.md +23 -16
  9. package/dev/index.html +24 -0
  10. package/dev/package.json +12 -8
  11. package/dev/src/{index.js → index.jsx} +2 -3
  12. package/dev/vite.config.js +10 -0
  13. package/dev/yarn.lock +296 -172
  14. package/dist/index.es.js +2182 -2
  15. package/dist/index.es.js.map +1 -0
  16. package/dist/index.js +9 -2
  17. package/dist/index.js.map +1 -0
  18. package/dist/index.umd.js +9 -2
  19. package/dist/index.umd.js.map +1 -0
  20. package/package.json +27 -60
  21. package/src/components/{Icon.js → Icon.jsx} +1 -14
  22. package/src/components/Vocal.jsx +206 -0
  23. package/src/components/__tests__/{Icon.test.js → Icon.test.jsx} +0 -4
  24. package/src/components/__tests__/{Vocal.test.js → Vocal.test.jsx} +175 -18
  25. package/src/components/__tests__/{VocalWithMockedUseVocal.test.js → VocalWithMockedUseVocal.test.jsx} +11 -13
  26. package/src/components/__tests__/__snapshots__/Icon.test.jsx.snap +21 -0
  27. package/src/components/__tests__/__snapshots__/Vocal.test.jsx.snap +28 -0
  28. package/src/hooks/__tests__/useCommands.test.js +1 -1
  29. package/src/hooks/__tests__/useTimeout.test.js +6 -6
  30. package/src/hooks/__tests__/useVocal.test.js +15 -15
  31. package/src/hooks/useTimeout.js +0 -2
  32. package/src/hooks/useVocal.js +0 -2
  33. package/vite.config.js +35 -0
  34. package/vitest.setup.js +74 -0
  35. package/babel.config.js +0 -12
  36. package/dev/babel.config.js +0 -4
  37. package/dev/rollup.config.js +0 -29
  38. package/jest/jest.setup.js +0 -72
  39. package/rollup.config.js +0 -42
  40. package/src/components/Vocal.js +0 -235
package/dist/index.umd.js CHANGED
@@ -1,2 +1,9 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["exports","react","prop-types"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["react-vocal"]={},t.React,t.PropTypes)}(this,(function(t,e,n){"use strict";function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=r(e),o=r(n);function s(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function a(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?c(Object(n),!0).forEach((function(e){s(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function u(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var s,c=t[Symbol.iterator]();!(r=(s=c.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){i=!0,o=t}finally{try{r||null==c.return||c.return()}finally{if(i)throw o}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return l(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(t,e)}(t,e)||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 l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var h=function(t,e,n){return function(t){var e=function(t){var e=Object.prototype,n=e.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",o=r.asyncIterator||"@@asyncIterator",s=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,n){return t[e]=n}}function a(t,e,n,r){var i=e&&e.prototype instanceof h?e:h,o=Object.create(i.prototype),s=new _(r||[]);return o._invoke=function(t,e,n){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return L()}for(n.method=i,n.arg=o;;){var s=n.delegate;if(s){var c=w(s,n);if(c){if(c===l)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var a=u(t,e,n);if("normal"===a.type){if(r=n.done?"completed":"suspendedYield",a.arg===l)continue;return{value:a.arg,done:n.done}}"throw"===a.type&&(r="completed",n.method="throw",n.arg=a.arg)}}}(t,n,s),o}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=a;var l={};function h(){}function f(){}function d(){}var p={};p[i]=function(){return this};var g=Object.getPrototypeOf,y=g&&g(g(E([])));y&&y!==e&&n.call(y,i)&&(p=y);var v=d.prototype=h.prototype=Object.create(p);function m(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){var r;this._invoke=function(i,o){function s(){return new e((function(r,s){!function r(i,o,s,c){var a=u(t[i],t,o);if("throw"!==a.type){var l=a.arg,h=l.value;return h&&"object"==typeof h&&n.call(h,"__await")?e.resolve(h.__await).then((function(t){r("next",t,s,c)}),(function(t){r("throw",t,s,c)})):e.resolve(h).then((function(t){l.value=t,s(l)}),(function(t){return r("throw",t,s,c)}))}c(a.arg)}(i,o,r,s)}))}return r=r?r.then(s,s):s()}}function w(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,w(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var r=u(n,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,l;var i=r.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function S(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function _(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function E(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:L}}function L(){return{value:void 0,done:!0}}return f.prototype=v.constructor=d,d.constructor=f,f.displayName=c(d,s,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===f||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,c(t,s,"GeneratorFunction")),t.prototype=Object.create(v),t},t.awrap=function(t){return{__await:t}},m(b.prototype),b.prototype[o]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,i,o){void 0===o&&(o=Promise);var s=new b(a(e,n,r,i),o);return t.isGeneratorFunction(n)?s:s.next().then((function(t){return t.done?t.value:s.next()}))},m(v),c(v,s,"Generator"),v[i]=function(){return this},v.toString=function(){return"[object Generator]"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=E,_.prototype={constructor:_,reset:function(t){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(S),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return s.type="throw",s.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],s=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var c=n.call(o,"catchLoc"),a=n.call(o,"finallyLoc");if(c&&a){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!a)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var s=o?o.completion:{};return s.type=t,s.arg=e,o?(this.method="next",this.next=o.finallyLoc,l):this.complete(s)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),l},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),S(n),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;S(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:E(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),l}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}}(n={path:void 0,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==e&&n.path)}},n.exports),n.exports}();function f(t,e,n,r,i,o,s){try{var c=t[o](s),a=c.value}catch(t){return void n(t)}c.done?e(a):Promise.resolve(a).then(r,i)}var d=function(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function s(t){f(o,r,i,s,c,"next",t)}function c(t){f(o,r,i,s,c,"throw",t)}s(void 0)}))}},p=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r},g=function(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],r=!0,i=!1,o=void 0;try{for(var s,c=t[Symbol.iterator]();!(r=(s=c.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){i=!0,o=t}finally{try{r||null==c.return||c.return()}finally{if(i)throw o}}return n}}(t,e)||function(t,e){if(t){if("string"==typeof t)return p(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(t,e):void 0}}(t,e)||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 y(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var v=function(t,e,n){return e&&y(t.prototype,e),n&&y(t,n),t},m=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},b=function(){return!!navigator.permissions},w=function(){return!!navigator.mediaDevices};function x(t,e,n,r,i,o,s){try{var c=t[o](s),a=c.value}catch(t){return void n(t)}c.done?e(a):Promise.resolve(a).then(r,i)}function S(t){return function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function s(t){x(o,r,i,s,c,"next",t)}function c(t){x(o,r,i,s,c,"throw",t)}s(void 0)}))}}function _(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],r=!0,i=!1,o=void 0;try{for(var s,c=t[Symbol.iterator]();!(r=(s=c.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){i=!0,o=t}finally{try{r||null==c.return||c.return()}finally{if(i)throw o}}return n}}(t,e)||function(t,e){if(t){if("string"==typeof t)return E(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?E(t,e):void 0}}(t,e)||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(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var L=function(){var t=S(regeneratorRuntime.mark((function t(e){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(){var t=S(regeneratorRuntime.mark((function t(n,r){var i,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return b()||r(new DOMException("Navigator API: permissions not supported","NOT_SUPPORTED_ERR")),t.prev=1,t.next=4,navigator.permissions.query({name:e});case 4:i=t.sent,o=function t(e){i.removeEventListener("change",t),M(e.target.state,n,r)},i.addEventListener("change",o),M(i.state,n,r),t.next=13;break;case 10:t.prev=10,t.t0=t.catch(1),r(t.t0);case 13:case"end":return t.stop()}}),t,null,[[1,10]])})));return function(e,n){return t.apply(this,arguments)}}()));case 1:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),M=function(t,e,n){if("denied"===t)n(new DOMException("Permission denied","NOT_ALLOWED_ERR"));else e(t)},O=function(){var t=S(regeneratorRuntime.mark((function t(e,n){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(){var t=S(regeneratorRuntime.mark((function t(r,i){var o,s,c;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return b()&&w()||i(new DOMException("Navigator API: permissions or Navigator API: mediaDevices not supported","NOT_SUPPORTED_ERR")),t.prev=1,t.t0=Promise,t.next=5,L(e);case 5:return t.t1=t.sent,t.next=8,navigator.mediaDevices.getUserMedia(n);case 8:return t.t2=t.sent,t.t3=[t.t1,t.t2],t.next=12,t.t0.all.call(t.t0,t.t3);case 12:o=t.sent,s=_(o,2),c=s[1],r(c),t.next=21;break;case 18:t.prev=18,t.t4=t.catch(1),i(t.t4);case 21:case"end":return t.stop()}}),t,null,[[1,18]])})));return function(e,n){return t.apply(this,arguments)}}()));case 1:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}();function k(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function j(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?k(Object(n),!0).forEach((function(e){m(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):k(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var A=function(){function t(e){var n=this;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),m(this,"_instance",null),m(this,"_listeners",null);var r=t._resolveSpeechRecognition();if(!r)throw new DOMException("SpeechRecognition not supported","NOT_SUPPORTED_ERR");this._instance=new r,this._listeners={},Object.entries(j(j({},t.defaultOptions),e||{})).forEach((function(e){var r=g(e,2),i=r[0],o=r[1];if("grammars"===i&&!o){var s=t._resolveSpeechGrammarList();s&&(o=new s)}n._instance[i]=o}))}var e;return v(t,null,[{key:"isSupported",get:function(){return!!t._resolveSpeechRecognition()&&!!b()&&!!w()},set:function(t){throw new Error("You cannot set isSupported directly.")}}]),v(t,[{key:"start",value:(e=d(h.mark((function t(){var e;return h.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this._instance){t.next=14;break}return t.prev=1,t.next=4,O("microphone",{audio:!0});case 4:if(t.sent){t.next=7;break}throw new Error("Unable to retrieve the stream from media device");case 7:this._instance.start(),t.next=14;break;case 10:t.prev=10,t.t0=t.catch(1),(e=this._listeners.error)&&e(t.t0);case 14:return t.abrupt("return",this);case 15:case"end":return t.stop()}}),t,this,[[1,10]])}))),function(){return e.apply(this,arguments)})},{key:"stop",value:function(){return this._instance&&this._instance.stop(),this}},{key:"abort",value:function(){return this._instance&&this._instance.abort(),this}},{key:"addEventListener",value:function(e,n){var r=this;if(this._instance&&this._includesEventType(e)){this._listeners[e]&&this.removeEventListener(e);var i=function(i){var o=[];e===t.eventTypes.RESULT&&i.results&&i.results.length>0&&o.push(i.results[0][0].transcript),n&&n.apply(r,[i].concat(o))};this._instance.addEventListener(e,i),this._listeners[e]=i}return this}},{key:"removeEventListener",value:function(t){var e=this._listeners[t];return this._instance.removeEventListener(t,e),delete this._listeners[t],this}},{key:"cleanup",value:function(){var t=this;return this.stop(),Object.keys(this._listeners).forEach((function(e){return t.removeEventListener(e)})),this._instance=null,this}},{key:"_includesEventType",value:function(e){return!!Object.values(t.eventTypes).find((function(t){return t===e}))}},{key:"instance",get:function(){return this._instance},set:function(t){throw new Error("You cannot set instance directly.")}}],[{key:"_resolveSpeechRecognition",value:function(){return window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition}},{key:"_resolveSpeechGrammarList",value:function(){return window.SpeechGrammarList||window.webkitSpeechGrammarList||window.mozSpeechGrammarList||window.msSpeechGrammarList}}]),t}();m(A,"defaultOptions",{grammars:null,lang:"en-US",continuous:!1,interimResults:!1,maxAlternatives:1,serviceURI:null}),m(A,"eventTypes",{AUDIO_END:"audioend",AUDIO_START:"audiostart",END:"end",ERROR:"error",NO_MATCH:"nomatch",RESULT:"result",SOUND_END:"soundend",SOUND_START:"soundstart",SPEECH_END:"speechend",SPEECH_START:"speechstart",START:"start"});var R=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"en-US",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=e.useRef(null);e.useEffect((function(){if(A.isSupported)return i.current=r||new A({lang:t,grammars:n}),function(){i.current.abort(),i.current.cleanup()}}),[t,n,r]);var o=e.useCallback((function(){i.current&&i.current.start()}),[]),s=e.useCallback((function(){i.current&&i.current.stop()}),[]),c=e.useCallback((function(){i.current&&i.current.abort()}),[]),a=e.useCallback((function(t,e){i.current&&i.current.addEventListener(t,e)}),[]),u=e.useCallback((function(t,e){i.current&&i.current.removeEventListener(t,e)}),[]),l=e.useCallback((function(){i.current&&i.current.cleanup()}),[]);return[i,{start:o,stop:s,abort:c,subscribe:a,unsubscribe:u,clean:l}]};function C(t){return Array.isArray?Array.isArray(t):"[object Array]"===D(t)}function I(t){return"string"==typeof t}function P(t){return"number"==typeof t}function N(t){return!0===t||!1===t||function(t){return T(t)&&null!==t}(t)&&"[object Boolean]"==D(t)}function T(t){return"object"==typeof t}function $(t){return null!=t}function F(t){return!t.trim().length}function D(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const U=Object.prototype.hasOwnProperty;class G{constructor(t){this._keys=[],this._keyMap={};let e=0;t.forEach((t=>{let n=q(t);e+=n.weight,this._keys.push(n),this._keyMap[n.id]=n,e+=n.weight})),this._keys.forEach((t=>{t.weight/=e}))}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function q(t){let e=null,n=null,r=null,i=1;if(I(t)||C(t))r=t,e=z(t),n=K(t);else{if(!U.call(t,"name"))throw new Error((t=>`Missing ${t} property in key`)("name"));const o=t.name;if(r=o,U.call(t,"weight")&&(i=t.weight,i<=0))throw new Error((t=>`Property 'weight' in key '${t}' must be a positive integer`)(o));e=z(o),n=K(o)}return{path:e,id:n,weight:i,src:r}}function z(t){return C(t)?t:t.split(".")}function K(t){return C(t)?t.join("."):t}const V={useExtendedSearch:!1,getFn:function(t,e){let n=[],r=!1;const i=(t,e,o)=>{if($(t))if(e[o]){const s=t[e[o]];if(!$(s))return;if(o===e.length-1&&(I(s)||P(s)||N(s)))n.push(function(t){return null==t?"":function(t){if("string"==typeof t)return t;let e=t+"";return"0"==e&&1/t==-1/0?"-0":e}(t)}(s));else if(C(s)){r=!0;for(let t=0,n=s.length;t<n;t+=1)i(s[t],e,o+1)}else e.length&&i(s,e,o+1)}else n.push(t)};return i(t,I(e)?e.split("."):e,0),r?n:n[0]},ignoreLocation:!1,ignoreFieldNorm:!1};var W={isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(t,e)=>t.score===e.score?t.idx<e.idx?-1:1:t.score<e.score?-1:1,includeMatches:!1,findAllMatches:!1,minMatchCharLength:1,location:0,threshold:.6,distance:100,...V};const H=/[^ ]+/g;class Y{constructor({getFn:t=W.getFn}={}){this.norm=function(t=3){const e=new Map,n=Math.pow(10,t);return{get(t){const r=t.match(H).length;if(e.has(r))return e.get(r);const i=1/Math.sqrt(r),o=parseFloat(Math.round(i*n)/n);return e.set(r,o),o},clear(){e.clear()}}}(3),this.getFn=t,this.isCreated=!1,this.setIndexRecords()}setSources(t=[]){this.docs=t}setIndexRecords(t=[]){this.records=t}setKeys(t=[]){this.keys=t,this._keysMap={},t.forEach(((t,e)=>{this._keysMap[t.id]=e}))}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,I(this.docs[0])?this.docs.forEach(((t,e)=>{this._addString(t,e)})):this.docs.forEach(((t,e)=>{this._addObject(t,e)})),this.norm.clear())}add(t){const e=this.size();I(t)?this._addString(t,e):this._addObject(t,e)}removeAt(t){this.records.splice(t,1);for(let e=t,n=this.size();e<n;e+=1)this.records[e].i-=1}getValueForItemAtKeyId(t,e){return t[this._keysMap[e]]}size(){return this.records.length}_addString(t,e){if(!$(t)||F(t))return;let n={v:t,i:e,n:this.norm.get(t)};this.records.push(n)}_addObject(t,e){let n={i:e,$:{}};this.keys.forEach(((e,r)=>{let i=this.getFn(t,e.path);if($(i))if(C(i)){let t=[];const e=[{nestedArrIndex:-1,value:i}];for(;e.length;){const{nestedArrIndex:n,value:r}=e.pop();if($(r))if(I(r)&&!F(r)){let e={v:r,i:n,n:this.norm.get(r)};t.push(e)}else C(r)&&r.forEach(((t,n)=>{e.push({nestedArrIndex:n,value:t})}))}n.$[r]=t}else if(!F(i)){let t={v:i,n:this.norm.get(i)};n.$[r]=t}})),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}}function B(t,e,{getFn:n=W.getFn}={}){const r=new Y({getFn:n});return r.setKeys(t.map(q)),r.setSources(e),r.create(),r}function J(t,{errors:e=0,currentLocation:n=0,expectedLocation:r=0,distance:i=W.distance,ignoreLocation:o=W.ignoreLocation}={}){const s=e/t.length;if(o)return s;const c=Math.abs(r-n);return i?s+c/i:c?1:s}const Q=32;function X(t,e,n,{location:r=W.location,distance:i=W.distance,threshold:o=W.threshold,findAllMatches:s=W.findAllMatches,minMatchCharLength:c=W.minMatchCharLength,includeMatches:a=W.includeMatches,ignoreLocation:u=W.ignoreLocation}={}){if(e.length>Q)throw new Error(`Pattern length exceeds max of ${Q}.`);const l=e.length,h=t.length,f=Math.max(0,Math.min(r,h));let d=o,p=f;const g=c>1||a,y=g?Array(h):[];let v;for(;(v=t.indexOf(e,p))>-1;){let t=J(e,{currentLocation:v,expectedLocation:f,distance:i,ignoreLocation:u});if(d=Math.min(t,d),p=v+l,g){let t=0;for(;t<l;)y[v+t]=1,t+=1}}p=-1;let m=[],b=1,w=l+h;const x=1<<l-1;for(let r=0;r<l;r+=1){let o=0,c=w;for(;o<c;){J(e,{errors:r,currentLocation:f+c,expectedLocation:f,distance:i,ignoreLocation:u})<=d?o=c:w=c,c=Math.floor((w-o)/2+o)}w=c;let a=Math.max(1,f-c+1),v=s?h:Math.min(f+c,h)+l,S=Array(v+2);S[v+1]=(1<<r)-1;for(let o=v;o>=a;o-=1){let s=o-1,c=n[t.charAt(s)];if(g&&(y[s]=+!!c),S[o]=(S[o+1]<<1|1)&c,r&&(S[o]|=(m[o+1]|m[o])<<1|1|m[o+1]),S[o]&x&&(b=J(e,{errors:r,currentLocation:s,expectedLocation:f,distance:i,ignoreLocation:u}),b<=d)){if(d=b,p=s,p<=f)break;a=Math.max(1,2*f-p)}}if(J(e,{errors:r+1,currentLocation:f,expectedLocation:f,distance:i,ignoreLocation:u})>d)break;m=S}const S={isMatch:p>=0,score:Math.max(.001,b)};if(g){const t=function(t=[],e=W.minMatchCharLength){let n=[],r=-1,i=-1,o=0;for(let s=t.length;o<s;o+=1){let s=t[o];s&&-1===r?r=o:s||-1===r||(i=o-1,i-r+1>=e&&n.push([r,i]),r=-1)}return t[o-1]&&o-r>=e&&n.push([r,o-1]),n}(y,c);t.length?a&&(S.indices=t):S.isMatch=!1}return S}function Z(t){let e={};for(let n=0,r=t.length;n<r;n+=1){const i=t.charAt(n);e[i]=(e[i]||0)|1<<r-n-1}return e}class tt{constructor(t,{location:e=W.location,threshold:n=W.threshold,distance:r=W.distance,includeMatches:i=W.includeMatches,findAllMatches:o=W.findAllMatches,minMatchCharLength:s=W.minMatchCharLength,isCaseSensitive:c=W.isCaseSensitive,ignoreLocation:a=W.ignoreLocation}={}){if(this.options={location:e,threshold:n,distance:r,includeMatches:i,findAllMatches:o,minMatchCharLength:s,isCaseSensitive:c,ignoreLocation:a},this.pattern=c?t:t.toLowerCase(),this.chunks=[],!this.pattern.length)return;const u=(t,e)=>{this.chunks.push({pattern:t,alphabet:Z(t),startIndex:e})},l=this.pattern.length;if(l>Q){let t=0;const e=l%Q,n=l-e;for(;t<n;)u(this.pattern.substr(t,Q),t),t+=Q;if(e){const t=l-Q;u(this.pattern.substr(t),t)}}else u(this.pattern,0)}searchIn(t){const{isCaseSensitive:e,includeMatches:n}=this.options;if(e||(t=t.toLowerCase()),this.pattern===t){let e={isMatch:!0,score:0};return n&&(e.indices=[[0,t.length-1]]),e}const{location:r,distance:i,threshold:o,findAllMatches:s,minMatchCharLength:c,ignoreLocation:a}=this.options;let u=[],l=0,h=!1;this.chunks.forEach((({pattern:e,alphabet:f,startIndex:d})=>{const{isMatch:p,score:g,indices:y}=X(t,e,f,{location:r+d,distance:i,threshold:o,findAllMatches:s,minMatchCharLength:c,includeMatches:n,ignoreLocation:a});p&&(h=!0),l+=g,p&&y&&(u=[...u,...y])}));let f={isMatch:h,score:h?l/this.chunks.length:1};return h&&n&&(f.indices=u),f}}class et{constructor(t){this.pattern=t}static isMultiMatch(t){return nt(t,this.multiRegex)}static isSingleMatch(t){return nt(t,this.singleRegex)}search(){}}function nt(t,e){const n=t.match(e);return n?n[1]:null}class rt extends et{constructor(t,{location:e=W.location,threshold:n=W.threshold,distance:r=W.distance,includeMatches:i=W.includeMatches,findAllMatches:o=W.findAllMatches,minMatchCharLength:s=W.minMatchCharLength,isCaseSensitive:c=W.isCaseSensitive,ignoreLocation:a=W.ignoreLocation}={}){super(t),this._bitapSearch=new tt(t,{location:e,threshold:n,distance:r,includeMatches:i,findAllMatches:o,minMatchCharLength:s,isCaseSensitive:c,ignoreLocation:a})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}}class it extends et{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let e,n=0;const r=[],i=this.pattern.length;for(;(e=t.indexOf(this.pattern,n))>-1;)n=e+i,r.push([e,n-1]);const o=!!r.length;return{isMatch:o,score:o?0:1,indices:r}}}const ot=[class extends et{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){const e=t===this.pattern;return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}},it,class extends et{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){const e=t.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,this.pattern.length-1]}}},class extends et{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){const e=!t.startsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,t.length-1]}}},class extends et{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){const e=!t.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,t.length-1]}}},class extends et{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){const e=t.endsWith(this.pattern);return{isMatch:e,score:e?0:1,indices:[t.length-this.pattern.length,t.length-1]}}},class extends et{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){const e=-1===t.indexOf(this.pattern);return{isMatch:e,score:e?0:1,indices:[0,t.length-1]}}},rt],st=ot.length,ct=/ +(?=([^\"]*\"[^\"]*\")*[^\"]*$)/;const at=new Set([rt.type,it.type]);class ut{constructor(t,{isCaseSensitive:e=W.isCaseSensitive,includeMatches:n=W.includeMatches,minMatchCharLength:r=W.minMatchCharLength,ignoreLocation:i=W.ignoreLocation,findAllMatches:o=W.findAllMatches,location:s=W.location,threshold:c=W.threshold,distance:a=W.distance}={}){this.query=null,this.options={isCaseSensitive:e,includeMatches:n,minMatchCharLength:r,findAllMatches:o,ignoreLocation:i,location:s,threshold:c,distance:a},this.pattern=e?t:t.toLowerCase(),this.query=function(t,e={}){return t.split("|").map((t=>{let n=t.trim().split(ct).filter((t=>t&&!!t.trim())),r=[];for(let t=0,i=n.length;t<i;t+=1){const i=n[t];let o=!1,s=-1;for(;!o&&++s<st;){const t=ot[s];let n=t.isMultiMatch(i);n&&(r.push(new t(n,e)),o=!0)}if(!o)for(s=-1;++s<st;){const t=ot[s];let n=t.isSingleMatch(i);if(n){r.push(new t(n,e));break}}}return r}))}(this.pattern,this.options)}static condition(t,e){return e.useExtendedSearch}searchIn(t){const e=this.query;if(!e)return{isMatch:!1,score:1};const{includeMatches:n,isCaseSensitive:r}=this.options;t=r?t:t.toLowerCase();let i=0,o=[],s=0;for(let r=0,c=e.length;r<c;r+=1){const c=e[r];o.length=0,i=0;for(let e=0,r=c.length;e<r;e+=1){const r=c[e],{isMatch:a,indices:u,score:l}=r.search(t);if(!a){s=0,i=0,o.length=0;break}if(i+=1,s+=l,n){const t=r.constructor.type;at.has(t)?o=[...o,...u]:o.push(u)}}if(i){let t={isMatch:!0,score:s/i};return n&&(t.indices=o),t}}return{isMatch:!1,score:1}}}const lt=[];function ht(t,e){for(let n=0,r=lt.length;n<r;n+=1){let r=lt[n];if(r.condition(t,e))return new r(t,e)}return new tt(t,e)}const ft="$and",dt="$or",pt="$path",gt="$val",yt=t=>!(!t[ft]&&!t[dt]),vt=t=>({[ft]:Object.keys(t).map((e=>({[e]:t[e]})))});function mt(t,e,{auto:n=!0}={}){const r=t=>{let i=Object.keys(t);const o=(t=>!!t[pt])(t);if(!o&&i.length>1&&!yt(t))return r(vt(t));if((t=>!C(t)&&T(t)&&!yt(t))(t)){const r=o?t[pt]:i[0],s=o?t[gt]:t[r];if(!I(s))throw new Error((t=>`Invalid value for key ${t}`)(r));const c={keyId:K(r),pattern:s};return n&&(c.searcher=ht(s,e)),c}let s={children:[],operator:i[0]};return i.forEach((e=>{const n=t[e];C(n)&&n.forEach((t=>{s.children.push(r(t))}))})),s};return yt(t)||(t=vt(t)),r(t)}function bt(t,e){const n=t.matches;e.matches=[],$(n)&&n.forEach((t=>{if(!$(t.indices)||!t.indices.length)return;const{indices:n,value:r}=t;let i={indices:n,value:r};t.key&&(i.key=t.key.src),t.idx>-1&&(i.refIndex=t.idx),e.matches.push(i)}))}function wt(t,e){e.score=t.score}class xt{constructor(t,e={},n){this.options={...W,...e},this.options.useExtendedSearch,this._keyStore=new G(this.options.keys),this.setCollection(t,n)}setCollection(t,e){if(this._docs=t,e&&!(e instanceof Y))throw new Error("Incorrect 'index' type");this._myIndex=e||B(this.options.keys,this._docs,{getFn:this.options.getFn})}add(t){$(t)&&(this._docs.push(t),this._myIndex.add(t))}remove(t=(()=>!1)){const e=[];for(let n=0,r=this._docs.length;n<r;n+=1){const i=this._docs[n];t(i,n)&&(this.removeAt(n),n-=1,r-=1,e.push(i))}return e}removeAt(t){this._docs.splice(t,1),this._myIndex.removeAt(t)}getIndex(){return this._myIndex}search(t,{limit:e=-1}={}){const{includeMatches:n,includeScore:r,shouldSort:i,sortFn:o,ignoreFieldNorm:s}=this.options;let c=I(t)?I(this._docs[0])?this._searchStringList(t):this._searchObjectList(t):this._searchLogical(t);return function(t,{ignoreFieldNorm:e=W.ignoreFieldNorm}){t.forEach((t=>{let n=1;t.matches.forEach((({key:t,norm:r,score:i})=>{const o=t?t.weight:null;n*=Math.pow(0===i&&o?Number.EPSILON:i,(o||1)*(e?1:r))})),t.score=n}))}(c,{ignoreFieldNorm:s}),i&&c.sort(o),P(e)&&e>-1&&(c=c.slice(0,e)),function(t,e,{includeMatches:n=W.includeMatches,includeScore:r=W.includeScore}={}){const i=[];return n&&i.push(bt),r&&i.push(wt),t.map((t=>{const{idx:n}=t,r={item:e[n],refIndex:n};return i.length&&i.forEach((e=>{e(t,r)})),r}))}(c,this._docs,{includeMatches:n,includeScore:r})}_searchStringList(t){const e=ht(t,this.options),{records:n}=this._myIndex,r=[];return n.forEach((({v:t,i:n,n:i})=>{if(!$(t))return;const{isMatch:o,score:s,indices:c}=e.searchIn(t);o&&r.push({item:t,idx:n,matches:[{score:s,value:t,norm:i,indices:c}]})})),r}_searchLogical(t){const e=mt(t,this.options),n=(t,e,r)=>{if(!t.children){const{keyId:n,searcher:i}=t,o=this._findMatches({key:this._keyStore.get(n),value:this._myIndex.getValueForItemAtKeyId(e,n),searcher:i});return o&&o.length?[{idx:r,item:e,matches:o}]:[]}switch(t.operator){case ft:{const i=[];for(let o=0,s=t.children.length;o<s;o+=1){const s=t.children[o],c=n(s,e,r);if(!c.length)return[];i.push(...c)}return i}case dt:{const i=[];for(let o=0,s=t.children.length;o<s;o+=1){const s=t.children[o],c=n(s,e,r);if(c.length){i.push(...c);break}}return i}}},r=this._myIndex.records,i={},o=[];return r.forEach((({$:t,i:r})=>{if($(t)){let s=n(e,t,r);s.length&&(i[r]||(i[r]={idx:r,item:t,matches:[]},o.push(i[r])),s.forEach((({matches:t})=>{i[r].matches.push(...t)})))}})),o}_searchObjectList(t){const e=ht(t,this.options),{keys:n,records:r}=this._myIndex,i=[];return r.forEach((({$:t,i:r})=>{if(!$(t))return;let o=[];n.forEach(((n,r)=>{o.push(...this._findMatches({key:n,value:t[r],searcher:e}))})),o.length&&i.push({idx:r,item:t,matches:o})})),i}_findMatches({key:t,value:e,searcher:n}){if(!$(e))return[];let r=[];if(C(e))e.forEach((({v:e,i:i,n:o})=>{if(!$(e))return;const{isMatch:s,score:c,indices:a}=n.searchIn(e);s&&r.push({score:c,key:t,value:e,idx:i,norm:o,indices:a})}));else{const{v:i,n:o}=e,{isMatch:s,score:c,indices:a}=n.searchIn(i);s&&r.push({score:c,key:t,value:i,norm:o,indices:a})}return r}}xt.version="6.4.6",xt.createIndex=B,xt.parseIndex=function(t,{getFn:e=W.getFn}={}){const{keys:n,records:r}=t,i=new Y({getFn:e});return i.setKeys(n),i.setIndexRecords(r),i},xt.config=W,xt.parseQuery=mt,function(...t){lt.push(...t)}(ut);var St=function(t){var e=t.color,n=t.activeColor,r=t.isActive;return i.default.createElement("svg",{"data-testid":"__icon-root__",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 24 24"},i.default.createElement("g",null,i.default.createElement("path",{"data-testid":"__icon-path__",fill:e,d:"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"}),r&&i.default.createElement("circle",{"data-testid":"__icon-active__",fill:n,cx:"16",cy:"4",r:"4"})))};St.propTypes={color:o.default.string,activeColor:o.default.string,isActive:o.default.bool},St.defaultProps={color:"black",activeColor:"red",isActive:!1};var _t=function(t){var n=t.children,r=t.commands,o=t.lang,c=t.grammars,l=t.timeout,h=t.ariaLabel,f=t.style,d=t.className,p=t.outlineStyle,g=t.onStart,y=t.onEnd,v=t.onSpeechStart,m=t.onSpeechEnd,b=t.onResult,w=t.onError,x=t.onNoMatch,S=t.__rsInstance,_=e.useRef(null),E=u(e.useState(!1),2),L=E[0],M=E[1],O=u(R(o,c,S),2)[1],k=O.start,j=O.stop,C=O.subscribe,I=O.unsubscribe,P=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.4;t=t?null===(e=Object.entries(t))||void 0===e?void 0:e.reduce((function(t,e){var n=u(e,2),r=n[0],i=n[1];return s({},r.toLowerCase(),i)}),{}):{};var r=function(e){var r=new xt(Object.keys(t),{includeScore:!0,ignoreLocation:!0}).search(e).filter((function(t){return t.score<n}));if(null!=r&&r.length){var i,o,s=r[0].item.toLowerCase();return null===(i=(o=t)[s])||void 0===i?void 0:i.call(o,e)}return null};return r}(r),N=function t(e){D(),G(),I("start",V),I("end",t),I("speechstart",W),I("speechend",H),I("result",Y),I("error",B),I("nomatch",J),y&&y(e)},T=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.useRef(-1),i=e.useCallback((function(){clearTimeout(r.current),r.current=-1}),[]),o=e.useCallback((function(){i(),r.current=setTimeout(t,n)}),[t,n,i]);return e.useEffect((function(){return i}),[i]),[o,i]}(N,l),$=u(T,2),F=$[0],D=$[1],U=function(){try{M(!0),C("start",V),C("end",N),C("speechstart",W),C("speechend",H),C("result",Y),C("error",B),C("nomatch",J),k()}catch(t){B(t)}},G=function(){try{M(!1),j()}catch(t){w&&w(t)}},q=function(){U()},z=function(){!d&&p&&(_.current.style.outline=p)},K=function(){!d&&p&&(_.current.style.outline="none")},V=function(t){F(),g&&g(t)},W=function(t){D(),v&&v(t)},H=function(t){F(),m&&m(t)},Y=function(t,e){D(),G(),P(e),b&&b(e,t)},B=function(t){G(),w&&w(t)},J=function(t){D(),G(),x&&x(t)};return function(t){return A.isSupported?function(t){return"function"==typeof t}(t)?t(U,G,L):e.isValidElement(t)?e.cloneElement(t,a({},!L&&{onClick:q})):i.default.createElement("button",{"data-testid":"__vocal-root__",ref:_,role:"button","aria-label":h,style:d?null:a({width:24,height:24,background:"none",border:"none",padding:0,cursor:L?"default":"pointer"},f),className:d,onFocus:z,onBlur:K,onClick:q},i.default.createElement(St,{isActive:L,iconColor:"#aaa"})):null}(n)};_t.propTypes={commands:o.default.objectOf(o.default.func),lang:o.default.string,grammars:o.default.object,timeout:o.default.number,ariaLabel:o.default.string,style:o.default.object,className:o.default.string,outlineStyle:o.default.string,onStart:o.default.func,onEnd:o.default.func,onSpeechStart:o.default.func,onSpeechEnd:o.default.func,onResult:o.default.func,onError:o.default.func,onNoMatch:o.default.func},_t.defaultProps={commands:null,lang:"en-US",grammars:null,timeout:3e3,ariaLabel:"start recognition",style:null,className:null,outlineStyle:"2px solid",onStart:null,onEnd:null,onSpeechStart:null,onSpeechEnd:null,onResult:null,onError:null,onNoMatch:null};var Et=A.isSupported;t.default=_t,t.isSupported=Et,t.useVocal=R,Object.defineProperty(t,"__esModule",{value:!0})}));
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudW1kLmpzIiwic291cmNlcyI6WyIuLi9ub2RlX21vZHVsZXMvQHVudGVtcHMvdm9jYWwvZGlzdC9pbmRleC5lcy5qcyIsIi4uL25vZGVfbW9kdWxlcy9AdW50ZW1wcy91dGlscy9kaXN0L2VzbS9mdW5jdGlvbi9pc0Z1bmN0aW9uLmpzIiwiLi4vc3JjL2hvb2tzL3VzZVZvY2FsLmpzIiwiLi4vbm9kZV9tb2R1bGVzL2Z1c2UuanMvZGlzdC9mdXNlLmVzbS5qcyIsIi4uL3NyYy9ob29rcy91c2VDb21tYW5kcy5qcyIsIi4uL3NyYy9jb21wb25lbnRzL0ljb24uanMiLCIuLi9zcmMvY29tcG9uZW50cy9Wb2NhbC5qcyIsIi4uL3NyYy9ob29rcy91c2VUaW1lb3V0LmpzIiwiLi4vc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdChyPXtwYXRoOmUsZXhwb3J0czp7fSxyZXF1aXJlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKFwiRHluYW1pYyByZXF1aXJlcyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgYnkgQHJvbGx1cC9wbHVnaW4tY29tbW9uanNcIil9KG51bGw9PWUmJnIucGF0aCl9fSxyLmV4cG9ydHMpLHIuZXhwb3J0c30oKGZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdC5wcm90b3R5cGUscj1lLmhhc093blByb3BlcnR5LG49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxvPW4uaXRlcmF0b3J8fFwiQEBpdGVyYXRvclwiLGk9bi5hc3luY0l0ZXJhdG9yfHxcIkBAYXN5bmNJdGVyYXRvclwiLGE9bi50b1N0cmluZ1RhZ3x8XCJAQHRvU3RyaW5nVGFnXCI7ZnVuY3Rpb24gYyh0LGUscil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSx0W2VdfXRyeXtjKHt9LFwiXCIpfWNhdGNoKHQpe2M9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0W2VdPXJ9fWZ1bmN0aW9uIHUodCxlLHIsbil7dmFyIG89ZSYmZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBmP2U6ZixpPU9iamVjdC5jcmVhdGUoby5wcm90b3R5cGUpLGE9bmV3IF8obnx8W10pO3JldHVybiBpLl9pbnZva2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVwic3VzcGVuZGVkU3RhcnRcIjtyZXR1cm4gZnVuY3Rpb24obyxpKXtpZihcImV4ZWN1dGluZ1wiPT09bil0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO2lmKFwiY29tcGxldGVkXCI9PT1uKXtpZihcInRocm93XCI9PT1vKXRocm93IGk7cmV0dXJuIFMoKX1mb3Ioci5tZXRob2Q9byxyLmFyZz1pOzspe3ZhciBhPXIuZGVsZWdhdGU7aWYoYSl7dmFyIGM9YihhLHIpO2lmKGMpe2lmKGM9PT1sKWNvbnRpbnVlO3JldHVybiBjfX1pZihcIm5leHRcIj09PXIubWV0aG9kKXIuc2VudD1yLl9zZW50PXIuYXJnO2Vsc2UgaWYoXCJ0aHJvd1wiPT09ci5tZXRob2Qpe2lmKFwic3VzcGVuZGVkU3RhcnRcIj09PW4pdGhyb3cgbj1cImNvbXBsZXRlZFwiLHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2VcInJldHVyblwiPT09ci5tZXRob2QmJnIuYWJydXB0KFwicmV0dXJuXCIsci5hcmcpO249XCJleGVjdXRpbmdcIjt2YXIgdT1zKHQsZSxyKTtpZihcIm5vcm1hbFwiPT09dS50eXBlKXtpZihuPXIuZG9uZT9cImNvbXBsZXRlZFwiOlwic3VzcGVuZGVkWWllbGRcIix1LmFyZz09PWwpY29udGludWU7cmV0dXJue3ZhbHVlOnUuYXJnLGRvbmU6ci5kb25lfX1cInRocm93XCI9PT11LnR5cGUmJihuPVwiY29tcGxldGVkXCIsci5tZXRob2Q9XCJ0aHJvd1wiLHIuYXJnPXUuYXJnKX19fSh0LHIsYSksaX1mdW5jdGlvbiBzKHQsZSxyKXt0cnl7cmV0dXJue3R5cGU6XCJub3JtYWxcIixhcmc6dC5jYWxsKGUscil9fWNhdGNoKHQpe3JldHVybnt0eXBlOlwidGhyb3dcIixhcmc6dH19fXQud3JhcD11O3ZhciBsPXt9O2Z1bmN0aW9uIGYoKXt9ZnVuY3Rpb24gaCgpe31mdW5jdGlvbiBwKCl7fXZhciB2PXt9O3Zbb109ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dmFyIHk9T2JqZWN0LmdldFByb3RvdHlwZU9mLGQ9eSYmeSh5KHgoW10pKSk7ZCYmZCE9PWUmJnIuY2FsbChkLG8pJiYodj1kKTt2YXIgbT1wLnByb3RvdHlwZT1mLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHYpO2Z1bmN0aW9uIGcodCl7W1wibmV4dFwiLFwidGhyb3dcIixcInJldHVyblwiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtjKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIHcodCxlKXt2YXIgbjt0aGlzLl9pbnZva2U9ZnVuY3Rpb24obyxpKXtmdW5jdGlvbiBhKCl7cmV0dXJuIG5ldyBlKChmdW5jdGlvbihuLGEpeyFmdW5jdGlvbiBuKG8saSxhLGMpe3ZhciB1PXModFtvXSx0LGkpO2lmKFwidGhyb3dcIiE9PXUudHlwZSl7dmFyIGw9dS5hcmcsZj1sLnZhbHVlO3JldHVybiBmJiZcIm9iamVjdFwiPT10eXBlb2YgZiYmci5jYWxsKGYsXCJfX2F3YWl0XCIpP2UucmVzb2x2ZShmLl9fYXdhaXQpLnRoZW4oKGZ1bmN0aW9uKHQpe24oXCJuZXh0XCIsdCxhLGMpfSksKGZ1bmN0aW9uKHQpe24oXCJ0aHJvd1wiLHQsYSxjKX0pKTplLnJlc29sdmUoZikudGhlbigoZnVuY3Rpb24odCl7bC52YWx1ZT10LGEobCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oXCJ0aHJvd1wiLHQsYSxjKX0pKX1jKHUuYXJnKX0obyxpLG4sYSl9KSl9cmV0dXJuIG49bj9uLnRoZW4oYSxhKTphKCl9fWZ1bmN0aW9uIGIodCxlKXt2YXIgcj10Lml0ZXJhdG9yW2UubWV0aG9kXTtpZih2b2lkIDA9PT1yKXtpZihlLmRlbGVnYXRlPW51bGwsXCJ0aHJvd1wiPT09ZS5tZXRob2Qpe2lmKHQuaXRlcmF0b3IucmV0dXJuJiYoZS5tZXRob2Q9XCJyZXR1cm5cIixlLmFyZz12b2lkIDAsYih0LGUpLFwidGhyb3dcIj09PWUubWV0aG9kKSlyZXR1cm4gbDtlLm1ldGhvZD1cInRocm93XCIsZS5hcmc9bmV3IFR5cGVFcnJvcihcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ3Rocm93JyBtZXRob2RcIil9cmV0dXJuIGx9dmFyIG49cyhyLHQuaXRlcmF0b3IsZS5hcmcpO2lmKFwidGhyb3dcIj09PW4udHlwZSlyZXR1cm4gZS5tZXRob2Q9XCJ0aHJvd1wiLGUuYXJnPW4uYXJnLGUuZGVsZWdhdGU9bnVsbCxsO3ZhciBvPW4uYXJnO3JldHVybiBvP28uZG9uZT8oZVt0LnJlc3VsdE5hbWVdPW8udmFsdWUsZS5uZXh0PXQubmV4dExvYyxcInJldHVyblwiIT09ZS5tZXRob2QmJihlLm1ldGhvZD1cIm5leHRcIixlLmFyZz12b2lkIDApLGUuZGVsZWdhdGU9bnVsbCxsKTpvOihlLm1ldGhvZD1cInRocm93XCIsZS5hcmc9bmV3IFR5cGVFcnJvcihcIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0XCIpLGUuZGVsZWdhdGU9bnVsbCxsKX1mdW5jdGlvbiBFKHQpe3ZhciBlPXt0cnlMb2M6dFswXX07MSBpbiB0JiYoZS5jYXRjaExvYz10WzFdKSwyIGluIHQmJihlLmZpbmFsbHlMb2M9dFsyXSxlLmFmdGVyTG9jPXRbM10pLHRoaXMudHJ5RW50cmllcy5wdXNoKGUpfWZ1bmN0aW9uIE8odCl7dmFyIGU9dC5jb21wbGV0aW9ufHx7fTtlLnR5cGU9XCJub3JtYWxcIixkZWxldGUgZS5hcmcsdC5jb21wbGV0aW9uPWV9ZnVuY3Rpb24gXyh0KXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6XCJyb290XCJ9XSx0LmZvckVhY2goRSx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiB4KHQpe2lmKHQpe3ZhciBlPXRbb107aWYoZSlyZXR1cm4gZS5jYWxsKHQpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQubmV4dClyZXR1cm4gdDtpZighaXNOYU4odC5sZW5ndGgpKXt2YXIgbj0tMSxpPWZ1bmN0aW9uIGUoKXtmb3IoOysrbjx0Lmxlbmd0aDspaWYoci5jYWxsKHQsbikpcmV0dXJuIGUudmFsdWU9dFtuXSxlLmRvbmU9ITEsZTtyZXR1cm4gZS52YWx1ZT12b2lkIDAsZS5kb25lPSEwLGV9O3JldHVybiBpLm5leHQ9aX19cmV0dXJue25leHQ6U319ZnVuY3Rpb24gUygpe3JldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19cmV0dXJuIGgucHJvdG90eXBlPW0uY29uc3RydWN0b3I9cCxwLmNvbnN0cnVjdG9yPWgsaC5kaXNwbGF5TmFtZT1jKHAsYSxcIkdlbmVyYXRvckZ1bmN0aW9uXCIpLHQuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbih0KXt2YXIgZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT1ofHxcIkdlbmVyYXRvckZ1bmN0aW9uXCI9PT0oZS5kaXNwbGF5TmFtZXx8ZS5uYW1lKSl9LHQubWFyaz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LHApOih0Ll9fcHJvdG9fXz1wLGModCxhLFwiR2VuZXJhdG9yRnVuY3Rpb25cIikpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobSksdH0sdC5hd3JhcD1mdW5jdGlvbih0KXtyZXR1cm57X19hd2FpdDp0fX0sZyh3LnByb3RvdHlwZSksdy5wcm90b3R5cGVbaV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdC5Bc3luY0l0ZXJhdG9yPXcsdC5hc3luYz1mdW5jdGlvbihlLHIsbixvLGkpe3ZvaWQgMD09PWkmJihpPVByb21pc2UpO3ZhciBhPW5ldyB3KHUoZSxyLG4sbyksaSk7cmV0dXJuIHQuaXNHZW5lcmF0b3JGdW5jdGlvbihyKT9hOmEubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTphLm5leHQoKX0pKX0sZyhtKSxjKG0sYSxcIkdlbmVyYXRvclwiKSxtW29dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LG0udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cIltvYmplY3QgR2VuZXJhdG9yXVwifSx0LmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpZS5wdXNoKHIpO3JldHVybiBlLnJldmVyc2UoKSxmdW5jdGlvbiByKCl7Zm9yKDtlLmxlbmd0aDspe3ZhciBuPWUucG9wKCk7aWYobiBpbiB0KXJldHVybiByLnZhbHVlPW4sci5kb25lPSExLHJ9cmV0dXJuIHIuZG9uZT0hMCxyfX0sdC52YWx1ZXM9eCxfLnByb3RvdHlwZT17Y29uc3RydWN0b3I6XyxyZXNldDpmdW5jdGlvbih0KXtpZih0aGlzLnByZXY9MCx0aGlzLm5leHQ9MCx0aGlzLnNlbnQ9dGhpcy5fc2VudD12b2lkIDAsdGhpcy5kb25lPSExLHRoaXMuZGVsZWdhdGU9bnVsbCx0aGlzLm1ldGhvZD1cIm5leHRcIix0aGlzLmFyZz12b2lkIDAsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goTyksIXQpZm9yKHZhciBlIGluIHRoaXMpXCJ0XCI9PT1lLmNoYXJBdCgwKSYmci5jYWxsKHRoaXMsZSkmJiFpc05hTigrZS5zbGljZSgxKSkmJih0aGlzW2VdPXZvaWQgMCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoXCJ0aHJvd1wiPT09dC50eXBlKXRocm93IHQuYXJnO3JldHVybiB0aGlzLnJ2YWx9LGRpc3BhdGNoRXhjZXB0aW9uOmZ1bmN0aW9uKHQpe2lmKHRoaXMuZG9uZSl0aHJvdyB0O3ZhciBlPXRoaXM7ZnVuY3Rpb24gbihyLG4pe3JldHVybiBhLnR5cGU9XCJ0aHJvd1wiLGEuYXJnPXQsZS5uZXh0PXIsbiYmKGUubWV0aG9kPVwibmV4dFwiLGUuYXJnPXZvaWQgMCksISFufWZvcih2YXIgbz10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bz49MDstLW8pe3ZhciBpPXRoaXMudHJ5RW50cmllc1tvXSxhPWkuY29tcGxldGlvbjtpZihcInJvb3RcIj09PWkudHJ5TG9jKXJldHVybiBuKFwiZW5kXCIpO2lmKGkudHJ5TG9jPD10aGlzLnByZXYpe3ZhciBjPXIuY2FsbChpLFwiY2F0Y2hMb2NcIiksdT1yLmNhbGwoaSxcImZpbmFsbHlMb2NcIik7aWYoYyYmdSl7aWYodGhpcy5wcmV2PGkuY2F0Y2hMb2MpcmV0dXJuIG4oaS5jYXRjaExvYywhMCk7aWYodGhpcy5wcmV2PGkuZmluYWxseUxvYylyZXR1cm4gbihpLmZpbmFsbHlMb2MpfWVsc2UgaWYoYyl7aWYodGhpcy5wcmV2PGkuY2F0Y2hMb2MpcmV0dXJuIG4oaS5jYXRjaExvYywhMCl9ZWxzZXtpZighdSl0aHJvdyBuZXcgRXJyb3IoXCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseVwiKTtpZih0aGlzLnByZXY8aS5maW5hbGx5TG9jKXJldHVybiBuKGkuZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBvPXRoaXMudHJ5RW50cmllc1tuXTtpZihvLnRyeUxvYzw9dGhpcy5wcmV2JiZyLmNhbGwobyxcImZpbmFsbHlMb2NcIikmJnRoaXMucHJldjxvLmZpbmFsbHlMb2Mpe3ZhciBpPW87YnJlYWt9fWkmJihcImJyZWFrXCI9PT10fHxcImNvbnRpbnVlXCI9PT10KSYmaS50cnlMb2M8PWUmJmU8PWkuZmluYWxseUxvYyYmKGk9bnVsbCk7dmFyIGE9aT9pLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT10LGEuYXJnPWUsaT8odGhpcy5tZXRob2Q9XCJuZXh0XCIsdGhpcy5uZXh0PWkuZmluYWxseUxvYyxsKTp0aGlzLmNvbXBsZXRlKGEpfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKFwidGhyb3dcIj09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm5cImJyZWFrXCI9PT10LnR5cGV8fFwiY29udGludWVcIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6XCJyZXR1cm5cIj09PXQudHlwZT8odGhpcy5ydmFsPXRoaXMuYXJnPXQuYXJnLHRoaXMubWV0aG9kPVwicmV0dXJuXCIsdGhpcy5uZXh0PVwiZW5kXCIpOlwibm9ybWFsXCI9PT10LnR5cGUmJmUmJih0aGlzLm5leHQ9ZSksbH0sZmluaXNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7ZT49MDstLWUpe3ZhciByPXRoaXMudHJ5RW50cmllc1tlXTtpZihyLmZpbmFsbHlMb2M9PT10KXJldHVybiB0aGlzLmNvbXBsZXRlKHIuY29tcGxldGlvbixyLmFmdGVyTG9jKSxPKHIpLGx9fSxjYXRjaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgcj10aGlzLnRyeUVudHJpZXNbZV07aWYoci50cnlMb2M9PT10KXt2YXIgbj1yLmNvbXBsZXRpb247aWYoXCJ0aHJvd1wiPT09bi50eXBlKXt2YXIgbz1uLmFyZztPKHIpfXJldHVybiBvfX10aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIGNhdGNoIGF0dGVtcHRcIil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjp4KHQpLHJlc3VsdE5hbWU6ZSxuZXh0TG9jOnJ9LFwibmV4dFwiPT09dGhpcy5tZXRob2QmJih0aGlzLmFyZz12b2lkIDApLGx9fSx0fSh0LmV4cG9ydHMpO3RyeXtyZWdlbmVyYXRvclJ1bnRpbWU9ZX1jYXRjaCh0KXtGdW5jdGlvbihcInJcIixcInJlZ2VuZXJhdG9yUnVudGltZSA9IHJcIikoZSl9fSkpO2Z1bmN0aW9uIGUodCxlLHIsbixvLGksYSl7dHJ5e3ZhciBjPXRbaV0oYSksdT1jLnZhbHVlfWNhdGNoKHQpe3JldHVybiB2b2lkIHIodCl9Yy5kb25lP2UodSk6UHJvbWlzZS5yZXNvbHZlKHUpLnRoZW4obixvKX12YXIgcj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obyxpKXt2YXIgYT10LmFwcGx5KHIsbik7ZnVuY3Rpb24gYyh0KXtlKGEsbyxpLGMsdSxcIm5leHRcIix0KX1mdW5jdGlvbiB1KHQpe2UoYSxvLGksYyx1LFwidGhyb3dcIix0KX1jKHZvaWQgMCl9KSl9fTt2YXIgbj1mdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fTt2YXIgbz1mdW5jdGlvbih0LGUpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QodCkpe3ZhciByPVtdLG49ITAsbz0hMSxpPXZvaWQgMDt0cnl7Zm9yKHZhciBhLGM9dFtTeW1ib2wuaXRlcmF0b3JdKCk7IShuPShhPWMubmV4dCgpKS5kb25lKSYmKHIucHVzaChhLnZhbHVlKSwhZXx8ci5sZW5ndGghPT1lKTtuPSEwKTt9Y2F0Y2godCl7bz0hMCxpPXR9ZmluYWxseXt0cnl7bnx8bnVsbD09Yy5yZXR1cm58fGMucmV0dXJuKCl9ZmluYWxseXtpZihvKXRocm93IGl9fXJldHVybiByfX07dmFyIGk9ZnVuY3Rpb24odCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheShlKTtyPGU7cisrKW5bcl09dFtyXTtyZXR1cm4gbn07dmFyIGE9ZnVuY3Rpb24odCxlKXtpZih0KXtpZihcInN0cmluZ1wiPT10eXBlb2YgdClyZXR1cm4gaSh0LGUpO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm5cIk9iamVjdFwiPT09ciYmdC5jb25zdHJ1Y3RvciYmKHI9dC5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09cnx8XCJTZXRcIj09PXI/QXJyYXkuZnJvbSh0KTpcIkFyZ3VtZW50c1wiPT09cnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qocik/aSh0LGUpOnZvaWQgMH19O3ZhciBjPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX07dmFyIHU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0KXx8byh0LGUpfHxhKHQsZSl8fGMoKX07dmFyIHM9ZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfTtmdW5jdGlvbiBsKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4ua2V5LG4pfX12YXIgZj1mdW5jdGlvbih0LGUscil7cmV0dXJuIGUmJmwodC5wcm90b3R5cGUsZSksciYmbCh0LHIpLHR9O3ZhciBoPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZSBpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH0scD1mdW5jdGlvbigpe3JldHVybiEhbmF2aWdhdG9yLnBlcm1pc3Npb25zfSx2PWZ1bmN0aW9uKCl7cmV0dXJuISFuYXZpZ2F0b3IubWVkaWFEZXZpY2VzfTtmdW5jdGlvbiB5KHQsZSxyLG4sbyxpLGEpe3RyeXt2YXIgYz10W2ldKGEpLHU9Yy52YWx1ZX1jYXRjaCh0KXtyZXR1cm4gdm9pZCByKHQpfWMuZG9uZT9lKHUpOlByb21pc2UucmVzb2x2ZSh1KS50aGVuKG4sbyl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLHI9YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24obixvKXt2YXIgaT10LmFwcGx5KGUscik7ZnVuY3Rpb24gYSh0KXt5KGksbixvLGEsYyxcIm5leHRcIix0KX1mdW5jdGlvbiBjKHQpe3koaSxuLG8sYSxjLFwidGhyb3dcIix0KX1hKHZvaWQgMCl9KSl9fWZ1bmN0aW9uIG0odCxlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdH0odCl8fGZ1bmN0aW9uKHQsZSl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdCh0KSl7dmFyIHI9W10sbj0hMCxvPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIGEsYz10W1N5bWJvbC5pdGVyYXRvcl0oKTshKG49KGE9Yy5uZXh0KCkpLmRvbmUpJiYoci5wdXNoKGEudmFsdWUpLCFlfHxyLmxlbmd0aCE9PWUpO249ITApO31jYXRjaCh0KXtvPSEwLGk9dH1maW5hbGx5e3RyeXtufHxudWxsPT1jLnJldHVybnx8Yy5yZXR1cm4oKX1maW5hbGx5e2lmKG8pdGhyb3cgaX19cmV0dXJuIHJ9fSh0LGUpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXJldHVybiBnKHQsZSk7dmFyIHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVyblwiT2JqZWN0XCI9PT1yJiZ0LmNvbnN0cnVjdG9yJiYocj10LmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1yfHxcIlNldFwiPT09cj9BcnJheS5mcm9tKHQpOlwiQXJndW1lbnRzXCI9PT1yfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChyKT9nKHQsZSk6dm9pZCAwfX0odCxlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIGcodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheShlKTtyPGU7cisrKW5bcl09dFtyXTtyZXR1cm4gbn12YXIgdz1mdW5jdGlvbigpe3ZhciB0PWQocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIHQoZSl7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdC5hYnJ1cHQoXCJyZXR1cm5cIixuZXcgUHJvbWlzZShmdW5jdGlvbigpe3ZhciB0PWQocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIHQocixuKXt2YXIgbyxpO3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHAoKXx8bihuZXcgRE9NRXhjZXB0aW9uKFwiTmF2aWdhdG9yIEFQSTogcGVybWlzc2lvbnMgbm90IHN1cHBvcnRlZFwiLFwiTk9UX1NVUFBPUlRFRF9FUlJcIikpLHQucHJldj0xLHQubmV4dD00LG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSh7bmFtZTplfSk7Y2FzZSA0Om89dC5zZW50LGk9ZnVuY3Rpb24gdChlKXtvLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIix0KSxiKGUudGFyZ2V0LnN0YXRlLHIsbil9LG8uYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLGkpLGIoby5zdGF0ZSxyLG4pLHQubmV4dD0xMzticmVhaztjYXNlIDEwOnQucHJldj0xMCx0LnQwPXQuY2F0Y2goMSksbih0LnQwKTtjYXNlIDEzOmNhc2VcImVuZFwiOnJldHVybiB0LnN0b3AoKX19KSx0LG51bGwsW1sxLDEwXV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSk7Y2FzZSAxOmNhc2VcImVuZFwiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksYj1mdW5jdGlvbih0LGUscil7c3dpdGNoKHQpe2Nhc2VcImRlbmllZFwiOnIobmV3IERPTUV4Y2VwdGlvbihcIlBlcm1pc3Npb24gZGVuaWVkXCIsXCJOT1RfQUxMT1dFRF9FUlJcIikpO2JyZWFrO2RlZmF1bHQ6ZSh0KX19LEU9ZnVuY3Rpb24oKXt2YXIgdD1kKHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKChmdW5jdGlvbiB0KGUscil7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdC5hYnJ1cHQoXCJyZXR1cm5cIixuZXcgUHJvbWlzZShmdW5jdGlvbigpe3ZhciB0PWQocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIHQobixvKXt2YXIgaSxhLGM7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gcCgpJiZ2KCl8fG8obmV3IERPTUV4Y2VwdGlvbihcIk5hdmlnYXRvciBBUEk6IHBlcm1pc3Npb25zIG9yIE5hdmlnYXRvciBBUEk6IG1lZGlhRGV2aWNlcyBub3Qgc3VwcG9ydGVkXCIsXCJOT1RfU1VQUE9SVEVEX0VSUlwiKSksdC5wcmV2PTEsdC50MD1Qcm9taXNlLHQubmV4dD01LHcoZSk7Y2FzZSA1OnJldHVybiB0LnQxPXQuc2VudCx0Lm5leHQ9OCxuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShyKTtjYXNlIDg6cmV0dXJuIHQudDI9dC5zZW50LHQudDM9W3QudDEsdC50Ml0sdC5uZXh0PTEyLHQudDAuYWxsLmNhbGwodC50MCx0LnQzKTtjYXNlIDEyOmk9dC5zZW50LGE9bShpLDIpLGM9YVsxXSxuKGMpLHQubmV4dD0yMTticmVhaztjYXNlIDE4OnQucHJldj0xOCx0LnQ0PXQuY2F0Y2goMSksbyh0LnQ0KTtjYXNlIDIxOmNhc2VcImVuZFwiOnJldHVybiB0LnN0b3AoKX19KSx0LG51bGwsW1sxLDE4XV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSk7Y2FzZSAxOmNhc2VcImVuZFwiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSk7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtmdW5jdGlvbiBPKHQsZSl7dmFyIHI9T2JqZWN0LmtleXModCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtlJiYobj1uLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLnB1c2guYXBwbHkocixuKX1yZXR1cm4gcn1mdW5jdGlvbiBfKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciByPW51bGwhPWFyZ3VtZW50c1tlXT9hcmd1bWVudHNbZV06e307ZSUyP08oT2JqZWN0KHIpLCEwKS5mb3JFYWNoKChmdW5jdGlvbihlKXtoKHQsZSxyW2VdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKTpPKE9iamVjdChyKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsZSkpfSkpfXJldHVybiB0fXZhciB4PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt2YXIgcj10aGlzO3ModGhpcyxlKSxoKHRoaXMsXCJfaW5zdGFuY2VcIixudWxsKSxoKHRoaXMsXCJfbGlzdGVuZXJzXCIsbnVsbCk7dmFyIG49ZS5fcmVzb2x2ZVNwZWVjaFJlY29nbml0aW9uKCk7aWYoIW4pdGhyb3cgbmV3IERPTUV4Y2VwdGlvbihcIlNwZWVjaFJlY29nbml0aW9uIG5vdCBzdXBwb3J0ZWRcIixcIk5PVF9TVVBQT1JURURfRVJSXCIpO3RoaXMuX2luc3RhbmNlPW5ldyBuLHRoaXMuX2xpc3RlbmVycz17fSxPYmplY3QuZW50cmllcyhfKF8oe30sZS5kZWZhdWx0T3B0aW9ucyksdHx8e30pKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbj11KHQsMiksbz1uWzBdLGk9blsxXTtpZihcImdyYW1tYXJzXCI9PT1vJiYhaSl7dmFyIGE9ZS5fcmVzb2x2ZVNwZWVjaEdyYW1tYXJMaXN0KCk7YSYmKGk9bmV3IGEpfXIuX2luc3RhbmNlW29dPWl9KSl9dmFyIG47cmV0dXJuIGYoZSxudWxsLFt7a2V5OlwiaXNTdXBwb3J0ZWRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWUuX3Jlc29sdmVTcGVlY2hSZWNvZ25pdGlvbigpJiYhIXAoKSYmISF2KCl9LHNldDpmdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoXCJZb3UgY2Fubm90IHNldCBpc1N1cHBvcnRlZCBkaXJlY3RseS5cIil9fV0pLGYoZSxbe2tleTpcInN0YXJ0XCIsdmFsdWU6KG49cih0Lm1hcmsoKGZ1bmN0aW9uIGUoKXt2YXIgcjtyZXR1cm4gdC53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZighdGhpcy5faW5zdGFuY2Upe3QubmV4dD0xNDticmVha31yZXR1cm4gdC5wcmV2PTEsdC5uZXh0PTQsRShcIm1pY3JvcGhvbmVcIix7YXVkaW86ITB9KTtjYXNlIDQ6aWYodC5zZW50KXt0Lm5leHQ9NzticmVha310aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gcmV0cmlldmUgdGhlIHN0cmVhbSBmcm9tIG1lZGlhIGRldmljZVwiKTtjYXNlIDc6dGhpcy5faW5zdGFuY2Uuc3RhcnQoKSx0Lm5leHQ9MTQ7YnJlYWs7Y2FzZSAxMDp0LnByZXY9MTAsdC50MD10LmNhdGNoKDEpLChyPXRoaXMuX2xpc3RlbmVycy5lcnJvcikmJnIodC50MCk7Y2FzZSAxNDpyZXR1cm4gdC5hYnJ1cHQoXCJyZXR1cm5cIix0aGlzKTtjYXNlIDE1OmNhc2VcImVuZFwiOnJldHVybiB0LnN0b3AoKX19KSxlLHRoaXMsW1sxLDEwXV0pfSkpKSxmdW5jdGlvbigpe3JldHVybiBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5Olwic3RvcFwiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luc3RhbmNlJiZ0aGlzLl9pbnN0YW5jZS5zdG9wKCksdGhpc319LHtrZXk6XCJhYm9ydFwiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luc3RhbmNlJiZ0aGlzLl9pbnN0YW5jZS5hYm9ydCgpLHRoaXN9fSx7a2V5OlwiYWRkRXZlbnRMaXN0ZW5lclwiLHZhbHVlOmZ1bmN0aW9uKHQscil7dmFyIG49dGhpcztpZih0aGlzLl9pbnN0YW5jZSYmdGhpcy5faW5jbHVkZXNFdmVudFR5cGUodCkpe3RoaXMuX2xpc3RlbmVyc1t0XSYmdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHQpO3ZhciBvPWZ1bmN0aW9uKG8pe3ZhciBpPVtdO3Q9PT1lLmV2ZW50VHlwZXMuUkVTVUxUJiZvLnJlc3VsdHMmJm8ucmVzdWx0cy5sZW5ndGg+MCYmaS5wdXNoKG8ucmVzdWx0c1swXVswXS50cmFuc2NyaXB0KSxyJiZyLmFwcGx5KG4sW29dLmNvbmNhdChpKSl9O3RoaXMuX2luc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIodCxvKSx0aGlzLl9saXN0ZW5lcnNbdF09b31yZXR1cm4gdGhpc319LHtrZXk6XCJyZW1vdmVFdmVudExpc3RlbmVyXCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbGlzdGVuZXJzW3RdO3JldHVybiB0aGlzLl9pbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsZSksZGVsZXRlIHRoaXMuX2xpc3RlbmVyc1t0XSx0aGlzfX0se2tleTpcImNsZWFudXBcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuc3RvcCgpLE9iamVjdC5rZXlzKHRoaXMuX2xpc3RlbmVycykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlKX0pKSx0aGlzLl9pbnN0YW5jZT1udWxsLHRoaXN9fSx7a2V5OlwiX2luY2x1ZGVzRXZlbnRUeXBlXCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuISFPYmplY3QudmFsdWVzKGUuZXZlbnRUeXBlcykuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT10fSkpfX0se2tleTpcImluc3RhbmNlXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luc3RhbmNlfSxzZXQ6ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKFwiWW91IGNhbm5vdCBzZXQgaW5zdGFuY2UgZGlyZWN0bHkuXCIpfX1dLFt7a2V5OlwiX3Jlc29sdmVTcGVlY2hSZWNvZ25pdGlvblwiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5TcGVlY2hSZWNvZ25pdGlvbnx8d2luZG93LndlYmtpdFNwZWVjaFJlY29nbml0aW9ufHx3aW5kb3cubW96U3BlZWNoUmVjb2duaXRpb258fHdpbmRvdy5tc1NwZWVjaFJlY29nbml0aW9ufX0se2tleTpcIl9yZXNvbHZlU3BlZWNoR3JhbW1hckxpc3RcIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuU3BlZWNoR3JhbW1hckxpc3R8fHdpbmRvdy53ZWJraXRTcGVlY2hHcmFtbWFyTGlzdHx8d2luZG93Lm1velNwZWVjaEdyYW1tYXJMaXN0fHx3aW5kb3cubXNTcGVlY2hHcmFtbWFyTGlzdH19XSksZX0oKTtoKHgsXCJkZWZhdWx0T3B0aW9uc1wiLHtncmFtbWFyczpudWxsLGxhbmc6XCJlbi1VU1wiLGNvbnRpbnVvdXM6ITEsaW50ZXJpbVJlc3VsdHM6ITEsbWF4QWx0ZXJuYXRpdmVzOjEsc2VydmljZVVSSTpudWxsfSksaCh4LFwiZXZlbnRUeXBlc1wiLHtBVURJT19FTkQ6XCJhdWRpb2VuZFwiLEFVRElPX1NUQVJUOlwiYXVkaW9zdGFydFwiLEVORDpcImVuZFwiLEVSUk9SOlwiZXJyb3JcIixOT19NQVRDSDpcIm5vbWF0Y2hcIixSRVNVTFQ6XCJyZXN1bHRcIixTT1VORF9FTkQ6XCJzb3VuZGVuZFwiLFNPVU5EX1NUQVJUOlwic291bmRzdGFydFwiLFNQRUVDSF9FTkQ6XCJzcGVlY2hlbmRcIixTUEVFQ0hfU1RBUlQ6XCJzcGVlY2hzdGFydFwiLFNUQVJUOlwic3RhcnRcIn0pO2V4cG9ydHt4IGFzIFZvY2FsfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3VaWE11YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTR1TDI1dlpHVmZiVzlrZFd4bGN5OXlaV2RsYm1WeVlYUnZjaTF5ZFc1MGFXMWxMM0oxYm5ScGJXVXVhbk1pTENJdUxpOXViMlJsWDIxdlpIVnNaWE12UUdKaFltVnNMM0oxYm5ScGJXVXZhR1ZzY0dWeWN5OWhjM2x1WTFSdlIyVnVaWEpoZEc5eUxtcHpJaXdpTGk0dmJtOWtaVjl0YjJSMWJHVnpMMEJpWVdKbGJDOXlkVzUwYVcxbEwyaGxiSEJsY25NdllYSnlZWGxYYVhSb1NHOXNaWE11YW5NaUxDSXVMaTl1YjJSbFgyMXZaSFZzWlhNdlFHSmhZbVZzTDNKMWJuUnBiV1V2YUdWc2NHVnljeTlwZEdWeVlXSnNaVlJ2UVhKeVlYbE1hVzFwZEM1cWN5SXNJaTR1TDI1dlpHVmZiVzlrZFd4bGN5OUFZbUZpWld3dmNuVnVkR2x0WlM5b1pXeHdaWEp6TDJGeWNtRjVUR2xyWlZSdlFYSnlZWGt1YW5NaUxDSXVMaTl1YjJSbFgyMXZaSFZzWlhNdlFHSmhZbVZzTDNKMWJuUnBiV1V2YUdWc2NHVnljeTkxYm5OMWNIQnZjblJsWkVsMFpYSmhZbXhsVkc5QmNuSmhlUzVxY3lJc0lpNHVMMjV2WkdWZmJXOWtkV3hsY3k5QVltRmlaV3d2Y25WdWRHbHRaUzlvWld4d1pYSnpMMjV2YmtsMFpYSmhZbXhsVW1WemRDNXFjeUlzSWk0dUwyNXZaR1ZmYlc5a2RXeGxjeTlBWW1GaVpXd3ZjblZ1ZEdsdFpTOW9aV3h3WlhKekwzTnNhV05sWkZSdlFYSnlZWGt1YW5NaUxDSXVMaTl1YjJSbFgyMXZaSFZzWlhNdlFHSmhZbVZzTDNKMWJuUnBiV1V2YUdWc2NHVnljeTlqYkdGemMwTmhiR3hEYUdWamF5NXFjeUlzSWk0dUwyNXZaR1ZmYlc5a2RXeGxjeTlBWW1GaVpXd3ZjblZ1ZEdsdFpTOW9aV3h3WlhKekwyTnlaV0YwWlVOc1lYTnpMbXB6SWl3aUxpNHZibTlrWlY5dGIyUjFiR1Z6TDBCaVlXSmxiQzl5ZFc1MGFXMWxMMmhsYkhCbGNuTXZaR1ZtYVc1bFVISnZjR1Z5ZEhrdWFuTWlMQ0l1TGk5dWIyUmxYMjF2WkhWc1pYTXZRSFZ1ZEdWdGNITXZkWE5sY2kxd1pYSnRhWE56YVc5dWN5MTFkR2xzY3k5a2FYTjBMMmx1WkdWNExtVnpMbXB6SWl3aUxpNHZjM0pqTDFadlkyRnNMbXB6SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1EyOXdlWEpwWjJoMElDaGpLU0F5TURFMExYQnlaWE5sYm5Rc0lFWmhZMlZpYjI5ckxDQkpibU11WEc0Z0tseHVJQ29nVkdocGN5QnpiM1Z5WTJVZ1kyOWtaU0JwY3lCc2FXTmxibk5sWkNCMWJtUmxjaUIwYUdVZ1RVbFVJR3hwWTJWdWMyVWdabTkxYm1RZ2FXNGdkR2hsWEc0Z0tpQk1TVU5GVGxORklHWnBiR1VnYVc0Z2RHaGxJSEp2YjNRZ1pHbHlaV04wYjNKNUlHOW1JSFJvYVhNZ2MyOTFjbU5sSUhSeVpXVXVYRzRnS2k5Y2JseHVkbUZ5SUhKMWJuUnBiV1VnUFNBb1puVnVZM1JwYjI0Z0tHVjRjRzl5ZEhNcElIdGNiaUFnWENKMWMyVWdjM1J5YVdOMFhDSTdYRzVjYmlBZ2RtRnlJRTl3SUQwZ1QySnFaV04wTG5CeWIzUnZkSGx3WlR0Y2JpQWdkbUZ5SUdoaGMwOTNiaUE5SUU5d0xtaGhjMDkzYmxCeWIzQmxjblI1TzF4dUlDQjJZWElnZFc1a1pXWnBibVZrT3lBdkx5Qk5iM0psSUdOdmJYQnlaWE56YVdKc1pTQjBhR0Z1SUhadmFXUWdNQzVjYmlBZ2RtRnlJQ1JUZVcxaWIyd2dQU0IwZVhCbGIyWWdVM2x0WW05c0lEMDlQU0JjSW1aMWJtTjBhVzl1WENJZ1B5QlRlVzFpYjJ3Z09pQjdmVHRjYmlBZ2RtRnlJR2wwWlhKaGRHOXlVM2x0WW05c0lEMGdKRk41YldKdmJDNXBkR1Z5WVhSdmNpQjhmQ0JjSWtCQWFYUmxjbUYwYjNKY0lqdGNiaUFnZG1GeUlHRnplVzVqU1hSbGNtRjBiM0pUZVcxaWIyd2dQU0FrVTNsdFltOXNMbUZ6ZVc1alNYUmxjbUYwYjNJZ2ZId2dYQ0pBUUdGemVXNWpTWFJsY21GMGIzSmNJanRjYmlBZ2RtRnlJSFJ2VTNSeWFXNW5WR0ZuVTNsdFltOXNJRDBnSkZONWJXSnZiQzUwYjFOMGNtbHVaMVJoWnlCOGZDQmNJa0JBZEc5VGRISnBibWRVWVdkY0lqdGNibHh1SUNCbWRXNWpkR2x2YmlCa1pXWnBibVVvYjJKcUxDQnJaWGtzSUhaaGJIVmxLU0I3WEc0Z0lDQWdUMkpxWldOMExtUmxabWx1WlZCeWIzQmxjblI1S0c5aWFpd2dhMlY1TENCN1hHNGdJQ0FnSUNCMllXeDFaVG9nZG1Gc2RXVXNYRzRnSUNBZ0lDQmxiblZ0WlhKaFlteGxPaUIwY25WbExGeHVJQ0FnSUNBZ1kyOXVabWxuZFhKaFlteGxPaUIwY25WbExGeHVJQ0FnSUNBZ2QzSnBkR0ZpYkdVNklIUnlkV1ZjYmlBZ0lDQjlLVHRjYmlBZ0lDQnlaWFIxY200Z2IySnFXMnRsZVYwN1hHNGdJSDFjYmlBZ2RISjVJSHRjYmlBZ0lDQXZMeUJKUlNBNElHaGhjeUJoSUdKeWIydGxiaUJQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrZ2RHaGhkQ0J2Ym14NUlIZHZjbXR6SUc5dUlFUlBUU0J2WW1wbFkzUnpMbHh1SUNBZ0lHUmxabWx1WlNoN2ZTd2dYQ0pjSWlrN1hHNGdJSDBnWTJGMFkyZ2dLR1Z5Y2lrZ2UxeHVJQ0FnSUdSbFptbHVaU0E5SUdaMWJtTjBhVzl1S0c5aWFpd2dhMlY1TENCMllXeDFaU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzlpYWx0clpYbGRJRDBnZG1Gc2RXVTdYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJR1oxYm1OMGFXOXVJSGR5WVhBb2FXNXVaWEpHYml3Z2IzVjBaWEpHYml3Z2MyVnNaaXdnZEhKNVRHOWpjMHhwYzNRcElIdGNiaUFnSUNBdkx5QkpaaUJ2ZFhSbGNrWnVJSEJ5YjNacFpHVmtJR0Z1WkNCdmRYUmxja1p1TG5CeWIzUnZkSGx3WlNCcGN5QmhJRWRsYm1WeVlYUnZjaXdnZEdobGJpQnZkWFJsY2tadUxuQnliM1J2ZEhsd1pTQnBibk4wWVc1alpXOW1JRWRsYm1WeVlYUnZjaTVjYmlBZ0lDQjJZWElnY0hKdmRHOUhaVzVsY21GMGIzSWdQU0J2ZFhSbGNrWnVJQ1ltSUc5MWRHVnlSbTR1Y0hKdmRHOTBlWEJsSUdsdWMzUmhibU5sYjJZZ1IyVnVaWEpoZEc5eUlEOGdiM1YwWlhKR2JpQTZJRWRsYm1WeVlYUnZjanRjYmlBZ0lDQjJZWElnWjJWdVpYSmhkRzl5SUQwZ1QySnFaV04wTG1OeVpXRjBaU2h3Y205MGIwZGxibVZ5WVhSdmNpNXdjbTkwYjNSNWNHVXBPMXh1SUNBZ0lIWmhjaUJqYjI1MFpYaDBJRDBnYm1WM0lFTnZiblJsZUhRb2RISjVURzlqYzB4cGMzUWdmSHdnVzEwcE8xeHVYRzRnSUNBZ0x5OGdWR2hsSUM1ZmFXNTJiMnRsSUcxbGRHaHZaQ0IxYm1sbWFXVnpJSFJvWlNCcGJYQnNaVzFsYm5SaGRHbHZibk1nYjJZZ2RHaGxJQzV1WlhoMExGeHVJQ0FnSUM4dklDNTBhSEp2ZHl3Z1lXNWtJQzV5WlhSMWNtNGdiV1YwYUc5a2N5NWNiaUFnSUNCblpXNWxjbUYwYjNJdVgybHVkbTlyWlNBOUlHMWhhMlZKYm5admEyVk5aWFJvYjJRb2FXNXVaWEpHYml3Z2MyVnNaaXdnWTI5dWRHVjRkQ2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdaMlZ1WlhKaGRHOXlPMXh1SUNCOVhHNGdJR1Y0Y0c5eWRITXVkM0poY0NBOUlIZHlZWEE3WEc1Y2JpQWdMeThnVkhKNUwyTmhkR05vSUdobGJIQmxjaUIwYnlCdGFXNXBiV2w2WlNCa1pXOXdkR2x0YVhwaGRHbHZibk11SUZKbGRIVnlibk1nWVNCamIyMXdiR1YwYVc5dVhHNGdJQzh2SUhKbFkyOXlaQ0JzYVd0bElHTnZiblJsZUhRdWRISjVSVzUwY21sbGMxdHBYUzVqYjIxd2JHVjBhVzl1TGlCVWFHbHpJR2x1ZEdWeVptRmpaU0JqYjNWc1pGeHVJQ0F2THlCb1lYWmxJR0psWlc0Z0tHRnVaQ0IzWVhNZ2NISmxkbWx2ZFhOc2VTa2daR1Z6YVdkdVpXUWdkRzhnZEdGclpTQmhJR05zYjNOMWNtVWdkRzhnWW1WY2JpQWdMeThnYVc1MmIydGxaQ0IzYVhSb2IzVjBJR0Z5WjNWdFpXNTBjeXdnWW5WMElHbHVJR0ZzYkNCMGFHVWdZMkZ6WlhNZ2QyVWdZMkZ5WlNCaFltOTFkQ0IzWlZ4dUlDQXZMeUJoYkhKbFlXUjVJR2hoZG1VZ1lXNGdaWGhwYzNScGJtY2diV1YwYUc5a0lIZGxJSGRoYm5RZ2RHOGdZMkZzYkN3Z2MyOGdkR2hsY21VbmN5QnVieUJ1WldWa1hHNGdJQzh2SUhSdklHTnlaV0YwWlNCaElHNWxkeUJtZFc1amRHbHZiaUJ2WW1wbFkzUXVJRmRsSUdOaGJpQmxkbVZ1SUdkbGRDQmhkMkY1SUhkcGRHZ2dZWE56ZFcxcGJtZGNiaUFnTHk4Z2RHaGxJRzFsZEdodlpDQjBZV3RsY3lCbGVHRmpkR3g1SUc5dVpTQmhjbWQxYldWdWRDd2djMmx1WTJVZ2RHaGhkQ0JvWVhCd1pXNXpJSFJ2SUdKbElIUnlkV1ZjYmlBZ0x5OGdhVzRnWlhabGNua2dZMkZ6WlN3Z2MyOGdkMlVnWkc5dUozUWdhR0YyWlNCMGJ5QjBiM1ZqYUNCMGFHVWdZWEpuZFcxbGJuUnpJRzlpYW1WamRDNGdWR2hsWEc0Z0lDOHZJRzl1YkhrZ1lXUmthWFJwYjI1aGJDQmhiR3h2WTJGMGFXOXVJSEpsY1hWcGNtVmtJR2x6SUhSb1pTQmpiMjF3YkdWMGFXOXVJSEpsWTI5eVpDd2dkMmhwWTJoY2JpQWdMeThnYUdGeklHRWdjM1JoWW14bElITm9ZWEJsSUdGdVpDQnpieUJvYjNCbFpuVnNiSGtnYzJodmRXeGtJR0psSUdOb1pXRndJSFJ2SUdGc2JHOWpZWFJsTGx4dUlDQm1kVzVqZEdsdmJpQjBjbmxEWVhSamFDaG1iaXdnYjJKcUxDQmhjbWNwSUh0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nWENKdWIzSnRZV3hjSWl3Z1lYSm5PaUJtYmk1allXeHNLRzlpYWl3Z1lYSm5LU0I5TzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1Z5Y2lrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RIbHdaVG9nWENKMGFISnZkMXdpTENCaGNtYzZJR1Z5Y2lCOU8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lIWmhjaUJIWlc1VGRHRjBaVk4xYzNCbGJtUmxaRk4wWVhKMElEMGdYQ0p6ZFhOd1pXNWtaV1JUZEdGeWRGd2lPMXh1SUNCMllYSWdSMlZ1VTNSaGRHVlRkWE53Wlc1a1pXUlphV1ZzWkNBOUlGd2ljM1Z6Y0dWdVpHVmtXV2xsYkdSY0lqdGNiaUFnZG1GeUlFZGxibE4wWVhSbFJYaGxZM1YwYVc1bklEMGdYQ0psZUdWamRYUnBibWRjSWp0Y2JpQWdkbUZ5SUVkbGJsTjBZWFJsUTI5dGNHeGxkR1ZrSUQwZ1hDSmpiMjF3YkdWMFpXUmNJanRjYmx4dUlDQXZMeUJTWlhSMWNtNXBibWNnZEdocGN5QnZZbXBsWTNRZ1puSnZiU0IwYUdVZ2FXNXVaWEpHYmlCb1lYTWdkR2hsSUhOaGJXVWdaV1ptWldOMElHRnpYRzRnSUM4dklHSnlaV0ZyYVc1bklHOTFkQ0J2WmlCMGFHVWdaR2x6Y0dGMFkyZ2djM2RwZEdOb0lITjBZWFJsYldWdWRDNWNiaUFnZG1GeUlFTnZiblJwYm5WbFUyVnVkR2x1Wld3Z1BTQjdmVHRjYmx4dUlDQXZMeUJFZFcxdGVTQmpiMjV6ZEhKMVkzUnZjaUJtZFc1amRHbHZibk1nZEdoaGRDQjNaU0IxYzJVZ1lYTWdkR2hsSUM1amIyNXpkSEoxWTNSdmNpQmhibVJjYmlBZ0x5OGdMbU52Ym5OMGNuVmpkRzl5TG5CeWIzUnZkSGx3WlNCd2NtOXdaWEowYVdWeklHWnZjaUJtZFc1amRHbHZibk1nZEdoaGRDQnlaWFIxY200Z1IyVnVaWEpoZEc5eVhHNGdJQzh2SUc5aWFtVmpkSE11SUVadmNpQm1kV3hzSUhOd1pXTWdZMjl0Y0d4cFlXNWpaU3dnZVc5MUlHMWhlU0IzYVhOb0lIUnZJR052Ym1acFozVnlaU0I1YjNWeVhHNGdJQzh2SUcxcGJtbG1hV1Z5SUc1dmRDQjBieUJ0WVc1bmJHVWdkR2hsSUc1aGJXVnpJRzltSUhSb1pYTmxJSFIzYnlCbWRXNWpkR2x2Ym5NdVhHNGdJR1oxYm1OMGFXOXVJRWRsYm1WeVlYUnZjaWdwSUh0OVhHNGdJR1oxYm1OMGFXOXVJRWRsYm1WeVlYUnZja1oxYm1OMGFXOXVLQ2tnZTMxY2JpQWdablZ1WTNScGIyNGdSMlZ1WlhKaGRHOXlSblZ1WTNScGIyNVFjbTkwYjNSNWNHVW9LU0I3ZlZ4dVhHNGdJQzh2SUZSb2FYTWdhWE1nWVNCd2IyeDVabWxzYkNCbWIzSWdKVWwwWlhKaGRHOXlVSEp2ZEc5MGVYQmxKU0JtYjNJZ1pXNTJhWEp2Ym0xbGJuUnpJSFJvWVhSY2JpQWdMeThnWkc5dUozUWdibUYwYVhabGJIa2djM1Z3Y0c5eWRDQnBkQzVjYmlBZ2RtRnlJRWwwWlhKaGRHOXlVSEp2ZEc5MGVYQmxJRDBnZTMwN1hHNGdJRWwwWlhKaGRHOXlVSEp2ZEc5MGVYQmxXMmwwWlhKaGRHOXlVM2x0WW05c1hTQTlJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3p0Y2JpQWdmVHRjYmx4dUlDQjJZWElnWjJWMFVISnZkRzhnUFNCUFltcGxZM1F1WjJWMFVISnZkRzkwZVhCbFQyWTdYRzRnSUhaaGNpQk9ZWFJwZG1WSmRHVnlZWFJ2Y2xCeWIzUnZkSGx3WlNBOUlHZGxkRkJ5YjNSdklDWW1JR2RsZEZCeWIzUnZLR2RsZEZCeWIzUnZLSFpoYkhWbGN5aGJYU2twS1R0Y2JpQWdhV1lnS0U1aGRHbDJaVWwwWlhKaGRHOXlVSEp2ZEc5MGVYQmxJQ1ltWEc0Z0lDQWdJQ0JPWVhScGRtVkpkR1Z5WVhSdmNsQnliM1J2ZEhsd1pTQWhQVDBnVDNBZ0ppWmNiaUFnSUNBZ0lHaGhjMDkzYmk1allXeHNLRTVoZEdsMlpVbDBaWEpoZEc5eVVISnZkRzkwZVhCbExDQnBkR1Z5WVhSdmNsTjViV0p2YkNrcElIdGNiaUFnSUNBdkx5QlVhR2x6SUdWdWRtbHliMjV0Wlc1MElHaGhjeUJoSUc1aGRHbDJaU0FsU1hSbGNtRjBiM0pRY205MGIzUjVjR1VsT3lCMWMyVWdhWFFnYVc1emRHVmhaRnh1SUNBZ0lDOHZJRzltSUhSb1pTQndiMng1Wm1sc2JDNWNiaUFnSUNCSmRHVnlZWFJ2Y2xCeWIzUnZkSGx3WlNBOUlFNWhkR2wyWlVsMFpYSmhkRzl5VUhKdmRHOTBlWEJsTzF4dUlDQjlYRzVjYmlBZ2RtRnlJRWR3SUQwZ1IyVnVaWEpoZEc5eVJuVnVZM1JwYjI1UWNtOTBiM1I1Y0dVdWNISnZkRzkwZVhCbElEMWNiaUFnSUNCSFpXNWxjbUYwYjNJdWNISnZkRzkwZVhCbElEMGdUMkpxWldOMExtTnlaV0YwWlNoSmRHVnlZWFJ2Y2xCeWIzUnZkSGx3WlNrN1hHNGdJRWRsYm1WeVlYUnZja1oxYm1OMGFXOXVMbkJ5YjNSdmRIbHdaU0E5SUVkd0xtTnZibk4wY25WamRHOXlJRDBnUjJWdVpYSmhkRzl5Um5WdVkzUnBiMjVRY205MGIzUjVjR1U3WEc0Z0lFZGxibVZ5WVhSdmNrWjFibU4wYVc5dVVISnZkRzkwZVhCbExtTnZibk4wY25WamRHOXlJRDBnUjJWdVpYSmhkRzl5Um5WdVkzUnBiMjQ3WEc0Z0lFZGxibVZ5WVhSdmNrWjFibU4wYVc5dUxtUnBjM0JzWVhsT1lXMWxJRDBnWkdWbWFXNWxLRnh1SUNBZ0lFZGxibVZ5WVhSdmNrWjFibU4wYVc5dVVISnZkRzkwZVhCbExGeHVJQ0FnSUhSdlUzUnlhVzVuVkdGblUzbHRZbTlzTEZ4dUlDQWdJRndpUjJWdVpYSmhkRzl5Um5WdVkzUnBiMjVjSWx4dUlDQXBPMXh1WEc0Z0lDOHZJRWhsYkhCbGNpQm1iM0lnWkdWbWFXNXBibWNnZEdobElDNXVaWGgwTENBdWRHaHliM2NzSUdGdVpDQXVjbVYwZFhKdUlHMWxkR2h2WkhNZ2IyWWdkR2hsWEc0Z0lDOHZJRWwwWlhKaGRHOXlJR2x1ZEdWeVptRmpaU0JwYmlCMFpYSnRjeUJ2WmlCaElITnBibWRzWlNBdVgybHVkbTlyWlNCdFpYUm9iMlF1WEc0Z0lHWjFibU4wYVc5dUlHUmxabWx1WlVsMFpYSmhkRzl5VFdWMGFHOWtjeWh3Y205MGIzUjVjR1VwSUh0Y2JpQWdJQ0JiWENKdVpYaDBYQ0lzSUZ3aWRHaHliM2RjSWl3Z1hDSnlaWFIxY201Y0lsMHVabTl5UldGamFDaG1kVzVqZEdsdmJpaHRaWFJvYjJRcElIdGNiaUFnSUNBZ0lHUmxabWx1WlNod2NtOTBiM1I1Y0dVc0lHMWxkR2h2WkN3Z1puVnVZM1JwYjI0b1lYSm5LU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXBiblp2YTJVb2JXVjBhRzlrTENCaGNtY3BPMXh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNCbGVIQnZjblJ6TG1selIyVnVaWEpoZEc5eVJuVnVZM1JwYjI0Z1BTQm1kVzVqZEdsdmJpaG5aVzVHZFc0cElIdGNiaUFnSUNCMllYSWdZM1J2Y2lBOUlIUjVjR1Z2WmlCblpXNUdkVzRnUFQwOUlGd2lablZ1WTNScGIyNWNJaUFtSmlCblpXNUdkVzR1WTI5dWMzUnlkV04wYjNJN1hHNGdJQ0FnY21WMGRYSnVJR04wYjNKY2JpQWdJQ0FnSUQ4Z1kzUnZjaUE5UFQwZ1IyVnVaWEpoZEc5eVJuVnVZM1JwYjI0Z2ZIeGNiaUFnSUNBZ0lDQWdMeThnUm05eUlIUm9aU0J1WVhScGRtVWdSMlZ1WlhKaGRHOXlSblZ1WTNScGIyNGdZMjl1YzNSeWRXTjBiM0lzSUhSb1pTQmlaWE4wSUhkbElHTmhibHh1SUNBZ0lDQWdJQ0F2THlCa2J5QnBjeUIwYnlCamFHVmpheUJwZEhNZ0xtNWhiV1VnY0hKdmNHVnlkSGt1WEc0Z0lDQWdJQ0FnSUNoamRHOXlMbVJwYzNCc1lYbE9ZVzFsSUh4OElHTjBiM0l1Ym1GdFpTa2dQVDA5SUZ3aVIyVnVaWEpoZEc5eVJuVnVZM1JwYjI1Y0lseHVJQ0FnSUNBZ09pQm1ZV3h6WlR0Y2JpQWdmVHRjYmx4dUlDQmxlSEJ2Y25SekxtMWhjbXNnUFNCbWRXNWpkR2x2YmloblpXNUdkVzRwSUh0Y2JpQWdJQ0JwWmlBb1QySnFaV04wTG5ObGRGQnliM1J2ZEhsd1pVOW1LU0I3WEc0Z0lDQWdJQ0JQWW1wbFkzUXVjMlYwVUhKdmRHOTBlWEJsVDJZb1oyVnVSblZ1TENCSFpXNWxjbUYwYjNKR2RXNWpkR2x2YmxCeWIzUnZkSGx3WlNrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR2RsYmtaMWJpNWZYM0J5YjNSdlgxOGdQU0JIWlc1bGNtRjBiM0pHZFc1amRHbHZibEJ5YjNSdmRIbHdaVHRjYmlBZ0lDQWdJR1JsWm1sdVpTaG5aVzVHZFc0c0lIUnZVM1J5YVc1blZHRm5VM2x0WW05c0xDQmNJa2RsYm1WeVlYUnZja1oxYm1OMGFXOXVYQ0lwTzF4dUlDQWdJSDFjYmlBZ0lDQm5aVzVHZFc0dWNISnZkRzkwZVhCbElEMGdUMkpxWldOMExtTnlaV0YwWlNoSGNDazdYRzRnSUNBZ2NtVjBkWEp1SUdkbGJrWjFianRjYmlBZ2ZUdGNibHh1SUNBdkx5QlhhWFJvYVc0Z2RHaGxJR0p2WkhrZ2IyWWdZVzU1SUdGemVXNWpJR1oxYm1OMGFXOXVMQ0JnWVhkaGFYUWdlR0FnYVhNZ2RISmhibk5tYjNKdFpXUWdkRzljYmlBZ0x5OGdZSGxwWld4a0lISmxaMlZ1WlhKaGRHOXlVblZ1ZEdsdFpTNWhkM0poY0NoNEtXQXNJSE52SUhSb1lYUWdkR2hsSUhKMWJuUnBiV1VnWTJGdUlIUmxjM1JjYmlBZ0x5OGdZR2hoYzA5M2JpNWpZV3hzS0haaGJIVmxMQ0JjSWw5ZllYZGhhWFJjSWlsZ0lIUnZJR1JsZEdWeWJXbHVaU0JwWmlCMGFHVWdlV2xsYkdSbFpDQjJZV3gxWlNCcGMxeHVJQ0F2THlCdFpXRnVkQ0IwYnlCaVpTQmhkMkZwZEdWa0xseHVJQ0JsZUhCdmNuUnpMbUYzY21Gd0lEMGdablZ1WTNScGIyNG9ZWEpuS1NCN1hHNGdJQ0FnY21WMGRYSnVJSHNnWDE5aGQyRnBkRG9nWVhKbklIMDdYRzRnSUgwN1hHNWNiaUFnWm5WdVkzUnBiMjRnUVhONWJtTkpkR1Z5WVhSdmNpaG5aVzVsY21GMGIzSXNJRkJ5YjIxcGMyVkpiWEJzS1NCN1hHNGdJQ0FnWm5WdVkzUnBiMjRnYVc1MmIydGxLRzFsZEdodlpDd2dZWEpuTENCeVpYTnZiSFpsTENCeVpXcGxZM1FwSUh0Y2JpQWdJQ0FnSUhaaGNpQnlaV052Y21RZ1BTQjBjbmxEWVhSamFDaG5aVzVsY21GMGIzSmJiV1YwYUc5a1hTd2daMlZ1WlhKaGRHOXlMQ0JoY21jcE8xeHVJQ0FnSUNBZ2FXWWdLSEpsWTI5eVpDNTBlWEJsSUQwOVBTQmNJblJvY205M1hDSXBJSHRjYmlBZ0lDQWdJQ0FnY21WcVpXTjBLSEpsWTI5eVpDNWhjbWNwTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnZG1GeUlISmxjM1ZzZENBOUlISmxZMjl5WkM1aGNtYzdYRzRnSUNBZ0lDQWdJSFpoY2lCMllXeDFaU0E5SUhKbGMzVnNkQzUyWVd4MVpUdGNiaUFnSUNBZ0lDQWdhV1lnS0haaGJIVmxJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ0lDQjBlWEJsYjJZZ2RtRnNkV1VnUFQwOUlGd2liMkpxWldOMFhDSWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lHaGhjMDkzYmk1allXeHNLSFpoYkhWbExDQmNJbDlmWVhkaGFYUmNJaWtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1VISnZiV2x6WlVsdGNHd3VjbVZ6YjJ4MlpTaDJZV3gxWlM1ZlgyRjNZV2wwS1M1MGFHVnVLR1oxYm1OMGFXOXVLSFpoYkhWbEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcGJuWnZhMlVvWENKdVpYaDBYQ0lzSUhaaGJIVmxMQ0J5WlhOdmJIWmxMQ0J5WldwbFkzUXBPMXh1SUNBZ0lDQWdJQ0FnSUgwc0lHWjFibU4wYVc5dUtHVnljaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhVzUyYjJ0bEtGd2lkR2h5YjNkY0lpd2daWEp5TENCeVpYTnZiSFpsTENCeVpXcGxZM1FwTzF4dUlDQWdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUZCeWIyMXBjMlZKYlhCc0xuSmxjMjlzZG1Vb2RtRnNkV1VwTG5Sb1pXNG9ablZ1WTNScGIyNG9kVzUzY21Gd2NHVmtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdWMmhsYmlCaElIbHBaV3hrWldRZ1VISnZiV2x6WlNCcGN5QnlaWE52YkhabFpDd2dhWFJ6SUdacGJtRnNJSFpoYkhWbElHSmxZMjl0WlhOY2JpQWdJQ0FnSUNBZ0lDQXZMeUIwYUdVZ0xuWmhiSFZsSUc5bUlIUm9aU0JRY205dGFYTmxQSHQyWVd4MVpTeGtiMjVsZlQ0Z2NtVnpkV3gwSUdadmNpQjBhR1ZjYmlBZ0lDQWdJQ0FnSUNBdkx5QmpkWEp5Wlc1MElHbDBaWEpoZEdsdmJpNWNiaUFnSUNBZ0lDQWdJQ0J5WlhOMWJIUXVkbUZzZFdVZ1BTQjFibmR5WVhCd1pXUTdYRzRnSUNBZ0lDQWdJQ0FnY21WemIyeDJaU2h5WlhOMWJIUXBPMXh1SUNBZ0lDQWdJQ0I5TENCbWRXNWpkR2x2YmlobGNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDOHZJRWxtSUdFZ2NtVnFaV04wWldRZ1VISnZiV2x6WlNCM1lYTWdlV2xsYkdSbFpDd2dkR2h5YjNjZ2RHaGxJSEpsYW1WamRHbHZiaUJpWVdOclhHNGdJQ0FnSUNBZ0lDQWdMeThnYVc1MGJ5QjBhR1VnWVhONWJtTWdaMlZ1WlhKaGRHOXlJR1oxYm1OMGFXOXVJSE52SUdsMElHTmhiaUJpWlNCb1lXNWtiR1ZrSUhSb1pYSmxMbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJwYm5admEyVW9YQ0owYUhKdmQxd2lMQ0JsY25KdmNpd2djbVZ6YjJ4MlpTd2djbVZxWldOMEtUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkbUZ5SUhCeVpYWnBiM1Z6VUhKdmJXbHpaVHRjYmx4dUlDQWdJR1oxYm1OMGFXOXVJR1Z1Y1hWbGRXVW9iV1YwYUc5a0xDQmhjbWNwSUh0Y2JpQWdJQ0FnSUdaMWJtTjBhVzl1SUdOaGJHeEpiblp2YTJWWGFYUm9UV1YwYUc5a1FXNWtRWEpuS0NrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRkJ5YjIxcGMyVkpiWEJzS0daMWJtTjBhVzl1S0hKbGMyOXNkbVVzSUhKbGFtVmpkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHbHVkbTlyWlNodFpYUm9iMlFzSUdGeVp5d2djbVZ6YjJ4MlpTd2djbVZxWldOMEtUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUhKbGRIVnliaUJ3Y21WMmFXOTFjMUJ5YjIxcGMyVWdQVnh1SUNBZ0lDQWdJQ0F2THlCSlppQmxibkYxWlhWbElHaGhjeUJpWldWdUlHTmhiR3hsWkNCaVpXWnZjbVVzSUhSb1pXNGdkMlVnZDJGdWRDQjBieUIzWVdsMElIVnVkR2xzWEc0Z0lDQWdJQ0FnSUM4dklHRnNiQ0J3Y21WMmFXOTFjeUJRY205dGFYTmxjeUJvWVhabElHSmxaVzRnY21WemIyeDJaV1FnWW1WbWIzSmxJR05oYkd4cGJtY2dhVzUyYjJ0bExGeHVJQ0FnSUNBZ0lDQXZMeUJ6YnlCMGFHRjBJSEpsYzNWc2RITWdZWEpsSUdGc2QyRjVjeUJrWld4cGRtVnlaV1FnYVc0Z2RHaGxJR052Y25KbFkzUWdiM0prWlhJdUlFbG1YRzRnSUNBZ0lDQWdJQzh2SUdWdWNYVmxkV1VnYUdGeklHNXZkQ0JpWldWdUlHTmhiR3hsWkNCaVpXWnZjbVVzSUhSb1pXNGdhWFFnYVhNZ2FXMXdiM0owWVc1MElIUnZYRzRnSUNBZ0lDQWdJQzh2SUdOaGJHd2dhVzUyYjJ0bElHbHRiV1ZrYVdGMFpXeDVMQ0IzYVhSb2IzVjBJSGRoYVhScGJtY2diMjRnWVNCallXeHNZbUZqYXlCMGJ5Qm1hWEpsTEZ4dUlDQWdJQ0FnSUNBdkx5QnpieUIwYUdGMElIUm9aU0JoYzNsdVl5Qm5aVzVsY21GMGIzSWdablZ1WTNScGIyNGdhR0Z6SUhSb1pTQnZjSEJ2Y25SMWJtbDBlU0IwYnlCa2IxeHVJQ0FnSUNBZ0lDQXZMeUJoYm5rZ2JtVmpaWE56WVhKNUlITmxkSFZ3SUdsdUlHRWdjSEpsWkdsamRHRmliR1VnZDJGNUxpQlVhR2x6SUhCeVpXUnBZM1JoWW1sc2FYUjVYRzRnSUNBZ0lDQWdJQzh2SUdseklIZG9lU0IwYUdVZ1VISnZiV2x6WlNCamIyNXpkSEoxWTNSdmNpQnplVzVqYUhKdmJtOTFjMng1SUdsdWRtOXJaWE1nYVhSelhHNGdJQ0FnSUNBZ0lDOHZJR1Y0WldOMWRHOXlJR05oYkd4aVlXTnJMQ0JoYm1RZ2QyaDVJR0Z6ZVc1aklHWjFibU4wYVc5dWN5QnplVzVqYUhKdmJtOTFjMng1WEc0Z0lDQWdJQ0FnSUM4dklHVjRaV04xZEdVZ1kyOWtaU0JpWldadmNtVWdkR2hsSUdacGNuTjBJR0YzWVdsMExpQlRhVzVqWlNCM1pTQnBiWEJzWlcxbGJuUWdjMmx0Y0d4bFhHNGdJQ0FnSUNBZ0lDOHZJR0Z6ZVc1aklHWjFibU4wYVc5dWN5QnBiaUIwWlhKdGN5QnZaaUJoYzNsdVl5Qm5aVzVsY21GMGIzSnpMQ0JwZENCcGN5QmxjM0JsWTJsaGJHeDVYRzRnSUNBZ0lDQWdJQzh2SUdsdGNHOXlkR0Z1ZENCMGJ5Qm5aWFFnZEdocGN5QnlhV2RvZEN3Z1pYWmxiaUIwYUc5MVoyZ2dhWFFnY21WeGRXbHlaWE1nWTJGeVpTNWNiaUFnSUNBZ0lDQWdjSEpsZG1sdmRYTlFjbTl0YVhObElEOGdjSEpsZG1sdmRYTlFjbTl0YVhObExuUm9aVzRvWEc0Z0lDQWdJQ0FnSUNBZ1kyRnNiRWx1ZG05clpWZHBkR2hOWlhSb2IyUkJibVJCY21jc1hHNGdJQ0FnSUNBZ0lDQWdMeThnUVhadmFXUWdjSEp2Y0dGbllYUnBibWNnWm1GcGJIVnlaWE1nZEc4Z1VISnZiV2x6WlhNZ2NtVjBkWEp1WldRZ1lua2diR0YwWlhKY2JpQWdJQ0FnSUNBZ0lDQXZMeUJwYm5adlkyRjBhVzl1Y3lCdlppQjBhR1VnYVhSbGNtRjBiM0l1WEc0Z0lDQWdJQ0FnSUNBZ1kyRnNiRWx1ZG05clpWZHBkR2hOWlhSb2IyUkJibVJCY21kY2JpQWdJQ0FnSUNBZ0tTQTZJR05oYkd4SmJuWnZhMlZYYVhSb1RXVjBhRzlrUVc1a1FYSm5LQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnUkdWbWFXNWxJSFJvWlNCMWJtbG1hV1ZrSUdobGJIQmxjaUJ0WlhSb2IyUWdkR2hoZENCcGN5QjFjMlZrSUhSdklHbHRjR3hsYldWdWRDQXVibVY0ZEN4Y2JpQWdJQ0F2THlBdWRHaHliM2NzSUdGdVpDQXVjbVYwZFhKdUlDaHpaV1VnWkdWbWFXNWxTWFJsY21GMGIzSk5aWFJvYjJSektTNWNiaUFnSUNCMGFHbHpMbDlwYm5admEyVWdQU0JsYm5GMVpYVmxPMXh1SUNCOVhHNWNiaUFnWkdWbWFXNWxTWFJsY21GMGIzSk5aWFJvYjJSektFRnplVzVqU1hSbGNtRjBiM0l1Y0hKdmRHOTBlWEJsS1R0Y2JpQWdRWE41Ym1OSmRHVnlZWFJ2Y2k1d2NtOTBiM1I1Y0dWYllYTjVibU5KZEdWeVlYUnZjbE41YldKdmJGMGdQU0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJSDA3WEc0Z0lHVjRjRzl5ZEhNdVFYTjVibU5KZEdWeVlYUnZjaUE5SUVGemVXNWpTWFJsY21GMGIzSTdYRzVjYmlBZ0x5OGdUbTkwWlNCMGFHRjBJSE5wYlhCc1pTQmhjM2x1WXlCbWRXNWpkR2x2Ym5NZ1lYSmxJR2x0Y0d4bGJXVnVkR1ZrSUc5dUlIUnZjQ0J2Wmx4dUlDQXZMeUJCYzNsdVkwbDBaWEpoZEc5eUlHOWlhbVZqZEhNN0lIUm9aWGtnYW5WemRDQnlaWFIxY200Z1lTQlFjbTl0YVhObElHWnZjaUIwYUdVZ2RtRnNkV1VnYjJaY2JpQWdMeThnZEdobElHWnBibUZzSUhKbGMzVnNkQ0J3Y205a2RXTmxaQ0JpZVNCMGFHVWdhWFJsY21GMGIzSXVYRzRnSUdWNGNHOXlkSE11WVhONWJtTWdQU0JtZFc1amRHbHZiaWhwYm01bGNrWnVMQ0J2ZFhSbGNrWnVMQ0J6Wld4bUxDQjBjbmxNYjJOelRHbHpkQ3dnVUhKdmJXbHpaVWx0Y0d3cElIdGNiaUFnSUNCcFppQW9VSEp2YldselpVbHRjR3dnUFQwOUlIWnZhV1FnTUNrZ1VISnZiV2x6WlVsdGNHd2dQU0JRY205dGFYTmxPMXh1WEc0Z0lDQWdkbUZ5SUdsMFpYSWdQU0J1WlhjZ1FYTjVibU5KZEdWeVlYUnZjaWhjYmlBZ0lDQWdJSGR5WVhBb2FXNXVaWEpHYml3Z2IzVjBaWEpHYml3Z2MyVnNaaXdnZEhKNVRHOWpjMHhwYzNRcExGeHVJQ0FnSUNBZ1VISnZiV2x6WlVsdGNHeGNiaUFnSUNBcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUdWNGNHOXlkSE11YVhOSFpXNWxjbUYwYjNKR2RXNWpkR2x2YmlodmRYUmxja1p1S1Z4dUlDQWdJQ0FnUHlCcGRHVnlJQzh2SUVsbUlHOTFkR1Z5Um00Z2FYTWdZU0JuWlc1bGNtRjBiM0lzSUhKbGRIVnliaUIwYUdVZ1puVnNiQ0JwZEdWeVlYUnZjaTVjYmlBZ0lDQWdJRG9nYVhSbGNpNXVaWGgwS0NrdWRHaGxiaWhtZFc1amRHbHZiaWh5WlhOMWJIUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemRXeDBMbVJ2Ym1VZ1B5QnlaWE4xYkhRdWRtRnNkV1VnT2lCcGRHVnlMbTVsZUhRb0tUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lIMDdYRzVjYmlBZ1puVnVZM1JwYjI0Z2JXRnJaVWx1ZG05clpVMWxkR2h2WkNocGJtNWxja1p1TENCelpXeG1MQ0JqYjI1MFpYaDBLU0I3WEc0Z0lDQWdkbUZ5SUhOMFlYUmxJRDBnUjJWdVUzUmhkR1ZUZFhOd1pXNWtaV1JUZEdGeWREdGNibHh1SUNBZ0lISmxkSFZ5YmlCbWRXNWpkR2x2YmlCcGJuWnZhMlVvYldWMGFHOWtMQ0JoY21jcElIdGNiaUFnSUNBZ0lHbG1JQ2h6ZEdGMFpTQTlQVDBnUjJWdVUzUmhkR1ZGZUdWamRYUnBibWNwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0Z3aVIyVnVaWEpoZEc5eUlHbHpJR0ZzY21WaFpIa2djblZ1Ym1sdVoxd2lLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnYVdZZ0tITjBZWFJsSUQwOVBTQkhaVzVUZEdGMFpVTnZiWEJzWlhSbFpDa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb2JXVjBhRzlrSUQwOVBTQmNJblJvY205M1hDSXBJSHRjYmlBZ0lDQWdJQ0FnSUNCMGFISnZkeUJoY21jN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0F2THlCQ1pTQm1iM0puYVhacGJtY3NJSEJsY2lBeU5TNHpMak11TXk0eklHOW1JSFJvWlNCemNHVmpPbHh1SUNBZ0lDQWdJQ0F2THlCb2RIUndjem92TDNCbGIzQnNaUzV0YjNwcGJHeGhMbTl5Wnk5K2FtOXlaVzVrYjNKbVppOWxjell0WkhKaFpuUXVhSFJ0YkNOelpXTXRaMlZ1WlhKaGRHOXljbVZ6ZFcxbFhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCa2IyNWxVbVZ6ZFd4MEtDazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR052Ym5SbGVIUXViV1YwYUc5a0lEMGdiV1YwYUc5a08xeHVJQ0FnSUNBZ1kyOXVkR1Y0ZEM1aGNtY2dQU0JoY21jN1hHNWNiaUFnSUNBZ0lIZG9hV3hsSUNoMGNuVmxLU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQmtaV3hsWjJGMFpTQTlJR052Ym5SbGVIUXVaR1ZzWldkaGRHVTdYRzRnSUNBZ0lDQWdJR2xtSUNoa1pXeGxaMkYwWlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFpoY2lCa1pXeGxaMkYwWlZKbGMzVnNkQ0E5SUcxaGVXSmxTVzUyYjJ0bFJHVnNaV2RoZEdVb1pHVnNaV2RoZEdVc0lHTnZiblJsZUhRcE8xeHVJQ0FnSUNBZ0lDQWdJR2xtSUNoa1pXeGxaMkYwWlZKbGMzVnNkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dSbGJHVm5ZWFJsVW1WemRXeDBJRDA5UFNCRGIyNTBhVzUxWlZObGJuUnBibVZzS1NCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmtaV3hsWjJGMFpWSmxjM1ZzZER0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCcFppQW9ZMjl1ZEdWNGRDNXRaWFJvYjJRZ1BUMDlJRndpYm1WNGRGd2lLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdVMlYwZEdsdVp5QmpiMjUwWlhoMExsOXpaVzUwSUdadmNpQnNaV2RoWTNrZ2MzVndjRzl5ZENCdlppQkNZV0psYkNkelhHNGdJQ0FnSUNBZ0lDQWdMeThnWm5WdVkzUnBiMjR1YzJWdWRDQnBiWEJzWlcxbGJuUmhkR2x2Ymk1Y2JpQWdJQ0FnSUNBZ0lDQmpiMjUwWlhoMExuTmxiblFnUFNCamIyNTBaWGgwTGw5elpXNTBJRDBnWTI5dWRHVjRkQzVoY21jN1hHNWNiaUFnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hqYjI1MFpYaDBMbTFsZEdodlpDQTlQVDBnWENKMGFISnZkMXdpS1NCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0hOMFlYUmxJRDA5UFNCSFpXNVRkR0YwWlZOMWMzQmxibVJsWkZOMFlYSjBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpkR0YwWlNBOUlFZGxibE4wWVhSbFEyOXRjR3hsZEdWa08xeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dZMjl1ZEdWNGRDNWhjbWM3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQ0FnWTI5dWRHVjRkQzVrYVhOd1lYUmphRVY0WTJWd2RHbHZiaWhqYjI1MFpYaDBMbUZ5WnlrN1hHNWNiaUFnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hqYjI1MFpYaDBMbTFsZEdodlpDQTlQVDBnWENKeVpYUjFjbTVjSWlrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5SbGVIUXVZV0p5ZFhCMEtGd2ljbVYwZFhKdVhDSXNJR052Ym5SbGVIUXVZWEpuS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSE4wWVhSbElEMGdSMlZ1VTNSaGRHVkZlR1ZqZFhScGJtYzdYRzVjYmlBZ0lDQWdJQ0FnZG1GeUlISmxZMjl5WkNBOUlIUnllVU5oZEdOb0tHbHVibVZ5Um00c0lITmxiR1lzSUdOdmJuUmxlSFFwTzF4dUlDQWdJQ0FnSUNCcFppQW9jbVZqYjNKa0xuUjVjR1VnUFQwOUlGd2libTl5YldGc1hDSXBJSHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QkpaaUJoYmlCbGVHTmxjSFJwYjI0Z2FYTWdkR2h5YjNkdUlHWnliMjBnYVc1dVpYSkdiaXdnZDJVZ2JHVmhkbVVnYzNSaGRHVWdQVDA5WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdSMlZ1VTNSaGRHVkZlR1ZqZFhScGJtY2dZVzVrSUd4dmIzQWdZbUZqYXlCbWIzSWdZVzV2ZEdobGNpQnBiblp2WTJGMGFXOXVMbHh1SUNBZ0lDQWdJQ0FnSUhOMFlYUmxJRDBnWTI5dWRHVjRkQzVrYjI1bFhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUVkbGJsTjBZWFJsUTI5dGNHeGxkR1ZrWEc0Z0lDQWdJQ0FnSUNBZ0lDQTZJRWRsYmxOMFlYUmxVM1Z6Y0dWdVpHVmtXV2xsYkdRN1hHNWNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2NtVmpiM0prTG1GeVp5QTlQVDBnUTI5dWRHbHVkV1ZUWlc1MGFXNWxiQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxPaUJ5WldOdmNtUXVZWEpuTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaRzl1WlRvZ1kyOXVkR1Y0ZEM1a2IyNWxYRzRnSUNBZ0lDQWdJQ0FnZlR0Y2JseHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLSEpsWTI5eVpDNTBlWEJsSUQwOVBTQmNJblJvY205M1hDSXBJSHRjYmlBZ0lDQWdJQ0FnSUNCemRHRjBaU0E5SUVkbGJsTjBZWFJsUTI5dGNHeGxkR1ZrTzF4dUlDQWdJQ0FnSUNBZ0lDOHZJRVJwYzNCaGRHTm9JSFJvWlNCbGVHTmxjSFJwYjI0Z1lua2diRzl2Y0dsdVp5QmlZV05ySUdGeWIzVnVaQ0IwYnlCMGFHVmNiaUFnSUNBZ0lDQWdJQ0F2THlCamIyNTBaWGgwTG1ScGMzQmhkR05vUlhoalpYQjBhVzl1S0dOdmJuUmxlSFF1WVhKbktTQmpZV3hzSUdGaWIzWmxMbHh1SUNBZ0lDQWdJQ0FnSUdOdmJuUmxlSFF1YldWMGFHOWtJRDBnWENKMGFISnZkMXdpTzF4dUlDQWdJQ0FnSUNBZ0lHTnZiblJsZUhRdVlYSm5JRDBnY21WamIzSmtMbUZ5Wnp0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwN1hHNGdJSDFjYmx4dUlDQXZMeUJEWVd4c0lHUmxiR1ZuWVhSbExtbDBaWEpoZEc5eVcyTnZiblJsZUhRdWJXVjBhRzlrWFNoamIyNTBaWGgwTG1GeVp5a2dZVzVrSUdoaGJtUnNaU0IwYUdWY2JpQWdMeThnY21WemRXeDBMQ0JsYVhSb1pYSWdZbmtnY21WMGRYSnVhVzVuSUdFZ2V5QjJZV3gxWlN3Z1pHOXVaU0I5SUhKbGMzVnNkQ0JtY205dElIUm9aVnh1SUNBdkx5QmtaV3hsWjJGMFpTQnBkR1Z5WVhSdmNpd2diM0lnWW5rZ2JXOWthV1o1YVc1bklHTnZiblJsZUhRdWJXVjBhRzlrSUdGdVpDQmpiMjUwWlhoMExtRnlaeXhjYmlBZ0x5OGdjMlYwZEdsdVp5QmpiMjUwWlhoMExtUmxiR1ZuWVhSbElIUnZJRzUxYkd3c0lHRnVaQ0J5WlhSMWNtNXBibWNnZEdobElFTnZiblJwYm5WbFUyVnVkR2x1Wld3dVhHNGdJR1oxYm1OMGFXOXVJRzFoZVdKbFNXNTJiMnRsUkdWc1pXZGhkR1VvWkdWc1pXZGhkR1VzSUdOdmJuUmxlSFFwSUh0Y2JpQWdJQ0IyWVhJZ2JXVjBhRzlrSUQwZ1pHVnNaV2RoZEdVdWFYUmxjbUYwYjNKYlkyOXVkR1Y0ZEM1dFpYUm9iMlJkTzF4dUlDQWdJR2xtSUNodFpYUm9iMlFnUFQwOUlIVnVaR1ZtYVc1bFpDa2dlMXh1SUNBZ0lDQWdMeThnUVNBdWRHaHliM2NnYjNJZ0xuSmxkSFZ5YmlCM2FHVnVJSFJvWlNCa1pXeGxaMkYwWlNCcGRHVnlZWFJ2Y2lCb1lYTWdibThnTG5Sb2NtOTNYRzRnSUNBZ0lDQXZMeUJ0WlhSb2IyUWdZV3gzWVhseklIUmxjbTFwYm1GMFpYTWdkR2hsSUhscFpXeGtLaUJzYjI5d0xseHVJQ0FnSUNBZ1kyOXVkR1Y0ZEM1a1pXeGxaMkYwWlNBOUlHNTFiR3c3WEc1Y2JpQWdJQ0FnSUdsbUlDaGpiMjUwWlhoMExtMWxkR2h2WkNBOVBUMGdYQ0owYUhKdmQxd2lLU0I3WEc0Z0lDQWdJQ0FnSUM4dklFNXZkR1U2SUZ0Y0luSmxkSFZ5Ymx3aVhTQnRkWE4wSUdKbElIVnpaV1FnWm05eUlFVlRNeUJ3WVhKemFXNW5JR052YlhCaGRHbGlhV3hwZEhrdVhHNGdJQ0FnSUNBZ0lHbG1JQ2hrWld4bFoyRjBaUzVwZEdWeVlYUnZjbHRjSW5KbGRIVnlibHdpWFNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQzh2SUVsbUlIUm9aU0JrWld4bFoyRjBaU0JwZEdWeVlYUnZjaUJvWVhNZ1lTQnlaWFIxY200Z2JXVjBhRzlrTENCbmFYWmxJR2wwSUdGY2JpQWdJQ0FnSUNBZ0lDQXZMeUJqYUdGdVkyVWdkRzhnWTJ4bFlXNGdkWEF1WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVkR1Y0ZEM1dFpYUm9iMlFnUFNCY0luSmxkSFZ5Ymx3aU8xeHVJQ0FnSUNBZ0lDQWdJR052Ym5SbGVIUXVZWEpuSUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ0lDQWdJRzFoZVdKbFNXNTJiMnRsUkdWc1pXZGhkR1VvWkdWc1pXZGhkR1VzSUdOdmJuUmxlSFFwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dOdmJuUmxlSFF1YldWMGFHOWtJRDA5UFNCY0luUm9jbTkzWENJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUM4dklFbG1JRzFoZVdKbFNXNTJiMnRsUkdWc1pXZGhkR1VvWTI5dWRHVjRkQ2tnWTJoaGJtZGxaQ0JqYjI1MFpYaDBMbTFsZEdodlpDQm1jbTl0WEc0Z0lDQWdJQ0FnSUNBZ0lDQXZMeUJjSW5KbGRIVnlibHdpSUhSdklGd2lkR2h5YjNkY0lpd2diR1YwSUhSb1lYUWdiM1psY25KcFpHVWdkR2hsSUZSNWNHVkZjbkp2Y2lCaVpXeHZkeTVjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCRGIyNTBhVzUxWlZObGJuUnBibVZzTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUdOdmJuUmxlSFF1YldWMGFHOWtJRDBnWENKMGFISnZkMXdpTzF4dUlDQWdJQ0FnSUNCamIyNTBaWGgwTG1GeVp5QTlJRzVsZHlCVWVYQmxSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdYQ0pVYUdVZ2FYUmxjbUYwYjNJZ1pHOWxjeUJ1YjNRZ2NISnZkbWxrWlNCaElDZDBhSEp2ZHljZ2JXVjBhRzlrWENJcE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnlaWFIxY200Z1EyOXVkR2x1ZFdWVFpXNTBhVzVsYkR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IyWVhJZ2NtVmpiM0prSUQwZ2RISjVRMkYwWTJnb2JXVjBhRzlrTENCa1pXeGxaMkYwWlM1cGRHVnlZWFJ2Y2l3Z1kyOXVkR1Y0ZEM1aGNtY3BPMXh1WEc0Z0lDQWdhV1lnS0hKbFkyOXlaQzUwZVhCbElEMDlQU0JjSW5Sb2NtOTNYQ0lwSUh0Y2JpQWdJQ0FnSUdOdmJuUmxlSFF1YldWMGFHOWtJRDBnWENKMGFISnZkMXdpTzF4dUlDQWdJQ0FnWTI5dWRHVjRkQzVoY21jZ1BTQnlaV052Y21RdVlYSm5PMXh1SUNBZ0lDQWdZMjl1ZEdWNGRDNWtaV3hsWjJGMFpTQTlJRzUxYkd3N1hHNGdJQ0FnSUNCeVpYUjFjbTRnUTI5dWRHbHVkV1ZUWlc1MGFXNWxiRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjJZWElnYVc1bWJ5QTlJSEpsWTI5eVpDNWhjbWM3WEc1Y2JpQWdJQ0JwWmlBb0lTQnBibVp2S1NCN1hHNGdJQ0FnSUNCamIyNTBaWGgwTG0xbGRHaHZaQ0E5SUZ3aWRHaHliM2RjSWp0Y2JpQWdJQ0FnSUdOdmJuUmxlSFF1WVhKbklEMGdibVYzSUZSNWNHVkZjbkp2Y2loY0ltbDBaWEpoZEc5eUlISmxjM1ZzZENCcGN5QnViM1FnWVc0Z2IySnFaV04wWENJcE8xeHVJQ0FnSUNBZ1kyOXVkR1Y0ZEM1a1pXeGxaMkYwWlNBOUlHNTFiR3c3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdRMjl1ZEdsdWRXVlRaVzUwYVc1bGJEdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9hVzVtYnk1a2IyNWxLU0I3WEc0Z0lDQWdJQ0F2THlCQmMzTnBaMjRnZEdobElISmxjM1ZzZENCdlppQjBhR1VnWm1sdWFYTm9aV1FnWkdWc1pXZGhkR1VnZEc4Z2RHaGxJSFJsYlhCdmNtRnllVnh1SUNBZ0lDQWdMeThnZG1GeWFXRmliR1VnYzNCbFkybG1hV1ZrSUdKNUlHUmxiR1ZuWVhSbExuSmxjM1ZzZEU1aGJXVWdLSE5sWlNCa1pXeGxaMkYwWlZscFpXeGtLUzVjYmlBZ0lDQWdJR052Ym5SbGVIUmJaR1ZzWldkaGRHVXVjbVZ6ZFd4MFRtRnRaVjBnUFNCcGJtWnZMblpoYkhWbE8xeHVYRzRnSUNBZ0lDQXZMeUJTWlhOMWJXVWdaWGhsWTNWMGFXOXVJR0YwSUhSb1pTQmtaWE5wY21Wa0lHeHZZMkYwYVc5dUlDaHpaV1VnWkdWc1pXZGhkR1ZaYVdWc1pDa3VYRzRnSUNBZ0lDQmpiMjUwWlhoMExtNWxlSFFnUFNCa1pXeGxaMkYwWlM1dVpYaDBURzlqTzF4dVhHNGdJQ0FnSUNBdkx5QkpaaUJqYjI1MFpYaDBMbTFsZEdodlpDQjNZWE1nWENKMGFISnZkMXdpSUdKMWRDQjBhR1VnWkdWc1pXZGhkR1VnYUdGdVpHeGxaQ0IwYUdWY2JpQWdJQ0FnSUM4dklHVjRZMlZ3ZEdsdmJpd2diR1YwSUhSb1pTQnZkWFJsY2lCblpXNWxjbUYwYjNJZ2NISnZZMlZsWkNCdWIzSnRZV3hzZVM0Z1NXWmNiaUFnSUNBZ0lDOHZJR052Ym5SbGVIUXViV1YwYUc5a0lIZGhjeUJjSW01bGVIUmNJaXdnWm05eVoyVjBJR052Ym5SbGVIUXVZWEpuSUhOcGJtTmxJR2wwSUdoaGN5QmlaV1Z1WEc0Z0lDQWdJQ0F2THlCY0ltTnZibk4xYldWa1hDSWdZbmtnZEdobElHUmxiR1ZuWVhSbElHbDBaWEpoZEc5eUxpQkpaaUJqYjI1MFpYaDBMbTFsZEdodlpDQjNZWE5jYmlBZ0lDQWdJQzh2SUZ3aWNtVjBkWEp1WENJc0lHRnNiRzkzSUhSb1pTQnZjbWxuYVc1aGJDQXVjbVYwZFhKdUlHTmhiR3dnZEc4Z1kyOXVkR2x1ZFdVZ2FXNGdkR2hsWEc0Z0lDQWdJQ0F2THlCdmRYUmxjaUJuWlc1bGNtRjBiM0l1WEc0Z0lDQWdJQ0JwWmlBb1kyOXVkR1Y0ZEM1dFpYUm9iMlFnSVQwOUlGd2ljbVYwZFhKdVhDSXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWRHVjRkQzV0WlhSb2IyUWdQU0JjSW01bGVIUmNJanRjYmlBZ0lDQWdJQ0FnWTI5dWRHVjRkQzVoY21jZ1BTQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0x5OGdVbVV0ZVdsbGJHUWdkR2hsSUhKbGMzVnNkQ0J5WlhSMWNtNWxaQ0JpZVNCMGFHVWdaR1ZzWldkaGRHVWdiV1YwYUc5a0xseHVJQ0FnSUNBZ2NtVjBkWEp1SUdsdVptODdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdWR2hsSUdSbGJHVm5ZWFJsSUdsMFpYSmhkRzl5SUdseklHWnBibWx6YUdWa0xDQnpieUJtYjNKblpYUWdhWFFnWVc1a0lHTnZiblJwYm5WbElIZHBkR2hjYmlBZ0lDQXZMeUIwYUdVZ2IzVjBaWElnWjJWdVpYSmhkRzl5TGx4dUlDQWdJR052Ym5SbGVIUXVaR1ZzWldkaGRHVWdQU0J1ZFd4c08xeHVJQ0FnSUhKbGRIVnliaUJEYjI1MGFXNTFaVk5sYm5ScGJtVnNPMXh1SUNCOVhHNWNiaUFnTHk4Z1JHVm1hVzVsSUVkbGJtVnlZWFJ2Y2k1d2NtOTBiM1I1Y0dVdWUyNWxlSFFzZEdoeWIzY3NjbVYwZFhKdWZTQnBiaUIwWlhKdGN5QnZaaUIwYUdWY2JpQWdMeThnZFc1cFptbGxaQ0F1WDJsdWRtOXJaU0JvWld4d1pYSWdiV1YwYUc5a0xseHVJQ0JrWldacGJtVkpkR1Z5WVhSdmNrMWxkR2h2WkhNb1IzQXBPMXh1WEc0Z0lHUmxabWx1WlNoSGNDd2dkRzlUZEhKcGJtZFVZV2RUZVcxaWIyd3NJRndpUjJWdVpYSmhkRzl5WENJcE8xeHVYRzRnSUM4dklFRWdSMlZ1WlhKaGRHOXlJSE5vYjNWc1pDQmhiSGRoZVhNZ2NtVjBkWEp1SUdsMGMyVnNaaUJoY3lCMGFHVWdhWFJsY21GMGIzSWdiMkpxWldOMElIZG9aVzRnZEdobFhHNGdJQzh2SUVCQWFYUmxjbUYwYjNJZ1puVnVZM1JwYjI0Z2FYTWdZMkZzYkdWa0lHOXVJR2wwTGlCVGIyMWxJR0p5YjNkelpYSnpKeUJwYlhCc1pXMWxiblJoZEdsdmJuTWdiMllnZEdobFhHNGdJQzh2SUdsMFpYSmhkRzl5SUhCeWIzUnZkSGx3WlNCamFHRnBiaUJwYm1OdmNuSmxZM1JzZVNCcGJYQnNaVzFsYm5RZ2RHaHBjeXdnWTJGMWMybHVaeUIwYUdVZ1IyVnVaWEpoZEc5eVhHNGdJQzh2SUc5aWFtVmpkQ0IwYnlCdWIzUWdZbVVnY21WMGRYSnVaV1FnWm5KdmJTQjBhR2x6SUdOaGJHd3VJRlJvYVhNZ1pXNXpkWEpsY3lCMGFHRjBJR1J2WlhOdUozUWdhR0Z3Y0dWdUxseHVJQ0F2THlCVFpXVWdhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMlpoWTJWaWIyOXJMM0psWjJWdVpYSmhkRzl5TDJsemMzVmxjeTh5TnpRZ1ptOXlJRzF2Y21VZ1pHVjBZV2xzY3k1Y2JpQWdSM0JiYVhSbGNtRjBiM0pUZVcxaWIyeGRJRDBnWm5WdVkzUnBiMjRvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNN1hHNGdJSDA3WEc1Y2JpQWdSM0F1ZEc5VGRISnBibWNnUFNCbWRXNWpkR2x2YmlncElIdGNiaUFnSUNCeVpYUjFjbTRnWENKYmIySnFaV04wSUVkbGJtVnlZWFJ2Y2wxY0lqdGNiaUFnZlR0Y2JseHVJQ0JtZFc1amRHbHZiaUJ3ZFhOb1ZISjVSVzUwY25rb2JHOWpjeWtnZTF4dUlDQWdJSFpoY2lCbGJuUnllU0E5SUhzZ2RISjVURzlqT2lCc2IyTnpXekJkSUgwN1hHNWNiaUFnSUNCcFppQW9NU0JwYmlCc2IyTnpLU0I3WEc0Z0lDQWdJQ0JsYm5SeWVTNWpZWFJqYUV4dll5QTlJR3h2WTNOYk1WMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLRElnYVc0Z2JHOWpjeWtnZTF4dUlDQWdJQ0FnWlc1MGNua3VabWx1WVd4c2VVeHZZeUE5SUd4dlkzTmJNbDA3WEc0Z0lDQWdJQ0JsYm5SeWVTNWhablJsY2t4dll5QTlJR3h2WTNOYk0xMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTUwY25sRmJuUnlhV1Z6TG5CMWMyZ29aVzUwY25rcE8xeHVJQ0I5WEc1Y2JpQWdablZ1WTNScGIyNGdjbVZ6WlhSVWNubEZiblJ5ZVNobGJuUnllU2tnZTF4dUlDQWdJSFpoY2lCeVpXTnZjbVFnUFNCbGJuUnllUzVqYjIxd2JHVjBhVzl1SUh4OElIdDlPMXh1SUNBZ0lISmxZMjl5WkM1MGVYQmxJRDBnWENKdWIzSnRZV3hjSWp0Y2JpQWdJQ0JrWld4bGRHVWdjbVZqYjNKa0xtRnlaenRjYmlBZ0lDQmxiblJ5ZVM1amIyMXdiR1YwYVc5dUlEMGdjbVZqYjNKa08xeHVJQ0I5WEc1Y2JpQWdablZ1WTNScGIyNGdRMjl1ZEdWNGRDaDBjbmxNYjJOelRHbHpkQ2tnZTF4dUlDQWdJQzh2SUZSb1pTQnliMjkwSUdWdWRISjVJRzlpYW1WamRDQW9aV1ptWldOMGFYWmxiSGtnWVNCMGNua2djM1JoZEdWdFpXNTBJSGRwZEdodmRYUWdZU0JqWVhSamFGeHVJQ0FnSUM4dklHOXlJR0VnWm1sdVlXeHNlU0JpYkc5amF5a2daMmwyWlhNZ2RYTWdZU0J3YkdGalpTQjBieUJ6ZEc5eVpTQjJZV3gxWlhNZ2RHaHliM2R1SUdaeWIyMWNiaUFnSUNBdkx5QnNiMk5oZEdsdmJuTWdkMmhsY21VZ2RHaGxjbVVnYVhNZ2JtOGdaVzVqYkc5emFXNW5JSFJ5ZVNCemRHRjBaVzFsYm5RdVhHNGdJQ0FnZEdocGN5NTBjbmxGYm5SeWFXVnpJRDBnVzNzZ2RISjVURzlqT2lCY0luSnZiM1JjSWlCOVhUdGNiaUFnSUNCMGNubE1iMk56VEdsemRDNW1iM0pGWVdOb0tIQjFjMmhVY25sRmJuUnllU3dnZEdocGN5azdYRzRnSUNBZ2RHaHBjeTV5WlhObGRDaDBjblZsS1R0Y2JpQWdmVnh1WEc0Z0lHVjRjRzl5ZEhNdWEyVjVjeUE5SUdaMWJtTjBhVzl1S0c5aWFtVmpkQ2tnZTF4dUlDQWdJSFpoY2lCclpYbHpJRDBnVzEwN1hHNGdJQ0FnWm05eUlDaDJZWElnYTJWNUlHbHVJRzlpYW1WamRDa2dlMXh1SUNBZ0lDQWdhMlY1Y3k1d2RYTm9LR3RsZVNrN1hHNGdJQ0FnZlZ4dUlDQWdJR3RsZVhNdWNtVjJaWEp6WlNncE8xeHVYRzRnSUNBZ0x5OGdVbUYwYUdWeUlIUm9ZVzRnY21WMGRYSnVhVzVuSUdGdUlHOWlhbVZqZENCM2FYUm9JR0VnYm1WNGRDQnRaWFJvYjJRc0lIZGxJR3RsWlhCY2JpQWdJQ0F2THlCMGFHbHVaM01nYzJsdGNHeGxJR0Z1WkNCeVpYUjFjbTRnZEdobElHNWxlSFFnWm5WdVkzUnBiMjRnYVhSelpXeG1MbHh1SUNBZ0lISmxkSFZ5YmlCbWRXNWpkR2x2YmlCdVpYaDBLQ2tnZTF4dUlDQWdJQ0FnZDJocGJHVWdLR3RsZVhNdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lIWmhjaUJyWlhrZ1BTQnJaWGx6TG5CdmNDZ3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb2EyVjVJR2x1SUc5aWFtVmpkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHNWxlSFF1ZG1Gc2RXVWdQU0JyWlhrN1hHNGdJQ0FnSUNBZ0lDQWdibVY0ZEM1a2IyNWxJRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZUhRN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdMeThnVkc4Z1lYWnZhV1FnWTNKbFlYUnBibWNnWVc0Z1lXUmthWFJwYjI1aGJDQnZZbXBsWTNRc0lIZGxJR3AxYzNRZ2FHRnVaeUIwYUdVZ0xuWmhiSFZsWEc0Z0lDQWdJQ0F2THlCaGJtUWdMbVJ2Ym1VZ2NISnZjR1Z5ZEdsbGN5QnZabVlnZEdobElHNWxlSFFnWm5WdVkzUnBiMjRnYjJKcVpXTjBJR2wwYzJWc1ppNGdWR2hwYzF4dUlDQWdJQ0FnTHk4Z1lXeHpieUJsYm5OMWNtVnpJSFJvWVhRZ2RHaGxJRzFwYm1sbWFXVnlJSGRwYkd3Z2JtOTBJR0Z1YjI1NWJXbDZaU0IwYUdVZ1puVnVZM1JwYjI0dVhHNGdJQ0FnSUNCdVpYaDBMbVJ2Ym1VZ1BTQjBjblZsTzF4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZUhRN1hHNGdJQ0FnZlR0Y2JpQWdmVHRjYmx4dUlDQm1kVzVqZEdsdmJpQjJZV3gxWlhNb2FYUmxjbUZpYkdVcElIdGNiaUFnSUNCcFppQW9hWFJsY21GaWJHVXBJSHRjYmlBZ0lDQWdJSFpoY2lCcGRHVnlZWFJ2Y2sxbGRHaHZaQ0E5SUdsMFpYSmhZbXhsVzJsMFpYSmhkRzl5VTNsdFltOXNYVHRjYmlBZ0lDQWdJR2xtSUNocGRHVnlZWFJ2Y2sxbGRHaHZaQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYVhSbGNtRjBiM0pOWlhSb2IyUXVZMkZzYkNocGRHVnlZV0pzWlNrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdhWFJsY21GaWJHVXVibVY0ZENBOVBUMGdYQ0ptZFc1amRHbHZibHdpS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCcGRHVnlZV0pzWlR0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2FXWWdLQ0ZwYzA1aFRpaHBkR1Z5WVdKc1pTNXNaVzVuZEdncEtTQjdYRzRnSUNBZ0lDQWdJSFpoY2lCcElEMGdMVEVzSUc1bGVIUWdQU0JtZFc1amRHbHZiaUJ1WlhoMEtDa2dlMXh1SUNBZ0lDQWdJQ0FnSUhkb2FXeGxJQ2dySzJrZ1BDQnBkR1Z5WVdKc1pTNXNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaG9ZWE5QZDI0dVkyRnNiQ2hwZEdWeVlXSnNaU3dnYVNrcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2JtVjRkQzUyWVd4MVpTQTlJR2wwWlhKaFlteGxXMmxkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J1WlhoMExtUnZibVVnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHNWxlSFE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdibVY0ZEM1MllXeDFaU0E5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUNBZ0lDQnVaWGgwTG1SdmJtVWdQU0IwY25WbE8xeHVYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZUhRN1hHNGdJQ0FnSUNBZ0lIMDdYRzVjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzVsZUhRdWJtVjRkQ0E5SUc1bGVIUTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdVbVYwZFhKdUlHRnVJR2wwWlhKaGRHOXlJSGRwZEdnZ2JtOGdkbUZzZFdWekxseHVJQ0FnSUhKbGRIVnliaUI3SUc1bGVIUTZJR1J2Ym1WU1pYTjFiSFFnZlR0Y2JpQWdmVnh1SUNCbGVIQnZjblJ6TG5aaGJIVmxjeUE5SUhaaGJIVmxjenRjYmx4dUlDQm1kVzVqZEdsdmJpQmtiMjVsVW1WemRXeDBLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjdJSFpoYkhWbE9pQjFibVJsWm1sdVpXUXNJR1J2Ym1VNklIUnlkV1VnZlR0Y2JpQWdmVnh1WEc0Z0lFTnZiblJsZUhRdWNISnZkRzkwZVhCbElEMGdlMXh1SUNBZ0lHTnZibk4wY25WamRHOXlPaUJEYjI1MFpYaDBMRnh1WEc0Z0lDQWdjbVZ6WlhRNklHWjFibU4wYVc5dUtITnJhWEJVWlcxd1VtVnpaWFFwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjSEpsZGlBOUlEQTdYRzRnSUNBZ0lDQjBhR2x6TG01bGVIUWdQU0F3TzF4dUlDQWdJQ0FnTHk4Z1VtVnpaWFIwYVc1bklHTnZiblJsZUhRdVgzTmxiblFnWm05eUlHeGxaMkZqZVNCemRYQndiM0owSUc5bUlFSmhZbVZzSjNOY2JpQWdJQ0FnSUM4dklHWjFibU4wYVc5dUxuTmxiblFnYVcxd2JHVnRaVzUwWVhScGIyNHVYRzRnSUNBZ0lDQjBhR2x6TG5ObGJuUWdQU0IwYUdsekxsOXpaVzUwSUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ2RHaHBjeTVrYjI1bElEMGdabUZzYzJVN1hHNGdJQ0FnSUNCMGFHbHpMbVJsYkdWbllYUmxJRDBnYm5Wc2JEdGNibHh1SUNBZ0lDQWdkR2hwY3k1dFpYUm9iMlFnUFNCY0ltNWxlSFJjSWp0Y2JpQWdJQ0FnSUhSb2FYTXVZWEpuSUQwZ2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ0lDQjBhR2x6TG5SeWVVVnVkSEpwWlhNdVptOXlSV0ZqYUNoeVpYTmxkRlJ5ZVVWdWRISjVLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tDRnphMmx3VkdWdGNGSmxjMlYwS1NCN1hHNGdJQ0FnSUNBZ0lHWnZjaUFvZG1GeUlHNWhiV1VnYVc0Z2RHaHBjeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDOHZJRTV2ZENCemRYSmxJR0ZpYjNWMElIUm9aU0J2Y0hScGJXRnNJRzl5WkdWeUlHOW1JSFJvWlhObElHTnZibVJwZEdsdmJuTTZYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHNWhiV1V1WTJoaGNrRjBLREFwSUQwOVBTQmNJblJjSWlBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCb1lYTlBkMjR1WTJGc2JDaDBhR2x6TENCdVlXMWxLU0FtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FoYVhOT1lVNG9LMjVoYldVdWMyeHBZMlVvTVNrcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFHbHpXMjVoYldWZElEMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwc1hHNWNiaUFnSUNCemRHOXdPaUJtZFc1amRHbHZiaWdwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVaRzl1WlNBOUlIUnlkV1U3WEc1Y2JpQWdJQ0FnSUhaaGNpQnliMjkwUlc1MGNua2dQU0IwYUdsekxuUnllVVZ1ZEhKcFpYTmJNRjA3WEc0Z0lDQWdJQ0IyWVhJZ2NtOXZkRkpsWTI5eVpDQTlJSEp2YjNSRmJuUnllUzVqYjIxd2JHVjBhVzl1TzF4dUlDQWdJQ0FnYVdZZ0tISnZiM1JTWldOdmNtUXVkSGx3WlNBOVBUMGdYQ0owYUhKdmQxd2lLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJSEp2YjNSU1pXTnZjbVF1WVhKbk8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV5ZG1Gc08xeHVJQ0FnSUgwc1hHNWNiaUFnSUNCa2FYTndZWFJqYUVWNFkyVndkR2x2YmpvZ1puVnVZM1JwYjI0b1pYaGpaWEIwYVc5dUtTQjdYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NWtiMjVsS1NCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUdWNFkyVndkR2x2Ymp0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2RtRnlJR052Ym5SbGVIUWdQU0IwYUdsek8xeHVJQ0FnSUNBZ1puVnVZM1JwYjI0Z2FHRnVaR3hsS0d4dll5d2dZMkYxWjJoMEtTQjdYRzRnSUNBZ0lDQWdJSEpsWTI5eVpDNTBlWEJsSUQwZ1hDSjBhSEp2ZDF3aU8xeHVJQ0FnSUNBZ0lDQnlaV052Y21RdVlYSm5JRDBnWlhoalpYQjBhVzl1TzF4dUlDQWdJQ0FnSUNCamIyNTBaWGgwTG01bGVIUWdQU0JzYjJNN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0dOaGRXZG9kQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDOHZJRWxtSUhSb1pTQmthWE53WVhSamFHVmtJR1Y0WTJWd2RHbHZiaUIzWVhNZ1kyRjFaMmgwSUdKNUlHRWdZMkYwWTJnZ1lteHZZMnNzWEc0Z0lDQWdJQ0FnSUNBZ0x5OGdkR2hsYmlCc1pYUWdkR2hoZENCallYUmphQ0JpYkc5amF5Qm9ZVzVrYkdVZ2RHaGxJR1Y0WTJWd2RHbHZiaUJ1YjNKdFlXeHNlUzVjYmlBZ0lDQWdJQ0FnSUNCamIyNTBaWGgwTG0xbGRHaHZaQ0E5SUZ3aWJtVjRkRndpTzF4dUlDQWdJQ0FnSUNBZ0lHTnZiblJsZUhRdVlYSm5JRDBnZFc1a1pXWnBibVZrTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDRWhJR05oZFdkb2REdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdabTl5SUNoMllYSWdhU0E5SUhSb2FYTXVkSEo1Ulc1MGNtbGxjeTVzWlc1bmRHZ2dMU0F4T3lCcElENDlJREE3SUMwdGFTa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ1pXNTBjbmtnUFNCMGFHbHpMblJ5ZVVWdWRISnBaWE5iYVYwN1hHNGdJQ0FnSUNBZ0lIWmhjaUJ5WldOdmNtUWdQU0JsYm5SeWVTNWpiMjF3YkdWMGFXOXVPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaGxiblJ5ZVM1MGNubE1iMk1nUFQwOUlGd2ljbTl2ZEZ3aUtTQjdYRzRnSUNBZ0lDQWdJQ0FnTHk4Z1JYaGpaWEIwYVc5dUlIUm9jbTkzYmlCdmRYUnphV1JsSUc5bUlHRnVlU0IwY25rZ1lteHZZMnNnZEdoaGRDQmpiM1ZzWkNCb1lXNWtiR1ZjYmlBZ0lDQWdJQ0FnSUNBdkx5QnBkQ3dnYzI4Z2MyVjBJSFJvWlNCamIyMXdiR1YwYVc5dUlIWmhiSFZsSUc5bUlIUm9aU0JsYm5ScGNtVWdablZ1WTNScGIyNGdkRzljYmlBZ0lDQWdJQ0FnSUNBdkx5QjBhSEp2ZHlCMGFHVWdaWGhqWlhCMGFXOXVMbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJvWVc1a2JHVW9YQ0psYm1SY0lpazdYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCcFppQW9aVzUwY25rdWRISjVURzlqSUR3OUlIUm9hWE11Y0hKbGRpa2dlMXh1SUNBZ0lDQWdJQ0FnSUhaaGNpQm9ZWE5EWVhSamFDQTlJR2hoYzA5M2JpNWpZV3hzS0dWdWRISjVMQ0JjSW1OaGRHTm9URzlqWENJcE8xeHVJQ0FnSUNBZ0lDQWdJSFpoY2lCb1lYTkdhVzVoYkd4NUlEMGdhR0Z6VDNkdUxtTmhiR3dvWlc1MGNua3NJRndpWm1sdVlXeHNlVXh2WTF3aUtUdGNibHh1SUNBZ0lDQWdJQ0FnSUdsbUlDaG9ZWE5EWVhSamFDQW1KaUJvWVhOR2FXNWhiR3g1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2RHaHBjeTV3Y21WMklEd2daVzUwY25rdVkyRjBZMmhNYjJNcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdoaGJtUnNaU2hsYm5SeWVTNWpZWFJqYUV4dll5d2dkSEoxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0hSb2FYTXVjSEpsZGlBOElHVnVkSEo1TG1acGJtRnNiSGxNYjJNcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdoaGJtUnNaU2hsYm5SeWVTNW1hVzVoYkd4NVRHOWpLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUgwZ1pXeHpaU0JwWmlBb2FHRnpRMkYwWTJncElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG5CeVpYWWdQQ0JsYm5SeWVTNWpZWFJqYUV4dll5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2FHRnVaR3hsS0dWdWRISjVMbU5oZEdOb1RHOWpMQ0IwY25WbEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvYUdGelJtbHVZV3hzZVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11Y0hKbGRpQThJR1Z1ZEhKNUxtWnBibUZzYkhsTWIyTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHaGhibVJzWlNobGJuUnllUzVtYVc1aGJHeDVURzlqS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0owY25rZ2MzUmhkR1Z0Wlc1MElIZHBkR2h2ZFhRZ1kyRjBZMmdnYjNJZ1ptbHVZV3hzZVZ3aUtUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5TEZ4dVhHNGdJQ0FnWVdKeWRYQjBPaUJtZFc1amRHbHZiaWgwZVhCbExDQmhjbWNwSUh0Y2JpQWdJQ0FnSUdadmNpQW9kbUZ5SUdrZ1BTQjBhR2x6TG5SeWVVVnVkSEpwWlhNdWJHVnVaM1JvSUMwZ01Uc2dhU0ErUFNBd095QXRMV2twSUh0Y2JpQWdJQ0FnSUNBZ2RtRnlJR1Z1ZEhKNUlEMGdkR2hwY3k1MGNubEZiblJ5YVdWelcybGRPMXh1SUNBZ0lDQWdJQ0JwWmlBb1pXNTBjbmt1ZEhKNVRHOWpJRHc5SUhSb2FYTXVjSEpsZGlBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnYUdGelQzZHVMbU5oYkd3b1pXNTBjbmtzSUZ3aVptbHVZV3hzZVV4dlkxd2lLU0FtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdkR2hwY3k1d2NtVjJJRHdnWlc1MGNua3VabWx1WVd4c2VVeHZZeWtnZTF4dUlDQWdJQ0FnSUNBZ0lIWmhjaUJtYVc1aGJHeDVSVzUwY25rZ1BTQmxiblJ5ZVR0Y2JpQWdJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvWm1sdVlXeHNlVVZ1ZEhKNUlDWW1YRzRnSUNBZ0lDQWdJQ0FnS0hSNWNHVWdQVDA5SUZ3aVluSmxZV3RjSWlCOGZGeHVJQ0FnSUNBZ0lDQWdJQ0IwZVhCbElEMDlQU0JjSW1OdmJuUnBiblZsWENJcElDWW1YRzRnSUNBZ0lDQWdJQ0FnWm1sdVlXeHNlVVZ1ZEhKNUxuUnllVXh2WXlBOFBTQmhjbWNnSmlaY2JpQWdJQ0FnSUNBZ0lDQmhjbWNnUEQwZ1ptbHVZV3hzZVVWdWRISjVMbVpwYm1Gc2JIbE1iMk1wSUh0Y2JpQWdJQ0FnSUNBZ0x5OGdTV2R1YjNKbElIUm9aU0JtYVc1aGJHeDVJR1Z1ZEhKNUlHbG1JR052Ym5SeWIyd2dhWE1nYm05MElHcDFiWEJwYm1jZ2RHOGdZVnh1SUNBZ0lDQWdJQ0F2THlCc2IyTmhkR2x2YmlCdmRYUnphV1JsSUhSb1pTQjBjbmt2WTJGMFkyZ2dZbXh2WTJzdVhHNGdJQ0FnSUNBZ0lHWnBibUZzYkhsRmJuUnllU0E5SUc1MWJHdzdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJSFpoY2lCeVpXTnZjbVFnUFNCbWFXNWhiR3g1Ulc1MGNua2dQeUJtYVc1aGJHeDVSVzUwY25rdVkyOXRjR3hsZEdsdmJpQTZJSHQ5TzF4dUlDQWdJQ0FnY21WamIzSmtMblI1Y0dVZ1BTQjBlWEJsTzF4dUlDQWdJQ0FnY21WamIzSmtMbUZ5WnlBOUlHRnlaenRjYmx4dUlDQWdJQ0FnYVdZZ0tHWnBibUZzYkhsRmJuUnllU2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbTFsZEdodlpDQTlJRndpYm1WNGRGd2lPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtNWxlSFFnUFNCbWFXNWhiR3g1Ulc1MGNua3VabWx1WVd4c2VVeHZZenRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRU52Ym5ScGJuVmxVMlZ1ZEdsdVpXdzdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJYQnNaWFJsS0hKbFkyOXlaQ2s3WEc0Z0lDQWdmU3hjYmx4dUlDQWdJR052YlhCc1pYUmxPaUJtZFc1amRHbHZiaWh5WldOdmNtUXNJR0ZtZEdWeVRHOWpLU0I3WEc0Z0lDQWdJQ0JwWmlBb2NtVmpiM0prTG5SNWNHVWdQVDA5SUZ3aWRHaHliM2RjSWlrZ2UxeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCeVpXTnZjbVF1WVhKbk8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvY21WamIzSmtMblI1Y0dVZ1BUMDlJRndpWW5KbFlXdGNJaUI4ZkZ4dUlDQWdJQ0FnSUNBZ0lISmxZMjl5WkM1MGVYQmxJRDA5UFNCY0ltTnZiblJwYm5WbFhDSXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXVaWGgwSUQwZ2NtVmpiM0prTG1GeVp6dGNiaUFnSUNBZ0lIMGdaV3h6WlNCcFppQW9jbVZqYjNKa0xuUjVjR1VnUFQwOUlGd2ljbVYwZFhKdVhDSXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXlkbUZzSUQwZ2RHaHBjeTVoY21jZ1BTQnlaV052Y21RdVlYSm5PMXh1SUNBZ0lDQWdJQ0IwYUdsekxtMWxkR2h2WkNBOUlGd2ljbVYwZFhKdVhDSTdYRzRnSUNBZ0lDQWdJSFJvYVhNdWJtVjRkQ0E5SUZ3aVpXNWtYQ0k3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0hKbFkyOXlaQzUwZVhCbElEMDlQU0JjSW01dmNtMWhiRndpSUNZbUlHRm1kR1Z5VEc5aktTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWJtVjRkQ0E5SUdGbWRHVnlURzlqTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCeVpYUjFjbTRnUTI5dWRHbHVkV1ZUWlc1MGFXNWxiRHRjYmlBZ0lDQjlMRnh1WEc0Z0lDQWdabWx1YVhOb09pQm1kVzVqZEdsdmJpaG1hVzVoYkd4NVRHOWpLU0I3WEc0Z0lDQWdJQ0JtYjNJZ0tIWmhjaUJwSUQwZ2RHaHBjeTUwY25sRmJuUnlhV1Z6TG14bGJtZDBhQ0F0SURFN0lHa2dQajBnTURzZ0xTMXBLU0I3WEc0Z0lDQWdJQ0FnSUhaaGNpQmxiblJ5ZVNBOUlIUm9hWE11ZEhKNVJXNTBjbWxsYzF0cFhUdGNiaUFnSUNBZ0lDQWdhV1lnS0dWdWRISjVMbVpwYm1Gc2JIbE1iMk1nUFQwOUlHWnBibUZzYkhsTWIyTXBJSHRjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbU52YlhCc1pYUmxLR1Z1ZEhKNUxtTnZiWEJzWlhScGIyNHNJR1Z1ZEhKNUxtRm1kR1Z5VEc5aktUdGNiaUFnSUNBZ0lDQWdJQ0J5WlhObGRGUnllVVZ1ZEhKNUtHVnVkSEo1S1R0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1EyOXVkR2x1ZFdWVFpXNTBhVzVsYkR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwc1hHNWNiaUFnSUNCY0ltTmhkR05vWENJNklHWjFibU4wYVc5dUtIUnllVXh2WXlrZ2UxeHVJQ0FnSUNBZ1ptOXlJQ2gyWVhJZ2FTQTlJSFJvYVhNdWRISjVSVzUwY21sbGN5NXNaVzVuZEdnZ0xTQXhPeUJwSUQ0OUlEQTdJQzB0YVNrZ2UxeHVJQ0FnSUNBZ0lDQjJZWElnWlc1MGNua2dQU0IwYUdsekxuUnllVVZ1ZEhKcFpYTmJhVjA3WEc0Z0lDQWdJQ0FnSUdsbUlDaGxiblJ5ZVM1MGNubE1iMk1nUFQwOUlIUnllVXh2WXlrZ2UxeHVJQ0FnSUNBZ0lDQWdJSFpoY2lCeVpXTnZjbVFnUFNCbGJuUnllUzVqYjIxd2JHVjBhVzl1TzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2h5WldOdmNtUXVkSGx3WlNBOVBUMGdYQ0owYUhKdmQxd2lLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjJZWElnZEdoeWIzZHVJRDBnY21WamIzSmtMbUZ5Wnp0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsYzJWMFZISjVSVzUwY25rb1pXNTBjbmtwTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2h5YjNkdU8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQzh2SUZSb1pTQmpiMjUwWlhoMExtTmhkR05vSUcxbGRHaHZaQ0J0ZFhOMElHOXViSGtnWW1VZ1kyRnNiR1ZrSUhkcGRHZ2dZU0JzYjJOaGRHbHZibHh1SUNBZ0lDQWdMeThnWVhKbmRXMWxiblFnZEdoaGRDQmpiM0p5WlhOd2IyNWtjeUIwYnlCaElHdHViM2R1SUdOaGRHTm9JR0pzYjJOckxseHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0Z3aWFXeHNaV2RoYkNCallYUmphQ0JoZEhSbGJYQjBYQ0lwTzF4dUlDQWdJSDBzWEc1Y2JpQWdJQ0JrWld4bFoyRjBaVmxwWld4a09pQm1kVzVqZEdsdmJpaHBkR1Z5WVdKc1pTd2djbVZ6ZFd4MFRtRnRaU3dnYm1WNGRFeHZZeWtnZTF4dUlDQWdJQ0FnZEdocGN5NWtaV3hsWjJGMFpTQTlJSHRjYmlBZ0lDQWdJQ0FnYVhSbGNtRjBiM0k2SUhaaGJIVmxjeWhwZEdWeVlXSnNaU2tzWEc0Z0lDQWdJQ0FnSUhKbGMzVnNkRTVoYldVNklISmxjM1ZzZEU1aGJXVXNYRzRnSUNBZ0lDQWdJRzVsZUhSTWIyTTZJRzVsZUhSTWIyTmNiaUFnSUNBZ0lIMDdYRzVjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbTFsZEdodlpDQTlQVDBnWENKdVpYaDBYQ0lwSUh0Y2JpQWdJQ0FnSUNBZ0x5OGdSR1ZzYVdKbGNtRjBaV3g1SUdadmNtZGxkQ0IwYUdVZ2JHRnpkQ0J6Wlc1MElIWmhiSFZsSUhOdklIUm9ZWFFnZDJVZ1pHOXVKM1JjYmlBZ0lDQWdJQ0FnTHk4Z1lXTmphV1JsYm5SaGJHeDVJSEJoYzNNZ2FYUWdiMjRnZEc4Z2RHaGxJR1JsYkdWbllYUmxMbHh1SUNBZ0lDQWdJQ0IwYUdsekxtRnlaeUE5SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2NtVjBkWEp1SUVOdmJuUnBiblZsVTJWdWRHbHVaV3c3WEc0Z0lDQWdmVnh1SUNCOU8xeHVYRzRnSUM4dklGSmxaMkZ5Wkd4bGMzTWdiMllnZDJobGRHaGxjaUIwYUdseklITmpjbWx3ZENCcGN5QmxlR1ZqZFhScGJtY2dZWE1nWVNCRGIyMXRiMjVLVXlCdGIyUjFiR1ZjYmlBZ0x5OGdiM0lnYm05MExDQnlaWFIxY200Z2RHaGxJSEoxYm5ScGJXVWdiMkpxWldOMElITnZJSFJvWVhRZ2QyVWdZMkZ1SUdSbFkyeGhjbVVnZEdobElIWmhjbWxoWW14bFhHNGdJQzh2SUhKbFoyVnVaWEpoZEc5eVVuVnVkR2x0WlNCcGJpQjBhR1VnYjNWMFpYSWdjMk52Y0dVc0lIZG9hV05vSUdGc2JHOTNjeUIwYUdseklHMXZaSFZzWlNCMGJ5QmlaVnh1SUNBdkx5QnBibXBsWTNSbFpDQmxZWE5wYkhrZ1lua2dZR0pwYmk5eVpXZGxibVZ5WVhSdmNpQXRMV2x1WTJ4MVpHVXRjblZ1ZEdsdFpTQnpZM0pwY0hRdWFuTmdMbHh1SUNCeVpYUjFjbTRnWlhod2IzSjBjenRjYmx4dWZTaGNiaUFnTHk4Z1NXWWdkR2hwY3lCelkzSnBjSFFnYVhNZ1pYaGxZM1YwYVc1bklHRnpJR0VnUTI5dGJXOXVTbE1nYlc5a2RXeGxMQ0IxYzJVZ2JXOWtkV3hsTG1WNGNHOXlkSE5jYmlBZ0x5OGdZWE1nZEdobElISmxaMlZ1WlhKaGRHOXlVblZ1ZEdsdFpTQnVZVzFsYzNCaFkyVXVJRTkwYUdWeWQybHpaU0JqY21WaGRHVWdZU0J1WlhjZ1pXMXdkSGxjYmlBZ0x5OGdiMkpxWldOMExpQkZhWFJvWlhJZ2QyRjVMQ0IwYUdVZ2NtVnpkV3gwYVc1bklHOWlhbVZqZENCM2FXeHNJR0psSUhWelpXUWdkRzhnYVc1cGRHbGhiR2w2WlZ4dUlDQXZMeUIwYUdVZ2NtVm5aVzVsY21GMGIzSlNkVzUwYVcxbElIWmhjbWxoWW14bElHRjBJSFJvWlNCMGIzQWdiMllnZEdocGN5Qm1hV3hsTGx4dUlDQjBlWEJsYjJZZ2JXOWtkV3hsSUQwOVBTQmNJbTlpYW1WamRGd2lJRDhnYlc5a2RXeGxMbVY0Y0c5eWRITWdPaUI3ZlZ4dUtTazdYRzVjYm5SeWVTQjdYRzRnSUhKbFoyVnVaWEpoZEc5eVVuVnVkR2x0WlNBOUlISjFiblJwYldVN1hHNTlJR05oZEdOb0lDaGhZMk5wWkdWdWRHRnNVM1J5YVdOMFRXOWtaU2tnZTF4dUlDQXZMeUJVYUdseklHMXZaSFZzWlNCemFHOTFiR1FnYm05MElHSmxJSEoxYm01cGJtY2dhVzRnYzNSeWFXTjBJRzF2WkdVc0lITnZJSFJvWlNCaFltOTJaVnh1SUNBdkx5QmhjM05wWjI1dFpXNTBJSE5vYjNWc1pDQmhiSGRoZVhNZ2QyOXlheUIxYm14bGMzTWdjMjl0WlhSb2FXNW5JR2x6SUcxcGMyTnZibVpwWjNWeVpXUXVJRXAxYzNSY2JpQWdMeThnYVc0Z1kyRnpaU0J5ZFc1MGFXMWxMbXB6SUdGalkybGtaVzUwWVd4c2VTQnlkVzV6SUdsdUlITjBjbWxqZENCdGIyUmxMQ0IzWlNCallXNGdaWE5qWVhCbFhHNGdJQzh2SUhOMGNtbGpkQ0J0YjJSbElIVnphVzVuSUdFZ1oyeHZZbUZzSUVaMWJtTjBhVzl1SUdOaGJHd3VJRlJvYVhNZ1kyOTFiR1FnWTI5dVkyVnBkbUZpYkhrZ1ptRnBiRnh1SUNBdkx5QnBaaUJoSUVOdmJuUmxiblFnVTJWamRYSnBkSGtnVUc5c2FXTjVJR1p2Y21KcFpITWdkWE5wYm1jZ1JuVnVZM1JwYjI0c0lHSjFkQ0JwYmlCMGFHRjBJR05oYzJWY2JpQWdMeThnZEdobElIQnliM0JsY2lCemIyeDFkR2x2YmlCcGN5QjBieUJtYVhnZ2RHaGxJR0ZqWTJsa1pXNTBZV3dnYzNSeWFXTjBJRzF2WkdVZ2NISnZZbXhsYlM0Z1NXWmNiaUFnTHk4Z2VXOTFKM1psSUcxcGMyTnZibVpwWjNWeVpXUWdlVzkxY2lCaWRXNWtiR1Z5SUhSdklHWnZjbU5sSUhOMGNtbGpkQ0J0YjJSbElHRnVaQ0JoY0hCc2FXVmtJR0ZjYmlBZ0x5OGdRMU5RSUhSdklHWnZjbUpwWkNCR2RXNWpkR2x2Yml3Z1lXNWtJSGx2ZFNkeVpTQnViM1FnZDJsc2JHbHVaeUIwYnlCbWFYZ2daV2wwYUdWeUlHOW1JSFJvYjNObFhHNGdJQzh2SUhCeWIySnNaVzF6TENCd2JHVmhjMlVnWkdWMFlXbHNJSGx2ZFhJZ2RXNXBjWFZsSUhCeVpXUnBZMkZ0Wlc1MElHbHVJR0VnUjJsMFNIVmlJR2x6YzNWbExseHVJQ0JHZFc1amRHbHZiaWhjSW5KY0lpd2dYQ0p5WldkbGJtVnlZWFJ2Y2xKMWJuUnBiV1VnUFNCeVhDSXBLSEoxYm5ScGJXVXBPMXh1ZlZ4dUlpd2lablZ1WTNScGIyNGdZWE41Ym1OSFpXNWxjbUYwYjNKVGRHVndLR2RsYml3Z2NtVnpiMngyWlN3Z2NtVnFaV04wTENCZmJtVjRkQ3dnWDNSb2NtOTNMQ0JyWlhrc0lHRnlaeWtnZTF4dUlDQjBjbmtnZTF4dUlDQWdJSFpoY2lCcGJtWnZJRDBnWjJWdVcydGxlVjBvWVhKbktUdGNiaUFnSUNCMllYSWdkbUZzZFdVZ1BTQnBibVp2TG5aaGJIVmxPMXh1SUNCOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dUlDQWdJSEpsYW1WamRDaGxjbkp2Y2lrN1hHNGdJQ0FnY21WMGRYSnVPMXh1SUNCOVhHNWNiaUFnYVdZZ0tHbHVabTh1Wkc5dVpTa2dlMXh1SUNBZ0lISmxjMjlzZG1Vb2RtRnNkV1VwTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUZCeWIyMXBjMlV1Y21WemIyeDJaU2gyWVd4MVpTa3VkR2hsYmloZmJtVjRkQ3dnWDNSb2NtOTNLVHRjYmlBZ2ZWeHVmVnh1WEc1bWRXNWpkR2x2YmlCZllYTjVibU5VYjBkbGJtVnlZWFJ2Y2lobWJpa2dlMXh1SUNCeVpYUjFjbTRnWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhaaGNpQnpaV3htSUQwZ2RHaHBjeXhjYmlBZ0lDQWdJQ0FnWVhKbmN5QTlJR0Z5WjNWdFpXNTBjenRjYmlBZ0lDQnlaWFIxY200Z2JtVjNJRkJ5YjIxcGMyVW9ablZ1WTNScGIyNGdLSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dlMXh1SUNBZ0lDQWdkbUZ5SUdkbGJpQTlJR1p1TG1Gd2NHeDVLSE5sYkdZc0lHRnlaM01wTzF4dVhHNGdJQ0FnSUNCbWRXNWpkR2x2YmlCZmJtVjRkQ2gyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0JoYzNsdVkwZGxibVZ5WVhSdmNsTjBaWEFvWjJWdUxDQnlaWE52YkhabExDQnlaV3BsWTNRc0lGOXVaWGgwTENCZmRHaHliM2NzSUZ3aWJtVjRkRndpTENCMllXeDFaU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdaMWJtTjBhVzl1SUY5MGFISnZkeWhsY25JcElIdGNiaUFnSUNBZ0lDQWdZWE41Ym1OSFpXNWxjbUYwYjNKVGRHVndLR2RsYml3Z2NtVnpiMngyWlN3Z2NtVnFaV04wTENCZmJtVjRkQ3dnWDNSb2NtOTNMQ0JjSW5Sb2NtOTNYQ0lzSUdWeWNpazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJRjl1WlhoMEtIVnVaR1ZtYVc1bFpDazdYRzRnSUNBZ2ZTazdYRzRnSUgwN1hHNTlYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnWDJGemVXNWpWRzlIWlc1bGNtRjBiM0k3SWl3aVpuVnVZM1JwYjI0Z1gyRnljbUY1VjJsMGFFaHZiR1Z6S0dGeWNpa2dlMXh1SUNCcFppQW9RWEp5WVhrdWFYTkJjbkpoZVNoaGNuSXBLU0J5WlhSMWNtNGdZWEp5TzF4dWZWeHVYRzV0YjJSMWJHVXVaWGh3YjNKMGN5QTlJRjloY25KaGVWZHBkR2hJYjJ4bGN6c2lMQ0ptZFc1amRHbHZiaUJmYVhSbGNtRmliR1ZVYjBGeWNtRjVUR2x0YVhRb1lYSnlMQ0JwS1NCN1hHNGdJR2xtSUNoMGVYQmxiMllnVTNsdFltOXNJRDA5UFNCY0luVnVaR1ZtYVc1bFpGd2lJSHg4SUNFb1UzbHRZbTlzTG1sMFpYSmhkRzl5SUdsdUlFOWlhbVZqZENoaGNuSXBLU2tnY21WMGRYSnVPMXh1SUNCMllYSWdYMkZ5Y2lBOUlGdGRPMXh1SUNCMllYSWdYMjRnUFNCMGNuVmxPMXh1SUNCMllYSWdYMlFnUFNCbVlXeHpaVHRjYmlBZ2RtRnlJRjlsSUQwZ2RXNWtaV1pwYm1Wa08xeHVYRzRnSUhSeWVTQjdYRzRnSUNBZ1ptOXlJQ2gyWVhJZ1gya2dQU0JoY25KYlUzbHRZbTlzTG1sMFpYSmhkRzl5WFNncExDQmZjenNnSVNoZmJpQTlJQ2hmY3lBOUlGOXBMbTVsZUhRb0tTa3VaRzl1WlNrN0lGOXVJRDBnZEhKMVpTa2dlMXh1SUNBZ0lDQWdYMkZ5Y2k1d2RYTm9LRjl6TG5aaGJIVmxLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tHa2dKaVlnWDJGeWNpNXNaVzVuZEdnZ1BUMDlJR2twSUdKeVpXRnJPMXh1SUNBZ0lIMWNiaUFnZlNCallYUmphQ0FvWlhKeUtTQjdYRzRnSUNBZ1gyUWdQU0IwY25WbE8xeHVJQ0FnSUY5bElEMGdaWEp5TzF4dUlDQjlJR1pwYm1Gc2JIa2dlMXh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0JwWmlBb0lWOXVJQ1ltSUY5cFcxd2ljbVYwZFhKdVhDSmRJQ0U5SUc1MWJHd3BJRjlwVzF3aWNtVjBkWEp1WENKZEtDazdYRzRnSUNBZ2ZTQm1hVzVoYkd4NUlIdGNiaUFnSUNBZ0lHbG1JQ2hmWkNrZ2RHaHliM2NnWDJVN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUY5aGNuSTdYRzU5WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ1gybDBaWEpoWW14bFZHOUJjbkpoZVV4cGJXbDBPeUlzSW1aMWJtTjBhVzl1SUY5aGNuSmhlVXhwYTJWVWIwRnljbUY1S0dGeWNpd2diR1Z1S1NCN1hHNGdJR2xtSUNoc1pXNGdQVDBnYm5Wc2JDQjhmQ0JzWlc0Z1BpQmhjbkl1YkdWdVozUm9LU0JzWlc0Z1BTQmhjbkl1YkdWdVozUm9PMXh1WEc0Z0lHWnZjaUFvZG1GeUlHa2dQU0F3TENCaGNuSXlJRDBnYm1WM0lFRnljbUY1S0d4bGJpazdJR2tnUENCc1pXNDdJR2tyS3lrZ2UxeHVJQ0FnSUdGeWNqSmJhVjBnUFNCaGNuSmJhVjA3WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnWVhKeU1qdGNibjFjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCZllYSnlZWGxNYVd0bFZHOUJjbkpoZVRzaUxDSjJZWElnWVhKeVlYbE1hV3RsVkc5QmNuSmhlU0E5SUhKbGNYVnBjbVVvWENJdUwyRnljbUY1VEdsclpWUnZRWEp5WVhsY0lpazdYRzVjYm1aMWJtTjBhVzl1SUY5MWJuTjFjSEJ2Y25SbFpFbDBaWEpoWW14bFZHOUJjbkpoZVNodkxDQnRhVzVNWlc0cElIdGNiaUFnYVdZZ0tDRnZLU0J5WlhSMWNtNDdYRzRnSUdsbUlDaDBlWEJsYjJZZ2J5QTlQVDBnWENKemRISnBibWRjSWlrZ2NtVjBkWEp1SUdGeWNtRjVUR2xyWlZSdlFYSnlZWGtvYnl3Z2JXbHVUR1Z1S1R0Y2JpQWdkbUZ5SUc0Z1BTQlBZbXBsWTNRdWNISnZkRzkwZVhCbExuUnZVM1J5YVc1bkxtTmhiR3dvYnlrdWMyeHBZMlVvT0N3Z0xURXBPMXh1SUNCcFppQW9iaUE5UFQwZ1hDSlBZbXBsWTNSY0lpQW1KaUJ2TG1OdmJuTjBjblZqZEc5eUtTQnVJRDBnYnk1amIyNXpkSEoxWTNSdmNpNXVZVzFsTzF4dUlDQnBaaUFvYmlBOVBUMGdYQ0pOWVhCY0lpQjhmQ0J1SUQwOVBTQmNJbE5sZEZ3aUtTQnlaWFIxY200Z1FYSnlZWGt1Wm5KdmJTaHZLVHRjYmlBZ2FXWWdLRzRnUFQwOUlGd2lRWEpuZFcxbGJuUnpYQ0lnZkh3Z0wxNG9QenBWYVh4SktXNTBLRDg2T0h3eE5ud3pNaWtvUHpwRGJHRnRjR1ZrS1Q5QmNuSmhlU1F2TG5SbGMzUW9iaWtwSUhKbGRIVnliaUJoY25KaGVVeHBhMlZVYjBGeWNtRjVLRzhzSUcxcGJreGxiaWs3WEc1OVhHNWNibTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdYM1Z1YzNWd2NHOXlkR1ZrU1hSbGNtRmliR1ZVYjBGeWNtRjVPeUlzSW1aMWJtTjBhVzl1SUY5dWIyNUpkR1Z5WVdKc1pWSmxjM1FvS1NCN1hHNGdJSFJvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvWENKSmJuWmhiR2xrSUdGMGRHVnRjSFFnZEc4Z1pHVnpkSEoxWTNSMWNtVWdibTl1TFdsMFpYSmhZbXhsSUdsdWMzUmhibU5sTGx4Y2JrbHVJRzl5WkdWeUlIUnZJR0psSUdsMFpYSmhZbXhsTENCdWIyNHRZWEp5WVhrZ2IySnFaV04wY3lCdGRYTjBJR2hoZG1VZ1lTQmJVM2x0WW05c0xtbDBaWEpoZEc5eVhTZ3BJRzFsZEdodlpDNWNJaWs3WEc1OVhHNWNibTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdYMjV2YmtsMFpYSmhZbXhsVW1WemREc2lMQ0oyWVhJZ1lYSnlZWGxYYVhSb1NHOXNaWE1nUFNCeVpYRjFhWEpsS0Z3aUxpOWhjbkpoZVZkcGRHaEliMnhsYzF3aUtUdGNibHh1ZG1GeUlHbDBaWEpoWW14bFZHOUJjbkpoZVV4cGJXbDBJRDBnY21WeGRXbHlaU2hjSWk0dmFYUmxjbUZpYkdWVWIwRnljbUY1VEdsdGFYUmNJaWs3WEc1Y2JuWmhjaUIxYm5OMWNIQnZjblJsWkVsMFpYSmhZbXhsVkc5QmNuSmhlU0E5SUhKbGNYVnBjbVVvWENJdUwzVnVjM1Z3Y0c5eWRHVmtTWFJsY21GaWJHVlViMEZ5Y21GNVhDSXBPMXh1WEc1MllYSWdibTl1U1hSbGNtRmliR1ZTWlhOMElEMGdjbVZ4ZFdseVpTaGNJaTR2Ym05dVNYUmxjbUZpYkdWU1pYTjBYQ0lwTzF4dVhHNW1kVzVqZEdsdmJpQmZjMnhwWTJWa1ZHOUJjbkpoZVNoaGNuSXNJR2twSUh0Y2JpQWdjbVYwZFhKdUlHRnljbUY1VjJsMGFFaHZiR1Z6S0dGeWNpa2dmSHdnYVhSbGNtRmliR1ZVYjBGeWNtRjVUR2x0YVhRb1lYSnlMQ0JwS1NCOGZDQjFibk4xY0hCdmNuUmxaRWwwWlhKaFlteGxWRzlCY25KaGVTaGhjbklzSUdrcElIeDhJRzV2YmtsMFpYSmhZbXhsVW1WemRDZ3BPMXh1ZlZ4dVhHNXRiMlIxYkdVdVpYaHdiM0owY3lBOUlGOXpiR2xqWldSVWIwRnljbUY1T3lJc0ltWjFibU4wYVc5dUlGOWpiR0Z6YzBOaGJHeERhR1ZqYXlocGJuTjBZVzVqWlN3Z1EyOXVjM1J5ZFdOMGIzSXBJSHRjYmlBZ2FXWWdLQ0VvYVc1emRHRnVZMlVnYVc1emRHRnVZMlZ2WmlCRGIyNXpkSEoxWTNSdmNpa3BJSHRjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dWSGx3WlVWeWNtOXlLRndpUTJGdWJtOTBJR05oYkd3Z1lTQmpiR0Z6Y3lCaGN5QmhJR1oxYm1OMGFXOXVYQ0lwTzF4dUlDQjlYRzU5WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ1gyTnNZWE56UTJGc2JFTm9aV05yT3lJc0ltWjFibU4wYVc5dUlGOWtaV1pwYm1WUWNtOXdaWEowYVdWektIUmhjbWRsZEN3Z2NISnZjSE1wSUh0Y2JpQWdabTl5SUNoMllYSWdhU0E5SURBN0lHa2dQQ0J3Y205d2N5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJSFpoY2lCa1pYTmpjbWx3ZEc5eUlEMGdjSEp2Y0hOYmFWMDdYRzRnSUNBZ1pHVnpZM0pwY0hSdmNpNWxiblZ0WlhKaFlteGxJRDBnWkdWelkzSnBjSFJ2Y2k1bGJuVnRaWEpoWW14bElIeDhJR1poYkhObE8xeHVJQ0FnSUdSbGMyTnlhWEIwYjNJdVkyOXVabWxuZFhKaFlteGxJRDBnZEhKMVpUdGNiaUFnSUNCcFppQW9YQ0oyWVd4MVpWd2lJR2x1SUdSbGMyTnlhWEIwYjNJcElHUmxjMk55YVhCMGIzSXVkM0pwZEdGaWJHVWdQU0IwY25WbE8xeHVJQ0FnSUU5aWFtVmpkQzVrWldacGJtVlFjbTl3WlhKMGVTaDBZWEpuWlhRc0lHUmxjMk55YVhCMGIzSXVhMlY1TENCa1pYTmpjbWx3ZEc5eUtUdGNiaUFnZlZ4dWZWeHVYRzVtZFc1amRHbHZiaUJmWTNKbFlYUmxRMnhoYzNNb1EyOXVjM1J5ZFdOMGIzSXNJSEJ5YjNSdlVISnZjSE1zSUhOMFlYUnBZMUJ5YjNCektTQjdYRzRnSUdsbUlDaHdjbTkwYjFCeWIzQnpLU0JmWkdWbWFXNWxVSEp2Y0dWeWRHbGxjeWhEYjI1emRISjFZM1J2Y2k1d2NtOTBiM1I1Y0dVc0lIQnliM1J2VUhKdmNITXBPMXh1SUNCcFppQW9jM1JoZEdsalVISnZjSE1wSUY5a1pXWnBibVZRY205d1pYSjBhV1Z6S0VOdmJuTjBjblZqZEc5eUxDQnpkR0YwYVdOUWNtOXdjeWs3WEc0Z0lISmxkSFZ5YmlCRGIyNXpkSEoxWTNSdmNqdGNibjFjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCZlkzSmxZWFJsUTJ4aGMzTTdJaXdpWm5WdVkzUnBiMjRnWDJSbFptbHVaVkJ5YjNCbGNuUjVLRzlpYWl3Z2EyVjVMQ0IyWVd4MVpTa2dlMXh1SUNCcFppQW9hMlY1SUdsdUlHOWlhaWtnZTF4dUlDQWdJRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNodlltb3NJR3RsZVN3Z2UxeHVJQ0FnSUNBZ2RtRnNkV1U2SUhaaGJIVmxMRnh1SUNBZ0lDQWdaVzUxYldWeVlXSnNaVG9nZEhKMVpTeGNiaUFnSUNBZ0lHTnZibVpwWjNWeVlXSnNaVG9nZEhKMVpTeGNiaUFnSUNBZ0lIZHlhWFJoWW14bE9pQjBjblZsWEc0Z0lDQWdmU2s3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnYjJKcVcydGxlVjBnUFNCMllXeDFaVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJ2WW1vN1hHNTlYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnWDJSbFptbHVaVkJ5YjNCbGNuUjVPeUlzSW5aaGNpQmxQV1oxYm1OMGFXOXVLQ2w3Y21WMGRYSnVJU0Z1WVhacFoyRjBiM0l1Y0dWeWJXbHpjMmx2Ym5OOUxISTlablZ1WTNScGIyNG9LWHR5WlhSMWNtNGhJVzVoZG1sbllYUnZjaTV0WldScFlVUmxkbWxqWlhOOU8yWjFibU4wYVc5dUlIUW9aU3h5TEhRc2JpeGhMR2tzYnlsN2RISjVlM1poY2lCMVBXVmJhVjBvYnlrc1l6MTFMblpoYkhWbGZXTmhkR05vS0dVcGUzSmxkSFZ5YmlCMmIybGtJSFFvWlNsOWRTNWtiMjVsUDNJb1l5azZVSEp2YldselpTNXlaWE52YkhabEtHTXBMblJvWlc0b2JpeGhLWDFtZFc1amRHbHZiaUJ1S0dVcGUzSmxkSFZ5YmlCbWRXNWpkR2x2YmlncGUzWmhjaUJ5UFhSb2FYTXNiajFoY21kMWJXVnVkSE03Y21WMGRYSnVJRzVsZHlCUWNtOXRhWE5sS0NobWRXNWpkR2x2YmloaExHa3BlM1poY2lCdlBXVXVZWEJ3Ykhrb2NpeHVLVHRtZFc1amRHbHZiaUIxS0dVcGUzUW9ieXhoTEdrc2RTeGpMRndpYm1WNGRGd2lMR1VwZldaMWJtTjBhVzl1SUdNb1pTbDdkQ2h2TEdFc2FTeDFMR01zWENKMGFISnZkMXdpTEdVcGZYVW9kbTlwWkNBd0tYMHBLWDE5Wm5WdVkzUnBiMjRnWVNobExISXBlM0psZEhWeWJpQm1kVzVqZEdsdmJpaGxLWHRwWmloQmNuSmhlUzVwYzBGeWNtRjVLR1VwS1hKbGRIVnliaUJsZlNobEtYeDhablZ1WTNScGIyNG9aU3h5S1h0cFppaGNJblZ1WkdWbWFXNWxaRndpUFQxMGVYQmxiMllnVTNsdFltOXNmSHdoS0ZONWJXSnZiQzVwZEdWeVlYUnZjaUJwYmlCUFltcGxZM1FvWlNrcEtYSmxkSFZ5Ymp0MllYSWdkRDFiWFN4dVBTRXdMR0U5SVRFc2FUMTJiMmxrSURBN2RISjVlMlp2Y2loMllYSWdieXgxUFdWYlUzbHRZbTlzTG1sMFpYSmhkRzl5WFNncE95RW9iajBvYnoxMUxtNWxlSFFvS1NrdVpHOXVaU2ttSmloMExuQjFjMmdvYnk1MllXeDFaU2tzSVhKOGZIUXViR1Z1WjNSb0lUMDljaWs3YmowaE1DazdmV05oZEdOb0tHVXBlMkU5SVRBc2FUMWxmV1pwYm1Gc2JIbDdkSEo1ZTI1OGZHNTFiR3c5UFhVdWNtVjBkWEp1Zkh4MUxuSmxkSFZ5YmlncGZXWnBibUZzYkhsN2FXWW9ZU2wwYUhKdmR5QnBmWDF5WlhSMWNtNGdkSDBvWlN4eUtYeDhablZ1WTNScGIyNG9aU3h5S1h0cFppZ2haU2x5WlhSMWNtNDdhV1lvWENKemRISnBibWRjSWowOWRIbHdaVzltSUdVcGNtVjBkWEp1SUdrb1pTeHlLVHQyWVhJZ2REMVBZbXBsWTNRdWNISnZkRzkwZVhCbExuUnZVM1J5YVc1bkxtTmhiR3dvWlNrdWMyeHBZMlVvT0N3dE1TazdYQ0pQWW1wbFkzUmNJajA5UFhRbUptVXVZMjl1YzNSeWRXTjBiM0ltSmloMFBXVXVZMjl1YzNSeWRXTjBiM0l1Ym1GdFpTazdhV1lvWENKTllYQmNJajA5UFhSOGZGd2lVMlYwWENJOVBUMTBLWEpsZEhWeWJpQkJjbkpoZVM1bWNtOXRLR1VwTzJsbUtGd2lRWEpuZFcxbGJuUnpYQ0k5UFQxMGZId3ZYaWcvT2xWcGZFa3BiblFvUHpvNGZERTJmRE15S1NnL09rTnNZVzF3WldRcFAwRnljbUY1SkM4dWRHVnpkQ2gwS1NseVpYUjFjbTRnYVNobExISXBmU2hsTEhJcGZIeG1kVzVqZEdsdmJpZ3BlM1JvY205M0lHNWxkeUJVZVhCbFJYSnliM0lvWENKSmJuWmhiR2xrSUdGMGRHVnRjSFFnZEc4Z1pHVnpkSEoxWTNSMWNtVWdibTl1TFdsMFpYSmhZbXhsSUdsdWMzUmhibU5sTGx4Y2JrbHVJRzl5WkdWeUlIUnZJR0psSUdsMFpYSmhZbXhsTENCdWIyNHRZWEp5WVhrZ2IySnFaV04wY3lCdGRYTjBJR2hoZG1VZ1lTQmJVM2x0WW05c0xtbDBaWEpoZEc5eVhTZ3BJRzFsZEdodlpDNWNJaWw5S0NsOVpuVnVZM1JwYjI0Z2FTaGxMSElwZXlodWRXeHNQVDF5Zkh4eVBtVXViR1Z1WjNSb0tTWW1LSEk5WlM1c1pXNW5kR2dwTzJadmNpaDJZWElnZEQwd0xHNDlibVYzSUVGeWNtRjVLSElwTzNROGNqdDBLeXNwYmx0MFhUMWxXM1JkTzNKbGRIVnliaUJ1ZlhaaGNpQnZQV1oxYm1OMGFXOXVLQ2w3ZG1GeUlISTliaWh5WldkbGJtVnlZWFJ2Y2xKMWJuUnBiV1V1YldGeWF5Z29ablZ1WTNScGIyNGdjaWgwS1h0eVpYUjFjbTRnY21WblpXNWxjbUYwYjNKU2RXNTBhVzFsTG5keVlYQW9LR1oxYm1OMGFXOXVLSElwZTJadmNpZzdPeWx6ZDJsMFkyZ29jaTV3Y21WMlBYSXVibVY0ZENsN1kyRnpaU0F3T25KbGRIVnliaUJ5TG1GaWNuVndkQ2hjSW5KbGRIVnlibHdpTEc1bGR5QlFjbTl0YVhObEtHWjFibU4wYVc5dUtDbDdkbUZ5SUhJOWJpaHlaV2RsYm1WeVlYUnZjbEoxYm5ScGJXVXViV0Z5YXlnb1puVnVZM1JwYjI0Z2NpaHVMR0VwZTNaaGNpQnBMRzg3Y21WMGRYSnVJSEpsWjJWdVpYSmhkRzl5VW5WdWRHbHRaUzUzY21Gd0tDaG1kVzVqZEdsdmJpaHlLWHRtYjNJb096c3BjM2RwZEdOb0tISXVjSEpsZGoxeUxtNWxlSFFwZTJOaGMyVWdNRHB5WlhSMWNtNGdaU2dwZkh4aEtHNWxkeUJFVDAxRmVHTmxjSFJwYjI0b1hDSk9ZWFpwWjJGMGIzSWdRVkJKT2lCd1pYSnRhWE56YVc5dWN5QnViM1FnYzNWd2NHOXlkR1ZrWENJc1hDSk9UMVJmVTFWUVVFOVNWRVZFWDBWU1Vsd2lLU2tzY2k1d2NtVjJQVEVzY2k1dVpYaDBQVFFzYm1GMmFXZGhkRzl5TG5CbGNtMXBjM05wYjI1ekxuRjFaWEo1S0h0dVlXMWxPblI5S1R0allYTmxJRFE2YVQxeUxuTmxiblFzYnoxbWRXNWpkR2x2YmlCbEtISXBlMmt1Y21WdGIzWmxSWFpsYm5STWFYTjBaVzVsY2loY0ltTm9ZVzVuWlZ3aUxHVXBMSFVvY2k1MFlYSm5aWFF1YzNSaGRHVXNiaXhoS1gwc2FTNWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtGd2lZMmhoYm1kbFhDSXNieWtzZFNocExuTjBZWFJsTEc0c1lTa3NjaTV1WlhoMFBURXpPMkp5WldGck8yTmhjMlVnTVRBNmNpNXdjbVYyUFRFd0xISXVkREE5Y2k1allYUmphQ2d4S1N4aEtISXVkREFwTzJOaGMyVWdNVE02WTJGelpWd2laVzVrWENJNmNtVjBkWEp1SUhJdWMzUnZjQ2dwZlgwcExISXNiblZzYkN4Yld6RXNNVEJkWFNsOUtTa3BPM0psZEhWeWJpQm1kVzVqZEdsdmJpaGxMSFFwZTNKbGRIVnliaUJ5TG1Gd2NHeDVLSFJvYVhNc1lYSm5kVzFsYm5SektYMTlLQ2twS1R0allYTmxJREU2WTJGelpWd2laVzVrWENJNmNtVjBkWEp1SUhJdWMzUnZjQ2dwZlgwcExISXBmU2twS1R0eVpYUjFjbTRnWm5WdVkzUnBiMjRvWlNsN2NtVjBkWEp1SUhJdVlYQndiSGtvZEdocGN5eGhjbWQxYldWdWRITXBmWDBvS1N4MVBXWjFibU4wYVc5dUtHVXNjaXgwS1h0emQybDBZMmdvWlNsN1kyRnpaVndpWkdWdWFXVmtYQ0k2ZENodVpYY2dSRTlOUlhoalpYQjBhVzl1S0Z3aVVHVnliV2x6YzJsdmJpQmtaVzVwWldSY0lpeGNJazVQVkY5QlRFeFBWMFZFWDBWU1Vsd2lLU2s3WW5KbFlXczdaR1ZtWVhWc2REcHlLR1VwZlgwc1l6MW1kVzVqZEdsdmJpZ3BlM1poY2lCMFBXNG9jbVZuWlc1bGNtRjBiM0pTZFc1MGFXMWxMbTFoY21zb0tHWjFibU4wYVc5dUlIUW9hU3gxS1h0eVpYUjFjbTRnY21WblpXNWxjbUYwYjNKU2RXNTBhVzFsTG5keVlYQW9LR1oxYm1OMGFXOXVLSFFwZTJadmNpZzdPeWx6ZDJsMFkyZ29kQzV3Y21WMlBYUXVibVY0ZENsN1kyRnpaU0F3T25KbGRIVnliaUIwTG1GaWNuVndkQ2hjSW5KbGRIVnlibHdpTEc1bGR5QlFjbTl0YVhObEtHWjFibU4wYVc5dUtDbDdkbUZ5SUhROWJpaHlaV2RsYm1WeVlYUnZjbEoxYm5ScGJXVXViV0Z5YXlnb1puVnVZM1JwYjI0Z2RDaHVMR01wZTNaaGNpQnpMR1lzY0R0eVpYUjFjbTRnY21WblpXNWxjbUYwYjNKU2RXNTBhVzFsTG5keVlYQW9LR1oxYm1OMGFXOXVLSFFwZTJadmNpZzdPeWx6ZDJsMFkyZ29kQzV3Y21WMlBYUXVibVY0ZENsN1kyRnpaU0F3T25KbGRIVnliaUJsS0NrbUpuSW9LWHg4WXlodVpYY2dSRTlOUlhoalpYQjBhVzl1S0Z3aVRtRjJhV2RoZEc5eUlFRlFTVG9nY0dWeWJXbHpjMmx2Ym5NZ2IzSWdUbUYyYVdkaGRHOXlJRUZRU1RvZ2JXVmthV0ZFWlhacFkyVnpJRzV2ZENCemRYQndiM0owWldSY0lpeGNJazVQVkY5VFZWQlFUMUpVUlVSZlJWSlNYQ0lwS1N4MExuQnlaWFk5TVN4MExuUXdQVkJ5YjIxcGMyVXNkQzV1WlhoMFBUVXNieWhwS1R0allYTmxJRFU2Y21WMGRYSnVJSFF1ZERFOWRDNXpaVzUwTEhRdWJtVjRkRDA0TEc1aGRtbG5ZWFJ2Y2k1dFpXUnBZVVJsZG1salpYTXVaMlYwVlhObGNrMWxaR2xoS0hVcE8yTmhjMlVnT0RweVpYUjFjbTRnZEM1ME1qMTBMbk5sYm5Rc2RDNTBNejFiZEM1ME1TeDBMblF5WFN4MExtNWxlSFE5TVRJc2RDNTBNQzVoYkd3dVkyRnNiQ2gwTG5Rd0xIUXVkRE1wTzJOaGMyVWdNVEk2Y3oxMExuTmxiblFzWmoxaEtITXNNaWtzY0QxbVd6RmRMRzRvY0Nrc2RDNXVaWGgwUFRJeE8ySnlaV0ZyTzJOaGMyVWdNVGc2ZEM1d2NtVjJQVEU0TEhRdWREUTlkQzVqWVhSamFDZ3hLU3hqS0hRdWREUXBPMk5oYzJVZ01qRTZZMkZ6WlZ3aVpXNWtYQ0k2Y21WMGRYSnVJSFF1YzNSdmNDZ3BmWDBwTEhRc2JuVnNiQ3hiV3pFc01UaGRYU2w5S1NrcE8zSmxkSFZ5YmlCbWRXNWpkR2x2YmlobExISXBlM0psZEhWeWJpQjBMbUZ3Y0d4NUtIUm9hWE1zWVhKbmRXMWxiblJ6S1gxOUtDa3BLVHRqWVhObElERTZZMkZ6WlZ3aVpXNWtYQ0k2Y21WMGRYSnVJSFF1YzNSdmNDZ3BmWDBwTEhRcGZTa3BLVHR5WlhSMWNtNGdablZ1WTNScGIyNG9aU3h5S1h0eVpYUjFjbTRnZEM1aGNIQnNlU2gwYUdsekxHRnlaM1Z0Wlc1MGN5bDlmU2dwTzJWNGNHOXlkSHR2SUdGeklHZGxkRkJsY20xcGMzTnBiMjRzWXlCaGN5Qm5aWFJWYzJWeVRXVmthV0ZUZEhKbFlXMHNjaUJoY3lCcGMwNWhkbWxuWVhSdmNrMWxaR2xoUkdWMmFXTmxjMU4xY0hCdmNuUmxaQ3hsSUdGeklHbHpUbUYyYVdkaGRHOXlVR1Z5YldsemMybHZibk5UZFhCd2IzSjBaV1I5TzF4dUx5OGpJSE52ZFhKalpVMWhjSEJwYm1kVlVrdzlaR0YwWVRwaGNIQnNhV05oZEdsdmJpOXFjMjl1TzJOb1lYSnpaWFE5ZFhSbUxUZzdZbUZ6WlRZMExHVjVTakphV0VwNllWYzVkVWxxYjNwTVEwcHRZVmQ0YkVscWIybGhWelZyV2xobmRWcFlUWFZoYmsxcFRFTktlbUl6Vm5sWk1sWjZTV3B3WWtscE5IVk1NMDU1V1hrNWNHTXdOV2hrYld4dVdWaFNkbU5zUW14amJURndZek5PY0dJeU5YcFZNMVozWTBjNWVXUkhWbXRNYlhCNlNXbDNhVXhwTkhaak0wcHFUREpzZWxSdFJqSmhWMlJvWkVjNWVWUlhWbXRoVjBaRldsaGFjRmt5Vm5wVk0xWjNZMGM1ZVdSSFZtdE1iWEI2U1dsM2FVeHBOSFpqTTBwcVRESmtiR1JHUW14amJURndZek5PY0dJeU5IVmhiazFwVEVOSmRVeHBPWHBqYlUxMldqSldNRlpZVG14amF6RnNXa2RzYUZVelVubGFWMFowVEcxd2VrbHNNSE5KYms1MlpGaEthbHBZVGtSaU1qVXdXbGMxTUVscWNHSkphVGh4UzJ4NGRVbERiMmRSTW1oc1dUSnpaMlF5YUd4a1IyaHNZMmxDVDFsWVduQmFNa1l3WWpOSloxRldRa3BQYVVKM1dsaEtkR0ZZVG5waFZ6bDFZM2xDY0dONVFucGtXRUozWWpOS01GcFhVV2RaYm10blpFZG9iRWxIVGpGamJrcHNZbTVSWjFsdVNuWmtNMDVzWTJ4NGRVbERiMmRSU0Vwc1pFaFdlV0p1VFdkbE1rcDJZako0YkZsWE5UbFlSelJuUzJrNVkySnRWalJqUnpsNVpFTkNhMXBYV21oa1YzZ3dTVU5uY0VsRU1DdEpRMFZvWW0xR01tRlhaR2hrUnpsNVRHNUNiR050TVhCak0wNXdZakkxZWxoSE5HbE1RMGwyUzJsd1kySnBRWEZKUlU1dldsZE9ja2xJWkc5YVdGSnZXbGhKWjFSdFJqSmhWMlJvWkVjNWVVbEZSbEZUVkc5bllsZFdhMkZYUmtWYVdGcHdXVEpXZWtsSGJIcEpTRTR4WTBoQ2RtTnVVbXhhUTBKcFpWTkNNR0ZIVldkWk0xWjVZMjFXZFdSRFFtbGpiVGt6WXpKV2VWaEhOR2RMYVVKQlkyMVdNR1JZU25WamVVSTNXVzA1ZG1KSFZtaGliakZqWW1sQmNVd3hlSFZhV0doM1lqTktNRWxIVW14YWJVWXhZa2hSWjB0RGEyZFFWRFJuU1ZOR2RWbFlXbkJhTWtZd1lqTkpkV0pYVm10aFYwWkZXbGhhY0ZreVZucFlSelJwVEVOS2NHSllRblpqYmxGbllWaE9UMWxZV25CYU1rWXdZak5LVVZwWVNuUmhXRTU2WVZjNWRXTXhUakZqU0VKMlkyNVNiRnBEUW0xamJUbDBTVU5qZFV3eWJIcFViVVl5WVZka2FHUkhPWGxWUjFaNVlsZHNlbU15YkhaaWJrNVVaRmhDZDJJelNqQmFWMUZ1V0VjMVkySnBPSEZMYkhoMVNVTnZaMVZ0VmpCa1dFcDFZM2xDYUVsSVFubGlNakZ3WXpKVloyTnRWbnBpTW5neVdsZFJaMlF5YUd4aWFVSXdZVWRWWjJOSFZubGlWMng2WXpKc2RtSnBRbkJqZVVKdVkyMUdkV1JIVm10SlIwbzFTVWhTYjFwVFFqRmpNbFo1V0VjMFowdHBRa0ZqUjBaNVdWY3daMk5IVm5saVYyeDZZekpzZG1Kck5XaGlWMVZuU1VOQlowbERRV2RKUTBGblNVTkNUMWxYTVd4SlJ6bHRTVWhTYjFwVFFuZGFXRXAwWVZoT2VtRlhPWFZNYVVKQll6SldiRWxIYURCa1NFSjZUMms0ZG1SNlRtcE1iV1J3WkVkb01WbHBOWEJpZVRsM1dsaEtkR0ZZVG5waFZ6bDFZM2s0YWxwWE5URmlWMUpzV21reGQxcFlTblJoV0U1NllWYzVkV0p0Um5SYVZuaDFTVU52WjFGSVNteGtTRlo1WW01TloyVXhRbmxpTWpGd1l6SldPVmhITkdkTGFUbGpZbTFXTkdOSE9YbGtRMEpyV2xkYWFHUlhlREJKUjBaNlpWYzFha2xEYUhkYVdFcDBZVmhPZW1GWE9YVlViVVowV2xOcloxQlVOR2RsTVhoMVdFaFNlVnBZVWpGamJUUm5ZbTFXTTBsR1FubGlNakZ3WXpKVmIxbFlUalZpYlUxblMwaEtiR015T1hOa2JWVnpTVWhLYkdGdFZtcGtRMnRuVUZRMFoyVXhlSFZZU0ZKalpFZHNiVWxEWjJoaFdFNVBXVmhhY0ZveVJqQmlNMHBSV2xoS2RHRllUbnBoVnpsMVl6Rk9NV05JUW5aamJsSnNXa05uY0V0VFFqZFlSelZqWkVaNE1GaElVbmxhVjNCc1dUTlJiMkp0VmpOSlJWSlFWRlZXTkZreVZuZGtSMngyWW1sbmJsUnRSakpoVjJSb1pFYzVlVWxGUmxGVFZHOW5ZMGRXZVdKWGJIcGpNbXgyWW01TloySnRPVEJKU0U0eFkwaENkbU51VW14YVEyTnpTVU5rVDFReFVtWlZNVlpSVlVVNVUxWkZWa1ZZTUZaVFZXbGpjRXRXZUhWWVNGSmpaRWd4WTJKc2VIVllTRkpqWkVoU2VXVlRRamRZUnpWalpFWjRNRmhJVW1waU1qVjZaRU5DZDFwWVNuUmhXRTU2WVZjNWRWVXpVbWhrU0ZaNlNVUXdaMWxZWkdoaFdGRm5ZbTFHTW1GWFpHaGtSemw1VEc1Q2JHTnRNWEJqTTA1d1lqSTFla3h1UmpGYVdFbzFTMGh6WjJKdFJuUmFWRzluWTBkV2VXSlhiSHBqTW14MlltczFhR0pYVldkbVUyeGpZbXg0TUZoSVVtTmtSMDUyWW01T01FbEhPWFZSTW1ob1ltMWtiRWxFTUdkTFIxWXlXbGMxTUV0VFFUbFFhVUkzV0VjMVkyUkdlREJZU0ZKalpFaENiR050TVhCak0wNXdZakkxVkdSSFJqQmtXRTExWTIxV2RHSXpXbXhTV0Zwc1ltNVNUV0ZZVGpCYVZ6VnNZMmxuYmxreWFHaGliV1JzU25sM1oySXlOVVJoUjBaMVdqSlZjRmhITldOa1JuZ3dXRWhTWTJSSVNteGpNamx6WkcxV1VHTnNTbXhoYlZacVpFVkthR015Vm10VU1qVlVaRWRHTUZwVGFHeGtiVloxWkVNMU1GbFlTbTVhV0ZGMVl6TlNhR1JIVlhOSlNFcHNZekk1YzJSdFZYTkpTRXBzWVcxV2FtUkRiR05pYkhnd1dFaFNZMlJJTVdOaWJIZ3dXRWhTWTJSSVFteGpiVEZ3WXpOT2NHSXlOVlJrUjBZd1pGaE5kVmxYVW10U1dGcHNZbTVTVFdGWVRqQmFWelZzWTJsbmJsa3lhR2hpYldSc1NubDNaMkl5TlVSaFIwWjFXakpWY0ZoSE5XTmtSbmd3V0VoU2VWcFlUblppU0Zwc1ZETktVMXBYY0d4Wk0xSkRXVmhPYkZwRk9YVlZNMUpvWkVkVmIyTkhWbmxpVjJ4Nll6SnNkbUpzVGpCWldGSXhZM2sxZW1SSFJqQmFVM2RuWTIxV2VtSXllREphVTNkblkyMVdjVnBYVGpCTFZuaDFXRWhTWTJSSU1HZFpNa1l3V1RKblowdEhWbmxqYlRsNVMxTkNOMWhITldOa1JuZ3dXRWhTZVZwWGNHeFpNMUZ2V2xoS2VXSXpTWEJZUnpWalpFWjRNR1pXZUhWWVNGSTVTMVo0ZFdaV2VIVllSelZxWWpJMWVtUkRRbmxhV0U1MllraGFiRlF6U2xOYVYzQnNXVE5TUTFsWVRteGFSVGwxVlROU2FHUkhWV2RRVTBGdll6TlNhR1JIVlhOSlNFcHNZekk1YzJSdFZYTkpTRXBzWVcxV2FtUkRhMmRRVkRSblpURjRkVmhJVW5wa01td3dXVEpuWjB0SVRqQlpXRkpzUzFOQ04xaEhOV05rUm5nd1dUSkdlbHBUUVc1YVIxWjFZVmRXYTBwNmNHTmliSGd3V0VoU1kyUklTbXhoYlZacVpFTm9kVnBZWTJkU1JUbE9VbGhvYWxwWVFqQmhWemwxUzBOa1VWcFlTblJoV0U1NllWYzVkVWxIVW14aWJXeHNXa05qYzBsRFpFOVVNVkptVVZWNFRWUXhaRVpTUmpsR1ZXeEpia3RUYkdOaWJIZ3dXRWhTWTJSSFNubGFWMFp5V0VjMVkyUkdlREJhUjFadFdWaFdjMlJFY0dOaWJIZ3dXRWhTWTJSSVNteGpNamx6WkcxVmIyTXpVbWhrUjFWd1dFYzFZMlJJTVdOaWJqRmpZbWxKYzBsdGJIUmpSemw1WkVOQ2NHTXdOV2hrYld4dVdWaFNkbU5zUW14amJURndZek5PY0dJeU5YcFZNMVozWTBjNWVXUkhWbXRKUjFwNVlqSXdaMHA1TkhaaFdFNVBXVmhhY0ZveVJqQmlNMHBSV2xoS2RHRllUbnBoVnpsMVl6Rk9NV05JUW5aamJsSnNXa05rWTJKdGJIUmpSemw1WkVOQ2NHTXdOV2hrYld4dVdWaFNkbU5yTVd4YVIyeG9Va2RXTW1GWFRteGpNVTR4WTBoQ2RtTnVVbXhhUTBKdFkyMDVkRWxEWTNWTU1teDZWRzFHTW1GWFpHaGtSemw1VkZkV2EyRlhSa1ZhV0Zwd1dUSldlbFV6Vm5kalJ6bDVaRWRXYTBveGVIVmhWekYzWWpOS01FbEhaR3hrUmtKc1kyMHhjR016VG5CaU1qUm5XbTVLZG1KVFFXNU1hVGx1V2xoU1VWcFlTblJoV0U1NllWYzVkVW94ZUhWWVJ6UjJTMmx3WTJKcFFYRkpSa3BzWkVoV2VXSnVUV2RaVTBKM1kyMDVkR0ZZVG14SlNFcHNZekk1YzJSdFZtdEpTR1J2V2xjMFoyUkhhR3hKU0VKc1kyMHhjR016VG5CaU1qUm5ZVmhOWjFvelNtaGlibEpzV2tOQ2FXVlRRakJoUjFWblpGaE9iR05wUW1oaWJWRm5aRWRvYkVsSVRqQmpiVlpvWWxOQ2NHTjVRbmxhV0ZKNVlWZFdNbHBYVW1OaWFVRnhTVVZDZDFsWVNtaGlVMEozV2xoS2RHRllUbnBoVnpsMVZHMUdkRnBUUVdkSlEwRm5TVU5CWjBsRFFXZEpSVFZvWWxkVloySXlXV2RrUjJoc1NVaENiR050TVhCak0wNXdZakkwZFVsRlFucGFWMVZuWVVoU01HTklUVFpNZVRrelRUSk5kVm95YkRCaFNGWnBURzFzZGt3elFteGpiVEZ3WXpOT2NHSXlOWHBNZVU1c1ltNVdkRnBIVm0xTVdFSnNZMjB4Y0dNelRuQmlNalYxV1ZjeGJGaEhOR2RMYVVKQlkwZEdlVmxYTUdkaVYxWnJZVmRHVkdSSVNteFpWekZFWWpJMWVtUklTbWhoVnpVd1kzbEJaMGxEUWtSaU1qVjZaRWhLYUdGWE5UQmplVUoyV1cxd2JGa3pVWFZKUlVKNldsZFZaMkZJVWpCalNFMDJUSGs1YTFwWVdteGlSemwzV2xoSmRXSlhPVFpoVjNoeldWTTFkbU50WTNaYVZ6UjBWbFpOZGxwSE9XcGplVGxZV2xkSmRsRldRa3BNTURGc1drZHNhRlV6VW5sYVYwWjBVVEk1ZFdNelVubFpWMngxWkVoT1kySnBRWEZKUlVKNVdsaFNNV050TlhwSlNIUlJZMjA1ZEdGWVRteG1WbmgxU1VOdmRsaEhOV3hsU0VKMlkyNVJaMXBIVm0xWldGWnpaRU5DYUdNemJIVlplVUZ2WTBkV2VXSlhiSHBqTW14MlltczFhR0pYVlhOSlJ6RnNXa2RzYUZVelVubGFWMFowVVRJNWRXTXpVbmxaVjJ4MVpFaE5jRWxFTUN0SlNIUmpZbXg0TUdOdFZqQmtXRXAxU1VjMWJHUjVRbEZqYlRsMFlWaE9iRXRIUm5wbFZ6VnFTVU5vZVZwWVRuWmlTRnBzVEVOQ2VWcFhjR3haTTFGd1NVUXdLMGxJZEdOaWJIZ3dXRWhTY0ZwcFFXOUpWMng2VkcxR01tRlhaR2hrUnpsNVZVZFdlV0pYYkhwak1teDJZbTVPVkdSWVFuZGlNMG93V2xkUmIwdFRRamhtUTBGb1lWaE9UMWxZV25CYU1rWXdZak5LVGxwWFVuQlpWVkpzWkcxc2FscFlUbFJrV0VKM1lqTktNRnBYVVc5TFUydG5aVEY0ZFZoSVVtTmtSbmd3WTIxV2NWcFhUakJMUnpWc1pIbENSVlF3TVVabFIwNXNZMGhTY0dJeU5HOUtNRFZvWkcxc2JsbFlVblpqYVVKQ1ZVVnJOa2xJUW14amJURndZek5PY0dJeU5YcEpSemw1U1VVMWFHUnRiRzVaV0ZKMlkybENRbFZGYXpaSlJ6RnNXa2RzYUZKSFZqSmhWMDVzWTNsQ2RXSXpVV2RqTTFaM1kwYzVlV1JIVm10S2VYZG5TakExVUZaR09WUldWa0pSVkRGS1ZWSlZVbVpTVmtwVFNubHJjRmhITldOa1JuZ3dabFo0ZFZoSE5XTmtSbmd3WkVoS05VbElkR05pYkhnd1dFaFNZMlJIVG5aaWJrNHdTVVp6YzBsSVRqQmpiVlpvWWxZd1oxQlRRbWhrTWtad1pFTkNVV050T1hSaFdFNXNURzFHYzJKRGFHSllSelZqWkVaNE1GaElVbU5rUjBZeldWZHNNRWxIWkd4a1JrSnNZMjB4Y0dNelRuQmlNalJ2WTBkV2VXSlhiSHBqTW14MlltczFhR0pYVlhCTVJuaDFXRWhTWTJSR2VEQllTRkpvWkRKR2NHUkRRblZaV0Zwd1dqSkdNR0l6U1hWaVYxWnJZVmRHUlZwWVduQlpNbFo2VEcxa2JHUkdWbnBhV0VwT1dsZFNjRmxUYUhSYVYxSndXVlpPTUdOdFZtaGlWVTUyWW01T01HTnRSbkJpYmxKNlMxTjRZMkpzZURCWVNGSmpaRVl3Y0ZoSE5XTmtSbmd3V0VoU2VWcFlUblppU0Zwc1MwaE9NR050Vm1oaVUyeGpZbXg0TUZoSVVqbEpSMDVvWkVkT2IwbERhR3hqYmtwMlkybHJaMlV4ZUhWWVNGSmpaRVo0TUdOdFZuRmFWMDR3UzBkV2VXTnRPWGxMVm5oMVdFaFNZMlJJTVdOaWJIZ3dabE5zWTJKdU1XTmlhVXBrVEVOS2RWbFhNV3hqZVVrMlYzbEtkVmxZV25CYU1rWXdZak5KYVV4RFNuZGFXRXAwWVZoT2VtRlhPWFZqZVVselNXMHhiRnBIYkdoU1IxWXlZVmRPYkdONVNYTkpia0pzWTIweGNHTXpUbkJpTWpWUFdWY3hiRWxwZDJsVlNFcDJZbGRzZWxwVFNYTkpia3BzWXpJNWMyUnRWV2xNUTBwNVdsZHdiRmt6VVdsTVEwcHdZekExYUdSdGJHNVpXRkoyWTJ4Q2JHTnRNWEJqTTA1d1lqSTFlbFV6Vm5kalJ6bDVaRWRXYTBscGQybFNSVGxPVWxob2FscFlRakJoVnpsMVNXbDNhV05ZVm14amJtdHBURU5LZFZsWE1XeEphWGRwWTBkV2VXSlhiSHBqTW14MllteE9NRmxZVWpGamVVbHpTVzA1ZFZFeWFHaGliV1JzU1dsM2FWcFlXbXhpYmxGcFRFTktlVnBYTVhaa2JWWkdaRzFXZFdSRmVIQmpNMUpzWW0xV2VVbHBkMmxqYlZaNllqSjRNbHBWT1hsVmJWWnhXbGRPTUZGdFJucGFWMUpRWW14T01GbFlVbXhKYVhkcFpFZEdlVm95VmpCSmFYZHBZek5TYUdSSFZXbE1RMHBvV2tkU1JtUnRWblZrUlhod1l6TlNiR0p0Vm5sSmFYZHBZbGRXYTJGWFJsUmtTRXBzV1ZjeFJHSXlOWHBrU0Vwb1lWYzFNR041U1hOSmJXeDZWRzFHTW1GWFpHaGtSemw1VkZkV2EyRlhSa1ZhV0Zwd1dUSldlbFV6Vm5kalJ6bDVaRWRXYTBscGQybGFNbFl3VlVkV2VXSlhiSHBqTW14MlltbEpjMGx0Wkd4a1JsWjZXbGhLVGxwWFVuQlpVMGx6U1cxR2MySkRTWE5KYms0d1kyMVdhR0pUU21STVEwcDBXVmhDZDJGWE5XNWplVWsyU1d0R1FsTlZSWE5sVlVwQ1VWaFdRMUZUZUZaUlZVWldVWGw0Y2xFd1RrSldhMUZ6VmxWR1FsWlZWWE5oV0doRVVUQmtjVkY1ZUhKU1JVWkNXbE40V0ZGVlJsQlJlWGN3VWpCR1JGcERlRXBSVlVaS1VYbDRkbEpGUmtKVlUzaFlVVlZHVUZGNWVFWlJWVVpVVVhsNGNsSXdSa1JPTUVwRVRFVjBRbEV3Y0VWTVJWWkNVVlU0YzFOVlJrSlRWVlZ6V1ZWR1FsbFRkM2xSTUVaQ1RrVk5jMlF3VGtKVFdFcEVWV2w0VmxGVlJsWlJlWGhhVVZWR1dsVlRlRTVSVlVaT1RFVk9RbEZWVmtSTVJYUkNVVlV4VVV4R1pFSlJWR1JGVlZONFZGRlZUa0pSZVhoR1VWVkdXRXhHVGtKUlZtaENURVZXUWxGV2JFUk1SV1JDVVRKd1ExSnBlRVpSVlVad1VXdGpjMkl3U2tKUlZ6bERURVpPUWxGV1ZrZE1SV1JDVVhrNVJGSjVlRVpSVlVVd1VXdFpjMUpWUmtKVVZXTnpWREJHUWxRd1RYTlVWVVpDVkRGdmMxSlZSa0pWTUUxelUxVkdSazFWVWt4TVJWWkNVVmRzUTFSNWVIQlJhMFpDWVZWSmMxVXdSa0pXVlRSelVqQkdSRTVWVGtoTVJWWkNVVlJTUTFOcGVFWlJWVVp3VVdzd2MxUlZSa0pVTVc5elVsVkdRbFV3VFhOalZWSkNVbFJrUlZGVGR6SlVhMFpNVWpGTmMxSlZSa0pQUlVselZUQkdRbEV3VlhOU1ZVWkNWREZ2YzFKVlJrSlZNRTF6VmxWR1JFNVZUbGhNUlRsQ1VUQlpjMVV3UmtSVGJHZHpVbFZHUWxSNWVFcFJWVVpLVWxONGFGRlZSbWhNUnpsRFVWVkdlRkZwZUhKUk1FWklUakJPU1V4RlZrSlJWa1phVEVjeFJWRXpXa05UVTNoWVVWVkdVRnBEZUVaUlZVWnVVVzFrUTB4RVVraFJWVTAxVVdsNFNsRlZSa3BhYVhoMlVrVkdRbFZUZUZoUlZVWlFVWGw0UmxGVlJsUlJlWGgyVWpCR1JFNHdTa1JNUlhSQ1VWaE9SRmxUZUV4UlZVMTRVVEpSYzFKVlJrSlVlWGhLVVZWR1NsSlRlR2hSVlVab1RFUkNSbEZWUlhsU1UzaDJVVEJHU2sxVlZrdE1SMnhEVVZWT2MxRnRiRU5NUlZaQ1VWZE9jMUZwZUhwUk1FWkVXa1ZuYzFaVlJrSldWVlZ6V1ZWR1FsbFhPVU5NUjBaQ1VWZEdTVXhFV2tWUlZWcFhVMU4zTkZFd1JrSmxSVXBFVEVVNVFsTldVblZSYVhoR1VWVkdVbUpWU1hOalZWSkNVbFpLYzFGcFNqbGNiaUlzSW1sdGNHOXlkQ0I3SUdselRtRjJhV2RoZEc5eVVHVnliV2x6YzJsdmJuTlRkWEJ3YjNKMFpXUXNJR2x6VG1GMmFXZGhkRzl5VFdWa2FXRkVaWFpwWTJWelUzVndjRzl5ZEdWa0xDQm5aWFJWYzJWeVRXVmthV0ZUZEhKbFlXMGdmU0JtY205dElDZEFkVzUwWlcxd2N5OTFjMlZ5TFhCbGNtMXBjM05wYjI1ekxYVjBhV3h6SjF4dVhHNWpiR0Z6Y3lCV2IyTmhiQ0I3WEc1Y2RITjBZWFJwWXlCa1pXWmhkV3gwVDNCMGFXOXVjeUE5SUh0Y2JseDBYSFJuY21GdGJXRnljem9nYm5Wc2JDeGNibHgwWEhSc1lXNW5PaUFuWlc0dFZWTW5MRnh1WEhSY2RHTnZiblJwYm5WdmRYTTZJR1poYkhObExGeHVYSFJjZEdsdWRHVnlhVzFTWlhOMWJIUnpPaUJtWVd4elpTeGNibHgwWEhSdFlYaEJiSFJsY201aGRHbDJaWE02SURFc1hHNWNkRngwYzJWeWRtbGpaVlZTU1RvZ2JuVnNiQ3hjYmx4MGZWeHVYRzVjZEhOMFlYUnBZeUJsZG1WdWRGUjVjR1Z6SUQwZ2UxeHVYSFJjZEVGVlJFbFBYMFZPUkRvZ0oyRjFaR2x2Wlc1a0p5eGNibHgwWEhSQlZVUkpUMTlUVkVGU1ZEb2dKMkYxWkdsdmMzUmhjblFuTEZ4dVhIUmNkRVZPUkRvZ0oyVnVaQ2NzWEc1Y2RGeDBSVkpTVDFJNklDZGxjbkp2Y2ljc1hHNWNkRngwVGs5ZlRVRlVRMGc2SUNkdWIyMWhkR05vSnl4Y2JseDBYSFJTUlZOVlRGUTZJQ2R5WlhOMWJIUW5MRnh1WEhSY2RGTlBWVTVFWDBWT1JEb2dKM052ZFc1a1pXNWtKeXhjYmx4MFhIUlRUMVZPUkY5VFZFRlNWRG9nSjNOdmRXNWtjM1JoY25RbkxGeHVYSFJjZEZOUVJVVkRTRjlGVGtRNklDZHpjR1ZsWTJobGJtUW5MRnh1WEhSY2RGTlFSVVZEU0Y5VFZFRlNWRG9nSjNOd1pXVmphSE4wWVhKMEp5eGNibHgwWEhSVFZFRlNWRG9nSjNOMFlYSjBKeXhjYmx4MGZWeHVYRzVjZEhOMFlYUnBZeUJuWlhRZ2FYTlRkWEJ3YjNKMFpXUW9LU0I3WEc1Y2RGeDBjbVYwZFhKdUlDRWhWbTlqWVd3dVgzSmxjMjlzZG1WVGNHVmxZMmhTWldOdloyNXBkR2x2YmlncElDWW1JQ0VoYVhOT1lYWnBaMkYwYjNKUVpYSnRhWE56YVc5dWMxTjFjSEJ2Y25SbFpDZ3BJQ1ltSUNFaGFYTk9ZWFpwWjJGMGIzSk5aV1JwWVVSbGRtbGpaWE5UZFhCd2IzSjBaV1FvS1Z4dVhIUjlYRzVjYmx4MGMzUmhkR2xqSUhObGRDQnBjMU4xY0hCdmNuUmxaQ2hmS1NCN1hHNWNkRngwZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RaYjNVZ1kyRnVibTkwSUhObGRDQnBjMU4xY0hCdmNuUmxaQ0JrYVhKbFkzUnNlUzRuS1Z4dVhIUjlYRzVjYmx4MFgybHVjM1JoYm1ObElEMGdiblZzYkZ4dVhIUmZiR2x6ZEdWdVpYSnpJRDBnYm5Wc2JGeHVYRzVjZEdOdmJuTjBjblZqZEc5eUtHOXdkR2x2Ym5NcElIdGNibHgwWEhSamIyNXpkQ0JUY0dWbFkyaFNaV052WjI1cGRHbHZiaUE5SUZadlkyRnNMbDl5WlhOdmJIWmxVM0JsWldOb1VtVmpiMmR1YVhScGIyNG9LVnh1WEhSY2RHbG1JQ2doVTNCbFpXTm9VbVZqYjJkdWFYUnBiMjRwSUh0Y2JseDBYSFJjZEhSb2NtOTNJRzVsZHlCRVQwMUZlR05sY0hScGIyNG9KMU53WldWamFGSmxZMjluYm1sMGFXOXVJRzV2ZENCemRYQndiM0owWldRbkxDQW5UazlVWDFOVlVGQlBVbFJGUkY5RlVsSW5LVnh1WEhSY2RIMWNibHh1WEhSY2RIUm9hWE11WDJsdWMzUmhibU5sSUQwZ2JtVjNJRk53WldWamFGSmxZMjluYm1sMGFXOXVLQ2xjYmx4MFhIUjBhR2x6TGw5c2FYTjBaVzVsY25NZ1BTQjdmVnh1WEc1Y2RGeDBUMkpxWldOMExtVnVkSEpwWlhNb2UxeHVYSFJjZEZ4MExpNHVWbTlqWVd3dVpHVm1ZWFZzZEU5d2RHbHZibk1zWEc1Y2RGeDBYSFF1TGk0b2IzQjBhVzl1Y3lCOGZDQjdmU2tzWEc1Y2RGeDBmU2t1Wm05eVJXRmphQ2dvVzJ0bGVTd2dkbUZzZFdWZEtTQTlQaUI3WEc1Y2RGeDBYSFJwWmlBb2EyVjVJRDA5UFNBblozSmhiVzFoY25NbklDWW1JQ0YyWVd4MVpTa2dlMXh1WEhSY2RGeDBYSFJqYjI1emRDQlRjR1ZsWTJoSGNtRnRiV0Z5VEdsemRDQTlJRlp2WTJGc0xsOXlaWE52YkhabFUzQmxaV05vUjNKaGJXMWhja3hwYzNRb0tWeHVYSFJjZEZ4MFhIUnBaaUFvSVNGVGNHVmxZMmhIY21GdGJXRnlUR2x6ZENrZ2UxeHVYSFJjZEZ4MFhIUmNkSFpoYkhWbElEMGdibVYzSUZOd1pXVmphRWR5WVcxdFlYSk1hWE4wS0NsY2JseDBYSFJjZEZ4MGZWeHVYSFJjZEZ4MGZWeHVYSFJjZEZ4MGRHaHBjeTVmYVc1emRHRnVZMlZiYTJWNVhTQTlJSFpoYkhWbFhHNWNkRngwZlNsY2JseDBmVnh1WEc1Y2RHZGxkQ0JwYm5OMFlXNWpaU2dwSUh0Y2JseDBYSFJ5WlhSMWNtNGdkR2hwY3k1ZmFXNXpkR0Z1WTJWY2JseDBmVnh1WEc1Y2RITmxkQ0JwYm5OMFlXNWpaU2hmS1NCN1hHNWNkRngwZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RaYjNVZ1kyRnVibTkwSUhObGRDQnBibk4wWVc1alpTQmthWEpsWTNSc2VTNG5LVnh1WEhSOVhHNWNibHgwWVhONWJtTWdjM1JoY25Rb0tTQjdYRzVjZEZ4MGFXWWdLQ0VoZEdocGN5NWZhVzV6ZEdGdVkyVXBJSHRjYmx4MFhIUmNkSFJ5ZVNCN1hHNWNkRngwWEhSY2RHTnZibk4wSUhOMGNtVmhiU0E5SUdGM1lXbDBJR2RsZEZWelpYSk5aV1JwWVZOMGNtVmhiU2duYldsamNtOXdhRzl1WlNjc0lIc2dZWFZrYVc4NklIUnlkV1VnZlNsY2JseDBYSFJjZEZ4MGFXWWdLQ0Z6ZEhKbFlXMHBJSHRjYmx4MFhIUmNkRngwWEhSMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjFWdVlXSnNaU0IwYnlCeVpYUnlhV1YyWlNCMGFHVWdjM1J5WldGdElHWnliMjBnYldWa2FXRWdaR1YyYVdObEp5bGNibHgwWEhSY2RGeDBmVnh1WEhSY2RGeDBYSFIwYUdsekxsOXBibk4wWVc1alpTNXpkR0Z5ZENncFhHNWNkRngwWEhSOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dVhIUmNkRngwWEhSamIyNXpkQ0JsY25KdmNraGhibVJzWlhJZ1BTQjBhR2x6TGw5c2FYTjBaVzVsY25NdVpYSnliM0pjYmx4MFhIUmNkRngwYVdZZ0tDRWhaWEp5YjNKSVlXNWtiR1Z5S1NCN1hHNWNkRngwWEhSY2RGeDBaWEp5YjNKSVlXNWtiR1Z5S0dWeWNtOXlLVnh1WEhSY2RGeDBYSFI5WEc1Y2RGeDBYSFI5WEc1Y2RGeDBmVnh1WEc1Y2RGeDBjbVYwZFhKdUlIUm9hWE5jYmx4MGZWeHVYRzVjZEhOMGIzQW9LU0I3WEc1Y2RGeDBhV1lnS0NFaGRHaHBjeTVmYVc1emRHRnVZMlVwSUh0Y2JseDBYSFJjZEhSb2FYTXVYMmx1YzNSaGJtTmxMbk4wYjNBb0tWeHVYSFJjZEgxY2JseHVYSFJjZEhKbGRIVnliaUIwYUdselhHNWNkSDFjYmx4dVhIUmhZbTl5ZENncElIdGNibHgwWEhScFppQW9JU0YwYUdsekxsOXBibk4wWVc1alpTa2dlMXh1WEhSY2RGeDBkR2hwY3k1ZmFXNXpkR0Z1WTJVdVlXSnZjblFvS1Z4dVhIUmNkSDFjYmx4dVhIUmNkSEpsZEhWeWJpQjBhR2x6WEc1Y2RIMWNibHh1WEhSaFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0dWMlpXNTBWSGx3WlN3Z1kyRnNiR0poWTJzcElIdGNibHgwWEhScFppQW9JU0YwYUdsekxsOXBibk4wWVc1alpTQW1KaUIwYUdsekxsOXBibU5zZFdSbGMwVjJaVzUwVkhsd1pTaGxkbVZ1ZEZSNWNHVXBLU0I3WEc1Y2RGeDBYSFJwWmlBb0lTRjBhR2x6TGw5c2FYTjBaVzVsY25OYlpYWmxiblJVZVhCbFhTa2dlMXh1WEhSY2RGeDBYSFIwYUdsekxuSmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSW9aWFpsYm5SVWVYQmxLVnh1WEhSY2RGeDBmVnh1WEc1Y2RGeDBYSFJqYjI1emRDQm9ZVzVrYkdWeUlEMGdLR1YyWlc1MEtTQTlQaUI3WEc1Y2RGeDBYSFJjZEd4bGRDQmhaR1JwZEdsdmJtRnNRWEpuY3lBOUlGdGRYRzVjZEZ4MFhIUmNkR2xtSUNobGRtVnVkRlI1Y0dVZ1BUMDlJRlp2WTJGc0xtVjJaVzUwVkhsd1pYTXVVa1ZUVlV4VUtTQjdYRzVjZEZ4MFhIUmNkRngwYVdZZ0tDRWhaWFpsYm5RdWNtVnpkV3gwY3lBbUppQmxkbVZ1ZEM1eVpYTjFiSFJ6TG14bGJtZDBhQ0ErSURBcElIdGNibHgwWEhSY2RGeDBYSFJjZEdGa1pHbDBhVzl1WVd4QmNtZHpMbkIxYzJnb1pYWmxiblF1Y21WemRXeDBjMXN3WFZzd1hTNTBjbUZ1YzJOeWFYQjBLVnh1WEhSY2RGeDBYSFJjZEgxY2JseDBYSFJjZEZ4MGZWeHVYRzVjZEZ4MFhIUmNkQ0VoWTJGc2JHSmhZMnNnSmlZZ1kyRnNiR0poWTJzdVlYQndiSGtvZEdocGN5d2dXMlYyWlc1MExDQXVMaTVoWkdScGRHbHZibUZzUVhKbmMxMHBYRzVjZEZ4MFhIUjlYRzVjZEZ4MFhIUjBhR2x6TGw5cGJuTjBZVzVqWlM1aFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0dWMlpXNTBWSGx3WlN3Z2FHRnVaR3hsY2lsY2JseHVYSFJjZEZ4MGRHaHBjeTVmYkdsemRHVnVaWEp6VzJWMlpXNTBWSGx3WlYwZ1BTQm9ZVzVrYkdWeVhHNWNkRngwZlZ4dVhHNWNkRngwY21WMGRYSnVJSFJvYVhOY2JseDBmVnh1WEc1Y2RISmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSW9aWFpsYm5SVWVYQmxLU0I3WEc1Y2RGeDBZMjl1YzNRZ2FHRnVaR3hsY2lBOUlIUm9hWE11WDJ4cGMzUmxibVZ5YzF0bGRtVnVkRlI1Y0dWZFhHNWNkRngwZEdocGN5NWZhVzV6ZEdGdVkyVXVjbVZ0YjNabFJYWmxiblJNYVhOMFpXNWxjaWhsZG1WdWRGUjVjR1VzSUdoaGJtUnNaWElwWEc1Y2JseDBYSFJrWld4bGRHVWdkR2hwY3k1ZmJHbHpkR1Z1WlhKelcyVjJaVzUwVkhsd1pWMWNibHh1WEhSY2RISmxkSFZ5YmlCMGFHbHpYRzVjZEgxY2JseHVYSFJqYkdWaGJuVndLQ2tnZTF4dVhIUmNkSFJvYVhNdWMzUnZjQ2dwWEc1Y2JseDBYSFJQWW1wbFkzUXVhMlY1Y3loMGFHbHpMbDlzYVhOMFpXNWxjbk1wTG1admNrVmhZMmdvS0d0bGVTa2dQVDRnZEdocGN5NXlaVzF2ZG1WRmRtVnVkRXhwYzNSbGJtVnlLR3RsZVNrcFhHNWNkRngwZEdocGN5NWZhVzV6ZEdGdVkyVWdQU0J1ZFd4c1hHNWNibHgwWEhSeVpYUjFjbTRnZEdocGMxeHVYSFI5WEc1Y2JseDBYMmx1WTJ4MVpHVnpSWFpsYm5SVWVYQmxLR1YyWlc1MFZIbHdaU2tnZTF4dVhIUmNkSEpsZEhWeWJpQWhJVTlpYW1WamRDNTJZV3gxWlhNb1ZtOWpZV3d1WlhabGJuUlVlWEJsY3lrdVptbHVaQ2dvZEhsd1pTa2dQVDRnZEhsd1pTQTlQVDBnWlhabGJuUlVlWEJsS1Z4dVhIUjlYRzVjYmx4MGMzUmhkR2xqSUY5eVpYTnZiSFpsVTNCbFpXTm9VbVZqYjJkdWFYUnBiMjRvS1NCN1hHNWNkRngwY21WMGRYSnVJQ2hjYmx4MFhIUmNkSGRwYm1SdmR5NVRjR1ZsWTJoU1pXTnZaMjVwZEdsdmJpQjhmRnh1WEhSY2RGeDBkMmx1Wkc5M0xuZGxZbXRwZEZOd1pXVmphRkpsWTI5bmJtbDBhVzl1SUh4OFhHNWNkRngwWEhSM2FXNWtiM2N1Ylc5NlUzQmxaV05vVW1WamIyZHVhWFJwYjI0Z2ZIeGNibHgwWEhSY2RIZHBibVJ2ZHk1dGMxTndaV1ZqYUZKbFkyOW5ibWwwYVc5dVhHNWNkRngwS1Z4dVhIUjlYRzVjYmx4MGMzUmhkR2xqSUY5eVpYTnZiSFpsVTNCbFpXTm9SM0poYlcxaGNreHBjM1FvS1NCN1hHNWNkRngwY21WMGRYSnVJQ2hjYmx4MFhIUmNkSGRwYm1SdmR5NVRjR1ZsWTJoSGNtRnRiV0Z5VEdsemRDQjhmRnh1WEhSY2RGeDBkMmx1Wkc5M0xuZGxZbXRwZEZOd1pXVmphRWR5WVcxdFlYSk1hWE4wSUh4OFhHNWNkRngwWEhSM2FXNWtiM2N1Ylc5NlUzQmxaV05vUjNKaGJXMWhja3hwYzNRZ2ZIeGNibHgwWEhSY2RIZHBibVJ2ZHk1dGMxTndaV1ZqYUVkeVlXMXRZWEpNYVhOMFhHNWNkRngwS1Z4dVhIUjlYRzU5WEc1Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUZadlkyRnNYRzRpWFN3aWJtRnRaWE1pT2xzaWNuVnVkR2x0WlNJc0ltVjRjRzl5ZEhNaUxDSlBjQ0lzSWs5aWFtVmpkQ0lzSW5CeWIzUnZkSGx3WlNJc0ltaGhjMDkzYmlJc0ltaGhjMDkzYmxCeWIzQmxjblI1SWl3aUpGTjViV0p2YkNJc0lsTjViV0p2YkNJc0ltbDBaWEpoZEc5eVUzbHRZbTlzSWl3aWFYUmxjbUYwYjNJaUxDSmhjM2x1WTBsMFpYSmhkRzl5VTNsdFltOXNJaXdpWVhONWJtTkpkR1Z5WVhSdmNpSXNJblJ2VTNSeWFXNW5WR0ZuVTNsdFltOXNJaXdpZEc5VGRISnBibWRVWVdjaUxDSmtaV1pwYm1VaUxDSnZZbW9pTENKclpYa2lMQ0oyWVd4MVpTSXNJbVJsWm1sdVpWQnliM0JsY25SNUlpd2laVzUxYldWeVlXSnNaU0lzSW1OdmJtWnBaM1Z5WVdKc1pTSXNJbmR5YVhSaFlteGxJaXdpWlhKeUlpd2lkM0poY0NJc0ltbHVibVZ5Um00aUxDSnZkWFJsY2tadUlpd2ljMlZzWmlJc0luUnllVXh2WTNOTWFYTjBJaXdpY0hKdmRHOUhaVzVsY21GMGIzSWlMQ0pIWlc1bGNtRjBiM0lpTENKblpXNWxjbUYwYjNJaUxDSmpjbVZoZEdVaUxDSmpiMjUwWlhoMElpd2lRMjl1ZEdWNGRDSXNJbDlwYm5admEyVWlMQ0p6ZEdGMFpTSXNJbTFsZEdodlpDSXNJbUZ5WnlJc0lrVnljbTl5SWl3aVpHOXVaVkpsYzNWc2RDSXNJbVJsYkdWbllYUmxJaXdpWkdWc1pXZGhkR1ZTWlhOMWJIUWlMQ0p0WVhsaVpVbHVkbTlyWlVSbGJHVm5ZWFJsSWl3aVEyOXVkR2x1ZFdWVFpXNTBhVzVsYkNJc0luTmxiblFpTENKZmMyVnVkQ0lzSW1ScGMzQmhkR05vUlhoalpYQjBhVzl1SWl3aVlXSnlkWEIwSWl3aWNtVmpiM0prSWl3aWRISjVRMkYwWTJnaUxDSjBlWEJsSWl3aVpHOXVaU0lzSW0xaGEyVkpiblp2YTJWTlpYUm9iMlFpTENKbWJpSXNJbU5oYkd3aUxDSkhaVzVsY21GMGIzSkdkVzVqZEdsdmJpSXNJa2RsYm1WeVlYUnZja1oxYm1OMGFXOXVVSEp2ZEc5MGVYQmxJaXdpU1hSbGNtRjBiM0pRY205MGIzUjVjR1VpTENKMGFHbHpJaXdpWjJWMFVISnZkRzhpTENKblpYUlFjbTkwYjNSNWNHVlBaaUlzSWs1aGRHbDJaVWwwWlhKaGRHOXlVSEp2ZEc5MGVYQmxJaXdpZG1Gc2RXVnpJaXdpUjNBaUxDSmtaV1pwYm1WSmRHVnlZWFJ2Y2sxbGRHaHZaSE1pTENKbWIzSkZZV05vSWl3aVFYTjVibU5KZEdWeVlYUnZjaUlzSWxCeWIyMXBjMlZKYlhCc0lpd2ljSEpsZG1sdmRYTlFjbTl0YVhObElpd2lZMkZzYkVsdWRtOXJaVmRwZEdoTlpYUm9iMlJCYm1SQmNtY2lMQ0p5WlhOdmJIWmxJaXdpY21WcVpXTjBJaXdpYVc1MmIydGxJaXdpY21WemRXeDBJaXdpWDE5aGQyRnBkQ0lzSW5Sb1pXNGlMQ0oxYm5keVlYQndaV1FpTENKbGNuSnZjaUlzSW5WdVpHVm1hVzVsWkNJc0lsUjVjR1ZGY25KdmNpSXNJbWx1Wm04aUxDSnlaWE4xYkhST1lXMWxJaXdpYm1WNGRDSXNJbTVsZUhSTWIyTWlMQ0p3ZFhOb1ZISjVSVzUwY25raUxDSnNiMk56SWl3aVpXNTBjbmtpTENKMGNubE1iMk1pTENKallYUmphRXh2WXlJc0ltWnBibUZzYkhsTWIyTWlMQ0poWm5SbGNreHZZeUlzSW5SeWVVVnVkSEpwWlhNaUxDSndkWE5vSWl3aWNtVnpaWFJVY25sRmJuUnllU0lzSW1OdmJYQnNaWFJwYjI0aUxDSnlaWE5sZENJc0ltbDBaWEpoWW14bElpd2lhWFJsY21GMGIzSk5aWFJvYjJRaUxDSnBjMDVoVGlJc0lteGxibWQwYUNJc0lta2lMQ0pqYjI1emRISjFZM1J2Y2lJc0ltUnBjM0JzWVhsT1lXMWxJaXdpYVhOSFpXNWxjbUYwYjNKR2RXNWpkR2x2YmlJc0ltZGxia1oxYmlJc0ltTjBiM0lpTENKdVlXMWxJaXdpYldGeWF5SXNJbk5sZEZCeWIzUnZkSGx3WlU5bUlpd2lYMTl3Y205MGIxOWZJaXdpWVhkeVlYQWlMQ0poYzNsdVl5SXNJbEJ5YjIxcGMyVWlMQ0pwZEdWeUlpd2lkRzlUZEhKcGJtY2lMQ0pyWlhseklpd2liMkpxWldOMElpd2ljbVYyWlhKelpTSXNJbkJ2Y0NJc0luTnJhWEJVWlcxd1VtVnpaWFFpTENKd2NtVjJJaXdpWTJoaGNrRjBJaXdpYzJ4cFkyVWlMQ0p6ZEc5d0lpd2ljbTl2ZEZKbFkyOXlaQ0lzSW5KMllXd2lMQ0psZUdObGNIUnBiMjRpTENKb1lXNWtiR1VpTENKc2IyTWlMQ0pqWVhWbmFIUWlMQ0pvWVhORFlYUmphQ0lzSW1oaGMwWnBibUZzYkhraUxDSm1hVzVoYkd4NVJXNTBjbmtpTENKamIyMXdiR1YwWlNJc0ltWnBibWx6YUNJc0ltTmhkR05vSWl3aWRHaHliM2R1SWl3aVpHVnNaV2RoZEdWWmFXVnNaQ0lzSW0xdlpIVnNaU0lzSW5KbFoyVnVaWEpoZEc5eVVuVnVkR2x0WlNJc0ltRmpZMmxrWlc1MFlXeFRkSEpwWTNSTmIyUmxJaXdpUm5WdVkzUnBiMjRpTENKaGMzbHVZMGRsYm1WeVlYUnZjbE4wWlhBaUxDSm5aVzRpTENKZmJtVjRkQ0lzSWw5MGFISnZkeUlzSW1GeVozTWlMQ0poY21kMWJXVnVkSE1pTENKaGNIQnNlU0lzSW1GeWNpSXNJa0Z5Y21GNUlpd2lhWE5CY25KaGVTSXNJbDloY25JaUxDSmZiaUlzSWw5a0lpd2lYMlVpTENKZmN5SXNJbDlwSWl3aWJHVnVJaXdpWVhKeU1pSXNJbThpTENKdGFXNU1aVzRpTENKaGNuSmhlVXhwYTJWVWIwRnljbUY1SWl3aWJpSXNJbVp5YjIwaUxDSjBaWE4wSWl3aVlYSnlZWGxYYVhSb1NHOXNaWE1pTENKcGRHVnlZV0pzWlZSdlFYSnlZWGxNYVcxcGRDSXNJblZ1YzNWd2NHOXlkR1ZrU1hSbGNtRmliR1ZVYjBGeWNtRjVJaXdpYm05dVNYUmxjbUZpYkdWU1pYTjBJaXdpYVc1emRHRnVZMlVpTENKRGIyNXpkSEoxWTNSdmNpSXNJbDlrWldacGJtVlFjbTl3WlhKMGFXVnpJaXdpZEdGeVoyVjBJaXdpY0hKdmNITWlMQ0prWlhOamNtbHdkRzl5SWl3aWNISnZkRzlRY205d2N5SXNJbk4wWVhScFkxQnliM0J6SWl3aVpTSXNJbTVoZG1sbllYUnZjaUlzSW5CbGNtMXBjM05wYjI1eklpd2ljaUlzSW0xbFpHbGhSR1YyYVdObGN5SXNJblFpTENKaElpd2lkU0lzSW1NaUxDSnlaWFIxY200aUxDSkVUMDFGZUdObGNIUnBiMjRpTENKeGRXVnllU0lzSW5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJaUxDSmhaR1JGZG1WdWRFeHBjM1JsYm1WeUlpd2lkREFpTENKeklpd2laaUlzSW5BaUxDSjBNU0lzSW1kbGRGVnpaWEpOWldScFlTSXNJblF5SWl3aWRETWlMQ0poYkd3aUxDSjBOQ0lzSWxadlkyRnNJaXdpYjNCMGFXOXVjeUlzSWxOd1pXVmphRkpsWTI5bmJtbDBhVzl1SWl3aVgzSmxjMjlzZG1WVGNHVmxZMmhTWldOdloyNXBkR2x2YmlJc0lsOXBibk4wWVc1alpTSXNJbDlzYVhOMFpXNWxjbk1pTENKbGJuUnlhV1Z6SWl3aVpHVm1ZWFZzZEU5d2RHbHZibk1pTENKVGNHVmxZMmhIY21GdGJXRnlUR2x6ZENJc0lsOXlaWE52YkhabFUzQmxaV05vUjNKaGJXMWhja3hwYzNRaUxDSmZkR2hwY3lJc0ltbHpUbUYyYVdkaGRHOXlVR1Z5YldsemMybHZibk5UZFhCd2IzSjBaV1FpTENKcGMwNWhkbWxuWVhSdmNrMWxaR2xoUkdWMmFXTmxjMU4xY0hCdmNuUmxaQ0lzSWw4aUxDSm5aWFJWYzJWeVRXVmthV0ZUZEhKbFlXMGlMQ0poZFdScGJ5SXNJbk4wWVhKMElpd2laWEp5YjNKSVlXNWtiR1Z5SWl3aVlXSnZjblFpTENKbGRtVnVkRlI1Y0dVaUxDSmpZV3hzWW1GamF5SXNJbDlwYm1Oc2RXUmxjMFYyWlc1MFZIbHdaU0lzSW1oaGJtUnNaWElpTENKbGRtVnVkQ0lzSW1Ga1pHbDBhVzl1WVd4QmNtZHpJaXdpWlhabGJuUlVlWEJsY3lJc0lsSkZVMVZNVkNJc0luSmxjM1ZzZEhNaUxDSjBjbUZ1YzJOeWFYQjBJaXdpWDNSb2FYTXlJaXdpWDNSb2FYTXpJaXdpWm1sdVpDSXNJbmRwYm1SdmR5SXNJbmRsWW10cGRGTndaV1ZqYUZKbFkyOW5ibWwwYVc5dUlpd2liVzk2VTNCbFpXTm9VbVZqYjJkdWFYUnBiMjRpTENKdGMxTndaV1ZqYUZKbFkyOW5ibWwwYVc5dUlpd2lkMlZpYTJsMFUzQmxaV05vUjNKaGJXMWhja3hwYzNRaUxDSnRiM3BUY0dWbFkyaEhjbUZ0YldGeVRHbHpkQ0lzSW0xelUzQmxaV05vUjNKaGJXMWhja3hwYzNRaUxDSm5jbUZ0YldGeWN5SXNJbXhoYm1jaUxDSmpiMjUwYVc1MWIzVnpJaXdpYVc1MFpYSnBiVkpsYzNWc2RITWlMQ0p0WVhoQmJIUmxjbTVoZEdsMlpYTWlMQ0p6WlhKMmFXTmxWVkpKSWl3aVFWVkVTVTlmUlU1RUlpd2lRVlZFU1U5ZlUxUkJVbFFpTENKRlRrUWlMQ0pGVWxKUFVpSXNJazVQWDAxQlZFTklJaXdpVTA5VlRrUmZSVTVFSWl3aVUwOVZUa1JmVTFSQlVsUWlMQ0pUVUVWRlEwaGZSVTVFSWl3aVUxQkZSVU5JWDFOVVFWSlVJaXdpVTFSQlVsUWlYU3dpYldGd2NHbHVaM01pT2lJNFQwRlBRU3hKUVVGSlFTeEZRVUZYTEZOQlFWVkRMRWRCUjNaQ0xFbEJRVWxETEVWQlFVdERMRTlCUVU5RExGVkJRMXBETEVWQlFWTklMRVZCUVVkSkxHVkJSVnBETEVWQlFUUkNMRzFDUVVGWVF5eFBRVUYzUWtFc1QwRkJVeXhIUVVOc1JFTXNSVUZCYVVKR0xFVkJRVkZITEZWQlFWa3NZVUZEY2tORExFVkJRWE5DU2l4RlFVRlJTeXhsUVVGcFFpeHJRa0ZETDBORExFVkJRVzlDVGl4RlFVRlJUeXhoUVVGbExHZENRVVV2UXl4VFFVRlRReXhGUVVGUFF5eEZRVUZMUXl4RlFVRkxReXhIUVU5NFFpeFBRVTVCWml4UFFVRlBaMElzWlVGQlpVZ3NSVUZCUzBNc1JVRkJTeXhEUVVNNVFrTXNUVUZCVDBFc1JVRkRVRVVzV1VGQldTeEZRVU5hUXl4alFVRmpMRVZCUTJSRExGVkJRVlVzU1VGRlRFNHNSVUZCU1VNc1IwRkZZaXhKUVVWRlJpeEZRVUZQTEVkQlFVa3NTVUZEV0N4TlFVRlBVU3hIUVVOUVVpeEZRVUZUTEZOQlFWTkRMRVZCUVV0RExFVkJRVXRETEVkQlF6RkNMRTlCUVU5R0xFVkJRVWxETEVkQlFVOURMRWRCU1hSQ0xGTkJRVk5OTEVWQlFVdERMRVZCUVZORExFVkJRVk5ETEVWQlFVMURMRWRCUlhCRExFbEJRVWxETEVWQlFXbENTQ3hIUVVGWFFTeEZRVUZSZEVJc2NVSkJRWEZDTUVJc1JVRkJXVW9zUlVGQlZVa3NSVUZETDBWRExFVkJRVmsxUWl4UFFVRlBOa0lzVDBGQlQwZ3NSVUZCWlhwQ0xGZEJRM3BETmtJc1JVRkJWU3hKUVVGSlF5eEZRVUZSVGl4SFFVRmxMRWxCVFhwRExFOUJSa0ZITEVWQlFWVkpMRkZCYzAxYUxGTkJRVEJDVml4RlFVRlRSU3hGUVVGTlRTeEhRVU4yUXl4SlFVRkpSeXhGUVM5TGRVSXNhVUpCYVV3elFpeFBRVUZQTEZOQlFXZENReXhGUVVGUlF5eEhRVU0zUWl4SFFXaE1iMElzWTBGblRHaENSaXhGUVVOR0xFMUJRVTBzU1VGQlNVY3NUVUZCVFN4blEwRkhiRUlzUjBGdVRHOUNMR05CYlV4b1FrZ3NSVUZCTmtJc1EwRkRMMElzUjBGQlpTeFZRVUZZUXl4RlFVTkdMRTFCUVUxRExFVkJTMUlzVDBGQlQwVXNTVUZOVkN4SlFVaEJVQ3hGUVVGUlNTeFBRVUZUUVN4RlFVTnFRa29zUlVGQlVVc3NTVUZCVFVFc1NVRkZSQ3hEUVVOWUxFbEJRVWxITEVWQlFWZFNMRVZCUVZGUkxGTkJRM1pDTEVkQlFVbEJMRVZCUVZVc1EwRkRXaXhKUVVGSlF5eEZRVUZwUWtNc1JVRkJiMEpHTEVWQlFWVlNMRWRCUTI1RUxFZEJRVWxUTEVWQlFXZENMRU5CUTJ4Q0xFZEJRVWxCTEVsQlFXMUNSU3hGUVVGclFpeFRRVU42UXl4UFFVRlBSaXhIUVVsWUxFZEJRWFZDTEZOQlFXNUNWQ3hGUVVGUlNTeFBRVWRXU2l4RlFVRlJXU3hMUVVGUFdpeEZRVUZSWVN4TlFVRlJZaXhGUVVGUlN5eFRRVVZzUXl4SFFVRjFRaXhWUVVGdVFrd3NSVUZCVVVrc1QwRkJiMElzUTBGRGNrTXNSMEZ1VG5GQ0xHMUNRVzFPYWtKRUxFVkJSVVlzVFVGRVFVRXNSVUZxVG1Nc1dVRnJUbEpJTEVWQlFWRkxMRWxCUjJoQ1RDeEZRVUZSWXl4clFrRkJhMEprTEVWQlFWRkxMRk5CUlU0c1YwRkJia0pNTEVWQlFWRkpMRkZCUTJwQ1NpeEZRVUZSWlN4UFFVRlBMRk5CUVZWbUxFVkJRVkZMTEV0QlIyNURSaXhGUVRWT2EwSXNXVUU0VG14Q0xFbEJRVWxoTEVWQlFWTkRMRVZCUVZONlFpeEZRVUZUUlN4RlFVRk5UU3hIUVVOeVF5eEhRVUZ2UWl4WFFVRm9RbWRDTEVWQlFVOUZMRXRCUVcxQ0xFTkJUelZDTEVkQlNrRm1MRVZCUVZGSUxFVkJRVkZ0UWl4TFFXcFBRU3haUVVaTExHbENRWFZQYWtKSUxFVkJRVTlZTEUxQlFWRk5MRVZCUTJwQ0xGTkJSMFlzVFVGQlR5eERRVU5NTVVJc1RVRkJUeXRDTEVWQlFVOVlMRWxCUTJSakxFdEJRVTF1UWl4RlFVRlJiVUlzVFVGSFV5eFZRVUZvUWtnc1JVRkJUMFVzVDBGRGFFSm1MRVZCTDA5blFpeFpRV3RRYUVKSUxFVkJRVkZKTEU5QlFWTXNVVUZEYWtKS0xFVkJRVkZMTEVsQlFVMVhMRVZCUVU5WUxFOUJPVkZRWlN4RFFVRnBRalZDTEVWQlFWTkZMRVZCUVUxTkxFZEJSVGREUml4RlFXTlVMRk5CUVZOdFFpeEZRVUZUU1N4RlFVRkpkRU1zUlVGQlMzTkNMRWRCUTNwQ0xFbEJRMFVzVFVGQlR5eERRVUZGWVN4TFFVRk5MRk5CUVZWaUxFbEJRVXRuUWl4RlFVRkhReXhMUVVGTGRrTXNSVUZCUzNOQ0xFbEJRek5ETEUxQlFVOW1MRWRCUTFBc1RVRkJUeXhEUVVGRk5FSXNTMEZCVFN4UlFVRlRZaXhKUVVGTFppeEpRV2hDYWtOMFFpeEZRVUZSZFVJc1MwRkJUMEVzUlVGdlFtWXNTVUZQU1c5Q0xFVkJRVzFDTEVkQlRYWkNMRk5CUVZOa0xFdEJRMVFzVTBGQlV6QkNMRXRCUTFRc1UwRkJVME1zUzBGSlZDeEpRVUZKUXl4RlFVRnZRaXhIUVVONFFrRXNSVUZCYTBKcVJDeEhRVUZyUWl4WFFVTnNReXhQUVVGUGEwUXNUVUZIVkN4SlFVRkpReXhGUVVGWGVrUXNUMEZCVHpCRUxHVkJRMnhDUXl4RlFVRXdRa1lzUjBGQldVRXNSVUZCVTBFc1JVRkJVMGNzUlVGQlR5eE5RVU12UkVRc1IwRkRRVUVzU1VGQk5FSTFSQ3hIUVVNMVFrY3NSVUZCVDJ0RUxFdEJRVXRQTEVWQlFYbENja1FzUzBGSGRrTnBSQ3hGUVVGdlFra3NSMEZIZEVJc1NVRkJTVVVzUlVGQlMxQXNSVUZCTWtKeVJDeFZRVU5zUXpCQ0xFVkJRVlV4UWl4VlFVRlpSQ3hQUVVGUE5rSXNUMEZCVHpCQ0xFZEJWM1JETEZOQlFWTlBMRVZCUVhOQ04wUXNSMEZETjBJc1EwRkJReXhQUVVGUkxGRkJRVk1zVlVGQlZUaEVMRk5CUVZFc1UwRkJVemRDTEVkQlF6TkRkRUlzUlVGQlQxZ3NSVUZCVjJsRExFZEJRVkVzVTBGQlUwTXNSMEZEYWtNc1QwRkJUM0ZDTEV0QlFVdDRRaXhSUVVGUlJTeEZRVUZSUXl4VFFXdERiRU1zVTBGQlV6WkNMRVZCUVdOd1F5eEZRVUZYY1VNc1IwRm5RMmhETEVsQlFVbERMRVZCWjBOS1ZpeExRVUZMZUVJc1VVRTVRa3dzVTBGQmFVSkZMRVZCUVZGRExFZEJRM1pDTEZOQlFWTm5ReXhKUVVOUUxFOUJRVThzU1VGQlNVWXNSMEZCV1N4VFFVRlRSeXhGUVVGVFF5eEpRVzVETjBNc1UwRkJVME1zUlVGQlQzQkRMRVZCUVZGRExFVkJRVXRwUXl4RlFVRlRReXhIUVVOd1F5eEpRVUZKZGtJc1JVRkJVME1zUlVGQlUyNUNMRVZCUVZWTkxFZEJRVk5PTEVWQlFWZFBMRWRCUTNCRUxFZEJRVzlDTEZWQlFXaENWeXhGUVVGUFJTeExRVVZLTEVOQlEwd3NTVUZCU1hWQ0xFVkJRVk42UWl4RlFVRlBXQ3hKUVVOb1FuQkNMRVZCUVZGM1JDeEZRVUZQZUVRc1RVRkRia0lzVDBGQlNVRXNSMEZEYVVJc2FVSkJRVlpCTEVkQlExQmlMRVZCUVU5clJDeExRVUZMY2tNc1JVRkJUeXhYUVVOa2EwUXNSVUZCV1Vjc1VVRkJVWEpFTEVWQlFVMTVSQ3hUUVVGVFF5eE5RVUZMTEZOQlFWTXhSQ3hIUVVOMFJIVkVMRVZCUVU4c1QwRkJVWFpFTEVWQlFVOXhSQ3hGUVVGVFF5eE5RVU01UWl4VFFVRlRha1FzUjBGRFZtdEVMRVZCUVU4c1VVRkJVMnhFTEVWQlFVdG5SQ3hGUVVGVFF5eE5RVWt6UWtvc1JVRkJXVWNzVVVGQlVYSkVMRWRCUVU4d1JDeE5RVUZMTEZOQlFWTkRMRWRCU1RsRFNDeEZRVUZQZUVRc1RVRkJVVEpFTEVWQlEyWk9MRVZCUVZGSExFMUJRMUFzVTBGQlUwa3NSMEZIVml4UFFVRlBUQ3hGUVVGUExGRkJRVk5MTEVWQlFVOVFMRVZCUVZORExFMUJka0o2UTBFc1JVRkJUM1pDTEVWQlFVOVlMRXRCYVVOYWJVTXNRMEZCVDNCRExFVkJRVkZETEVWQlFVdHBReXhGUVVGVFF5eE5RVWxxUXl4UFFVRlBTQ3hGUVdGTVFTeEZRVUZyUWtFc1JVRkJaMEpQTEV0QlEyaERUaXhGUVVkQlFTeEhRVU5GUVN4TFFXdElWaXhUUVVGVE0wSXNSVUZCYjBKR0xFVkJRVlZTTEVkQlEzSkRMRWxCUVVsSkxFVkJRVk5KTEVWQlFWTXZRaXhUUVVGVGRVSXNSVUZCVVVrc1VVRkRka01zVVVFeFZFVXdReXhKUVRCVVJURkRMRVZCUVhOQ0xFTkJTM2hDTEVkQlJrRktMRVZCUVZGUkxGTkJRVmNzUzBGRlNTeFZRVUZ1UWxJc1JVRkJVVWtzVDBGQmIwSXNRMEZGT1VJc1IwRkJTVWtzUlVGQlV5OUNMRk5CUVdsQ0xGTkJSelZDZFVJc1JVRkJVVWtzVDBGQlV5eFRRVU5xUWtvc1JVRkJVVXNzVTBGeVZWcDVReXhGUVhOVlNYQkRMRVZCUVc5Q1JpeEZRVUZWVWl4SFFVVlFMRlZCUVc1Q1FTeEZRVUZSU1N4UlFVZFdMRTlCUVU5UExFVkJTVmhZTEVWQlFWRkpMRTlCUVZNc1VVRkRha0pLTEVWQlFWRkxMRWxCUVUwc1NVRkJTVEJETEZWQlEyaENMR3RFUVVkS0xFOUJRVTl3UXl4RlFVZFVMRWxCUVVsTExFVkJRVk5ETEVWQlFWTmlMRVZCUVZGSkxFVkJRVk12UWl4VFFVRlZkVUlzUlVGQlVVc3NTMEZGZWtRc1IwRkJiMElzVlVGQmFFSlhMRVZCUVU5RkxFdEJTVlFzVDBGSVFXeENMRVZCUVZGSkxFOUJRVk1zVVVGRGFrSktMRVZCUVZGTExFbEJRVTFYTEVWQlFVOVlMRWxCUTNKQ1RDeEZRVUZSVVN4VFFVRlhMRXRCUTFwSExFVkJSMVFzU1VGQlNYRkRMRVZCUVU5b1F5eEZRVUZQV0N4SlFVVnNRaXhQUVVGTk1rTXNSVUZQUmtFc1JVRkJTemRDTEUxQlIxQnVRaXhGUVVGUlVTeEZRVUZUZVVNc1dVRkJZMFFzUlVGQlN5OUVMRTFCUjNCRFpTeEZRVUZSYTBRc1MwRkJUekZETEVWQlFWTXlReXhSUVZGRUxGZEJRVzVDYmtRc1JVRkJVVWtzVTBGRFZrb3NSVUZCVVVrc1QwRkJVeXhQUVVOcVFrb3NSVUZCVVVzc1UwRjZXRlo1UXl4SFFXMVpSamxETEVWQlFWRlJMRk5CUVZjc1MwRkRXa2NzUjBGT1JYRkRMRWRCTTBKUWFFUXNSVUZCVVVrc1QwRkJVeXhSUVVOcVFrb3NSVUZCVVVzc1NVRkJUU3hKUVVGSk1FTXNWVUZCVlN4dlEwRkROVUl2UXl4RlFVRlJVU3hUUVVGWExFdEJRMXBITEVkQmIwUllMRk5CUVZONVF5eEZRVUZoUXl4SFFVTndRaXhKUVVGSlF5eEZRVUZSTEVOQlFVVkRMRTlCUVZGR0xFVkJRVXNzU1VGRmRrSXNTMEZCUzBFc1NVRkRVRU1zUlVGQlRVVXNVMEZCVjBnc1JVRkJTeXhKUVVkd1FpeExRVUZMUVN4SlFVTlFReXhGUVVGTlJ5eFhRVUZoU2l4RlFVRkxMRWRCUTNoQ1F5eEZRVUZOU1N4VFFVRlhUQ3hGUVVGTExFbEJSM2hDTTBJc1MwRkJTMmxETEZkQlFWZERMRXRCUVV0T0xFZEJSM1pDTEZOQlFWTlBMRVZCUVdOUUxFZEJRM0pDTEVsQlFVbDBReXhGUVVGVGMwTXNSVUZCVFZFc1dVRkJZeXhIUVVOcVF6bERMRVZCUVU5RkxFdEJRVThzWjBKQlExQkdMRVZCUVU5WUxFbEJRMlJwUkN4RlFVRk5VU3hYUVVGaE9VTXNSVUZIY2tJc1UwRkJVMllzUlVGQlVVNHNSMEZKWml0Q0xFdEJRVXRwUXl4WFFVRmhMRU5CUVVNc1EwRkJSVW9zVDBGQlVTeFRRVU0zUWpWRUxFVkJRVmx6UXl4UlFVRlJiVUlzUlVGQll6RkNMRTFCUTJ4RFFTeExRVUZMY1VNc1QwRkJUU3hIUVRoQ1lpeFRRVUZUYWtNc1JVRkJUMnRETEVkQlEyUXNSMEZCU1VFc1JVRkJWU3hEUVVOYUxFbEJRVWxETEVWQlFXbENSQ3hGUVVGVGVFWXNSMEZET1VJc1IwRkJTWGxHTEVWQlEwWXNUMEZCVDBFc1JVRkJaVE5ETEV0QlFVc3dReXhIUVVjM1FpeEhRVUUyUWl4dFFrRkJiRUpCTEVWQlFWTmtMRXRCUTJ4Q0xFOUJRVTlqTEVWQlIxUXNTVUZCUzBVc1RVRkJUVVlzUlVGQlUwY3NVVUZCVXl4RFFVTXpRaXhKUVVGSlF5eEhRVUZMTEVWQlFVZHNRaXhGUVVGUExGTkJRVk5CTEVsQlF6RkNMRTlCUVZOclFpeEZRVUZKU2l4RlFVRlRSeXhSUVVOd1FpeEhRVUZKTDBZc1JVRkJUMnRFTEV0QlFVc3dReXhGUVVGVlNTeEhRVWQ0UWl4UFFVWkJiRUlzUlVGQlMycEZMRTFCUVZFclJTeEZRVUZUU1N4SFFVTjBRbXhDTEVWQlFVc3ZRaXhOUVVGUExFVkJRMHdyUWl4RlFVOVlMRTlCU0VGQkxFVkJRVXRxUlN4WFFYcGxWRFpFTEVWQk1HVkpTU3hGUVVGTEwwSXNUVUZCVHl4RlFVVk1LMElzUjBGSFZDeFBRVUZQUVN4RlFVRkxRU3hMUVVGUFFTeEhRVXQyUWl4TlFVRlBMRU5CUVVWQkxFdEJRVTB6UXl4SFFVbHFRaXhUUVVGVFFTeEpRVU5RTEUxQlFVOHNRMEZCUlhSQ0xGZEJlbVpRTmtRc1JVRjVabmxDTTBJc1RVRkJUU3hIUVN0TmJrTXNUMEUxYlVKQlNTeEZRVUZyUW5CRUxGVkJRVmswUkN4RlFVRkhjME1zV1VGQll6ZERMRVZCUXk5RFFTeEZRVUV5UWpaRExGbEJRV001UXl4RlFVTjZRMEVzUlVGQmEwSXJReXhaUVVGamVFWXNSVUZET1VJd1F5eEZRVU5CTlVNc1JVRkRRU3h4UWtGaFJsb3NSVUZCVVhWSExHOUNRVUZ6UWl4VFFVRlRReXhIUVVOeVF5eEpRVUZKUXl4RlFVRjVRaXh0UWtGQldFUXNSMEZCZVVKQkxFVkJRVTlJTEZsQlEyeEVMRkZCUVU5SkxFbEJRMGhCTEVsQlFWTnNSQ3hIUVVjeVFpeDFRa0ZCYmtOclJDeEZRVUZMU0N4aFFVRmxSeXhGUVVGTFF5eFJRVWxvUXpGSExFVkJRVkV5Unl4TFFVRlBMRk5CUVZOSUxFZEJVWFJDTEU5QlVFbDBSeXhQUVVGUE1FY3NaVUZEVkRGSExFOUJRVTh3Unl4bFFVRmxTaXhGUVVGUmFFUXNTVUZGT1VKblJDeEZRVUZQU3l4VlFVRlpja1FzUlVGRGJrSXhReXhGUVVGUE1FWXNSVUZCVVRWR0xFVkJRVzFDTEhOQ1FVVndRelJHTEVWQlFVOXlSeXhWUVVGWlJDeFBRVUZQTmtJc1QwRkJUMmRETEVkQlF6RkNlVU1zUjBGUFZIaEhMRVZCUVZFNFJ5eE5RVUZSTEZOQlFWTjZSU3hIUVVOMlFpeE5RVUZQTEVOQlFVVnhReXhSUVVGVGNrTXNTVUZ6UlhCQ01rSXNSVUZCYzBKRkxFVkJRV012UkN4WFFVTndReXRFTEVWQlFXTXZSQ3hWUVVGVlR5eEhRVUYxUWl4WFFVTTNReXhQUVVGUFowUXNUVUZGVkRGRUxFVkJRVkZyUlN4alFVRm5Ra0VzUlVGTGVFSnNSU3hGUVVGUkswY3NUVUZCVVN4VFFVRlRka1lzUlVGQlUwTXNSVUZCVTBNc1JVRkJUVU1zUlVGQllYZERMRkZCUTNoRExFbEJRV2hDUVN4SlFVRjNRa0VzUlVGQll6WkRMRk5CUlRGRExFbEJRVWxETEVWQlFVOHNTVUZCU1M5RExFVkJRMkl6UXl4RlFVRkxReXhGUVVGVFF5eEZRVUZUUXl4RlFVRk5ReXhIUVVNM1FuZERMRWRCUjBZc1QwRkJUMjVGTEVWQlFWRjFSeXh2UWtGQmIwSTVSU3hIUVVNdlFuZEdMRVZCUTBGQkxFVkJRVXN2UWl4UFFVRlBVQ3hOUVVGTExGTkJRVk5HTEVkQlEzaENMRTlCUVU5QkxFVkJRVTkwUWl4TFFVRlBjMElzUlVGQlQzaEVMRTFCUVZGblJ5eEZRVUZMTDBJc1YwRjFTMnBFYkVJc1JVRkJjMEpFTEVkQlJYUkNha1FzUlVGQlQybEVMRVZCUVVsdVJDeEZRVUZ0UWl4aFFVODVRbTFFTEVWQlFVZDJSQ3hIUVVGclFpeFhRVU51UWl4UFFVRlBhMFFzVFVGSFZFc3NSVUZCUjIxRUxGTkJRVmNzVjBGRFdpeE5RVUZQTEhOQ1FXdERWR3hJTEVWQlFWRnRTQ3hMUVVGUExGTkJRVk5ETEVkQlEzUkNMRWxCUVVsRUxFVkJRVThzUjBGRFdDeEpRVUZMTEVsQlFVbHVSeXhMUVVGUGIwY3NSVUZEWkVRc1JVRkJTM1pDTEV0QlFVczFSU3hIUVUxYUxFOUJTa0Z0Unl4RlFVRkxSU3hWUVVsRkxGTkJRVk51UXl4SlFVTmtMRXRCUVU5cFF5eEZRVUZMYUVJc1VVRkJVU3hEUVVOc1FpeEpRVUZKYmtZc1JVRkJUVzFITEVWQlFVdEhMRTFCUTJZc1IwRkJTWFJITEV0QlFVOXZSeXhGUVVkVUxFOUJSa0ZzUXl4RlFVRkxha1VzVFVGQlVVUXNSVUZEWW10RkxFVkJRVXN2UWl4TlFVRlBMRVZCUTB3clFpeEZRVkZZTEU5QlJFRkJMRVZCUVVzdlFpeE5RVUZQTEVWQlEwd3JRaXhKUVhORFdHeEdMRVZCUVZFNFJDeFBRVUZUUVN4RlFVMXFRamRDTEVWQlFWRTVRaXhWUVVGWkxFTkJRMnhDYTBjc1dVRkJZWEJGTEVWQlJXSTRSQ3hOUVVGUExGTkJRVk4zUWl4SFFXTmtMRWRCWWtFM1JDeExRVUZMT0VRc1MwRkJUeXhGUVVOYU9VUXNTMEZCUzNkQ0xFdEJRVThzUlVGSFduaENMRXRCUVV0a0xFdEJRVTlqTEV0QlFVdGlMRmRCY0dkQ2FrSnBReXhGUVhGblFrRndRaXhMUVVGTFVDeE5RVUZQTEVWQlExcFBMRXRCUVV0c1FpeFRRVUZYTEV0QlJXaENhMElzUzBGQlMzUkNMRTlCUVZNc1QwRkRaSE5DTEV0QlFVdHlRaXhUUVhwblFreDVReXhGUVRKblFrRndRaXhMUVVGTGFVTXNWMEZCVnpGQ0xGRkJRVkUwUWl4SlFVVnVRakJDTEVWQlEwZ3NTVUZCU3l4SlFVRkpZaXhMUVVGUmFFUXNTMEZGVVN4TlFVRnVRbWRFTEVWQlFVdGxMRTlCUVU4c1NVRkRXbkpJTEVWQlFVOXJSQ3hMUVVGTFNTeExRVUZOWjBRc1MwRkRha0pTTEU5QlFVOVJMRVZCUVV0blFpeE5RVUZOTEUxQlEzSkNhRVVzUzBGQlMyZEVMRkZCYm1oQ1dEVkNMRWxCZVdoQ1JqWkRMRXRCUVUwc1YwRkRTbXBGTEV0QlFVdFFMRTFCUVU4c1JVRkZXaXhKUVVOSmVVVXNSVUZFV1d4RkxFdEJRVXRwUXl4WFFVRlhMRWRCUTB4SExGZEJRek5DTEVkQlFYZENMRlZCUVhCQ09FSXNSVUZCVnpGRkxFdEJRMklzVFVGQlRUQkZMRVZCUVZkMlJpeEpRVWR1UWl4UFFVRlBjVUlzUzBGQlMyMUZMRTFCUjJRdlJTeHJRa0ZCYlVJc1UwRkJVMmRHTEVkQlF6RkNMRWRCUVVsd1JTeExRVUZMVUN4TFFVTlFMRTFCUVUweVJTeEZRVWRTTEVsQlFVazVSaXhGUVVGVk1FSXNTMEZEWkN4VFFVRlRjVVVzUlVGQlQwTXNSVUZCUzBNc1IwRlpia0lzVDBGWVFXcEdMRVZCUVU5RkxFdEJRVThzVVVGRFpFWXNSVUZCVDFnc1NVRkJUWGxHTEVWQlEySTVSaXhGUVVGUmEwUXNTMEZCVHpoRExFVkJSVmhETEVsQlIwWnFSeXhGUVVGUlNTeFBRVUZUTEU5QlEycENTaXhGUVVGUlN5eFRRWEJxUWxwNVF5eExRWFZxUWxsdFJDeEZRVWRhTEVsQlFVc3NTVUZCU1RkQ0xFVkJRVWt4UXl4TFFVRkxhVU1zVjBGQlYxRXNUMEZCVXl4RlFVRkhReXhIUVVGTExFbEJRVXRCTEVWQlFVY3NRMEZEY0VRc1NVRkJTV1FzUlVGQlVUVkNMRXRCUVV0cFF5eFhRVUZYVXl4SFFVTjRRbkJFTEVWQlFWTnpReXhGUVVGTlVTeFhRVVZ1UWl4SFFVRnhRaXhUUVVGcVFsSXNSVUZCVFVNc1QwRkpVaXhQUVVGUGQwTXNSVUZCVHl4UFFVZG9RaXhIUVVGSmVrTXNSVUZCVFVNc1VVRkJWVGRDTEV0QlFVczRSQ3hMUVVGTkxFTkJRemRDTEVsQlFVbFZMRVZCUVZjNVNDeEZRVUZQYTBRc1MwRkJTMmRETEVWQlFVOHNXVUZET1VJMlF5eEZRVUZoTDBnc1JVRkJUMnRFTEV0QlFVdG5ReXhGUVVGUExHTkJSWEJETEVkQlFVazBReXhIUVVGWlF5eEZRVUZaTEVOQlF6RkNMRWRCUVVsNlJTeExRVUZMT0VRc1MwRkJUMnhETEVWQlFVMUZMRk5CUTNCQ0xFOUJRVTkxUXl4RlFVRlBla01zUlVGQlRVVXNWVUZCVlN4SFFVTjZRaXhIUVVGSk9VSXNTMEZCU3poRUxFdEJRVTlzUXl4RlFVRk5SeXhYUVVNelFpeFBRVUZQYzBNc1JVRkJUM3BETEVWQlFVMUhMR2xDUVVkcVFpeEhRVUZKZVVNc1IwRkRWQ3hIUVVGSmVFVXNTMEZCU3poRUxFdEJRVTlzUXl4RlFVRk5SU3hUUVVOd1FpeFBRVUZQZFVNc1JVRkJUM3BETEVWQlFVMUZMRlZCUVZVc1QwRkhNMElzUTBGQlFTeEpRVUZKTWtNc1JVRk5WQ3hOUVVGTkxFbEJRVWszUml4TlFVRk5MREJEUVV4b1FpeEhRVUZKYjBJc1MwRkJTemhFTEV0QlFVOXNReXhGUVVGTlJ5eFhRVU53UWl4UFFVRlBjME1zUlVGQlQzcERMRVZCUVUxSExHZENRVlU1UWpGRExFOUJRVkVzVTBGQlUwY3NSVUZCVFdJc1IwRkRja0lzU1VGQlN5eEpRVUZKSzBRc1JVRkJTVEZETEV0QlFVdHBReXhYUVVGWFVTeFBRVUZUTEVWQlFVZERMRWRCUVVzc1NVRkJTMEVzUlVGQlJ5eERRVU53UkN4SlFVRkpaQ3hGUVVGUk5VSXNTMEZCUzJsRExGZEJRVmRUTEVkQlF6VkNMRWRCUVVsa0xFVkJRVTFETEZGQlFWVTNRaXhMUVVGTE9FUXNUVUZEY2tKd1NDeEZRVUZQYTBRc1MwRkJTMmRETEVWQlFVOHNaVUZEYmtJMVFpeExRVUZMT0VRc1MwRkJUMnhETEVWQlFVMUhMRmRCUVZrc1EwRkRhRU1zU1VGQlNUSkRMRVZCUVdVNVF5eEZRVU51UWl4UFFVbEJPRU1zU1VGRFZTeFZRVUZVYkVZc1IwRkRVeXhoUVVGVVFTeEpRVU5FYTBZc1JVRkJZVGRETEZGQlFWVnNSQ3hIUVVOMlFrRXNSMEZCVHl0R0xFVkJRV0V6UXl4aFFVZDBRakpETEVWQlFXVXNUVUZIYWtJc1NVRkJTWEJHTEVWQlFWTnZSaXhGUVVGbFFTeEZRVUZoZEVNc1YwRkJZU3hIUVVsMFJDeFBRVWhCT1VNc1JVRkJUMFVzUzBGQlQwRXNSVUZEWkVZc1JVRkJUMWdzU1VGQlRVRXNSVUZGVkN0R0xFZEJRMFl4UlN4TFFVRkxkRUlzVDBGQlV5eFBRVU5rYzBJc1MwRkJTM2RDTEV0QlFVOXJSQ3hGUVVGaE0wTXNWMEZEYkVJNVF5eEhRVWRHWlN4TFFVRkxNa1VzVTBGQlUzSkdMRWxCUjNaQ2NVWXNVMEZCVlN4VFFVRlRja1lzUlVGQlVUQkRMRWRCUTNwQ0xFZEJRVzlDTEZWQlFXaENNVU1zUlVGQlQwVXNTMEZEVkN4TlFVRk5SaXhGUVVGUFdDeEpRV05tTEUxQldHOUNMRlZCUVdoQ1Z5eEZRVUZQUlN4TlFVTlRMR0ZCUVdoQ1JpeEZRVUZQUlN4TFFVTlVVU3hMUVVGTGQwSXNTMEZCVDJ4RExFVkJRVTlZTEVsQlEwMHNWMEZCYUVKWExFVkJRVTlGTEUxQlEyaENVU3hMUVVGTGJVVXNTMEZCVDI1RkxFdEJRVXR5UWl4SlFVRk5WeXhGUVVGUFdDeEpRVU01UW5GQ0xFdEJRVXQwUWl4UFFVRlRMRk5CUTJSelFpeExRVUZMZDBJc1MwRkJUeXhQUVVOaExGZEJRV2hDYkVNc1JVRkJUMFVzVFVGQmNVSjNReXhKUVVOeVEyaERMRXRCUVV0M1FpeExRVUZQVVN4SFFVZFFMME1zUjBGSFZESkdMRTlCUVZFc1UwRkJVemRETEVkQlEyWXNTVUZCU3l4SlFVRkpWeXhGUVVGSk1VTXNTMEZCUzJsRExGZEJRVmRSTEU5QlFWTXNSVUZCUjBNc1IwRkJTeXhKUVVGTFFTeEZRVUZITEVOQlEzQkVMRWxCUVVsa0xFVkJRVkUxUWl4TFFVRkxhVU1zVjBGQlYxTXNSMEZETlVJc1IwRkJTV1FzUlVGQlRVY3NZVUZCWlVFc1JVRkhka0lzVDBGR1FTOUNMRXRCUVVzeVJTeFRRVUZUTDBNc1JVRkJUVkVzVjBGQldWSXNSVUZCVFVrc1ZVRkRkRU5ITEVWQlFXTlFMRWRCUTFBelF5eEpRVXRpTkVZc1RVRkJVeXhUUVVGVGFFUXNSMEZEYUVJc1NVRkJTeXhKUVVGSllTeEZRVUZKTVVNc1MwRkJTMmxETEZkQlFWZFJMRTlCUVZNc1JVRkJSME1zUjBGQlN5eEpRVUZMUVN4RlFVRkhMRU5CUTNCRUxFbEJRVWxrTEVWQlFWRTFRaXhMUVVGTGFVTXNWMEZCVjFNc1IwRkROVUlzUjBGQlNXUXNSVUZCVFVNc1UwRkJWMEVzUlVGQlVTeERRVU16UWl4SlFVRkpka01zUlVGQlUzTkRMRVZCUVUxUkxGZEJRMjVDTEVkQlFXOUNMRlZCUVdoQ09VTXNSVUZCVDBVc1MwRkJhMElzUTBGRE0wSXNTVUZCU1hOR0xFVkJRVk40Uml4RlFVRlBXQ3hKUVVOd1FuZEVMRVZCUVdOUUxFZEJSV2hDTEU5QlFVOXJSQ3hIUVUxWUxFMUJRVTBzU1VGQlNXeEhMRTFCUVUwc01FSkJSMnhDYlVjc1kwRkJaU3hUUVVGVGVrTXNSVUZCVldZc1JVRkJXVVVzUjBGaE5VTXNUMEZhUVhwQ0xFdEJRVXRzUWl4VFFVRlhMRU5CUTJRdlFpeFRRVUZWY1VRc1JVRkJUMnRETEVkQlEycENaaXhYUVVGWlFTeEZRVU5hUlN4UlFVRlRRU3hIUVVkVExGTkJRV2hDZWtJc1MwRkJTM1JDTEZOQlIxQnpRaXhMUVVGTGNrSXNVMEUzY2tKUWVVTXNSMEZuYzBKUGJrTXNTVUZSU2pORExFZEJUM05DTUVrc1JVRkJUekZKTEZOQlIzUkRMRWxCUTBVeVNTeHRRa0ZCY1VJMVNTeEZRVU55UWl4TlFVRlBOa2tzUjBGVlVFTXNVMEZCVXl4SlFVRkxMSGxDUVVGa1FTeERRVUYzUXpsSkxFOURNWFZDTVVNc1UwRkJVeXRKTEVWQlFXMUNReXhGUVVGTGVrVXNSVUZCVTBNc1JVRkJVWGxGTEVWQlFVOURMRVZCUVZGcVNTeEZRVUZMY1VJc1IwRkRjRVVzU1VGRFJTeEpRVUZKTWtNc1JVRkJUeXRFTEVWQlFVa3ZTQ3hIUVVGTGNVSXNSMEZEYUVKd1FpeEZRVUZSSzBRc1JVRkJTeTlFTEUxQlEycENMRTFCUVU4MFJDeEhRVVZRTEZsQlJFRk9MRVZCUVU5TkxFZEJTVXhITEVWQlFVczNRaXhMUVVOUWJVSXNSVUZCVVhKRUxFZEJSVklyUml4UlFVRlJNVU1zVVVGQlVYSkVMRWRCUVU4d1JDeExRVUZMY1VVc1JVRkJUME1zUjBGM1FuWkRMRTFCY0VKQkxGTkJRVEpDTlVZc1IwRkRla0lzVDBGQlR5eFhRVU5NTEVsQlFVa3pRaXhGUVVGUFowTXNTMEZEVUhkR0xFVkJRVTlETEZWQlExZ3NUMEZCVHl4SlFVRkpia01zVTBGQlVTeFRRVUZWTVVNc1JVRkJVME1zUjBGRGNFTXNTVUZCU1hkRkxFVkJRVTB4Uml4RlFVRkhLMFlzVFVGQlRURklMRVZCUVUxM1NDeEhRVVY2UWl4VFFVRlRSaXhGUVVGTkwwZ3NSMEZEWWpaSUxFVkJRVzFDUXl4RlFVRkxla1VzUlVGQlUwTXNSVUZCVVhsRkxFVkJRVTlETEVWQlFWRXNUMEZCVVdoSkxFZEJSMnhGTEZOQlFWTm5TU3hGUVVGUE0wZ3NSMEZEWkhkSUxFVkJRVzFDUXl4RlFVRkxla1VzUlVGQlUwTXNSVUZCVVhsRkxFVkJRVTlETEVWQlFWRXNVVUZCVXpOSUxFZEJSMjVGTUVnc1QwRkJUV3hGTEZGRE0wSmFMRTFCU2tFc1UwRkJlVUoxUlN4SFFVTjJRaXhIUVVGSlF5eE5RVUZOUXl4UlFVRlJSaXhIUVVGTkxFOUJRVTlCTEVkRE1FSnFReXhOUVROQ1FTeFRRVUVyUWtFc1JVRkJTMnBFTEVkQlEyeERMRWRCUVhOQ0xHOUNRVUZZTjBZc1VVRkJORUpCTEU5QlFVOUZMRmxCUVZsUUxFOUJRVTl0U2l4SFFVRnFSU3hEUVVOQkxFbEJRVWxITEVWQlFVOHNSMEZEVUVNc1IwRkJTeXhGUVVOTVF5eEhRVUZMTEVWQlEweERMRTlCUVVzM1JTeEZRVVZVTEVsQlEwVXNTVUZCU3l4SlFVRnBRemhGTEVWQlFUZENReXhGUVVGTFVpeEZRVUZKT1Vrc1QwRkJUMFVzWTBGQmJVSm5TaXhIUVVGTlJ5eEZRVUZMUXl4RlFVRkhNMFVzVVVGQlVTOUNMRkZCUTJoRmNVY3NSVUZCU3pWRUxFdEJRVXRuUlN4RlFVRkhNMGtzVVVGRlZHMUdMRWRCUVV0dlJDeEZRVUZMY2tRc1UwRkJWME1zUjBGSU9FTnhSQ3hIUVVGTExFbEJTemxGTEUxQlFVOXVTU3hIUVVOUWIwa3NSMEZCU3l4RlFVTk1ReXhGUVVGTGNra3NWVUZGVEN4SlFVTlBiVWtzUjBGQmMwSXNUVUZCYUVKSkxFVkJRVmNzVVVGQlYwRXNSVUZCVnl4cFFrRkZOVU1zUjBGQlNVZ3NSVUZCU1N4TlFVRk5ReXhIUVVsc1FpeFBRVUZQU0N4SlEyUlVMRTFCVmtFc1UwRkJNa0pJTEVWQlFVdFRMRWxCUTI1Q0xFMUJRVkJCTEVkQlFXVkJMRVZCUVUxVUxFVkJRVWxzUkN4VlFVRlJNa1FzUlVGQlRWUXNSVUZCU1d4RUxGRkJSUzlETEVsQlFVc3NTVUZCU1VNc1JVRkJTU3hGUVVGSE1rUXNSVUZCVHl4SlFVRkpWQ3hOUVVGTlVTeEhRVUZOTVVRc1JVRkJTVEJFTEVWQlFVc3hSQ3hKUVVNNVF6SkVMRVZCUVVzelJDeEhRVUZMYVVRc1JVRkJTV3BFTEVkQlIyaENMRTlCUVU4eVJDeEhRMGxVTEUxQlZFRXNVMEZCY1VORExFVkJRVWRETEVkQlEzUkRMRWRCUVV0RUxFVkJRVXdzUTBGRFFTeEhRVUZwUWl4cFFrRkJUa0VzUlVGQlowSXNUMEZCVDBVc1JVRkJhVUpHTEVWQlFVZERMRWRCUTNSRUxFbEJRVWxGTEVWQlFVbHFTeXhQUVVGUFF5eFZRVUZWSzBjc1UwRkJVelZFTEV0QlFVc3dSeXhIUVVGSGRFTXNUVUZCVFN4SFFVRkpMRWRCUlhCRUxFMUJSRlVzVjBGQlRubERMRWRCUVd0Q1NDeEZRVUZGTTBRc1kwRkJZVGhFTEVWQlFVbElMRVZCUVVVelJDeFpRVUZaU3l4TlFVTTNReXhSUVVGT2VVUXNSMEZCY1VJc1VVRkJUa0VzUlVGQmIwSmlMRTFCUVUxakxFdEJRVXRLTEVkQlEzaERMR05CUVU1SExFZEJRWEZDTERKRFFVRXlRMFVzUzBGQlMwWXNSMEZCVjBRc1JVRkJhVUpHTEVWQlFVZERMRkZCUVhoSExFbERTa1lzVFVGS1FTeFhRVU5GTEUxQlFVMHNTVUZCU1d4R0xGVkJRVlVzT0VsRFYzUkNMRTFCU2tFc1UwRkJkMEp6UlN4RlFVRkxha1FzUjBGRE0wSXNUMEZCVDJ0RkxFVkJRV1ZxUWl4SlFVRlJhMElzUlVGQmNVSnNRaXhGUVVGTGFrUXNTVUZCVFc5RkxFVkJRVEpDYmtJc1JVRkJTMnBFTEVsQlFVMXhSU3hMUTBoMFJ5eE5RVTVCTEZOQlFYbENReXhGUVVGVlF5eEhRVU5xUXl4TFFVRk5SQ3hoUVVGdlFrTXNSMEZEZUVJc1RVRkJUU3hKUVVGSk5VWXNWVUZCVlN4elEwTkdlRUlzVTBGQlV6WkdMRVZCUVd0Q1F5eEZRVUZSUXl4SFFVTnFReXhKUVVGTExFbEJRVWt4UlN4RlFVRkpMRVZCUVVkQkxFVkJRVWt3UlN4RlFVRk5NMFVzVDBGQlVVTXNTVUZCU3l4RFFVTnlReXhKUVVGSk1rVXNSVUZCWVVRc1JVRkJUVEZGTEVkQlEzWkNNa1VzUlVGQlZ6VktMRmRCUVdFMFNpeEZRVUZYTlVvc1lVRkJZeXhGUVVOcVJEUktMRVZCUVZjelNpeGpRVUZsTEVWQlEzUkNMRlZCUVZjeVNpeEpRVUZaUVN4RlFVRlhNVW9zVlVGQlZ5eEhRVU5xUkc1Q0xFOUJRVTluUWl4bFFVRmxNa29zUlVGQlVVVXNSVUZCVnk5S0xFbEJRVXNyU2l4SlFWVnNSQ3hOUVU1QkxGTkJRWE5DU2l4RlFVRmhTeXhGUVVGWlF5eEhRVWMzUXl4UFFVWkpSQ3hIUVVGWlNpeEZRVUZyUWtRc1JVRkJXWGhMTEZWQlFWYzJTeXhIUVVOeVJFTXNSMEZCWVV3c1JVRkJhMEpFTEVWQlFXRk5MRWRCUTNwRFRpeEhRMFZVTEUxQlprRXNVMEZCZVVJMVNpeEZRVUZMUXl4RlFVRkxReXhIUVZscVF5eFBRVmhKUkN4TFFVRlBSQ3hGUVVOVVlpeFBRVUZQWjBJc1pVRkJaVWdzUlVGQlMwTXNSVUZCU3l4RFFVTTVRa01zVFVGQlQwRXNSVUZEVUVVc1dVRkJXU3hGUVVOYVF5eGpRVUZqTEVWQlEyUkRMRlZCUVZVc1NVRkhXazRzUlVGQlNVTXNSMEZCVDBNc1JVRkhUa1lzUjBOYVRHMUxMRVZCUVVVc1YwRkJWeXhSUVVGUlF5eFZRVUZWUXl4aFFVRmhReXhGUVVGRkxGZEJRVmNzVVVGQlVVWXNWVUZCVlVjc1kwRkJZeXhUUVVGVFF5eEZRVUZGVEN4RlFVRkZSeXhGUVVGRlJTeEZRVUZGY0VJc1JVRkJSWEZDTEVWQlFVVndSaXhGUVVGRk5FUXNSMEZCUnl4SlFVRkpMRWxCUVVsNVFpeEZRVUZGVUN4RlFVRkZPVVVzUjBGQlJ6UkVMRWRCUVVjd1FpeEZRVUZGUkN4RlFVRkZlRXNzVFVGQlRTeE5RVUZOYVVzc1IwRkJSeXhaUVVGWlN5eEZRVUZGVEN4SFFVRkhUeXhGUVVGRmRFa3NTMEZCUzJ0SkxFVkJRVVZMTEVkQlFVY3hSU3hSUVVGUk1VTXNVVUZCVVc5SUxFZEJRVWN2Unl4TFFVRkxkMFlzUlVGQlJYRkNMRWRCUVVjc1UwRkJVM0pDTEVWQlFVVmxMRWRCUVVjc1QwRkJUeXhYUVVGWExFbEJRVWxITEVWQlFVVXpTQ3hMUVVGTGVVY3NSVUZCUldoQ0xGVkJRVlVzVDBGQlR5eEpRVUZKYmtNc2EwSkJRV3RDZDBVc1JVRkJSWEJHTEVkQlFVY3NTVUZCU1RSRUxFVkJRVVZyUWl4RlFVRkZPVUlzVFVGQlRXbERMRVZCUVVWc1FpeEhRVUZITEZOQlFWTnpRaXhGUVVGRlVDeEhRVUZIU3l4RlFVRkZka0lzUlVGQlJYZENMRVZCUVVWd1JpeEZRVUZGY1VZc1JVRkJSVU1zUlVGQlJTeFBRVUZQVWl4SFFVRkhMRk5CUVZOUkxFVkJRVVZTTEVkQlFVZExMRVZCUVVWMlFpeEZRVUZGZDBJc1JVRkJSWEJHTEVWQlFVVnhSaXhGUVVGRlF5eEZRVUZGTEZGQlFWRlNMRWRCUVVkUExFOUJRVVVzVDBGQldTeFRRVUZUUkN4RlFVRkZUaXhGUVVGRlJ5eEhRVUZITEU5QlFVOHNVMEZCVTBnc1IwRkJSeXhIUVVGSE5VSXNUVUZCVFVNc1VVRkJVVEpDTEVkQlFVY3NUMEZCVDBFc1JVRkJka01zUTBGQk1FTkJMRWxCUVVrc1UwRkJVMEVzUlVGQlJVY3NSMEZCUnl4SFFVRkhMRzlDUVVGdlFqbExMRkZCUVZWQkxFOUJRVTlGTEZsQlFWbFFMRTlCUVU5blRDeEhRVUV6UkN4RFFVRnpSU3hKUVVGSlN5eEZRVUZGTEVkQlFVZHdRaXhIUVVGRkxFVkJRVWR4UWl4SFFVRkZMRVZCUVVkd1JpeFBRVUZGTEVWQlFVOHNTVUZCU1N4SlFVRkpMRWxCUVVrMFJDeEZRVUZGZVVJc1JVRkJSVkFzUlVGQlJUTkxMRTlCUVU5RkxHTkJRV013U2l4SFFVRkhTQ3hGUVVGRmVVSXNSVUZCUlhaSExGRkJRVkV2UWl4UlFVRlJiMGtzUlVGQlJUTkdMRXRCUVV0dlJTeEZRVUZGTDBrc1VVRkJVVzlMTEVkQlFVZEZMRVZCUVVWd1JpeFRRVUZUYTBZc1IwRkJSMnhDTEVkQlFVVXNTVUZCU3l4TlFVRk5aU3hIUVVGSFRTeEhRVUZGTEVWQlFVZHdSaXhGUVVGRk9FVXNSVUZCUlN4UlFVRlJMRWxCUVVsbUxFZEJRVWNzVFVGQlRYTkNMRVZCUVVWRkxGRkJRVkZHTEVWQlFVVkZMRk5CUVZNc1VVRkJVU3hIUVVGSFNDeEZRVUZGTEUxQlFVMXdSaXhIUVVGSExFOUJRVTl0Uml4SFFVRm9WQ3hEUVVGdFZFd3NSVUZCUlVjc1NVRkJTU3hUUVVGVFNDeEZRVUZGUnl4SFFVRkhMRWRCUVVsSUxFVkJRVW9zUTBGQllTeEhRVUZITEdsQ1FVRnBRa0VzUlVGQlJTeFBRVUZQT1VVc1JVRkJSVGhGTEVWQlFVVkhMRWRCUVVjc1NVRkJTVVVzUlVGQlJYSk1MRTlCUVU5RExGVkJRVlVyUnl4VFFVRlROVVFzUzBGQlN6UklMRWRCUVVkNFJDeE5RVUZOTEVkQlFVY3NSMEZCZFVRc1RVRkJjRVFzVjBGQlZ6WkVMRWRCUVVkTUxFVkJRVVUzUlN4alFVRmphMFlzUlVGQlJVd3NSVUZCUlRkRkxGbEJRVmxMTEUxQlFWTXNVVUZCVVRaRkxFZEJRVWNzVVVGQlVVRXNSVUZCVTJwRExFMUJRVTFqTEV0QlFVdGpMRWRCUVUwc1kwRkJZMHNzUjBGQlJ5d3lRMEZCTWtOc1FpeExRVUZMYTBJc1IwRkJWVzVHTEVWQlFVVTRSU3hGUVVGRlJ5eFJRVUZzUml4SFFVRndUaXhEUVVFd1UwZ3NSVUZCUlVjc1NVRkJTU3hYUVVGWExFMUJRVTBzU1VGQlNYUkhMRlZCUVZVc05rbEJRUzlDTEVkQlFTdExMRk5CUVZOeFFpeEZRVUZGT0VVc1JVRkJSVWNzU1VGQlNTeE5RVUZOUVN4SFFVRkhRU3hGUVVGRlNDeEZRVUZGTDBVc1ZVRkJWV3RHTEVWQlFVVklMRVZCUVVVdlJTeFJRVUZSTEVsQlFVa3NTVUZCU1c5R0xFVkJRVVVzUlVGQlJYQkNMRVZCUVVVc1NVRkJTV0lzVFVGQlRTdENMRWRCUVVkRkxFVkJRVVZHTEVWQlFVVkZMRWxCUVVsd1FpeEZRVUZGYjBJc1IwRkJSMHdzUlVGQlJVc3NSMEZCUnl4UFFVRlBjRUlzUlVGQlJTeEpRVUZKU0N4RlFVRkZMRmRCUVZjc1NVRkJTWEZDTEVWQlFVVnNRaXhGUVVGRmVFSXNiVUpCUVcxQ2FFTXNaVUZCWlRCRkxFVkJRVVZGTEVkQlFVY3NUMEZCVHpWRExHMUNRVUZ0UW5CSUxHVkJRV1U0U2l4SFFVRkhMRTlCUVU4c1QwRkJUMEVzUlVGQlJUZEVMRXRCUVVzMlJDeEZRVUZGYmtjc1RVRkJUU3hMUVVGTExFVkJRVVVzVDBGQlQyMUhMRVZCUVVWMFNTeFBRVUZQTEZOQlFWTXNTVUZCU1dsRkxGRkJRVkVzVjBGQlZ5eEpRVUZKY1VVc1JVRkJSV3hDTEVWQlFVVjRRaXh0UWtGQmJVSm9ReXhsUVVGbE1FVXNSVUZCUld4Q0xFVkJRVVZ4UWl4SFFVRkhMRWxCUVVsd1JpeEZRVUZGTkVRc1JVRkJSU3hQUVVGUGNrSXNiVUpCUVcxQ2NFZ3NaVUZCWlRoS0xFZEJRVWNzVDBGQlR5eFBRVUZQUVN4RlFVRkZOMFFzUzBGQlN6WkVMRVZCUVVWdVJ5eE5RVUZOTEV0QlFVc3NSVUZCUlN4UFFVRlBaMGNzUzBGQlMwMHNSVUZCUlN4SlFVRkpTU3hoUVVGaExESkRRVUV5UXl4elFrRkJjMEpRTEVWQlFVVTNSQ3hMUVVGTExFVkJRVVUyUkN4RlFVRkZia2NzUzBGQlN5eEZRVUZGYVVjc1ZVRkJWVU1zV1VGQldWTXNUVUZCVFN4RFFVRkRia1lzUzBGQlN6WkZMRWxCUVVrc1MwRkJTeXhGUVVGRmJrWXNSVUZCUldsR0xFVkJRVVY2U1N4TFFVRkxiMGdzUlVGQlJTeFRRVUZUYTBJc1JVRkJSVWNzUjBGQlIycEdMRVZCUVVVd1JpeHZRa0ZCYjBJc1UwRkJVMW9zUjBGQlIwOHNSVUZCUlVvc1JVRkJSVklzVDBGQlR6RkpMRTFCUVUxblNTeEZRVUZGY1VJc1NVRkJTWEJHTEVWQlFVVXlSaXhwUWtGQmFVSXNVMEZCVXk5Q0xFZEJRVWQ1UWl4RlFVRkZja1lzUlVGQlJXcEZMRTFCUVUxblNTeEZRVUZGY1VJc1IwRkJSMGdzUlVGQlJXNUhMRXRCUVVzc1IwRkJSeXhOUVVGTkxFdEJRVXNzUjBGQlIyMUhMRVZCUVVVM1JDeExRVUZMTEVkQlFVYzJSQ3hGUVVGRlZ5eEhRVUZIV0N4RlFVRkZPVU1zVFVGQlRTeEhRVUZIYVVRc1JVRkJSVWdzUlVGQlJWY3NTVUZCU1N4TFFVRkxMRWRCUVVjc1NVRkJTU3hOUVVGTkxFOUJRVTlZTEVWQlFVVXhSQ3hWUVVGVk1FUXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRkxGVkJRVlVzVDBGQlR5eFRRVUZUU0N4RlFVRkZTeXhIUVVGSExFOUJRVTlHTEVWQlFVVnFReXhOUVVGTk1VWXNTMEZCUzNsR0xGbEJRV2hzUWl4TFFVRnBiVUlzUzBGQlN5eEZRVUZGTEVsQlFVa3NUVUZCVFN4UFFVRlBhME1zUlVGQlJURkVMRlZCUVZVd1JDeFBRVUZQTEU5QlFVOHNVMEZCVTBnc1IwRkJSeXhQUVVGUFJ5eEZRVUZGYWtNc1RVRkJUVEZHTEV0QlFVdDVSaXhaUVVGc01rSXNSMEZCYVROQ2MwTXNSVUZCUlN4VFFVRlRVQ3hGUVVGRlJ5eEZRVUZGUlN4SFFVRkhMRTlCUVU5TUxFZEJRVWNzU1VGQlNTeFRRVUZUU3l4RlFVRkZMRWxCUVVsTExHRkJRV0VzYjBKQlFXOUNMRzlDUVVGdlFpeE5RVUZOTEZGQlFWRlFMRVZCUVVWSUxFdEJRVXRSTEVWQlFVVXNWMEZCVnl4SlFVRkpTQ3hGUVVGRmNFSXNSVUZCUlhoQ0xHMUNRVUZ0UW1oRExHVkJRV1UwUlN4RlFVRkZia1lzUlVGQlJYRkdMRWRCUVVjc1QwRkJUemxETEcxQ1FVRnRRbkJJTEdWQlFXVm5TeXhIUVVGSExFOUJRVThzVDBGQlQwRXNSVUZCUlM5RUxFdEJRVXNyUkN4RlFVRkZja2NzVFVGQlRTeExRVUZMTEVWQlFVVXNUMEZCVDNGSExFVkJRVVY0U1N4UFFVRlBMRk5CUVZNc1NVRkJTV2xGTEZGQlFWRXNWMEZCVnl4SlFVRkpkVVVzUlVGQlJYQkNMRVZCUVVWNFFpeHRRa0ZCYlVKb1F5eGxRVUZsTkVVc1JVRkJSWEJDTEVWQlFVVjFRaXhIUVVGSExFbEJRVWxQTEVWQlFVVkRMRVZCUVVWRExFVkJRVVVzVDBGQlQzaEVMRzFDUVVGdFFuQklMR1ZCUVdWblN5eEhRVUZITEU5QlFVOHNUMEZCVDBFc1JVRkJSUzlFTEV0QlFVc3JSQ3hGUVVGRmNrY3NUVUZCVFN4TFFVRkxMRVZCUVVVc1QwRkJUMmRITEV0QlFVdEhMRXRCUVV0TExFVkJRVVVzU1VGQlNVVXNZVUZCWVN3d1JVRkJNRVVzYzBKQlFYTkNUQ3hGUVVGRkwwUXNTMEZCU3l4RlFVRkZLMFFzUlVGQlJWTXNSMEZCUjJoR0xGRkJRVkYxUlN4RlFVRkZja2NzUzBGQlN5eEZRVUZGT0VVc1JVRkJSVFZFTEVkQlFVY3NTMEZCU3l4RlFVRkZMRTlCUVU5dFJpeEZRVUZGWVN4SFFVRkhZaXhGUVVGRk0wa3NTMEZCU3pKSkxFVkJRVVZ5Unl4TFFVRkxMRVZCUVVWcFJ5eFZRVUZWUnl4aFFVRmhaU3hoUVVGaFdpeEhRVUZITEV0QlFVc3NSVUZCUlN4UFFVRlBSaXhGUVVGRlpTeEhRVUZIWml4RlFVRkZNMGtzUzBGQlN6SkpMRVZCUVVWblFpeEhRVUZITEVOQlFVTm9RaXhGUVVGRllTeEhRVUZIWWl4RlFVRkZaU3hKUVVGSlppeEZRVUZGY2tjc1MwRkJTeXhIUVVGSGNVY3NSVUZCUlZNc1IwRkJSMUVzU1VGQlNXeEtMRXRCUVV0cFNTeEZRVUZGVXl4SFFVRkhWQ3hGUVVGRlowSXNTVUZCU1N4TFFVRkxMRWRCUVVkT0xFVkJRVVZXTEVWQlFVVXpTU3hMUVVGTGMwb3NSVUZCUlZZc1JVRkJSVk1zUlVGQlJTeEhRVUZIUlN4RlFVRkZSQ3hGUVVGRkxFZEJRVWN2UWl4RlFVRkZaME1zUjBGQlIxb3NSVUZCUlhKSExFdEJRVXNzUjBGQlJ5eE5RVUZOTEV0QlFVc3NSMEZCUjNGSExFVkJRVVV2UkN4TFFVRkxMRWRCUVVjclJDeEZRVUZGYTBJc1IwRkJSMnhDTEVWQlFVVm9SQ3hOUVVGTkxFZEJRVWR0UkN4RlFVRkZTQ3hGUVVGRmEwSXNTVUZCU1N4TFFVRkxMRWRCUVVjc1NVRkJTU3hOUVVGTkxFOUJRVTlzUWl4RlFVRkZOVVFzVlVGQlZUUkVMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJTeFZRVUZWTEU5QlFVOHNVMEZCVTB3c1JVRkJSVWNzUjBGQlJ5eFBRVUZQUlN4RlFVRkZia01zVFVGQlRURkdMRXRCUVV0NVJpeFpRVUY2Y0VJc1MwRkJNSEZDTEV0QlFVc3NSVUZCUlN4SlFVRkpMRTFCUVUwc1QwRkJUMjlETEVWQlFVVTFSQ3hWUVVGVk5FUXNUMEZCVHl4UFFVRlBMRk5CUVZOTUxFVkJRVVZITEVkQlFVY3NUMEZCVDBVc1JVRkJSVzVETEUxQlFVMHhSaXhMUVVGTGVVWXNXVUZCTHpaQ0xITnJRa05GTlRCRmRVUXNkMEpCYlVOUFF5d3lRMEZJUVN3d1FrRkRReXhWUVVkT1F5eEZRVUZ2UWtZc1JVRkJUVWNzWjBOQlF6TkNSQ3hSUVVORkxFbEJRVWxvUWl4aFFVRmhMR3REUVVGdFF5d3dRa0ZIZEVSclFpeFZRVUZaTEVsQlFVbEdMRTlCUTJoQ1J5eFhRVUZoTEVkQlJXeENOMDBzVDBGQlR6aE5MR1ZCUTBoT0xFVkJRVTFQTEdkQ1FVTk1UaXhIUVVGWExFdEJRMkl4U1N4VFFVRlJMSGxDUVVGRmFrUXNUMEZCUzBNc1ZVRkRUQ3hoUVVGU1JDeEpRVUYxUWtNc1JVRkJUeXhMUVVNelFtbE5MRVZCUVc5Q1VpeEZRVUZOVXl3MFFrRkRNVUpFTEVsQlEweHFUU3hGUVVGUkxFbEJRVWxwVFN4SFFVZGtSU3hGUVVGTFRpeFZRVUZWT1V3c1IwRkJUME1zYzBWQk4wSmtlVXdzUlVGQlRVY3NLMEpCUVdsRFVTeFBRVUYxUTBNc2EwSkJSMnBGUXl4VFFVTm9RaXhKUVVGSmFrd3NUVUZCVFN4MVMwRnpRMVp2UWl4TFFVRkxiMG9zYjBSQlJWbFZMRVZCUVcxQ0xHRkJRV01zUTBGQlJVTXNUMEZCVHl3eVEwRkZlRVFzU1VGQlNXNU1MRTFCUVUwc0swUkJSVnAzU3l4VlFVRlZXU3d5UkVGRlZFTXNSVUZCWldwTExFdEJRVXR4U2l4WFFVRlhiRWtzVVVGRmNFTTRTU3g1UTBGTFNXcExMR2xLUVVsRVFTeExRVUZMYjBvc1owSkJRMHhCTEZWQlFWVnVSaXhQUVVkVWFrVXNORU5CU1VSQkxFdEJRVXR2U2l4blFrRkRURUVzVlVGQlZXTXNVVUZIVkd4TExEaERRVWRUYlVzc1JVRkJWME1zYVVKQlEzSkNjRXNzUzBGQlMyOUtMRmRCUVdGd1NpeExRVUZMY1Vzc2JVSkJRVzFDUml4SFFVRlpMRU5CUTNKRWJrc3NTMEZCUzNGS0xGZEJRVmRqTEZOQlEyaENMMElzYjBKQlFXOUNLMElzVDBGSGNFSkhMRVZCUVZVc1UwRkJRME1zVDBGRFdrTXNSVUZCYVVJc1IwRkRha0pNTEVsQlFXTnVRaXhGUVVGTmVVSXNWMEZCVjBNc1VVRkROVUpJTEVWQlFVMUpMRk5CUVZkS0xFVkJRVTFKTEZGQlFWRnNTU3hQUVVGVExFZEJRemRESzBnc1JVRkJaWFJKTEV0QlFVdHhTU3hGUVVGTlNTeFJRVUZSTEVkQlFVY3NSMEZCUjBNc1dVRkplRU5TTEVkQlFWbEJMRVZCUVZNeFJTeE5RVUZOYlVZc1IwRkJUMDRzVlVGQlZVTXNWVUZGTVVOd1FpeFZRVUZWWml4cFFrRkJhVUk0UWl4RlFVRlhSeXhSUVVWMFEycENMRmRCUVZkakxFZEJRV0ZITEZOQlIzWkNkRXNzYVVSQlIxbHRTeXhQUVVOaVJ5eEZRVUZWZEVzc1MwRkJTM0ZLTEZkQlFWZGpMR1ZCUXpOQ1ppeFZRVUZWYUVJc2IwSkJRVzlDSzBJc1JVRkJWMGNzVlVGRmRrTjBTeXhMUVVGTGNVb3NWMEZCVjJNc1IwRkZhRUp1U3l3NFJFRkpSbWxGTEU5QlJVeDZTQ3hQUVVGUGFVZ3NTMEZCUzNwRUxFdEJRVXR4U2l4WlFVRlpPVWtzVTBGQlVTeFRRVUZEYWtRc1ZVRkJVWGRPTEVWQlFVc3hReXh2UWtGQmIwSTVTeXhYUVVOc1JUaE1MRlZCUVZrc1MwRkZWbkJLTEdkRVFVZFhiVXNzVjBGRFZETk9MRTlCUVU4MFJDeFBRVUZQTkVrc1JVRkJUWGxDTEZsQlFWbE5MRTFCUVVzc1UwRkJRM1pNTEZWQlFWTkJMRWxCUVZNeVN5dzJRMEZ5UmpGRWJrc3NTMEZCUzI5S0xIZENRVWRCVXl4VFFVTk9MRWxCUVVscVRDeE5RVUZOTEd0SFFYTkdabTlOTEU5QlFVODVRaXh0UWtGRFVEaENMRTlCUVU5RExIbENRVU5RUkN4UFFVRlBSU3h6UWtGRFVFWXNUMEZCVDBjc0swVkJUVkJJTEU5QlFVOTRRaXh0UWtGRFVIZENMRTlCUVU5SkxIbENRVU5RU2l4UFFVRlBTeXh6UWtGRFVFd3NUMEZCVDAwc0swSkJha3RLZEVNc2JVSkJRMjFDTEVOQlEzWkNkVU1zVTBGQlZTeExRVU5XUXl4TFFVRk5MRkZCUTA1RExGbEJRVmtzUlVGRFdrTXNaMEpCUVdkQ0xFVkJRMmhDUXl4blFrRkJhVUlzUlVGRGFrSkRMRmRCUVZrc1UwRlFValZETEdWQlZXVXNRMEZEYmtJMlF5eFZRVUZYTEZkQlExaERMRmxCUVdFc1lVRkRZa01zU1VGQlN5eE5RVU5NUXl4TlFVRlBMRkZCUTFCRExGTkJRVlVzVlVGRFZuWkNMRTlCUVZFc1UwRkRVbmRDTEZWQlFWY3NWMEZEV0VNc1dVRkJZU3hoUVVOaVF5eFhRVUZaTEZsQlExcERMR0ZCUVdNc1kwRkRaRU1zVFVGQlR5SjlcbiIsInZhciBuPWZ1bmN0aW9uKG4pe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIG59O2V4cG9ydHtuIGFzIGlzRnVuY3Rpb259O1xuIiwiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBWb2NhbCBhcyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIgfSBmcm9tICdAdW50ZW1wcy92b2NhbCdcblxuY29uc3QgdXNlVm9jYWwgPSAobGFuZyA9ICdlbi1VUycsIGdyYW1tYXJzID0gbnVsbCwgX19yc0luc3RhbmNlID0gbnVsbCkgPT4ge1xuXHRjb25zdCByZWYgPSB1c2VSZWYobnVsbClcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuaXNTdXBwb3J0ZWQpIHtcblx0XHRcdHJlZi5jdXJyZW50ID0gX19yc0luc3RhbmNlIHx8IG5ldyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIoeyBsYW5nLCBncmFtbWFycyB9KVxuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmVmLmN1cnJlbnQuYWJvcnQoKVxuXHRcdFx0XHRyZWYuY3VycmVudC5jbGVhbnVwKClcblx0XHRcdH1cblx0XHR9XG5cdH0sIFtsYW5nLCBncmFtbWFycywgX19yc0luc3RhbmNlXSlcblxuXHRjb25zdCBzdGFydCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcblx0XHRpZiAocmVmLmN1cnJlbnQpIHtcblx0XHRcdHJlZi5jdXJyZW50LnN0YXJ0KClcblx0XHR9XG5cdH0sIFtdKVxuXG5cdGNvbnN0IHN0b3AgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG5cdFx0aWYgKHJlZi5jdXJyZW50KSB7XG5cdFx0XHRyZWYuY3VycmVudC5zdG9wKClcblx0XHR9XG5cdH0sIFtdKVxuXG5cdGNvbnN0IGFib3J0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuXHRcdGlmIChyZWYuY3VycmVudCkge1xuXHRcdFx0cmVmLmN1cnJlbnQuYWJvcnQoKVxuXHRcdH1cblx0fSwgW10pXG5cblx0Y29uc3Qgc3Vic2NyaWJlID0gdXNlQ2FsbGJhY2soKGV2ZW50VHlwZSwgaGFuZGxlcikgPT4ge1xuXHRcdGlmIChyZWYuY3VycmVudCkge1xuXHRcdFx0cmVmLmN1cnJlbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIpXG5cdFx0fVxuXHR9LCBbXSlcblxuXHRjb25zdCB1bnN1YnNjcmliZSA9IHVzZUNhbGxiYWNrKChldmVudFR5cGUsIGhhbmRsZXIpID0+IHtcblx0XHRpZiAocmVmLmN1cnJlbnQpIHtcblx0XHRcdHJlZi5jdXJyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyKVxuXHRcdH1cblx0fSwgW10pXG5cblx0Y29uc3QgY2xlYW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG5cdFx0aWYgKHJlZi5jdXJyZW50KSB7XG5cdFx0XHRyZWYuY3VycmVudC5jbGVhbnVwKClcblx0XHR9XG5cdH0sIFtdKVxuXG5cdHJldHVybiBbcmVmLCB7IHN0YXJ0LCBzdG9wLCBhYm9ydCwgc3Vic2NyaWJlLCB1bnN1YnNjcmliZSwgY2xlYW4gfV1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlVm9jYWxcblxuLy8gVE9ETzogUmV0dXJuIHRoZSBpbnN0YW5jZSwgbm90IHRoZSByZWZcbiIsIi8qKlxuICogRnVzZS5qcyB2Ni40LjYgLSBMaWdodHdlaWdodCBmdXp6eS1zZWFyY2ggKGh0dHA6Ly9mdXNlanMuaW8pXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDIxIEtpcm8gUmlzayAoaHR0cDovL2tpcm8ubWUpXG4gKiBBbGwgUmlnaHRzIFJlc2VydmVkLiBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjBcbiAqXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuXG5mdW5jdGlvbiBpc0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiAhQXJyYXkuaXNBcnJheVxuICAgID8gZ2V0VGFnKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJ1xuICAgIDogQXJyYXkuaXNBcnJheSh2YWx1ZSlcbn1cblxuLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vbG9kYXNoL2xvZGFzaC9ibG9iL21hc3Rlci8uaW50ZXJuYWwvYmFzZVRvU3RyaW5nLmpzXG5jb25zdCBJTkZJTklUWSA9IDEgLyAwO1xuZnVuY3Rpb24gYmFzZVRvU3RyaW5nKHZhbHVlKSB7XG4gIC8vIEV4aXQgZWFybHkgZm9yIHN0cmluZ3MgdG8gYXZvaWQgYSBwZXJmb3JtYW5jZSBoaXQgaW4gc29tZSBlbnZpcm9ubWVudHMuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuICBsZXQgcmVzdWx0ID0gdmFsdWUgKyAnJztcbiAgcmV0dXJuIHJlc3VsdCA9PSAnMCcgJiYgMSAvIHZhbHVlID09IC1JTkZJTklUWSA/ICctMCcgOiByZXN1bHRcbn1cblxuZnVuY3Rpb24gdG9TdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgPyAnJyA6IGJhc2VUb1N0cmluZyh2YWx1ZSlcbn1cblxuZnVuY3Rpb24gaXNTdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbn1cblxuZnVuY3Rpb24gaXNOdW1iZXIodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcidcbn1cblxuLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vbG9kYXNoL2xvZGFzaC9ibG9iL21hc3Rlci9pc0Jvb2xlYW4uanNcbmZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZSkge1xuICByZXR1cm4gKFxuICAgIHZhbHVlID09PSB0cnVlIHx8XG4gICAgdmFsdWUgPT09IGZhbHNlIHx8XG4gICAgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgZ2V0VGFnKHZhbHVlKSA9PSAnW29iamVjdCBCb29sZWFuXScpXG4gIClcbn1cblxuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCdcbn1cblxuLy8gQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0KHZhbHVlKSAmJiB2YWx1ZSAhPT0gbnVsbFxufVxuXG5mdW5jdGlvbiBpc0RlZmluZWQodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGxcbn1cblxuZnVuY3Rpb24gaXNCbGFuayh2YWx1ZSkge1xuICByZXR1cm4gIXZhbHVlLnRyaW0oKS5sZW5ndGhcbn1cblxuLy8gR2V0cyB0aGUgYHRvU3RyaW5nVGFnYCBvZiBgdmFsdWVgLlxuLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vbG9kYXNoL2xvZGFzaC9ibG9iL21hc3Rlci8uaW50ZXJuYWwvZ2V0VGFnLmpzXG5mdW5jdGlvbiBnZXRUYWcodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGxcbiAgICA/IHZhbHVlID09PSB1bmRlZmluZWRcbiAgICAgID8gJ1tvYmplY3QgVW5kZWZpbmVkXSdcbiAgICAgIDogJ1tvYmplY3QgTnVsbF0nXG4gICAgOiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpXG59XG5cbmNvbnN0IEVYVEVOREVEX1NFQVJDSF9VTkFWQUlMQUJMRSA9ICdFeHRlbmRlZCBzZWFyY2ggaXMgbm90IGF2YWlsYWJsZSc7XG5cbmNvbnN0IElOQ09SUkVDVF9JTkRFWF9UWVBFID0gXCJJbmNvcnJlY3QgJ2luZGV4JyB0eXBlXCI7XG5cbmNvbnN0IExPR0lDQUxfU0VBUkNIX0lOVkFMSURfUVVFUllfRk9SX0tFWSA9IChrZXkpID0+XG4gIGBJbnZhbGlkIHZhbHVlIGZvciBrZXkgJHtrZXl9YDtcblxuY29uc3QgUEFUVEVSTl9MRU5HVEhfVE9PX0xBUkdFID0gKG1heCkgPT5cbiAgYFBhdHRlcm4gbGVuZ3RoIGV4Y2VlZHMgbWF4IG9mICR7bWF4fS5gO1xuXG5jb25zdCBNSVNTSU5HX0tFWV9QUk9QRVJUWSA9IChuYW1lKSA9PiBgTWlzc2luZyAke25hbWV9IHByb3BlcnR5IGluIGtleWA7XG5cbmNvbnN0IElOVkFMSURfS0VZX1dFSUdIVF9WQUxVRSA9IChrZXkpID0+XG4gIGBQcm9wZXJ0eSAnd2VpZ2h0JyBpbiBrZXkgJyR7a2V5fScgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXJgO1xuXG5jb25zdCBoYXNPd24gPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5jbGFzcyBLZXlTdG9yZSB7XG4gIGNvbnN0cnVjdG9yKGtleXMpIHtcbiAgICB0aGlzLl9rZXlzID0gW107XG4gICAgdGhpcy5fa2V5TWFwID0ge307XG5cbiAgICBsZXQgdG90YWxXZWlnaHQgPSAwO1xuXG4gICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGxldCBvYmogPSBjcmVhdGVLZXkoa2V5KTtcblxuICAgICAgdG90YWxXZWlnaHQgKz0gb2JqLndlaWdodDtcblxuICAgICAgdGhpcy5fa2V5cy5wdXNoKG9iaik7XG4gICAgICB0aGlzLl9rZXlNYXBbb2JqLmlkXSA9IG9iajtcblxuICAgICAgdG90YWxXZWlnaHQgKz0gb2JqLndlaWdodDtcbiAgICB9KTtcblxuICAgIC8vIE5vcm1hbGl6ZSB3ZWlnaHRzIHNvIHRoYXQgdGhlaXIgc3VtIGlzIGVxdWFsIHRvIDFcbiAgICB0aGlzLl9rZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAga2V5LndlaWdodCAvPSB0b3RhbFdlaWdodDtcbiAgICB9KTtcbiAgfVxuICBnZXQoa2V5SWQpIHtcbiAgICByZXR1cm4gdGhpcy5fa2V5TWFwW2tleUlkXVxuICB9XG4gIGtleXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2tleXNcbiAgfVxuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuX2tleXMpXG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlS2V5KGtleSkge1xuICBsZXQgcGF0aCA9IG51bGw7XG4gIGxldCBpZCA9IG51bGw7XG4gIGxldCBzcmMgPSBudWxsO1xuICBsZXQgd2VpZ2h0ID0gMTtcblxuICBpZiAoaXNTdHJpbmcoa2V5KSB8fCBpc0FycmF5KGtleSkpIHtcbiAgICBzcmMgPSBrZXk7XG4gICAgcGF0aCA9IGNyZWF0ZUtleVBhdGgoa2V5KTtcbiAgICBpZCA9IGNyZWF0ZUtleUlkKGtleSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKCFoYXNPd24uY2FsbChrZXksICduYW1lJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihNSVNTSU5HX0tFWV9QUk9QRVJUWSgnbmFtZScpKVxuICAgIH1cblxuICAgIGNvbnN0IG5hbWUgPSBrZXkubmFtZTtcbiAgICBzcmMgPSBuYW1lO1xuXG4gICAgaWYgKGhhc093bi5jYWxsKGtleSwgJ3dlaWdodCcpKSB7XG4gICAgICB3ZWlnaHQgPSBrZXkud2VpZ2h0O1xuXG4gICAgICBpZiAod2VpZ2h0IDw9IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKElOVkFMSURfS0VZX1dFSUdIVF9WQUxVRShuYW1lKSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYXRoID0gY3JlYXRlS2V5UGF0aChuYW1lKTtcbiAgICBpZCA9IGNyZWF0ZUtleUlkKG5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIHsgcGF0aCwgaWQsIHdlaWdodCwgc3JjIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlS2V5UGF0aChrZXkpIHtcbiAgcmV0dXJuIGlzQXJyYXkoa2V5KSA/IGtleSA6IGtleS5zcGxpdCgnLicpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUtleUlkKGtleSkge1xuICByZXR1cm4gaXNBcnJheShrZXkpID8ga2V5LmpvaW4oJy4nKSA6IGtleVxufVxuXG5mdW5jdGlvbiBnZXQob2JqLCBwYXRoKSB7XG4gIGxldCBsaXN0ID0gW107XG4gIGxldCBhcnIgPSBmYWxzZTtcblxuICBjb25zdCBkZWVwR2V0ID0gKG9iaiwgcGF0aCwgaW5kZXgpID0+IHtcbiAgICBpZiAoIWlzRGVmaW5lZChvYmopKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKCFwYXRoW2luZGV4XSkge1xuICAgICAgLy8gSWYgdGhlcmUncyBubyBwYXRoIGxlZnQsIHdlJ3ZlIGFycml2ZWQgYXQgdGhlIG9iamVjdCB3ZSBjYXJlIGFib3V0LlxuICAgICAgbGlzdC5wdXNoKG9iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBrZXkgPSBwYXRoW2luZGV4XTtcblxuICAgICAgY29uc3QgdmFsdWUgPSBvYmpba2V5XTtcblxuICAgICAgaWYgKCFpc0RlZmluZWQodmFsdWUpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBJZiB3ZSdyZSBhdCB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgcGF0aCwgYW5kIGlmIGl0J3MgYSBzdHJpbmcvbnVtYmVyL2Jvb2wsXG4gICAgICAvLyBhZGQgaXQgdG8gdGhlIGxpc3RcbiAgICAgIGlmIChcbiAgICAgICAgaW5kZXggPT09IHBhdGgubGVuZ3RoIC0gMSAmJlxuICAgICAgICAoaXNTdHJpbmcodmFsdWUpIHx8IGlzTnVtYmVyKHZhbHVlKSB8fCBpc0Jvb2xlYW4odmFsdWUpKVxuICAgICAgKSB7XG4gICAgICAgIGxpc3QucHVzaCh0b1N0cmluZyh2YWx1ZSkpO1xuICAgICAgfSBlbHNlIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBhcnIgPSB0cnVlO1xuICAgICAgICAvLyBTZWFyY2ggZWFjaCBpdGVtIGluIHRoZSBhcnJheS5cbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHZhbHVlLmxlbmd0aDsgaSA8IGxlbjsgaSArPSAxKSB7XG4gICAgICAgICAgZGVlcEdldCh2YWx1ZVtpXSwgcGF0aCwgaW5kZXggKyAxKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwYXRoLmxlbmd0aCkge1xuICAgICAgICAvLyBBbiBvYmplY3QuIFJlY3Vyc2UgZnVydGhlci5cbiAgICAgICAgZGVlcEdldCh2YWx1ZSwgcGF0aCwgaW5kZXggKyAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKHNpbmNlIHBhdGggdXNlZCB0byBiZSBhIHN0cmluZylcbiAgZGVlcEdldChvYmosIGlzU3RyaW5nKHBhdGgpID8gcGF0aC5zcGxpdCgnLicpIDogcGF0aCwgMCk7XG5cbiAgcmV0dXJuIGFyciA/IGxpc3QgOiBsaXN0WzBdXG59XG5cbmNvbnN0IE1hdGNoT3B0aW9ucyA9IHtcbiAgLy8gV2hldGhlciB0aGUgbWF0Y2hlcyBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdCBzZXQuIFdoZW4gYHRydWVgLCBlYWNoIHJlY29yZCBpbiB0aGUgcmVzdWx0XG4gIC8vIHNldCB3aWxsIGluY2x1ZGUgdGhlIGluZGljZXMgb2YgdGhlIG1hdGNoZWQgY2hhcmFjdGVycy5cbiAgLy8gVGhlc2UgY2FuIGNvbnNlcXVlbnRseSBiZSB1c2VkIGZvciBoaWdobGlnaHRpbmcgcHVycG9zZXMuXG4gIGluY2x1ZGVNYXRjaGVzOiBmYWxzZSxcbiAgLy8gV2hlbiBgdHJ1ZWAsIHRoZSBtYXRjaGluZyBmdW5jdGlvbiB3aWxsIGNvbnRpbnVlIHRvIHRoZSBlbmQgb2YgYSBzZWFyY2ggcGF0dGVybiBldmVuIGlmXG4gIC8vIGEgcGVyZmVjdCBtYXRjaCBoYXMgYWxyZWFkeSBiZWVuIGxvY2F0ZWQgaW4gdGhlIHN0cmluZy5cbiAgZmluZEFsbE1hdGNoZXM6IGZhbHNlLFxuICAvLyBNaW5pbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRoYXQgbXVzdCBiZSBtYXRjaGVkIGJlZm9yZSBhIHJlc3VsdCBpcyBjb25zaWRlcmVkIGEgbWF0Y2hcbiAgbWluTWF0Y2hDaGFyTGVuZ3RoOiAxXG59O1xuXG5jb25zdCBCYXNpY09wdGlvbnMgPSB7XG4gIC8vIFdoZW4gYHRydWVgLCB0aGUgYWxnb3JpdGhtIGNvbnRpbnVlcyBzZWFyY2hpbmcgdG8gdGhlIGVuZCBvZiB0aGUgaW5wdXQgZXZlbiBpZiBhIHBlcmZlY3RcbiAgLy8gbWF0Y2ggaXMgZm91bmQgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIHNhbWUgaW5wdXQuXG4gIGlzQ2FzZVNlbnNpdGl2ZTogZmFsc2UsXG4gIC8vIFdoZW4gdHJ1ZSwgdGhlIG1hdGNoaW5nIGZ1bmN0aW9uIHdpbGwgY29udGludWUgdG8gdGhlIGVuZCBvZiBhIHNlYXJjaCBwYXR0ZXJuIGV2ZW4gaWZcbiAgaW5jbHVkZVNjb3JlOiBmYWxzZSxcbiAgLy8gTGlzdCBvZiBwcm9wZXJ0aWVzIHRoYXQgd2lsbCBiZSBzZWFyY2hlZC4gVGhpcyBhbHNvIHN1cHBvcnRzIG5lc3RlZCBwcm9wZXJ0aWVzLlxuICBrZXlzOiBbXSxcbiAgLy8gV2hldGhlciB0byBzb3J0IHRoZSByZXN1bHQgbGlzdCwgYnkgc2NvcmVcbiAgc2hvdWxkU29ydDogdHJ1ZSxcbiAgLy8gRGVmYXVsdCBzb3J0IGZ1bmN0aW9uOiBzb3J0IGJ5IGFzY2VuZGluZyBzY29yZSwgYXNjZW5kaW5nIGluZGV4XG4gIHNvcnRGbjogKGEsIGIpID0+XG4gICAgYS5zY29yZSA9PT0gYi5zY29yZSA/IChhLmlkeCA8IGIuaWR4ID8gLTEgOiAxKSA6IGEuc2NvcmUgPCBiLnNjb3JlID8gLTEgOiAxXG59O1xuXG5jb25zdCBGdXp6eU9wdGlvbnMgPSB7XG4gIC8vIEFwcHJveGltYXRlbHkgd2hlcmUgaW4gdGhlIHRleHQgaXMgdGhlIHBhdHRlcm4gZXhwZWN0ZWQgdG8gYmUgZm91bmQ/XG4gIGxvY2F0aW9uOiAwLFxuICAvLyBBdCB3aGF0IHBvaW50IGRvZXMgdGhlIG1hdGNoIGFsZ29yaXRobSBnaXZlIHVwLiBBIHRocmVzaG9sZCBvZiAnMC4wJyByZXF1aXJlcyBhIHBlcmZlY3QgbWF0Y2hcbiAgLy8gKG9mIGJvdGggbGV0dGVycyBhbmQgbG9jYXRpb24pLCBhIHRocmVzaG9sZCBvZiAnMS4wJyB3b3VsZCBtYXRjaCBhbnl0aGluZy5cbiAgdGhyZXNob2xkOiAwLjYsXG4gIC8vIERldGVybWluZXMgaG93IGNsb3NlIHRoZSBtYXRjaCBtdXN0IGJlIHRvIHRoZSBmdXp6eSBsb2NhdGlvbiAoc3BlY2lmaWVkIGFib3ZlKS5cbiAgLy8gQW4gZXhhY3QgbGV0dGVyIG1hdGNoIHdoaWNoIGlzICdkaXN0YW5jZScgY2hhcmFjdGVycyBhd2F5IGZyb20gdGhlIGZ1enp5IGxvY2F0aW9uXG4gIC8vIHdvdWxkIHNjb3JlIGFzIGEgY29tcGxldGUgbWlzbWF0Y2guIEEgZGlzdGFuY2Ugb2YgJzAnIHJlcXVpcmVzIHRoZSBtYXRjaCBiZSBhdFxuICAvLyB0aGUgZXhhY3QgbG9jYXRpb24gc3BlY2lmaWVkLCBhIHRocmVzaG9sZCBvZiAnMTAwMCcgd291bGQgcmVxdWlyZSBhIHBlcmZlY3QgbWF0Y2hcbiAgLy8gdG8gYmUgd2l0aGluIDgwMCBjaGFyYWN0ZXJzIG9mIHRoZSBmdXp6eSBsb2NhdGlvbiB0byBiZSBmb3VuZCB1c2luZyBhIDAuOCB0aHJlc2hvbGQuXG4gIGRpc3RhbmNlOiAxMDBcbn07XG5cbmNvbnN0IEFkdmFuY2VkT3B0aW9ucyA9IHtcbiAgLy8gV2hlbiBgdHJ1ZWAsIGl0IGVuYWJsZXMgdGhlIHVzZSBvZiB1bml4LWxpa2Ugc2VhcmNoIGNvbW1hbmRzXG4gIHVzZUV4dGVuZGVkU2VhcmNoOiBmYWxzZSxcbiAgLy8gVGhlIGdldCBmdW5jdGlvbiB0byB1c2Ugd2hlbiBmZXRjaGluZyBhbiBvYmplY3QncyBwcm9wZXJ0aWVzLlxuICAvLyBUaGUgZGVmYXVsdCB3aWxsIHNlYXJjaCBuZXN0ZWQgcGF0aHMgKmllIGZvby5iYXIuYmF6KlxuICBnZXRGbjogZ2V0LFxuICAvLyBXaGVuIGB0cnVlYCwgc2VhcmNoIHdpbGwgaWdub3JlIGBsb2NhdGlvbmAgYW5kIGBkaXN0YW5jZWAsIHNvIGl0IHdvbid0IG1hdHRlclxuICAvLyB3aGVyZSBpbiB0aGUgc3RyaW5nIHRoZSBwYXR0ZXJuIGFwcGVhcnMuXG4gIC8vIE1vcmUgaW5mbzogaHR0cHM6Ly9mdXNlanMuaW8vY29uY2VwdHMvc2NvcmluZy10aGVvcnkuaHRtbCNmdXp6aW5lc3Mtc2NvcmVcbiAgaWdub3JlTG9jYXRpb246IGZhbHNlLFxuICAvLyBXaGVuIGB0cnVlYCwgdGhlIGNhbGN1bGF0aW9uIGZvciB0aGUgcmVsZXZhbmNlIHNjb3JlICh1c2VkIGZvciBzb3J0aW5nKSB3aWxsXG4gIC8vIGlnbm9yZSB0aGUgZmllbGQtbGVuZ3RoIG5vcm0uXG4gIC8vIE1vcmUgaW5mbzogaHR0cHM6Ly9mdXNlanMuaW8vY29uY2VwdHMvc2NvcmluZy10aGVvcnkuaHRtbCNmaWVsZC1sZW5ndGgtbm9ybVxuICBpZ25vcmVGaWVsZE5vcm06IGZhbHNlXG59O1xuXG52YXIgQ29uZmlnID0ge1xuICAuLi5CYXNpY09wdGlvbnMsXG4gIC4uLk1hdGNoT3B0aW9ucyxcbiAgLi4uRnV6enlPcHRpb25zLFxuICAuLi5BZHZhbmNlZE9wdGlvbnNcbn07XG5cbmNvbnN0IFNQQUNFID0gL1teIF0rL2c7XG5cbi8vIEZpZWxkLWxlbmd0aCBub3JtOiB0aGUgc2hvcnRlciB0aGUgZmllbGQsIHRoZSBoaWdoZXIgdGhlIHdlaWdodC5cbi8vIFNldCB0byAzIGRlY2ltYWxzIHRvIHJlZHVjZSBpbmRleCBzaXplLlxuZnVuY3Rpb24gbm9ybShtYW50aXNzYSA9IDMpIHtcbiAgY29uc3QgY2FjaGUgPSBuZXcgTWFwKCk7XG4gIGNvbnN0IG0gPSBNYXRoLnBvdygxMCwgbWFudGlzc2EpO1xuXG4gIHJldHVybiB7XG4gICAgZ2V0KHZhbHVlKSB7XG4gICAgICBjb25zdCBudW1Ub2tlbnMgPSB2YWx1ZS5tYXRjaChTUEFDRSkubGVuZ3RoO1xuXG4gICAgICBpZiAoY2FjaGUuaGFzKG51bVRva2VucykpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChudW1Ub2tlbnMpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5vcm0gPSAxIC8gTWF0aC5zcXJ0KG51bVRva2Vucyk7XG5cbiAgICAgIC8vIEluIHBsYWNlIG9mIGB0b0ZpeGVkKG1hbnRpc3NhKWAsIGZvciBmYXN0ZXIgY29tcHV0YXRpb25cbiAgICAgIGNvbnN0IG4gPSBwYXJzZUZsb2F0KE1hdGgucm91bmQobm9ybSAqIG0pIC8gbSk7XG5cbiAgICAgIGNhY2hlLnNldChudW1Ub2tlbnMsIG4pO1xuXG4gICAgICByZXR1cm4gblxuICAgIH0sXG4gICAgY2xlYXIoKSB7XG4gICAgICBjYWNoZS5jbGVhcigpO1xuICAgIH1cbiAgfVxufVxuXG5jbGFzcyBGdXNlSW5kZXgge1xuICBjb25zdHJ1Y3Rvcih7IGdldEZuID0gQ29uZmlnLmdldEZuIH0gPSB7fSkge1xuICAgIHRoaXMubm9ybSA9IG5vcm0oMyk7XG4gICAgdGhpcy5nZXRGbiA9IGdldEZuO1xuICAgIHRoaXMuaXNDcmVhdGVkID0gZmFsc2U7XG5cbiAgICB0aGlzLnNldEluZGV4UmVjb3JkcygpO1xuICB9XG4gIHNldFNvdXJjZXMoZG9jcyA9IFtdKSB7XG4gICAgdGhpcy5kb2NzID0gZG9jcztcbiAgfVxuICBzZXRJbmRleFJlY29yZHMocmVjb3JkcyA9IFtdKSB7XG4gICAgdGhpcy5yZWNvcmRzID0gcmVjb3JkcztcbiAgfVxuICBzZXRLZXlzKGtleXMgPSBbXSkge1xuICAgIHRoaXMua2V5cyA9IGtleXM7XG4gICAgdGhpcy5fa2V5c01hcCA9IHt9O1xuICAgIGtleXMuZm9yRWFjaCgoa2V5LCBpZHgpID0+IHtcbiAgICAgIHRoaXMuX2tleXNNYXBba2V5LmlkXSA9IGlkeDtcbiAgICB9KTtcbiAgfVxuICBjcmVhdGUoKSB7XG4gICAgaWYgKHRoaXMuaXNDcmVhdGVkIHx8ICF0aGlzLmRvY3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmlzQ3JlYXRlZCA9IHRydWU7XG5cbiAgICAvLyBMaXN0IGlzIEFycmF5PFN0cmluZz5cbiAgICBpZiAoaXNTdHJpbmcodGhpcy5kb2NzWzBdKSkge1xuICAgICAgdGhpcy5kb2NzLmZvckVhY2goKGRvYywgZG9jSW5kZXgpID0+IHtcbiAgICAgICAgdGhpcy5fYWRkU3RyaW5nKGRvYywgZG9jSW5kZXgpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIExpc3QgaXMgQXJyYXk8T2JqZWN0PlxuICAgICAgdGhpcy5kb2NzLmZvckVhY2goKGRvYywgZG9jSW5kZXgpID0+IHtcbiAgICAgICAgdGhpcy5fYWRkT2JqZWN0KGRvYywgZG9jSW5kZXgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5ub3JtLmNsZWFyKCk7XG4gIH1cbiAgLy8gQWRkcyBhIGRvYyB0byB0aGUgZW5kIG9mIHRoZSBpbmRleFxuICBhZGQoZG9jKSB7XG4gICAgY29uc3QgaWR4ID0gdGhpcy5zaXplKCk7XG5cbiAgICBpZiAoaXNTdHJpbmcoZG9jKSkge1xuICAgICAgdGhpcy5fYWRkU3RyaW5nKGRvYywgaWR4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fYWRkT2JqZWN0KGRvYywgaWR4KTtcbiAgICB9XG4gIH1cbiAgLy8gUmVtb3ZlcyB0aGUgZG9jIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggb2YgdGhlIGluZGV4XG4gIHJlbW92ZUF0KGlkeCkge1xuICAgIHRoaXMucmVjb3Jkcy5zcGxpY2UoaWR4LCAxKTtcblxuICAgIC8vIENoYW5nZSByZWYgaW5kZXggb2YgZXZlcnkgc3Vic3F1ZW50IGRvY1xuICAgIGZvciAobGV0IGkgPSBpZHgsIGxlbiA9IHRoaXMuc2l6ZSgpOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgIHRoaXMucmVjb3Jkc1tpXS5pIC09IDE7XG4gICAgfVxuICB9XG4gIGdldFZhbHVlRm9ySXRlbUF0S2V5SWQoaXRlbSwga2V5SWQpIHtcbiAgICByZXR1cm4gaXRlbVt0aGlzLl9rZXlzTWFwW2tleUlkXV1cbiAgfVxuICBzaXplKCkge1xuICAgIHJldHVybiB0aGlzLnJlY29yZHMubGVuZ3RoXG4gIH1cbiAgX2FkZFN0cmluZyhkb2MsIGRvY0luZGV4KSB7XG4gICAgaWYgKCFpc0RlZmluZWQoZG9jKSB8fCBpc0JsYW5rKGRvYykpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGxldCByZWNvcmQgPSB7XG4gICAgICB2OiBkb2MsXG4gICAgICBpOiBkb2NJbmRleCxcbiAgICAgIG46IHRoaXMubm9ybS5nZXQoZG9jKVxuICAgIH07XG5cbiAgICB0aGlzLnJlY29yZHMucHVzaChyZWNvcmQpO1xuICB9XG4gIF9hZGRPYmplY3QoZG9jLCBkb2NJbmRleCkge1xuICAgIGxldCByZWNvcmQgPSB7IGk6IGRvY0luZGV4LCAkOiB7fSB9O1xuXG4gICAgLy8gSXRlcmF0ZSBvdmVyIGV2ZXJ5IGtleSAoaS5lLCBwYXRoKSwgYW5kIGZldGNoIHRoZSB2YWx1ZSBhdCB0aGF0IGtleVxuICAgIHRoaXMua2V5cy5mb3JFYWNoKChrZXksIGtleUluZGV4KSA9PiB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhrZXkpXG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLmdldEZuKGRvYywga2V5LnBhdGgpO1xuXG4gICAgICBpZiAoIWlzRGVmaW5lZCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBsZXQgc3ViUmVjb3JkcyA9IFtdO1xuICAgICAgICBjb25zdCBzdGFjayA9IFt7IG5lc3RlZEFyckluZGV4OiAtMSwgdmFsdWUgfV07XG5cbiAgICAgICAgd2hpbGUgKHN0YWNrLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IHsgbmVzdGVkQXJySW5kZXgsIHZhbHVlIH0gPSBzdGFjay5wb3AoKTtcblxuICAgICAgICAgIGlmICghaXNEZWZpbmVkKHZhbHVlKSkge1xuICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaXNTdHJpbmcodmFsdWUpICYmICFpc0JsYW5rKHZhbHVlKSkge1xuICAgICAgICAgICAgbGV0IHN1YlJlY29yZCA9IHtcbiAgICAgICAgICAgICAgdjogdmFsdWUsXG4gICAgICAgICAgICAgIGk6IG5lc3RlZEFyckluZGV4LFxuICAgICAgICAgICAgICBuOiB0aGlzLm5vcm0uZ2V0KHZhbHVlKVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgc3ViUmVjb3Jkcy5wdXNoKHN1YlJlY29yZCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoaXRlbSwgaykgPT4ge1xuICAgICAgICAgICAgICBzdGFjay5wdXNoKHtcbiAgICAgICAgICAgICAgICBuZXN0ZWRBcnJJbmRleDogayxcbiAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZWNvcmQuJFtrZXlJbmRleF0gPSBzdWJSZWNvcmRzO1xuICAgICAgfSBlbHNlIGlmICghaXNCbGFuayh2YWx1ZSkpIHtcbiAgICAgICAgbGV0IHN1YlJlY29yZCA9IHtcbiAgICAgICAgICB2OiB2YWx1ZSxcbiAgICAgICAgICBuOiB0aGlzLm5vcm0uZ2V0KHZhbHVlKVxuICAgICAgICB9O1xuXG4gICAgICAgIHJlY29yZC4kW2tleUluZGV4XSA9IHN1YlJlY29yZDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMucmVjb3Jkcy5wdXNoKHJlY29yZCk7XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB7XG4gICAgICBrZXlzOiB0aGlzLmtleXMsXG4gICAgICByZWNvcmRzOiB0aGlzLnJlY29yZHNcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlSW5kZXgoa2V5cywgZG9jcywgeyBnZXRGbiA9IENvbmZpZy5nZXRGbiB9ID0ge30pIHtcbiAgY29uc3QgbXlJbmRleCA9IG5ldyBGdXNlSW5kZXgoeyBnZXRGbiB9KTtcbiAgbXlJbmRleC5zZXRLZXlzKGtleXMubWFwKGNyZWF0ZUtleSkpO1xuICBteUluZGV4LnNldFNvdXJjZXMoZG9jcyk7XG4gIG15SW5kZXguY3JlYXRlKCk7XG4gIHJldHVybiBteUluZGV4XG59XG5cbmZ1bmN0aW9uIHBhcnNlSW5kZXgoZGF0YSwgeyBnZXRGbiA9IENvbmZpZy5nZXRGbiB9ID0ge30pIHtcbiAgY29uc3QgeyBrZXlzLCByZWNvcmRzIH0gPSBkYXRhO1xuICBjb25zdCBteUluZGV4ID0gbmV3IEZ1c2VJbmRleCh7IGdldEZuIH0pO1xuICBteUluZGV4LnNldEtleXMoa2V5cyk7XG4gIG15SW5kZXguc2V0SW5kZXhSZWNvcmRzKHJlY29yZHMpO1xuICByZXR1cm4gbXlJbmRleFxufVxuXG5mdW5jdGlvbiBjb21wdXRlU2NvcmUoXG4gIHBhdHRlcm4sXG4gIHtcbiAgICBlcnJvcnMgPSAwLFxuICAgIGN1cnJlbnRMb2NhdGlvbiA9IDAsXG4gICAgZXhwZWN0ZWRMb2NhdGlvbiA9IDAsXG4gICAgZGlzdGFuY2UgPSBDb25maWcuZGlzdGFuY2UsXG4gICAgaWdub3JlTG9jYXRpb24gPSBDb25maWcuaWdub3JlTG9jYXRpb25cbiAgfSA9IHt9XG4pIHtcbiAgY29uc3QgYWNjdXJhY3kgPSBlcnJvcnMgLyBwYXR0ZXJuLmxlbmd0aDtcblxuICBpZiAoaWdub3JlTG9jYXRpb24pIHtcbiAgICByZXR1cm4gYWNjdXJhY3lcbiAgfVxuXG4gIGNvbnN0IHByb3hpbWl0eSA9IE1hdGguYWJzKGV4cGVjdGVkTG9jYXRpb24gLSBjdXJyZW50TG9jYXRpb24pO1xuXG4gIGlmICghZGlzdGFuY2UpIHtcbiAgICAvLyBEb2RnZSBkaXZpZGUgYnkgemVybyBlcnJvci5cbiAgICByZXR1cm4gcHJveGltaXR5ID8gMS4wIDogYWNjdXJhY3lcbiAgfVxuXG4gIHJldHVybiBhY2N1cmFjeSArIHByb3hpbWl0eSAvIGRpc3RhbmNlXG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRNYXNrVG9JbmRpY2VzKFxuICBtYXRjaG1hc2sgPSBbXSxcbiAgbWluTWF0Y2hDaGFyTGVuZ3RoID0gQ29uZmlnLm1pbk1hdGNoQ2hhckxlbmd0aFxuKSB7XG4gIGxldCBpbmRpY2VzID0gW107XG4gIGxldCBzdGFydCA9IC0xO1xuICBsZXQgZW5kID0gLTE7XG4gIGxldCBpID0gMDtcblxuICBmb3IgKGxldCBsZW4gPSBtYXRjaG1hc2subGVuZ3RoOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICBsZXQgbWF0Y2ggPSBtYXRjaG1hc2tbaV07XG4gICAgaWYgKG1hdGNoICYmIHN0YXJ0ID09PSAtMSkge1xuICAgICAgc3RhcnQgPSBpO1xuICAgIH0gZWxzZSBpZiAoIW1hdGNoICYmIHN0YXJ0ICE9PSAtMSkge1xuICAgICAgZW5kID0gaSAtIDE7XG4gICAgICBpZiAoZW5kIC0gc3RhcnQgKyAxID49IG1pbk1hdGNoQ2hhckxlbmd0aCkge1xuICAgICAgICBpbmRpY2VzLnB1c2goW3N0YXJ0LCBlbmRdKTtcbiAgICAgIH1cbiAgICAgIHN0YXJ0ID0gLTE7XG4gICAgfVxuICB9XG5cbiAgLy8gKGktMSAtIHN0YXJ0KSArIDEgPT4gaSAtIHN0YXJ0XG4gIGlmIChtYXRjaG1hc2tbaSAtIDFdICYmIGkgLSBzdGFydCA+PSBtaW5NYXRjaENoYXJMZW5ndGgpIHtcbiAgICBpbmRpY2VzLnB1c2goW3N0YXJ0LCBpIC0gMV0pO1xuICB9XG5cbiAgcmV0dXJuIGluZGljZXNcbn1cblxuLy8gTWFjaGluZSB3b3JkIHNpemVcbmNvbnN0IE1BWF9CSVRTID0gMzI7XG5cbmZ1bmN0aW9uIHNlYXJjaChcbiAgdGV4dCxcbiAgcGF0dGVybixcbiAgcGF0dGVybkFscGhhYmV0LFxuICB7XG4gICAgbG9jYXRpb24gPSBDb25maWcubG9jYXRpb24sXG4gICAgZGlzdGFuY2UgPSBDb25maWcuZGlzdGFuY2UsXG4gICAgdGhyZXNob2xkID0gQ29uZmlnLnRocmVzaG9sZCxcbiAgICBmaW5kQWxsTWF0Y2hlcyA9IENvbmZpZy5maW5kQWxsTWF0Y2hlcyxcbiAgICBtaW5NYXRjaENoYXJMZW5ndGggPSBDb25maWcubWluTWF0Y2hDaGFyTGVuZ3RoLFxuICAgIGluY2x1ZGVNYXRjaGVzID0gQ29uZmlnLmluY2x1ZGVNYXRjaGVzLFxuICAgIGlnbm9yZUxvY2F0aW9uID0gQ29uZmlnLmlnbm9yZUxvY2F0aW9uXG4gIH0gPSB7fVxuKSB7XG4gIGlmIChwYXR0ZXJuLmxlbmd0aCA+IE1BWF9CSVRTKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFBBVFRFUk5fTEVOR1RIX1RPT19MQVJHRShNQVhfQklUUykpXG4gIH1cblxuICBjb25zdCBwYXR0ZXJuTGVuID0gcGF0dGVybi5sZW5ndGg7XG4gIC8vIFNldCBzdGFydGluZyBsb2NhdGlvbiBhdCBiZWdpbm5pbmcgdGV4dCBhbmQgaW5pdGlhbGl6ZSB0aGUgYWxwaGFiZXQuXG4gIGNvbnN0IHRleHRMZW4gPSB0ZXh0Lmxlbmd0aDtcbiAgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZW4gbG9jYXRpb24gPiB0ZXh0Lmxlbmd0aFxuICBjb25zdCBleHBlY3RlZExvY2F0aW9uID0gTWF0aC5tYXgoMCwgTWF0aC5taW4obG9jYXRpb24sIHRleHRMZW4pKTtcbiAgLy8gSGlnaGVzdCBzY29yZSBiZXlvbmQgd2hpY2ggd2UgZ2l2ZSB1cC5cbiAgbGV0IGN1cnJlbnRUaHJlc2hvbGQgPSB0aHJlc2hvbGQ7XG4gIC8vIElzIHRoZXJlIGEgbmVhcmJ5IGV4YWN0IG1hdGNoPyAoc3BlZWR1cClcbiAgbGV0IGJlc3RMb2NhdGlvbiA9IGV4cGVjdGVkTG9jYXRpb247XG5cbiAgLy8gUGVyZm9ybWFuY2U6IG9ubHkgY29tcHV0ZXIgbWF0Y2hlcyB3aGVuIHRoZSBtaW5NYXRjaENoYXJMZW5ndGggPiAxXG4gIC8vIE9SIGlmIGBpbmNsdWRlTWF0Y2hlc2AgaXMgdHJ1ZS5cbiAgY29uc3QgY29tcHV0ZU1hdGNoZXMgPSBtaW5NYXRjaENoYXJMZW5ndGggPiAxIHx8IGluY2x1ZGVNYXRjaGVzO1xuICAvLyBBIG1hc2sgb2YgdGhlIG1hdGNoZXMsIHVzZWQgZm9yIGJ1aWxkaW5nIHRoZSBpbmRpY2VzXG4gIGNvbnN0IG1hdGNoTWFzayA9IGNvbXB1dGVNYXRjaGVzID8gQXJyYXkodGV4dExlbikgOiBbXTtcblxuICBsZXQgaW5kZXg7XG5cbiAgLy8gR2V0IGFsbCBleGFjdCBtYXRjaGVzLCBoZXJlIGZvciBzcGVlZCB1cFxuICB3aGlsZSAoKGluZGV4ID0gdGV4dC5pbmRleE9mKHBhdHRlcm4sIGJlc3RMb2NhdGlvbikpID4gLTEpIHtcbiAgICBsZXQgc2NvcmUgPSBjb21wdXRlU2NvcmUocGF0dGVybiwge1xuICAgICAgY3VycmVudExvY2F0aW9uOiBpbmRleCxcbiAgICAgIGV4cGVjdGVkTG9jYXRpb24sXG4gICAgICBkaXN0YW5jZSxcbiAgICAgIGlnbm9yZUxvY2F0aW9uXG4gICAgfSk7XG5cbiAgICBjdXJyZW50VGhyZXNob2xkID0gTWF0aC5taW4oc2NvcmUsIGN1cnJlbnRUaHJlc2hvbGQpO1xuICAgIGJlc3RMb2NhdGlvbiA9IGluZGV4ICsgcGF0dGVybkxlbjtcblxuICAgIGlmIChjb21wdXRlTWF0Y2hlcykge1xuICAgICAgbGV0IGkgPSAwO1xuICAgICAgd2hpbGUgKGkgPCBwYXR0ZXJuTGVuKSB7XG4gICAgICAgIG1hdGNoTWFza1tpbmRleCArIGldID0gMTtcbiAgICAgICAgaSArPSAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHRoZSBiZXN0IGxvY2F0aW9uXG4gIGJlc3RMb2NhdGlvbiA9IC0xO1xuXG4gIGxldCBsYXN0Qml0QXJyID0gW107XG4gIGxldCBmaW5hbFNjb3JlID0gMTtcbiAgbGV0IGJpbk1heCA9IHBhdHRlcm5MZW4gKyB0ZXh0TGVuO1xuXG4gIGNvbnN0IG1hc2sgPSAxIDw8IChwYXR0ZXJuTGVuIC0gMSk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXR0ZXJuTGVuOyBpICs9IDEpIHtcbiAgICAvLyBTY2FuIGZvciB0aGUgYmVzdCBtYXRjaDsgZWFjaCBpdGVyYXRpb24gYWxsb3dzIGZvciBvbmUgbW9yZSBlcnJvci5cbiAgICAvLyBSdW4gYSBiaW5hcnkgc2VhcmNoIHRvIGRldGVybWluZSBob3cgZmFyIGZyb20gdGhlIG1hdGNoIGxvY2F0aW9uIHdlIGNhbiBzdHJheVxuICAgIC8vIGF0IHRoaXMgZXJyb3IgbGV2ZWwuXG4gICAgbGV0IGJpbk1pbiA9IDA7XG4gICAgbGV0IGJpbk1pZCA9IGJpbk1heDtcblxuICAgIHdoaWxlIChiaW5NaW4gPCBiaW5NaWQpIHtcbiAgICAgIGNvbnN0IHNjb3JlID0gY29tcHV0ZVNjb3JlKHBhdHRlcm4sIHtcbiAgICAgICAgZXJyb3JzOiBpLFxuICAgICAgICBjdXJyZW50TG9jYXRpb246IGV4cGVjdGVkTG9jYXRpb24gKyBiaW5NaWQsXG4gICAgICAgIGV4cGVjdGVkTG9jYXRpb24sXG4gICAgICAgIGRpc3RhbmNlLFxuICAgICAgICBpZ25vcmVMb2NhdGlvblxuICAgICAgfSk7XG5cbiAgICAgIGlmIChzY29yZSA8PSBjdXJyZW50VGhyZXNob2xkKSB7XG4gICAgICAgIGJpbk1pbiA9IGJpbk1pZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJpbk1heCA9IGJpbk1pZDtcbiAgICAgIH1cblxuICAgICAgYmluTWlkID0gTWF0aC5mbG9vcigoYmluTWF4IC0gYmluTWluKSAvIDIgKyBiaW5NaW4pO1xuICAgIH1cblxuICAgIC8vIFVzZSB0aGUgcmVzdWx0IGZyb20gdGhpcyBpdGVyYXRpb24gYXMgdGhlIG1heGltdW0gZm9yIHRoZSBuZXh0LlxuICAgIGJpbk1heCA9IGJpbk1pZDtcblxuICAgIGxldCBzdGFydCA9IE1hdGgubWF4KDEsIGV4cGVjdGVkTG9jYXRpb24gLSBiaW5NaWQgKyAxKTtcbiAgICBsZXQgZmluaXNoID0gZmluZEFsbE1hdGNoZXNcbiAgICAgID8gdGV4dExlblxuICAgICAgOiBNYXRoLm1pbihleHBlY3RlZExvY2F0aW9uICsgYmluTWlkLCB0ZXh0TGVuKSArIHBhdHRlcm5MZW47XG5cbiAgICAvLyBJbml0aWFsaXplIHRoZSBiaXQgYXJyYXlcbiAgICBsZXQgYml0QXJyID0gQXJyYXkoZmluaXNoICsgMik7XG5cbiAgICBiaXRBcnJbZmluaXNoICsgMV0gPSAoMSA8PCBpKSAtIDE7XG5cbiAgICBmb3IgKGxldCBqID0gZmluaXNoOyBqID49IHN0YXJ0OyBqIC09IDEpIHtcbiAgICAgIGxldCBjdXJyZW50TG9jYXRpb24gPSBqIC0gMTtcbiAgICAgIGxldCBjaGFyTWF0Y2ggPSBwYXR0ZXJuQWxwaGFiZXRbdGV4dC5jaGFyQXQoY3VycmVudExvY2F0aW9uKV07XG5cbiAgICAgIGlmIChjb21wdXRlTWF0Y2hlcykge1xuICAgICAgICAvLyBTcGVlZCB1cDogcXVpY2sgYm9vbCB0byBpbnQgY29udmVyc2lvbiAoaS5lLCBgY2hhck1hdGNoID8gMSA6IDBgKVxuICAgICAgICBtYXRjaE1hc2tbY3VycmVudExvY2F0aW9uXSA9ICshIWNoYXJNYXRjaDtcbiAgICAgIH1cblxuICAgICAgLy8gRmlyc3QgcGFzczogZXhhY3QgbWF0Y2hcbiAgICAgIGJpdEFycltqXSA9ICgoYml0QXJyW2ogKyAxXSA8PCAxKSB8IDEpICYgY2hhck1hdGNoO1xuXG4gICAgICAvLyBTdWJzZXF1ZW50IHBhc3NlczogZnV6enkgbWF0Y2hcbiAgICAgIGlmIChpKSB7XG4gICAgICAgIGJpdEFycltqXSB8PVxuICAgICAgICAgICgobGFzdEJpdEFycltqICsgMV0gfCBsYXN0Qml0QXJyW2pdKSA8PCAxKSB8IDEgfCBsYXN0Qml0QXJyW2ogKyAxXTtcbiAgICAgIH1cblxuICAgICAgaWYgKGJpdEFycltqXSAmIG1hc2spIHtcbiAgICAgICAgZmluYWxTY29yZSA9IGNvbXB1dGVTY29yZShwYXR0ZXJuLCB7XG4gICAgICAgICAgZXJyb3JzOiBpLFxuICAgICAgICAgIGN1cnJlbnRMb2NhdGlvbixcbiAgICAgICAgICBleHBlY3RlZExvY2F0aW9uLFxuICAgICAgICAgIGRpc3RhbmNlLFxuICAgICAgICAgIGlnbm9yZUxvY2F0aW9uXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFRoaXMgbWF0Y2ggd2lsbCBhbG1vc3QgY2VydGFpbmx5IGJlIGJldHRlciB0aGFuIGFueSBleGlzdGluZyBtYXRjaC5cbiAgICAgICAgLy8gQnV0IGNoZWNrIGFueXdheS5cbiAgICAgICAgaWYgKGZpbmFsU2NvcmUgPD0gY3VycmVudFRocmVzaG9sZCkge1xuICAgICAgICAgIC8vIEluZGVlZCBpdCBpc1xuICAgICAgICAgIGN1cnJlbnRUaHJlc2hvbGQgPSBmaW5hbFNjb3JlO1xuICAgICAgICAgIGJlc3RMb2NhdGlvbiA9IGN1cnJlbnRMb2NhdGlvbjtcblxuICAgICAgICAgIC8vIEFscmVhZHkgcGFzc2VkIGBsb2NgLCBkb3duaGlsbCBmcm9tIGhlcmUgb24gaW4uXG4gICAgICAgICAgaWYgKGJlc3RMb2NhdGlvbiA8PSBleHBlY3RlZExvY2F0aW9uKSB7XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFdoZW4gcGFzc2luZyBgYmVzdExvY2F0aW9uYCwgZG9uJ3QgZXhjZWVkIG91ciBjdXJyZW50IGRpc3RhbmNlIGZyb20gYGV4cGVjdGVkTG9jYXRpb25gLlxuICAgICAgICAgIHN0YXJ0ID0gTWF0aC5tYXgoMSwgMiAqIGV4cGVjdGVkTG9jYXRpb24gLSBiZXN0TG9jYXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTm8gaG9wZSBmb3IgYSAoYmV0dGVyKSBtYXRjaCBhdCBncmVhdGVyIGVycm9yIGxldmVscy5cbiAgICBjb25zdCBzY29yZSA9IGNvbXB1dGVTY29yZShwYXR0ZXJuLCB7XG4gICAgICBlcnJvcnM6IGkgKyAxLFxuICAgICAgY3VycmVudExvY2F0aW9uOiBleHBlY3RlZExvY2F0aW9uLFxuICAgICAgZXhwZWN0ZWRMb2NhdGlvbixcbiAgICAgIGRpc3RhbmNlLFxuICAgICAgaWdub3JlTG9jYXRpb25cbiAgICB9KTtcblxuICAgIGlmIChzY29yZSA+IGN1cnJlbnRUaHJlc2hvbGQpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgbGFzdEJpdEFyciA9IGJpdEFycjtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBpc01hdGNoOiBiZXN0TG9jYXRpb24gPj0gMCxcbiAgICAvLyBDb3VudCBleGFjdCBtYXRjaGVzICh0aG9zZSB3aXRoIGEgc2NvcmUgb2YgMCkgdG8gYmUgXCJhbG1vc3RcIiBleGFjdFxuICAgIHNjb3JlOiBNYXRoLm1heCgwLjAwMSwgZmluYWxTY29yZSlcbiAgfTtcblxuICBpZiAoY29tcHV0ZU1hdGNoZXMpIHtcbiAgICBjb25zdCBpbmRpY2VzID0gY29udmVydE1hc2tUb0luZGljZXMobWF0Y2hNYXNrLCBtaW5NYXRjaENoYXJMZW5ndGgpO1xuICAgIGlmICghaW5kaWNlcy5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC5pc01hdGNoID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChpbmNsdWRlTWF0Y2hlcykge1xuICAgICAgcmVzdWx0LmluZGljZXMgPSBpbmRpY2VzO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gY3JlYXRlUGF0dGVybkFscGhhYmV0KHBhdHRlcm4pIHtcbiAgbGV0IG1hc2sgPSB7fTtcblxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gcGF0dGVybi5sZW5ndGg7IGkgPCBsZW47IGkgKz0gMSkge1xuICAgIGNvbnN0IGNoYXIgPSBwYXR0ZXJuLmNoYXJBdChpKTtcbiAgICBtYXNrW2NoYXJdID0gKG1hc2tbY2hhcl0gfHwgMCkgfCAoMSA8PCAobGVuIC0gaSAtIDEpKTtcbiAgfVxuXG4gIHJldHVybiBtYXNrXG59XG5cbmNsYXNzIEJpdGFwU2VhcmNoIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcGF0dGVybixcbiAgICB7XG4gICAgICBsb2NhdGlvbiA9IENvbmZpZy5sb2NhdGlvbixcbiAgICAgIHRocmVzaG9sZCA9IENvbmZpZy50aHJlc2hvbGQsXG4gICAgICBkaXN0YW5jZSA9IENvbmZpZy5kaXN0YW5jZSxcbiAgICAgIGluY2x1ZGVNYXRjaGVzID0gQ29uZmlnLmluY2x1ZGVNYXRjaGVzLFxuICAgICAgZmluZEFsbE1hdGNoZXMgPSBDb25maWcuZmluZEFsbE1hdGNoZXMsXG4gICAgICBtaW5NYXRjaENoYXJMZW5ndGggPSBDb25maWcubWluTWF0Y2hDaGFyTGVuZ3RoLFxuICAgICAgaXNDYXNlU2Vuc2l0aXZlID0gQ29uZmlnLmlzQ2FzZVNlbnNpdGl2ZSxcbiAgICAgIGlnbm9yZUxvY2F0aW9uID0gQ29uZmlnLmlnbm9yZUxvY2F0aW9uXG4gICAgfSA9IHt9XG4gICkge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIGxvY2F0aW9uLFxuICAgICAgdGhyZXNob2xkLFxuICAgICAgZGlzdGFuY2UsXG4gICAgICBpbmNsdWRlTWF0Y2hlcyxcbiAgICAgIGZpbmRBbGxNYXRjaGVzLFxuICAgICAgbWluTWF0Y2hDaGFyTGVuZ3RoLFxuICAgICAgaXNDYXNlU2Vuc2l0aXZlLFxuICAgICAgaWdub3JlTG9jYXRpb25cbiAgICB9O1xuXG4gICAgdGhpcy5wYXR0ZXJuID0gaXNDYXNlU2Vuc2l0aXZlID8gcGF0dGVybiA6IHBhdHRlcm4udG9Mb3dlckNhc2UoKTtcblxuICAgIHRoaXMuY2h1bmtzID0gW107XG5cbiAgICBpZiAoIXRoaXMucGF0dGVybi5sZW5ndGgpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGFkZENodW5rID0gKHBhdHRlcm4sIHN0YXJ0SW5kZXgpID0+IHtcbiAgICAgIHRoaXMuY2h1bmtzLnB1c2goe1xuICAgICAgICBwYXR0ZXJuLFxuICAgICAgICBhbHBoYWJldDogY3JlYXRlUGF0dGVybkFscGhhYmV0KHBhdHRlcm4pLFxuICAgICAgICBzdGFydEluZGV4XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgbGVuID0gdGhpcy5wYXR0ZXJuLmxlbmd0aDtcblxuICAgIGlmIChsZW4gPiBNQVhfQklUUykge1xuICAgICAgbGV0IGkgPSAwO1xuICAgICAgY29uc3QgcmVtYWluZGVyID0gbGVuICUgTUFYX0JJVFM7XG4gICAgICBjb25zdCBlbmQgPSBsZW4gLSByZW1haW5kZXI7XG5cbiAgICAgIHdoaWxlIChpIDwgZW5kKSB7XG4gICAgICAgIGFkZENodW5rKHRoaXMucGF0dGVybi5zdWJzdHIoaSwgTUFYX0JJVFMpLCBpKTtcbiAgICAgICAgaSArPSBNQVhfQklUUztcbiAgICAgIH1cblxuICAgICAgaWYgKHJlbWFpbmRlcikge1xuICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gbGVuIC0gTUFYX0JJVFM7XG4gICAgICAgIGFkZENodW5rKHRoaXMucGF0dGVybi5zdWJzdHIoc3RhcnRJbmRleCksIHN0YXJ0SW5kZXgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhZGRDaHVuayh0aGlzLnBhdHRlcm4sIDApO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaEluKHRleHQpIHtcbiAgICBjb25zdCB7IGlzQ2FzZVNlbnNpdGl2ZSwgaW5jbHVkZU1hdGNoZXMgfSA9IHRoaXMub3B0aW9ucztcblxuICAgIGlmICghaXNDYXNlU2Vuc2l0aXZlKSB7XG4gICAgICB0ZXh0ID0gdGV4dC50b0xvd2VyQ2FzZSgpO1xuICAgIH1cblxuICAgIC8vIEV4YWN0IG1hdGNoXG4gICAgaWYgKHRoaXMucGF0dGVybiA9PT0gdGV4dCkge1xuICAgICAgbGV0IHJlc3VsdCA9IHtcbiAgICAgICAgaXNNYXRjaDogdHJ1ZSxcbiAgICAgICAgc2NvcmU6IDBcbiAgICAgIH07XG5cbiAgICAgIGlmIChpbmNsdWRlTWF0Y2hlcykge1xuICAgICAgICByZXN1bHQuaW5kaWNlcyA9IFtbMCwgdGV4dC5sZW5ndGggLSAxXV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UsIHVzZSBCaXRhcCBhbGdvcml0aG1cbiAgICBjb25zdCB7XG4gICAgICBsb2NhdGlvbixcbiAgICAgIGRpc3RhbmNlLFxuICAgICAgdGhyZXNob2xkLFxuICAgICAgZmluZEFsbE1hdGNoZXMsXG4gICAgICBtaW5NYXRjaENoYXJMZW5ndGgsXG4gICAgICBpZ25vcmVMb2NhdGlvblxuICAgIH0gPSB0aGlzLm9wdGlvbnM7XG5cbiAgICBsZXQgYWxsSW5kaWNlcyA9IFtdO1xuICAgIGxldCB0b3RhbFNjb3JlID0gMDtcbiAgICBsZXQgaGFzTWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgdGhpcy5jaHVua3MuZm9yRWFjaCgoeyBwYXR0ZXJuLCBhbHBoYWJldCwgc3RhcnRJbmRleCB9KSA9PiB7XG4gICAgICBjb25zdCB7IGlzTWF0Y2gsIHNjb3JlLCBpbmRpY2VzIH0gPSBzZWFyY2godGV4dCwgcGF0dGVybiwgYWxwaGFiZXQsIHtcbiAgICAgICAgbG9jYXRpb246IGxvY2F0aW9uICsgc3RhcnRJbmRleCxcbiAgICAgICAgZGlzdGFuY2UsXG4gICAgICAgIHRocmVzaG9sZCxcbiAgICAgICAgZmluZEFsbE1hdGNoZXMsXG4gICAgICAgIG1pbk1hdGNoQ2hhckxlbmd0aCxcbiAgICAgICAgaW5jbHVkZU1hdGNoZXMsXG4gICAgICAgIGlnbm9yZUxvY2F0aW9uXG4gICAgICB9KTtcblxuICAgICAgaWYgKGlzTWF0Y2gpIHtcbiAgICAgICAgaGFzTWF0Y2hlcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIHRvdGFsU2NvcmUgKz0gc2NvcmU7XG5cbiAgICAgIGlmIChpc01hdGNoICYmIGluZGljZXMpIHtcbiAgICAgICAgYWxsSW5kaWNlcyA9IFsuLi5hbGxJbmRpY2VzLCAuLi5pbmRpY2VzXTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCByZXN1bHQgPSB7XG4gICAgICBpc01hdGNoOiBoYXNNYXRjaGVzLFxuICAgICAgc2NvcmU6IGhhc01hdGNoZXMgPyB0b3RhbFNjb3JlIC8gdGhpcy5jaHVua3MubGVuZ3RoIDogMVxuICAgIH07XG5cbiAgICBpZiAoaGFzTWF0Y2hlcyAmJiBpbmNsdWRlTWF0Y2hlcykge1xuICAgICAgcmVzdWx0LmluZGljZXMgPSBhbGxJbmRpY2VzO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuXG5jbGFzcyBCYXNlTWF0Y2gge1xuICBjb25zdHJ1Y3RvcihwYXR0ZXJuKSB7XG4gICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjtcbiAgfVxuICBzdGF0aWMgaXNNdWx0aU1hdGNoKHBhdHRlcm4pIHtcbiAgICByZXR1cm4gZ2V0TWF0Y2gocGF0dGVybiwgdGhpcy5tdWx0aVJlZ2V4KVxuICB9XG4gIHN0YXRpYyBpc1NpbmdsZU1hdGNoKHBhdHRlcm4pIHtcbiAgICByZXR1cm4gZ2V0TWF0Y2gocGF0dGVybiwgdGhpcy5zaW5nbGVSZWdleClcbiAgfVxuICBzZWFyY2goLyp0ZXh0Ki8pIHt9XG59XG5cbmZ1bmN0aW9uIGdldE1hdGNoKHBhdHRlcm4sIGV4cCkge1xuICBjb25zdCBtYXRjaGVzID0gcGF0dGVybi5tYXRjaChleHApO1xuICByZXR1cm4gbWF0Y2hlcyA/IG1hdGNoZXNbMV0gOiBudWxsXG59XG5cbi8vIFRva2VuOiAnZmlsZVxuXG5jbGFzcyBFeGFjdE1hdGNoIGV4dGVuZHMgQmFzZU1hdGNoIHtcbiAgY29uc3RydWN0b3IocGF0dGVybikge1xuICAgIHN1cGVyKHBhdHRlcm4pO1xuICB9XG4gIHN0YXRpYyBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gJ2V4YWN0J1xuICB9XG4gIHN0YXRpYyBnZXQgbXVsdGlSZWdleCgpIHtcbiAgICByZXR1cm4gL149XCIoLiopXCIkL1xuICB9XG4gIHN0YXRpYyBnZXQgc2luZ2xlUmVnZXgoKSB7XG4gICAgcmV0dXJuIC9ePSguKikkL1xuICB9XG4gIHNlYXJjaCh0ZXh0KSB7XG4gICAgY29uc3QgaXNNYXRjaCA9IHRleHQgPT09IHRoaXMucGF0dGVybjtcblxuICAgIHJldHVybiB7XG4gICAgICBpc01hdGNoLFxuICAgICAgc2NvcmU6IGlzTWF0Y2ggPyAwIDogMSxcbiAgICAgIGluZGljZXM6IFswLCB0aGlzLnBhdHRlcm4ubGVuZ3RoIC0gMV1cbiAgICB9XG4gIH1cbn1cblxuLy8gVG9rZW46ICFmaXJlXG5cbmNsYXNzIEludmVyc2VFeGFjdE1hdGNoIGV4dGVuZHMgQmFzZU1hdGNoIHtcbiAgY29uc3RydWN0b3IocGF0dGVybikge1xuICAgIHN1cGVyKHBhdHRlcm4pO1xuICB9XG4gIHN0YXRpYyBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gJ2ludmVyc2UtZXhhY3QnXG4gIH1cbiAgc3RhdGljIGdldCBtdWx0aVJlZ2V4KCkge1xuICAgIHJldHVybiAvXiFcIiguKilcIiQvXG4gIH1cbiAgc3RhdGljIGdldCBzaW5nbGVSZWdleCgpIHtcbiAgICByZXR1cm4gL14hKC4qKSQvXG4gIH1cbiAgc2VhcmNoKHRleHQpIHtcbiAgICBjb25zdCBpbmRleCA9IHRleHQuaW5kZXhPZih0aGlzLnBhdHRlcm4pO1xuICAgIGNvbnN0IGlzTWF0Y2ggPSBpbmRleCA9PT0gLTE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaXNNYXRjaCxcbiAgICAgIHNjb3JlOiBpc01hdGNoID8gMCA6IDEsXG4gICAgICBpbmRpY2VzOiBbMCwgdGV4dC5sZW5ndGggLSAxXVxuICAgIH1cbiAgfVxufVxuXG4vLyBUb2tlbjogXmZpbGVcblxuY2xhc3MgUHJlZml4RXhhY3RNYXRjaCBleHRlbmRzIEJhc2VNYXRjaCB7XG4gIGNvbnN0cnVjdG9yKHBhdHRlcm4pIHtcbiAgICBzdXBlcihwYXR0ZXJuKTtcbiAgfVxuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuICdwcmVmaXgtZXhhY3QnXG4gIH1cbiAgc3RhdGljIGdldCBtdWx0aVJlZ2V4KCkge1xuICAgIHJldHVybiAvXlxcXlwiKC4qKVwiJC9cbiAgfVxuICBzdGF0aWMgZ2V0IHNpbmdsZVJlZ2V4KCkge1xuICAgIHJldHVybiAvXlxcXiguKikkL1xuICB9XG4gIHNlYXJjaCh0ZXh0KSB7XG4gICAgY29uc3QgaXNNYXRjaCA9IHRleHQuc3RhcnRzV2l0aCh0aGlzLnBhdHRlcm4pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlzTWF0Y2gsXG4gICAgICBzY29yZTogaXNNYXRjaCA/IDAgOiAxLFxuICAgICAgaW5kaWNlczogWzAsIHRoaXMucGF0dGVybi5sZW5ndGggLSAxXVxuICAgIH1cbiAgfVxufVxuXG4vLyBUb2tlbjogIV5maXJlXG5cbmNsYXNzIEludmVyc2VQcmVmaXhFeGFjdE1hdGNoIGV4dGVuZHMgQmFzZU1hdGNoIHtcbiAgY29uc3RydWN0b3IocGF0dGVybikge1xuICAgIHN1cGVyKHBhdHRlcm4pO1xuICB9XG4gIHN0YXRpYyBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gJ2ludmVyc2UtcHJlZml4LWV4YWN0J1xuICB9XG4gIHN0YXRpYyBnZXQgbXVsdGlSZWdleCgpIHtcbiAgICByZXR1cm4gL14hXFxeXCIoLiopXCIkL1xuICB9XG4gIHN0YXRpYyBnZXQgc2luZ2xlUmVnZXgoKSB7XG4gICAgcmV0dXJuIC9eIVxcXiguKikkL1xuICB9XG4gIHNlYXJjaCh0ZXh0KSB7XG4gICAgY29uc3QgaXNNYXRjaCA9ICF0ZXh0LnN0YXJ0c1dpdGgodGhpcy5wYXR0ZXJuKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpc01hdGNoLFxuICAgICAgc2NvcmU6IGlzTWF0Y2ggPyAwIDogMSxcbiAgICAgIGluZGljZXM6IFswLCB0ZXh0Lmxlbmd0aCAtIDFdXG4gICAgfVxuICB9XG59XG5cbi8vIFRva2VuOiAuZmlsZSRcblxuY2xhc3MgU3VmZml4RXhhY3RNYXRjaCBleHRlbmRzIEJhc2VNYXRjaCB7XG4gIGNvbnN0cnVjdG9yKHBhdHRlcm4pIHtcbiAgICBzdXBlcihwYXR0ZXJuKTtcbiAgfVxuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuICdzdWZmaXgtZXhhY3QnXG4gIH1cbiAgc3RhdGljIGdldCBtdWx0aVJlZ2V4KCkge1xuICAgIHJldHVybiAvXlwiKC4qKVwiXFwkJC9cbiAgfVxuICBzdGF0aWMgZ2V0IHNpbmdsZVJlZ2V4KCkge1xuICAgIHJldHVybiAvXiguKilcXCQkL1xuICB9XG4gIHNlYXJjaCh0ZXh0KSB7XG4gICAgY29uc3QgaXNNYXRjaCA9IHRleHQuZW5kc1dpdGgodGhpcy5wYXR0ZXJuKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpc01hdGNoLFxuICAgICAgc2NvcmU6IGlzTWF0Y2ggPyAwIDogMSxcbiAgICAgIGluZGljZXM6IFt0ZXh0Lmxlbmd0aCAtIHRoaXMucGF0dGVybi5sZW5ndGgsIHRleHQubGVuZ3RoIC0gMV1cbiAgICB9XG4gIH1cbn1cblxuLy8gVG9rZW46ICEuZmlsZSRcblxuY2xhc3MgSW52ZXJzZVN1ZmZpeEV4YWN0TWF0Y2ggZXh0ZW5kcyBCYXNlTWF0Y2gge1xuICBjb25zdHJ1Y3RvcihwYXR0ZXJuKSB7XG4gICAgc3VwZXIocGF0dGVybik7XG4gIH1cbiAgc3RhdGljIGdldCB0eXBlKCkge1xuICAgIHJldHVybiAnaW52ZXJzZS1zdWZmaXgtZXhhY3QnXG4gIH1cbiAgc3RhdGljIGdldCBtdWx0aVJlZ2V4KCkge1xuICAgIHJldHVybiAvXiFcIiguKilcIlxcJCQvXG4gIH1cbiAgc3RhdGljIGdldCBzaW5nbGVSZWdleCgpIHtcbiAgICByZXR1cm4gL14hKC4qKVxcJCQvXG4gIH1cbiAgc2VhcmNoKHRleHQpIHtcbiAgICBjb25zdCBpc01hdGNoID0gIXRleHQuZW5kc1dpdGgodGhpcy5wYXR0ZXJuKTtcbiAgICByZXR1cm4ge1xuICAgICAgaXNNYXRjaCxcbiAgICAgIHNjb3JlOiBpc01hdGNoID8gMCA6IDEsXG4gICAgICBpbmRpY2VzOiBbMCwgdGV4dC5sZW5ndGggLSAxXVxuICAgIH1cbiAgfVxufVxuXG5jbGFzcyBGdXp6eU1hdGNoIGV4dGVuZHMgQmFzZU1hdGNoIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcGF0dGVybixcbiAgICB7XG4gICAgICBsb2NhdGlvbiA9IENvbmZpZy5sb2NhdGlvbixcbiAgICAgIHRocmVzaG9sZCA9IENvbmZpZy50aHJlc2hvbGQsXG4gICAgICBkaXN0YW5jZSA9IENvbmZpZy5kaXN0YW5jZSxcbiAgICAgIGluY2x1ZGVNYXRjaGVzID0gQ29uZmlnLmluY2x1ZGVNYXRjaGVzLFxuICAgICAgZmluZEFsbE1hdGNoZXMgPSBDb25maWcuZmluZEFsbE1hdGNoZXMsXG4gICAgICBtaW5NYXRjaENoYXJMZW5ndGggPSBDb25maWcubWluTWF0Y2hDaGFyTGVuZ3RoLFxuICAgICAgaXNDYXNlU2Vuc2l0aXZlID0gQ29uZmlnLmlzQ2FzZVNlbnNpdGl2ZSxcbiAgICAgIGlnbm9yZUxvY2F0aW9uID0gQ29uZmlnLmlnbm9yZUxvY2F0aW9uXG4gICAgfSA9IHt9XG4gICkge1xuICAgIHN1cGVyKHBhdHRlcm4pO1xuICAgIHRoaXMuX2JpdGFwU2VhcmNoID0gbmV3IEJpdGFwU2VhcmNoKHBhdHRlcm4sIHtcbiAgICAgIGxvY2F0aW9uLFxuICAgICAgdGhyZXNob2xkLFxuICAgICAgZGlzdGFuY2UsXG4gICAgICBpbmNsdWRlTWF0Y2hlcyxcbiAgICAgIGZpbmRBbGxNYXRjaGVzLFxuICAgICAgbWluTWF0Y2hDaGFyTGVuZ3RoLFxuICAgICAgaXNDYXNlU2Vuc2l0aXZlLFxuICAgICAgaWdub3JlTG9jYXRpb25cbiAgICB9KTtcbiAgfVxuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuICdmdXp6eSdcbiAgfVxuICBzdGF0aWMgZ2V0IG11bHRpUmVnZXgoKSB7XG4gICAgcmV0dXJuIC9eXCIoLiopXCIkL1xuICB9XG4gIHN0YXRpYyBnZXQgc2luZ2xlUmVnZXgoKSB7XG4gICAgcmV0dXJuIC9eKC4qKSQvXG4gIH1cbiAgc2VhcmNoKHRleHQpIHtcbiAgICByZXR1cm4gdGhpcy5fYml0YXBTZWFyY2guc2VhcmNoSW4odGV4dClcbiAgfVxufVxuXG4vLyBUb2tlbjogJ2ZpbGVcblxuY2xhc3MgSW5jbHVkZU1hdGNoIGV4dGVuZHMgQmFzZU1hdGNoIHtcbiAgY29uc3RydWN0b3IocGF0dGVybikge1xuICAgIHN1cGVyKHBhdHRlcm4pO1xuICB9XG4gIHN0YXRpYyBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gJ2luY2x1ZGUnXG4gIH1cbiAgc3RhdGljIGdldCBtdWx0aVJlZ2V4KCkge1xuICAgIHJldHVybiAvXidcIiguKilcIiQvXG4gIH1cbiAgc3RhdGljIGdldCBzaW5nbGVSZWdleCgpIHtcbiAgICByZXR1cm4gL14nKC4qKSQvXG4gIH1cbiAgc2VhcmNoKHRleHQpIHtcbiAgICBsZXQgbG9jYXRpb24gPSAwO1xuICAgIGxldCBpbmRleDtcblxuICAgIGNvbnN0IGluZGljZXMgPSBbXTtcbiAgICBjb25zdCBwYXR0ZXJuTGVuID0gdGhpcy5wYXR0ZXJuLmxlbmd0aDtcblxuICAgIC8vIEdldCBhbGwgZXhhY3QgbWF0Y2hlc1xuICAgIHdoaWxlICgoaW5kZXggPSB0ZXh0LmluZGV4T2YodGhpcy5wYXR0ZXJuLCBsb2NhdGlvbikpID4gLTEpIHtcbiAgICAgIGxvY2F0aW9uID0gaW5kZXggKyBwYXR0ZXJuTGVuO1xuICAgICAgaW5kaWNlcy5wdXNoKFtpbmRleCwgbG9jYXRpb24gLSAxXSk7XG4gICAgfVxuXG4gICAgY29uc3QgaXNNYXRjaCA9ICEhaW5kaWNlcy5sZW5ndGg7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaXNNYXRjaCxcbiAgICAgIHNjb3JlOiBpc01hdGNoID8gMCA6IDEsXG4gICAgICBpbmRpY2VzXG4gICAgfVxuICB9XG59XG5cbi8vIOKdl09yZGVyIGlzIGltcG9ydGFudC4gRE8gTk9UIENIQU5HRS5cbmNvbnN0IHNlYXJjaGVycyA9IFtcbiAgRXhhY3RNYXRjaCxcbiAgSW5jbHVkZU1hdGNoLFxuICBQcmVmaXhFeGFjdE1hdGNoLFxuICBJbnZlcnNlUHJlZml4RXhhY3RNYXRjaCxcbiAgSW52ZXJzZVN1ZmZpeEV4YWN0TWF0Y2gsXG4gIFN1ZmZpeEV4YWN0TWF0Y2gsXG4gIEludmVyc2VFeGFjdE1hdGNoLFxuICBGdXp6eU1hdGNoXG5dO1xuXG5jb25zdCBzZWFyY2hlcnNMZW4gPSBzZWFyY2hlcnMubGVuZ3RoO1xuXG4vLyBSZWdleCB0byBzcGxpdCBieSBzcGFjZXMsIGJ1dCBrZWVwIGFueXRoaW5nIGluIHF1b3RlcyB0b2dldGhlclxuY29uc3QgU1BBQ0VfUkUgPSAvICsoPz0oW15cXFwiXSpcXFwiW15cXFwiXSpcXFwiKSpbXlxcXCJdKiQpLztcbmNvbnN0IE9SX1RPS0VOID0gJ3wnO1xuXG4vLyBSZXR1cm4gYSAyRCBhcnJheSByZXByZXNlbnRhdGlvbiBvZiB0aGUgcXVlcnksIGZvciBzaW1wbGVyIHBhcnNpbmcuXG4vLyBFeGFtcGxlOlxuLy8gXCJeY29yZSBnbyQgfCByYiQgfCBweSQgeHkkXCIgPT4gW1tcIl5jb3JlXCIsIFwiZ28kXCJdLCBbXCJyYiRcIl0sIFtcInB5JFwiLCBcInh5JFwiXV1cbmZ1bmN0aW9uIHBhcnNlUXVlcnkocGF0dGVybiwgb3B0aW9ucyA9IHt9KSB7XG4gIHJldHVybiBwYXR0ZXJuLnNwbGl0KE9SX1RPS0VOKS5tYXAoKGl0ZW0pID0+IHtcbiAgICBsZXQgcXVlcnkgPSBpdGVtXG4gICAgICAudHJpbSgpXG4gICAgICAuc3BsaXQoU1BBQ0VfUkUpXG4gICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtICYmICEhaXRlbS50cmltKCkpO1xuXG4gICAgbGV0IHJlc3VsdHMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gcXVlcnkubGVuZ3RoOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IHF1ZXJ5SXRlbSA9IHF1ZXJ5W2ldO1xuXG4gICAgICAvLyAxLiBIYW5kbGUgbXVsdGlwbGUgcXVlcnkgbWF0Y2ggKGkuZSwgb25jZSB0aGF0IGFyZSBxdW90ZWQsIGxpa2UgYFwiaGVsbG8gd29ybGRcImApXG4gICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgIGxldCBpZHggPSAtMTtcbiAgICAgIHdoaWxlICghZm91bmQgJiYgKytpZHggPCBzZWFyY2hlcnNMZW4pIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoZXIgPSBzZWFyY2hlcnNbaWR4XTtcbiAgICAgICAgbGV0IHRva2VuID0gc2VhcmNoZXIuaXNNdWx0aU1hdGNoKHF1ZXJ5SXRlbSk7XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgIHJlc3VsdHMucHVzaChuZXcgc2VhcmNoZXIodG9rZW4sIG9wdGlvbnMpKTtcbiAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIDIuIEhhbmRsZSBzaW5nbGUgcXVlcnkgbWF0Y2hlcyAoaS5lLCBvbmNlIHRoYXQgYXJlICpub3QqIHF1b3RlZClcbiAgICAgIGlkeCA9IC0xO1xuICAgICAgd2hpbGUgKCsraWR4IDwgc2VhcmNoZXJzTGVuKSB7XG4gICAgICAgIGNvbnN0IHNlYXJjaGVyID0gc2VhcmNoZXJzW2lkeF07XG4gICAgICAgIGxldCB0b2tlbiA9IHNlYXJjaGVyLmlzU2luZ2xlTWF0Y2gocXVlcnlJdGVtKTtcbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKG5ldyBzZWFyY2hlcih0b2tlbiwgb3B0aW9ucykpO1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0c1xuICB9KVxufVxuXG4vLyBUaGVzZSBleHRlbmRlZCBtYXRjaGVycyBjYW4gcmV0dXJuIGFuIGFycmF5IG9mIG1hdGNoZXMsIGFzIG9wcG9zZWRcbi8vIHRvIGEgc2luZ2wgbWF0Y2hcbmNvbnN0IE11bHRpTWF0Y2hTZXQgPSBuZXcgU2V0KFtGdXp6eU1hdGNoLnR5cGUsIEluY2x1ZGVNYXRjaC50eXBlXSk7XG5cbi8qKlxuICogQ29tbWFuZC1saWtlIHNlYXJjaGluZ1xuICogPT09PT09PT09PT09PT09PT09PT09PVxuICpcbiAqIEdpdmVuIG11bHRpcGxlIHNlYXJjaCB0ZXJtcyBkZWxpbWl0ZWQgYnkgc3BhY2VzLmUuZy4gYF5qc2NyaXB0IC5weXRob24kIHJ1YnkgIWphdmFgLFxuICogc2VhcmNoIGluIGEgZ2l2ZW4gdGV4dC5cbiAqXG4gKiBTZWFyY2ggc3ludGF4OlxuICpcbiAqIHwgVG9rZW4gICAgICAgfCBNYXRjaCB0eXBlICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHxcbiAqIHwgYGpzY3JpcHRgICAgfCBmdXp6eS1tYXRjaCAgICAgICAgICAgICAgICB8IEl0ZW1zIHRoYXQgZnV6enkgbWF0Y2ggYGpzY3JpcHRgICAgICAgIHxcbiAqIHwgYD1zY2hlbWVgICAgfCBleGFjdC1tYXRjaCAgICAgICAgICAgICAgICB8IEl0ZW1zIHRoYXQgYXJlIGBzY2hlbWVgICAgICAgICAgICAgICAgIHxcbiAqIHwgYCdweXRob25gICAgfCBpbmNsdWRlLW1hdGNoICAgICAgICAgICAgICB8IEl0ZW1zIHRoYXQgaW5jbHVkZSBgcHl0aG9uYCAgICAgICAgICAgIHxcbiAqIHwgYCFydWJ5YCAgICAgfCBpbnZlcnNlLWV4YWN0LW1hdGNoICAgICAgICB8IEl0ZW1zIHRoYXQgZG8gbm90IGluY2x1ZGUgYHJ1YnlgICAgICAgIHxcbiAqIHwgYF5qYXZhYCAgICAgfCBwcmVmaXgtZXhhY3QtbWF0Y2ggICAgICAgICB8IEl0ZW1zIHRoYXQgc3RhcnQgd2l0aCBgamF2YWAgICAgICAgICAgIHxcbiAqIHwgYCFeZWFybGFuZ2AgfCBpbnZlcnNlLXByZWZpeC1leGFjdC1tYXRjaCB8IEl0ZW1zIHRoYXQgZG8gbm90IHN0YXJ0IHdpdGggYGVhcmxhbmdgIHxcbiAqIHwgYC5qcyRgICAgICAgfCBzdWZmaXgtZXhhY3QtbWF0Y2ggICAgICAgICB8IEl0ZW1zIHRoYXQgZW5kIHdpdGggYC5qc2AgICAgICAgICAgICAgIHxcbiAqIHwgYCEuZ28kYCAgICAgfCBpbnZlcnNlLXN1ZmZpeC1leGFjdC1tYXRjaCB8IEl0ZW1zIHRoYXQgZG8gbm90IGVuZCB3aXRoIGAuZ29gICAgICAgIHxcbiAqXG4gKiBBIHNpbmdsZSBwaXBlIGNoYXJhY3RlciBhY3RzIGFzIGFuIE9SIG9wZXJhdG9yLiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZ1xuICogcXVlcnkgbWF0Y2hlcyBlbnRyaWVzIHRoYXQgc3RhcnQgd2l0aCBgY29yZWAgYW5kIGVuZCB3aXRoIGVpdGhlcmBnb2AsIGByYmAsXG4gKiBvcmBweWAuXG4gKlxuICogYGBgXG4gKiBeY29yZSBnbyQgfCByYiQgfCBweSRcbiAqIGBgYFxuICovXG5jbGFzcyBFeHRlbmRlZFNlYXJjaCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHBhdHRlcm4sXG4gICAge1xuICAgICAgaXNDYXNlU2Vuc2l0aXZlID0gQ29uZmlnLmlzQ2FzZVNlbnNpdGl2ZSxcbiAgICAgIGluY2x1ZGVNYXRjaGVzID0gQ29uZmlnLmluY2x1ZGVNYXRjaGVzLFxuICAgICAgbWluTWF0Y2hDaGFyTGVuZ3RoID0gQ29uZmlnLm1pbk1hdGNoQ2hhckxlbmd0aCxcbiAgICAgIGlnbm9yZUxvY2F0aW9uID0gQ29uZmlnLmlnbm9yZUxvY2F0aW9uLFxuICAgICAgZmluZEFsbE1hdGNoZXMgPSBDb25maWcuZmluZEFsbE1hdGNoZXMsXG4gICAgICBsb2NhdGlvbiA9IENvbmZpZy5sb2NhdGlvbixcbiAgICAgIHRocmVzaG9sZCA9IENvbmZpZy50aHJlc2hvbGQsXG4gICAgICBkaXN0YW5jZSA9IENvbmZpZy5kaXN0YW5jZVxuICAgIH0gPSB7fVxuICApIHtcbiAgICB0aGlzLnF1ZXJ5ID0gbnVsbDtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICBpc0Nhc2VTZW5zaXRpdmUsXG4gICAgICBpbmNsdWRlTWF0Y2hlcyxcbiAgICAgIG1pbk1hdGNoQ2hhckxlbmd0aCxcbiAgICAgIGZpbmRBbGxNYXRjaGVzLFxuICAgICAgaWdub3JlTG9jYXRpb24sXG4gICAgICBsb2NhdGlvbixcbiAgICAgIHRocmVzaG9sZCxcbiAgICAgIGRpc3RhbmNlXG4gICAgfTtcblxuICAgIHRoaXMucGF0dGVybiA9IGlzQ2FzZVNlbnNpdGl2ZSA/IHBhdHRlcm4gOiBwYXR0ZXJuLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5xdWVyeSA9IHBhcnNlUXVlcnkodGhpcy5wYXR0ZXJuLCB0aGlzLm9wdGlvbnMpO1xuICB9XG5cbiAgc3RhdGljIGNvbmRpdGlvbihfLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMudXNlRXh0ZW5kZWRTZWFyY2hcbiAgfVxuXG4gIHNlYXJjaEluKHRleHQpIHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMucXVlcnk7XG5cbiAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpc01hdGNoOiBmYWxzZSxcbiAgICAgICAgc2NvcmU6IDFcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB7IGluY2x1ZGVNYXRjaGVzLCBpc0Nhc2VTZW5zaXRpdmUgfSA9IHRoaXMub3B0aW9ucztcblxuICAgIHRleHQgPSBpc0Nhc2VTZW5zaXRpdmUgPyB0ZXh0IDogdGV4dC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgbGV0IG51bU1hdGNoZXMgPSAwO1xuICAgIGxldCBhbGxJbmRpY2VzID0gW107XG4gICAgbGV0IHRvdGFsU2NvcmUgPSAwO1xuXG4gICAgLy8gT1JzXG4gICAgZm9yIChsZXQgaSA9IDAsIHFMZW4gPSBxdWVyeS5sZW5ndGg7IGkgPCBxTGVuOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IHNlYXJjaGVycyA9IHF1ZXJ5W2ldO1xuXG4gICAgICAvLyBSZXNldCBpbmRpY2VzXG4gICAgICBhbGxJbmRpY2VzLmxlbmd0aCA9IDA7XG4gICAgICBudW1NYXRjaGVzID0gMDtcblxuICAgICAgLy8gQU5Ec1xuICAgICAgZm9yIChsZXQgaiA9IDAsIHBMZW4gPSBzZWFyY2hlcnMubGVuZ3RoOyBqIDwgcExlbjsgaiArPSAxKSB7XG4gICAgICAgIGNvbnN0IHNlYXJjaGVyID0gc2VhcmNoZXJzW2pdO1xuICAgICAgICBjb25zdCB7IGlzTWF0Y2gsIGluZGljZXMsIHNjb3JlIH0gPSBzZWFyY2hlci5zZWFyY2godGV4dCk7XG5cbiAgICAgICAgaWYgKGlzTWF0Y2gpIHtcbiAgICAgICAgICBudW1NYXRjaGVzICs9IDE7XG4gICAgICAgICAgdG90YWxTY29yZSArPSBzY29yZTtcbiAgICAgICAgICBpZiAoaW5jbHVkZU1hdGNoZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBzZWFyY2hlci5jb25zdHJ1Y3Rvci50eXBlO1xuICAgICAgICAgICAgaWYgKE11bHRpTWF0Y2hTZXQuaGFzKHR5cGUpKSB7XG4gICAgICAgICAgICAgIGFsbEluZGljZXMgPSBbLi4uYWxsSW5kaWNlcywgLi4uaW5kaWNlc107XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBhbGxJbmRpY2VzLnB1c2goaW5kaWNlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRvdGFsU2NvcmUgPSAwO1xuICAgICAgICAgIG51bU1hdGNoZXMgPSAwO1xuICAgICAgICAgIGFsbEluZGljZXMubGVuZ3RoID0gMDtcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE9SIGNvbmRpdGlvbiwgc28gaWYgVFJVRSwgcmV0dXJuXG4gICAgICBpZiAobnVtTWF0Y2hlcykge1xuICAgICAgICBsZXQgcmVzdWx0ID0ge1xuICAgICAgICAgIGlzTWF0Y2g6IHRydWUsXG4gICAgICAgICAgc2NvcmU6IHRvdGFsU2NvcmUgLyBudW1NYXRjaGVzXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGluY2x1ZGVNYXRjaGVzKSB7XG4gICAgICAgICAgcmVzdWx0LmluZGljZXMgPSBhbGxJbmRpY2VzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vdGhpbmcgd2FzIG1hdGNoZWRcbiAgICByZXR1cm4ge1xuICAgICAgaXNNYXRjaDogZmFsc2UsXG4gICAgICBzY29yZTogMVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCByZWdpc3RlcmVkU2VhcmNoZXJzID0gW107XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyKC4uLmFyZ3MpIHtcbiAgcmVnaXN0ZXJlZFNlYXJjaGVycy5wdXNoKC4uLmFyZ3MpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTZWFyY2hlcihwYXR0ZXJuLCBvcHRpb25zKSB7XG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSByZWdpc3RlcmVkU2VhcmNoZXJzLmxlbmd0aDsgaSA8IGxlbjsgaSArPSAxKSB7XG4gICAgbGV0IHNlYXJjaGVyQ2xhc3MgPSByZWdpc3RlcmVkU2VhcmNoZXJzW2ldO1xuICAgIGlmIChzZWFyY2hlckNsYXNzLmNvbmRpdGlvbihwYXR0ZXJuLCBvcHRpb25zKSkge1xuICAgICAgcmV0dXJuIG5ldyBzZWFyY2hlckNsYXNzKHBhdHRlcm4sIG9wdGlvbnMpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBCaXRhcFNlYXJjaChwYXR0ZXJuLCBvcHRpb25zKVxufVxuXG5jb25zdCBMb2dpY2FsT3BlcmF0b3IgPSB7XG4gIEFORDogJyRhbmQnLFxuICBPUjogJyRvcidcbn07XG5cbmNvbnN0IEtleVR5cGUgPSB7XG4gIFBBVEg6ICckcGF0aCcsXG4gIFBBVFRFUk46ICckdmFsJ1xufTtcblxuY29uc3QgaXNFeHByZXNzaW9uID0gKHF1ZXJ5KSA9PlxuICAhIShxdWVyeVtMb2dpY2FsT3BlcmF0b3IuQU5EXSB8fCBxdWVyeVtMb2dpY2FsT3BlcmF0b3IuT1JdKTtcblxuY29uc3QgaXNQYXRoID0gKHF1ZXJ5KSA9PiAhIXF1ZXJ5W0tleVR5cGUuUEFUSF07XG5cbmNvbnN0IGlzTGVhZiA9IChxdWVyeSkgPT5cbiAgIWlzQXJyYXkocXVlcnkpICYmIGlzT2JqZWN0KHF1ZXJ5KSAmJiAhaXNFeHByZXNzaW9uKHF1ZXJ5KTtcblxuY29uc3QgY29udmVydFRvRXhwbGljaXQgPSAocXVlcnkpID0+ICh7XG4gIFtMb2dpY2FsT3BlcmF0b3IuQU5EXTogT2JqZWN0LmtleXMocXVlcnkpLm1hcCgoa2V5KSA9PiAoe1xuICAgIFtrZXldOiBxdWVyeVtrZXldXG4gIH0pKVxufSk7XG5cbi8vIFdoZW4gYGF1dG9gIGlzIGB0cnVlYCwgdGhlIHBhcnNlIGZ1bmN0aW9uIHdpbGwgaW5mZXIgYW5kIGluaXRpYWxpemUgYW5kIGFkZFxuLy8gdGhlIGFwcHJvcHJpYXRlIGBTZWFyY2hlcmAgaW5zdGFuY2VcbmZ1bmN0aW9uIHBhcnNlKHF1ZXJ5LCBvcHRpb25zLCB7IGF1dG8gPSB0cnVlIH0gPSB7fSkge1xuICBjb25zdCBuZXh0ID0gKHF1ZXJ5KSA9PiB7XG4gICAgbGV0IGtleXMgPSBPYmplY3Qua2V5cyhxdWVyeSk7XG5cbiAgICBjb25zdCBpc1F1ZXJ5UGF0aCA9IGlzUGF0aChxdWVyeSk7XG5cbiAgICBpZiAoIWlzUXVlcnlQYXRoICYmIGtleXMubGVuZ3RoID4gMSAmJiAhaXNFeHByZXNzaW9uKHF1ZXJ5KSkge1xuICAgICAgcmV0dXJuIG5leHQoY29udmVydFRvRXhwbGljaXQocXVlcnkpKVxuICAgIH1cblxuICAgIGlmIChpc0xlYWYocXVlcnkpKSB7XG4gICAgICBjb25zdCBrZXkgPSBpc1F1ZXJ5UGF0aCA/IHF1ZXJ5W0tleVR5cGUuUEFUSF0gOiBrZXlzWzBdO1xuXG4gICAgICBjb25zdCBwYXR0ZXJuID0gaXNRdWVyeVBhdGggPyBxdWVyeVtLZXlUeXBlLlBBVFRFUk5dIDogcXVlcnlba2V5XTtcblxuICAgICAgaWYgKCFpc1N0cmluZyhwYXR0ZXJuKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoTE9HSUNBTF9TRUFSQ0hfSU5WQUxJRF9RVUVSWV9GT1JfS0VZKGtleSkpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9iaiA9IHtcbiAgICAgICAga2V5SWQ6IGNyZWF0ZUtleUlkKGtleSksXG4gICAgICAgIHBhdHRlcm5cbiAgICAgIH07XG5cbiAgICAgIGlmIChhdXRvKSB7XG4gICAgICAgIG9iai5zZWFyY2hlciA9IGNyZWF0ZVNlYXJjaGVyKHBhdHRlcm4sIG9wdGlvbnMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2JqXG4gICAgfVxuXG4gICAgbGV0IG5vZGUgPSB7XG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgICBvcGVyYXRvcjoga2V5c1swXVxuICAgIH07XG5cbiAgICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBxdWVyeVtrZXldO1xuXG4gICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIG5vZGUuY2hpbGRyZW4ucHVzaChuZXh0KGl0ZW0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbm9kZVxuICB9O1xuXG4gIGlmICghaXNFeHByZXNzaW9uKHF1ZXJ5KSkge1xuICAgIHF1ZXJ5ID0gY29udmVydFRvRXhwbGljaXQocXVlcnkpO1xuICB9XG5cbiAgcmV0dXJuIG5leHQocXVlcnkpXG59XG5cbi8vIFByYWN0aWNhbCBzY29yaW5nIGZ1bmN0aW9uXG5mdW5jdGlvbiBjb21wdXRlU2NvcmUkMShcbiAgcmVzdWx0cyxcbiAgeyBpZ25vcmVGaWVsZE5vcm0gPSBDb25maWcuaWdub3JlRmllbGROb3JtIH1cbikge1xuICByZXN1bHRzLmZvckVhY2goKHJlc3VsdCkgPT4ge1xuICAgIGxldCB0b3RhbFNjb3JlID0gMTtcblxuICAgIHJlc3VsdC5tYXRjaGVzLmZvckVhY2goKHsga2V5LCBub3JtLCBzY29yZSB9KSA9PiB7XG4gICAgICBjb25zdCB3ZWlnaHQgPSBrZXkgPyBrZXkud2VpZ2h0IDogbnVsbDtcblxuICAgICAgdG90YWxTY29yZSAqPSBNYXRoLnBvdyhcbiAgICAgICAgc2NvcmUgPT09IDAgJiYgd2VpZ2h0ID8gTnVtYmVyLkVQU0lMT04gOiBzY29yZSxcbiAgICAgICAgKHdlaWdodCB8fCAxKSAqIChpZ25vcmVGaWVsZE5vcm0gPyAxIDogbm9ybSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICByZXN1bHQuc2NvcmUgPSB0b3RhbFNjb3JlO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtTWF0Y2hlcyhyZXN1bHQsIGRhdGEpIHtcbiAgY29uc3QgbWF0Y2hlcyA9IHJlc3VsdC5tYXRjaGVzO1xuICBkYXRhLm1hdGNoZXMgPSBbXTtcblxuICBpZiAoIWlzRGVmaW5lZChtYXRjaGVzKSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgbWF0Y2hlcy5mb3JFYWNoKChtYXRjaCkgPT4ge1xuICAgIGlmICghaXNEZWZpbmVkKG1hdGNoLmluZGljZXMpIHx8ICFtYXRjaC5pbmRpY2VzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgeyBpbmRpY2VzLCB2YWx1ZSB9ID0gbWF0Y2g7XG5cbiAgICBsZXQgb2JqID0ge1xuICAgICAgaW5kaWNlcyxcbiAgICAgIHZhbHVlXG4gICAgfTtcblxuICAgIGlmIChtYXRjaC5rZXkpIHtcbiAgICAgIG9iai5rZXkgPSBtYXRjaC5rZXkuc3JjO1xuICAgIH1cblxuICAgIGlmIChtYXRjaC5pZHggPiAtMSkge1xuICAgICAgb2JqLnJlZkluZGV4ID0gbWF0Y2guaWR4O1xuICAgIH1cblxuICAgIGRhdGEubWF0Y2hlcy5wdXNoKG9iaik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1TY29yZShyZXN1bHQsIGRhdGEpIHtcbiAgZGF0YS5zY29yZSA9IHJlc3VsdC5zY29yZTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0KFxuICByZXN1bHRzLFxuICBkb2NzLFxuICB7XG4gICAgaW5jbHVkZU1hdGNoZXMgPSBDb25maWcuaW5jbHVkZU1hdGNoZXMsXG4gICAgaW5jbHVkZVNjb3JlID0gQ29uZmlnLmluY2x1ZGVTY29yZVxuICB9ID0ge31cbikge1xuICBjb25zdCB0cmFuc2Zvcm1lcnMgPSBbXTtcblxuICBpZiAoaW5jbHVkZU1hdGNoZXMpIHRyYW5zZm9ybWVycy5wdXNoKHRyYW5zZm9ybU1hdGNoZXMpO1xuICBpZiAoaW5jbHVkZVNjb3JlKSB0cmFuc2Zvcm1lcnMucHVzaCh0cmFuc2Zvcm1TY29yZSk7XG5cbiAgcmV0dXJuIHJlc3VsdHMubWFwKChyZXN1bHQpID0+IHtcbiAgICBjb25zdCB7IGlkeCB9ID0gcmVzdWx0O1xuXG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGl0ZW06IGRvY3NbaWR4XSxcbiAgICAgIHJlZkluZGV4OiBpZHhcbiAgICB9O1xuXG4gICAgaWYgKHRyYW5zZm9ybWVycy5sZW5ndGgpIHtcbiAgICAgIHRyYW5zZm9ybWVycy5mb3JFYWNoKCh0cmFuc2Zvcm1lcikgPT4ge1xuICAgICAgICB0cmFuc2Zvcm1lcihyZXN1bHQsIGRhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGFcbiAgfSlcbn1cblxuY2xhc3MgRnVzZSB7XG4gIGNvbnN0cnVjdG9yKGRvY3MsIG9wdGlvbnMgPSB7fSwgaW5kZXgpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLkNvbmZpZywgLi4ub3B0aW9ucyB9O1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5vcHRpb25zLnVzZUV4dGVuZGVkU2VhcmNoICYmXG4gICAgICAhdHJ1ZVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEVYVEVOREVEX1NFQVJDSF9VTkFWQUlMQUJMRSlcbiAgICB9XG5cbiAgICB0aGlzLl9rZXlTdG9yZSA9IG5ldyBLZXlTdG9yZSh0aGlzLm9wdGlvbnMua2V5cyk7XG5cbiAgICB0aGlzLnNldENvbGxlY3Rpb24oZG9jcywgaW5kZXgpO1xuICB9XG5cbiAgc2V0Q29sbGVjdGlvbihkb2NzLCBpbmRleCkge1xuICAgIHRoaXMuX2RvY3MgPSBkb2NzO1xuXG4gICAgaWYgKGluZGV4ICYmICEoaW5kZXggaW5zdGFuY2VvZiBGdXNlSW5kZXgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSU5DT1JSRUNUX0lOREVYX1RZUEUpXG4gICAgfVxuXG4gICAgdGhpcy5fbXlJbmRleCA9XG4gICAgICBpbmRleCB8fFxuICAgICAgY3JlYXRlSW5kZXgodGhpcy5vcHRpb25zLmtleXMsIHRoaXMuX2RvY3MsIHtcbiAgICAgICAgZ2V0Rm46IHRoaXMub3B0aW9ucy5nZXRGblxuICAgICAgfSk7XG4gIH1cblxuICBhZGQoZG9jKSB7XG4gICAgaWYgKCFpc0RlZmluZWQoZG9jKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fZG9jcy5wdXNoKGRvYyk7XG4gICAgdGhpcy5fbXlJbmRleC5hZGQoZG9jKTtcbiAgfVxuXG4gIHJlbW92ZShwcmVkaWNhdGUgPSAoLyogZG9jLCBpZHggKi8pID0+IGZhbHNlKSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHRoaXMuX2RvY3MubGVuZ3RoOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IGRvYyA9IHRoaXMuX2RvY3NbaV07XG4gICAgICBpZiAocHJlZGljYXRlKGRvYywgaSkpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdChpKTtcbiAgICAgICAgaSAtPSAxO1xuICAgICAgICBsZW4gLT0gMTtcblxuICAgICAgICByZXN1bHRzLnB1c2goZG9jKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0c1xuICB9XG5cbiAgcmVtb3ZlQXQoaWR4KSB7XG4gICAgdGhpcy5fZG9jcy5zcGxpY2UoaWR4LCAxKTtcbiAgICB0aGlzLl9teUluZGV4LnJlbW92ZUF0KGlkeCk7XG4gIH1cblxuICBnZXRJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbXlJbmRleFxuICB9XG5cbiAgc2VhcmNoKHF1ZXJ5LCB7IGxpbWl0ID0gLTEgfSA9IHt9KSB7XG4gICAgY29uc3Qge1xuICAgICAgaW5jbHVkZU1hdGNoZXMsXG4gICAgICBpbmNsdWRlU2NvcmUsXG4gICAgICBzaG91bGRTb3J0LFxuICAgICAgc29ydEZuLFxuICAgICAgaWdub3JlRmllbGROb3JtXG4gICAgfSA9IHRoaXMub3B0aW9ucztcblxuICAgIGxldCByZXN1bHRzID0gaXNTdHJpbmcocXVlcnkpXG4gICAgICA/IGlzU3RyaW5nKHRoaXMuX2RvY3NbMF0pXG4gICAgICAgID8gdGhpcy5fc2VhcmNoU3RyaW5nTGlzdChxdWVyeSlcbiAgICAgICAgOiB0aGlzLl9zZWFyY2hPYmplY3RMaXN0KHF1ZXJ5KVxuICAgICAgOiB0aGlzLl9zZWFyY2hMb2dpY2FsKHF1ZXJ5KTtcblxuICAgIGNvbXB1dGVTY29yZSQxKHJlc3VsdHMsIHsgaWdub3JlRmllbGROb3JtIH0pO1xuXG4gICAgaWYgKHNob3VsZFNvcnQpIHtcbiAgICAgIHJlc3VsdHMuc29ydChzb3J0Rm4pO1xuICAgIH1cblxuICAgIGlmIChpc051bWJlcihsaW1pdCkgJiYgbGltaXQgPiAtMSkge1xuICAgICAgcmVzdWx0cyA9IHJlc3VsdHMuc2xpY2UoMCwgbGltaXQpO1xuICAgIH1cblxuICAgIHJldHVybiBmb3JtYXQocmVzdWx0cywgdGhpcy5fZG9jcywge1xuICAgICAgaW5jbHVkZU1hdGNoZXMsXG4gICAgICBpbmNsdWRlU2NvcmVcbiAgICB9KVxuICB9XG5cbiAgX3NlYXJjaFN0cmluZ0xpc3QocXVlcnkpIHtcbiAgICBjb25zdCBzZWFyY2hlciA9IGNyZWF0ZVNlYXJjaGVyKHF1ZXJ5LCB0aGlzLm9wdGlvbnMpO1xuICAgIGNvbnN0IHsgcmVjb3JkcyB9ID0gdGhpcy5fbXlJbmRleDtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICAvLyBJdGVyYXRlIG92ZXIgZXZlcnkgc3RyaW5nIGluIHRoZSBpbmRleFxuICAgIHJlY29yZHMuZm9yRWFjaCgoeyB2OiB0ZXh0LCBpOiBpZHgsIG46IG5vcm0gfSkgPT4ge1xuICAgICAgaWYgKCFpc0RlZmluZWQodGV4dCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgaXNNYXRjaCwgc2NvcmUsIGluZGljZXMgfSA9IHNlYXJjaGVyLnNlYXJjaEluKHRleHQpO1xuXG4gICAgICBpZiAoaXNNYXRjaCkge1xuICAgICAgICByZXN1bHRzLnB1c2goe1xuICAgICAgICAgIGl0ZW06IHRleHQsXG4gICAgICAgICAgaWR4LFxuICAgICAgICAgIG1hdGNoZXM6IFt7IHNjb3JlLCB2YWx1ZTogdGV4dCwgbm9ybSwgaW5kaWNlcyB9XVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHRzXG4gIH1cblxuICBfc2VhcmNoTG9naWNhbChxdWVyeSkge1xuXG4gICAgY29uc3QgZXhwcmVzc2lvbiA9IHBhcnNlKHF1ZXJ5LCB0aGlzLm9wdGlvbnMpO1xuXG4gICAgY29uc3QgZXZhbHVhdGUgPSAobm9kZSwgaXRlbSwgaWR4KSA9PiB7XG4gICAgICBpZiAoIW5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3QgeyBrZXlJZCwgc2VhcmNoZXIgfSA9IG5vZGU7XG5cbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHRoaXMuX2ZpbmRNYXRjaGVzKHtcbiAgICAgICAgICBrZXk6IHRoaXMuX2tleVN0b3JlLmdldChrZXlJZCksXG4gICAgICAgICAgdmFsdWU6IHRoaXMuX215SW5kZXguZ2V0VmFsdWVGb3JJdGVtQXRLZXlJZChpdGVtLCBrZXlJZCksXG4gICAgICAgICAgc2VhcmNoZXJcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZHgsXG4gICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgIG1hdGNoZXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW11cbiAgICAgIH1cblxuICAgICAgLyplc2xpbnQgaW5kZW50OiBbMiwgMiwge1wiU3dpdGNoQ2FzZVwiOiAxfV0qL1xuICAgICAgc3dpdGNoIChub2RlLm9wZXJhdG9yKSB7XG4gICAgICAgIGNhc2UgTG9naWNhbE9wZXJhdG9yLkFORDoge1xuICAgICAgICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSA8IGxlbjsgaSArPSAxKSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZCA9IG5vZGUuY2hpbGRyZW5baV07XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBldmFsdWF0ZShjaGlsZCwgaXRlbSwgaWR4KTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJlcy5wdXNoKC4uLnJlc3VsdCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gW11cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgTG9naWNhbE9wZXJhdG9yLk9SOiB7XG4gICAgICAgICAgY29uc3QgcmVzID0gW107XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5jaGlsZHJlbltpXTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGV2YWx1YXRlKGNoaWxkLCBpdGVtLCBpZHgpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcmVzLnB1c2goLi4ucmVzdWx0KTtcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHJlY29yZHMgPSB0aGlzLl9teUluZGV4LnJlY29yZHM7XG4gICAgY29uc3QgcmVzdWx0TWFwID0ge307XG4gICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuXG4gICAgcmVjb3Jkcy5mb3JFYWNoKCh7ICQ6IGl0ZW0sIGk6IGlkeCB9KSA9PiB7XG4gICAgICBpZiAoaXNEZWZpbmVkKGl0ZW0pKSB7XG4gICAgICAgIGxldCBleHBSZXN1bHRzID0gZXZhbHVhdGUoZXhwcmVzc2lvbiwgaXRlbSwgaWR4KTtcblxuICAgICAgICBpZiAoZXhwUmVzdWx0cy5sZW5ndGgpIHtcbiAgICAgICAgICAvLyBEZWR1cGUgd2hlbiBhZGRpbmdcbiAgICAgICAgICBpZiAoIXJlc3VsdE1hcFtpZHhdKSB7XG4gICAgICAgICAgICByZXN1bHRNYXBbaWR4XSA9IHsgaWR4LCBpdGVtLCBtYXRjaGVzOiBbXSB9O1xuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3VsdE1hcFtpZHhdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZXhwUmVzdWx0cy5mb3JFYWNoKCh7IG1hdGNoZXMgfSkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0TWFwW2lkeF0ubWF0Y2hlcy5wdXNoKC4uLm1hdGNoZXMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0c1xuICB9XG5cbiAgX3NlYXJjaE9iamVjdExpc3QocXVlcnkpIHtcbiAgICBjb25zdCBzZWFyY2hlciA9IGNyZWF0ZVNlYXJjaGVyKHF1ZXJ5LCB0aGlzLm9wdGlvbnMpO1xuICAgIGNvbnN0IHsga2V5cywgcmVjb3JkcyB9ID0gdGhpcy5fbXlJbmRleDtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICAvLyBMaXN0IGlzIEFycmF5PE9iamVjdD5cbiAgICByZWNvcmRzLmZvckVhY2goKHsgJDogaXRlbSwgaTogaWR4IH0pID0+IHtcbiAgICAgIGlmICghaXNEZWZpbmVkKGl0ZW0pKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBsZXQgbWF0Y2hlcyA9IFtdO1xuXG4gICAgICAvLyBJdGVyYXRlIG92ZXIgZXZlcnkga2V5IChpLmUsIHBhdGgpLCBhbmQgZmV0Y2ggdGhlIHZhbHVlIGF0IHRoYXQga2V5XG4gICAgICBrZXlzLmZvckVhY2goKGtleSwga2V5SW5kZXgpID0+IHtcbiAgICAgICAgbWF0Y2hlcy5wdXNoKFxuICAgICAgICAgIC4uLnRoaXMuX2ZpbmRNYXRjaGVzKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtW2tleUluZGV4XSxcbiAgICAgICAgICAgIHNlYXJjaGVyXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAobWF0Y2hlcy5sZW5ndGgpIHtcbiAgICAgICAgcmVzdWx0cy5wdXNoKHtcbiAgICAgICAgICBpZHgsXG4gICAgICAgICAgaXRlbSxcbiAgICAgICAgICBtYXRjaGVzXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdHNcbiAgfVxuICBfZmluZE1hdGNoZXMoeyBrZXksIHZhbHVlLCBzZWFyY2hlciB9KSB7XG4gICAgaWYgKCFpc0RlZmluZWQodmFsdWUpKSB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG5cbiAgICBsZXQgbWF0Y2hlcyA9IFtdO1xuXG4gICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB2YWx1ZS5mb3JFYWNoKCh7IHY6IHRleHQsIGk6IGlkeCwgbjogbm9ybSB9KSA9PiB7XG4gICAgICAgIGlmICghaXNEZWZpbmVkKHRleHQpKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGlzTWF0Y2gsIHNjb3JlLCBpbmRpY2VzIH0gPSBzZWFyY2hlci5zZWFyY2hJbih0ZXh0KTtcblxuICAgICAgICBpZiAoaXNNYXRjaCkge1xuICAgICAgICAgIG1hdGNoZXMucHVzaCh7XG4gICAgICAgICAgICBzY29yZSxcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0ZXh0LFxuICAgICAgICAgICAgaWR4LFxuICAgICAgICAgICAgbm9ybSxcbiAgICAgICAgICAgIGluZGljZXNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHsgdjogdGV4dCwgbjogbm9ybSB9ID0gdmFsdWU7XG5cbiAgICAgIGNvbnN0IHsgaXNNYXRjaCwgc2NvcmUsIGluZGljZXMgfSA9IHNlYXJjaGVyLnNlYXJjaEluKHRleHQpO1xuXG4gICAgICBpZiAoaXNNYXRjaCkge1xuICAgICAgICBtYXRjaGVzLnB1c2goeyBzY29yZSwga2V5LCB2YWx1ZTogdGV4dCwgbm9ybSwgaW5kaWNlcyB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hlc1xuICB9XG59XG5cbkZ1c2UudmVyc2lvbiA9ICc2LjQuNic7XG5GdXNlLmNyZWF0ZUluZGV4ID0gY3JlYXRlSW5kZXg7XG5GdXNlLnBhcnNlSW5kZXggPSBwYXJzZUluZGV4O1xuRnVzZS5jb25maWcgPSBDb25maWc7XG5cbntcbiAgRnVzZS5wYXJzZVF1ZXJ5ID0gcGFyc2U7XG59XG5cbntcbiAgcmVnaXN0ZXIoRXh0ZW5kZWRTZWFyY2gpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBGdXNlO1xuIiwiaW1wb3J0IEZ1c2UgZnJvbSAnZnVzZS5qcydcblxuY29uc3QgdXNlQ29tbWFuZHMgPSAoY29tbWFuZHMsIHByZWNpc2lvbiA9IDAuNCkgPT4ge1xuXHRjb21tYW5kcyA9ICEhY29tbWFuZHNcblx0XHQ/IE9iamVjdC5lbnRyaWVzKGNvbW1hbmRzKT8ucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHsgW2tleS50b0xvd2VyQ2FzZSgpXTogdmFsdWUgfSksIHt9KVxuXHRcdDoge31cblxuXHRjb25zdCB0cmlnZ2VyQ29tbWFuZCA9IChpbnB1dCkgPT4ge1xuXHRcdGNvbnN0IGZ1c2UgPSBuZXcgRnVzZShPYmplY3Qua2V5cyhjb21tYW5kcyksIHsgaW5jbHVkZVNjb3JlOiB0cnVlLCBpZ25vcmVMb2NhdGlvbjogdHJ1ZSB9KVxuXHRcdGNvbnN0IHJlc3VsdCA9IGZ1c2Uuc2VhcmNoKGlucHV0KS5maWx0ZXIoKHIpID0+IHIuc2NvcmUgPCBwcmVjaXNpb24pXG5cdFx0aWYgKCEhcmVzdWx0Py5sZW5ndGgpIHtcblx0XHRcdGNvbnN0IGtleSA9IHJlc3VsdFswXS5pdGVtLnRvTG93ZXJDYXNlKClcblx0XHRcdHJldHVybiBjb21tYW5kc1trZXldPy4oaW5wdXQpXG5cdFx0fVxuXHRcdHJldHVybiBudWxsXG5cdH1cblxuXHRyZXR1cm4gdHJpZ2dlckNvbW1hbmRcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlQ29tbWFuZHNcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcydcblxuY29uc3QgSWNvbiA9ICh7IGNvbG9yLCBhY3RpdmVDb2xvciwgaXNBY3RpdmUgfSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxzdmdcblx0XHRcdGRhdGEtdGVzdGlkPVwiX19pY29uLXJvb3RfX1wiXG5cdFx0XHR4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcblx0XHRcdHdpZHRoPVwiMTAwJVwiXG5cdFx0XHRoZWlnaHQ9XCIxMDAlXCJcblx0XHRcdHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuXHRcdD5cblx0XHRcdDxnPlxuXHRcdFx0XHQ8cGF0aFxuXHRcdFx0XHRcdGRhdGEtdGVzdGlkPVwiX19pY29uLXBhdGhfX1wiXG5cdFx0XHRcdFx0ZmlsbD17Y29sb3J9XG5cdFx0XHRcdFx0ZD1cIk0xMiAxNGMxLjY2IDAgMi45OS0xLjM0IDIuOTktM0wxNSA1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2NmMwIDEuNjYgMS4zNCAzIDMgM3ptNS4zLTNjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDE0IDYuNyAxMUg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIxaDJ2LTMuMjhjMy4yOC0uNDggNi0zLjMgNi02LjcyaC0xLjd6XCJcblx0XHRcdFx0Lz5cblx0XHRcdFx0e2lzQWN0aXZlICYmIDxjaXJjbGUgZGF0YS10ZXN0aWQ9XCJfX2ljb24tYWN0aXZlX19cIiBmaWxsPXthY3RpdmVDb2xvcn0gY3g9XCIxNlwiIGN5PVwiNFwiIHI9XCI0XCIgLz59XG5cdFx0XHQ8L2c+XG5cdFx0PC9zdmc+XG5cdClcbn1cblxuSWNvbi5wcm9wVHlwZXMgPSB7XG5cdGNvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuXHRhY3RpdmVDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcblx0aXNBY3RpdmU6IFByb3BUeXBlcy5ib29sLFxufVxuXG5JY29uLmRlZmF1bHRQcm9wcyA9IHtcblx0Y29sb3I6ICdibGFjaycsXG5cdGFjdGl2ZUNvbG9yOiAncmVkJyxcblx0aXNBY3RpdmU6IGZhbHNlLFxufVxuXG5leHBvcnQgZGVmYXVsdCBJY29uXG4iLCJpbXBvcnQgUmVhY3QsIHsgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IHsgVm9jYWwgYXMgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyIH0gZnJvbSAnQHVudGVtcHMvdm9jYWwnXG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnQHVudGVtcHMvdXRpbHMvZnVuY3Rpb24vaXNGdW5jdGlvbidcblxuaW1wb3J0IHVzZVZvY2FsIGZyb20gJy4uL2hvb2tzL3VzZVZvY2FsJ1xuaW1wb3J0IHVzZVRpbWVvdXQgZnJvbSAnLi4vaG9va3MvdXNlVGltZW91dCdcbmltcG9ydCB1c2VDb21tYW5kcyBmcm9tICcuLi9ob29rcy91c2VDb21tYW5kcydcblxuaW1wb3J0IEljb24gZnJvbSAnLi9JY29uJ1xuXG5jb25zdCBWb2NhbCA9ICh7XG5cdGNoaWxkcmVuLFxuXHRjb21tYW5kcyxcblx0bGFuZyxcblx0Z3JhbW1hcnMsXG5cdHRpbWVvdXQsXG5cdGFyaWFMYWJlbCxcblx0c3R5bGUsXG5cdGNsYXNzTmFtZSxcblx0b3V0bGluZVN0eWxlLFxuXHRvblN0YXJ0LFxuXHRvbkVuZCxcblx0b25TcGVlY2hTdGFydCxcblx0b25TcGVlY2hFbmQsXG5cdG9uUmVzdWx0LFxuXHRvbkVycm9yLFxuXHRvbk5vTWF0Y2gsXG5cdF9fcnNJbnN0YW5jZSxcbn0pID0+IHtcblx0Y29uc3QgYnV0dG9uUmVmID0gdXNlUmVmKG51bGwpXG5cdGNvbnN0IFtpc0xpc3RlbmluZywgc2V0SXNMaXN0ZW5pbmddID0gdXNlU3RhdGUoZmFsc2UpXG5cblx0Y29uc3QgWywgeyBzdGFydCwgc3RvcCwgc3Vic2NyaWJlLCB1bnN1YnNjcmliZSB9XSA9IHVzZVZvY2FsKGxhbmcsIGdyYW1tYXJzLCBfX3JzSW5zdGFuY2UpXG5cdGNvbnN0IHRyaWdnZXJDb21tYW5kID0gdXNlQ29tbWFuZHMoY29tbWFuZHMpXG5cblx0Y29uc3QgX29uRW5kID0gKGUpID0+IHtcblx0XHRzdG9wVGltZXIoKVxuXHRcdHN0b3BSZWNvZ25pdGlvbigpXG5cblx0XHR1bnN1YnNjcmliZSgnc3RhcnQnLCBfb25TdGFydClcblx0XHR1bnN1YnNjcmliZSgnZW5kJywgX29uRW5kKVxuXHRcdHVuc3Vic2NyaWJlKCdzcGVlY2hzdGFydCcsIF9vblNwZWVjaFN0YXJ0KVxuXHRcdHVuc3Vic2NyaWJlKCdzcGVlY2hlbmQnLCBfb25TcGVlY2hFbmQpXG5cdFx0dW5zdWJzY3JpYmUoJ3Jlc3VsdCcsIF9vblJlc3VsdClcblx0XHR1bnN1YnNjcmliZSgnZXJyb3InLCBfb25FcnJvcilcblx0XHR1bnN1YnNjcmliZSgnbm9tYXRjaCcsIF9vbk5vTWF0Y2gpXG5cblx0XHQhIW9uRW5kICYmIG9uRW5kKGUpXG5cdH1cblxuXHRjb25zdCBbc3RhcnRUaW1lciwgc3RvcFRpbWVyXSA9IHVzZVRpbWVvdXQoX29uRW5kLCB0aW1lb3V0KVxuXG5cdGNvbnN0IHN0YXJ0UmVjb2duaXRpb24gPSAoKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdHNldElzTGlzdGVuaW5nKHRydWUpXG5cblx0XHRcdHN1YnNjcmliZSgnc3RhcnQnLCBfb25TdGFydClcblx0XHRcdHN1YnNjcmliZSgnZW5kJywgX29uRW5kKVxuXHRcdFx0c3Vic2NyaWJlKCdzcGVlY2hzdGFydCcsIF9vblNwZWVjaFN0YXJ0KVxuXHRcdFx0c3Vic2NyaWJlKCdzcGVlY2hlbmQnLCBfb25TcGVlY2hFbmQpXG5cdFx0XHRzdWJzY3JpYmUoJ3Jlc3VsdCcsIF9vblJlc3VsdClcblx0XHRcdHN1YnNjcmliZSgnZXJyb3InLCBfb25FcnJvcilcblx0XHRcdHN1YnNjcmliZSgnbm9tYXRjaCcsIF9vbk5vTWF0Y2gpXG5cblx0XHRcdHN0YXJ0KClcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0X29uRXJyb3IoZXJyb3IpXG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc3RvcFJlY29nbml0aW9uID0gKCkgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRzZXRJc0xpc3RlbmluZyhmYWxzZSlcblxuXHRcdFx0c3RvcCgpXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdCEhb25FcnJvciAmJiBvbkVycm9yKGVycm9yKVxuXHRcdH1cblx0fVxuXG5cdGNvbnN0IF9vbkNsaWNrID0gKCkgPT4ge1xuXHRcdHN0YXJ0UmVjb2duaXRpb24oKVxuXHR9XG5cblx0Y29uc3QgX29uRm9jdXMgPSAoKSA9PiB7XG5cdFx0aWYgKCFjbGFzc05hbWUgJiYgb3V0bGluZVN0eWxlKSB7XG5cdFx0XHRidXR0b25SZWYuY3VycmVudC5zdHlsZS5vdXRsaW5lID0gb3V0bGluZVN0eWxlXG5cdFx0fVxuXHR9XG5cblx0Y29uc3QgX29uQmx1ciA9ICgpID0+IHtcblx0XHRpZiAoIWNsYXNzTmFtZSAmJiBvdXRsaW5lU3R5bGUpIHtcblx0XHRcdGJ1dHRvblJlZi5jdXJyZW50LnN0eWxlLm91dGxpbmUgPSAnbm9uZSdcblx0XHR9XG5cdH1cblxuXHRjb25zdCBfb25TdGFydCA9IChlKSA9PiB7XG5cdFx0c3RhcnRUaW1lcigpXG5cblx0XHQhIW9uU3RhcnQgJiYgb25TdGFydChlKVxuXHR9XG5cblx0Y29uc3QgX29uU3BlZWNoU3RhcnQgPSAoZSkgPT4ge1xuXHRcdHN0b3BUaW1lcigpXG5cblx0XHQhIW9uU3BlZWNoU3RhcnQgJiYgb25TcGVlY2hTdGFydChlKVxuXHR9XG5cblx0Y29uc3QgX29uU3BlZWNoRW5kID0gKGUpID0+IHtcblx0XHRzdGFydFRpbWVyKClcblxuXHRcdCEhb25TcGVlY2hFbmQgJiYgb25TcGVlY2hFbmQoZSlcblx0fVxuXG5cdGNvbnN0IF9vblJlc3VsdCA9IChldmVudCwgcmVzdWx0KSA9PiB7XG5cdFx0c3RvcFRpbWVyKClcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0dHJpZ2dlckNvbW1hbmQocmVzdWx0KVxuXG5cdFx0ISFvblJlc3VsdCAmJiBvblJlc3VsdChyZXN1bHQsIGV2ZW50KVxuXHR9XG5cblx0Y29uc3QgX29uRXJyb3IgPSAoZXJyb3IpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvbkVycm9yICYmIG9uRXJyb3IoZXJyb3IpXG5cdH1cblxuXHRjb25zdCBfb25Ob01hdGNoID0gKGUpID0+IHtcblx0XHRzdG9wVGltZXIoKVxuXHRcdHN0b3BSZWNvZ25pdGlvbigpXG5cblx0XHQhIW9uTm9NYXRjaCAmJiBvbk5vTWF0Y2goZSlcblx0fVxuXG5cdGNvbnN0IF9yZW5kZXJEZWZhdWx0ID0gKCkgPT4gKFxuXHRcdDxidXR0b25cblx0XHRcdGRhdGEtdGVzdGlkPVwiX192b2NhbC1yb290X19cIlxuXHRcdFx0cmVmPXtidXR0b25SZWZ9XG5cdFx0XHRyb2xlPVwiYnV0dG9uXCJcblx0XHRcdGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cblx0XHRcdHN0eWxlPXtcblx0XHRcdFx0Y2xhc3NOYW1lXG5cdFx0XHRcdFx0PyBudWxsXG5cdFx0XHRcdFx0OiB7XG5cdFx0XHRcdFx0XHRcdHdpZHRoOiAyNCxcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiAyNCxcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZDogJ25vbmUnLFxuXHRcdFx0XHRcdFx0XHRib3JkZXI6ICdub25lJyxcblx0XHRcdFx0XHRcdFx0cGFkZGluZzogMCxcblx0XHRcdFx0XHRcdFx0Y3Vyc29yOiAhaXNMaXN0ZW5pbmcgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcsXG5cdFx0XHRcdFx0XHRcdC4uLnN0eWxlLFxuXHRcdFx0XHRcdCAgfVxuXHRcdFx0fVxuXHRcdFx0Y2xhc3NOYW1lPXtjbGFzc05hbWV9XG5cdFx0XHRvbkZvY3VzPXtfb25Gb2N1c31cblx0XHRcdG9uQmx1cj17X29uQmx1cn1cblx0XHRcdG9uQ2xpY2s9e19vbkNsaWNrfVxuXHRcdD5cblx0XHRcdDxJY29uIGlzQWN0aXZlPXtpc0xpc3RlbmluZ30gaWNvbkNvbG9yPVwiI2FhYVwiIC8+XG5cdFx0PC9idXR0b24+XG5cdClcblxuXHRjb25zdCBfcmVuZGVyQ2hpbGRyZW4gPSAoY2hpbGRyZW4pID0+IHtcblx0XHRpZiAoU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmlzU3VwcG9ydGVkKSB7XG5cdFx0XHRpZiAoaXNGdW5jdGlvbihjaGlsZHJlbikpIHtcblx0XHRcdFx0cmV0dXJuIGNoaWxkcmVuKHN0YXJ0UmVjb2duaXRpb24sIHN0b3BSZWNvZ25pdGlvbiwgaXNMaXN0ZW5pbmcpXG5cdFx0XHR9IGVsc2UgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSkge1xuXHRcdFx0XHRyZXR1cm4gY2xvbmVFbGVtZW50KGNoaWxkcmVuLCB7XG5cdFx0XHRcdFx0Li4uKCFpc0xpc3RlbmluZyAmJiB7IG9uQ2xpY2s6IF9vbkNsaWNrIH0pLFxuXHRcdFx0XHR9KVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIF9yZW5kZXJEZWZhdWx0KClcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXG5cdHJldHVybiBfcmVuZGVyQ2hpbGRyZW4oY2hpbGRyZW4pXG59XG5cblZvY2FsLnByb3BUeXBlcyA9IHtcblx0LyoqIERlZmluZXMgY2FsbGJhY2tzIHRvIGJlIHRyaWdnZXJlZCB3aGVuIGtleXMgYXJlIGRldGVjdGVkIGJ5IHRoZSByZWNvZ25pdGlvbiAqL1xuXHRjb21tYW5kczogUHJvcFR5cGVzLm9iamVjdE9mKFByb3BUeXBlcy5mdW5jKSxcblx0LyoqIERlZmluZXMgdGhlIGxhbmd1YWdlIHVuZGVyc3Rvb2QgYnkgdGhlIHJlY29nbml0aW9uIChodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvU3BlZWNoUmVjb2duaXRpb24vbGFuZykgKi9cblx0bGFuZzogUHJvcFR5cGVzLnN0cmluZyxcblx0LyoqIERlZmluZXMgdGhlIGdyYW1tYXJzIHVuZGVyc3Rvb2QgYnkgdGhlIHJlY29nbml0aW9uIChodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvU3BlZWNoUmVjb2duaXRpb24vZ3JhbW1hcnMpICovXG5cdGdyYW1tYXJzOiBQcm9wVHlwZXMub2JqZWN0LFxuXHQvKiogRGVmaW5lcyB0aGUgdGltZSBpbiBtcyB0byB3YWl0IGJlZm9yZSBkaXNjYXJkaW5nIHRoZSByZWNvZ25pdGlvbiAqL1xuXHR0aW1lb3V0OiBQcm9wVHlwZXMubnVtYmVyLFxuXHQvKiogRGVmaW5lcyB0aGUgYTExeSBsYWJlbCBmb3IgdGhlIGRlZmF1bHQgYnV0dG9uICovXG5cdGFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcblx0LyoqIERlZmluZXMgdGhlIHN0eWxlcyBvZiB0aGUgZGVmYXVsdCBlbGVtZW50IGlmIGNsYXNzTmFtZSBpcyBub3Qgc3BlY2lmaWVkICovXG5cdHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuXHQvKiogRGVmaW5lcyB0aGUgY2xhc3Mgb2YgdGhlIGRlZmF1bHQgZWxlbWVudCAqL1xuXHRjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cdC8qKiBEZWZpbmVzIHRoZSBkZWZhdWx0IHN0eWxlIG9mIHRoZSBmb2N1cyBvdXRsaW5lLiBpZiBudWxsIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBpcyB1c2VkICovXG5cdG91dGxpbmVTdHlsZTogUHJvcFR5cGVzLnN0cmluZyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHJlY29nbml0aW9uIHN0YXJ0cyAqL1xuXHRvblN0YXJ0OiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHJlY29nbml0aW9uIGVuZHMgKi9cblx0b25FbmQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgc3BlZWNoIHN0YXJ0cyAqL1xuXHRvblNwZWVjaFN0YXJ0OiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHNwZWVjaCBlbmRzICovXG5cdG9uU3BlZWNoRW5kOiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gYSByZXN1bHQgaXMgcmV0dXJuZWQgZnJvbSB0ZSByZWNvZ25pdGlvbiAqL1xuXHRvblJlc3VsdDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIGFuIGVycm9yIG9jY3VycyAqL1xuXHRvbkVycm9yOiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gbm8gcmVzdWx0IGNhbiBiZSByZWNvZ25pemVkICovXG5cdG9uTm9NYXRjaDogUHJvcFR5cGVzLmZ1bmMsXG59XG5cblZvY2FsLmRlZmF1bHRQcm9wcyA9IHtcblx0Y29tbWFuZHM6IG51bGwsXG5cdGxhbmc6ICdlbi1VUycsXG5cdGdyYW1tYXJzOiBudWxsLFxuXHR0aW1lb3V0OiAzMDAwLFxuXHRhcmlhTGFiZWw6ICdzdGFydCByZWNvZ25pdGlvbicsXG5cdHN0eWxlOiBudWxsLFxuXHRjbGFzc05hbWU6IG51bGwsXG5cdG91dGxpbmVTdHlsZTogJzJweCBzb2xpZCcsXG5cdG9uU3RhcnQ6IG51bGwsXG5cdG9uRW5kOiBudWxsLFxuXHRvblNwZWVjaFN0YXJ0OiBudWxsLFxuXHRvblNwZWVjaEVuZDogbnVsbCxcblx0b25SZXN1bHQ6IG51bGwsXG5cdG9uRXJyb3I6IG51bGwsXG5cdG9uTm9NYXRjaDogbnVsbCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVm9jYWxcbiIsImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuXG5jb25zdCB1c2VUaW1lb3V0ID0gKGhhbmRsZXIsIHRpbWVvdXQgPSAwKSA9PiB7XG5cdGNvbnN0IHJlZiA9IHVzZVJlZigtMSlcblxuXHRjb25zdCBzdG9wID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuXHRcdGNsZWFyVGltZW91dChyZWYuY3VycmVudClcblx0XHRyZWYuY3VycmVudCA9IC0xXG5cdH0sIFtdKVxuXG5cdGNvbnN0IHN0YXJ0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuXHRcdHN0b3AoKVxuXHRcdHJlZi5jdXJyZW50ID0gc2V0VGltZW91dChoYW5kbGVyLCB0aW1lb3V0KVxuXHR9LCBbaGFuZGxlciwgdGltZW91dCwgc3RvcF0pXG5cblx0dXNlRWZmZWN0KCgpID0+IHN0b3AsIFtzdG9wXSlcblxuXHRyZXR1cm4gW3N0YXJ0LCBzdG9wXVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VUaW1lb3V0XG5cbi8vIFRPRE86IFJldHVybiBhIHByb21pc2VcbiIsImltcG9ydCBWb2NhbCBmcm9tICcuL2NvbXBvbmVudHMvVm9jYWwnXG5pbXBvcnQgeyBWb2NhbCBhcyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIgfSBmcm9tICdAdW50ZW1wcy92b2NhbCdcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VWb2NhbCB9IGZyb20gJy4vaG9va3MvdXNlVm9jYWwnXG5leHBvcnQgY29uc3QgaXNTdXBwb3J0ZWQgPSBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuaXNTdXBwb3J0ZWRcblxuZXhwb3J0IGRlZmF1bHQgVm9jYWxcbiJdLCJuYW1lcyI6WyJ0IiwiZSIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsIm4iLCJTeW1ib2wiLCJvIiwiaXRlcmF0b3IiLCJpIiwiYXN5bmNJdGVyYXRvciIsImEiLCJ0b1N0cmluZ1RhZyIsImMiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwidSIsImYiLCJjcmVhdGUiLCJfIiwiX2ludm9rZSIsIkVycm9yIiwiUyIsIm1ldGhvZCIsImFyZyIsImRlbGVnYXRlIiwiYiIsImwiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsInMiLCJ0eXBlIiwiZG9uZSIsImNhbGwiLCJ3cmFwIiwiaCIsInAiLCJ2IiwidGhpcyIsInkiLCJnZXRQcm90b3R5cGVPZiIsImQiLCJ4IiwibSIsImciLCJmb3JFYWNoIiwidyIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsInJldHVybiIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsIkUiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwiTyIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiY29uc3RydWN0b3IiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJBc3luY0l0ZXJhdG9yIiwiYXN5bmMiLCJQcm9taXNlIiwidG9TdHJpbmciLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInZhbHVlcyIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiY29tcGxldGUiLCJmaW5pc2giLCJjYXRjaCIsImRlbGVnYXRlWWllbGQiLCJleHBvcnRzIiwicmVnZW5lcmF0b3JSdW50aW1lIiwiRnVuY3Rpb24iLCJwYXRoIiwicmVxdWlyZSIsImFyZ3VtZW50cyIsImFwcGx5IiwiQXJyYXkiLCJpc0FycmF5IiwiZnJvbSIsInRlc3QiLCJrZXkiLCJuYXZpZ2F0b3IiLCJwZXJtaXNzaW9ucyIsIm1lZGlhRGV2aWNlcyIsIkRPTUV4Y2VwdGlvbiIsInF1ZXJ5IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInRhcmdldCIsInN0YXRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInQwIiwidDEiLCJnZXRVc2VyTWVkaWEiLCJ0MiIsInQzIiwiYWxsIiwidDQiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9yZXNvbHZlU3BlZWNoUmVjb2duaXRpb24iLCJfaW5zdGFuY2UiLCJfbGlzdGVuZXJzIiwiZW50cmllcyIsImRlZmF1bHRPcHRpb25zIiwiX3Jlc29sdmVTcGVlY2hHcmFtbWFyTGlzdCIsImdldCIsInNldCIsImF1ZGlvIiwic3RhcnQiLCJlcnJvciIsImFib3J0IiwiX2luY2x1ZGVzRXZlbnRUeXBlIiwiZXZlbnRUeXBlcyIsIlJFU1VMVCIsInJlc3VsdHMiLCJ0cmFuc2NyaXB0IiwiY29uY2F0IiwiZmluZCIsIndpbmRvdyIsIlNwZWVjaFJlY29nbml0aW9uIiwid2Via2l0U3BlZWNoUmVjb2duaXRpb24iLCJtb3pTcGVlY2hSZWNvZ25pdGlvbiIsIm1zU3BlZWNoUmVjb2duaXRpb24iLCJTcGVlY2hHcmFtbWFyTGlzdCIsIndlYmtpdFNwZWVjaEdyYW1tYXJMaXN0IiwibW96U3BlZWNoR3JhbW1hckxpc3QiLCJtc1NwZWVjaEdyYW1tYXJMaXN0IiwiZ3JhbW1hcnMiLCJsYW5nIiwiY29udGludW91cyIsImludGVyaW1SZXN1bHRzIiwibWF4QWx0ZXJuYXRpdmVzIiwic2VydmljZVVSSSIsIkFVRElPX0VORCIsIkFVRElPX1NUQVJUIiwiRU5EIiwiRVJST1IiLCJOT19NQVRDSCIsIlNPVU5EX0VORCIsIlNPVU5EX1NUQVJUIiwiU1BFRUNIX0VORCIsIlNQRUVDSF9TVEFSVCIsIlNUQVJUIiwidXNlVm9jYWwiLCJfX3JzSW5zdGFuY2UiLCJyZWYiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIiLCJpc1N1cHBvcnRlZCIsImN1cnJlbnQiLCJjbGVhbnVwIiwidXNlQ2FsbGJhY2siLCJzdWJzY3JpYmUiLCJldmVudFR5cGUiLCJoYW5kbGVyIiwidW5zdWJzY3JpYmUiLCJjbGVhbiIsImdldFRhZyIsImlzU3RyaW5nIiwiaXNOdW1iZXIiLCJpc0Jvb2xlYW4iLCJpc09iamVjdCIsImlzT2JqZWN0TGlrZSIsImlzRGVmaW5lZCIsImlzQmxhbmsiLCJ0cmltIiwidW5kZWZpbmVkIiwiaGFzT3duIiwiS2V5U3RvcmUiLCJfa2V5cyIsIl9rZXlNYXAiLCJ0b3RhbFdlaWdodCIsIm9iaiIsImNyZWF0ZUtleSIsIndlaWdodCIsImlkIiwia2V5SWQiLCJ0b0pTT04iLCJKU09OIiwic3RyaW5naWZ5Iiwic3JjIiwiY3JlYXRlS2V5UGF0aCIsImNyZWF0ZUtleUlkIiwiTUlTU0lOR19LRVlfUFJPUEVSVFkiLCJJTlZBTElEX0tFWV9XRUlHSFRfVkFMVUUiLCJzcGxpdCIsImpvaW4iLCJBZHZhbmNlZE9wdGlvbnMiLCJ1c2VFeHRlbmRlZFNlYXJjaCIsImdldEZuIiwibGlzdCIsImFyciIsImRlZXBHZXQiLCJpbmRleCIsInJlc3VsdCIsImJhc2VUb1N0cmluZyIsImxlbiIsImlnbm9yZUxvY2F0aW9uIiwiaWdub3JlRmllbGROb3JtIiwiQ29uZmlnIiwiaXNDYXNlU2Vuc2l0aXZlIiwiaW5jbHVkZVNjb3JlIiwic2hvdWxkU29ydCIsInNvcnRGbiIsInNjb3JlIiwiaWR4IiwiaW5jbHVkZU1hdGNoZXMiLCJmaW5kQWxsTWF0Y2hlcyIsIm1pbk1hdGNoQ2hhckxlbmd0aCIsImxvY2F0aW9uIiwidGhyZXNob2xkIiwiZGlzdGFuY2UiLCJTUEFDRSIsIkZ1c2VJbmRleCIsIm5vcm0iLCJtYW50aXNzYSIsImNhY2hlIiwiTWFwIiwiTWF0aCIsInBvdyIsIm51bVRva2VucyIsIm1hdGNoIiwiaGFzIiwic3FydCIsInBhcnNlRmxvYXQiLCJyb3VuZCIsImNsZWFyIiwiaXNDcmVhdGVkIiwic2V0SW5kZXhSZWNvcmRzIiwic2V0U291cmNlcyIsImRvY3MiLCJyZWNvcmRzIiwic2V0S2V5cyIsIl9rZXlzTWFwIiwiZG9jIiwiZG9jSW5kZXgiLCJfYWRkU3RyaW5nIiwiX2FkZE9iamVjdCIsImFkZCIsInNpemUiLCJyZW1vdmVBdCIsInNwbGljZSIsImdldFZhbHVlRm9ySXRlbUF0S2V5SWQiLCJpdGVtIiwicmVjb3JkIiwiJCIsImtleUluZGV4Iiwic3ViUmVjb3JkcyIsInN0YWNrIiwibmVzdGVkQXJySW5kZXgiLCJzdWJSZWNvcmQiLCJrIiwiY3JlYXRlSW5kZXgiLCJteUluZGV4IiwibWFwIiwiY29tcHV0ZVNjb3JlIiwicGF0dGVybiIsImVycm9ycyIsImN1cnJlbnRMb2NhdGlvbiIsImV4cGVjdGVkTG9jYXRpb24iLCJhY2N1cmFjeSIsInByb3hpbWl0eSIsImFicyIsIk1BWF9CSVRTIiwic2VhcmNoIiwidGV4dCIsInBhdHRlcm5BbHBoYWJldCIsInBhdHRlcm5MZW4iLCJ0ZXh0TGVuIiwibWF4IiwibWluIiwiY3VycmVudFRocmVzaG9sZCIsImJlc3RMb2NhdGlvbiIsImNvbXB1dGVNYXRjaGVzIiwibWF0Y2hNYXNrIiwiaW5kZXhPZiIsImxhc3RCaXRBcnIiLCJmaW5hbFNjb3JlIiwiYmluTWF4IiwibWFzayIsImJpbk1pbiIsImJpbk1pZCIsImZsb29yIiwiYml0QXJyIiwiaiIsImNoYXJNYXRjaCIsImlzTWF0Y2giLCJpbmRpY2VzIiwibWF0Y2htYXNrIiwiZW5kIiwiY29udmVydE1hc2tUb0luZGljZXMiLCJjcmVhdGVQYXR0ZXJuQWxwaGFiZXQiLCJjaGFyIiwiQml0YXBTZWFyY2giLCJvcHRpb25zIiwidG9Mb3dlckNhc2UiLCJjaHVua3MiLCJhZGRDaHVuayIsInN0YXJ0SW5kZXgiLCJhbHBoYWJldCIsInJlbWFpbmRlciIsInN1YnN0ciIsInNlYXJjaEluIiwiYWxsSW5kaWNlcyIsInRvdGFsU2NvcmUiLCJoYXNNYXRjaGVzIiwiQmFzZU1hdGNoIiwic3RhdGljIiwiZ2V0TWF0Y2giLCJtdWx0aVJlZ2V4Iiwic2luZ2xlUmVnZXgiLCJleHAiLCJtYXRjaGVzIiwiRnV6enlNYXRjaCIsInN1cGVyIiwiX2JpdGFwU2VhcmNoIiwiSW5jbHVkZU1hdGNoIiwic2VhcmNoZXJzIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic2VhcmNoZXJzTGVuIiwiU1BBQ0VfUkUiLCJNdWx0aU1hdGNoU2V0IiwiU2V0IiwiRXh0ZW5kZWRTZWFyY2giLCJxdWVyeUl0ZW0iLCJmb3VuZCIsInNlYXJjaGVyIiwidG9rZW4iLCJpc011bHRpTWF0Y2giLCJpc1NpbmdsZU1hdGNoIiwicGFyc2VRdWVyeSIsIm51bU1hdGNoZXMiLCJxTGVuIiwicExlbiIsInJlZ2lzdGVyZWRTZWFyY2hlcnMiLCJjcmVhdGVTZWFyY2hlciIsInNlYXJjaGVyQ2xhc3MiLCJjb25kaXRpb24iLCJMb2dpY2FsT3BlcmF0b3IiLCJLZXlUeXBlIiwiaXNFeHByZXNzaW9uIiwiY29udmVydFRvRXhwbGljaXQiLCJMb2dpY2FsT3BlcmF0b3JfQU5EIiwicGFyc2UiLCJhdXRvIiwiaXNRdWVyeVBhdGgiLCJpc1BhdGgiLCJpc0xlYWYiLCJMT0dJQ0FMX1NFQVJDSF9JTlZBTElEX1FVRVJZX0ZPUl9LRVkiLCJub2RlIiwiY2hpbGRyZW4iLCJvcGVyYXRvciIsInRyYW5zZm9ybU1hdGNoZXMiLCJkYXRhIiwicmVmSW5kZXgiLCJ0cmFuc2Zvcm1TY29yZSIsIkZ1c2UiLCJfa2V5U3RvcmUiLCJzZXRDb2xsZWN0aW9uIiwiX2RvY3MiLCJfbXlJbmRleCIsInJlbW92ZSIsInByZWRpY2F0ZSIsImdldEluZGV4IiwibGltaXQiLCJfc2VhcmNoU3RyaW5nTGlzdCIsIl9zZWFyY2hPYmplY3RMaXN0IiwiX3NlYXJjaExvZ2ljYWwiLCJOdW1iZXIiLCJFUFNJTE9OIiwiY29tcHV0ZVNjb3JlJDEiLCJzb3J0IiwidHJhbnNmb3JtZXJzIiwidHJhbnNmb3JtZXIiLCJmb3JtYXQiLCJleHByZXNzaW9uIiwiZXZhbHVhdGUiLCJfZmluZE1hdGNoZXMiLCJyZXMiLCJjaGlsZCIsInJlc3VsdE1hcCIsImV4cFJlc3VsdHMiLCJ2ZXJzaW9uIiwicGFyc2VJbmRleCIsImNvbmZpZyIsImFyZ3MiLCJyZWdpc3RlciIsIkljb24iLCJfcmVmIiwiY29sb3IiLCJhY3RpdmVDb2xvciIsImlzQWN0aXZlIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwieG1sbnMiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJmaWxsIiwiY3giLCJjeSIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImJvb2wiLCJkZWZhdWx0UHJvcHMiLCJWb2NhbCIsImNvbW1hbmRzIiwidGltZW91dCIsImFyaWFMYWJlbCIsInN0eWxlIiwiY2xhc3NOYW1lIiwib3V0bGluZVN0eWxlIiwib25TdGFydCIsIm9uRW5kIiwib25TcGVlY2hTdGFydCIsIm9uU3BlZWNoRW5kIiwib25SZXN1bHQiLCJvbkVycm9yIiwib25Ob01hdGNoIiwiYnV0dG9uUmVmIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwidXNlU3RhdGUiLCJpc0xpc3RlbmluZyIsInNldElzTGlzdGVuaW5nIiwiX3VzZVZvY2FsMiQiLCJ0cmlnZ2VyQ29tbWFuZCIsIl9PYmplY3QkZW50cmllcyIsInByZWNpc2lvbiIsInJlZHVjZSIsImFjYyIsIl9yZWYyIiwiX2RlZmluZVByb3BlcnR5IiwiaW5wdXQiLCJmdXNlIiwiX2NvbW1hbmRzJGtleSIsIl9jb21tYW5kcyIsInVzZUNvbW1hbmRzIiwiX29uRW5kIiwic3RvcFRpbWVyIiwic3RvcFJlY29nbml0aW9uIiwiX29uU3RhcnQiLCJfb25TcGVlY2hTdGFydCIsIl9vblNwZWVjaEVuZCIsIl9vblJlc3VsdCIsIl9vbkVycm9yIiwiX29uTm9NYXRjaCIsIl91c2VUaW1lb3V0IiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsInVzZVRpbWVvdXQiLCJfdXNlVGltZW91dDIiLCJzdGFydFRpbWVyIiwic3RhcnRSZWNvZ25pdGlvbiIsIl9vbkNsaWNrIiwiX29uRm9jdXMiLCJvdXRsaW5lIiwiX29uQmx1ciIsImV2ZW50IiwiX3JlbmRlckNoaWxkcmVuIiwiaXNGdW5jdGlvbiIsImlzVmFsaWRFbGVtZW50IiwiY2xvbmVFbGVtZW50IiwiX29iamVjdFNwcmVhZCIsIm9uQ2xpY2siLCJyb2xlIiwiYmFja2dyb3VuZCIsImJvcmRlciIsInBhZGRpbmciLCJjdXJzb3IiLCJvbkZvY3VzIiwib25CbHVyIiwiaWNvbkNvbG9yIiwib2JqZWN0T2YiLCJmdW5jIiwib2JqZWN0IiwibnVtYmVyIl0sIm1hcHBpbmdzIjoia2lFQUFBLElBQUlBLEVBQUUsU0FBU0EsRUFBRUMsRUFBRUMsR0FBRyxnQkFBcU5GLEdBQUcsSUFBSUMsRUFBRSxTQUFTRCxHQUFHLElBQUlDLEVBQUVFLE9BQU9DLFVBQVVGLEVBQUVELEVBQUVJLGVBQWVDLEVBQUUsbUJBQW1CQyxPQUFPQSxPQUFPLEdBQUdDLEVBQUVGLEVBQUVH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
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`react`)):typeof define==`function`&&define.amd?define([`exports`,`react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.ReactVocal={},e.React))})(this,function(e,t){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),l=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;l<u;l++)d=c[l],!s.call(e,d)&&d!==n&&r(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e};t=((e,t,i)=>(i=e==null?{}:n(o(e)),l(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)))(t);var u=function(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw Error(`Dynamic requires are not currently supported by @rollup/plugin-commonjs`)}(t==null&&n.path)}},n.exports),n.exports}((function(e){var t=function(e){var t=Object.prototype,n=t.hasOwnProperty,r=typeof Symbol==`function`?Symbol:{},i=r.iterator||`@@iterator`,a=r.asyncIterator||`@@asyncIterator`,o=r.toStringTag||`@@toStringTag`;function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},``)}catch{s=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var i=t&&t.prototype instanceof d?t:d,a=Object.create(i.prototype);return a._invoke=function(e,t,n){var r=`suspendedStart`;return function(i,a){if(r===`executing`)throw Error(`Generator is already running`);if(r===`completed`){if(i===`throw`)throw a;return T()}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var s=b(o,n);if(s){if(s===u)continue;return s}}if(n.method===`next`)n.sent=n._sent=n.arg;else if(n.method===`throw`){if(r===`suspendedStart`)throw r=`completed`,n.arg;n.dispatchException(n.arg)}else n.method===`return`&&n.abrupt(`return`,n.arg);r=`executing`;var c=l(e,t,n);if(c.type===`normal`){if(r=n.done?`completed`:`suspendedYield`,c.arg===u)continue;return{value:c.arg,done:n.done}}c.type===`throw`&&(r=`completed`,n.method=`throw`,n.arg=c.arg)}}}(e,n,new C(r||[])),a}function l(e,t,n){try{return{type:`normal`,arg:e.call(t,n)}}catch(e){return{type:`throw`,arg:e}}}e.wrap=c;var u={};function d(){}function f(){}function p(){}var m={};m[i]=function(){return this};var h=Object.getPrototypeOf,g=h&&h(h(w([])));g&&g!==t&&n.call(g,i)&&(m=g);var _=p.prototype=d.prototype=Object.create(m);function v(e){[`next`,`throw`,`return`].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function y(e,t){var r;this._invoke=function(i,a){function o(){return new t((function(r,o){(function r(i,a,o,s){var c=l(e[i],e,a);if(c.type!==`throw`){var u=c.arg,d=u.value;return d&&typeof d==`object`&&n.call(d,`__await`)?t.resolve(d.__await).then((function(e){r(`next`,e,o,s)}),(function(e){r(`throw`,e,o,s)})):t.resolve(d).then((function(e){u.value=e,o(u)}),(function(e){return r(`throw`,e,o,s)}))}s(c.arg)})(i,a,r,o)}))}return r=r?r.then(o,o):o()}}function b(e,t){var n=e.iterator[t.method];if(n===void 0){if(t.delegate=null,t.method===`throw`){if(e.iterator.return&&(t.method=`return`,t.arg=void 0,b(e,t),t.method===`throw`))return u;t.method=`throw`,t.arg=TypeError(`The iterator does not provide a 'throw' method`)}return u}var r=l(n,e.iterator,t.arg);if(r.type===`throw`)return t.method=`throw`,t.arg=r.arg,t.delegate=null,u;var i=r.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,t.method!==`return`&&(t.method=`next`,t.arg=void 0),t.delegate=null,u):i:(t.method=`throw`,t.arg=TypeError(`iterator result is not an object`),t.delegate=null,u)}function x(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 S(e){var t=e.completion||{};t.type=`normal`,delete t.arg,e.completion=t}function C(e){this.tryEntries=[{tryLoc:`root`}],e.forEach(x,this),this.reset(!0)}function w(e){if(e){var t=e[i];if(t)return t.call(e);if(typeof e.next==`function`)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:T}}function T(){return{value:void 0,done:!0}}return f.prototype=_.constructor=p,p.constructor=f,f.displayName=s(p,o,`GeneratorFunction`),e.isGeneratorFunction=function(e){var t=typeof e==`function`&&e.constructor;return!!t&&(t===f||(t.displayName||t.name)===`GeneratorFunction`)},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,s(e,o,`GeneratorFunction`)),e.prototype=Object.create(_),e},e.awrap=function(e){return{__await:e}},v(y.prototype),y.prototype[a]=function(){return this},e.AsyncIterator=y,e.async=function(t,n,r,i,a){a===void 0&&(a=Promise);var o=new y(c(t,n,r,i),a);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},v(_),s(_,o,`Generator`),_[i]=function(){return this},_.toString=function(){return`[object Generator]`},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=w,C.prototype={constructor:C,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(S),!e)for(var t in this)t.charAt(0)===`t`&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if(e.type===`throw`)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return o.type=`throw`,o.arg=e,t.next=n,r&&(t.method=`next`,t.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],o=a.completion;if(a.tryLoc===`root`)return r(`end`);if(a.tryLoc<=this.prev){var s=n.call(a,`catchLoc`),c=n.call(a,`finallyLoc`);if(s&&c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!c)throw Error(`try statement without catch or finally`);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,`finallyLoc`)&&this.prev<i.finallyLoc){var a=i;break}}a&&(e===`break`||e===`continue`)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method=`next`,this.next=a.finallyLoc,u):this.complete(o)},complete:function(e,t){if(e.type===`throw`)throw e.arg;return e.type===`break`||e.type===`continue`?this.next=e.arg:e.type===`return`?(this.rval=this.arg=e.arg,this.method=`return`,this.next=`end`):e.type===`normal`&&t&&(this.next=t),u},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),S(n),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if(r.type===`throw`){var i=r.arg;S(n)}return i}}throw Error(`illegal catch attempt`)},delegateYield:function(e,t,n){return this.delegate={iterator:w(e),resultName:t,nextLoc:n},this.method===`next`&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=t}catch{Function(`r`,`regeneratorRuntime = r`)(t)}}));function d(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}var f=function(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){d(a,r,i,o,s,`next`,e)}function s(e){d(a,r,i,o,s,`throw`,e)}o(void 0)}))}},p=function(e){if(Array.isArray(e))return e},m=function(e,t){if(typeof Symbol<`u`&&Symbol.iterator in Object(e)){var n=[],r=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){i=!0,a=e}finally{try{r||s.return==null||s.return()}finally{if(i)throw a}}return n}},h=function(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r},g=function(e,t){if(e){if(typeof e==`string`)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}},_=function(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)},v=function(e,t){return p(e)||m(e,t)||g(e,t)||_()},y=function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)};function b(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var x=function(e,t,n){return t&&b(e.prototype,t),n&&b(e,n),e},S=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},C=function(){return!!navigator.permissions},w=function(){return!!navigator.mediaDevices};function T(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function E(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){T(a,r,i,o,s,`next`,e)}function s(e){T(a,r,i,o,s,`throw`,e)}o(void 0)}))}}function D(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(typeof Symbol<`u`&&Symbol.iterator in Object(e)){var n=[],r=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){i=!0,a=e}finally{try{r||s.return==null||s.return()}finally{if(i)throw a}}return n}}(e,t)||function(e,t){if(e){if(typeof e==`string`)return O(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?O(e,t):void 0}}(e,t)||function(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
3
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function O(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var k=function(){var e=E(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(`return`,new Promise(function(){var e=E(regeneratorRuntime.mark((function e(n,r){var i,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return C()||r(new DOMException(`Navigator API: permissions not supported`,`NOT_SUPPORTED_ERR`)),e.prev=1,e.next=4,navigator.permissions.query({name:t});case 4:i=e.sent,a=function e(t){i.removeEventListener(`change`,e),A(t.target.state,n,r)},i.addEventListener(`change`,a),A(i.state,n,r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),r(e.t0);case 13:case`end`:return e.stop()}}),e,null,[[1,10]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case`end`:return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),A=function(e,t,n){switch(e){case`denied`:n(new DOMException(`Permission denied`,`NOT_ALLOWED_ERR`));break;default:t(e)}},j=function(){var e=E(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(`return`,new Promise(function(){var e=E(regeneratorRuntime.mark((function e(r,i){var a,o,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return C()&&w()||i(new DOMException(`Navigator API: permissions or Navigator API: mediaDevices not supported`,`NOT_SUPPORTED_ERR`)),e.prev=1,e.t0=Promise,e.next=5,k(t);case 5:return e.t1=e.sent,e.next=8,navigator.mediaDevices.getUserMedia(n);case 8:return e.t2=e.sent,e.t3=[e.t1,e.t2],e.next=12,e.t0.all.call(e.t0,e.t3);case 12:a=e.sent,o=D(a,2),s=o[1],r(s),e.next=21;break;case 18:e.prev=18,e.t4=e.catch(1),i(e.t4);case 21:case`end`:return e.stop()}}),e,null,[[1,18]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case`end`:return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}();function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?M(Object(n),!0).forEach((function(t){S(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var P=function(){function e(t){var n=this;y(this,e),S(this,`_instance`,null),S(this,`_listeners`,null);var r=e._resolveSpeechRecognition();if(!r)throw new DOMException(`SpeechRecognition not supported`,`NOT_SUPPORTED_ERR`);this._instance=new r,this._listeners={},Object.entries(N(N({},e.defaultOptions),t||{})).forEach((function(t){var r=v(t,2),i=r[0],a=r[1];if(i===`grammars`&&!a){var o=e._resolveSpeechGrammarList();o&&(a=new o)}n._instance[i]=a}))}var t;return x(e,null,[{key:`isSupported`,get:function(){return!!e._resolveSpeechRecognition()&&!!C()&&!!w()},set:function(e){throw Error(`You cannot set isSupported directly.`)}}]),x(e,[{key:`start`,value:(t=f(u.mark((function e(){var t;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._instance){e.next=14;break}return e.prev=1,e.next=4,j(`microphone`,{audio:!0});case 4:if(e.sent){e.next=7;break}throw Error(`Unable to retrieve the stream from media device`);case 7:this._instance.start(),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(1),(t=this._listeners.error)&&t(e.t0);case 14:return e.abrupt(`return`,this);case 15:case`end`:return e.stop()}}),e,this,[[1,10]])}))),function(){return t.apply(this,arguments)})},{key:`stop`,value:function(){return this._instance&&this._instance.stop(),this}},{key:`abort`,value:function(){return this._instance&&this._instance.abort(),this}},{key:`addEventListener`,value:function(t,n){var r=this;if(this._instance&&this._includesEventType(t)){this._listeners[t]&&this.removeEventListener(t);var i=function(i){var a=[];t===e.eventTypes.RESULT&&i.results&&i.results.length>0&&a.push(i.results[0][0].transcript),n&&n.apply(r,[i].concat(a))};this._instance.addEventListener(t,i),this._listeners[t]=i}return this}},{key:`removeEventListener`,value:function(e){var t=this._listeners[e];return this._instance.removeEventListener(e,t),delete this._listeners[e],this}},{key:`cleanup`,value:function(){var e=this;return this.stop(),Object.keys(this._listeners).forEach((function(t){return e.removeEventListener(t)})),this._instance=null,this}},{key:`_includesEventType`,value:function(t){return!!Object.values(e.eventTypes).find((function(e){return e===t}))}},{key:`instance`,get:function(){return this._instance},set:function(e){throw Error(`You cannot set instance directly.`)}}],[{key:`_resolveSpeechRecognition`,value:function(){return window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition}},{key:`_resolveSpeechGrammarList`,value:function(){return window.SpeechGrammarList||window.webkitSpeechGrammarList||window.mozSpeechGrammarList||window.msSpeechGrammarList}}]),e}();S(P,`defaultOptions`,{grammars:null,lang:`en-US`,continuous:!1,interimResults:!1,maxAlternatives:1,serviceURI:null}),S(P,`eventTypes`,{AUDIO_END:`audioend`,AUDIO_START:`audiostart`,END:`end`,ERROR:`error`,NO_MATCH:`nomatch`,RESULT:`result`,SOUND_END:`soundend`,SOUND_START:`soundstart`,SPEECH_END:`speechend`,SPEECH_START:`speechstart`,START:`start`});var ee=e=>typeof e==`function`,F=(e=`en-US`,n=null,r=null)=>{let i=(0,t.useRef)(null);return(0,t.useEffect)(()=>{if(P.isSupported)return i.current=r||new P({lang:e,grammars:n}),()=>{i.current.abort(),i.current.cleanup()}},[e,n,r]),[i,{start:(0,t.useCallback)(()=>{i.current&&i.current.start()},[]),stop:(0,t.useCallback)(()=>{i.current&&i.current.stop()},[]),abort:(0,t.useCallback)(()=>{i.current&&i.current.abort()},[]),subscribe:(0,t.useCallback)((e,t)=>{i.current&&i.current.addEventListener(e,t)},[]),unsubscribe:(0,t.useCallback)((e,t)=>{i.current&&i.current.removeEventListener(e,t)},[]),clean:(0,t.useCallback)(()=>{i.current&&i.current.cleanup()},[])}]},te=(e,n=0)=>{let r=(0,t.useRef)(-1),i=(0,t.useCallback)(()=>{clearTimeout(r.current),r.current=-1},[]),a=(0,t.useCallback)(()=>{i(),r.current=setTimeout(e,n)},[e,n,i]);return(0,t.useEffect)(()=>i,[i]),[a,i]};function I(e){return Array.isArray?Array.isArray(e):re(e)===`[object Array]`}function ne(e){if(typeof e==`string`)return e;if(typeof e==`bigint`)return e.toString();let t=e+``;return t==`0`&&1/e==-1/0?`-0`:t}function L(e){return e==null?``:ne(e)}function R(e){return typeof e==`string`}function z(e){return typeof e==`number`}function B(e){return e===!0||e===!1||H(e)&&re(e)==`[object Boolean]`}function V(e){return typeof e==`object`}function H(e){return V(e)&&e!==null}function U(e){return e!=null}function W(e){return!e.trim().length}function re(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var ie=`Incorrect 'index' type`,ae=e=>`Invalid value for key ${e}`,oe=e=>`Pattern length exceeds max of ${e}.`,se=e=>`Missing ${e} property in key`,ce=e=>`Property 'weight' in key '${e}' must be a positive integer`,le=Object.prototype.hasOwnProperty,ue=class{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(e=>{let n=de(e);this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight}),this._keys.forEach(e=>{e.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function de(e){let t=null,n=null,r=null,i=1,a=null;if(R(e)||I(e))r=e,t=fe(e),n=pe(e);else{if(!le.call(e,`name`))throw Error(se(`name`));let o=e.name;if(r=o,le.call(e,`weight`)&&(i=e.weight,i<=0))throw Error(ce(o));t=fe(o),n=pe(o),a=e.getFn}return{path:t,id:n,weight:i,src:r,getFn:a}}function fe(e){return I(e)?e:e.split(`.`)}function pe(e){return I(e)?e.join(`.`):e}function me(e,t){let n=[],r=!1,i=(e,t,a,o)=>{if(U(e))if(!t[a])n.push(o===void 0?e:{v:e,i:o});else{let s=e[t[a]];if(!U(s))return;if(a===t.length-1&&(R(s)||z(s)||B(s)||typeof s==`bigint`))n.push(o===void 0?L(s):{v:L(s),i:o});else if(I(s)){r=!0;for(let e=0,n=s.length;e<n;e+=1)i(s[e],t,a+1,e)}else t.length&&i(s,t,a+1,o)}};return i(e,R(t)?t.split(`.`):t,0),r?n:n[0]}var he={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},ge={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1},_e={location:0,threshold:.6,distance:100},ve={useExtendedSearch:!1,useTokenSearch:!1,getFn:me,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},G=Object.freeze({...ge,...he,..._e,...ve}),ye=/[^ ]+/g;function be(e=1,t=3){let n=new Map,r=10**t;return{get(t){let i=t.match(ye).length;if(n.has(i))return n.get(i);let a=1/i**(.5*e),o=parseFloat(Math.round(a*r)/r);return n.set(i,o),o},clear(){n.clear()}}}var K=class{constructor({getFn:e=G.getFn,fieldNormWeight:t=G.fieldNormWeight}={}){this.norm=be(t,3),this.getFn=e,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((e,t)=>{this._keysMap[e.id]=t})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,R(this.docs[0])?this.docs.forEach((e,t)=>{this._addString(e,t)}):this.docs.forEach((e,t)=>{this._addObject(e,t)}),this.norm.clear())}add(e){let t=this.size();R(e)?this._addString(e,t):this._addObject(e,t)}removeAt(e){this.records.splice(e,1);for(let t=e,n=this.size();t<n;t+=1)--this.records[t].i}removeAll(e){for(let t=e.length-1;t>=0;--t)this.records.splice(e[t],1);for(let e=0,t=this.records.length;e<t;e+=1)this.records[e].i=e}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_addString(e,t){if(!U(e)||W(e))return;let n={v:e,i:t,n:this.norm.get(e)};this.records.push(n)}_addObject(e,t){let n={i:t,$:{}};this.keys.forEach((t,r)=>{let i=t.getFn?t.getFn(e):this.getFn(e,t.path);if(U(i)){if(I(i)){let e=[];for(let t=0,n=i.length;t<n;t+=1){let n=i[t];if(U(n)){if(R(n)){if(!W(n)){let r={v:n,i:t,n:this.norm.get(n)};e.push(r)}}else if(U(n.v)){let t=R(n.v)?n.v:L(n.v);if(!W(t)){let r={v:t,i:n.i,n:this.norm.get(t)};e.push(r)}}}}n.$[r]=e}else if(R(i)&&!W(i)){let e={v:i,n:this.norm.get(i)};n.$[r]=e}}}),this.records.push(n)}toJSON(){return{keys:this.keys.map(({getFn:e,...t})=>t),records:this.records}}};function xe(e,t,{getFn:n=G.getFn,fieldNormWeight:r=G.fieldNormWeight}={}){let i=new K({getFn:n,fieldNormWeight:r});return i.setKeys(e.map(de)),i.setSources(t),i.create(),i}function Se(e,{getFn:t=G.getFn,fieldNormWeight:n=G.fieldNormWeight}={}){let{keys:r,records:i}=e,a=new K({getFn:t,fieldNormWeight:n});return a.setKeys(r),a.setIndexRecords(i),a}function Ce(e=[],t=G.minMatchCharLength){let n=[],r=-1,i=-1,a=0;for(let o=e.length;a<o;a+=1){let o=e[a];o&&r===-1?r=a:!o&&r!==-1&&(i=a-1,i-r+1>=t&&n.push([r,i]),r=-1)}return e[a-1]&&a-r>=t&&n.push([r,a-1]),n}var q=32;function we(e,t,n,{location:r=G.location,distance:i=G.distance,threshold:a=G.threshold,findAllMatches:o=G.findAllMatches,minMatchCharLength:s=G.minMatchCharLength,includeMatches:c=G.includeMatches,ignoreLocation:l=G.ignoreLocation}={}){if(t.length>q)throw Error(oe(q));let u=t.length,d=e.length,f=Math.max(0,Math.min(r,d)),p=a,m=f,h=(e,t)=>{let n=e/u;if(l)return n;let r=Math.abs(f-t);return i?n+r/i:r?1:n},g=s>1||c,_=g?Array(d):[],v;for(;(v=e.indexOf(t,m))>-1;){let e=h(0,v);if(p=Math.min(e,p),m=v+u,g){let e=0;for(;e<u;)_[v+e]=1,e+=1}}m=-1;let y=[],b=1,x=u+d,S=1<<u-1;for(let t=0;t<u;t+=1){let r=0,i=x;for(;r<i;)h(t,f+i)<=p?r=i:x=i,i=Math.floor((x-r)/2+r);x=i;let a=Math.max(1,f-i+1),s=o?d:Math.min(f+i,d)+u,c=Array(s+2);c[s+1]=(1<<t)-1;for(let r=s;r>=a;--r){let i=r-1,o=n[e[i]];if(g&&(_[i]=+!!o),c[r]=(c[r+1]<<1|1)&o,t&&(c[r]|=(y[r+1]|y[r])<<1|1|y[r+1]),c[r]&S&&(b=h(t,i),b<=p)){if(p=b,m=i,m<=f)break;a=Math.max(1,2*f-m)}}if(h(t+1,f)>p)break;y=c}let C={isMatch:m>=0,score:Math.max(.001,b)};if(g){let e=Ce(_,s);e.length?c&&(C.indices=e):C.isMatch=!1}return C}function Te(e){let t={};for(let n=0,r=e.length;n<r;n+=1){let i=e.charAt(n);t[i]=(t[i]||0)|1<<r-n-1}return t}function Ee(e){if(e.length<=1)return e;e.sort((e,t)=>e[0]-t[0]||e[1]-t[1]);let t=[e[0]];for(let n=1,r=e.length;n<r;n+=1){let r=t[t.length-1],i=e[n];i[0]<=r[1]+1?r[1]=Math.max(r[1],i[1]):t.push(i)}return t}var De={ł:`l`,Ł:`L`,đ:`d`,Đ:`D`,ø:`o`,Ø:`O`,ħ:`h`,Ħ:`H`,ŧ:`t`,Ŧ:`T`,ı:`i`,ß:`ss`},Oe=RegExp(`[`+Object.keys(De).join(``)+`]`,`g`),J=String.prototype.normalize?e=>e.normalize(`NFD`).replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,``).replace(Oe,e=>De[e]):e=>e,ke=class{constructor(e,{location:t=G.location,threshold:n=G.threshold,distance:r=G.distance,includeMatches:i=G.includeMatches,findAllMatches:a=G.findAllMatches,minMatchCharLength:o=G.minMatchCharLength,isCaseSensitive:s=G.isCaseSensitive,ignoreDiacritics:c=G.ignoreDiacritics,ignoreLocation:l=G.ignoreLocation}={}){if(this.options={location:t,threshold:n,distance:r,includeMatches:i,findAllMatches:a,minMatchCharLength:o,isCaseSensitive:s,ignoreDiacritics:c,ignoreLocation:l},e=s?e:e.toLowerCase(),e=c?J(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;let u=(e,t)=>{this.chunks.push({pattern:e,alphabet:Te(e),startIndex:t})},d=this.pattern.length;if(d>q){let e=0,t=d%q,n=d-t;for(;e<n;)u(this.pattern.substr(e,q),e),e+=q;if(t){let e=d-q;u(this.pattern.substr(e),e)}}else u(this.pattern,0)}searchIn(e){let{isCaseSensitive:t,ignoreDiacritics:n,includeMatches:r}=this.options;if(e=t?e:e.toLowerCase(),e=n?J(e):e,this.pattern===e){let t={isMatch:!0,score:0};return r&&(t.indices=[[0,e.length-1]]),t}let{location:i,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:c,ignoreLocation:l}=this.options,u=[],d=0,f=!1;this.chunks.forEach(({pattern:t,alphabet:n,startIndex:p})=>{let{isMatch:m,score:h,indices:g}=we(e,t,n,{location:i+p,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:c,includeMatches:r,ignoreLocation:l});m&&(f=!0),d+=h,m&&g&&u.push(...g)});let p={isMatch:f,score:f?d/this.chunks.length:1};return f&&r&&(p.indices=Ee(u)),p}},Y=class{constructor(e){this.pattern=e}static isMultiMatch(e){return Ae(e,this.multiRegex)}static isSingleMatch(e){return Ae(e,this.singleRegex)}search(e){return{isMatch:!1,score:1}}};function Ae(e,t){let n=e.match(t);return n?n[1]:null}var je=class extends Y{constructor(e){super(e)}static get type(){return`exact`}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){let t=e===this.pattern;return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}},Me=class extends Y{constructor(e){super(e)}static get type(){return`inverse-exact`}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){let t=e.indexOf(this.pattern)===-1;return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},Ne=class extends Y{constructor(e){super(e)}static get type(){return`prefix-exact`}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){let t=e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,this.pattern.length-1]}}},Pe=class extends Y{constructor(e){super(e)}static get type(){return`inverse-prefix-exact`}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){let t=!e.startsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},Fe=class extends Y{constructor(e){super(e)}static get type(){return`suffix-exact`}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){let t=e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[e.length-this.pattern.length,e.length-1]}}},Ie=class extends Y{constructor(e){super(e)}static get type(){return`inverse-suffix-exact`}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){let t=!e.endsWith(this.pattern);return{isMatch:t,score:+!t,indices:[0,e.length-1]}}},Le=class extends Y{constructor(e,{location:t=G.location,threshold:n=G.threshold,distance:r=G.distance,includeMatches:i=G.includeMatches,findAllMatches:a=G.findAllMatches,minMatchCharLength:o=G.minMatchCharLength,isCaseSensitive:s=G.isCaseSensitive,ignoreDiacritics:c=G.ignoreDiacritics,ignoreLocation:l=G.ignoreLocation}={}){super(e),this._bitapSearch=new ke(e,{location:t,threshold:n,distance:r,includeMatches:i,findAllMatches:a,minMatchCharLength:o,isCaseSensitive:s,ignoreDiacritics:c,ignoreLocation:l})}static get type(){return`fuzzy`}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}},Re=class extends Y{constructor(e){super(e)}static get type(){return`include`}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let t=0,n,r=[],i=this.pattern.length;for(;(n=e.indexOf(this.pattern,t))>-1;)t=n+i,r.push([n,t-1]);let a=!!r.length;return{isMatch:a,score:+!a,indices:r}}},ze=[je,Re,Ne,Pe,Ie,Fe,Me,Le],Be=ze.length,Ve=`\0`,He=`|`;function Ue(e){let t=[],n=e.length,r=0;for(;r<n;){for(;r<n&&e[r]===` `;)r++;if(r>=n)break;let i=r;for(;i<n&&e[i]!==` `&&e[i]!==`"`;)i++;if(i<n&&e[i]===`"`){for(i++;i<n;){if(e[i]===`"`){let t=i+1;if(t>=n||e[t]===` `){i++;break}if(e[t]===`$`&&(t+1>=n||e[t+1]===` `)){i+=2;break}}i++}t.push(e.substring(r,i)),r=i}else{for(;i<n&&e[i]!==` `;)i++;t.push(e.substring(r,i)),r=i}}return t}function We(e,t={}){return e.replace(/\\\|/g,Ve).split(He).map(e=>{let n=Ue(e.replace(/\u0000/g,`|`).trim()).filter(e=>e&&!!e.trim()),r=[];for(let e=0,i=n.length;e<i;e+=1){let i=n[e],a=!1,o=-1;for(;!a&&++o<Be;){let e=ze[o],n=e.isMultiMatch(i);n&&(r.push(new e(n,t)),a=!0)}if(!a)for(o=-1;++o<Be;){let e=ze[o],n=e.isSingleMatch(i);if(n){r.push(new e(n,t));break}}}return r})}var Ge=new Set([Le.type,Re.type]),Ke=class{constructor(e,{isCaseSensitive:t=G.isCaseSensitive,ignoreDiacritics:n=G.ignoreDiacritics,includeMatches:r=G.includeMatches,minMatchCharLength:i=G.minMatchCharLength,ignoreLocation:a=G.ignoreLocation,findAllMatches:o=G.findAllMatches,location:s=G.location,threshold:c=G.threshold,distance:l=G.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:n,includeMatches:r,minMatchCharLength:i,findAllMatches:o,ignoreLocation:a,location:s,threshold:c,distance:l},e=t?e:e.toLowerCase(),e=n?J(e):e,this.pattern=e,this.query=We(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){let t=this.query;if(!t)return{isMatch:!1,score:1};let{includeMatches:n,isCaseSensitive:r,ignoreDiacritics:i}=this.options;e=r?e:e.toLowerCase(),e=i?J(e):e;let a=0,o=[],s=0,c=!1;for(let r=0,i=t.length;r<i;r+=1){let i=t[r];o.length=0,a=0,c=!1;for(let t=0,r=i.length;t<r;t+=1){let r=i[t],{isMatch:l,indices:u,score:d}=r.search(e);if(l){a+=1,s+=d;let e=r.constructor.type;e.startsWith(`inverse`)&&(c=!0),n&&(Ge.has(e)?o.push(...u):o.push(u))}else{s=0,a=0,o.length=0,c=!1;break}}if(a){let e={isMatch:!0,score:s/a};return c&&(e.hasInverse=!0),n&&(e.indices=Ee(o)),e}}return{isMatch:!1,score:1}}},qe=[];function Je(...e){qe.push(...e)}function X(e,t){for(let n=0,r=qe.length;n<r;n+=1){let r=qe[n];if(r.condition(e,t))return new r(e,t)}return new ke(e,t)}var Z={AND:`$and`,OR:`$or`},Ye={PATH:`$path`,PATTERN:`$val`},Xe=e=>!!(e[Z.AND]||e[Z.OR]),Ze=e=>!!e[Ye.PATH],Qe=e=>!I(e)&&V(e)&&!Xe(e),$e=e=>({[Z.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function et(e,t,{auto:n=!0}={}){let r=e=>{if(R(e)){let r={keyId:null,pattern:e};return n&&(r.searcher=X(e,t)),r}let i=Object.keys(e),a=Ze(e);if(!a&&i.length>1&&!Xe(e))return r($e(e));if(Qe(e)){let r=a?e[Ye.PATH]:i[0],o=a?e[Ye.PATTERN]:e[r];if(!R(o))throw Error(ae(r));let s={keyId:pe(r),pattern:o};return n&&(s.searcher=X(o,t)),s}let o={children:[],operator:i[0]};return i.forEach(t=>{let n=e[t];I(n)&&n.forEach(e=>{o.children.push(r(e))})}),o};return Xe(e)||(e=$e(e)),r(e)}function tt(e,{ignoreFieldNorm:t=G.ignoreFieldNorm}){let n=1;return e.forEach(({key:e,norm:r,score:i})=>{let a=e?e.weight:null;n*=(i===0&&a?2**-52:i)**+((a||1)*(t?1:r))}),n}function nt(e,{ignoreFieldNorm:t=G.ignoreFieldNorm}){e.forEach(e=>{e.score=tt(e.matches,{ignoreFieldNorm:t})})}var rt=class{constructor(e){this.limit=e,this.heap=[]}get size(){return this.heap.length}shouldInsert(e){return this.size<this.limit||e<this.heap[0].score}insert(e){this.size<this.limit?(this.heap.push(e),this._bubbleUp(this.size-1)):e.score<this.heap[0].score&&(this.heap[0]=e,this._sinkDown(0))}extractSorted(e){return this.heap.sort(e)}_bubbleUp(e){let t=this.heap;for(;e>0;){let n=e-1>>1;if(t[e].score<=t[n].score)break;let r=t[e];t[e]=t[n],t[n]=r,e=n}}_sinkDown(e){let t=this.heap,n=t.length,r=e;do{e=r;let i=2*e+1,a=2*e+2;if(i<n&&t[i].score>t[r].score&&(r=i),a<n&&t[a].score>t[r].score&&(r=a),r!==e){let n=t[e];t[e]=t[r],t[r]=n}}while(r!==e)}};function it(e,t){let n=e.matches;t.matches=[],U(n)&&n.forEach(e=>{if(!U(e.indices)||!e.indices.length)return;let{indices:n,value:r}=e,i={indices:n,value:r};e.key&&(i.key=e.key.src),e.idx>-1&&(i.refIndex=e.idx),t.matches.push(i)})}function at(e,t){t.score=e.score}function ot(e,t,{includeMatches:n=G.includeMatches,includeScore:r=G.includeScore}={}){let i=[];return n&&i.push(it),r&&i.push(at),e.map(e=>{let{idx:n}=e,r={item:t[n],refIndex:n};return i.length&&i.forEach(t=>{t(e,r)}),r})}var st=/\b\w+\b/g;function ct({isCaseSensitive:e=!1,ignoreDiacritics:t=!1}={}){return{tokenize(n){return e||(n=n.toLowerCase()),t&&(n=J(n)),n.match(st)||[]}}}function lt(e,t,n){let r=new Map,i=new Map,a=0;function o(e,t,o,s){let c=n.tokenize(e);if(!c.length)return;a++;let l=new Map;for(let e of c)l.set(e,(l.get(e)||0)+1);for(let[e,n]of l){let a={docIdx:t,keyIdx:o,subIdx:s,tf:n},c=r.get(e);c||(c=[],r.set(e,c)),c.push(a),i.set(e,(i.get(e)||0)+1)}}for(let n of e){let{i:e,v:r,$:i}=n;if(r!==void 0){o(r,e,-1,-1);continue}if(i)for(let n=0;n<t;n++){let t=i[n];if(t)if(Array.isArray(t))for(let r of t)o(r.v,e,n,r.i??-1);else o(t.v,e,n,-1)}}return{terms:r,fieldCount:a,df:i}}function ut(e,t,n,r){let{i,v:a,$:o}=t;function s(t,n,a){let o=r.tokenize(t);if(!o.length)return;e.fieldCount++;let s=new Map;for(let e of o)s.set(e,(s.get(e)||0)+1);for(let[t,r]of s){let o={docIdx:i,keyIdx:n,subIdx:a,tf:r},s=e.terms.get(t);s||(s=[],e.terms.set(t,s)),s.push(o),e.df.set(t,(e.df.get(t)||0)+1)}}if(a!==void 0){s(a,-1,-1);return}if(o)for(let e=0;e<n;e++){let t=o[e];if(t)if(Array.isArray(t))for(let n of t)s(n.v,e,n.i??-1);else s(t.v,e,-1)}}function dt(e,t){for(let[n,r]of e.terms){let i=r.filter(e=>e.docIdx!==t),a=r.length-i.length;a>0&&(e.fieldCount-=a,e.df.set(n,(e.df.get(n)||0)-a),i.length===0?(e.terms.delete(n),e.df.delete(n)):e.terms.set(n,i))}}var Q=class{constructor(e,t,n){this.options={...G,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new ue(this.options.keys),this._docs=e,this._myIndex=null,this._invertedIndex=null,this.setCollection(e,n),this._lastQuery=null,this._lastSearcher=null}_getSearcher(e){if(this._lastQuery===e)return this._lastSearcher;let t=X(e,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=e,this._lastSearcher=t,t}setCollection(e,t){if(this._docs=e,t&&!(t instanceof K))throw Error(ie);if(this._myIndex=t||xe(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){let e=ct({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics});this._invertedIndex=lt(this._myIndex.records,this._myIndex.keys.length,e)}}add(e){if(U(e)&&(this._docs.push(e),this._myIndex.add(e),this._invertedIndex)){let e=this._myIndex.records[this._myIndex.records.length-1],t=ct({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics});ut(this._invertedIndex,e,this._myIndex.keys.length,t)}}remove(e=()=>!1){let t=[],n=[];for(let r=0,i=this._docs.length;r<i;r+=1)e(this._docs[r],r)&&(t.push(this._docs[r]),n.push(r));if(n.length){if(this._invertedIndex)for(let e of n)dt(this._invertedIndex,e);for(let e=n.length-1;e>=0;--e)this._docs.splice(n[e],1);this._myIndex.removeAll(n)}return t}removeAt(e){this._invertedIndex&&dt(this._invertedIndex,e);let t=this._docs.splice(e,1)[0];return this._myIndex.removeAt(e),t}getIndex(){return this._myIndex}search(e,t){let{limit:n=-1}=t||{},{includeMatches:r,includeScore:i,shouldSort:a,sortFn:o,ignoreFieldNorm:s}=this.options;if(R(e)&&!e.trim()){let e=this._docs.map((e,t)=>({item:e,refIndex:t}));return z(n)&&n>-1&&(e=e.slice(0,n)),e}let c=z(n)&&n>0&&R(e),l;if(c){let t=new rt(n);R(this._docs[0])?this._searchStringList(e,{heap:t,ignoreFieldNorm:s}):this._searchObjectList(e,{heap:t,ignoreFieldNorm:s}),l=t.extractSorted(o)}else l=R(e)?R(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),nt(l,{ignoreFieldNorm:s}),a&&l.sort(o),z(n)&&n>-1&&(l=l.slice(0,n));return ot(l,this._docs,{includeMatches:r,includeScore:i})}_searchStringList(e,{heap:t,ignoreFieldNorm:n}={}){let r=this._getSearcher(e),{records:i}=this._myIndex,a=t?null:[];return i.forEach(({v:e,i,n:o})=>{if(!U(e))return;let{isMatch:s,score:c,indices:l}=r.searchIn(e);if(s){let r={item:e,idx:i,matches:[{score:c,value:e,norm:o,indices:l}]};t?(r.score=tt(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):a.push(r)}}),a}_searchLogical(e){let t=et(e,this.options),n=(e,t,r)=>{if(!(`children`in e)){let{keyId:n,searcher:i}=e,a;return n===null?(a=[],this._myIndex.keys.forEach((e,n)=>{a.push(...this._findMatches({key:e,value:t[n],searcher:i}))})):a=this._findMatches({key:this._keyStore.get(n),value:this._myIndex.getValueForItemAtKeyId(t,n),searcher:i}),a&&a.length?[{idx:r,item:t,matches:a}]:[]}let{children:i,operator:a}=e,o=[];for(let e=0,s=i.length;e<s;e+=1){let s=i[e],c=n(s,t,r);if(c.length)o.push(...c);else if(a===Z.AND)return[]}return o},r=this._myIndex.records,i=new Map,a=[];return r.forEach(({$:e,i:r})=>{if(U(e)){let o=n(t,e,r);o.length&&(i.has(r)||(i.set(r,{idx:r,item:e,matches:[]}),a.push(i.get(r))),o.forEach(({matches:e})=>{i.get(r).matches.push(...e)}))}}),a}_searchObjectList(e,{heap:t,ignoreFieldNorm:n}={}){let r=this._getSearcher(e),{keys:i,records:a}=this._myIndex,o=t?null:[];return a.forEach(({$:e,i:a})=>{if(!U(e))return;let s=[],c=!1,l=!1;if(i.forEach((t,n)=>{let i=this._findMatches({key:t,value:e[n],searcher:r});i.length?(s.push(...i),i[0].hasInverse&&(l=!0)):c=!0}),!(l&&c)&&s.length){let r={idx:a,item:e,matches:s};t?(r.score=tt(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):o.push(r)}}),o}_findMatches({key:e,value:t,searcher:n}){if(!U(t))return[];let r=[];if(I(t))t.forEach(({v:t,i,n:a})=>{if(!U(t))return;let{isMatch:o,score:s,indices:c,hasInverse:l}=n.searchIn(t);o&&r.push({score:s,key:e,value:t,idx:i,norm:a,indices:c,hasInverse:l})});else{let{v:i,n:a}=t,{isMatch:o,score:s,indices:c,hasInverse:l}=n.searchIn(i);o&&r.push({score:s,key:e,value:i,norm:a,indices:c,hasInverse:l})}return r}},ft=class{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=ct({isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics});let n=this.analyzer.tokenize(e),{df:r,fieldCount:i}=t._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(let e of n){this.termSearchers.push(new ke(e,{location:t.location,threshold:t.threshold,distance:t.distance,includeMatches:t.includeMatches,findAllMatches:t.findAllMatches,minMatchCharLength:t.minMatchCharLength,isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,ignoreLocation:!0}));let n=r.get(e)||0,a=Math.log(1+(i-n+.5)/(n+.5));this.idfWeights.push(a)}}searchIn(e){if(!this.termSearchers.length)return{isMatch:!1,score:1};let t=[],n=0,r=0,i=0;for(let a=0;a<this.termSearchers.length;a++){let o=this.termSearchers[a].searchIn(e),s=this.idfWeights[a];r+=s,o.isMatch&&(i++,n+=s*(1-o.score),o.indices&&t.push(...o.indices))}if(i===0)return{isMatch:!1,score:1};let a=r>0?1-n/r:0,o={isMatch:!0,score:Math.max(.001,a)};return this.options.includeMatches&&t.length&&(o.indices=Ee(t)),o}};Q.version=`7.3.0`,Q.createIndex=xe,Q.parseIndex=Se,Q.config=G,Q.match=function(e,t,n){return X(e,{...G,...n}).searchIn(t)},Q.parseQuery=et,Je(Ke),Je(ft),Q.use=function(...e){e.forEach(e=>Je(e))};var pt=(e,t=.4)=>(e=e?Object.entries(e)?.reduce((e,[t,n])=>({[t.toLowerCase()]:n}),{}):{},n=>{let r=new Q(Object.keys(e),{includeScore:!0,ignoreLocation:!0}).search(n).filter(e=>e.score<t);if(r?.length){let t=r[0].item.toLowerCase();return e[t]?.(n)}return null}),mt=c((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),ht=c((e=>{process.env.NODE_ENV!==`production`&&(function(){function t(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===O?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case _:return`Fragment`;case y:return`Profiler`;case v:return`StrictMode`;case C:return`Suspense`;case w:return`SuspenseList`;case D:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case g:return`Portal`;case x:return e.displayName||`Context`;case b:return(e._context.displayName||`Context`)+`.Consumer`;case S:var n=e.render;return e=e.displayName,e||=(e=n.displayName||n.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case T:return n=e.displayName||null,n===null?t(e.type)||`Memo`:n;case E:n=e._payload,e=e._init;try{return t(e(n))}catch{}}return null}function n(e){return``+e}function r(e){try{n(e);var t=!1}catch{t=!0}if(t){t=console;var r=t.error,i=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return r.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,i),n(e)}}function i(e){if(e===_)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===E)return`<...>`;try{var n=t(e);return n?`<`+n+`>`:`<...>`}catch{return`<...>`}}function a(){var e=k.A;return e===null?null:e.getOwner()}function o(){return Error(`react-stack-top-frame`)}function s(e){if(A.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function c(e,t){function n(){N||(N=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,`key`,{get:n,configurable:!0})}function l(){var e=t(this.type);return P[e]||(P[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function u(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:h,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,`ref`,{enumerable:!1,value:null}):Object.defineProperty(e,`ref`,{enumerable:!1,get:l}),e._store={},Object.defineProperty(e._store,`validated`,{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,`_debugInfo`,{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,`_debugStack`,{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,`_debugTask`,{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function d(e,n,i,o,l,d){var p=n.children;if(p!==void 0)if(o)if(j(p)){for(o=0;o<p.length;o++)f(p[o]);Object.freeze&&Object.freeze(p)}else console.error(`React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.`);else f(p);if(A.call(n,`key`)){p=t(e);var m=Object.keys(n).filter(function(e){return e!==`key`});o=0<m.length?`{key: someKey, `+m.join(`: ..., `)+`: ...}`:`{key: someKey}`,te[p+o]||(m=0<m.length?`{`+m.join(`: ..., `)+`: ...}`:`{}`,console.error(`A props object containing a "key" prop is being spread into JSX:
4
+ let props = %s;
5
+ <%s {...props} />
6
+ React keys must be passed directly to JSX without using spread:
7
+ let props = %s;
8
+ <%s key={someKey} {...props} />`,o,p,m,p),te[p+o]=!0)}if(p=null,i!==void 0&&(r(i),p=``+i),s(n)&&(r(n.key),p=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return p&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,p,i,a(),l,d)}function f(e){p(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===E&&(e._payload.status===`fulfilled`?p(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function p(e){return typeof e==`object`&&!!e&&e.$$typeof===h}var m=require(`react`),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),_=Symbol.for(`react.fragment`),v=Symbol.for(`react.strict_mode`),y=Symbol.for(`react.profiler`),b=Symbol.for(`react.consumer`),x=Symbol.for(`react.context`),S=Symbol.for(`react.forward_ref`),C=Symbol.for(`react.suspense`),w=Symbol.for(`react.suspense_list`),T=Symbol.for(`react.memo`),E=Symbol.for(`react.lazy`),D=Symbol.for(`react.activity`),O=Symbol.for(`react.client.reference`),k=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=Object.prototype.hasOwnProperty,j=Array.isArray,M=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(e){return e()}};var N,P={},ee=m.react_stack_bottom_frame.bind(m,o)(),F=M(i(o)),te={};e.Fragment=_,e.jsx=function(e,t,n){var r=1e4>k.recentlyCreatedOwnerStacks++;return d(e,t,n,!1,r?Error(`react-stack-top-frame`):ee,r?M(i(e)):F)},e.jsxs=function(e,t,n){var r=1e4>k.recentlyCreatedOwnerStacks++;return d(e,t,n,!0,r?Error(`react-stack-top-frame`):ee,r?M(i(e)):F)}})()})),$=c(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=mt():t.exports=ht()}))(),gt=({color:e=`black`,activeColor:t=`red`,isActive:n=!1})=>(0,$.jsx)(`svg`,{"data-testid":`__icon-root__`,xmlns:`http://www.w3.org/2000/svg`,width:`100%`,height:`100%`,viewBox:`0 0 24 24`,children:(0,$.jsxs)(`g`,{children:[(0,$.jsx)(`path`,{"data-testid":`__icon-path__`,fill:e,d:`M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z`}),n&&(0,$.jsx)(`circle`,{"data-testid":`__icon-active__`,fill:t,cx:`16`,cy:`4`,r:`4`})]})}),_t=({children:e,commands:n=null,lang:r=`en-US`,grammars:i=null,timeout:a=3e3,ariaLabel:o=`start recognition`,style:s=null,className:c=null,outlineStyle:l=`2px solid`,onStart:u=null,onEnd:d=null,onSpeechStart:f=null,onSpeechEnd:p=null,onResult:m=null,onError:h=null,onNoMatch:g=null,__rsInstance:_})=>{let v=(0,t.useRef)(null),[y,b]=(0,t.useState)(!1),[,{start:x,stop:S,subscribe:C,unsubscribe:w}]=F(r,i,_),T=pt(n),E=(0,t.useRef)({});E.current={onStart:u,onEnd:d,onSpeechStart:f,onSpeechEnd:p,onResult:m,onError:h,onNoMatch:g};let D=(0,t.useRef)(T);D.current=T;let O=(0,t.useRef)(null),k=(0,t.useRef)(null),[A,j]=te((0,t.useCallback)(()=>k.current?.(),[]),a),M=(0,t.useCallback)(()=>{try{b(!1),S()}catch(e){E.current.onError?.(e)}finally{O.current?.()}},[S]),N=(0,t.useCallback)(e=>{A(),E.current.onStart?.(e)},[A]),I=(0,t.useCallback)(e=>{j(),E.current.onSpeechStart?.(e)},[j]),ne=(0,t.useCallback)(e=>{A(),E.current.onSpeechEnd?.(e)},[A]),L=(0,t.useCallback)((e,t)=>{j(),M(),D.current(t),E.current.onResult?.(t,e)},[j,M]),R=(0,t.useCallback)(e=>{M(),E.current.onError?.(e)},[M]),z=(0,t.useCallback)(e=>{j(),M(),E.current.onNoMatch?.(e)},[j,M]),B=(0,t.useCallback)(e=>{j(),M(),E.current.onEnd?.(e)},[j,M]);k.current=B;let V=(0,t.useMemo)(()=>({start:N,end:B,speechstart:I,speechend:ne,result:L,error:R,nomatch:z}),[N,B,I,ne,L,R,z]);O.current=()=>Object.entries(V).forEach(([e,t])=>w?.(e,t));let H=(0,t.useCallback)(()=>{try{b(!0),Object.entries(V).forEach(([e,t])=>C(e,t)),x()}catch(e){R(e)}},[V,C,x,R]),U=()=>{!c&&l&&(v.current.style.outline=l)},W=()=>{!c&&l&&(v.current.style.outline=`none`)};return P.isSupported?ee(e)?e(H,M,y):(0,t.isValidElement)(e)?(0,t.cloneElement)(e,{...!y&&{onClick:H}}):(0,$.jsx)(`button`,{"data-testid":`__vocal-root__`,ref:v,role:`button`,"aria-label":o,style:c?null:{width:24,height:24,backgroundColor:`transparent`,border:`none`,padding:0,cursor:y?`default`:`pointer`,...s},className:c,onFocus:U,onBlur:W,onClick:H,children:(0,$.jsx)(gt,{isActive:y,color:`#aaa`})}):null},vt=P.isSupported;e.default=_t,e.isSupported=vt,e.useVocal=F});
9
+ //# sourceMappingURL=index.umd.js.map