@datagrok/peptides 1.17.11 → 1.17.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/997.js CHANGED
@@ -1,2 +1,2 @@
1
- var peptides;(()=>{"use strict";var t,e,n={m:{},u:t=>t+".js"};n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{var t;n.g.importScripts&&(t=n.g.location+"");var e=n.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var s=r.length-1;s>-1&&!t;)t=r[s--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=t})(),n.b=self.location+"",(e=t||(t={})).EUCLIDEAN="EUCLIDEAN",e.MANHATTAN="MANHATTAN";const r=t=>null==t;function s(t,e,n,r){if(n>t[t.length-1])return;const s=t.findIndex((t=>n<t));t.pop(),t.splice(s,0,n),e.pop(),e.splice(s,0,r)}class o{_workerCount;constructor(){this._workerCount=Math.max(navigator.hardwareConcurrency-2,1)}async calcMultiColumn(e,r,s,o=[{}],a=[1],l=t.EUCLIDEAN){const i=e[0].length*(e[0].length-1)/2,h=Math.floor(i/this._workerCount),c=e[0].length>2e4?await this.getMinimalThreshold(e,r,o,a,l):0;s<c&&(console.log(`using threshold ${c}`),s=c),o.forEach(((t,e)=>o[e].threshold=s));const u=new Array(this._workerCount),g=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(23),n.b))));for(let t=0;t<this._workerCount;t++)u[t]=new Promise(((n,c)=>{const u=t*h,f=t===this._workerCount-1?i:(t+1)*h;f<=u&&n({i:new Int32Array(0),j:new Int32Array(0),distance:new Float32Array(0),idx:t}),g[t].postMessage({values:e,startIdx:u,endIdx:f,threshold:s,fnNames:r,opts:o,weights:a,aggregationMethod:l}),g[t].onmessage=({data:{error:e,i:r,j:s,distance:o}})=>{e?(g[t].terminate(),c(e)):(g[t].terminate(),n({i:r,j:s,distance:o,idx:t}))}}));const f=await Promise.all(u),m=f.reduce(((t,e)=>t+e.i.length),0),w=new Int32Array(m),d=new Int32Array(m),p=new Float32Array(m);let y=0;for(const t of f)w.set(t.i,y),d.set(t.j,y),p.set(t.distance,y),y+=t.i.length;return{i:w,j:d,distance:p}}async calc(t,e,n,r={}){return await this.calcMultiColumn([t],[e],n,[r],[1])}async getKNN(t,e,n=15,r={}){return await this.multiColumnKNN([t],[e],n,[r],[1])}async getThresholdKNN(t,e,n=.8,r={}){return await this.multiColumnThresholdKnn([t],[e],n,[r],[1])}async multiColumnThresholdKnn(e,r,s=.8,o,a,l=t.EUCLIDEAN){if(e.length!==r.length||e.length!==o.length||e.length!==a.length)throw new Error("values, distance functions, options and weights arrays should have the same length");if(e.some((t=>t.length!==e[0].length)))throw new Error("all values arrays should have the same length");const i=e[0].length*(e[0].length-1)/2,h=Math.floor(i/this._workerCount),c=new Array(this._workerCount),u=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(427),n.b))));for(let t=0;t<this._workerCount;t++)c[t]=new Promise(((n,c)=>{const g=t*h,f=t===this._workerCount-1?i:(t+1)*h;f<=g&&n({knnDistances:new Array(0),knnIndexes:new Array(0)}),u[t].postMessage({values:e,startIdx:g,endIdx:f,fnNames:r,opts:o,threshold:s,weights:a,aggregationMethod:l}),u[t].onmessage=({data:{error:e,knnDistances:r,knnIndexes:s}})=>{e?(u[t].terminate(),c(e)):(u[t].terminate(),n({knnDistances:r,knnIndexes:s}))}}));const g=await Promise.all(c),f=new Int32Array(e[0].length);for(const t of g)for(let n=0;n<e[0].length;++n)f[n]+=t.knnIndexes[n]?.length??0;const m={knnDistances:new Array(e[0].length).fill(null).map(((t,e)=>new Array(f[e]))),knnIndexes:new Array(e[0].length).fill(null).map(((t,e)=>new Array(f[e])))};for(const t of g)for(let n=0;n<e[0].length;++n)for(let e=0;e<t.knnDistances[n]?.length;++e)m.knnDistances[n][f[n]-1]=t.knnDistances[n][e],m.knnIndexes[n][f[n]-1]=t.knnIndexes[n][e],f[n]-=1;return m}async multiColumnKNN(e,r,o=15,a,l,i=t.EUCLIDEAN){if(e.length!==r.length||e.length!==a.length||e.length!==l.length)throw new Error("values, distance functions, options and weights arrays should have the same length");if(e.some((t=>t.length!==e[0].length)))throw new Error("all values arrays should have the same length");const h=e[0].length*(e[0].length-1)/2,c=Math.floor(h/this._workerCount),u=new Array(this._workerCount),g=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(282),n.b))));for(let t=0;t<this._workerCount;t++)u[t]=new Promise(((n,s)=>{const u=t*c,f=t===this._workerCount-1?h:(t+1)*c;f<=u&&n({knnDistances:new Array(0),knnIndexes:new Array(0)}),g[t].postMessage({values:e,startIdx:u,endIdx:f,fnNames:r,opts:a,nNeighbours:o,weights:l,aggregationMethod:i}),g[t].onmessage=({data:{error:e,knnDistances:r,knnIndexes:o}})=>{e?(g[t].terminate(),s(e)):(g[t].terminate(),n({knnDistances:r,knnIndexes:o}))}}));const f=await Promise.all(u),m={knnDistances:new Array(e[0].length).fill(null).map((()=>new Array(o).fill(99999))),knnIndexes:new Array(e[0].length).fill(null).map((()=>new Array(o).fill(-1)))};for(const t of f)for(let n=0;n<e[0].length;++n)for(let e=0;e<t.knnDistances[n]?.length;++e)s(m.knnDistances[n],m.knnIndexes[n],t.knnDistances[n][e],t.knnIndexes[n][e]);return m}async getSampleDistances(e,r,s=[],o,a=t.EUCLIDEAN){const l=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(40),n.b))));try{const t=e[0].length*(e[0].length-1)/2,n=Math.floor(t/this._workerCount),i=1e6,h=Math.max(Math.min(t/1e3,i),Math.min(t,i)),c=Math.floor(h/this._workerCount),u=new Array(this._workerCount);for(let i=0;i<this._workerCount;i++)u[i]=new Promise(((h,u)=>{const g=i*n,f=i===this._workerCount-1?t:(i+1)*n;l[i].postMessage({values:e,startIdx:g,endIdx:f,sampleLength:c,fnNames:r,opts:s,weights:o,aggregationMethod:a}),l[i].onmessage=({data:{error:t,distance:e}})=>{l[i].terminate(),t?u(t):h({distance:e})}}));const g=await Promise.all(u),f=g.reduce(((t,e)=>t+e.distance.length),0),m=new Float32Array(f);let w=0;for(const t of g)m.set(t.distance,w),w+=t.distance.length;return m.sort(),m}catch(t){return l?.forEach((t=>t?.terminate())),console.error(t),new Float32Array(1).fill(.5)}}async getMinimalThreshold(e,n,r=[],s,o=t.EUCLIDEAN){try{const t=e.length*(e.length-1)/2,a=await this.getSampleDistances(e,n,r,s,o);return 1-a[Math.floor(7e7/t*a.length)]}catch(t){return console.error(t),.5}}static calcSync(t,e,n,s){const o=[],a=[],l=[];let i=0,h=0,c=0;const u=t.length*(t.length-1)/2;for(;i<u;){const e=r(t[h])||r(t[c])?1:n(t[h],t[c]);1-e>=s&&(o.push(h),a.push(c),l.push(e)),i++,c++,c===t.length&&(h++,c=h+1)}return{i:new Int32Array(o),j:new Int32Array(a),distance:new Float32Array(l)}}}async function a(t,e,n){const r=t.length,s=[],o=[];for(let a=0;a<r;a++)for(let l=a+1;l<r;l++){const r=t[a],i=t[l];e[r]?.[i]>=n&&(s.push(a),o.push(l))}return function(t,e,n){const r=new Float32Array(n.length).fill(0).map((()=>10*Math.random())),s=new Float32Array(n.length).fill(0).map((()=>10*Math.random())),o=new Float32Array(n.length).fill(0),a=new Float32Array(n.length).fill(0);for(let l=0;l<100;l++){const i=1-l/100;o.fill(0),a.fill(0);for(let n=0;n<t.length;n++){const l=t[n],h=e[n],c=r[l]-r[h],u=s[l]-s[h];Math.abs(c)>=1&&(o[l]-=i*c,o[h]+=i*c),Math.abs(u)>=1&&(a[l]-=i*u,a[h]+=i*u)}for(let t=0;t<n.length;t++){const e=Math.sqrt(o[t]*o[t]+a[t]*a[t]);e>0&&(r[t]+=o[t]/e*i,s[t]+=a[t]/e*i)}}let l=r[0],i=s[0],h=r[0],c=s[0];for(let t=1;t<n.length;t++)l=Math.min(l,r[t]),i=Math.min(i,s[t]),h=Math.max(h,r[t]),c=Math.max(c,s[t]);let u=h-l,g=c-i;0===u&&(u=h);for(let t=0;t<n.length;t++)r[t]=(r[t]-l)/u/2+.5;0===g&&(g=c);for(let t=0;t<n.length;t++)s[t]=(s[t]-i)/g/2+.5;return{embedX:r,embedY:s}}(s,o,t)}const l={expandFactor:2,maxIterations:5,inflateFactor:2,multFactor:1};class i{_options;constructor(t={}){this._options={...l,...t}}async transform(t,e){let n=this.toObjectForm(t);if(this._options.maxIterations>0){this.addLoops(n,e),this.normalize(n);for(let t=0;t<this._options.maxIterations;t++)n=this.expand(n,e),this.inflate(n),this.normalize(n)}const{clusters:r,is:s,js:o}=this.assignClusters(n,e);this.correctClusters(r);const a=await this.layout(r,n,e);return{clusters:r,embedX:a.embedX,embedY:a.embedY,is:s,js:o}}correctClusters(t){const e={};for(const n of t)e[n]||(e[n]=0),e[n]++;const n=Object.keys(e).map(Number).sort(((t,n)=>e[t]-e[n])),r={};n.forEach(((t,e)=>r[t]=e+1));for(let e=0;e<t.length;e++)t[e]=r[t[e]]}async layout(t,e,n){const r=new Float32Array(n).fill(0),s=new Float32Array(n).fill(0),o={};t.forEach(((t,e)=>{o[t]||(o[t]=[]),o[t].push(e)}));let l=0;const i=Object.keys(o);i.sort(((t,e)=>o[e].length-o[t].length));let h=6,c=0;for(const t of i){const n=o[t],i=await a(n,e,.001);l===Math.ceil(h/1.5)&&(l=0,c+=5/h,h=Math.ceil(1.5*h));const u=l%h*5/h*1.5;for(let t=0;t<i.embedX.length;t++)r[n[t]]=5*i.embedX[t]/h+u,s[n[t]]=5*i.embedY[t]/h+c;l++}return{embedX:r,embedY:s}}mergeClusters(t,e,n){const r=t[e],s=t[n];for(let e=0;e<t.length;e++)t[e]===s&&(t[e]=r)}assignClusters(t,e){let n=0;const r=[],s=[],o=Math.floor(Math.max(Math.log10(e),2))+1,a=Math.pow(10,o),l=new Array(e).fill(-1);for(const e of Object.keys(t))for(const o of Object.keys(t[e]))Math.round(t[e][o]*a)/a>0&&t[e][o]!==Number(e)&&Number(o)>Number(e)&&(r.push(Number(e)),s.push(Number(o)),-1!==l[Number(e)]&&-1!==l[Number(o)]?l[Number(e)]!==l[Number(o)]&&this.mergeClusters(l,Number(e),Number(o)):-1!==l[Number(e)]?l[Number(o)]=l[Number(e)]:-1!==l[Number(o)]?l[Number(e)]=l[Number(o)]:(n++,l[Number(e)]=n,l[Number(o)]=n));for(let t=0;t<l.length;t++)-1===l[t]&&(n++,l[t]=n);return{clusters:l,is:r,js:s}}toObjectForm(t){const e={};for(let n=0;n<t.i.length;n++)e[t.i[n]]||(e[t.i[n]]={}),e[t.i[n]][t.j[n]]=1-t.distance[n],e[t.j[n]]||(e[t.j[n]]={}),e[t.j[n]][t.i[n]]=1-t.distance[n];return e}addLoops(t,e){for(let n=0;n<e;n++)t[n]||(t[n]={}),t[n][n]=this._options.multFactor}normalize(t){for(const e of Object.keys(t)){const n=t[e];let r=0;for(const t of Object.keys(n))r+=n[t];if(0!==r)for(const s of Object.keys(n))t[e][s]/=r}}expand(t,e){const n={},r=Math.floor(Math.max(Math.log10(e),2))+1,s=Math.pow(10,r);for(let r=0;r<e;r++)if(t[r]){n[r]={};for(let o=r;o<e;o++){if(!t[r]?.[o])continue;const e=this.getExpandValue(t,r,o);Math.round(e*s)/s>0&&(n[r][o]=e,n[o]||(n[o]={}),n[o][r]=e)}}return n}inflate(t){for(const e of Object.keys(t)){const n=t[e];for(const r of Object.keys(n))t[e][r]=Math.pow(t[e][r],this._options.inflateFactor)}}getExpandValue(t,e,n){let r=0;const s=Object.keys(t[e]??{}),o=Object.keys(t[n]??{});for(const a of s)o.includes(a)&&(r+=t[e][a]*t[n][a]);return r}}onmessage=async t=>{const{data:e,threshold:n,weights:r,aggregationMethod:s,distanceFnArgs:a,distanceFns:l,maxIterations:h}=t.data,c=await(new o).calcMultiColumn(e,l,n/100,a,r,s),u=await new i({maxIterations:h??5}).transform(c,e[0].length);postMessage({res:u})},peptides={}})();
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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MkosU0FBU0gsY0FDeEUsQ0FDSixDQUNBLGNBQUEwQyxDQUFlcEUsRUFBYzFHLEVBQUd3RCxHQUM1QixJQUFJYSxFQUFNLEVBQ1YsTUFBTTBHLEVBQWlCNUwsT0FBT29LLEtBQUs3QyxFQUFhMUcsSUFBTSxDQUFDLEdBQ2pEZ0wsRUFBZTdMLE9BQU9vSyxLQUFLN0MsRUFBYWxELElBQU0sQ0FBQyxHQUNyRCxJQUFLLE1BQU02RyxLQUFLVSxFQUNSQyxFQUFhQyxTQUFTWixLQUN0QmhHLEdBQU9xQyxFQUFhMUcsR0FBR3FLLEdBQUszRCxFQUFhbEQsR0FBRzZHLElBRXBELE9BQU9oRyxDQUNYLEVDN01KVCxVQUFZMkMsTUFBTzJFLElBQ2YsTUFBTSxLQUFFckgsRUFBSSxVQUFFakMsRUFBUyxRQUFFRSxFQUFPLGtCQUFFQyxFQUFpQixlQUFFb0osRUFBYyxZQUFFQyxFQUFXLGNBQUVqRCxHQUFrQitDLEVBQU1ySCxLQUNwR3dILFFBQWUsSUFBSW5LLEdBQ3BCTyxnQkFBZ0JvQyxFQUFNdUgsRUFBYXhKLEVBQVksSUFBS3VKLEVBQWdCckosRUFBU0MsR0FDNUV3QyxRQUFZLElBQUkrRCxFQUFpQixDQUFFSCxjQUFlQSxHQUFpQixJQUFLSyxVQUFVNkMsRUFBUXhILEVBQUssR0FBRzlELFFBQ3hHNEQsWUFBWSxDQUFFWSxPQUFNLEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9kaXN0YW5jZS1tYXRyaXgvdHlwZXMuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvaW1wb3J0U2NyaXB0cyBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL2Rpc3RhbmNlLW1hdHJpeC91dGlscy5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9kaXN0YW5jZS1tYXRyaXgvc3BhcnNlLW1hdHJpeC1zZXJ2aWNlLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9iaW8tbGF5b3V0LmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9tYXJjb3YtY2x1c3Rlci5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9NQ0wvbWNsLXdvcmtlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzO1xuKGZ1bmN0aW9uIChEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcykge1xuICAgIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzW1wiRVVDTElERUFOXCJdID0gXCJFVUNMSURFQU5cIjtcbiAgICBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kc1tcIk1BTkhBVFRBTlwiXSA9IFwiTUFOSEFUVEFOXCI7XG59KShEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyB8fCAoRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMgPSB7fSkpO1xuO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pYTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMGVYQmxjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeE5RVUZOTEVOQlFVNHNTVUZCV1N3d1FrRkhWRHRCUVVoSUxGZEJRVmtzTUVKQlFUQkNPMGxCUTJ4RExIRkVRVUYxUWl4RFFVRkJPMGxCUTNaQ0xIRkVRVUYxUWl4RFFVRkJPMEZCUTNwQ0xFTkJRVU1zUlVGSVV5d3dRa0ZCTUVJc1MwRkJNVUlzTUVKQlFUQkNMRkZCUjI1RE8wRkJRVUVzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbVY0Y0c5eWRDQmxiblZ0SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlJ6SUh0Y2JpQWdJQ0JGVlVOTVNVUkZRVTRnUFNBblJWVkRURWxFUlVGT0p5eGNiaUFnSUNCTlFVNUlRVlJVUVU0Z1BTQW5UVUZPU0VGVVZFRk9KeXhjYmlBZ2ZUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkNBOUlHdGxlVzltSUhSNWNHVnZaaUJFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtjenRjYmlKZGZRPT0iLCIvLyBUaGUgcmVxdWlyZSBzY29wZVxudmFyIF9fd2VicGFja19yZXF1aXJlX18gPSB7fTtcblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiBcIlwiICsgY2h1bmtJZCArIFwiLmpzXCI7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsInZhciBzY3JpcHRVcmw7XG5pZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5nLmltcG9ydFNjcmlwdHMpIHNjcmlwdFVybCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5sb2NhdGlvbiArIFwiXCI7XG52YXIgZG9jdW1lbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcuZG9jdW1lbnQ7XG5pZiAoIXNjcmlwdFVybCAmJiBkb2N1bWVudCkge1xuXHRpZiAoZG9jdW1lbnQuY3VycmVudFNjcmlwdClcblx0XHRzY3JpcHRVcmwgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYztcblx0aWYgKCFzY3JpcHRVcmwpIHtcblx0XHR2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpO1xuXHRcdGlmKHNjcmlwdHMubGVuZ3RoKSB7XG5cdFx0XHR2YXIgaSA9IHNjcmlwdHMubGVuZ3RoIC0gMTtcblx0XHRcdHdoaWxlIChpID4gLTEgJiYgIXNjcmlwdFVybCkgc2NyaXB0VXJsID0gc2NyaXB0c1tpLS1dLnNyYztcblx0XHR9XG5cdH1cbn1cbi8vIFdoZW4gc3VwcG9ydGluZyBicm93c2VycyB3aGVyZSBhbiBhdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIHlvdSBtdXN0IHNwZWNpZnkgYW4gb3V0cHV0LnB1YmxpY1BhdGggbWFudWFsbHkgdmlhIGNvbmZpZ3VyYXRpb25cbi8vIG9yIHBhc3MgYW4gZW1wdHkgc3RyaW5nIChcIlwiKSBhbmQgc2V0IHRoZSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyB2YXJpYWJsZSBmcm9tIHlvdXIgY29kZSB0byB1c2UgeW91ciBvd24gbG9naWMuXG5pZiAoIXNjcmlwdFVybCkgdGhyb3cgbmV3IEVycm9yKFwiQXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXJcIik7XG5zY3JpcHRVcmwgPSBzY3JpcHRVcmwucmVwbGFjZSgvIy4qJC8sIFwiXCIpLnJlcGxhY2UoL1xcPy4qJC8sIFwiXCIpLnJlcGxhY2UoL1xcL1teXFwvXSskLywgXCIvXCIpO1xuX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gc2NyaXB0VXJsOyIsIl9fd2VicGFja19yZXF1aXJlX18uYiA9IHNlbGYubG9jYXRpb24gKyBcIlwiO1xuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGNodW5rc1xuLy8gXCIxXCIgbWVhbnMgXCJhbHJlYWR5IGxvYWRlZFwiXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHQ5OTc6IDFcbn07XG5cbi8vIG5vIGNodW5rIGluc3RhbGwgZnVuY3Rpb24gbmVlZGVkXG4vLyBubyBjaHVuayBsb2FkaW5nXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3QiLCJpbXBvcnQgeyBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyB9IGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IGNvbnN0IGlzTmlsID0gKHgpID0+IHggPT09IG51bGwgfHwgeCA9PT0gdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIGluc2VydFNtYWxsZXIoZGlzdGFuY2VzQXIsIGluZGV4ZXMsIG51bSwgaW5kZXgpIHtcbiAgICBpZiAobnVtID4gZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoIC0gMV0pXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtIDwgdik7XG4gICAgZGlzdGFuY2VzQXIucG9wKCk7XG4gICAgZGlzdGFuY2VzQXIuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBudW0pO1xuICAgIGluZGV4ZXMucG9wKCk7XG4gICAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRMYXJnZXIoZGlzdGFuY2VzQXIsIGluZGV4ZXMsIG51bSwgaW5kZXgpIHtcbiAgICBpZiAobnVtIDwgZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoIC0gMV0pXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtID4gdik7XG4gICAgZGlzdGFuY2VzQXIucG9wKCk7XG4gICAgZGlzdGFuY2VzQXIuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBudW0pO1xuICAgIGluZGV4ZXMucG9wKCk7XG4gICAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uKGFnZ3JlZ2F0aW9uTWV0aG9kLCB3ZWlnaHRzKSB7XG4gICAgc3dpdGNoIChhZ2dyZWdhdGlvbk1ldGhvZCkge1xuICAgICAgICBjYXNlIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLk1BTkhBVFRBTjpcbiAgICAgICAgICAgIHJldHVybiAodnMpID0+IHZzLnJlZHVjZSgoYWNjLCB2YWwsIGlkeCkgPT4gYWNjICsgdmFsICogd2VpZ2h0c1tpZHhdLCAwKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiAodnMpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBldWNsaWRlYW5cbiAgICAgICAgICAgICAgICBjb25zdCBzdW0gPSB2cy5yZWR1Y2UoKGFjYywgdmFsLCBpZHgpID0+IGFjYyArICh2YWwgKiB3ZWlnaHRzW2lkeF0pICoqIDIsIDApO1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLnNxcnQoc3VtKTtcbiAgICAgICAgICAgIH07XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFhScGJITXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMWRHbHNjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEVWQlFUUkNMREJDUVVFd1FpeEZRVUZETEUxQlFVMHNVMEZCVXl4RFFVRkRPMEZCUlRsRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eExRVUZMTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1UwRkJVeXhEUVVGRE8wRkJSUzlFTEUxQlFVMHNWVUZCVlN4aFFVRmhMRU5CUVVNc1YwRkJjVUlzUlVGQlJTeFBRVUZwUWl4RlFVRkZMRWRCUVZjc1JVRkJSU3hMUVVGaE8wbEJRMmhITEVsQlFVa3NSMEZCUnl4SFFVRkhMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zVFVGQlRTeEhRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjZReXhQUVVGUE8wbEJSVlFzVFVGQlRTeFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRekZFTEZkQlFWY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOc1FpeFhRVUZYTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEZUVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzBsQlEyUXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTNoRExFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNXVUZCV1N4RFFVRkRMRmRCUVhGQ0xFVkJRVVVzVDBGQmFVSXNSVUZCUlN4SFFVRlhMRVZCUVVVc1MwRkJZVHRKUVVNdlJpeEpRVUZKTEVkQlFVY3NSMEZCUnl4WFFVRlhMRU5CUVVNc1YwRkJWeXhEUVVGRExFMUJRVTBzUjBGQlF5eERRVUZETEVOQlFVTTdVVUZEZWtNc1QwRkJUenRKUVVWVUxFMUJRVTBzVjBGQlZ5eEhRVUZITEZkQlFWY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNeFJDeFhRVUZYTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkRiRUlzVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBsQlEzaERMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU5rTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTjRReXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhOQ1FVRnpRaXhEUVVOd1F5eHBRa0ZCTkVNc1JVRkJSU3hQUVVGcFFqdEpRVVV2UkN4UlFVRlJMR2xDUVVGcFFpeEZRVUZGTzFGQlEzcENMRXRCUVVzc01FSkJRVEJDTEVOQlFVTXNVMEZCVXp0WlFVTjJReXhQUVVGUExFTkJRVU1zUlVGQldTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzSkdPMWxCUTBVc1QwRkJUeXhEUVVGRExFVkJRVmtzUlVGQlJTeEZRVUZGTzJkQ1FVTjBRaXhaUVVGWk8yZENRVU5hTEUxQlFVMHNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNSMEZCUnl4SFFVRkhMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRE4wVXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEzaENMRU5CUVVNc1EwRkJRenRMUVVOTU8wRkJRMGdzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpDd2dSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpITjlJR1p5YjIwZ0p5NHZkSGx3WlhNbk8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2FYTk9hV3dnUFNBb2VEb2dZVzU1S1NBOVBpQjRJRDA5UFNCdWRXeHNJSHg4SUhnZ1BUMDlJSFZ1WkdWbWFXNWxaRHRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdsdWMyVnlkRk50WVd4c1pYSW9aR2x6ZEdGdVkyVnpRWEk2SUc1MWJXSmxjbHRkTENCcGJtUmxlR1Z6T2lCdWRXMWlaWEpiWFN3Z2JuVnRPaUJ1ZFcxaVpYSXNJR2x1WkdWNE9pQnVkVzFpWlhJcElIdGNiaUFnYVdZZ0tHNTFiU0ErSUdScGMzUmhibU5sYzBGeVcyUnBjM1JoYm1ObGMwRnlMbXhsYm1kMGFDMHhYU2xjYmlBZ0lDQnlaWFIxY200N1hHNWNiaUFnWTI5dWMzUWdibVYzVUc5emFYUnBiMjRnUFNCa2FYTjBZVzVqWlhOQmNpNW1hVzVrU1c1a1pYZ29LSFlwSUQwK0lHNTFiU0E4SUhZcE8xeHVJQ0JrYVhOMFlXNWpaWE5CY2k1d2IzQW9LVHRjYmlBZ1pHbHpkR0Z1WTJWelFYSXVjM0JzYVdObEtHNWxkMUJ2YzJsMGFXOXVMQ0F3TENCdWRXMHBPMXh1SUNCcGJtUmxlR1Z6TG5CdmNDZ3BPMXh1SUNCcGJtUmxlR1Z6TG5Od2JHbGpaU2h1WlhkUWIzTnBkR2x2Yml3Z01Dd2dhVzVrWlhncE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYVc1elpYSjBUR0Z5WjJWeUtHUnBjM1JoYm1ObGMwRnlPaUJ1ZFcxaVpYSmJYU3dnYVc1a1pYaGxjem9nYm5WdFltVnlXMTBzSUc1MWJUb2diblZ0WW1WeUxDQnBibVJsZURvZ2JuVnRZbVZ5S1NCN1hHNGdJR2xtSUNodWRXMGdQQ0JrYVhOMFlXNWpaWE5CY2x0a2FYTjBZVzVqWlhOQmNpNXNaVzVuZEdndE1WMHBYRzRnSUNBZ2NtVjBkWEp1TzF4dVhHNGdJR052Ym5OMElHNWxkMUJ2YzJsMGFXOXVJRDBnWkdsemRHRnVZMlZ6UVhJdVptbHVaRWx1WkdWNEtDaDJLU0E5UGlCdWRXMGdQaUIyS1R0Y2JpQWdaR2x6ZEdGdVkyVnpRWEl1Y0c5d0tDazdYRzRnSUdScGMzUmhibU5sYzBGeUxuTndiR2xqWlNodVpYZFFiM05wZEdsdmJpd2dNQ3dnYm5WdEtUdGNiaUFnYVc1a1pYaGxjeTV3YjNBb0tUdGNiaUFnYVc1a1pYaGxjeTV6Y0d4cFkyVW9ibVYzVUc5emFYUnBiMjRzSURBc0lHbHVaR1Y0S1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsZEVGblozSmxaMkYwYVc5dVJuVnVZM1JwYjI0b1hHNGdJR0ZuWjNKbFoyRjBhVzl1VFdWMGFHOWtPaUJFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtMQ0IzWldsbmFIUnpPaUJ1ZFcxaVpYSmJYVnh1S1RvZ0tIWmhiSFZsY3pvZ2JuVnRZbVZ5VzEwcElEMCtJRzUxYldKbGNpQjdYRzRnSUhOM2FYUmphQ0FvWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFwSUh0Y2JpQWdJQ0JqWVhObElFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJSekxrMUJUa2hCVkZSQlRqcGNiaUFnSUNBZ0lISmxkSFZ5YmlBb2RuTTZJRzUxYldKbGNsdGRLU0E5UGlCMmN5NXlaV1IxWTJVb0tHRmpZeXdnZG1Gc0xDQnBaSGdwSUQwK0lHRmpZeUFySUhaaGJDQXFJSGRsYVdkb2RITmJhV1I0WFN3Z01DazdYRzRnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUhKbGRIVnliaUFvZG5NNklHNTFiV0psY2x0ZEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUM4dklHVjFZMnhwWkdWaGJseHVJQ0FnSUNBZ0lDQmpiMjV6ZENCemRXMGdQU0IyY3k1eVpXUjFZMlVvS0dGall5d2dkbUZzTENCcFpIZ3BJRDArSUdGall5QXJJQ2gyWVd3Z0tpQjNaV2xuYUhSelcybGtlRjBwSUNvcUlESXNJREFwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVFdGMGFDNXpjWEowS0hOMWJTazdYRzRnSUNBZ0lDQjlPMXh1SUNCOVhHNTlYRzRpWFgwPSIsImltcG9ydCB7IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBpbnNlcnRTbWFsbGVyLCBpc05pbCB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IGNsYXNzIFNwYXJzZU1hdHJpeFNlcnZpY2Uge1xuICAgIF93b3JrZXJDb3VudDtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fd29ya2VyQ291bnQgPSBNYXRoLm1heChuYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeSAtIDIsIDEpO1xuICAgIH1cbiAgICBhc3luYyBjYWxjTXVsdGlDb2x1bW4odmFsdWVzLCBmbk5hbWVzLCB0aHJlc2hvbGQsIG9wdHMgPSBbe31dLCB3ZWlnaHRzID0gWzFdLCBhZ2dyZWdhdGlvbk1ldGhvZCA9IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLkVVQ0xJREVBTikge1xuICAgICAgICBjb25zdCBtYXRTaXplID0gdmFsdWVzWzBdLmxlbmd0aCAqICh2YWx1ZXNbMF0ubGVuZ3RoIC0gMSkgLyAyO1xuICAgICAgICBjb25zdCBjaHVua1NpemUgPSBNYXRoLmZsb29yKG1hdFNpemUgLyB0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IG1pblRocmVzaG9sZCA9IHZhbHVlc1swXS5sZW5ndGggPiAyMDAwMCA/XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldE1pbmltYWxUaHJlc2hvbGQodmFsdWVzLCBmbk5hbWVzLCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCkgOiAwO1xuICAgICAgICBpZiAodGhyZXNob2xkIDwgbWluVGhyZXNob2xkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgdXNpbmcgdGhyZXNob2xkICR7bWluVGhyZXNob2xkfWApO1xuICAgICAgICAgICAgdGhyZXNob2xkID0gbWluVGhyZXNob2xkO1xuICAgICAgICB9XG4gICAgICAgIG9wdHMuZm9yRWFjaCgoXywgaSkgPT4gb3B0c1tpXVsndGhyZXNob2xkJ10gPSB0aHJlc2hvbGQpO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IHdvcmtlcnMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpXG4gICAgICAgICAgICAuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IFdvcmtlcihuZXcgVVJMKCcuL3NwYXJzZS1tYXRyaXgtd29ya2VyJywgaW1wb3J0Lm1ldGEudXJsKSkpO1xuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCB0aGlzLl93b3JrZXJDb3VudDsgaWR4KyspIHtcbiAgICAgICAgICAgIHByb21pc2VzW2lkeF0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZVdvcmtlciwgcmVqZWN0V29ya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRJZHggPSBpZHggKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kSWR4ID0gaWR4ID09PSB0aGlzLl93b3JrZXJDb3VudCAtIDEgPyBtYXRTaXplIDogKGlkeCArIDEpICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGlmIChlbmRJZHggPD0gc3RhcnRJZHgpXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBpOiBuZXcgSW50MzJBcnJheSgwKSwgajogbmV3IEludDMyQXJyYXkoMCksIGRpc3RhbmNlOiBuZXcgRmxvYXQzMkFycmF5KDApLCBpZHggfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnBvc3RNZXNzYWdlKHsgdmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCB0aHJlc2hvbGQsIGZuTmFtZXMsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kIH0pO1xuICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS5vbm1lc3NhZ2UgPSAoeyBkYXRhOiB7IGVycm9yLCBpLCBqLCBkaXN0YW5jZSB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGksIGosIGRpc3RhbmNlLCBpZHggfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgICAgY29uc3QgZnVsbFNpemUgPSByZXN1bHRzLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYyArIHZhbC5pLmxlbmd0aCwgMCk7XG4gICAgICAgIGNvbnN0IGkgPSBuZXcgSW50MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgIGNvbnN0IGogPSBuZXcgSW50MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gbmV3IEZsb2F0MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgIGxldCBvZmZzZXQgPSAwO1xuICAgICAgICAvLyBzZXR0aW5nIHRoZSByZXN1bHRzXG4gICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGkuc2V0KHJlcy5pLCBvZmZzZXQpO1xuICAgICAgICAgICAgai5zZXQocmVzLmosIG9mZnNldCk7XG4gICAgICAgICAgICBkaXN0YW5jZS5zZXQocmVzLmRpc3RhbmNlLCBvZmZzZXQpO1xuICAgICAgICAgICAgb2Zmc2V0ICs9IHJlcy5pLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpLCBqLCBkaXN0YW5jZSB9O1xuICAgIH1cbiAgICBhc3luYyBjYWxjKHZhbHVlcywgZm5OYW1lLCB0aHJlc2hvbGQsIG9wdHMgPSB7fSkge1xuICAgICAgICAvL3NpemUgb2YgZnVsbCBtYXRyaXhcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY2FsY011bHRpQ29sdW1uKFt2YWx1ZXNdLCBbZm5OYW1lXSwgdGhyZXNob2xkLCBbb3B0c10sIFsxXSk7XG4gICAgfVxuICAgIGFzeW5jIGdldEtOTih2YWx1ZXMsIGZuTmFtZSwgbk5laWdoYm91cnMgPSAxNSwgb3B0cyA9IHt9KSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLm11bHRpQ29sdW1uS05OKFt2YWx1ZXNdLCBbZm5OYW1lXSwgbk5laWdoYm91cnMsIFtvcHRzXSwgWzFdKTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0VGhyZXNob2xkS05OKHZhbHVlcywgZm5OYW1lLCB0aHJlc2hvbGQgPSAwLjgsIG9wdHMgPSB7fSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5tdWx0aUNvbHVtblRocmVzaG9sZEtubihbdmFsdWVzXSwgW2ZuTmFtZV0sIHRocmVzaG9sZCwgW29wdHNdLCBbMV0pO1xuICAgIH1cbiAgICBhc3luYyBtdWx0aUNvbHVtblRocmVzaG9sZEtubih2YWx1ZXMsIGZuTmFtZXMsIHRocmVzaG9sZCA9IDAuOCwgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggIT09IGZuTmFtZXMubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggIT09IG9wdHMubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggIT09IHdlaWdodHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZXMsIGRpc3RhbmNlIGZ1bmN0aW9ucywgb3B0aW9ucyBhbmQgd2VpZ2h0cyBhcnJheXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyk7XG4gICAgICAgIGlmICh2YWx1ZXMuc29tZSgodikgPT4gdi5sZW5ndGggIT09IHZhbHVlc1swXS5sZW5ndGgpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbGwgdmFsdWVzIGFycmF5cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBsZW5ndGgnKTtcbiAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IHdvcmtlcnMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpXG4gICAgICAgICAgICAuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IFdvcmtlcihuZXcgVVJMKCcuL2tubi10aHJlc2hvbGQtd29ya2VyJywgaW1wb3J0Lm1ldGEudXJsKSkpO1xuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCB0aGlzLl93b3JrZXJDb3VudDsgaWR4KyspIHtcbiAgICAgICAgICAgIHByb21pc2VzW2lkeF0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZVdvcmtlciwgcmVqZWN0V29ya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRJZHggPSBpZHggKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kSWR4ID0gaWR4ID09PSB0aGlzLl93b3JrZXJDb3VudCAtIDEgPyBtYXRTaXplIDogKGlkeCArIDEpICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGlmIChlbmRJZHggPD0gc3RhcnRJZHgpXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBrbm5EaXN0YW5jZXM6IG5ldyBBcnJheSgwKSwga25uSW5kZXhlczogbmV3IEFycmF5KDApIH0pO1xuICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS5wb3N0TWVzc2FnZSh7IHZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgZm5OYW1lcywgb3B0cywgdGhyZXNob2xkLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwga25uRGlzdGFuY2VzLCBrbm5JbmRleGVzIH0gfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdFdvcmtlcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsga25uRGlzdGFuY2VzLCBrbm5JbmRleGVzIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICAgIGNvbnN0IGtublNpemVzID0gbmV3IEludDMyQXJyYXkodmFsdWVzWzBdLmxlbmd0aCk7XG4gICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzWzBdLmxlbmd0aDsgKytpKVxuICAgICAgICAgICAgICAgIGtublNpemVzW2ldICs9IHJlcy5rbm5JbmRleGVzW2ldPy5sZW5ndGggPz8gMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrbm5SZXMgPSB7XG4gICAgICAgICAgICBrbm5EaXN0YW5jZXM6IG5ldyBBcnJheSh2YWx1ZXNbMF0ubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoXywgaSkgPT4gbmV3IEFycmF5KGtublNpemVzW2ldKSksXG4gICAgICAgICAgICBrbm5JbmRleGVzOiBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKF8sIGkpID0+IG5ldyBBcnJheShrbm5TaXplc1tpXSkpXG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzWzBdLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCByZXMua25uRGlzdGFuY2VzW2ldPy5sZW5ndGggPz8gMDsgKytqKSB7XG4gICAgICAgICAgICAgICAgICAgIGtublJlcy5rbm5EaXN0YW5jZXNbaV1ba25uU2l6ZXNbaV0gLSAxXSA9IHJlcy5rbm5EaXN0YW5jZXNbaV1bal07XG4gICAgICAgICAgICAgICAgICAgIGtublJlcy5rbm5JbmRleGVzW2ldW2tublNpemVzW2ldIC0gMV0gPSByZXMua25uSW5kZXhlc1tpXVtqXTtcbiAgICAgICAgICAgICAgICAgICAga25uU2l6ZXNbaV0gLT0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtublJlcztcbiAgICB9XG4gICAgYXN5bmMgbXVsdGlDb2x1bW5LTk4odmFsdWVzLCBmbk5hbWVzLCBuTmVpZ2hib3VycyA9IDE1LCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCA9IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLkVVQ0xJREVBTikge1xuICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCAhPT0gZm5OYW1lcy5sZW5ndGggfHwgdmFsdWVzLmxlbmd0aCAhPT0gb3B0cy5sZW5ndGggfHwgdmFsdWVzLmxlbmd0aCAhPT0gd2VpZ2h0cy5sZW5ndGgpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlcywgZGlzdGFuY2UgZnVuY3Rpb25zLCBvcHRpb25zIGFuZCB3ZWlnaHRzIGFycmF5cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBsZW5ndGgnKTtcbiAgICAgICAgaWYgKHZhbHVlcy5zb21lKCh2KSA9PiB2Lmxlbmd0aCAhPT0gdmFsdWVzWzBdLmxlbmd0aCkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FsbCB2YWx1ZXMgYXJyYXlzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGxlbmd0aCcpO1xuICAgICAgICBjb25zdCBtYXRTaXplID0gdmFsdWVzWzBdLmxlbmd0aCAqICh2YWx1ZXNbMF0ubGVuZ3RoIC0gMSkgLyAyO1xuICAgICAgICBjb25zdCBjaHVua1NpemUgPSBNYXRoLmZsb29yKG1hdFNpemUgLyB0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgY29uc3Qgd29ya2VycyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudClcbiAgICAgICAgICAgIC5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgV29ya2VyKG5ldyBVUkwoJy4va25uLXdvcmtlcicsIGltcG9ydC5tZXRhLnVybCkpKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICBwcm9taXNlc1tpZHhdID0gbmV3IFByb21pc2UoKHJlc29sdmVXb3JrZXIsIHJlamVjdFdvcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kSWR4IDw9IHN0YXJ0SWR4KVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsga25uRGlzdGFuY2VzOiBuZXcgQXJyYXkoMCksIGtubkluZGV4ZXM6IG5ldyBBcnJheSgwKSB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ucG9zdE1lc3NhZ2UoeyB2YWx1ZXMsIHN0YXJ0SWR4LCBlbmRJZHgsIGZuTmFtZXMsIG9wdHMsIG5OZWlnaGJvdXJzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwga25uRGlzdGFuY2VzLCBrbm5JbmRleGVzIH0gfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdFdvcmtlcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsga25uRGlzdGFuY2VzLCBrbm5JbmRleGVzIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICAgIGNvbnN0IGtublJlcyA9IHtcbiAgICAgICAgICAgIGtubkRpc3RhbmNlczogbmV3IEFycmF5KHZhbHVlc1swXS5sZW5ndGgpLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBBcnJheShuTmVpZ2hib3VycykuZmlsbCg5OTk5OSkpLFxuICAgICAgICAgICAga25uSW5kZXhlczogbmV3IEFycmF5KHZhbHVlc1swXS5sZW5ndGgpLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBBcnJheShuTmVpZ2hib3VycykuZmlsbCgtMSkpXG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzWzBdLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCByZXMua25uRGlzdGFuY2VzW2ldPy5sZW5ndGggPz8gMDsgKytqKVxuICAgICAgICAgICAgICAgICAgICBpbnNlcnRTbWFsbGVyKGtublJlcy5rbm5EaXN0YW5jZXNbaV0sIGtublJlcy5rbm5JbmRleGVzW2ldLCByZXMua25uRGlzdGFuY2VzW2ldW2pdLCByZXMua25uSW5kZXhlc1tpXVtqXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtublJlcztcbiAgICB9XG4gICAgYXN5bmMgZ2V0U2FtcGxlRGlzdGFuY2VzKHZhbHVlcywgZm5OYW1lcywgb3B0cyA9IFtdLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCA9IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLkVVQ0xJREVBTikge1xuICAgICAgICBjb25zdCB0aHJlc2hvbGRXb3JrZXJzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KS5maWxsKG51bGwpXG4gICAgICAgICAgICAubWFwKCgpID0+IG5ldyBXb3JrZXIobmV3IFVSTCgnLi9zcGFyc2UtbWF0cml4LXRocmVzaG9sZC13b3JrZXInLCBpbXBvcnQubWV0YS51cmwpKSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBtYXRTaXplID0gdmFsdWVzWzBdLmxlbmd0aCAqICh2YWx1ZXNbMF0ubGVuZ3RoIC0gMSkgLyAyO1xuICAgICAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICAgICAgY29uc3QgbWF4U2FtcGxlU2l6ZSA9IDEwMDAwMDA7XG4gICAgICAgICAgICBjb25zdCBzYW1wbGVTaXNlID0gTWF0aC5tYXgoTWF0aC5taW4obWF0U2l6ZSAvIDEwMDAsIG1heFNhbXBsZVNpemUpLCBNYXRoLm1pbihtYXRTaXplLCBtYXhTYW1wbGVTaXplKSk7XG4gICAgICAgICAgICBjb25zdCB0ZXN0U2V0U2l6ZVBlcldvcmtlciA9IE1hdGguZmxvb3Ioc2FtcGxlU2lzZSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgICAgIGNvbnN0IHRQcm9taXNlcyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCB0aGlzLl93b3JrZXJDb3VudDsgaWR4KyspIHtcbiAgICAgICAgICAgICAgICB0UHJvbWlzZXNbaWR4XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlV29ya2VyLCByZWplY3RXb3JrZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRJZHggPSBpZHggKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhyZXNob2xkV29ya2Vyc1tpZHhdLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlczogdmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCBzYW1wbGVMZW5ndGg6IHRlc3RTZXRTaXplUGVyV29ya2VyLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm5OYW1lcywgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2RcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocmVzaG9sZFdvcmtlcnNbaWR4XS5vbm1lc3NhZ2UgPSAoeyBkYXRhOiB7IGVycm9yLCBkaXN0YW5jZSB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocmVzaG9sZFdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBkaXN0YW5jZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbCh0UHJvbWlzZXMpO1xuICAgICAgICAgICAgY29uc3QgZnVsbFNpemUgPSByZXN1bHRzLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYyArIHZhbC5kaXN0YW5jZS5sZW5ndGgsIDApO1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBuZXcgRmxvYXQzMkFycmF5KGZ1bGxTaXplKTtcbiAgICAgICAgICAgIGxldCBvZmZzZXQgPSAwO1xuICAgICAgICAgICAgZm9yIChjb25zdCByZXMgb2YgcmVzdWx0cykge1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlLnNldChyZXMuZGlzdGFuY2UsIG9mZnNldCk7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHJlcy5kaXN0YW5jZS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaXN0YW5jZS5zb3J0KCk7XG4gICAgICAgICAgICByZXR1cm4gZGlzdGFuY2U7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocmVzaG9sZFdvcmtlcnM/LmZvckVhY2goKHcpID0+IHc/LnRlcm1pbmF0ZSgpKTtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEZsb2F0MzJBcnJheSgxKS5maWxsKDAuNSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgZ2V0TWluaW1hbFRocmVzaG9sZCh2YWx1ZXMsIGZuTmFtZXMsIG9wdHMgPSBbXSwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgLy9XZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgbWluaW1hbCB0aHJlc2hvbGQgZmlyc3QsXG4gICAgICAgIC8vaW4gb3JkZXIgdG8gZ2V0IG1hdHJpeCBzdWNoIHRoYXQgaXQgZG9lcyBub3QgZXhjZWVkIHRoZSBtYXhpbXVtIHNpemUgb2YgMUdCXG4gICAgICAgIC8vd2UgaGF2ZSAzIHJldHVybiBhcnJheXMsIGVhY2ggNCBiaXRlcyBwZXIgZWxlbWVudCwgc28gaWYgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgbWF0cml4IGlzIDFHQixcbiAgICAgICAgY29uc3QgbWF4U3BhcnNlTWF0cml4U2l6ZSA9IDcwMDAwMDAwO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlcy5sZW5ndGggKiAodmFsdWVzLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gYXdhaXQgdGhpcy5nZXRTYW1wbGVEaXN0YW5jZXModmFsdWVzLCBmbk5hbWVzLCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCk7XG4gICAgICAgICAgICBjb25zdCBmcmFjdGlvbkluZGV4ID0gTWF0aC5mbG9vcihtYXhTcGFyc2VNYXRyaXhTaXplIC8gbWF0U2l6ZSAqIGRpc3RhbmNlLmxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCB0aHJlc2hvbGQgPSAxIC0gZGlzdGFuY2VbZnJhY3Rpb25JbmRleF07XG4gICAgICAgICAgICAvLyB0aHJlc2hvbGQgPSBNYXRoLm1heCh0aHJlc2hvbGQsIDAuMyk7XG4gICAgICAgICAgICByZXR1cm4gdGhyZXNob2xkO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgcmV0dXJuIDAuNTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgY2FsY1N5bmModmFsdWVzLCBmbk5hbWUsIGRpc3RhbmNlRm4sIHRocmVzaG9sZCkge1xuICAgICAgICBjb25zdCBpID0gW107XG4gICAgICAgIGNvbnN0IGogPSBbXTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VzID0gW107XG4gICAgICAgIGxldCBjbnQgPSAwO1xuICAgICAgICBsZXQgbWkgPSAwO1xuICAgICAgICBsZXQgbWogPSAwO1xuICAgICAgICBjb25zdCBmdWxsU2l6ZSA9IHZhbHVlcy5sZW5ndGggKiAodmFsdWVzLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgd2hpbGUgKGNudCA8IGZ1bGxTaXplKSB7XG4gICAgICAgICAgICAvL2NvbnN0IHZhbHVlID0gc2VxMUxpc3RbbWldICYmIHNlcTFMaXN0W21qXSA/IGhhbW1pbmcoc2VxMUxpc3RbbWldLCBzZXExTGlzdFttal0pIDogMDtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gIWlzTmlsKHZhbHVlc1ttaV0pICYmICFpc05pbCh2YWx1ZXNbbWpdKSA/XG4gICAgICAgICAgICAgICAgZGlzdGFuY2VGbih2YWx1ZXNbbWldLCB2YWx1ZXNbbWpdKSA6IDE7XG4gICAgICAgICAgICBjb25zdCBzaW1pbGFyaXR5ID0gMSAtIHZhbHVlO1xuICAgICAgICAgICAgaWYgKHNpbWlsYXJpdHkgPj0gdGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgaS5wdXNoKG1pKTtcbiAgICAgICAgICAgICAgICBqLnB1c2gobWopO1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNudCsrO1xuICAgICAgICAgICAgbWorKztcbiAgICAgICAgICAgIGlmIChtaiA9PT0gdmFsdWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIG1pKys7XG4gICAgICAgICAgICAgICAgbWogPSBtaSArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaUFycmF5ID0gbmV3IEludDMyQXJyYXkoaSk7XG4gICAgICAgIGNvbnN0IGpBcnJheSA9IG5ldyBJbnQzMkFycmF5KGopO1xuICAgICAgICBjb25zdCBkaXN0YW5jZUFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShkaXN0YW5jZXMpO1xuICAgICAgICByZXR1cm4geyBpOiBpQXJyYXksIGo6IGpBcnJheSwgZGlzdGFuY2U6IGRpc3RhbmNlQXJyYXkgfTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljM0JoY25ObExXMWhkSEpwZUMxelpYSjJhV05sTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljM0JoY25ObExXMWhkSEpwZUMxelpYSjJhV05sTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVTkJMRTlCUVU4c1JVRkJORUlzTUVKQlFUQkNMRVZCUVVNc1RVRkJUU3hUUVVGVExFTkJRVU03UVVGRE9VVXNUMEZCVHl4RlFVRkRMR0ZCUVdFc1JVRkJSU3hMUVVGTExFVkJRVU1zVFVGQlRTeFRRVUZUTEVOQlFVTTdRVUZoTjBNc1RVRkJUU3hQUVVGUExHMUNRVUZ0UWp0SlFVTndRaXhaUVVGWkxFTkJRVk03U1VGRE4wSTdVVUZEUlN4SlFVRkpMRU5CUVVNc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNVMEZCVXl4RFFVRkRMRzFDUVVGdFFpeEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOeVJTeERRVUZETzBsQlJVMHNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkJReXhOUVVGdlFpeEZRVUZGTEU5QlFYVkNMRVZCUTNoRkxGTkJRV2xDTEVWQlFVVXNUMEZCTmtJc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeFZRVUZ2UWl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVNM1JTeHZRa0ZCSzBNc01FSkJRVEJDTEVOQlFVTXNVMEZCVXp0UlFVVnVSaXhOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZET1VRc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlJURkVMRTFCUVUwc1dVRkJXU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1MwRkJUU3hEUVVGRExFTkJRVU03V1VGRE9VTXNUVUZCVFN4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hKUVVGSkxFVkJRVVVzVDBGQlR5eEZRVUZGTEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjRSaXhKUVVGSkxGTkJRVk1zUjBGQlJ5eFpRVUZaTEVWQlFVVTdXVUZETlVJc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eHRRa0ZCYlVJc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFpRVU12UXl4VFFVRlRMRWRCUVVjc1dVRkJXU3hEUVVGRE8xTkJRekZDTzFGQlEwUXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVONlJDeE5RVUZOTEZGQlFWRXNSMEZEV2l4SlFVRkpMRXRCUVVzc1EwRkJPRUlzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUlRWRUxFMUJRVTBzVDBGQlR5eEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU03WVVGRGVrTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFZEJRVWNzUTBGQlF5eDNRa0ZCZDBJc1JVRkJSU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVONFJpeExRVUZMTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRaUVVOb1JDeFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eGhRVUZoTEVWQlFVVXNXVUZCV1N4RlFVRkZMRVZCUVVVN1owSkJRekZFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWRCUVVjc1IwRkJSeXhUUVVGVExFTkJRVU03WjBKQlEycERMRTFCUVUwc1RVRkJUU3hIUVVGSExFZEJRVWNzUzBGQlN5eEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTTdaMEpCUXk5RkxFbEJRVWtzVFVGQlRTeEpRVUZKTEZGQlFWRTdiMEpCUTNCQ0xHRkJRV0VzUTBGQlF5eEZRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNTVUZCU1N4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEVsQlFVa3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJ4SExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJReXhOUVVGTkxFVkJRVVVzVVVGQlVTeEZRVUZGTEUxQlFVMHNSVUZCUlN4VFFVRlRMRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTXpSeXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRU5CUVVNc1JVRkJReXhKUVVGSkxFVkJRVVVzUlVGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVU1zUlVGQlF5eEZRVUZSTEVWQlFVVTdiMEpCUTJwRkxFbEJRVWtzUzBGQlN5eEZRVUZGTzNkQ1FVTlVMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0M1FrRkRla0lzV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPM0ZDUVVOeVFqdDVRa0ZCVFR0M1FrRkRUQ3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN2QwSkJRM3BDTEdGQlFXRXNRMEZCUXl4RlFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEVkQlFVY3NSVUZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRM1JETzJkQ1FVTklMRU5CUVVNc1EwRkJRenRaUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEwbzdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkROVU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOeVJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4SlFVRkpMRlZCUVZVc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU51UXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhKUVVGSkxGVkJRVlVzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTnVReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVNMVF5eEpRVUZKTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRaaXh6UWtGQmMwSTdVVUZEZEVJc1MwRkJTeXhOUVVGTkxFZEJRVWNzU1VGQlNTeFBRVUZQTEVWQlFVVTdXVUZEZWtJc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJRM0pDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0WlFVTnlRaXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03V1VGRGJrTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzFOQlEzaENPMUZCUTBRc1QwRkJUeXhGUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNVVUZCVVN4RlFVRkRMRU5CUVVNN1NVRkRNVUlzUTBGQlF6dEpRVVZOTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVrc1RVRkJaMElzUlVGQlJTeE5RVUZ2UWl4RlFVRkZMRk5CUVdsQ0xFVkJRVVVzVDBGQk1rSXNSVUZCUlR0UlFVTXpSeXh4UWtGQmNVSTdVVUZEY2tJc1QwRkJUeXhOUVVGTkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTm9SaXhEUVVGRE8wbEJSVTBzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZEYWtJc1RVRkJhMElzUlVGQlJTeE5RVUZ2UWl4RlFVRkZMR05CUVhOQ0xFVkJRVVVzUlVGQlJTeFBRVUV5UWl4RlFVRkZPMUZCUldwSExFOUJRVThzVFVGQlRTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4WFFVRlhMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRha1lzUTBGQlF6dEpRVVZOTEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUXpGQ0xFMUJRV3RDTEVWQlFVVXNUVUZCYjBJc1JVRkJSU3haUVVGdlFpeEhRVUZITEVWQlFVVXNUMEZCTWtJc1JVRkJSVHRSUVVWb1J5eFBRVUZQTEUxQlFVMHNTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeFRRVUZUTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZUVZc1EwRkJRenRKUVVWTkxFdEJRVXNzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhOUVVGNVFpeEZRVUZGTEU5QlFYVkNMRVZCUVVVc1dVRkJiMElzUjBGQlJ5eEZRVU01Unl4SlFVRXdRaXhGUVVGRkxFOUJRV2xDTEVWQlF6ZERMRzlDUVVFclF5d3dRa0ZCTUVJc1EwRkJReXhUUVVGVE8xRkJSVzVHTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1MwRkJTeXhQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4TFFVRkxMRTlCUVU4c1EwRkJReXhOUVVGTk8xbEJRM1pITEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2IwWkJRVzlHTEVOQlFVTXNRMEZCUXp0UlFVVjRSeXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEV0QlFVc3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dFpRVU51UkN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExDdERRVUVyUXl4RFFVRkRMRU5CUVVNN1VVRkZia1VzVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUXpsRUxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVTXhSQ3hOUVVGTkxGRkJRVkVzUjBGRFdpeEpRVUZKTEV0QlFVc3NRMEZCY1VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlEyNUVMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNN1lVRkRla01zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXgzUWtGQmQwSXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjRSaXhMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0WlFVTm9SQ3hSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhoUVVGaExFVkJRVVVzV1VGQldTeEZRVUZGTEVWQlFVVTdaMEpCUXpGRUxFMUJRVTBzVVVGQlVTeEhRVUZITEVkQlFVY3NSMEZCUnl4VFFVRlRMRU5CUVVNN1owSkJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWRCUVVjc1MwRkJTeXhKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU03WjBKQlF5OUZMRWxCUVVrc1RVRkJUU3hKUVVGSkxGRkJRVkU3YjBKQlEzQkNMR0ZCUVdFc1EwRkJReXhGUVVGRExGbEJRVmtzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hWUVVGVkxFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRE8yZENRVU40UlN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEVWQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1JVRkJSU3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVsQlFVa3NSVUZCUlN4VFFVRlRMRVZCUVVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RlFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRE0wY3NUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eERRVUZETEVWQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVNc1MwRkJTeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFZRVUZWTEVWQlFVTXNSVUZCUXl4RlFVRlJMRVZCUVVVN2IwSkJRek5GTEVsQlFVa3NTMEZCU3l4RlFVRkZPM2RDUVVOVUxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenQzUWtGRGVrSXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8zRkNRVU55UWp0NVFrRkJUVHQzUWtGRFRDeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03ZDBKQlEzcENMR0ZCUVdFc1EwRkJReXhGUVVGRExGbEJRVmtzUlVGQlJTeFZRVUZWTEVWQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVNelF6dG5Ra0ZEU0N4RFFVRkRMRU5CUVVNN1dVRkRTaXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU5LTzFGQlJVUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUXpWRExFMUJRVTBzVVVGQlVTeEhRVUZITEVsQlFVa3NWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTnNSQ3hMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEU5QlFVOHNSVUZCUlR0WlFVTjZRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNN1owSkJRM1pETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRTFCUVUwc1NVRkJTU3hEUVVGRExFTkJRVU03VTBGRGFrUTdVVUZEUkN4TlFVRk5MRTFCUVUwc1IwRkJZenRaUVVONFFpeFpRVUZaTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEV0QlFVc3NRMEZCVXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5zUnl4VlFVRlZMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRXRCUVVzc1EwRkJVeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0VFFVRkRMRU5CUVVNN1VVRkRjRWNzUzBGQlN5eE5RVUZOTEVkQlFVY3NTVUZCU1N4UFFVRlBMRVZCUVVVN1dVRkRla0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3WjBKQlEzcERMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNTVUZCU1N4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3YjBKQlEzcEVMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTJwRkxFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRemRFTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03YVVKQlEyeENPMkZCUTBZN1UwRkRSanRSUVVORUxFOUJRVThzVFVGQlRTeERRVUZETzBsQlEyaENMRU5CUVVNN1NVRkZUU3hMUVVGTExFTkJRVU1zWTBGQll5eERRVUZETEUxQlFYbENMRVZCUVVVc1QwRkJkVUlzUlVGQlJTeGpRVUZ6UWl4RlFVRkZMRVZCUTNSSExFbEJRVEJDTEVWQlFVVXNUMEZCYVVJc1JVRkROME1zYjBKQlFTdERMREJDUVVFd1FpeERRVUZETEZOQlFWTTdVVUZGYmtZc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeExRVUZMTEU5QlFVOHNRMEZCUXl4TlFVRk5MRWxCUVVrc1RVRkJUU3hEUVVGRExFMUJRVTBzUzBGQlN5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRTFCUVUwc1EwRkJReXhOUVVGTkxFdEJRVXNzVDBGQlR5eERRVUZETEUxQlFVMDdXVUZEZGtjc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHZSa0ZCYjBZc1EwRkJReXhEUVVGRE8xRkJSWGhITEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1MwRkJTeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRPMWxCUTI1RUxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNLME5CUVN0RExFTkJRVU1zUTBGQlF6dFJRVVZ1UlN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRE9VUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJRekZFTEUxQlFVMHNVVUZCVVN4SFFVTmFMRWxCUVVrc1MwRkJTeXhEUVVGeFFpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRia1FzVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dGhRVU42UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEdOQlFXTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTTVSU3hMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0WlFVTm9SQ3hSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhoUVVGaExFVkJRVVVzV1VGQldTeEZRVUZGTEVWQlFVVTdaMEpCUXpGRUxFMUJRVTBzVVVGQlVTeEhRVUZITEVkQlFVY3NSMEZCUnl4VFFVRlRMRU5CUVVNN1owSkJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWRCUVVjc1MwRkJTeXhKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU03WjBKQlF5OUZMRWxCUVVrc1RVRkJUU3hKUVVGSkxGRkJRVkU3YjBKQlEzQkNMR0ZCUVdFc1EwRkJReXhGUVVGRExGbEJRVmtzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hWUVVGVkxFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRE8yZENRVU40UlN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEVWQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1JVRkJSU3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RlFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRE4wY3NUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eERRVUZETEVWQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVNc1MwRkJTeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFZRVUZWTEVWQlFVTXNSVUZCUXl4RlFVRlJMRVZCUVVVN2IwSkJRek5GTEVsQlFVa3NTMEZCU3l4RlFVRkZPM2RDUVVOVUxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenQzUWtGRGVrSXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8zRkNRVU55UWp0NVFrRkJUVHQzUWtGRFRDeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03ZDBKQlEzcENMR0ZCUVdFc1EwRkJReXhGUVVGRExGbEJRVmtzUlVGQlJTeFZRVUZWTEVWQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVNelF6dG5Ra0ZEU0N4RFFVRkRMRU5CUVVNN1dVRkRTaXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU5LTzFGQlJVUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUXpWRExFMUJRVTBzVFVGQlRTeEhRVUZqTzFsQlEzaENMRmxCUVZrc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTEV0QlFVc3NRMEZCVXl4WFFVRlhMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdXVUZETVVjc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRlRMRmRCUVZjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUVVNc1EwRkJRenRSUVVONlJ5eExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRTlCUVU4c1JVRkJSVHRaUVVONlFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdG5Ra0ZEZWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU03YjBKQlEzWkVMR0ZCUVdFc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkROMGM3VTBGRFJqdFJRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRPMGxCUTJoQ0xFTkJRVU03U1VGRlRTeExRVUZMTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zVFVGQmIwSXNSVUZEYkVRc1QwRkJkVUlzUlVGQlJTeFBRVUUyUWl4RlFVRkZMRVZCUVVVc1QwRkJhVUlzUlVGRE0wVXNiMEpCUVN0RExEQkNRVUV3UWl4RFFVRkRMRk5CUVZNN1VVRkRia1lzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF6dGhRVU0zUkN4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNc2EwTkJRV3RETEVWQlFVVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGZGtZc1NVRkJTVHRaUVVOR0xFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTTVSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdXVUZETVVRc1RVRkJUU3hoUVVGaExFZEJRVWNzVDBGQlV5eERRVUZETzFsQlEyaERMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeEZRVUZGTEdGQlFXRXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eEZRVUZGTEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRka2NzVFVGQlRTeHZRa0ZCYjBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03V1VGRGVFVXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVzlETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRaUVVWc1JpeExRVUZMTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRuUWtGRGFFUXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNZVUZCWVN4RlFVRkZMRmxCUVZrc1JVRkJSU3hGUVVGRk8yOUNRVU16UkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhIUVVGSExFZEJRVWNzVTBGQlV5eERRVUZETzI5Q1FVTnFReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEhRVUZITEV0QlFVc3NTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRPMjlDUVVNdlJTeG5Ra0ZCWjBJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTTdkMEpCUTJoRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRTFCUVUwc1JVRkJSU3haUVVGWkxFVkJRVVVzYjBKQlFXOUNPM2RDUVVOd1JTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hwUWtGQmFVSTdjVUpCUXpGRExFTkJRVU1zUTBGQlF6dHZRa0ZEU0N4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1EwRkJReXhGUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZETEV0QlFVc3NSVUZCUlN4UlFVRlJMRVZCUVVNc1JVRkJReXhGUVVGUkxFVkJRVVU3ZDBKQlEzQkZMR2RDUVVGblFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8zZENRVU5zUXl4SlFVRkpMRXRCUVVzN05FSkJRVVVzV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPenMwUWtGRE4wSXNZVUZCWVN4RFFVRkRMRVZCUVVNc1VVRkJVU3hGUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZET1VJc1EwRkJReXhEUVVGRE8yZENRVU5LTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTBvN1dVRkZSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03V1VGRE4wTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU0xUlN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0WlFVTTFReXhKUVVGSkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEWml4TFFVRkxMRTFCUVUwc1IwRkJSeXhKUVVGSkxFOUJRVThzUlVGQlJUdG5Ra0ZEZWtJc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8yZENRVU51UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTTdZVUZETDBJN1dVRkRSQ3hSUVVGUkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZGYUVJc1QwRkJUeXhSUVVGUkxFTkJRVU03VTBGRGFrSTdVVUZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSVHRaUVVOV0xHZENRVUZuUWl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRGFrUXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5xUWl4UFFVRlBMRWxCUVVrc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRUUVVOMFF6dEpRVU5JTEVOQlFVTTdTVUZGVHl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNUVUZCYjBJc1JVRkRjRVFzVDBGQmRVSXNSVUZCUlN4UFFVRTJRaXhGUVVGRkxFVkJRVVVzVDBGQmFVSXNSVUZETTBVc2IwSkJRU3RETERCQ1FVRXdRaXhEUVVGRExGTkJRVk03VVVGRGJrWXNiVVJCUVcxRU8xRkJRMjVFTERaRlFVRTJSVHRSUVVNM1JTeHBSMEZCYVVjN1VVRkRha2NzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhSUVVGVkxFTkJRVU03VVVGRGRrTXNTVUZCU1R0WlFVTkdMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTjRSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRU5CUVVNc1EwRkJRenRaUVVOc1J5eE5RVUZOTEdGQlFXRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4SFFVRkhMRTlCUVU4c1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdXVUZEYkVZc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlF5eEhRVUZITEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRaUVVNNVF5eDNRMEZCZDBNN1dVRkRlRU1zVDBGQlR5eFRRVUZUTEVOQlFVTTdVMEZEYkVJN1VVRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdFpRVU5XTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGFrSXNUMEZCVHl4SFFVRkhMRU5CUVVNN1UwRkRXanRKUVVOSUxFTkJRVU03U1VGRlRTeE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVTndRaXhOUVVFclFpeEZRVUZGTEUxQlFXOUNMRVZCUVVVc1ZVRkJiMElzUlVGQlJTeFRRVUZwUWp0UlFVVTVSaXhOUVVGTkxFTkJRVU1zUjBGQllTeEZRVUZGTEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hEUVVGRExFZEJRV0VzUlVGQlJTeERRVUZETzFGQlEzWkNMRTFCUVUwc1UwRkJVeXhIUVVGaExFVkJRVVVzUTBGQlF6dFJRVU12UWl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRFdpeEpRVUZKTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRXQ3hKUVVGSkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEV0N4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZWtRc1QwRkJUeXhIUVVGSExFZEJRVWNzVVVGQlVTeEZRVUZGTzFsQlEzSkNMSFZHUVVGMVJqdFpRVU4yUml4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU4wUkN4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEZWtNc1RVRkJUU3hWUVVGVkxFZEJRVWNzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXp0WlFVTTNRaXhKUVVGSkxGVkJRVlVzU1VGQlNTeFRRVUZUTEVWQlFVVTdaMEpCUXpOQ0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1owSkJRMWdzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRFdDeFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yRkJRM1pDTzFsQlEwUXNSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRUaXhGUVVGRkxFVkJRVVVzUTBGQlF6dFpRVU5NTEVsQlFVa3NSVUZCUlN4TFFVRkxMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVU3WjBKQlEzaENMRVZCUVVVc1JVRkJSU3hEUVVGRE8yZENRVU5NTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8yRkJRMkk3VTBGRFJqdFJRVVZFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEycERMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTJwRExFMUJRVTBzWVVGQllTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJSV3hFTEU5QlFVOHNSVUZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMR0ZCUVdFc1JVRkJReXhEUVVGRE8wbEJRM3BFTEVOQlFVTTdRMEZEU2lJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1MyNXZkMjVOWlhSeWFXTnpmU0JtY205dElDY3VMaTkwZVhCbFpDMXRaWFJ5YVdOekp6dGNibWx0Y0c5eWRDQjdSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpDd2dSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpITjlJR1p5YjIwZ0p5NHZkSGx3WlhNbk8xeHVhVzF3YjNKMElIdHBibk5sY25SVGJXRnNiR1Z5TENCcGMwNXBiSDBnWm5KdmJTQW5MaTkxZEdsc2N5YzdYRzVjYm1WNGNHOXlkQ0IwZVhCbElGTndZWEp6WlUxaGRISnBlRkpsYzNWc2RDQTlJSHRjYmlBZ2FUb2dTVzUwTXpKQmNuSmhlU3hjYmlBZ2Fqb2dTVzUwTXpKQmNuSmhlU3hjYmlBZ1pHbHpkR0Z1WTJVNklFWnNiMkYwTXpKQmNuSmhlU3hjYmlBZ2FXUjRQem9nYm5WdFltVnlYRzU5TzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JMYm01U1pYTjFiSFFnUFNCN1hHNGdJR3R1YmtScGMzUmhibU5sY3pvZ2JuVnRZbVZ5VzExYlhTeGNiaUFnYTI1dVNXNWtaWGhsY3pvZ2JuVnRZbVZ5VzExYlhWeHVmVnh1Wlhod2IzSjBJR05zWVhOeklGTndZWEp6WlUxaGRISnBlRk5sY25acFkyVWdlMXh1SUNBZ0lIQnlhWFpoZEdVZ1gzZHZjbXRsY2tOdmRXNTBPaUJ1ZFcxaVpYSTdYRzRnSUNBZ1kyOXVjM1J5ZFdOMGIzSW9LU0I3WEc0Z0lDQWdJQ0IwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ0E5SUUxaGRHZ3ViV0Y0S0c1aGRtbG5ZWFJ2Y2k1b1lYSmtkMkZ5WlVOdmJtTjFjbkpsYm1ONUlDMGdNaXdnTVNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0Z6ZVc1aklHTmhiR05OZFd4MGFVTnZiSFZ0YmloMllXeDFaWE02SUVGeWNtRjVQR0Z1ZVZ0ZFBpd2dabTVPWVcxbGN6b2dTMjV2ZDI1TlpYUnlhV056VzEwc1hHNGdJQ0FnSUNCMGFISmxjMmh2YkdRNklHNTFiV0psY2l3Z2IzQjBjem9nZTF0Zk9pQnpkSEpwYm1kZE9pQmhibmw5VzEwZ1BTQmJlMzFkTENCM1pXbG5hSFJ6T2lCdWRXMWlaWEpiWFNBOUlGc3hYU3hjYmlBZ0lDQWdJR0ZuWjNKbFoyRjBhVzl1VFdWMGFHOWtPaUJFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtJRDBnUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaSE11UlZWRFRFbEVSVUZPWEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnRZWFJUYVhwbElEMGdkbUZzZFdWeld6QmRMbXhsYm1kMGFDQXFJQ2gyWVd4MVpYTmJNRjB1YkdWdVozUm9JQzBnTVNrZ0x5QXlPMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyaDFibXRUYVhwbElEMGdUV0YwYUM1bWJHOXZjaWh0WVhSVGFYcGxJQzhnZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0J0YVc1VWFISmxjMmh2YkdRZ1BTQjJZV3gxWlhOYk1GMHViR1Z1WjNSb0lENGdNakJmTURBd0lEOWNiaUFnSUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVuWlhSTmFXNXBiV0ZzVkdoeVpYTm9iMnhrS0haaGJIVmxjeXdnWm01T1lXMWxjeXdnYjNCMGN5d2dkMlZwWjJoMGN5d2dZV2RuY21WbllYUnBiMjVOWlhSb2IyUXBJRG9nTUR0Y2JpQWdJQ0FnSUdsbUlDaDBhSEpsYzJodmJHUWdQQ0J0YVc1VWFISmxjMmh2YkdRcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzI5c1pTNXNiMmNvWUhWemFXNW5JSFJvY21WemFHOXNaQ0FrZTIxcGJsUm9jbVZ6YUc5c1pIMWdLVHRjYmlBZ0lDQWdJQ0FnZEdoeVpYTm9iMnhrSUQwZ2JXbHVWR2h5WlhOb2IyeGtPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdiM0IwY3k1bWIzSkZZV05vS0NoZkxDQnBLU0E5UGlCdmNIUnpXMmxkV3lkMGFISmxjMmh2YkdRblhTQTlJSFJvY21WemFHOXNaQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQndjbTl0YVhObGN5QTlYRzRnSUNBZ0lDQWdJRzVsZHlCQmNuSmhlVHhRY205dGFYTmxQRk53WVhKelpVMWhkSEpwZUZKbGMzVnNkRDQrS0hSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1R0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnZDI5eWEyVnljeUE5SUc1bGR5QkJjbkpoZVNoMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZENsY2JpQWdJQ0FnSUNBZ0xtWnBiR3dvYm5Wc2JDa3ViV0Z3S0NncElEMCtJRzVsZHlCWGIzSnJaWElvYm1WM0lGVlNUQ2duTGk5emNHRnljMlV0YldGMGNtbDRMWGR2Y210bGNpY3NJR2x0Y0c5eWRDNXRaWFJoTG5WeWJDa3BLVHRjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJR2xrZUNBOUlEQTdJR2xrZUNBOElIUm9hWE11WDNkdmNtdGxja052ZFc1ME95QnBaSGdyS3lrZ2UxeHVJQ0FnSUNBZ0lDQndjbTl0YVhObGMxdHBaSGhkSUQwZ2JtVjNJRkJ5YjIxcGMyVW9LSEpsYzI5c2RtVlhiM0pyWlhJc0lISmxhbVZqZEZkdmNtdGxjaWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElITjBZWEowU1dSNElEMGdhV1I0SUNvZ1kyaDFibXRUYVhwbE8xeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHVnVaRWxrZUNBOUlHbGtlQ0E5UFQwZ2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RZ0xTQXhJRDhnYldGMFUybDZaU0E2SUNocFpIZ2dLeUF4S1NBcUlHTm9kVzVyVTJsNlpUdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb1pXNWtTV1I0SUR3OUlITjBZWEowU1dSNEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WemIyeDJaVmR2Y210bGNpaDdhVG9nYm1WM0lFbHVkRE15UVhKeVlYa29NQ2tzSUdvNklHNWxkeUJKYm5Rek1rRnljbUY1S0RBcExDQmthWE4wWVc1alpUb2dibVYzSUVac2IyRjBNekpCY25KaGVTZ3dLU3dnYVdSNGZTazdYRzRnSUNBZ0lDQWdJQ0FnZDI5eWEyVnljMXRwWkhoZExuQnZjM1JOWlhOellXZGxLSHQyWVd4MVpYTXNJSE4wWVhKMFNXUjRMQ0JsYm1SSlpIZ3NJSFJvY21WemFHOXNaQ3dnWm01T1lXMWxjeXdnYjNCMGN5d2dkMlZwWjJoMGN5d2dZV2RuY21WbllYUnBiMjVOWlhSb2IyUjlLVHRjYmlBZ0lDQWdJQ0FnSUNCM2IzSnJaWEp6VzJsa2VGMHViMjV0WlhOellXZGxJRDBnS0h0a1lYUmhPaUI3WlhKeWIzSXNJR2tzSUdvc0lHUnBjM1JoYm1ObGZYMHBPaUIyYjJsa0lEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjNiM0pyWlhKelcybGtlRjB1ZEdWeWJXbHVZWFJsS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGFtVmpkRmR2Y210bGNpaGxjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjNiM0pyWlhKelcybGtlRjB1ZEdWeWJXbHVZWFJsS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGMyOXNkbVZYYjNKclpYSW9lMmtzSUdvc0lHUnBjM1JoYm1ObExDQnBaSGg5S1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWTI5dWMzUWdjbVZ6ZFd4MGN5QTlJR0YzWVdsMElGQnliMjFwYzJVdVlXeHNLSEJ5YjIxcGMyVnpLVHRjYmlBZ0lDQWdJR052Ym5OMElHWjFiR3hUYVhwbElEMGdjbVZ6ZFd4MGN5NXlaV1IxWTJVb0tHRmpZeXdnZG1Gc0tTQTlQaUJoWTJNZ0t5QjJZV3d1YVM1c1pXNW5kR2dzSURBcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYVNBOUlHNWxkeUJKYm5Rek1rRnljbUY1S0daMWJHeFRhWHBsS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR29nUFNCdVpYY2dTVzUwTXpKQmNuSmhlU2htZFd4c1UybDZaU2s3WEc0Z0lDQWdJQ0JqYjI1emRDQmthWE4wWVc1alpTQTlJRzVsZHlCR2JHOWhkRE15UVhKeVlYa29ablZzYkZOcGVtVXBPMXh1SUNBZ0lDQWdiR1YwSUc5bVpuTmxkQ0E5SURBN1hHNGdJQ0FnSUNBdkx5QnpaWFIwYVc1bklIUm9aU0J5WlhOMWJIUnpYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJSEpsY3lCdlppQnlaWE4xYkhSektTQjdYRzRnSUNBZ0lDQWdJR2t1YzJWMEtISmxjeTVwTENCdlptWnpaWFFwTzF4dUlDQWdJQ0FnSUNCcUxuTmxkQ2h5WlhNdWFpd2diMlptYzJWMEtUdGNiaUFnSUNBZ0lDQWdaR2x6ZEdGdVkyVXVjMlYwS0hKbGN5NWthWE4wWVc1alpTd2diMlptYzJWMEtUdGNiaUFnSUNBZ0lDQWdiMlptYzJWMElDczlJSEpsY3k1cExteGxibWQwYUR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhKbGRIVnliaUI3YVN3Z2Fpd2daR2x6ZEdGdVkyVjlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIQjFZbXhwWXlCaGMzbHVZeUJqWVd4alBGUStLSFpoYkhWbGN6b2dRWEp5WVhrOFZENHNJR1p1VG1GdFpUb2dTMjV2ZDI1TlpYUnlhV056TENCMGFISmxjMmh2YkdRNklHNTFiV0psY2l3Z2IzQjBjem9nZTF0Zk9pQnpkSEpwYm1kZE9pQmhibmw5SUQwZ2UzMHBJSHRjYmlBZ0lDQWdJQzh2YzJsNlpTQnZaaUJtZFd4c0lHMWhkSEpwZUZ4dUlDQWdJQ0FnY21WMGRYSnVJR0YzWVdsMElIUm9hWE11WTJGc1kwMTFiSFJwUTI5c2RXMXVLRnQyWVd4MVpYTmRMQ0JiWm01T1lXMWxYU3dnZEdoeVpYTm9iMnhrTENCYmIzQjBjMTBzSUZzeFhTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NIVmliR2xqSUdGemVXNWpJR2RsZEV0T1RpaGNiaUFnSUNBZ0lIWmhiSFZsY3pvZ1FYSnlZWGs4WVc1NVBpd2dabTVPWVcxbE9pQkxibTkzYmsxbGRISnBZM01zSUc1T1pXbG5hR0p2ZFhKek9pQnVkVzFpWlhJZ1BTQXhOU3dnYjNCMGN6b2dlMXRmT2lCemRISnBibWRkT2lCaGJubDlJRDBnZTMxY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJoZDJGcGRDQjBhR2x6TG0xMWJIUnBRMjlzZFcxdVMwNU9LRnQyWVd4MVpYTmRMQ0JiWm01T1lXMWxYU3dnYms1bGFXZG9ZbTkxY25Nc0lGdHZjSFJ6WFN3Z1d6RmRLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ1lYTjVibU1nWjJWMFZHaHlaWE5vYjJ4a1MwNU9LRnh1SUNBZ0lDQWdkbUZzZFdWek9pQkJjbkpoZVR4aGJuaytMQ0JtYms1aGJXVTZJRXR1YjNkdVRXVjBjbWxqY3l3Z2RHaHlaWE5vYjJ4a09pQnVkVzFpWlhJZ1BTQXdMamdzSUc5d2RITTZJSHRiWHpvZ2MzUnlhVzVuWFRvZ1lXNTVmU0E5SUh0OVhHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWVhkaGFYUWdkR2hwY3k1dGRXeDBhVU52YkhWdGJsUm9jbVZ6YUc5c1pFdHViaWhiZG1Gc2RXVnpYU3dnVzJadVRtRnRaVjBzSUhSb2NtVnphRzlzWkN3Z1cyOXdkSE5kTENCYk1WMHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIQjFZbXhwWXlCaGMzbHVZeUJ0ZFd4MGFVTnZiSFZ0YmxSb2NtVnphRzlzWkV0dWJpaDJZV3gxWlhNNklFRnljbUY1UEVGeWNtRjVQR0Z1ZVQ0K0xDQm1iazVoYldWek9pQkxibTkzYmsxbGRISnBZM05iWFN3Z2RHaHlaWE5vYjJ4a09pQnVkVzFpWlhJZ1BTQXdMamdzWEc0Z0lDQWdJQ0J2Y0hSek9pQjdXMTg2SUhOMGNtbHVaMTA2SUdGdWVYMWJYU3dnZDJWcFoyaDBjem9nYm5WdFltVnlXMTBzWEc0Z0lDQWdJQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaRG9nUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ0E5SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlJ6TGtWVlEweEpSRVZCVGx4dUlDQWdJQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tIWmhiSFZsY3k1c1pXNW5kR2dnSVQwOUlHWnVUbUZ0WlhNdWJHVnVaM1JvSUh4OElIWmhiSFZsY3k1c1pXNW5kR2dnSVQwOUlHOXdkSE11YkdWdVozUm9JSHg4SUhaaGJIVmxjeTVzWlc1bmRHZ2dJVDA5SUhkbGFXZG9kSE11YkdWdVozUm9LVnh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KM1poYkhWbGN5d2daR2x6ZEdGdVkyVWdablZ1WTNScGIyNXpMQ0J2Y0hScGIyNXpJR0Z1WkNCM1pXbG5hSFJ6SUdGeWNtRjVjeUJ6YUc5MWJHUWdhR0YyWlNCMGFHVWdjMkZ0WlNCc1pXNW5kR2duS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLSFpoYkhWbGN5NXpiMjFsS0NoMktTQTlQaUIyTG14bGJtZDBhQ0FoUFQwZ2RtRnNkV1Z6V3pCZExteGxibWQwYUNrcFhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnbllXeHNJSFpoYkhWbGN5QmhjbkpoZVhNZ2MyaHZkV3hrSUdoaGRtVWdkR2hsSUhOaGJXVWdiR1Z1WjNSb0p5azdYRzVjYmlBZ0lDQWdJR052Ym5OMElHMWhkRk5wZW1VZ1BTQjJZV3gxWlhOYk1GMHViR1Z1WjNSb0lDb2dLSFpoYkhWbGMxc3dYUzVzWlc1bmRHZ2dMU0F4S1NBdklESTdYRzRnSUNBZ0lDQmpiMjV6ZENCamFIVnVhMU5wZW1VZ1BTQk5ZWFJvTG1ac2IyOXlLRzFoZEZOcGVtVWdMeUIwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQndjbTl0YVhObGN5QTlYRzRnSUNBZ0lDQWdJRzVsZHlCQmNuSmhlVHhRY205dGFYTmxQRXR1YmxKbGMzVnNkRDQrS0hSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJSGR2Y210bGNuTWdQU0J1WlhjZ1FYSnlZWGtvZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwWEc0Z0lDQWdJQ0FnSUM1bWFXeHNLRzUxYkd3cExtMWhjQ2dvS1NBOVBpQnVaWGNnVjI5eWEyVnlLRzVsZHlCVlVrd29KeTR2YTI1dUxYUm9jbVZ6YUc5c1pDMTNiM0pyWlhJbkxDQnBiWEJ2Y25RdWJXVjBZUzUxY213cEtTazdYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnBaSGdnUFNBd095QnBaSGdnUENCMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZERzZ2FXUjRLeXNwSUh0Y2JpQWdJQ0FnSUNBZ2NISnZiV2x6WlhOYmFXUjRYU0E5SUc1bGR5QlFjbTl0YVhObEtDaHlaWE52YkhabFYyOXlhMlZ5TENCeVpXcGxZM1JYYjNKclpYSXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCemRHRnlkRWxrZUNBOUlHbGtlQ0FxSUdOb2RXNXJVMmw2WlR0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCbGJtUkpaSGdnUFNCcFpIZ2dQVDA5SUhSb2FYTXVYM2R2Y210bGNrTnZkVzUwSUMwZ01TQS9JRzFoZEZOcGVtVWdPaUFvYVdSNElDc2dNU2tnS2lCamFIVnVhMU5wZW1VN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dWdVpFbGtlQ0E4UFNCemRHRnlkRWxrZUNsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsYzI5c2RtVlhiM0pyWlhJb2UydHVia1JwYzNSaGJtTmxjem9nYm1WM0lFRnljbUY1S0RBcExDQnJibTVKYm1SbGVHVnpPaUJ1WlhjZ1FYSnlZWGtvTUNsOUtUdGNiaUFnSUNBZ0lDQWdJQ0IzYjNKclpYSnpXMmxrZUYwdWNHOXpkRTFsYzNOaFoyVW9lM1poYkhWbGN5d2djM1JoY25SSlpIZ3NJR1Z1WkVsa2VDd2dabTVPWVcxbGN5d2diM0IwY3l3Z2RHaHlaWE5vYjJ4a0xDQjNaV2xuYUhSekxDQmhaMmR5WldkaGRHbHZiazFsZEdodlpIMHBPMXh1SUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNXZibTFsYzNOaFoyVWdQU0FvZTJSaGRHRTZJSHRsY25KdmNpd2dhMjV1UkdsemRHRnVZMlZ6TENCcmJtNUpibVJsZUdWemZYMHBPaUIyYjJsa0lEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjNiM0pyWlhKelcybGtlRjB1ZEdWeWJXbHVZWFJsS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGFtVmpkRmR2Y210bGNpaGxjbkp2Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjNiM0pyWlhKelcybGtlRjB1ZEdWeWJXbHVZWFJsS0NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGMyOXNkbVZYYjNKclpYSW9lMnR1YmtScGMzUmhibU5sY3l3Z2EyNXVTVzVrWlhobGMzMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTjFiSFJ6SUQwZ1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b2NISnZiV2x6WlhNcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYTI1dVUybDZaWE1nUFNCdVpYY2dTVzUwTXpKQmNuSmhlU2gyWVd4MVpYTmJNRjB1YkdWdVozUm9LVHRjYmlBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnY21WeklHOW1JSEpsYzNWc2RITXBJSHRjYmlBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCMllXeDFaWE5iTUYwdWJHVnVaM1JvT3lBcksya3BYRzRnSUNBZ0lDQWdJQ0FnYTI1dVUybDZaWE5iYVYwZ0t6MGdjbVZ6TG10dWJrbHVaR1Y0WlhOYmFWMC9MbXhsYm1kMGFDQS9QeUF3TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnWTI5dWMzUWdhMjV1VW1Wek9pQkxibTVTWlhOMWJIUWdQU0I3WEc0Z0lDQWdJQ0FnSUd0dWJrUnBjM1JoYm1ObGN6b2dibVYzSUVGeWNtRjVLSFpoYkhWbGMxc3dYUzVzWlc1bmRHZ3BMbVpwYkd3b2JuVnNiQ2t1YldGd0tDaGZMQ0JwS1NBOVBpQnVaWGNnUVhKeVlYazhiblZ0WW1WeVBpaHJibTVUYVhwbGMxdHBYU2twTEZ4dUlDQWdJQ0FnSUNCcmJtNUpibVJsZUdWek9pQnVaWGNnUVhKeVlYa29kbUZzZFdWeld6QmRMbXhsYm1kMGFDa3VabWxzYkNodWRXeHNLUzV0WVhBb0tGOHNJR2twSUQwK0lHNWxkeUJCY25KaGVUeHVkVzFpWlhJK0tHdHVibE5wZW1WelcybGRLU2w5TzF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCeVpYTWdiMllnY21WemRXeDBjeWtnZTF4dUlDQWdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIWmhiSFZsYzFzd1hTNXNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHb2dQU0F3T3lCcUlEd2djbVZ6TG10dWJrUnBjM1JoYm1ObGMxdHBYVDh1YkdWdVozUm9JRDgvSURBN0lDc3JhaWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhMjV1VW1WekxtdHVia1JwYzNSaGJtTmxjMXRwWFZ0cmJtNVRhWHBsYzF0cFhTQXRJREZkSUQwZ2NtVnpMbXR1YmtScGMzUmhibU5sYzF0cFhWdHFYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHdHVibEpsY3k1cmJtNUpibVJsZUdWelcybGRXMnR1YmxOcGVtVnpXMmxkSUMwZ01WMGdQU0J5WlhNdWEyNXVTVzVrWlhobGMxdHBYVnRxWFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3R1YmxOcGVtVnpXMmxkSUMwOUlERTdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnYTI1dVVtVnpPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIQjFZbXhwWXlCaGMzbHVZeUJ0ZFd4MGFVTnZiSFZ0Ymt0T1RpaDJZV3gxWlhNNklFRnljbUY1UEVGeWNtRjVQR0Z1ZVQ0K0xDQm1iazVoYldWek9pQkxibTkzYmsxbGRISnBZM05iWFN3Z2JrNWxhV2RvWW05MWNuTTZJRzUxYldKbGNpQTlJREUxTEZ4dUlDQWdJQ0FnYjNCMGN6b2dlMXRmT2lCemRISnBibWRkT2lCaGJubDlXMTBzSUhkbGFXZG9kSE02SUc1MWJXSmxjbHRkTEZ4dUlDQWdJQ0FnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlE2SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFnUFNCRWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrY3k1RlZVTk1TVVJGUVU1Y2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUdsbUlDaDJZV3gxWlhNdWJHVnVaM1JvSUNFOVBTQm1iazVoYldWekxteGxibWQwYUNCOGZDQjJZV3gxWlhNdWJHVnVaM1JvSUNFOVBTQnZjSFJ6TG14bGJtZDBhQ0I4ZkNCMllXeDFaWE11YkdWdVozUm9JQ0U5UFNCM1pXbG5hSFJ6TG14bGJtZDBhQ2xjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2QyWVd4MVpYTXNJR1JwYzNSaGJtTmxJR1oxYm1OMGFXOXVjeXdnYjNCMGFXOXVjeUJoYm1RZ2QyVnBaMmgwY3lCaGNuSmhlWE1nYzJodmRXeGtJR2hoZG1VZ2RHaGxJSE5oYldVZ2JHVnVaM1JvSnlrN1hHNWNiaUFnSUNBZ0lHbG1JQ2gyWVd4MVpYTXVjMjl0WlNnb2Rpa2dQVDRnZGk1c1pXNW5kR2dnSVQwOUlIWmhiSFZsYzFzd1hTNXNaVzVuZEdncEtWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0oyRnNiQ0IyWVd4MVpYTWdZWEp5WVhseklITm9iM1ZzWkNCb1lYWmxJSFJvWlNCellXMWxJR3hsYm1kMGFDY3BPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQnRZWFJUYVhwbElEMGdkbUZzZFdWeld6QmRMbXhsYm1kMGFDQXFJQ2gyWVd4MVpYTmJNRjB1YkdWdVozUm9JQzBnTVNrZ0x5QXlPMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyaDFibXRUYVhwbElEMGdUV0YwYUM1bWJHOXZjaWh0WVhSVGFYcGxJQzhnZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTzF4dUlDQWdJQ0FnWTI5dWMzUWdjSEp2YldselpYTWdQVnh1SUNBZ0lDQWdJQ0J1WlhjZ1FYSnlZWGs4VUhKdmJXbHpaVHhMYm01U1pYTjFiSFErUGloMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZENrN1hHNGdJQ0FnSUNCamIyNXpkQ0IzYjNKclpYSnpJRDBnYm1WM0lFRnljbUY1S0hSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1Z4dUlDQWdJQ0FnSUNBdVptbHNiQ2h1ZFd4c0tTNXRZWEFvS0NrZ1BUNGdibVYzSUZkdmNtdGxjaWh1WlhjZ1ZWSk1LQ2N1TDJ0dWJpMTNiM0pyWlhJbkxDQnBiWEJ2Y25RdWJXVjBZUzUxY213cEtTazdYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnBaSGdnUFNBd095QnBaSGdnUENCMGFHbHpMbDkzYjNKclpYSkRiM1Z1ZERzZ2FXUjRLeXNwSUh0Y2JpQWdJQ0FnSUNBZ2NISnZiV2x6WlhOYmFXUjRYU0E5SUc1bGR5QlFjbTl0YVhObEtDaHlaWE52YkhabFYyOXlhMlZ5TENCeVpXcGxZM1JYYjNKclpYSXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCemRHRnlkRWxrZUNBOUlHbGtlQ0FxSUdOb2RXNXJVMmw2WlR0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCbGJtUkpaSGdnUFNCcFpIZ2dQVDA5SUhSb2FYTXVYM2R2Y210bGNrTnZkVzUwSUMwZ01TQS9JRzFoZEZOcGVtVWdPaUFvYVdSNElDc2dNU2tnS2lCamFIVnVhMU5wZW1VN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dWdVpFbGtlQ0E4UFNCemRHRnlkRWxrZUNsY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsYzI5c2RtVlhiM0pyWlhJb2UydHVia1JwYzNSaGJtTmxjem9nYm1WM0lFRnljbUY1S0RBcExDQnJibTVKYm1SbGVHVnpPaUJ1WlhjZ1FYSnlZWGtvTUNsOUtUdGNiaUFnSUNBZ0lDQWdJQ0IzYjNKclpYSnpXMmxrZUYwdWNHOXpkRTFsYzNOaFoyVW9lM1poYkhWbGN5d2djM1JoY25SSlpIZ3NJR1Z1WkVsa2VDd2dabTVPWVcxbGN5d2diM0IwY3l3Z2JrNWxhV2RvWW05MWNuTXNJSGRsYVdkb2RITXNJR0ZuWjNKbFoyRjBhVzl1VFdWMGFHOWtmU2s3WEc0Z0lDQWdJQ0FnSUNBZ2QyOXlhMlZ5YzF0cFpIaGRMbTl1YldWemMyRm5aU0E5SUNoN1pHRjBZVG9nZTJWeWNtOXlMQ0JyYm01RWFYTjBZVzVqWlhNc0lHdHVia2x1WkdWNFpYTjlmU2s2SUhadmFXUWdQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1lnS0dWeWNtOXlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSGR2Y210bGNuTmJhV1I0WFM1MFpYSnRhVzVoZEdVb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnFaV04wVjI5eWEyVnlLR1Z5Y205eUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSGR2Y210bGNuTmJhV1I0WFM1MFpYSnRhVzVoZEdVb0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnpiMngyWlZkdmNtdGxjaWg3YTI1dVJHbHpkR0Z1WTJWekxDQnJibTVKYm1SbGVHVnpmU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR052Ym5OMElISmxjM1ZzZEhNZ1BTQmhkMkZwZENCUWNtOXRhWE5sTG1Gc2JDaHdjbTl0YVhObGN5azdYRzRnSUNBZ0lDQmpiMjV6ZENCcmJtNVNaWE02SUV0dWJsSmxjM1ZzZENBOUlIdGNiaUFnSUNBZ0lDQWdhMjV1UkdsemRHRnVZMlZ6T2lCdVpYY2dRWEp5WVhrb2RtRnNkV1Z6V3pCZExteGxibWQwYUNrdVptbHNiQ2h1ZFd4c0tTNXRZWEFvS0NrZ1BUNGdibVYzSUVGeWNtRjVQRzUxYldKbGNqNG9iazVsYVdkb1ltOTFjbk1wTG1acGJHd29PVGs1T1RrcEtTeGNiaUFnSUNBZ0lDQWdhMjV1U1c1a1pYaGxjem9nYm1WM0lFRnljbUY1S0haaGJIVmxjMXN3WFM1c1pXNW5kR2dwTG1acGJHd29iblZzYkNrdWJXRndLQ2dwSUQwK0lHNWxkeUJCY25KaGVUeHVkVzFpWlhJK0tHNU9aV2xuYUdKdmRYSnpLUzVtYVd4c0tDMHhLU2w5TzF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCeVpYTWdiMllnY21WemRXeDBjeWtnZTF4dUlDQWdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIWmhiSFZsYzFzd1hTNXNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHb2dQU0F3T3lCcUlEd2djbVZ6TG10dWJrUnBjM1JoYm1ObGMxdHBYVDh1YkdWdVozUm9JRDgvSURBN0lDc3JhaWxjYmlBZ0lDQWdJQ0FnSUNBZ0lHbHVjMlZ5ZEZOdFlXeHNaWElvYTI1dVVtVnpMbXR1YmtScGMzUmhibU5sYzF0cFhTd2dhMjV1VW1WekxtdHVia2x1WkdWNFpYTmJhVjBzSUhKbGN5NXJibTVFYVhOMFlXNWpaWE5iYVYxYmFsMHNJSEpsY3k1cmJtNUpibVJsZUdWelcybGRXMnBkS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUd0dWJsSmxjenRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ1lYTjVibU1nWjJWMFUyRnRjR3hsUkdsemRHRnVZMlZ6S0haaGJIVmxjem9nUVhKeVlYazhZVzU1VzEwK0xGeHVJQ0FnSUNBZ1ptNU9ZVzFsY3pvZ1MyNXZkMjVOWlhSeWFXTnpXMTBzSUc5d2RITTZJSHRiWHpvZ2MzUnlhVzVuWFRvZ1lXNTVmVnRkSUQwZ1cxMHNJSGRsYVdkb2RITTZJRzUxYldKbGNsdGRMRnh1SUNBZ0lDQWdZV2RuY21WbllYUnBiMjVOWlhSb2IyUTZJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUWdQU0JFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtjeTVGVlVOTVNVUkZRVTRwT2lCUWNtOXRhWE5sUEVac2IyRjBNekpCY25KaGVUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ2RHaHlaWE5vYjJ4a1YyOXlhMlZ5Y3lBOUlHNWxkeUJCY25KaGVTaDBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDa3VabWxzYkNodWRXeHNLVnh1SUNBZ0lDQWdJQ0F1YldGd0tDZ3BJRDArSUc1bGR5QlhiM0pyWlhJb2JtVjNJRlZTVENnbkxpOXpjR0Z5YzJVdGJXRjBjbWw0TFhSb2NtVnphRzlzWkMxM2IzSnJaWEluTENCcGJYQnZjblF1YldWMFlTNTFjbXdwS1NrN1hHNWNiaUFnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJRzFoZEZOcGVtVWdQU0IyWVd4MVpYTmJNRjB1YkdWdVozUm9JQ29nS0haaGJIVmxjMXN3WFM1c1pXNW5kR2dnTFNBeEtTQXZJREk3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR05vZFc1clUybDZaU0E5SUUxaGRHZ3VabXh2YjNJb2JXRjBVMmw2WlNBdklIUm9hWE11WDNkdmNtdGxja052ZFc1MEtUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JXRjRVMkZ0Y0d4bFUybDZaU0E5SURGZk1EQXdYekF3TUR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzJGdGNHeGxVMmx6WlNBOUlFMWhkR2d1YldGNEtFMWhkR2d1YldsdUtHMWhkRk5wZW1VZ0x5QXhNREF3TENCdFlYaFRZVzF3YkdWVGFYcGxLU3dnVFdGMGFDNXRhVzRvYldGMFUybDZaU3dnYldGNFUyRnRjR3hsVTJsNlpTa3BPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjBaWE4wVTJWMFUybDZaVkJsY2xkdmNtdGxjaUE5SUUxaGRHZ3VabXh2YjNJb2MyRnRjR3hsVTJselpTQXZJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkRkJ5YjIxcGMyVnpJRDBnYm1WM0lFRnljbUY1UEZCeWIyMXBjMlU4ZTJScGMzUmhibU5sT2lCR2JHOWhkRE15UVhKeVlYbDlQajRvZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTzF4dVhHNGdJQ0FnSUNBZ0lHWnZjaUFvYkdWMElHbGtlQ0E5SURBN0lHbGtlQ0E4SUhSb2FYTXVYM2R2Y210bGNrTnZkVzUwT3lCcFpIZ3JLeWtnZTF4dUlDQWdJQ0FnSUNBZ0lIUlFjbTl0YVhObGMxdHBaSGhkSUQwZ2JtVjNJRkJ5YjIxcGMyVW9LSEpsYzI5c2RtVlhiM0pyWlhJc0lISmxhbVZqZEZkdmNtdGxjaWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjM1JoY25SSlpIZ2dQU0JwWkhnZ0tpQmphSFZ1YTFOcGVtVTdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JsYm1SSlpIZ2dQU0JwWkhnZ1BUMDlJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBJQzBnTVNBL0lHMWhkRk5wZW1VZ09pQW9hV1I0SUNzZ01Ta2dLaUJqYUhWdWExTnBlbVU3WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhSEpsYzJodmJHUlhiM0pyWlhKelcybGtlRjB1Y0c5emRFMWxjM05oWjJVb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaWE02SUhaaGJIVmxjeXdnYzNSaGNuUkpaSGdzSUdWdVpFbGtlQ3dnYzJGdGNHeGxUR1Z1WjNSb09pQjBaWE4wVTJWMFUybDZaVkJsY2xkdmNtdGxjaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdabTVPWVcxbGN5d2diM0IwY3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJSY2JpQWdJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdkR2h5WlhOb2IyeGtWMjl5YTJWeWMxdHBaSGhkTG05dWJXVnpjMkZuWlNBOUlDaDdaR0YwWVRvZ2UyVnljbTl5TENCa2FYTjBZVzVqWlgxOUtUb2dkbTlwWkNBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9jbVZ6YUc5c1pGZHZjbXRsY25OYmFXUjRYUzUwWlhKdGFXNWhkR1VvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnljbTl5S1NCeVpXcGxZM1JYYjNKclpYSW9aWEp5YjNJcE95QmxiSE5sWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WemIyeDJaVmR2Y210bGNpaDdaR2x6ZEdGdVkyVjlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMDdYRzRnSUNBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQnlaWE4xYkhSeklEMGdZWGRoYVhRZ1VISnZiV2x6WlM1aGJHd29kRkJ5YjIxcGMyVnpLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdablZzYkZOcGVtVWdQU0J5WlhOMWJIUnpMbkpsWkhWalpTZ29ZV05qTENCMllXd3BJRDArSUdGall5QXJJSFpoYkM1a2FYTjBZVzVqWlM1c1pXNW5kR2dzSURBcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa2FYTjBZVzVqWlNBOUlHNWxkeUJHYkc5aGRETXlRWEp5WVhrb1puVnNiRk5wZW1VcE8xeHVJQ0FnSUNBZ0lDQnNaWFFnYjJabWMyVjBJRDBnTUR0Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnlaWE1nYjJZZ2NtVnpkV3gwY3lrZ2UxeHVJQ0FnSUNBZ0lDQWdJR1JwYzNSaGJtTmxMbk5sZENoeVpYTXVaR2x6ZEdGdVkyVXNJRzltWm5ObGRDazdYRzRnSUNBZ0lDQWdJQ0FnYjJabWMyVjBJQ3M5SUhKbGN5NWthWE4wWVc1alpTNXNaVzVuZEdnN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdaR2x6ZEdGdVkyVXVjMjl5ZENncE8xeHVYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmthWE4wWVc1alpUdGNiaUFnSUNBZ0lIMGdZMkYwWTJnZ0tHVXBJSHRjYmlBZ0lDQWdJQ0FnZEdoeVpYTm9iMnhrVjI5eWEyVnljejh1Wm05eVJXRmphQ2dvZHlrZ1BUNGdkejh1ZEdWeWJXbHVZWFJsS0NrcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExtVnljbTl5S0dVcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRVpzYjJGME16SkJjbkpoZVNneEtTNW1hV3hzS0RBdU5TazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NISnBkbUYwWlNCaGMzbHVZeUJuWlhSTmFXNXBiV0ZzVkdoeVpYTm9iMnhrS0haaGJIVmxjem9nUVhKeVlYazhZVzU1VzEwK0xGeHVJQ0FnSUNBZ1ptNU9ZVzFsY3pvZ1MyNXZkMjVOWlhSeWFXTnpXMTBzSUc5d2RITTZJSHRiWHpvZ2MzUnlhVzVuWFRvZ1lXNTVmVnRkSUQwZ1cxMHNJSGRsYVdkb2RITTZJRzUxYldKbGNsdGRMRnh1SUNBZ0lDQWdZV2RuY21WbllYUnBiMjVOWlhSb2IyUTZJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUWdQU0JFYVhOMFlXNWpaVUZuWjNKbFoyRjBhVzl1VFdWMGFHOWtjeTVGVlVOTVNVUkZRVTRwSUh0Y2JpQWdJQ0FnSUM4dlYyVWdibVZsWkNCMGJ5QmpZV3hqZFd4aGRHVWdkR2hsSUcxcGJtbHRZV3dnZEdoeVpYTm9iMnhrSUdacGNuTjBMRnh1SUNBZ0lDQWdMeTlwYmlCdmNtUmxjaUIwYnlCblpYUWdiV0YwY21sNElITjFZMmdnZEdoaGRDQnBkQ0JrYjJWeklHNXZkQ0JsZUdObFpXUWdkR2hsSUcxaGVHbHRkVzBnYzJsNlpTQnZaaUF4UjBKY2JpQWdJQ0FnSUM4dmQyVWdhR0YyWlNBeklISmxkSFZ5YmlCaGNuSmhlWE1zSUdWaFkyZ2dOQ0JpYVhSbGN5QndaWElnWld4bGJXVnVkQ3dnYzI4Z2FXWWdkR2hsSUcxaGVHbHRkVzBnYzJsNlpTQnZaaUIwYUdVZ2JXRjBjbWw0SUdseklERkhRaXhjYmlBZ0lDQWdJR052Ym5OMElHMWhlRk53WVhKelpVMWhkSEpwZUZOcGVtVWdQU0EzTUY4d01EQmZNREF3TzF4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JXRjBVMmw2WlNBOUlIWmhiSFZsY3k1c1pXNW5kR2dnS2lBb2RtRnNkV1Z6TG14bGJtZDBhQ0F0SURFcElDOGdNanRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaR2x6ZEdGdVkyVWdQU0JoZDJGcGRDQjBhR2x6TG1kbGRGTmhiWEJzWlVScGMzUmhibU5sY3loMllXeDFaWE1zSUdadVRtRnRaWE1zSUc5d2RITXNJSGRsYVdkb2RITXNJR0ZuWjNKbFoyRjBhVzl1VFdWMGFHOWtLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdabkpoWTNScGIyNUpibVJsZUNBOUlFMWhkR2d1Wm14dmIzSW9iV0Y0VTNCaGNuTmxUV0YwY21sNFUybDZaU0F2SUcxaGRGTnBlbVVnS2lCa2FYTjBZVzVqWlM1c1pXNW5kR2dwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwYUhKbGMyaHZiR1FnUFNBeElDMGdaR2x6ZEdGdVkyVmJabkpoWTNScGIyNUpibVJsZUYwN1hHNGdJQ0FnSUNBZ0lDOHZJSFJvY21WemFHOXNaQ0E5SUUxaGRHZ3ViV0Y0S0hSb2NtVnphRzlzWkN3Z01DNHpLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvY21WemFHOXNaRHRjYmlBZ0lDQWdJSDBnWTJGMFkyZ2dLR1VwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjMjlzWlM1bGNuSnZjaWhsS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SURBdU5UdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCd2RXSnNhV01nYzNSaGRHbGpJR05oYkdOVGVXNWpQRlErS0Z4dUlDQWdJQ0FnZG1Gc2RXVnpPaUJCY25KaGVUeFVQaUI4SUVGeWNtRjVUR2xyWlR4VVBpd2dabTVPWVcxbE9pQkxibTkzYmsxbGRISnBZM01zSUdScGMzUmhibU5sUm00NklFWjFibU4wYVc5dUxDQjBhSEpsYzJodmJHUTZJRzUxYldKbGNseHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYVRvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ0lDQWdJR052Ym5OMElHbzZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJQ0FnSUNCamIyNXpkQ0JrYVhOMFlXNWpaWE02SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUNBZ0lDQnNaWFFnWTI1MElEMGdNRHRjYmlBZ0lDQWdJR3hsZENCdGFTQTlJREE3WEc0Z0lDQWdJQ0JzWlhRZ2JXb2dQU0F3TzF4dUlDQWdJQ0FnWTI5dWMzUWdablZzYkZOcGVtVWdQU0IyWVd4MVpYTXViR1Z1WjNSb0lDb2dLSFpoYkhWbGN5NXNaVzVuZEdnZ0xTQXhLU0F2SURJN1hHNGdJQ0FnSUNCM2FHbHNaU0FvWTI1MElEd2dablZzYkZOcGVtVXBJSHRjYmlBZ0lDQWdJQ0FnTHk5amIyNXpkQ0IyWVd4MVpTQTlJSE5sY1RGTWFYTjBXMjFwWFNBbUppQnpaWEV4VEdsemRGdHRhbDBnUHlCb1lXMXRhVzVuS0hObGNURk1hWE4wVzIxcFhTd2djMlZ4TVV4cGMzUmJiV3BkS1NBNklEQTdYRzRnSUNBZ0lDQWdJR052Ym5OMElIWmhiSFZsSUQwZ0lXbHpUbWxzS0haaGJIVmxjMXR0YVYwcElDWW1JQ0ZwYzA1cGJDaDJZV3gxWlhOYmJXcGRLU0EvWEc0Z0lDQWdJQ0FnSUNBZ1pHbHpkR0Z1WTJWR2JpaDJZV3gxWlhOYmJXbGRMQ0IyWVd4MVpYTmJiV3BkS1NBNklERTdYRzRnSUNBZ0lDQWdJR052Ym5OMElITnBiV2xzWVhKcGRIa2dQU0F4SUMwZ2RtRnNkV1U3WEc0Z0lDQWdJQ0FnSUdsbUlDaHphVzFwYkdGeWFYUjVJRDQ5SUhSb2NtVnphRzlzWkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2t1Y0hWemFDaHRhU2s3WEc0Z0lDQWdJQ0FnSUNBZ2FpNXdkWE5vS0cxcUtUdGNiaUFnSUNBZ0lDQWdJQ0JrYVhOMFlXNWpaWE11Y0hWemFDaDJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdZMjUwS3lzN1hHNGdJQ0FnSUNBZ0lHMXFLeXM3WEc0Z0lDQWdJQ0FnSUdsbUlDaHRhaUE5UFQwZ2RtRnNkV1Z6TG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHMXBLeXM3WEc0Z0lDQWdJQ0FnSUNBZ2JXb2dQU0J0YVNBcklERTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWTI5dWMzUWdhVUZ5Y21GNUlEMGdibVYzSUVsdWRETXlRWEp5WVhrb2FTazdYRzRnSUNBZ0lDQmpiMjV6ZENCcVFYSnlZWGtnUFNCdVpYY2dTVzUwTXpKQmNuSmhlU2hxS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR1JwYzNSaGJtTmxRWEp5WVhrZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHUnBjM1JoYm1ObGN5azdYRzVjYmlBZ0lDQWdJSEpsZEhWeWJpQjdhVG9nYVVGeWNtRjVMQ0JxT2lCcVFYSnlZWGtzSUdScGMzUmhibU5sT2lCa2FYTjBZVzVqWlVGeWNtRjVmVHRjYmlBZ0lDQjlYRzU5WEc0aVhYMD0iLCJleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmlvTGF5b3V0KGNsdXN0ZXIsIHNwYXJzZU9iamVjdCwgdGhyZXNob2xkKSB7XG4gICAgY29uc3QgbiA9IGNsdXN0ZXIubGVuZ3RoO1xuICAgIGNvbnN0IGlzID0gW107XG4gICAgY29uc3QganMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBuOyBqKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGEgPSBjbHVzdGVyW2ldO1xuICAgICAgICAgICAgY29uc3QgYiA9IGNsdXN0ZXJbal07XG4gICAgICAgICAgICBpZiAoc3BhcnNlT2JqZWN0W2FdPy5bYl0gPj0gdGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgaXMucHVzaChpKTtcbiAgICAgICAgICAgICAgICBqcy5wdXNoKGopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBnZXRMYXlvdXRFbWJlZGRpbmdzKGlzLCBqcywgY2x1c3Rlcik7XG59XG5mdW5jdGlvbiBnZXRMYXlvdXRFbWJlZGRpbmdzKGlzLCBqcywgY2x1c3Rlcikge1xuICAgIGNvbnN0IGVtYmVkWCA9IG5ldyBGbG9hdDMyQXJyYXkoY2x1c3Rlci5sZW5ndGgpLmZpbGwoMCkubWFwKCgpID0+IE1hdGgucmFuZG9tKCkgKiAxMCk7XG4gICAgY29uc3QgZW1iZWRZID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKS5tYXAoKCkgPT4gTWF0aC5yYW5kb20oKSAqIDEwKTtcbiAgICBjb25zdCBpdGVyYXRpb25zID0gMTAwO1xuICAgIGNvbnN0IHhWZWxvY2l0aWVzID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKTtcbiAgICBjb25zdCB5VmVsb2NpdGllcyA9IG5ldyBGbG9hdDMyQXJyYXkoY2x1c3Rlci5sZW5ndGgpLmZpbGwoMCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVyYXRpb25zOyBpKyspIHtcbiAgICAgICAgY29uc3QgdGVtcGVyYXR1cmUgPSAoMSAtIGkgLyBpdGVyYXRpb25zKTtcbiAgICAgICAgeFZlbG9jaXRpZXMuZmlsbCgwKTtcbiAgICAgICAgeVZlbG9jaXRpZXMuZmlsbCgwKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgaXMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgY29uc3QgYSA9IGlzW2lkeF07XG4gICAgICAgICAgICBjb25zdCBiID0ganNbaWR4XTtcbiAgICAgICAgICAgIGNvbnN0IGR4ID0gZW1iZWRYW2FdIC0gZW1iZWRYW2JdO1xuICAgICAgICAgICAgY29uc3QgZHkgPSBlbWJlZFlbYV0gLSBlbWJlZFlbYl07XG4gICAgICAgICAgICAvLyAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5zcXJ0KGR4ICogZHggKyBkeSAqIGR5KTtcbiAgICAgICAgICAgIC8vICAgY29uc3QgZmFjdG9yID0gKGRpc3RhbmNlIC0gMSkgLyBkaXN0YW5jZTtcbiAgICAgICAgICAgIC8vICAgY29uc3Qgb2Zmc2V0WCA9IGR4ICogZmFjdG9yO1xuICAgICAgICAgICAgLy8gICBjb25zdCBvZmZzZXRZID0gZHkgKiBmYWN0b3I7XG4gICAgICAgICAgICBpZiAoTWF0aC5hYnMoZHgpID49IDEpIHtcbiAgICAgICAgICAgICAgICB4VmVsb2NpdGllc1thXSAtPSB0ZW1wZXJhdHVyZSAqIGR4O1xuICAgICAgICAgICAgICAgIHhWZWxvY2l0aWVzW2JdICs9IHRlbXBlcmF0dXJlICogZHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoTWF0aC5hYnMoZHkpID49IDEpIHtcbiAgICAgICAgICAgICAgICB5VmVsb2NpdGllc1thXSAtPSB0ZW1wZXJhdHVyZSAqIGR5O1xuICAgICAgICAgICAgICAgIHlWZWxvY2l0aWVzW2JdICs9IHRlbXBlcmF0dXJlICogZHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAgIGVtYmVkWVthXSArPSBvZmZzZXRZICogdGVtcGVyYXR1cmU7XG4gICAgICAgICAgICAvLyAgIGVtYmVkWVtiXSAtPSBvZmZzZXRZICogdGVtcGVyYXR1cmU7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICBjb25zdCB2ZWNTaXplID0gTWF0aC5zcXJ0KHhWZWxvY2l0aWVzW2lkeF0gKiB4VmVsb2NpdGllc1tpZHhdICsgeVZlbG9jaXRpZXNbaWR4XSAqIHlWZWxvY2l0aWVzW2lkeF0pO1xuICAgICAgICAgICAgaWYgKHZlY1NpemUgPiAwKSB7XG4gICAgICAgICAgICAgICAgZW1iZWRYW2lkeF0gKz0geFZlbG9jaXRpZXNbaWR4XSAvIHZlY1NpemUgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgICAgICAgICBlbWJlZFlbaWR4XSArPSB5VmVsb2NpdGllc1tpZHhdIC8gdmVjU2l6ZSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIG5vcm1hbGl6ZVxuICAgIGxldCBtaW5YID0gZW1iZWRYWzBdO1xuICAgIGxldCBtaW5ZID0gZW1iZWRZWzBdO1xuICAgIGxldCBtYXhYID0gZW1iZWRYWzBdO1xuICAgIGxldCBtYXhZID0gZW1iZWRZWzBdO1xuICAgIGZvciAobGV0IGlkeCA9IDE7IGlkeCA8IGNsdXN0ZXIubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICBtaW5YID0gTWF0aC5taW4obWluWCwgZW1iZWRYW2lkeF0pO1xuICAgICAgICBtaW5ZID0gTWF0aC5taW4obWluWSwgZW1iZWRZW2lkeF0pO1xuICAgICAgICBtYXhYID0gTWF0aC5tYXgobWF4WCwgZW1iZWRYW2lkeF0pO1xuICAgICAgICBtYXhZID0gTWF0aC5tYXgobWF4WSwgZW1iZWRZW2lkeF0pO1xuICAgIH1cbiAgICBsZXQgcmFuZ2VYID0gbWF4WCAtIG1pblg7XG4gICAgbGV0IHJhbmdlWSA9IG1heFkgLSBtaW5ZO1xuICAgIGlmIChyYW5nZVggPT09IDApXG4gICAgICAgIHJhbmdlWCA9IG1heFg7XG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKVxuICAgICAgICBlbWJlZFhbaWR4XSA9IChlbWJlZFhbaWR4XSAtIG1pblgpIC8gcmFuZ2VYIC8gMiArIDAuNTtcbiAgICBpZiAocmFuZ2VZID09PSAwKVxuICAgICAgICByYW5nZVkgPSBtYXhZO1xuICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGNsdXN0ZXIubGVuZ3RoOyBpZHgrKylcbiAgICAgICAgZW1iZWRZW2lkeF0gPSAoZW1iZWRZW2lkeF0gLSBtaW5ZKSAvIHJhbmdlWSAvIDIgKyAwLjU7XG4gICAgcmV0dXJuIHsgZW1iZWRYLCBlbWJlZFkgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVltbHZMV3hoZVc5MWRDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW1KcGJ5MXNZWGx2ZFhRdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSVUVzVFVGQlRTeERRVUZETEV0QlFVc3NWVUZCVlN4VFFVRlRMRU5CUVVNc1QwRkJhVUlzUlVGQlJTeFpRVUZuUXl4RlFVRkZMRk5CUVdsQ08wbEJRM0JITEUxQlFVMHNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRGVrSXNUVUZCVFN4RlFVRkZMRWRCUVdFc1JVRkJSU3hEUVVGRE8wbEJRM2hDTEUxQlFVMHNSVUZCUlN4SFFVRmhMRVZCUVVVc1EwRkJRenRKUVVONFFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUXpGQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUXpsQ0xFMUJRVTBzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOeVFpeE5RVUZOTEVOQlFVTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNrSXNTVUZCU1N4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4VFFVRlRMRVZCUVVVN1owSkJRM0pETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlExZ3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dGhRVU5hTzFOQlEwWTdTMEZEUmp0SlFVTkVMRTlCUVU4c2JVSkJRVzFDTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU01UXl4RFFVRkRPMEZCUlVRc1UwRkJVeXh0UWtGQmJVSXNRMEZCUXl4RlFVRlpMRVZCUVVVc1JVRkJXU3hGUVVGRkxFOUJRV2xDTzBsQlEzaEZMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVOMFJpeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEZEVZc1RVRkJUU3hWUVVGVkxFZEJRVWNzUjBGQlJ5eERRVUZETzBsQlEzWkNMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETjBRc1RVRkJUU3hYUVVGWExFZEJRVWNzU1VGQlNTeFpRVUZaTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTTNSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFGQlEyNURMRTFCUVUwc1YwRkJWeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVONlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0JDTEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNFSXNTMEZCU3l4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVU3V1VGRGVFTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEyeENMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTnNRaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEycERMRTFCUVUwc1JVRkJSU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGFrTXNiVVJCUVcxRU8xbEJRMjVFTERoRFFVRTRRenRaUVVNNVF5eHBRMEZCYVVNN1dVRkRha01zYVVOQlFXbERPMWxCUTJwRExFbEJRVWtzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3WjBKQlEzSkNMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFhRVUZYTEVkQlFVY3NSVUZCUlN4RFFVRkRPMmRDUVVOdVF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1YwRkJWeXhIUVVGSExFVkJRVVVzUTBGQlF6dGhRVU53UXp0WlFVTkVMRWxCUVVrc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVN1owSkJRM0pDTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hYUVVGWExFZEJRVWNzUlVGQlJTeERRVUZETzJkQ1FVTnVReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NWMEZCVnl4SFFVRkhMRVZCUVVVc1EwRkJRenRoUVVOd1F6dFpRVU5JTEhkRFFVRjNRenRaUVVONFF5eDNRMEZCZDBNN1UwRkRka003VVVGRFJDeExRVUZMTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRaUVVNM1F5eE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzSkhMRWxCUVVrc1QwRkJUeXhIUVVGSExFTkJRVU1zUlVGQlJUdG5Ra0ZEWml4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRTlCUVU4c1IwRkJSeXhYUVVGWExFTkJRVU03WjBKQlEzaEVMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1QwRkJUeXhIUVVGSExGZEJRVmNzUTBGQlF6dGhRVU42UkR0VFFVTkdPMHRCUTBZN1NVRkZSQ3haUVVGWk8wbEJRMW9zU1VGQlNTeEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pDTEVsQlFVa3NTVUZCU1N4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU55UWl4SlFVRkpMRWxCUVVrc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEY2tJc1NVRkJTU3hKUVVGSkxFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNKQ0xFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUXpkRExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnVReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYmtNc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEyNURMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dExRVU53UXp0SlFVTkVMRWxCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTVUZEZWtJc1NVRkJTU3hOUVVGTkxFZEJRVWNzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTjZRaXhKUVVGSkxFMUJRVTBzUzBGQlN5eERRVUZETzFGQlEyUXNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVOb1FpeExRVUZMTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFZEJRVWNzVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVN1VVRkRNME1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRTFCUVUwc1IwRkJSeXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzBsQlEzaEVMRWxCUVVrc1RVRkJUU3hMUVVGTExFTkJRVU03VVVGRFpDeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRPMGxCUTJoQ0xFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlR0UlFVTXpReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NUVUZCVFN4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU03U1VGRmVFUXNUMEZCVHl4RlFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVU1zUTBGQlF6dEJRVU14UWl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRUY0dGeWMyVk5ZWFJ5YVhoUFltcGxZM1I5SUdaeWIyMGdKeTR2ZEhsd1pYTW5PMXh1WEc1bGVIQnZjblFnWVhONWJtTWdablZ1WTNScGIyNGdZbWx2VEdGNWIzVjBLR05zZFhOMFpYSTZJRzUxYldKbGNsdGRMQ0J6Y0dGeWMyVlBZbXBsWTNRNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRDd2dkR2h5WlhOb2IyeGtPaUJ1ZFcxaVpYSXBJSHRjYmlBZ1kyOXVjM1FnYmlBOUlHTnNkWE4wWlhJdWJHVnVaM1JvTzF4dUlDQmpiMjV6ZENCcGN6b2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdZMjl1YzNRZ2FuTTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYmpzZ2FTc3JLU0I3WEc0Z0lDQWdabTl5SUNoc1pYUWdhaUE5SUdrZ0t5QXhPeUJxSUR3Z2Jqc2dhaXNyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JoSUQwZ1kyeDFjM1JsY2x0cFhUdGNiaUFnSUNBZ0lHTnZibk4wSUdJZ1BTQmpiSFZ6ZEdWeVcycGRPMXh1SUNBZ0lDQWdhV1lnS0hOd1lYSnpaVTlpYW1WamRGdGhYVDh1VzJKZElENDlJSFJvY21WemFHOXNaQ2tnZTF4dUlDQWdJQ0FnSUNCcGN5NXdkWE5vS0drcE8xeHVJQ0FnSUNBZ0lDQnFjeTV3ZFhOb0tHb3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnlaWFIxY200Z1oyVjBUR0Y1YjNWMFJXMWlaV1JrYVc1bmN5aHBjeXdnYW5Nc0lHTnNkWE4wWlhJcE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCblpYUk1ZWGx2ZFhSRmJXSmxaR1JwYm1kektHbHpPaUJ1ZFcxaVpYSmJYU3dnYW5NNklHNTFiV0psY2x0ZExDQmpiSFZ6ZEdWeU9pQnVkVzFpWlhKYlhTa2dlMXh1SUNCamIyNXpkQ0JsYldKbFpGZ2dQU0J1WlhjZ1JteHZZWFF6TWtGeWNtRjVLR05zZFhOMFpYSXViR1Z1WjNSb0tTNW1hV3hzS0RBcExtMWhjQ2dvS1NBOVBpQk5ZWFJvTG5KaGJtUnZiU2dwSUNvZ01UQXBPMXh1SUNCamIyNXpkQ0JsYldKbFpGa2dQU0J1WlhjZ1JteHZZWFF6TWtGeWNtRjVLR05zZFhOMFpYSXViR1Z1WjNSb0tTNW1hV3hzS0RBcExtMWhjQ2dvS1NBOVBpQk5ZWFJvTG5KaGJtUnZiU2dwSUNvZ01UQXBPMXh1SUNCamIyNXpkQ0JwZEdWeVlYUnBiMjV6SUQwZ01UQXdPMXh1SUNCamIyNXpkQ0I0Vm1Wc2IyTnBkR2xsY3lBOUlHNWxkeUJHYkc5aGRETXlRWEp5WVhrb1kyeDFjM1JsY2k1c1pXNW5kR2dwTG1acGJHd29NQ2s3WEc0Z0lHTnZibk4wSUhsV1pXeHZZMmwwYVdWeklEMGdibVYzSUVac2IyRjBNekpCY25KaGVTaGpiSFZ6ZEdWeUxteGxibWQwYUNrdVptbHNiQ2d3S1R0Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JwZEdWeVlYUnBiMjV6T3lCcEt5c3BJSHRjYmlBZ0lDQmpiMjV6ZENCMFpXMXdaWEpoZEhWeVpTQTlJQ2d4SUMwZ2FTQXZJR2wwWlhKaGRHbHZibk1wTzF4dUlDQWdJSGhXWld4dlkybDBhV1Z6TG1acGJHd29NQ2s3WEc0Z0lDQWdlVlpsYkc5amFYUnBaWE11Wm1sc2JDZ3dLVHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBaSGdnUFNBd095QnBaSGdnUENCcGN5NXNaVzVuZEdnN0lHbGtlQ3NyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JoSUQwZ2FYTmJhV1I0WFR0Y2JpQWdJQ0FnSUdOdmJuTjBJR0lnUFNCcWMxdHBaSGhkTzF4dUlDQWdJQ0FnWTI5dWMzUWdaSGdnUFNCbGJXSmxaRmhiWVYwZ0xTQmxiV0psWkZoYllsMDdYRzRnSUNBZ0lDQmpiMjV6ZENCa2VTQTlJR1Z0WW1Wa1dWdGhYU0F0SUdWdFltVmtXVnRpWFR0Y2JpQWdJQ0FnSUM4dklDQWdZMjl1YzNRZ1pHbHpkR0Z1WTJVZ1BTQk5ZWFJvTG5OeGNuUW9aSGdnS2lCa2VDQXJJR1I1SUNvZ1pIa3BPMXh1SUNBZ0lDQWdMeThnSUNCamIyNXpkQ0JtWVdOMGIzSWdQU0FvWkdsemRHRnVZMlVnTFNBeEtTQXZJR1JwYzNSaGJtTmxPMXh1SUNBZ0lDQWdMeThnSUNCamIyNXpkQ0J2Wm1aelpYUllJRDBnWkhnZ0tpQm1ZV04wYjNJN1hHNGdJQ0FnSUNBdkx5QWdJR052Ym5OMElHOW1abk5sZEZrZ1BTQmtlU0FxSUdaaFkzUnZjanRjYmlBZ0lDQWdJR2xtSUNoTllYUm9MbUZpY3loa2VDa2dQajBnTVNrZ2UxeHVJQ0FnSUNBZ0lDQjRWbVZzYjJOcGRHbGxjMXRoWFNBdFBTQjBaVzF3WlhKaGRIVnlaU0FxSUdSNE8xeHVJQ0FnSUNBZ0lDQjRWbVZzYjJOcGRHbGxjMXRpWFNBclBTQjBaVzF3WlhKaGRIVnlaU0FxSUdSNE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLRTFoZEdndVlXSnpLR1I1S1NBK1BTQXhLU0I3WEc0Z0lDQWdJQ0FnSUhsV1pXeHZZMmwwYVdWelcyRmRJQzA5SUhSbGJYQmxjbUYwZFhKbElDb2daSGs3WEc0Z0lDQWdJQ0FnSUhsV1pXeHZZMmwwYVdWelcySmRJQ3M5SUhSbGJYQmxjbUYwZFhKbElDb2daSGs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdMeThnSUNCbGJXSmxaRmxiWVYwZ0t6MGdiMlptYzJWMFdTQXFJSFJsYlhCbGNtRjBkWEpsTzF4dUlDQWdJQzh2SUNBZ1pXMWlaV1JaVzJKZElDMDlJRzltWm5ObGRGa2dLaUIwWlcxd1pYSmhkSFZ5WlR0Y2JpQWdJQ0I5WEc0Z0lDQWdabTl5SUNoc1pYUWdhV1I0SUQwZ01Ec2dhV1I0SUR3Z1kyeDFjM1JsY2k1c1pXNW5kR2c3SUdsa2VDc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQjJaV05UYVhwbElEMGdUV0YwYUM1emNYSjBLSGhXWld4dlkybDBhV1Z6VzJsa2VGMGdLaUI0Vm1Wc2IyTnBkR2xsYzF0cFpIaGRJQ3NnZVZabGJHOWphWFJwWlhOYmFXUjRYU0FxSUhsV1pXeHZZMmwwYVdWelcybGtlRjBwTzF4dUlDQWdJQ0FnYVdZZ0tIWmxZMU5wZW1VZ1BpQXdLU0I3WEc0Z0lDQWdJQ0FnSUdWdFltVmtXRnRwWkhoZElDczlJSGhXWld4dlkybDBhV1Z6VzJsa2VGMGdMeUIyWldOVGFYcGxJQ29nZEdWdGNHVnlZWFIxY21VN1hHNGdJQ0FnSUNBZ0lHVnRZbVZrV1Z0cFpIaGRJQ3M5SUhsV1pXeHZZMmwwYVdWelcybGtlRjBnTHlCMlpXTlRhWHBsSUNvZ2RHVnRjR1Z5WVhSMWNtVTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeThnYm05eWJXRnNhWHBsWEc0Z0lHeGxkQ0J0YVc1WUlEMGdaVzFpWldSWVd6QmRPMXh1SUNCc1pYUWdiV2x1V1NBOUlHVnRZbVZrV1Zzd1hUdGNiaUFnYkdWMElHMWhlRmdnUFNCbGJXSmxaRmhiTUYwN1hHNGdJR3hsZENCdFlYaFpJRDBnWlcxaVpXUlpXekJkTzF4dUlDQm1iM0lnS0d4bGRDQnBaSGdnUFNBeE95QnBaSGdnUENCamJIVnpkR1Z5TG14bGJtZDBhRHNnYVdSNEt5c3BJSHRjYmlBZ0lDQnRhVzVZSUQwZ1RXRjBhQzV0YVc0b2JXbHVXQ3dnWlcxaVpXUllXMmxrZUYwcE8xeHVJQ0FnSUcxcGJsa2dQU0JOWVhSb0xtMXBiaWh0YVc1WkxDQmxiV0psWkZsYmFXUjRYU2s3WEc0Z0lDQWdiV0Y0V0NBOUlFMWhkR2d1YldGNEtHMWhlRmdzSUdWdFltVmtXRnRwWkhoZEtUdGNiaUFnSUNCdFlYaFpJRDBnVFdGMGFDNXRZWGdvYldGNFdTd2daVzFpWldSWlcybGtlRjBwTzF4dUlDQjlYRzRnSUd4bGRDQnlZVzVuWlZnZ1BTQnRZWGhZSUMwZ2JXbHVXRHRjYmlBZ2JHVjBJSEpoYm1kbFdTQTlJRzFoZUZrZ0xTQnRhVzVaTzF4dUlDQnBaaUFvY21GdVoyVllJRDA5UFNBd0tWeHVJQ0FnSUhKaGJtZGxXQ0E5SUcxaGVGZzdYRzRnSUdadmNpQW9iR1YwSUdsa2VDQTlJREE3SUdsa2VDQThJR05zZFhOMFpYSXViR1Z1WjNSb095QnBaSGdyS3lsY2JpQWdJQ0JsYldKbFpGaGJhV1I0WFNBOUlDaGxiV0psWkZoYmFXUjRYU0F0SUcxcGJsZ3BJQzhnY21GdVoyVllJQzhnTWlBcklEQXVOVHRjYmlBZ2FXWWdLSEpoYm1kbFdTQTlQVDBnTUNsY2JpQWdJQ0J5WVc1blpWa2dQU0J0WVhoWk8xeHVJQ0JtYjNJZ0tHeGxkQ0JwWkhnZ1BTQXdPeUJwWkhnZ1BDQmpiSFZ6ZEdWeUxteGxibWQwYURzZ2FXUjRLeXNwWEc0Z0lDQWdaVzFpWldSWlcybGtlRjBnUFNBb1pXMWlaV1JaVzJsa2VGMGdMU0J0YVc1WktTQXZJSEpoYm1kbFdTQXZJRElnS3lBd0xqVTdYRzVjYmlBZ2NtVjBkWEp1SUh0bGJXSmxaRmdzSUdWdFltVmtXWDA3WEc1OVhHNGlYWDA9IiwiaW1wb3J0IHsgYmlvTGF5b3V0IH0gZnJvbSAnLi9iaW8tbGF5b3V0JztcbmV4cG9ydCBjb25zdCBkZWZhdWx0TUNMT3B0aW9ucyA9IHtcbiAgICBleHBhbmRGYWN0b3I6IDIsXG4gICAgbWF4SXRlcmF0aW9uczogNSxcbiAgICBpbmZsYXRlRmFjdG9yOiAyLFxuICAgIG11bHRGYWN0b3I6IDEsXG59O1xuZXhwb3J0IGNsYXNzIE1DTFNwYXJzZVJlZHVjZXIge1xuICAgIF9vcHRpb25zO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMgPSB7fSkge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0geyAuLi5kZWZhdWx0TUNMT3B0aW9ucywgLi4ub3B0cyB9O1xuICAgIH1cbiAgICBhc3luYyB0cmFuc2Zvcm0oc3BhcnNlTWF0cml4LCBuUm93cykge1xuICAgICAgICAvLyB0ZXN0V29ya2VyTXVsdGlwbHkoKTtcbiAgICAgICAgLy8gcmV0dXJuIG5ldyBJbnQzMkFycmF5KG5Sb3dzKTtcbiAgICAgICAgbGV0IHNwYXJzZU9iamVjdCA9IHRoaXMudG9PYmplY3RGb3JtKHNwYXJzZU1hdHJpeCk7XG4gICAgICAgIGlmICh0aGlzLl9vcHRpb25zLm1heEl0ZXJhdGlvbnMgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmFkZExvb3BzKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICAgICAgdGhpcy5ub3JtYWxpemUoc3BhcnNlT2JqZWN0KTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fb3B0aW9ucy5tYXhJdGVyYXRpb25zOyBpKyspIHtcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3QgPSB0aGlzLmV4cGFuZChzcGFyc2VPYmplY3QsIG5Sb3dzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmluZmxhdGUoc3BhcnNlT2JqZWN0KTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vcm1hbGl6ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY2x1c3RlcnMsIGlzLCBqcyB9ID0gdGhpcy5hc3NpZ25DbHVzdGVycyhzcGFyc2VPYmplY3QsIG5Sb3dzKTtcbiAgICAgICAgdGhpcy5jb3JyZWN0Q2x1c3RlcnMoY2x1c3RlcnMpO1xuICAgICAgICBjb25zdCBlbWJlZGRpbmdzID0gYXdhaXQgdGhpcy5sYXlvdXQoY2x1c3RlcnMsIHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICByZXR1cm4geyBjbHVzdGVycywgZW1iZWRYOiBlbWJlZGRpbmdzLmVtYmVkWCwgZW1iZWRZOiBlbWJlZGRpbmdzLmVtYmVkWSwgaXMsIGpzIH07XG4gICAgfVxuICAgIGNvcnJlY3RDbHVzdGVycyhjbHVzdGVycykge1xuICAgICAgICBjb25zdCBjbHVzdGVyU2l6ZU1hcCA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGNsdXN0ZXIgb2YgY2x1c3RlcnMpIHtcbiAgICAgICAgICAgIGlmICghY2x1c3RlclNpemVNYXBbY2x1c3Rlcl0pXG4gICAgICAgICAgICAgICAgY2x1c3RlclNpemVNYXBbY2x1c3Rlcl0gPSAwO1xuICAgICAgICAgICAgY2x1c3RlclNpemVNYXBbY2x1c3Rlcl0rKztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzb3J0ZWRJbmRleGVzID0gT2JqZWN0LmtleXMoY2x1c3RlclNpemVNYXApLm1hcChOdW1iZXIpLnNvcnQoKGEsIGIpID0+IGNsdXN0ZXJTaXplTWFwW2FdIC0gY2x1c3RlclNpemVNYXBbYl0pO1xuICAgICAgICBjb25zdCBjbHVzdGVyTWFwID0ge307XG4gICAgICAgIHNvcnRlZEluZGV4ZXMuZm9yRWFjaCgoY2x1c3RlcklkeCwgaSkgPT4gY2x1c3Rlck1hcFtjbHVzdGVySWR4XSA9IGkgKyAxKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbHVzdGVycy5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIGNsdXN0ZXJzW2ldID0gY2x1c3Rlck1hcFtjbHVzdGVyc1tpXV07XG4gICAgICAgIC8vIGxldCBjdXJDbHVzdGVyID0gMTtcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjbHVzdGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyAgIGlmICghY2x1c3Rlck1hcFtjbHVzdGVyc1tpXV0pIHtcbiAgICAgICAgLy8gICAgIGNsdXN0ZXJNYXBbY2x1c3RlcnNbaV1dID0gY3VyQ2x1c3RlcjtcbiAgICAgICAgLy8gICAgIGNsdXN0ZXJzW2ldID0gY3VyQ2x1c3RlcjtcbiAgICAgICAgLy8gICAgIGN1ckNsdXN0ZXIrKztcbiAgICAgICAgLy8gICB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgY2x1c3RlcnNbaV0gPSBjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXTtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgYXN5bmMgbGF5b3V0KGNsdXN0ZXJzLCBzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIGNvbnN0IGVtYmVkWCA9IG5ldyBGbG9hdDMyQXJyYXkoblJvd3MpLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IGVtYmVkWSA9IG5ldyBGbG9hdDMyQXJyYXkoblJvd3MpLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJNYXAgPSB7fTtcbiAgICAgICAgY2x1c3RlcnMuZm9yRWFjaCgoY2x1c3RlciwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFjbHVzdGVyTWFwW2NsdXN0ZXJdKVxuICAgICAgICAgICAgICAgIGNsdXN0ZXJNYXBbY2x1c3Rlcl0gPSBbXTtcbiAgICAgICAgICAgIGNsdXN0ZXJNYXBbY2x1c3Rlcl0ucHVzaChpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGNvbnN0IG5DbHVzdGVycyA9IE9iamVjdC5rZXlzKGNsdXN0ZXJNYXApLmxlbmd0aDtcbiAgICAgICAgLy8gY29uc3QgcGVyUm93ID0gTWF0aC5mbG9vcihNYXRoLnNxcnQobkNsdXN0ZXJzKSk7XG4gICAgICAgIGxldCBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgY29uc3Qgc29ydGVkQ2x1c3Rlck5hbWVzID0gT2JqZWN0LmtleXMoY2x1c3Rlck1hcCk7XG4gICAgICAgIHNvcnRlZENsdXN0ZXJOYW1lcy5zb3J0KChhLCBiKSA9PiBjbHVzdGVyTWFwW2JdLmxlbmd0aCAtIGNsdXN0ZXJNYXBbYV0ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHBlclJvdyA9IDY7XG4gICAgICAgIGxldCB5T2Zmc2V0ID0gMDtcbiAgICAgICAgY29uc3QgbGF5b3V0U2l6ZSA9IDU7XG4gICAgICAgIGZvciAoY29uc3QgY2x1c3Rlck5hbWUgb2Ygc29ydGVkQ2x1c3Rlck5hbWVzKSB7XG4gICAgICAgICAgICBjb25zdCBjbHVzdGVyID0gY2x1c3Rlck1hcFtjbHVzdGVyTmFtZV07XG4gICAgICAgICAgICBjb25zdCBlbWJlZGRpbmdzID0gYXdhaXQgYmlvTGF5b3V0KGNsdXN0ZXIsIHNwYXJzZU1hdHJpeCwgMC4wMDEpO1xuICAgICAgICAgICAgaWYgKGNsdXN0ZXJOdW0gPT09IE1hdGguY2VpbChwZXJSb3cgLyAxLjUpKSB7XG4gICAgICAgICAgICAgICAgY2x1c3Rlck51bSA9IDA7XG4gICAgICAgICAgICAgICAgeU9mZnNldCArPSBsYXlvdXRTaXplIC8gcGVyUm93O1xuICAgICAgICAgICAgICAgIHBlclJvdyA9IE1hdGguY2VpbChwZXJSb3cgKiAxLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0WCA9ICgoY2x1c3Rlck51bSAlIHBlclJvdykgKiBsYXlvdXRTaXplIC8gcGVyUm93KSAqIDEuNTtcbiAgICAgICAgICAgIC8vIGNvbnN0IG9mZnNldFkgPSBNYXRoLmZsb29yKGNsdXN0ZXJOdW0gLyBwZXJSb3cpICogMjtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW1iZWRkaW5ncy5lbWJlZFgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBlbWJlZFhbY2x1c3RlcltpXV0gPSBlbWJlZGRpbmdzLmVtYmVkWFtpXSAqIGxheW91dFNpemUgLyBwZXJSb3cgKyBvZmZzZXRYO1xuICAgICAgICAgICAgICAgIGVtYmVkWVtjbHVzdGVyW2ldXSA9IGVtYmVkZGluZ3MuZW1iZWRZW2ldICogbGF5b3V0U2l6ZSAvIHBlclJvdyArIHlPZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbHVzdGVyTnVtKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZW1iZWRYLCBlbWJlZFkgfTtcbiAgICB9XG4gICAgbWVyZ2VDbHVzdGVycyhjbHVzdGVycywgaSwgaikge1xuICAgICAgICBjb25zdCBpQ2x1c3RlciA9IGNsdXN0ZXJzW2ldO1xuICAgICAgICBjb25zdCBqQ2x1c3RlciA9IGNsdXN0ZXJzW2pdO1xuICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IGNsdXN0ZXJzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICBpZiAoY2x1c3RlcnNba10gPT09IGpDbHVzdGVyKVxuICAgICAgICAgICAgICAgIGNsdXN0ZXJzW2tdID0gaUNsdXN0ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXNzaWduQ2x1c3RlcnMoc3BhcnNlTWF0cml4LCBuUm93cykge1xuICAgICAgICBsZXQgY2x1c3Rlck51bSA9IDA7XG4gICAgICAgIGNvbnN0IGlzID0gW107XG4gICAgICAgIGNvbnN0IGpzID0gW107XG4gICAgICAgIGNvbnN0IG9yZGVyID0gTWF0aC5mbG9vcihNYXRoLm1heChNYXRoLmxvZzEwKG5Sb3dzKSwgMikpICsgMTtcbiAgICAgICAgY29uc3QgbWluT3JkZXIgPSBNYXRoLnBvdygxMCwgb3JkZXIpO1xuICAgICAgICBjb25zdCBjbHVzdGVycyA9IG5ldyBBcnJheShuUm93cykuZmlsbCgtMSk7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VNYXRyaXgpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMoc3BhcnNlTWF0cml4W2ldKSkge1xuICAgICAgICAgICAgICAgIGlmIChNYXRoLnJvdW5kKHNwYXJzZU1hdHJpeFtpXVtqXSAqIG1pbk9yZGVyKSAvIG1pbk9yZGVyID4gMCAmJlxuICAgICAgICAgICAgICAgICAgICBzcGFyc2VNYXRyaXhbaV1bal0gIT09IE51bWJlcihpKSAmJiBOdW1iZXIoaikgPiBOdW1iZXIoaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXMucHVzaChOdW1iZXIoaSkpO1xuICAgICAgICAgICAgICAgICAgICBqcy5wdXNoKE51bWJlcihqKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjbHVzdGVyc1tOdW1iZXIoaSldICE9PSAtMSAmJiBjbHVzdGVyc1tOdW1iZXIoaildICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW051bWJlcihpKV0gIT09IGNsdXN0ZXJzW051bWJlcihqKV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXJnZUNsdXN0ZXJzKGNsdXN0ZXJzLCBOdW1iZXIoaSksIE51bWJlcihqKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2x1c3RlcnNbTnVtYmVyKGkpXSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihqKV0gPSBjbHVzdGVyc1tOdW1iZXIoaSldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNsdXN0ZXJzW051bWJlcihqKV0gIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyc1tOdW1iZXIoaSldID0gY2x1c3RlcnNbTnVtYmVyKGopXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihpKV0gPSBjbHVzdGVyTnVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGopXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbHVzdGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW2ldID09PSAtMSkge1xuICAgICAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgICAgICAgICBjbHVzdGVyc1tpXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgY2x1c3RlcnMsIGlzLCBqcyB9O1xuICAgIH1cbiAgICB0b09iamVjdEZvcm0oc3BhcnNlTWF0cml4KSB7XG4gICAgICAgIGNvbnN0IHNwYXJzZU9iamVjdCA9IHt9O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwYXJzZU1hdHJpeC5pLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXguaVtpXV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXSA9IHt9O1xuICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXVtzcGFyc2VNYXRyaXgualtpXV0gPSAxIC0gc3BhcnNlTWF0cml4LmRpc3RhbmNlW2ldO1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmpbaV1dKVxuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV0gPSB7fTtcbiAgICAgICAgICAgIHNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV1bc3BhcnNlTWF0cml4LmlbaV1dID0gMSAtIHNwYXJzZU1hdHJpeC5kaXN0YW5jZVtpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3BhcnNlT2JqZWN0O1xuICAgIH1cbiAgICBhZGRMb29wcyhzcGFyc2VPYmplY3QsIG5Sb3dzKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgblJvd3M7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3RbaV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldID0ge307XG4gICAgICAgICAgICBzcGFyc2VPYmplY3RbaV1baV0gPSB0aGlzLl9vcHRpb25zLm11bHRGYWN0b3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbm9ybWFsaXplKHNwYXJzZU9iamVjdCkge1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoc3BhcnNlT2JqZWN0KSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gc3BhcnNlT2JqZWN0W2ldO1xuICAgICAgICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMocm93KSlcbiAgICAgICAgICAgICAgICBzdW0gKz0gcm93W2pdO1xuICAgICAgICAgICAgaWYgKHN1bSA9PT0gMClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhyb3cpKVxuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdFtpXVtqXSAvPSBzdW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXhwYW5kKHNwYXJzZU9iamVjdCwgblJvd3MpIHtcbiAgICAgICAgY29uc3QgZXhwYW5kZWRPYmplY3QgPSB7fTtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBNYXRoLmZsb29yKE1hdGgubWF4KE1hdGgubG9nMTAoblJvd3MpLCAyKSkgKyAxO1xuICAgICAgICBjb25zdCBtaW5PcmRlciA9IE1hdGgucG93KDEwLCBvcmRlcik7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgblJvd3M7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3RbaV0pXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAvLyBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBleHBhbmRlZE9iamVjdFtpXSA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IGk7IGogPCBuUm93czsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzcGFyc2VPYmplY3RbaV0/LltqXSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gdGhpcy5nZXRFeHBhbmRWYWx1ZShzcGFyc2VPYmplY3QsIGksIGopOyAvL3BydW5pbmcgc3RlcFxuICAgICAgICAgICAgICAgIGlmIChNYXRoLnJvdW5kKHZhbCAqIG1pbk9yZGVyKSAvIG1pbk9yZGVyID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBleHBhbmRlZE9iamVjdFtpXVtqXSA9IHZhbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFleHBhbmRlZE9iamVjdFtqXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2pdID0ge307XG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2pdW2ldID0gdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXhwYW5kZWRPYmplY3Q7XG4gICAgfVxuICAgIC8vIHByaXZhdGUgcHJ1bmUocm93OiBTcGFyc2VNYXRyaXhPYmplY3RbbnVtYmVyXSkge1xuICAgIC8vIH1cbiAgICBpbmZsYXRlKHNwYXJzZU9iamVjdCkge1xuICAgICAgICBmb3IgKGNvbnN0IGkgb2YgT2JqZWN0LmtleXMoc3BhcnNlT2JqZWN0KSkge1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gc3BhcnNlT2JqZWN0W2ldO1xuICAgICAgICAgICAgZm9yIChjb25zdCBqIG9mIE9iamVjdC5rZXlzKHJvdykpXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldW2pdID0gTWF0aC5wb3coc3BhcnNlT2JqZWN0W2ldW2pdLCB0aGlzLl9vcHRpb25zLmluZmxhdGVGYWN0b3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldEV4cGFuZFZhbHVlKHNwYXJzZU9iamVjdCwgaSwgaikge1xuICAgICAgICBsZXQgdmFsID0gMDtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ZXMgPSBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3RbaV0gPz8ge30pO1xuICAgICAgICBjb25zdCBvdGhlckluZGV4ZXMgPSBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3Rbal0gPz8ge30pO1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgY3VycmVudEluZGV4ZXMpIHtcbiAgICAgICAgICAgIGlmIChvdGhlckluZGV4ZXMuaW5jbHVkZXMoaykpXG4gICAgICAgICAgICAgICAgdmFsICs9IHNwYXJzZU9iamVjdFtpXVtrXSAqIHNwYXJzZU9iamVjdFtqXVtrXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJXRnlZMjkyTFdOc2RYTjBaWEl1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnRZWEpqYjNZdFkyeDFjM1JsY2k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkRRU3hQUVVGUExFVkJRVU1zVTBGQlV5eEZRVUZETEUxQlFVMHNZMEZCWXl4RFFVRkRPMEZCUjNaRExFMUJRVTBzUTBGQlF5eE5RVUZOTEdsQ1FVRnBRaXhIUVVGbE8wbEJRek5ETEZsQlFWa3NSVUZCUlN4RFFVRkRPMGxCUTJZc1lVRkJZU3hGUVVGRkxFTkJRVU03U1VGRGFFSXNZVUZCWVN4RlFVRkZMRU5CUVVNN1NVRkRhRUlzVlVGQlZTeEZRVUZGTEVOQlFVTTdRMEZEWkN4RFFVRkRPMEZCUlVZc1RVRkJUU3hQUVVGUExHZENRVUZuUWp0SlFVTnVRaXhSUVVGUkxFTkJRV0U3U1VGRk4wSXNXVUZCV1N4UFFVRTBRaXhGUVVGRk8xRkJRM2hETEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1JVRkJReXhIUVVGSExHbENRVUZwUWl4RlFVRkZMRWRCUVVjc1NVRkJTU3hGUVVGRExFTkJRVU03U1VGRGJFUXNRMEZCUXp0SlFVVk5MRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zV1VGQlowTXNSVUZCUlN4TFFVRmhPMUZCUTNCRkxIZENRVUYzUWp0UlFVTjRRaXhuUTBGQlowTTdVVUZEYUVNc1NVRkJTU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVOdVJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1lVRkJZU3hIUVVGSExFTkJRVU1zUlVGQlJUdFpRVU51UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGbEJRVmtzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTnVReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMWxCUXpkQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEdGQlFXRXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRuUWtGRGNFUXNXVUZCV1N4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMmRDUVVOb1JDeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8yZENRVU16UWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzJGQlF6bENPMU5CUTBZN1VVRkRSQ3hOUVVGTkxFVkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEZsQlFWa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOd1JTeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJReTlDTEUxQlFVMHNWVUZCVlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVWQlFVVXNXVUZCV1N4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM0JGTEU5QlFVOHNSVUZCUXl4UlFVRlJMRVZCUVVVc1RVRkJUU3hGUVVGRkxGVkJRVlVzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRlZCUVZVc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUXl4RFFVRkRPMGxCUTJ4R0xFTkJRVU03U1VGRlR5eGxRVUZsTEVOQlFVTXNVVUZCYTBJN1VVRkRlRU1zVFVGQlRTeGpRVUZqTEVkQlFUQkNMRVZCUVVVc1EwRkJRenRSUVVOcVJDeExRVUZMTEUxQlFVMHNUMEZCVHl4SlFVRkpMRkZCUVZFc1JVRkJSVHRaUVVNNVFpeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJRenRuUWtGRE1VSXNZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU01UWl4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF6dFRRVU16UWp0UlFVTkVMRTFCUVUwc1lVRkJZU3hIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhqUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTndTQ3hOUVVGTkxGVkJRVlVzUjBGQk1FSXNSVUZCUlN4RFFVRkRPMUZCUXpkRExHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzcEZMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJUdFpRVU4wUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM2hETEhOQ1FVRnpRanRSUVVOMFFpdzRRMEZCT0VNN1VVRkRPVU1zYjBOQlFXOURPMUZCUTNCRExEUkRRVUUwUXp0UlFVTTFReXhuUTBGQlowTTdVVUZEYUVNc2IwSkJRVzlDTzFGQlEzQkNMR0ZCUVdFN1VVRkRZaXcyUTBGQk5rTTdVVUZETjBNc1RVRkJUVHRSUVVOT0xFbEJRVWs3U1VGRFRpeERRVUZETzBsQlJVOHNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGclFpeEZRVUZGTEZsQlFXZERMRVZCUVVVc1MwRkJZVHRSUVVOMFJpeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRmxCUVZrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRMME1zVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXk5RExFMUJRVTBzVlVGQlZTeEhRVUUwUWl4RlFVRkZMRU5CUVVNN1VVRkRMME1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU01UWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFOUJRVThzUTBGQlF6dG5Ra0ZEZEVJc1ZVRkJWU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTXpRaXhWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRemxDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTBnc2IwUkJRVzlFTzFGQlEzQkVMRzFFUVVGdFJEdFJRVU51UkN4SlFVRkpMRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGJrSXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRMjVFTEd0Q1FVRnJRaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1ZVRkJWU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpkR0xFbEJRVWtzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVm1MRWxCUVVrc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5vUWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGNrSXNTMEZCU3l4TlFVRk5MRmRCUVZjc1NVRkJTU3hyUWtGQmEwSXNSVUZCUlR0WlFVTTFReXhOUVVGTkxFOUJRVThzUjBGQlJ5eFZRVUZWTEVOQlFVTXNWMEZCYTBJc1EwRkJSU3hEUVVGRE8xbEJRMmhFTEUxQlFVMHNWVUZCVlN4SFFVRkhMRTFCUVUwc1UwRkJVeXhEUVVGRExFOUJRVThzUlVGQlJTeFpRVUZaTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1dVRkRha1VzU1VGQlNTeFZRVUZWTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eERRVUZETEVWQlFVVTdaMEpCUXpGRExGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUTJZc1QwRkJUeXhKUVVGSkxGVkJRVlVzUjBGQlJ5eE5RVUZOTEVOQlFVTTdaMEpCUXk5Q0xFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dGhRVU5zUXp0WlFVTkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF5eFZRVUZWTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hIUVVGSExFMUJRVTBzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXp0WlFVTndSU3gxUkVGQmRVUTdXVUZGZGtRc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOcVJDeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFZEJRVWNzVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXp0blFrRkRNVVVzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hIUVVGSExFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTTdZVUZETTBVN1dVRkRSQ3hWUVVGVkxFVkJRVVVzUTBGQlF6dFRRVU5rTzFGQlEwUXNUMEZCVHl4RlFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVU1zUTBGQlF6dEpRVU14UWl4RFFVRkRPMGxCUlU4c1lVRkJZU3hEUVVGRExGRkJRV3RDTEVWQlFVVXNRMEZCVXl4RlFVRkZMRU5CUVZNN1VVRkROVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRemRDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU0zUWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU40UXl4SlFVRkpMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eFJRVUZSTzJkQ1FVTXhRaXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRPMU5CUXpGQ08wbEJRMGdzUTBGQlF6dEpRVU5OTEdOQlFXTXNRMEZCUXl4WlFVRm5ReXhGUVVGRkxFdEJRV0U3VVVGRGJrVXNTVUZCU1N4VlFVRlZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMjVDTEUxQlFVMHNSVUZCUlN4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVONFFpeE5RVUZOTEVWQlFVVXNSMEZCWVN4RlFVRkZMRU5CUVVNN1VVRkRlRUlzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkROMFFzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEY2tNc1RVRkJUU3hSUVVGUkxFZEJRV0VzU1VGQlNTeExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY2tRc1MwRkJTeXhOUVVGTkxFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRk8xbEJRM3BETEV0QlFVc3NUVUZCVFN4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNc1JVRkJSVHRuUWtGRGJrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRlJMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVkQlFVY3NRMEZCUXp0dlFrRkRlRVVzV1VGQldTeERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVZFc1EwRkJReXhMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZPMjlDUVVONlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTnVRaXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU51UWl4SlFVRkpMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVU3ZDBKQlF6VkVMRWxCUVVrc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdORUpCUXpkRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNVVUZCVVN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR4UWtGRGRFUTdlVUpCUVUwc1NVRkJTU3hSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVU3ZDBKQlEzSkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdjVUpCUXpORE8zbENRVUZOTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPM2RDUVVOeVF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8zRkNRVU16UXp0NVFrRkJUVHQzUWtGRFRDeFZRVUZWTEVWQlFVVXNRMEZCUXp0M1FrRkRZaXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRE8zZENRVU5xUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRPM0ZDUVVOc1F6dHBRa0ZEUmp0aFFVTkdPMU5CUTBZN1VVRkRSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1VVRkJVU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTjBReXhKUVVGSkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSVHRuUWtGRGRFSXNWVUZCVlN4RlFVRkhMRU5CUVVNN1owSkJRMlFzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRlZCUVZVc1EwRkJRenRoUVVNeFFqdFRRVU5HTzFGQlEwUXNUMEZCVHl4RlFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZETEVOQlFVTTdTVUZETlVJc1EwRkJRenRKUVVWTkxGbEJRVmtzUTBGQlF5eFpRVUZuUXp0UlFVTnNSQ3hOUVVGTkxGbEJRVmtzUjBGQmVVTXNSVUZCUlN4RFFVRkRPMUZCUXpsRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVNNVF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJ4RExGbEJRVmtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzFsQlEzWkRMRmxCUVZrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTJ4R0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVNc1dVRkJXU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03V1VGRGRrTXNXVUZCV1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVMEZEYmtZN1VVRkRSQ3hQUVVGUExGbEJRVmtzUTBGQlF6dEpRVU4wUWl4RFFVRkRPMGxCUlU4c1VVRkJVU3hEUVVGRExGbEJRV2RETEVWQlFVVXNTMEZCWVR0UlFVTTVSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlF6bENMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTnNRaXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMWxCUTNaQ0xGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXp0VFFVTXZRenRKUVVOSUxFTkJRVU03U1VGRlR5eFRRVUZUTEVOQlFVTXNXVUZCWjBNN1VVRkRhRVFzUzBGQlN5eE5RVUZOTEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eEZRVUZGTzFsQlEzcERMRTFCUVUwc1IwRkJSeXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXp0WlFVTnVReXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEV2l4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRPMmRDUVVNNVFpeEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVZFc1EwRkJReXhEUVVGRE8xbEJRM1pDTEVsQlFVa3NSMEZCUnl4TFFVRkxMRU5CUVVNN1owSkJRVVVzVTBGQlV6dFpRVU40UWl4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRPMmRDUVVNNVFpeFpRVUZaTEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNc1EwRkJVU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETzFOQlF6TkRPMGxCUTBnc1EwRkJRenRKUVVWUExFMUJRVTBzUTBGQlF5eFpRVUZuUXl4RlFVRkZMRXRCUVdFN1VVRkROVVFzVFVGQlRTeGpRVUZqTEVkQlFYVkNMRVZCUVVVc1EwRkJRenRSUVVNNVF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNM1JDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnlReXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlF6bENMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTnNRaXhUUVVGVE8xbEJRMWdzSzBKQlFTdENPMWxCUXk5Q0xHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRka0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFdEJRVXNzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0blFrRkRPVUlzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZEZGtJc1UwRkJVenRuUWtGRFdDeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhqUVVGak8yZENRVU51UlN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRkZCUVZFc1IwRkJSeXhEUVVGRExFVkJRVVU3YjBKQlF6ZERMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNN2IwSkJRek5DTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJReXhEUVVGRE8zZENRVU53UWl4alFVRmpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzI5Q1FVTjZRaXhqUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRE8ybENRVU0xUWp0aFFVTkdPMU5CUTBZN1VVRkRSQ3hQUVVGUExHTkJRV01zUTBGQlF6dEpRVU40UWl4RFFVRkRPMGxCUlVRc2JVUkJRVzFFTzBsQlJXNUVMRWxCUVVrN1NVRkZTU3hQUVVGUExFTkJRVU1zV1VGQlowTTdVVUZET1VNc1MwRkJTeXhOUVVGTkxFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRk8xbEJRM3BETEUxQlFVMHNSMEZCUnl4SFFVRkhMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF6dFpRVU51UXl4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRPMmRDUVVNNVFpeFpRVUZaTEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNc1EwRkJVU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJVU3hEUVVGRExFTkJRVU1zUTBGQlVTeERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dFRRVU01Unp0SlFVTklMRU5CUVVNN1NVRkZUeXhqUVVGakxFTkJRVU1zV1VGQlowTXNSVUZCUlN4RFFVRk5MRVZCUVVVc1EwRkJUVHRSUVVOeVJTeEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRXaXhOUVVGTkxHTkJRV01zUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTXhSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjRSQ3hMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEdOQlFXTXNSVUZCUlR0WlFVTTVRaXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVNeFFpeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVkVzUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF6dFRRVU5vUlR0UlFVTkVMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzUTBGQlF6dERRVU5HSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0VGNHRnljMlZOWVhSeWFYaFNaWE4xYkhSOUlHWnliMjBnSnk0dUwyUnBjM1JoYm1ObExXMWhkSEpwZUM5emNHRnljMlV0YldGMGNtbDRMWE5sY25acFkyVW5PMXh1YVcxd2IzSjBJSHRpYVc5TVlYbHZkWFI5SUdaeWIyMGdKeTR2WW1sdkxXeGhlVzkxZENjN1hHNXBiWEJ2Y25RZ2UwMURURTl3ZEdsdmJuTXNJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkSDBnWm5KdmJTQW5MaTkwZVhCbGN5YzdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmtaV1poZFd4MFRVTk1UM0IwYVc5dWN6b2dUVU5NVDNCMGFXOXVjeUE5SUh0Y2JpQWdaWGh3WVc1a1JtRmpkRzl5T2lBeUxGeHVJQ0J0WVhoSmRHVnlZWFJwYjI1ek9pQTFMRnh1SUNCcGJtWnNZWFJsUm1GamRHOXlPaUF5TEZ4dUlDQnRkV3gwUm1GamRHOXlPaUF4TEZ4dWZUdGNibHh1Wlhod2IzSjBJR05zWVhOeklFMURURk53WVhKelpWSmxaSFZqWlhJZ2UxeHVJQ0J3Y21sMllYUmxJRjl2Y0hScGIyNXpPaUJOUTB4UGNIUnBiMjV6TzF4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0c5d2RITTZJRkJoY25ScFlXdzhUVU5NVDNCMGFXOXVjejRnUFNCN2ZTa2dlMXh1SUNBZ0lIUm9hWE11WDI5d2RHbHZibk1nUFNCN0xpNHVaR1ZtWVhWc2RFMURURTl3ZEdsdmJuTXNJQzR1TG05d2RITjlPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR0Z6ZVc1aklIUnlZVzV6Wm05eWJTaHpjR0Z5YzJWTllYUnlhWGc2SUZOd1lYSnpaVTFoZEhKcGVGSmxjM1ZzZEN3Z2JsSnZkM002SUc1MWJXSmxjaWtnZTF4dUlDQWdJQzh2SUhSbGMzUlhiM0pyWlhKTmRXeDBhWEJzZVNncE8xeHVJQ0FnSUM4dklISmxkSFZ5YmlCdVpYY2dTVzUwTXpKQmNuSmhlU2h1VW05M2N5azdYRzRnSUNBZ2JHVjBJSE53WVhKelpVOWlhbVZqZENBOUlIUm9hWE11ZEc5UFltcGxZM1JHYjNKdEtITndZWEp6WlUxaGRISnBlQ2s3WEc0Z0lDQWdhV1lnS0hSb2FYTXVYMjl3ZEdsdmJuTXViV0Y0U1hSbGNtRjBhVzl1Y3lBK0lEQXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVlXUmtURzl2Y0hNb2MzQmhjbk5sVDJKcVpXTjBMQ0J1VW05M2N5azdYRzRnSUNBZ0lDQjBhR2x6TG01dmNtMWhiR2w2WlNoemNHRnljMlZQWW1wbFkzUXBPMXh1SUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0IwYUdsekxsOXZjSFJwYjI1ekxtMWhlRWwwWlhKaGRHbHZibk03SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNRZ1BTQjBhR2x6TG1WNGNHRnVaQ2h6Y0dGeWMyVlBZbXBsWTNRc0lHNVNiM2R6S1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVwYm1ac1lYUmxLSE53WVhKelpVOWlhbVZqZENrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11Ym05eWJXRnNhWHBsS0hOd1lYSnpaVTlpYW1WamRDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJSHRqYkhWemRHVnljeXdnYVhNc0lHcHpmU0E5SUhSb2FYTXVZWE56YVdkdVEyeDFjM1JsY25Nb2MzQmhjbk5sVDJKcVpXTjBMQ0J1VW05M2N5azdYRzRnSUNBZ2RHaHBjeTVqYjNKeVpXTjBRMngxYzNSbGNuTW9ZMngxYzNSbGNuTXBPMXh1SUNBZ0lHTnZibk4wSUdWdFltVmtaR2x1WjNNZ1BTQmhkMkZwZENCMGFHbHpMbXhoZVc5MWRDaGpiSFZ6ZEdWeWN5d2djM0JoY25ObFQySnFaV04wTENCdVVtOTNjeWs3WEc0Z0lDQWdjbVYwZFhKdUlIdGpiSFZ6ZEdWeWN5d2daVzFpWldSWU9pQmxiV0psWkdScGJtZHpMbVZ0WW1Wa1dDd2daVzFpWldSWk9pQmxiV0psWkdScGJtZHpMbVZ0WW1Wa1dTd2dhWE1zSUdwemZUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZMjl5Y21WamRFTnNkWE4wWlhKektHTnNkWE4wWlhKek9pQnVkVzFpWlhKYlhTa2dlMXh1SUNBZ0lHTnZibk4wSUdOc2RYTjBaWEpUYVhwbFRXRndPaUI3VzE4NklHNTFiV0psY2wwNklHNTFiV0psY24wZ1BTQjdmVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR05zZFhOMFpYSWdiMllnWTJ4MWMzUmxjbk1wSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hZMngxYzNSbGNsTnBlbVZOWVhCYlkyeDFjM1JsY2wwcFhHNGdJQ0FnSUNBZ0lHTnNkWE4wWlhKVGFYcGxUV0Z3VzJOc2RYTjBaWEpkSUQwZ01EdGNiaUFnSUNBZ0lHTnNkWE4wWlhKVGFYcGxUV0Z3VzJOc2RYTjBaWEpkS3lzN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElITnZjblJsWkVsdVpHVjRaWE1nUFNCUFltcGxZM1F1YTJWNWN5aGpiSFZ6ZEdWeVUybDZaVTFoY0NrdWJXRndLRTUxYldKbGNpa3VjMjl5ZENnb1lTd2dZaWtnUFQ0Z1kyeDFjM1JsY2xOcGVtVk5ZWEJiWVYwZ0xTQmpiSFZ6ZEdWeVUybDZaVTFoY0Z0aVhTazdYRzRnSUNBZ1kyOXVjM1FnWTJ4MWMzUmxjazFoY0RvZ2UxdGZPaUJ1ZFcxaVpYSmRPaUJ1ZFcxaVpYSjlJRDBnZTMwN1hHNGdJQ0FnYzI5eWRHVmtTVzVrWlhobGN5NW1iM0pGWVdOb0tDaGpiSFZ6ZEdWeVNXUjRMQ0JwS1NBOVBpQmpiSFZ6ZEdWeVRXRndXMk5zZFhOMFpYSkpaSGhkSUQwZ2FTQXJJREVwTzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWTJ4MWMzUmxjbk11YkdWdVozUm9PeUJwS3lzcFhHNGdJQ0FnSUNCamJIVnpkR1Z5YzF0cFhTQTlJR05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxjbk5iYVYxZE8xeHVJQ0FnSUM4dklHeGxkQ0JqZFhKRGJIVnpkR1Z5SUQwZ01UdGNiaUFnSUNBdkx5Qm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR05zZFhOMFpYSnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnTHk4Z0lDQnBaaUFvSVdOc2RYTjBaWEpOWVhCYlkyeDFjM1JsY25OYmFWMWRLU0I3WEc0Z0lDQWdMeThnSUNBZ0lHTnNkWE4wWlhKTllYQmJZMngxYzNSbGNuTmJhVjFkSUQwZ1kzVnlRMngxYzNSbGNqdGNiaUFnSUNBdkx5QWdJQ0FnWTJ4MWMzUmxjbk5iYVYwZ1BTQmpkWEpEYkhWemRHVnlPMXh1SUNBZ0lDOHZJQ0FnSUNCamRYSkRiSFZ6ZEdWeUt5czdYRzRnSUNBZ0x5OGdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDOHZJQ0FnSUNCamJIVnpkR1Z5YzF0cFhTQTlJR05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxjbk5iYVYxZE8xeHVJQ0FnSUM4dklDQWdmVnh1SUNBZ0lDOHZJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdiR0Y1YjNWMEtHTnNkWE4wWlhKek9pQnVkVzFpWlhKYlhTd2djM0JoY25ObFRXRjBjbWw0T2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRc0lHNVNiM2R6T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JqYjI1emRDQmxiV0psWkZnZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHNVNiM2R6S1M1bWFXeHNLREFwTzF4dUlDQWdJR052Ym5OMElHVnRZbVZrV1NBOUlHNWxkeUJHYkc5aGRETXlRWEp5WVhrb2JsSnZkM01wTG1acGJHd29NQ2s3WEc0Z0lDQWdZMjl1YzNRZ1kyeDFjM1JsY2sxaGNEb2dlMXRmT2lCdWRXMWlaWEpkT2lCdWRXMWlaWEpiWFgwZ1BTQjdmVHRjYmlBZ0lDQmpiSFZ6ZEdWeWN5NW1iM0pGWVdOb0tDaGpiSFZ6ZEdWeUxDQnBLU0E5UGlCN1hHNGdJQ0FnSUNCcFppQW9JV05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxjbDBwWEc0Z0lDQWdJQ0FnSUdOc2RYTjBaWEpOWVhCYlkyeDFjM1JsY2wwZ1BTQmJYVHRjYmlBZ0lDQWdJR05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxjbDB1Y0hWemFDaHBLVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQXZMeUJqYjI1emRDQnVRMngxYzNSbGNuTWdQU0JQWW1wbFkzUXVhMlY1Y3loamJIVnpkR1Z5VFdGd0tTNXNaVzVuZEdnN1hHNGdJQ0FnTHk4Z1kyOXVjM1FnY0dWeVVtOTNJRDBnVFdGMGFDNW1iRzl2Y2loTllYUm9Mbk54Y25Rb2JrTnNkWE4wWlhKektTazdYRzRnSUNBZ2JHVjBJR05zZFhOMFpYSk9kVzBnUFNBd08xeHVJQ0FnSUdOdmJuTjBJSE52Y25SbFpFTnNkWE4wWlhKT1lXMWxjeUE5SUU5aWFtVmpkQzVyWlhsektHTnNkWE4wWlhKTllYQXBPMXh1SUNBZ0lITnZjblJsWkVOc2RYTjBaWEpPWVcxbGN5NXpiM0owS0NoaExDQmlLU0E5UGlCamJIVnpkR1Z5VFdGd1cySWdZWE1nWVc1NVhTNXNaVzVuZEdnZ0xTQmpiSFZ6ZEdWeVRXRndXMkVnWVhNZ1lXNTVYUzVzWlc1bmRHZ3BPMXh1SUNBZ0lHeGxkQ0J3WlhKU2IzY2dQU0EyTzF4dVhHNGdJQ0FnYkdWMElIbFBabVp6WlhRZ1BTQXdPMXh1SUNBZ0lHTnZibk4wSUd4aGVXOTFkRk5wZW1VZ1BTQTFPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdZMngxYzNSbGNrNWhiV1VnYjJZZ2MyOXlkR1ZrUTJ4MWMzUmxjazVoYldWektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCamJIVnpkR1Z5SUQwZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeVRtRnRaU0JoY3lCaGJubGRJVHRjYmlBZ0lDQWdJR052Ym5OMElHVnRZbVZrWkdsdVozTWdQU0JoZDJGcGRDQmlhVzlNWVhsdmRYUW9ZMngxYzNSbGNpd2djM0JoY25ObFRXRjBjbWw0TENBd0xqQXdNU2s3WEc0Z0lDQWdJQ0JwWmlBb1kyeDFjM1JsY2s1MWJTQTlQVDBnVFdGMGFDNWpaV2xzS0hCbGNsSnZkeUF2SURFdU5Ta3BJSHRjYmlBZ0lDQWdJQ0FnWTJ4MWMzUmxjazUxYlNBOUlEQTdYRzRnSUNBZ0lDQWdJSGxQWm1aelpYUWdLejBnYkdGNWIzVjBVMmw2WlNBdklIQmxjbEp2ZHp0Y2JpQWdJQ0FnSUNBZ2NHVnlVbTkzSUQwZ1RXRjBhQzVqWldsc0tIQmxjbEp2ZHlBcUlERXVOU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JqYjI1emRDQnZabVp6WlhSWUlEMGdLQ2hqYkhWemRHVnlUblZ0SUNVZ2NHVnlVbTkzS1NBcUlHeGhlVzkxZEZOcGVtVWdMeUJ3WlhKU2IzY3BJQ29nTVM0MU8xeHVJQ0FnSUNBZ0x5OGdZMjl1YzNRZ2IyWm1jMlYwV1NBOUlFMWhkR2d1Wm14dmIzSW9ZMngxYzNSbGNrNTFiU0F2SUhCbGNsSnZkeWtnS2lBeU8xeHVYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1Z0WW1Wa1pHbHVaM011WlcxaVpXUllMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnSUNBZ0lHVnRZbVZrV0Z0amJIVnpkR1Z5VzJsZFhTQTlJR1Z0WW1Wa1pHbHVaM011WlcxaVpXUllXMmxkSUNvZ2JHRjViM1YwVTJsNlpTQXZJSEJsY2xKdmR5QXJJRzltWm5ObGRGZzdYRzRnSUNBZ0lDQWdJR1Z0WW1Wa1dWdGpiSFZ6ZEdWeVcybGRYU0E5SUdWdFltVmtaR2x1WjNNdVpXMWlaV1JaVzJsZElDb2diR0Y1YjNWMFUybDZaU0F2SUhCbGNsSnZkeUFySUhsUFptWnpaWFE3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JqYkhWemRHVnlUblZ0S3lzN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjdaVzFpWldSWUxDQmxiV0psWkZsOU8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnRaWEpuWlVOc2RYTjBaWEp6S0dOc2RYTjBaWEp6T2lCdWRXMWlaWEpiWFN3Z2FUb2diblZ0WW1WeUxDQnFPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQmpiMjV6ZENCcFEyeDFjM1JsY2lBOUlHTnNkWE4wWlhKelcybGRPMXh1SUNBZ0lHTnZibk4wSUdwRGJIVnpkR1Z5SUQwZ1kyeDFjM1JsY25OYmFsMDdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2F5QTlJREE3SUdzZ1BDQmpiSFZ6ZEdWeWN5NXNaVzVuZEdnN0lHc3JLeWtnZTF4dUlDQWdJQ0FnYVdZZ0tHTnNkWE4wWlhKelcydGRJRDA5UFNCcVEyeDFjM1JsY2lsY2JpQWdJQ0FnSUNBZ1kyeDFjM1JsY25OYmExMGdQU0JwUTJ4MWMzUmxjanRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjSFZpYkdsaklHRnpjMmxuYmtOc2RYTjBaWEp6S0hOd1lYSnpaVTFoZEhKcGVEb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBMQ0J1VW05M2N6b2diblZ0WW1WeUtTQjdYRzRnSUNBZ2JHVjBJR05zZFhOMFpYSk9kVzBnUFNBd08xeHVJQ0FnSUdOdmJuTjBJR2x6T2lCdWRXMWlaWEpiWFNBOUlGdGRPMXh1SUNBZ0lHTnZibk4wSUdwek9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQWdJR052Ym5OMElHOXlaR1Z5SUQwZ1RXRjBhQzVtYkc5dmNpaE5ZWFJvTG0xaGVDaE5ZWFJvTG14dlp6RXdLRzVTYjNkektTd2dNaWtwSUNzZ01UdGNiaUFnSUNCamIyNXpkQ0J0YVc1UGNtUmxjaUE5SUUxaGRHZ3VjRzkzS0RFd0xDQnZjbVJsY2lrN1hHNGdJQ0FnWTI5dWMzUWdZMngxYzNSbGNuTTZJRzUxYldKbGNsdGRJRDBnYm1WM0lFRnljbUY1S0c1U2IzZHpLUzVtYVd4c0tDMHhLVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR2tnYjJZZ1QySnFaV04wTG10bGVYTW9jM0JoY25ObFRXRjBjbWw0S1NrZ2UxeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnFJRzltSUU5aWFtVmpkQzVyWlhsektITndZWEp6WlUxaGRISnBlRnRwSUdGeklHRnVlVjBwS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hOWVhSb0xuSnZkVzVrS0hOd1lYSnpaVTFoZEhKcGVGdHBJR0Z6SUdGdWVWMWJhaUJoY3lCaGJubGRJQ29nYldsdVQzSmtaWElwSUM4Z2JXbHVUM0prWlhJZ1BpQXdJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ2MzQmhjbk5sVFdGMGNtbDRXMmtnWVhNZ1lXNTVYVnRxSUdGeklHRnVlVjBnSVQwOUlFNTFiV0psY2locEtTQW1KaUJPZFcxaVpYSW9haWtnUGlCT2RXMWlaWElvYVNrcElIdGNiaUFnSUNBZ0lDQWdJQ0JwY3k1d2RYTm9LRTUxYldKbGNpaHBLU2s3WEc0Z0lDQWdJQ0FnSUNBZ2FuTXVjSFZ6YUNoT2RXMWlaWElvYWlrcE8xeHVJQ0FnSUNBZ0lDQWdJR2xtSUNoamJIVnpkR1Z5YzF0T2RXMWlaWElvYVNsZElDRTlQU0F0TVNBbUppQmpiSFZ6ZEdWeWMxdE9kVzFpWlhJb2FpbGRJQ0U5UFNBdE1Ta2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR05zZFhOMFpYSnpXMDUxYldKbGNpaHBLVjBnSVQwOUlHTnNkWE4wWlhKelcwNTFiV0psY2locUtWMHBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIUm9hWE11YldWeVoyVkRiSFZ6ZEdWeWN5aGpiSFZ6ZEdWeWN5d2dUblZ0WW1WeUtHa3BMQ0JPZFcxaVpYSW9haWtwTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9ZMngxYzNSbGNuTmJUblZ0WW1WeUtHa3BYU0FoUFQwZ0xURXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnNkWE4wWlhKelcwNTFiV0psY2locUtWMGdQU0JqYkhWemRHVnljMXRPZFcxaVpYSW9hU2xkTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9ZMngxYzNSbGNuTmJUblZ0WW1WeUtHb3BYU0FoUFQwZ0xURXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnNkWE4wWlhKelcwNTFiV0psY2locEtWMGdQU0JqYkhWemRHVnljMXRPZFcxaVpYSW9haWxkTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYkhWemRHVnlUblZ0S3lzN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYkhWemRHVnljMXRPZFcxaVpYSW9hU2xkSUQwZ1kyeDFjM1JsY2s1MWJUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhxS1YwZ1BTQmpiSFZ6ZEdWeVRuVnRPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwUFRBN0lHa2dQQ0JqYkhWemRHVnljeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLR05zZFhOMFpYSnpXMmxkSUQwOVBTQXRNU2tnZTF4dUlDQWdJQ0FnSUNCamJIVnpkR1Z5VG5WdElDc3JPMXh1SUNBZ0lDQWdJQ0JqYkhWemRHVnljMXRwWFNBOUlHTnNkWE4wWlhKT2RXMDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUI3WTJ4MWMzUmxjbk1zSUdsekxDQnFjMzA3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nZEc5UFltcGxZM1JHYjNKdEtITndZWEp6WlUxaGRISnBlRG9nVTNCaGNuTmxUV0YwY21sNFVtVnpkV3gwS1RvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMElIdGNiaUFnSUNCamIyNXpkQ0J6Y0dGeWMyVlBZbXBsWTNRNklIdGJYem9nYm5WdFltVnlYVG9nZTF0Zk9pQnVkVzFpWlhKZE9pQnVkVzFpWlhKOWZTQTlJSHQ5TzF4dUlDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYzNCaGNuTmxUV0YwY21sNExta3ViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hjM0JoY25ObFQySnFaV04wVzNOd1lYSnpaVTFoZEhKcGVDNXBXMmxkWFNsY2JpQWdJQ0FnSUNBZ2MzQmhjbk5sVDJKcVpXTjBXM053WVhKelpVMWhkSEpwZUM1cFcybGRYU0E5SUh0OU8xeHVJQ0FnSUNBZ2MzQmhjbk5sVDJKcVpXTjBXM053WVhKelpVMWhkSEpwZUM1cFcybGRYVnR6Y0dGeWMyVk5ZWFJ5YVhndWFsdHBYVjBnUFNBeElDMGdjM0JoY25ObFRXRjBjbWw0TG1ScGMzUmhibU5sVzJsZE8xeHVJQ0FnSUNBZ2FXWWdLQ0Z6Y0dGeWMyVlBZbXBsWTNSYmMzQmhjbk5sVFdGMGNtbDRMbXBiYVYxZEtWeHVJQ0FnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtcGJhVjFkSUQwZ2UzMDdYRzRnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtcGJhVjFkVzNOd1lYSnpaVTFoZEhKcGVDNXBXMmxkWFNBOUlERWdMU0J6Y0dGeWMyVk5ZWFJ5YVhndVpHbHpkR0Z1WTJWYmFWMDdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ6Y0dGeWMyVlBZbXBsWTNRN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHRmtaRXh2YjNCektITndZWEp6WlU5aWFtVmpkRG9nVTNCaGNuTmxUV0YwY21sNFQySnFaV04wTENCdVVtOTNjem9nYm5WdFltVnlLU0I3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J1VW05M2N6c2dhU3NyS1NCN1hHNGdJQ0FnSUNCcFppQW9JWE53WVhKelpVOWlhbVZqZEZ0cFhTbGNiaUFnSUNBZ0lDQWdjM0JoY25ObFQySnFaV04wVzJsZElEMGdlMzA3WEc0Z0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNSYmFWMWJhVjBnUFNCMGFHbHpMbDl2Y0hScGIyNXpMbTExYkhSR1lXTjBiM0k3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J1YjNKdFlXeHBlbVVvYzNCaGNuTmxUMkpxWldOME9pQlRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUXBJSHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR2tnYjJZZ1QySnFaV04wTG10bGVYTW9jM0JoY25ObFQySnFaV04wS1NrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY205M0lEMGdjM0JoY25ObFQySnFaV04wVzJrZ1lYTWdZVzU1WFR0Y2JpQWdJQ0FnSUd4bGRDQnpkVzBnUFNBd08xeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnFJRzltSUU5aWFtVmpkQzVyWlhsektISnZkeWtwWEc0Z0lDQWdJQ0FnSUhOMWJTQXJQU0J5YjNkYmFpQmhjeUJoYm5sZE8xeHVJQ0FnSUNBZ2FXWWdLSE4xYlNBOVBUMGdNQ2tnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdvZ2IyWWdUMkpxWldOMExtdGxlWE1vY205M0tTbGNiaUFnSUNBZ0lDQWdjM0JoY25ObFQySnFaV04wVzJrZ1lYTWdZVzU1WFZ0cUlHRnpJR0Z1ZVYwZ0x6MGdjM1Z0TzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWlhod1lXNWtLSE53WVhKelpVOWlhbVZqZERvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMExDQnVVbTkzY3pvZ2JuVnRZbVZ5S1NCN1hHNGdJQ0FnWTI5dWMzUWdaWGh3WVc1a1pXUlBZbXBsWTNRNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRDQTlJSHQ5TzF4dUlDQWdJR052Ym5OMElHOXlaR1Z5SUQwZ1RXRjBhQzVtYkc5dmNpaE5ZWFJvTG0xaGVDaE5ZWFJvTG14dlp6RXdLRzVTYjNkektTd2dNaWtwSUNzZ01UdGNiaUFnSUNCamIyNXpkQ0J0YVc1UGNtUmxjaUE5SUUxaGRHZ3VjRzkzS0RFd0xDQnZjbVJsY2lrN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCdVVtOTNjenNnYVNzcktTQjdYRzRnSUNBZ0lDQnBaaUFvSVhOd1lYSnpaVTlpYW1WamRGdHBYU2xjYmlBZ0lDQWdJQ0FnWTI5dWRHbHVkV1U3WEc0Z0lDQWdJQ0F2THlCamIyNXpkQ0J5YjNjZ1BTQnpjR0Z5YzJWUFltcGxZM1JiYVYwN1hHNGdJQ0FnSUNCbGVIQmhibVJsWkU5aWFtVmpkRnRwWFNBOUlIdDlPMXh1SUNBZ0lDQWdabTl5SUNoc1pYUWdhaUE5SUdrN0lHb2dQQ0J1VW05M2N6c2dhaXNyS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doYzNCaGNuTmxUMkpxWldOMFcybGRQeTViYWwwcFhHNGdJQ0FnSUNBZ0lDQWdZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQWdJR052Ym5OMElIWmhiQ0E5SUhSb2FYTXVaMlYwUlhod1lXNWtWbUZzZFdVb2MzQmhjbk5sVDJKcVpXTjBMQ0JwTENCcUtUc2dMeTl3Y25WdWFXNW5JSE4wWlhCY2JpQWdJQ0FnSUNBZ2FXWWdLRTFoZEdndWNtOTFibVFvZG1Gc0lDb2diV2x1VDNKa1pYSXBJQzhnYldsdVQzSmtaWElnUGlBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnWlhod1lXNWtaV1JQWW1wbFkzUmJhVjFiYWwwZ1BTQjJZV3c3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLQ0ZsZUhCaGJtUmxaRTlpYW1WamRGdHFYU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHVjRjR0Z1WkdWa1QySnFaV04wVzJwZElEMGdlMzA3WEc0Z0lDQWdJQ0FnSUNBZ1pYaHdZVzVrWldSUFltcGxZM1JiYWwxYmFWMGdQU0IyWVd3N1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJR1Y0Y0dGdVpHVmtUMkpxWldOME8xeHVJQ0I5WEc1Y2JpQWdMeThnY0hKcGRtRjBaU0J3Y25WdVpTaHliM2M2SUZOd1lYSnpaVTFoZEhKcGVFOWlhbVZqZEZ0dWRXMWlaWEpkS1NCN1hHNWNiaUFnTHk4Z2ZWeHVYRzRnSUhCeWFYWmhkR1VnYVc1bWJHRjBaU2h6Y0dGeWMyVlBZbXBsWTNRNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRDa2dlMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdhU0J2WmlCUFltcGxZM1F1YTJWNWN5aHpjR0Z5YzJWUFltcGxZM1FwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J5YjNjZ1BTQnpjR0Z5YzJWUFltcGxZM1JiYVNCaGN5QmhibmxkTzF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCcUlHOW1JRTlpYW1WamRDNXJaWGx6S0hKdmR5a3BYRzRnSUNBZ0lDQWdJSE53WVhKelpVOWlhbVZqZEZ0cElHRnpJR0Z1ZVYxYmFpQmhjeUJoYm5sZElEMGdUV0YwYUM1d2IzY29jM0JoY25ObFQySnFaV04wVzJrZ1lYTWdZVzU1WFZ0cUlHRnpJR0Z1ZVYwc0lIUm9hWE11WDI5d2RHbHZibk11YVc1bWJHRjBaVVpoWTNSdmNpazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQm5aWFJGZUhCaGJtUldZV3gxWlNoemNHRnljMlZQWW1wbFkzUTZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ3dnYVRvZ1lXNTVMQ0JxT2lCaGJua3BJSHRjYmlBZ0lDQnNaWFFnZG1Gc0lEMGdNRHRjYmlBZ0lDQmpiMjV6ZENCamRYSnlaVzUwU1c1a1pYaGxjeUE5SUU5aWFtVmpkQzVyWlhsektITndZWEp6WlU5aWFtVmpkRnRwWFNBL1B5QjdmU2s3WEc0Z0lDQWdZMjl1YzNRZ2IzUm9aWEpKYm1SbGVHVnpJRDBnVDJKcVpXTjBMbXRsZVhNb2MzQmhjbk5sVDJKcVpXTjBXMnBkSUQ4L0lIdDlLVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR3NnYjJZZ1kzVnljbVZ1ZEVsdVpHVjRaWE1wSUh0Y2JpQWdJQ0FnSUdsbUlDaHZkR2hsY2tsdVpHVjRaWE11YVc1amJIVmtaWE1vYXlrcFhHNGdJQ0FnSUNBZ0lIWmhiQ0FyUFNCemNHRnljMlZQWW1wbFkzUmJhVjFiYXlCaGN5QmhibmxkSUNvZ2MzQmhjbk5sVDJKcVpXTjBXMnBkVzJzZ1lYTWdZVzU1WFR0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIWmhiRHRjYmlBZ2ZWeHVmVnh1WEc0aVhYMD0iLCJpbXBvcnQgeyBTcGFyc2VNYXRyaXhTZXJ2aWNlIH0gZnJvbSAnLi4vZGlzdGFuY2UtbWF0cml4L3NwYXJzZS1tYXRyaXgtc2VydmljZSc7XG5pbXBvcnQgeyBNQ0xTcGFyc2VSZWR1Y2VyIH0gZnJvbSAnLi9tYXJjb3YtY2x1c3Rlcic7XG5vbm1lc3NhZ2UgPSBhc3luYyAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB7IGRhdGEsIHRocmVzaG9sZCwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QsIGRpc3RhbmNlRm5BcmdzLCBkaXN0YW5jZUZucywgbWF4SXRlcmF0aW9ucyB9ID0gZXZlbnQuZGF0YTtcbiAgICBjb25zdCBzcGFyc2UgPSBhd2FpdCBuZXcgU3BhcnNlTWF0cml4U2VydmljZSgpXG4gICAgICAgIC5jYWxjTXVsdGlDb2x1bW4oZGF0YSwgZGlzdGFuY2VGbnMsIHRocmVzaG9sZCAvIDEwMCwgZGlzdGFuY2VGbkFyZ3MsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBuZXcgTUNMU3BhcnNlUmVkdWNlcih7IG1heEl0ZXJhdGlvbnM6IG1heEl0ZXJhdGlvbnMgPz8gNSB9KS50cmFuc2Zvcm0oc3BhcnNlLCBkYXRhWzBdLmxlbmd0aCk7XG4gICAgcG9zdE1lc3NhZ2UoeyByZXMgfSk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldOc0xYZHZjbXRsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbTFqYkMxM2IzSnJaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4RlFVRkRMRzFDUVVGdFFpeEZRVUZETEUxQlFVMHNNRU5CUVRCRExFTkJRVU03UVVGSE4wVXNUMEZCVHl4RlFVRkRMR2RDUVVGblFpeEZRVUZETEUxQlFVMHNhMEpCUVd0Q0xFTkJRVU03UVVGRmJFUXNVMEZCVXl4SFFVRkhMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJUdEpRVU14UWl4TlFVRk5MRVZCUVVNc1NVRkJTU3hGUVVGRkxGTkJRVk1zUlVGQlJTeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzWTBGQll5eEZRVUZGTEZkQlFWY3NSVUZCUlN4aFFVRmhMRVZCUVVNc1IwRkhhRUlzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXp0SlFVTXhSaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eE5RVUZOTEVsQlFVa3NiVUpCUVcxQ0xFVkJRVVU3VTBGRE0wTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hYUVVGWExFVkJRVVVzVTBGQlV5eEhRVUZITEVkQlFVY3NSVUZCUlN4alFVRmpMRVZCUVVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1NVRkRia2NzVFVGQlRTeEhRVUZITEVkQlFVY3NUVUZCVFN4SlFVRkpMR2RDUVVGblFpeERRVUZETEVWQlFVTXNZVUZCWVN4RlFVRkZMR0ZCUVdFc1NVRkJTU3hEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMGxCUXpsSExGZEJRVmNzUTBGQlF5eEZRVUZETEVkQlFVY3NSVUZCUXl4RFFVRkRMRU5CUVVNN1FVRkRja0lzUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0VGNHRnljMlZOWVhSeWFYaFRaWEoyYVdObGZTQm1jbTl0SUNjdUxpOWthWE4wWVc1alpTMXRZWFJ5YVhndmMzQmhjbk5sTFcxaGRISnBlQzF6WlhKMmFXTmxKenRjYm1sdGNHOXlkQ0I3UkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaSDBnWm5KdmJTQW5MaTR2WkdsemRHRnVZMlV0YldGMGNtbDRMM1I1Y0dWekp6dGNibWx0Y0c5eWRDQjdTMjV2ZDI1TlpYUnlhV056ZlNCbWNtOXRJQ2N1TGk5MGVYQmxaQzF0WlhSeWFXTnpKenRjYm1sdGNHOXlkQ0I3VFVOTVUzQmhjbk5sVW1Wa2RXTmxjbjBnWm5KdmJTQW5MaTl0WVhKamIzWXRZMngxYzNSbGNpYzdYRzVjYm05dWJXVnpjMkZuWlNBOUlHRnplVzVqSUNobGRtVnVkQ2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQjdaR0YwWVN3Z2RHaHlaWE5vYjJ4a0xDQjNaV2xuYUhSekxDQmhaMmR5WldkaGRHbHZiazFsZEdodlpDd2daR2x6ZEdGdVkyVkdia0Z5WjNNc0lHUnBjM1JoYm1ObFJtNXpMQ0J0WVhoSmRHVnlZWFJwYjI1emZUcGNiaUFnSUh0a1lYUmhPaUJoYm5sYlhWdGRMQ0IwYUhKbGMyaHZiR1E2SUc1MWJXSmxjaXhjYmlBZ0lDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhTd2dZV2RuY21WbllYUnBiMjVOWlhSb2IyUTZJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUXNYRzRnSUNBZ1pHbHpkR0Z1WTJWR2JuTTZJRXR1YjNkdVRXVjBjbWxqYzF0ZExDQmthWE4wWVc1alpVWnVRWEpuY3pvZ1lXNTVXMTBzSUcxaGVFbDBaWEpoZEdsdmJuTTZJRzUxYldKbGNuMGdQU0JsZG1WdWRDNWtZWFJoTzF4dUlDQmpiMjV6ZENCemNHRnljMlVnUFNCaGQyRnBkQ0J1WlhjZ1UzQmhjbk5sVFdGMGNtbDRVMlZ5ZG1salpTZ3BYRzRnSUNBZ0xtTmhiR05OZFd4MGFVTnZiSFZ0Ymloa1lYUmhMQ0JrYVhOMFlXNWpaVVp1Y3l3Z2RHaHlaWE5vYjJ4a0lDOGdNVEF3TENCa2FYTjBZVzVqWlVadVFYSm5jeXdnZDJWcFoyaDBjeXdnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFwTzF4dUlDQmpiMjV6ZENCeVpYTWdQU0JoZDJGcGRDQnVaWGNnVFVOTVUzQmhjbk5sVW1Wa2RXTmxjaWg3YldGNFNYUmxjbUYwYVc5dWN6b2diV0Y0U1hSbGNtRjBhVzl1Y3lBL1B5QTFmU2t1ZEhKaGJuTm1iM0p0S0hOd1lYSnpaU3dnWkdGMFlWc3dYUzVzWlc1bmRHZ3BPMXh1SUNCd2IzTjBUV1Z6YzJGblpTaDdjbVZ6ZlNrN1hHNTlPMXh1SWwxOSJdLCJuYW1lcyI6WyJEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJjaHVua0lkIiwiZyIsImdsb2JhbFRoaXMiLCJ0aGlzIiwiRnVuY3Rpb24iLCJlIiwid2luZG93IiwibyIsIm9iaiIsInByb3AiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJzY3JpcHRVcmwiLCJpbXBvcnRTY3JpcHRzIiwibG9jYXRpb24iLCJkb2N1bWVudCIsImN1cnJlbnRTY3JpcHQiLCJzcmMiLCJzY3JpcHRzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJsZW5ndGgiLCJpIiwiRXJyb3IiLCJyZXBsYWNlIiwicCIsImIiLCJzZWxmIiwiaXNOaWwiLCJ4IiwiaW5zZXJ0U21hbGxlciIsImRpc3RhbmNlc0FyIiwiaW5kZXhlcyIsIm51bSIsImluZGV4IiwibmV3UG9zaXRpb24iLCJmaW5kSW5kZXgiLCJ2IiwicG9wIiwic3BsaWNlIiwiU3BhcnNlTWF0cml4U2VydmljZSIsIl93b3JrZXJDb3VudCIsImNvbnN0cnVjdG9yIiwiTWF0aCIsIm1heCIsIm5hdmlnYXRvciIsImhhcmR3YXJlQ29uY3VycmVuY3kiLCJjYWxjTXVsdGlDb2x1bW4iLCJ2YWx1ZXMiLCJmbk5hbWVzIiwidGhyZXNob2xkIiwib3B0cyIsIndlaWdodHMiLCJhZ2dyZWdhdGlvbk1ldGhvZCIsIkVVQ0xJREVBTiIsIm1hdFNpemUiLCJjaHVua1NpemUiLCJmbG9vciIsIm1pblRocmVzaG9sZCIsImdldE1pbmltYWxUaHJlc2hvbGQiLCJjb25zb2xlIiwibG9nIiwiZm9yRWFjaCIsIl8iLCJwcm9taXNlcyIsIkFycmF5Iiwid29ya2VycyIsImZpbGwiLCJtYXAiLCJXb3JrZXIiLCJVUkwiLCJpZHgiLCJQcm9taXNlIiwicmVzb2x2ZVdvcmtlciIsInJlamVjdFdvcmtlciIsInN0YXJ0SWR4IiwiZW5kSWR4IiwiSW50MzJBcnJheSIsImoiLCJkaXN0YW5jZSIsIkZsb2F0MzJBcnJheSIsInBvc3RNZXNzYWdlIiwib25tZXNzYWdlIiwiZGF0YSIsImVycm9yIiwidGVybWluYXRlIiwicmVzdWx0cyIsImFsbCIsImZ1bGxTaXplIiwicmVkdWNlIiwiYWNjIiwidmFsIiwib2Zmc2V0IiwicmVzIiwic2V0IiwiY2FsYyIsImZuTmFtZSIsImdldEtOTiIsIm5OZWlnaGJvdXJzIiwibXVsdGlDb2x1bW5LTk4iLCJnZXRUaHJlc2hvbGRLTk4iLCJtdWx0aUNvbHVtblRocmVzaG9sZEtubiIsInNvbWUiLCJrbm5EaXN0YW5jZXMiLCJrbm5JbmRleGVzIiwia25uU2l6ZXMiLCJrbm5SZXMiLCJnZXRTYW1wbGVEaXN0YW5jZXMiLCJ0aHJlc2hvbGRXb3JrZXJzIiwibWF4U2FtcGxlU2l6ZSIsInNhbXBsZVNpc2UiLCJtaW4iLCJ0ZXN0U2V0U2l6ZVBlcldvcmtlciIsInRQcm9taXNlcyIsInNhbXBsZUxlbmd0aCIsInNvcnQiLCJ3IiwiY2FsY1N5bmMiLCJkaXN0YW5jZUZuIiwiZGlzdGFuY2VzIiwiY250IiwibWkiLCJtaiIsInZhbHVlIiwicHVzaCIsImFzeW5jIiwiYmlvTGF5b3V0IiwiY2x1c3RlciIsInNwYXJzZU9iamVjdCIsIm4iLCJpcyIsImpzIiwiYSIsImVtYmVkWCIsInJhbmRvbSIsImVtYmVkWSIsInhWZWxvY2l0aWVzIiwieVZlbG9jaXRpZXMiLCJ0ZW1wZXJhdHVyZSIsImR4IiwiZHkiLCJhYnMiLCJ2ZWNTaXplIiwic3FydCIsIm1pblgiLCJtaW5ZIiwibWF4WCIsIm1heFkiLCJyYW5nZVgiLCJyYW5nZVkiLCJnZXRMYXlvdXRFbWJlZGRpbmdzIiwiZGVmYXVsdE1DTE9wdGlvbnMiLCJleHBhbmRGYWN0b3IiLCJtYXhJdGVyYXRpb25zIiwiaW5mbGF0ZUZhY3RvciIsIm11bHRGYWN0b3IiLCJNQ0xTcGFyc2VSZWR1Y2VyIiwiX29wdGlvbnMiLCJ0cmFuc2Zvcm0iLCJzcGFyc2VNYXRyaXgiLCJuUm93cyIsInRvT2JqZWN0Rm9ybSIsImFkZExvb3BzIiwibm9ybWFsaXplIiwiZXhwYW5kIiwiaW5mbGF0ZSIsImNsdXN0ZXJzIiwiYXNzaWduQ2x1c3RlcnMiLCJjb3JyZWN0Q2x1c3RlcnMiLCJlbWJlZGRpbmdzIiwibGF5b3V0IiwiY2x1c3RlclNpemVNYXAiLCJzb3J0ZWRJbmRleGVzIiwia2V5cyIsIk51bWJlciIsImNsdXN0ZXJNYXAiLCJjbHVzdGVySWR4IiwiY2x1c3Rlck51bSIsInNvcnRlZENsdXN0ZXJOYW1lcyIsInBlclJvdyIsInlPZmZzZXQiLCJjbHVzdGVyTmFtZSIsImNlaWwiLCJvZmZzZXRYIiwibWVyZ2VDbHVzdGVycyIsImlDbHVzdGVyIiwiakNsdXN0ZXIiLCJrIiwib3JkZXIiLCJsb2cxMCIsIm1pbk9yZGVyIiwicG93Iiwicm91bmQiLCJyb3ciLCJzdW0iLCJleHBhbmRlZE9iamVjdCIsImdldEV4cGFuZFZhbHVlIiwiY3VycmVudEluZGV4ZXMiLCJvdGhlckluZGV4ZXMiLCJpbmNsdWRlcyIsImV2ZW50IiwiZGlzdGFuY2VGbkFyZ3MiLCJkaXN0YW5jZUZucyIsInNwYXJzZSJdLCJzb3VyY2VSb290IjoiIn0=
1
+ var peptides;(()=>{"use strict";var t,e,n={m:{},u:t=>t+".js"};n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{var t;n.g.importScripts&&(t=n.g.location+"");var e=n.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var s=r.length-1;s>-1&&!t;)t=r[s--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=t})(),n.b=self.location+"",(e=t||(t={})).EUCLIDEAN="EUCLIDEAN",e.MANHATTAN="MANHATTAN";const r=t=>null==t;function s(t,e,n,r){if(n>t[t.length-1])return;const s=t.findIndex((t=>n<t));t.pop(),t.splice(s,0,n),e.pop(),e.splice(s,0,r)}class o{constructor(){this._workerCount=Math.max(navigator.hardwareConcurrency-2,1)}async calcMultiColumn(e,r,s,o=[{}],a=[1],l=t.EUCLIDEAN){const i=e[0].length*(e[0].length-1)/2,h=Math.floor(i/this._workerCount),c=e[0].length>2e4?await this.getMinimalThreshold(e,r,o,a,l):0;s<c&&(console.log(`using threshold ${c}`),s=c),o.forEach(((t,e)=>o[e].threshold=s));const u=new Array(this._workerCount),g=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(23),n.b))));for(let t=0;t<this._workerCount;t++)u[t]=new Promise(((n,c)=>{const u=t*h,f=t===this._workerCount-1?i:(t+1)*h;f<=u&&n({i:new Int32Array(0),j:new Int32Array(0),distance:new Float32Array(0),idx:t}),g[t].postMessage({values:e,startIdx:u,endIdx:f,threshold:s,fnNames:r,opts:o,weights:a,aggregationMethod:l}),g[t].onmessage=({data:{error:e,i:r,j:s,distance:o}})=>{e?(g[t].terminate(),c(e)):(g[t].terminate(),n({i:r,j:s,distance:o,idx:t}))}}));const f=await Promise.all(u),m=f.reduce(((t,e)=>t+e.i.length),0),w=new Int32Array(m),d=new Int32Array(m),y=new Float32Array(m);let p=0;for(const t of f)w.set(t.i,p),d.set(t.j,p),y.set(t.distance,p),p+=t.i.length;return{i:w,j:d,distance:y}}async calc(t,e,n,r={}){return await this.calcMultiColumn([t],[e],n,[r],[1])}async getKNN(t,e,n=15,r={}){return await this.multiColumnKNN([t],[e],n,[r],[1])}async getThresholdKNN(t,e,n=.8,r={}){return await this.multiColumnThresholdKnn([t],[e],n,[r],[1])}async multiColumnThresholdKnn(e,r,s=.8,o,a,l=t.EUCLIDEAN){if(e.length!==r.length||e.length!==o.length||e.length!==a.length)throw new Error("values, distance functions, options and weights arrays should have the same length");if(e.some((t=>t.length!==e[0].length)))throw new Error("all values arrays should have the same length");const i=e[0].length*(e[0].length-1)/2,h=Math.floor(i/this._workerCount),c=new Array(this._workerCount),u=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(427),n.b))));for(let t=0;t<this._workerCount;t++)c[t]=new Promise(((n,c)=>{const g=t*h,f=t===this._workerCount-1?i:(t+1)*h;f<=g&&n({knnDistances:new Array(0),knnIndexes:new Array(0)}),u[t].postMessage({values:e,startIdx:g,endIdx:f,fnNames:r,opts:o,threshold:s,weights:a,aggregationMethod:l}),u[t].onmessage=({data:{error:e,knnDistances:r,knnIndexes:s}})=>{e?(u[t].terminate(),c(e)):(u[t].terminate(),n({knnDistances:r,knnIndexes:s}))}}));const g=await Promise.all(c),f=new Int32Array(e[0].length);for(const t of g)for(let n=0;n<e[0].length;++n)f[n]+=t.knnIndexes[n]?.length??0;const m={knnDistances:new Array(e[0].length).fill(null).map(((t,e)=>new Array(f[e]))),knnIndexes:new Array(e[0].length).fill(null).map(((t,e)=>new Array(f[e])))};for(const t of g)for(let n=0;n<e[0].length;++n)for(let e=0;e<t.knnDistances[n]?.length;++e)m.knnDistances[n][f[n]-1]=t.knnDistances[n][e],m.knnIndexes[n][f[n]-1]=t.knnIndexes[n][e],f[n]-=1;return m}async multiColumnKNN(e,r,o=15,a,l,i=t.EUCLIDEAN){if(e.length!==r.length||e.length!==a.length||e.length!==l.length)throw new Error("values, distance functions, options and weights arrays should have the same length");if(e.some((t=>t.length!==e[0].length)))throw new Error("all values arrays should have the same length");const h=e[0].length*(e[0].length-1)/2,c=Math.floor(h/this._workerCount),u=new Array(this._workerCount),g=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(282),n.b))));for(let t=0;t<this._workerCount;t++)u[t]=new Promise(((n,s)=>{const u=t*c,f=t===this._workerCount-1?h:(t+1)*c;f<=u&&n({knnDistances:new Array(0),knnIndexes:new Array(0)}),g[t].postMessage({values:e,startIdx:u,endIdx:f,fnNames:r,opts:a,nNeighbours:o,weights:l,aggregationMethod:i}),g[t].onmessage=({data:{error:e,knnDistances:r,knnIndexes:o}})=>{e?(g[t].terminate(),s(e)):(g[t].terminate(),n({knnDistances:r,knnIndexes:o}))}}));const f=await Promise.all(u),m={knnDistances:new Array(e[0].length).fill(null).map((()=>new Array(o).fill(99999))),knnIndexes:new Array(e[0].length).fill(null).map((()=>new Array(o).fill(-1)))};for(const t of f)for(let n=0;n<e[0].length;++n)for(let e=0;e<t.knnDistances[n]?.length;++e)s(m.knnDistances[n],m.knnIndexes[n],t.knnDistances[n][e],t.knnIndexes[n][e]);return m}async getSampleDistances(e,r,s=[],o,a=t.EUCLIDEAN){const l=new Array(this._workerCount).fill(null).map((()=>new Worker(new URL(n.p+n.u(40),n.b))));try{const t=e[0].length*(e[0].length-1)/2,n=Math.floor(t/this._workerCount),i=1e6,h=Math.max(Math.min(t/1e3,i),Math.min(t,i)),c=Math.floor(h/this._workerCount),u=new Array(this._workerCount);for(let i=0;i<this._workerCount;i++)u[i]=new Promise(((h,u)=>{const g=i*n,f=i===this._workerCount-1?t:(i+1)*n;l[i].postMessage({values:e,startIdx:g,endIdx:f,sampleLength:c,fnNames:r,opts:s,weights:o,aggregationMethod:a}),l[i].onmessage=({data:{error:t,distance:e}})=>{l[i].terminate(),t?u(t):h({distance:e})}}));const g=await Promise.all(u),f=g.reduce(((t,e)=>t+e.distance.length),0),m=new Float32Array(f);let w=0;for(const t of g)m.set(t.distance,w),w+=t.distance.length;return m.sort(),m}catch(t){return l?.forEach((t=>t?.terminate())),console.error(t),new Float32Array(1).fill(.5)}}async getMinimalThreshold(e,n,r=[],s,o=t.EUCLIDEAN){try{const t=e.length*(e.length-1)/2,a=await this.getSampleDistances(e,n,r,s,o);return 1-a[Math.floor(7e7/t*a.length)]}catch(t){return console.error(t),.5}}static calcSync(t,e,n,s){const o=[],a=[],l=[];let i=0,h=0,c=0;const u=t.length*(t.length-1)/2;for(;i<u;){const e=r(t[h])||r(t[c])?1:n(t[h],t[c]);1-e>=s&&(o.push(h),a.push(c),l.push(e)),i++,c++,c===t.length&&(h++,c=h+1)}return{i:new Int32Array(o),j:new Int32Array(a),distance:new Float32Array(l)}}}async function a(t,e,n){const r=t.length,s=[],o=[];for(let a=0;a<r;a++)for(let l=a+1;l<r;l++){const r=t[a],i=t[l];e[r]?.[i]>=n&&(s.push(a),o.push(l))}return function(t,e,n){const r=new Float32Array(n.length).fill(0).map((()=>10*Math.random())),s=new Float32Array(n.length).fill(0).map((()=>10*Math.random())),o=new Float32Array(n.length).fill(0),a=new Float32Array(n.length).fill(0);for(let l=0;l<100;l++){const i=1-l/100;o.fill(0),a.fill(0);for(let n=0;n<t.length;n++){const l=t[n],h=e[n],c=r[l]-r[h],u=s[l]-s[h];Math.abs(c)>=1&&(o[l]-=i*c,o[h]+=i*c),Math.abs(u)>=1&&(a[l]-=i*u,a[h]+=i*u)}for(let t=0;t<n.length;t++){const e=Math.sqrt(o[t]*o[t]+a[t]*a[t]);e>0&&(r[t]+=o[t]/e*i,s[t]+=a[t]/e*i)}}let l=r[0],i=s[0],h=r[0],c=s[0];for(let t=1;t<n.length;t++)l=Math.min(l,r[t]),i=Math.min(i,s[t]),h=Math.max(h,r[t]),c=Math.max(c,s[t]);let u=h-l,g=c-i;0===u&&(u=h);for(let t=0;t<n.length;t++)r[t]=(r[t]-l)/u/2+.5;0===g&&(g=c);for(let t=0;t<n.length;t++)s[t]=(s[t]-i)/g/2+.5;return{embedX:r,embedY:s}}(s,o,t)}const l={expandFactor:2,maxIterations:5,inflateFactor:2,multFactor:1};class i{constructor(t={}){this._options={...l,...t}}async transform(t,e){let n=this.toObjectForm(t);if(this._options.maxIterations>0){this.addLoops(n,e),this.normalize(n);for(let t=0;t<this._options.maxIterations;t++)n=this.expand(n,e),this.inflate(n),this.normalize(n)}const{clusters:r,is:s,js:o}=this.assignClusters(n,e);this.correctClusters(r);const a=await this.layout(r,n,e);return{clusters:r,embedX:a.embedX,embedY:a.embedY,is:s,js:o}}correctClusters(t){const e={};for(const n of t)e[n]||(e[n]=0),e[n]++;const n=Object.keys(e).map(Number).sort(((t,n)=>e[t]-e[n])),r={};n.forEach(((t,e)=>r[t]=e+1));for(let e=0;e<t.length;e++)t[e]=r[t[e]]}async layout(t,e,n){const r=new Float32Array(n).fill(0),s=new Float32Array(n).fill(0),o={};t.forEach(((t,e)=>{o[t]||(o[t]=[]),o[t].push(e)}));let l=0;const i=Object.keys(o);i.sort(((t,e)=>o[e].length-o[t].length));let h=6,c=0;for(const t of i){const n=o[t],i=await a(n,e,.001);l===Math.ceil(h/1.5)&&(l=0,c+=5/h,h=Math.ceil(1.5*h));const u=l%h*5/h*1.5;for(let t=0;t<i.embedX.length;t++)r[n[t]]=5*i.embedX[t]/h+u,s[n[t]]=5*i.embedY[t]/h+c;l++}return{embedX:r,embedY:s}}mergeClusters(t,e,n){const r=t[e],s=t[n];for(let e=0;e<t.length;e++)t[e]===s&&(t[e]=r)}assignClusters(t,e){let n=0;const r=[],s=[],o=Math.floor(Math.max(Math.log10(e),2))+1,a=Math.pow(10,o),l=new Array(e).fill(-1);for(const e of Object.keys(t))for(const o of Object.keys(t[e]))Math.round(t[e][o]*a)/a>0&&t[e][o]!==Number(e)&&Number(o)>Number(e)&&(r.push(Number(e)),s.push(Number(o)),-1!==l[Number(e)]&&-1!==l[Number(o)]?l[Number(e)]!==l[Number(o)]&&this.mergeClusters(l,Number(e),Number(o)):-1!==l[Number(e)]?l[Number(o)]=l[Number(e)]:-1!==l[Number(o)]?l[Number(e)]=l[Number(o)]:(n++,l[Number(e)]=n,l[Number(o)]=n));for(let t=0;t<l.length;t++)-1===l[t]&&(n++,l[t]=n);return{clusters:l,is:new Uint32Array(r),js:new Uint32Array(s)}}toObjectForm(t){const e={};for(let n=0;n<t.i.length;n++)e[t.i[n]]||(e[t.i[n]]={}),e[t.i[n]][t.j[n]]=1-t.distance[n],e[t.j[n]]||(e[t.j[n]]={}),e[t.j[n]][t.i[n]]=1-t.distance[n];return e}addLoops(t,e){for(let n=0;n<e;n++)t[n]||(t[n]={}),t[n][n]=this._options.multFactor}normalize(t){for(const e of Object.keys(t)){const n=t[e];let r=0;for(const t of Object.keys(n))r+=n[t];if(0!==r)for(const s of Object.keys(n))t[e][s]/=r}}expand(t,e){const n={},r=Math.floor(Math.max(Math.log10(e),2))+1,s=Math.pow(10,r);for(let r=0;r<e;r++)if(t[r]){n[r]={};for(let o=r;o<e;o++){if(!t[r]?.[o])continue;const e=this.getExpandValue(t,r,o);Math.round(e*s)/s>0&&(n[r][o]=e,n[o]||(n[o]={}),n[o][r]=e)}}return n}inflate(t){for(const e of Object.keys(t)){const n=t[e];for(const r of Object.keys(n))t[e][r]=Math.pow(t[e][r],this._options.inflateFactor)}}getExpandValue(t,e,n){let r=0;const s=Object.keys(t[e]??{}),o=Object.keys(t[n]??{});for(const a of s)o.includes(a)&&(r+=t[e][a]*t[n][a]);return r}}onmessage=async t=>{const{data:e,threshold:n,weights:r,aggregationMethod:s,distanceFnArgs:a,distanceFns:l,maxIterations:h}=t.data,c=await(new o).calcMultiColumn(e,l,n/100,a,r,s),u=await new i({maxIterations:h??5}).transform(c,e[0].length);postMessage({res:u})},peptides={}})();
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,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LEVBQWExRyxHQUFHd0QsR0FBSTVFLEtBQUsySixTQUFTSCxjQUN4RSxDQUNKLENBQ0EsY0FBQTJDLENBQWVyRSxFQUFjMUcsRUFBR3dELEdBQzVCLElBQUlhLEVBQU0sRUFDVixNQUFNMkcsRUFBaUI3TCxPQUFPb0ssS0FBSzdDLEVBQWExRyxJQUFNLENBQUMsR0FDakRpTCxFQUFlOUwsT0FBT29LLEtBQUs3QyxFQUFhbEQsSUFBTSxDQUFDLEdBQ3JELElBQUssTUFBTTZHLEtBQUtXLEVBQ1JDLEVBQWFDLFNBQVNiLEtBQ3RCaEcsR0FBT3FDLEVBQWExRyxHQUFHcUssR0FBSzNELEVBQWFsRCxHQUFHNkcsSUFFcEQsT0FBT2hHLENBQ1gsRUM1TUpULFVBQVkyQyxNQUFPNEUsSUFDZixNQUFNLEtBQUV0SCxFQUFJLFVBQUVqQyxFQUFTLFFBQUVFLEVBQU8sa0JBQUVDLEVBQWlCLGVBQUVxSixFQUFjLFlBQUVDLEVBQVcsY0FBRWxELEdBQWtCZ0QsRUFBTXRILEtBQ3BHeUgsUUFBZSxJQUFJcEssR0FDcEJPLGdCQUFnQm9DLEVBQU13SCxFQUFhekosRUFBWSxJQUFLd0osRUFBZ0J0SixFQUFTQyxHQUM1RXdDLFFBQVksSUFBSStELEVBQWlCLENBQUVILGNBQWVBLEdBQWlCLElBQUtLLFVBQVU4QyxFQUFRekgsRUFBSyxHQUFHOUQsUUFDeEc0RCxZQUFZLENBQUVZLE9BQU0sRSIsInNvdXJjZXMiOlsid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL2Rpc3RhbmNlLW1hdHJpeC90eXBlcy5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2dsb2JhbCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9pbXBvcnRTY3JpcHRzIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvZGlzdGFuY2UtbWF0cml4L3V0aWxzLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL2Rpc3RhbmNlLW1hdHJpeC9zcGFyc2UtbWF0cml4LXNlcnZpY2UuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvTUNML2Jpby1sYXlvdXQuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvTUNML21hcmNvdi1jbHVzdGVyLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9tY2wtd29ya2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB2YXIgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHM7XG4oZnVuY3Rpb24gKERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzKSB7XG4gICAgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHNbXCJFVUNMSURFQU5cIl0gPSBcIkVVQ0xJREVBTlwiO1xuICAgIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzW1wiTUFOSEFUVEFOXCJdID0gXCJNQU5IQVRUQU5cIjtcbn0pKERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzIHx8IChEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyA9IHt9KSk7XG47XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkSGx3WlhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUowZVhCbGN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4TlFVRk5MRU5CUVU0c1NVRkJXU3d3UWtGSFZEdEJRVWhJTEZkQlFWa3NNRUpCUVRCQ08wbEJRMnhETEhGRVFVRjFRaXhEUVVGQk8wbEJRM1pDTEhGRVFVRjFRaXhEUVVGQk8wRkJRM3BDTEVOQlFVTXNSVUZJVXl3d1FrRkJNRUlzUzBGQk1VSXNNRUpCUVRCQ0xGRkJSMjVETzBGQlFVRXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltVjRjRzl5ZENCbGJuVnRJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUnpJSHRjYmlBZ0lDQkZWVU5NU1VSRlFVNGdQU0FuUlZWRFRFbEVSVUZPSnl4Y2JpQWdJQ0JOUVU1SVFWUlVRVTRnUFNBblRVRk9TRUZVVkVGT0p5eGNiaUFnZlR0Y2JseHVaWGh3YjNKMElIUjVjR1VnUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ0E5SUd0bGVXOW1JSFI1Y0dWdlppQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a2N6dGNiaUpkZlE9PSIsIi8vIFRoZSByZXF1aXJlIHNjb3BlXG52YXIgX193ZWJwYWNrX3JlcXVpcmVfXyA9IHt9O1xuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuIiwiLy8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuXHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcblx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuanNcIjtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwidmFyIHNjcmlwdFVybDtcbmlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmcuaW1wb3J0U2NyaXB0cykgc2NyaXB0VXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmxvY2F0aW9uICsgXCJcIjtcbnZhciBkb2N1bWVudCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5kb2N1bWVudDtcbmlmICghc2NyaXB0VXJsICYmIGRvY3VtZW50KSB7XG5cdGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0KVxuXHRcdHNjcmlwdFVybCA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjO1xuXHRpZiAoIXNjcmlwdFVybCkge1xuXHRcdHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIik7XG5cdFx0aWYoc2NyaXB0cy5sZW5ndGgpIHtcblx0XHRcdHZhciBpID0gc2NyaXB0cy5sZW5ndGggLSAxO1xuXHRcdFx0d2hpbGUgKGkgPiAtMSAmJiAhc2NyaXB0VXJsKSBzY3JpcHRVcmwgPSBzY3JpcHRzW2ktLV0uc3JjO1xuXHRcdH1cblx0fVxufVxuLy8gV2hlbiBzdXBwb3J0aW5nIGJyb3dzZXJzIHdoZXJlIGFuIGF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgeW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQucHVibGljUGF0aCBtYW51YWxseSB2aWEgY29uZmlndXJhdGlvblxuLy8gb3IgcGFzcyBhbiBlbXB0eSBzdHJpbmcgKFwiXCIpIGFuZCBzZXQgdGhlIF9fd2VicGFja19wdWJsaWNfcGF0aF9fIHZhcmlhYmxlIGZyb20geW91ciBjb2RlIHRvIHVzZSB5b3VyIG93biBsb2dpYy5cbmlmICghc2NyaXB0VXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJBdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwiKTtcbnNjcmlwdFVybCA9IHNjcmlwdFVybC5yZXBsYWNlKC8jLiokLywgXCJcIikucmVwbGFjZSgvXFw/LiokLywgXCJcIikucmVwbGFjZSgvXFwvW15cXC9dKyQvLCBcIi9cIik7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBzY3JpcHRVcmw7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5iID0gc2VsZi5sb2NhdGlvbiArIFwiXCI7XG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgY2h1bmtzXG4vLyBcIjFcIiBtZWFucyBcImFscmVhZHkgbG9hZGVkXCJcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdDk5NzogMVxufTtcblxuLy8gbm8gY2h1bmsgaW5zdGFsbCBmdW5jdGlvbiBuZWVkZWRcbi8vIG5vIGNodW5rIGxvYWRpbmdcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdCIsImltcG9ydCB7IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzIH0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgY29uc3QgaXNOaWwgPSAoeCkgPT4geCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQ7XG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0U21hbGxlcihkaXN0YW5jZXNBciwgaW5kZXhlcywgbnVtLCBpbmRleCkge1xuICAgIGlmIChudW0gPiBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGggLSAxXSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPCB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExhcmdlcihkaXN0YW5jZXNBciwgaW5kZXhlcywgbnVtLCBpbmRleCkge1xuICAgIGlmIChudW0gPCBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGggLSAxXSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPiB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldEFnZ3JlZ2F0aW9uRnVuY3Rpb24oYWdncmVnYXRpb25NZXRob2QsIHdlaWdodHMpIHtcbiAgICBzd2l0Y2ggKGFnZ3JlZ2F0aW9uTWV0aG9kKSB7XG4gICAgICAgIGNhc2UgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuTUFOSEFUVEFOOlxuICAgICAgICAgICAgcmV0dXJuICh2cykgPT4gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyB2YWwgKiB3ZWlnaHRzW2lkeF0sIDApO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuICh2cykgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGV1Y2xpZGVhblxuICAgICAgICAgICAgICAgIGNvbnN0IHN1bSA9IHZzLnJlZHVjZSgoYWNjLCB2YWwsIGlkeCkgPT4gYWNjICsgKHZhbCAqIHdlaWdodHNbaWR4XSkgKiogMiwgMCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGguc3FydChzdW0pO1xuICAgICAgICAgICAgfTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUoxZEdsc2N5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUVRSQ0xEQkNRVUV3UWl4RlFVRkRMRTFCUVUwc1UwRkJVeXhEUVVGRE8wRkJSVGxGTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzVTBGQlV5eERRVUZETzBGQlJTOUVMRTFCUVUwc1ZVRkJWU3hoUVVGaExFTkJRVU1zVjBGQmNVSXNSVUZCUlN4UFFVRnBRaXhGUVVGRkxFZEJRVmNzUlVGQlJTeExRVUZoTzBsQlEyaEhMRWxCUVVrc1IwRkJSeXhIUVVGSExGZEJRVmNzUTBGQlF5eFhRVUZYTEVOQlFVTXNUVUZCVFN4SFFVRkRMRU5CUVVNc1EwRkJRenRSUVVONlF5eFBRVUZQTzBsQlJWUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1YwRkJWeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6RkVMRmRCUVZjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU5zUWl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRlRU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTJRc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRM2hETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1dVRkJXU3hEUVVGRExGZEJRWEZDTEVWQlFVVXNUMEZCYVVJc1JVRkJSU3hIUVVGWExFVkJRVVVzUzBGQllUdEpRVU12Uml4SlFVRkpMRWRCUVVjc1IwRkJSeXhYUVVGWExFTkJRVU1zVjBGQlZ5eERRVUZETEUxQlFVMHNSMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla01zVDBGQlR6dEpRVVZVTEUxQlFVMHNWMEZCVnl4SFFVRkhMRmRCUVZjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU14UkN4WFFVRlhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGJFSXNWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTNoRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVTmtMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVONFF5eERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSE5DUVVGelFpeERRVU53UXl4cFFrRkJORU1zUlVGQlJTeFBRVUZwUWp0SlFVVXZSQ3hSUVVGUkxHbENRVUZwUWl4RlFVRkZPMUZCUTNwQ0xFdEJRVXNzTUVKQlFUQkNMRU5CUVVNc1UwRkJVenRaUVVOMlF5eFBRVUZQTEVOQlFVTXNSVUZCV1N4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNKR08xbEJRMFVzVDBGQlR5eERRVUZETEVWQlFWa3NSVUZCUlN4RlFVRkZPMmRDUVVOMFFpeFpRVUZaTzJkQ1FVTmFMRTFCUVUwc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETjBVc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNoQ0xFTkJRVU1zUTBGQlF6dExRVU5NTzBGQlEwZ3NRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkN3Z1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkhOOUlHWnliMjBnSnk0dmRIbHdaWE1uTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOT2FXd2dQU0FvZURvZ1lXNTVLU0E5UGlCNElEMDlQU0J1ZFd4c0lIeDhJSGdnUFQwOUlIVnVaR1ZtYVc1bFpEdGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2x1YzJWeWRGTnRZV3hzWlhJb1pHbHpkR0Z1WTJWelFYSTZJRzUxYldKbGNsdGRMQ0JwYm1SbGVHVnpPaUJ1ZFcxaVpYSmJYU3dnYm5WdE9pQnVkVzFpWlhJc0lHbHVaR1Y0T2lCdWRXMWlaWElwSUh0Y2JpQWdhV1lnS0c1MWJTQStJR1JwYzNSaGJtTmxjMEZ5VzJScGMzUmhibU5sYzBGeUxteGxibWQwYUMweFhTbGNiaUFnSUNCeVpYUjFjbTQ3WEc1Y2JpQWdZMjl1YzNRZ2JtVjNVRzl6YVhScGIyNGdQU0JrYVhOMFlXNWpaWE5CY2k1bWFXNWtTVzVrWlhnb0tIWXBJRDArSUc1MWJTQThJSFlwTzF4dUlDQmthWE4wWVc1alpYTkJjaTV3YjNBb0tUdGNiaUFnWkdsemRHRnVZMlZ6UVhJdWMzQnNhV05sS0c1bGQxQnZjMmwwYVc5dUxDQXdMQ0J1ZFcwcE8xeHVJQ0JwYm1SbGVHVnpMbkJ2Y0NncE8xeHVJQ0JwYm1SbGVHVnpMbk53YkdsalpTaHVaWGRRYjNOcGRHbHZiaXdnTUN3Z2FXNWtaWGdwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhVzV6WlhKMFRHRnlaMlZ5S0dScGMzUmhibU5sYzBGeU9pQnVkVzFpWlhKYlhTd2dhVzVrWlhobGN6b2diblZ0WW1WeVcxMHNJRzUxYlRvZ2JuVnRZbVZ5TENCcGJtUmxlRG9nYm5WdFltVnlLU0I3WEc0Z0lHbG1JQ2h1ZFcwZ1BDQmthWE4wWVc1alpYTkJjbHRrYVhOMFlXNWpaWE5CY2k1c1pXNW5kR2d0TVYwcFhHNGdJQ0FnY21WMGRYSnVPMXh1WEc0Z0lHTnZibk4wSUc1bGQxQnZjMmwwYVc5dUlEMGdaR2x6ZEdGdVkyVnpRWEl1Wm1sdVpFbHVaR1Y0S0NoMktTQTlQaUJ1ZFcwZ1BpQjJLVHRjYmlBZ1pHbHpkR0Z1WTJWelFYSXVjRzl3S0NrN1hHNGdJR1JwYzNSaGJtTmxjMEZ5TG5Od2JHbGpaU2h1WlhkUWIzTnBkR2x2Yml3Z01Dd2diblZ0S1R0Y2JpQWdhVzVrWlhobGN5NXdiM0FvS1R0Y2JpQWdhVzVrWlhobGN5NXpjR3hwWTJVb2JtVjNVRzl6YVhScGIyNHNJREFzSUdsdVpHVjRLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRUZuWjNKbFoyRjBhVzl1Um5WdVkzUnBiMjRvWEc0Z0lHRm5aM0psWjJGMGFXOXVUV1YwYUc5a09pQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a0xDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhWeHVLVG9nS0haaGJIVmxjem9nYm5WdFltVnlXMTBwSUQwK0lHNTFiV0psY2lCN1hHNGdJSE4zYVhSamFDQW9ZV2RuY21WbllYUnBiMjVOWlhSb2IyUXBJSHRjYmlBZ0lDQmpZWE5sSUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlJ6TGsxQlRraEJWRlJCVGpwY2JpQWdJQ0FnSUhKbGRIVnliaUFvZG5NNklHNTFiV0psY2x0ZEtTQTlQaUIyY3k1eVpXUjFZMlVvS0dGall5d2dkbUZzTENCcFpIZ3BJRDArSUdGall5QXJJSFpoYkNBcUlIZGxhV2RvZEhOYmFXUjRYU3dnTUNrN1hHNGdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJSEpsZEhWeWJpQW9kbk02SUc1MWJXSmxjbHRkS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQzh2SUdWMVkyeHBaR1ZoYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6ZFcwZ1BTQjJjeTV5WldSMVkyVW9LR0ZqWXl3Z2RtRnNMQ0JwWkhncElEMCtJR0ZqWXlBcklDaDJZV3dnS2lCM1pXbG5hSFJ6VzJsa2VGMHBJQ29xSURJc0lEQXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdUV0YwYUM1emNYSjBLSE4xYlNrN1hHNGdJQ0FnSUNCOU8xeHVJQ0I5WEc1OVhHNGlYWDA9IiwiaW1wb3J0IHsgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGluc2VydFNtYWxsZXIsIGlzTmlsIH0gZnJvbSAnLi91dGlscyc7XG5leHBvcnQgY2xhc3MgU3BhcnNlTWF0cml4U2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX3dvcmtlckNvdW50ID0gTWF0aC5tYXgobmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3kgLSAyLCAxKTtcbiAgICB9XG4gICAgYXN5bmMgY2FsY011bHRpQ29sdW1uKHZhbHVlcywgZm5OYW1lcywgdGhyZXNob2xkLCBvcHRzID0gW3t9XSwgd2VpZ2h0cyA9IFsxXSwgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCBtaW5UaHJlc2hvbGQgPSB2YWx1ZXNbMF0ubGVuZ3RoID4gMjAwMDAgP1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRNaW5pbWFsVGhyZXNob2xkKHZhbHVlcywgZm5OYW1lcywgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QpIDogMDtcbiAgICAgICAgaWYgKHRocmVzaG9sZCA8IG1pblRocmVzaG9sZCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHVzaW5nIHRocmVzaG9sZCAke21pblRocmVzaG9sZH1gKTtcbiAgICAgICAgICAgIHRocmVzaG9sZCA9IG1pblRocmVzaG9sZDtcbiAgICAgICAgfVxuICAgICAgICBvcHRzLmZvckVhY2goKF8sIGkpID0+IG9wdHNbaV1bJ3RocmVzaG9sZCddID0gdGhyZXNob2xkKTtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCB3b3JrZXJzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KVxuICAgICAgICAgICAgLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBXb3JrZXIobmV3IFVSTCgnLi9zcGFyc2UtbWF0cml4LXdvcmtlcicsIGltcG9ydC5tZXRhLnVybCkpKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICBwcm9taXNlc1tpZHhdID0gbmV3IFByb21pc2UoKHJlc29sdmVXb3JrZXIsIHJlamVjdFdvcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kSWR4IDw9IHN0YXJ0SWR4KVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsgaTogbmV3IEludDMyQXJyYXkoMCksIGo6IG5ldyBJbnQzMkFycmF5KDApLCBkaXN0YW5jZTogbmV3IEZsb2F0MzJBcnJheSgwKSwgaWR4IH0pO1xuICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS5wb3N0TWVzc2FnZSh7IHZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgdGhyZXNob2xkLCBmbk5hbWVzLCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwgaSwgaiwgZGlzdGFuY2UgfSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0V29ya2VyKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNbaWR4XS50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVXb3JrZXIoeyBpLCBqLCBkaXN0YW5jZSwgaWR4IH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICAgIGNvbnN0IGZ1bGxTaXplID0gcmVzdWx0cy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgKyB2YWwuaS5sZW5ndGgsIDApO1xuICAgICAgICBjb25zdCBpID0gbmV3IEludDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICBjb25zdCBqID0gbmV3IEludDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICBjb25zdCBkaXN0YW5jZSA9IG5ldyBGbG9hdDMyQXJyYXkoZnVsbFNpemUpO1xuICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgLy8gc2V0dGluZyB0aGUgcmVzdWx0c1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBpLnNldChyZXMuaSwgb2Zmc2V0KTtcbiAgICAgICAgICAgIGouc2V0KHJlcy5qLCBvZmZzZXQpO1xuICAgICAgICAgICAgZGlzdGFuY2Uuc2V0KHJlcy5kaXN0YW5jZSwgb2Zmc2V0KTtcbiAgICAgICAgICAgIG9mZnNldCArPSByZXMuaS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaSwgaiwgZGlzdGFuY2UgfTtcbiAgICB9XG4gICAgYXN5bmMgY2FsYyh2YWx1ZXMsIGZuTmFtZSwgdGhyZXNob2xkLCBvcHRzID0ge30pIHtcbiAgICAgICAgLy9zaXplIG9mIGZ1bGwgbWF0cml4XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNhbGNNdWx0aUNvbHVtbihbdmFsdWVzXSwgW2ZuTmFtZV0sIHRocmVzaG9sZCwgW29wdHNdLCBbMV0pO1xuICAgIH1cbiAgICBhc3luYyBnZXRLTk4odmFsdWVzLCBmbk5hbWUsIG5OZWlnaGJvdXJzID0gMTUsIG9wdHMgPSB7fSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5tdWx0aUNvbHVtbktOTihbdmFsdWVzXSwgW2ZuTmFtZV0sIG5OZWlnaGJvdXJzLCBbb3B0c10sIFsxXSk7XG4gICAgfVxuICAgIGFzeW5jIGdldFRocmVzaG9sZEtOTih2YWx1ZXMsIGZuTmFtZSwgdGhyZXNob2xkID0gMC44LCBvcHRzID0ge30pIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMubXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4oW3ZhbHVlc10sIFtmbk5hbWVdLCB0aHJlc2hvbGQsIFtvcHRzXSwgWzFdKTtcbiAgICB9XG4gICAgYXN5bmMgbXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4odmFsdWVzLCBmbk5hbWVzLCB0aHJlc2hvbGQgPSAwLjgsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kID0gRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuRVVDTElERUFOKSB7XG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoICE9PSBmbk5hbWVzLmxlbmd0aCB8fCB2YWx1ZXMubGVuZ3RoICE9PSBvcHRzLmxlbmd0aCB8fCB2YWx1ZXMubGVuZ3RoICE9PSB3ZWlnaHRzLmxlbmd0aClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndmFsdWVzLCBkaXN0YW5jZSBmdW5jdGlvbnMsIG9wdGlvbnMgYW5kIHdlaWdodHMgYXJyYXlzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGxlbmd0aCcpO1xuICAgICAgICBpZiAodmFsdWVzLnNvbWUoKHYpID0+IHYubGVuZ3RoICE9PSB2YWx1ZXNbMF0ubGVuZ3RoKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYWxsIHZhbHVlcyBhcnJheXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyk7XG4gICAgICAgIGNvbnN0IG1hdFNpemUgPSB2YWx1ZXNbMF0ubGVuZ3RoICogKHZhbHVlc1swXS5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IE1hdGguZmxvb3IobWF0U2l6ZSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCB3b3JrZXJzID0gbmV3IEFycmF5KHRoaXMuX3dvcmtlckNvdW50KVxuICAgICAgICAgICAgLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBXb3JrZXIobmV3IFVSTCgnLi9rbm4tdGhyZXNob2xkLXdvcmtlcicsIGltcG9ydC5tZXRhLnVybCkpKTtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICBwcm9taXNlc1tpZHhdID0gbmV3IFByb21pc2UoKHJlc29sdmVXb3JrZXIsIHJlamVjdFdvcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZElkeCA9IGlkeCA9PT0gdGhpcy5fd29ya2VyQ291bnQgLSAxID8gbWF0U2l6ZSA6IChpZHggKyAxKSAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kSWR4IDw9IHN0YXJ0SWR4KVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsga25uRGlzdGFuY2VzOiBuZXcgQXJyYXkoMCksIGtubkluZGV4ZXM6IG5ldyBBcnJheSgwKSB9KTtcbiAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0ucG9zdE1lc3NhZ2UoeyB2YWx1ZXMsIHN0YXJ0SWR4LCBlbmRJZHgsIGZuTmFtZXMsIG9wdHMsIHRocmVzaG9sZCwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLm9ubWVzc2FnZSA9ICh7IGRhdGE6IHsgZXJyb3IsIGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICBjb25zdCBrbm5TaXplcyA9IG5ldyBJbnQzMkFycmF5KHZhbHVlc1swXS5sZW5ndGgpO1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5sZW5ndGg7ICsraSlcbiAgICAgICAgICAgICAgICBrbm5TaXplc1tpXSArPSByZXMua25uSW5kZXhlc1tpXT8ubGVuZ3RoID8/IDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qga25uUmVzID0ge1xuICAgICAgICAgICAga25uRGlzdGFuY2VzOiBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKF8sIGkpID0+IG5ldyBBcnJheShrbm5TaXplc1tpXSkpLFxuICAgICAgICAgICAga25uSW5kZXhlczogbmV3IEFycmF5KHZhbHVlc1swXS5sZW5ndGgpLmZpbGwobnVsbCkubWFwKChfLCBpKSA9PiBuZXcgQXJyYXkoa25uU2l6ZXNbaV0pKVxuICAgICAgICB9O1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcmVzLmtubkRpc3RhbmNlc1tpXT8ubGVuZ3RoID8/IDA7ICsraikge1xuICAgICAgICAgICAgICAgICAgICBrbm5SZXMua25uRGlzdGFuY2VzW2ldW2tublNpemVzW2ldIC0gMV0gPSByZXMua25uRGlzdGFuY2VzW2ldW2pdO1xuICAgICAgICAgICAgICAgICAgICBrbm5SZXMua25uSW5kZXhlc1tpXVtrbm5TaXplc1tpXSAtIDFdID0gcmVzLmtubkluZGV4ZXNbaV1bal07XG4gICAgICAgICAgICAgICAgICAgIGtublNpemVzW2ldIC09IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrbm5SZXM7XG4gICAgfVxuICAgIGFzeW5jIG11bHRpQ29sdW1uS05OKHZhbHVlcywgZm5OYW1lcywgbk5laWdoYm91cnMgPSAxNSwgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggIT09IGZuTmFtZXMubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggIT09IG9wdHMubGVuZ3RoIHx8IHZhbHVlcy5sZW5ndGggIT09IHdlaWdodHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZXMsIGRpc3RhbmNlIGZ1bmN0aW9ucywgb3B0aW9ucyBhbmQgd2VpZ2h0cyBhcnJheXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyk7XG4gICAgICAgIGlmICh2YWx1ZXMuc29tZSgodikgPT4gdi5sZW5ndGggIT09IHZhbHVlc1swXS5sZW5ndGgpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbGwgdmFsdWVzIGFycmF5cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBsZW5ndGgnKTtcbiAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgY29uc3QgY2h1bmtTaXplID0gTWF0aC5mbG9vcihtYXRTaXplIC8gdGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgIGNvbnN0IHdvcmtlcnMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpXG4gICAgICAgICAgICAuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IFdvcmtlcihuZXcgVVJMKCcuL2tubi13b3JrZXInLCBpbXBvcnQubWV0YS51cmwpKSk7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHRoaXMuX3dvcmtlckNvdW50OyBpZHgrKykge1xuICAgICAgICAgICAgcHJvbWlzZXNbaWR4XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlV29ya2VyLCByZWplY3RXb3JrZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydElkeCA9IGlkeCAqIGNodW5rU2l6ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRJZHggPSBpZHggPT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSA/IG1hdFNpemUgOiAoaWR4ICsgMSkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgaWYgKGVuZElkeCA8PSBzdGFydElkeClcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlczogbmV3IEFycmF5KDApLCBrbm5JbmRleGVzOiBuZXcgQXJyYXkoMCkgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnBvc3RNZXNzYWdlKHsgdmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCBmbk5hbWVzLCBvcHRzLCBuTmVpZ2hib3Vycywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgfSk7XG4gICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLm9ubWVzc2FnZSA9ICh7IGRhdGE6IHsgZXJyb3IsIGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXb3JrZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc1tpZHhdLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZVdvcmtlcih7IGtubkRpc3RhbmNlcywga25uSW5kZXhlcyB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICBjb25zdCBrbm5SZXMgPSB7XG4gICAgICAgICAgICBrbm5EaXN0YW5jZXM6IG5ldyBBcnJheSh2YWx1ZXNbMF0ubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgQXJyYXkobk5laWdoYm91cnMpLmZpbGwoOTk5OTkpKSxcbiAgICAgICAgICAgIGtubkluZGV4ZXM6IG5ldyBBcnJheSh2YWx1ZXNbMF0ubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgQXJyYXkobk5laWdoYm91cnMpLmZpbGwoLTEpKVxuICAgICAgICB9O1xuICAgICAgICBmb3IgKGNvbnN0IHJlcyBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlc1swXS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgcmVzLmtubkRpc3RhbmNlc1tpXT8ubGVuZ3RoID8/IDA7ICsrailcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0U21hbGxlcihrbm5SZXMua25uRGlzdGFuY2VzW2ldLCBrbm5SZXMua25uSW5kZXhlc1tpXSwgcmVzLmtubkRpc3RhbmNlc1tpXVtqXSwgcmVzLmtubkluZGV4ZXNbaV1bal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrbm5SZXM7XG4gICAgfVxuICAgIGFzeW5jIGdldFNhbXBsZURpc3RhbmNlcyh2YWx1ZXMsIGZuTmFtZXMsIG9wdHMgPSBbXSwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QgPSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5FVUNMSURFQU4pIHtcbiAgICAgICAgY29uc3QgdGhyZXNob2xkV29ya2VycyA9IG5ldyBBcnJheSh0aGlzLl93b3JrZXJDb3VudCkuZmlsbChudWxsKVxuICAgICAgICAgICAgLm1hcCgoKSA9PiBuZXcgV29ya2VyKG5ldyBVUkwoJy4vc3BhcnNlLW1hdHJpeC10aHJlc2hvbGQtd29ya2VyJywgaW1wb3J0Lm1ldGEudXJsKSkpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbWF0U2l6ZSA9IHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC8gMjtcbiAgICAgICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IE1hdGguZmxvb3IobWF0U2l6ZSAvIHRoaXMuX3dvcmtlckNvdW50KTtcbiAgICAgICAgICAgIGNvbnN0IG1heFNhbXBsZVNpemUgPSAxMDAwMDAwO1xuICAgICAgICAgICAgY29uc3Qgc2FtcGxlU2lzZSA9IE1hdGgubWF4KE1hdGgubWluKG1hdFNpemUgLyAxMDAwLCBtYXhTYW1wbGVTaXplKSwgTWF0aC5taW4obWF0U2l6ZSwgbWF4U2FtcGxlU2l6ZSkpO1xuICAgICAgICAgICAgY29uc3QgdGVzdFNldFNpemVQZXJXb3JrZXIgPSBNYXRoLmZsb29yKHNhbXBsZVNpc2UgLyB0aGlzLl93b3JrZXJDb3VudCk7XG4gICAgICAgICAgICBjb25zdCB0UHJvbWlzZXMgPSBuZXcgQXJyYXkodGhpcy5fd29ya2VyQ291bnQpO1xuICAgICAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5fd29ya2VyQ291bnQ7IGlkeCsrKSB7XG4gICAgICAgICAgICAgICAgdFByb21pc2VzW2lkeF0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZVdvcmtlciwgcmVqZWN0V29ya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gaWR4ICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRJZHggPSBpZHggPT09IHRoaXMuX3dvcmtlckNvdW50IC0gMSA/IG1hdFNpemUgOiAoaWR4ICsgMSkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgICAgIHRocmVzaG9sZFdvcmtlcnNbaWR4XS5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6IHZhbHVlcywgc3RhcnRJZHgsIGVuZElkeCwgc2FtcGxlTGVuZ3RoOiB0ZXN0U2V0U2l6ZVBlcldvcmtlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZuTmFtZXMsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzW2lkeF0ub25tZXNzYWdlID0gKHsgZGF0YTogeyBlcnJvciwgZGlzdGFuY2UgfSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzW2lkeF0udGVybWluYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0V29ya2VyKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlV29ya2VyKHsgZGlzdGFuY2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwodFByb21pc2VzKTtcbiAgICAgICAgICAgIGNvbnN0IGZ1bGxTaXplID0gcmVzdWx0cy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgKyB2YWwuZGlzdGFuY2UubGVuZ3RoLCAwKTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gbmV3IEZsb2F0MzJBcnJheShmdWxsU2l6ZSk7XG4gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVzIG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICBkaXN0YW5jZS5zZXQocmVzLmRpc3RhbmNlLCBvZmZzZXQpO1xuICAgICAgICAgICAgICAgIG9mZnNldCArPSByZXMuZGlzdGFuY2UubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGlzdGFuY2Uuc29ydCgpO1xuICAgICAgICAgICAgcmV0dXJuIGRpc3RhbmNlO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJlc2hvbGRXb3JrZXJzPy5mb3JFYWNoKCh3KSA9PiB3Py50ZXJtaW5hdGUoKSk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoMSkuZmlsbCgwLjUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGdldE1pbmltYWxUaHJlc2hvbGQodmFsdWVzLCBmbk5hbWVzLCBvcHRzID0gW10sIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kID0gRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuRVVDTElERUFOKSB7XG4gICAgICAgIC8vV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIG1pbmltYWwgdGhyZXNob2xkIGZpcnN0LFxuICAgICAgICAvL2luIG9yZGVyIHRvIGdldCBtYXRyaXggc3VjaCB0aGF0IGl0IGRvZXMgbm90IGV4Y2VlZCB0aGUgbWF4aW11bSBzaXplIG9mIDFHQlxuICAgICAgICAvL3dlIGhhdmUgMyByZXR1cm4gYXJyYXlzLCBlYWNoIDQgYml0ZXMgcGVyIGVsZW1lbnQsIHNvIGlmIHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIG1hdHJpeCBpcyAxR0IsXG4gICAgICAgIGNvbnN0IG1heFNwYXJzZU1hdHJpeFNpemUgPSA3MDAwMDAwMDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdFNpemUgPSB2YWx1ZXMubGVuZ3RoICogKHZhbHVlcy5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGF3YWl0IHRoaXMuZ2V0U2FtcGxlRGlzdGFuY2VzKHZhbHVlcywgZm5OYW1lcywgb3B0cywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QpO1xuICAgICAgICAgICAgY29uc3QgZnJhY3Rpb25JbmRleCA9IE1hdGguZmxvb3IobWF4U3BhcnNlTWF0cml4U2l6ZSAvIG1hdFNpemUgKiBkaXN0YW5jZS5sZW5ndGgpO1xuICAgICAgICAgICAgY29uc3QgdGhyZXNob2xkID0gMSAtIGRpc3RhbmNlW2ZyYWN0aW9uSW5kZXhdO1xuICAgICAgICAgICAgLy8gdGhyZXNob2xkID0gTWF0aC5tYXgodGhyZXNob2xkLCAwLjMpO1xuICAgICAgICAgICAgcmV0dXJuIHRocmVzaG9sZDtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIHJldHVybiAwLjU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGNhbGNTeW5jKHZhbHVlcywgZm5OYW1lLCBkaXN0YW5jZUZuLCB0aHJlc2hvbGQpIHtcbiAgICAgICAgY29uc3QgaSA9IFtdO1xuICAgICAgICBjb25zdCBqID0gW107XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlcyA9IFtdO1xuICAgICAgICBsZXQgY250ID0gMDtcbiAgICAgICAgbGV0IG1pID0gMDtcbiAgICAgICAgbGV0IG1qID0gMDtcbiAgICAgICAgY29uc3QgZnVsbFNpemUgPSB2YWx1ZXMubGVuZ3RoICogKHZhbHVlcy5sZW5ndGggLSAxKSAvIDI7XG4gICAgICAgIHdoaWxlIChjbnQgPCBmdWxsU2l6ZSkge1xuICAgICAgICAgICAgLy9jb25zdCB2YWx1ZSA9IHNlcTFMaXN0W21pXSAmJiBzZXExTGlzdFttal0gPyBoYW1taW5nKHNlcTFMaXN0W21pXSwgc2VxMUxpc3RbbWpdKSA6IDA7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICFpc05pbCh2YWx1ZXNbbWldKSAmJiAhaXNOaWwodmFsdWVzW21qXSkgP1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlRm4odmFsdWVzW21pXSwgdmFsdWVzW21qXSkgOiAxO1xuICAgICAgICAgICAgY29uc3Qgc2ltaWxhcml0eSA9IDEgLSB2YWx1ZTtcbiAgICAgICAgICAgIGlmIChzaW1pbGFyaXR5ID49IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgIGkucHVzaChtaSk7XG4gICAgICAgICAgICAgICAgai5wdXNoKG1qKTtcbiAgICAgICAgICAgICAgICBkaXN0YW5jZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbnQrKztcbiAgICAgICAgICAgIG1qKys7XG4gICAgICAgICAgICBpZiAobWogPT09IHZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBtaSsrO1xuICAgICAgICAgICAgICAgIG1qID0gbWkgKyAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlBcnJheSA9IG5ldyBJbnQzMkFycmF5KGkpO1xuICAgICAgICBjb25zdCBqQXJyYXkgPSBuZXcgSW50MzJBcnJheShqKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoZGlzdGFuY2VzKTtcbiAgICAgICAgcmV0dXJuIHsgaTogaUFycmF5LCBqOiBqQXJyYXksIGRpc3RhbmNlOiBkaXN0YW5jZUFycmF5IH07XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzNCaGNuTmxMVzFoZEhKcGVDMXpaWEoyYVdObExtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYzNCaGNuTmxMVzFoZEhKcGVDMXpaWEoyYVdObExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVU5CTEU5QlFVOHNSVUZCTkVJc01FSkJRVEJDTEVWQlFVTXNUVUZCVFN4VFFVRlRMRU5CUVVNN1FVRkRPVVVzVDBGQlR5eEZRVUZETEdGQlFXRXNSVUZCUlN4TFFVRkxMRVZCUVVNc1RVRkJUU3hUUVVGVExFTkJRVU03UVVGaE4wTXNUVUZCVFN4UFFVRlBMRzFDUVVGdFFqdEpRVVUxUWp0UlFVTkZMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc2JVSkJRVzFDTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pGTEVOQlFVTTdTVUZGVFN4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVGRExFMUJRVzlDTEVWQlFVVXNUMEZCZFVJc1JVRkRlRVVzVTBGQmFVSXNSVUZCUlN4UFFVRTJRaXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEZWQlFXOUNMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRemRGTEc5Q1FVRXJReXd3UWtGQk1FSXNRMEZCUXl4VFFVRlRPMUZCUlc1R0xFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTVSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZGTVVRc1RVRkJUU3haUVVGWkxFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhMUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU01UXl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNoR0xFbEJRVWtzVTBGQlV5eEhRVUZITEZsQlFWa3NSVUZCUlR0WlFVTTFRaXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEcxQ1FVRnRRaXhaUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETzFsQlF5OURMRk5CUVZNc1IwRkJSeXhaUVVGWkxFTkJRVU03VTBGRE1VSTdVVUZEUkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRM3BFTEUxQlFVMHNVVUZCVVN4SFFVTmFMRWxCUVVrc1MwRkJTeXhEUVVFNFFpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkZOVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dGhRVU42UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEhkQ1FVRjNRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM2hHTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8xbEJRMmhFTEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEdGQlFXRXNSVUZCUlN4WlFVRlpMRVZCUVVVc1JVRkJSVHRuUWtGRE1VUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1IwRkJSeXhIUVVGSExGTkJRVk1zUTBGQlF6dG5Ra0ZEYWtNc1RVRkJUU3hOUVVGTkxFZEJRVWNzUjBGQlJ5eExRVUZMTEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXp0blFrRkRMMFVzU1VGQlNTeE5RVUZOTEVsQlFVa3NVVUZCVVR0dlFrRkRjRUlzWVVGQllTeERRVUZETEVWQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNTVUZCU1N4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRiRWNzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhGUVVGRExFMUJRVTBzUlVGQlJTeFJRVUZSTEVWQlFVVXNUVUZCVFN4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4cFFrRkJhVUlzUlVGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpOSExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1EwRkJReXhGUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxGRkJRVkVzUlVGQlF5eEZRVUZETEVWQlFWRXNSVUZCUlR0dlFrRkRha1VzU1VGQlNTeExRVUZMTEVWQlFVVTdkMEpCUTFRc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPM2RDUVVONlFpeFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN2NVSkJRM0pDTzNsQ1FVRk5PM2RDUVVOTUxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenQzUWtGRGVrSXNZVUZCWVN4RFFVRkRMRVZCUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNSMEZCUnl4RlFVRkRMRU5CUVVNc1EwRkJRenR4UWtGRGRFTTdaMEpCUTBnc1EwRkJReXhEUVVGRE8xbEJRMG9zUTBGQlF5eERRVUZETEVOQlFVTTdVMEZEU2p0UlFVVkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVNMVF5eE5RVUZOTEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0pGTEUxQlFVMHNRMEZCUXl4SFFVRkhMRWxCUVVrc1ZVRkJWU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEyNURMRTFCUVUwc1EwRkJReXhIUVVGSExFbEJRVWtzVlVGQlZTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUTI1RExFMUJRVTBzVVVGQlVTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRelZETEVsQlFVa3NUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVObUxITkNRVUZ6UWp0UlFVTjBRaXhMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEU5QlFVOHNSVUZCUlR0WlFVTjZRaXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03V1VGRGNrSXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTNKQ0xGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU51UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdVMEZEZUVJN1VVRkRSQ3hQUVVGUExFVkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVNc1EwRkJRenRKUVVNeFFpeERRVUZETzBsQlJVMHNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJTU3hOUVVGblFpeEZRVUZGTEUxQlFXOUNMRVZCUVVVc1UwRkJhVUlzUlVGQlJTeFBRVUV5UWl4RlFVRkZPMUZCUXpOSExIRkNRVUZ4UWp0UlFVTnlRaXhQUVVGUExFMUJRVTBzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJoR0xFTkJRVU03U1VGRlRTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVTnFRaXhOUVVGclFpeEZRVUZGTEUxQlFXOUNMRVZCUVVVc1kwRkJjMElzUlVGQlJTeEZRVUZGTEU5QlFUSkNMRVZCUVVVN1VVRkZha2NzVDBGQlR5eE5RVUZOTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRmRCUVZjc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOcVJpeERRVUZETzBsQlJVMHNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkRNVUlzVFVGQmEwSXNSVUZCUlN4TlFVRnZRaXhGUVVGRkxGbEJRVzlDTEVkQlFVY3NSVUZCUlN4UFFVRXlRaXhGUVVGRk8xRkJSV2hITEU5QlFVOHNUVUZCVFN4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjRSaXhEUVVGRE8wbEJSVTBzUzBGQlN5eERRVUZETEhWQ1FVRjFRaXhEUVVGRExFMUJRWGxDTEVWQlFVVXNUMEZCZFVJc1JVRkJSU3haUVVGdlFpeEhRVUZITEVWQlF6bEhMRWxCUVRCQ0xFVkJRVVVzVDBGQmFVSXNSVUZETjBNc2IwSkJRU3RETERCQ1FVRXdRaXhEUVVGRExGTkJRVk03VVVGRmJrWXNTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hMUVVGTExFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1MwRkJTeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1QwRkJUeXhEUVVGRExFMUJRVTA3V1VGRGRrY3NUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXh2UmtGQmIwWXNRMEZCUXl4RFFVRkRPMUZCUlhoSExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNTMEZCU3l4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETzFsQlEyNUVMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zSzBOQlFTdERMRU5CUVVNc1EwRkJRenRSUVVWdVJTeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRPVVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUXpGRUxFMUJRVTBzVVVGQlVTeEhRVU5hTEVsQlFVa3NTMEZCU3l4RFFVRnhRaXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZEYmtRc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJRenRoUVVONlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRExIZENRVUYzUWl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNoR0xFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMWxCUTJoRUxGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExHRkJRV0VzUlVGQlJTeFpRVUZaTEVWQlFVVXNSVUZCUlR0blFrRkRNVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NSMEZCUnl4SFFVRkhMRk5CUVZNc1EwRkJRenRuUWtGRGFrTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1IwRkJSeXhMUVVGTExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF6dG5Ra0ZETDBVc1NVRkJTU3hOUVVGTkxFbEJRVWtzVVVGQlVUdHZRa0ZEY0VJc1lVRkJZU3hEUVVGRExFVkJRVU1zV1VGQldTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU03WjBKQlEzaEZMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVNc1EwRkJReXhEUVVGRE8yZENRVU16Unl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNSVUZCUXl4SlFVRkpMRVZCUVVVc1JVRkJReXhMUVVGTExFVkJRVVVzV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RlFVRkRMRVZCUVZFc1JVRkJSVHR2UWtGRE0wVXNTVUZCU1N4TFFVRkxMRVZCUVVVN2QwSkJRMVFzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8zZENRVU42UWl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03Y1VKQlEzSkNPM2xDUVVGTk8zZENRVU5NTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dDNRa0ZEZWtJc1lVRkJZU3hEUVVGRExFVkJRVU1zV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRek5ETzJkQ1FVTklMRU5CUVVNc1EwRkJRenRaUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEwbzdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkROVU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUTJ4RUxFdEJRVXNzVFVGQlRTeEhRVUZITEVsQlFVa3NUMEZCVHl4RlFVRkZPMWxCUTNwQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1EwRkJRenRuUWtGRGRrTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFRRVU5xUkR0UlFVTkVMRTFCUVUwc1RVRkJUU3hIUVVGak8xbEJRM2hDTEZsQlFWa3NSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRlRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEyeEhMRlZCUVZVc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1MwRkJTeXhEUVVGVExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUVVNc1EwRkJRenRSUVVOd1J5eExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRTlCUVU4c1JVRkJSVHRaUVVONlFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdG5Ra0ZEZWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdHZRa0ZEZWtRc1RVRkJUU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkRha1VzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRE4wUXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dHBRa0ZEYkVJN1lVRkRSanRUUVVOR08xRkJRMFFzVDBGQlR5eE5RVUZOTEVOQlFVTTdTVUZEYUVJc1EwRkJRenRKUVVWTkxFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTXNUVUZCZVVJc1JVRkJSU3hQUVVGMVFpeEZRVUZGTEdOQlFYTkNMRVZCUVVVc1JVRkRkRWNzU1VGQk1FSXNSVUZCUlN4UFFVRnBRaXhGUVVNM1F5eHZRa0ZCSzBNc01FSkJRVEJDTEVOQlFVTXNVMEZCVXp0UlFVVnVSaXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEV0QlFVc3NUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeExRVUZMTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1RVRkJUU3hEUVVGRExFMUJRVTBzUzBGQlN5eFBRVUZQTEVOQlFVTXNUVUZCVFR0WlFVTjJSeXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEc5R1FVRnZSaXhEUVVGRExFTkJRVU03VVVGRmVFY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkRia1FzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl3clEwRkJLME1zUTBGQlF5eERRVUZETzFGQlJXNUZMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU01UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRE1VUXNUVUZCVFN4UlFVRlJMRWRCUTFvc1NVRkJTU3hMUVVGTExFTkJRWEZDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRSUVVOdVJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETzJGQlEzcERMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFVTXNZMEZCWXl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpsRkxFdEJRVXNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMWxCUTJoRUxGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExHRkJRV0VzUlVGQlJTeFpRVUZaTEVWQlFVVXNSVUZCUlR0blFrRkRNVVFzVFVGQlRTeFJRVUZSTEVkQlFVY3NSMEZCUnl4SFFVRkhMRk5CUVZNc1EwRkJRenRuUWtGRGFrTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1IwRkJSeXhMUVVGTExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF6dG5Ra0ZETDBVc1NVRkJTU3hOUVVGTkxFbEJRVWtzVVVGQlVUdHZRa0ZEY0VJc1lVRkJZU3hEUVVGRExFVkJRVU1zV1VGQldTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU03WjBKQlEzaEZMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRmRCUVZjc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVNc1EwRkJReXhEUVVGRE8yZENRVU0zUnl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNSVUZCUXl4SlFVRkpMRVZCUVVVc1JVRkJReXhMUVVGTExFVkJRVVVzV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RlFVRkRMRVZCUVZFc1JVRkJSVHR2UWtGRE0wVXNTVUZCU1N4TFFVRkxMRVZCUVVVN2QwSkJRMVFzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8zZENRVU42UWl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03Y1VKQlEzSkNPM2xDUVVGTk8zZENRVU5NTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dDNRa0ZEZWtJc1lVRkJZU3hEUVVGRExFVkJRVU1zV1VGQldTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRek5ETzJkQ1FVTklMRU5CUVVNc1EwRkJRenRaUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEwbzdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkROVU1zVFVGQlRTeE5RVUZOTEVkQlFXTTdXVUZEZUVJc1dVRkJXU3hGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRlRMRmRCUVZjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTXhSeXhWUVVGVkxFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVZNc1YwRkJWeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkJReXhEUVVGRE8xRkJRM3BITEV0QlFVc3NUVUZCVFN4SFFVRkhMRWxCUVVrc1QwRkJUeXhGUVVGRk8xbEJRM3BDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTzJkQ1FVTjZReXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4TlFVRk5MRWxCUVVrc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF6dHZRa0ZEZGtRc1lVRkJZU3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVNM1J6dFRRVU5HTzFGQlEwUXNUMEZCVHl4TlFVRk5MRU5CUVVNN1NVRkRhRUlzUTBGQlF6dEpRVVZOTEV0QlFVc3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eE5RVUZ2UWl4RlFVTnNSQ3hQUVVGMVFpeEZRVUZGTEU5QlFUWkNMRVZCUVVVc1JVRkJSU3hQUVVGcFFpeEZRVU16UlN4dlFrRkJLME1zTUVKQlFUQkNMRU5CUVVNc1UwRkJVenRSUVVOdVJpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETzJGQlF6ZEVMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhyUTBGQmEwTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVjJSaXhKUVVGSk8xbEJRMFlzVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUXpsRUxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0WlFVTXhSQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eFBRVUZUTEVOQlFVTTdXVUZEYUVNc1RVRkJUU3hWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVWQlFVVXNZVUZCWVN4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVWQlFVVXNZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOMlJ5eE5RVUZOTEc5Q1FVRnZRaXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFpRVU40UlN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQmIwTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xbEJSV3hHTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8yZENRVU5vUkN4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4aFFVRmhMRVZCUVVVc1dVRkJXU3hGUVVGRkxFVkJRVVU3YjBKQlF6TkVMRTFCUVUwc1VVRkJVU3hIUVVGSExFZEJRVWNzUjBGQlJ5eFRRVUZUTEVOQlFVTTdiMEpCUTJwRExFMUJRVTBzVFVGQlRTeEhRVUZITEVkQlFVY3NTMEZCU3l4SlFVRkpMRU5CUVVNc1dVRkJXU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNN2IwSkJReTlGTEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXp0M1FrRkRhRU1zVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4UlFVRlJMRVZCUVVVc1RVRkJUU3hGUVVGRkxGbEJRVmtzUlVGQlJTeHZRa0ZCYjBJN2QwSkJRM0JGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWp0eFFrRkRNVU1zUTBGQlF5eERRVUZETzI5Q1FVTklMR2RDUVVGblFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhEUVVGRExFVkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVTXNTMEZCU3l4RlFVRkZMRkZCUVZFc1JVRkJReXhGUVVGRExFVkJRVkVzUlVGQlJUdDNRa0ZEY0VVc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03ZDBKQlEyeERMRWxCUVVrc1MwRkJTenMwUWtGQlJTeFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN096UkNRVU0zUWl4aFFVRmhMRU5CUVVNc1JVRkJReXhSUVVGUkxFVkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTTVRaXhEUVVGRExFTkJRVU03WjBKQlEwb3NRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkRTanRaUVVWRUxFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFpRVU0zUXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6VkZMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMWxCUXpWRExFbEJRVWtzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTm1MRXRCUVVzc1RVRkJUU3hIUVVGSExFbEJRVWtzVDBGQlR5eEZRVUZGTzJkQ1FVTjZRaXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03WjBKQlEyNURMRTFCUVUwc1NVRkJTU3hIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXp0aFFVTXZRanRaUVVORUxGRkJRVkVzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0WlFVVm9RaXhQUVVGUExGRkJRVkVzUTBGQlF6dFRRVU5xUWp0UlFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRk8xbEJRMVlzWjBKQlFXZENMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1UwRkJVeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFpRVU5xUkN4UFFVRlBMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEycENMRTlCUVU4c1NVRkJTU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xTkJRM1JETzBsQlEwZ3NRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4TlFVRnZRaXhGUVVOd1JDeFBRVUYxUWl4RlFVRkZMRTlCUVRaQ0xFVkJRVVVzUlVGQlJTeFBRVUZwUWl4RlFVTXpSU3h2UWtGQkswTXNNRUpCUVRCQ0xFTkJRVU1zVTBGQlV6dFJRVU51Uml4dFJFRkJiVVE3VVVGRGJrUXNOa1ZCUVRaRk8xRkJRemRGTEdsSFFVRnBSenRSUVVOcVJ5eE5RVUZOTEcxQ1FVRnRRaXhIUVVGSExGRkJRVlVzUTBGQlF6dFJRVU4yUXl4SlFVRkpPMWxCUTBZc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNoRUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVThzUlVGQlJTeHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8xbEJRMnhITEUxQlFVMHNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRWRCUVVjc1QwRkJUeXhIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0WlFVTnNSaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8xbEJRemxETEhkRFFVRjNRenRaUVVONFF5eFBRVUZQTEZOQlFWTXNRMEZCUXp0VFFVTnNRanRSUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzFsQlExWXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5xUWl4UFFVRlBMRWRCUVVjc1EwRkJRenRUUVVOYU8wbEJRMGdzUTBGQlF6dEpRVVZOTEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUTNCQ0xFMUJRU3RDTEVWQlFVVXNUVUZCYjBJc1JVRkJSU3hWUVVGdlFpeEZRVUZGTEZOQlFXbENPMUZCUlRsR0xFMUJRVTBzUTBGQlF5eEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVTjJRaXhOUVVGTkxFTkJRVU1zUjBGQllTeEZRVUZGTEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hUUVVGVExFZEJRV0VzUlVGQlJTeERRVUZETzFGQlF5OUNMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU5hTEVsQlFVa3NSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOWUxFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTllMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTjZSQ3hQUVVGUExFZEJRVWNzUjBGQlJ5eFJRVUZSTEVWQlFVVTdXVUZEY2tJc2RVWkJRWFZHTzFsQlEzWkdMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzUkVMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjZReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRPMWxCUXpkQ0xFbEJRVWtzVlVGQlZTeEpRVUZKTEZOQlFWTXNSVUZCUlR0blFrRkRNMElzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRFdDeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8yZENRVU5ZTEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03WVVGRGRrSTdXVUZEUkN4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVOT0xFVkJRVVVzUlVGQlJTeERRVUZETzFsQlEwd3NTVUZCU1N4RlFVRkZMRXRCUVVzc1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJUdG5Ra0ZEZUVJc1JVRkJSU3hGUVVGRkxFTkJRVU03WjBKQlEwd3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03WVVGRFlqdFRRVU5HTzFGQlJVUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYWtNc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRha01zVFVGQlRTeGhRVUZoTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRmJFUXNUMEZCVHl4RlFVRkRMRU5CUVVNc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEUxQlFVMHNSVUZCUlN4UlFVRlJMRVZCUVVVc1lVRkJZU3hGUVVGRExFTkJRVU03U1VGRGVrUXNRMEZCUXp0RFFVTktJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRMYm05M2JrMWxkSEpwWTNOOUlHWnliMjBnSnk0dUwzUjVjR1ZrTFcxbGRISnBZM01uTzF4dWFXMXdiM0owSUh0RWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrTENCRWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrYzMwZ1puSnZiU0FuTGk5MGVYQmxjeWM3WEc1cGJYQnZjblFnZTJsdWMyVnlkRk50WVd4c1pYSXNJR2x6VG1sc2ZTQm1jbTl0SUNjdUwzVjBhV3h6Snp0Y2JseHVaWGh3YjNKMElIUjVjR1VnVTNCaGNuTmxUV0YwY21sNFVtVnpkV3gwSUQwZ2UxeHVJQ0JwT2lCSmJuUXpNa0Z5Y21GNUxGeHVJQ0JxT2lCSmJuUXpNa0Z5Y21GNUxGeHVJQ0JrYVhOMFlXNWpaVG9nUm14dllYUXpNa0Z5Y21GNUxGeHVJQ0JwWkhnL09pQnVkVzFpWlhKY2JuMDdYRzVjYm1WNGNHOXlkQ0IwZVhCbElFdHVibEpsYzNWc2RDQTlJSHRjYmlBZ2EyNXVSR2x6ZEdGdVkyVnpPaUJ1ZFcxaVpYSmJYVnRkTEZ4dUlDQnJibTVKYm1SbGVHVnpPaUJ1ZFcxaVpYSmJYVnRkWEc1OVhHNWxlSEJ2Y25RZ1kyeGhjM01nVTNCaGNuTmxUV0YwY21sNFUyVnlkbWxqWlNCN1hHNGdJQ0FnY0hKcGRtRjBaU0JmZDI5eWEyVnlRMjkxYm5RNklHNTFiV0psY2p0Y2JpQWdJQ0JqYjI1emRISjFZM1J2Y2lncElIdGNiaUFnSUNBZ0lIUm9hWE11WDNkdmNtdGxja052ZFc1MElEMGdUV0YwYUM1dFlYZ29ibUYyYVdkaGRHOXlMbWhoY21SM1lYSmxRMjl1WTNWeWNtVnVZM2tnTFNBeUxDQXhLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQndkV0pzYVdNZ1lYTjVibU1nWTJGc1kwMTFiSFJwUTI5c2RXMXVLSFpoYkhWbGN6b2dRWEp5WVhrOFlXNTVXMTArTENCbWJrNWhiV1Z6T2lCTGJtOTNiazFsZEhKcFkzTmJYU3hjYmlBZ0lDQWdJSFJvY21WemFHOXNaRG9nYm5WdFltVnlMQ0J2Y0hSek9pQjdXMTg2SUhOMGNtbHVaMTA2SUdGdWVYMWJYU0E5SUZ0N2ZWMHNJSGRsYVdkb2RITTZJRzUxYldKbGNsdGRJRDBnV3pGZExGeHVJQ0FnSUNBZ1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRNklFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJRZ1BTQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a2N5NUZWVU5NU1VSRlFVNWNiaUFnSUNBcElIdGNiaUFnSUNBZ0lHTnZibk4wSUcxaGRGTnBlbVVnUFNCMllXeDFaWE5iTUYwdWJHVnVaM1JvSUNvZ0tIWmhiSFZsYzFzd1hTNXNaVzVuZEdnZ0xTQXhLU0F2SURJN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYUhWdWExTnBlbVVnUFNCTllYUm9MbVpzYjI5eUtHMWhkRk5wZW1VZ0x5QjBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDazdYRzVjYmlBZ0lDQWdJR052Ym5OMElHMXBibFJvY21WemFHOXNaQ0E5SUhaaGJIVmxjMXN3WFM1c1pXNW5kR2dnUGlBeU1GOHdNREFnUDF4dUlDQWdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxtZGxkRTFwYm1sdFlXeFVhSEpsYzJodmJHUW9kbUZzZFdWekxDQm1iazVoYldWekxDQnZjSFJ6TENCM1pXbG5hSFJ6TENCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkNrZ09pQXdPMXh1SUNBZ0lDQWdhV1lnS0hSb2NtVnphRzlzWkNBOElHMXBibFJvY21WemFHOXNaQ2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpiMnhsTG14dlp5aGdkWE5wYm1jZ2RHaHlaWE5vYjJ4a0lDUjdiV2x1VkdoeVpYTm9iMnhrZldBcE8xeHVJQ0FnSUNBZ0lDQjBhSEpsYzJodmJHUWdQU0J0YVc1VWFISmxjMmh2YkdRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCdmNIUnpMbVp2Y2tWaFkyZ29LRjhzSUdrcElEMCtJRzl3ZEhOYmFWMWJKM1JvY21WemFHOXNaQ2RkSUQwZ2RHaHlaWE5vYjJ4a0tUdGNiaUFnSUNBZ0lHTnZibk4wSUhCeWIyMXBjMlZ6SUQxY2JpQWdJQ0FnSUNBZ2JtVjNJRUZ5Y21GNVBGQnliMjFwYzJVOFUzQmhjbk5sVFdGMGNtbDRVbVZ6ZFd4MFBqNG9kR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUXBPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQjNiM0pyWlhKeklEMGdibVYzSUVGeWNtRjVLSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBLVnh1SUNBZ0lDQWdJQ0F1Wm1sc2JDaHVkV3hzS1M1dFlYQW9LQ2tnUFQ0Z2JtVjNJRmR2Y210bGNpaHVaWGNnVlZKTUtDY3VMM053WVhKelpTMXRZWFJ5YVhndGQyOXlhMlZ5Snl3Z2FXMXdiM0owTG0xbGRHRXVkWEpzS1NrcE8xeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FXUjRJRDBnTURzZ2FXUjRJRHdnZEdocGN5NWZkMjl5YTJWeVEyOTFiblE3SUdsa2VDc3JLU0I3WEc0Z0lDQWdJQ0FnSUhCeWIyMXBjMlZ6VzJsa2VGMGdQU0J1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlZkdmNtdGxjaXdnY21WcVpXTjBWMjl5YTJWeUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzNSaGNuUkpaSGdnUFNCcFpIZ2dLaUJqYUhWdWExTnBlbVU3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWlc1a1NXUjRJRDBnYVdSNElEMDlQU0IwYUdsekxsOTNiM0pyWlhKRGIzVnVkQ0F0SURFZ1B5QnRZWFJUYVhwbElEb2dLR2xrZUNBcklERXBJQ29nWTJoMWJtdFRhWHBsTzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hsYm1SSlpIZ2dQRDBnYzNSaGNuUkpaSGdwWEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWE52YkhabFYyOXlhMlZ5S0h0cE9pQnVaWGNnU1c1ME16SkJjbkpoZVNnd0tTd2dham9nYm1WM0lFbHVkRE15UVhKeVlYa29NQ2tzSUdScGMzUmhibU5sT2lCdVpYY2dSbXh2WVhRek1rRnljbUY1S0RBcExDQnBaSGg5S1R0Y2JpQWdJQ0FnSUNBZ0lDQjNiM0pyWlhKelcybGtlRjB1Y0c5emRFMWxjM05oWjJVb2UzWmhiSFZsY3l3Z2MzUmhjblJKWkhnc0lHVnVaRWxrZUN3Z2RHaHlaWE5vYjJ4a0xDQm1iazVoYldWekxDQnZjSFJ6TENCM1pXbG5hSFJ6TENCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkgwcE8xeHVJQ0FnSUNBZ0lDQWdJSGR2Y210bGNuTmJhV1I0WFM1dmJtMWxjM05oWjJVZ1BTQW9lMlJoZEdFNklIdGxjbkp2Y2l3Z2FTd2dhaXdnWkdsemRHRnVZMlY5ZlNrNklIWnZhV1FnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnljbTl5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZxWldOMFYyOXlhMlZ5S0dWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ6YjJ4MlpWZHZjbXRsY2loN2FTd2dhaXdnWkdsemRHRnVZMlVzSUdsa2VIMHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTjFiSFJ6SUQwZ1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b2NISnZiV2x6WlhNcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWm5Wc2JGTnBlbVVnUFNCeVpYTjFiSFJ6TG5KbFpIVmpaU2dvWVdOakxDQjJZV3dwSUQwK0lHRmpZeUFySUhaaGJDNXBMbXhsYm1kMGFDd2dNQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQnBJRDBnYm1WM0lFbHVkRE15UVhKeVlYa29ablZzYkZOcGVtVXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2FpQTlJRzVsZHlCSmJuUXpNa0Z5Y21GNUtHWjFiR3hUYVhwbEtUdGNiaUFnSUNBZ0lHTnZibk4wSUdScGMzUmhibU5sSUQwZ2JtVjNJRVpzYjJGME16SkJjbkpoZVNobWRXeHNVMmw2WlNrN1hHNGdJQ0FnSUNCc1pYUWdiMlptYzJWMElEMGdNRHRjYmlBZ0lDQWdJQzh2SUhObGRIUnBibWNnZEdobElISmxjM1ZzZEhOY2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2NtVnpJRzltSUhKbGMzVnNkSE1wSUh0Y2JpQWdJQ0FnSUNBZ2FTNXpaWFFvY21Wekxta3NJRzltWm5ObGRDazdYRzRnSUNBZ0lDQWdJR291YzJWMEtISmxjeTVxTENCdlptWnpaWFFwTzF4dUlDQWdJQ0FnSUNCa2FYTjBZVzVqWlM1elpYUW9jbVZ6TG1ScGMzUmhibU5sTENCdlptWnpaWFFwTzF4dUlDQWdJQ0FnSUNCdlptWnpaWFFnS3owZ2NtVnpMbWt1YkdWdVozUm9PMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlIdHBMQ0JxTENCa2FYTjBZVzVqWlgwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0Z6ZVc1aklHTmhiR004VkQ0b2RtRnNkV1Z6T2lCQmNuSmhlVHhVUGl3Z1ptNU9ZVzFsT2lCTGJtOTNiazFsZEhKcFkzTXNJSFJvY21WemFHOXNaRG9nYm5WdFltVnlMQ0J2Y0hSek9pQjdXMTg2SUhOMGNtbHVaMTA2SUdGdWVYMGdQU0I3ZlNrZ2UxeHVJQ0FnSUNBZ0x5OXphWHBsSUc5bUlHWjFiR3dnYldGMGNtbDRYRzRnSUNBZ0lDQnlaWFIxY200Z1lYZGhhWFFnZEdocGN5NWpZV3hqVFhWc2RHbERiMngxYlc0b1czWmhiSFZsYzEwc0lGdG1iazVoYldWZExDQjBhSEpsYzJodmJHUXNJRnR2Y0hSelhTd2dXekZkS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3ZFdKc2FXTWdZWE41Ym1NZ1oyVjBTMDVPS0Z4dUlDQWdJQ0FnZG1Gc2RXVnpPaUJCY25KaGVUeGhibmsrTENCbWJrNWhiV1U2SUV0dWIzZHVUV1YwY21samN5d2diazVsYVdkb1ltOTFjbk02SUc1MWJXSmxjaUE5SURFMUxDQnZjSFJ6T2lCN1cxODZJSE4wY21sdVoxMDZJR0Z1ZVgwZ1BTQjdmVnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHRjNZV2wwSUhSb2FYTXViWFZzZEdsRGIyeDFiVzVMVGs0b1czWmhiSFZsYzEwc0lGdG1iazVoYldWZExDQnVUbVZwWjJoaWIzVnljeXdnVzI5d2RITmRMQ0JiTVYwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJoYzNsdVl5Qm5aWFJVYUhKbGMyaHZiR1JMVGs0b1hHNGdJQ0FnSUNCMllXeDFaWE02SUVGeWNtRjVQR0Z1ZVQ0c0lHWnVUbUZ0WlRvZ1MyNXZkMjVOWlhSeWFXTnpMQ0IwYUhKbGMyaHZiR1E2SUc1MWJXSmxjaUE5SURBdU9Dd2diM0IwY3pvZ2UxdGZPaUJ6ZEhKcGJtZGRPaUJoYm5sOUlEMGdlMzFjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhkMkZwZENCMGFHbHpMbTExYkhScFEyOXNkVzF1VkdoeVpYTm9iMnhrUzI1dUtGdDJZV3gxWlhOZExDQmJabTVPWVcxbFhTd2dkR2h5WlhOb2IyeGtMQ0JiYjNCMGMxMHNJRnN4WFNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0Z6ZVc1aklHMTFiSFJwUTI5c2RXMXVWR2h5WlhOb2IyeGtTMjV1S0haaGJIVmxjem9nUVhKeVlYazhRWEp5WVhrOFlXNTVQajRzSUdadVRtRnRaWE02SUV0dWIzZHVUV1YwY21samMxdGRMQ0IwYUhKbGMyaHZiR1E2SUc1MWJXSmxjaUE5SURBdU9DeGNiaUFnSUNBZ0lHOXdkSE02SUh0Ylh6b2djM1J5YVc1blhUb2dZVzU1ZlZ0ZExDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhTeGNiaUFnSUNBZ0lHRm5aM0psWjJGMGFXOXVUV1YwYUc5a09pQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a0lEMGdSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpITXVSVlZEVEVsRVJVRk9YRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQnBaaUFvZG1Gc2RXVnpMbXhsYm1kMGFDQWhQVDBnWm01T1lXMWxjeTVzWlc1bmRHZ2dmSHdnZG1Gc2RXVnpMbXhsYm1kMGFDQWhQVDBnYjNCMGN5NXNaVzVuZEdnZ2ZId2dkbUZzZFdWekxteGxibWQwYUNBaFBUMGdkMlZwWjJoMGN5NXNaVzVuZEdncFhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnbmRtRnNkV1Z6TENCa2FYTjBZVzVqWlNCbWRXNWpkR2x2Ym5Nc0lHOXdkR2x2Ym5NZ1lXNWtJSGRsYVdkb2RITWdZWEp5WVhseklITm9iM1ZzWkNCb1lYWmxJSFJvWlNCellXMWxJR3hsYm1kMGFDY3BPMXh1WEc0Z0lDQWdJQ0JwWmlBb2RtRnNkV1Z6TG5OdmJXVW9LSFlwSUQwK0lIWXViR1Z1WjNSb0lDRTlQU0IyWVd4MVpYTmJNRjB1YkdWdVozUm9LU2xjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RoYkd3Z2RtRnNkV1Z6SUdGeWNtRjVjeUJ6YUc5MWJHUWdhR0YyWlNCMGFHVWdjMkZ0WlNCc1pXNW5kR2duS1R0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnYldGMFUybDZaU0E5SUhaaGJIVmxjMXN3WFM1c1pXNW5kR2dnS2lBb2RtRnNkV1Z6V3pCZExteGxibWQwYUNBdElERXBJQzhnTWp0Y2JpQWdJQ0FnSUdOdmJuTjBJR05vZFc1clUybDZaU0E5SUUxaGRHZ3VabXh2YjNJb2JXRjBVMmw2WlNBdklIUm9hWE11WDNkdmNtdGxja052ZFc1MEtUdGNiaUFnSUNBZ0lHTnZibk4wSUhCeWIyMXBjMlZ6SUQxY2JpQWdJQ0FnSUNBZ2JtVjNJRUZ5Y21GNVBGQnliMjFwYzJVOFMyNXVVbVZ6ZFd4MFBqNG9kR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2QyOXlhMlZ5Y3lBOUlHNWxkeUJCY25KaGVTaDBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDbGNiaUFnSUNBZ0lDQWdMbVpwYkd3b2JuVnNiQ2t1YldGd0tDZ3BJRDArSUc1bGR5QlhiM0pyWlhJb2JtVjNJRlZTVENnbkxpOXJibTR0ZEdoeVpYTm9iMnhrTFhkdmNtdGxjaWNzSUdsdGNHOXlkQzV0WlhSaExuVnliQ2twS1R0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdsa2VDQTlJREE3SUdsa2VDQThJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBPeUJwWkhnckt5a2dlMXh1SUNBZ0lDQWdJQ0J3Y205dGFYTmxjMXRwWkhoZElEMGdibVYzSUZCeWIyMXBjMlVvS0hKbGMyOXNkbVZYYjNKclpYSXNJSEpsYW1WamRGZHZjbXRsY2lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMFNXUjRJRDBnYVdSNElDb2dZMmgxYm10VGFYcGxPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkVsa2VDQTlJR2xrZUNBOVBUMGdkR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUWdMU0F4SUQ4Z2JXRjBVMmw2WlNBNklDaHBaSGdnS3lBeEtTQXFJR05vZFc1clUybDZaVHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9aVzVrU1dSNElEdzlJSE4wWVhKMFNXUjRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpiMngyWlZkdmNtdGxjaWg3YTI1dVJHbHpkR0Z1WTJWek9pQnVaWGNnUVhKeVlYa29NQ2tzSUd0dWJrbHVaR1Y0WlhNNklHNWxkeUJCY25KaGVTZ3dLWDBwTzF4dUlDQWdJQ0FnSUNBZ0lIZHZjbXRsY25OYmFXUjRYUzV3YjNOMFRXVnpjMkZuWlNoN2RtRnNkV1Z6TENCemRHRnlkRWxrZUN3Z1pXNWtTV1I0TENCbWJrNWhiV1Z6TENCdmNIUnpMQ0IwYUhKbGMyaHZiR1FzSUhkbGFXZG9kSE1zSUdGblozSmxaMkYwYVc5dVRXVjBhRzlrZlNrN1hHNGdJQ0FnSUNBZ0lDQWdkMjl5YTJWeWMxdHBaSGhkTG05dWJXVnpjMkZuWlNBOUlDaDdaR0YwWVRvZ2UyVnljbTl5TENCcmJtNUVhWE4wWVc1alpYTXNJR3R1YmtsdVpHVjRaWE45ZlNrNklIWnZhV1FnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHVnljbTl5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZxWldOMFYyOXlhMlZ5S0dWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhkdmNtdGxjbk5iYVdSNFhTNTBaWEp0YVc1aGRHVW9LVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjbVZ6YjJ4MlpWZHZjbXRsY2loN2EyNXVSR2x6ZEdGdVkyVnpMQ0JyYm01SmJtUmxlR1Z6ZlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSEpsYzNWc2RITWdQU0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2h3Y205dGFYTmxjeWs3WEc0Z0lDQWdJQ0JqYjI1emRDQnJibTVUYVhwbGN5QTlJRzVsZHlCSmJuUXpNa0Z5Y21GNUtIWmhiSFZsYzFzd1hTNXNaVzVuZEdncE8xeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnlaWE1nYjJZZ2NtVnpkV3gwY3lrZ2UxeHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSFpoYkhWbGMxc3dYUzVzWlc1bmRHZzdJQ3NyYVNsY2JpQWdJQ0FnSUNBZ0lDQnJibTVUYVhwbGMxdHBYU0FyUFNCeVpYTXVhMjV1U1c1a1pYaGxjMXRwWFQ4dWJHVnVaM1JvSUQ4L0lEQTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmpiMjV6ZENCcmJtNVNaWE02SUV0dWJsSmxjM1ZzZENBOUlIdGNiaUFnSUNBZ0lDQWdhMjV1UkdsemRHRnVZMlZ6T2lCdVpYY2dRWEp5WVhrb2RtRnNkV1Z6V3pCZExteGxibWQwYUNrdVptbHNiQ2h1ZFd4c0tTNXRZWEFvS0Y4c0lHa3BJRDArSUc1bGR5QkJjbkpoZVR4dWRXMWlaWEkrS0d0dWJsTnBlbVZ6VzJsZEtTa3NYRzRnSUNBZ0lDQWdJR3R1YmtsdVpHVjRaWE02SUc1bGR5QkJjbkpoZVNoMllXeDFaWE5iTUYwdWJHVnVaM1JvS1M1bWFXeHNLRzUxYkd3cExtMWhjQ2dvWHl3Z2FTa2dQVDRnYm1WM0lFRnljbUY1UEc1MWJXSmxjajRvYTI1dVUybDZaWE5iYVYwcEtYMDdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJSEpsY3lCdlppQnlaWE4xYkhSektTQjdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZG1Gc2RXVnpXekJkTG14bGJtZDBhRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYWlBOUlEQTdJR29nUENCeVpYTXVhMjV1UkdsemRHRnVZMlZ6VzJsZFB5NXNaVzVuZEdnZ1B6OGdNRHNnS3l0cUtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcmJtNVNaWE11YTI1dVJHbHpkR0Z1WTJWelcybGRXMnR1YmxOcGVtVnpXMmxkSUMwZ01WMGdQU0J5WlhNdWEyNXVSR2x6ZEdGdVkyVnpXMmxkVzJwZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYTI1dVVtVnpMbXR1YmtsdVpHVjRaWE5iYVYxYmEyNXVVMmw2WlhOYmFWMGdMU0F4WFNBOUlISmxjeTVyYm01SmJtUmxlR1Z6VzJsZFcycGRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2EyNXVVMmw2WlhOYmFWMGdMVDBnTVR0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQnJibTVTWlhNN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY0hWaWJHbGpJR0Z6ZVc1aklHMTFiSFJwUTI5c2RXMXVTMDVPS0haaGJIVmxjem9nUVhKeVlYazhRWEp5WVhrOFlXNTVQajRzSUdadVRtRnRaWE02SUV0dWIzZHVUV1YwY21samMxdGRMQ0J1VG1WcFoyaGliM1Z5Y3pvZ2JuVnRZbVZ5SUQwZ01UVXNYRzRnSUNBZ0lDQnZjSFJ6T2lCN1cxODZJSE4wY21sdVoxMDZJR0Z1ZVgxYlhTd2dkMlZwWjJoMGN6b2diblZ0WW1WeVcxMHNYRzRnSUNBZ0lDQmhaMmR5WldkaGRHbHZiazFsZEdodlpEb2dSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpDQTlJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUnpMa1ZWUTB4SlJFVkJUbHh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdhV1lnS0haaGJIVmxjeTVzWlc1bmRHZ2dJVDA5SUdadVRtRnRaWE11YkdWdVozUm9JSHg4SUhaaGJIVmxjeTVzWlc1bmRHZ2dJVDA5SUc5d2RITXViR1Z1WjNSb0lIeDhJSFpoYkhWbGN5NXNaVzVuZEdnZ0lUMDlJSGRsYVdkb2RITXViR1Z1WjNSb0tWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0ozWmhiSFZsY3l3Z1pHbHpkR0Z1WTJVZ1puVnVZM1JwYjI1ekxDQnZjSFJwYjI1eklHRnVaQ0IzWldsbmFIUnpJR0Z5Y21GNWN5QnphRzkxYkdRZ2FHRjJaU0IwYUdVZ2MyRnRaU0JzWlc1bmRHZ25LVHRjYmx4dUlDQWdJQ0FnYVdZZ0tIWmhiSFZsY3k1emIyMWxLQ2gyS1NBOVBpQjJMbXhsYm1kMGFDQWhQVDBnZG1Gc2RXVnpXekJkTG14bGJtZDBhQ2twWEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduWVd4c0lIWmhiSFZsY3lCaGNuSmhlWE1nYzJodmRXeGtJR2hoZG1VZ2RHaGxJSE5oYldVZ2JHVnVaM1JvSnlrN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUcxaGRGTnBlbVVnUFNCMllXeDFaWE5iTUYwdWJHVnVaM1JvSUNvZ0tIWmhiSFZsYzFzd1hTNXNaVzVuZEdnZ0xTQXhLU0F2SURJN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYUhWdWExTnBlbVVnUFNCTllYUm9MbVpzYjI5eUtHMWhkRk5wZW1VZ0x5QjBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDazdYRzRnSUNBZ0lDQmpiMjV6ZENCd2NtOXRhWE5sY3lBOVhHNGdJQ0FnSUNBZ0lHNWxkeUJCY25KaGVUeFFjbTl0YVhObFBFdHVibEpsYzNWc2RENCtLSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBLVHRjYmlBZ0lDQWdJR052Ym5OMElIZHZjbXRsY25NZ1BTQnVaWGNnUVhKeVlYa29kR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUXBYRzRnSUNBZ0lDQWdJQzVtYVd4c0tHNTFiR3dwTG0xaGNDZ29LU0E5UGlCdVpYY2dWMjl5YTJWeUtHNWxkeUJWVWt3b0p5NHZhMjV1TFhkdmNtdGxjaWNzSUdsdGNHOXlkQzV0WlhSaExuVnliQ2twS1R0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdsa2VDQTlJREE3SUdsa2VDQThJSFJvYVhNdVgzZHZjbXRsY2tOdmRXNTBPeUJwWkhnckt5a2dlMXh1SUNBZ0lDQWdJQ0J3Y205dGFYTmxjMXRwWkhoZElEMGdibVYzSUZCeWIyMXBjMlVvS0hKbGMyOXNkbVZYYjNKclpYSXNJSEpsYW1WamRGZHZjbXRsY2lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE4wWVhKMFNXUjRJRDBnYVdSNElDb2dZMmgxYm10VGFYcGxPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1Z1WkVsa2VDQTlJR2xrZUNBOVBUMGdkR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUWdMU0F4SUQ4Z2JXRjBVMmw2WlNBNklDaHBaSGdnS3lBeEtTQXFJR05vZFc1clUybDZaVHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9aVzVrU1dSNElEdzlJSE4wWVhKMFNXUjRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnpiMngyWlZkdmNtdGxjaWg3YTI1dVJHbHpkR0Z1WTJWek9pQnVaWGNnUVhKeVlYa29NQ2tzSUd0dWJrbHVaR1Y0WlhNNklHNWxkeUJCY25KaGVTZ3dLWDBwTzF4dUlDQWdJQ0FnSUNBZ0lIZHZjbXRsY25OYmFXUjRYUzV3YjNOMFRXVnpjMkZuWlNoN2RtRnNkV1Z6TENCemRHRnlkRWxrZUN3Z1pXNWtTV1I0TENCbWJrNWhiV1Z6TENCdmNIUnpMQ0J1VG1WcFoyaGliM1Z5Y3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJSOUtUdGNiaUFnSUNBZ0lDQWdJQ0IzYjNKclpYSnpXMmxrZUYwdWIyNXRaWE56WVdkbElEMGdLSHRrWVhSaE9pQjdaWEp5YjNJc0lHdHVia1JwYzNSaGJtTmxjeXdnYTI1dVNXNWtaWGhsYzMxOUtUb2dkbTlwWkNBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2QyOXlhMlZ5YzF0cFpIaGRMblJsY20xcGJtRjBaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WldwbFkzUlhiM0pyWlhJb1pYSnliM0lwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2QyOXlhMlZ5YzF0cFpIaGRMblJsY20xcGJtRjBaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhOdmJIWmxWMjl5YTJWeUtIdHJibTVFYVhOMFlXNWpaWE1zSUd0dWJrbHVaR1Y0WlhOOUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1kyOXVjM1FnY21WemRXeDBjeUE5SUdGM1lXbDBJRkJ5YjIxcGMyVXVZV3hzS0hCeWIyMXBjMlZ6S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR3R1YmxKbGN6b2dTMjV1VW1WemRXeDBJRDBnZTF4dUlDQWdJQ0FnSUNCcmJtNUVhWE4wWVc1alpYTTZJRzVsZHlCQmNuSmhlU2gyWVd4MVpYTmJNRjB1YkdWdVozUm9LUzVtYVd4c0tHNTFiR3dwTG0xaGNDZ29LU0E5UGlCdVpYY2dRWEp5WVhrOGJuVnRZbVZ5UGlodVRtVnBaMmhpYjNWeWN5a3VabWxzYkNnNU9UazVPU2twTEZ4dUlDQWdJQ0FnSUNCcmJtNUpibVJsZUdWek9pQnVaWGNnUVhKeVlYa29kbUZzZFdWeld6QmRMbXhsYm1kMGFDa3VabWxzYkNodWRXeHNLUzV0WVhBb0tDa2dQVDRnYm1WM0lFRnljbUY1UEc1MWJXSmxjajRvYms1bGFXZG9ZbTkxY25NcExtWnBiR3dvTFRFcEtYMDdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJSEpsY3lCdlppQnlaWE4xYkhSektTQjdYRzRnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZG1Gc2RXVnpXekJkTG14bGJtZDBhRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYWlBOUlEQTdJR29nUENCeVpYTXVhMjV1UkdsemRHRnVZMlZ6VzJsZFB5NXNaVzVuZEdnZ1B6OGdNRHNnS3l0cUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnYVc1elpYSjBVMjFoYkd4bGNpaHJibTVTWlhNdWEyNXVSR2x6ZEdGdVkyVnpXMmxkTENCcmJtNVNaWE11YTI1dVNXNWtaWGhsYzF0cFhTd2djbVZ6TG10dWJrUnBjM1JoYm1ObGMxdHBYVnRxWFN3Z2NtVnpMbXR1YmtsdVpHVjRaWE5iYVYxYmFsMHBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdhMjV1VW1Wek8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhCMVlteHBZeUJoYzNsdVl5Qm5aWFJUWVcxd2JHVkVhWE4wWVc1alpYTW9kbUZzZFdWek9pQkJjbkpoZVR4aGJubGJYVDRzWEc0Z0lDQWdJQ0JtYms1aGJXVnpPaUJMYm05M2JrMWxkSEpwWTNOYlhTd2diM0IwY3pvZ2UxdGZPaUJ6ZEhKcGJtZGRPaUJoYm5sOVcxMGdQU0JiWFN3Z2QyVnBaMmgwY3pvZ2JuVnRZbVZ5VzEwc1hHNGdJQ0FnSUNCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkRvZ1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkNBOUlFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJSekxrVlZRMHhKUkVWQlRpazZJRkJ5YjIxcGMyVThSbXh2WVhRek1rRnljbUY1UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0IwYUhKbGMyaHZiR1JYYjNKclpYSnpJRDBnYm1WM0lFRnljbUY1S0hSb2FYTXVYM2R2Y210bGNrTnZkVzUwS1M1bWFXeHNLRzUxYkd3cFhHNGdJQ0FnSUNBZ0lDNXRZWEFvS0NrZ1BUNGdibVYzSUZkdmNtdGxjaWh1WlhjZ1ZWSk1LQ2N1TDNOd1lYSnpaUzF0WVhSeWFYZ3RkR2h5WlhOb2IyeGtMWGR2Y210bGNpY3NJR2x0Y0c5eWRDNXRaWFJoTG5WeWJDa3BLVHRjYmx4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JXRjBVMmw2WlNBOUlIWmhiSFZsYzFzd1hTNXNaVzVuZEdnZ0tpQW9kbUZzZFdWeld6QmRMbXhsYm1kMGFDQXRJREVwSUM4Z01qdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kyaDFibXRUYVhwbElEMGdUV0YwYUM1bWJHOXZjaWh0WVhSVGFYcGxJQzhnZEdocGN5NWZkMjl5YTJWeVEyOTFiblFwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhoVFlXMXdiR1ZUYVhwbElEMGdNVjh3TURCZk1EQXdPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpZVzF3YkdWVGFYTmxJRDBnVFdGMGFDNXRZWGdvVFdGMGFDNXRhVzRvYldGMFUybDZaU0F2SURFd01EQXNJRzFoZUZOaGJYQnNaVk5wZW1VcExDQk5ZWFJvTG0xcGJpaHRZWFJUYVhwbExDQnRZWGhUWVcxd2JHVlRhWHBsS1NrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhSbGMzUlRaWFJUYVhwbFVHVnlWMjl5YTJWeUlEMGdUV0YwYUM1bWJHOXZjaWh6WVcxd2JHVlRhWE5sSUM4Z2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCMFVISnZiV2x6WlhNZ1BTQnVaWGNnUVhKeVlYazhVSEp2YldselpUeDdaR2x6ZEdGdVkyVTZJRVpzYjJGME16SkJjbkpoZVgwK1BpaDBhR2x6TGw5M2IzSnJaWEpEYjNWdWRDazdYRzVjYmlBZ0lDQWdJQ0FnWm05eUlDaHNaWFFnYVdSNElEMGdNRHNnYVdSNElEd2dkR2hwY3k1ZmQyOXlhMlZ5UTI5MWJuUTdJR2xrZUNzcktTQjdYRzRnSUNBZ0lDQWdJQ0FnZEZCeWIyMXBjMlZ6VzJsa2VGMGdQU0J1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlZkdmNtdGxjaXdnY21WcVpXTjBWMjl5YTJWeUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCemRHRnlkRWxrZUNBOUlHbGtlQ0FxSUdOb2RXNXJVMmw2WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElHVnVaRWxrZUNBOUlHbGtlQ0E5UFQwZ2RHaHBjeTVmZDI5eWEyVnlRMjkxYm5RZ0xTQXhJRDhnYldGMFUybDZaU0E2SUNocFpIZ2dLeUF4S1NBcUlHTm9kVzVyVTJsNlpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtVnphRzlzWkZkdmNtdGxjbk5iYVdSNFhTNXdiM04wVFdWemMyRm5aU2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSFpoYkhWbGN6b2dkbUZzZFdWekxDQnpkR0Z5ZEVsa2VDd2daVzVrU1dSNExDQnpZVzF3YkdWTVpXNW5kR2c2SUhSbGMzUlRaWFJUYVhwbFVHVnlWMjl5YTJWeUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCbWJrNWhiV1Z6TENCdmNIUnpMQ0IzWldsbmFIUnpMQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFISmxjMmh2YkdSWGIzSnJaWEp6VzJsa2VGMHViMjV0WlhOellXZGxJRDBnS0h0a1lYUmhPaUI3WlhKeWIzSXNJR1JwYzNSaGJtTmxmWDBwT2lCMmIybGtJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeVpYTm9iMnhrVjI5eWEyVnljMXRwWkhoZExuUmxjbTFwYm1GMFpTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvWlhKeWIzSXBJSEpsYW1WamRGZHZjbXRsY2lobGNuSnZjaWs3SUdWc2MyVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWE52YkhabFYyOXlhMlZ5S0h0a2FYTjBZVzVqWlgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHTnZibk4wSUhKbGMzVnNkSE1nUFNCaGQyRnBkQ0JRY205dGFYTmxMbUZzYkNoMFVISnZiV2x6WlhNcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbWRXeHNVMmw2WlNBOUlISmxjM1ZzZEhNdWNtVmtkV05sS0NoaFkyTXNJSFpoYkNrZ1BUNGdZV05qSUNzZ2RtRnNMbVJwYzNSaGJtTmxMbXhsYm1kMGFDd2dNQ2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JwYzNSaGJtTmxJRDBnYm1WM0lFWnNiMkYwTXpKQmNuSmhlU2htZFd4c1UybDZaU2s3WEc0Z0lDQWdJQ0FnSUd4bGRDQnZabVp6WlhRZ1BTQXdPMXh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUhKbGN5QnZaaUJ5WlhOMWJIUnpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1pHbHpkR0Z1WTJVdWMyVjBLSEpsY3k1a2FYTjBZVzVqWlN3Z2IyWm1jMlYwS1R0Y2JpQWdJQ0FnSUNBZ0lDQnZabVp6WlhRZ0t6MGdjbVZ6TG1ScGMzUmhibU5sTG14bGJtZDBhRHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCa2FYTjBZVzVqWlM1emIzSjBLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdScGMzUmhibU5sTzF4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlNrZ2UxeHVJQ0FnSUNBZ0lDQjBhSEpsYzJodmJHUlhiM0pyWlhKelB5NW1iM0pGWVdOb0tDaDNLU0E5UGlCM1B5NTBaWEp0YVc1aGRHVW9LU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1WlhKeWIzSW9aU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1JteHZZWFF6TWtGeWNtRjVLREVwTG1acGJHd29NQzQxS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0J3Y21sMllYUmxJR0Z6ZVc1aklHZGxkRTFwYm1sdFlXeFVhSEpsYzJodmJHUW9kbUZzZFdWek9pQkJjbkpoZVR4aGJubGJYVDRzWEc0Z0lDQWdJQ0JtYms1aGJXVnpPaUJMYm05M2JrMWxkSEpwWTNOYlhTd2diM0IwY3pvZ2UxdGZPaUJ6ZEhKcGJtZGRPaUJoYm5sOVcxMGdQU0JiWFN3Z2QyVnBaMmgwY3pvZ2JuVnRZbVZ5VzEwc1hHNGdJQ0FnSUNCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkRvZ1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkNBOUlFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJSekxrVlZRMHhKUkVWQlRpa2dlMXh1SUNBZ0lDQWdMeTlYWlNCdVpXVmtJSFJ2SUdOaGJHTjFiR0YwWlNCMGFHVWdiV2x1YVcxaGJDQjBhSEpsYzJodmJHUWdabWx5YzNRc1hHNGdJQ0FnSUNBdkwybHVJRzl5WkdWeUlIUnZJR2RsZENCdFlYUnlhWGdnYzNWamFDQjBhR0YwSUdsMElHUnZaWE1nYm05MElHVjRZMlZsWkNCMGFHVWdiV0Y0YVcxMWJTQnphWHBsSUc5bUlERkhRbHh1SUNBZ0lDQWdMeTkzWlNCb1lYWmxJRE1nY21WMGRYSnVJR0Z5Y21GNWN5d2daV0ZqYUNBMElHSnBkR1Z6SUhCbGNpQmxiR1Z0Wlc1MExDQnpieUJwWmlCMGFHVWdiV0Y0YVcxMWJTQnphWHBsSUc5bUlIUm9aU0J0WVhSeWFYZ2dhWE1nTVVkQ0xGeHVJQ0FnSUNBZ1kyOXVjM1FnYldGNFUzQmhjbk5sVFdGMGNtbDRVMmw2WlNBOUlEY3dYekF3TUY4d01EQTdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0WVhSVGFYcGxJRDBnZG1Gc2RXVnpMbXhsYm1kMGFDQXFJQ2gyWVd4MVpYTXViR1Z1WjNSb0lDMGdNU2tnTHlBeU8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa2FYTjBZVzVqWlNBOUlHRjNZV2wwSUhSb2FYTXVaMlYwVTJGdGNHeGxSR2x6ZEdGdVkyVnpLSFpoYkhWbGN5d2dabTVPWVcxbGN5d2diM0IwY3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCbWNtRmpkR2x2YmtsdVpHVjRJRDBnVFdGMGFDNW1iRzl2Y2lodFlYaFRjR0Z5YzJWTllYUnlhWGhUYVhwbElDOGdiV0YwVTJsNlpTQXFJR1JwYzNSaGJtTmxMbXhsYm1kMGFDazdYRzRnSUNBZ0lDQWdJR052Ym5OMElIUm9jbVZ6YUc5c1pDQTlJREVnTFNCa2FYTjBZVzVqWlZ0bWNtRmpkR2x2YmtsdVpHVjRYVHRjYmlBZ0lDQWdJQ0FnTHk4Z2RHaHlaWE5vYjJ4a0lEMGdUV0YwYUM1dFlYZ29kR2h5WlhOb2IyeGtMQ0F3TGpNcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHlaWE5vYjJ4a08xeHVJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emIyeGxMbVZ5Y205eUtHVXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdNQzQxTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJSEIxWW14cFl5QnpkR0YwYVdNZ1kyRnNZMU41Ym1NOFZENG9YRzRnSUNBZ0lDQjJZV3gxWlhNNklFRnljbUY1UEZRK0lId2dRWEp5WVhsTWFXdGxQRlErTENCbWJrNWhiV1U2SUV0dWIzZHVUV1YwY21samN5d2daR2x6ZEdGdVkyVkdiam9nUm5WdVkzUnBiMjRzSUhSb2NtVnphRzlzWkRvZ2JuVnRZbVZ5WEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnBPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYWpvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ0lDQWdJR052Ym5OMElHUnBjM1JoYm1ObGN6b2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdJQ0FnSUd4bGRDQmpiblFnUFNBd08xeHVJQ0FnSUNBZ2JHVjBJRzFwSUQwZ01EdGNiaUFnSUNBZ0lHeGxkQ0J0YWlBOUlEQTdYRzRnSUNBZ0lDQmpiMjV6ZENCbWRXeHNVMmw2WlNBOUlIWmhiSFZsY3k1c1pXNW5kR2dnS2lBb2RtRnNkV1Z6TG14bGJtZDBhQ0F0SURFcElDOGdNanRjYmlBZ0lDQWdJSGRvYVd4bElDaGpiblFnUENCbWRXeHNVMmw2WlNrZ2UxeHVJQ0FnSUNBZ0lDQXZMMk52Ym5OMElIWmhiSFZsSUQwZ2MyVnhNVXhwYzNSYmJXbGRJQ1ltSUhObGNURk1hWE4wVzIxcVhTQS9JR2hoYlcxcGJtY29jMlZ4TVV4cGMzUmJiV2xkTENCelpYRXhUR2x6ZEZ0dGFsMHBJRG9nTUR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZG1Gc2RXVWdQU0FoYVhOT2FXd29kbUZzZFdWelcyMXBYU2tnSmlZZ0lXbHpUbWxzS0haaGJIVmxjMXR0YWwwcElEOWNiaUFnSUNBZ0lDQWdJQ0JrYVhOMFlXNWpaVVp1S0haaGJIVmxjMXR0YVYwc0lIWmhiSFZsYzF0dGFsMHBJRG9nTVR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzJsdGFXeGhjbWwwZVNBOUlERWdMU0IyWVd4MVpUdGNiaUFnSUNBZ0lDQWdhV1lnS0hOcGJXbHNZWEpwZEhrZ1BqMGdkR2h5WlhOb2IyeGtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2FTNXdkWE5vS0cxcEtUdGNiaUFnSUNBZ0lDQWdJQ0JxTG5CMWMyZ29iV29wTzF4dUlDQWdJQ0FnSUNBZ0lHUnBjM1JoYm1ObGN5NXdkWE5vS0haaGJIVmxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCamJuUXJLenRjYmlBZ0lDQWdJQ0FnYldvckt6dGNiaUFnSUNBZ0lDQWdhV1lnS0cxcUlEMDlQU0IyWVd4MVpYTXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnYldrckt6dGNiaUFnSUNBZ0lDQWdJQ0J0YWlBOUlHMXBJQ3NnTVR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCcFFYSnlZWGtnUFNCdVpYY2dTVzUwTXpKQmNuSmhlU2hwS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR3BCY25KaGVTQTlJRzVsZHlCSmJuUXpNa0Z5Y21GNUtHb3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pHbHpkR0Z1WTJWQmNuSmhlU0E5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvWkdsemRHRnVZMlZ6S1R0Y2JseHVJQ0FnSUNBZ2NtVjBkWEp1SUh0cE9pQnBRWEp5WVhrc0lHbzZJR3BCY25KaGVTd2daR2x6ZEdGdVkyVTZJR1JwYzNSaGJtTmxRWEp5WVhsOU8xeHVJQ0FnSUgxY2JuMWNiaUpkZlE9PSIsImV4cG9ydCBhc3luYyBmdW5jdGlvbiBiaW9MYXlvdXQoY2x1c3Rlciwgc3BhcnNlT2JqZWN0LCB0aHJlc2hvbGQpIHtcbiAgICBjb25zdCBuID0gY2x1c3Rlci5sZW5ndGg7XG4gICAgY29uc3QgaXMgPSBbXTtcbiAgICBjb25zdCBqcyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IG47IGorKykge1xuICAgICAgICAgICAgY29uc3QgYSA9IGNsdXN0ZXJbaV07XG4gICAgICAgICAgICBjb25zdCBiID0gY2x1c3RlcltqXTtcbiAgICAgICAgICAgIGlmIChzcGFyc2VPYmplY3RbYV0/LltiXSA+PSB0aHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICBpcy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgIGpzLnB1c2goaik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGdldExheW91dEVtYmVkZGluZ3MoaXMsIGpzLCBjbHVzdGVyKTtcbn1cbmZ1bmN0aW9uIGdldExheW91dEVtYmVkZGluZ3MoaXMsIGpzLCBjbHVzdGVyKSB7XG4gICAgY29uc3QgZW1iZWRYID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKS5tYXAoKCkgPT4gTWF0aC5yYW5kb20oKSAqIDEwKTtcbiAgICBjb25zdCBlbWJlZFkgPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApLm1hcCgoKSA9PiBNYXRoLnJhbmRvbSgpICogMTApO1xuICAgIGNvbnN0IGl0ZXJhdGlvbnMgPSAxMDA7XG4gICAgY29uc3QgeFZlbG9jaXRpZXMgPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApO1xuICAgIGNvbnN0IHlWZWxvY2l0aWVzID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7IGkrKykge1xuICAgICAgICBjb25zdCB0ZW1wZXJhdHVyZSA9ICgxIC0gaSAvIGl0ZXJhdGlvbnMpO1xuICAgICAgICB4VmVsb2NpdGllcy5maWxsKDApO1xuICAgICAgICB5VmVsb2NpdGllcy5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBpcy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICBjb25zdCBhID0gaXNbaWR4XTtcbiAgICAgICAgICAgIGNvbnN0IGIgPSBqc1tpZHhdO1xuICAgICAgICAgICAgY29uc3QgZHggPSBlbWJlZFhbYV0gLSBlbWJlZFhbYl07XG4gICAgICAgICAgICBjb25zdCBkeSA9IGVtYmVkWVthXSAtIGVtYmVkWVtiXTtcbiAgICAgICAgICAgIC8vICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpO1xuICAgICAgICAgICAgLy8gICBjb25zdCBmYWN0b3IgPSAoZGlzdGFuY2UgLSAxKSAvIGRpc3RhbmNlO1xuICAgICAgICAgICAgLy8gICBjb25zdCBvZmZzZXRYID0gZHggKiBmYWN0b3I7XG4gICAgICAgICAgICAvLyAgIGNvbnN0IG9mZnNldFkgPSBkeSAqIGZhY3RvcjtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkeCkgPj0gMSkge1xuICAgICAgICAgICAgICAgIHhWZWxvY2l0aWVzW2FdIC09IHRlbXBlcmF0dXJlICogZHg7XG4gICAgICAgICAgICAgICAgeFZlbG9jaXRpZXNbYl0gKz0gdGVtcGVyYXR1cmUgKiBkeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkeSkgPj0gMSkge1xuICAgICAgICAgICAgICAgIHlWZWxvY2l0aWVzW2FdIC09IHRlbXBlcmF0dXJlICogZHk7XG4gICAgICAgICAgICAgICAgeVZlbG9jaXRpZXNbYl0gKz0gdGVtcGVyYXR1cmUgKiBkeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vICAgZW1iZWRZW2FdICs9IG9mZnNldFkgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgICAgIC8vICAgZW1iZWRZW2JdIC09IG9mZnNldFkgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IHZlY1NpemUgPSBNYXRoLnNxcnQoeFZlbG9jaXRpZXNbaWR4XSAqIHhWZWxvY2l0aWVzW2lkeF0gKyB5VmVsb2NpdGllc1tpZHhdICogeVZlbG9jaXRpZXNbaWR4XSk7XG4gICAgICAgICAgICBpZiAodmVjU2l6ZSA+IDApIHtcbiAgICAgICAgICAgICAgICBlbWJlZFhbaWR4XSArPSB4VmVsb2NpdGllc1tpZHhdIC8gdmVjU2l6ZSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICAgICAgICAgIGVtYmVkWVtpZHhdICs9IHlWZWxvY2l0aWVzW2lkeF0gLyB2ZWNTaXplICogdGVtcGVyYXR1cmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gbm9ybWFsaXplXG4gICAgbGV0IG1pblggPSBlbWJlZFhbMF07XG4gICAgbGV0IG1pblkgPSBlbWJlZFlbMF07XG4gICAgbGV0IG1heFggPSBlbWJlZFhbMF07XG4gICAgbGV0IG1heFkgPSBlbWJlZFlbMF07XG4gICAgZm9yIChsZXQgaWR4ID0gMTsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgIG1pblggPSBNYXRoLm1pbihtaW5YLCBlbWJlZFhbaWR4XSk7XG4gICAgICAgIG1pblkgPSBNYXRoLm1pbihtaW5ZLCBlbWJlZFlbaWR4XSk7XG4gICAgICAgIG1heFggPSBNYXRoLm1heChtYXhYLCBlbWJlZFhbaWR4XSk7XG4gICAgICAgIG1heFkgPSBNYXRoLm1heChtYXhZLCBlbWJlZFlbaWR4XSk7XG4gICAgfVxuICAgIGxldCByYW5nZVggPSBtYXhYIC0gbWluWDtcbiAgICBsZXQgcmFuZ2VZID0gbWF4WSAtIG1pblk7XG4gICAgaWYgKHJhbmdlWCA9PT0gMClcbiAgICAgICAgcmFuZ2VYID0gbWF4WDtcbiAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspXG4gICAgICAgIGVtYmVkWFtpZHhdID0gKGVtYmVkWFtpZHhdIC0gbWluWCkgLyByYW5nZVggLyAyICsgMC41O1xuICAgIGlmIChyYW5nZVkgPT09IDApXG4gICAgICAgIHJhbmdlWSA9IG1heFk7XG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKVxuICAgICAgICBlbWJlZFlbaWR4XSA9IChlbWJlZFlbaWR4XSAtIG1pblkpIC8gcmFuZ2VZIC8gMiArIDAuNTtcbiAgICByZXR1cm4geyBlbWJlZFgsIGVtYmVkWSB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWW1sdkxXeGhlVzkxZEM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbUpwYnkxc1lYbHZkWFF1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlJVRXNUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3hUUVVGVExFTkJRVU1zVDBGQmFVSXNSVUZCUlN4WlFVRm5ReXhGUVVGRkxGTkJRV2xDTzBsQlEzQkhMRTFCUVUwc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEZWtJc1RVRkJUU3hGUVVGRkxFZEJRV0VzUlVGQlJTeERRVUZETzBsQlEzaENMRTFCUVUwc1JVRkJSU3hIUVVGaExFVkJRVVVzUTBGQlF6dEpRVU40UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xRkJRekZDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU55UWl4TlFVRk5MRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY2tJc1NVRkJTU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hUUVVGVExFVkJRVVU3WjBKQlEzSkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTFnc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0aFFVTmFPMU5CUTBZN1MwRkRSanRKUVVORUxFOUJRVThzYlVKQlFXMUNMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTTVReXhEUVVGRE8wRkJSVVFzVTBGQlV5eHRRa0ZCYlVJc1EwRkJReXhGUVVGWkxFVkJRVVVzUlVGQldTeEZRVUZGTEU5QlFXbENPMGxCUTNoRkxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dEpRVU4wUml4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRkRVlzVFVGQlRTeFZRVUZWTEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUTNaQ0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkROMFFzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNM1JDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVlVGQlZTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUTI1RExFMUJRVTBzVjBGQlZ5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU42UXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzQkNMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY0VJc1MwRkJTeXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVTdXVUZEZUVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJ4Q0xFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOc1FpeE5RVUZOTEVWQlFVVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTJwRExFMUJRVTBzUlVGQlJTeEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEYWtNc2JVUkJRVzFFTzFsQlEyNUVMRGhEUVVFNFF6dFpRVU01UXl4cFEwRkJhVU03V1VGRGFrTXNhVU5CUVdsRE8xbEJRMnBETEVsQlFVa3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVTdaMEpCUTNKQ0xGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4WFFVRlhMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU51UXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXp0aFFVTndRenRaUVVORUxFbEJRVWtzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3WjBKQlEzSkNMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFhRVUZYTEVkQlFVY3NSVUZCUlN4RFFVRkRPMmRDUVVOdVF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1YwRkJWeXhIUVVGSExFVkJRVVVzUTBGQlF6dGhRVU53UXp0WlFVTklMSGREUVVGM1F6dFpRVU40UXl4M1EwRkJkME03VTBGRGRrTTdVVUZEUkN4TFFVRkxMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdFpRVU0zUXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNKSExFbEJRVWtzVDBGQlR5eEhRVUZITEVOQlFVTXNSVUZCUlR0blFrRkRaaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFOUJRVThzUjBGQlJ5eFhRVUZYTEVOQlFVTTdaMEpCUTNoRUxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzVDBGQlR5eEhRVUZITEZkQlFWY3NRMEZCUXp0aFFVTjZSRHRUUVVOR08wdEJRMFk3U1VGRlJDeFpRVUZaTzBsQlExb3NTVUZCU1N4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkNMRWxCUVVrc1NVRkJTU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnlRaXhKUVVGSkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRja0lzU1VGQlNTeEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pDTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRemRETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOdVF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFVkJRVVVzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRia01zU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTI1RExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTndRenRKUVVORUxFbEJRVWtzVFVGQlRTeEhRVUZITEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkRla0lzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVONlFpeEpRVUZKTEUxQlFVMHNTMEZCU3l4RFFVRkRPMUZCUTJRc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU5vUWl4TFFVRkxMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVU3VVVGRE0wTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFMUJRVTBzUjBGQlJ5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUTNoRUxFbEJRVWtzVFVGQlRTeExRVUZMTEVOQlFVTTdVVUZEWkN4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJRMmhDTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSVHRSUVVNelF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1RVRkJUU3hIUVVGSExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdTVUZGZUVRc1QwRkJUeXhGUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdFRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUjlJR1p5YjIwZ0p5NHZkSGx3WlhNbk8xeHVYRzVsZUhCdmNuUWdZWE41Ym1NZ1puVnVZM1JwYjI0Z1ltbHZUR0Y1YjNWMEtHTnNkWE4wWlhJNklHNTFiV0psY2x0ZExDQnpjR0Z5YzJWUFltcGxZM1E2SUZOd1lYSnpaVTFoZEhKcGVFOWlhbVZqZEN3Z2RHaHlaWE5vYjJ4a09pQnVkVzFpWlhJcElIdGNiaUFnWTI5dWMzUWdiaUE5SUdOc2RYTjBaWEl1YkdWdVozUm9PMXh1SUNCamIyNXpkQ0JwY3pvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ1kyOXVjM1FnYW5NNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dianNnYVNzcktTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJR2tnS3lBeE95QnFJRHdnYmpzZ2Fpc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhJRDBnWTJ4MWMzUmxjbHRwWFR0Y2JpQWdJQ0FnSUdOdmJuTjBJR0lnUFNCamJIVnpkR1Z5VzJwZE8xeHVJQ0FnSUNBZ2FXWWdLSE53WVhKelpVOWlhbVZqZEZ0aFhUOHVXMkpkSUQ0OUlIUm9jbVZ6YUc5c1pDa2dlMXh1SUNBZ0lDQWdJQ0JwY3k1d2RYTm9LR2twTzF4dUlDQWdJQ0FnSUNCcWN5NXdkWE5vS0dvcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnWjJWMFRHRjViM1YwUlcxaVpXUmthVzVuY3locGN5d2dhbk1zSUdOc2RYTjBaWElwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJuWlhSTVlYbHZkWFJGYldKbFpHUnBibWR6S0dsek9pQnVkVzFpWlhKYlhTd2dhbk02SUc1MWJXSmxjbHRkTENCamJIVnpkR1Z5T2lCdWRXMWlaWEpiWFNrZ2UxeHVJQ0JqYjI1emRDQmxiV0psWkZnZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHTnNkWE4wWlhJdWJHVnVaM1JvS1M1bWFXeHNLREFwTG0xaGNDZ29LU0E5UGlCTllYUm9MbkpoYm1SdmJTZ3BJQ29nTVRBcE8xeHVJQ0JqYjI1emRDQmxiV0psWkZrZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHTnNkWE4wWlhJdWJHVnVaM1JvS1M1bWFXeHNLREFwTG0xaGNDZ29LU0E5UGlCTllYUm9MbkpoYm1SdmJTZ3BJQ29nTVRBcE8xeHVJQ0JqYjI1emRDQnBkR1Z5WVhScGIyNXpJRDBnTVRBd08xeHVJQ0JqYjI1emRDQjRWbVZzYjJOcGRHbGxjeUE5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvWTJ4MWMzUmxjaTVzWlc1bmRHZ3BMbVpwYkd3b01DazdYRzRnSUdOdmJuTjBJSGxXWld4dlkybDBhV1Z6SUQwZ2JtVjNJRVpzYjJGME16SkJjbkpoZVNoamJIVnpkR1Z5TG14bGJtZDBhQ2t1Wm1sc2JDZ3dLVHRjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnBkR1Z5WVhScGIyNXpPeUJwS3lzcElIdGNiaUFnSUNCamIyNXpkQ0IwWlcxd1pYSmhkSFZ5WlNBOUlDZ3hJQzBnYVNBdklHbDBaWEpoZEdsdmJuTXBPMXh1SUNBZ0lIaFdaV3h2WTJsMGFXVnpMbVpwYkd3b01DazdYRzRnSUNBZ2VWWmxiRzlqYVhScFpYTXVabWxzYkNnd0tUdGNiaUFnSUNCbWIzSWdLR3hsZENCcFpIZ2dQU0F3T3lCcFpIZ2dQQ0JwY3k1c1pXNW5kR2c3SUdsa2VDc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhJRDBnYVhOYmFXUjRYVHRjYmlBZ0lDQWdJR052Ym5OMElHSWdQU0JxYzF0cFpIaGRPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pIZ2dQU0JsYldKbFpGaGJZVjBnTFNCbGJXSmxaRmhiWWwwN1hHNGdJQ0FnSUNCamIyNXpkQ0JrZVNBOUlHVnRZbVZrV1Z0aFhTQXRJR1Z0WW1Wa1dWdGlYVHRjYmlBZ0lDQWdJQzh2SUNBZ1kyOXVjM1FnWkdsemRHRnVZMlVnUFNCTllYUm9Mbk54Y25Rb1pIZ2dLaUJrZUNBcklHUjVJQ29nWkhrcE8xeHVJQ0FnSUNBZ0x5OGdJQ0JqYjI1emRDQm1ZV04wYjNJZ1BTQW9aR2x6ZEdGdVkyVWdMU0F4S1NBdklHUnBjM1JoYm1ObE8xeHVJQ0FnSUNBZ0x5OGdJQ0JqYjI1emRDQnZabVp6WlhSWUlEMGdaSGdnS2lCbVlXTjBiM0k3WEc0Z0lDQWdJQ0F2THlBZ0lHTnZibk4wSUc5bVpuTmxkRmtnUFNCa2VTQXFJR1poWTNSdmNqdGNiaUFnSUNBZ0lHbG1JQ2hOWVhSb0xtRmljeWhrZUNrZ1BqMGdNU2tnZTF4dUlDQWdJQ0FnSUNCNFZtVnNiMk5wZEdsbGMxdGhYU0F0UFNCMFpXMXdaWEpoZEhWeVpTQXFJR1I0TzF4dUlDQWdJQ0FnSUNCNFZtVnNiMk5wZEdsbGMxdGlYU0FyUFNCMFpXMXdaWEpoZEhWeVpTQXFJR1I0TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tFMWhkR2d1WVdKektHUjVLU0ErUFNBeEtTQjdYRzRnSUNBZ0lDQWdJSGxXWld4dlkybDBhV1Z6VzJGZElDMDlJSFJsYlhCbGNtRjBkWEpsSUNvZ1pIazdYRzRnSUNBZ0lDQWdJSGxXWld4dlkybDBhV1Z6VzJKZElDczlJSFJsYlhCbGNtRjBkWEpsSUNvZ1pIazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0x5OGdJQ0JsYldKbFpGbGJZVjBnS3owZ2IyWm1jMlYwV1NBcUlIUmxiWEJsY21GMGRYSmxPMXh1SUNBZ0lDOHZJQ0FnWlcxaVpXUlpXMkpkSUMwOUlHOW1abk5sZEZrZ0tpQjBaVzF3WlhKaGRIVnlaVHRjYmlBZ0lDQjlYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FXUjRJRDBnTURzZ2FXUjRJRHdnWTJ4MWMzUmxjaTVzWlc1bmRHZzdJR2xrZUNzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMlpXTlRhWHBsSUQwZ1RXRjBhQzV6Y1hKMEtIaFdaV3h2WTJsMGFXVnpXMmxrZUYwZ0tpQjRWbVZzYjJOcGRHbGxjMXRwWkhoZElDc2dlVlpsYkc5amFYUnBaWE5iYVdSNFhTQXFJSGxXWld4dlkybDBhV1Z6VzJsa2VGMHBPMXh1SUNBZ0lDQWdhV1lnS0habFkxTnBlbVVnUGlBd0tTQjdYRzRnSUNBZ0lDQWdJR1Z0WW1Wa1dGdHBaSGhkSUNzOUlIaFdaV3h2WTJsMGFXVnpXMmxrZUYwZ0x5QjJaV05UYVhwbElDb2dkR1Z0Y0dWeVlYUjFjbVU3WEc0Z0lDQWdJQ0FnSUdWdFltVmtXVnRwWkhoZElDczlJSGxXWld4dlkybDBhV1Z6VzJsa2VGMGdMeUIyWldOVGFYcGxJQ29nZEdWdGNHVnlZWFIxY21VN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5OGdibTl5YldGc2FYcGxYRzRnSUd4bGRDQnRhVzVZSUQwZ1pXMWlaV1JZV3pCZE8xeHVJQ0JzWlhRZ2JXbHVXU0E5SUdWdFltVmtXVnN3WFR0Y2JpQWdiR1YwSUcxaGVGZ2dQU0JsYldKbFpGaGJNRjA3WEc0Z0lHeGxkQ0J0WVhoWklEMGdaVzFpWldSWld6QmRPMXh1SUNCbWIzSWdLR3hsZENCcFpIZ2dQU0F4T3lCcFpIZ2dQQ0JqYkhWemRHVnlMbXhsYm1kMGFEc2dhV1I0S3lzcElIdGNiaUFnSUNCdGFXNVlJRDBnVFdGMGFDNXRhVzRvYldsdVdDd2daVzFpWldSWVcybGtlRjBwTzF4dUlDQWdJRzFwYmxrZ1BTQk5ZWFJvTG0xcGJpaHRhVzVaTENCbGJXSmxaRmxiYVdSNFhTazdYRzRnSUNBZ2JXRjRXQ0E5SUUxaGRHZ3ViV0Y0S0cxaGVGZ3NJR1Z0WW1Wa1dGdHBaSGhkS1R0Y2JpQWdJQ0J0WVhoWklEMGdUV0YwYUM1dFlYZ29iV0Y0V1N3Z1pXMWlaV1JaVzJsa2VGMHBPMXh1SUNCOVhHNGdJR3hsZENCeVlXNW5aVmdnUFNCdFlYaFlJQzBnYldsdVdEdGNiaUFnYkdWMElISmhibWRsV1NBOUlHMWhlRmtnTFNCdGFXNVpPMXh1SUNCcFppQW9jbUZ1WjJWWUlEMDlQU0F3S1Z4dUlDQWdJSEpoYm1kbFdDQTlJRzFoZUZnN1hHNGdJR1p2Y2lBb2JHVjBJR2xrZUNBOUlEQTdJR2xrZUNBOElHTnNkWE4wWlhJdWJHVnVaM1JvT3lCcFpIZ3JLeWxjYmlBZ0lDQmxiV0psWkZoYmFXUjRYU0E5SUNobGJXSmxaRmhiYVdSNFhTQXRJRzFwYmxncElDOGdjbUZ1WjJWWUlDOGdNaUFySURBdU5UdGNiaUFnYVdZZ0tISmhibWRsV1NBOVBUMGdNQ2xjYmlBZ0lDQnlZVzVuWlZrZ1BTQnRZWGhaTzF4dUlDQm1iM0lnS0d4bGRDQnBaSGdnUFNBd095QnBaSGdnUENCamJIVnpkR1Z5TG14bGJtZDBhRHNnYVdSNEt5c3BYRzRnSUNBZ1pXMWlaV1JaVzJsa2VGMGdQU0FvWlcxaVpXUlpXMmxrZUYwZ0xTQnRhVzVaS1NBdklISmhibWRsV1NBdklESWdLeUF3TGpVN1hHNWNiaUFnY21WMGRYSnVJSHRsYldKbFpGZ3NJR1Z0WW1Wa1dYMDdYRzU5WEc0aVhYMD0iLCJpbXBvcnQgeyBiaW9MYXlvdXQgfSBmcm9tICcuL2Jpby1sYXlvdXQnO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRNQ0xPcHRpb25zID0ge1xuICAgIGV4cGFuZEZhY3RvcjogMixcbiAgICBtYXhJdGVyYXRpb25zOiA1LFxuICAgIGluZmxhdGVGYWN0b3I6IDIsXG4gICAgbXVsdEZhY3RvcjogMSxcbn07XG5leHBvcnQgY2xhc3MgTUNMU3BhcnNlUmVkdWNlciB7XG4gICAgY29uc3RydWN0b3Iob3B0cyA9IHt9KSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB7IC4uLmRlZmF1bHRNQ0xPcHRpb25zLCAuLi5vcHRzIH07XG4gICAgfVxuICAgIGFzeW5jIHRyYW5zZm9ybShzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIC8vIHRlc3RXb3JrZXJNdWx0aXBseSgpO1xuICAgICAgICAvLyByZXR1cm4gbmV3IEludDMyQXJyYXkoblJvd3MpO1xuICAgICAgICBsZXQgc3BhcnNlT2JqZWN0ID0gdGhpcy50b09iamVjdEZvcm0oc3BhcnNlTWF0cml4KTtcbiAgICAgICAgaWYgKHRoaXMuX29wdGlvbnMubWF4SXRlcmF0aW9ucyA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkTG9vcHMoc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgICAgICB0aGlzLm5vcm1hbGl6ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9vcHRpb25zLm1heEl0ZXJhdGlvbnM7IGkrKykge1xuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdCA9IHRoaXMuZXhwYW5kKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5mbGF0ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgICAgIHRoaXMubm9ybWFsaXplKHNwYXJzZU9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBjbHVzdGVycywgaXMsIGpzIH0gPSB0aGlzLmFzc2lnbkNsdXN0ZXJzKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICB0aGlzLmNvcnJlY3RDbHVzdGVycyhjbHVzdGVycyk7XG4gICAgICAgIGNvbnN0IGVtYmVkZGluZ3MgPSBhd2FpdCB0aGlzLmxheW91dChjbHVzdGVycywgc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgIHJldHVybiB7IGNsdXN0ZXJzLCBlbWJlZFg6IGVtYmVkZGluZ3MuZW1iZWRYLCBlbWJlZFk6IGVtYmVkZGluZ3MuZW1iZWRZLCBpcywganMgfTtcbiAgICB9XG4gICAgY29ycmVjdENsdXN0ZXJzKGNsdXN0ZXJzKSB7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJTaXplTWFwID0ge307XG4gICAgICAgIGZvciAoY29uc3QgY2x1c3RlciBvZiBjbHVzdGVycykge1xuICAgICAgICAgICAgaWYgKCFjbHVzdGVyU2l6ZU1hcFtjbHVzdGVyXSlcbiAgICAgICAgICAgICAgICBjbHVzdGVyU2l6ZU1hcFtjbHVzdGVyXSA9IDA7XG4gICAgICAgICAgICBjbHVzdGVyU2l6ZU1hcFtjbHVzdGVyXSsrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvcnRlZEluZGV4ZXMgPSBPYmplY3Qua2V5cyhjbHVzdGVyU2l6ZU1hcCkubWFwKE51bWJlcikuc29ydCgoYSwgYikgPT4gY2x1c3RlclNpemVNYXBbYV0gLSBjbHVzdGVyU2l6ZU1hcFtiXSk7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJNYXAgPSB7fTtcbiAgICAgICAgc29ydGVkSW5kZXhlcy5mb3JFYWNoKChjbHVzdGVySWR4LCBpKSA9PiBjbHVzdGVyTWFwW2NsdXN0ZXJJZHhdID0gaSArIDEpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgY2x1c3RlcnNbaV0gPSBjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXTtcbiAgICAgICAgLy8gbGV0IGN1ckNsdXN0ZXIgPSAxO1xuICAgICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vICAgaWYgKCFjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXSkge1xuICAgICAgICAvLyAgICAgY2x1c3Rlck1hcFtjbHVzdGVyc1tpXV0gPSBjdXJDbHVzdGVyO1xuICAgICAgICAvLyAgICAgY2x1c3RlcnNbaV0gPSBjdXJDbHVzdGVyO1xuICAgICAgICAvLyAgICAgY3VyQ2x1c3RlcisrO1xuICAgICAgICAvLyAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICBjbHVzdGVyc1tpXSA9IGNsdXN0ZXJNYXBbY2x1c3RlcnNbaV1dO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gfVxuICAgIH1cbiAgICBhc3luYyBsYXlvdXQoY2x1c3RlcnMsIHNwYXJzZU1hdHJpeCwgblJvd3MpIHtcbiAgICAgICAgY29uc3QgZW1iZWRYID0gbmV3IEZsb2F0MzJBcnJheShuUm93cykuZmlsbCgwKTtcbiAgICAgICAgY29uc3QgZW1iZWRZID0gbmV3IEZsb2F0MzJBcnJheShuUm93cykuZmlsbCgwKTtcbiAgICAgICAgY29uc3QgY2x1c3Rlck1hcCA9IHt9O1xuICAgICAgICBjbHVzdGVycy5mb3JFYWNoKChjbHVzdGVyLCBpKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWNsdXN0ZXJNYXBbY2x1c3Rlcl0pXG4gICAgICAgICAgICAgICAgY2x1c3Rlck1hcFtjbHVzdGVyXSA9IFtdO1xuICAgICAgICAgICAgY2x1c3Rlck1hcFtjbHVzdGVyXS5wdXNoKGkpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gY29uc3QgbkNsdXN0ZXJzID0gT2JqZWN0LmtleXMoY2x1c3Rlck1hcCkubGVuZ3RoO1xuICAgICAgICAvLyBjb25zdCBwZXJSb3cgPSBNYXRoLmZsb29yKE1hdGguc3FydChuQ2x1c3RlcnMpKTtcbiAgICAgICAgbGV0IGNsdXN0ZXJOdW0gPSAwO1xuICAgICAgICBjb25zdCBzb3J0ZWRDbHVzdGVyTmFtZXMgPSBPYmplY3Qua2V5cyhjbHVzdGVyTWFwKTtcbiAgICAgICAgc29ydGVkQ2x1c3Rlck5hbWVzLnNvcnQoKGEsIGIpID0+IGNsdXN0ZXJNYXBbYl0ubGVuZ3RoIC0gY2x1c3Rlck1hcFthXS5sZW5ndGgpO1xuICAgICAgICBsZXQgcGVyUm93ID0gNjtcbiAgICAgICAgbGV0IHlPZmZzZXQgPSAwO1xuICAgICAgICBjb25zdCBsYXlvdXRTaXplID0gNTtcbiAgICAgICAgZm9yIChjb25zdCBjbHVzdGVyTmFtZSBvZiBzb3J0ZWRDbHVzdGVyTmFtZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsdXN0ZXIgPSBjbHVzdGVyTWFwW2NsdXN0ZXJOYW1lXTtcbiAgICAgICAgICAgIGNvbnN0IGVtYmVkZGluZ3MgPSBhd2FpdCBiaW9MYXlvdXQoY2x1c3Rlciwgc3BhcnNlTWF0cml4LCAwLjAwMSk7XG4gICAgICAgICAgICBpZiAoY2x1c3Rlck51bSA9PT0gTWF0aC5jZWlsKHBlclJvdyAvIDEuNSkpIHtcbiAgICAgICAgICAgICAgICBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgICAgICAgICB5T2Zmc2V0ICs9IGxheW91dFNpemUgLyBwZXJSb3c7XG4gICAgICAgICAgICAgICAgcGVyUm93ID0gTWF0aC5jZWlsKHBlclJvdyAqIDEuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBvZmZzZXRYID0gKChjbHVzdGVyTnVtICUgcGVyUm93KSAqIGxheW91dFNpemUgLyBwZXJSb3cpICogMS41O1xuICAgICAgICAgICAgLy8gY29uc3Qgb2Zmc2V0WSA9IE1hdGguZmxvb3IoY2x1c3Rlck51bSAvIHBlclJvdykgKiAyO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbWJlZGRpbmdzLmVtYmVkWC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGVtYmVkWFtjbHVzdGVyW2ldXSA9IGVtYmVkZGluZ3MuZW1iZWRYW2ldICogbGF5b3V0U2l6ZSAvIHBlclJvdyArIG9mZnNldFg7XG4gICAgICAgICAgICAgICAgZW1iZWRZW2NsdXN0ZXJbaV1dID0gZW1iZWRkaW5ncy5lbWJlZFlbaV0gKiBsYXlvdXRTaXplIC8gcGVyUm93ICsgeU9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBlbWJlZFgsIGVtYmVkWSB9O1xuICAgIH1cbiAgICBtZXJnZUNsdXN0ZXJzKGNsdXN0ZXJzLCBpLCBqKSB7XG4gICAgICAgIGNvbnN0IGlDbHVzdGVyID0gY2x1c3RlcnNbaV07XG4gICAgICAgIGNvbnN0IGpDbHVzdGVyID0gY2x1c3RlcnNbal07XG4gICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgY2x1c3RlcnMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgIGlmIChjbHVzdGVyc1trXSA9PT0gakNsdXN0ZXIpXG4gICAgICAgICAgICAgICAgY2x1c3RlcnNba10gPSBpQ2x1c3RlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3NpZ25DbHVzdGVycyhzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIGxldCBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgY29uc3QgaXMgPSBbXTtcbiAgICAgICAgY29uc3QganMgPSBbXTtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBNYXRoLmZsb29yKE1hdGgubWF4KE1hdGgubG9nMTAoblJvd3MpLCAyKSkgKyAxO1xuICAgICAgICBjb25zdCBtaW5PcmRlciA9IE1hdGgucG93KDEwLCBvcmRlcik7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJzID0gbmV3IEFycmF5KG5Sb3dzKS5maWxsKC0xKTtcbiAgICAgICAgZm9yIChjb25zdCBpIG9mIE9iamVjdC5rZXlzKHNwYXJzZU1hdHJpeCkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhzcGFyc2VNYXRyaXhbaV0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKE1hdGgucm91bmQoc3BhcnNlTWF0cml4W2ldW2pdICogbWluT3JkZXIpIC8gbWluT3JkZXIgPiAwICYmXG4gICAgICAgICAgICAgICAgICAgIHNwYXJzZU1hdHJpeFtpXVtqXSAhPT0gTnVtYmVyKGkpICYmIE51bWJlcihqKSA+IE51bWJlcihpKSkge1xuICAgICAgICAgICAgICAgICAgICBpcy5wdXNoKE51bWJlcihpKSk7XG4gICAgICAgICAgICAgICAgICAgIGpzLnB1c2goTnVtYmVyKGopKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW051bWJlcihpKV0gIT09IC0xICYmIGNsdXN0ZXJzW051bWJlcihqKV0gIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2x1c3RlcnNbTnVtYmVyKGkpXSAhPT0gY2x1c3RlcnNbTnVtYmVyKGopXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lcmdlQ2x1c3RlcnMoY2x1c3RlcnMsIE51bWJlcihpKSwgTnVtYmVyKGopKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjbHVzdGVyc1tOdW1iZXIoaSldICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGopXSA9IGNsdXN0ZXJzW051bWJlcihpKV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2x1c3RlcnNbTnVtYmVyKGopXSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihpKV0gPSBjbHVzdGVyc1tOdW1iZXIoaildO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3Rlck51bSsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGkpXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyc1tOdW1iZXIoaildID0gY2x1c3Rlck51bTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoY2x1c3RlcnNbaV0gPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY2x1c3Rlck51bSsrO1xuICAgICAgICAgICAgICAgIGNsdXN0ZXJzW2ldID0gY2x1c3Rlck51bTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBjbHVzdGVycywgaXM6IG5ldyBVaW50MzJBcnJheShpcyksIGpzOiBuZXcgVWludDMyQXJyYXkoanMpIH07XG4gICAgfVxuICAgIHRvT2JqZWN0Rm9ybShzcGFyc2VNYXRyaXgpIHtcbiAgICAgICAgY29uc3Qgc3BhcnNlT2JqZWN0ID0ge307XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BhcnNlTWF0cml4LmkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICghc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmlbaV1dID0ge307XG4gICAgICAgICAgICBzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmlbaV1dW3NwYXJzZU1hdHJpeC5qW2ldXSA9IDEgLSBzcGFyc2VNYXRyaXguZGlzdGFuY2VbaV07XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5qW2ldXSA9IHt9O1xuICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5qW2ldXVtzcGFyc2VNYXRyaXguaVtpXV0gPSAxIC0gc3BhcnNlTWF0cml4LmRpc3RhbmNlW2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzcGFyc2VPYmplY3Q7XG4gICAgfVxuICAgIGFkZExvb3BzKHNwYXJzZU9iamVjdCwgblJvd3MpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuUm93czsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3RbaV0gPSB7fTtcbiAgICAgICAgICAgIHNwYXJzZU9iamVjdFtpXVtpXSA9IHRoaXMuX29wdGlvbnMubXVsdEZhY3RvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBub3JtYWxpemUoc3BhcnNlT2JqZWN0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBsZXQgc3VtID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhyb3cpKVxuICAgICAgICAgICAgICAgIHN1bSArPSByb3dbal07XG4gICAgICAgICAgICBpZiAoc3VtID09PSAwKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgZm9yIChjb25zdCBqIG9mIE9iamVjdC5rZXlzKHJvdykpXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldW2pdIC89IHN1bTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBleHBhbmQoc3BhcnNlT2JqZWN0LCBuUm93cykge1xuICAgICAgICBjb25zdCBleHBhbmRlZE9iamVjdCA9IHt9O1xuICAgICAgICBjb25zdCBvcmRlciA9IE1hdGguZmxvb3IoTWF0aC5tYXgoTWF0aC5sb2cxMChuUm93cyksIDIpKSArIDE7XG4gICAgICAgIGNvbnN0IG1pbk9yZGVyID0gTWF0aC5wb3coMTAsIG9yZGVyKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuUm93czsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXSlcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIC8vIGNvbnN0IHJvdyA9IHNwYXJzZU9iamVjdFtpXTtcbiAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2ldID0ge307XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gaTsgaiA8IG5Sb3dzOyBqKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXT8uW2pdKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmdldEV4cGFuZFZhbHVlKHNwYXJzZU9iamVjdCwgaSwgaik7IC8vcHJ1bmluZyBzdGVwXG4gICAgICAgICAgICAgICAgaWYgKE1hdGgucm91bmQodmFsICogbWluT3JkZXIpIC8gbWluT3JkZXIgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2ldW2pdID0gdmFsO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWV4cGFuZGVkT2JqZWN0W2pdKVxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRPYmplY3Rbal0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRPYmplY3Rbal1baV0gPSB2YWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBleHBhbmRlZE9iamVjdDtcbiAgICB9XG4gICAgLy8gcHJpdmF0ZSBwcnVuZShyb3c6IFNwYXJzZU1hdHJpeE9iamVjdFtudW1iZXJdKSB7XG4gICAgLy8gfVxuICAgIGluZmxhdGUoc3BhcnNlT2JqZWN0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMocm93KSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3RbaV1bal0gPSBNYXRoLnBvdyhzcGFyc2VPYmplY3RbaV1bal0sIHRoaXMuX29wdGlvbnMuaW5mbGF0ZUZhY3Rvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0RXhwYW5kVmFsdWUoc3BhcnNlT2JqZWN0LCBpLCBqKSB7XG4gICAgICAgIGxldCB2YWwgPSAwO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXhlcyA9IE9iamVjdC5rZXlzKHNwYXJzZU9iamVjdFtpXSA/PyB7fSk7XG4gICAgICAgIGNvbnN0IG90aGVySW5kZXhlcyA9IE9iamVjdC5rZXlzKHNwYXJzZU9iamVjdFtqXSA/PyB7fSk7XG4gICAgICAgIGZvciAoY29uc3QgayBvZiBjdXJyZW50SW5kZXhlcykge1xuICAgICAgICAgICAgaWYgKG90aGVySW5kZXhlcy5pbmNsdWRlcyhrKSlcbiAgICAgICAgICAgICAgICB2YWwgKz0gc3BhcnNlT2JqZWN0W2ldW2tdICogc3BhcnNlT2JqZWN0W2pdW2tdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldGeVkyOTJMV05zZFhOMFpYSXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKdFlYSmpiM1l0WTJ4MWMzUmxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGRFFTeFBRVUZQTEVWQlFVTXNVMEZCVXl4RlFVRkRMRTFCUVUwc1kwRkJZeXhEUVVGRE8wRkJSM1pETEUxQlFVMHNRMEZCUXl4TlFVRk5MR2xDUVVGcFFpeEhRVUZsTzBsQlF6TkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8wbEJRMllzWVVGQllTeEZRVUZGTEVOQlFVTTdTVUZEYUVJc1lVRkJZU3hGUVVGRkxFTkJRVU03U1VGRGFFSXNWVUZCVlN4RlFVRkZMRU5CUVVNN1EwRkRaQ3hEUVVGRE8wRkJSVVlzVFVGQlRTeFBRVUZQTEdkQ1FVRm5RanRKUVVjelFpeFpRVUZaTEU5QlFUUkNMRVZCUVVVN1VVRkRlRU1zU1VGQlNTeERRVUZETEZGQlFWRXNSMEZCUnl4RlFVRkRMRWRCUVVjc2FVSkJRV2xDTEVWQlFVVXNSMEZCUnl4SlFVRkpMRVZCUVVNc1EwRkJRenRKUVVOc1JDeERRVUZETzBsQlJVMHNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhaUVVGblF5eEZRVUZGTEV0QlFXRTdVVUZEY0VVc2QwSkJRWGRDTzFGQlEzaENMR2REUVVGblF6dFJRVU5vUXl4SlFVRkpMRmxCUVZrc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUTI1RUxFbEJRVWtzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhGUVVGRk8xbEJRMjVETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1dVRkJXU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEyNURMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdXVUZETjBJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zWVVGQllTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOd1JDeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdaMEpCUTJoRUxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1owSkJRek5DTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03WVVGRE9VSTdVMEZEUmp0UlFVTkVMRTFCUVUwc1JVRkJReXhSUVVGUkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zV1VGQldTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNCRkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkRMMElzVFVGQlRTeFZRVUZWTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUlVGQlJTeFpRVUZaTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRjRVVzVDBGQlR5eEZRVUZETEZGQlFWRXNSVUZCUlN4TlFVRk5MRVZCUVVVc1ZVRkJWU3hEUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNWVUZCVlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZETEVOQlFVTTdTVUZEYkVZc1EwRkJRenRKUVVWUExHVkJRV1VzUTBGQlF5eFJRVUZyUWp0UlFVTjRReXhOUVVGTkxHTkJRV01zUjBGQk1FSXNSVUZCUlN4RFFVRkRPMUZCUTJwRUxFdEJRVXNzVFVGQlRTeFBRVUZQTEVsQlFVa3NVVUZCVVN4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRPMmRDUVVNeFFpeGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRemxDTEdOQlFXTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRE8xTkJRek5DTzFGQlEwUXNUVUZCVFN4aFFVRmhMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzQklMRTFCUVUwc1ZVRkJWU3hIUVVFd1FpeEZRVUZGTEVOQlFVTTdVVUZETjBNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGVrVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEZGQlFWRXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRk8xbEJRM1JETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRlRU1zYzBKQlFYTkNPMUZCUTNSQ0xEaERRVUU0UXp0UlFVTTVReXh2UTBGQmIwTTdVVUZEY0VNc05FTkJRVFJETzFGQlF6VkRMR2REUVVGblF6dFJRVU5vUXl4dlFrRkJiMEk3VVVGRGNFSXNZVUZCWVR0UlFVTmlMRFpEUVVFMlF6dFJRVU0zUXl4TlFVRk5PMUZCUTA0c1NVRkJTVHRKUVVOT0xFTkJRVU03U1VGRlR5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVd0Q0xFVkJRVVVzV1VGQlowTXNSVUZCUlN4TFFVRmhPMUZCUTNSR0xFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXZReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZETDBNc1RVRkJUU3hWUVVGVkxFZEJRVFJDTEVWQlFVVXNRMEZCUXp0UlFVTXZReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxDTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRE8yZENRVU4wUWl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzFsQlF6TkNMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRPVUlzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEU0N4dlJFRkJiMFE3VVVGRGNFUXNiVVJCUVcxRU8xRkJRMjVFTEVsQlFVa3NWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOdVFpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRia1FzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4VlFVRlZMRU5CUVVNc1EwRkJVU3hEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZETjBZc1NVRkJTU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJXWXNTVUZCU1N4UFFVRlBMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMmhDTEUxQlFVMHNWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOeVFpeExRVUZMTEUxQlFVMHNWMEZCVnl4SlFVRkpMR3RDUVVGclFpeEZRVUZGTzFsQlF6VkRMRTFCUVUwc1QwRkJUeXhIUVVGSExGVkJRVlVzUTBGQlF5eFhRVUZyUWl4RFFVRkZMRU5CUVVNN1dVRkRhRVFzVFVGQlRTeFZRVUZWTEVkQlFVY3NUVUZCVFN4VFFVRlRMRU5CUVVNc1QwRkJUeXhGUVVGRkxGbEJRVmtzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTnFSU3hKUVVGSkxGVkJRVlVzUzBGQlN5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJUdG5Ra0ZETVVNc1ZVRkJWU3hIUVVGSExFTkJRVU1zUTBGQlF6dG5Ra0ZEWml4UFFVRlBMRWxCUVVrc1ZVRkJWU3hIUVVGSExFMUJRVTBzUTBGQlF6dG5Ra0ZETDBJc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRE8yRkJRMnhETzFsQlEwUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhEUVVGRExGVkJRVlVzUjBGQlJ5eE5RVUZOTEVOQlFVTXNSMEZCUnl4VlFVRlZMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzFsQlEzQkZMSFZFUVVGMVJEdFpRVVYyUkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTJwRUxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRlZCUVZVc1IwRkJSeXhOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETzJkQ1FVTXhSU3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRWRCUVVjc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF6dGhRVU16UlR0WlFVTkVMRlZCUVZVc1JVRkJSU3hEUVVGRE8xTkJRMlE3VVVGRFJDeFBRVUZQTEVWQlFVTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJReXhEUVVGRE8wbEJRekZDTEVOQlFVTTdTVUZGVHl4aFFVRmhMRU5CUVVNc1VVRkJhMElzUlVGQlJTeERRVUZUTEVWQlFVVXNRMEZCVXp0UlFVTTFSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkROMElzVFVGQlRTeFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRemRDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRM2hETEVsQlFVa3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExGRkJRVkU3WjBKQlF6RkNMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTTdVMEZETVVJN1NVRkRTQ3hEUVVGRE8wbEJRMDBzWTBGQll5eERRVUZETEZsQlFXZERMRVZCUVVVc1MwRkJZVHRSUVVOdVJTeEpRVUZKTEZWQlFWVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRia0lzVFVGQlRTeEZRVUZGTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUTNoQ0xFMUJRVTBzUlVGQlJTeEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVTjRRaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU55UXl4TlFVRk5MRkZCUVZFc1IwRkJZU3hKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU55UkN4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUVVVN1dVRkRla01zUzBGQlN5eE5RVUZOTEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOdVJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETEVOQlFWRXNRMEZCUXl4SFFVRkhMRkZCUVZFc1EwRkJReXhIUVVGSExGRkJRVkVzUjBGQlJ5eERRVUZETzI5Q1FVTjRSU3haUVVGWkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNRMEZCVVN4RFFVRkRMRXRCUVVzc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVTdiMEpCUTNwRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEyNUNMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRMjVDTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSVHQzUWtGRE5VUXNTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6czBRa0ZETjBNc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVOMFJEdDVRa0ZCVFN4SlFVRkpMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSVHQzUWtGRGNrTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHhRa0ZETTBNN2VVSkJRVTBzU1VGQlNTeFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVTdkMEpCUTNKRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRek5ETzNsQ1FVRk5PM2RDUVVOTUxGVkJRVlVzUlVGQlJTeERRVUZETzNkQ1FVTmlMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNN2QwSkJRMnBETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTTdjVUpCUTJ4RE8ybENRVU5HTzJGQlEwWTdVMEZEUmp0UlFVTkVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzUkRMRWxCUVVrc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOMFFpeFZRVUZWTEVWQlFVY3NRMEZCUXp0blFrRkRaQ3hSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRPMkZCUXpGQ08xTkJRMFk3VVVGRFJDeFBRVUZQTEVWQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVVc1JVRkJSU3hKUVVGSkxGZEJRVmNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1NVRkJTU3hYUVVGWExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVTXNRMEZCUXp0SlFVTjBSU3hEUVVGRE8wbEJSVTBzV1VGQldTeERRVUZETEZsQlFXZERPMUZCUTJ4RUxFMUJRVTBzV1VGQldTeEhRVUY1UXl4RlFVRkZMRU5CUVVNN1VVRkRPVVFzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRiRU1zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEZGtNc1dVRkJXU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRiRVlzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTnNReXhaUVVGWkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dFpRVU4yUXl4WlFVRlpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0VFFVTnVSanRSUVVORUxFOUJRVThzV1VGQldTeERRVUZETzBsQlEzUkNMRU5CUVVNN1NVRkZUeXhSUVVGUkxFTkJRVU1zV1VGQlowTXNSVUZCUlN4TFFVRmhPMUZCUXpsRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhMUVVGTExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZET1VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRka0lzV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRPMU5CUXk5RE8wbEJRMGdzUTBGQlF6dEpRVVZQTEZOQlFWTXNRMEZCUXl4WlFVRm5RenRSUVVOb1JDeExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVTdXVUZEZWtNc1RVRkJUU3hIUVVGSExFZEJRVWNzV1VGQldTeERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRPMWxCUTI1RExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTmFMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNN1owSkJRemxDTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJVU3hEUVVGRExFTkJRVU03V1VGRGRrSXNTVUZCU1N4SFFVRkhMRXRCUVVzc1EwRkJRenRuUWtGQlJTeFRRVUZUTzFsQlEzaENMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNN1owSkJRemxDTEZsQlFWa3NRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJReXhEUVVGUkxFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFVTTdVMEZETTBNN1NVRkRTQ3hEUVVGRE8wbEJSVThzVFVGQlRTeERRVUZETEZsQlFXZERMRVZCUVVVc1MwRkJZVHRSUVVNMVJDeE5RVUZOTEdOQlFXTXNSMEZCZFVJc1JVRkJSU3hEUVVGRE8xRkJRemxETEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRemRFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNKRExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhMUVVGTExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZET1VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xGTkJRVk03V1VGRFdDd3JRa0ZCSzBJN1dVRkRMMElzWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVOMlFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUzBGQlN5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVNNVFpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTjJRaXhUUVVGVE8yZENRVU5ZTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zV1VGQldTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHTkJRV003WjBKQlEyNUZMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVkQlFVY3NVVUZCVVN4RFFVRkRMRWRCUVVjc1VVRkJVU3hIUVVGSExFTkJRVU1zUlVGQlJUdHZRa0ZETjBNc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJRenR2UWtGRE0wSXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU03ZDBKQlEzQkNMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdiMEpCUTNwQ0xHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU03YVVKQlF6VkNPMkZCUTBZN1UwRkRSanRSUVVORUxFOUJRVThzWTBGQll5eERRVUZETzBsQlEzaENMRU5CUVVNN1NVRkZSQ3h0UkVGQmJVUTdTVUZGYmtRc1NVRkJTVHRKUVVWSkxFOUJRVThzUTBGQlF5eFpRVUZuUXp0UlFVTTVReXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVU3V1VGRGVrTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1dVRkJXU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETzFsQlEyNURMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNN1owSkJRemxDTEZsQlFWa3NRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJReXhEUVVGUkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZSTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFOQlF6bEhPMGxCUTBnc1EwRkJRenRKUVVWUExHTkJRV01zUTBGQlF5eFpRVUZuUXl4RlFVRkZMRU5CUVUwc1JVRkJSU3hEUVVGTk8xRkJRM0pGTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOYUxFMUJRVTBzWTBGQll5eEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUXpGRUxFMUJRVTBzV1VGQldTeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTNoRUxFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NZMEZCWXl4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRekZDTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlVTeERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETzFOQlEyaEZPMUZCUTBRc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRFlpeERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMU53WVhKelpVMWhkSEpwZUZKbGMzVnNkSDBnWm5KdmJTQW5MaTR2WkdsemRHRnVZMlV0YldGMGNtbDRMM053WVhKelpTMXRZWFJ5YVhndGMyVnlkbWxqWlNjN1hHNXBiWEJ2Y25RZ2UySnBiMHhoZVc5MWRIMGdabkp2YlNBbkxpOWlhVzh0YkdGNWIzVjBKenRjYm1sdGNHOXlkQ0I3VFVOTVQzQjBhVzl1Y3l3Z1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMGZTQm1jbTl0SUNjdUwzUjVjR1Z6Snp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUdSbFptRjFiSFJOUTB4UGNIUnBiMjV6T2lCTlEweFBjSFJwYjI1eklEMGdlMXh1SUNCbGVIQmhibVJHWVdOMGIzSTZJRElzWEc0Z0lHMWhlRWwwWlhKaGRHbHZibk02SURVc1hHNGdJR2x1Wm14aGRHVkdZV04wYjNJNklESXNYRzRnSUcxMWJIUkdZV04wYjNJNklERXNYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVFVOTVUzQmhjbk5sVW1Wa2RXTmxjaUI3WEc0Z0lIQnlhWFpoZEdVZ1gyOXdkR2x2Ym5NNklFMURURTl3ZEdsdmJuTTdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9iM0IwY3pvZ1VHRnlkR2xoYkR4TlEweFBjSFJwYjI1elBpQTlJSHQ5S1NCN1hHNGdJQ0FnZEdocGN5NWZiM0IwYVc5dWN5QTlJSHN1TGk1a1pXWmhkV3gwVFVOTVQzQjBhVzl1Y3l3Z0xpNHViM0IwYzMwN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1lYTjVibU1nZEhKaGJuTm1iM0p0S0hOd1lYSnpaVTFoZEhKcGVEb2dVM0JoY25ObFRXRjBjbWw0VW1WemRXeDBMQ0J1VW05M2N6b2diblZ0WW1WeUtTQjdYRzRnSUNBZ0x5OGdkR1Z6ZEZkdmNtdGxjazExYkhScGNHeDVLQ2s3WEc0Z0lDQWdMeThnY21WMGRYSnVJRzVsZHlCSmJuUXpNa0Z5Y21GNUtHNVNiM2R6S1R0Y2JpQWdJQ0JzWlhRZ2MzQmhjbk5sVDJKcVpXTjBJRDBnZEdocGN5NTBiMDlpYW1WamRFWnZjbTBvYzNCaGNuTmxUV0YwY21sNEtUdGNiaUFnSUNCcFppQW9kR2hwY3k1ZmIzQjBhVzl1Y3k1dFlYaEpkR1Z5WVhScGIyNXpJRDRnTUNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVoWkdSTWIyOXdjeWh6Y0dGeWMyVlBZbXBsWTNRc0lHNVNiM2R6S1R0Y2JpQWdJQ0FnSUhSb2FYTXVibTl5YldGc2FYcGxLSE53WVhKelpVOWlhbVZqZENrN1hHNGdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIUm9hWE11WDI5d2RHbHZibk11YldGNFNYUmxjbUYwYVc5dWN6c2dhU3NyS1NCN1hHNGdJQ0FnSUNBZ0lITndZWEp6WlU5aWFtVmpkQ0E5SUhSb2FYTXVaWGh3WVc1a0tITndZWEp6WlU5aWFtVmpkQ3dnYmxKdmQzTXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtbHVabXhoZEdVb2MzQmhjbk5sVDJKcVpXTjBLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXViM0p0WVd4cGVtVW9jM0JoY25ObFQySnFaV04wS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ2UyTnNkWE4wWlhKekxDQnBjeXdnYW5OOUlEMGdkR2hwY3k1aGMzTnBaMjVEYkhWemRHVnljeWh6Y0dGeWMyVlBZbXBsWTNRc0lHNVNiM2R6S1R0Y2JpQWdJQ0IwYUdsekxtTnZjbkpsWTNSRGJIVnpkR1Z5Y3loamJIVnpkR1Z5Y3lrN1hHNGdJQ0FnWTI5dWMzUWdaVzFpWldSa2FXNW5jeUE5SUdGM1lXbDBJSFJvYVhNdWJHRjViM1YwS0dOc2RYTjBaWEp6TENCemNHRnljMlZQWW1wbFkzUXNJRzVTYjNkektUdGNiaUFnSUNCeVpYUjFjbTRnZTJOc2RYTjBaWEp6TENCbGJXSmxaRmc2SUdWdFltVmtaR2x1WjNNdVpXMWlaV1JZTENCbGJXSmxaRms2SUdWdFltVmtaR2x1WjNNdVpXMWlaV1JaTENCcGN5d2dhbk45TzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCamIzSnlaV04wUTJ4MWMzUmxjbk1vWTJ4MWMzUmxjbk02SUc1MWJXSmxjbHRkS1NCN1hHNGdJQ0FnWTI5dWMzUWdZMngxYzNSbGNsTnBlbVZOWVhBNklIdGJYem9nYm5WdFltVnlYVG9nYm5WdFltVnlmU0E5SUh0OU8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ1kyeDFjM1JsY2lCdlppQmpiSFZ6ZEdWeWN5a2dlMXh1SUNBZ0lDQWdhV1lnS0NGamJIVnpkR1Z5VTJsNlpVMWhjRnRqYkhWemRHVnlYU2xjYmlBZ0lDQWdJQ0FnWTJ4MWMzUmxjbE5wZW1WTllYQmJZMngxYzNSbGNsMGdQU0F3TzF4dUlDQWdJQ0FnWTJ4MWMzUmxjbE5wZW1WTllYQmJZMngxYzNSbGNsMHJLenRjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnYzI5eWRHVmtTVzVrWlhobGN5QTlJRTlpYW1WamRDNXJaWGx6S0dOc2RYTjBaWEpUYVhwbFRXRndLUzV0WVhBb1RuVnRZbVZ5S1M1emIzSjBLQ2hoTENCaUtTQTlQaUJqYkhWemRHVnlVMmw2WlUxaGNGdGhYU0F0SUdOc2RYTjBaWEpUYVhwbFRXRndXMkpkS1R0Y2JpQWdJQ0JqYjI1emRDQmpiSFZ6ZEdWeVRXRndPaUI3VzE4NklHNTFiV0psY2wwNklHNTFiV0psY24wZ1BTQjdmVHRjYmlBZ0lDQnpiM0owWldSSmJtUmxlR1Z6TG1admNrVmhZMmdvS0dOc2RYTjBaWEpKWkhnc0lHa3BJRDArSUdOc2RYTjBaWEpOWVhCYlkyeDFjM1JsY2tsa2VGMGdQU0JwSUNzZ01TazdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmpiSFZ6ZEdWeWN5NXNaVzVuZEdnN0lHa3JLeWxjYmlBZ0lDQWdJR05zZFhOMFpYSnpXMmxkSUQwZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeWMxdHBYVjA3WEc0Z0lDQWdMeThnYkdWMElHTjFja05zZFhOMFpYSWdQU0F4TzF4dUlDQWdJQzh2SUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1kyeDFjM1JsY25NdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQXZMeUFnSUdsbUlDZ2hZMngxYzNSbGNrMWhjRnRqYkhWemRHVnljMXRwWFYwcElIdGNiaUFnSUNBdkx5QWdJQ0FnWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5YzF0cFhWMGdQU0JqZFhKRGJIVnpkR1Z5TzF4dUlDQWdJQzh2SUNBZ0lDQmpiSFZ6ZEdWeWMxdHBYU0E5SUdOMWNrTnNkWE4wWlhJN1hHNGdJQ0FnTHk4Z0lDQWdJR04xY2tOc2RYTjBaWElyS3p0Y2JpQWdJQ0F2THlBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnTHk4Z0lDQWdJR05zZFhOMFpYSnpXMmxkSUQwZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeWMxdHBYVjA3WEc0Z0lDQWdMeThnSUNCOVhHNGdJQ0FnTHk4Z2ZWeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCc1lYbHZkWFFvWTJ4MWMzUmxjbk02SUc1MWJXSmxjbHRkTENCemNHRnljMlZOWVhSeWFYZzZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ3dnYmxKdmQzTTZJRzUxYldKbGNpa2dlMXh1SUNBZ0lHTnZibk4wSUdWdFltVmtXQ0E5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvYmxKdmQzTXBMbVpwYkd3b01DazdYRzRnSUNBZ1kyOXVjM1FnWlcxaVpXUlpJRDBnYm1WM0lFWnNiMkYwTXpKQmNuSmhlU2h1VW05M2N5a3VabWxzYkNnd0tUdGNiaUFnSUNCamIyNXpkQ0JqYkhWemRHVnlUV0Z3T2lCN1cxODZJRzUxYldKbGNsMDZJRzUxYldKbGNsdGRmU0E5SUh0OU8xeHVJQ0FnSUdOc2RYTjBaWEp6TG1admNrVmhZMmdvS0dOc2RYTjBaWElzSUdrcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNnaFkyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeVhTbGNiaUFnSUNBZ0lDQWdZMngxYzNSbGNrMWhjRnRqYkhWemRHVnlYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ1kyeDFjM1JsY2sxaGNGdGpiSFZ6ZEdWeVhTNXdkWE5vS0drcE8xeHVJQ0FnSUgwcE8xeHVJQ0FnSUM4dklHTnZibk4wSUc1RGJIVnpkR1Z5Y3lBOUlFOWlhbVZqZEM1clpYbHpLR05zZFhOMFpYSk5ZWEFwTG14bGJtZDBhRHRjYmlBZ0lDQXZMeUJqYjI1emRDQndaWEpTYjNjZ1BTQk5ZWFJvTG1ac2IyOXlLRTFoZEdndWMzRnlkQ2h1UTJ4MWMzUmxjbk1wS1R0Y2JpQWdJQ0JzWlhRZ1kyeDFjM1JsY2s1MWJTQTlJREE3WEc0Z0lDQWdZMjl1YzNRZ2MyOXlkR1ZrUTJ4MWMzUmxjazVoYldWeklEMGdUMkpxWldOMExtdGxlWE1vWTJ4MWMzUmxjazFoY0NrN1hHNGdJQ0FnYzI5eWRHVmtRMngxYzNSbGNrNWhiV1Z6TG5OdmNuUW9LR0VzSUdJcElEMCtJR05zZFhOMFpYSk5ZWEJiWWlCaGN5QmhibmxkTG14bGJtZDBhQ0F0SUdOc2RYTjBaWEpOWVhCYllTQmhjeUJoYm5sZExteGxibWQwYUNrN1hHNGdJQ0FnYkdWMElIQmxjbEp2ZHlBOUlEWTdYRzVjYmlBZ0lDQnNaWFFnZVU5bVpuTmxkQ0E5SURBN1hHNGdJQ0FnWTI5dWMzUWdiR0Y1YjNWMFUybDZaU0E5SURVN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCamJIVnpkR1Z5VG1GdFpTQnZaaUJ6YjNKMFpXUkRiSFZ6ZEdWeVRtRnRaWE1wSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR05zZFhOMFpYSWdQU0JqYkhWemRHVnlUV0Z3VzJOc2RYTjBaWEpPWVcxbElHRnpJR0Z1ZVYwaE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWlcxaVpXUmthVzVuY3lBOUlHRjNZV2wwSUdKcGIweGhlVzkxZENoamJIVnpkR1Z5TENCemNHRnljMlZOWVhSeWFYZ3NJREF1TURBeEtUdGNiaUFnSUNBZ0lHbG1JQ2hqYkhWemRHVnlUblZ0SUQwOVBTQk5ZWFJvTG1ObGFXd29jR1Z5VW05M0lDOGdNUzQxS1NrZ2UxeHVJQ0FnSUNBZ0lDQmpiSFZ6ZEdWeVRuVnRJRDBnTUR0Y2JpQWdJQ0FnSUNBZ2VVOW1abk5sZENBclBTQnNZWGx2ZFhSVGFYcGxJQzhnY0dWeVVtOTNPMXh1SUNBZ0lDQWdJQ0J3WlhKU2IzY2dQU0JOWVhSb0xtTmxhV3dvY0dWeVVtOTNJQ29nTVM0MUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHTnZibk4wSUc5bVpuTmxkRmdnUFNBb0tHTnNkWE4wWlhKT2RXMGdKU0J3WlhKU2IzY3BJQ29nYkdGNWIzVjBVMmw2WlNBdklIQmxjbEp2ZHlrZ0tpQXhMalU3WEc0Z0lDQWdJQ0F2THlCamIyNXpkQ0J2Wm1aelpYUlpJRDBnVFdGMGFDNW1iRzl2Y2loamJIVnpkR1Z5VG5WdElDOGdjR1Z5VW05M0tTQXFJREk3WEc1Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1pXMWlaV1JrYVc1bmN5NWxiV0psWkZndWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnWlcxaVpXUllXMk5zZFhOMFpYSmJhVjFkSUQwZ1pXMWlaV1JrYVc1bmN5NWxiV0psWkZoYmFWMGdLaUJzWVhsdmRYUlRhWHBsSUM4Z2NHVnlVbTkzSUNzZ2IyWm1jMlYwV0R0Y2JpQWdJQ0FnSUNBZ1pXMWlaV1JaVzJOc2RYTjBaWEpiYVYxZElEMGdaVzFpWldSa2FXNW5jeTVsYldKbFpGbGJhVjBnS2lCc1lYbHZkWFJUYVhwbElDOGdjR1Z5VW05M0lDc2dlVTltWm5ObGREdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHTnNkWE4wWlhKT2RXMHJLenRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUh0bGJXSmxaRmdzSUdWdFltVmtXWDA3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUcxbGNtZGxRMngxYzNSbGNuTW9ZMngxYzNSbGNuTTZJRzUxYldKbGNsdGRMQ0JwT2lCdWRXMWlaWElzSUdvNklHNTFiV0psY2lrZ2UxeHVJQ0FnSUdOdmJuTjBJR2xEYkhWemRHVnlJRDBnWTJ4MWMzUmxjbk5iYVYwN1hHNGdJQ0FnWTI5dWMzUWdha05zZFhOMFpYSWdQU0JqYkhWemRHVnljMXRxWFR0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JySUQwZ01Ec2dheUE4SUdOc2RYTjBaWEp6TG14bGJtZDBhRHNnYXlzcktTQjdYRzRnSUNBZ0lDQnBaaUFvWTJ4MWMzUmxjbk5iYTEwZ1BUMDlJR3BEYkhWemRHVnlLVnh1SUNBZ0lDQWdJQ0JqYkhWemRHVnljMXRyWFNBOUlHbERiSFZ6ZEdWeU8xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCd2RXSnNhV01nWVhOemFXZHVRMngxYzNSbGNuTW9jM0JoY25ObFRXRjBjbWw0T2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRc0lHNVNiM2R6T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JzWlhRZ1kyeDFjM1JsY2s1MWJTQTlJREE3WEc0Z0lDQWdZMjl1YzNRZ2FYTTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJQ0FnWTI5dWMzUWdhbk02SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUNBZ1kyOXVjM1FnYjNKa1pYSWdQU0JOWVhSb0xtWnNiMjl5S0UxaGRHZ3ViV0Y0S0UxaGRHZ3ViRzluTVRBb2JsSnZkM01wTENBeUtTa2dLeUF4TzF4dUlDQWdJR052Ym5OMElHMXBiazl5WkdWeUlEMGdUV0YwYUM1d2IzY29NVEFzSUc5eVpHVnlLVHRjYmlBZ0lDQmpiMjV6ZENCamJIVnpkR1Z5Y3pvZ2JuVnRZbVZ5VzEwZ1BTQnVaWGNnUVhKeVlYa29ibEp2ZDNNcExtWnBiR3dvTFRFcE8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FTQnZaaUJQWW1wbFkzUXVhMlY1Y3loemNHRnljMlZOWVhSeWFYZ3BLU0I3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdvZ2IyWWdUMkpxWldOMExtdGxlWE1vYzNCaGNuTmxUV0YwY21sNFcya2dZWE1nWVc1NVhTa3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tFMWhkR2d1Y205MWJtUW9jM0JoY25ObFRXRjBjbWw0VzJrZ1lYTWdZVzU1WFZ0cUlHRnpJR0Z1ZVYwZ0tpQnRhVzVQY21SbGNpa2dMeUJ0YVc1UGNtUmxjaUErSURBZ0ppWmNiaUFnSUNBZ0lDQWdJQ0J6Y0dGeWMyVk5ZWFJ5YVhoYmFTQmhjeUJoYm5sZFcyb2dZWE1nWVc1NVhTQWhQVDBnVG5WdFltVnlLR2twSUNZbUlFNTFiV0psY2locUtTQStJRTUxYldKbGNpaHBLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHbHpMbkIxYzJnb1RuVnRZbVZ5S0drcEtUdGNiaUFnSUNBZ0lDQWdJQ0JxY3k1d2RYTm9LRTUxYldKbGNpaHFLU2s3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLR05zZFhOMFpYSnpXMDUxYldKbGNpaHBLVjBnSVQwOUlDMHhJQ1ltSUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhxS1YwZ0lUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1kyeDFjM1JsY25OYlRuVnRZbVZ5S0drcFhTQWhQVDBnWTJ4MWMzUmxjbk5iVG5WdFltVnlLR29wWFNsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXRaWEpuWlVOc2RYTjBaWEp6S0dOc2RYTjBaWEp6TENCT2RXMWlaWElvYVNrc0lFNTFiV0psY2locUtTazdYRzRnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoamJIVnpkR1Z5YzF0T2RXMWlaWElvYVNsZElDRTlQU0F0TVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJ4MWMzUmxjbk5iVG5WdFltVnlLR29wWFNBOUlHTnNkWE4wWlhKelcwNTFiV0psY2locEtWMDdYRzRnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoamJIVnpkR1Z5YzF0T2RXMWlaWElvYWlsZElDRTlQU0F0TVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJ4MWMzUmxjbk5iVG5WdFltVnlLR2twWFNBOUlHTnNkWE4wWlhKelcwNTFiV0psY2locUtWMDdYRzRnSUNBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnNkWE4wWlhKT2RXMHJLenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnNkWE4wWlhKelcwNTFiV0psY2locEtWMGdQU0JqYkhWemRHVnlUblZ0TzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMngxYzNSbGNuTmJUblZ0WW1WeUtHb3BYU0E5SUdOc2RYTjBaWEpPZFcwN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lHWnZjaUFvYkdWMElHazlNRHNnYVNBOElHTnNkWE4wWlhKekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0JwWmlBb1kyeDFjM1JsY25OYmFWMGdQVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJR05zZFhOMFpYSk9kVzBnS3lzN1hHNGdJQ0FnSUNBZ0lHTnNkWE4wWlhKelcybGRJRDBnWTJ4MWMzUmxjazUxYlR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIdGpiSFZ6ZEdWeWN5d2dhWE02SUc1bGR5QlZhVzUwTXpKQmNuSmhlU2hwY3lrc0lHcHpPaUJ1WlhjZ1ZXbHVkRE15UVhKeVlYa29hbk1wZlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCMGIwOWlhbVZqZEVadmNtMG9jM0JoY25ObFRXRjBjbWw0T2lCVGNHRnljMlZOWVhSeWFYaFNaWE4xYkhRcE9pQlRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUWdlMXh1SUNBZ0lHTnZibk4wSUhOd1lYSnpaVTlpYW1WamREb2dlMXRmT2lCdWRXMWlaWEpkT2lCN1cxODZJRzUxYldKbGNsMDZJRzUxYldKbGNuMTlJRDBnZTMwN1hHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCemNHRnljMlZOWVhSeWFYZ3VhUzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLQ0Z6Y0dGeWMyVlBZbXBsWTNSYmMzQmhjbk5sVFdGMGNtbDRMbWxiYVYxZEtWeHVJQ0FnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtbGJhVjFkSUQwZ2UzMDdYRzRnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtbGJhVjFkVzNOd1lYSnpaVTFoZEhKcGVDNXFXMmxkWFNBOUlERWdMU0J6Y0dGeWMyVk5ZWFJ5YVhndVpHbHpkR0Z1WTJWYmFWMDdYRzRnSUNBZ0lDQnBaaUFvSVhOd1lYSnpaVTlpYW1WamRGdHpjR0Z5YzJWTllYUnlhWGd1YWx0cFhWMHBYRzRnSUNBZ0lDQWdJSE53WVhKelpVOWlhbVZqZEZ0emNHRnljMlZOWVhSeWFYZ3VhbHRwWFYwZ1BTQjdmVHRjYmlBZ0lDQWdJSE53WVhKelpVOWlhbVZqZEZ0emNHRnljMlZOWVhSeWFYZ3VhbHRwWFYxYmMzQmhjbk5sVFdGMGNtbDRMbWxiYVYxZElEMGdNU0F0SUhOd1lYSnpaVTFoZEhKcGVDNWthWE4wWVc1alpWdHBYVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhOd1lYSnpaVTlpYW1WamREdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZV1JrVEc5dmNITW9jM0JoY25ObFQySnFaV04wT2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRc0lHNVNiM2R6T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUc1U2IzZHpPeUJwS3lzcElIdGNiaUFnSUNBZ0lHbG1JQ2doYzNCaGNuTmxUMkpxWldOMFcybGRLVnh1SUNBZ0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNSYmFWMGdQU0I3ZlR0Y2JpQWdJQ0FnSUhOd1lYSnpaVTlpYW1WamRGdHBYVnRwWFNBOUlIUm9hWE11WDI5d2RHbHZibk11YlhWc2RFWmhZM1J2Y2p0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUc1dmNtMWhiR2w2WlNoemNHRnljMlZQWW1wbFkzUTZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ2tnZTF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYVNCdlppQlBZbXBsWTNRdWEyVjVjeWh6Y0dGeWMyVlBZbXBsWTNRcEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeWIzY2dQU0J6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZE8xeHVJQ0FnSUNBZ2JHVjBJSE4xYlNBOUlEQTdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR29nYjJZZ1QySnFaV04wTG10bGVYTW9jbTkzS1NsY2JpQWdJQ0FnSUNBZ2MzVnRJQ3M5SUhKdmQxdHFJR0Z6SUdGdWVWMDdYRzRnSUNBZ0lDQnBaaUFvYzNWdElEMDlQU0F3S1NCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FpQnZaaUJQWW1wbFkzUXVhMlY1Y3loeWIzY3BLVnh1SUNBZ0lDQWdJQ0J6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZFcyb2dZWE1nWVc1NVhTQXZQU0J6ZFcwN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCbGVIQmhibVFvYzNCaGNuTmxUMkpxWldOME9pQlRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUXNJRzVTYjNkek9pQnVkVzFpWlhJcElIdGNiaUFnSUNCamIyNXpkQ0JsZUhCaGJtUmxaRTlpYW1WamREb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBJRDBnZTMwN1hHNGdJQ0FnWTI5dWMzUWdiM0prWlhJZ1BTQk5ZWFJvTG1ac2IyOXlLRTFoZEdndWJXRjRLRTFoZEdndWJHOW5NVEFvYmxKdmQzTXBMQ0F5S1NrZ0t5QXhPMXh1SUNBZ0lHTnZibk4wSUcxcGJrOXlaR1Z5SUQwZ1RXRjBhQzV3YjNjb01UQXNJRzl5WkdWeUtUdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHNVNiM2R6T3lCcEt5c3BJSHRjYmlBZ0lDQWdJR2xtSUNnaGMzQmhjbk5sVDJKcVpXTjBXMmxkS1Z4dUlDQWdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JpQWdJQ0FnSUM4dklHTnZibk4wSUhKdmR5QTlJSE53WVhKelpVOWlhbVZqZEZ0cFhUdGNiaUFnSUNBZ0lHVjRjR0Z1WkdWa1QySnFaV04wVzJsZElEMGdlMzA3WEc0Z0lDQWdJQ0JtYjNJZ0tHeGxkQ0JxSUQwZ2FUc2dhaUE4SUc1U2IzZHpPeUJxS3lzcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGemNHRnljMlZQWW1wbFkzUmJhVjAvTGx0cVhTbGNiaUFnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdkbUZzSUQwZ2RHaHBjeTVuWlhSRmVIQmhibVJXWVd4MVpTaHpjR0Z5YzJWUFltcGxZM1FzSUdrc0lHb3BPeUF2TDNCeWRXNXBibWNnYzNSbGNGeHVJQ0FnSUNBZ0lDQnBaaUFvVFdGMGFDNXliM1Z1WkNoMllXd2dLaUJ0YVc1UGNtUmxjaWtnTHlCdGFXNVBjbVJsY2lBK0lEQXBJSHRjYmlBZ0lDQWdJQ0FnSUNCbGVIQmhibVJsWkU5aWFtVmpkRnRwWFZ0cVhTQTlJSFpoYkR0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvSVdWNGNHRnVaR1ZrVDJKcVpXTjBXMnBkS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdaWGh3WVc1a1pXUlBZbXBsWTNSYmFsMGdQU0I3ZlR0Y2JpQWdJQ0FnSUNBZ0lDQmxlSEJoYm1SbFpFOWlhbVZqZEZ0cVhWdHBYU0E5SUhaaGJEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWlhod1lXNWtaV1JQWW1wbFkzUTdYRzRnSUgxY2JseHVJQ0F2THlCd2NtbDJZWFJsSUhCeWRXNWxLSEp2ZHpvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMFcyNTFiV0psY2wwcElIdGNibHh1SUNBdkx5QjlYRzVjYmlBZ2NISnBkbUYwWlNCcGJtWnNZWFJsS0hOd1lYSnpaVTlpYW1WamREb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBLU0I3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JwSUc5bUlFOWlhbVZqZEM1clpYbHpLSE53WVhKelpVOWlhbVZqZENrcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhKdmR5QTlJSE53WVhKelpVOWlhbVZqZEZ0cElHRnpJR0Z1ZVYwN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHb2diMllnVDJKcVpXTjBMbXRsZVhNb2NtOTNLU2xjYmlBZ0lDQWdJQ0FnYzNCaGNuTmxUMkpxWldOMFcya2dZWE1nWVc1NVhWdHFJR0Z6SUdGdWVWMGdQU0JOWVhSb0xuQnZkeWh6Y0dGeWMyVlBZbXBsWTNSYmFTQmhjeUJoYm5sZFcyb2dZWE1nWVc1NVhTd2dkR2hwY3k1ZmIzQjBhVzl1Y3k1cGJtWnNZWFJsUm1GamRHOXlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR2RsZEVWNGNHRnVaRlpoYkhWbEtITndZWEp6WlU5aWFtVmpkRG9nVTNCaGNuTmxUV0YwY21sNFQySnFaV04wTENCcE9pQmhibmtzSUdvNklHRnVlU2tnZTF4dUlDQWdJR3hsZENCMllXd2dQU0F3TzF4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5SSmJtUmxlR1Z6SUQwZ1QySnFaV04wTG10bGVYTW9jM0JoY25ObFQySnFaV04wVzJsZElEOC9JSHQ5S1R0Y2JpQWdJQ0JqYjI1emRDQnZkR2hsY2tsdVpHVjRaWE1nUFNCUFltcGxZM1F1YTJWNWN5aHpjR0Z5YzJWUFltcGxZM1JiYWwwZ1B6OGdlMzBwTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYXlCdlppQmpkWEp5Wlc1MFNXNWtaWGhsY3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLRzkwYUdWeVNXNWtaWGhsY3k1cGJtTnNkV1JsY3locktTbGNiaUFnSUNBZ0lDQWdkbUZzSUNzOUlITndZWEp6WlU5aWFtVmpkRnRwWFZ0cklHRnpJR0Z1ZVYwZ0tpQnpjR0Z5YzJWUFltcGxZM1JiYWwxYmF5QmhjeUJoYm5sZE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkbUZzTzF4dUlDQjlYRzU5WEc1Y2JpSmRmUT09IiwiaW1wb3J0IHsgU3BhcnNlTWF0cml4U2VydmljZSB9IGZyb20gJy4uL2Rpc3RhbmNlLW1hdHJpeC9zcGFyc2UtbWF0cml4LXNlcnZpY2UnO1xuaW1wb3J0IHsgTUNMU3BhcnNlUmVkdWNlciB9IGZyb20gJy4vbWFyY292LWNsdXN0ZXInO1xub25tZXNzYWdlID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgeyBkYXRhLCB0aHJlc2hvbGQsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kLCBkaXN0YW5jZUZuQXJncywgZGlzdGFuY2VGbnMsIG1heEl0ZXJhdGlvbnMgfSA9IGV2ZW50LmRhdGE7XG4gICAgY29uc3Qgc3BhcnNlID0gYXdhaXQgbmV3IFNwYXJzZU1hdHJpeFNlcnZpY2UoKVxuICAgICAgICAuY2FsY011bHRpQ29sdW1uKGRhdGEsIGRpc3RhbmNlRm5zLCB0aHJlc2hvbGQgLyAxMDAsIGRpc3RhbmNlRm5BcmdzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgbmV3IE1DTFNwYXJzZVJlZHVjZXIoeyBtYXhJdGVyYXRpb25zOiBtYXhJdGVyYXRpb25zID8/IDUgfSkudHJhbnNmb3JtKHNwYXJzZSwgZGF0YVswXS5sZW5ndGgpO1xuICAgIHBvc3RNZXNzYWdlKHsgcmVzIH0pO1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJXTnNMWGR2Y210bGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW0xamJDMTNiM0pyWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eEZRVUZETEcxQ1FVRnRRaXhGUVVGRExFMUJRVTBzTUVOQlFUQkRMRU5CUVVNN1FVRkhOMFVzVDBGQlR5eEZRVUZETEdkQ1FVRm5RaXhGUVVGRExFMUJRVTBzYTBKQlFXdENMRU5CUVVNN1FVRkZiRVFzVTBGQlV5eEhRVUZITEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1JVRkJSVHRKUVVNeFFpeE5RVUZOTEVWQlFVTXNTVUZCU1N4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVVc1kwRkJZeXhGUVVGRkxGZEJRVmNzUlVGQlJTeGhRVUZoTEVWQlFVTXNSMEZIYUVJc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF6dEpRVU14Uml4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzYlVKQlFXMUNMRVZCUVVVN1UwRkRNME1zWlVGQlpTeERRVUZETEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1UwRkJVeXhIUVVGSExFZEJRVWNzUlVGQlJTeGpRVUZqTEVWQlFVVXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdTVUZEYmtjc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExFVkJRVU1zWVVGQllTeEZRVUZGTEdGQlFXRXNTVUZCU1N4RFFVRkRMRVZCUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlF6bEhMRmRCUVZjc1EwRkJReXhGUVVGRExFZEJRVWNzUlVGQlF5eERRVUZETEVOQlFVTTdRVUZEY2tJc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdFRjR0Z5YzJWTllYUnlhWGhUWlhKMmFXTmxmU0JtY205dElDY3VMaTlrYVhOMFlXNWpaUzF0WVhSeWFYZ3ZjM0JoY25ObExXMWhkSEpwZUMxelpYSjJhV05sSnp0Y2JtbHRjRzl5ZENCN1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkgwZ1puSnZiU0FuTGk0dlpHbHpkR0Z1WTJVdGJXRjBjbWw0TDNSNWNHVnpKenRjYm1sdGNHOXlkQ0I3UzI1dmQyNU5aWFJ5YVdOemZTQm1jbTl0SUNjdUxpOTBlWEJsWkMxdFpYUnlhV056Snp0Y2JtbHRjRzl5ZENCN1RVTk1VM0JoY25ObFVtVmtkV05sY24wZ1puSnZiU0FuTGk5dFlYSmpiM1l0WTJ4MWMzUmxjaWM3WEc1Y2JtOXViV1Z6YzJGblpTQTlJR0Z6ZVc1aklDaGxkbVZ1ZENrZ1BUNGdlMXh1SUNCamIyNXpkQ0I3WkdGMFlTd2dkR2h5WlhOb2IyeGtMQ0IzWldsbmFIUnpMQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ3dnWkdsemRHRnVZMlZHYmtGeVozTXNJR1JwYzNSaGJtTmxSbTV6TENCdFlYaEpkR1Z5WVhScGIyNXpmVHBjYmlBZ0lIdGtZWFJoT2lCaGJubGJYVnRkTENCMGFISmxjMmh2YkdRNklHNTFiV0psY2l4Y2JpQWdJQ0IzWldsbmFIUnpPaUJ1ZFcxaVpYSmJYU3dnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlE2SUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFzWEc0Z0lDQWdaR2x6ZEdGdVkyVkdibk02SUV0dWIzZHVUV1YwY21samMxdGRMQ0JrYVhOMFlXNWpaVVp1UVhKbmN6b2dZVzU1VzEwc0lHMWhlRWwwWlhKaGRHbHZibk02SUc1MWJXSmxjbjBnUFNCbGRtVnVkQzVrWVhSaE8xeHVJQ0JqYjI1emRDQnpjR0Z5YzJVZ1BTQmhkMkZwZENCdVpYY2dVM0JoY25ObFRXRjBjbWw0VTJWeWRtbGpaU2dwWEc0Z0lDQWdMbU5oYkdOTmRXeDBhVU52YkhWdGJpaGtZWFJoTENCa2FYTjBZVzVqWlVadWN5d2dkR2h5WlhOb2IyeGtJQzhnTVRBd0xDQmthWE4wWVc1alpVWnVRWEpuY3l3Z2QyVnBaMmgwY3l3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRcE8xeHVJQ0JqYjI1emRDQnlaWE1nUFNCaGQyRnBkQ0J1WlhjZ1RVTk1VM0JoY25ObFVtVmtkV05sY2loN2JXRjRTWFJsY21GMGFXOXVjem9nYldGNFNYUmxjbUYwYVc5dWN5QS9QeUExZlNrdWRISmhibk5tYjNKdEtITndZWEp6WlN3Z1pHRjBZVnN3WFM1c1pXNW5kR2dwTzF4dUlDQndiM04wVFdWemMyRm5aU2g3Y21WemZTazdYRzU5TzF4dUlsMTkiXSwibmFtZXMiOlsiRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwiY2h1bmtJZCIsImciLCJnbG9iYWxUaGlzIiwidGhpcyIsIkZ1bmN0aW9uIiwiZSIsIndpbmRvdyIsIm8iLCJvYmoiLCJwcm9wIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwic2NyaXB0VXJsIiwiaW1wb3J0U2NyaXB0cyIsImxvY2F0aW9uIiwiZG9jdW1lbnQiLCJjdXJyZW50U2NyaXB0Iiwic3JjIiwic2NyaXB0cyIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwibGVuZ3RoIiwiaSIsIkVycm9yIiwicmVwbGFjZSIsInAiLCJiIiwic2VsZiIsImlzTmlsIiwieCIsImluc2VydFNtYWxsZXIiLCJkaXN0YW5jZXNBciIsImluZGV4ZXMiLCJudW0iLCJpbmRleCIsIm5ld1Bvc2l0aW9uIiwiZmluZEluZGV4IiwidiIsInBvcCIsInNwbGljZSIsIlNwYXJzZU1hdHJpeFNlcnZpY2UiLCJjb25zdHJ1Y3RvciIsIl93b3JrZXJDb3VudCIsIk1hdGgiLCJtYXgiLCJuYXZpZ2F0b3IiLCJoYXJkd2FyZUNvbmN1cnJlbmN5IiwiY2FsY011bHRpQ29sdW1uIiwidmFsdWVzIiwiZm5OYW1lcyIsInRocmVzaG9sZCIsIm9wdHMiLCJ3ZWlnaHRzIiwiYWdncmVnYXRpb25NZXRob2QiLCJFVUNMSURFQU4iLCJtYXRTaXplIiwiY2h1bmtTaXplIiwiZmxvb3IiLCJtaW5UaHJlc2hvbGQiLCJnZXRNaW5pbWFsVGhyZXNob2xkIiwiY29uc29sZSIsImxvZyIsImZvckVhY2giLCJfIiwicHJvbWlzZXMiLCJBcnJheSIsIndvcmtlcnMiLCJmaWxsIiwibWFwIiwiV29ya2VyIiwiVVJMIiwiaWR4IiwiUHJvbWlzZSIsInJlc29sdmVXb3JrZXIiLCJyZWplY3RXb3JrZXIiLCJzdGFydElkeCIsImVuZElkeCIsIkludDMyQXJyYXkiLCJqIiwiZGlzdGFuY2UiLCJGbG9hdDMyQXJyYXkiLCJwb3N0TWVzc2FnZSIsIm9ubWVzc2FnZSIsImRhdGEiLCJlcnJvciIsInRlcm1pbmF0ZSIsInJlc3VsdHMiLCJhbGwiLCJmdWxsU2l6ZSIsInJlZHVjZSIsImFjYyIsInZhbCIsIm9mZnNldCIsInJlcyIsInNldCIsImNhbGMiLCJmbk5hbWUiLCJnZXRLTk4iLCJuTmVpZ2hib3VycyIsIm11bHRpQ29sdW1uS05OIiwiZ2V0VGhyZXNob2xkS05OIiwibXVsdGlDb2x1bW5UaHJlc2hvbGRLbm4iLCJzb21lIiwia25uRGlzdGFuY2VzIiwia25uSW5kZXhlcyIsImtublNpemVzIiwia25uUmVzIiwiZ2V0U2FtcGxlRGlzdGFuY2VzIiwidGhyZXNob2xkV29ya2VycyIsIm1heFNhbXBsZVNpemUiLCJzYW1wbGVTaXNlIiwibWluIiwidGVzdFNldFNpemVQZXJXb3JrZXIiLCJ0UHJvbWlzZXMiLCJzYW1wbGVMZW5ndGgiLCJzb3J0IiwidyIsImNhbGNTeW5jIiwiZGlzdGFuY2VGbiIsImRpc3RhbmNlcyIsImNudCIsIm1pIiwibWoiLCJ2YWx1ZSIsInB1c2giLCJhc3luYyIsImJpb0xheW91dCIsImNsdXN0ZXIiLCJzcGFyc2VPYmplY3QiLCJuIiwiaXMiLCJqcyIsImEiLCJlbWJlZFgiLCJyYW5kb20iLCJlbWJlZFkiLCJ4VmVsb2NpdGllcyIsInlWZWxvY2l0aWVzIiwidGVtcGVyYXR1cmUiLCJkeCIsImR5IiwiYWJzIiwidmVjU2l6ZSIsInNxcnQiLCJtaW5YIiwibWluWSIsIm1heFgiLCJtYXhZIiwicmFuZ2VYIiwicmFuZ2VZIiwiZ2V0TGF5b3V0RW1iZWRkaW5ncyIsImRlZmF1bHRNQ0xPcHRpb25zIiwiZXhwYW5kRmFjdG9yIiwibWF4SXRlcmF0aW9ucyIsImluZmxhdGVGYWN0b3IiLCJtdWx0RmFjdG9yIiwiTUNMU3BhcnNlUmVkdWNlciIsIl9vcHRpb25zIiwidHJhbnNmb3JtIiwic3BhcnNlTWF0cml4IiwiblJvd3MiLCJ0b09iamVjdEZvcm0iLCJhZGRMb29wcyIsIm5vcm1hbGl6ZSIsImV4cGFuZCIsImluZmxhdGUiLCJjbHVzdGVycyIsImFzc2lnbkNsdXN0ZXJzIiwiY29ycmVjdENsdXN0ZXJzIiwiZW1iZWRkaW5ncyIsImxheW91dCIsImNsdXN0ZXJTaXplTWFwIiwic29ydGVkSW5kZXhlcyIsImtleXMiLCJOdW1iZXIiLCJjbHVzdGVyTWFwIiwiY2x1c3RlcklkeCIsImNsdXN0ZXJOdW0iLCJzb3J0ZWRDbHVzdGVyTmFtZXMiLCJwZXJSb3ciLCJ5T2Zmc2V0IiwiY2x1c3Rlck5hbWUiLCJjZWlsIiwib2Zmc2V0WCIsIm1lcmdlQ2x1c3RlcnMiLCJpQ2x1c3RlciIsImpDbHVzdGVyIiwiayIsIm9yZGVyIiwibG9nMTAiLCJtaW5PcmRlciIsInBvdyIsInJvdW5kIiwiVWludDMyQXJyYXkiLCJyb3ciLCJzdW0iLCJleHBhbmRlZE9iamVjdCIsImdldEV4cGFuZFZhbHVlIiwiY3VycmVudEluZGV4ZXMiLCJvdGhlckluZGV4ZXMiLCJpbmNsdWRlcyIsImV2ZW50IiwiZGlzdGFuY2VGbkFyZ3MiLCJkaXN0YW5jZUZucyIsInNwYXJzZSJdLCJzb3VyY2VSb290IjoiIn0=