guess-the-year-web-component 3.2.4 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +2 -2
  2. package/dist/guess-the-year.d.ts +21 -16
  3. package/dist/guess-the-year.d.ts.map +1 -1
  4. package/dist/index.html +3 -8
  5. package/dist/lib/controller/scorecontroller.d.ts +2 -1
  6. package/dist/lib/controller/scorecontroller.d.ts.map +1 -1
  7. package/dist/lib/i18n/EN.d.ts.map +1 -1
  8. package/dist/lib/i18n/NL.d.ts.map +1 -1
  9. package/dist/main.bundle.js +200 -0
  10. package/dist/main.bundle.js.map +1 -0
  11. package/package.json +26 -27
  12. package/src/guess-the-year.ts +335 -273
  13. package/src/index.html +2 -7
  14. package/src/lib/controller/scorecontroller.ts +12 -1
  15. package/src/lib/i18n/EN.ts +18 -4
  16. package/src/lib/i18n/NL.ts +19 -5
  17. package/src/scss/_layout.scss +18 -5
  18. package/src/scss/_typography.scss +3 -2
  19. package/src/scss/_variables.scss +5 -5
  20. package/src/scss/main.scss +55 -1
  21. package/src/scss/views/_intro.scss +16 -4
  22. package/src/scss/views/_stage.scss +149 -43
  23. package/webpack.config.cjs +23 -25
  24. package/dist/guess-the-year.js +0 -751
  25. package/dist/guess-the-year.js.map +0 -1
  26. package/dist/lib/ApiService.js +0 -134
  27. package/dist/lib/ApiService.js.map +0 -1
  28. package/dist/lib/Icon.js +0 -2
  29. package/dist/lib/Icon.js.map +0 -1
  30. package/dist/lib/Incident.js +0 -37
  31. package/dist/lib/Incident.js.map +0 -1
  32. package/dist/lib/Util.js +0 -69
  33. package/dist/lib/Util.js.map +0 -1
  34. package/dist/lib/controller/scorecontroller.js +0 -38
  35. package/dist/lib/controller/scorecontroller.js.map +0 -1
  36. package/dist/lib/enums.js +0 -10
  37. package/dist/lib/enums.js.map +0 -1
  38. package/dist/lib/i18n/EN.js +0 -148
  39. package/dist/lib/i18n/EN.js.map +0 -1
  40. package/dist/lib/i18n/NL.js +0 -152
  41. package/dist/lib/i18n/NL.js.map +0 -1
  42. package/dist/lib/i18n/i18n.js +0 -10
  43. package/dist/lib/i18n/i18n.js.map +0 -1
  44. package/dist/main.js +0 -205
  45. package/todo.txt +0 -0
  46. /package/dist/{main.js.LICENSE.txt → main.bundle.js.LICENSE.txt} +0 -0
package/dist/main.js DELETED
@@ -1,205 +0,0 @@
1
- /*! For license information please see main.js.LICENSE.txt */
2
- !function(){var e={353:function(e){e.exports=function(){"use strict";var e=6e4,t=36e5,A="millisecond",s="second",r="minute",n="hour",i="day",o="week",a="month",g="quarter",h="year",c="date",d="Invalid Date",l=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,u=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,C={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],A=e%100;return"["+e+(t[(A-20)%10]||t[A]||t[0])+"]"}},I=function(e,t,A){var s=String(e);return!s||s.length>=t?e:""+Array(t+1-s.length).join(A)+e},Q={s:I,z:function(e){var t=-e.utcOffset(),A=Math.abs(t),s=Math.floor(A/60),r=A%60;return(t<=0?"+":"-")+I(s,2,"0")+":"+I(r,2,"0")},m:function e(t,A){if(t.date()<A.date())return-e(A,t);var s=12*(A.year()-t.year())+(A.month()-t.month()),r=t.clone().add(s,a),n=A-r<0,i=t.clone().add(s+(n?-1:1),a);return+(-(s+(A-r)/(n?r-i:i-r))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:a,y:h,w:o,d:i,D:c,h:n,m:r,s:s,ms:A,Q:g}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},p="en",E={};E[p]=C;var B="$isDayjsObject",m=function(e){return e instanceof y||!(!e||!e[B])},v=function e(t,A,s){var r;if(!t)return p;if("string"==typeof t){var n=t.toLowerCase();E[n]&&(r=n),A&&(E[n]=A,r=n);var i=t.split("-");if(!r&&i.length>1)return e(i[0])}else{var o=t.name;E[o]=t,r=o}return!s&&r&&(p=r),r||!s&&p},b=function(e,t){if(m(e))return e.clone();var A="object"==typeof t?t:{};return A.date=e,A.args=arguments,new y(A)},f=Q;f.l=v,f.i=m,f.w=function(e,t){return b(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var y=function(){function C(e){this.$L=v(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[B]=!0}var I=C.prototype;return I.parse=function(e){this.$d=function(e){var t=e.date,A=e.utc;if(null===t)return new Date(NaN);if(f.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var s=t.match(l);if(s){var r=s[2]-1||0,n=(s[7]||"0").substring(0,3);return A?new Date(Date.UTC(s[1],r,s[3]||1,s[4]||0,s[5]||0,s[6]||0,n)):new Date(s[1],r,s[3]||1,s[4]||0,s[5]||0,s[6]||0,n)}}return new Date(t)}(e),this.init()},I.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},I.$utils=function(){return f},I.isValid=function(){return!(this.$d.toString()===d)},I.isSame=function(e,t){var A=b(e);return this.startOf(t)<=A&&A<=this.endOf(t)},I.isAfter=function(e,t){return b(e)<this.startOf(t)},I.isBefore=function(e,t){return this.endOf(t)<b(e)},I.$g=function(e,t,A){return f.u(e)?this[t]:this.set(A,e)},I.unix=function(){return Math.floor(this.valueOf()/1e3)},I.valueOf=function(){return this.$d.getTime()},I.startOf=function(e,t){var A=this,g=!!f.u(t)||t,d=f.p(e),l=function(e,t){var s=f.w(A.$u?Date.UTC(A.$y,t,e):new Date(A.$y,t,e),A);return g?s:s.endOf(i)},u=function(e,t){return f.w(A.toDate()[e].apply(A.toDate("s"),(g?[0,0,0,0]:[23,59,59,999]).slice(t)),A)},C=this.$W,I=this.$M,Q=this.$D,p="set"+(this.$u?"UTC":"");switch(d){case h:return g?l(1,0):l(31,11);case a:return g?l(1,I):l(0,I+1);case o:var E=this.$locale().weekStart||0,B=(C<E?C+7:C)-E;return l(g?Q-B:Q+(6-B),I);case i:case c:return u(p+"Hours",0);case n:return u(p+"Minutes",1);case r:return u(p+"Seconds",2);case s:return u(p+"Milliseconds",3);default:return this.clone()}},I.endOf=function(e){return this.startOf(e,!1)},I.$set=function(e,t){var o,g=f.p(e),d="set"+(this.$u?"UTC":""),l=(o={},o[i]=d+"Date",o[c]=d+"Date",o[a]=d+"Month",o[h]=d+"FullYear",o[n]=d+"Hours",o[r]=d+"Minutes",o[s]=d+"Seconds",o[A]=d+"Milliseconds",o)[g],u=g===i?this.$D+(t-this.$W):t;if(g===a||g===h){var C=this.clone().set(c,1);C.$d[l](u),C.init(),this.$d=C.set(c,Math.min(this.$D,C.daysInMonth())).$d}else l&&this.$d[l](u);return this.init(),this},I.set=function(e,t){return this.clone().$set(e,t)},I.get=function(e){return this[f.p(e)]()},I.add=function(A,g){var c,d=this;A=Number(A);var l=f.p(g),u=function(e){var t=b(d);return f.w(t.date(t.date()+Math.round(e*A)),d)};if(l===a)return this.set(a,this.$M+A);if(l===h)return this.set(h,this.$y+A);if(l===i)return u(1);if(l===o)return u(7);var C=(c={},c[r]=e,c[n]=t,c[s]=1e3,c)[l]||1,I=this.$d.getTime()+A*C;return f.w(I,this)},I.subtract=function(e,t){return this.add(-1*e,t)},I.format=function(e){var t=this,A=this.$locale();if(!this.isValid())return A.invalidDate||d;var s=e||"YYYY-MM-DDTHH:mm:ssZ",r=f.z(this),n=this.$H,i=this.$m,o=this.$M,a=A.weekdays,g=A.months,h=A.meridiem,c=function(e,A,r,n){return e&&(e[A]||e(t,s))||r[A].slice(0,n)},l=function(e){return f.s(n%12||12,e,"0")},C=h||function(e,t,A){var s=e<12?"AM":"PM";return A?s.toLowerCase():s};return s.replace(u,(function(e,s){return s||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return f.s(t.$y,4,"0");case"M":return o+1;case"MM":return f.s(o+1,2,"0");case"MMM":return c(A.monthsShort,o,g,3);case"MMMM":return c(g,o);case"D":return t.$D;case"DD":return f.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return c(A.weekdaysMin,t.$W,a,2);case"ddd":return c(A.weekdaysShort,t.$W,a,3);case"dddd":return a[t.$W];case"H":return String(n);case"HH":return f.s(n,2,"0");case"h":return l(1);case"hh":return l(2);case"a":return C(n,i,!0);case"A":return C(n,i,!1);case"m":return String(i);case"mm":return f.s(i,2,"0");case"s":return String(t.$s);case"ss":return f.s(t.$s,2,"0");case"SSS":return f.s(t.$ms,3,"0");case"Z":return r}return null}(e)||r.replace(":","")}))},I.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},I.diff=function(A,c,d){var l,u=this,C=f.p(c),I=b(A),Q=(I.utcOffset()-this.utcOffset())*e,p=this-I,E=function(){return f.m(u,I)};switch(C){case h:l=E()/12;break;case a:l=E();break;case g:l=E()/3;break;case o:l=(p-Q)/6048e5;break;case i:l=(p-Q)/864e5;break;case n:l=p/t;break;case r:l=p/e;break;case s:l=p/1e3;break;default:l=p}return d?l:f.a(l)},I.daysInMonth=function(){return this.endOf(a).$D},I.$locale=function(){return E[this.$L]},I.locale=function(e,t){if(!e)return this.$L;var A=this.clone(),s=v(e,t,!0);return s&&(A.$L=s),A},I.clone=function(){return f.w(this.$d,this)},I.toDate=function(){return new Date(this.valueOf())},I.toJSON=function(){return this.isValid()?this.toISOString():null},I.toISOString=function(){return this.$d.toISOString()},I.toString=function(){return this.$d.toUTCString()},C}(),w=y.prototype;return b.prototype=w,[["$ms",A],["$s",s],["$m",r],["$H",n],["$W",i],["$M",a],["$y",h],["$D",c]].forEach((function(e){w[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),b.extend=function(e,t){return e.$i||(e(t,y,b),e.$i=!0),b},b.locale=v,b.isDayjs=m,b.unix=function(e){return b(1e3*e)},b.en=E[p],b.Ls=E,b.p={},b}()}},t={};function A(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,A),n.exports}A.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return A.d(t,{a:t}),t},A.d=function(e,t){for(var s in t)A.o(t,s)&&!A.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},A.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){"use strict";const e=globalThis,t=e.ShadowRoot&&(void 0===e.ShadyCSS||e.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s=Symbol(),r=new WeakMap;class n{constructor(e,t,A){if(this._$cssResult$=!0,A!==s)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const A=this.t;if(t&&void 0===e){const t=void 0!==A&&1===A.length;t&&(e=r.get(A)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),t&&r.set(A,e))}return e}toString(){return this.cssText}}const i=(e,...t)=>{const A=1===e.length?e[0]:t.reduce(((t,A,s)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(A)+e[s+1]),e[0]);return new n(A,e,s)},o=(A,s)=>{if(t)A.adoptedStyleSheets=s.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const t of s){const s=document.createElement("style"),r=e.litNonce;void 0!==r&&s.setAttribute("nonce",r),s.textContent=t.cssText,A.appendChild(s)}},a=t?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const A of e.cssRules)t+=A.cssText;return(e=>new n("string"==typeof e?e:e+"",void 0,s))(t)})(e):e,{is:g,defineProperty:h,getOwnPropertyDescriptor:c,getOwnPropertyNames:d,getOwnPropertySymbols:l,getPrototypeOf:u}=Object,C=globalThis,I=C.trustedTypes,Q=I?I.emptyScript:"",p=C.reactiveElementPolyfillSupport,E=(e,t)=>e,B={toAttribute(e,t){switch(t){case Boolean:e=e?Q:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let A=e;switch(t){case Boolean:A=null!==e;break;case Number:A=null===e?null:Number(e);break;case Object:case Array:try{A=JSON.parse(e)}catch(e){A=null}}return A}},m=(e,t)=>!g(e,t),v={attribute:!0,type:String,converter:B,reflect:!1,hasChanged:m};Symbol.metadata??=Symbol("metadata"),C.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=v){if(t.state&&(t.attribute=!1),this._$Ei(),this.elementProperties.set(e,t),!t.noAccessor){const A=Symbol(),s=this.getPropertyDescriptor(e,A,t);void 0!==s&&h(this.prototype,e,s)}}static getPropertyDescriptor(e,t,A){const{get:s,set:r}=c(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get(){return s?.call(this)},set(t){const n=s?.call(this);r.call(this,t),this.requestUpdate(e,n,A)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??v}static _$Ei(){if(this.hasOwnProperty(E("elementProperties")))return;const e=u(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(E("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(E("properties"))){const e=this.properties,t=[...d(e),...l(e)];for(const A of t)this.createProperty(A,e[A])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,A]of t)this.elementProperties.set(e,A)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const A=this._$Eu(e,t);void 0!==A&&this._$Eh.set(A,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const A=new Set(e.flat(1/0).reverse());for(const e of A)t.unshift(a(e))}else void 0!==e&&t.push(a(e));return t}static _$Eu(e,t){const A=t.attribute;return!1===A?void 0:"string"==typeof A?A:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const A of t.keys())this.hasOwnProperty(A)&&(e.set(A,this[A]),delete this[A]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return o(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,A){this._$AK(e,A)}_$EC(e,t){const A=this.constructor.elementProperties.get(e),s=this.constructor._$Eu(e,A);if(void 0!==s&&!0===A.reflect){const r=(void 0!==A.converter?.toAttribute?A.converter:B).toAttribute(t,A.type);this._$Em=e,null==r?this.removeAttribute(s):this.setAttribute(s,r),this._$Em=null}}_$AK(e,t){const A=this.constructor,s=A._$Eh.get(e);if(void 0!==s&&this._$Em!==s){const e=A.getPropertyOptions(s),r="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:B;this._$Em=s,this[s]=r.fromAttribute(t,e.type),this._$Em=null}}requestUpdate(e,t,A){if(void 0!==e){if(A??=this.constructor.getPropertyOptions(e),!(A.hasChanged??m)(this[e],t))return;this.P(e,t,A)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(e,t,A){this._$AL.has(e)||this._$AL.set(e,t),!0===A.reflect&&this._$Em!==e&&(this._$Ej??=new Set).add(e)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,A]of e)!0!==A.wrapped||this._$AL.has(t)||void 0===this[t]||this.P(t,this[t],A)}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Ej&&=this._$Ej.forEach((e=>this._$EC(e,this[e]))),this._$EU()}updated(e){}firstUpdated(e){}}b.elementStyles=[],b.shadowRootOptions={mode:"open"},b[E("elementProperties")]=new Map,b[E("finalized")]=new Map,p?.({ReactiveElement:b}),(C.reactiveElementVersions??=[]).push("2.0.4");const f=globalThis,y=f.trustedTypes,w=y?y.createPolicy("lit-html",{createHTML:e=>e}):void 0,S="$lit$",_=`lit$${Math.random().toFixed(9).slice(2)}$`,T="?"+_,U=`<${T}>`,P=document,k=()=>P.createComment(""),x=e=>null===e||"object"!=typeof e&&"function"!=typeof e,O=Array.isArray,K="[ \t\n\f\r]",H=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,j=/-->/g,M=/>/g,D=RegExp(`>|${K}(?:([^\\s"'>=/]+)(${K}*=${K}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),F=/'/g,N=/"/g,Y=/^(?:script|style|textarea|title)$/i,R=e=>(t,...A)=>({_$litType$:e,strings:t,values:A}),J=R(1),z=(R(2),R(3),Symbol.for("lit-noChange")),W=Symbol.for("lit-nothing"),L=new WeakMap,V=P.createTreeWalker(P,129);function X(e,t){if(!O(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==w?w.createHTML(t):t}const Z=(e,t)=>{const A=e.length-1,s=[];let r,n=2===t?"<svg>":3===t?"<math>":"",i=H;for(let t=0;t<A;t++){const A=e[t];let o,a,g=-1,h=0;for(;h<A.length&&(i.lastIndex=h,a=i.exec(A),null!==a);)h=i.lastIndex,i===H?"!--"===a[1]?i=j:void 0!==a[1]?i=M:void 0!==a[2]?(Y.test(a[2])&&(r=RegExp("</"+a[2],"g")),i=D):void 0!==a[3]&&(i=D):i===D?">"===a[0]?(i=r??H,g=-1):void 0===a[1]?g=-2:(g=i.lastIndex-a[2].length,o=a[1],i=void 0===a[3]?D:'"'===a[3]?N:F):i===N||i===F?i=D:i===j||i===M?i=H:(i=D,r=void 0);const c=i===D&&e[t+1].startsWith("/>")?" ":"";n+=i===H?A+U:g>=0?(s.push(o),A.slice(0,g)+S+A.slice(g)+_+c):A+_+(-2===g?t:c)}return[X(e,n+(e[A]||"<?>")+(2===t?"</svg>":3===t?"</math>":"")),s]};class G{constructor({strings:e,_$litType$:t},A){let s;this.parts=[];let r=0,n=0;const i=e.length-1,o=this.parts,[a,g]=Z(e,t);if(this.el=G.createElement(a,A),V.currentNode=this.el.content,2===t||3===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(s=V.nextNode())&&o.length<i;){if(1===s.nodeType){if(s.hasAttributes())for(const e of s.getAttributeNames())if(e.endsWith(S)){const t=g[n++],A=s.getAttribute(e).split(_),i=/([.?@])?(.*)/.exec(t);o.push({type:1,index:r,name:i[2],strings:A,ctor:"."===i[1]?Ae:"?"===i[1]?se:"@"===i[1]?re:te}),s.removeAttribute(e)}else e.startsWith(_)&&(o.push({type:6,index:r}),s.removeAttribute(e));if(Y.test(s.tagName)){const e=s.textContent.split(_),t=e.length-1;if(t>0){s.textContent=y?y.emptyScript:"";for(let A=0;A<t;A++)s.append(e[A],k()),V.nextNode(),o.push({type:2,index:++r});s.append(e[t],k())}}}else if(8===s.nodeType)if(s.data===T)o.push({type:2,index:r});else{let e=-1;for(;-1!==(e=s.data.indexOf(_,e+1));)o.push({type:7,index:r}),e+=_.length-1}r++}}static createElement(e,t){const A=P.createElement("template");return A.innerHTML=e,A}}function q(e,t,A=e,s){if(t===z)return t;let r=void 0!==s?A._$Co?.[s]:A._$Cl;const n=x(t)?void 0:t._$litDirective$;return r?.constructor!==n&&(r?._$AO?.(!1),void 0===n?r=void 0:(r=new n(e),r._$AT(e,A,s)),void 0!==s?(A._$Co??=[])[s]=r:A._$Cl=r),void 0!==r&&(t=q(e,r._$AS(e,t.values),r,s)),t}class ${constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){const{el:{content:t},parts:A}=this._$AD,s=(e?.creationScope??P).importNode(t,!0);V.currentNode=s;let r=V.nextNode(),n=0,i=0,o=A[0];for(;void 0!==o;){if(n===o.index){let t;2===o.type?t=new ee(r,r.nextSibling,this,e):1===o.type?t=new o.ctor(r,o.name,o.strings,this,e):6===o.type&&(t=new ne(r,this,e)),this._$AV.push(t),o=A[++i]}n!==o?.index&&(r=V.nextNode(),n++)}return V.currentNode=P,s}p(e){let t=0;for(const A of this._$AV)void 0!==A&&(void 0!==A.strings?(A._$AI(e,A,t),t+=A.strings.length-2):A._$AI(e[t])),t++}}class ee{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,A,s){this.type=2,this._$AH=W,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=A,this.options=s,this._$Cv=s?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode;const t=this._$AM;return void 0!==t&&11===e?.nodeType&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=q(this,e,t),x(e)?e===W||null==e||""===e?(this._$AH!==W&&this._$AR(),this._$AH=W):e!==this._$AH&&e!==z&&this._(e):void 0!==e._$litType$?this.$(e):void 0!==e.nodeType?this.T(e):(e=>O(e)||"function"==typeof e?.[Symbol.iterator])(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==W&&x(this._$AH)?this._$AA.nextSibling.data=e:this.T(P.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:A}=e,s="number"==typeof A?this._$AC(e):(void 0===A.el&&(A.el=G.createElement(X(A.h,A.h[0]),this.options)),A);if(this._$AH?._$AD===s)this._$AH.p(t);else{const e=new $(s,this),A=e.u(this.options);e.p(t),this.T(A),this._$AH=e}}_$AC(e){let t=L.get(e.strings);return void 0===t&&L.set(e.strings,t=new G(e)),t}k(e){O(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let A,s=0;for(const r of e)s===t.length?t.push(A=new ee(this.O(k()),this.O(k()),this,this.options)):A=t[s],A._$AI(r),s++;s<t.length&&(this._$AR(A&&A._$AB.nextSibling,s),t.length=s)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e&&e!==this._$AB;){const t=e.nextSibling;e.remove(),e=t}}setConnected(e){void 0===this._$AM&&(this._$Cv=e,this._$AP?.(e))}}class te{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,A,s,r){this.type=1,this._$AH=W,this._$AN=void 0,this.element=e,this.name=t,this._$AM=s,this.options=r,A.length>2||""!==A[0]||""!==A[1]?(this._$AH=Array(A.length-1).fill(new String),this.strings=A):this._$AH=W}_$AI(e,t=this,A,s){const r=this.strings;let n=!1;if(void 0===r)e=q(this,e,t,0),n=!x(e)||e!==this._$AH&&e!==z,n&&(this._$AH=e);else{const s=e;let i,o;for(e=r[0],i=0;i<r.length-1;i++)o=q(this,s[A+i],t,i),o===z&&(o=this._$AH[i]),n||=!x(o)||o!==this._$AH[i],o===W?e=W:e!==W&&(e+=(o??"")+r[i+1]),this._$AH[i]=o}n&&!s&&this.j(e)}j(e){e===W?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}}class Ae extends te{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===W?void 0:e}}class se extends te{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==W)}}class re extends te{constructor(e,t,A,s,r){super(e,t,A,s,r),this.type=5}_$AI(e,t=this){if((e=q(this,e,t,0)??W)===z)return;const A=this._$AH,s=e===W&&A!==W||e.capture!==A.capture||e.once!==A.once||e.passive!==A.passive,r=e!==W&&(A===W||s);s&&this.element.removeEventListener(this.name,this,A),r&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}}class ne{constructor(e,t,A){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=A}get _$AU(){return this._$AM._$AU}_$AI(e){q(this,e)}}const ie=f.litHtmlPolyfillSupport;ie?.(G,ee),(f.litHtmlVersions??=[]).push("3.2.1");class oe extends b{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=((e,t,A)=>{const s=A?.renderBefore??t;let r=s._$litPart$;if(void 0===r){const e=A?.renderBefore??null;s._$litPart$=r=new ee(t.insertBefore(k(),e),e,void 0,A??{})}return r._$AI(e),r})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return z}}oe._$litElement$=!0,oe.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:oe});const ae=globalThis.litElementPolyfillSupport;ae?.({LitElement:oe}),(globalThis.litElementVersions??=[]).push("4.1.1");const ge={attribute:!0,type:String,converter:B,reflect:!1,hasChanged:m},he=(e=ge,t,A)=>{const{kind:s,metadata:r}=A;let n=globalThis.litPropertyMetadata.get(r);if(void 0===n&&globalThis.litPropertyMetadata.set(r,n=new Map),n.set(A.name,e),"accessor"===s){const{name:s}=A;return{set(A){const r=t.get.call(this);t.set.call(this,A),this.requestUpdate(s,r,e)},init(t){return void 0!==t&&this.P(s,void 0,e),t}}}if("setter"===s){const{name:s}=A;return function(A){const r=this[s];t.call(this,A),this.requestUpdate(s,r,e)}}throw Error("Unsupported decorator location: "+s)};function ce(e){return(t,A)=>"object"==typeof A?he(e,t,A):((e,t,A)=>{const s=t.hasOwnProperty(A);return t.constructor.createProperty(A,s?{...e,wrapped:!0}:e),s?Object.getOwnPropertyDescriptor(t,A):void 0})(e,t,A)}function de(e){return ce({...e,state:!0,attribute:!1})}var le,ue=A(353),Ce=A.n(ue);!function(e){e.tvShowOrSeries="tvShowOrSeries",e.showbizz="showbizz",e.trend="trend",e.tech="tech",e.fashionTrend="fashionTrend",e.cinemaMovie="cinemaMovie",e.streetScene="streetScene",e.newsPresenter="newsPresenter",e.radioSong="radioSong",e.newsItem="newsItem",e.iconicAlbum="iconicAlbum",e.radioShow="radioShow",e.bestSellerBook="bestSellerBook",e.advertisement="advertisement",e.car="car",e.sports="sports",e.unknown="unknown"}(le||(le={}));const Ie=[le.cinemaMovie,le.newsItem,le.newsPresenter,le.radioSong,le.showbizz,le.sports,le.tech,le.tvShowOrSeries];class Qe{static async asyncForeach(e,t){for(let A=0;A<e.length;A++)await t(e[A],A,e)}static removeAllChildren(e){if(!e)return;let t=e.lastChild;for(;t;)e.removeChild(t),t=e.lastChild}static shuffleArray(e){return e.sort((()=>Math.random()-.5))}static dobToGeneration(e){return e>=2013?"generationalpha":e>=1997?"generationz":e>=1981?"generationy":e>=1965?"generationx":e>=1946?"babyboomers":e>=1928?"silentgeneration":e>=1901?"greatestgeneration":"invalid-generation"}static scoreToValueJudgement(e){return e>=90?"excellent":e>=80?"very-good":e>=70?"good":e>=60?"reasonable-good":e>=50?"reasonable":e>=40?"not-so-good":e>=20?"not-good":e>=0?"bad":""}}class pe{constructor(e){this.teeeApiUrl=e}async fetchOneIncident(e,t,A,s,r,n,i,o,a){return new Promise((async(g,h)=>{console.debug("fetchHistory");const c=e||"",d=t||"",l=A||"",u=s||"",C=r||"",I=n||"",Q=i||"",p=o||"",E=a||"";try{const e=[],t=new URLSearchParams({pov:c,emotion:l,impact:u,limit:"1",variant:E});if(t.append("seed",""+(new Date).getTime()),o&&t.append("maxlasted",""+p),t.set("category",d),C){const A=new URL(`${this.teeeApiUrl}/${r}`);A.search=t.toString(),e.push(A)}else{if(!I||!Q)throw"No correct date or period specified.";try{const A=new Date(I).toISOString().substring(0,10),s=new Date(Q).toISOString().substring(0,10);t.set("from",A),t.set("to",s);const r=new URL(this.teeeApiUrl);r.search=t.toString(),e.push(r)}catch(e){console.error(e,I,Q)}}let A=[];await Qe.asyncForeach(e,(async e=>{const t=await fetch(e),s=await t.json();A=A.concat(s.results)}));const s=A.length?A[0]:void 0,n={};A.forEach((e=>{e.source&&(n[e.source]=!0)})),console.debug([A,n]),g({incident:s,sources:Object.keys(n)})}catch(e){h(e)}}))}async postAttributeQualityFeedback(e,t,A,s){const r=`${this.teeeApiUrl}/feedback/${e}/attribute`;await fetch(r,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({attribute:t,value:A,remark:s})})}async postIncidentFeedback(e,t){const A=`${this.teeeApiUrl}/feedback/${e}/remark`;await fetch(A,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({remark:t})})}async incidentRecallability(e,t,A){this.postIncidentFeedback(e,`recallability:1:${t}:absolute-year-${A}`)}}var Ee,Be;!function(e){e.incorrect="incorrect",e.tooShort="tooShort",e.tooLong="tooLong",e.toneOfVoice="toneOfVoice",e.missing="missing",e.noMatch="noMatch",e.badData="badData",e.unknown="unknown"}(Ee||(Ee={}));class me{constructor(e={}){this.HintTemplates=e,e[le.newsPresenter]=["__TITLE__ presenteerde het acht uur journaal."],e[le.tech]=["Technieuws: __TITLE__.","Techneuten liepen warm voor '__TITLE__'."],e[le.showbizz]=["Veel in het showbizz nieuws: __TITLE__."],e[le.sports]=["Sportnieuws: __TITLE__.","Sportfanaten spraken over '__TITLE__'."],e[le.tvShowOrSeries]=["Op tv was '__TITLE__'.","'s Avonds keken we naar '__TITLE__' op televisie."],e[le.newsItem]=["In de krant stond dit jaar ook '__TITLE__'.","'__TITLE__' was dit jaar ook in het nieuws te lezen."],e[le.cinemaMovie]=["De film '__TITLE__' draaide in de bioscoop.","De film '__TITLE__' was een kaskraker.","In de bioscoop was de film '__TITLE__' te zien.","'__TITLE__' was op het witte doek te zien."],e[le.radioSong]=["De hit '__TRACK__' van __ARTIST__ was een graag gedraaide tune op de radio.","Aan het liedje '__TRACK__' van __ARTIST__ was niet te ontkomen op de radio.","__ARTIST__' '__TRACK__' klonk regelmatig op de radio.","Je kon '__TRACK__' van __ARTIST__ niet missen op de radio, het werd zo vaak gedraaid.","'__TRACK__' van __ARTIST__ was een vast nummer op de radio.","In die tijd was '__TRACK__' van __ARTIST__ een veelgehoorde radiohit.","'__TRACK__' van __ARTIST__ was een radio-favoriet in dit jaar.","De radiostations zonden '__TRACK__' van __ARTIST__ uit.","Het nummer '__TRACK__' van __ARTIST__ genoot veel airplay op de radio.","'__TRACK__' van __ARTIST__ was een veelgehoord nummer op de radiostations.","'__TRACK__' van __ARTIST__ werd een radioklassieker.","'__TRACK__' van __ARTIST__ was een onvergetelijke hit die de radio domineerde.","'__TRACK__' van __ARTIST__ was een veelgehoorde hit.","De radiostations draaiden '__TRACK__' van __ARTIST__ grijs.","'__TRACK__' van __ARTIST__ was een catchy nummer dat je bleef meezingen.","De beat van '__TRACK__' van __ARTIST__ was onweerstaanbaar.","'__TRACK__' van __ARTIST__ had een unieke sound die je niet snel vergat.","Je kon niet om '__TRACK__' van __ARTIST__ heen."]}translate(e){switch(e){case"year":return"jaar";case"start":return"start";case"new-game":return"Probeer opnieuw";case"end":return"Je haalde __SCORE__ van de mogelijke __MAX_SCORE__ punten. Dat komt overeen met __PERCENT__%";case"excellent":return"Dat is echt ongelooflijk goed!";case"very-good":return"Dat is heel goed!";case"good":return"Dat is goed!";case"reasonable-good":return"Dat is best goed";case"reasonable":return"Dat is best redelijk!";case"not-so-good":return"Dat is redelijk";case"not-good":return"Dat is niet zo goed";case"bad":return"Dat is ronduit slecht :)";case"next-question":return"Volgende vraag";case"quit":return"Afsluiten";case"answer-correct":return"Correct";case"answer-wrong":return"Helaas";case"question-number":return"Vraag";case"question-score":return"Score";case"total-score":return"Totaalscore";case"show-hint":return"Toon hint";case"used-hint-singular":return"Je hebt 1 hint gebruikt";case"used-hint-plural":return"Je hebt __HINTS__ hints gebruikt";case"number-points-singular":return"Voor deze vraag heb je 1 punt gehaald";case"number-points-plural":return"Voor deze vraag heb je __POINTS__ punten gehaald";case"correct-answer-was":return"Je koos voor __WRONG__ maar het juiste antwoord was __CORRECT__";case"no-answer-correct-answer-was":return"Je hebt geen antwoord gegeven maar het juiste antwoord was __CORRECT__";case"game-name":return"Guess The Year";case"game-call-to-action":return"Game on! Uit __FROM__ tot __TO__";case"your-answer":return"Mijn antwoord";case"your-feedback":return"opmerkingen";case"try-left":return"__TRIES__ poging over";case"tries-left":return"__TRIES__ pogingen over";case"in-one-second":return"In __SECONDS__ seconde";case"in-x-seconds":return"In __SECONDS__ seconden";case"game-settings-p0":return"Zo wil ik het spelen: ";case"game-settings-p5-1":return"Houd rekening met mijn geboortejaar (";case"game-settings-p5-2":return") bij de selectie van de gebeurenissen.";case"game-settings-p1-1":return"geef me maximaal";case"game-settings-p1-2":return"gebeurtenissen.";case"game-settings-p2":return"Beperk je tot de periode van ";case"game-settings-p3":return" tot ";case"game-settings-p4":return".";case"game-introduction-p1":return"Welkom bij de ultieme test van je historische kennis!";case"game-introduction-p2":return"Duik in de tijd en daag jezelf en je vrienden uit om de jaartallen van fascinerende gebeurtenissen te raden. Van baanbrekende uitvindingen tot memorabele momenten, dit spel neemt je mee op een reis door de geschiedenis.";case"game-introduction-p3":return"Ben jij de meester van de chronologie? Ontdek het nu!";case"game-introduction-welcome":return"Welkom bij Guess The Year!"}return e}}!function(e){e.INIT="init",e.SPLASH="splash",e.INTRO="intro",e.PLAY="play",e.END="end"}(Be||(Be={}));var ve=i`h1{color:var(--guess-the-year-title-color, rgb(0, 0, 0));background-color:var(--guess-the-year-title-background-color, rgba(255, 255, 255, 0.7));font-size:var(--guess-the-year-title-font-size, 16px);margin:0;padding:1rem;text-align:center}p{color:var(--guess-the-year-text-color, black);font-size:var(--guess-the-year-text-font-size, 14px)}:host{position:relative;color:var(--guess-the-year-text-color, black);background:var(--guess-the-year-background-color, white);width:100%;height:100%}.guess-the-year-container{position:relative;width:100%;height:100%;max-width:768px;margin:0 auto}.guess-the-year-header{position:sticky;z-index:100;top:0;box-shadow:0px 5px 5px 0px rgba(0,0,0,.3);margin-bottom:15px}.footer{position:absolute;bottom:0;left:0;right:0;color:var(--guess-the-year-footer-color, rgb(0, 0, 0));font-size:var(--guess-the-year-footer-font-size, 12px);margin:0;z-index:-1}.splashscreen{background-color:var(--guess-the-year-splash-screen-background-color, rgba(255, 255, 255, 0.7));color:var(--guess-the-year-splash-screen-color, rgb(0, 0, 0));font-size:var(--guess-the-year-splash-screen-font-size, 16px);margin:0;text-align:center;width:100%;height:90vh}.splashscreen .splash-logo{margin:0 auto;padding:0;display:block;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.splashscreen .splash-logo img{max-width:300px;border-radius:50%;border:1px solid #000}div.game-intro{color:var(--guess-the-year-title-color, rgb(0, 0, 0));margin:0;padding:0;text-align:left}div.game-intro>div{background-color:var(--guess-the-year-intro-background-color, rgba(255, 255, 255, 0.7));padding:1rem;max-width:70ch;margin:1rem auto}div.game-intro .game-start button{background-color:var(--guess-the-year-button-background-color, rgb(0, 0, 0));color:var(--guess-the-year-button-color, rgb(255, 255, 255));border:0;padding:1rem;margin:1rem auto;display:block;width:100%;font-size:var(--guess-the-year-button-font-size, 1rem);font-weight:bold;text-transform:uppercase;cursor:pointer}.guess-the-year-game-stage{position:relative;padding-bottom:100px}.guess-the-year-game-stage .container{position:relative;width:100%;height:100%}.guess-the-year-game-stage .incident--title{top:0;width:100%;border-top:1px solid #fff;margin-bottom:10px}.guess-the-year-game-stage .incident--image{z-index:-1;height:40vh;display:flex;align-items:center;justify-content:center}.guess-the-year-game-stage .incident--image img{max-width:100%;max-height:100%}.guess-the-year-game-stage .incident--text{background-color:var(--guess-the-year-text-background-color, rgba(255, 255, 255, 0.5));color:var(--guess-the-year-text-color, rgb(0, 0, 0));font-size:var(--guess-the-year-text-font-size, 14px)}.guess-the-year-game-stage .game-controls{position:sticky;bottom:25px;left:0;width:100%;background-color:hsla(0,0%,100%,.7);padding-top:10px}.guess-the-year-game-stage .game-controls--hint{text-align:right}.guess-the-year-game-stage .game-controls--hint button{margin:10px;padding:10px;border-radius:10px;border:1px solid #000;cursor:pointer;background-color:var(--guess-the-year-text-background-color);color:var(--guess-the-year-text-color)}.guess-the-year-game-stage .game-controls--hint button:hover{background-color:var(--guess-the-year-button-background-color);color:var(--guess-the-year-button-color)}.guess-the-year-game-stage .game-controls--answers .answers--list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:row;align-items:center;justify-content:space-evenly}.guess-the-year-game-stage .game-controls--answers .answers--list ul li{border:1px solid #000;border-radius:10px;padding:10px 10px;cursor:pointer;background-color:var(--guess-the-year-text-background-color)}.guess-the-year-game-stage .game-controls--answers .answers--list ul li:hover{background-color:var(--guess-the-year-button-background-color);color:var(--guess-the-year-button-color)}.guess-the-year-game-stage .feedback{position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;margin:auto;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center}.guess-the-year-game-stage .feedback--content{width:300px;background-color:var(--guess-the-year-text-background-color);padding:15px;border-radius:10px;box-shadow:0px 5px 5px 0px rgba(0,0,0,.3)}.guess-the-year-game-stage .game-score{display:flex;flex-direction:row;align-items:center;justify-content:space-evenly;margin-bottom:10px}.guess-the-year-game-stage .game-score--label{font-size:80%}.guess-the-year-game-stage .game-score--value{font-weight:bold}.guess-the-year-sources{font-size:70%}`;class be{constructor(e,t=0,A=1e3){this.value=0,(this.host=e).addController(this),this.startValue=t,this.value=t,this.timeout=A}start(){this._timerID=setInterval((()=>{this.value-=1,this.host.requestUpdate()}),this.timeout)}stop(){clearInterval(this._timerID),this._timerID=void 0}reset(){this.value=this.startValue}subtract(e){this.value-=e,this.value<0&&(this.value=0)}isRunning(){return!!this._timerID}hostDisconnected(){clearInterval(this._timerID),this._timerID=void 0}}var fe=function(e,t,A,s){var r,n=arguments.length,i=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,A):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,A,s);else for(var o=e.length-1;o>=0;o--)(r=e[o])&&(i=(n<3?r(i):n>3?r(t,A,i):r(t,A))||i);return n>3&&i&&Object.defineProperty(t,A,i),i};const{setTimeout:ye}=window,we=1950,Se=parseInt(Ce()().format("YYYY"),10),_e="gty-from-year",Te="gty-to-year",Ue="gty-number-of-questions",Pe=parseInt(Ce()().format("YYYY"),10)-10,ke="gty-player-dob";let xe=class extends oe{get loading(){return this._loading}set loading(e){this._loading=e}constructor(){super(),this.sources=[],this._loading=!1,this.teeeApiUrl="https://api.tee-e.com",this.reportBrokenImages=!1,this.date="",this.country="",this.category="",this.emotion="",this.impact="",this.from=Ce()(`${window.localStorage.getItem(_e)||we}-01-01`,"YYYY-MM-DD"),this.to=Ce()(`${window.localStorage.getItem(Te)||Se}-01-01`,"YYYY-MM-DD"),this.noImageSrc="",this.suppressImages=!1,this.maxHints=3,this.numberOfQuestions=parseInt(window.localStorage.getItem(Ue)||"10",10),this._numberOfQuestionsSeen=0,this._playerDob=parseInt(window.localStorage.getItem(ke)||"0",10),this._incident=void 0,this._answers=[],this._hint=void 0,this._showHint=!0,this._showFooter=!1,this._hintsIndex=0,this._hints=[],this._solution=void 0,this._renderState=Be.INIT,this._score=30,this.totalScore=0,this._answer=void 0,this._apiService=new pe(this.teeeApiUrl),this.i18n=new me,this._handleImageLoadError=(e,t)=>{const A=e.target;console.debug(`Error loading image: ${A.src} `);const s=this.noImageSrc||"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABBQAAAFECAYAAACXqW3MAAAMaWlDQ1BJQ0MgUHJvZmlsZQAASImVVwdUU8kanluSkJDQAhGQEnoTpFcpIbQAAlIFGyEJJJQYEoKKHVlUcK2IKFZ0VcS2ugKyFsReFsHeFwsqyrqoi6KovAkJ6LqvnPefM3e+fPPP3+5M7gwAmn1ciSQX1QIgT1wgjQ8PZo5PTWOSngEUaAId4AJMuDyZhBUXFw2gDPV/l3c3AKLorzoqbP1z/L+KDl8g4wGATIQ4gy/j5UHcDAC+nieRFgBAVPAW0wokCjwPYl0pDBDiCgXOUuKdCpyhxEcGdRLj2RC3AaBG5XKlWQBo3IM8s5CXBe1ofILYWcwXiQHQHAVxAE/I5UOsiH1UXt5UBa6C2BbqSyCG8QDvjG9sZv3NfsawfS43axgr8xoUtRCRTJLLnfF/luZ/S16ufMiHNWxUoTQiXpE/rOGtnKlRCkyFuFucEROrqDXEfSK+su4AoBShPCJJqY8a8WRsWD/AgNiZzw2JgtgI4jBxbky0is/IFIVxIIarBZ0uKuAkQqwP8SKBLDRBpbNZOjVe5Qutz5SyWSr+HFc66Ffh64E8J4mlsv9GKOCo7GMaRcLEFIgpEFsWipJjINaA2EmWkxCl0hlTJGTHDOlI5fGK+C0hjheIw4OV9rHCTGlYvEq/LE82lC+2WSjixKjwgQJhYoSyPtgpHncwfpgL1iYQs5KG7Ahk46OHcuELQkKVuWPPBeKkBJWdPklBcLxyLk6R5Map9HFzQW64gjeH2F1WmKCaiycXwMWptI9nSgriEpVx4kXZ3Mg4ZTz4chAN2CAEMIEctgwwFWQDUWt3Qzf8pRwJA1wgBVlAABxVzNCMlMERMXwmgCLwB0QCIBueFzw4KgCFkP88zCqfjiBzcLRwcEYOeApxHogCufC3fHCWeNhbMngCGdE/vHNh48F4c2FTjP97foj9yrAgE61i5EMemZpDmsRQYggxghhGtMMN8QDcD4+GzyDYXHFv3Gcoj6/6hKeEdsIjwnVCB+H2FFGx9Lsox4IOaD9MVYuMb2uBW0ObHngw7g+tQ8s4AzcEjrg79MPCA6FnD8iyVXErqsL8zvbfMvjmbaj0yM5klDyCHES2/X6mhr2Gx7AVRa2/rY8y1ozherOHR773z/6m+nzYR32viS3CDmJnsRPYeewI1gCY2HGsEbuEHVXg4dX1ZHB1DXmLH4wnB9oR/cMfV+VTUUmZc51zl/Mn5ViBYHqBYuOxp0pmSEVZwgImC34dBEyOmOc0iunq7OoGgOJbo/z7essY/IYgjAtfufxmAHzKIJn1leNaAHD4KQD0d185izdw2ywH4GgbTy4tVHK44kGA/xKacKcZABNgAWxhPq7AE/iBIBAKIkEsSASpYDKsshCucymYBmaB+aAUlIPlYDVYBzaBrWAn2AMOgAZwBJwAZ8BF0Aaug7tw9XSCl6AHvAP9CIKQEBpCRwwQU8QKcUBcEW8kAAlFopF4JBVJR7IQMSJHZiELkHJkJbIO2YLUIj8jh5ETyHmkHbmNPES6kDfIRxRDqaguaoxao6NRb5SFRqGJ6CQ0C81Hi9ASdClahdagu9F69AR6Eb2OdqAv0V4MYOoYAzPDHDFvjI3FYmlYJibF5mBlWCVWg+3FmuB7vop1YN3YB5yI03Em7ghXcASehPPwfHwOvgRfh+/E6/FT+FX8Id6DfyHQCEYEB4IvgUMYT8giTCOUEioJ2wmHCKfhXuokvCMSiQyiDdEL7sVUYjZxJnEJcQNxH7GZ2E58TOwlkUgGJAeSPymWxCUVkEpJa0m7ScdJV0idpD41dTVTNVe1MLU0NbFasVql2i61Y2pX1J6p9ZO1yFZkX3IsmU+eQV5G3kZuIl8md5L7KdoUG4o/JZGSTZlPqaLspZym3KO8VVdXN1f3UR+nLlKfp16lvl/9nPpD9Q9UHao9lU2dSJVTl1J3UJupt6lvaTSaNS2IlkYroC2l1dJO0h7Q+jToGk4aHA2+xlyNao16jSsarzTJmlaaLM3JmkWalZoHNS9rdmuRtay12FpcrTla1VqHtW5q9WrTtV20Y7XztJdo79I+r/1ch6RjrROqw9cp0dmqc1LnMR2jW9DZdB59AX0b/TS9U5eoa6PL0c3WLdfdo9uq26Ono+eul6w3Xa9a76heBwNjWDM4jFzGMsYBxg3GxxHGI1gjBCMWj9g74sqI9/oj9YP0Bfpl+vv0r+t/NGAahBrkGKwwaDC4b4gb2huOM5xmuNHwtGH3SN2RfiN5I8tGHhh5xwg1sjeKN5pptNXoklGvsYlxuLHEeK3xSeNuE4ZJkEm2SYXJMZMuU7ppgKnItML0uOkLph6TxcxlVjFPMXvMjMwizORmW8xazfrNbcyTzIvN95nft6BYeFtkWlRYtFj0WJpajrWcZVlneceKbOVtJbRaY3XW6r21jXWK9ULrBuvnNvo2HJsimzqbe7Y020DbfNsa22t2RDtvuxy7DXZt9qi9h73Qvtr+sgPq4Okgctjg0D6KMMpnlHhUzaibjlRHlmOhY53jQyeGU7RTsVOD06vRlqPTRq8YfXb0F2cP51znbc53XXRcIl2KXZpc3rjau/Jcq12vudHcwtzmujW6vXZ3cBe4b3S/5UH3GOux0KPF47Onl6fUc69nl5elV7rXeq+b3rrecd5LvM/5EHyCfeb6HPH54OvpW+B7wPdPP0e/HL9dfs/H2IwRjNk25rG/uT/Xf4t/RwAzID1gc0BHoFkgN7Am8FGQRRA/aHvQM5YdK5u1m/Uq2DlYGnwo+D3blz2b3RyChYSHlIW0huqEJoWuC30QZh6WFVYX1hPuET4zvDmCEBEVsSLiJseYw+PUcnoivSJnR56KokYlRK2LehRtHy2NbhqLjo0cu2rsvRirGHFMQyyI5cSuir0fZxOXH/frOOK4uHHV457Gu8TPij+bQE+YkrAr4V1icOKyxLtJtknypJZkzeSJybXJ71NCUlamdIwfPX72+Iuphqmi1MY0Ulpy2va03gmhE1ZP6JzoMbF04o1JNpOmTzo/2XBy7uSjUzSncKccTCekp6TvSv/EjeXWcHszOBnrM3p4bN4a3kt+EL+C3yXwF6wUPMv0z1yZ+TzLP2tVVpcwUFgp7BaxRetEr7Mjsjdlv8+JzdmRM5CbkrsvTy0vPe+wWEecIz411WTq9KntEgdJqaQj3zd/dX6PNEq6XYbIJskaC3Thof6S3Fb+g/xhYUBhdWHftORpB6drTxdPvzTDfsbiGc+Kwop+monP5M1smWU2a/6sh7NZs7fMQeZkzGmZazG3ZG7nvPB5O+dT5ufM/63YuXhl8V8LUhY0lRiXzCt5/EP4D3WlGqXS0psL/RZuWoQvEi1qXey2eO3iL2X8sgvlzuWV5Z+W8JZc+NHlx6ofB5ZmLm1d5rls43LicvHyGysCV+xcqb2yaOXjVWNX1VcwK8oq/lo9ZfX5SvfKTWsoa+RrOqqiqxrXWq5dvvbTOuG669XB1fvWG61fvP79Bv6GKxuDNu7dZLypfNPHzaLNt7aEb6mvsa6p3ErcWrj16bbkbWd/8v6pdrvh9vLtn3eId3TsjN95qtartnaX0a5ldWidvK5r98TdbXtC9jTuddy7ZR9jX/l+sF++/8XP6T/fOBB1oOWg98G9v1j9sv4Q/VBZPVI/o76nQdjQ0Zja2H448nBLk1/ToV+dft1xxOxI9VG9o8uOUY6VHBs4XnS8t1nS3H0i68Tjliktd0+OP3nt1LhTraejTp87E3bm5FnW2ePn/M8dOe97/vAF7wsNFz0v1l/yuHToN4/fDrV6ttZf9rrc2ObT1tQ+pv3YlcArJ66GXD1zjXPt4vWY6+03km7cujnxZsct/q3nt3Nvv75TeKf/7rx7hHtl97XuVz4welDzu93v+zo8O44+DHl46VHCo7uPeY9fPpE9+dRZ8pT2tPKZ6bPa567Pj3SFdbW9mPCi86XkZX936R/af6x/Zfvqlz+D/rzUM76n87X09cCbJW8N3u74y/2vlt643gfv8t71vy/rM+jb+cH7w9mPKR+f9U/7RPpU9dnuc9OXqC/3BvIGBiRcKXfwKIDBhmZmAvBmBwC0VHh2gPc2ygTlXXBQEOX9dRCB/4SV98VB8QRgRxAASfMAiIZnlI2wWUFMhb3iCJ8YBFA3t+GmElmmm6vSFhXehAh9AwNvjQEgNQHwWTow0L9hYODzNhjsbQCa85V3UIUQ4Z1hs5MCtXU+KQHfifJ++k2O3/dAEYE7+L7/F0Xzj+YKXGpdAAAAimVYSWZNTQAqAAAACAAEARoABQAAAAEAAAA+ARsABQAAAAEAAABGASgAAwAAAAEAAgAAh2kABAAAAAEAAABOAAAAAAAAAJAAAAABAAAAkAAAAAEAA5KGAAcAAAASAAAAeKACAAQAAAABAAAEFKADAAQAAAABAAABRAAAAABBU0NJSQAAAFNjcmVlbnNob3Sm7UpIAAAACXBIWXMAABYlAAAWJQFJUiTwAAAB12lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTA0NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlVzZXJDb21tZW50PlNjcmVlbnNob3Q8L2V4aWY6VXNlckNvbW1lbnQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgqaRepxAAAAHGlET1QAAAACAAAAAAAAAKIAAAAoAAAAogAAAKIAACDaSCmnNAAAIKZJREFUeAHs3XecFeW9P/AvuwuiIkWKgFIEKRakGexGjTERW6KJmnvjNZaILUaT6DXFxJ83/V6jxFgSo7EbLJiYiKIYsUSv5WLXWBBUQAQ7vezym1lfu8IKZ88czjluec/rlew5M0+Z5/2Mf5wPM8+02XK3k1eFjQABAgQIECBAgAABAgQIECCQQaCNQCGDlqIECBAgQIAAAQIECBAgQIBArYBAwYVAgAABAgQIECBAgAABAgQIZBYQKGQmU4EAAQIECBAgQIAAAQIECBAQKLgGCBAgQIAAAQIECBAgQIAAgcwCAoXMZCoQIECAAAECBAgQIECAAAECAgXXAAECBAgQIECAAAECBAgQIJBZQKCQmUwFAgQIECBAgAABAgQIECBAQKDgGiBAgAABAgQIECBAgAABAgQyCwgUMpOpQIAAAQIECBAgQIAAAQIECAgUXAMECBAgQIAAAQIECBAgQIBAZgGBQmYyFQgQIECAAAECBAgQIECAAAGBgmuAAAECBAgQIECAAAECBAgQyCwgUMhMpgIBAgQIECBAgAABAgQIECAgUHANECBAgAABAgQIECBAgAABApkFBAqZyVQgQIAAAQIECBAgQIAAAQIEBAquAQIECBAgQIAAAQIECBAgQCCzgEAhM5kKBAgQIECAAAECBAgQIECAgEDBNUCAAAECBAgQIECAAAECBAhkFhAoZCZTgQABAgQIECBAgAABAgQIEBAouAYIECBAgAABAgQIECBAgACBzAIChcxkKhAgQIAAAQIECBAgQIAAAQICBdcAAQIECBAgQIAAAQIECBAgkFlAoJCZTAUCBAgQIECAAAECBAgQIEBAoOAaIECAAAECBAgQIECAAAECBDILCBQyk6lAgAABAgQIECBAgAABAgQICBRcAwQIECBAgAABAgQIECBAgEBmAYFCZjIVCBAgQIAAAQIECBAgQIAAAYGCa4AAAQIECBAgQIAAAQIECBDILCBQyEymAgECBAgQIECAAAECBAgQICBQcA0QIECAAAECBAgQIECAAAECmQUECpnJVCBAgAABAgQIECBAgAABAgQECq4BAgQIECBAgAABAgQIECBAILOAQCEzmQoECBAgQIAAAQIECBAgQICAQME1QIAAAQIECBAgQIAAAQIECGQWEChkJlOBAAECBAgQIECAAAECBAgQECi4BggQIECAAAECBAgQIECAAIHMAgKFzGQqECBAgAABAgQIECBAgAABAgIF1wABAgQIECBAgAABAgQIECCQWUCgkJlMBQIECBAgQIAAAQIECBAgQECg4BogQIAAAQIECBAgQIAAAQIEMgsIFDKTqUCAAAECBAgQIECAAAECBAgIFFwDBAgQIECAAAECBAgQIECAQGYBgUJmMhUIECBAgAABAgQIECBAgAABgYJrgAABAgQIECBAgAABAgQIEMgsIFDITKYCAQIECBAgQIAAAQIECBAgIFBwDRAgQIAAAQIECBAgQIAAAQKZBQQKmclUIECAAAECBAgQIECAAAECBAQKrgECBAgQIECAAAECBAgQIEAgs4BAITOZCgQIECBAgAABAgQIECBAgIBAwTVAgAABAgQIECBAgAABAgQIZBYQKGQmU4EAAQIECBAgQIAAAQIECBAQKLgGCBAgQIAAAQIECBAgQIAAgcwCAoXMZCoQIECAAAECBAgQIECAAAECAgXXAAECBAgQIECAAAECBAgQIJBZQKCQmUwFAgQIECBAgAABAgQIECBAQKDgGiBAgAABAgQIECBAgAABAgQyCwgUMpOpQIAAAQIEyi/Qo3vnGDK4T/TdvHt069opNtqofbStqow2bdqU/2SK2OOqVasi/d+SpcvjnXc/jDdmz4+XXpkVs+e8HdXVNUXsSVMECBAgQIBAsQUECsUW1R4BAgQIECiSQMdNNoq99hgRB43dObbs1ysJD+oabrPa57p9zftvkikkW+3/JQFDxJy5b8fk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kDA97v/nM/Hgw89G+riDjQABAgQIEGgaAgKFpjEPzoIAAQIECNQLVFS0iU27dIytBvSOz4weGjslayxs3rtb/fHW8GFesuji40+8HA8/+ny8Mn12zHv7g2S9hOrWMHRjJECAAAECzUZAoNBspsqJEiBAgEBrE2iTvAaiXduqaJfctZAu2Dhs2wExoH/P6Nlj0+jQoX1UVVZF+qaI5r6tTIKCxYuXRfrmhhkz58azL8yM12fNi6VLlsey5Sti1apVzX2Izp8AAQIECLRIAYFCi5xWgyJAgAABAgQIECBAgAABAqUVECiU1lfrBAgQIECAAAECBAgQIECgRQoIFFrktBoUAQIECBAgQIAAAQIECBAorYBAobS+WidAgAABAgQIECBAgAABAi1SQKDQIqfVoAgQIECAAAECBAgQIECAQGkFBAql9dU6AQIECBAgQIAAAQIECBBokQIChRY5rQZFgAABAgQIECBAgAABAgRKKyBQKK2v1gkQIECAAAECBAgQIECAQIsUECi0yGk1KAIECBAgQIAAAQIECBAgUFoBgUJpfbVOgAABAgQIECBAgAABAgRapIBAoUVOq0ERIECAAAECBAgQIECAAIHSCggUSuurdQIECBAgQIAAAQIECBAg0CIFBAotcloNigABAgQIECBAgAABAgQIlFZAoFBaX60TIECAAAECBAgQIECAAIEWKSBQaJHTalAECBAgQIAAAQIECBAgQKC0AgKF0vpqnQABAgQIECBAgAABAgQItEiB/w8AAP//9n+T/QAAQABJREFU7Z0HnFXF2f8ftsAWWJalLB2WjgUQC2IEe1SIMfbYolGjJmo0mmp8E9/XkqLmn5jYFVvsvXeMQrDFjiK9LixlKQtb2MZ/5m4ubDn37sy555x77t3vfD6w9855Zs6c78w5d+Z3npnpVHLgRTuEAAEIQAACEIAABCAAAQhAAAIQgAAELAh0QlCwoIUpBCAAAQhAAAIQgAAEIAABCEAAAhECCAo0BAhAAAIQgAAEIAABCEAAAhCAAASsCSAoWCMjAQQgAAEIQAACEIAABCAAAQhAAAIICrQBCEAAAhCAAAQgAAEIQAACEIAABKwJIChYIyMBBCAAAQhAAAIQgAAEIAABCEAAAggKtAEIQAACEIAABCAAAQhAAAIQgAAErAkgKFgjIwEEIAABCEAAAhCAAAQgAAEI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";if(A.src!=s)return this.reportBrokenImages&&t&&this._apiService.postAttributeQualityFeedback(t.id,"image",A.src,Ee.incorrect),ye((()=>{A.src=s}),250),!1},this._score0=new be(this,30,1e3)}connectedCallback(){console.debug("connectedCallback"),super.connectedCallback(),this._renderState=Be.SPLASH}disconnectedCallback(){console.debug("disconnectedCallback"),super.disconnectedCallback(),this._renderState=Be.INIT,this._score0.stop(),this._score0.reset()}firstUpdated(e){console.debug("firstUpdated"),super.firstUpdated(e)}shouldUpdate(e){return console.debug("shouldUpdate"),super.shouldUpdate(e)}update(e){return console.debug("update"),super.update(e)}updated(e){return console.debug("updated"),super.updated(e)}render(){return console.debug("render"),J`
3
- <div class="guess-the-year-container">
4
- ${this._renderState==Be.INIT?"Loading...":""}
5
- ${this._renderState==Be.SPLASH?this.renderSplashScreen():""}
6
- ${this._renderState==Be.INTRO?this.renderGameIntro():""}
7
- ${this._renderState==Be.PLAY?this.renderGameStage():""}
8
- ${this._renderState==Be.END?this.renderGameEnd():""}
9
- ${this._renderFooter()}
10
- </div>
11
- `}colorElement(e,t){var A,s;console.debug("colorElement"),null===(s=null===(A=null==this?void 0:this.shadowRoot)||void 0===A?void 0:A.querySelector(e))||void 0===s||s.style.setProperty("color",t)}_renderHeader(e=this.i18n.translate("game-name")){return J`
12
- <section id="top" class="header guess-the-year-header">
13
- <h1>${e}</h1>
14
- </section>
15
- `}_renderFooter(){return this._showFooter?J`
16
- <section class="footer guess-the-year-footer">
17
- <div class="guess-the-year-copyright">
18
- ${"The Throwback Company ©"+Ce()().year()}
19
- </div>
20
- </section>
21
- `:J``}renderSplashScreen(){return console.debug("renderSplashScreen"),ye((()=>{this._renderState=Be.INTRO}),1e3),J`
22
- <div id="splash-screen-container" class="splashscreen">
23
- <div class="splash-logo">
24
- <h2>${this.i18n.translate("game-name")}</h2>
25
- <p>${this.i18n.translate("Loading...")}</p>
26
- </div>
27
- </div>
28
- `}_renderYearStepXSelectOptions(e,t,A,s){const r=parseInt(s,10),n=[];for(let s=e;s<=t;s+=A)n.push(J`
29
- <option value="${s}" ?selected=${r==s}>${s}</option>
30
- `);return J`${n}`}renderGameIntro(){console.debug("renderGameIntro");const e=[];for(let t=1;t<=10;t++)e.push(J`
31
- <option value="${t}" ?selected=${this.numberOfQuestions==t}>
32
- ${t}
33
- </option>
34
- `);return J`
35
- ${this._renderHeader(this.i18n.translate("game-introduction-welcome"))}
36
-
37
- <div class="game-intro">
38
- <div class="game-explanation">
39
- <p>
40
- ${this.i18n.translate("game-introduction-p1")}
41
- </p>
42
-
43
- <p>
44
- ${this.i18n.translate("game-introduction-p2")}
45
- </p>
46
-
47
- <p>
48
- ${this.i18n.translate("game-introduction-p3")}
49
- </p>
50
- </div>
51
-
52
- <div class="game-settings">
53
- <p>
54
- ${this.i18n.translate("game-settings-p0")}
55
-
56
- ${this.i18n.translate("game-settings-p1-1")}
57
- <select @change="${this._setNumberOfQuestions}">
58
- ${e}
59
- </select>
60
- ${this.i18n.translate("game-settings-p1-2")}
61
- ${this.i18n.translate("game-settings-p2")}
62
- <select @change="${this._setFromDate}">
63
- ${this._renderYearStepXSelectOptions(we,Se,5,this.from.format("YYYY"))}
64
- </select>
65
- ${this.i18n.translate("game-settings-p3")}
66
- <select @change="${this._setToDate}">
67
- ${this._renderYearStepXSelectOptions(we,Se,5,this.to.format("YYYY"))}
68
- </select>
69
- ${this.i18n.translate("game-settings-p4")}
70
- ${this.i18n.translate("game-settings-p5-1")}
71
- <select @change="${this._setPlayerDob}">
72
- ${this._renderYearStepXSelectOptions(1915,Pe,1,this._playerDob+"")}
73
- </select>
74
- ${this.i18n.translate("game-settings-p5-2")}
75
- </p>
76
- </div>
77
-
78
- <div class="game-start">
79
- <button @click="${this.setupNewGame}">${this.i18n.translate("start")}</button>
80
- </div>
81
- </div>
82
- `}_setPlayerDob(e){this._playerDob=Number(e.target.value),window.localStorage.setItem(ke,this._playerDob+"")}_setNumberOfQuestions(e){this.numberOfQuestions=Number(e.target.value),window.localStorage.setItem(Ue,this.numberOfQuestions+"")}_setFromDate(e){this.from=this.from.year(e.target.value),window.localStorage.setItem(_e,this.from.format("YYYY")+"")}_setToDate(e){this.to=this.to.year(e.target.value),window.localStorage.setItem(Te,this.to.format("YYYY")+"")}renderGameStage(){return console.debug("renderGameStage"),J`
83
- ${this._renderHeader(this.i18n.translate("game-call-to-action").replace(/__FROM__/,this.from.year()+"").replace(/__TO__/,this.to.year()+""))}
84
- <div class="guess-the-year-game-stage">
85
- <div class="game-score">${this._renderGameScore()}</div>
86
-
87
- <div class="container">
88
- <div class="incident">${this._renderIncident()}</div>
89
- ${this._renderHint()}
90
- <div class="sources">${this.renderSources()}</div>
91
- </div>
92
-
93
- <div class="game-controls">
94
- <div class="game-controls--hint">${this._renderHintButton()}</div>
95
- <div class="game-controls--answers">${this._renderAnswers()}</div>
96
- </div>
97
-
98
- ${this._renderFeedback()}
99
- </div>
100
- `}_renderIncident(){var e,t;return J`
101
- <div class="incident--title">
102
- <h1>${null===(e=this._incident)||void 0===e?void 0:e.title}</h1>
103
- </div>
104
-
105
- ${this._renderIncidentImage(this._incident)}
106
-
107
- <div class="incident--text">
108
- <p>${null===(t=this._incident)||void 0===t?void 0:t.text}</p>
109
- </div>
110
- `}_shouldDisplayAnImage(e){const t=!!(e&&e.image&&e.image[0]),A=!this.suppressImages;return t&&A}_renderIncidentImage(e){return e&&this._shouldDisplayAnImage(e)?J`
111
- <div class="incident--image">
112
- <img
113
- @error=${t=>{this._handleImageLoadError(t,e)}}
114
- src="${e.image[0]}"
115
- />
116
- </div>
117
- `:this.suppressImages?J``:J`<div class="incident--image">
118
- <img/>
119
- </div>`}_renderAnswers(){return J`
120
- <div class="answers--list">
121
- <ul>
122
- ${this._answers.map((e=>J`<li @click="${this._handleAnswerClicked}">${e}</li>`))}
123
- </ul>
124
- </div>
125
- `}_renderGameScore(){return J`
126
- <div class="game-score--total">
127
- <div class="game-score--label">${this.i18n.translate("question-number")}:</div>
128
- <div class="game-score--value">
129
- ${this._numberOfQuestionsSeen} van ${this.numberOfQuestions}
130
- </div>
131
- </div>
132
-
133
- <div class="game-score--score">
134
- <div class="game-score--label">${this.i18n.translate("question-score")}:</div>
135
- <div class="game-score--value">${this._score0.value}</div>
136
- </div>
137
-
138
- <div class="game-score--total">
139
- <div class="game-score--label">${this.i18n.translate("total-score")}:</div>
140
- <div class="game-score--value">${this.totalScore}</div>
141
- </div>
142
- `}_handleAnswerClicked(e){const t=e.target.textContent;this._score0.stop(),this._showHint=!1,t&&(console.debug(t,this._solution,this._score,t==this._solution),this._answer=t)}_renderHint(){return this._hint?J` <p>${this._hint}</p> `:J``}_renderHintButton(){return this._showHint?J`
143
- <div class="game-controls--hint">
144
- <button @click="${this._handleHintClicked}">
145
- ${this.i18n.translate("show-hint")} (${this._hints.length-this._hintsIndex})
146
- </button>
147
- </div>
148
- `:J``}_handleHintClicked(){if(console.debug("handleHintClicked",[this._hintsIndex,this._hints.length]),this._hintsIndex<this._hints.length){const e=this._generateHintText(this._hints[this._hintsIndex]);e&&(this._hint=e,this._hintsIndex++,this._score0.subtract(2))}this._hintsIndex>=this._hints.length&&(this._showHint=!1)}_renderFeedback(){var e,t;if(!this._answer&&this._score0.value>0)return J``;const A=this._answer+""==this._solution+"",s=A?this._score0.value:0;return this._score0.isRunning()&&this._score0.stop(),this.totalScore+=s,(null===(e=this._incident)||void 0===e?void 0:e.id)&&this._apiService.incidentRecallability(null===(t=this._incident)||void 0===t?void 0:t.id,this._playerDob,A),A?J`
149
- <div class="feedback">
150
- <div class="feedback--content">
151
- <h3>${this.i18n.translate("answer-correct")}!</h3>
152
- <p>
153
- ${1==this._hintsIndex?this.i18n.translate("used-hint-singular"):this.i18n.translate("used-hint-plural").replace(/__HINTS__/,this._hintsIndex+"")}
154
- </p>
155
- <p>
156
- ${1==s?this.i18n.translate("number-points-singular"):this.i18n.translate("number-points-plural").replace(/__POINTS__/,s+"")}
157
- </p>
158
-
159
- ${this._renderNextQuestionButton()}
160
- </div>
161
- </div>
162
- `:!A&&this._answer?J`
163
- <div class="feedback">
164
- <div class="feedback--content">
165
- <h3>${this.i18n.translate("answer-wrong")}</h3>
166
- <p>
167
- ${this.i18n.translate("correct-answer-was").replace(/__WRONG__/,this._answer+"").replace(/__CORRECT__/,this._solution+"")}
168
- </p>
169
- ${this._renderNextQuestionButton()}
170
- </div>
171
- </div>
172
- `:J`
173
- <div class="feedback">
174
- <div class="feedback--content">
175
- <h3>Helaas</h3>
176
- <p>
177
- ${this.i18n.translate("no-answer-correct-answer-was").replace(/__CORRECT__/,this._solution+"")}
178
- </p>
179
- ${this._renderNextQuestionButton()}
180
- </div>
181
- </div>
182
- `}_renderNextQuestionButton(){return this._numberOfQuestionsSeen<this.numberOfQuestions?J`
183
- <button @click="${this._loadQuestion}">${this.i18n.translate("next-question")}</button>
184
- `:J` <button @click="${this._endGame}">${this.i18n.translate("quit")}</button> `}_endGame(){this._renderState=Be.END}renderGameEnd(){console.debug("renderGameEnd");const e=this.numberOfQuestions*this._score,t=Math.round(this.totalScore/e*100);return J`
185
- ${this._renderHeader("The end!")}
186
- <div class="guess-the-year-game-end">
187
- <p>
188
- ${this.i18n.translate("end").replace(/__SCORE__/,this.totalScore+"").replace(/__MAX_SCORE__/,e+"").replace(/__PERCENT__/,t+"")}
189
- </p>
190
- <p>
191
- ${this.i18n.translate(Qe.scoreToValueJudgement(t))}
192
- </p>
193
- </div>
194
- <button @click="${()=>this._renderState=Be.SPLASH}" >
195
- ${this.i18n.translate("new-game")}
196
- </button>
197
- ${this._renderFooter()}
198
- `}setupNewGame(){console.debug("new game!"),console.debug({"number of questions":this.numberOfQuestions,from:this.from.toISOString(),to:this.to.toISOString()}),this.totalScore=0,this._numberOfQuestionsSeen=0,this._loadQuestion()}_resetStage(){this.sources=[],this._incident=void 0,this._hints=[],this._answer=void 0,this._answers=[],this._hintsIndex=0,this._score0.reset(),this._showHint=!1,this._hint=void 0}async _loadQuestion(){var e;this._resetStage();const t=await this._apiService.fetchOneIncident(this.country,this.category,this.emotion,this.impact,this.date,this.from.format("YYYY-MM-DD"),this.to.format("YYYY-MM-DD"),"40","quiz_year");this._incident=t.incident,this.sources=t.sources,this._solution=Number(((null===(e=t.incident)||void 0===e?void 0:e.yearplusmonth)||"").substring(0,4));const A=[this._solution],s=this.from.year(),r=this.to.year();for(;A.length<4;){const e=Math.floor(Math.random()*(r-s))+s;A.includes(e)||A.push(e)}A.sort(),this._answers=A;for(let e=0;e<this.maxHints;e++){console.debug("loading hint",e);const t=await this._apiService.fetchOneIncident(this.country,Qe.shuffleArray([...Ie]).shift(),void 0,void 0,"",`${this._solution}-01-01`,`${this._solution}-12-31`,void 0,void 0);t.incident&&this._hints.push(t.incident)}0===this._hints.length?this._showHint=!1:this._showHint=!0,this._renderState=Be.PLAY,this._score0.start(),this._numberOfQuestionsSeen+=1}_generateHintText(e){let t="";const A=this.i18n.HintTemplates[e.category];switch(e.category){case le.newsItem:t=(A[Math.round(Math.random()*A.length)]||"").replace(/__TITLE__/,e.title);break;case le.radioSong:const s=e.title.replace(/(.*?)\s+\-.*/,"$1"),r=e.title.replace(/.*\-(.*)/,"$1");t=(A[Math.round(Math.random()*A.length)]||A[0]).replace(/__ARTIST__/,r).replace(/__TRACK__/,s);break;case le.cinemaMovie:case le.tech:t=(A[Math.round(Math.random()*A.length)]||A[0]).replace(/__TITLE__/,e.title);break;case le.newsPresenter:case le.tvShowOrSeries:case le.sports:case le.showbizz:t=(A[Math.round(Math.random()*A.length)]||A[0]).replace(/__TITLE__/,e.title||e.text)}return t}renderSources(){return console.debug("renderSources"),this.sources.length?J`
199
- <div class="guess-the-year-sources" >
200
- Source: ${[...new Set(this.sources)].join(", ")}
201
- </div>
202
- `:J``}};xe.styles=i`
203
- ${ve}
204
- `,fe([ce({type:String,attribute:"tee-e-api-url"})],xe.prototype,"teeeApiUrl",void 0),fe([ce({type:Boolean,attribute:"report-broken-images"})],xe.prototype,"reportBrokenImages",void 0),fe([ce({type:String})],xe.prototype,"date",void 0),fe([ce({type:String})],xe.prototype,"country",void 0),fe([ce({type:String})],xe.prototype,"category",void 0),fe([ce({type:String})],xe.prototype,"emotion",void 0),fe([ce({type:String})],xe.prototype,"impact",void 0),fe([ce({type:ue.Dayjs,converter:{fromAttribute:e=>(console.debug(["from","from",e]),e?e.length>=10?Ce()(e,"YYYY-MM-DD"):Ce()(`${e}-01-01`,"YYYY-MM-DD"):Ce()()),toAttribute:e=>(console.debug(["from","to",e]),e.format("YYYY-MM-DD"))}})],xe.prototype,"from",void 0),fe([ce({type:ue.Dayjs,converter:{fromAttribute:e=>(console.debug(["to","from",e]),e?e.length>=10?Ce()(e,"YYYY-MM-DD"):Ce()(`${e}-12-31`,"YYYY-MM-DD"):Ce()()),toAttribute:e=>(console.debug(["to","to",e]),e.format("YYYY-MM-DD"))}})],xe.prototype,"to",void 0),fe([ce({type:String,attribute:"no-image-src"})],xe.prototype,"noImageSrc",void 0),fe([ce({type:Boolean,attribute:"suppress-images"})],xe.prototype,"suppressImages",void 0),fe([ce({type:Number,attribute:"max-hints"})],xe.prototype,"maxHints",void 0),fe([ce({type:Number,attribute:"number-of-questions",reflect:!0})],xe.prototype,"numberOfQuestions",void 0),fe([de()],xe.prototype,"_incident",void 0),fe([de()],xe.prototype,"_hint",void 0),fe([de()],xe.prototype,"_solution",void 0),fe([de()],xe.prototype,"_renderState",void 0),fe([de()],xe.prototype,"_score",void 0),fe([de()],xe.prototype,"_answer",void 0),xe=fe([(e=>(t,A)=>{void 0!==A?A.addInitializer((()=>{customElements.define(e,t)})):customElements.define(e,t)})("guess-the-year")],xe)}()}();
205
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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WixRQUFVLEdBQ1gsS0FBTStaLEVBQU8sY0FHZixLQUFNLEdBQUdBLFVBQWUsY0FQdEIsUUFTWHBRLFlBQWNvUSxJQUNaL0IsUUFBUUMsTUFBTSxDQUFDLE9BQVEsS0FBTThCLElBQ3RCQSxFQUFNdlUsT0FBTywrQ0EyQjFCLElBckJDLEdBQVMsQ0FDUnlFLEtBQU0sR0FBQXNZLE1BQ05yWSxVQUFXLENBQ1RILGNBQWdCZ1EsSUFDZC9CLFFBQVFDLE1BQU0sQ0FBQyxLQUFNLE9BQVE4QixJQUN4QkEsRUFJREEsRUFBTS9aLFFBQVUsR0FDWCxLQUFNK1osRUFBTyxjQUdmLEtBQU0sR0FBR0EsVUFBZSxjQVB0QixRQVNYcFEsWUFBY29RLElBQ1ovQixRQUFRQyxNQUFNLENBQUMsS0FBTSxLQUFNOEIsSUFDcEJBLEVBQU12VSxPQUFPLDZDQU8xQixJQURDLEdBQVMsQ0FBRXlFLEtBQU1sSyxPQUFRaUssVUFBVyxvREFJckMsSUFEQyxHQUFTLENBQUVDLEtBQU1MLFFBQVNJLFVBQVcsMkRBSXRDLElBREMsR0FBUyxDQUFFQyxLQUFNNUUsT0FBUTJFLFVBQVcsK0NBSXJDLElBREMsR0FBUyxDQUFFQyxLQUFNNUUsT0FBUTJFLFVBQVcsc0JBQXVCRyxTQUFTLDhDQU83RCxJQURQLHVDQU1PLElBRFAsbUNBU08sSUFEUCx1Q0FJTSxJQUROLDBDQUlPLElBRFAsb0NBT08sSUFEUCxxQ0ExSFU4UixHQUFZLElWdEJqQnBjLElBQUcsQ0FBQ3JCLEVBQUVPLFVBQUssSUFBU0EsRUFBRUEsRUFBRXlMLGdCQUFlLEtBQU1nWSxlQUFlQyxPQUFPNWlCLEVBQUVyQixFQUFHLElBQUdna0IsZUFBZUMsT0FBTzVpQixFQUFFckIsRUFBQyxFVXFCM0csQ0FBYyxtQkFDRnlkIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ3Vlc3MtdGhlLXllYXItd2ViLWNvbXBvbmVudC8uL25vZGVfbW9kdWxlcy9kYXlqcy9kYXlqcy5taW4uanMiLCJ3ZWJwYWNrOi8vZ3Vlc3MtdGhlLXllYXItd2ViLWNvbXBvbmVudC93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9ndWVzcy10aGUteWVhci13ZWItY29tcG9uZW50L3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL2d1ZXNzLXRoZS15ZWFyLXdlYi1jb21wb25lbnQvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL2d1ZXNzLXRoZS15ZWFyLXdlYi1jb21wb25lbnQvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9ndWVzcy10aGUteWVhci13ZWItY29tcG9uZW50Ly4vbm9kZV9tb2R1bGVzL0BsaXQvcmVhY3RpdmUtZWxlbWVudC9jc3MtdGFnLmpzIiwid2VicGFjazovL2d1ZXNzLXRoZS15ZWFyLXdlYi1jb21wb25lbnQvLi9ub2RlX21vZHVsZXMvQGxpdC9yZWFjdGl2ZS1lbGVtZW50L3JlYWN0aXZlLWVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vZ3Vlc3MtdGhlLXllYXItd2ViLWNvbXBvbmVudC8uL25vZGVfbW9kdWxlcy9saXQtaHRtbC9saXQtaHRtbC5qcyIsIndlYnBhY2s6Ly9ndWVzcy10aGUteWVhci13ZWItY29tcG9uZW50Ly4vbm9kZV9tb2R1bGVzL2xpdC1lbGVtZW50L2xpdC1lbGVtZW50LmpzIiwid2VicGFjazovL2d1ZXNzLXRoZS15ZWFyLXdlYi1jb21wb25lbnQvLi9ub2RlX21vZHVsZXMvQGxpdC9yZWFjdGl2ZS1lbGVtZW50L2RlY29yYXRvcnMvY3VzdG9tLWVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vZ3Vlc3MtdGhlLXllYXItd2ViLWNvbXBvbmVudC8uL25vZGVfbW9kdWxlcy9AbGl0L3JlYWN0aXZlLWVsZW1lbnQvZGVjb3JhdG9ycy9wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9ndWVzcy10aGUteWVhci13ZWItY29tcG9uZW50Ly4vbm9kZV9tb2R1bGVzL0BsaXQvcmVhY3RpdmUtZWxlbWVudC9kZWNvcmF0b3JzL3N0YXRlLmpzIiwid2VicGFjazovL2d1ZXNzLXRoZS15ZWFyLXdlYi1jb21wb25lbnQvLi9zcmMvbGliL0luY2lkZW50LnRzIiwid2VicGFjazovL2d1ZXNzLXRoZS15ZWFyLXdlYi1jb21wb25lbnQvLi9zcmMvbGliL1V0aWwudHMiLCJ3ZWJwYWNrOi8vZ3Vlc3MtdGhlLXllYXItd2ViLWNvbXBvbmVudC8uL3NyYy9saWIvQXBpU2VydmljZS50cyIsIndlYnBhY2s6Ly9ndWVzcy10aGUteWVhci13ZWItY29tcG9uZW50Ly4vc3JjL2xpYi9lbnVtcy50cyIsIndlYnBhY2s6Ly9ndWVzcy10aGUteWVhci13ZWItY29tcG9uZW50Ly4vc3JjL2xpYi9pMThuL05MLnRzIiwid2VicGFjazovL2d1ZXNzLXRoZS15ZWFyLXdlYi1jb21wb25lbnQvLi9zcmMvc2Nzcy9tYWluLnNjc3MiLCJ3ZWJwYWNrOi8vZ3Vlc3MtdGhlLXllYXItd2ViLWNvbXBvbmVudC8uL3NyYy9saWIvY29udHJvbGxlci9zY29yZWNvbnRyb2xsZXIudHMiLCJ3ZWJwYWNrOi8vZ3Vlc3MtdGhlLXllYXItd2ViLWNvbXBvbmVudC8uL3NyYy9ndWVzcy10aGUteWVhci50cyIsIndlYnBhY2s6Ly9ndWVzcy10aGUteWVhci13ZWItY29tcG9uZW50Ly4vc3JjL2xpYi9pMThuL2kxOG4udHMiLCJ3ZWJwYWNrOi8vZ3Vlc3MtdGhlLXllYXItd2ViLWNvbXBvbmVudC8uL3NyYy9saWIvSWNvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIhZnVuY3Rpb24odCxlKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1lKCk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShlKToodD1cInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOnR8fHNlbGYpLmRheWpzPWUoKX0odGhpcywoZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgdD0xZTMsZT02ZTQsbj0zNmU1LHI9XCJtaWxsaXNlY29uZFwiLGk9XCJzZWNvbmRcIixzPVwibWludXRlXCIsdT1cImhvdXJcIixhPVwiZGF5XCIsbz1cIndlZWtcIixjPVwibW9udGhcIixmPVwicXVhcnRlclwiLGg9XCJ5ZWFyXCIsZD1cImRhdGVcIixsPVwiSW52YWxpZCBEYXRlXCIsJD0vXihcXGR7NH0pWy0vXT8oXFxkezEsMn0pP1stL10/KFxcZHswLDJ9KVtUdFxcc10qKFxcZHsxLDJ9KT86PyhcXGR7MSwyfSk/Oj8oXFxkezEsMn0pP1suOl0/KFxcZCspPyQvLHk9L1xcWyhbXlxcXV0rKV18WXsxLDR9fE17MSw0fXxEezEsMn18ZHsxLDR9fEh7MSwyfXxoezEsMn18YXxBfG17MSwyfXxzezEsMn18WnsxLDJ9fFNTUy9nLE09e25hbWU6XCJlblwiLHdlZWtkYXlzOlwiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXlcIi5zcGxpdChcIl9cIiksbW9udGhzOlwiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlclwiLnNwbGl0KFwiX1wiKSxvcmRpbmFsOmZ1bmN0aW9uKHQpe3ZhciBlPVtcInRoXCIsXCJzdFwiLFwibmRcIixcInJkXCJdLG49dCUxMDA7cmV0dXJuXCJbXCIrdCsoZVsobi0yMCklMTBdfHxlW25dfHxlWzBdKStcIl1cIn19LG09ZnVuY3Rpb24odCxlLG4pe3ZhciByPVN0cmluZyh0KTtyZXR1cm4hcnx8ci5sZW5ndGg+PWU/dDpcIlwiK0FycmF5KGUrMS1yLmxlbmd0aCkuam9pbihuKSt0fSx2PXtzOm0sejpmdW5jdGlvbih0KXt2YXIgZT0tdC51dGNPZmZzZXQoKSxuPU1hdGguYWJzKGUpLHI9TWF0aC5mbG9vcihuLzYwKSxpPW4lNjA7cmV0dXJuKGU8PTA/XCIrXCI6XCItXCIpK20ociwyLFwiMFwiKStcIjpcIittKGksMixcIjBcIil9LG06ZnVuY3Rpb24gdChlLG4pe2lmKGUuZGF0ZSgpPG4uZGF0ZSgpKXJldHVybi10KG4sZSk7dmFyIHI9MTIqKG4ueWVhcigpLWUueWVhcigpKSsobi5tb250aCgpLWUubW9udGgoKSksaT1lLmNsb25lKCkuYWRkKHIsYykscz1uLWk8MCx1PWUuY2xvbmUoKS5hZGQocisocz8tMToxKSxjKTtyZXR1cm4rKC0ocisobi1pKS8ocz9pLXU6dS1pKSl8fDApfSxhOmZ1bmN0aW9uKHQpe3JldHVybiB0PDA/TWF0aC5jZWlsKHQpfHwwOk1hdGguZmxvb3IodCl9LHA6ZnVuY3Rpb24odCl7cmV0dXJue006Yyx5OmgsdzpvLGQ6YSxEOmQsaDp1LG06cyxzOmksbXM6cixROmZ9W3RdfHxTdHJpbmcodHx8XCJcIikudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9zJC8sXCJcIil9LHU6ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXR9fSxnPVwiZW5cIixEPXt9O0RbZ109TTt2YXIgcD1cIiRpc0RheWpzT2JqZWN0XCIsUz1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIF98fCEoIXR8fCF0W3BdKX0sdz1mdW5jdGlvbiB0KGUsbixyKXt2YXIgaTtpZighZSlyZXR1cm4gZztpZihcInN0cmluZ1wiPT10eXBlb2YgZSl7dmFyIHM9ZS50b0xvd2VyQ2FzZSgpO0Rbc10mJihpPXMpLG4mJihEW3NdPW4saT1zKTt2YXIgdT1lLnNwbGl0KFwiLVwiKTtpZighaSYmdS5sZW5ndGg+MSlyZXR1cm4gdCh1WzBdKX1lbHNle3ZhciBhPWUubmFtZTtEW2FdPWUsaT1hfXJldHVybiFyJiZpJiYoZz1pKSxpfHwhciYmZ30sTz1mdW5jdGlvbih0LGUpe2lmKFModCkpcmV0dXJuIHQuY2xvbmUoKTt2YXIgbj1cIm9iamVjdFwiPT10eXBlb2YgZT9lOnt9O3JldHVybiBuLmRhdGU9dCxuLmFyZ3M9YXJndW1lbnRzLG5ldyBfKG4pfSxiPXY7Yi5sPXcsYi5pPVMsYi53PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE8odCx7bG9jYWxlOmUuJEwsdXRjOmUuJHUseDplLiR4LCRvZmZzZXQ6ZS4kb2Zmc2V0fSl9O3ZhciBfPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gTSh0KXt0aGlzLiRMPXcodC5sb2NhbGUsbnVsbCwhMCksdGhpcy5wYXJzZSh0KSx0aGlzLiR4PXRoaXMuJHh8fHQueHx8e30sdGhpc1twXT0hMH12YXIgbT1NLnByb3RvdHlwZTtyZXR1cm4gbS5wYXJzZT1mdW5jdGlvbih0KXt0aGlzLiRkPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZGF0ZSxuPXQudXRjO2lmKG51bGw9PT1lKXJldHVybiBuZXcgRGF0ZShOYU4pO2lmKGIudShlKSlyZXR1cm4gbmV3IERhdGU7aWYoZSBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKGUpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiYhL1okL2kudGVzdChlKSl7dmFyIHI9ZS5tYXRjaCgkKTtpZihyKXt2YXIgaT1yWzJdLTF8fDAscz0ocls3XXx8XCIwXCIpLnN1YnN0cmluZygwLDMpO3JldHVybiBuP25ldyBEYXRlKERhdGUuVVRDKHJbMV0saSxyWzNdfHwxLHJbNF18fDAscls1XXx8MCxyWzZdfHwwLHMpKTpuZXcgRGF0ZShyWzFdLGksclszXXx8MSxyWzRdfHwwLHJbNV18fDAscls2XXx8MCxzKX19cmV0dXJuIG5ldyBEYXRlKGUpfSh0KSx0aGlzLmluaXQoKX0sbS5pbml0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kZDt0aGlzLiR5PXQuZ2V0RnVsbFllYXIoKSx0aGlzLiRNPXQuZ2V0TW9udGgoKSx0aGlzLiREPXQuZ2V0RGF0ZSgpLHRoaXMuJFc9dC5nZXREYXkoKSx0aGlzLiRIPXQuZ2V0SG91cnMoKSx0aGlzLiRtPXQuZ2V0TWludXRlcygpLHRoaXMuJHM9dC5nZXRTZWNvbmRzKCksdGhpcy4kbXM9dC5nZXRNaWxsaXNlY29uZHMoKX0sbS4kdXRpbHM9ZnVuY3Rpb24oKXtyZXR1cm4gYn0sbS5pc1ZhbGlkPWZ1bmN0aW9uKCl7cmV0dXJuISh0aGlzLiRkLnRvU3RyaW5nKCk9PT1sKX0sbS5pc1NhbWU9ZnVuY3Rpb24odCxlKXt2YXIgbj1PKHQpO3JldHVybiB0aGlzLnN0YXJ0T2YoZSk8PW4mJm48PXRoaXMuZW5kT2YoZSl9LG0uaXNBZnRlcj1mdW5jdGlvbih0LGUpe3JldHVybiBPKHQpPHRoaXMuc3RhcnRPZihlKX0sbS5pc0JlZm9yZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmVuZE9mKGUpPE8odCl9LG0uJGc9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBiLnUodCk/dGhpc1tlXTp0aGlzLnNldChuLHQpfSxtLnVuaXg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKS8xZTMpfSxtLnZhbHVlT2Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC5nZXRUaW1lKCl9LG0uc3RhcnRPZj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMscj0hIWIudShlKXx8ZSxmPWIucCh0KSxsPWZ1bmN0aW9uKHQsZSl7dmFyIGk9Yi53KG4uJHU/RGF0ZS5VVEMobi4keSxlLHQpOm5ldyBEYXRlKG4uJHksZSx0KSxuKTtyZXR1cm4gcj9pOmkuZW5kT2YoYSl9LCQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYi53KG4udG9EYXRlKClbdF0uYXBwbHkobi50b0RhdGUoXCJzXCIpLChyP1swLDAsMCwwXTpbMjMsNTksNTksOTk5XSkuc2xpY2UoZSkpLG4pfSx5PXRoaXMuJFcsTT10aGlzLiRNLG09dGhpcy4kRCx2PVwic2V0XCIrKHRoaXMuJHU/XCJVVENcIjpcIlwiKTtzd2l0Y2goZil7Y2FzZSBoOnJldHVybiByP2woMSwwKTpsKDMxLDExKTtjYXNlIGM6cmV0dXJuIHI/bCgxLE0pOmwoMCxNKzEpO2Nhc2Ugbzp2YXIgZz10aGlzLiRsb2NhbGUoKS53ZWVrU3RhcnR8fDAsRD0oeTxnP3krNzp5KS1nO3JldHVybiBsKHI/bS1EOm0rKDYtRCksTSk7Y2FzZSBhOmNhc2UgZDpyZXR1cm4gJCh2K1wiSG91cnNcIiwwKTtjYXNlIHU6cmV0dXJuICQoditcIk1pbnV0ZXNcIiwxKTtjYXNlIHM6cmV0dXJuICQoditcIlNlY29uZHNcIiwyKTtjYXNlIGk6cmV0dXJuICQoditcIk1pbGxpc2Vjb25kc1wiLDMpO2RlZmF1bHQ6cmV0dXJuIHRoaXMuY2xvbmUoKX19LG0uZW5kT2Y9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3RhcnRPZih0LCExKX0sbS4kc2V0PWZ1bmN0aW9uKHQsZSl7dmFyIG4sbz1iLnAodCksZj1cInNldFwiKyh0aGlzLiR1P1wiVVRDXCI6XCJcIiksbD0obj17fSxuW2FdPWYrXCJEYXRlXCIsbltkXT1mK1wiRGF0ZVwiLG5bY109ZitcIk1vbnRoXCIsbltoXT1mK1wiRnVsbFllYXJcIixuW3VdPWYrXCJIb3Vyc1wiLG5bc109ZitcIk1pbnV0ZXNcIixuW2ldPWYrXCJTZWNvbmRzXCIsbltyXT1mK1wiTWlsbGlzZWNvbmRzXCIsbilbb10sJD1vPT09YT90aGlzLiREKyhlLXRoaXMuJFcpOmU7aWYobz09PWN8fG89PT1oKXt2YXIgeT10aGlzLmNsb25lKCkuc2V0KGQsMSk7eS4kZFtsXSgkKSx5LmluaXQoKSx0aGlzLiRkPXkuc2V0KGQsTWF0aC5taW4odGhpcy4kRCx5LmRheXNJbk1vbnRoKCkpKS4kZH1lbHNlIGwmJnRoaXMuJGRbbF0oJCk7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXN9LG0uc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS4kc2V0KHQsZSl9LG0uZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzW2IucCh0KV0oKX0sbS5hZGQ9ZnVuY3Rpb24ocixmKXt2YXIgZCxsPXRoaXM7cj1OdW1iZXIocik7dmFyICQ9Yi5wKGYpLHk9ZnVuY3Rpb24odCl7dmFyIGU9TyhsKTtyZXR1cm4gYi53KGUuZGF0ZShlLmRhdGUoKStNYXRoLnJvdW5kKHQqcikpLGwpfTtpZigkPT09YylyZXR1cm4gdGhpcy5zZXQoYyx0aGlzLiRNK3IpO2lmKCQ9PT1oKXJldHVybiB0aGlzLnNldChoLHRoaXMuJHkrcik7aWYoJD09PWEpcmV0dXJuIHkoMSk7aWYoJD09PW8pcmV0dXJuIHkoNyk7dmFyIE09KGQ9e30sZFtzXT1lLGRbdV09bixkW2ldPXQsZClbJF18fDEsbT10aGlzLiRkLmdldFRpbWUoKStyKk07cmV0dXJuIGIudyhtLHRoaXMpfSxtLnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKC0xKnQsZSl9LG0uZm9ybWF0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLiRsb2NhbGUoKTtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG4uaW52YWxpZERhdGV8fGw7dmFyIHI9dHx8XCJZWVlZLU1NLUREVEhIOm1tOnNzWlwiLGk9Yi56KHRoaXMpLHM9dGhpcy4kSCx1PXRoaXMuJG0sYT10aGlzLiRNLG89bi53ZWVrZGF5cyxjPW4ubW9udGhzLGY9bi5tZXJpZGllbSxoPWZ1bmN0aW9uKHQsbixpLHMpe3JldHVybiB0JiYodFtuXXx8dChlLHIpKXx8aVtuXS5zbGljZSgwLHMpfSxkPWZ1bmN0aW9uKHQpe3JldHVybiBiLnMocyUxMnx8MTIsdCxcIjBcIil9LCQ9Znx8ZnVuY3Rpb24odCxlLG4pe3ZhciByPXQ8MTI/XCJBTVwiOlwiUE1cIjtyZXR1cm4gbj9yLnRvTG93ZXJDYXNlKCk6cn07cmV0dXJuIHIucmVwbGFjZSh5LChmdW5jdGlvbih0LHIpe3JldHVybiByfHxmdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZVwiWVlcIjpyZXR1cm4gU3RyaW5nKGUuJHkpLnNsaWNlKC0yKTtjYXNlXCJZWVlZXCI6cmV0dXJuIGIucyhlLiR5LDQsXCIwXCIpO2Nhc2VcIk1cIjpyZXR1cm4gYSsxO2Nhc2VcIk1NXCI6cmV0dXJuIGIucyhhKzEsMixcIjBcIik7Y2FzZVwiTU1NXCI6cmV0dXJuIGgobi5tb250aHNTaG9ydCxhLGMsMyk7Y2FzZVwiTU1NTVwiOnJldHVybiBoKGMsYSk7Y2FzZVwiRFwiOnJldHVybiBlLiREO2Nhc2VcIkREXCI6cmV0dXJuIGIucyhlLiRELDIsXCIwXCIpO2Nhc2VcImRcIjpyZXR1cm4gU3RyaW5nKGUuJFcpO2Nhc2VcImRkXCI6cmV0dXJuIGgobi53ZWVrZGF5c01pbixlLiRXLG8sMik7Y2FzZVwiZGRkXCI6cmV0dXJuIGgobi53ZWVrZGF5c1Nob3J0LGUuJFcsbywzKTtjYXNlXCJkZGRkXCI6cmV0dXJuIG9bZS4kV107Y2FzZVwiSFwiOnJldHVybiBTdHJpbmcocyk7Y2FzZVwiSEhcIjpyZXR1cm4gYi5zKHMsMixcIjBcIik7Y2FzZVwiaFwiOnJldHVybiBkKDEpO2Nhc2VcImhoXCI6cmV0dXJuIGQoMik7Y2FzZVwiYVwiOnJldHVybiAkKHMsdSwhMCk7Y2FzZVwiQVwiOnJldHVybiAkKHMsdSwhMSk7Y2FzZVwibVwiOnJldHVybiBTdHJpbmcodSk7Y2FzZVwibW1cIjpyZXR1cm4gYi5zKHUsMixcIjBcIik7Y2FzZVwic1wiOnJldHVybiBTdHJpbmcoZS4kcyk7Y2FzZVwic3NcIjpyZXR1cm4gYi5zKGUuJHMsMixcIjBcIik7Y2FzZVwiU1NTXCI6cmV0dXJuIGIucyhlLiRtcywzLFwiMFwiKTtjYXNlXCJaXCI6cmV0dXJuIGl9cmV0dXJuIG51bGx9KHQpfHxpLnJlcGxhY2UoXCI6XCIsXCJcIil9KSl9LG0udXRjT2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuIDE1Ki1NYXRoLnJvdW5kKHRoaXMuJGQuZ2V0VGltZXpvbmVPZmZzZXQoKS8xNSl9LG0uZGlmZj1mdW5jdGlvbihyLGQsbCl7dmFyICQseT10aGlzLE09Yi5wKGQpLG09TyhyKSx2PShtLnV0Y09mZnNldCgpLXRoaXMudXRjT2Zmc2V0KCkpKmUsZz10aGlzLW0sRD1mdW5jdGlvbigpe3JldHVybiBiLm0oeSxtKX07c3dpdGNoKE0pe2Nhc2UgaDokPUQoKS8xMjticmVhaztjYXNlIGM6JD1EKCk7YnJlYWs7Y2FzZSBmOiQ9RCgpLzM7YnJlYWs7Y2FzZSBvOiQ9KGctdikvNjA0OGU1O2JyZWFrO2Nhc2UgYTokPShnLXYpLzg2NGU1O2JyZWFrO2Nhc2UgdTokPWcvbjticmVhaztjYXNlIHM6JD1nL2U7YnJlYWs7Y2FzZSBpOiQ9Zy90O2JyZWFrO2RlZmF1bHQ6JD1nfXJldHVybiBsPyQ6Yi5hKCQpfSxtLmRheXNJbk1vbnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kT2YoYykuJER9LG0uJGxvY2FsZT1mdW5jdGlvbigpe3JldHVybiBEW3RoaXMuJExdfSxtLmxvY2FsZT1mdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybiB0aGlzLiRMO3ZhciBuPXRoaXMuY2xvbmUoKSxyPXcodCxlLCEwKTtyZXR1cm4gciYmKG4uJEw9ciksbn0sbS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBiLncodGhpcy4kZCx0aGlzKX0sbS50b0RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpfSxtLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0sbS50b0lTT1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRkLnRvSVNPU3RyaW5nKCl9LG0udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kZC50b1VUQ1N0cmluZygpfSxNfSgpLGs9Xy5wcm90b3R5cGU7cmV0dXJuIE8ucHJvdG90eXBlPWssW1tcIiRtc1wiLHJdLFtcIiRzXCIsaV0sW1wiJG1cIixzXSxbXCIkSFwiLHVdLFtcIiRXXCIsYV0sW1wiJE1cIixjXSxbXCIkeVwiLGhdLFtcIiREXCIsZF1dLmZvckVhY2goKGZ1bmN0aW9uKHQpe2tbdFsxXV09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuJGcoZSx0WzBdLHRbMV0pfX0pKSxPLmV4dGVuZD1mdW5jdGlvbih0LGUpe3JldHVybiB0LiRpfHwodChlLF8sTyksdC4kaT0hMCksT30sTy5sb2NhbGU9dyxPLmlzRGF5anM9UyxPLnVuaXg9ZnVuY3Rpb24odCl7cmV0dXJuIE8oMWUzKnQpfSxPLmVuPURbZ10sTy5Mcz1ELE8ucD17fSxPfSkpOyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdGZ1bmN0aW9uKCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuXHRcdGZ1bmN0aW9uKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgZGVmaW5pdGlvbikge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmosIHByb3ApIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApOyB9IiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovXG5jb25zdCB0PWdsb2JhbFRoaXMsZT10LlNoYWRvd1Jvb3QmJih2b2lkIDA9PT10LlNoYWR5Q1NTfHx0LlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJlwiYWRvcHRlZFN0eWxlU2hlZXRzXCJpbiBEb2N1bWVudC5wcm90b3R5cGUmJlwicmVwbGFjZVwiaW4gQ1NTU3R5bGVTaGVldC5wcm90b3R5cGUscz1TeW1ib2woKSxvPW5ldyBXZWFrTWFwO2NsYXNzIG57Y29uc3RydWN0b3IodCxlLG8pe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLG8hPT1zKXRocm93IEVycm9yKFwiQ1NTUmVzdWx0IGlzIG5vdCBjb25zdHJ1Y3RhYmxlLiBVc2UgYHVuc2FmZUNTU2Agb3IgYGNzc2AgaW5zdGVhZC5cIik7dGhpcy5jc3NUZXh0PXQsdGhpcy50PWV9Z2V0IHN0eWxlU2hlZXQoKXtsZXQgdD10aGlzLm87Y29uc3Qgcz10aGlzLnQ7aWYoZSYmdm9pZCAwPT09dCl7Y29uc3QgZT12b2lkIDAhPT1zJiYxPT09cy5sZW5ndGg7ZSYmKHQ9by5nZXQocykpLHZvaWQgMD09PXQmJigodGhpcy5vPXQ9bmV3IENTU1N0eWxlU2hlZXQpLnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCksZSYmby5zZXQocyx0KSl9cmV0dXJuIHR9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5jc3NUZXh0fX1jb25zdCByPXQ9Pm5ldyBuKFwic3RyaW5nXCI9PXR5cGVvZiB0P3Q6dCtcIlwiLHZvaWQgMCxzKSxpPSh0LC4uLmUpPT57Y29uc3Qgbz0xPT09dC5sZW5ndGg/dFswXTplLnJlZHVjZSgoKGUscyxvKT0+ZSsodD0+e2lmKCEwPT09dC5fJGNzc1Jlc3VsdCQpcmV0dXJuIHQuY3NzVGV4dDtpZihcIm51bWJlclwiPT10eXBlb2YgdClyZXR1cm4gdDt0aHJvdyBFcnJvcihcIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24gcmVzdWx0OiBcIit0K1wiLiBVc2UgJ3Vuc2FmZUNTUycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dCB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuXCIpfSkocykrdFtvKzFdKSx0WzBdKTtyZXR1cm4gbmV3IG4obyx0LHMpfSxTPShzLG8pPT57aWYoZSlzLmFkb3B0ZWRTdHlsZVNoZWV0cz1vLm1hcCgodD0+dCBpbnN0YW5jZW9mIENTU1N0eWxlU2hlZXQ/dDp0LnN0eWxlU2hlZXQpKTtlbHNlIGZvcihjb25zdCBlIG9mIG8pe2NvbnN0IG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpLG49dC5saXROb25jZTt2b2lkIDAhPT1uJiZvLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsbiksby50ZXh0Q29udGVudD1lLmNzc1RleHQscy5hcHBlbmRDaGlsZChvKX19LGM9ZT90PT50OnQ9PnQgaW5zdGFuY2VvZiBDU1NTdHlsZVNoZWV0Pyh0PT57bGV0IGU9XCJcIjtmb3IoY29uc3QgcyBvZiB0LmNzc1J1bGVzKWUrPXMuY3NzVGV4dDtyZXR1cm4gcihlKX0pKHQpOnQ7ZXhwb3J0e24gYXMgQ1NTUmVzdWx0LFMgYXMgYWRvcHRTdHlsZXMsaSBhcyBjc3MsYyBhcyBnZXRDb21wYXRpYmxlU3R5bGUsZSBhcyBzdXBwb3J0c0Fkb3B0aW5nU3R5bGVTaGVldHMsciBhcyB1bnNhZmVDU1N9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3NzLXRhZy5qcy5tYXBcbiIsImltcG9ydHtnZXRDb21wYXRpYmxlU3R5bGUgYXMgdCxhZG9wdFN0eWxlcyBhcyBzfWZyb21cIi4vY3NzLXRhZy5qc1wiO2V4cG9ydHtDU1NSZXN1bHQsYWRvcHRTdHlsZXMsY3NzLGdldENvbXBhdGlibGVTdHlsZSxzdXBwb3J0c0Fkb3B0aW5nU3R5bGVTaGVldHMsdW5zYWZlQ1NTfWZyb21cIi4vY3NzLXRhZy5qc1wiO1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovY29uc3R7aXM6aSxkZWZpbmVQcm9wZXJ0eTplLGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpyLGdldE93blByb3BlcnR5TmFtZXM6aCxnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6byxnZXRQcm90b3R5cGVPZjpufT1PYmplY3QsYT1nbG9iYWxUaGlzLGM9YS50cnVzdGVkVHlwZXMsbD1jP2MuZW1wdHlTY3JpcHQ6XCJcIixwPWEucmVhY3RpdmVFbGVtZW50UG9seWZpbGxTdXBwb3J0LGQ9KHQscyk9PnQsdT17dG9BdHRyaWJ1dGUodCxzKXtzd2l0Y2gocyl7Y2FzZSBCb29sZWFuOnQ9dD9sOm51bGw7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTp0PW51bGw9PXQ/dDpKU09OLnN0cmluZ2lmeSh0KX1yZXR1cm4gdH0sZnJvbUF0dHJpYnV0ZSh0LHMpe2xldCBpPXQ7c3dpdGNoKHMpe2Nhc2UgQm9vbGVhbjppPW51bGwhPT10O2JyZWFrO2Nhc2UgTnVtYmVyOmk9bnVsbD09PXQ/bnVsbDpOdW1iZXIodCk7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTp0cnl7aT1KU09OLnBhcnNlKHQpfWNhdGNoKHQpe2k9bnVsbH19cmV0dXJuIGl9fSxmPSh0LHMpPT4haSh0LHMpLHk9e2F0dHJpYnV0ZTohMCx0eXBlOlN0cmluZyxjb252ZXJ0ZXI6dSxyZWZsZWN0OiExLGhhc0NoYW5nZWQ6Zn07U3ltYm9sLm1ldGFkYXRhPz89U3ltYm9sKFwibWV0YWRhdGFcIiksYS5saXRQcm9wZXJ0eU1ldGFkYXRhPz89bmV3IFdlYWtNYXA7Y2xhc3MgYiBleHRlbmRzIEhUTUxFbGVtZW50e3N0YXRpYyBhZGRJbml0aWFsaXplcih0KXt0aGlzLl8kRWkoKSwodGhpcy5sPz89W10pLnB1c2godCl9c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKXtyZXR1cm4gdGhpcy5maW5hbGl6ZSgpLHRoaXMuXyRFaCYmWy4uLnRoaXMuXyRFaC5rZXlzKCldfXN0YXRpYyBjcmVhdGVQcm9wZXJ0eSh0LHM9eSl7aWYocy5zdGF0ZSYmKHMuYXR0cmlidXRlPSExKSx0aGlzLl8kRWkoKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldCh0LHMpLCFzLm5vQWNjZXNzb3Ipe2NvbnN0IGk9U3ltYm9sKCkscj10aGlzLmdldFByb3BlcnR5RGVzY3JpcHRvcih0LGkscyk7dm9pZCAwIT09ciYmZSh0aGlzLnByb3RvdHlwZSx0LHIpfX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKHQscyxpKXtjb25zdHtnZXQ6ZSxzZXQ6aH09cih0aGlzLnByb3RvdHlwZSx0KT8/e2dldCgpe3JldHVybiB0aGlzW3NdfSxzZXQodCl7dGhpc1tzXT10fX07cmV0dXJue2dldCgpe3JldHVybiBlPy5jYWxsKHRoaXMpfSxzZXQocyl7Y29uc3Qgcj1lPy5jYWxsKHRoaXMpO2guY2FsbCh0aGlzLHMpLHRoaXMucmVxdWVzdFVwZGF0ZSh0LHIsaSl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX1zdGF0aWMgZ2V0UHJvcGVydHlPcHRpb25zKHQpe3JldHVybiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLmdldCh0KT8/eX1zdGF0aWMgXyRFaSgpe2lmKHRoaXMuaGFzT3duUHJvcGVydHkoZChcImVsZW1lbnRQcm9wZXJ0aWVzXCIpKSlyZXR1cm47Y29uc3QgdD1uKHRoaXMpO3QuZmluYWxpemUoKSx2b2lkIDAhPT10LmwmJih0aGlzLmw9Wy4uLnQubF0pLHRoaXMuZWxlbWVudFByb3BlcnRpZXM9bmV3IE1hcCh0LmVsZW1lbnRQcm9wZXJ0aWVzKX1zdGF0aWMgZmluYWxpemUoKXtpZih0aGlzLmhhc093blByb3BlcnR5KGQoXCJmaW5hbGl6ZWRcIikpKXJldHVybjtpZih0aGlzLmZpbmFsaXplZD0hMCx0aGlzLl8kRWkoKSx0aGlzLmhhc093blByb3BlcnR5KGQoXCJwcm9wZXJ0aWVzXCIpKSl7Y29uc3QgdD10aGlzLnByb3BlcnRpZXMscz1bLi4uaCh0KSwuLi5vKHQpXTtmb3IoY29uc3QgaSBvZiBzKXRoaXMuY3JlYXRlUHJvcGVydHkoaSx0W2ldKX1jb25zdCB0PXRoaXNbU3ltYm9sLm1ldGFkYXRhXTtpZihudWxsIT09dCl7Y29uc3Qgcz1saXRQcm9wZXJ0eU1ldGFkYXRhLmdldCh0KTtpZih2b2lkIDAhPT1zKWZvcihjb25zdFt0LGldb2Ygcyl0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldCh0LGkpfXRoaXMuXyRFaD1uZXcgTWFwO2Zvcihjb25zdFt0LHNdb2YgdGhpcy5lbGVtZW50UHJvcGVydGllcyl7Y29uc3QgaT10aGlzLl8kRXUodCxzKTt2b2lkIDAhPT1pJiZ0aGlzLl8kRWguc2V0KGksdCl9dGhpcy5lbGVtZW50U3R5bGVzPXRoaXMuZmluYWxpemVTdHlsZXModGhpcy5zdHlsZXMpfXN0YXRpYyBmaW5hbGl6ZVN0eWxlcyhzKXtjb25zdCBpPVtdO2lmKEFycmF5LmlzQXJyYXkocykpe2NvbnN0IGU9bmV3IFNldChzLmZsYXQoMS8wKS5yZXZlcnNlKCkpO2Zvcihjb25zdCBzIG9mIGUpaS51bnNoaWZ0KHQocykpfWVsc2Ugdm9pZCAwIT09cyYmaS5wdXNoKHQocykpO3JldHVybiBpfXN0YXRpYyBfJEV1KHQscyl7Y29uc3QgaT1zLmF0dHJpYnV0ZTtyZXR1cm4hMT09PWk/dm9pZCAwOlwic3RyaW5nXCI9PXR5cGVvZiBpP2k6XCJzdHJpbmdcIj09dHlwZW9mIHQ/dC50b0xvd2VyQ2FzZSgpOnZvaWQgMH1jb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fJEVwPXZvaWQgMCx0aGlzLmlzVXBkYXRlUGVuZGluZz0hMSx0aGlzLmhhc1VwZGF0ZWQ9ITEsdGhpcy5fJEVtPW51bGwsdGhpcy5fJEV2KCl9XyRFdigpe3RoaXMuXyRFUz1uZXcgUHJvbWlzZSgodD0+dGhpcy5lbmFibGVVcGRhdGluZz10KSksdGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5fJEVfKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5jb25zdHJ1Y3Rvci5sPy5mb3JFYWNoKCh0PT50KHRoaXMpKSl9YWRkQ29udHJvbGxlcih0KXsodGhpcy5fJEVPPz89bmV3IFNldCkuYWRkKHQpLHZvaWQgMCE9PXRoaXMucmVuZGVyUm9vdCYmdGhpcy5pc0Nvbm5lY3RlZCYmdC5ob3N0Q29ubmVjdGVkPy4oKX1yZW1vdmVDb250cm9sbGVyKHQpe3RoaXMuXyRFTz8uZGVsZXRlKHQpfV8kRV8oKXtjb25zdCB0PW5ldyBNYXAscz10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzO2Zvcihjb25zdCBpIG9mIHMua2V5cygpKXRoaXMuaGFzT3duUHJvcGVydHkoaSkmJih0LnNldChpLHRoaXNbaV0pLGRlbGV0ZSB0aGlzW2ldKTt0LnNpemU+MCYmKHRoaXMuXyRFcD10KX1jcmVhdGVSZW5kZXJSb290KCl7Y29uc3QgdD10aGlzLnNoYWRvd1Jvb3Q/P3RoaXMuYXR0YWNoU2hhZG93KHRoaXMuY29uc3RydWN0b3Iuc2hhZG93Um9vdE9wdGlvbnMpO3JldHVybiBzKHQsdGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50U3R5bGVzKSx0fWNvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5lbmFibGVVcGRhdGluZyghMCksdGhpcy5fJEVPPy5mb3JFYWNoKCh0PT50Lmhvc3RDb25uZWN0ZWQ/LigpKSl9ZW5hYmxlVXBkYXRpbmcodCl7fWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dGhpcy5fJEVPPy5mb3JFYWNoKCh0PT50Lmhvc3REaXNjb25uZWN0ZWQ/LigpKSl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHQscyxpKXt0aGlzLl8kQUsodCxpKX1fJEVDKHQscyl7Y29uc3QgaT10aGlzLmNvbnN0cnVjdG9yLmVsZW1lbnRQcm9wZXJ0aWVzLmdldCh0KSxlPXRoaXMuY29uc3RydWN0b3IuXyRFdSh0LGkpO2lmKHZvaWQgMCE9PWUmJiEwPT09aS5yZWZsZWN0KXtjb25zdCByPSh2b2lkIDAhPT1pLmNvbnZlcnRlcj8udG9BdHRyaWJ1dGU/aS5jb252ZXJ0ZXI6dSkudG9BdHRyaWJ1dGUocyxpLnR5cGUpO3RoaXMuXyRFbT10LG51bGw9PXI/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoZSk6dGhpcy5zZXRBdHRyaWJ1dGUoZSxyKSx0aGlzLl8kRW09bnVsbH19XyRBSyh0LHMpe2NvbnN0IGk9dGhpcy5jb25zdHJ1Y3RvcixlPWkuXyRFaC5nZXQodCk7aWYodm9pZCAwIT09ZSYmdGhpcy5fJEVtIT09ZSl7Y29uc3QgdD1pLmdldFByb3BlcnR5T3B0aW9ucyhlKSxyPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQuY29udmVydGVyP3tmcm9tQXR0cmlidXRlOnQuY29udmVydGVyfTp2b2lkIDAhPT10LmNvbnZlcnRlcj8uZnJvbUF0dHJpYnV0ZT90LmNvbnZlcnRlcjp1O3RoaXMuXyRFbT1lLHRoaXNbZV09ci5mcm9tQXR0cmlidXRlKHMsdC50eXBlKSx0aGlzLl8kRW09bnVsbH19cmVxdWVzdFVwZGF0ZSh0LHMsaSl7aWYodm9pZCAwIT09dCl7aWYoaT8/PXRoaXMuY29uc3RydWN0b3IuZ2V0UHJvcGVydHlPcHRpb25zKHQpLCEoaS5oYXNDaGFuZ2VkPz9mKSh0aGlzW3RdLHMpKXJldHVybjt0aGlzLlAodCxzLGkpfSExPT09dGhpcy5pc1VwZGF0ZVBlbmRpbmcmJih0aGlzLl8kRVM9dGhpcy5fJEVUKCkpfVAodCxzLGkpe3RoaXMuXyRBTC5oYXModCl8fHRoaXMuXyRBTC5zZXQodCxzKSwhMD09PWkucmVmbGVjdCYmdGhpcy5fJEVtIT09dCYmKHRoaXMuXyRFaj8/PW5ldyBTZXQpLmFkZCh0KX1hc3luYyBfJEVUKCl7dGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITA7dHJ5e2F3YWl0IHRoaXMuXyRFU31jYXRjaCh0KXtQcm9taXNlLnJlamVjdCh0KX1jb25zdCB0PXRoaXMuc2NoZWR1bGVVcGRhdGUoKTtyZXR1cm4gbnVsbCE9dCYmYXdhaXQgdCwhdGhpcy5pc1VwZGF0ZVBlbmRpbmd9c2NoZWR1bGVVcGRhdGUoKXtyZXR1cm4gdGhpcy5wZXJmb3JtVXBkYXRlKCl9cGVyZm9ybVVwZGF0ZSgpe2lmKCF0aGlzLmlzVXBkYXRlUGVuZGluZylyZXR1cm47aWYoIXRoaXMuaGFzVXBkYXRlZCl7aWYodGhpcy5yZW5kZXJSb290Pz89dGhpcy5jcmVhdGVSZW5kZXJSb290KCksdGhpcy5fJEVwKXtmb3IoY29uc3RbdCxzXW9mIHRoaXMuXyRFcCl0aGlzW3RdPXM7dGhpcy5fJEVwPXZvaWQgMH1jb25zdCB0PXRoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXM7aWYodC5zaXplPjApZm9yKGNvbnN0W3MsaV1vZiB0KSEwIT09aS53cmFwcGVkfHx0aGlzLl8kQUwuaGFzKHMpfHx2b2lkIDA9PT10aGlzW3NdfHx0aGlzLlAocyx0aGlzW3NdLGkpfWxldCB0PSExO2NvbnN0IHM9dGhpcy5fJEFMO3RyeXt0PXRoaXMuc2hvdWxkVXBkYXRlKHMpLHQ/KHRoaXMud2lsbFVwZGF0ZShzKSx0aGlzLl8kRU8/LmZvckVhY2goKHQ9PnQuaG9zdFVwZGF0ZT8uKCkpKSx0aGlzLnVwZGF0ZShzKSk6dGhpcy5fJEVVKCl9Y2F0Y2gocyl7dGhyb3cgdD0hMSx0aGlzLl8kRVUoKSxzfXQmJnRoaXMuXyRBRShzKX13aWxsVXBkYXRlKHQpe31fJEFFKHQpe3RoaXMuXyRFTz8uZm9yRWFjaCgodD0+dC5ob3N0VXBkYXRlZD8uKCkpKSx0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLmhhc1VwZGF0ZWQ9ITAsdGhpcy5maXJzdFVwZGF0ZWQodCkpLHRoaXMudXBkYXRlZCh0KX1fJEVVKCl7dGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITF9Z2V0IHVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuZ2V0VXBkYXRlQ29tcGxldGUoKX1nZXRVcGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLl8kRVN9c2hvdWxkVXBkYXRlKHQpe3JldHVybiEwfXVwZGF0ZSh0KXt0aGlzLl8kRWomJj10aGlzLl8kRWouZm9yRWFjaCgodD0+dGhpcy5fJEVDKHQsdGhpc1t0XSkpKSx0aGlzLl8kRVUoKX11cGRhdGVkKHQpe31maXJzdFVwZGF0ZWQodCl7fX1iLmVsZW1lbnRTdHlsZXM9W10sYi5zaGFkb3dSb290T3B0aW9ucz17bW9kZTpcIm9wZW5cIn0sYltkKFwiZWxlbWVudFByb3BlcnRpZXNcIildPW5ldyBNYXAsYltkKFwiZmluYWxpemVkXCIpXT1uZXcgTWFwLHA/Lih7UmVhY3RpdmVFbGVtZW50OmJ9KSwoYS5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucz8/PVtdKS5wdXNoKFwiMi4wLjRcIik7ZXhwb3J0e2IgYXMgUmVhY3RpdmVFbGVtZW50LHUgYXMgZGVmYXVsdENvbnZlcnRlcixmIGFzIG5vdEVxdWFsfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0aXZlLWVsZW1lbnQuanMubWFwXG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gKi9cbmNvbnN0IHQ9Z2xvYmFsVGhpcyxpPXQudHJ1c3RlZFR5cGVzLHM9aT9pLmNyZWF0ZVBvbGljeShcImxpdC1odG1sXCIse2NyZWF0ZUhUTUw6dD0+dH0pOnZvaWQgMCxlPVwiJGxpdCRcIixoPWBsaXQkJHtNYXRoLnJhbmRvbSgpLnRvRml4ZWQoOSkuc2xpY2UoMil9JGAsbz1cIj9cIitoLG49YDwke299PmAscj1kb2N1bWVudCxsPSgpPT5yLmNyZWF0ZUNvbW1lbnQoXCJcIiksYz10PT5udWxsPT09dHx8XCJvYmplY3RcIiE9dHlwZW9mIHQmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHQsYT1BcnJheS5pc0FycmF5LHU9dD0+YSh0KXx8XCJmdW5jdGlvblwiPT10eXBlb2YgdD8uW1N5bWJvbC5pdGVyYXRvcl0sZD1cIlsgXFx0XFxuXFxmXFxyXVwiLGY9LzwoPzooIS0tfFxcL1teYS16QS1aXSl8KFxcLz9bYS16QS1aXVtePlxcc10qKXwoXFwvPyQpKS9nLHY9Ly0tPi9nLF89Lz4vZyxtPVJlZ0V4cChgPnwke2R9KD86KFteXFxcXHNcIic+PS9dKykoJHtkfSo9JHtkfSooPzpbXiBcXHRcXG5cXGZcXHJcIidcXGA8Pj1dfChcInwnKXwpKXwkKWAsXCJnXCIpLHA9LycvZyxnPS9cIi9nLCQ9L14oPzpzY3JpcHR8c3R5bGV8dGV4dGFyZWF8dGl0bGUpJC9pLHk9dD0+KGksLi4ucyk9Pih7XyRsaXRUeXBlJDp0LHN0cmluZ3M6aSx2YWx1ZXM6c30pLHg9eSgxKSxiPXkoMiksdz15KDMpLFQ9U3ltYm9sLmZvcihcImxpdC1ub0NoYW5nZVwiKSxFPVN5bWJvbC5mb3IoXCJsaXQtbm90aGluZ1wiKSxBPW5ldyBXZWFrTWFwLEM9ci5jcmVhdGVUcmVlV2Fsa2VyKHIsMTI5KTtmdW5jdGlvbiBQKHQsaSl7aWYoIWEodCl8fCF0Lmhhc093blByb3BlcnR5KFwicmF3XCIpKXRocm93IEVycm9yKFwiaW52YWxpZCB0ZW1wbGF0ZSBzdHJpbmdzIGFycmF5XCIpO3JldHVybiB2b2lkIDAhPT1zP3MuY3JlYXRlSFRNTChpKTppfWNvbnN0IFY9KHQsaSk9Pntjb25zdCBzPXQubGVuZ3RoLTEsbz1bXTtsZXQgcixsPTI9PT1pP1wiPHN2Zz5cIjozPT09aT9cIjxtYXRoPlwiOlwiXCIsYz1mO2ZvcihsZXQgaT0wO2k8cztpKyspe2NvbnN0IHM9dFtpXTtsZXQgYSx1LGQ9LTEseT0wO2Zvcig7eTxzLmxlbmd0aCYmKGMubGFzdEluZGV4PXksdT1jLmV4ZWMocyksbnVsbCE9PXUpOyl5PWMubGFzdEluZGV4LGM9PT1mP1wiIS0tXCI9PT11WzFdP2M9djp2b2lkIDAhPT11WzFdP2M9Xzp2b2lkIDAhPT11WzJdPygkLnRlc3QodVsyXSkmJihyPVJlZ0V4cChcIjwvXCIrdVsyXSxcImdcIikpLGM9bSk6dm9pZCAwIT09dVszXSYmKGM9bSk6Yz09PW0/XCI+XCI9PT11WzBdPyhjPXI/P2YsZD0tMSk6dm9pZCAwPT09dVsxXT9kPS0yOihkPWMubGFzdEluZGV4LXVbMl0ubGVuZ3RoLGE9dVsxXSxjPXZvaWQgMD09PXVbM10/bTonXCInPT09dVszXT9nOnApOmM9PT1nfHxjPT09cD9jPW06Yz09PXZ8fGM9PT1fP2M9ZjooYz1tLHI9dm9pZCAwKTtjb25zdCB4PWM9PT1tJiZ0W2krMV0uc3RhcnRzV2l0aChcIi8+XCIpP1wiIFwiOlwiXCI7bCs9Yz09PWY/cytuOmQ+PTA/KG8ucHVzaChhKSxzLnNsaWNlKDAsZCkrZStzLnNsaWNlKGQpK2greCk6cytoKygtMj09PWQ/aTp4KX1yZXR1cm5bUCh0LGwrKHRbc118fFwiPD8+XCIpKygyPT09aT9cIjwvc3ZnPlwiOjM9PT1pP1wiPC9tYXRoPlwiOlwiXCIpKSxvXX07Y2xhc3MgTntjb25zdHJ1Y3Rvcih7c3RyaW5nczp0LF8kbGl0VHlwZSQ6c30sbil7bGV0IHI7dGhpcy5wYXJ0cz1bXTtsZXQgYz0wLGE9MDtjb25zdCB1PXQubGVuZ3RoLTEsZD10aGlzLnBhcnRzLFtmLHZdPVYodCxzKTtpZih0aGlzLmVsPU4uY3JlYXRlRWxlbWVudChmLG4pLEMuY3VycmVudE5vZGU9dGhpcy5lbC5jb250ZW50LDI9PT1zfHwzPT09cyl7Y29uc3QgdD10aGlzLmVsLmNvbnRlbnQuZmlyc3RDaGlsZDt0LnJlcGxhY2VXaXRoKC4uLnQuY2hpbGROb2Rlcyl9Zm9yKDtudWxsIT09KHI9Qy5uZXh0Tm9kZSgpKSYmZC5sZW5ndGg8dTspe2lmKDE9PT1yLm5vZGVUeXBlKXtpZihyLmhhc0F0dHJpYnV0ZXMoKSlmb3IoY29uc3QgdCBvZiByLmdldEF0dHJpYnV0ZU5hbWVzKCkpaWYodC5lbmRzV2l0aChlKSl7Y29uc3QgaT12W2ErK10scz1yLmdldEF0dHJpYnV0ZSh0KS5zcGxpdChoKSxlPS8oWy4/QF0pPyguKikvLmV4ZWMoaSk7ZC5wdXNoKHt0eXBlOjEsaW5kZXg6YyxuYW1lOmVbMl0sc3RyaW5nczpzLGN0b3I6XCIuXCI9PT1lWzFdP0g6XCI/XCI9PT1lWzFdP0k6XCJAXCI9PT1lWzFdP0w6a30pLHIucmVtb3ZlQXR0cmlidXRlKHQpfWVsc2UgdC5zdGFydHNXaXRoKGgpJiYoZC5wdXNoKHt0eXBlOjYsaW5kZXg6Y30pLHIucmVtb3ZlQXR0cmlidXRlKHQpKTtpZigkLnRlc3Qoci50YWdOYW1lKSl7Y29uc3QgdD1yLnRleHRDb250ZW50LnNwbGl0KGgpLHM9dC5sZW5ndGgtMTtpZihzPjApe3IudGV4dENvbnRlbnQ9aT9pLmVtcHR5U2NyaXB0OlwiXCI7Zm9yKGxldCBpPTA7aTxzO2krKylyLmFwcGVuZCh0W2ldLGwoKSksQy5uZXh0Tm9kZSgpLGQucHVzaCh7dHlwZToyLGluZGV4OisrY30pO3IuYXBwZW5kKHRbc10sbCgpKX19fWVsc2UgaWYoOD09PXIubm9kZVR5cGUpaWYoci5kYXRhPT09bylkLnB1c2goe3R5cGU6MixpbmRleDpjfSk7ZWxzZXtsZXQgdD0tMTtmb3IoOy0xIT09KHQ9ci5kYXRhLmluZGV4T2YoaCx0KzEpKTspZC5wdXNoKHt0eXBlOjcsaW5kZXg6Y30pLHQrPWgubGVuZ3RoLTF9YysrfX1zdGF0aWMgY3JlYXRlRWxlbWVudCh0LGkpe2NvbnN0IHM9ci5jcmVhdGVFbGVtZW50KFwidGVtcGxhdGVcIik7cmV0dXJuIHMuaW5uZXJIVE1MPXQsc319ZnVuY3Rpb24gUyh0LGkscz10LGUpe2lmKGk9PT1UKXJldHVybiBpO2xldCBoPXZvaWQgMCE9PWU/cy5fJENvPy5bZV06cy5fJENsO2NvbnN0IG89YyhpKT92b2lkIDA6aS5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIGg/LmNvbnN0cnVjdG9yIT09byYmKGg/Ll8kQU8/LighMSksdm9pZCAwPT09bz9oPXZvaWQgMDooaD1uZXcgbyh0KSxoLl8kQVQodCxzLGUpKSx2b2lkIDAhPT1lPyhzLl8kQ28/Pz1bXSlbZV09aDpzLl8kQ2w9aCksdm9pZCAwIT09aCYmKGk9Uyh0LGguXyRBUyh0LGkudmFsdWVzKSxoLGUpKSxpfWNsYXNzIE17Y29uc3RydWN0b3IodCxpKXt0aGlzLl8kQVY9W10sdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUQ9dCx0aGlzLl8kQU09aX1nZXQgcGFyZW50Tm9kZSgpe3JldHVybiB0aGlzLl8kQU0ucGFyZW50Tm9kZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX11KHQpe2NvbnN0e2VsOntjb250ZW50Oml9LHBhcnRzOnN9PXRoaXMuXyRBRCxlPSh0Py5jcmVhdGlvblNjb3BlPz9yKS5pbXBvcnROb2RlKGksITApO0MuY3VycmVudE5vZGU9ZTtsZXQgaD1DLm5leHROb2RlKCksbz0wLG49MCxsPXNbMF07Zm9yKDt2b2lkIDAhPT1sOyl7aWYobz09PWwuaW5kZXgpe2xldCBpOzI9PT1sLnR5cGU/aT1uZXcgUihoLGgubmV4dFNpYmxpbmcsdGhpcyx0KToxPT09bC50eXBlP2k9bmV3IGwuY3RvcihoLGwubmFtZSxsLnN0cmluZ3MsdGhpcyx0KTo2PT09bC50eXBlJiYoaT1uZXcgeihoLHRoaXMsdCkpLHRoaXMuXyRBVi5wdXNoKGkpLGw9c1srK25dfW8hPT1sPy5pbmRleCYmKGg9Qy5uZXh0Tm9kZSgpLG8rKyl9cmV0dXJuIEMuY3VycmVudE5vZGU9cixlfXAodCl7bGV0IGk9MDtmb3IoY29uc3QgcyBvZiB0aGlzLl8kQVYpdm9pZCAwIT09cyYmKHZvaWQgMCE9PXMuc3RyaW5ncz8ocy5fJEFJKHQscyxpKSxpKz1zLnN0cmluZ3MubGVuZ3RoLTIpOnMuXyRBSSh0W2ldKSksaSsrfX1jbGFzcyBSe2dldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTT8uXyRBVT8/dGhpcy5fJEN2fWNvbnN0cnVjdG9yKHQsaSxzLGUpe3RoaXMudHlwZT0yLHRoaXMuXyRBSD1FLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFBPXQsdGhpcy5fJEFCPWksdGhpcy5fJEFNPXMsdGhpcy5vcHRpb25zPWUsdGhpcy5fJEN2PWU/LmlzQ29ubmVjdGVkPz8hMH1nZXQgcGFyZW50Tm9kZSgpe2xldCB0PXRoaXMuXyRBQS5wYXJlbnROb2RlO2NvbnN0IGk9dGhpcy5fJEFNO3JldHVybiB2b2lkIDAhPT1pJiYxMT09PXQ/Lm5vZGVUeXBlJiYodD1pLnBhcmVudE5vZGUpLHR9Z2V0IHN0YXJ0Tm9kZSgpe3JldHVybiB0aGlzLl8kQUF9Z2V0IGVuZE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFCfV8kQUkodCxpPXRoaXMpe3Q9Uyh0aGlzLHQsaSksYyh0KT90PT09RXx8bnVsbD09dHx8XCJcIj09PXQ/KHRoaXMuXyRBSCE9PUUmJnRoaXMuXyRBUigpLHRoaXMuXyRBSD1FKTp0IT09dGhpcy5fJEFIJiZ0IT09VCYmdGhpcy5fKHQpOnZvaWQgMCE9PXQuXyRsaXRUeXBlJD90aGlzLiQodCk6dm9pZCAwIT09dC5ub2RlVHlwZT90aGlzLlQodCk6dSh0KT90aGlzLmsodCk6dGhpcy5fKHQpfU8odCl7cmV0dXJuIHRoaXMuXyRBQS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0LHRoaXMuXyRBQil9VCh0KXt0aGlzLl8kQUghPT10JiYodGhpcy5fJEFSKCksdGhpcy5fJEFIPXRoaXMuTyh0KSl9Xyh0KXt0aGlzLl8kQUghPT1FJiZjKHRoaXMuXyRBSCk/dGhpcy5fJEFBLm5leHRTaWJsaW5nLmRhdGE9dDp0aGlzLlQoci5jcmVhdGVUZXh0Tm9kZSh0KSksdGhpcy5fJEFIPXR9JCh0KXtjb25zdHt2YWx1ZXM6aSxfJGxpdFR5cGUkOnN9PXQsZT1cIm51bWJlclwiPT10eXBlb2Ygcz90aGlzLl8kQUModCk6KHZvaWQgMD09PXMuZWwmJihzLmVsPU4uY3JlYXRlRWxlbWVudChQKHMuaCxzLmhbMF0pLHRoaXMub3B0aW9ucykpLHMpO2lmKHRoaXMuXyRBSD8uXyRBRD09PWUpdGhpcy5fJEFILnAoaSk7ZWxzZXtjb25zdCB0PW5ldyBNKGUsdGhpcykscz10LnUodGhpcy5vcHRpb25zKTt0LnAoaSksdGhpcy5UKHMpLHRoaXMuXyRBSD10fX1fJEFDKHQpe2xldCBpPUEuZ2V0KHQuc3RyaW5ncyk7cmV0dXJuIHZvaWQgMD09PWkmJkEuc2V0KHQuc3RyaW5ncyxpPW5ldyBOKHQpKSxpfWsodCl7YSh0aGlzLl8kQUgpfHwodGhpcy5fJEFIPVtdLHRoaXMuXyRBUigpKTtjb25zdCBpPXRoaXMuXyRBSDtsZXQgcyxlPTA7Zm9yKGNvbnN0IGggb2YgdCllPT09aS5sZW5ndGg/aS5wdXNoKHM9bmV3IFIodGhpcy5PKGwoKSksdGhpcy5PKGwoKSksdGhpcyx0aGlzLm9wdGlvbnMpKTpzPWlbZV0scy5fJEFJKGgpLGUrKztlPGkubGVuZ3RoJiYodGhpcy5fJEFSKHMmJnMuXyRBQi5uZXh0U2libGluZyxlKSxpLmxlbmd0aD1lKX1fJEFSKHQ9dGhpcy5fJEFBLm5leHRTaWJsaW5nLGkpe2Zvcih0aGlzLl8kQVA/LighMSwhMCxpKTt0JiZ0IT09dGhpcy5fJEFCOyl7Y29uc3QgaT10Lm5leHRTaWJsaW5nO3QucmVtb3ZlKCksdD1pfX1zZXRDb25uZWN0ZWQodCl7dm9pZCAwPT09dGhpcy5fJEFNJiYodGhpcy5fJEN2PXQsdGhpcy5fJEFQPy4odCkpfX1jbGFzcyBre2dldCB0YWdOYW1lKCl7cmV0dXJuIHRoaXMuZWxlbWVudC50YWdOYW1lfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfWNvbnN0cnVjdG9yKHQsaSxzLGUsaCl7dGhpcy50eXBlPTEsdGhpcy5fJEFIPUUsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLmVsZW1lbnQ9dCx0aGlzLm5hbWU9aSx0aGlzLl8kQU09ZSx0aGlzLm9wdGlvbnM9aCxzLmxlbmd0aD4yfHxcIlwiIT09c1swXXx8XCJcIiE9PXNbMV0/KHRoaXMuXyRBSD1BcnJheShzLmxlbmd0aC0xKS5maWxsKG5ldyBTdHJpbmcpLHRoaXMuc3RyaW5ncz1zKTp0aGlzLl8kQUg9RX1fJEFJKHQsaT10aGlzLHMsZSl7Y29uc3QgaD10aGlzLnN0cmluZ3M7bGV0IG89ITE7aWYodm9pZCAwPT09aCl0PVModGhpcyx0LGksMCksbz0hYyh0KXx8dCE9PXRoaXMuXyRBSCYmdCE9PVQsbyYmKHRoaXMuXyRBSD10KTtlbHNle2NvbnN0IGU9dDtsZXQgbixyO2Zvcih0PWhbMF0sbj0wO248aC5sZW5ndGgtMTtuKyspcj1TKHRoaXMsZVtzK25dLGksbikscj09PVQmJihyPXRoaXMuXyRBSFtuXSksb3x8PSFjKHIpfHxyIT09dGhpcy5fJEFIW25dLHI9PT1FP3Q9RTp0IT09RSYmKHQrPShyPz9cIlwiKStoW24rMV0pLHRoaXMuXyRBSFtuXT1yfW8mJiFlJiZ0aGlzLmoodCl9aih0KXt0PT09RT90aGlzLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHRoaXMubmFtZSk6dGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSh0aGlzLm5hbWUsdD8/XCJcIil9fWNsYXNzIEggZXh0ZW5kcyBre2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9M31qKHQpe3RoaXMuZWxlbWVudFt0aGlzLm5hbWVdPXQ9PT1FP3ZvaWQgMDp0fX1jbGFzcyBJIGV4dGVuZHMga3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTR9aih0KXt0aGlzLmVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKHRoaXMubmFtZSwhIXQmJnQhPT1FKX19Y2xhc3MgTCBleHRlbmRzIGt7Y29uc3RydWN0b3IodCxpLHMsZSxoKXtzdXBlcih0LGkscyxlLGgpLHRoaXMudHlwZT01fV8kQUkodCxpPXRoaXMpe2lmKCh0PVModGhpcyx0LGksMCk/P0UpPT09VClyZXR1cm47Y29uc3Qgcz10aGlzLl8kQUgsZT10PT09RSYmcyE9PUV8fHQuY2FwdHVyZSE9PXMuY2FwdHVyZXx8dC5vbmNlIT09cy5vbmNlfHx0LnBhc3NpdmUhPT1zLnBhc3NpdmUsaD10IT09RSYmKHM9PT1FfHxlKTtlJiZ0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyxzKSxoJiZ0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLm5hbWUsdGhpcyx0KSx0aGlzLl8kQUg9dH1oYW5kbGVFdmVudCh0KXtcImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLl8kQUg/dGhpcy5fJEFILmNhbGwodGhpcy5vcHRpb25zPy5ob3N0Pz90aGlzLmVsZW1lbnQsdCk6dGhpcy5fJEFILmhhbmRsZUV2ZW50KHQpfX1jbGFzcyB6e2NvbnN0cnVjdG9yKHQsaSxzKXt0aGlzLmVsZW1lbnQ9dCx0aGlzLnR5cGU9Nix0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBTT1pLHRoaXMub3B0aW9ucz1zfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQUkodCl7Uyh0aGlzLHQpfX1jb25zdCBaPXtNOmUsUDpoLEE6byxDOjEsTDpWLFI6TSxEOnUsVjpTLEk6UixIOmssTjpJLFU6TCxCOkgsRjp6fSxqPXQubGl0SHRtbFBvbHlmaWxsU3VwcG9ydDtqPy4oTixSKSwodC5saXRIdG1sVmVyc2lvbnM/Pz1bXSkucHVzaChcIjMuMi4xXCIpO2NvbnN0IEI9KHQsaSxzKT0+e2NvbnN0IGU9cz8ucmVuZGVyQmVmb3JlPz9pO2xldCBoPWUuXyRsaXRQYXJ0JDtpZih2b2lkIDA9PT1oKXtjb25zdCB0PXM/LnJlbmRlckJlZm9yZT8/bnVsbDtlLl8kbGl0UGFydCQ9aD1uZXcgUihpLmluc2VydEJlZm9yZShsKCksdCksdCx2b2lkIDAscz8/e30pfXJldHVybiBoLl8kQUkodCksaH07ZXhwb3J0e1ogYXMgXyRMSCx4IGFzIGh0bWwsdyBhcyBtYXRobWwsVCBhcyBub0NoYW5nZSxFIGFzIG5vdGhpbmcsQiBhcyByZW5kZXIsYiBhcyBzdmd9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGl0LWh0bWwuanMubWFwXG4iLCJpbXBvcnR7UmVhY3RpdmVFbGVtZW50IGFzIHR9ZnJvbVwiQGxpdC9yZWFjdGl2ZS1lbGVtZW50XCI7ZXhwb3J0KmZyb21cIkBsaXQvcmVhY3RpdmUtZWxlbWVudFwiO2ltcG9ydHtyZW5kZXIgYXMgZSxub0NoYW5nZSBhcyBzfWZyb21cImxpdC1odG1sXCI7ZXhwb3J0KmZyb21cImxpdC1odG1sXCI7XG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gKi9jbGFzcyByIGV4dGVuZHMgdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZW5kZXJPcHRpb25zPXtob3N0OnRoaXN9LHRoaXMuXyREbz12b2lkIDB9Y3JlYXRlUmVuZGVyUm9vdCgpe2NvbnN0IHQ9c3VwZXIuY3JlYXRlUmVuZGVyUm9vdCgpO3JldHVybiB0aGlzLnJlbmRlck9wdGlvbnMucmVuZGVyQmVmb3JlPz89dC5maXJzdENoaWxkLHR9dXBkYXRlKHQpe2NvbnN0IHM9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3VwZXIudXBkYXRlKHQpLHRoaXMuXyREbz1lKHMsdGhpcy5yZW5kZXJSb290LHRoaXMucmVuZGVyT3B0aW9ucyl9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuXyREbz8uc2V0Q29ubmVjdGVkKCEwKX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5fJERvPy5zZXRDb25uZWN0ZWQoITEpfXJlbmRlcigpe3JldHVybiBzfX1yLl8kbGl0RWxlbWVudCQ9ITAscltcImZpbmFsaXplZFwiXT0hMCxnbG9iYWxUaGlzLmxpdEVsZW1lbnRIeWRyYXRlU3VwcG9ydD8uKHtMaXRFbGVtZW50OnJ9KTtjb25zdCBpPWdsb2JhbFRoaXMubGl0RWxlbWVudFBvbHlmaWxsU3VwcG9ydDtpPy4oe0xpdEVsZW1lbnQ6cn0pO2NvbnN0IG89e18kQUs6KHQsZSxzKT0+e3QuXyRBSyhlLHMpfSxfJEFMOnQ9PnQuXyRBTH07KGdsb2JhbFRoaXMubGl0RWxlbWVudFZlcnNpb25zPz89W10pLnB1c2goXCI0LjEuMVwiKTtleHBvcnR7ciBhcyBMaXRFbGVtZW50LG8gYXMgXyRMRX07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1saXQtZWxlbWVudC5qcy5tYXBcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE3IEdvb2dsZSBMTENcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2VcbiAqL1xuY29uc3QgdD10PT4oZSxvKT0+e3ZvaWQgMCE9PW8/by5hZGRJbml0aWFsaXplcigoKCk9PntjdXN0b21FbGVtZW50cy5kZWZpbmUodCxlKX0pKTpjdXN0b21FbGVtZW50cy5kZWZpbmUodCxlKX07ZXhwb3J0e3QgYXMgY3VzdG9tRWxlbWVudH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jdXN0b20tZWxlbWVudC5qcy5tYXBcbiIsImltcG9ydHtkZWZhdWx0Q29udmVydGVyIGFzIHQsbm90RXF1YWwgYXMgZX1mcm9tXCIuLi9yZWFjdGl2ZS1lbGVtZW50LmpzXCI7XG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAxNyBHb29nbGUgTExDXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlXG4gKi9jb25zdCBvPXthdHRyaWJ1dGU6ITAsdHlwZTpTdHJpbmcsY29udmVydGVyOnQscmVmbGVjdDohMSxoYXNDaGFuZ2VkOmV9LHI9KHQ9byxlLHIpPT57Y29uc3R7a2luZDpuLG1ldGFkYXRhOml9PXI7bGV0IHM9Z2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChpKTtpZih2b2lkIDA9PT1zJiZnbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuc2V0KGkscz1uZXcgTWFwKSxzLnNldChyLm5hbWUsdCksXCJhY2Nlc3NvclwiPT09bil7Y29uc3R7bmFtZTpvfT1yO3JldHVybntzZXQocil7Y29uc3Qgbj1lLmdldC5jYWxsKHRoaXMpO2Uuc2V0LmNhbGwodGhpcyxyKSx0aGlzLnJlcXVlc3RVcGRhdGUobyxuLHQpfSxpbml0KGUpe3JldHVybiB2b2lkIDAhPT1lJiZ0aGlzLlAobyx2b2lkIDAsdCksZX19fWlmKFwic2V0dGVyXCI9PT1uKXtjb25zdHtuYW1lOm99PXI7cmV0dXJuIGZ1bmN0aW9uKHIpe2NvbnN0IG49dGhpc1tvXTtlLmNhbGwodGhpcyxyKSx0aGlzLnJlcXVlc3RVcGRhdGUobyxuLHQpfX10aHJvdyBFcnJvcihcIlVuc3VwcG9ydGVkIGRlY29yYXRvciBsb2NhdGlvbjogXCIrbil9O2Z1bmN0aW9uIG4odCl7cmV0dXJuKGUsbyk9Plwib2JqZWN0XCI9PXR5cGVvZiBvP3IodCxlLG8pOigodCxlLG8pPT57Y29uc3Qgcj1lLmhhc093blByb3BlcnR5KG8pO3JldHVybiBlLmNvbnN0cnVjdG9yLmNyZWF0ZVByb3BlcnR5KG8scj97Li4udCx3cmFwcGVkOiEwfTp0KSxyP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxvKTp2b2lkIDB9KSh0LGUsbyl9ZXhwb3J0e24gYXMgcHJvcGVydHksciBhcyBzdGFuZGFyZFByb3BlcnR5fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByb3BlcnR5LmpzLm1hcFxuIiwiaW1wb3J0e3Byb3BlcnR5IGFzIHR9ZnJvbVwiLi9wcm9wZXJ0eS5qc1wiO1xuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQ1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZVxuICovZnVuY3Rpb24gcihyKXtyZXR1cm4gdCh7Li4ucixzdGF0ZTohMCxhdHRyaWJ1dGU6ITF9KX1leHBvcnR7ciBhcyBzdGF0ZX07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdGF0ZS5qcy5tYXBcbiIsImV4cG9ydCBpbnRlcmZhY2UgSW5jaWRlbnQge1xuICBpbWFnZTogc3RyaW5nO1xuICBhdWRpbzogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGNhdGVnb3J5OiBzdHJpbmc7XG4gIGNvdW50cnk6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIHllYXJwbHVzbW9udGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gQ2F0ZWdvcnkge1xuICB0dlNob3dPclNlcmllcyA9IFwidHZTaG93T3JTZXJpZXNcIixcbiAgc2hvd2JpenogPSBcInNob3diaXp6XCIsXG4gIHRyZW5kID0gXCJ0cmVuZFwiLFxuICB0ZWNoID0gXCJ0ZWNoXCIsXG4gIGZhc2hpb25UcmVuZCA9IFwiZmFzaGlvblRyZW5kXCIsXG4gIGNpbmVtYU1vdmllID0gXCJjaW5lbWFNb3ZpZVwiLFxuICBzdHJlZXRTY2VuZSA9IFwic3RyZWV0U2NlbmVcIixcbiAgbmV3c1ByZXNlbnRlciA9IFwibmV3c1ByZXNlbnRlclwiLFxuICByYWRpb1NvbmcgPSBcInJhZGlvU29uZ1wiLFxuICBuZXdzSXRlbSA9IFwibmV3c0l0ZW1cIixcbiAgaWNvbmljQWxidW0gPSBcImljb25pY0FsYnVtXCIsXG4gIHJhZGlvU2hvdyA9IFwicmFkaW9TaG93XCIsXG4gIGJlc3RTZWxsZXJCb29rID0gXCJiZXN0U2VsbGVyQm9va1wiLFxuICBhZHZlcnRpc2VtZW50ID0gXCJhZHZlcnRpc2VtZW50XCIsXG4gIGNhciA9IFwiY2FyXCIsXG4gIHNwb3J0cyA9IFwic3BvcnRzXCIsXG4gIHVua25vd24gPSBcInVua25vd25cIixcbn1cblxuZXhwb3J0IGNvbnN0IENhdGVnb3JpZXMgPSBbXG4gIC8vIENhdGVnb3J5LmFkdmVydGlzZW1lbnQsXG4gIC8vIENhdGVnb3J5LmJlc3RTZWxsZXJCb29rLFxuICAvLyBDYXRlZ29yeS5jYXIsXG4gIENhdGVnb3J5LmNpbmVtYU1vdmllLFxuICAvLyBDYXRlZ29yeS5mYXNoaW9uVHJlbmQsXG4gIC8vIENhdGVnb3J5Lmljb25pY0FsYnVtLFxuICBDYXRlZ29yeS5uZXdzSXRlbSxcbiAgQ2F0ZWdvcnkubmV3c1ByZXNlbnRlcixcbiAgLy8gQ2F0ZWdvcnkucmFkaW9TaG93LFxuICBDYXRlZ29yeS5yYWRpb1NvbmcsXG4gIENhdGVnb3J5LnNob3diaXp6LFxuICBDYXRlZ29yeS5zcG9ydHMsXG4gIENhdGVnb3J5LnRlY2gsXG4gIENhdGVnb3J5LnR2U2hvd09yU2VyaWVzLFxuXTtcbiIsImV4cG9ydCBjbGFzcyBVdGlsIHtcbiAgcHVibGljIHN0YXRpYyBhc3luYyBhc3luY0ZvcmVhY2goXG4gICAgYXJyYXk6IEFycmF5PGFueT4sIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNhbGxiYWNrOiBhbnksIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICApIHtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXJyYXkubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBhd2FpdCBjYWxsYmFjayhhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyByZW1vdmVBbGxDaGlsZHJlbihcbiAgICBwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKCFwYXJlbnRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBjaGlsZFRvRGVsZXRlID0gcGFyZW50RWxlbWVudC5sYXN0Q2hpbGQ7XG4gICAgd2hpbGUgKGNoaWxkVG9EZWxldGUpIHtcbiAgICAgIHBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoY2hpbGRUb0RlbGV0ZSk7XG4gICAgICBjaGlsZFRvRGVsZXRlID0gcGFyZW50RWxlbWVudC5sYXN0Q2hpbGQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNodWZmbGUgYW4gYXJyYXlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2h1ZmZsZUFycmF5KGFycmF5OiBBcnJheTxhbnk+KTogQXJyYXk8YW55PiB7XG4gICAgcmV0dXJuIGFycmF5LnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSk7XG4gIH1cblxuICAvLyBUaGUgbmFtaW5nIG9mIHRoZSBnZW5lcmF0aW9ucyBzaG91bGQgY29uZm9ybSB0byB3aGF0IHRoZSBiYWNrZW5kIGV4cGVjdHMuXG4gIHB1YmxpYyBzdGF0aWMgZG9iVG9HZW5lcmF0aW9uKGRvYjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAoZG9iID49IDIwMTMpIHJldHVybiAnZ2VuZXJhdGlvbmFscGhhJztcbiAgICBpZiAoZG9iID49IDE5OTcpIHJldHVybiAnZ2VuZXJhdGlvbnonO1xuICAgIGlmIChkb2IgPj0gMTk4MSkgcmV0dXJuICdnZW5lcmF0aW9ueSc7XG4gICAgaWYgKGRvYiA+PSAxOTY1KSByZXR1cm4gJ2dlbmVyYXRpb254JztcbiAgICBpZiAoZG9iID49IDE5NDYpIHJldHVybiAnYmFieWJvb21lcnMnO1xuICAgIGlmIChkb2IgPj0gMTkyOCkgcmV0dXJuICdzaWxlbnRnZW5lcmF0aW9uJztcbiAgICBpZiAoZG9iID49IDE5MDEpIHJldHVybiAnZ3JlYXRlc3RnZW5lcmF0aW9uJztcbiAgICByZXR1cm4gJ2ludmFsaWQtZ2VuZXJhdGlvbic7XG4gICAgLy8gZ3JlYXRlc3RnZW5lcmF0aW9uOiAxOTAxLTE5MjdcbiAgICAvLyBzaWxlbnRnZW5lcmF0aW9uOiAxOTI4LTE5NDVcbiAgICAvLyBiYWJ5Ym9vbWVyczogMTk0Ni0xOTY0XG4gICAgLy8gZ2VuZXJhdGlvbng6IDE5NjUtMTk4MFxuICAgIC8vIGdlbmVyYXRpb255OiAxOTgxLTE5OTZcbiAgICAvLyBnZW5lcmF0aW9uejogMTk5Ny0yMDEyXG4gICAgLy8gZ2VuZXJhdGlvbmFscGhhOiAyMDEzLTIwMjhcbiAgfVxuXG5cbiAgcHVibGljIHN0YXRpYyBzY29yZVRvVmFsdWVKdWRnZW1lbnQoc2NvcmVBc1BlcmNlbnQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHNjb3JlQXNQZXJjZW50ID49IDkwKSByZXR1cm4gJ2V4Y2VsbGVudCc7XG4gICAgaWYgKHNjb3JlQXNQZXJjZW50ID49IDgwKSByZXR1cm4gJ3ZlcnktZ29vZCc7XG4gICAgaWYgKHNjb3JlQXNQZXJjZW50ID49IDcwKSByZXR1cm4gJ2dvb2QnO1xuICAgIGlmIChzY29yZUFzUGVyY2VudCA+PSA2MCkgcmV0dXJuICdyZWFzb25hYmxlLWdvb2QnO1xuICAgIGlmIChzY29yZUFzUGVyY2VudCA+PSA1MCkgcmV0dXJuICdyZWFzb25hYmxlJztcbiAgICBpZiAoc2NvcmVBc1BlcmNlbnQgPj0gNDApIHJldHVybiAnbm90LXNvLWdvb2QnO1xuICAgIGlmIChzY29yZUFzUGVyY2VudCA+PSAyMCkgcmV0dXJuICdub3QtZ29vZCc7XG4gICAgaWYgKHNjb3JlQXNQZXJjZW50ID49IDApIHJldHVybiAnYmFkJztcbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSGFzaCB7XG4gIFtJZGVudGlmaWVyOiBzdHJpbmcgfCBudW1iZXJdOlxuICB8IGJvb2xlYW5cbiAgfCBudW1iZXJcbiAgfCBzdHJpbmdcbiAgfCBzdHJpbmdbXVxuICB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU3RyaW5nQXJyYXlIYXNoIHtcbiAgW0lkZW50aWZpZXI6IHN0cmluZyB8IG51bWJlcl06IHN0cmluZ1tdO1xufVxuIiwiaW1wb3J0IHsgVXRpbCwgSUhhc2ggfSBmcm9tIFwiLi9VdGlsXCI7XG5pbXBvcnQgeyBJbmNpZGVudCB9IGZyb20gXCIuL0luY2lkZW50XCI7XG5cbmV4cG9ydCBjbGFzcyBBcGlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZWVlQXBpVXJsOiBzdHJpbmcpIHsgfVxuXG4gIHB1YmxpYyBhc3luYyBmZXRjaE9uZUluY2lkZW50KFxuICAgIHBvdjogc3RyaW5nLFxuICAgIGNhdGVnb3J5OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgZW1vdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGltcGFjdDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGRhdGU6IHN0cmluZyxcbiAgICBmcm9tOiBzdHJpbmcsXG4gICAgdG86IHN0cmluZyxcbiAgICBtYXhMYXN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICB2YXJpYW50OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICk6IFByb21pc2U8eyBpbmNpZGVudDogSW5jaWRlbnQgfCB1bmRlZmluZWQ7IHNvdXJjZXM6IHN0cmluZ1tdIH0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc29sZS5kZWJ1ZyhcImZldGNoSGlzdG9yeVwiKTtcblxuICAgICAgLy8gU2V0IGRlZmF1bHRzIHRvIGV4cGxpY2l0IGVtcHR5IHN0cmluZy5cbiAgICAgIGNvbnN0IHBvdnMgPSBwb3YgfHwgXCJcIjtcbiAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBjYXRlZ29yeSB8fCBcIlwiO1xuICAgICAgY29uc3QgZW1vdGlvbnMgPSBlbW90aW9uIHx8IFwiXCI7XG4gICAgICBjb25zdCBpbXBhY3RzID0gaW1wYWN0IHx8IFwiXCI7XG4gICAgICBjb25zdCBkYXRlU3RyaW5nID0gZGF0ZSB8fCBcIlwiO1xuICAgICAgY29uc3QgZnJvbVN0cmluZyA9IGZyb20gfHwgXCJcIjtcbiAgICAgIGNvbnN0IHRvU3RyaW5nID0gdG8gfHwgXCJcIjtcbiAgICAgIGNvbnN0IGxpbWl0U3RyaW5nID0gXCIxXCI7XG4gICAgICBjb25zdCBtYXhMYXN0ZWRTdHJpbmcgPSBtYXhMYXN0ZWQgfHwgXCJcIjtcbiAgICAgIGNvbnN0IHZhcmlhbnRzID0gdmFyaWFudCB8fCBcIlwiO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB1cmxzOiBBcnJheTxVUkw+ID0gW107XG5cbiAgICAgICAgY29uc3QgdXJsU2VhcmNoID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgICAgcG92OiBwb3ZzLFxuICAgICAgICAgIGVtb3Rpb246IGVtb3Rpb25zLFxuICAgICAgICAgIGltcGFjdDogaW1wYWN0cyxcbiAgICAgICAgICBsaW1pdDogbGltaXRTdHJpbmcsXG4gICAgICAgICAgdmFyaWFudDogdmFyaWFudHNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQWx3YXlzIHJhbmRvbWl6ZSBpbmNpZGVudHMgb24gdGhlIGJhY2tlbmQuXG4gICAgICAgIHVybFNlYXJjaC5hcHBlbmQoXCJzZWVkXCIsIFwiXCIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7XG5cbiAgICAgICAgaWYgKG1heExhc3RlZCkge1xuICAgICAgICAgIHVybFNlYXJjaC5hcHBlbmQoXCJtYXhsYXN0ZWRcIiwgXCJcIiArIG1heExhc3RlZFN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhZGQgY2F0ZWdvcnkgdG8gc2VhcmNoXG4gICAgICAgIHVybFNlYXJjaC5zZXQoXCJjYXRlZ29yeVwiLCBjYXRlZ29yaWVzKTtcblxuICAgICAgICBpZiAoZGF0ZVN0cmluZykge1xuICAgICAgICAgIC8vIHNldHVwIHVybFxuICAgICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoYCR7dGhpcy50ZWVlQXBpVXJsfS8ke2RhdGV9YCk7XG4gICAgICAgICAgdXJsLnNlYXJjaCA9IHVybFNlYXJjaC50b1N0cmluZygpO1xuXG4gICAgICAgICAgdXJscy5wdXNoKHVybCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZnJvbVN0cmluZyAmJiB0b1N0cmluZykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBmcm9tID0gbmV3IERhdGUoZnJvbVN0cmluZykudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMCwgMTApO1xuICAgICAgICAgICAgY29uc3QgdG8gPSBuZXcgRGF0ZSh0b1N0cmluZykudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMCwgMTApO1xuXG4gICAgICAgICAgICAvLyBhZGQgZnJvbSBhbmQgdG8gZGF0ZSB0byBzZWFyY2hcbiAgICAgICAgICAgIHVybFNlYXJjaC5zZXQoXCJmcm9tXCIsIGZyb20pO1xuICAgICAgICAgICAgdXJsU2VhcmNoLnNldChcInRvXCIsIHRvKTtcblxuICAgICAgICAgICAgLy8gc2V0dXAgdXJsXG4gICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHRoaXMudGVlZUFwaVVybCk7XG4gICAgICAgICAgICB1cmwuc2VhcmNoID0gdXJsU2VhcmNoLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgIHVybHMucHVzaCh1cmwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlLCBmcm9tU3RyaW5nLCB0b1N0cmluZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IFwiTm8gY29ycmVjdCBkYXRlIG9yIHBlcmlvZCBzcGVjaWZpZWQuXCI7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzdGFydCBmZXRjaGluZyBhbGwgaW5jaWRlbnRzXG4gICAgICAgIGxldCBpbmNpZGVudHM6IEFycmF5PEluY2lkZW50PiA9IFtdO1xuICAgICAgICBhd2FpdCBVdGlsLmFzeW5jRm9yZWFjaCh1cmxzLCBhc3luYyAodXJsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7XG4gICAgICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgICBpbmNpZGVudHMgPSBpbmNpZGVudHMuY29uY2F0KGpzb24ucmVzdWx0cyk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBDaG9vc2UgdGhlIGZpcnN0IGluY2lkZW50IGluIHRoZSBsaXN0IGFzIHRoZSBvbmUgdG8gcmV0dXJuLlxuICAgICAgICBjb25zdCBmaXJzdEluY2lkZW50SW5MaXN0ID0gaW5jaWRlbnRzLmxlbmd0aCA/IGluY2lkZW50c1swXSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAvLyBzZWFyY2ggZm9yIHNvdXJjZXMgb24gaW5jaWRlbnRzXG4gICAgICAgIGNvbnN0IHNvdXJjZXNGb3VuZEluSW5jaWRlbnRzOiBJSGFzaCA9IHt9O1xuICAgICAgICBpbmNpZGVudHMuZm9yRWFjaCgoaW5jaWRlbnQ6IEluY2lkZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGluY2lkZW50LnNvdXJjZSkge1xuICAgICAgICAgICAgc291cmNlc0ZvdW5kSW5JbmNpZGVudHNbaW5jaWRlbnQuc291cmNlXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zb2xlLmRlYnVnKFtpbmNpZGVudHMsIHNvdXJjZXNGb3VuZEluSW5jaWRlbnRzXSk7XG5cbiAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgaW5jaWRlbnQ6IGZpcnN0SW5jaWRlbnRJbkxpc3QsXG4gICAgICAgICAgc291cmNlczogT2JqZWN0LmtleXMoc291cmNlc0ZvdW5kSW5JbmNpZGVudHMpLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gcG9zdCBmZWVkYmFjayBhYm91dCB0aGUgYXR0cmlidXRlIG9mIGFuIGluY2lkZW50LlxuICBwdWJsaWMgYXN5bmMgcG9zdEF0dHJpYnV0ZVF1YWxpdHlGZWVkYmFjayhcbiAgICBpbmNpZGVudGlkOiBzdHJpbmcsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICByZW1hcms6IHN0cmluZyxcbiAgKSB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy50ZWVlQXBpVXJsfS9mZWVkYmFjay8ke2luY2lkZW50aWR9L2F0dHJpYnV0ZWA7XG4gICAgYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGF0dHJpYnV0ZSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHJlbWFyayxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gcG9zdCBmZWVkYmFjayBhYm91dCBhbiBpbmNpZGVudC5cbiAgcHVibGljIGFzeW5jIHBvc3RJbmNpZGVudEZlZWRiYWNrKGluY2lkZW50aWQ6IHN0cmluZywgcmVtYXJrOiBzdHJpbmcpIHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnRlZWVBcGlVcmx9L2ZlZWRiYWNrLyR7aW5jaWRlbnRpZH0vcmVtYXJrYDtcbiAgICBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgcmVtYXJrLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICAvLyBQb3N0IHRoZSByZWNhbGxhYmlsaXR5IG9mIHRoaXMgaW5jaWRlbnQgYnkgdGhlIHBsYXllci5cbiAgcHVibGljIGFzeW5jIGluY2lkZW50UmVjYWxsYWJpbGl0eShpbmNpZGVudGlkOiBzdHJpbmcsIGRvYjogbnVtYmVyLCBpc19jb3JyZWN0OiBib29sZWFuKSB7XG4gICAgdGhpcy5wb3N0SW5jaWRlbnRGZWVkYmFjayhpbmNpZGVudGlkLCBgcmVjYWxsYWJpbGl0eToxOiR7ZG9ifTphYnNvbHV0ZS15ZWFyLSR7aXNfY29ycmVjdH1gKTtcbiAgfVxufVxuXG5leHBvcnQgZW51bSBDb250ZW50RmVlZGJhY2sge1xuICBpbmNvcnJlY3QgPSBcImluY29ycmVjdFwiLCAvLyBUaGlzIGNvbnRlbnQgaXMgbm90IGNvcnJlY3RcbiAgdG9vU2hvcnQgPSBcInRvb1Nob3J0XCIsIC8vIFRoaXMgY29udGVudCBpcyB0b28gc2hvcnRcbiAgdG9vTG9uZyA9IFwidG9vTG9uZ1wiLCAvLyBUaGlzIGNvbnRlbnQgaXMgdG9vIGxvbmdcbiAgdG9uZU9mVm9pY2UgPSBcInRvbmVPZlZvaWNlXCIsIC8vIFRoZSB0b25lIG9mIHZvaWNlIG9mIHRoaXMgY29udGVudCBzaG91bGQgYmUgaW1wcm92ZWRcbiAgbWlzc2luZyA9IFwibWlzc2luZ1wiLCAvLyBUaGlzIGNvbnRlbnQgc2hvdWxkIGJlIGNyZWF0ZWRcbiAgbm9NYXRjaCA9IFwibm9NYXRjaFwiLCAvLyBUaGlzIGNvbnRlbnQgZG9lcyBub3QgbWF0Y2ggd2l0aCBpdHMgc2libGluZyBkYXRhXG4gIGJhZERhdGEgPSBcImJhZERhdGFcIiwgLy8gVGhpcyBjb250ZW50IGNvbnRhaW5zIGJhZCBkYXRhXG4gIHVua25vd24gPSBcInVua25vd25cIiwgLy8gV2UgZGlkIG5vdCBleHBlY3QgdGhpcyBpbnB1dC4uLlxufVxuIiwiZW51bSBHYW1lU3RhdGUge1xuICBJTklUID0gXCJpbml0XCIsXG4gIFNQTEFTSCA9IFwic3BsYXNoXCIsXG4gIElOVFJPID0gXCJpbnRyb1wiLFxuICBQTEFZID0gXCJwbGF5XCIsXG4gIEVORCA9IFwiZW5kXCIsXG59XG5cbmV4cG9ydCB7IEdhbWVTdGF0ZSB9O1xuIiwiaW1wb3J0IHsgQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vSW5jaWRlbnRcIjtcbmltcG9ydCB7IElTdHJpbmdBcnJheUhhc2ggfSBmcm9tIFwiLi4vVXRpbFwiO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gXCIuL2kxOG5cIjtcblxuZXhwb3J0IGNsYXNzIE5MIGltcGxlbWVudHMgaTE4biB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBIaW50VGVtcGxhdGVzOiBJU3RyaW5nQXJyYXlIYXNoID0ge30pIHtcbiAgICBIaW50VGVtcGxhdGVzW0NhdGVnb3J5Lm5ld3NQcmVzZW50ZXJdID0gW1xuICAgICAgXCJfX1RJVExFX18gcHJlc2VudGVlcmRlIGhldCBhY2h0IHV1ciBqb3VybmFhbC5cIixcbiAgICBdO1xuICAgIEhpbnRUZW1wbGF0ZXNbQ2F0ZWdvcnkudGVjaF0gPSBbXG4gICAgICBcIlRlY2huaWV1d3M6IF9fVElUTEVfXy5cIixcbiAgICAgIFwiVGVjaG5ldXRlbiBsaWVwZW4gd2FybSB2b29yICdfX1RJVExFX18nLlwiLFxuICAgIF07XG4gICAgSGludFRlbXBsYXRlc1tDYXRlZ29yeS5zaG93Yml6el0gPSBbXG4gICAgICBcIlZlZWwgaW4gaGV0IHNob3diaXp6IG5pZXV3czogX19USVRMRV9fLlwiLFxuICAgIF07XG4gICAgSGludFRlbXBsYXRlc1tDYXRlZ29yeS5zcG9ydHNdID0gW1xuICAgICAgXCJTcG9ydG5pZXV3czogX19USVRMRV9fLlwiLFxuICAgICAgXCJTcG9ydGZhbmF0ZW4gc3ByYWtlbiBvdmVyICdfX1RJVExFX18nLlwiLFxuICAgIF07XG4gICAgSGludFRlbXBsYXRlc1tDYXRlZ29yeS50dlNob3dPclNlcmllc10gPSBbXG4gICAgICBcIk9wIHR2IHdhcyAnX19USVRMRV9fJy5cIixcbiAgICAgIFwiJ3MgQXZvbmRzIGtla2VuIHdlIG5hYXIgJ19fVElUTEVfXycgb3AgdGVsZXZpc2llLlwiLFxuICAgIF07XG4gICAgSGludFRlbXBsYXRlc1tDYXRlZ29yeS5uZXdzSXRlbV0gPSBbXG4gICAgICBcIkluIGRlIGtyYW50IHN0b25kIGRpdCBqYWFyIG9vayAnX19USVRMRV9fJy5cIixcbiAgICAgIFwiJ19fVElUTEVfXycgd2FzIGRpdCBqYWFyIG9vayBpbiBoZXQgbmlldXdzIHRlIGxlemVuLlwiLFxuICAgIF07XG4gICAgSGludFRlbXBsYXRlc1tDYXRlZ29yeS5jaW5lbWFNb3ZpZV0gPSBbXG4gICAgICBcIkRlIGZpbG0gJ19fVElUTEVfXycgZHJhYWlkZSBpbiBkZSBiaW9zY29vcC5cIixcbiAgICAgIFwiRGUgZmlsbSAnX19USVRMRV9fJyB3YXMgZWVuIGthc2tyYWtlci5cIixcbiAgICAgIFwiSW4gZGUgYmlvc2Nvb3Agd2FzIGRlIGZpbG0gJ19fVElUTEVfXycgdGUgemllbi5cIixcbiAgICAgIFwiJ19fVElUTEVfXycgd2FzIG9wIGhldCB3aXR0ZSBkb2VrIHRlIHppZW4uXCIsXG4gICAgXTtcbiAgICBIaW50VGVtcGxhdGVzW0NhdGVnb3J5LnJhZGlvU29uZ10gPSBbXG4gICAgICBcIkRlIGhpdCAnX19UUkFDS19fJyB2YW4gX19BUlRJU1RfXyB3YXMgZWVuIGdyYWFnIGdlZHJhYWlkZSB0dW5lIG9wIGRlIHJhZGlvLlwiLFxuICAgICAgXCJBYW4gaGV0IGxpZWRqZSAnX19UUkFDS19fJyB2YW4gX19BUlRJU1RfXyB3YXMgbmlldCB0ZSBvbnRrb21lbiBvcCBkZSByYWRpby5cIixcbiAgICAgIFwiX19BUlRJU1RfXycgJ19fVFJBQ0tfXycga2xvbmsgcmVnZWxtYXRpZyBvcCBkZSByYWRpby5cIixcbiAgICAgIFwiSmUga29uICdfX1RSQUNLX18nIHZhbiBfX0FSVElTVF9fIG5pZXQgbWlzc2VuIG9wIGRlIHJhZGlvLCBoZXQgd2VyZCB6byB2YWFrIGdlZHJhYWlkLlwiLFxuICAgICAgXCInX19UUkFDS19fJyB2YW4gX19BUlRJU1RfXyB3YXMgZWVuIHZhc3QgbnVtbWVyIG9wIGRlIHJhZGlvLlwiLFxuICAgICAgXCJJbiBkaWUgdGlqZCB3YXMgJ19fVFJBQ0tfXycgdmFuIF9fQVJUSVNUX18gZWVuIHZlZWxnZWhvb3JkZSByYWRpb2hpdC5cIixcbiAgICAgIFwiJ19fVFJBQ0tfXycgdmFuIF9fQVJUSVNUX18gd2FzIGVlbiByYWRpby1mYXZvcmlldCBpbiBkaXQgamFhci5cIixcbiAgICAgIFwiRGUgcmFkaW9zdGF0aW9ucyB6b25kZW4gJ19fVFJBQ0tfXycgdmFuIF9fQVJUSVNUX18gdWl0LlwiLFxuICAgICAgXCJIZXQgbnVtbWVyICdfX1RSQUNLX18nIHZhbiBfX0FSVElTVF9fIGdlbm9vdCB2ZWVsIGFpcnBsYXkgb3AgZGUgcmFkaW8uXCIsXG4gICAgICBcIidfX1RSQUNLX18nIHZhbiBfX0FSVElTVF9fIHdhcyBlZW4gdmVlbGdlaG9vcmQgbnVtbWVyIG9wIGRlIHJhZGlvc3RhdGlvbnMuXCIsXG4gICAgICBcIidfX1RSQUNLX18nIHZhbiBfX0FSVElTVF9fIHdlcmQgZWVuIHJhZGlva2xhc3NpZWtlci5cIixcbiAgICAgIFwiJ19fVFJBQ0tfXycgdmFuIF9fQVJUSVNUX18gd2FzIGVlbiBvbnZlcmdldGVsaWprZSBoaXQgZGllIGRlIHJhZGlvIGRvbWluZWVyZGUuXCIsXG4gICAgICBcIidfX1RSQUNLX18nIHZhbiBfX0FSVElTVF9fIHdhcyBlZW4gdmVlbGdlaG9vcmRlIGhpdC5cIixcbiAgICAgIFwiRGUgcmFkaW9zdGF0aW9ucyBkcmFhaWRlbiAnX19UUkFDS19fJyB2YW4gX19BUlRJU1RfXyBncmlqcy5cIixcbiAgICAgIFwiJ19fVFJBQ0tfXycgdmFuIF9fQVJUSVNUX18gd2FzIGVlbiBjYXRjaHkgbnVtbWVyIGRhdCBqZSBibGVlZiBtZWV6aW5nZW4uXCIsXG4gICAgICBcIkRlIGJlYXQgdmFuICdfX1RSQUNLX18nIHZhbiBfX0FSVElTVF9fIHdhcyBvbndlZXJzdGFhbmJhYXIuXCIsXG4gICAgICBcIidfX1RSQUNLX18nIHZhbiBfX0FSVElTVF9fIGhhZCBlZW4gdW5pZWtlIHNvdW5kIGRpZSBqZSBuaWV0IHNuZWwgdmVyZ2F0LlwiLFxuICAgICAgXCJKZSBrb24gbmlldCBvbSAnX19UUkFDS19fJyB2YW4gX19BUlRJU1RfXyBoZWVuLlwiLFxuICAgIF07XG4gIH1cblxuICB0cmFuc2xhdGUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICBjYXNlIFwieWVhclwiOlxuICAgICAgICByZXR1cm4gXCJqYWFyXCI7XG4gICAgICBjYXNlIFwic3RhcnRcIjpcbiAgICAgICAgcmV0dXJuIFwic3RhcnRcIjtcbiAgICAgIGNhc2UgXCJuZXctZ2FtZVwiOlxuICAgICAgICByZXR1cm4gXCJQcm9iZWVyIG9wbmlldXdcIjtcbiAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgcmV0dXJuIFwiSmUgaGFhbGRlIF9fU0NPUkVfXyB2YW4gZGUgbW9nZWxpamtlIF9fTUFYX1NDT1JFX18gcHVudGVuLiBEYXQga29tdCBvdmVyZWVuIG1ldCBfX1BFUkNFTlRfXyVcIjtcbiAgICAgIGNhc2UgXCJleGNlbGxlbnRcIjpcbiAgICAgICAgcmV0dXJuIFwiRGF0IGlzIGVjaHQgb25nZWxvb2ZsaWprIGdvZWQhXCI7XG4gICAgICBjYXNlIFwidmVyeS1nb29kXCI6XG4gICAgICAgIHJldHVybiBcIkRhdCBpcyBoZWVsIGdvZWQhXCI7XG4gICAgICBjYXNlIFwiZ29vZFwiOlxuICAgICAgICByZXR1cm4gXCJEYXQgaXMgZ29lZCFcIjtcbiAgICAgIGNhc2UgXCJyZWFzb25hYmxlLWdvb2RcIjpcbiAgICAgICAgcmV0dXJuIFwiRGF0IGlzIGJlc3QgZ29lZFwiO1xuICAgICAgY2FzZSBcInJlYXNvbmFibGVcIjpcbiAgICAgICAgcmV0dXJuIFwiRGF0IGlzIGJlc3QgcmVkZWxpamshXCI7XG4gICAgICBjYXNlIFwibm90LXNvLWdvb2RcIjpcbiAgICAgICAgcmV0dXJuIFwiRGF0IGlzIHJlZGVsaWprXCI7XG4gICAgICBjYXNlIFwibm90LWdvb2RcIjpcbiAgICAgICAgcmV0dXJuIFwiRGF0IGlzIG5pZXQgem8gZ29lZFwiO1xuICAgICAgY2FzZSBcImJhZFwiOlxuICAgICAgICByZXR1cm4gXCJEYXQgaXMgcm9uZHVpdCBzbGVjaHQgOilcIjtcbiAgICAgIGNhc2UgXCJuZXh0LXF1ZXN0aW9uXCI6XG4gICAgICAgIHJldHVybiBcIlZvbGdlbmRlIHZyYWFnXCI7XG4gICAgICBjYXNlIFwicXVpdFwiOlxuICAgICAgICByZXR1cm4gXCJBZnNsdWl0ZW5cIjtcbiAgICAgIGNhc2UgXCJhbnN3ZXItY29ycmVjdFwiOlxuICAgICAgICByZXR1cm4gXCJDb3JyZWN0XCI7XG4gICAgICBjYXNlIFwiYW5zd2VyLXdyb25nXCI6XG4gICAgICAgIHJldHVybiBcIkhlbGFhc1wiO1xuICAgICAgY2FzZSBcInF1ZXN0aW9uLW51bWJlclwiOlxuICAgICAgICByZXR1cm4gXCJWcmFhZ1wiO1xuICAgICAgY2FzZSBcInF1ZXN0aW9uLXNjb3JlXCI6XG4gICAgICAgIHJldHVybiBcIlNjb3JlXCI7XG4gICAgICBjYXNlIFwidG90YWwtc2NvcmVcIjpcbiAgICAgICAgcmV0dXJuIFwiVG90YWFsc2NvcmVcIjtcbiAgICAgIGNhc2UgXCJzaG93LWhpbnRcIjpcbiAgICAgICAgcmV0dXJuIFwiVG9vbiBoaW50XCI7XG4gICAgICBjYXNlIFwidXNlZC1oaW50LXNpbmd1bGFyXCI6XG4gICAgICAgIHJldHVybiBcIkplIGhlYnQgMSBoaW50IGdlYnJ1aWt0XCI7XG4gICAgICBjYXNlIFwidXNlZC1oaW50LXBsdXJhbFwiOlxuICAgICAgICByZXR1cm4gXCJKZSBoZWJ0IF9fSElOVFNfXyBoaW50cyBnZWJydWlrdFwiO1xuICAgICAgY2FzZSBcIm51bWJlci1wb2ludHMtc2luZ3VsYXJcIjpcbiAgICAgICAgcmV0dXJuIFwiVm9vciBkZXplIHZyYWFnIGhlYiBqZSAxIHB1bnQgZ2VoYWFsZFwiO1xuICAgICAgY2FzZSBcIm51bWJlci1wb2ludHMtcGx1cmFsXCI6XG4gICAgICAgIHJldHVybiBcIlZvb3IgZGV6ZSB2cmFhZyBoZWIgamUgX19QT0lOVFNfXyBwdW50ZW4gZ2VoYWFsZFwiO1xuICAgICAgY2FzZSBcImNvcnJlY3QtYW5zd2VyLXdhc1wiOlxuICAgICAgICByZXR1cm4gXCJKZSBrb29zIHZvb3IgX19XUk9OR19fIG1hYXIgaGV0IGp1aXN0ZSBhbnR3b29yZCB3YXMgX19DT1JSRUNUX19cIjtcbiAgICAgIGNhc2UgXCJuby1hbnN3ZXItY29ycmVjdC1hbnN3ZXItd2FzXCI6XG4gICAgICAgIHJldHVybiBcIkplIGhlYnQgZ2VlbiBhbnR3b29yZCBnZWdldmVuIG1hYXIgaGV0IGp1aXN0ZSBhbnR3b29yZCB3YXMgX19DT1JSRUNUX19cIjtcbiAgICAgIGNhc2UgXCJnYW1lLW5hbWVcIjpcbiAgICAgICAgcmV0dXJuIFwiR3Vlc3MgVGhlIFllYXJcIjtcbiAgICAgIGNhc2UgXCJnYW1lLWNhbGwtdG8tYWN0aW9uXCI6XG4gICAgICAgIHJldHVybiBcIkdhbWUgb24hIFVpdCBfX0ZST01fXyB0b3QgX19UT19fXCI7XG4gICAgICBjYXNlIFwieW91ci1hbnN3ZXJcIjpcbiAgICAgICAgcmV0dXJuIFwiTWlqbiBhbnR3b29yZFwiO1xuICAgICAgY2FzZSBcInlvdXItZmVlZGJhY2tcIjpcbiAgICAgICAgcmV0dXJuIFwib3BtZXJraW5nZW5cIjtcbiAgICAgIGNhc2UgXCJ0cnktbGVmdFwiOlxuICAgICAgICByZXR1cm4gXCJfX1RSSUVTX18gcG9naW5nIG92ZXJcIjtcbiAgICAgIGNhc2UgXCJ0cmllcy1sZWZ0XCI6XG4gICAgICAgIHJldHVybiBcIl9fVFJJRVNfXyBwb2dpbmdlbiBvdmVyXCI7XG4gICAgICBjYXNlIFwiaW4tb25lLXNlY29uZFwiOlxuICAgICAgICByZXR1cm4gXCJJbiBfX1NFQ09ORFNfXyBzZWNvbmRlXCI7XG4gICAgICBjYXNlIFwiaW4teC1zZWNvbmRzXCI6XG4gICAgICAgIHJldHVybiBcIkluIF9fU0VDT05EU19fIHNlY29uZGVuXCI7XG4gICAgICBjYXNlIFwiZ2FtZS1zZXR0aW5ncy1wMFwiOlxuICAgICAgICByZXR1cm4gXCJabyB3aWwgaWsgaGV0IHNwZWxlbjogXCJcbiAgICAgIGNhc2UgXCJnYW1lLXNldHRpbmdzLXA1LTFcIjpcbiAgICAgICAgcmV0dXJuIFwiSG91ZCByZWtlbmluZyBtZXQgbWlqbiBnZWJvb3J0ZWphYXIgKFwiXG4gICAgICBjYXNlIFwiZ2FtZS1zZXR0aW5ncy1wNS0yXCI6XG4gICAgICAgIHJldHVybiBcIikgYmlqIGRlIHNlbGVjdGllIHZhbiBkZSBnZWJldXJlbmlzc2VuLlwiXG4gICAgICBjYXNlIFwiZ2FtZS1zZXR0aW5ncy1wMS0xXCI6XG4gICAgICAgIHJldHVybiBcImdlZWYgbWUgbWF4aW1hYWxcIlxuICAgICAgY2FzZSBcImdhbWUtc2V0dGluZ3MtcDEtMlwiOlxuICAgICAgICByZXR1cm4gXCJnZWJldXJ0ZW5pc3Nlbi5cIlxuICAgICAgY2FzZSBcImdhbWUtc2V0dGluZ3MtcDJcIjpcbiAgICAgICAgcmV0dXJuIFwiQmVwZXJrIGplIHRvdCBkZSBwZXJpb2RlIHZhbiBcIlxuICAgICAgY2FzZSBcImdhbWUtc2V0dGluZ3MtcDNcIjpcbiAgICAgICAgcmV0dXJuIFwiIHRvdCBcIlxuICAgICAgY2FzZSBcImdhbWUtc2V0dGluZ3MtcDRcIjpcbiAgICAgICAgcmV0dXJuIFwiLlwiXG4gICAgICBjYXNlIFwiZ2FtZS1pbnRyb2R1Y3Rpb24tcDFcIjpcbiAgICAgICAgcmV0dXJuIFwiV2Vsa29tIGJpaiBkZSB1bHRpZW1lIHRlc3QgdmFuIGplIGhpc3RvcmlzY2hlIGtlbm5pcyFcIlxuICAgICAgY2FzZSBcImdhbWUtaW50cm9kdWN0aW9uLXAyXCI6XG4gICAgICAgIHJldHVybiBcIkR1aWsgaW4gZGUgdGlqZCBlbiBkYWFnIGplemVsZiBlbiBqZSB2cmllbmRlbiB1aXQgb20gZGUgamFhcnRhbGxlbiB2YW4gZmFzY2luZXJlbmRlIGdlYmV1cnRlbmlzc2VuIHRlIHJhZGVuLiBWYW4gYmFhbmJyZWtlbmRlIHVpdHZpbmRpbmdlbiB0b3QgbWVtb3JhYmVsZSBtb21lbnRlbiwgZGl0IHNwZWwgbmVlbXQgamUgbWVlIG9wIGVlbiByZWlzIGRvb3IgZGUgZ2VzY2hpZWRlbmlzLlwiXG4gICAgICBjYXNlIFwiZ2FtZS1pbnRyb2R1Y3Rpb24tcDNcIjpcbiAgICAgICAgcmV0dXJuIFwiQmVuIGppaiBkZSBtZWVzdGVyIHZhbiBkZSBjaHJvbm9sb2dpZT8gT250ZGVrIGhldCBudSFcIlxuICAgICAgY2FzZSBcImdhbWUtaW50cm9kdWN0aW9uLXdlbGNvbWVcIjpcbiAgICAgICAgcmV0dXJuIGBXZWxrb20gYmlqIEd1ZXNzIFRoZSBZZWFyIWBcbiAgICB9XG4gICAgcmV0dXJuIGtleTtcbiAgfVxufVxuIiwiXG4gICAgICAgIGltcG9ydCB7Y3NzfSBmcm9tICdsaXQnO1xuICAgICAgICBleHBvcnQgZGVmYXVsdCBjc3NgaDF7Y29sb3I6dmFyKC0tZ3Vlc3MtdGhlLXllYXItdGl0bGUtY29sb3IsIHJnYigwLCAwLCAwKSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ndWVzcy10aGUteWVhci10aXRsZS1iYWNrZ3JvdW5kLWNvbG9yLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykpO2ZvbnQtc2l6ZTp2YXIoLS1ndWVzcy10aGUteWVhci10aXRsZS1mb250LXNpemUsIDE2cHgpO21hcmdpbjowO3BhZGRpbmc6MXJlbTt0ZXh0LWFsaWduOmNlbnRlcn1we2NvbG9yOnZhcigtLWd1ZXNzLXRoZS15ZWFyLXRleHQtY29sb3IsIGJsYWNrKTtmb250LXNpemU6dmFyKC0tZ3Vlc3MtdGhlLXllYXItdGV4dC1mb250LXNpemUsIDE0cHgpfTpob3N0e3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOnZhcigtLWd1ZXNzLXRoZS15ZWFyLXRleHQtY29sb3IsIGJsYWNrKTtiYWNrZ3JvdW5kOnZhcigtLWd1ZXNzLXRoZS15ZWFyLWJhY2tncm91bmQtY29sb3IsIHdoaXRlKTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5ndWVzcy10aGUteWVhci1jb250YWluZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttYXgtd2lkdGg6NzY4cHg7bWFyZ2luOjAgYXV0b30uZ3Vlc3MtdGhlLXllYXItaGVhZGVye3Bvc2l0aW9uOnN0aWNreTt6LWluZGV4OjEwMDt0b3A6MDtib3gtc2hhZG93OjBweCA1cHggNXB4IDBweCByZ2JhKDAsMCwwLC4zKTttYXJnaW4tYm90dG9tOjE1cHh9LmZvb3Rlcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtjb2xvcjp2YXIoLS1ndWVzcy10aGUteWVhci1mb290ZXItY29sb3IsIHJnYigwLCAwLCAwKSk7Zm9udC1zaXplOnZhcigtLWd1ZXNzLXRoZS15ZWFyLWZvb3Rlci1mb250LXNpemUsIDEycHgpO21hcmdpbjowO3otaW5kZXg6LTF9LnNwbGFzaHNjcmVlbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWd1ZXNzLXRoZS15ZWFyLXNwbGFzaC1zY3JlZW4tYmFja2dyb3VuZC1jb2xvciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpKTtjb2xvcjp2YXIoLS1ndWVzcy10aGUteWVhci1zcGxhc2gtc2NyZWVuLWNvbG9yLCByZ2IoMCwgMCwgMCkpO2ZvbnQtc2l6ZTp2YXIoLS1ndWVzcy10aGUteWVhci1zcGxhc2gtc2NyZWVuLWZvbnQtc2l6ZSwgMTZweCk7bWFyZ2luOjA7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MTAwJTtoZWlnaHQ6OTB2aH0uc3BsYXNoc2NyZWVuIC5zcGxhc2gtbG9nb3ttYXJnaW46MCBhdXRvO3BhZGRpbmc6MDtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc3BsYXNoc2NyZWVuIC5zcGxhc2gtbG9nbyBpbWd7bWF4LXdpZHRoOjMwMHB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxcHggc29saWQgIzAwMH1kaXYuZ2FtZS1pbnRyb3tjb2xvcjp2YXIoLS1ndWVzcy10aGUteWVhci10aXRsZS1jb2xvciwgcmdiKDAsIDAsIDApKTttYXJnaW46MDtwYWRkaW5nOjA7dGV4dC1hbGlnbjpsZWZ0fWRpdi5nYW1lLWludHJvPmRpdntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWd1ZXNzLXRoZS15ZWFyLWludHJvLWJhY2tncm91bmQtY29sb3IsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSk7cGFkZGluZzoxcmVtO21heC13aWR0aDo3MGNoO21hcmdpbjoxcmVtIGF1dG99ZGl2LmdhbWUtaW50cm8gLmdhbWUtc3RhcnQgYnV0dG9ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tZ3Vlc3MtdGhlLXllYXItYnV0dG9uLWJhY2tncm91bmQtY29sb3IsIHJnYigwLCAwLCAwKSk7Y29sb3I6dmFyKC0tZ3Vlc3MtdGhlLXllYXItYnV0dG9uLWNvbG9yLCByZ2IoMjU1LCAyNTUsIDI1NSkpO2JvcmRlcjowO3BhZGRpbmc6MXJlbTttYXJnaW46MXJlbSBhdXRvO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtmb250LXNpemU6dmFyKC0tZ3Vlc3MtdGhlLXllYXItYnV0dG9uLWZvbnQtc2l6ZSwgMXJlbSk7Zm9udC13ZWlnaHQ6Ym9sZDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y3Vyc29yOnBvaW50ZXJ9Lmd1ZXNzLXRoZS15ZWFyLWdhbWUtc3RhZ2V7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1ib3R0b206MTAwcHh9Lmd1ZXNzLXRoZS15ZWFyLWdhbWUtc3RhZ2UgLmNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5ndWVzcy10aGUteWVhci1nYW1lLXN0YWdlIC5pbmNpZGVudC0tdGl0bGV7dG9wOjA7d2lkdGg6MTAwJTtib3JkZXItdG9wOjFweCBzb2xpZCAjZmZmO21hcmdpbi1ib3R0b206MTBweH0uZ3Vlc3MtdGhlLXllYXItZ2FtZS1zdGFnZSAuaW5jaWRlbnQtLWltYWdle3otaW5kZXg6LTE7aGVpZ2h0OjQwdmg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5ndWVzcy10aGUteWVhci1nYW1lLXN0YWdlIC5pbmNpZGVudC0taW1hZ2UgaW1ne21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uZ3Vlc3MtdGhlLXllYXItZ2FtZS1zdGFnZSAuaW5jaWRlbnQtLXRleHR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ndWVzcy10aGUteWVhci10ZXh0LWJhY2tncm91bmQtY29sb3IsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSk7Y29sb3I6dmFyKC0tZ3Vlc3MtdGhlLXllYXItdGV4dC1jb2xvciwgcmdiKDAsIDAsIDApKTtmb250LXNpemU6dmFyKC0tZ3Vlc3MtdGhlLXllYXItdGV4dC1mb250LXNpemUsIDE0cHgpfS5ndWVzcy10aGUteWVhci1nYW1lLXN0YWdlIC5nYW1lLWNvbnRyb2xze3Bvc2l0aW9uOnN0aWNreTtib3R0b206MjVweDtsZWZ0OjA7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC43KTtwYWRkaW5nLXRvcDoxMHB4fS5ndWVzcy10aGUteWVhci1nYW1lLXN0YWdlIC5nYW1lLWNvbnRyb2xzLS1oaW50e3RleHQtYWxpZ246cmlnaHR9Lmd1ZXNzLXRoZS15ZWFyLWdhbWUtc3RhZ2UgLmdhbWUtY29udHJvbHMtLWhpbnQgYnV0dG9ue21hcmdpbjoxMHB4O3BhZGRpbmc6MTBweDtib3JkZXItcmFkaXVzOjEwcHg7Ym9yZGVyOjFweCBzb2xpZCAjMDAwO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tZ3Vlc3MtdGhlLXllYXItdGV4dC1iYWNrZ3JvdW5kLWNvbG9yKTtjb2xvcjp2YXIoLS1ndWVzcy10aGUteWVhci10ZXh0LWNvbG9yKX0uZ3Vlc3MtdGhlLXllYXItZ2FtZS1zdGFnZSAuZ2FtZS1jb250cm9scy0taGludCBidXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ndWVzcy10aGUteWVhci1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7Y29sb3I6dmFyKC0tZ3Vlc3MtdGhlLXllYXItYnV0dG9uLWNvbG9yKX0uZ3Vlc3MtdGhlLXllYXItZ2FtZS1zdGFnZSAuZ2FtZS1jb250cm9scy0tYW5zd2VycyAuYW5zd2Vycy0tbGlzdCB1bHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1ldmVubHl9Lmd1ZXNzLXRoZS15ZWFyLWdhbWUtc3RhZ2UgLmdhbWUtY29udHJvbHMtLWFuc3dlcnMgLmFuc3dlcnMtLWxpc3QgdWwgbGl7Ym9yZGVyOjFweCBzb2xpZCAjMDAwO2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjEwcHggMTBweDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWd1ZXNzLXRoZS15ZWFyLXRleHQtYmFja2dyb3VuZC1jb2xvcil9Lmd1ZXNzLXRoZS15ZWFyLWdhbWUtc3RhZ2UgLmdhbWUtY29udHJvbHMtLWFuc3dlcnMgLmFuc3dlcnMtLWxpc3QgdWwgbGk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ndWVzcy10aGUteWVhci1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7Y29sb3I6dmFyKC0tZ3Vlc3MtdGhlLXllYXItYnV0dG9uLWNvbG9yKX0uZ3Vlc3MtdGhlLXllYXItZ2FtZS1zdGFnZSAuZmVlZGJhY2t7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTttYXJnaW46YXV0bztiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lmd1ZXNzLXRoZS15ZWFyLWdhbWUtc3RhZ2UgLmZlZWRiYWNrLS1jb250ZW50e3dpZHRoOjMwMHB4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tZ3Vlc3MtdGhlLXllYXItdGV4dC1iYWNrZ3JvdW5kLWNvbG9yKTtwYWRkaW5nOjE1cHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JveC1zaGFkb3c6MHB4IDVweCA1cHggMHB4IHJnYmEoMCwwLDAsLjMpfS5ndWVzcy10aGUteWVhci1nYW1lLXN0YWdlIC5nYW1lLXNjb3Jle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1ldmVubHk7bWFyZ2luLWJvdHRvbToxMHB4fS5ndWVzcy10aGUteWVhci1nYW1lLXN0YWdlIC5nYW1lLXNjb3JlLS1sYWJlbHtmb250LXNpemU6ODAlfS5ndWVzcy10aGUteWVhci1nYW1lLXN0YWdlIC5nYW1lLXNjb3JlLS12YWx1ZXtmb250LXdlaWdodDpib2xkfS5ndWVzcy10aGUteWVhci1zb3VyY2Vze2ZvbnQtc2l6ZTo3MCV9YDtcbiAgICAiLCJpbXBvcnQgeyBSZWFjdGl2ZUNvbnRyb2xsZXIsIFJlYWN0aXZlQ29udHJvbGxlckhvc3QgfSBmcm9tIFwibGl0XCI7XG5cbmV4cG9ydCBjbGFzcyBRdWVzdGlvblNjb3JlQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIGhvc3Q6IFJlYWN0aXZlQ29udHJvbGxlckhvc3Q7XG5cbiAgc3RhcnRWYWx1ZTogbnVtYmVyO1xuICB2YWx1ZTogbnVtYmVyID0gMDtcbiAgdGltZW91dDogbnVtYmVyO1xuXG4gIHByaXZhdGUgX3RpbWVySUQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD47XG5cbiAgY29uc3RydWN0b3IoaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCwgc3RhcnRWYWx1ZSA9IDAsIHRpbWVvdXQgPSAxMDAwKSB7XG4gICAgKHRoaXMuaG9zdCA9IGhvc3QpLmFkZENvbnRyb2xsZXIodGhpcyk7XG4gICAgdGhpcy5zdGFydFZhbHVlID0gc3RhcnRWYWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gc3RhcnRWYWx1ZTtcbiAgICB0aGlzLnRpbWVvdXQgPSB0aW1lb3V0O1xuICB9XG5cbiAgc3RhcnQoKSB7XG4gICAgdGhpcy5fdGltZXJJRCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMudmFsdWUgLT0gMTtcblxuICAgICAgLy8gVXBkYXRlIHRoZSBob3N0IHdpdGggbmV3IHZhbHVlXG4gICAgICB0aGlzLmhvc3QucmVxdWVzdFVwZGF0ZSgpO1xuICAgIH0sIHRoaXMudGltZW91dCk7XG4gIH1cblxuICBzdG9wKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5fdGltZXJJRCk7XG4gICAgdGhpcy5fdGltZXJJRCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnN0YXJ0VmFsdWU7XG4gIH1cblxuICBzdWJ0cmFjdCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy52YWx1ZSAtPSB2YWx1ZTtcbiAgICBpZiAodGhpcy52YWx1ZSA8IDApIHtcbiAgICAgIHRoaXMudmFsdWUgPSAwO1xuICAgIH1cbiAgfVxuXG4gIGlzUnVubmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fdGltZXJJRCA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIGhvc3REaXNjb25uZWN0ZWQoKSB7XG4gICAgLy8gQ2xlYXIgdGhlIHRpbWVyIHdoZW4gdGhlIGhvc3QgaXMgZGlzY29ubmVjdGVkXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLl90aW1lcklEKTtcbiAgICB0aGlzLl90aW1lcklEID0gdW5kZWZpbmVkO1xuICB9XG59XG4iLCJpbXBvcnQgeyBMaXRFbGVtZW50LCBjc3MsIGh0bWwsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gXCJsaXRcIjtcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gXCJsaXQvZGVjb3JhdG9ycy5qc1wiO1xuaW1wb3J0IGRheWpzIGZyb20gXCJkYXlqc1wiO1xuaW1wb3J0IHsgRGF5anMgfSBmcm9tIFwiZGF5anNcIjtcbmNvbnN0IHsgc2V0VGltZW91dCB9ID0gd2luZG93O1xuaW1wb3J0IHsgSW5jaWRlbnQsIENhdGVnb3JpZXMsIENhdGVnb3J5IH0gZnJvbSBcIi4vbGliL0luY2lkZW50XCI7XG5pbXBvcnQgeyBOb0ltYWdlSW1nIH0gZnJvbSBcIi4vbGliL0ljb25cIjtcbmltcG9ydCB7IEFwaVNlcnZpY2UsIENvbnRlbnRGZWVkYmFjayB9IGZyb20gXCIuL2xpYi9BcGlTZXJ2aWNlXCI7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSBcIi4vbGliL1V0aWxcIjtcbmltcG9ydCB7IGkxOG5GYWN0b3J5IH0gZnJvbSBcIi4vbGliL2kxOG4vaTE4blwiO1xuaW1wb3J0IHsgR2FtZVN0YXRlIH0gZnJvbSBcIi4vbGliL2VudW1zXCI7XG5pbXBvcnQgc3R5bGVzaGVldCBmcm9tIFwiLi9zY3NzL21haW4uc2Nzc1wiO1xuaW1wb3J0IHsgUXVlc3Rpb25TY29yZUNvbnRyb2xsZXIgfSBmcm9tIFwiLi9saWIvY29udHJvbGxlci9zY29yZWNvbnRyb2xsZXJcIjtcblxuY29uc3QgU1BMQVNIX0RFTEFZOiBudW1iZXIgPSAxMDAwO1xuY29uc3QgTUFYX1FVRVNUSU9OUzogbnVtYmVyID0gMTA7XG5jb25zdCBISU5UX0NPU1Q6IG51bWJlciA9IDI7XG5jb25zdCBNSU5fWUVBUjogbnVtYmVyID0gMTk1MDtcbmNvbnN0IE1BWF9ZRUFSOiBudW1iZXIgPSBwYXJzZUludChkYXlqcygpLmZvcm1hdCgnWVlZWScpLCAxMCk7XG5jb25zdCBHVFlfRlJPTV9ZRUFSX1ZBUiA9ICdndHktZnJvbS15ZWFyJztcbmNvbnN0IEdUWV9UT19ZRUFSX1ZBUiA9ICdndHktdG8teWVhcic7XG5jb25zdCBHVFlfTlVNX1FVRVNUSU9OU19WQVIgPSAnZ3R5LW51bWJlci1vZi1xdWVzdGlvbnMnO1xuY29uc3QgTUFYX0RPQjogbnVtYmVyID0gMTkxNTtcbmNvbnN0IE1JTl9ET0I6IG51bWJlciA9IHBhcnNlSW50KGRheWpzKCkuZm9ybWF0KCdZWVlZJyksIDEwKSAtIDEwO1xuY29uc3QgR1RZX1BMQVlFUl9ET0JfVkFSID0gJ2d0eS1wbGF5ZXItZG9iJztcblxuQGN1c3RvbUVsZW1lbnQoXCJndWVzcy10aGUteWVhclwiKVxuZXhwb3J0IGNsYXNzIEd1ZXNzVGhlWWVhciBleHRlbmRzIExpdEVsZW1lbnQge1xuXG4gIHByaXZhdGUgc291cmNlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBwcml2YXRlIF9sb2FkaW5nID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfc2NvcmUwOiBRdWVzdGlvblNjb3JlQ29udHJvbGxlcjtcblxuICBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZGluZyA9IHZhbHVlO1xuICB9XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nLCBhdHRyaWJ1dGU6IFwidGVlLWUtYXBpLXVybFwiIH0pXG4gIHRlZWVBcGlVcmw6IHN0cmluZyA9IFwiaHR0cHM6Ly9hcGkudGVlLWUuY29tXCI7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiBcInJlcG9ydC1icm9rZW4taW1hZ2VzXCIgfSlcbiAgcmVwb3J0QnJva2VuSW1hZ2VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGRhdGU6IHN0cmluZyA9IFwiXCI7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGNvdW50cnk6IHN0cmluZyA9IFwiXCI7XG5cbiAgQHByb3BlcnR5KHsgdHlwZTogU3RyaW5nIH0pXG4gIGNhdGVnb3J5OiBzdHJpbmcgPSBcIlwiO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBlbW90aW9uOiBzdHJpbmcgPSBcIlwiO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IFN0cmluZyB9KVxuICBpbXBhY3Q6IHN0cmluZyA9IFwiXCI7XG5cbiAgQHByb3BlcnR5KHtcbiAgICB0eXBlOiBEYXlqcyxcbiAgICBjb252ZXJ0ZXI6IHtcbiAgICAgIGZyb21BdHRyaWJ1dGU6ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoW1wiZnJvbVwiLCBcImZyb21cIiwgdmFsdWVdKTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBkYXlqcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+PSAxMCkge1xuICAgICAgICAgIHJldHVybiBkYXlqcyh2YWx1ZSwgXCJZWVlZLU1NLUREXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3ZhbHVlfS0wMS0wMWAsIFwiWVlZWS1NTS1ERFwiKTtcbiAgICAgIH0sXG4gICAgICB0b0F0dHJpYnV0ZTogKHZhbHVlOiBEYXlqcykgPT4ge1xuICAgICAgICBjb25zb2xlLmRlYnVnKFtcImZyb21cIiwgXCJ0b1wiLCB2YWx1ZV0pO1xuICAgICAgICByZXR1cm4gdmFsdWUuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbiAgZnJvbTogRGF5anMgPSBkYXlqcyhgJHt3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oR1RZX0ZST01fWUVBUl9WQVIpIHx8IE1JTl9ZRUFSfS0wMS0wMWAsIFwiWVlZWS1NTS1ERFwiKTtcblxuICBAcHJvcGVydHkoe1xuICAgIHR5cGU6IERheWpzLFxuICAgIGNvbnZlcnRlcjoge1xuICAgICAgZnJvbUF0dHJpYnV0ZTogKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhbXCJ0b1wiLCBcImZyb21cIiwgdmFsdWVdKTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBkYXlqcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+PSAxMCkge1xuICAgICAgICAgIHJldHVybiBkYXlqcyh2YWx1ZSwgXCJZWVlZLU1NLUREXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3ZhbHVlfS0xMi0zMWAsIFwiWVlZWS1NTS1ERFwiKTtcbiAgICAgIH0sXG4gICAgICB0b0F0dHJpYnV0ZTogKHZhbHVlOiBEYXlqcykgPT4ge1xuICAgICAgICBjb25zb2xlLmRlYnVnKFtcInRvXCIsIFwidG9cIiwgdmFsdWVdKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlLmZvcm1hdChcIllZWVktTU0tRERcIik7XG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4gIHRvOiBEYXlqcyA9IGRheWpzKGAke3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShHVFlfVE9fWUVBUl9WQVIpIHx8IE1BWF9ZRUFSfS0wMS0wMWAsIFwiWVlZWS1NTS1ERFwiKTtcblxuICBAcHJvcGVydHkoeyB0eXBlOiBTdHJpbmcsIGF0dHJpYnV0ZTogXCJuby1pbWFnZS1zcmNcIiB9KVxuICBub0ltYWdlU3JjOiBzdHJpbmcgPSBcIlwiO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogXCJzdXBwcmVzcy1pbWFnZXNcIiB9KVxuICBzdXBwcmVzc0ltYWdlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciwgYXR0cmlidXRlOiBcIm1heC1oaW50c1wiIH0pXG4gIG1heEhpbnRzOiBudW1iZXIgPSAzO1xuXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciwgYXR0cmlidXRlOiBcIm51bWJlci1vZi1xdWVzdGlvbnNcIiwgcmVmbGVjdDogdHJ1ZSB9KVxuICBudW1iZXJPZlF1ZXN0aW9uczogbnVtYmVyID0gcGFyc2VJbnQod2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKEdUWV9OVU1fUVVFU1RJT05TX1ZBUikgfHwgTUFYX1FVRVNUSU9OUyArICcnLCAxMCk7XG4gIHByaXZhdGUgX251bWJlck9mUXVlc3Rpb25zU2VlbjogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIF9wbGF5ZXJEb2I6IG51bWJlciA9IHBhcnNlSW50KHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShHVFlfUExBWUVSX0RPQl9WQVIpIHx8IDAgKyAnJywgMTApO1xuXG4gIEBzdGF0ZSgpXG4gIHByaXZhdGUgX2luY2lkZW50OiBJbmNpZGVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIF9hbnN3ZXJzOiBBcnJheTxOdW1iZXI+ID0gW107XG5cbiAgQHN0YXRlKClcbiAgcHJpdmF0ZSBfaGludDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgX3Nob3dIaW50OiBib29sZWFuID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfc2hvd0Zvb3RlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9oaW50c0luZGV4OiBudW1iZXIgPSAwO1xuICBwcml2YXRlIF9oaW50czogQXJyYXk8SW5jaWRlbnQ+ID0gW107XG5cbiAgQHN0YXRlKClcbiAgcHJpdmF0ZSBfc29sdXRpb246IE51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBAc3RhdGUoKVxuICBwdWJsaWMgX3JlbmRlclN0YXRlOiBzdHJpbmcgPSBHYW1lU3RhdGUuSU5JVDtcblxuICBAc3RhdGUoKVxuICBwcml2YXRlIF9zY29yZSA9IDMwO1xuXG4gIHB1YmxpYyB0b3RhbFNjb3JlID0gMDtcblxuICAvLyBfYW5zd2VyIGlzIHN0b3JlZCBhcyBzdHJpbmcgYmVjYXVzZSBpdCB3aWxsIGJlIGVudGVyZWQgY2hhcmFjdGVyIGZvciBjaGFyYWN0ZXJcbiAgQHN0YXRlKClcbiAgcHJpdmF0ZSBfYW5zd2VyOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBfYXBpU2VydmljZSA9IG5ldyBBcGlTZXJ2aWNlKHRoaXMudGVlZUFwaVVybCk7XG4gIHByaXZhdGUgaTE4biA9IGkxOG5GYWN0b3J5KFwibmxcIik7XG5cbiAgc3RhdGljIG92ZXJyaWRlIHN0eWxlcyA9IGNzc2BcbiAgICAke3N0eWxlc2hlZXR9XG4gIGA7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9zY29yZTAgPSBuZXcgUXVlc3Rpb25TY29yZUNvbnRyb2xsZXIodGhpcywgMzAsIDEwMDApO1xuICB9XG5cbiAgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKSB7XG4gICAgY29uc29sZS5kZWJ1ZyhcImNvbm5lY3RlZENhbGxiYWNrXCIpO1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAvLyBmaXJzdCBzdGVwIGlzIHNwbGFzaFxuICAgIHRoaXMuX3JlbmRlclN0YXRlID0gR2FtZVN0YXRlLlNQTEFTSDtcbiAgfVxuXG4gIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIGNvbnNvbGUuZGVidWcoXCJkaXNjb25uZWN0ZWRDYWxsYmFja1wiKTtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3JlbmRlclN0YXRlID0gR2FtZVN0YXRlLklOSVQ7XG4gICAgdGhpcy5fc2NvcmUwLnN0b3AoKTtcbiAgICB0aGlzLl9zY29yZTAucmVzZXQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXMpOiB2b2lkIHtcbiAgICBjb25zb2xlLmRlYnVnKFwiZmlyc3RVcGRhdGVkXCIpO1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gIH1cblxuICBvdmVycmlkZSBzaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzKTogYm9vbGVhbiB7XG4gICAgY29uc29sZS5kZWJ1ZyhcInNob3VsZFVwZGF0ZVwiKTtcbiAgICByZXR1cm4gc3VwZXIuc2hvdWxkVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXMpIHtcbiAgICBjb25zb2xlLmRlYnVnKFwidXBkYXRlXCIpO1xuICAgIHJldHVybiBzdXBlci51cGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXMpIHtcbiAgICBjb25zb2xlLmRlYnVnKFwidXBkYXRlZFwiKTtcbiAgICByZXR1cm4gc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gIH1cblxuICBvdmVycmlkZSByZW5kZXIoKSB7XG4gICAgLyoqXG4gICAgICogdGhpcyBpcyB0aGUgbWFpbiByZW5kZXIgZnVuY3Rpb25cbiAgICAgKiBpdCByZW5kZXJzIGRpZmZlcmVudCBzdGFnZXMgZHVyaW5nIHRoZSBnYW1lXG4gICAgICovXG4gICAgY29uc29sZS5kZWJ1ZyhcInJlbmRlclwiKTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cImd1ZXNzLXRoZS15ZWFyLWNvbnRhaW5lclwiPlxuICAgICAgICAke3RoaXMuX3JlbmRlclN0YXRlID09IEdhbWVTdGF0ZS5JTklUID8gXCJMb2FkaW5nLi4uXCIgOiBcIlwifVxuICAgICAgICAke3RoaXMuX3JlbmRlclN0YXRlID09IEdhbWVTdGF0ZS5TUExBU0hcbiAgICAgICAgPyB0aGlzLnJlbmRlclNwbGFzaFNjcmVlbigpXG4gICAgICAgIDogXCJcIn1cbiAgICAgICAgJHt0aGlzLl9yZW5kZXJTdGF0ZSA9PSBHYW1lU3RhdGUuSU5UUk8gPyB0aGlzLnJlbmRlckdhbWVJbnRybygpIDogXCJcIn1cbiAgICAgICAgJHt0aGlzLl9yZW5kZXJTdGF0ZSA9PSBHYW1lU3RhdGUuUExBWSA/IHRoaXMucmVuZGVyR2FtZVN0YWdlKCkgOiBcIlwifVxuICAgICAgICAke3RoaXMuX3JlbmRlclN0YXRlID09IEdhbWVTdGF0ZS5FTkQgPyB0aGlzLnJlbmRlckdhbWVFbmQoKSA6IFwiXCJ9XG4gICAgICAgICR7dGhpcy5fcmVuZGVyRm9vdGVyKCl9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgY29sb3JFbGVtZW50KGVsZW1lbnQ6IGFueSwgY29sb3I6IHN0cmluZykge1xuICAgIGNvbnNvbGUuZGVidWcoXCJjb2xvckVsZW1lbnRcIik7XG4gICAgdGhpcz8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihlbGVtZW50KT8uc3R5bGUuc2V0UHJvcGVydHkoXCJjb2xvclwiLCBjb2xvcik7XG4gIH1cblxuICAvLyB0aGlzIHJlbmRlcnMgdGhlIGdhbWUgaGVhZGVyXG4gIHByaXZhdGUgX3JlbmRlckhlYWRlcihjb250ZW50OiBzdHJpbmcgPSB0aGlzLmkxOG4udHJhbnNsYXRlKFwiZ2FtZS1uYW1lXCIpKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNlY3Rpb24gaWQ9XCJ0b3BcIiBjbGFzcz1cImhlYWRlciBndWVzcy10aGUteWVhci1oZWFkZXJcIj5cbiAgICAgICAgPGgxPiR7Y29udGVudH08L2gxPlxuICAgICAgPC9zZWN0aW9uPlxuICAgIGA7XG4gIH1cblxuICAvLyB0aGlzIHJlbmRlcnMgdGhlIGdhbWUgZm9vdGVyXG4gIHByaXZhdGUgX3JlbmRlckZvb3RlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgaWYgKHRoaXMuX3Nob3dGb290ZXIpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJmb290ZXIgZ3Vlc3MtdGhlLXllYXItZm9vdGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJndWVzcy10aGUteWVhci1jb3B5cmlnaHRcIj5cbiAgICAgICAgICAke1wiVGhlIFRocm93YmFjayBDb21wYW55IMKpXCIgKyBkYXlqcygpLnllYXIoKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgYDtcbiAgICB9XG4gICAgcmV0dXJuIGh0bWxgYDtcbiAgfVxuXG4gIC8vIHJlbmRlciB0aGUgc3BsYXNoIHNjcmVlblxuICBwcml2YXRlIHJlbmRlclNwbGFzaFNjcmVlbigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc29sZS5kZWJ1ZyhcInJlbmRlclNwbGFzaFNjcmVlblwiKTtcblxuICAgIC8vIChwcmV0ZW5kKSB0byBsb2FkIGJlZm9yZSB0aGUgZ2FtZSBzdGFydHNcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX3JlbmRlclN0YXRlID0gR2FtZVN0YXRlLklOVFJPO1xuICAgIH0sIFNQTEFTSF9ERUxBWSk7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgaWQ9XCJzcGxhc2gtc2NyZWVuLWNvbnRhaW5lclwiIGNsYXNzPVwic3BsYXNoc2NyZWVuXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcGxhc2gtbG9nb1wiPlxuICAgICAgICAgIDxoMj4ke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJnYW1lLW5hbWVcIil9PC9oMj5cbiAgICAgICAgICA8cD4ke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJMb2FkaW5nLi4uXCIpfTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgLy8gcmVuZGVycyBhIHNlbGVjdG9yIGZvciBhIHllYXJcbiAgLy8gVE9ETzogc2V0IHR5cGUgb2Ygc2VsZWN0b3JcbiAgcHJpdmF0ZSBfcmVuZGVyWWVhclN0ZXBYU2VsZWN0T3B0aW9ucyhmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIsIHN0ZXA6IG51bWJlciwgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gcGFyc2VJbnQoc2VsZWN0ZWRWYWx1ZSwgMTApO1xuICAgIC8vIHByZS1yZW5kZXIgeWVhciBvcHRpb25zXG4gICAgLy8gYW5kIG1hcmsgc2VsZWN0ZWQgd2hlbiB0aGV5IG1hdGNoXG4gICAgY29uc3Qgc2VsZWN0WWVhck9wdGlvbnMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gZnJvbTsgaSA8PSB0bzsgaSArPSBzdGVwKSB7XG4gICAgICBzZWxlY3RZZWFyT3B0aW9ucy5wdXNoKGh0bWxgXG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIke2l9XCIgP3NlbGVjdGVkPSR7c2VsZWN0ZWQgPT0gaX0+JHtpfTwvb3B0aW9uPlxuICAgICAgYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgJHtzZWxlY3RZZWFyT3B0aW9uc31gO1xuICB9XG5cbiAgLy8gcmVuZGVyIHRoZSBnYW1lIGludHJvXG4gIC8vIGFsbG93cyB0byBzZWxlY3QgdGhlIG51bWJlciBvZiBxdWVzdGlvbnMsXG4gIC8vIHNlbGVjdCB0aGUgeWVhciByYW5nZVxuICAvLyBhbmQgdG8gc3RhcnQgdGhlIGdhbWVcbiAgcHJpdmF0ZSByZW5kZXJHYW1lSW50cm8oKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnNvbGUuZGVidWcoXCJyZW5kZXJHYW1lSW50cm9cIik7XG5cbiAgICAvLyBwcmUtcmVuZGVyIG51bWJlciBvZiBxdWVzdGlvbiBvcHRpb25zXG4gICAgLy8gYW5kIG1hcmsgc2VsZWN0ZWQgd2hlbiB0aGV5IG1hdGNoXG4gICAgY29uc3Qgc2VsZWN0UXVlc3Rpb25PcHRpb25zID0gW107XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gTUFYX1FVRVNUSU9OUzsgaSsrKSB7XG4gICAgICBzZWxlY3RRdWVzdGlvbk9wdGlvbnMucHVzaChodG1sYFxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiJHtpfVwiID9zZWxlY3RlZD0ke3RoaXMubnVtYmVyT2ZRdWVzdGlvbnMgPT0gaX0+XG4gICAgICAgICAgJHtpfVxuICAgICAgICA8L29wdGlvbj5cbiAgICAgIGApO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgJHt0aGlzLl9yZW5kZXJIZWFkZXIodGhpcy5pMThuLnRyYW5zbGF0ZShcImdhbWUtaW50cm9kdWN0aW9uLXdlbGNvbWVcIikpfVxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZ2FtZS1pbnRyb1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ2FtZS1leHBsYW5hdGlvblwiPlxuICAgICAgICAgIDxwPlxuICAgICAgICAgICAgJHt0aGlzLmkxOG4udHJhbnNsYXRlKFwiZ2FtZS1pbnRyb2R1Y3Rpb24tcDFcIil9XG4gICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICAke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJnYW1lLWludHJvZHVjdGlvbi1wMlwiKX1cbiAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgICR7dGhpcy5pMThuLnRyYW5zbGF0ZShcImdhbWUtaW50cm9kdWN0aW9uLXAzXCIpfVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdhbWUtc2V0dGluZ3NcIj5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgICR7dGhpcy5pMThuLnRyYW5zbGF0ZShcImdhbWUtc2V0dGluZ3MtcDBcIil9XG5cbiAgICAgICAgICAgICR7dGhpcy5pMThuLnRyYW5zbGF0ZShcImdhbWUtc2V0dGluZ3MtcDEtMVwiKX1cbiAgICAgICAgICAgIDxzZWxlY3QgQGNoYW5nZT1cIiR7dGhpcy5fc2V0TnVtYmVyT2ZRdWVzdGlvbnN9XCI+XG4gICAgICAgICAgICAgICR7c2VsZWN0UXVlc3Rpb25PcHRpb25zfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJnYW1lLXNldHRpbmdzLXAxLTJcIil9XG4gICAgICAgICAgICAke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJnYW1lLXNldHRpbmdzLXAyXCIpfVxuICAgICAgICAgICAgPHNlbGVjdCBAY2hhbmdlPVwiJHt0aGlzLl9zZXRGcm9tRGF0ZX1cIj5cbiAgICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJZZWFyU3RlcFhTZWxlY3RPcHRpb25zKE1JTl9ZRUFSLCBNQVhfWUVBUiwgNSwgdGhpcy5mcm9tLmZvcm1hdChcIllZWVlcIikpfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJnYW1lLXNldHRpbmdzLXAzXCIpfVxuICAgICAgICAgICAgPHNlbGVjdCBAY2hhbmdlPVwiJHt0aGlzLl9zZXRUb0RhdGV9XCI+XG4gICAgICAgICAgICAgICR7dGhpcy5fcmVuZGVyWWVhclN0ZXBYU2VsZWN0T3B0aW9ucyhNSU5fWUVBUiwgTUFYX1lFQVIsIDUsIHRoaXMudG8uZm9ybWF0KFwiWVlZWVwiKSl9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICR7dGhpcy5pMThuLnRyYW5zbGF0ZShcImdhbWUtc2V0dGluZ3MtcDRcIil9XG4gICAgICAgICAgICAke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJnYW1lLXNldHRpbmdzLXA1LTFcIil9XG4gICAgICAgICAgICA8c2VsZWN0IEBjaGFuZ2U9XCIke3RoaXMuX3NldFBsYXllckRvYn1cIj5cbiAgICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJZZWFyU3RlcFhTZWxlY3RPcHRpb25zKE1BWF9ET0IsIE1JTl9ET0IsIDEsIHRoaXMuX3BsYXllckRvYiArICcnKX1cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgJHt0aGlzLmkxOG4udHJhbnNsYXRlKFwiZ2FtZS1zZXR0aW5ncy1wNS0yXCIpfVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdhbWUtc3RhcnRcIj5cbiAgICAgICAgICA8YnV0dG9uIEBjbGljaz1cIiR7dGhpcy5zZXR1cE5ld0dhbWV9XCI+JHt0aGlzLmkxOG4udHJhbnNsYXRlKFwic3RhcnRcIil9PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuICBwcml2YXRlIF9zZXRQbGF5ZXJEb2IoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3BsYXllckRvYiA9IE51bWJlcihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShHVFlfUExBWUVSX0RPQl9WQVIsIHRoaXMuX3BsYXllckRvYiArICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldE51bWJlck9mUXVlc3Rpb25zKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm51bWJlck9mUXVlc3Rpb25zID0gTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKEdUWV9OVU1fUVVFU1RJT05TX1ZBUiwgdGhpcy5udW1iZXJPZlF1ZXN0aW9ucyArICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldEZyb21EYXRlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZyb20gPSB0aGlzLmZyb20ueWVhcihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShHVFlfRlJPTV9ZRUFSX1ZBUiwgdGhpcy5mcm9tLmZvcm1hdCgnWVlZWScpICsgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VG9EYXRlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnRvID0gdGhpcy50by55ZWFyKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKEdUWV9UT19ZRUFSX1ZBUiwgdGhpcy50by5mb3JtYXQoJ1lZWVknKSArICcnKTtcbiAgfVxuXG4gIC8vIHJlbmRlcnMgdGhlIGFjdHVhbCBnYW1lIHN0YWdlXG4gIHByaXZhdGUgcmVuZGVyR2FtZVN0YWdlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zb2xlLmRlYnVnKFwicmVuZGVyR2FtZVN0YWdlXCIpO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke3RoaXMuX3JlbmRlckhlYWRlcih0aGlzLmkxOG4udHJhbnNsYXRlKFwiZ2FtZS1jYWxsLXRvLWFjdGlvblwiKS5yZXBsYWNlKC9fX0ZST01fXy8sIHRoaXMuZnJvbS55ZWFyKCkgKyAnJykucmVwbGFjZSgvX19UT19fLywgdGhpcy50by55ZWFyKCkgKyAnJykpfVxuICAgICAgPGRpdiBjbGFzcz1cImd1ZXNzLXRoZS15ZWFyLWdhbWUtc3RhZ2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdhbWUtc2NvcmVcIj4ke3RoaXMuX3JlbmRlckdhbWVTY29yZSgpfTwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5jaWRlbnRcIj4ke3RoaXMuX3JlbmRlckluY2lkZW50KCl9PC9kaXY+XG4gICAgICAgICAgJHt0aGlzLl9yZW5kZXJIaW50KCl9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNvdXJjZXNcIj4ke3RoaXMucmVuZGVyU291cmNlcygpfTwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ2FtZS1jb250cm9sc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnYW1lLWNvbnRyb2xzLS1oaW50XCI+JHt0aGlzLl9yZW5kZXJIaW50QnV0dG9uKCl9PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdhbWUtY29udHJvbHMtLWFuc3dlcnNcIj4ke3RoaXMuX3JlbmRlckFuc3dlcnMoKX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgJHt0aGlzLl9yZW5kZXJGZWVkYmFjaygpfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIC8vIHJlbmRlcnMgdGhlIGl0ZW0gZm9yIHRoZSB5ZWFyIHRvIGd1ZXNzXG4gIHByaXZhdGUgX3JlbmRlckluY2lkZW50KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmNpZGVudC0tdGl0bGVcIj5cbiAgICAgICAgPGgxPiR7dGhpcy5faW5jaWRlbnQ/LnRpdGxlfTwvaDE+XG4gICAgICA8L2Rpdj5cblxuICAgICAgJHt0aGlzLl9yZW5kZXJJbmNpZGVudEltYWdlKHRoaXMuX2luY2lkZW50KX1cblxuICAgICAgPGRpdiBjbGFzcz1cImluY2lkZW50LS10ZXh0XCI+XG4gICAgICAgIDxwPiR7dGhpcy5faW5jaWRlbnQ/LnRleHR9PC9wPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX3Nob3VsZERpc3BsYXlBbkltYWdlKGluY2lkZW50OiBJbmNpZGVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGhhc0ltYWdlID0gISEoaW5jaWRlbnQgJiYgaW5jaWRlbnQuaW1hZ2UgJiYgaW5jaWRlbnQuaW1hZ2VbMF0pO1xuICAgIGNvbnN0IGRpc3BsYXlJbWFnZXMgPSAhdGhpcy5zdXBwcmVzc0ltYWdlcztcbiAgICByZXR1cm4gaGFzSW1hZ2UgJiYgZGlzcGxheUltYWdlcztcbiAgfVxuXG4gIC8vIHJlbmRlcnMgdGhlIG9wdGlvbmFsIGltYWdlIHdpdGggdGhlIGl0ZW1cbiAgcHJpdmF0ZSBfcmVuZGVySW5jaWRlbnRJbWFnZShpbmNpZGVudDogSW5jaWRlbnQgfCB1bmRlZmluZWQpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgaWYgKGluY2lkZW50ICYmIHRoaXMuX3Nob3VsZERpc3BsYXlBbkltYWdlKGluY2lkZW50KSkge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmNpZGVudC0taW1hZ2VcIj5cbiAgICAgICAgICA8aW1nIFxuICAgICAgICAgICAgQGVycm9yPSR7KGV2dDogRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVJbWFnZUxvYWRFcnJvcihldnQsIGluY2lkZW50KTtcbiAgICAgICAgfX1cbiAgICAgICAgICAgIHNyYz1cIiR7aW5jaWRlbnQuaW1hZ2VbMF19XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnN1cHByZXNzSW1hZ2VzKSB7XG4gICAgICAvLyBQcmVzZXJ2ZSBodG1sIHN0cnVjdHVyZSB0byBwcmV2ZW50IHRoZSB3ZWJjb21wb25lbnQgdG8gY29sbGFwc2UuXG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiaW5jaWRlbnQtLWltYWdlXCI+XG4gICAgICAgICAgPGltZy8+XG4gICAgICAgIDwvZGl2PmA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgYDtcbiAgfVxuXG4gIC8vIHJlbmRlcnMgYSBsaXN0IG9mIHBvc3NpYmxlIGFuc3dlcnNcbiAgcHJpdmF0ZSBfcmVuZGVyQW5zd2VycygpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiYW5zd2Vycy0tbGlzdFwiPlxuICAgICAgICA8dWw+XG4gICAgICAgICAgJHt0aGlzLl9hbnN3ZXJzLm1hcChcbiAgICAgIChhbnN3ZXIpID0+XG4gICAgICAgIGh0bWxgPGxpIEBjbGljaz1cIiR7dGhpcy5faGFuZGxlQW5zd2VyQ2xpY2tlZH1cIj4ke2Fuc3dlcn08L2xpPmAsXG4gICAgKX1cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICAvLyByZW5kZXJzIHRoZSBjdXJyZW50IHF1ZXN0aW9uIHNjb3JlXG4gIC8vIGl0IGNvdW50cyBiYWNrIHRvIDBcbiAgcHJpdmF0ZSBfcmVuZGVyR2FtZVNjb3JlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJnYW1lLXNjb3JlLS10b3RhbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ2FtZS1zY29yZS0tbGFiZWxcIj4ke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJxdWVzdGlvbi1udW1iZXJcIil9OjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ2FtZS1zY29yZS0tdmFsdWVcIj5cbiAgICAgICAgICAke3RoaXMuX251bWJlck9mUXVlc3Rpb25zU2Vlbn0gdmFuICR7dGhpcy5udW1iZXJPZlF1ZXN0aW9uc31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImdhbWUtc2NvcmUtLXNjb3JlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnYW1lLXNjb3JlLS1sYWJlbFwiPiR7dGhpcy5pMThuLnRyYW5zbGF0ZShcInF1ZXN0aW9uLXNjb3JlXCIpfTo8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdhbWUtc2NvcmUtLXZhbHVlXCI+JHt0aGlzLl9zY29yZTAudmFsdWV9PC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImdhbWUtc2NvcmUtLXRvdGFsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnYW1lLXNjb3JlLS1sYWJlbFwiPiR7dGhpcy5pMThuLnRyYW5zbGF0ZShcInRvdGFsLXNjb3JlXCIpfTo8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdhbWUtc2NvcmUtLXZhbHVlXCI+JHt0aGlzLnRvdGFsU2NvcmV9PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgLy8gaGFuZGxlcyB0aGUgY2xpY2sgb24gYW4gYW5zd2VyXG4gIHByaXZhdGUgX2hhbmRsZUFuc3dlckNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIC8vIGdldCB0aGUgY2xpY2tlZCBhbnN3ZXJcbiAgICBjb25zdCBhbnN3ZXIgPSBldmVudC50YXJnZXQudGV4dENvbnRlbnQ7XG5cbiAgICAvLyBzdG9wIHRoZSBzY29yZSBjb3VudGVyXG4gICAgdGhpcy5fc2NvcmUwLnN0b3AoKTtcblxuICAgIC8vIHJlbW92ZSB0aGUgaGludCBidXR0b25cbiAgICB0aGlzLl9zaG93SGludCA9IGZhbHNlO1xuXG4gICAgLy8gY2hlY2sgaWYgdGhlIGFuc3dlciBpcyBjb3JyZWN0XG4gICAgaWYgKGFuc3dlcikge1xuICAgICAgLy8gdGhpcy5fYXBpU2VydmljZS5wb3N0SW5jaWRlbnRBbnN3ZXIodGhpcy5faW5jaWRlbnQ/LmlkLCBhbnN3ZXIpO1xuICAgICAgY29uc29sZS5kZWJ1ZyhcbiAgICAgICAgYW5zd2VyLFxuICAgICAgICB0aGlzLl9zb2x1dGlvbixcbiAgICAgICAgdGhpcy5fc2NvcmUsXG4gICAgICAgIGFuc3dlciA9PSB0aGlzLl9zb2x1dGlvbixcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuX2Fuc3dlciA9IGFuc3dlcjtcbiAgICB9XG4gIH1cblxuICAvLyByZW5kZXJzIHRoZSByZXF1ZXN0ZWQgaGludFxuICBwcml2YXRlIF9yZW5kZXJIaW50KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBpZiAoIXRoaXMuX2hpbnQpIHtcbiAgICAgIHJldHVybiBodG1sYGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgIDxwPiR7dGhpcy5faGludH08L3A+IGA7XG4gIH1cblxuICAvLyByZW5kZXJzIHRoZSBoaW50IGJ1dHRvbiB1bnRpbFxuICAvLyBhbGwgbWF4IGhpbnRzIGhhdmUgYmVlbiB1c2VkXG4gIHByaXZhdGUgX3JlbmRlckhpbnRCdXR0b24oKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGlmICghdGhpcy5fc2hvd0hpbnQpIHtcbiAgICAgIHJldHVybiBodG1sYGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiZ2FtZS1jb250cm9scy0taGludFwiPlxuICAgICAgICA8YnV0dG9uIEBjbGljaz1cIiR7dGhpcy5faGFuZGxlSGludENsaWNrZWR9XCI+XG4gICAgICAgICAke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJzaG93LWhpbnRcIil9ICgke3RoaXMuX2hpbnRzLmxlbmd0aCAtIHRoaXMuX2hpbnRzSW5kZXh9KVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICAvLyBoYW5kbGVzIHRoZSBjbGljayBvbiB0aGUgaGludCBidXR0b25cbiAgLy8gYW5kIHNob3dzIHRoZSBuZXh0IGhpbnQgaWYgYXZhaWxhYmxlXG4gIC8vIHN1YnRyYWN0cyB0aGUgY29zdCBvZiB0aGUgaGludCBmcm9tXG4gIC8vIHRoZSBxdWVzdGlvbiBzY29yZVxuICBwcml2YXRlIF9oYW5kbGVIaW50Q2xpY2tlZCgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmRlYnVnKFwiaGFuZGxlSGludENsaWNrZWRcIiwgW3RoaXMuX2hpbnRzSW5kZXgsIHRoaXMuX2hpbnRzLmxlbmd0aF0pO1xuXG4gICAgaWYgKHRoaXMuX2hpbnRzSW5kZXggPCB0aGlzLl9oaW50cy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGhpbnRUZXh0ID0gdGhpcy5fZ2VuZXJhdGVIaW50VGV4dCh0aGlzLl9oaW50c1t0aGlzLl9oaW50c0luZGV4XSk7XG5cbiAgICAgIGlmIChoaW50VGV4dCkge1xuICAgICAgICB0aGlzLl9oaW50ID0gaGludFRleHQ7XG4gICAgICAgIHRoaXMuX2hpbnRzSW5kZXgrKztcbiAgICAgICAgdGhpcy5fc2NvcmUwLnN1YnRyYWN0KEhJTlRfQ09TVCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2hpbnRzSW5kZXggPj0gdGhpcy5faGludHMubGVuZ3RoKSB7XG4gICAgICAvLyB0aGlzLl9oaW50c0luZGV4ID0gMDtcbiAgICAgIHRoaXMuX3Nob3dIaW50ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLy8gcmVuZGVycyB0aGUgZmVlZGJhY2sgb3ZlcmxheVxuICBwcml2YXRlIF9yZW5kZXJGZWVkYmFjaygpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgLy8gZG8gbm90IHNob3cgYW55dGhpbmcgdW50aWwgYW4gYW5zd2VyIGhhcyBiZWVuIG1hZGVcbiAgICAvLyBhbmQgdGhlIHNjb3JlIGlzIGdyZWF0ZXIgdGhhbiAwXG4gICAgaWYgKCF0aGlzLl9hbnN3ZXIgJiYgdGhpcy5fc2NvcmUwLnZhbHVlID4gMCkge1xuICAgICAgcmV0dXJuIGh0bWxgYDtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBpZiB0aGUgYW5zd2VyIGlzIGNvcnJlY3RcbiAgICAvLyBjYXN0IHRvIHN0cmluZ3MgdG8gY29tcGFyZVxuICAgIGNvbnN0IGlzX2NvcnJlY3QgPSB0aGlzLl9hbnN3ZXIgKyBcIlwiID09IHRoaXMuX3NvbHV0aW9uICsgXCJcIjtcbiAgICBjb25zdCBzY29yZSA9IGlzX2NvcnJlY3QgPyB0aGlzLl9zY29yZTAudmFsdWUgOiAwO1xuXG4gICAgaWYgKHRoaXMuX3Njb3JlMC5pc1J1bm5pbmcoKSkge1xuICAgICAgdGhpcy5fc2NvcmUwLnN0b3AoKTtcbiAgICB9XG5cbiAgICB0aGlzLnRvdGFsU2NvcmUgKz0gc2NvcmU7XG5cbiAgICAvLyBGaXJlLWFuZC1mb3JnZXQgcmVjYWxsYWJpbGl0eSBmZWVkYmFjay5cbiAgICBpZiAodGhpcy5faW5jaWRlbnQ/LmlkKSB7XG4gICAgICB0aGlzLl9hcGlTZXJ2aWNlLmluY2lkZW50UmVjYWxsYWJpbGl0eSh0aGlzLl9pbmNpZGVudD8uaWQsIHRoaXMuX3BsYXllckRvYiwgaXNfY29ycmVjdCk7XG4gICAgfVxuXG4gICAgaWYgKGlzX2NvcnJlY3QpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmVlZGJhY2tcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmVlZGJhY2stLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxoMz4ke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJhbnN3ZXItY29ycmVjdFwiKX0hPC9oMz5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAke3RoaXMuX2hpbnRzSW5kZXggPT0gMSA/IHRoaXMuaTE4bi50cmFuc2xhdGUoXCJ1c2VkLWhpbnQtc2luZ3VsYXJcIikgOiB0aGlzLmkxOG4udHJhbnNsYXRlKFwidXNlZC1oaW50LXBsdXJhbFwiKS5yZXBsYWNlKC9fX0hJTlRTX18vLCB0aGlzLl9oaW50c0luZGV4ICsgJycpfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICR7c2NvcmUgPT0gMSA/IHRoaXMuaTE4bi50cmFuc2xhdGUoXCJudW1iZXItcG9pbnRzLXNpbmd1bGFyXCIpIDogdGhpcy5pMThuLnRyYW5zbGF0ZShcIm51bWJlci1wb2ludHMtcGx1cmFsXCIpLnJlcGxhY2UoL19fUE9JTlRTX18vLCBzY29yZSArICcnKX1cbiAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJOZXh0UXVlc3Rpb25CdXR0b24oKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH0gZWxzZSBpZiAoIWlzX2NvcnJlY3QgJiYgdGhpcy5fYW5zd2VyKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImZlZWRiYWNrXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZlZWRiYWNrLS1jb250ZW50XCI+XG4gICAgICAgICAgICA8aDM+JHt0aGlzLmkxOG4udHJhbnNsYXRlKFwiYW5zd2VyLXdyb25nXCIpfTwvaDM+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgJHt0aGlzLmkxOG4udHJhbnNsYXRlKFwiY29ycmVjdC1hbnN3ZXItd2FzXCIpLnJlcGxhY2UoL19fV1JPTkdfXy8sIHRoaXMuX2Fuc3dlciArICcnKS5yZXBsYWNlKC9fX0NPUlJFQ1RfXy8sIHRoaXMuX3NvbHV0aW9uICsgJycpfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJOZXh0UXVlc3Rpb25CdXR0b24oKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImZlZWRiYWNrXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZlZWRiYWNrLS1jb250ZW50XCI+XG4gICAgICAgICAgICA8aDM+SGVsYWFzPC9oMz5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgJHt0aGlzLmkxOG4udHJhbnNsYXRlKFwibm8tYW5zd2VyLWNvcnJlY3QtYW5zd2VyLXdhc1wiKS5yZXBsYWNlKC9fX0NPUlJFQ1RfXy8sIHRoaXMuX3NvbHV0aW9uICsgJycpfVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJOZXh0UXVlc3Rpb25CdXR0b24oKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cbiAgfVxuXG4gIC8vIHJlbmRlcnMgdGhlIG5leHQgcXVlc3Rpb24gYnV0dG9uXG4gIHByaXZhdGUgX3JlbmRlck5leHRRdWVzdGlvbkJ1dHRvbigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgaWYgKHRoaXMuX251bWJlck9mUXVlc3Rpb25zU2VlbiA8IHRoaXMubnVtYmVyT2ZRdWVzdGlvbnMpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8YnV0dG9uIEBjbGljaz1cIiR7dGhpcy5fbG9hZFF1ZXN0aW9ufVwiPiR7dGhpcy5pMThuLnRyYW5zbGF0ZShcIm5leHQtcXVlc3Rpb25cIil9PC9idXR0b24+XG4gICAgICBgO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYCA8YnV0dG9uIEBjbGljaz1cIiR7dGhpcy5fZW5kR2FtZX1cIj4ke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJxdWl0XCIpfTwvYnV0dG9uPiBgO1xuICB9XG5cbiAgLy8gcmVuZGVycyB0aGUgZW5kIG9mIHRoZSBnYW1lXG4gIHByaXZhdGUgX2VuZEdhbWUoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVuZGVyU3RhdGUgPSBHYW1lU3RhdGUuRU5EO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJHYW1lRW5kKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zb2xlLmRlYnVnKFwicmVuZGVyR2FtZUVuZFwiKTtcbiAgICBjb25zdCBtYXhTY29yZTogbnVtYmVyID0gdGhpcy5udW1iZXJPZlF1ZXN0aW9ucyAqIHRoaXMuX3Njb3JlO1xuICAgIGNvbnN0IHNjb3JlUmF0aW8gPSBNYXRoLnJvdW5kKCh0aGlzLnRvdGFsU2NvcmUgLyBtYXhTY29yZSkgKiAxMDApO1xuICAgIHJldHVybiBodG1sYFxuICAgICAgJHt0aGlzLl9yZW5kZXJIZWFkZXIoXCJUaGUgZW5kIVwiKX1cbiAgICAgIDxkaXYgY2xhc3M9XCJndWVzcy10aGUteWVhci1nYW1lLWVuZFwiPlxuICAgICAgICA8cD5cbiAgICAgICAgICAke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJlbmRcIikucmVwbGFjZSgvX19TQ09SRV9fLywgdGhpcy50b3RhbFNjb3JlICsgJycpLnJlcGxhY2UoL19fTUFYX1NDT1JFX18vLCBtYXhTY29yZSArICcnKS5yZXBsYWNlKC9fX1BFUkNFTlRfXy8sIHNjb3JlUmF0aW8gKyAnJyl9XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHA+XG4gICAgICAgICAgJHt0aGlzLmkxOG4udHJhbnNsYXRlKFV0aWwuc2NvcmVUb1ZhbHVlSnVkZ2VtZW50KHNjb3JlUmF0aW8pKX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIEBjbGljaz1cIiR7KCkgPT4gKHRoaXMuX3JlbmRlclN0YXRlID0gR2FtZVN0YXRlLlNQTEFTSCl9XCIgPlxuICAgICAgICAke3RoaXMuaTE4bi50cmFuc2xhdGUoXCJuZXctZ2FtZVwiKX1cbiAgICA8L2J1dHRvbj5cbiAgICAgICR7dGhpcy5fcmVuZGVyRm9vdGVyKCl9XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBOZXdHYW1lKCk6IHZvaWQge1xuICAgIGNvbnNvbGUuZGVidWcoXCJuZXcgZ2FtZSFcIik7XG5cbiAgICBjb25zb2xlLmRlYnVnKHtcbiAgICAgIFwibnVtYmVyIG9mIHF1ZXN0aW9uc1wiOiB0aGlzLm51bWJlck9mUXVlc3Rpb25zLFxuICAgICAgZnJvbTogdGhpcy5mcm9tLnRvSVNPU3RyaW5nKCksXG4gICAgICB0bzogdGhpcy50by50b0lTT1N0cmluZygpLFxuICAgIH0pO1xuXG4gICAgdGhpcy50b3RhbFNjb3JlID0gMDtcbiAgICB0aGlzLl9udW1iZXJPZlF1ZXN0aW9uc1NlZW4gPSAwO1xuXG4gICAgdGhpcy5fbG9hZFF1ZXN0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldFN0YWdlKCk6IHZvaWQge1xuICAgIHRoaXMuc291cmNlcyA9IFtdO1xuICAgIHRoaXMuX2luY2lkZW50ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX2hpbnRzID0gW107XG4gICAgdGhpcy5fYW5zd2VyID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX2Fuc3dlcnMgPSBbXTtcbiAgICB0aGlzLl9oaW50c0luZGV4ID0gMDtcbiAgICB0aGlzLl9zY29yZTAucmVzZXQoKTtcbiAgICB0aGlzLl9zaG93SGludCA9IGZhbHNlO1xuICAgIHRoaXMuX2hpbnQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBhc3luYyBfbG9hZFF1ZXN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuX3Jlc2V0U3RhZ2UoKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlOiB7IGluY2lkZW50OiBJbmNpZGVudCB8IHVuZGVmaW5lZDsgc291cmNlczogc3RyaW5nW10gfSA9XG4gICAgICBhd2FpdCB0aGlzLl9hcGlTZXJ2aWNlLmZldGNoT25lSW5jaWRlbnQoXG4gICAgICAgIHRoaXMuY291bnRyeSxcbiAgICAgICAgdGhpcy5jYXRlZ29yeSxcbiAgICAgICAgdGhpcy5lbW90aW9uLFxuICAgICAgICB0aGlzLmltcGFjdCxcbiAgICAgICAgdGhpcy5kYXRlLFxuICAgICAgICB0aGlzLmZyb20uZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcbiAgICAgICAgdGhpcy50by5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxuICAgICAgICBcIjQwXCIsXG4gICAgICAgIFwicXVpel95ZWFyXCJcbiAgICAgICk7XG5cbiAgICB0aGlzLl9pbmNpZGVudCA9IHJlc3BvbnNlLmluY2lkZW50O1xuICAgIHRoaXMuc291cmNlcyA9IHJlc3BvbnNlLnNvdXJjZXM7XG5cbiAgICB0aGlzLl9zb2x1dGlvbiA9IE51bWJlcihcbiAgICAgIChyZXNwb25zZS5pbmNpZGVudD8ueWVhcnBsdXNtb250aCB8fCBcIlwiKS5zdWJzdHJpbmcoMCwgNCksXG4gICAgKTtcblxuICAgIGNvbnN0IGFuc3dlcnMgPSBbdGhpcy5fc29sdXRpb25dO1xuICAgIGNvbnN0IGZyb20gPSB0aGlzLmZyb20ueWVhcigpO1xuICAgIGNvbnN0IHRvID0gdGhpcy50by55ZWFyKCk7XG5cbiAgICAvLyBnZW5lcmF0ZSAzIG1vcmUgcmFuZG9tIGFuZCB1bmlxdWUgYW5zd2VycyBiZXR3ZWVuIHRvIGFuZCBmcm9tXG4gICAgd2hpbGUgKGFuc3dlcnMubGVuZ3RoIDwgNCkge1xuICAgICAgY29uc3QgcmFuZG9tQW5zd2VyID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKHRvIC0gZnJvbSkpICsgZnJvbTtcbiAgICAgIGlmICghYW5zd2Vycy5pbmNsdWRlcyhyYW5kb21BbnN3ZXIpKSB7XG4gICAgICAgIGFuc3dlcnMucHVzaChyYW5kb21BbnN3ZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHNvcnQgdGhlc2VzIGFuc3dlcnNcbiAgICBhbnN3ZXJzLnNvcnQoKTtcblxuICAgIHRoaXMuX2Fuc3dlcnMgPSBhbnN3ZXJzO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm1heEhpbnRzOyBpKyspIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJsb2FkaW5nIGhpbnRcIiwgaSk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlOiB7IGluY2lkZW50OiBJbmNpZGVudCB8IHVuZGVmaW5lZDsgc291cmNlczogc3RyaW5nW10gfSA9XG4gICAgICAgIGF3YWl0IHRoaXMuX2FwaVNlcnZpY2UuZmV0Y2hPbmVJbmNpZGVudChcbiAgICAgICAgICB0aGlzLmNvdW50cnksXG4gICAgICAgICAgVXRpbC5zaHVmZmxlQXJyYXkoWy4uLkNhdGVnb3JpZXNdKS5zaGlmdCgpLFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgXCJcIixcbiAgICAgICAgICBgJHt0aGlzLl9zb2x1dGlvbn0tMDEtMDFgLFxuICAgICAgICAgIGAke3RoaXMuX3NvbHV0aW9ufS0xMi0zMWAsXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgKTtcblxuICAgICAgaWYgKHJlc3BvbnNlLmluY2lkZW50KSB7XG4gICAgICAgIHRoaXMuX2hpbnRzLnB1c2gocmVzcG9uc2UuaW5jaWRlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9oaW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuX3Nob3dIaW50ID0gZmFsc2U7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5fc2hvd0hpbnQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIHN0YXJ0IHJlbmRlciBnYW1lIHN0YWdlXG4gICAgdGhpcy5fcmVuZGVyU3RhdGUgPSBHYW1lU3RhdGUuUExBWTtcblxuICAgIC8vIHN0YXJ0IHNjb3JlIGNvdW50ZXJcbiAgICB0aGlzLl9zY29yZTAuc3RhcnQoKTtcblxuICAgIC8vIGluY3JlbWVudCBxdWVzdGlvbiBjb3VudGVyXG4gICAgdGhpcy5fbnVtYmVyT2ZRdWVzdGlvbnNTZWVuICs9IDE7XG4gIH1cblxuICBwcml2YXRlIF9nZW5lcmF0ZUhpbnRUZXh0KGhpbnRJbmNpZGVudDogSW5jaWRlbnQpOiBzdHJpbmcge1xuICAgIGxldCBoaW50ID0gXCJcIjtcbiAgICBjb25zdCBoaW50VGVtcGxhdGVzID0gdGhpcy5pMThuLkhpbnRUZW1wbGF0ZXNbaGludEluY2lkZW50LmNhdGVnb3J5XTtcbiAgICBzd2l0Y2ggKGhpbnRJbmNpZGVudC5jYXRlZ29yeSkge1xuICAgICAgY2FzZSBDYXRlZ29yeS5uZXdzSXRlbTpcbiAgICAgICAgaGludCA9IChcbiAgICAgICAgICBoaW50VGVtcGxhdGVzW01hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIGhpbnRUZW1wbGF0ZXMubGVuZ3RoKV0gfHwgXCJcIlxuICAgICAgICApLnJlcGxhY2UoL19fVElUTEVfXy8sIGhpbnRJbmNpZGVudC50aXRsZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDYXRlZ29yeS5yYWRpb1Nvbmc6XG4gICAgICAgIC8vIFRoZSB0aXRsZSBwcm9wZXJ0eSBvZiByYWRpb1NvbmdzIGFsd2F5cyBmb2xsb3cgdGhpcyBwYXR0ZXJuOiB0cmFjayAtIGFydGlzdFxuICAgICAgICBjb25zdCB0cmFjayA9IGhpbnRJbmNpZGVudC50aXRsZS5yZXBsYWNlKC8oLio/KVxccytcXC0uKi8sIFwiJDFcIik7XG4gICAgICAgIGNvbnN0IGFydGlzdCA9IGhpbnRJbmNpZGVudC50aXRsZS5yZXBsYWNlKC8uKlxcLSguKikvLCBcIiQxXCIpO1xuICAgICAgICBoaW50ID0gKFxuICAgICAgICAgIGhpbnRUZW1wbGF0ZXNbTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogaGludFRlbXBsYXRlcy5sZW5ndGgpXSB8fFxuICAgICAgICAgIGhpbnRUZW1wbGF0ZXNbMF1cbiAgICAgICAgKVxuICAgICAgICAgIC5yZXBsYWNlKC9fX0FSVElTVF9fLywgYXJ0aXN0KVxuICAgICAgICAgIC5yZXBsYWNlKC9fX1RSQUNLX18vLCB0cmFjayk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDYXRlZ29yeS5jaW5lbWFNb3ZpZTpcbiAgICAgICAgaGludCA9IChcbiAgICAgICAgICBoaW50VGVtcGxhdGVzW01hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIGhpbnRUZW1wbGF0ZXMubGVuZ3RoKV0gfHxcbiAgICAgICAgICBoaW50VGVtcGxhdGVzWzBdXG4gICAgICAgICkucmVwbGFjZSgvX19USVRMRV9fLywgaGludEluY2lkZW50LnRpdGxlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENhdGVnb3J5LnRlY2g6XG4gICAgICAgIGhpbnQgPSAoXG4gICAgICAgICAgaGludFRlbXBsYXRlc1tNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiBoaW50VGVtcGxhdGVzLmxlbmd0aCldIHx8XG4gICAgICAgICAgaGludFRlbXBsYXRlc1swXVxuICAgICAgICApLnJlcGxhY2UoL19fVElUTEVfXy8sIGhpbnRJbmNpZGVudC50aXRsZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDYXRlZ29yeS5uZXdzUHJlc2VudGVyOlxuICAgICAgICBoaW50ID0gKFxuICAgICAgICAgIGhpbnRUZW1wbGF0ZXNbTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogaGludFRlbXBsYXRlcy5sZW5ndGgpXSB8fFxuICAgICAgICAgIGhpbnRUZW1wbGF0ZXNbMF1cbiAgICAgICAgKS5yZXBsYWNlKC9fX1RJVExFX18vLCBoaW50SW5jaWRlbnQudGl0bGUgfHwgaGludEluY2lkZW50LnRleHQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2F0ZWdvcnkudHZTaG93T3JTZXJpZXM6XG4gICAgICAgIGhpbnQgPSAoXG4gICAgICAgICAgaGludFRlbXBsYXRlc1tNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiBoaW50VGVtcGxhdGVzLmxlbmd0aCldIHx8XG4gICAgICAgICAgaGludFRlbXBsYXRlc1swXVxuICAgICAgICApLnJlcGxhY2UoL19fVElUTEVfXy8sIGhpbnRJbmNpZGVudC50aXRsZSB8fCBoaW50SW5jaWRlbnQudGV4dCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDYXRlZ29yeS5zcG9ydHM6XG4gICAgICAgIGhpbnQgPSAoXG4gICAgICAgICAgaGludFRlbXBsYXRlc1tNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiBoaW50VGVtcGxhdGVzLmxlbmd0aCldIHx8XG4gICAgICAgICAgaGludFRlbXBsYXRlc1swXVxuICAgICAgICApLnJlcGxhY2UoL19fVElUTEVfXy8sIGhpbnRJbmNpZGVudC50aXRsZSB8fCBoaW50SW5jaWRlbnQudGV4dCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDYXRlZ29yeS5zaG93Yml6ejpcbiAgICAgICAgaGludCA9IChcbiAgICAgICAgICBoaW50VGVtcGxhdGVzW01hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIGhpbnRUZW1wbGF0ZXMubGVuZ3RoKV0gfHxcbiAgICAgICAgICBoaW50VGVtcGxhdGVzWzBdXG4gICAgICAgICkucmVwbGFjZSgvX19USVRMRV9fLywgaGludEluY2lkZW50LnRpdGxlIHx8IGhpbnRJbmNpZGVudC50ZXh0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBoaW50O1xuICB9XG5cbiAgcmVuZGVyU291cmNlcygpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc29sZS5kZWJ1ZyhcInJlbmRlclNvdXJjZXNcIik7XG4gICAgaWYgKCF0aGlzLnNvdXJjZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gaHRtbGBgO1xuICAgIH1cbiAgICAvLyBkZWR1cGxpY2F0ZSBhcnJheSB2aWEgWy4uLm5ldyBTZXQodGhpcy5zb3VyY2VzKV1cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJndWVzcy10aGUteWVhci1zb3VyY2VzXCIgPlxuICAgICAgICBTb3VyY2U6ICR7Wy4uLm5ldyBTZXQodGhpcy5zb3VyY2VzKV0uam9pbihcIiwgXCIpfVxuICAgIDwvZGl2PlxuICAgICAgYDtcbiAgfVxuXG4gIF9oYW5kbGVJbWFnZUxvYWRFcnJvciA9IChldnQ6IEV2ZW50LCBpbmNpZGVudDogSW5jaWRlbnQpID0+IHtcbiAgICAvLyBncmFiIHRoZSBpbWFnZSBlbGVtZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBlcnJvclxuICAgIGNvbnN0IHRhcmdldEltYWdlID0gZXZ0LnRhcmdldCBhcyBIVE1MSW1hZ2VFbGVtZW50O1xuICAgIGNvbnNvbGUuZGVidWcoYEVycm9yIGxvYWRpbmcgaW1hZ2U6ICR7dGFyZ2V0SW1hZ2Uuc3JjfSBgKTtcblxuICAgIC8vIGZpbmQgb3V0IHdoaWNoIG5vIGltYWdlIHNvdXJjZSBuZWVkcyB0byBiZSB1c2VkXG4gICAgY29uc3Qgbm9JbWFnZVNyYyA9IHRoaXMubm9JbWFnZVNyYyB8fCBOb0ltYWdlSW1nO1xuXG4gICAgLy8gZG9uJ3QgdHJ5IHRvIHNldCB0aGUgaW1hZ2Ugc291cmNlIGlmIGl0XG4gICAgLy8gaGFzIGFscmVhZHkgYmVlbiBzZXRcbiAgICBpZiAodGFyZ2V0SW1hZ2Uuc3JjID09IG5vSW1hZ2VTcmMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyByZXBvcnQgYnJva2VuIGltYWdlcyBiYWNrIHRvIHRoZSBzZXJ2ZXIgaWYgc2V0LlxuICAgIGlmICh0aGlzLnJlcG9ydEJyb2tlbkltYWdlcykge1xuICAgICAgaWYgKGluY2lkZW50KSB7XG4gICAgICAgIHRoaXMuX2FwaVNlcnZpY2UucG9zdEF0dHJpYnV0ZVF1YWxpdHlGZWVkYmFjayhcbiAgICAgICAgICBpbmNpZGVudC5pZCxcbiAgICAgICAgICBcImltYWdlXCIsXG4gICAgICAgICAgdGFyZ2V0SW1hZ2Uuc3JjLFxuICAgICAgICAgIENvbnRlbnRGZWVkYmFjay5pbmNvcnJlY3QsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gd2FpdCBhIGJpdCBiZWZvcmUgc2V0dGluZyB0aGUgaW1hZ2VcbiAgICAvLyBzbyB3ZSBkb24ndCBoYW1tZXIgdGhlIG5vIGltYWdlIHNlcnZlclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGFyZ2V0SW1hZ2Uuc3JjID0gbm9JbWFnZVNyYztcbiAgICB9LCAyNTApO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIFwiZ3Vlc3MtdGhlLXllYXJcIjogR3Vlc3NUaGVZZWFyO1xuICB9XG59XG4iLCJpbXBvcnQgeyBJU3RyaW5nQXJyYXlIYXNoIH0gZnJvbSBcIi4uL1V0aWxcIjtcbmltcG9ydCB7IE5MIH0gZnJvbSBcIi4vTkxcIjtcbmltcG9ydCB7IEVOIH0gZnJvbSBcIi4vRU5cIjtcblxuZXhwb3J0IGludGVyZmFjZSBpMThuIHtcbiAgSGludFRlbXBsYXRlczogSVN0cmluZ0FycmF5SGFzaDtcblxuICB0cmFuc2xhdGUoa2V5OiBzdHJpbmcpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpMThuRmFjdG9yeShsYW5ndWFnZTogc3RyaW5nKTogaTE4biB7XG4gIHN3aXRjaCAobGFuZ3VhZ2UpIHtcbiAgICBjYXNlIFwiZW5cIjpcbiAgICAgIHJldHVybiBuZXcgRU4oKTtcbiAgfVxuICByZXR1cm4gbmV3IE5MKCk7XG59XG4iLCJcbmV4cG9ydCBjb25zdCBOb0ltYWdlSW1nID1cbiAgXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQkJRQUFBRkVDQVlBQUFDWHFXM01BQUFNYVdsRFExQkpRME1nVUhKdlptbHNaUUFBU0ltVlZ3ZFVVOGthbmx1U2tKRFFBaEdRRW5vVHBGY3BJYlFBQWxJRkd5RUpKSlFZRW9LS0hWbFVjSzJJS0ZaMFZjUzJ1Z0t5RnNSZUZzSGVGd3NxeXJxb2k2S292QWtKNkxxdm5QZWZNM2UrZlBQUDMrNU03Z3dBbW4xY2lTUVgxUUlnVDF3Z2pROFBabzVQVFdPU25nRVVhQUlkNEFKTXVEeVpoQlVYRncyZ0RQVi9sM2MzQUtMb3J6b3FiUDF6L0wrS0RsOGc0d0dBVElRNGd5L2o1VUhjREFDK25pZVJGZ0JBVlBBVzB3b2tDandQWWwwcERCRGlDZ1hPVXVLZENweWh4RWNHZFJMajJSQzNBYUJHNVhLbFdRQm8zSU04czVDWEJlMW9mSUxZV2N3WGlRSFFIQVZ4QUUvSTVVT3NpSDFVWHQ1VUJhNkMyQmJxU3lDRzhRRHZqRzlzWnYzTmZzYXdmUzQzYXhncjh4b1V0UkNSVEpMTG5mRi9sdVovUzE2dWZNaUhOV3hVb1RRaVhwRS9yT0d0bktsUkNreUZ1RnVjRVJPcnFEWEVmU0src3U0QW9CU2hQQ0pKcVk4YThXUnNXRC9BZ05pWnp3MkpndGdJNGpCeGJreTBpcy9JRklWeElJYXJCWjB1S3VBa1Fxd1A4U0tCTERSQnBiTlpPalZlNVF1dHo1U3lXU3IrSEZjNjZGZmg2NEU4SjRtbHN2OUdLT0NvN0dNYVJjTEVGSWdwRUZzV2lwSmpJTmFBMkVtV2t4Q2wwaGxUSkdUSERPbEk1ZkdLK0MwaGpoZUl3NE9WOXJIQ1RHbFl2RXEvTEU4MmxDKzJXU2ppeEtqd2dRSmhZb1N5UHRncEhuY3dmcGdMMWlZUXM1S0c3QWhrNDZPSGN1RUxRa0tWdVdQUEJlS2tCSldkUGtsQmNMeHlMazZSNU1hcDlIRnpRVzY0Z2plSDJGMVdtS0NhaXljWHdNV3B0STluU2dyaUVwVng0a1haM01nNFpUejRjaEFOMkNBRU1JRWN0Z3d3RldRRFVXdDNRemY4cFJ3SkExd2dCVmxBQUJ4VnpOQ01sTUVSTVh3bWdDTHdCMFFDSUJ1ZUZ6dzRLZ0NGa1A4OHpDcWZqaUJ6Y0xSd2NFWU9lQXB4SG9nQ3VmQzNmSENXZU5oYk1uZ0NHZEUvdkhOaDQ4RjRjMkZUalA5N2Zvajl5ckFnRTYxaTVFTWVtWnBEbXNSUVlnZ3hnaGhHdE1NTjhRRGNENCtHenlEWVhIRnYzR2NvajYvNmhLZUVkc0lqd25WQ0IrSDJGRkd4OUxzb3g0SU9hRDlNVll1TWIydUJXME9iSG5ndzdnK3RROHM0QXpjRWpyZzc5TVBDQTZGbkQ4aXlWWEVycXNMOHp2YmZNdmptYmFqMHlNNWtsRHlDSEVTMi9YNm1ocjJHeDdBVlJhMi9yWTh5MW96aGVyT0hSNzczei82bStuellSMzJ2aVMzQ0RtSm5zUlBZZWV3STFnQ1kySEdzRWJ1RUhWWGc0ZFgxWkhCMURYbUxINHduQjlvUi9jTWZWK1ZUVVVtWmM1MXpsL01uNVZpQllIcUJZdU94cDBwbVNFVlp3Z0ltQzM0ZEJFeU9tT2MwaXVucTdPb0dnT0piby96N2Vzc1kvSVlnakF0ZnVmeG1BSHpLSUpuMWxlTmFBSEQ0S1FEMGQxODVpemR3Mnl3SDRHZ2JUeTR0VkhLNDRrR0EveEthY0tjWkFCTmdBV3hoUHE3QUUvaUJJQkFLSWtFc1NBU3BZREtzc2hDdWN5bVlCbWFCK2FBVWxJUGxZRFZZQnphQnJXQW4yQU1PZ0Fad0JKd0FaOEJGMEFhdWc3dHc5WFNDbDZBSHZBUDlDSUtRRUJwQ1J3d1FVOFFLY1VCY0VXOGtBQWxGb3BGNEpCVkpSN0lRTVNKSFppRUxrSEprSmJJTzJZTFVJajhqaDVFVHlIbWtIYm1OUEVTNmtEZklSeFJEcWFndWFveGFvNk5SYjVTRlJxR0o2Q1EwQzgxSGk5QVNkQ2xhaGRhZ3U5RjY5QVI2RWIyT2RxQXYwVjRNWU9vWUF6UERIREZ2akkzRlltbFlKaWJGNW1CbFdDVldnKzNGbXVCN3ZvcDFZTjNZQjV5STAzRW03Z2hYY0FTZWhQUHdmSHdPdmdSZmgrL0U2L0ZUK0ZYOElkNkRmeUhRQ0VZRUI0SXZnVU1ZVDhnaVRDT1VFaW9KMndtSENLZmhYdW9rdkNNU2lReWlEZEVMN3NWVVlqWnhKbkVKY1FOeEg3R1oyRTU4VE93bGtVZ0dKQWVTUHltV3hDVVZrRXBKYTBtN1NjZEpWMGlkcEQ0MWRUVlROVmUxTUxVME5iRmFzVnFsMmk2MVkycFgxSjZwOVpPMXlGWmtYM0lzbVUrZVFWNUcza1p1SWw4bWQ1TDdLZG9VRzRvL0paR1NUWmxQcWFMc3BaeW0zS084VlZkWE4xZjNVUituTGxLZnAxNmx2bC85blBwRDlROVVIYW85bFUyZFNKVlRsMUozVUp1cHQ2bHZhVFNhTlMySWxrWXJvQzJsMWRKTzBoN1EralRvR2s0YUhBMit4bHlOYW8xNmpTc2FyelRKbWxhYUxNM0pta1dhbFpvSE5TOXJkbXVSdGF5MTJGcGNyVGxhMVZxSHRXNXE5V3JUdFYyMFk3WHp0SmRvNzlJK3IvMWNoNlJqclJPcXc5Y3AwZG1xYzFMbk1SMmpXOURaZEI1OUFYMGIvVFM5VTVlb2E2UEwwYzNXTGRmZG85dXEyNk9ubytldWw2dzNYYTlhNzZoZUJ3TmpXRE00akZ6R01zWUJ4ZzNHeHhIR0kxZ2pCQ01XajlnNzRzcUk5L29qOVlQMEJmcGwrdnYwcit0L05HQWFoQnJrR0t3d2FEQzRiNGdiMmh1T001eG11Tkh3dEdIM1NOMlJmaU41STh0R0hoaDV4d2cxc2plS041cHB0Tlhva2xHdnNZbHh1TEhFZUszeFNlTnVFNFpKa0VtMlNZWEpNWk11VTdwcGdLbkl0TUwwdU9rTHBoNlR4Y3hsVmpGUE1Ydk1qTXdpek9SbVc4eGF6ZnJOYmN5VHpJdk45NW5mdDZCWWVGdGtXbFJZdEZqMFdKcGFqcldjWlZsbmVjZUtiT1Z0SmJSYVkzWFc2cjIxalhXSzlVTHJCdXZuTnZvMkhKc2ltenFiZTdZMDIwRGJmTnNhMjJ0MlJEdHZ1eHk3RFhadDlxaTloNzNRdnRyK3NnUHE0T2tnY3RqZzBENktNTXBubEhoVXphaWJqbFJIbG1PaFk1M2pReWVHVTdSVHNWT0QwNnZSbHFQVFJxOFlmWGIwRjJjUDUxem5iYzUzWFhSY0lsMktYWnBjM3JqYXUvSmNxMTJ2dWRIY3d0em11alc2dlhaM2NCZTRiM1MvNVVIM0dPdXgwS1BGNDdPbmw2ZlVjNjlubDVlbFY3clhlcStiM3JyZWNkNUx2TS81RUh5Q2ZlYjZIUEg1NE92cFcrQjd3UGRQUDBlL0hMOWRmcy9IMkl3UmpOazI1ckcvdVQvWGY0dC9Sd0F6SUQxZ2MwQkhvRmtnTjdBbThGR1FSUkEvYUh2UU01WWRLNXUxbS9VcTJEbFlHbndvK0QzYmx6MmIzUnlDaFlTSGxJVzBodXFFSm9XdUMzMFFaaDZXRlZZWDFoUHVFVDR6dkRtQ0VCRVZzU0xpSnNlWXcrUFVjbm9pdlNKblI1Nktva1lsUksyTGVoUnRIeTJOYmhxTGpvMGN1MnJzdlJpckdIRk1ReXlJNWNTdWlyMGZaeE9YSC9mck9PSzR1SEhWNDU3R3U4VFBpaitiUUUrWWtyQXI0VjFpY09LeXhMdEp0a255cEpaa3plU0p5YlhKNzFOQ1VsYW1kSXdmUFg3MitJdXBocW1pMU1ZMFVscHkydmEwM2dtaEUxWlA2SnpvTWJGMDRvMUpOcE9tVHpvLzJYQnk3dVNqVXpTbmNLY2NUQ2VrcDZUdlN2L0VqZVhXY0hzek9CbnJNM3A0Yk40YTNrdCtFTCtDM3lYd0Y2d1VQTXYwejF5WitUekxQMnRWVnBjd1VGZ3A3QmF4UmV0RXI3TWpzamRsdjgrSnpkbVJNNUNia3JzdlR5MHZQZSt3V0VlY0l6NDExV1RxOUtudEVnZEpxYVFqM3pkL2RYNlBORXE2WFliSUpza2FDM1Rob2Y2UzNGYitnL3hoWVVCaGRXSGZ0T1JwQjZkclR4ZFB2elREZnNiaUdjK0t3b3ArbW9uUDVNMXNtV1UyYS82c2g3TlpzN2ZNUWVaa3pHbVphekczWkc3bnZQQjVPK2RUNXVmTS82M1l1WGhsOFY4TFVoWTBsUmlYekN0NS9FUDREM1dsR3FYUzBwc0wvUlp1V29RdkVpMXFYZXkyZU8zaUwyWDhzZ3ZsenVXVjVaK1c4SlpjK05IbHg2b2ZCNVptTG0xZDVybHM0M0xpY3ZIeUd5c0NWK3hjcWIyeWFPWGpWV05YMVZjd0s4b3EvbG85WmZYNVN2ZktUV3NvYStSck9xcWlxeHJYV3E1ZHZ2YlRPdUc2NjlYQjFmdldHNjFmdlA3OUJ2NkdLeHVETnU3ZFpMeXBmTlBIemFMTnQ3YUViNm12c2E2cDNFcmNXcmoxNmJia2JXZC84djZwZHJ2aDl2THRuM2VJZDNUc2pOOTVxdGFydG5hWDBhNWxkV2lkdks1cjk4VGRiWHRDOWpUdWRkeTdaUjlqWC9sK3NGKysvOFhQNlQvZk9CQjFvT1dnOThHOXYxajlzdjRRL1ZCWlBWSS9vNzZuUWRqUTBaamEySDQ0OG5CTGsxL1RvVitkZnQxeHhPeEk5Vkc5bzh1T1VZNlZIQnM0WG5TOHQxblMzSDBpNjhUamxpa3RkMCtPUDNudDFMaFRyYWVqVHA4N0UzYm01Rm5XMmVQbi9NOGRPZTk3L3ZBRjd3c05GejB2MWwveXVIVG9ONC9mRHJWNnR0WmY5cnJjMk9iVDF0UStwdjNZbGNBcko2NkdYRDF6alhQdDR2V1k2KzAza203Y3Vqbnhac2N0L3EzbnQzTnZ2NzVUZUtmLzdyeDdoSHRsOTdYdVZ6NHdlbER6dTkzdit6bzhPNDQrREhsNDZWSENvN3VQZVk5ZlBwRTkrZFJaOHBUMnRQS1o2YlBhNTY3UGozU0ZkYlc5bVBDaTg2WGtaWDkzNlIvYWY2eC9aZnZxbHorRC9yelVNNzZuODdYMDljQ2JKVzhOM3U3NHkvMnZsdDY0M2dmdjh0NzF2eS9yTStqYitjSDd3OW1QS1IrZjlVLzdSUHBVOWRudWM5T1hxQy8zQnZJR0JpUmNLWGZ3S0lEQmhtWm1BdkJtQndDMFZIaDJnUGMyeWdUbFhYQlFFT1g5ZFJDQi80U1Y5OFZCOFFSZ1J4QUFTZk1BaUlabmxJMndXVUZNaGIzaUNKOFlCRkEzdCtHbUVsbW1tNnZTRmhYZWhBaDlBd052alFFZ05RSHdXVG93MEw5aFlPRHpOaGpzYlFDYTg1VjNVSVVRNFoxaHM1TUN0WFUrS1FIZmlmSisrazJPMy9kQUVZRTcrTDcvRjBYemorWUtYR3BkQUFBQWltVllTV1pOVFFBcUFBQUFDQUFFQVJvQUJRQUFBQUVBQUFBK0FSc0FCUUFBQUFFQUFBQkdBU2dBQXdBQUFBRUFBZ0FBaDJrQUJBQUFBQUVBQUFCT0FBQUFBQUFBQUpBQUFBQUJBQUFBa0FBQUFBRUFBNUtHQUFjQUFBQVNBQUFBZUtBQ0FBUUFBQUFCQUFBRUZLQURBQVFBQUFBQkFBQUJSQUFBQUFCQlUwTkpTUUFBQUZOamNtVmxibk5vYjNTbTdVcElBQUFBQ1hCSVdYTUFBQllsQUFBV0pRRkpVaVR3QUFBQjEybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05pNHdMakFpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenBsZUdsbVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMMlY0YVdZdk1TNHdMeUkrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNHpNalE4TDJWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRBME5Ed3ZaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbFZ6WlhKRGIyMXRaVzUwUGxOamNtVmxibk5vYjNROEwyVjRhV1k2VlhObGNrTnZiVzFsYm5RK0NpQWdJQ0FnSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGdvZ0lDQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdxYVJlcHhBQUFBSEdsRVQxUUFBQUFDQUFBQUFBQUFBS0lBQUFBb0FBQUFvZ0FBQUtJQUFDRGFTQ21uTkFBQUlLWkpSRUZVZUFIczNYZWNGZVc5UC9BdnV3dWlJa1dLZ0ZJRUtSYWtHZXhHalRFUlc2S0ptbnZqTlphSUxVYVQ2RFhGeEo4My9WNmp4RmdTbzdFYkxKaVlpS0lZc1VTdjVXTFhXQkJVUUFRN3ZlenltMWxmdThJS1o4OGN6amx1ZWMvcmxldzVNMCtaNS8yTWY1d1BNOCswMlhLM2sxZUZqUUFCQWdRSUVDQkFnQUFCQWdRSUVDQ1FRYUNOUUNHRGxxSUVDQkFnUUlBQUFRSUVDQkFnUUlCQXJZQkF3WVZBZ0FBQkFnUUlFQ0JBZ0FBQkFnUUlaQllRS0dRbVU0RUFBUUlFQ0JBZ1FJQUFBUUlFQ0JBUUtMZ0dDQkFnUUlBQUFRSUVDQkFnUUlBQWdjd0NBb1hNWkNvUUlFQ0FBQUVDQkFnUUlFQ0FBQUVDQWdYWEFBRUNCQWdRSUVDQUFBRUNCQWdRSUpCWlFLQ1FtVXdGQWdRSUVDQkFnQUFCQWdRSUVDQkFRS0RnR2lCQWdBQUJBZ1FJRUNCQWdBQUJBZ1F5Q3dnVU1wT3BRSUFBQVFJRUNCQWdRSUFBQVFJRUNBZ1VYQU1FQ0JBZ1FJQUFBUUlFQ0JBZ1FJQkFaZ0dCUW1ZeUZRZ1FJRUNBQUFFQ0JBZ1FJRUNBQUFHQmdtdUFBQUVDQkFnUUlFQ0FBQUVDQkFnUXlDd2dVTWhNcGdJQkFnUUlFQ0JBZ0FBQkFnUUlFQ0FnVUhBTkVDQkFnQUFCQWdRSUVDQkFnQUFCQXBrRkJBcVp5VlFnUUlBQUFRSUVDQkFnUUlBQUFRSUVCQXF1QVFJRUNCQWdRSUFBQVFJRUNCQWdRQ0N6Z0VBaE01a0tCQWdRSUVDQUFBRUNCQWdRSUVDQWdFREJOVUNBQUFFQ0JBZ1FJRUNBQUFFQ0JBaGtGaEFvWkNaVGdRQUJBZ1FJRUNCQWdBQUJBZ1FJRUJBb3VBWUlFQ0JBZ0FBQkFnUUlFQ0JBZ0FDQnpBSUNoY3hrS2hBZ1FJQUFBUUlFQ0JBZ1FJQUFBUUlDQmRjQUFRSUVDQkFnUUlBQUFRSUVDQkFna0ZsQW9KQ1pUQVVDQkFnUUlFQ0FBQUVDQkFnUUlFQkFvT0FhSUVDQUFBRUNCQWdRSUVDQUFBRUNCRElMQ0JReWs2bEFnQUFCQWdRSUVDQkFnQUFCQWdRSUNCUmNBd1FJRUNCQWdBQUJBZ1FJRUNCQWdFQm1BWUZDWmpJVkNCQWdRSUFBQVFJRUNCQWdRSUFBQVlHQ2E0QUFBUUlFQ0JBZ1FJQUFBUUlFQ0JESUxDQlF5RXltQWdFQ0JBZ1FJRUNBQUFFQ0JBZ1FJQ0JRY0EwUUlFQ0FBQUVDQkFnUUlFQ0FBQUVDbVFVRUNwbkpWQ0JBZ0FBQkFnUUlFQ0JBZ0FBQkFnUUVDcTRCQWdRSUVDQkFnQUFCQWdRSUVDQkFJTE9BUUNFem1Rb0VDQkFnUUlBQUFRSUVDQkFnUUlDQVFNRTFRSUFBQVFJRUNCQWdRSUFBQVFJRUNHUVdFQ2hrSmxPQkFBRUNCQWdRSUVDQUFBRUNCQWdRRUNpNEJnZ1FJRUNBQUFFQ0JBZ1FJRUNBQUlITUFnS0Z6R1FxRUNCQWdBQUJBZ1FJRUNCQWdBQUJBZ0lGMXdBQkFnUUlFQ0JBZ0FBQkFnUUlFQ0NRV1VDZ2tKbE1CUUlFQ0JBZ1FJQUFBUUlFQ0JBZ1FFQ2c0Qm9nUUlBQUFRSUVDQkFnUUlBQUFRSUVNZ3NJRkRLVHFVQ0FBQUVDQkFnUUlFQ0FBQUVDQkFnSUZGd0RCQWdRSUVDQUFBRUNCQWdRSUVDQVFHWUJnVUptTWhVSUVDQkFnQUFCQWdRSUVDQkFnQUFCZ1lKcmdBQUJBZ1FJRUNCQWdBQUJBZ1FJRU1nc0lGRElUS1lDQVFJRUNCQWdRSUFBQVFJRUNCQWdJRkJ3RFJBZ1FJQUFBUUlFQ0JBZ1FJQUFBUUtaQlFRS21jbFVJRUNBQUFFQ0JBZ1FJRUNBQUFFQ0JBUUtyZ0VDQkFnUUlFQ0FBQUVDQkFnUUlFQWdzNEJBSVRPWkNnUUlFQ0JBZ0FBQkFnUUlFQ0JBZ0lCQXdUVkFnQUFCQWdRSUVDQkFnQUFCQWdRSVpCWVFLR1FtVTRFQUFRSUVDQkFnUUlBQUFRSUVDQkFRS0xnR0NCQWdRSUFBQVFJRUNCQWdRSUFBZ2N3Q0FvWE1aQ29RSUVDQUFBRUNCQWdRSUVDQUFBRUNBZ1hYQUFFQ0JBZ1FJRUNBQUFFQ0JBZ1FJSkJaUUtDUW1Vd0ZBZ1FJRUNCQWdBQUJBZ1FJRUNCQVFLRGdHaUJBZ0FBQkFnUUlFQ0JBZ0FBQkFnUXlDd2dVTXBPcFFJQUFBUUlFeWkvUW8zdm5HREs0VC9UZHZIdDA2OW9wTnRxb2ZiU3Rxb3cyYmRxVS8yU0syT09xVmFzaS9kK1NwY3ZqblhjL2pEZG16NCtYWHBrVnMrZThIZFhWTlVYc1NWTUVDQkFnUUlCQXNRVUVDc1VXMVI0QkFnUUlFQ2lTUU1kTk5vcTk5aGdSQjQzZE9iYnMxeXNKRCtvYWJyUGE1N3A5emZ0dmtpa2tXKzMvSlFGRHhKeTViOGZrS1kvSHBMc2VyUTBhbXZmb25EMEJBZ1FJRUdpWkFnS0Zsam12UmtXQUFBRUN6VlNnc3JJaU51L2RMZmJhZlVRYzhNVWRvM3UzenMxMEpNVTU3WVVMbDhSZC8vaS91SFBLWXpIejliZGkrZklWeFdsWUt3UUlFQ0JBZ01CNkN3Z1UxcHRRQXdRSUVDQkFvRGdDbTNiWkpIYlpjZHY0MGdHN3hsWURlaGVuMFJiU3lxemtFWWpiSno4UzkweWRGdlBtdjk5Q1JtVVlCQWdRSUVDZ2VRc0lGSnIzL0RsN0FnUUlFR2doQWdPMzdCMWYrZEllOGJuUGpveDI3YXBheUtpS080d1ZLMWJHWTlOZWpPdHZ1amVlZlg1R2NSdlhHZ0VDQkFnUUlKQlpRS0NRbVV3RkFnUUlFQ0JRUElGMFhZUWhnL3JFY1VlTmpSSERCa1pWc3RDaUxiZEF1bWpqbjY2ZEhQLzcyQXUxQ3pybUx1MG9BUUlFQ0JBZ1VDb0JnVUtwWkxWTGdBQUJBZ1R5RU9qZHEydWM5WjJ2eGJCdCtqZjdOemJrTWR5aUZFa1hiWHp0amJmaWdvdHVpU2VmbVY2VU5qVkNnQUFCQWdRSVpCY1FLR1EzVTRNQUFRSUVDQlJGWU9PTjI4ZjN2M05FN0xienNLSzAxOW9hU2NPRTgzOTNjeEl1ekd0dFF6ZGVBZ1FJRUNEUUpBUUVDazFpR3B3RUFRSUVDTFEyZ2JadEsrUG9yMzh4L3UycmU3ZTJvUmQxdk9sckpjZGZNakdXTGZQMmg2TENhb3dBQVFJRUNPUWhJRkRJQTBrUkFnUUlFQ0JRYklIZGR4a1daNS81NzhrQ2pHMExibnBWZXU5L0tiWmtZWWRrYVljMXR0cWVTdFZmMGx1NmxrUWhXN3BRNC9uSm93OXBzR0FqUUlBQUFRSUV5aXNnVUNpdnQ5NElFQ0JBZ0VDa3I0ZjhyeDhkSGR0dTNTOXZqVFE4ZVB1ZEQrS1J4MStNNS84MXMvYlZpVFUxTlhuWHo3ZGdodzRieGNINzd4S2pSd3lxcjdKeVpYVk1mZkNwbUpTOHRyRVVXNXNrVGVpU21Bd2QzRGZHakI0U1cvVHVIaFVWK1NjTTc3ejdZWnh3K3ZpWTczV1NwWmdlYlJJZ1FJQUFnWFVLQ0JUV1NlTUFBUUlFQ0JBb2pVRDZnLzM0Yit3ZjZSb0srVzZ6WnMrUEg1eDdSY3g5NjkxWXViSW1TaEVtcE9mU3BYT0hPUG40ZzJPZlBVZlZuMXA2RjhDTnQ5NFhsMTA1cVg1ZnNUK2tBVUpsWldVTUh6WWdUaDMzNWVqYnAwZW1McTYvOFo3NFF3blBMOVBKS0V5QUFBRUNCRnFKZ0VDaGxVeTBZUklnUUlCQTB4RG8xSEhqK00vVGo0aGRkdHdtMHdtbFArb24zL040L1BIcU8rTDk5eGRtcXB1bDhLY1ZLS1NQUEd6WnIxZWNrb1FabzFhN095TGZjMzhqQ1Z4T1ArdVMycnM0OHEyakhBRUNCQWdRSUxCK0FnS0Y5Zk5UbXdBQkFnUUlaQklZUFhKd2ZPZmtRMlB6M3QweTFVc0xMMTI2UEc1UEhqdTRMdm5YK0hmZlc1QzVmajRWT25iY0tFNDQ1b0FZdSsrTzljV1hMVnVlOVBtUHVQcUd1K3YzRmZ0RC83NDlrenNqRG9yUGpCcFNVTk1MRml5T2l5NjdMZTZjOGxoQjlWVWlRSUFBQVFJRXNnc0lGTEticVVHQUFBRUNCQW9TcUtpb2lFTU8zRFhHSlQvWTI3YXR5dGxHM1lLTDZmb0NxMjlMbGl5THE1SWY5amZkZW45VVYxZXZmcWdvbjlQek9uQy9uZUs0bzhiR1JodHVVTnZtdkdSdGdsK1BueENQVDN1cEtIMDBiQ1R0SjExVFl2VElqOWR0cUN1VDNwbXhmUG1LNVBHUURldDJyZlZ2ZFhWTmJkankyMHR2VFI0SktiN0xXanUxa3dBQkFnUUl0SElCZ1VJcnZ3QU1ud0FCQWdUS0o3QkpzdURoTjQ4ZUd3ZnR0M1BPVHRNdzRabm5ac1NIeWIrNjc3akQwRStFRHk5UG54WGZPdU9pMmpzV2NqWlU0TUZ1WFR2RlFXTjNqajJTTjFFc1QzN1FUN3p0d2JqM2dTZEw5bXJHa2R0dkZiLzV4UW5KbXg3V0RFL1NrT0RhRzZkRStwakl3V04zK2NUeGhzTjcvSW1YNHRjWFRLaGRzTExoTWQ4SkVDQkFnQUNCNGdzSUZJcHZxa1VDQkFnUUlMQldnYzE2ZEludmZ1c3J5WnNNaHE3MWVOM09oWXVXeE9YSldnbjMvL09acFB4WFkrY3hXNi94WTNybTYyL0ZpYWRkRUV1U1J5Qkt0YVd2czJ5L1FkdEl3NDNGeVYwUjZZLzdVbTFqa3REazErZCtjNDNtMHpkVVhuVFpYK08yU1EvRnFPR0Q0dlRrTVpIVUw5ZjJ5cXR6NHJ3TGI0b1hYbnc5VnpISENCQWdRSUFBZ1NJSkNCU0tCS2taQWdRSUVDRFFtRUQvdnB2RjJXZCtQUVlPNkoyejZKdHozNG16ZjNaVnZESjlkblRvc0dIODF3Ky9FVnNQN1JkdHF5cVNPd2FxNDlvSlUyTEN6Vk5qWlFrZWVjaDVZaVU2bUQ1bWNkRnZ2aFg5Ky9Tc2ZWM2swbVVyNHVycjc2cDlzMFRhWmU5ZTNlSjdwMzQxQ1JhMnlua0c2UnN3enIvb2x1VFZtdi9LV2M1QkFnUUlFQ0JBb0RnQ0FvWGlPR3FGQUFFQ0JBZzBLckRWZ00yVHRRS09pbDQ5dStZcysrck1OK09VNzE1WWUyZEFXbkREWkkyQnNWOFlFMzE2ZDQrWGs1RGgvbjgrSFFzV0xzblpSbk03bUQ1bXNYOHl4bzZiYkJ6VG5ubzVIcHYyWXJKMndzcmFZV3pZdmwyY2NkcmhzZmNlSTNJTzY3MzNGOFQ0aTIrTnFROCtsYk9jZ3dRSUVDQkFnRUJ4QkFRS3hYSFVDZ0VDQkFnUWFGUmc4RlpieE05L2NreWtQNTV6YlMrOU1pdkduWHArSkhmOWZ5cGJaV1ZGYk5wbGsramNxVU9raXlLK21mekwvN0xrcm9GUGEwdlhWamd6Q1JUMisveG5jcDVDdXViRStFc214ajFUbjhoWnprRUNCQWdRSUVDZ09BSUNoZUk0YW9VQUFRSUVDRFFxTUdSUW4vakZPY2ZXL2xqUFZmakZsNU5BNGR2bjV5cFNzbU5kdTNhc1hRQngyTFpiUm9ma3pRcnAyZ216MzN3NzdyejdzZG83QjBxNWxrS3VRYVdCd3RoOXgrUXFFdW1ySTlPM1BOeDk3N1NjNVJ3a1FJQUFBUUlFaWlNZ1VDaU9vMVlJRUNCQWdFQ2pBazA5VU5oZ2czYngweDk5STRZUEd4RHBvb3gxVzAzTnFwZzc3OTM0d3hXM3gvMFBQUk0xTmFWYm9MR3V6NFovOHdvVUZpYUJ3aVVDaFlaMnZoTWdRSUFBZ1ZJSkNCUktKYXRkQWdRSUVDRFFRS0NwQndvbkhuZGdISDdJbmczTyt1T3YvM3JwamZqcGYxOFhzMmJQLzNobm1UNEpGTW9FclJzQ0JBZ1FJSkJCUUtDUUFVdFJBZ1FJRUNDd1BnSk5PVkJJM3laeDh6VS9UbDRWMlc2ZFEweGZJWG51cjY2TnFRODhWZnM2eVhVV0xNRUJnVUlKVURWSmdBQUJBZ1RXVTBDZ3NKNkFxaE1nUUlBQWdYd0ZtbktnTUhSd243ajBndE1hSGNyVk45d2RWMTQzT1huc29ieExSZ29VR3AwYUJRZ1FJRUNBUU5rRkJBcGxKOWNoQVFJRUNMUldnYVljS0F3Zk5qREcvK3FrUnFkbXdzU3A4ZnRrTFlWeXI2TWdVR2gwYWhRZ1FJQUFBUUpsRnhBb2xKMWNod1FJRUNEUVdnV2FjcUF3SWdrVUxoQW90TlpMMDdnSkVDQkFnRUJCQWdLRmd0aFVJa0NBQUFFQzJRVUVDdG5ONm1xNFE2Rk93bDhDQkFnUUlOQjBCQVFLVFdjdW5Ba0JBZ1FJdEhBQmdVTGhFeXhRS054T1RRSUVDQkFnVUNvQmdVS3BaTFZMZ0FBQkFnUWFDQWdVR29CaytDcFF5SUNsS0FFQ0JBZ1FLSk9BUUtGTTBMb2hRSUFBQVFJQ2hjS3ZBWUZDNFhacUVpQkFnQUNCVWdrSUZFb2xxMTBDQkFnUUlOQkFRS0RRQUNURFY0RkNCaXhGQ1JBZ1FJQkFtUVFFQ21XQzFnMEJBZ1FJRUJBb0ZINE5DQlFLdDFPVEFBRUNCQWlVU2tDZ1VDcFo3UklnUUlBQWdRWUNBb1VHSUJtK0NoUXlZQ2xLZ0FBQkFnVEtKQ0JRS0JPMGJnZ1FJRUNBZ0VDaDhHdEFvRkM0blpvRUNCQWdRS0JVQWdLRlVzbHFsd0FCQWdRSU5CQVFLRFFBeWZCVm9KQUJTMUVDQkFnUUlGQW1BWUZDbWFCMVE0QUFBUUlFQkFxRlh3TUNoY0x0MUNSQWdBQUJBcVVTRUNpVVNsYTdCQWdRSUVDZ2dZQkFvUUZJaHE4Q2hReFlpaElnUUlBQWdUSUpDQlRLQkswYkFnUUlFQ0FnVUNqOEdoQW9GRzZuSmdFQ0JBZ1FLSldBUUtGVXN0b2xRSUFBQVFJTkJBUUtEVUF5ZkJVb1pNQlNsQUFCQWdRSWxFbEFvRkFtYU4wUUlFQ0FBQUdCUXVIWGdFQ2hjRHMxQ1JBZ1FJQkFxUVFFQ3FXUzFTNEJBZ1FJRUdnZ2tHK2dNSDNHbkRqalI1ZlYxMTZ5ZEZrc1diS3MvbnNwUG93WU5qQXUrTlZKalRZOVllTFUrUDBWdDBkTlRVMmpaUXN0MEtaTm05aGtrdzJqcXJLcXZvbFRqajhvOXY3c3lQcnZhL3V3WU9IaStPMGx0OGJkOTA1YjIySDdDQkFnUUlBQWdTSUxDQlNLREtvNUFnUUlFQ0N3TG9GOEE0VlZxMWJGaWhYVjljMmszeWZmODNqOC9rOS9qMFdMbHRidkwrYUhmQU9GT1crK0U5OC81L0o0N1kyM2l0bDlmVnY5KzI0VzQ0NDVNRVp1UHpBcUtpcnE5MWRWVmF6eHZmN0FhaDhFQ3F0aCtFaUFBQUVDQk1vZ0lGQW9BN0l1Q0JBZ1FJQkFLcEJ2b0xBMnJlVXJWc2JOZjdrLy9ualZIU1c1T3lEZlFDRTl0L1J1aWZNdXZEa2VldVM1V0Z6RU95ZTZkTzRRSng1M1VPeTc5K2kxRVRTNlQ2RFFLSkVDQkFnUUlFQ2dxQUlDaGFKeWFvd0FBUUlFQ0t4YllIMENoYlRWOUFmOEwzN3o1MWl3WVBHNk95bnd5RFpEK3NYRjU1K2FkKzFGaTVmR3hOc2VqTC9mOGI4eDcrMzNJNzJMWW4yMzlPNkVINTd4N3pGbzRPWUZOU1ZRS0loTkpRSUVDQkFnVUxDQVFLRmdPaFVKRUNCQWdFQTJnZlVKRkZhdXJJNi8zL2xJWFB6SHY4Ynk1U3V6ZFp4SDZjNmRPc1JOVjU4ZGJkdCt2RzVCWTlYU3V4UFNrT1A2bS80Uk0yYk9YZTlRb1h1M3puSGFTVitPWFhmYXJyR3UxM3Bjb0xCV0Zqc0pFQ0JBZ0VESkJBUUtKYVBWTUFFQ0JBZ1FXRk9nMEVBaC9jZi85SWY3WlZkTmlwbXZ6VjJ6MFNKOVM5WkJqSi8rK05qWWRjZHRNcldZQmgydnZEbzdMcjM4Ny9Ia005TXoxVzFZdUxLeUlrWU5IeFRISHZuRkdEeW9UN0ptUW5KU0dUYUJRZ1lzUlFrUUlFQ0FRQkVFQkFwRlFOUUVBUUlFQ0JESVJ5RGZRR0htNjIvRnViKzhwcjdKZENIRzl6OWNtTnlac0NLNUM2QitkOUUvcEhjSXBJODlkTy9hS1ZQYjZUa3RYYlk4THJyc3Ryajlqb2RqZlU0eERSSGFiOUF1dW5idEdHMnJQcjViNHBna1pOaHQ1OXgzTGdnVU1rMmJ3Z1FJRUNCQVlMMEZCQXJyVGFnQkFnUUlFQ0NRbjBDK2djS0xMOCtLY2Q4K1A3OUdpMWdxdlV0aHhQWmJKWThkSEJwYjlPNFc2UjBEV2JabHkxYkVyWDk3TVA1OHk5VDQ0TU5GNi8wSXhPcDluM25hNFRGMjN6R3I3L3JFWjRIQ0owanNJRUNBQUFFQ0pSVVFLSlNVVitNRUNCQWdRT0JqZ2FZZUtLUm5tdDRoc00zUWZ2SDF3L2VKVVNNR1Jic01heXFrOVpjbGQxSGM5K0RUTVNFSkZWNmQrV2JSUWdXQlFxcHJJMENBQUFFQ1RVdEFvTkMwNXNQWkVDQkFnRUFMRm1nT2dVSWRmOTh0ZXNTWER0ZzFEaHk3MHhxUEh0UWR6L1czdXFZbW5ubjIxYmdoQ1JVZWVleUZYRVh6UGlaUXlKdEtRUUlFQ0JBZ1VEWUJnVUxacUhWRWdBQUJBcTFkb0RrRkN1bGNkZXk0Y2V5K3kzYnh6YVAyajg2ZE5zNDhmWFBtdmxQN0NNUmYvdlpRckZpNWZtK21FQ2hrNWxlQkFBRUNCQWlVWEVDZ1VISmlIUkFnUUlBQWdZOEVtbHVna0o1MXVvN0NzRzBIeE9rbkh4TDkrbXlXZVNyVFYwdE9udkpZWEhIdDVGaXdZSEhtK25VVkJBcDFFdjRTSUVDQUFJR21JeUJRYURwejRVd0lFQ0JBb0lVTE5NZEFvVzVLdGhyUU8wNDg5c0FZUG14Z1ZGVlYxdTNPNjI5MWRVMU1mZkNwdU96S1NmSFdXKzhXOUJZSWdVSmUxQW9SSUVDQUFJR3lDZ2dVeXNxdE13SUVDQkJvelFMTk9WQkk1NjFYejY3SllvMmZpNzMyR0JFYmJiaEJwcWxjbGJ4YjhyWkpEOGVsbC84dGxpeGRucWx1V2xpZ2tKbE1CUUlFQ0JBZ1VISUJnVUxKaVhWQWdBQUJBZ1ErRW1qdWdVSTZpazA2YkppOHZuSEhPT1NnM1dLekhsMHlUZTJpeFV2ajlMTXVpWmRlbVpXcFhscFlvSkNaVEFVQ0JBZ1FJRkJ5QVlGQ3lZbDFRSUFBQVFJRVBoSm9DWUZDT3BMS3lzclljWWNoY2VRUm40K3RoL1ROTkwyL3ZmVFdtSGpiZzVucXBJVUZDcG5KVkNCQWdBQUJBaVVYRUNpVW5GZ0hCQWdRSUVEZ0k0R1dFaWlrbzZtb3FJZ3QrL1dNYjM1amJJd1pQYVQyZXo3emZQblZkOFkxZjc0N242SnJsQkVvck1IaEN3RUNCQWdRYUJJQ0FvVW1NUTFPZ2dBQkFnUmFnMEJMQ2hUcTVxdHpwdzV4MG5FSHhwNjdENDkyN2RyVzdWN3IzM1FkaFhOK2NYWGM5K0RUYXoyZWE2ZEFJWmVPWXdRSUVDQkE0Tk1SRUNoOE91NTZKVUNBQUlGV0tOQVNBNFYwR3RNZzRZaEQ5NHdEdnJoVDlPamVlWjB6TzJQbTNQak9EeStOOTk1YnNNNHk2em9nVUZpWGpQMEVDQkFnUU9EVEV4QW9mSHIyZWlaQWdBQ0JWaWJRVWdPRnVtbjg3RzdieDJHSDdCbGJEKzd6aVVjZzVzeDlKNjY0NXM2WStzQlRzWEpsZFYyVnZQOEtGUEttVXBBQUFRSUVDSlJOUUtCUU5tb2RFU0JBZ0VCckYyanBnVUpsWlVVTUhOQTc5dGx6Vk95MHc5YlJvMGZuV0xod1NUejkzSXlZY3UrMGVPS3Bsd3Q2WldSNjNRZ1VXdnQvUGNaUGdBQUJBazFSUUtEUUZHZkZPUkVnUUlCQWl4Um82WUZDT21sdDJyU0o5dTNiUlllTjIwZmJ0bFZSWFYwVGk1Y3NpMFdMbGtaTlRVM0I4eXBRS0poT1JRSUVDQkFnVURJQmdVTEphRFZNZ0FBQkFnVFdGR2dOZ2NLYUl5N2VONEZDOFN5MVJJQUFBUUlFaWlVZ1VDaVdwSFlJRUNCQWdFQWpBZ0tGUm9CeUhCWW81TUJ4aUFBQkFnUUlmRW9DQW9WUENWNjNCQWdRSU5ENkJBUUtoYys1UUtGd096VUpFQ0JBZ0VDcEJBUUtwWkxWTGdFQ0JBZ1FhQ0FnVUdnQWt1R3JRQ0VEbHFJRUNCQWdRS0JNQWdLRk1rSHJoZ0FCQWdRSUNCUUt2d1lFQ29YYnFVbUFBQUVDQkVvbElGQW9sYXgyQ1JBZ1FJQkFBd0dCUWdPUURGOEZDaG13RkNWQWdBQUJBbVVTRUNpVUNWbzNCQWdRSUVBZ0RSUisvcE5qb3V1bUhYTml2UFRLckRqKzFQTnpsbWx0Qi8vejlNTmp2OCtQeVRuc0JRc1d4L2hMYm8wcFU2ZmxMT2NnQVFJRUNCQWdVQndCZ1VKeEhMVkNnQUFCQWdRYUZSaTgxUmJ4MDdPUGpoN2RPK2NzTzMzR25Eang5UEd4ZlBuS25PVmF5OEYyYmFzaXZVTmhuNzFHNVJ6eSt4OHNqUEVYVDR4N0gzZ3FaemtIQ1JBZ1FJQUFnZUlJQ0JTSzQ2Z1ZBZ1FJRUNEUXFNQ1cvWHZGT1djZEdmMzZicGF6N0t3NTgrT3NuMXdlczJiUHJ5M1hxZVBHOFlWOWRvaWVQYnJFYTIvTWk2bkpEK1lQUGx5VXM0M21kbkR6WHQzaTgzdVBqZzRidDQvbi92VmFQUFRJYzdGczJZcmFZWFR2MWltK2QrcGhzZU1PUTNNT2E5Nzg5K0w4aXliR3c0OCtuN09jZ3dRSUVDQkFnRUJ4QkFRS3hYSFVDZ0VDQkFnUWFGU2dkNit1dGYvU1BtTFl3SnhsMDM5cHYvRDNmNGw3cGo0UlhicHNFai80N3RkaTI2MzdSL3NOMnNiaXhjdGl3c1Q3NG9hYi94RXJWMWJuYktlNUhHemZ2bDFjOE11VFlzditQYU9xc2pJK1RCNWRtSGpiQTNITm42ZlVEbUg3N1FiRWQwLzVTcU5Cekl5WmI4WjV2N3M1bm4xK1puTVp1dk1rUUlBQUFRTE5Xa0NnMEt5bno4a1RJRUNBUUhNUzZOeTVRNXg0M0VIeGhlUmY0bk50cTFhdGlqdW5QQlpYWG5kWG5KSDh5L3pva1lPaVRaczI5VlZlbnpVdnhwMTZRU3hadXF4K1gzUCtzTk9ZYmVLWDV4ejdpU0g4NmRySmNlMkVLWEhvd2J2SHVLTVBpTXJLaWsrVVdYM0hrODlNai84ZWYyUE1udlAyNnJ0OUprQ0FBQUVDQkVva0lGQW9FYXhtQ1JBZ1FJQkFRNEdxcXNvNDR0Qzk0cGdqdnhBVkZibC9ITC85emdleEtMa2JZZlBlWFd2LzFYNzF0bDZaUGp0T09lTjNzWFRwOHRWM0YrMXp1bWprVjcrOFIreWJCQjlMazhjT3JybGhTdHh6MzdTU3Jla3djdmlnT08vbjQ2Sml0ZEFrSFV4TlRVMXRzREtnZis4WU9yaFB6dkdsSWN6ZDkwNkwvL250alNVN3o1d240Q0FCQWdRSUVHaUZBZ0tGVmpqcGhreUFBQUVDbjU3QWJqdHZGNmVkZEVoMDY5cXBvSk5ZdEhocDdhTUFOOTk2ZjZ5c0x2NGpEMjJUME9QZy9YZUo0NDRhRyttakNPazIvKzMzNDFmblQ0akhuM2lwb0hOdXJGTGF6ODkrZkhTTUdqNDR1Uk9qc2RKclA1NjZYSEgxblhGTDhxaUVqUUFCQWdRSUVDaVBnRUNoUE01NklVQ0FBQUVDdFFJOU45czB6dnoyWVRGcXhLRE1Jb3VUSDgxMzNQVllYSGZUUGZIdWV3c3kxOCtuUXNka0FjZ1RqamtneHU3NzhTc2EwenNocnAxd1QrM2pCL20wVVVpWi9uMTd4Z25ISGxDNzhPTHFqM2ZrMjlhY3VlL0VELzdmRlRIenRibjVWbEdPQUFFQ0JBZ1FXRThCZ2NKNkFxcE9nQUFCQWdTeUNLU1BPaHg1K09maWE0ZnRuU3l5K05FZEFQblVUMThoK2RHNkNwTkxGaWFrNTlFbFdlZmg1T01Qam4zMi9QZ1ZqV25mRXlaT2pjdXZ2aU9mVXkyb1RCb2lERWplZ25IODBmdkhtTkZETTkrcE1PbXVSK0s4QzIrTzZ1cWFndnBYaVFBQkFnUUlFTWd1SUZESWJxWUdBUUlFQ0JCWUw0SGVQYnZHLy94c1hLUnZmY2gzUzljSVNGOGplY2VVeCtQUngxK0kxMmZOVDlZSytPaTFpdm0ya1UrNXRRWUtLNUpBNFpiU0JRcFZiU3VqVjQ5TlkyUnkxOForeWVzeGh3enFtNnd4a2YrekR6V0p6VkhqZmgxdkpJdFYyZ2dRSUVDQUFJSHlDUWdVeW1ldEp3SUVDQkFnVUM5dzJDRjdKbzhXN04vbzRvejFGWHhZcTBDNmNPTjFOOTBibDE4MWFhM0g3U1JBZ0FBQkFnUktKeUJRS0oydGxna1FJRUNBd0RvRjBvVUl6L24rZjhST245bDZuV1VjYUZ6Z3lhZW54dy9QdlNKNUk4YlN4Z3NyUVlBQUFRSUVDQlJWUUtCUVZFNk5FU0JBZ0FDQi9BWDZiTjQ5ZnZDOWY0dXRoL1ROdjVLUzlRSXprZ1VZeDE4OE1aNThabnI5UGg4SUVDQkFnQUNCOGdrSUZNcG5yU2NDQkFnUUlMQ0dRUHFLeEpIREI4VzNUL2h5OU91NzJSckhmTWt0OE5iODkrS1BWOTBSVXg5NEtsWWthenpZQ0JBZ1FJQUFnZklMQ0JUS2I2NUhBZ1FJRUNCUUw1Qys5V0hISFliR0tlTytGSnRuV0tTeHZvRlcrT0dERHhmRkg2NmNGSGZlL2FpM09yVEMrVGRrQWdRSUVHZzZBZ0tGcGpNWHpvUUFBUUlFV3JIQTZPUU5CeWNjZTJBTTNMS1hoUnJYY1IzVTFLeUtkOTc5TUM2NjdLKzFkeWFzbzVqZEJBZ1FJRUNBUUprRUJBcGxndFlOQVFJRUNCQm9US0J2bng1eDVCSDcxRDRHMFczVGpvMFZiMVhIMy85Z1lUejk3SXk0NnZxN1l2cU1PYTFxN0FaTGdBQUJBZ1NhcW9CQW9hbk9qUE1pUUlBQWdWWXBzTUVHYldPM25iYUxQWGJkUGtadVB6QTZkdHk0VlRyVURYckowdVZKa0RBOTd2L25NL0hndzg5RytyaURqUUFCQWdRSUVHZ2FBZ0tGcGpFUHpvSUFBUUlFQ05RTFZGUzBpVTI3ZEl5dEJ2U096NHdlR2pzbGF5eHMzcnRiL2ZIVzhHRmVzdWppNDArOEhBOC8rbnk4TW4xMnpIdjdnMlM5aE9yV01IUmpKRUNBQUFFQ3pVWkFvTkJzcHNxSkVpQkFnRUJyRTJpVHZBYWlYZHVxYUpmY3RaQXUyRGhzMndFeG9IL1A2TmxqMCtqUW9YMVVWVlpGK3FhSTVyNnRUSUtDeFl1WFJmcm1oaGt6NThhekw4eU0xMmZOaTZWTGxzZXk1U3RpMWFwVnpYMkl6cDhBQVFJRUNMUklBWUZDaTV4V2d5SkFnQUFCQWdRSUVDQkFnQUFCQXFVVkVDaVUxbGZyQkFnUUlFQ0FBQUVDQkFnUUlFQ2dSUW9JRkZya3RCb1VBUUlFQ0JBZ1FJQUFBUUlFQ0JBb3JZQkFvYlMrV2lkQWdBQUJBZ1FJRUNCQWdBQUJBaTFTUUtEUUlxZlZvQWdRSUVDQUFBRUNCQWdRSUVDQVFHa0ZCQXFsOWRVNkFRSUVDQkFnUUlBQUFRSUVDQkJva1FJQ2hSWTVyUVpGZ0FBQkFnUUlFQ0JBZ0FBQkFnUktLeUJRS0sydjFna1FJRUNBQUFFQ0JBZ1FJRUNBUUlzVUVDaTB5R2sxS0FJRUNCQWdRSUFBQVFJRUNCQWdVRm9CZ1VKcGZiVk9nQUFCQWdRSUVDQkFnQUFCQWdSYXBJQkFvVVZPcTBFUklFQ0FBQUVDQkFnUUlFQ0FBSUhTQ2dnVVN1dXJkUUlFQ0JBZ1FJQUFBUUlFQ0JBZzBDSUZCQW90Y2xvTmlnQUJBZ1FJRUNCQWdBQUJBZ1FJbEZaQW9GQmFYNjBUSUVDQUFBRUNCQWdRSUVDQUFJRVdLU0JRYUpIVGFsQUVDQkFnUUlBQUFRSUVDQkFnUUtDMEFnS0YwdnBxblFBQkFnUUlFQ0JBZ0FBQkFnUUl0RWlCL3c4QUFQLy85bitUL1FBQVFBQkpSRUZVN1owSG5GWEYyZjhmdHNBV1dKYWxMQjJXamdVUUMySUVlMVNJTWZiWW9sR2pKbW8wbW1wOEU5L1hrcUxtbjVqWUZWdnN2WGVNUXJERmppSzlMaXhsS1F0YjJNWi81bTR1YkRuMzdzeTU1NXg3N3QzdmZENnc5ODU1WnM2Yzc4dzVkK1ozbnBucFZITGdSVHVFQUFFSVFBQUNFSUFBQkNBQUFRaEFBQUlRZ0FBRUxBaDBRbEN3b0lVcEJDQUFBUWhBQUFJUWdBQUVJQUFCQ0VBQUFoRUNDQW8wQkFoQUFBSVFnQUFFSUFBQkNFQUFBaENBQUFTc0NTQW9XQ01qQVFRZ0FBRUlRQUFDRUlBQUJDQUFBUWhBQUFJSUNyUUJDRUFBQWhDQUFBUWdBQUVJUUFBQ0VJQUFCS3dKSUNoWUl5TUJCQ0FBQVFoQUFBSVFnQUFFSUFBQkNFQUFBZ2dLdEFFSVFBQUNFSUFBQkNBQUFRaEFBQUlRZ0FBRXJBa2dLRmdqSXdFRUlBQUJDRUFBQWhDQUFBUWdBQUVJUUFBQ0NBcTBBUWhBQUFJUWdBQUVJQUFCQ0VBQUFoQ0FBQVNzQ1NBb1dDTWpBUVFnQUFFSVFBQUNFSUFBQkNBQUFRaEFBQUlJQ3JRQkNFQUFBaENBQUFRZ0FBRUlRQUFDRUlBQUJLd0pJQ2hZSXlNQkJDQUFBUWhBQUFJUWdBQUVJQUFCQ0VBQUFnZ0t0QUVJUUFBQ0VJQUFCQ0FBQVFoQUFBSVFnQUFFckFrZ0tGZ2pJd0VFSUFBQkNFQUFBaENBQUFRZ0FBRUlRQUFDQ0FxMEFRaEFBQUlRZ0FBRUlBQUJDRUFBQWhDQUFBU3NDU0FvV0NNakFRUWdBQUVJUUFBQ0VJQUFCQ0FBQVFoQUFBSUlDclFCQ0VBQUFoQ0FBQVFnQUFFSVFBQUNFSUFBQkt3SklDaFlJeU1CQkNBQUFRaEFBQUlRZ0FBRUlBQUJDRUFBQWdnS3RBRUlRQUFDRUlBQUJDQUFBUWhBQUFJUWdBQUVyQWtnS0Znakl3RUVJQUFCQ0VBQUFoQ0FBQVFnQUFFSVFBQUNDQXEwQVFoQUFBSVFnQUFFSUFBQkNFQUFBaENBQUFTc0NTQW9XQ01qQVFRZ0FBRUlRQUFDRUlBQUJDQUFBUWhBQUFJSUNyUUJDRUFBQWhDQUFBUWdBQUVJUUFBQ0VJQUFCS3dKSUNoWUl5TkJSeVNRM2FOQXNndTdTVjdKZ01qbForWjBrUzc5ZXUxRVViVzBOUEs1YmxPRjFHM2VLdEh2T3cxOC9KQ2p5cEZkV0xDelBEbjlla3RHVHVlbThxaXk2RExwc0gzTkJsVzJDcWxSZndrUVNHY0MrajdWOTZ1K2IzV0kzcmY2czc0UEdtcTJTNlA2cCs4RmZiOUc3eEY5M004UTV1ZUluOWNkVk42WnVUbVNOMnlBNUE0c2x1eWk3cEtWbit0NDZvYXFHcWt0M3l6VnBldWthdkVxYWFpdWNiUWowcGxBVnRlOHlEMlZvemgzN2xrb21mLzl2V2x1M1ZqZklMWHJOeXJPVzlUZlRWSzlza3dhYSt1YW0vQVpBaER3aUVCR2RwYmtEVlhQdmtGOXBYT3ZRc25xbHUrWXM3NEg5Yk92WnMxNnFWeTBVdXEzVmpyYUVRa0JXd0lwTHloa0ZlUkhmdEJzTDl4TGUvMWpXYit0eWpyTGdxNjVrcG1aS1p1MmJMTk82MmNDM1VHd0Rmb0JsVzZoMjloaDBuVzNZWkdPVTJjMVlMY04rb0c5ZGQ0UzJhYitlVG1JMTJKRzk0bGpWTGtHUnNxbXY5c0VQWmpTZ2tmVjBsV3k1Wk52SW9Ncm0vUWQwVlozb1BWZ3NGTldwcWVYcisrYitncCswQk9GcWtXMTdudU5iUnJrS0VITk50UXFvVTNmRTl1K1hoSzVaMjNUeDdQdnZwZTZWNGMxM2F1SlBFZTJmUHBOWU1KSHZPc0owN0dNenRuU1ZUMm44MGNNa3J6QnFpUGRzNGVyNHRXV2I1S3FGV1dSRHZhMnJ4ZExZMTI5cTN6U05aRVdhcnFwMzhMOGtZTWpBNWJzN3QxY1hXclZNdjI3VXhyaFhMVjh0YXM4d3BZbzN1RE5xYXoxcXI5WHUzR0wweUZmNC9Sdmx4NXNtb1lkalkxU3ZYeU5xWGxnZHZSUGQ2SHVPbXFvZEIwMVJIS0g5QlA5SXNsTnFLdllGcW5ueWlXclpPdmNSWWlyaGhEOTZ4TnVVWDNDY0kwSkRaRkl5Z3NLUFNhUGs3N1REeks5WGwvc1ZqLzlwaHFZelRQTys2d1RENVpMZjNpMEZDb3hSSWVLYmRWeTJ6OWZseG1QelpRNnBlb25PK1QwN3kwbFAvbStjVEYycURKL2MvV3R4dlpoTnRTRFJqMEFLRHBnZ25ycllqZFFqM2RkV2x6WU9PY3owWU1DdDBHL1plMCtjYXdVcW9HVGwwR0xIcnBzUVhwVmVGbCtQL0xLSFZTc09sLzlsT0xmWDNMVnY2dzg1emVkaVo2NzdLVjNaZE43bnllYVRZZE5yKy9WWG9kTkVqY0Q5VmpRdExpZ24rZUpET0QxYzZSbzh2akkvUnEyNTBpczYwNmxlTTIzdDZyMzdoUEcrRkxzelovT2t3MXZ2aTkxSVJQN2ZibllPSmxxb2E3WFlmdEx0ekVsY2F6Y0hhcFZubk9iLy9PVmJQcmdDK1V0Vk9zdWt4Q2s2dmU5UTZWd245Mk5TNkovYTllK1BNdlkzaXREZmMrTXVPSXM0K3kwMTg2QzYrNHl0Zy9LVUxmSmtvdE9OVDdkamdiVlAvMTlldlJQOVVWMzd0VWowai90UG42VVpIUnA4a1ExaG1GZ1dMbG9oYm9udi9SY1dEYzRkYWhOY2dmMmxWd2xXdXMrb2Y2WDZWT2ZjSzNxRTI1TTBUNGhnb0lIVGRoVVVKaTRSNG5jK05zZnlOQ0J6a3BpK2FhdDhxcy9QaVF6NTh6MW9GVHVzK2lJZ29MdTlQYzZkTC9JZzlvOXVmWlQ2c0hLbXFmZXRCcTg2NDVBOGJRcG9qMG0vQXlWeW1OaHpkTnZkZGkzb0YxVnA3bjdoTkhTZGZSUXljak85aFAxenJ6TFhucEhDUXBmN1B6T0J6TUMrbTFwSDNWUGVDa2t0RDZ6OXVUUm5mOE5NejlzZlNqbWQvMGM2WEhBZU04RnlkWW4xTStSZFdwUXNsVjVWSFNra0ptWDAvU2Mzbjk4SUplOWNjNm5zdUh0ajlSYnUrMkJuQzhzSjRrSU5vY3J3V2E4UDRKTjgrdHNySzJWOHRtS3M4Vjkxang5c2o4aktBUmJBeDFWVU1ncTZDcDl2M3V3TCtLZVV3M3FxVXBsejc4dGxZdFhPaDN1RUhHUlB1SDQvL1lKbFRkY0VHSHRpMHBRZUQ4MVh6SWhLSGpRUWt3RmhkY2Z2RXBHREkzdmNxWkZoY25IWHlYMVNmUlU2R2lDZ243ejMrK0V3MzBkbkxSdVpucndYdnJReSsxT055aFNnNVBpYVZOYkovZnR1eDVFYlpqNWdScElwZVlEelEwWUxTRDBQbUt5NVBUZHRTYUdtM3pjcE1GRHdZNmFIdWowTy80d3lWZlRmWUlLZXZCZSt0Qkw3VTViMGgzZEFhZFBEL1E1b3IyTHRFQ3A3OXQwRDcwTzJWZDZUcGtvR1oyOWZ5c1hqMTNrbWZpdmoyU2pHdlNtZTlDQ1dPOGo5cGNlazhZRmZxbmFZMkhOTTI5SmxYSzlUcVdBb0JCc2JYVkVRYUZJQ2FpOWp6eEF2ZWpJQ2hhMk9wdjIxQ3Q3OFIxcDNKNjZYa1MyMEhTZnNJL3FFM1pKUXA4UUR3WGIydkxRUGxXbVBKeHc5Q1M1NGNvemphNzhqN2M5SzNjKy9LYVJyUjlHSFVsUUNIckEzcnkrNGcxVWRNZXV6L1Fwbms5dmFINytlSisxeSsrNmwyYWw5VUFsWjBBZktWYU04d2IzajRmQzEyTUlDdVo0ZFVkeThMbkhlem9WeWZ6c0l2R0VZejBWcWYveGg5dGs1NWx0dk9lSVp5ZEpZa1o2bmFSQlp4N2plbzZ3VjBYWGMvNVhQYXhFNE1wcXI3SU1WVDVkaW52S29COGNJMjdYUi9EaVluYklEaWwvNTJOWnI2YWJ5STRkWG1UcGV4NElDcjRqYm5HQ2ppUW82RFZpK3A5OFpHQmVDUzFBTi91aTEveFkrY0FMVXJ0aFU3UFk5UHVvKzRSOTFRczh2U1pGc2dLQ1FyTElxL09taXFCdzc0MC9rWU1tN1daRWFuTkZsVXljL2tzald6K01Pb3Fnb0wwU3ZGNlB3TFkrOU51dkZmYzgzZUx0cHhZVEJwOTdYTkk3MEhyZGh4WDNQSk9Xb2tJWTZsNjNGYVk4bU4weGVzQ3VwLzNvZXlPWlFRdHQyaU9nZVFoRFczSjZqalF2WTZwKzFyczFERHI3dTZyZWMwSnhDZlhiS21YRnZjL0o5clhsb1NpUFY0WFFVNGdHbmpiZHErd1N6a2U3V2E5U1hrR3BzQ3NFZ2tMQzFXMlZRVWNSRlBRdU5ZUFBPbFl0Tk52ZGlvOWZ4bnFoMnRKSFg1RnQ4NWY1ZFlxazVxdGZDT2grUnJJRFV4NlNXQU9wSWlqTWUrdXYwcVd6dWJ2U1hrcFEyS0tFaFdTRWppQW9oR0VRRUszYjFvT0Jrb3UrbjNReElWcTJkQk1WOUZhQ0E4LzhqdVFVQnorOUljcTArVjg4RkpyVGNQNXMyNEYwenNXN1dMMmdtbDViUVFlOWVLc1dPc0lRV2o5SHdsQ21STXJRcFUrUkREbi94S1NMU0sydm9iNnlTcGJkOFlUVWJXemFqcmYxOFZUN25qOWljTVF6b1ZOR1JxaUtYcjE2bmF5YzhXem9CVzBFaFdDYmplM3ZRU291eXFoM3N0RFB2bGpiM2daTGZOZlo5TTRmcXg5L1RTclViaERwRW5TZlVIdkFhUSt0TUFROEZKSllDNmtpS014OS9TYkp5elYvdTdibnQ2K1F5aVF0QkpYdWdrSXkzWk5qM1NwNk1MRDBsa2NqQzQ0bDIydWlkUm1kM3NxMnRrbUY3OWxGQlRMMGdwUFVqM1JlYUlxTG9CQy9LblRuTVpuVEhHS1ZUazkvMENGWjB4eGlsU3Y2SEtsVDg5RlRPWVR4WG0zT3MwNnRxN0hzOWlkY2JSZmRQSjlrZjliYkNHcHZ1SXdzODVjZFFaWlpUek5aZnRkVFFaN1MrbHdJQ3RiSUVrcVE3b0tDM29aVTkxUDBWcTFoRGFXUHZDSVZYNlcrcUtDOVFKcjZoUDdzNHVXbS9oQVUzRkR6S0UycUNBcTNYZmNqT1hLcTJjclVIODlkSWlmOStDOGVFYkxQSnAwRkJkc2ZJM3Q2N2xQb3dVQ3lYYnBqbGI3NVc5bFlObUdPMS9PdzlROUhNdWNITy9GQlVIQ2kwaFFYbHFrL3NVc1l6aU42d1ZjOVZTbFZnMTU0YktqeTB1cWl0a2NMYzZoYXVVWlczUFcwNkxkMnFSZ3k4M05sK0dWbmhIcmdvcm5xblRiV3Zqdzd0SWdSRklLdEd0cytYQ3A1S0dndkllMmhHcGEzNWJGcVZrOUZXbkx6UTFLM2VXc3NrOURIWjNWVGZjSUxUMVo5d3E2aEtpdUNRaEtySTFVRWhhTU9taUMzWG51ZUVhbmYzZlNZL1BQWjRQY3BqaFl1WFFVRlBVQVpldkgzQTEyRlBjbzAxZittc2p0MVpJRHlrMU9rUysraTBGVURheWpFcmhLOVlHYlI1QW14RFRnU2swQXFDNEFEVDVzbTNYWWJIdlBhd25TZy9OK2Z5cnBYd2p2WWpjZEtDNnphUXlFVndzb0hucGR0QzVhSHNxZ0lDc0ZXU3pvTENucG5nWjRIN1JNc1VKZG5xMTZ4UnBiZDlhUmFQTlZsQmtsTUZ1WStJV3NvSkxGaHBJcWdvQkU5ZnN2UFpKOXg4VHRLaTVlWHlSRm5YSnRFb2lMcEtpajBPblNTOUQ1MHY2U3lUZVdUcCtxYnp6QVBVUEJRY0w0ajlGYXVROVNPRGdUM0JCYmRkTCtrMnRTSGd2R2paTUJKUjdxLzZDU2tYRDdqbVpUYjZyRDNZWk9rMXlHcDgxdFl0MldyTFA3clAyV0hXaGd1YkFGQklkZ2FTVmRCSWFkL0h5bFJMejVTS2FUcTREZk1mVUk4RkpKNEI2U1NvRkF5cUkvODZkZW54eFFWdmxtOFduNzlwNGZraTNuSlZlTFRVVkRRM2duRGYzNVdRbE1LOUo3dlZVdEwxWTRNNnlPdVhzMDc2L3BITGtPZEk2OWtvSHE3Tmt4eUF0eS9Wcy9ualphdFFhMjdzWDNOaHAwTFdlbnI3cUxLbHQyalFKVnRnT1NyZjltRkJhN3YyT1ZxUndyTklGVkNqOG5qcGUvMHFhRXRMaDRLemxXajUzWG5xM3ZKYmFncDJ5QmJ2OWIzNnlwcFZGT0phdFE5RVEzNlh0QUxNZVgwNngyNUo3cU5IUlk5Rk1qZjZMM3E5QnpSOTZnT1hqeEhVbTN0azA1cXFzUHd5MzhnMmNvVjFXMW9xSzJWbXRKMWtYL1ZLOHVrWnJWNlZyZGFUeUpTOTJwN01MMkRSSTcrcHpyeW1WMDZ1ejJsNkxhMjlCK1B1RTRmZE1JczVlSTcvR2RuSnJSdVFuMVZ0V0w3WDg0cnlxUjYxZG8yMjJsMlZ2T1RzOVhpY25rbC9TVi8yS0FJNzBTdXRYejJKN0x1MVg4bmtvVXZhUkVVZk1FYU05TjBGUlNHL09nRXlSdmlmZ3ZySGZVTmtiNXBkZW5heUhPdlJ0MlQyOWR0Yk1FeE15OG40cFVVZWZZTktKWmM5UnpVVTUvY2hvYnFHbGw4MHdNNys1dHU4d2t5WFpIcUV4YUh1RStZcWlLTnJzTk9KUWRlbElJT0s3dWFYeW9KQ3RGU0g2bW1QeHg3K0Q1eTRMNWpKRE16UTk3N1pJRzg4TmJIOHR6ckgwVk5rdm8zSFFXRlJMd1Qxcy84VURhcFZkMjEyNzlwMElPVy9tcGJ5cnloVFFNRTAzUTJkbHBJMEdYYjhzazhtMlNSclhHMHA0WWJZU0dWdkJUMEQrVUlKU0psWkdkYjhRblNHQStGdHJRVDhVNm9XbFlxcTlXMmpxMEhrVzNQc2l0R2kyNDkxRzROZm5vdk5XemZMaHYvL2JuMWMwU3owRytUM1Q1SFVzbExvWmQ2SnZWV1htUnVRa05OamF4LzQzM1o5TUdYYnBKTDRiNTdTSjhqSjd2ZW5uTE5NMi9KNW8rL2RuWHVvQlBwZmUyN2p4dmw2clIxRmRzaVV6d3F2bHhvblY0TE9ZVjc3eVpGVXlhNkZqTVczWGhmNk9adEl5aFlONFdFRXFTam9OQnQ5K0V5OE5ScHJybHMrTmRIb3Y5cFVjRTJhRUZkRDdEMS9la202QjJQOUJTN1ZBaE5mY0t6Vlo4d0s3VEZ4VU1odEZYanJtQzI3akI2eFcvYlFaMjdrZ1dUS3QwRUJUMWdHSFhWK2RidzlDQmd4ZDFQdDNpN2FadUpYOXZLNmJlUDYxNmFaU1Z5TkMrN1pxSzN6blR6ZGpaVnZCUzgyQnEwY3ZFSzJmck5Vclh2L01iSWovVjI1WjJpOTJNbStFZGc0T25UWGJYTFJOY04wQjNWd2VjZHI5NVdtKy9HWTBKQnY4RmU4OVFiU1htT3BJcVhRb2J5RUJqNTYzTmNpWDlidjE0c2E1NTlXeHJVVy9ORVFtWmVydlQ3M2lHdTFtK28yMW9waS80MEk1SFRCNUpXYjhVNTdLZW51enJYeHZjK2svV3Z2NWZ3ODA5N1NQVDk3c0hTYlhTSmRUazJmVFJYeXA1NzJ6cWRud2tRRlB5azJ6YnZkQlFVdE1lUTNpclNObWpQb05WUHZDNjE1WnR0azdhdzc1U1ZLWHI5aHFKdjdkVWkzdlRMd2ovZWt4STczdWhkbWZRdWI0bUV5a1VyWk5zM3k1VDNSN2swS2dHSFB1RXVtaW52b2JEclVyejdoS0RRVzgzbCtyNHhVSzJLZm5QMXJjYjJRUnU2MlNaU2l3bUxiN2pmOVlDOStUVzZPWC96OUswL2V6bEljRFBvOXZMOHJhL05xKysyblk3VzU5V0xyV212bExvdDIxb2Y0cnVQQk55S2YxNkp1dnI4dzMraHBrWjVKQ3BvTVVHTGtqYmVUYkh3dW5tTzZQTXV1UGJPV0ZtR0pyNXczOTJsMzdHSFdwZkhqMFVSZTM5N3N2U2Fhcjh3Mm9yN241ZktoY21kcnRnZXdENUhIeWc5WFF3YTFqdzNVelovOUZWNzJWc2RIM0RxMFZLdyt3aXJOTnA0NFo5blNIMUZwWFU2dnhJZ0tQaEYxamxmMjkvMnNPL3lrRDlzb0F3KzV6am5pNDBUcTRYVTBzZGZjK1dWRUN0Yk43OHhPcS8xYjc0ZjhaQ0lsVzhZNHZVVVI3MkRodHV3Y2Zhbm9rVlYrb1N4Q1NJb09MQkJVRWd2UVVFL1JQVER4Q1lzdmVXUmhONG90ajVYSWxNdW11Zmw5WHhkUFlEU2IyVnQxbnpRZzVURk4zb2p0alMvTmk4Lzl6dnVzSWg3clcyZXRXcSs5U3Exb3ZqMjladHNrMkx2QVFFM0hqMTYycytHbVI5NGNQYW1MR3c3ckxGTzdJV0hVK3U4M2V4OHNlcmhseUxyU2JUT0swemZoMXh3b3VRTjZtZFZwUFZ2cVU3czIvNU1FK3gxOEw3UysvRDlyY3FqcHdHVVB2YXFWWnFnalVmKzVqekpzcHd6WGZxbzJuTityajk3emcvKzRiR1NQM3l3RllhMXI4NFczYmtQUzBCUUNMWW1iSi9QWVJjVUJueGZDV3Q3MkFscmZqNXI5QTQ3ZWd4a0UvUWdlOUVOOTlva0NkeldiWjlRVDU5YytjQUxxay9ZY2oyS3dDOGdCVTZJb09CUVNRZ0s2U01vNkxVTVJseHhsa010eDQ3U0t1UmFOWjNBNjZEbjg3dFp0NkI1T2J3V09uVGVidWFzZS9WR3VQbTFlZlU1bzNPMmpQek51ZGJ1MDlwOWNLVjZ5NmdYR2lJa2g0Q3QrS2ZYRVZta3hDMnZnNXVCZStzeWVDMTA2UHkxQUZpaXRyNjFlWTdvUlNCWFBmUlM2K0tGNW52blhvVXkvTEl6cmNxakZ4NWJkdnZqL20xWjFrbGt5SGwyaTZUdGFHeVFoZGZmNDRrM2loVU1RMk05dlUxUEo3SUptei81V3RZOC9aWk5FaXRidlVpY1hvaFR0MnZUb0JjelhYckxvNmJtdnRzaEtQaU91TVVKMGtsUTBOT3NSbDE1WG92cmErOUx2VnJIWlBIZkhwTEc3Ylh0bWJvKzN2ZllRNlNIV2xmR0pxeTQvem5sb2JYQ0prbGd0cEUrNGE5Vm4xRDFEVzBDZlVJYldtbXdLS1BkNVpwWkl5aWtqNkRnNW8ybmRoSDJ3a1c1ZFd0ejYwNFd6Y2ZQcVFaRGxKZUN6Y0p2ZnBZbGVyMXUvN3JodkgzREpsbDI2MlBTV0Z2bjlyU2tTNUNBSGxUWXJuWGlsN0RscGl6TkwxOTdKeXk0eHArcEJtN2E5N3lyL3Q2OGVLSDYzT3ZnZlpRM3dHU3JNdWtCcFI1WStobmNyRGRRK3NSclV2SDVBaitMNVRydi9pY2VJZDBuakRGTzMxaFhwOTQ2S2srMEJOZW1hTytFZXFGRy9mYlFKdWd0Skd2Vk16c01BVUVoMkZwSUowR2grMTVqMU9MZFIxZ0IxR3NtYlBsOHZsVWFXMlA5K3pmaWx6KzBHb0J2ZXY4TEtYdnhIZHRUQldMdjVqZXpWbm1wTHIyTlBxRk5CZUdoNEVBTFFTRjlCQVhiTlFMOEhpaVArcC96WGMvUDlzTTdJZHI4OVZhWEEwOHpmM3RWcTk0TTYya1BZUXh1dGh6VWJ6dTFHazFJSGdIYk51aVhkMEtVZ08yekk1cE8vL1hETzZGNS9yYlBFVCtmSGMzTDVlYXo3ZjBhcE1mRndETytJOTNHbEJoZmx0OXY5STBMNG1BNDhsZm5TSmJGbHB6bHN6NldkYS9OY2NqSis2aGhQejFOdXZUcGFaengybGZVdEFlMXprMFlBb0pDc0xXUVRvS0NyUnUrRnRHMG1CWkUwSXMwOWp6SWZDMlo3V3E5b0NVaDNUNTNpRnFqSWsrdFZXRVQ2QlBhMEdxeVJWQndZSWFna0Q2Q3duQTF6YUJ6WVlGRExUdEgrVDNmMk8wZ3hlL0JrNlpoTzBnSjQ1WjAycVZOWDBlblRobk9GZXdRV3pGWHpYMStOTnh6bngyS25YWlJ0dE1NL0JiL2JBV081aFhpOXdEZTlqbVM2QTRZemEvTnk4OXU3dGZsTTU2UnFpV3J2Q3hHekx6eWh3K1N3VC84WHN6anJRL1VWMWJKd2ovYzB6bzY2ZCs3RlBlVVlaZWNabHlPSFR0MlJIYXRxTjlXWlp3bUVVTmJUOEp0aTViTHl2dWVUK1NVbnFWRlVQQU1wVkZHNlNRbzJLNXBvajBBdENkQUVDR3JhNTVvRVZKMXBveFB0K0M2dTBJM1pWVC94b3krNmdLUkRQUHI4SE9OQ21PWUtXaUlvT0JRYVFnSzZTRW91Rmsvd1cvWFlMZURGTC9XZFdqZS9HMEhLWDY1bXpjdmsrM25ycU9IeXFBemo3Rkt0dVRtaDlRV1FDeTRZd1hOQjJQYjlSUDhGdi8wSlk2OTloTHJLdzFDL0xOOWpnVDVWdDhHV05kUjZuNzlnZm45R2dUYjF1VWY4WXV6SmJ1NytSN3RpLy9mZ3dsdjQ5YTZESWwrTC9yV0JDaytlb3B4TnRzV3FBRzdXcHcycUtEM2h4K2xGb3cwRFkzMTlUTC82dHRNelgyMVExRHdGVytiek5ORlVIRFRQNTEvelIyK3JwM1FHclorTnV0bnRHbFk5ZkRMYWdIZ3hhYm1nZGpSSnd3RWMrUWtDQW9PckJFVTBrTlFzRjFzc0dwWnFTeFhXN3o1R2R6T3pRNWk4R1Q3bHNodnQyNDM5VkE4ZmFvVVRSNXZuRFNJT2pjdVRBYzN0QjI4KzdYV1NmTnFzRjFiUktmMTIzTkNuOFAyT1JMV0tVcTlEdDFQZWg4NlNWK1NVZGowbjYrazdObVpSclplR2ZVN1h1MFlNM0UzNCt4SzFSem5DcC9uT0JzWDVyK0cvVS8rdG5RZk45bzRXVEttRkJUdXM3dGtGWFExTHVQbWorWksvZGJrYngrSm9HQmNaWjRZcG91Z29IZDIwRHM4bUlicUZXdGsyWjFQbXBwN1lsZDA0RjVTZk5TQnhubVZ2NnVtU2IwZXpEUXAwMEpaOXdtWHFuSEFQZjZPQTB6TG5tcDJDQW9PTllhZ2tCNkNndTFXalVFTmtOM3M5aERFOUlJd0NqQU90MmZjcUpLTFQ3WGFBblBOTTIvSjVvKy9qcHNuQi8wbllQdTJKcWczMWJiVE1EU3BvS1lYMkQ1SC9QYStjdE5LK3Ara0Znb2NiNzVRNE9vbjFZSmtuL203SUZucjY3QmROSEQ5V3grbzdTdy9iSjFOVXI4UC9mSEpranVnMkxnTVM5V2FNaldzS1dQRUMwSEJDSk5uUnVraUtOaHVUVnYrem45azNSdnZlY2JSSktQY2dYMWw2SVVubVpoR2JDcStXaVNsajd4aWJCK0U0VERWSit6U3Q1ZnhxZWdUR3FOcVk0aWcwQWFKUlBaZzFYdXhtb1l3dW42Ymx0M0pMcWQvZWdnS3RvT0JvQVlDYnQ1NkJqVVlzSGxMSE1hMysyT3V1Y2hxL1lURmYzbEFhamR1Y2JvTmlBdVFRRmpGTEZ1dkhZMU12OTJvVW04NS9BNjJ6NUVnUkVuYmF4NTZvUnJvRHJRWTZLcFZ0MnRLMTltZUppSDczQ0g5Wk9pUFRqVE9ZOHZuMzhqcUo5NHd0Zy9DY1BUdkxsQXJ0bmMyUHRVMy8zdWI3S2lyTjdidnlJWUlDc0hXZnJvSUN2MVBWRjVERTh5OWhsWS85YVpzK1hSZW9MQnRQZUcycnkyWEpYOS9PTkF5dG5leXNmOTNzZFg2Q2ZRSjJ5TWEremlDZ2dNYlBCVFNRMUN3N1hBSE5SQ3dYYXNncUxleCtsYXdFUlMwZlZCQ2h6NVhleUc3c0p1TStQblo3Wm50UEY1ZldhMFdVTHQ3NTNjK0pJK0E3YlpPUVV3cjBEUnNoUTZkSnF6UGthREtwUm1ZQnR1QjdvTHI3L1o5RzhQV1pjOHF5SmVSdjFTTGt4bUc2cFZsc3V5T0p3eXQvVGV6WForZ29icEc5T0pxQkRNQ0NBcG1uTHl5U2hkQndkWnJLRm5QN3pHLy83RjB5czR5cXI0ZDlRM3l6ZFczR3RrR1lXVGJKMnhRZmNJRjlBbGRWdzJDZ2dNNkJBVUVCWWRtNFZtVTdWU01JRDBCYktjTWhFbFF5QitoVm1RLzIzeEY5cXJscTJYNVhVOTVWcTlrNUo2QTdUMFIxUFFrTjRKQ1VQZUVMYk9nUExCTVcwRm1ibzZNK3UyUFRNMGpka0d4YlYwb0c2RTFiRUpsN2lEbHRueUJ1ZHR5amRyK2JXbEl0MzlyWFM5aCtJNmdFR3d0cEl1Z29KOTkraGxvR2hZcGI4cTZKSGhUNnQxaDlDNHhwbUhobisrVitvcHRwdWErMmxuM0NaZXBQdUhkOUFuZFZncUNnZ001QklYMEVCUnNPb0c2R1FTbEFOc09CSUlVRkd5OU92emVIcy9oOW93WjFXUFNudEwzbUlOakhtOTlJTXg3eHJjdWE3cC90NzBuRUJSRXdzck10SzFtRnhYSWlNdlBNaldYaHUzYlpjRTFkeHJiZTJsb3U3MWJzb1FQcDJ2T0h6bEVCcC8xWGFkRGpuSFZwV3RsMlcyUE94NGpzaTBCQklXMlRQeU1TUmRCWWN6VlA1Rk9XWm5HcUpJMVVCOXk3dkVSVHozVGdtb3hVb3VTWVFqMmZjSjVzdWJwTjhOUTlKUXNBNEtDUTdVaEtIUk1RU0dJVmVOMWM3TWRDSVJaVUFoS2hIRzRUZHRFOVQ1aXN2UTZhSjgyOGJFaXltZC9JdXRlL1hlc3c4UUhTTUIydlpPZ0JBWGJPYVFhV1ZDRFNkdm5TRkRNVEp0TjU5NDlaUGlsWjVpYVIvWTNUNVlyL3JETHpwQXV2WG9ZbDNYK3RXcDd0NXBhWTNzL0RidU5IU1lEVDU5dWZJcnFWV3JLeHUzaG1iSmhYUEFrR1NJb0JBcytYUVFGMnhkZUMvOTRqOVJ2cXdvV3RqcWI3WGhJditHdlVtLzZ3eENzKzRTelZKL3dOZnFFYnVzT1FjR0JuTzBOeEtLTTRabzNGYTFTMndkMldBY0NDQXJSR28zL3QzamFnVkowd0Y3eGpab2QzZkR1ZjJUOTY4R3VtdHpzOUh4c1JzRFdNeWJJd1hHNlBFZUNaTmFzYW1OKzFDdHY2eFc0VFVNeXB4TG9LUU42Nm9CcFdIVGpmVkszZWF1cHVhOTJ0dHZUVmExY0k4dnZDSFo3T2w4QitKdzVnb0xQZ0Z0bDMxRUZCVDIzWDgveER6cjBPMDV0bTd1MytiYTVLeDk4UWJiTlh4WjBNUjNQVnp4dGl1b1RUbkE4NWhRWnhtMHZuY29aMWpnRUJZZWFRVkRvbUI0S0NBb2l0Z083TUhrbzlEM21JT2t4YVp6REhlMGN0ZUZmSDhuNk45OTNQa2hzb0FSczIxMlFnMk1FQlgrYVFvN2EzYUZFN2ZKZ0dwSzVXT0NRODArVXZNSDlUSXNxUzVUYjcvYVF1UDNxbGVUMWl2S21BVUhCbEZTVEhZS0NIYTlFcmROQlVNam9uQzJqZjNlaEZZcGtlU2pZdHU5a2JPMGJDNlNlQXF1blBaZ0crb1NtcEp6dEVCUWN1Q0FvSUNnNE5BdlBvbXhkbGZGUU1FTnYrOFBIajRjWjF5Q3NFQlRzS2RzK1I0TGFHY1AwU3ZLRzlKY2hQenJCMUR5cFV4NXNCWVV3dWYzcXQ0djZMYU5wUUZBd0pkVmtaL3U3czNIT1o2SVhTQTA2WlBkUWE1WmNZYkZtU1VoMyswZ0hRY0hOZ3JTcElpaVV2ZmlPYkhyL2k2Q2J0K1A1Yk85TitvU09HSTBqRVJRY1VDRW9JQ2c0TkF2UG9td0hBZ2dLWnVqN24zaUUydGQ1akpteHN1TEh3eGlWNzRZSUN2YUl3L3djTWJtYXZLRktVRGd2VlFTRkU1U0hRbitUeTRyWXJMai9lYWxjdU56WTNrL0R3bjEyRjkyeE5nMVZLOVNVaHp1WjhtREt5M2JRZ3FCZ1N0YlpMaTBFaFR5MXc4MlZkanZjcElxZ29OY2dLRmRyRVlRaDBDY010aFlRRkJ4NEl5Z2dLRGcwQzgraXdqd1FzQjNZaFduS3c0QlRqcFNDUFVjWjE5T0d0eitVOVc5OVlHenZaTGovWGlObHhOQys4dlhDVmZMSjNLVk9Kc1FaRUxCdGQweDVDUGZpcmdaVkhsazVYSzhnYmhyY1RIa29MTWlYN3h3MlVTWlBIQzBablRySis1OHRsSmRuZmlMck4xYVlualppWit1aHNQSUJOWTk0d1RLcmMvaGxiQzBvc0lhQ1ZWVUVKU2pzTVhxdzdEbDZrS3dxMnloelBwNHZEUTJOVnVYRVE4RUtsNi9HbVFnS3Z2S05aajdnWk5VbkhCZDBuM0NVNmhNV2Q4ZytJWUpDdE9VMSs0dWdnS0RRckRsNC9oRkJ3WE9ra1F3SG5IS1VFaFJHR21mdTFrTWhNeU5ETGoxbm1seDgxbEZ0enZXSFc1K1J1eDU1cTAwOEVmRUpJQ2pFNStOME5NelBFYWZ5dG83TEt4a2dmZ29LUHp0M3VseHk5dEd0VHh2NWZ2dERiOGlmYjMvTzhaaFRKSUtDRXhYaU5BRy9CWVhUamoxUXJ2MzU5OXZBbnZINDIvTDMrMTZSTFZ2TlZ2NUhVR2lETUdrUkNBckJvS2RQR0F6bjZGa1FGS0lrbXYxRlVFQlFhTlljUFA4WTVvR0E3Y0F1WEI0Sy9nc0tQYnJueTJPMy9FeEdESW05NHZ0SFh5eVdVeTc2ZjU2M20zVE8wTGJkNGFHQWgwSzgrK0c2WDV3cXAzNzNXL0ZNNUlVM1A1WkwvL2ZldURiUmd3Z0tVUkw4YlUzQVQwSGg3ajlkS0ljZXNFZnJVKzc4dnE2OFFrNi85Ryt5ZVBuYW5YR3hQaUFveENJVGZEeUNRakRNZ3hBVTZCUHVxa3NFaFYwc2RuNUNVRUJRMk5rWWZQaUFvT0FEVkpWbEVEOGUxLy95VlBuK01mRUhLdnJxL2pyakpibjUzbGY4dWRBMHpCVkJ3YjVTdy93Y01ia2F2endVOXRsem1EeCs2K1VtUlpDenJyaEZabjA0cjExYkJJVjJFWFZZQTc4RWhWaWVDYTFCdnpuN0N6bi9OM2Uyam03ekhVR2hEWktrUlNBb0JJTStWSDNDZTFTZlVIa1VwWE5BVUhDb1hRUUZCQVdIWnVGWlZKZ0hBcllEdTQ3a29kQy91SWZNZnZJYTQzWXdiTXJGeHJZZDNkQzIzZUdoZ0lkQ3JIdm1UNzgrWFU2YVBqblc0UmJ4TDZuMUZDNzUvWXdXY1U1ZkVCU2NxQkNuQ2ZnbEtDeVo5UTlqd044Ny93YjVZbDc4UlVBUkZJeHgrbTZJb09BNzRzZ0ovQllVK3ZkUmZjS242Qk5HYXhOQklVcWkyVjhFQlFTRlpzM0I4NDhJQ3A0ampXVG85NC9IbWNkTmxmKzkvR1Rqd3AvM3E5dGw1cHk1eHZZZDJSQkJ3Yjcydy93Y01ia2F2endVUG4vbEJ1bldOZGVrQ05MWTJDZ2pEdnBwdTdZSUN1MGk2ckFHZmdnS2VnSEc1Ky8rcFRIVGY5ei9xdnpsN2hmajJpTW94TVVUNkVFRWhXQncweWNNaG5QMExBZ0tVUkxOL2lJb0lDZzBhdzZlZnd6elFNQjJZTmVSUEJUKy9Kc3o1TVJwK3h1M2g3L2QrN0w4YmNiTHh2WWQyZEMyM2VHaGdJZUMwLzJTbTlOWnZucmpMMDZIWXNidGQreHZaTVBHclRHUDZ3TUlDbkh4ZE9pRGZnZ0tldjBQdlE2SWFYaFhUZHM1VzAzZmlSY1FGT0xSQ2ZZWWdrSXd2UDBXRkd6N2hIOVYvY0diVmI4d1hRT0Nna1BOSWlnZ0tEZzBDOCtpRUJROFE5a2lJNzkvUFBTSzhYcmxlTlB3aStzZmxLZGVTV3hiU3ROenBib2Rnb0o5RFliNU9XSnlOWDU1S0x6MzlMVlMzTHZRcEFpeXJiSkd4aDMxODNadEVSVGFSZFJoRGZ3UUZLYnNOMWJ1ditraVk2WVBQVHRiL3VlbVIrUGFJeWpFeFJQb1FRU0ZZSENIclUvNDgrc2VsS2RmVGQ4K0lZS0NRN3RHVUVCUWNHZ1dua1dGZVNCZ083RHJTQjRLZSsxZUlrL2Rmb1Z4TzVoODNHOWw3WVl0eHZZZDJkQzIzZUdoZ0lkQ3JQdmwwaDlPaTJ6ckd1dDQ4M2k5eGF2ZTZyVzlnS0RRSHFHT2U5d1BRU0ZEYlUyODZKMmJqYUgrK0xkM3lXdnZmaDdYSGtFaExwNUFEeUlvQklQYmIwR0JQbUhMZWtSUWFNa2o4ZzFCQVVIQm9WbDRGb1dnNEJuS0ZobjUvZU9oVC9ibzN5K1QvU2FNYUhGZXB5L1B2ZkVmK2RuLzNlZDBpRGdIQWdnS0RsRGFpUXJ6YzZTZG9rY08rK1doMExPd3EzejB3aDlOaWlCVFQvNjlyRnBUM3E0dGdrSzdpRHFzZ1IrQ2dvYjUyNHVQbDNOUE9iUmRyblYxRFRMNjBFdmJ0VU5RYUJkUllBWUlDc0dnRGxlZjhDUFZKN3cvbUF0UDBsa1FGQnpBSXlnZ0tEZzBDOCtpd2p3UXNCM1lkU1FQQmQwQTl0OXJwRHg4Yy96T1cxMTlneHoxZyt0azZjcDFucldaZE0vSXR0M2hvWUNIUXJ4NzR2VHZUWkZycmpnbG5vbGM5NCtuNVo3SFpzYTFpUjVFVUlpUzRHOXJBbjRKQ2dWcVlkSFhIcnhLaW50MWIzM0tGdC8xTGlWNnQ1TDJBb0pDZTRTQ080NmdFQXpySUFRRitvUzc2aEpCWVJlTG5aOFFGQkFVZGpZR0h6NGdLUGdBVldVWnhJK0hMdm5VU2J2SlRiODlVM3IyNk5ibVF1WjhQRjl1dU9ONStieWRMYnphSk96Z0VRZ0s5ZzBnek04Ums2dnh5ME1oZXU2SmV3eVRDMDQvWEk0NGNGdzBLdkwzWCs5OUpYYys4cWE4LytuQ0Z2SHh2aUFveEtQVHNZLzVKU2hvcXNNR0Y4dXZManhXanBqU3NnM3JZMXE0dnZ5YSs0M0VCRzJQb0tBcGhDTWdLQVJURC9RSmcrRWNQUXVDUXBSRXM3OElDZ2dLelpxRDV4L0RQQkN3SGRpRnkwUGhTQ25ZYzVSeGZXMTQrME5aLzViN0JYSU9Vc0xDUWZ2dkppT0g5cE92RnF5TWJCSDU0ZWVMak0rUDRTNEN0dTBPRHdVOEZIYTFudmlmOUJ2ZXZmY2NMaGtabmVUakw1ZkltbldiNGlkd09JcWc0QUNGcUFnQlB3V0ZLT0p4WXdiTDRVb1lHemQyaUt4Y1hTNnpQNXJYN3BvSjBiVFJ2d2dLVVJMSi80dWdFRXdkRERoWjlRbkgwU2NNaHJZSWdvSURhUVFGQkFXSFp1RlpGSUtDWnloYlpOVHZoTU9sY0sreExlTGlmZG53cjQ5ay9adnZ4elBoV0VBRUVCVHNRWWY1T1dKeU5YNTdLSmlVd2RRR1FjR1VWTWV6QzBKUThJSXFnb0lYRkwzSkEwSEJHNDd0NWRMLytNT2wrMFQ2aE8xeDh1bzRnb0lEU1FRRkJBV0hadUZaVkpnSEFyWUR1ekI1S1BROTVpRHBNYW10YTJpc2lrTlFpRVVtK0hqYmRvZUhBaDRLUWJiU1ZCWVVkSWRhZDZ4TlE5V0tOYkw4emlkTnpUdThIWUpDc0UwZ3AxOHZLYm5vVk9PVDdtaG9rRzkrZjZ1eGZSQ0dDQXBCVUJhaFR4Z001K2haRUJTaUpKcjlSVkJBVUdqV0hEei9pS0RnT2RKSWhyMi9QVmw2VGQzSE9QTU43eWdQaFRmd1VEQUc1cU1oZ29JOTNEQS9SMHl1Qmc4RkUwcUoyeFRzT1RLeXZveHBUbFVybGFCd0I0S0NLUzhFQlZOUzN0Z2hLSGpEMFRRWDIvYTk3clYvUy9tczloY0pOVDEvSW5aOXZuMkE5Snk2dDNFV3ZHUXlSdVZvaUtEZ2dBVkJBVUhCb1ZsNEZoWG1nWUR0d0M1TUhncTlEdGxYZWgrMnYzRTliWnp6cWF4OWViYXhQWWIrRWJCdGQzZ280S0hnWDJ0c20zTXFleWgwSFQxVUJwMTVUTnVMaWhHRG9CQURUSXhvMndIWHhqbWZxZCtkV1RGeTh5K2FLUS8rc2JYTkdROEZXMkx1N08zN2hNbTVOOTFkWGZoU0lTZzQxQW1DQW9LQ1E3UHdMQXBCd1RPVUxUSXErdFlFS1Q1NlNvdTRlRjgyZmZpbGxEMy9yM2dtSEF1SUFJS0NQZWd3UDBkTXJnWVBCUk5LaWR2WWNxNHVYU3ZMYm5zODhSTjNrQndRRklLdGFEd1VndVZ0Mjc3RDVLRlFkSURxRTA2ejZSUE9WWDNDdDRNRm5FWm5RMUJ3cUV3RUJRUUZoMmJoV1ZTWUJ3SzJBN3N3ZVNnVWpGT3V2U2NmWlZ4UFc3NVlJS3NmZjgzWUhrUC9DTmkyT3p3VThGRHdyelcyelRtVlBSUnlCdlNSa2grZjB2YWlZc1JzWDFjdVMyNStPTVpSb2xzVHNCMXc0YUhRbXFEZGR3UUZPMTZKV3R1Mjd6QUpDbnFIQjczVGcybW9VSDNDVXZxRXByamEyQ0VvdEVFaWdxQ0FvT0RRTER5TFFsRHdER1dMakhJR0ZrdkpoU2UzaUl2M3BYcFZtU3k3L1lsNEpod0xpQUNDZ2ozb01EOUhUSzdHOXMxNVEzV05MTGp1THBPc1BiZEpaVUdoYzgvdU12eG5QekJtVXJ0eGl5eit5d1BHOWgzZDBIYkFoYUNRV0l0QlVFaU1uMjFxMi9ZZEprRWhkMEN4RFAweGZVTGJPbmRyajZEZ1FBNUJBVUhCb1ZsNEZoWG1nWUR0d0M1TUhnb1pPWjFsOUZVWEdOZFRNZ2NveG9Yc0lJYTI3UTRQQlR3VWdydzFVbGxRa0l4T012Yi9MamJHMVZoZkwvT3Z2czNZdnFNYjJnNjRFQlFTYXpFSUNvbnhzMDF0Mjc3REpDaFk5d21ybEdoOWZYSkVhOXQ2Q2FNOWdvSkRyU0FvSUNnNE5BdlBvaEFVUEVQWkpxTlJ2LzJSWk9ibXRJbVBGYkhvcHZ1bGJsTkZyTVBFQjBRQVFjRWVkSmlmSXlaWGc0ZUNDU1Z2YkViOC9DekpMaXd3em16QjlYZExRMVcxc1gxSE5yUWRjQ0VvSk5aYUVCUVM0MmViMnJaOWgwbFEwTmRLbjlDMnh0M2JJeWc0c0VOUVFGQndhQmFlUllWNUlHQTdzQXVUaDRLdW9LRVhuQ1M1Zy9vYTExWHBFNjlMeGVmemplMHg5SWVBYmJ2RFF3RVBCWDlhb25PdUtlMmhvQzVwOEErL0ovbkRCemxmbkVQc3NqdWVrT3FWWlE1SGlHcE53SGJBaGFEUW1xRGRkd1FGTzE2Sld0dTI3N0FKQ3JaOXd0V3FUN2lGUHFHclpvT2c0SUFOUVFGQndhRlplQmFGb09BWnlqWVpGVStmSWtXVEo3U0pqeFZSOGFWYWhPY3hGbWFNeFNlb2VBUUZlOUpoZm82WVhBMGVDaWFVdkxIcCs5MkRwY2QrZXhwbnR2YVZXYkx4MzU4WjIzdGgyS1Z2TCtWZDFzVTRxKzNyTmtwRFpmSzlLR3dIWEFnS3hsWHNhSWlnNElqRnQwamI5aDAyUWFGNCtsVFZKeHh2ekllRkdZMVJ0VEZFVUdpRFJGaVVzVCtDZ2tPejhDd3F6QU1CMjRGZDJEd1V1dTAyVE4yLzA0M3JTczhYMWd1OTdhaXJOMDZEb2ZjRWJOc2RIZ3A0S0hqZkNtUG5tT29lQ2ozMkh5ZDl2M05RN0F0c2RXVHJ2Q1d5NnFHWFdzWDYrM1hVVmVkTFpvNjVvTEQwbGtlbFpzMTZmd3Rsa0x2dGdBdEJ3UUJxSEJNRWhUaHdmRGhrMjc3REppaDBHNnY2aEtlYjl3bDFYM0MrV2tlQlBxRjlZMEpRY0dDR2h3S0Nna096OEN3S1FjRXpsRzB5MHVzbjZEbHpObUhkNjNPay9OMlBiWkpnNnpFQkJBVjdvR0YranBoY0RSNEtKcFM4c2VsUzNGT0dYWEthY1daQkM2M1dRbkJ0cmN5LzVrNlJIVHVNcjhrdlE5c0JGNEpDWWpXQm9KQVlQOXZVdHUwN2JJSUNmVUxiR25kdmo2RGd3QTVCQVVIQm9WbDRGdFY5NGxqcGZlaCt4b3RrVlMwcmxlVjNQKzNaK2VObFpEdXdDNXVIZ3I2MmtvdFBsUnpsUG1zYWRPZFpiNU5XWDFGcG1nUTdqd25ZdHJzZ1BSUnMyOU84cS83dU1SM243QkFVbkxuNEVadnFIZ3FheWNncno1T3N2RnhqUEVHdUwyUGI1OXEyWUptc2ZPQUY0MnZ4MDlCMndJV2drRmh0SUNna3hzODJ0VzM3RHB1Z29LL1g5amRjZXljczBuM0NyZlFKYmRvTGdvSURMZHNmdDlWUHZ5bGJQcG5ua0ZOcVJ1VXc1U0UxSzg2RFV0c083TUlvS1BRNmVGL3BmZmorVmpTMnpWY2QxQWZEMFVHMUtuaWFHTnUydXlBRmhiQWlSbEFJcm1iU1FWQVljT3JSVXJEN0NHTm9OV3MzeU5LL1AySnM3OWJRdHIraHo3UDIxZG15Y2ZhbmJrL3BhVHJiQVJlQ1FtTDRFUlFTNDljUlU5TW5ES2JXRVJRY09DTW80S0hnMEN3NlJKVHR3QzZNZ2tKV3Qzd1o4Y3NmU3FkT25henFMSXpLdXRVRnBMQ3hiYnREVUdBTmhTQ2Jlem9JQ29YNzdpSDlqajNFQ2x2cFk2OUt4WmNMcmRMWUdwZGNvanpLaXMwOXluVCtDLzg4SXpRZVpRZ0t0aldlbUQyQ1FtTDhPbUpxM1NjY3FmcUVxbE5vZGZuMENhMXdDWUtDQXk4RUJRUUZoMmJSSWFKc0IzWmhGQlIwUmRuZXc5SEtaYUFhSlJIc1g5dDJSejBoS0FUWlF0TkJVTWpJNlN3amYzMnVaR1JsR2FOcnJLdVRwZjk0VkdyTE54dW5zVEhVbm1UNjdhRk5xRnl5VWxiTWVOWW1pYSsyQ0FxKzRtMlRPWUpDR3lSRUdCQncyeWZjTVBORFdUL3pBNE16WUlLZzROQUdiQnNlVXg0YTVKdXJiM1VnbWR5b3NkZGVZbFdBb09ZK1d4VXFZR1BiZ1YxWUJZVzhZUU5seURuSHVhSlhXNzVKeWw1NFJ5b1hyWFNWbmtUMkJHemJIWUlDZ29KOUszT2ZJaDBFQlgzMS9ZNC9UQW9uN21ZRm9uWlRoU3k3OVRGcHFLNnhTdGVlY1k5SmUwcmZZdzV1ejZ6TjhkVlB2U0ZiUHYybVRYeXlJaEFVZ2lXUG9CQXM3M1E1VzBKOXdnMmJwZXpGZjlFbmJLY3hJQ2c0QUVKUXdFUEJvVmwwaUNqYmdWMVlCUVZkV1lQT1BsYTZqaGpzdXQ2MmI5Z2ttejc0UWlvWHJwQmE5WU5DOEkrQWJidERVRUJROEs4MXRzMDVYUVNGM0VGOVplZ0ZKN1c5d0haaXRxOHJseFgzUGVmWk5JT2liKzBseFVjZjJNNVoyeDdXaTZRdC9OT010Z2VTR0lPZ0VDeDhCSVZnZWFmVDJRYXJQbUYrQW4zQzJ2VzZUL2lsYkZ1MG5ENmhROE5BVUhDQWdxQ0FvT0RRTEh5TDJtM2tRSmswWWFRVWRHMWFnZnZyaGF2a2pkbGYrSGErZUJuYkR1ekNMQ2gwNlZNa3czNTZlcnpMTlQ3V29MWXAyNzVtUTJTYnNoMk5qVkpUdWs0YTZ4cU0wOGN5ckZ5NFRLcFhybzExdU1QRTI3YTdaQWtLK2g0OVlzbzRHZGkzWjZSdVZwV1Z5eHV6dnBDS2JkV0IxeFdMTWdhSFBGMEVCVTFzOExuSFNYN0pRR3Q0RFRVMXN1N1ZPYkw1UDE5WnA0MG0wRzhKaTZkTnNkcUZKNXBXL3czVFlvelJjaUVvUkVrRTh4ZEJJUmpPc2M0eWZFaXhUTmwzckF3WjJGdm16bDhoTStmTWxVMWJVbU0zQkMvN2hJM2JhNldtVFBVSkczZElwRSs0ZXIzbzNTRVNEZHNXTEpmcVZXV0pacE9VOUFnS0R0Z1JGQkFVSEpxRjUxRjZjSExEbFdkR0JpaXRNMTlWdGxFdXZQSk8wZUpDa01GMllCZG1RVUZ6Sy83T1FWSzAvN2dnRVZxZHEreWxkMlhUZTU5YnBVbEhZOXQybHd4QjRiSnpwc25aSngyeVUvaUwxb01XRS80MjQyVzU5NG0zbzFHQi9FVlFDQVJ6NUNUcEpDaDBLZTRwd3k0NXpUVzgrcXJxeUs1V0ZYTVhTYzJxK0dKb1J1ZHN5UjNTVC9LVmtGQXdicFJrZCsvbStyeDZ5c1dpRys2VHh0bzYxM240a1JCQndRK3FzZk5FVUlqTnhzOGpZMGNNRlAwYnFBWDExdUgrcDk2UkcrOThYaXFydHJjK0ZMcnZmVldmc0VlSSs0UnJWWjl3WTRyMkNSRVVISm83Z2dLQ2drT3o4RFJLaXdrUDMzeXBhTytFV0VFUFZFNzc2ZDhDRlJWc0IzWmhGeFE2WldWR3ZCUTZGM1dQaFRtcDhRZ0tUZmh0MjEzUWdvSVcvazQ0ZWxMY3RuTHp2Uy9MWDVXd0VGUkFVQWlLdEVnNkNRcWFtdTBnT0I3cDZ0SzFiZC9NWldSSWRtRTN5UzdvR2krcDFiRlZENzhrVzc5ZVlwVW1DR05ibG13Ym1WaXRJQ2dreHM5TjZnbTdEWlduNy9oNTNLUUxsNVhKdExPdmw0YUd4cmgyeVQ0WTlqNGhna0t5VzRqSDUwZFFRRkR3dUVtMXljNWtnS0lUYVUrRnFTZjlyazE2dnlKc0IzWmhGeFEwcDV6K2ZXVG9qMCsyM2tiU0w4Yk44MFZRYUtKaDIrNkNGQlQyMzJ0a1JQeHJYbSt4UG4vbm5EOEdKZ0FpS01TcUJlL2owMDFReU16dElzTXVPMU95OHB1bTJYbFB6TnNjTjMvOGxheDVacWEzbVhxVUc0S0NSeUFOczBGUU1BVGxvZGsvLzNxSkhMRDM2SFp6dlBXQjErVEd1MTVvMXk3WkJycFBXS0w2aExiYlNBWlJiZ1NGSUNnSGVBNEVCUVFGUDV1YjlrNzQ3SlViakU5eDRaVjN5ZXV6Z25HTHR4M1lwWUtnb0VFWDdyTjc1SzJjTWZTQURNdGVla2ROZVVqT2Voa0JYYUxSYVd6YlhaQ0N3aDEvT0YrT09MQ3RtNmZUaFQzMXlnZnlpK3NmZERya2VSeUNndWRJWTJhWWJvS0N2dEQ4a1lObDhGbkh4cnptc0J5b1didEJsdC8raEZxekp2SDV5WDVjRTRLQ0gxUmo1NG1nRUp1TkgwY203akZNbnJ6dGN1T3NoMDI1Mk5nMm1ZWmg3Uk91ZlZGTmVYZy9tUDYrMS95Wjh1QkFGRUVCUWNHaFdYZ1daZlBHVTU4MFNGZHEyNEZkcWdnS21tUEIrTkhTLzhRalF1V3BnSWVDcmhubFVuN2U4WkkzZEVEVEY0UC9neFFVbHN6NmgwR0pta3lDOUNoQ1VEQ3Vsb1FOMDFGUTBGQ0twMCtWb3NuakUrYmpWd1lOTmR0bDZTMlBTcDNhdWpLc0FVRWgySnBCVUFpVzl4VS9Pa1l1K3NHUnhpYzkrNHBiNU4wUDV4bmJKOU93KzMvN2hHSHlWTUJESVprdHdvZHpJeWdnS1BqUXJIWm1lZUxSKzh1ZnJ6eGo1L2YyUGdUNTF0TjJZSmRLZ29MbTNIVk1pUXc0NVVqSnlNNXVEM3NneC9GUWFNSnMyKzdDS2lqb3F3bnFEUTJDUWlDM2FPUWs2U29vNkl2cmQ5eGhVcmozYnNIQk5EeFRvOXBaWitVREwwalZzdFdHS1pKamhxQVFMSGNFaFdCNTMvMm5DK1hRQS9Zd1B1a2ZiM3RXN256NFRXUDdaQnMyOVFtUFVuM0NyR1FYSlhKK1BCUkNVUTNlRlFKQkFVSEJ1OWJVTmljOEZOb3lDVEttYzY4ZU12Q002ZEpGL1UxMndFT2hxUWJTUlZBb1ZXdWVUQWxvelJNRWhlRHUzblFXRkRURnNIa3ExRmRXeThyN25wT2FOZXVEcTJTWFowSlFjQW5PWlRJRUJaZmdYQ2E3L0x6dnlNVm5IV1djK3F6TGI1RlpINldHaDBMMG9uU2ZjSkRxRStxL3lRNTRLQ1M3Qmp3K1A0SUNnb0xIVGFwRmRxeWgwQUpIVXI1MFVtcDBueU1tU3cvbDd0dXBVNmVrbEVHZkZFR2hDWDJZQlFYV1VQRG45c2dyR1NCRHpqM2VPSE85YmVDQzYrNHl0dmZTTU4wRkJjMnErNFF4eWx2aFVPbVVtZWtsT3V1OHF0VldsS1dQdmlKMW03ZGFwMDFHQWdTRllLa2pLQVRMZStJZUpXb05oU3VNVHhxVWg1NXhnUXdObzMzQ3lCU3dKUFlKRVJRTUt5eFZ6QkFVRUJUOGJxdW11endFK2NaVFg3UHR3QzdWcGp5MHJ0ZmN3WDJsdHhJVzhrdGliOS9aT28yWDN4RVVtbWphdHJzZ3B6elllQlJOUGVuM2FtZVdjaStiU015ODhGQ0lpY2J6QXgxQlVORFFjZ1lXcXlsaFIwbm5IZ1dlTXpUSnNIeld4N0x1dFRrbXBxR3hRVkFJdGlvUUZJTGxyYy8yd0Y4dWxnUDNIZFB1aWY5eC82dnlsN3RmYk5jdXpBYTZUOWpuaUFORUM5N0pDQWdLeWFEdTR6a1JGQkFVZkd4ZWtheTFsOElqZjc5TXhvNkkvZERhV2xranAxN3kxOEMyb2RNRnN4M1lwYnFnRUszbkxuMktwTWVrUGFYYkhpTUQzVW9OUWFHcEJtemJYWkNDZ2k3aDczNTZvcHg5MHNGTmhZM3hmNUNMcCtvaUlDakVxQWdmb2p1S29CQkYxK2ZJQTZUbmxMMmpYMzMvVzdWOHRaUTk5N1pzWDdmUjkzTjVmUUlFQmErSnhzOFBRU0UrSHorT2poODdSSjYrNHhkeDF5NmN2MlMxVER2N0Q3Smp4dzQvaWhCNG50RStZWUhxRTJZR3VMMHVna0xnVmUzdkNSRVVFQlQ4YldGTnVXdFI0WC9VUU9XRW95ZTFPWjMyVExqZ3lqc0RGUk4wSVd3SGR1a2lLRFN2Z0x3aC9TVjNhSC9KRzl4UGNrdjZTMmJuenMwUGUvcVpSUm1iY05xMnU2QUZCVjNLYzA0K1JDNDlaN3AweTg5cDBRYTA4SGZOMzU2VUoxOTV2MFc4MzE4UUZQd212Q3YvamlZbzZDdlBMaXFRbmdkT1ZGTWhSa3VHVDgvQXlzVXJaTU03SDB2VmtsVzdZS2ZZSndTRllDc01RU0ZZM3RHempScldYeTQ3WjVvY2RkQ0VhTlRPdnpNZWYxdHV2UE41cWRsZXR6TXVuVDdvUG1HZTZoUG1xajZoL3B2UnhiOCtJWXN5cGxQTFVkZFNzT2RJNmR5N3lQaXF0czFickJZUDJtQnNIM2JEblA2OXBYQ2kzYXJQWlMrK0U3ckwwaDF1bTdCaDVnYzI1cDdaRHV6YlU3NDlkWnhvZ1VHSHJ4ZVd5dXV6a3JNUGJmZUpZeVc3ME56ZGRjdW44MEs5cFpjWGxaVFR2NDk2SHZSUVhMcDVQcis0Y3NFeTBYT0dPM3F3YlhkVlMxZEoxZExTd0xIcGUvVGJVOGJMd0g1TnZ3K3IxbXlNM0tzVjI2b0RMNHQyeWN5em1LcFR0N2xDdG53eUwvQnl4anFodnArNlcvek83S2lyay9KWm44VEt6dGQ0dlF0Q1Z2ZHV4dWVvK0h5KzFKWnZOcllQczJHbnJNekk3amdGdXcrWC9CR0RKVE8zcGFCbVUvYkcrbnFwWHJGR0toZXZFdjNiVVY5UmFaTThsTFo2bGZoYzlSdGhHcXBXcXV0ZnVNTFUzRE83ekp3dVVuUkEyOEZnckJNMEp2RitpMVVtSGE4RmhjSzlkNDluMHVaWTJQcW5lcjUrTDBzUG9QTFpuMGhqYmZJSDdFTUg5bGJUSDhhSy92dmwvQlV5Yzg1YzJacUUzNzgybFJ4Z2hPNFRkdkdwVDdndGhmdUVuVW9PdkNnOS9GTUNiRXljQ2dJUWdBQUVJQUFCQ0hRMEFscGMxVy9wOUZ1N0xzVTkxY3JvaFk3YjhHcnhvRlpOWWFndDN5TGIxMjlTMnorV3ByUW5Ra2VyWjY0WEFoQ0FnQTBCQkFVYld0aENBQUlRZ0FBRUlBQUJDRUFBQWhDQUFBUWdFQ0dBb0VCRGdBQUVJQUFCQ0VBQUFoQ0FBQVFnQUFFSVFNQ2FBSUtDTlRJU1FBQUNFSUFBQkNBQUFRaEFBQUlRZ0FBRUlJQ2dRQnVBQUFRZ0FBRUlRQUFDRUlBQUJDQUFBUWhBd0pvQWdvSTFNaEpBQUFJUWdBQUVJQUFCQ0VBQUFoQ0FBQVFnZ0tCQUc0QUFCQ0FBQVFoQUFBSVFnQUFFSUFBQkNFREFtZ0NDZ2pVeUVrQUFBaENBQUFRZ0FBRUlRQUFDRUlBQUJDQ0FvRUFiZ0FBRUlBQUJDRUFBQWhDQUFBUWdBQUVJUU1DYUFJS0NOVElTUUFBQ0VJQUFCQ0FBQVFoQUFBSVFnQUFFSUlDZ1FCdUFBQVFnQUFFSVFBQUNFSUFBQkNBQUFRaEF3Sm9BZ29JMU1oSkFBQUlRZ0FBRUlBQUJDRUFBQWhDQUFBUWdnS0JBRzRBQUJDQUFBUWhBQUFJUWdBQUVJQUFCQ0VEQW1nQ0NnalV5RWtBQUFoQ0FBQVFnQUFFSVFBQUNFSUFBQkNDQW9FQWJnQUFFSUFBQkNFQUFBaENBQUFRZ0FBRUlRTUNhQUlLQ05USVNRQUFDRUlBQUJDQUFBUWhBQUFJUWdBQUVJSUNnUUJ1QUFBUWdBQUVJUUFBQ0VJQUFCQ0FBQVFoQXdKb0Fnb0kxTWhKQUFBSVFnQUFFSUFBQkNFQUFBaENBQUFRZ2dLQkFHNEFBQkNBQUFRaEFBQUlRZ0FBRUlBQUJDRURBbWdDQ2dqVXlFa0FBQWhDQUFBUWdBQUVJUUFBQ0VJQUFCQ0NBb0VBYmdBQUVJQUFCQ0VBQUFoQ0FBQVFnQUFFSVFNQ2FBSUtDTlRJU1FBQUNFSUFBQkNBQUFRaEFBQUlRZ0FBRUlJQ2dRQnVBQUFRZ0FBRUlRQUFDRUlBQUJDQUFBUWhBd0pvQWdvSTFNaEpBQUFJUWdBQUVJQUFCQ0VBQUFoQ0FBQVFnZ0tCQUc0QUFCQ0FBQVFoQUFBSVFnQUFFSUFBQkNFREFtZ0NDZ2pVeUVrQUFBaENBQUFRZ0FBRUlRQUFDRUlBQUJDQ0FvRUFiZ0FBRUlBQUJDRUFBQWhDQUFBUWdBQUVJUU1DYUFJS0NOVElTUUFBQ0VJQUFCQ0FBQVFoQUFBSVFnQUFFSUlDZ1FCdUFBQVFnQUFFSVFBQUNFSUFBQkNBQUFRaEF3Sm9BZ29JMU1oSkFBQUlRZ0FBRUlBQUJDRUFBQWhDQUFBUWdnS0JBRzRBQUJDQUFBUWhBQUFJUWdBQUVJQUFCQ0VEQW1nQ0NnalV5RWtBQUFoQ0FBQVFnQUFFSVFBQUNFSUFBQkNDQW9FQWJnQUFFSUFBQkNFQUFBaENBQUFRZ0FBRUlRTUNhQUlLQ05USVNRQUFDRUlBQUJDQUFBUWhBQUFJUWdBQUVJSUNnUUJ1QUFBUWdBQUVJUUFBQ0VJQUFCQ0FBQVFoQXdKb0Fnb0kxTWhKQUFBSVFnQUFFSUFBQkNFQUFBaENBQUFRZ2dLQkFHNEFBQkNBQUFRaEFBQUlRZ0FBRUlBQUJDRURBbWdDQ2dqVXlFa0FBQWhDQUFBUWdBQUVJUUFBQ0VJQUFCQ0NBb0VBYmdBQUVJQUFCQ0VBQUFoQ0FBQVFnQUFFSVFNQ2FBSUtDTlRJU1FBQUNFSUFBQkNBQUFRaEFBQUlRZ0FBRUlJQ2dRQnVBQUFRZ0FBRUlRQUFDRUlBQUJDQUFBUWhBd0pvQWdvSTFNaEpBQUFJUWdBQUVJQUFCQ0VBQUFoQ0FBQVFnZ0tCQUc0QUFCQ0FBQVFoQUFBSVFnQUFFSUFBQkNFREFtZ0NDZ2pVeUVrQUFBaENBQUFRZ0FBRUlRQUFDRUlBQUJDQ0FvRUFiZ0FBRUlBQUJDRUFBQWhDQUFBUWdBQUVJUU1DYUFJS0NOVElTUUFBQ0VJQUFCQ0FBQVFoQUFBSVFnQUFFSUlDZ1FCdUFBQVFnQUFFSVFBQUNFSUFBQkNBQUFRaEF3Sm9BZ29JMU1oSkFBQUlRZ0FBRUlBQUJDRUFBQWhDQUFBUWdnS0JBRzRBQUJDQUFBUWhBQUFJUWdBQUVJQUFCQ0VEQW1nQ0NnalV5RWtBQUFoQ0FBQVFnQUFFSVFBQUNFSUFBQkNDQW9FQWJnQUFFSUFBQkNFQUFBaENBQUFRZ0FBRUlRTUNhQUlLQ05USVNRQUFDRUlBQUJDQUFBUWhBQUFJUWdBQUVJSUNnUUJ1QUFBUWdBQUVJUUFBQ0VJQUFCQ0FBQVFoQXdKb0Fnb0kxTWhKQUFML2NhbXdBQUFESFNVUkJWQUlRZ0FBRUlBQUJDRUFBQWhDQUFBUWdnS0JBRzRBQUJDQUFBUWhBQUFJUWdBQUVJQUFCQ0VEQW1nQ0NnalV5RWtBQUFoQ0FBQVFnQUFFSVFBQUNFSUFBQkNDQW9FQWJnQUFFSUFBQkNFQUFBaENBQUFRZ0FBRUlRTUNhQUlLQ05USVNRQUFDRUlBQUJDQUFBUWhBQUFJUWdBQUVJSUNnUUJ1QUFBUWdBQUVJUUFBQ0VJQUFCQ0FBQVFoQXdKb0Fnb0kxTWhKQUFBSVFnQUFFSUFBQkNFQUFBaENBQUFRZ2dLQkFHNEFBQkNBQUFRaEFBQUlRZ0FBRUlBQUJDRURBbXNEL0Iya3llOFRJVzk1VkFBQUFBRWxGVGtTdVFtQ0NcIjtcbiJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiZSIsIm4iLCJyIiwiaSIsInMiLCJ1IiwiYSIsIm8iLCJjIiwiZiIsImgiLCJkIiwibCIsIiQiLCJ5IiwiTSIsIm5hbWUiLCJ3ZWVrZGF5cyIsInNwbGl0IiwibW9udGhzIiwib3JkaW5hbCIsInQiLCJtIiwiU3RyaW5nIiwibGVuZ3RoIiwiQXJyYXkiLCJqb2luIiwidiIsInoiLCJ1dGNPZmZzZXQiLCJNYXRoIiwiYWJzIiwiZmxvb3IiLCJkYXRlIiwieWVhciIsIm1vbnRoIiwiY2xvbmUiLCJhZGQiLCJjZWlsIiwicCIsInciLCJEIiwibXMiLCJRIiwidG9Mb3dlckNhc2UiLCJyZXBsYWNlIiwiZyIsIlMiLCJfIiwiTyIsImFyZ3MiLCJhcmd1bWVudHMiLCJiIiwibG9jYWxlIiwiJEwiLCJ1dGMiLCIkdSIsIngiLCIkeCIsIiRvZmZzZXQiLCJ0aGlzIiwicGFyc2UiLCJwcm90b3R5cGUiLCIkZCIsIkRhdGUiLCJOYU4iLCJ0ZXN0IiwibWF0Y2giLCJzdWJzdHJpbmciLCJVVEMiLCJpbml0IiwiJHkiLCJnZXRGdWxsWWVhciIsIiRNIiwiZ2V0TW9udGgiLCIkRCIsImdldERhdGUiLCIkVyIsImdldERheSIsIiRIIiwiZ2V0SG91cnMiLCIkbSIsImdldE1pbnV0ZXMiLCIkcyIsImdldFNlY29uZHMiLCIkbXMiLCJnZXRNaWxsaXNlY29uZHMiLCIkdXRpbHMiLCJpc1ZhbGlkIiwidG9TdHJpbmciLCJpc1NhbWUiLCJzdGFydE9mIiwiZW5kT2YiLCJpc0FmdGVyIiwiaXNCZWZvcmUiLCIkZyIsInNldCIsInVuaXgiLCJ2YWx1ZU9mIiwiZ2V0VGltZSIsInRvRGF0ZSIsImFwcGx5Iiwic2xpY2UiLCIkbG9jYWxlIiwid2Vla1N0YXJ0IiwiJHNldCIsIm1pbiIsImRheXNJbk1vbnRoIiwiZ2V0IiwiTnVtYmVyIiwicm91bmQiLCJzdWJ0cmFjdCIsImZvcm1hdCIsImludmFsaWREYXRlIiwibWVyaWRpZW0iLCJtb250aHNTaG9ydCIsIndlZWtkYXlzTWluIiwid2Vla2RheXNTaG9ydCIsImdldFRpbWV6b25lT2Zmc2V0IiwiZGlmZiIsInRvSlNPTiIsInRvSVNPU3RyaW5nIiwidG9VVENTdHJpbmciLCJrIiwiZm9yRWFjaCIsImV4dGVuZCIsIiRpIiwiaXNEYXlqcyIsImVuIiwiTHMiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJ1bmRlZmluZWQiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwiY2FsbCIsImdldHRlciIsIl9fZXNNb2R1bGUiLCJkZWZpbml0aW9uIiwia2V5IiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwib2JqIiwicHJvcCIsImhhc093blByb3BlcnR5IiwiZ2xvYmFsVGhpcyIsIlNoYWRvd1Jvb3QiLCJTaGFkeUNTUyIsIm5hdGl2ZVNoYWRvdyIsIkRvY3VtZW50IiwiQ1NTU3R5bGVTaGVldCIsIlN5bWJvbCIsIldlYWtNYXAiLCJjb25zdHJ1Y3RvciIsIl8kY3NzUmVzdWx0JCIsIkVycm9yIiwiY3NzVGV4dCIsInN0eWxlU2hlZXQiLCJyZXBsYWNlU3luYyIsInJlZHVjZSIsImFkb3B0ZWRTdHlsZVNoZWV0cyIsIm1hcCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImxpdE5vbmNlIiwic2V0QXR0cmlidXRlIiwidGV4dENvbnRlbnQiLCJhcHBlbmRDaGlsZCIsImNzc1J1bGVzIiwiaXMiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZ2V0UHJvdG90eXBlT2YiLCJ0cnVzdGVkVHlwZXMiLCJlbXB0eVNjcmlwdCIsInJlYWN0aXZlRWxlbWVudFBvbHlmaWxsU3VwcG9ydCIsInRvQXR0cmlidXRlIiwiQm9vbGVhbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJmcm9tQXR0cmlidXRlIiwiYXR0cmlidXRlIiwidHlwZSIsImNvbnZlcnRlciIsInJlZmxlY3QiLCJoYXNDaGFuZ2VkIiwibWV0YWRhdGEiLCJsaXRQcm9wZXJ0eU1ldGFkYXRhIiwiSFRNTEVsZW1lbnQiLCJhZGRJbml0aWFsaXplciIsIl8kRWkiLCJwdXNoIiwib2JzZXJ2ZWRBdHRyaWJ1dGVzIiwiZmluYWxpemUiLCJfJEVoIiwia2V5cyIsImNyZWF0ZVByb3BlcnR5Iiwic3RhdGUiLCJlbGVtZW50UHJvcGVydGllcyIsIm5vQWNjZXNzb3IiLCJnZXRQcm9wZXJ0eURlc2NyaXB0b3IiLCJyZXF1ZXN0VXBkYXRlIiwiY29uZmlndXJhYmxlIiwiZ2V0UHJvcGVydHlPcHRpb25zIiwiTWFwIiwiZmluYWxpemVkIiwicHJvcGVydGllcyIsIl8kRXUiLCJlbGVtZW50U3R5bGVzIiwiZmluYWxpemVTdHlsZXMiLCJzdHlsZXMiLCJpc0FycmF5IiwiU2V0IiwiZmxhdCIsInJldmVyc2UiLCJ1bnNoaWZ0Iiwic3VwZXIiLCJfJEVwIiwiaXNVcGRhdGVQZW5kaW5nIiwiaGFzVXBkYXRlZCIsIl8kRW0iLCJfJEV2IiwiXyRFUyIsIlByb21pc2UiLCJlbmFibGVVcGRhdGluZyIsIl8kQUwiLCJfJEVfIiwiYWRkQ29udHJvbGxlciIsIl8kRU8iLCJyZW5kZXJSb290IiwiaXNDb25uZWN0ZWQiLCJob3N0Q29ubmVjdGVkIiwicmVtb3ZlQ29udHJvbGxlciIsImRlbGV0ZSIsInNpemUiLCJjcmVhdGVSZW5kZXJSb290Iiwic2hhZG93Um9vdCIsImF0dGFjaFNoYWRvdyIsInNoYWRvd1Jvb3RPcHRpb25zIiwiY29ubmVjdGVkQ2FsbGJhY2siLCJkaXNjb25uZWN0ZWRDYWxsYmFjayIsImhvc3REaXNjb25uZWN0ZWQiLCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siLCJfJEFLIiwiXyRFQyIsInJlbW92ZUF0dHJpYnV0ZSIsIlAiLCJfJEVUIiwiaGFzIiwiXyRFaiIsInJlamVjdCIsInNjaGVkdWxlVXBkYXRlIiwicGVyZm9ybVVwZGF0ZSIsIndyYXBwZWQiLCJzaG91bGRVcGRhdGUiLCJ3aWxsVXBkYXRlIiwiaG9zdFVwZGF0ZSIsInVwZGF0ZSIsIl8kRVUiLCJfJEFFIiwiaG9zdFVwZGF0ZWQiLCJmaXJzdFVwZGF0ZWQiLCJ1cGRhdGVkIiwidXBkYXRlQ29tcGxldGUiLCJnZXRVcGRhdGVDb21wbGV0ZSIsIm1vZGUiLCJSZWFjdGl2ZUVsZW1lbnQiLCJyZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucyIsImNyZWF0ZVBvbGljeSIsImNyZWF0ZUhUTUwiLCJyYW5kb20iLCJ0b0ZpeGVkIiwiY3JlYXRlQ29tbWVudCIsIlJlZ0V4cCIsIl8kbGl0VHlwZSQiLCJzdHJpbmdzIiwidmFsdWVzIiwiVCIsImZvciIsIkUiLCJBIiwiQyIsImNyZWF0ZVRyZWVXYWxrZXIiLCJWIiwibGFzdEluZGV4IiwiZXhlYyIsInN0YXJ0c1dpdGgiLCJOIiwicGFydHMiLCJlbCIsImN1cnJlbnROb2RlIiwiY29udGVudCIsImZpcnN0Q2hpbGQiLCJyZXBsYWNlV2l0aCIsImNoaWxkTm9kZXMiLCJuZXh0Tm9kZSIsIm5vZGVUeXBlIiwiaGFzQXR0cmlidXRlcyIsImdldEF0dHJpYnV0ZU5hbWVzIiwiZW5kc1dpdGgiLCJnZXRBdHRyaWJ1dGUiLCJpbmRleCIsImN0b3IiLCJIIiwiSSIsIkwiLCJ0YWdOYW1lIiwiYXBwZW5kIiwiZGF0YSIsImluZGV4T2YiLCJpbm5lckhUTUwiLCJfJENvIiwiXyRDbCIsIl8kbGl0RGlyZWN0aXZlJCIsIl8kQU8iLCJfJEFUIiwiXyRBUyIsIl8kQVYiLCJfJEFOIiwiXyRBRCIsIl8kQU0iLCJwYXJlbnROb2RlIiwiXyRBVSIsImNyZWF0aW9uU2NvcGUiLCJpbXBvcnROb2RlIiwiUiIsIm5leHRTaWJsaW5nIiwiXyRBSSIsIl8kQ3YiLCJfJEFIIiwiXyRBQSIsIl8kQUIiLCJvcHRpb25zIiwic3RhcnROb2RlIiwiZW5kTm9kZSIsIl8kQVIiLCJpdGVyYXRvciIsImluc2VydEJlZm9yZSIsImNyZWF0ZVRleHROb2RlIiwiXyRBQyIsIl8kQVAiLCJyZW1vdmUiLCJzZXRDb25uZWN0ZWQiLCJlbGVtZW50IiwiZmlsbCIsImoiLCJ0b2dnbGVBdHRyaWJ1dGUiLCJjYXB0dXJlIiwib25jZSIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsImhhbmRsZUV2ZW50IiwiaG9zdCIsImxpdEh0bWxQb2x5ZmlsbFN1cHBvcnQiLCJsaXRIdG1sVmVyc2lvbnMiLCJyZW5kZXJPcHRpb25zIiwiXyREbyIsInJlbmRlckJlZm9yZSIsInJlbmRlciIsIl8kbGl0UGFydCQiLCJfJGxpdEVsZW1lbnQkIiwibGl0RWxlbWVudEh5ZHJhdGVTdXBwb3J0IiwiTGl0RWxlbWVudCIsImxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQiLCJsaXRFbGVtZW50VmVyc2lvbnMiLCJraW5kIiwiQ2F0ZWdvcnkiLCJDYXRlZ29yaWVzIiwiY2luZW1hTW92aWUiLCJuZXdzSXRlbSIsIm5ld3NQcmVzZW50ZXIiLCJyYWRpb1NvbmciLCJzaG93Yml6eiIsInNwb3J0cyIsInRlY2giLCJ0dlNob3dPclNlcmllcyIsIlV0aWwiLCJhc3luY0ZvcmVhY2giLCJhcnJheSIsImNhbGxiYWNrIiwicmVtb3ZlQWxsQ2hpbGRyZW4iLCJwYXJlbnRFbGVtZW50IiwiY2hpbGRUb0RlbGV0ZSIsImxhc3RDaGlsZCIsInJlbW92ZUNoaWxkIiwic2h1ZmZsZUFycmF5Iiwic29ydCIsImRvYlRvR2VuZXJhdGlvbiIsImRvYiIsInNjb3JlVG9WYWx1ZUp1ZGdlbWVudCIsInNjb3JlQXNQZXJjZW50IiwiQXBpU2VydmljZSIsInRlZWVBcGlVcmwiLCJmZXRjaE9uZUluY2lkZW50IiwicG92IiwiY2F0ZWdvcnkiLCJlbW90aW9uIiwiaW1wYWN0IiwiZnJvbSIsInRvIiwibWF4TGFzdGVkIiwidmFyaWFudCIsImFzeW5jIiwicmVzb2x2ZSIsImNvbnNvbGUiLCJkZWJ1ZyIsInBvdnMiLCJjYXRlZ29yaWVzIiwiZW1vdGlvbnMiLCJpbXBhY3RzIiwiZGF0ZVN0cmluZyIsImZyb21TdHJpbmciLCJtYXhMYXN0ZWRTdHJpbmciLCJ2YXJpYW50cyIsInVybHMiLCJ1cmxTZWFyY2giLCJVUkxTZWFyY2hQYXJhbXMiLCJsaW1pdCIsInVybCIsIlVSTCIsInNlYXJjaCIsImVycm9yIiwiaW5jaWRlbnRzIiwicmVzcG9uc2UiLCJmZXRjaCIsImpzb24iLCJjb25jYXQiLCJyZXN1bHRzIiwiZmlyc3RJbmNpZGVudEluTGlzdCIsInNvdXJjZXNGb3VuZEluSW5jaWRlbnRzIiwiaW5jaWRlbnQiLCJzb3VyY2UiLCJzb3VyY2VzIiwicG9zdEF0dHJpYnV0ZVF1YWxpdHlGZWVkYmFjayIsImluY2lkZW50aWQiLCJ2YWx1ZSIsInJlbWFyayIsIm1ldGhvZCIsImhlYWRlcnMiLCJBY2NlcHQiLCJib2R5IiwicG9zdEluY2lkZW50RmVlZGJhY2siLCJpbmNpZGVudFJlY2FsbGFiaWxpdHkiLCJpc19jb3JyZWN0IiwiQ29udGVudEZlZWRiYWNrIiwiR2FtZVN0YXRlIiwiTkwiLCJIaW50VGVtcGxhdGVzIiwidHJhbnNsYXRlIiwiUXVlc3Rpb25TY29yZUNvbnRyb2xsZXIiLCJzdGFydFZhbHVlIiwidGltZW91dCIsInN0YXJ0IiwiX3RpbWVySUQiLCJzZXRJbnRlcnZhbCIsInN0b3AiLCJjbGVhckludGVydmFsIiwicmVzZXQiLCJpc1J1bm5pbmciLCJzZXRUaW1lb3V0Iiwid2luZG93IiwiTUlOX1lFQVIiLCJNQVhfWUVBUiIsInBhcnNlSW50IiwiR1RZX0ZST01fWUVBUl9WQVIiLCJHVFlfVE9fWUVBUl9WQVIiLCJHVFlfTlVNX1FVRVNUSU9OU19WQVIiLCJNSU5fRE9CIiwiR1RZX1BMQVlFUl9ET0JfVkFSIiwiR3Vlc3NUaGVZZWFyIiwibG9hZGluZyIsIl9sb2FkaW5nIiwicmVwb3J0QnJva2VuSW1hZ2VzIiwiY291bnRyeSIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJub0ltYWdlU3JjIiwic3VwcHJlc3NJbWFnZXMiLCJtYXhIaW50cyIsIm51bWJlck9mUXVlc3Rpb25zIiwiTUFYX1FVRVNUSU9OUyIsIl9udW1iZXJPZlF1ZXN0aW9uc1NlZW4iLCJfcGxheWVyRG9iIiwiX2luY2lkZW50IiwiX2Fuc3dlcnMiLCJfaGludCIsIl9zaG93SGludCIsIl9zaG93Rm9vdGVyIiwiX2hpbnRzSW5kZXgiLCJfaGludHMiLCJfc29sdXRpb24iLCJfcmVuZGVyU3RhdGUiLCJJTklUIiwiX3Njb3JlIiwidG90YWxTY29yZSIsIl9hbnN3ZXIiLCJfYXBpU2VydmljZSIsImkxOG4iLCJfaGFuZGxlSW1hZ2VMb2FkRXJyb3IiLCJldnQiLCJ0YXJnZXRJbWFnZSIsInRhcmdldCIsInNyYyIsImlkIiwiaW5jb3JyZWN0IiwiX3Njb3JlMCIsIlNQTEFTSCIsImNoYW5nZWRQcm9wZXJ0aWVzIiwicmVuZGVyU3BsYXNoU2NyZWVuIiwiSU5UUk8iLCJyZW5kZXJHYW1lSW50cm8iLCJQTEFZIiwicmVuZGVyR2FtZVN0YWdlIiwiRU5EIiwicmVuZGVyR2FtZUVuZCIsIl9yZW5kZXJGb290ZXIiLCJjb2xvckVsZW1lbnQiLCJjb2xvciIsInF1ZXJ5U2VsZWN0b3IiLCJzdHlsZSIsInNldFByb3BlcnR5IiwiX3JlbmRlckhlYWRlciIsIl9yZW5kZXJZZWFyU3RlcFhTZWxlY3RPcHRpb25zIiwic3RlcCIsInNlbGVjdGVkVmFsdWUiLCJzZWxlY3RlZCIsInNlbGVjdFllYXJPcHRpb25zIiwic2VsZWN0UXVlc3Rpb25PcHRpb25zIiwiX3NldE51bWJlck9mUXVlc3Rpb25zIiwiX3NldEZyb21EYXRlIiwiX3NldFRvRGF0ZSIsIl9zZXRQbGF5ZXJEb2IiLCJzZXR1cE5ld0dhbWUiLCJldmVudCIsInNldEl0ZW0iLCJfcmVuZGVyR2FtZVNjb3JlIiwiX3JlbmRlckluY2lkZW50IiwiX3JlbmRlckhpbnQiLCJyZW5kZXJTb3VyY2VzIiwiX3JlbmRlckhpbnRCdXR0b24iLCJfcmVuZGVyQW5zd2VycyIsIl9yZW5kZXJGZWVkYmFjayIsInRpdGxlIiwiX3JlbmRlckluY2lkZW50SW1hZ2UiLCJ0ZXh0IiwiX3Nob3VsZERpc3BsYXlBbkltYWdlIiwiaGFzSW1hZ2UiLCJpbWFnZSIsImRpc3BsYXlJbWFnZXMiLCJhbnN3ZXIiLCJfaGFuZGxlQW5zd2VyQ2xpY2tlZCIsIl9oYW5kbGVIaW50Q2xpY2tlZCIsImhpbnRUZXh0IiwiX2dlbmVyYXRlSGludFRleHQiLCJzY29yZSIsIl9yZW5kZXJOZXh0UXVlc3Rpb25CdXR0b24iLCJfbG9hZFF1ZXN0aW9uIiwiX2VuZEdhbWUiLCJtYXhTY29yZSIsInNjb3JlUmF0aW8iLCJfcmVzZXRTdGFnZSIsInllYXJwbHVzbW9udGgiLCJhbnN3ZXJzIiwicmFuZG9tQW5zd2VyIiwiaW5jbHVkZXMiLCJzaGlmdCIsImhpbnRJbmNpZGVudCIsImhpbnQiLCJoaW50VGVtcGxhdGVzIiwidHJhY2siLCJhcnRpc3QiLCJEYXlqcyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sInNvdXJjZVJvb3QiOiIifQ==