-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclient.js
2 lines (2 loc) · 596 KB
/
client.js
1
2
!function(A){var t={};function e(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return A[r].call(n.exports,n,n.exports,e),n.l=!0,n.exports}e.m=A,e.c=t,e.d=function(A,t,r){e.o(A,t)||Object.defineProperty(A,t,{enumerable:!0,get:r})},e.r=function(A){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})},e.t=function(A,t){if(1&t&&(A=e(A)),8&t)return A;if(4&t&&"object"==typeof A&&A&&A.__esModule)return A;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:A}),2&t&&"string"!=typeof A)for(var n in A)e.d(r,n,function(t){return A[t]}.bind(null,n));return r},e.n=function(A){var t=A&&A.__esModule?function(){return A.default}:function(){return A};return e.d(t,"a",t),t},e.o=function(A,t){return Object.prototype.hasOwnProperty.call(A,t)},e.p="",e(e.s=24)}([function(A,t,e){"use strict";e.d(t,"a",(function(){return i}));const r=1e3,n=500;function i(A,t=0){return t>0&&console.log(`retry attempt ${t}`),new Promise((e,o)=>{A().then(A=>{e(A)},s=>{s&&s.result&&s.result.error&&s.result.error.errors&&s.result.error.errors[0]&&"userRateLimitExceeded"===s.result.error.errors[0].reason&&t<=5?setTimeout(()=>{e(i(A,t+1))},(t+1)*r+function(A){return Math.ceil(A*Math.random())}(n)):o(s)})})}},function(A,t,e){"use strict";e.d(t,"a",(function(){return o})),e.d(t,"b",(function(){return g}));const r="459608939264-087fom6s0mdpr9htrdu1ca0p0mm1596a.apps.googleusercontent.com",n="AIzaSyBavEASQECkfM6Y_ljZe8gCmjIAr1TonD0",i="459608939264";function o(){return(new google.picker.PickerBuilder).setTitle("Select a folder to copy files into").enableFeature(google.picker.Feature.NAV_HIDDEN).enableFeature(google.picker.Feature.MINE_ONLY).setAppId(i).addView((new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0).setParent("root")).setDeveloperKey(n)}function s(A){document.querySelectorAll(".c-copier").forEach(t=>{const e=t.querySelector(".c-session__authorize"),r=t.querySelector(".c-session__logout"),n=t.querySelector(".c-copier__content"),i=t.querySelector(".c-copier__message");A?(e.classList.add("o-hidden"),r.classList.remove("o-hidden"),n.classList.remove("o-hidden"),i.innerHTML="",i.classList.add("o-hidden")):(e.classList.remove("o-hidden"),r.classList.add("o-hidden"),n.classList.add("o-hidden"),i.innerHTML='Please authorize file copying by clicking the "Authorize" button',i.classList.remove("o-hidden"))})}function g(A){gapi.client.init({apiKey:n,clientId:r,discoveryDocs:["https://www.googleapis.com/discovery/v1/apis/drive/v3/rest"],scope:"https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.readonly",prompt:"consent"}).then(()=>{"client"===A&&(gapi.auth2.getAuthInstance().isSignedIn.listen(s),s(gapi.auth2.getAuthInstance().isSignedIn.get()),document.querySelectorAll(".c-session__authorize").forEach(A=>{A.addEventListener("click",()=>{gapi.auth2.getAuthInstance().signIn()})}),document.querySelectorAll(".c-session__logout").forEach(A=>{A.addEventListener("click",()=>{gapi.auth2.getAuthInstance().signOut()})}))})}},function(A,t){function e(){}function r(A){this._tree=A,this._ancestors=[],this._cursor=null}e.prototype.clear=function(){this._root=null,this.size=0},e.prototype.find=function(A){for(var t=this._root;null!==t;){var e=this._comparator(A,t.data);if(0===e)return t.data;t=t.get_child(e>0)}return null},e.prototype.findIter=function(A){for(var t=this._root,e=this.iterator();null!==t;){var r=this._comparator(A,t.data);if(0===r)return e._cursor=t,e;e._ancestors.push(t),t=t.get_child(r>0)}return null},e.prototype.lowerBound=function(A){for(var t=this._root,e=this.iterator(),r=this._comparator;null!==t;){var n=r(A,t.data);if(0===n)return e._cursor=t,e;e._ancestors.push(t),t=t.get_child(n>0)}for(var i=e._ancestors.length-1;i>=0;--i)if(r(A,(t=e._ancestors[i]).data)<0)return e._cursor=t,e._ancestors.length=i,e;return e._ancestors.length=0,e},e.prototype.upperBound=function(A){for(var t=this.lowerBound(A),e=this._comparator;null!==t.data()&&0===e(t.data(),A);)t.next();return t},e.prototype.min=function(){var A=this._root;if(null===A)return null;for(;null!==A.left;)A=A.left;return A.data},e.prototype.max=function(){var A=this._root;if(null===A)return null;for(;null!==A.right;)A=A.right;return A.data},e.prototype.iterator=function(){return new r(this)},e.prototype.each=function(A){for(var t,e=this.iterator();null!==(t=e.next());)A(t)},e.prototype.reach=function(A){for(var t,e=this.iterator();null!==(t=e.prev());)A(t)},r.prototype.data=function(){return null!==this._cursor?this._cursor.data:null},r.prototype.next=function(){if(null===this._cursor){var A=this._tree._root;null!==A&&this._minNode(A)}else{var t;if(null===this._cursor.right)do{if(t=this._cursor,!this._ancestors.length){this._cursor=null;break}this._cursor=this._ancestors.pop()}while(this._cursor.right===t);else this._ancestors.push(this._cursor),this._minNode(this._cursor.right)}return null!==this._cursor?this._cursor.data:null},r.prototype.prev=function(){if(null===this._cursor){var A=this._tree._root;null!==A&&this._maxNode(A)}else{var t;if(null===this._cursor.left)do{if(t=this._cursor,!this._ancestors.length){this._cursor=null;break}this._cursor=this._ancestors.pop()}while(this._cursor.left===t);else this._ancestors.push(this._cursor),this._maxNode(this._cursor.left)}return null!==this._cursor?this._cursor.data:null},r.prototype._minNode=function(A){for(;null!==A.left;)this._ancestors.push(A),A=A.left;this._cursor=A},r.prototype._maxNode=function(A){for(;null!==A.right;)this._ancestors.push(A),A=A.right;this._cursor=A},A.exports=e},function(A,t,e){var r,n,i;!function(o,s){"use strict";n=[e(7)],void 0===(i="function"==typeof(r=function(A){var t=/(^|@)\S+\:\d+/,e=/^\s*at .*(\S+\:\d+|\(native\))/m,r=/^(eval@)?(\[native code\])?$/;return{parse:function(A){if(void 0!==A.stacktrace||void 0!==A["opera#sourceloc"])return this.parseOpera(A);if(A.stack&&A.stack.match(e))return this.parseV8OrIE(A);if(A.stack)return this.parseFFOrSafari(A);throw new Error("Cannot parse given Error object")},extractLocation:function(A){if(-1===A.indexOf(":"))return[A];var t=/(.+?)(?:\:(\d+))?(?:\:(\d+))?$/.exec(A.replace(/[\(\)]/g,""));return[t[1],t[2]||void 0,t[3]||void 0]},parseV8OrIE:function(t){return t.stack.split("\n").filter((function(A){return!!A.match(e)}),this).map((function(t){t.indexOf("(eval ")>-1&&(t=t.replace(/eval code/g,"eval").replace(/(\(eval at [^\()]*)|(\)\,.*$)/g,""));var e=t.replace(/^\s+/,"").replace(/\(eval code/g,"("),r=e.match(/ (\((.+):(\d+):(\d+)\)$)/),n=(e=r?e.replace(r[0],""):e).split(/\s+/).slice(1),i=this.extractLocation(r?r[1]:n.pop()),o=n.join(" ")||void 0,s=["eval","<anonymous>"].indexOf(i[0])>-1?void 0:i[0];return new A({functionName:o,fileName:s,lineNumber:i[1],columnNumber:i[2],source:t})}),this)},parseFFOrSafari:function(t){return t.stack.split("\n").filter((function(A){return!A.match(r)}),this).map((function(t){if(t.indexOf(" > eval")>-1&&(t=t.replace(/ line (\d+)(?: > eval line \d+)* > eval\:\d+\:\d+/g,":$1")),-1===t.indexOf("@")&&-1===t.indexOf(":"))return new A({functionName:t});var e=/((.*".+"[^@]*)?[^@]*)(?:@)/,r=t.match(e),n=r&&r[1]?r[1]:void 0,i=this.extractLocation(t.replace(e,""));return new A({functionName:n,fileName:i[0],lineNumber:i[1],columnNumber:i[2],source:t})}),this)},parseOpera:function(A){return!A.stacktrace||A.message.indexOf("\n")>-1&&A.message.split("\n").length>A.stacktrace.split("\n").length?this.parseOpera9(A):A.stack?this.parseOpera11(A):this.parseOpera10(A)},parseOpera9:function(t){for(var e=/Line (\d+).*script (?:in )?(\S+)/i,r=t.message.split("\n"),n=[],i=2,o=r.length;i<o;i+=2){var s=e.exec(r[i]);s&&n.push(new A({fileName:s[2],lineNumber:s[1],source:r[i]}))}return n},parseOpera10:function(t){for(var e=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,r=t.stacktrace.split("\n"),n=[],i=0,o=r.length;i<o;i+=2){var s=e.exec(r[i]);s&&n.push(new A({functionName:s[3]||void 0,fileName:s[2],lineNumber:s[1],source:r[i]}))}return n},parseOpera11:function(e){return e.stack.split("\n").filter((function(A){return!!A.match(t)&&!A.match(/^Error created at/)}),this).map((function(t){var e,r=t.split("@"),n=this.extractLocation(r.pop()),i=r.shift()||"",o=i.replace(/<anonymous function(: (\w+))?>/,"$2").replace(/\([^\)]*\)/g,"")||void 0;i.match(/\(([^\)]*)\)/)&&(e=i.replace(/^[^\(]+\(([^\)]*)\)$/,"$1"));var s=void 0===e||"[arguments not available]"===e?void 0:e.split(",");return new A({functionName:o,args:s,fileName:n[0],lineNumber:n[1],columnNumber:n[2],source:t})}),this)}}})?r.apply(t,n):r)||(A.exports=i)}()},function(A,t){var e=function(A){function t(){this.fetch=!1,this.DOMException=A.DOMException}return t.prototype=A,new t}("undefined"!=typeof self?self:this);!function(A){!function(t){var e={searchParams:"URLSearchParams"in A,iterable:"Symbol"in A&&"iterator"in Symbol,blob:"FileReader"in A&&"Blob"in A&&function(){try{return new Blob,!0}catch(A){return!1}}(),formData:"FormData"in A,arrayBuffer:"ArrayBuffer"in A};if(e.arrayBuffer)var r=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],n=ArrayBuffer.isView||function(A){return A&&r.indexOf(Object.prototype.toString.call(A))>-1};function i(A){if("string"!=typeof A&&(A=String(A)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(A))throw new TypeError("Invalid character in header field name");return A.toLowerCase()}function o(A){return"string"!=typeof A&&(A=String(A)),A}function s(A){var t={next:function(){var t=A.shift();return{done:void 0===t,value:t}}};return e.iterable&&(t[Symbol.iterator]=function(){return t}),t}function g(A){this.map={},A instanceof g?A.forEach((function(A,t){this.append(t,A)}),this):Array.isArray(A)?A.forEach((function(A){this.append(A[0],A[1])}),this):A&&Object.getOwnPropertyNames(A).forEach((function(t){this.append(t,A[t])}),this)}function c(A){if(A.bodyUsed)return Promise.reject(new TypeError("Already read"));A.bodyUsed=!0}function a(A){return new Promise((function(t,e){A.onload=function(){t(A.result)},A.onerror=function(){e(A.error)}}))}function u(A){var t=new FileReader,e=a(t);return t.readAsArrayBuffer(A),e}function B(A){if(A.slice)return A.slice(0);var t=new Uint8Array(A.byteLength);return t.set(new Uint8Array(A)),t.buffer}function h(){return this.bodyUsed=!1,this._initBody=function(A){var t;this._bodyInit=A,A?"string"==typeof A?this._bodyText=A:e.blob&&Blob.prototype.isPrototypeOf(A)?this._bodyBlob=A:e.formData&&FormData.prototype.isPrototypeOf(A)?this._bodyFormData=A:e.searchParams&&URLSearchParams.prototype.isPrototypeOf(A)?this._bodyText=A.toString():e.arrayBuffer&&e.blob&&((t=A)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=B(A.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):e.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(A)||n(A))?this._bodyArrayBuffer=B(A):this._bodyText=A=Object.prototype.toString.call(A):this._bodyText="",this.headers.get("content-type")||("string"==typeof A?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):e.searchParams&&URLSearchParams.prototype.isPrototypeOf(A)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},e.blob&&(this.blob=function(){var A=c(this);if(A)return A;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?c(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(u)}),this.text=function(){var A,t,e,r=c(this);if(r)return r;if(this._bodyBlob)return A=this._bodyBlob,t=new FileReader,e=a(t),t.readAsText(A),e;if(this._bodyArrayBuffer)return Promise.resolve(function(A){for(var t=new Uint8Array(A),e=new Array(t.length),r=0;r<t.length;r++)e[r]=String.fromCharCode(t[r]);return e.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},e.formData&&(this.formData=function(){return this.text().then(C)}),this.json=function(){return this.text().then(JSON.parse)},this}g.prototype.append=function(A,t){A=i(A),t=o(t);var e=this.map[A];this.map[A]=e?e+", "+t:t},g.prototype.delete=function(A){delete this.map[i(A)]},g.prototype.get=function(A){return A=i(A),this.has(A)?this.map[A]:null},g.prototype.has=function(A){return this.map.hasOwnProperty(i(A))},g.prototype.set=function(A,t){this.map[i(A)]=o(t)},g.prototype.forEach=function(A,t){for(var e in this.map)this.map.hasOwnProperty(e)&&A.call(t,this.map[e],e,this)},g.prototype.keys=function(){var A=[];return this.forEach((function(t,e){A.push(e)})),s(A)},g.prototype.values=function(){var A=[];return this.forEach((function(t){A.push(t)})),s(A)},g.prototype.entries=function(){var A=[];return this.forEach((function(t,e){A.push([e,t])})),s(A)},e.iterable&&(g.prototype[Symbol.iterator]=g.prototype.entries);var f=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function w(A,t){var e,r,n=(t=t||{}).body;if(A instanceof w){if(A.bodyUsed)throw new TypeError("Already read");this.url=A.url,this.credentials=A.credentials,t.headers||(this.headers=new g(A.headers)),this.method=A.method,this.mode=A.mode,this.signal=A.signal,n||null==A._bodyInit||(n=A._bodyInit,A.bodyUsed=!0)}else this.url=String(A);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new g(t.headers)),this.method=(e=t.method||this.method||"GET",r=e.toUpperCase(),f.indexOf(r)>-1?r:e),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function C(A){var t=new FormData;return A.trim().split("&").forEach((function(A){if(A){var e=A.split("="),r=e.shift().replace(/\+/g," "),n=e.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(n))}})),t}function d(A,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new g(t.headers),this.url=t.url||"",this._initBody(A)}w.prototype.clone=function(){return new w(this,{body:this._bodyInit})},h.call(w.prototype),h.call(d.prototype),d.prototype.clone=function(){return new d(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new g(this.headers),url:this.url})},d.error=function(){var A=new d(null,{status:0,statusText:""});return A.type="error",A};var l=[301,302,303,307,308];d.redirect=function(A,t){if(-1===l.indexOf(t))throw new RangeError("Invalid status code");return new d(null,{status:t,headers:{location:A}})},t.DOMException=A.DOMException;try{new t.DOMException}catch(A){t.DOMException=function(A,t){this.message=A,this.name=t;var e=Error(A);this.stack=e.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function E(A,r){return new Promise((function(n,i){var o=new w(A,r);if(o.signal&&o.signal.aborted)return i(new t.DOMException("Aborted","AbortError"));var s=new XMLHttpRequest;function c(){s.abort()}s.onload=function(){var A,t,e={status:s.status,statusText:s.statusText,headers:(A=s.getAllResponseHeaders()||"",t=new g,A.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(A){var e=A.split(":"),r=e.shift().trim();if(r){var n=e.join(":").trim();t.append(r,n)}})),t)};e.url="responseURL"in s?s.responseURL:e.headers.get("X-Request-URL");var r="response"in s?s.response:s.responseText;n(new d(r,e))},s.onerror=function(){i(new TypeError("Network request failed"))},s.ontimeout=function(){i(new TypeError("Network request failed"))},s.onabort=function(){i(new t.DOMException("Aborted","AbortError"))},s.open(o.method,o.url,!0),"include"===o.credentials?s.withCredentials=!0:"omit"===o.credentials&&(s.withCredentials=!1),"responseType"in s&&e.blob&&(s.responseType="blob"),o.headers.forEach((function(A,t){s.setRequestHeader(t,A)})),o.signal&&(o.signal.addEventListener("abort",c),s.onreadystatechange=function(){4===s.readyState&&o.signal.removeEventListener("abort",c)}),s.send(void 0===o._bodyInit?null:o._bodyInit)}))}E.polyfill=!0,A.fetch||(A.fetch=E,A.Headers=g,A.Request=w,A.Response=d),t.Headers=g,t.Request=w,t.Response=d,t.fetch=E}({})}(e),delete e.fetch.polyfill,(t=e.fetch).default=e.fetch,t.fetch=e.fetch,t.Headers=e.Headers,t.Request=e.Request,t.Response=e.Response,A.exports=t},function(A,t,e){"use strict";var r=e(3),n=e.n(r),i=e(4),o=e.n(i),s=function(A,t){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,t){A.__proto__=t}||function(A,t){for(var e in t)t.hasOwnProperty(e)&&(A[e]=t[e])})(A,t)};function g(A,t){function e(){this.constructor=A}s(A,t),A.prototype=null===t?Object.create(t):(e.prototype=t.prototype,new e)}var c=function(){return(c=Object.assign||function(A){for(var t,e=1,r=arguments.length;e<r;e++)for(var n in t=arguments[e])Object.prototype.hasOwnProperty.call(t,n)&&(A[n]=t[n]);return A}).apply(this,arguments)},a=128;function u(A,t){return A>>t||1}var B=function(){function A(A){this.maxStringLength=1024,this.maxObjectLength=a,this.maxArrayLength=a,this.maxDepth=8,this.keys=[],this.keysBlacklist=[],this.seen=[];var t=A.level||0;this.keysBlacklist=A.keysBlacklist||[],this.maxStringLength=u(this.maxStringLength,t),this.maxObjectLength=u(this.maxObjectLength,t),this.maxArrayLength=u(this.maxArrayLength,t),this.maxDepth=u(this.maxDepth,t)}return A.prototype.truncate=function(A,t,e){if(void 0===t&&(t=""),void 0===e&&(e=0),null==A)return A;switch(typeof A){case"boolean":case"number":case"function":return A;case"string":return this.truncateString(A);case"object":break;default:return this.truncateString(String(A))}if(A instanceof String)return this.truncateString(A.toString());if(A instanceof Boolean||A instanceof Number||A instanceof Date||A instanceof RegExp)return A;if(A instanceof Error)return this.truncateString(A.toString());if(this.seen.indexOf(A)>=0)return"[Circular "+this.getPath(A)+"]";var r=function(A){return Object.prototype.toString.apply(A).slice("[object ".length,-1)}(A);if(++e>this.maxDepth)return"[Truncated "+r+"]";switch(this.keys.push(t),this.seen.push(A),r){case"Array":return this.truncateArray(A,e);case"Object":return this.truncateObject(A,e);default:var n=this.maxDepth;this.maxDepth=0;var i=this.truncateObject(A,e);return i.__type=r,this.maxDepth=n,i}},A.prototype.getPath=function(A){for(var t=this.seen.indexOf(A),e=[this.keys[t]],r=t;r>=0;r--){var n=this.seen[r];n&&f(n,e[0])===A&&(A=n,e.unshift(this.keys[r]))}return"~"+e.join(".")},A.prototype.truncateString=function(A){return A.length>this.maxStringLength?A.slice(0,this.maxStringLength)+"...":A},A.prototype.truncateArray=function(A,t){void 0===t&&(t=0);for(var e=0,r=[],n=0;n<A.length;n++){var i=A[n];if(r.push(this.truncate(i,n.toString(),t)),++e>=this.maxArrayLength)break}return r},A.prototype.truncateObject=function(A,t){void 0===t&&(t=0);var e=0,r={};for(var n in A)if(Object.prototype.hasOwnProperty.call(A,n))if(w(n,this.keysBlacklist))r[n]="[Filtered]";else{var i=f(A,n);if(void 0!==i&&"function"!=typeof i&&(r[n]=this.truncate(i,n,t),++e>=this.maxObjectLength))break}return r},A}();function h(A,t){return void 0===t&&(t={}),new B(t).truncate(A)}function f(A,t){try{return A[t]}catch(A){return}}function w(A,t){for(var e=0,r=t;e<r.length;e++){var n=r[e];if(n===A)return!0;if(n instanceof RegExp&&A.match(n))return!0}return!1}var C=function(){function A(A,t,e){this._dur=0,this._level=0,this._metric=A,this.name=t,this.startTime=e||new Date}return A.prototype.end=function(A){this.endTime=A||new Date,this._dur+=this.endTime.getTime()-this.startTime.getTime(),this._metric._incGroup(this.name,this._dur),this._metric=null},A.prototype._pause=function(){if(!this._paused()){var A=new Date;this._dur+=A.getTime()-this.startTime.getTime(),this.startTime=null}},A.prototype._resume=function(){this._paused()&&(this.startTime=new Date)},A.prototype._paused=function(){return null==this.startTime},A}(),d=function(){function A(){this._spans={},this._groups={},this.startTime=new Date}return A.prototype.end=function(A){this.endTime||(this.endTime=A||new Date)},A.prototype.isRecording=function(){return!0},A.prototype.startSpan=function(A,t){var e=this._spans[A];e?e._level++:(e=new C(this,A,t),this._spans[A]=e)},A.prototype.endSpan=function(A,t){var e=this._spans[A];e?e._level>0?e._level--:(e.end(t),delete this._spans[e.name]):console.error("airbrake: span=%s does not exist",A)},A.prototype._incGroup=function(A,t){this._groups[A]=(this._groups[A]||0)+t},A.prototype._duration=function(){return this.endTime||(this.endTime=new Date),this.endTime.getTime()-this.startTime.getTime()},A}(),l=function(){function A(){}return A.prototype.isRecording=function(){return!1},A.prototype.startSpan=function(A,t){},A.prototype.endSpan=function(A,t){},A.prototype._incGroup=function(A,t){},A}(),E=function(){function A(){this._noopMetric=new l,this._context={},this._historyMaxLen=20,this._history=[]}return A.prototype.clone=function(){var t=new A;return t._context=c({},this._context),t._history=this._history.slice(),t},A.prototype.setContext=function(A){this._context=Object.assign(this._context,A)},A.prototype.context=function(){var A=c({},this._context);return this._history.length>0&&(A.history=this._history.slice()),A},A.prototype.pushHistory=function(A){this._isDupState(A)?this._lastRecord.num?this._lastRecord.num++:this._lastRecord.num=2:(A.date||(A.date=new Date),this._history.push(A),this._lastRecord=A,this._history.length>this._historyMaxLen&&(this._history=this._history.slice(-this._historyMaxLen)))},A.prototype._isDupState=function(A){if(!this._lastRecord)return!1;for(var t in A)if(A.hasOwnProperty(t)&&"date"!==t&&A[t]!==this._lastRecord[t])return!1;return!0},A.prototype.routeMetric=function(){return this._routeMetric||this._noopMetric},A.prototype.setRouteMetric=function(A){this._routeMetric=A},A.prototype.queueMetric=function(){return this._queueMetric||this._noopMetric},A.prototype.setQueueMetric=function(A){this._queueMetric=A},A}(),Q="object"==typeof console&&console.warn;function p(A){try{return n.a.parse(A)}catch(t){Q&&A.stack&&console.warn("ErrorStackParser:",t.toString(),A.stack)}return A.fileName?[A]:[]}function v(A){var t=[];if(A.noStack)t.push({function:A.functionName||"",file:A.fileName||"",line:A.lineNumber||0,column:A.columnNumber||0});else{var e=p(A);if(0===e.length)try{throw new Error("fake")}catch(A){(e=p(A)).shift(),e.shift()}for(var r=0,n=e;r<n.length;r++){var i=n[r];t.push({function:i.functionName||"",file:i.fileName||"",line:i.lineNumber||0,column:i.columnNumber||0})}}return{type:A.name?A.name:"",message:A.message?String(A.message):String(A),backtrace:t}}var I=new RegExp(["^","\\[(\\$.+)\\]","\\s","([\\s\\S]+)","$"].join(""));function D(A){var t=A.errors[0];if(""!==t.type&&"Error"!==t.type)return A;var e=t.message.match(I);return null!==e&&(t.type=e[1],t.message=e[2]),A}var m=["Script error","Script error.","InvalidAccessError"];function y(A){var t=A.errors[0];if(""===t.type&&-1!==m.indexOf(t.message))return null;if(t.backtrace&&t.backtrace.length>0&&"<anonymous>"===t.backtrace[0].file)return null;return A}var M=new RegExp(["^","Uncaught\\s","(.+?)",":\\s","(.+)","$"].join(""));function b(A){var t=A.errors[0];if(""!==t.type&&"Error"!==t.type)return A;var e=t.message.match(M);return null!==e&&(t.type=e[1],t.message=e[2]),A}var x={unauthorized:new Error("airbrake: unauthorized: project id or key are wrong"),ipRateLimited:new Error("airbrake: IP is rate limited")},P=0;function z(A){if(Date.now()/1e3<P)return Promise.reject(x.ipRateLimited);var t={method:A.method,body:A.body};return o()(A.url,t).then((function(A){if(401===A.status)throw x.unauthorized;if(429===A.status){var t=A.headers.get("X-RateLimit-Delay");if(!t)throw x.ipRateLimited;var e=parseInt(t,10);throw e>0&&(P=Date.now()/1e3+e),x.ipRateLimited}if(204===A.status)return{json:null};if(404===A.status)throw new Error("404 Not Found");return A.status>=200&&A.status<300?A.json().then((function(A){return{json:A}})):A.status>=400&&A.status<500?A.json().then((function(A){throw new Error(A.message)})):A.text().then((function(t){throw new Error("airbrake: fetch: unexpected response: code="+A.status+" body='"+t+"'")}))}))}function k(A){return function(t){return function(A,t){if(Date.now()/1e3<O)return Promise.reject(x.ipRateLimited);return new Promise((function(e,r){t({url:A.url,method:A.method,body:A.body,headers:{"content-type":"application/json"},timeout:A.timeout},(function(A,t,n){if(A)r(A);else{if(!t.statusCode)return A=new Error("airbrake: request: response statusCode is "+t.statusCode),void r(A);if(401!==t.statusCode)if(429!==t.statusCode)if(204!==t.statusCode)if(t.statusCode>=200&&t.statusCode<300){var i=void 0;try{i=JSON.parse(n)}catch(A){return void r(A)}e(i)}else{if(t.statusCode>=400&&t.statusCode<500){i=void 0;try{i=JSON.parse(n)}catch(A){return void r(A)}return A=new Error(i.message),void r(A)}n=n.trim(),A=new Error("airbrake: node: unexpected response: code="+t.statusCode+" body='"+n+"'"),r(A)}else e({json:null});else{r(x.ipRateLimited);var o=t.headers["x-ratelimit-delay"];if(!o)return;var s=void 0;if("string"==typeof o)s=o;else{if(!(o instanceof Array))return;s=o[0]}var g=parseInt(s,10);g>0&&(O=Date.now()/1e3+g)}else r(x.unauthorized)}}))}))}(t,A)}}var Y,O=0;function J(A){return A.request?k(A.request):z}var L=!1;try{Y=e(8),L=!0}catch(A){}var S=function(){function A(){this.count=0,this.sum=0,this.sumsq=0,this._td=new Y.Digest}return A.prototype.add=function(A){0===A&&(A=1e-5),this.count+=1,this.sum+=A,this.sumsq+=A*A,this._td&&this._td.push(A)},A.prototype.toJSON=function(){return{count:this.count,sum:this.sum,sumsq:this.sumsq,tdigestCentroids:H(this._td)}},A}(),F=function(A){function t(){var t=null!==A&&A.apply(this,arguments)||this;return t.groups={},t}return g(t,A),t.prototype.addGroups=function(A,t){for(var e in this.add(A),t)this.addGroup(e,t[e])},t.prototype.addGroup=function(A,t){var e=this.groups[A];e||(e=new S,this.groups[A]=e),e.add(t)},t.prototype.toJSON=function(){return{count:this.count,sum:this.sum,sumsq:this.sumsq,tdigestCentroids:H(this._td),groups:this.groups}},t}(S);function H(A){var t=[],e=[];return A.centroids.each((function(A){t.push(A.mean),e.push(A.n)})),{mean:t,count:e}}var j=function(A){function t(t,e,r,n){void 0===t&&(t=""),void 0===e&&(e=""),void 0===r&&(r=0),void 0===n&&(n="");var i=A.call(this)||this;return i.method=t,i.route=e,i.statusCode=r,i.contentType=n,i.startTime=new Date,i}return g(t,A),t}(d),W=function(){function A(A){this._m={},this._opt=A,this._url=A.host+"/api/v5/projects/"+A.projectId+"/routes-stats?key="+A.projectKey,this._requester=J(A)}return A.prototype.notify=function(A){var t=this;if(L){var e=A._duration(),r=new Date(6e4*Math.floor(A.startTime.getTime()/6e4)),n={method:A.method,route:A.route,statusCode:A.statusCode,time:r},i=JSON.stringify(n),o=this._m[i];o||(o=new S,this._m[i]=o),o.add(e),this._timer||(this._timer=setTimeout((function(){t._flush()}),15e3))}},A.prototype._flush=function(){var A=[];for(var t in this._m)if(this._m.hasOwnProperty(t)){var e=JSON.parse(t),r=c(c({},e),this._m[t].toJSON());A.push(r)}this._m={},this._timer=null;var n=JSON.stringify({environment:this._opt.environment,routes:A}),i={method:"POST",url:this._url,body:n};this._requester(i).then((function(A){})).catch((function(A){console.error&&console.error("can not report routes stats",A)}))},A}(),N=function(){function A(A){this._m={},this._opt=A,this._url=A.host+"/api/v5/projects/"+A.projectId+"/routes-breakdowns?key="+A.projectKey,this._requester=J(A)}return A.prototype.notify=function(A){var t=this;if(L&&!(A.statusCode<200||A.statusCode>=300&&A.statusCode<400||404===A.statusCode||0===Object.keys(A._groups).length)){var e=A._duration();0===e&&(e=1e-5);var r=new Date(6e4*Math.floor(A.startTime.getTime()/6e4)),n={method:A.method,route:A.route,responseType:this._responseType(A),time:r},i=JSON.stringify(n),o=this._m[i];o||(o=new F,this._m[i]=o),o.addGroups(e,A._groups),this._timer||(this._timer=setTimeout((function(){t._flush()}),15e3))}},A.prototype._flush=function(){var A=[];for(var t in this._m)if(this._m.hasOwnProperty(t)){var e=JSON.parse(t),r=c(c({},e),this._m[t].toJSON());A.push(r)}this._m={},this._timer=null;var n=JSON.stringify({environment:this._opt.environment,routes:A}),i={method:"POST",url:this._url,body:n};this._requester(i).then((function(A){})).catch((function(A){console.error&&console.error("can not report routes breakdowns",A)}))},A.prototype._responseType=function(A){return A.statusCode>=500?"5xx":A.statusCode>=400?"4xx":A.contentType?A.contentType.split(";")[0].split("/")[-1]:""},A}(),T=function(A){function t(t){var e=A.call(this)||this;return e.queue=t,e.startTime=new Date,e}return g(t,A),t}(d),V=function(){function A(A){this._m={},this._opt=A,this._url=A.host+"/api/v5/projects/"+A.projectId+"/queues-stats?key="+A.projectKey,this._requester=J(A)}return A.prototype.notify=function(A){var t=this;if(L){var e=A._duration();0===e&&(e=1e-5);var r=new Date(6e4*Math.floor(A.startTime.getTime()/6e4)),n={queue:A.queue,time:r},i=JSON.stringify(n),o=this._m[i];o||(o=new F,this._m[i]=o),o.addGroups(e,A._groups),this._timer||(this._timer=setTimeout((function(){t._flush()}),15e3))}},A.prototype._flush=function(){var A=[];for(var t in this._m)if(this._m.hasOwnProperty(t)){var e=JSON.parse(t),r=c(c({},e),this._m[t].toJSON());A.push(r)}this._m={},this._timer=null;var n=JSON.stringify({environment:this._opt.environment,queues:A}),i={method:"POST",url:this._url,body:n};this._requester(i).then((function(A){})).catch((function(A){console.error&&console.error("can not report queues breakdowns",A)}))},A}(),R=function(){function A(A){void 0===A&&(A=""),this.method="",this.route="",this.query="",this.func="",this.file="",this.line=0,this.startTime=new Date,this.query=A}return A.prototype._duration=function(){return this.endTime||(this.endTime=new Date),this.endTime.getTime()-this.startTime.getTime()},A}(),X=function(){function A(A){this._m={},this._opt=A,this._url=A.host+"/api/v5/projects/"+A.projectId+"/queries-stats?key="+A.projectKey,this._requester=J(A)}return A.prototype.start=function(A){return void 0===A&&(A=""),new R(A)},A.prototype.notify=function(A){var t=this;if(L){var e=A._duration(),r=new Date(6e4*Math.floor(A.startTime.getTime()/6e4)),n={method:A.method,route:A.route,query:A.query,func:A.func,file:A.file,line:A.line,time:r},i=JSON.stringify(n),o=this._m[i];o||(o=new S,this._m[i]=o),o.add(e),this._timer||(this._timer=setTimeout((function(){t._flush()}),15e3))}},A.prototype._flush=function(){var A=[];for(var t in this._m)if(this._m.hasOwnProperty(t)){var e=JSON.parse(t),r=c(c({},e),this._m[t].toJSON());A.push(r)}this._m={},this._timer=null;var n=JSON.stringify({environment:this._opt.environment,queries:A}),i={method:"POST",url:this._url,body:n};this._requester(i).then((function(A){})).catch((function(A){console.error&&console.error("can not report queries stats",A)}))},A}(),U=function(){function A(A){var t,e,r=this;if(this._filters=[],this._scope=new E,this._onClose=[],!A.projectId||!A.projectKey)throw new Error("airbrake: projectId and projectKey are required");this._opt=A,this._opt.host=this._opt.host||"https://api.airbrake.io",this._opt.timeout=this._opt.timeout||1e4,this._opt.keysBlacklist=this._opt.keysBlacklist||[/password/,/secret/],this._url=this._opt.host+"/api/v3/projects/"+this._opt.projectId+"/notices?key="+this._opt.projectKey,this._processor=this._opt.processor||v,this._requester=J(this._opt),this.addFilter(y),this.addFilter((function(A){var r=JSON.stringify(A.errors);return r===t?null:(e&&clearTimeout(e),t=r,e=setTimeout((function(){t=""}),1e3),A)})),this.addFilter(b),this.addFilter(D),this.addFilter((function(A){return A.context.notifier={name:"airbrake-js/browser",version:"1.0.6",url:"https://github.com/airbrake/airbrake-js"},r._opt.environment&&(A.context.environment=r._opt.environment),A})),this.routes=new K(this),this.queues=new G(this),this.queries=new X(this._opt)}return A.prototype.close=function(){for(var A=0,t=this._onClose;A<t.length;A++){(0,t[A])()}},A.prototype.scope=function(){return this._scope},A.prototype.setActiveScope=function(A){this._scope=A},A.prototype.addFilter=function(A){this._filters.push(A)},A.prototype.notify=function(A){var t={errors:[],context:Object.assign({severity:"error"},this.scope().context(),A.context),params:A.params||{},environment:A.environment||{},session:A.session||{}};if("object"==typeof A&&void 0!==A.error||(A={error:A}),!A.error)return t.error=new Error("airbrake: got err="+JSON.stringify(A.error)+", wanted an Error"),Promise.resolve(t);var e=this._processor(A.error);t.errors.push(e);for(var r=0,n=this._filters;r<n.length;r++){var i=(0,n[r])(t);if(null===i)return t.error=new Error("airbrake: error is filtered"),Promise.resolve(t);t=i}return t.context||(t.context={}),t.context.language="JavaScript",this._sendNotice(t)},A.prototype._sendNotice=function(A){var t=function(A,t){var e=void 0===t?{}:t,r=e.maxLength,n=void 0===r?64e3:r,i=e.keysBlacklist,o=void 0===i?[]:i;if(A.errors)for(var s=0;s<A.errors.length;s++){var g=new B({keysBlacklist:o});A.errors[s]=g.truncate(A.errors[s])}for(var c="",a=["context","params","environment","session"],u=0;u<8;u++){for(var f={level:u,keysBlacklist:o},w=0,C=a;w<C.length;w++){(p=A[Q=C[w]])&&(A[Q]=h(p,f))}if((c=JSON.stringify(A)).length<n)return c}var d={json:c.slice(0,Math.floor(n/2))+"..."};a.push("errors");for(var l=0,E=a;l<E.length;l++){var Q,p;(p=A[Q=E[l]])&&(c=JSON.stringify(p),d[Q]=c.length)}var v=new Error("airbrake: notice exceeds max length and can't be truncated");throw v.params=d,v}(A,{keysBlacklist:this._opt.keysBlacklist});if(this._opt.reporter){if("function"==typeof this._opt.reporter)return this._opt.reporter(A);console.warn("airbrake: options.reporter must be a function")}var e={method:"POST",url:this._url,body:t};return this._requester(e).then((function(t){return A.id=t.json.id,A})).catch((function(t){return A.error=t,A}))},A.prototype.wrap=function(A,t){if(void 0===t&&(t=[]),A._airbrake)return A;var e=this,r=function(){var t=Array.prototype.slice.call(arguments),r=e._wrapArguments(t);try{return A.apply(this,r)}catch(A){throw e.notify({error:A,params:{arguments:t}}),this._ignoreNextWindowError(),A}};for(var n in A)A.hasOwnProperty(n)&&(r[n]=A[n]);for(var i=0,o=t;i<o.length;i++){n=o[i];A.hasOwnProperty(n)&&(r[n]=A[n])}return r._airbrake=!0,r.inner=A,r},A.prototype._wrapArguments=function(A){for(var t=0;t<A.length;t++){var e=A[t];"function"==typeof e&&(A[t]=this.wrap(e))}return A},A.prototype._ignoreNextWindowError=function(){},A.prototype.call=function(A){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=this.wrap(A);return r.apply(this,Array.prototype.slice.call(arguments,1))},A}(),K=function(){function A(A){this._notifier=A,this._routes=new W(A._opt),this._breakdowns=new N(A._opt)}return A.prototype.start=function(A,t,e,r){void 0===A&&(A=""),void 0===t&&(t=""),void 0===e&&(e=0),void 0===r&&(r="");var n=new j(A,t,e,r),i=this._notifier.scope().clone();return i.setContext({httpMethod:A,route:t}),i.setRouteMetric(n),this._notifier.setActiveScope(i),n},A.prototype.notify=function(A){A.end(),this._routes.notify(A),this._breakdowns.notify(A)},A}(),G=function(){function A(A){this._notifier=A,this._queues=new V(A._opt)}return A.prototype.start=function(A){var t=new T(A),e=this._notifier.scope().clone();return e.setContext({queue:A}),e.setQueueMetric(t),this._notifier.setActiveScope(e),t},A.prototype.notify=function(A){A.end(),this._queues.notify(A)},A}();function Z(A){return window.navigator&&window.navigator.userAgent&&(A.context.userAgent=window.navigator.userAgent),window.location&&(A.context.url=String(window.location),A.context.rootDirectory=window.location.protocol+"//"+window.location.host),A}var q=["debug","log","info","warn","error"];var _=["type","name","src"];function $(A){var t=function(A){return function(t){var e;try{e=t.target}catch(A){return}if(e){var r={type:t.type};try{r.target=function(A){var t=[],e=A;for(;e;){var r=AA(e);if(""!==r&&(t.push(r),t.length>10))break;e=e.parentNode}if(0===t.length)return String(A);return t.reverse().join(" > ")}(e)}catch(A){r.target="<"+String(A)+">"}A.scope().pushHistory(r)}}}(A);window.addEventListener&&(window.addEventListener("load",t),window.addEventListener("error",(function(A){"error"in A||t(A)}),!0)),"object"==typeof document&&document.addEventListener&&(document.addEventListener("DOMContentLoaded",t),document.addEventListener("click",t),document.addEventListener("keypress",t))}function AA(A){if(!A)return"";var t=[];if(A.tagName&&t.push(A.tagName.toLowerCase()),A.id&&(t.push("#"),t.push(A.id)),A.classList&&Array.from)t.push("."),t.push(Array.from(A.classList).join("."));else if(A.className){var e=function(A){if(A.split)return A.split(" ").join(".");if(A.baseVal&&A.baseVal.split)return A.baseVal.split(" ").join(".");return console.error("unsupported HTMLElement.className type",typeof A),""}(A.className);""!==e&&(t.push("."),t.push(e))}if(A.getAttribute)for(var r=0,n=_;r<n.length;r++){var i=n[r],o=A.getAttribute(i);o&&t.push("["+i+'="'+o+'"]')}return t.join("")}var tA="";function eA(){return document.location&&document.location.pathname}function rA(A,t){var e=t.indexOf("://");e>=0?(e=(t=t.slice(e+3)).indexOf("/"),t=e>=0?t.slice(e):"/"):"/"!==t.charAt(0)&&(t="/"+t),A.scope().pushHistory({type:"location",from:tA,to:t}),tA=t}var nA=function(A){function t(t){var e=A.call(this,t)||this;return e.offline=!1,e.todo=[],e._ignoreWindowError=0,e._ignoreNextXHR=0,e.addFilter(Z),window.addEventListener&&(e.onOnline=e.onOnline.bind(e),window.addEventListener("online",e.onOnline),e.onOffline=e.onOffline.bind(e),window.addEventListener("offline",e.onOffline),e.onUnhandledrejection=e.onUnhandledrejection.bind(e),window.addEventListener("unhandledrejection",e.onUnhandledrejection),e._onClose.push((function(){window.removeEventListener("online",e.onOnline),window.removeEventListener("offline",e.onOffline),window.removeEventListener("unhandledrejection",e.onUnhandledrejection)}))),e._opt.ignoreWindowError&&(t.instrumentation.onerror=!1),e._instrument(t.instrumentation),e}return g(t,A),t.prototype._instrument=function(A){var t,e,r;if(void 0===A&&(A={}),A.console=!((t=this._opt.environment)&&t.startsWith&&t.startsWith("dev")),iA(A.onerror)){var n=this,i=window.onerror;window.onerror=function(){i&&i.apply(this,arguments),n.onerror.apply(n,arguments)}}$(this),iA(A.fetch)&&"function"==typeof fetch&&(e=this,r=window.fetch,window.fetch=function(A,t){var n={type:"xhr",date:new Date};return n.method=t&&t.method?t.method:"GET","string"==typeof A?n.url=A:(n.method=A.method,n.url=A.url),e._ignoreNextXHR++,setTimeout((function(){return e._ignoreNextXHR--})),r.apply(this,arguments).then((function(A){return n.statusCode=A.status,n.duration=(new Date).getTime()-n.date.getTime(),e.scope().pushHistory(n),A})).catch((function(A){throw n.error=A,n.duration=(new Date).getTime()-n.date.getTime(),e.scope().pushHistory(n),A}))}),iA(A.history)&&"object"==typeof history&&function(A){tA=eA();var t=window.onpopstate;window.onpopstate=function(e){var r=eA();if(r&&rA(A,r),t)return t.apply(this,arguments)};var e=history.pushState;history.pushState=function(t,r,n){n&&rA(A,n.toString()),e.apply(this,arguments)}}(this),iA(A.console)&&"object"==typeof console&&function(A){for(var t=function(t){if(!(t in console))return"continue";var e=console[t],r=function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];e.apply(console,r),A.scope().pushHistory({type:"log",severity:t,arguments:r})};r.inner=e,console[t]=r},e=0,r=q;e<r.length;e++){t(r[e])}}(this),iA(A.xhr)&&"undefined"!=typeof XMLHttpRequest&&function(A){function t(t){var e=t.__state;e.statusCode=t.status,e.duration=(new Date).getTime()-e.date.getTime(),A.scope().pushHistory(e)}var e=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(t,r,n,i,o){0===A._ignoreNextXHR&&(this.__state={type:"xhr",method:t,url:r}),e.apply(this,arguments)};var r=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(A){var e=this.onreadystatechange;return this.onreadystatechange=function(A){if(4===this.readyState&&this.__state&&t(this),e)return e.apply(this,arguments)},this.__state&&(this.__state.date=new Date),r.apply(this,arguments)}}(this)},t.prototype.notify=function(t){var e=this;return this.offline?new Promise((function(A,r){for(e.todo.push({err:t,resolve:A,reject:r});e.todo.length>100;){var n=e.todo.shift();if(void 0===n)break;n.resolve({error:new Error("airbrake: offline queue is too large")})}})):A.prototype.notify.call(this,t)},t.prototype.onOnline=function(){this.offline=!1;for(var A=function(A){t.notify(A.err).then((function(t){A.resolve(t)}))},t=this,e=0,r=this.todo;e<r.length;e++){A(r[e])}this.todo=[]},t.prototype.onOffline=function(){this.offline=!0},t.prototype.onUnhandledrejection=function(A){var t=A.reason||A.detail&&A.detail.reason;if(t){var e=t.message||String(t);e.indexOf&&0===e.indexOf("airbrake: ")||this.notify(t)}},t.prototype.onerror=function(A,t,e,r,n){this._ignoreWindowError>0||(n?this.notify({error:n,context:{windowError:!0}}):t&&e&&this.notify({error:{message:A,fileName:t,lineNumber:e,columnNumber:r,noStack:!0},context:{windowError:!0}}))},t.prototype._ignoreNextWindowError=function(){var A=this;this._ignoreWindowError++,setTimeout((function(){return A._ignoreWindowError--}))},t}(U);function iA(A){return void 0===A||!0===A}t.a=new nA({projectId:254300,projectKey:"7f4296691831056d5b51ec5ed49d1a0c",environment:"production"})},function(A,t,e){"use strict";A.exports=function(A){var t=[];return t.toString=function(){return this.map((function(t){var e=function(A,t){var e=A[1]||"",r=A[3];if(!r)return e;if(t&&"function"==typeof btoa){var n=(o=r,s=btoa(unescape(encodeURIComponent(JSON.stringify(o)))),g="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),"/*# ".concat(g," */")),i=r.sources.map((function(A){return"/*# sourceURL=".concat(r.sourceRoot).concat(A," */")}));return[e].concat(i).concat([n]).join("\n")}var o,s,g;return[e].join("\n")}(t,A);return t[2]?"@media ".concat(t[2],"{").concat(e,"}"):e})).join("")},t.i=function(A,e){"string"==typeof A&&(A=[[null,A,""]]);for(var r={},n=0;n<this.length;n++){var i=this[n][0];null!=i&&(r[i]=!0)}for(var o=0;o<A.length;o++){var s=A[o];null!=s[0]&&r[s[0]]||(e&&!s[2]?s[2]=e:e&&(s[2]="(".concat(s[2],") and (").concat(e,")")),t.push(s))}},t}},function(A,t,e){var r,n,i;!function(e,o){"use strict";n=[],void 0===(i="function"==typeof(r=function(){function A(A){return A.charAt(0).toUpperCase()+A.substring(1)}function t(A){return function(){return this[A]}}var e=["isConstructor","isEval","isNative","isToplevel"],r=["columnNumber","lineNumber"],n=["fileName","functionName","source"],i=e.concat(r,n,["args"]);function o(t){if(t instanceof Object)for(var e=0;e<i.length;e++)t.hasOwnProperty(i[e])&&void 0!==t[i[e]]&&this["set"+A(i[e])](t[i[e]])}o.prototype={getArgs:function(){return this.args},setArgs:function(A){if("[object Array]"!==Object.prototype.toString.call(A))throw new TypeError("Args must be an Array");this.args=A},getEvalOrigin:function(){return this.evalOrigin},setEvalOrigin:function(A){if(A instanceof o)this.evalOrigin=A;else{if(!(A instanceof Object))throw new TypeError("Eval Origin must be an Object or StackFrame");this.evalOrigin=new o(A)}},toString:function(){var A=this.getFileName()||"",t=this.getLineNumber()||"",e=this.getColumnNumber()||"",r=this.getFunctionName()||"";return this.getIsEval()?A?"[eval] ("+A+":"+t+":"+e+")":"[eval]:"+t+":"+e:r?r+" ("+A+":"+t+":"+e+")":A+":"+t+":"+e}},o.fromString=function(A){var t=A.indexOf("("),e=A.lastIndexOf(")"),r=A.substring(0,t),n=A.substring(t+1,e).split(","),i=A.substring(e+1);if(0===i.indexOf("@"))var s=/@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(i,""),g=s[1],c=s[2],a=s[3];return new o({functionName:r,args:n||void 0,fileName:g,lineNumber:c||void 0,columnNumber:a||void 0})};for(var s=0;s<e.length;s++)o.prototype["get"+A(e[s])]=t(e[s]),o.prototype["set"+A(e[s])]=function(A){return function(t){this[A]=Boolean(t)}}(e[s]);for(var g=0;g<r.length;g++)o.prototype["get"+A(r[g])]=t(r[g]),o.prototype["set"+A(r[g])]=function(A){return function(t){if(e=t,isNaN(parseFloat(e))||!isFinite(e))throw new TypeError(A+" must be a Number");var e;this[A]=Number(t)}}(r[g]);for(var c=0;c<n.length;c++)o.prototype["get"+A(n[c])]=t(n[c]),o.prototype["set"+A(n[c])]=function(A){return function(t){this[A]=String(t)}}(n[c]);return o})?r.apply(t,n):r)||(A.exports=i)}()},function(A,t,e){var r=e(9).RBTree;function n(A,t,e){this.discrete=!1===A,this.delta=A||.01,this.K=void 0===t?25:t,this.CX=void 0===e?1.1:e,this.centroids=new r(i),this.nreset=0,this.reset()}function i(A,t){return A.mean>t.mean?1:A.mean<t.mean?-1:0}function o(A,t){return A.mean_cumn-t.mean_cumn}function s(A){this.config=A||{},this.mode=this.config.mode||"auto",n.call(this,"cont"===this.mode&&A.delta),this.digest_ratio=this.config.ratio||.9,this.digest_thresh=this.config.thresh||1e3,this.n_unique=0}n.prototype.reset=function(){this.centroids.clear(),this.n=0,this.nreset+=1,this.last_cumulate=0},n.prototype.size=function(){return this.centroids.size},n.prototype.toArray=function(A){var t=[];return A?(this._cumulate(!0),this.centroids.each((function(A){t.push(A)}))):this.centroids.each((function(A){t.push({mean:A.mean,n:A.n})})),t},n.prototype.summary=function(){return[(this.discrete?"exact ":"approximating ")+this.n+" samples using "+this.size()+" centroids","min = "+this.percentile(0),"Q1 = "+this.percentile(.25),"Q2 = "+this.percentile(.5),"Q3 = "+this.percentile(.75),"max = "+this.percentile(1)].join("\n")},n.prototype.push=function(A,t){t=t||1,A=Array.isArray(A)?A:[A];for(var e=0;e<A.length;e++)this._digest(A[e],t)},n.prototype.push_centroid=function(A){A=Array.isArray(A)?A:[A];for(var t=0;t<A.length;t++)this._digest(A[t].mean,A[t].n)},n.prototype._cumulate=function(A){if(!(this.n===this.last_cumulate||!A&&this.CX&&this.CX>this.n/this.last_cumulate)){var t=0;this.centroids.each((function(A){A.mean_cumn=t+A.n/2,t=A.cumn=t+A.n})),this.n=this.last_cumulate=t}},n.prototype.find_nearest=function(A){if(0===this.size())return null;var t=this.centroids.lowerBound({mean:A}),e=null===t.data()?t.prev():t.data();if(e.mean===A||this.discrete)return e;var r=t.prev();return r&&Math.abs(r.mean-A)<Math.abs(e.mean-A)?r:e},n.prototype._new_centroid=function(A,t,e){var r={mean:A,n:t,cumn:e};return this.centroids.insert(r),this.n+=t,r},n.prototype._addweight=function(A,t,e){t!==A.mean&&(A.mean+=e*(t-A.mean)/(A.n+e)),A.cumn+=e,A.mean_cumn+=e/2,A.n+=e,this.n+=e},n.prototype._digest=function(A,t){var e=this.centroids.min(),r=this.centroids.max(),n=this.find_nearest(A);if(n&&n.mean===A)this._addweight(n,A,t);else if(n===e)this._new_centroid(A,t,0);else if(n===r)this._new_centroid(A,t,this.n);else if(this.discrete)this._new_centroid(A,t,n.cumn);else{var i=n.mean_cumn/this.n;Math.floor(4*this.n*this.delta*i*(1-i))-n.n>=t?this._addweight(n,A,t):this._new_centroid(A,t,n.cumn)}this._cumulate(!1),!this.discrete&&this.K&&this.size()>this.K/this.delta&&this.compress()},n.prototype.bound_mean=function(A){var t=this.centroids.upperBound({mean:A}),e=t.prev();return[e,e.mean===A?e:t.next()]},n.prototype.p_rank=function(A){var t=(Array.isArray(A)?A:[A]).map(this._p_rank,this);return Array.isArray(A)?t:t[0]},n.prototype._p_rank=function(A){if(0!==this.size()){if(A<this.centroids.min().mean)return 0;if(A>this.centroids.max().mean)return 1;this._cumulate(!0);var t=this.bound_mean(A),e=t[0],r=t[1];if(this.discrete)return e.cumn/this.n;var n=e.mean_cumn;return e!==r&&(n+=(A-e.mean)*(r.mean_cumn-e.mean_cumn)/(r.mean-e.mean)),n/this.n}},n.prototype.bound_mean_cumn=function(A){this.centroids._comparator=o;var t=this.centroids.upperBound({mean_cumn:A});this.centroids._comparator=i;var e=t.prev();return[e,e&&e.mean_cumn===A?e:t.next()]},n.prototype.percentile=function(A){var t=(Array.isArray(A)?A:[A]).map(this._percentile,this);return Array.isArray(A)?t:t[0]},n.prototype._percentile=function(A){if(0!==this.size()){this._cumulate(!0);this.centroids.min(),this.centroids.max();var t=this.n*A,e=this.bound_mean_cumn(t),r=e[0],n=e[1];return n===r||null===r||null===n?(r||n).mean:this.discrete?t<=r.cumn?r.mean:n.mean:r.mean+(t-r.mean_cumn)*(n.mean-r.mean)/(n.mean_cumn-r.mean_cumn)}},n.prototype.compress=function(){if(!this.compressing){var A,t,e=this.toArray();for(this.reset(),this.compressing=!0;e.length>0;)this.push_centroid((A=e,t=void 0,t=Math.floor(Math.random()*A.length),A.splice(t,1)[0]));this._cumulate(!0),this.compressing=!1}},s.prototype=Object.create(n.prototype),s.prototype.constructor=s,s.prototype.push=function(A){n.prototype.push.call(this,A),this.check_continuous()},s.prototype._new_centroid=function(A,t,e){this.n_unique+=1,n.prototype._new_centroid.call(this,A,t,e)},s.prototype._addweight=function(A,t,e){1===A.n&&(this.n_unique-=1),n.prototype._addweight.call(this,A,t,e)},s.prototype.check_continuous=function(){return!("auto"!==this.mode||this.size()<this.digest_thresh)&&(this.n_unique/this.size()>this.digest_ratio&&(this.mode="cont",this.discrete=!1,this.delta=this.config.delta||.01,this.compress(),!0))},A.exports={TDigest:n,Digest:s}},function(A,t,e){A.exports={RBTree:e(10),BinTree:e(11)}},function(A,t,e){var r=e(2);function n(A){this.data=A,this.left=null,this.right=null,this.red=!0}function i(A){this._root=null,this._comparator=A,this.size=0}function o(A){return null!==A&&A.red}function s(A,t){var e=A.get_child(!t);return A.set_child(!t,e.get_child(t)),e.set_child(t,A),A.red=!0,e.red=!1,e}function g(A,t){return A.set_child(!t,s(A.get_child(!t),!t)),s(A,t)}n.prototype.get_child=function(A){return A?this.right:this.left},n.prototype.set_child=function(A,t){A?this.right=t:this.left=t},i.prototype=new r,i.prototype.insert=function(A){var t=!1;if(null===this._root)this._root=new n(A),t=!0,this.size++;else{var e=new n(void 0),r=0,i=0,c=null,a=e,u=null,B=this._root;for(a.right=this._root;;){if(null===B?(B=new n(A),u.set_child(r,B),t=!0,this.size++):o(B.left)&&o(B.right)&&(B.red=!0,B.left.red=!1,B.right.red=!1),o(B)&&o(u)){var h=a.right===c;B===u.get_child(i)?a.set_child(h,s(c,!i)):a.set_child(h,g(c,!i))}var f=this._comparator(B.data,A);if(0===f)break;i=r,r=f<0,null!==c&&(a=c),c=u,u=B,B=B.get_child(r)}this._root=e.right}return this._root.red=!1,t},i.prototype.remove=function(A){if(null===this._root)return!1;var t=new n(void 0),e=t;e.right=this._root;for(var r=null,i=null,c=null,a=1;null!==e.get_child(a);){var u=a;i=r,r=e,e=e.get_child(a);var B=this._comparator(A,e.data);if(a=B>0,0===B&&(c=e),!o(e)&&!o(e.get_child(a)))if(o(e.get_child(!a))){var h=s(e,a);r.set_child(u,h),r=h}else if(!o(e.get_child(!a))){var f=r.get_child(!u);if(null!==f)if(o(f.get_child(!u))||o(f.get_child(u))){var w=i.right===r;o(f.get_child(u))?i.set_child(w,g(r,u)):o(f.get_child(!u))&&i.set_child(w,s(r,u));var C=i.get_child(w);C.red=!0,e.red=!0,C.left.red=!1,C.right.red=!1}else r.red=!1,f.red=!0,e.red=!0}}return null!==c&&(c.data=e.data,r.set_child(r.right===e,e.get_child(null===e.left)),this.size--),this._root=t.right,null!==this._root&&(this._root.red=!1),null!==c},A.exports=i},function(A,t,e){var r=e(2);function n(A){this.data=A,this.left=null,this.right=null}function i(A){this._root=null,this._comparator=A,this.size=0}n.prototype.get_child=function(A){return A?this.right:this.left},n.prototype.set_child=function(A,t){A?this.right=t:this.left=t},i.prototype=new r,i.prototype.insert=function(A){if(null===this._root)return this._root=new n(A),this.size++,!0;for(var t=0,e=null,r=this._root;;){if(null===r)return r=new n(A),e.set_child(t,r),ret=!0,this.size++,!0;if(0===this._comparator(r.data,A))return!1;t=this._comparator(r.data,A)<0,e=r,r=r.get_child(t)}},i.prototype.remove=function(A){if(null===this._root)return!1;var t=new n(void 0),e=t;e.right=this._root;for(var r=null,i=null,o=1;null!==e.get_child(o);){r=e,e=e.get_child(o);var s=this._comparator(A,e.data);o=s>0,0===s&&(i=e)}return null!==i&&(i.data=e.data,r.set_child(r.right===e,e.get_child(null===e.left)),this._root=t.right,this.size--,!0)},A.exports=i},function(A,t,e){"use strict";var r,n={},i=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},o=function(){var A={};return function(t){if(void 0===A[t]){var e=document.querySelector(t);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(A){e=null}A[t]=e}return A[t]}}();function s(A,t){for(var e=[],r={},n=0;n<A.length;n++){var i=A[n],o=t.base?i[0]+t.base:i[0],s={css:i[1],media:i[2],sourceMap:i[3]};r[o]?r[o].parts.push(s):e.push(r[o]={id:o,parts:[s]})}return e}function g(A,t){for(var e=0;e<A.length;e++){var r=A[e],i=n[r.id],o=0;if(i){for(i.refs++;o<i.parts.length;o++)i.parts[o](r.parts[o]);for(;o<r.parts.length;o++)i.parts.push(C(r.parts[o],t))}else{for(var s=[];o<r.parts.length;o++)s.push(C(r.parts[o],t));n[r.id]={id:r.id,refs:1,parts:s}}}}function c(A){var t=document.createElement("style");if(void 0===A.attributes.nonce){var r=e.nc;r&&(A.attributes.nonce=r)}if(Object.keys(A.attributes).forEach((function(e){t.setAttribute(e,A.attributes[e])})),"function"==typeof A.insert)A.insert(t);else{var n=o(A.insert||"head");if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(t)}return t}var a,u=(a=[],function(A,t){return a[A]=t,a.filter(Boolean).join("\n")});function B(A,t,e,r){var n=e?"":r.css;if(A.styleSheet)A.styleSheet.cssText=u(t,n);else{var i=document.createTextNode(n),o=A.childNodes;o[t]&&A.removeChild(o[t]),o.length?A.insertBefore(i,o[t]):A.appendChild(i)}}function h(A,t,e){var r=e.css,n=e.media,i=e.sourceMap;if(n&&A.setAttribute("media",n),i&&btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),A.styleSheet)A.styleSheet.cssText=r;else{for(;A.firstChild;)A.removeChild(A.firstChild);A.appendChild(document.createTextNode(r))}}var f=null,w=0;function C(A,t){var e,r,n;if(t.singleton){var i=w++;e=f||(f=c(t)),r=B.bind(null,e,i,!1),n=B.bind(null,e,i,!0)}else e=c(t),r=h.bind(null,e,t),n=function(){!function(A){if(null===A.parentNode)return!1;A.parentNode.removeChild(A)}(e)};return r(A),function(t){if(t){if(t.css===A.css&&t.media===A.media&&t.sourceMap===A.sourceMap)return;r(A=t)}else n()}}A.exports=function(A,t){(t=t||{}).attributes="object"==typeof t.attributes?t.attributes:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=i());var e=s(A,t);return g(e,t),function(A){for(var r=[],i=0;i<e.length;i++){var o=e[i],c=n[o.id];c&&(c.refs--,r.push(c))}A&&g(s(A,t),t);for(var a=0;a<r.length;a++){var u=r[a];if(0===u.refs){for(var B=0;B<u.parts.length;B++)u.parts[B]();delete n[u.id]}}}}},function(module,exports,__webpack_require__){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<div class="c-copier">\n <div class="c-session">\n <button type="button" class="o-hidden c-session__authorize">Authorize</button>\n <button type="button" class="o-hidden c-session__logout">Log Out</button>\n </div>\n\n <div class="o-hidden c-copier__content">\n <div class="c-copier__folder-name">\n '+(null==(__t=link.innerHTML)?"":__t)+'\n </div>\n\n <a href="'+(null==(__t=link.href)?"":__t)+'" class="c-copier__start-link">\n <img src="'+(null==(__t=__webpack_require__(19).default)?"":__t)+'" alt="Start download" width="32" class="c-copier__start">\n </a>\n\n <img src="'+(null==(__t=__webpack_require__(20).default)?"":__t)+'" alt="Download in progress" width="32" class="o-hidden c-copier__progress">\n <img src="'+(null==(__t=__webpack_require__(21).default)?"":__t)+'" alt="Download finished" width="32" class="o-hidden c-copier__finished">\n\n <a href="'+(null==(__t=link.dataset.preview)?"":__t)+'" target="_blank">\n <img src="'+(null==(__t=__webpack_require__(22).default)?"":__t)+'" alt="Preview folder" width="22" class="c-copier__preview">\n </a>\n </div>\n\n <div class="c-copier__message">Loading Google Drive Bulk Downloader...</div>\n</div>\n';return __p}},,,,function(A,t,e){var r=e(18);"string"==typeof r&&(r=[[A.i,r,""]]);var n={insert:"head",singleton:!1};e(12)(r,n);r.locals&&(A.exports=r.locals)},function(A,t,e){(A.exports=e(6)(!1)).push([A.i,".o-error{color:#f76 !important}.c-container{color:#444;height:100vh;width:60rem}.c-session{float:right}.c-session button{margin:0;padding:0.2rem 0.4rem}.c-copier{border:1px solid #bbb;margin:1rem 0;padding:1rem}.c-copier__message{color:#aaa}.c-copier__start{filter:brightness(95%)}.c-copier__folder-name{display:inline-block}.c-copier img{vertical-align:middle}.c-copier a{text-decoration:none}.c-copier .o-hidden{display:none}\n",""])},function(A,t,e){"use strict";e.r(t),t.default="data:image/png;base64,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5je/+V860AEAAFBFuv4omgCQtvS+973v/83nDnoAAABURX79++u//uv/MixCYQwBplQMDQYAACA2Gl9oNR2AlMqv/dqv/TsHRgAAAGKQX9/+q3/1r34xLELL6ACk9HQFAgAAUBaaWlgIAkCiIxAEAACgXQj8aAeGABOdn/3Zn516gvDLp7AJAAAAWuKV16HTU9gMCyrfGUMJAAAAwOn89E//9P+cJEnHRz/60T8Kq6DtCQABAAAAIGKGAAMAAABAxASAAAAAABAxASAAAAAAREwACAAAAAAREwACAAAAQMQEgAAAAAAQMQEgAAAAAERMAAgAAAAAERMAAgAAAEDEBIAAAAAAEDEBIAAAAABETAAIAAAAABETAAIAAABAxASAAAAAABAxASAAAAAAREwACAAAAAAREwACAAAAQMQEgAAAAAAQMQEgAAAAAERMAAgAAAAAERMAAgAAAEDEBIAAAAAAEDEBIAAAAABETAAIAAAAABETAAIAAABAxASAAAAAABAxASAAAAAAREwACAAAAAAREwACAAAAQMQEgAAAAAAQMQEgAAAAAERMAAgAAAAAERMAAgAAAEDEBIAAAAAAEDEBIAAAAABETAAIAAAAABETAAIAAABAxASAAAAAABAxASAAAAAAREwACAAAAAAREwACAAAAQMQEgAAAAAAQMQEgAAAAAERMAAgAAAAAERMAAgAAAEDEBIAAAAAAEDEBIAAAAABETAAIAAAAABETAAIAAABAxASAAAAAABAxASAAAAAAREwACAAAAAAREwACAAAAQMQEgAAAAAAQMQEgAAAAAERMAAgAAAAAERMAAgAAAEDEBIAAAAAAEDEBIAAAAABETAAIAAAAABETAAIAAABAxASAAAAAABAxASAAAAAAREwACAAAAAAREwACAAAAQMQEgAAAAAAQrY6O/x/MscxH6sEn7QAAAABJRU5ErkJggg=="},function(A,t,e){"use strict";e.r(t),t.default="data:image/png;base64,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"},function(A,t,e){"use strict";e.r(t),t.default="data:image/png;base64,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"},function(A,t,e){"use strict";e.r(t),t.default="data:image/png;base64,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"},,function(A,t,e){"use strict";e.r(t);var r=e(5),n=e(1),i=e(0);class o{static copy(A,t){return new Promise((e,r)=>{o.gApiCopyFolder(A,t).then(t=>{const n=t.result,i=[];A.children.forEach(A=>{A.children?i.push(o.copy(A,n)):i.push(o.gApiCopyFile(A,n).then(()=>{console.log(`copied file ${A.name}`)},r))}),Promise.all(i).then(()=>{e(),console.log(`copied folder ${A.name}`)},r)},r)})}static gApiCopyFolder(A,t){return Object(i.a)(()=>gapi.client.drive.files.create({resource:{name:A.name,mimeType:"application/vnd.google-apps.folder",parents:t.id?[t.id]:null},fields:"id, name"}))}static gApiCopyFile(A,t){return Object(i.a)(()=>gapi.client.drive.files.copy({fileId:A.id,resource:{name:A.name,parents:[t.id]},fields:"id, name"}))}}e(17);var s=e(13),g=e.n(s);document.querySelectorAll(".c-magic-link").forEach(A=>{A.insertAdjacentHTML("afterEnd",g()({link:A})),A.remove()}),document.querySelectorAll(".c-copier__start-link").forEach(A=>{A.addEventListener("click",t=>{t.preventDefault(),Object(n.a)().setOAuthToken(gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().access_token).setCallback(t=>{if(t.action!==google.picker.Action.PICKED)return;const e=A.href.split("//"),n=e[e.length-1],i=decodeURIComponent(escape(window.atob(n))),s=A.closest(".c-copier"),g=s.querySelector(".c-copier__message"),c=s.querySelector(".c-copier__start"),a=s.querySelector(".c-copier__progress"),u=s.querySelector(".c-copier__finished");g.innerHTML="Copying files, check your Google Drive folder...",g.classList.remove("o-hidden"),c.classList.add("o-hidden"),a.classList.remove("o-hidden"),o.copy(JSON.parse(i),{id:t.docs[0].id}).then(()=>{a.classList.add("o-hidden"),u.classList.remove("o-hidden"),g.innerHTML="Done!"}).catch(A=>{console.error("Caught error at top level:"),console.error(A),r.a.notify(JSON.stringify(A.result.error)),g.innerHTML="We're having some issues copying the files to your Google Drive,<br>please use the preview link to open them in your web browser",g.classList.add("o-error")})}).build().setVisible(!0)})}),gapi.load("client:auth2",()=>{Object(n.b)("client"),gapi.load("picker")}),document.body.style.display="block"}]);
//# # sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NhbGxfd2l0aF9yZXRyeS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvZ2FwaS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmludHJlZXMvbGliL3RyZWViYXNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lcnJvci1zdGFjay1wYXJzZXIvZXJyb3Itc3RhY2stcGFyc2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jcm9zcy1mZXRjaC9kaXN0L2Jyb3dzZXItcG9ueWZpbGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhaXJicmFrZS9icm93c2VyL2Rpc3QvYWlyYnJha2UuZXNtLmpzIiwid2VicGFjazovLy8uL3NyYy9haXJicmFrZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zdGFja2ZyYW1lL3N0YWNrZnJhbWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3RkaWdlc3QvdGRpZ2VzdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmludHJlZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JpbnRyZWVzL2xpYi9yYnRyZWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JpbnRyZWVzL2xpYi9iaW50cmVlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvd2lkZ2V0LmVqcyIsIndlYnBhY2s6Ly8vLi9zcmMvc3R5bGVzaGVldHMvY2xpZW50LnNjc3M/MmQyYiIsIndlYnBhY2s6Ly8vLi9zcmMvc3R5bGVzaGVldHMvY2xpZW50LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2Fzc2V0cy9mb2xkZXItc3RhcnQucG5nIiwid2VicGFjazovLy8uL3NyYy9hc3NldHMvZm9sZGVyLXByb2dyZXNzLnBuZyIsIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ZvbGRlci1maW5pc2hlZC5wbmciLCJ3ZWJwYWNrOi8vLy4vc3JjL2Fzc2V0cy9mb2xkZXItcHJldmlldy5wbmciLCJ3ZWJwYWNrOi8vLy4vc3JjL21vZGVscy9nZHJpdmVfY29waWVyLmpzIiwid2VicGFjazovLy8uL3NyYy9jbGllbnQuanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJCQUNLX09GRiIsIlJBTkRfTUFYIiwiY2FsbFdpdGhSZXRyeSIsImJvZHkiLCJhdHRlbXB0IiwiY29uc29sZSIsImxvZyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwidGhlbiIsInJlc3BvbnNlIiwiZXJyb3IiLCJyZXN1bHQiLCJlcnJvcnMiLCJyZWFzb24iLCJzZXRUaW1lb3V0IiwibWF4IiwiTWF0aCIsImNlaWwiLCJyYW5kb20iLCJyYW5kIiwiQ0xJRU5UX0lEIiwiQVBJX0tFWSIsIkFQUF9JRCIsImNyZWF0ZUdBcGlQaWNrZXJCdWlsZGVyIiwiZ29vZ2xlIiwicGlja2VyIiwiUGlja2VyQnVpbGRlciIsInNldFRpdGxlIiwiZW5hYmxlRmVhdHVyZSIsIkZlYXR1cmUiLCJOQVZfSElEREVOIiwiTUlORV9PTkxZIiwic2V0QXBwSWQiLCJhZGRWaWV3IiwiRG9jc1ZpZXciLCJzZXRJbmNsdWRlRm9sZGVycyIsInNldFNlbGVjdEZvbGRlckVuYWJsZWQiLCJzZXRQYXJlbnQiLCJzZXREZXZlbG9wZXJLZXkiLCJ1cGRhdGVTaWduaW5TdGF0dXMiLCJpc1NpZ25lZEluIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsImNvcGllciIsImF1dGhvcml6ZUJ1dHRvbiIsInF1ZXJ5U2VsZWN0b3IiLCJzaWdub3V0QnV0dG9uIiwiY29udGVudCIsIm1lc3NhZ2UiLCJjbGFzc0xpc3QiLCJhZGQiLCJyZW1vdmUiLCJpbm5lckhUTUwiLCJpbml0R0FwaUNsaWVudCIsImdhcGkiLCJjbGllbnQiLCJpbml0IiwiYXBpS2V5IiwiY2xpZW50SWQiLCJkaXNjb3ZlcnlEb2NzIiwic2NvcGUiLCJwcm9tcHQiLCJhdXRoMiIsImdldEF1dGhJbnN0YW5jZSIsImxpc3RlbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJzaWduSW4iLCJzaWduT3V0IiwiVHJlZUJhc2UiLCJJdGVyYXRvciIsInRyZWUiLCJ0aGlzIiwiX3RyZWUiLCJfYW5jZXN0b3JzIiwiX2N1cnNvciIsImNsZWFyIiwiX3Jvb3QiLCJzaXplIiwiZmluZCIsImRhdGEiLCJyZXMiLCJfY29tcGFyYXRvciIsImdldF9jaGlsZCIsImZpbmRJdGVyIiwiaXRlciIsIml0ZXJhdG9yIiwicHVzaCIsImxvd2VyQm91bmQiLCJpdGVtIiwiY3VyIiwiY21wIiwibGVuZ3RoIiwidXBwZXJCb3VuZCIsIm5leHQiLCJtaW4iLCJsZWZ0IiwicmlnaHQiLCJlYWNoIiwiY2IiLCJpdCIsInJlYWNoIiwicHJldiIsInJvb3QiLCJfbWluTm9kZSIsInNhdmUiLCJwb3AiLCJfbWF4Tm9kZSIsInN0YXJ0IiwiU3RhY2tGcmFtZSIsIkZJUkVGT1hfU0FGQVJJX1NUQUNLX1JFR0VYUCIsIkNIUk9NRV9JRV9TVEFDS19SRUdFWFAiLCJTQUZBUklfTkFUSVZFX0NPREVfUkVHRVhQIiwicGFyc2UiLCJzdGFja3RyYWNlIiwicGFyc2VPcGVyYSIsInN0YWNrIiwibWF0Y2giLCJwYXJzZVY4T3JJRSIsInBhcnNlRkZPclNhZmFyaSIsIkVycm9yIiwiZXh0cmFjdExvY2F0aW9uIiwidXJsTGlrZSIsImluZGV4T2YiLCJwYXJ0cyIsImV4ZWMiLCJyZXBsYWNlIiwidW5kZWZpbmVkIiwic3BsaXQiLCJmaWx0ZXIiLCJsaW5lIiwibWFwIiwic2FuaXRpemVkTGluZSIsImxvY2F0aW9uIiwidG9rZW5zIiwic2xpY2UiLCJsb2NhdGlvblBhcnRzIiwiZnVuY3Rpb25OYW1lIiwiam9pbiIsImZpbGVOYW1lIiwibGluZU51bWJlciIsImNvbHVtbk51bWJlciIsInNvdXJjZSIsImZ1bmN0aW9uTmFtZVJlZ2V4IiwibWF0Y2hlcyIsImUiLCJwYXJzZU9wZXJhOSIsInBhcnNlT3BlcmExMSIsInBhcnNlT3BlcmExMCIsImxpbmVSRSIsImxpbmVzIiwibGVuIiwiYXJnc1JhdyIsImZ1bmN0aW9uQ2FsbCIsInNoaWZ0IiwiYXJncyIsIl9fc2VsZl9fIiwiRiIsImZldGNoIiwiRE9NRXhjZXB0aW9uIiwic2VsZiIsInN1cHBvcnQiLCJzZWFyY2hQYXJhbXMiLCJpdGVyYWJsZSIsImJsb2IiLCJCbG9iIiwiZm9ybURhdGEiLCJhcnJheUJ1ZmZlciIsInZpZXdDbGFzc2VzIiwiaXNBcnJheUJ1ZmZlclZpZXciLCJBcnJheUJ1ZmZlciIsImlzVmlldyIsIm9iaiIsInRvU3RyaW5nIiwibm9ybWFsaXplTmFtZSIsIlN0cmluZyIsInRlc3QiLCJUeXBlRXJyb3IiLCJ0b0xvd2VyQ2FzZSIsIm5vcm1hbGl6ZVZhbHVlIiwiaXRlcmF0b3JGb3IiLCJpdGVtcyIsImRvbmUiLCJIZWFkZXJzIiwiaGVhZGVycyIsImFwcGVuZCIsIkFycmF5IiwiaXNBcnJheSIsImhlYWRlciIsImdldE93blByb3BlcnR5TmFtZXMiLCJjb25zdW1lZCIsImJvZHlVc2VkIiwiZmlsZVJlYWRlclJlYWR5IiwicmVhZGVyIiwib25sb2FkIiwib25lcnJvciIsInJlYWRCbG9iQXNBcnJheUJ1ZmZlciIsIkZpbGVSZWFkZXIiLCJwcm9taXNlIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJidWZmZXJDbG9uZSIsImJ1ZiIsInZpZXciLCJVaW50OEFycmF5IiwiYnl0ZUxlbmd0aCIsInNldCIsImJ1ZmZlciIsIkJvZHkiLCJfaW5pdEJvZHkiLCJfYm9keUluaXQiLCJfYm9keVRleHQiLCJpc1Byb3RvdHlwZU9mIiwiX2JvZHlCbG9iIiwiRm9ybURhdGEiLCJfYm9keUZvcm1EYXRhIiwiVVJMU2VhcmNoUGFyYW1zIiwiRGF0YVZpZXciLCJfYm9keUFycmF5QnVmZmVyIiwidHlwZSIsInJlamVjdGVkIiwidGV4dCIsInJlYWRBc1RleHQiLCJjaGFycyIsImZyb21DaGFyQ29kZSIsInJlYWRBcnJheUJ1ZmZlckFzVGV4dCIsImRlY29kZSIsImpzb24iLCJKU09OIiwib2xkVmFsdWUiLCJoYXMiLCJjYWxsYmFjayIsInRoaXNBcmciLCJrZXlzIiwidmFsdWVzIiwiZW50cmllcyIsIm1ldGhvZHMiLCJSZXF1ZXN0IiwiaW5wdXQiLCJvcHRpb25zIiwibWV0aG9kIiwidXBjYXNlZCIsInVybCIsImNyZWRlbnRpYWxzIiwic2lnbmFsIiwidG9VcHBlckNhc2UiLCJyZWZlcnJlciIsImZvcm0iLCJ0cmltIiwiYnl0ZXMiLCJkZWNvZGVVUklDb21wb25lbnQiLCJSZXNwb25zZSIsImJvZHlJbml0Iiwic3RhdHVzIiwib2siLCJzdGF0dXNUZXh0IiwiY2xvbmUiLCJyZWRpcmVjdFN0YXR1c2VzIiwicmVkaXJlY3QiLCJSYW5nZUVycm9yIiwiZXJyIiwiY29uc3RydWN0b3IiLCJyZXF1ZXN0IiwiYWJvcnRlZCIsInhociIsIlhNTEh0dHBSZXF1ZXN0IiwiYWJvcnRYaHIiLCJhYm9ydCIsInJhd0hlYWRlcnMiLCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiLCJyZXNwb25zZVVSTCIsInJlc3BvbnNlVGV4dCIsIm9udGltZW91dCIsIm9uYWJvcnQiLCJvcGVuIiwid2l0aENyZWRlbnRpYWxzIiwicmVzcG9uc2VUeXBlIiwic2V0UmVxdWVzdEhlYWRlciIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsInJlYWR5U3RhdGUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2VuZCIsInBvbHlmaWxsIiwiZGVmYXVsdCIsImV4dGVuZFN0YXRpY3MiLCJiIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJfX2V4dGVuZHMiLCJfXyIsIl9fYXNzaWduIiwiYXNzaWduIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJNQVhfT0JKX0xFTkdUSCIsInNjYWxlIiwibnVtIiwibGV2ZWwiLCJUcnVuY2F0b3IiLCJvcHRzIiwibWF4U3RyaW5nTGVuZ3RoIiwibWF4T2JqZWN0TGVuZ3RoIiwibWF4QXJyYXlMZW5ndGgiLCJtYXhEZXB0aCIsImtleXNCbGFja2xpc3QiLCJzZWVuIiwidHJ1bmNhdGUiLCJkZXB0aCIsInRydW5jYXRlU3RyaW5nIiwiQm9vbGVhbiIsIk51bWJlciIsIkRhdGUiLCJSZWdFeHAiLCJnZXRQYXRoIiwib2JqZWN0VHlwZSIsInRydW5jYXRlQXJyYXkiLCJ0cnVuY2F0ZU9iamVjdCIsInNhdmVkIiwiX190eXBlIiwiaW5kZXgiLCJwYXRoIiwic3ViIiwiZ2V0QXR0ciIsInVuc2hpZnQiLCJhcnIiLCJkc3QiLCJlbCIsImlzQmxhY2tsaXN0ZWQiLCJhdHRyIiwiXyIsIl9pIiwia2V5c0JsYWNrbGlzdF8xIiwidiIsIlNwYW4iLCJtZXRyaWMiLCJzdGFydFRpbWUiLCJfZHVyIiwiX2xldmVsIiwiX21ldHJpYyIsImVuZCIsImVuZFRpbWUiLCJnZXRUaW1lIiwiX2luY0dyb3VwIiwiX3BhdXNlIiwiX3BhdXNlZCIsIm5vdyIsIl9yZXN1bWUiLCJCYXNlTWV0cmljIiwiX3NwYW5zIiwiX2dyb3VwcyIsImlzUmVjb3JkaW5nIiwic3RhcnRTcGFuIiwic3BhbiIsImVuZFNwYW4iLCJtcyIsIl9kdXJhdGlvbiIsIk5vb3BNZXRyaWMiLCJfbmFtZSIsIl9zdGFydFRpbWUiLCJfbXMiLCJTY29wZSIsIl9ub29wTWV0cmljIiwiX2NvbnRleHQiLCJfaGlzdG9yeU1heExlbiIsIl9oaXN0b3J5Iiwic2V0Q29udGV4dCIsImNvbnRleHQiLCJjdHgiLCJoaXN0b3J5IiwicHVzaEhpc3RvcnkiLCJzdGF0ZSIsIl9pc0R1cFN0YXRlIiwiX2xhc3RSZWNvcmQiLCJkYXRlIiwicm91dGVNZXRyaWMiLCJfcm91dGVNZXRyaWMiLCJzZXRSb3V0ZU1ldHJpYyIsInF1ZXVlTWV0cmljIiwiX3F1ZXVlTWV0cmljIiwic2V0UXVldWVNZXRyaWMiLCJoYXNDb25zb2xlIiwid2FybiIsInBhcnNlRXJyIiwiZXNwUHJvY2Vzc29yIiwiYmFja3RyYWNlIiwibm9TdGFjayIsImZ1bmN0aW9uIiwiZmlsZSIsImNvbHVtbiIsImZyYW1lc18yIiwiZmFrZUVyciIsImZyYW1lc18xIiwiZnJhbWUiLCJyZSIsImFuZ3VsYXJNZXNzYWdlRmlsdGVyIiwibm90aWNlIiwiSUdOT1JFRF9NRVNTQUdFUyIsImlnbm9yZU5vaXNlRmlsdGVyIiwicmUkMSIsInVuY2F1Z2h0TWVzc2FnZUZpbHRlciIsInVuYXV0aG9yaXplZCIsImlwUmF0ZUxpbWl0ZWQiLCJyYXRlTGltaXRSZXNldCIsInJlcSIsIm9wdCIsInJlc3AiLCJwYXJzZUludCIsIm1ha2VSZXF1ZXN0ZXIiLCJhcGkiLCJyYXRlTGltaXRSZXNldCQxIiwidGltZW91dCIsInN0YXR1c0NvZGUiLCJoIiwicmVxdWVzdCQxIiwidGRpZ2VzdCIsIm1ha2VSZXF1ZXN0ZXIkMSIsImhhc1RkaWdlc3QiLCJURGlnZXN0U3RhdCIsImNvdW50Iiwic3VtIiwic3Vtc3EiLCJfdGQiLCJEaWdlc3QiLCJ0b0pTT04iLCJ0ZGlnZXN0Q2VudHJvaWRzIiwiVERpZ2VzdFN0YXRHcm91cHMiLCJfc3VwZXIiLCJfdGhpcyIsImdyb3VwcyIsImFkZEdyb3VwcyIsInRvdGFsTXMiLCJuYW1lXzEiLCJhZGRHcm91cCIsInN0YXQiLCJ0ZCIsIm1lYW5zIiwiY291bnRzIiwiY2VudHJvaWRzIiwibWVhbiIsIlJvdXRlTWV0cmljIiwicm91dGUiLCJjb250ZW50VHlwZSIsIlJvdXRlc1N0YXRzIiwiX20iLCJfb3B0IiwiX3VybCIsImhvc3QiLCJwcm9qZWN0SWQiLCJwcm9qZWN0S2V5IiwiX3JlcXVlc3RlciIsIm5vdGlmeSIsImZsb29yIiwidGltZSIsImtleVN0ciIsInN0cmluZ2lmeSIsIl90aW1lciIsIl9mbHVzaCIsInJvdXRlcyIsIm91dEpTT04iLCJlbnZpcm9ubWVudCIsIl9yZXNwIiwiY2F0Y2giLCJSb3V0ZXNCcmVha2Rvd25zIiwiX3Jlc3BvbnNlVHlwZSIsIlF1ZXVlTWV0cmljIiwicXVldWUiLCJRdWV1ZXNTdGF0cyIsInEiLCJxdWV1ZXMiLCJRdWVyeUluZm8iLCJxdWVyeSIsImZ1bmMiLCJRdWVyaWVzU3RhdHMiLCJxdWVyaWVzIiwiQmFzZU5vdGlmaWVyIiwibGFzdE5vdGljZUpTT04iLCJfZmlsdGVycyIsIl9zY29wZSIsIl9vbkNsb3NlIiwiX3Byb2Nlc3NvciIsInByb2Nlc3NvciIsImFkZEZpbHRlciIsImNsZWFyVGltZW91dCIsIm5vdGlmaWVyIiwidmVyc2lvbiIsIlJvdXRlcyIsIlF1ZXVlcyIsImNsb3NlIiwiX2EiLCJmbiIsInNldEFjdGl2ZVNjb3BlIiwic2V2ZXJpdHkiLCJwYXJhbXMiLCJzZXNzaW9uIiwibGFuZ3VhZ2UiLCJfc2VuZE5vdGljZSIsIl9iIiwiX2MiLCJtYXhMZW5ndGgiLCJfZCIsImtleXNfMSIsIl9lIiwia2V5c18yIiwianNvbmlmeU5vdGljZSIsInJlcG9ydGVyIiwiaWQiLCJ3cmFwIiwicHJvcHMiLCJfYWlyYnJha2UiLCJhaXJicmFrZVdyYXBwZXIiLCJmbkFyZ3MiLCJ3cmFwcGVkQXJncyIsIl93cmFwQXJndW1lbnRzIiwiX2lnbm9yZU5leHRXaW5kb3dFcnJvciIsInByb3AiLCJwcm9wc18xIiwiaW5uZXIiLCJhcmciLCJfYXJncyIsIndyYXBwZXIiLCJfbm90aWZpZXIiLCJfcm91dGVzIiwiX2JyZWFrZG93bnMiLCJodHRwTWV0aG9kIiwiX3F1ZXVlcyIsIndpbmRvd0ZpbHRlciIsIndpbmRvdyIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsInJvb3REaXJlY3RvcnkiLCJwcm90b2NvbCIsIkNPTlNPTEVfTUVUSE9EUyIsImVsZW1BdHRycyIsImluc3RydW1lbnRET00iLCJoYW5kbGVyIiwiZXZlbnQiLCJ0YXJnZXQiLCJlbGVtIiwicGFyZW50IiwiZWxlbU5hbWUiLCJwYXJlbnROb2RlIiwicmV2ZXJzZSIsImVsZW1QYXRoIiwibWFrZUV2ZW50SGFuZGxlciIsInRhZ05hbWUiLCJmcm9tIiwiY2xhc3NOYW1lIiwic3RyIiwiYmFzZVZhbCIsImNsYXNzTmFtZVN0cmluZyIsImdldEF0dHJpYnV0ZSIsImVsZW1BdHRyc18xIiwibGFzdExvY2F0aW9uIiwiZ2V0Q3VycmVudExvY2F0aW9uIiwicGF0aG5hbWUiLCJyZWNvcmRMb2NhdGlvbiIsImNoYXJBdCIsInRvIiwiTm90aWZpZXIiLCJvZmZsaW5lIiwidG9kbyIsIl9pZ25vcmVXaW5kb3dFcnJvciIsIl9pZ25vcmVOZXh0WEhSIiwib25PbmxpbmUiLCJvbk9mZmxpbmUiLCJvblVuaGFuZGxlZHJlamVjdGlvbiIsImlnbm9yZVdpbmRvd0Vycm9yIiwiaW5zdHJ1bWVudGF0aW9uIiwiX2luc3RydW1lbnQiLCJlbnYiLCJvbGRGZXRjaCIsInN0YXJ0c1dpdGgiLCJlbmFibGVkIiwic2VsZl8xIiwib2xkSGFuZGxlcl8xIiwiZHVyYXRpb24iLCJvbGRGbiIsIm9ucG9wc3RhdGUiLCJfZXZlbnQiLCJvbGRQdXNoU3RhdGUiLCJwdXNoU3RhdGUiLCJfc3RhdGUiLCJfdGl0bGUiLCJpbnN0cnVtZW50TG9jYXRpb24iLCJfbG9vcF8xIiwibmV3Rm4iLCJDT05TT0xFX01FVEhPRFNfMSIsImluc3RydW1lbnRDb25zb2xlIiwicmVjb3JkUmVxIiwiX19zdGF0ZSIsIm9sZE9wZW4iLCJfYXN5bmMiLCJfdXNlciIsIl9wYXNzd29yZCIsIm9sZFNlbmQiLCJfZGF0YSIsIl9ldiIsImluc3RydW1lbnRYSFIiLCJqIiwidGhpc18xIiwiZGV0YWlsIiwibXNnIiwiZmlsZW5hbWUiLCJ3aW5kb3dFcnJvciIsInVzZVNvdXJjZU1hcCIsImxpc3QiLCJjc3NNYXBwaW5nIiwiYnRvYSIsInNvdXJjZU1hcHBpbmciLCJzb3VyY2VNYXAiLCJiYXNlNjQiLCJ1bmVzY2FwZSIsImVuY29kZVVSSUNvbXBvbmVudCIsImNvbmNhdCIsInNvdXJjZVVSTHMiLCJzb3VyY2VzIiwic291cmNlUm9vdCIsImNzc1dpdGhNYXBwaW5nVG9TdHJpbmciLCJtZWRpYVF1ZXJ5IiwiYWxyZWFkeUltcG9ydGVkTW9kdWxlcyIsIl9jYXBpdGFsaXplIiwic3Vic3RyaW5nIiwiX2dldHRlciIsImJvb2xlYW5Qcm9wcyIsIm51bWVyaWNQcm9wcyIsInN0cmluZ1Byb3BzIiwiZ2V0QXJncyIsInNldEFyZ3MiLCJnZXRFdmFsT3JpZ2luIiwiZXZhbE9yaWdpbiIsInNldEV2YWxPcmlnaW4iLCJnZXRGaWxlTmFtZSIsImdldExpbmVOdW1iZXIiLCJnZXRDb2x1bW5OdW1iZXIiLCJnZXRGdW5jdGlvbk5hbWUiLCJnZXRJc0V2YWwiLCJmcm9tU3RyaW5nIiwiYXJnc1N0YXJ0SW5kZXgiLCJhcmdzRW5kSW5kZXgiLCJsYXN0SW5kZXhPZiIsImxvY2F0aW9uU3RyaW5nIiwiaXNOYU4iLCJwYXJzZUZsb2F0IiwiaXNGaW5pdGUiLCJrIiwiUkJUcmVlIiwiVERpZ2VzdCIsImRlbHRhIiwiSyIsIkNYIiwiZGlzY3JldGUiLCJjb21wYXJlX2NlbnRyb2lkX21lYW5zIiwibnJlc2V0IiwicmVzZXQiLCJhIiwiY29tcGFyZV9jZW50cm9pZF9tZWFuX2N1bW5zIiwibWVhbl9jdW1uIiwiY29uZmlnIiwiZGlnZXN0X3JhdGlvIiwicmF0aW8iLCJkaWdlc3RfdGhyZXNoIiwidGhyZXNoIiwibl91bmlxdWUiLCJsYXN0X2N1bXVsYXRlIiwidG9BcnJheSIsImV2ZXJ5dGhpbmciLCJfY3VtdWxhdGUiLCJzdW1tYXJ5IiwicGVyY2VudGlsZSIsIngiLCJfZGlnZXN0IiwicHVzaF9jZW50cm9pZCIsImV4YWN0IiwiY3VtbiIsImZpbmRfbmVhcmVzdCIsImFicyIsIl9uZXdfY2VudHJvaWQiLCJpbnNlcnQiLCJfYWRkd2VpZ2h0IiwibmVhcmVzdCIsImNvbXByZXNzIiwiYm91bmRfbWVhbiIsImxvd2VyIiwicF9yYW5rIiwieF9vcl94bGlzdCIsInBzIiwiX3BfcmFuayIsImJvdW5kIiwidXBwZXIiLCJib3VuZF9tZWFuX2N1bW4iLCJwX29yX3BsaXN0IiwicXMiLCJfcGVyY2VudGlsZSIsImNvbXByZXNzaW5nIiwiY2hvaWNlcyIsImlkeCIsInBvaW50cyIsInNwbGljZSIsImNoZWNrX2NvbnRpbnVvdXMiLCJCaW5UcmVlIiwiTm9kZSIsInJlZCIsImNvbXBhcmF0b3IiLCJpc19yZWQiLCJub2RlIiwic2luZ2xlX3JvdGF0ZSIsImRpciIsInNldF9jaGlsZCIsImRvdWJsZV9yb3RhdGUiLCJ2YWwiLCJyZXQiLCJoZWFkIiwibGFzdCIsImdwIiwiZ2dwIiwiZGlyMiIsImZvdW5kIiwic3IiLCJzaWJsaW5nIiwiZ3BjIiwibWVtbyIsInN0eWxlc0luRG9tIiwiaXNPbGRJRSIsImFsbCIsImF0b2IiLCJnZXRUYXJnZXQiLCJzdHlsZVRhcmdldCIsIkhUTUxJRnJhbWVFbGVtZW50IiwiY29udGVudERvY3VtZW50IiwibGlzdFRvU3R5bGVzIiwic3R5bGVzIiwibmV3U3R5bGVzIiwiYmFzZSIsInBhcnQiLCJjc3MiLCJtZWRpYSIsImFkZFN0eWxlc1RvRG9tIiwiZG9tU3R5bGUiLCJyZWZzIiwiYWRkU3R5bGUiLCJpbnNlcnRTdHlsZUVsZW1lbnQiLCJzdHlsZSIsImNyZWF0ZUVsZW1lbnQiLCJhdHRyaWJ1dGVzIiwibm9uY2UiLCJzZXRBdHRyaWJ1dGUiLCJhcHBlbmRDaGlsZCIsInRleHRTdG9yZSIsInJlcGxhY2VUZXh0IiwicmVwbGFjZW1lbnQiLCJhcHBseVRvU2luZ2xldG9uVGFnIiwic3R5bGVTaGVldCIsImNzc1RleHQiLCJjc3NOb2RlIiwiY3JlYXRlVGV4dE5vZGUiLCJjaGlsZE5vZGVzIiwicmVtb3ZlQ2hpbGQiLCJpbnNlcnRCZWZvcmUiLCJhcHBseVRvVGFnIiwiZmlyc3RDaGlsZCIsInNpbmdsZXRvbiIsInNpbmdsZXRvbkNvdW50ZXIiLCJ1cGRhdGUiLCJzdHlsZUluZGV4IiwicmVtb3ZlU3R5bGVFbGVtZW50IiwibmV3T2JqIiwibmV3TGlzdCIsIm1heVJlbW92ZSIsIl9kb21TdHlsZSIsIl9fdCIsIl9fcCIsImxpbmsiLCJkYXRhc2V0IiwibG9jYWxzIiwiR0RyaXZlQ29waWVyIiwiZm9sZGVyIiwiZ0FwaUNvcHlGb2xkZXIiLCJwcm9taXNlcyIsImNoaWxkcmVuIiwiY2hpbGQiLCJjb3B5IiwiZ0FwaUNvcHlGaWxlIiwiZHJpdmUiLCJmaWxlcyIsInJlc291cmNlIiwibWltZVR5cGUiLCJwYXJlbnRzIiwiZmllbGRzIiwiZmlsZUlkIiwiaW5zZXJ0QWRqYWNlbnRIVE1MIiwid2lkZ2V0VGVtcGxhdGUiLCJldnQiLCJwcmV2ZW50RGVmYXVsdCIsInNldE9BdXRoVG9rZW4iLCJjdXJyZW50VXNlciIsImdldEF1dGhSZXNwb25zZSIsImFjY2Vzc190b2tlbiIsInNldENhbGxiYWNrIiwiYWN0aW9uIiwiQWN0aW9uIiwiUElDS0VEIiwiaHJlZiIsImVuY29kZWQiLCJkZWNvZGVkIiwiZXNjYXBlIiwiY2xvc2VzdCIsInN0YXJ0SWNvbiIsInByb2dyZXNzSWNvbiIsImZpbmlzaGVkSWNvbiIsImRvY3MiLCJhaXJicmFrZSIsImJ1aWxkIiwic2V0VmlzaWJsZSIsImxvYWQiLCJkaXNwbGF5Il0sIm1hcHBpbmdzIjoiYUFDRSxJQUFJQSxFQUFtQixHQUd2QixTQUFTQyxFQUFvQkMsR0FHNUIsR0FBR0YsRUFBaUJFLEdBQ25CLE9BQU9GLEVBQWlCRSxHQUFVQyxRQUduQyxJQUFJQyxFQUFTSixFQUFpQkUsR0FBWSxDQUN6Q0csRUFBR0gsRUFDSEksR0FBRyxFQUNISCxRQUFTLElB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QUFRLGFBQ3RCbnZCLEVBQVVMLEVBQU9FLGNBQWMsc0JBQy9CdXZCLEVBQVl6dkIsRUFBT0UsY0FBYyxvQkFDakN3dkIsRUFBZTF2QixFQUFPRSxjQUFjLHVCQUNwQ3l2QixFQUFlM3ZCLEVBQU9FLGNBQWMsdUJBRTFDRyxFQUFRSSxVQUFZLG1EQUNwQkosRUFBUUMsVUFBVUUsT0FBTyxZQUN6Qml2QixFQUFVbnZCLFVBQVVDLElBQUksWUFDeEJtdkIsRUFBYXB2QixVQUFVRSxPQUFPLFlBRTlCaXRCLEVBQWFNLEtBQUt4aUIsS0FBS2xILE1BQU1pckIsR0FBVSxDQUFFMVMsR0FBSXhhLEVBQUt3dEIsS0FBSyxHQUFHaFQsS0FDdkRoZixLQUFLLEtBQ0o4eEIsRUFBYXB2QixVQUFVQyxJQUFJLFlBQzNCb3ZCLEVBQWFydkIsVUFBVUUsT0FBTyxZQUM5QkgsRUFBUUksVUFBWSxVQUVyQnVaLE1BQU1sYyxJQUNMUCxRQUFRTyxNQUFNLDhCQUNkUCxRQUFRTyxNQUFNQSxHQUNkK3hCLElBQVN4VyxPQUFPOU4sS0FBS2tPLFVBQVUzYixFQUFNQyxPQUFPRCxRQUM1Q3VDLEVBQVFJLFVBQ04sbUlBRUZKLEVBQVFDLFVBQVVDLElBQUksZUFHM0J1dkIsUUFFSUMsWUFBVyxPQUl0QnB2QixLQUFLcXZCLEtBQUssZUFBZ0IsS0FDeEJ0dkIsWUFBZSxVQUNmQyxLQUFLcXZCLEtBQUssWUFLZG53QixTQUFTeEMsS0FBS211QixNQUFNeUUsUUFBVSIsImZpbGUiOiJjbGllbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMjQpO1xuIiwiY29uc3QgQkFDS19PRkYgPSAxMDAwO1xuY29uc3QgUkFORF9NQVggPSA1MDA7XG5cbmZ1bmN0aW9uIHJhbmQobWF4KSB7XG4gIHJldHVybiBNYXRoLmNlaWwobWF4ICogTWF0aC5yYW5kb20oKSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNhbGxXaXRoUmV0cnkoYm9keSwgYXR0ZW1wdCA9IDApIHtcbiAgaWYgKGF0dGVtcHQgPiAwKSB7XG4gICAgY29uc29sZS5sb2coYHJldHJ5IGF0dGVtcHQgJHthdHRlbXB0fWApO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBib2R5KCkudGhlbihcbiAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICBjb25zdCByYXRlRXJyb3IgPVxuICAgICAgICAgIGVycm9yICYmXG4gICAgICAgICAgZXJyb3IucmVzdWx0ICYmXG4gICAgICAgICAgZXJyb3IucmVzdWx0LmVycm9yICYmXG4gICAgICAgICAgZXJyb3IucmVzdWx0LmVycm9yLmVycm9ycyAmJlxuICAgICAgICAgIGVycm9yLnJlc3VsdC5lcnJvci5lcnJvcnNbMF0gJiZcbiAgICAgICAgICBlcnJvci5yZXN1bHQuZXJyb3IuZXJyb3JzWzBdLnJlYXNvbiA9PT0gJ3VzZXJSYXRlTGltaXRFeGNlZWRlZCc7XG5cbiAgICAgICAgaWYgKHJhdGVFcnJvciAmJiBhdHRlbXB0IDw9IDUpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoY2FsbFdpdGhSZXRyeShib2R5LCBhdHRlbXB0ICsgMSkpO1xuICAgICAgICAgIH0sIChhdHRlbXB0ICsgMSkgKiBCQUNLX09GRiArIHJhbmQoUkFORF9NQVgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfSk7XG59XG4iLCJjb25zdCBDTElFTlRfSUQgPVxuICAnNDU5NjA4OTM5MjY0LTA4N2ZvbTZzMG1kcHI5aHRyZHUxY2EwcDBtbTE1OTZhLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tJztcbmNvbnN0IEFQSV9LRVkgPSAnQUl6YVN5QmF2RUFTUUVDa2ZNNllfbGpaZThnQ21qSUFyMVRvbkQwJztcbmNvbnN0IEFQUF9JRCA9ICc0NTk2MDg5MzkyNjQnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlR0FwaVBpY2tlckJ1aWxkZXIoKSB7XG4gIHJldHVybiBuZXcgZ29vZ2xlLnBpY2tlci5QaWNrZXJCdWlsZGVyKClcbiAgICAuc2V0VGl0bGUoJ1NlbGVjdCBhIGZvbGRlciB0byBjb3B5IGZpbGVzIGludG8nKVxuICAgIC5lbmFibGVGZWF0dXJlKGdvb2dsZS5waWNrZXIuRmVhdHVyZS5OQVZfSElEREVOKVxuICAgIC5lbmFibGVGZWF0dXJlKGdvb2dsZS5waWNrZXIuRmVhdHVyZS5NSU5FX09OTFkpXG4gICAgLnNldEFwcElkKEFQUF9JRClcbiAgICAuYWRkVmlldyhcbiAgICAgIG5ldyBnb29nbGUucGlja2VyLkRvY3NWaWV3KClcbiAgICAgICAgLnNldEluY2x1ZGVGb2xkZXJzKHRydWUpXG4gICAgICAgIC5zZXRTZWxlY3RGb2xkZXJFbmFibGVkKHRydWUpXG4gICAgICAgIC5zZXRQYXJlbnQoJ3Jvb3QnKVxuICAgIClcbiAgICAuc2V0RGV2ZWxvcGVyS2V5KEFQSV9LRVkpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVTaWduaW5TdGF0dXMoaXNTaWduZWRJbikge1xuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYy1jb3BpZXInKS5mb3JFYWNoKGNvcGllciA9PiB7XG4gICAgY29uc3QgYXV0aG9yaXplQnV0dG9uID0gY29waWVyLnF1ZXJ5U2VsZWN0b3IoJy5jLXNlc3Npb25fX2F1dGhvcml6ZScpO1xuICAgIGNvbnN0IHNpZ25vdXRCdXR0b24gPSBjb3BpZXIucXVlcnlTZWxlY3RvcignLmMtc2Vzc2lvbl9fbG9nb3V0Jyk7XG5cbiAgICBjb25zdCBjb250ZW50ID0gY29waWVyLnF1ZXJ5U2VsZWN0b3IoJy5jLWNvcGllcl9fY29udGVudCcpO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjb3BpZXIucXVlcnlTZWxlY3RvcignLmMtY29waWVyX19tZXNzYWdlJyk7XG5cbiAgICBpZiAoaXNTaWduZWRJbikge1xuICAgICAgYXV0aG9yaXplQnV0dG9uLmNsYXNzTGlzdC5hZGQoJ28taGlkZGVuJyk7XG4gICAgICBzaWdub3V0QnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ28taGlkZGVuJyk7XG4gICAgICBjb250ZW50LmNsYXNzTGlzdC5yZW1vdmUoJ28taGlkZGVuJyk7XG5cbiAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gJyc7XG4gICAgICBtZXNzYWdlLmNsYXNzTGlzdC5hZGQoJ28taGlkZGVuJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF1dGhvcml6ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdvLWhpZGRlbicpO1xuICAgICAgc2lnbm91dEJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdvLWhpZGRlbicpO1xuICAgICAgY29udGVudC5jbGFzc0xpc3QuYWRkKCdvLWhpZGRlbicpO1xuXG4gICAgICBtZXNzYWdlLmlubmVySFRNTCA9XG4gICAgICAgICdQbGVhc2UgYXV0aG9yaXplIGZpbGUgY29weWluZyBieSBjbGlja2luZyB0aGUgXCJBdXRob3JpemVcIiBidXR0b24nO1xuICAgICAgbWVzc2FnZS5jbGFzc0xpc3QucmVtb3ZlKCdvLWhpZGRlbicpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0R0FwaUNsaWVudChtb2RlKSB7XG4gIGdhcGkuY2xpZW50XG4gICAgLmluaXQoe1xuICAgICAgYXBpS2V5OiBBUElfS0VZLFxuICAgICAgY2xpZW50SWQ6IENMSUVOVF9JRCxcbiAgICAgIGRpc2NvdmVyeURvY3M6IFsnaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vZGlzY292ZXJ5L3YxL2FwaXMvZHJpdmUvdjMvcmVzdCddLFxuICAgICAgc2NvcGU6XG4gICAgICAgICdodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2RyaXZlLmZpbGUgaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9kcml2ZS5yZWFkb25seScsXG4gICAgICBwcm9tcHQ6ICdjb25zZW50J1xuICAgIH0pXG4gICAgLnRoZW4oKCkgPT4ge1xuICAgICAgLy8gb25seSBob29rIHVwIHRoZSBsb2dpbiAvIGxvZ291dCBidXR0b25zIGlmIHdlJ3JlIGluIGNsaWVudCBtb2RlXG4gICAgICBpZiAobW9kZSAhPT0gJ2NsaWVudCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBsaXN0ZW4gZm9yIHNpZ24taW4gc3RhdGUgY2hhbmdlc1xuICAgICAgZ2FwaS5hdXRoMi5nZXRBdXRoSW5zdGFuY2UoKS5pc1NpZ25lZEluLmxpc3Rlbih1cGRhdGVTaWduaW5TdGF0dXMpO1xuXG4gICAgICAvLyBoYW5kbGUgdGhlIGluaXRpYWwgc2lnbi1pbiBzdGF0ZVxuICAgICAgdXBkYXRlU2lnbmluU3RhdHVzKGdhcGkuYXV0aDIuZ2V0QXV0aEluc3RhbmNlKCkuaXNTaWduZWRJbi5nZXQoKSk7XG5cbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jLXNlc3Npb25fX2F1dGhvcml6ZScpLmZvckVhY2goYXV0aG9yaXplQnV0dG9uID0+IHtcbiAgICAgICAgYXV0aG9yaXplQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGdhcGkuYXV0aDIuZ2V0QXV0aEluc3RhbmNlKCkuc2lnbkluKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jLXNlc3Npb25fX2xvZ291dCcpLmZvckVhY2goc2lnbm91dEJ1dHRvbiA9PiB7XG4gICAgICAgIHNpZ25vdXRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZ2FwaS5hdXRoMi5nZXRBdXRoSW5zdGFuY2UoKS5zaWduT3V0KCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG59XG4iLCJcbmZ1bmN0aW9uIFRyZWVCYXNlKCkge31cblxuLy8gcmVtb3ZlcyBhbGwgbm9kZXMgZnJvbSB0aGUgdHJlZVxuVHJlZUJhc2UucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5fcm9vdCA9IG51bGw7XG4gICAgdGhpcy5zaXplID0gMDtcbn07XG5cbi8vIHJldHVybnMgbm9kZSBkYXRhIGlmIGZvdW5kLCBudWxsIG90aGVyd2lzZVxuVHJlZUJhc2UucHJvdG90eXBlLmZpbmQgPSBmdW5jdGlvbihkYXRhKSB7XG4gICAgdmFyIHJlcyA9IHRoaXMuX3Jvb3Q7XG5cbiAgICB3aGlsZShyZXMgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIGMgPSB0aGlzLl9jb21wYXJhdG9yKGRhdGEsIHJlcy5kYXRhKTtcbiAgICAgICAgaWYoYyA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcy5kYXRhO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzID0gcmVzLmdldF9jaGlsZChjID4gMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbi8vIHJldHVybnMgaXRlcmF0b3IgdG8gbm9kZSBpZiBmb3VuZCwgbnVsbCBvdGhlcndpc2VcblRyZWVCYXNlLnByb3RvdHlwZS5maW5kSXRlciA9IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICB2YXIgcmVzID0gdGhpcy5fcm9vdDtcbiAgICB2YXIgaXRlciA9IHRoaXMuaXRlcmF0b3IoKTtcblxuICAgIHdoaWxlKHJlcyAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgYyA9IHRoaXMuX2NvbXBhcmF0b3IoZGF0YSwgcmVzLmRhdGEpO1xuICAgICAgICBpZihjID09PSAwKSB7XG4gICAgICAgICAgICBpdGVyLl9jdXJzb3IgPSByZXM7XG4gICAgICAgICAgICByZXR1cm4gaXRlcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGl0ZXIuX2FuY2VzdG9ycy5wdXNoKHJlcyk7XG4gICAgICAgICAgICByZXMgPSByZXMuZ2V0X2NoaWxkKGMgPiAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufTtcblxuLy8gUmV0dXJucyBhbiBpdGVyYXRvciB0byB0aGUgdHJlZSBub2RlIGF0IG9yIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBpdGVtXG5UcmVlQmFzZS5wcm90b3R5cGUubG93ZXJCb3VuZCA9IGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICB2YXIgY3VyID0gdGhpcy5fcm9vdDtcbiAgICB2YXIgaXRlciA9IHRoaXMuaXRlcmF0b3IoKTtcbiAgICB2YXIgY21wID0gdGhpcy5fY29tcGFyYXRvcjtcblxuICAgIHdoaWxlKGN1ciAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgYyA9IGNtcChpdGVtLCBjdXIuZGF0YSk7XG4gICAgICAgIGlmKGMgPT09IDApIHtcbiAgICAgICAgICAgIGl0ZXIuX2N1cnNvciA9IGN1cjtcbiAgICAgICAgICAgIHJldHVybiBpdGVyO1xuICAgICAgICB9XG4gICAgICAgIGl0ZXIuX2FuY2VzdG9ycy5wdXNoKGN1cik7XG4gICAgICAgIGN1ciA9IGN1ci5nZXRfY2hpbGQoYyA+IDApO1xuICAgIH1cblxuICAgIGZvcih2YXIgaT1pdGVyLl9hbmNlc3RvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgY3VyID0gaXRlci5fYW5jZXN0b3JzW2ldO1xuICAgICAgICBpZihjbXAoaXRlbSwgY3VyLmRhdGEpIDwgMCkge1xuICAgICAgICAgICAgaXRlci5fY3Vyc29yID0gY3VyO1xuICAgICAgICAgICAgaXRlci5fYW5jZXN0b3JzLmxlbmd0aCA9IGk7XG4gICAgICAgICAgICByZXR1cm4gaXRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGl0ZXIuX2FuY2VzdG9ycy5sZW5ndGggPSAwO1xuICAgIHJldHVybiBpdGVyO1xufTtcblxuLy8gUmV0dXJucyBhbiBpdGVyYXRvciB0byB0aGUgdHJlZSBub2RlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBpdGVtXG5UcmVlQmFzZS5wcm90b3R5cGUudXBwZXJCb3VuZCA9IGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICB2YXIgaXRlciA9IHRoaXMubG93ZXJCb3VuZChpdGVtKTtcbiAgICB2YXIgY21wID0gdGhpcy5fY29tcGFyYXRvcjtcblxuICAgIHdoaWxlKGl0ZXIuZGF0YSgpICE9PSBudWxsICYmIGNtcChpdGVyLmRhdGEoKSwgaXRlbSkgPT09IDApIHtcbiAgICAgICAgaXRlci5uZXh0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZXI7XG59O1xuXG4vLyByZXR1cm5zIG51bGwgaWYgdHJlZSBpcyBlbXB0eVxuVHJlZUJhc2UucHJvdG90eXBlLm1pbiA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciByZXMgPSB0aGlzLl9yb290O1xuICAgIGlmKHJlcyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB3aGlsZShyZXMubGVmdCAhPT0gbnVsbCkge1xuICAgICAgICByZXMgPSByZXMubGVmdDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzLmRhdGE7XG59O1xuXG4vLyByZXR1cm5zIG51bGwgaWYgdHJlZSBpcyBlbXB0eVxuVHJlZUJhc2UucHJvdG90eXBlLm1heCA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciByZXMgPSB0aGlzLl9yb290O1xuICAgIGlmKHJlcyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB3aGlsZShyZXMucmlnaHQgIT09IG51bGwpIHtcbiAgICAgICAgcmVzID0gcmVzLnJpZ2h0O1xuICAgIH1cblxuICAgIHJldHVybiByZXMuZGF0YTtcbn07XG5cbi8vIHJldHVybnMgYSBudWxsIGl0ZXJhdG9yXG4vLyBjYWxsIG5leHQoKSBvciBwcmV2KCkgdG8gcG9pbnQgdG8gYW4gZWxlbWVudFxuVHJlZUJhc2UucHJvdG90eXBlLml0ZXJhdG9yID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBJdGVyYXRvcih0aGlzKTtcbn07XG5cbi8vIGNhbGxzIGNiIG9uIGVhY2ggbm9kZSdzIGRhdGEsIGluIG9yZGVyXG5UcmVlQmFzZS5wcm90b3R5cGUuZWFjaCA9IGZ1bmN0aW9uKGNiKSB7XG4gICAgdmFyIGl0PXRoaXMuaXRlcmF0b3IoKSwgZGF0YTtcbiAgICB3aGlsZSgoZGF0YSA9IGl0Lm5leHQoKSkgIT09IG51bGwpIHtcbiAgICAgICAgY2IoZGF0YSk7XG4gICAgfVxufTtcblxuLy8gY2FsbHMgY2Igb24gZWFjaCBub2RlJ3MgZGF0YSwgaW4gcmV2ZXJzZSBvcmRlclxuVHJlZUJhc2UucHJvdG90eXBlLnJlYWNoID0gZnVuY3Rpb24oY2IpIHtcbiAgICB2YXIgaXQ9dGhpcy5pdGVyYXRvcigpLCBkYXRhO1xuICAgIHdoaWxlKChkYXRhID0gaXQucHJldigpKSAhPT0gbnVsbCkge1xuICAgICAgICBjYihkYXRhKTtcbiAgICB9XG59O1xuXG5cbmZ1bmN0aW9uIEl0ZXJhdG9yKHRyZWUpIHtcbiAgICB0aGlzLl90cmVlID0gdHJlZTtcbiAgICB0aGlzLl9hbmNlc3RvcnMgPSBbXTtcbiAgICB0aGlzLl9jdXJzb3IgPSBudWxsO1xufVxuXG5JdGVyYXRvci5wcm90b3R5cGUuZGF0YSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJzb3IgIT09IG51bGwgPyB0aGlzLl9jdXJzb3IuZGF0YSA6IG51bGw7XG59O1xuXG4vLyBpZiBudWxsLWl0ZXJhdG9yLCByZXR1cm5zIGZpcnN0IG5vZGVcbi8vIG90aGVyd2lzZSwgcmV0dXJucyBuZXh0IG5vZGVcbkl0ZXJhdG9yLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24oKSB7XG4gICAgaWYodGhpcy5fY3Vyc29yID09PSBudWxsKSB7XG4gICAgICAgIHZhciByb290ID0gdGhpcy5fdHJlZS5fcm9vdDtcbiAgICAgICAgaWYocm9vdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fbWluTm9kZShyb290KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYodGhpcy5fY3Vyc29yLnJpZ2h0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBubyBncmVhdGVyIG5vZGUgaW4gc3VidHJlZSwgZ28gdXAgdG8gcGFyZW50XG4gICAgICAgICAgICAvLyBpZiBjb21pbmcgZnJvbSBhIHJpZ2h0IGNoaWxkLCBjb250aW51ZSB1cCB0aGUgc3RhY2tcbiAgICAgICAgICAgIHZhciBzYXZlO1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIHNhdmUgPSB0aGlzLl9jdXJzb3I7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5fYW5jZXN0b3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJzb3IgPSB0aGlzLl9hbmNlc3RvcnMucG9wKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJzb3IgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IHdoaWxlKHRoaXMuX2N1cnNvci5yaWdodCA9PT0gc2F2ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBnZXQgdGhlIG5leHQgbm9kZSBmcm9tIHRoZSBzdWJ0cmVlXG4gICAgICAgICAgICB0aGlzLl9hbmNlc3RvcnMucHVzaCh0aGlzLl9jdXJzb3IpO1xuICAgICAgICAgICAgdGhpcy5fbWluTm9kZSh0aGlzLl9jdXJzb3IucmlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jdXJzb3IgIT09IG51bGwgPyB0aGlzLl9jdXJzb3IuZGF0YSA6IG51bGw7XG59O1xuXG4vLyBpZiBudWxsLWl0ZXJhdG9yLCByZXR1cm5zIGxhc3Qgbm9kZVxuLy8gb3RoZXJ3aXNlLCByZXR1cm5zIHByZXZpb3VzIG5vZGVcbkl0ZXJhdG9yLnByb3RvdHlwZS5wcmV2ID0gZnVuY3Rpb24oKSB7XG4gICAgaWYodGhpcy5fY3Vyc29yID09PSBudWxsKSB7XG4gICAgICAgIHZhciByb290ID0gdGhpcy5fdHJlZS5fcm9vdDtcbiAgICAgICAgaWYocm9vdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fbWF4Tm9kZShyb290KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaWYodGhpcy5fY3Vyc29yLmxlZnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBzYXZlO1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIHNhdmUgPSB0aGlzLl9jdXJzb3I7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5fYW5jZXN0b3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJzb3IgPSB0aGlzLl9hbmNlc3RvcnMucG9wKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJzb3IgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IHdoaWxlKHRoaXMuX2N1cnNvci5sZWZ0ID09PSBzYXZlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2FuY2VzdG9ycy5wdXNoKHRoaXMuX2N1cnNvcik7XG4gICAgICAgICAgICB0aGlzLl9tYXhOb2RlKHRoaXMuX2N1cnNvci5sZWZ0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY3Vyc29yICE9PSBudWxsID8gdGhpcy5fY3Vyc29yLmRhdGEgOiBudWxsO1xufTtcblxuSXRlcmF0b3IucHJvdG90eXBlLl9taW5Ob2RlID0gZnVuY3Rpb24oc3RhcnQpIHtcbiAgICB3aGlsZShzdGFydC5sZWZ0ICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuX2FuY2VzdG9ycy5wdXNoKHN0YXJ0KTtcbiAgICAgICAgc3RhcnQgPSBzdGFydC5sZWZ0O1xuICAgIH1cbiAgICB0aGlzLl9jdXJzb3IgPSBzdGFydDtcbn07XG5cbkl0ZXJhdG9yLnByb3RvdHlwZS5fbWF4Tm9kZSA9IGZ1bmN0aW9uKHN0YXJ0KSB7XG4gICAgd2hpbGUoc3RhcnQucmlnaHQgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5fYW5jZXN0b3JzLnB1c2goc3RhcnQpO1xuICAgICAgICBzdGFydCA9IHN0YXJ0LnJpZ2h0O1xuICAgIH1cbiAgICB0aGlzLl9jdXJzb3IgPSBzdGFydDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gVHJlZUJhc2U7XG5cbiIsIihmdW5jdGlvbihyb290LCBmYWN0b3J5KSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuICAgIC8vIFVuaXZlcnNhbCBNb2R1bGUgRGVmaW5pdGlvbiAoVU1EKSB0byBzdXBwb3J0IEFNRCwgQ29tbW9uSlMvTm9kZS5qcywgUmhpbm8sIGFuZCBicm93c2Vycy5cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuICAgICAgICBkZWZpbmUoJ2Vycm9yLXN0YWNrLXBhcnNlcicsIFsnc3RhY2tmcmFtZSddLCBmYWN0b3J5KTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZSgnc3RhY2tmcmFtZScpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByb290LkVycm9yU3RhY2tQYXJzZXIgPSBmYWN0b3J5KHJvb3QuU3RhY2tGcmFtZSk7XG4gICAgfVxufSh0aGlzLCBmdW5jdGlvbiBFcnJvclN0YWNrUGFyc2VyKFN0YWNrRnJhbWUpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgRklSRUZPWF9TQUZBUklfU1RBQ0tfUkVHRVhQID0gLyhefEApXFxTK1xcOlxcZCsvO1xuICAgIHZhciBDSFJPTUVfSUVfU1RBQ0tfUkVHRVhQID0gL15cXHMqYXQgLiooXFxTK1xcOlxcZCt8XFwobmF0aXZlXFwpKS9tO1xuICAgIHZhciBTQUZBUklfTkFUSVZFX0NPREVfUkVHRVhQID0gL14oZXZhbEApPyhcXFtuYXRpdmUgY29kZVxcXSk/JC87XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogR2l2ZW4gYW4gRXJyb3Igb2JqZWN0LCBleHRyYWN0IHRoZSBtb3N0IGluZm9ybWF0aW9uIGZyb20gaXQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBwYXJhbSB7RXJyb3J9IGVycm9yIG9iamVjdFxuICAgICAgICAgKiBAcmV0dXJuIHtBcnJheX0gb2YgU3RhY2tGcmFtZXNcbiAgICAgICAgICovXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiBFcnJvclN0YWNrUGFyc2VyJCRwYXJzZShlcnJvcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBlcnJvci5zdGFja3RyYWNlICE9PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgZXJyb3JbJ29wZXJhI3NvdXJjZWxvYyddICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlT3BlcmEoZXJyb3IpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChlcnJvci5zdGFjayAmJiBlcnJvci5zdGFjay5tYXRjaChDSFJPTUVfSUVfU1RBQ0tfUkVHRVhQKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlVjhPcklFKGVycm9yKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXJyb3Iuc3RhY2spIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUZGT3JTYWZhcmkoZXJyb3IpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBwYXJzZSBnaXZlbiBFcnJvciBvYmplY3QnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICAvLyBTZXBhcmF0ZSBsaW5lIGFuZCBjb2x1bW4gbnVtYmVycyBmcm9tIGEgc3RyaW5nIG9mIHRoZSBmb3JtOiAoVVJJOkxpbmU6Q29sdW1uKVxuICAgICAgICBleHRyYWN0TG9jYXRpb246IGZ1bmN0aW9uIEVycm9yU3RhY2tQYXJzZXIkJGV4dHJhY3RMb2NhdGlvbih1cmxMaWtlKSB7XG4gICAgICAgICAgICAvLyBGYWlsLWZhc3QgYnV0IHJldHVybiBsb2NhdGlvbnMgbGlrZSBcIihuYXRpdmUpXCJcbiAgICAgICAgICAgIGlmICh1cmxMaWtlLmluZGV4T2YoJzonKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW3VybExpa2VdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgcmVnRXhwID0gLyguKz8pKD86XFw6KFxcZCspKT8oPzpcXDooXFxkKykpPyQvO1xuICAgICAgICAgICAgdmFyIHBhcnRzID0gcmVnRXhwLmV4ZWModXJsTGlrZS5yZXBsYWNlKC9bXFwoXFwpXS9nLCAnJykpO1xuICAgICAgICAgICAgcmV0dXJuIFtwYXJ0c1sxXSwgcGFydHNbMl0gfHwgdW5kZWZpbmVkLCBwYXJ0c1szXSB8fCB1bmRlZmluZWRdO1xuICAgICAgICB9LFxuXG4gICAgICAgIHBhcnNlVjhPcklFOiBmdW5jdGlvbiBFcnJvclN0YWNrUGFyc2VyJCRwYXJzZVY4T3JJRShlcnJvcikge1xuICAgICAgICAgICAgdmFyIGZpbHRlcmVkID0gZXJyb3Iuc3RhY2suc3BsaXQoJ1xcbicpLmZpbHRlcihmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbGluZS5tYXRjaChDSFJPTUVfSUVfU1RBQ0tfUkVHRVhQKTtcbiAgICAgICAgICAgIH0sIHRoaXMpO1xuXG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyZWQubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgICAgICAgICBpZiAobGluZS5pbmRleE9mKCcoZXZhbCAnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRocm93IGF3YXkgZXZhbCBpbmZvcm1hdGlvbiB1bnRpbCB3ZSBpbXBsZW1lbnQgc3RhY2t0cmFjZS5qcy9zdGFja2ZyYW1lIzhcbiAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgvZXZhbCBjb2RlL2csICdldmFsJykucmVwbGFjZSgvKFxcKGV2YWwgYXQgW15cXCgpXSopfChcXClcXCwuKiQpL2csICcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHNhbml0aXplZExpbmUgPSBsaW5lLnJlcGxhY2UoL15cXHMrLywgJycpLnJlcGxhY2UoL1xcKGV2YWwgY29kZS9nLCAnKCcpO1xuXG4gICAgICAgICAgICAgICAgLy8gY2FwdHVyZSBhbmQgcHJlc2V2ZSB0aGUgcGFyZW50aGVzaXplZCBsb2NhdGlvbiBcIigvZm9vL215IGJhci5qczoxMjo4NylcIiBpblxuICAgICAgICAgICAgICAgIC8vIGNhc2UgaXQgaGFzIHNwYWNlcyBpbiBpdCwgYXMgdGhlIHN0cmluZyBpcyBzcGxpdCBvbiBcXHMrIGxhdGVyIG9uXG4gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gc2FuaXRpemVkTGluZS5tYXRjaCgvIChcXCgoLispOihcXGQrKTooXFxkKylcXCkkKS8pO1xuXG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBwYXJlbnRoZXNpemVkIGxvY2F0aW9uIGZyb20gdGhlIGxpbmUsIGlmIGl0IHdhcyBtYXRjaGVkXG4gICAgICAgICAgICAgICAgc2FuaXRpemVkTGluZSA9IGxvY2F0aW9uID8gc2FuaXRpemVkTGluZS5yZXBsYWNlKGxvY2F0aW9uWzBdLCAnJykgOiBzYW5pdGl6ZWRMaW5lO1xuXG4gICAgICAgICAgICAgICAgdmFyIHRva2VucyA9IHNhbml0aXplZExpbmUuc3BsaXQoL1xccysvKS5zbGljZSgxKTtcbiAgICAgICAgICAgICAgICAvLyBpZiBhIGxvY2F0aW9uIHdhcyBtYXRjaGVkLCBwYXNzIGl0IHRvIGV4dHJhY3RMb2NhdGlvbigpIG90aGVyd2lzZSBwb3AgdGhlIGxhc3QgdG9rZW5cbiAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb25QYXJ0cyA9IHRoaXMuZXh0cmFjdExvY2F0aW9uKGxvY2F0aW9uID8gbG9jYXRpb25bMV0gOiB0b2tlbnMucG9wKCkpO1xuICAgICAgICAgICAgICAgIHZhciBmdW5jdGlvbk5hbWUgPSB0b2tlbnMuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB2YXIgZmlsZU5hbWUgPSBbJ2V2YWwnLCAnPGFub255bW91cz4nXS5pbmRleE9mKGxvY2F0aW9uUGFydHNbMF0pID4gLTEgPyB1bmRlZmluZWQgOiBsb2NhdGlvblBhcnRzWzBdO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdGFja0ZyYW1lKHtcbiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBmaWxlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcjogbG9jYXRpb25QYXJ0c1sxXSxcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyOiBsb2NhdGlvblBhcnRzWzJdLFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IGxpbmVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIHRoaXMpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHBhcnNlRkZPclNhZmFyaTogZnVuY3Rpb24gRXJyb3JTdGFja1BhcnNlciQkcGFyc2VGRk9yU2FmYXJpKGVycm9yKSB7XG4gICAgICAgICAgICB2YXIgZmlsdGVyZWQgPSBlcnJvci5zdGFjay5zcGxpdCgnXFxuJykuZmlsdGVyKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWxpbmUubWF0Y2goU0FGQVJJX05BVElWRV9DT0RFX1JFR0VYUCk7XG4gICAgICAgICAgICB9LCB0aGlzKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkLm1hcChmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhyb3cgYXdheSBldmFsIGluZm9ybWF0aW9uIHVudGlsIHdlIGltcGxlbWVudCBzdGFja3RyYWNlLmpzL3N0YWNrZnJhbWUjOFxuICAgICAgICAgICAgICAgIGlmIChsaW5lLmluZGV4T2YoJyA+IGV2YWwnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoLyBsaW5lIChcXGQrKSg/OiA+IGV2YWwgbGluZSBcXGQrKSogPiBldmFsXFw6XFxkK1xcOlxcZCsvZywgJzokMScpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChsaW5lLmluZGV4T2YoJ0AnKSA9PT0gLTEgJiYgbGluZS5pbmRleE9mKCc6JykgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNhZmFyaSBldmFsIGZyYW1lcyBvbmx5IGhhdmUgZnVuY3Rpb24gbmFtZXMgYW5kIG5vdGhpbmcgZWxzZVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0YWNrRnJhbWUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25OYW1lOiBsaW5lXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmdW5jdGlvbk5hbWVSZWdleCA9IC8oKC4qXCIuK1wiW15AXSopP1teQF0qKSg/OkApLztcbiAgICAgICAgICAgICAgICAgICAgdmFyIG1hdGNoZXMgPSBsaW5lLm1hdGNoKGZ1bmN0aW9uTmFtZVJlZ2V4KTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZ1bmN0aW9uTmFtZSA9IG1hdGNoZXMgJiYgbWF0Y2hlc1sxXSA/IG1hdGNoZXNbMV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvblBhcnRzID0gdGhpcy5leHRyYWN0TG9jYXRpb24obGluZS5yZXBsYWNlKGZ1bmN0aW9uTmFtZVJlZ2V4LCAnJykpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RhY2tGcmFtZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbk5hbWU6IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBsb2NhdGlvblBhcnRzWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcjogbG9jYXRpb25QYXJ0c1sxXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbk51bWJlcjogbG9jYXRpb25QYXJ0c1syXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogbGluZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB0aGlzKTtcbiAgICAgICAgfSxcblxuICAgICAgICBwYXJzZU9wZXJhOiBmdW5jdGlvbiBFcnJvclN0YWNrUGFyc2VyJCRwYXJzZU9wZXJhKGUpIHtcbiAgICAgICAgICAgIGlmICghZS5zdGFja3RyYWNlIHx8IChlLm1lc3NhZ2UuaW5kZXhPZignXFxuJykgPiAtMSAmJlxuICAgICAgICAgICAgICAgIGUubWVzc2FnZS5zcGxpdCgnXFxuJykubGVuZ3RoID4gZS5zdGFja3RyYWNlLnNwbGl0KCdcXG4nKS5sZW5ndGgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VPcGVyYTkoZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFlLnN0YWNrKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VPcGVyYTEwKGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZU9wZXJhMTEoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgcGFyc2VPcGVyYTk6IGZ1bmN0aW9uIEVycm9yU3RhY2tQYXJzZXIkJHBhcnNlT3BlcmE5KGUpIHtcbiAgICAgICAgICAgIHZhciBsaW5lUkUgPSAvTGluZSAoXFxkKykuKnNjcmlwdCAoPzppbiApPyhcXFMrKS9pO1xuICAgICAgICAgICAgdmFyIGxpbmVzID0gZS5tZXNzYWdlLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBbXTtcblxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDIsIGxlbiA9IGxpbmVzLmxlbmd0aDsgaSA8IGxlbjsgaSArPSAyKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1hdGNoID0gbGluZVJFLmV4ZWMobGluZXNbaV0pO1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChuZXcgU3RhY2tGcmFtZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZTogbWF0Y2hbMl0sXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBtYXRjaFsxXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogbGluZXNbaV1cbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSxcblxuICAgICAgICBwYXJzZU9wZXJhMTA6IGZ1bmN0aW9uIEVycm9yU3RhY2tQYXJzZXIkJHBhcnNlT3BlcmExMChlKSB7XG4gICAgICAgICAgICB2YXIgbGluZVJFID0gL0xpbmUgKFxcZCspLipzY3JpcHQgKD86aW4gKT8oXFxTKykoPzo6IEluIGZ1bmN0aW9uIChcXFMrKSk/JC9pO1xuICAgICAgICAgICAgdmFyIGxpbmVzID0gZS5zdGFja3RyYWNlLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBbXTtcblxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGxpbmVzLmxlbmd0aDsgaSA8IGxlbjsgaSArPSAyKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1hdGNoID0gbGluZVJFLmV4ZWMobGluZXNbaV0pO1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdGFja0ZyYW1lKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbk5hbWU6IG1hdGNoWzNdIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZTogbWF0Y2hbMl0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcjogbWF0Y2hbMV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiBsaW5lc1tpXVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8gT3BlcmEgMTAuNjUrIEVycm9yLnN0YWNrIHZlcnkgc2ltaWxhciB0byBGRi9TYWZhcmlcbiAgICAgICAgcGFyc2VPcGVyYTExOiBmdW5jdGlvbiBFcnJvclN0YWNrUGFyc2VyJCRwYXJzZU9wZXJhMTEoZXJyb3IpIHtcbiAgICAgICAgICAgIHZhciBmaWx0ZXJlZCA9IGVycm9yLnN0YWNrLnNwbGl0KCdcXG4nKS5maWx0ZXIoZnVuY3Rpb24obGluZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhIWxpbmUubWF0Y2goRklSRUZPWF9TQUZBUklfU1RBQ0tfUkVHRVhQKSAmJiAhbGluZS5tYXRjaCgvXkVycm9yIGNyZWF0ZWQgYXQvKTtcbiAgICAgICAgICAgIH0sIHRoaXMpO1xuXG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyZWQubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgICAgICAgICB2YXIgdG9rZW5zID0gbGluZS5zcGxpdCgnQCcpO1xuICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvblBhcnRzID0gdGhpcy5leHRyYWN0TG9jYXRpb24odG9rZW5zLnBvcCgpKTtcbiAgICAgICAgICAgICAgICB2YXIgZnVuY3Rpb25DYWxsID0gKHRva2Vucy5zaGlmdCgpIHx8ICcnKTtcbiAgICAgICAgICAgICAgICB2YXIgZnVuY3Rpb25OYW1lID0gZnVuY3Rpb25DYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvPGFub255bW91cyBmdW5jdGlvbig6IChcXHcrKSk/Pi8sICckMicpXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFwoW15cXCldKlxcKS9nLCAnJykgfHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIHZhciBhcmdzUmF3O1xuICAgICAgICAgICAgICAgIGlmIChmdW5jdGlvbkNhbGwubWF0Y2goL1xcKChbXlxcKV0qKVxcKS8pKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3NSYXcgPSBmdW5jdGlvbkNhbGwucmVwbGFjZSgvXlteXFwoXStcXCgoW15cXCldKilcXCkkLywgJyQxJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBhcmdzID0gKGFyZ3NSYXcgPT09IHVuZGVmaW5lZCB8fCBhcmdzUmF3ID09PSAnW2FyZ3VtZW50cyBub3QgYXZhaWxhYmxlXScpID9cbiAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkIDogYXJnc1Jhdy5zcGxpdCgnLCcpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdGFja0ZyYW1lKHtcbiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IGFyZ3MsXG4gICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBsb2NhdGlvblBhcnRzWzBdLFxuICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBsb2NhdGlvblBhcnRzWzFdLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5OdW1iZXI6IGxvY2F0aW9uUGFydHNbMl0sXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZTogbGluZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9O1xufSkpO1xuIiwidmFyIF9fc2VsZl9fID0gKGZ1bmN0aW9uIChyb290KSB7XG5mdW5jdGlvbiBGKCkge1xudGhpcy5mZXRjaCA9IGZhbHNlO1xudGhpcy5ET01FeGNlcHRpb24gPSByb290LkRPTUV4Y2VwdGlvblxufVxuRi5wcm90b3R5cGUgPSByb290O1xucmV0dXJuIG5ldyBGKCk7XG59KSh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgPyBzZWxmIDogdGhpcyk7XG4oZnVuY3Rpb24oc2VsZikge1xuXG52YXIgaXJyZWxldmFudCA9IChmdW5jdGlvbiAoZXhwb3J0cykge1xuICB2YXIgc3VwcG9ydCA9IHtcbiAgICBzZWFyY2hQYXJhbXM6ICdVUkxTZWFyY2hQYXJhbXMnIGluIHNlbGYsXG4gICAgaXRlcmFibGU6ICdTeW1ib2wnIGluIHNlbGYgJiYgJ2l0ZXJhdG9yJyBpbiBTeW1ib2wsXG4gICAgYmxvYjpcbiAgICAgICdGaWxlUmVhZGVyJyBpbiBzZWxmICYmXG4gICAgICAnQmxvYicgaW4gc2VsZiAmJlxuICAgICAgKGZ1bmN0aW9uKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG5ldyBCbG9iKCk7XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9KSgpLFxuICAgIGZvcm1EYXRhOiAnRm9ybURhdGEnIGluIHNlbGYsXG4gICAgYXJyYXlCdWZmZXI6ICdBcnJheUJ1ZmZlcicgaW4gc2VsZlxuICB9O1xuXG4gIGZ1bmN0aW9uIGlzRGF0YVZpZXcob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBEYXRhVmlldy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihvYmopXG4gIH1cblxuICBpZiAoc3VwcG9ydC5hcnJheUJ1ZmZlcikge1xuICAgIHZhciB2aWV3Q2xhc3NlcyA9IFtcbiAgICAgICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgICAgJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgICAgJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICAgICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICAgICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgICAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgICAnW29iamVjdCBVaW50MzJBcnJheV0nLFxuICAgICAgJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgICAnW29iamVjdCBGbG9hdDY0QXJyYXldJ1xuICAgIF07XG5cbiAgICB2YXIgaXNBcnJheUJ1ZmZlclZpZXcgPVxuICAgICAgQXJyYXlCdWZmZXIuaXNWaWV3IHx8XG4gICAgICBmdW5jdGlvbihvYmopIHtcbiAgICAgICAgcmV0dXJuIG9iaiAmJiB2aWV3Q2xhc3Nlcy5pbmRleE9mKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopKSA+IC0xXG4gICAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gbm9ybWFsaXplTmFtZShuYW1lKSB7XG4gICAgaWYgKHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykge1xuICAgICAgbmFtZSA9IFN0cmluZyhuYW1lKTtcbiAgICB9XG4gICAgaWYgKC9bXmEtejAtOVxcLSMkJSYnKisuXl9gfH5dL2kudGVzdChuYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBjaGFyYWN0ZXIgaW4gaGVhZGVyIGZpZWxkIG5hbWUnKVxuICAgIH1cbiAgICByZXR1cm4gbmFtZS50b0xvd2VyQ2FzZSgpXG4gIH1cblxuICBmdW5jdGlvbiBub3JtYWxpemVWYWx1ZSh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWx1ZSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgLy8gQnVpbGQgYSBkZXN0cnVjdGl2ZSBpdGVyYXRvciBmb3IgdGhlIHZhbHVlIGxpc3RcbiAgZnVuY3Rpb24gaXRlcmF0b3JGb3IoaXRlbXMpIHtcbiAgICB2YXIgaXRlcmF0b3IgPSB7XG4gICAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gaXRlbXMuc2hpZnQoKTtcbiAgICAgICAgcmV0dXJuIHtkb25lOiB2YWx1ZSA9PT0gdW5kZWZpbmVkLCB2YWx1ZTogdmFsdWV9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChzdXBwb3J0Lml0ZXJhYmxlKSB7XG4gICAgICBpdGVyYXRvcltTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpdGVyYXRvclxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlcmF0b3JcbiAgfVxuXG4gIGZ1bmN0aW9uIEhlYWRlcnMoaGVhZGVycykge1xuICAgIHRoaXMubWFwID0ge307XG5cbiAgICBpZiAoaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpIHtcbiAgICAgIGhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwgbmFtZSkge1xuICAgICAgICB0aGlzLmFwcGVuZChuYW1lLCB2YWx1ZSk7XG4gICAgICB9LCB0aGlzKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoaGVhZGVycykpIHtcbiAgICAgIGhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHtcbiAgICAgICAgdGhpcy5hcHBlbmQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pO1xuICAgICAgfSwgdGhpcyk7XG4gICAgfSBlbHNlIGlmIChoZWFkZXJzKSB7XG4gICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhoZWFkZXJzKS5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHtcbiAgICAgICAgdGhpcy5hcHBlbmQobmFtZSwgaGVhZGVyc1tuYW1lXSk7XG4gICAgICB9LCB0aGlzKTtcbiAgICB9XG4gIH1cblxuICBIZWFkZXJzLnByb3RvdHlwZS5hcHBlbmQgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICAgIG5hbWUgPSBub3JtYWxpemVOYW1lKG5hbWUpO1xuICAgIHZhbHVlID0gbm9ybWFsaXplVmFsdWUodmFsdWUpO1xuICAgIHZhciBvbGRWYWx1ZSA9IHRoaXMubWFwW25hbWVdO1xuICAgIHRoaXMubWFwW25hbWVdID0gb2xkVmFsdWUgPyBvbGRWYWx1ZSArICcsICcgKyB2YWx1ZSA6IHZhbHVlO1xuICB9O1xuXG4gIEhlYWRlcnMucHJvdG90eXBlWydkZWxldGUnXSA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5tYXBbbm9ybWFsaXplTmFtZShuYW1lKV07XG4gIH07XG5cbiAgSGVhZGVycy5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24obmFtZSkge1xuICAgIG5hbWUgPSBub3JtYWxpemVOYW1lKG5hbWUpO1xuICAgIHJldHVybiB0aGlzLmhhcyhuYW1lKSA/IHRoaXMubWFwW25hbWVdIDogbnVsbFxuICB9O1xuXG4gIEhlYWRlcnMucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAuaGFzT3duUHJvcGVydHkobm9ybWFsaXplTmFtZShuYW1lKSlcbiAgfTtcblxuICBIZWFkZXJzLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICAgIHRoaXMubWFwW25vcm1hbGl6ZU5hbWUobmFtZSldID0gbm9ybWFsaXplVmFsdWUodmFsdWUpO1xuICB9O1xuXG4gIEhlYWRlcnMucHJvdG90eXBlLmZvckVhY2ggPSBmdW5jdGlvbihjYWxsYmFjaywgdGhpc0FyZykge1xuICAgIGZvciAodmFyIG5hbWUgaW4gdGhpcy5tYXApIHtcbiAgICAgIGlmICh0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICBjYWxsYmFjay5jYWxsKHRoaXNBcmcsIHRoaXMubWFwW25hbWVdLCBuYW1lLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgSGVhZGVycy5wcm90b3R5cGUua2V5cyA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBpdGVtcyA9IFtdO1xuICAgIHRoaXMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwgbmFtZSkge1xuICAgICAgaXRlbXMucHVzaChuYW1lKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaXRlcmF0b3JGb3IoaXRlbXMpXG4gIH07XG5cbiAgSGVhZGVycy5wcm90b3R5cGUudmFsdWVzID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGl0ZW1zID0gW107XG4gICAgdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICBpdGVtcy5wdXNoKHZhbHVlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaXRlcmF0b3JGb3IoaXRlbXMpXG4gIH07XG5cbiAgSGVhZGVycy5wcm90b3R5cGUuZW50cmllcyA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBpdGVtcyA9IFtdO1xuICAgIHRoaXMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwgbmFtZSkge1xuICAgICAgaXRlbXMucHVzaChbbmFtZSwgdmFsdWVdKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaXRlcmF0b3JGb3IoaXRlbXMpXG4gIH07XG5cbiAgaWYgKHN1cHBvcnQuaXRlcmFibGUpIHtcbiAgICBIZWFkZXJzLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdID0gSGVhZGVycy5wcm90b3R5cGUuZW50cmllcztcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvbnN1bWVkKGJvZHkpIHtcbiAgICBpZiAoYm9keS5ib2R5VXNlZCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBUeXBlRXJyb3IoJ0FscmVhZHkgcmVhZCcpKVxuICAgIH1cbiAgICBib2R5LmJvZHlVc2VkID0gdHJ1ZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZpbGVSZWFkZXJSZWFkeShyZWFkZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCk7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmVqZWN0KHJlYWRlci5lcnJvcik7XG4gICAgICB9O1xuICAgIH0pXG4gIH1cblxuICBmdW5jdGlvbiByZWFkQmxvYkFzQXJyYXlCdWZmZXIoYmxvYikge1xuICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHZhciBwcm9taXNlID0gZmlsZVJlYWRlclJlYWR5KHJlYWRlcik7XG4gICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpO1xuICAgIHJldHVybiBwcm9taXNlXG4gIH1cblxuICBmdW5jdGlvbiByZWFkQmxvYkFzVGV4dChibG9iKSB7XG4gICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgdmFyIHByb21pc2UgPSBmaWxlUmVhZGVyUmVhZHkocmVhZGVyKTtcbiAgICByZWFkZXIucmVhZEFzVGV4dChibG9iKTtcbiAgICByZXR1cm4gcHJvbWlzZVxuICB9XG5cbiAgZnVuY3Rpb24gcmVhZEFycmF5QnVmZmVyQXNUZXh0KGJ1Zikge1xuICAgIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKTtcbiAgICB2YXIgY2hhcnMgPSBuZXcgQXJyYXkodmlldy5sZW5ndGgpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2aWV3Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjaGFyc1tpXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUodmlld1tpXSk7XG4gICAgfVxuICAgIHJldHVybiBjaGFycy5qb2luKCcnKVxuICB9XG5cbiAgZnVuY3Rpb24gYnVmZmVyQ2xvbmUoYnVmKSB7XG4gICAgaWYgKGJ1Zi5zbGljZSkge1xuICAgICAgcmV0dXJuIGJ1Zi5zbGljZSgwKVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdmlldyA9IG5ldyBVaW50OEFycmF5KGJ1Zi5ieXRlTGVuZ3RoKTtcbiAgICAgIHZpZXcuc2V0KG5ldyBVaW50OEFycmF5KGJ1ZikpO1xuICAgICAgcmV0dXJuIHZpZXcuYnVmZmVyXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gQm9keSgpIHtcbiAgICB0aGlzLmJvZHlVc2VkID0gZmFsc2U7XG5cbiAgICB0aGlzLl9pbml0Qm9keSA9IGZ1bmN0aW9uKGJvZHkpIHtcbiAgICAgIHRoaXMuX2JvZHlJbml0ID0gYm9keTtcbiAgICAgIGlmICghYm9keSkge1xuICAgICAgICB0aGlzLl9ib2R5VGV4dCA9ICcnO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5fYm9keVRleHQgPSBib2R5O1xuICAgICAgfSBlbHNlIGlmIChzdXBwb3J0LmJsb2IgJiYgQmxvYi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihib2R5KSkge1xuICAgICAgICB0aGlzLl9ib2R5QmxvYiA9IGJvZHk7XG4gICAgICB9IGVsc2UgaWYgKHN1cHBvcnQuZm9ybURhdGEgJiYgRm9ybURhdGEucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgICAgdGhpcy5fYm9keUZvcm1EYXRhID0gYm9keTtcbiAgICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5zZWFyY2hQYXJhbXMgJiYgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICAgIHRoaXMuX2JvZHlUZXh0ID0gYm9keS50b1N0cmluZygpO1xuICAgICAgfSBlbHNlIGlmIChzdXBwb3J0LmFycmF5QnVmZmVyICYmIHN1cHBvcnQuYmxvYiAmJiBpc0RhdGFWaWV3KGJvZHkpKSB7XG4gICAgICAgIHRoaXMuX2JvZHlBcnJheUJ1ZmZlciA9IGJ1ZmZlckNsb25lKGJvZHkuYnVmZmVyKTtcbiAgICAgICAgLy8gSUUgMTAtMTEgY2FuJ3QgaGFuZGxlIGEgRGF0YVZpZXcgYm9keS5cbiAgICAgICAgdGhpcy5fYm9keUluaXQgPSBuZXcgQmxvYihbdGhpcy5fYm9keUFycmF5QnVmZmVyXSk7XG4gICAgICB9IGVsc2UgaWYgKHN1cHBvcnQuYXJyYXlCdWZmZXIgJiYgKEFycmF5QnVmZmVyLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpIHx8IGlzQXJyYXlCdWZmZXJWaWV3KGJvZHkpKSkge1xuICAgICAgICB0aGlzLl9ib2R5QXJyYXlCdWZmZXIgPSBidWZmZXJDbG9uZShib2R5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2JvZHlUZXh0ID0gYm9keSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChib2R5KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSkge1xuICAgICAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdGhpcy5oZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgJ3RleHQvcGxhaW47Y2hhcnNldD1VVEYtOCcpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2JvZHlCbG9iICYmIHRoaXMuX2JvZHlCbG9iLnR5cGUpIHtcbiAgICAgICAgICB0aGlzLmhlYWRlcnMuc2V0KCdjb250ZW50LXR5cGUnLCB0aGlzLl9ib2R5QmxvYi50eXBlKTtcbiAgICAgICAgfSBlbHNlIGlmIChzdXBwb3J0LnNlYXJjaFBhcmFtcyAmJiBVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgICAgICB0aGlzLmhlYWRlcnMuc2V0KCdjb250ZW50LXR5cGUnLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoc3VwcG9ydC5ibG9iKSB7XG4gICAgICB0aGlzLmJsb2IgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHJlamVjdGVkID0gY29uc3VtZWQodGhpcyk7XG4gICAgICAgIGlmIChyZWplY3RlZCkge1xuICAgICAgICAgIHJldHVybiByZWplY3RlZFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2JvZHlCbG9iKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QmxvYilcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSlcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5Rm9ybURhdGEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvdWxkIG5vdCByZWFkIEZvcm1EYXRhIGJvZHkgYXMgYmxvYicpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgQmxvYihbdGhpcy5fYm9keVRleHRdKSlcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgdGhpcy5hcnJheUJ1ZmZlciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5fYm9keUFycmF5QnVmZmVyKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnN1bWVkKHRoaXMpIHx8IFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYmxvYigpLnRoZW4ocmVhZEJsb2JBc0FycmF5QnVmZmVyKVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMudGV4dCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHJlamVjdGVkID0gY29uc3VtZWQodGhpcyk7XG4gICAgICBpZiAocmVqZWN0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdGVkXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9ib2R5QmxvYikge1xuICAgICAgICByZXR1cm4gcmVhZEJsb2JBc1RleHQodGhpcy5fYm9keUJsb2IpXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlYWRBcnJheUJ1ZmZlckFzVGV4dCh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpKVxuICAgICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5Rm9ybURhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIHRleHQnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5VGV4dClcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKHN1cHBvcnQuZm9ybURhdGEpIHtcbiAgICAgIHRoaXMuZm9ybURhdGEgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dCgpLnRoZW4oZGVjb2RlKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmpzb24gPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHQoKS50aGVuKEpTT04ucGFyc2UpXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvLyBIVFRQIG1ldGhvZHMgd2hvc2UgY2FwaXRhbGl6YXRpb24gc2hvdWxkIGJlIG5vcm1hbGl6ZWRcbiAgdmFyIG1ldGhvZHMgPSBbJ0RFTEVURScsICdHRVQnLCAnSEVBRCcsICdPUFRJT05TJywgJ1BPU1QnLCAnUFVUJ107XG5cbiAgZnVuY3Rpb24gbm9ybWFsaXplTWV0aG9kKG1ldGhvZCkge1xuICAgIHZhciB1cGNhc2VkID0gbWV0aG9kLnRvVXBwZXJDYXNlKCk7XG4gICAgcmV0dXJuIG1ldGhvZHMuaW5kZXhPZih1cGNhc2VkKSA+IC0xID8gdXBjYXNlZCA6IG1ldGhvZFxuICB9XG5cbiAgZnVuY3Rpb24gUmVxdWVzdChpbnB1dCwgb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHZhciBib2R5ID0gb3B0aW9ucy5ib2R5O1xuXG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgUmVxdWVzdCkge1xuICAgICAgaWYgKGlucHV0LmJvZHlVc2VkKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FscmVhZHkgcmVhZCcpXG4gICAgICB9XG4gICAgICB0aGlzLnVybCA9IGlucHV0LnVybDtcbiAgICAgIHRoaXMuY3JlZGVudGlhbHMgPSBpbnB1dC5jcmVkZW50aWFscztcbiAgICAgIGlmICghb3B0aW9ucy5oZWFkZXJzKSB7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IG5ldyBIZWFkZXJzKGlucHV0LmhlYWRlcnMpO1xuICAgICAgfVxuICAgICAgdGhpcy5tZXRob2QgPSBpbnB1dC5tZXRob2Q7XG4gICAgICB0aGlzLm1vZGUgPSBpbnB1dC5tb2RlO1xuICAgICAgdGhpcy5zaWduYWwgPSBpbnB1dC5zaWduYWw7XG4gICAgICBpZiAoIWJvZHkgJiYgaW5wdXQuX2JvZHlJbml0ICE9IG51bGwpIHtcbiAgICAgICAgYm9keSA9IGlucHV0Ll9ib2R5SW5pdDtcbiAgICAgICAgaW5wdXQuYm9keVVzZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVybCA9IFN0cmluZyhpbnB1dCk7XG4gICAgfVxuXG4gICAgdGhpcy5jcmVkZW50aWFscyA9IG9wdGlvbnMuY3JlZGVudGlhbHMgfHwgdGhpcy5jcmVkZW50aWFscyB8fCAnc2FtZS1vcmlnaW4nO1xuICAgIGlmIChvcHRpb25zLmhlYWRlcnMgfHwgIXRoaXMuaGVhZGVycykge1xuICAgICAgdGhpcy5oZWFkZXJzID0gbmV3IEhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKTtcbiAgICB9XG4gICAgdGhpcy5tZXRob2QgPSBub3JtYWxpemVNZXRob2Qob3B0aW9ucy5tZXRob2QgfHwgdGhpcy5tZXRob2QgfHwgJ0dFVCcpO1xuICAgIHRoaXMubW9kZSA9IG9wdGlvbnMubW9kZSB8fCB0aGlzLm1vZGUgfHwgbnVsbDtcbiAgICB0aGlzLnNpZ25hbCA9IG9wdGlvbnMuc2lnbmFsIHx8IHRoaXMuc2lnbmFsO1xuICAgIHRoaXMucmVmZXJyZXIgPSBudWxsO1xuXG4gICAgaWYgKCh0aGlzLm1ldGhvZCA9PT0gJ0dFVCcgfHwgdGhpcy5tZXRob2QgPT09ICdIRUFEJykgJiYgYm9keSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQm9keSBub3QgYWxsb3dlZCBmb3IgR0VUIG9yIEhFQUQgcmVxdWVzdHMnKVxuICAgIH1cbiAgICB0aGlzLl9pbml0Qm9keShib2R5KTtcbiAgfVxuXG4gIFJlcXVlc3QucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBSZXF1ZXN0KHRoaXMsIHtib2R5OiB0aGlzLl9ib2R5SW5pdH0pXG4gIH07XG5cbiAgZnVuY3Rpb24gZGVjb2RlKGJvZHkpIHtcbiAgICB2YXIgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGJvZHlcbiAgICAgIC50cmltKClcbiAgICAgIC5zcGxpdCgnJicpXG4gICAgICAuZm9yRWFjaChmdW5jdGlvbihieXRlcykge1xuICAgICAgICBpZiAoYnl0ZXMpIHtcbiAgICAgICAgICB2YXIgc3BsaXQgPSBieXRlcy5zcGxpdCgnPScpO1xuICAgICAgICAgIHZhciBuYW1lID0gc3BsaXQuc2hpZnQoKS5yZXBsYWNlKC9cXCsvZywgJyAnKTtcbiAgICAgICAgICB2YXIgdmFsdWUgPSBzcGxpdC5qb2luKCc9JykucmVwbGFjZSgvXFwrL2csICcgJyk7XG4gICAgICAgICAgZm9ybS5hcHBlbmQoZGVjb2RlVVJJQ29tcG9uZW50KG5hbWUpLCBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgcmV0dXJuIGZvcm1cbiAgfVxuXG4gIGZ1bmN0aW9uIHBhcnNlSGVhZGVycyhyYXdIZWFkZXJzKSB7XG4gICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuICAgIC8vIFJlcGxhY2UgaW5zdGFuY2VzIG9mIFxcclxcbiBhbmQgXFxuIGZvbGxvd2VkIGJ5IGF0IGxlYXN0IG9uZSBzcGFjZSBvciBob3Jpem9udGFsIHRhYiB3aXRoIGEgc3BhY2VcbiAgICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMCNzZWN0aW9uLTMuMlxuICAgIHZhciBwcmVQcm9jZXNzZWRIZWFkZXJzID0gcmF3SGVhZGVycy5yZXBsYWNlKC9cXHI/XFxuW1xcdCBdKy9nLCAnICcpO1xuICAgIHByZVByb2Nlc3NlZEhlYWRlcnMuc3BsaXQoL1xccj9cXG4vKS5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgIHZhciBwYXJ0cyA9IGxpbmUuc3BsaXQoJzonKTtcbiAgICAgIHZhciBrZXkgPSBwYXJ0cy5zaGlmdCgpLnRyaW0oKTtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gcGFydHMuam9pbignOicpLnRyaW0oKTtcbiAgICAgICAgaGVhZGVycy5hcHBlbmQoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGhlYWRlcnNcbiAgfVxuXG4gIEJvZHkuY2FsbChSZXF1ZXN0LnByb3RvdHlwZSk7XG5cbiAgZnVuY3Rpb24gUmVzcG9uc2UoYm9keUluaXQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICB9XG5cbiAgICB0aGlzLnR5cGUgPSAnZGVmYXVsdCc7XG4gICAgdGhpcy5zdGF0dXMgPSBvcHRpb25zLnN0YXR1cyA9PT0gdW5kZWZpbmVkID8gMjAwIDogb3B0aW9ucy5zdGF0dXM7XG4gICAgdGhpcy5vayA9IHRoaXMuc3RhdHVzID49IDIwMCAmJiB0aGlzLnN0YXR1cyA8IDMwMDtcbiAgICB0aGlzLnN0YXR1c1RleHQgPSAnc3RhdHVzVGV4dCcgaW4gb3B0aW9ucyA/IG9wdGlvbnMuc3RhdHVzVGV4dCA6ICdPSyc7XG4gICAgdGhpcy5oZWFkZXJzID0gbmV3IEhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKTtcbiAgICB0aGlzLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnO1xuICAgIHRoaXMuX2luaXRCb2R5KGJvZHlJbml0KTtcbiAgfVxuXG4gIEJvZHkuY2FsbChSZXNwb25zZS5wcm90b3R5cGUpO1xuXG4gIFJlc3BvbnNlLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUmVzcG9uc2UodGhpcy5fYm9keUluaXQsIHtcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICBzdGF0dXNUZXh0OiB0aGlzLnN0YXR1c1RleHQsXG4gICAgICBoZWFkZXJzOiBuZXcgSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgdXJsOiB0aGlzLnVybFxuICAgIH0pXG4gIH07XG5cbiAgUmVzcG9uc2UuZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UobnVsbCwge3N0YXR1czogMCwgc3RhdHVzVGV4dDogJyd9KTtcbiAgICByZXNwb25zZS50eXBlID0gJ2Vycm9yJztcbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfTtcblxuICB2YXIgcmVkaXJlY3RTdGF0dXNlcyA9IFszMDEsIDMwMiwgMzAzLCAzMDcsIDMwOF07XG5cbiAgUmVzcG9uc2UucmVkaXJlY3QgPSBmdW5jdGlvbih1cmwsIHN0YXR1cykge1xuICAgIGlmIChyZWRpcmVjdFN0YXR1c2VzLmluZGV4T2Yoc3RhdHVzKSA9PT0gLTEpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIHN0YXR1cyBjb2RlJylcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IHN0YXR1cywgaGVhZGVyczoge2xvY2F0aW9uOiB1cmx9fSlcbiAgfTtcblxuICBleHBvcnRzLkRPTUV4Y2VwdGlvbiA9IHNlbGYuRE9NRXhjZXB0aW9uO1xuICB0cnkge1xuICAgIG5ldyBleHBvcnRzLkRPTUV4Y2VwdGlvbigpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBleHBvcnRzLkRPTUV4Y2VwdGlvbiA9IGZ1bmN0aW9uKG1lc3NhZ2UsIG5hbWUpIHtcbiAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgdmFyIGVycm9yID0gRXJyb3IobWVzc2FnZSk7XG4gICAgICB0aGlzLnN0YWNrID0gZXJyb3Iuc3RhY2s7XG4gICAgfTtcbiAgICBleHBvcnRzLkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7XG4gICAgZXhwb3J0cy5ET01FeGNlcHRpb24ucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gZXhwb3J0cy5ET01FeGNlcHRpb247XG4gIH1cblxuICBmdW5jdGlvbiBmZXRjaChpbnB1dCwgaW5pdCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5wdXQsIGluaXQpO1xuXG4gICAgICBpZiAocmVxdWVzdC5zaWduYWwgJiYgcmVxdWVzdC5zaWduYWwuYWJvcnRlZCkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBleHBvcnRzLkRPTUV4Y2VwdGlvbignQWJvcnRlZCcsICdBYm9ydEVycm9yJykpXG4gICAgICB9XG5cbiAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICAgICAgZnVuY3Rpb24gYWJvcnRYaHIoKSB7XG4gICAgICAgIHhoci5hYm9ydCgpO1xuICAgICAgfVxuXG4gICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgICAgIHN0YXR1czogeGhyLnN0YXR1cyxcbiAgICAgICAgICBzdGF0dXNUZXh0OiB4aHIuc3RhdHVzVGV4dCxcbiAgICAgICAgICBoZWFkZXJzOiBwYXJzZUhlYWRlcnMoeGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpIHx8ICcnKVxuICAgICAgICB9O1xuICAgICAgICBvcHRpb25zLnVybCA9ICdyZXNwb25zZVVSTCcgaW4geGhyID8geGhyLnJlc3BvbnNlVVJMIDogb3B0aW9ucy5oZWFkZXJzLmdldCgnWC1SZXF1ZXN0LVVSTCcpO1xuICAgICAgICB2YXIgYm9keSA9ICdyZXNwb25zZScgaW4geGhyID8geGhyLnJlc3BvbnNlIDogeGhyLnJlc3BvbnNlVGV4dDtcbiAgICAgICAgcmVzb2x2ZShuZXcgUmVzcG9uc2UoYm9keSwgb3B0aW9ucykpO1xuICAgICAgfTtcblxuICAgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBUeXBlRXJyb3IoJ05ldHdvcmsgcmVxdWVzdCBmYWlsZWQnKSk7XG4gICAgICB9O1xuXG4gICAgICB4aHIub250aW1lb3V0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlamVjdChuZXcgVHlwZUVycm9yKCdOZXR3b3JrIHJlcXVlc3QgZmFpbGVkJykpO1xuICAgICAgfTtcblxuICAgICAgeGhyLm9uYWJvcnQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBleHBvcnRzLkRPTUV4Y2VwdGlvbignQWJvcnRlZCcsICdBYm9ydEVycm9yJykpO1xuICAgICAgfTtcblxuICAgICAgeGhyLm9wZW4ocmVxdWVzdC5tZXRob2QsIHJlcXVlc3QudXJsLCB0cnVlKTtcblxuICAgICAgaWYgKHJlcXVlc3QuY3JlZGVudGlhbHMgPT09ICdpbmNsdWRlJykge1xuICAgICAgICB4aHIud2l0aENyZWRlbnRpYWxzID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAocmVxdWVzdC5jcmVkZW50aWFscyA9PT0gJ29taXQnKSB7XG4gICAgICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCdyZXNwb25zZVR5cGUnIGluIHhociAmJiBzdXBwb3J0LmJsb2IpIHtcbiAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdibG9iJztcbiAgICAgIH1cblxuICAgICAgcmVxdWVzdC5oZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIobmFtZSwgdmFsdWUpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChyZXF1ZXN0LnNpZ25hbCkge1xuICAgICAgICByZXF1ZXN0LnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIGFib3J0WGhyKTtcblxuICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgLy8gRE9ORSAoc3VjY2VzcyBvciBmYWlsdXJlKVxuICAgICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gNCkge1xuICAgICAgICAgICAgcmVxdWVzdC5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBhYm9ydFhocik7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB4aHIuc2VuZCh0eXBlb2YgcmVxdWVzdC5fYm9keUluaXQgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IHJlcXVlc3QuX2JvZHlJbml0KTtcbiAgICB9KVxuICB9XG5cbiAgZmV0Y2gucG9seWZpbGwgPSB0cnVlO1xuXG4gIGlmICghc2VsZi5mZXRjaCkge1xuICAgIHNlbGYuZmV0Y2ggPSBmZXRjaDtcbiAgICBzZWxmLkhlYWRlcnMgPSBIZWFkZXJzO1xuICAgIHNlbGYuUmVxdWVzdCA9IFJlcXVlc3Q7XG4gICAgc2VsZi5SZXNwb25zZSA9IFJlc3BvbnNlO1xuICB9XG5cbiAgZXhwb3J0cy5IZWFkZXJzID0gSGVhZGVycztcbiAgZXhwb3J0cy5SZXF1ZXN0ID0gUmVxdWVzdDtcbiAgZXhwb3J0cy5SZXNwb25zZSA9IFJlc3BvbnNlO1xuICBleHBvcnRzLmZldGNoID0gZmV0Y2g7XG5cbiAgcmV0dXJuIGV4cG9ydHM7XG5cbn0oe30pKTtcbn0pKF9fc2VsZl9fKTtcbmRlbGV0ZSBfX3NlbGZfXy5mZXRjaC5wb2x5ZmlsbFxuZXhwb3J0cyA9IF9fc2VsZl9fLmZldGNoIC8vIFRvIGVuYWJsZTogaW1wb3J0IGZldGNoIGZyb20gJ2Nyb3NzLWZldGNoJ1xuZXhwb3J0cy5kZWZhdWx0ID0gX19zZWxmX18uZmV0Y2ggLy8gRm9yIFR5cGVTY3JpcHQgY29uc3VtZXJzIHdpdGhvdXQgZXNNb2R1bGVJbnRlcm9wLlxuZXhwb3J0cy5mZXRjaCA9IF9fc2VsZl9fLmZldGNoIC8vIFRvIGVuYWJsZTogaW1wb3J0IHtmZXRjaH0gZnJvbSAnY3Jvc3MtZmV0Y2gnXG5leHBvcnRzLkhlYWRlcnMgPSBfX3NlbGZfXy5IZWFkZXJzXG5leHBvcnRzLlJlcXVlc3QgPSBfX3NlbGZfXy5SZXF1ZXN0XG5leHBvcnRzLlJlc3BvbnNlID0gX19zZWxmX18uUmVzcG9uc2Vcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1xuIiwiaW1wb3J0IEVycm9yU3RhY2tQYXJzZXIgZnJvbSAnZXJyb3Itc3RhY2stcGFyc2VyJztcbmltcG9ydCBmZXRjaCQxIGZyb20gJ2Nyb3NzLWZldGNoJztcblxuLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2VcclxudGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGVcclxuTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuXHJcblRISVMgQ09ERSBJUyBQUk9WSURFRCBPTiBBTiAqQVMgSVMqIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcclxuS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBBTlkgSU1QTElFRFxyXG5XQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLFxyXG5NRVJDSEFOVEFCTElUWSBPUiBOT04tSU5GUklOR0VNRU5ULlxyXG5cclxuU2VlIHRoZSBBcGFjaGUgVmVyc2lvbiAyLjAgTGljZW5zZSBmb3Igc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXHJcbmFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxudmFyIF9fYXNzaWduID0gZnVuY3Rpb24oKSB7XHJcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gX19hc3NpZ24odCkge1xyXG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xyXG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpIHRbcF0gPSBzW3BdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdDtcclxuICAgIH07XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufTtcblxudmFyIEZJTFRFUkVEID0gJ1tGaWx0ZXJlZF0nO1xyXG52YXIgTUFYX09CSl9MRU5HVEggPSAxMjg7XHJcbi8vIGpzb25pZnlOb3RpY2Ugc2VyaWFsaXplcyBub3RpY2UgdG8gSlNPTiBhbmQgdHJ1bmNhdGVzIHBhcmFtcyxcclxuLy8gZW52aXJvbm1lbnQgYW5kIHNlc3Npb24ga2V5cy5cclxuZnVuY3Rpb24ganNvbmlmeU5vdGljZShub3RpY2UsIF9hKSB7XHJcbiAgICB2YXIgX2IgPSBfYSA9PT0gdm9pZCAwID8ge30gOiBfYSwgX2MgPSBfYi5tYXhMZW5ndGgsIG1heExlbmd0aCA9IF9jID09PSB2b2lkIDAgPyA2NDAwMCA6IF9jLCBfZCA9IF9iLmtleXNCbGFja2xpc3QsIGtleXNCbGFja2xpc3QgPSBfZCA9PT0gdm9pZCAwID8gW10gOiBfZDtcclxuICAgIGlmIChub3RpY2UuZXJyb3JzKSB7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub3RpY2UuZXJyb3JzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHZhciB0ID0gbmV3IFRydW5jYXRvcih7IGtleXNCbGFja2xpc3Q6IGtleXNCbGFja2xpc3QgfSk7XHJcbiAgICAgICAgICAgIG5vdGljZS5lcnJvcnNbaV0gPSB0LnRydW5jYXRlKG5vdGljZS5lcnJvcnNbaV0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHZhciBzID0gJyc7XHJcbiAgICB2YXIga2V5cyA9IFsnY29udGV4dCcsICdwYXJhbXMnLCAnZW52aXJvbm1lbnQnLCAnc2Vzc2lvbiddO1xyXG4gICAgZm9yICh2YXIgbGV2ZWwgPSAwOyBsZXZlbCA8IDg7IGxldmVsKyspIHtcclxuICAgICAgICB2YXIgb3B0cyA9IHsgbGV2ZWw6IGxldmVsLCBrZXlzQmxhY2tsaXN0OiBrZXlzQmxhY2tsaXN0IH07XHJcbiAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBrZXlzXzEgPSBrZXlzOyBfaSA8IGtleXNfMS5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICAgICAgdmFyIGtleSA9IGtleXNfMVtfaV07XHJcbiAgICAgICAgICAgIHZhciBvYmogPSBub3RpY2Vba2V5XTtcclxuICAgICAgICAgICAgaWYgKG9iaikge1xyXG4gICAgICAgICAgICAgICAgbm90aWNlW2tleV0gPSB0cnVuY2F0ZShvYmosIG9wdHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHMgPSBKU09OLnN0cmluZ2lmeShub3RpY2UpO1xyXG4gICAgICAgIGlmIChzLmxlbmd0aCA8IG1heExlbmd0aCkge1xyXG4gICAgICAgICAgICByZXR1cm4gcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB2YXIgcGFyYW1zID0ge1xyXG4gICAgICAgIGpzb246IHMuc2xpY2UoMCwgTWF0aC5mbG9vcihtYXhMZW5ndGggLyAyKSkgKyAnLi4uJyxcclxuICAgIH07XHJcbiAgICBrZXlzLnB1c2goJ2Vycm9ycycpO1xyXG4gICAgZm9yICh2YXIgX2UgPSAwLCBrZXlzXzIgPSBrZXlzOyBfZSA8IGtleXNfMi5sZW5ndGg7IF9lKyspIHtcclxuICAgICAgICB2YXIga2V5ID0ga2V5c18yW19lXTtcclxuICAgICAgICB2YXIgb2JqID0gbm90aWNlW2tleV07XHJcbiAgICAgICAgaWYgKCFvYmopIHtcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHMgPSBKU09OLnN0cmluZ2lmeShvYmopO1xyXG4gICAgICAgIHBhcmFtc1trZXldID0gcy5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiYWlyYnJha2U6IG5vdGljZSBleGNlZWRzIG1heCBsZW5ndGggYW5kIGNhbid0IGJlIHRydW5jYXRlZFwiKTtcclxuICAgIGVyci5wYXJhbXMgPSBwYXJhbXM7XHJcbiAgICB0aHJvdyBlcnI7XHJcbn1cclxuZnVuY3Rpb24gc2NhbGUobnVtLCBsZXZlbCkge1xyXG4gICAgcmV0dXJuIG51bSA+PiBsZXZlbCB8fCAxO1xyXG59XHJcbnZhciBUcnVuY2F0b3IgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBUcnVuY2F0b3Iob3B0cykge1xyXG4gICAgICAgIHRoaXMubWF4U3RyaW5nTGVuZ3RoID0gMTAyNDtcclxuICAgICAgICB0aGlzLm1heE9iamVjdExlbmd0aCA9IE1BWF9PQkpfTEVOR1RIO1xyXG4gICAgICAgIHRoaXMubWF4QXJyYXlMZW5ndGggPSBNQVhfT0JKX0xFTkdUSDtcclxuICAgICAgICB0aGlzLm1heERlcHRoID0gODtcclxuICAgICAgICB0aGlzLmtleXMgPSBbXTtcclxuICAgICAgICB0aGlzLmtleXNCbGFja2xpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLnNlZW4gPSBbXTtcclxuICAgICAgICB2YXIgbGV2ZWwgPSBvcHRzLmxldmVsIHx8IDA7XHJcbiAgICAgICAgdGhpcy5rZXlzQmxhY2tsaXN0ID0gb3B0cy5rZXlzQmxhY2tsaXN0IHx8IFtdO1xyXG4gICAgICAgIHRoaXMubWF4U3RyaW5nTGVuZ3RoID0gc2NhbGUodGhpcy5tYXhTdHJpbmdMZW5ndGgsIGxldmVsKTtcclxuICAgICAgICB0aGlzLm1heE9iamVjdExlbmd0aCA9IHNjYWxlKHRoaXMubWF4T2JqZWN0TGVuZ3RoLCBsZXZlbCk7XHJcbiAgICAgICAgdGhpcy5tYXhBcnJheUxlbmd0aCA9IHNjYWxlKHRoaXMubWF4QXJyYXlMZW5ndGgsIGxldmVsKTtcclxuICAgICAgICB0aGlzLm1heERlcHRoID0gc2NhbGUodGhpcy5tYXhEZXB0aCwgbGV2ZWwpO1xyXG4gICAgfVxyXG4gICAgVHJ1bmNhdG9yLnByb3RvdHlwZS50cnVuY2F0ZSA9IGZ1bmN0aW9uICh2YWx1ZSwga2V5LCBkZXB0aCkge1xyXG4gICAgICAgIGlmIChrZXkgPT09IHZvaWQgMCkgeyBrZXkgPSAnJzsgfVxyXG4gICAgICAgIGlmIChkZXB0aCA9PT0gdm9pZCAwKSB7IGRlcHRoID0gMDsgfVxyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcclxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRydW5jYXRlU3RyaW5nKHZhbHVlKTtcclxuICAgICAgICAgICAgY2FzZSAnb2JqZWN0JzpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJ1bmNhdGVTdHJpbmcoU3RyaW5nKHZhbHVlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFN0cmluZykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cnVuY2F0ZVN0cmluZyh2YWx1ZS50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQm9vbGVhbiB8fFxyXG4gICAgICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIE51bWJlciB8fFxyXG4gICAgICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgfHxcclxuICAgICAgICAgICAgdmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBFcnJvcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cnVuY2F0ZVN0cmluZyh2YWx1ZS50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2Vlbi5pbmRleE9mKHZhbHVlKSA+PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIltDaXJjdWxhciBcIiArIHRoaXMuZ2V0UGF0aCh2YWx1ZSkgKyBcIl1cIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHR5cGUgPSBvYmplY3RUeXBlKHZhbHVlKTtcclxuICAgICAgICBkZXB0aCsrO1xyXG4gICAgICAgIGlmIChkZXB0aCA+IHRoaXMubWF4RGVwdGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiW1RydW5jYXRlZCBcIiArIHR5cGUgKyBcIl1cIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5rZXlzLnB1c2goa2V5KTtcclxuICAgICAgICB0aGlzLnNlZW4ucHVzaCh2YWx1ZSk7XHJcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ0FycmF5JzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRydW5jYXRlQXJyYXkodmFsdWUsIGRlcHRoKTtcclxuICAgICAgICAgICAgY2FzZSAnT2JqZWN0JzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRydW5jYXRlT2JqZWN0KHZhbHVlLCBkZXB0aCk7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB2YXIgc2F2ZWQgPSB0aGlzLm1heERlcHRoO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXhEZXB0aCA9IDA7XHJcbiAgICAgICAgICAgICAgICB2YXIgb2JqID0gdGhpcy50cnVuY2F0ZU9iamVjdCh2YWx1ZSwgZGVwdGgpO1xyXG4gICAgICAgICAgICAgICAgb2JqLl9fdHlwZSA9IHR5cGU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1heERlcHRoID0gc2F2ZWQ7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBUcnVuY2F0b3IucHJvdG90eXBlLmdldFBhdGggPSBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICB2YXIgaW5kZXggPSB0aGlzLnNlZW4uaW5kZXhPZih2YWx1ZSk7XHJcbiAgICAgICAgdmFyIHBhdGggPSBbdGhpcy5rZXlzW2luZGV4XV07XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IGluZGV4OyBpID49IDA7IGktLSkge1xyXG4gICAgICAgICAgICB2YXIgc3ViID0gdGhpcy5zZWVuW2ldO1xyXG4gICAgICAgICAgICBpZiAoc3ViICYmIGdldEF0dHIoc3ViLCBwYXRoWzBdKSA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlID0gc3ViO1xyXG4gICAgICAgICAgICAgICAgcGF0aC51bnNoaWZ0KHRoaXMua2V5c1tpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICd+JyArIHBhdGguam9pbignLicpO1xyXG4gICAgfTtcclxuICAgIFRydW5jYXRvci5wcm90b3R5cGUudHJ1bmNhdGVTdHJpbmcgPSBmdW5jdGlvbiAocykge1xyXG4gICAgICAgIGlmIChzLmxlbmd0aCA+IHRoaXMubWF4U3RyaW5nTGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzLnNsaWNlKDAsIHRoaXMubWF4U3RyaW5nTGVuZ3RoKSArICcuLi4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcztcclxuICAgIH07XHJcbiAgICBUcnVuY2F0b3IucHJvdG90eXBlLnRydW5jYXRlQXJyYXkgPSBmdW5jdGlvbiAoYXJyLCBkZXB0aCkge1xyXG4gICAgICAgIGlmIChkZXB0aCA9PT0gdm9pZCAwKSB7IGRlcHRoID0gMDsgfVxyXG4gICAgICAgIHZhciBsZW5ndGggPSAwO1xyXG4gICAgICAgIHZhciBkc3QgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgZWwgPSBhcnJbaV07XHJcbiAgICAgICAgICAgIGRzdC5wdXNoKHRoaXMudHJ1bmNhdGUoZWwsIGkudG9TdHJpbmcoKSwgZGVwdGgpKTtcclxuICAgICAgICAgICAgbGVuZ3RoKys7XHJcbiAgICAgICAgICAgIGlmIChsZW5ndGggPj0gdGhpcy5tYXhBcnJheUxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRzdDtcclxuICAgIH07XHJcbiAgICBUcnVuY2F0b3IucHJvdG90eXBlLnRydW5jYXRlT2JqZWN0ID0gZnVuY3Rpb24gKG9iaiwgZGVwdGgpIHtcclxuICAgICAgICBpZiAoZGVwdGggPT09IHZvaWQgMCkgeyBkZXB0aCA9IDA7IH1cclxuICAgICAgICB2YXIgbGVuZ3RoID0gMDtcclxuICAgICAgICB2YXIgZHN0ID0ge307XHJcbiAgICAgICAgZm9yICh2YXIga2V5IGluIG9iaikge1xyXG4gICAgICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpc0JsYWNrbGlzdGVkKGtleSwgdGhpcy5rZXlzQmxhY2tsaXN0KSkge1xyXG4gICAgICAgICAgICAgICAgZHN0W2tleV0gPSBGSUxURVJFRDtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGdldEF0dHIob2JqLCBrZXkpO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRzdFtrZXldID0gdGhpcy50cnVuY2F0ZSh2YWx1ZSwga2V5LCBkZXB0aCk7XHJcbiAgICAgICAgICAgIGxlbmd0aCsrO1xyXG4gICAgICAgICAgICBpZiAobGVuZ3RoID49IHRoaXMubWF4T2JqZWN0TGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZHN0O1xyXG4gICAgfTtcclxuICAgIHJldHVybiBUcnVuY2F0b3I7XHJcbn0oKSk7XHJcbmZ1bmN0aW9uIHRydW5jYXRlKHZhbHVlLCBvcHRzKSB7XHJcbiAgICBpZiAob3B0cyA9PT0gdm9pZCAwKSB7IG9wdHMgPSB7fTsgfVxyXG4gICAgdmFyIHQgPSBuZXcgVHJ1bmNhdG9yKG9wdHMpO1xyXG4gICAgcmV0dXJuIHQudHJ1bmNhdGUodmFsdWUpO1xyXG59XHJcbmZ1bmN0aW9uIGdldEF0dHIob2JqLCBhdHRyKSB7XHJcbiAgICAvLyBJZ25vcmUgYnJvd3NlciBzcGVjaWZpYyBleGNlcHRpb24gdHJ5aW5nIHRvIHJlYWQgYW4gYXR0cmlidXRlICgjNzkpLlxyXG4gICAgdHJ5IHtcclxuICAgICAgICByZXR1cm4gb2JqW2F0dHJdO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKF8pIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gb2JqZWN0VHlwZShvYmopIHtcclxuICAgIHZhciBzID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShvYmopO1xyXG4gICAgcmV0dXJuIHMuc2xpY2UoJ1tvYmplY3QgJy5sZW5ndGgsIC0xKTtcclxufVxyXG5mdW5jdGlvbiBpc0JsYWNrbGlzdGVkKGtleSwga2V5c0JsYWNrbGlzdCkge1xyXG4gICAgZm9yICh2YXIgX2kgPSAwLCBrZXlzQmxhY2tsaXN0XzEgPSBrZXlzQmxhY2tsaXN0OyBfaSA8IGtleXNCbGFja2xpc3RfMS5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICB2YXIgdiA9IGtleXNCbGFja2xpc3RfMVtfaV07XHJcbiAgICAgICAgaWYgKHYgPT09IGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHYgaW5zdGFuY2VvZiBSZWdFeHApIHtcclxuICAgICAgICAgICAgaWYgKGtleS5tYXRjaCh2KSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cblxudmFyIFNwYW4gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBTcGFuKG1ldHJpYywgbmFtZSwgc3RhcnRUaW1lKSB7XHJcbiAgICAgICAgdGhpcy5fZHVyID0gMDtcclxuICAgICAgICB0aGlzLl9sZXZlbCA9IDA7XHJcbiAgICAgICAgdGhpcy5fbWV0cmljID0gbWV0cmljO1xyXG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBzdGFydFRpbWUgfHwgbmV3IERhdGUoKTtcclxuICAgIH1cclxuICAgIFNwYW4ucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uIChlbmRUaW1lKSB7XHJcbiAgICAgICAgaWYgKGVuZFRpbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5lbmRUaW1lID0gZW5kVGltZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW5kVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2R1ciArPSB0aGlzLmVuZFRpbWUuZ2V0VGltZSgpIC0gdGhpcy5zdGFydFRpbWUuZ2V0VGltZSgpO1xyXG4gICAgICAgIHRoaXMuX21ldHJpYy5faW5jR3JvdXAodGhpcy5uYW1lLCB0aGlzLl9kdXIpO1xyXG4gICAgICAgIHRoaXMuX21ldHJpYyA9IG51bGw7XHJcbiAgICB9O1xyXG4gICAgU3Bhbi5wcm90b3R5cGUuX3BhdXNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9wYXVzZWQoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIHRoaXMuX2R1ciArPSBub3cuZ2V0VGltZSgpIC0gdGhpcy5zdGFydFRpbWUuZ2V0VGltZSgpO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gbnVsbDtcclxuICAgIH07XHJcbiAgICBTcGFuLnByb3RvdHlwZS5fcmVzdW1lID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fcGF1c2VkKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB9O1xyXG4gICAgU3Bhbi5wcm90b3R5cGUuX3BhdXNlZCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGFydFRpbWUgPT0gbnVsbDtcclxuICAgIH07XHJcbiAgICByZXR1cm4gU3BhbjtcclxufSgpKTtcclxudmFyIEJhc2VNZXRyaWMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBCYXNlTWV0cmljKCkge1xyXG4gICAgICAgIHRoaXMuX3NwYW5zID0ge307XHJcbiAgICAgICAgdGhpcy5fZ3JvdXBzID0ge307XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgfVxyXG4gICAgQmFzZU1ldHJpYy5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24gKGVuZFRpbWUpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZW5kVGltZSkge1xyXG4gICAgICAgICAgICB0aGlzLmVuZFRpbWUgPSBlbmRUaW1lIHx8IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIEJhc2VNZXRyaWMucHJvdG90eXBlLmlzUmVjb3JkaW5nID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfTtcclxuICAgIEJhc2VNZXRyaWMucHJvdG90eXBlLnN0YXJ0U3BhbiA9IGZ1bmN0aW9uIChuYW1lLCBzdGFydFRpbWUpIHtcclxuICAgICAgICB2YXIgc3BhbiA9IHRoaXMuX3NwYW5zW25hbWVdO1xyXG4gICAgICAgIGlmIChzcGFuKSB7XHJcbiAgICAgICAgICAgIHNwYW4uX2xldmVsKys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzcGFuID0gbmV3IFNwYW4odGhpcywgbmFtZSwgc3RhcnRUaW1lKTtcclxuICAgICAgICAgICAgdGhpcy5fc3BhbnNbbmFtZV0gPSBzcGFuO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBCYXNlTWV0cmljLnByb3RvdHlwZS5lbmRTcGFuID0gZnVuY3Rpb24gKG5hbWUsIGVuZFRpbWUpIHtcclxuICAgICAgICB2YXIgc3BhbiA9IHRoaXMuX3NwYW5zW25hbWVdO1xyXG4gICAgICAgIGlmICghc3Bhbikge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdhaXJicmFrZTogc3Bhbj0lcyBkb2VzIG5vdCBleGlzdCcsIG5hbWUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzcGFuLl9sZXZlbCA+IDApIHtcclxuICAgICAgICAgICAgc3Bhbi5fbGV2ZWwtLTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHNwYW4uZW5kKGVuZFRpbWUpO1xyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5fc3BhbnNbc3Bhbi5uYW1lXTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgQmFzZU1ldHJpYy5wcm90b3R5cGUuX2luY0dyb3VwID0gZnVuY3Rpb24gKG5hbWUsIG1zKSB7XHJcbiAgICAgICAgdGhpcy5fZ3JvdXBzW25hbWVdID0gKHRoaXMuX2dyb3Vwc1tuYW1lXSB8fCAwKSArIG1zO1xyXG4gICAgfTtcclxuICAgIEJhc2VNZXRyaWMucHJvdG90eXBlLl9kdXJhdGlvbiA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZW5kVGltZSkge1xyXG4gICAgICAgICAgICB0aGlzLmVuZFRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5lbmRUaW1lLmdldFRpbWUoKSAtIHRoaXMuc3RhcnRUaW1lLmdldFRpbWUoKTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gQmFzZU1ldHJpYztcclxufSgpKTtcclxudmFyIE5vb3BNZXRyaWMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBOb29wTWV0cmljKCkge1xyXG4gICAgfVxyXG4gICAgTm9vcE1ldHJpYy5wcm90b3R5cGUuaXNSZWNvcmRpbmcgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfTtcclxuICAgIE5vb3BNZXRyaWMucHJvdG90eXBlLnN0YXJ0U3BhbiA9IGZ1bmN0aW9uIChfbmFtZSwgX3N0YXJ0VGltZSkgeyB9O1xyXG4gICAgTm9vcE1ldHJpYy5wcm90b3R5cGUuZW5kU3BhbiA9IGZ1bmN0aW9uIChfbmFtZSwgX3N0YXJ0VGltZSkgeyB9O1xyXG4gICAgTm9vcE1ldHJpYy5wcm90b3R5cGUuX2luY0dyb3VwID0gZnVuY3Rpb24gKF9uYW1lLCBfbXMpIHsgfTtcclxuICAgIHJldHVybiBOb29wTWV0cmljO1xyXG59KCkpO1xuXG52YXIgU2NvcGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBTY29wZSgpIHtcclxuICAgICAgICB0aGlzLl9ub29wTWV0cmljID0gbmV3IE5vb3BNZXRyaWMoKTtcclxuICAgICAgICB0aGlzLl9jb250ZXh0ID0ge307XHJcbiAgICAgICAgdGhpcy5faGlzdG9yeU1heExlbiA9IDIwO1xyXG4gICAgICAgIHRoaXMuX2hpc3RvcnkgPSBbXTtcclxuICAgIH1cclxuICAgIFNjb3BlLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgY2xvbmUgPSBuZXcgU2NvcGUoKTtcclxuICAgICAgICBjbG9uZS5fY29udGV4dCA9IF9fYXNzaWduKHt9LCB0aGlzLl9jb250ZXh0KTtcclxuICAgICAgICBjbG9uZS5faGlzdG9yeSA9IHRoaXMuX2hpc3Rvcnkuc2xpY2UoKTtcclxuICAgICAgICByZXR1cm4gY2xvbmU7XHJcbiAgICB9O1xyXG4gICAgU2NvcGUucHJvdG90eXBlLnNldENvbnRleHQgPSBmdW5jdGlvbiAoY29udGV4dCkge1xyXG4gICAgICAgIHRoaXMuX2NvbnRleHQgPSBPYmplY3QuYXNzaWduKHRoaXMuX2NvbnRleHQsIGNvbnRleHQpO1xyXG4gICAgfTtcclxuICAgIFNjb3BlLnByb3RvdHlwZS5jb250ZXh0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBjdHggPSBfX2Fzc2lnbih7fSwgdGhpcy5fY29udGV4dCk7XHJcbiAgICAgICAgaWYgKHRoaXMuX2hpc3RvcnkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjdHguaGlzdG9yeSA9IHRoaXMuX2hpc3Rvcnkuc2xpY2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGN0eDtcclxuICAgIH07XHJcbiAgICBTY29wZS5wcm90b3R5cGUucHVzaEhpc3RvcnkgPSBmdW5jdGlvbiAoc3RhdGUpIHtcclxuICAgICAgICBpZiAodGhpcy5faXNEdXBTdGF0ZShzdGF0ZSkpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2xhc3RSZWNvcmQubnVtKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9sYXN0UmVjb3JkLm51bSsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbGFzdFJlY29yZC5udW0gPSAyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFzdGF0ZS5kYXRlKSB7XHJcbiAgICAgICAgICAgIHN0YXRlLmRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9oaXN0b3J5LnB1c2goc3RhdGUpO1xyXG4gICAgICAgIHRoaXMuX2xhc3RSZWNvcmQgPSBzdGF0ZTtcclxuICAgICAgICBpZiAodGhpcy5faGlzdG9yeS5sZW5ndGggPiB0aGlzLl9oaXN0b3J5TWF4TGVuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2hpc3RvcnkgPSB0aGlzLl9oaXN0b3J5LnNsaWNlKC10aGlzLl9oaXN0b3J5TWF4TGVuKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgU2NvcGUucHJvdG90eXBlLl9pc0R1cFN0YXRlID0gZnVuY3Rpb24gKHN0YXRlKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9sYXN0UmVjb3JkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yICh2YXIga2V5IGluIHN0YXRlKSB7XHJcbiAgICAgICAgICAgIGlmICghc3RhdGUuaGFzT3duUHJvcGVydHkoa2V5KSB8fCBrZXkgPT09ICdkYXRlJykge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHN0YXRlW2tleV0gIT09IHRoaXMuX2xhc3RSZWNvcmRba2V5XSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfTtcclxuICAgIFNjb3BlLnByb3RvdHlwZS5yb3V0ZU1ldHJpYyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcm91dGVNZXRyaWMgfHwgdGhpcy5fbm9vcE1ldHJpYztcclxuICAgIH07XHJcbiAgICBTY29wZS5wcm90b3R5cGUuc2V0Um91dGVNZXRyaWMgPSBmdW5jdGlvbiAobWV0cmljKSB7XHJcbiAgICAgICAgdGhpcy5fcm91dGVNZXRyaWMgPSBtZXRyaWM7XHJcbiAgICB9O1xyXG4gICAgU2NvcGUucHJvdG90eXBlLnF1ZXVlTWV0cmljID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9xdWV1ZU1ldHJpYyB8fCB0aGlzLl9ub29wTWV0cmljO1xyXG4gICAgfTtcclxuICAgIFNjb3BlLnByb3RvdHlwZS5zZXRRdWV1ZU1ldHJpYyA9IGZ1bmN0aW9uIChtZXRyaWMpIHtcclxuICAgICAgICB0aGlzLl9xdWV1ZU1ldHJpYyA9IG1ldHJpYztcclxuICAgIH07XHJcbiAgICByZXR1cm4gU2NvcGU7XHJcbn0oKSk7XG5cbnZhciBoYXNDb25zb2xlID0gdHlwZW9mIGNvbnNvbGUgPT09ICdvYmplY3QnICYmIGNvbnNvbGUud2FybjtcclxuZnVuY3Rpb24gcGFyc2UoZXJyKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHJldHVybiBFcnJvclN0YWNrUGFyc2VyLnBhcnNlKGVycik7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAocGFyc2VFcnIpIHtcclxuICAgICAgICBpZiAoaGFzQ29uc29sZSAmJiBlcnIuc3RhY2spIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdFcnJvclN0YWNrUGFyc2VyOicsIHBhcnNlRXJyLnRvU3RyaW5nKCksIGVyci5zdGFjayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGVyci5maWxlTmFtZSkge1xyXG4gICAgICAgIHJldHVybiBbZXJyXTtcclxuICAgIH1cclxuICAgIHJldHVybiBbXTtcclxufVxyXG5mdW5jdGlvbiBlc3BQcm9jZXNzb3IoZXJyKSB7XHJcbiAgICB2YXIgYmFja3RyYWNlID0gW107XHJcbiAgICBpZiAoZXJyLm5vU3RhY2spIHtcclxuICAgICAgICBiYWNrdHJhY2UucHVzaCh7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uOiBlcnIuZnVuY3Rpb25OYW1lIHx8ICcnLFxyXG4gICAgICAgICAgICBmaWxlOiBlcnIuZmlsZU5hbWUgfHwgJycsXHJcbiAgICAgICAgICAgIGxpbmU6IGVyci5saW5lTnVtYmVyIHx8IDAsXHJcbiAgICAgICAgICAgIGNvbHVtbjogZXJyLmNvbHVtbk51bWJlciB8fCAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgdmFyIGZyYW1lc18yID0gcGFyc2UoZXJyKTtcclxuICAgICAgICBpZiAoZnJhbWVzXzIubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Zha2UnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZmFrZUVycikge1xyXG4gICAgICAgICAgICAgICAgZnJhbWVzXzIgPSBwYXJzZShmYWtlRXJyKTtcclxuICAgICAgICAgICAgICAgIGZyYW1lc18yLnNoaWZ0KCk7XHJcbiAgICAgICAgICAgICAgICBmcmFtZXNfMi5zaGlmdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAodmFyIF9pID0gMCwgZnJhbWVzXzEgPSBmcmFtZXNfMjsgX2kgPCBmcmFtZXNfMS5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICAgICAgdmFyIGZyYW1lID0gZnJhbWVzXzFbX2ldO1xyXG4gICAgICAgICAgICBiYWNrdHJhY2UucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbjogZnJhbWUuZnVuY3Rpb25OYW1lIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgZmlsZTogZnJhbWUuZmlsZU5hbWUgfHwgJycsXHJcbiAgICAgICAgICAgICAgICBsaW5lOiBmcmFtZS5saW5lTnVtYmVyIHx8IDAsXHJcbiAgICAgICAgICAgICAgICBjb2x1bW46IGZyYW1lLmNvbHVtbk51bWJlciB8fCAwLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB2YXIgdHlwZSA9IGVyci5uYW1lID8gZXJyLm5hbWUgOiAnJztcclxuICAgIHZhciBtc2cgPSBlcnIubWVzc2FnZSA/IFN0cmluZyhlcnIubWVzc2FnZSkgOiBTdHJpbmcoZXJyKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgICBtZXNzYWdlOiBtc2csXHJcbiAgICAgICAgYmFja3RyYWNlOiBiYWNrdHJhY2UsXHJcbiAgICB9O1xyXG59XG5cbnZhciByZSA9IG5ldyBSZWdFeHAoW1xyXG4gICAgJ14nLFxyXG4gICAgJ1xcXFxbKFxcXFwkLispXFxcXF0nLFxyXG4gICAgJ1xcXFxzJyxcclxuICAgICcoW1xcXFxzXFxcXFNdKyknLFxyXG4gICAgJyQnLFxyXG5dLmpvaW4oJycpKTtcclxuZnVuY3Rpb24gYW5ndWxhck1lc3NhZ2VGaWx0ZXIobm90aWNlKSB7XHJcbiAgICB2YXIgZXJyID0gbm90aWNlLmVycm9yc1swXTtcclxuICAgIGlmIChlcnIudHlwZSAhPT0gJycgJiYgZXJyLnR5cGUgIT09ICdFcnJvcicpIHtcclxuICAgICAgICByZXR1cm4gbm90aWNlO1xyXG4gICAgfVxyXG4gICAgdmFyIG0gPSBlcnIubWVzc2FnZS5tYXRjaChyZSk7XHJcbiAgICBpZiAobSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGVyci50eXBlID0gbVsxXTtcclxuICAgICAgICBlcnIubWVzc2FnZSA9IG1bMl07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbm90aWNlO1xyXG59XG5cbmZ1bmN0aW9uIG1ha2VEZWJvdW5jZUZpbHRlcigpIHtcclxuICAgIHZhciBsYXN0Tm90aWNlSlNPTjtcclxuICAgIHZhciB0aW1lb3V0O1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChub3RpY2UpIHtcclxuICAgICAgICB2YXIgcyA9IEpTT04uc3RyaW5naWZ5KG5vdGljZS5lcnJvcnMpO1xyXG4gICAgICAgIGlmIChzID09PSBsYXN0Tm90aWNlSlNPTikge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRpbWVvdXQpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsYXN0Tm90aWNlSlNPTiA9IHM7XHJcbiAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBsYXN0Tm90aWNlSlNPTiA9ICcnO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgIHJldHVybiBub3RpY2U7XHJcbiAgICB9O1xyXG59XG5cbnZhciBJR05PUkVEX01FU1NBR0VTID0gW1xyXG4gICAgJ1NjcmlwdCBlcnJvcicsXHJcbiAgICAnU2NyaXB0IGVycm9yLicsXHJcbiAgICAnSW52YWxpZEFjY2Vzc0Vycm9yJyxcclxuXTtcclxuZnVuY3Rpb24gaWdub3JlTm9pc2VGaWx0ZXIobm90aWNlKSB7XHJcbiAgICB2YXIgZXJyID0gbm90aWNlLmVycm9yc1swXTtcclxuICAgIGlmIChlcnIudHlwZSA9PT0gJycgJiYgSUdOT1JFRF9NRVNTQUdFUy5pbmRleE9mKGVyci5tZXNzYWdlKSAhPT0gLTEpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGlmIChlcnIuYmFja3RyYWNlICYmIGVyci5iYWNrdHJhY2UubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHZhciBmcmFtZSA9IGVyci5iYWNrdHJhY2VbMF07XHJcbiAgICAgICAgaWYgKGZyYW1lLmZpbGUgPT09ICc8YW5vbnltb3VzPicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5vdGljZTtcclxufVxuXG52YXIgcmUkMSA9IG5ldyBSZWdFeHAoW1xyXG4gICAgJ14nLFxyXG4gICAgJ1VuY2F1Z2h0XFxcXHMnLFxyXG4gICAgJyguKz8pJyxcclxuICAgICc6XFxcXHMnLFxyXG4gICAgJyguKyknLFxyXG4gICAgJyQnLFxyXG5dLmpvaW4oJycpKTtcclxuZnVuY3Rpb24gdW5jYXVnaHRNZXNzYWdlRmlsdGVyKG5vdGljZSkge1xyXG4gICAgdmFyIGVyciA9IG5vdGljZS5lcnJvcnNbMF07XHJcbiAgICBpZiAoZXJyLnR5cGUgIT09ICcnICYmIGVyci50eXBlICE9PSAnRXJyb3InKSB7XHJcbiAgICAgICAgcmV0dXJuIG5vdGljZTtcclxuICAgIH1cclxuICAgIHZhciBtID0gZXJyLm1lc3NhZ2UubWF0Y2gocmUkMSk7XHJcbiAgICBpZiAobSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGVyci50eXBlID0gbVsxXTtcclxuICAgICAgICBlcnIubWVzc2FnZSA9IG1bMl07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbm90aWNlO1xyXG59XG5cbnZhciBlcnJvcnMgPSB7XHJcbiAgICB1bmF1dGhvcml6ZWQ6IG5ldyBFcnJvcignYWlyYnJha2U6IHVuYXV0aG9yaXplZDogcHJvamVjdCBpZCBvciBrZXkgYXJlIHdyb25nJyksXHJcbiAgICBpcFJhdGVMaW1pdGVkOiBuZXcgRXJyb3IoJ2FpcmJyYWtlOiBJUCBpcyByYXRlIGxpbWl0ZWQnKSxcclxufTtcblxudmFyIHJhdGVMaW1pdFJlc2V0ID0gMDtcclxuZnVuY3Rpb24gcmVxdWVzdChyZXEpIHtcclxuICAgIHZhciB1dGltZSA9IERhdGUubm93KCkgLyAxMDAwO1xyXG4gICAgaWYgKHV0aW1lIDwgcmF0ZUxpbWl0UmVzZXQpIHtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3JzLmlwUmF0ZUxpbWl0ZWQpO1xyXG4gICAgfVxyXG4gICAgdmFyIG9wdCA9IHtcclxuICAgICAgICBtZXRob2Q6IHJlcS5tZXRob2QsXHJcbiAgICAgICAgYm9keTogcmVxLmJvZHksXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGZldGNoJDEocmVxLnVybCwgb3B0KS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7XHJcbiAgICAgICAgaWYgKHJlc3Auc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgICAgICAgdGhyb3cgZXJyb3JzLnVuYXV0aG9yaXplZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlc3Auc3RhdHVzID09PSA0MjkpIHtcclxuICAgICAgICAgICAgdmFyIHMgPSByZXNwLmhlYWRlcnMuZ2V0KCdYLVJhdGVMaW1pdC1EZWxheScpO1xyXG4gICAgICAgICAgICBpZiAoIXMpIHtcclxuICAgICAgICAgICAgICAgIHRocm93IGVycm9ycy5pcFJhdGVMaW1pdGVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBuID0gcGFyc2VJbnQocywgMTApO1xyXG4gICAgICAgICAgICBpZiAobiA+IDApIHtcclxuICAgICAgICAgICAgICAgIHJhdGVMaW1pdFJlc2V0ID0gRGF0ZS5ub3coKSAvIDEwMDAgKyBuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRocm93IGVycm9ycy5pcFJhdGVMaW1pdGVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzcC5zdGF0dXMgPT09IDIwNCkge1xyXG4gICAgICAgICAgICByZXR1cm4geyBqc29uOiBudWxsIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXNwLnN0YXR1cyA9PT0gNDA0KSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignNDA0IE5vdCBGb3VuZCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzcC5zdGF0dXMgPj0gMjAwICYmIHJlc3Auc3RhdHVzIDwgMzAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXNwLmpzb24oKS50aGVuKGZ1bmN0aW9uIChqc29uKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBqc29uOiBqc29uIH07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzcC5zdGF0dXMgPj0gNDAwICYmIHJlc3Auc3RhdHVzIDwgNTAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXNwLmpzb24oKS50aGVuKGZ1bmN0aW9uIChqc29uKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKGpzb24ubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzcC50ZXh0KCkudGhlbihmdW5jdGlvbiAoYm9keSkge1xyXG4gICAgICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKFwiYWlyYnJha2U6IGZldGNoOiB1bmV4cGVjdGVkIHJlc3BvbnNlOiBjb2RlPVwiICsgcmVzcC5zdGF0dXMgKyBcIiBib2R5PSdcIiArIGJvZHkgKyBcIidcIik7XHJcbiAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG59XG5cbmZ1bmN0aW9uIG1ha2VSZXF1ZXN0ZXIoYXBpKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHJlcSkge1xyXG4gICAgICAgIHJldHVybiByZXF1ZXN0JDEocmVxLCBhcGkpO1xyXG4gICAgfTtcclxufVxyXG52YXIgcmF0ZUxpbWl0UmVzZXQkMSA9IDA7XHJcbmZ1bmN0aW9uIHJlcXVlc3QkMShyZXEsIGFwaSkge1xyXG4gICAgdmFyIHV0aW1lID0gRGF0ZS5ub3coKSAvIDEwMDA7XHJcbiAgICBpZiAodXRpbWUgPCByYXRlTGltaXRSZXNldCQxKSB7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9ycy5pcFJhdGVMaW1pdGVkKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgYXBpKHtcclxuICAgICAgICAgICAgdXJsOiByZXEudXJsLFxyXG4gICAgICAgICAgICBtZXRob2Q6IHJlcS5tZXRob2QsXHJcbiAgICAgICAgICAgIGJvZHk6IHJlcS5ib2R5LFxyXG4gICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aW1lb3V0OiByZXEudGltZW91dCxcclxuICAgICAgICB9LCBmdW5jdGlvbiAoZXJyb3IsIHJlc3AsIGJvZHkpIHtcclxuICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghcmVzcC5zdGF0dXNDb2RlKSB7XHJcbiAgICAgICAgICAgICAgICBlcnJvciA9IG5ldyBFcnJvcihcImFpcmJyYWtlOiByZXF1ZXN0OiByZXNwb25zZSBzdGF0dXNDb2RlIGlzIFwiICsgcmVzcC5zdGF0dXNDb2RlKTtcclxuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHJlc3Auc3RhdHVzQ29kZSA9PT0gNDAxKSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3JzLnVuYXV0aG9yaXplZCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHJlc3Auc3RhdHVzQ29kZSA9PT0gNDI5KSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3JzLmlwUmF0ZUxpbWl0ZWQpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGggPSByZXNwLmhlYWRlcnNbJ3gtcmF0ZWxpbWl0LWRlbGF5J107XHJcbiAgICAgICAgICAgICAgICBpZiAoIWgpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB2YXIgcyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaCA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBzID0gaDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGggaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHMgPSBoWzBdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIG4gPSBwYXJzZUludChzLCAxMCk7XHJcbiAgICAgICAgICAgICAgICBpZiAobiA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICByYXRlTGltaXRSZXNldCQxID0gRGF0ZS5ub3coKSAvIDEwMDAgKyBuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChyZXNwLnN0YXR1c0NvZGUgPT09IDIwNCkge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7IGpzb246IG51bGwgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHJlc3Auc3RhdHVzQ29kZSA+PSAyMDAgJiYgcmVzcC5zdGF0dXNDb2RlIDwgMzAwKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIganNvbiA9IHZvaWQgMDtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAganNvbiA9IEpTT04ucGFyc2UoYm9keSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShqc29uKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAocmVzcC5zdGF0dXNDb2RlID49IDQwMCAmJiByZXNwLnN0YXR1c0NvZGUgPCA1MDApIHtcclxuICAgICAgICAgICAgICAgIHZhciBqc29uID0gdm9pZCAwO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShib2R5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlcnJvciA9IG5ldyBFcnJvcihqc29uLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBib2R5ID0gYm9keS50cmltKCk7XHJcbiAgICAgICAgICAgIGVycm9yID0gbmV3IEVycm9yKFwiYWlyYnJha2U6IG5vZGU6IHVuZXhwZWN0ZWQgcmVzcG9uc2U6IGNvZGU9XCIgKyByZXNwLnN0YXR1c0NvZGUgKyBcIiBib2R5PSdcIiArIGJvZHkgKyBcIidcIik7XHJcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxuXG5mdW5jdGlvbiBtYWtlUmVxdWVzdGVyJDEob3B0cykge1xyXG4gICAgaWYgKG9wdHMucmVxdWVzdCkge1xyXG4gICAgICAgIHJldHVybiBtYWtlUmVxdWVzdGVyKG9wdHMucmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVxdWVzdDtcclxufVxuXG52YXIgdGRpZ2VzdDtcclxudmFyIGhhc1RkaWdlc3QgPSBmYWxzZTtcclxudHJ5IHtcclxuICAgIHRkaWdlc3QgPSByZXF1aXJlKCd0ZGlnZXN0Jyk7XHJcbiAgICBoYXNUZGlnZXN0ID0gdHJ1ZTtcclxufVxyXG5jYXRjaCAoZXJyKSB7IH1cclxudmFyIFREaWdlc3RTdGF0ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gVERpZ2VzdFN0YXQoKSB7XHJcbiAgICAgICAgdGhpcy5jb3VudCA9IDA7XHJcbiAgICAgICAgdGhpcy5zdW0gPSAwO1xyXG4gICAgICAgIHRoaXMuc3Vtc3EgPSAwO1xyXG4gICAgICAgIHRoaXMuX3RkID0gbmV3IHRkaWdlc3QuRGlnZXN0KCk7XHJcbiAgICB9XHJcbiAgICBURGlnZXN0U3RhdC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKG1zKSB7XHJcbiAgICAgICAgaWYgKG1zID09PSAwKSB7XHJcbiAgICAgICAgICAgIG1zID0gMC4wMDAwMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb3VudCArPSAxO1xyXG4gICAgICAgIHRoaXMuc3VtICs9IG1zO1xyXG4gICAgICAgIHRoaXMuc3Vtc3EgKz0gbXMgKiBtcztcclxuICAgICAgICBpZiAodGhpcy5fdGQpIHtcclxuICAgICAgICAgICAgdGhpcy5fdGQucHVzaChtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIFREaWdlc3RTdGF0LnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgY291bnQ6IHRoaXMuY291bnQsXHJcbiAgICAgICAgICAgIHN1bTogdGhpcy5zdW0sXHJcbiAgICAgICAgICAgIHN1bXNxOiB0aGlzLnN1bXNxLFxyXG4gICAgICAgICAgICB0ZGlnZXN0Q2VudHJvaWRzOiB0ZGlnZXN0Q2VudHJvaWRzKHRoaXMuX3RkKSxcclxuICAgICAgICB9O1xyXG4gICAgfTtcclxuICAgIHJldHVybiBURGlnZXN0U3RhdDtcclxufSgpKTtcclxudmFyIFREaWdlc3RTdGF0R3JvdXBzID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xyXG4gICAgX19leHRlbmRzKFREaWdlc3RTdGF0R3JvdXBzLCBfc3VwZXIpO1xyXG4gICAgZnVuY3Rpb24gVERpZ2VzdFN0YXRHcm91cHMoKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XHJcbiAgICAgICAgX3RoaXMuZ3JvdXBzID0ge307XHJcbiAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgfVxyXG4gICAgVERpZ2VzdFN0YXRHcm91cHMucHJvdG90eXBlLmFkZEdyb3VwcyA9IGZ1bmN0aW9uICh0b3RhbE1zLCBncm91cHMpIHtcclxuICAgICAgICB0aGlzLmFkZCh0b3RhbE1zKTtcclxuICAgICAgICBmb3IgKHZhciBuYW1lXzEgaW4gZ3JvdXBzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkR3JvdXAobmFtZV8xLCBncm91cHNbbmFtZV8xXSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIFREaWdlc3RTdGF0R3JvdXBzLnByb3RvdHlwZS5hZGRHcm91cCA9IGZ1bmN0aW9uIChuYW1lLCBtcykge1xyXG4gICAgICAgIHZhciBzdGF0ID0gdGhpcy5ncm91cHNbbmFtZV07XHJcbiAgICAgICAgaWYgKCFzdGF0KSB7XHJcbiAgICAgICAgICAgIHN0YXQgPSBuZXcgVERpZ2VzdFN0YXQoKTtcclxuICAgICAgICAgICAgdGhpcy5ncm91cHNbbmFtZV0gPSBzdGF0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdGF0LmFkZChtcyk7XHJcbiAgICB9O1xyXG4gICAgVERpZ2VzdFN0YXRHcm91cHMucHJvdG90eXBlLnRvSlNPTiA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjb3VudDogdGhpcy5jb3VudCxcclxuICAgICAgICAgICAgc3VtOiB0aGlzLnN1bSxcclxuICAgICAgICAgICAgc3Vtc3E6IHRoaXMuc3Vtc3EsXHJcbiAgICAgICAgICAgIHRkaWdlc3RDZW50cm9pZHM6IHRkaWdlc3RDZW50cm9pZHModGhpcy5fdGQpLFxyXG4gICAgICAgICAgICBncm91cHM6IHRoaXMuZ3JvdXBzLFxyXG4gICAgICAgIH07XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIFREaWdlc3RTdGF0R3JvdXBzO1xyXG59KFREaWdlc3RTdGF0KSk7XHJcbmZ1bmN0aW9uIHRkaWdlc3RDZW50cm9pZHModGQpIHtcclxuICAgIHZhciBtZWFucyA9IFtdO1xyXG4gICAgdmFyIGNvdW50cyA9IFtdO1xyXG4gICAgdGQuY2VudHJvaWRzLmVhY2goZnVuY3Rpb24gKGMpIHtcclxuICAgICAgICBtZWFucy5wdXNoKGMubWVhbik7XHJcbiAgICAgICAgY291bnRzLnB1c2goYy5uKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBtZWFuOiBtZWFucyxcclxuICAgICAgICBjb3VudDogY291bnRzLFxyXG4gICAgfTtcclxufVxuXG52YXIgRkxVU0hfSU5URVJWQUwgPSAxNTAwMDsgLy8gMTUgc2Vjb25kc1xyXG52YXIgUm91dGVNZXRyaWMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICBfX2V4dGVuZHMoUm91dGVNZXRyaWMsIF9zdXBlcik7XHJcbiAgICBmdW5jdGlvbiBSb3V0ZU1ldHJpYyhtZXRob2QsIHJvdXRlLCBzdGF0dXNDb2RlLCBjb250ZW50VHlwZSkge1xyXG4gICAgICAgIGlmIChtZXRob2QgPT09IHZvaWQgMCkgeyBtZXRob2QgPSAnJzsgfVxyXG4gICAgICAgIGlmIChyb3V0ZSA9PT0gdm9pZCAwKSB7IHJvdXRlID0gJyc7IH1cclxuICAgICAgICBpZiAoc3RhdHVzQ29kZSA9PT0gdm9pZCAwKSB7IHN0YXR1c0NvZGUgPSAwOyB9XHJcbiAgICAgICAgaWYgKGNvbnRlbnRUeXBlID09PSB2b2lkIDApIHsgY29udGVudFR5cGUgPSAnJzsgfVxyXG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XHJcbiAgICAgICAgX3RoaXMubWV0aG9kID0gbWV0aG9kO1xyXG4gICAgICAgIF90aGlzLnJvdXRlID0gcm91dGU7XHJcbiAgICAgICAgX3RoaXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XHJcbiAgICAgICAgX3RoaXMuY29udGVudFR5cGUgPSBjb250ZW50VHlwZTtcclxuICAgICAgICBfdGhpcy5zdGFydFRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIHJldHVybiBfdGhpcztcclxuICAgIH1cclxuICAgIHJldHVybiBSb3V0ZU1ldHJpYztcclxufShCYXNlTWV0cmljKSk7XHJcbnZhciBSb3V0ZXNTdGF0cyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIFJvdXRlc1N0YXRzKG9wdCkge1xyXG4gICAgICAgIHRoaXMuX20gPSB7fTtcclxuICAgICAgICB0aGlzLl9vcHQgPSBvcHQ7XHJcbiAgICAgICAgdGhpcy5fdXJsID0gb3B0Lmhvc3QgKyBcIi9hcGkvdjUvcHJvamVjdHMvXCIgKyBvcHQucHJvamVjdElkICsgXCIvcm91dGVzLXN0YXRzP2tleT1cIiArIG9wdC5wcm9qZWN0S2V5O1xyXG4gICAgICAgIHRoaXMuX3JlcXVlc3RlciA9IG1ha2VSZXF1ZXN0ZXIkMShvcHQpO1xyXG4gICAgfVxyXG4gICAgUm91dGVzU3RhdHMucHJvdG90eXBlLm5vdGlmeSA9IGZ1bmN0aW9uIChyZXEpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIGlmICghaGFzVGRpZ2VzdCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBtcyA9IHJlcS5fZHVyYXRpb24oKTtcclxuICAgICAgICB2YXIgbWludXRlID0gNjAgKiAxMDAwO1xyXG4gICAgICAgIHZhciBzdGFydFRpbWUgPSBuZXcgRGF0ZShNYXRoLmZsb29yKHJlcS5zdGFydFRpbWUuZ2V0VGltZSgpIC8gbWludXRlKSAqIG1pbnV0ZSk7XHJcbiAgICAgICAgdmFyIGtleSA9IHtcclxuICAgICAgICAgICAgbWV0aG9kOiByZXEubWV0aG9kLFxyXG4gICAgICAgICAgICByb3V0ZTogcmVxLnJvdXRlLFxyXG4gICAgICAgICAgICBzdGF0dXNDb2RlOiByZXEuc3RhdHVzQ29kZSxcclxuICAgICAgICAgICAgdGltZTogc3RhcnRUaW1lLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdmFyIGtleVN0ciA9IEpTT04uc3RyaW5naWZ5KGtleSk7XHJcbiAgICAgICAgdmFyIHN0YXQgPSB0aGlzLl9tW2tleVN0cl07XHJcbiAgICAgICAgaWYgKCFzdGF0KSB7XHJcbiAgICAgICAgICAgIHN0YXQgPSBuZXcgVERpZ2VzdFN0YXQoKTtcclxuICAgICAgICAgICAgdGhpcy5fbVtrZXlTdHJdID0gc3RhdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3RhdC5hZGQobXMpO1xyXG4gICAgICAgIGlmICh0aGlzLl90aW1lcikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIF90aGlzLl9mbHVzaCgpO1xyXG4gICAgICAgIH0sIEZMVVNIX0lOVEVSVkFMKTtcclxuICAgIH07XHJcbiAgICBSb3V0ZXNTdGF0cy5wcm90b3R5cGUuX2ZsdXNoID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciByb3V0ZXMgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBrZXlTdHIgaW4gdGhpcy5fbSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX20uaGFzT3duUHJvcGVydHkoa2V5U3RyKSkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIGtleSA9IEpTT04ucGFyc2Uoa2V5U3RyKTtcclxuICAgICAgICAgICAgdmFyIHYgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwga2V5KSwgdGhpcy5fbVtrZXlTdHJdLnRvSlNPTigpKTtcclxuICAgICAgICAgICAgcm91dGVzLnB1c2godik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX20gPSB7fTtcclxuICAgICAgICB0aGlzLl90aW1lciA9IG51bGw7XHJcbiAgICAgICAgdmFyIG91dEpTT04gPSBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgIGVudmlyb25tZW50OiB0aGlzLl9vcHQuZW52aXJvbm1lbnQsXHJcbiAgICAgICAgICAgIHJvdXRlczogcm91dGVzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciByZXEgPSB7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICAgICAgICB1cmw6IHRoaXMuX3VybCxcclxuICAgICAgICAgICAgYm9keTogb3V0SlNPTixcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuX3JlcXVlc3RlcihyZXEpXHJcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChfcmVzcCkge1xyXG4gICAgICAgICAgICAvLyBub3RoaW5nXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHtcclxuICAgICAgICAgICAgaWYgKGNvbnNvbGUuZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2NhbiBub3QgcmVwb3J0IHJvdXRlcyBzdGF0cycsIGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gUm91dGVzU3RhdHM7XHJcbn0oKSk7XHJcbnZhciBSb3V0ZXNCcmVha2Rvd25zID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gUm91dGVzQnJlYWtkb3ducyhvcHQpIHtcclxuICAgICAgICB0aGlzLl9tID0ge307XHJcbiAgICAgICAgdGhpcy5fb3B0ID0gb3B0O1xyXG4gICAgICAgIHRoaXMuX3VybCA9IG9wdC5ob3N0ICsgXCIvYXBpL3Y1L3Byb2plY3RzL1wiICsgb3B0LnByb2plY3RJZCArIFwiL3JvdXRlcy1icmVha2Rvd25zP2tleT1cIiArIG9wdC5wcm9qZWN0S2V5O1xyXG4gICAgICAgIHRoaXMuX3JlcXVlc3RlciA9IG1ha2VSZXF1ZXN0ZXIkMShvcHQpO1xyXG4gICAgfVxyXG4gICAgUm91dGVzQnJlYWtkb3ducy5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gKHJlcSkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgaWYgKCFoYXNUZGlnZXN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlcS5zdGF0dXNDb2RlIDwgMjAwIHx8XHJcbiAgICAgICAgICAgIChyZXEuc3RhdHVzQ29kZSA+PSAzMDAgJiYgcmVxLnN0YXR1c0NvZGUgPCA0MDApIHx8XHJcbiAgICAgICAgICAgIHJlcS5zdGF0dXNDb2RlID09PSA0MDQgfHxcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMocmVxLl9ncm91cHMpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBtcyA9IHJlcS5fZHVyYXRpb24oKTtcclxuICAgICAgICBpZiAobXMgPT09IDApIHtcclxuICAgICAgICAgICAgbXMgPSAwLjAwMDAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgbWludXRlID0gNjAgKiAxMDAwO1xyXG4gICAgICAgIHZhciBzdGFydFRpbWUgPSBuZXcgRGF0ZShNYXRoLmZsb29yKHJlcS5zdGFydFRpbWUuZ2V0VGltZSgpIC8gbWludXRlKSAqIG1pbnV0ZSk7XHJcbiAgICAgICAgdmFyIGtleSA9IHtcclxuICAgICAgICAgICAgbWV0aG9kOiByZXEubWV0aG9kLFxyXG4gICAgICAgICAgICByb3V0ZTogcmVxLnJvdXRlLFxyXG4gICAgICAgICAgICByZXNwb25zZVR5cGU6IHRoaXMuX3Jlc3BvbnNlVHlwZShyZXEpLFxyXG4gICAgICAgICAgICB0aW1lOiBzdGFydFRpbWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB2YXIga2V5U3RyID0gSlNPTi5zdHJpbmdpZnkoa2V5KTtcclxuICAgICAgICB2YXIgc3RhdCA9IHRoaXMuX21ba2V5U3RyXTtcclxuICAgICAgICBpZiAoIXN0YXQpIHtcclxuICAgICAgICAgICAgc3RhdCA9IG5ldyBURGlnZXN0U3RhdEdyb3VwcygpO1xyXG4gICAgICAgICAgICB0aGlzLl9tW2tleVN0cl0gPSBzdGF0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdGF0LmFkZEdyb3VwcyhtcywgcmVxLl9ncm91cHMpO1xyXG4gICAgICAgIGlmICh0aGlzLl90aW1lcikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIF90aGlzLl9mbHVzaCgpO1xyXG4gICAgICAgIH0sIEZMVVNIX0lOVEVSVkFMKTtcclxuICAgIH07XHJcbiAgICBSb3V0ZXNCcmVha2Rvd25zLnByb3RvdHlwZS5fZmx1c2ggPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHJvdXRlcyA9IFtdO1xyXG4gICAgICAgIGZvciAodmFyIGtleVN0ciBpbiB0aGlzLl9tKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5fbS5oYXNPd25Qcm9wZXJ0eShrZXlTdHIpKSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIga2V5ID0gSlNPTi5wYXJzZShrZXlTdHIpO1xyXG4gICAgICAgICAgICB2YXIgdiA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCBrZXkpLCB0aGlzLl9tW2tleVN0cl0udG9KU09OKCkpO1xyXG4gICAgICAgICAgICByb3V0ZXMucHVzaCh2KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fbSA9IHt9O1xyXG4gICAgICAgIHRoaXMuX3RpbWVyID0gbnVsbDtcclxuICAgICAgICB2YXIgb3V0SlNPTiA9IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuX29wdC5lbnZpcm9ubWVudCxcclxuICAgICAgICAgICAgcm91dGVzOiByb3V0ZXMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdmFyIHJlcSA9IHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgICAgICAgIHVybDogdGhpcy5fdXJsLFxyXG4gICAgICAgICAgICBib2R5OiBvdXRKU09OLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5fcmVxdWVzdGVyKHJlcSlcclxuICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKF9yZXNwKSB7XHJcbiAgICAgICAgICAgIC8vIG5vdGhpbmdcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgICAgICBpZiAoY29uc29sZS5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignY2FuIG5vdCByZXBvcnQgcm91dGVzIGJyZWFrZG93bnMnLCBlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgUm91dGVzQnJlYWtkb3ducy5wcm90b3R5cGUuX3Jlc3BvbnNlVHlwZSA9IGZ1bmN0aW9uIChyZXEpIHtcclxuICAgICAgICBpZiAocmVxLnN0YXR1c0NvZGUgPj0gNTAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnNXh4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlcS5zdGF0dXNDb2RlID49IDQwMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gJzR4eCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghcmVxLmNvbnRlbnRUeXBlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlcS5jb250ZW50VHlwZS5zcGxpdCgnOycpWzBdLnNwbGl0KCcvJylbLTFdO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBSb3V0ZXNCcmVha2Rvd25zO1xyXG59KCkpO1xuXG52YXIgRkxVU0hfSU5URVJWQUwkMSA9IDE1MDAwOyAvLyAxNSBzZWNvbmRzXHJcbnZhciBRdWV1ZU1ldHJpYyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcclxuICAgIF9fZXh0ZW5kcyhRdWV1ZU1ldHJpYywgX3N1cGVyKTtcclxuICAgIGZ1bmN0aW9uIFF1ZXVlTWV0cmljKHF1ZXVlKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcclxuICAgICAgICBfdGhpcy5xdWV1ZSA9IHF1ZXVlO1xyXG4gICAgICAgIF90aGlzLnN0YXJ0VGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFF1ZXVlTWV0cmljO1xyXG59KEJhc2VNZXRyaWMpKTtcclxudmFyIFF1ZXVlc1N0YXRzID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gUXVldWVzU3RhdHMob3B0KSB7XHJcbiAgICAgICAgdGhpcy5fbSA9IHt9O1xyXG4gICAgICAgIHRoaXMuX29wdCA9IG9wdDtcclxuICAgICAgICB0aGlzLl91cmwgPSBvcHQuaG9zdCArIFwiL2FwaS92NS9wcm9qZWN0cy9cIiArIG9wdC5wcm9qZWN0SWQgKyBcIi9xdWV1ZXMtc3RhdHM/a2V5PVwiICsgb3B0LnByb2plY3RLZXk7XHJcbiAgICAgICAgdGhpcy5fcmVxdWVzdGVyID0gbWFrZVJlcXVlc3RlciQxKG9wdCk7XHJcbiAgICB9XHJcbiAgICBRdWV1ZXNTdGF0cy5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gKHEpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIGlmICghaGFzVGRpZ2VzdCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBtcyA9IHEuX2R1cmF0aW9uKCk7XHJcbiAgICAgICAgaWYgKG1zID09PSAwKSB7XHJcbiAgICAgICAgICAgIG1zID0gMC4wMDAwMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG1pbnV0ZSA9IDYwICogMTAwMDtcclxuICAgICAgICB2YXIgc3RhcnRUaW1lID0gbmV3IERhdGUoTWF0aC5mbG9vcihxLnN0YXJ0VGltZS5nZXRUaW1lKCkgLyBtaW51dGUpICogbWludXRlKTtcclxuICAgICAgICB2YXIga2V5ID0ge1xyXG4gICAgICAgICAgICBxdWV1ZTogcS5xdWV1ZSxcclxuICAgICAgICAgICAgdGltZTogc3RhcnRUaW1lLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdmFyIGtleVN0ciA9IEpTT04uc3RyaW5naWZ5KGtleSk7XHJcbiAgICAgICAgdmFyIHN0YXQgPSB0aGlzLl9tW2tleVN0cl07XHJcbiAgICAgICAgaWYgKCFzdGF0KSB7XHJcbiAgICAgICAgICAgIHN0YXQgPSBuZXcgVERpZ2VzdFN0YXRHcm91cHMoKTtcclxuICAgICAgICAgICAgdGhpcy5fbVtrZXlTdHJdID0gc3RhdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3RhdC5hZGRHcm91cHMobXMsIHEuX2dyb3Vwcyk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RpbWVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgX3RoaXMuX2ZsdXNoKCk7XHJcbiAgICAgICAgfSwgRkxVU0hfSU5URVJWQUwkMSk7XHJcbiAgICB9O1xyXG4gICAgUXVldWVzU3RhdHMucHJvdG90eXBlLl9mbHVzaCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgcXVldWVzID0gW107XHJcbiAgICAgICAgZm9yICh2YXIga2V5U3RyIGluIHRoaXMuX20pIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9tLmhhc093blByb3BlcnR5KGtleVN0cikpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBrZXkgPSBKU09OLnBhcnNlKGtleVN0cik7XHJcbiAgICAgICAgICAgIHZhciB2ID0gX19hc3NpZ24oX19hc3NpZ24oe30sIGtleSksIHRoaXMuX21ba2V5U3RyXS50b0pTT04oKSk7XHJcbiAgICAgICAgICAgIHF1ZXVlcy5wdXNoKHYpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9tID0ge307XHJcbiAgICAgICAgdGhpcy5fdGltZXIgPSBudWxsO1xyXG4gICAgICAgIHZhciBvdXRKU09OID0gSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgICBlbnZpcm9ubWVudDogdGhpcy5fb3B0LmVudmlyb25tZW50LFxyXG4gICAgICAgICAgICBxdWV1ZXM6IHF1ZXVlcyxcclxuICAgICAgICB9KTtcclxuICAgICAgICB2YXIgcmVxID0ge1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICAgICAgdXJsOiB0aGlzLl91cmwsXHJcbiAgICAgICAgICAgIGJvZHk6IG91dEpTT04sXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLl9yZXF1ZXN0ZXIocmVxKVxyXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoX3Jlc3ApIHtcclxuICAgICAgICAgICAgLy8gbm90aGluZ1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyKSB7XHJcbiAgICAgICAgICAgIGlmIChjb25zb2xlLmVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdjYW4gbm90IHJlcG9ydCBxdWV1ZXMgYnJlYWtkb3ducycsIGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gUXVldWVzU3RhdHM7XHJcbn0oKSk7XG5cbnZhciBGTFVTSF9JTlRFUlZBTCQyID0gMTUwMDA7IC8vIDE1IHNlY29uZHNcclxudmFyIFF1ZXJ5SW5mbyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIFF1ZXJ5SW5mbyhxdWVyeSkge1xyXG4gICAgICAgIGlmIChxdWVyeSA9PT0gdm9pZCAwKSB7IHF1ZXJ5ID0gJyc7IH1cclxuICAgICAgICB0aGlzLm1ldGhvZCA9ICcnO1xyXG4gICAgICAgIHRoaXMucm91dGUgPSAnJztcclxuICAgICAgICB0aGlzLnF1ZXJ5ID0gJyc7XHJcbiAgICAgICAgdGhpcy5mdW5jID0gJyc7XHJcbiAgICAgICAgdGhpcy5maWxlID0gJyc7XHJcbiAgICAgICAgdGhpcy5saW5lID0gMDtcclxuICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xyXG4gICAgfVxyXG4gICAgUXVlcnlJbmZvLnByb3RvdHlwZS5fZHVyYXRpb24gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVuZFRpbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5lbmRUaW1lID0gbmV3IERhdGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW5kVGltZS5nZXRUaW1lKCkgLSB0aGlzLnN0YXJ0VGltZS5nZXRUaW1lKCk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIFF1ZXJ5SW5mbztcclxufSgpKTtcclxudmFyIFF1ZXJpZXNTdGF0cyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIFF1ZXJpZXNTdGF0cyhvcHQpIHtcclxuICAgICAgICB0aGlzLl9tID0ge307XHJcbiAgICAgICAgdGhpcy5fb3B0ID0gb3B0O1xyXG4gICAgICAgIHRoaXMuX3VybCA9IG9wdC5ob3N0ICsgXCIvYXBpL3Y1L3Byb2plY3RzL1wiICsgb3B0LnByb2plY3RJZCArIFwiL3F1ZXJpZXMtc3RhdHM/a2V5PVwiICsgb3B0LnByb2plY3RLZXk7XHJcbiAgICAgICAgdGhpcy5fcmVxdWVzdGVyID0gbWFrZVJlcXVlc3RlciQxKG9wdCk7XHJcbiAgICB9XHJcbiAgICBRdWVyaWVzU3RhdHMucHJvdG90eXBlLnN0YXJ0ID0gZnVuY3Rpb24gKHF1ZXJ5KSB7XHJcbiAgICAgICAgaWYgKHF1ZXJ5ID09PSB2b2lkIDApIHsgcXVlcnkgPSAnJzsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgUXVlcnlJbmZvKHF1ZXJ5KTtcclxuICAgIH07XHJcbiAgICBRdWVyaWVzU3RhdHMucHJvdG90eXBlLm5vdGlmeSA9IGZ1bmN0aW9uIChxKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICBpZiAoIWhhc1RkaWdlc3QpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgbXMgPSBxLl9kdXJhdGlvbigpO1xyXG4gICAgICAgIHZhciBtaW51dGUgPSA2MCAqIDEwMDA7XHJcbiAgICAgICAgdmFyIHN0YXJ0VGltZSA9IG5ldyBEYXRlKE1hdGguZmxvb3IocS5zdGFydFRpbWUuZ2V0VGltZSgpIC8gbWludXRlKSAqIG1pbnV0ZSk7XHJcbiAgICAgICAgdmFyIGtleSA9IHtcclxuICAgICAgICAgICAgbWV0aG9kOiBxLm1ldGhvZCxcclxuICAgICAgICAgICAgcm91dGU6IHEucm91dGUsXHJcbiAgICAgICAgICAgIHF1ZXJ5OiBxLnF1ZXJ5LFxyXG4gICAgICAgICAgICBmdW5jOiBxLmZ1bmMsXHJcbiAgICAgICAgICAgIGZpbGU6IHEuZmlsZSxcclxuICAgICAgICAgICAgbGluZTogcS5saW5lLFxyXG4gICAgICAgICAgICB0aW1lOiBzdGFydFRpbWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB2YXIga2V5U3RyID0gSlNPTi5zdHJpbmdpZnkoa2V5KTtcclxuICAgICAgICB2YXIgc3RhdCA9IHRoaXMuX21ba2V5U3RyXTtcclxuICAgICAgICBpZiAoIXN0YXQpIHtcclxuICAgICAgICAgICAgc3RhdCA9IG5ldyBURGlnZXN0U3RhdCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9tW2tleVN0cl0gPSBzdGF0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdGF0LmFkZChtcyk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RpbWVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgX3RoaXMuX2ZsdXNoKCk7XHJcbiAgICAgICAgfSwgRkxVU0hfSU5URVJWQUwkMik7XHJcbiAgICB9O1xyXG4gICAgUXVlcmllc1N0YXRzLnByb3RvdHlwZS5fZmx1c2ggPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHF1ZXJpZXMgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBrZXlTdHIgaW4gdGhpcy5fbSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX20uaGFzT3duUHJvcGVydHkoa2V5U3RyKSkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIGtleSA9IEpTT04ucGFyc2Uoa2V5U3RyKTtcclxuICAgICAgICAgICAgdmFyIHYgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwga2V5KSwgdGhpcy5fbVtrZXlTdHJdLnRvSlNPTigpKTtcclxuICAgICAgICAgICAgcXVlcmllcy5wdXNoKHYpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9tID0ge307XHJcbiAgICAgICAgdGhpcy5fdGltZXIgPSBudWxsO1xyXG4gICAgICAgIHZhciBvdXRKU09OID0gSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgICBlbnZpcm9ubWVudDogdGhpcy5fb3B0LmVudmlyb25tZW50LFxyXG4gICAgICAgICAgICBxdWVyaWVzOiBxdWVyaWVzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciByZXEgPSB7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICAgICAgICB1cmw6IHRoaXMuX3VybCxcclxuICAgICAgICAgICAgYm9keTogb3V0SlNPTixcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuX3JlcXVlc3RlcihyZXEpXHJcbiAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChfcmVzcCkge1xyXG4gICAgICAgICAgICAvLyBub3RoaW5nXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHtcclxuICAgICAgICAgICAgaWYgKGNvbnNvbGUuZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2NhbiBub3QgcmVwb3J0IHF1ZXJpZXMgc3RhdHMnLCBlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIFF1ZXJpZXNTdGF0cztcclxufSgpKTtcblxudmFyIEJhc2VOb3RpZmllciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIEJhc2VOb3RpZmllcihvcHQpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIHRoaXMuX2ZpbHRlcnMgPSBbXTtcclxuICAgICAgICB0aGlzLl9zY29wZSA9IG5ldyBTY29wZSgpO1xyXG4gICAgICAgIHRoaXMuX29uQ2xvc2UgPSBbXTtcclxuICAgICAgICBpZiAoIW9wdC5wcm9qZWN0SWQgfHwgIW9wdC5wcm9qZWN0S2V5KSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYWlyYnJha2U6IHByb2plY3RJZCBhbmQgcHJvamVjdEtleSBhcmUgcmVxdWlyZWQnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fb3B0ID0gb3B0O1xyXG4gICAgICAgIHRoaXMuX29wdC5ob3N0ID0gdGhpcy5fb3B0Lmhvc3QgfHwgJ2h0dHBzOi8vYXBpLmFpcmJyYWtlLmlvJztcclxuICAgICAgICB0aGlzLl9vcHQudGltZW91dCA9IHRoaXMuX29wdC50aW1lb3V0IHx8IDEwMDAwO1xyXG4gICAgICAgIHRoaXMuX29wdC5rZXlzQmxhY2tsaXN0ID0gdGhpcy5fb3B0LmtleXNCbGFja2xpc3QgfHwgWy9wYXNzd29yZC8sIC9zZWNyZXQvXTtcclxuICAgICAgICB0aGlzLl91cmwgPSB0aGlzLl9vcHQuaG9zdCArIFwiL2FwaS92My9wcm9qZWN0cy9cIiArIHRoaXMuX29wdC5wcm9qZWN0SWQgKyBcIi9ub3RpY2VzP2tleT1cIiArIHRoaXMuX29wdC5wcm9qZWN0S2V5O1xyXG4gICAgICAgIHRoaXMuX3Byb2Nlc3NvciA9IHRoaXMuX29wdC5wcm9jZXNzb3IgfHwgZXNwUHJvY2Vzc29yO1xyXG4gICAgICAgIHRoaXMuX3JlcXVlc3RlciA9IG1ha2VSZXF1ZXN0ZXIkMSh0aGlzLl9vcHQpO1xyXG4gICAgICAgIHRoaXMuYWRkRmlsdGVyKGlnbm9yZU5vaXNlRmlsdGVyKTtcclxuICAgICAgICB0aGlzLmFkZEZpbHRlcihtYWtlRGVib3VuY2VGaWx0ZXIoKSk7XHJcbiAgICAgICAgdGhpcy5hZGRGaWx0ZXIodW5jYXVnaHRNZXNzYWdlRmlsdGVyKTtcclxuICAgICAgICB0aGlzLmFkZEZpbHRlcihhbmd1bGFyTWVzc2FnZUZpbHRlcik7XHJcbiAgICAgICAgdGhpcy5hZGRGaWx0ZXIoZnVuY3Rpb24gKG5vdGljZSkge1xyXG4gICAgICAgICAgICBub3RpY2UuY29udGV4dC5ub3RpZmllciA9IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdhaXJicmFrZS1qcy9icm93c2VyJyxcclxuICAgICAgICAgICAgICAgIHZlcnNpb246ICcxLjAuNicsXHJcbiAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovL2dpdGh1Yi5jb20vYWlyYnJha2UvYWlyYnJha2UtanMnLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBpZiAoX3RoaXMuX29wdC5lbnZpcm9ubWVudCkge1xyXG4gICAgICAgICAgICAgICAgbm90aWNlLmNvbnRleHQuZW52aXJvbm1lbnQgPSBfdGhpcy5fb3B0LmVudmlyb25tZW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBub3RpY2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXMgPSBuZXcgUm91dGVzKHRoaXMpO1xyXG4gICAgICAgIHRoaXMucXVldWVzID0gbmV3IFF1ZXVlcyh0aGlzKTtcclxuICAgICAgICB0aGlzLnF1ZXJpZXMgPSBuZXcgUXVlcmllc1N0YXRzKHRoaXMuX29wdCk7XHJcbiAgICB9XHJcbiAgICBCYXNlTm90aWZpZXIucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLl9vbkNsb3NlOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICB2YXIgZm4gPSBfYVtfaV07XHJcbiAgICAgICAgICAgIGZuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIEJhc2VOb3RpZmllci5wcm90b3R5cGUuc2NvcGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Njb3BlO1xyXG4gICAgfTtcclxuICAgIEJhc2VOb3RpZmllci5wcm90b3R5cGUuc2V0QWN0aXZlU2NvcGUgPSBmdW5jdGlvbiAoc2NvcGUpIHtcclxuICAgICAgICB0aGlzLl9zY29wZSA9IHNjb3BlO1xyXG4gICAgfTtcclxuICAgIEJhc2VOb3RpZmllci5wcm90b3R5cGUuYWRkRmlsdGVyID0gZnVuY3Rpb24gKGZpbHRlcikge1xyXG4gICAgICAgIHRoaXMuX2ZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgfTtcclxuICAgIEJhc2VOb3RpZmllci5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgIHZhciBub3RpY2UgPSB7XHJcbiAgICAgICAgICAgIGVycm9yczogW10sXHJcbiAgICAgICAgICAgIGNvbnRleHQ6IE9iamVjdC5hc3NpZ24oeyBzZXZlcml0eTogJ2Vycm9yJyB9LCB0aGlzLnNjb3BlKCkuY29udGV4dCgpLCBlcnIuY29udGV4dCksXHJcbiAgICAgICAgICAgIHBhcmFtczogZXJyLnBhcmFtcyB8fCB7fSxcclxuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IGVyci5lbnZpcm9ubWVudCB8fCB7fSxcclxuICAgICAgICAgICAgc2Vzc2lvbjogZXJyLnNlc3Npb24gfHwge30sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAodHlwZW9mIGVyciAhPT0gJ29iamVjdCcgfHwgZXJyLmVycm9yID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgZXJyID0geyBlcnJvcjogZXJyIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghZXJyLmVycm9yKSB7XHJcbiAgICAgICAgICAgIG5vdGljZS5lcnJvciA9IG5ldyBFcnJvcihcImFpcmJyYWtlOiBnb3QgZXJyPVwiICsgSlNPTi5zdHJpbmdpZnkoZXJyLmVycm9yKSArIFwiLCB3YW50ZWQgYW4gRXJyb3JcIik7XHJcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobm90aWNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGVycm9yID0gdGhpcy5fcHJvY2Vzc29yKGVyci5lcnJvcik7XHJcbiAgICAgICAgbm90aWNlLmVycm9ycy5wdXNoKGVycm9yKTtcclxuICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gdGhpcy5fZmlsdGVyczsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICAgICAgdmFyIGZpbHRlciA9IF9hW19pXTtcclxuICAgICAgICAgICAgdmFyIHIgPSBmaWx0ZXIobm90aWNlKTtcclxuICAgICAgICAgICAgaWYgKHIgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIG5vdGljZS5lcnJvciA9IG5ldyBFcnJvcignYWlyYnJha2U6IGVycm9yIGlzIGZpbHRlcmVkJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5vdGljZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbm90aWNlID0gcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFub3RpY2UuY29udGV4dCkge1xyXG4gICAgICAgICAgICBub3RpY2UuY29udGV4dCA9IHt9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBub3RpY2UuY29udGV4dC5sYW5ndWFnZSA9ICdKYXZhU2NyaXB0JztcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VuZE5vdGljZShub3RpY2UpO1xyXG4gICAgfTtcclxuICAgIEJhc2VOb3RpZmllci5wcm90b3R5cGUuX3NlbmROb3RpY2UgPSBmdW5jdGlvbiAobm90aWNlKSB7XHJcbiAgICAgICAgdmFyIGJvZHkgPSBqc29uaWZ5Tm90aWNlKG5vdGljZSwge1xyXG4gICAgICAgICAgICBrZXlzQmxhY2tsaXN0OiB0aGlzLl9vcHQua2V5c0JsYWNrbGlzdCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAodGhpcy5fb3B0LnJlcG9ydGVyKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fb3B0LnJlcG9ydGVyID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fb3B0LnJlcG9ydGVyKG5vdGljZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ2FpcmJyYWtlOiBvcHRpb25zLnJlcG9ydGVyIG11c3QgYmUgYSBmdW5jdGlvbicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciByZXEgPSB7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICAgICAgICB1cmw6IHRoaXMuX3VybCxcclxuICAgICAgICAgICAgYm9keTogYm9keSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0ZXIocmVxKVxyXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcCkge1xyXG4gICAgICAgICAgICBub3RpY2UuaWQgPSByZXNwLmpzb24uaWQ7XHJcbiAgICAgICAgICAgIHJldHVybiBub3RpY2U7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHtcclxuICAgICAgICAgICAgbm90aWNlLmVycm9yID0gZXJyO1xyXG4gICAgICAgICAgICByZXR1cm4gbm90aWNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIEJhc2VOb3RpZmllci5wcm90b3R5cGUud3JhcCA9IGZ1bmN0aW9uIChmbiwgcHJvcHMpIHtcclxuICAgICAgICBpZiAocHJvcHMgPT09IHZvaWQgMCkgeyBwcm9wcyA9IFtdOyB9XHJcbiAgICAgICAgaWYgKGZuLl9haXJicmFrZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby10aGlzLWFzc2lnbm1lbnRcclxuICAgICAgICB2YXIgY2xpZW50ID0gdGhpcztcclxuICAgICAgICB2YXIgYWlyYnJha2VXcmFwcGVyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB2YXIgZm5BcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcclxuICAgICAgICAgICAgdmFyIHdyYXBwZWRBcmdzID0gY2xpZW50Ll93cmFwQXJndW1lbnRzKGZuQXJncyk7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgd3JhcHBlZEFyZ3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNsaWVudC5ub3RpZnkoeyBlcnJvcjogZXJyLCBwYXJhbXM6IHsgYXJndW1lbnRzOiBmbkFyZ3MgfSB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2lnbm9yZU5leHRXaW5kb3dFcnJvcigpO1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBmb3IgKHZhciBwcm9wIGluIGZuKSB7XHJcbiAgICAgICAgICAgIGlmIChmbi5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xyXG4gICAgICAgICAgICAgICAgYWlyYnJha2VXcmFwcGVyW3Byb3BdID0gZm5bcHJvcF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBwcm9wc18xID0gcHJvcHM7IF9pIDwgcHJvcHNfMS5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICAgICAgdmFyIHByb3AgPSBwcm9wc18xW19pXTtcclxuICAgICAgICAgICAgaWYgKGZuLmhhc093blByb3BlcnR5KHByb3ApKSB7XHJcbiAgICAgICAgICAgICAgICBhaXJicmFrZVdyYXBwZXJbcHJvcF0gPSBmbltwcm9wXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBhaXJicmFrZVdyYXBwZXIuX2FpcmJyYWtlID0gdHJ1ZTtcclxuICAgICAgICBhaXJicmFrZVdyYXBwZXIuaW5uZXIgPSBmbjtcclxuICAgICAgICByZXR1cm4gYWlyYnJha2VXcmFwcGVyO1xyXG4gICAgfTtcclxuICAgIEJhc2VOb3RpZmllci5wcm90b3R5cGUuX3dyYXBBcmd1bWVudHMgPSBmdW5jdGlvbiAoYXJncykge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgYXJnID0gYXJnc1tpXTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgIGFyZ3NbaV0gPSB0aGlzLndyYXAoYXJnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYXJncztcclxuICAgIH07XHJcbiAgICBCYXNlTm90aWZpZXIucHJvdG90eXBlLl9pZ25vcmVOZXh0V2luZG93RXJyb3IgPSBmdW5jdGlvbiAoKSB7IH07XHJcbiAgICBCYXNlTm90aWZpZXIucHJvdG90eXBlLmNhbGwgPSBmdW5jdGlvbiAoZm4pIHtcclxuICAgICAgICB2YXIgX2FyZ3MgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICBfYXJnc1tfaSAtIDFdID0gYXJndW1lbnRzW19pXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHdyYXBwZXIgPSB0aGlzLndyYXAoZm4pO1xyXG4gICAgICAgIHJldHVybiB3cmFwcGVyLmFwcGx5KHRoaXMsIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSkpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBCYXNlTm90aWZpZXI7XHJcbn0oKSk7XHJcbnZhciBSb3V0ZXMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBSb3V0ZXMobm90aWZpZXIpIHtcclxuICAgICAgICB0aGlzLl9ub3RpZmllciA9IG5vdGlmaWVyO1xyXG4gICAgICAgIHRoaXMuX3JvdXRlcyA9IG5ldyBSb3V0ZXNTdGF0cyhub3RpZmllci5fb3B0KTtcclxuICAgICAgICB0aGlzLl9icmVha2Rvd25zID0gbmV3IFJvdXRlc0JyZWFrZG93bnMobm90aWZpZXIuX29wdCk7XHJcbiAgICB9XHJcbiAgICBSb3V0ZXMucHJvdG90eXBlLnN0YXJ0ID0gZnVuY3Rpb24gKG1ldGhvZCwgcm91dGUsIHN0YXR1c0NvZGUsIGNvbnRlbnRUeXBlKSB7XHJcbiAgICAgICAgaWYgKG1ldGhvZCA9PT0gdm9pZCAwKSB7IG1ldGhvZCA9ICcnOyB9XHJcbiAgICAgICAgaWYgKHJvdXRlID09PSB2b2lkIDApIHsgcm91dGUgPSAnJzsgfVxyXG4gICAgICAgIGlmIChzdGF0dXNDb2RlID09PSB2b2lkIDApIHsgc3RhdHVzQ29kZSA9IDA7IH1cclxuICAgICAgICBpZiAoY29udGVudFR5cGUgPT09IHZvaWQgMCkgeyBjb250ZW50VHlwZSA9ICcnOyB9XHJcbiAgICAgICAgdmFyIG1ldHJpYyA9IG5ldyBSb3V0ZU1ldHJpYyhtZXRob2QsIHJvdXRlLCBzdGF0dXNDb2RlLCBjb250ZW50VHlwZSk7XHJcbiAgICAgICAgdmFyIHNjb3BlID0gdGhpcy5fbm90aWZpZXIuc2NvcGUoKS5jbG9uZSgpO1xyXG4gICAgICAgIHNjb3BlLnNldENvbnRleHQoeyBodHRwTWV0aG9kOiBtZXRob2QsIHJvdXRlOiByb3V0ZSB9KTtcclxuICAgICAgICBzY29wZS5zZXRSb3V0ZU1ldHJpYyhtZXRyaWMpO1xyXG4gICAgICAgIHRoaXMuX25vdGlmaWVyLnNldEFjdGl2ZVNjb3BlKHNjb3BlKTtcclxuICAgICAgICByZXR1cm4gbWV0cmljO1xyXG4gICAgfTtcclxuICAgIFJvdXRlcy5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gKHJlcSkge1xyXG4gICAgICAgIHJlcS5lbmQoKTtcclxuICAgICAgICB0aGlzLl9yb3V0ZXMubm90aWZ5KHJlcSk7XHJcbiAgICAgICAgdGhpcy5fYnJlYWtkb3ducy5ub3RpZnkocmVxKTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gUm91dGVzO1xyXG59KCkpO1xyXG52YXIgUXVldWVzID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gUXVldWVzKG5vdGlmaWVyKSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZpZXIgPSBub3RpZmllcjtcclxuICAgICAgICB0aGlzLl9xdWV1ZXMgPSBuZXcgUXVldWVzU3RhdHMobm90aWZpZXIuX29wdCk7XHJcbiAgICB9XHJcbiAgICBRdWV1ZXMucHJvdG90eXBlLnN0YXJ0ID0gZnVuY3Rpb24gKHF1ZXVlKSB7XHJcbiAgICAgICAgdmFyIG1ldHJpYyA9IG5ldyBRdWV1ZU1ldHJpYyhxdWV1ZSk7XHJcbiAgICAgICAgdmFyIHNjb3BlID0gdGhpcy5fbm90aWZpZXIuc2NvcGUoKS5jbG9uZSgpO1xyXG4gICAgICAgIHNjb3BlLnNldENvbnRleHQoeyBxdWV1ZTogcXVldWUgfSk7XHJcbiAgICAgICAgc2NvcGUuc2V0UXVldWVNZXRyaWMobWV0cmljKTtcclxuICAgICAgICB0aGlzLl9ub3RpZmllci5zZXRBY3RpdmVTY29wZShzY29wZSk7XHJcbiAgICAgICAgcmV0dXJuIG1ldHJpYztcclxuICAgIH07XHJcbiAgICBRdWV1ZXMucHJvdG90eXBlLm5vdGlmeSA9IGZ1bmN0aW9uIChxKSB7XHJcbiAgICAgICAgcS5lbmQoKTtcclxuICAgICAgICB0aGlzLl9xdWV1ZXMubm90aWZ5KHEpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBRdWV1ZXM7XHJcbn0oKSk7XG5cbmZ1bmN0aW9uIHdpbmRvd0ZpbHRlcihub3RpY2UpIHtcclxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yICYmIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KSB7XHJcbiAgICAgICAgbm90aWNlLmNvbnRleHQudXNlckFnZW50ID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7XHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uKSB7XHJcbiAgICAgICAgbm90aWNlLmNvbnRleHQudXJsID0gU3RyaW5nKHdpbmRvdy5sb2NhdGlvbik7XHJcbiAgICAgICAgLy8gU2V0IHJvb3QgZGlyZWN0b3J5IHRvIGdyb3VwIGVycm9ycyBvbiBkaWZmZXJlbnQgc3ViZG9tYWlucyB0b2dldGhlci5cclxuICAgICAgICBub3RpY2UuY29udGV4dC5yb290RGlyZWN0b3J5ID1cclxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5vdGljZTtcclxufVxuXG52YXIgQ09OU09MRV9NRVRIT0RTID0gWydkZWJ1ZycsICdsb2cnLCAnaW5mbycsICd3YXJuJywgJ2Vycm9yJ107XHJcbmZ1bmN0aW9uIGluc3RydW1lbnRDb25zb2xlKG5vdGlmaWVyKSB7XHJcbiAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uIChtKSB7XHJcbiAgICAgICAgaWYgKCEobSBpbiBjb25zb2xlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJjb250aW51ZVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgb2xkRm4gPSBjb25zb2xlW21dO1xyXG4gICAgICAgIHZhciBuZXdGbiA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciBhcmdzID0gW107XHJcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb2xkRm4uYXBwbHkoY29uc29sZSwgYXJncyk7XHJcbiAgICAgICAgICAgIG5vdGlmaWVyLnNjb3BlKCkucHVzaEhpc3Rvcnkoe1xyXG4gICAgICAgICAgICAgICAgdHlwZTogJ2xvZycsXHJcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogbSxcclxuICAgICAgICAgICAgICAgIGFyZ3VtZW50czogYXJncyxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbmV3Rm4uaW5uZXIgPSBvbGRGbjtcclxuICAgICAgICBjb25zb2xlW21dID0gbmV3Rm47XHJcbiAgICB9O1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXRoaXMtYXNzaWdubWVudFxyXG4gICAgZm9yICh2YXIgX2kgPSAwLCBDT05TT0xFX01FVEhPRFNfMSA9IENPTlNPTEVfTUVUSE9EUzsgX2kgPCBDT05TT0xFX01FVEhPRFNfMS5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICB2YXIgbSA9IENPTlNPTEVfTUVUSE9EU18xW19pXTtcclxuICAgICAgICBfbG9vcF8xKG0pO1xyXG4gICAgfVxyXG59XG5cbnZhciBlbGVtQXR0cnMgPSBbJ3R5cGUnLCAnbmFtZScsICdzcmMnXTtcclxuZnVuY3Rpb24gaW5zdHJ1bWVudERPTShub3RpZmllcikge1xyXG4gICAgdmFyIGhhbmRsZXIgPSBtYWtlRXZlbnRIYW5kbGVyKG5vdGlmaWVyKTtcclxuICAgIGlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikge1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgaGFuZGxlcik7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24gKGV2ZW50KSB7XHJcbiAgICAgICAgICAgIGlmICgnZXJyb3InIGluIGV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaGFuZGxlcihldmVudCk7XHJcbiAgICAgICAgfSwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAnb2JqZWN0JyAmJiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGhhbmRsZXIpO1xyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlcik7XHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCBoYW5kbGVyKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBtYWtlRXZlbnRIYW5kbGVyKG5vdGlmaWVyKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKGV2ZW50KSB7XHJcbiAgICAgICAgdmFyIHRhcmdldDtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0YXJnZXQgPSBldmVudC50YXJnZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChfKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0YXJnZXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgc3RhdGUgPSB7IHR5cGU6IGV2ZW50LnR5cGUgfTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBzdGF0ZS50YXJnZXQgPSBlbGVtUGF0aCh0YXJnZXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIHN0YXRlLnRhcmdldCA9IFwiPFwiICsgU3RyaW5nKGVycikgKyBcIj5cIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbm90aWZpZXIuc2NvcGUoKS5wdXNoSGlzdG9yeShzdGF0ZSk7XHJcbiAgICB9O1xyXG59XHJcbmZ1bmN0aW9uIGVsZW1OYW1lKGVsZW0pIHtcclxuICAgIGlmICghZWxlbSkge1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHZhciBzID0gW107XHJcbiAgICBpZiAoZWxlbS50YWdOYW1lKSB7XHJcbiAgICAgICAgcy5wdXNoKGVsZW0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKTtcclxuICAgIH1cclxuICAgIGlmIChlbGVtLmlkKSB7XHJcbiAgICAgICAgcy5wdXNoKCcjJyk7XHJcbiAgICAgICAgcy5wdXNoKGVsZW0uaWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKGVsZW0uY2xhc3NMaXN0ICYmIEFycmF5LmZyb20pIHtcclxuICAgICAgICBzLnB1c2goJy4nKTtcclxuICAgICAgICBzLnB1c2goQXJyYXkuZnJvbShlbGVtLmNsYXNzTGlzdCkuam9pbignLicpKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGVsZW0uY2xhc3NOYW1lKSB7XHJcbiAgICAgICAgdmFyIHN0ciA9IGNsYXNzTmFtZVN0cmluZyhlbGVtLmNsYXNzTmFtZSk7XHJcbiAgICAgICAgaWYgKHN0ciAhPT0gJycpIHtcclxuICAgICAgICAgICAgcy5wdXNoKCcuJyk7XHJcbiAgICAgICAgICAgIHMucHVzaChzdHIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChlbGVtLmdldEF0dHJpYnV0ZSkge1xyXG4gICAgICAgIGZvciAodmFyIF9pID0gMCwgZWxlbUF0dHJzXzEgPSBlbGVtQXR0cnM7IF9pIDwgZWxlbUF0dHJzXzEubGVuZ3RoOyBfaSsrKSB7XHJcbiAgICAgICAgICAgIHZhciBhdHRyID0gZWxlbUF0dHJzXzFbX2ldO1xyXG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBlbGVtLmdldEF0dHJpYnV0ZShhdHRyKTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBzLnB1c2goXCJbXCIgKyBhdHRyICsgXCI9XFxcIlwiICsgdmFsdWUgKyBcIlxcXCJdXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHMuam9pbignJyk7XHJcbn1cclxuZnVuY3Rpb24gY2xhc3NOYW1lU3RyaW5nKG5hbWUpIHtcclxuICAgIGlmIChuYW1lLnNwbGl0KSB7XHJcbiAgICAgICAgcmV0dXJuIG5hbWUuc3BsaXQoJyAnKS5qb2luKCcuJyk7XHJcbiAgICB9XHJcbiAgICBpZiAobmFtZS5iYXNlVmFsICYmIG5hbWUuYmFzZVZhbC5zcGxpdCkge1xyXG4gICAgICAgIC8vIFNWR0FuaW1hdGVkU3RyaW5nXHJcbiAgICAgICAgcmV0dXJuIG5hbWUuYmFzZVZhbC5zcGxpdCgnICcpLmpvaW4oJy4nKTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUuZXJyb3IoJ3Vuc3VwcG9ydGVkIEhUTUxFbGVtZW50LmNsYXNzTmFtZSB0eXBlJywgdHlwZW9mIG5hbWUpO1xyXG4gICAgcmV0dXJuICcnO1xyXG59XHJcbmZ1bmN0aW9uIGVsZW1QYXRoKGVsZW0pIHtcclxuICAgIHZhciBtYXhMZW4gPSAxMDtcclxuICAgIHZhciBwYXRoID0gW107XHJcbiAgICB2YXIgcGFyZW50ID0gZWxlbTtcclxuICAgIHdoaWxlIChwYXJlbnQpIHtcclxuICAgICAgICB2YXIgbmFtZV8xID0gZWxlbU5hbWUocGFyZW50KTtcclxuICAgICAgICBpZiAobmFtZV8xICE9PSAnJykge1xyXG4gICAgICAgICAgICBwYXRoLnB1c2gobmFtZV8xKTtcclxuICAgICAgICAgICAgaWYgKHBhdGgubGVuZ3RoID4gbWF4TGVuKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50Tm9kZTtcclxuICAgIH1cclxuICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiBTdHJpbmcoZWxlbSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGF0aC5yZXZlcnNlKCkuam9pbignID4gJyk7XHJcbn1cblxuZnVuY3Rpb24gaW5zdHJ1bWVudEZldGNoKG5vdGlmaWVyKSB7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tdGhpcy1hc3NpZ25tZW50XHJcbiAgICB2YXIgb2xkRmV0Y2ggPSB3aW5kb3cuZmV0Y2g7XHJcbiAgICB3aW5kb3cuZmV0Y2ggPSBmdW5jdGlvbiAocmVxLCBvcHRpb25zKSB7XHJcbiAgICAgICAgdmFyIHN0YXRlID0ge1xyXG4gICAgICAgICAgICB0eXBlOiAneGhyJyxcclxuICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoKSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHN0YXRlLm1ldGhvZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5tZXRob2QgPyBvcHRpb25zLm1ldGhvZCA6ICdHRVQnO1xyXG4gICAgICAgIGlmICh0eXBlb2YgcmVxID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBzdGF0ZS51cmwgPSByZXE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzdGF0ZS5tZXRob2QgPSByZXEubWV0aG9kO1xyXG4gICAgICAgICAgICBzdGF0ZS51cmwgPSByZXEudXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBTb21lIHBsYXRmb3JtcyAoZS5nLiByZWFjdC1uYXRpdmUpIGltcGxlbWVudCBmZXRjaCB2aWEgWEhSLlxyXG4gICAgICAgIG5vdGlmaWVyLl9pZ25vcmVOZXh0WEhSKys7XHJcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiBub3RpZmllci5faWdub3JlTmV4dFhIUi0tOyB9KTtcclxuICAgICAgICByZXR1cm4gb2xkRmV0Y2hcclxuICAgICAgICAgICAgLmFwcGx5KHRoaXMsIGFyZ3VtZW50cylcclxuICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3ApIHtcclxuICAgICAgICAgICAgc3RhdGUuc3RhdHVzQ29kZSA9IHJlc3Auc3RhdHVzO1xyXG4gICAgICAgICAgICBzdGF0ZS5kdXJhdGlvbiA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhdGUuZGF0ZS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgIG5vdGlmaWVyLnNjb3BlKCkucHVzaEhpc3Rvcnkoc3RhdGUpO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcDtcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgICAgICBzdGF0ZS5lcnJvciA9IGVycjtcclxuICAgICAgICAgICAgc3RhdGUuZHVyYXRpb24gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHN0YXRlLmRhdGUuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICBub3RpZmllci5zY29wZSgpLnB1c2hIaXN0b3J5KHN0YXRlKTtcclxuICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxufVxuXG52YXIgbGFzdExvY2F0aW9uID0gJyc7XHJcbi8vIEluIHNvbWUgZW52aXJvbm1lbnRzIChpLmUuIEN5cHJlc3MpIGRvY3VtZW50LmxvY2F0aW9uIG1heSBzb21ldGltZXMgYmUgbnVsbFxyXG5mdW5jdGlvbiBnZXRDdXJyZW50TG9jYXRpb24oKSB7XHJcbiAgICByZXR1cm4gZG9jdW1lbnQubG9jYXRpb24gJiYgZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWU7XHJcbn1cclxuZnVuY3Rpb24gaW5zdHJ1bWVudExvY2F0aW9uKG5vdGlmaWVyKSB7XHJcbiAgICBsYXN0TG9jYXRpb24gPSBnZXRDdXJyZW50TG9jYXRpb24oKTtcclxuICAgIHZhciBvbGRGbiA9IHdpbmRvdy5vbnBvcHN0YXRlO1xyXG4gICAgd2luZG93Lm9ucG9wc3RhdGUgPSBmdW5jdGlvbiBhYk9ucG9wc3RhdGUoX2V2ZW50KSB7XHJcbiAgICAgICAgdmFyIHVybCA9IGdldEN1cnJlbnRMb2NhdGlvbigpO1xyXG4gICAgICAgIGlmICh1cmwpIHtcclxuICAgICAgICAgICAgcmVjb3JkTG9jYXRpb24obm90aWZpZXIsIHVybCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvbGRGbikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2xkRm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdmFyIG9sZFB1c2hTdGF0ZSA9IGhpc3RvcnkucHVzaFN0YXRlO1xyXG4gICAgaGlzdG9yeS5wdXNoU3RhdGUgPSBmdW5jdGlvbiBhYlB1c2hTdGF0ZShfc3RhdGUsIF90aXRsZSwgdXJsKSB7XHJcbiAgICAgICAgaWYgKHVybCkge1xyXG4gICAgICAgICAgICByZWNvcmRMb2NhdGlvbihub3RpZmllciwgdXJsLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBvbGRQdXNoU3RhdGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuICAgIH07XHJcbn1cclxuZnVuY3Rpb24gcmVjb3JkTG9jYXRpb24obm90aWZpZXIsIHVybCkge1xyXG4gICAgdmFyIGluZGV4ID0gdXJsLmluZGV4T2YoJzovLycpO1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICB1cmwgPSB1cmwuc2xpY2UoaW5kZXggKyAzKTtcclxuICAgICAgICBpbmRleCA9IHVybC5pbmRleE9mKCcvJyk7XHJcbiAgICAgICAgdXJsID0gaW5kZXggPj0gMCA/IHVybC5zbGljZShpbmRleCkgOiAnLyc7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh1cmwuY2hhckF0KDApICE9PSAnLycpIHtcclxuICAgICAgICB1cmwgPSAnLycgKyB1cmw7XHJcbiAgICB9XHJcbiAgICBub3RpZmllci5zY29wZSgpLnB1c2hIaXN0b3J5KHtcclxuICAgICAgICB0eXBlOiAnbG9jYXRpb24nLFxyXG4gICAgICAgIGZyb206IGxhc3RMb2NhdGlvbixcclxuICAgICAgICB0bzogdXJsLFxyXG4gICAgfSk7XHJcbiAgICBsYXN0TG9jYXRpb24gPSB1cmw7XHJcbn1cblxuZnVuY3Rpb24gaW5zdHJ1bWVudFhIUihub3RpZmllcikge1xyXG4gICAgZnVuY3Rpb24gcmVjb3JkUmVxKHJlcSkge1xyXG4gICAgICAgIHZhciBzdGF0ZSA9IHJlcS5fX3N0YXRlO1xyXG4gICAgICAgIHN0YXRlLnN0YXR1c0NvZGUgPSByZXEuc3RhdHVzO1xyXG4gICAgICAgIHN0YXRlLmR1cmF0aW9uID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGF0ZS5kYXRlLmdldFRpbWUoKTtcclxuICAgICAgICBub3RpZmllci5zY29wZSgpLnB1c2hIaXN0b3J5KHN0YXRlKTtcclxuICAgIH1cclxuICAgIHZhciBvbGRPcGVuID0gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLm9wZW47XHJcbiAgICBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uIGFiT3BlbihtZXRob2QsIHVybCwgX2FzeW5jLCBfdXNlciwgX3Bhc3N3b3JkKSB7XHJcbiAgICAgICAgaWYgKG5vdGlmaWVyLl9pZ25vcmVOZXh0WEhSID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX19zdGF0ZSA9IHtcclxuICAgICAgICAgICAgICAgIHR5cGU6ICd4aHInLFxyXG4gICAgICAgICAgICAgICAgbWV0aG9kOiBtZXRob2QsXHJcbiAgICAgICAgICAgICAgICB1cmw6IHVybCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb2xkT3Blbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gICAgfTtcclxuICAgIHZhciBvbGRTZW5kID0gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLnNlbmQ7XHJcbiAgICBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUuc2VuZCA9IGZ1bmN0aW9uIGFiU2VuZChfZGF0YSkge1xyXG4gICAgICAgIHZhciBvbGRGbiA9IHRoaXMub25yZWFkeXN0YXRlY2hhbmdlO1xyXG4gICAgICAgIHRoaXMub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKF9ldikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5yZWFkeVN0YXRlID09PSA0ICYmIHRoaXMuX19zdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgcmVjb3JkUmVxKHRoaXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChvbGRGbikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9sZEZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmICh0aGlzLl9fc3RhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5fX3N0YXRlLmRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2xkU2VuZC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gICAgfTtcclxufVxuXG52YXIgTm90aWZpZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICBfX2V4dGVuZHMoTm90aWZpZXIsIF9zdXBlcik7XHJcbiAgICBmdW5jdGlvbiBOb3RpZmllcihvcHQpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBvcHQpIHx8IHRoaXM7XHJcbiAgICAgICAgX3RoaXMub2ZmbGluZSA9IGZhbHNlO1xyXG4gICAgICAgIF90aGlzLnRvZG8gPSBbXTtcclxuICAgICAgICBfdGhpcy5faWdub3JlV2luZG93RXJyb3IgPSAwO1xyXG4gICAgICAgIF90aGlzLl9pZ25vcmVOZXh0WEhSID0gMDtcclxuICAgICAgICBfdGhpcy5hZGRGaWx0ZXIod2luZG93RmlsdGVyKTtcclxuICAgICAgICBpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgX3RoaXMub25PbmxpbmUgPSBfdGhpcy5vbk9ubGluZS5iaW5kKF90aGlzKTtcclxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsIF90aGlzLm9uT25saW5lKTtcclxuICAgICAgICAgICAgX3RoaXMub25PZmZsaW5lID0gX3RoaXMub25PZmZsaW5lLmJpbmQoX3RoaXMpO1xyXG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb2ZmbGluZScsIF90aGlzLm9uT2ZmbGluZSk7XHJcbiAgICAgICAgICAgIF90aGlzLm9uVW5oYW5kbGVkcmVqZWN0aW9uID0gX3RoaXMub25VbmhhbmRsZWRyZWplY3Rpb24uYmluZChfdGhpcyk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBfdGhpcy5vblVuaGFuZGxlZHJlamVjdGlvbik7XHJcbiAgICAgICAgICAgIF90aGlzLl9vbkNsb3NlLnB1c2goZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ29ubGluZScsIF90aGlzLm9uT25saW5lKTtcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgX3RoaXMub25PZmZsaW5lKTtcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBfdGhpcy5vblVuaGFuZGxlZHJlamVjdGlvbik7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL1RPRE86IGRlcHJlY2F0ZWRcclxuICAgICAgICBpZiAoX3RoaXMuX29wdC5pZ25vcmVXaW5kb3dFcnJvcikge1xyXG4gICAgICAgICAgICBvcHQuaW5zdHJ1bWVudGF0aW9uLm9uZXJyb3IgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgX3RoaXMuX2luc3RydW1lbnQob3B0Lmluc3RydW1lbnRhdGlvbik7XHJcbiAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgfVxyXG4gICAgTm90aWZpZXIucHJvdG90eXBlLl9pbnN0cnVtZW50ID0gZnVuY3Rpb24gKG9wdCkge1xyXG4gICAgICAgIGlmIChvcHQgPT09IHZvaWQgMCkgeyBvcHQgPSB7fTsgfVxyXG4gICAgICAgIG9wdC5jb25zb2xlID0gIWlzRGV2RW52KHRoaXMuX29wdC5lbnZpcm9ubWVudCk7XHJcbiAgICAgICAgaWYgKGVuYWJsZWQob3B0Lm9uZXJyb3IpKSB7XHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby10aGlzLWFzc2lnbm1lbnRcclxuICAgICAgICAgICAgdmFyIHNlbGZfMSA9IHRoaXM7XHJcbiAgICAgICAgICAgIHZhciBvbGRIYW5kbGVyXzEgPSB3aW5kb3cub25lcnJvcjtcclxuICAgICAgICAgICAgd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbiBhYk9uZXJyb3IoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob2xkSGFuZGxlcl8xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb2xkSGFuZGxlcl8xLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBzZWxmXzEub25lcnJvci5hcHBseShzZWxmXzEsIGFyZ3VtZW50cyk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGluc3RydW1lbnRET00odGhpcyk7XHJcbiAgICAgICAgaWYgKGVuYWJsZWQob3B0LmZldGNoKSAmJiB0eXBlb2YgZmV0Y2ggPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgaW5zdHJ1bWVudEZldGNoKHRoaXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZW5hYmxlZChvcHQuaGlzdG9yeSkgJiYgdHlwZW9mIGhpc3RvcnkgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIGluc3RydW1lbnRMb2NhdGlvbih0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVuYWJsZWQob3B0LmNvbnNvbGUpICYmIHR5cGVvZiBjb25zb2xlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICBpbnN0cnVtZW50Q29uc29sZSh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVuYWJsZWQob3B0LnhocikgJiYgdHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICBpbnN0cnVtZW50WEhSKHRoaXMpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBOb3RpZmllci5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgaWYgKHRoaXMub2ZmbGluZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMudG9kby5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICBlcnI6IGVycixcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlOiByZXNvbHZlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdDogcmVqZWN0LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAoX3RoaXMudG9kby5sZW5ndGggPiAxMDApIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgaiA9IF90aGlzLnRvZG8uc2hpZnQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBqLnJlc29sdmUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogbmV3IEVycm9yKCdhaXJicmFrZTogb2ZmbGluZSBxdWV1ZSBpcyB0b28gbGFyZ2UnKSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBfc3VwZXIucHJvdG90eXBlLm5vdGlmeS5jYWxsKHRoaXMsIGVycik7XHJcbiAgICB9O1xyXG4gICAgTm90aWZpZXIucHJvdG90eXBlLm9uT25saW5lID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMub2ZmbGluZSA9IGZhbHNlO1xyXG4gICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24gKGopIHtcclxuICAgICAgICAgICAgdGhpc18xLm5vdGlmeShqLmVycikudGhlbihmdW5jdGlvbiAobm90aWNlKSB7XHJcbiAgICAgICAgICAgICAgICBqLnJlc29sdmUobm90aWNlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICB2YXIgdGhpc18xID0gdGhpcztcclxuICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gdGhpcy50b2RvOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICB2YXIgaiA9IF9hW19pXTtcclxuICAgICAgICAgICAgX2xvb3BfMShqKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50b2RvID0gW107XHJcbiAgICB9O1xyXG4gICAgTm90aWZpZXIucHJvdG90eXBlLm9uT2ZmbGluZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLm9mZmxpbmUgPSB0cnVlO1xyXG4gICAgfTtcclxuICAgIE5vdGlmaWVyLnByb3RvdHlwZS5vblVuaGFuZGxlZHJlamVjdGlvbiA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgLy8gSGFuZGxlIG5hdGl2ZSBvciBibHVlYmlyZCBQcm9taXNlIHJlamVjdGlvbnNcclxuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvdW5oYW5kbGVkcmVqZWN0aW9uXHJcbiAgICAgICAgLy8gaHR0cDovL2JsdWViaXJkanMuY29tL2RvY3MvYXBpL2Vycm9yLW1hbmFnZW1lbnQtY29uZmlndXJhdGlvbi5odG1sXHJcbiAgICAgICAgdmFyIHJlYXNvbiA9IGUucmVhc29uIHx8XHJcbiAgICAgICAgICAgIChlLmRldGFpbCAmJiBlLmRldGFpbC5yZWFzb24pO1xyXG4gICAgICAgIGlmICghcmVhc29uKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIG1zZyA9IHJlYXNvbi5tZXNzYWdlIHx8IFN0cmluZyhyZWFzb24pO1xyXG4gICAgICAgIGlmIChtc2cuaW5kZXhPZiAmJiBtc2cuaW5kZXhPZignYWlyYnJha2U6ICcpID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ub3RpZnkocmVhc29uKTtcclxuICAgIH07XHJcbiAgICBOb3RpZmllci5wcm90b3R5cGUub25lcnJvciA9IGZ1bmN0aW9uIChtZXNzYWdlLCBmaWxlbmFtZSwgbGluZSwgY29sdW1uLCBlcnIpIHtcclxuICAgICAgICBpZiAodGhpcy5faWdub3JlV2luZG93RXJyb3IgPiAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmeSh7XHJcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyLFxyXG4gICAgICAgICAgICAgICAgY29udGV4dDoge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvd0Vycm9yOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gSWdub3JlIGVycm9ycyB3aXRob3V0IGZpbGUgb3IgbGluZS5cclxuICAgICAgICBpZiAoIWZpbGVuYW1lIHx8ICFsaW5lKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ub3RpZnkoe1xyXG4gICAgICAgICAgICBlcnJvcjoge1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBmaWxlbmFtZSxcclxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmUsXHJcbiAgICAgICAgICAgICAgICBjb2x1bW5OdW1iZXI6IGNvbHVtbixcclxuICAgICAgICAgICAgICAgIG5vU3RhY2s6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgICAgIHdpbmRvd0Vycm9yOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIE5vdGlmaWVyLnByb3RvdHlwZS5faWdub3JlTmV4dFdpbmRvd0Vycm9yID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgdGhpcy5faWdub3JlV2luZG93RXJyb3IrKztcclxuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIF90aGlzLl9pZ25vcmVXaW5kb3dFcnJvci0tOyB9KTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gTm90aWZpZXI7XHJcbn0oQmFzZU5vdGlmaWVyKSk7XHJcbmZ1bmN0aW9uIGlzRGV2RW52KGVudikge1xyXG4gICAgcmV0dXJuIGVudiAmJiBlbnYuc3RhcnRzV2l0aCAmJiBlbnYuc3RhcnRzV2l0aCgnZGV2Jyk7XHJcbn1cclxuZnVuY3Rpb24gZW5hYmxlZCh2KSB7XHJcbiAgICByZXR1cm4gdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09IHRydWU7XHJcbn1cblxuZXhwb3J0IHsgTm90aWZpZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFpcmJyYWtlLmVzbS5qcy5tYXBcbiIsImltcG9ydCB7IE5vdGlmaWVyIH0gZnJvbSAnQGFpcmJyYWtlL2Jyb3dzZXInO1xuXG5leHBvcnQgZGVmYXVsdCBuZXcgTm90aWZpZXIoe1xuICBwcm9qZWN0SWQ6IDI1NDMwMCxcbiAgcHJvamVjdEtleTogJzdmNDI5NjY5MTgzMTA1NmQ1YjUxZWM1ZWQ0OWQxYTBjJyxcbiAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJ1xufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbi8vIGNzcyBiYXNlIGNvZGUsIGluamVjdGVkIGJ5IHRoZSBjc3MtbG9hZGVyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZnVuYy1uYW1lc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodXNlU291cmNlTWFwKSB7XG4gIHZhciBsaXN0ID0gW107IC8vIHJldHVybiB0aGUgbGlzdCBvZiBtb2R1bGVzIGFzIGNzcyBzdHJpbmdcblxuICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgY29udGVudCA9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSwgdXNlU291cmNlTWFwKTtcblxuICAgICAgaWYgKGl0ZW1bMl0pIHtcbiAgICAgICAgcmV0dXJuIFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIntcIikuY29uY2F0KGNvbnRlbnQsIFwifVwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbignJyk7XG4gIH07IC8vIGltcG9ydCBhIGxpc3Qgb2YgbW9kdWxlcyBpbnRvIHRoZSBsaXN0XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5cblxuICBsaXN0LmkgPSBmdW5jdGlvbiAobW9kdWxlcywgbWVkaWFRdWVyeSkge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgJyddXTtcbiAgICB9XG5cbiAgICB2YXIgYWxyZWFkeUltcG9ydGVkTW9kdWxlcyA9IHt9O1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWRlc3RydWN0dXJpbmdcbiAgICAgIHZhciBpZCA9IHRoaXNbaV1bMF07XG5cbiAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbW9kdWxlcy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBpdGVtID0gbW9kdWxlc1tfaV07IC8vIHNraXAgYWxyZWFkeSBpbXBvcnRlZCBtb2R1bGVcbiAgICAgIC8vIHRoaXMgaW1wbGVtZW50YXRpb24gaXMgbm90IDEwMCUgcGVyZmVjdCBmb3Igd2VpcmQgbWVkaWEgcXVlcnkgY29tYmluYXRpb25zXG4gICAgICAvLyB3aGVuIGEgbW9kdWxlIGlzIGltcG9ydGVkIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IG1lZGlhIHF1ZXJpZXMuXG4gICAgICAvLyBJIGhvcGUgdGhpcyB3aWxsIG5ldmVyIG9jY3VyIChIZXkgdGhpcyB3YXkgd2UgaGF2ZSBzbWFsbGVyIGJ1bmRsZXMpXG5cbiAgICAgIGlmIChpdGVtWzBdID09IG51bGwgfHwgIWFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaXRlbVswXV0pIHtcbiAgICAgICAgaWYgKG1lZGlhUXVlcnkgJiYgIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWFRdWVyeTtcbiAgICAgICAgfSBlbHNlIGlmIChtZWRpYVF1ZXJ5KSB7XG4gICAgICAgICAgaXRlbVsyXSA9IFwiKFwiLmNvbmNhdChpdGVtWzJdLCBcIikgYW5kIChcIikuY29uY2F0KG1lZGlhUXVlcnksIFwiKVwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGxpc3Q7XG59O1xuXG5mdW5jdGlvbiBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0sIHVzZVNvdXJjZU1hcCkge1xuICB2YXIgY29udGVudCA9IGl0ZW1bMV0gfHwgJyc7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItZGVzdHJ1Y3R1cmluZ1xuXG4gIHZhciBjc3NNYXBwaW5nID0gaXRlbVszXTtcblxuICBpZiAoIWNzc01hcHBpbmcpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGlmICh1c2VTb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgc291cmNlTWFwcGluZyA9IHRvQ29tbWVudChjc3NNYXBwaW5nKTtcbiAgICB2YXIgc291cmNlVVJMcyA9IGNzc01hcHBpbmcuc291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xuICAgICAgcmV0dXJuIFwiLyojIHNvdXJjZVVSTD1cIi5jb25jYXQoY3NzTWFwcGluZy5zb3VyY2VSb290KS5jb25jYXQoc291cmNlLCBcIiAqL1wiKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NvbnRlbnRdLmNvbmNhdChzb3VyY2VVUkxzKS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKCdcXG4nKTtcbiAgfVxuXG4gIHJldHVybiBbY29udGVudF0uam9pbignXFxuJyk7XG59IC8vIEFkYXB0ZWQgZnJvbSBjb252ZXJ0LXNvdXJjZS1tYXAgKE1JVClcblxuXG5mdW5jdGlvbiB0b0NvbW1lbnQoc291cmNlTWFwKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKTtcbiAgdmFyIGRhdGEgPSBcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChiYXNlNjQpO1xuICByZXR1cm4gXCIvKiMgXCIuY29uY2F0KGRhdGEsIFwiICovXCIpO1xufSIsIihmdW5jdGlvbihyb290LCBmYWN0b3J5KSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuICAgIC8vIFVuaXZlcnNhbCBNb2R1bGUgRGVmaW5pdGlvbiAoVU1EKSB0byBzdXBwb3J0IEFNRCwgQ29tbW9uSlMvTm9kZS5qcywgUmhpbm8sIGFuZCBicm93c2Vycy5cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuICAgICAgICBkZWZpbmUoJ3N0YWNrZnJhbWUnLCBbXSwgZmFjdG9yeSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcm9vdC5TdGFja0ZyYW1lID0gZmFjdG9yeSgpO1xuICAgIH1cbn0odGhpcywgZnVuY3Rpb24oKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuICAgIGZ1bmN0aW9uIF9pc051bWJlcihuKSB7XG4gICAgICAgIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gX2NhcGl0YWxpemUoc3RyKSB7XG4gICAgICAgIHJldHVybiBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc3Vic3RyaW5nKDEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIF9nZXR0ZXIocCkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpc1twXTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgYm9vbGVhblByb3BzID0gWydpc0NvbnN0cnVjdG9yJywgJ2lzRXZhbCcsICdpc05hdGl2ZScsICdpc1RvcGxldmVsJ107XG4gICAgdmFyIG51bWVyaWNQcm9wcyA9IFsnY29sdW1uTnVtYmVyJywgJ2xpbmVOdW1iZXInXTtcbiAgICB2YXIgc3RyaW5nUHJvcHMgPSBbJ2ZpbGVOYW1lJywgJ2Z1bmN0aW9uTmFtZScsICdzb3VyY2UnXTtcbiAgICB2YXIgYXJyYXlQcm9wcyA9IFsnYXJncyddO1xuXG4gICAgdmFyIHByb3BzID0gYm9vbGVhblByb3BzLmNvbmNhdChudW1lcmljUHJvcHMsIHN0cmluZ1Byb3BzLCBhcnJheVByb3BzKTtcblxuICAgIGZ1bmN0aW9uIFN0YWNrRnJhbWUob2JqKSB7XG4gICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KHByb3BzW2ldKSAmJiBvYmpbcHJvcHNbaV1dICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpc1snc2V0JyArIF9jYXBpdGFsaXplKHByb3BzW2ldKV0ob2JqW3Byb3BzW2ldXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgU3RhY2tGcmFtZS5wcm90b3R5cGUgPSB7XG4gICAgICAgIGdldEFyZ3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXJncztcbiAgICAgICAgfSxcbiAgICAgICAgc2V0QXJnczogZnVuY3Rpb24odikge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2KSAhPT0gJ1tvYmplY3QgQXJyYXldJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3MgbXVzdCBiZSBhbiBBcnJheScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hcmdzID0gdjtcbiAgICAgICAgfSxcblxuICAgICAgICBnZXRFdmFsT3JpZ2luOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV2YWxPcmlnaW47XG4gICAgICAgIH0sXG4gICAgICAgIHNldEV2YWxPcmlnaW46IGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICAgIGlmICh2IGluc3RhbmNlb2YgU3RhY2tGcmFtZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXZhbE9yaWdpbiA9IHY7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2YWxPcmlnaW4gPSBuZXcgU3RhY2tGcmFtZSh2KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXZhbCBPcmlnaW4gbXVzdCBiZSBhbiBPYmplY3Qgb3IgU3RhY2tGcmFtZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBmaWxlTmFtZSA9IHRoaXMuZ2V0RmlsZU5hbWUoKSB8fCAnJztcbiAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gdGhpcy5nZXRMaW5lTnVtYmVyKCkgfHwgJyc7XG4gICAgICAgICAgICB2YXIgY29sdW1uTnVtYmVyID0gdGhpcy5nZXRDb2x1bW5OdW1iZXIoKSB8fCAnJztcbiAgICAgICAgICAgIHZhciBmdW5jdGlvbk5hbWUgPSB0aGlzLmdldEZ1bmN0aW9uTmFtZSgpIHx8ICcnO1xuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0SXNFdmFsKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbZXZhbF0gKCcgKyBmaWxlTmFtZSArICc6JyArIGxpbmVOdW1iZXIgKyAnOicgKyBjb2x1bW5OdW1iZXIgKyAnKSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAnW2V2YWxdOicgKyBsaW5lTnVtYmVyICsgJzonICsgY29sdW1uTnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZ1bmN0aW9uTmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbk5hbWUgKyAnICgnICsgZmlsZU5hbWUgKyAnOicgKyBsaW5lTnVtYmVyICsgJzonICsgY29sdW1uTnVtYmVyICsgJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbGVOYW1lICsgJzonICsgbGluZU51bWJlciArICc6JyArIGNvbHVtbk51bWJlcjtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBTdGFja0ZyYW1lLmZyb21TdHJpbmcgPSBmdW5jdGlvbiBTdGFja0ZyYW1lJCRmcm9tU3RyaW5nKHN0cikge1xuICAgICAgICB2YXIgYXJnc1N0YXJ0SW5kZXggPSBzdHIuaW5kZXhPZignKCcpO1xuICAgICAgICB2YXIgYXJnc0VuZEluZGV4ID0gc3RyLmxhc3RJbmRleE9mKCcpJyk7XG5cbiAgICAgICAgdmFyIGZ1bmN0aW9uTmFtZSA9IHN0ci5zdWJzdHJpbmcoMCwgYXJnc1N0YXJ0SW5kZXgpO1xuICAgICAgICB2YXIgYXJncyA9IHN0ci5zdWJzdHJpbmcoYXJnc1N0YXJ0SW5kZXggKyAxLCBhcmdzRW5kSW5kZXgpLnNwbGl0KCcsJyk7XG4gICAgICAgIHZhciBsb2NhdGlvblN0cmluZyA9IHN0ci5zdWJzdHJpbmcoYXJnc0VuZEluZGV4ICsgMSk7XG5cbiAgICAgICAgaWYgKGxvY2F0aW9uU3RyaW5nLmluZGV4T2YoJ0AnKSA9PT0gMCkge1xuICAgICAgICAgICAgdmFyIHBhcnRzID0gL0AoLis/KSg/OjooXFxkKykpPyg/OjooXFxkKykpPyQvLmV4ZWMobG9jYXRpb25TdHJpbmcsICcnKTtcbiAgICAgICAgICAgIHZhciBmaWxlTmFtZSA9IHBhcnRzWzFdO1xuICAgICAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSBwYXJ0c1syXTtcbiAgICAgICAgICAgIHZhciBjb2x1bW5OdW1iZXIgPSBwYXJ0c1szXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgU3RhY2tGcmFtZSh7XG4gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgIGFyZ3M6IGFyZ3MgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgZmlsZU5hbWU6IGZpbGVOYW1lLFxuICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlciB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICBjb2x1bW5OdW1iZXI6IGNvbHVtbk51bWJlciB8fCB1bmRlZmluZWRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm9vbGVhblByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIFN0YWNrRnJhbWUucHJvdG90eXBlWydnZXQnICsgX2NhcGl0YWxpemUoYm9vbGVhblByb3BzW2ldKV0gPSBfZ2V0dGVyKGJvb2xlYW5Qcm9wc1tpXSk7XG4gICAgICAgIFN0YWNrRnJhbWUucHJvdG90eXBlWydzZXQnICsgX2NhcGl0YWxpemUoYm9vbGVhblByb3BzW2ldKV0gPSAoZnVuY3Rpb24ocCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICAgICAgICB0aGlzW3BdID0gQm9vbGVhbih2KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pKGJvb2xlYW5Qcm9wc1tpXSk7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBudW1lcmljUHJvcHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgU3RhY2tGcmFtZS5wcm90b3R5cGVbJ2dldCcgKyBfY2FwaXRhbGl6ZShudW1lcmljUHJvcHNbal0pXSA9IF9nZXR0ZXIobnVtZXJpY1Byb3BzW2pdKTtcbiAgICAgICAgU3RhY2tGcmFtZS5wcm90b3R5cGVbJ3NldCcgKyBfY2FwaXRhbGl6ZShudW1lcmljUHJvcHNbal0pXSA9IChmdW5jdGlvbihwKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24odikge1xuICAgICAgICAgICAgICAgIGlmICghX2lzTnVtYmVyKHYpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocCArICcgbXVzdCBiZSBhIE51bWJlcicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzW3BdID0gTnVtYmVyKHYpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSkobnVtZXJpY1Byb3BzW2pdKTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBrID0gMDsgayA8IHN0cmluZ1Byb3BzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIFN0YWNrRnJhbWUucHJvdG90eXBlWydnZXQnICsgX2NhcGl0YWxpemUoc3RyaW5nUHJvcHNba10pXSA9IF9nZXR0ZXIoc3RyaW5nUHJvcHNba10pO1xuICAgICAgICBTdGFja0ZyYW1lLnByb3RvdHlwZVsnc2V0JyArIF9jYXBpdGFsaXplKHN0cmluZ1Byb3BzW2tdKV0gPSAoZnVuY3Rpb24ocCkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICAgICAgICB0aGlzW3BdID0gU3RyaW5nKHYpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSkoc3RyaW5nUHJvcHNba10pO1xuICAgIH1cblxuICAgIHJldHVybiBTdGFja0ZyYW1lO1xufSkpO1xuIiwiLy9cbi8vIFREaWdlc3Q6XG4vL1xuLy8gYXBwcm94aW1hdGUgZGlzdHJpYnV0aW9uIHBlcmNlbnRpbGVzIGZyb20gYSBzdHJlYW0gb2YgcmVhbHNcbi8vXG52YXIgUkJUcmVlID0gcmVxdWlyZSgnYmludHJlZXMnKS5SQlRyZWU7XG5cbmZ1bmN0aW9uIFREaWdlc3QoZGVsdGEsIEssIENYKSB7XG4gICAgLy8gYWxsb2NhdGUgYSBURGlnZXN0IHN0cnVjdHVyZS5cbiAgICAvL1xuICAgIC8vIGRlbHRhIGlzIHRoZSBjb21wcmVzc2lvbiBmYWN0b3IsIHRoZSBtYXggZnJhY3Rpb24gb2YgbWFzcyB0aGF0XG4gICAgLy8gY2FuIGJlIG93bmVkIGJ5IG9uZSBjZW50cm9pZCAoYmlnZ2VyLCB1cCB0byAxLjAsIG1lYW5zIG1vcmVcbiAgICAvLyBjb21wcmVzc2lvbikuIGRlbHRhPWZhbHNlIHN3aXRjaGVzIG9mZiBURGlnZXN0IGJlaGF2aW9yIGFuZCB0cmVhdHNcbiAgICAvLyB0aGUgZGlzdHJpYnV0aW9uIGFzIGRpc2NyZXRlLCB3aXRoIG5vIG1lcmdpbmcgYW5kIGV4YWN0IHZhbHVlc1xuICAgIC8vIHJlcG9ydGVkLlxuICAgIC8vXG4gICAgLy8gSyBpcyBhIHNpemUgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgcmVjb21wcmVzc2lvbiBhcyB0aGUgVERpZ2VzdFxuICAgIC8vIGdyb3dzIGR1cmluZyBpbnB1dC4gIChTZXQgaXQgdG8gMCB0byBkaXNhYmxlIGF1dG9tYXRpYyByZWNvbXByZXNzaW9uKVxuICAgIC8vXG4gICAgLy8gQ1ggc3BlY2lmaWVzIGhvdyBvZnRlbiB0byB1cGRhdGUgY2FjaGVkIGN1bXVsYXRpdmUgdG90YWxzIHVzZWRcbiAgICAvLyBmb3IgcXVhbnRpbGUgZXN0aW1hdGlvbiBkdXJpbmcgaW5nZXN0IChzZWUgY3VtdWxhdGUoKSkuICBTZXQgdG9cbiAgICAvLyAwIHRvIHVzZSBleGFjdCBxdWFudGlsZXMgZm9yIGVhY2ggbmV3IHBvaW50LlxuICAgIC8vXG4gICAgdGhpcy5kaXNjcmV0ZSA9IChkZWx0YSA9PT0gZmFsc2UpO1xuICAgIHRoaXMuZGVsdGEgPSBkZWx0YSB8fCAwLjAxO1xuICAgIHRoaXMuSyA9IChLID09PSB1bmRlZmluZWQpID8gMjUgOiBLO1xuICAgIHRoaXMuQ1ggPSAoQ1ggPT09IHVuZGVmaW5lZCkgPyAxLjEgOiBDWDtcbiAgICB0aGlzLmNlbnRyb2lkcyA9IG5ldyBSQlRyZWUoY29tcGFyZV9jZW50cm9pZF9tZWFucyk7XG4gICAgdGhpcy5ucmVzZXQgPSAwO1xuICAgIHRoaXMucmVzZXQoKTtcbn1cblxuVERpZ2VzdC5wcm90b3R5cGUucmVzZXQgPSBmdW5jdGlvbigpIHtcbiAgICAvLyBwcmVwYXJlIHRvIGRpZ2VzdCBuZXcgcG9pbnRzLlxuICAgIC8vXG4gICAgdGhpcy5jZW50cm9pZHMuY2xlYXIoKTtcbiAgICB0aGlzLm4gPSAwO1xuICAgIHRoaXMubnJlc2V0ICs9IDE7XG4gICAgdGhpcy5sYXN0X2N1bXVsYXRlID0gMDtcbn07XG5cblREaWdlc3QucHJvdG90eXBlLnNpemUgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5jZW50cm9pZHMuc2l6ZTtcbn07XG5cblREaWdlc3QucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbihldmVyeXRoaW5nKSB7XG4gICAgLy8gcmV0dXJuIHttZWFuLG59IG9mIGNlbnRyb2lkcyBhcyBhbiBhcnJheSBvcmRlcmVkIGJ5IG1lYW4uXG4gICAgLy9cbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgaWYgKGV2ZXJ5dGhpbmcpIHtcbiAgICAgICAgdGhpcy5fY3VtdWxhdGUodHJ1ZSk7IC8vIGJlIHN1cmUgY3VtbnMgYXJlIGV4YWN0XG4gICAgICAgIHRoaXMuY2VudHJvaWRzLmVhY2goZnVuY3Rpb24oYykgeyByZXN1bHQucHVzaChjKTsgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jZW50cm9pZHMuZWFjaChmdW5jdGlvbihjKSB7IHJlc3VsdC5wdXNoKHttZWFuOmMubWVhbiwgbjpjLm59KTsgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5URGlnZXN0LnByb3RvdHlwZS5zdW1tYXJ5ID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFwcHJveCA9ICh0aGlzLmRpc2NyZXRlKSA/IFwiZXhhY3QgXCIgOiBcImFwcHJveGltYXRpbmcgXCI7XG4gICAgdmFyIHMgPSBbYXBwcm94ICsgdGhpcy5uICsgXCIgc2FtcGxlcyB1c2luZyBcIiArIHRoaXMuc2l6ZSgpICsgXCIgY2VudHJvaWRzXCIsXG4gICAgICAgICAgICAgXCJtaW4gPSBcIit0aGlzLnBlcmNlbnRpbGUoMCksXG4gICAgICAgICAgICAgXCJRMSAgPSBcIit0aGlzLnBlcmNlbnRpbGUoMC4yNSksXG4gICAgICAgICAgICAgXCJRMiAgPSBcIit0aGlzLnBlcmNlbnRpbGUoMC41KSxcbiAgICAgICAgICAgICBcIlEzICA9IFwiK3RoaXMucGVyY2VudGlsZSgwLjc1KSxcbiAgICAgICAgICAgICBcIm1heCA9IFwiK3RoaXMucGVyY2VudGlsZSgxLjApXTtcbiAgICByZXR1cm4gcy5qb2luKCdcXG4nKTtcbn07XG5cbmZ1bmN0aW9uIGNvbXBhcmVfY2VudHJvaWRfbWVhbnMoYSwgYikge1xuICAgIC8vIG9yZGVyIHR3byBjZW50cm9pZHMgYnkgbWVhbi5cbiAgICAvL1xuICAgIHJldHVybiAoYS5tZWFuID4gYi5tZWFuKSA/IDEgOiAoYS5tZWFuIDwgYi5tZWFuKSA/IC0xIDogMDtcbn1cblxuZnVuY3Rpb24gY29tcGFyZV9jZW50cm9pZF9tZWFuX2N1bW5zKGEsIGIpIHtcbiAgICAvLyBvcmRlciB0d28gY2VudHJvaWRzIGJ5IG1lYW5fY3Vtbi5cbiAgICAvL1xuICAgIHJldHVybiAoYS5tZWFuX2N1bW4gLSBiLm1lYW5fY3Vtbik7XG59XG5cblREaWdlc3QucHJvdG90eXBlLnB1c2ggPSBmdW5jdGlvbih4LCBuKSB7XG4gICAgLy8gaW5jb3Jwb3JhdGUgdmFsdWUgb3IgYXJyYXkgb2YgdmFsdWVzIHgsIGhhdmluZyBjb3VudCBuIGludG8gdGhlXG4gICAgLy8gVERpZ2VzdC4gbiBkZWZhdWx0cyB0byAxLlxuICAgIC8vXG4gICAgbiA9IG4gfHwgMTtcbiAgICB4ID0gQXJyYXkuaXNBcnJheSh4KSA/IHggOiBbeF07XG4gICAgZm9yICh2YXIgaSA9IDAgOyBpIDwgeC5sZW5ndGggOyBpKyspIHtcbiAgICAgICAgdGhpcy5fZGlnZXN0KHhbaV0sIG4pO1xuICAgIH1cbn07XG5cblREaWdlc3QucHJvdG90eXBlLnB1c2hfY2VudHJvaWQgPSBmdW5jdGlvbihjKSB7XG4gICAgLy8gaW5jb3Jwb3JhdGUgY2VudHJvaWQgb3IgYXJyYXkgb2YgY2VudHJvaWRzIGNcbiAgICAvL1xuICAgIGMgPSBBcnJheS5pc0FycmF5KGMpID8gYyA6IFtjXTtcbiAgICBmb3IgKHZhciBpID0gMCA7IGkgPCBjLmxlbmd0aCA7IGkrKykge1xuICAgICAgICB0aGlzLl9kaWdlc3QoY1tpXS5tZWFuLCBjW2ldLm4pO1xuICAgIH1cbn07XG5cblREaWdlc3QucHJvdG90eXBlLl9jdW11bGF0ZSA9IGZ1bmN0aW9uKGV4YWN0KSB7XG4gICAgLy8gdXBkYXRlIGN1bXVsYXRpdmUgY291bnRzIGZvciBlYWNoIGNlbnRyb2lkXG4gICAgLy9cbiAgICAvLyBleGFjdDogZmFsc2V5IG1lYW5zIG9ubHkgY3VtdWxhdGUgYWZ0ZXIgc3VmZmljaWVudFxuICAgIC8vIGdyb3d0aC4gRHVyaW5nIGluZ2VzdCwgdGhlc2UgY291bnRzIGFyZSB1c2VkIGFzIHF1YW50aWxlXG4gICAgLy8gZXN0aW1hdGVzLCBhbmQgdGhleSB3b3JrIHdlbGwgZXZlbiB3aGVuIHNvbWV3aGF0IG91dCBvZlxuICAgIC8vIGRhdGUuICh0aGlzIGlzIGEgZGVwYXJ0dXJlIGZyb20gdGhlIHB1YmxpY2F0aW9uLCB5b3UgbWF5IHNldCBDWFxuICAgIC8vIHRvIDAgdG8gZGlzYWJsZSkuXG4gICAgLy9cbiAgICBpZiAodGhpcy5uID09PSB0aGlzLmxhc3RfY3VtdWxhdGUgfHxcbiAgICAgICAgIWV4YWN0ICYmIHRoaXMuQ1ggJiYgdGhpcy5DWCA+ICh0aGlzLm4gLyB0aGlzLmxhc3RfY3VtdWxhdGUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGN1bW4gPSAwO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0aGlzLmNlbnRyb2lkcy5lYWNoKGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgYy5tZWFuX2N1bW4gPSBjdW1uICsgYy5uIC8gMjsgLy8gaGFsZiBvZiBuIGF0IHRoZSBtZWFuXG4gICAgICAgIGN1bW4gPSBjLmN1bW4gPSBjdW1uICsgYy5uO1xuICAgIH0pO1xuICAgIHRoaXMubiA9IHRoaXMubGFzdF9jdW11bGF0ZSA9IGN1bW47XG59O1xuXG5URGlnZXN0LnByb3RvdHlwZS5maW5kX25lYXJlc3QgPSBmdW5jdGlvbih4KSB7XG4gICAgLy8gZmluZCB0aGUgY2VudHJvaWQgY2xvc2VzdCB0byB4LiBUaGUgYXNzdW1wdGlvbiBvZlxuICAgIC8vIHVuaXF1ZSBtZWFucyBhbmQgYSB1bmlxdWUgbmVhcmVzdCBjZW50cm9pZCBkZXBhcnRzIGZyb20gdGhlXG4gICAgLy8gcGFwZXIsIHNlZSBfZGlnZXN0KCkgYmVsb3dcbiAgICAvL1xuICAgIGlmICh0aGlzLnNpemUoKSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIGl0ZXIgPSB0aGlzLmNlbnRyb2lkcy5sb3dlckJvdW5kKHttZWFuOnh9KTsgLy8geCA8PSBpdGVyIHx8IGl0ZXI9PW51bGxcbiAgICB2YXIgYyA9IChpdGVyLmRhdGEoKSA9PT0gbnVsbCkgPyBpdGVyLnByZXYoKSA6IGl0ZXIuZGF0YSgpO1xuICAgIGlmIChjLm1lYW4gPT09IHggfHwgdGhpcy5kaXNjcmV0ZSkge1xuICAgICAgICByZXR1cm4gYzsgLy8gYyBpcyBlaXRoZXIgeCBvciBhIG5laWdoYm9yIChkaXNjcmV0ZTogbm8gZGlzdGFuY2UgZnVuYylcbiAgICB9XG4gICAgdmFyIHByZXYgPSBpdGVyLnByZXYoKTtcbiAgICBpZiAocHJldiAmJiBNYXRoLmFicyhwcmV2Lm1lYW4gLSB4KSA8IE1hdGguYWJzKGMubWVhbiAtIHgpKSB7XG4gICAgICAgIHJldHVybiBwcmV2O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjO1xuICAgIH1cbn07XG5cblREaWdlc3QucHJvdG90eXBlLl9uZXdfY2VudHJvaWQgPSBmdW5jdGlvbih4LCBuLCBjdW1uKSB7XG4gICAgLy8gY3JlYXRlIGFuZCBpbnNlcnQgYSBuZXcgY2VudHJvaWQgaW50byB0aGUgZGlnZXN0IChkb24ndCB1cGRhdGVcbiAgICAvLyBjdW11bGF0aXZlcykuXG4gICAgLy9cbiAgICB2YXIgYyA9IHttZWFuOngsIG46biwgY3VtbjpjdW1ufTtcbiAgICB0aGlzLmNlbnRyb2lkcy5pbnNlcnQoYyk7XG4gICAgdGhpcy5uICs9IG47XG4gICAgcmV0dXJuIGM7XG59O1xuXG5URGlnZXN0LnByb3RvdHlwZS5fYWRkd2VpZ2h0ID0gZnVuY3Rpb24obmVhcmVzdCwgeCwgbikge1xuICAgIC8vIGFkZCB3ZWlnaHQgYXQgbG9jYXRpb24geCB0byBuZWFyZXN0IGNlbnRyb2lkLiAgYWRkaW5nIHggdG9cbiAgICAvLyBuZWFyZXN0IHdpbGwgbm90IHNoaWZ0IGl0cyByZWxhdGl2ZSBwb3NpdGlvbiBpbiB0aGUgdHJlZSBhbmRcbiAgICAvLyByZXF1aXJlIHJlaW5zZXJ0aW9uLlxuICAgIC8vXG4gICAgaWYgKHggIT09IG5lYXJlc3QubWVhbikge1xuICAgICAgICBuZWFyZXN0Lm1lYW4gKz0gbiAqICh4IC0gbmVhcmVzdC5tZWFuKSAvIChuZWFyZXN0Lm4gKyBuKTtcbiAgICB9XG4gICAgbmVhcmVzdC5jdW1uICs9IG47XG4gICAgbmVhcmVzdC5tZWFuX2N1bW4gKz0gbiAvIDI7XG4gICAgbmVhcmVzdC5uICs9IG47XG4gICAgdGhpcy5uICs9IG47XG59O1xuXG5URGlnZXN0LnByb3RvdHlwZS5fZGlnZXN0ID0gZnVuY3Rpb24oeCwgbikge1xuICAgIC8vIGluY29ycG9yYXRlIHZhbHVlIHgsIGhhdmluZyBjb3VudCBuIGludG8gdGhlIFREaWdlc3QuXG4gICAgLy9cbiAgICB2YXIgbWluID0gdGhpcy5jZW50cm9pZHMubWluKCk7XG4gICAgdmFyIG1heCA9IHRoaXMuY2VudHJvaWRzLm1heCgpO1xuICAgIHZhciBuZWFyZXN0ID0gdGhpcy5maW5kX25lYXJlc3QoeCk7XG4gICAgaWYgKG5lYXJlc3QgJiYgbmVhcmVzdC5tZWFuID09PSB4KSB7XG4gICAgICAgIC8vIGFjY3VtdWxhdGUgZXhhY3QgbWF0Y2hlcyBpbnRvIHRoZSBjZW50cm9pZCB3aXRob3V0XG4gICAgICAgIC8vIGxpbWl0LiB0aGlzIGlzIGEgZGVwYXJ0dXJlIGZyb20gdGhlIHBhcGVyLCBtYWRlIHNvXG4gICAgICAgIC8vIGNlbnRyb2lkcyByZW1haW4gdW5pcXVlIGFuZCBjb2RlIGNhbiBiZSBzaW1wbGUuXG4gICAgICAgIHRoaXMuX2FkZHdlaWdodChuZWFyZXN0LCB4LCBuKTtcbiAgICB9IGVsc2UgaWYgKG5lYXJlc3QgPT09IG1pbikge1xuICAgICAgICB0aGlzLl9uZXdfY2VudHJvaWQoeCwgbiwgMCk7IC8vIG5ldyBwb2ludCBhcm91bmQgbWluIGJvdW5kYXJ5XG4gICAgfSBlbHNlIGlmIChuZWFyZXN0ID09PSBtYXggKSB7XG4gICAgICAgIHRoaXMuX25ld19jZW50cm9pZCh4LCBuLCB0aGlzLm4pOyAvLyBuZXcgcG9pbnQgYXJvdW5kIG1heCBib3VuZGFyeVxuICAgIH0gZWxzZSBpZiAodGhpcy5kaXNjcmV0ZSkge1xuICAgICAgICB0aGlzLl9uZXdfY2VudHJvaWQoeCwgbiwgbmVhcmVzdC5jdW1uKTsgLy8gbmV2ZXIgbWVyZ2VcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjb25pZGVyIGEgbWVyZ2UgYmFzZWQgb24gbmVhcmVzdCBjZW50cm9pZCdzIGNhcGFjaXR5LiBpZlxuICAgICAgICAvLyB0aGVyZSdzIG5vdCByb29tIGZvciBhbGwgb2YgbiwgZG9uJ3QgYm90aGVyIG1lcmdpbmcgYW55IG9mXG4gICAgICAgIC8vIGl0IGludG8gbmVhcmVzdCwgYXMgd2UnbGwgaGF2ZSB0byBtYWtlIGEgbmV3IGNlbnRyb2lkXG4gICAgICAgIC8vIGFueXdheSBmb3IgdGhlIHJlbWFpbmRlciAoZGVwYXJ0dXJlIGZyb20gdGhlIHBhcGVyKS5cbiAgICAgICAgdmFyIHAgPSBuZWFyZXN0Lm1lYW5fY3VtbiAvIHRoaXMubjtcbiAgICAgICAgdmFyIG1heF9uID0gTWF0aC5mbG9vcig0ICogdGhpcy5uICogdGhpcy5kZWx0YSAqIHAgKiAoMSAtIHApKTtcbiAgICAgICAgaWYgKG1heF9uIC0gbmVhcmVzdC5uID49IG4pIHtcbiAgICAgICAgICAgIHRoaXMuX2FkZHdlaWdodChuZWFyZXN0LCB4LCBuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX25ld19jZW50cm9pZCh4LCBuLCBuZWFyZXN0LmN1bW4pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2N1bXVsYXRlKGZhbHNlKTtcbiAgICBpZiAoIXRoaXMuZGlzY3JldGUgJiYgdGhpcy5LICYmIHRoaXMuc2l6ZSgpID4gdGhpcy5LIC8gdGhpcy5kZWx0YSkge1xuICAgICAgICAvLyByZS1wcm9jZXNzIHRoZSBjZW50cm9pZHMgYW5kIGhvcGUgZm9yIHNvbWUgY29tcHJlc3Npb24uXG4gICAgICAgIHRoaXMuY29tcHJlc3MoKTtcbiAgICB9XG59O1xuXG5URGlnZXN0LnByb3RvdHlwZS5ib3VuZF9tZWFuID0gZnVuY3Rpb24oeCkge1xuICAgIC8vIGZpbmQgY2VudHJvaWRzIGxvd2VyIGFuZCB1cHBlciBzdWNoIHRoYXQgbG93ZXIubWVhbiA8IHggPFxuICAgIC8vIHVwcGVyLm1lYW4gb3IgbG93ZXIubWVhbiA9PT0geCA9PT0gdXBwZXIubWVhbi4gRG9uJ3QgY2FsbFxuICAgIC8vIHRoaXMgZm9yIHggb3V0IG9mIGJvdW5kcy5cbiAgICAvL1xuICAgIHZhciBpdGVyID0gdGhpcy5jZW50cm9pZHMudXBwZXJCb3VuZCh7bWVhbjp4fSk7IC8vIHggPCBpdGVyXG4gICAgdmFyIGxvd2VyID0gaXRlci5wcmV2KCk7ICAgICAgLy8gbG93ZXIgPD0geFxuICAgIHZhciB1cHBlciA9IChsb3dlci5tZWFuID09PSB4KSA/IGxvd2VyIDogaXRlci5uZXh0KCk7XG4gICAgcmV0dXJuIFtsb3dlciwgdXBwZXJdO1xufTtcblxuVERpZ2VzdC5wcm90b3R5cGUucF9yYW5rID0gZnVuY3Rpb24oeF9vcl94bGlzdCkge1xuICAgIC8vIHJldHVybiBhcHByb3hpbWF0ZSBwZXJjZW50aWxlLXJhbmtzICgwLi4xKSBmb3IgZGF0YSB2YWx1ZSB4LlxuICAgIC8vIG9yIGxpc3Qgb2YgeC4gIGNhbGN1bGF0ZWQgYWNjb3JkaW5nIHRvXG4gICAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUGVyY2VudGlsZV9yYW5rXG4gICAgLy9cbiAgICAvLyAoTm90ZSB0aGF0IGluIGNvbnRpbnVvdXMgbW9kZSwgYm91bmRhcnkgc2FtcGxlIHZhbHVlcyB3aWxsXG4gICAgLy8gcmVwb3J0IGhhbGYgdGhlaXIgY2VudHJvaWQgd2VpZ2h0IGlud2FyZCBmcm9tIDAvMSBhcyB0aGVcbiAgICAvLyBwZXJjZW50aWxlLXJhbmsuIFggdmFsdWVzIG91dHNpZGUgdGhlIG9ic2VydmVkIHJhbmdlIHJldHVyblxuICAgIC8vIDAvMSlcbiAgICAvL1xuICAgIC8vIHRoaXMgdHJpZ2dlcnMgY3VtdWxhdGUoKSBpZiBjdW1uJ3MgYXJlIG91dCBvZiBkYXRlLlxuICAgIC8vXG4gICAgdmFyIHhzID0gQXJyYXkuaXNBcnJheSh4X29yX3hsaXN0KSA/IHhfb3JfeGxpc3QgOiBbeF9vcl94bGlzdF07XG4gICAgdmFyIHBzID0geHMubWFwKHRoaXMuX3BfcmFuaywgdGhpcyk7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoeF9vcl94bGlzdCkgPyBwcyA6IHBzWzBdO1xufTtcblxuVERpZ2VzdC5wcm90b3R5cGUuX3BfcmFuayA9IGZ1bmN0aW9uKHgpIHtcbiAgICBpZiAodGhpcy5zaXplKCkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgaWYgKHggPCB0aGlzLmNlbnRyb2lkcy5taW4oKS5tZWFuKSB7XG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgfSBlbHNlIGlmICh4ID4gdGhpcy5jZW50cm9pZHMubWF4KCkubWVhbikge1xuICAgICAgICByZXR1cm4gMS4wO1xuICAgIH1cbiAgICAvLyBmaW5kIGNlbnRyb2lkcyB0aGF0IGJyYWNrZXQgeCBhbmQgaW50ZXJwb2xhdGUgeCdzIGN1bW4gZnJvbVxuICAgIC8vIHRoZWlyIGN1bW4ncy5cbiAgICB0aGlzLl9jdW11bGF0ZSh0cnVlKTsgLy8gYmUgc3VyZSBjdW1ucyBhcmUgZXhhY3RcbiAgICB2YXIgYm91bmQgPSB0aGlzLmJvdW5kX21lYW4oeCk7XG4gICAgdmFyIGxvd2VyID0gYm91bmRbMF0sIHVwcGVyID0gYm91bmRbMV07XG4gICAgaWYgKHRoaXMuZGlzY3JldGUpIHtcbiAgICAgICAgcmV0dXJuIGxvd2VyLmN1bW4gLyB0aGlzLm47XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGN1bW4gPSBsb3dlci5tZWFuX2N1bW47XG4gICAgICAgIGlmIChsb3dlciAhPT0gdXBwZXIpIHtcbiAgICAgICAgICAgIGN1bW4gKz0gKHggLSBsb3dlci5tZWFuKSAqICh1cHBlci5tZWFuX2N1bW4gLSBsb3dlci5tZWFuX2N1bW4pIC8gKHVwcGVyLm1lYW4gLSBsb3dlci5tZWFuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VtbiAvIHRoaXMubjtcbiAgICB9XG59O1xuXG5URGlnZXN0LnByb3RvdHlwZS5ib3VuZF9tZWFuX2N1bW4gPSBmdW5jdGlvbihjdW1uKSB7XG4gICAgLy8gZmluZCBjZW50cm9pZHMgbG93ZXIgYW5kIHVwcGVyIHN1Y2ggdGhhdCBsb3dlci5tZWFuX2N1bW4gPCB4IDxcbiAgICAvLyB1cHBlci5tZWFuX2N1bW4gb3IgbG93ZXIubWVhbl9jdW1uID09PSB4ID09PSB1cHBlci5tZWFuX2N1bW4uIERvbid0IGNhbGxcbiAgICAvLyB0aGlzIGZvciBjdW1uIG91dCBvZiBib3VuZHMuXG4gICAgLy9cbiAgICAvLyBYWFggYmVjYXVzZSBtZWFuIGFuZCBtZWFuX2N1bW4gZ2l2ZSByaXNlIHRvIHRoZSBzYW1lIHNvcnQgb3JkZXJcbiAgICAvLyAodXAgdG8gaWRlbnRpY2FsIG1lYW5zKSwgdXNlIHRoZSBtZWFuIHJidHJlZSBmb3Igb3VyIHNlYXJjaC5cbiAgICB0aGlzLmNlbnRyb2lkcy5fY29tcGFyYXRvciA9IGNvbXBhcmVfY2VudHJvaWRfbWVhbl9jdW1ucztcbiAgICB2YXIgaXRlciA9IHRoaXMuY2VudHJvaWRzLnVwcGVyQm91bmQoe21lYW5fY3VtbjpjdW1ufSk7IC8vIGN1bW4gPCBpdGVyXG4gICAgdGhpcy5jZW50cm9pZHMuX2NvbXBhcmF0b3IgPSBjb21wYXJlX2NlbnRyb2lkX21lYW5zO1xuICAgIHZhciBsb3dlciA9IGl0ZXIucHJldigpOyAgICAgIC8vIGxvd2VyIDw9IGN1bW5cbiAgICB2YXIgdXBwZXIgPSAobG93ZXIgJiYgbG93ZXIubWVhbl9jdW1uID09PSBjdW1uKSA/IGxvd2VyIDogaXRlci5uZXh0KCk7XG4gICAgcmV0dXJuIFtsb3dlciwgdXBwZXJdO1xufTtcblxuVERpZ2VzdC5wcm90b3R5cGUucGVyY2VudGlsZSA9IGZ1bmN0aW9uKHBfb3JfcGxpc3QpIHtcbiAgICAvLyBmb3IgcGVyY2VudGFnZSBwICgwLi4xKSwgb3IgZm9yIGVhY2ggcCBpbiBhIGxpc3Qgb2YgcHMsIHJldHVyblxuICAgIC8vIHRoZSBzbWFsbGVzdCBkYXRhIHZhbHVlIHEgYXQgd2hpY2ggYXQgbGVhc3QgcCBwZXJjZW50IG9mIHRoZVxuICAgIC8vIG9ic2VydmF0aW9ucyA8PSBxLlxuICAgIC8vXG4gICAgLy8gZm9yIGRpc2NyZXRlIGRpc3RyaWJ1dGlvbnMsIHRoaXMgc2VsZWN0cyBxIHVzaW5nIHRoZSBOZWFyZXN0XG4gICAgLy8gUmFuayBNZXRob2RcbiAgICAvLyAoaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUGVyY2VudGlsZSNUaGVfTmVhcmVzdF9SYW5rX21ldGhvZClcbiAgICAvLyAoaW4gc2NpcHksIHNhbWUgYXMgcGVyY2VudGlsZSguLi4uLCBpbnRlcnBvbGF0aW9uPSdoaWdoZXInKVxuICAgIC8vXG4gICAgLy8gZm9yIGNvbnRpbnVvdXMgZGlzdHJpYnV0aW9ucywgaW50ZXJwb2xhdGVzIGRhdGEgdmFsdWVzIGJldHdlZW5cbiAgICAvLyBjb3VudC13ZWlnaHRlZCBicmFja2V0aW5nIG1lYW5zLlxuICAgIC8vXG4gICAgLy8gdGhpcyB0cmlnZ2VycyBjdW11bGF0ZSgpIGlmIGN1bW4ncyBhcmUgb3V0IG9mIGRhdGUuXG4gICAgLy9cbiAgICB2YXIgcHMgPSBBcnJheS5pc0FycmF5KHBfb3JfcGxpc3QpID8gcF9vcl9wbGlzdCA6IFtwX29yX3BsaXN0XTtcbiAgICB2YXIgcXMgPSBwcy5tYXAodGhpcy5fcGVyY2VudGlsZSwgdGhpcyk7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocF9vcl9wbGlzdCkgPyBxcyA6IHFzWzBdO1xufTtcblxuVERpZ2VzdC5wcm90b3R5cGUuX3BlcmNlbnRpbGUgPSBmdW5jdGlvbihwKSB7XG4gICAgaWYgKHRoaXMuc2l6ZSgpID09PSAwKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuX2N1bXVsYXRlKHRydWUpOyAvLyBiZSBzdXJlIGN1bW5zIGFyZSBleGFjdFxuICAgIHZhciBtaW4gPSB0aGlzLmNlbnRyb2lkcy5taW4oKTtcbiAgICB2YXIgbWF4ID0gdGhpcy5jZW50cm9pZHMubWF4KCk7XG4gICAgdmFyIGggPSB0aGlzLm4gKiBwO1xuICAgIHZhciBib3VuZCA9IHRoaXMuYm91bmRfbWVhbl9jdW1uKGgpO1xuICAgIHZhciBsb3dlciA9IGJvdW5kWzBdLCB1cHBlciA9IGJvdW5kWzFdO1xuXG4gICAgaWYgKHVwcGVyID09PSBsb3dlciB8fCBsb3dlciA9PT0gbnVsbCB8fCB1cHBlciA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gKGxvd2VyIHx8IHVwcGVyKS5tZWFuO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuZGlzY3JldGUpIHtcbiAgICAgICAgcmV0dXJuIGxvd2VyLm1lYW4gKyAoaCAtIGxvd2VyLm1lYW5fY3VtbikgKiAodXBwZXIubWVhbiAtIGxvd2VyLm1lYW4pIC8gKHVwcGVyLm1lYW5fY3VtbiAtIGxvd2VyLm1lYW5fY3Vtbik7XG4gICAgfSBlbHNlIGlmIChoIDw9IGxvd2VyLmN1bW4pIHtcbiAgICAgICAgcmV0dXJuIGxvd2VyLm1lYW47XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHVwcGVyLm1lYW47XG4gICAgfVxufTtcblxuZnVuY3Rpb24gcG9wX3JhbmRvbShjaG9pY2VzKSB7XG4gICAgLy8gcmVtb3ZlIGFuZCByZXR1cm4gYW4gaXRlbSByYW5kb21seSBjaG9zZW4gZnJvbSB0aGUgYXJyYXkgb2YgY2hvaWNlc1xuICAgIC8vIChtdXRhdGVzIGNob2ljZXMpXG4gICAgLy9cbiAgICB2YXIgaWR4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hvaWNlcy5sZW5ndGgpO1xuICAgIHJldHVybiBjaG9pY2VzLnNwbGljZShpZHgsIDEpWzBdO1xufVxuXG5URGlnZXN0LnByb3RvdHlwZS5jb21wcmVzcyA9IGZ1bmN0aW9uKCkge1xuICAgIC8vIFREaWdlc3RzIGV4cGVyaWVuY2Ugd29yc3QgY2FzZSBjb21wcmVzc2lvbiAobm9uZSkgd2hlbiBpbnB1dFxuICAgIC8vIGluY3JlYXNlcyBtb25vdG9uaWNhbGx5LiAgSW1wcm92ZSBvbiBhbnkgYmFkIGx1Y2sgYnlcbiAgICAvLyByZWNvbnN1bWluZyBkaWdlc3QgY2VudHJvaWRzIGFzIGlmIHRoZXkgd2VyZSB3ZWlnaHRlZCBwb2ludHNcbiAgICAvLyB3aGlsZSBzaHVmZmxpbmcgdGhlaXIgb3JkZXIgKGFuZCBob3BlIGZvciB0aGUgYmVzdCkuXG4gICAgLy9cbiAgICBpZiAodGhpcy5jb21wcmVzc2luZykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBwb2ludHMgPSB0aGlzLnRvQXJyYXkoKTtcbiAgICB0aGlzLnJlc2V0KCk7XG4gICAgdGhpcy5jb21wcmVzc2luZyA9IHRydWU7XG4gICAgd2hpbGUgKHBvaW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMucHVzaF9jZW50cm9pZChwb3BfcmFuZG9tKHBvaW50cykpO1xuICAgIH1cbiAgICB0aGlzLl9jdW11bGF0ZSh0cnVlKTtcbiAgICB0aGlzLmNvbXByZXNzaW5nID0gZmFsc2U7XG59O1xuXG5mdW5jdGlvbiBEaWdlc3QoY29uZmlnKSB7XG4gICAgLy8gYWxsb2NhdGUgYSBkaXN0cmlidXRpb24gZGlnZXN0IHN0cnVjdHVyZS4gVGhpcyBpcyBhbiBleHRlbnNpb25cbiAgICAvLyBvZiBhIFREaWdlc3Qgc3RydWN0dXJlIHRoYXQgc3RhcnRzIGluIGV4YWN0IGhpc3RvZ3JhbSAoZGlzY3JldGUpXG4gICAgLy8gbW9kZSwgYW5kIGF1dG9tYXRpY2FsbHkgc3dpdGNoZXMgdG8gVERpZ2VzdCBtb2RlIGZvciBsYXJnZVxuICAgIC8vIHNhbXBsZXMgdGhhdCBhcHBlYXIgdG8gYmUgZnJvbSBhIGNvbnRpbnVvdXMgZGlzdHJpYnV0aW9uLlxuICAgIC8vXG4gICAgdGhpcy5jb25maWcgPSBjb25maWcgfHwge307XG4gICAgdGhpcy5tb2RlID0gdGhpcy5jb25maWcubW9kZSB8fCAnYXV0byc7IC8vIGRpc2MsIGNvbnQsIGF1dG9cbiAgICBURGlnZXN0LmNhbGwodGhpcywgdGhpcy5tb2RlID09PSAnY29udCcgPyBjb25maWcuZGVsdGEgOiBmYWxzZSk7XG4gICAgdGhpcy5kaWdlc3RfcmF0aW8gPSB0aGlzLmNvbmZpZy5yYXRpbyB8fCAwLjk7XG4gICAgdGhpcy5kaWdlc3RfdGhyZXNoID0gdGhpcy5jb25maWcudGhyZXNoIHx8IDEwMDA7XG4gICAgdGhpcy5uX3VuaXF1ZSA9IDA7XG59XG5EaWdlc3QucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShURGlnZXN0LnByb3RvdHlwZSk7XG5EaWdlc3QucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gRGlnZXN0O1xuXG5EaWdlc3QucHJvdG90eXBlLnB1c2ggPSBmdW5jdGlvbih4X29yX3hsaXN0KSB7XG4gICAgVERpZ2VzdC5wcm90b3R5cGUucHVzaC5jYWxsKHRoaXMsIHhfb3JfeGxpc3QpO1xuICAgIHRoaXMuY2hlY2tfY29udGludW91cygpO1xufTtcblxuRGlnZXN0LnByb3RvdHlwZS5fbmV3X2NlbnRyb2lkID0gZnVuY3Rpb24oeCwgbiwgY3Vtbikge1xuICAgIHRoaXMubl91bmlxdWUgKz0gMTtcbiAgICBURGlnZXN0LnByb3RvdHlwZS5fbmV3X2NlbnRyb2lkLmNhbGwodGhpcywgeCwgbiwgY3Vtbik7XG59O1xuXG5EaWdlc3QucHJvdG90eXBlLl9hZGR3ZWlnaHQgPSBmdW5jdGlvbihuZWFyZXN0LCB4LCBuKSB7XG4gICAgaWYgKG5lYXJlc3QubiA9PT0gMSkge1xuICAgICAgICB0aGlzLm5fdW5pcXVlIC09IDE7XG4gICAgfVxuICAgIFREaWdlc3QucHJvdG90eXBlLl9hZGR3ZWlnaHQuY2FsbCh0aGlzLCBuZWFyZXN0LCB4LCBuKTtcbn07XG5cbkRpZ2VzdC5wcm90b3R5cGUuY2hlY2tfY29udGludW91cyA9IGZ1bmN0aW9uKCkge1xuICAgIC8vIHdoaWxlIGluICdhdXRvJyBtb2RlLCBpZiB0aGVyZSBhcmUgbWFueSB1bmlxdWUgZWxlbWVudHMsIGFzc3VtZVxuICAgIC8vIHRoZXkgYXJlIGZyb20gYSBjb250aW51b3VzIGRpc3RyaWJ1dGlvbiBhbmQgc3dpdGNoIHRvICdjb250J1xuICAgIC8vIG1vZGUgKHRkaWdlc3QgYmVoYXZpb3IpLiBSZXR1cm4gdHJ1ZSBvbiB0cmFuc2l0aW9uIGZyb21cbiAgICAvLyBkaXNjdGV0ZSB0byBjb250aW51b3VzLlxuICAgIGlmICh0aGlzLm1vZGUgIT09ICdhdXRvJyB8fCB0aGlzLnNpemUoKSA8IHRoaXMuZGlnZXN0X3RocmVzaCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLm5fdW5pcXVlIC8gdGhpcy5zaXplKCkgPiB0aGlzLmRpZ2VzdF9yYXRpbykge1xuICAgICAgICB0aGlzLm1vZGUgPSAnY29udCc7XG4gICAgICAgIHRoaXMuZGlzY3JldGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kZWx0YSA9IHRoaXMuY29uZmlnLmRlbHRhIHx8IDAuMDE7XG4gICAgICAgIHRoaXMuY29tcHJlc3MoKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgICdURGlnZXN0JzogVERpZ2VzdCxcbiAgICAnRGlnZXN0JzogRGlnZXN0XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUkJUcmVlOiByZXF1aXJlKCcuL2xpYi9yYnRyZWUnKSxcbiAgICBCaW5UcmVlOiByZXF1aXJlKCcuL2xpYi9iaW50cmVlJylcbn07XG4iLCJcbnZhciBUcmVlQmFzZSA9IHJlcXVpcmUoJy4vdHJlZWJhc2UnKTtcblxuZnVuY3Rpb24gTm9kZShkYXRhKSB7XG4gICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICB0aGlzLmxlZnQgPSBudWxsO1xuICAgIHRoaXMucmlnaHQgPSBudWxsO1xuICAgIHRoaXMucmVkID0gdHJ1ZTtcbn1cblxuTm9kZS5wcm90b3R5cGUuZ2V0X2NoaWxkID0gZnVuY3Rpb24oZGlyKSB7XG4gICAgcmV0dXJuIGRpciA/IHRoaXMucmlnaHQgOiB0aGlzLmxlZnQ7XG59O1xuXG5Ob2RlLnByb3RvdHlwZS5zZXRfY2hpbGQgPSBmdW5jdGlvbihkaXIsIHZhbCkge1xuICAgIGlmKGRpcikge1xuICAgICAgICB0aGlzLnJpZ2h0ID0gdmFsO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5sZWZ0ID0gdmFsO1xuICAgIH1cbn07XG5cbmZ1bmN0aW9uIFJCVHJlZShjb21wYXJhdG9yKSB7XG4gICAgdGhpcy5fcm9vdCA9IG51bGw7XG4gICAgdGhpcy5fY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7XG4gICAgdGhpcy5zaXplID0gMDtcbn1cblxuUkJUcmVlLnByb3RvdHlwZSA9IG5ldyBUcmVlQmFzZSgpO1xuXG4vLyByZXR1cm5zIHRydWUgaWYgaW5zZXJ0ZWQsIGZhbHNlIGlmIGR1cGxpY2F0ZVxuUkJUcmVlLnByb3RvdHlwZS5pbnNlcnQgPSBmdW5jdGlvbihkYXRhKSB7XG4gICAgdmFyIHJldCA9IGZhbHNlO1xuXG4gICAgaWYodGhpcy5fcm9vdCA9PT0gbnVsbCkge1xuICAgICAgICAvLyBlbXB0eSB0cmVlXG4gICAgICAgIHRoaXMuX3Jvb3QgPSBuZXcgTm9kZShkYXRhKTtcbiAgICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaXplKys7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB2YXIgaGVhZCA9IG5ldyBOb2RlKHVuZGVmaW5lZCk7IC8vIGZha2UgdHJlZSByb290XG5cbiAgICAgICAgdmFyIGRpciA9IDA7XG4gICAgICAgIHZhciBsYXN0ID0gMDtcblxuICAgICAgICAvLyBzZXR1cFxuICAgICAgICB2YXIgZ3AgPSBudWxsOyAvLyBncmFuZHBhcmVudFxuICAgICAgICB2YXIgZ2dwID0gaGVhZDsgLy8gZ3JhbmQtZ3JhbmQtcGFyZW50XG4gICAgICAgIHZhciBwID0gbnVsbDsgLy8gcGFyZW50XG4gICAgICAgIHZhciBub2RlID0gdGhpcy5fcm9vdDtcbiAgICAgICAgZ2dwLnJpZ2h0ID0gdGhpcy5fcm9vdDtcblxuICAgICAgICAvLyBzZWFyY2ggZG93blxuICAgICAgICB3aGlsZSh0cnVlKSB7XG4gICAgICAgICAgICBpZihub2RlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gaW5zZXJ0IG5ldyBub2RlIGF0IHRoZSBib3R0b21cbiAgICAgICAgICAgICAgICBub2RlID0gbmV3IE5vZGUoZGF0YSk7XG4gICAgICAgICAgICAgICAgcC5zZXRfY2hpbGQoZGlyLCBub2RlKTtcbiAgICAgICAgICAgICAgICByZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2l6ZSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZihpc19yZWQobm9kZS5sZWZ0KSAmJiBpc19yZWQobm9kZS5yaWdodCkpIHtcbiAgICAgICAgICAgICAgICAvLyBjb2xvciBmbGlwXG4gICAgICAgICAgICAgICAgbm9kZS5yZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5vZGUubGVmdC5yZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBub2RlLnJpZ2h0LnJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBmaXggcmVkIHZpb2xhdGlvblxuICAgICAgICAgICAgaWYoaXNfcmVkKG5vZGUpICYmIGlzX3JlZChwKSkge1xuICAgICAgICAgICAgICAgIHZhciBkaXIyID0gZ2dwLnJpZ2h0ID09PSBncDtcblxuICAgICAgICAgICAgICAgIGlmKG5vZGUgPT09IHAuZ2V0X2NoaWxkKGxhc3QpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdncC5zZXRfY2hpbGQoZGlyMiwgc2luZ2xlX3JvdGF0ZShncCwgIWxhc3QpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGdncC5zZXRfY2hpbGQoZGlyMiwgZG91YmxlX3JvdGF0ZShncCwgIWxhc3QpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBjbXAgPSB0aGlzLl9jb21wYXJhdG9yKG5vZGUuZGF0YSwgZGF0YSk7XG5cbiAgICAgICAgICAgIC8vIHN0b3AgaWYgZm91bmRcbiAgICAgICAgICAgIGlmKGNtcCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsYXN0ID0gZGlyO1xuICAgICAgICAgICAgZGlyID0gY21wIDwgMDtcblxuICAgICAgICAgICAgLy8gdXBkYXRlIGhlbHBlcnNcbiAgICAgICAgICAgIGlmKGdwICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZ2dwID0gZ3A7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBncCA9IHA7XG4gICAgICAgICAgICBwID0gbm9kZTtcbiAgICAgICAgICAgIG5vZGUgPSBub2RlLmdldF9jaGlsZChkaXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdXBkYXRlIHJvb3RcbiAgICAgICAgdGhpcy5fcm9vdCA9IGhlYWQucmlnaHQ7XG4gICAgfVxuXG4gICAgLy8gbWFrZSByb290IGJsYWNrXG4gICAgdGhpcy5fcm9vdC5yZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiByZXQ7XG59O1xuXG4vLyByZXR1cm5zIHRydWUgaWYgcmVtb3ZlZCwgZmFsc2UgaWYgbm90IGZvdW5kXG5SQlRyZWUucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICBpZih0aGlzLl9yb290ID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB2YXIgaGVhZCA9IG5ldyBOb2RlKHVuZGVmaW5lZCk7IC8vIGZha2UgdHJlZSByb290XG4gICAgdmFyIG5vZGUgPSBoZWFkO1xuICAgIG5vZGUucmlnaHQgPSB0aGlzLl9yb290O1xuICAgIHZhciBwID0gbnVsbDsgLy8gcGFyZW50XG4gICAgdmFyIGdwID0gbnVsbDsgLy8gZ3JhbmQgcGFyZW50XG4gICAgdmFyIGZvdW5kID0gbnVsbDsgLy8gZm91bmQgaXRlbVxuICAgIHZhciBkaXIgPSAxO1xuXG4gICAgd2hpbGUobm9kZS5nZXRfY2hpbGQoZGlyKSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgbGFzdCA9IGRpcjtcblxuICAgICAgICAvLyB1cGRhdGUgaGVscGVyc1xuICAgICAgICBncCA9IHA7XG4gICAgICAgIHAgPSBub2RlO1xuICAgICAgICBub2RlID0gbm9kZS5nZXRfY2hpbGQoZGlyKTtcblxuICAgICAgICB2YXIgY21wID0gdGhpcy5fY29tcGFyYXRvcihkYXRhLCBub2RlLmRhdGEpO1xuXG4gICAgICAgIGRpciA9IGNtcCA+IDA7XG5cbiAgICAgICAgLy8gc2F2ZSBmb3VuZCBub2RlXG4gICAgICAgIGlmKGNtcCA9PT0gMCkge1xuICAgICAgICAgICAgZm91bmQgPSBub2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcHVzaCB0aGUgcmVkIG5vZGUgZG93blxuICAgICAgICBpZighaXNfcmVkKG5vZGUpICYmICFpc19yZWQobm9kZS5nZXRfY2hpbGQoZGlyKSkpIHtcbiAgICAgICAgICAgIGlmKGlzX3JlZChub2RlLmdldF9jaGlsZCghZGlyKSkpIHtcbiAgICAgICAgICAgICAgICB2YXIgc3IgPSBzaW5nbGVfcm90YXRlKG5vZGUsIGRpcik7XG4gICAgICAgICAgICAgICAgcC5zZXRfY2hpbGQobGFzdCwgc3IpO1xuICAgICAgICAgICAgICAgIHAgPSBzcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYoIWlzX3JlZChub2RlLmdldF9jaGlsZCghZGlyKSkpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2libGluZyA9IHAuZ2V0X2NoaWxkKCFsYXN0KTtcbiAgICAgICAgICAgICAgICBpZihzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFpc19yZWQoc2libGluZy5nZXRfY2hpbGQoIWxhc3QpKSAmJiAhaXNfcmVkKHNpYmxpbmcuZ2V0X2NoaWxkKGxhc3QpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29sb3IgZmxpcFxuICAgICAgICAgICAgICAgICAgICAgICAgcC5yZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpYmxpbmcucmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUucmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkaXIyID0gZ3AucmlnaHQgPT09IHA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlzX3JlZChzaWJsaW5nLmdldF9jaGlsZChsYXN0KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncC5zZXRfY2hpbGQoZGlyMiwgZG91YmxlX3JvdGF0ZShwLCBsYXN0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGlzX3JlZChzaWJsaW5nLmdldF9jaGlsZCghbGFzdCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Auc2V0X2NoaWxkKGRpcjIsIHNpbmdsZV9yb3RhdGUocCwgbGFzdCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbnN1cmUgY29ycmVjdCBjb2xvcmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdwYyA9IGdwLmdldF9jaGlsZChkaXIyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdwYy5yZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5yZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3BjLmxlZnQucmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBncGMucmlnaHQucmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyByZXBsYWNlIGFuZCByZW1vdmUgaWYgZm91bmRcbiAgICBpZihmb3VuZCAhPT0gbnVsbCkge1xuICAgICAgICBmb3VuZC5kYXRhID0gbm9kZS5kYXRhO1xuICAgICAgICBwLnNldF9jaGlsZChwLnJpZ2h0ID09PSBub2RlLCBub2RlLmdldF9jaGlsZChub2RlLmxlZnQgPT09IG51bGwpKTtcbiAgICAgICAgdGhpcy5zaXplLS07XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIHJvb3QgYW5kIG1ha2UgaXQgYmxhY2tcbiAgICB0aGlzLl9yb290ID0gaGVhZC5yaWdodDtcbiAgICBpZih0aGlzLl9yb290ICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuX3Jvb3QucmVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kICE9PSBudWxsO1xufTtcblxuZnVuY3Rpb24gaXNfcmVkKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZSAhPT0gbnVsbCAmJiBub2RlLnJlZDtcbn1cblxuZnVuY3Rpb24gc2luZ2xlX3JvdGF0ZShyb290LCBkaXIpIHtcbiAgICB2YXIgc2F2ZSA9IHJvb3QuZ2V0X2NoaWxkKCFkaXIpO1xuXG4gICAgcm9vdC5zZXRfY2hpbGQoIWRpciwgc2F2ZS5nZXRfY2hpbGQoZGlyKSk7XG4gICAgc2F2ZS5zZXRfY2hpbGQoZGlyLCByb290KTtcblxuICAgIHJvb3QucmVkID0gdHJ1ZTtcbiAgICBzYXZlLnJlZCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIHNhdmU7XG59XG5cbmZ1bmN0aW9uIGRvdWJsZV9yb3RhdGUocm9vdCwgZGlyKSB7XG4gICAgcm9vdC5zZXRfY2hpbGQoIWRpciwgc2luZ2xlX3JvdGF0ZShyb290LmdldF9jaGlsZCghZGlyKSwgIWRpcikpO1xuICAgIHJldHVybiBzaW5nbGVfcm90YXRlKHJvb3QsIGRpcik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUkJUcmVlO1xuIiwiXG52YXIgVHJlZUJhc2UgPSByZXF1aXJlKCcuL3RyZWViYXNlJyk7XG5cbmZ1bmN0aW9uIE5vZGUoZGF0YSkge1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgdGhpcy5sZWZ0ID0gbnVsbDtcbiAgICB0aGlzLnJpZ2h0ID0gbnVsbDtcbn1cblxuTm9kZS5wcm90b3R5cGUuZ2V0X2NoaWxkID0gZnVuY3Rpb24oZGlyKSB7XG4gICAgcmV0dXJuIGRpciA/IHRoaXMucmlnaHQgOiB0aGlzLmxlZnQ7XG59O1xuXG5Ob2RlLnByb3RvdHlwZS5zZXRfY2hpbGQgPSBmdW5jdGlvbihkaXIsIHZhbCkge1xuICAgIGlmKGRpcikge1xuICAgICAgICB0aGlzLnJpZ2h0ID0gdmFsO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5sZWZ0ID0gdmFsO1xuICAgIH1cbn07XG5cbmZ1bmN0aW9uIEJpblRyZWUoY29tcGFyYXRvcikge1xuICAgIHRoaXMuX3Jvb3QgPSBudWxsO1xuICAgIHRoaXMuX2NvbXBhcmF0b3IgPSBjb21wYXJhdG9yO1xuICAgIHRoaXMuc2l6ZSA9IDA7XG59XG5cbkJpblRyZWUucHJvdG90eXBlID0gbmV3IFRyZWVCYXNlKCk7XG5cbi8vIHJldHVybnMgdHJ1ZSBpZiBpbnNlcnRlZCwgZmFsc2UgaWYgZHVwbGljYXRlXG5CaW5UcmVlLnByb3RvdHlwZS5pbnNlcnQgPSBmdW5jdGlvbihkYXRhKSB7XG4gICAgaWYodGhpcy5fcm9vdCA9PT0gbnVsbCkge1xuICAgICAgICAvLyBlbXB0eSB0cmVlXG4gICAgICAgIHRoaXMuX3Jvb3QgPSBuZXcgTm9kZShkYXRhKTtcbiAgICAgICAgdGhpcy5zaXplKys7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZhciBkaXIgPSAwO1xuXG4gICAgLy8gc2V0dXBcbiAgICB2YXIgcCA9IG51bGw7IC8vIHBhcmVudFxuICAgIHZhciBub2RlID0gdGhpcy5fcm9vdDtcblxuICAgIC8vIHNlYXJjaCBkb3duXG4gICAgd2hpbGUodHJ1ZSkge1xuICAgICAgICBpZihub2RlID09PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBpbnNlcnQgbmV3IG5vZGUgYXQgdGhlIGJvdHRvbVxuICAgICAgICAgICAgbm9kZSA9IG5ldyBOb2RlKGRhdGEpO1xuICAgICAgICAgICAgcC5zZXRfY2hpbGQoZGlyLCBub2RlKTtcbiAgICAgICAgICAgIHJldCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNpemUrKztcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3RvcCBpZiBmb3VuZFxuICAgICAgICBpZih0aGlzLl9jb21wYXJhdG9yKG5vZGUuZGF0YSwgZGF0YSkgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpciA9IHRoaXMuX2NvbXBhcmF0b3Iobm9kZS5kYXRhLCBkYXRhKSA8IDA7XG5cbiAgICAgICAgLy8gdXBkYXRlIGhlbHBlcnNcbiAgICAgICAgcCA9IG5vZGU7XG4gICAgICAgIG5vZGUgPSBub2RlLmdldF9jaGlsZChkaXIpO1xuICAgIH1cbn07XG5cbi8vIHJldHVybnMgdHJ1ZSBpZiByZW1vdmVkLCBmYWxzZSBpZiBub3QgZm91bmRcbkJpblRyZWUucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICBpZih0aGlzLl9yb290ID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB2YXIgaGVhZCA9IG5ldyBOb2RlKHVuZGVmaW5lZCk7IC8vIGZha2UgdHJlZSByb290XG4gICAgdmFyIG5vZGUgPSBoZWFkO1xuICAgIG5vZGUucmlnaHQgPSB0aGlzLl9yb290O1xuICAgIHZhciBwID0gbnVsbDsgLy8gcGFyZW50XG4gICAgdmFyIGZvdW5kID0gbnVsbDsgLy8gZm91bmQgaXRlbVxuICAgIHZhciBkaXIgPSAxO1xuXG4gICAgd2hpbGUobm9kZS5nZXRfY2hpbGQoZGlyKSAhPT0gbnVsbCkge1xuICAgICAgICBwID0gbm9kZTtcbiAgICAgICAgbm9kZSA9IG5vZGUuZ2V0X2NoaWxkKGRpcik7XG4gICAgICAgIHZhciBjbXAgPSB0aGlzLl9jb21wYXJhdG9yKGRhdGEsIG5vZGUuZGF0YSk7XG4gICAgICAgIGRpciA9IGNtcCA+IDA7XG5cbiAgICAgICAgaWYoY21wID09PSAwKSB7XG4gICAgICAgICAgICBmb3VuZCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZihmb3VuZCAhPT0gbnVsbCkge1xuICAgICAgICBmb3VuZC5kYXRhID0gbm9kZS5kYXRhO1xuICAgICAgICBwLnNldF9jaGlsZChwLnJpZ2h0ID09PSBub2RlLCBub2RlLmdldF9jaGlsZChub2RlLmxlZnQgPT09IG51bGwpKTtcblxuICAgICAgICB0aGlzLl9yb290ID0gaGVhZC5yaWdodDtcbiAgICAgICAgdGhpcy5zaXplLS07XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gQmluVHJlZTtcblxuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBzdHlsZXNJbkRvbSA9IHt9O1xuXG52YXIgaXNPbGRJRSA9IGZ1bmN0aW9uIGlzT2xkSUUoKSB7XG4gIHZhciBtZW1vO1xuICByZXR1cm4gZnVuY3Rpb24gbWVtb3JpemUoKSB7XG4gICAgaWYgKHR5cGVvZiBtZW1vID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gVGVzdCBmb3IgSUUgPD0gOSBhcyBwcm9wb3NlZCBieSBCcm93c2VyaGFja3NcbiAgICAgIC8vIEBzZWUgaHR0cDovL2Jyb3dzZXJoYWNrcy5jb20vI2hhY2stZTcxZDg2OTJmNjUzMzQxNzNmZWU3MTVjMjIyY2I4MDVcbiAgICAgIC8vIFRlc3RzIGZvciBleGlzdGVuY2Ugb2Ygc3RhbmRhcmQgZ2xvYmFscyBpcyB0byBhbGxvdyBzdHlsZS1sb2FkZXJcbiAgICAgIC8vIHRvIG9wZXJhdGUgY29ycmVjdGx5IGludG8gbm9uLXN0YW5kYXJkIGVudmlyb25tZW50c1xuICAgICAgLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay1jb250cmliL3N0eWxlLWxvYWRlci9pc3N1ZXMvMTc3XG4gICAgICBtZW1vID0gQm9vbGVhbih3aW5kb3cgJiYgZG9jdW1lbnQgJiYgZG9jdW1lbnQuYWxsICYmICF3aW5kb3cuYXRvYik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lbW87XG4gIH07XG59KCk7XG5cbnZhciBnZXRUYXJnZXQgPSBmdW5jdGlvbiBnZXRUYXJnZXQoKSB7XG4gIHZhciBtZW1vID0ge307XG4gIHJldHVybiBmdW5jdGlvbiBtZW1vcml6ZSh0YXJnZXQpIHtcbiAgICBpZiAodHlwZW9mIG1lbW9bdGFyZ2V0XSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHZhciBzdHlsZVRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0KTsgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcblxuICAgICAgaWYgKHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCAmJiBzdHlsZVRhcmdldCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYWNjZXNzIHRvIGlmcmFtZSBpcyBibG9ja2VkXG4gICAgICAgICAgLy8gZHVlIHRvIGNyb3NzLW9yaWdpbiByZXN0cmljdGlvbnNcbiAgICAgICAgICBzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbWVtb1t0YXJnZXRdID0gc3R5bGVUYXJnZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lbW9bdGFyZ2V0XTtcbiAgfTtcbn0oKTtcblxuZnVuY3Rpb24gbGlzdFRvU3R5bGVzKGxpc3QsIG9wdGlvbnMpIHtcbiAgdmFyIHN0eWxlcyA9IFtdO1xuICB2YXIgbmV3U3R5bGVzID0ge307XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldO1xuICAgIHZhciBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuICAgIHZhciBjc3MgPSBpdGVtWzFdO1xuICAgIHZhciBtZWRpYSA9IGl0ZW1bMl07XG4gICAgdmFyIHNvdXJjZU1hcCA9IGl0ZW1bM107XG4gICAgdmFyIHBhcnQgPSB7XG4gICAgICBjc3M6IGNzcyxcbiAgICAgIG1lZGlhOiBtZWRpYSxcbiAgICAgIHNvdXJjZU1hcDogc291cmNlTWFwXG4gICAgfTtcblxuICAgIGlmICghbmV3U3R5bGVzW2lkXSkge1xuICAgICAgc3R5bGVzLnB1c2gobmV3U3R5bGVzW2lkXSA9IHtcbiAgICAgICAgaWQ6IGlkLFxuICAgICAgICBwYXJ0czogW3BhcnRdXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3U3R5bGVzW2lkXS5wYXJ0cy5wdXNoKHBhcnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdHlsZXM7XG59XG5cbmZ1bmN0aW9uIGFkZFN0eWxlc1RvRG9tKHN0eWxlcywgb3B0aW9ucykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpdGVtID0gc3R5bGVzW2ldO1xuICAgIHZhciBkb21TdHlsZSA9IHN0eWxlc0luRG9tW2l0ZW0uaWRdO1xuICAgIHZhciBqID0gMDtcblxuICAgIGlmIChkb21TdHlsZSkge1xuICAgICAgZG9tU3R5bGUucmVmcysrO1xuXG4gICAgICBmb3IgKDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGRvbVN0eWxlLnBhcnRzW2pdKGl0ZW0ucGFydHNbal0pO1xuICAgICAgfVxuXG4gICAgICBmb3IgKDsgaiA8IGl0ZW0ucGFydHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgZG9tU3R5bGUucGFydHMucHVzaChhZGRTdHlsZShpdGVtLnBhcnRzW2pdLCBvcHRpb25zKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBwYXJ0cyA9IFtdO1xuXG4gICAgICBmb3IgKDsgaiA8IGl0ZW0ucGFydHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgcGFydHMucHVzaChhZGRTdHlsZShpdGVtLnBhcnRzW2pdLCBvcHRpb25zKSk7XG4gICAgICB9XG5cbiAgICAgIHN0eWxlc0luRG9tW2l0ZW0uaWRdID0ge1xuICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgcmVmczogMSxcbiAgICAgICAgcGFydHM6IHBhcnRzXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykge1xuICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5hdHRyaWJ1dGVzLm5vbmNlID09PSAndW5kZWZpbmVkJykge1xuICAgIHZhciBub25jZSA9IHR5cGVvZiBfX3dlYnBhY2tfbm9uY2VfXyAhPT0gJ3VuZGVmaW5lZCcgPyBfX3dlYnBhY2tfbm9uY2VfXyA6IG51bGw7XG5cbiAgICBpZiAobm9uY2UpIHtcbiAgICAgIG9wdGlvbnMuYXR0cmlidXRlcy5ub25jZSA9IG5vbmNlO1xuICAgIH1cbiAgfVxuXG4gIE9iamVjdC5rZXlzKG9wdGlvbnMuYXR0cmlidXRlcykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgc3R5bGUuc2V0QXR0cmlidXRlKGtleSwgb3B0aW9ucy5hdHRyaWJ1dGVzW2tleV0pO1xuICB9KTtcblxuICBpZiAodHlwZW9mIG9wdGlvbnMuaW5zZXJ0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgb3B0aW9ucy5pbnNlcnQoc3R5bGUpO1xuICB9IGVsc2Uge1xuICAgIHZhciB0YXJnZXQgPSBnZXRUYXJnZXQob3B0aW9ucy5pbnNlcnQgfHwgJ2hlYWQnKTtcblxuICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICAgIH1cblxuICAgIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gIH1cblxuICByZXR1cm4gc3R5bGU7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSkge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgaWYgKHN0eWxlLnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdHlsZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlKTtcbn1cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuXG5cbnZhciByZXBsYWNlVGV4dCA9IGZ1bmN0aW9uIHJlcGxhY2VUZXh0KCkge1xuICB2YXIgdGV4dFN0b3JlID0gW107XG4gIHJldHVybiBmdW5jdGlvbiByZXBsYWNlKGluZGV4LCByZXBsYWNlbWVudCkge1xuICAgIHRleHRTdG9yZVtpbmRleF0gPSByZXBsYWNlbWVudDtcbiAgICByZXR1cm4gdGV4dFN0b3JlLmZpbHRlcihCb29sZWFuKS5qb2luKCdcXG4nKTtcbiAgfTtcbn0oKTtcblxuZnVuY3Rpb24gYXBwbHlUb1NpbmdsZXRvblRhZyhzdHlsZSwgaW5kZXgsIHJlbW92ZSwgb2JqKSB7XG4gIHZhciBjc3MgPSByZW1vdmUgPyAnJyA6IG9iai5jc3M7IC8vIEZvciBvbGQgSUVcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG5cbiAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSByZXBsYWNlVGV4dChpbmRleCwgY3NzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgY3NzTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcyk7XG4gICAgdmFyIGNoaWxkTm9kZXMgPSBzdHlsZS5jaGlsZE5vZGVzO1xuXG4gICAgaWYgKGNoaWxkTm9kZXNbaW5kZXhdKSB7XG4gICAgICBzdHlsZS5yZW1vdmVDaGlsZChjaGlsZE5vZGVzW2luZGV4XSk7XG4gICAgfVxuXG4gICAgaWYgKGNoaWxkTm9kZXMubGVuZ3RoKSB7XG4gICAgICBzdHlsZS5pbnNlcnRCZWZvcmUoY3NzTm9kZSwgY2hpbGROb2Rlc1tpbmRleF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZS5hcHBlbmRDaGlsZChjc3NOb2RlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYXBwbHlUb1RhZyhzdHlsZSwgb3B0aW9ucywgb2JqKSB7XG4gIHZhciBjc3MgPSBvYmouY3NzO1xuICB2YXIgbWVkaWEgPSBvYmoubWVkaWE7XG4gIHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwO1xuXG4gIGlmIChtZWRpYSkge1xuICAgIHN0eWxlLnNldEF0dHJpYnV0ZSgnbWVkaWEnLCBtZWRpYSk7XG4gIH1cblxuICBpZiAoc291cmNlTWFwICYmIGJ0b2EpIHtcbiAgICBjc3MgKz0gXCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpLCBcIiAqL1wiKTtcbiAgfSAvLyBGb3Igb2xkIElFXG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqL1xuXG5cbiAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlLmZpcnN0Q2hpbGQpIHtcbiAgICAgIHN0eWxlLnJlbW92ZUNoaWxkKHN0eWxlLmZpcnN0Q2hpbGQpO1xuICAgIH1cblxuICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICB9XG59XG5cbnZhciBzaW5nbGV0b24gPSBudWxsO1xudmFyIHNpbmdsZXRvbkNvdW50ZXIgPSAwO1xuXG5mdW5jdGlvbiBhZGRTdHlsZShvYmosIG9wdGlvbnMpIHtcbiAgdmFyIHN0eWxlO1xuICB2YXIgdXBkYXRlO1xuICB2YXIgcmVtb3ZlO1xuXG4gIGlmIChvcHRpb25zLnNpbmdsZXRvbikge1xuICAgIHZhciBzdHlsZUluZGV4ID0gc2luZ2xldG9uQ291bnRlcisrO1xuICAgIHN0eWxlID0gc2luZ2xldG9uIHx8IChzaW5nbGV0b24gPSBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykpO1xuICAgIHVwZGF0ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZSwgc3R5bGVJbmRleCwgZmFsc2UpO1xuICAgIHJlbW92ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZSwgc3R5bGVJbmRleCwgdHJ1ZSk7XG4gIH0gZWxzZSB7XG4gICAgc3R5bGUgPSBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucyk7XG4gICAgdXBkYXRlID0gYXBwbHlUb1RhZy5iaW5kKG51bGwsIHN0eWxlLCBvcHRpb25zKTtcblxuICAgIHJlbW92ZSA9IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSk7XG4gICAgfTtcbiAgfVxuXG4gIHVwZGF0ZShvYmopO1xuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlU3R5bGUobmV3T2JqKSB7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgaWYgKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiYgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiYgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZShvYmogPSBuZXdPYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICByZW1vdmUoKTtcbiAgICB9XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGxpc3QsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIG9wdGlvbnMuYXR0cmlidXRlcyA9IHR5cGVvZiBvcHRpb25zLmF0dHJpYnV0ZXMgPT09ICdvYmplY3QnID8gb3B0aW9ucy5hdHRyaWJ1dGVzIDoge307IC8vIEZvcmNlIHNpbmdsZS10YWcgc29sdXRpb24gb24gSUU2LTksIHdoaWNoIGhhcyBhIGhhcmQgbGltaXQgb24gdGhlICMgb2YgPHN0eWxlPlxuICAvLyB0YWdzIGl0IHdpbGwgYWxsb3cgb24gYSBwYWdlXG5cbiAgaWYgKCFvcHRpb25zLnNpbmdsZXRvbiAmJiB0eXBlb2Ygb3B0aW9ucy5zaW5nbGV0b24gIT09ICdib29sZWFuJykge1xuICAgIG9wdGlvbnMuc2luZ2xldG9uID0gaXNPbGRJRSgpO1xuICB9XG5cbiAgdmFyIHN0eWxlcyA9IGxpc3RUb1N0eWxlcyhsaXN0LCBvcHRpb25zKTtcbiAgYWRkU3R5bGVzVG9Eb20oc3R5bGVzLCBvcHRpb25zKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZShuZXdMaXN0KSB7XG4gICAgdmFyIG1heVJlbW92ZSA9IFtdO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpdGVtID0gc3R5bGVzW2ldO1xuICAgICAgdmFyIGRvbVN0eWxlID0gc3R5bGVzSW5Eb21baXRlbS5pZF07XG5cbiAgICAgIGlmIChkb21TdHlsZSkge1xuICAgICAgICBkb21TdHlsZS5yZWZzLS07XG4gICAgICAgIG1heVJlbW92ZS5wdXNoKGRvbVN0eWxlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmV3TGlzdCkge1xuICAgICAgdmFyIG5ld1N0eWxlcyA9IGxpc3RUb1N0eWxlcyhuZXdMaXN0LCBvcHRpb25zKTtcbiAgICAgIGFkZFN0eWxlc1RvRG9tKG5ld1N0eWxlcywgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IG1heVJlbW92ZS5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfZG9tU3R5bGUgPSBtYXlSZW1vdmVbX2ldO1xuXG4gICAgICBpZiAoX2RvbVN0eWxlLnJlZnMgPT09IDApIHtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBfZG9tU3R5bGUucGFydHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBfZG9tU3R5bGUucGFydHNbal0oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSBzdHlsZXNJbkRvbVtfZG9tU3R5bGUuaWRdO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihvYmopIHtcbm9iaiB8fCAob2JqID0ge30pO1xudmFyIF9fdCwgX19wID0gJyc7XG53aXRoIChvYmopIHtcbl9fcCArPSAnPGRpdiBjbGFzcz1cImMtY29waWVyXCI+XFxuICA8ZGl2IGNsYXNzPVwiYy1zZXNzaW9uXCI+XFxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiby1oaWRkZW4gYy1zZXNzaW9uX19hdXRob3JpemVcIj5BdXRob3JpemU8L2J1dHRvbj5cXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJvLWhpZGRlbiBjLXNlc3Npb25fX2xvZ291dFwiPkxvZyBPdXQ8L2J1dHRvbj5cXG4gIDwvZGl2PlxcblxcbiAgPGRpdiBjbGFzcz1cIm8taGlkZGVuIGMtY29waWVyX19jb250ZW50XCI+XFxuICAgIDxkaXYgY2xhc3M9XCJjLWNvcGllcl9fZm9sZGVyLW5hbWVcIj5cXG4gICAgICAnICtcbigoX190ID0gKCBsaW5rLmlubmVySFRNTCApKSA9PSBudWxsID8gJycgOiBfX3QpICtcbidcXG4gICAgPC9kaXY+XFxuXFxuICAgIDxhIGhyZWY9XCInICtcbigoX190ID0gKCBsaW5rLmhyZWYgKSkgPT0gbnVsbCA/ICcnIDogX190KSArXG4nXCIgY2xhc3M9XCJjLWNvcGllcl9fc3RhcnQtbGlua1wiPlxcbiAgICAgIDxpbWcgc3JjPVwiJyArXG4oKF9fdCA9ICggcmVxdWlyZSgnLi9hc3NldHMvZm9sZGVyLXN0YXJ0LnBuZycpLmRlZmF1bHQgKSkgPT0gbnVsbCA/ICcnIDogX190KSArXG4nXCIgYWx0PVwiU3RhcnQgZG93bmxvYWRcIiB3aWR0aD1cIjMyXCIgY2xhc3M9XCJjLWNvcGllcl9fc3RhcnRcIj5cXG4gICAgPC9hPlxcblxcbiAgICA8aW1nIHNyYz1cIicgK1xuKChfX3QgPSAoIHJlcXVpcmUoJy4vYXNzZXRzL2ZvbGRlci1wcm9ncmVzcy5wbmcnKS5kZWZhdWx0ICkpID09IG51bGwgPyAnJyA6IF9fdCkgK1xuJ1wiIGFsdD1cIkRvd25sb2FkIGluIHByb2dyZXNzXCIgd2lkdGg9XCIzMlwiIGNsYXNzPVwiby1oaWRkZW4gYy1jb3BpZXJfX3Byb2dyZXNzXCI+XFxuICAgIDxpbWcgc3JjPVwiJyArXG4oKF9fdCA9ICggcmVxdWlyZSgnLi9hc3NldHMvZm9sZGVyLWZpbmlzaGVkLnBuZycpLmRlZmF1bHQgKSkgPT0gbnVsbCA/ICcnIDogX190KSArXG4nXCIgYWx0PVwiRG93bmxvYWQgZmluaXNoZWRcIiB3aWR0aD1cIjMyXCIgY2xhc3M9XCJvLWhpZGRlbiBjLWNvcGllcl9fZmluaXNoZWRcIj5cXG5cXG4gICAgPGEgaHJlZj1cIicgK1xuKChfX3QgPSAoIGxpbmsuZGF0YXNldC5wcmV2aWV3ICkpID09IG51bGwgPyAnJyA6IF9fdCkgK1xuJ1wiIHRhcmdldD1cIl9ibGFua1wiPlxcbiAgICAgIDxpbWcgc3JjPVwiJyArXG4oKF9fdCA9ICggcmVxdWlyZSgnLi9hc3NldHMvZm9sZGVyLXByZXZpZXcucG5nJykuZGVmYXVsdCApKSA9PSBudWxsID8gJycgOiBfX3QpICtcbidcIiBhbHQ9XCJQcmV2aWV3IGZvbGRlclwiIHdpZHRoPVwiMjJcIiBjbGFzcz1cImMtY29waWVyX19wcmV2aWV3XCI+XFxuICAgIDwvYT5cXG4gIDwvZGl2PlxcblxcbiAgPGRpdiBjbGFzcz1cImMtY29waWVyX19tZXNzYWdlXCI+TG9hZGluZyBHb29nbGUgRHJpdmUgQnVsayBEb3dubG9hZGVyLi4uPC9kaXY+XFxuPC9kaXY+XFxuJztcblxufVxucmV0dXJuIF9fcFxufSIsInZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vY2xpZW50LnNjc3NcIik7XG5cbmlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xufVxuXG52YXIgb3B0aW9ucyA9IHt9XG5cbm9wdGlvbnMuaW5zZXJ0ID0gXCJoZWFkXCI7XG5vcHRpb25zLnNpbmdsZXRvbiA9IGZhbHNlO1xuXG52YXIgdXBkYXRlID0gcmVxdWlyZShcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIikoY29udGVudCwgb3B0aW9ucyk7XG5cbmlmIChjb250ZW50LmxvY2Fscykge1xuICBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xufVxuIiwiZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIikoZmFsc2UpO1xuLy8gTW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCIuby1lcnJvcntjb2xvcjojZjc2ICFpbXBvcnRhbnR9LmMtY29udGFpbmVye2NvbG9yOiM0NDQ7aGVpZ2h0OjEwMHZoO3dpZHRoOjYwcmVtfS5jLXNlc3Npb257ZmxvYXQ6cmlnaHR9LmMtc2Vzc2lvbiBidXR0b257bWFyZ2luOjA7cGFkZGluZzowLjJyZW0gMC40cmVtfS5jLWNvcGllcntib3JkZXI6MXB4IHNvbGlkICNiYmI7bWFyZ2luOjFyZW0gMDtwYWRkaW5nOjFyZW19LmMtY29waWVyX19tZXNzYWdle2NvbG9yOiNhYWF9LmMtY29waWVyX19zdGFydHtmaWx0ZXI6YnJpZ2h0bmVzcyg5NSUpfS5jLWNvcGllcl9fZm9sZGVyLW5hbWV7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmMtY29waWVyIGltZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmMtY29waWVyIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmMtY29waWVyIC5vLWhpZGRlbntkaXNwbGF5Om5vbmV9XFxuXCIsIFwiXCJdKTtcbiIsImV4cG9ydCBkZWZhdWx0IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUJRQUFBQU5xQ0FZQUFBRFNXK2J4QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBRk5DU1VSQlZIaGU3ZDBKY0IzM2ZTZDQ5SHM0U1VxMlpVbVVaRmtTTHgwV0tONEVRSXFrTENsV2xLMGt1NU5KTnBQVTdPN1V6bVltTTg1VU1wVk50aXpMa213ZHBDajUxaVN4azltZHF0MGNrL0dST1BHUnhIWlNpY2FuQkZLMmZFZzhkRGcrWkRtT1JaREU5VjV2Ti9nSEk0b0VDUkw5Z05mLy9ueXF1dnJYM1NBQTR2VnJkSC94KzNjbmFacDJBSnhLa2lRT0VNQ2NaT2NaU1NnQkFJQUZJZ0NFaWhQeUFRdEJNQWdBQVBOSEFBZ1ZJL0FEMnBWUUVBQUFXa01BQ0JVZzlBUEtSQkFJQUFERkVnQkNwSVIrUUF5RWdRQUFNSGUxTUFjaWtRZC93ajhnRmk4L3B2MlgvL0pmZm01cUpRQUFjRlowQUVJa2hINUFGZWdJQkFDQXN5Y0FoSklUL0FGVkpBZ0VBSURaRXdCQ2lRbi9nS29UQkFJQXdKa0pBS0dFQkg4QS8wUUlDQUFBcCtjaElGQXl3aitBRXprdUFnREE2ZWtBaEJKeGtRdHdlcm9CQVFEZ1pBSkFLQUhCSDhEc0NRRUJBT0JFaGdCRG14UCtBWndkeDAwQUFEaVJBQkRhMUh2ZTg1NS80U0lXNE53NGZnSUF3RDh4QkJqYTBDT1BQUEx6YjM3em0vOGdMQUp3amd3SEJnQUFBU0MwSlowckFNVVJBZ0lBVUhXR0FFT2JFZjRCRk10eEZRQ0FxdE1CQ0czRVJXcGNGaTFhMUxGa3laS3cxQnJaUGhNcVdGaUhEaDNxT0hMa1NGaHFUem9CQVFDb0tnRWd0SkdGRGdBdnV1aWlqaGRlZUNFc0FSVG5ra3N1NmZqZTk3NFhsaGFPRUJBQWdDb1NBRUtiV0lqd3I2dXJxMk44ZkR3c0FjeVBxNjY2cXVPNzMvMXV4OWpZV0ZnemZ3U0FBQUJVa1hzQXdnSjc1SkZIL3ZsOGgzOTU4SjlQd2o5Z0lUenp6RE1kbzZPang0OUY4OG10RmdBQXFDSWRnTERBNXZOaTFQc2RhR2ZaOFRCVXJaY2REM1VDQWdCUUdUb0FvUUo2ZTN1RmYwRGJ5NDlUamxVQUFGQThIWUN3Z09hais4OTdIQ2lqenM3T2prYWpFWlphSXpzKzZnSUVBS0FTQklDd2dGb1pBSHB2QXpGbzliQmdJU0FBQUZWZ0NEQXNFT0Vmd0prNW5nRUF3TndKQUdFQkNQOEFacStycXl0VXhadVBXekVBQU1CQ0V3QkNSSVIvUUl6R3g4YzdlbnA2d2hJQUFIQzIzQU1RNWxtcnVrMjhsNEhZNVoyQWs1T1RZYWxZMlRIVXZRQUJBSWlXQUJEbVdTc0NRTzlqb0VxeTQyaW9paU1BQkFBZ1pvWUFROGwxZG5hR0NxQWFXdkZIRC9jQ0JBQWdaam9BWVI3cC9nTW9oaTVBQUFDWVBSMkFVR0xDUDZDcWRBRUNBTURzQ1FCaG5oUjlZV25vTDFCMS9nZ0NBQUN6SXdDRWVmREJEMzd3WjBKWm1JbUppVkFCQUFBQXpNdzlBR0dlRk5rQjJOUFQwekU2T2hxV0FLcXR5UHNCdWc4Z0FBQXhFZ0RDUENoNitLLzNMY0EvS1RJQXpBa0JBUUNJalNIQVVETHUvUWR3b29zdXVpaFVBQURBcWVnQWhIbFFaQWVnOXl6QXlRd0RCZ0NBbWVrQUJBQjRtYUp2MndBQUFBdE5BQWdsa2ovOEE0Q1Q2WTRHQUlDWkdRSU1MV2I0TDhEOE1Bd1lBQUJPVFFjZ0FBQUFBRVJNQUFnQVJNRlQwZ0VBNE5RRWdGQVM1NTkvZnFnQU9KWEp5Y2xRQVFBQUx5Y0FoSks0NUpKTFFnVUFBQUF3ZXg0Q0FpMVcxRU5BdkZjQnpxeW9CNEY0Q0FnQUFESFJBUWdBQUFBQUVSTUFBZ0FBQUVERUJJQUFBQUFBRURFQklBQUFBQUJFVEFBSUFBQUFBQkVUQUFJQUFBQkF4QVNBQUFBQUFCQXhBU0FBQUFBQVJFd0FDQUFBQUFBUkV3QUNBQUFBUU1RRWdBQUFBQUFRTVFFZ0FBQUFBRVJNQUFnQUFBQUFFUk1BQWdBQUFFREVCSUFBQUFBQUVERUJJQUFBQUFCRVRBQUlBQUFBQUJFVEFBSUFBQUJBeEFTQUFBQUFBQkF4QVNBQUFBQUFSRXdBQ0FBQUFBQVJFd0FDQUFBQVFNUUVnQUFBQUFBUU1RRWdBQUFBQUVSTUFBZ0FBQUFBRVJNQUFnQUFBRURFQklBQUFBQUFFREVCSUFBQUFBQkVUQUFJQUFBQUFCRVRBQUlBQUFCQXhBU0FBQUFBQUJBeEFTQUFBQUFBUkV3QUNBQUFBQUFSRXdBQ0FMeENraVJwS0FFQW9QU1NOSFYrQzYxVTFFV2s5eXJBbVdYSDNGQUJBRldXWFQ4NUtZQ1hFUUJDQ3hYWlFlSzlDbkJtQWtBQVlDWkNRYXBNQUFnRmFmVndNZTlWZ0RNVEFBSUFzeUVNcEdvRWdEQUhyUTc5WHM1N0ZlRE1CSUFBd05rU0JsSUZBa0E0Uy9NWityMmM5eXJBbVFrQUFZQnpKUWdrWnA0Q0RMT1VCMzhMRmY0QkFBRFFXcTc1aUprQUVNN0FMd0VBQUlEcWNBMUlqQVNBTUFNSGZRQUFnT3FhdmlaODVKRkhmakdzZ3RKeUQwQjRoWFlOL2J4WEFjNHNPNGFIQ2dDZ09PNFBTTm5wQUlTWDBmRUhBQURBSzdsV3BPd0VnRlRlZTkvNzNwL1BEK1lPNkFBQUFNekVkU05sWmdnd2xWZVdBN2ozS3NDWlpjZjBVQUVBdEk0aHdaU05Ea0FxelY5dkFBQUFPRnV1SlNrYkFTQ1Y1WUFOQUFEQXVYSk5TWmtJQUttYy9DRHRRQTBBQU1CY3ViYWtMQVNBVklxRE13QUFBRVZ5blVrWkNBQ3BEQWRsQUFBQVdzSDFKdTNPVTRDcGpMSWZrTDFYQVFBQVRwUmQ1NFdxUFhnNk1PMUtCeUNWMEE3aDN3VVhYTkJ4N2JYWFRnVjU1eklCQUFCd292eGFhZFdxVlIyZG5aMWh6Y0xTQ1VpNzBnRkk5QmJxQUh6eHhSZDNmTzk3M3d0TEFBQUF6SmZ1N3U2T2lZbUpzRFQvVXAyQXRCa0JJRkdiNy9CdjBhSkZIWWNQSHc1TEFBQUFMS1NGR2lJc0FLVGRDQUNKMW55R2Y5NUhBQUFBN1dzaE9nS0ZnTFFUOXdDRU9jaURQK0VmQUFCQWV4c2ZINSs2ZHB2UGV3WG1UU252ZTkvNy9ubFloQVdsQTVBb3RicjdyMTZ2ZDB4T1RvWWxBQUFBeW1RK2h3YnJCS1FkNkFBa09xME8vL0xRWFBnSEFBQlFYdmwxWFc5dmIxaUMrT2tBSkRxdERBQzlYd0FBQU9JeUg5MkF1Z0JaYURvQWljWkREejMwODYwTS8rYnpYaEVBQUFETUQ0MGVWSUVPUUtMU3FnQXdELy9tKzRsUkFBQUF6SjlXZHdMcUFtUWg2UUFrR3EwSy83cTZ1b1IvQUFBQWtkTWdSY3gwQUJLTlZnV0EzaU1BQUFEVjBjcE9RRjJBTEJRZGdKVGVndzgrK0xQQ1B3QUFBSXFRWHdlNkZpUTJPZ0NKUXRFQjRPTEZpenRHUmtiQ0VnQUFBRlhVaW01QVhZQXNCQUVncFZkMCtGZXYxenNtSnlmREVnQUFBRlVsQUNRV2hnRERLd2ovQUFBQXlHbWFJaFlDUUVxdDZPNi9ucDZlVUFFQUFFQkhSM2QzZDZpS1VmUjFMTXlHSWNDVVd0RUhUdThIQUFBQVhxbm9vY0NHQVRQZmRBQkNvUHNQQUFDQVV5bTZDeERtbXc1QVNxM0lEa0R2QlFBQUFHWlNaQmVnRGtEbW13NUFTc3Q5RXdBQUFBRE9UQUJJS2YzR2Ivekd6NGV5RUpkZmZubW9BQUFBQU9KaUNEQ2xaZmd2QUFBQTg4VVFZTXBNQnlCa2xpMWJGaW9BQUFDQXVPZ0FwTFIwQUFJQUFEQmZpdXdBek9rQ1pEN3BBS1NVUEFBRUFBQUFZSFlFZ0FBQUFBQVFNUUVnQUFBQXdEd3pzbzM1SkFDa2RINzFWMy8xWDRjU0FBQUFTaXNQQVY4K2hkVWRYL3ppRjMvenkxLys4aytIUlpnekR3R2hsSXIrUzRuM0FRQUFBS2VUWFllR2FuN2xEd3ZadTNmdnpqVnIxdnhmWVJXY05SMkFsTTR2L2RJdk9lZ0JBQUJRQ1hrRHpOcTFhMzl6dWt2d1MxLzYwaU5oRTh5YURrQktxZWdPUUFBQUFDaVR2RFB3eVNlZi9EZlhYMy85NzRSVk1DTWRnTFRjM3IxN2YrRXJYL25LQ1YxNzAzKzVPTmNwZkJvQUFBQ29wUHphdUwrLy83ZnorUmUrOElVN3dtbzRKUjJBRkc1NGVQanQ2OWF0ZTV1Z0RnQUFBT2JQbDc3MHBUczJidHg0ZjFpRTR3U0F6TmxYdi9yVm4rM3Y3LzlqZ1I4QUFBQXNySHhvOE9jKzk3bC9OalEwOU9Hd0NnU0FuTHN2Zk9FTDd4d2NIUHkxc0FnQUFBQzBpVHdJRENXNEJ5Qm43L0hISC8vOXZOdFArQWNBQUFEdEtiOXV6NmN2ZmVsTHZ4QldVV0U2QURrcmh2a0NBQUJBdVh6NXkxOStaTU9HRFc4T2kxU1FBSkJaRWZ3QkFBQkFlUmtTWEcyR0FET2o0ZUhodTZaYmhzTXFBQUFBb0lSYzMxZWJEa0JtNU1BQUFBQUE4Zm44NXovL013TURBNTRTWENFNkFEbkI1ejczdVYveFZ3RUFBQUNJMStEZzRJZSs4SVV2L0Z4WXBBSjBBSElDd1I4QUFBQlV3K2MrOTdtZkhSd2MvRzloa1lnSkFEbE8rQWNBQUFEVjR1RWcxU0FBUlBBSEFBQUFGU1lFako5N0FGYWM4QThBQUFDcVRUWVFQd0ZnaFhtREF3QUFBTVRQRU9DS0V2NEJBQURBN1BUMDlIUmNmdm5sWWVuVXN1dnNqczdPem81R281RVBxUTFyVCszNTU1L3ZHQnNiQzB2dHcxRGdlQWtBSzBqNEJ3QUE1VGJiTUdJMjhzQ2lTTFhhbVFlYTVkL2JWNy82MWFtNnY3OS9hbjRxMHg4RFZkSFgxOWN4T2pvYWxoYUdFREJPQXNBS0VnQUNBTG1YQndqZit0YTNUdG1Ka0gvTTYxLy8rckEwczlrR0NHY1RESnd1Rk1nSkJnQ0kyWklsU3pvT0h6NGNsdWFYRURBK0FzQ0tFZjRCQzJFMlhRcTUyUVlEcy9tNGVyMGVxcmtUTWdBQXNKRHljK0Q1SkFDTWp3Q3dRb1IvclZGMFo4UnNRZ3RoQkFBQVFQWE1aeEFvQkl5TEFMQWkyaUg4czY4QkFBREEzQ3hldkxqanlKRWpZYWwxQklCeE9mTVlLa3B2b2NLLzN0N2VxZEJ2ZWdJQUFBRG1Kcjh2NEh4Y1krZFp3bWMvKzluL05TeFNjam9BSzJDK0EwRDdGQUFBQUxUZWZBd0p6cTd4ZFFKR1FBZGc1T1l6L011RFArRWZBQUFBekkvNXVBYi8vT2MvLzMrRWtoTFRBUmk1K1FnQUZ5MWF0R0NQSmdjQUFJQ3FhMlVub0E3QU9PZ0FqTlRmL00zZi9KdjVDUC95QUZuNEJ3QUFBQXVubGMxZGViYndkMy8zZC85aldLU2tkQUJHYXI3Q1B3QUFBS0E5dEtvVFVCZGcrZWtBak5CblAvdlpYdzFseXdqL0FBQUFvTDIwNmxwOVBwcU1hQzBkZ0JGcTlSdlRQZ01BQUFEdHF4V2RnRi84NGhmZnVtblRwdnZDSWlXakF6QXlmL2QzZi9lTG9Xd0o0UjhBQUFCVWovQ3YzSFFBUnFoVkhZRDJGUUFBQUNpSFZuUUJwdTRGV0ZvNkFDTWovQU1BQUFCYTRZa25udmpYb2FSa0JJQVJlZXl4eDk0VnlrSUovd0FBQUtCY1duRXRmOE1OTi94dUtDa1pRNEFqMDRvT1FQc0lBQUFBbEk5aHdFelRBUmdSNFI4QUFBQXd6VFU5MHdTQWtmajg1ei8vdGxBQ0FBQUF0TVNlUFh2K1JTZ3BFUUZnSkFZSEI5OGV5c0w0U3dFQUFBRHdja21TOUllU0VuRVB3RWdZL2dzQUFBQ2NTcEgzQWt6ZEE3Q1VkQUJ5U3NJL0FBQUFnRGdJQUNQdytPT1B2eldVQUFBQUFIQUNRNEFqVWZRUVlQc0ZBQUFBeEtISUljQTV3NERMUndjZ0p4SCtBUUFBQU1SREFCaUJWandBQkFBQUFJQTRDQUFCQUFBQUlHSUNRQUFBQUFDSW1BQVFBQUFBQUNJbUFBUUFBQUNBaUFrQVMyN3YzcjMvVXlnTDBkUFRFeW9BQUFBQVlpQUFMTGxHbzlFVnlrSXNXN1lzVkFBQUFBREVRQUJZY3JWYUxRbGxJU1luSjBNRkFBQUFRQXdFZ09VM0d1YUZlUDc1NTBNRkFBQUFRQXlTTkUxRFNWa2xTVkxvaTJpZkFBQUFnSGdrU2FHREIvUGNvTmhQU012cEFBUUFBQUNBaUFrQUFRQUFBSmdWM1gvbEpBQUVBQUFBZ0lnSkFBRUFBQUFnWWdKQUFBQUFBSWlZQUJBQUFBQUFJaVlBaklBYmNBSUFBQUF3RXdFZ0FBQUFBTE95WjgrZXZ3b2xKU0lBQkFBQUFHQzJKc09jRWhFQVJtQjRlUGdUb1FRQUFBQm9KUUZnQ1FrQTR6QWE1Z0FBQUFBdGs2YXBBTENFQklCeE9Cem1BQUFBQUMyVEpNbEVLQ2tSQVdBRXNqZmZvVkFDQUFBQXROSjRtRk1pQXNBSUpFa3lFa29BQUFDQWxrblRWQUJZUWdMQUNEU2JUUjJBQUFBQXdId1FBSmFRQURBQ3RWcXQwQUN3djc4L1ZBQUFBQUFuR0F0elNrUUFHSUUwVFFzZEF0eG9ORUlGQUFBQThFOXF0Wm9Pd0JJU0FFWWdUZE5DT3dBbkp6M1JHd0FBQURoWnM5a1VBSmFRQURBQzY5YXQrOE5RRnVMNTU1OFBGUUFBQU1BSkRBRXVJUUVnSnhrYjgxNEdBQUFBVG1ZSWNEa0pBQUVBQUFDWUxWMURKU1FBQkFBQUFHQlcwalRWQVZoQ0FrQUFBQUFBWmlWSkVnRmdDUWtBQVFBQUFKZ3RRNEJMU0FBSUFBQUF3S3pVNjNVZGdDVWtBQVFBQUFCZ1ZocU5oZ0N3aEpJMFRVTkoyU1ZKVXRpTGFiOEFBQUNBT0NSSkVxcTVTOU8wdUUvR3ZORUJDQUFBQUJDcElzTS95a3NBQ0FBQUFBQVJFd0JHWW5oNCtJOURDUUFBQUFESENRQWpVYXZWRG9VU0FBQUFBSTRUQUVhaTJXeU9oQklBQUFBQWpoTUFSaUpKa3BkQ0NRQUFBQURIQ1FEam9RTVFBQUFBZ0pNSUFDT1JwbW1oQVdCL2YzK29BQUFBQUNnekFXQWttczFtb1E4QmFUUWFvUUlBQUFDZ3pBU0FrYWpYNjRWMkFCNDhlREJVQUFBQUFKUlprcVpwS0NtN0pFa0tmVEh0R3dBQUFGQnVTWktFcWhocG1oYjdDWmtYT2dBQkFBQUFJR0lDUUFBQUFBQ0ltQUFRQUFBQUFDSW1BQVFBQUFDQWlBa0FBUUFBQURnakR3QXBMd0VnQUFBQUFFUk1BQmdSU1R3QUFBQUFyeVFBQkFBQUFJQ0lDUUFCQUFBQUlHSUNRQUFBQUFET2FPL2V2WDhhU2twR0FCaVJQWHYyZUNNQ0FBQUFMZEZzTnNkRFNja0lBQ09TcHVsb0tBRUFBQUFLVmF2VnhrSkp5UWdBNDNJb3pBRUFBQUFLcFFPd3ZBU0FFVW1TUkFBSUFBQUF0SW9Bc0tRRWdCRkprbVFrbEFBQUFBQkZNd1M0cEFTQWNSRUFBZ0FBQUMyUkpJa093SklTQU1ibHBUQXZ4SFhYWFJjcUFBQUFvT3JTTkJVQWxwUUFNQzQ2QUFFQUFJQ1cwQUZZWGdMQWlEU2J6VUlmQW5MdzRNRlFBUUFBQUZYWGJEYmRBN0NrQklBUldiZHUzVWRDV1lpeE1lOXJBQUFBNEJnZGdPVWxBQVFBQUFCZ05uUUtsWlFBRUFBQUFJQXowZ0ZZWGdKQUFBQUFBR1pEQjJCSkNRQUJBQUFBT0tOYXJhWURzS1FFZ0FBQUFBQ2NVYlBaRkFDV2xBQVFBQUFBZ05tWURITktKa25UTkpURUlFbVNRbDlRK3djQUFBQ1VVNUlrb1NwR21xYkZma0xtalE3QXlIZ3pBZ0FBQVBCeUFrQUFBQUFBaUpnQU1ESlBQUEhFUjBNSkFBQUFBQUxBMkRRYWpaRlFBZ0FBQUlBQU1EWkpraHdLSlFBQUFBQUlBQ09rQXhBQUFBQ0E0d1NBa2FuVmFqb0FBUUFBQURoT0FCaVpack5aYUFEWTM5OGZLZ0FBQUFES1NBQVltYUx2QWRob05FSUZBQUFBUUJrSkFDT1RwbW1oQWVBenp6d1RLZ0FBQUFES0tFblROSlRFSWttU1FsOVUrd2dBQUFDVVQ1SWtvU3BHbXFiRmZrTG1qUTVBQUFBQUFJaVlBQkFBQUFBQUlpWUFCQUFBQU9DMERQOHROd0VnQUFBQUFFUk1BQWdBQUFBQUVSTUFBZ0FBQUVERUJJQUFBQUFBRURFQllJVGNtQk1BQUFDQWFRSkFBQUFBQUU3cmlTZWUrTXRRVWtJQ1FBQUFBQURPWkRMTUtTRUJZSVQyN05uejhWQUNBQUFBekZtajBSQUFscGdBTUU2allRNEFBQUJRQkFGZ2lRa0E0M1E0ekFFQUFBRG1MRWtTQVdDSkNRRGpkQ2pNQVFBQUFPYXMyV3lPaDVJU0VnQkdLRTNUa1ZBQ0FBQUF6Rm10VmhzTEpTVWtBSXhROXFiVUFRZ0FBQUFVU1FkZ2lRa0FJNVFrU2FFQllIOS9mNmdBQUFDQUtqSUV1TndFZ0JISzNwU0ZEZ0Z1TkJxaEFnQUFBS3FvWHE4YkFseGlBc0FJRmQwQmVQRGd3VkFCQUFBQVZkUm9OSFFBbHBnQU1FSnIxcXo1bzFBV1lteE15QThBQUFCVlZxdlZCSUFsSmdBRUFBQUE0TFNTSk5FZFZHSUNRQUFBQUFET1JBZGdpUWtBQVFBQUFEaXRORTBGZ0NVbUFBUUFBQURnVEF3QkxqRUJJQUFBQUFDbnBRT3czQVNBQUFBQUFKeFdraVFDd0JJVEFBSUFBQUJ3Sm9ZQWwxaVNwbWtvaVUyU0pJVzl1UFlUQUppZC9IZm05RFM5M0d3Mk94cU54dFE4bjJKVXE5V21wbnE5UGpYUHprT20xdWZ6NlFrQW1GOUYvdjdOem1uOE1pOHhBV0RFc2plNkFCQUE1dGwwNEpkUDAvWEV4RVRINU9UazhTbTIzNnY1eFVWblorZnhxYXVyNjNnSU9CME1DZ0FCWUg0Vi9iczNPMy94eTd6RUJJQVJFd0FDd1B5YkR2K21PLzd5K2RqWVdNZjQrUGp4ZVl3QllIZDNkMGRQVDgvVVBKL3lJUERsSFlINUJBRE1Id0VnTHljQWpOUVRUenp4UjJ2V3JQbTVzRGhuOWhNQW1KMDg5TXU3L1BMZ0w1L09PKys4c0tWYURoMDZOQlgrNWROMEdBZ0F6QjhCSUMvblRDeGVJMkVPQU15ai9JOW0weUZnM3UxWFZmbi9QZjhaNUQ4TGYwZ0VBRmhZQXNCSVpTZmJoMElKQU15alBPeWFEditPSGowYTFsWlAvbjkvZVFnSUFNRENFUUJHS3J2NEVBQUN3QUxJdzY1ODZHOGVmbzJPam9hMTFaUC8zNmNEUUIyQUFBQUxTd0FZcVhxOWJnZ3dBQ3lBbDNjQUNnREhwOEpRQVNBQXdNSVNBRVpxWW1LaTBBRHcrdXV2RHhVQWNEcDUySldIWHRudjRxa0FyS3J5Sng3blB3TUJJQURBd2hNQVJpbzcwUzUwQ0hEZXlRQUF6RTcrMUwyaW43eFhObjRHQUFEdFF3QVlxYUtIQUQvNzdMT2hBZ0JtcThvQjJQVC9YUWdJQUxEd0JJQ1JXcmR1M1lkRFdZaDhHQThBTUh1Q0x3QUEyb1VBRUFDZ1JhcmVBU2dFQlFCb0R3SkFBQUFBQUlpWUFCQUFBQUFBSWlZQUJBQUFBSUNJQ1FBQkFBQUFtRkdhcG03c1czSUNRQUFBQUFDSW1BQXdZaEo2QUFBQUFBU0FBQUFBQUJBeEFTQUFBQUFBTTlxN2QrOG5RMGxKQ1FBQkFBQUFPSjJ4TUtla0JJQVIyN05uejUrR0VnQUFBT0JjalljNUpTVUFqRml0VmpzU1NnQUFBSUJ6SlFBc09RRmd4QnFOeGtnb0FRQUFBTTZWQUxEa0JJQVJxOVZxaDBJSkFBQUFjRTZhemFZQXNPUUVnQkhMM3FBNkFBRUFBSUM1OGhDUWtoTUFScXhlcnhmYUFkamYzeDhxQUFBQW9DcVNKQkVBbHB3QU1HSnBtaG9DREFBQUFNeVZJY0FsSndDTVdKcW1oUTRCbnBpWUNCVUFBQUJRRldtYUNnQkxUZ0FZc1dheldXZ0g0TFBQUGhzcUFBQUFvQ282T3pzTkFTNDVBV0RFMXE5Zi85RlFGbUpzelBzZEFBQUFxbVp5Y3RLUXdKSVRBQUlBQUFCd09qcUNTazRBQ0FBQUFNQ01EQUV1UHdFZ0FBQUFBRE5xTkJvZUFsSnlBa0FBQUFBQVp0UnNOZ1dBSlNjQUJBQUFBR0JHWFYxZGhnQ1huQUFRQUFBQWdCazFNcUdrcEFTQUFBQUFBTXhvN2RxMWZ4SktTa29BR0xrMFRaTlFBZ0FBQUJXUUpLSUFUaVFBQkFBQUFJQ0lDUUFqTnp3OC9KRlFBZ0FBQUZCQkFzRDRqWVE1QUFBQUFCVWtBSXhja2lTSFFna0FBQUJBQlFrQUk1ZW1xUTVBQUFBQWdBb1RBRWF1czdQenBWQUNBQUFBVUVFQ3dNaE5UazRXMmdIWTM5OGZLZ0FBQUFES1FBQVl1VnF0VnVnOUFCdU5ScWdBQUFBQUtBTUJZT1FtSmlZSzdRQThlUEJncUFBQUFBQW9Bd0ZnNURadTNQaEhvU3pFMk5oWXFBQUFBQUFvQXdFZ0FBQUFBRVJNQUFnQUFBQUFFUk1BQWdBQUFIQkthWm9tb2FURUJJQUFBQUFBRURFQklBQUFBQUJFVEFBSUFBQUFBQkVUQUFJQUFBQkF4QVNBRmVDR25RQUFBQURWSlFBRUFBQUE0SlNHaDRmL01wU1VtQUFRQUFBQWdKbE1oamtsSmdDc2dEMTc5dng1S0FFQUFBQm1MVW1TaVZCU1lnTEFhaGdOY3dBQUFJQlpTOU8wRVVwS1RBQllBYzFtODNBb0FRQUFBR1pOQjJBY0JJQVZrTDFaRDRVU0FBQUFZTmJTTkIwUEpTVW1BS3lBV3EwbUFBUUFBQURPV3IxZUh3c2xKU1lBcklhUk1DOUVmMzkvcUFBQUFJQ1lOWnROSFlBUkVBQldRSnFtaFFhQUFBQUFRRFhVYWpVQllBUUVnQldRSk1sTG9TeEVvK0VCUUFBQUFGQVJoZ0JIUUFCWUFVVjNBQjQ4ZURCVUFBQUFRTXc4QkNRT0FzQUtXTHQyN1g4TlpTSEd4b1QvQUFBQVVBWHVBUmdIQVNBQUFBQUFwK1Fwd0hFUUFBSUFBQUJ3U29ZQXgwRUFDQUFBQU1BcEpVa2lBSXlBQUJBQUFBQ0FtUmdDSEFFQklBQUFBQUNuVkt2VmRBQkdRQUFJQUFBQXdDbE5URXdJQUNNZ0FBUUFBQUJnSm9ZQVIwQUFXQkZwbWlhaEJBQUFBSmlWZGV2V2ZTU1VsSmdBRUFBQUFBQWlKZ0FFQUFBQWlFU1NHQURJeVFTQUZURThQUHlIb1FRQUFBQ2dRZ1NBMVRFUzVnQUFBQUJVaUFDd0lwSWtPUlJLQUFBQUFDcEVBRmdSYVpycUFBUUFBQUNvSUFGZ1JkUnF0VUk3QVB2NyswTUZBQUFBUURzVEFGWkVtcWFGQm9DTlJpTlVBQUFBQUxRekFXQkZGSDBQd0lNSEQ0WUtBQUFBZ0hZbUFLeU93MkZlaUxHeHNWQUJBQUFBME00RWdCV3haczJhajRRU0FBQUFnQW9SQUFJQUFBQkF4QVNBQUFBQUFCQXhBU0FBQUFBQVJFd0FDQUFBQUFBUkV3QUNBQUFBY0pJMFRaTlFVbklDUUFBQUFBQ0ltQUN3UWlUM0FBQUFBTlVqQUFRQUFBQ0FpQWtBQVFBQUFDQmlBa0FBQUFBQVR2TDQ0NC8vU1NncE9RRmdoUXdQRC85cEtBRUFBQUJPSzBtUzhWQlNjZ0xBYWprUzVnQUFBQUJuTWhibWxKd0FzRUtTSkRrVVNnQUFBSURUcXRWcU9nQWpJUUNza0RSTkJZQUFBQURBckRTYlRRRmdKQVNBRlZLcjFRb05BUHY3KzBNRkFBQUFSTWdRNEVnSUFDdWs2QUFRQUFBQWlKZUhnTVJEQUZnaGFacU9oTElRalVZalZBQUFBRUJzREFHT2h3Q3dRb3ErQjZBQUVBQUFBT0tWSklraHdKRVFBRlpMb1IyQXp6MzNYS2dBQUFDQTJCZ0NIQThCWUlXc1diUG1UMEpaaUxFeGZ3Z0FBQUNBaUxud2o0UUFFQUFBQUlDVDZBQ01od0FRQUFBQWdKTjRDRWc4QklBQUFBQUFuTVJEUU9JaEFBUUFBQURnSkkxR1F3ZGdKQVNBQUFBQUFKeWt1N3RiQUJnSkFTQUFBQUFBSjFtOWV2V0hRMG5KQ1FBckprM1RKSlFBQUFBQVZJQUFFQUFBQUNBQ1NhTG5oMU1UQUFJQUFBQkF4QVNBRmJOMzcxN2o5d0VBQUFBcVJBQllQU05oRGdBQUFFQUZDQUFycHRsc0hnb2xBQUFBQUJVZ0FLeVlKRWtFZ0FBQUFBQVZJZ0NzbUtJRHdQNysvbEFCQUFBQTBJNEVnTlZUNkQwQUc0MUdxQUFBQUFCb1J3TEFpa25UdE5BT3dHZWVlU1pVQUFBQUFMUWpBV0RGcEdsYWFBZmc2T2hvcUFBQUFBQm9Sd0xBaWxtM2J0MS9EU1VBQUFBQUZTQUFCQUFBQUlDSUNRQUJBQUFBSUdJQ1FBQUFBQUJPa0tacEVrb2lJQUFFQUFBQWdJZ0pBQUVBQUFBZ1lnSkFBQUFBQUlpWUFCQUFvR0JwbW5ZMG04MnBxYW9hamNiVS96Ly9XUUFBc0xBRWdCWGtScDRBMEZwSmtreE5WZVpuQUFEUVBnU0FBQUF0VXVVQWJQci9MZ1FFZ0hJYUhoNyt5MUFTQVFFZ0FFQUxDTDRBZ0RMTHptVW1Ra2tFQklBVnRHZlBuajhQSlFEUVFsWHZBQlNDQWtDcFRZWTVFUkFBVmxDYXBrZERDUUFBQUhBcUFzQ0lDQUNyNlhDWUF3QUFBSnlLQURBaUFzQUtTcExrVUNnQkFBQUFUcEttNlZnb2lZQUFzSUtTSkJrSlpTSDYrL3REQlFBQUFFUmlQTXlKZ0FDd2dwck5wZzVBQUFBQVlFWkprdWdBaklnQXNJSnF0VnFoQVdDajBRZ1ZBQUFBRUFrZGdCRVJBRlpRdlY0WEFBSUFBQUF6U3ROVUFCZ1JBV0ExRlhvUHdPZWVleTVVQUFBQVFBenE5Ym9od0JFUkFGWlFmMy8vSDRleUVHTmpqZ2tBQUFBUUV4MkFjUkVBQWdBQUFIQUNBV0JjQklBQUFBQUF2SkxoZmhFUkFBSUFBQUJ3Z2lSSmRBQkdSQUFJQUFBQXdBa01BWTZMQUJBQUFBQ0FFM1IyZGhvQ0hCRUJJQUFBQUFBbmFEUWFPZ0FqSWdBRUFBQUE0QVMxV2swQUdCRUJZRVdsYVpxRUVnQUFBT0FFcTFldi9rZ29pWUFBRUFBQUFBQWlKZ0FFQUFBQWdJZ0pBQ3RxZUhqNEQwSUpBQUFBbEZ5U3VOTVhNeE1BVmxTYXBpT2hCQUFBQUNCaUFzQ0tTcExrVUNnQkFBQUFpSmdBc0tJYWpVYWhIWUQ5L2YyaEFnQUFBS0NkQ0FBcnFsNnZ2eFRLUWpRYWpWQUJBQUFBMEU0RWdOVlZhQWVnQUJBQUFBQ2dQUWtBSzZyb2V3QSs5OXh6b1FJQUFBQ2duUWdBSzZyWmJCNEpaU0hHeHNaQ0JRQUFBRUE3RVFCVzFQcjE2ejhTU2dBQUFBQWlKZ0FFQUFBQWdJZ0pBQUVBQUFBZ1lnSkFBQUFBQUlpWUFCQUFBQUFBSWlZQUJBQUFBT0M0TkUyVFVCSUpBU0FBQUFBQVJFd0FXR0VTZlFBQUFJRDRDUUFCQUFBQUlHSUNRQUFBQUFDT0d4NGUva1FvaVlRQXNNTDI3Tm56eVZBQ0FBQUFUQnNMY3lJaEFLeXdaclBwRFEwQUFBQzgwbmlZRXdrQllJVWxTWElrbEFBQUFBRFRCSUNSRVFCV1dKcW1oMElKQUFBQU1NMkl3Y2dJQUNzc1NaSkNBOEQrL3Y1UUFRQUFBR1ZWcTlWMEFFWkdBRmhoMlJ0YUJ5QUFBQUJ3Z21hektRQ01qQUN3d3RJMEhRbGxJUnFOUnFnQUFBQ0FzcXJYNjRZQVIwWUFXR0hOWnJQUURrQUJJQUFBQUpTZkRzRDRDQUFyckY2dkZ4b0FQdmZjYzZFQ0FBQUF5aXBOVXdGZ1pBU0FGYlptelpyZkQyVWh4c1owQ0FNQUFFQUVYT0JIUmdBSUFBQUF3SEZKa3VnQWpJd0FFQUFBQUlEakdvMkdBREF5QWtBQUFBQUFqdXZzN0RRRU9ESUNRQUFBQUFDTzh4Q1ErQWdBQVFBQUFIZzVIWUNSRVFBQ0FBQUFjRnlhcGhPaEpCSUNRQUFBQUFDT1c3ZHUzWWREU1NRRWdCV1hwbWtTU2dBQUFBQWlKQUFFQUFBQWdJZ0pBQUVBQUFCS0xFa003dVAwQklBVk56dzhiRncvQUFBQVFNUUVnQlZYcjlkZkNpVUFBQUFBRVJJQVZseWowUmdKSlFBQUFBQVJFZ0JXWEpJa2gwSlppUDcrL2xBQkFBQUEwQTRFZ0JXWHBtbWhIWURaNXdzVkFBQUFBTzFBQUZoeGFab1cyZ0U0T1RrWktnQUFBQURhZ1FDdzRvb2VBdnpzczgrR0NnQUFBSUIySUFDazBDSEFZMk5qb1FJQUFBQ2dIUWdBSzI3ZHVuVi9IRW9BQUFBQUlpUUFCQUFBQ3Rkc05xY2VFT2NoY1FDdzhBU0FBQUJBNFpJa0NSVUFzTkFFZ0FBQUFBQk1TZFBVWDNBaUpBQUVBQUJhUmljZ0FDdzhBU0FBQUZDNFBQZ1QvZ0ZBZXhBQUFnQUFBRURFQklBWTN3OEFBQUFRTVFFZ0FBQUFBRVJNQUFnQUFBREFsT0hoNGI4SUpSRVJBQUlBQUFBd2JUTE1pWWdBa0k0OWUvYjhXU2dCQUFDQWFoTUFSa2dBU081b21BTUFBQURWSmdDTWtBQ1EzRWlZQXdBQUFCV1dKTWxFS0ltSUFKQ2NBQkNBT1R0MDZGQ29BQUFvc2ZFd0p5SUNRRHJTTkhYRkJzQ2NuWGZlZWFHYW0rejMwcFJYMWxUQ002K1kvdm9VMC85eml1bWVWMHdBd0xrYkMzTWlramluWm5oNCtDM3IxNisvTHl6T21YMEtnSmZMQTd5SnpLRkRodzVuaS9WTVo2UFJhT2EvTHpvN08vTS9SdWJuSTgxc2ZWS3IxZXI1UDBreTJiWjZOdXZJMWszVitlZHFOcHRwL20rN3VycnErVHo3dEkzdTd1N08vR3VNam82T1p4OWI2K25wNmN6cWlmSHg4V1pmWDErK3JlUHc0Y05qK2NkbHkxMC8rdEdQUnZOUGxYMWMxK1RrWkdOc2JHenE4MlZmSThucS9KNDN0ZW5QLzlyWHZuWlIvblhQUnZhMXA3b2hwNmUxYTllR0xkV3laOCtlcVZCNGV1cnQ3UTFiWnBhOW52bHJVY3Rmeit5MXlWL3JOUHQzK1d1UkhqbHlaREt2OC8waCs3bE81UHZMb2tXTE9yUFhObit0MCt5MW5kcGY4bTNaYTExYnZIaHhaL1phaitXdmY3NVA1SjhqKzdoRy92bnpmNXUvOXRuSDU2OTF2di9scHZiSC9QTm4zMHFhZlV6K2NmbHl2ZytQWnZVTCtRZmwveTc3Ti9sK2RUU3J2NTN2SjluMzFYWHNmekExcXVMRlkrVngrYm9mSEN1UHV5dk1BYUFRK2UvQW9nd1BELzlXZHY3eTc4SWlrUkFBMHZIRUUwKzhlYzJhTmU4TGkzTm1ud0tvcmp3Z3lVTzZvMGVQVHU3ZnYzK2swV2dzUG5Ub1VPMjczLzN1ajc3KzlhOC9WNnZWRm1VV0h6bHlaSFI4Zkh4aThlTEZ2ZmsveVQ3bVVHOXZiOUxWMWRYM294Lzk2S1dKaVluSlY3M3FWWDFqWTJOSFhuenh4UjlsLytiVjlYcTkrL3ZmLy82UHNpK1RYSGpoaFJka0gzZjRlOS83M28rV0wxOStXWGJTbS80d2szL3k3Tis5K3FXWFhqcWEvZHVKaXkrKytJTHM0NXYvK0kvL2VQajg4ODlmOUpyWHZHWlI5amtPZFhkM3A5bkhMY2tEdjlIUjBjbnMrK2pKL21rOS81elo1K28rNzd6emVyTC93NUhzK3hqdDYrdGJuSDJPUnZZNVg4cSsvOTZlbnA3dXJEeVUvYnZHcTEvOTZrWFpQUDhldjUvOW41Wjg2RU1mZWxYMi8xK2RmNC9aeEluUzdEVVl2Zm5tbS8vaHlpdXZiR1kvNzU0Zi9PQUhZM213ZDhFRkYvVGtQODl2Zi92Ym85bHIxcHY5ekR1eWJZZXpuMlY5NmRLbGkwZEdSc2EvODUzdkhGNjVjdVZyOGtBdSsza2Z5VjZqZkQ5WWxMMW00OW5yMkpIOXUwWFp0bncveUxkMVo4czkyZjV4S0Z1WFpLLzE0bXgvbTh5KzFuajJXbmRsWDd1VzdSTWoyV3ZkbVcyclorc1BaL0xYczU1OXpmenoveWpiRjd2emo4MCs3b2ZaMTBndnVlU1N4ZG5YR2N2MjVYL0l2dTVGZVlDY2ZhMDgyR3RjZnZubHIxMnhZc1dpMjIrLy9kcHZmZXRiRTB1V0xEbDYxVlZYdmZyWWZ4c0FXcS9JQVBDeHh4NTd6L3IxNjM4MUxCSUpBU0FkWC9uS1YvNjNHMjY0NGY4T2kzT1duUkJQZFQ4QUVMZVhYbnFwNC96eno1K3FHNDNHNVBqNCtOajN2Ly85OUwvLzkvLyt3eGRlZU9IOFQzM3FVeU8xV3UwMS8vaVAvMWgvL3Zubmp6ejc3TE41V05LYmgyak5aak8vdVhSK0V0S1RUZmtaYXo3VXBEdWI4bzY3dkZNd1g5ZVhUWGxIWHY2eGVialRtWjNjNWdGZDNwblZrNTNEakdWZk4rLzI2c3ZXVFU1TVRCek4xdWVkZkYzWjl6SStPVGs1MGRmWDE1dDlUQ1A3dlRTV2QyM2wyN042TkErS3NvL3J6cnU1c3UrbG1mMzdybXhUM2hXVzMvT21POXZlbmEzTzYwYit0Yk1wLzE3ejd6SC9udkpXdGlQWjlQTHZjVHo3SFBuM2xQOS9wcm9WT2FYODV6azlyQ2ovT1U3WFhkblBQSDhkSnZQWE9adnljOVN4YkRudi91d0srOWQ0SGhybWdYSDJFbzVuNnp1eTE3NmVoN2ladkZPd0szOHQ4OWM2Ky9mMXZBc3dyN05Qa2JlZDltUWYwOHkrVGo1TnRmWGxINXAvM1REbHIzWCtHdWY3WU42Vm1tL0x2Ny84dGM5dmxaTHZjNzNaNThyM3hid2JNTitQODgrUjc2dHBkdTdUKytwWHY3cmoybXV2WFpTOUx3NWZldW1sLzNETExiZGMrSVkzdk9IN0sxZXVYUHI2MTc4K0Q1RUJvR1h5MzNkRmVmenh4M2V2VzdmdU44SWlrUkFBa3JmMy92UDE2OWYvY1Znc2hQMEtvRHFPSGowNjlzMXZmdk9wdi9xcnYvcjIwMDgvdmVGVG4vclVrVWFqY2RHM3Z2V3RmSE1laU9YeXM5SzVucG1lNnBkTHZpNFBiUEo1UGsxL25lbVBmV1hkU3ROZm43TTMvUnFkeWN0Zno5eDh2ZFl2LzVwNVBmMzVUL2g2OVhvOUg3YWNEMHNmVzdwMGFYTEJCUmU4dUdYTGxndCsrWmQvdWZ2U1N5ODljdUdGRjc1bTZxTUJvR0FGQjREM3JsdTM3czZ3U0NRRWdFekpEaGFGN2dqMks0QnFPSFRvVU9Odi8vWnZ2N2Q3OSs1dlBQcm9vNzFkWFYzcmp4dzVrbmZBVGQ4VERhb29QeEhLdXcwblgvT2ExOVNHaG9aRzFxeFpzLzluZnVabkx0K3dZY01sVXg4QkFBVXFNZ0RjczJmUDI3TGZXKzhJaTBUQ1U0QUJnRm5MaC8xT3krcjBFNS80eFBoZGQ5MlYvdlZmLy9XS2lZbUpkVWVPSE1tSFRRci9xTHI4S2l3UHdydC8rTU1mZG43ODR4L3ZmZTk3My92cUJ4NTQ0TkRmL3UzZkhtazJtLzVTQ2tEYlN0TTB2elVHa1JFQUFnQ3pObjNQdnp6OCs3TS8rN1BtcmwyN2tzY2VleXdmMXZpNmJNcnZod2Y4a3p3SXpLZSt3NGNQWC9tSlQzeml0UTgrK09ENDMvek4zMHhraElBQXRLdnBlL1FTRVFFZ0FIQldSa1pHbWgvLytNY24zL1d1ZHpYMjd0M2JsYVpwM3ZYWGVXd3JNSU91STBlT3ZPb3puL2xNejhNUFB6ejY2S09QSGhrZkg4K0hDUU5BVzBtU1JBQVlJUUVnQURCclI0OGViWHo2MDU4KzlKNzN2T2VsUFh2MjVFLy96YzhsbkUvQTdOU1BIRG5TL2RuUGZyYmozZTkrOXcrR2g0ZS9ueit3T213RGdMYlFiRFlOQVk2UUUzWUFZRVlqSXlPaDZ1aVl6QXdQRHovNzN2ZSs5OERqanorZUwrZGRmOFhkY1JxcUlROEJlLy95TC8reStiNzN2ZStwWjU1NVpuOTJvYVVURUlDMmtTU0pBREJDQWtBQVlFWkxsaXdKVlhiU1VLdlZuMzMyMmQ2dmZlMXJGNHlQaitjM0EzUWVBZWVtKzhpUkl4ZCs1ak9mV2Z6RkwzNXhKTTJFOVFEUURnd0JqcEFUZHdCZ1ZwNTg4c25HeHo3MnNkZjg0QWMvdUNSYjlLUmZtSnNsbzZPamIzanNzY2RXZk9jNzN6RU1HSUMyVWEvWGRRQkdTQURJbERSTkRlRUNZRWJmL2U1M2YvRDd2Ly83VDMveWs1OThhV0ppb2p1c0J1Ymdoei84WWRlSFB2U2hrVTk5NmxQUGpZNk9IZ21yQVdCQnJWNjkrcU9oSkNJQ1FBRGdqQ1luSjN1Ly9lMXZYL0NqSC8xb2NWZ0Z6RjM5K2VlZnJ6MzY2S05Idi8vOTc4OXJBR2pVTVFCVWl3QVFBRGl0aWN5amp6NzY5NS83M09mR204MW1iN1pLMXpnVTU2SnZmT01iaTU5NzdybERqVVpqSXF4cktlRWZBRlNQQUpBcGUvZnUvZjFRQXNBSjZwbnZmT2M3OVIvODRBZjUwTi82c2JWQVFXcVBQZmJZRDc3KzlhKy9NRDQrUGk4QllKSWtVeE1BVUIwQ1FLYU5oRGtBbkdCa1pLVDU5Tk5QOXgwK2ZMZ25yQUtLVSsvcjY3c3FTWklWdFZyTmV3eUFzK2FQT3N5R0FKQXB6V2J6VUNnQjRBUnBtdFpHUmtiT3orWjlZUlZRbkRSL3NNNzQrSGgzS3gvS1p0Z3ZBRlNiQUpBcFNaSUlBQUU0cFNWTGxpU3ZmZTFyZTNwN2V6dkRLcUJBUjQ0YzZYenh4UmRyMmJ3bEtaM3dEd0FRQURKRkFBakFUQnFOUnNmbzZHZ1N1cE9NTVlGaUpWMWRYWjJ2ZXRXcnNsbFhTOTVmK2RBd3c4TUFvTm9FZ0V3cjlCNkF2YjM1UXlJQmlNSG82R2pIODg4LzN6eDY5R2plUnFTVkNBcFdyOWM3WHZXcVYrVkJvSlFPQUdnSkFTQlQwalF0dEFOd2JHd3NWQUNVM2VMRml6c3V2ZlRTWmsrUDV4TkFLNHlPams2KzhNSUxFMGVQSG0yR1ZRQUFoUklBTWlWSmtpT2hCSUFUMU92MVpNbVNKZVBaUE8vKzA2RUVCYXZWYXFOOWZYMWoyVnlITFFEUUVnSkFwcXhacytham9RU0FFNHlOalRWKytNTWZQanMrUHA3ZkxrS0hFaFFyN2VucEdidmtra3Ntc3JrQUVBQm9DUUVnQUhCYVhWMWR0WC8vNy8vOWxhdFdyZXFyMVdvNkFLRlk2ZFZYWDkyMWRPblNudXo5NWR3Y0FHZ0pKeGtBd0dubG9kK0ZGMTdZT3pvNitsS3oyWnpNVnVsU2d1STBCZ1lHT2xldVhMbTR1N3U3SHRiTldacW1VeE1BUUU0QUNBQ2MwWVVYWGpoNTZhV1hQbEdyMVNiQ0txQUFGMXh3d2RpYU5XdnloKzBVMWwwcitBTUFYa2tBQ0FDYzBhSkZpM3EyYjk4KzF0WFY5YjFzMFgwQW9SZ1RGMTk4OFhkdXYvMzIzdlBPTzYrdzdqOEFnRmNTQUFKQXRUd1Q1bWVsVnF2Vi84Ti8rQTlEUC9WVFAzVkJaMmRudmtxTEVjeFJWMWZYeEkwMzNqamUyOXZiTExKckwwbVM0eE1Bbkkzczk1RmZIcEVTQUFKQXRTd0o4N04yMFVVWHZlWWQ3M2pIZVFNREE0Yzhxd0RtckptOWwwWis1VmQrWlZYMjNscWMzMnN6ckFjQUtKeXpkNDZUOUFOVXdvVmhmazZXTDE4KytlcFh2L29qeldienFXeFJGeUNjdTYvKzNNLzkzSlBYWEhOTlIyZG41NXpQd2ZJT1F2ZitBd0JtSWdBRUFHYXRubm43MjkrKzlnMXZlTU0zc3NXRHg5WUNaK21wVzI2NTVjbWJiNzY1cjZ1cnkvazRBTkJ5VGpnQWdGbExrcVIyZmVaM2Z1ZDMzckI2OWVxbnMxVUhqbTBCWm1uZnRtM2JubnJnZ1FkV1gzZmRkWnRydGRyVVRUWG55ajMvQUNqQzhQRHd4ME5KWkFTQUhQZjQ0NDkvTXBRQWNFcEpwcnU3dTJ2VHBrMVhQZkxJSXl2WHIxK2ZCNEJDUUppZGZWdTNibjM2d1FjZnZIcmp4bzNYMTl4TUU0QTJrLzFxR2dzbGtYSFN3WEhaTmQxb0tBRmdSaUVFN055OGVmTVY3M25QZTFaczNMZ3hmN0t3RUJCbWx0K2NiOStXTFZ1ZWZ2amhoMWNPRGc1ZW5iK1BqbTBDZ0xZeUh1WkVSZ0RJY1dtYUhna2xBSnpXeTBMQTE3L3puZTljTmpBdzhGeTIyajBCNFdUTjdPMHlGZjVsNzVWVjJYdGxWVmdQQUcybjJXd0tBQ01sQU9TNFdxMzJVaWdCNEl5bVE4Q0JnWUhYNzl5NTg0cWhvU0VoSUp5b2taMWY3Yy9lRy9zZWV1aWhsWnMzYjE0UjFnTkF1eElBUmtvQXlISFpkZHhJS0FGZzF2SVFjR2hvNklwM3ZPTWRsMi9ac3VYNWJGVStKQmlxYnJKZXJ4OFlHQmpZdDN2MzdoV2JOMjllbm9mbVlSc0F0Q1gzQUl5WEFKRGptczNtb1ZBQ3dGbnA2ZW5wM0xwMTYrdnZ2dnZ1eTBJSStHdzJOYWMyUXZYazRkL0JUWnMyNVEvOFdKN05sMmZMOWJEdHJLUnBPalVCd0h4b05CbzZBQ01sQU9RNEhZQUF6RVZ2YjIvM2pUZmVlTVdkZDk1NXlaWXRXL0xod1BuVW1Ob0kxVEdSZC81dDNManhtN3QyN1ZxZWQvNTFkWFYxaG0wQTBOYVNKQkVBUmtvQXlISFpHNzNRRHNEc1FqQlVBRlJGWDE5ZjkvYnQyNjk0NjF2ZnV2UmxJZURrMUVhSVh4NytIVnkvZm4wZS9rME4rKzN1N3U0SzI4NUpQbXJZeUdFQTVwRWh3SkVTQUhKY2RzSmFhQUE0TnVhNEFWQkZpeFl0NnRtK2ZmdVZiM25MVzVZT0RRM2x3NEh6YVdKcUk4UnJ2RmFySFZ5elpzM1g4L0J2WUdCZ1JkNFZHN1lCUUNra1NlSkNQbElDUUk3cjcrLy9nMUFDd0p3c1hyeTRaOGVPSFZNaDRNREFRTjRGS0FRa1p2bHdxUU9yVjY5K2N2ZnUzYXNHQndmUE9meHp6ejhBRmxMMk84ajVXcVFFZ0FCQVN5eFpzcVQzcHB0dXV2S09PKzVZdW5uejV2eWhJSGtRNkw0eXhHWXEvRnV6WnMzWEhuNzQ0YXVIaG9aVzlQWDE5UnpiQkFDbG93TXdVZ0pBQUtCbHBrUEF0N3psTFpkczJMQWhEd0h6VGtBaElMSEk5K1dEMmI3OXpZY2ZmdmphTFZ1MnJKeHIrT2VlZndBc3BHYXo2VHd0VWdKQUFLQ2x6anZ2dkw2YmI3NzVxanZ2dkhQcHVuWHJEbWFyaElERVlDcjgyN3g1ODFPN2R1MjZlc3VXTFRyL0FDaTlXcTNtSEMxU0FrQUFvT1ZDQ0xqOGJXOTcyeVZyMXF3NWtLMFNBbEptK2YyUm5oa2FHbnI2L3Z2dlh6bVg4TTg5L3dCb000WUFSMG9BQ0FETWl6d0V2T1dXVzFiY2RkZGRsOXh3d3czN2t5VDVWclphQ0VqWlRJVi9XN1pzMlhmdnZmZXUzTHAxYXg3K2Vkb3ZBRkhJenMrY20wVktBQWdBekpzOEJMejExbHRYM1hQUFBaZmRjTU1OQityMSt0OW5xejF0anJLWXpLWm50MjNidHYvZWUrOWR2blhyMXVYbityVGZhZTc1QjBBN21jaUVrc2draGh6d2N0a0phS0U3aFAwTGdGTVpHUmtaL2ZTblA3M3Y3VzkvK3d0NzkrNWQzbWcwWHBldDdqcTJGZHBTTTVzT2J0KytmZC9kZDk5OTFaWXRXNWIzOVBUWVp3RlljRVgrSVNtN2h2ZFhxVWdKQURsSmtTR2cvUXVBbVJ3K2ZIZzZCUHorM3IxN2wwMU9UbDZlcmU0OHRoWGFTbjVDYzNESGpoMVAzM1BQUFZjTkRRMnQ2Tzd1dHE4QzBCWUVnTXlHQUpDVENBQUJtQzlIamh3Wm13NEI5K3paazRlQWVTZWdZSVYyczMvSGpoMzVmam9WL25WMWRkbEhBV2diQWtCbVF3RElTUVNBQU15bm8wZVBqbi9tTTUrWkdnNzgyR09QVFE4SHJoL2JDZ3NxUDVFNWtJZC85OTU3NzdMQndjRVZuWjJkOWswQTJvb0FrTm53RUJCT01EdzgvTjlDQ1FEekluK0NhdjVna0x2dXV1dmk5ZXZYVHo4WXBIRnNLeXlZWm5aQnRYL2J0bTM3SG5qZ2dlVkRRME1yaFg4QVFGa0pBRGxCclZZN0ZFb0FtRGY1d3hUZTlLWTNYZlAydDc5OTZicDE2dzVrdjQrK25hM09IN29BQzZFUndyOER1M2Z2WGpFNE9MaXlYcTg3YndhZzdSVFovVWZjbk1od2dqUk5SMElKQVBNcTc2N0tROEI3NzczM2t2WHIxKzhMSWFCN1NURGZKck45NzhDMmJkc083dDY5ZS9uQXdNREs3T0xLMVJVQVVHb0NRRTZRcHFrT1FBQVdUQzF6MjIyM1hYdnZ2ZmRldW5idDJxZVNKTWxEUUpndmsvVjYvY0RXclZ2enpyL2xHemR1WEI3V0F3Q1VtZ0NRRTJRWFdnSkFBQlpjSGdMZWQ5OTlsOTV3d3cxZnp4YS9jMnd0dE5SRXZWN2Z2MlhMbGdNUFB2amc4dlhyMXkvTEErbXdEUUNnMUp6VWNBSUJJQUR0NHNkLy9NZXYyN2x6NSt0V3IxNzlsV3d4RHdFTkI2WlZ4dlBPdjZHaG9RTzdkdTFhc1dIRGhtVWUrQUVBeEVRQXlDdTVCeUFBYlNNUEFYZnQydlg2RUFKNk1BaXRNQlgrRFF3TTdOKzVjK2VLOWV2WFg5WFYxZFVadGdFQVJFRUF5Q3NKQUFGb0s3ZmZmdnQxRHo3NDRPdXZ2Lzc2NlU3QXh0UUdtTHZ4L0lFZm16WnQycGVIZnhzM2Jyd3FmeUoxMkFZQUVJMGtUWTJtNFVSSmtoUzJVL1QyOW5ZY1BYbzBMQUhBdWNuT1Y5SlBmdktUMy96MVgvLzFnMS83MnRmNnMxV1haWk1obXN6RldIYk9jMkRqeG8xUFAvVFFRMWR2M3J4NWVYYmUwaDIyQVVBcFpML0xRbFdNN0pUTGsrOGpKUURrSkVVR2dEbjdHQUJGYURRYXpiLzRpNzk0NmovK3gvOTQ0QnZmK01aMENHaW9KdWRpTEp2MnIxKy8vcWwzdnZPZDF3d01ES3dRL2dGUVJnSkFac3NRWUFDZ0ZPcjFldTNIZnV6SFZyM3puZTljdm5MbHlpZXlWZms5QVNlbk5zTHM1ZUhmZ2JWcjEzN3o0WWNmenNNL25YOEFRUFFFZ0FCQWFlUlBacjNsbGx0V3Z1OTk3MXUxZlBueXZkbXF2ODhtSVNDek5aNU5CelpzMlBETmQ3M3JYZGNORGc3bW5YODl4ellCUUxYcC9vdWJBQkFBS0pYdTd1N09ONzd4amN2Zi8vNzNyN3JpaWl1R3MxWGZ5aVloSUdjeUZmNXQyclFwditmZnRZT0RnenIvQUlES0VBQUNBS1dUUDZuMWpXOTg0NG9QZk9BRDExNTIyV1dQWmF2eUVORFRnWm5KUkRZZEdCd2NmSHIzN3QzWERBME5DZjhBZ0VvUkFBSUFwZFRiMjl1MVk4ZU81Zi81UC8vbjZ5Kzc3TEs4RS9DNWJCSUM4a3BUNGQrV0xWdjJQL0RBQTFmbm5YODlQVDNDUHdDZ1VnU0FuTVM0ZndES0l1L2kycjU5ZXg0Q1huZkZGVmZrRHdaNVBwdUVnRXpMOTRXRE45NTRZeDcrcmRxeVpVc2UvblVkMndRQVVCMENRQUNnMVByNitxWkN3Ti85M2QrOWR0bXlaVi9OVnVXZGdNMnBqVlJadmc4YzJMWnQyLzc3N3J0dlpUN3N0N3U3Vy9nSEFETVlIaDcrVENpSmtBQVFBQ2k5UEFTODhjWWJsMzN3Z3g5Y3RYTGx5cTlscS9JUU1KM2FTRlVkMkw1OWV4NytyZGl5WmN1S3JxNnV6ckFlQURpRkpFbnkyMllRS1FFZ0FCQ0ZQQVRjdW5YcnNnOTg0QU9ycnJubW1xOW5xNTdKSmlGZ05lM2Z2bjM3dnZ2dnYzLzVsaTFiVm5aMmR0YkRlZ0JnQm1tYXVvMUt4QVNBbkdSNGVQaGpvUVNBVXNudjd6WTBOTFRzZDM3bmQxWmRmLzMxVDJXcjhoQ1FhdG0zYmR1MnAzYnUzTGtpMnhkVzFldDE1N3NBTUFzNkFPUG1oSWlUWkcvNm82RUVnRkxKZm9jbFBUMDluWU9EZzFlKy8vM3ZYN0YyN2RyOTJlcUR4N1pTQWZ1MmJ0MzY5SzVkdS9KNy9xMnExV29lYkFZQXM2UURNRzRDUUU3bGNKZ0RRT25rSVdCM2QzZm4wTkRRbGU5Kzk3dVhiZGl3SVE4QWhZQnhhMll2KzlQYnRtM2I5L0RERDYvS3c3K3dIZ0NZdmZFd0owSUNRRTZTcHVtaFVBSkFLVTJIZ0hrbjREdmYrYzZyTm0zYWxBOEZOaHc0VHMxYXJiYi94aHR2M1AvUVF3K3RIQmdZV0JuV0F3Qm5JVHQ5RWdCR1RBRElTYktUYUFFZ0FLV1hoNEJoT1BBVnUzYnR1bUpnWU9EWmJMVVFNQzZOZXIyZUQvdmQvK0NERDY3WXZIbXo4QThBemxHYXBnTEFpQWtBT1JVQklBRFJ5RHNCdDJ6WmNzVzk5OTc3dXNIQndlZXlWWGtRU1BsTjF1djEvZGxyZTJEWHJsM0xOMjNhdENLc0J3RE96VmlZRXlFQklDZVpuSndjQ1NVQVJDRi9PdkNOTjk1NDVkMTMzMzNwNE9CZ0hnRG1RV0J6YWlObE5OSFoyWGtnZXkzM1AvREFBOHMzYnR5NHd0TitBV0J1REFHT214TWxUbUlJTUFBeDZ1M3Q3ZHErZmZ1VmIzdmIyeTRKSWVEejJlUnBkK1V6VWEvWEQyemV2SGxmSHY1dDJyUnBXVmRYVnoxc0F3RE9VWklrT2dBakpnRGtKTm1iWGdBSVFKVDYrdnE2ZCt6WWNlVmIzL3JXcFM4TEFTZW5ObElHNC9tdzM4MmJOeitkaDMvWmZGbDNkM2RYMkFZQXpFR3oyZFFCR0RFQklDZFp1M2J0aDBNSkFORlp0R2hSejAwMzNYVGxIWGZjc1RROEdFUUlXQTdqdFZydHdJWU5HNTU2NElFSDhnZCtMTy9wNmVrTzJ3Q0FPY3ArendvQUl5WUFwT1dTSkFrVkFMU0h4WXNYVDRXQWIzbkxXNVp1M3J3NXZ4OWdIZ0pPVEcya0hZMWw1eFA3MTYxYjk0MmRPM2V1ek1PLzN0NWU0UjhBRktqUmFBZ0FJeVlBQkFBcWFjbVNKYjF2Zk9NYnI3cmpqanN1M3JoeDR6UFpLaUZnZThydlIzUmcvZnIxMzlpOWUvZlZnNE9ESy9yNitucU9iUUlBaXRMWjJla2VnQkVUQUFJQWxYWGVlZWROaDRCTDE2OWZQeDBDK3V0Mys1Z0svelp2M3Z6VTd0MjdyeEgrQVVEcnBHbnFIQ2hpQWtBQW9OTE9PKys4dmx0dXVXWFpuWGZldVhUdDJyVUhzMVhmeWlZbndBc3ZmdzBPRGcwTjdkdTVjNmZPUHdCb01ROEJpWnNBRUFDb3ZEd0V2UG5tbTVlLzdXMXZXN3A2OWVyOTJTcWRnQXNyLzlrZjJMcDE2Lzc3N3J0djFlRGc0SExoSHdDMG5DSEFFUk1BQWdCa3pqLy8vTDViYjcxMXhkMTMzNzMwK3V1djM1OGt5ZDlucTkwVGNQN2xQL05udG0vZmZ2RGVlKzlkT1RRMEpQd0RnSG1RbmZ2NDQyZkVCSUFBQUVIZUNmaGpQL1pqcTk3KzlyZGZldjMxMSsrcjFXcjVjR0FoNFB5WnpLYURPM2JzT0hEUFBmY3NIeHdjWE9acHZ3QXdQendGT0c1Sm1xYWhoQk1sU1ZMWXptRS9BNkJNRGgwNmRQVFRuLzcwdnJ2dXV1dUZKNTk4Y2tWMlF2eTZiSFhYc2EyMFNDT2JEcnp4alc4OGtQM2NsK1hoWDA5UGo1ODVBSnhHZHQwZXFybkxydHVMKzJTMEhSMkFBQUN2a0hjQzNucnJyYXZ1dWVlZS9KNkFCK3IxK3JlejFYbDNHcTNSekthRGVmaDM5OTEzTHhzYUdoTCtBUUFVU0FjZ005SUJDRURWSFQ1OGVDenZCTHpubm50ZTJMdDM3L0pHbzNGNXRycCtiQ3NGMm5menpUZm53MzZYRFF3TUxPdnE2dW9NNndHQTA5QUJ5R3pwQU9TVXNvdWMveStVQUZCWml4Y3Y3c252Q1hqUFBmZGN2SGJ0Mm9QMWVqMS9NRWcrVkpWaTVIOGhmRHJ2L0h2SE85NlJEL3RkTHZ3REFDaWVBSkNaSEFwekFLaTB2cjYrN2x0dnZmWHF1KysrKzZJMWE5YnNEOE9COHlHcnpFMytNOXlYaDMvMzMzLy84b0dCZ1JXZG5aMjZLd0VBV2tBQXlDazFHbzJSVUFKQTVmWDI5bmJkZHR0dDE3empIZTlZdW1iTm12enB3SGtJNlA0VzU2NlJKTW0rbTI2NjZjRE9uVHRYYnQ2OGVYbTlYbmRlQ2dCbm9jamh2OFRQaVJhbmxCMUlkQUFDd012a1ExTnZ1KzIyYSsrNzc3NUwxcXhaODNUMnUxSUllRzRhdFZwdC80NGRPdzQrOU5CRHF6WnQyclE4VzNaT0NnRFFRazYyT0tVMFRRV0FBUEFLZVpmYWovLzRqMTkzLy8zMzV5SGdON05WM3ptMmhWbWF6SDZHKzdkdDJ6WVYvcTFmdjM1Wm9uMEJBS0RsQklDY1VwcW1oZ0FEd0F4Q0NIanA2dFdydjVZdENnRm5aeUlQLzI2ODhjYUR1M2Z2WHJsMjdkb3JoWDhBQVBOREFNZ3AxV28xSFlBQWNCcTMzMzc3ZFR0MzdyeHM5ZXJWWDgwVzh4RFFjT0NaVFlWL1c3ZHVQYkJyMTY0VmVmaVhMWHZnQndEQVBCRUFja3BKa2h3SkpRQXdnNS80aVo5NHc4NmRPMS9YMzkvL2xXd3hEd0U5SGZoazQzbjROelEwTlBYQWozWHIxbDJWMzA4eGJBTUFZQjRrYWVxUDFaeGFraVNGN2h6Mk5RQmlsUDErU3ovKzhZOS80emQvOHplZmYvTEpKNi9QVmwyU1RicmJqc25EdndNREF3UDdkdS9lZmZXR0RSdVc5ZlQwZElWdEFNQWNGSDBuamV5VXhxMDVJcVlERUFCZ0R2TDcyTjErKyszWDdOcTE2L1Z2ZU1NYnBvY0RONlkyVnR0WS9yVGZqUnMzUHYzZ2d3L200ZDlWd2o4QWdJVWhBQVFBbUtOYTVyYmJicnQ2MTY1ZFYxeHp6VFhUSWVEazFNWnFHc3VtL2V2WHIvOW02UHpMdzcvdVk1c0FBSmh2QWtBQWdBSjBkbmJXYjd2dHRsVVBQZlRRVmF0V3JYb2lXL1h0YktwaUNEZ1YvcTFidCs0YkR6Lzg4TFdiTm0xYTF0dmJLL3dEQUZoQUFrQUFnSUxrRDdkNDA1dmV0UEpkNzNyWDhrd2VBdjU5TmxVcEJCelBwZ01iTm16NHhydmYvZTQzYk42OGVibndEd0JnNFFrQUFRQUsxTjNkM1huTExiZXNlTzk3Mzd2aWlpdXUySnV0cWtvSW1JZC8remR2M3Z6TmQ3M3JYZGNQREF3SS93Q2dKRHdBSkg0Q1FBQ0FndlgyOW5ibEllQi8ray8vYWRYclh2ZTY0V3pWdDdJcDVoQndxdk52YUdqbzZkMjdkMStYZC82NTV4OEFRUHNRQURJamZ3RUFnSE9YZDcvZGZQUE5Lejd3Z1E5Y2Zja2xsMHlIZ0RFK0hYZ2ltdzVzMmJKbDM2NWR1NjRkSEJ6TXd6OVArd1VBYUNNQ1FBQ0FGdW5yNit1KzZhYWJWdjdlNy8zZU5aZGZmbmsrSFBqNWJJb3BCTXk3R2cvY2VPT04rM2Z1M0hsMUh2NTFkM2NML3dBQTJvd0FFQUNnaFJZdFdqUVZBbjd3Z3grOGV0bXlaVjlOa2lRUEFadkh0cFphSG1RZTJMNTkrLzc3NzcvLzZxR2hvUlg1UTFDT2JRSUF5bVR2M3IxL0hrb2lKUUJrUnNQRHc1OElKUUF3QjNrSXVHUEhqaFcvOVZ1L3RYTDU4dVZmeTFZOWwwMWxEZ0hUYkRvWXdyOVZXN1pzV2RIWjJWay90Z2tBS0p0bXM1bmZ6NWVJQ1FDWlVaSWtSME1KQU14UlBoeDQrL2J0eTMvcnQzNXJ4YXBWcTc2ZXJjcER3RHhJSzZQOU8zYnNlUHFCQng1WU9UUTB0TEplcnp1bkJJQVN5MzZYajRXU1NEbFpZMFpwbWg0SkpRQlFnRHdFM0xadDI3TGYvdTNmWG43ZGRkZDlNMXYxN0xFdHBiSnYrL2J0VCszY3VYTXEvS3ZWYWg0YUJnQWxsMTMvNndDTW5BQ1FHU1ZKY2lpVUFFQkI4aWZrYnRteVpkbjczLy8rNWF0WHI5NlhyWHJtMkphMmwzY3JQcDEzL3UzYXRXdlY0T0RncXV4Y1FmZ0hBQkVRQU1aUEFNaU1zblA2a1ZBQ0FBWEpRN01RQWw3MTduZS8rOHAxNjlZZHlGYTNld2pZekw3dGZUdDI3TmcvSGY2RjlRQkFCTExmOHdMQXlBa0FtVkd6MmRRQkNBQXRFRUxBenExYnQxNzE4TU1QWDdGaHc0WThBR3pYNGNDTmVyMmVoMzhIZHUvZXZYSmdZR0JsV0E4QVJLTFJhQWdBSXljQVpFYTFXazBBQ0FBdGtvZUEzZDNkVXlIZ3JsMjdMdCswYVZNN2hvQ1Q5WHA5LzdadDJ3NW0zK09LN0hzVS9nRkFoTExURWc4Qmlad0FrQmxsQndBQklBRE1JRTNUcVdrdXBrUEFHMis4OGNwNzc3MzNzczJiTitjQllQNTA0SFl3MGRuWk9SWCs3ZHk1Yy9uR2pSdVhoL1VBUUh4MEFFWk9BTWlNR28yR2V3QUN3RHpJN3dtNFk4ZU9xKzY1NTU1TE5tL2VuSGNDUHA5TnphbU5DeU1QL3c1czNicjE0SDMzM2Jkc3c0WU55MnVac0EwQWlJd093UGc1a1dORzY5YXQrOE5RQWdDdmtKMG9UMDFGbVE0Qjc3cnJyandFUEppdCtsWTJOYVkyenEveFBQemJzbVhMZ2Z2dnYzK3E4eTlicm9kdEFFQ0Vzbk1hSFlDUkV3QXliNHE4U0FLQUdQWDE5WFhmZE5OTlY3NzFyVzlkR29ZRC8zMDJUVTV0bkI5VDRkL2c0T0MrKys2N2IvbUdEUnVXNVVPVXd6WUFJRjQ2QUNNbkFBUUFhQ09MRmkzcXVmbm1tNis2NDQ0N0xnb1BCcG12RUhBc2YrREg1czJibjc3dnZ2dFdiTnk0Y1ZuZWxSaTJBUUFSUzlOVUIyRGtCSUFBQUcxbThlTEZQYmZjY3N0VUNMaHg0OFk4Qk15SEEwOU1iV3lOc1NSSjltZGY2K243Nzc5LzFlYk5tNWYzOXZaMmgyMEFRT1FhallZQU1ISUNRQUNBTnJSNDhlTGVXMjY1WmRrZGQ5eHg4WVlORy9KN0F1WVBCbW5GeWZsb05uMTlZR0RncXp0MzdzekR2MlhDUHdDb2xscXRKZ0NNbkFBUUFLQk5MVm15SkE4QnI3cnp6anN2MnJCaHc1UFp5ZmszdTdxNjhrN0E5TmhIekVtNmFOR2l4aFZYWFBITW05NzBwc2NmZXVpaGF3WUdCcGIzOWZYMWhPMEFRSFc0QjJEa2tqUXQ0dnlSV0NWSlV1Z09ZbjhEZ0xNM01qSnkrTXRmL3ZMZVAvekRQL3orL3YzN2IvNzg1ei9mbGEzTG42NDEzYWszMnlkdFRmOGluamovL1BQSGYvcW5mN3JuVjM3bFY0NHNYYnIwaHhkZmZQRWx2Wm13SFFCb2MwVSthRE03ei9obkd6WnMrRWhZSkVJQ1FFNUxBQWdBN1dGaVl1TG9XT2FwcDU1YS9KNzN2T2ZGUng5OWRPeWxsMTY2N01VWFgyeGt2Nis3bTgxbWZoVndxaXVCZkYzK0MzanFsM0J2YisrUExydnNzb00vOVZNLzFmbHYvKzIvdlg3RmloVkpyVmJMaC80WUdRSUFKVkprQUpoZHF4ZjN5V2hMQWtET3FNZ1EwUDRHQUhPVC9TNU5YM2poaFg4Y0hoNGUyYnQzYjgrSFAvemhmemh5NU1nRkJ3NGM2R2cybStjMUdvM0piRjdQUHJRenEvUGh3aVA1UDF1NmRPbmtsaTFiRHYzRVQvekVxMjY5OWRiRnZiMjk2VVVYWGZTcWVyM3VoQjhBU2tnQXlOa1FBSEpHQWtBQWFFOGpJeU5qUjQ4ZW5Yenh4UmUvOTlHUGZ2VHBsMTU2NmNMdmZ2ZTduZG1tdm9zdXVxaG5iR3pzcGI2K3Z1K3NXYk9tczcrLy85cXJycnJxb3M3T3pxU25wMmVxMjAvWEh3Q1Vsd0NRc3lFQTVJd0VnQUJRSHMxbU0vdDFtNmIxZXIyV3o3UGxacjQrKzMyZUQvVVYrQUZBSkFTQW5BMG5nWnpXM3IxNy8yc29BWUFTcU5WcVNSNys1ZlYwNkpjdDE0Vi9BQURWNVVTUU04bnZHd1FBRkNCTjAzbnZoczlEd0ZBQ0FGQlJBa0JPcTlsc0NnQUJvR0R6SFFJQ0FISHg5ejNPbGdDUTA4b09Lb2RDQ1FETWtaTjFBQUFXZ2dDUU14RUFBa0NCOGhCUUVBZ0F3SHdTQUhKYWFab2FBZ3dBQUFCUVlnSkFUc3NRWUFCb3JZVjRNQWdBQU5VaUFPUk1kQUFDUUFzWkVnd0FRS3NsL3VMTW1XUVhKWVh0SlBZM0FBQUFtSnVpLzNpWVhhdjdhMlRrZEFBeXIzUTRBQUFBQU13dkFTQUFBQUFBUkV3QUNBQUFBRkJSaHY5V2d3QVFBQUFBQUNJbUFBUUFBQUNBaUFrQUFRQUFBQ0JpQWtET3lQMEFBQUFBQU1wTEFBZ0FBQUJRVVh2MjdQbDBLSW1ZQUJBQUFBQ2dvdEkwYllTU2lBa0FBUUFBQUNvcVNaS0pVQkl4QVNCbk5EdzgvTEZRQWdBQUFIR1pESE1pSmdCa05vNkdPUUFBQUJBWEFXQUZDQUE1b3lSSlJrSUpBQUFBUkNSTlUwT0FLMEFBeUd5OEZPWUFBQUJBUkpJa0dROGxFUk1BY2tZNkFBRUFBQ0JPeldaekxKUkVUQURJR2FWcGVpaVVBQUFBUUVSMEFGYURBSkF6eWc0R0FrQUFBQUNJa3c3QUNoQUFNaHVHQUFNQUFFQ0VhcldhRHNBS0VBQnlSczFtVXdjZ0FBQUF4RWtIWUFVSUFEbWpkZXZXZlNTVWhVaVNKRlFBQUFEQVFuSVB3R29RQUFJQUFBQlUxT1RrcEFDd0FwSTBUVU1KTTB1U3BOQWR4WDRIbEpFT1pvRDU0VndSNFBTS1BDOGRIaDcrMWJWcjE3NG5MQklwSFlBQUFBQUExZVVlZ0JVZ0FBUUFBQUNvS1BjQXJBWUJJQUFBQUVCRk5adE5BV0FGQ0FBQkFBQUFLcXFycThzUTRBb1FBQUlBQUFCVVZLUFIwQUZZQVo0Q3pLd1YrU1JnK3gxUVJwNENEREEvbkNzQ25GNlI1NlhaTWRkSmJnWG9BQVFBQUFDQWlBa0FtWlc5ZS9mK1NTZ0JBQUFBS0JFQklMUFNiRFlQaFJJQUFBQ0FFaEVBTWl0SmtnZ0FBUUFBQUVwSUFNaHNqWVE1QUFBQXNFQThtSTV6SVFCa1Z0STAxUUVJQUFBQVVFSUNRR2JGRUdBQUFBQ0FjaElBTWl0cG1ob0NEQUFBQUZCQ0FrQm14Vk9BQVFBQUFNb3BTZE0wbEhCNlNaSVV0clBZNzRBeWNzTmxnUG5oWEJGZ1prV2ZrMmJIWENlNUZhQURrQVhoSWhvQUFBQmdmZ2dBQVFBQUFDQmlBa0FBQUFBQWlKZ0FFQUFBQUFBaUpnQUVBQUFBZ0lnSkFBRUFBQUFxeUJPQXF5UHhpSDFtSzBtU1FuY1creDRBQUFDY25lemFQRlJ6SndDc0RoMkF6Sm9EQXdBQUFFRDVDQUFCQUFBQUlHSUNRQUFBQUlBSzJydDM3NStGa3NnSkFKbTFQWHYyZkR5VUFBQUFRUG1OaHptUkV3QnlOa2JESEFBQUFDaTVack1wQUt3SUFTQm40M0NZQXdBQUFDV1hwcWtBc0NJRWdKeU5RMkVPQUFBQWxGeVNKQUxBaWhBQU1tdHBtbzZFRWdBQUFDaS9zVEFuY2dKQVpxMVdxK2tBQkFBQWdFam9BS3dPQVNDemxxYXBBQkFBQUFBaTRSNkExU0VBNUd3WUFnd0FBQUNScU5mcmhnQlhoQUNRV1V1U1JBY2dBQUFBUkdKeWNsSUhZRVVJQUptMU5XdlcvRkVvQzVFa1NhZ0FBQUNBQlNBQXJBZ0JJQUFBQUVBRkpVbGlDSEJGQ0FBQkFBQUFLcWhXcXdrQUswSUFDQUFBQUZCQm5nSmNIUUpBQUFBQWdBcEtra1FBV0JFQ1FBQUFBSUFLR3MrRWtzZ0pBQUVBQUFBcXFGNnZUNFNTeUNWcG1vWVN6aXhKa2tKM0dQc2ZBQUFBekY1MlhSNnF1Y3V1eVl2N1pMUTFIWUNjRlFjSEFBQUFnSElSQUFJQUFBQkF4QVNBQUFBQUFCQXhBU0JuNVlrbm52aWpVQUlBQUFCUUFnSkF6dFpJbUFNQUFBQlFBZ0pBemtxejJUd1VTZ0FBQUdBZUZma0VZS3BGQU1oWlNkTlVBQWdBQUFCUUlnSkF6a3E5WGpjRUdBQUFBS0JFQklDY2xZbUpDUUVnQUFBQVFJa0lBRGtyaGdBREFBQUFsSXNBa0xOaUNEQUFBQUJBdVNScG1vWVNaaWRKa2tKM0d2c2dBQUFBbkZuUlR3SE9yc2M5VnJnaWRBQUNBQUFBUU1RRWdBQUFBQUFRTVFFZ0FBQUFRTVVZL2xzdEFrQUFBQUFBaUpnQUVBQUFBQUFpSmdBRUFBQUFnSWdKQURscjdoTUFBQUFBVUI0Q1FBQUFBSUNLR1I0ZS9uUW9xUUFCSUFBQUFFREZwR25hQ0NVVklBQUVBQUFBcUo2Sk1LY0NCSUNjdGNjZmYveGpvUVFBQUFCS2FQMzY5ZjlES0trQUFTQm5MVHRJL0dRb0FRQUFnQko2L1BISFB4UktLa0FBeUZuTERoSy9GMG9BQUFDZ25Bd0JyaEFCSUdjdFRkTkRvUVFBQUFCS0tMdTJIdzhsRlNBQTVLeGxCNG1SVUFJQUFBQWx0R0hEaHY4bGxGU0FBSkN6VnF2VmRBQUNBQUJBaVgzNXkxOStKSlJVZ0FDUXN6WTVPVmxvQjJDU0pLRUNBQUFBNW9raHdCVWlBT1JjNkFBRUFBQ0FFbk1Qd0dvUkFITFdHbzNHNFZBQ0FBQUFKU1FBckJZQklHZHRhR2pvUTZFRUFBQUF5a2tBV0NFQ1FBQUFBSURxR1F0ektrQUFDQUFBQUZBeGs1T1RFNkdrQWdTQUFBQUFBQldUSklraHdCVWlBS1F0ckZxMUtsUUFBQUJBcXpVYURRRmdoUWdBYVF0SmtvUUtBQUFBYUxWYXJTWUFyQkFCSUcwaFRkTlFBUUFBQUswMk9Ua3BBS3dRQVNCdFFRQUlBQUFBODJkeWN0SlRnQ3NrRWJ4d3JwSWtLV3puV2JGaVJjZStmZnZDRWdBQUFQQktSZDQrSzAxVDkrS3FFQUVnNTZ6SUFOQitDQUFBQUtjbkFPUmNHUUlNQUFBQUFCRVRBQUlBQUFCQXhBU0FBQUFBQUJBeEFTQUFBQUFBUkV3QUNBQUFBQUFSRXdCeVRqNzcyYy8rbjZFRUFBQUFvSTBKQURrbmpVWmpOSlFBQUFBQXRERUJJT2RrZEhUME82RUVBQUFBV2l4SmtsREIyVXZTTkEwbG5KM3M0RlBZem1NL0JBQUFnSmtWSFFCbTErRVN4UXJSQVVoYjhKY01BQUFBZ05ZUUFBSUFBQUJBeEFTQW5EUHR3Z0FBQUZBK3J1ZXJSd0FJQUFBQUFCRVRBQUlBQUFDME1mZk5aNjRFZ0xRTkJ6UUFBQUJvdlk5OTdHUC9leWlwQ0FFZzUrelAvL3pQZnpHVUFBQUFRRW44NUUvKzVPK0Zrb3BJMGpRTkpaeTlKRWtLM1lIc2p3QUFBSENpb2tmTWVRaEk5ZWdBcEswWUJnd0FBQUQvUlBoSEVRU0F6SWtEQndBQUFFQjdFd0F5SjMvNnAzLzZTNkVzakM1QUFBQUFjSDFNY2R3RGtEbkxEa2lGNzBUMlN3QUFBS3F1RlFHZ2tYelZwQU9RT1hQd0FBQUFnUGJuK3IyNkJJQUFBQUFBYlNUdi9HdEY5OThmL01FZi9Gd29xUmhEZ0NsRUs0WUI1K3lmQUFBQVZFMHJ3citjRHNEcTBnRklJVnAxRUduVlFROEFBQURha2ZDUFZoQUEwdmFFZ0FBQUFGU0I2MTlhUlFCSVlmdzFBUUFBQU01Tks4TS8xK3NJQUNtRi9FRG9MeUVBQUFERXlQVXVyU1lBcEZDdC9xdUNneUlBQUFBeGFmVjFydTQvY2dKQVNrY0lDQUFBUUF4YzN6SmZralJOUXduRnlRNWlMZCt4N0xzQUFBQ1UwWHdGZjdyL21LWURrTkxLRDVqK1dnSUFBRUNadUk1bEllZ0FwR1htb3d2dzVlekxBQUFBdEt2NUR2NTAvL0Z5QWtCYWFyNUR3Sng5R2dBQWdIYXhFQjEvd2o5ZVNRQklTeTFFQVBoSzluRUFBQURteTBJRWZxOGtBT1NWQklDMFhEdUVnQUFBQUZBRndqOU94VU5BYURrSEh3QUFBR2c5MTkvTVJBREl2SEFRQWdBQWdOWngzYzNwQ0FBQkFBQUFTa3o0eDVrSUFKazNEa2dBQUFBQTgwOEF5THdTQWdJQUFFQnhYR2N6R3dKQTV0MmRkOTc1QzZFRUFBQUF6a0VlL0FuL21LMThad2tseks4a1NleDhBQUFBY0pZRWY1d3RBU0FMVGhBSUFBQUFzeVA4NDF3WUFzeUNjL0FDQUFDQU0zUDl6TGtTQU5JV0hNUUFBQUJnWnE2Ym1Rc0JJRzNqbDMvNWwzL0JBUTBBQUFEK1NYNmQ3RnFadVhJUFFOcVMrd0lDQUFCUWRZSS9pcUlEa0xiMDVqZS8rVjg2MEFFQUFGQkZ1djRvbWdDUXR2Uys5NzN2LzgzbkRub0FBQUJVUlg3OSsrdS8vdXYvTWl4Q1lRd0JwbFFNRFFZQUFDQTJHbDlvTlIyQWxNcXYvZHF2L1RzSFJnQUFBR0tRWDkvK3EzLzFyMzR4TEVMTDZBQ2s5SFFGQWdBQVVCYWFXbGdJQWtDaUl4QUVBQUNnWFFqOGFBZUdBQk9kbi8zWm41MTZndkRMcDdBSkFBQUFXdUtWMTZIVFU5Z01DeXJmR1VNSkFBQUF3T244OUUvLzlQK2NKRW5IUnovNjBUOEtxNkR0Q1FBQkFBQUFJR0tHQUFNQUFBQkF4QVNBQUFBQUFCQXhBU0FBQUFBQVJFd0FDQUFBQUFBUkV3QUNBQUFBUU1RRWdBQUFBQUFRTVFFZ0FBQUFBRVJNQUFnQUFBQUFFUk1BQWdBQUFFREVCSUFBQUFBQUVERUJJQUFBQUFCRVRBQUlBQUFBQUJFVEFBSUFBQUJBeEFTQUFBQUFBQkF4QVNBQUFBQUFSRXdBQ0FBQUFBQVJFd0FDQUFBQVFNUUVnQUFBQUFBUU1RRWdBQUFBQUVSTUFBZ0FBQUFBRVJNQUFnQUFBRURFQklBQUFBQUFFREVCSUFBQUFBQkVUQUFJQUFBQUFCRVRBQUlBQUFCQXhBU0FBQUFBQUJBeEFTQUFBQUFBUkV3QUNBQUFBQUFSRXdBQ0FBQUFRTVFFZ0FBQUFBQVFNUUVnQUFBQUFFUk1BQWdBQUFBQUVSTUFBZ0FBQUVERUJJQUFBQUFBRURFQklBQUFBQUJFVEFBSUFBQUFBQkVUQUFJQUFBQkF4QVNBQUFBQUFCQXhBU0FBQUFBQVJFd0FDQUFBQUFBUkV3QUNBQUFBUU1RRWdBQUFBQUFRTVFFZ0FBQUFBRVJNQUFnQUFBQUFFUk1BQWdBQUFFREVCSUFBQUFBQUVERUJJQUFBQUFCRVRBQUlBQUFBQUJFVEFBSUFBQUJBeEFTQUFBQUFBQkF4QVNBQUFBQUFSRXdBQ0FBQUFBQVJFd0FDQUFBQVFNUUVnQUFBQUFBUU1RRWdBQUFBQUVSTUFBZ0FBQUFBRVJNQUFnQUFBRURFQklBQUFBQUFFREVCSUFBQUFBQkVUQUFJQUFBQUFCRVRBQUlBQUFCQXhBU0FBQUFBQUJBeEFTQUFBQUFBUkV3QUNBQUFBQUFSRXdBQ0FBQUFRTVFFZ0FBQUFBQVFyWTZPL3gvTXNjeEg2c0VuN1FBQUFBQkpSVTVFcmtKZ2dnPT1cIiIsImV4cG9ydCBkZWZhdWx0IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUJRQUFBQU5xQ0FZQUFBRFNXK2J4QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBRnh3U1VSQlZIaGU3ZDBKbUNWbldTL3crYm9ueWJBckNFWVdGYmdSdURRa3cyYnd1b3ZjZTFVdW9oTDJIUkprRFlxQXlpSUlYRURrUWlCS1F1QVNFSUVnT3lnQ2dseFJ0cENlQ2FBZ1NraFl3NlprSnNuMFRKOVQ5NjJ1YjVMWmV2cDBkNTJsdnZyOW51ZDl2dmVyZ2M1TWQ1MDZWZi8rNmxTcXFtb0x3SkdrbEJ3Z2dFMko4NHlVV3dBQVlFb0VnTkJ6UWo1Z0dnU0RBQUF3T1FKQTZCbUJIekNyaElJQUFEQWVBa0RvQWFFZjBDV0NRQUFBYUpjQUVBb2w5QU5LSUF3RUFJRE5tOHNqVUlnNitCUCtBYVU0OEpoMjdybm5uckt5RVFBQVdCY3JBS0VRUWorZ0Q2d0lCQUNBOVJNQVFzY0ovb0ErRWdRQ0FNRG9CSURRWWNJL29POEVnUUFBc0RZQklIU1E0QS9nYWtKQUFBQTRPZzhCZ1k0Ui9nRWN6SEVSQUFDT3pncEE2QkFYdVFCSFp6VWdBQUFjVGdBSUhTRDRBeGlkRUJBQUFBN21GbUNZY2NJL2dQVngzQVFBZ0lNSkFHRkd2ZXhsTDd1ZmkxaUFqWEg4QkFDQXE3a0ZHR2JRbVdlZWVkL0hQZTV4Yjh4VEFEYkk3Y0FBQUNBQWhKbGs1UXBBZTRTQUFBRDBuVnVBWWNZSS93RGE1YmdLQUVEZldRRUlNOFJGYWxtdWVjMXJicm4ydGErZForTVIrMHp1WUxwMjdkcTE1WW9ycnNpejJXUWxJQUFBZlNVQWhCa3k3UUR3aGplODRaWnZmZXRiZVFiUW51T1BQMzdMcFpkZW1tZlRJd1FFQUtDUEJJQXdJNllSL2gxenpERmI5dTdkbTJjQWsvSGpQLzdqVzc3NXpXOXVXVnBheWxzbVJ3QUlBRUFmK1F4QW1MSXp6enp6dHlZZC90WEJmMTNDUDJBYXZ2emxMMi9aczJmUFZjZWlTZkpSQ3dBQTlKRVZnREJsazd3WTlYb0habGtjRDNNM2ZuRTh0QklRQUlEZXNBSVFlbURidG0zQ1AyRG0xY2NweHlvQUFHaWZGWUF3UlpOWS9lYzFEblRSMXExYnR3d0dnendianpnK1dnVUlBRUF2Q0FCaGlzWVpBSHB0QXlVWTkyM0JRa0FBQVByQUxjQXdKY0kvZ0xVNW5nRUF3T1lKQUdFS2hIOEFvenZtbUdOeTE3NUpmQlFEQUFCTW13QVFDaUw4QTBxMGQrL2VMY2NkZDF5ZUFRQUE2K1V6QUdIQ3hyWGF4R3NaS0YyOUVuQjVlVG5QMmhYSFVKOEZDQUJBc1FTQU1HSGpDQUM5am9FK2llTm83dG9qQUFRQW9HUnVBWWFPMjdwMWErNEErbUVjdi9Ud1dZQUFBSlRNQ2tDWUlLdi9BTnBoRlNBQUFJek9Da0RvTU9FZjBGZFdBUUlBd09nRWdEQWhiVjlZdXZVWDZEdS9CQUVBZ05FSUFHRUNYdldxVi8xbWJsdXpiOSsrM0FFQUFBQ3N6bWNBd29TMHVRTHd1T09PMjdKbno1NDhBK2kzTmo4UDBPY0FBZ0JRSWdFZ1RFRGJ0Lzk2M1FKY3JjMEFzQ1lFQkFDZ05HNEJobzd4Mlg4QUI3dmhEVytZT3dBQTRFaXNBSVFKYUhNRm9OY3N3T0hjQmd3QUFLdXpBaEFBNEFCdGYyd0RBQUJNbXdBUU9xUisrQWNBaDdNNkdnQUFWdWNXWUJnenQvOENUSWJiZ0FFQTRNaXNBQVFBQUFDQWdna0FBWUFpZUVvNkFBQWNtUUFRT3VLNjE3MXU3Z0E0a3VYbDVkd0JBQUFIRWdCQ1J4eC8vUEc1QXdBQUFCaWRoNERBbUxYMUVCQ3ZWWUMxdGZVZ0VBOEJBUUNnSkZZQUFnQUFBRURCQklBQUFBQUFVREFCSUFBQUFBQVVUQUFJQUFBQUFBVVRBQUlBQUFCQXdRU0FBQUFBQUZBd0FTQUFBQUFBRkV3QUNBQUFBQUFGRXdBQ0FBQUFRTUVFZ0FBQUFBQlFNQUVnQUFBQUFCUk1BQWdBQUFBQUJSTUFBZ0FBQUVEQkJJQUFBQUFBVURBQklBQUFBQUFVVEFBSUFBQUFBQVVUQUFJQUFBQkF3UVNBQUFBQUFGQXdBU0FBQUFBQUZFd0FDQUFBQUFBRkV3QUNBQUFBUU1FRWdBQUFBQUJRTUFFZ0FBQUFBQlJNQUFnQUFBQUFCUk1BQWdBQUFFREJCSUFBQUFBQVVEQUJJQUFBQUFBVVRBQUlBQUFBQUFVVEFBSUFBQUJBd1FTQUFBQUFBRkF3QVNBQUFBQUFGRXdBQ0FBQUFBQUZFd0FDQUFBQVFNRUVnQUFBaDBncFZia0ZBSURPUzFYbC9CYkdxYTJMU0s5VmdMWEZNVGQzQUVDZnhmV1Rrd0k0Z0FBUXhxak5GU1JlcXdCckV3QUNBS3NSQ3RKbkFrQm95Ymh2Ri9OYUJWaWJBQkFBR0lVd2tMNFJBTUltakR2ME81RFhLc0RhQklBQXdIb0pBK2tEQVNDczB5UkR2d041clFLc1RRQUlBR3lVSUpDU2VRb3dqS2dPL3FZVi9nRUFBREJlcnZrb21RQVExdUJOQUFBQW9EOWNBMUlpQVNDc3drRWZBQUNndi9aZkU1NTU1cGtQeUp1Z3Mzd0dJQnhpVmtNL3IxV0F0Y1V4UEhjQUFPM3grWUIwblJXQWNBQXIvZ0FBQURpVWEwVzZUZ0JJNzUxeHhobjNyUS9tRHVnQUFBQ3N4blVqWGVZV1lIcXZLd2R3cjFXQXRjVXhQWGNBQU9QamxtQzZ4Z3BBZXMxdmJ3QUFBRmd2MTVKMGpRQ1EzbkxBQmdBQVlLTmNVOUlsQWtCNnB6NUlPMUFEQUFDd1dhNHQ2UW9CSUwzaTRBd0FBRUNiWEdmU0JRSkFlc05CR1FBQWdIRnd2Y21zOHhSZ2VxUHJCMlN2VlFBQWdJUEZkVjd1Wm9PbkF6T3JyQUNrRjJZaC9Mdis5YSsvNWRhM3Z2VktrTGVSQWdBQTRHRDF0ZElKSjV5d1pldldyWG5MZEZrSnlLeXlBcERpVGVzQWZLTWIzV2pMcFpkZW1tY0FBQUJNeXJISEhydGwzNzU5ZVRaNWxaV0F6QmdCSUVXYmRQaDN6V3RlYzh2bGwxK2Vad0FBQUV6VHRHNFJGZ0F5YXdTQUZHdVM0Wi9YRVFBQXdPeWF4b3BBSVNDenhHY0F3aWJVd1ovd0R3QUFZTGJ0M2J0MzVkcHRrcDhWV0M5S2VmbkxYLzViZVFwVFpRVWdSUnIzNnIvNStma3R5OHZMZVFZQUFFQ1hUUExXWUNzQm1RVldBRktjY1lkL2RXZ3UvQU1BQU9pdStycHUyN1p0ZVFibHN3S1E0b3d6QVBSNkFRQUFLTXNrVmdOYUJjaTBXUUZJTVY3ODRoZmZkNXpoM3lRL0t3SUFBSURKc05DRFByQUNrS0tNS3dDc3c3OUpQekVLQUFDQXlSbjNTa0NyQUprbUt3QXB4cmpDdjJPT09VYjRCd0FBVURnTHBDaVpGWUFVWTF3Qm9OY0lBQUJBZjR4ekphQlZnRXlMRllCMDNvdGU5S0o3Qy84QUFBQm9RMzBkNkZxUTBsZ0JTQkhhRGdDdmRhMXJiZG05ZTNlZUFRQUEwRWZqV0Exb0ZTRFRJQUNrODlvTy8rYm41N2NzTHkvbkdRQUFBSDBsQUtRVWJnR0dRd2ovQUFBQXFGazBSU2tFZ0hSYTI2di9qanZ1dU53QkFBREFsaTNISG50czd0clI5blVzak1JdHdIUmEyd2RPcndjQUFBQU8xZmF0d0c0RFp0S3NBSVRNNmo4QUFBQ09wTzFWZ0RCcFZnRFNhVzJ1QVBSYUFBQUFZRFZ0cmdLMEFwQkpzd0tRenZLNUNRQUFBQUJyRXdEU1NVOTV5bFB1bTl0VzNQU21OODBkQUFBQVFGbmNBa3hudWYwWEFBQ0FTWEVMTUYxbUJTQ0VtOS84NXJrREFBQUFLSXNWZ0hTV0ZZQUFBQUJNU3BzckFHdFdBVEpKVmdEU1NSNEFBZ0FBQURBYUFTQUFBQUFBRkV3QUNBQUFBREJoN214amtnU0FkTTdwcDUvK3lOd0NBQUJBWjlVaDRJR1ZOMi81NUNjLytkVHp6ei8vbm5rS20rWWhJSFJTMjc4cDhUb0FBQURnYU9JNk5IZVRWVDhzWk9mT25TODQ4Y1FUbjVZM3dicFpBVWpubkhycXFRNTZBQUFBOUVLOUFPYWtrMDU2NnY1VmdwLzYxS2ZPekg4RUk3TUNrRTVxZXdVZ0FBQUFkRW05TXZCem4vdmNhYmU5N1czUHlwdGdWVllBTW5ZN2QrNjgvMmMrODVtRFZ1M3QvODNGUml0L0dRQUFBT2lsK3RwNFlXSGhsZlg0aVU5ODRnL3paamdpS3dCcDNlTGk0bk8yYjkvK1RFRWRBQUFBVE02blB2V3BQN3pUbmU3MC9EeUZxd2dBMmJUUGZ2YXo5MTVZV0hpTHdBOEFBQUNtcTc0MStHTWYrOWh2M1BXdWQzMWIzZ1FDUURidUU1LzR4RXRPUHZua0orVXBBQUFBTUNQcUlEQzM0RE1BV2I4TExyamdMK3ZWZnNJL0FBQUFtRTMxZFh0ZG4vclVwKzZmTjlGalZnQ3lMbTd6QlFBQWdHNDUvL3p6ejd6akhlLzR1RHlsaHdTQWpFVHdCd0FBQU4zbGx1Qitjd3N3cTFwY1hIelcvaVhEZVJNQUFBRFFRYTd2KzgwS1FGYmx3QUFBQUFEbCtmakhQLzZiUC9tVFAra3B3VDFpQlNBSCtkakhQdlo0dnhVQUFBQ0FjcDE4OHNsdi9jUW5QbkZLbnRJRFZnQnlFTUVmQUFBQTlNUEhQdmF4ZTU5ODhzbC9sYWNVVEFESVZZUi9BQUFBMEM4ZUR0SVBBa0FFZndBQUFOQmpRc0R5K1F6QW5oUCtBUUFBUUwvSkJzb25BT3d4TDNBQUFBQ0E4cmtGdUtlRWZ3QUFBRENhNDQ0N2JzdE5iM3JUUER1eXVNN2VzblhyMWkyRHdhQytwVFp2UGJLdmZPVXJXNWFXbHZKc2RyZ1Z1RndDd0I0Uy9nRUFRTGVOR2thTW9nNHMyalEzdC9hTlp2WGY3Yk9mL2V4S3Y3Q3dzRElleWY3L0RmVEZOYTV4alMxNzl1ekpzK2tRQXBaSkFOaERBa0FBb0haZ2dQRFZyMzcxaUNzUjZ2L056VzUyc3p4YjNhZ0J3bnFDZ2FPRkFqWEJBQUFsdS9hMXI3M2w4c3N2ejdQSkVnS1dSd0RZTThJL1lCcEdXYVZRR3pVWUdPVi9Oejgvbjd2TkV6SUFBREJOOVRud0pBa0F5eU1BN0JIaDMzaTB2VEppbE5CQ0dBRUFBTkEva3d3Q2hZQmxFUUQyeEN5RWYvWTFBQUFBMkp4clhldGFXNjY0NG9vOEd4OEJZRm5Xdm9lS3pwdFcrTGR0MjdhVjBHOS9BUUFBQUp0VGZ5N2dKSzZ4Nnl6aHd4Lys4RVB5bEk2ekFyQUhKaDBBMnFjQUFBQmcvQ1p4UzNCYzQxc0pXQUFyQUFzM3lmQ3ZEdjZFZndBQUFEQVprN2dHLy9qSFAvNm8zTkpoVmdBV2JoSUI0RFd2ZWMycFBab2NBQUFBK202Y0t3R3RBQ3lERllDRitzaEhQbkxhSk1LL09rQVcvZ0VBQU1EMGpITnhWNTB0ZlBTakgvMzFQS1dqckFBczFLVENQd0FBQUdBMmpHc2xvRldBM1djRllJRSsvT0VQbjU3YnNSSCtBUUFBd0d3WjE3WDZKQllaTVY1V0FCWm8zQzlNK3d3QUFBRE1ybkdzQlB6a0p6LzU5RHZmK2M3UHkxTTZ4Z3JBd256MG94OTlRRzdIUXZnSEFBQUEvU1A4NnpZckFBczByaFdBOWhVQUFBRG9obkdzQXF4OEZtQm5XUUZZR09FZkFBQUFNQTRYWG5qaEkzTkx4d2dBQy9McFQzLzYvK1MyVmNJL0FBQUE2Slp4WE12Zi92YTNQeWUzZEl4YmdBc3pqaFdBOWhFQUFBRG9IcmNCczU4VmdBVVIvZ0VBQUFEN3VhWm5Qd0ZnSVQ3KzhZOC9NN2NBQUFBQVk3Rmp4NDc3NVpZT0VRQVc0dVNUVDM1T2JsdmpOd1VBQUFEQWdWSktDN21sUTN3R1lDSGMvZ3NBQUFBY1NadWZCVmo1RE1CT3NnS1FJeEwrQVFBQUFKUkJBRmlBQ3k2NDRPbTVCUUFBQUlDRHVBVzRFRzNmQW15L0FBQUFnREswZVF0d3pXM0EzV01GSUljUi9nRUFBQUNVUXdCWWdIRThBQVFBQUFDQU1nZ0FBUUFBQUtCZ0FrQUFBQUFBS0pnQUVBQUFBQUFLSmdBRUFBQUFnSUlKQUR0dTU4NmQ5OHB0SzQ0NzdyamNBUUFBQUZBQ0FXREhEUWFEWTNMYmlwdmYvT2E1QXdBQUFLQUVBc0NPbTV1YlM3bHR4Zkx5Y3U0QUFBQUFLSUVBc1B2MjVMRVZYL25LVjNJSEFBQUFRQWxTVlZXNXBhdFNTcTMrRU8wVEFBQUFVSTZVV3IxNXNNNE4ydjJDakowVmdBQUFBQUJRTUFFZ0FBQUFBQ094K3ErYkJJQUFBQUFBVURBQklBQUFBQUFVVEFBSUFBQUFBQVVUQUFJQUFBQkF3UVNBQmZBQm5BQUFBQUNzUmdBSUFBQUF3RWgyN05qeHdkelNJUUpBQUFBQUFFYTFuRWM2UkFCWWdNWEZ4Yi9KTFFBQUFNQTRDUUE3U0FCWWhqMTVCQUFBQUJpYnFxb0VnQjBrQUN6RDVYa0VBQUFBR0p1VTByN2MwaUVDd0FMRWkyOVhiZ0VBQUFER2FXOGU2UkFCWUFGU1NydHpDd0FBQURBMlZWVUpBRHRJQUZpQTRYQm9CU0FBQUFBd0NRTEFEaElBRm1CdWJxN1ZBSEJoWVNGM0FBQUFBQWRaeWlNZElnQXNRRlZWcmQ0Q1BCZ01jZ2NBQUFCd3RibTVPU3NBTzBnQVdJQ3FxbHBkQWJpODdJbmVBQUFBd09HR3c2RUFzSU1FZ0FYWXZuMzdtM0xiaXE5ODVTdTVBd0FBQURpSVc0QTdTQURJWVphV3ZKWUJBQUNBdzdrRnVKc0VnQUFBQUFDTXlxcWhEaElBQWdBQUFEQ1NxcXFzQU93Z0FTQUFBQUFBSTBrcENRQTdTQUFJQUFBQXdLamNBdHhCQWtBQUFBQUFSakkvUDI4RllBY0pBQUVBQUFBWXlXQXdFQUIyVUtxcUtyZDBYVXFwdFIrbS9RSUFBQURLa0ZMSzNlWlZWZFhlRjJOaXJBQUVBQUFBS0ZTYjRSL2RKUUFFQUFBQWdJSUpBQXV4dUxqNGx0d0NBQUFBd0ZVRWdJV1ltNXZibFZzQUFBQUF1SW9Bc0JERDRYQjNiZ0VBQUFEZ0tnTEFRcVNVTHNzdEFBQUFBRnhGQUZnT0t3QUJBQUFBT0l3QXNCQlZWYlVhQUM0c0xPUU9BQUFBZ0M0VEFCWmlPQnkyK2hDUXdXQ1FPd0FBQUFDNlRBQllpUG41K1ZaWEFGNTAwVVc1QXdBQUFLRExVbFZWdWFYclVrcXQvakR0R3dBQUFOQnRLYVhjdGFPcXFuYS9JQk5oQlNBQUFBQUFGRXdBQ0FBQUFBQUZFd0FDQUFBQVFNRUVnQUFBQUFCUU1BRWdBQUFBQUd2eUFKRHVFZ0FDQUFBQVFNRUVnQVdSeEFNQUFBQndLQUVnQUFBQUFCUXNWVldWVzBxUVVtcnRCMnJmQUlETmkvZm1oOFJ3NDZnZmlQckJxT3RHWFNlUCsvdjkyK2VqMnJRbjZudEhxZS9HKy8xWk1RSUFoWXB6a2R4dG5qc1B1MHNBV0JnQklBQk1Ucnp2L2s0TXQ0aTZTZFFQNS9INHFPT2l1dW9iVVJmbituSTl4am5CbjhVSUFIUlFtd0hnamgwNzNuM2lpU2Yrcnp5bFF3U0FCWWtYNHJ1MmI5OStqenpkTlBzR0FLeWNOSjhld3dsUi95V1BQeGJWOWtxOUx2bDYxT2VpUGx1UGNiNXdUcjBSQUpoTmJRYUFGMXh3d1Z1M2I5LytXM2xLaC9nTXdJTEVDWGg5bXc4QXNBRnhjbnhxMUN1aS9sL1VmOVlueTNXRmwwWTlOdXEvUjlXci9mb2MvdFhxMjVsL09lcEpVZWZzL3o1RmZUbnF2VkV2aW5wdy9UOEVBTW95TnplM2xGczZSZ0JZbGwxNUJBQ09JcVgwbEtqem9yNFFOWWlxTjU4ZDliaW9uNDJxUDYrUDlmbnhxRitOZWtyVTYrcnZhZFR1cUk5RXZiRCtId0FBM1RZY0R2Zm1sbzRSQUJZa1RxNEZnQUJ3aUhoL3ZGL1VHVkdmak5vWFZXOStVZFFwVWJlSzZ2dUt2bkc2ZHRUUFJUMjEvcjdudWpqcXpWSDE1eWNDQU4waUFPd29BV0JCNGtSNmQyNEJvTGZpL2ZCeFVXK04rbnBVdmVtTlVVK0l1a3ZVTWZVR3BxcitETVg3Ukwyay92bEVYUm4xZ2FqZlcvbFRBR0NXdVFXNG93U0FaUkVBQXRBN0thV0hSTDBsNmx0UjlhWlhSUDFtVlAxWmRjeSthMFRWbnluNEovWFBMNnErYmZpRFVmWERWd0NBR1JMdnoxWUFkcFFBc0N5WDViRVZ0N25OYlhJSEFMTWxUajdyVzBvL2xFOUN6NDI2ZDlTTjZqK2o4K3JiaHU4VzlkTDQrZFkvNjg5RS9lbktud0FBVTFWVmxRQ3dvd1NBWmJFQ0VJQmlwWlJlSC9XZE9oUUs5VU1sZmpIcTJIcEMwVzRYOWJ2MXp6MnF2bDM0UFZFUGFmNElBSmlrZUE4V0FIYVVBTEFndytHdzFZZUFYSFRSUmJrRGdPbUlrOHc2OVB0ZVZEMTlVTlFQMVEyOVZkOHUvR3RSNThZK3NSVGxWbUVBbUtEaGNPZ3pBRHRLQUZpUTdkdTN2ejIzclZoYThyb0dZUEpTU3ErSytuWlVQYTFEdit2WERSeml1S2o5dHdyWFllQjdveDZ4OGljQXdGakVlNjBWZ0IwbEFBUUFwaTVPSnMrTytvK29ldnFvcUJ2V0RZeW9EZ04vTmVyVnNROE5vK3FWZ1c0VEJvRDJXU25VVVFKQUFHQXFVa3JQanZwOFZEMDlOZW9INndZMnFUNi9yVmNHMXJjSi8yZlUyU3RiQVlCTmkvZFZLd0E3U2dBSUFFeFVuRGkrTzJwZnRNK0t1dlhLUmhpUEg0ZzZOZmEzZXIvN1ZOUmptODBBd0FaWkFkaFJBa0FBWU94U3M5cnZtM1VRRSs0UmRVemR3QVRkT2VyTTJBZjNSSjNYYkFJQTFtTnViczRLd0k0U0FBSUFZNU9hejJJYlJsdXY5anQrWlNOTTE3YW9VK293T3VwTFVVOXJOZ01BYXhrT2h3TEFqaElBQWdDdHFnT1ZxQy9XQVV1b1A0dk4rUWF6NmhaUkw0aDlkWGVVendvRWdMVXQ1NUdPU1ZWVjVaWVN4TWxycXo5USt3Y0FvNHIzb1A4ZFEvMHdqeHVzYklEdUdVUzlNODUvZnFPWjBoVngvSGxlRExlTitvbW8raGgwYk5SbFVWK1ArbnpVcCtQbitvb1lBWG9sam8rNWEwY2NTOXY5Z2t5TUFMQkFiWWFBOWc4QTFoTHZPMmZHOFBDb2E2eHNnRExzaUhwNW5BdTl1cGt5YStMWTg1b1k3aDExblpVTm8vbHMxTm54Y3oyam1RS1VUUURJZmdMQUFna0FBWmlFZUw5NWZRejNpOXE2c2dIS1ZLOGdlM0djRTcya21USnRjZXlwSCtKU0IzK2J1UWo5ZHRUdng4LzFuR1lLVUNZQklQdjVUSjdDWEhqaGhlL0lMUUNNUlp4SXZqUC9zdWxCVWNJL1NuZmpxSmZFUHYrZHFHYzBtNWlXK0JsOFA0WlQ2blpsdzhiZE1PcWMrSHJ2YjZZQVVEWUJZR0VHZzhIdTNBSkFxK0pDdVg2aWI5M2VzNTdXRGZUSUQwWDljYndHTG90NmZyT0pTWW52K2RPajZsODhYSy9aMHBxN3g5ZjljdTRCb0ZnQ3dNTEVDY3l1M0FKQUsrSzk1Yng4NFYwLzBSZjY3cnBSZnhDdmlTdWlYdFpzWXB6aSsvelNHSjVidHlzYjJ2Zmo4ZC80VHU0Qm9FZ0N3UEpZQVFoQUsrS0MrTXlvZmRHMmNic2RsT2FhVVUrTTE4amVxRmMybTJoYmZSeUs0ZlJtTmxZL0ZQK3RiK1llQUlvakFDek0zTnljRllBQWJFcGNCSjlSaHhyUlBqYnFtSldOd0dxT2pYcDAvWnFKT3J2WlJCdmkrL2wvWTZpUFE1TnlmUHczL3pYM0FGQVVBV0JoaHNOaHF3SGd3c0pDN2dBb1hWejRQaWJxMG1pZkVGV0hHc0RvNnRmTXFmVnJLR3FTb1ZXUjRudFlyNnA4V0RPYnFKK0kvL1pyY3c4QXhSQUFGaVpPV0ZvTkFBZURRZTRBS0ZtOGYxd1l3NTlGL2ZES0JtQ2o2dGRRZmZ1OGxXUWJGTis3ZWlYbG81dlpWRHdrandCUURBRmdZYXFxYWpVQS9QS1hQUlFOb0dSeG9iMy95YjYzWDlrQXRLVmVTVmEveGo2WDU0d2d2bDl2anVIVVpqWTE4ZGRJbjhnOUFCUWhWVlg5VUQ5S0VpY3NyZjVRN1NNQTVZbjNpaitLNFNsUjlZTU1nUEY3ZTV4VDNTdjNIRUVjbDE0ZHd5T2EyZlE1QndaS0VNZlczTFVqam8wZUROZFJWZ0FDUUkvRVNlQnBVZCtJdGc0QWhYOHdPZmVLMTk2K3FEUHluQVBFOStXOEdHWW0vS3ZGMytrMXVRV0F6ck1Dc0VCeHNtSUZJQUNIaWZlSEQ4VHd5ODBNbUtJdnhQblZyWExmZTNGc09qZUdXZnpjdlV2ajUrUnpVWUZPaTJOczd0cGhCV0IzV1FFSUFJV0xFNy9Ub3k2UFZ2Z0hzK0ZXOVFWWlZQMTVkNzBXMzRQWHhUQ3JEOTBRL2dFY1FQalhiUUpBQUNoWVhGelhUL2Q5YWRTMVZqWUFzK1ErOFJxOU11clplZDRyOGUvK3F4Z2UzTXhtVS93ZDc1TmJBT2cwQVNBQUZDZ3VXcDhadFJTdHAvdkNiTHRHMUxQaTlWcUg5YjBSLzk0M3hQQmJ6V3ltM1R5UEFOQnBBa0FBS0V4Y1dQOTdETStKT201bEE5QUZ0NC9YYmhWMWRwNFhLLzZONzQzaEFjMXM1bDB2andEUWFRSkFBQ2hFWEZRL0wyb1E3UzJiTFVESDFKK3RkR3E4anIvUVRNc1QvN2I2Y3c5L3RabDFncWVsQTFBRUFXQ0JmREFuUVAvRVJmWG5ZdmpEcVBtVkRVQ1gxUThKS1c0MVlQeDcvanFHcm4ybW52TnFBSW9nQUFTQURvc0w2dm9KdjN1aXZXMnpCU2pFL3RXQUZ6WFRib3QveDkvRThDdk5ESUF1dXZEQ0N6K1FXenBJQUFnQUhSVVgxTytNb1g3Qzc3YVZEVUNKYmg2djlVNnZCb3kvKy90aStKL05ESUFPVzg0akhTUUFMTkNPSFR2cTJ5c0FLRmhjVUY4Y3d6MmJHVkM0L2FzQk8vZWs0UGc3dnoyRy85SE1BT2l5d1dBZ0FPd3dBV0NaNmx2QkFDaFFYRXcvSjZwKzBNZVBOVnVBSHFtZkZIeGwxS2w1UHRQaTcvbU9HTzdWekFBb2dBQ3d3d1NBWmJvOGp3QVVKQzZtL3lHR1owWjUwQWYwMXpXaXpvN2pRZjBSQURNci9uN3ZqK0hYbXhrQUpZaGp1d0N3d3dTQVpkcVZSd0FLRVNkY1g0L2haNW9ad0paN3huSGhLN21mS1RuOHUzc3pBNkFVdytGd2IyN3BJQUZnZ2FxcTJwMWJBRG91THFTZmxuL2JldU5tQzhCVmJsWWZINktlbmVkVEYzK1hqOFFnL0FNbzBOemMzRkp1NlNBQllJSGlSV2tGSUVBQjRrTDZEVEc4SUdycnlnYUF3OVhIaDJmRjhlS0R6WFI2NHUvdy8yTDR1V1lHUUlHc0FPd3dBV0NCNHVTcjFRQndZV0VoZHdCTVNoekxQeG5EQTVvWndKcnVGc2VOaTNJL2NmSGZmbDhNUDl2TUFDaVJXNEM3VFFCWW9IaFJ0bm9MOEdCUVAyd1NnRW1KQytsdngzQ1haZ1l3c3B2SDhXTlAxSVB6ZkNMaXYvZTNNZnlQWmdaQXFlYm41OTBDM0dFQ3dBTEZTVmlyS3dBdnVtaHF2MHdHNkpVNGZqOCtxdjY4dnhzMld3RFdiVnZVNitKWWNuWXpIYS80NzN3MGh2L2V6QUFvMldBd3NBS3d3d1NBQlRyeHhCUGZuTnRXTEMwSitRSEdMUzZpejRqaDVWRSs3dzlvdzZseFhQbUgzSTlGZlAxL2pPR25teGtBcFp1Ym14TUFkcGdBRUFDbUxDNmk2OC9PZWtJekEyak56OFR4NVV1NWIxVU8vLzViTXdPZ0QrTFliM1ZRaHdrQUFXQ0s0a1RxTXpINDdDeGdYRzRSeDVsV1B4ODZ2dDQveFNEOEErZ2ZLd0E3VEFBSUFGTVNGOUhmaU9GMnpReGdiSzRkeDVzcTZvVjV2bUU1L1B1cFpnWkFuMVJWSlFEc01BRWdBRXhCWEVUWEszSitwSmtCakYyS2Vtb2NlLzV2TTEyLytQOStKQWJoSDBCL3VRVzR3d1NBQURCQmNRRjlXdFFnMm1zM1d3QW02bUZ4RFBwdzdrY1cvNTlQeC9CenpReUFQcklDc05zRWdBQXdJWEVCL2V3WVhoazF2N0lCWURwK0lZNUhuODM5bXVKL2UwRU1kMnhtQVBSVnZCOElBRHRNQUFnQUV4QW5UQytQNFZsMXU3SUJZTG9XNHJqMDVkeXZLb2QvZDJobUFQU2NXNEE3TEZWVmxWdEtFeWRzcmYxdzdTY0FHeGZINHpmRThJQm1CakJUdmhmbmVkZlAvVUhpMkxVWXcvWm0xbHRueFBmbkNia0g2Snc0bHVkdTgrSjQ2QmZaSFdZRklBQ01VWngwZlRBRzRSOHdxNjRmeDZuTGMzK1YyTFlqaHI2SGZ3Q2QxbWI0Ui9jSkFBRmdUT0trNis5anVGc3pBNWhaMTRyajFkNm8rOVdUR0Q4UncwbDFEd0NVUVFCWXFBc3Z2UEROdVFWZ0N1SUMrbU14L0h3ekE1aDV4MGE5SVk1ZFg0cnhKMWUyQUFERkVBQ1dhM2NlQVppd3VJQ3ViNTI3YXpNRDZJejYydUFXVFFzQWxFUUFXS2poY0xncnR3Qk1VRXBwWnd4dW5RTUFBR2FHQUxCUVZWVUpBQUVtTEtYMEx6R2MyTXdBQUFCbWd3Q3dVUFB6ODI0QkJwaWdsTkxuWTdoTk13TUFBSmdkQXNCQzdkdTNyOVVBOExhM3ZXM3VBRGhVU3VrTE1keTZtUUVBQU13V0FXQ2gycjRGZUhsNU9YY0FIQ2cvOE9OV3pRd0FBR0QyQ0FBTDFmWXR3QmRmZkhIdUFOZ3ZwZlRKR0R6d0F3QUFtR2tDd0VKdDM3NzliYmx0eGRMU1V1NEFxS1dVUGhqRFhab1pBQURBN0JJQUFzQTZwWlRlR01QZG1oa0FBTUJzRXdBQ3dEcWtsUDRzaHZzMU13QUFnTmtuQUFTQUVhV1VuaDdEWTVvWkFBQkFOd2dBQVdBRUthV0h4dkRIelF5bXBuN0svMzhjVUZkR0FRREFVYVdxcW5KTGFlSml0ZFVmcm4wRjZMTTRwdTZMNFpobUJodTJIUFd0cUcvbXF2dXZSMTFhVjd6WHZpbkdWc1crKzRnWWZqRFhEYUp1RW5YVHFCdEgvWEFVc0xvejRuWDVoTndEZEVxY0ErUnU4K0pZMk40WFl5b0VnQVVUQUFLMEk0Nm4veG5ERHpReldOUGVxSCtMK256VXY5WVY3Nkd2aVhHbXhYNyt3Qmh1RTNXclBKNFFkV3dVOUprQUVPZ3NBU0FIRWdBV3JzMFEwTDRDOUZFY1J5K0s0ZWJOREE1emNkUkhveTZJOThrL1hkbFNvSGdkUEN1R08wZmRKZXBHOVRib0NRRWcwRmtDUUE0a0FDeWNBQkJnNCtJWStyRVk3dHJNWU9YMjNjV29mNm9yM2hmZlhHL3NvM2h0M0NlR09nemNYOGRGUVlrRWdFQm5DUUE1a0llQUFNQVJ4QWxUSGU0SS8vcXREdncrRXZXTStwZGdVVnVqN2h6MXhLamVobisxK3Q4ZjlidFJQeE4xWEZTOStmbFJkV2hlZjk4QWdJTHMzTG56ZmJtbG93U0FBSENJbE5MellxaFhPTkUvMzQ1NmZkUjlxeWJ3Kzdrb1QzOGVRWHlmL2lEcXJ2bjdWbTg2STZxK1JSb0E2TDZsUE5KUkFzQ0M3ZGl4NDEyNUJXQkVLYVdIeHZDSHpZd2VxSk9xK3JiZTU5V2hWZFFOb3g0VTFmclRlUHNtdm9kUGlQcXhxSHI2N0tnZGRRTUFkRkw5a0RNNlRBQllzTG01dVN0eUM4RG96c29qWmZ0TTFPOVZWVlYvSHZMMktLSHZHTVgzOTFsUkowWFYwOStKK25UZEFBQ2RJUURzT0FGZ3dRYUR3ZTdjQWpDQ2xOSTNZL0F3ZzNMVlQzUitkaDFDUmQwdTZrK2F6VXhTZk45ZkVuWEgrdWNRbmhiMWhib0JBR2FhQUxEakJJQUZtNXViMjVWYkFOYVFVbnAvRE1jM013cXlKK290ZGRnVWRmT29aeldibVFYeDgzaEIxSzNxbjA5NFZaUnpGd0NZUWNQaFVBRFljUUxBZ3NVTDFBcEFnQkdrbEo0Ync5MmJHWVg0MTZqSFZsVzFMZXJlelNabVdmeWNIaFYxbldpZkVHVlZJQURNRmc4QjZUZ0JZTUhtNStkYi9TMzZ3c0pDN2dDSzQvUGZ5bEF2STN0UHZab3M2aWVpem13MjB5WHhjenNqYXYrcXdQcUp6UHZxQmdDWW5wU1NBTERqQklBRml4Tm50OUVBckNGT1p2NmpIcG9aSFZYZmt2SVg4YjVYUDlEajE1cE5sQ0IrbnZVVG1ZK0o5dVZSVjY1c0JBQ213UzNBSFNjQUxGaWNNTGQ2Qy9DK2ZYNEJENVFscFZUZlp2aUR6WXdPK2xyVTArTDk3dGlvQnphYktGSDhmQjhmZFkxbzY0ZUdmRzlsSXdBd01mRStMQURzT0FGZ3dZYkRZYXNyQUMrKytPTGNBWFJmU3Vuc0dHN1Z6T2lZNzBZOU5VNUVieEwxZ21ZVGZWRC92S091SCsxem92NXpaU01BTUhaYnQyNTFDM0RIQ1FBTGRvYzczT0VkdVczRjBwTFhPMUNVVS9OSWQxd1c5VWRWVmQwZzZvWE5Kdm9vZnY3UGpQcUJhSjhkNWFGbkFEQm15OHZMYmduc09BRWdBTDJUVXJKeXFGdnFuMWQ5cSs5MW8vNm8yUVFyUWVDem9xNGRiUjBJKzR4QUFCZ2ZLNEk2VGdBSVFLK2tsRDRhUTcxeWlObFhmNVRGcyt1VlhsRnU5V1ZWc1gvVXQ0VFhueEZZMzlvL1dOa0lBTFRHTGNEZEp3QUVvRGRTU2srSjRhZWJHVE9zaWpxM3FxcnJSRDJyMlFScmkvM2wxS2o1YVAreDJRSUF0R0V3R0hnSVNNY0pBQUhvaytmbmtkbjFzYXFxVXRSRDhoeldMZmFmL3haVnQxOVoyUUFBYk1wd09CUUFkcHdBRUlCZVNDbDlLWWF0ell3WjlPMm9oMVJWZGRkbUNwc1grOVBOWXFnZkZPS2lCUUEyNFpoampuRUxjTWNKQUFFb1hrcnByQmh1MGN5WU1mVXlyZGRYVlhYRHFIT2JUZENlMksvcUI0VWNHKzJubXkwQXdIb05RbTdwcVBvV205eFNvcmpvYmZVSGJIOEJ1aWlPaGJsanhudzgzbGRPemoyTVhSd0xUb3ZoVDZQcUp3ZkRLTTZJNDlRVGNnL1FLVzJlQThleDBBbDF4MWtCV0RndlVxRHY0c1RuMzNQTDdOZ1Q5UlRoSDVNVys5eFpVWFg0OTRsbUN3Q1V5Uy9BT1pRQUVJQml4WW5QeTJPNFpUTmpSdnhEVlZYYm9sNlU1ekJ4c2YvOVpBejFhc0RkS3hzQUFBb25BQ3pjNHVMaTIzTUwwRWVQeVNQVHR4ejEzS3FxZnFhWnduVEZ2cmgvTmVBbm15MEFBT1VTQUpiUGI3YUJYa29wZlNHRytXYkdsTzJvcW1wcjFOUHpIR1pHN0pkM2lhRitVckFQTndjQWlpVUFMRnhjQU8vS0xVQnZ4TEh2ZVRIY3Fwa3hSWFdnOHV5cXFrNXFwakNiWWgrdG54UmMvOExnNjgwV0FJQ3lDQUFMRnllelZnQUNmZlI3ZVdSNnZsNEhLbld3a3VjdzgySi92WEVNZjkvTUFBREtJUUFzM05hdFd5L0xMVUF2cEpUK0tZWmpteGxUOHRFY3BFRG54TDc3OHpHNEpSZ0FLSW9Bc0hETHk4dXRyZ0JjV0ZqSUhjRHNTU2s5S29hZmFtWk1RUlgxd3FxcWZycVpRamZWSzFlajZsdUNMMjIyQUFCMG13Q3djSE56YzYxK0J1Qmc0SmZod0V4N1FSNlp2TzlYVlpXaW5wcm4wSG14UC85d0RPYzNNd0NBN2hJQUZtN2Z2bjJ0cmdDODZLS0xjZ2N3VzFKS3I0amhCczJNQ2Z2bnFxcXVsM3NvU3V6YmQ0cmhkYzBNQUtDYjZ0L1U1NVpTeFVWeHF6OWsrd3d3aStKWVZ5OVJybS9aWTdMZUZ1OEx2NUY3S0ZZY1kwNkw0Y3lvclNzYjZJc3o0aGozaE53RGRFYThiK1d1SFhFc2JQY0xNbkZXQUFMUWVYR0M4K0VZaEgrVDk2ZkNQL29pOXZXem91cnc3OHBtQ3dCQWR3Z0FBZWkwbE5LRFl2aUZac2FFREtNZVcxWFY3elpUNkkvWTc2OFJ3OWVhR1FCQU53Z0FBZWk2RitlUnlkaFRWZFZjVkgwckpQUlM3UDgzaWVIenpRd0F5aGJ2ZTI3L0xZQUFFSURPU2luOVVRejFVenFaak12akJIQmI3cUhYNHJWdzZ4ZysxY3dBQUdhYkFCQ0FMdnU5UERKK1g2dXE2bHE1QjBLOEp1NGN3NXViR1FEQTdCSUFBdEJKS2FVelloQklUY2FYcSthV1IrQnd1L0lJQURDekJJQUFkTldqODhoNC9YTlZWVCtlZStBQUthVnpZbmhrTXdNQW1GMEN3QjZJQ3pjZjJBa1VKUzY2M3hURHNjMk1NZnBNdklmODE5d0RCNGpqVUgzcnIvQVBBT2dFQVNBQVhYU2ZQREkrbjZ1cTZuYTVCdzZRd3ovSElRQjZZWEZ4OFFPNXBjTUVnQUIwU2x4NHY3OGVtaGxqOGk5VlZkMDI5OEFCaEg4QTlOQnlIdWt3QVdBUDdOaXg0NzI1QlNqQjNmUEllUHg3VlZXM3lUMXdnUHp4QThJL0FIb2wzdi8yNVpZT0V3RDJ3NTQ4QW5SYW5IejhRMjRaajY5VlZYWEwzQU1IaU9QUDJUSGN0NWtCUUgvRStlRWd0M1NZQUxBSGhzUGg1YmtGNkxxZnlTUHR1emhPN202U2UrQUFlZVhmcWMwTUFQckZDc0F5Q0FCN0lGNnN1M0lMMEZseExQdFFibW5mOTZ1cStySGNBd2V3OGcrQXZvdnp4TDI1cGNNRWdEMHdOemNuQUFSSzhJdDVwRjFYeEVuZDlYSVBITURLUHdEWXNtVitmbjRwdDNTWUFMQWZkdWV4RlFzTEM3a0RtSXk0Q1ArNzNOS3VRVlZWMTh3OWNJQWMvbG41QjBEdkRZZERLd0FMSUFEc2diaTRhelVBQkppQ1g4b2o3ZnFEUEFJSFNDbWRGWVB3RHdEQzNOeWNBTEFBQXNBZWlKUFl5M0xiaXNIQUE0Q0F5WWxqMk4va2xuYWRWVlhWQzNNUFpISE1PVGVHMDVvWkFCRGNBbHdBQVdBUHRMMEM4S0tMTHNvZHdFVDh6enpTbnIrUDl3WUJCeHdpcGZUYUdCN1N6QUNBV3B3M1dnRllBQUZnRDV4MDBrbm41YllWUzB2Q2YyQXk0bUw4TGJtbFBWK05rN2lmenoyUXhmR212dTMzb2MwTUFOalBad0NXUVFBSXdDeTdWeDVweDk2cXFtNmFleUJMS2IweUJxdGlBZUFJUEFXNERBSkFBR1pTWEpDL0pJYXR6WXlXUERHUFFKWnYrMzEwTXdNQUR1VVc0RElJQUFHWVZRL1BJKzM0aXpoNSsvUGNBeUdIZjI3N0JZQ2ppUGRMQVdBQkJJQUF6Snc0eVhoc0REL1F6R2pCNTZ1cWVtRHVnU0Q4QTRDUnVRVzRBQUpBQUdiUjZYbGs4NjZvcXVyV3VRZUM4QThBUmpjM04yY0ZZQUVFZ0FETW9oUHl5T1lKVStFQXdqOEFXSjk5Ky9ZSkFBc2dBQVJncHNURitmdHl5K2E5dnFxcXMzTVB2UmZIbC84YmcvQVBBTmJITGNBRlNIRmhrRnRLRnllOXJmMnc3VGZBdU1TeGFoaURYMUJ0M3BmaVdIMkwzRVB2eGJHbGZnak9iemN6R05rWmNTeDlRdTRCT2lQZTkzSzNlWEVjYk8rTE1UVXVzQUNZR1hHaThxY3hlRy9hdkRoUEUvN0Jmc0kvQUtEdlhHUUJNRXZjbXRlT00vSUl2WmVhMjM2RmZ3RDBScHVyL3lpSEFMQW5GaGNYMzVSYmdKa1VKeXIzaStFR3pZeE4rTGVxcXA2WWUraTFIUDQ5ckprQkFQU1hBTEEvZHVjUllGWTlJbzlzWEgzcjczL0pQZlNhOEE4QTRHb0N3SjZJaytCZHVRV1lWYitVUnpidVZYbUVYaFArQVFBY1RBRFlFMVZWV1FFSXpLeTRXSDllUFRRek51Z3JjYXcvTmZmUVc4SS9BSUREQ1FCN1ltNXVydFVWZ0FzTEM3a0RhSVhiZnplcHFxcWI1Ulo2Uy9nSEFIQmtBc0NlaUF2RFZnUEF3V0NRTzRCV0hKOUhOdWE4UEVKdnBaVE9qRUg0QndCd0JBTEFub2lUNGxZRHdJc3V1aWgzQUpzVHg2ZTM1WmFOV2FxcTZwVGNReS9sOE8reHpRd0FnRU1KQVB2ajhqeTJZbWxwS1hjQW0zYVBQTEl4TDhzajlGSks2VFV4Q1A4QUFJNUNBTmdUSjU1NDR0dHpDekF6NHNMOWtURWMwOHpZZ085V1ZmV1UzRVB2NVBEdjRjME1BSURWQ0FBQm1LYmZ5aU1iODVJOFF1K2tsRjRSZy9BUEFHQUVBa0FBcHVtWDg4ajYxYXYvbnBkNzZKVzg4dTl4elF3QWdMVUlBQUdZaXJpQXJ6K3phNzZac1FGL2xrZm9GYmY5QWdDc253QVFnR201VHg1WnY5MVZWVDBqOTlBYndqOEFnSTBSQUFJd0xUK2RSOWF2RGtHZ1Y0Ui9BREI1VlZXbDNOSnhBa0FBSmk0dTVKOFFnL2VnalZtT0U3SDYrd2U5RWNlTWw4VWcvQU1BMkNBWFh6MGl1UWRtaU50L04rNjhQRUl2cEpUcTI5MmYyTXdBQU5pSVZGVlZidW1ET0lsdTdRZHUzd0UyS281Rnd4ajhFbW9ESEh2cG0zenU0cGVZVE1zWlZsMERYUlB2bmJuYlBBdUp5dUhpQzRDSmloT1NSOGJnL1dkai9pNlAwQXR4dk5oVkQ4ME1BSUNOY2dFR3dLVDlyenl5VGxWVi9WSnVvWGdwcGJmSGNKMW1CZ0JNd3dVWFhQRE8zTkp4QXNBZVdWeGNmRmR1QWFicGwvUEkrbHlZUitpTGUrVVJBSmlTbE5MZTNOSnhBc0IrdVNLUEFOTjBqVHl5UG4rZVJ5aGVYR3k4SmJjQXdIUXQ1WkdPRXdEMlNQNGNIWUNwaWVQUXEzUEwrbHhhVlpVQWtENzU5VHdDQUZNME56ZG5CV0FoQklBOUVoZVBBa0JnMm40bGo2eVA0SlRlU0NrOUtJWmptaGtBTUUzRDRWQUFXQWdCWUkvTXpjMjFHZ0F1TEN6a0RtQmtQNUpIUnJlM3Fxby95RDMwd2MvbUVRQ1lQcmNBRjBJQTJDTnRCNEFBNjVGU2VuNXVXWjgzNUJINjRuWjVCQUNtTE03aHJRQXNoQUN3UjZxcTJwM2JWZ3dHZzl3QmpPVHVlV1FkNHRqOXNOeENYOXc4andEQWxMa0Z1QndDd0I1cCt6TUFCWURBT20zUEk2UDdTQjZoVDY2WFJ3Qmd5bEpLYmdFdWhBQ3dYMXBkQVhqSkpaZmtEbUFrODNsa1JGVlYvVnh1b1UrT3pTUE1nbUVlQVhySkxjRGxFQUQyeUlrbm52ak8zTFppYWNrdkFvRFJ4SW5EbitlVzBWMlVSK2liSy9JSXM4Qm5hQU45NThLL0VBSkFBQ2JoNS9QSTZNN0pJL1ROZC9JSXM4RCtDUFNhRllEbEVBQUNNQW0zeVNPajJWTlYxZk55RDMzejczbUVxWXRqOGN0eUM5QkxIZ0pTRGdFZ0FHT1ZVbnBvYmhuZEcvSUlmZlRKUE1LMFZYa0U2QzBQQVNtSEFCQ0FjWFA3N3pwVlZmV0kzRUx2eFA3Lys3bUZhZnRjSGdGNmF6QVlXQUZZQ0FFZ0FPTjI5end5bW4vSUkvVFpOL01JMC9TbVBBTDAxckhISGlzQUxFU3FLaXZiK3lTbDFPb1AzUDREckNXT083bGpSQStJWTZ0YmdPbTFPRzY4T0lZbk56T1lpbjF4TEQ0bTl3Q2QwdWI1ZHh3TG5jd1hRZ0RZUTIyR2dQWWZZQzBDd0hYNVJoeFhmeVQzMEd0eDdMZ2lobXMyTTVpNFY4WHgrRkc1QitnVUFTQkg0aFpnQUpnZForY1IyTExsK1htRVNmdSs4QS9vS3I5OFp6VldBUGFRRllEQUpEa0pHZG5lT0tZZW0zc2d4UEhqd2hodTM4eGdZazZMNC9GWnVRZm9sTGJQdmVONDZHUytFRllBOXN6T25UdmZsbHVBU2JrMGp4emRXL01JWkhIUlVZZC91NW9aVE1TYmhIOEFsRWdBMkQrNzh3Z3dLZS9OSTBjUkY1ejN5eTF3Z0hodFhDY0dUeUJrRWo0YSs5dDljdzhBUlJFQTlzeHdPUFJiZEdDaTRtTHE0VEVNbXhtcitFd2VnU09JNDBoOWUveWVaZ1pqOFUreG4vMTA3Z0dnT0FMQW5ra3BDUUNCYVhobEhqbUN1T2k4WFc2QlZjVHJaRnNNMzJwbTBLcTN4djcxVTdrSGdDSUpBSHVtN1FCd1lXRWhkd0NyaXd1cng4VHc5ODJNUTV5WlIyQU5jU3k1VVF4LzNjeGcwK3J6NHNmRWZ2V2J6UlFBeWlVQTdKOVdQd053TUJqa0R1RG80Z0xyNTJONGV6TWplMjE4WHg2YmUyQUU4WnI1bGFpNi9lTEtCbGkvK2dUMkwySS91azdVbnpXYkFLQnNBc0NlaVpPY1ZsY0Fmdm5MWDg0ZHdOcmlHSFN2R0I0VjlZMlZEZjMxdGFpSHhmZmpvYzBVV0s5NC9ad1F3LzJqL2pacVg3ME4xbEMvOTd3MDlwMzVxQWMybXdDZ0gxSzgrZVdXUGxoY1hEemxEbmU0dzV2enRCWDJJV0NqVWtyUGorSDZVWDM1aGRSMzQ1ajUrN2tIV2hiSGxNZkY4Qk5SOWVjRlF1M1NxTS9Ic2ZjTnpSU2diUEZlbUx0MnhQR3ozUy9JMUFnQWV5Z09DSzMrME8xREFBQUFNSDBDUUZiakZtQUFBQUFBS0pnQUVBQUFBQUFLSmdBRUFBQUE0Q0J1L3kyTEFCQUFBQUFBQ2lZQUJBQUFBSUNDQ1FBQkFBQUFvR0FDUUFBQUFBQW9tQUN3aDN5UUp3QUFBRUIvQ0FBQkFBQUFPTWppNHVJSGNrc0JCSUFBQUFBQUhDU2x0QyszRkVBQTJFTTdkdXg0YjI0QkFBQUFqbVE1anhSQUFOaERWVlZkbVZzQUFBQ0FJeEVBRmtRQTJFK1g1eEVBQUFEZ1NBU0FCUkVBOWxCS2FWZHVBUUFBQUE1VFZkVlNiaW1BQUxDSFVrcTdjOXVLaFlXRjNBRUFBQUNGMkp0SENpQUE3S0hoY0dnRklBQUFBTENxbEpJVmdBVVJBUGJRM054Y3F3SGdZRERJSFFBQUFGQUlLd0FMSWdEc29mbjVlUUVnQUFBQXNLcXFxZ1NBQlJFQTlsT3Jud0Y0eVNXWDVBNEFBQUFvd2Z6OHZGdUFDeUlBN0tHRmhZVzM1TFlWUzB1T0NRQUFBRkFTS3dETElnQUVBQUFBNENBQ3dMSUlBQUVBQUFBNGxOdjlDaUlBQkFBQUFPQWdLU1VyQUFzaUFBUUFBQURnSUc0Qkxvc0FFQUFBQUlDRGJOMjYxUzNBQlJFQUFnQUFBSENRd1dCZ0JXQkJCSUFBQUFBQUhHUnViazRBV0pCVVZWVnU2WnVVVW1zL2ZQc1JBQUFBVEZkYzUrZHU4K0k2djcwdnh0UlpBUWdBQUFBQUJSTUFBZ0FBQUVEQkJJQTl0Ymk0K01iY0FnQUFBQjNYNXUyL2xFY0EyRk5WVmUzT0xRQUFBQUFGRXdEMlZFcHBWMjRCQUFBQUtKZ0FzS2NHZzBHckt3QVhGaFp5QndBQUFNQXNFUUQyMVB6OC9HVzViY1ZnTU1nZEFBQUFBTE5FQU5oZnJhNEFGQUFDQUFBQXpDWUJZRSsxL1JtQWwxeHlTZTRBQUFBQW1DVUN3SjRhRG9kWDVMWVZTMHRMdVFNQUFBQmdscVNxcW5KTDM2U1VXdjNoMjVjQUFBQmdPdUlhUDNmdGlHdjhkcjhnVTJVRklBQUFBQUFVVEFBSUFBQUFBQVVUQUFJQUFBQkF3UVNBQUFBQUFGQXdBU0FBQUFBQVYvRUFrUElJQUFFQUFBQ2dZQUxBSHBQb0F3QUFBSlJQQUFnQUFBQUFCUk1BQWdBQUFIQ1Z4Y1hGdjhrdGhSQUE5dGlPSFR2ZWwxc0FBQUNBL1pieVNDRUVnRDAySEE2OW9BRUFBSUJEN2MwamhSQUE5bGhLNllyY0FnQUFBT3duQUN5TUFMREhxcXJhbFZzQUFBQ0EvZHd4V0JnQllJK2xsRm9OQUJjV0ZuSUhBQUFBZE5YYzNKd1ZnSVVSQVBaWXZLQ3RBQVFBQUFBT01od09CWUNGRVFEMldGVlZ1M1BiaXNGZ2tEc0FBQUNncStibjU5MENYQmdCWUk4Tmg4TldWd0FLQUFFQUFLRDdyQUFzandDd3grYm41MXNOQUMrNTVKTGNBUUFBQUYxVlZaVUFzREFDd0I0NzhjUVQvekszclZoYXNrSVlBQUFBQ3VBQ3Z6QUNRQUFBQUFDdWtsS3lBckF3QWtBQUFBQUFyaklZREFTQWhSRUFBZ0FBQUhDVnJWdTN1Z1c0TUFKQUFBQUFBSzdpSVNEbEVRQUNBQUFBY0NBckFBc2pBQVFBQUFEZ0tsVlY3Y3N0aFVqeFE4MHRmWlJTYW5VSHNEOEJBQURBNU1YMWZlNDJMNjd0Mi90aXpBUXJBSHZPaXhvQUFBQ2diQUpBQUFBQUFDaVlBQkFBQUFDZ3c5cTgvWmN5Q1FCN2JuRng4VzI1QlFBQUFLQkFBc0NlbTUrZnZ5eTNBQUFBQUJSSUFOaHpnOEZnZDI0QkFBQUFLSkFBc09kU1NydHkyNHFGaFlYY0FRQUFBREFMQklBOVYxVlZxeXNBNCt2bERtQnRLYVVIUjcwcDZwdjFCeGNyZFlUNlJ0UmZSajBvN3piQUpzWHI2VkZSNTBjdFJ4MzZtaXUxTG8xNmJmNFdBRUR2Q0FCN3JxcXFWbGNBTGk4djV3NWdkWEVSOXBxb3ZkRytMdXErVWNmWDIrRUlmaVRxL2xHdnIvZVpxRmV0YkFVMkpGNURuNHloZmgzZEtXcHJ2YTBuZmpqcW9mSHYzeGYxbkdZVEFQU0hBTERuNGdTbzFRRHc0b3N2emgzQTRlS1k4OHlvUGRFK1BPcllsWTB3dW5xZnFWY3VYUm4xOUdZVE1LcDQzVndVdzEyYVdXOGRFMVcvRjcycG1RSkFQd2dBYWZVVzRLV2xwZHdCSEN3dXR2NHBobnJWeGJhVkRiQngxNGg2YnV4VEgyMm13RnJpOWZLQkdHN2V6QWozamUvSlMzSVBBTVZMUHJPTk9QbHBkU2V3VHdHSGl1UE0xMks0U1RPRFZuMGwzbmR1bG50Z0ZYRWN6aDBIaU1OSDVSc0RGS0h0NDd6alkzbXNBQVJnck9KazVIc3hDUDhZbDV2RlB2YmQzQU5IRUsrUituUC9PRng4YTlLSGNnOEFSYk1Da1ByTXh3cEFZQ3ppK1BLdEdHN1V6R0NzTG8zM24vcEQvb0ZEeExFNGR4ekJJSTRkODdrSDZLeTJqL1ZXQUpiSENrQUF4aUpPUWhaakVQNHhLVDhjKzl6NXVRZXllRjJjbTF1T1RQZ0hjQWpoWDVrRWdBQzBMaTQ0LzNjTTI1c1pUTXlkWXQrckh6UURYTzArZVdRVmNkeDRSRzRCb0ZnQ1FBREc0WGZ6Q0pQMmxEeEM3NldVbmg2REo2K3Z6VFVSQU1YelpnZEFxK0tDODdVeEhOdk1ZT0syeFQ3NHF0eEQzejA2anh4RlZWV09HUUFVejBOQVdCRVhTNjN0Q1BZcDZMYzRudXlOUVFESU5DM0ZlOUZ4dVlkZWltUHhLVEdjMTh3NGlpdmllSEhOM0FOMFZoejNjN2Q1Y1Z6MEdZQUZzZ0lRZ05iRWljZnBNUWovbUxiallsOThUTzZocng2WFI0N3VvM2tFZ0tJSkFBRm8wLy9NSTB6YnIrUVIrdXBuODhqUmZUQ1BBR1NMaTR2dnp5MEZFUUFDMEthVDh3alQ5bE41aE41SktaMlRXOVpRVmRXTGNndkExWmJ6U0VFRWdHelpzV1BIZTNJTHNGblh5eU5NMi9YekNIMzBvRHh5ZE4vTEl3QUhFd0FXU0FCSTdjbzhBZ0RRWVNtbHA4VGdJVGlqK1ljOEFuQXdBV0NCQklEVWR1Y1JBSUJ1ZTN3ZVdadlAvd000Z3BUU3Z0eFNFQUVnTlFFZ0FFQVpicFpIMWxCVjFjdHpDOERCOXVhUmdnZ0FxVTkrZHVVV0FJQ09TaWw5T0xlczdkSThBbkM0cFR4U0VBRWdOU3NBQVFDNjd4Znl5TnIrTG84QUhNNEt3QUlKQU5reVB6OS9XVzRCb0JSK3VVV3ZwSlRPelMyamVXOGVBVGpFY0RnVUFCWklBRWg5d3RqcVJkSzJiZHR5QndCVDg0OTVoTDY0Zng1WjI3NnFxdDZRZXdBT2tWSVNBQlpJQU1pVzVlWGxWZ1BBcFNVZkZ3REExSG02SjcwUkYyclBqZUdZWnNZSVBwWkhBSTdNUlgyQkJJQnMyYjU5KzEvbEZnQktNS2lxNms5eUQzM3c2RHd5R3JmL0FoekYzTnljRllBRkVnQUNBS1U1TDQ5UXZKVFNZMlA0b1diR0tLcXFlbUZ1QVRpQ09FNEtBQXNrQUFRQVNqS01rOWI3NVI3NjRIRjVaRFJmeWlNQXEzTUxjSUVFZ0FCQVNWNlJSK2lMMitTUjBid3pqd0NzSXFVa0FDeVFBQkFBS01XL1ZsWDFoTnhEOGVJQzdRTzVaVVJ4akhoU2JnRll4WEE0ZEF0d2dRU0FBRUFKdmg4WDlqK1JlK2lMdStXUjBWeVdSd0NPSXFVa0FDeVFBQkFBNkxvOVZWVmRML2ZRQzNGeDlzWjZhR2FNNkYxNUJPRG8zQUpjSUFFZ0FOQmx1NnVxMnBaNzZKTlQ4c2lJNGxqeHdOd0NjQlR6OC9OV0FCWW94UnRoYnVtN2xGSnJPNFA5Q3ZvcGppTzVnNG1vdzc5cjV4NTZJNDYxWjhkd2FqTmpSTitONDhVTmNnOVFuRGJQdytONDZhUytRRllBQWdCZEpQeWp6eDZTUjBiM3Rqd0NRQzhKQUFHQXJoSCswVnNwcFJmR2NGd3pZMVJ4ekhoVWJnR2dsd1NBck5pNWMrZGY1aFlBWmxuOXdBL2hIMzNtMXQvMSszWWVBYUMzQklEc3R6dVBBRENyUFBDRFhrc3BQUytHSDJ4bXJNTjVlUVFva3MvaFpoUUNRRllNaDhOZHVRV0FXZVMyWDlpeTVYZnl5RHJFc2VPeHVRV0EzaElBc2lLbEpBQUVZRmE1N1pmZWkzTzFzMks0UmpOakhiNmVSd0RvTlFFZ0t3U0FBTXlvT3Z4ejJ5OXMyZktJUExJK3I4c2pBUFNhQUpEOVd2ME13RzNiWEtzQnNHays4dzlDU3VrVE1XeHRacXpETUk0aFQ4czlBUFNhQUpBVmNYTFU2Z3JBcGFXbDNBSEFodmpNUHdncHBTZkg4SlBOakhYNlNCNEJvUGNFZ0t5SWs4c3JjZ3NBMHliOGc2djljUjVadjFmbkVRQjZMOFVKZG03cHU1UlNxenVEZlF2Nko0NGp1WU1ORS81QkZzZlVqOFZ3MTJiR092MUhIRXQrTVBjQVJXdjdIRHlPbjA3cUMyUUZJQUF3SzRSL2tNWEYzT05qRVA1dDNCdnpDQUFFS3dDNWloV0F3R1paQWNnbUNQL2dBSEU4dlR5R2F6VXoxc3Q1S05BblZnQXlDaXNBQVlCcEUvN0JBZUpDN2tNeENQODJiakdQQUVBbUFBUUFwbW1QOEErdWxsSjZhQXkvMk16WW9OZm1FUURJM0FMTVZlS0UweTNBd0thMGZmc0J4YlB5RHc0Ung5RTlNV3hyWm16QTkrTzRjcjNjQS9SQ20rZmdjUXgxUWw4b0t3QUJnR2tRL3NFaDRnTHVYMk1RL20zT2EvSUlBQnpBQ2tBTzB1WXFRUHNXOUk4VmdJeEkrQWVIaU9Qbm0ySzRiek5qZzRaeGJMSEFBZWdkS3dBWmhUZElBR0NTaEg5d2lMaHdlMFFNd3IvTmUyOGVBWUJEQ0FBQmdFa1Ivc0dSblpsSE5pR09ML2ZJTFFBYnRMaTQrTmU1cFRBQ1FLNXl3UVVYdkMrM0FOQTI0UjhjUVVycGl6SDQzTC9OKzB3ZUFkaUV1Ym01cGR4U0dBRWdWNGtUMFBxcGN3RFFOdUVmSEVHY2U3MDVoaE9hR1p2MFoza0VZSFAyNXBIQ0NBQzVTbHljWFpGYkFHakxIdUVmSEM2bDlPZ1k3dFBNMktUdngzSG16M01Qd0NZTWgwTUJZS0VFZ0Z4bGJtN3VzdHdDUUJ2cWxYOXViWVFqczJLdFBhL0lJd0NiSndBc2xBQ1FxNlNVZHVjV0FEYkxiYit3aW56TzVUeThIZld4NWc5ekQ4QW0rUXpBY2pueDRDckQ0WEJYYmdGZ000Ui9zSXFVMHRkajhQcG96emw1QktBRmc4SEFDc0JDQ1FDNWloV0FBTFJBK0FlcmlIT3R4Umh1M014b3dWSWNiMDdQUFFBdGlQY3FBV0NoQklCY0pWN29yYTRBM0xiTnh6NEI5SXp3RDFZUjUxbnZqV0Y3TTZNbDUrWVJnUGE0QmJoUUFrQ3VNajgvMzJvQXVMVGt1QUhRSThJL1dFVks2VTlqK05WbVJrdVc0NWh6YXU0QmFFbThaN21RTDVRQWtLc3NMQ3k4TWJjQXNCNTdoSDl3WkhFaDllZ1lmcmVaMGFLL3lpTUFMWXB6dW4yNXBUQUNRQUJnTStxVmZ6N3pBWTRncFhSYURIL2V6R2pSTUk0Nzk4MDlBTzJ5QXJCUUFrQUFZS09zL0lPak96TXFOUzB0ZW1jZUFXalpjRGowRUpCQ0NRQUJnSTJvd3o4ci8yQVYrVE9VdGpZeldqU0lZOCs5Y2c5QXkrYm01Z1NBaFJJQUFnRHI1YlpmT0lxVVVuM3hkRnd6bzJYbjVCR0E4WEFMY0tFRWdBREFlbmphTHh4RkR2K09iV2EwN1BJNC90U2Zxd2pBbU9UM01Rb2tBQVFBUnVVei8rQW80cUpwVHd6Q3YvSDVzendDTUNiN1FtNHBUSW9UK2R6Q3lvbHJxenVFL1F2NkpZNGh1YU5BVnY3Qkt1TFk5NmdZWGhrMXY3S0JjZmh1SElOdWtIc0FEdERtT1hnY2E1M1FGOG9LUUE3aXhRNEFNTHE0NkhwaURHZEZDZi9HNjhWNUJBQTJRQUFJQUl6aTJpbWxRZFJqOGh4NkwxNFBMNC9oWlZIT3FjZnJrcXFxL25mdUFZQU5jTElDQUl5cVh1RjBaa3JwRDVvcDlGZThEbDRUdytPYkdXUDJuRHdDQUJza0FPUWdpNHVMZjVWYkFEaVMrcU1pbnA5U09yZVpRdi9FL3YraEdCN2V6Qml6ajFkVmRVN3VBWUFORWdCeWtMbTV1VjI1QllDamVVaEs2VzI1aDk2SS9mNmZZdmpGWnNhWVZlSGszQU53QlBHK2xEczRPZ0VnQjRtVHJOMjVCWUMxL0VhY2RDN21Ib29YKy91L3h2QlR6WXdKZUYwZUFZQk5FZ0J5a0txcXJBQUVZRDIycDVTK2wzc29VdXpqajRqYUUrMVBORnVZZ1ArTTg5S0g1QjRBMkNRQklBZUprMXNCSUFEcmRmMTQvNmlmRVB5MFBJZGl4SDU5ZGd5dmp0cTJzb0ZKK2FNOEFnQXRFQUJ5RUFFZ0FCdFVQeUg0QmZFKzhzcG1DdDBYKzNQOXNJOVRteGtUOUlXcXFsNmFld0NnQlFKQUR1VXpBQUhZakVlbmxENlhlK2lzMkkrL0hZT0hmVXhCVlZXM3lpMEEwQklCSUljU0FBS3dXYmROS1YwV2RmODhoODZJL2ZhUlVmWG4vZDJ3MmNLRXZUV1BBRUNMVWxWVnVZVkduUFMydGxOczI3WnR5NVZYWHBsblFPbmkrSkU3dU1wYjQxempOM01QTXkyT1lYOGJ3Mzl2Wmt6QnQrTjRJWGdGV0llMno3L2pPT3lFdmxBQ1FBN1RaZ0JZczQ5QmZ3Z0FXVVg5ZVY1dTZXT214ZkhycXpIY3RKa3hKWStNWThVNXVRZGdCQUpBUnVVV1lBQmczRzRWSjZkN281NlI1ekF6WXI5OFNkUXdXdUhmZEgxSStBY0E0Mk1GSUllSmsyQXJBSUVOaWVOSDdtQlZuNHYzaGR2bUhxWXFqbGxmanVISG14bFR0Q3VPQzlmSlBRRHIwT2I1ZHh5TG5jd1h6QXBBQUdDUzZnZUVMRWU5TU05aDRtTC9PenVxL2cybDhHODIvR0VlQVlBeHNRS1F3K1FUNHRiWXg2QS80dmlST3hqSkorTTk0aTY1aDRtSTQ5UVhZemlobVRFRFBoWEhnVHZuSG9CMWF2UDgyd3JBc2xrQkNBQk15MTNpcEhWZjFJdnlITVltOXJPMzVvc2s0ZC9zMkNmOEE0REpFQUJ5R0trL0FCTjBUTlJUVWtyZmpIcElzd25hRS92VkdWRjdvLzNOWmdzejVQZnpDQUNNbVFBUUFKZ0Z4MGVkbTFMNmY4MFVOaS8ycHkvRjhJU29ZMWMyTUVzK1dGWFZpM01Qd0F4WVhGejhVRzRwa0FBUUFKZ2xQNXRTMmhQbElTRnNXT3cvNTBYVjdTMVdOakJyL3JPcXFydmxIb0FaRWUrZCszSkxnUVNBQU1DczJSYjExRGdKdlZ3UXlIckUvbEkvM2JlK2VEbWwyY0lzcXFycUIzSUx3QXlKNC9NZ3R4UklBTWhoRmhjWDM1MWJBSmltYTBYVlFlQjNvNTdXYklMRDFVRngxT1hSbmhwVmY2NGtzK3VjUEFJd1kvSXYwU2lVQUpERHhJdit5dHdDd0N5NFFkUUw0djNwQzFIM2J6YkJ5am5MNlZIZml2YXBVWFZnekd5N3FLcXFSK1llZ0JsakJXRFpCSUFjU2YwYmRBQ1lOYmVLK3N1VTBpVjE4Tk5zb28vaTUvKzBxRzlIKzlLb0c2MXNaTmJ0alF2TG0rY2VnTmxVUHpXZlFna0FPVXljbk8zS0xRRE1vaCtOZW1sSzZhS29SemViNklQNGVaOGE5WVZvWHhCMXc1V05kTVZ6OHdqQWpJcjNXQUZnd1FTQUhHWnViazRBQ0VBWDFLdUpYaGtucTErTitwMW1FeVdLbisvem83NFQ3ZGxSOVVwUXV1V3ZxNnA2VHU0Qm1GRnhyQllBRmt3QXlKRUlBQUhva3B0R3ZTU2x0QlQxK21ZVEpZaWY1M3VpaHRIK1FkUVByV3lrYXo0ZkY1Uy9rbnNBWnR0U0hpbVFBSkRETEM4djc4NHRBSFRKY1ZFUFNpblZ3ZEdub3g3U2JLWkw0dWQyV3RSaS9YTU12eGJsZkxXN3JxaXE2dGE1QjJER3hYdXZGWUFGYzBMRllkd0NERUFCN2hoMWJweklmakdxWGozR2pJdWYwM09qdmhydFdWSGJWemJTZFUvS0l3QWRFTy9EVmdBV1RBRElZZUpGTHdBRW9CUW5STldmSHplTStrRFVBNXZOeklMNGVUdzQ2c05SVlV5ZkhsWGZ6azBaenEycXFnNXpBZWlJNFhCb0JXREJCSUFjNXFTVFRucGJiZ0dnRlBVNXp5OUgvVVZLNmJLbzE2eHNaU3JpKy8vR3FDdWlmVjNVTDlTYjZ1MFVZMmRWVlc3QkIraVl1Yms1QVdEQkJJQ01YWnpnNXc0QVpzSjFveDVldno5RmZUZnEzR1l6NHhUZjUxZEhmYS8rdm9mN1JWMnpiaWpPOTZxcU9qSDNBSFRJWURBUUFCWk1BQWdBOU5rTm9oNVNoMUpSbDBlOU5lcEJ6Uit4R2ZGOXZIL1VlVkc3b3VwTmo0aTZmdDFRckgxVlZma1pBM1RVMXExYmZRWmd3UVNBQUFDTmEwWDladFRyVS9PWmdSZEV2V0RsVHhoSmZMOWVsTDl2dzVqK1pkUXBVZGVwLzR4ZWVIUWVBZWlncXFxc0FDeVlBQkFBNEhEMU9kSWRvcDZXcmw0ZCtOZFJUMTc1VTFiRTkrTlBvajRXdFMrcTN2U1VxUHI3NWh5emYxNFVGNDZ2emowQUhlUWhJR1Z6Y2dZQXNMWjZkZUN2UkwyNERycWlCbEVYUnRXZmEzZmF5ditpY1BIdmZIVFV1VkdmajZxaTZzMi9GM1hYcUdQcUNiMzE5cXFxNnZBWGdHNXpDM0RCVXJ4WjV4YXVWcC9ZNTdZVjlqUG9oeHdJUUYvdGkvcGkxT2VpUGh2dmZjK3VOM1pSdkphZkZzUHRvbTRiOVYrampvMkNJL2wwN090M3pEMEFFOWJtK2ZmaTR1SjlUanJwcFBQeWxNSUlBRGtpQVNDd0VRSkFPS0w2ZHBxdjVMb2s2c3YxR08rTjU4UTRjZkU2ZldBTXgwZmRKSTgvR25XTHFCK0pndlg0V3V6SDlYNEV3SlMwZWY1OS92bm4zK3VPZDd6ak8vS1V3Z2dBV1ZXYklhRDlEUHBCQUFpYmNublU5NkwrNDRCeE9XcFAxSlZSZzZqTG9nNjBMZW9hVWZYSHVseXYzaERxaDI1c2phcFg3ZTBQK3VwYm1LRk5sOFg1M1hWekQ4Q1V0SG4rSGNkMUovTUZFd0N5S2dFZ3NGNENRSUJldUR6TzdZVEtBRE5BQU1pb1BBUUVBQUFZMVY3aEh3QjBqd0NRSTlxNWMrY2JjZ3NBQUxWaDFNT2FGZ0RvRWdFZ3E5bVZSd0FBcUQyK3FpcS9KQWFBRGhJQWNrU0R3V0IzYmdFQTRJK3Jxam96OXdETUFKKy96WG9JQURtaU9KQllBUWdBUU8xbFZWVTlJL2NBUUFjSkFEbWlPTWtUQUFJQWNGNmNGejR4OXdCQVJ3a0FPYUk0MFhNTE1BQkF2NzB1emdsUHlUMEEwR0VDUUk1b2JtN09Da0FBZ1A1NmZWVlZEODQ5QU5CeEFrQ09LS1YwUlc0QkFPaVhPdng3VU80QmdBS2tlSFBQTFJ3c3BkVHF6bUZmZy9KNUVobEE1LzFGbkxNOU1QY0F6TEMyejczaitPOWt2bUJXQUFJQUFEWGhId0FVU2dBSUFPM2JrMWM5ZjNCbEJqRDczaWI4QTRCeUNRQUJvRjI3NHlKNlc5M0VlTGNZWGxQM0FEUHNyRGhlL1VidUFZQUNDUUFCb0QxMStIZnQzSytJK2NOamVIRXpBNWc1VDR2ajFHbTVCd0FLSlFBRWdIWWNGdjd0Rjl1ZkhNUFQ2blpsQThEMDFjZWpKOGJ4NlFYTkZJQStpL2NERHdBcG5LY0FzeXBQQVFiV3E4ZFBBVjQxL0R0UWZIOGVHc001VVZ0WE5nQk14M0xVSStLNGRXNHpCYUNMMmp6M0ZnQ1dUd0RJVWJVWkF0clhvSHc5RFFCSEN2OE9GTituUFRHc2ZFNGd3SVRWRHlseS9BRW9nQUNROVhBTE1BQnMzTHJEdjFxKytMNnNtUUZNekM3aEh3RDBrd0FRQURhbVhrV3o3dkJ2di9qL1hqZUdielF6Z0xHN05JNDcxOGs5QUJ4azU4NmQ3ODB0aFJJQXNxckZ4Y1cveVMwQUI2dFgvbTE2RlUxOGpSK0o0ZStiR2NEWW5CL0hteC9PUFFBY1pqZ2M3czB0aFJJQXNxcVUwcFc1QmVCcUc3cnRkelh4dFg0K2hsYzNNNERXdlRHT00zZktQUUFjMGZ6OC9GSnVLWlFBa0ZYRnllSVZ1UVdnMFdyNHQxOTh6VWZFY0ZyVXZwVU5BTzE0ZGh4ZjdwZDdBRmhWdkY5WUFWZzRBU0NyU2ludHlpMEFZd3IvOW91dmZWYlVNZEgrUjdNRllNUHFKNDNmTDQ0cHoycW1BSEIwQXNEeUNRQlpWVXBwZDI0QittNnM0ZCtCNHIvemd6SDhjek1EV0xkdnhYRmtXOVFiOHh3QTFoVFgvd0xBd2drQVdkVndPTFFDRUdDVFQvdmRpUGp2L2RjWVB0ak1BRWIyMlRoKzNDajNBREN5d1dBZ0FDeWNBSkJWemMzTkNRQ0J2bXZsYWI4YkVmL2R1OFZ3ZXBUUEJRUkc4ZW80Yml6a0hnRFdKYVhrSVNDRkV3Q3lLcDhCQ1BUY3hHNzdYVTM4OTE4YVZYOHU0TmViTFFDSHFWZHNuQmJIaXZwaFFnQ3dVVllBRms0QXlLb0dnNEhQQUFUNmF1cmgzNEhpNzNMakdON1h6QUN1Y2trY0g0Nk5PaXZQQVdCRHJBQXNud0NRVlczZnZ2MU51UVhvazVrSy8vYUx2OVAvaU9GcFVZT1ZEVURmZlNpT0N6K2Fld0RZRkE4QktaOEFrSW1KQTBydUFHYld4Qi80c1I3eGQzdEIxSHkwMzIyMkFEMTFWaHdMZmpIM0FOQUdLd0FMSndBRWdNYlVIdml4WHZIM3ZFRU03MjltUUk5OE0xNy85VEhndER3SGdGYkVlNHNWZ0lVVEFBTEFqSy84TzVMNCs5NDlobWRGZVVvdzlNTS94T3YrK053RFFLc0dnNEVBc0hBQ1FBRDZyak1yL3c0VmYrOW5SOVZQQ2Y1VXN3VW9VSDFCZG5xODFuK21tUUpBKytibTVnU0FoUk1BQXRCbk0vbkFqL1dLZjhPZFk2Z2ZFT0xFRGNyeWhYaDkxMC81ZldtZUE4QzQrQXpBd2drQUFlaXJJc0svL2VMZlVqOGc1TmhvRjVzdFFNZWRFYS9wVytVZUFNWnFPQno2V0puQ3BUaXh5QzBjTHFYVTZnNWlmNE95ZGVocDMvVm4vblh5dHQ5UnhNL2gvOFR3eENpLzZJUHUrVTdVRStJWTlaZk5GQUNPck0xejczamY2Y3lKUEJzakFHUk5iWWFBOWpjb1cwY0N3S0xEdndQRnorUGZZN2hsTXdNNjRFMXhmTHB2N2dIZ3FBU0FySWVWQVFEMFNXY2YrTEVSOFcrdHc3L1RvM2F2YkFCbTFSZmo5VnEvWm9WL0FNQllDQUFCYU5NVmVaeEY5Y3EvWWo3emIxVHhiMzVwL25mL1hiTUZtQ0gxclJIbnhHdjBoR1lLQURBZUFrQ09hdWZPbmVmbEZtQVVIOC9qck9uVnlyOGppWC8vTDBYVjdjVXJHNEJwKzVkNFRkWWZ4L1BJUEFjQUdCc0JJR3R4Mnhpd0hyTzR5cXlYSy85V0U5K0xINHZoRlZHRGxRM0FwTzJOZW1HOEZtL1RUQUVBeGs4QXlGRU5oME1CSURDeXVLQjlYZ3pEWmpZVGV2UEFqL1dJNzhuam91YWovVlN6QlppUTk4ZHI3OWlvcCtZNUFHeElSeDYreHd3UkFISlVjVkRabFZ1QVViMHJqOU1tL0Z0RGZIL3VITU9qb3I2K3NnRVlsNHZqOVZhLzV1NmU1d0FBRXlVQVpDMENRR0JkNGdMMzEyT1k5aXBBNGQrSTR2djBxcWdiUi91c0tLdStvVjE3b3Y0NFhtUDFyZmNBQUZNakFPU280b1RWeFNDd0VhL0o0elFJL3pZZ3ZtZlBqcW8vSy9HVlVjc3JHNEhOZUU5OUxJcDZScDREQUV5TkFKQ2pjZ3N3c0JGeHdWcy8xZkxmbXRsRUNmODJLYjUvajQ3YUd1MDdteTNBT24weVhrUDFhK25YOGh3QVlPb0VnS3pGQ2tCZ1ErTGk5Ny9FY0Zrem13amhYNHZpZTNuUE9zUUluMXpaQUt6bDgvVnJKdW91ZVE0QU1ETlNQcm1IVmFXVVd0dEo3Ry9RUDNFTXFUOERhOXpCblBCdnpPTG51Q09HazVvWmNJQ3ZSdFczMEwrcW1RTEErTVc1V2U3YUVlOWpIaXRjT0NzQW1haTJEMUxBN012QjNIZWIyVmg4Ui9nM2Z2RTlQaW1xYnQrenNnSDRadFJwOGJxNGFaVHdEd0NZYVFKQUFNWXVMbzV2RU1PL043TldmVEcrOWcvbG5nbUk3L2V2UmRYdFIxWTJRUDk4SitxWjhUbzRQdXFzWmhNQXdHd1RBQUl3RVhHaGZNc1lYbHUzS3hzMnAvNGFyNG12ZVVJelpkTGllLzl6VVhYN3ZwVU5VTDc2VnQ4bnhYNy9RMUhQYVRZQlFQZkYrNXBiOVhyQVp3Q3lwalkvQTdCbW53UGl1UExlR0g2bGJsYzJqSzQrZ0x3bmppUDNhS2JNaXZpWnZpT0cveFhsbDR1VTVsK2pYaFRIblhPYUtRQk1YNXNmcnlVQTdBY0JJR3NTQUFMakVzZVhaOGJ3YTFGM2pKcXZ0eDNCSU9wVFVYWHc5OXlWTGN5cytKbitueGdlSG5XOWxRM1FYWXRSTDRqanpwdWJLUURNRGdFZzZ5VUFaRTBDUUFEV0s5NDdIaHZENDZOdXZiSUJ1cUgraGNPNzQxemwxNXNwQU13bUFTRHJKUUJrSkcyR2dQWTVnSDZKOTVEWHgzRGZxR05XTnNEc3FUL2Y3eFZ4anZLQ1pnb0FzMDBBeUhyNW5CNEFZS3ppcFBKQlVYWDQ5N0tvNzY5c2hObXdJK3FSc1gvZVZQZ0hRRi90MkxIajczSkx3UVNBQU1CRVZGWDF4S2o2c3dFZkhQWGhlbE85SFNac1Q5UWJZMStzOThtVG9qemNBNEJlaS9mQytpTXdLSndBRUFDWXFEakpmRjNVTDBUVnQ1dWNIdldabFQrQThhbkQ1ZzlHblJMNzNiYW8rNjFzQlFEcTI0bjM1WmFDQ1FCWjArTGk0cnR6Q3dDdHFxcnFwVkczaTZxblowZnRxaHRveVVWUlQ0djlxLzdjNjd0Rm5kZHNCZ0FPc0p4SENpWUFaQlJYNWhFQXhxYXFxbE9qcmhOdC9RVGhmNHdhMXR0aG5lcGJmTjhlKzFLOVQ5MDh5bWY3QWNEUkNRQjdRQURJbWxKS3UzTUxBR05YVmRXWlVmOHRxajVQT1NXcWZvcXc5eUtPNXB0Ulo4UStVKzgvOVMyKzkybzJBd0JyaWZkTnR3RDNnQUNRVVZ5V1J3Q1lxRGdoUFMrcWZvcnd0YVBxVGZWdHd0K3FHM3J2aTFFdnJQZUxxT09qbnRCc0JnRFdJNlcwTjdjVVRBREltcXdBQkdCV1ZNMXR3amVxUTUvdzJpaGhZTDk4TnVyRjljOC82b1NvcHphYkFZQ05HZzZIUzdtbFlBSkExaFFuMXo2UUhZQ1pFKzlQRDQzYUh3YWVGdldXS0t2V3kvSzFxSHJWWi8zMDN2cG52aEQxNUpVL0FRQmFZUVZnUHdnQVdWTWNEQVNBQU15MHFxck9pcnAzMUhXajZrMHZpL3FYdXFGVDZnZS9uQi8xM1BybkdIV1RxSHJWcDZmM0FzRDRXQUhZQXdKQVJ1RVdZQUE2cGFxcUowYmRKcXFlUGpMcWRWRmZxUCtvM3NETXFGZHN2ai9xMmZYUEttb3U2azVSVDEvNVV3Qmc3T2JtNXF3QTdBRUJJR3NhRG9kV0FBTFFXVlZWblJQMTRLaGJSYVdvZXZOem92NDI2dnYxaEltb3YvR2ZqNm8vdS9HMCt1Y1FWYS9Zdkh2VXMrci9BUUF3RlZZQTlzRCtrMkE0cXBSU3F6dUsvUTZBV1JMdmN3K1A0ZVNvTzBUZEp1cGFVV3pjRlZIMUF6dDJSRjBZNy91dnFEY0NBTzJJYzVmY2JkN09uVHVmZnZ2YjMvNTVlVXFoQklDTVJBQUlRQi9GKzk4ZnhIQzdxTnRHM1RycTJDaXVWcThZK0xlb0wwYjljOVRPZUk5L2M0d0F3QmkxR1FCKyt0T2Zmc29kN25DSFA4bFRDaVVBWkNRQ1FBQm94SHZpS1RIOFJOU1BSdDBzNnNkeWYrMm9FdFdmQy9TbHFEcmtXNmw0SC8vekdBR0FLV2t6QUZ4Y1hEejlwSk5PcWgrZ1JzRUVnSXhFQUFnQW80djN6Y2ZIVUllQ040bTYvaEZxRnZ4blZQMFppRitMK21ZZUw0MzZhcnhQMTUvVEJ3RE1xSllEd044KzZhU1RYcG1uRkVvQXlFZ0VnQUF3UHZFKys2QVlydG5NdGx3M2FqNVgzZGZxUHp1dWFROVNQNmhydVdtM1hCbTFwMm0zN0l1cW43RDcvWGpQUFc5bEN3QlFqRFlEd0IwN2Rqeml4Qk5QZkUyZVVpZ0JJQ01SQUFJQUFNQnNhRE1Bdk9DQ0N4NjBmZnYydjhoVENqV1hSd0FBQUFCNjVwaGpqcWtmNmtYaEJJQUFBQUFBUFRVWURPb0hmbEU0dHdBenNqWnZBN2JmQVFBQXdNYTBlUXR3WEorMzk4V1lXVllBQWdBQUFFREJCSUNNWk9mT25lL01MUUFBQUFBZElnQmtKTVBoY0ZkdUFRQUFBT2dRQVNBalNTa0pBQUVBQUFBNlNBRElxSGJuRVFBQUFKaVNOaDhBUW44SUFCbEpWVlZXQUFJQUFBQjBrQUNRa2JnRkdBQUFBS0NiQklDTXBLb3F0d0FEQUFBQWRKQUFrSkY0Q2pBQUFBQkFONldxcW5JTFI1ZFNhbTFuc2Q4QkFBREErclg5RUpDNFB2ZFVrUjZ3QXBDcDhOUWlBQUFBZ01rUUFBSUFBQUJBd1FTQUFBQUFBRkF3QVNBQUFBQUFGRXdBQ0FBQUFBQUZFd0FDQUFBQTlKQW5BUGVIQUJBQUFBQUFDaVlBWkdSK013QUFBQURRUFFKQUFBQUFBQ2lZQUJBQUFBQ2doM2J1M1BtZTNGSTRBU0FqMjdGangxL25GZ0FBQU9pK3ZYbWtjQUpBMW1OUEhnRUFBSUNPR3c2SEFzQ2VFQUN5SHBmbkVRQUFBT2k0cXFvRWdEMGhBR1E5ZHVVUkFBQUE2TGlVa2dDd0p3U0FqS3lxcXQyNUJRQUFBTHB2S1k4VVRnREl5T2JtNXF3QUJBQUFnRUpZQWRnZkFrQkdWbFdWQUJBQUFBQUs0VE1BKzBNQXlIcTRCUmdBQUFBS01UOC83eGJnbmhBQU1yS1VraFdBQUFBQVVJamw1V1VyQUh0Q0FNaklUanp4eERmbnRoVXBwZHdCQUFBQVV5QUE3QWtCSUFBQUFFQVBwWlRjQXR3VEFrQUFBQUNBSHBxYm14TUE5b1FBRUFBQUFLQ0hQQVc0UHdTQUFBQUFBRDJVVWhJQTlvUUFFQUFBQUtDSDlvYmNVamdCSUFBQUFFQVB6Yy9QNzhzdGhVdFZWZVVXMXBaU2FuV0hzZjhCQUFEQTZPSzZQSGViRjlmazdYMHhacG9WZ0t5TGd3TUFBQUJBdHdnQUFRQUFBS0JnQWtBQUFBQUFLSmdBa0hXNThNSUwzNXhiQUFBQUFEcEFBTWg2N2M0akFBQUFBQjBnQUdSZGhzUGhydHdDQUFBQUU5VG1FNERwRndFZzYxSlZsUUFRQUFBQW9FTUVnS3pML1B5OFc0QUJBQUFBT2tRQXlMcnMyN2RQQUFnQUFBRFFJUUpBMXNVdHdBQUFBQURkSWdCa1hkd0NEQUFBQU5BdHFhcXEzTUpvVWtxdDdqVDJRUUFBQUZoYjIwOEJqdXR4anhYdUNTc0FBUUFBQUtCZ0FrQUFBQUFBS0pnQUVBQUFBS0JuM1A3Ykx3SkFBQUFBQUNpWUFCQUFBQUFBQ2lZQUJBQUFBSUNDQ1FCWk41OFRBQUFBQU5BZEFrQUFBQUNBbmxsY1hQeTczTklEQWtBQUFBQ0FucW1xYXBCYmVrQUFDQUFBQU5BLysvSklEd2dBV2JjTExyamczYmtGQUFBQU91Z09kN2pEcithV0hoQUFzbTV4a0xoSGJnRUFBSUFPdXVDQ0M5NmFXM3BBQU1pNnhVSGkxYmtGQUFBQXVza3R3RDBpQUdUZHFxcmFsVnNBQUFDZ2crTGFmbTl1NlFFQklPc1dCNG5kdVFVQUFBQTY2STUzdk9PRGMwc1BDQUJadDdtNU9Tc0FBUUFBb01QT1AvLzhNM05MRHdnQVdiZmw1ZVZXVndDbWxISUhBQUFBVEloYmdIdEVBTWhHV0FFSUFBQUFIZVl6QVB0RkFNaTZEUWFEeTNNTEFBQUFkSkFBc0Y4RWdLemJYZTk2MTdmbUZnQUFBT2dtQVdDUENBQUJBQUFBK21jcGovU0FBQkFBQUFDZ1o1YVhsL2ZsbGg0UUFBSUFBQUQwVEVySkxjQTlJZ0JrSnB4d3dnbTVBd0FBQU1adE1CZ0lBSHRFQU1oTVNDbmxEZ0FBQUJpM3ViazVBV0NQQ0FDWkNWVlY1UTRBQUFBWXQrWGxaUUZnandnQW1Ra0NRQUFBQUppYzVlVmxUd0h1a1NSNFlhTlNTcTN0UExlODVTMjMvTnUvL1Z1ZUFRQUFBSWRxOCtPenFxcnlXVnc5SWdCa3c5b01BTzJIQUFBQWNIUUNRRGJLTGNBQUFBQUFVREFCSUFBQUFBQVVUQUFJQUFBQUFBVVRBQUlBQUFCQXdRU0FBQUFBQUZBd0FTQWI4dUVQZi9qM2Nnc0FBQURBREJNQXNpR0R3V0JQYmdFQUFBQ1lZUUpBTm1UUG5qM2Z5QzBBQUFBd1ppbWwzTUg2cGFxcWNndnJFd2VmMW5ZZSt5RUFBQUNzcnUwQU1LN0RKWW85WWdVZ004RnZNZ0FBQUFER1F3QUlBQUFBQUFVVEFMSmhsZ3NEQUFCQTk3aWU3eDhCSUFBQUFBQVVUQUFJQUFBQU1NTjhiajZiSlFCa1pqaWdBUUFBd1BpOSs5M3Zma1J1NlFrQklCdjIzdmUrOXdHNUJRQUFBRHJpSHZlNHg2dHpTMCtrcXFweUMrdVhVbXAxQjdJL0FnQUF3TUhhdm1QT1EwRDZ4d3BBWm9yYmdBRUFBT0Jxd2ovYUlBQmtVeHc0QUFBQUFHYWJBSkJOZWRlNzNuVnFibHRqRlNBQUFBQzRQcVk5UGdPUVRZc0RVdXM3a2YwU0FBQ0F2aHRIQU9oT3ZuNnlBcEJOYy9BQUFBQ0EyZWY2dmI4RWdBQUFBQUF6cEY3NU40N1ZmMjk4NHh0UHlTMDk0eFpnV2pHTzI0QnI5azhBQUFENlpoemhYODBLd1A2eUFwQldqT3NnTXE2REhnQUFBTXdpNFIvaklBQms1Z2tCQVFBQTZBUFh2NHlMQUpEVytHMENBQUFBYk13NHd6L1g2d2dBNllUNlFPZzNJUUFBQUpUSTlTN2pKZ0NrVmVQK3JZS0RJZ0FBQUNVWjkzV3UxWC9VQklCMGpoQVFBQUNBRXJpK1pWSlNWVlc1aGZiRVFXenNPNVo5RndBQWdDNmFWUEJuOVIvN1dRRklaOVVIVEw4dEFRQUFvRXRjeHpJTlZnQXlOcE5ZQlhnZyt6SUFBQUN6YXRMQm45Vi9IRWdBeUZoTk9nU3MyYWNCQUFDWUZkTlk4U2Y4NDFBQ1FNWnFHZ0hnb2V6akFBQUFUTW8wQXI5RENRQTVsQUNRc1p1RkVCQUFBQUQ2UVBqSGtYZ0lDR1BuNEFNQUFBRGo1L3FiMVFnQW1RZ0hJUUFBQUJnZjE5MGNqUUFRQUFBQW9NT0VmNnhGQU1qRU9DQUJBQUFBVEo0QWtJa1NBZ0lBQUVCN1hHY3pDZ0VnRS9lTVp6emovcmtGQUFBQU5xQU8vb1IvaktyZVdYSUxrNVZTc3ZNQkFBREFPZ24rV0M4QklGTW5DQVFBQUlEUkNQL1lDTGNBTTNVT1hnQUFBTEEyMTg5c2xBQ1FtZUFnQmdBQUFLdHozY3htQ0FDWkdiLzkyNzk5ZndjMEFBQUF1RnA5bmV4YW1jM3lHWURNSko4TENBQUFRTjhKL21pTEZZRE1wTWM5N25FUGNxQURBQUNnajZ6Nm8yMENRR2JTeTEvKzhyK29Sd2M5QUFBQStxSysvbjN5azUvOG9EeUYxcmdGbUU1eGF6QUFBQUNsc2ZDRmNiTUNrRTU1MHBPZTlCZ0hSZ0FBQUVwUVg5OCs3R0VQZTBDZXd0aFlBVWpuV1JVSUFBQkFWMWpVd2pRSUFDbU9RQkFBQUlCWklmQmpGcmdGbU9MYys5NzNYbm1DOElHVi93Z0FBQURHNHREcjBQMlYveGltcXQ0WmN3c0FBQURBMGR6em52ZThUMHBweXp2ZThZNDM1MDB3OHdTQUFBQUFBRkF3dHdBREFBQUFRTUVFZ0FBQUFBQlFNQUVnQUFBQUFCUk1BQWdBQUFBQUJSTUFBZ0FBQUVEQkJJQUFBQUFBVURBQklBQUFBQUFVVEFBSUFBQUFBQVVUQUFJQUFBQkF3UVNBQUFBQUFGQXdBU0FBQUFBQUZFd0FDQUFBQUFBRkV3QUNBQUFBUU1FRWdBQUFBQUJRTUFFZ0FBQUFBQlJNQUFnQUFBQUFCUk1BQWdBQUFFREJCSUFBQUFBQVVEQUJJQUFBQUFBVVRBQUlBQUFBQUFVVEFBSUFBQUJBd1FTQUFBQUFBRkF3QVNBQUFBQUFGRXdBQ0FBQUFBQUZFd0FDQUFBQVFNRUVnQUFBQUFCUU1BRWdBQUFBQUJSTUFBZ0FBQUFBQlJNQUFnQUFBRURCQklBQUFBQUFVREFCSUFBQUFBQVVUQUFJQUFBQUFBVVRBQUlBQUFCQXdRU0FBQUFBQUZBd0FTQUFBQUFBRkV3QUNBQUFBQUFGRXdBQ0FBQUFRTUVFZ0FBQUFBQlFNQUVnQUFBQUFCUk1BQWdBQUFBQUJSTUFBZ0FBQUVEQkJJQUFBQUFBVURBQklBQUFBQUFVVEFBSUFBQUFBQVVUQUFJQUFBQkF3UVNBQUFBQUFGQXdBU0FBQUFBQUZFd0FDQUFBQUFBRkV3QUNBQUFBUU1FRWdBQUFBQUJRTUFFZ0FBQUFBQlJNQUFnQUFBQUFCUk1BQWdBQUFFREJCSUFBQUFBQVVEQUJJQUFBQUFBVVRBQUlBQUFBQUFVVEFBSUFBQUJBd1FTQUFBQUFBRkF3QVNBQUFBQUFGRXdBQ0FBQUFBQUZFd0FDQUFBQVFNRUVnQUFBQUFCUU1BRWdBQUFBQUJSTUFBZ0FBQUFBQlJNQUFnQUFBRURCQklBQUFBQUFVS3d0Vy80L1FNRFZ4UTdNRUdRQUFBQUFTVVZPUks1Q1lJST1cIiIsImV4cG9ydCBkZWZhdWx0IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUJRQUFBQU5xQ0FZQUFBRFNXK2J4QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBR1JlU1VSQlZIaGU3ZDBKK0dSWlhSLzh2djkvejB3enJMSW9SbHd3a2tla1pSaFFoUGRWMytnYjM1Z29HcU1naWhvMk1Td3Fzb2k3dUVVVU1DSVpqY3FpSmdnb29ySUVFNHhFSVEvN2RQZUltcWh4WUVBQkJSUm02KzFmOS8zZHFsOFAzVDI5L0pkYlZmZWM4L2s4ejMzTzcxUVB6VXpWclhQUC9kWTVWVjNmOS9zQXpxWHJPZ01Fc0NjeHoraXlCQUFBMWtRQUNJMFQ4Z0hySUJnRUFJRFZFUUJDWXdSK3dGUUpCUUVBWURrRWdOQUFvUjlRRWtFZ0FBQ01Td0FJbFJMNkFUVVFCZ0lBd041dFpBdFVZZ2oraEg5QUxVNGYwMzcxVjMvMVlmTUhBUUNBSGJFQ0VDb2g5QU5hWUVVZ0FBRHNuQUFRQ2lmNEExb2tDQVFBZ08wVEFFTEJoSDlBNndTQkFBQndjUUpBS0pEZ0QrRGpoSUFBQUhCaGZnUUVDaVA4QXppVGNSRUFBQzdNQ2tBb2lKdGNnQXV6R2hBQUFHNU5BQWdGRVB3QmJKOFFFQUFBem1RTE1FeWM4QTlnWjR5YkFBQndKZ0VnVE5Uem52ZThiM0FUQzdBN3hrOEFBUGc0VzRCaGdxNjY2cXFIUCtsSlQzcHBkZ0hZSmR1QkFRQkFBQWlUWk9VS3dIaUVnQUFBdE00V1lKZ1k0Ui9BdUl5ckFBQzB6Z3BBbUJBM3FYVzUvUExMOTkzdWRyZkwzbkxFT1pNVnJOZjExMSsvNzZhYmJzcmVORmtKQ0FCQXF3U0FNQ0hyRGdEdmRyZTc3ZnZidi8zYjdBR001KzUzdi91K0QzN3dnOWxiSHlFZ0FBQXRFZ0RDUkt3ai9Mdmtra3YySFQ5K1BIc0FxL0Vabi9FWit6N3dnUS9zTzNic1dENnlPZ0pBQUFCYTVEc0FZYzJ1dXVxcXIxdDErRGNFLzhNaC9BUFc0ZDN2ZnZlK28wZVAzaklXclpLdldnQUFvRVZXQU1LYXJmSm0xUHNkbUxJWUQ3TmF2aGdQclFRRUFLQVpWZ0JDQXc0Y09DRDhBeVp2R0tlTVZRQUFNRDRyQUdHTlZySDZ6M3NjS05IKy9mdjNiVzF0Wlc4NVlueTBDaEFBZ0NZSUFHR05saGtBZW04RE5WajJ0bUFoSUFBQUxiQUZHTlpFK0Fkd2NjWXpBQURZT3dFZ3JJSHdEMkQ3THJua2txekd0NHF2WWdBQWdIVVRBRUpGaEg5QWpZNGZQNzd2c3NzdXl4NEFBTEJUdmdNUVZteFpxMDI4bDRIYURTc0JUNTQ4bWIxeHhSanF1d0FCQUtpV0FCQldiQmtCb1BjeDBKSVlSN01handBUUFJQ2EyUUlNaGR1L2YzOVdBRzFZeG9jZXZnc1FBSUNhV1FFSUsyVDFIOEE0ckFJRUFJRHRzd0lRQ2liOEExcGxGU0FBQUd5ZkFCQldaT3diUzF0L2dkYjVFQVFBQUxaSEFBZ3I4TXUvL010Zm0rVm9UcHc0a1JVQUFBREErZmtPUUZpUk1WY0FYbmJaWmZ1T0hqMmFQWUMyamZsOWdMNEhFQUNBR2drQVlRWEczdjdyZlF2d2NXTUdnQU1oSUFBQXRiRUZHQXJqdS84QXpuUzN1OTB0S3dBQTRGeXNBSVFWR0hNRm9QY3N3SzNaQmd3QUFPZG5CU0FBd0duRy90b0dBQUJZTndFZ0ZHVDQ4UThBYnMzcWFBQUFPRDliZ0dISmJQOEZXQTNiZ0FFQTROeXNBQVFBQUFDQWlna0FBWUFxK0pWMEFBQTROd0VnRk9JT2Q3aERWZ0NjeThtVEo3TUNBQUJPSndDRVF0ejk3bmZQQ2dBQUFHRDcvQWdJTE5sWVB3TGl2UXB3Y1dQOUVJZ2ZBUUVBb0NaV0FBSUFBQUJBeFFTQUFBQUFBRkF4QVNBQUFBQUFWRXdBQ0FBQUFBQVZFd0FDQUFBQVFNVUVnQUFBQUFCUU1RRWdBQUFBQUZSTUFBZ0FBQUFBRlJNQUFnQUFBRURGQklBQUFBQUFVREVCSUFBQUFBQlVUQUFJQUFBQUFCVVRBQUlBQUFCQXhRU0FBQUFBQUZBeEFTQUFBQUFBVkV3QUNBQUFBQUFWRXdBQ0FBQUFRTVVFZ0FBQUFBQlFNUUVnQUFBQUFGUk1BQWdBQUFBQUZSTUFBZ0FBQUVERkJJQUFBQUFBVURFQklBQUFBQUJVVEFBSUFBQUFBQlVUQUFJQUFBQkF4UVNBQUFBQUFGQXhBU0FBQUFBQVZFd0FDQUFBQUFBVkV3QUNBQUFBUU1VRWdBQUFBQUJRTVFFZ0FBQUFBRlJNQUFnQUFBQUFGUk1BQWdBQUFFREZCSUFBQUdmcHVxN1BFZ0FBaXRmMXZma3RMTk5ZTjVIZXF3QVhGMk51VmdCQXkrTCt5YVFBVGlNQWhDVWFjd1dKOXlyQXhRa0FBWUR6RVFyU01nRWdqR1RaMjhXOFZ3RXVUZ0FJQUd5SE1KRFdDQUJoRDVZZCtwM09leFhnNGdTQUFNQk9DUU5wZ1FBUWRtaVZvZC9wdkZjQkxrNEFDQURzbGlDUW12a1ZZTmltSWZoYlYvZ0hBQURBY3Jubm8yWUNRTGdJRndFQUFJQjJ1QWVrUmdKQU9BK0RQZ0FBUUx0TzNSTmVkZFZWajhpSG9GaStBeERPTXRYUXozc1Y0T0ppRE04S0FHQTh2aCtRMGxrQkNLZXg0ZzhBQUlDenVWZWtkQUpBbXZkelAvZHpEeDhHY3dNNkFBQUE1K08ra1pMWkFrenpTaG5BdlZjQkxpN0c5S3dBQUpiSGxtQktZd1VnVGZQcERRQUFBRHZsWHBMU0NBQnBsZ0ViQUFDQTNYSlBTVWtFZ0RSbkdLUU4xQUFBQU95VmUwdEtJUUNrS1FabkFBQUF4dVEra3hJSUFHbUdRUmtBQUlCbGNML0oxUGtWWUpwUitvRHN2UW9BQUhDbXVNL0xhaHI4T2pCVFpRVWdUWmhDK0hmbk85OTUzMmQvOW1mUGc3emRIQUFBQUp4cHVGZTYxNzN1dFcvLy92MzV5SHBaQ2NoVVdRRkk5ZFkxQUgvaUozN2l2ZzkrOElQWkF3QUFZRlV1dmZUU2ZTZE9uTWplNnZWV0FqSXhBa0NxdHVydzcvTExMOTkzNDQwM1pnOEFBSUIxV3RjV1lRRWdVeU1BcEZxckRQKzhqd0FBQUtackhTc0NoWUJNaWU4QWhEMFlnai9oSHdBQXdMUWRQMzU4ZnUrMnl1OEtIQmFsUFAvNXovKzY3TUphV1FGSWxaYTkrbTl6YzNQZnlaTW5zd2NBQUVCSlZyazEyRXBBcHNBS1FLcXo3UEJ2Q00yRmZ3QUFBT1VhN3VzT0hEaVFQYWlmRllCVVo1a0JvUGNMQUFCQVhWYXhHdEFxUU5iTkNrQ3E4WnpuUE9maHl3ei9WdmxkRVFBQUFLeUdoUjYwd0FwQXFyS3NBSEFJLzFiOWkxRUFBQUNzenJKWEFsb0Z5RHBaQVVnMWxoWCtYWExKSmNJL0FBQ0F5bGtnUmMyc0FLUWF5d29BdlVjQUFBRGFzY3lWZ0ZZQnNpNVdBRks4bi83cG4zNm84QThBQUlBeERQZUI3Z1dwalJXQVZHSHNBUEMydDczdHZodHV1Q0Y3QUFBQXRHZ1pxd0d0QW1RZEJJQVViK3p3YjNOemM5L0preWV6QndBQVFLc0VnTlRDRm1BNGkvQVBBQUNBZ1VWVDFFSUFTTkhHWHYxMzJXV1haUVVBQUFENzlsMTY2YVZaaldQcysxallEbHVBS2RyWUE2ZjNBd0FBQUdjYmV5dXdiY0NzbWhXQWtLeitBd0FBNEZ6R1hnVUlxMllGSUVVYmN3V2c5d0lBQUFEbk0rWXFRQ3NBV1RVckFDbVc3MDBBQUFBQXVEZ0JJRVg2N3UvKzdvZG5PWXA3M09NZVdRRUFBQURVeFJaZ2ltWDdMd0FBQUt0aUN6QWxzd0lRd2ozdmVjK3NBQUFBQU9waUJTREZzZ0lRQUFDQVZSbHpCZURBS2tCV3lRcEFpdVFIUUFBQUFBQzJSd0FJQUFBQUFCVVRBQUlBQUFDc21KMXRySklBa09JOCtjbFBmbXlXQUFBQVVLd2hCRHo5eUlmM3ZlMXRiM3ZHTzk3eGpxL09MdXlaSHdHaFNHTi9VdUo5QUFBQXdJWEVmV2hXcXpYOFdNaVJJMGVlZGNVVlYzeFBQZ1E3WmdVZ3hYbmM0eDVuMEFNQUFLQUp3d0tZKzkzdmZzODR0VXJ3N1c5LysxWDVSN0J0VmdCU3BMRlhBQUlBQUVCSmhwV0JmL0luZi9KdDk3blBmWDR4SDRMenNnS1FwVHR5NU1nMy92RWYvL0VacS9aT2ZYS3gyeVAvR2dBQUFHalNjRzk4OE9EQi96aTBiMzNyVzc4L0g0WnpzZ0tRMFIwNmRPaEhyN3p5eWg4UzFBRUFBTURxdlAzdGIvLyt6L3U4ei90MzJZVmJDQURaczNlOTYxMFBQWGp3NEc4Sy9BQUFBR0M5aHEzQmIzN3ptLy8xZ3gvODRGZm1ReUFBWlBmZSt0YTMvc3lESHZTZzc4b3VBQUFBTUJGREVKZ2wrQTVBZHU3cXE2Lys5V0cxbi9BUEFBQUFwbW00YngrT3Q3Lzk3ZCtZRDlFd0t3RFpFZHQ4QVFBQW9DenZlTWM3cm5yQUF4N3dwT3pTSUFFZzJ5TDRBd0FBZ0hMWkV0dzJXNEE1cjBPSER2M3dxU1hEK1JBQUFBQlFJUGYzYmJNQ2tQTXlNQUFBQUVCOTN2S1d0M3p0RjN6QkYvaVY0SVpZQWNnWjN2em1OMys3VHdVQUFBQ2dYZzk2MElOKzY2MXZmZXZEc2tzRHJBRGtESUkvQUFBQWFNT2IzL3ptaHo3b1FROTZSWGFwbUFDUVd3ai9BQUFBb0MxK0hLUU5Ba0FFZndBQUFOQXdJV0Q5ZkFkZzQ0Ui9BQUFBMERiWlFQMEVnQTN6QmdjQUFBQ29ueTNBalJMK0FRQUF3UFpjZHRsbCsrNXhqM3RrNzl6aVBudmYvdjM3OTIxdGJRMWJhdlBSYzN2dmU5Kzc3OWl4WTltYkRsdUI2eVVBYkpEd0R3QUF5cmJkTUdJN2hzQmlUQnNiRjk5b052eTd2ZXRkNzVyWEJ3OGVuTGZuY3VxZmdWYmM1amEzMlhmMDZOSHNyWWNRc0U0Q3dBWUpBQUdBd2VrQnd2dmU5NzV6cmtRWS9wbFAvZFJQemQ3NWJUZEEyRWt3Y0tGUVlDQVlBS0JtdDd2ZDdmYmRlT09OMlZzdElXQjlCSUNORWY0QjY3Q2RWUXFEN1FZRDIvbm5OamMzczlvN0lRTUFBT3MweklGWFNRQllId0ZnUTRSL3l6SDJ5b2p0aEJiQ0NBQUFnUGFzTWdnVUF0WkZBTmlJS1lSL3pqVUFBQURZbTl2ZTlyYjdicnJwcHV3dGp3Q3dMaGZmUTBYeDFoWCtIVGh3WUI3Nm5Ub0FBQUNBdlJtK0YzQVY5OWhEbHZDR043emgzMlNYd2xrQjJJQlZCNERPS1FBQUFGaStWV3dKam50OEt3RXJZQVZnNVZZWi9nM0JuL0FQQUFBQVZtTVY5K0J2ZWN0YnZqVkxDbVlGWU9WV0VRQmVmdm5sYS90cGNnQUFBR2pkTWxjQ1dnRllCeXNBSy9XSGYvaUgzN2FLOEc4SWtJVi9BQUFBc0Q3TFhOdzFaQXR2ZXRPYi9sVjJLWlFWZ0pWYVZmZ0hBQUFBVE1PeVZnSmFCVmcrS3dBcjlJWTN2T0hKV1M2TjhBOEFBQUNtWlZuMzZxdFlaTVJ5V1FGWW9XVy9NWjB6QUFBQU1GM0xXQW40dHJlOTdRYysvL00vL3lleVMyR3NBS3pNbTk3MHBrZGt1UlRDUHdBQUFHaVA4SzlzVmdCV2FGa3JBSjByQUFBQVVJWmxyQUxzZlJkZ3Nhd0FySXp3RHdBQUFGaUdhNjY1NXJGWlVoZ0JZRVhlK2M1My92c3NSeVg4QXdBQWdMSXM0MTcrdnZlOTd3dXlwREMyQUZkbUdTc0FuU01BQUFCUUh0dUFPY1VLd0lvSS93QUFBSUJUM05OemlnQ3dFbTk1eTF0K0tFc0FBQUNBcFRoOCtQQTNaRWxCQklDVmVOQ0RIdlNqV1k3R0p3VUFBQURBNmJxdU81Z2xCZkVkZ0pXdy9SY0FBQUE0bHpHL0M3RDNIWUJGc2dLUWN4TCtBUUFBQU5SQkFGaUJxNisrK2dleUJBQUFBSUF6MkFKY2liRzNBRHN2QUFBQW9BNWpiZ0VlMkFaY0hpc0F1UlhoSHdBQUFFQTlCSUFWV01ZUGdBQUFBQUJRQndFZ0FBQUFBRlJNQUFnQUFBQUFGUk1BQWdBQUFFREZCSUFBQUFBQVVERUJZT0dPSERueU5WbU80ckxMTHNzS0FBQUFnQm9JQUF1M3RiVjFTWmFqdU9jOTc1a1ZBQUFBQURVUUFCWnVZMk9qeTNJVUowK2V6QW9BQUFDQUdnZ0F5M2MwMjFHODk3M3Z6UW9BQUFDQUduUjkzMmRKcWJxdUcvVkZkRTRBQUFCQVBicHUxTTJEUTI0dzdsL0kwbGtCQ0FBQUFBQVZFd0FDQUFBQXNDMVcvNVZKQUFnQUFBQUFGUk1BQWdBQUFFREZCSUFBQUFBQVVERUJJQUFBQUFCVVRBQllBVi9BQ1FBQUFNRDVDQUFCQUFBQTJKYkRody8vZnBZVVJBQUlBQUFBd0hhZHpKYUNDQUFyY09qUW9kZGxDUUFBQUxCTUFzQUNDUURyY0RSYkFBQUFnS1hwKzE0QVdDQUJZQjF1ekJZQUFBQmdhYnF1TzVFbEJSRUFWaURlZk5kbkNRQUFBTEJNeDdPbElBTEFDblJkZDBPV0FBQUFBRXZUOTcwQXNFQUN3QXJNWmpNckFBRUFBSUJWRUFBV1NBQllnWTJOalZFRHdJTUhEMllGQUFBQWNJWmoyVklRQVdBRityNGZkUXZ3MXRaV1ZnQUFBQUFmdDdHeFlRVmdnUVNBRmVqN2Z0UVZnQ2RQK2tWdkFBQUE0TlptczVrQXNFQUN3QXBjZWVXVkw4dHlGTzk5NzN1ekFnQUFBRGlETGNBRkVnQnlLOGVPZVM4REFBQUF0MllMY0prRWdBQUFBQUJzbDFWREJSSUFBZ0FBQUxBdGZkOWJBVmdnQVNBQUFBQUEyOUoxblFDd1FBSkFBQUFBQUxiTEZ1QUNDUUFCQUFBQTJKYk56VTByQUFza0FBUUFBQUJnVzdhMnRnU0FCZXI2dnMrUzBuVmROOXFMNmJ3QUFBQ0FPblJkbDlYZTlYMC8zbC9HeWxnQkNBQUFBRkNwTWNNL3lpVUFCQUFBQUlDS0NRQXJjZWpRb2QvTUVnQUFBQUJ1SVFDc3hNYkd4dlZaQWdBQUFNQXRCSUNWbU0xbU4yUUpBQUFBQUxjUUFGYWk2N3FQWlFrQUFBQUF0eEFBMXNNS1FBQUFBQUJ1UlFCWWliN3ZSdzBBRHg0OG1CVUFBQUFBSlJNQVZtSTJtNDM2SXlCYlcxdFpBUUFBQUZBeUFXQWxOamMzUjEwQmVPMjExMllGQUFBQVFNbTZ2dSt6cEhSZDE0MzZZam8zQUFBQW9HeGQxMlUxanI3dngvMExXUWtyQUFFQUFBQ2dZZ0pBQUFBQUFLaVlBQkFBQUFBQUtpWUFCQUFBQUlDS0NRQUJBQUFBdUNnL0FGSXVBU0FBQUFBQVZFd0FXQkZKUEFBQUFBQm5Fd0FDQUFBQVFNVUVnQUFBQUFCUU1RRWdBQUFBQUJkMTVNaVJWMlZKWVFTQUZUbDgrTEEzSWdBQUFMQVVzOW5zZUpZVVJnQllrYjd2ajJZSkFBQUFNS3FOalkxaldWSVlBV0JkcnM4V0FBQUFZRlJXQUpaTEFGaVJydXNFZ0FBQUFNQ3lDQUFMSlFDc1NOZDFOMlFKQUFBQU1EWmJnQXNsQUt5TEFCQUFBQUJZaXE3cnJBQXNsQUN3TGgvTGRoVDN2dmU5c3dJQUFBQmExL2U5QUxCUUFzQzZXQUVJQUpYb3V1NEg0bmhOSEIrS1kranY1ZmhvSEsrSTQvdnlyd2NBMkxHWVN3Z0FDeVVBck1oc05odjFSMEN1dmZiYXJBQ0F2WW9KODcrUDQ4L2pPRDJZTys4UmZqeU9yNHpqcmtObmorNFl4OWZGOGUvTzlmOTFudU1kY2Z6SS9IOE5BQkJtczVudkFDeFUxL2Q5bHRRZ0p1cWp2cURPRHdDNHVMaisva28wOTR2ajArUDRoT0d4QnZ4dEhQOG5qdjhTODRVZm16OENBRXpPOE1IZVdLNisrdXFuWFhubGxjL05MZ1d4QWhBQVlCdGk4dnlFT1A3TE1Jaysrd2lQakdNSUFGc0ovd2FmR01lRDQvaXhjejBuY2Z4dUhJK1kvNU1BUUMyc0FDeVVBQkFBNEN4ZDE3MzR0Q0JyZm9TZmorTmZEZ1hiOHRWeHZPVHM1ekdPbHl6K0dBQW9UVnpIZlFkZ29RU0FBRURUWWlMN24rTDRTSVpUOHlNOGF2NkhMTU1qVG4rdTQvamJPSjZkZndZQVRKc1ZnSVVTQUFJQVRlbTY3bzJuaFUvRFE5OGN4NTJIZ3JVWXRoSS8vZlRYSkk2M0xmNElBSmlTalkwTkt3QUxKUUFFQUtyV2RkMTdUdytYd2hmTi80QXBlK0RwcjFrY2gvTnhBR0NOWnJPWkFMQlFBa0FBb0NwZDEvMTVITE5UNFZINDFQa2ZVTEw3blhvOTg3VjlUejRPQUt6V3lXd3BUTmYzZlpiVUlDYkVvNzZnemc4QXBpNnVmY1AzeHowK2p0dk5INkExSDRyajZURm5lZkdpQ3dDY01ueDROcWE0M283N0Y3SXlBc0FLalJrQ09qOEFtS0s0MXYxcU5QOW0wWU16UEQvbUw5K2VOUUEwVFFESUtRTEFDZ2tBQWFoUlhOL2VIODBuTDNxd0xYOFdjNWw3WncwQXpSRUFjb3J2QUt6TU5kZGM4enRaQWtEeFl0TDZqbUhpbXBOWDRSODdkZTlUNTA4Y3Y1K1BBUUEwUndCWW1hMnRyUnV5QklBaWRWMzNtbE9oVGZpOCtZT3dkLy9zMUhrVnh5L2xZd0FBVFJBQVZpWW10TmRuQ1FERmlPdlhUNTRLWjhKWHpoK0U1WG5jcWZNdGprZmxZd0FBMVJJQTFzY0tRQUNLMFhYZFJ6UDArOTc1QTdCNkw4NGc4THJzQXdCVVJ3QlltWTJORFNzQUFaaTBydXYrV3dZdVEvZU84d2RoL1Q3dDFIa1p4NHZ6TVFDQUtnZ0FLek9ielVZTkFBOGVQSmdWQU96TmFhSGYvemQvQUticlVhZWRyd0FBeFJNQVZpWW1xcU1HZ0Z0Ylcxa0J3TTdGZGVubGdoUktkdXI4amVObjh5RUFnT0lJQUN2VDkvMm9BZUM3My8zdXJBQmcrN3F1KzdNTS9iNSsvZ0NVNzhrWkJMNDErd0FBeGVqNnZzK1NXc1RFZE5RWDFUa0N3SGJGTmVoNE5KY3VlbEEzY3lRQXBpNC9rQjFOWFB0czZ5aVVGWUFBd0o3RXhQSmJoZytmY29JcC9LTVp3emtmaCs5TEFRQW1Ud0FJQU94SzEzVS9tYUhmcnczZG9ZQUdiV1lRT0J5UHpNY0FBQ1pGQUFnQTdFalhkZjh1Zzcvdm5UOEFuUElyR1FSK1gvWUJvQnEyLzViTmR3QldLQ2FkdmdNUWdOSEY5ZVVWMFh6ZG9nZHN3eS9IUE9wYnN3YUFsY3NQYlVjaEFDeWJGWUFBd0FYRnhQRUZPWGtVL3NIT2ZPdnczb25qdWRrSEFGZ0xBU0FBY0U1ZDF6MGxnNy9Iemg4QWR1dXBHUVQrbSt3REFLeVVMY0FWaXNtbExjQUE3RWtHZjhBU21Gc0JzQ3BqenVsc0FTNmJGWUFWOHFZRVlMZGlrbmhTK0FmTE5iekg0cGhsRndCZzZRU0FBTUFRUmh6TjRHLy8vQUZnMlRZeUNNd3VBRXpiTmRkYzgvb3NLWkFBRUFBYTFuWGRuMllBY1dEK0FMQnlHUVQrUlhZQllLcE9aa3VCQklBVk9uejQ4SC9KRWdET3FldTZxekw0KzV6NUE4QzYzU3VEd0YvTVBnQk15dGJXbGdDd1lBTEFPaDNORmdCdXBldTZZZkwyeEVVUG1KaHZ5M0FlQUtaR0FGZ3dBV0NkYnN3V0FHN1JkZDJITWxqd1BYOHdjY043VlJBSXdKVEVkVWtBV0RBQllKMnV6eFlBaHNuYWl6Skl1T3Y4QWFBWUdRUStNN3NBc0RhejJleDRsaFJJQUZpaHZ1OXZ5QktBeG1YdzkraDVoNm41U0J5dmpPUHBjZTBlcnQ5ck84SWo0L2k1T1A1eTZEQTV6OHozTWdDc3pjYkd4ckVzS1pBQXNFTHhwclFDRUtCeFhkZjlENEhCV2czWDR0ZkhjYUZ3Nzg1eC9PczRuajMvWDZ4Ui9EdjhTaHpmRWNkbnhYSDJ2K2Y4Q0Q4Y3gyL0g4YjZodytvTjcrazQzcEpkQUZnMUt3QUxKZ0NzVUV3TVJ3MEFEeDQ4bUJVQUpjamc3NS9PT3l6VFZod2ZqZVBaNXdqTWJoL0hsOFd4OW5CdkxQSGY4aU54ZkUwYzk0ampqUC9lOEV0eDNCVEg4Snl3WEE4UzdnT3dEcllBbDAwQVdLRjRVNDY2Qlhocnkxd2VvQVJkMS8yNVlHQ3BYbnRXOExVWnh4M2plSHIrZWJQaU9YaGNISmZuYzNMTGN4UmVNZjhIR04zd1hvL2p1dXdDd05KdGJtN2FBbHd3QVdDRllqSTQ2Z3JBYTYrOU5pc0FwaXFEdjM4eTd6Q0dQemc5eU1yaksvTFAyS1o0enI3dTlPY3dQQ2FPUHhvS1J2RnBRbjhBVm1WcmE4c0t3SUlKQUN0MHhSVlh2RHpMVVJ3N0p1UUhtS3E0K1Q4aUFOaXpvM0c4OGZTZ0tvNHZYZndSWTRybjlZVnhmUEZwei9QdzhOdmltQTBGdXpPTUFYRjhLTHNBc0JRYkd4c0N3SUlKQUFHZ1VISERQNFFtVnl4NjdOQTdUZ3VoRHNUeFJmazRLeGJQL1FQajJNalhZbmpvSGZNL1lLZnVHbVBDL0FrRWdHV0k2NHpWUVFVVEFBSkFZV0x5OWVvNGh0SjFmUHMrRU1md1BYV25Rci9QV3p6TTFBeXZ6YW5YS1R3cWptR0ZKdHNUUThOOE5lQ3dxaElBeG1ZRllNSGNPQUJBUWVMRy9tUTBEMW4wdUloM25RcVM0cmg3SE1NdjFWS1FlTTFlSE1ld1F2TlVJUGdYOHovZ1loNllIeElBd0dqaVdpd0FMSmdBRUFBS0VEZnpqOGdiK3YzekJ6aWZRNmZDb2pnTzVtTlVJbDdUZTUxNmZjUHI1dzl5WHNPWUVjY1Rzd3NBZTJVTGNNRUVnQUF3Y1hFRFA2eDZlc21peHptODdsUW9GTWVWK1JpVmk5ZjZ5MDY5N3VGTjh3YzVsNnRpRFBucnJBRmcxK0thYXdWZ3dRU0FBREJodWVydlh2TU9wL3VyVStGUEhQOGlINk5SY1E1ODRhbnpJYng3L2lDbis1UWNTd0JnMStKYUlnQXNtQUFRQUNZb0psaVBjY04rVHQrVVFjOW5aaC9PRU9mR1o1d1dCbkthWVV5SjQ5ZXpDd0E3WlF0d3dUcVRvM3JGQkcrMEY5ZDVBckE2TVg1ZkU4MTlGejNDcjhSMTZKRlp3NDdGZStvMTBYemxva2Y0WUx5blBpbHJBQ28yZlBnemxyaDIrSFM2WUFMQWlna0FBY296NWlTdGNNZmkybk5aMWpDS2VIODlMSnFYeFdFWFREQy9BNmpiMlBOS0FXRFpCSUFWRXdBQ2xFWDROL2ZYY2MzNWxLeGhhZUw5OXBGbzdyem90Y3NjRDZCZUFrQk81OVBQU2wxenpUVXZ6eEtBaVl2SjJjOEwvL1o5L3hCRUNQOVlsVGpYN3B6aDF3dm5EelJxR0h2aThDdktBRkE1QVdDOWJzZ1dnQW1MRysrL2pPWUppMTV6VG1ib054dy9rWS9CU3NXNTk1Z01BcDg0ZjZCTlh4aGowVWV6QmdBcUpBQ3MxR3cydXo1TEFDWXFicmhQUnZOWmkxNVRic3JRYjMvMlllM2lmTHdxejh1aGUyTCtZRnZ1T0t3R0JBRHFKQUNzVkV4ZUJZQUFFNVkzMnEwRllNY3pZTGs4K3pCSmNZNWVra0ZnYzRTQUFGQW5BV0NsTmpjM2JRRUdtS0M0dWY3bUJtK3dUNjM0dXpUN1VJUThiK2ZsL0lGR0RHTlVITitUWFFDZ0FnTEFTcDA0Y1dMVUFQQSs5N2xQVmdEc1Z0eFFQemVhLzdUb05lRnZNMEN4NG8raXhUbmNaUkI0ZlA1QUc1NFZZOVkxV1FNQWhSTUFWaW9tcWFOdUFUNTVjdmlhS2dCMksyNmtyNDNtcVl0ZS9UTDQrOFRzUWhYaW5MNDBnOEJXM0RmR3JtTlpBd0FGRXdCV2F1d3R3Tzk1ejN1eUFtQ240Z2I2QTlIY2M5R3JXd1ovMllNNk5YYWVYeFpqMkkxWkF3Q0ZPcldkZ1FyRlpHM1VGOWU1QXJCek1SWVBTNmhiK0xHUDc0M3J4RTltRGMySTkvaVBSL01EaTE3ZHpBVUJ5aExYcUt6R0VkY0J2eFJWTUFGZ3hRU0FBT3MxOXFScm90NFQxNGRQenhxYUZlLzN0MGJ6Qll0ZXZjd0hBY29oQU9SMEFzQ0tDUUFCMXFlQjhPOUVYQmN1eVJwSThkNi9PWnJiTEhwMU1pY0VLSU1Ba05QNURrQUFHRmtENGQrM0NQL2czT0s5Y1p2YUE3SUd4amdBcUk0QUVBQkdWUG1OOFY4T3dVWWN2NVo5NER3eUJIemJ2Rk1oSVNBQWxFVUFDQUFqcWZtR09JTy96OG91c0EzeG5ubGdCb0ZWR3NhOE9KNllYUUFxRnRjem4vd1VUZ0FJQUNPb09QeDdjYzBCQnF4Q3ZvZHEvWlhzcTJMOGUzTFdBTUJFK1JHUXlzV0ViTFFYMkxrQ2NHNlZobjlIWTl3L2tEVXdraGd2amtaVDQzdnJpVEZtWEpVMUFCTXc1aHcxeG5nckFBdG5CU0FBN0ZKTXFyNjEwdkR2YWNJL1dJNThiejExMGF2S3NCTHc1N01HQUNiR0NzREt4VVRNQ2tDQUpSakN2MmgrZWRHcmg3RWVWcWZTRHhCK1BzYVJKMlFOd0JxTmVaMDVmUGp3ZjczaWlpdStQTHNVeUFwQUFOaWhtRXg5UXpTMWhYKy9KZnlEMWNyMzNIK2RkK3J4aEJnam41azFBUFU0bGkyRkVnQlc3UERodzYvS0VvQ1J4STN0dzZONTZhSlhoeUdFaU9OcnN3dXNVTHozL25tRjRmc3pZNng4Zk5ZQTFPRjR0aFJLQUZpeGpZMk5tN0lFWUR3dnk3WUdmMVJoOEFCRnl2ZmlIODA3ZGZpRnJ1dWVtRFVBNVJNQUZrNEFXTEd0cmEwYnNnUmdCSEV6bTFYNWhyQWhqaS9PTGpBQnczdXlzbERlcndJRDFFTUFXRGdCWU1VMk5qYXV6eEtBUGFvby9EdFdXY0FBMWNuMzZNbDVwM0ExZlhBQzBMTFpiQ1lBTEp3QXNHTHhCclVDRUdBRUZkM0Eva3pmOTVkbERVeFl2RmYzUi9ON2kxN1poSUFBVmZBaklJVVRBRlpzYzNOejFCV0FCdzhlekFxZ0hiWGN1QTRyaXVKNFNuYUJBc1I3OXN1SDkyNE5oSUFBWll0eFhBQllPQUZneFdMQ2FBc3d3QjVVY3NONll5MEJBclFxMzhNbjVwMkNDUUVCaW1ZTGNPRUVnQldMeWVLb1c0QlBuQ2grM2dtd2JYR2pXc1AzYi8xQlhBdHVtelZRc0hndlh4TE5rVVd2WEVKQWdETEZkVWdBV0RnQllNVm1zOW1vS3dEZjg1NzNaQVZRdDdoQi9ZZG9odS9mS3Rhd1lpaU9MODB1VUlGNFQxOFJ6WGN0ZXVXS01mYkdMQUVveFA3OSsyMEJMcHdBc0dMM3YvLzlmeWZMVVJ3NzV2ME8xQzl1VEQ4VXpaMFd2U0xOaHZBUHFGTzh2Lzk5QmUveDI4WllhMklKVUpDVEowL2FFbGc0QVNBQXBMZ2gvZTFvN3Jyb2xhbnZlOWQyYUVBRkllQmxNZWIrejZ3Qm1ENGYzQlRPVFFJQWhMZ1IvYlpvdm1iUks5TDdyUHlEdHVSNy9zUHpUcG4rN3hoN2Z6QnJBQ2JNRnVEeUNRQUJZT0VYc3kzUnEvcSt2MGZXUUVQaXZYK1hhRjY5NkJYcHg3SUZZTUsydHJiOENFamhCSUFBTks4cisxY3BuOWIzL1ZkbERUUW94b0NIUlBQVVJhODhoWS9CQUUyWXpXWUN3TUlKQUFGb1dzazNuc1AydnppZWsxMmdZVEVXUEhjWUUwb2xCQVNZdGtzdXVjUVc0TUlKQUFGb1Z0eHcvazJXeFNuNVJoOVluc0pEd0k5bUNjREViSVVzS1ZUbkJxSnVNWkVhOVFWMnZnQzFpUEh4OWRGODJhSlhGbU14Y0RFRnI2aDdSNHh4bjVjMUFIc3c1clVneG1aTHRRc25BR3pBbUNHZzh3V29SYWszeDhaaFlMdU1jd0R0R3ZzYUlBQXNueTNBQURTbjBKdmlMVGZGd0U3a21GSGNscTFTZzBzQW1ESUJZT1VPSFRyMDIxa0NFQXE5c1p6RmpmeG0xZ0RibG1QSHlVV3ZIRUpBQUJpWEFMQitOMlFMMEx5NG9memJMSXNTTi9DdTE4Q3V4Uml5UDh1aXhKajlEMWtDQUh2a2hxSnlNWEc2UGt1QXBzVjQrSnhvUG5IUks0WnR2OEFvY2l5NWNkNHB4NTFpN0g1UjFnREFIZ2dBS3hlVFBTc0FBUmFlbG0wcGh2RFB0bDlnTkRHbTNEYWFqeTU2eFhoMHRnREFIZ2dBSzdkLy8vNlBaUW5Rcks3QTc1SVMvZ0hMRUdQTEhiTXNSb2xqT0FCTWpRQ3djaWRQbmh4MUJlREJnd2V6QWloRDNEaCtJTXRTREQvNGtTWEErSEtNT1Q3dkZDTEc4ci9MRWdEWUJRRmc1VFkyTmtiOURzQ3RyYTJzQUtZdmJoaC9McHE3TDNwRkdMYjl1allEU3hkanphVlpsdUp1TWFiL1ROWUF3QTY1eWFqY2lSTW5SbDBCZU8yMTEyWUZVSVR2eUxZSWNVTnUyeSt3TWdXdU5uNUt0Z0RBRG5VRlh2alpvYTdyUm4yUm5UTkFDV0xzeTZvTXhsWmdYWXlYQVBVWmUyeVBzZGNYc2hiT0NrQUFxaE1Ubm5kbVdRUTNzOEE2bFRZR3hSai90aXdCZ0cyeUFyQUJNVWthOVVWMnpnQlRWOUpxRm1NcU1CWEdUb0I2akQybXg3aHJCV0RockFBRW9DcHVZQUYycDZReHFhU3hIcUIwd3I4NkNBQUJxRWJjRUI3THNnUlB5eFpnU240NjI4bUxNZjlqV1FJQUYyRUxjQU5pY2pUcWkreWNBYWFxb0JVaEw0bXg5QkZaQTB4S2pLVnZpdVlMRjcxcE15OEZPTGN4NThWV0FOWkJBTmdBQVNEUWdvTEN2L2ZGT0hxUHJBRW1LY2JVRDBkemwwVnYyc3hOQVc1TkFNalpiQUVHb0hneHdmbFFscE1uL0FOS0VHTlZFZUhmSU1OS0FPQUNyQUJzUkV5TVJudWhuVFBBMUl6NUNlY1N6V0w4OU1FYlVKUkN4bGZ6VTRDempEbCt4eGhyQldBRjNJZ0FVTFNDYms1ZGM0SGlsQktzbFhJdEFDalJvVU9IWHA4bEJYTXpBa0N4NG9idjJpd256Y29Vb0hDUHpYYlM0cHJ3cDFrQ01LNlQyVkl3QVdBRERoOCsvTm9zQVdwenoyeW56QmdNRkszdit4ZEU4NGVMM3FSOVRyWUFqS2pydWhOWlVqQUJZQnVPWmd0UWpVSzJlOTBZTjg1ZmtUVkFzV0lzKzMraXVYSFJteTViZ1FIR0Y5ZUFyU3dwbUFDd0FiUFpiUEtUTllDZGlCdThkMlk1YVRGWnVtMldBTVVyWlV5TGE4U2Jzd1JnQkZZQTFrRUEySUI0czE2ZkpVQXRIcER0Wk1XTmNsWUE5U2hrYkh0d3RnQ01JTWIrNDFsU01BRmdBelkyTmdTQVFEVUsyZDcxbkd3QmF2U29iQ2Vya0dzRlFCRTJOemVQWlVuQkJJQnR1Q0hiVVJ3OGVEQXJBTTdoYU4vM1Q4c2FvRG94eHIwNG1sSG5sd0JNMTJ3MnN3S3dBZ0xBQnNRa3pRUU5xRUlKS3pwaXpEMlFKVUMxWXF5N1haYVRaUlVnd0RnMk5qWUVnQlVRQURZZ0pqOGZ5M0lVVzF0K0FBaFl2UmpML2x1V2t4VTN4RmtCMUsrRU1TK3VIYitkSlFDN1p3dHdCUVNBRFJoN0JlQzExMTZiRmNCSy9YL1pUdFh2WlF2UWt2K2M3VlI5VGJZQTdGTHZSMENxSUFCc3dQM3VkNy9meUhJVXg0NEovNEhWNnJydXcxbE9Wa3lNdmp4TGdHYkUyUGROV1U1V1hFTStrQ1VBdStBN0FPc2dBQVNnQkhmSmRwSksyQVlIc0N3RmpJRjN6eGFBWGZBcndIVVFBQUl3YWQzMHY4VDkxN0lGYU5rTHM1MmtBcTRsQUpObEMzQWRCSUFBc0FjeElmcVdMQUdhRldQaFk3SUVvREpkMXdrQUt5QUFCR0N5WXJJeHkzS1NiUDBGK0xpcGo0bFR2NllBVEpndHdCVVFBQUl3U1hHajl1M1JUUGs2OWR4c0FmaTRIODUyaXR6N0FPekN4c2FHRllBVmNCRUVZS3FlbiswVUhlLzcvcWxaQTVCaWJQeVJhSTR1ZXRQanV3QUJkdTdFaVJNQ3dBb0lBQUdZbkxoQis4VXNKeWx1Y0MvTkVvQ3p4Qmg1SU10Smltdk1zN0lFWUh0c0FhNUFOL1h2Nm1BOE1ka1o3Y1YyM2dETE5QRVZHdjg1eHNCdnlocUFjNGh4L0dlamVmS2lOejNtc2tEdHhweFB4NWhwK1hRRkJJQU5FUUFDSllpeDZvM1JmTkdpTnozR1A0RHRtZmlIT2ErSThmenJzZ2FvamdDUXN3a0FHeUlBQkVvdzVSdEdZeC9BemhqVEFWWnY3TEZYQUZnSDN3SFlpRU9IRHIwc1M0REppc25LbTdPY29yL0tGb0R0TzVUdDVNUTE1M1ZaQWtEMUJJRHR1Q0ZiZ0NsN2NMYVQwL2Y5WjJZSndEYkYySGxsbGxQMEw3SUZnT29KQUJ2UmRkMzFXUUpNVW94VHY1dmxGRDB1V3dCMmFNcGJiZVBhOC93c0FhQnFBc0JHeE1UTENrQmc2cjQ2MjZrNUVXUG9MMlVOd081TTljUG9iODhXQUtvbUFHekV4c2JHcUpPdWd3Y1BaZ1d3ZDEzWC9YcVdrOVAzL1NWWkFyQkxNWmJlUHN2SmlXdlFMMmNKQU5VU0FEWWlKbDJqQm9CYlcxdFpBWXppRzdPZG1nOW5DOERldlNYYnFmbldiQUdnV2dMQVJvejlIWURYWG50dFZnQjdFK1BUOTJjNU9YM2YzeVZMQVBZb3h0UUhaUWtBckpnQXNCMDNaanVLWThlT1pRV3daeitSN2RUOFlyWUF1OUoxM2FQaWVNWnc1RVBzMi9lY2JDY2xYcVBwL2xJSkFJeWc2eWY4cTF5TWEreUpqWE1IR0VPTVRWbE5pekVPMkkwWTB3NUZjK1dpZDE0bjRuaEtqRE5OL2dLdGNSOWd1Y1llWjJOOG5PYkF6WTRJQUJzaUFBU214azBnVUlzWXo1NFp6WERzeEZhTU41dFpOOFg0RDdBOEFrRE9SUURZRUFFZ01EVnVBSUVheEZqMnNtZ2V2dWp0WEl0amp2RWZZSGtFZ0p5TDd3QUVZQzFpWXZLUkxDZkZ6Uit3RXpHV3ZTMmFYWWQvZytGR0xZNm5aTGNKVXgxcjQzWDRYMWtDUUZXc0FHeElUR2hHZmJHZE84QmVERGU4RTNSOWpHMjN6eHJnZ21JY2UwczBZLzZ5N2EvRUdQVElyS3NYejkvMTBVeHV6RFhIQlVvMzlqdzd4a1VyQUN0Z0JTQUFLeGVUa2ovS2NsS0VmOEIyeFRqMjltakdEUDhHajR5LzkrZXlydDVVeDl4NERWNlhKVUR6aEgvMXNBS3dJVEdac1FJUW1JUVlqN0thbEp0aVhMczhhNER6aWpIc3VtZytiZEZiaXQrTThlaWhXVmN0NTZlVHV5aVk1d0lsRzNPdUhlT2hBTEFTQXNER2pCa0NPbmVBM1pwaUFHaE1BN1lqeHErL2p1WlRGcjJsK29NWWw3NDA2NnE1SmdDTVN3REl1ZGdDRE1CS1RmRkdEMkE3WXZ3YVZ2NnRJdndiZkduOC8vMTIxcXlZYXhVQXRSRUFBdEE4S3oyQWkrbTY3b1BSTEhQYjc3bDhUZnovdmpycmFobURBV0Q1QklBQXJFemN5TDR0eXltNU1WdUFjNHF4NnlQUmZOS2l0M0lQaWYvL1A4aTZaaWV5bll4NDNuOGpTNEJtWFgzMTFiK2JKWVVUQURiazBLRkRyOG9TWUYwZW1PMWs5SDEvMnl3QmJpWER2enN2ZW1zemJBZXVlaVZnak1XWFpEa2xEOHNXb0ZseC9UbWVKWVVUQUxibHBtd0JXSmhsQzNBcmNkTXpyQkJlZC9oM3lyQVMwSGNDQXJCcXg3S2xjQUxBaHNTazhmb3NBVll1eHFCaEZjM1VQRFpiZ0RQRW1IVnpORk5iSVR4OEoyRE4yNEVma2Uxa3hQUDk5MWtDTkdsalk4TUt3RW9JQUJ2Uzk3MEFFRmlucWF5aXVVV01peS9LRXVBVzNXTGwzMjBXdmNrWnRnTy9QdXVxeEpqOGtpeW41Qk95QldqU2JEWVRBRlpDQU5pUWpZMk5VUVBBZ3djUFpnVndZWEd6K3NJc3ArUW5zd1c0Ull4WHc0M08xTDhiOU1zbU9xNk9ZWEwvWGZGYy8xeVdBQzJ5QmJnU0FzQ0dqQjBBQXV6QVk3S2RqTDd2dnpkTGdMbXU2NFpmb3IxMDBadTh4OFMvNzY5a1hZMFlteWQzdlFqZmtTMUFjL0tETVNvZ0FHeElUS2h1eUhJVVcxdGJXUUVVNTIreUJaakw4RytLdjBSN0lZK01mKzhmeWJvbUg4MFdnRFd6QmJnZUFzQ0c5Q04vQjZBQUVOaU91RGw5VFphVEVlUGhQOG9TNE5UcWh0TEN2MU4rT050cXhCaDl4eXduSTg2UlYyWUowSlFZLzJ3QnJvUUFzQzJqcmdDODdycnJzZ0s0b0svTWRpcjZiQUdHRzV1U3R2MmVVL3czWkZXVnFZM1YvenBiZ0tia2gyUlVRQURZa0N1dXVPSjNzeHpGc1dNK0NBQ0tOTVh2bHdMV0lNTy9VbGYrbmFIQ0VQRGJzZ1ZndmR6NFYwSUFDTURTeEEzcFc3T2NqTDd2WDVRbDBMQmMwVkJGK0hkSy9EZDlNTXZpeFZqOVMxbE9SankvL3pOTGdHYms5WklLQ0FBQldLWXZ5SFlxM3A0dDBMQzRtU2wrMis5NWZGSzJ0WGh0dGxQeGYyY0wwQXcvQWxJUEFTQUF6ZWo3L3ZPekJCclZkZDN3M1hKVnJmdzdYZnozVmZOakZURm1mMFdXQUt4SlhGZHNBYTZFQUJDQXBZakp3clZaQWt4Q2pFdnpadDZwbHgrcldLSTRoLzQrUzRBbWJHMXRXUUZZQ1FFZ0FNdnlHZGxPeFpPeUJScVU0Ui9sZVhxMlUvRUoyUUkwNGRKTEx4VUFWcUxyKzZuOXdqN0xGSlBmVVY5dzV3OXdQbE83MlRaZVFidGlQSnBGMDh3SDM3V05kNjRuQURzejVyZ1pZNTVQMENwaEJXQmp2SG1CVlloSng3T3luSXIzWndzMEptK0N6SG5MTnFreFBNNnBYODBTQUlwaEJXQ0RZdEl5Mm92dS9BSE9aY3hQSGNkZ3JJSTJUVzBzV3BVYXh6elhGWUR0R1h1OGpQR3V6WXRwaFh3YUNnQkFkVm9OL3dBQXprVUEySmdqUjQ2OE1rdUFwWWliN20vTGNpcmVtUzNRQ09GZmxkNlc3U1RFT2ZZaldRSkFFUVNBN2JraFc0QmxlV2EyazlEMy9RT3lCQm9nL052My9HeXJFbVA1QTdPY2ltZGtDd0JGRUFBMlpqYWJYWjhsd0xKOGNyWUFLeVg4bXdkbDM1NGx5M1VnV3dBb2dnQ3dNVEV4RmdBQ0xiSHFHUm9oL0d2aWh5ayttQzBBc0VNQ3dNYU1IUUFlUEhnd0s0RDVHUE9iV1U1QzNBemZMa3VnWXNLL3VYK2JiYlZpVFAra0xDY2h6cnZyc2dTQXlSTUF0bWZVMVRCYlcxdFpBY3g5VmJZQUt5SDhtM3RLMy9mL01XdFc1eDdaQXNEa0NRQWJFNVBEVVZjQXZ2dmQ3ODRLWU82eWJLZkF5Z3lvWE5kMTFlOTUzWWIvRVBPN244bTZCWCtWN1JTNGx3S2dHQzVhallrSjRxZ3JBSThlUFpvVndMVEVlUGRwV1FJVnlwVi9yUy8vKzhVWTY1NlVkUlBpdi9jenN3UUFkcUNMaTJpV3RHTHNUOHVkUThBZ3hwYi9FYzAvWGZUV3o5Z0U5Ykx0ZCs1Vk1jNDErYlVMRTN2OWI0clg0ZktzQWRadTdERXl4amdYM1VvSUFCc2tBQVNXWVdvMzVNWW1xRlBPWTFxL0dmbmpHT00rTit2bXhEa3diRUU1c09pdG4rc05NQ1VDUU03SEZtQUFhdlFqMlFJVnladWExbTlFL3JEbDhDOTlYN1lBd0RaWkFkaWcvT1I4Tk00aFlERDJwNDE3WVZ5QytreHBqRm1qcTJOOHUzL1dUWFBOQVRpM01jZkhHTjljZkN0aUJTQUFleFlUamVka0NUQTY0ZC9jUjRSLzB4VG41K3V6QklESnNnS3dRVEZKc1FJUUdGV01LeCtONW82TDN0cTlOOGFsVDgwYUtKendiKzdQWTF6N0oxa1Q0cno0VURSM1hmVFd6M3dZbUlveHI1c3h0cmtJVjBRQTJDQUJJREMyS2QyZ0c1T2dIc0svdVd0aVhMdHYxcHpHdFFmZzFnU0FuSTh0d0FBQVRJN3diKzV2aEg4QXdCZ0VnQTJTNGdNVm0yVUxGS3diZWJkQ29ZYnYvUHRIV1hOdUo3TmR1emhuWDVrbEFFeVNBQkNBUFltYm52K2Q1UlQ4bjJ5QlF1WEt2OVkvckh4ZjMvZDN6cHJ6ZTFlMlUvREYyUUpVNDlDaFEzN2txQ0lDUUFEMjZqT3pYYnU0WWI1WGxrQ0JiUHVkKzRjWXkrNlJOUmNRejlQOXNweUN5ZndnQ2NCWTRycDhJa3NxSUFCczBPSERoMStiSmNBWUxza1dZTmZpSnNPMjMzMzdqdmQ5ZjZlc0FXRGRKdk5WQyt5ZEFMQkJNYkc4T1VzQWdMV3o3WGZ1QXpGSHV6UnJBSmdDQVdCRkJJQnR1akZiZ0pxOE9WdEcwSFhkZDhmeGdTR1lPZXU0SWY4UkdNVndYckh2Ny9xK3Yzdlc3TXloYk5jdXp1WG5aUWxRQ3dGZ1JRU0FEWXJKeWZWWkF1eEpqQ2ZYWlRrRkw4aVdQWWpYZEI3NmhaK080MXlCeE8yR1A0OWpLL3V3YTNFZTJmWWIrcjYvVzViczNKVEcvdS9NRnFBS2NYMDZsaVVWRUFBMktDYmJvNjdlT0hqd1lGWkFnejR0MjdXTENjb0xzMlNYNHZvd2kyYTdxNUEyaHlBUWRpdlBuOVpQb21IbFg1YnNSangvVjJVSndQaU9aMHNGQklBTm1zMW1WZ0FDY0lZTVkzWThMeGorZDNIOGNIWmhXNFRIYzBQNForVWZBSk1WMTJzckFDc2lBR3pReHNiR3FBSGcxcFpkWUFDbGlvbmRENDRReHZ4SS9CMS9salZja1BCdjdxVHdENEFDV0FGWUVRRmdnelkzTndXQVFHMWVteTA3MEhYZDY2TDVzVVZ2eis0ZGY5OTdzb1p6RXY3TjNkVDMvZjZzR2NldlpidDJjWTQvS2t1QTRzWDFTZ0JZRVFGZ20wYjlEc0RycnB2U2J3QUFxeEkzT2QrUjVkckY1T1Fyc21TYjR2VWJRdE4vc2VpTjV0UGo3LzFRMW5BRzRkL2NSMk84dWp4clJoTFA2YmRrT1FWZmt5MUE4VFkzTjIwQnJvZ0FzRUVIRHg3OHpTeEhjZXlZTVFFYTlVM1pVcGl1Ni80d21tV0ZwbmVOdjkrRmdUTUkvK2FPOTMxL3g2eXAxMWRsQzFBOEt3RHJJZ0FFWUxjZW1DMEY2YnJ1VDZMNWZ4YTlwYmtzL245OFB3UnpjUzc0bWR0OSswN0VUZFNsV1FOQUVRU0FkUkVBQWxBNlFkTTJkVjMzNW1qdXMrZ3QzYVpWWCtRNTBQcUpjR1BjUUYyU05jdHpJbHNBeG1OWFIwVUVnQUNVenNSa0c3cXVlMU0wRDE3MFZrY0kyQzZ2L2R6UnZ1OXZtelhMZFhPMkFJd2tydVZXQUZaRUFBaEE2YTdLbHZPSXlkdXc3ZmNMRjczVkV3UzFKMTV6MjM3bk82ZjZBMW16ZkQrVkxRQWpzUVc0TGdKQUFJb1dFNU9uWjhrNWRGMzNqbWhXdGUzM3ZJU0E3Y2pYdXZVWC9LWVltNXowS3hUUDkwOWt1WGJ4SG5oZWxnQkYyNzkvdjUwMkZSRUFBckJqY1hQenNpeVpzSGlkWGgvTjV5MTY2eWNFckovWGVHNEkveTdQbWpaOWNiWUFSZHZhMnJJQ3NDSUNRQUIyNDNPelphSzZybnRqTkYrMjZFMkhnS2hlWHRzRjRSL2hNN0lGS05yR3hvWUFzQ0pkVEZLeXBEVXhVUi90eFhjZVFWdGkvTGd4bWtsOHNiM3g1OWJpOVJsKzhHTnQzL20zSFY2M3Vnai81bTZPOC9vMldiTUdVem9QalhIQXVvdzVGc1pZNWdKZkVTc0FBZGlOcWZ5cTVmdXlKY1drNzhYUlREcjhHd2lNNnVHMW5Ec20vSnVFdjg4V0FEaUxBQkNBa2gzSmx0QjEzVzlHODZoRmIvb0VSK1h6R3M1dDlYMS9XZGFzMStGc0FZQ3pDQUFiZGVqUW9aZG1DVkN5Mzh1MmVWM1h2U0NhaHk1NjVSQWdsY3RyTjNleTcvdk5yRm0vdDJVTDBDVFhaaTVFQU5pb21LemVrQ1ZBc1dJc2UzNldUWXZKM3BPamVleWlWeDZUMWZKNHplYU94aGkwUDJzbUlGNlBaMlFKQUp4RkFOaW9tTGhmbnlVQTVmdlpiSXNsVUNxSDEycHUyUFo3SUdzQWdNa1RBRFpxYTJ0cjFCV0FCdzhlekFxb1hkejhQelZMSnFDbU1FYXdOSDN4R3ZscDAzMzdacjF0djF4RXZGZUdIMlFDZ01rUUFEWnFjM1B6WTFtT1ltdHJLeXVnQVkvTWxqV0xHOHlqV1ZaRENEaGQrZHEwL2dJTjMvbG4vc3gyZkUyMkFEQUpKakR0R25VRm9BQVFtdks1MmJKK1ZXNUJGQUpPajlka2J0ajI2enYvMks0N1pRc0FreUFBYkZSTTVFZjlEc0RycnJzdUt3QldJY2J4ZDJkWkpZSFRkTVJyWWR0dnNPMFhBQ2laQUxCUnM5bnNwaXhIY2V6WXNhd0FWdVovWjl1cXo4aTJXa0xBOWN2WG9QVVhZdGoybXlVRk1Da0ZnSE1RQURicS92ZS8vMjluQ1ZDcS81b3RGUk1Dcm8vbmZtNEkvMno3TGNzYnN3VUFUaU1BQktCVVYyZEw1UVJScStjNW4rdUZmMFZ5YlFDQWMraHNhV2hYVE81SGZmR2RTOUNHcVFRRHJZODVMUVkwcmpPcklmeWJHMzd3dzNmK0ZjcDFDbWpWMk9OZmpHTW1CUld4QWhBQUtJSmdhdms4eDNQRHRsL2hId0JRRlFFZ0FGQU1BZFh5ZUc3blpyMXR2d0JBaFFTQUFFQlJCRlhqaStmVVhzVkYrR2R1REFEQjl0LzZtT1FBUUlGaVVwWlZtNFNBNDhubnN2VW5kTmoyYTE0TUFGVExSS2RoRW4xZ3A3cXVlMGFXVE1NczJ5WUpBZmZPY3pnMy9PQ0hiYitNTHQ1ZjM1Y2xBS3lkQUJDQW5majBiSmtBSzVZRVdIc1J6NTF0di9PM2tSLzhZR211ekJZQTFrNEFDTUJPM0NOYkpxSnZmQ3Z3UUFpNGMvbWN0ZjdFRGR0K25Ud3MwNWRtQzFDY1E0Y092UzVMS2lFQWJOamh3NGQvTDB1QTdSSUFUcEFRVUFpNEU1NnJPZHQrV1lXN1pBdFFvbVBaVWdrQllNTm1zNWszTkxCVEFzRHBlbnkyelJKc1hWdzhSOUxpWU5zdkFGelU4V3lwaEFDd1lYRVRjRk9XQU52MWlka3lNWDNmLzBJMHoxcjAyaVVFUEw5OGJscC9nb2FWZjFrQ0FCY2dBS3lNQUxCaE1RRytQa3NBS2hEait2ZEU4MHVMWHJ1RWdMZm1PWmtidnZQUHlqOEEyQjQ3QmlzakFHeFkzQXlNR2dBZVBIZ3dLd0RXcGUvN3gwWHp4a1d2WFFLdmovTmN6TVZidzNmK0FjQjJiV3hzV0FGWUdRRmd3K0lOYlFVZ1FJWDZ2ditpYUY2LzZMVkw4T1U1U01PMlgwOEVBT3pBYkRZVEFGWkdBTml3bUF6ZmtPVW90cmEyc2dKZzNXS00vN0pvL3Z1aTE2NldBekRoMzV4dHZ3Q3dDNXVibTdZQVYwWUEyTERaYkRicUNrQUJJTUMwOUgzLy8wYnoxNHRldTFvTXdvUi9jN040RDlqMkN3QzdZQVZnZlFTQURkdmMzQncxQUx6dXV1dXlBbUFxK3I3L2xHaitZdEZyVjB1QldQeTMrcG5iUmZobm5nc0F1eFRYVVFGZ1pVeU1HbmJGRlZmOGVwYWpPSGJNQ21HQUtZb0ozTDJpZWV1aTE2NFdRc0Q4YjJ4OStkK3c3ZGNjRndEMnhnMStaVXlPQUtBQmZkOS9RVFR2WGZUYVZYTUkyTklxeHdzWWZ2RER0bDhBMktPWVYxZ0JXQmtCSUFBMG91LzdUNDNtdzR0ZXUyb015dUsveWJiZitTbnVCejhBWUF4Ylcxc0N3TW9JQUFHZ0lYM2YzeVdhdjF6MDJsVlRDSmovTGEwdi94dTIvVm9DQ1FBajJiOS92eTNBbFJFQUFrQmorcjcvckdqOE9uQUZJV0NOcXhsM1lRai9iUHNGZ0JIRnRkVUt3TW9JQUFHZ1FUR3BHMzRkdVBsUGRrc08wSVIvYzNFcUMvOEFZQW1zQUt5TUFCQ0FuVGlhTFJYbysvNnlhTjYvNkxXcnhDQk4rRGMzL09DSEp3SUFsaUN1c1NleXBCSmR2S2haMHFLNGdSajFCSEErUWQxaXpQaVRhTzZ6NksyWDhXWTg4YnIrVFRUL2FORnJWeW5ubFBCdnpyWmZ6bXRDNzVHL2lmTzArYkVWV0oweHg3OFl2MHc0S21NRllPTzhxWUVkK3ROc3FVamVvTjYwNkxXcmhHQk4rRGMzRS81UmlFUFpBc0RhQ1FBQjJJa2oyVktadnU4dmorYWppMTY3cGh5d0NmL21odkRQL0pWU0hNNFdBTmJPRm1DR0c0clJUZ0xuRTlSdktpR0U4V1k1NHZYOWNEUjNXZlRhTmJYelMvZzNaOXN2MitJNkJiUm83TEV2eGpDVGo4cjRCTFZ4aHc0ZGVtV1dBREJNOW9idzc4WkZyMTFUQ3R5RWYzUEREMzRJL3dBQWRra0EyTGpOemMyUFpRa0FjMzNmM3pZYUllQUVnamZoMzF5Y2t2MW0xZ0FBN0lJQXNIRmJXMXMzWkFrQXQ4Z1FjTmdPM0xSMUJuREN2N2xoMjY4bkFnQmdqd1NBall1YmkrdXpITVhCZ3dlekFxQjB2ZTNBYytzSTRvUi9jN2I5QWdDTVJBRFl1SmhZajdvQ01QNityQUNXcSt1NnAyZkpFc1c0UHF3RVBMSG90V3VWZ1p6d2J5SE9QZHQrMmJGNC8veHdsZ0RBYVFTQWpZdko5YWdyQUUrZVBKa1Z3TkxkUDF1V0xLNFZsMFRUL0hmR3JpS1lFLzdORFN2L3NvUWRlM0MyQU1CcEJJQ05peHVOVVFQQTk3em5QVmtCTE4wL3o1WVY2UHYrRHRHTWVzMG8wVElET3VIZjNQQ2RmMWIrc1JmL1Y3WUF3R2tFZ0l5NkJmallzV05aQVN6ZG5iTmxSZnErdjMwMHpTLzFYa1pRSi95YmkxUE1kLzZ4WjhPSEZRREFXYnFZYUdWSnErS21ZOVNUd0RrRmRadFNVR0c4V1k4NEI0WVBqMjYzNkxWcnJQTlArRGMzYlB1MThvODljNDBDV2pYMitCZGptQWxLWmF3QUJHQ24zcHN0allvSjRSRCsrVTdBRVNiYXdyODUyMzZwMFo5bkN3Q1RJQUFFWUtkZWtDME42eGZmQ2RqODl6N3NKY0FUL3MzTjRseXk3WmNhdlNaYkFKZ0VXNEFaYmtCR1BRbWNVMUMvcVFRWHhwdjFpM1BocG1ndVgvVGF0ZE56VWZnM040Ui9Qb3htVks1UFFLdkdIUDlpREROUnFaQkpGd0N3YXpGQkhNSS8yNEczT2VtT2YrNWJoSDl6dzdaZjgxQUFnQlV4OFFLZ1dGM1gvV2lXckZHLzJBNTg4NkxYcm0wR2U3K1diY3VHSC95dzdaZlJ4WHZ3R1ZrQ0FHY1JBQUpRc2dkbnk1cjFmWCtiYUh3bllOY054Nk96ZTR0NDdPdTNHUkRXTGs0VlAvakIwbng1dGdEQVdRU0EyTjhQbE95QjJUSUJjVDI1TEpybXR3T0hGM1ZkOTROWkQrSGZEMFh6OGtXdmFjTzJYM01PbHVtKzJRSUFaL0VqSU16RnpjbG9KNEp6Q3VvM3BaVk14cHpwaWZQamhtaHV0K2cxYmZqRjdJL0c4ZFI1cjIxRCtHZmJMMHZsMmdTMGJNd3hNTVl3SDloVnlBcEFBSGJqdW16aFZtTFNPSVIvSnhlOXBqMDJEdUZmRVA3Um1QZG5DMUNrUTRjTy9iY3NxWWdBRUlEZEVBQnlRUm40WEwvbzBiRGhCeit5aEdhNFJnS2w4MEZ1aFFTQTdEdDgrUEJyc2dUWXJ0L1BGczZyNy92YlJ5TUViTmV3N2RjUGZ0Q2kxMlVMVUNvQllJVUVnQXh1emhaZ1crS20vcGxacmwxMzJvOHRNRDBaQXBwRXRtY1dyNzF0djZ4TVhBdStNOHUxbTlJMUVtQ1h6TjBxSkFCa01IeFpPMENwdmlkYkppcURvQnNYUFJvd2JQczF4MlRWZmlKYkFQYW82N29UV1ZJUmt6TUdBa0NnWkFleVpjTDZ2cjl0TkI5YjlLaVliYitzeStYWkFyQjN4N09sSWdKQWhwc3kzODhFbEV6WVVJaTQzdHdobXFPTEhoVWFWdjdaOXN1NnVLOEJHTSt4YkttSUN5VURLd0NCM1JEa3NHTjkzdzhyTm4zM2JIMkc3L3dUeHNPK2ZmK1FMVURKckFDc2tBQ1FmWnVibTdaa0FidnhPOW5DanZSOWY1dG9YSHZxTVd6N05hZUVCZGRHb0hpejJVd0FXQ0dUTllZditCeDFCZUNCQTc2T0Mxb1FOL3dQejNMdFloeDdlWllVSXM2ZllUdndUWXNlQmJQdGw3V0xhOEFiczF5N2VEODhNa3VBWXNXNEtnQ3NrQUNRZlNkUG5odzFBRHgyek5jRkFDdjM5ZGxTa0xoUkhyNjAzd1N6WVBFYTJ2YkxGSHhSdGdDTXcwMTloUVNBN0x2eXlpdGZrU1VBckZUZjk1ZEdZenR3ZVladHYxa0NBRFhaMk5qd0FXMkZCSUFBd0ZyMWkrM0FmcENxSEVQNFo5c3ZBRlFxcnZNQ3dBb0pBQUhZaThrc0FlcTY3akZaVXFDWWFONHVtcE9MSGhNV0w1WHdqK21ZMk5odldTeFFDMXVBS3lRQUJHQXZ2anZiS2ZpMmJDbFVCa3ZYTDNwTTBQQ0RIMTNXTUJYZmxlMFUvRWkyQUVYcnVrNEFXQ0VCSUFDNzF2ZjlzN09jZ2dkbVM4SGluTHA5Tkw0VGNIcUdiYjkrOElNcE9wanQyc1Y3NUpsWkFoUnROcHZaQWx3aEFTQUFNQ2x4RXoxOEorQnMwV01DWnZHYTJQWUxBSTNvdWs0QVdDRUJJQUF3T1gzZkQzTVUzd200ZmtQNFo3NElBRzJ4QmJoQ0puUUE3TlVIczEyN3J1ditkNVpVSUZlZG5WajBXSU5oMjYrNUlwTTFzVEgvL2RrQ0ZHOXpjOU1Ld0FxWjFERVhFM3hmNmczczF1dXluWUo3WlVzbDR2cDBTVFJiaXg0ck5QemdoMjIvVE4wL3puWUtYcEl0UVBFKzkzTS85M2V5cENKZFRPNnlwSFZkMTQxMk1qaXZvQzB4Zm1TMWZzYWZPc1U1Tm9TQWZvUmlOZUp0NUlOQnBzKzFCK0RqeGh3VHpRUHFaQVVnQURCNU1SRWR3ai9iZ1pkdjJQWnIwZzhBVUJrQklITkhqaHo1OVN3Qml0WjEzWHV6cERMOVlqdXdId1paSHR0K0tVYU05Ui9LRWdEWUJnRWdwOXlRTGNCdS9HYTJVL0NwMlZLaERLaG1peDVqeWxXV1VJcTdaanNGcjhnV1lDMm05SlVJVEpjQWtMblpiSFo5bGdBNzF2ZjlRN09FcFl2emJaaS8yQTQ4bm1IbFg1YkFUc1g3NSt1eUJJREpFZ0F5MTNXZEFCQ29Sb3hwMzVjbGxZb2I3bUU3c0JCdzc0YnYvTFB5ajZMRUdQK3NMQUdBYlJJQU1pY0FCQ3J6UTlsU3NRd0JiUWZldlhnS2ZlY2ZSZnFlYkFHQWJSSUFjc3FvM3dGNDRNQ0JySUNHL0dtMlUyQVFha1MvMkE3c2gwRjJidGoyNnd1RFlPL2VtUzBBVEpvQWtMbTRDUmgxQmVDeFk4ZXlBbG9SNDhqblpBa3JsYXZZYkFmZVB0dCtZU1R4WG5wQWxnQXdhUUpBNXJxdXV5bExnQ3JFdVBZWFdkS0F1QWtmdGdOdkxYcGN3Q3dEVXlpU3NSMEFkcWVMU1dDV3RDNG1WS09lRE00dGFFK01JME1BTTVtVlJjYWg5c1E1T0d3SEZuQ2QyeEQrK2ZDWG9zVjdQS3RKR0ZiVEdtK0F0UnQ3Ykl5eHpkZUVWTWdrRUlBeHZTdGJXSXU4R2JjZCtOYUdvTUs4RDhiMWhtd0JZUEtzQU9RV1ZnQUNZNWpZNm93YllpeTZYZFkweEVyQU13dy8rT0U3L3loZXZLK0hINjJiekpodXJndE1oUldBYklkUGdnR29tZkN2VVRGeEhjSS8zd2s0ZnlxRWYxVERtQTRBdXlRQUJHQnNmNTB0ckZVR1h5MXZCeDYyL2ZvRUg1YmovMlFMQUVVUUFBSXd0cC9LZGhLNnJudG5salNvWC93NjhMQWR1RFYrbklDcXhGais1MWxPeGJPekJhaUtEdy9yNVRzQXVVVk1ySHdISURDS3NiK0haSytNUjhRNU9ZdW1sUTgrNDVRM2VhY3VyaXNBNXpmbUdHa09VUzhyQUxtRk56b0F0WXByM0REbmFXRTc4UENESDY3bkFBQ2NRUUFJd0RMOFVyYVQwSFhkZFZuU3NINnhIYmptRUhEWTl1c0hQNmhPak9IdnkzSXFiUDhGb0RpMkFIT0dtR0NOZGtJNHQ2QnR0bXN4VlhGdTFyZ2RlQmJudUE5MnFaTHJDY0NGalRsT1huMzExYSs3OHNvci8yVjJxWWlKSXJlSU4vcnZaUWxRblpnWS9ac3NhVndHWlRYOU1JandqMnJGMlAyZFdVNkY5QStvMnNiR3hyRXNxWXpKSXJlSUNkYlJMQUhHY0RqYnFmalZiR0VJQVlkZnlLMWhPL0N3N2RkOGpwbzlMOXVwT0pJdFFLMk9aMHRsVEJpNVJkeEEzSlFsd0o3Rm1ISy9MR0dTNGh3ZHZoTndhOUVyMHZDREgwT1FDYXlJYXh0UXU5bHNKZ0NzbEFDUVcyeHNiSHdzUzRBcWRWMzNtaXhoTG03bWh4L05LREVFakg5MVAvaEIzV0xNZm51V0FLeU9BTEJTQWtCdUVaT3NHN0lFR01zYnNwMktyOHdXYnBGQldrbmJnWWR0djlQNlZRUllqcy9QZGlyZW5DMUF0WHdIWUwwRWdOeGlOcHRkbnlYQUtQcSsvNUlzSjZQcnVtL0lFbTRSNStxd0hiaUVId2F4N1pjbXhGajl6VmxPUnJ6M0hwd2xRTFcydHJhc0FLeVVBSkJiV0FFSU5PSWwyY0laTWxpYkxYclRGUCtPdHYzU0NqL2NCTEFHWGRjSkFDc2xBT1FXOFVZZmRRWGdnUU1Ic2dJYTkveHNwOEsxai9QcUY3K29POFh0d01majN5MUxhTUxVeHVxcC9Sb3h3TExZQWx3cE4wSGNZbk56YzlRQThOZ3g0d1l3RDFTK1Bjdko2THJ1SDdLRVc0bHpkbXJiZ1kvRnY5T2xXVVAxWW95ZTNBL1R4WHZ3TzdNRXFGcU13VzdrS3lVQTVCWUhEeDU4YVpZQXRidFR0bkJPY2JNL2xlM0FzL2gzdVN4cmFNVWRzZ1ZneFdMZVVkSVBvN0VEQWtBQVZ1RmJzNTJNcnV0K0tVczRwNWdBRC9Pa2RhNEVQSkgvRHRDTUdKdC9LOHNwZVhTMkFDMndBckJTSnBVQUxGM2Y5NytjNVpROExsczRyemgzaDVXQTYvZ2tmTmoyTzJ4Rmh0WjhiYmFURWUvRkYyVUpVTDNaYk9aSFFDb2xBQVJnVmQ2ZjdXUjBYZmVFTE9HOE1vaGI1WGJnay9IL2Fkc3Z6WWt4K1lsWlRzbmZaUXZRaEkyTkRRRmdwUVNBQUt4RTMvZWZuT1dVL0h5MmNFRngvcTVxTy9DdzdYZFlkUWd0bXRxdnhnL3YvYnRsQ2RBS1c0QXJKUUFFQU5pR0RPYVcrZXVrTjhiL2gyMi90TXk5Q2NDYWRWMW5CV0NsWEdRQldLVVhaRHNaTWNueFMyZHNXOS8zdzYrVDNyem9qZXBvL04yM3pScWFNOUd4K0Q5bUM5Q01FeUZMS3RQRlpETkxtRSsrUmowaG5GL0EyV0tjeVdvNmpGWHNWSnpIUjZNNXNPanQyU3pPUVIvSzBqVFhCb0RkRzNNTWpiRnZlZ015b3pEWjVBemU3RUNMcG5qanliVEY5WElJLzhiWURueVQ4SS9XR1lNQllQbE1PQUZZS1NzcXFFV2N5OE4yNEJzWHZWMFp3ci9Mc3dZbXhMVUtnTm9JQUFFZ2RDTi9CUUp0NkJmZjI3ZXJYd2NXL29HeEZ3QldSUURJR1E0ZE92U0tMQUdXNmFwc3A4UWVOSGFsWC93NjhQV0wzcmJjYkhVUjNHS0tZKyt2WkFzQTFSQUFjb2FOalkyZDNNQUE3RXJmOTAvTWNsSzZydHZLRW5Za3p1bmJSN09kYStpTjhjL2VKbXRvV295NWs1eDN4bnYwa1ZrQ1RKN3ZVV1c3QklDY0lTWThOMlFKc0d4dnpYWktOck9GSGNzUThFTGJnVS9HUHpOc0dRWVdodmZNMUx3eFd3Q29pZ0NRTThTTmlSV0F3RXJFZVBNRldVNktUMUhaaXppdmgrM0FIMTMwempCcyt4MytEQWhUSFd2amZmcEZXUUpBVlFTQW5HR3FXekVBVmluR3dxL1BFbmFzNy9zN1J2T1JSVy91by9HWWJiK1FZb3g5WEpaVGN6eGJBS2lPQUpBekNBQ0JWZXFuKzBNSUw4OFdkaVhPN1R0SDg3RTRic2hBRVBpNFg4cDJVdUs5ZW1tV0FGQWRBU0JuOHgyQXdLck5zcDJVcnV1RWdPeEozL2QzaU9OMjJRVkNqSzB2eUhKcS9EUTNBRlVUQUhJMkFTQ3dVbjNmVC9WYVpCc3d3UGdlbSsya3hMWElGOEFDVUxVdUxuWlp3a0xYZGFPZEZBY09ITmgzODgwM1p3L2czR0xjeVdweWpzZDEwcFl3Z0JIRVdQOG4wZHhuMFpzVzkwUkFxY2FlUi90QXBGNVdBTEpVUjQ4ZXpRcmdncDZRN2RRSS93REdNOG53THp3OVd3Q29saFdBM01xWUt3QUh6akZnT3lhOEN0QTRCckJITWNhZmlPYVNSVzlhalBGQXlhd0FaTHVzQUFSZ0tyNC9Xd0FxRWplbmo0aG1rdUZmZUdhMkFNMFQvdFhOQ2tCdXhRcEFZRjJzQWdTb2o3RWRZSG5HSEdNRmdIV3pBaENBS2ZuSmJDY25KbGZEbDljRHNBTXhkaDdPY29wK0xWc0FxSjRWZ054S1ROU3NBQVRXeGtvUmdIb1kwd0dXYTh4eDFnckF1bGtCeUsxNDB3TnI5dlBaVHM2VWIyUUJwbWJpWSthTHNnV0FKZ2dBQVppVXZ1K2ZrT1VreFEzdHoyWUp3SG5FV1BuSUxDY3ByaldQemhLQWRPalFvVC9Ja2dvSkFBR1lvbWRrTzBWUHpoYUE4L3VWYktmb1Nka0NjSnF1NjA1a1NZVUVnQUJNVHQvM1A1WGxKTVhrNk1Zc0FUaExqSkVmem5LUzRocnpIN0lFNERReFBtNWxTWVVFZ056S29VT0hYcDBsd05yRUJDU3JTYnB0dGdDY3B1dTZoMGR6bDBWdmVpWitiUUZZS3lzQTZ5WUE1RmJpVFg5emxnRHJkanpieVlteE1pc0FUdk95Yktkb2xpMEE1MkFGWU4wRWdKeUxyVzNBSk1RazVOSXNKNm5ydW1OWkFqUXZ4c1MveTNLUzRwcmkzZ2Znd2liNzRUdDc1eUxJcmNUazZQb3NBYWJnSDdLZG9zdmlodmVGV1FNMEs4YkN4MFp6dDBWdmtvNW1DOEI1eEZndUFLeVlBSkJiMmRqWUVBQUNrOUgzL1oyeW5LckhaQXZRc2hka08wbHhMVG1RSlFEbkVXT2xBTEJpQWtET1JRQUlUTTJmWmp0Sm5lOERCQnBXd0JoNFRiWUFYSml2dDZtWUFKQmJPWG55NUExWkFreEMzL2VmaytWa3hRM3c3MlVKMEl3WSsvNVRscE1WMTVEN1pnbkFCZGdDWERjQklMZGlDekF3VVUvSmRxcStQRnVBbG54enRsUDEzR3dCdUlqT0Q5eFZUUURJcmNTYlhnQUlURTdmOXorVDVXVEYrSmtWUVAxS0dQUGkydkhVTEFHNGlObHNaZ1ZneFFTQTNNcjk3bmUvVjJZSk1DbHhJNWZWZE1VTnNWK2FCS29YWTkzTldVNVdDZGNNZ0NuWjJOZ1FBRlpNQU1qU1dSRURqT3hEMlU3VmdSajNmaU5yZ09yRUdQZk1hRzZ6NkUzV1Rka0NzRTFiVzFzQ3dJb0pBQUVvU3QvM2Q4MXl5aDZXTFVDTmhnQncwdUphY1htV0FHelQvdjM3ZlFkZ3hRU0FBSlRvV2RsT2x0WFBRSTBLR2R0ZW5DMEFPOUQzdlJXQUZSTUFBbENjbUp4OFQ1YVRGamZLVzFrQ0ZDL0d0QnV6bkxTNFJqd3FTd0Iyd0krQTFFMEFDRUNSNGdZdnEwbmJqQnZtSTFrREZDdkdzcmRFYzl0RmI3b0t1VFlBVEpVdHdCVVRBQUpRc2pka08yVlh4STN6NDdNR0tFNk1ZWStONWtHTDNxVDljYllBN0VLTTkxWUFWa3dBQ0VDeCtyNy9raXluN2hleUJTalJDN0tkdExnbWZHNldBT3lDWHdHdVcyZVpQT2ZUZGQxb0o0ZnpERmltR0sreW1qWmpJVkNhR0Y5bjBVeCswWUR4RldqVm1QUGdHRXY5aWwzRnJBQUVvQWJYWkR0cHBRU1ZBSU1jczBxNFg3Z3VXd0RnUEt3QTVMeGkwbWNGSUZDTWtzSTFZeUl3ZFRHbXZpK2FleXg2MDJaTUJWbzI1aHpZQ3NDNldRSElPUjA1Y3VRbFdRSVVvYVFid0ppby9WbVdBSk1UWTlSL2pVYjRCd0FWRVFCeVB0ZG5DMUNTdjhwMjZ1NGROOWpQenhwZ01tSnMrdEZvL3ZtaU4zbC9uUzBBY0JFQ1FNNXBhMnZyaGl3Qml0SDMvV2RHTTN4aGZRbStQVnVBS2ZtaGJLY3VodnorVTdJR2FOS1kyMytwbndDUWM0cUJ4QXBBb0VoeFExak10YzJrRFppU2tzYWtHT3NOb0FDd0F3SkF6aWttVlFKQW9HUy9udTNrQ1FHQktTaHNMUHFqYkFHQWJSSUFjazU5MzlzQ0RCUXJ4ckJ2ekxJSVFrQmduVW9iZzJLTS8rSXNBWUJ0RWdCeVRoc2JHMVlBQWtXTEc4U3N5aUFFQk5ZaHhwNmlCc3ZTeG5ZQW1Bb0JJT2NVazhHYnNnUW8yZGRuV3dRaElMQktNZVpzRGMyaVY0VHZ5eFlBMktIT3AyaWN6OWlmQ0R2WGdIV0lzZXd2by9tc1JhOE14a3RnMldKc0hINHh2YVRGQUIrTXNmR1RzZ1lnalAzaGNZeXpQbzJ1bUFDUTh4SUFBclVZZTNLMENzWk1ZRm1NaVFCMUVBQ3lFN1lBQTFDOUVtOGNZMEozTkV1QTBaUTR0Z2ovQUdEdkJJQUF0T0pKMlpiaVFOeW9uOGdhWU05aVRCbCs1TzNBb2xlTTUyWUxBT3lCTGNDY1Ywd1NSejA1bkd2QXVzVzQ5bGZSZk9haVZ3N2pKN0JYTWY1bFZaUy9qZkh2RTdNRzRDeGpqKzB4NXRvQ1hERUJJT2NsQUFScVZPaE5zREVVMkxVWTkwNUdzMy9SSzRkeEQrREN4cHpYQ3YvcVp3c3dBRTBwOVlheTFPQVNXSzhZTzdhaUVmNEJRT01FZ0p5WFR3Q0FXZ2tCZ1Jia21MRTU3eFJFK0FjQTR4TUFBdENxRjJWYkZDRWdzQjBGanhYL1BWc0FZRVFDUUFDYTFQZjlvNk81YnRFcml4QVF1SkNDeDRqM3g5ajgvMllOd0FvZE9YTGt0VmxTS1FFZzUzWG8wS0hYWlFsUXBialIvTFFzaXpQYzRNZnhzT3dDekpYOEFVR015WitjSlFBck5wdk5qbWRKcFFTQW5GZE1JRy9PRXFCYWhYL1gxRy9FV1AxcldRTU5pN0hnNXdvUC83SUNZQjAyTnplUFpVbWxCSUNjVjB6RWJzb1NvR3FGMzNoK1M5ejAvMW5XUUlOaURIaHpOTit4NkpWSCtBZXdmakVXV3dGWU9RRWc1eFdUeWV1ekJLaGU0VGVnOXk1NTVRK3dlL0hlSHo2d2ZmQ2lWNlNuWmd2QUdna0E2eWNBNUx4aVFubERsZ0N0K0psc2l5UUVoTGJrZS83eWVhZE1MNGtienVkbURjQWF4VFZGQUZnNUFTRG5OWnZOckFBRW1oSTNvaytKNXU4V3ZUSUpBYUVOOFY2ZlpWbXFqOFNZKzRpc0FWaXpyYTB0QVdEbEJJQ2MxOGJHaGdBUWFFN2NrTjR0bWc4dmVtVWFRc0E0dmp1N1FFWGl2ZjM0RFBwTG5zZi9RNHkxZDg0YWdBbUlhNHNmQWFtY0FKRHppZ0ZBQUFnMEtXNU03eExOaVVXdldEOGQ0L2hmWkExVUlON1RWMGZ6QzR0ZXNXWXh4dDRwYXdDbXd3ckF5Z2tBT2ErdHJTM2ZBUWcwSzI1UUw4bXlaUGZxeXQ4bUNJUjRMdzhmU3R4LzBTdFhqSzN1UHdBbUtLNHpWZ0JXemdXWTg3cnl5aXRmbGlWQWsrSkdOYXVpYmNTRUxrdWdSUGtlTHY1RGlVckdWSUFxeGJYR0NzREtDUUJaR1RlZ1FJbHF1V0VkeHVBNG5wTmRvQUR4bm4xMkxmTW40Ui9BNUZrQldEa0JJQUJjUkVVM3JrL3J1dTVvMXNDRXhYdjE1bWlldnVpVlRmZ0hNSDB4VmxzQldEa0JJQUJzUTBVM3NBZHFXVkVFdGNyMzZHM21uY0lKL3dES3NMVzFKUUNzbkFBUUFMYXBwaHZaSVdDSTQ1WFpCU1lnM3BQL3FhYUFYdmdIVUk2TmpRMEJZT1VFZ0FDd0E1WGQwUDdybXNJR0tGbStGNzk1M3FuRDQ3TUZvQXkrQTdCeUFrQUEyTGx2eUxZS1EvQVF4L095QzZ4UXZQZStyOElnL25GOTMvOUMxZ0FVWURhYm5jaVNTbldXNW5NaE1TRWQ5UVJ4dmdHMWlQSHhHZEg4MUtKWGpXTXhUbCtXTmJCa01ZNThMSm83TEhyVitKNFlSNTZWTlFCTE5PWUhTREYyMnhaU09Tc0F1U0NEQU1DNXhmZzRoSC8vZHRHcnhtWERSREtPaDJjZldKSzhhUlArQVFBcllRVWdGeFVUMU5GT0V1Y2JVSnNZSXg4V3pXOHNlbFg1Y0l6WmQ4a2FHRW1NR1IrSzVxNkxYbFVlSFdQR2k3SUdZQVh5dzZSUnhCaHU4VS9sckFBRWdEMkl5ZEp2VlByaHhsMkdTV1VjUDVSOVlBL2l2ZlRNdkZHck1meDd2UEFQQUtiTkNrQXU2TWlSSTc5eHYvdmQ3NkhaM1RQbkcxQ3J1TEVmZmhqa3BZdGVmWXpmc0hzWi9GWEoyQUN3UG1OZVgySTh0d0t3Y2xZQWNqRTNaQXZBQmNTazZhVTEzd2dQRTh3NDNwWmRZQnZpUGZNRzRSOEFNQVVDUUM1b05wc0pBQUYyb1BJYjRnZldIR2JBbVBLOThpWHpUb1dFZndEclpVN0dUZ2tBdWFBWVZLN1BFb0J0cXYzR2VKaHdtblRDdWNWNzQwVHQ3dy9oSHdDVVJ3REl4UWdBQVhhaGhSdmtEQUtIWHpTRjVzVjc0VDBaL0YweWY2QlN3ajhBS0pNQWtBdUtTWjR0d0FDNzFNaU44bDB6Q1B6bDdFTlQ0dHgvYmdaL256NS9vRjRuaFg4QVVDNEJJQmNVRTFvckFBSDJJRytZLzJIZXFkdTNaZ2dDemNoei9xbnpUdDArSEdQWi9xd0JnQUlKQUxrWUt3QUI5aWh1bk84VXpkRkZyMjVESUNJSXBIYU5uZWREK0hlWHJBR0FRbldXOG5NeE1jRWQ3U1J4dmdFdGkvSDBQMGZ6VFl0ZUU2NlBjZi8yV1VQeDRqMDg3SXhvNlp4K1NieUhINUUxQUJNeTlnZFJNZDc3QkxkeVZnQ3lVZzE5V2c1d0t6R3hHc0svcHk5NlRiajlNTzdINGRNZmlqYWN3em1IYVNuOGU3VHdEd0RxWVFVZ0Z6WDJqWnR6RHFEZEQwUmNBeWhKdkUrUFIzUHBvdGNPNzFPQTZSdDdMaGxqdjlVNmxiTUNFQURXb05VYjdHR3lHc2V4N01Ja0RlZG8zbGdKL3dDb252Q3ZEUUpBQUZpVHZOSCswTHpUbHNzeUNCeU94K1Jqc0ZaeExqNHBqdGx3WG9iTDVnKzI1ZjNDUHdDb2x3QVFBTllvYnJqdkdzMy9YUFNhOU1JTUFwK2JmVmlwT1BkK0xFTy8veEJIcTNQalY4Wlk5TWxaQXdBVjhoMkFYRlJNaWtjOVNaeHpBT2VXSVVUci9qNnVFNStRTlN4TnZOL2VGODA5RnIxMm1aY0JsR25NZVdOY0MweENHeUFBWkZ2R0RBR2Rjd0RuSndTOFJWd3VURVlaWDd6SGprWnpZTkZybXprWlFMa0VnT3lVTGNBQU1DRjVROTdpOXdLZUxlYTF0M3hQNEcva1k3QXJ3emwwNm53S3dyOTkrOTRuL0FQZ2xNT0hELy8zTEttWUFCQUFKaVp1eklmdkJieHEwU004N0xUd0JyYnR0UFBtWWZNSEdQeGdqREhOYjMwRzRPUGl1ckNWSlJVVEFBTEFCTVZFN0lsVzZOemFxVUFuanYrVkQ4RVo0dHo0czFQbkNXY2F4cFE0Zml5N0FEQVgxOHdUV1ZJeEFTQVhkZWpRb1ZkbkNjQ0taUWo0NFhtSDAzMzJxWkFuanJmbFl6UXF6b0gvY2VwOENQZWVQOGpwM3U4REJRQXU0R1MyVkV3QXlIYmNuQzBBYXhBMzduZUo1bWNXUGM3aGdhZkNuemplbkk5UnVYaXQvL3pVNng3KzZmeEJ6dVZwTVlaOGN0WUFjQzRDd0FZSUFMbW9tRmpma0NVQWF4STM4RSt4Z21kYkhud3FGSXJqTC9JeEtoR3Y2ZW5iZS8vSi9FSE81K1F3WnNUeG5Pd0R3RG5GdGNJVzRBWUlBTm1PajJVTHdKcGxDUGluOHc0WGM2OVRZVkVlL3pZZnB4RHhtajBoanI4LzlSb0cyM3UzNTlVeFZ1elBHZ0F1S0s2eHg3T2tZZ0pBTGlvR0F5c0FBU1lrYnV3L0o0TkFkdVkvbmdxUzRqaWNqekV4OGRwY2UrcDFDajhmeHljTUJkc1NROE44MWQ5RHNnOEFGeldielk1bFNjVUVnRnhVVENLdnp4S0FDY2tRMENydDNibmZxWkFwanBOeC9Gayt6b3JGYy8rV09JN25hekU4ZE0vNUg3QlRmeDFqd3Z3SkJJQ2RHSzdEV1ZJeEFTQVhGWU9CQUJCZ291S0cvdzdSUEh6Ulk1ZUdyWkwzUGhWQTVmR0dPTDV4OGNlTUpaN1RiOGpuOXBibk9qd29qa3VIZ3QwWlBneUk0MU95Q3dBN1pRVmdBd1NBYkljdHdBQVRGamYrTHhzQ2dHQTE0SGkrSkk1ZlB6Mm9pdVBsaXo5aXUrSTUrODNUbjhQdzBqaUc1NVp4L0ZXKzl3RmcxelkyTnF3QWJJQUFrSXVheldaV0FBSVVvTy83T3dnRGx1cnJUdyt6NHRpSzQ0WTRmakQvdkZuRGN4REhQK1J6Y3N0ekZCNDYvd2NZM2ZCZWorTXpzd3NBZTJFRllBTUVnRnpVbFZkZStkdFpqaUp2Q0FCWWtnd0IzenZ2c0V5YmNkd3VqaDg3UGZUSzQ5MXh2RHFPYW41NU9QNWJIcDMvVGRmRmNjWi9iL2l4T080VXgvQ2NzRnovVTlBUHdKamlXbTRGWUFNNkV3aTJJd2FFVVU4VTV4M0FhbVE0d3pSZEhjZWZ4SEZOWEJlZlBYOWtUZUk4ZVZvMG54M0hGMmJMQkprL0FYREttSE84ZDc3em5kOTkvL3ZmZjYxekVaYlBDa0FBcUZnR0JuOCs3ekExOTQvam0rTjQ5akNKWCtjUm5oUEhZK01RL2szVEM0Ui9BQ3lMN3dCc2d3QVFBQ3JYOS8wL0VSNUFrVzRhM3J0eERPRXNBQ3lMN3dCc2dBQVFBQnFSUVVMMmdDbkw5K3ZsMlFXQXBlbDhCMkFUQklBQTBKZ01BWDluM2dHbTVybUNlZ0JXYVRhYkNRQWJJQUFFZ0FiMWZmK3ZNbVM0YWY0QXNHNVhEKy9KT0o2YWZRQllpVXN1dWNRVzRBWUlBQUdnWVgzZlg1NUJJTEFlUnpQNEczNFVCZ0JXYm10cnl3ckFCblFtL1d4WDEzV2puU3pPTzRCcHlsK0VCWmJ2Wk15SDltY05BRHN5NXB3dHJrY21nQTJ3QWhBQXVFVitRUE5kOHc2d0ZNUDdUUGdIQUt5U0FKQnRPWExreU85bUNVRGwrcjcvOXhrRS92ajhBV0FzUDVUdkxRQ0FsUklBc2kyejJlejZMQUZvUk4vM1A1Qmh4Vy9OSHdCMjY2WERleW1PSDgwK0FNQktDUURabHE3ckJJQUFqZXI3L21zekNQejkrUVBBZHYxQ0JuL2ZrSDBBZ0xVUUFMSmROMlFMUUtQNnZ2OW5HUVQrNVB3QjRIeCtLb08veDJjZkFFYmpSOXZZRFFFZzJ4SVRXQ3NBQVppTGE4TDNaaEQ0dlBrRHdDbno3L2lMNHhuWkJ3Q1lCQUVnMjJJTE1BQm42L3YrT3pQc0dMcXorWVBRbm5nTExONEhjZmlPUHdCZ2tnU0FiRXRNYUcwQkJ1Qzg0anF4TVFRZzBKRGpHZnJaaHdVQVRKNEFrRzN4SzhBQWJFY0dJa041WlA0QTFPZEludWVYWmg4QVlQSzZuS1REUlhWZE45cko0cndEYUVOY08zNDJtaWN2ZWxDMDE4VDg1U3V6Qm9DMUdmdEhRT0w2WmpWN0F3U0FiTnVZQWVEQXVRZlFsckVucTdBSzVpc0FUSTBBa04yd0JSZ0FXSWtoU01rdzVSZm1EOEIwdmZTMDh4VUFvSGhXQUxKdFZnQUNNTGE0dHJ3bm1rOWY5R0N0L2o3bUpwK1FOUUJNbGhXQTdJWVZnQURBMnNTRTg5UHpBNkZIengrQTFmdng0UndVL2dFQU5iTUNrRzJ6QWhDQVZZanJ6VE9qR1E1WWx0K05lY2hYWncwQVJiRUNrTjBRQUxKdEFrQUFWaTJ1UGErUDVzc1dQZGlUdDhYYzQ0RlpBMEN4eGd3QWhYL3RFQUN5YlFKQUFOWXBya08vRzgxWERlWDhBYml3WWFMeG5waHZmTWFpQ3dCMUVBQ3lHNzREa0cwek1BQ3dUbkVkK3VyaFdoVEgwSDNhL0VHNHRaOGZ6cEU4VjRSL0FBREJDa0IyWk14VmdNNDlBTVlTMTZjL2plWnpGajBhOCtFNG5oM3ppbWN0dWdCUU55c0EyUTByQUFHQTRzWGs5WE9HRDVieXc2Vlh4WEZzS0tqU0xJNzNubnE5NDdoTEhNSS9BTmlGSTBlT3ZDWkxLaWNBWk5zT0h6NzhYN0lFZ01ucSsvNnI0cmdzdzZIaG9WZlAvNENTL2VtcDF6T09qVGcrTlI4SEFQYm1lTFpVVGdESVRoek5GZ0NLMGZmOVEwNExqNGFIWGpIL0E2YnNqYWUvWm5IWTNnMEFTekNielFTQWpSQUFzaE0zWmdzQXhlcjcvdXRPRDVmQ1Q4WHgxMFBCV253a2p0OC8vVFdKNDRzV2Z3UUFMRk5jY3dXQWpSQUFzaFBYWndzQTFZaUo3elBpK0pRTW51WkgrSUg1SDdJTUx6ajl1WTdqem5IOHMvd3pBR0NGdXE0VEFEWkNBTWkyeGVUOGhpd0JvR3B4emZ2eERLZk9PTUxMNXY4QTJ6RjhkL0JqenZFOFBuYnh4d0RBQlBqaHRFWUlBTm0yalkwTkt3QUJhRnJmOXc4L0s4eWFIK0VuNHZqak9QNSs2RFJpbUJkY0U4Znp6dldjeFBFdjQzamgvSjhFQUNiSkNzQjJDQURadHBqRUN3QUI0QnppR3ZuOWNYeHVISjhReCtraDJQd0lYeC9IaStQNDJOQXB4QWZqK0Evbit1L0o0L1p4M0RlTzcxejg0d0JBYWVJNkxnQnNoQUNRbmJBRkdBQjJJU2JYTDQvalVYSGNJWTdUUTdUekhtRllWZmlHT0c0ZU9udjBOM0c4Sm83dk85Zi8xM21PVDRyalNmUC9OUUJRcGMzTlRWdUFHeUVBWk51NnJyTUNFQUJXcEYrc0t2eVNPRzRUeDluaDNFNlBmeFRIVjhieDcvS3ZCd0RZZC9Ma1NTc0FHeUVBWk51dXVPS0tsMmM1aXE3cnNnSUFBQURXUUFEWUNBRWdBQUFBUUlPNnJyTUZ1QkVDUUFBQUFJQUdiV3hzQ0FBYklRQUVBQUFBYUZEdlY0Q2JJUUFFQUFBQWFGRFhkUUxBUmdnQUFRQUFBQnAwUEdSSjVRU0FBQUFBQUEzYTNOdzhrU1dWNi9xK3p4SXVydXU2VVU4WTV4OEFBQUJzWDl5WFo3VjNjVTgrM2wvR3BGa0J5STRZSEFBQUFBREtJZ0FFQUFBQWdJb0pBQUVBQUFDZ1lnSkFkdVNhYTY1NWVaWUFBQUFBRkVBQXlFN2RrQzBBQUFBQUJSQUFzaU96MmV6NkxBRUFBSUFWR3ZNWGdHbUxBSkFkNmZ0ZUFBZ0FBQUJRRUFFZ083SzV1V2tMTUFBQUFFQkJCSURzeUlrVEp3U0FBQUFBQUFVUkFMSWp0Z0FEQUFBQWxFVUF5STdZQWd3QUFBQlFscTd2K3l4aGU3cXVHL1drY1E0Q0FBREF4WTM5SzhCeFArNW5oUnRoQlNBQUFBQUFWRXdBQ0FBQUFBQVZFd0FDQUFBQU5NYjIzN1lJQUFFQUFBQ2dZZ0pBQUFBQUFLaVlBQkFBQUFBQUtpWUFaTWQ4VHdBQUFBQkFPUVNBQUFBQUFJMDVkT2pRZjgrU0JnZ0FBUUFBQUJyVDkvMVdsalJBQUFnQUFBRFFuaFBaMGdBQklEdDI5ZFZYdnpwTEFBQUFvRUQzdi8vOXZ5SkxHaUFBWk1kaWtIaElsZ0FBQUVDQnJyNzY2dC9La2dZSUFObXhHQ1JlbUNVQUFBQlFKbHVBR3lJQVpNZjZ2cjgrU3dBQUFLQkFjVzkvUEVzYUlBQmt4MktRdUNGTEFBQUFvRUFQZU1BRHZpVkxHaUFBWk1jMk5qYXNBQVFBQUlDQ3ZlTWQ3N2dxU3hvZ0FHVEhUcDQ4T2VvS3dLN3JzZ0lBQUFCV3hCYmdoZ2dBMlEwckFBRUFBS0JndmdPd0xRSkFkbXhyYSt2R0xBRUFBSUFDQ1FEYklnQmt4eDc4NEFmL1ZwWUFBQUJBbVFTQURSRUFBZ0FBQUxUbldMWTBRQUFJQUFBQTBKaVRKMCtleUpJR0NBQUJBQUFBR3ROMW5TM0FEUkVBTWduM3V0ZTlzZ0lBQUFDV2JXdHJTd0RZRUFFZ2s5QjFYVllBQUFEQXNtMXNiQWdBR3lJQVpCTDZ2czhLQUFBQVdMYVRKMDhLQUJzaUFHUVNCSUFBQUFDd09pZFBudlFyd0EzcEJDL3NWdGQxbzUwOC8vZ2YvK045Zi9tWGY1azlBQUFBNEd4amZuMVczL2UraTZzaEFrQjJiY3dBMEhrSUFBQUFGeVlBWkxkc0FRWUFBQUNBaWdrQUFRQUFBS0JpQWtBQUFBQUFxSmdBRUFBQUFBQXFKZ0FFQUFBQWdJb0pBTm1WTjd6aERVL1BFZ0FBQUlBSkV3Q3lLMXRiVzBlekJBQUFBR0RDQklEc3l0R2pSOStmSlFBQUFMQmtYZGRsQlR2WDlYMmZKZXhNREQ2am5Uek9Rd0FBQURpL3NRUEF1QStYS0RiRUNrQW13U2NaQUFBQUFNc2hBQVFBQUFDQWlna0EyVFhMaFFFQUFLQTg3dWZiSXdBRUFBQUFnSW9KQUFFQUFBQW16UGZtczFjQ1FDYkRnQVlBQUFETDkrcFh2L294V2RJSUFTQzc5dHJYdnZZUldRSUFBQUNGZU1oREh2TENMR2xFMS9kOWxyQnpYZGVOZWdJNUh3RUFBT0JNWSsrWTh5TWc3YkVDa0VteERSZ0FBQUErVHZqSEdBU0E3SW1CQXdBQUFHRGFCSURzeWF0ZTlhckhaVGthcXdBQkFBREEvVEhqOFIyQTdGa01TS09mUk01TEFBQUFXcmVNQU5CT3ZqWlpBY2llR1R3QUFBQmcrdHkvdDBzQUNBQUFBREFodzhxL1pheitlK2xMWC9xd0xHbU1MY0NNWWhuYmdBZk9Ud0FBQUZxempQQnZZQVZndTZ3QVpCVExHa1NXTmVnQkFBREFGQW4vV0FZQklKTW5CQVFBQUtBRjduOVpGZ0Vnby9GcEFnQUFBT3pPTXNNLzkrc0lBQ25DTUJENkpBUUFBSUFhdWQ5bDJRU0FqR3JabnlvWUZBRUFBS2pKc3U5enJmNWpJQUNrT0VKQUFBQUFhdUQrbGxYcCtyN1BFc1lUZzlqU1R5em5MZ0FBQUNWYVZmQm45UituV0FGSXNZWUIwNmNsQUFBQWxNUjlMT3RnQlNCTHM0cFZnS2R6TGdNQUFEQlZxdzcrclA3amRBSkFsbXJWSWVEQU9RMEFBTUJVckdQRm4vQ1Bzd2tBV2FwMUJJQm5jNDREQUFDd0t1c0kvTTRtQU9Sc0FrQ1diZ29oSUFBQUFMUkErTWU1K0JFUWxzN2dBd0FBQU12bi9wdnpFUUN5RWdZaEFBQUFXQjczM1Z5SUFCQUFBQUNnWU1JL0xrWUF5TW9Za0FBQUFBQldUd0RJU2drQkFRQUFZRHp1czlrT0FTQXI5NE0vK0lQZm1DVUFBQUN3QzBQd0oveGp1NGFUSlV0WXJhN3JuSHdBQUFDd1E0SS9ka29BeU5vSkFnRUFBR0I3aEgvc2hpM0FySjNCQ3dBQUFDN08vVE83SlFCa0VneGlBQUFBY0g3dW05a0xBU0NUOGZqSFAvNGJEV2dBQUFEd2NjTjlzbnRsOXNwM0FESkp2aGNRQUFDQTFnbitHSXNWZ0V6U2s1NzBwRzgyMEFFQUFOQWlxLzRZbXdDUVNYcis4NS8vbjRmV29BY0FBRUFyaHZ2ZnB6M3RhZCtjWFJpTkxjQVV4ZFpnQUFBQWFtUGhDOHRtQlNCRithN3YrcTRuR0JnQkFBQ293WEIvKzZoSFBlb1IyWVdsc1FLUTRsa1ZDQUFBUUNrc2FtRWRCSUJVUnlBSUFBREFWQWo4bUFKYmdLbk9ReC82MFBrdkNKOSs1QjhCQUFEQVVweDlIM3JxeUQrR3RScE94aXdCQUFBQXVKQ3YvdXF2L3ZxdTYvYjl6dS84enN2eklaZzhBU0FBQUFBQVZNd1dZQUFBQUFDb21BQVFBQUFBQUNvbUFBUUFBQUNBaWdrQUFRQUFBS0JpQWtBQUFBQUFxSmdBRUFBQUFBQXFKZ0FFQUFBQWdJb0pBQUVBQUFDZ1lnSkFBQUFBQUtpWUFCQUFBQUFBS2lZQUJBQUFBSUNLQ1FBQkFBQUFvR0lDUUFBQUFBQ29tQUFRQUFBQUFDb21BQVFBQUFDQWlna0FBUUFBQUtCaUFrQUFBQUFBcUpnQUVBQUFBQUFxSmdBRUFBQUFnSW9KQUFFQUFBQ2dZZ0pBQUFBQUFLaVlBQkFBQUFBQUtpWUFCQUFBQUlDS0NRQUJBQUFBb0dJQ1FBQUFBQUNvbUFBUUFBQUFBQ29tQUFRQUFBQ0FpZ2tBQVFBQUFLQmlBa0FBQUFBQXFKZ0FFQUFBQUFBcUpnQUVBQUFBZ0lvSkFBRUFBQUNnWWdKQUFBQUFBS2lZQUJBQUFBQUFLaVlBQkFBQUFJQ0tDUUFCQUFBQW9HSUNRQUFBQUFDb21BQVFBQUFBQUNvbUFBUUFBQUNBaWdrQUFRQUFBS0JpQWtBQUFBQUFxSmdBRUFBQUFBQXFKZ0FFQUFBQWdJb0pBQUVBQUFDZ1lnSkFBQUFBQUtpWUFCQUFBQUFBS2lZQUJBQUFBSUNLQ1FBQkFBQUFvR0lDUUFBQUFBQ29tQUFRQUFBQUFDb21BQVFBQUFDQWlna0FBUUFBQUtCaUFrQUFBQUFBcUpnQUVBQUFBQUFxSmdBRUFBQUFnSW9KQUFFQUFBQ2dZZ0pBQUFBQUFLaVlBQkFBQUFBQUtpWUFCQUFBQUlDS0NRQUJBQUFBb0dJQ1FBQUFBQUNvbUFBUUFBQUFBQ29tQUFRQUFBQ0FpZ2tBQVFBQUFLQmlBa0FBQUFBQXFKZ0FFQUFBQUFDcXRXL2YvdzkwU3RVOGtqekFqd0FBQUFCSlJVNUVya0pnZ2c9PVwiIiwiZXhwb3J0IGRlZmF1bHQgXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWdBQUFBSUFDQVFBQUFCZWNSeHhBQUFBQW1KTFIwUUFBS3FOSXpJQUFBQUpjRWhaY3dBQURzUUFBQTdFQVpVckRoc0FBQUFIZEVsTlJRZmpEQkFMSUIvZE5MK2tBQUFnQUVsRVFWUjQydTJkZWR4VjAvN0gzMHNqRFdoUUdtaDhpcFNVRXBVR1JVV1pLcUlCSVVTWFhPSWlDbGY5ekpsdWhrZ1JoVVFxbFpMbXdXMFNQVVdhS0lyUW9Lalc3dzl1OTVycTdMM1gzbWVmc3ovdi9yZ3Y5L1djdGRiK0RwKzkxdHByTUNTYndsU25HdFdweHRFVW9qQkZLVW9lUkZMWXdYYTI4aDAvc0lJVkxDZVhWZXhOa2dGTVFoMS9NSFZwU0F0T0piK3lRUHdQVzVuTFpDYnpiNndFSUJ2SlIydTZjaFlGRk90aVA2eGxPTU5ZTGdISUpxclJrMDZVVUhTTEZKbkhDN3pBanhLQXpLY21OM0dSeHZmQ001dDRra2Y0VGdLUXljbC9IMjBTTzk4aGdyT0ZSN2cvRzNzQzJaOFVoM0F6dDJxcVR3Um1QVGZ3bWdRZ3N6aWZSeWluMkJXT0dNTjFySk1BWkFZRkdVZ3Z4YXh3eXZkY3dhanNlWnpzblJTcnpydTBVN3dLNTYrVjloUmpDbnZVQTRnekhSbENJVVdyQ0ltNW5NUEdiSGlRZzdMU1BUMFpvZlFYSVhJU3M2Z3FBWWduZlhnOFM0Vk54SWVLVEtlT2hnRHg0ekd1VlhTS1NQaUIxc3hTRHlCTzlGZjZpOGdveWppT1Z3OGdQbHpOazRwS0VTbGYwSkExRW9BNDBKNVhOZllYa2ZNSkRka2lBVWczVlZsQVVVV2pTQU5qYVplcHB3ZGt5MEtnZ2t5Z2dpSlJwSVVjdGpCWFBZQjBNcGdyRlljaWJmeE1FMlpMQU5KRlc5NVNESXEwc3BKYTdOUVFJQjBjek5zY3JnZ1VhYVU0dTVtV2VjM09obG56MjZtbytCTnA1MVp5TkFTSW51b3MxbkVmSWhhTXA0MTZBRkZ6ajlKZnhJVFdORlVQSU9yMy96SXQvaEd4WVRJdDFRT0lrbjhvL1VXTWFFRkQ5UUNpb3lJcnlLdW9FekZpTEczVkE0aUtIa3AvRVRQT3BKSUVJS3EyWDZSNEU3SHJVMThzQVlpRzB5aXZlQk94bzJzbURhd3pXUUM2S05aRURLbkNTUktBOE1uTE9ZbzFFVXZhU3dEQ3B4NUZGR2tpbGpUUHBQZG9wdExNZVlsTEdjOGExck5ERVp3WVNsR0tPclJ4dkpuc2VJcnpqUVFnYzFSMkx5UG9iM09wcVl4SUpxWUQ5MUROWWIrNkthOXJDQkN1Y0ozaXJLejFuR3d2dHJsS2crUmlSOWxxOUhONHJGY1R6UUdFU3lVT2RsVFNRdXJidVVvQlllK2tJejg3S3F5R0JDQmNxanNxWndQdDdKY0tmdkZMUDRBZWpvcktrUUNFaXhzRFd6cllkUXA4c1M4Z2hqRGNTVUZsS1N3QmlIOFA0RFU3UTBFdmZzTXRUcjRDbVV6cEEyU3FBSlIxVXNvL0ZlL2lkMzJBOWJ6b3BLRHlFb0F3Y1hFRnlHZDJvUUplL0lIUlRrb3BJZ0VJRXhjanJIY1Y2K0pQK2dEdnNpc21yeWdKUUtqbVhhTmdGMytLaSs5Q21nUU1sVUlPeXRpb1NCZC95Z2IxQU9LT2l5WE11eFRwNGs5eGNjTlBIZ21BRUVJQ0lJU1FBQWdoSkFCQ0NBbUFFRUlDSUlTUUFBZ2hKQUJDQ0FtQUVFSUNJSVNRQUFnaEpBQkNDQW1BRUVJQ0lJU1FBQWdoSkFCQ0NIL0U3VzdBZ3ltVTBsa3FMb1RyQ0ZOWkFaQmVOblVyMFZkV1NMSUFsS1VXMWFsR0RoVTVsS0tSbnFNeWlFRUtnUFJTRW1BM1cvbVcxZVN5bkZ3V1d4M1ZsZ0FCS0Vrem10SE00WTJzSW5OajhIQU9wektuQVdETk1xWXdaZWYxQlpySU5Oa29BQVZwUzFkYVpmREY1Q0pNRERXb3dYVUY5ekNaWVhhb0RKSk5BbENURzJpZktWY21pTFNTaHhhME1GdDRoVWQwZFh0NFJQY1ZvRFlqV2N5bFNuL2hnY081bWsvTVdGTlBwc2hrQWFqRlJCYlNBU09EQ3g4eGVoYnp6RnNtUjZiSVJBRW94RjNNcDZWTUxRTE5ETFJqbWRGWG00d1RnUFBKNVU3eXk5QWlNUG5vWlZhWlZqSkVwZ2hBUVI3bE5VY1hlUXNCVUlueDZnZGtoZ0RrTUlkZU1yQndQaGpvWmVhYlNqSkV2QVdnSFI5eXZNd3JRcUVlQzB3em1TRytBdENWMXpQbGVtU1JrUlJqZ3JsQVpvaW5BUHlORjdUT1Q0Uk1BVjQyVjhzTThST0FlM2hFMy90RkJPVGhLWE9qekJBdkFlakpiVEtxaUl3SFRIY1pJVDRDMEVrYmJFV2tHSjQyNThrTThSQ0FGZ3pWQ1VNaThvSEFjRk5mWmtpL0FKUmlHUGxrVUJFNWgvRDY1djR5UTNvRjRDQmVvclRNS2RKQytaSjFaSVQwQ2tDL1g4OXpFU0lkbkdXdWx4SFNKd0QxK1lkTUtkTEtRRk5kUmtpUEFCekVZNXI4RTJtbUFJL0xDT2tSZ0d2UUxLeElQeTFNSnhraGVnRW94ZDB5bzRnRkQ4b0UwUXRBSHc2VEdVVXNLR08wRGpWaUFTak9GVEtpaUEyOVpZSm9CYUMzdHYyS0dGRmMyNE9pRklCRDZTa1RpbGdoQVloUUFEcHhxRXdvWWpZUG9JTkNJaE9BcmpLZ2lCMWRaSUpvQktBS0RXUkFFVHRhR2UxS2lVUUF1dXJrSHhGRDhuS2hqQkNGQUp3cjg0bFlvc2lNUUFDT29JYk1KMkxKeVRKQjZ0MGx2elIxUEFEWXd4ekdzcHl2K0VsdVNRd0ZLTTJ4dEtXZTAyaktiMXJhU1RKdXVBTFEzR0VyOXZJaWQ5bzFOSlJEa29uSjRSNm50MGMzbDAzREhnSTBkdGFHalRTeWw5ZzFja1p5c1N0c1I4N2dXMmNGTnBaTnd4V0FmRlIxMUlKYzZ0bFpjb1N3RTJuQVdrZUZIU3Q3aGlzQWxSd2RBUG90YmUwNnVVSDgwZytnSGR1ZEZGVnNsZTRMQ0ZVQXFqbXF2NGRkSVNlSWZSS3d5TlYrdnNxS3ExQUZ3TTM1YTNQdEtMbEEvRVlDQnJQTVNVSFZaTXN3QmNETllzc0Jjb0Q0QXc4NUthV01EQm1tQUJSeFVQY09PMW9PRUw5bjA5SHNkbENNenFtSXZRRE1sdm5GSHluUmw2VU9paWtxUzhaZEFEVDdMLzRjRng4RGk4aU1ZUXFBaXc3V1Z6Sy8rRk0yU2dEaUxnQXU3aFBRbW44UlhtVG9xaHFaU1FnaEFSQkNTQUNFRUJJQUlZUUVRQWdoQVJCQ0FpQ0VrQUFJSVNRQVFnZ0pnQkJDQWlDRWtBQUlJU1FBUWdnSmdCQkNBaUNFa0FBSUlTUUFRZ2dKZ0JCQ0FpQ0VrQUFJSVNRQVFnZ0pnQkJDQWlDRWtBQUlJU1FBUWdnSmdCQkNBaUNFa0FBSUlTUUFRZ2dKZ0JCQ0FpQ0VrQUFJSVNRQVFnZ0pnQkJDQWlDRWtBQUlJU1FBUWdnSmdCQkNBaUNFa0FBSUlTUUFRZ2dKZ0JCQ0FpQ0VCRUFJSVFFUVFrZ0FoQkFTQUNHRUJFQUlJUUVRUWtnQWhCQVNBQ0dFQkVBSWtkSGtUZkxEbXlvMHBRNFZLWkUxUXJpZEwxbk9ERHRab1Mwa0FQdEwvcDUwNTlPc2Zib2ZlSjFIN1NJRnVOQVE0SS9wMGQxOHhSUFV5ZUpITE1xbExEU3ZtNk1WNGtJQzhML0pmNlI1aitjb2xZUkg1WHlXbVc0S2NpRUIrRTlPMUdRQnB5WG9nUXN6MUR5c01CY1NnRi9TZnhwbEUrZmpHOHhnQmJwSXZBQ1lNcnhMc1VSNnVZZTVYYUV1a3Q0REdFNlp4UHE1bjJtbVlCY0pGZ0J6SmMwVDdPYzhQS05nRjBudUFkeVRjRTlYTWIwVjdpS2hBbUN1NDRqRSsvcnZDbmVSMUI3QTVYSTFaY3c1TW9MNExZbFlDbXh5V0NGWEF4MWtBcEhFSG9CbXdHVUhrV0FCT0VHTy9tVVFjR00xR1VFa1R3QXF5OUcvOEZCSjJVQWtUd0NLeWRHL2NyaE1JSkluQVBubDZGOHBLQk9JNUFuQWRqbjZWN2JLQkNKNUFyQkJqdjZWalRLQlNKNEE1TXJSQU96VklXRWlpUUl3VzQ0R1lLRk1JQklvQUhZTXUrUnFZS0pNSUpMWUE0Q3hjalV3UWlZUXlSU0F4K1JxcHRnbE1vSklwQURZOTNrLzRaNjI5Rk80aTZUMkFPQTZmazUyOTk5T1U3aUx4QXFBWGNvZENmYnp1cy9lVTdDTEpQY0FzQU1ZbVZBdmIrTzhTczhwMkVXaUJRQnNSOTVKb0krM2M1NmRyMUFYaVJjQXNHY203blRjTHpuTjZ2dS9rQUQ4S2dGWDBKbHZFdk80WTNvM3MzTVU1a0lDOEY4SkdQN1p6VHpDanF4LzBBV2NhYzkrVVBzZ3hIN0ltOFNIcnZTY1pYUC9rcHRvejhsWmVWYkFXc2J6a3YwZ2tUTWVRZ0tRQ2lYNldnRE1pVlRsVUE3TGlvZmF4VmJXa1d0WDA0TWVDbTRoQVRqd2dHQ0Jna0JvRGtBSUlRRVFRa2dBaEJBU0FDR0VCRUFJSVFFUVFrZ0FoQkFTQUNHRUJFQUlJUUVRUWtnQWhCQVNBQ0dFQkVBSUlRRVFRa2dBaEJBU0FDR0VCRUFJSVFFUVFrZ0FoQkFTQUNHRUJFQUlJUUVRUWtnQWhCQVNBQ0dFQkVBSUlRRVFRa2dBaEJBU0FDR0VCRUFJSVFFUVFrZ0FoQkFTQUNHRUJFQUlJUUVRUWtnQWhCQVNBQ0VrQUVJSUNZQVFRZ0lnaEpBQUNDR1NRTjVrUDc1cFMyMXlLRW9oaFFMYitJNFZMTFRqWlFvSlFQYW4vdmwwNTNUZVZnajh3VEkvTVk1bjdWaFpRa09BYkEzeHM4eHlYcWROMHZzL2YwRit6bUdzV1d5YXl4UVNnR3hNL3hHTXBicGNmd0NPWjRwNVJtYVFBR1JYOGxjd3kra2t0NmZJRldhaE9WSm1rQUJrUy9wWFpJYmUvWjQ0Z2VtbWpNd2dBY2dDZGsxakl1WGtjbzlVWVp5TUlBSElBZ3ArUzFVNTNBZTF6Zk15Z2dRZzA3di9GM0t1M08yVFMwMGJHVUVDa05uY0wyY0g0QUdaUUFLUXllLy83cFNYc3dOd3JHa3ZJMGdBTXBjcjVHcFpVQ1JVQUV3RkdzalZBV214dWIrTUlBSElUSnJKMFlISlUzS3hqQ0FCeUV6cXl0RU9xQ01UU0FBeUUzMy9kMEdPVENBQnlFeUt5ZEVKc3VLUDVES1pxUUZLMkpVY3B5WmpRMnhCWmE4RERvbHB1L2F5aWlXc1loMXJXRGUxV05OSlZLTWFMZndYYUZ1djZsNzVFNnBRbGFwVW9RcUhTUUF5bXgzS1hnZHNpMVZyTnJPRXBYekVZanVQS2xSeFczaWw1K3ovL05mN0xadnRwaDcxcUVlRmxJdTRoVnNsQUhIaEsyV3ZBNzZPUVJ0MnM1QVpmTUJjK3lYTmllaklrcWFUN0grbElELzF1RXM5Z014aWhiTFhBYmxwN2NNdFpBWXpkdy9LVTQ5NjNKQ3VadndpQlVaRGdBeGpyckxYQVhQU1V1dHkzdUlkTzQyR05KUUxKQUMrMkZTejVHNmQveGYwSFd3blJ0elpuODdidkcxWFVwMmJaZjZ3U01SbndCSjllVmV1RHNpYkVkWTFnMDY3MTl0bTlpRzdVb2FYQUxqZ1NiazZJRTlGVjVWOTFZN0lVMEVtbHdDNEM2bDMrRkRPRHNCN2RycU1JQUhJWks1bXI5enRlenplVzBhUUFHUjJIMkNlVHJYeHpSMVdPd0VsQUJrdkFUY3pTUTczd1J2MlBobEJBcEFORXRDU1dYSzVSeWJiODJRRUNVQzJTTUFwdkNXbmUrQWwyMEpHa0FCa2t3UzA0Ky84S01lbndGYXVzaGZMREJLQWJKT0FCNmpCSyt5UjgvZkR6enhQZGZzdkdTTGJTZVFDV2JzS1RGVXVvVDNWRkFKLzRDTkc4WUpkdzZVeWhRUWdlMFZnSllBcHgvSGtjSmlPREFGK1pBdTVMTEliT1k1K01vY0VJQWt5c0Y0aElEUUhJSVNRQUFnaEpBQkNDQW1BRUVJQ0lJU1FBQWdoSkFCQ0NBbUFFRUlDSUlTUUFBZ2hKQUJDQ0FtQUVFSUNJSVNRQUFnaEpBQkNDQW1BRUVJQ0lJU1FBQWdoSkFCQ0NBbUFFRUlDSUlTUUFBZ2h3aWV2VENDU2dDbkR3VUFoOHYvNmYyd0JkdHMxRWdBaHNpM1pjNmhBQlNweUZFZFNuT0lVNTJDKy9OTy9oTjE4d3pkOHcyYlc4am1mczlvdWxnQUlrV2xKWDRsYTFLUVd0YWpDQ2s4WlVJcFN2eE9GRFN4aENVdFlhaGRKQUlTSWMrS2ZTQ01hMHBSVkRnczlraU01QThEOHpCSm1NbVBxbHFhVEpBQkN4Q2Z4YTlPSzFqUmdRYWpWNUtNdWRlblZ6TEtNQ1V5d2t5UUFRcVEzOWMrbExhMkl0bk51cUVFTmJqVGJtY0k0bnBJQUNCRjk2cmVrSzJjek9vMU5LRVJiMnFvSElFUzBxWDhTbDlPQlNiS0VCRUFrTGZsN2NCVnpaWWR3MEVwQUVkL1VQOFk4WTNZd21CTmtDL1VBUkxLU3Z6RzkrSWc4c29RRVFDUXQrYytoTDlObEJ3MEJSUEtTdjZXWno1dlVrU1VrQUNKcHlkL016R0lTOWRTN2xnQ0lwQ1gvVVdZWVV6a2xpeDdwSTlwSUFJUklKZjM3c1lJdVdmWlExWGlIU1J3ckFSQmlmOGwvb2RuSW5SVE15b2Ryd1VMK0dlZG5rd0NJZENaL0dmTUdyMUE2aXg4eFA3ZnlFYWZGdFhrSi93eG9Hbk04T1JTbFVJS044Snlka0NicjkyQTVSUk5nNGNwTVlqZzM4STBFSUQ2cDM1enVuS092emN4UFQvcWJveGpLNE9TRUcxMW9SamVtYUFnUWkvZSttY3NVTGs3MGUvOFhmcUJUV2p6UW5rVTBTNWl0eXpHWlJ5a2dBVWgzK2ovSkI1eWs4VGNBMTloUDArQ0JwM21OWWtsODg5Q0xCZFNVQUtUUEE2WE5oMXlEVWVZRDhKSWRIcmtIampNcnVETEJOaitPMlZ3a0FVaFArcGRoT25XVjk3L3k1YzV5a1h2Z0hHYVJrM0M3RitJbEJ1ODdubHdDRUNIanFhcTgzOGVWQlpwRW5QNERHWjJJV2Y4VWJNOTdIQ2tCaURiOGhuRzhJbThmUSt6WUtLdmJzOXE4Ung4TnZ2YlJpQVZ4MlBLVUdBRXdiYk51cVdrUTF0dkxJclYreGJ3NzRyc1lKazJVNFFQYVNRQ2k0bUZGM1A5d1hhVHBYNTg1Y1Y4VG42YlpnRGVpOVVSaUJjQmNUQlhGMno1RzJ3aFAxalh0ZVArM2QrK0lmZVJoRUEra2MyQ1VsQjVBRDhYYVBuNmdWNFRwZnlHdmM0aU12aDl1NU1YMHJjaE54RkpnVTQ1MWlyTjkzRzRqczRicHduQWRPM2RBT3BPUEx2eXNIa0JZTk5mczh6NlcyVUdScGYvVkRGWDZwOFFGakU3UHB1RmtDTUNKaXJCOVhCdForditOcDdUZFBHWE81UFYwTEE1S2hvTzAvT2MvakxKVEkwci9TL1hkeFNOdGVDWDYvbEl5QktDNG9ndUFIN2twb3ZUdndMTjYrM3ZtWEo2UDJtckpjTkxCaWkwQUhyR3JJMG4vOHhpaEt6MTgwWmtub3AydlNvWUEvS2pJQWpiYld5TkovNU0wOHgrQXE3aGRBdUNhVFlvcjRONUkwcjh5Yit1N2Z5RDYwVlVDNEpZVmlpbyt0eEZNeW0zdXozaU9rTEdEYVNqUFJyZHZJaGtDTUU5UnhWMVJWRkt5ZWVKMys3c2dIeU9wSmdGd3gxVDJKRHlrVnRxaEVieTZucUdSc3RjSnhYaUxReVVBanJBYm1acndnTG9uZ3ZUdnloWEtYR2ZrTURTSzd3RkorVmI3VktLRDZkUHczLy9taEFRZDhoME5aMGV4YWlNaEFtQmY1Nk1FaDlJL3c2NWdWWGZHYUxWRkNINXJMZ0Z3UlU5c1FzUG9DenNrN0NvcXQrWW81YXR6OGpBaTdKTVVFaU1BZGxwaWh3R1BodDc5djRyMnl0WlFPSUxudzUwSlNOQjZiWHNOc3hNWVF0L2Ivd3M1L2F2eWdESTFORnFIZTR0Q29qWnNiRjNCa3NRRjBOT2gxL0FTaFpXbklmSVExU1VBVGlqY2JYZFIzazlVOE96aDhaRGYvLzJvcnh3TmxVTVlHdDdXcW9SdDJjeFR3VGJsWG5ZbjVvSGZ0bXRDVGY5ajZLTU1EWjM2NFIzamtzQTkyL1kyNnZKdVFoNzJ5WkRMZnpZOUIxa2xqbjlTU1FMZ1RnSVcyek9veTVOOG5lVVB1c0pPRFBYOTM0dUd5czJJaGdGUGhGTndZdmR0Mnc4QnpISFVKb2ZEc3ZROU5wNFF6LzgzWlZtdXpJeU1WbHpJS3hJQTF6S1EzZXNEdzcyR2V3QkZsSmNSY2o5dnMxMURBQkVMeklsY0xDdEVTamx1VkE5QXhJWEhNdVRsOFQxcjJjaFhmTTBtZm1JYnNJWEM1S01BaDFDRU1wVGtDTXJINDZydUE5S0hJYXlYQUlqMHYvOHY1cVVZTjI4ckMxbkFNbGIwL3ZyQlhHcFNNNFVucWtOVmpxRU9KMUltdHM5MUNBUG83TmlUUG44MzNjSFJEM2ZiTzVSS0dTb0FxOEw2TEJXSUw1akNWT2JZandNOVcxbnEwWXhtMUl6aGZWSjdPY0h0YWxiMUFJVDNGT2tSczczL1B6R05NVXl5dVhTaFM5REM3QmUvL08rcTdwVzMwWlkyRkl2Umt4NUVmODVSRDBDa1Z3RFd4bWJ6NzA3ZTRUVTdJdFNuYmM2NWRJek5CZWVXK2l4d3FTaENlRXVJNjJLUi9udDVuOHQzYjdUbmg1ditZS2ZZNjJ3cDJqRGMvVWM0WDYvcy9tNjdGRUo0NDlhMHQyQXo5NU5qbTlwbjgxU0k3TVU3em5hMmhiZzJCaWRMdGVZa0NZQkkxd3VvZTVwbnlUK2tpeTFoYjdLZnBxWC8vYmc5anNhTVN2TXAwemRKQUVTNjZKM0d1bWZTenRhMXc5SThDSjl1TzFDRlFXa2NFSnhMRlFtQVNNZjd2elUxMGpUaUgwVXQyOUMrRlE4NzJNOXRyMDBQY2k5YjAxTDlRVnd2QVJEcDRNWjBaQnV2VWR0MnNERTd6YWxFWDN2YnBvZjVaMXBFNEJKWFY5NUxBRVRxNy8vamFCRjVwYk00eWJhM01UM0tyVVJmK3crcThtemtjd0tGdUZ3Q0lLSW02cHQvMXRQTm5tSmpmck9qM1dndnB5YmpJL2VGa1FDSWFJbHkvOTkyK3RseVVkeG82RVFFUHJhdGFjbXlDS3VzVEJNSmdJaHlBSEF4SlNJYjlRK2hpcjB6cyt4ako5a2E5T2I3ek9xUFNRQkVxbHdaVVQycmFHRXZzeHN5MFVUMklhcnpSa1NWbmU5Q2tDVUFJclgzZndWT2phQ2FQVHhnSzluM010ZE9kb005ajR2WUhFRlZCZWdRdkJEdEJoU3BjVUVFbTJNL29ydWRHNHA4VmVVb2lsQ1lRaHhPSWJhemplMXNad3ViN2NJUVJPRGxYZE1LNWtiUVk3b2crSFYzRWdDUkdoMUNMdjhuN3JOM010ZHAwamZpT0txUlEwVlcvdVZmd1hwV3NvTGx6TFp6bkwyY205Z201bXllQ25uWmRHT09aSU1FUUlRL0FLaE11R3Z2VjNPUm5lV29yYlZvU21NYS9YWFMvNDV5bEtNWmdObk9IR2J3Z1pzaGlCMERaaVFkUTdUYVFiVG5NUW1BeVBRQndHdTdUOHpqSVAzTmNYVGd3Z0FuNWhUaU5FNEQ4eDJUR092aUU2VHRhTHJ4RkllRTZKZUFBcUJKUUpFSzU0Ulc4bzljYjlzSDNkWnJqak1QbTdWOHhKMVVjOUNtdytqQVVMUE5qRFJuQlphQW9kUVBjUXZ4eVJ3aEFSQWhzNm83SjRaVTlNZlV0NDhFVFA2T1pqSkx1Y0g1TVNXRjZjaFk4NlVaYUk0T0pBRWYyZU1ZRk5vZzRIUUpnQWlaeWp0RGlwTWg5bGk3TkVEcWx6Y1BtbThaU1lzUUJ5aGw2TU5uNWcwVDZBZzgyNHRMMkJsSysxcExBRVRZdEE2aHpOM2NZaThMa1B3VnpTQldjbU1rUjNibTVUeG1tSm1tWFFBSmVJRlRDT09tNXRPRDViQUVRS1FTWks3WnpCbDJnTy9rcjJGZTRsTjZSWHlqWTBQZU12T043OWtRKysvUCt2Tys4MWFWQ0RZOGt3Q0lBNlZiN2FBVFRYL2czOVQxKzZudC9aWm1FSXU1bUR4cE1VWTkzalR6ak04MWtaV2VzMDE1Mm5tYkFtM1IxbWRBY2VBM24xdGV0UmY0N1F5Yi9yeEpJUjgvL0o2WmZFd3VYN0NkN2VTbkVLV29RalVhVU5GeldmV1pabDdqVnJ2U3p4UFlLODAxREhLYWQybTVvbjA2TnZDLy9sWmtBTHprd05mLy9mZW83M1owWllPUCt0WndEL1gyVTJwRnJtWW1lejJYdTRzSGZUOUpTNzUzYU5FdFFmcnhHZ0tJNk40d2U3alc5dkwxNWovR1RHVW9wYjJPRjJobGo3SzM3ZTlJRWJ2S1BtbFBvVHBQczh0VDJmbnBiZGFaYzMzMUFpYlNtQytjV2ZVd2pwRUFpTEJtQU1weXRLT2lkdExKUHU2ckRYZXo2SmZGdWg1WXhLbTJxWjJRWWtybTJpdXB3bkNzcHpyS005cThiU3I0a0lERk5PSVRaMDVxSkFFUVlkSEFVVG1iYUdwSCtraitrMDB1ZDFEQW85VGNZR3ZiRHp3bTVUcmJtZVo4NXJHQmJmbklYTzFEQWo3Zk9vOFpqbXg3a2dSQWhFVXRKNlZzNURRL2UrM01MWHpnZVhIdkNrNjJEL3RycHAxcUsvT0t4eDhWNWlrenlaVDNXbGZoYnJZUlk5THRJd21BQ0Y4QVZ0UFkrN20rcHJaWndnRHllZnpaVkpzVGJJKy92WkM3UFArb0pVdE1aeDkxbmMxckR1eGJ3LzlIVVFtQUNGc0FsdFBZK3ljemN4MXpmZFQ5cG0wVy9KSHRYVnp0Y1RZQURtZTRHZTZqcnZZOEg3akJCYWtxQVJEaFVESGc3eGRPdmM2dTg1eityL0tZeDNFL3dCVHJhTmVpZllycmZQeXNzMWxoVHZCYzE2WEJ6L1docGdSQWhJQnBFREJDRm0xZDBuU1N4enBQTXF1NXdFOWR0cm03SjdlUDQyY2VJWWZaM3FjRTdkVThHYkM1eDBrQVJCaFVEdlRycFo4OVZyaWJ4L1R2eGpRcStLaHJHeGU2ZlhSN0F6TjlkY2VmTWk5N3J1dWFnQkpRV1FJZ3dxQkNnTi9tY25xbDV6eW0vMkNHK3R6aWM1VmQ3dnpwTy9HRHI5OWRaQmFZb3p4THdML1M0YWVFN3dVd3gzSThPUlNoYU1ZL3l2TjJkcXdFWUNWTjdFWlB2aWpEYS9Ud1dkc2tPOXo5dzl1MTVucjhIVmR5SWd0TUV6dk5VMjFYbVdGMDhkblVTaElBcjZsZm04dm93TWRaODBEdnhLb0hzSUV6UEtaL0xlYjRQdFBuWjY0bE40ekh0NCtZcFQ0bjJJNWdrcm5FdnVDcHRpNW1IRzE4MVZhYWd2NE9IRW5rRU1EVU5PTllTQytPektLSCtpWkdBdkE5cmV3cVR4NDVuZWtCanZSNjJlYUdadGU3ZmY4eVB5OFlqMGVCMlRiNE81cmMrSlhxQkFxQXVadC8weWFDYXk2eVFRRDhuR3YvRSszdFlrOGU2Y0U0RHZYZHhyME1DTStzZG1TZ1htSXZNOExiRHpaTjlMbEg0RWdKUUdyQk5wVTdQSzh1eXdDbWxndWxXTzk3Ny9kd3NmWDA0Yy9jd3VCQVE5R3A5cE5RVFJ2c0NJOU9acXFYUHkvUmw1YStUa3NvTGdFNElMdW1HZSs3eWpJRDYvVnJlMHFwV2Q3SGo2NjNvenpWY1gvZzkvZXdjRTNiZXp3L0J5cWdtWm0vcXJzSFY2Nm5EZDk2cnFXRUJPQ0FGTXhIN1N4OXRIQXVwZmIrVnJuUGVycW93Z3pocG9CdDNPMXRvczA3RCtieVFjQWk2bFcrM25nWVRObGxuTTFQNmdHNGZwODl3U2xaKzNEaENJRFh0OHA0ZTZzbmo0emlzc0J0bkJmRitDcHdDVFdaWlR5czE3ZlR1VW9DNERiOW0zQk5Obzl1UWluMU1FOS8vWW4xZEh5NG1lemt3dEZwRVZoM2lvTXlLakROZUZpd2E0ZndoS2Z5RDVjQTdKOG5zbTdlUDN3QjhMSWRaeStYZUVyL21jRk9zOTNIa3ZDTmEyZDUzaHY0WjVSaG12RXdCTFU5UFYzSVdsQUNzTDl3TzgvL2Rna0pRRXE4YlQxYzdXMm1PanRwTURjUyszN3BwSlRpVERKZWxoVU45UEMzK1NVQSsrUHFMSCsrY0s2ZDh2SzUxTU5TWERQWjNiZVlyWCtMeEw2ckhaVlRra21tZXNwOWdHYzhmSDhvSUFINDY0QXJUZk1zZjhSd2VnQmUzaW9wNzV3ell4MTEvZ0h3dXR2UUp6ODRLNmswNzVrcUlReHcxQVBZRDAzVGRJOU1jZ1JncjAyeGsyekdjSmJERnU2TXlMNWJIWlpWbGlrcDN6ZWMrdEJEUFlEOVVELzdPemtaVS8rSFR1dU5TdGpkMXJQZXBycldML1ZCMkY0SndGK1RrL1ZQR003aTV0VDdGU2JWcjl5MlAvZkUvcm4vU0JHSFpjMjFxYTlIcVpEeVgvNGtBZmhyanBBQWhENndTSGxhejk3Ty96bnNlcFNPeEw2SE9TdnB3OTJsVW42Mk1oNk9STjhsQWZockRzNzZKOHdmU3FsZTNpcFhwUDZuOW1hSEVsQTVFdnRXY1ZUT2trM3Y1RW45clg2NWg2R1ZlZ0Q3WVdmV1AyRTRQUUF2bTJEcW1VNmVKT0J4UjIyc0hyNXgzMjlKTVNjRkxaMTZZNG0rSHQ3L040VFVXMHVjQUd6TytpYzhKSlJTZi9UMDE0OGJEMjlqZXkzM09tbGpuZkNOMjh6TnVWbHp0LzdiMDU3TkZ6MHQ3LzFSQXZEWHJNejZKendzbEZLOUhUSlNuTEZlL3R6ZVJpKy9jOWQrNWg0QzRHSVZ5ZnYySkM5ckZzd1RIbGRMZkNNQitHc1daUDBUSGg0REFZQmpqS2VUQ2UwZ3JtQlB3RFllNCt2VUFtKzBERnpDYU52VXk1K2JudlFNMlZlSkVvQXBUalp6eEpsUXBqbDc3L2I4a3pQTmk1NGs0RG5PRHpoRFkrZ1VybW5Oc1lGUGtSaHV6L1ZVNDlrOEd0VXdOeEVDWU5jN3U0ZzV0b1R4T2V6QlhCL0MyZFY0K3M1djM2UWQyd00xczJ2SXB1MFM4UGVQV2svWGhwcW12T3JqaURUMUFQYkw0S3gvd3VLaGxQcWRqOS9jYmp6ZHEyY24wb3dOQWRwNG5Ha1JxbVV2RC9EYnZmU3hucllybWVNWjQydHJyd1JndjBFMjNOUGU2a3drbkFVeFgvaDc1eGxQMTNUWmVkUWp5SlhlL3dpeFovVjNTdnIrOFU0dXRnTTkxVmFKQ1Q3UFIxNG5BZGcvMTJYNTg0Vnp4OEZxbjFFMXpMVHlOa2l6Si9DdTcxWTJONmVIWTlROXE3blo5NDgzMHNSNk9oUjhWWGZHKy9UamJwOVNuUndCc09NWkxnSHd6T2MrZjVlUFVhYUJSdytkd1VEZms3VlBoR1BVdk9OOEx5TmZ5TWxlamtpQlBhc3JYK05oNmUvdjMvKzdKUUFIQ3JET1VSd2ZwUjdBcnhUaFhYT1NSdy8xb1RNN2ZOVlcxZHdYUXZmL1ZOOTNGYjVvVDdBZXhUUHZWOVQxM2RSVmZuK1lySXRCV3ZOWjFqNWJtWmdKQUJ6S1JPTnhJN1o5aVlZKzYrempiZEJ4WU41dnljdSt0Z0h2NW5ycitjdUVtYzVKNmZCVG9nVEFma0VqL3AybEQzZDBLS1d1Q1BUclE1bGdQQzdWdFF1M1RtT01yMGdlYnB4dSsyNTJLMzV1VzFwSFUrdjVSbUV6aThhQkdydFNBcEJhZUcyd2RmaFhWaTRMcWhDS3ZaWUdQR3VvR0ZPTXg5c1lDbmV6WjlQRFI3MGxlTThjNWVySnpUQmZDNERmM3ZTODliam1aTTlxTXl2d2pSVkxKQUNwQi9WVk5HRisxajFXV1B2aWx3ZjgvV0ZNTXA2WDB0ckJOSDk3TVlzQUFBdDBTVVJCVlBJeFhDdlBSSE8wby9UM3Z2em5KM3JidHFudjl2dUZHNnZsL2M3QmhUVkxKUUJld3VzRFc0L1RlZFhuaEZNOE1lYVlVTW9OUG5GYWlMSG1ITTgrbW04cjg3VG52bHAxWnBuakE1dHlnby8wWDBKOSs1RG5tc284OUxxRDYrcTJzTjd2VC9PU1VPeEVBTk9FMmxTaFdFZ0hha1JMT0w1YzZxQ01Bb3cwSGUxSXp6NjYwcHpCY3g1SDRtV1phNjczUGdyZmw1SjFHSW5YNmNTOVBHNTdzY2h6WFJXWjd1UkFreVZ4QzVyTWtZRnBXZlF3SFVJcGRaR1RVdkl6d3ZTMG5yL1cyM2QzVFN2NFBwN1cwbE9RUjh3Yi9NMzZXQnRuK2pMTDgwTGNGVnhxWi9xbzYwUm1PeHE0QlJDQWd4QmkvejJsUFU0S3lzTVRacENQemtNVDI1blRQYzl5bjhjbjVqYVBDZG5lcktTL3gvVGZ5VjAyeDFmNm44NFVaL00yTXlVQUlqeVdPU3VwbDNuZG53alpxdlQzK0YyZ01QZWFMZVp1VXlHbGRMek1MT00xcW5wczJHUnEyYnQ4RFRRdTR4MktPclByTEFtQUNJK1pEc3M2Mzh4YTFkMlhDUFNsRnVNOC91aHc3dUJ6ODRIcC9WZVhjcHB5cHFzWllYWXdoQm9leTE1REo5dkMrbG9uWWZveHhPRXBqbXY4YmdUU0hJQklUUUJjM3F4NFN1WER5ZkdUT0RZWHpHbmM3L0VVUU1PcG5BcG1DOHRaemdaKzRIc0tVNWdTNUZETjUrejVkOXhuQnpMQ253SE1DTzUwNnA5WlFYNHNBUkFId3ZWaEtzY3d6N1N4NC96ODFMNEhwaU1EcWVqNXA0ZHpNaWM3YVAzUFBOLzd3UWQ5M2tsc2ptYTA4eE9NQXZsSFF3QnhvS1JiN2Z4UTFjTjR4L1R6M1o2UnRpTGRBaTVTOXNjdWhuR3N2ZEozK2pkaVhnaW5HRStVQUlod0dlKzhSTU9kWnFUL245dWhOb2Qya2U3cjJNWWdLdGt1MXJjWW1oNU1vWlR6ZHEwS2R0U05CRUNrUXdBQU9wcEZKc0NOTy9ZdFc0ZXptZURnYVBFRHNaS2JkbSsydmV3WC9vc3d6ekk0bE9WbTQ0TDlYQUlnRHB4cTQwTmFORjJiaFNiUWtadDJqRzNGVWR3U1pCNTh2K3hoTEMxdFZYdS9od3U5L3BqOHg1ckZnVTRXREZHY0pRQWlGZDRQcWR3aUREUFBCNVNuOVhhQUxjOTV2TXdQRGx1Mmx4bmNRRGw3bHAwVXJDRFRndzg1UGlUNzdRenFHUW1BU0lVM1FpejdVcE5yQWsrTjJUZnNSYllvWnpIRTcvbTQrL2laU1Z4TldkdklQbXczQkcyWEdjSGdFQytuSFJlMGJ5WUJFQ213dGJHbmkwSzlVbzFacHBlVHdjcFllNWt0VG1WNk1NenpLVGs3bU1sQTJ0bDh0cVY5S25qcWcybG9Wb2Q4YmNtb29BVm9IWUJJZ2NMZEdFZWJFQ3NveUNBem5jdHRyaE1aK1BVa0FWT0o0Nm42NjcreWYvcW4zN09TbGF4a0JibDJQZzFwNk82UnpFQSs4SFdrbUJmSkdpc0JFTkV3TWxRQkFHak1Jbk9MSGVDdVFQdWJvekozVFN2WWpjSVVvaWc3MmNZUG03cVY2TXVobk1pSjdoL0ZOT1paK29UdWs3RnNrd0NJU0xBdm1KMiticXp4d3NFTU1IUG9icGVGVVhpQkpuWjFOTFl5Zy9rQUU0a29CMFp6QUNKVlJrZFNTd01XbVlHWmF5VFR4cXlsUnlUcC8wM3dBWUFFUUtUT014SFZrNDgrWm9YcG1JSEpuMk5HTVk2aklxcnVoWUFIdGtvQWhLZEJ3QlRuZXdMK21oeEdtdmZNOFpsam5UMnJ6VUNXaG5RcTA1OHp4RVVoRWdDUk9zOUZXdHRwTERURFRPbE1NSXpwa2ZjUStsQWd3aXBuOExFRVFFVExDL3dVYVgwSDBZVmNjMVBNay85TTh3bURmZDhoNkplblhabFlpRlFIQVJ0NU9mSktEK1YrODVXNUphYkozOWhNNVIyT2liemlMM2xWQWlDaTU2RzAzS3BVaWdGbXZiazJac25meXN4a09zM1NVdmxqcnZwaUVnRGhwUSt3Sk5qeEV3RW94K05tc3hsb3lzWWkrVHVhK1V4d3VXN1FFMXY1bDd0UmxoQmVlRENOZFplZ0Q1K2FaMHpkTktiK2tlWTJzNDZSMUV1akhaN2pPd21BU0U4ZllHS2E3MWMrbUN2NDBNd3psNlVoK1Z1WVVhemxYc3FuMVFJLzhiQzd3aVFBd2l0M3hxQU45UmxpZmpTalRMdUlVcitHNldkV01aa09Eby96OXN1enJIVlhtUFlDQ0s5OWdMZk5IQnJFb0NFSDA0RU9aaU52TXNhT0R5MzE2M0EyNTdJc051YmZ5VDlkRmljQkVON3BtN2Fwd0Q5U21xdTR5bXhsQWhPWmFqOTFWZXkyb1VYRzBJS3owanpnK1NQLzRndVh4Zm5kdERDZFJvSHJ2dHZlb1Z6S1RNeDBHc2V5WVd1Wnltdyt0UE45UDFrT2RhbFBFMnJIY25pOG5jcDhwUjZBU0RjM01UdVNIVzllT1lwdWRBUHpNMHY1aUJXc1lPWHUwUWM2ME5OVUpZY2NjcWhPbmJUY041QTZEN2hOZndtQThEY1BNTWNNbzB1TUc1aVBPdis1Z2lNdjdPSnJOdklkM3dIZnN4Y29TaDRLY1NnbEtVUGhDRGM1QldNZC8rZTZTQW1BOE1ldG5FdmhER2xyQWNxbitkT2RHMjUyZnp5N1BnTUtmMzJBOVF5VUZTSmx0cXYxL3hJQTRVSUM3bWFWckJBWmU3Z3VqSDBZRWdEaG44dlRzalVvbVR6S2gyRVVLd0VRL3ZzQVV4Z3FLMFRDbXJEV1gvb1ZBQmZLbjBkK3pYUzJHdGVmcGNTZmNtM3dBOERkQ29DTDJjaVM4bXVtVTdnYmY1TVZRbWVZaS9OLzNRcUFpMnNZeThpeldUQU1lQ1VOcHdRbGkvVmNIMTdoZmdYQVJZZWtnWHliRlJKd2tlZGIrRVRxN0tVcjM4WlBBTFk2cUx1NGFTci9aZ1ZkMkNNamhNUjlUQTJ6ZUw4Q3NNbEo3VDNsMzZ6b0Ewem5QbGtoRk9iUkw5d0svQXFBbXkwVDdjMHA4bkZXU01EdFRKSVZuUE10blVLOWxqMkFBRGk1eGhuRDgzczBmc3dLZWwvTGVsbkI4ZWkvYy9ockxmMXU2VHlFclk0V0VVMndyZVRyYk1BMFlGcWtkK05rTzdlNVBmdkhiUTlnaDdOenlWcVpXWmx4L1pNNHdEQmdUcGlmcXhMSDI5SE1xL2gvaTg5MjFvWlRXR3l1a2NlelFBS2U0bkZad1FuTDZCck5QZ3YvcDdwYzd2aTY2RFc4eGxoVzJDL2svWXdlQ0l6aGJGa2hJQnRvNFBMazMzQUVvREtmaHRLaVBVNVdHWW8vY3E5OUlKS1Fta2Q5R1RzQU8yakd2TWdFTzhCdlYzTzB2SlZCYktXcTNSaEJTSlZsVGxhY3Y1TWVkbk1PNzBSWFhaQ1ovTEh5VmtaUmhOc2ltUW40Z3RQWUtIUDdNeDVYUlpuK3dYb0FEUnhPQklwbzNpNjE3TWVSaEZVdHBsSmNCdmVjL2oxNUt0b3FnL1FBNWpoYURpU2lJbThVWDVZQjdCTGFPTmt2a2l4dWpUcjlnNTRJTkZ3K3l6RE9NVzBpa29DNW5NVjJHZHdEL2RKeHpHcXd5eDNLODFrTUxrc1VYbGhoY3lJTHJ2cE1vSmhNbmhKM2hiM3RKNHdld0RyMUFUS09ISE43WkVQYWViUnd0RzgwMjhmK042UW4vUWw4dlZObGNuVzJYNGJ4SXpWc1pBZDZtMk9ZVEZrWmZUL3M0VXFHcEt2eW9CdDZQbU9VUEpoaEhNeWdDRjl1bjlBazV2ZnRwWmNkZEVoZit1UGdnc2RqV2FSNWdJempZdnRTZEpYdG1sWVFtc2pvZjhJM25NM01kRGJBeFEydjkvTjNlVExqQXErR2pYU3hqaGxPWjVuOWQzeEttM1JmVE9waVQvK2RySkV2TTR6aVBCcHRoYll6ZCtzZW9kL3dIdlhUZnkreEN3SFlvUjVBQm5LQk9TZGlDYmlEZG53bncvOWlEQWJSbWkzcGI0aHhWTTVJT3NpckdjYlgxTElScjlrM09ieE96Y1JiZmh1WHhXWHkzSlVBRkdFKzFaUlRRaHlRanptZjVYRnBqS3ZMUWJmU2tSL2xXeUVPd0REcXh5ZjlYVjdRK1JYZmNxYjhLOFJmc29tTEdCRDJRZC9wRWdCWXdDRTBsSmVGK0ZNbTBJb1A0OVlvdDh0NDM2TThKOGpUUXZ5T0xWelBqV0ZkOFIwRTQ3aTh2SXptTFBsYmlQOWhGRDNqdWlucUlNZmw3ZVo4UnNyalF2ektTbHJUTWI1N0l0M3Y1TnZEYUVwU1Q1NFhpV2NiOTNGUnZNL05DbU1ycitVZERFMmNEeStFeUJ6Mk1weTJ2QlAzaTlQRFM5SjJQSy9UWUVRaXNZem1UajdLaEthRytaWStpaEhvK20rUk5DWnpLd3N5cGJFSGhWajJXcG94TUY3TEhvUUl0ZHYvRmcxb21UbnBUd1RqOUJ5ZW9JVmlRMlE1dXhqSkFEN090R2FiU09yb3dnQ09WSXlJTE9VTG51Vkp2czdFcGtjMVU1K2ZDN21ES29vVmtXV2QvaWs4elp1Wk85Q044bE5kZmpyVG14cUtHcEVWTE9VVlh1REx6SDZJNkwvVjE2QUxsMUJLOFNNeWxzOFp5WXVaTjk2UGh3QUE1T00wV3RDTTJxRitoUkRDTFQ4emd3bU15NHd2L0hFV2dQOVFqRk01Z1dya1VJMURGRjhpcGxnKzRRUGU1YjNzdS9EVXhLWWRwU2xNVVE2bE1BVVVjVEZoYkFhYzhsU0F1alNrSWZVbzQ3enNIMWpNREdZeGkyK3oxY1ZhcnkreWhlTFVvaVkxcVVGRlNnZEkrdFVzWndsTFdjcnE3RC9JWEFJZ3NwR0RxVWhGS25BRXhTbE9TVXBRaEh3VUJncVJIOHQzd0M1MnNKTnYyTXczYkdJemExbk41M3lUTEVQOVA3MzNhZitEUVdUbEFBQUFBRWxGVGtTdVFtQ0NcIiIsImltcG9ydCBjYWxsV2l0aFJldHJ5IGZyb20gJy4uL2NhbGxfd2l0aF9yZXRyeSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdEcml2ZUNvcGllciB7XG4gIHN0YXRpYyBjb3B5KGZvbGRlciwgcGFyZW50KSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIEdEcml2ZUNvcGllci5nQXBpQ29weUZvbGRlcihmb2xkZXIsIHBhcmVudCkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHJlc3BvbnNlLnJlc3VsdDtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXTtcblxuICAgICAgICBmb2xkZXIuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICAgICAgaWYgKGNoaWxkLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKEdEcml2ZUNvcGllci5jb3B5KGNoaWxkLCB0YXJnZXQpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgR0RyaXZlQ29waWVyLmdBcGlDb3B5RmlsZShjaGlsZCwgdGFyZ2V0KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgY29waWVkIGZpbGUgJHtjaGlsZC5uYW1lfWApO1xuICAgICAgICAgICAgICB9LCByZWplY3QpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgY29waWVkIGZvbGRlciAke2ZvbGRlci5uYW1lfWApO1xuICAgICAgICB9LCByZWplY3QpO1xuICAgICAgfSwgcmVqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBnQXBpQ29weUZvbGRlcihmb2xkZXIsIHBhcmVudCkge1xuICAgIHJldHVybiBjYWxsV2l0aFJldHJ5KCgpID0+IHtcbiAgICAgIHJldHVybiBnYXBpLmNsaWVudC5kcml2ZS5maWxlcy5jcmVhdGUoe1xuICAgICAgICByZXNvdXJjZToge1xuICAgICAgICAgIG5hbWU6IGZvbGRlci5uYW1lLFxuICAgICAgICAgIG1pbWVUeXBlOiAnYXBwbGljYXRpb24vdm5kLmdvb2dsZS1hcHBzLmZvbGRlcicsXG4gICAgICAgICAgcGFyZW50czogcGFyZW50LmlkID8gW3BhcmVudC5pZF0gOiBudWxsXG4gICAgICAgIH0sXG4gICAgICAgIGZpZWxkczogJ2lkLCBuYW1lJ1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZ0FwaUNvcHlGaWxlKGZpbGUsIHRhcmdldCkge1xuICAgIHJldHVybiBjYWxsV2l0aFJldHJ5KCgpID0+IHtcbiAgICAgIHJldHVybiBnYXBpLmNsaWVudC5kcml2ZS5maWxlcy5jb3B5KHtcbiAgICAgICAgZmlsZUlkOiBmaWxlLmlkLFxuICAgICAgICByZXNvdXJjZToge1xuICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICBwYXJlbnRzOiBbdGFyZ2V0LmlkXVxuICAgICAgICB9LFxuICAgICAgICBmaWVsZHM6ICdpZCwgbmFtZSdcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iLCJpbXBvcnQgYWlyYnJha2UgZnJvbSAnLi9haXJicmFrZSc7XG5cbmltcG9ydCB7IGluaXRHQXBpQ2xpZW50LCBjcmVhdGVHQXBpUGlja2VyQnVpbGRlciB9IGZyb20gJy4vZ2FwaSc7XG5pbXBvcnQgR0RyaXZlQ29waWVyIGZyb20gJy4vbW9kZWxzL2dkcml2ZV9jb3BpZXInO1xuXG5pbXBvcnQgJy4vc3R5bGVzaGVldHMvY2xpZW50LnNjc3MnO1xuaW1wb3J0IHdpZGdldFRlbXBsYXRlIGZyb20gJy4vd2lkZ2V0LmVqcyc7XG5cbigoKSA9PiB7XG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jLW1hZ2ljLWxpbmsnKS5mb3JFYWNoKGxpbmsgPT4ge1xuICAgIGxpbmsuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlckVuZCcsIHdpZGdldFRlbXBsYXRlKHsgbGluayB9KSk7XG4gICAgbGluay5yZW1vdmUoKTtcbiAgfSk7XG5cbiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmMtY29waWVyX19zdGFydC1saW5rJykuZm9yRWFjaChsaW5rID0+IHtcbiAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZXZ0ID0+IHtcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCBwaWNrZXIgPSBjcmVhdGVHQXBpUGlja2VyQnVpbGRlcigpXG4gICAgICAgIC5zZXRPQXV0aFRva2VuKFxuICAgICAgICAgIGdhcGkuYXV0aDJcbiAgICAgICAgICAgIC5nZXRBdXRoSW5zdGFuY2UoKVxuICAgICAgICAgICAgLmN1cnJlbnRVc2VyLmdldCgpXG4gICAgICAgICAgICAuZ2V0QXV0aFJlc3BvbnNlKCkuYWNjZXNzX3Rva2VuXG4gICAgICAgIClcbiAgICAgICAgLnNldENhbGxiYWNrKGRhdGEgPT4ge1xuICAgICAgICAgIGlmIChkYXRhLmFjdGlvbiAhPT0gZ29vZ2xlLnBpY2tlci5BY3Rpb24uUElDS0VEKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc3BsaXQgPSBsaW5rLmhyZWYuc3BsaXQoJy8vJyk7XG4gICAgICAgICAgY29uc3QgZW5jb2RlZCA9IHNwbGl0W3NwbGl0Lmxlbmd0aCAtIDFdO1xuICAgICAgICAgIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHdpbmRvdy5hdG9iKGVuY29kZWQpKSk7XG5cbiAgICAgICAgICBjb25zdCBjb3BpZXIgPSBsaW5rLmNsb3Nlc3QoJy5jLWNvcGllcicpO1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBjb3BpZXIucXVlcnlTZWxlY3RvcignLmMtY29waWVyX19tZXNzYWdlJyk7XG4gICAgICAgICAgY29uc3Qgc3RhcnRJY29uID0gY29waWVyLnF1ZXJ5U2VsZWN0b3IoJy5jLWNvcGllcl9fc3RhcnQnKTtcbiAgICAgICAgICBjb25zdCBwcm9ncmVzc0ljb24gPSBjb3BpZXIucXVlcnlTZWxlY3RvcignLmMtY29waWVyX19wcm9ncmVzcycpO1xuICAgICAgICAgIGNvbnN0IGZpbmlzaGVkSWNvbiA9IGNvcGllci5xdWVyeVNlbGVjdG9yKCcuYy1jb3BpZXJfX2ZpbmlzaGVkJyk7XG5cbiAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICdDb3B5aW5nIGZpbGVzLCBjaGVjayB5b3VyIEdvb2dsZSBEcml2ZSBmb2xkZXIuLi4nO1xuICAgICAgICAgIG1lc3NhZ2UuY2xhc3NMaXN0LnJlbW92ZSgnby1oaWRkZW4nKTtcbiAgICAgICAgICBzdGFydEljb24uY2xhc3NMaXN0LmFkZCgnby1oaWRkZW4nKTtcbiAgICAgICAgICBwcm9ncmVzc0ljb24uY2xhc3NMaXN0LnJlbW92ZSgnby1oaWRkZW4nKTtcblxuICAgICAgICAgIEdEcml2ZUNvcGllci5jb3B5KEpTT04ucGFyc2UoZGVjb2RlZCksIHsgaWQ6IGRhdGEuZG9jc1swXS5pZCB9KVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICBwcm9ncmVzc0ljb24uY2xhc3NMaXN0LmFkZCgnby1oaWRkZW4nKTtcbiAgICAgICAgICAgICAgZmluaXNoZWRJY29uLmNsYXNzTGlzdC5yZW1vdmUoJ28taGlkZGVuJyk7XG4gICAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gJ0RvbmUhJztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdDYXVnaHQgZXJyb3IgYXQgdG9wIGxldmVsOicpO1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgYWlyYnJha2Uubm90aWZ5KEpTT04uc3RyaW5naWZ5KGVycm9yLnJlc3VsdC5lcnJvcikpO1xuICAgICAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9XG4gICAgICAgICAgICAgICAgXCJXZSdyZSBoYXZpbmcgc29tZSBpc3N1ZXMgY29weWluZyB0aGUgZmlsZXMgdG8geW91ciBHb29nbGUgRHJpdmUsPGJyPlwiICtcbiAgICAgICAgICAgICAgICAncGxlYXNlIHVzZSB0aGUgcHJldmlldyBsaW5rIHRvIG9wZW4gdGhlbSBpbiB5b3VyIHdlYiBicm93c2VyJztcbiAgICAgICAgICAgICAgbWVzc2FnZS5jbGFzc0xpc3QuYWRkKCdvLWVycm9yJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAgIHBpY2tlci5zZXRWaXNpYmxlKHRydWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBnYXBpLmxvYWQoJ2NsaWVudDphdXRoMicsICgpID0+IHtcbiAgICBpbml0R0FwaUNsaWVudCgnY2xpZW50Jyk7XG4gICAgZ2FwaS5sb2FkKCdwaWNrZXInKTtcbiAgfSk7XG59KSgpO1xuXG4vLyBwcmV2ZW50IEZVT0NcbmRvY3VtZW50LmJvZHkuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4iXSwic291cmNlUm9vdCI6IiJ9