Skip to content

Instantly share code, notes, and snippets.

@realazthat
Last active October 10, 2016 22:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save realazthat/454516c620f2874840cf9dc903aa3ecf to your computer and use it in GitHub Desktop.
Save realazthat/454516c620f2874840cf9dc903aa3ecf to your computer and use it in GitHub Desktop.
requirebin sketch
const quad = require('glsl-quad');
const regl = require('regl')();
let frag = `
THIS IS AN OBVIOUSLY BAD SHADER.
IT SHOULD THROW AN ERROR.
BUT REGL ONLY THROWS AN ERROR IN DEBUG MODE.
WHICH MEANS WE WILL ONLY SEE A WARNING. (CHECK
THE CONSOLE).
CAN WE GET REQUIREBIN
TO USE DEBUG MODE?
`;
let draw = regl({
vert: quad.shader.vert,
frag: frag,
attributes: {
a_position: quad.verts,
a_uv: quad.uvs
},
elements: quad.indices,
uniforms: {
u_clip_y: 1
}
});
draw();
setTimeout(function(){
;require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"glsl-quad":[function(require,module,exports){
const verts = [
[-1.0, -1.0],
[+1.0, -1.0],
[-1.0, +1.0],
[-1.0, +1.0],
[+1.0, -1.0],
[+1.0, +1.0]
];
const uvs = [
[0.0, 0.0],
[1.0, 0.0],
[0.0, 1.0],
[0.0, 1.0],
[1.0, 0.0],
[1.0, 1.0]
];
const indices = [
[0, 1, 2],
[3, 4, 5]
];
const vshader = `
precision mediump float;
attribute vec2 a_position;
attribute vec2 a_uv;
uniform float u_clip_y;
varying vec2 v_uv;
void main() {
v_uv = a_uv;
gl_Position = vec4(a_position * vec2(1,u_clip_y), 0, 1);
}
`;
const fshader = `
precision mediump float;
varying vec2 v_uv;
uniform sampler2D u_tex;
void main () {
gl_FragColor = texture2D(u_tex,v_uv);
}
`;
const showUVsFshader = `
precision mediump float;
varying vec2 v_uv;
void main () {
gl_FragColor = vec4(v_uv,0,1);
}
`;
const showPositionsVshader = `
precision mediump float;
attribute vec2 a_position;
uniform float u_clip_y;
varying vec2 v_uv;
void main() {
gl_Position = vec4(a_position * vec2(1,u_clip_y), 0, 1);
v_uv = gl_Position.xy;
}
`;
const showPositionsFshader = `
precision mediump float;
varying vec2 v_uv;
void main () {
gl_FragColor = vec4(v_uv,0,1);
}
`;
const directionsDataUri = `
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAA
BACAIAAAAlC+aJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQ
UAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAEbSURBVGhD7dhRDsIgEI
RhjubNPHqlHUTAdjfRWRKa+UIirQnd376Z0vZZG1vQsfvB76WAa3
En3yug3GHD0HX6gIZCAaYaEGdSQM2g9yjApADfpIBhTzQvIIgCTA
rwKcCkAJ8CTArwKcCkAN/56Y/8XAZCwH7AsS6sEDBseisEYF1YIW
DY9Lq7eW6Mjk29/Bk/YD+vO7Bc/D/rKULAqSbj80tHrOehPC9mjY
/krhkBeBF4HvZE6CgXRJgeW3wAPYMf0IwO1NO/RL2BhgJMCvApwK
QAnwJMCvApwKQAnwJMCvApwNQGYE/vmRowbCgUYLpbQHvJMi8gSN
TpmLsGxGWsH9Aq90gwfW1gwv9zx+qUr0mWD8hCps/uE5DSC/pgVD
kvIARVAAAAAElFTkSuQmCC`.replace(/\s*/g, '');
const bitmaps = {
directions: {uri: directionsDataUri}
};
module.exports = {verts, indices, uvs, shader: {vert: vshader, frag: fshader},
show: {
uvs: {frag: showUVsFshader, vert: vshader},
positions: {frag: showPositionsFshader, vert: showPositionsVshader}
},
bitmaps};
},{}]},{},[])
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2hvbWUvYWRtaW4vYnJvd3NlcmlmeS1jZG4vbm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2Jyb3dzZXItcGFjay9fcHJlbHVkZS5qcyIsImdsc2wtcXVhZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIlxuY29uc3QgdmVydHMgPSBbXG4gIFstMS4wLCAtMS4wXSxcbiAgWysxLjAsIC0xLjBdLFxuICBbLTEuMCwgKzEuMF0sXG4gIFstMS4wLCArMS4wXSxcbiAgWysxLjAsIC0xLjBdLFxuICBbKzEuMCwgKzEuMF1cbl07XG5cbmNvbnN0IHV2cyA9IFtcbiAgWzAuMCwgMC4wXSxcbiAgWzEuMCwgMC4wXSxcbiAgWzAuMCwgMS4wXSxcbiAgWzAuMCwgMS4wXSxcbiAgWzEuMCwgMC4wXSxcbiAgWzEuMCwgMS4wXVxuXTtcblxuY29uc3QgaW5kaWNlcyA9IFtcbiAgWzAsIDEsIDJdLFxuICBbMywgNCwgNV1cbl07XG5cbmNvbnN0IHZzaGFkZXIgPSBgXG4gIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuICBhdHRyaWJ1dGUgdmVjMiBhX3Bvc2l0aW9uO1xuICBhdHRyaWJ1dGUgdmVjMiBhX3V2O1xuXG4gIHVuaWZvcm0gZmxvYXQgdV9jbGlwX3k7XG5cbiAgdmFyeWluZyB2ZWMyIHZfdXY7XG4gIFxuICB2b2lkIG1haW4oKSB7XG4gICAgdl91diA9IGFfdXY7XG4gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KGFfcG9zaXRpb24gKiB2ZWMyKDEsdV9jbGlwX3kpLCAwLCAxKTtcbiAgfVxuYDtcblxuY29uc3QgZnNoYWRlciA9IGBcbiAgcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4gIHZhcnlpbmcgdmVjMiB2X3V2O1xuICB1bmlmb3JtIHNhbXBsZXIyRCB1X3RleDtcbiAgdm9pZCBtYWluICgpIHtcbiAgICBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQodV90ZXgsdl91dik7XG4gIH1cbmA7XG5cbmNvbnN0IHNob3dVVnNGc2hhZGVyID0gYFxuICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiAgdmFyeWluZyB2ZWMyIHZfdXY7XG4gIHZvaWQgbWFpbiAoKSB7XG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCh2X3V2LDAsMSk7XG4gIH1cbmA7XG5cblxuY29uc3Qgc2hvd1Bvc2l0aW9uc1ZzaGFkZXIgPSBgXG4gIHByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuICBhdHRyaWJ1dGUgdmVjMiBhX3Bvc2l0aW9uO1xuXG4gIHVuaWZvcm0gZmxvYXQgdV9jbGlwX3k7XG5cbiAgdmFyeWluZyB2ZWMyIHZfdXY7XG4gIFxuICB2b2lkIG1haW4oKSB7XG4gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KGFfcG9zaXRpb24gKiB2ZWMyKDEsdV9jbGlwX3kpLCAwLCAxKTtcbiAgICB2X3V2ID0gZ2xfUG9zaXRpb24ueHk7XG4gIH1cbmA7XG5cbmNvbnN0IHNob3dQb3NpdGlvbnNGc2hhZGVyID0gYFxuICBwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiAgdmFyeWluZyB2ZWMyIHZfdXY7XG4gIHZvaWQgbWFpbiAoKSB7XG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCh2X3V2LDAsMSk7XG4gIH1cbmA7XG5cbmNvbnN0IGRpcmVjdGlvbnNEYXRhVXJpID0gYFxuZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQVxuQkFDQUlBQUFBbEMrYUpBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVxuVUFBQUFKY0VoWmN3QUFFblFBQUJKMEFkNW1IM2dBQUFFYlNVUkJWR2hEN2RoUkRzSWdFSVxuUmhqdWJOUEhxbEhVVEFkamZSV1JLYStVSWlyUW5kMzc2WjB2WlpHMXZRc2Z2Qjc2V0FhM1xuRW4zeXVnM0dIRDBIWDZnSVpDQWFZYUVHZFNRTTJnOXlqQXBBRGZwSUJoVHpRdklJZ0NUQVxucndLY0NrQUo4Q1RBcndLY0NrQU4vNTZZLzhYQVpDd0g3QXNTNnNFREJzZWlzRVlGMVlJV1xuRFk5THE3ZVc2TWprMjkvQmsvWUQrdk83QmMvRC9yS1VMQXFTYmo4MHRIck9laFBDOW1qWVxuL2tyaGtCZUJGNEh2WkU2Q2dYUkpnZVczd0FQWU1mMEl3TzFOTy9STDJCaGdKTUN2QXB3S1xuUUFud0pNQ3ZBcHdLUUFud0pNQ3ZBcHdOUUdZRS92bVJvd2JDZ1VZTHBiUUh2Sk1pOGdTTlxuVHBtTHNHeEdXc0g5QXE5MGd3ZlcxZ3d2OXp4K3FVcjBtV0Q4aENwcy91RTVEU0MvcGdWRFxua3ZJQVJWQUFBQUFFbEZUa1N1UW1DQ2AucmVwbGFjZSgvXFxzKi9nLCAnJyk7XG5cbmNvbnN0IGJpdG1hcHMgPSB7XG4gIGRpcmVjdGlvbnM6IHt1cmk6IGRpcmVjdGlvbnNEYXRhVXJpfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7dmVydHMsIGluZGljZXMsIHV2cywgc2hhZGVyOiB7dmVydDogdnNoYWRlciwgZnJhZzogZnNoYWRlcn0sXG4gICAgICAgICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgICAgIHV2czoge2ZyYWc6IHNob3dVVnNGc2hhZGVyLCB2ZXJ0OiB2c2hhZGVyfSxcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7ZnJhZzogc2hvd1Bvc2l0aW9uc0ZzaGFkZXIsIHZlcnQ6IHNob3dQb3NpdGlvbnNWc2hhZGVyfVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGJpdG1hcHN9O1xuIl19
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"regl":[function(require,module,exports){
(function (global){
(function(Oa){"object"===typeof exports&&"undefined"!==typeof module?module.exports=Oa():"function"===typeof define&&define.amd?define([],Oa):("undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:this).createREGL=Oa()})(function(){return function f(p,u,l){function k(c,a){if(!u[c]){if(!p[c]){var b="function"==typeof require&&require;if(!a&&b)return b(c,!0);if(x)return x(c,!0);b=Error("Cannot find module '"+c+"'");throw b.code="MODULE_NOT_FOUND",b;}b=
u[c]={exports:{}};p[c][0].call(b.exports,function(a){var b=p[c][1][a];return k(b?b:a)},b,b.exports,f,p,u,l)}return u[c].exports}for(var x="function"==typeof require&&require,r=0;r<l.length;r++)k(l[r]);return k}({1:[function(f,p,u){function l(){this.w=this.z=this.y=this.x=this.state=0;this.buffer=null;this.size=0;this.normalized=!1;this.type=5126;this.divisor=this.stride=this.offset=0}p.exports=function(k,x,r,c,a){k=r.maxAttributes;x=Array(k);for(r=0;r<k;++r)x[r]=new l;return{Record:l,scope:{},state:x}}},
{}],2:[function(f,p,u){function l(c){return t[Object.prototype.toString.call(c)]|0}function k(c,a){for(var b=0;b<a.length;++b)c[b]=a[b]}function x(c,a,b,k,l,r,x){for(var g=0,h=0;h<b;++h)for(var f=0;f<k;++f)c[g++]=a[l*h+r*f+x]}var r=f("./util/is-typed-array"),c=f("./util/is-ndarray"),a=f("./util/values"),b=f("./util/pool");u=f("./util/flatten");var F=u.flatten,M=u.shape,t=f("./constants/arraytypes.json"),y=f("./constants/dtypes.json"),g=f("./constants/usage.json"),E=[];E[5120]=1;E[5122]=2;E[5124]=
4;E[5121]=1;E[5123]=2;E[5125]=4;E[5126]=4;p.exports=function(f,t,n){function m(c){this.id=H++;this.buffer=f.createBuffer();this.type=c;this.usage=35044;this.byteLength=0;this.dimension=1;this.dtype=5121;this.persistentData=null;n.profile&&(this.stats={size:0})}function B(c,a,b){c.byteLength=a.byteLength;f.bufferData(c.type,a,b)}function p(a,h,m,f,g,n){a.usage=m;if(Array.isArray(h)){if(a.dtype=f||5126,0<h.length)if(Array.isArray(h[0])){g=M(h);for(var K=f=1;K<g.length;++K)f*=g[K];a.dimension=f;h=F(h,
g,a.dtype);B(a,h,m);n?a.persistentData=h:b.freeType(h)}else"number"===typeof h[0]?(a.dimension=g,g=b.allocType(a.dtype,h.length),k(g,h),B(a,g,m),n?a.persistentData=g:b.freeType(g)):r(h[0])&&(a.dimension=h[0].length,a.dtype=f||l(h[0])||5126,h=F(h,[h.length,h[0].length],a.dtype),B(a,h,m),n?a.persistentData=h:b.freeType(h))}else if(r(h))a.dtype=f||l(h),a.dimension=g,B(a,h,m),n&&(a.persistentData=new Uint8Array(new Uint8Array(h.buffer)));else if(c(h)){g=h.shape;var C=h.stride,K=h.offset,y=0,q=0,S=0,t=
0;1===g.length?(y=g[0],q=1,S=C[0],t=0):2===g.length&&(y=g[0],q=g[1],S=C[0],t=C[1]);a.dtype=f||l(h.data)||5126;a.dimension=q;g=b.allocType(a.dtype,y*q);x(g,h.data,y,q,S,t,K);B(a,g,m);n?a.persistentData=g:b.freeType(g)}}function L(c){t.bufferCount--;f.deleteBuffer(c.buffer);c.buffer=null;delete h[c.id]}var H=0,h={};m.prototype.bind=function(){f.bindBuffer(this.type,this.buffer)};m.prototype.destroy=function(){L(this)};var fa=[];n.profile&&(t.getTotalBufferSize=function(){var c=0;Object.keys(h).forEach(function(a){c+=
h[a].stats.size});return c});return{create:function(a,B,H,fa){function u(a){var h=35044,b=null,q=0,k=0,m=1;Array.isArray(a)||r(a)||c(a)?b=a:"number"===typeof a?q=a|0:a&&("data"in a&&(b=a.data),"usage"in a&&(h=g[a.usage]),"type"in a&&(k=y[a.type]),"dimension"in a&&(m=a.dimension|0),"length"in a&&(q=a.length|0));D.bind();b?p(D,b,h,k,m,fa):(f.bufferData(D.type,q,h),D.dtype=k||5121,D.usage=h,D.dimension=m,D.byteLength=q);n.profile&&(D.stats.size=D.byteLength*E[D.dtype]);return u}t.bufferCount++;var D=
new m(B);h[D.id]=D;H||u(a);u._reglType="buffer";u._buffer=D;u.subdata=function(a,h){var m=(h||0)|0,q;D.bind();if(Array.isArray(a)){if(0<a.length)if("number"===typeof a[0]){var g=b.allocType(D.dtype,a.length);k(g,a);f.bufferSubData(D.type,m,g);b.freeType(g)}else if(Array.isArray(a[0])||r(a[0]))q=M(a),g=F(a,q,D.dtype),f.bufferSubData(D.type,m,g),b.freeType(g)}else if(r(a))f.bufferSubData(D.type,m,a);else if(c(a)){q=a.shape;var n=a.stride,B=g=0,y=0,t=0;1===q.length?(g=q[0],B=1,y=n[0],t=0):2===q.length&&
(g=q[0],B=q[1],y=n[0],t=n[1]);q=Array.isArray(a.data)?D.dtype:l(a.data);q=b.allocType(q,g*B);x(q,a.data,g,B,y,t,a.offset);f.bufferSubData(D.type,m,q);b.freeType(q)}return u};n.profile&&(u.stats=D.stats);u.destroy=function(){L(D)};return u},createStream:function(a,c){var h=fa.pop();h||(h=new m(a));h.bind();p(h,c,35040,0,1,!1);return h},destroyStream:function(a){fa.push(a)},clear:function(){a(h).forEach(L);fa.forEach(L)},getBuffer:function(a){return a&&a._buffer instanceof m?a._buffer:null},restore:function(){a(h).forEach(function(a){a.buffer=
f.createBuffer();f.bindBuffer(a.type,a.buffer);f.bufferData(a.type,a.persistentData||a.byteLength,a.usage)})},_initBuffer:p}}},{"./constants/arraytypes.json":3,"./constants/dtypes.json":4,"./constants/usage.json":6,"./util/flatten":23,"./util/is-ndarray":25,"./util/is-typed-array":26,"./util/pool":28,"./util/values":31}],3:[function(f,p,u){p.exports={"[object Int8Array]":5120,"[object Int16Array]":5122,"[object Int32Array]":5124,"[object Uint8Array]":5121,"[object Uint8ClampedArray]":5121,"[object Uint16Array]":5123,
"[object Uint32Array]":5125,"[object Float32Array]":5126,"[object Float64Array]":5121,"[object ArrayBuffer]":5121}},{}],4:[function(f,p,u){p.exports={int8:5120,int16:5122,int32:5124,uint8:5121,uint16:5123,uint32:5125,"float":5126,float32:5126}},{}],5:[function(f,p,u){p.exports={points:0,point:0,lines:1,line:1,"line loop":2,"line strip":3,triangles:4,triangle:4,"triangle strip":5,"triangle fan":6}},{}],6:[function(f,p,u){p.exports={"static":35044,dynamic:35048,stream:35040}},{}],7:[function(f,p,u){function l(a){return Array.isArray(a)||
M(a)||t(a)}function k(a){return a.sort(function(a,c){return"viewport"===a?-1:"viewport"===c?1:a<c?-1:1})}function x(a,c,b,k){this.thisDep=a;this.contextDep=c;this.propDep=b;this.append=k}function r(a){return a&&!(a.thisDep||a.contextDep||a.propDep)}function c(a){return new x(!1,!1,!1,a)}function a(a,c){var b=a.type;return 0===b?(b=a.data.length,new x(!0,1<=b,2<=b,c)):4===b?(b=a.data,new x(b.thisDep,b.contextDep,b.propDep,c)):new x(3===b,2===b,1===b,c)}var b=f("./util/codegen"),F=f("./util/loop"),
M=f("./util/is-typed-array"),t=f("./util/is-ndarray"),y=f("./util/is-array-like"),g=f("./dynamic"),E=f("./constants/primitives.json"),C=f("./constants/dtypes.json"),N=["x","y","z","w"],n="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "),m={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,
"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},B={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},Y={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},L={cw:2304,ccw:2305},H=new x(!1,!1,!1,function(){});p.exports=function(h,
f,t,p,M,u,Z,D,K,Aa,va,q,S,ma,ga){function W(d){return d.replace(".","_")}function R(d,a,c){var b=W(d);w.push(d);z[b]=e[b]=!!c;wa[b]=a}function G(d,a,c){var b=W(d);w.push(d);Array.isArray(c)?(e[b]=c.slice(),z[b]=c.slice()):e[b]=z[b]=c;xa[b]=a}function ba(){var d=b(),a=d.link,c=d.global;d.id=Ra++;d.batchId="0";var h=a(Qa),A=d.shared={props:"a0"};Object.keys(Qa).forEach(function(d){A[d]=c.def(h,".",d)});var J=d.next={},P=d.current={};Object.keys(xa).forEach(function(d){Array.isArray(e[d])&&(J[d]=c.def(A.next,
".",d),P[d]=c.def(A.current,".",d))});var Sa=d.constants={};Object.keys(Ma).forEach(function(d){Sa[d]=c.def(JSON.stringify(Ma[d]))});d.invoke=function(e,I){switch(I.type){case 0:var c=["this",A.context,A.props,d.batchId];return e.def(a(I.data),".call(",c.slice(0,Math.max(I.data.length+1,4)),")");case 1:return e.def(A.props,I.data);case 2:return e.def(A.context,I.data);case 3:return e.def("this",I.data);case 4:return I.data.append(d,e),I.data.ref}};d.attribCache={};var I={};d.scopeAttrib=function(d){d=
f.id(d);if(d in I)return I[d];var e=Aa.scope[d];e||(e=Aa.scope[d]=new Ba);return I[d]=a(e)};return d}function na(d){var e=d["static"];d=d.dynamic;var b;if("profile"in e){var h=!!e.profile;b=c(function(d,e){return h});b.enable=h}else if("profile"in d){var A=d.profile;b=a(A,function(d,e){return d.invoke(e,A)})}return b}function ya(d,e){var b=d["static"],h=d.dynamic;if("framebuffer"in b){var A=b.framebuffer;return A?(A=D.getFramebuffer(A),c(function(d,e){var a=d.link(A),v=d.shared;e.set(v.framebuffer,
".next",a);v=v.context;e.set(v,".framebufferWidth",a+".width");e.set(v,".framebufferHeight",a+".height");return a})):c(function(d,e){var a=d.shared;e.set(a.framebuffer,".next","null");a=a.context;e.set(a,".framebufferWidth",a+".drawingBufferWidth");e.set(a,".framebufferHeight",a+".drawingBufferHeight");return"null"})}if("framebuffer"in h){var J=h.framebuffer;return a(J,function(d,e){var a=d.invoke(e,J),v=d.shared,c=v.framebuffer,a=e.def(c,".getFramebuffer(",a,")");e.set(c,".next",a);v=v.context;e.set(v,
".framebufferWidth",a+"?"+a+".width:"+v+".drawingBufferWidth");e.set(v,".framebufferHeight",a+"?"+a+".height:"+v+".drawingBufferHeight");return a})}return null}function U(d,e,c){function b(d){if(d in h){var I=h[d];d=!0;var c=I.x|0,qa=I.y|0,P,aa;"width"in I?P=I.width|0:d=!1;"height"in I?aa=I.height|0:d=!1;return new x(!d&&e&&e.thisDep,!d&&e&&e.contextDep,!d&&e&&e.propDep,function(d,e){var a=d.shared.context,v=P;"width"in I||(v=e.def(a,".","framebufferWidth","-",c));var b=aa;"height"in I||(b=e.def(a,
".","framebufferHeight","-",qa));return[c,qa,v,b]})}if(d in J){var w=J[d];d=a(w,function(d,e){var a=d.invoke(e,w),I=d.shared.context,c=e.def(a,".x|0"),v=e.def(a,".y|0"),qa=e.def('"width" in ',a,"?",a,".width|0:","(",I,".","framebufferWidth","-",c,")"),a=e.def('"height" in ',a,"?",a,".height|0:","(",I,".","framebufferHeight","-",v,")");return[c,v,qa,a]});e&&(d.thisDep=d.thisDep||e.thisDep,d.contextDep=d.contextDep||e.contextDep,d.propDep=d.propDep||e.propDep);return d}return e?new x(e.thisDep,e.contextDep,
e.propDep,function(d,e){var a=d.shared.context;return[0,0,e.def(a,".","framebufferWidth"),e.def(a,".","framebufferHeight")]}):null}var h=d["static"],J=d.dynamic;if(d=b("viewport")){var P=d;d=new x(d.thisDep,d.contextDep,d.propDep,function(d,e){var a=P.append(d,e),c=d.shared.context;e.set(c,".viewportWidth",a[2]);e.set(c,".viewportHeight",a[3]);return a})}return{viewport:d,scissor_box:b("scissor.box")}}function ia(d){function e(d){if(d in b){var I=f.id(b[d]);d=c(function(){return I});d.id=I;return d}if(d in
h){var v=h[d];return a(v,function(d,e){var a=d.invoke(e,v);return e.def(d.shared.strings,".id(",a,")")})}return null}var b=d["static"],h=d.dynamic,A=e("frag"),J=e("vert"),P=null;r(A)&&r(J)?(P=va.program(J.id,A.id),d=c(function(d,e){return d.link(P)})):d=new x(A&&A.thisDep||J&&J.thisDep,A&&A.contextDep||J&&J.contextDep,A&&A.propDep||J&&J.propDep,function(d,e){var a=d.shared.shader,c;c=A?A.append(d,e):e.def(a,".","frag");var v;v=J?J.append(d,e):e.def(a,".","vert");return e.def(a+".program("+v+","+c+
")")});return{frag:A,vert:J,progVar:d,program:P}}function ka(d,e){function b(d,e){if(d in h){var v=h[d]|0;return c(function(d,a){e&&(d.OFFSET=v);return v})}if(d in A){var qa=A[d];return a(qa,function(d,a){var c=d.invoke(a,qa);e&&(d.OFFSET=c);return c})}return e&&J?c(function(d,e){d.OFFSET="0";return 0}):null}var h=d["static"],A=d.dynamic,J=function(){if("elements"in h){var d=h.elements;l(d)?d=u.getElements(u.create(d,!0)):d&&(d=u.getElements(d));var e=c(function(e,a){if(d){var c=e.link(d);return e.ELEMENTS=
c}return e.ELEMENTS=null});e.value=d;return e}if("elements"in A){var v=A.elements;return a(v,function(d,e){var a=d.shared,c=a.isBufferArgs,a=a.elements,I=d.invoke(e,v),b=e.def("null"),c=e.def(c,"(",I,")"),I=d.cond(c).then(b,"=",a,".createStream(",I,");")["else"](b,"=",a,".getElements(",I,");");e.entry(I);e.exit(d.cond(c).then(a,".destroyStream(",b,");"));return d.ELEMENTS=b})}return null}(),P=b("offset",!0);return{elements:J,primitive:function(){if("primitive"in h){var d=h.primitive;return c(function(e,
a){return E[d]})}if("primitive"in A){var e=A.primitive;return a(e,function(d,a){var c=d.constants.primTypes,v=d.invoke(a,e);return a.def(c,"[",v,"]")})}return J?r(J)?J.value?c(function(d,e){return e.def(d.ELEMENTS,".primType")}):c(function(){return 4}):new x(J.thisDep,J.contextDep,J.propDep,function(d,e){var a=d.ELEMENTS;return e.def(a,"?",a,".primType:",4)}):null}(),count:function(){if("count"in h){var d=h.count|0;return c(function(){return d})}if("count"in A){var e=A.count;return a(e,function(d,
a){return d.invoke(a,e)})}return J?r(J)?J?P?new x(P.thisDep,P.contextDep,P.propDep,function(d,e){return e.def(d.ELEMENTS,".vertCount-",d.OFFSET)}):c(function(d,e){return e.def(d.ELEMENTS,".vertCount")}):c(function(){return-1}):new x(J.thisDep||P.thisDep,J.contextDep||P.contextDep,J.propDep||P.propDep,function(d,e){var a=d.ELEMENTS;return d.OFFSET?e.def(a,"?",a,".vertCount-",d.OFFSET,":-1"):e.def(a,"?",a,".vertCount:-1")}):null}(),instances:b("instances",!1),offset:P}}function ra(d,e){var b=d["static"],
h=d.dynamic,A={};w.forEach(function(d){function e(I,w){if(d in b){var qa=I(b[d]);A[v]=c(function(){return qa})}else if(d in h){var P=h[d];A[v]=a(P,function(d,e){return w(d,e,d.invoke(e,P))})}}var v=W(d);switch(d){case "cull.enable":case "blend.enable":case "dither":case "stencil.enable":case "depth.enable":case "scissor.enable":case "polygonOffset.enable":case "sample.alpha":case "sample.enable":case "depth.mask":return e(function(d){return d},function(d,e,a){return a});case "depth.func":return e(function(d){return B[d]},
function(d,e,a){return e.def(d.constants.compareFuncs,"[",a,"]")});case "depth.range":return e(function(d){return d},function(d,e,a){d=e.def("+",a,"[0]");e=e.def("+",a,"[1]");return[d,e]});case "blend.func":return e(function(d){return[m["srcRGB"in d?d.srcRGB:d.src],m["dstRGB"in d?d.dstRGB:d.dst],m["srcAlpha"in d?d.srcAlpha:d.src],m["dstAlpha"in d?d.dstAlpha:d.dst]]},function(d,e,a){function c(d,v){return e.def('"',d,v,'" in ',a,"?",a,".",d,v,":",a,".",d)}d=d.constants.blendFuncs;var v=c("src","RGB"),
b=c("dst","RGB"),v=e.def(d,"[",v,"]"),h=e.def(d,"[",c("src","Alpha"),"]"),b=e.def(d,"[",b,"]");d=e.def(d,"[",c("dst","Alpha"),"]");return[v,b,h,d]});case "blend.equation":return e(function(d){if("string"===typeof d)return[ca[d],ca[d]];if("object"===typeof d)return[ca[d.rgb],ca[d.alpha]]},function(d,e,a){var c=d.constants.blendEquations,v=e.def(),b=e.def();d=d.cond("typeof ",a,'==="string"');d.then(v,"=",b,"=",c,"[",a,"];");d["else"](v,"=",c,"[",a,".rgb];",b,"=",c,"[",a,".alpha];");e(d);return[v,b]});
case "blend.color":return e(function(d){return F(4,function(e){return+d[e]})},function(d,e,a){return F(4,function(d){return e.def("+",a,"[",d,"]")})});case "stencil.mask":return e(function(d){return d|0},function(d,e,a){return e.def(a,"|0")});case "stencil.func":return e(function(d){return[B[d.cmp||"keep"],d.ref||0,"mask"in d?d.mask:-1]},function(d,e,a){d=e.def('"cmp" in ',a,"?",d.constants.compareFuncs,"[",a,".cmp]",":",7680);var c=e.def(a,".ref|0");e=e.def('"mask" in ',a,"?",a,".mask|0:-1");return[d,
c,e]});case "stencil.opFront":case "stencil.opBack":return e(function(e){return["stencil.opBack"===d?1029:1028,Y[e.fail||"keep"],Y[e.zfail||"keep"],Y[e.zpass||"keep"]]},function(e,a,c){function v(d){return a.def('"',d,'" in ',c,"?",b,"[",c,".",d,"]:",7680)}var b=e.constants.stencilOps;return["stencil.opBack"===d?1029:1028,v("fail"),v("zfail"),v("zpass")]});case "polygonOffset.offset":return e(function(d){return[d.factor|0,d.units|0]},function(d,e,a){d=e.def(a,".factor|0");e=e.def(a,".units|0");return[d,
e]});case "cull.face":return e(function(d){var e=0;"front"===d?e=1028:"back"===d&&(e=1029);return e},function(d,e,a){return e.def(a,'==="front"?',1028,":",1029)});case "lineWidth":return e(function(d){return d},function(d,e,a){return a});case "frontFace":return e(function(d){return L[d]},function(d,e,a){return e.def(a+'==="cw"?2304:2305')});case "colorMask":return e(function(d){return d.map(function(d){return!!d})},function(d,e,a){return F(4,function(d){return"!!"+a+"["+d+"]"})});case "sample.coverage":return e(function(d){return["value"in
d?d.value:1,!!d.invert]},function(d,e,a){d=e.def('"value" in ',a,"?+",a,".value:1");e=e.def("!!",a,".invert");return[d,e]})}});return A}function sa(d,e){var b=d["static"],h=d.dynamic,A={};Object.keys(b).forEach(function(d){var e=b[d],a;if("number"===typeof e||"boolean"===typeof e)a=c(function(){return e});else if("function"===typeof e){var v=e._reglType;if("texture2d"===v||"textureCube"===v)a=c(function(d){return d.link(e)});else if("framebuffer"===v||"framebufferCube"===v)a=c(function(d){return d.link(e.color[0])})}else y(e)&&
(a=c(function(d){return d.global.def("[",F(e.length,function(d){return e[d]}),"]")}));a.value=e;A[d]=a});Object.keys(h).forEach(function(d){var e=h[d];A[d]=a(e,function(d,a){return d.invoke(a,e)})});return A}function da(d,e){var b=d["static"],h=d.dynamic,A={};Object.keys(b).forEach(function(d){var e=b[d],a=f.id(d),v=new Ba;if(l(e))v.state=1,v.buffer=M.getBuffer(M.create(e,34962,!1,!0)),v.type=0;else{var h=M.getBuffer(e);if(h)v.state=1,v.buffer=h,v.type=0;else if(e.constant){var w=e.constant;v.buffer=
"null";v.state=2;"number"===typeof w?v.x=w:N.forEach(function(d,e){e<w.length&&(v[d]=w[e])})}else{var h=l(e.buffer)?M.getBuffer(M.create(e.buffer,34962,!1,!0)):M.getBuffer(e.buffer),z=e.offset|0,q=e.stride|0,k=e.size|0,g=!!e.normalized,m=0;"type"in e&&(m=C[e.type]);e=e.divisor|0;v.buffer=h;v.state=1;v.size=k;v.normalized=g;v.type=m||h.dtype;v.offset=z;v.stride=q;v.divisor=e}}A[d]=c(function(d,e){var c=d.attribCache;if(a in c)return c[a];var b={isStream:!1};Object.keys(v).forEach(function(d){b[d]=
v[d]});v.buffer&&(b.buffer=d.link(v.buffer),b.type=b.type||b.buffer+".dtype");return c[a]=b})});Object.keys(h).forEach(function(d){var e=h[d];A[d]=a(e,function(d,a){function v(d){a(A[d],"=",c,".",d,"|0;")}var c=d.invoke(a,e),b=d.shared,h=b.isBufferArgs,w=b.buffer,A={isStream:a.def(!1)},z=new Ba;z.state=1;Object.keys(z).forEach(function(d){A[d]=a.def(""+z[d])});var aa=A.buffer,q=A.type;a("if(",h,"(",c,")){",A.isStream,"=true;",aa,"=",w,".createStream(",34962,",",c,");",q,"=",aa,".dtype;","}else{",
aa,"=",w,".getBuffer(",c,");","if(",aa,"){",q,"=",aa,".dtype;",'}else if("constant" in ',c,"){",A.state,"=",2,";","if(typeof "+c+'.constant === "number"){',A[N[0]],"=",c,".constant;",N.slice(1).map(function(d){return A[d]}).join("="),"=0;","}else{",N.map(function(d,e){return A[d]+"="+c+".constant.length>="+e+"?"+c+".constant["+e+"]:0;"}).join(""),"}}else{","if(",h,"(",c,".buffer)){",aa,"=",w,".createStream(",34962,",",c,".buffer);","}else{",aa,"=",w,".getBuffer(",c,".buffer);","}",q,'="type" in ',
c,"?",b.glTypes,"[",c,".type]:",aa,".dtype;",A.normalized,"=!!",c,".normalized;");v("size");v("offset");v("stride");v("divisor");a("}}");a.exit("if(",A.isStream,"){",w,".destroyStream(",aa,");","}");return A})});return A}function ja(d){var e=d["static"],b=d.dynamic,h={};Object.keys(e).forEach(function(d){var a=e[d];h[d]=c(function(d,e){return"number"===typeof a||"boolean"===typeof a?""+a:d.link(a)})});Object.keys(b).forEach(function(d){var e=b[d];h[d]=a(e,function(d,a){return d.invoke(a,e)})});return h}
function la(d,e,a,c,b){var h=ya(d,b),w=U(d,h,b),z=ka(d,b),q=ra(d,b),k=ia(d,b),g=w.viewport;g&&(q.viewport=g);g=W("scissor.box");(w=w[g])&&(q[g]=w);w=0<Object.keys(q).length;h={framebuffer:h,draw:z,shader:k,state:q,dirty:w};h.profile=na(d,b);h.uniforms=sa(a,b);h.attributes=da(e,b);h.context=ja(c,b);return h}function ea(d,e,a){var c=d.shared.context,b=d.scope();Object.keys(a).forEach(function(h){e.save(c,"."+h);b(c,".",h,"=",a[h].append(d,e),";")});e(b)}function O(d,e,a,c){var b=d.shared,h=b.gl,w=b.framebuffer,
z;oa&&(z=e.def(b.extensions,".webgl_draw_buffers"));var q=d.constants,b=q.drawBuffer,q=q.backBuffer;d=a?a.append(d,e):e.def(w,".next");c||e("if(",d,"!==",w,".cur){");e("if(",d,"){",h,".bindFramebuffer(",36160,",",d,".framebuffer);");oa&&e(z,".drawBuffersWEBGL(",b,"[",d,".colorAttachments.length]);");e("}else{",h,".bindFramebuffer(",36160,",null);");oa&&e(z,".drawBuffersWEBGL(",q,");");e("}",w,".cur=",d,";");c||e("}")}function ha(d,a,c){var b=d.shared,h=b.gl,z=d.current,q=d.next,g=b.current,k=b.next,
m=d.cond(g,".dirty");w.forEach(function(a){a=W(a);if(!(a in c.state)){var v,b;if(a in q){v=q[a];b=z[a];var w=F(e[a].length,function(d){return m.def(v,"[",d,"]")});m(d.cond(w.map(function(d,e){return d+"!=="+b+"["+e+"]"}).join("||")).then(h,".",xa[a],"(",w,");",w.map(function(d,e){return b+"["+e+"]="+d}).join(";"),";"))}else v=m.def(k,".",a),w=d.cond(v,"!==",g,".",a),m(w),a in wa?w(d.cond(v).then(h,".enable(",wa[a],");")["else"](h,".disable(",wa[a],");"),g,".",a,"=",v,";"):w(h,".",xa[a],"(",v,");",
g,".",a,"=",v,";")}});0===Object.keys(c.state).length&&m(g,".dirty=false;");a(m)}function Q(d,e,a,c){var b=d.shared,h=d.current,w=b.current,q=b.gl;k(Object.keys(a)).forEach(function(b){var z=a[b];if(!c||c(z)){var g=z.append(d,e);if(wa[b]){var k=wa[b];r(z)?g?e(q,".enable(",k,");"):e(q,".disable(",k,");"):e(d.cond(g).then(q,".enable(",k,");")["else"](q,".disable(",k,");"));e(w,".",b,"=",g,";")}else if(y(g)){var m=h[b];e(q,".",xa[b],"(",g,");",g.map(function(d,e){return m+"["+e+"]="+d}).join(";"),";")}else e(q,
".",xa[b],"(",g,");",w,".",b,"=",g,";")}})}function pa(d,e){ta&&(d.instancing=e.def(d.shared.extensions,".angle_instanced_arrays"))}function V(d,e,a,c,b){function h(){return"undefined"===typeof performance?"Date.now()":"performance.now()"}function w(d){l=e.def();d(l,"=",h(),";");"string"===typeof b?d(k,".count+=",b,";"):d(k,".count++;");ma&&(c?(n=e.def(),d(n,"=",f,".getNumPendingQueries();")):d(f,".beginQuery(",k,");"))}function q(d){d(k,".cpuTime+=",h(),"-",l,";");ma&&(c?d(f,".pushScopeStats(",n,
",",f,".getNumPendingQueries(),",k,");"):d(f,".endQuery();"))}function z(d){var a=e.def(m,".profile");e(m,".profile=",d,";");e.exit(m,".profile=",a,";")}var g=d.shared,k=d.stats,m=g.current,f=g.timer;a=a.profile;var l,n;if(a){if(r(a)){a.enable?(w(e),q(e.exit),z("true")):z("false");return}a=a.append(d,e);z(a)}else a=e.def(m,".profile");g=d.block();w(g);e("if(",a,"){",g,"}");d=d.block();q(d);e.exit("if(",a,"){",d,"}")}function X(d,e,a,c,b){function h(d){switch(d){case 35664:case 35667:case 35671:return 2;
case 35665:case 35668:case 35672:return 3;case 35666:case 35669:case 35673:return 4;default:return 1}}function w(a,c,b){function h(){e("if(!",m,".buffer){",g,".enableVertexAttribArray(",k,");}");var a=b.type,w;w=b.size?e.def(b.size,"||",c):c;e("if(",m,".type!==",a,"||",m,".size!==",w,"||",aa.map(function(d){return m+"."+d+"!=="+b[d]}).join("||"),"){",g,".bindBuffer(",34962,",",f,".buffer);",g,".vertexAttribPointer(",[k,w,a,b.normalized,b.stride,b.offset],");",m,".type=",a,";",m,".size=",w,";",aa.map(function(d){return m+
"."+d+"="+b[d]+";"}).join(""),"}");ta&&(a=b.divisor,e("if(",m,".divisor!==",a,"){",d.instancing,".vertexAttribDivisorANGLE(",[k,a],");",m,".divisor=",a,";}"))}function z(){e("if(",m,".buffer){",g,".disableVertexAttribArray(",k,");","}if(",N.map(function(d,e){return m+"."+d+"!=="+A[e]}).join("||"),"){",g,".vertexAttrib4f(",k,",",A,");",N.map(function(d,e){return m+"."+d+"="+A[e]+";"}).join(""),"}")}var g=q.gl,k=e.def(a,".location"),m=e.def(q.attributes,"[",k,"]");a=b.state;var f=b.buffer,A=[b.x,b.y,
b.z,b.w],aa=["buffer","normalized","offset","stride"];1===a?h():2===a?z():(e("if(",a,"===",1,"){"),h(),e("}else{"),z(),e("}"))}var q=d.shared;c.forEach(function(c){var q=c.name,g=a.attributes[q],z;if(g){if(!b(g))return;z=g.append(d,e)}else{if(!b(H))return;var m=d.scopeAttrib(q);z={};Object.keys(new Ba).forEach(function(d){z[d]=e.def(m,".",d)})}w(d.link(c),h(c.info.type),z)})}function T(d,e,a,c,b){for(var h=d.shared,w=h.gl,g,q=0;q<c.length;++q){var z=c[q],m=z.name,k=z.info.type,l=a.uniforms[m],z=d.link(z)+
".location",n;if(l){if(!b(l))continue;if(r(l)){m=l.value;if(35678===k||35680===k)k=d.link(m._texture||m.color[0]._texture),e(w,".uniform1i(",z,",",k+".bind());"),e.exit(k,".unbind();");else if(35674===k||35675===k||35676===k)m=d.global.def("new Float32Array(["+Array.prototype.slice.call(m)+"])"),l=2,35675===k?l=3:35676===k&&(l=4),e(w,".uniformMatrix",l,"fv(",z,",false,",m,");");else{switch(k){case 5126:g="1f";break;case 35664:g="2f";break;case 35665:g="3f";break;case 35666:g="4f";break;case 35670:g=
"1i";break;case 5124:g="1i";break;case 35671:g="2i";break;case 35667:g="2i";break;case 35672:g="3i";break;case 35668:g="3i";break;case 35673:g="4i";break;case 35669:g="4i"}e(w,".uniform",g,"(",z,",",y(m)?Array.prototype.slice.call(m):m,");")}continue}else n=l.append(d,e)}else{if(!b(H))continue;n=e.def(h.uniforms,"[",f.id(m),"]")}35678===k?e("if(",n,"&&",n,'._reglType==="framebuffer"){',n,"=",n,".color[0];","}"):35680===k&&e("if(",n,"&&",n,'._reglType==="framebufferCube"){',n,"=",n,".color[0];","}");
m=1;switch(k){case 35678:case 35680:k=e.def(n,"._texture");e(w,".uniform1i(",z,",",k,".bind());");e.exit(k,".unbind();");continue;case 5124:case 35670:g="1i";break;case 35667:case 35671:g="2i";m=2;break;case 35668:case 35672:g="3i";m=3;break;case 35669:case 35673:g="4i";m=4;break;case 5126:g="1f";break;case 35664:g="2f";m=2;break;case 35665:g="3f";m=3;break;case 35666:g="4f";m=4;break;case 35674:g="Matrix2fv";break;case 35675:g="Matrix3fv";break;case 35676:g="Matrix4fv"}e(w,".uniform",g,"(",z,",");
if("M"===g.charAt(0)){var z=Math.pow(k-35674+2,2),B=d.global.def("new Float32Array(",z,")");e("false,(Array.isArray(",n,")||",n," instanceof Float32Array)?",n,":(",F(z,function(d){return B+"["+d+"]="+n+"["+d+"]"}),",",B,")")}else 1<m?e(F(m,function(d){return n+"["+d+"]"})):e(n);e(");")}}function ua(d,e,a,c){function b(h){var g=k[h];return g?g.contextDep&&c.contextDynamic||g.propDep?g.append(d,a):g.append(d,e):e.def(m,".",h)}function h(){function d(){a(x,".drawElementsInstancedANGLE(",[f,n,K,l+"<<(("+
K+"-5121)>>1)",B],");")}function e(){a(x,".drawArraysInstancedANGLE(",[f,l,n,B],");")}q?S?d():(a("if(",q,"){"),d(),a("}else{"),e(),a("}")):e()}function g(){function d(){a(z+".drawElements("+[f,n,K,l+"<<(("+K+"-5121)>>1)"]+");")}function e(){a(z+".drawArrays("+[f,l,n]+");")}q?S?d():(a("if(",q,"){"),d(),a("}else{"),e(),a("}")):e()}var w=d.shared,z=w.gl,m=w.draw,k=c.draw,q=function(){var b=k.elements,h=e;if(b){if(b.contextDep&&c.contextDynamic||b.propDep)h=a;b=b.append(d,h)}else b=h.def(m,".","elements");
b&&h("if("+b+")"+z+".bindBuffer(34963,"+b+".buffer.buffer);");return b}(),f=b("primitive"),l=b("offset"),n=function(){var b=k.count,h=e;if(b){if(b.contextDep&&c.contextDynamic||b.propDep)h=a;b=b.append(d,h)}else b=h.def(m,".","count");return b}();if("number"===typeof n){if(0===n)return}else a("if(",n,"){"),a.exit("}");var B,x;ta&&(B=b("instances"),x=d.instancing);var K=q+".type",S=k.elements&&r(k.elements);ta&&("number"!==typeof B||0<=B)?"string"===typeof B?(a("if(",B,">0){"),h(),a("}else if(",B,
"<0){"),g(),a("}")):h():g()}function Ea(d,e,a,b,c){e=ba();c=e.proc("body",c);ta&&(e.instancing=c.def(e.shared.extensions,".angle_instanced_arrays"));d(e,c,a,b);return e.compile().body}function Fa(d,e,a,b){pa(d,e);X(d,e,a,b.attributes,function(){return!0});T(d,e,a,b.uniforms,function(){return!0});ua(d,e,e,a)}function Ha(d,e){var a=d.proc("draw",1);pa(d,a);ea(d,a,e.context);O(d,a,e.framebuffer);ha(d,a,e);Q(d,a,e.state);V(d,a,e,!1,!0);var b=e.shader.progVar.append(d,a);a(d.shared.gl,".useProgram(",b,
".program);");if(e.shader.program)Fa(d,a,e,e.shader.program);else{var c=d.global.def("{}"),h=a.def(b,".id"),g=a.def(c,"[",h,"]");a(d.cond(g).then(g,".call(this,a0);")["else"](g,"=",c,"[",h,"]=",d.link(function(a){return Ea(Fa,d,e,a,1)}),"(",b,");",g,".call(this,a0);"))}0<Object.keys(e.state).length&&a(d.shared.current,".dirty=true;")}function Ia(d,e,a,b){function c(){return!0}d.batchId="a1";pa(d,e);X(d,e,a,b.attributes,c);T(d,e,a,b.uniforms,c);ua(d,e,e,a)}function Ca(e,a,b,c){function h(e){return e.contextDep&&
w||e.propDep}function g(e){return!h(e)}pa(e,a);var w=b.contextDep,z=a.def(),m=a.def();e.shared.props=m;e.batchId=z;var k=e.scope(),q=e.scope();a(k.entry,"for(",z,"=0;",z,"<","a1",";++",z,"){",m,"=","a0","[",z,"];",q,"}",k.exit);b.needsContext&&ea(e,q,b.context);b.needsFramebuffer&&O(e,q,b.framebuffer);Q(e,q,b.state,h);b.profile&&h(b.profile)&&V(e,q,b,!1,!0);c?(X(e,k,b,c.attributes,g),X(e,q,b,c.attributes,h),T(e,k,b,c.uniforms,g),T(e,q,b,c.uniforms,h),ua(e,k,q,b)):(a=e.global.def("{}"),c=b.shader.progVar.append(e,
q),m=q.def(c,".id"),k=q.def(a,"[",m,"]"),q(e.shared.gl,".useProgram(",c,".program);","if(!",k,"){",k,"=",a,"[",m,"]=",e.link(function(a){return Ea(Ia,e,b,a,2)}),"(",c,");}",k,".call(this,a0[",z,"],",z,");"))}function Da(e,a){function b(e){return e.contextDep&&h||e.propDep}var c=e.proc("batch",2);e.batchId="0";pa(e,c);var h=!1,g=!0;Object.keys(a.context).forEach(function(e){h=h||a.context[e].propDep});h||(ea(e,c,a.context),g=!1);var w=a.framebuffer,z=!1;w?(w.propDep?h=z=!0:w.contextDep&&h&&(z=!0),
z||O(e,c,w)):O(e,c,null);a.state.viewport&&a.state.viewport.propDep&&(h=!0);ha(e,c,a);Q(e,c,a.state,function(e){return!b(e)});a.profile&&b(a.profile)||V(e,c,a,!1,"a1");a.contextDep=h;a.needsContext=g;a.needsFramebuffer=z;g=a.shader.progVar;if(g.contextDep&&h||g.propDep)Ca(e,c,a,null);else if(g=g.append(e,c),c(e.shared.gl,".useProgram(",g,".program);"),a.shader.program)Ca(e,c,a,a.shader.program);else{var w=e.global.def("{}"),z=c.def(g,".id"),q=c.def(w,"[",z,"]");c(e.cond(q).then(q,".call(this,a0,a1);")["else"](q,
"=",w,"[",z,"]=",e.link(function(b){return Ea(Ca,e,a,b,2)}),"(",g,");",q,".call(this,a0,a1);"))}0<Object.keys(a.state).length&&c(e.shared.current,".dirty=true;")}function Pa(e,a){function b(g){var w=a.shader[g];w&&c.set(h.shader,"."+g,w.append(e,c))}var c=e.proc("scope",3);e.batchId="a2";var h=e.shared,g=h.current;ea(e,c,a.context);a.framebuffer&&a.framebuffer.append(e,c);k(Object.keys(a.state)).forEach(function(b){var g=a.state[b].append(e,c);y(g)?g.forEach(function(a,h){c.set(e.next[b],"["+h+"]",
a)}):c.set(h.next,"."+b,g)});V(e,c,a,!0,!0);["elements","offset","count","instances","primitive"].forEach(function(b){var g=a.draw[b];g&&c.set(h.draw,"."+b,""+g.append(e,c))});Object.keys(a.uniforms).forEach(function(b){c.set(h.uniforms,"["+f.id(b)+"]",a.uniforms[b].append(e,c))});Object.keys(a.attributes).forEach(function(b){var h=a.attributes[b].append(e,c),g=e.scopeAttrib(b);Object.keys(new Ba).forEach(function(e){c.set(g,"."+e,h[e])})});b("vert");b("frag");0<Object.keys(a.state).length&&(c(g,
".dirty=true;"),c.exit(g,".dirty=true;"));c("a1(",e.shared.context,",a0,",e.batchId,");")}function Na(e){if("object"===typeof e&&!y(e)){for(var a=Object.keys(e),b=0;b<a.length;++b)if(g.isDynamic(e[a[b]]))return!0;return!1}}function Ja(e,b,c){function h(e,a){q.forEach(function(d){var b=w[d];g.isDynamic(b)&&(b=e.invoke(a,b),a(n,".",d,"=",b,";"))})}var w=b["static"][c];if(w&&Na(w)){var z=e.global,q=Object.keys(w),k=!1,m=!1,f=!1,n=e.global.def("{}");q.forEach(function(b){var c=w[b];if(g.isDynamic(c))"function"===
typeof c&&(c=w[b]=g.unbox(c)),b=a(c,null),k=k||b.thisDep,f=f||b.propDep,m=m||b.contextDep;else{z(n,".",b,"=");switch(typeof c){case "number":z(c);break;case "string":z('"',c,'"');break;case "object":Array.isArray(c)&&z("[",c.join(),"]");break;default:z(e.link(c))}z(";")}});b.dynamic[c]=new g.DynamicVariable(4,{thisDep:k,contextDep:m,propDep:f,ref:n,append:h});delete b["static"][c]}}var Ba=Aa.Record,ca={add:32774,subtract:32778,"reverse subtract":32779};t.ext_blend_minmax&&(ca.min=32775,ca.max=32776);
var ta=t.angle_instanced_arrays,oa=t.webgl_draw_buffers,e={dirty:!0,profile:ga.profile},z={},w=[],wa={},xa={};R("dither",3024);R("blend.enable",3042);G("blend.color","blendColor",[0,0,0,0]);G("blend.equation","blendEquationSeparate",[32774,32774]);G("blend.func","blendFuncSeparate",[1,0,1,0]);R("depth.enable",2929,!0);G("depth.func","depthFunc",513);G("depth.range","depthRange",[0,1]);G("depth.mask","depthMask",!0);G("colorMask","colorMask",[!0,!0,!0,!0]);R("cull.enable",2884);G("cull.face","cullFace",
1029);G("frontFace","frontFace",2305);G("lineWidth","lineWidth",1);R("polygonOffset.enable",32823);G("polygonOffset.offset","polygonOffset",[0,0]);R("sample.alpha",32926);R("sample.enable",32928);G("sample.coverage","sampleCoverage",[1,!1]);R("stencil.enable",2960);G("stencil.mask","stencilMask",-1);G("stencil.func","stencilFunc",[519,0,-1]);G("stencil.opFront","stencilOpSeparate",[1028,7680,7680,7680]);G("stencil.opBack","stencilOpSeparate",[1029,7680,7680,7680]);R("scissor.enable",3089);G("scissor.box",
"scissor",[0,0,h.drawingBufferWidth,h.drawingBufferHeight]);G("viewport","viewport",[0,0,h.drawingBufferWidth,h.drawingBufferHeight]);var Qa={gl:h,context:S,strings:f,next:z,current:e,draw:q,elements:u,buffer:M,shader:va,attributes:Aa.state,uniforms:K,framebuffer:D,extensions:t,timer:ma,isBufferArgs:l},Ma={primTypes:E,compareFuncs:B,blendFuncs:m,blendEquations:ca,stencilOps:Y,glTypes:C,orientationType:L};oa&&(Ma.backBuffer=[1029],Ma.drawBuffer=F(p.maxDrawbuffers,function(e){return 0===e?[0]:F(e,function(e){return 36064+
e})}));var Ra=0;return{next:z,current:e,procs:function(){var a=ba(),b=a.proc("poll"),c=a.proc("refresh"),g=a.block();b(g);c(g);var w=a.shared,z=w.gl,q=w.next,k=w.current;g(k,".dirty=false;");O(a,b);O(a,c,null,!0);var m=h.getExtension("angle_instanced_arrays"),f;m&&(f=a.link(m));for(var n=0;n<p.maxAttributes;++n){var l=c.def(w.attributes,"[",n,"]"),B=a.cond(l,".buffer");B.then(z,".enableVertexAttribArray(",n,");",z,".bindBuffer(",34962,",",l,".buffer.buffer);",z,".vertexAttribPointer(",n,",",l,".size,",
l,".type,",l,".normalized,",l,".stride,",l,".offset);")["else"](z,".disableVertexAttribArray(",n,");",z,".vertexAttrib4f(",n,",",l,".x,",l,".y,",l,".z,",l,".w);",l,".buffer=null;");c(B);m&&c(f,".vertexAttribDivisorANGLE(",n,",",l,".divisor);")}Object.keys(wa).forEach(function(e){var h=wa[e],w=g.def(q,".",e),m=a.block();m("if(",w,"){",z,".enable(",h,")}else{",z,".disable(",h,")}",k,".",e,"=",w,";");c(m);b("if(",w,"!==",k,".",e,"){",m,"}")});Object.keys(xa).forEach(function(h){var w=xa[h],m=e[h],f,
n,l=a.block();l(z,".",w,"(");y(m)?(w=m.length,f=a.global.def(q,".",h),n=a.global.def(k,".",h),l(F(w,function(e){return f+"["+e+"]"}),");",F(w,function(e){return n+"["+e+"]="+f+"["+e+"];"}).join("")),b("if(",F(w,function(e){return f+"["+e+"]!=="+n+"["+e+"]"}).join("||"),"){",l,"}")):(f=g.def(q,".",h),n=g.def(k,".",h),l(f,");",k,".",h,"=",f,";"),b("if(",f,"!==",n,"){",l,"}"));c(l)});return a.compile()}(),compile:function(e,a,b,c,h){var g=ba();g.stats=g.link(h);Object.keys(a["static"]).forEach(function(e){Ja(g,
a,e)});n.forEach(function(a){Ja(g,e,a)});b=la(e,a,b,c,g);Ha(g,b);Pa(g,b);Da(g,b);return g.compile()}}}},{"./constants/dtypes.json":4,"./constants/primitives.json":5,"./dynamic":8,"./util/codegen":21,"./util/is-array-like":24,"./util/is-ndarray":25,"./util/is-typed-array":26,"./util/loop":27}],8:[function(f,p,u){function l(c,a){this.id=r++;this.type=c;this.data=a}function k(c){if(0===c.length)return[];var a=c.charAt(0),b=c.charAt(c.length-1);if(1<c.length&&a===b&&('"'===a||"'"===a))return['"'+c.substr(1,
c.length-2).replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'];if(a=/\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(c))return k(c.substr(0,a.index)).concat(k(a[1])).concat(k(c.substr(a.index+a[0].length)));a=c.split(".");if(1===a.length)return['"'+c.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'];c=[];for(b=0;b<a.length;++b)c=c.concat(k(a[b]));return c}function x(c){return"["+k(c).join("][")+"]"}var r=0;p.exports={DynamicVariable:l,define:function(c,a){return new l(c,x(a+""))},isDynamic:function(c){return"function"===
typeof c&&!c._reglType||c instanceof l},unbox:function(c,a){return"function"===typeof c?new l(0,c):c},accessor:x}},{}],9:[function(f,p,u){var l=f("./util/is-typed-array"),k=f("./util/is-ndarray"),x=f("./util/values"),r=f("./constants/primitives.json"),c=f("./constants/usage.json");p.exports=function(a,b,f,p){function t(a){this.id=C++;E[this.id]=this;this.buffer=a;this.primType=4;this.type=this.vertCount=0}function y(c,g,n,r,x,h,t){c.buffer.bind();if(g){var y=t;t||l(g)&&(!k(g)||l(g.data))||(y=b.oes_element_index_uint?
5125:5123);f._initBuffer(c.buffer,g,n,y,3)}else a.bufferData(34963,h,n),c.buffer.dtype=y||5121,c.buffer.usage=n,c.buffer.dimension=3,c.buffer.byteLength=h;y=t;if(!t){switch(c.buffer.dtype){case 5121:case 5120:y=5121;break;case 5123:case 5122:y=5123;break;case 5125:case 5124:y=5125}c.buffer.dtype=y}c.type=y;g=x;0>g&&(g=c.buffer.byteLength,5123===y?g>>=1:5125===y&&(g>>=2));c.vertCount=g;g=r;0>r&&(g=4,r=c.buffer.dimension,1===r&&(g=0),2===r&&(g=1),3===r&&(g=4));c.primType=g}function g(a){p.elementsCount--;
delete E[a.id];a.buffer.destroy();a.buffer=null}var E={},C=0,N={uint8:5121,uint16:5123};b.oes_element_index_uint&&(N.uint32=5125);t.prototype.bind=function(){this.buffer.bind()};var n=[];return{create:function(a,b){function n(a){if(a)if("number"===typeof a)x(a),C.primType=4,C.vertCount=a|0,C.type=5121;else{var b=null,g=35044,m=-1,f=-1,t=0,B=0;if(Array.isArray(a)||l(a)||k(a))b=a;else if("data"in a&&(b=a.data),"usage"in a&&(g=c[a.usage]),"primitive"in a&&(m=r[a.primitive]),"count"in a&&(f=a.count|0),
"type"in a&&(B=N[a.type]),"length"in a)t=a.length|0;else if(t=f,5123===B||5122===B)t*=2;else if(5125===B||5124===B)t*=4;y(C,b,g,m,f,t,B)}else x(),C.primType=4,C.vertCount=0,C.type=5121;return n}var x=f.create(null,34963,!0),C=new t(x._buffer);p.elementsCount++;n(a);n._reglType="elements";n._elements=C;n.subdata=function(a,b){x.subdata(a,b);return n};n.destroy=function(){g(C)};return n},createStream:function(a){var b=n.pop();b||(b=new t(f.create(null,34963,!0,!1)._buffer));y(b,a,35040,-1,-1,0,0);return b},
destroyStream:function(a){n.push(a)},getElements:function(a){return"function"===typeof a&&a._elements instanceof t?a._elements:null},clear:function(){x(E).forEach(g)}}}},{"./constants/primitives.json":5,"./constants/usage.json":6,"./util/is-ndarray":25,"./util/is-typed-array":26,"./util/values":31}],10:[function(f,p,u){p.exports=function(f,k){function x(a){a=a.toLowerCase();var c;try{c=r[a]=f.getExtension(a)}catch(k){}return!!c}for(var r={},c=0;c<k.extensions.length;++c){var a=k.extensions[c];if(!x(a))return k.onDestroy(),
k.onDone('"'+a+'" extension is not supported by the current WebGL context, try upgrading your system or a different browser'),null}k.optionalExtensions.forEach(x);return{extensions:r,restore:function(){Object.keys(r).forEach(function(a){if(!x(a))throw Error("(regl): error restoring extension "+a);})}}}},{}],11:[function(f,p,u){var l=f("./util/values"),k=f("./util/extend"),x=[];x[6408]=4;var r=[];r[5121]=1;r[5126]=4;r[36193]=2;p.exports=function(c,a,b,f,p,t){function y(a,c,b){this.target=a;this.texture=
c;this.renderbuffer=b;var h=a=0;c?(a=c.width,h=c.height):b&&(a=b.width,h=b.height);this.width=a;this.height=h}function g(a){a&&(a.texture&&a.texture._texture.decRef(),a.renderbuffer&&a.renderbuffer._renderbuffer.decRef())}function E(a,c,b){a&&(a.texture?a.texture._texture.refCount+=1:a.renderbuffer._renderbuffer.refCount+=1)}function C(a,b){b&&(b.texture?c.framebufferTexture2D(36160,a,b.target,b.texture._texture.texture,0):c.framebufferRenderbuffer(36160,a,36161,b.renderbuffer._renderbuffer.renderbuffer))}
function N(a){var b=3553,c=null,h=null,g=a;"object"===typeof a&&(g=a.data,"target"in a&&(b=a.target|0));a=g._reglType;"texture2d"===a?c=g:"textureCube"===a?c=g:"renderbuffer"===a&&(h=g,b=36161);return new y(b,c,h)}function n(a,b,c,h,g){if(c)return a=f.create2D({width:a,height:b,format:h,type:g}),a._texture.refCount=0,new y(3553,a,null);a=p.create({width:a,height:b,format:h});a._renderbuffer.refCount=0;return new y(36161,null,a)}function m(a){return a&&(a.texture||a.renderbuffer)}function B(a,b,c){a&&
(a.texture?a.texture.resize(b,c):a.renderbuffer&&a.renderbuffer.resize(b,c))}function u(){this.id=Z++;D[this.id]=this;this.framebuffer=c.createFramebuffer();this.height=this.width=0;this.colorAttachments=[];this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function L(a){a.colorAttachments.forEach(g);g(a.depthAttachment);g(a.stencilAttachment);g(a.depthStencilAttachment)}function H(a){c.deleteFramebuffer(a.framebuffer);a.framebuffer=null;t.framebufferCount--;delete D[a.id]}
function h(a){var h;c.bindFramebuffer(36160,a.framebuffer);var g=a.colorAttachments;for(h=0;h<g.length;++h)C(36064+h,g[h]);for(h=g.length;h<b.maxColorAttachments;++h)c.framebufferTexture2D(36160,36064+h,3553,null,0);c.framebufferTexture2D(36160,33306,3553,null,0);c.framebufferTexture2D(36160,36096,3553,null,0);c.framebufferTexture2D(36160,36128,3553,null,0);C(36096,a.depthAttachment);C(36128,a.stencilAttachment);C(33306,a.depthStencilAttachment);c.checkFramebufferStatus(36160);c.bindFramebuffer(36160,
Ka.next);Ka.cur=Ka.next;c.getError()}function fa(a,b){function c(a,b){var k,f=0,l=0,t=!0,y=!0;k=null;var B=!0,C="rgba",F="uint8",p=1,M=null,H=null,u=null,Y=!1;if("number"===typeof a)f=a|0,l=b|0||f;else if(a){"shape"in a?(l=a.shape,f=l[0],l=l[1]):("radius"in a&&(f=l=a.radius),"width"in a&&(f=a.width),"height"in a&&(l=a.height));if("color"in a||"colors"in a)k=a.color||a.colors,Array.isArray(k);if(!k){"colorCount"in a&&(p=a.colorCount|0);"colorTexture"in a&&(B=!!a.colorTexture,C="rgba4");if("colorType"in
a&&(F=a.colorType,!B))if("half float"===F||"float16"===F)C="rgba16f";else if("float"===F||"float32"===F)C="rgba32f";"colorFormat"in a&&(C=a.colorFormat,0<=La.indexOf(C)?B=!0:0<=za.indexOf(C)&&(B=!1))}if("depthTexture"in a||"depthStencilTexture"in a)Y=!(!a.depthTexture&&!a.depthStencilTexture);"depth"in a&&("boolean"===typeof a.depth?t=a.depth:(M=a.depth,y=!1));"stencil"in a&&("boolean"===typeof a.stencil?y=a.stencil:(H=a.stencil,t=!1));"depthStencil"in a&&("boolean"===typeof a.depthStencil?t=y=a.depthStencil:
(u=a.depthStencil,y=t=!1))}else f=l=1;var D=null,fa=null,K=null,O=null;if(Array.isArray(k))D=k.map(N);else if(k)D=[N(k)];else for(D=Array(p),k=0;k<p;++k)D[k]=n(f,l,B,C,F);f=f||D[0].width;l=l||D[0].height;M?fa=N(M):t&&!y&&(fa=n(f,l,Y,"depth","uint32"));H?K=N(H):y&&!t&&(K=n(f,l,!1,"stencil","uint8"));u?O=N(u):!M&&!H&&y&&t&&(O=n(f,l,Y,"depth stencil","depth stencil"));t=null;for(k=0;k<D.length;++k)E(D[k],f,l),D[k]&&D[k].texture&&(y=x[D[k].texture._texture.format]*r[D[k].texture._texture.type],null===
t&&(t=y));E(fa,f,l);E(K,f,l);E(O,f,l);L(g);g.width=f;g.height=l;g.colorAttachments=D;g.depthAttachment=fa;g.stencilAttachment=K;g.depthStencilAttachment=O;c.color=D.map(m);c.depth=m(fa);c.stencil=m(K);c.depthStencil=m(O);c.width=g.width;c.height=g.height;h(g);return c}var g=new u;t.framebufferCount++;c(a,b);return k(c,{resize:function(a,b){var k=a|0,f=b|0||k;if(k===g.width&&f===g.height)return c;for(var m=g.colorAttachments,l=0;l<m.length;++l)B(m[l],k,f);B(g.depthAttachment,k,f);B(g.stencilAttachment,
k,f);B(g.depthStencilAttachment,k,f);g.width=c.width=k;g.height=c.height=f;h(g);return c},_reglType:"framebuffer",_framebuffer:g,destroy:function(){H(g);L(g)}})}var Ka={cur:null,next:null,dirty:!1},La=["rgba"],za=["rgba4","rgb565","rgb5 a1"];a.ext_srgb&&za.push("srgba");a.ext_color_buffer_half_float&&za.push("rgba16f","rgb16f");a.webgl_color_buffer_float&&za.push("rgba32f");var Ga=["uint8"];a.oes_texture_half_float&&Ga.push("half float","float16");a.oes_texture_float&&Ga.push("float","float32");var Z=
0,D={};return k(Ka,{getFramebuffer:function(a){return"function"===typeof a&&"framebuffer"===a._reglType&&(a=a._framebuffer,a instanceof u)?a:null},create:fa,createCube:function(a){function c(a){var g,h={color:null},m=0,l=null;g="rgba";var n="uint8",r=1;if("number"===typeof a)m=a|0;else if(a){"shape"in a?m=a.shape[0]:("radius"in a&&(m=a.radius|0),"width"in a?m=a.width|0:"height"in a&&(m=a.height|0));if("color"in a||"colors"in a)l=a.color||a.colors,Array.isArray(l);l||("colorCount"in a&&(r=a.colorCount|
0),"colorType"in a&&(n=a.colorType),"colorFormat"in a&&(g=a.colorFormat));"depth"in a&&(h.depth=a.depth);"stencil"in a&&(h.stencil=a.stencil);"depthStencil"in a&&(h.depthStencil=a.depthStencil)}else m=1;if(l)if(Array.isArray(l))for(a=[],g=0;g<l.length;++g)a[g]=l[g];else a=[l];else for(a=Array(r),l={radius:m,format:g,type:n},g=0;g<r;++g)a[g]=f.createCube(l);h.color=Array(a.length);for(g=0;g<a.length;++g)r=a[g],m=m||r.width,h.color[g]={target:34069,data:a[g]};for(g=0;6>g;++g){for(r=0;r<a.length;++r)h.color[r].target=
34069+g;0<g&&(h.depth=b[0].depth,h.stencil=b[0].stencil,h.depthStencil=b[0].depthStencil);if(b[g])b[g](h);else b[g]=fa(h)}return k(c,{width:m,height:m,color:a})}var b=Array(6);c(a);return k(c,{faces:b,resize:function(a){var g=a|0;if(g===c.width)return c;var h=c.color;for(a=0;a<h.length;++a)h[a].resize(g);for(a=0;6>a;++a)b[a].resize(g);c.width=c.height=g;return c},_reglType:"framebufferCube",destroy:function(){b.forEach(function(a){a.destroy()})}})},clear:function(){l(D).forEach(H)},restore:function(){l(D).forEach(function(a){a.framebuffer=
c.createFramebuffer();h(a)})}})}},{"./util/extend":22,"./util/values":31}],12:[function(f,p,u){p.exports=function(f,k){var x=1;k.ext_texture_filter_anisotropic&&(x=f.getParameter(34047));var r=1,c=1;k.webgl_draw_buffers&&(r=f.getParameter(34852),c=f.getParameter(36063));return{colorBits:[f.getParameter(3410),f.getParameter(3411),f.getParameter(3412),f.getParameter(3413)],depthBits:f.getParameter(3414),stencilBits:f.getParameter(3415),subpixelBits:f.getParameter(3408),extensions:Object.keys(k).filter(function(a){return!!k[a]}),
maxAnisotropic:x,maxDrawbuffers:r,maxColorAttachments:c,pointSizeDims:f.getParameter(33901),lineWidthDims:f.getParameter(33902),maxViewportDims:f.getParameter(3386),maxCombinedTextureUnits:f.getParameter(35661),maxCubeMapSize:f.getParameter(34076),maxRenderbufferSize:f.getParameter(34024),maxTextureUnits:f.getParameter(34930),maxTextureSize:f.getParameter(3379),maxAttributes:f.getParameter(34921),maxVertexUniforms:f.getParameter(36347),maxVertexTextureUnits:f.getParameter(35660),maxVaryingVectors:f.getParameter(36348),
maxFragmentUniforms:f.getParameter(36349),glsl:f.getParameter(35724),renderer:f.getParameter(7937),vendor:f.getParameter(7936),version:f.getParameter(7938)}}},{}],13:[function(f,p,u){var l=f("./util/is-typed-array");p.exports=function(k,f,r,c,a,b){return function(a){var b;b=null===f.next?5121:f.next.colorAttachments[0].texture._texture.type;var t=0,y=0,g=c.framebufferWidth,p=c.framebufferHeight,C=null;l(a)?C=a:a&&(t=a.x|0,y=a.y|0,g=(a.width||c.framebufferWidth-t)|0,p=(a.height||c.framebufferHeight-
y)|0,C=a.data||null);r();a=g*p*4;C||(5121===b?C=new Uint8Array(a):5126===b&&(C=C||new Float32Array(a)));k.pixelStorei(3333,4);k.readPixels(t,y,g,p,6408,b,C);return C}}},{"./util/is-typed-array":26}],14:[function(f,p,u){var l=f("./util/values"),k=[];k[32854]=2;k[32855]=2;k[36194]=2;k[33189]=2;k[36168]=1;k[34041]=4;k[35907]=4;k[34836]=16;k[34842]=8;k[34843]=6;p.exports=function(f,r,c,a,b){function p(a){this.id=g++;this.refCount=1;this.renderbuffer=a;this.format=32854;this.height=this.width=0;b.profile&&
(this.stats={size:0})}function M(b){var c=b.renderbuffer;f.bindRenderbuffer(36161,null);f.deleteRenderbuffer(c);b.renderbuffer=null;b.refCount=0;delete E[b.id];a.renderbufferCount--}var t={rgba4:32854,rgb565:36194,"rgb5 a1":32855,depth:33189,stencil:36168,"depth stencil":34041};r.ext_srgb&&(t.srgba=35907);r.ext_color_buffer_half_float&&(t.rgba16f=34842,t.rgb16f=34843);r.webgl_color_buffer_float&&(t.rgba32f=34836);var y=[];Object.keys(t).forEach(function(a){y[t[a]]=a});var g=0,E={};p.prototype.decRef=
function(){0>=--this.refCount&&M(this)};b.profile&&(a.getTotalRenderbufferSize=function(){var a=0;Object.keys(E).forEach(function(b){a+=E[b].stats.size});return a});return{create:function(c,g){function n(a,c){var g=0,l=0,h=32854;"object"===typeof a&&a?("shape"in a?(l=a.shape,g=l[0]|0,l=l[1]|0):("radius"in a&&(g=l=a.radius|0),"width"in a&&(g=a.width|0),"height"in a&&(l=a.height|0)),"format"in a&&(h=t[a.format])):"number"===typeof a?(g=a|0,l="number"===typeof c?c|0:g):a||(g=l=1);if(g!==m.width||l!==
m.height||h!==m.format)return n.width=m.width=g,n.height=m.height=l,m.format=h,f.bindRenderbuffer(36161,m.renderbuffer),f.renderbufferStorage(36161,h,g,l),b.profile&&(m.stats.size=k[m.format]*m.width*m.height),n.format=y[m.format],n}var m=new p(f.createRenderbuffer());E[m.id]=m;a.renderbufferCount++;n(c,g);n.resize=function(a,c){var g=a|0,l=c|0||g;if(g===m.width&&l===m.height)return n;n.width=m.width=g;n.height=m.height=l;f.bindRenderbuffer(36161,m.renderbuffer);f.renderbufferStorage(36161,m.format,
g,l);b.profile&&(m.stats.size=k[m.format]*m.width*m.height);return n};n._reglType="renderbuffer";n._renderbuffer=m;b.profile&&(n.stats=m.stats);n.destroy=function(){m.decRef()};return n},clear:function(){l(E).forEach(M)},restore:function(){l(E).forEach(function(a){a.renderbuffer=f.createRenderbuffer();f.bindRenderbuffer(36161,a.renderbuffer);f.renderbufferStorage(36161,a.format,a.width,a.height)});f.bindRenderbuffer(36161,null)}}}},{"./util/values":31}],15:[function(f,p,u){var l=f("./util/values");
p.exports=function(f,x,r,c){function a(a,c,b,g){this.name=a;this.id=c;this.location=b;this.info=g}function b(a,c){for(var b=0;b<a.length;++b)if(a[b].id===c.id){a[b].location=c.location;return}a.push(c)}function p(a,c,b){b=35632===a?y:g;var l=b[c];if(!l){var r=x.str(c),l=f.createShader(a);f.shaderSource(l,r);f.compileShader(l);b[c]=l}return l}function M(a,b){this.id=u++;this.fragId=a;this.vertId=b;this.program=null;this.uniforms=[];this.attributes=[];c.profile&&(this.stats={uniformsCount:0,attributesCount:0})}
function t(g,m){var l,r;l=p(35632,g.fragId);r=p(35633,g.vertId);var t=g.program=f.createProgram();f.attachShader(t,l);f.attachShader(t,r);f.linkProgram(t);var y=f.getProgramParameter(t,35718);c.profile&&(g.stats.uniformsCount=y);var h=g.uniforms;for(l=0;l<y;++l)if(r=f.getActiveUniform(t,l))if(1<r.size)for(var C=0;C<r.size;++C){var E=r.name.replace("[0]","["+C+"]");b(h,new a(E,x.id(E),f.getUniformLocation(t,E),r))}else b(h,new a(r.name,x.id(r.name),f.getUniformLocation(t,r.name),r));y=f.getProgramParameter(t,
35721);c.profile&&(g.stats.attributesCount=y);h=g.attributes;for(l=0;l<y;++l)(r=f.getActiveAttrib(t,l))&&b(h,new a(r.name,x.id(r.name),f.getAttribLocation(t,r.name),r))}var y={},g={},E={},C=[],u=0;c.profile&&(r.getMaxUniformsCount=function(){var a=0;C.forEach(function(b){b.stats.uniformsCount>a&&(a=b.stats.uniformsCount)});return a},r.getMaxAttributesCount=function(){var a=0;C.forEach(function(b){b.stats.attributesCount>a&&(a=b.stats.attributesCount)});return a});return{clear:function(){var a=f.deleteShader.bind(f);
l(y).forEach(a);y={};l(g).forEach(a);g={};C.forEach(function(a){f.deleteProgram(a.program)});C.length=0;E={};r.shaderCount=0},program:function(a,b,c){r.shaderCount++;var g=E[b];g||(g=E[b]={});var f=g[a];f||(f=new M(b,a),t(f,c),g[a]=f,C.push(f));return f},restore:function(){y={};g={};for(var a=0;a<C.length;++a)t(C[a])},shader:p,frag:-1,vert:-1}}},{"./util/values":31}],16:[function(f,p,u){p.exports=function(){return{bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,
renderbufferCount:0,maxTextureUnits:0}}},{}],17:[function(f,p,u){p.exports=function(){var f={"":0},k=[""];return{id:function(x){var r=f[x];if(r)return r;r=f[x]=k.length;k.push(x);return r},str:function(f){return k[f]}}}},{}],18:[function(f,p,u){function l(a){return Array.isArray(a)&&(0===a.length||"number"===typeof a[0])}function k(a){return Array.isArray(a)&&0!==a.length&&E(a[0])?!0:!1}function x(a){return Object.prototype.toString.call(a)}function r(a){if(!a)return!1;var b=x(a);return 0<=Y.indexOf(b)?
!0:l(a)||k(a)||t(a)}function c(a,b){36193===a.type?(a.data=g(b),y.freeType(b)):a.data=b}function a(a,b,c,g,f,k){a="undefined"!==typeof H[a]?H[a]:B[a]*L[b];k&&(a*=6);if(f){for(g=0;1<=c;)g+=a*c*c,c/=2;return g}return a*c*g}var b=f("./util/extend"),F=f("./util/values"),M=f("./util/is-typed-array"),t=f("./util/is-ndarray"),y=f("./util/pool"),g=f("./util/to-half-float"),E=f("./util/is-array-like"),C=f("./util/flatten");u=f("./constants/arraytypes.json");var N=f("./constants/arraytypes.json"),n=[9984,9986,
9985,9987],m=[0,6409,6410,6407,6408],B={};B[6409]=B[6406]=B[6402]=1;B[34041]=B[6410]=2;B[6407]=B[35904]=3;B[6408]=B[35906]=4;var Y=Object.keys(u).concat(["[object HTMLCanvasElement]","[object CanvasRenderingContext2D]","[object HTMLImageElement]","[object HTMLVideoElement]"]),L=[];L[5121]=1;L[5126]=4;L[36193]=2;L[5123]=2;L[5125]=4;var H=[];H[32854]=2;H[32855]=2;H[36194]=2;H[34041]=4;H[33776]=.5;H[33777]=.5;H[33778]=1;H[33779]=1;H[35986]=.5;H[35987]=1;H[34798]=1;H[35840]=.5;H[35841]=.25;H[35842]=.5;
H[35843]=.25;H[36196]=.5;p.exports=function(h,f,p,u,H,L,Z){function D(){this.format=this.internalformat=6408;this.type=5121;this.flipY=this.premultiplyAlpha=this.compressed=!1;this.unpackAlignment=1;this.channels=this.height=this.width=this.colorSpace=0}function K(a,b){a.internalformat=b.internalformat;a.format=b.format;a.type=b.type;a.compressed=b.compressed;a.premultiplyAlpha=b.premultiplyAlpha;a.flipY=b.flipY;a.unpackAlignment=b.unpackAlignment;a.colorSpace=b.colorSpace;a.width=b.width;a.height=
b.height;a.channels=b.channels}function Y(a,b){if("object"===typeof b&&b){"premultiplyAlpha"in b&&(a.premultiplyAlpha=b.premultiplyAlpha);"flipY"in b&&(a.flipY=b.flipY);"alignment"in b&&(a.unpackAlignment=b.alignment);"colorSpace"in b&&(a.colorSpace=pa[b.colorSpace]);"type"in b&&(a.type=V[b.type]);var c=a.width,g=a.height,h=a.channels,f=!1;"shape"in b?(c=b.shape[0],g=b.shape[1],3===b.shape.length&&(h=b.shape[2],f=!0)):("radius"in b&&(c=g=b.radius),"width"in b&&(c=b.width),"height"in b&&(g=b.height),
"channels"in b&&(h=b.channels,f=!0));a.width=c|0;a.height=g|0;a.channels=h|0;c=!1;"format"in b&&(c=b.format,g=a.internalformat=X[c],a.format=Pa[g],c in V&&!("type"in b)&&(a.type=V[c]),c in T&&(a.compressed=!0),c=!0);!f&&c?a.channels=B[a.format]:f&&!c&&a.channels!==m[a.format]&&(a.format=a.internalformat=m[a.channels])}}function va(a){h.pixelStorei(37440,a.flipY);h.pixelStorei(37441,a.premultiplyAlpha);h.pixelStorei(37443,a.colorSpace);h.pixelStorei(3317,a.unpackAlignment)}function q(){D.call(this);
this.yOffset=this.xOffset=0;this.data=null;this.needsFree=!1;this.element=null;this.needsCopy=!1}function S(a,b){var h=null;r(b)?h=b:b&&(Y(a,b),"x"in b&&(a.xOffset=b.x|0),"y"in b&&(a.yOffset=b.y|0),r(b.data)&&(h=b.data));if(b.copy){var f=H.viewportWidth,n=H.viewportHeight;a.width=a.width||f-a.xOffset;a.height=a.height||n-a.yOffset;a.needsCopy=!0}else if(!h)a.width=a.width||1,a.height=a.height||1,a.channels=a.channels||4;else if(M(h))a.channels=a.channels||4,a.data=h,"type"in b||5121!==a.type||(a.type=
N[Object.prototype.toString.call(h)]|0);else if(l(h)){a.channels=a.channels||4;f=h;n=f.length;switch(a.type){case 5121:case 5123:case 5125:case 5126:n=y.allocType(a.type,n);n.set(f);a.data=n;break;case 36193:a.data=g(f)}a.alignment=1;a.needsFree=!0}else if(t(h)){f=h.data;Array.isArray(f)||5121!==a.type||(a.type=N[Object.prototype.toString.call(f)]|0);var n=h.shape,q=h.stride,p,F,d,v;3===n.length?(d=n[2],v=q[2]):v=d=1;p=n[0];F=n[1];n=q[0];q=q[1];a.alignment=1;a.width=p;a.height=F;a.channels=d;a.format=
a.internalformat=m[d];a.needsFree=!0;p=v;h=h.offset;d=a.width;v=a.height;F=a.channels;for(var u=y.allocType(36193===a.type?5126:a.type,d*v*F),B=0,A=0;A<v;++A)for(var D=0;D<d;++D)for(var ua=0;ua<F;++ua)u[B++]=f[n*D+q*A+p*ua+h];c(a,u)}else if("[object HTMLCanvasElement]"===x(h)||"[object CanvasRenderingContext2D]"===x(h))"[object HTMLCanvasElement]"===x(h)?a.element=h:a.element=h.canvas,a.width=a.element.width,a.height=a.element.height,a.channels=4;else if("[object HTMLImageElement]"===x(h))a.element=
h,a.width=h.naturalWidth,a.height=h.naturalHeight,a.channels=4;else if("[object HTMLVideoElement]"===x(h))a.element=h,a.width=h.videoWidth,a.height=h.videoHeight,a.channels=4;else if(k(h)){f=a.width||h[0].length;n=a.height||h.length;q=a.channels;q=E(h[0][0])?q||h[0][0].length:q||1;p=C.shape(h);d=1;for(v=0;v<p.length;++v)d*=p[v];d=y.allocType(36193===a.type?5126:a.type,d);C.flatten(h,p,"",d);c(a,d);a.alignment=1;a.width=f;a.height=n;a.channels=q;a.format=a.internalformat=m[q];a.needsFree=!0}}function ma(a,
b,c,g,f){var k=a.element,l=a.data,m=a.internalformat,d=a.format,r=a.type,n=a.width,q=a.height;va(a);k?h.texSubImage2D(b,f,c,g,d,r,k):a.compressed?h.compressedTexSubImage2D(b,f,c,g,m,n,q,l):a.needsCopy?(u(),h.copyTexSubImage2D(b,f,c,g,a.xOffset,a.yOffset,n,q)):h.texSubImage2D(b,f,c,g,n,q,d,r,l)}function ga(){return Na.pop()||new q}function W(a){a.needsFree&&y.freeType(a.data);q.call(a);Na.push(a)}function R(){D.call(this);this.genMipmaps=!1;this.mipmapHint=4352;this.mipmask=0;this.images=Array(16)}
function G(a,b,c){var g=a.images[0]=ga();a.mipmask=1;g.width=a.width=b;g.height=a.height=c;g.channels=a.channels=4}function ba(a,b){var c=null;if(r(b))c=a.images[0]=ga(),K(c,a),S(c,b),a.mipmask=1;else if(Y(a,b),Array.isArray(b.mipmap))for(var g=b.mipmap,h=0;h<g.length;++h)c=a.images[h]=ga(),K(c,a),c.width>>=h,c.height>>=h,S(c,g[h]),a.mipmask|=1<<h;else c=a.images[0]=ga(),K(c,a),S(c,b),a.mipmask=1;K(a,a.images[0])}function na(a,b){for(var c=a.images,g=0;g<c.length&&c[g];++g){var f=c[g],k=b,l=g,m=f.element,
d=f.data,r=f.internalformat,n=f.format,q=f.type,t=f.width,y=f.height;va(f);m?h.texImage2D(k,l,n,n,q,m):f.compressed?h.compressedTexImage2D(k,l,r,t,y,0,d):f.needsCopy?(u(),h.copyTexImage2D(k,l,n,f.xOffset,f.yOffset,t,y,0)):h.texImage2D(k,l,n,t,y,0,n,q,d)}}function ya(){var a=Ja.pop()||new R;D.call(a);for(var b=a.mipmask=0;16>b;++b)a.images[b]=null;return a}function U(a){for(var b=a.images,c=0;c<b.length;++c)b[c]&&W(b[c]),b[c]=null;Ja.push(a)}function ia(){this.magFilter=this.minFilter=9728;this.wrapT=
this.wrapS=33071;this.anisotropic=1;this.genMipmaps=!1;this.mipmapHint=4352}function ka(a,b){"min"in b&&(a.minFilter=Q[b.min],0<=n.indexOf(a.minFilter)&&(a.genMipmaps=!0));"mag"in b&&(a.magFilter=ha[b.mag]);var c=a.wrapS,g=a.wrapT;if("wrap"in b){var h=b.wrap;"string"===typeof h?c=g=O[h]:Array.isArray(h)&&(c=O[h[0]],g=O[h[1]])}else"wrapS"in b&&(c=O[b.wrapS]),"wrapT"in b&&(g=O[b.wrapT]);a.wrapS=c;a.wrapT=g;"anisotropic"in b&&(a.anisotropic=b.anisotropic);if("mipmap"in b){c=!1;switch(typeof b.mipmap){case "string":a.mipmapHint=
ea[b.mipmap];c=a.genMipmaps=!0;break;case "boolean":c=a.genMipmaps=b.mipmap;break;case "object":a.genMipmaps=!1,c=!0}!c||"min"in b||(a.minFilter=9984)}}function ra(a,b){h.texParameteri(b,10241,a.minFilter);h.texParameteri(b,10240,a.magFilter);h.texParameteri(b,10242,a.wrapS);h.texParameteri(b,10243,a.wrapT);f.ext_texture_filter_anisotropic&&h.texParameteri(b,34046,a.anisotropic);a.genMipmaps&&(h.hint(33170,a.mipmapHint),h.generateMipmap(b))}function sa(a){D.call(this);this.mipmask=0;this.internalformat=
6408;this.id=Ba++;this.refCount=1;this.target=a;this.texture=h.createTexture();this.unit=-1;this.bindCount=0;this.texInfo=new ia;Z.profile&&(this.stats={size:0})}function da(a){h.activeTexture(33984);h.bindTexture(a.target,a.texture)}function ja(){var a=oa[0];a?h.bindTexture(a.target,a.texture):h.bindTexture(3553,null)}function la(a){var b=a.texture,c=a.unit,g=a.target;0<=c&&(h.activeTexture(33984+c),h.bindTexture(g,null),oa[c]=null);h.deleteTexture(b);a.texture=null;a.params=null;a.pixels=null;a.refCount=
0;delete ca[a.id];L.textureCount--}var ea={"don't care":4352,"dont care":4352,nice:4354,fast:4353},O={repeat:10497,clamp:33071,mirror:33648},ha={nearest:9728,linear:9729},Q=b({mipmap:9987,"nearest mipmap nearest":9984,"linear mipmap nearest":9985,"nearest mipmap linear":9986,"linear mipmap linear":9987},ha),pa={none:0,browser:37444},V={uint8:5121,rgba4:32819,rgb565:33635,"rgb5 a1":32820},X={alpha:6406,luminance:6409,"luminance alpha":6410,rgb:6407,rgba:6408,rgba4:32854,"rgb5 a1":32855,rgb565:36194},
T={};f.ext_srgb&&(X.srgb=35904,X.srgba=35906);f.oes_texture_float&&(V.float32=V["float"]=5126);f.oes_texture_half_float&&(V.float16=V["half float"]=36193);f.webgl_depth_texture&&(b(X,{depth:6402,"depth stencil":34041}),b(V,{uint16:5123,uint32:5125,"depth stencil":34042}));f.webgl_compressed_texture_s3tc&&b(T,{"rgb s3tc dxt1":33776,"rgba s3tc dxt1":33777,"rgba s3tc dxt3":33778,"rgba s3tc dxt5":33779});f.webgl_compressed_texture_atc&&b(T,{"rgb atc":35986,"rgba atc explicit alpha":35987,"rgba atc interpolated alpha":34798});
f.webgl_compressed_texture_pvrtc&&b(T,{"rgb pvrtc 4bppv1":35840,"rgb pvrtc 2bppv1":35841,"rgba pvrtc 4bppv1":35842,"rgba pvrtc 2bppv1":35843});f.webgl_compressed_texture_etc1&&(T["rgb etc1"]=36196);var ua=Array.prototype.slice.call(h.getParameter(34467));Object.keys(T).forEach(function(a){var b=T[a];0<=ua.indexOf(b)&&(X[a]=b)});var Ea=Object.keys(X);p.textureFormats=Ea;var Fa=[];Object.keys(X).forEach(function(a){Fa[X[a]]=a});var Ha=[];Object.keys(V).forEach(function(a){Ha[V[a]]=a});var Ia=[];Object.keys(ha).forEach(function(a){Ia[ha[a]]=
a});var Ca=[];Object.keys(Q).forEach(function(a){Ca[Q[a]]=a});var Da=[];Object.keys(O).forEach(function(a){Da[O[a]]=a});var Pa=Ea.reduce(function(a,b){var c=X[b];6409===c||6406===c||6409===c||6410===c||6402===c||34041===c?a[c]=c:32855===c||0<=b.indexOf("rgba")?a[c]=6408:a[c]=6407;return a},{}),Na=[],Ja=[],Ba=0,ca={},ta=p.maxTextureUnits,oa=Array(ta).map(function(){return null});b(sa.prototype,{bind:function(){this.bindCount+=1;var a=this.unit;if(0>a){for(var b=0;b<ta;++b){var c=oa[b];if(c){if(0<c.bindCount)continue;
c.unit=-1}oa[b]=this;a=b;break}Z.profile&&L.maxTextureUnits<a+1&&(L.maxTextureUnits=a+1);this.unit=a;h.activeTexture(33984+a);h.bindTexture(this.target,this.texture)}return a},unbind:function(){--this.bindCount},decRef:function(){0>=--this.refCount&&la(this)}});Z.profile&&(L.getTotalTextureSize=function(){var a=0;Object.keys(ca).forEach(function(b){a+=ca[b].stats.size});return a});return{create2D:function(b,c){function g(b,c){var e=f.texInfo;ia.call(e);var h=ya();"number"===typeof b?"number"===typeof c?
G(h,b|0,c|0):G(h,b|0,b|0):b?(ka(e,b),ba(h,b)):G(h,1,1);e.genMipmaps&&(h.mipmask=(h.width<<1)-1);f.mipmask=h.mipmask;K(f,h);f.internalformat=h.internalformat;g.width=h.width;g.height=h.height;da(f);na(h,3553);ra(e,3553);ja();U(h);Z.profile&&(f.stats.size=a(f.internalformat,f.type,h.width,h.height,e.genMipmaps,!1));g.format=Fa[f.internalformat];g.type=Ha[f.type];g.mag=Ia[e.magFilter];g.min=Ca[e.minFilter];g.wrapS=Da[e.wrapS];g.wrapT=Da[e.wrapT];return g}var f=new sa(3553);ca[f.id]=f;L.textureCount++;
g(b,c);g.subimage=function(a,b,c,e){b|=0;c|=0;e|=0;var d=ga();K(d,f);d.width=0;d.height=0;S(d,a);d.width=d.width||(f.width>>e)-b;d.height=d.height||(f.height>>e)-c;da(f);ma(d,3553,b,c,e);ja();W(d);return g};g.resize=function(b,c){var e=b|0,k=c|0||e;if(e===f.width&&k===f.height)return g;g.width=f.width=e;g.height=f.height=k;da(f);for(var d=0;f.mipmask>>d;++d)h.texImage2D(3553,d,f.format,e>>d,k>>d,0,f.format,f.type,null);ja();Z.profile&&(f.stats.size=a(f.internalformat,f.type,e,k,!1,!1));return g};
g._reglType="texture2d";g._texture=f;Z.profile&&(g.stats=f.stats);g.destroy=function(){f.decRef()};return g},createCube:function(b,c,g,f,k,l){function m(b,c,e,g,h,f){var k,l=n.texInfo;ia.call(l);for(k=0;6>k;++k)d[k]=ya();if("number"===typeof b||!b)for(b=b|0||1,k=0;6>k;++k)G(d[k],b,b);else if("object"===typeof b)if(c)ba(d[0],b),ba(d[1],c),ba(d[2],e),ba(d[3],g),ba(d[4],h),ba(d[5],f);else if(ka(l,b),Y(n,b),"faces"in b)for(b=b.faces,k=0;6>k;++k)K(d[k],n),ba(d[k],b[k]);else for(k=0;6>k;++k)ba(d[k],b);
K(n,d[0]);n.mipmask=l.genMipmaps?(d[0].width<<1)-1:d[0].mipmask;n.internalformat=d[0].internalformat;m.width=d[0].width;m.height=d[0].height;da(n);for(k=0;6>k;++k)na(d[k],34069+k);ra(l,34067);ja();Z.profile&&(n.stats.size=a(n.internalformat,n.type,m.width,m.height,l.genMipmaps,!0));m.format=Fa[n.internalformat];m.type=Ha[n.type];m.mag=Ia[l.magFilter];m.min=Ca[l.minFilter];m.wrapS=Da[l.wrapS];m.wrapT=Da[l.wrapT];for(k=0;6>k;++k)U(d[k]);return m}var n=new sa(34067);ca[n.id]=n;L.cubeCount++;var d=Array(6);
m(b,c,g,f,k,l);m.subimage=function(a,b,c,d,e){c|=0;d|=0;e|=0;var g=ga();K(g,n);g.width=0;g.height=0;S(g,b);g.width=g.width||(n.width>>e)-c;g.height=g.height||(n.height>>e)-d;da(n);ma(g,34069+a,c,d,e);ja();W(g);return m};m.resize=function(b){b|=0;if(b!==n.width){m.width=n.width=b;m.height=n.height=b;da(n);for(var c=0;6>c;++c)for(var d=0;n.mipmask>>d;++d)h.texImage2D(34069+c,d,n.format,b>>d,b>>d,0,n.format,n.type,null);ja();Z.profile&&(n.stats.size=a(n.internalformat,n.type,m.width,m.height,!1,!0));
return m}};m._reglType="textureCube";m._texture=n;Z.profile&&(m.stats=n.stats);m.destroy=function(){n.decRef()};return m},clear:function(){for(var a=0;a<ta;++a)h.activeTexture(33984+a),h.bindTexture(3553,null),oa[a]=null;F(ca).forEach(la);L.cubeCount=0;L.textureCount=0},getTexture:function(a){return null},restore:function(){F(ca).forEach(function(a){a.texture=h.createTexture();h.bindTexture(a.target,a.texture);for(var b=0;32>b;++b)if(0!==(a.mipmask&1<<b))if(3553===a.target)h.texImage2D(3553,b,a.internalformat,
a.width>>b,a.height>>b,0,a.internalformat,a.type,null);else for(var c=0;6>c;++c)h.texImage2D(34069+c,b,a.internalformat,a.width>>b,a.height>>b,0,a.internalformat,a.type,null);ra(a.texInfo,a.target)})}}}},{"./constants/arraytypes.json":3,"./util/extend":22,"./util/flatten":23,"./util/is-array-like":24,"./util/is-ndarray":25,"./util/is-typed-array":26,"./util/pool":28,"./util/to-half-float":30,"./util/values":31}],19:[function(f,p,u){p.exports=function(f,k){function p(){this.endQueryIndex=this.startQueryIndex=
-1;this.sum=0;this.stats=null}function r(a,b,c){var f=F.pop()||new p;f.startQueryIndex=a;f.endQueryIndex=b;f.sum=0;f.stats=c;u.push(f)}var c=k.ext_disjoint_timer_query;if(!c)return null;var a=[],b=[],F=[],u=[],t=[],y=[];return{beginQuery:function(g){var f=a.pop()||c.createQueryEXT();c.beginQueryEXT(35007,f);b.push(f);r(b.length-1,b.length,g)},endQuery:function(){c.endQueryEXT(35007)},pushScopeStats:r,update:function(){var g,f;g=b.length;if(0!==g){y.length=Math.max(y.length,g+1);t.length=Math.max(t.length,
g+1);t[0]=0;var k=y[0]=0;for(f=g=0;f<b.length;++f){var l=b[f];c.getQueryObjectEXT(l,34919)?(k+=c.getQueryObjectEXT(l,34918),a.push(l)):b[g++]=l;t[f+1]=k;y[f+1]=g}b.length=g;for(f=g=0;f<u.length;++f){var k=u[f],n=k.startQueryIndex,l=k.endQueryIndex;k.sum+=t[l]-t[n];n=y[n];l=y[l];l===n?(k.stats.gpuTime+=k.sum/1E6,F.push(k)):(k.startQueryIndex=n,k.endQueryIndex=l,u[g++]=k)}u.length=g}},getNumPendingQueries:function(){return b.length},clear:function(){a.push.apply(a,b);for(var g=0;g<a.length;g++)c.deleteQueryEXT(a[g]);
b.length=0;a.length=0},restore:function(){b.length=0;a.length=0}}}},{}],20:[function(f,p,u){p.exports="undefined"!==typeof performance&&performance.now?function(){return performance.now()}:function(){return+new Date}},{}],21:[function(f,p,u){function l(f){return Array.prototype.slice.call(f)}function k(f){return l(f).join("")}var x=f("./extend");p.exports=function(){function f(){var b=[],c=[];return x(function(){b.push.apply(b,l(arguments))},{def:function(){var f="v"+a++;c.push(f);0<arguments.length&&
(b.push(f,"="),b.push.apply(b,l(arguments)),b.push(";"));return f},toString:function(){return k([0<c.length?"var "+c+";":"",k(b)])}})}function c(){function a(f,k){c(f,k,"=",b.def(f,k),";")}var b=f(),c=f(),k=b.toString,t=c.toString;return x(function(){b.apply(b,l(arguments))},{def:b.def,entry:b,exit:c,save:a,set:function(c,f,k){a(c,f);b(c,f,"=",k,";")},toString:function(){return k()+t()}})}var a=0,b=[],p=[],u=f(),t={};return{global:u,link:function(c){for(var g=0;g<p.length;++g)if(p[g]===c)return b[g];
g="g"+a++;b.push(g);p.push(c);return g},block:f,proc:function(a,b){function f(){var a="a"+l.length;l.push(a);return a}var l=[];b=b||0;for(var r=0;r<b;++r)f();var r=c(),n=r.toString;return t[a]=x(r,{arg:f,toString:function(){return k(["function(",l.join(),"){",n(),"}"])}})},scope:c,cond:function(){var a=k(arguments),b=c(),f=c(),r=b.toString,t=f.toString;return x(b,{then:function(){b.apply(b,l(arguments));return this},"else":function(){f.apply(f,l(arguments));return this},toString:function(){var b=
t();b&&(b="else{"+b+"}");return k(["if(",a,"){",r(),"}",b])}})},compile:function(){var a=['"use strict";',u,"return {"];Object.keys(t).forEach(function(b){a.push('"',b,'":',t[b].toString(),",")});a.push("}");var c=k(a).replace(/;/g,";\n").replace(/}/g,"}\n").replace(/{/g,"{\n");return Function.apply(null,b.concat(c)).apply(null,p)}}}},{"./extend":22}],22:[function(f,p,u){p.exports=function(f,k){for(var p=Object.keys(k),r=0;r<p.length;++r)f[p[r]]=k[p[r]];return f}},{}],23:[function(f,p,u){function l(f,
c,a,b,k,l){for(var t=0;t<c;++t)for(var p=f[t],g=0;g<a;++g)for(var x=p[g],u=0;u<b;++u)k[l++]=x[u]}function k(f,c,a,b,p){for(var x=1,t=a+1;t<c.length;++t)x*=c[t];var y=c[a];if(4===c.length-a){var g=c[a+1],u=c[a+2];c=c[a+3];for(t=0;t<y;++t)l(f[t],g,u,c,b,p),p+=x}else for(t=0;t<y;++t)k(f[t],c,a+1,b,p),p+=x}var x=f("./pool");p.exports={shape:function(f){for(var c=[];f.length;f=f[0])c.push(f.length);return c},flatten:function(f,c,a,b){var p=1;if(c.length)for(var u=0;u<c.length;++u)p*=c[u];else p=0;a=b||
x.allocType(a,p);switch(c.length){case 0:break;case 1:b=c[0];for(c=0;c<b;++c)a[c]=f[c];break;case 2:b=c[0];c=c[1];for(u=p=0;u<b;++u)for(var t=f[u],y=0;y<c;++y)a[p++]=t[y];break;case 3:l(f,c[0],c[1],c[2],a,0);break;default:k(f,c,0,a,0)}return a}}},{"./pool":28}],24:[function(f,p,u){var l=f("./is-typed-array");p.exports=function(f){return Array.isArray(f)||l(f)}},{"./is-typed-array":26}],25:[function(f,p,u){var l=f("./is-typed-array");p.exports=function(f){return!!f&&"object"===typeof f&&Array.isArray(f.shape)&&
Array.isArray(f.stride)&&"number"===typeof f.offset&&f.shape.length===f.stride.length&&(Array.isArray(f.data)||l(f.data))}},{"./is-typed-array":26}],26:[function(f,p,u){var l=f("../constants/arraytypes.json");p.exports=function(f){return Object.prototype.toString.call(f)in l}},{"../constants/arraytypes.json":3}],27:[function(f,p,u){p.exports=function(f,k){for(var p=Array(f),r=0;r<f;++r)p[r]=k(r);return p}},{}],28:[function(f,p,u){function l(c){var a,b;a=(65535<c)<<4;c>>>=a;b=(255<c)<<3;c>>>=b;a|=
b;b=(15<c)<<2;c>>>=b;a|=b;b=(3<c)<<1;return a|b|c>>>b>>1}function k(c){a:{for(var a=16;268435456>=a;a*=16)if(c<=a){c=a;break a}c=0}a=r[l(c)>>2];return 0<a.length?a.pop():new ArrayBuffer(c)}function x(c){r[l(c.byteLength)>>2].push(c)}var r=f("./loop")(8,function(){return[]});p.exports={alloc:k,free:x,allocType:function(c,a){var b=null;switch(c){case 5120:b=new Int8Array(k(a),0,a);break;case 5121:b=new Uint8Array(k(a),0,a);break;case 5122:b=new Int16Array(k(2*a),0,a);break;case 5123:b=new Uint16Array(k(2*
a),0,a);break;case 5124:b=new Int32Array(k(4*a),0,a);break;case 5125:b=new Uint32Array(k(4*a),0,a);break;case 5126:b=new Float32Array(k(4*a),0,a);break;default:return null}return b.length!==a?b.subarray(0,a):b},freeType:function(c){x(c.buffer)}}},{"./loop":27}],29:[function(f,p,u){p.exports="function"===typeof requestAnimationFrame&&"function"===typeof cancelAnimationFrame?{next:function(f){return requestAnimationFrame(f)},cancel:function(f){return cancelAnimationFrame(f)}}:{next:function(f){return setTimeout(f,
16)},cancel:clearTimeout}},{}],30:[function(f,p,u){var l=f("./pool"),k=new Float32Array(1),x=new Uint32Array(k.buffer);p.exports=function(f){for(var c=l.allocType(5123,f.length),a=0;a<f.length;++a)if(isNaN(f[a]))c[a]=65535;else if(Infinity===f[a])c[a]=31744;else if(-Infinity===f[a])c[a]=64512;else{k[0]=f[a];var b=x[0],p=b>>>31<<15,u=(b<<1>>>24)-127,b=b>>13&1023;c[a]=-24>u?p:-14>u?p+(b+1024>>-14-u):15<u?p+31744:p+(u+15<<10)+b}return c}},{"./pool":28}],31:[function(f,p,u){p.exports=function(f){return Object.keys(f).map(function(k){return f[k]})}},
{}],32:[function(f,p,u){function l(a,b,f){function k(){var b=window.innerWidth,g=window.innerHeight;a!==document.body&&(g=a.getBoundingClientRect(),b=g.right-g.left,g=g.top-g.bottom);l.width=f*b;l.height=f*g;c(l.style,{width:b+"px",height:g+"px"})}var l=document.createElement("canvas");c(l.style,{border:0,margin:0,padding:0,top:0,left:0});a.appendChild(l);a===document.body&&(l.style.position="absolute",c(a.style,{margin:0,padding:0}));window.addEventListener("resize",k,!1);k();return{canvas:l,onDestroy:function(){window.removeEventListener("resize",
k);a.removeChild(l)}}}function k(a,b){function c(f){try{return a.getContext(f,b)}catch(k){return null}}return c("webgl")||c("experimental-webgl")||c("webgl-experimental")}function x(a){return"string"===typeof a?a.split():a}function r(a){return"string"===typeof a?document.querySelector(a):a}var c=f("./util/extend");p.exports=function(a){var b=a||{},c,f,p,u;a={};var g=[],E=[],C="undefined"===typeof window?1:window.devicePixelRatio,N=!1,n=function(a){},m=function(){};"string"===typeof b?c=document.querySelector(b):
"object"===typeof b&&("string"===typeof b.nodeName&&"function"===typeof b.appendChild&&"function"===typeof b.getBoundingClientRect?c=b:"function"===typeof b.drawArrays||"function"===typeof b.drawElements?(u=b,p=u.canvas):("gl"in b?u=b.gl:"canvas"in b?p=r(b.canvas):"container"in b&&(f=r(b.container)),"attributes"in b&&(a=b.attributes),"extensions"in b&&(g=x(b.extensions)),"optionalExtensions"in b&&(E=x(b.optionalExtensions)),"onDone"in b&&(n=b.onDone),"profile"in b&&(N=!!b.profile),"pixelRatio"in b&&
(C=+b.pixelRatio)));c&&("canvas"===c.nodeName.toLowerCase()?p=c:f=c);if(!u){if(!p){c=l(f||document.body,n,C);if(!c)return null;p=c.canvas;m=c.onDestroy}u=k(p,a)}return u?{gl:u,canvas:p,container:f,extensions:g,optionalExtensions:E,pixelRatio:C,profile:N,onDone:n,onDestroy:m}:(m(),n("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"),null)}},{"./util/extend":22}],33:[function(f,p,u){function l(a,b){for(var c=0;c<a.length;++c)if(a[c]===b)return c;return-1}var k=
f("./lib/util/extend"),x=f("./lib/dynamic"),r=f("./lib/util/raf"),c=f("./lib/util/clock"),a=f("./lib/strings"),b=f("./lib/webgl"),F=f("./lib/extension"),M=f("./lib/limits"),t=f("./lib/buffer"),y=f("./lib/elements"),g=f("./lib/texture"),E=f("./lib/renderbuffer"),C=f("./lib/framebuffer"),N=f("./lib/attribute"),n=f("./lib/shader"),m=f("./lib/read"),B=f("./lib/core"),Y=f("./lib/stats"),L=f("./lib/timer");p.exports=function(f){function h(){if(0===Q.length)G&&G.update(),T=null;else{T=r.next(h);K();for(var a=
Q.length-1;0<=a;--a){var b=Q[a];b&&b(U,null,0)}q.flush();G&&G.update()}}function p(){!T&&0<Q.length&&(T=r.next(h))}function u(){T&&(r.cancel(h),T=null)}function La(a){a.preventDefault();u();pa.forEach(function(a){a()})}function za(a){q.getError();ma.restore();sa.restore();ka.restore();da.restore();ja.restore();la.restore();G&&G.restore();ea.procs.refresh();p();V.forEach(function(a){a()})}function Ga(a){function b(a){var c={},f={};Object.keys(a).forEach(function(b){var g=a[b];x.isDynamic(g)?f[b]=x.unbox(g,
b):c[b]=g});return{dynamic:f,"static":c}}function c(a){for(;q.length<a;)q.push(null);return q}var f=b(a.context||{}),g=b(a.uniforms||{}),h=b(a.attributes||{}),l=b(function(a){function b(a){if(a in c){var f=c[a];delete c[a];Object.keys(f).forEach(function(b){c[a+"."+b]=f[b]})}}var c=k({},a);delete c.uniforms;delete c.attributes;delete c.context;"stencil"in c&&c.stencil.op&&(c.stencil.opBack=c.stencil.opFront=c.stencil.op,delete c.stencil.op);b("blend");b("depth");b("cull");b("stencil");b("polygonOffset");
b("scissor");b("sample");return c}(a));a={gpuTime:0,cpuTime:0,count:0};var f=ea.compile(l,h,g,f,a),m=f.draw,n=f.batch,p=f.scope,q=[];return k(function(a,b){var f;if("function"===typeof a)return p.call(this,null,a,0);if("function"===typeof b)if("number"===typeof a)for(f=0;f<a;++f)p.call(this,null,b,f);else if(Array.isArray(a))for(f=0;f<a.length;++f)p.call(this,a[f],b,f);else return p.call(this,a,b,0);else if("number"===typeof a){if(0<a)return n.call(this,c(a|0),a|0)}else if(Array.isArray(a)){if(a.length)return n.call(this,
a,a.length)}else return m.call(this,a)},{stats:a})}function Z(a){Q.push(a);p();return{cancel:function(){function b(){var a=l(Q,b);Q[a]=Q[Q.length-1];--Q.length;0>=Q.length&&u()}var c=l(Q,a);Q[c]=b}}}function D(){var a=O.viewport,b=O.scissor_box;a[0]=a[1]=b[0]=b[1]=0;U.viewportWidth=U.framebufferWidth=U.drawingBufferWidth=a[2]=b[2]=q.drawingBufferWidth;U.viewportHeight=U.framebufferHeight=U.drawingBufferHeight=a[3]=b[3]=q.drawingBufferHeight}function K(){U.tick+=1;U.time=va();D();ea.procs.poll()}function Aa(){D();
ea.procs.refresh();G&&G.update()}function va(){return(c()-ba)/1E3}f=b(f);if(!f)return null;var q=f.gl,S=q.getContextAttributes();q.isContextLost();var ma=F(q,f);if(!ma)return null;var ga=a(),W=Y(),R=ma.extensions,G=L(q,R),ba=c(),na=q.drawingBufferWidth,ya=q.drawingBufferHeight,U={tick:0,time:0,viewportWidth:na,viewportHeight:ya,framebufferWidth:na,framebufferHeight:ya,drawingBufferWidth:na,drawingBufferHeight:ya,pixelRatio:f.pixelRatio},ia=M(q,R),ka=t(q,W,f),ra=y(q,R,ka,W),na=N(q,R,ia,ka,ga),sa=n(q,
ga,W,f),da=g(q,R,ia,function(){ea.procs.poll()},U,W,f),ja=E(q,R,ia,W,f),la=C(q,R,ia,da,ja,W),ea=B(q,ga,R,ia,ka,ra,da,la,{},na,sa,{elements:null,primitive:4,count:-1,offset:0,instances:-1},U,G,f),ga=m(q,la,ea.procs.poll,U,S,R),O=ea.next,ha=q.canvas,Q=[],pa=[],V=[],X=[f.onDestroy],T=null;ha&&(ha.addEventListener("webglcontextlost",La,!1),ha.addEventListener("webglcontextrestored",za,!1));Aa();S=k(Ga,{clear:function(a){var b=0;ea.procs.poll();var c=a.color;c&&(q.clearColor(+c[0]||0,+c[1]||0,+c[2]||0,
+c[3]||0),b|=16384);"depth"in a&&(q.clearDepth(+a.depth),b|=256);"stencil"in a&&(q.clearStencil(a.stencil|0),b|=1024);q.clear(b)},prop:x.define.bind(null,1),context:x.define.bind(null,2),"this":x.define.bind(null,3),draw:Ga({}),buffer:function(a){return ka.create(a,34962,!1,!1)},elements:function(a){return ra.create(a,!1)},texture:da.create2D,cube:da.createCube,renderbuffer:ja.create,framebuffer:la.create,framebufferCube:la.createCube,attributes:S,frame:Z,on:function(a,b){var c;switch(a){case "frame":return Z(b);
case "lost":c=pa;break;case "restore":c=V;break;case "destroy":c=X}c.push(b);return{cancel:function(){for(var a=0;a<c.length;++a)if(c[a]===b){c[a]=c[c.length-1];c.pop();break}}}},limits:ia,hasExtension:function(a){return 0<=ia.extensions.indexOf(a.toLowerCase())},read:ga,destroy:function(){Q.length=0;u();ha&&(ha.removeEventListener("webglcontextlost",La),ha.removeEventListener("webglcontextrestored",za));sa.clear();la.clear();ja.clear();da.clear();ra.clear();ka.clear();G&&G.clear();X.forEach(function(a){a()})},
_gl:q,_refresh:Aa,poll:function(){K();G&&G.update()},now:va,stats:W});f.onDone(null,S);return S}},{"./lib/attribute":1,"./lib/buffer":2,"./lib/core":7,"./lib/dynamic":8,"./lib/elements":9,"./lib/extension":10,"./lib/framebuffer":11,"./lib/limits":12,"./lib/read":13,"./lib/renderbuffer":14,"./lib/shader":15,"./lib/stats":16,"./lib/strings":17,"./lib/texture":18,"./lib/timer":19,"./lib/util/clock":20,"./lib/util/extend":22,"./lib/util/raf":29,"./lib/webgl":32}]},{},[33])(33)});
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlZ2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbihPYSl7XCJvYmplY3RcIj09PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1PYSgpOlwiZnVuY3Rpb25cIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLE9hKTooXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB3aW5kb3c/d2luZG93OlwidW5kZWZpbmVkXCIhPT10eXBlb2YgZ2xvYmFsP2dsb2JhbDpcInVuZGVmaW5lZFwiIT09dHlwZW9mIHNlbGY/c2VsZjp0aGlzKS5jcmVhdGVSRUdMPU9hKCl9KShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBmKHAsdSxsKXtmdW5jdGlvbiBrKGMsYSl7aWYoIXVbY10pe2lmKCFwW2NdKXt2YXIgYj1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFhJiZiKXJldHVybiBiKGMsITApO2lmKHgpcmV0dXJuIHgoYywhMCk7Yj1FcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrYytcIidcIik7dGhyb3cgYi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGI7fWI9XG51W2NdPXtleHBvcnRzOnt9fTtwW2NdWzBdLmNhbGwoYi5leHBvcnRzLGZ1bmN0aW9uKGEpe3ZhciBiPXBbY11bMV1bYV07cmV0dXJuIGsoYj9iOmEpfSxiLGIuZXhwb3J0cyxmLHAsdSxsKX1yZXR1cm4gdVtjXS5leHBvcnRzfWZvcih2YXIgeD1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLHI9MDtyPGwubGVuZ3RoO3IrKylrKGxbcl0pO3JldHVybiBrfSh7MTpbZnVuY3Rpb24oZixwLHUpe2Z1bmN0aW9uIGwoKXt0aGlzLnc9dGhpcy56PXRoaXMueT10aGlzLng9dGhpcy5zdGF0ZT0wO3RoaXMuYnVmZmVyPW51bGw7dGhpcy5zaXplPTA7dGhpcy5ub3JtYWxpemVkPSExO3RoaXMudHlwZT01MTI2O3RoaXMuZGl2aXNvcj10aGlzLnN0cmlkZT10aGlzLm9mZnNldD0wfXAuZXhwb3J0cz1mdW5jdGlvbihrLHgscixjLGEpe2s9ci5tYXhBdHRyaWJ1dGVzO3g9QXJyYXkoayk7Zm9yKHI9MDtyPGs7KytyKXhbcl09bmV3IGw7cmV0dXJue1JlY29yZDpsLHNjb3BlOnt9LHN0YXRlOnh9fX0sXG57fV0sMjpbZnVuY3Rpb24oZixwLHUpe2Z1bmN0aW9uIGwoYyl7cmV0dXJuIHRbT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGMpXXwwfWZ1bmN0aW9uIGsoYyxhKXtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYiljW2JdPWFbYl19ZnVuY3Rpb24geChjLGEsYixrLGwscix4KXtmb3IodmFyIGc9MCxoPTA7aDxiOysraClmb3IodmFyIGY9MDtmPGs7KytmKWNbZysrXT1hW2wqaCtyKmYreF19dmFyIHI9ZihcIi4vdXRpbC9pcy10eXBlZC1hcnJheVwiKSxjPWYoXCIuL3V0aWwvaXMtbmRhcnJheVwiKSxhPWYoXCIuL3V0aWwvdmFsdWVzXCIpLGI9ZihcIi4vdXRpbC9wb29sXCIpO3U9ZihcIi4vdXRpbC9mbGF0dGVuXCIpO3ZhciBGPXUuZmxhdHRlbixNPXUuc2hhcGUsdD1mKFwiLi9jb25zdGFudHMvYXJyYXl0eXBlcy5qc29uXCIpLHk9ZihcIi4vY29uc3RhbnRzL2R0eXBlcy5qc29uXCIpLGc9ZihcIi4vY29uc3RhbnRzL3VzYWdlLmpzb25cIiksRT1bXTtFWzUxMjBdPTE7RVs1MTIyXT0yO0VbNTEyNF09XG40O0VbNTEyMV09MTtFWzUxMjNdPTI7RVs1MTI1XT00O0VbNTEyNl09NDtwLmV4cG9ydHM9ZnVuY3Rpb24oZix0LG4pe2Z1bmN0aW9uIG0oYyl7dGhpcy5pZD1IKys7dGhpcy5idWZmZXI9Zi5jcmVhdGVCdWZmZXIoKTt0aGlzLnR5cGU9Yzt0aGlzLnVzYWdlPTM1MDQ0O3RoaXMuYnl0ZUxlbmd0aD0wO3RoaXMuZGltZW5zaW9uPTE7dGhpcy5kdHlwZT01MTIxO3RoaXMucGVyc2lzdGVudERhdGE9bnVsbDtuLnByb2ZpbGUmJih0aGlzLnN0YXRzPXtzaXplOjB9KX1mdW5jdGlvbiBCKGMsYSxiKXtjLmJ5dGVMZW5ndGg9YS5ieXRlTGVuZ3RoO2YuYnVmZmVyRGF0YShjLnR5cGUsYSxiKX1mdW5jdGlvbiBwKGEsaCxtLGYsZyxuKXthLnVzYWdlPW07aWYoQXJyYXkuaXNBcnJheShoKSl7aWYoYS5kdHlwZT1mfHw1MTI2LDA8aC5sZW5ndGgpaWYoQXJyYXkuaXNBcnJheShoWzBdKSl7Zz1NKGgpO2Zvcih2YXIgSz1mPTE7SzxnLmxlbmd0aDsrK0spZio9Z1tLXTthLmRpbWVuc2lvbj1mO2g9RihoLFxuZyxhLmR0eXBlKTtCKGEsaCxtKTtuP2EucGVyc2lzdGVudERhdGE9aDpiLmZyZWVUeXBlKGgpfWVsc2VcIm51bWJlclwiPT09dHlwZW9mIGhbMF0/KGEuZGltZW5zaW9uPWcsZz1iLmFsbG9jVHlwZShhLmR0eXBlLGgubGVuZ3RoKSxrKGcsaCksQihhLGcsbSksbj9hLnBlcnNpc3RlbnREYXRhPWc6Yi5mcmVlVHlwZShnKSk6cihoWzBdKSYmKGEuZGltZW5zaW9uPWhbMF0ubGVuZ3RoLGEuZHR5cGU9Znx8bChoWzBdKXx8NTEyNixoPUYoaCxbaC5sZW5ndGgsaFswXS5sZW5ndGhdLGEuZHR5cGUpLEIoYSxoLG0pLG4/YS5wZXJzaXN0ZW50RGF0YT1oOmIuZnJlZVR5cGUoaCkpfWVsc2UgaWYocihoKSlhLmR0eXBlPWZ8fGwoaCksYS5kaW1lbnNpb249ZyxCKGEsaCxtKSxuJiYoYS5wZXJzaXN0ZW50RGF0YT1uZXcgVWludDhBcnJheShuZXcgVWludDhBcnJheShoLmJ1ZmZlcikpKTtlbHNlIGlmKGMoaCkpe2c9aC5zaGFwZTt2YXIgQz1oLnN0cmlkZSxLPWgub2Zmc2V0LHk9MCxxPTAsUz0wLHQ9XG4wOzE9PT1nLmxlbmd0aD8oeT1nWzBdLHE9MSxTPUNbMF0sdD0wKToyPT09Zy5sZW5ndGgmJih5PWdbMF0scT1nWzFdLFM9Q1swXSx0PUNbMV0pO2EuZHR5cGU9Znx8bChoLmRhdGEpfHw1MTI2O2EuZGltZW5zaW9uPXE7Zz1iLmFsbG9jVHlwZShhLmR0eXBlLHkqcSk7eChnLGguZGF0YSx5LHEsUyx0LEspO0IoYSxnLG0pO24/YS5wZXJzaXN0ZW50RGF0YT1nOmIuZnJlZVR5cGUoZyl9fWZ1bmN0aW9uIEwoYyl7dC5idWZmZXJDb3VudC0tO2YuZGVsZXRlQnVmZmVyKGMuYnVmZmVyKTtjLmJ1ZmZlcj1udWxsO2RlbGV0ZSBoW2MuaWRdfXZhciBIPTAsaD17fTttLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7Zi5iaW5kQnVmZmVyKHRoaXMudHlwZSx0aGlzLmJ1ZmZlcil9O20ucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtMKHRoaXMpfTt2YXIgZmE9W107bi5wcm9maWxlJiYodC5nZXRUb3RhbEJ1ZmZlclNpemU9ZnVuY3Rpb24oKXt2YXIgYz0wO09iamVjdC5rZXlzKGgpLmZvckVhY2goZnVuY3Rpb24oYSl7Yys9XG5oW2FdLnN0YXRzLnNpemV9KTtyZXR1cm4gY30pO3JldHVybntjcmVhdGU6ZnVuY3Rpb24oYSxCLEgsZmEpe2Z1bmN0aW9uIHUoYSl7dmFyIGg9MzUwNDQsYj1udWxsLHE9MCxrPTAsbT0xO0FycmF5LmlzQXJyYXkoYSl8fHIoYSl8fGMoYSk/Yj1hOlwibnVtYmVyXCI9PT10eXBlb2YgYT9xPWF8MDphJiYoXCJkYXRhXCJpbiBhJiYoYj1hLmRhdGEpLFwidXNhZ2VcImluIGEmJihoPWdbYS51c2FnZV0pLFwidHlwZVwiaW4gYSYmKGs9eVthLnR5cGVdKSxcImRpbWVuc2lvblwiaW4gYSYmKG09YS5kaW1lbnNpb258MCksXCJsZW5ndGhcImluIGEmJihxPWEubGVuZ3RofDApKTtELmJpbmQoKTtiP3AoRCxiLGgsayxtLGZhKTooZi5idWZmZXJEYXRhKEQudHlwZSxxLGgpLEQuZHR5cGU9a3x8NTEyMSxELnVzYWdlPWgsRC5kaW1lbnNpb249bSxELmJ5dGVMZW5ndGg9cSk7bi5wcm9maWxlJiYoRC5zdGF0cy5zaXplPUQuYnl0ZUxlbmd0aCpFW0QuZHR5cGVdKTtyZXR1cm4gdX10LmJ1ZmZlckNvdW50Kys7dmFyIEQ9XG5uZXcgbShCKTtoW0QuaWRdPUQ7SHx8dShhKTt1Ll9yZWdsVHlwZT1cImJ1ZmZlclwiO3UuX2J1ZmZlcj1EO3Uuc3ViZGF0YT1mdW5jdGlvbihhLGgpe3ZhciBtPShofHwwKXwwLHE7RC5iaW5kKCk7aWYoQXJyYXkuaXNBcnJheShhKSl7aWYoMDxhLmxlbmd0aClpZihcIm51bWJlclwiPT09dHlwZW9mIGFbMF0pe3ZhciBnPWIuYWxsb2NUeXBlKEQuZHR5cGUsYS5sZW5ndGgpO2soZyxhKTtmLmJ1ZmZlclN1YkRhdGEoRC50eXBlLG0sZyk7Yi5mcmVlVHlwZShnKX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoYVswXSl8fHIoYVswXSkpcT1NKGEpLGc9RihhLHEsRC5kdHlwZSksZi5idWZmZXJTdWJEYXRhKEQudHlwZSxtLGcpLGIuZnJlZVR5cGUoZyl9ZWxzZSBpZihyKGEpKWYuYnVmZmVyU3ViRGF0YShELnR5cGUsbSxhKTtlbHNlIGlmKGMoYSkpe3E9YS5zaGFwZTt2YXIgbj1hLnN0cmlkZSxCPWc9MCx5PTAsdD0wOzE9PT1xLmxlbmd0aD8oZz1xWzBdLEI9MSx5PW5bMF0sdD0wKToyPT09cS5sZW5ndGgmJlxuKGc9cVswXSxCPXFbMV0seT1uWzBdLHQ9blsxXSk7cT1BcnJheS5pc0FycmF5KGEuZGF0YSk/RC5kdHlwZTpsKGEuZGF0YSk7cT1iLmFsbG9jVHlwZShxLGcqQik7eChxLGEuZGF0YSxnLEIseSx0LGEub2Zmc2V0KTtmLmJ1ZmZlclN1YkRhdGEoRC50eXBlLG0scSk7Yi5mcmVlVHlwZShxKX1yZXR1cm4gdX07bi5wcm9maWxlJiYodS5zdGF0cz1ELnN0YXRzKTt1LmRlc3Ryb3k9ZnVuY3Rpb24oKXtMKEQpfTtyZXR1cm4gdX0sY3JlYXRlU3RyZWFtOmZ1bmN0aW9uKGEsYyl7dmFyIGg9ZmEucG9wKCk7aHx8KGg9bmV3IG0oYSkpO2guYmluZCgpO3AoaCxjLDM1MDQwLDAsMSwhMSk7cmV0dXJuIGh9LGRlc3Ryb3lTdHJlYW06ZnVuY3Rpb24oYSl7ZmEucHVzaChhKX0sY2xlYXI6ZnVuY3Rpb24oKXthKGgpLmZvckVhY2goTCk7ZmEuZm9yRWFjaChMKX0sZ2V0QnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBhJiZhLl9idWZmZXIgaW5zdGFuY2VvZiBtP2EuX2J1ZmZlcjpudWxsfSxyZXN0b3JlOmZ1bmN0aW9uKCl7YShoKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EuYnVmZmVyPVxuZi5jcmVhdGVCdWZmZXIoKTtmLmJpbmRCdWZmZXIoYS50eXBlLGEuYnVmZmVyKTtmLmJ1ZmZlckRhdGEoYS50eXBlLGEucGVyc2lzdGVudERhdGF8fGEuYnl0ZUxlbmd0aCxhLnVzYWdlKX0pfSxfaW5pdEJ1ZmZlcjpwfX19LHtcIi4vY29uc3RhbnRzL2FycmF5dHlwZXMuanNvblwiOjMsXCIuL2NvbnN0YW50cy9kdHlwZXMuanNvblwiOjQsXCIuL2NvbnN0YW50cy91c2FnZS5qc29uXCI6NixcIi4vdXRpbC9mbGF0dGVuXCI6MjMsXCIuL3V0aWwvaXMtbmRhcnJheVwiOjI1LFwiLi91dGlsL2lzLXR5cGVkLWFycmF5XCI6MjYsXCIuL3V0aWwvcG9vbFwiOjI4LFwiLi91dGlsL3ZhbHVlc1wiOjMxfV0sMzpbZnVuY3Rpb24oZixwLHUpe3AuZXhwb3J0cz17XCJbb2JqZWN0IEludDhBcnJheV1cIjo1MTIwLFwiW29iamVjdCBJbnQxNkFycmF5XVwiOjUxMjIsXCJbb2JqZWN0IEludDMyQXJyYXldXCI6NTEyNCxcIltvYmplY3QgVWludDhBcnJheV1cIjo1MTIxLFwiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV1cIjo1MTIxLFwiW29iamVjdCBVaW50MTZBcnJheV1cIjo1MTIzLFxuXCJbb2JqZWN0IFVpbnQzMkFycmF5XVwiOjUxMjUsXCJbb2JqZWN0IEZsb2F0MzJBcnJheV1cIjo1MTI2LFwiW29iamVjdCBGbG9hdDY0QXJyYXldXCI6NTEyMSxcIltvYmplY3QgQXJyYXlCdWZmZXJdXCI6NTEyMX19LHt9XSw0OltmdW5jdGlvbihmLHAsdSl7cC5leHBvcnRzPXtpbnQ4OjUxMjAsaW50MTY6NTEyMixpbnQzMjo1MTI0LHVpbnQ4OjUxMjEsdWludDE2OjUxMjMsdWludDMyOjUxMjUsXCJmbG9hdFwiOjUxMjYsZmxvYXQzMjo1MTI2fX0se31dLDU6W2Z1bmN0aW9uKGYscCx1KXtwLmV4cG9ydHM9e3BvaW50czowLHBvaW50OjAsbGluZXM6MSxsaW5lOjEsXCJsaW5lIGxvb3BcIjoyLFwibGluZSBzdHJpcFwiOjMsdHJpYW5nbGVzOjQsdHJpYW5nbGU6NCxcInRyaWFuZ2xlIHN0cmlwXCI6NSxcInRyaWFuZ2xlIGZhblwiOjZ9fSx7fV0sNjpbZnVuY3Rpb24oZixwLHUpe3AuZXhwb3J0cz17XCJzdGF0aWNcIjozNTA0NCxkeW5hbWljOjM1MDQ4LHN0cmVhbTozNTA0MH19LHt9XSw3OltmdW5jdGlvbihmLHAsdSl7ZnVuY3Rpb24gbChhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKXx8XG5NKGEpfHx0KGEpfWZ1bmN0aW9uIGsoYSl7cmV0dXJuIGEuc29ydChmdW5jdGlvbihhLGMpe3JldHVyblwidmlld3BvcnRcIj09PWE/LTE6XCJ2aWV3cG9ydFwiPT09Yz8xOmE8Yz8tMToxfSl9ZnVuY3Rpb24geChhLGMsYixrKXt0aGlzLnRoaXNEZXA9YTt0aGlzLmNvbnRleHREZXA9Yzt0aGlzLnByb3BEZXA9Yjt0aGlzLmFwcGVuZD1rfWZ1bmN0aW9uIHIoYSl7cmV0dXJuIGEmJiEoYS50aGlzRGVwfHxhLmNvbnRleHREZXB8fGEucHJvcERlcCl9ZnVuY3Rpb24gYyhhKXtyZXR1cm4gbmV3IHgoITEsITEsITEsYSl9ZnVuY3Rpb24gYShhLGMpe3ZhciBiPWEudHlwZTtyZXR1cm4gMD09PWI/KGI9YS5kYXRhLmxlbmd0aCxuZXcgeCghMCwxPD1iLDI8PWIsYykpOjQ9PT1iPyhiPWEuZGF0YSxuZXcgeChiLnRoaXNEZXAsYi5jb250ZXh0RGVwLGIucHJvcERlcCxjKSk6bmV3IHgoMz09PWIsMj09PWIsMT09PWIsYyl9dmFyIGI9ZihcIi4vdXRpbC9jb2RlZ2VuXCIpLEY9ZihcIi4vdXRpbC9sb29wXCIpLFxuTT1mKFwiLi91dGlsL2lzLXR5cGVkLWFycmF5XCIpLHQ9ZihcIi4vdXRpbC9pcy1uZGFycmF5XCIpLHk9ZihcIi4vdXRpbC9pcy1hcnJheS1saWtlXCIpLGc9ZihcIi4vZHluYW1pY1wiKSxFPWYoXCIuL2NvbnN0YW50cy9wcmltaXRpdmVzLmpzb25cIiksQz1mKFwiLi9jb25zdGFudHMvZHR5cGVzLmpzb25cIiksTj1bXCJ4XCIsXCJ5XCIsXCJ6XCIsXCJ3XCJdLG49XCJibGVuZC5mdW5jIGJsZW5kLmVxdWF0aW9uIHN0ZW5jaWwuZnVuYyBzdGVuY2lsLm9wRnJvbnQgc3RlbmNpbC5vcEJhY2sgc2FtcGxlLmNvdmVyYWdlIHZpZXdwb3J0IHNjaXNzb3IuYm94IHBvbHlnb25PZmZzZXQub2Zmc2V0XCIuc3BsaXQoXCIgXCIpLG09ezA6MCwxOjEsemVybzowLG9uZToxLFwic3JjIGNvbG9yXCI6NzY4LFwib25lIG1pbnVzIHNyYyBjb2xvclwiOjc2OSxcInNyYyBhbHBoYVwiOjc3MCxcIm9uZSBtaW51cyBzcmMgYWxwaGFcIjo3NzEsXCJkc3QgY29sb3JcIjo3NzQsXCJvbmUgbWludXMgZHN0IGNvbG9yXCI6Nzc1LFwiZHN0IGFscGhhXCI6NzcyLFwib25lIG1pbnVzIGRzdCBhbHBoYVwiOjc3MyxcblwiY29uc3RhbnQgY29sb3JcIjozMjc2OSxcIm9uZSBtaW51cyBjb25zdGFudCBjb2xvclwiOjMyNzcwLFwiY29uc3RhbnQgYWxwaGFcIjozMjc3MSxcIm9uZSBtaW51cyBjb25zdGFudCBhbHBoYVwiOjMyNzcyLFwic3JjIGFscGhhIHNhdHVyYXRlXCI6Nzc2fSxCPXtuZXZlcjo1MTIsbGVzczo1MTMsXCI8XCI6NTEzLGVxdWFsOjUxNCxcIj1cIjo1MTQsXCI9PVwiOjUxNCxcIj09PVwiOjUxNCxsZXF1YWw6NTE1LFwiPD1cIjo1MTUsZ3JlYXRlcjo1MTYsXCI+XCI6NTE2LG5vdGVxdWFsOjUxNyxcIiE9XCI6NTE3LFwiIT09XCI6NTE3LGdlcXVhbDo1MTgsXCI+PVwiOjUxOCxhbHdheXM6NTE5fSxZPXswOjAsemVybzowLGtlZXA6NzY4MCxyZXBsYWNlOjc2ODEsaW5jcmVtZW50Ojc2ODIsZGVjcmVtZW50Ojc2ODMsXCJpbmNyZW1lbnQgd3JhcFwiOjM0MDU1LFwiZGVjcmVtZW50IHdyYXBcIjozNDA1NixpbnZlcnQ6NTM4Nn0sTD17Y3c6MjMwNCxjY3c6MjMwNX0sSD1uZXcgeCghMSwhMSwhMSxmdW5jdGlvbigpe30pO3AuZXhwb3J0cz1mdW5jdGlvbihoLFxuZix0LHAsTSx1LFosRCxLLEFhLHZhLHEsUyxtYSxnYSl7ZnVuY3Rpb24gVyhkKXtyZXR1cm4gZC5yZXBsYWNlKFwiLlwiLFwiX1wiKX1mdW5jdGlvbiBSKGQsYSxjKXt2YXIgYj1XKGQpO3cucHVzaChkKTt6W2JdPWVbYl09ISFjO3dhW2JdPWF9ZnVuY3Rpb24gRyhkLGEsYyl7dmFyIGI9VyhkKTt3LnB1c2goZCk7QXJyYXkuaXNBcnJheShjKT8oZVtiXT1jLnNsaWNlKCkseltiXT1jLnNsaWNlKCkpOmVbYl09eltiXT1jO3hhW2JdPWF9ZnVuY3Rpb24gYmEoKXt2YXIgZD1iKCksYT1kLmxpbmssYz1kLmdsb2JhbDtkLmlkPVJhKys7ZC5iYXRjaElkPVwiMFwiO3ZhciBoPWEoUWEpLEE9ZC5zaGFyZWQ9e3Byb3BzOlwiYTBcIn07T2JqZWN0LmtleXMoUWEpLmZvckVhY2goZnVuY3Rpb24oZCl7QVtkXT1jLmRlZihoLFwiLlwiLGQpfSk7dmFyIEo9ZC5uZXh0PXt9LFA9ZC5jdXJyZW50PXt9O09iamVjdC5rZXlzKHhhKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe0FycmF5LmlzQXJyYXkoZVtkXSkmJihKW2RdPWMuZGVmKEEubmV4dCxcblwiLlwiLGQpLFBbZF09Yy5kZWYoQS5jdXJyZW50LFwiLlwiLGQpKX0pO3ZhciBTYT1kLmNvbnN0YW50cz17fTtPYmplY3Qua2V5cyhNYSkuZm9yRWFjaChmdW5jdGlvbihkKXtTYVtkXT1jLmRlZihKU09OLnN0cmluZ2lmeShNYVtkXSkpfSk7ZC5pbnZva2U9ZnVuY3Rpb24oZSxJKXtzd2l0Y2goSS50eXBlKXtjYXNlIDA6dmFyIGM9W1widGhpc1wiLEEuY29udGV4dCxBLnByb3BzLGQuYmF0Y2hJZF07cmV0dXJuIGUuZGVmKGEoSS5kYXRhKSxcIi5jYWxsKFwiLGMuc2xpY2UoMCxNYXRoLm1heChJLmRhdGEubGVuZ3RoKzEsNCkpLFwiKVwiKTtjYXNlIDE6cmV0dXJuIGUuZGVmKEEucHJvcHMsSS5kYXRhKTtjYXNlIDI6cmV0dXJuIGUuZGVmKEEuY29udGV4dCxJLmRhdGEpO2Nhc2UgMzpyZXR1cm4gZS5kZWYoXCJ0aGlzXCIsSS5kYXRhKTtjYXNlIDQ6cmV0dXJuIEkuZGF0YS5hcHBlbmQoZCxlKSxJLmRhdGEucmVmfX07ZC5hdHRyaWJDYWNoZT17fTt2YXIgST17fTtkLnNjb3BlQXR0cmliPWZ1bmN0aW9uKGQpe2Q9XG5mLmlkKGQpO2lmKGQgaW4gSSlyZXR1cm4gSVtkXTt2YXIgZT1BYS5zY29wZVtkXTtlfHwoZT1BYS5zY29wZVtkXT1uZXcgQmEpO3JldHVybiBJW2RdPWEoZSl9O3JldHVybiBkfWZ1bmN0aW9uIG5hKGQpe3ZhciBlPWRbXCJzdGF0aWNcIl07ZD1kLmR5bmFtaWM7dmFyIGI7aWYoXCJwcm9maWxlXCJpbiBlKXt2YXIgaD0hIWUucHJvZmlsZTtiPWMoZnVuY3Rpb24oZCxlKXtyZXR1cm4gaH0pO2IuZW5hYmxlPWh9ZWxzZSBpZihcInByb2ZpbGVcImluIGQpe3ZhciBBPWQucHJvZmlsZTtiPWEoQSxmdW5jdGlvbihkLGUpe3JldHVybiBkLmludm9rZShlLEEpfSl9cmV0dXJuIGJ9ZnVuY3Rpb24geWEoZCxlKXt2YXIgYj1kW1wic3RhdGljXCJdLGg9ZC5keW5hbWljO2lmKFwiZnJhbWVidWZmZXJcImluIGIpe3ZhciBBPWIuZnJhbWVidWZmZXI7cmV0dXJuIEE/KEE9RC5nZXRGcmFtZWJ1ZmZlcihBKSxjKGZ1bmN0aW9uKGQsZSl7dmFyIGE9ZC5saW5rKEEpLHY9ZC5zaGFyZWQ7ZS5zZXQodi5mcmFtZWJ1ZmZlcixcblwiLm5leHRcIixhKTt2PXYuY29udGV4dDtlLnNldCh2LFwiLmZyYW1lYnVmZmVyV2lkdGhcIixhK1wiLndpZHRoXCIpO2Uuc2V0KHYsXCIuZnJhbWVidWZmZXJIZWlnaHRcIixhK1wiLmhlaWdodFwiKTtyZXR1cm4gYX0pKTpjKGZ1bmN0aW9uKGQsZSl7dmFyIGE9ZC5zaGFyZWQ7ZS5zZXQoYS5mcmFtZWJ1ZmZlcixcIi5uZXh0XCIsXCJudWxsXCIpO2E9YS5jb250ZXh0O2Uuc2V0KGEsXCIuZnJhbWVidWZmZXJXaWR0aFwiLGErXCIuZHJhd2luZ0J1ZmZlcldpZHRoXCIpO2Uuc2V0KGEsXCIuZnJhbWVidWZmZXJIZWlnaHRcIixhK1wiLmRyYXdpbmdCdWZmZXJIZWlnaHRcIik7cmV0dXJuXCJudWxsXCJ9KX1pZihcImZyYW1lYnVmZmVyXCJpbiBoKXt2YXIgSj1oLmZyYW1lYnVmZmVyO3JldHVybiBhKEosZnVuY3Rpb24oZCxlKXt2YXIgYT1kLmludm9rZShlLEopLHY9ZC5zaGFyZWQsYz12LmZyYW1lYnVmZmVyLGE9ZS5kZWYoYyxcIi5nZXRGcmFtZWJ1ZmZlcihcIixhLFwiKVwiKTtlLnNldChjLFwiLm5leHRcIixhKTt2PXYuY29udGV4dDtlLnNldCh2LFxuXCIuZnJhbWVidWZmZXJXaWR0aFwiLGErXCI/XCIrYStcIi53aWR0aDpcIit2K1wiLmRyYXdpbmdCdWZmZXJXaWR0aFwiKTtlLnNldCh2LFwiLmZyYW1lYnVmZmVySGVpZ2h0XCIsYStcIj9cIithK1wiLmhlaWdodDpcIit2K1wiLmRyYXdpbmdCdWZmZXJIZWlnaHRcIik7cmV0dXJuIGF9KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBVKGQsZSxjKXtmdW5jdGlvbiBiKGQpe2lmKGQgaW4gaCl7dmFyIEk9aFtkXTtkPSEwO3ZhciBjPUkueHwwLHFhPUkueXwwLFAsYWE7XCJ3aWR0aFwiaW4gST9QPUkud2lkdGh8MDpkPSExO1wiaGVpZ2h0XCJpbiBJP2FhPUkuaGVpZ2h0fDA6ZD0hMTtyZXR1cm4gbmV3IHgoIWQmJmUmJmUudGhpc0RlcCwhZCYmZSYmZS5jb250ZXh0RGVwLCFkJiZlJiZlLnByb3BEZXAsZnVuY3Rpb24oZCxlKXt2YXIgYT1kLnNoYXJlZC5jb250ZXh0LHY9UDtcIndpZHRoXCJpbiBJfHwodj1lLmRlZihhLFwiLlwiLFwiZnJhbWVidWZmZXJXaWR0aFwiLFwiLVwiLGMpKTt2YXIgYj1hYTtcImhlaWdodFwiaW4gSXx8KGI9ZS5kZWYoYSxcblwiLlwiLFwiZnJhbWVidWZmZXJIZWlnaHRcIixcIi1cIixxYSkpO3JldHVybltjLHFhLHYsYl19KX1pZihkIGluIEope3ZhciB3PUpbZF07ZD1hKHcsZnVuY3Rpb24oZCxlKXt2YXIgYT1kLmludm9rZShlLHcpLEk9ZC5zaGFyZWQuY29udGV4dCxjPWUuZGVmKGEsXCIueHwwXCIpLHY9ZS5kZWYoYSxcIi55fDBcIikscWE9ZS5kZWYoJ1wid2lkdGhcIiBpbiAnLGEsXCI/XCIsYSxcIi53aWR0aHwwOlwiLFwiKFwiLEksXCIuXCIsXCJmcmFtZWJ1ZmZlcldpZHRoXCIsXCItXCIsYyxcIilcIiksYT1lLmRlZignXCJoZWlnaHRcIiBpbiAnLGEsXCI/XCIsYSxcIi5oZWlnaHR8MDpcIixcIihcIixJLFwiLlwiLFwiZnJhbWVidWZmZXJIZWlnaHRcIixcIi1cIix2LFwiKVwiKTtyZXR1cm5bYyx2LHFhLGFdfSk7ZSYmKGQudGhpc0RlcD1kLnRoaXNEZXB8fGUudGhpc0RlcCxkLmNvbnRleHREZXA9ZC5jb250ZXh0RGVwfHxlLmNvbnRleHREZXAsZC5wcm9wRGVwPWQucHJvcERlcHx8ZS5wcm9wRGVwKTtyZXR1cm4gZH1yZXR1cm4gZT9uZXcgeChlLnRoaXNEZXAsZS5jb250ZXh0RGVwLFxuZS5wcm9wRGVwLGZ1bmN0aW9uKGQsZSl7dmFyIGE9ZC5zaGFyZWQuY29udGV4dDtyZXR1cm5bMCwwLGUuZGVmKGEsXCIuXCIsXCJmcmFtZWJ1ZmZlcldpZHRoXCIpLGUuZGVmKGEsXCIuXCIsXCJmcmFtZWJ1ZmZlckhlaWdodFwiKV19KTpudWxsfXZhciBoPWRbXCJzdGF0aWNcIl0sSj1kLmR5bmFtaWM7aWYoZD1iKFwidmlld3BvcnRcIikpe3ZhciBQPWQ7ZD1uZXcgeChkLnRoaXNEZXAsZC5jb250ZXh0RGVwLGQucHJvcERlcCxmdW5jdGlvbihkLGUpe3ZhciBhPVAuYXBwZW5kKGQsZSksYz1kLnNoYXJlZC5jb250ZXh0O2Uuc2V0KGMsXCIudmlld3BvcnRXaWR0aFwiLGFbMl0pO2Uuc2V0KGMsXCIudmlld3BvcnRIZWlnaHRcIixhWzNdKTtyZXR1cm4gYX0pfXJldHVybnt2aWV3cG9ydDpkLHNjaXNzb3JfYm94OmIoXCJzY2lzc29yLmJveFwiKX19ZnVuY3Rpb24gaWEoZCl7ZnVuY3Rpb24gZShkKXtpZihkIGluIGIpe3ZhciBJPWYuaWQoYltkXSk7ZD1jKGZ1bmN0aW9uKCl7cmV0dXJuIEl9KTtkLmlkPUk7cmV0dXJuIGR9aWYoZCBpblxuaCl7dmFyIHY9aFtkXTtyZXR1cm4gYSh2LGZ1bmN0aW9uKGQsZSl7dmFyIGE9ZC5pbnZva2UoZSx2KTtyZXR1cm4gZS5kZWYoZC5zaGFyZWQuc3RyaW5ncyxcIi5pZChcIixhLFwiKVwiKX0pfXJldHVybiBudWxsfXZhciBiPWRbXCJzdGF0aWNcIl0saD1kLmR5bmFtaWMsQT1lKFwiZnJhZ1wiKSxKPWUoXCJ2ZXJ0XCIpLFA9bnVsbDtyKEEpJiZyKEopPyhQPXZhLnByb2dyYW0oSi5pZCxBLmlkKSxkPWMoZnVuY3Rpb24oZCxlKXtyZXR1cm4gZC5saW5rKFApfSkpOmQ9bmV3IHgoQSYmQS50aGlzRGVwfHxKJiZKLnRoaXNEZXAsQSYmQS5jb250ZXh0RGVwfHxKJiZKLmNvbnRleHREZXAsQSYmQS5wcm9wRGVwfHxKJiZKLnByb3BEZXAsZnVuY3Rpb24oZCxlKXt2YXIgYT1kLnNoYXJlZC5zaGFkZXIsYztjPUE/QS5hcHBlbmQoZCxlKTplLmRlZihhLFwiLlwiLFwiZnJhZ1wiKTt2YXIgdjt2PUo/Si5hcHBlbmQoZCxlKTplLmRlZihhLFwiLlwiLFwidmVydFwiKTtyZXR1cm4gZS5kZWYoYStcIi5wcm9ncmFtKFwiK3YrXCIsXCIrYytcblwiKVwiKX0pO3JldHVybntmcmFnOkEsdmVydDpKLHByb2dWYXI6ZCxwcm9ncmFtOlB9fWZ1bmN0aW9uIGthKGQsZSl7ZnVuY3Rpb24gYihkLGUpe2lmKGQgaW4gaCl7dmFyIHY9aFtkXXwwO3JldHVybiBjKGZ1bmN0aW9uKGQsYSl7ZSYmKGQuT0ZGU0VUPXYpO3JldHVybiB2fSl9aWYoZCBpbiBBKXt2YXIgcWE9QVtkXTtyZXR1cm4gYShxYSxmdW5jdGlvbihkLGEpe3ZhciBjPWQuaW52b2tlKGEscWEpO2UmJihkLk9GRlNFVD1jKTtyZXR1cm4gY30pfXJldHVybiBlJiZKP2MoZnVuY3Rpb24oZCxlKXtkLk9GRlNFVD1cIjBcIjtyZXR1cm4gMH0pOm51bGx9dmFyIGg9ZFtcInN0YXRpY1wiXSxBPWQuZHluYW1pYyxKPWZ1bmN0aW9uKCl7aWYoXCJlbGVtZW50c1wiaW4gaCl7dmFyIGQ9aC5lbGVtZW50cztsKGQpP2Q9dS5nZXRFbGVtZW50cyh1LmNyZWF0ZShkLCEwKSk6ZCYmKGQ9dS5nZXRFbGVtZW50cyhkKSk7dmFyIGU9YyhmdW5jdGlvbihlLGEpe2lmKGQpe3ZhciBjPWUubGluayhkKTtyZXR1cm4gZS5FTEVNRU5UUz1cbmN9cmV0dXJuIGUuRUxFTUVOVFM9bnVsbH0pO2UudmFsdWU9ZDtyZXR1cm4gZX1pZihcImVsZW1lbnRzXCJpbiBBKXt2YXIgdj1BLmVsZW1lbnRzO3JldHVybiBhKHYsZnVuY3Rpb24oZCxlKXt2YXIgYT1kLnNoYXJlZCxjPWEuaXNCdWZmZXJBcmdzLGE9YS5lbGVtZW50cyxJPWQuaW52b2tlKGUsdiksYj1lLmRlZihcIm51bGxcIiksYz1lLmRlZihjLFwiKFwiLEksXCIpXCIpLEk9ZC5jb25kKGMpLnRoZW4oYixcIj1cIixhLFwiLmNyZWF0ZVN0cmVhbShcIixJLFwiKTtcIilbXCJlbHNlXCJdKGIsXCI9XCIsYSxcIi5nZXRFbGVtZW50cyhcIixJLFwiKTtcIik7ZS5lbnRyeShJKTtlLmV4aXQoZC5jb25kKGMpLnRoZW4oYSxcIi5kZXN0cm95U3RyZWFtKFwiLGIsXCIpO1wiKSk7cmV0dXJuIGQuRUxFTUVOVFM9Yn0pfXJldHVybiBudWxsfSgpLFA9YihcIm9mZnNldFwiLCEwKTtyZXR1cm57ZWxlbWVudHM6SixwcmltaXRpdmU6ZnVuY3Rpb24oKXtpZihcInByaW1pdGl2ZVwiaW4gaCl7dmFyIGQ9aC5wcmltaXRpdmU7cmV0dXJuIGMoZnVuY3Rpb24oZSxcbmEpe3JldHVybiBFW2RdfSl9aWYoXCJwcmltaXRpdmVcImluIEEpe3ZhciBlPUEucHJpbWl0aXZlO3JldHVybiBhKGUsZnVuY3Rpb24oZCxhKXt2YXIgYz1kLmNvbnN0YW50cy5wcmltVHlwZXMsdj1kLmludm9rZShhLGUpO3JldHVybiBhLmRlZihjLFwiW1wiLHYsXCJdXCIpfSl9cmV0dXJuIEo/cihKKT9KLnZhbHVlP2MoZnVuY3Rpb24oZCxlKXtyZXR1cm4gZS5kZWYoZC5FTEVNRU5UUyxcIi5wcmltVHlwZVwiKX0pOmMoZnVuY3Rpb24oKXtyZXR1cm4gNH0pOm5ldyB4KEoudGhpc0RlcCxKLmNvbnRleHREZXAsSi5wcm9wRGVwLGZ1bmN0aW9uKGQsZSl7dmFyIGE9ZC5FTEVNRU5UUztyZXR1cm4gZS5kZWYoYSxcIj9cIixhLFwiLnByaW1UeXBlOlwiLDQpfSk6bnVsbH0oKSxjb3VudDpmdW5jdGlvbigpe2lmKFwiY291bnRcImluIGgpe3ZhciBkPWguY291bnR8MDtyZXR1cm4gYyhmdW5jdGlvbigpe3JldHVybiBkfSl9aWYoXCJjb3VudFwiaW4gQSl7dmFyIGU9QS5jb3VudDtyZXR1cm4gYShlLGZ1bmN0aW9uKGQsXG5hKXtyZXR1cm4gZC5pbnZva2UoYSxlKX0pfXJldHVybiBKP3IoSik/Sj9QP25ldyB4KFAudGhpc0RlcCxQLmNvbnRleHREZXAsUC5wcm9wRGVwLGZ1bmN0aW9uKGQsZSl7cmV0dXJuIGUuZGVmKGQuRUxFTUVOVFMsXCIudmVydENvdW50LVwiLGQuT0ZGU0VUKX0pOmMoZnVuY3Rpb24oZCxlKXtyZXR1cm4gZS5kZWYoZC5FTEVNRU5UUyxcIi52ZXJ0Q291bnRcIil9KTpjKGZ1bmN0aW9uKCl7cmV0dXJuLTF9KTpuZXcgeChKLnRoaXNEZXB8fFAudGhpc0RlcCxKLmNvbnRleHREZXB8fFAuY29udGV4dERlcCxKLnByb3BEZXB8fFAucHJvcERlcCxmdW5jdGlvbihkLGUpe3ZhciBhPWQuRUxFTUVOVFM7cmV0dXJuIGQuT0ZGU0VUP2UuZGVmKGEsXCI/XCIsYSxcIi52ZXJ0Q291bnQtXCIsZC5PRkZTRVQsXCI6LTFcIik6ZS5kZWYoYSxcIj9cIixhLFwiLnZlcnRDb3VudDotMVwiKX0pOm51bGx9KCksaW5zdGFuY2VzOmIoXCJpbnN0YW5jZXNcIiwhMSksb2Zmc2V0OlB9fWZ1bmN0aW9uIHJhKGQsZSl7dmFyIGI9ZFtcInN0YXRpY1wiXSxcbmg9ZC5keW5hbWljLEE9e307dy5mb3JFYWNoKGZ1bmN0aW9uKGQpe2Z1bmN0aW9uIGUoSSx3KXtpZihkIGluIGIpe3ZhciBxYT1JKGJbZF0pO0Fbdl09YyhmdW5jdGlvbigpe3JldHVybiBxYX0pfWVsc2UgaWYoZCBpbiBoKXt2YXIgUD1oW2RdO0Fbdl09YShQLGZ1bmN0aW9uKGQsZSl7cmV0dXJuIHcoZCxlLGQuaW52b2tlKGUsUCkpfSl9fXZhciB2PVcoZCk7c3dpdGNoKGQpe2Nhc2UgXCJjdWxsLmVuYWJsZVwiOmNhc2UgXCJibGVuZC5lbmFibGVcIjpjYXNlIFwiZGl0aGVyXCI6Y2FzZSBcInN0ZW5jaWwuZW5hYmxlXCI6Y2FzZSBcImRlcHRoLmVuYWJsZVwiOmNhc2UgXCJzY2lzc29yLmVuYWJsZVwiOmNhc2UgXCJwb2x5Z29uT2Zmc2V0LmVuYWJsZVwiOmNhc2UgXCJzYW1wbGUuYWxwaGFcIjpjYXNlIFwic2FtcGxlLmVuYWJsZVwiOmNhc2UgXCJkZXB0aC5tYXNrXCI6cmV0dXJuIGUoZnVuY3Rpb24oZCl7cmV0dXJuIGR9LGZ1bmN0aW9uKGQsZSxhKXtyZXR1cm4gYX0pO2Nhc2UgXCJkZXB0aC5mdW5jXCI6cmV0dXJuIGUoZnVuY3Rpb24oZCl7cmV0dXJuIEJbZF19LFxuZnVuY3Rpb24oZCxlLGEpe3JldHVybiBlLmRlZihkLmNvbnN0YW50cy5jb21wYXJlRnVuY3MsXCJbXCIsYSxcIl1cIil9KTtjYXNlIFwiZGVwdGgucmFuZ2VcIjpyZXR1cm4gZShmdW5jdGlvbihkKXtyZXR1cm4gZH0sZnVuY3Rpb24oZCxlLGEpe2Q9ZS5kZWYoXCIrXCIsYSxcIlswXVwiKTtlPWUuZGVmKFwiK1wiLGEsXCJbMV1cIik7cmV0dXJuW2QsZV19KTtjYXNlIFwiYmxlbmQuZnVuY1wiOnJldHVybiBlKGZ1bmN0aW9uKGQpe3JldHVyblttW1wic3JjUkdCXCJpbiBkP2Quc3JjUkdCOmQuc3JjXSxtW1wiZHN0UkdCXCJpbiBkP2QuZHN0UkdCOmQuZHN0XSxtW1wic3JjQWxwaGFcImluIGQ/ZC5zcmNBbHBoYTpkLnNyY10sbVtcImRzdEFscGhhXCJpbiBkP2QuZHN0QWxwaGE6ZC5kc3RdXX0sZnVuY3Rpb24oZCxlLGEpe2Z1bmN0aW9uIGMoZCx2KXtyZXR1cm4gZS5kZWYoJ1wiJyxkLHYsJ1wiIGluICcsYSxcIj9cIixhLFwiLlwiLGQsdixcIjpcIixhLFwiLlwiLGQpfWQ9ZC5jb25zdGFudHMuYmxlbmRGdW5jczt2YXIgdj1jKFwic3JjXCIsXCJSR0JcIiksXG5iPWMoXCJkc3RcIixcIlJHQlwiKSx2PWUuZGVmKGQsXCJbXCIsdixcIl1cIiksaD1lLmRlZihkLFwiW1wiLGMoXCJzcmNcIixcIkFscGhhXCIpLFwiXVwiKSxiPWUuZGVmKGQsXCJbXCIsYixcIl1cIik7ZD1lLmRlZihkLFwiW1wiLGMoXCJkc3RcIixcIkFscGhhXCIpLFwiXVwiKTtyZXR1cm5bdixiLGgsZF19KTtjYXNlIFwiYmxlbmQuZXF1YXRpb25cIjpyZXR1cm4gZShmdW5jdGlvbihkKXtpZihcInN0cmluZ1wiPT09dHlwZW9mIGQpcmV0dXJuW2NhW2RdLGNhW2RdXTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGQpcmV0dXJuW2NhW2QucmdiXSxjYVtkLmFscGhhXV19LGZ1bmN0aW9uKGQsZSxhKXt2YXIgYz1kLmNvbnN0YW50cy5ibGVuZEVxdWF0aW9ucyx2PWUuZGVmKCksYj1lLmRlZigpO2Q9ZC5jb25kKFwidHlwZW9mIFwiLGEsJz09PVwic3RyaW5nXCInKTtkLnRoZW4odixcIj1cIixiLFwiPVwiLGMsXCJbXCIsYSxcIl07XCIpO2RbXCJlbHNlXCJdKHYsXCI9XCIsYyxcIltcIixhLFwiLnJnYl07XCIsYixcIj1cIixjLFwiW1wiLGEsXCIuYWxwaGFdO1wiKTtlKGQpO3JldHVyblt2LGJdfSk7XG5jYXNlIFwiYmxlbmQuY29sb3JcIjpyZXR1cm4gZShmdW5jdGlvbihkKXtyZXR1cm4gRig0LGZ1bmN0aW9uKGUpe3JldHVybitkW2VdfSl9LGZ1bmN0aW9uKGQsZSxhKXtyZXR1cm4gRig0LGZ1bmN0aW9uKGQpe3JldHVybiBlLmRlZihcIitcIixhLFwiW1wiLGQsXCJdXCIpfSl9KTtjYXNlIFwic3RlbmNpbC5tYXNrXCI6cmV0dXJuIGUoZnVuY3Rpb24oZCl7cmV0dXJuIGR8MH0sZnVuY3Rpb24oZCxlLGEpe3JldHVybiBlLmRlZihhLFwifDBcIil9KTtjYXNlIFwic3RlbmNpbC5mdW5jXCI6cmV0dXJuIGUoZnVuY3Rpb24oZCl7cmV0dXJuW0JbZC5jbXB8fFwia2VlcFwiXSxkLnJlZnx8MCxcIm1hc2tcImluIGQ/ZC5tYXNrOi0xXX0sZnVuY3Rpb24oZCxlLGEpe2Q9ZS5kZWYoJ1wiY21wXCIgaW4gJyxhLFwiP1wiLGQuY29uc3RhbnRzLmNvbXBhcmVGdW5jcyxcIltcIixhLFwiLmNtcF1cIixcIjpcIiw3NjgwKTt2YXIgYz1lLmRlZihhLFwiLnJlZnwwXCIpO2U9ZS5kZWYoJ1wibWFza1wiIGluICcsYSxcIj9cIixhLFwiLm1hc2t8MDotMVwiKTtyZXR1cm5bZCxcbmMsZV19KTtjYXNlIFwic3RlbmNpbC5vcEZyb250XCI6Y2FzZSBcInN0ZW5jaWwub3BCYWNrXCI6cmV0dXJuIGUoZnVuY3Rpb24oZSl7cmV0dXJuW1wic3RlbmNpbC5vcEJhY2tcIj09PWQ/MTAyOToxMDI4LFlbZS5mYWlsfHxcImtlZXBcIl0sWVtlLnpmYWlsfHxcImtlZXBcIl0sWVtlLnpwYXNzfHxcImtlZXBcIl1dfSxmdW5jdGlvbihlLGEsYyl7ZnVuY3Rpb24gdihkKXtyZXR1cm4gYS5kZWYoJ1wiJyxkLCdcIiBpbiAnLGMsXCI/XCIsYixcIltcIixjLFwiLlwiLGQsXCJdOlwiLDc2ODApfXZhciBiPWUuY29uc3RhbnRzLnN0ZW5jaWxPcHM7cmV0dXJuW1wic3RlbmNpbC5vcEJhY2tcIj09PWQ/MTAyOToxMDI4LHYoXCJmYWlsXCIpLHYoXCJ6ZmFpbFwiKSx2KFwienBhc3NcIildfSk7Y2FzZSBcInBvbHlnb25PZmZzZXQub2Zmc2V0XCI6cmV0dXJuIGUoZnVuY3Rpb24oZCl7cmV0dXJuW2QuZmFjdG9yfDAsZC51bml0c3wwXX0sZnVuY3Rpb24oZCxlLGEpe2Q9ZS5kZWYoYSxcIi5mYWN0b3J8MFwiKTtlPWUuZGVmKGEsXCIudW5pdHN8MFwiKTtyZXR1cm5bZCxcbmVdfSk7Y2FzZSBcImN1bGwuZmFjZVwiOnJldHVybiBlKGZ1bmN0aW9uKGQpe3ZhciBlPTA7XCJmcm9udFwiPT09ZD9lPTEwMjg6XCJiYWNrXCI9PT1kJiYoZT0xMDI5KTtyZXR1cm4gZX0sZnVuY3Rpb24oZCxlLGEpe3JldHVybiBlLmRlZihhLCc9PT1cImZyb250XCI/JywxMDI4LFwiOlwiLDEwMjkpfSk7Y2FzZSBcImxpbmVXaWR0aFwiOnJldHVybiBlKGZ1bmN0aW9uKGQpe3JldHVybiBkfSxmdW5jdGlvbihkLGUsYSl7cmV0dXJuIGF9KTtjYXNlIFwiZnJvbnRGYWNlXCI6cmV0dXJuIGUoZnVuY3Rpb24oZCl7cmV0dXJuIExbZF19LGZ1bmN0aW9uKGQsZSxhKXtyZXR1cm4gZS5kZWYoYSsnPT09XCJjd1wiPzIzMDQ6MjMwNScpfSk7Y2FzZSBcImNvbG9yTWFza1wiOnJldHVybiBlKGZ1bmN0aW9uKGQpe3JldHVybiBkLm1hcChmdW5jdGlvbihkKXtyZXR1cm4hIWR9KX0sZnVuY3Rpb24oZCxlLGEpe3JldHVybiBGKDQsZnVuY3Rpb24oZCl7cmV0dXJuXCIhIVwiK2ErXCJbXCIrZCtcIl1cIn0pfSk7Y2FzZSBcInNhbXBsZS5jb3ZlcmFnZVwiOnJldHVybiBlKGZ1bmN0aW9uKGQpe3JldHVybltcInZhbHVlXCJpblxuZD9kLnZhbHVlOjEsISFkLmludmVydF19LGZ1bmN0aW9uKGQsZSxhKXtkPWUuZGVmKCdcInZhbHVlXCIgaW4gJyxhLFwiPytcIixhLFwiLnZhbHVlOjFcIik7ZT1lLmRlZihcIiEhXCIsYSxcIi5pbnZlcnRcIik7cmV0dXJuW2QsZV19KX19KTtyZXR1cm4gQX1mdW5jdGlvbiBzYShkLGUpe3ZhciBiPWRbXCJzdGF0aWNcIl0saD1kLmR5bmFtaWMsQT17fTtPYmplY3Qua2V5cyhiKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBlPWJbZF0sYTtpZihcIm51bWJlclwiPT09dHlwZW9mIGV8fFwiYm9vbGVhblwiPT09dHlwZW9mIGUpYT1jKGZ1bmN0aW9uKCl7cmV0dXJuIGV9KTtlbHNlIGlmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlKXt2YXIgdj1lLl9yZWdsVHlwZTtpZihcInRleHR1cmUyZFwiPT09dnx8XCJ0ZXh0dXJlQ3ViZVwiPT09dilhPWMoZnVuY3Rpb24oZCl7cmV0dXJuIGQubGluayhlKX0pO2Vsc2UgaWYoXCJmcmFtZWJ1ZmZlclwiPT09dnx8XCJmcmFtZWJ1ZmZlckN1YmVcIj09PXYpYT1jKGZ1bmN0aW9uKGQpe3JldHVybiBkLmxpbmsoZS5jb2xvclswXSl9KX1lbHNlIHkoZSkmJlxuKGE9YyhmdW5jdGlvbihkKXtyZXR1cm4gZC5nbG9iYWwuZGVmKFwiW1wiLEYoZS5sZW5ndGgsZnVuY3Rpb24oZCl7cmV0dXJuIGVbZF19KSxcIl1cIil9KSk7YS52YWx1ZT1lO0FbZF09YX0pO09iamVjdC5rZXlzKGgpLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIGU9aFtkXTtBW2RdPWEoZSxmdW5jdGlvbihkLGEpe3JldHVybiBkLmludm9rZShhLGUpfSl9KTtyZXR1cm4gQX1mdW5jdGlvbiBkYShkLGUpe3ZhciBiPWRbXCJzdGF0aWNcIl0saD1kLmR5bmFtaWMsQT17fTtPYmplY3Qua2V5cyhiKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBlPWJbZF0sYT1mLmlkKGQpLHY9bmV3IEJhO2lmKGwoZSkpdi5zdGF0ZT0xLHYuYnVmZmVyPU0uZ2V0QnVmZmVyKE0uY3JlYXRlKGUsMzQ5NjIsITEsITApKSx2LnR5cGU9MDtlbHNle3ZhciBoPU0uZ2V0QnVmZmVyKGUpO2lmKGgpdi5zdGF0ZT0xLHYuYnVmZmVyPWgsdi50eXBlPTA7ZWxzZSBpZihlLmNvbnN0YW50KXt2YXIgdz1lLmNvbnN0YW50O3YuYnVmZmVyPVxuXCJudWxsXCI7di5zdGF0ZT0yO1wibnVtYmVyXCI9PT10eXBlb2Ygdz92Lng9dzpOLmZvckVhY2goZnVuY3Rpb24oZCxlKXtlPHcubGVuZ3RoJiYodltkXT13W2VdKX0pfWVsc2V7dmFyIGg9bChlLmJ1ZmZlcik/TS5nZXRCdWZmZXIoTS5jcmVhdGUoZS5idWZmZXIsMzQ5NjIsITEsITApKTpNLmdldEJ1ZmZlcihlLmJ1ZmZlciksej1lLm9mZnNldHwwLHE9ZS5zdHJpZGV8MCxrPWUuc2l6ZXwwLGc9ISFlLm5vcm1hbGl6ZWQsbT0wO1widHlwZVwiaW4gZSYmKG09Q1tlLnR5cGVdKTtlPWUuZGl2aXNvcnwwO3YuYnVmZmVyPWg7di5zdGF0ZT0xO3Yuc2l6ZT1rO3Yubm9ybWFsaXplZD1nO3YudHlwZT1tfHxoLmR0eXBlO3Yub2Zmc2V0PXo7di5zdHJpZGU9cTt2LmRpdmlzb3I9ZX19QVtkXT1jKGZ1bmN0aW9uKGQsZSl7dmFyIGM9ZC5hdHRyaWJDYWNoZTtpZihhIGluIGMpcmV0dXJuIGNbYV07dmFyIGI9e2lzU3RyZWFtOiExfTtPYmplY3Qua2V5cyh2KS5mb3JFYWNoKGZ1bmN0aW9uKGQpe2JbZF09XG52W2RdfSk7di5idWZmZXImJihiLmJ1ZmZlcj1kLmxpbmsodi5idWZmZXIpLGIudHlwZT1iLnR5cGV8fGIuYnVmZmVyK1wiLmR0eXBlXCIpO3JldHVybiBjW2FdPWJ9KX0pO09iamVjdC5rZXlzKGgpLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIGU9aFtkXTtBW2RdPWEoZSxmdW5jdGlvbihkLGEpe2Z1bmN0aW9uIHYoZCl7YShBW2RdLFwiPVwiLGMsXCIuXCIsZCxcInwwO1wiKX12YXIgYz1kLmludm9rZShhLGUpLGI9ZC5zaGFyZWQsaD1iLmlzQnVmZmVyQXJncyx3PWIuYnVmZmVyLEE9e2lzU3RyZWFtOmEuZGVmKCExKX0sej1uZXcgQmE7ei5zdGF0ZT0xO09iamVjdC5rZXlzKHopLmZvckVhY2goZnVuY3Rpb24oZCl7QVtkXT1hLmRlZihcIlwiK3pbZF0pfSk7dmFyIGFhPUEuYnVmZmVyLHE9QS50eXBlO2EoXCJpZihcIixoLFwiKFwiLGMsXCIpKXtcIixBLmlzU3RyZWFtLFwiPXRydWU7XCIsYWEsXCI9XCIsdyxcIi5jcmVhdGVTdHJlYW0oXCIsMzQ5NjIsXCIsXCIsYyxcIik7XCIscSxcIj1cIixhYSxcIi5kdHlwZTtcIixcIn1lbHNle1wiLFxuYWEsXCI9XCIsdyxcIi5nZXRCdWZmZXIoXCIsYyxcIik7XCIsXCJpZihcIixhYSxcIil7XCIscSxcIj1cIixhYSxcIi5kdHlwZTtcIiwnfWVsc2UgaWYoXCJjb25zdGFudFwiIGluICcsYyxcIil7XCIsQS5zdGF0ZSxcIj1cIiwyLFwiO1wiLFwiaWYodHlwZW9mIFwiK2MrJy5jb25zdGFudCA9PT0gXCJudW1iZXJcIil7JyxBW05bMF1dLFwiPVwiLGMsXCIuY29uc3RhbnQ7XCIsTi5zbGljZSgxKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIEFbZF19KS5qb2luKFwiPVwiKSxcIj0wO1wiLFwifWVsc2V7XCIsTi5tYXAoZnVuY3Rpb24oZCxlKXtyZXR1cm4gQVtkXStcIj1cIitjK1wiLmNvbnN0YW50Lmxlbmd0aD49XCIrZStcIj9cIitjK1wiLmNvbnN0YW50W1wiK2UrXCJdOjA7XCJ9KS5qb2luKFwiXCIpLFwifX1lbHNle1wiLFwiaWYoXCIsaCxcIihcIixjLFwiLmJ1ZmZlcikpe1wiLGFhLFwiPVwiLHcsXCIuY3JlYXRlU3RyZWFtKFwiLDM0OTYyLFwiLFwiLGMsXCIuYnVmZmVyKTtcIixcIn1lbHNle1wiLGFhLFwiPVwiLHcsXCIuZ2V0QnVmZmVyKFwiLGMsXCIuYnVmZmVyKTtcIixcIn1cIixxLCc9XCJ0eXBlXCIgaW4gJyxcbmMsXCI/XCIsYi5nbFR5cGVzLFwiW1wiLGMsXCIudHlwZV06XCIsYWEsXCIuZHR5cGU7XCIsQS5ub3JtYWxpemVkLFwiPSEhXCIsYyxcIi5ub3JtYWxpemVkO1wiKTt2KFwic2l6ZVwiKTt2KFwib2Zmc2V0XCIpO3YoXCJzdHJpZGVcIik7dihcImRpdmlzb3JcIik7YShcIn19XCIpO2EuZXhpdChcImlmKFwiLEEuaXNTdHJlYW0sXCIpe1wiLHcsXCIuZGVzdHJveVN0cmVhbShcIixhYSxcIik7XCIsXCJ9XCIpO3JldHVybiBBfSl9KTtyZXR1cm4gQX1mdW5jdGlvbiBqYShkKXt2YXIgZT1kW1wic3RhdGljXCJdLGI9ZC5keW5hbWljLGg9e307T2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbihkKXt2YXIgYT1lW2RdO2hbZF09YyhmdW5jdGlvbihkLGUpe3JldHVyblwibnVtYmVyXCI9PT10eXBlb2YgYXx8XCJib29sZWFuXCI9PT10eXBlb2YgYT9cIlwiK2E6ZC5saW5rKGEpfSl9KTtPYmplY3Qua2V5cyhiKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBlPWJbZF07aFtkXT1hKGUsZnVuY3Rpb24oZCxhKXtyZXR1cm4gZC5pbnZva2UoYSxlKX0pfSk7cmV0dXJuIGh9XG5mdW5jdGlvbiBsYShkLGUsYSxjLGIpe3ZhciBoPXlhKGQsYiksdz1VKGQsaCxiKSx6PWthKGQsYikscT1yYShkLGIpLGs9aWEoZCxiKSxnPXcudmlld3BvcnQ7ZyYmKHEudmlld3BvcnQ9Zyk7Zz1XKFwic2Npc3Nvci5ib3hcIik7KHc9d1tnXSkmJihxW2ddPXcpO3c9MDxPYmplY3Qua2V5cyhxKS5sZW5ndGg7aD17ZnJhbWVidWZmZXI6aCxkcmF3Onosc2hhZGVyOmssc3RhdGU6cSxkaXJ0eTp3fTtoLnByb2ZpbGU9bmEoZCxiKTtoLnVuaWZvcm1zPXNhKGEsYik7aC5hdHRyaWJ1dGVzPWRhKGUsYik7aC5jb250ZXh0PWphKGMsYik7cmV0dXJuIGh9ZnVuY3Rpb24gZWEoZCxlLGEpe3ZhciBjPWQuc2hhcmVkLmNvbnRleHQsYj1kLnNjb3BlKCk7T2JqZWN0LmtleXMoYSkuZm9yRWFjaChmdW5jdGlvbihoKXtlLnNhdmUoYyxcIi5cIitoKTtiKGMsXCIuXCIsaCxcIj1cIixhW2hdLmFwcGVuZChkLGUpLFwiO1wiKX0pO2UoYil9ZnVuY3Rpb24gTyhkLGUsYSxjKXt2YXIgYj1kLnNoYXJlZCxoPWIuZ2wsdz1iLmZyYW1lYnVmZmVyLFxuejtvYSYmKHo9ZS5kZWYoYi5leHRlbnNpb25zLFwiLndlYmdsX2RyYXdfYnVmZmVyc1wiKSk7dmFyIHE9ZC5jb25zdGFudHMsYj1xLmRyYXdCdWZmZXIscT1xLmJhY2tCdWZmZXI7ZD1hP2EuYXBwZW5kKGQsZSk6ZS5kZWYodyxcIi5uZXh0XCIpO2N8fGUoXCJpZihcIixkLFwiIT09XCIsdyxcIi5jdXIpe1wiKTtlKFwiaWYoXCIsZCxcIil7XCIsaCxcIi5iaW5kRnJhbWVidWZmZXIoXCIsMzYxNjAsXCIsXCIsZCxcIi5mcmFtZWJ1ZmZlcik7XCIpO29hJiZlKHosXCIuZHJhd0J1ZmZlcnNXRUJHTChcIixiLFwiW1wiLGQsXCIuY29sb3JBdHRhY2htZW50cy5sZW5ndGhdKTtcIik7ZShcIn1lbHNle1wiLGgsXCIuYmluZEZyYW1lYnVmZmVyKFwiLDM2MTYwLFwiLG51bGwpO1wiKTtvYSYmZSh6LFwiLmRyYXdCdWZmZXJzV0VCR0woXCIscSxcIik7XCIpO2UoXCJ9XCIsdyxcIi5jdXI9XCIsZCxcIjtcIik7Y3x8ZShcIn1cIil9ZnVuY3Rpb24gaGEoZCxhLGMpe3ZhciBiPWQuc2hhcmVkLGg9Yi5nbCx6PWQuY3VycmVudCxxPWQubmV4dCxnPWIuY3VycmVudCxrPWIubmV4dCxcbm09ZC5jb25kKGcsXCIuZGlydHlcIik7dy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2E9VyhhKTtpZighKGEgaW4gYy5zdGF0ZSkpe3ZhciB2LGI7aWYoYSBpbiBxKXt2PXFbYV07Yj16W2FdO3ZhciB3PUYoZVthXS5sZW5ndGgsZnVuY3Rpb24oZCl7cmV0dXJuIG0uZGVmKHYsXCJbXCIsZCxcIl1cIil9KTttKGQuY29uZCh3Lm1hcChmdW5jdGlvbihkLGUpe3JldHVybiBkK1wiIT09XCIrYitcIltcIitlK1wiXVwifSkuam9pbihcInx8XCIpKS50aGVuKGgsXCIuXCIseGFbYV0sXCIoXCIsdyxcIik7XCIsdy5tYXAoZnVuY3Rpb24oZCxlKXtyZXR1cm4gYitcIltcIitlK1wiXT1cIitkfSkuam9pbihcIjtcIiksXCI7XCIpKX1lbHNlIHY9bS5kZWYoayxcIi5cIixhKSx3PWQuY29uZCh2LFwiIT09XCIsZyxcIi5cIixhKSxtKHcpLGEgaW4gd2E/dyhkLmNvbmQodikudGhlbihoLFwiLmVuYWJsZShcIix3YVthXSxcIik7XCIpW1wiZWxzZVwiXShoLFwiLmRpc2FibGUoXCIsd2FbYV0sXCIpO1wiKSxnLFwiLlwiLGEsXCI9XCIsdixcIjtcIik6dyhoLFwiLlwiLHhhW2FdLFwiKFwiLHYsXCIpO1wiLFxuZyxcIi5cIixhLFwiPVwiLHYsXCI7XCIpfX0pOzA9PT1PYmplY3Qua2V5cyhjLnN0YXRlKS5sZW5ndGgmJm0oZyxcIi5kaXJ0eT1mYWxzZTtcIik7YShtKX1mdW5jdGlvbiBRKGQsZSxhLGMpe3ZhciBiPWQuc2hhcmVkLGg9ZC5jdXJyZW50LHc9Yi5jdXJyZW50LHE9Yi5nbDtrKE9iamVjdC5rZXlzKGEpKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciB6PWFbYl07aWYoIWN8fGMoeikpe3ZhciBnPXouYXBwZW5kKGQsZSk7aWYod2FbYl0pe3ZhciBrPXdhW2JdO3Ioeik/Zz9lKHEsXCIuZW5hYmxlKFwiLGssXCIpO1wiKTplKHEsXCIuZGlzYWJsZShcIixrLFwiKTtcIik6ZShkLmNvbmQoZykudGhlbihxLFwiLmVuYWJsZShcIixrLFwiKTtcIilbXCJlbHNlXCJdKHEsXCIuZGlzYWJsZShcIixrLFwiKTtcIikpO2UodyxcIi5cIixiLFwiPVwiLGcsXCI7XCIpfWVsc2UgaWYoeShnKSl7dmFyIG09aFtiXTtlKHEsXCIuXCIseGFbYl0sXCIoXCIsZyxcIik7XCIsZy5tYXAoZnVuY3Rpb24oZCxlKXtyZXR1cm4gbStcIltcIitlK1wiXT1cIitkfSkuam9pbihcIjtcIiksXCI7XCIpfWVsc2UgZShxLFxuXCIuXCIseGFbYl0sXCIoXCIsZyxcIik7XCIsdyxcIi5cIixiLFwiPVwiLGcsXCI7XCIpfX0pfWZ1bmN0aW9uIHBhKGQsZSl7dGEmJihkLmluc3RhbmNpbmc9ZS5kZWYoZC5zaGFyZWQuZXh0ZW5zaW9ucyxcIi5hbmdsZV9pbnN0YW5jZWRfYXJyYXlzXCIpKX1mdW5jdGlvbiBWKGQsZSxhLGMsYil7ZnVuY3Rpb24gaCgpe3JldHVyblwidW5kZWZpbmVkXCI9PT10eXBlb2YgcGVyZm9ybWFuY2U/XCJEYXRlLm5vdygpXCI6XCJwZXJmb3JtYW5jZS5ub3coKVwifWZ1bmN0aW9uIHcoZCl7bD1lLmRlZigpO2QobCxcIj1cIixoKCksXCI7XCIpO1wic3RyaW5nXCI9PT10eXBlb2YgYj9kKGssXCIuY291bnQrPVwiLGIsXCI7XCIpOmQoayxcIi5jb3VudCsrO1wiKTttYSYmKGM/KG49ZS5kZWYoKSxkKG4sXCI9XCIsZixcIi5nZXROdW1QZW5kaW5nUXVlcmllcygpO1wiKSk6ZChmLFwiLmJlZ2luUXVlcnkoXCIsayxcIik7XCIpKX1mdW5jdGlvbiBxKGQpe2QoayxcIi5jcHVUaW1lKz1cIixoKCksXCItXCIsbCxcIjtcIik7bWEmJihjP2QoZixcIi5wdXNoU2NvcGVTdGF0cyhcIixuLFxuXCIsXCIsZixcIi5nZXROdW1QZW5kaW5nUXVlcmllcygpLFwiLGssXCIpO1wiKTpkKGYsXCIuZW5kUXVlcnkoKTtcIikpfWZ1bmN0aW9uIHooZCl7dmFyIGE9ZS5kZWYobSxcIi5wcm9maWxlXCIpO2UobSxcIi5wcm9maWxlPVwiLGQsXCI7XCIpO2UuZXhpdChtLFwiLnByb2ZpbGU9XCIsYSxcIjtcIil9dmFyIGc9ZC5zaGFyZWQsaz1kLnN0YXRzLG09Zy5jdXJyZW50LGY9Zy50aW1lcjthPWEucHJvZmlsZTt2YXIgbCxuO2lmKGEpe2lmKHIoYSkpe2EuZW5hYmxlPyh3KGUpLHEoZS5leGl0KSx6KFwidHJ1ZVwiKSk6eihcImZhbHNlXCIpO3JldHVybn1hPWEuYXBwZW5kKGQsZSk7eihhKX1lbHNlIGE9ZS5kZWYobSxcIi5wcm9maWxlXCIpO2c9ZC5ibG9jaygpO3coZyk7ZShcImlmKFwiLGEsXCIpe1wiLGcsXCJ9XCIpO2Q9ZC5ibG9jaygpO3EoZCk7ZS5leGl0KFwiaWYoXCIsYSxcIil7XCIsZCxcIn1cIil9ZnVuY3Rpb24gWChkLGUsYSxjLGIpe2Z1bmN0aW9uIGgoZCl7c3dpdGNoKGQpe2Nhc2UgMzU2NjQ6Y2FzZSAzNTY2NzpjYXNlIDM1NjcxOnJldHVybiAyO1xuY2FzZSAzNTY2NTpjYXNlIDM1NjY4OmNhc2UgMzU2NzI6cmV0dXJuIDM7Y2FzZSAzNTY2NjpjYXNlIDM1NjY5OmNhc2UgMzU2NzM6cmV0dXJuIDQ7ZGVmYXVsdDpyZXR1cm4gMX19ZnVuY3Rpb24gdyhhLGMsYil7ZnVuY3Rpb24gaCgpe2UoXCJpZighXCIsbSxcIi5idWZmZXIpe1wiLGcsXCIuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoXCIsayxcIik7fVwiKTt2YXIgYT1iLnR5cGUsdzt3PWIuc2l6ZT9lLmRlZihiLnNpemUsXCJ8fFwiLGMpOmM7ZShcImlmKFwiLG0sXCIudHlwZSE9PVwiLGEsXCJ8fFwiLG0sXCIuc2l6ZSE9PVwiLHcsXCJ8fFwiLGFhLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gbStcIi5cIitkK1wiIT09XCIrYltkXX0pLmpvaW4oXCJ8fFwiKSxcIil7XCIsZyxcIi5iaW5kQnVmZmVyKFwiLDM0OTYyLFwiLFwiLGYsXCIuYnVmZmVyKTtcIixnLFwiLnZlcnRleEF0dHJpYlBvaW50ZXIoXCIsW2ssdyxhLGIubm9ybWFsaXplZCxiLnN0cmlkZSxiLm9mZnNldF0sXCIpO1wiLG0sXCIudHlwZT1cIixhLFwiO1wiLG0sXCIuc2l6ZT1cIix3LFwiO1wiLGFhLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gbStcblwiLlwiK2QrXCI9XCIrYltkXStcIjtcIn0pLmpvaW4oXCJcIiksXCJ9XCIpO3RhJiYoYT1iLmRpdmlzb3IsZShcImlmKFwiLG0sXCIuZGl2aXNvciE9PVwiLGEsXCIpe1wiLGQuaW5zdGFuY2luZyxcIi52ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUoXCIsW2ssYV0sXCIpO1wiLG0sXCIuZGl2aXNvcj1cIixhLFwiO31cIikpfWZ1bmN0aW9uIHooKXtlKFwiaWYoXCIsbSxcIi5idWZmZXIpe1wiLGcsXCIuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KFwiLGssXCIpO1wiLFwifWlmKFwiLE4ubWFwKGZ1bmN0aW9uKGQsZSl7cmV0dXJuIG0rXCIuXCIrZCtcIiE9PVwiK0FbZV19KS5qb2luKFwifHxcIiksXCIpe1wiLGcsXCIudmVydGV4QXR0cmliNGYoXCIsayxcIixcIixBLFwiKTtcIixOLm1hcChmdW5jdGlvbihkLGUpe3JldHVybiBtK1wiLlwiK2QrXCI9XCIrQVtlXStcIjtcIn0pLmpvaW4oXCJcIiksXCJ9XCIpfXZhciBnPXEuZ2wsaz1lLmRlZihhLFwiLmxvY2F0aW9uXCIpLG09ZS5kZWYocS5hdHRyaWJ1dGVzLFwiW1wiLGssXCJdXCIpO2E9Yi5zdGF0ZTt2YXIgZj1iLmJ1ZmZlcixBPVtiLngsYi55LFxuYi56LGIud10sYWE9W1wiYnVmZmVyXCIsXCJub3JtYWxpemVkXCIsXCJvZmZzZXRcIixcInN0cmlkZVwiXTsxPT09YT9oKCk6Mj09PWE/eigpOihlKFwiaWYoXCIsYSxcIj09PVwiLDEsXCIpe1wiKSxoKCksZShcIn1lbHNle1wiKSx6KCksZShcIn1cIikpfXZhciBxPWQuc2hhcmVkO2MuZm9yRWFjaChmdW5jdGlvbihjKXt2YXIgcT1jLm5hbWUsZz1hLmF0dHJpYnV0ZXNbcV0sejtpZihnKXtpZighYihnKSlyZXR1cm47ej1nLmFwcGVuZChkLGUpfWVsc2V7aWYoIWIoSCkpcmV0dXJuO3ZhciBtPWQuc2NvcGVBdHRyaWIocSk7ej17fTtPYmplY3Qua2V5cyhuZXcgQmEpLmZvckVhY2goZnVuY3Rpb24oZCl7eltkXT1lLmRlZihtLFwiLlwiLGQpfSl9dyhkLmxpbmsoYyksaChjLmluZm8udHlwZSkseil9KX1mdW5jdGlvbiBUKGQsZSxhLGMsYil7Zm9yKHZhciBoPWQuc2hhcmVkLHc9aC5nbCxnLHE9MDtxPGMubGVuZ3RoOysrcSl7dmFyIHo9Y1txXSxtPXoubmFtZSxrPXouaW5mby50eXBlLGw9YS51bmlmb3Jtc1ttXSx6PWQubGluayh6KStcblwiLmxvY2F0aW9uXCIsbjtpZihsKXtpZighYihsKSljb250aW51ZTtpZihyKGwpKXttPWwudmFsdWU7aWYoMzU2Nzg9PT1rfHwzNTY4MD09PWspaz1kLmxpbmsobS5fdGV4dHVyZXx8bS5jb2xvclswXS5fdGV4dHVyZSksZSh3LFwiLnVuaWZvcm0xaShcIix6LFwiLFwiLGsrXCIuYmluZCgpKTtcIiksZS5leGl0KGssXCIudW5iaW5kKCk7XCIpO2Vsc2UgaWYoMzU2NzQ9PT1rfHwzNTY3NT09PWt8fDM1Njc2PT09ayltPWQuZ2xvYmFsLmRlZihcIm5ldyBGbG9hdDMyQXJyYXkoW1wiK0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG0pK1wiXSlcIiksbD0yLDM1Njc1PT09az9sPTM6MzU2NzY9PT1rJiYobD00KSxlKHcsXCIudW5pZm9ybU1hdHJpeFwiLGwsXCJmdihcIix6LFwiLGZhbHNlLFwiLG0sXCIpO1wiKTtlbHNle3N3aXRjaChrKXtjYXNlIDUxMjY6Zz1cIjFmXCI7YnJlYWs7Y2FzZSAzNTY2NDpnPVwiMmZcIjticmVhaztjYXNlIDM1NjY1Omc9XCIzZlwiO2JyZWFrO2Nhc2UgMzU2NjY6Zz1cIjRmXCI7YnJlYWs7Y2FzZSAzNTY3MDpnPVxuXCIxaVwiO2JyZWFrO2Nhc2UgNTEyNDpnPVwiMWlcIjticmVhaztjYXNlIDM1NjcxOmc9XCIyaVwiO2JyZWFrO2Nhc2UgMzU2Njc6Zz1cIjJpXCI7YnJlYWs7Y2FzZSAzNTY3MjpnPVwiM2lcIjticmVhaztjYXNlIDM1NjY4Omc9XCIzaVwiO2JyZWFrO2Nhc2UgMzU2NzM6Zz1cIjRpXCI7YnJlYWs7Y2FzZSAzNTY2OTpnPVwiNGlcIn1lKHcsXCIudW5pZm9ybVwiLGcsXCIoXCIseixcIixcIix5KG0pP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG0pOm0sXCIpO1wiKX1jb250aW51ZX1lbHNlIG49bC5hcHBlbmQoZCxlKX1lbHNle2lmKCFiKEgpKWNvbnRpbnVlO249ZS5kZWYoaC51bmlmb3JtcyxcIltcIixmLmlkKG0pLFwiXVwiKX0zNTY3OD09PWs/ZShcImlmKFwiLG4sXCImJlwiLG4sJy5fcmVnbFR5cGU9PT1cImZyYW1lYnVmZmVyXCIpeycsbixcIj1cIixuLFwiLmNvbG9yWzBdO1wiLFwifVwiKTozNTY4MD09PWsmJmUoXCJpZihcIixuLFwiJiZcIixuLCcuX3JlZ2xUeXBlPT09XCJmcmFtZWJ1ZmZlckN1YmVcIil7JyxuLFwiPVwiLG4sXCIuY29sb3JbMF07XCIsXCJ9XCIpO1xubT0xO3N3aXRjaChrKXtjYXNlIDM1Njc4OmNhc2UgMzU2ODA6az1lLmRlZihuLFwiLl90ZXh0dXJlXCIpO2UodyxcIi51bmlmb3JtMWkoXCIseixcIixcIixrLFwiLmJpbmQoKSk7XCIpO2UuZXhpdChrLFwiLnVuYmluZCgpO1wiKTtjb250aW51ZTtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpnPVwiMWlcIjticmVhaztjYXNlIDM1NjY3OmNhc2UgMzU2NzE6Zz1cIjJpXCI7bT0yO2JyZWFrO2Nhc2UgMzU2Njg6Y2FzZSAzNTY3MjpnPVwiM2lcIjttPTM7YnJlYWs7Y2FzZSAzNTY2OTpjYXNlIDM1NjczOmc9XCI0aVwiO209NDticmVhaztjYXNlIDUxMjY6Zz1cIjFmXCI7YnJlYWs7Y2FzZSAzNTY2NDpnPVwiMmZcIjttPTI7YnJlYWs7Y2FzZSAzNTY2NTpnPVwiM2ZcIjttPTM7YnJlYWs7Y2FzZSAzNTY2NjpnPVwiNGZcIjttPTQ7YnJlYWs7Y2FzZSAzNTY3NDpnPVwiTWF0cml4MmZ2XCI7YnJlYWs7Y2FzZSAzNTY3NTpnPVwiTWF0cml4M2Z2XCI7YnJlYWs7Y2FzZSAzNTY3NjpnPVwiTWF0cml4NGZ2XCJ9ZSh3LFwiLnVuaWZvcm1cIixnLFwiKFwiLHosXCIsXCIpO1xuaWYoXCJNXCI9PT1nLmNoYXJBdCgwKSl7dmFyIHo9TWF0aC5wb3coay0zNTY3NCsyLDIpLEI9ZC5nbG9iYWwuZGVmKFwibmV3IEZsb2F0MzJBcnJheShcIix6LFwiKVwiKTtlKFwiZmFsc2UsKEFycmF5LmlzQXJyYXkoXCIsbixcIil8fFwiLG4sXCIgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpP1wiLG4sXCI6KFwiLEYoeixmdW5jdGlvbihkKXtyZXR1cm4gQitcIltcIitkK1wiXT1cIituK1wiW1wiK2QrXCJdXCJ9KSxcIixcIixCLFwiKVwiKX1lbHNlIDE8bT9lKEYobSxmdW5jdGlvbihkKXtyZXR1cm4gbitcIltcIitkK1wiXVwifSkpOmUobik7ZShcIik7XCIpfX1mdW5jdGlvbiB1YShkLGUsYSxjKXtmdW5jdGlvbiBiKGgpe3ZhciBnPWtbaF07cmV0dXJuIGc/Zy5jb250ZXh0RGVwJiZjLmNvbnRleHREeW5hbWljfHxnLnByb3BEZXA/Zy5hcHBlbmQoZCxhKTpnLmFwcGVuZChkLGUpOmUuZGVmKG0sXCIuXCIsaCl9ZnVuY3Rpb24gaCgpe2Z1bmN0aW9uIGQoKXthKHgsXCIuZHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEUoXCIsW2YsbixLLGwrXCI8PCgoXCIrXG5LK1wiLTUxMjEpPj4xKVwiLEJdLFwiKTtcIil9ZnVuY3Rpb24gZSgpe2EoeCxcIi5kcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUoXCIsW2YsbCxuLEJdLFwiKTtcIil9cT9TP2QoKTooYShcImlmKFwiLHEsXCIpe1wiKSxkKCksYShcIn1lbHNle1wiKSxlKCksYShcIn1cIikpOmUoKX1mdW5jdGlvbiBnKCl7ZnVuY3Rpb24gZCgpe2EoeitcIi5kcmF3RWxlbWVudHMoXCIrW2YsbixLLGwrXCI8PCgoXCIrSytcIi01MTIxKT4+MSlcIl0rXCIpO1wiKX1mdW5jdGlvbiBlKCl7YSh6K1wiLmRyYXdBcnJheXMoXCIrW2YsbCxuXStcIik7XCIpfXE/Uz9kKCk6KGEoXCJpZihcIixxLFwiKXtcIiksZCgpLGEoXCJ9ZWxzZXtcIiksZSgpLGEoXCJ9XCIpKTplKCl9dmFyIHc9ZC5zaGFyZWQsej13LmdsLG09dy5kcmF3LGs9Yy5kcmF3LHE9ZnVuY3Rpb24oKXt2YXIgYj1rLmVsZW1lbnRzLGg9ZTtpZihiKXtpZihiLmNvbnRleHREZXAmJmMuY29udGV4dER5bmFtaWN8fGIucHJvcERlcCloPWE7Yj1iLmFwcGVuZChkLGgpfWVsc2UgYj1oLmRlZihtLFwiLlwiLFwiZWxlbWVudHNcIik7XG5iJiZoKFwiaWYoXCIrYitcIilcIit6K1wiLmJpbmRCdWZmZXIoMzQ5NjMsXCIrYitcIi5idWZmZXIuYnVmZmVyKTtcIik7cmV0dXJuIGJ9KCksZj1iKFwicHJpbWl0aXZlXCIpLGw9YihcIm9mZnNldFwiKSxuPWZ1bmN0aW9uKCl7dmFyIGI9ay5jb3VudCxoPWU7aWYoYil7aWYoYi5jb250ZXh0RGVwJiZjLmNvbnRleHREeW5hbWljfHxiLnByb3BEZXApaD1hO2I9Yi5hcHBlbmQoZCxoKX1lbHNlIGI9aC5kZWYobSxcIi5cIixcImNvdW50XCIpO3JldHVybiBifSgpO2lmKFwibnVtYmVyXCI9PT10eXBlb2Ygbil7aWYoMD09PW4pcmV0dXJufWVsc2UgYShcImlmKFwiLG4sXCIpe1wiKSxhLmV4aXQoXCJ9XCIpO3ZhciBCLHg7dGEmJihCPWIoXCJpbnN0YW5jZXNcIikseD1kLmluc3RhbmNpbmcpO3ZhciBLPXErXCIudHlwZVwiLFM9ay5lbGVtZW50cyYmcihrLmVsZW1lbnRzKTt0YSYmKFwibnVtYmVyXCIhPT10eXBlb2YgQnx8MDw9Qik/XCJzdHJpbmdcIj09PXR5cGVvZiBCPyhhKFwiaWYoXCIsQixcIj4wKXtcIiksaCgpLGEoXCJ9ZWxzZSBpZihcIixCLFxuXCI8MCl7XCIpLGcoKSxhKFwifVwiKSk6aCgpOmcoKX1mdW5jdGlvbiBFYShkLGUsYSxiLGMpe2U9YmEoKTtjPWUucHJvYyhcImJvZHlcIixjKTt0YSYmKGUuaW5zdGFuY2luZz1jLmRlZihlLnNoYXJlZC5leHRlbnNpb25zLFwiLmFuZ2xlX2luc3RhbmNlZF9hcnJheXNcIikpO2QoZSxjLGEsYik7cmV0dXJuIGUuY29tcGlsZSgpLmJvZHl9ZnVuY3Rpb24gRmEoZCxlLGEsYil7cGEoZCxlKTtYKGQsZSxhLGIuYXR0cmlidXRlcyxmdW5jdGlvbigpe3JldHVybiEwfSk7VChkLGUsYSxiLnVuaWZvcm1zLGZ1bmN0aW9uKCl7cmV0dXJuITB9KTt1YShkLGUsZSxhKX1mdW5jdGlvbiBIYShkLGUpe3ZhciBhPWQucHJvYyhcImRyYXdcIiwxKTtwYShkLGEpO2VhKGQsYSxlLmNvbnRleHQpO08oZCxhLGUuZnJhbWVidWZmZXIpO2hhKGQsYSxlKTtRKGQsYSxlLnN0YXRlKTtWKGQsYSxlLCExLCEwKTt2YXIgYj1lLnNoYWRlci5wcm9nVmFyLmFwcGVuZChkLGEpO2EoZC5zaGFyZWQuZ2wsXCIudXNlUHJvZ3JhbShcIixiLFxuXCIucHJvZ3JhbSk7XCIpO2lmKGUuc2hhZGVyLnByb2dyYW0pRmEoZCxhLGUsZS5zaGFkZXIucHJvZ3JhbSk7ZWxzZXt2YXIgYz1kLmdsb2JhbC5kZWYoXCJ7fVwiKSxoPWEuZGVmKGIsXCIuaWRcIiksZz1hLmRlZihjLFwiW1wiLGgsXCJdXCIpO2EoZC5jb25kKGcpLnRoZW4oZyxcIi5jYWxsKHRoaXMsYTApO1wiKVtcImVsc2VcIl0oZyxcIj1cIixjLFwiW1wiLGgsXCJdPVwiLGQubGluayhmdW5jdGlvbihhKXtyZXR1cm4gRWEoRmEsZCxlLGEsMSl9KSxcIihcIixiLFwiKTtcIixnLFwiLmNhbGwodGhpcyxhMCk7XCIpKX0wPE9iamVjdC5rZXlzKGUuc3RhdGUpLmxlbmd0aCYmYShkLnNoYXJlZC5jdXJyZW50LFwiLmRpcnR5PXRydWU7XCIpfWZ1bmN0aW9uIElhKGQsZSxhLGIpe2Z1bmN0aW9uIGMoKXtyZXR1cm4hMH1kLmJhdGNoSWQ9XCJhMVwiO3BhKGQsZSk7WChkLGUsYSxiLmF0dHJpYnV0ZXMsYyk7VChkLGUsYSxiLnVuaWZvcm1zLGMpO3VhKGQsZSxlLGEpfWZ1bmN0aW9uIENhKGUsYSxiLGMpe2Z1bmN0aW9uIGgoZSl7cmV0dXJuIGUuY29udGV4dERlcCYmXG53fHxlLnByb3BEZXB9ZnVuY3Rpb24gZyhlKXtyZXR1cm4haChlKX1wYShlLGEpO3ZhciB3PWIuY29udGV4dERlcCx6PWEuZGVmKCksbT1hLmRlZigpO2Uuc2hhcmVkLnByb3BzPW07ZS5iYXRjaElkPXo7dmFyIGs9ZS5zY29wZSgpLHE9ZS5zY29wZSgpO2Eoay5lbnRyeSxcImZvcihcIix6LFwiPTA7XCIseixcIjxcIixcImExXCIsXCI7KytcIix6LFwiKXtcIixtLFwiPVwiLFwiYTBcIixcIltcIix6LFwiXTtcIixxLFwifVwiLGsuZXhpdCk7Yi5uZWVkc0NvbnRleHQmJmVhKGUscSxiLmNvbnRleHQpO2IubmVlZHNGcmFtZWJ1ZmZlciYmTyhlLHEsYi5mcmFtZWJ1ZmZlcik7UShlLHEsYi5zdGF0ZSxoKTtiLnByb2ZpbGUmJmgoYi5wcm9maWxlKSYmVihlLHEsYiwhMSwhMCk7Yz8oWChlLGssYixjLmF0dHJpYnV0ZXMsZyksWChlLHEsYixjLmF0dHJpYnV0ZXMsaCksVChlLGssYixjLnVuaWZvcm1zLGcpLFQoZSxxLGIsYy51bmlmb3JtcyxoKSx1YShlLGsscSxiKSk6KGE9ZS5nbG9iYWwuZGVmKFwie31cIiksYz1iLnNoYWRlci5wcm9nVmFyLmFwcGVuZChlLFxucSksbT1xLmRlZihjLFwiLmlkXCIpLGs9cS5kZWYoYSxcIltcIixtLFwiXVwiKSxxKGUuc2hhcmVkLmdsLFwiLnVzZVByb2dyYW0oXCIsYyxcIi5wcm9ncmFtKTtcIixcImlmKCFcIixrLFwiKXtcIixrLFwiPVwiLGEsXCJbXCIsbSxcIl09XCIsZS5saW5rKGZ1bmN0aW9uKGEpe3JldHVybiBFYShJYSxlLGIsYSwyKX0pLFwiKFwiLGMsXCIpO31cIixrLFwiLmNhbGwodGhpcyxhMFtcIix6LFwiXSxcIix6LFwiKTtcIikpfWZ1bmN0aW9uIERhKGUsYSl7ZnVuY3Rpb24gYihlKXtyZXR1cm4gZS5jb250ZXh0RGVwJiZofHxlLnByb3BEZXB9dmFyIGM9ZS5wcm9jKFwiYmF0Y2hcIiwyKTtlLmJhdGNoSWQ9XCIwXCI7cGEoZSxjKTt2YXIgaD0hMSxnPSEwO09iamVjdC5rZXlzKGEuY29udGV4dCkuZm9yRWFjaChmdW5jdGlvbihlKXtoPWh8fGEuY29udGV4dFtlXS5wcm9wRGVwfSk7aHx8KGVhKGUsYyxhLmNvbnRleHQpLGc9ITEpO3ZhciB3PWEuZnJhbWVidWZmZXIsej0hMTt3Pyh3LnByb3BEZXA/aD16PSEwOncuY29udGV4dERlcCYmaCYmKHo9ITApLFxuenx8TyhlLGMsdykpOk8oZSxjLG51bGwpO2Euc3RhdGUudmlld3BvcnQmJmEuc3RhdGUudmlld3BvcnQucHJvcERlcCYmKGg9ITApO2hhKGUsYyxhKTtRKGUsYyxhLnN0YXRlLGZ1bmN0aW9uKGUpe3JldHVybiFiKGUpfSk7YS5wcm9maWxlJiZiKGEucHJvZmlsZSl8fFYoZSxjLGEsITEsXCJhMVwiKTthLmNvbnRleHREZXA9aDthLm5lZWRzQ29udGV4dD1nO2EubmVlZHNGcmFtZWJ1ZmZlcj16O2c9YS5zaGFkZXIucHJvZ1ZhcjtpZihnLmNvbnRleHREZXAmJmh8fGcucHJvcERlcClDYShlLGMsYSxudWxsKTtlbHNlIGlmKGc9Zy5hcHBlbmQoZSxjKSxjKGUuc2hhcmVkLmdsLFwiLnVzZVByb2dyYW0oXCIsZyxcIi5wcm9ncmFtKTtcIiksYS5zaGFkZXIucHJvZ3JhbSlDYShlLGMsYSxhLnNoYWRlci5wcm9ncmFtKTtlbHNle3ZhciB3PWUuZ2xvYmFsLmRlZihcInt9XCIpLHo9Yy5kZWYoZyxcIi5pZFwiKSxxPWMuZGVmKHcsXCJbXCIseixcIl1cIik7YyhlLmNvbmQocSkudGhlbihxLFwiLmNhbGwodGhpcyxhMCxhMSk7XCIpW1wiZWxzZVwiXShxLFxuXCI9XCIsdyxcIltcIix6LFwiXT1cIixlLmxpbmsoZnVuY3Rpb24oYil7cmV0dXJuIEVhKENhLGUsYSxiLDIpfSksXCIoXCIsZyxcIik7XCIscSxcIi5jYWxsKHRoaXMsYTAsYTEpO1wiKSl9MDxPYmplY3Qua2V5cyhhLnN0YXRlKS5sZW5ndGgmJmMoZS5zaGFyZWQuY3VycmVudCxcIi5kaXJ0eT10cnVlO1wiKX1mdW5jdGlvbiBQYShlLGEpe2Z1bmN0aW9uIGIoZyl7dmFyIHc9YS5zaGFkZXJbZ107dyYmYy5zZXQoaC5zaGFkZXIsXCIuXCIrZyx3LmFwcGVuZChlLGMpKX12YXIgYz1lLnByb2MoXCJzY29wZVwiLDMpO2UuYmF0Y2hJZD1cImEyXCI7dmFyIGg9ZS5zaGFyZWQsZz1oLmN1cnJlbnQ7ZWEoZSxjLGEuY29udGV4dCk7YS5mcmFtZWJ1ZmZlciYmYS5mcmFtZWJ1ZmZlci5hcHBlbmQoZSxjKTtrKE9iamVjdC5rZXlzKGEuc3RhdGUpKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBnPWEuc3RhdGVbYl0uYXBwZW5kKGUsYyk7eShnKT9nLmZvckVhY2goZnVuY3Rpb24oYSxoKXtjLnNldChlLm5leHRbYl0sXCJbXCIraCtcIl1cIixcbmEpfSk6Yy5zZXQoaC5uZXh0LFwiLlwiK2IsZyl9KTtWKGUsYyxhLCEwLCEwKTtbXCJlbGVtZW50c1wiLFwib2Zmc2V0XCIsXCJjb3VudFwiLFwiaW5zdGFuY2VzXCIsXCJwcmltaXRpdmVcIl0uZm9yRWFjaChmdW5jdGlvbihiKXt2YXIgZz1hLmRyYXdbYl07ZyYmYy5zZXQoaC5kcmF3LFwiLlwiK2IsXCJcIitnLmFwcGVuZChlLGMpKX0pO09iamVjdC5rZXlzKGEudW5pZm9ybXMpLmZvckVhY2goZnVuY3Rpb24oYil7Yy5zZXQoaC51bmlmb3JtcyxcIltcIitmLmlkKGIpK1wiXVwiLGEudW5pZm9ybXNbYl0uYXBwZW5kKGUsYykpfSk7T2JqZWN0LmtleXMoYS5hdHRyaWJ1dGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBoPWEuYXR0cmlidXRlc1tiXS5hcHBlbmQoZSxjKSxnPWUuc2NvcGVBdHRyaWIoYik7T2JqZWN0LmtleXMobmV3IEJhKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2Muc2V0KGcsXCIuXCIrZSxoW2VdKX0pfSk7YihcInZlcnRcIik7YihcImZyYWdcIik7MDxPYmplY3Qua2V5cyhhLnN0YXRlKS5sZW5ndGgmJihjKGcsXG5cIi5kaXJ0eT10cnVlO1wiKSxjLmV4aXQoZyxcIi5kaXJ0eT10cnVlO1wiKSk7YyhcImExKFwiLGUuc2hhcmVkLmNvbnRleHQsXCIsYTAsXCIsZS5iYXRjaElkLFwiKTtcIil9ZnVuY3Rpb24gTmEoZSl7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBlJiYheShlKSl7Zm9yKHZhciBhPU9iamVjdC5rZXlzKGUpLGI9MDtiPGEubGVuZ3RoOysrYilpZihnLmlzRHluYW1pYyhlW2FbYl1dKSlyZXR1cm4hMDtyZXR1cm4hMX19ZnVuY3Rpb24gSmEoZSxiLGMpe2Z1bmN0aW9uIGgoZSxhKXtxLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIGI9d1tkXTtnLmlzRHluYW1pYyhiKSYmKGI9ZS5pbnZva2UoYSxiKSxhKG4sXCIuXCIsZCxcIj1cIixiLFwiO1wiKSl9KX12YXIgdz1iW1wic3RhdGljXCJdW2NdO2lmKHcmJk5hKHcpKXt2YXIgej1lLmdsb2JhbCxxPU9iamVjdC5rZXlzKHcpLGs9ITEsbT0hMSxmPSExLG49ZS5nbG9iYWwuZGVmKFwie31cIik7cS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBjPXdbYl07aWYoZy5pc0R5bmFtaWMoYykpXCJmdW5jdGlvblwiPT09XG50eXBlb2YgYyYmKGM9d1tiXT1nLnVuYm94KGMpKSxiPWEoYyxudWxsKSxrPWt8fGIudGhpc0RlcCxmPWZ8fGIucHJvcERlcCxtPW18fGIuY29udGV4dERlcDtlbHNle3oobixcIi5cIixiLFwiPVwiKTtzd2l0Y2godHlwZW9mIGMpe2Nhc2UgXCJudW1iZXJcIjp6KGMpO2JyZWFrO2Nhc2UgXCJzdHJpbmdcIjp6KCdcIicsYywnXCInKTticmVhaztjYXNlIFwib2JqZWN0XCI6QXJyYXkuaXNBcnJheShjKSYmeihcIltcIixjLmpvaW4oKSxcIl1cIik7YnJlYWs7ZGVmYXVsdDp6KGUubGluayhjKSl9eihcIjtcIil9fSk7Yi5keW5hbWljW2NdPW5ldyBnLkR5bmFtaWNWYXJpYWJsZSg0LHt0aGlzRGVwOmssY29udGV4dERlcDptLHByb3BEZXA6ZixyZWY6bixhcHBlbmQ6aH0pO2RlbGV0ZSBiW1wic3RhdGljXCJdW2NdfX12YXIgQmE9QWEuUmVjb3JkLGNhPXthZGQ6MzI3NzQsc3VidHJhY3Q6MzI3NzgsXCJyZXZlcnNlIHN1YnRyYWN0XCI6MzI3Nzl9O3QuZXh0X2JsZW5kX21pbm1heCYmKGNhLm1pbj0zMjc3NSxjYS5tYXg9MzI3NzYpO1xudmFyIHRhPXQuYW5nbGVfaW5zdGFuY2VkX2FycmF5cyxvYT10LndlYmdsX2RyYXdfYnVmZmVycyxlPXtkaXJ0eTohMCxwcm9maWxlOmdhLnByb2ZpbGV9LHo9e30sdz1bXSx3YT17fSx4YT17fTtSKFwiZGl0aGVyXCIsMzAyNCk7UihcImJsZW5kLmVuYWJsZVwiLDMwNDIpO0coXCJibGVuZC5jb2xvclwiLFwiYmxlbmRDb2xvclwiLFswLDAsMCwwXSk7RyhcImJsZW5kLmVxdWF0aW9uXCIsXCJibGVuZEVxdWF0aW9uU2VwYXJhdGVcIixbMzI3NzQsMzI3NzRdKTtHKFwiYmxlbmQuZnVuY1wiLFwiYmxlbmRGdW5jU2VwYXJhdGVcIixbMSwwLDEsMF0pO1IoXCJkZXB0aC5lbmFibGVcIiwyOTI5LCEwKTtHKFwiZGVwdGguZnVuY1wiLFwiZGVwdGhGdW5jXCIsNTEzKTtHKFwiZGVwdGgucmFuZ2VcIixcImRlcHRoUmFuZ2VcIixbMCwxXSk7RyhcImRlcHRoLm1hc2tcIixcImRlcHRoTWFza1wiLCEwKTtHKFwiY29sb3JNYXNrXCIsXCJjb2xvck1hc2tcIixbITAsITAsITAsITBdKTtSKFwiY3VsbC5lbmFibGVcIiwyODg0KTtHKFwiY3VsbC5mYWNlXCIsXCJjdWxsRmFjZVwiLFxuMTAyOSk7RyhcImZyb250RmFjZVwiLFwiZnJvbnRGYWNlXCIsMjMwNSk7RyhcImxpbmVXaWR0aFwiLFwibGluZVdpZHRoXCIsMSk7UihcInBvbHlnb25PZmZzZXQuZW5hYmxlXCIsMzI4MjMpO0coXCJwb2x5Z29uT2Zmc2V0Lm9mZnNldFwiLFwicG9seWdvbk9mZnNldFwiLFswLDBdKTtSKFwic2FtcGxlLmFscGhhXCIsMzI5MjYpO1IoXCJzYW1wbGUuZW5hYmxlXCIsMzI5MjgpO0coXCJzYW1wbGUuY292ZXJhZ2VcIixcInNhbXBsZUNvdmVyYWdlXCIsWzEsITFdKTtSKFwic3RlbmNpbC5lbmFibGVcIiwyOTYwKTtHKFwic3RlbmNpbC5tYXNrXCIsXCJzdGVuY2lsTWFza1wiLC0xKTtHKFwic3RlbmNpbC5mdW5jXCIsXCJzdGVuY2lsRnVuY1wiLFs1MTksMCwtMV0pO0coXCJzdGVuY2lsLm9wRnJvbnRcIixcInN0ZW5jaWxPcFNlcGFyYXRlXCIsWzEwMjgsNzY4MCw3NjgwLDc2ODBdKTtHKFwic3RlbmNpbC5vcEJhY2tcIixcInN0ZW5jaWxPcFNlcGFyYXRlXCIsWzEwMjksNzY4MCw3NjgwLDc2ODBdKTtSKFwic2Npc3Nvci5lbmFibGVcIiwzMDg5KTtHKFwic2Npc3Nvci5ib3hcIixcblwic2Npc3NvclwiLFswLDAsaC5kcmF3aW5nQnVmZmVyV2lkdGgsaC5kcmF3aW5nQnVmZmVySGVpZ2h0XSk7RyhcInZpZXdwb3J0XCIsXCJ2aWV3cG9ydFwiLFswLDAsaC5kcmF3aW5nQnVmZmVyV2lkdGgsaC5kcmF3aW5nQnVmZmVySGVpZ2h0XSk7dmFyIFFhPXtnbDpoLGNvbnRleHQ6UyxzdHJpbmdzOmYsbmV4dDp6LGN1cnJlbnQ6ZSxkcmF3OnEsZWxlbWVudHM6dSxidWZmZXI6TSxzaGFkZXI6dmEsYXR0cmlidXRlczpBYS5zdGF0ZSx1bmlmb3JtczpLLGZyYW1lYnVmZmVyOkQsZXh0ZW5zaW9uczp0LHRpbWVyOm1hLGlzQnVmZmVyQXJnczpsfSxNYT17cHJpbVR5cGVzOkUsY29tcGFyZUZ1bmNzOkIsYmxlbmRGdW5jczptLGJsZW5kRXF1YXRpb25zOmNhLHN0ZW5jaWxPcHM6WSxnbFR5cGVzOkMsb3JpZW50YXRpb25UeXBlOkx9O29hJiYoTWEuYmFja0J1ZmZlcj1bMTAyOV0sTWEuZHJhd0J1ZmZlcj1GKHAubWF4RHJhd2J1ZmZlcnMsZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lP1swXTpGKGUsZnVuY3Rpb24oZSl7cmV0dXJuIDM2MDY0K1xuZX0pfSkpO3ZhciBSYT0wO3JldHVybntuZXh0OnosY3VycmVudDplLHByb2NzOmZ1bmN0aW9uKCl7dmFyIGE9YmEoKSxiPWEucHJvYyhcInBvbGxcIiksYz1hLnByb2MoXCJyZWZyZXNoXCIpLGc9YS5ibG9jaygpO2IoZyk7YyhnKTt2YXIgdz1hLnNoYXJlZCx6PXcuZ2wscT13Lm5leHQsaz13LmN1cnJlbnQ7ZyhrLFwiLmRpcnR5PWZhbHNlO1wiKTtPKGEsYik7TyhhLGMsbnVsbCwhMCk7dmFyIG09aC5nZXRFeHRlbnNpb24oXCJhbmdsZV9pbnN0YW5jZWRfYXJyYXlzXCIpLGY7bSYmKGY9YS5saW5rKG0pKTtmb3IodmFyIG49MDtuPHAubWF4QXR0cmlidXRlczsrK24pe3ZhciBsPWMuZGVmKHcuYXR0cmlidXRlcyxcIltcIixuLFwiXVwiKSxCPWEuY29uZChsLFwiLmJ1ZmZlclwiKTtCLnRoZW4oeixcIi5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShcIixuLFwiKTtcIix6LFwiLmJpbmRCdWZmZXIoXCIsMzQ5NjIsXCIsXCIsbCxcIi5idWZmZXIuYnVmZmVyKTtcIix6LFwiLnZlcnRleEF0dHJpYlBvaW50ZXIoXCIsbixcIixcIixsLFwiLnNpemUsXCIsXG5sLFwiLnR5cGUsXCIsbCxcIi5ub3JtYWxpemVkLFwiLGwsXCIuc3RyaWRlLFwiLGwsXCIub2Zmc2V0KTtcIilbXCJlbHNlXCJdKHosXCIuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KFwiLG4sXCIpO1wiLHosXCIudmVydGV4QXR0cmliNGYoXCIsbixcIixcIixsLFwiLngsXCIsbCxcIi55LFwiLGwsXCIueixcIixsLFwiLncpO1wiLGwsXCIuYnVmZmVyPW51bGw7XCIpO2MoQik7bSYmYyhmLFwiLnZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRShcIixuLFwiLFwiLGwsXCIuZGl2aXNvcik7XCIpfU9iamVjdC5rZXlzKHdhKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBoPXdhW2VdLHc9Zy5kZWYocSxcIi5cIixlKSxtPWEuYmxvY2soKTttKFwiaWYoXCIsdyxcIil7XCIseixcIi5lbmFibGUoXCIsaCxcIil9ZWxzZXtcIix6LFwiLmRpc2FibGUoXCIsaCxcIil9XCIsayxcIi5cIixlLFwiPVwiLHcsXCI7XCIpO2MobSk7YihcImlmKFwiLHcsXCIhPT1cIixrLFwiLlwiLGUsXCIpe1wiLG0sXCJ9XCIpfSk7T2JqZWN0LmtleXMoeGEpLmZvckVhY2goZnVuY3Rpb24oaCl7dmFyIHc9eGFbaF0sbT1lW2hdLGYsXG5uLGw9YS5ibG9jaygpO2woeixcIi5cIix3LFwiKFwiKTt5KG0pPyh3PW0ubGVuZ3RoLGY9YS5nbG9iYWwuZGVmKHEsXCIuXCIsaCksbj1hLmdsb2JhbC5kZWYoayxcIi5cIixoKSxsKEYodyxmdW5jdGlvbihlKXtyZXR1cm4gZitcIltcIitlK1wiXVwifSksXCIpO1wiLEYodyxmdW5jdGlvbihlKXtyZXR1cm4gbitcIltcIitlK1wiXT1cIitmK1wiW1wiK2UrXCJdO1wifSkuam9pbihcIlwiKSksYihcImlmKFwiLEYodyxmdW5jdGlvbihlKXtyZXR1cm4gZitcIltcIitlK1wiXSE9PVwiK24rXCJbXCIrZStcIl1cIn0pLmpvaW4oXCJ8fFwiKSxcIil7XCIsbCxcIn1cIikpOihmPWcuZGVmKHEsXCIuXCIsaCksbj1nLmRlZihrLFwiLlwiLGgpLGwoZixcIik7XCIsayxcIi5cIixoLFwiPVwiLGYsXCI7XCIpLGIoXCJpZihcIixmLFwiIT09XCIsbixcIil7XCIsbCxcIn1cIikpO2MobCl9KTtyZXR1cm4gYS5jb21waWxlKCl9KCksY29tcGlsZTpmdW5jdGlvbihlLGEsYixjLGgpe3ZhciBnPWJhKCk7Zy5zdGF0cz1nLmxpbmsoaCk7T2JqZWN0LmtleXMoYVtcInN0YXRpY1wiXSkuZm9yRWFjaChmdW5jdGlvbihlKXtKYShnLFxuYSxlKX0pO24uZm9yRWFjaChmdW5jdGlvbihhKXtKYShnLGUsYSl9KTtiPWxhKGUsYSxiLGMsZyk7SGEoZyxiKTtQYShnLGIpO0RhKGcsYik7cmV0dXJuIGcuY29tcGlsZSgpfX19fSx7XCIuL2NvbnN0YW50cy9kdHlwZXMuanNvblwiOjQsXCIuL2NvbnN0YW50cy9wcmltaXRpdmVzLmpzb25cIjo1LFwiLi9keW5hbWljXCI6OCxcIi4vdXRpbC9jb2RlZ2VuXCI6MjEsXCIuL3V0aWwvaXMtYXJyYXktbGlrZVwiOjI0LFwiLi91dGlsL2lzLW5kYXJyYXlcIjoyNSxcIi4vdXRpbC9pcy10eXBlZC1hcnJheVwiOjI2LFwiLi91dGlsL2xvb3BcIjoyN31dLDg6W2Z1bmN0aW9uKGYscCx1KXtmdW5jdGlvbiBsKGMsYSl7dGhpcy5pZD1yKys7dGhpcy50eXBlPWM7dGhpcy5kYXRhPWF9ZnVuY3Rpb24gayhjKXtpZigwPT09Yy5sZW5ndGgpcmV0dXJuW107dmFyIGE9Yy5jaGFyQXQoMCksYj1jLmNoYXJBdChjLmxlbmd0aC0xKTtpZigxPGMubGVuZ3RoJiZhPT09YiYmKCdcIic9PT1hfHxcIidcIj09PWEpKXJldHVyblsnXCInK2Muc3Vic3RyKDEsXG5jLmxlbmd0aC0yKS5yZXBsYWNlKC9cXFxcL2csXCJcXFxcXFxcXFwiKS5yZXBsYWNlKC9cIi9nLCdcXFxcXCInKSsnXCInXTtpZihhPS9cXFsoZmFsc2V8dHJ1ZXxudWxsfFxcZCt8J1teJ10qJ3xcIlteXCJdKlwiKVxcXS8uZXhlYyhjKSlyZXR1cm4gayhjLnN1YnN0cigwLGEuaW5kZXgpKS5jb25jYXQoayhhWzFdKSkuY29uY2F0KGsoYy5zdWJzdHIoYS5pbmRleCthWzBdLmxlbmd0aCkpKTthPWMuc3BsaXQoXCIuXCIpO2lmKDE9PT1hLmxlbmd0aClyZXR1cm5bJ1wiJytjLnJlcGxhY2UoL1xcXFwvZyxcIlxcXFxcXFxcXCIpLnJlcGxhY2UoL1wiL2csJ1xcXFxcIicpKydcIiddO2M9W107Zm9yKGI9MDtiPGEubGVuZ3RoOysrYiljPWMuY29uY2F0KGsoYVtiXSkpO3JldHVybiBjfWZ1bmN0aW9uIHgoYyl7cmV0dXJuXCJbXCIrayhjKS5qb2luKFwiXVtcIikrXCJdXCJ9dmFyIHI9MDtwLmV4cG9ydHM9e0R5bmFtaWNWYXJpYWJsZTpsLGRlZmluZTpmdW5jdGlvbihjLGEpe3JldHVybiBuZXcgbChjLHgoYStcIlwiKSl9LGlzRHluYW1pYzpmdW5jdGlvbihjKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT1cbnR5cGVvZiBjJiYhYy5fcmVnbFR5cGV8fGMgaW5zdGFuY2VvZiBsfSx1bmJveDpmdW5jdGlvbihjLGEpe3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBjP25ldyBsKDAsYyk6Y30sYWNjZXNzb3I6eH19LHt9XSw5OltmdW5jdGlvbihmLHAsdSl7dmFyIGw9ZihcIi4vdXRpbC9pcy10eXBlZC1hcnJheVwiKSxrPWYoXCIuL3V0aWwvaXMtbmRhcnJheVwiKSx4PWYoXCIuL3V0aWwvdmFsdWVzXCIpLHI9ZihcIi4vY29uc3RhbnRzL3ByaW1pdGl2ZXMuanNvblwiKSxjPWYoXCIuL2NvbnN0YW50cy91c2FnZS5qc29uXCIpO3AuZXhwb3J0cz1mdW5jdGlvbihhLGIsZixwKXtmdW5jdGlvbiB0KGEpe3RoaXMuaWQ9QysrO0VbdGhpcy5pZF09dGhpczt0aGlzLmJ1ZmZlcj1hO3RoaXMucHJpbVR5cGU9NDt0aGlzLnR5cGU9dGhpcy52ZXJ0Q291bnQ9MH1mdW5jdGlvbiB5KGMsZyxuLHIseCxoLHQpe2MuYnVmZmVyLmJpbmQoKTtpZihnKXt2YXIgeT10O3R8fGwoZykmJighayhnKXx8bChnLmRhdGEpKXx8KHk9Yi5vZXNfZWxlbWVudF9pbmRleF91aW50P1xuNTEyNTo1MTIzKTtmLl9pbml0QnVmZmVyKGMuYnVmZmVyLGcsbix5LDMpfWVsc2UgYS5idWZmZXJEYXRhKDM0OTYzLGgsbiksYy5idWZmZXIuZHR5cGU9eXx8NTEyMSxjLmJ1ZmZlci51c2FnZT1uLGMuYnVmZmVyLmRpbWVuc2lvbj0zLGMuYnVmZmVyLmJ5dGVMZW5ndGg9aDt5PXQ7aWYoIXQpe3N3aXRjaChjLmJ1ZmZlci5kdHlwZSl7Y2FzZSA1MTIxOmNhc2UgNTEyMDp5PTUxMjE7YnJlYWs7Y2FzZSA1MTIzOmNhc2UgNTEyMjp5PTUxMjM7YnJlYWs7Y2FzZSA1MTI1OmNhc2UgNTEyNDp5PTUxMjV9Yy5idWZmZXIuZHR5cGU9eX1jLnR5cGU9eTtnPXg7MD5nJiYoZz1jLmJ1ZmZlci5ieXRlTGVuZ3RoLDUxMjM9PT15P2c+Pj0xOjUxMjU9PT15JiYoZz4+PTIpKTtjLnZlcnRDb3VudD1nO2c9cjswPnImJihnPTQscj1jLmJ1ZmZlci5kaW1lbnNpb24sMT09PXImJihnPTApLDI9PT1yJiYoZz0xKSwzPT09ciYmKGc9NCkpO2MucHJpbVR5cGU9Z31mdW5jdGlvbiBnKGEpe3AuZWxlbWVudHNDb3VudC0tO1xuZGVsZXRlIEVbYS5pZF07YS5idWZmZXIuZGVzdHJveSgpO2EuYnVmZmVyPW51bGx9dmFyIEU9e30sQz0wLE49e3VpbnQ4OjUxMjEsdWludDE2OjUxMjN9O2Iub2VzX2VsZW1lbnRfaW5kZXhfdWludCYmKE4udWludDMyPTUxMjUpO3QucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLmJ1ZmZlci5iaW5kKCl9O3ZhciBuPVtdO3JldHVybntjcmVhdGU6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBuKGEpe2lmKGEpaWYoXCJudW1iZXJcIj09PXR5cGVvZiBhKXgoYSksQy5wcmltVHlwZT00LEMudmVydENvdW50PWF8MCxDLnR5cGU9NTEyMTtlbHNle3ZhciBiPW51bGwsZz0zNTA0NCxtPS0xLGY9LTEsdD0wLEI9MDtpZihBcnJheS5pc0FycmF5KGEpfHxsKGEpfHxrKGEpKWI9YTtlbHNlIGlmKFwiZGF0YVwiaW4gYSYmKGI9YS5kYXRhKSxcInVzYWdlXCJpbiBhJiYoZz1jW2EudXNhZ2VdKSxcInByaW1pdGl2ZVwiaW4gYSYmKG09clthLnByaW1pdGl2ZV0pLFwiY291bnRcImluIGEmJihmPWEuY291bnR8MCksXG5cInR5cGVcImluIGEmJihCPU5bYS50eXBlXSksXCJsZW5ndGhcImluIGEpdD1hLmxlbmd0aHwwO2Vsc2UgaWYodD1mLDUxMjM9PT1CfHw1MTIyPT09Qil0Kj0yO2Vsc2UgaWYoNTEyNT09PUJ8fDUxMjQ9PT1CKXQqPTQ7eShDLGIsZyxtLGYsdCxCKX1lbHNlIHgoKSxDLnByaW1UeXBlPTQsQy52ZXJ0Q291bnQ9MCxDLnR5cGU9NTEyMTtyZXR1cm4gbn12YXIgeD1mLmNyZWF0ZShudWxsLDM0OTYzLCEwKSxDPW5ldyB0KHguX2J1ZmZlcik7cC5lbGVtZW50c0NvdW50Kys7bihhKTtuLl9yZWdsVHlwZT1cImVsZW1lbnRzXCI7bi5fZWxlbWVudHM9QztuLnN1YmRhdGE9ZnVuY3Rpb24oYSxiKXt4LnN1YmRhdGEoYSxiKTtyZXR1cm4gbn07bi5kZXN0cm95PWZ1bmN0aW9uKCl7ZyhDKX07cmV0dXJuIG59LGNyZWF0ZVN0cmVhbTpmdW5jdGlvbihhKXt2YXIgYj1uLnBvcCgpO2J8fChiPW5ldyB0KGYuY3JlYXRlKG51bGwsMzQ5NjMsITAsITEpLl9idWZmZXIpKTt5KGIsYSwzNTA0MCwtMSwtMSwwLDApO3JldHVybiBifSxcbmRlc3Ryb3lTdHJlYW06ZnVuY3Rpb24oYSl7bi5wdXNoKGEpfSxnZXRFbGVtZW50czpmdW5jdGlvbihhKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYSYmYS5fZWxlbWVudHMgaW5zdGFuY2VvZiB0P2EuX2VsZW1lbnRzOm51bGx9LGNsZWFyOmZ1bmN0aW9uKCl7eChFKS5mb3JFYWNoKGcpfX19fSx7XCIuL2NvbnN0YW50cy9wcmltaXRpdmVzLmpzb25cIjo1LFwiLi9jb25zdGFudHMvdXNhZ2UuanNvblwiOjYsXCIuL3V0aWwvaXMtbmRhcnJheVwiOjI1LFwiLi91dGlsL2lzLXR5cGVkLWFycmF5XCI6MjYsXCIuL3V0aWwvdmFsdWVzXCI6MzF9XSwxMDpbZnVuY3Rpb24oZixwLHUpe3AuZXhwb3J0cz1mdW5jdGlvbihmLGspe2Z1bmN0aW9uIHgoYSl7YT1hLnRvTG93ZXJDYXNlKCk7dmFyIGM7dHJ5e2M9clthXT1mLmdldEV4dGVuc2lvbihhKX1jYXRjaChrKXt9cmV0dXJuISFjfWZvcih2YXIgcj17fSxjPTA7YzxrLmV4dGVuc2lvbnMubGVuZ3RoOysrYyl7dmFyIGE9ay5leHRlbnNpb25zW2NdO2lmKCF4KGEpKXJldHVybiBrLm9uRGVzdHJveSgpLFxuay5vbkRvbmUoJ1wiJythKydcIiBleHRlbnNpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBXZWJHTCBjb250ZXh0LCB0cnkgdXBncmFkaW5nIHlvdXIgc3lzdGVtIG9yIGEgZGlmZmVyZW50IGJyb3dzZXInKSxudWxsfWsub3B0aW9uYWxFeHRlbnNpb25zLmZvckVhY2goeCk7cmV0dXJue2V4dGVuc2lvbnM6cixyZXN0b3JlOmZ1bmN0aW9uKCl7T2JqZWN0LmtleXMocikuZm9yRWFjaChmdW5jdGlvbihhKXtpZigheChhKSl0aHJvdyBFcnJvcihcIihyZWdsKTogZXJyb3IgcmVzdG9yaW5nIGV4dGVuc2lvbiBcIithKTt9KX19fX0se31dLDExOltmdW5jdGlvbihmLHAsdSl7dmFyIGw9ZihcIi4vdXRpbC92YWx1ZXNcIiksaz1mKFwiLi91dGlsL2V4dGVuZFwiKSx4PVtdO3hbNjQwOF09NDt2YXIgcj1bXTtyWzUxMjFdPTE7cls1MTI2XT00O3JbMzYxOTNdPTI7cC5leHBvcnRzPWZ1bmN0aW9uKGMsYSxiLGYscCx0KXtmdW5jdGlvbiB5KGEsYyxiKXt0aGlzLnRhcmdldD1hO3RoaXMudGV4dHVyZT1cbmM7dGhpcy5yZW5kZXJidWZmZXI9Yjt2YXIgaD1hPTA7Yz8oYT1jLndpZHRoLGg9Yy5oZWlnaHQpOmImJihhPWIud2lkdGgsaD1iLmhlaWdodCk7dGhpcy53aWR0aD1hO3RoaXMuaGVpZ2h0PWh9ZnVuY3Rpb24gZyhhKXthJiYoYS50ZXh0dXJlJiZhLnRleHR1cmUuX3RleHR1cmUuZGVjUmVmKCksYS5yZW5kZXJidWZmZXImJmEucmVuZGVyYnVmZmVyLl9yZW5kZXJidWZmZXIuZGVjUmVmKCkpfWZ1bmN0aW9uIEUoYSxjLGIpe2EmJihhLnRleHR1cmU/YS50ZXh0dXJlLl90ZXh0dXJlLnJlZkNvdW50Kz0xOmEucmVuZGVyYnVmZmVyLl9yZW5kZXJidWZmZXIucmVmQ291bnQrPTEpfWZ1bmN0aW9uIEMoYSxiKXtiJiYoYi50ZXh0dXJlP2MuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsYSxiLnRhcmdldCxiLnRleHR1cmUuX3RleHR1cmUudGV4dHVyZSwwKTpjLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKDM2MTYwLGEsMzYxNjEsYi5yZW5kZXJidWZmZXIuX3JlbmRlcmJ1ZmZlci5yZW5kZXJidWZmZXIpKX1cbmZ1bmN0aW9uIE4oYSl7dmFyIGI9MzU1MyxjPW51bGwsaD1udWxsLGc9YTtcIm9iamVjdFwiPT09dHlwZW9mIGEmJihnPWEuZGF0YSxcInRhcmdldFwiaW4gYSYmKGI9YS50YXJnZXR8MCkpO2E9Zy5fcmVnbFR5cGU7XCJ0ZXh0dXJlMmRcIj09PWE/Yz1nOlwidGV4dHVyZUN1YmVcIj09PWE/Yz1nOlwicmVuZGVyYnVmZmVyXCI9PT1hJiYoaD1nLGI9MzYxNjEpO3JldHVybiBuZXcgeShiLGMsaCl9ZnVuY3Rpb24gbihhLGIsYyxoLGcpe2lmKGMpcmV0dXJuIGE9Zi5jcmVhdGUyRCh7d2lkdGg6YSxoZWlnaHQ6Yixmb3JtYXQ6aCx0eXBlOmd9KSxhLl90ZXh0dXJlLnJlZkNvdW50PTAsbmV3IHkoMzU1MyxhLG51bGwpO2E9cC5jcmVhdGUoe3dpZHRoOmEsaGVpZ2h0OmIsZm9ybWF0Omh9KTthLl9yZW5kZXJidWZmZXIucmVmQ291bnQ9MDtyZXR1cm4gbmV3IHkoMzYxNjEsbnVsbCxhKX1mdW5jdGlvbiBtKGEpe3JldHVybiBhJiYoYS50ZXh0dXJlfHxhLnJlbmRlcmJ1ZmZlcil9ZnVuY3Rpb24gQihhLGIsYyl7YSYmXG4oYS50ZXh0dXJlP2EudGV4dHVyZS5yZXNpemUoYixjKTphLnJlbmRlcmJ1ZmZlciYmYS5yZW5kZXJidWZmZXIucmVzaXplKGIsYykpfWZ1bmN0aW9uIHUoKXt0aGlzLmlkPVorKztEW3RoaXMuaWRdPXRoaXM7dGhpcy5mcmFtZWJ1ZmZlcj1jLmNyZWF0ZUZyYW1lYnVmZmVyKCk7dGhpcy5oZWlnaHQ9dGhpcy53aWR0aD0wO3RoaXMuY29sb3JBdHRhY2htZW50cz1bXTt0aGlzLmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQ9dGhpcy5zdGVuY2lsQXR0YWNobWVudD10aGlzLmRlcHRoQXR0YWNobWVudD1udWxsfWZ1bmN0aW9uIEwoYSl7YS5jb2xvckF0dGFjaG1lbnRzLmZvckVhY2goZyk7ZyhhLmRlcHRoQXR0YWNobWVudCk7ZyhhLnN0ZW5jaWxBdHRhY2htZW50KTtnKGEuZGVwdGhTdGVuY2lsQXR0YWNobWVudCl9ZnVuY3Rpb24gSChhKXtjLmRlbGV0ZUZyYW1lYnVmZmVyKGEuZnJhbWVidWZmZXIpO2EuZnJhbWVidWZmZXI9bnVsbDt0LmZyYW1lYnVmZmVyQ291bnQtLTtkZWxldGUgRFthLmlkXX1cbmZ1bmN0aW9uIGgoYSl7dmFyIGg7Yy5iaW5kRnJhbWVidWZmZXIoMzYxNjAsYS5mcmFtZWJ1ZmZlcik7dmFyIGc9YS5jb2xvckF0dGFjaG1lbnRzO2ZvcihoPTA7aDxnLmxlbmd0aDsrK2gpQygzNjA2NCtoLGdbaF0pO2ZvcihoPWcubGVuZ3RoO2g8Yi5tYXhDb2xvckF0dGFjaG1lbnRzOysraCljLmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDM2MDY0K2gsMzU1MyxudWxsLDApO2MuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzMzMDYsMzU1MyxudWxsLDApO2MuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwOTYsMzU1MyxudWxsLDApO2MuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYxMjgsMzU1MyxudWxsLDApO0MoMzYwOTYsYS5kZXB0aEF0dGFjaG1lbnQpO0MoMzYxMjgsYS5zdGVuY2lsQXR0YWNobWVudCk7QygzMzMwNixhLmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpO2MuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cygzNjE2MCk7Yy5iaW5kRnJhbWVidWZmZXIoMzYxNjAsXG5LYS5uZXh0KTtLYS5jdXI9S2EubmV4dDtjLmdldEVycm9yKCl9ZnVuY3Rpb24gZmEoYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGssZj0wLGw9MCx0PSEwLHk9ITA7az1udWxsO3ZhciBCPSEwLEM9XCJyZ2JhXCIsRj1cInVpbnQ4XCIscD0xLE09bnVsbCxIPW51bGwsdT1udWxsLFk9ITE7aWYoXCJudW1iZXJcIj09PXR5cGVvZiBhKWY9YXwwLGw9YnwwfHxmO2Vsc2UgaWYoYSl7XCJzaGFwZVwiaW4gYT8obD1hLnNoYXBlLGY9bFswXSxsPWxbMV0pOihcInJhZGl1c1wiaW4gYSYmKGY9bD1hLnJhZGl1cyksXCJ3aWR0aFwiaW4gYSYmKGY9YS53aWR0aCksXCJoZWlnaHRcImluIGEmJihsPWEuaGVpZ2h0KSk7aWYoXCJjb2xvclwiaW4gYXx8XCJjb2xvcnNcImluIGEpaz1hLmNvbG9yfHxhLmNvbG9ycyxBcnJheS5pc0FycmF5KGspO2lmKCFrKXtcImNvbG9yQ291bnRcImluIGEmJihwPWEuY29sb3JDb3VudHwwKTtcImNvbG9yVGV4dHVyZVwiaW4gYSYmKEI9ISFhLmNvbG9yVGV4dHVyZSxDPVwicmdiYTRcIik7aWYoXCJjb2xvclR5cGVcImluXG5hJiYoRj1hLmNvbG9yVHlwZSwhQikpaWYoXCJoYWxmIGZsb2F0XCI9PT1GfHxcImZsb2F0MTZcIj09PUYpQz1cInJnYmExNmZcIjtlbHNlIGlmKFwiZmxvYXRcIj09PUZ8fFwiZmxvYXQzMlwiPT09RilDPVwicmdiYTMyZlwiO1wiY29sb3JGb3JtYXRcImluIGEmJihDPWEuY29sb3JGb3JtYXQsMDw9TGEuaW5kZXhPZihDKT9CPSEwOjA8PXphLmluZGV4T2YoQykmJihCPSExKSl9aWYoXCJkZXB0aFRleHR1cmVcImluIGF8fFwiZGVwdGhTdGVuY2lsVGV4dHVyZVwiaW4gYSlZPSEoIWEuZGVwdGhUZXh0dXJlJiYhYS5kZXB0aFN0ZW5jaWxUZXh0dXJlKTtcImRlcHRoXCJpbiBhJiYoXCJib29sZWFuXCI9PT10eXBlb2YgYS5kZXB0aD90PWEuZGVwdGg6KE09YS5kZXB0aCx5PSExKSk7XCJzdGVuY2lsXCJpbiBhJiYoXCJib29sZWFuXCI9PT10eXBlb2YgYS5zdGVuY2lsP3k9YS5zdGVuY2lsOihIPWEuc3RlbmNpbCx0PSExKSk7XCJkZXB0aFN0ZW5jaWxcImluIGEmJihcImJvb2xlYW5cIj09PXR5cGVvZiBhLmRlcHRoU3RlbmNpbD90PXk9YS5kZXB0aFN0ZW5jaWw6XG4odT1hLmRlcHRoU3RlbmNpbCx5PXQ9ITEpKX1lbHNlIGY9bD0xO3ZhciBEPW51bGwsZmE9bnVsbCxLPW51bGwsTz1udWxsO2lmKEFycmF5LmlzQXJyYXkoaykpRD1rLm1hcChOKTtlbHNlIGlmKGspRD1bTihrKV07ZWxzZSBmb3IoRD1BcnJheShwKSxrPTA7azxwOysraylEW2tdPW4oZixsLEIsQyxGKTtmPWZ8fERbMF0ud2lkdGg7bD1sfHxEWzBdLmhlaWdodDtNP2ZhPU4oTSk6dCYmIXkmJihmYT1uKGYsbCxZLFwiZGVwdGhcIixcInVpbnQzMlwiKSk7SD9LPU4oSCk6eSYmIXQmJihLPW4oZixsLCExLFwic3RlbmNpbFwiLFwidWludDhcIikpO3U/Tz1OKHUpOiFNJiYhSCYmeSYmdCYmKE89bihmLGwsWSxcImRlcHRoIHN0ZW5jaWxcIixcImRlcHRoIHN0ZW5jaWxcIikpO3Q9bnVsbDtmb3Ioaz0wO2s8RC5sZW5ndGg7KytrKUUoRFtrXSxmLGwpLERba10mJkRba10udGV4dHVyZSYmKHk9eFtEW2tdLnRleHR1cmUuX3RleHR1cmUuZm9ybWF0XSpyW0Rba10udGV4dHVyZS5fdGV4dHVyZS50eXBlXSxudWxsPT09XG50JiYodD15KSk7RShmYSxmLGwpO0UoSyxmLGwpO0UoTyxmLGwpO0woZyk7Zy53aWR0aD1mO2cuaGVpZ2h0PWw7Zy5jb2xvckF0dGFjaG1lbnRzPUQ7Zy5kZXB0aEF0dGFjaG1lbnQ9ZmE7Zy5zdGVuY2lsQXR0YWNobWVudD1LO2cuZGVwdGhTdGVuY2lsQXR0YWNobWVudD1PO2MuY29sb3I9RC5tYXAobSk7Yy5kZXB0aD1tKGZhKTtjLnN0ZW5jaWw9bShLKTtjLmRlcHRoU3RlbmNpbD1tKE8pO2Mud2lkdGg9Zy53aWR0aDtjLmhlaWdodD1nLmhlaWdodDtoKGcpO3JldHVybiBjfXZhciBnPW5ldyB1O3QuZnJhbWVidWZmZXJDb3VudCsrO2MoYSxiKTtyZXR1cm4gayhjLHtyZXNpemU6ZnVuY3Rpb24oYSxiKXt2YXIgaz1hfDAsZj1ifDB8fGs7aWYoaz09PWcud2lkdGgmJmY9PT1nLmhlaWdodClyZXR1cm4gYztmb3IodmFyIG09Zy5jb2xvckF0dGFjaG1lbnRzLGw9MDtsPG0ubGVuZ3RoOysrbClCKG1bbF0sayxmKTtCKGcuZGVwdGhBdHRhY2htZW50LGssZik7QihnLnN0ZW5jaWxBdHRhY2htZW50LFxuayxmKTtCKGcuZGVwdGhTdGVuY2lsQXR0YWNobWVudCxrLGYpO2cud2lkdGg9Yy53aWR0aD1rO2cuaGVpZ2h0PWMuaGVpZ2h0PWY7aChnKTtyZXR1cm4gY30sX3JlZ2xUeXBlOlwiZnJhbWVidWZmZXJcIixfZnJhbWVidWZmZXI6ZyxkZXN0cm95OmZ1bmN0aW9uKCl7SChnKTtMKGcpfX0pfXZhciBLYT17Y3VyOm51bGwsbmV4dDpudWxsLGRpcnR5OiExfSxMYT1bXCJyZ2JhXCJdLHphPVtcInJnYmE0XCIsXCJyZ2I1NjVcIixcInJnYjUgYTFcIl07YS5leHRfc3JnYiYmemEucHVzaChcInNyZ2JhXCIpO2EuZXh0X2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0JiZ6YS5wdXNoKFwicmdiYTE2ZlwiLFwicmdiMTZmXCIpO2Eud2ViZ2xfY29sb3JfYnVmZmVyX2Zsb2F0JiZ6YS5wdXNoKFwicmdiYTMyZlwiKTt2YXIgR2E9W1widWludDhcIl07YS5vZXNfdGV4dHVyZV9oYWxmX2Zsb2F0JiZHYS5wdXNoKFwiaGFsZiBmbG9hdFwiLFwiZmxvYXQxNlwiKTthLm9lc190ZXh0dXJlX2Zsb2F0JiZHYS5wdXNoKFwiZmxvYXRcIixcImZsb2F0MzJcIik7dmFyIFo9XG4wLEQ9e307cmV0dXJuIGsoS2Ese2dldEZyYW1lYnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhJiZcImZyYW1lYnVmZmVyXCI9PT1hLl9yZWdsVHlwZSYmKGE9YS5fZnJhbWVidWZmZXIsYSBpbnN0YW5jZW9mIHUpP2E6bnVsbH0sY3JlYXRlOmZhLGNyZWF0ZUN1YmU6ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYyhhKXt2YXIgZyxoPXtjb2xvcjpudWxsfSxtPTAsbD1udWxsO2c9XCJyZ2JhXCI7dmFyIG49XCJ1aW50OFwiLHI9MTtpZihcIm51bWJlclwiPT09dHlwZW9mIGEpbT1hfDA7ZWxzZSBpZihhKXtcInNoYXBlXCJpbiBhP209YS5zaGFwZVswXTooXCJyYWRpdXNcImluIGEmJihtPWEucmFkaXVzfDApLFwid2lkdGhcImluIGE/bT1hLndpZHRofDA6XCJoZWlnaHRcImluIGEmJihtPWEuaGVpZ2h0fDApKTtpZihcImNvbG9yXCJpbiBhfHxcImNvbG9yc1wiaW4gYSlsPWEuY29sb3J8fGEuY29sb3JzLEFycmF5LmlzQXJyYXkobCk7bHx8KFwiY29sb3JDb3VudFwiaW4gYSYmKHI9YS5jb2xvckNvdW50fFxuMCksXCJjb2xvclR5cGVcImluIGEmJihuPWEuY29sb3JUeXBlKSxcImNvbG9yRm9ybWF0XCJpbiBhJiYoZz1hLmNvbG9yRm9ybWF0KSk7XCJkZXB0aFwiaW4gYSYmKGguZGVwdGg9YS5kZXB0aCk7XCJzdGVuY2lsXCJpbiBhJiYoaC5zdGVuY2lsPWEuc3RlbmNpbCk7XCJkZXB0aFN0ZW5jaWxcImluIGEmJihoLmRlcHRoU3RlbmNpbD1hLmRlcHRoU3RlbmNpbCl9ZWxzZSBtPTE7aWYobClpZihBcnJheS5pc0FycmF5KGwpKWZvcihhPVtdLGc9MDtnPGwubGVuZ3RoOysrZylhW2ddPWxbZ107ZWxzZSBhPVtsXTtlbHNlIGZvcihhPUFycmF5KHIpLGw9e3JhZGl1czptLGZvcm1hdDpnLHR5cGU6bn0sZz0wO2c8cjsrK2cpYVtnXT1mLmNyZWF0ZUN1YmUobCk7aC5jb2xvcj1BcnJheShhLmxlbmd0aCk7Zm9yKGc9MDtnPGEubGVuZ3RoOysrZylyPWFbZ10sbT1tfHxyLndpZHRoLGguY29sb3JbZ109e3RhcmdldDozNDA2OSxkYXRhOmFbZ119O2ZvcihnPTA7Nj5nOysrZyl7Zm9yKHI9MDtyPGEubGVuZ3RoOysrciloLmNvbG9yW3JdLnRhcmdldD1cbjM0MDY5K2c7MDxnJiYoaC5kZXB0aD1iWzBdLmRlcHRoLGguc3RlbmNpbD1iWzBdLnN0ZW5jaWwsaC5kZXB0aFN0ZW5jaWw9YlswXS5kZXB0aFN0ZW5jaWwpO2lmKGJbZ10pYltnXShoKTtlbHNlIGJbZ109ZmEoaCl9cmV0dXJuIGsoYyx7d2lkdGg6bSxoZWlnaHQ6bSxjb2xvcjphfSl9dmFyIGI9QXJyYXkoNik7YyhhKTtyZXR1cm4gayhjLHtmYWNlczpiLHJlc2l6ZTpmdW5jdGlvbihhKXt2YXIgZz1hfDA7aWYoZz09PWMud2lkdGgpcmV0dXJuIGM7dmFyIGg9Yy5jb2xvcjtmb3IoYT0wO2E8aC5sZW5ndGg7KythKWhbYV0ucmVzaXplKGcpO2ZvcihhPTA7Nj5hOysrYSliW2FdLnJlc2l6ZShnKTtjLndpZHRoPWMuaGVpZ2h0PWc7cmV0dXJuIGN9LF9yZWdsVHlwZTpcImZyYW1lYnVmZmVyQ3ViZVwiLGRlc3Ryb3k6ZnVuY3Rpb24oKXtiLmZvckVhY2goZnVuY3Rpb24oYSl7YS5kZXN0cm95KCl9KX19KX0sY2xlYXI6ZnVuY3Rpb24oKXtsKEQpLmZvckVhY2goSCl9LHJlc3RvcmU6ZnVuY3Rpb24oKXtsKEQpLmZvckVhY2goZnVuY3Rpb24oYSl7YS5mcmFtZWJ1ZmZlcj1cbmMuY3JlYXRlRnJhbWVidWZmZXIoKTtoKGEpfSl9fSl9fSx7XCIuL3V0aWwvZXh0ZW5kXCI6MjIsXCIuL3V0aWwvdmFsdWVzXCI6MzF9XSwxMjpbZnVuY3Rpb24oZixwLHUpe3AuZXhwb3J0cz1mdW5jdGlvbihmLGspe3ZhciB4PTE7ay5leHRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMmJih4PWYuZ2V0UGFyYW1ldGVyKDM0MDQ3KSk7dmFyIHI9MSxjPTE7ay53ZWJnbF9kcmF3X2J1ZmZlcnMmJihyPWYuZ2V0UGFyYW1ldGVyKDM0ODUyKSxjPWYuZ2V0UGFyYW1ldGVyKDM2MDYzKSk7cmV0dXJue2NvbG9yQml0czpbZi5nZXRQYXJhbWV0ZXIoMzQxMCksZi5nZXRQYXJhbWV0ZXIoMzQxMSksZi5nZXRQYXJhbWV0ZXIoMzQxMiksZi5nZXRQYXJhbWV0ZXIoMzQxMyldLGRlcHRoQml0czpmLmdldFBhcmFtZXRlcigzNDE0KSxzdGVuY2lsQml0czpmLmdldFBhcmFtZXRlcigzNDE1KSxzdWJwaXhlbEJpdHM6Zi5nZXRQYXJhbWV0ZXIoMzQwOCksZXh0ZW5zaW9uczpPYmplY3Qua2V5cyhrKS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuISFrW2FdfSksXG5tYXhBbmlzb3Ryb3BpYzp4LG1heERyYXdidWZmZXJzOnIsbWF4Q29sb3JBdHRhY2htZW50czpjLHBvaW50U2l6ZURpbXM6Zi5nZXRQYXJhbWV0ZXIoMzM5MDEpLGxpbmVXaWR0aERpbXM6Zi5nZXRQYXJhbWV0ZXIoMzM5MDIpLG1heFZpZXdwb3J0RGltczpmLmdldFBhcmFtZXRlcigzMzg2KSxtYXhDb21iaW5lZFRleHR1cmVVbml0czpmLmdldFBhcmFtZXRlcigzNTY2MSksbWF4Q3ViZU1hcFNpemU6Zi5nZXRQYXJhbWV0ZXIoMzQwNzYpLG1heFJlbmRlcmJ1ZmZlclNpemU6Zi5nZXRQYXJhbWV0ZXIoMzQwMjQpLG1heFRleHR1cmVVbml0czpmLmdldFBhcmFtZXRlcigzNDkzMCksbWF4VGV4dHVyZVNpemU6Zi5nZXRQYXJhbWV0ZXIoMzM3OSksbWF4QXR0cmlidXRlczpmLmdldFBhcmFtZXRlcigzNDkyMSksbWF4VmVydGV4VW5pZm9ybXM6Zi5nZXRQYXJhbWV0ZXIoMzYzNDcpLG1heFZlcnRleFRleHR1cmVVbml0czpmLmdldFBhcmFtZXRlcigzNTY2MCksbWF4VmFyeWluZ1ZlY3RvcnM6Zi5nZXRQYXJhbWV0ZXIoMzYzNDgpLFxubWF4RnJhZ21lbnRVbmlmb3JtczpmLmdldFBhcmFtZXRlcigzNjM0OSksZ2xzbDpmLmdldFBhcmFtZXRlcigzNTcyNCkscmVuZGVyZXI6Zi5nZXRQYXJhbWV0ZXIoNzkzNyksdmVuZG9yOmYuZ2V0UGFyYW1ldGVyKDc5MzYpLHZlcnNpb246Zi5nZXRQYXJhbWV0ZXIoNzkzOCl9fX0se31dLDEzOltmdW5jdGlvbihmLHAsdSl7dmFyIGw9ZihcIi4vdXRpbC9pcy10eXBlZC1hcnJheVwiKTtwLmV4cG9ydHM9ZnVuY3Rpb24oayxmLHIsYyxhLGIpe3JldHVybiBmdW5jdGlvbihhKXt2YXIgYjtiPW51bGw9PT1mLm5leHQ/NTEyMTpmLm5leHQuY29sb3JBdHRhY2htZW50c1swXS50ZXh0dXJlLl90ZXh0dXJlLnR5cGU7dmFyIHQ9MCx5PTAsZz1jLmZyYW1lYnVmZmVyV2lkdGgscD1jLmZyYW1lYnVmZmVySGVpZ2h0LEM9bnVsbDtsKGEpP0M9YTphJiYodD1hLnh8MCx5PWEueXwwLGc9KGEud2lkdGh8fGMuZnJhbWVidWZmZXJXaWR0aC10KXwwLHA9KGEuaGVpZ2h0fHxjLmZyYW1lYnVmZmVySGVpZ2h0LVxueSl8MCxDPWEuZGF0YXx8bnVsbCk7cigpO2E9ZypwKjQ7Q3x8KDUxMjE9PT1iP0M9bmV3IFVpbnQ4QXJyYXkoYSk6NTEyNj09PWImJihDPUN8fG5ldyBGbG9hdDMyQXJyYXkoYSkpKTtrLnBpeGVsU3RvcmVpKDMzMzMsNCk7ay5yZWFkUGl4ZWxzKHQseSxnLHAsNjQwOCxiLEMpO3JldHVybiBDfX19LHtcIi4vdXRpbC9pcy10eXBlZC1hcnJheVwiOjI2fV0sMTQ6W2Z1bmN0aW9uKGYscCx1KXt2YXIgbD1mKFwiLi91dGlsL3ZhbHVlc1wiKSxrPVtdO2tbMzI4NTRdPTI7a1szMjg1NV09MjtrWzM2MTk0XT0yO2tbMzMxODldPTI7a1szNjE2OF09MTtrWzM0MDQxXT00O2tbMzU5MDddPTQ7a1szNDgzNl09MTY7a1szNDg0Ml09ODtrWzM0ODQzXT02O3AuZXhwb3J0cz1mdW5jdGlvbihmLHIsYyxhLGIpe2Z1bmN0aW9uIHAoYSl7dGhpcy5pZD1nKys7dGhpcy5yZWZDb3VudD0xO3RoaXMucmVuZGVyYnVmZmVyPWE7dGhpcy5mb3JtYXQ9MzI4NTQ7dGhpcy5oZWlnaHQ9dGhpcy53aWR0aD0wO2IucHJvZmlsZSYmXG4odGhpcy5zdGF0cz17c2l6ZTowfSl9ZnVuY3Rpb24gTShiKXt2YXIgYz1iLnJlbmRlcmJ1ZmZlcjtmLmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsbnVsbCk7Zi5kZWxldGVSZW5kZXJidWZmZXIoYyk7Yi5yZW5kZXJidWZmZXI9bnVsbDtiLnJlZkNvdW50PTA7ZGVsZXRlIEVbYi5pZF07YS5yZW5kZXJidWZmZXJDb3VudC0tfXZhciB0PXtyZ2JhNDozMjg1NCxyZ2I1NjU6MzYxOTQsXCJyZ2I1IGExXCI6MzI4NTUsZGVwdGg6MzMxODksc3RlbmNpbDozNjE2OCxcImRlcHRoIHN0ZW5jaWxcIjozNDA0MX07ci5leHRfc3JnYiYmKHQuc3JnYmE9MzU5MDcpO3IuZXh0X2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0JiYodC5yZ2JhMTZmPTM0ODQyLHQucmdiMTZmPTM0ODQzKTtyLndlYmdsX2NvbG9yX2J1ZmZlcl9mbG9hdCYmKHQucmdiYTMyZj0zNDgzNik7dmFyIHk9W107T2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihhKXt5W3RbYV1dPWF9KTt2YXIgZz0wLEU9e307cC5wcm90b3R5cGUuZGVjUmVmPVxuZnVuY3Rpb24oKXswPj0tLXRoaXMucmVmQ291bnQmJk0odGhpcyl9O2IucHJvZmlsZSYmKGEuZ2V0VG90YWxSZW5kZXJidWZmZXJTaXplPWZ1bmN0aW9uKCl7dmFyIGE9MDtPYmplY3Qua2V5cyhFKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2ErPUVbYl0uc3RhdHMuc2l6ZX0pO3JldHVybiBhfSk7cmV0dXJue2NyZWF0ZTpmdW5jdGlvbihjLGcpe2Z1bmN0aW9uIG4oYSxjKXt2YXIgZz0wLGw9MCxoPTMyODU0O1wib2JqZWN0XCI9PT10eXBlb2YgYSYmYT8oXCJzaGFwZVwiaW4gYT8obD1hLnNoYXBlLGc9bFswXXwwLGw9bFsxXXwwKTooXCJyYWRpdXNcImluIGEmJihnPWw9YS5yYWRpdXN8MCksXCJ3aWR0aFwiaW4gYSYmKGc9YS53aWR0aHwwKSxcImhlaWdodFwiaW4gYSYmKGw9YS5oZWlnaHR8MCkpLFwiZm9ybWF0XCJpbiBhJiYoaD10W2EuZm9ybWF0XSkpOlwibnVtYmVyXCI9PT10eXBlb2YgYT8oZz1hfDAsbD1cIm51bWJlclwiPT09dHlwZW9mIGM/Y3wwOmcpOmF8fChnPWw9MSk7aWYoZyE9PW0ud2lkdGh8fGwhPT1cbm0uaGVpZ2h0fHxoIT09bS5mb3JtYXQpcmV0dXJuIG4ud2lkdGg9bS53aWR0aD1nLG4uaGVpZ2h0PW0uaGVpZ2h0PWwsbS5mb3JtYXQ9aCxmLmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsbS5yZW5kZXJidWZmZXIpLGYucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSxoLGcsbCksYi5wcm9maWxlJiYobS5zdGF0cy5zaXplPWtbbS5mb3JtYXRdKm0ud2lkdGgqbS5oZWlnaHQpLG4uZm9ybWF0PXlbbS5mb3JtYXRdLG59dmFyIG09bmV3IHAoZi5jcmVhdGVSZW5kZXJidWZmZXIoKSk7RVttLmlkXT1tO2EucmVuZGVyYnVmZmVyQ291bnQrKztuKGMsZyk7bi5yZXNpemU9ZnVuY3Rpb24oYSxjKXt2YXIgZz1hfDAsbD1jfDB8fGc7aWYoZz09PW0ud2lkdGgmJmw9PT1tLmhlaWdodClyZXR1cm4gbjtuLndpZHRoPW0ud2lkdGg9ZztuLmhlaWdodD1tLmhlaWdodD1sO2YuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxtLnJlbmRlcmJ1ZmZlcik7Zi5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLG0uZm9ybWF0LFxuZyxsKTtiLnByb2ZpbGUmJihtLnN0YXRzLnNpemU9a1ttLmZvcm1hdF0qbS53aWR0aCptLmhlaWdodCk7cmV0dXJuIG59O24uX3JlZ2xUeXBlPVwicmVuZGVyYnVmZmVyXCI7bi5fcmVuZGVyYnVmZmVyPW07Yi5wcm9maWxlJiYobi5zdGF0cz1tLnN0YXRzKTtuLmRlc3Ryb3k9ZnVuY3Rpb24oKXttLmRlY1JlZigpfTtyZXR1cm4gbn0sY2xlYXI6ZnVuY3Rpb24oKXtsKEUpLmZvckVhY2goTSl9LHJlc3RvcmU6ZnVuY3Rpb24oKXtsKEUpLmZvckVhY2goZnVuY3Rpb24oYSl7YS5yZW5kZXJidWZmZXI9Zi5jcmVhdGVSZW5kZXJidWZmZXIoKTtmLmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsYS5yZW5kZXJidWZmZXIpO2YucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSxhLmZvcm1hdCxhLndpZHRoLGEuaGVpZ2h0KX0pO2YuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxudWxsKX19fX0se1wiLi91dGlsL3ZhbHVlc1wiOjMxfV0sMTU6W2Z1bmN0aW9uKGYscCx1KXt2YXIgbD1mKFwiLi91dGlsL3ZhbHVlc1wiKTtcbnAuZXhwb3J0cz1mdW5jdGlvbihmLHgscixjKXtmdW5jdGlvbiBhKGEsYyxiLGcpe3RoaXMubmFtZT1hO3RoaXMuaWQ9Yzt0aGlzLmxvY2F0aW9uPWI7dGhpcy5pbmZvPWd9ZnVuY3Rpb24gYihhLGMpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKWlmKGFbYl0uaWQ9PT1jLmlkKXthW2JdLmxvY2F0aW9uPWMubG9jYXRpb247cmV0dXJufWEucHVzaChjKX1mdW5jdGlvbiBwKGEsYyxiKXtiPTM1NjMyPT09YT95Omc7dmFyIGw9YltjXTtpZighbCl7dmFyIHI9eC5zdHIoYyksbD1mLmNyZWF0ZVNoYWRlcihhKTtmLnNoYWRlclNvdXJjZShsLHIpO2YuY29tcGlsZVNoYWRlcihsKTtiW2NdPWx9cmV0dXJuIGx9ZnVuY3Rpb24gTShhLGIpe3RoaXMuaWQ9dSsrO3RoaXMuZnJhZ0lkPWE7dGhpcy52ZXJ0SWQ9Yjt0aGlzLnByb2dyYW09bnVsbDt0aGlzLnVuaWZvcm1zPVtdO3RoaXMuYXR0cmlidXRlcz1bXTtjLnByb2ZpbGUmJih0aGlzLnN0YXRzPXt1bmlmb3Jtc0NvdW50OjAsYXR0cmlidXRlc0NvdW50OjB9KX1cbmZ1bmN0aW9uIHQoZyxtKXt2YXIgbCxyO2w9cCgzNTYzMixnLmZyYWdJZCk7cj1wKDM1NjMzLGcudmVydElkKTt2YXIgdD1nLnByb2dyYW09Zi5jcmVhdGVQcm9ncmFtKCk7Zi5hdHRhY2hTaGFkZXIodCxsKTtmLmF0dGFjaFNoYWRlcih0LHIpO2YubGlua1Byb2dyYW0odCk7dmFyIHk9Zi5nZXRQcm9ncmFtUGFyYW1ldGVyKHQsMzU3MTgpO2MucHJvZmlsZSYmKGcuc3RhdHMudW5pZm9ybXNDb3VudD15KTt2YXIgaD1nLnVuaWZvcm1zO2ZvcihsPTA7bDx5OysrbClpZihyPWYuZ2V0QWN0aXZlVW5pZm9ybSh0LGwpKWlmKDE8ci5zaXplKWZvcih2YXIgQz0wO0M8ci5zaXplOysrQyl7dmFyIEU9ci5uYW1lLnJlcGxhY2UoXCJbMF1cIixcIltcIitDK1wiXVwiKTtiKGgsbmV3IGEoRSx4LmlkKEUpLGYuZ2V0VW5pZm9ybUxvY2F0aW9uKHQsRSkscikpfWVsc2UgYihoLG5ldyBhKHIubmFtZSx4LmlkKHIubmFtZSksZi5nZXRVbmlmb3JtTG9jYXRpb24odCxyLm5hbWUpLHIpKTt5PWYuZ2V0UHJvZ3JhbVBhcmFtZXRlcih0LFxuMzU3MjEpO2MucHJvZmlsZSYmKGcuc3RhdHMuYXR0cmlidXRlc0NvdW50PXkpO2g9Zy5hdHRyaWJ1dGVzO2ZvcihsPTA7bDx5OysrbCkocj1mLmdldEFjdGl2ZUF0dHJpYih0LGwpKSYmYihoLG5ldyBhKHIubmFtZSx4LmlkKHIubmFtZSksZi5nZXRBdHRyaWJMb2NhdGlvbih0LHIubmFtZSkscikpfXZhciB5PXt9LGc9e30sRT17fSxDPVtdLHU9MDtjLnByb2ZpbGUmJihyLmdldE1heFVuaWZvcm1zQ291bnQ9ZnVuY3Rpb24oKXt2YXIgYT0wO0MuZm9yRWFjaChmdW5jdGlvbihiKXtiLnN0YXRzLnVuaWZvcm1zQ291bnQ+YSYmKGE9Yi5zdGF0cy51bmlmb3Jtc0NvdW50KX0pO3JldHVybiBhfSxyLmdldE1heEF0dHJpYnV0ZXNDb3VudD1mdW5jdGlvbigpe3ZhciBhPTA7Qy5mb3JFYWNoKGZ1bmN0aW9uKGIpe2Iuc3RhdHMuYXR0cmlidXRlc0NvdW50PmEmJihhPWIuc3RhdHMuYXR0cmlidXRlc0NvdW50KX0pO3JldHVybiBhfSk7cmV0dXJue2NsZWFyOmZ1bmN0aW9uKCl7dmFyIGE9Zi5kZWxldGVTaGFkZXIuYmluZChmKTtcbmwoeSkuZm9yRWFjaChhKTt5PXt9O2woZykuZm9yRWFjaChhKTtnPXt9O0MuZm9yRWFjaChmdW5jdGlvbihhKXtmLmRlbGV0ZVByb2dyYW0oYS5wcm9ncmFtKX0pO0MubGVuZ3RoPTA7RT17fTtyLnNoYWRlckNvdW50PTB9LHByb2dyYW06ZnVuY3Rpb24oYSxiLGMpe3Iuc2hhZGVyQ291bnQrKzt2YXIgZz1FW2JdO2d8fChnPUVbYl09e30pO3ZhciBmPWdbYV07Znx8KGY9bmV3IE0oYixhKSx0KGYsYyksZ1thXT1mLEMucHVzaChmKSk7cmV0dXJuIGZ9LHJlc3RvcmU6ZnVuY3Rpb24oKXt5PXt9O2c9e307Zm9yKHZhciBhPTA7YTxDLmxlbmd0aDsrK2EpdChDW2FdKX0sc2hhZGVyOnAsZnJhZzotMSx2ZXJ0Oi0xfX19LHtcIi4vdXRpbC92YWx1ZXNcIjozMX1dLDE2OltmdW5jdGlvbihmLHAsdSl7cC5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJue2J1ZmZlckNvdW50OjAsZWxlbWVudHNDb3VudDowLGZyYW1lYnVmZmVyQ291bnQ6MCxzaGFkZXJDb3VudDowLHRleHR1cmVDb3VudDowLGN1YmVDb3VudDowLFxucmVuZGVyYnVmZmVyQ291bnQ6MCxtYXhUZXh0dXJlVW5pdHM6MH19fSx7fV0sMTc6W2Z1bmN0aW9uKGYscCx1KXtwLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgZj17XCJcIjowfSxrPVtcIlwiXTtyZXR1cm57aWQ6ZnVuY3Rpb24oeCl7dmFyIHI9Zlt4XTtpZihyKXJldHVybiByO3I9Zlt4XT1rLmxlbmd0aDtrLnB1c2goeCk7cmV0dXJuIHJ9LHN0cjpmdW5jdGlvbihmKXtyZXR1cm4ga1tmXX19fX0se31dLDE4OltmdW5jdGlvbihmLHAsdSl7ZnVuY3Rpb24gbChhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKSYmKDA9PT1hLmxlbmd0aHx8XCJudW1iZXJcIj09PXR5cGVvZiBhWzBdKX1mdW5jdGlvbiBrKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpJiYwIT09YS5sZW5ndGgmJkUoYVswXSk/ITA6ITF9ZnVuY3Rpb24geChhKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpfWZ1bmN0aW9uIHIoYSl7aWYoIWEpcmV0dXJuITE7dmFyIGI9eChhKTtyZXR1cm4gMDw9WS5pbmRleE9mKGIpP1xuITA6bChhKXx8ayhhKXx8dChhKX1mdW5jdGlvbiBjKGEsYil7MzYxOTM9PT1hLnR5cGU/KGEuZGF0YT1nKGIpLHkuZnJlZVR5cGUoYikpOmEuZGF0YT1ifWZ1bmN0aW9uIGEoYSxiLGMsZyxmLGspe2E9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBIW2FdP0hbYV06QlthXSpMW2JdO2smJihhKj02KTtpZihmKXtmb3IoZz0wOzE8PWM7KWcrPWEqYypjLGMvPTI7cmV0dXJuIGd9cmV0dXJuIGEqYypnfXZhciBiPWYoXCIuL3V0aWwvZXh0ZW5kXCIpLEY9ZihcIi4vdXRpbC92YWx1ZXNcIiksTT1mKFwiLi91dGlsL2lzLXR5cGVkLWFycmF5XCIpLHQ9ZihcIi4vdXRpbC9pcy1uZGFycmF5XCIpLHk9ZihcIi4vdXRpbC9wb29sXCIpLGc9ZihcIi4vdXRpbC90by1oYWxmLWZsb2F0XCIpLEU9ZihcIi4vdXRpbC9pcy1hcnJheS1saWtlXCIpLEM9ZihcIi4vdXRpbC9mbGF0dGVuXCIpO3U9ZihcIi4vY29uc3RhbnRzL2FycmF5dHlwZXMuanNvblwiKTt2YXIgTj1mKFwiLi9jb25zdGFudHMvYXJyYXl0eXBlcy5qc29uXCIpLG49Wzk5ODQsOTk4Nixcbjk5ODUsOTk4N10sbT1bMCw2NDA5LDY0MTAsNjQwNyw2NDA4XSxCPXt9O0JbNjQwOV09Qls2NDA2XT1CWzY0MDJdPTE7QlszNDA0MV09Qls2NDEwXT0yO0JbNjQwN109QlszNTkwNF09MztCWzY0MDhdPUJbMzU5MDZdPTQ7dmFyIFk9T2JqZWN0LmtleXModSkuY29uY2F0KFtcIltvYmplY3QgSFRNTENhbnZhc0VsZW1lbnRdXCIsXCJbb2JqZWN0IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRF1cIixcIltvYmplY3QgSFRNTEltYWdlRWxlbWVudF1cIixcIltvYmplY3QgSFRNTFZpZGVvRWxlbWVudF1cIl0pLEw9W107TFs1MTIxXT0xO0xbNTEyNl09NDtMWzM2MTkzXT0yO0xbNTEyM109MjtMWzUxMjVdPTQ7dmFyIEg9W107SFszMjg1NF09MjtIWzMyODU1XT0yO0hbMzYxOTRdPTI7SFszNDA0MV09NDtIWzMzNzc2XT0uNTtIWzMzNzc3XT0uNTtIWzMzNzc4XT0xO0hbMzM3NzldPTE7SFszNTk4Nl09LjU7SFszNTk4N109MTtIWzM0Nzk4XT0xO0hbMzU4NDBdPS41O0hbMzU4NDFdPS4yNTtIWzM1ODQyXT0uNTtcbkhbMzU4NDNdPS4yNTtIWzM2MTk2XT0uNTtwLmV4cG9ydHM9ZnVuY3Rpb24oaCxmLHAsdSxILEwsWil7ZnVuY3Rpb24gRCgpe3RoaXMuZm9ybWF0PXRoaXMuaW50ZXJuYWxmb3JtYXQ9NjQwODt0aGlzLnR5cGU9NTEyMTt0aGlzLmZsaXBZPXRoaXMucHJlbXVsdGlwbHlBbHBoYT10aGlzLmNvbXByZXNzZWQ9ITE7dGhpcy51bnBhY2tBbGlnbm1lbnQ9MTt0aGlzLmNoYW5uZWxzPXRoaXMuaGVpZ2h0PXRoaXMud2lkdGg9dGhpcy5jb2xvclNwYWNlPTB9ZnVuY3Rpb24gSyhhLGIpe2EuaW50ZXJuYWxmb3JtYXQ9Yi5pbnRlcm5hbGZvcm1hdDthLmZvcm1hdD1iLmZvcm1hdDthLnR5cGU9Yi50eXBlO2EuY29tcHJlc3NlZD1iLmNvbXByZXNzZWQ7YS5wcmVtdWx0aXBseUFscGhhPWIucHJlbXVsdGlwbHlBbHBoYTthLmZsaXBZPWIuZmxpcFk7YS51bnBhY2tBbGlnbm1lbnQ9Yi51bnBhY2tBbGlnbm1lbnQ7YS5jb2xvclNwYWNlPWIuY29sb3JTcGFjZTthLndpZHRoPWIud2lkdGg7YS5oZWlnaHQ9XG5iLmhlaWdodDthLmNoYW5uZWxzPWIuY2hhbm5lbHN9ZnVuY3Rpb24gWShhLGIpe2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYiYmYil7XCJwcmVtdWx0aXBseUFscGhhXCJpbiBiJiYoYS5wcmVtdWx0aXBseUFscGhhPWIucHJlbXVsdGlwbHlBbHBoYSk7XCJmbGlwWVwiaW4gYiYmKGEuZmxpcFk9Yi5mbGlwWSk7XCJhbGlnbm1lbnRcImluIGImJihhLnVucGFja0FsaWdubWVudD1iLmFsaWdubWVudCk7XCJjb2xvclNwYWNlXCJpbiBiJiYoYS5jb2xvclNwYWNlPXBhW2IuY29sb3JTcGFjZV0pO1widHlwZVwiaW4gYiYmKGEudHlwZT1WW2IudHlwZV0pO3ZhciBjPWEud2lkdGgsZz1hLmhlaWdodCxoPWEuY2hhbm5lbHMsZj0hMTtcInNoYXBlXCJpbiBiPyhjPWIuc2hhcGVbMF0sZz1iLnNoYXBlWzFdLDM9PT1iLnNoYXBlLmxlbmd0aCYmKGg9Yi5zaGFwZVsyXSxmPSEwKSk6KFwicmFkaXVzXCJpbiBiJiYoYz1nPWIucmFkaXVzKSxcIndpZHRoXCJpbiBiJiYoYz1iLndpZHRoKSxcImhlaWdodFwiaW4gYiYmKGc9Yi5oZWlnaHQpLFxuXCJjaGFubmVsc1wiaW4gYiYmKGg9Yi5jaGFubmVscyxmPSEwKSk7YS53aWR0aD1jfDA7YS5oZWlnaHQ9Z3wwO2EuY2hhbm5lbHM9aHwwO2M9ITE7XCJmb3JtYXRcImluIGImJihjPWIuZm9ybWF0LGc9YS5pbnRlcm5hbGZvcm1hdD1YW2NdLGEuZm9ybWF0PVBhW2ddLGMgaW4gViYmIShcInR5cGVcImluIGIpJiYoYS50eXBlPVZbY10pLGMgaW4gVCYmKGEuY29tcHJlc3NlZD0hMCksYz0hMCk7IWYmJmM/YS5jaGFubmVscz1CW2EuZm9ybWF0XTpmJiYhYyYmYS5jaGFubmVscyE9PW1bYS5mb3JtYXRdJiYoYS5mb3JtYXQ9YS5pbnRlcm5hbGZvcm1hdD1tW2EuY2hhbm5lbHNdKX19ZnVuY3Rpb24gdmEoYSl7aC5waXhlbFN0b3JlaSgzNzQ0MCxhLmZsaXBZKTtoLnBpeGVsU3RvcmVpKDM3NDQxLGEucHJlbXVsdGlwbHlBbHBoYSk7aC5waXhlbFN0b3JlaSgzNzQ0MyxhLmNvbG9yU3BhY2UpO2gucGl4ZWxTdG9yZWkoMzMxNyxhLnVucGFja0FsaWdubWVudCl9ZnVuY3Rpb24gcSgpe0QuY2FsbCh0aGlzKTtcbnRoaXMueU9mZnNldD10aGlzLnhPZmZzZXQ9MDt0aGlzLmRhdGE9bnVsbDt0aGlzLm5lZWRzRnJlZT0hMTt0aGlzLmVsZW1lbnQ9bnVsbDt0aGlzLm5lZWRzQ29weT0hMX1mdW5jdGlvbiBTKGEsYil7dmFyIGg9bnVsbDtyKGIpP2g9YjpiJiYoWShhLGIpLFwieFwiaW4gYiYmKGEueE9mZnNldD1iLnh8MCksXCJ5XCJpbiBiJiYoYS55T2Zmc2V0PWIueXwwKSxyKGIuZGF0YSkmJihoPWIuZGF0YSkpO2lmKGIuY29weSl7dmFyIGY9SC52aWV3cG9ydFdpZHRoLG49SC52aWV3cG9ydEhlaWdodDthLndpZHRoPWEud2lkdGh8fGYtYS54T2Zmc2V0O2EuaGVpZ2h0PWEuaGVpZ2h0fHxuLWEueU9mZnNldDthLm5lZWRzQ29weT0hMH1lbHNlIGlmKCFoKWEud2lkdGg9YS53aWR0aHx8MSxhLmhlaWdodD1hLmhlaWdodHx8MSxhLmNoYW5uZWxzPWEuY2hhbm5lbHN8fDQ7ZWxzZSBpZihNKGgpKWEuY2hhbm5lbHM9YS5jaGFubmVsc3x8NCxhLmRhdGE9aCxcInR5cGVcImluIGJ8fDUxMjEhPT1hLnR5cGV8fChhLnR5cGU9XG5OW09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChoKV18MCk7ZWxzZSBpZihsKGgpKXthLmNoYW5uZWxzPWEuY2hhbm5lbHN8fDQ7Zj1oO249Zi5sZW5ndGg7c3dpdGNoKGEudHlwZSl7Y2FzZSA1MTIxOmNhc2UgNTEyMzpjYXNlIDUxMjU6Y2FzZSA1MTI2Om49eS5hbGxvY1R5cGUoYS50eXBlLG4pO24uc2V0KGYpO2EuZGF0YT1uO2JyZWFrO2Nhc2UgMzYxOTM6YS5kYXRhPWcoZil9YS5hbGlnbm1lbnQ9MTthLm5lZWRzRnJlZT0hMH1lbHNlIGlmKHQoaCkpe2Y9aC5kYXRhO0FycmF5LmlzQXJyYXkoZil8fDUxMjEhPT1hLnR5cGV8fChhLnR5cGU9TltPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZildfDApO3ZhciBuPWguc2hhcGUscT1oLnN0cmlkZSxwLEYsZCx2OzM9PT1uLmxlbmd0aD8oZD1uWzJdLHY9cVsyXSk6dj1kPTE7cD1uWzBdO0Y9blsxXTtuPXFbMF07cT1xWzFdO2EuYWxpZ25tZW50PTE7YS53aWR0aD1wO2EuaGVpZ2h0PUY7YS5jaGFubmVscz1kO2EuZm9ybWF0PVxuYS5pbnRlcm5hbGZvcm1hdD1tW2RdO2EubmVlZHNGcmVlPSEwO3A9djtoPWgub2Zmc2V0O2Q9YS53aWR0aDt2PWEuaGVpZ2h0O0Y9YS5jaGFubmVscztmb3IodmFyIHU9eS5hbGxvY1R5cGUoMzYxOTM9PT1hLnR5cGU/NTEyNjphLnR5cGUsZCp2KkYpLEI9MCxBPTA7QTx2OysrQSlmb3IodmFyIEQ9MDtEPGQ7KytEKWZvcih2YXIgdWE9MDt1YTxGOysrdWEpdVtCKytdPWZbbipEK3EqQStwKnVhK2hdO2MoYSx1KX1lbHNlIGlmKFwiW29iamVjdCBIVE1MQ2FudmFzRWxlbWVudF1cIj09PXgoaCl8fFwiW29iamVjdCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRdXCI9PT14KGgpKVwiW29iamVjdCBIVE1MQ2FudmFzRWxlbWVudF1cIj09PXgoaCk/YS5lbGVtZW50PWg6YS5lbGVtZW50PWguY2FudmFzLGEud2lkdGg9YS5lbGVtZW50LndpZHRoLGEuaGVpZ2h0PWEuZWxlbWVudC5oZWlnaHQsYS5jaGFubmVscz00O2Vsc2UgaWYoXCJbb2JqZWN0IEhUTUxJbWFnZUVsZW1lbnRdXCI9PT14KGgpKWEuZWxlbWVudD1cbmgsYS53aWR0aD1oLm5hdHVyYWxXaWR0aCxhLmhlaWdodD1oLm5hdHVyYWxIZWlnaHQsYS5jaGFubmVscz00O2Vsc2UgaWYoXCJbb2JqZWN0IEhUTUxWaWRlb0VsZW1lbnRdXCI9PT14KGgpKWEuZWxlbWVudD1oLGEud2lkdGg9aC52aWRlb1dpZHRoLGEuaGVpZ2h0PWgudmlkZW9IZWlnaHQsYS5jaGFubmVscz00O2Vsc2UgaWYoayhoKSl7Zj1hLndpZHRofHxoWzBdLmxlbmd0aDtuPWEuaGVpZ2h0fHxoLmxlbmd0aDtxPWEuY2hhbm5lbHM7cT1FKGhbMF1bMF0pP3F8fGhbMF1bMF0ubGVuZ3RoOnF8fDE7cD1DLnNoYXBlKGgpO2Q9MTtmb3Iodj0wO3Y8cC5sZW5ndGg7Kyt2KWQqPXBbdl07ZD15LmFsbG9jVHlwZSgzNjE5Mz09PWEudHlwZT81MTI2OmEudHlwZSxkKTtDLmZsYXR0ZW4oaCxwLFwiXCIsZCk7YyhhLGQpO2EuYWxpZ25tZW50PTE7YS53aWR0aD1mO2EuaGVpZ2h0PW47YS5jaGFubmVscz1xO2EuZm9ybWF0PWEuaW50ZXJuYWxmb3JtYXQ9bVtxXTthLm5lZWRzRnJlZT0hMH19ZnVuY3Rpb24gbWEoYSxcbmIsYyxnLGYpe3ZhciBrPWEuZWxlbWVudCxsPWEuZGF0YSxtPWEuaW50ZXJuYWxmb3JtYXQsZD1hLmZvcm1hdCxyPWEudHlwZSxuPWEud2lkdGgscT1hLmhlaWdodDt2YShhKTtrP2gudGV4U3ViSW1hZ2UyRChiLGYsYyxnLGQscixrKTphLmNvbXByZXNzZWQ/aC5jb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChiLGYsYyxnLG0sbixxLGwpOmEubmVlZHNDb3B5Pyh1KCksaC5jb3B5VGV4U3ViSW1hZ2UyRChiLGYsYyxnLGEueE9mZnNldCxhLnlPZmZzZXQsbixxKSk6aC50ZXhTdWJJbWFnZTJEKGIsZixjLGcsbixxLGQscixsKX1mdW5jdGlvbiBnYSgpe3JldHVybiBOYS5wb3AoKXx8bmV3IHF9ZnVuY3Rpb24gVyhhKXthLm5lZWRzRnJlZSYmeS5mcmVlVHlwZShhLmRhdGEpO3EuY2FsbChhKTtOYS5wdXNoKGEpfWZ1bmN0aW9uIFIoKXtELmNhbGwodGhpcyk7dGhpcy5nZW5NaXBtYXBzPSExO3RoaXMubWlwbWFwSGludD00MzUyO3RoaXMubWlwbWFzaz0wO3RoaXMuaW1hZ2VzPUFycmF5KDE2KX1cbmZ1bmN0aW9uIEcoYSxiLGMpe3ZhciBnPWEuaW1hZ2VzWzBdPWdhKCk7YS5taXBtYXNrPTE7Zy53aWR0aD1hLndpZHRoPWI7Zy5oZWlnaHQ9YS5oZWlnaHQ9YztnLmNoYW5uZWxzPWEuY2hhbm5lbHM9NH1mdW5jdGlvbiBiYShhLGIpe3ZhciBjPW51bGw7aWYocihiKSljPWEuaW1hZ2VzWzBdPWdhKCksSyhjLGEpLFMoYyxiKSxhLm1pcG1hc2s9MTtlbHNlIGlmKFkoYSxiKSxBcnJheS5pc0FycmF5KGIubWlwbWFwKSlmb3IodmFyIGc9Yi5taXBtYXAsaD0wO2g8Zy5sZW5ndGg7KytoKWM9YS5pbWFnZXNbaF09Z2EoKSxLKGMsYSksYy53aWR0aD4+PWgsYy5oZWlnaHQ+Pj1oLFMoYyxnW2hdKSxhLm1pcG1hc2t8PTE8PGg7ZWxzZSBjPWEuaW1hZ2VzWzBdPWdhKCksSyhjLGEpLFMoYyxiKSxhLm1pcG1hc2s9MTtLKGEsYS5pbWFnZXNbMF0pfWZ1bmN0aW9uIG5hKGEsYil7Zm9yKHZhciBjPWEuaW1hZ2VzLGc9MDtnPGMubGVuZ3RoJiZjW2ddOysrZyl7dmFyIGY9Y1tnXSxrPWIsbD1nLG09Zi5lbGVtZW50LFxuZD1mLmRhdGEscj1mLmludGVybmFsZm9ybWF0LG49Zi5mb3JtYXQscT1mLnR5cGUsdD1mLndpZHRoLHk9Zi5oZWlnaHQ7dmEoZik7bT9oLnRleEltYWdlMkQoayxsLG4sbixxLG0pOmYuY29tcHJlc3NlZD9oLmNvbXByZXNzZWRUZXhJbWFnZTJEKGssbCxyLHQseSwwLGQpOmYubmVlZHNDb3B5Pyh1KCksaC5jb3B5VGV4SW1hZ2UyRChrLGwsbixmLnhPZmZzZXQsZi55T2Zmc2V0LHQseSwwKSk6aC50ZXhJbWFnZTJEKGssbCxuLHQseSwwLG4scSxkKX19ZnVuY3Rpb24geWEoKXt2YXIgYT1KYS5wb3AoKXx8bmV3IFI7RC5jYWxsKGEpO2Zvcih2YXIgYj1hLm1pcG1hc2s9MDsxNj5iOysrYilhLmltYWdlc1tiXT1udWxsO3JldHVybiBhfWZ1bmN0aW9uIFUoYSl7Zm9yKHZhciBiPWEuaW1hZ2VzLGM9MDtjPGIubGVuZ3RoOysrYyliW2NdJiZXKGJbY10pLGJbY109bnVsbDtKYS5wdXNoKGEpfWZ1bmN0aW9uIGlhKCl7dGhpcy5tYWdGaWx0ZXI9dGhpcy5taW5GaWx0ZXI9OTcyODt0aGlzLndyYXBUPVxudGhpcy53cmFwUz0zMzA3MTt0aGlzLmFuaXNvdHJvcGljPTE7dGhpcy5nZW5NaXBtYXBzPSExO3RoaXMubWlwbWFwSGludD00MzUyfWZ1bmN0aW9uIGthKGEsYil7XCJtaW5cImluIGImJihhLm1pbkZpbHRlcj1RW2IubWluXSwwPD1uLmluZGV4T2YoYS5taW5GaWx0ZXIpJiYoYS5nZW5NaXBtYXBzPSEwKSk7XCJtYWdcImluIGImJihhLm1hZ0ZpbHRlcj1oYVtiLm1hZ10pO3ZhciBjPWEud3JhcFMsZz1hLndyYXBUO2lmKFwid3JhcFwiaW4gYil7dmFyIGg9Yi53cmFwO1wic3RyaW5nXCI9PT10eXBlb2YgaD9jPWc9T1toXTpBcnJheS5pc0FycmF5KGgpJiYoYz1PW2hbMF1dLGc9T1toWzFdXSl9ZWxzZVwid3JhcFNcImluIGImJihjPU9bYi53cmFwU10pLFwid3JhcFRcImluIGImJihnPU9bYi53cmFwVF0pO2Eud3JhcFM9YzthLndyYXBUPWc7XCJhbmlzb3Ryb3BpY1wiaW4gYiYmKGEuYW5pc290cm9waWM9Yi5hbmlzb3Ryb3BpYyk7aWYoXCJtaXBtYXBcImluIGIpe2M9ITE7c3dpdGNoKHR5cGVvZiBiLm1pcG1hcCl7Y2FzZSBcInN0cmluZ1wiOmEubWlwbWFwSGludD1cbmVhW2IubWlwbWFwXTtjPWEuZ2VuTWlwbWFwcz0hMDticmVhaztjYXNlIFwiYm9vbGVhblwiOmM9YS5nZW5NaXBtYXBzPWIubWlwbWFwO2JyZWFrO2Nhc2UgXCJvYmplY3RcIjphLmdlbk1pcG1hcHM9ITEsYz0hMH0hY3x8XCJtaW5cImluIGJ8fChhLm1pbkZpbHRlcj05OTg0KX19ZnVuY3Rpb24gcmEoYSxiKXtoLnRleFBhcmFtZXRlcmkoYiwxMDI0MSxhLm1pbkZpbHRlcik7aC50ZXhQYXJhbWV0ZXJpKGIsMTAyNDAsYS5tYWdGaWx0ZXIpO2gudGV4UGFyYW1ldGVyaShiLDEwMjQyLGEud3JhcFMpO2gudGV4UGFyYW1ldGVyaShiLDEwMjQzLGEud3JhcFQpO2YuZXh0X3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljJiZoLnRleFBhcmFtZXRlcmkoYiwzNDA0NixhLmFuaXNvdHJvcGljKTthLmdlbk1pcG1hcHMmJihoLmhpbnQoMzMxNzAsYS5taXBtYXBIaW50KSxoLmdlbmVyYXRlTWlwbWFwKGIpKX1mdW5jdGlvbiBzYShhKXtELmNhbGwodGhpcyk7dGhpcy5taXBtYXNrPTA7dGhpcy5pbnRlcm5hbGZvcm1hdD1cbjY0MDg7dGhpcy5pZD1CYSsrO3RoaXMucmVmQ291bnQ9MTt0aGlzLnRhcmdldD1hO3RoaXMudGV4dHVyZT1oLmNyZWF0ZVRleHR1cmUoKTt0aGlzLnVuaXQ9LTE7dGhpcy5iaW5kQ291bnQ9MDt0aGlzLnRleEluZm89bmV3IGlhO1oucHJvZmlsZSYmKHRoaXMuc3RhdHM9e3NpemU6MH0pfWZ1bmN0aW9uIGRhKGEpe2guYWN0aXZlVGV4dHVyZSgzMzk4NCk7aC5iaW5kVGV4dHVyZShhLnRhcmdldCxhLnRleHR1cmUpfWZ1bmN0aW9uIGphKCl7dmFyIGE9b2FbMF07YT9oLmJpbmRUZXh0dXJlKGEudGFyZ2V0LGEudGV4dHVyZSk6aC5iaW5kVGV4dHVyZSgzNTUzLG51bGwpfWZ1bmN0aW9uIGxhKGEpe3ZhciBiPWEudGV4dHVyZSxjPWEudW5pdCxnPWEudGFyZ2V0OzA8PWMmJihoLmFjdGl2ZVRleHR1cmUoMzM5ODQrYyksaC5iaW5kVGV4dHVyZShnLG51bGwpLG9hW2NdPW51bGwpO2guZGVsZXRlVGV4dHVyZShiKTthLnRleHR1cmU9bnVsbDthLnBhcmFtcz1udWxsO2EucGl4ZWxzPW51bGw7YS5yZWZDb3VudD1cbjA7ZGVsZXRlIGNhW2EuaWRdO0wudGV4dHVyZUNvdW50LS19dmFyIGVhPXtcImRvbid0IGNhcmVcIjo0MzUyLFwiZG9udCBjYXJlXCI6NDM1MixuaWNlOjQzNTQsZmFzdDo0MzUzfSxPPXtyZXBlYXQ6MTA0OTcsY2xhbXA6MzMwNzEsbWlycm9yOjMzNjQ4fSxoYT17bmVhcmVzdDo5NzI4LGxpbmVhcjo5NzI5fSxRPWIoe21pcG1hcDo5OTg3LFwibmVhcmVzdCBtaXBtYXAgbmVhcmVzdFwiOjk5ODQsXCJsaW5lYXIgbWlwbWFwIG5lYXJlc3RcIjo5OTg1LFwibmVhcmVzdCBtaXBtYXAgbGluZWFyXCI6OTk4NixcImxpbmVhciBtaXBtYXAgbGluZWFyXCI6OTk4N30saGEpLHBhPXtub25lOjAsYnJvd3NlcjozNzQ0NH0sVj17dWludDg6NTEyMSxyZ2JhNDozMjgxOSxyZ2I1NjU6MzM2MzUsXCJyZ2I1IGExXCI6MzI4MjB9LFg9e2FscGhhOjY0MDYsbHVtaW5hbmNlOjY0MDksXCJsdW1pbmFuY2UgYWxwaGFcIjo2NDEwLHJnYjo2NDA3LHJnYmE6NjQwOCxyZ2JhNDozMjg1NCxcInJnYjUgYTFcIjozMjg1NSxyZ2I1NjU6MzYxOTR9LFxuVD17fTtmLmV4dF9zcmdiJiYoWC5zcmdiPTM1OTA0LFguc3JnYmE9MzU5MDYpO2Yub2VzX3RleHR1cmVfZmxvYXQmJihWLmZsb2F0MzI9VltcImZsb2F0XCJdPTUxMjYpO2Yub2VzX3RleHR1cmVfaGFsZl9mbG9hdCYmKFYuZmxvYXQxNj1WW1wiaGFsZiBmbG9hdFwiXT0zNjE5Myk7Zi53ZWJnbF9kZXB0aF90ZXh0dXJlJiYoYihYLHtkZXB0aDo2NDAyLFwiZGVwdGggc3RlbmNpbFwiOjM0MDQxfSksYihWLHt1aW50MTY6NTEyMyx1aW50MzI6NTEyNSxcImRlcHRoIHN0ZW5jaWxcIjozNDA0Mn0pKTtmLndlYmdsX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjJiZiKFQse1wicmdiIHMzdGMgZHh0MVwiOjMzNzc2LFwicmdiYSBzM3RjIGR4dDFcIjozMzc3NyxcInJnYmEgczN0YyBkeHQzXCI6MzM3NzgsXCJyZ2JhIHMzdGMgZHh0NVwiOjMzNzc5fSk7Zi53ZWJnbF9jb21wcmVzc2VkX3RleHR1cmVfYXRjJiZiKFQse1wicmdiIGF0Y1wiOjM1OTg2LFwicmdiYSBhdGMgZXhwbGljaXQgYWxwaGFcIjozNTk4NyxcInJnYmEgYXRjIGludGVycG9sYXRlZCBhbHBoYVwiOjM0Nzk4fSk7XG5mLndlYmdsX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyYmYihULHtcInJnYiBwdnJ0YyA0YnBwdjFcIjozNTg0MCxcInJnYiBwdnJ0YyAyYnBwdjFcIjozNTg0MSxcInJnYmEgcHZydGMgNGJwcHYxXCI6MzU4NDIsXCJyZ2JhIHB2cnRjIDJicHB2MVwiOjM1ODQzfSk7Zi53ZWJnbF9jb21wcmVzc2VkX3RleHR1cmVfZXRjMSYmKFRbXCJyZ2IgZXRjMVwiXT0zNjE5Nik7dmFyIHVhPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGguZ2V0UGFyYW1ldGVyKDM0NDY3KSk7T2JqZWN0LmtleXMoVCkuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1UW2FdOzA8PXVhLmluZGV4T2YoYikmJihYW2FdPWIpfSk7dmFyIEVhPU9iamVjdC5rZXlzKFgpO3AudGV4dHVyZUZvcm1hdHM9RWE7dmFyIEZhPVtdO09iamVjdC5rZXlzKFgpLmZvckVhY2goZnVuY3Rpb24oYSl7RmFbWFthXV09YX0pO3ZhciBIYT1bXTtPYmplY3Qua2V5cyhWKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0hhW1ZbYV1dPWF9KTt2YXIgSWE9W107T2JqZWN0LmtleXMoaGEpLmZvckVhY2goZnVuY3Rpb24oYSl7SWFbaGFbYV1dPVxuYX0pO3ZhciBDYT1bXTtPYmplY3Qua2V5cyhRKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0NhW1FbYV1dPWF9KTt2YXIgRGE9W107T2JqZWN0LmtleXMoTykuZm9yRWFjaChmdW5jdGlvbihhKXtEYVtPW2FdXT1hfSk7dmFyIFBhPUVhLnJlZHVjZShmdW5jdGlvbihhLGIpe3ZhciBjPVhbYl07NjQwOT09PWN8fDY0MDY9PT1jfHw2NDA5PT09Y3x8NjQxMD09PWN8fDY0MDI9PT1jfHwzNDA0MT09PWM/YVtjXT1jOjMyODU1PT09Y3x8MDw9Yi5pbmRleE9mKFwicmdiYVwiKT9hW2NdPTY0MDg6YVtjXT02NDA3O3JldHVybiBhfSx7fSksTmE9W10sSmE9W10sQmE9MCxjYT17fSx0YT1wLm1heFRleHR1cmVVbml0cyxvYT1BcnJheSh0YSkubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9KTtiKHNhLnByb3RvdHlwZSx7YmluZDpmdW5jdGlvbigpe3RoaXMuYmluZENvdW50Kz0xO3ZhciBhPXRoaXMudW5pdDtpZigwPmEpe2Zvcih2YXIgYj0wO2I8dGE7KytiKXt2YXIgYz1vYVtiXTtpZihjKXtpZigwPGMuYmluZENvdW50KWNvbnRpbnVlO1xuYy51bml0PS0xfW9hW2JdPXRoaXM7YT1iO2JyZWFrfVoucHJvZmlsZSYmTC5tYXhUZXh0dXJlVW5pdHM8YSsxJiYoTC5tYXhUZXh0dXJlVW5pdHM9YSsxKTt0aGlzLnVuaXQ9YTtoLmFjdGl2ZVRleHR1cmUoMzM5ODQrYSk7aC5iaW5kVGV4dHVyZSh0aGlzLnRhcmdldCx0aGlzLnRleHR1cmUpfXJldHVybiBhfSx1bmJpbmQ6ZnVuY3Rpb24oKXstLXRoaXMuYmluZENvdW50fSxkZWNSZWY6ZnVuY3Rpb24oKXswPj0tLXRoaXMucmVmQ291bnQmJmxhKHRoaXMpfX0pO1oucHJvZmlsZSYmKEwuZ2V0VG90YWxUZXh0dXJlU2l6ZT1mdW5jdGlvbigpe3ZhciBhPTA7T2JqZWN0LmtleXMoY2EpLmZvckVhY2goZnVuY3Rpb24oYil7YSs9Y2FbYl0uc3RhdHMuc2l6ZX0pO3JldHVybiBhfSk7cmV0dXJue2NyZWF0ZTJEOmZ1bmN0aW9uKGIsYyl7ZnVuY3Rpb24gZyhiLGMpe3ZhciBlPWYudGV4SW5mbztpYS5jYWxsKGUpO3ZhciBoPXlhKCk7XCJudW1iZXJcIj09PXR5cGVvZiBiP1wibnVtYmVyXCI9PT10eXBlb2YgYz9cbkcoaCxifDAsY3wwKTpHKGgsYnwwLGJ8MCk6Yj8oa2EoZSxiKSxiYShoLGIpKTpHKGgsMSwxKTtlLmdlbk1pcG1hcHMmJihoLm1pcG1hc2s9KGgud2lkdGg8PDEpLTEpO2YubWlwbWFzaz1oLm1pcG1hc2s7SyhmLGgpO2YuaW50ZXJuYWxmb3JtYXQ9aC5pbnRlcm5hbGZvcm1hdDtnLndpZHRoPWgud2lkdGg7Zy5oZWlnaHQ9aC5oZWlnaHQ7ZGEoZik7bmEoaCwzNTUzKTtyYShlLDM1NTMpO2phKCk7VShoKTtaLnByb2ZpbGUmJihmLnN0YXRzLnNpemU9YShmLmludGVybmFsZm9ybWF0LGYudHlwZSxoLndpZHRoLGguaGVpZ2h0LGUuZ2VuTWlwbWFwcywhMSkpO2cuZm9ybWF0PUZhW2YuaW50ZXJuYWxmb3JtYXRdO2cudHlwZT1IYVtmLnR5cGVdO2cubWFnPUlhW2UubWFnRmlsdGVyXTtnLm1pbj1DYVtlLm1pbkZpbHRlcl07Zy53cmFwUz1EYVtlLndyYXBTXTtnLndyYXBUPURhW2Uud3JhcFRdO3JldHVybiBnfXZhciBmPW5ldyBzYSgzNTUzKTtjYVtmLmlkXT1mO0wudGV4dHVyZUNvdW50Kys7XG5nKGIsYyk7Zy5zdWJpbWFnZT1mdW5jdGlvbihhLGIsYyxlKXtifD0wO2N8PTA7ZXw9MDt2YXIgZD1nYSgpO0soZCxmKTtkLndpZHRoPTA7ZC5oZWlnaHQ9MDtTKGQsYSk7ZC53aWR0aD1kLndpZHRofHwoZi53aWR0aD4+ZSktYjtkLmhlaWdodD1kLmhlaWdodHx8KGYuaGVpZ2h0Pj5lKS1jO2RhKGYpO21hKGQsMzU1MyxiLGMsZSk7amEoKTtXKGQpO3JldHVybiBnfTtnLnJlc2l6ZT1mdW5jdGlvbihiLGMpe3ZhciBlPWJ8MCxrPWN8MHx8ZTtpZihlPT09Zi53aWR0aCYmaz09PWYuaGVpZ2h0KXJldHVybiBnO2cud2lkdGg9Zi53aWR0aD1lO2cuaGVpZ2h0PWYuaGVpZ2h0PWs7ZGEoZik7Zm9yKHZhciBkPTA7Zi5taXBtYXNrPj5kOysrZCloLnRleEltYWdlMkQoMzU1MyxkLGYuZm9ybWF0LGU+PmQsaz4+ZCwwLGYuZm9ybWF0LGYudHlwZSxudWxsKTtqYSgpO1oucHJvZmlsZSYmKGYuc3RhdHMuc2l6ZT1hKGYuaW50ZXJuYWxmb3JtYXQsZi50eXBlLGUsaywhMSwhMSkpO3JldHVybiBnfTtcbmcuX3JlZ2xUeXBlPVwidGV4dHVyZTJkXCI7Zy5fdGV4dHVyZT1mO1oucHJvZmlsZSYmKGcuc3RhdHM9Zi5zdGF0cyk7Zy5kZXN0cm95PWZ1bmN0aW9uKCl7Zi5kZWNSZWYoKX07cmV0dXJuIGd9LGNyZWF0ZUN1YmU6ZnVuY3Rpb24oYixjLGcsZixrLGwpe2Z1bmN0aW9uIG0oYixjLGUsZyxoLGYpe3ZhciBrLGw9bi50ZXhJbmZvO2lhLmNhbGwobCk7Zm9yKGs9MDs2Pms7KytrKWRba109eWEoKTtpZihcIm51bWJlclwiPT09dHlwZW9mIGJ8fCFiKWZvcihiPWJ8MHx8MSxrPTA7Nj5rOysraylHKGRba10sYixiKTtlbHNlIGlmKFwib2JqZWN0XCI9PT10eXBlb2YgYilpZihjKWJhKGRbMF0sYiksYmEoZFsxXSxjKSxiYShkWzJdLGUpLGJhKGRbM10sZyksYmEoZFs0XSxoKSxiYShkWzVdLGYpO2Vsc2UgaWYoa2EobCxiKSxZKG4sYiksXCJmYWNlc1wiaW4gYilmb3IoYj1iLmZhY2VzLGs9MDs2Pms7KytrKUsoZFtrXSxuKSxiYShkW2tdLGJba10pO2Vsc2UgZm9yKGs9MDs2Pms7KytrKWJhKGRba10sYik7XG5LKG4sZFswXSk7bi5taXBtYXNrPWwuZ2VuTWlwbWFwcz8oZFswXS53aWR0aDw8MSktMTpkWzBdLm1pcG1hc2s7bi5pbnRlcm5hbGZvcm1hdD1kWzBdLmludGVybmFsZm9ybWF0O20ud2lkdGg9ZFswXS53aWR0aDttLmhlaWdodD1kWzBdLmhlaWdodDtkYShuKTtmb3Ioaz0wOzY+azsrK2spbmEoZFtrXSwzNDA2OStrKTtyYShsLDM0MDY3KTtqYSgpO1oucHJvZmlsZSYmKG4uc3RhdHMuc2l6ZT1hKG4uaW50ZXJuYWxmb3JtYXQsbi50eXBlLG0ud2lkdGgsbS5oZWlnaHQsbC5nZW5NaXBtYXBzLCEwKSk7bS5mb3JtYXQ9RmFbbi5pbnRlcm5hbGZvcm1hdF07bS50eXBlPUhhW24udHlwZV07bS5tYWc9SWFbbC5tYWdGaWx0ZXJdO20ubWluPUNhW2wubWluRmlsdGVyXTttLndyYXBTPURhW2wud3JhcFNdO20ud3JhcFQ9RGFbbC53cmFwVF07Zm9yKGs9MDs2Pms7KytrKVUoZFtrXSk7cmV0dXJuIG19dmFyIG49bmV3IHNhKDM0MDY3KTtjYVtuLmlkXT1uO0wuY3ViZUNvdW50Kys7dmFyIGQ9QXJyYXkoNik7XG5tKGIsYyxnLGYsayxsKTttLnN1YmltYWdlPWZ1bmN0aW9uKGEsYixjLGQsZSl7Y3w9MDtkfD0wO2V8PTA7dmFyIGc9Z2EoKTtLKGcsbik7Zy53aWR0aD0wO2cuaGVpZ2h0PTA7UyhnLGIpO2cud2lkdGg9Zy53aWR0aHx8KG4ud2lkdGg+PmUpLWM7Zy5oZWlnaHQ9Zy5oZWlnaHR8fChuLmhlaWdodD4+ZSktZDtkYShuKTttYShnLDM0MDY5K2EsYyxkLGUpO2phKCk7VyhnKTtyZXR1cm4gbX07bS5yZXNpemU9ZnVuY3Rpb24oYil7Ynw9MDtpZihiIT09bi53aWR0aCl7bS53aWR0aD1uLndpZHRoPWI7bS5oZWlnaHQ9bi5oZWlnaHQ9YjtkYShuKTtmb3IodmFyIGM9MDs2PmM7KytjKWZvcih2YXIgZD0wO24ubWlwbWFzaz4+ZDsrK2QpaC50ZXhJbWFnZTJEKDM0MDY5K2MsZCxuLmZvcm1hdCxiPj5kLGI+PmQsMCxuLmZvcm1hdCxuLnR5cGUsbnVsbCk7amEoKTtaLnByb2ZpbGUmJihuLnN0YXRzLnNpemU9YShuLmludGVybmFsZm9ybWF0LG4udHlwZSxtLndpZHRoLG0uaGVpZ2h0LCExLCEwKSk7XG5yZXR1cm4gbX19O20uX3JlZ2xUeXBlPVwidGV4dHVyZUN1YmVcIjttLl90ZXh0dXJlPW47Wi5wcm9maWxlJiYobS5zdGF0cz1uLnN0YXRzKTttLmRlc3Ryb3k9ZnVuY3Rpb24oKXtuLmRlY1JlZigpfTtyZXR1cm4gbX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIGE9MDthPHRhOysrYSloLmFjdGl2ZVRleHR1cmUoMzM5ODQrYSksaC5iaW5kVGV4dHVyZSgzNTUzLG51bGwpLG9hW2FdPW51bGw7RihjYSkuZm9yRWFjaChsYSk7TC5jdWJlQ291bnQ9MDtMLnRleHR1cmVDb3VudD0wfSxnZXRUZXh0dXJlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsfSxyZXN0b3JlOmZ1bmN0aW9uKCl7RihjYSkuZm9yRWFjaChmdW5jdGlvbihhKXthLnRleHR1cmU9aC5jcmVhdGVUZXh0dXJlKCk7aC5iaW5kVGV4dHVyZShhLnRhcmdldCxhLnRleHR1cmUpO2Zvcih2YXIgYj0wOzMyPmI7KytiKWlmKDAhPT0oYS5taXBtYXNrJjE8PGIpKWlmKDM1NTM9PT1hLnRhcmdldCloLnRleEltYWdlMkQoMzU1MyxiLGEuaW50ZXJuYWxmb3JtYXQsXG5hLndpZHRoPj5iLGEuaGVpZ2h0Pj5iLDAsYS5pbnRlcm5hbGZvcm1hdCxhLnR5cGUsbnVsbCk7ZWxzZSBmb3IodmFyIGM9MDs2PmM7KytjKWgudGV4SW1hZ2UyRCgzNDA2OStjLGIsYS5pbnRlcm5hbGZvcm1hdCxhLndpZHRoPj5iLGEuaGVpZ2h0Pj5iLDAsYS5pbnRlcm5hbGZvcm1hdCxhLnR5cGUsbnVsbCk7cmEoYS50ZXhJbmZvLGEudGFyZ2V0KX0pfX19fSx7XCIuL2NvbnN0YW50cy9hcnJheXR5cGVzLmpzb25cIjozLFwiLi91dGlsL2V4dGVuZFwiOjIyLFwiLi91dGlsL2ZsYXR0ZW5cIjoyMyxcIi4vdXRpbC9pcy1hcnJheS1saWtlXCI6MjQsXCIuL3V0aWwvaXMtbmRhcnJheVwiOjI1LFwiLi91dGlsL2lzLXR5cGVkLWFycmF5XCI6MjYsXCIuL3V0aWwvcG9vbFwiOjI4LFwiLi91dGlsL3RvLWhhbGYtZmxvYXRcIjozMCxcIi4vdXRpbC92YWx1ZXNcIjozMX1dLDE5OltmdW5jdGlvbihmLHAsdSl7cC5leHBvcnRzPWZ1bmN0aW9uKGYsayl7ZnVuY3Rpb24gcCgpe3RoaXMuZW5kUXVlcnlJbmRleD10aGlzLnN0YXJ0UXVlcnlJbmRleD1cbi0xO3RoaXMuc3VtPTA7dGhpcy5zdGF0cz1udWxsfWZ1bmN0aW9uIHIoYSxiLGMpe3ZhciBmPUYucG9wKCl8fG5ldyBwO2Yuc3RhcnRRdWVyeUluZGV4PWE7Zi5lbmRRdWVyeUluZGV4PWI7Zi5zdW09MDtmLnN0YXRzPWM7dS5wdXNoKGYpfXZhciBjPWsuZXh0X2Rpc2pvaW50X3RpbWVyX3F1ZXJ5O2lmKCFjKXJldHVybiBudWxsO3ZhciBhPVtdLGI9W10sRj1bXSx1PVtdLHQ9W10seT1bXTtyZXR1cm57YmVnaW5RdWVyeTpmdW5jdGlvbihnKXt2YXIgZj1hLnBvcCgpfHxjLmNyZWF0ZVF1ZXJ5RVhUKCk7Yy5iZWdpblF1ZXJ5RVhUKDM1MDA3LGYpO2IucHVzaChmKTtyKGIubGVuZ3RoLTEsYi5sZW5ndGgsZyl9LGVuZFF1ZXJ5OmZ1bmN0aW9uKCl7Yy5lbmRRdWVyeUVYVCgzNTAwNyl9LHB1c2hTY29wZVN0YXRzOnIsdXBkYXRlOmZ1bmN0aW9uKCl7dmFyIGcsZjtnPWIubGVuZ3RoO2lmKDAhPT1nKXt5Lmxlbmd0aD1NYXRoLm1heCh5Lmxlbmd0aCxnKzEpO3QubGVuZ3RoPU1hdGgubWF4KHQubGVuZ3RoLFxuZysxKTt0WzBdPTA7dmFyIGs9eVswXT0wO2ZvcihmPWc9MDtmPGIubGVuZ3RoOysrZil7dmFyIGw9YltmXTtjLmdldFF1ZXJ5T2JqZWN0RVhUKGwsMzQ5MTkpPyhrKz1jLmdldFF1ZXJ5T2JqZWN0RVhUKGwsMzQ5MTgpLGEucHVzaChsKSk6YltnKytdPWw7dFtmKzFdPWs7eVtmKzFdPWd9Yi5sZW5ndGg9Zztmb3IoZj1nPTA7Zjx1Lmxlbmd0aDsrK2Ype3ZhciBrPXVbZl0sbj1rLnN0YXJ0UXVlcnlJbmRleCxsPWsuZW5kUXVlcnlJbmRleDtrLnN1bSs9dFtsXS10W25dO249eVtuXTtsPXlbbF07bD09PW4/KGsuc3RhdHMuZ3B1VGltZSs9ay5zdW0vMUU2LEYucHVzaChrKSk6KGsuc3RhcnRRdWVyeUluZGV4PW4say5lbmRRdWVyeUluZGV4PWwsdVtnKytdPWspfXUubGVuZ3RoPWd9fSxnZXROdW1QZW5kaW5nUXVlcmllczpmdW5jdGlvbigpe3JldHVybiBiLmxlbmd0aH0sY2xlYXI6ZnVuY3Rpb24oKXthLnB1c2guYXBwbHkoYSxiKTtmb3IodmFyIGc9MDtnPGEubGVuZ3RoO2crKyljLmRlbGV0ZVF1ZXJ5RVhUKGFbZ10pO1xuYi5sZW5ndGg9MDthLmxlbmd0aD0wfSxyZXN0b3JlOmZ1bmN0aW9uKCl7Yi5sZW5ndGg9MDthLmxlbmd0aD0wfX19fSx7fV0sMjA6W2Z1bmN0aW9uKGYscCx1KXtwLmV4cG9ydHM9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P2Z1bmN0aW9uKCl7cmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpfTpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX19LHt9XSwyMTpbZnVuY3Rpb24oZixwLHUpe2Z1bmN0aW9uIGwoZil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGYpfWZ1bmN0aW9uIGsoZil7cmV0dXJuIGwoZikuam9pbihcIlwiKX12YXIgeD1mKFwiLi9leHRlbmRcIik7cC5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZigpe3ZhciBiPVtdLGM9W107cmV0dXJuIHgoZnVuY3Rpb24oKXtiLnB1c2guYXBwbHkoYixsKGFyZ3VtZW50cykpfSx7ZGVmOmZ1bmN0aW9uKCl7dmFyIGY9XCJ2XCIrYSsrO2MucHVzaChmKTswPGFyZ3VtZW50cy5sZW5ndGgmJlxuKGIucHVzaChmLFwiPVwiKSxiLnB1c2guYXBwbHkoYixsKGFyZ3VtZW50cykpLGIucHVzaChcIjtcIikpO3JldHVybiBmfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBrKFswPGMubGVuZ3RoP1widmFyIFwiK2MrXCI7XCI6XCJcIixrKGIpXSl9fSl9ZnVuY3Rpb24gYygpe2Z1bmN0aW9uIGEoZixrKXtjKGYsayxcIj1cIixiLmRlZihmLGspLFwiO1wiKX12YXIgYj1mKCksYz1mKCksaz1iLnRvU3RyaW5nLHQ9Yy50b1N0cmluZztyZXR1cm4geChmdW5jdGlvbigpe2IuYXBwbHkoYixsKGFyZ3VtZW50cykpfSx7ZGVmOmIuZGVmLGVudHJ5OmIsZXhpdDpjLHNhdmU6YSxzZXQ6ZnVuY3Rpb24oYyxmLGspe2EoYyxmKTtiKGMsZixcIj1cIixrLFwiO1wiKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gaygpK3QoKX19KX12YXIgYT0wLGI9W10scD1bXSx1PWYoKSx0PXt9O3JldHVybntnbG9iYWw6dSxsaW5rOmZ1bmN0aW9uKGMpe2Zvcih2YXIgZz0wO2c8cC5sZW5ndGg7KytnKWlmKHBbZ109PT1jKXJldHVybiBiW2ddO1xuZz1cImdcIithKys7Yi5wdXNoKGcpO3AucHVzaChjKTtyZXR1cm4gZ30sYmxvY2s6Zixwcm9jOmZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gZigpe3ZhciBhPVwiYVwiK2wubGVuZ3RoO2wucHVzaChhKTtyZXR1cm4gYX12YXIgbD1bXTtiPWJ8fDA7Zm9yKHZhciByPTA7cjxiOysrcilmKCk7dmFyIHI9YygpLG49ci50b1N0cmluZztyZXR1cm4gdFthXT14KHIse2FyZzpmLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIGsoW1wiZnVuY3Rpb24oXCIsbC5qb2luKCksXCIpe1wiLG4oKSxcIn1cIl0pfX0pfSxzY29wZTpjLGNvbmQ6ZnVuY3Rpb24oKXt2YXIgYT1rKGFyZ3VtZW50cyksYj1jKCksZj1jKCkscj1iLnRvU3RyaW5nLHQ9Zi50b1N0cmluZztyZXR1cm4geChiLHt0aGVuOmZ1bmN0aW9uKCl7Yi5hcHBseShiLGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXN9LFwiZWxzZVwiOmZ1bmN0aW9uKCl7Zi5hcHBseShmLGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXN9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIGI9XG50KCk7YiYmKGI9XCJlbHNle1wiK2IrXCJ9XCIpO3JldHVybiBrKFtcImlmKFwiLGEsXCIpe1wiLHIoKSxcIn1cIixiXSl9fSl9LGNvbXBpbGU6ZnVuY3Rpb24oKXt2YXIgYT1bJ1widXNlIHN0cmljdFwiOycsdSxcInJldHVybiB7XCJdO09iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oYil7YS5wdXNoKCdcIicsYiwnXCI6Jyx0W2JdLnRvU3RyaW5nKCksXCIsXCIpfSk7YS5wdXNoKFwifVwiKTt2YXIgYz1rKGEpLnJlcGxhY2UoLzsvZyxcIjtcXG5cIikucmVwbGFjZSgvfS9nLFwifVxcblwiKS5yZXBsYWNlKC97L2csXCJ7XFxuXCIpO3JldHVybiBGdW5jdGlvbi5hcHBseShudWxsLGIuY29uY2F0KGMpKS5hcHBseShudWxsLHApfX19fSx7XCIuL2V4dGVuZFwiOjIyfV0sMjI6W2Z1bmN0aW9uKGYscCx1KXtwLmV4cG9ydHM9ZnVuY3Rpb24oZixrKXtmb3IodmFyIHA9T2JqZWN0LmtleXMoaykscj0wO3I8cC5sZW5ndGg7KytyKWZbcFtyXV09a1twW3JdXTtyZXR1cm4gZn19LHt9XSwyMzpbZnVuY3Rpb24oZixwLHUpe2Z1bmN0aW9uIGwoZixcbmMsYSxiLGssbCl7Zm9yKHZhciB0PTA7dDxjOysrdClmb3IodmFyIHA9Zlt0XSxnPTA7ZzxhOysrZylmb3IodmFyIHg9cFtnXSx1PTA7dTxiOysrdSlrW2wrK109eFt1XX1mdW5jdGlvbiBrKGYsYyxhLGIscCl7Zm9yKHZhciB4PTEsdD1hKzE7dDxjLmxlbmd0aDsrK3QpeCo9Y1t0XTt2YXIgeT1jW2FdO2lmKDQ9PT1jLmxlbmd0aC1hKXt2YXIgZz1jW2ErMV0sdT1jW2ErMl07Yz1jW2ErM107Zm9yKHQ9MDt0PHk7Kyt0KWwoZlt0XSxnLHUsYyxiLHApLHArPXh9ZWxzZSBmb3IodD0wO3Q8eTsrK3QpayhmW3RdLGMsYSsxLGIscCkscCs9eH12YXIgeD1mKFwiLi9wb29sXCIpO3AuZXhwb3J0cz17c2hhcGU6ZnVuY3Rpb24oZil7Zm9yKHZhciBjPVtdO2YubGVuZ3RoO2Y9ZlswXSljLnB1c2goZi5sZW5ndGgpO3JldHVybiBjfSxmbGF0dGVuOmZ1bmN0aW9uKGYsYyxhLGIpe3ZhciBwPTE7aWYoYy5sZW5ndGgpZm9yKHZhciB1PTA7dTxjLmxlbmd0aDsrK3UpcCo9Y1t1XTtlbHNlIHA9MDthPWJ8fFxueC5hbGxvY1R5cGUoYSxwKTtzd2l0Y2goYy5sZW5ndGgpe2Nhc2UgMDpicmVhaztjYXNlIDE6Yj1jWzBdO2ZvcihjPTA7YzxiOysrYylhW2NdPWZbY107YnJlYWs7Y2FzZSAyOmI9Y1swXTtjPWNbMV07Zm9yKHU9cD0wO3U8YjsrK3UpZm9yKHZhciB0PWZbdV0seT0wO3k8YzsrK3kpYVtwKytdPXRbeV07YnJlYWs7Y2FzZSAzOmwoZixjWzBdLGNbMV0sY1syXSxhLDApO2JyZWFrO2RlZmF1bHQ6ayhmLGMsMCxhLDApfXJldHVybiBhfX19LHtcIi4vcG9vbFwiOjI4fV0sMjQ6W2Z1bmN0aW9uKGYscCx1KXt2YXIgbD1mKFwiLi9pcy10eXBlZC1hcnJheVwiKTtwLmV4cG9ydHM9ZnVuY3Rpb24oZil7cmV0dXJuIEFycmF5LmlzQXJyYXkoZil8fGwoZil9fSx7XCIuL2lzLXR5cGVkLWFycmF5XCI6MjZ9XSwyNTpbZnVuY3Rpb24oZixwLHUpe3ZhciBsPWYoXCIuL2lzLXR5cGVkLWFycmF5XCIpO3AuZXhwb3J0cz1mdW5jdGlvbihmKXtyZXR1cm4hIWYmJlwib2JqZWN0XCI9PT10eXBlb2YgZiYmQXJyYXkuaXNBcnJheShmLnNoYXBlKSYmXG5BcnJheS5pc0FycmF5KGYuc3RyaWRlKSYmXCJudW1iZXJcIj09PXR5cGVvZiBmLm9mZnNldCYmZi5zaGFwZS5sZW5ndGg9PT1mLnN0cmlkZS5sZW5ndGgmJihBcnJheS5pc0FycmF5KGYuZGF0YSl8fGwoZi5kYXRhKSl9fSx7XCIuL2lzLXR5cGVkLWFycmF5XCI6MjZ9XSwyNjpbZnVuY3Rpb24oZixwLHUpe3ZhciBsPWYoXCIuLi9jb25zdGFudHMvYXJyYXl0eXBlcy5qc29uXCIpO3AuZXhwb3J0cz1mdW5jdGlvbihmKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGYpaW4gbH19LHtcIi4uL2NvbnN0YW50cy9hcnJheXR5cGVzLmpzb25cIjozfV0sMjc6W2Z1bmN0aW9uKGYscCx1KXtwLmV4cG9ydHM9ZnVuY3Rpb24oZixrKXtmb3IodmFyIHA9QXJyYXkoZikscj0wO3I8ZjsrK3IpcFtyXT1rKHIpO3JldHVybiBwfX0se31dLDI4OltmdW5jdGlvbihmLHAsdSl7ZnVuY3Rpb24gbChjKXt2YXIgYSxiO2E9KDY1NTM1PGMpPDw0O2M+Pj49YTtiPSgyNTU8Yyk8PDM7Yz4+Pj1iO2F8PVxuYjtiPSgxNTxjKTw8MjtjPj4+PWI7YXw9YjtiPSgzPGMpPDwxO3JldHVybiBhfGJ8Yz4+PmI+PjF9ZnVuY3Rpb24gayhjKXthOntmb3IodmFyIGE9MTY7MjY4NDM1NDU2Pj1hO2EqPTE2KWlmKGM8PWEpe2M9YTticmVhayBhfWM9MH1hPXJbbChjKT4+Ml07cmV0dXJuIDA8YS5sZW5ndGg/YS5wb3AoKTpuZXcgQXJyYXlCdWZmZXIoYyl9ZnVuY3Rpb24geChjKXtyW2woYy5ieXRlTGVuZ3RoKT4+Ml0ucHVzaChjKX12YXIgcj1mKFwiLi9sb29wXCIpKDgsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO3AuZXhwb3J0cz17YWxsb2M6ayxmcmVlOngsYWxsb2NUeXBlOmZ1bmN0aW9uKGMsYSl7dmFyIGI9bnVsbDtzd2l0Y2goYyl7Y2FzZSA1MTIwOmI9bmV3IEludDhBcnJheShrKGEpLDAsYSk7YnJlYWs7Y2FzZSA1MTIxOmI9bmV3IFVpbnQ4QXJyYXkoayhhKSwwLGEpO2JyZWFrO2Nhc2UgNTEyMjpiPW5ldyBJbnQxNkFycmF5KGsoMiphKSwwLGEpO2JyZWFrO2Nhc2UgNTEyMzpiPW5ldyBVaW50MTZBcnJheShrKDIqXG5hKSwwLGEpO2JyZWFrO2Nhc2UgNTEyNDpiPW5ldyBJbnQzMkFycmF5KGsoNCphKSwwLGEpO2JyZWFrO2Nhc2UgNTEyNTpiPW5ldyBVaW50MzJBcnJheShrKDQqYSksMCxhKTticmVhaztjYXNlIDUxMjY6Yj1uZXcgRmxvYXQzMkFycmF5KGsoNCphKSwwLGEpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIG51bGx9cmV0dXJuIGIubGVuZ3RoIT09YT9iLnN1YmFycmF5KDAsYSk6Yn0sZnJlZVR5cGU6ZnVuY3Rpb24oYyl7eChjLmJ1ZmZlcil9fX0se1wiLi9sb29wXCI6Mjd9XSwyOTpbZnVuY3Rpb24oZixwLHUpe3AuZXhwb3J0cz1cImZ1bmN0aW9uXCI9PT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgY2FuY2VsQW5pbWF0aW9uRnJhbWU/e25leHQ6ZnVuY3Rpb24oZil7cmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZShmKX0sY2FuY2VsOmZ1bmN0aW9uKGYpe3JldHVybiBjYW5jZWxBbmltYXRpb25GcmFtZShmKX19OntuZXh0OmZ1bmN0aW9uKGYpe3JldHVybiBzZXRUaW1lb3V0KGYsXG4xNil9LGNhbmNlbDpjbGVhclRpbWVvdXR9fSx7fV0sMzA6W2Z1bmN0aW9uKGYscCx1KXt2YXIgbD1mKFwiLi9wb29sXCIpLGs9bmV3IEZsb2F0MzJBcnJheSgxKSx4PW5ldyBVaW50MzJBcnJheShrLmJ1ZmZlcik7cC5leHBvcnRzPWZ1bmN0aW9uKGYpe2Zvcih2YXIgYz1sLmFsbG9jVHlwZSg1MTIzLGYubGVuZ3RoKSxhPTA7YTxmLmxlbmd0aDsrK2EpaWYoaXNOYU4oZlthXSkpY1thXT02NTUzNTtlbHNlIGlmKEluZmluaXR5PT09ZlthXSljW2FdPTMxNzQ0O2Vsc2UgaWYoLUluZmluaXR5PT09ZlthXSljW2FdPTY0NTEyO2Vsc2V7a1swXT1mW2FdO3ZhciBiPXhbMF0scD1iPj4+MzE8PDE1LHU9KGI8PDE+Pj4yNCktMTI3LGI9Yj4+MTMmMTAyMztjW2FdPS0yND51P3A6LTE0PnU/cCsoYisxMDI0Pj4tMTQtdSk6MTU8dT9wKzMxNzQ0OnArKHUrMTU8PDEwKStifXJldHVybiBjfX0se1wiLi9wb29sXCI6Mjh9XSwzMTpbZnVuY3Rpb24oZixwLHUpe3AuZXhwb3J0cz1mdW5jdGlvbihmKXtyZXR1cm4gT2JqZWN0LmtleXMoZikubWFwKGZ1bmN0aW9uKGspe3JldHVybiBmW2tdfSl9fSxcbnt9XSwzMjpbZnVuY3Rpb24oZixwLHUpe2Z1bmN0aW9uIGwoYSxiLGYpe2Z1bmN0aW9uIGsoKXt2YXIgYj13aW5kb3cuaW5uZXJXaWR0aCxnPXdpbmRvdy5pbm5lckhlaWdodDthIT09ZG9jdW1lbnQuYm9keSYmKGc9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPWcucmlnaHQtZy5sZWZ0LGc9Zy50b3AtZy5ib3R0b20pO2wud2lkdGg9ZipiO2wuaGVpZ2h0PWYqZztjKGwuc3R5bGUse3dpZHRoOmIrXCJweFwiLGhlaWdodDpnK1wicHhcIn0pfXZhciBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7YyhsLnN0eWxlLHtib3JkZXI6MCxtYXJnaW46MCxwYWRkaW5nOjAsdG9wOjAsbGVmdDowfSk7YS5hcHBlbmRDaGlsZChsKTthPT09ZG9jdW1lbnQuYm9keSYmKGwuc3R5bGUucG9zaXRpb249XCJhYnNvbHV0ZVwiLGMoYS5zdHlsZSx7bWFyZ2luOjAscGFkZGluZzowfSkpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsaywhMSk7aygpO3JldHVybntjYW52YXM6bCxvbkRlc3Ryb3k6ZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLFxuayk7YS5yZW1vdmVDaGlsZChsKX19fWZ1bmN0aW9uIGsoYSxiKXtmdW5jdGlvbiBjKGYpe3RyeXtyZXR1cm4gYS5nZXRDb250ZXh0KGYsYil9Y2F0Y2goayl7cmV0dXJuIG51bGx9fXJldHVybiBjKFwid2ViZ2xcIil8fGMoXCJleHBlcmltZW50YWwtd2ViZ2xcIil8fGMoXCJ3ZWJnbC1leHBlcmltZW50YWxcIil9ZnVuY3Rpb24geChhKXtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGE/YS5zcGxpdCgpOmF9ZnVuY3Rpb24gcihhKXtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGE/ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihhKTphfXZhciBjPWYoXCIuL3V0aWwvZXh0ZW5kXCIpO3AuZXhwb3J0cz1mdW5jdGlvbihhKXt2YXIgYj1hfHx7fSxjLGYscCx1O2E9e307dmFyIGc9W10sRT1bXSxDPVwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93PzE6d2luZG93LmRldmljZVBpeGVsUmF0aW8sTj0hMSxuPWZ1bmN0aW9uKGEpe30sbT1mdW5jdGlvbigpe307XCJzdHJpbmdcIj09PXR5cGVvZiBiP2M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihiKTpcblwib2JqZWN0XCI9PT10eXBlb2YgYiYmKFwic3RyaW5nXCI9PT10eXBlb2YgYi5ub2RlTmFtZSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGIuYXBwZW5kQ2hpbGQmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBiLmdldEJvdW5kaW5nQ2xpZW50UmVjdD9jPWI6XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuZHJhd0FycmF5c3x8XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuZHJhd0VsZW1lbnRzPyh1PWIscD11LmNhbnZhcyk6KFwiZ2xcImluIGI/dT1iLmdsOlwiY2FudmFzXCJpbiBiP3A9cihiLmNhbnZhcyk6XCJjb250YWluZXJcImluIGImJihmPXIoYi5jb250YWluZXIpKSxcImF0dHJpYnV0ZXNcImluIGImJihhPWIuYXR0cmlidXRlcyksXCJleHRlbnNpb25zXCJpbiBiJiYoZz14KGIuZXh0ZW5zaW9ucykpLFwib3B0aW9uYWxFeHRlbnNpb25zXCJpbiBiJiYoRT14KGIub3B0aW9uYWxFeHRlbnNpb25zKSksXCJvbkRvbmVcImluIGImJihuPWIub25Eb25lKSxcInByb2ZpbGVcImluIGImJihOPSEhYi5wcm9maWxlKSxcInBpeGVsUmF0aW9cImluIGImJlxuKEM9K2IucGl4ZWxSYXRpbykpKTtjJiYoXCJjYW52YXNcIj09PWMubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9wPWM6Zj1jKTtpZighdSl7aWYoIXApe2M9bChmfHxkb2N1bWVudC5ib2R5LG4sQyk7aWYoIWMpcmV0dXJuIG51bGw7cD1jLmNhbnZhczttPWMub25EZXN0cm95fXU9ayhwLGEpfXJldHVybiB1P3tnbDp1LGNhbnZhczpwLGNvbnRhaW5lcjpmLGV4dGVuc2lvbnM6ZyxvcHRpb25hbEV4dGVuc2lvbnM6RSxwaXhlbFJhdGlvOkMscHJvZmlsZTpOLG9uRG9uZTpuLG9uRGVzdHJveTptfToobSgpLG4oXCJ3ZWJnbCBub3Qgc3VwcG9ydGVkLCB0cnkgdXBncmFkaW5nIHlvdXIgYnJvd3NlciBvciBncmFwaGljcyBkcml2ZXJzIGh0dHA6Ly9nZXQud2ViZ2wub3JnXCIpLG51bGwpfX0se1wiLi91dGlsL2V4dGVuZFwiOjIyfV0sMzM6W2Z1bmN0aW9uKGYscCx1KXtmdW5jdGlvbiBsKGEsYil7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDsrK2MpaWYoYVtjXT09PWIpcmV0dXJuIGM7cmV0dXJuLTF9dmFyIGs9XG5mKFwiLi9saWIvdXRpbC9leHRlbmRcIikseD1mKFwiLi9saWIvZHluYW1pY1wiKSxyPWYoXCIuL2xpYi91dGlsL3JhZlwiKSxjPWYoXCIuL2xpYi91dGlsL2Nsb2NrXCIpLGE9ZihcIi4vbGliL3N0cmluZ3NcIiksYj1mKFwiLi9saWIvd2ViZ2xcIiksRj1mKFwiLi9saWIvZXh0ZW5zaW9uXCIpLE09ZihcIi4vbGliL2xpbWl0c1wiKSx0PWYoXCIuL2xpYi9idWZmZXJcIikseT1mKFwiLi9saWIvZWxlbWVudHNcIiksZz1mKFwiLi9saWIvdGV4dHVyZVwiKSxFPWYoXCIuL2xpYi9yZW5kZXJidWZmZXJcIiksQz1mKFwiLi9saWIvZnJhbWVidWZmZXJcIiksTj1mKFwiLi9saWIvYXR0cmlidXRlXCIpLG49ZihcIi4vbGliL3NoYWRlclwiKSxtPWYoXCIuL2xpYi9yZWFkXCIpLEI9ZihcIi4vbGliL2NvcmVcIiksWT1mKFwiLi9saWIvc3RhdHNcIiksTD1mKFwiLi9saWIvdGltZXJcIik7cC5leHBvcnRzPWZ1bmN0aW9uKGYpe2Z1bmN0aW9uIGgoKXtpZigwPT09US5sZW5ndGgpRyYmRy51cGRhdGUoKSxUPW51bGw7ZWxzZXtUPXIubmV4dChoKTtLKCk7Zm9yKHZhciBhPVxuUS5sZW5ndGgtMTswPD1hOy0tYSl7dmFyIGI9UVthXTtiJiZiKFUsbnVsbCwwKX1xLmZsdXNoKCk7RyYmRy51cGRhdGUoKX19ZnVuY3Rpb24gcCgpeyFUJiYwPFEubGVuZ3RoJiYoVD1yLm5leHQoaCkpfWZ1bmN0aW9uIHUoKXtUJiYoci5jYW5jZWwoaCksVD1udWxsKX1mdW5jdGlvbiBMYShhKXthLnByZXZlbnREZWZhdWx0KCk7dSgpO3BhLmZvckVhY2goZnVuY3Rpb24oYSl7YSgpfSl9ZnVuY3Rpb24gemEoYSl7cS5nZXRFcnJvcigpO21hLnJlc3RvcmUoKTtzYS5yZXN0b3JlKCk7a2EucmVzdG9yZSgpO2RhLnJlc3RvcmUoKTtqYS5yZXN0b3JlKCk7bGEucmVzdG9yZSgpO0cmJkcucmVzdG9yZSgpO2VhLnByb2NzLnJlZnJlc2goKTtwKCk7Vi5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EoKX0pfWZ1bmN0aW9uIEdhKGEpe2Z1bmN0aW9uIGIoYSl7dmFyIGM9e30sZj17fTtPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBnPWFbYl07eC5pc0R5bmFtaWMoZyk/ZltiXT14LnVuYm94KGcsXG5iKTpjW2JdPWd9KTtyZXR1cm57ZHluYW1pYzpmLFwic3RhdGljXCI6Y319ZnVuY3Rpb24gYyhhKXtmb3IoO3EubGVuZ3RoPGE7KXEucHVzaChudWxsKTtyZXR1cm4gcX12YXIgZj1iKGEuY29udGV4dHx8e30pLGc9YihhLnVuaWZvcm1zfHx7fSksaD1iKGEuYXR0cmlidXRlc3x8e30pLGw9YihmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEpe2lmKGEgaW4gYyl7dmFyIGY9Y1thXTtkZWxldGUgY1thXTtPYmplY3Qua2V5cyhmKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2NbYStcIi5cIitiXT1mW2JdfSl9fXZhciBjPWsoe30sYSk7ZGVsZXRlIGMudW5pZm9ybXM7ZGVsZXRlIGMuYXR0cmlidXRlcztkZWxldGUgYy5jb250ZXh0O1wic3RlbmNpbFwiaW4gYyYmYy5zdGVuY2lsLm9wJiYoYy5zdGVuY2lsLm9wQmFjaz1jLnN0ZW5jaWwub3BGcm9udD1jLnN0ZW5jaWwub3AsZGVsZXRlIGMuc3RlbmNpbC5vcCk7YihcImJsZW5kXCIpO2IoXCJkZXB0aFwiKTtiKFwiY3VsbFwiKTtiKFwic3RlbmNpbFwiKTtiKFwicG9seWdvbk9mZnNldFwiKTtcbmIoXCJzY2lzc29yXCIpO2IoXCJzYW1wbGVcIik7cmV0dXJuIGN9KGEpKTthPXtncHVUaW1lOjAsY3B1VGltZTowLGNvdW50OjB9O3ZhciBmPWVhLmNvbXBpbGUobCxoLGcsZixhKSxtPWYuZHJhdyxuPWYuYmF0Y2gscD1mLnNjb3BlLHE9W107cmV0dXJuIGsoZnVuY3Rpb24oYSxiKXt2YXIgZjtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlyZXR1cm4gcC5jYWxsKHRoaXMsbnVsbCxhLDApO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBiKWlmKFwibnVtYmVyXCI9PT10eXBlb2YgYSlmb3IoZj0wO2Y8YTsrK2YpcC5jYWxsKHRoaXMsbnVsbCxiLGYpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShhKSlmb3IoZj0wO2Y8YS5sZW5ndGg7KytmKXAuY2FsbCh0aGlzLGFbZl0sYixmKTtlbHNlIHJldHVybiBwLmNhbGwodGhpcyxhLGIsMCk7ZWxzZSBpZihcIm51bWJlclwiPT09dHlwZW9mIGEpe2lmKDA8YSlyZXR1cm4gbi5jYWxsKHRoaXMsYyhhfDApLGF8MCl9ZWxzZSBpZihBcnJheS5pc0FycmF5KGEpKXtpZihhLmxlbmd0aClyZXR1cm4gbi5jYWxsKHRoaXMsXG5hLGEubGVuZ3RoKX1lbHNlIHJldHVybiBtLmNhbGwodGhpcyxhKX0se3N0YXRzOmF9KX1mdW5jdGlvbiBaKGEpe1EucHVzaChhKTtwKCk7cmV0dXJue2NhbmNlbDpmdW5jdGlvbigpe2Z1bmN0aW9uIGIoKXt2YXIgYT1sKFEsYik7UVthXT1RW1EubGVuZ3RoLTFdOy0tUS5sZW5ndGg7MD49US5sZW5ndGgmJnUoKX12YXIgYz1sKFEsYSk7UVtjXT1ifX19ZnVuY3Rpb24gRCgpe3ZhciBhPU8udmlld3BvcnQsYj1PLnNjaXNzb3JfYm94O2FbMF09YVsxXT1iWzBdPWJbMV09MDtVLnZpZXdwb3J0V2lkdGg9VS5mcmFtZWJ1ZmZlcldpZHRoPVUuZHJhd2luZ0J1ZmZlcldpZHRoPWFbMl09YlsyXT1xLmRyYXdpbmdCdWZmZXJXaWR0aDtVLnZpZXdwb3J0SGVpZ2h0PVUuZnJhbWVidWZmZXJIZWlnaHQ9VS5kcmF3aW5nQnVmZmVySGVpZ2h0PWFbM109YlszXT1xLmRyYXdpbmdCdWZmZXJIZWlnaHR9ZnVuY3Rpb24gSygpe1UudGljays9MTtVLnRpbWU9dmEoKTtEKCk7ZWEucHJvY3MucG9sbCgpfWZ1bmN0aW9uIEFhKCl7RCgpO1xuZWEucHJvY3MucmVmcmVzaCgpO0cmJkcudXBkYXRlKCl9ZnVuY3Rpb24gdmEoKXtyZXR1cm4oYygpLWJhKS8xRTN9Zj1iKGYpO2lmKCFmKXJldHVybiBudWxsO3ZhciBxPWYuZ2wsUz1xLmdldENvbnRleHRBdHRyaWJ1dGVzKCk7cS5pc0NvbnRleHRMb3N0KCk7dmFyIG1hPUYocSxmKTtpZighbWEpcmV0dXJuIG51bGw7dmFyIGdhPWEoKSxXPVkoKSxSPW1hLmV4dGVuc2lvbnMsRz1MKHEsUiksYmE9YygpLG5hPXEuZHJhd2luZ0J1ZmZlcldpZHRoLHlhPXEuZHJhd2luZ0J1ZmZlckhlaWdodCxVPXt0aWNrOjAsdGltZTowLHZpZXdwb3J0V2lkdGg6bmEsdmlld3BvcnRIZWlnaHQ6eWEsZnJhbWVidWZmZXJXaWR0aDpuYSxmcmFtZWJ1ZmZlckhlaWdodDp5YSxkcmF3aW5nQnVmZmVyV2lkdGg6bmEsZHJhd2luZ0J1ZmZlckhlaWdodDp5YSxwaXhlbFJhdGlvOmYucGl4ZWxSYXRpb30saWE9TShxLFIpLGthPXQocSxXLGYpLHJhPXkocSxSLGthLFcpLG5hPU4ocSxSLGlhLGthLGdhKSxzYT1uKHEsXG5nYSxXLGYpLGRhPWcocSxSLGlhLGZ1bmN0aW9uKCl7ZWEucHJvY3MucG9sbCgpfSxVLFcsZiksamE9RShxLFIsaWEsVyxmKSxsYT1DKHEsUixpYSxkYSxqYSxXKSxlYT1CKHEsZ2EsUixpYSxrYSxyYSxkYSxsYSx7fSxuYSxzYSx7ZWxlbWVudHM6bnVsbCxwcmltaXRpdmU6NCxjb3VudDotMSxvZmZzZXQ6MCxpbnN0YW5jZXM6LTF9LFUsRyxmKSxnYT1tKHEsbGEsZWEucHJvY3MucG9sbCxVLFMsUiksTz1lYS5uZXh0LGhhPXEuY2FudmFzLFE9W10scGE9W10sVj1bXSxYPVtmLm9uRGVzdHJveV0sVD1udWxsO2hhJiYoaGEuYWRkRXZlbnRMaXN0ZW5lcihcIndlYmdsY29udGV4dGxvc3RcIixMYSwhMSksaGEuYWRkRXZlbnRMaXN0ZW5lcihcIndlYmdsY29udGV4dHJlc3RvcmVkXCIsemEsITEpKTtBYSgpO1M9ayhHYSx7Y2xlYXI6ZnVuY3Rpb24oYSl7dmFyIGI9MDtlYS5wcm9jcy5wb2xsKCk7dmFyIGM9YS5jb2xvcjtjJiYocS5jbGVhckNvbG9yKCtjWzBdfHwwLCtjWzFdfHwwLCtjWzJdfHwwLFxuK2NbM118fDApLGJ8PTE2Mzg0KTtcImRlcHRoXCJpbiBhJiYocS5jbGVhckRlcHRoKCthLmRlcHRoKSxifD0yNTYpO1wic3RlbmNpbFwiaW4gYSYmKHEuY2xlYXJTdGVuY2lsKGEuc3RlbmNpbHwwKSxifD0xMDI0KTtxLmNsZWFyKGIpfSxwcm9wOnguZGVmaW5lLmJpbmQobnVsbCwxKSxjb250ZXh0OnguZGVmaW5lLmJpbmQobnVsbCwyKSxcInRoaXNcIjp4LmRlZmluZS5iaW5kKG51bGwsMyksZHJhdzpHYSh7fSksYnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBrYS5jcmVhdGUoYSwzNDk2MiwhMSwhMSl9LGVsZW1lbnRzOmZ1bmN0aW9uKGEpe3JldHVybiByYS5jcmVhdGUoYSwhMSl9LHRleHR1cmU6ZGEuY3JlYXRlMkQsY3ViZTpkYS5jcmVhdGVDdWJlLHJlbmRlcmJ1ZmZlcjpqYS5jcmVhdGUsZnJhbWVidWZmZXI6bGEuY3JlYXRlLGZyYW1lYnVmZmVyQ3ViZTpsYS5jcmVhdGVDdWJlLGF0dHJpYnV0ZXM6UyxmcmFtZTpaLG9uOmZ1bmN0aW9uKGEsYil7dmFyIGM7c3dpdGNoKGEpe2Nhc2UgXCJmcmFtZVwiOnJldHVybiBaKGIpO1xuY2FzZSBcImxvc3RcIjpjPXBhO2JyZWFrO2Nhc2UgXCJyZXN0b3JlXCI6Yz1WO2JyZWFrO2Nhc2UgXCJkZXN0cm95XCI6Yz1YfWMucHVzaChiKTtyZXR1cm57Y2FuY2VsOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPTA7YTxjLmxlbmd0aDsrK2EpaWYoY1thXT09PWIpe2NbYV09Y1tjLmxlbmd0aC0xXTtjLnBvcCgpO2JyZWFrfX19fSxsaW1pdHM6aWEsaGFzRXh0ZW5zaW9uOmZ1bmN0aW9uKGEpe3JldHVybiAwPD1pYS5leHRlbnNpb25zLmluZGV4T2YoYS50b0xvd2VyQ2FzZSgpKX0scmVhZDpnYSxkZXN0cm95OmZ1bmN0aW9uKCl7US5sZW5ndGg9MDt1KCk7aGEmJihoYS5yZW1vdmVFdmVudExpc3RlbmVyKFwid2ViZ2xjb250ZXh0bG9zdFwiLExhKSxoYS5yZW1vdmVFdmVudExpc3RlbmVyKFwid2ViZ2xjb250ZXh0cmVzdG9yZWRcIix6YSkpO3NhLmNsZWFyKCk7bGEuY2xlYXIoKTtqYS5jbGVhcigpO2RhLmNsZWFyKCk7cmEuY2xlYXIoKTtrYS5jbGVhcigpO0cmJkcuY2xlYXIoKTtYLmZvckVhY2goZnVuY3Rpb24oYSl7YSgpfSl9LFxuX2dsOnEsX3JlZnJlc2g6QWEscG9sbDpmdW5jdGlvbigpe0soKTtHJiZHLnVwZGF0ZSgpfSxub3c6dmEsc3RhdHM6V30pO2Yub25Eb25lKG51bGwsUyk7cmV0dXJuIFN9fSx7XCIuL2xpYi9hdHRyaWJ1dGVcIjoxLFwiLi9saWIvYnVmZmVyXCI6MixcIi4vbGliL2NvcmVcIjo3LFwiLi9saWIvZHluYW1pY1wiOjgsXCIuL2xpYi9lbGVtZW50c1wiOjksXCIuL2xpYi9leHRlbnNpb25cIjoxMCxcIi4vbGliL2ZyYW1lYnVmZmVyXCI6MTEsXCIuL2xpYi9saW1pdHNcIjoxMixcIi4vbGliL3JlYWRcIjoxMyxcIi4vbGliL3JlbmRlcmJ1ZmZlclwiOjE0LFwiLi9saWIvc2hhZGVyXCI6MTUsXCIuL2xpYi9zdGF0c1wiOjE2LFwiLi9saWIvc3RyaW5nc1wiOjE3LFwiLi9saWIvdGV4dHVyZVwiOjE4LFwiLi9saWIvdGltZXJcIjoxOSxcIi4vbGliL3V0aWwvY2xvY2tcIjoyMCxcIi4vbGliL3V0aWwvZXh0ZW5kXCI6MjIsXCIuL2xpYi91dGlsL3JhZlwiOjI5LFwiLi9saWIvd2ViZ2xcIjozMn1dfSx7fSxbMzNdKSgzMyl9KTtcbiJdfQ==
},{}]},{},[])
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2hvbWUvYWRtaW4vYnJvd3NlcmlmeS1jZG4vbm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2Jyb3dzZXItcGFjay9fcHJlbHVkZS5qcyIsInJlZ2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIihmdW5jdGlvbiAoZ2xvYmFsKXtcbihmdW5jdGlvbihPYSl7XCJvYmplY3RcIj09PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1PYSgpOlwiZnVuY3Rpb25cIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLE9hKTooXCJ1bmRlZmluZWRcIiE9PXR5cGVvZiB3aW5kb3c/d2luZG93OlwidW5kZWZpbmVkXCIhPT10eXBlb2YgZ2xvYmFsP2dsb2JhbDpcInVuZGVmaW5lZFwiIT09dHlwZW9mIHNlbGY/c2VsZjp0aGlzKS5jcmVhdGVSRUdMPU9hKCl9KShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBmKHAsdSxsKXtmdW5jdGlvbiBrKGMsYSl7aWYoIXVbY10pe2lmKCFwW2NdKXt2YXIgYj1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFhJiZiKXJldHVybiBiKGMsITApO2lmKHgpcmV0dXJuIHgoYywhMCk7Yj1FcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrYytcIidcIik7dGhyb3cgYi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGI7fWI9XG51W2NdPXtleHBvcnRzOnt9fTtwW2NdWzBdLmNhbGwoYi5leHBvcnRzLGZ1bmN0aW9uKGEpe3ZhciBiPXBbY11bMV1bYV07cmV0dXJuIGsoYj9iOmEpfSxiLGIuZXhwb3J0cyxmLHAsdSxsKX1yZXR1cm4gdVtjXS5leHBvcnRzfWZvcih2YXIgeD1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLHI9MDtyPGwubGVuZ3RoO3IrKylrKGxbcl0pO3JldHVybiBrfSh7MTpbZnVuY3Rpb24oZixwLHUpe2Z1bmN0aW9uIGwoKXt0aGlzLnc9dGhpcy56PXRoaXMueT10aGlzLng9dGhpcy5zdGF0ZT0wO3RoaXMuYnVmZmVyPW51bGw7dGhpcy5zaXplPTA7dGhpcy5ub3JtYWxpemVkPSExO3RoaXMudHlwZT01MTI2O3RoaXMuZGl2aXNvcj10aGlzLnN0cmlkZT10aGlzLm9mZnNldD0wfXAuZXhwb3J0cz1mdW5jdGlvbihrLHgscixjLGEpe2s9ci5tYXhBdHRyaWJ1dGVzO3g9QXJyYXkoayk7Zm9yKHI9MDtyPGs7KytyKXhbcl09bmV3IGw7cmV0dXJue1JlY29yZDpsLHNjb3BlOnt9LHN0YXRlOnh9fX0sXG57fV0sMjpbZnVuY3Rpb24oZixwLHUpe2Z1bmN0aW9uIGwoYyl7cmV0dXJuIHRbT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGMpXXwwfWZ1bmN0aW9uIGsoYyxhKXtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYiljW2JdPWFbYl19ZnVuY3Rpb24geChjLGEsYixrLGwscix4KXtmb3IodmFyIGc9MCxoPTA7aDxiOysraClmb3IodmFyIGY9MDtmPGs7KytmKWNbZysrXT1hW2wqaCtyKmYreF19dmFyIHI9ZihcIi4vdXRpbC9pcy10eXBlZC1hcnJheVwiKSxjPWYoXCIuL3V0aWwvaXMtbmRhcnJheVwiKSxhPWYoXCIuL3V0aWwvdmFsdWVzXCIpLGI9ZihcIi4vdXRpbC9wb29sXCIpO3U9ZihcIi4vdXRpbC9mbGF0dGVuXCIpO3ZhciBGPXUuZmxhdHRlbixNPXUuc2hhcGUsdD1mKFwiLi9jb25zdGFudHMvYXJyYXl0eXBlcy5qc29uXCIpLHk9ZihcIi4vY29uc3RhbnRzL2R0eXBlcy5qc29uXCIpLGc9ZihcIi4vY29uc3RhbnRzL3VzYWdlLmpzb25cIiksRT1bXTtFWzUxMjBdPTE7RVs1MTIyXT0yO0VbNTEyNF09XG40O0VbNTEyMV09MTtFWzUxMjNdPTI7RVs1MTI1XT00O0VbNTEyNl09NDtwLmV4cG9ydHM9ZnVuY3Rpb24oZix0LG4pe2Z1bmN0aW9uIG0oYyl7dGhpcy5pZD1IKys7dGhpcy5idWZmZXI9Zi5jcmVhdGVCdWZmZXIoKTt0aGlzLnR5cGU9Yzt0aGlzLnVzYWdlPTM1MDQ0O3RoaXMuYnl0ZUxlbmd0aD0wO3RoaXMuZGltZW5zaW9uPTE7dGhpcy5kdHlwZT01MTIxO3RoaXMucGVyc2lzdGVudERhdGE9bnVsbDtuLnByb2ZpbGUmJih0aGlzLnN0YXRzPXtzaXplOjB9KX1mdW5jdGlvbiBCKGMsYSxiKXtjLmJ5dGVMZW5ndGg9YS5ieXRlTGVuZ3RoO2YuYnVmZmVyRGF0YShjLnR5cGUsYSxiKX1mdW5jdGlvbiBwKGEsaCxtLGYsZyxuKXthLnVzYWdlPW07aWYoQXJyYXkuaXNBcnJheShoKSl7aWYoYS5kdHlwZT1mfHw1MTI2LDA8aC5sZW5ndGgpaWYoQXJyYXkuaXNBcnJheShoWzBdKSl7Zz1NKGgpO2Zvcih2YXIgSz1mPTE7SzxnLmxlbmd0aDsrK0spZio9Z1tLXTthLmRpbWVuc2lvbj1mO2g9RihoLFxuZyxhLmR0eXBlKTtCKGEsaCxtKTtuP2EucGVyc2lzdGVudERhdGE9aDpiLmZyZWVUeXBlKGgpfWVsc2VcIm51bWJlclwiPT09dHlwZW9mIGhbMF0/KGEuZGltZW5zaW9uPWcsZz1iLmFsbG9jVHlwZShhLmR0eXBlLGgubGVuZ3RoKSxrKGcsaCksQihhLGcsbSksbj9hLnBlcnNpc3RlbnREYXRhPWc6Yi5mcmVlVHlwZShnKSk6cihoWzBdKSYmKGEuZGltZW5zaW9uPWhbMF0ubGVuZ3RoLGEuZHR5cGU9Znx8bChoWzBdKXx8NTEyNixoPUYoaCxbaC5sZW5ndGgsaFswXS5sZW5ndGhdLGEuZHR5cGUpLEIoYSxoLG0pLG4/YS5wZXJzaXN0ZW50RGF0YT1oOmIuZnJlZVR5cGUoaCkpfWVsc2UgaWYocihoKSlhLmR0eXBlPWZ8fGwoaCksYS5kaW1lbnNpb249ZyxCKGEsaCxtKSxuJiYoYS5wZXJzaXN0ZW50RGF0YT1uZXcgVWludDhBcnJheShuZXcgVWludDhBcnJheShoLmJ1ZmZlcikpKTtlbHNlIGlmKGMoaCkpe2c9aC5zaGFwZTt2YXIgQz1oLnN0cmlkZSxLPWgub2Zmc2V0LHk9MCxxPTAsUz0wLHQ9XG4wOzE9PT1nLmxlbmd0aD8oeT1nWzBdLHE9MSxTPUNbMF0sdD0wKToyPT09Zy5sZW5ndGgmJih5PWdbMF0scT1nWzFdLFM9Q1swXSx0PUNbMV0pO2EuZHR5cGU9Znx8bChoLmRhdGEpfHw1MTI2O2EuZGltZW5zaW9uPXE7Zz1iLmFsbG9jVHlwZShhLmR0eXBlLHkqcSk7eChnLGguZGF0YSx5LHEsUyx0LEspO0IoYSxnLG0pO24/YS5wZXJzaXN0ZW50RGF0YT1nOmIuZnJlZVR5cGUoZyl9fWZ1bmN0aW9uIEwoYyl7dC5idWZmZXJDb3VudC0tO2YuZGVsZXRlQnVmZmVyKGMuYnVmZmVyKTtjLmJ1ZmZlcj1udWxsO2RlbGV0ZSBoW2MuaWRdfXZhciBIPTAsaD17fTttLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7Zi5iaW5kQnVmZmVyKHRoaXMudHlwZSx0aGlzLmJ1ZmZlcil9O20ucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtMKHRoaXMpfTt2YXIgZmE9W107bi5wcm9maWxlJiYodC5nZXRUb3RhbEJ1ZmZlclNpemU9ZnVuY3Rpb24oKXt2YXIgYz0wO09iamVjdC5rZXlzKGgpLmZvckVhY2goZnVuY3Rpb24oYSl7Yys9XG5oW2FdLnN0YXRzLnNpemV9KTtyZXR1cm4gY30pO3JldHVybntjcmVhdGU6ZnVuY3Rpb24oYSxCLEgsZmEpe2Z1bmN0aW9uIHUoYSl7dmFyIGg9MzUwNDQsYj1udWxsLHE9MCxrPTAsbT0xO0FycmF5LmlzQXJyYXkoYSl8fHIoYSl8fGMoYSk/Yj1hOlwibnVtYmVyXCI9PT10eXBlb2YgYT9xPWF8MDphJiYoXCJkYXRhXCJpbiBhJiYoYj1hLmRhdGEpLFwidXNhZ2VcImluIGEmJihoPWdbYS51c2FnZV0pLFwidHlwZVwiaW4gYSYmKGs9eVthLnR5cGVdKSxcImRpbWVuc2lvblwiaW4gYSYmKG09YS5kaW1lbnNpb258MCksXCJsZW5ndGhcImluIGEmJihxPWEubGVuZ3RofDApKTtELmJpbmQoKTtiP3AoRCxiLGgsayxtLGZhKTooZi5idWZmZXJEYXRhKEQudHlwZSxxLGgpLEQuZHR5cGU9a3x8NTEyMSxELnVzYWdlPWgsRC5kaW1lbnNpb249bSxELmJ5dGVMZW5ndGg9cSk7bi5wcm9maWxlJiYoRC5zdGF0cy5zaXplPUQuYnl0ZUxlbmd0aCpFW0QuZHR5cGVdKTtyZXR1cm4gdX10LmJ1ZmZlckNvdW50Kys7dmFyIEQ9XG5uZXcgbShCKTtoW0QuaWRdPUQ7SHx8dShhKTt1Ll9yZWdsVHlwZT1cImJ1ZmZlclwiO3UuX2J1ZmZlcj1EO3Uuc3ViZGF0YT1mdW5jdGlvbihhLGgpe3ZhciBtPShofHwwKXwwLHE7RC5iaW5kKCk7aWYoQXJyYXkuaXNBcnJheShhKSl7aWYoMDxhLmxlbmd0aClpZihcIm51bWJlclwiPT09dHlwZW9mIGFbMF0pe3ZhciBnPWIuYWxsb2NUeXBlKEQuZHR5cGUsYS5sZW5ndGgpO2soZyxhKTtmLmJ1ZmZlclN1YkRhdGEoRC50eXBlLG0sZyk7Yi5mcmVlVHlwZShnKX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoYVswXSl8fHIoYVswXSkpcT1NKGEpLGc9RihhLHEsRC5kdHlwZSksZi5idWZmZXJTdWJEYXRhKEQudHlwZSxtLGcpLGIuZnJlZVR5cGUoZyl9ZWxzZSBpZihyKGEpKWYuYnVmZmVyU3ViRGF0YShELnR5cGUsbSxhKTtlbHNlIGlmKGMoYSkpe3E9YS5zaGFwZTt2YXIgbj1hLnN0cmlkZSxCPWc9MCx5PTAsdD0wOzE9PT1xLmxlbmd0aD8oZz1xWzBdLEI9MSx5PW5bMF0sdD0wKToyPT09cS5sZW5ndGgmJlxuKGc9cVswXSxCPXFbMV0seT1uWzBdLHQ9blsxXSk7cT1BcnJheS5pc0FycmF5KGEuZGF0YSk/RC5kdHlwZTpsKGEuZGF0YSk7cT1iLmFsbG9jVHlwZShxLGcqQik7eChxLGEuZGF0YSxnLEIseSx0LGEub2Zmc2V0KTtmLmJ1ZmZlclN1YkRhdGEoRC50eXBlLG0scSk7Yi5mcmVlVHlwZShxKX1yZXR1cm4gdX07bi5wcm9maWxlJiYodS5zdGF0cz1ELnN0YXRzKTt1LmRlc3Ryb3k9ZnVuY3Rpb24oKXtMKEQpfTtyZXR1cm4gdX0sY3JlYXRlU3RyZWFtOmZ1bmN0aW9uKGEsYyl7dmFyIGg9ZmEucG9wKCk7aHx8KGg9bmV3IG0oYSkpO2guYmluZCgpO3AoaCxjLDM1MDQwLDAsMSwhMSk7cmV0dXJuIGh9LGRlc3Ryb3lTdHJlYW06ZnVuY3Rpb24oYSl7ZmEucHVzaChhKX0sY2xlYXI6ZnVuY3Rpb24oKXthKGgpLmZvckVhY2goTCk7ZmEuZm9yRWFjaChMKX0sZ2V0QnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBhJiZhLl9idWZmZXIgaW5zdGFuY2VvZiBtP2EuX2J1ZmZlcjpudWxsfSxyZXN0b3JlOmZ1bmN0aW9uKCl7YShoKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EuYnVmZmVyPVxuZi5jcmVhdGVCdWZmZXIoKTtmLmJpbmRCdWZmZXIoYS50eXBlLGEuYnVmZmVyKTtmLmJ1ZmZlckRhdGEoYS50eXBlLGEucGVyc2lzdGVudERhdGF8fGEuYnl0ZUxlbmd0aCxhLnVzYWdlKX0pfSxfaW5pdEJ1ZmZlcjpwfX19LHtcIi4vY29uc3RhbnRzL2FycmF5dHlwZXMuanNvblwiOjMsXCIuL2NvbnN0YW50cy9kdHlwZXMuanNvblwiOjQsXCIuL2NvbnN0YW50cy91c2FnZS5qc29uXCI6NixcIi4vdXRpbC9mbGF0dGVuXCI6MjMsXCIuL3V0aWwvaXMtbmRhcnJheVwiOjI1LFwiLi91dGlsL2lzLXR5cGVkLWFycmF5XCI6MjYsXCIuL3V0aWwvcG9vbFwiOjI4LFwiLi91dGlsL3ZhbHVlc1wiOjMxfV0sMzpbZnVuY3Rpb24oZixwLHUpe3AuZXhwb3J0cz17XCJbb2JqZWN0IEludDhBcnJheV1cIjo1MTIwLFwiW29iamVjdCBJbnQxNkFycmF5XVwiOjUxMjIsXCJbb2JqZWN0IEludDMyQXJyYXldXCI6NTEyNCxcIltvYmplY3QgVWludDhBcnJheV1cIjo1MTIxLFwiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV1cIjo1MTIxLFwiW29iamVjdCBVaW50MTZBcnJheV1cIjo1MTIzLFxuXCJbb2JqZWN0IFVpbnQzMkFycmF5XVwiOjUxMjUsXCJbb2JqZWN0IEZsb2F0MzJBcnJheV1cIjo1MTI2LFwiW29iamVjdCBGbG9hdDY0QXJyYXldXCI6NTEyMSxcIltvYmplY3QgQXJyYXlCdWZmZXJdXCI6NTEyMX19LHt9XSw0OltmdW5jdGlvbihmLHAsdSl7cC5leHBvcnRzPXtpbnQ4OjUxMjAsaW50MTY6NTEyMixpbnQzMjo1MTI0LHVpbnQ4OjUxMjEsdWludDE2OjUxMjMsdWludDMyOjUxMjUsXCJmbG9hdFwiOjUxMjYsZmxvYXQzMjo1MTI2fX0se31dLDU6W2Z1bmN0aW9uKGYscCx1KXtwLmV4cG9ydHM9e3BvaW50czowLHBvaW50OjAsbGluZXM6MSxsaW5lOjEsXCJsaW5lIGxvb3BcIjoyLFwibGluZSBzdHJpcFwiOjMsdHJpYW5nbGVzOjQsdHJpYW5nbGU6NCxcInRyaWFuZ2xlIHN0cmlwXCI6NSxcInRyaWFuZ2xlIGZhblwiOjZ9fSx7fV0sNjpbZnVuY3Rpb24oZixwLHUpe3AuZXhwb3J0cz17XCJzdGF0aWNcIjozNTA0NCxkeW5hbWljOjM1MDQ4LHN0cmVhbTozNTA0MH19LHt9XSw3OltmdW5jdGlvbihmLHAsdSl7ZnVuY3Rpb24gbChhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKXx8XG5NKGEpfHx0KGEpfWZ1bmN0aW9uIGsoYSl7cmV0dXJuIGEuc29ydChmdW5jdGlvbihhLGMpe3JldHVyblwidmlld3BvcnRcIj09PWE/LTE6XCJ2aWV3cG9ydFwiPT09Yz8xOmE8Yz8tMToxfSl9ZnVuY3Rpb24geChhLGMsYixrKXt0aGlzLnRoaXNEZXA9YTt0aGlzLmNvbnRleHREZXA9Yzt0aGlzLnByb3BEZXA9Yjt0aGlzLmFwcGVuZD1rfWZ1bmN0aW9uIHIoYSl7cmV0dXJuIGEmJiEoYS50aGlzRGVwfHxhLmNvbnRleHREZXB8fGEucHJvcERlcCl9ZnVuY3Rpb24gYyhhKXtyZXR1cm4gbmV3IHgoITEsITEsITEsYSl9ZnVuY3Rpb24gYShhLGMpe3ZhciBiPWEudHlwZTtyZXR1cm4gMD09PWI/KGI9YS5kYXRhLmxlbmd0aCxuZXcgeCghMCwxPD1iLDI8PWIsYykpOjQ9PT1iPyhiPWEuZGF0YSxuZXcgeChiLnRoaXNEZXAsYi5jb250ZXh0RGVwLGIucHJvcERlcCxjKSk6bmV3IHgoMz09PWIsMj09PWIsMT09PWIsYyl9dmFyIGI9ZihcIi4vdXRpbC9jb2RlZ2VuXCIpLEY9ZihcIi4vdXRpbC9sb29wXCIpLFxuTT1mKFwiLi91dGlsL2lzLXR5cGVkLWFycmF5XCIpLHQ9ZihcIi4vdXRpbC9pcy1uZGFycmF5XCIpLHk9ZihcIi4vdXRpbC9pcy1hcnJheS1saWtlXCIpLGc9ZihcIi4vZHluYW1pY1wiKSxFPWYoXCIuL2NvbnN0YW50cy9wcmltaXRpdmVzLmpzb25cIiksQz1mKFwiLi9jb25zdGFudHMvZHR5cGVzLmpzb25cIiksTj1bXCJ4XCIsXCJ5XCIsXCJ6XCIsXCJ3XCJdLG49XCJibGVuZC5mdW5jIGJsZW5kLmVxdWF0aW9uIHN0ZW5jaWwuZnVuYyBzdGVuY2lsLm9wRnJvbnQgc3RlbmNpbC5vcEJhY2sgc2FtcGxlLmNvdmVyYWdlIHZpZXdwb3J0IHNjaXNzb3IuYm94IHBvbHlnb25PZmZzZXQub2Zmc2V0XCIuc3BsaXQoXCIgXCIpLG09ezA6MCwxOjEsemVybzowLG9uZToxLFwic3JjIGNvbG9yXCI6NzY4LFwib25lIG1pbnVzIHNyYyBjb2xvclwiOjc2OSxcInNyYyBhbHBoYVwiOjc3MCxcIm9uZSBtaW51cyBzcmMgYWxwaGFcIjo3NzEsXCJkc3QgY29sb3JcIjo3NzQsXCJvbmUgbWludXMgZHN0IGNvbG9yXCI6Nzc1LFwiZHN0IGFscGhhXCI6NzcyLFwib25lIG1pbnVzIGRzdCBhbHBoYVwiOjc3MyxcblwiY29uc3RhbnQgY29sb3JcIjozMjc2OSxcIm9uZSBtaW51cyBjb25zdGFudCBjb2xvclwiOjMyNzcwLFwiY29uc3RhbnQgYWxwaGFcIjozMjc3MSxcIm9uZSBtaW51cyBjb25zdGFudCBhbHBoYVwiOjMyNzcyLFwic3JjIGFscGhhIHNhdHVyYXRlXCI6Nzc2fSxCPXtuZXZlcjo1MTIsbGVzczo1MTMsXCI8XCI6NTEzLGVxdWFsOjUxNCxcIj1cIjo1MTQsXCI9PVwiOjUxNCxcIj09PVwiOjUxNCxsZXF1YWw6NTE1LFwiPD1cIjo1MTUsZ3JlYXRlcjo1MTYsXCI+XCI6NTE2LG5vdGVxdWFsOjUxNyxcIiE9XCI6NTE3LFwiIT09XCI6NTE3LGdlcXVhbDo1MTgsXCI+PVwiOjUxOCxhbHdheXM6NTE5fSxZPXswOjAsemVybzowLGtlZXA6NzY4MCxyZXBsYWNlOjc2ODEsaW5jcmVtZW50Ojc2ODIsZGVjcmVtZW50Ojc2ODMsXCJpbmNyZW1lbnQgd3JhcFwiOjM0MDU1LFwiZGVjcmVtZW50IHdyYXBcIjozNDA1NixpbnZlcnQ6NTM4Nn0sTD17Y3c6MjMwNCxjY3c6MjMwNX0sSD1uZXcgeCghMSwhMSwhMSxmdW5jdGlvbigpe30pO3AuZXhwb3J0cz1mdW5jdGlvbihoLFxuZix0LHAsTSx1LFosRCxLLEFhLHZhLHEsUyxtYSxnYSl7ZnVuY3Rpb24gVyhkKXtyZXR1cm4gZC5yZXBsYWNlKFwiLlwiLFwiX1wiKX1mdW5jdGlvbiBSKGQsYSxjKXt2YXIgYj1XKGQpO3cucHVzaChkKTt6W2JdPWVbYl09ISFjO3dhW2JdPWF9ZnVuY3Rpb24gRyhkLGEsYyl7dmFyIGI9VyhkKTt3LnB1c2goZCk7QXJyYXkuaXNBcnJheShjKT8oZVtiXT1jLnNsaWNlKCkseltiXT1jLnNsaWNlKCkpOmVbYl09eltiXT1jO3hhW2JdPWF9ZnVuY3Rpb24gYmEoKXt2YXIgZD1iKCksYT1kLmxpbmssYz1kLmdsb2JhbDtkLmlkPVJhKys7ZC5iYXRjaElkPVwiMFwiO3ZhciBoPWEoUWEpLEE9ZC5zaGFyZWQ9e3Byb3BzOlwiYTBcIn07T2JqZWN0LmtleXMoUWEpLmZvckVhY2goZnVuY3Rpb24oZCl7QVtkXT1jLmRlZihoLFwiLlwiLGQpfSk7dmFyIEo9ZC5uZXh0PXt9LFA9ZC5jdXJyZW50PXt9O09iamVjdC5rZXlzKHhhKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe0FycmF5LmlzQXJyYXkoZVtkXSkmJihKW2RdPWMuZGVmKEEubmV4dCxcblwiLlwiLGQpLFBbZF09Yy5kZWYoQS5jdXJyZW50LFwiLlwiLGQpKX0pO3ZhciBTYT1kLmNvbnN0YW50cz17fTtPYmplY3Qua2V5cyhNYSkuZm9yRWFjaChmdW5jdGlvbihkKXtTYVtkXT1jLmRlZihKU09OLnN0cmluZ2lmeShNYVtkXSkpfSk7ZC5pbnZva2U9ZnVuY3Rpb24oZSxJKXtzd2l0Y2goSS50eXBlKXtjYXNlIDA6dmFyIGM9W1widGhpc1wiLEEuY29udGV4dCxBLnByb3BzLGQuYmF0Y2hJZF07cmV0dXJuIGUuZGVmKGEoSS5kYXRhKSxcIi5jYWxsKFwiLGMuc2xpY2UoMCxNYXRoLm1heChJLmRhdGEubGVuZ3RoKzEsNCkpLFwiKVwiKTtjYXNlIDE6cmV0dXJuIGUuZGVmKEEucHJvcHMsSS5kYXRhKTtjYXNlIDI6cmV0dXJuIGUuZGVmKEEuY29udGV4dCxJLmRhdGEpO2Nhc2UgMzpyZXR1cm4gZS5kZWYoXCJ0aGlzXCIsSS5kYXRhKTtjYXNlIDQ6cmV0dXJuIEkuZGF0YS5hcHBlbmQoZCxlKSxJLmRhdGEucmVmfX07ZC5hdHRyaWJDYWNoZT17fTt2YXIgST17fTtkLnNjb3BlQXR0cmliPWZ1bmN0aW9uKGQpe2Q9XG5mLmlkKGQpO2lmKGQgaW4gSSlyZXR1cm4gSVtkXTt2YXIgZT1BYS5zY29wZVtkXTtlfHwoZT1BYS5zY29wZVtkXT1uZXcgQmEpO3JldHVybiBJW2RdPWEoZSl9O3JldHVybiBkfWZ1bmN0aW9uIG5hKGQpe3ZhciBlPWRbXCJzdGF0aWNcIl07ZD1kLmR5bmFtaWM7dmFyIGI7aWYoXCJwcm9maWxlXCJpbiBlKXt2YXIgaD0hIWUucHJvZmlsZTtiPWMoZnVuY3Rpb24oZCxlKXtyZXR1cm4gaH0pO2IuZW5hYmxlPWh9ZWxzZSBpZihcInByb2ZpbGVcImluIGQpe3ZhciBBPWQucHJvZmlsZTtiPWEoQSxmdW5jdGlvbihkLGUpe3JldHVybiBkLmludm9rZShlLEEpfSl9cmV0dXJuIGJ9ZnVuY3Rpb24geWEoZCxlKXt2YXIgYj1kW1wic3RhdGljXCJdLGg9ZC5keW5hbWljO2lmKFwiZnJhbWVidWZmZXJcImluIGIpe3ZhciBBPWIuZnJhbWVidWZmZXI7cmV0dXJuIEE/KEE9RC5nZXRGcmFtZWJ1ZmZlcihBKSxjKGZ1bmN0aW9uKGQsZSl7dmFyIGE9ZC5saW5rKEEpLHY9ZC5zaGFyZWQ7ZS5zZXQodi5mcmFtZWJ1ZmZlcixcblwiLm5leHRcIixhKTt2PXYuY29udGV4dDtlLnNldCh2LFwiLmZyYW1lYnVmZmVyV2lkdGhcIixhK1wiLndpZHRoXCIpO2Uuc2V0KHYsXCIuZnJhbWVidWZmZXJIZWlnaHRcIixhK1wiLmhlaWdodFwiKTtyZXR1cm4gYX0pKTpjKGZ1bmN0aW9uKGQsZSl7dmFyIGE9ZC5zaGFyZWQ7ZS5zZXQoYS5mcmFtZWJ1ZmZlcixcIi5uZXh0XCIsXCJudWxsXCIpO2E9YS5jb250ZXh0O2Uuc2V0KGEsXCIuZnJhbWVidWZmZXJXaWR0aFwiLGErXCIuZHJhd2luZ0J1ZmZlcldpZHRoXCIpO2Uuc2V0KGEsXCIuZnJhbWVidWZmZXJIZWlnaHRcIixhK1wiLmRyYXdpbmdCdWZmZXJIZWlnaHRcIik7cmV0dXJuXCJudWxsXCJ9KX1pZihcImZyYW1lYnVmZmVyXCJpbiBoKXt2YXIgSj1oLmZyYW1lYnVmZmVyO3JldHVybiBhKEosZnVuY3Rpb24oZCxlKXt2YXIgYT1kLmludm9rZShlLEopLHY9ZC5zaGFyZWQsYz12LmZyYW1lYnVmZmVyLGE9ZS5kZWYoYyxcIi5nZXRGcmFtZWJ1ZmZlcihcIixhLFwiKVwiKTtlLnNldChjLFwiLm5leHRcIixhKTt2PXYuY29udGV4dDtlLnNldCh2LFxuXCIuZnJhbWVidWZmZXJXaWR0aFwiLGErXCI/XCIrYStcIi53aWR0aDpcIit2K1wiLmRyYXdpbmdCdWZmZXJXaWR0aFwiKTtlLnNldCh2LFwiLmZyYW1lYnVmZmVySGVpZ2h0XCIsYStcIj9cIithK1wiLmhlaWdodDpcIit2K1wiLmRyYXdpbmdCdWZmZXJIZWlnaHRcIik7cmV0dXJuIGF9KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBVKGQsZSxjKXtmdW5jdGlvbiBiKGQpe2lmKGQgaW4gaCl7dmFyIEk9aFtkXTtkPSEwO3ZhciBjPUkueHwwLHFhPUkueXwwLFAsYWE7XCJ3aWR0aFwiaW4gST9QPUkud2lkdGh8MDpkPSExO1wiaGVpZ2h0XCJpbiBJP2FhPUkuaGVpZ2h0fDA6ZD0hMTtyZXR1cm4gbmV3IHgoIWQmJmUmJmUudGhpc0RlcCwhZCYmZSYmZS5jb250ZXh0RGVwLCFkJiZlJiZlLnByb3BEZXAsZnVuY3Rpb24oZCxlKXt2YXIgYT1kLnNoYXJlZC5jb250ZXh0LHY9UDtcIndpZHRoXCJpbiBJfHwodj1lLmRlZihhLFwiLlwiLFwiZnJhbWVidWZmZXJXaWR0aFwiLFwiLVwiLGMpKTt2YXIgYj1hYTtcImhlaWdodFwiaW4gSXx8KGI9ZS5kZWYoYSxcblwiLlwiLFwiZnJhbWVidWZmZXJIZWlnaHRcIixcIi1cIixxYSkpO3JldHVybltjLHFhLHYsYl19KX1pZihkIGluIEope3ZhciB3PUpbZF07ZD1hKHcsZnVuY3Rpb24oZCxlKXt2YXIgYT1kLmludm9rZShlLHcpLEk9ZC5zaGFyZWQuY29udGV4dCxjPWUuZGVmKGEsXCIueHwwXCIpLHY9ZS5kZWYoYSxcIi55fDBcIikscWE9ZS5kZWYoJ1wid2lkdGhcIiBpbiAnLGEsXCI/XCIsYSxcIi53aWR0aHwwOlwiLFwiKFwiLEksXCIuXCIsXCJmcmFtZWJ1ZmZlcldpZHRoXCIsXCItXCIsYyxcIilcIiksYT1lLmRlZignXCJoZWlnaHRcIiBpbiAnLGEsXCI/XCIsYSxcIi5oZWlnaHR8MDpcIixcIihcIixJLFwiLlwiLFwiZnJhbWVidWZmZXJIZWlnaHRcIixcIi1cIix2LFwiKVwiKTtyZXR1cm5bYyx2LHFhLGFdfSk7ZSYmKGQudGhpc0RlcD1kLnRoaXNEZXB8fGUudGhpc0RlcCxkLmNvbnRleHREZXA9ZC5jb250ZXh0RGVwfHxlLmNvbnRleHREZXAsZC5wcm9wRGVwPWQucHJvcERlcHx8ZS5wcm9wRGVwKTtyZXR1cm4gZH1yZXR1cm4gZT9uZXcgeChlLnRoaXNEZXAsZS5jb250ZXh0RGVwLFxuZS5wcm9wRGVwLGZ1bmN0aW9uKGQsZSl7dmFyIGE9ZC5zaGFyZWQuY29udGV4dDtyZXR1cm5bMCwwLGUuZGVmKGEsXCIuXCIsXCJmcmFtZWJ1ZmZlcldpZHRoXCIpLGUuZGVmKGEsXCIuXCIsXCJmcmFtZWJ1ZmZlckhlaWdodFwiKV19KTpudWxsfXZhciBoPWRbXCJzdGF0aWNcIl0sSj1kLmR5bmFtaWM7aWYoZD1iKFwidmlld3BvcnRcIikpe3ZhciBQPWQ7ZD1uZXcgeChkLnRoaXNEZXAsZC5jb250ZXh0RGVwLGQucHJvcERlcCxmdW5jdGlvbihkLGUpe3ZhciBhPVAuYXBwZW5kKGQsZSksYz1kLnNoYXJlZC5jb250ZXh0O2Uuc2V0KGMsXCIudmlld3BvcnRXaWR0aFwiLGFbMl0pO2Uuc2V0KGMsXCIudmlld3BvcnRIZWlnaHRcIixhWzNdKTtyZXR1cm4gYX0pfXJldHVybnt2aWV3cG9ydDpkLHNjaXNzb3JfYm94OmIoXCJzY2lzc29yLmJveFwiKX19ZnVuY3Rpb24gaWEoZCl7ZnVuY3Rpb24gZShkKXtpZihkIGluIGIpe3ZhciBJPWYuaWQoYltkXSk7ZD1jKGZ1bmN0aW9uKCl7cmV0dXJuIEl9KTtkLmlkPUk7cmV0dXJuIGR9aWYoZCBpblxuaCl7dmFyIHY9aFtkXTtyZXR1cm4gYSh2LGZ1bmN0aW9uKGQsZSl7dmFyIGE9ZC5pbnZva2UoZSx2KTtyZXR1cm4gZS5kZWYoZC5zaGFyZWQuc3RyaW5ncyxcIi5pZChcIixhLFwiKVwiKX0pfXJldHVybiBudWxsfXZhciBiPWRbXCJzdGF0aWNcIl0saD1kLmR5bmFtaWMsQT1lKFwiZnJhZ1wiKSxKPWUoXCJ2ZXJ0XCIpLFA9bnVsbDtyKEEpJiZyKEopPyhQPXZhLnByb2dyYW0oSi5pZCxBLmlkKSxkPWMoZnVuY3Rpb24oZCxlKXtyZXR1cm4gZC5saW5rKFApfSkpOmQ9bmV3IHgoQSYmQS50aGlzRGVwfHxKJiZKLnRoaXNEZXAsQSYmQS5jb250ZXh0RGVwfHxKJiZKLmNvbnRleHREZXAsQSYmQS5wcm9wRGVwfHxKJiZKLnByb3BEZXAsZnVuY3Rpb24oZCxlKXt2YXIgYT1kLnNoYXJlZC5zaGFkZXIsYztjPUE/QS5hcHBlbmQoZCxlKTplLmRlZihhLFwiLlwiLFwiZnJhZ1wiKTt2YXIgdjt2PUo/Si5hcHBlbmQoZCxlKTplLmRlZihhLFwiLlwiLFwidmVydFwiKTtyZXR1cm4gZS5kZWYoYStcIi5wcm9ncmFtKFwiK3YrXCIsXCIrYytcblwiKVwiKX0pO3JldHVybntmcmFnOkEsdmVydDpKLHByb2dWYXI6ZCxwcm9ncmFtOlB9fWZ1bmN0aW9uIGthKGQsZSl7ZnVuY3Rpb24gYihkLGUpe2lmKGQgaW4gaCl7dmFyIHY9aFtkXXwwO3JldHVybiBjKGZ1bmN0aW9uKGQsYSl7ZSYmKGQuT0ZGU0VUPXYpO3JldHVybiB2fSl9aWYoZCBpbiBBKXt2YXIgcWE9QVtkXTtyZXR1cm4gYShxYSxmdW5jdGlvbihkLGEpe3ZhciBjPWQuaW52b2tlKGEscWEpO2UmJihkLk9GRlNFVD1jKTtyZXR1cm4gY30pfXJldHVybiBlJiZKP2MoZnVuY3Rpb24oZCxlKXtkLk9GRlNFVD1cIjBcIjtyZXR1cm4gMH0pOm51bGx9dmFyIGg9ZFtcInN0YXRpY1wiXSxBPWQuZHluYW1pYyxKPWZ1bmN0aW9uKCl7aWYoXCJlbGVtZW50c1wiaW4gaCl7dmFyIGQ9aC5lbGVtZW50cztsKGQpP2Q9dS5nZXRFbGVtZW50cyh1LmNyZWF0ZShkLCEwKSk6ZCYmKGQ9dS5nZXRFbGVtZW50cyhkKSk7dmFyIGU9YyhmdW5jdGlvbihlLGEpe2lmKGQpe3ZhciBjPWUubGluayhkKTtyZXR1cm4gZS5FTEVNRU5UUz1cbmN9cmV0dXJuIGUuRUxFTUVOVFM9bnVsbH0pO2UudmFsdWU9ZDtyZXR1cm4gZX1pZihcImVsZW1lbnRzXCJpbiBBKXt2YXIgdj1BLmVsZW1lbnRzO3JldHVybiBhKHYsZnVuY3Rpb24oZCxlKXt2YXIgYT1kLnNoYXJlZCxjPWEuaXNCdWZmZXJBcmdzLGE9YS5lbGVtZW50cyxJPWQuaW52b2tlKGUsdiksYj1lLmRlZihcIm51bGxcIiksYz1lLmRlZihjLFwiKFwiLEksXCIpXCIpLEk9ZC5jb25kKGMpLnRoZW4oYixcIj1cIixhLFwiLmNyZWF0ZVN0cmVhbShcIixJLFwiKTtcIilbXCJlbHNlXCJdKGIsXCI9XCIsYSxcIi5nZXRFbGVtZW50cyhcIixJLFwiKTtcIik7ZS5lbnRyeShJKTtlLmV4aXQoZC5jb25kKGMpLnRoZW4oYSxcIi5kZXN0cm95U3RyZWFtKFwiLGIsXCIpO1wiKSk7cmV0dXJuIGQuRUxFTUVOVFM9Yn0pfXJldHVybiBudWxsfSgpLFA9YihcIm9mZnNldFwiLCEwKTtyZXR1cm57ZWxlbWVudHM6SixwcmltaXRpdmU6ZnVuY3Rpb24oKXtpZihcInByaW1pdGl2ZVwiaW4gaCl7dmFyIGQ9aC5wcmltaXRpdmU7cmV0dXJuIGMoZnVuY3Rpb24oZSxcbmEpe3JldHVybiBFW2RdfSl9aWYoXCJwcmltaXRpdmVcImluIEEpe3ZhciBlPUEucHJpbWl0aXZlO3JldHVybiBhKGUsZnVuY3Rpb24oZCxhKXt2YXIgYz1kLmNvbnN0YW50cy5wcmltVHlwZXMsdj1kLmludm9rZShhLGUpO3JldHVybiBhLmRlZihjLFwiW1wiLHYsXCJdXCIpfSl9cmV0dXJuIEo/cihKKT9KLnZhbHVlP2MoZnVuY3Rpb24oZCxlKXtyZXR1cm4gZS5kZWYoZC5FTEVNRU5UUyxcIi5wcmltVHlwZVwiKX0pOmMoZnVuY3Rpb24oKXtyZXR1cm4gNH0pOm5ldyB4KEoudGhpc0RlcCxKLmNvbnRleHREZXAsSi5wcm9wRGVwLGZ1bmN0aW9uKGQsZSl7dmFyIGE9ZC5FTEVNRU5UUztyZXR1cm4gZS5kZWYoYSxcIj9cIixhLFwiLnByaW1UeXBlOlwiLDQpfSk6bnVsbH0oKSxjb3VudDpmdW5jdGlvbigpe2lmKFwiY291bnRcImluIGgpe3ZhciBkPWguY291bnR8MDtyZXR1cm4gYyhmdW5jdGlvbigpe3JldHVybiBkfSl9aWYoXCJjb3VudFwiaW4gQSl7dmFyIGU9QS5jb3VudDtyZXR1cm4gYShlLGZ1bmN0aW9uKGQsXG5hKXtyZXR1cm4gZC5pbnZva2UoYSxlKX0pfXJldHVybiBKP3IoSik/Sj9QP25ldyB4KFAudGhpc0RlcCxQLmNvbnRleHREZXAsUC5wcm9wRGVwLGZ1bmN0aW9uKGQsZSl7cmV0dXJuIGUuZGVmKGQuRUxFTUVOVFMsXCIudmVydENvdW50LVwiLGQuT0ZGU0VUKX0pOmMoZnVuY3Rpb24oZCxlKXtyZXR1cm4gZS5kZWYoZC5FTEVNRU5UUyxcIi52ZXJ0Q291bnRcIil9KTpjKGZ1bmN0aW9uKCl7cmV0dXJuLTF9KTpuZXcgeChKLnRoaXNEZXB8fFAudGhpc0RlcCxKLmNvbnRleHREZXB8fFAuY29udGV4dERlcCxKLnByb3BEZXB8fFAucHJvcERlcCxmdW5jdGlvbihkLGUpe3ZhciBhPWQuRUxFTUVOVFM7cmV0dXJuIGQuT0ZGU0VUP2UuZGVmKGEsXCI/XCIsYSxcIi52ZXJ0Q291bnQtXCIsZC5PRkZTRVQsXCI6LTFcIik6ZS5kZWYoYSxcIj9cIixhLFwiLnZlcnRDb3VudDotMVwiKX0pOm51bGx9KCksaW5zdGFuY2VzOmIoXCJpbnN0YW5jZXNcIiwhMSksb2Zmc2V0OlB9fWZ1bmN0aW9uIHJhKGQsZSl7dmFyIGI9ZFtcInN0YXRpY1wiXSxcbmg9ZC5keW5hbWljLEE9e307dy5mb3JFYWNoKGZ1bmN0aW9uKGQpe2Z1bmN0aW9uIGUoSSx3KXtpZihkIGluIGIpe3ZhciBxYT1JKGJbZF0pO0Fbdl09YyhmdW5jdGlvbigpe3JldHVybiBxYX0pfWVsc2UgaWYoZCBpbiBoKXt2YXIgUD1oW2RdO0Fbdl09YShQLGZ1bmN0aW9uKGQsZSl7cmV0dXJuIHcoZCxlLGQuaW52b2tlKGUsUCkpfSl9fXZhciB2PVcoZCk7c3dpdGNoKGQpe2Nhc2UgXCJjdWxsLmVuYWJsZVwiOmNhc2UgXCJibGVuZC5lbmFibGVcIjpjYXNlIFwiZGl0aGVyXCI6Y2FzZSBcInN0ZW5jaWwuZW5hYmxlXCI6Y2FzZSBcImRlcHRoLmVuYWJsZVwiOmNhc2UgXCJzY2lzc29yLmVuYWJsZVwiOmNhc2UgXCJwb2x5Z29uT2Zmc2V0LmVuYWJsZVwiOmNhc2UgXCJzYW1wbGUuYWxwaGFcIjpjYXNlIFwic2FtcGxlLmVuYWJsZVwiOmNhc2UgXCJkZXB0aC5tYXNrXCI6cmV0dXJuIGUoZnVuY3Rpb24oZCl7cmV0dXJuIGR9LGZ1bmN0aW9uKGQsZSxhKXtyZXR1cm4gYX0pO2Nhc2UgXCJkZXB0aC5mdW5jXCI6cmV0dXJuIGUoZnVuY3Rpb24oZCl7cmV0dXJuIEJbZF19LFxuZnVuY3Rpb24oZCxlLGEpe3JldHVybiBlLmRlZihkLmNvbnN0YW50cy5jb21wYXJlRnVuY3MsXCJbXCIsYSxcIl1cIil9KTtjYXNlIFwiZGVwdGgucmFuZ2VcIjpyZXR1cm4gZShmdW5jdGlvbihkKXtyZXR1cm4gZH0sZnVuY3Rpb24oZCxlLGEpe2Q9ZS5kZWYoXCIrXCIsYSxcIlswXVwiKTtlPWUuZGVmKFwiK1wiLGEsXCJbMV1cIik7cmV0dXJuW2QsZV19KTtjYXNlIFwiYmxlbmQuZnVuY1wiOnJldHVybiBlKGZ1bmN0aW9uKGQpe3JldHVyblttW1wic3JjUkdCXCJpbiBkP2Quc3JjUkdCOmQuc3JjXSxtW1wiZHN0UkdCXCJpbiBkP2QuZHN0UkdCOmQuZHN0XSxtW1wic3JjQWxwaGFcImluIGQ/ZC5zcmNBbHBoYTpkLnNyY10sbVtcImRzdEFscGhhXCJpbiBkP2QuZHN0QWxwaGE6ZC5kc3RdXX0sZnVuY3Rpb24oZCxlLGEpe2Z1bmN0aW9uIGMoZCx2KXtyZXR1cm4gZS5kZWYoJ1wiJyxkLHYsJ1wiIGluICcsYSxcIj9cIixhLFwiLlwiLGQsdixcIjpcIixhLFwiLlwiLGQpfWQ9ZC5jb25zdGFudHMuYmxlbmRGdW5jczt2YXIgdj1jKFwic3JjXCIsXCJSR0JcIiksXG5iPWMoXCJkc3RcIixcIlJHQlwiKSx2PWUuZGVmKGQsXCJbXCIsdixcIl1cIiksaD1lLmRlZihkLFwiW1wiLGMoXCJzcmNcIixcIkFscGhhXCIpLFwiXVwiKSxiPWUuZGVmKGQsXCJbXCIsYixcIl1cIik7ZD1lLmRlZihkLFwiW1wiLGMoXCJkc3RcIixcIkFscGhhXCIpLFwiXVwiKTtyZXR1cm5bdixiLGgsZF19KTtjYXNlIFwiYmxlbmQuZXF1YXRpb25cIjpyZXR1cm4gZShmdW5jdGlvbihkKXtpZihcInN0cmluZ1wiPT09dHlwZW9mIGQpcmV0dXJuW2NhW2RdLGNhW2RdXTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGQpcmV0dXJuW2NhW2QucmdiXSxjYVtkLmFscGhhXV19LGZ1bmN0aW9uKGQsZSxhKXt2YXIgYz1kLmNvbnN0YW50cy5ibGVuZEVxdWF0aW9ucyx2PWUuZGVmKCksYj1lLmRlZigpO2Q9ZC5jb25kKFwidHlwZW9mIFwiLGEsJz09PVwic3RyaW5nXCInKTtkLnRoZW4odixcIj1cIixiLFwiPVwiLGMsXCJbXCIsYSxcIl07XCIpO2RbXCJlbHNlXCJdKHYsXCI9XCIsYyxcIltcIixhLFwiLnJnYl07XCIsYixcIj1cIixjLFwiW1wiLGEsXCIuYWxwaGFdO1wiKTtlKGQpO3JldHVyblt2LGJdfSk7XG5jYXNlIFwiYmxlbmQuY29sb3JcIjpyZXR1cm4gZShmdW5jdGlvbihkKXtyZXR1cm4gRig0LGZ1bmN0aW9uKGUpe3JldHVybitkW2VdfSl9LGZ1bmN0aW9uKGQsZSxhKXtyZXR1cm4gRig0LGZ1bmN0aW9uKGQpe3JldHVybiBlLmRlZihcIitcIixhLFwiW1wiLGQsXCJdXCIpfSl9KTtjYXNlIFwic3RlbmNpbC5tYXNrXCI6cmV0dXJuIGUoZnVuY3Rpb24oZCl7cmV0dXJuIGR8MH0sZnVuY3Rpb24oZCxlLGEpe3JldHVybiBlLmRlZihhLFwifDBcIil9KTtjYXNlIFwic3RlbmNpbC5mdW5jXCI6cmV0dXJuIGUoZnVuY3Rpb24oZCl7cmV0dXJuW0JbZC5jbXB8fFwia2VlcFwiXSxkLnJlZnx8MCxcIm1hc2tcImluIGQ/ZC5tYXNrOi0xXX0sZnVuY3Rpb24oZCxlLGEpe2Q9ZS5kZWYoJ1wiY21wXCIgaW4gJyxhLFwiP1wiLGQuY29uc3RhbnRzLmNvbXBhcmVGdW5jcyxcIltcIixhLFwiLmNtcF1cIixcIjpcIiw3NjgwKTt2YXIgYz1lLmRlZihhLFwiLnJlZnwwXCIpO2U9ZS5kZWYoJ1wibWFza1wiIGluICcsYSxcIj9cIixhLFwiLm1hc2t8MDotMVwiKTtyZXR1cm5bZCxcbmMsZV19KTtjYXNlIFwic3RlbmNpbC5vcEZyb250XCI6Y2FzZSBcInN0ZW5jaWwub3BCYWNrXCI6cmV0dXJuIGUoZnVuY3Rpb24oZSl7cmV0dXJuW1wic3RlbmNpbC5vcEJhY2tcIj09PWQ/MTAyOToxMDI4LFlbZS5mYWlsfHxcImtlZXBcIl0sWVtlLnpmYWlsfHxcImtlZXBcIl0sWVtlLnpwYXNzfHxcImtlZXBcIl1dfSxmdW5jdGlvbihlLGEsYyl7ZnVuY3Rpb24gdihkKXtyZXR1cm4gYS5kZWYoJ1wiJyxkLCdcIiBpbiAnLGMsXCI/XCIsYixcIltcIixjLFwiLlwiLGQsXCJdOlwiLDc2ODApfXZhciBiPWUuY29uc3RhbnRzLnN0ZW5jaWxPcHM7cmV0dXJuW1wic3RlbmNpbC5vcEJhY2tcIj09PWQ/MTAyOToxMDI4LHYoXCJmYWlsXCIpLHYoXCJ6ZmFpbFwiKSx2KFwienBhc3NcIildfSk7Y2FzZSBcInBvbHlnb25PZmZzZXQub2Zmc2V0XCI6cmV0dXJuIGUoZnVuY3Rpb24oZCl7cmV0dXJuW2QuZmFjdG9yfDAsZC51bml0c3wwXX0sZnVuY3Rpb24oZCxlLGEpe2Q9ZS5kZWYoYSxcIi5mYWN0b3J8MFwiKTtlPWUuZGVmKGEsXCIudW5pdHN8MFwiKTtyZXR1cm5bZCxcbmVdfSk7Y2FzZSBcImN1bGwuZmFjZVwiOnJldHVybiBlKGZ1bmN0aW9uKGQpe3ZhciBlPTA7XCJmcm9udFwiPT09ZD9lPTEwMjg6XCJiYWNrXCI9PT1kJiYoZT0xMDI5KTtyZXR1cm4gZX0sZnVuY3Rpb24oZCxlLGEpe3JldHVybiBlLmRlZihhLCc9PT1cImZyb250XCI/JywxMDI4LFwiOlwiLDEwMjkpfSk7Y2FzZSBcImxpbmVXaWR0aFwiOnJldHVybiBlKGZ1bmN0aW9uKGQpe3JldHVybiBkfSxmdW5jdGlvbihkLGUsYSl7cmV0dXJuIGF9KTtjYXNlIFwiZnJvbnRGYWNlXCI6cmV0dXJuIGUoZnVuY3Rpb24oZCl7cmV0dXJuIExbZF19LGZ1bmN0aW9uKGQsZSxhKXtyZXR1cm4gZS5kZWYoYSsnPT09XCJjd1wiPzIzMDQ6MjMwNScpfSk7Y2FzZSBcImNvbG9yTWFza1wiOnJldHVybiBlKGZ1bmN0aW9uKGQpe3JldHVybiBkLm1hcChmdW5jdGlvbihkKXtyZXR1cm4hIWR9KX0sZnVuY3Rpb24oZCxlLGEpe3JldHVybiBGKDQsZnVuY3Rpb24oZCl7cmV0dXJuXCIhIVwiK2ErXCJbXCIrZCtcIl1cIn0pfSk7Y2FzZSBcInNhbXBsZS5jb3ZlcmFnZVwiOnJldHVybiBlKGZ1bmN0aW9uKGQpe3JldHVybltcInZhbHVlXCJpblxuZD9kLnZhbHVlOjEsISFkLmludmVydF19LGZ1bmN0aW9uKGQsZSxhKXtkPWUuZGVmKCdcInZhbHVlXCIgaW4gJyxhLFwiPytcIixhLFwiLnZhbHVlOjFcIik7ZT1lLmRlZihcIiEhXCIsYSxcIi5pbnZlcnRcIik7cmV0dXJuW2QsZV19KX19KTtyZXR1cm4gQX1mdW5jdGlvbiBzYShkLGUpe3ZhciBiPWRbXCJzdGF0aWNcIl0saD1kLmR5bmFtaWMsQT17fTtPYmplY3Qua2V5cyhiKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBlPWJbZF0sYTtpZihcIm51bWJlclwiPT09dHlwZW9mIGV8fFwiYm9vbGVhblwiPT09dHlwZW9mIGUpYT1jKGZ1bmN0aW9uKCl7cmV0dXJuIGV9KTtlbHNlIGlmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlKXt2YXIgdj1lLl9yZWdsVHlwZTtpZihcInRleHR1cmUyZFwiPT09dnx8XCJ0ZXh0dXJlQ3ViZVwiPT09dilhPWMoZnVuY3Rpb24oZCl7cmV0dXJuIGQubGluayhlKX0pO2Vsc2UgaWYoXCJmcmFtZWJ1ZmZlclwiPT09dnx8XCJmcmFtZWJ1ZmZlckN1YmVcIj09PXYpYT1jKGZ1bmN0aW9uKGQpe3JldHVybiBkLmxpbmsoZS5jb2xvclswXSl9KX1lbHNlIHkoZSkmJlxuKGE9YyhmdW5jdGlvbihkKXtyZXR1cm4gZC5nbG9iYWwuZGVmKFwiW1wiLEYoZS5sZW5ndGgsZnVuY3Rpb24oZCl7cmV0dXJuIGVbZF19KSxcIl1cIil9KSk7YS52YWx1ZT1lO0FbZF09YX0pO09iamVjdC5rZXlzKGgpLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIGU9aFtkXTtBW2RdPWEoZSxmdW5jdGlvbihkLGEpe3JldHVybiBkLmludm9rZShhLGUpfSl9KTtyZXR1cm4gQX1mdW5jdGlvbiBkYShkLGUpe3ZhciBiPWRbXCJzdGF0aWNcIl0saD1kLmR5bmFtaWMsQT17fTtPYmplY3Qua2V5cyhiKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBlPWJbZF0sYT1mLmlkKGQpLHY9bmV3IEJhO2lmKGwoZSkpdi5zdGF0ZT0xLHYuYnVmZmVyPU0uZ2V0QnVmZmVyKE0uY3JlYXRlKGUsMzQ5NjIsITEsITApKSx2LnR5cGU9MDtlbHNle3ZhciBoPU0uZ2V0QnVmZmVyKGUpO2lmKGgpdi5zdGF0ZT0xLHYuYnVmZmVyPWgsdi50eXBlPTA7ZWxzZSBpZihlLmNvbnN0YW50KXt2YXIgdz1lLmNvbnN0YW50O3YuYnVmZmVyPVxuXCJudWxsXCI7di5zdGF0ZT0yO1wibnVtYmVyXCI9PT10eXBlb2Ygdz92Lng9dzpOLmZvckVhY2goZnVuY3Rpb24oZCxlKXtlPHcubGVuZ3RoJiYodltkXT13W2VdKX0pfWVsc2V7dmFyIGg9bChlLmJ1ZmZlcik/TS5nZXRCdWZmZXIoTS5jcmVhdGUoZS5idWZmZXIsMzQ5NjIsITEsITApKTpNLmdldEJ1ZmZlcihlLmJ1ZmZlciksej1lLm9mZnNldHwwLHE9ZS5zdHJpZGV8MCxrPWUuc2l6ZXwwLGc9ISFlLm5vcm1hbGl6ZWQsbT0wO1widHlwZVwiaW4gZSYmKG09Q1tlLnR5cGVdKTtlPWUuZGl2aXNvcnwwO3YuYnVmZmVyPWg7di5zdGF0ZT0xO3Yuc2l6ZT1rO3Yubm9ybWFsaXplZD1nO3YudHlwZT1tfHxoLmR0eXBlO3Yub2Zmc2V0PXo7di5zdHJpZGU9cTt2LmRpdmlzb3I9ZX19QVtkXT1jKGZ1bmN0aW9uKGQsZSl7dmFyIGM9ZC5hdHRyaWJDYWNoZTtpZihhIGluIGMpcmV0dXJuIGNbYV07dmFyIGI9e2lzU3RyZWFtOiExfTtPYmplY3Qua2V5cyh2KS5mb3JFYWNoKGZ1bmN0aW9uKGQpe2JbZF09XG52W2RdfSk7di5idWZmZXImJihiLmJ1ZmZlcj1kLmxpbmsodi5idWZmZXIpLGIudHlwZT1iLnR5cGV8fGIuYnVmZmVyK1wiLmR0eXBlXCIpO3JldHVybiBjW2FdPWJ9KX0pO09iamVjdC5rZXlzKGgpLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIGU9aFtkXTtBW2RdPWEoZSxmdW5jdGlvbihkLGEpe2Z1bmN0aW9uIHYoZCl7YShBW2RdLFwiPVwiLGMsXCIuXCIsZCxcInwwO1wiKX12YXIgYz1kLmludm9rZShhLGUpLGI9ZC5zaGFyZWQsaD1iLmlzQnVmZmVyQXJncyx3PWIuYnVmZmVyLEE9e2lzU3RyZWFtOmEuZGVmKCExKX0sej1uZXcgQmE7ei5zdGF0ZT0xO09iamVjdC5rZXlzKHopLmZvckVhY2goZnVuY3Rpb24oZCl7QVtkXT1hLmRlZihcIlwiK3pbZF0pfSk7dmFyIGFhPUEuYnVmZmVyLHE9QS50eXBlO2EoXCJpZihcIixoLFwiKFwiLGMsXCIpKXtcIixBLmlzU3RyZWFtLFwiPXRydWU7XCIsYWEsXCI9XCIsdyxcIi5jcmVhdGVTdHJlYW0oXCIsMzQ5NjIsXCIsXCIsYyxcIik7XCIscSxcIj1cIixhYSxcIi5kdHlwZTtcIixcIn1lbHNle1wiLFxuYWEsXCI9XCIsdyxcIi5nZXRCdWZmZXIoXCIsYyxcIik7XCIsXCJpZihcIixhYSxcIil7XCIscSxcIj1cIixhYSxcIi5kdHlwZTtcIiwnfWVsc2UgaWYoXCJjb25zdGFudFwiIGluICcsYyxcIil7XCIsQS5zdGF0ZSxcIj1cIiwyLFwiO1wiLFwiaWYodHlwZW9mIFwiK2MrJy5jb25zdGFudCA9PT0gXCJudW1iZXJcIil7JyxBW05bMF1dLFwiPVwiLGMsXCIuY29uc3RhbnQ7XCIsTi5zbGljZSgxKS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIEFbZF19KS5qb2luKFwiPVwiKSxcIj0wO1wiLFwifWVsc2V7XCIsTi5tYXAoZnVuY3Rpb24oZCxlKXtyZXR1cm4gQVtkXStcIj1cIitjK1wiLmNvbnN0YW50Lmxlbmd0aD49XCIrZStcIj9cIitjK1wiLmNvbnN0YW50W1wiK2UrXCJdOjA7XCJ9KS5qb2luKFwiXCIpLFwifX1lbHNle1wiLFwiaWYoXCIsaCxcIihcIixjLFwiLmJ1ZmZlcikpe1wiLGFhLFwiPVwiLHcsXCIuY3JlYXRlU3RyZWFtKFwiLDM0OTYyLFwiLFwiLGMsXCIuYnVmZmVyKTtcIixcIn1lbHNle1wiLGFhLFwiPVwiLHcsXCIuZ2V0QnVmZmVyKFwiLGMsXCIuYnVmZmVyKTtcIixcIn1cIixxLCc9XCJ0eXBlXCIgaW4gJyxcbmMsXCI/XCIsYi5nbFR5cGVzLFwiW1wiLGMsXCIudHlwZV06XCIsYWEsXCIuZHR5cGU7XCIsQS5ub3JtYWxpemVkLFwiPSEhXCIsYyxcIi5ub3JtYWxpemVkO1wiKTt2KFwic2l6ZVwiKTt2KFwib2Zmc2V0XCIpO3YoXCJzdHJpZGVcIik7dihcImRpdmlzb3JcIik7YShcIn19XCIpO2EuZXhpdChcImlmKFwiLEEuaXNTdHJlYW0sXCIpe1wiLHcsXCIuZGVzdHJveVN0cmVhbShcIixhYSxcIik7XCIsXCJ9XCIpO3JldHVybiBBfSl9KTtyZXR1cm4gQX1mdW5jdGlvbiBqYShkKXt2YXIgZT1kW1wic3RhdGljXCJdLGI9ZC5keW5hbWljLGg9e307T2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbihkKXt2YXIgYT1lW2RdO2hbZF09YyhmdW5jdGlvbihkLGUpe3JldHVyblwibnVtYmVyXCI9PT10eXBlb2YgYXx8XCJib29sZWFuXCI9PT10eXBlb2YgYT9cIlwiK2E6ZC5saW5rKGEpfSl9KTtPYmplY3Qua2V5cyhiKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciBlPWJbZF07aFtkXT1hKGUsZnVuY3Rpb24oZCxhKXtyZXR1cm4gZC5pbnZva2UoYSxlKX0pfSk7cmV0dXJuIGh9XG5mdW5jdGlvbiBsYShkLGUsYSxjLGIpe3ZhciBoPXlhKGQsYiksdz1VKGQsaCxiKSx6PWthKGQsYikscT1yYShkLGIpLGs9aWEoZCxiKSxnPXcudmlld3BvcnQ7ZyYmKHEudmlld3BvcnQ9Zyk7Zz1XKFwic2Npc3Nvci5ib3hcIik7KHc9d1tnXSkmJihxW2ddPXcpO3c9MDxPYmplY3Qua2V5cyhxKS5sZW5ndGg7aD17ZnJhbWVidWZmZXI6aCxkcmF3Onosc2hhZGVyOmssc3RhdGU6cSxkaXJ0eTp3fTtoLnByb2ZpbGU9bmEoZCxiKTtoLnVuaWZvcm1zPXNhKGEsYik7aC5hdHRyaWJ1dGVzPWRhKGUsYik7aC5jb250ZXh0PWphKGMsYik7cmV0dXJuIGh9ZnVuY3Rpb24gZWEoZCxlLGEpe3ZhciBjPWQuc2hhcmVkLmNvbnRleHQsYj1kLnNjb3BlKCk7T2JqZWN0LmtleXMoYSkuZm9yRWFjaChmdW5jdGlvbihoKXtlLnNhdmUoYyxcIi5cIitoKTtiKGMsXCIuXCIsaCxcIj1cIixhW2hdLmFwcGVuZChkLGUpLFwiO1wiKX0pO2UoYil9ZnVuY3Rpb24gTyhkLGUsYSxjKXt2YXIgYj1kLnNoYXJlZCxoPWIuZ2wsdz1iLmZyYW1lYnVmZmVyLFxuejtvYSYmKHo9ZS5kZWYoYi5leHRlbnNpb25zLFwiLndlYmdsX2RyYXdfYnVmZmVyc1wiKSk7dmFyIHE9ZC5jb25zdGFudHMsYj1xLmRyYXdCdWZmZXIscT1xLmJhY2tCdWZmZXI7ZD1hP2EuYXBwZW5kKGQsZSk6ZS5kZWYodyxcIi5uZXh0XCIpO2N8fGUoXCJpZihcIixkLFwiIT09XCIsdyxcIi5jdXIpe1wiKTtlKFwiaWYoXCIsZCxcIil7XCIsaCxcIi5iaW5kRnJhbWVidWZmZXIoXCIsMzYxNjAsXCIsXCIsZCxcIi5mcmFtZWJ1ZmZlcik7XCIpO29hJiZlKHosXCIuZHJhd0J1ZmZlcnNXRUJHTChcIixiLFwiW1wiLGQsXCIuY29sb3JBdHRhY2htZW50cy5sZW5ndGhdKTtcIik7ZShcIn1lbHNle1wiLGgsXCIuYmluZEZyYW1lYnVmZmVyKFwiLDM2MTYwLFwiLG51bGwpO1wiKTtvYSYmZSh6LFwiLmRyYXdCdWZmZXJzV0VCR0woXCIscSxcIik7XCIpO2UoXCJ9XCIsdyxcIi5jdXI9XCIsZCxcIjtcIik7Y3x8ZShcIn1cIil9ZnVuY3Rpb24gaGEoZCxhLGMpe3ZhciBiPWQuc2hhcmVkLGg9Yi5nbCx6PWQuY3VycmVudCxxPWQubmV4dCxnPWIuY3VycmVudCxrPWIubmV4dCxcbm09ZC5jb25kKGcsXCIuZGlydHlcIik7dy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2E9VyhhKTtpZighKGEgaW4gYy5zdGF0ZSkpe3ZhciB2LGI7aWYoYSBpbiBxKXt2PXFbYV07Yj16W2FdO3ZhciB3PUYoZVthXS5sZW5ndGgsZnVuY3Rpb24oZCl7cmV0dXJuIG0uZGVmKHYsXCJbXCIsZCxcIl1cIil9KTttKGQuY29uZCh3Lm1hcChmdW5jdGlvbihkLGUpe3JldHVybiBkK1wiIT09XCIrYitcIltcIitlK1wiXVwifSkuam9pbihcInx8XCIpKS50aGVuKGgsXCIuXCIseGFbYV0sXCIoXCIsdyxcIik7XCIsdy5tYXAoZnVuY3Rpb24oZCxlKXtyZXR1cm4gYitcIltcIitlK1wiXT1cIitkfSkuam9pbihcIjtcIiksXCI7XCIpKX1lbHNlIHY9bS5kZWYoayxcIi5cIixhKSx3PWQuY29uZCh2LFwiIT09XCIsZyxcIi5cIixhKSxtKHcpLGEgaW4gd2E/dyhkLmNvbmQodikudGhlbihoLFwiLmVuYWJsZShcIix3YVthXSxcIik7XCIpW1wiZWxzZVwiXShoLFwiLmRpc2FibGUoXCIsd2FbYV0sXCIpO1wiKSxnLFwiLlwiLGEsXCI9XCIsdixcIjtcIik6dyhoLFwiLlwiLHhhW2FdLFwiKFwiLHYsXCIpO1wiLFxuZyxcIi5cIixhLFwiPVwiLHYsXCI7XCIpfX0pOzA9PT1PYmplY3Qua2V5cyhjLnN0YXRlKS5sZW5ndGgmJm0oZyxcIi5kaXJ0eT1mYWxzZTtcIik7YShtKX1mdW5jdGlvbiBRKGQsZSxhLGMpe3ZhciBiPWQuc2hhcmVkLGg9ZC5jdXJyZW50LHc9Yi5jdXJyZW50LHE9Yi5nbDtrKE9iamVjdC5rZXlzKGEpKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciB6PWFbYl07aWYoIWN8fGMoeikpe3ZhciBnPXouYXBwZW5kKGQsZSk7aWYod2FbYl0pe3ZhciBrPXdhW2JdO3Ioeik/Zz9lKHEsXCIuZW5hYmxlKFwiLGssXCIpO1wiKTplKHEsXCIuZGlzYWJsZShcIixrLFwiKTtcIik6ZShkLmNvbmQoZykudGhlbihxLFwiLmVuYWJsZShcIixrLFwiKTtcIilbXCJlbHNlXCJdKHEsXCIuZGlzYWJsZShcIixrLFwiKTtcIikpO2UodyxcIi5cIixiLFwiPVwiLGcsXCI7XCIpfWVsc2UgaWYoeShnKSl7dmFyIG09aFtiXTtlKHEsXCIuXCIseGFbYl0sXCIoXCIsZyxcIik7XCIsZy5tYXAoZnVuY3Rpb24oZCxlKXtyZXR1cm4gbStcIltcIitlK1wiXT1cIitkfSkuam9pbihcIjtcIiksXCI7XCIpfWVsc2UgZShxLFxuXCIuXCIseGFbYl0sXCIoXCIsZyxcIik7XCIsdyxcIi5cIixiLFwiPVwiLGcsXCI7XCIpfX0pfWZ1bmN0aW9uIHBhKGQsZSl7dGEmJihkLmluc3RhbmNpbmc9ZS5kZWYoZC5zaGFyZWQuZXh0ZW5zaW9ucyxcIi5hbmdsZV9pbnN0YW5jZWRfYXJyYXlzXCIpKX1mdW5jdGlvbiBWKGQsZSxhLGMsYil7ZnVuY3Rpb24gaCgpe3JldHVyblwidW5kZWZpbmVkXCI9PT10eXBlb2YgcGVyZm9ybWFuY2U/XCJEYXRlLm5vdygpXCI6XCJwZXJmb3JtYW5jZS5ub3coKVwifWZ1bmN0aW9uIHcoZCl7bD1lLmRlZigpO2QobCxcIj1cIixoKCksXCI7XCIpO1wic3RyaW5nXCI9PT10eXBlb2YgYj9kKGssXCIuY291bnQrPVwiLGIsXCI7XCIpOmQoayxcIi5jb3VudCsrO1wiKTttYSYmKGM/KG49ZS5kZWYoKSxkKG4sXCI9XCIsZixcIi5nZXROdW1QZW5kaW5nUXVlcmllcygpO1wiKSk6ZChmLFwiLmJlZ2luUXVlcnkoXCIsayxcIik7XCIpKX1mdW5jdGlvbiBxKGQpe2QoayxcIi5jcHVUaW1lKz1cIixoKCksXCItXCIsbCxcIjtcIik7bWEmJihjP2QoZixcIi5wdXNoU2NvcGVTdGF0cyhcIixuLFxuXCIsXCIsZixcIi5nZXROdW1QZW5kaW5nUXVlcmllcygpLFwiLGssXCIpO1wiKTpkKGYsXCIuZW5kUXVlcnkoKTtcIikpfWZ1bmN0aW9uIHooZCl7dmFyIGE9ZS5kZWYobSxcIi5wcm9maWxlXCIpO2UobSxcIi5wcm9maWxlPVwiLGQsXCI7XCIpO2UuZXhpdChtLFwiLnByb2ZpbGU9XCIsYSxcIjtcIil9dmFyIGc9ZC5zaGFyZWQsaz1kLnN0YXRzLG09Zy5jdXJyZW50LGY9Zy50aW1lcjthPWEucHJvZmlsZTt2YXIgbCxuO2lmKGEpe2lmKHIoYSkpe2EuZW5hYmxlPyh3KGUpLHEoZS5leGl0KSx6KFwidHJ1ZVwiKSk6eihcImZhbHNlXCIpO3JldHVybn1hPWEuYXBwZW5kKGQsZSk7eihhKX1lbHNlIGE9ZS5kZWYobSxcIi5wcm9maWxlXCIpO2c9ZC5ibG9jaygpO3coZyk7ZShcImlmKFwiLGEsXCIpe1wiLGcsXCJ9XCIpO2Q9ZC5ibG9jaygpO3EoZCk7ZS5leGl0KFwiaWYoXCIsYSxcIil7XCIsZCxcIn1cIil9ZnVuY3Rpb24gWChkLGUsYSxjLGIpe2Z1bmN0aW9uIGgoZCl7c3dpdGNoKGQpe2Nhc2UgMzU2NjQ6Y2FzZSAzNTY2NzpjYXNlIDM1NjcxOnJldHVybiAyO1xuY2FzZSAzNTY2NTpjYXNlIDM1NjY4OmNhc2UgMzU2NzI6cmV0dXJuIDM7Y2FzZSAzNTY2NjpjYXNlIDM1NjY5OmNhc2UgMzU2NzM6cmV0dXJuIDQ7ZGVmYXVsdDpyZXR1cm4gMX19ZnVuY3Rpb24gdyhhLGMsYil7ZnVuY3Rpb24gaCgpe2UoXCJpZighXCIsbSxcIi5idWZmZXIpe1wiLGcsXCIuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoXCIsayxcIik7fVwiKTt2YXIgYT1iLnR5cGUsdzt3PWIuc2l6ZT9lLmRlZihiLnNpemUsXCJ8fFwiLGMpOmM7ZShcImlmKFwiLG0sXCIudHlwZSE9PVwiLGEsXCJ8fFwiLG0sXCIuc2l6ZSE9PVwiLHcsXCJ8fFwiLGFhLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gbStcIi5cIitkK1wiIT09XCIrYltkXX0pLmpvaW4oXCJ8fFwiKSxcIil7XCIsZyxcIi5iaW5kQnVmZmVyKFwiLDM0OTYyLFwiLFwiLGYsXCIuYnVmZmVyKTtcIixnLFwiLnZlcnRleEF0dHJpYlBvaW50ZXIoXCIsW2ssdyxhLGIubm9ybWFsaXplZCxiLnN0cmlkZSxiLm9mZnNldF0sXCIpO1wiLG0sXCIudHlwZT1cIixhLFwiO1wiLG0sXCIuc2l6ZT1cIix3LFwiO1wiLGFhLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gbStcblwiLlwiK2QrXCI9XCIrYltkXStcIjtcIn0pLmpvaW4oXCJcIiksXCJ9XCIpO3RhJiYoYT1iLmRpdmlzb3IsZShcImlmKFwiLG0sXCIuZGl2aXNvciE9PVwiLGEsXCIpe1wiLGQuaW5zdGFuY2luZyxcIi52ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUoXCIsW2ssYV0sXCIpO1wiLG0sXCIuZGl2aXNvcj1cIixhLFwiO31cIikpfWZ1bmN0aW9uIHooKXtlKFwiaWYoXCIsbSxcIi5idWZmZXIpe1wiLGcsXCIuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KFwiLGssXCIpO1wiLFwifWlmKFwiLE4ubWFwKGZ1bmN0aW9uKGQsZSl7cmV0dXJuIG0rXCIuXCIrZCtcIiE9PVwiK0FbZV19KS5qb2luKFwifHxcIiksXCIpe1wiLGcsXCIudmVydGV4QXR0cmliNGYoXCIsayxcIixcIixBLFwiKTtcIixOLm1hcChmdW5jdGlvbihkLGUpe3JldHVybiBtK1wiLlwiK2QrXCI9XCIrQVtlXStcIjtcIn0pLmpvaW4oXCJcIiksXCJ9XCIpfXZhciBnPXEuZ2wsaz1lLmRlZihhLFwiLmxvY2F0aW9uXCIpLG09ZS5kZWYocS5hdHRyaWJ1dGVzLFwiW1wiLGssXCJdXCIpO2E9Yi5zdGF0ZTt2YXIgZj1iLmJ1ZmZlcixBPVtiLngsYi55LFxuYi56LGIud10sYWE9W1wiYnVmZmVyXCIsXCJub3JtYWxpemVkXCIsXCJvZmZzZXRcIixcInN0cmlkZVwiXTsxPT09YT9oKCk6Mj09PWE/eigpOihlKFwiaWYoXCIsYSxcIj09PVwiLDEsXCIpe1wiKSxoKCksZShcIn1lbHNle1wiKSx6KCksZShcIn1cIikpfXZhciBxPWQuc2hhcmVkO2MuZm9yRWFjaChmdW5jdGlvbihjKXt2YXIgcT1jLm5hbWUsZz1hLmF0dHJpYnV0ZXNbcV0sejtpZihnKXtpZighYihnKSlyZXR1cm47ej1nLmFwcGVuZChkLGUpfWVsc2V7aWYoIWIoSCkpcmV0dXJuO3ZhciBtPWQuc2NvcGVBdHRyaWIocSk7ej17fTtPYmplY3Qua2V5cyhuZXcgQmEpLmZvckVhY2goZnVuY3Rpb24oZCl7eltkXT1lLmRlZihtLFwiLlwiLGQpfSl9dyhkLmxpbmsoYyksaChjLmluZm8udHlwZSkseil9KX1mdW5jdGlvbiBUKGQsZSxhLGMsYil7Zm9yKHZhciBoPWQuc2hhcmVkLHc9aC5nbCxnLHE9MDtxPGMubGVuZ3RoOysrcSl7dmFyIHo9Y1txXSxtPXoubmFtZSxrPXouaW5mby50eXBlLGw9YS51bmlmb3Jtc1ttXSx6PWQubGluayh6KStcblwiLmxvY2F0aW9uXCIsbjtpZihsKXtpZighYihsKSljb250aW51ZTtpZihyKGwpKXttPWwudmFsdWU7aWYoMzU2Nzg9PT1rfHwzNTY4MD09PWspaz1kLmxpbmsobS5fdGV4dHVyZXx8bS5jb2xvclswXS5fdGV4dHVyZSksZSh3LFwiLnVuaWZvcm0xaShcIix6LFwiLFwiLGsrXCIuYmluZCgpKTtcIiksZS5leGl0KGssXCIudW5iaW5kKCk7XCIpO2Vsc2UgaWYoMzU2NzQ9PT1rfHwzNTY3NT09PWt8fDM1Njc2PT09ayltPWQuZ2xvYmFsLmRlZihcIm5ldyBGbG9hdDMyQXJyYXkoW1wiK0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG0pK1wiXSlcIiksbD0yLDM1Njc1PT09az9sPTM6MzU2NzY9PT1rJiYobD00KSxlKHcsXCIudW5pZm9ybU1hdHJpeFwiLGwsXCJmdihcIix6LFwiLGZhbHNlLFwiLG0sXCIpO1wiKTtlbHNle3N3aXRjaChrKXtjYXNlIDUxMjY6Zz1cIjFmXCI7YnJlYWs7Y2FzZSAzNTY2NDpnPVwiMmZcIjticmVhaztjYXNlIDM1NjY1Omc9XCIzZlwiO2JyZWFrO2Nhc2UgMzU2NjY6Zz1cIjRmXCI7YnJlYWs7Y2FzZSAzNTY3MDpnPVxuXCIxaVwiO2JyZWFrO2Nhc2UgNTEyNDpnPVwiMWlcIjticmVhaztjYXNlIDM1NjcxOmc9XCIyaVwiO2JyZWFrO2Nhc2UgMzU2Njc6Zz1cIjJpXCI7YnJlYWs7Y2FzZSAzNTY3MjpnPVwiM2lcIjticmVhaztjYXNlIDM1NjY4Omc9XCIzaVwiO2JyZWFrO2Nhc2UgMzU2NzM6Zz1cIjRpXCI7YnJlYWs7Y2FzZSAzNTY2OTpnPVwiNGlcIn1lKHcsXCIudW5pZm9ybVwiLGcsXCIoXCIseixcIixcIix5KG0pP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG0pOm0sXCIpO1wiKX1jb250aW51ZX1lbHNlIG49bC5hcHBlbmQoZCxlKX1lbHNle2lmKCFiKEgpKWNvbnRpbnVlO249ZS5kZWYoaC51bmlmb3JtcyxcIltcIixmLmlkKG0pLFwiXVwiKX0zNTY3OD09PWs/ZShcImlmKFwiLG4sXCImJlwiLG4sJy5fcmVnbFR5cGU9PT1cImZyYW1lYnVmZmVyXCIpeycsbixcIj1cIixuLFwiLmNvbG9yWzBdO1wiLFwifVwiKTozNTY4MD09PWsmJmUoXCJpZihcIixuLFwiJiZcIixuLCcuX3JlZ2xUeXBlPT09XCJmcmFtZWJ1ZmZlckN1YmVcIil7JyxuLFwiPVwiLG4sXCIuY29sb3JbMF07XCIsXCJ9XCIpO1xubT0xO3N3aXRjaChrKXtjYXNlIDM1Njc4OmNhc2UgMzU2ODA6az1lLmRlZihuLFwiLl90ZXh0dXJlXCIpO2UodyxcIi51bmlmb3JtMWkoXCIseixcIixcIixrLFwiLmJpbmQoKSk7XCIpO2UuZXhpdChrLFwiLnVuYmluZCgpO1wiKTtjb250aW51ZTtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpnPVwiMWlcIjticmVhaztjYXNlIDM1NjY3OmNhc2UgMzU2NzE6Zz1cIjJpXCI7bT0yO2JyZWFrO2Nhc2UgMzU2Njg6Y2FzZSAzNTY3MjpnPVwiM2lcIjttPTM7YnJlYWs7Y2FzZSAzNTY2OTpjYXNlIDM1NjczOmc9XCI0aVwiO209NDticmVhaztjYXNlIDUxMjY6Zz1cIjFmXCI7YnJlYWs7Y2FzZSAzNTY2NDpnPVwiMmZcIjttPTI7YnJlYWs7Y2FzZSAzNTY2NTpnPVwiM2ZcIjttPTM7YnJlYWs7Y2FzZSAzNTY2NjpnPVwiNGZcIjttPTQ7YnJlYWs7Y2FzZSAzNTY3NDpnPVwiTWF0cml4MmZ2XCI7YnJlYWs7Y2FzZSAzNTY3NTpnPVwiTWF0cml4M2Z2XCI7YnJlYWs7Y2FzZSAzNTY3NjpnPVwiTWF0cml4NGZ2XCJ9ZSh3LFwiLnVuaWZvcm1cIixnLFwiKFwiLHosXCIsXCIpO1xuaWYoXCJNXCI9PT1nLmNoYXJBdCgwKSl7dmFyIHo9TWF0aC5wb3coay0zNTY3NCsyLDIpLEI9ZC5nbG9iYWwuZGVmKFwibmV3IEZsb2F0MzJBcnJheShcIix6LFwiKVwiKTtlKFwiZmFsc2UsKEFycmF5LmlzQXJyYXkoXCIsbixcIil8fFwiLG4sXCIgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpP1wiLG4sXCI6KFwiLEYoeixmdW5jdGlvbihkKXtyZXR1cm4gQitcIltcIitkK1wiXT1cIituK1wiW1wiK2QrXCJdXCJ9KSxcIixcIixCLFwiKVwiKX1lbHNlIDE8bT9lKEYobSxmdW5jdGlvbihkKXtyZXR1cm4gbitcIltcIitkK1wiXVwifSkpOmUobik7ZShcIik7XCIpfX1mdW5jdGlvbiB1YShkLGUsYSxjKXtmdW5jdGlvbiBiKGgpe3ZhciBnPWtbaF07cmV0dXJuIGc/Zy5jb250ZXh0RGVwJiZjLmNvbnRleHREeW5hbWljfHxnLnByb3BEZXA/Zy5hcHBlbmQoZCxhKTpnLmFwcGVuZChkLGUpOmUuZGVmKG0sXCIuXCIsaCl9ZnVuY3Rpb24gaCgpe2Z1bmN0aW9uIGQoKXthKHgsXCIuZHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEUoXCIsW2YsbixLLGwrXCI8PCgoXCIrXG5LK1wiLTUxMjEpPj4xKVwiLEJdLFwiKTtcIil9ZnVuY3Rpb24gZSgpe2EoeCxcIi5kcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUoXCIsW2YsbCxuLEJdLFwiKTtcIil9cT9TP2QoKTooYShcImlmKFwiLHEsXCIpe1wiKSxkKCksYShcIn1lbHNle1wiKSxlKCksYShcIn1cIikpOmUoKX1mdW5jdGlvbiBnKCl7ZnVuY3Rpb24gZCgpe2EoeitcIi5kcmF3RWxlbWVudHMoXCIrW2YsbixLLGwrXCI8PCgoXCIrSytcIi01MTIxKT4+MSlcIl0rXCIpO1wiKX1mdW5jdGlvbiBlKCl7YSh6K1wiLmRyYXdBcnJheXMoXCIrW2YsbCxuXStcIik7XCIpfXE/Uz9kKCk6KGEoXCJpZihcIixxLFwiKXtcIiksZCgpLGEoXCJ9ZWxzZXtcIiksZSgpLGEoXCJ9XCIpKTplKCl9dmFyIHc9ZC5zaGFyZWQsej13LmdsLG09dy5kcmF3LGs9Yy5kcmF3LHE9ZnVuY3Rpb24oKXt2YXIgYj1rLmVsZW1lbnRzLGg9ZTtpZihiKXtpZihiLmNvbnRleHREZXAmJmMuY29udGV4dER5bmFtaWN8fGIucHJvcERlcCloPWE7Yj1iLmFwcGVuZChkLGgpfWVsc2UgYj1oLmRlZihtLFwiLlwiLFwiZWxlbWVudHNcIik7XG5iJiZoKFwiaWYoXCIrYitcIilcIit6K1wiLmJpbmRCdWZmZXIoMzQ5NjMsXCIrYitcIi5idWZmZXIuYnVmZmVyKTtcIik7cmV0dXJuIGJ9KCksZj1iKFwicHJpbWl0aXZlXCIpLGw9YihcIm9mZnNldFwiKSxuPWZ1bmN0aW9uKCl7dmFyIGI9ay5jb3VudCxoPWU7aWYoYil7aWYoYi5jb250ZXh0RGVwJiZjLmNvbnRleHREeW5hbWljfHxiLnByb3BEZXApaD1hO2I9Yi5hcHBlbmQoZCxoKX1lbHNlIGI9aC5kZWYobSxcIi5cIixcImNvdW50XCIpO3JldHVybiBifSgpO2lmKFwibnVtYmVyXCI9PT10eXBlb2Ygbil7aWYoMD09PW4pcmV0dXJufWVsc2UgYShcImlmKFwiLG4sXCIpe1wiKSxhLmV4aXQoXCJ9XCIpO3ZhciBCLHg7dGEmJihCPWIoXCJpbnN0YW5jZXNcIikseD1kLmluc3RhbmNpbmcpO3ZhciBLPXErXCIudHlwZVwiLFM9ay5lbGVtZW50cyYmcihrLmVsZW1lbnRzKTt0YSYmKFwibnVtYmVyXCIhPT10eXBlb2YgQnx8MDw9Qik/XCJzdHJpbmdcIj09PXR5cGVvZiBCPyhhKFwiaWYoXCIsQixcIj4wKXtcIiksaCgpLGEoXCJ9ZWxzZSBpZihcIixCLFxuXCI8MCl7XCIpLGcoKSxhKFwifVwiKSk6aCgpOmcoKX1mdW5jdGlvbiBFYShkLGUsYSxiLGMpe2U9YmEoKTtjPWUucHJvYyhcImJvZHlcIixjKTt0YSYmKGUuaW5zdGFuY2luZz1jLmRlZihlLnNoYXJlZC5leHRlbnNpb25zLFwiLmFuZ2xlX2luc3RhbmNlZF9hcnJheXNcIikpO2QoZSxjLGEsYik7cmV0dXJuIGUuY29tcGlsZSgpLmJvZHl9ZnVuY3Rpb24gRmEoZCxlLGEsYil7cGEoZCxlKTtYKGQsZSxhLGIuYXR0cmlidXRlcyxmdW5jdGlvbigpe3JldHVybiEwfSk7VChkLGUsYSxiLnVuaWZvcm1zLGZ1bmN0aW9uKCl7cmV0dXJuITB9KTt1YShkLGUsZSxhKX1mdW5jdGlvbiBIYShkLGUpe3ZhciBhPWQucHJvYyhcImRyYXdcIiwxKTtwYShkLGEpO2VhKGQsYSxlLmNvbnRleHQpO08oZCxhLGUuZnJhbWVidWZmZXIpO2hhKGQsYSxlKTtRKGQsYSxlLnN0YXRlKTtWKGQsYSxlLCExLCEwKTt2YXIgYj1lLnNoYWRlci5wcm9nVmFyLmFwcGVuZChkLGEpO2EoZC5zaGFyZWQuZ2wsXCIudXNlUHJvZ3JhbShcIixiLFxuXCIucHJvZ3JhbSk7XCIpO2lmKGUuc2hhZGVyLnByb2dyYW0pRmEoZCxhLGUsZS5zaGFkZXIucHJvZ3JhbSk7ZWxzZXt2YXIgYz1kLmdsb2JhbC5kZWYoXCJ7fVwiKSxoPWEuZGVmKGIsXCIuaWRcIiksZz1hLmRlZihjLFwiW1wiLGgsXCJdXCIpO2EoZC5jb25kKGcpLnRoZW4oZyxcIi5jYWxsKHRoaXMsYTApO1wiKVtcImVsc2VcIl0oZyxcIj1cIixjLFwiW1wiLGgsXCJdPVwiLGQubGluayhmdW5jdGlvbihhKXtyZXR1cm4gRWEoRmEsZCxlLGEsMSl9KSxcIihcIixiLFwiKTtcIixnLFwiLmNhbGwodGhpcyxhMCk7XCIpKX0wPE9iamVjdC5rZXlzKGUuc3RhdGUpLmxlbmd0aCYmYShkLnNoYXJlZC5jdXJyZW50LFwiLmRpcnR5PXRydWU7XCIpfWZ1bmN0aW9uIElhKGQsZSxhLGIpe2Z1bmN0aW9uIGMoKXtyZXR1cm4hMH1kLmJhdGNoSWQ9XCJhMVwiO3BhKGQsZSk7WChkLGUsYSxiLmF0dHJpYnV0ZXMsYyk7VChkLGUsYSxiLnVuaWZvcm1zLGMpO3VhKGQsZSxlLGEpfWZ1bmN0aW9uIENhKGUsYSxiLGMpe2Z1bmN0aW9uIGgoZSl7cmV0dXJuIGUuY29udGV4dERlcCYmXG53fHxlLnByb3BEZXB9ZnVuY3Rpb24gZyhlKXtyZXR1cm4haChlKX1wYShlLGEpO3ZhciB3PWIuY29udGV4dERlcCx6PWEuZGVmKCksbT1hLmRlZigpO2Uuc2hhcmVkLnByb3BzPW07ZS5iYXRjaElkPXo7dmFyIGs9ZS5zY29wZSgpLHE9ZS5zY29wZSgpO2Eoay5lbnRyeSxcImZvcihcIix6LFwiPTA7XCIseixcIjxcIixcImExXCIsXCI7KytcIix6LFwiKXtcIixtLFwiPVwiLFwiYTBcIixcIltcIix6LFwiXTtcIixxLFwifVwiLGsuZXhpdCk7Yi5uZWVkc0NvbnRleHQmJmVhKGUscSxiLmNvbnRleHQpO2IubmVlZHNGcmFtZWJ1ZmZlciYmTyhlLHEsYi5mcmFtZWJ1ZmZlcik7UShlLHEsYi5zdGF0ZSxoKTtiLnByb2ZpbGUmJmgoYi5wcm9maWxlKSYmVihlLHEsYiwhMSwhMCk7Yz8oWChlLGssYixjLmF0dHJpYnV0ZXMsZyksWChlLHEsYixjLmF0dHJpYnV0ZXMsaCksVChlLGssYixjLnVuaWZvcm1zLGcpLFQoZSxxLGIsYy51bmlmb3JtcyxoKSx1YShlLGsscSxiKSk6KGE9ZS5nbG9iYWwuZGVmKFwie31cIiksYz1iLnNoYWRlci5wcm9nVmFyLmFwcGVuZChlLFxucSksbT1xLmRlZihjLFwiLmlkXCIpLGs9cS5kZWYoYSxcIltcIixtLFwiXVwiKSxxKGUuc2hhcmVkLmdsLFwiLnVzZVByb2dyYW0oXCIsYyxcIi5wcm9ncmFtKTtcIixcImlmKCFcIixrLFwiKXtcIixrLFwiPVwiLGEsXCJbXCIsbSxcIl09XCIsZS5saW5rKGZ1bmN0aW9uKGEpe3JldHVybiBFYShJYSxlLGIsYSwyKX0pLFwiKFwiLGMsXCIpO31cIixrLFwiLmNhbGwodGhpcyxhMFtcIix6LFwiXSxcIix6LFwiKTtcIikpfWZ1bmN0aW9uIERhKGUsYSl7ZnVuY3Rpb24gYihlKXtyZXR1cm4gZS5jb250ZXh0RGVwJiZofHxlLnByb3BEZXB9dmFyIGM9ZS5wcm9jKFwiYmF0Y2hcIiwyKTtlLmJhdGNoSWQ9XCIwXCI7cGEoZSxjKTt2YXIgaD0hMSxnPSEwO09iamVjdC5rZXlzKGEuY29udGV4dCkuZm9yRWFjaChmdW5jdGlvbihlKXtoPWh8fGEuY29udGV4dFtlXS5wcm9wRGVwfSk7aHx8KGVhKGUsYyxhLmNvbnRleHQpLGc9ITEpO3ZhciB3PWEuZnJhbWVidWZmZXIsej0hMTt3Pyh3LnByb3BEZXA/aD16PSEwOncuY29udGV4dERlcCYmaCYmKHo9ITApLFxuenx8TyhlLGMsdykpOk8oZSxjLG51bGwpO2Euc3RhdGUudmlld3BvcnQmJmEuc3RhdGUudmlld3BvcnQucHJvcERlcCYmKGg9ITApO2hhKGUsYyxhKTtRKGUsYyxhLnN0YXRlLGZ1bmN0aW9uKGUpe3JldHVybiFiKGUpfSk7YS5wcm9maWxlJiZiKGEucHJvZmlsZSl8fFYoZSxjLGEsITEsXCJhMVwiKTthLmNvbnRleHREZXA9aDthLm5lZWRzQ29udGV4dD1nO2EubmVlZHNGcmFtZWJ1ZmZlcj16O2c9YS5zaGFkZXIucHJvZ1ZhcjtpZihnLmNvbnRleHREZXAmJmh8fGcucHJvcERlcClDYShlLGMsYSxudWxsKTtlbHNlIGlmKGc9Zy5hcHBlbmQoZSxjKSxjKGUuc2hhcmVkLmdsLFwiLnVzZVByb2dyYW0oXCIsZyxcIi5wcm9ncmFtKTtcIiksYS5zaGFkZXIucHJvZ3JhbSlDYShlLGMsYSxhLnNoYWRlci5wcm9ncmFtKTtlbHNle3ZhciB3PWUuZ2xvYmFsLmRlZihcInt9XCIpLHo9Yy5kZWYoZyxcIi5pZFwiKSxxPWMuZGVmKHcsXCJbXCIseixcIl1cIik7YyhlLmNvbmQocSkudGhlbihxLFwiLmNhbGwodGhpcyxhMCxhMSk7XCIpW1wiZWxzZVwiXShxLFxuXCI9XCIsdyxcIltcIix6LFwiXT1cIixlLmxpbmsoZnVuY3Rpb24oYil7cmV0dXJuIEVhKENhLGUsYSxiLDIpfSksXCIoXCIsZyxcIik7XCIscSxcIi5jYWxsKHRoaXMsYTAsYTEpO1wiKSl9MDxPYmplY3Qua2V5cyhhLnN0YXRlKS5sZW5ndGgmJmMoZS5zaGFyZWQuY3VycmVudCxcIi5kaXJ0eT10cnVlO1wiKX1mdW5jdGlvbiBQYShlLGEpe2Z1bmN0aW9uIGIoZyl7dmFyIHc9YS5zaGFkZXJbZ107dyYmYy5zZXQoaC5zaGFkZXIsXCIuXCIrZyx3LmFwcGVuZChlLGMpKX12YXIgYz1lLnByb2MoXCJzY29wZVwiLDMpO2UuYmF0Y2hJZD1cImEyXCI7dmFyIGg9ZS5zaGFyZWQsZz1oLmN1cnJlbnQ7ZWEoZSxjLGEuY29udGV4dCk7YS5mcmFtZWJ1ZmZlciYmYS5mcmFtZWJ1ZmZlci5hcHBlbmQoZSxjKTtrKE9iamVjdC5rZXlzKGEuc3RhdGUpKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBnPWEuc3RhdGVbYl0uYXBwZW5kKGUsYyk7eShnKT9nLmZvckVhY2goZnVuY3Rpb24oYSxoKXtjLnNldChlLm5leHRbYl0sXCJbXCIraCtcIl1cIixcbmEpfSk6Yy5zZXQoaC5uZXh0LFwiLlwiK2IsZyl9KTtWKGUsYyxhLCEwLCEwKTtbXCJlbGVtZW50c1wiLFwib2Zmc2V0XCIsXCJjb3VudFwiLFwiaW5zdGFuY2VzXCIsXCJwcmltaXRpdmVcIl0uZm9yRWFjaChmdW5jdGlvbihiKXt2YXIgZz1hLmRyYXdbYl07ZyYmYy5zZXQoaC5kcmF3LFwiLlwiK2IsXCJcIitnLmFwcGVuZChlLGMpKX0pO09iamVjdC5rZXlzKGEudW5pZm9ybXMpLmZvckVhY2goZnVuY3Rpb24oYil7Yy5zZXQoaC51bmlmb3JtcyxcIltcIitmLmlkKGIpK1wiXVwiLGEudW5pZm9ybXNbYl0uYXBwZW5kKGUsYykpfSk7T2JqZWN0LmtleXMoYS5hdHRyaWJ1dGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBoPWEuYXR0cmlidXRlc1tiXS5hcHBlbmQoZSxjKSxnPWUuc2NvcGVBdHRyaWIoYik7T2JqZWN0LmtleXMobmV3IEJhKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2Muc2V0KGcsXCIuXCIrZSxoW2VdKX0pfSk7YihcInZlcnRcIik7YihcImZyYWdcIik7MDxPYmplY3Qua2V5cyhhLnN0YXRlKS5sZW5ndGgmJihjKGcsXG5cIi5kaXJ0eT10cnVlO1wiKSxjLmV4aXQoZyxcIi5kaXJ0eT10cnVlO1wiKSk7YyhcImExKFwiLGUuc2hhcmVkLmNvbnRleHQsXCIsYTAsXCIsZS5iYXRjaElkLFwiKTtcIil9ZnVuY3Rpb24gTmEoZSl7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBlJiYheShlKSl7Zm9yKHZhciBhPU9iamVjdC5rZXlzKGUpLGI9MDtiPGEubGVuZ3RoOysrYilpZihnLmlzRHluYW1pYyhlW2FbYl1dKSlyZXR1cm4hMDtyZXR1cm4hMX19ZnVuY3Rpb24gSmEoZSxiLGMpe2Z1bmN0aW9uIGgoZSxhKXtxLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIGI9d1tkXTtnLmlzRHluYW1pYyhiKSYmKGI9ZS5pbnZva2UoYSxiKSxhKG4sXCIuXCIsZCxcIj1cIixiLFwiO1wiKSl9KX12YXIgdz1iW1wic3RhdGljXCJdW2NdO2lmKHcmJk5hKHcpKXt2YXIgej1lLmdsb2JhbCxxPU9iamVjdC5rZXlzKHcpLGs9ITEsbT0hMSxmPSExLG49ZS5nbG9iYWwuZGVmKFwie31cIik7cS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBjPXdbYl07aWYoZy5pc0R5bmFtaWMoYykpXCJmdW5jdGlvblwiPT09XG50eXBlb2YgYyYmKGM9d1tiXT1nLnVuYm94KGMpKSxiPWEoYyxudWxsKSxrPWt8fGIudGhpc0RlcCxmPWZ8fGIucHJvcERlcCxtPW18fGIuY29udGV4dERlcDtlbHNle3oobixcIi5cIixiLFwiPVwiKTtzd2l0Y2godHlwZW9mIGMpe2Nhc2UgXCJudW1iZXJcIjp6KGMpO2JyZWFrO2Nhc2UgXCJzdHJpbmdcIjp6KCdcIicsYywnXCInKTticmVhaztjYXNlIFwib2JqZWN0XCI6QXJyYXkuaXNBcnJheShjKSYmeihcIltcIixjLmpvaW4oKSxcIl1cIik7YnJlYWs7ZGVmYXVsdDp6KGUubGluayhjKSl9eihcIjtcIil9fSk7Yi5keW5hbWljW2NdPW5ldyBnLkR5bmFtaWNWYXJpYWJsZSg0LHt0aGlzRGVwOmssY29udGV4dERlcDptLHByb3BEZXA6ZixyZWY6bixhcHBlbmQ6aH0pO2RlbGV0ZSBiW1wic3RhdGljXCJdW2NdfX12YXIgQmE9QWEuUmVjb3JkLGNhPXthZGQ6MzI3NzQsc3VidHJhY3Q6MzI3NzgsXCJyZXZlcnNlIHN1YnRyYWN0XCI6MzI3Nzl9O3QuZXh0X2JsZW5kX21pbm1heCYmKGNhLm1pbj0zMjc3NSxjYS5tYXg9MzI3NzYpO1xudmFyIHRhPXQuYW5nbGVfaW5zdGFuY2VkX2FycmF5cyxvYT10LndlYmdsX2RyYXdfYnVmZmVycyxlPXtkaXJ0eTohMCxwcm9maWxlOmdhLnByb2ZpbGV9LHo9e30sdz1bXSx3YT17fSx4YT17fTtSKFwiZGl0aGVyXCIsMzAyNCk7UihcImJsZW5kLmVuYWJsZVwiLDMwNDIpO0coXCJibGVuZC5jb2xvclwiLFwiYmxlbmRDb2xvclwiLFswLDAsMCwwXSk7RyhcImJsZW5kLmVxdWF0aW9uXCIsXCJibGVuZEVxdWF0aW9uU2VwYXJhdGVcIixbMzI3NzQsMzI3NzRdKTtHKFwiYmxlbmQuZnVuY1wiLFwiYmxlbmRGdW5jU2VwYXJhdGVcIixbMSwwLDEsMF0pO1IoXCJkZXB0aC5lbmFibGVcIiwyOTI5LCEwKTtHKFwiZGVwdGguZnVuY1wiLFwiZGVwdGhGdW5jXCIsNTEzKTtHKFwiZGVwdGgucmFuZ2VcIixcImRlcHRoUmFuZ2VcIixbMCwxXSk7RyhcImRlcHRoLm1hc2tcIixcImRlcHRoTWFza1wiLCEwKTtHKFwiY29sb3JNYXNrXCIsXCJjb2xvck1hc2tcIixbITAsITAsITAsITBdKTtSKFwiY3VsbC5lbmFibGVcIiwyODg0KTtHKFwiY3VsbC5mYWNlXCIsXCJjdWxsRmFjZVwiLFxuMTAyOSk7RyhcImZyb250RmFjZVwiLFwiZnJvbnRGYWNlXCIsMjMwNSk7RyhcImxpbmVXaWR0aFwiLFwibGluZVdpZHRoXCIsMSk7UihcInBvbHlnb25PZmZzZXQuZW5hYmxlXCIsMzI4MjMpO0coXCJwb2x5Z29uT2Zmc2V0Lm9mZnNldFwiLFwicG9seWdvbk9mZnNldFwiLFswLDBdKTtSKFwic2FtcGxlLmFscGhhXCIsMzI5MjYpO1IoXCJzYW1wbGUuZW5hYmxlXCIsMzI5MjgpO0coXCJzYW1wbGUuY292ZXJhZ2VcIixcInNhbXBsZUNvdmVyYWdlXCIsWzEsITFdKTtSKFwic3RlbmNpbC5lbmFibGVcIiwyOTYwKTtHKFwic3RlbmNpbC5tYXNrXCIsXCJzdGVuY2lsTWFza1wiLC0xKTtHKFwic3RlbmNpbC5mdW5jXCIsXCJzdGVuY2lsRnVuY1wiLFs1MTksMCwtMV0pO0coXCJzdGVuY2lsLm9wRnJvbnRcIixcInN0ZW5jaWxPcFNlcGFyYXRlXCIsWzEwMjgsNzY4MCw3NjgwLDc2ODBdKTtHKFwic3RlbmNpbC5vcEJhY2tcIixcInN0ZW5jaWxPcFNlcGFyYXRlXCIsWzEwMjksNzY4MCw3NjgwLDc2ODBdKTtSKFwic2Npc3Nvci5lbmFibGVcIiwzMDg5KTtHKFwic2Npc3Nvci5ib3hcIixcblwic2Npc3NvclwiLFswLDAsaC5kcmF3aW5nQnVmZmVyV2lkdGgsaC5kcmF3aW5nQnVmZmVySGVpZ2h0XSk7RyhcInZpZXdwb3J0XCIsXCJ2aWV3cG9ydFwiLFswLDAsaC5kcmF3aW5nQnVmZmVyV2lkdGgsaC5kcmF3aW5nQnVmZmVySGVpZ2h0XSk7dmFyIFFhPXtnbDpoLGNvbnRleHQ6UyxzdHJpbmdzOmYsbmV4dDp6LGN1cnJlbnQ6ZSxkcmF3OnEsZWxlbWVudHM6dSxidWZmZXI6TSxzaGFkZXI6dmEsYXR0cmlidXRlczpBYS5zdGF0ZSx1bmlmb3JtczpLLGZyYW1lYnVmZmVyOkQsZXh0ZW5zaW9uczp0LHRpbWVyOm1hLGlzQnVmZmVyQXJnczpsfSxNYT17cHJpbVR5cGVzOkUsY29tcGFyZUZ1bmNzOkIsYmxlbmRGdW5jczptLGJsZW5kRXF1YXRpb25zOmNhLHN0ZW5jaWxPcHM6WSxnbFR5cGVzOkMsb3JpZW50YXRpb25UeXBlOkx9O29hJiYoTWEuYmFja0J1ZmZlcj1bMTAyOV0sTWEuZHJhd0J1ZmZlcj1GKHAubWF4RHJhd2J1ZmZlcnMsZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lP1swXTpGKGUsZnVuY3Rpb24oZSl7cmV0dXJuIDM2MDY0K1xuZX0pfSkpO3ZhciBSYT0wO3JldHVybntuZXh0OnosY3VycmVudDplLHByb2NzOmZ1bmN0aW9uKCl7dmFyIGE9YmEoKSxiPWEucHJvYyhcInBvbGxcIiksYz1hLnByb2MoXCJyZWZyZXNoXCIpLGc9YS5ibG9jaygpO2IoZyk7YyhnKTt2YXIgdz1hLnNoYXJlZCx6PXcuZ2wscT13Lm5leHQsaz13LmN1cnJlbnQ7ZyhrLFwiLmRpcnR5PWZhbHNlO1wiKTtPKGEsYik7TyhhLGMsbnVsbCwhMCk7dmFyIG09aC5nZXRFeHRlbnNpb24oXCJhbmdsZV9pbnN0YW5jZWRfYXJyYXlzXCIpLGY7bSYmKGY9YS5saW5rKG0pKTtmb3IodmFyIG49MDtuPHAubWF4QXR0cmlidXRlczsrK24pe3ZhciBsPWMuZGVmKHcuYXR0cmlidXRlcyxcIltcIixuLFwiXVwiKSxCPWEuY29uZChsLFwiLmJ1ZmZlclwiKTtCLnRoZW4oeixcIi5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShcIixuLFwiKTtcIix6LFwiLmJpbmRCdWZmZXIoXCIsMzQ5NjIsXCIsXCIsbCxcIi5idWZmZXIuYnVmZmVyKTtcIix6LFwiLnZlcnRleEF0dHJpYlBvaW50ZXIoXCIsbixcIixcIixsLFwiLnNpemUsXCIsXG5sLFwiLnR5cGUsXCIsbCxcIi5ub3JtYWxpemVkLFwiLGwsXCIuc3RyaWRlLFwiLGwsXCIub2Zmc2V0KTtcIilbXCJlbHNlXCJdKHosXCIuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KFwiLG4sXCIpO1wiLHosXCIudmVydGV4QXR0cmliNGYoXCIsbixcIixcIixsLFwiLngsXCIsbCxcIi55LFwiLGwsXCIueixcIixsLFwiLncpO1wiLGwsXCIuYnVmZmVyPW51bGw7XCIpO2MoQik7bSYmYyhmLFwiLnZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRShcIixuLFwiLFwiLGwsXCIuZGl2aXNvcik7XCIpfU9iamVjdC5rZXlzKHdhKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBoPXdhW2VdLHc9Zy5kZWYocSxcIi5cIixlKSxtPWEuYmxvY2soKTttKFwiaWYoXCIsdyxcIil7XCIseixcIi5lbmFibGUoXCIsaCxcIil9ZWxzZXtcIix6LFwiLmRpc2FibGUoXCIsaCxcIil9XCIsayxcIi5cIixlLFwiPVwiLHcsXCI7XCIpO2MobSk7YihcImlmKFwiLHcsXCIhPT1cIixrLFwiLlwiLGUsXCIpe1wiLG0sXCJ9XCIpfSk7T2JqZWN0LmtleXMoeGEpLmZvckVhY2goZnVuY3Rpb24oaCl7dmFyIHc9eGFbaF0sbT1lW2hdLGYsXG5uLGw9YS5ibG9jaygpO2woeixcIi5cIix3LFwiKFwiKTt5KG0pPyh3PW0ubGVuZ3RoLGY9YS5nbG9iYWwuZGVmKHEsXCIuXCIsaCksbj1hLmdsb2JhbC5kZWYoayxcIi5cIixoKSxsKEYodyxmdW5jdGlvbihlKXtyZXR1cm4gZitcIltcIitlK1wiXVwifSksXCIpO1wiLEYodyxmdW5jdGlvbihlKXtyZXR1cm4gbitcIltcIitlK1wiXT1cIitmK1wiW1wiK2UrXCJdO1wifSkuam9pbihcIlwiKSksYihcImlmKFwiLEYodyxmdW5jdGlvbihlKXtyZXR1cm4gZitcIltcIitlK1wiXSE9PVwiK24rXCJbXCIrZStcIl1cIn0pLmpvaW4oXCJ8fFwiKSxcIil7XCIsbCxcIn1cIikpOihmPWcuZGVmKHEsXCIuXCIsaCksbj1nLmRlZihrLFwiLlwiLGgpLGwoZixcIik7XCIsayxcIi5cIixoLFwiPVwiLGYsXCI7XCIpLGIoXCJpZihcIixmLFwiIT09XCIsbixcIil7XCIsbCxcIn1cIikpO2MobCl9KTtyZXR1cm4gYS5jb21waWxlKCl9KCksY29tcGlsZTpmdW5jdGlvbihlLGEsYixjLGgpe3ZhciBnPWJhKCk7Zy5zdGF0cz1nLmxpbmsoaCk7T2JqZWN0LmtleXMoYVtcInN0YXRpY1wiXSkuZm9yRWFjaChmdW5jdGlvbihlKXtKYShnLFxuYSxlKX0pO24uZm9yRWFjaChmdW5jdGlvbihhKXtKYShnLGUsYSl9KTtiPWxhKGUsYSxiLGMsZyk7SGEoZyxiKTtQYShnLGIpO0RhKGcsYik7cmV0dXJuIGcuY29tcGlsZSgpfX19fSx7XCIuL2NvbnN0YW50cy9kdHlwZXMuanNvblwiOjQsXCIuL2NvbnN0YW50cy9wcmltaXRpdmVzLmpzb25cIjo1LFwiLi9keW5hbWljXCI6OCxcIi4vdXRpbC9jb2RlZ2VuXCI6MjEsXCIuL3V0aWwvaXMtYXJyYXktbGlrZVwiOjI0LFwiLi91dGlsL2lzLW5kYXJyYXlcIjoyNSxcIi4vdXRpbC9pcy10eXBlZC1hcnJheVwiOjI2LFwiLi91dGlsL2xvb3BcIjoyN31dLDg6W2Z1bmN0aW9uKGYscCx1KXtmdW5jdGlvbiBsKGMsYSl7dGhpcy5pZD1yKys7dGhpcy50eXBlPWM7dGhpcy5kYXRhPWF9ZnVuY3Rpb24gayhjKXtpZigwPT09Yy5sZW5ndGgpcmV0dXJuW107dmFyIGE9Yy5jaGFyQXQoMCksYj1jLmNoYXJBdChjLmxlbmd0aC0xKTtpZigxPGMubGVuZ3RoJiZhPT09YiYmKCdcIic9PT1hfHxcIidcIj09PWEpKXJldHVyblsnXCInK2Muc3Vic3RyKDEsXG5jLmxlbmd0aC0yKS5yZXBsYWNlKC9cXFxcL2csXCJcXFxcXFxcXFwiKS5yZXBsYWNlKC9cIi9nLCdcXFxcXCInKSsnXCInXTtpZihhPS9cXFsoZmFsc2V8dHJ1ZXxudWxsfFxcZCt8J1teJ10qJ3xcIlteXCJdKlwiKVxcXS8uZXhlYyhjKSlyZXR1cm4gayhjLnN1YnN0cigwLGEuaW5kZXgpKS5jb25jYXQoayhhWzFdKSkuY29uY2F0KGsoYy5zdWJzdHIoYS5pbmRleCthWzBdLmxlbmd0aCkpKTthPWMuc3BsaXQoXCIuXCIpO2lmKDE9PT1hLmxlbmd0aClyZXR1cm5bJ1wiJytjLnJlcGxhY2UoL1xcXFwvZyxcIlxcXFxcXFxcXCIpLnJlcGxhY2UoL1wiL2csJ1xcXFxcIicpKydcIiddO2M9W107Zm9yKGI9MDtiPGEubGVuZ3RoOysrYiljPWMuY29uY2F0KGsoYVtiXSkpO3JldHVybiBjfWZ1bmN0aW9uIHgoYyl7cmV0dXJuXCJbXCIrayhjKS5qb2luKFwiXVtcIikrXCJdXCJ9dmFyIHI9MDtwLmV4cG9ydHM9e0R5bmFtaWNWYXJpYWJsZTpsLGRlZmluZTpmdW5jdGlvbihjLGEpe3JldHVybiBuZXcgbChjLHgoYStcIlwiKSl9LGlzRHluYW1pYzpmdW5jdGlvbihjKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT1cbnR5cGVvZiBjJiYhYy5fcmVnbFR5cGV8fGMgaW5zdGFuY2VvZiBsfSx1bmJveDpmdW5jdGlvbihjLGEpe3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBjP25ldyBsKDAsYyk6Y30sYWNjZXNzb3I6eH19LHt9XSw5OltmdW5jdGlvbihmLHAsdSl7dmFyIGw9ZihcIi4vdXRpbC9pcy10eXBlZC1hcnJheVwiKSxrPWYoXCIuL3V0aWwvaXMtbmRhcnJheVwiKSx4PWYoXCIuL3V0aWwvdmFsdWVzXCIpLHI9ZihcIi4vY29uc3RhbnRzL3ByaW1pdGl2ZXMuanNvblwiKSxjPWYoXCIuL2NvbnN0YW50cy91c2FnZS5qc29uXCIpO3AuZXhwb3J0cz1mdW5jdGlvbihhLGIsZixwKXtmdW5jdGlvbiB0KGEpe3RoaXMuaWQ9QysrO0VbdGhpcy5pZF09dGhpczt0aGlzLmJ1ZmZlcj1hO3RoaXMucHJpbVR5cGU9NDt0aGlzLnR5cGU9dGhpcy52ZXJ0Q291bnQ9MH1mdW5jdGlvbiB5KGMsZyxuLHIseCxoLHQpe2MuYnVmZmVyLmJpbmQoKTtpZihnKXt2YXIgeT10O3R8fGwoZykmJighayhnKXx8bChnLmRhdGEpKXx8KHk9Yi5vZXNfZWxlbWVudF9pbmRleF91aW50P1xuNTEyNTo1MTIzKTtmLl9pbml0QnVmZmVyKGMuYnVmZmVyLGcsbix5LDMpfWVsc2UgYS5idWZmZXJEYXRhKDM0OTYzLGgsbiksYy5idWZmZXIuZHR5cGU9eXx8NTEyMSxjLmJ1ZmZlci51c2FnZT1uLGMuYnVmZmVyLmRpbWVuc2lvbj0zLGMuYnVmZmVyLmJ5dGVMZW5ndGg9aDt5PXQ7aWYoIXQpe3N3aXRjaChjLmJ1ZmZlci5kdHlwZSl7Y2FzZSA1MTIxOmNhc2UgNTEyMDp5PTUxMjE7YnJlYWs7Y2FzZSA1MTIzOmNhc2UgNTEyMjp5PTUxMjM7YnJlYWs7Y2FzZSA1MTI1OmNhc2UgNTEyNDp5PTUxMjV9Yy5idWZmZXIuZHR5cGU9eX1jLnR5cGU9eTtnPXg7MD5nJiYoZz1jLmJ1ZmZlci5ieXRlTGVuZ3RoLDUxMjM9PT15P2c+Pj0xOjUxMjU9PT15JiYoZz4+PTIpKTtjLnZlcnRDb3VudD1nO2c9cjswPnImJihnPTQscj1jLmJ1ZmZlci5kaW1lbnNpb24sMT09PXImJihnPTApLDI9PT1yJiYoZz0xKSwzPT09ciYmKGc9NCkpO2MucHJpbVR5cGU9Z31mdW5jdGlvbiBnKGEpe3AuZWxlbWVudHNDb3VudC0tO1xuZGVsZXRlIEVbYS5pZF07YS5idWZmZXIuZGVzdHJveSgpO2EuYnVmZmVyPW51bGx9dmFyIEU9e30sQz0wLE49e3VpbnQ4OjUxMjEsdWludDE2OjUxMjN9O2Iub2VzX2VsZW1lbnRfaW5kZXhfdWludCYmKE4udWludDMyPTUxMjUpO3QucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLmJ1ZmZlci5iaW5kKCl9O3ZhciBuPVtdO3JldHVybntjcmVhdGU6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBuKGEpe2lmKGEpaWYoXCJudW1iZXJcIj09PXR5cGVvZiBhKXgoYSksQy5wcmltVHlwZT00LEMudmVydENvdW50PWF8MCxDLnR5cGU9NTEyMTtlbHNle3ZhciBiPW51bGwsZz0zNTA0NCxtPS0xLGY9LTEsdD0wLEI9MDtpZihBcnJheS5pc0FycmF5KGEpfHxsKGEpfHxrKGEpKWI9YTtlbHNlIGlmKFwiZGF0YVwiaW4gYSYmKGI9YS5kYXRhKSxcInVzYWdlXCJpbiBhJiYoZz1jW2EudXNhZ2VdKSxcInByaW1pdGl2ZVwiaW4gYSYmKG09clthLnByaW1pdGl2ZV0pLFwiY291bnRcImluIGEmJihmPWEuY291bnR8MCksXG5cInR5cGVcImluIGEmJihCPU5bYS50eXBlXSksXCJsZW5ndGhcImluIGEpdD1hLmxlbmd0aHwwO2Vsc2UgaWYodD1mLDUxMjM9PT1CfHw1MTIyPT09Qil0Kj0yO2Vsc2UgaWYoNTEyNT09PUJ8fDUxMjQ9PT1CKXQqPTQ7eShDLGIsZyxtLGYsdCxCKX1lbHNlIHgoKSxDLnByaW1UeXBlPTQsQy52ZXJ0Q291bnQ9MCxDLnR5cGU9NTEyMTtyZXR1cm4gbn12YXIgeD1mLmNyZWF0ZShudWxsLDM0OTYzLCEwKSxDPW5ldyB0KHguX2J1ZmZlcik7cC5lbGVtZW50c0NvdW50Kys7bihhKTtuLl9yZWdsVHlwZT1cImVsZW1lbnRzXCI7bi5fZWxlbWVudHM9QztuLnN1YmRhdGE9ZnVuY3Rpb24oYSxiKXt4LnN1YmRhdGEoYSxiKTtyZXR1cm4gbn07bi5kZXN0cm95PWZ1bmN0aW9uKCl7ZyhDKX07cmV0dXJuIG59LGNyZWF0ZVN0cmVhbTpmdW5jdGlvbihhKXt2YXIgYj1uLnBvcCgpO2J8fChiPW5ldyB0KGYuY3JlYXRlKG51bGwsMzQ5NjMsITAsITEpLl9idWZmZXIpKTt5KGIsYSwzNTA0MCwtMSwtMSwwLDApO3JldHVybiBifSxcbmRlc3Ryb3lTdHJlYW06ZnVuY3Rpb24oYSl7bi5wdXNoKGEpfSxnZXRFbGVtZW50czpmdW5jdGlvbihhKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYSYmYS5fZWxlbWVudHMgaW5zdGFuY2VvZiB0P2EuX2VsZW1lbnRzOm51bGx9LGNsZWFyOmZ1bmN0aW9uKCl7eChFKS5mb3JFYWNoKGcpfX19fSx7XCIuL2NvbnN0YW50cy9wcmltaXRpdmVzLmpzb25cIjo1LFwiLi9jb25zdGFudHMvdXNhZ2UuanNvblwiOjYsXCIuL3V0aWwvaXMtbmRhcnJheVwiOjI1LFwiLi91dGlsL2lzLXR5cGVkLWFycmF5XCI6MjYsXCIuL3V0aWwvdmFsdWVzXCI6MzF9XSwxMDpbZnVuY3Rpb24oZixwLHUpe3AuZXhwb3J0cz1mdW5jdGlvbihmLGspe2Z1bmN0aW9uIHgoYSl7YT1hLnRvTG93ZXJDYXNlKCk7dmFyIGM7dHJ5e2M9clthXT1mLmdldEV4dGVuc2lvbihhKX1jYXRjaChrKXt9cmV0dXJuISFjfWZvcih2YXIgcj17fSxjPTA7YzxrLmV4dGVuc2lvbnMubGVuZ3RoOysrYyl7dmFyIGE9ay5leHRlbnNpb25zW2NdO2lmKCF4KGEpKXJldHVybiBrLm9uRGVzdHJveSgpLFxuay5vbkRvbmUoJ1wiJythKydcIiBleHRlbnNpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBXZWJHTCBjb250ZXh0LCB0cnkgdXBncmFkaW5nIHlvdXIgc3lzdGVtIG9yIGEgZGlmZmVyZW50IGJyb3dzZXInKSxudWxsfWsub3B0aW9uYWxFeHRlbnNpb25zLmZvckVhY2goeCk7cmV0dXJue2V4dGVuc2lvbnM6cixyZXN0b3JlOmZ1bmN0aW9uKCl7T2JqZWN0LmtleXMocikuZm9yRWFjaChmdW5jdGlvbihhKXtpZigheChhKSl0aHJvdyBFcnJvcihcIihyZWdsKTogZXJyb3IgcmVzdG9yaW5nIGV4dGVuc2lvbiBcIithKTt9KX19fX0se31dLDExOltmdW5jdGlvbihmLHAsdSl7dmFyIGw9ZihcIi4vdXRpbC92YWx1ZXNcIiksaz1mKFwiLi91dGlsL2V4dGVuZFwiKSx4PVtdO3hbNjQwOF09NDt2YXIgcj1bXTtyWzUxMjFdPTE7cls1MTI2XT00O3JbMzYxOTNdPTI7cC5leHBvcnRzPWZ1bmN0aW9uKGMsYSxiLGYscCx0KXtmdW5jdGlvbiB5KGEsYyxiKXt0aGlzLnRhcmdldD1hO3RoaXMudGV4dHVyZT1cbmM7dGhpcy5yZW5kZXJidWZmZXI9Yjt2YXIgaD1hPTA7Yz8oYT1jLndpZHRoLGg9Yy5oZWlnaHQpOmImJihhPWIud2lkdGgsaD1iLmhlaWdodCk7dGhpcy53aWR0aD1hO3RoaXMuaGVpZ2h0PWh9ZnVuY3Rpb24gZyhhKXthJiYoYS50ZXh0dXJlJiZhLnRleHR1cmUuX3RleHR1cmUuZGVjUmVmKCksYS5yZW5kZXJidWZmZXImJmEucmVuZGVyYnVmZmVyLl9yZW5kZXJidWZmZXIuZGVjUmVmKCkpfWZ1bmN0aW9uIEUoYSxjLGIpe2EmJihhLnRleHR1cmU/YS50ZXh0dXJlLl90ZXh0dXJlLnJlZkNvdW50Kz0xOmEucmVuZGVyYnVmZmVyLl9yZW5kZXJidWZmZXIucmVmQ291bnQrPTEpfWZ1bmN0aW9uIEMoYSxiKXtiJiYoYi50ZXh0dXJlP2MuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsYSxiLnRhcmdldCxiLnRleHR1cmUuX3RleHR1cmUudGV4dHVyZSwwKTpjLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKDM2MTYwLGEsMzYxNjEsYi5yZW5kZXJidWZmZXIuX3JlbmRlcmJ1ZmZlci5yZW5kZXJidWZmZXIpKX1cbmZ1bmN0aW9uIE4oYSl7dmFyIGI9MzU1MyxjPW51bGwsaD1udWxsLGc9YTtcIm9iamVjdFwiPT09dHlwZW9mIGEmJihnPWEuZGF0YSxcInRhcmdldFwiaW4gYSYmKGI9YS50YXJnZXR8MCkpO2E9Zy5fcmVnbFR5cGU7XCJ0ZXh0dXJlMmRcIj09PWE/Yz1nOlwidGV4dHVyZUN1YmVcIj09PWE/Yz1nOlwicmVuZGVyYnVmZmVyXCI9PT1hJiYoaD1nLGI9MzYxNjEpO3JldHVybiBuZXcgeShiLGMsaCl9ZnVuY3Rpb24gbihhLGIsYyxoLGcpe2lmKGMpcmV0dXJuIGE9Zi5jcmVhdGUyRCh7d2lkdGg6YSxoZWlnaHQ6Yixmb3JtYXQ6aCx0eXBlOmd9KSxhLl90ZXh0dXJlLnJlZkNvdW50PTAsbmV3IHkoMzU1MyxhLG51bGwpO2E9cC5jcmVhdGUoe3dpZHRoOmEsaGVpZ2h0OmIsZm9ybWF0Omh9KTthLl9yZW5kZXJidWZmZXIucmVmQ291bnQ9MDtyZXR1cm4gbmV3IHkoMzYxNjEsbnVsbCxhKX1mdW5jdGlvbiBtKGEpe3JldHVybiBhJiYoYS50ZXh0dXJlfHxhLnJlbmRlcmJ1ZmZlcil9ZnVuY3Rpb24gQihhLGIsYyl7YSYmXG4oYS50ZXh0dXJlP2EudGV4dHVyZS5yZXNpemUoYixjKTphLnJlbmRlcmJ1ZmZlciYmYS5yZW5kZXJidWZmZXIucmVzaXplKGIsYykpfWZ1bmN0aW9uIHUoKXt0aGlzLmlkPVorKztEW3RoaXMuaWRdPXRoaXM7dGhpcy5mcmFtZWJ1ZmZlcj1jLmNyZWF0ZUZyYW1lYnVmZmVyKCk7dGhpcy5oZWlnaHQ9dGhpcy53aWR0aD0wO3RoaXMuY29sb3JBdHRhY2htZW50cz1bXTt0aGlzLmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQ9dGhpcy5zdGVuY2lsQXR0YWNobWVudD10aGlzLmRlcHRoQXR0YWNobWVudD1udWxsfWZ1bmN0aW9uIEwoYSl7YS5jb2xvckF0dGFjaG1lbnRzLmZvckVhY2goZyk7ZyhhLmRlcHRoQXR0YWNobWVudCk7ZyhhLnN0ZW5jaWxBdHRhY2htZW50KTtnKGEuZGVwdGhTdGVuY2lsQXR0YWNobWVudCl9ZnVuY3Rpb24gSChhKXtjLmRlbGV0ZUZyYW1lYnVmZmVyKGEuZnJhbWVidWZmZXIpO2EuZnJhbWVidWZmZXI9bnVsbDt0LmZyYW1lYnVmZmVyQ291bnQtLTtkZWxldGUgRFthLmlkXX1cbmZ1bmN0aW9uIGgoYSl7dmFyIGg7Yy5iaW5kRnJhbWVidWZmZXIoMzYxNjAsYS5mcmFtZWJ1ZmZlcik7dmFyIGc9YS5jb2xvckF0dGFjaG1lbnRzO2ZvcihoPTA7aDxnLmxlbmd0aDsrK2gpQygzNjA2NCtoLGdbaF0pO2ZvcihoPWcubGVuZ3RoO2g8Yi5tYXhDb2xvckF0dGFjaG1lbnRzOysraCljLmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDM2MDY0K2gsMzU1MyxudWxsLDApO2MuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzMzMDYsMzU1MyxudWxsLDApO2MuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwOTYsMzU1MyxudWxsLDApO2MuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYxMjgsMzU1MyxudWxsLDApO0MoMzYwOTYsYS5kZXB0aEF0dGFjaG1lbnQpO0MoMzYxMjgsYS5zdGVuY2lsQXR0YWNobWVudCk7QygzMzMwNixhLmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpO2MuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cygzNjE2MCk7Yy5iaW5kRnJhbWVidWZmZXIoMzYxNjAsXG5LYS5uZXh0KTtLYS5jdXI9S2EubmV4dDtjLmdldEVycm9yKCl9ZnVuY3Rpb24gZmEoYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGssZj0wLGw9MCx0PSEwLHk9ITA7az1udWxsO3ZhciBCPSEwLEM9XCJyZ2JhXCIsRj1cInVpbnQ4XCIscD0xLE09bnVsbCxIPW51bGwsdT1udWxsLFk9ITE7aWYoXCJudW1iZXJcIj09PXR5cGVvZiBhKWY9YXwwLGw9YnwwfHxmO2Vsc2UgaWYoYSl7XCJzaGFwZVwiaW4gYT8obD1hLnNoYXBlLGY9bFswXSxsPWxbMV0pOihcInJhZGl1c1wiaW4gYSYmKGY9bD1hLnJhZGl1cyksXCJ3aWR0aFwiaW4gYSYmKGY9YS53aWR0aCksXCJoZWlnaHRcImluIGEmJihsPWEuaGVpZ2h0KSk7aWYoXCJjb2xvclwiaW4gYXx8XCJjb2xvcnNcImluIGEpaz1hLmNvbG9yfHxhLmNvbG9ycyxBcnJheS5pc0FycmF5KGspO2lmKCFrKXtcImNvbG9yQ291bnRcImluIGEmJihwPWEuY29sb3JDb3VudHwwKTtcImNvbG9yVGV4dHVyZVwiaW4gYSYmKEI9ISFhLmNvbG9yVGV4dHVyZSxDPVwicmdiYTRcIik7aWYoXCJjb2xvclR5cGVcImluXG5hJiYoRj1hLmNvbG9yVHlwZSwhQikpaWYoXCJoYWxmIGZsb2F0XCI9PT1GfHxcImZsb2F0MTZcIj09PUYpQz1cInJnYmExNmZcIjtlbHNlIGlmKFwiZmxvYXRcIj09PUZ8fFwiZmxvYXQzMlwiPT09RilDPVwicmdiYTMyZlwiO1wiY29sb3JGb3JtYXRcImluIGEmJihDPWEuY29sb3JGb3JtYXQsMDw9TGEuaW5kZXhPZihDKT9CPSEwOjA8PXphLmluZGV4T2YoQykmJihCPSExKSl9aWYoXCJkZXB0aFRleHR1cmVcImluIGF8fFwiZGVwdGhTdGVuY2lsVGV4dHVyZVwiaW4gYSlZPSEoIWEuZGVwdGhUZXh0dXJlJiYhYS5kZXB0aFN0ZW5jaWxUZXh0dXJlKTtcImRlcHRoXCJpbiBhJiYoXCJib29sZWFuXCI9PT10eXBlb2YgYS5kZXB0aD90PWEuZGVwdGg6KE09YS5kZXB0aCx5PSExKSk7XCJzdGVuY2lsXCJpbiBhJiYoXCJib29sZWFuXCI9PT10eXBlb2YgYS5zdGVuY2lsP3k9YS5zdGVuY2lsOihIPWEuc3RlbmNpbCx0PSExKSk7XCJkZXB0aFN0ZW5jaWxcImluIGEmJihcImJvb2xlYW5cIj09PXR5cGVvZiBhLmRlcHRoU3RlbmNpbD90PXk9YS5kZXB0aFN0ZW5jaWw6XG4odT1hLmRlcHRoU3RlbmNpbCx5PXQ9ITEpKX1lbHNlIGY9bD0xO3ZhciBEPW51bGwsZmE9bnVsbCxLPW51bGwsTz1udWxsO2lmKEFycmF5LmlzQXJyYXkoaykpRD1rLm1hcChOKTtlbHNlIGlmKGspRD1bTihrKV07ZWxzZSBmb3IoRD1BcnJheShwKSxrPTA7azxwOysraylEW2tdPW4oZixsLEIsQyxGKTtmPWZ8fERbMF0ud2lkdGg7bD1sfHxEWzBdLmhlaWdodDtNP2ZhPU4oTSk6dCYmIXkmJihmYT1uKGYsbCxZLFwiZGVwdGhcIixcInVpbnQzMlwiKSk7SD9LPU4oSCk6eSYmIXQmJihLPW4oZixsLCExLFwic3RlbmNpbFwiLFwidWludDhcIikpO3U/Tz1OKHUpOiFNJiYhSCYmeSYmdCYmKE89bihmLGwsWSxcImRlcHRoIHN0ZW5jaWxcIixcImRlcHRoIHN0ZW5jaWxcIikpO3Q9bnVsbDtmb3Ioaz0wO2s8RC5sZW5ndGg7KytrKUUoRFtrXSxmLGwpLERba10mJkRba10udGV4dHVyZSYmKHk9eFtEW2tdLnRleHR1cmUuX3RleHR1cmUuZm9ybWF0XSpyW0Rba10udGV4dHVyZS5fdGV4dHVyZS50eXBlXSxudWxsPT09XG50JiYodD15KSk7RShmYSxmLGwpO0UoSyxmLGwpO0UoTyxmLGwpO0woZyk7Zy53aWR0aD1mO2cuaGVpZ2h0PWw7Zy5jb2xvckF0dGFjaG1lbnRzPUQ7Zy5kZXB0aEF0dGFjaG1lbnQ9ZmE7Zy5zdGVuY2lsQXR0YWNobWVudD1LO2cuZGVwdGhTdGVuY2lsQXR0YWNobWVudD1PO2MuY29sb3I9RC5tYXAobSk7Yy5kZXB0aD1tKGZhKTtjLnN0ZW5jaWw9bShLKTtjLmRlcHRoU3RlbmNpbD1tKE8pO2Mud2lkdGg9Zy53aWR0aDtjLmhlaWdodD1nLmhlaWdodDtoKGcpO3JldHVybiBjfXZhciBnPW5ldyB1O3QuZnJhbWVidWZmZXJDb3VudCsrO2MoYSxiKTtyZXR1cm4gayhjLHtyZXNpemU6ZnVuY3Rpb24oYSxiKXt2YXIgaz1hfDAsZj1ifDB8fGs7aWYoaz09PWcud2lkdGgmJmY9PT1nLmhlaWdodClyZXR1cm4gYztmb3IodmFyIG09Zy5jb2xvckF0dGFjaG1lbnRzLGw9MDtsPG0ubGVuZ3RoOysrbClCKG1bbF0sayxmKTtCKGcuZGVwdGhBdHRhY2htZW50LGssZik7QihnLnN0ZW5jaWxBdHRhY2htZW50LFxuayxmKTtCKGcuZGVwdGhTdGVuY2lsQXR0YWNobWVudCxrLGYpO2cud2lkdGg9Yy53aWR0aD1rO2cuaGVpZ2h0PWMuaGVpZ2h0PWY7aChnKTtyZXR1cm4gY30sX3JlZ2xUeXBlOlwiZnJhbWVidWZmZXJcIixfZnJhbWVidWZmZXI6ZyxkZXN0cm95OmZ1bmN0aW9uKCl7SChnKTtMKGcpfX0pfXZhciBLYT17Y3VyOm51bGwsbmV4dDpudWxsLGRpcnR5OiExfSxMYT1bXCJyZ2JhXCJdLHphPVtcInJnYmE0XCIsXCJyZ2I1NjVcIixcInJnYjUgYTFcIl07YS5leHRfc3JnYiYmemEucHVzaChcInNyZ2JhXCIpO2EuZXh0X2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0JiZ6YS5wdXNoKFwicmdiYTE2ZlwiLFwicmdiMTZmXCIpO2Eud2ViZ2xfY29sb3JfYnVmZmVyX2Zsb2F0JiZ6YS5wdXNoKFwicmdiYTMyZlwiKTt2YXIgR2E9W1widWludDhcIl07YS5vZXNfdGV4dHVyZV9oYWxmX2Zsb2F0JiZHYS5wdXNoKFwiaGFsZiBmbG9hdFwiLFwiZmxvYXQxNlwiKTthLm9lc190ZXh0dXJlX2Zsb2F0JiZHYS5wdXNoKFwiZmxvYXRcIixcImZsb2F0MzJcIik7dmFyIFo9XG4wLEQ9e307cmV0dXJuIGsoS2Ese2dldEZyYW1lYnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVyblwiZnVuY3Rpb25cIj09PXR5cGVvZiBhJiZcImZyYW1lYnVmZmVyXCI9PT1hLl9yZWdsVHlwZSYmKGE9YS5fZnJhbWVidWZmZXIsYSBpbnN0YW5jZW9mIHUpP2E6bnVsbH0sY3JlYXRlOmZhLGNyZWF0ZUN1YmU6ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYyhhKXt2YXIgZyxoPXtjb2xvcjpudWxsfSxtPTAsbD1udWxsO2c9XCJyZ2JhXCI7dmFyIG49XCJ1aW50OFwiLHI9MTtpZihcIm51bWJlclwiPT09dHlwZW9mIGEpbT1hfDA7ZWxzZSBpZihhKXtcInNoYXBlXCJpbiBhP209YS5zaGFwZVswXTooXCJyYWRpdXNcImluIGEmJihtPWEucmFkaXVzfDApLFwid2lkdGhcImluIGE/bT1hLndpZHRofDA6XCJoZWlnaHRcImluIGEmJihtPWEuaGVpZ2h0fDApKTtpZihcImNvbG9yXCJpbiBhfHxcImNvbG9yc1wiaW4gYSlsPWEuY29sb3J8fGEuY29sb3JzLEFycmF5LmlzQXJyYXkobCk7bHx8KFwiY29sb3JDb3VudFwiaW4gYSYmKHI9YS5jb2xvckNvdW50fFxuMCksXCJjb2xvclR5cGVcImluIGEmJihuPWEuY29sb3JUeXBlKSxcImNvbG9yRm9ybWF0XCJpbiBhJiYoZz1hLmNvbG9yRm9ybWF0KSk7XCJkZXB0aFwiaW4gYSYmKGguZGVwdGg9YS5kZXB0aCk7XCJzdGVuY2lsXCJpbiBhJiYoaC5zdGVuY2lsPWEuc3RlbmNpbCk7XCJkZXB0aFN0ZW5jaWxcImluIGEmJihoLmRlcHRoU3RlbmNpbD1hLmRlcHRoU3RlbmNpbCl9ZWxzZSBtPTE7aWYobClpZihBcnJheS5pc0FycmF5KGwpKWZvcihhPVtdLGc9MDtnPGwubGVuZ3RoOysrZylhW2ddPWxbZ107ZWxzZSBhPVtsXTtlbHNlIGZvcihhPUFycmF5KHIpLGw9e3JhZGl1czptLGZvcm1hdDpnLHR5cGU6bn0sZz0wO2c8cjsrK2cpYVtnXT1mLmNyZWF0ZUN1YmUobCk7aC5jb2xvcj1BcnJheShhLmxlbmd0aCk7Zm9yKGc9MDtnPGEubGVuZ3RoOysrZylyPWFbZ10sbT1tfHxyLndpZHRoLGguY29sb3JbZ109e3RhcmdldDozNDA2OSxkYXRhOmFbZ119O2ZvcihnPTA7Nj5nOysrZyl7Zm9yKHI9MDtyPGEubGVuZ3RoOysrciloLmNvbG9yW3JdLnRhcmdldD1cbjM0MDY5K2c7MDxnJiYoaC5kZXB0aD1iWzBdLmRlcHRoLGguc3RlbmNpbD1iWzBdLnN0ZW5jaWwsaC5kZXB0aFN0ZW5jaWw9YlswXS5kZXB0aFN0ZW5jaWwpO2lmKGJbZ10pYltnXShoKTtlbHNlIGJbZ109ZmEoaCl9cmV0dXJuIGsoYyx7d2lkdGg6bSxoZWlnaHQ6bSxjb2xvcjphfSl9dmFyIGI9QXJyYXkoNik7YyhhKTtyZXR1cm4gayhjLHtmYWNlczpiLHJlc2l6ZTpmdW5jdGlvbihhKXt2YXIgZz1hfDA7aWYoZz09PWMud2lkdGgpcmV0dXJuIGM7dmFyIGg9Yy5jb2xvcjtmb3IoYT0wO2E8aC5sZW5ndGg7KythKWhbYV0ucmVzaXplKGcpO2ZvcihhPTA7Nj5hOysrYSliW2FdLnJlc2l6ZShnKTtjLndpZHRoPWMuaGVpZ2h0PWc7cmV0dXJuIGN9LF9yZWdsVHlwZTpcImZyYW1lYnVmZmVyQ3ViZVwiLGRlc3Ryb3k6ZnVuY3Rpb24oKXtiLmZvckVhY2goZnVuY3Rpb24oYSl7YS5kZXN0cm95KCl9KX19KX0sY2xlYXI6ZnVuY3Rpb24oKXtsKEQpLmZvckVhY2goSCl9LHJlc3RvcmU6ZnVuY3Rpb24oKXtsKEQpLmZvckVhY2goZnVuY3Rpb24oYSl7YS5mcmFtZWJ1ZmZlcj1cbmMuY3JlYXRlRnJhbWVidWZmZXIoKTtoKGEpfSl9fSl9fSx7XCIuL3V0aWwvZXh0ZW5kXCI6MjIsXCIuL3V0aWwvdmFsdWVzXCI6MzF9XSwxMjpbZnVuY3Rpb24oZixwLHUpe3AuZXhwb3J0cz1mdW5jdGlvbihmLGspe3ZhciB4PTE7ay5leHRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMmJih4PWYuZ2V0UGFyYW1ldGVyKDM0MDQ3KSk7dmFyIHI9MSxjPTE7ay53ZWJnbF9kcmF3X2J1ZmZlcnMmJihyPWYuZ2V0UGFyYW1ldGVyKDM0ODUyKSxjPWYuZ2V0UGFyYW1ldGVyKDM2MDYzKSk7cmV0dXJue2NvbG9yQml0czpbZi5nZXRQYXJhbWV0ZXIoMzQxMCksZi5nZXRQYXJhbWV0ZXIoMzQxMSksZi5nZXRQYXJhbWV0ZXIoMzQxMiksZi5nZXRQYXJhbWV0ZXIoMzQxMyldLGRlcHRoQml0czpmLmdldFBhcmFtZXRlcigzNDE0KSxzdGVuY2lsQml0czpmLmdldFBhcmFtZXRlcigzNDE1KSxzdWJwaXhlbEJpdHM6Zi5nZXRQYXJhbWV0ZXIoMzQwOCksZXh0ZW5zaW9uczpPYmplY3Qua2V5cyhrKS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuISFrW2FdfSksXG5tYXhBbmlzb3Ryb3BpYzp4LG1heERyYXdidWZmZXJzOnIsbWF4Q29sb3JBdHRhY2htZW50czpjLHBvaW50U2l6ZURpbXM6Zi5nZXRQYXJhbWV0ZXIoMzM5MDEpLGxpbmVXaWR0aERpbXM6Zi5nZXRQYXJhbWV0ZXIoMzM5MDIpLG1heFZpZXdwb3J0RGltczpmLmdldFBhcmFtZXRlcigzMzg2KSxtYXhDb21iaW5lZFRleHR1cmVVbml0czpmLmdldFBhcmFtZXRlcigzNTY2MSksbWF4Q3ViZU1hcFNpemU6Zi5nZXRQYXJhbWV0ZXIoMzQwNzYpLG1heFJlbmRlcmJ1ZmZlclNpemU6Zi5nZXRQYXJhbWV0ZXIoMzQwMjQpLG1heFRleHR1cmVVbml0czpmLmdldFBhcmFtZXRlcigzNDkzMCksbWF4VGV4dHVyZVNpemU6Zi5nZXRQYXJhbWV0ZXIoMzM3OSksbWF4QXR0cmlidXRlczpmLmdldFBhcmFtZXRlcigzNDkyMSksbWF4VmVydGV4VW5pZm9ybXM6Zi5nZXRQYXJhbWV0ZXIoMzYzNDcpLG1heFZlcnRleFRleHR1cmVVbml0czpmLmdldFBhcmFtZXRlcigzNTY2MCksbWF4VmFyeWluZ1ZlY3RvcnM6Zi5nZXRQYXJhbWV0ZXIoMzYzNDgpLFxubWF4RnJhZ21lbnRVbmlmb3JtczpmLmdldFBhcmFtZXRlcigzNjM0OSksZ2xzbDpmLmdldFBhcmFtZXRlcigzNTcyNCkscmVuZGVyZXI6Zi5nZXRQYXJhbWV0ZXIoNzkzNyksdmVuZG9yOmYuZ2V0UGFyYW1ldGVyKDc5MzYpLHZlcnNpb246Zi5nZXRQYXJhbWV0ZXIoNzkzOCl9fX0se31dLDEzOltmdW5jdGlvbihmLHAsdSl7dmFyIGw9ZihcIi4vdXRpbC9pcy10eXBlZC1hcnJheVwiKTtwLmV4cG9ydHM9ZnVuY3Rpb24oayxmLHIsYyxhLGIpe3JldHVybiBmdW5jdGlvbihhKXt2YXIgYjtiPW51bGw9PT1mLm5leHQ/NTEyMTpmLm5leHQuY29sb3JBdHRhY2htZW50c1swXS50ZXh0dXJlLl90ZXh0dXJlLnR5cGU7dmFyIHQ9MCx5PTAsZz1jLmZyYW1lYnVmZmVyV2lkdGgscD1jLmZyYW1lYnVmZmVySGVpZ2h0LEM9bnVsbDtsKGEpP0M9YTphJiYodD1hLnh8MCx5PWEueXwwLGc9KGEud2lkdGh8fGMuZnJhbWVidWZmZXJXaWR0aC10KXwwLHA9KGEuaGVpZ2h0fHxjLmZyYW1lYnVmZmVySGVpZ2h0LVxueSl8MCxDPWEuZGF0YXx8bnVsbCk7cigpO2E9ZypwKjQ7Q3x8KDUxMjE9PT1iP0M9bmV3IFVpbnQ4QXJyYXkoYSk6NTEyNj09PWImJihDPUN8fG5ldyBGbG9hdDMyQXJyYXkoYSkpKTtrLnBpeGVsU3RvcmVpKDMzMzMsNCk7ay5yZWFkUGl4ZWxzKHQseSxnLHAsNjQwOCxiLEMpO3JldHVybiBDfX19LHtcIi4vdXRpbC9pcy10eXBlZC1hcnJheVwiOjI2fV0sMTQ6W2Z1bmN0aW9uKGYscCx1KXt2YXIgbD1mKFwiLi91dGlsL3ZhbHVlc1wiKSxrPVtdO2tbMzI4NTRdPTI7a1szMjg1NV09MjtrWzM2MTk0XT0yO2tbMzMxODldPTI7a1szNjE2OF09MTtrWzM0MDQxXT00O2tbMzU5MDddPTQ7a1szNDgzNl09MTY7a1szNDg0Ml09ODtrWzM0ODQzXT02O3AuZXhwb3J0cz1mdW5jdGlvbihmLHIsYyxhLGIpe2Z1bmN0aW9uIHAoYSl7dGhpcy5pZD1nKys7dGhpcy5yZWZDb3VudD0xO3RoaXMucmVuZGVyYnVmZmVyPWE7dGhpcy5mb3JtYXQ9MzI4NTQ7dGhpcy5oZWlnaHQ9dGhpcy53aWR0aD0wO2IucHJvZmlsZSYmXG4odGhpcy5zdGF0cz17c2l6ZTowfSl9ZnVuY3Rpb24gTShiKXt2YXIgYz1iLnJlbmRlcmJ1ZmZlcjtmLmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsbnVsbCk7Zi5kZWxldGVSZW5kZXJidWZmZXIoYyk7Yi5yZW5kZXJidWZmZXI9bnVsbDtiLnJlZkNvdW50PTA7ZGVsZXRlIEVbYi5pZF07YS5yZW5kZXJidWZmZXJDb3VudC0tfXZhciB0PXtyZ2JhNDozMjg1NCxyZ2I1NjU6MzYxOTQsXCJyZ2I1IGExXCI6MzI4NTUsZGVwdGg6MzMxODksc3RlbmNpbDozNjE2OCxcImRlcHRoIHN0ZW5jaWxcIjozNDA0MX07ci5leHRfc3JnYiYmKHQuc3JnYmE9MzU5MDcpO3IuZXh0X2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0JiYodC5yZ2JhMTZmPTM0ODQyLHQucmdiMTZmPTM0ODQzKTtyLndlYmdsX2NvbG9yX2J1ZmZlcl9mbG9hdCYmKHQucmdiYTMyZj0zNDgzNik7dmFyIHk9W107T2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihhKXt5W3RbYV1dPWF9KTt2YXIgZz0wLEU9e307cC5wcm90b3R5cGUuZGVjUmVmPVxuZnVuY3Rpb24oKXswPj0tLXRoaXMucmVmQ291bnQmJk0odGhpcyl9O2IucHJvZmlsZSYmKGEuZ2V0VG90YWxSZW5kZXJidWZmZXJTaXplPWZ1bmN0aW9uKCl7dmFyIGE9MDtPYmplY3Qua2V5cyhFKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2ErPUVbYl0uc3RhdHMuc2l6ZX0pO3JldHVybiBhfSk7cmV0dXJue2NyZWF0ZTpmdW5jdGlvbihjLGcpe2Z1bmN0aW9uIG4oYSxjKXt2YXIgZz0wLGw9MCxoPTMyODU0O1wib2JqZWN0XCI9PT10eXBlb2YgYSYmYT8oXCJzaGFwZVwiaW4gYT8obD1hLnNoYXBlLGc9bFswXXwwLGw9bFsxXXwwKTooXCJyYWRpdXNcImluIGEmJihnPWw9YS5yYWRpdXN8MCksXCJ3aWR0aFwiaW4gYSYmKGc9YS53aWR0aHwwKSxcImhlaWdodFwiaW4gYSYmKGw9YS5oZWlnaHR8MCkpLFwiZm9ybWF0XCJpbiBhJiYoaD10W2EuZm9ybWF0XSkpOlwibnVtYmVyXCI9PT10eXBlb2YgYT8oZz1hfDAsbD1cIm51bWJlclwiPT09dHlwZW9mIGM/Y3wwOmcpOmF8fChnPWw9MSk7aWYoZyE9PW0ud2lkdGh8fGwhPT1cbm0uaGVpZ2h0fHxoIT09bS5mb3JtYXQpcmV0dXJuIG4ud2lkdGg9bS53aWR0aD1nLG4uaGVpZ2h0PW0uaGVpZ2h0PWwsbS5mb3JtYXQ9aCxmLmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsbS5yZW5kZXJidWZmZXIpLGYucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSxoLGcsbCksYi5wcm9maWxlJiYobS5zdGF0cy5zaXplPWtbbS5mb3JtYXRdKm0ud2lkdGgqbS5oZWlnaHQpLG4uZm9ybWF0PXlbbS5mb3JtYXRdLG59dmFyIG09bmV3IHAoZi5jcmVhdGVSZW5kZXJidWZmZXIoKSk7RVttLmlkXT1tO2EucmVuZGVyYnVmZmVyQ291bnQrKztuKGMsZyk7bi5yZXNpemU9ZnVuY3Rpb24oYSxjKXt2YXIgZz1hfDAsbD1jfDB8fGc7aWYoZz09PW0ud2lkdGgmJmw9PT1tLmhlaWdodClyZXR1cm4gbjtuLndpZHRoPW0ud2lkdGg9ZztuLmhlaWdodD1tLmhlaWdodD1sO2YuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxtLnJlbmRlcmJ1ZmZlcik7Zi5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLG0uZm9ybWF0LFxuZyxsKTtiLnByb2ZpbGUmJihtLnN0YXRzLnNpemU9a1ttLmZvcm1hdF0qbS53aWR0aCptLmhlaWdodCk7cmV0dXJuIG59O24uX3JlZ2xUeXBlPVwicmVuZGVyYnVmZmVyXCI7bi5fcmVuZGVyYnVmZmVyPW07Yi5wcm9maWxlJiYobi5zdGF0cz1tLnN0YXRzKTtuLmRlc3Ryb3k9ZnVuY3Rpb24oKXttLmRlY1JlZigpfTtyZXR1cm4gbn0sY2xlYXI6ZnVuY3Rpb24oKXtsKEUpLmZvckVhY2goTSl9LHJlc3RvcmU6ZnVuY3Rpb24oKXtsKEUpLmZvckVhY2goZnVuY3Rpb24oYSl7YS5yZW5kZXJidWZmZXI9Zi5jcmVhdGVSZW5kZXJidWZmZXIoKTtmLmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsYS5yZW5kZXJidWZmZXIpO2YucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSxhLmZvcm1hdCxhLndpZHRoLGEuaGVpZ2h0KX0pO2YuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxudWxsKX19fX0se1wiLi91dGlsL3ZhbHVlc1wiOjMxfV0sMTU6W2Z1bmN0aW9uKGYscCx1KXt2YXIgbD1mKFwiLi91dGlsL3ZhbHVlc1wiKTtcbnAuZXhwb3J0cz1mdW5jdGlvbihmLHgscixjKXtmdW5jdGlvbiBhKGEsYyxiLGcpe3RoaXMubmFtZT1hO3RoaXMuaWQ9Yzt0aGlzLmxvY2F0aW9uPWI7dGhpcy5pbmZvPWd9ZnVuY3Rpb24gYihhLGMpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKWlmKGFbYl0uaWQ9PT1jLmlkKXthW2JdLmxvY2F0aW9uPWMubG9jYXRpb247cmV0dXJufWEucHVzaChjKX1mdW5jdGlvbiBwKGEsYyxiKXtiPTM1NjMyPT09YT95Omc7dmFyIGw9YltjXTtpZighbCl7dmFyIHI9eC5zdHIoYyksbD1mLmNyZWF0ZVNoYWRlcihhKTtmLnNoYWRlclNvdXJjZShsLHIpO2YuY29tcGlsZVNoYWRlcihsKTtiW2NdPWx9cmV0dXJuIGx9ZnVuY3Rpb24gTShhLGIpe3RoaXMuaWQ9dSsrO3RoaXMuZnJhZ0lkPWE7dGhpcy52ZXJ0SWQ9Yjt0aGlzLnByb2dyYW09bnVsbDt0aGlzLnVuaWZvcm1zPVtdO3RoaXMuYXR0cmlidXRlcz1bXTtjLnByb2ZpbGUmJih0aGlzLnN0YXRzPXt1bmlmb3Jtc0NvdW50OjAsYXR0cmlidXRlc0NvdW50OjB9KX1cbmZ1bmN0aW9uIHQoZyxtKXt2YXIgbCxyO2w9cCgzNTYzMixnLmZyYWdJZCk7cj1wKDM1NjMzLGcudmVydElkKTt2YXIgdD1nLnByb2dyYW09Zi5jcmVhdGVQcm9ncmFtKCk7Zi5hdHRhY2hTaGFkZXIodCxsKTtmLmF0dGFjaFNoYWRlcih0LHIpO2YubGlua1Byb2dyYW0odCk7dmFyIHk9Zi5nZXRQcm9ncmFtUGFyYW1ldGVyKHQsMzU3MTgpO2MucHJvZmlsZSYmKGcuc3RhdHMudW5pZm9ybXNDb3VudD15KTt2YXIgaD1nLnVuaWZvcm1zO2ZvcihsPTA7bDx5OysrbClpZihyPWYuZ2V0QWN0aXZlVW5pZm9ybSh0LGwpKWlmKDE8ci5zaXplKWZvcih2YXIgQz0wO0M8ci5zaXplOysrQyl7dmFyIEU9ci5uYW1lLnJlcGxhY2UoXCJbMF1cIixcIltcIitDK1wiXVwiKTtiKGgsbmV3IGEoRSx4LmlkKEUpLGYuZ2V0VW5pZm9ybUxvY2F0aW9uKHQsRSkscikpfWVsc2UgYihoLG5ldyBhKHIubmFtZSx4LmlkKHIubmFtZSksZi5nZXRVbmlmb3JtTG9jYXRpb24odCxyLm5hbWUpLHIpKTt5PWYuZ2V0UHJvZ3JhbVBhcmFtZXRlcih0LFxuMzU3MjEpO2MucHJvZmlsZSYmKGcuc3RhdHMuYXR0cmlidXRlc0NvdW50PXkpO2g9Zy5hdHRyaWJ1dGVzO2ZvcihsPTA7bDx5OysrbCkocj1mLmdldEFjdGl2ZUF0dHJpYih0LGwpKSYmYihoLG5ldyBhKHIubmFtZSx4LmlkKHIubmFtZSksZi5nZXRBdHRyaWJMb2NhdGlvbih0LHIubmFtZSkscikpfXZhciB5PXt9LGc9e30sRT17fSxDPVtdLHU9MDtjLnByb2ZpbGUmJihyLmdldE1heFVuaWZvcm1zQ291bnQ9ZnVuY3Rpb24oKXt2YXIgYT0wO0MuZm9yRWFjaChmdW5jdGlvbihiKXtiLnN0YXRzLnVuaWZvcm1zQ291bnQ+YSYmKGE9Yi5zdGF0cy51bmlmb3Jtc0NvdW50KX0pO3JldHVybiBhfSxyLmdldE1heEF0dHJpYnV0ZXNDb3VudD1mdW5jdGlvbigpe3ZhciBhPTA7Qy5mb3JFYWNoKGZ1bmN0aW9uKGIpe2Iuc3RhdHMuYXR0cmlidXRlc0NvdW50PmEmJihhPWIuc3RhdHMuYXR0cmlidXRlc0NvdW50KX0pO3JldHVybiBhfSk7cmV0dXJue2NsZWFyOmZ1bmN0aW9uKCl7dmFyIGE9Zi5kZWxldGVTaGFkZXIuYmluZChmKTtcbmwoeSkuZm9yRWFjaChhKTt5PXt9O2woZykuZm9yRWFjaChhKTtnPXt9O0MuZm9yRWFjaChmdW5jdGlvbihhKXtmLmRlbGV0ZVByb2dyYW0oYS5wcm9ncmFtKX0pO0MubGVuZ3RoPTA7RT17fTtyLnNoYWRlckNvdW50PTB9LHByb2dyYW06ZnVuY3Rpb24oYSxiLGMpe3Iuc2hhZGVyQ291bnQrKzt2YXIgZz1FW2JdO2d8fChnPUVbYl09e30pO3ZhciBmPWdbYV07Znx8KGY9bmV3IE0oYixhKSx0KGYsYyksZ1thXT1mLEMucHVzaChmKSk7cmV0dXJuIGZ9LHJlc3RvcmU6ZnVuY3Rpb24oKXt5PXt9O2c9e307Zm9yKHZhciBhPTA7YTxDLmxlbmd0aDsrK2EpdChDW2FdKX0sc2hhZGVyOnAsZnJhZzotMSx2ZXJ0Oi0xfX19LHtcIi4vdXRpbC92YWx1ZXNcIjozMX1dLDE2OltmdW5jdGlvbihmLHAsdSl7cC5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJue2J1ZmZlckNvdW50OjAsZWxlbWVudHNDb3VudDowLGZyYW1lYnVmZmVyQ291bnQ6MCxzaGFkZXJDb3VudDowLHRleHR1cmVDb3VudDowLGN1YmVDb3VudDowLFxucmVuZGVyYnVmZmVyQ291bnQ6MCxtYXhUZXh0dXJlVW5pdHM6MH19fSx7fV0sMTc6W2Z1bmN0aW9uKGYscCx1KXtwLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgZj17XCJcIjowfSxrPVtcIlwiXTtyZXR1cm57aWQ6ZnVuY3Rpb24oeCl7dmFyIHI9Zlt4XTtpZihyKXJldHVybiByO3I9Zlt4XT1rLmxlbmd0aDtrLnB1c2goeCk7cmV0dXJuIHJ9LHN0cjpmdW5jdGlvbihmKXtyZXR1cm4ga1tmXX19fX0se31dLDE4OltmdW5jdGlvbihmLHAsdSl7ZnVuY3Rpb24gbChhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKSYmKDA9PT1hLmxlbmd0aHx8XCJudW1iZXJcIj09PXR5cGVvZiBhWzBdKX1mdW5jdGlvbiBrKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpJiYwIT09YS5sZW5ndGgmJkUoYVswXSk/ITA6ITF9ZnVuY3Rpb24geChhKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpfWZ1bmN0aW9uIHIoYSl7aWYoIWEpcmV0dXJuITE7dmFyIGI9eChhKTtyZXR1cm4gMDw9WS5pbmRleE9mKGIpP1xuITA6bChhKXx8ayhhKXx8dChhKX1mdW5jdGlvbiBjKGEsYil7MzYxOTM9PT1hLnR5cGU/KGEuZGF0YT1nKGIpLHkuZnJlZVR5cGUoYikpOmEuZGF0YT1ifWZ1bmN0aW9uIGEoYSxiLGMsZyxmLGspe2E9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBIW2FdP0hbYV06QlthXSpMW2JdO2smJihhKj02KTtpZihmKXtmb3IoZz0wOzE8PWM7KWcrPWEqYypjLGMvPTI7cmV0dXJuIGd9cmV0dXJuIGEqYypnfXZhciBiPWYoXCIuL3V0aWwvZXh0ZW5kXCIpLEY9ZihcIi4vdXRpbC92YWx1ZXNcIiksTT1mKFwiLi91dGlsL2lzLXR5cGVkLWFycmF5XCIpLHQ9ZihcIi4vdXRpbC9pcy1uZGFycmF5XCIpLHk9ZihcIi4vdXRpbC9wb29sXCIpLGc9ZihcIi4vdXRpbC90by1oYWxmLWZsb2F0XCIpLEU9ZihcIi4vdXRpbC9pcy1hcnJheS1saWtlXCIpLEM9ZihcIi4vdXRpbC9mbGF0dGVuXCIpO3U9ZihcIi4vY29uc3RhbnRzL2FycmF5dHlwZXMuanNvblwiKTt2YXIgTj1mKFwiLi9jb25zdGFudHMvYXJyYXl0eXBlcy5qc29uXCIpLG49Wzk5ODQsOTk4Nixcbjk5ODUsOTk4N10sbT1bMCw2NDA5LDY0MTAsNjQwNyw2NDA4XSxCPXt9O0JbNjQwOV09Qls2NDA2XT1CWzY0MDJdPTE7QlszNDA0MV09Qls2NDEwXT0yO0JbNjQwN109QlszNTkwNF09MztCWzY0MDhdPUJbMzU5MDZdPTQ7dmFyIFk9T2JqZWN0LmtleXModSkuY29uY2F0KFtcIltvYmplY3QgSFRNTENhbnZhc0VsZW1lbnRdXCIsXCJbb2JqZWN0IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRF1cIixcIltvYmplY3QgSFRNTEltYWdlRWxlbWVudF1cIixcIltvYmplY3QgSFRNTFZpZGVvRWxlbWVudF1cIl0pLEw9W107TFs1MTIxXT0xO0xbNTEyNl09NDtMWzM2MTkzXT0yO0xbNTEyM109MjtMWzUxMjVdPTQ7dmFyIEg9W107SFszMjg1NF09MjtIWzMyODU1XT0yO0hbMzYxOTRdPTI7SFszNDA0MV09NDtIWzMzNzc2XT0uNTtIWzMzNzc3XT0uNTtIWzMzNzc4XT0xO0hbMzM3NzldPTE7SFszNTk4Nl09LjU7SFszNTk4N109MTtIWzM0Nzk4XT0xO0hbMzU4NDBdPS41O0hbMzU4NDFdPS4yNTtIWzM1ODQyXT0uNTtcbkhbMzU4NDNdPS4yNTtIWzM2MTk2XT0uNTtwLmV4cG9ydHM9ZnVuY3Rpb24oaCxmLHAsdSxILEwsWil7ZnVuY3Rpb24gRCgpe3RoaXMuZm9ybWF0PXRoaXMuaW50ZXJuYWxmb3JtYXQ9NjQwODt0aGlzLnR5cGU9NTEyMTt0aGlzLmZsaXBZPXRoaXMucHJlbXVsdGlwbHlBbHBoYT10aGlzLmNvbXByZXNzZWQ9ITE7dGhpcy51bnBhY2tBbGlnbm1lbnQ9MTt0aGlzLmNoYW5uZWxzPXRoaXMuaGVpZ2h0PXRoaXMud2lkdGg9dGhpcy5jb2xvclNwYWNlPTB9ZnVuY3Rpb24gSyhhLGIpe2EuaW50ZXJuYWxmb3JtYXQ9Yi5pbnRlcm5hbGZvcm1hdDthLmZvcm1hdD1iLmZvcm1hdDthLnR5cGU9Yi50eXBlO2EuY29tcHJlc3NlZD1iLmNvbXByZXNzZWQ7YS5wcmVtdWx0aXBseUFscGhhPWIucHJlbXVsdGlwbHlBbHBoYTthLmZsaXBZPWIuZmxpcFk7YS51bnBhY2tBbGlnbm1lbnQ9Yi51bnBhY2tBbGlnbm1lbnQ7YS5jb2xvclNwYWNlPWIuY29sb3JTcGFjZTthLndpZHRoPWIud2lkdGg7YS5oZWlnaHQ9XG5iLmhlaWdodDthLmNoYW5uZWxzPWIuY2hhbm5lbHN9ZnVuY3Rpb24gWShhLGIpe2lmKFwib2JqZWN0XCI9PT10eXBlb2YgYiYmYil7XCJwcmVtdWx0aXBseUFscGhhXCJpbiBiJiYoYS5wcmVtdWx0aXBseUFscGhhPWIucHJlbXVsdGlwbHlBbHBoYSk7XCJmbGlwWVwiaW4gYiYmKGEuZmxpcFk9Yi5mbGlwWSk7XCJhbGlnbm1lbnRcImluIGImJihhLnVucGFja0FsaWdubWVudD1iLmFsaWdubWVudCk7XCJjb2xvclNwYWNlXCJpbiBiJiYoYS5jb2xvclNwYWNlPXBhW2IuY29sb3JTcGFjZV0pO1widHlwZVwiaW4gYiYmKGEudHlwZT1WW2IudHlwZV0pO3ZhciBjPWEud2lkdGgsZz1hLmhlaWdodCxoPWEuY2hhbm5lbHMsZj0hMTtcInNoYXBlXCJpbiBiPyhjPWIuc2hhcGVbMF0sZz1iLnNoYXBlWzFdLDM9PT1iLnNoYXBlLmxlbmd0aCYmKGg9Yi5zaGFwZVsyXSxmPSEwKSk6KFwicmFkaXVzXCJpbiBiJiYoYz1nPWIucmFkaXVzKSxcIndpZHRoXCJpbiBiJiYoYz1iLndpZHRoKSxcImhlaWdodFwiaW4gYiYmKGc9Yi5oZWlnaHQpLFxuXCJjaGFubmVsc1wiaW4gYiYmKGg9Yi5jaGFubmVscyxmPSEwKSk7YS53aWR0aD1jfDA7YS5oZWlnaHQ9Z3wwO2EuY2hhbm5lbHM9aHwwO2M9ITE7XCJmb3JtYXRcImluIGImJihjPWIuZm9ybWF0LGc9YS5pbnRlcm5hbGZvcm1hdD1YW2NdLGEuZm9ybWF0PVBhW2ddLGMgaW4gViYmIShcInR5cGVcImluIGIpJiYoYS50eXBlPVZbY10pLGMgaW4gVCYmKGEuY29tcHJlc3NlZD0hMCksYz0hMCk7IWYmJmM/YS5jaGFubmVscz1CW2EuZm9ybWF0XTpmJiYhYyYmYS5jaGFubmVscyE9PW1bYS5mb3JtYXRdJiYoYS5mb3JtYXQ9YS5pbnRlcm5hbGZvcm1hdD1tW2EuY2hhbm5lbHNdKX19ZnVuY3Rpb24gdmEoYSl7aC5waXhlbFN0b3JlaSgzNzQ0MCxhLmZsaXBZKTtoLnBpeGVsU3RvcmVpKDM3NDQxLGEucHJlbXVsdGlwbHlBbHBoYSk7aC5waXhlbFN0b3JlaSgzNzQ0MyxhLmNvbG9yU3BhY2UpO2gucGl4ZWxTdG9yZWkoMzMxNyxhLnVucGFja0FsaWdubWVudCl9ZnVuY3Rpb24gcSgpe0QuY2FsbCh0aGlzKTtcbnRoaXMueU9mZnNldD10aGlzLnhPZmZzZXQ9MDt0aGlzLmRhdGE9bnVsbDt0aGlzLm5lZWRzRnJlZT0hMTt0aGlzLmVsZW1lbnQ9bnVsbDt0aGlzLm5lZWRzQ29weT0hMX1mdW5jdGlvbiBTKGEsYil7dmFyIGg9bnVsbDtyKGIpP2g9YjpiJiYoWShhLGIpLFwieFwiaW4gYiYmKGEueE9mZnNldD1iLnh8MCksXCJ5XCJpbiBiJiYoYS55T2Zmc2V0PWIueXwwKSxyKGIuZGF0YSkmJihoPWIuZGF0YSkpO2lmKGIuY29weSl7dmFyIGY9SC52aWV3cG9ydFdpZHRoLG49SC52aWV3cG9ydEhlaWdodDthLndpZHRoPWEud2lkdGh8fGYtYS54T2Zmc2V0O2EuaGVpZ2h0PWEuaGVpZ2h0fHxuLWEueU9mZnNldDthLm5lZWRzQ29weT0hMH1lbHNlIGlmKCFoKWEud2lkdGg9YS53aWR0aHx8MSxhLmhlaWdodD1hLmhlaWdodHx8MSxhLmNoYW5uZWxzPWEuY2hhbm5lbHN8fDQ7ZWxzZSBpZihNKGgpKWEuY2hhbm5lbHM9YS5jaGFubmVsc3x8NCxhLmRhdGE9aCxcInR5cGVcImluIGJ8fDUxMjEhPT1hLnR5cGV8fChhLnR5cGU9XG5OW09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChoKV18MCk7ZWxzZSBpZihsKGgpKXthLmNoYW5uZWxzPWEuY2hhbm5lbHN8fDQ7Zj1oO249Zi5sZW5ndGg7c3dpdGNoKGEudHlwZSl7Y2FzZSA1MTIxOmNhc2UgNTEyMzpjYXNlIDUxMjU6Y2FzZSA1MTI2Om49eS5hbGxvY1R5cGUoYS50eXBlLG4pO24uc2V0KGYpO2EuZGF0YT1uO2JyZWFrO2Nhc2UgMzYxOTM6YS5kYXRhPWcoZil9YS5hbGlnbm1lbnQ9MTthLm5lZWRzRnJlZT0hMH1lbHNlIGlmKHQoaCkpe2Y9aC5kYXRhO0FycmF5LmlzQXJyYXkoZil8fDUxMjEhPT1hLnR5cGV8fChhLnR5cGU9TltPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZildfDApO3ZhciBuPWguc2hhcGUscT1oLnN0cmlkZSxwLEYsZCx2OzM9PT1uLmxlbmd0aD8oZD1uWzJdLHY9cVsyXSk6dj1kPTE7cD1uWzBdO0Y9blsxXTtuPXFbMF07cT1xWzFdO2EuYWxpZ25tZW50PTE7YS53aWR0aD1wO2EuaGVpZ2h0PUY7YS5jaGFubmVscz1kO2EuZm9ybWF0PVxuYS5pbnRlcm5hbGZvcm1hdD1tW2RdO2EubmVlZHNGcmVlPSEwO3A9djtoPWgub2Zmc2V0O2Q9YS53aWR0aDt2PWEuaGVpZ2h0O0Y9YS5jaGFubmVscztmb3IodmFyIHU9eS5hbGxvY1R5cGUoMzYxOTM9PT1hLnR5cGU/NTEyNjphLnR5cGUsZCp2KkYpLEI9MCxBPTA7QTx2OysrQSlmb3IodmFyIEQ9MDtEPGQ7KytEKWZvcih2YXIgdWE9MDt1YTxGOysrdWEpdVtCKytdPWZbbipEK3EqQStwKnVhK2hdO2MoYSx1KX1lbHNlIGlmKFwiW29iamVjdCBIVE1MQ2FudmFzRWxlbWVudF1cIj09PXgoaCl8fFwiW29iamVjdCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRdXCI9PT14KGgpKVwiW29iamVjdCBIVE1MQ2FudmFzRWxlbWVudF1cIj09PXgoaCk/YS5lbGVtZW50PWg6YS5lbGVtZW50PWguY2FudmFzLGEud2lkdGg9YS5lbGVtZW50LndpZHRoLGEuaGVpZ2h0PWEuZWxlbWVudC5oZWlnaHQsYS5jaGFubmVscz00O2Vsc2UgaWYoXCJbb2JqZWN0IEhUTUxJbWFnZUVsZW1lbnRdXCI9PT14KGgpKWEuZWxlbWVudD1cbmgsYS53aWR0aD1oLm5hdHVyYWxXaWR0aCxhLmhlaWdodD1oLm5hdHVyYWxIZWlnaHQsYS5jaGFubmVscz00O2Vsc2UgaWYoXCJbb2JqZWN0IEhUTUxWaWRlb0VsZW1lbnRdXCI9PT14KGgpKWEuZWxlbWVudD1oLGEud2lkdGg9aC52aWRlb1dpZHRoLGEuaGVpZ2h0PWgudmlkZW9IZWlnaHQsYS5jaGFubmVscz00O2Vsc2UgaWYoayhoKSl7Zj1hLndpZHRofHxoWzBdLmxlbmd0aDtuPWEuaGVpZ2h0fHxoLmxlbmd0aDtxPWEuY2hhbm5lbHM7cT1FKGhbMF1bMF0pP3F8fGhbMF1bMF0ubGVuZ3RoOnF8fDE7cD1DLnNoYXBlKGgpO2Q9MTtmb3Iodj0wO3Y8cC5sZW5ndGg7Kyt2KWQqPXBbdl07ZD15LmFsbG9jVHlwZSgzNjE5Mz09PWEudHlwZT81MTI2OmEudHlwZSxkKTtDLmZsYXR0ZW4oaCxwLFwiXCIsZCk7YyhhLGQpO2EuYWxpZ25tZW50PTE7YS53aWR0aD1mO2EuaGVpZ2h0PW47YS5jaGFubmVscz1xO2EuZm9ybWF0PWEuaW50ZXJuYWxmb3JtYXQ9bVtxXTthLm5lZWRzRnJlZT0hMH19ZnVuY3Rpb24gbWEoYSxcbmIsYyxnLGYpe3ZhciBrPWEuZWxlbWVudCxsPWEuZGF0YSxtPWEuaW50ZXJuYWxmb3JtYXQsZD1hLmZvcm1hdCxyPWEudHlwZSxuPWEud2lkdGgscT1hLmhlaWdodDt2YShhKTtrP2gudGV4U3ViSW1hZ2UyRChiLGYsYyxnLGQscixrKTphLmNvbXByZXNzZWQ/aC5jb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChiLGYsYyxnLG0sbixxLGwpOmEubmVlZHNDb3B5Pyh1KCksaC5jb3B5VGV4U3ViSW1hZ2UyRChiLGYsYyxnLGEueE9mZnNldCxhLnlPZmZzZXQsbixxKSk6aC50ZXhTdWJJbWFnZTJEKGIsZixjLGcsbixxLGQscixsKX1mdW5jdGlvbiBnYSgpe3JldHVybiBOYS5wb3AoKXx8bmV3IHF9ZnVuY3Rpb24gVyhhKXthLm5lZWRzRnJlZSYmeS5mcmVlVHlwZShhLmRhdGEpO3EuY2FsbChhKTtOYS5wdXNoKGEpfWZ1bmN0aW9uIFIoKXtELmNhbGwodGhpcyk7dGhpcy5nZW5NaXBtYXBzPSExO3RoaXMubWlwbWFwSGludD00MzUyO3RoaXMubWlwbWFzaz0wO3RoaXMuaW1hZ2VzPUFycmF5KDE2KX1cbmZ1bmN0aW9uIEcoYSxiLGMpe3ZhciBnPWEuaW1hZ2VzWzBdPWdhKCk7YS5taXBtYXNrPTE7Zy53aWR0aD1hLndpZHRoPWI7Zy5oZWlnaHQ9YS5oZWlnaHQ9YztnLmNoYW5uZWxzPWEuY2hhbm5lbHM9NH1mdW5jdGlvbiBiYShhLGIpe3ZhciBjPW51bGw7aWYocihiKSljPWEuaW1hZ2VzWzBdPWdhKCksSyhjLGEpLFMoYyxiKSxhLm1pcG1hc2s9MTtlbHNlIGlmKFkoYSxiKSxBcnJheS5pc0FycmF5KGIubWlwbWFwKSlmb3IodmFyIGc9Yi5taXBtYXAsaD0wO2g8Zy5sZW5ndGg7KytoKWM9YS5pbWFnZXNbaF09Z2EoKSxLKGMsYSksYy53aWR0aD4+PWgsYy5oZWlnaHQ+Pj1oLFMoYyxnW2hdKSxhLm1pcG1hc2t8PTE8PGg7ZWxzZSBjPWEuaW1hZ2VzWzBdPWdhKCksSyhjLGEpLFMoYyxiKSxhLm1pcG1hc2s9MTtLKGEsYS5pbWFnZXNbMF0pfWZ1bmN0aW9uIG5hKGEsYil7Zm9yKHZhciBjPWEuaW1hZ2VzLGc9MDtnPGMubGVuZ3RoJiZjW2ddOysrZyl7dmFyIGY9Y1tnXSxrPWIsbD1nLG09Zi5lbGVtZW50LFxuZD1mLmRhdGEscj1mLmludGVybmFsZm9ybWF0LG49Zi5mb3JtYXQscT1mLnR5cGUsdD1mLndpZHRoLHk9Zi5oZWlnaHQ7dmEoZik7bT9oLnRleEltYWdlMkQoayxsLG4sbixxLG0pOmYuY29tcHJlc3NlZD9oLmNvbXByZXNzZWRUZXhJbWFnZTJEKGssbCxyLHQseSwwLGQpOmYubmVlZHNDb3B5Pyh1KCksaC5jb3B5VGV4SW1hZ2UyRChrLGwsbixmLnhPZmZzZXQsZi55T2Zmc2V0LHQseSwwKSk6aC50ZXhJbWFnZTJEKGssbCxuLHQseSwwLG4scSxkKX19ZnVuY3Rpb24geWEoKXt2YXIgYT1KYS5wb3AoKXx8bmV3IFI7RC5jYWxsKGEpO2Zvcih2YXIgYj1hLm1pcG1hc2s9MDsxNj5iOysrYilhLmltYWdlc1tiXT1udWxsO3JldHVybiBhfWZ1bmN0aW9uIFUoYSl7Zm9yKHZhciBiPWEuaW1hZ2VzLGM9MDtjPGIubGVuZ3RoOysrYyliW2NdJiZXKGJbY10pLGJbY109bnVsbDtKYS5wdXNoKGEpfWZ1bmN0aW9uIGlhKCl7dGhpcy5tYWdGaWx0ZXI9dGhpcy5taW5GaWx0ZXI9OTcyODt0aGlzLndyYXBUPVxudGhpcy53cmFwUz0zMzA3MTt0aGlzLmFuaXNvdHJvcGljPTE7dGhpcy5nZW5NaXBtYXBzPSExO3RoaXMubWlwbWFwSGludD00MzUyfWZ1bmN0aW9uIGthKGEsYil7XCJtaW5cImluIGImJihhLm1pbkZpbHRlcj1RW2IubWluXSwwPD1uLmluZGV4T2YoYS5taW5GaWx0ZXIpJiYoYS5nZW5NaXBtYXBzPSEwKSk7XCJtYWdcImluIGImJihhLm1hZ0ZpbHRlcj1oYVtiLm1hZ10pO3ZhciBjPWEud3JhcFMsZz1hLndyYXBUO2lmKFwid3JhcFwiaW4gYil7dmFyIGg9Yi53cmFwO1wic3RyaW5nXCI9PT10eXBlb2YgaD9jPWc9T1toXTpBcnJheS5pc0FycmF5KGgpJiYoYz1PW2hbMF1dLGc9T1toWzFdXSl9ZWxzZVwid3JhcFNcImluIGImJihjPU9bYi53cmFwU10pLFwid3JhcFRcImluIGImJihnPU9bYi53cmFwVF0pO2Eud3JhcFM9YzthLndyYXBUPWc7XCJhbmlzb3Ryb3BpY1wiaW4gYiYmKGEuYW5pc290cm9waWM9Yi5hbmlzb3Ryb3BpYyk7aWYoXCJtaXBtYXBcImluIGIpe2M9ITE7c3dpdGNoKHR5cGVvZiBiLm1pcG1hcCl7Y2FzZSBcInN0cmluZ1wiOmEubWlwbWFwSGludD1cbmVhW2IubWlwbWFwXTtjPWEuZ2VuTWlwbWFwcz0hMDticmVhaztjYXNlIFwiYm9vbGVhblwiOmM9YS5nZW5NaXBtYXBzPWIubWlwbWFwO2JyZWFrO2Nhc2UgXCJvYmplY3RcIjphLmdlbk1pcG1hcHM9ITEsYz0hMH0hY3x8XCJtaW5cImluIGJ8fChhLm1pbkZpbHRlcj05OTg0KX19ZnVuY3Rpb24gcmEoYSxiKXtoLnRleFBhcmFtZXRlcmkoYiwxMDI0MSxhLm1pbkZpbHRlcik7aC50ZXhQYXJhbWV0ZXJpKGIsMTAyNDAsYS5tYWdGaWx0ZXIpO2gudGV4UGFyYW1ldGVyaShiLDEwMjQyLGEud3JhcFMpO2gudGV4UGFyYW1ldGVyaShiLDEwMjQzLGEud3JhcFQpO2YuZXh0X3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljJiZoLnRleFBhcmFtZXRlcmkoYiwzNDA0NixhLmFuaXNvdHJvcGljKTthLmdlbk1pcG1hcHMmJihoLmhpbnQoMzMxNzAsYS5taXBtYXBIaW50KSxoLmdlbmVyYXRlTWlwbWFwKGIpKX1mdW5jdGlvbiBzYShhKXtELmNhbGwodGhpcyk7dGhpcy5taXBtYXNrPTA7dGhpcy5pbnRlcm5hbGZvcm1hdD1cbjY0MDg7dGhpcy5pZD1CYSsrO3RoaXMucmVmQ291bnQ9MTt0aGlzLnRhcmdldD1hO3RoaXMudGV4dHVyZT1oLmNyZWF0ZVRleHR1cmUoKTt0aGlzLnVuaXQ9LTE7dGhpcy5iaW5kQ291bnQ9MDt0aGlzLnRleEluZm89bmV3IGlhO1oucHJvZmlsZSYmKHRoaXMuc3RhdHM9e3NpemU6MH0pfWZ1bmN0aW9uIGRhKGEpe2guYWN0aXZlVGV4dHVyZSgzMzk4NCk7aC5iaW5kVGV4dHVyZShhLnRhcmdldCxhLnRleHR1cmUpfWZ1bmN0aW9uIGphKCl7dmFyIGE9b2FbMF07YT9oLmJpbmRUZXh0dXJlKGEudGFyZ2V0LGEudGV4dHVyZSk6aC5iaW5kVGV4dHVyZSgzNTUzLG51bGwpfWZ1bmN0aW9uIGxhKGEpe3ZhciBiPWEudGV4dHVyZSxjPWEudW5pdCxnPWEudGFyZ2V0OzA8PWMmJihoLmFjdGl2ZVRleHR1cmUoMzM5ODQrYyksaC5iaW5kVGV4dHVyZShnLG51bGwpLG9hW2NdPW51bGwpO2guZGVsZXRlVGV4dHVyZShiKTthLnRleHR1cmU9bnVsbDthLnBhcmFtcz1udWxsO2EucGl4ZWxzPW51bGw7YS5yZWZDb3VudD1cbjA7ZGVsZXRlIGNhW2EuaWRdO0wudGV4dHVyZUNvdW50LS19dmFyIGVhPXtcImRvbid0IGNhcmVcIjo0MzUyLFwiZG9udCBjYXJlXCI6NDM1MixuaWNlOjQzNTQsZmFzdDo0MzUzfSxPPXtyZXBlYXQ6MTA0OTcsY2xhbXA6MzMwNzEsbWlycm9yOjMzNjQ4fSxoYT17bmVhcmVzdDo5NzI4LGxpbmVhcjo5NzI5fSxRPWIoe21pcG1hcDo5OTg3LFwibmVhcmVzdCBtaXBtYXAgbmVhcmVzdFwiOjk5ODQsXCJsaW5lYXIgbWlwbWFwIG5lYXJlc3RcIjo5OTg1LFwibmVhcmVzdCBtaXBtYXAgbGluZWFyXCI6OTk4NixcImxpbmVhciBtaXBtYXAgbGluZWFyXCI6OTk4N30saGEpLHBhPXtub25lOjAsYnJvd3NlcjozNzQ0NH0sVj17dWludDg6NTEyMSxyZ2JhNDozMjgxOSxyZ2I1NjU6MzM2MzUsXCJyZ2I1IGExXCI6MzI4MjB9LFg9e2FscGhhOjY0MDYsbHVtaW5hbmNlOjY0MDksXCJsdW1pbmFuY2UgYWxwaGFcIjo2NDEwLHJnYjo2NDA3LHJnYmE6NjQwOCxyZ2JhNDozMjg1NCxcInJnYjUgYTFcIjozMjg1NSxyZ2I1NjU6MzYxOTR9LFxuVD17fTtmLmV4dF9zcmdiJiYoWC5zcmdiPTM1OTA0LFguc3JnYmE9MzU5MDYpO2Yub2VzX3RleHR1cmVfZmxvYXQmJihWLmZsb2F0MzI9VltcImZsb2F0XCJdPTUxMjYpO2Yub2VzX3RleHR1cmVfaGFsZl9mbG9hdCYmKFYuZmxvYXQxNj1WW1wiaGFsZiBmbG9hdFwiXT0zNjE5Myk7Zi53ZWJnbF9kZXB0aF90ZXh0dXJlJiYoYihYLHtkZXB0aDo2NDAyLFwiZGVwdGggc3RlbmNpbFwiOjM0MDQxfSksYihWLHt1aW50MTY6NTEyMyx1aW50MzI6NTEyNSxcImRlcHRoIHN0ZW5jaWxcIjozNDA0Mn0pKTtmLndlYmdsX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjJiZiKFQse1wicmdiIHMzdGMgZHh0MVwiOjMzNzc2LFwicmdiYSBzM3RjIGR4dDFcIjozMzc3NyxcInJnYmEgczN0YyBkeHQzXCI6MzM3NzgsXCJyZ2JhIHMzdGMgZHh0NVwiOjMzNzc5fSk7Zi53ZWJnbF9jb21wcmVzc2VkX3RleHR1cmVfYXRjJiZiKFQse1wicmdiIGF0Y1wiOjM1OTg2LFwicmdiYSBhdGMgZXhwbGljaXQgYWxwaGFcIjozNTk4NyxcInJnYmEgYXRjIGludGVycG9sYXRlZCBhbHBoYVwiOjM0Nzk4fSk7XG5mLndlYmdsX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyYmYihULHtcInJnYiBwdnJ0YyA0YnBwdjFcIjozNTg0MCxcInJnYiBwdnJ0YyAyYnBwdjFcIjozNTg0MSxcInJnYmEgcHZydGMgNGJwcHYxXCI6MzU4NDIsXCJyZ2JhIHB2cnRjIDJicHB2MVwiOjM1ODQzfSk7Zi53ZWJnbF9jb21wcmVzc2VkX3RleHR1cmVfZXRjMSYmKFRbXCJyZ2IgZXRjMVwiXT0zNjE5Nik7dmFyIHVhPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGguZ2V0UGFyYW1ldGVyKDM0NDY3KSk7T2JqZWN0LmtleXMoVCkuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1UW2FdOzA8PXVhLmluZGV4T2YoYikmJihYW2FdPWIpfSk7dmFyIEVhPU9iamVjdC5rZXlzKFgpO3AudGV4dHVyZUZvcm1hdHM9RWE7dmFyIEZhPVtdO09iamVjdC5rZXlzKFgpLmZvckVhY2goZnVuY3Rpb24oYSl7RmFbWFthXV09YX0pO3ZhciBIYT1bXTtPYmplY3Qua2V5cyhWKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0hhW1ZbYV1dPWF9KTt2YXIgSWE9W107T2JqZWN0LmtleXMoaGEpLmZvckVhY2goZnVuY3Rpb24oYSl7SWFbaGFbYV1dPVxuYX0pO3ZhciBDYT1bXTtPYmplY3Qua2V5cyhRKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe0NhW1FbYV1dPWF9KTt2YXIgRGE9W107T2JqZWN0LmtleXMoTykuZm9yRWFjaChmdW5jdGlvbihhKXtEYVtPW2FdXT1hfSk7dmFyIFBhPUVhLnJlZHVjZShmdW5jdGlvbihhLGIpe3ZhciBjPVhbYl07NjQwOT09PWN8fDY0MDY9PT1jfHw2NDA5PT09Y3x8NjQxMD09PWN8fDY0MDI9PT1jfHwzNDA0MT09PWM/YVtjXT1jOjMyODU1PT09Y3x8MDw9Yi5pbmRleE9mKFwicmdiYVwiKT9hW2NdPTY0MDg6YVtjXT02NDA3O3JldHVybiBhfSx7fSksTmE9W10sSmE9W10sQmE9MCxjYT17fSx0YT1wLm1heFRleHR1cmVVbml0cyxvYT1BcnJheSh0YSkubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9KTtiKHNhLnByb3RvdHlwZSx7YmluZDpmdW5jdGlvbigpe3RoaXMuYmluZENvdW50Kz0xO3ZhciBhPXRoaXMudW5pdDtpZigwPmEpe2Zvcih2YXIgYj0wO2I8dGE7KytiKXt2YXIgYz1vYVtiXTtpZihjKXtpZigwPGMuYmluZENvdW50KWNvbnRpbnVlO1xuYy51bml0PS0xfW9hW2JdPXRoaXM7YT1iO2JyZWFrfVoucHJvZmlsZSYmTC5tYXhUZXh0dXJlVW5pdHM8YSsxJiYoTC5tYXhUZXh0dXJlVW5pdHM9YSsxKTt0aGlzLnVuaXQ9YTtoLmFjdGl2ZVRleHR1cmUoMzM5ODQrYSk7aC5iaW5kVGV4dHVyZSh0aGlzLnRhcmdldCx0aGlzLnRleHR1cmUpfXJldHVybiBhfSx1bmJpbmQ6ZnVuY3Rpb24oKXstLXRoaXMuYmluZENvdW50fSxkZWNSZWY6ZnVuY3Rpb24oKXswPj0tLXRoaXMucmVmQ291bnQmJmxhKHRoaXMpfX0pO1oucHJvZmlsZSYmKEwuZ2V0VG90YWxUZXh0dXJlU2l6ZT1mdW5jdGlvbigpe3ZhciBhPTA7T2JqZWN0LmtleXMoY2EpLmZvckVhY2goZnVuY3Rpb24oYil7YSs9Y2FbYl0uc3RhdHMuc2l6ZX0pO3JldHVybiBhfSk7cmV0dXJue2NyZWF0ZTJEOmZ1bmN0aW9uKGIsYyl7ZnVuY3Rpb24gZyhiLGMpe3ZhciBlPWYudGV4SW5mbztpYS5jYWxsKGUpO3ZhciBoPXlhKCk7XCJudW1iZXJcIj09PXR5cGVvZiBiP1wibnVtYmVyXCI9PT10eXBlb2YgYz9cbkcoaCxifDAsY3wwKTpHKGgsYnwwLGJ8MCk6Yj8oa2EoZSxiKSxiYShoLGIpKTpHKGgsMSwxKTtlLmdlbk1pcG1hcHMmJihoLm1pcG1hc2s9KGgud2lkdGg8PDEpLTEpO2YubWlwbWFzaz1oLm1pcG1hc2s7SyhmLGgpO2YuaW50ZXJuYWxmb3JtYXQ9aC5pbnRlcm5hbGZvcm1hdDtnLndpZHRoPWgud2lkdGg7Zy5oZWlnaHQ9aC5oZWlnaHQ7ZGEoZik7bmEoaCwzNTUzKTtyYShlLDM1NTMpO2phKCk7VShoKTtaLnByb2ZpbGUmJihmLnN0YXRzLnNpemU9YShmLmludGVybmFsZm9ybWF0LGYudHlwZSxoLndpZHRoLGguaGVpZ2h0LGUuZ2VuTWlwbWFwcywhMSkpO2cuZm9ybWF0PUZhW2YuaW50ZXJuYWxmb3JtYXRdO2cudHlwZT1IYVtmLnR5cGVdO2cubWFnPUlhW2UubWFnRmlsdGVyXTtnLm1pbj1DYVtlLm1pbkZpbHRlcl07Zy53cmFwUz1EYVtlLndyYXBTXTtnLndyYXBUPURhW2Uud3JhcFRdO3JldHVybiBnfXZhciBmPW5ldyBzYSgzNTUzKTtjYVtmLmlkXT1mO0wudGV4dHVyZUNvdW50Kys7XG5nKGIsYyk7Zy5zdWJpbWFnZT1mdW5jdGlvbihhLGIsYyxlKXtifD0wO2N8PTA7ZXw9MDt2YXIgZD1nYSgpO0soZCxmKTtkLndpZHRoPTA7ZC5oZWlnaHQ9MDtTKGQsYSk7ZC53aWR0aD1kLndpZHRofHwoZi53aWR0aD4+ZSktYjtkLmhlaWdodD1kLmhlaWdodHx8KGYuaGVpZ2h0Pj5lKS1jO2RhKGYpO21hKGQsMzU1MyxiLGMsZSk7amEoKTtXKGQpO3JldHVybiBnfTtnLnJlc2l6ZT1mdW5jdGlvbihiLGMpe3ZhciBlPWJ8MCxrPWN8MHx8ZTtpZihlPT09Zi53aWR0aCYmaz09PWYuaGVpZ2h0KXJldHVybiBnO2cud2lkdGg9Zi53aWR0aD1lO2cuaGVpZ2h0PWYuaGVpZ2h0PWs7ZGEoZik7Zm9yKHZhciBkPTA7Zi5taXBtYXNrPj5kOysrZCloLnRleEltYWdlMkQoMzU1MyxkLGYuZm9ybWF0LGU+PmQsaz4+ZCwwLGYuZm9ybWF0LGYudHlwZSxudWxsKTtqYSgpO1oucHJvZmlsZSYmKGYuc3RhdHMuc2l6ZT1hKGYuaW50ZXJuYWxmb3JtYXQsZi50eXBlLGUsaywhMSwhMSkpO3JldHVybiBnfTtcbmcuX3JlZ2xUeXBlPVwidGV4dHVyZTJkXCI7Zy5fdGV4dHVyZT1mO1oucHJvZmlsZSYmKGcuc3RhdHM9Zi5zdGF0cyk7Zy5kZXN0cm95PWZ1bmN0aW9uKCl7Zi5kZWNSZWYoKX07cmV0dXJuIGd9LGNyZWF0ZUN1YmU6ZnVuY3Rpb24oYixjLGcsZixrLGwpe2Z1bmN0aW9uIG0oYixjLGUsZyxoLGYpe3ZhciBrLGw9bi50ZXhJbmZvO2lhLmNhbGwobCk7Zm9yKGs9MDs2Pms7KytrKWRba109eWEoKTtpZihcIm51bWJlclwiPT09dHlwZW9mIGJ8fCFiKWZvcihiPWJ8MHx8MSxrPTA7Nj5rOysraylHKGRba10sYixiKTtlbHNlIGlmKFwib2JqZWN0XCI9PT10eXBlb2YgYilpZihjKWJhKGRbMF0sYiksYmEoZFsxXSxjKSxiYShkWzJdLGUpLGJhKGRbM10sZyksYmEoZFs0XSxoKSxiYShkWzVdLGYpO2Vsc2UgaWYoa2EobCxiKSxZKG4sYiksXCJmYWNlc1wiaW4gYilmb3IoYj1iLmZhY2VzLGs9MDs2Pms7KytrKUsoZFtrXSxuKSxiYShkW2tdLGJba10pO2Vsc2UgZm9yKGs9MDs2Pms7KytrKWJhKGRba10sYik7XG5LKG4sZFswXSk7bi5taXBtYXNrPWwuZ2VuTWlwbWFwcz8oZFswXS53aWR0aDw8MSktMTpkWzBdLm1pcG1hc2s7bi5pbnRlcm5hbGZvcm1hdD1kWzBdLmludGVybmFsZm9ybWF0O20ud2lkdGg9ZFswXS53aWR0aDttLmhlaWdodD1kWzBdLmhlaWdodDtkYShuKTtmb3Ioaz0wOzY+azsrK2spbmEoZFtrXSwzNDA2OStrKTtyYShsLDM0MDY3KTtqYSgpO1oucHJvZmlsZSYmKG4uc3RhdHMuc2l6ZT1hKG4uaW50ZXJuYWxmb3JtYXQsbi50eXBlLG0ud2lkdGgsbS5oZWlnaHQsbC5nZW5NaXBtYXBzLCEwKSk7bS5mb3JtYXQ9RmFbbi5pbnRlcm5hbGZvcm1hdF07bS50eXBlPUhhW24udHlwZV07bS5tYWc9SWFbbC5tYWdGaWx0ZXJdO20ubWluPUNhW2wubWluRmlsdGVyXTttLndyYXBTPURhW2wud3JhcFNdO20ud3JhcFQ9RGFbbC53cmFwVF07Zm9yKGs9MDs2Pms7KytrKVUoZFtrXSk7cmV0dXJuIG19dmFyIG49bmV3IHNhKDM0MDY3KTtjYVtuLmlkXT1uO0wuY3ViZUNvdW50Kys7dmFyIGQ9QXJyYXkoNik7XG5tKGIsYyxnLGYsayxsKTttLnN1YmltYWdlPWZ1bmN0aW9uKGEsYixjLGQsZSl7Y3w9MDtkfD0wO2V8PTA7dmFyIGc9Z2EoKTtLKGcsbik7Zy53aWR0aD0wO2cuaGVpZ2h0PTA7UyhnLGIpO2cud2lkdGg9Zy53aWR0aHx8KG4ud2lkdGg+PmUpLWM7Zy5oZWlnaHQ9Zy5oZWlnaHR8fChuLmhlaWdodD4+ZSktZDtkYShuKTttYShnLDM0MDY5K2EsYyxkLGUpO2phKCk7VyhnKTtyZXR1cm4gbX07bS5yZXNpemU9ZnVuY3Rpb24oYil7Ynw9MDtpZihiIT09bi53aWR0aCl7bS53aWR0aD1uLndpZHRoPWI7bS5oZWlnaHQ9bi5oZWlnaHQ9YjtkYShuKTtmb3IodmFyIGM9MDs2PmM7KytjKWZvcih2YXIgZD0wO24ubWlwbWFzaz4+ZDsrK2QpaC50ZXhJbWFnZTJEKDM0MDY5K2MsZCxuLmZvcm1hdCxiPj5kLGI+PmQsMCxuLmZvcm1hdCxuLnR5cGUsbnVsbCk7amEoKTtaLnByb2ZpbGUmJihuLnN0YXRzLnNpemU9YShuLmludGVybmFsZm9ybWF0LG4udHlwZSxtLndpZHRoLG0uaGVpZ2h0LCExLCEwKSk7XG5yZXR1cm4gbX19O20uX3JlZ2xUeXBlPVwidGV4dHVyZUN1YmVcIjttLl90ZXh0dXJlPW47Wi5wcm9maWxlJiYobS5zdGF0cz1uLnN0YXRzKTttLmRlc3Ryb3k9ZnVuY3Rpb24oKXtuLmRlY1JlZigpfTtyZXR1cm4gbX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIGE9MDthPHRhOysrYSloLmFjdGl2ZVRleHR1cmUoMzM5ODQrYSksaC5iaW5kVGV4dHVyZSgzNTUzLG51bGwpLG9hW2FdPW51bGw7RihjYSkuZm9yRWFjaChsYSk7TC5jdWJlQ291bnQ9MDtMLnRleHR1cmVDb3VudD0wfSxnZXRUZXh0dXJlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsfSxyZXN0b3JlOmZ1bmN0aW9uKCl7RihjYSkuZm9yRWFjaChmdW5jdGlvbihhKXthLnRleHR1cmU9aC5jcmVhdGVUZXh0dXJlKCk7aC5iaW5kVGV4dHVyZShhLnRhcmdldCxhLnRleHR1cmUpO2Zvcih2YXIgYj0wOzMyPmI7KytiKWlmKDAhPT0oYS5taXBtYXNrJjE8PGIpKWlmKDM1NTM9PT1hLnRhcmdldCloLnRleEltYWdlMkQoMzU1MyxiLGEuaW50ZXJuYWxmb3JtYXQsXG5hLndpZHRoPj5iLGEuaGVpZ2h0Pj5iLDAsYS5pbnRlcm5hbGZvcm1hdCxhLnR5cGUsbnVsbCk7ZWxzZSBmb3IodmFyIGM9MDs2PmM7KytjKWgudGV4SW1hZ2UyRCgzNDA2OStjLGIsYS5pbnRlcm5hbGZvcm1hdCxhLndpZHRoPj5iLGEuaGVpZ2h0Pj5iLDAsYS5pbnRlcm5hbGZvcm1hdCxhLnR5cGUsbnVsbCk7cmEoYS50ZXhJbmZvLGEudGFyZ2V0KX0pfX19fSx7XCIuL2NvbnN0YW50cy9hcnJheXR5cGVzLmpzb25cIjozLFwiLi91dGlsL2V4dGVuZFwiOjIyLFwiLi91dGlsL2ZsYXR0ZW5cIjoyMyxcIi4vdXRpbC9pcy1hcnJheS1saWtlXCI6MjQsXCIuL3V0aWwvaXMtbmRhcnJheVwiOjI1LFwiLi91dGlsL2lzLXR5cGVkLWFycmF5XCI6MjYsXCIuL3V0aWwvcG9vbFwiOjI4LFwiLi91dGlsL3RvLWhhbGYtZmxvYXRcIjozMCxcIi4vdXRpbC92YWx1ZXNcIjozMX1dLDE5OltmdW5jdGlvbihmLHAsdSl7cC5leHBvcnRzPWZ1bmN0aW9uKGYsayl7ZnVuY3Rpb24gcCgpe3RoaXMuZW5kUXVlcnlJbmRleD10aGlzLnN0YXJ0UXVlcnlJbmRleD1cbi0xO3RoaXMuc3VtPTA7dGhpcy5zdGF0cz1udWxsfWZ1bmN0aW9uIHIoYSxiLGMpe3ZhciBmPUYucG9wKCl8fG5ldyBwO2Yuc3RhcnRRdWVyeUluZGV4PWE7Zi5lbmRRdWVyeUluZGV4PWI7Zi5zdW09MDtmLnN0YXRzPWM7dS5wdXNoKGYpfXZhciBjPWsuZXh0X2Rpc2pvaW50X3RpbWVyX3F1ZXJ5O2lmKCFjKXJldHVybiBudWxsO3ZhciBhPVtdLGI9W10sRj1bXSx1PVtdLHQ9W10seT1bXTtyZXR1cm57YmVnaW5RdWVyeTpmdW5jdGlvbihnKXt2YXIgZj1hLnBvcCgpfHxjLmNyZWF0ZVF1ZXJ5RVhUKCk7Yy5iZWdpblF1ZXJ5RVhUKDM1MDA3LGYpO2IucHVzaChmKTtyKGIubGVuZ3RoLTEsYi5sZW5ndGgsZyl9LGVuZFF1ZXJ5OmZ1bmN0aW9uKCl7Yy5lbmRRdWVyeUVYVCgzNTAwNyl9LHB1c2hTY29wZVN0YXRzOnIsdXBkYXRlOmZ1bmN0aW9uKCl7dmFyIGcsZjtnPWIubGVuZ3RoO2lmKDAhPT1nKXt5Lmxlbmd0aD1NYXRoLm1heCh5Lmxlbmd0aCxnKzEpO3QubGVuZ3RoPU1hdGgubWF4KHQubGVuZ3RoLFxuZysxKTt0WzBdPTA7dmFyIGs9eVswXT0wO2ZvcihmPWc9MDtmPGIubGVuZ3RoOysrZil7dmFyIGw9YltmXTtjLmdldFF1ZXJ5T2JqZWN0RVhUKGwsMzQ5MTkpPyhrKz1jLmdldFF1ZXJ5T2JqZWN0RVhUKGwsMzQ5MTgpLGEucHVzaChsKSk6YltnKytdPWw7dFtmKzFdPWs7eVtmKzFdPWd9Yi5sZW5ndGg9Zztmb3IoZj1nPTA7Zjx1Lmxlbmd0aDsrK2Ype3ZhciBrPXVbZl0sbj1rLnN0YXJ0UXVlcnlJbmRleCxsPWsuZW5kUXVlcnlJbmRleDtrLnN1bSs9dFtsXS10W25dO249eVtuXTtsPXlbbF07bD09PW4/KGsuc3RhdHMuZ3B1VGltZSs9ay5zdW0vMUU2LEYucHVzaChrKSk6KGsuc3RhcnRRdWVyeUluZGV4PW4say5lbmRRdWVyeUluZGV4PWwsdVtnKytdPWspfXUubGVuZ3RoPWd9fSxnZXROdW1QZW5kaW5nUXVlcmllczpmdW5jdGlvbigpe3JldHVybiBiLmxlbmd0aH0sY2xlYXI6ZnVuY3Rpb24oKXthLnB1c2guYXBwbHkoYSxiKTtmb3IodmFyIGc9MDtnPGEubGVuZ3RoO2crKyljLmRlbGV0ZVF1ZXJ5RVhUKGFbZ10pO1xuYi5sZW5ndGg9MDthLmxlbmd0aD0wfSxyZXN0b3JlOmZ1bmN0aW9uKCl7Yi5sZW5ndGg9MDthLmxlbmd0aD0wfX19fSx7fV0sMjA6W2Z1bmN0aW9uKGYscCx1KXtwLmV4cG9ydHM9XCJ1bmRlZmluZWRcIiE9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P2Z1bmN0aW9uKCl7cmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpfTpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX19LHt9XSwyMTpbZnVuY3Rpb24oZixwLHUpe2Z1bmN0aW9uIGwoZil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGYpfWZ1bmN0aW9uIGsoZil7cmV0dXJuIGwoZikuam9pbihcIlwiKX12YXIgeD1mKFwiLi9leHRlbmRcIik7cC5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZigpe3ZhciBiPVtdLGM9W107cmV0dXJuIHgoZnVuY3Rpb24oKXtiLnB1c2guYXBwbHkoYixsKGFyZ3VtZW50cykpfSx7ZGVmOmZ1bmN0aW9uKCl7dmFyIGY9XCJ2XCIrYSsrO2MucHVzaChmKTswPGFyZ3VtZW50cy5sZW5ndGgmJlxuKGIucHVzaChmLFwiPVwiKSxiLnB1c2guYXBwbHkoYixsKGFyZ3VtZW50cykpLGIucHVzaChcIjtcIikpO3JldHVybiBmfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiBrKFswPGMubGVuZ3RoP1widmFyIFwiK2MrXCI7XCI6XCJcIixrKGIpXSl9fSl9ZnVuY3Rpb24gYygpe2Z1bmN0aW9uIGEoZixrKXtjKGYsayxcIj1cIixiLmRlZihmLGspLFwiO1wiKX12YXIgYj1mKCksYz1mKCksaz1iLnRvU3RyaW5nLHQ9Yy50b1N0cmluZztyZXR1cm4geChmdW5jdGlvbigpe2IuYXBwbHkoYixsKGFyZ3VtZW50cykpfSx7ZGVmOmIuZGVmLGVudHJ5OmIsZXhpdDpjLHNhdmU6YSxzZXQ6ZnVuY3Rpb24oYyxmLGspe2EoYyxmKTtiKGMsZixcIj1cIixrLFwiO1wiKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gaygpK3QoKX19KX12YXIgYT0wLGI9W10scD1bXSx1PWYoKSx0PXt9O3JldHVybntnbG9iYWw6dSxsaW5rOmZ1bmN0aW9uKGMpe2Zvcih2YXIgZz0wO2c8cC5sZW5ndGg7KytnKWlmKHBbZ109PT1jKXJldHVybiBiW2ddO1xuZz1cImdcIithKys7Yi5wdXNoKGcpO3AucHVzaChjKTtyZXR1cm4gZ30sYmxvY2s6Zixwcm9jOmZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gZigpe3ZhciBhPVwiYVwiK2wubGVuZ3RoO2wucHVzaChhKTtyZXR1cm4gYX12YXIgbD1bXTtiPWJ8fDA7Zm9yKHZhciByPTA7cjxiOysrcilmKCk7dmFyIHI9YygpLG49ci50b1N0cmluZztyZXR1cm4gdFthXT14KHIse2FyZzpmLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIGsoW1wiZnVuY3Rpb24oXCIsbC5qb2luKCksXCIpe1wiLG4oKSxcIn1cIl0pfX0pfSxzY29wZTpjLGNvbmQ6ZnVuY3Rpb24oKXt2YXIgYT1rKGFyZ3VtZW50cyksYj1jKCksZj1jKCkscj1iLnRvU3RyaW5nLHQ9Zi50b1N0cmluZztyZXR1cm4geChiLHt0aGVuOmZ1bmN0aW9uKCl7Yi5hcHBseShiLGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXN9LFwiZWxzZVwiOmZ1bmN0aW9uKCl7Zi5hcHBseShmLGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXN9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIGI9XG50KCk7YiYmKGI9XCJlbHNle1wiK2IrXCJ9XCIpO3JldHVybiBrKFtcImlmKFwiLGEsXCIpe1wiLHIoKSxcIn1cIixiXSl9fSl9LGNvbXBpbGU6ZnVuY3Rpb24oKXt2YXIgYT1bJ1widXNlIHN0cmljdFwiOycsdSxcInJldHVybiB7XCJdO09iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oYil7YS5wdXNoKCdcIicsYiwnXCI6Jyx0W2JdLnRvU3RyaW5nKCksXCIsXCIpfSk7YS5wdXNoKFwifVwiKTt2YXIgYz1rKGEpLnJlcGxhY2UoLzsvZyxcIjtcXG5cIikucmVwbGFjZSgvfS9nLFwifVxcblwiKS5yZXBsYWNlKC97L2csXCJ7XFxuXCIpO3JldHVybiBGdW5jdGlvbi5hcHBseShudWxsLGIuY29uY2F0KGMpKS5hcHBseShudWxsLHApfX19fSx7XCIuL2V4dGVuZFwiOjIyfV0sMjI6W2Z1bmN0aW9uKGYscCx1KXtwLmV4cG9ydHM9ZnVuY3Rpb24oZixrKXtmb3IodmFyIHA9T2JqZWN0LmtleXMoaykscj0wO3I8cC5sZW5ndGg7KytyKWZbcFtyXV09a1twW3JdXTtyZXR1cm4gZn19LHt9XSwyMzpbZnVuY3Rpb24oZixwLHUpe2Z1bmN0aW9uIGwoZixcbmMsYSxiLGssbCl7Zm9yKHZhciB0PTA7dDxjOysrdClmb3IodmFyIHA9Zlt0XSxnPTA7ZzxhOysrZylmb3IodmFyIHg9cFtnXSx1PTA7dTxiOysrdSlrW2wrK109eFt1XX1mdW5jdGlvbiBrKGYsYyxhLGIscCl7Zm9yKHZhciB4PTEsdD1hKzE7dDxjLmxlbmd0aDsrK3QpeCo9Y1t0XTt2YXIgeT1jW2FdO2lmKDQ9PT1jLmxlbmd0aC1hKXt2YXIgZz1jW2ErMV0sdT1jW2ErMl07Yz1jW2ErM107Zm9yKHQ9MDt0PHk7Kyt0KWwoZlt0XSxnLHUsYyxiLHApLHArPXh9ZWxzZSBmb3IodD0wO3Q8eTsrK3QpayhmW3RdLGMsYSsxLGIscCkscCs9eH12YXIgeD1mKFwiLi9wb29sXCIpO3AuZXhwb3J0cz17c2hhcGU6ZnVuY3Rpb24oZil7Zm9yKHZhciBjPVtdO2YubGVuZ3RoO2Y9ZlswXSljLnB1c2goZi5sZW5ndGgpO3JldHVybiBjfSxmbGF0dGVuOmZ1bmN0aW9uKGYsYyxhLGIpe3ZhciBwPTE7aWYoYy5sZW5ndGgpZm9yKHZhciB1PTA7dTxjLmxlbmd0aDsrK3UpcCo9Y1t1XTtlbHNlIHA9MDthPWJ8fFxueC5hbGxvY1R5cGUoYSxwKTtzd2l0Y2goYy5sZW5ndGgpe2Nhc2UgMDpicmVhaztjYXNlIDE6Yj1jWzBdO2ZvcihjPTA7YzxiOysrYylhW2NdPWZbY107YnJlYWs7Y2FzZSAyOmI9Y1swXTtjPWNbMV07Zm9yKHU9cD0wO3U8YjsrK3UpZm9yKHZhciB0PWZbdV0seT0wO3k8YzsrK3kpYVtwKytdPXRbeV07YnJlYWs7Y2FzZSAzOmwoZixjWzBdLGNbMV0sY1syXSxhLDApO2JyZWFrO2RlZmF1bHQ6ayhmLGMsMCxhLDApfXJldHVybiBhfX19LHtcIi4vcG9vbFwiOjI4fV0sMjQ6W2Z1bmN0aW9uKGYscCx1KXt2YXIgbD1mKFwiLi9pcy10eXBlZC1hcnJheVwiKTtwLmV4cG9ydHM9ZnVuY3Rpb24oZil7cmV0dXJuIEFycmF5LmlzQXJyYXkoZil8fGwoZil9fSx7XCIuL2lzLXR5cGVkLWFycmF5XCI6MjZ9XSwyNTpbZnVuY3Rpb24oZixwLHUpe3ZhciBsPWYoXCIuL2lzLXR5cGVkLWFycmF5XCIpO3AuZXhwb3J0cz1mdW5jdGlvbihmKXtyZXR1cm4hIWYmJlwib2JqZWN0XCI9PT10eXBlb2YgZiYmQXJyYXkuaXNBcnJheShmLnNoYXBlKSYmXG5BcnJheS5pc0FycmF5KGYuc3RyaWRlKSYmXCJudW1iZXJcIj09PXR5cGVvZiBmLm9mZnNldCYmZi5zaGFwZS5sZW5ndGg9PT1mLnN0cmlkZS5sZW5ndGgmJihBcnJheS5pc0FycmF5KGYuZGF0YSl8fGwoZi5kYXRhKSl9fSx7XCIuL2lzLXR5cGVkLWFycmF5XCI6MjZ9XSwyNjpbZnVuY3Rpb24oZixwLHUpe3ZhciBsPWYoXCIuLi9jb25zdGFudHMvYXJyYXl0eXBlcy5qc29uXCIpO3AuZXhwb3J0cz1mdW5jdGlvbihmKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGYpaW4gbH19LHtcIi4uL2NvbnN0YW50cy9hcnJheXR5cGVzLmpzb25cIjozfV0sMjc6W2Z1bmN0aW9uKGYscCx1KXtwLmV4cG9ydHM9ZnVuY3Rpb24oZixrKXtmb3IodmFyIHA9QXJyYXkoZikscj0wO3I8ZjsrK3IpcFtyXT1rKHIpO3JldHVybiBwfX0se31dLDI4OltmdW5jdGlvbihmLHAsdSl7ZnVuY3Rpb24gbChjKXt2YXIgYSxiO2E9KDY1NTM1PGMpPDw0O2M+Pj49YTtiPSgyNTU8Yyk8PDM7Yz4+Pj1iO2F8PVxuYjtiPSgxNTxjKTw8MjtjPj4+PWI7YXw9YjtiPSgzPGMpPDwxO3JldHVybiBhfGJ8Yz4+PmI+PjF9ZnVuY3Rpb24gayhjKXthOntmb3IodmFyIGE9MTY7MjY4NDM1NDU2Pj1hO2EqPTE2KWlmKGM8PWEpe2M9YTticmVhayBhfWM9MH1hPXJbbChjKT4+Ml07cmV0dXJuIDA8YS5sZW5ndGg/YS5wb3AoKTpuZXcgQXJyYXlCdWZmZXIoYyl9ZnVuY3Rpb24geChjKXtyW2woYy5ieXRlTGVuZ3RoKT4+Ml0ucHVzaChjKX12YXIgcj1mKFwiLi9sb29wXCIpKDgsZnVuY3Rpb24oKXtyZXR1cm5bXX0pO3AuZXhwb3J0cz17YWxsb2M6ayxmcmVlOngsYWxsb2NUeXBlOmZ1bmN0aW9uKGMsYSl7dmFyIGI9bnVsbDtzd2l0Y2goYyl7Y2FzZSA1MTIwOmI9bmV3IEludDhBcnJheShrKGEpLDAsYSk7YnJlYWs7Y2FzZSA1MTIxOmI9bmV3IFVpbnQ4QXJyYXkoayhhKSwwLGEpO2JyZWFrO2Nhc2UgNTEyMjpiPW5ldyBJbnQxNkFycmF5KGsoMiphKSwwLGEpO2JyZWFrO2Nhc2UgNTEyMzpiPW5ldyBVaW50MTZBcnJheShrKDIqXG5hKSwwLGEpO2JyZWFrO2Nhc2UgNTEyNDpiPW5ldyBJbnQzMkFycmF5KGsoNCphKSwwLGEpO2JyZWFrO2Nhc2UgNTEyNTpiPW5ldyBVaW50MzJBcnJheShrKDQqYSksMCxhKTticmVhaztjYXNlIDUxMjY6Yj1uZXcgRmxvYXQzMkFycmF5KGsoNCphKSwwLGEpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIG51bGx9cmV0dXJuIGIubGVuZ3RoIT09YT9iLnN1YmFycmF5KDAsYSk6Yn0sZnJlZVR5cGU6ZnVuY3Rpb24oYyl7eChjLmJ1ZmZlcil9fX0se1wiLi9sb29wXCI6Mjd9XSwyOTpbZnVuY3Rpb24oZixwLHUpe3AuZXhwb3J0cz1cImZ1bmN0aW9uXCI9PT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgY2FuY2VsQW5pbWF0aW9uRnJhbWU/e25leHQ6ZnVuY3Rpb24oZil7cmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZShmKX0sY2FuY2VsOmZ1bmN0aW9uKGYpe3JldHVybiBjYW5jZWxBbmltYXRpb25GcmFtZShmKX19OntuZXh0OmZ1bmN0aW9uKGYpe3JldHVybiBzZXRUaW1lb3V0KGYsXG4xNil9LGNhbmNlbDpjbGVhclRpbWVvdXR9fSx7fV0sMzA6W2Z1bmN0aW9uKGYscCx1KXt2YXIgbD1mKFwiLi9wb29sXCIpLGs9bmV3IEZsb2F0MzJBcnJheSgxKSx4PW5ldyBVaW50MzJBcnJheShrLmJ1ZmZlcik7cC5leHBvcnRzPWZ1bmN0aW9uKGYpe2Zvcih2YXIgYz1sLmFsbG9jVHlwZSg1MTIzLGYubGVuZ3RoKSxhPTA7YTxmLmxlbmd0aDsrK2EpaWYoaXNOYU4oZlthXSkpY1thXT02NTUzNTtlbHNlIGlmKEluZmluaXR5PT09ZlthXSljW2FdPTMxNzQ0O2Vsc2UgaWYoLUluZmluaXR5PT09ZlthXSljW2FdPTY0NTEyO2Vsc2V7a1swXT1mW2FdO3ZhciBiPXhbMF0scD1iPj4+MzE8PDE1LHU9KGI8PDE+Pj4yNCktMTI3LGI9Yj4+MTMmMTAyMztjW2FdPS0yND51P3A6LTE0PnU/cCsoYisxMDI0Pj4tMTQtdSk6MTU8dT9wKzMxNzQ0OnArKHUrMTU8PDEwKStifXJldHVybiBjfX0se1wiLi9wb29sXCI6Mjh9XSwzMTpbZnVuY3Rpb24oZixwLHUpe3AuZXhwb3J0cz1mdW5jdGlvbihmKXtyZXR1cm4gT2JqZWN0LmtleXMoZikubWFwKGZ1bmN0aW9uKGspe3JldHVybiBmW2tdfSl9fSxcbnt9XSwzMjpbZnVuY3Rpb24oZixwLHUpe2Z1bmN0aW9uIGwoYSxiLGYpe2Z1bmN0aW9uIGsoKXt2YXIgYj13aW5kb3cuaW5uZXJXaWR0aCxnPXdpbmRvdy5pbm5lckhlaWdodDthIT09ZG9jdW1lbnQuYm9keSYmKGc9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxiPWcucmlnaHQtZy5sZWZ0LGc9Zy50b3AtZy5ib3R0b20pO2wud2lkdGg9ZipiO2wuaGVpZ2h0PWYqZztjKGwuc3R5bGUse3dpZHRoOmIrXCJweFwiLGhlaWdodDpnK1wicHhcIn0pfXZhciBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7YyhsLnN0eWxlLHtib3JkZXI6MCxtYXJnaW46MCxwYWRkaW5nOjAsdG9wOjAsbGVmdDowfSk7YS5hcHBlbmRDaGlsZChsKTthPT09ZG9jdW1lbnQuYm9keSYmKGwuc3R5bGUucG9zaXRpb249XCJhYnNvbHV0ZVwiLGMoYS5zdHlsZSx7bWFyZ2luOjAscGFkZGluZzowfSkpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsaywhMSk7aygpO3JldHVybntjYW52YXM6bCxvbkRlc3Ryb3k6ZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLFxuayk7YS5yZW1vdmVDaGlsZChsKX19fWZ1bmN0aW9uIGsoYSxiKXtmdW5jdGlvbiBjKGYpe3RyeXtyZXR1cm4gYS5nZXRDb250ZXh0KGYsYil9Y2F0Y2goayl7cmV0dXJuIG51bGx9fXJldHVybiBjKFwid2ViZ2xcIil8fGMoXCJleHBlcmltZW50YWwtd2ViZ2xcIil8fGMoXCJ3ZWJnbC1leHBlcmltZW50YWxcIil9ZnVuY3Rpb24geChhKXtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGE/YS5zcGxpdCgpOmF9ZnVuY3Rpb24gcihhKXtyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGE/ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihhKTphfXZhciBjPWYoXCIuL3V0aWwvZXh0ZW5kXCIpO3AuZXhwb3J0cz1mdW5jdGlvbihhKXt2YXIgYj1hfHx7fSxjLGYscCx1O2E9e307dmFyIGc9W10sRT1bXSxDPVwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93PzE6d2luZG93LmRldmljZVBpeGVsUmF0aW8sTj0hMSxuPWZ1bmN0aW9uKGEpe30sbT1mdW5jdGlvbigpe307XCJzdHJpbmdcIj09PXR5cGVvZiBiP2M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihiKTpcblwib2JqZWN0XCI9PT10eXBlb2YgYiYmKFwic3RyaW5nXCI9PT10eXBlb2YgYi5ub2RlTmFtZSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGIuYXBwZW5kQ2hpbGQmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBiLmdldEJvdW5kaW5nQ2xpZW50UmVjdD9jPWI6XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuZHJhd0FycmF5c3x8XCJmdW5jdGlvblwiPT09dHlwZW9mIGIuZHJhd0VsZW1lbnRzPyh1PWIscD11LmNhbnZhcyk6KFwiZ2xcImluIGI/dT1iLmdsOlwiY2FudmFzXCJpbiBiP3A9cihiLmNhbnZhcyk6XCJjb250YWluZXJcImluIGImJihmPXIoYi5jb250YWluZXIpKSxcImF0dHJpYnV0ZXNcImluIGImJihhPWIuYXR0cmlidXRlcyksXCJleHRlbnNpb25zXCJpbiBiJiYoZz14KGIuZXh0ZW5zaW9ucykpLFwib3B0aW9uYWxFeHRlbnNpb25zXCJpbiBiJiYoRT14KGIub3B0aW9uYWxFeHRlbnNpb25zKSksXCJvbkRvbmVcImluIGImJihuPWIub25Eb25lKSxcInByb2ZpbGVcImluIGImJihOPSEhYi5wcm9maWxlKSxcInBpeGVsUmF0aW9cImluIGImJlxuKEM9K2IucGl4ZWxSYXRpbykpKTtjJiYoXCJjYW52YXNcIj09PWMubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9wPWM6Zj1jKTtpZighdSl7aWYoIXApe2M9bChmfHxkb2N1bWVudC5ib2R5LG4sQyk7aWYoIWMpcmV0dXJuIG51bGw7cD1jLmNhbnZhczttPWMub25EZXN0cm95fXU9ayhwLGEpfXJldHVybiB1P3tnbDp1LGNhbnZhczpwLGNvbnRhaW5lcjpmLGV4dGVuc2lvbnM6ZyxvcHRpb25hbEV4dGVuc2lvbnM6RSxwaXhlbFJhdGlvOkMscHJvZmlsZTpOLG9uRG9uZTpuLG9uRGVzdHJveTptfToobSgpLG4oXCJ3ZWJnbCBub3Qgc3VwcG9ydGVkLCB0cnkgdXBncmFkaW5nIHlvdXIgYnJvd3NlciBvciBncmFwaGljcyBkcml2ZXJzIGh0dHA6Ly9nZXQud2ViZ2wub3JnXCIpLG51bGwpfX0se1wiLi91dGlsL2V4dGVuZFwiOjIyfV0sMzM6W2Z1bmN0aW9uKGYscCx1KXtmdW5jdGlvbiBsKGEsYil7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDsrK2MpaWYoYVtjXT09PWIpcmV0dXJuIGM7cmV0dXJuLTF9dmFyIGs9XG5mKFwiLi9saWIvdXRpbC9leHRlbmRcIikseD1mKFwiLi9saWIvZHluYW1pY1wiKSxyPWYoXCIuL2xpYi91dGlsL3JhZlwiKSxjPWYoXCIuL2xpYi91dGlsL2Nsb2NrXCIpLGE9ZihcIi4vbGliL3N0cmluZ3NcIiksYj1mKFwiLi9saWIvd2ViZ2xcIiksRj1mKFwiLi9saWIvZXh0ZW5zaW9uXCIpLE09ZihcIi4vbGliL2xpbWl0c1wiKSx0PWYoXCIuL2xpYi9idWZmZXJcIikseT1mKFwiLi9saWIvZWxlbWVudHNcIiksZz1mKFwiLi9saWIvdGV4dHVyZVwiKSxFPWYoXCIuL2xpYi9yZW5kZXJidWZmZXJcIiksQz1mKFwiLi9saWIvZnJhbWVidWZmZXJcIiksTj1mKFwiLi9saWIvYXR0cmlidXRlXCIpLG49ZihcIi4vbGliL3NoYWRlclwiKSxtPWYoXCIuL2xpYi9yZWFkXCIpLEI9ZihcIi4vbGliL2NvcmVcIiksWT1mKFwiLi9saWIvc3RhdHNcIiksTD1mKFwiLi9saWIvdGltZXJcIik7cC5leHBvcnRzPWZ1bmN0aW9uKGYpe2Z1bmN0aW9uIGgoKXtpZigwPT09US5sZW5ndGgpRyYmRy51cGRhdGUoKSxUPW51bGw7ZWxzZXtUPXIubmV4dChoKTtLKCk7Zm9yKHZhciBhPVxuUS5sZW5ndGgtMTswPD1hOy0tYSl7dmFyIGI9UVthXTtiJiZiKFUsbnVsbCwwKX1xLmZsdXNoKCk7RyYmRy51cGRhdGUoKX19ZnVuY3Rpb24gcCgpeyFUJiYwPFEubGVuZ3RoJiYoVD1yLm5leHQoaCkpfWZ1bmN0aW9uIHUoKXtUJiYoci5jYW5jZWwoaCksVD1udWxsKX1mdW5jdGlvbiBMYShhKXthLnByZXZlbnREZWZhdWx0KCk7dSgpO3BhLmZvckVhY2goZnVuY3Rpb24oYSl7YSgpfSl9ZnVuY3Rpb24gemEoYSl7cS5nZXRFcnJvcigpO21hLnJlc3RvcmUoKTtzYS5yZXN0b3JlKCk7a2EucmVzdG9yZSgpO2RhLnJlc3RvcmUoKTtqYS5yZXN0b3JlKCk7bGEucmVzdG9yZSgpO0cmJkcucmVzdG9yZSgpO2VhLnByb2NzLnJlZnJlc2goKTtwKCk7Vi5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EoKX0pfWZ1bmN0aW9uIEdhKGEpe2Z1bmN0aW9uIGIoYSl7dmFyIGM9e30sZj17fTtPYmplY3Qua2V5cyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBnPWFbYl07eC5pc0R5bmFtaWMoZyk/ZltiXT14LnVuYm94KGcsXG5iKTpjW2JdPWd9KTtyZXR1cm57ZHluYW1pYzpmLFwic3RhdGljXCI6Y319ZnVuY3Rpb24gYyhhKXtmb3IoO3EubGVuZ3RoPGE7KXEucHVzaChudWxsKTtyZXR1cm4gcX12YXIgZj1iKGEuY29udGV4dHx8e30pLGc9YihhLnVuaWZvcm1zfHx7fSksaD1iKGEuYXR0cmlidXRlc3x8e30pLGw9YihmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEpe2lmKGEgaW4gYyl7dmFyIGY9Y1thXTtkZWxldGUgY1thXTtPYmplY3Qua2V5cyhmKS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2NbYStcIi5cIitiXT1mW2JdfSl9fXZhciBjPWsoe30sYSk7ZGVsZXRlIGMudW5pZm9ybXM7ZGVsZXRlIGMuYXR0cmlidXRlcztkZWxldGUgYy5jb250ZXh0O1wic3RlbmNpbFwiaW4gYyYmYy5zdGVuY2lsLm9wJiYoYy5zdGVuY2lsLm9wQmFjaz1jLnN0ZW5jaWwub3BGcm9udD1jLnN0ZW5jaWwub3AsZGVsZXRlIGMuc3RlbmNpbC5vcCk7YihcImJsZW5kXCIpO2IoXCJkZXB0aFwiKTtiKFwiY3VsbFwiKTtiKFwic3RlbmNpbFwiKTtiKFwicG9seWdvbk9mZnNldFwiKTtcbmIoXCJzY2lzc29yXCIpO2IoXCJzYW1wbGVcIik7cmV0dXJuIGN9KGEpKTthPXtncHVUaW1lOjAsY3B1VGltZTowLGNvdW50OjB9O3ZhciBmPWVhLmNvbXBpbGUobCxoLGcsZixhKSxtPWYuZHJhdyxuPWYuYmF0Y2gscD1mLnNjb3BlLHE9W107cmV0dXJuIGsoZnVuY3Rpb24oYSxiKXt2YXIgZjtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlyZXR1cm4gcC5jYWxsKHRoaXMsbnVsbCxhLDApO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBiKWlmKFwibnVtYmVyXCI9PT10eXBlb2YgYSlmb3IoZj0wO2Y8YTsrK2YpcC5jYWxsKHRoaXMsbnVsbCxiLGYpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShhKSlmb3IoZj0wO2Y8YS5sZW5ndGg7KytmKXAuY2FsbCh0aGlzLGFbZl0sYixmKTtlbHNlIHJldHVybiBwLmNhbGwodGhpcyxhLGIsMCk7ZWxzZSBpZihcIm51bWJlclwiPT09dHlwZW9mIGEpe2lmKDA8YSlyZXR1cm4gbi5jYWxsKHRoaXMsYyhhfDApLGF8MCl9ZWxzZSBpZihBcnJheS5pc0FycmF5KGEpKXtpZihhLmxlbmd0aClyZXR1cm4gbi5jYWxsKHRoaXMsXG5hLGEubGVuZ3RoKX1lbHNlIHJldHVybiBtLmNhbGwodGhpcyxhKX0se3N0YXRzOmF9KX1mdW5jdGlvbiBaKGEpe1EucHVzaChhKTtwKCk7cmV0dXJue2NhbmNlbDpmdW5jdGlvbigpe2Z1bmN0aW9uIGIoKXt2YXIgYT1sKFEsYik7UVthXT1RW1EubGVuZ3RoLTFdOy0tUS5sZW5ndGg7MD49US5sZW5ndGgmJnUoKX12YXIgYz1sKFEsYSk7UVtjXT1ifX19ZnVuY3Rpb24gRCgpe3ZhciBhPU8udmlld3BvcnQsYj1PLnNjaXNzb3JfYm94O2FbMF09YVsxXT1iWzBdPWJbMV09MDtVLnZpZXdwb3J0V2lkdGg9VS5mcmFtZWJ1ZmZlcldpZHRoPVUuZHJhd2luZ0J1ZmZlcldpZHRoPWFbMl09YlsyXT1xLmRyYXdpbmdCdWZmZXJXaWR0aDtVLnZpZXdwb3J0SGVpZ2h0PVUuZnJhbWVidWZmZXJIZWlnaHQ9VS5kcmF3aW5nQnVmZmVySGVpZ2h0PWFbM109YlszXT1xLmRyYXdpbmdCdWZmZXJIZWlnaHR9ZnVuY3Rpb24gSygpe1UudGljays9MTtVLnRpbWU9dmEoKTtEKCk7ZWEucHJvY3MucG9sbCgpfWZ1bmN0aW9uIEFhKCl7RCgpO1xuZWEucHJvY3MucmVmcmVzaCgpO0cmJkcudXBkYXRlKCl9ZnVuY3Rpb24gdmEoKXtyZXR1cm4oYygpLWJhKS8xRTN9Zj1iKGYpO2lmKCFmKXJldHVybiBudWxsO3ZhciBxPWYuZ2wsUz1xLmdldENvbnRleHRBdHRyaWJ1dGVzKCk7cS5pc0NvbnRleHRMb3N0KCk7dmFyIG1hPUYocSxmKTtpZighbWEpcmV0dXJuIG51bGw7dmFyIGdhPWEoKSxXPVkoKSxSPW1hLmV4dGVuc2lvbnMsRz1MKHEsUiksYmE9YygpLG5hPXEuZHJhd2luZ0J1ZmZlcldpZHRoLHlhPXEuZHJhd2luZ0J1ZmZlckhlaWdodCxVPXt0aWNrOjAsdGltZTowLHZpZXdwb3J0V2lkdGg6bmEsdmlld3BvcnRIZWlnaHQ6eWEsZnJhbWVidWZmZXJXaWR0aDpuYSxmcmFtZWJ1ZmZlckhlaWdodDp5YSxkcmF3aW5nQnVmZmVyV2lkdGg6bmEsZHJhd2luZ0J1ZmZlckhlaWdodDp5YSxwaXhlbFJhdGlvOmYucGl4ZWxSYXRpb30saWE9TShxLFIpLGthPXQocSxXLGYpLHJhPXkocSxSLGthLFcpLG5hPU4ocSxSLGlhLGthLGdhKSxzYT1uKHEsXG5nYSxXLGYpLGRhPWcocSxSLGlhLGZ1bmN0aW9uKCl7ZWEucHJvY3MucG9sbCgpfSxVLFcsZiksamE9RShxLFIsaWEsVyxmKSxsYT1DKHEsUixpYSxkYSxqYSxXKSxlYT1CKHEsZ2EsUixpYSxrYSxyYSxkYSxsYSx7fSxuYSxzYSx7ZWxlbWVudHM6bnVsbCxwcmltaXRpdmU6NCxjb3VudDotMSxvZmZzZXQ6MCxpbnN0YW5jZXM6LTF9LFUsRyxmKSxnYT1tKHEsbGEsZWEucHJvY3MucG9sbCxVLFMsUiksTz1lYS5uZXh0LGhhPXEuY2FudmFzLFE9W10scGE9W10sVj1bXSxYPVtmLm9uRGVzdHJveV0sVD1udWxsO2hhJiYoaGEuYWRkRXZlbnRMaXN0ZW5lcihcIndlYmdsY29udGV4dGxvc3RcIixMYSwhMSksaGEuYWRkRXZlbnRMaXN0ZW5lcihcIndlYmdsY29udGV4dHJlc3RvcmVkXCIsemEsITEpKTtBYSgpO1M9ayhHYSx7Y2xlYXI6ZnVuY3Rpb24oYSl7dmFyIGI9MDtlYS5wcm9jcy5wb2xsKCk7dmFyIGM9YS5jb2xvcjtjJiYocS5jbGVhckNvbG9yKCtjWzBdfHwwLCtjWzFdfHwwLCtjWzJdfHwwLFxuK2NbM118fDApLGJ8PTE2Mzg0KTtcImRlcHRoXCJpbiBhJiYocS5jbGVhckRlcHRoKCthLmRlcHRoKSxifD0yNTYpO1wic3RlbmNpbFwiaW4gYSYmKHEuY2xlYXJTdGVuY2lsKGEuc3RlbmNpbHwwKSxifD0xMDI0KTtxLmNsZWFyKGIpfSxwcm9wOnguZGVmaW5lLmJpbmQobnVsbCwxKSxjb250ZXh0OnguZGVmaW5lLmJpbmQobnVsbCwyKSxcInRoaXNcIjp4LmRlZmluZS5iaW5kKG51bGwsMyksZHJhdzpHYSh7fSksYnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBrYS5jcmVhdGUoYSwzNDk2MiwhMSwhMSl9LGVsZW1lbnRzOmZ1bmN0aW9uKGEpe3JldHVybiByYS5jcmVhdGUoYSwhMSl9LHRleHR1cmU6ZGEuY3JlYXRlMkQsY3ViZTpkYS5jcmVhdGVDdWJlLHJlbmRlcmJ1ZmZlcjpqYS5jcmVhdGUsZnJhbWVidWZmZXI6bGEuY3JlYXRlLGZyYW1lYnVmZmVyQ3ViZTpsYS5jcmVhdGVDdWJlLGF0dHJpYnV0ZXM6UyxmcmFtZTpaLG9uOmZ1bmN0aW9uKGEsYil7dmFyIGM7c3dpdGNoKGEpe2Nhc2UgXCJmcmFtZVwiOnJldHVybiBaKGIpO1xuY2FzZSBcImxvc3RcIjpjPXBhO2JyZWFrO2Nhc2UgXCJyZXN0b3JlXCI6Yz1WO2JyZWFrO2Nhc2UgXCJkZXN0cm95XCI6Yz1YfWMucHVzaChiKTtyZXR1cm57Y2FuY2VsOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPTA7YTxjLmxlbmd0aDsrK2EpaWYoY1thXT09PWIpe2NbYV09Y1tjLmxlbmd0aC0xXTtjLnBvcCgpO2JyZWFrfX19fSxsaW1pdHM6aWEsaGFzRXh0ZW5zaW9uOmZ1bmN0aW9uKGEpe3JldHVybiAwPD1pYS5leHRlbnNpb25zLmluZGV4T2YoYS50b0xvd2VyQ2FzZSgpKX0scmVhZDpnYSxkZXN0cm95OmZ1bmN0aW9uKCl7US5sZW5ndGg9MDt1KCk7aGEmJihoYS5yZW1vdmVFdmVudExpc3RlbmVyKFwid2ViZ2xjb250ZXh0bG9zdFwiLExhKSxoYS5yZW1vdmVFdmVudExpc3RlbmVyKFwid2ViZ2xjb250ZXh0cmVzdG9yZWRcIix6YSkpO3NhLmNsZWFyKCk7bGEuY2xlYXIoKTtqYS5jbGVhcigpO2RhLmNsZWFyKCk7cmEuY2xlYXIoKTtrYS5jbGVhcigpO0cmJkcuY2xlYXIoKTtYLmZvckVhY2goZnVuY3Rpb24oYSl7YSgpfSl9LFxuX2dsOnEsX3JlZnJlc2g6QWEscG9sbDpmdW5jdGlvbigpe0soKTtHJiZHLnVwZGF0ZSgpfSxub3c6dmEsc3RhdHM6V30pO2Yub25Eb25lKG51bGwsUyk7cmV0dXJuIFN9fSx7XCIuL2xpYi9hdHRyaWJ1dGVcIjoxLFwiLi9saWIvYnVmZmVyXCI6MixcIi4vbGliL2NvcmVcIjo3LFwiLi9saWIvZHluYW1pY1wiOjgsXCIuL2xpYi9lbGVtZW50c1wiOjksXCIuL2xpYi9leHRlbnNpb25cIjoxMCxcIi4vbGliL2ZyYW1lYnVmZmVyXCI6MTEsXCIuL2xpYi9saW1pdHNcIjoxMixcIi4vbGliL3JlYWRcIjoxMyxcIi4vbGliL3JlbmRlcmJ1ZmZlclwiOjE0LFwiLi9saWIvc2hhZGVyXCI6MTUsXCIuL2xpYi9zdGF0c1wiOjE2LFwiLi9saWIvc3RyaW5nc1wiOjE3LFwiLi9saWIvdGV4dHVyZVwiOjE4LFwiLi9saWIvdGltZXJcIjoxOSxcIi4vbGliL3V0aWwvY2xvY2tcIjoyMCxcIi4vbGliL3V0aWwvZXh0ZW5kXCI6MjIsXCIuL2xpYi91dGlsL3JhZlwiOjI5LFwiLi9saWIvd2ViZ2xcIjozMn1dfSx7fSxbMzNdKSgzMyl9KTtcblxufSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWwgOiB0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIiA/IHNlbGYgOiB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93IDoge30pXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldDp1dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJbkpsWjJ3dWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqdEJRVUZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRWlMQ0ptYVd4bElqb2laMlZ1WlhKaGRHVmtMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWlobWRXNWpkR2x2YmloUFlTbDdYQ0p2WW1wbFkzUmNJajA5UFhSNWNHVnZaaUJsZUhCdmNuUnpKaVpjSW5WdVpHVm1hVzVsWkZ3aUlUMDlkSGx3Wlc5bUlHMXZaSFZzWlQ5dGIyUjFiR1V1Wlhod2IzSjBjejFQWVNncE9sd2lablZ1WTNScGIyNWNJajA5UFhSNWNHVnZaaUJrWldacGJtVW1KbVJsWm1sdVpTNWhiV1EvWkdWbWFXNWxLRnRkTEU5aEtUb29YQ0oxYm1SbFptbHVaV1JjSWlFOVBYUjVjR1Z2WmlCM2FXNWtiM2MvZDJsdVpHOTNPbHdpZFc1a1pXWnBibVZrWENJaFBUMTBlWEJsYjJZZ1oyeHZZbUZzUDJkc2IySmhiRHBjSW5WdVpHVm1hVzVsWkZ3aUlUMDlkSGx3Wlc5bUlITmxiR1kvYzJWc1pqcDBhR2x6S1M1amNtVmhkR1ZTUlVkTVBVOWhLQ2w5S1NobWRXNWpkR2x2YmlncGUzSmxkSFZ5YmlCbWRXNWpkR2x2YmlCbUtIQXNkU3hzS1h0bWRXNWpkR2x2YmlCcktHTXNZU2w3YVdZb0lYVmJZMTBwZTJsbUtDRndXMk5kS1h0MllYSWdZajFjSW1aMWJtTjBhVzl1WENJOVBYUjVjR1Z2WmlCeVpYRjFhWEpsSmlaeVpYRjFhWEpsTzJsbUtDRmhKaVppS1hKbGRIVnliaUJpS0dNc0lUQXBPMmxtS0hncGNtVjBkWEp1SUhnb1l5d2hNQ2s3WWoxRmNuSnZjaWhjSWtOaGJtNXZkQ0JtYVc1a0lHMXZaSFZzWlNBblhDSXJZeXRjSWlkY0lpazdkR2h5YjNjZ1lpNWpiMlJsUFZ3aVRVOUVWVXhGWDA1UFZGOUdUMVZPUkZ3aUxHSTdmV0k5WEc1MVcyTmRQWHRsZUhCdmNuUnpPbnQ5ZlR0d1cyTmRXekJkTG1OaGJHd29ZaTVsZUhCdmNuUnpMR1oxYm1OMGFXOXVLR0VwZTNaaGNpQmlQWEJiWTExYk1WMWJZVjA3Y21WMGRYSnVJR3NvWWo5aU9tRXBmU3hpTEdJdVpYaHdiM0owY3l4bUxIQXNkU3hzS1gxeVpYUjFjbTRnZFZ0alhTNWxlSEJ2Y25SemZXWnZjaWgyWVhJZ2VEMWNJbVoxYm1OMGFXOXVYQ0k5UFhSNWNHVnZaaUJ5WlhGMWFYSmxKaVp5WlhGMWFYSmxMSEk5TUR0eVBHd3ViR1Z1WjNSb08zSXJLeWxyS0d4YmNsMHBPM0psZEhWeWJpQnJmU2g3TVRwYlpuVnVZM1JwYjI0b1ppeHdMSFVwZTJaMWJtTjBhVzl1SUd3b0tYdDBhR2x6TG5jOWRHaHBjeTU2UFhSb2FYTXVlVDEwYUdsekxuZzlkR2hwY3k1emRHRjBaVDB3TzNSb2FYTXVZblZtWm1WeVBXNTFiR3c3ZEdocGN5NXphWHBsUFRBN2RHaHBjeTV1YjNKdFlXeHBlbVZrUFNFeE8zUm9hWE11ZEhsd1pUMDFNVEkyTzNSb2FYTXVaR2wyYVhOdmNqMTBhR2x6TG5OMGNtbGtaVDEwYUdsekxtOW1abk5sZEQwd2ZYQXVaWGh3YjNKMGN6MW1kVzVqZEdsdmJpaHJMSGdzY2l4akxHRXBlMnM5Y2k1dFlYaEJkSFJ5YVdKMWRHVnpPM2c5UVhKeVlYa29heWs3Wm05eUtISTlNRHR5UEdzN0t5dHlLWGhiY2wwOWJtVjNJR3c3Y21WMGRYSnVlMUpsWTI5eVpEcHNMSE5qYjNCbE9udDlMSE4wWVhSbE9uaDlmWDBzWEc1N2ZWMHNNanBiWm5WdVkzUnBiMjRvWml4d0xIVXBlMloxYm1OMGFXOXVJR3dvWXlsN2NtVjBkWEp1SUhSYlQySnFaV04wTG5CeWIzUnZkSGx3WlM1MGIxTjBjbWx1Wnk1allXeHNLR01wWFh3d2ZXWjFibU4wYVc5dUlHc29ZeXhoS1h0bWIzSW9kbUZ5SUdJOU1EdGlQR0V1YkdWdVozUm9PeXNyWWlsalcySmRQV0ZiWWwxOVpuVnVZM1JwYjI0Z2VDaGpMR0VzWWl4ckxHd3NjaXg0S1h0bWIzSW9kbUZ5SUdjOU1DeG9QVEE3YUR4aU95c3JhQ2xtYjNJb2RtRnlJR1k5TUR0bVBHczdLeXRtS1dOYlp5c3JYVDFoVzJ3cWFDdHlLbVlyZUYxOWRtRnlJSEk5WmloY0lpNHZkWFJwYkM5cGN5MTBlWEJsWkMxaGNuSmhlVndpS1N4alBXWW9YQ0l1TDNWMGFXd3ZhWE10Ym1SaGNuSmhlVndpS1N4aFBXWW9YQ0l1TDNWMGFXd3ZkbUZzZFdWelhDSXBMR0k5WmloY0lpNHZkWFJwYkM5d2IyOXNYQ0lwTzNVOVppaGNJaTR2ZFhScGJDOW1iR0YwZEdWdVhDSXBPM1poY2lCR1BYVXVabXhoZEhSbGJpeE5QWFV1YzJoaGNHVXNkRDFtS0Z3aUxpOWpiMjV6ZEdGdWRITXZZWEp5WVhsMGVYQmxjeTVxYzI5dVhDSXBMSGs5WmloY0lpNHZZMjl1YzNSaGJuUnpMMlIwZVhCbGN5NXFjMjl1WENJcExHYzlaaWhjSWk0dlkyOXVjM1JoYm5SekwzVnpZV2RsTG1wemIyNWNJaWtzUlQxYlhUdEZXelV4TWpCZFBURTdSVnMxTVRJeVhUMHlPMFZiTlRFeU5GMDlYRzQwTzBWYk5URXlNVjA5TVR0Rld6VXhNak5kUFRJN1JWczFNVEkxWFQwME8wVmJOVEV5TmwwOU5EdHdMbVY0Y0c5eWRITTlablZ1WTNScGIyNG9aaXgwTEc0cGUyWjFibU4wYVc5dUlHMG9ZeWw3ZEdocGN5NXBaRDFJS3lzN2RHaHBjeTVpZFdabVpYSTlaaTVqY21WaGRHVkNkV1ptWlhJb0tUdDBhR2x6TG5SNWNHVTlZenQwYUdsekxuVnpZV2RsUFRNMU1EUTBPM1JvYVhNdVlubDBaVXhsYm1kMGFEMHdPM1JvYVhNdVpHbHRaVzV6YVc5dVBURTdkR2hwY3k1a2RIbHdaVDAxTVRJeE8zUm9hWE11Y0dWeWMybHpkR1Z1ZEVSaGRHRTliblZzYkR0dUxuQnliMlpwYkdVbUppaDBhR2x6TG5OMFlYUnpQWHR6YVhwbE9qQjlLWDFtZFc1amRHbHZiaUJDS0dNc1lTeGlLWHRqTG1KNWRHVk1aVzVuZEdnOVlTNWllWFJsVEdWdVozUm9PMll1WW5WbVptVnlSR0YwWVNoakxuUjVjR1VzWVN4aUtYMW1kVzVqZEdsdmJpQndLR0VzYUN4dExHWXNaeXh1S1h0aExuVnpZV2RsUFcwN2FXWW9RWEp5WVhrdWFYTkJjbkpoZVNob0tTbDdhV1lvWVM1a2RIbHdaVDFtZkh3MU1USTJMREE4YUM1c1pXNW5kR2dwYVdZb1FYSnlZWGt1YVhOQmNuSmhlU2hvV3pCZEtTbDdaejFOS0dncE8yWnZjaWgyWVhJZ1N6MW1QVEU3U3p4bkxteGxibWQwYURzckswc3BaaW85WjF0TFhUdGhMbVJwYldWdWMybHZiajFtTzJnOVJpaG9MRnh1Wnl4aExtUjBlWEJsS1R0Q0tHRXNhQ3h0S1R0dVAyRXVjR1Z5YzJsemRHVnVkRVJoZEdFOWFEcGlMbVp5WldWVWVYQmxLR2dwZldWc2MyVmNJbTUxYldKbGNsd2lQVDA5ZEhsd1pXOW1JR2hiTUYwL0tHRXVaR2x0Wlc1emFXOXVQV2NzWnoxaUxtRnNiRzlqVkhsd1pTaGhMbVIwZVhCbExHZ3ViR1Z1WjNSb0tTeHJLR2NzYUNrc1FpaGhMR2NzYlNrc2JqOWhMbkJsY25OcGMzUmxiblJFWVhSaFBXYzZZaTVtY21WbFZIbHdaU2huS1NrNmNpaG9XekJkS1NZbUtHRXVaR2x0Wlc1emFXOXVQV2hiTUYwdWJHVnVaM1JvTEdFdVpIUjVjR1U5Wm54OGJDaG9XekJkS1h4OE5URXlOaXhvUFVZb2FDeGJhQzVzWlc1bmRHZ3NhRnN3WFM1c1pXNW5kR2hkTEdFdVpIUjVjR1VwTEVJb1lTeG9MRzBwTEc0L1lTNXdaWEp6YVhOMFpXNTBSR0YwWVQxb09tSXVabkpsWlZSNWNHVW9hQ2twZldWc2MyVWdhV1lvY2lob0tTbGhMbVIwZVhCbFBXWjhmR3dvYUNrc1lTNWthVzFsYm5OcGIyNDlaeXhDS0dFc2FDeHRLU3h1SmlZb1lTNXdaWEp6YVhOMFpXNTBSR0YwWVQxdVpYY2dWV2x1ZERoQmNuSmhlU2h1WlhjZ1ZXbHVkRGhCY25KaGVTaG9MbUoxWm1abGNpa3BLVHRsYkhObElHbG1LR01vYUNrcGUyYzlhQzV6YUdGd1pUdDJZWElnUXoxb0xuTjBjbWxrWlN4TFBXZ3ViMlptYzJWMExIazlNQ3h4UFRBc1V6MHdMSFE5WEc0d096RTlQVDFuTG14bGJtZDBhRDhvZVQxbld6QmRMSEU5TVN4VFBVTmJNRjBzZEQwd0tUb3lQVDA5Wnk1c1pXNW5kR2dtSmloNVBXZGJNRjBzY1Qxbld6RmRMRk05UTFzd1hTeDBQVU5iTVYwcE8yRXVaSFI1Y0dVOVpueDhiQ2hvTG1SaGRHRXBmSHcxTVRJMk8yRXVaR2x0Wlc1emFXOXVQWEU3WnoxaUxtRnNiRzlqVkhsd1pTaGhMbVIwZVhCbExIa3FjU2s3ZUNobkxHZ3VaR0YwWVN4NUxIRXNVeXgwTEVzcE8wSW9ZU3huTEcwcE8yNC9ZUzV3WlhKemFYTjBaVzUwUkdGMFlUMW5PbUl1Wm5KbFpWUjVjR1VvWnlsOWZXWjFibU4wYVc5dUlFd29ZeWw3ZEM1aWRXWm1aWEpEYjNWdWRDMHRPMll1WkdWc1pYUmxRblZtWm1WeUtHTXVZblZtWm1WeUtUdGpMbUoxWm1abGNqMXVkV3hzTzJSbGJHVjBaU0JvVzJNdWFXUmRmWFpoY2lCSVBUQXNhRDE3ZlR0dExuQnliM1J2ZEhsd1pTNWlhVzVrUFdaMWJtTjBhVzl1S0NsN1ppNWlhVzVrUW5WbVptVnlLSFJvYVhNdWRIbHdaU3gwYUdsekxtSjFabVpsY2lsOU8yMHVjSEp2ZEc5MGVYQmxMbVJsYzNSeWIzazlablZ1WTNScGIyNG9LWHRNS0hSb2FYTXBmVHQyWVhJZ1ptRTlXMTA3Ymk1d2NtOW1hV3hsSmlZb2RDNW5aWFJVYjNSaGJFSjFabVpsY2xOcGVtVTlablZ1WTNScGIyNG9LWHQyWVhJZ1l6MHdPMDlpYW1WamRDNXJaWGx6S0dncExtWnZja1ZoWTJnb1puVnVZM1JwYjI0b1lTbDdZeXM5WEc1b1cyRmRMbk4wWVhSekxuTnBlbVY5S1R0eVpYUjFjbTRnWTMwcE8zSmxkSFZ5Ym50amNtVmhkR1U2Wm5WdVkzUnBiMjRvWVN4Q0xFZ3NabUVwZTJaMWJtTjBhVzl1SUhVb1lTbDdkbUZ5SUdnOU16VXdORFFzWWoxdWRXeHNMSEU5TUN4clBUQXNiVDB4TzBGeWNtRjVMbWx6UVhKeVlYa29ZU2w4ZkhJb1lTbDhmR01vWVNrL1lqMWhPbHdpYm5WdFltVnlYQ0k5UFQxMGVYQmxiMllnWVQ5eFBXRjhNRHBoSmlZb1hDSmtZWFJoWENKcGJpQmhKaVlvWWoxaExtUmhkR0VwTEZ3aWRYTmhaMlZjSW1sdUlHRW1KaWhvUFdkYllTNTFjMkZuWlYwcExGd2lkSGx3WlZ3aWFXNGdZU1ltS0dzOWVWdGhMblI1Y0dWZEtTeGNJbVJwYldWdWMybHZibHdpYVc0Z1lTWW1LRzA5WVM1a2FXMWxibk5wYjI1OE1Da3NYQ0pzWlc1bmRHaGNJbWx1SUdFbUppaHhQV0V1YkdWdVozUm9mREFwS1R0RUxtSnBibVFvS1R0aVAzQW9SQ3hpTEdnc2F5eHRMR1poS1Rvb1ppNWlkV1ptWlhKRVlYUmhLRVF1ZEhsd1pTeHhMR2dwTEVRdVpIUjVjR1U5YTN4OE5URXlNU3hFTG5WellXZGxQV2dzUkM1a2FXMWxibk5wYjI0OWJTeEVMbUo1ZEdWTVpXNW5kR2c5Y1NrN2JpNXdjbTltYVd4bEppWW9SQzV6ZEdGMGN5NXphWHBsUFVRdVlubDBaVXhsYm1kMGFDcEZXMFF1WkhSNWNHVmRLVHR5WlhSMWNtNGdkWDEwTG1KMVptWmxja052ZFc1MEt5czdkbUZ5SUVROVhHNXVaWGNnYlNoQ0tUdG9XMFF1YVdSZFBVUTdTSHg4ZFNoaEtUdDFMbDl5Wldkc1ZIbHdaVDFjSW1KMVptWmxjbHdpTzNVdVgySjFabVpsY2oxRU8zVXVjM1ZpWkdGMFlUMW1kVzVqZEdsdmJpaGhMR2dwZTNaaGNpQnRQU2hvZkh3d0tYd3dMSEU3UkM1aWFXNWtLQ2s3YVdZb1FYSnlZWGt1YVhOQmNuSmhlU2hoS1NsN2FXWW9NRHhoTG14bGJtZDBhQ2xwWmloY0ltNTFiV0psY2x3aVBUMDlkSGx3Wlc5bUlHRmJNRjBwZTNaaGNpQm5QV0l1WVd4c2IyTlVlWEJsS0VRdVpIUjVjR1VzWVM1c1pXNW5kR2dwTzJzb1p5eGhLVHRtTG1KMVptWmxjbE4xWWtSaGRHRW9SQzUwZVhCbExHMHNaeWs3WWk1bWNtVmxWSGx3WlNobktYMWxiSE5sSUdsbUtFRnljbUY1TG1selFYSnlZWGtvWVZzd1hTbDhmSElvWVZzd1hTa3BjVDFOS0dFcExHYzlSaWhoTEhFc1JDNWtkSGx3WlNrc1ppNWlkV1ptWlhKVGRXSkVZWFJoS0VRdWRIbHdaU3h0TEdjcExHSXVabkpsWlZSNWNHVW9aeWw5Wld4elpTQnBaaWh5S0dFcEtXWXVZblZtWm1WeVUzVmlSR0YwWVNoRUxuUjVjR1VzYlN4aEtUdGxiSE5sSUdsbUtHTW9ZU2twZTNFOVlTNXphR0Z3WlR0MllYSWdiajFoTG5OMGNtbGtaU3hDUFdjOU1DeDVQVEFzZEQwd096RTlQVDF4TG14bGJtZDBhRDhvWnoxeFd6QmRMRUk5TVN4NVBXNWJNRjBzZEQwd0tUb3lQVDA5Y1M1c1pXNW5kR2dtSmx4dUtHYzljVnN3WFN4Q1BYRmJNVjBzZVQxdVd6QmRMSFE5YmxzeFhTazdjVDFCY25KaGVTNXBjMEZ5Y21GNUtHRXVaR0YwWVNrL1JDNWtkSGx3WlRwc0tHRXVaR0YwWVNrN2NUMWlMbUZzYkc5alZIbHdaU2h4TEdjcVFpazdlQ2h4TEdFdVpHRjBZU3huTEVJc2VTeDBMR0V1YjJabWMyVjBLVHRtTG1KMVptWmxjbE4xWWtSaGRHRW9SQzUwZVhCbExHMHNjU2s3WWk1bWNtVmxWSGx3WlNoeEtYMXlaWFIxY200Z2RYMDdiaTV3Y205bWFXeGxKaVlvZFM1emRHRjBjejFFTG5OMFlYUnpLVHQxTG1SbGMzUnliM2s5Wm5WdVkzUnBiMjRvS1h0TUtFUXBmVHR5WlhSMWNtNGdkWDBzWTNKbFlYUmxVM1J5WldGdE9tWjFibU4wYVc5dUtHRXNZeWw3ZG1GeUlHZzlabUV1Y0c5d0tDazdhSHg4S0dnOWJtVjNJRzBvWVNrcE8yZ3VZbWx1WkNncE8zQW9hQ3hqTERNMU1EUXdMREFzTVN3aE1TazdjbVYwZFhKdUlHaDlMR1JsYzNSeWIzbFRkSEpsWVcwNlpuVnVZM1JwYjI0b1lTbDdabUV1Y0hWemFDaGhLWDBzWTJ4bFlYSTZablZ1WTNScGIyNG9LWHRoS0dncExtWnZja1ZoWTJnb1RDazdabUV1Wm05eVJXRmphQ2hNS1gwc1oyVjBRblZtWm1WeU9tWjFibU4wYVc5dUtHRXBlM0psZEhWeWJpQmhKaVpoTGw5aWRXWm1aWElnYVc1emRHRnVZMlZ2WmlCdFAyRXVYMkoxWm1abGNqcHVkV3hzZlN4eVpYTjBiM0psT21aMWJtTjBhVzl1S0NsN1lTaG9LUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVLR0VwZTJFdVluVm1abVZ5UFZ4dVppNWpjbVZoZEdWQ2RXWm1aWElvS1R0bUxtSnBibVJDZFdabVpYSW9ZUzUwZVhCbExHRXVZblZtWm1WeUtUdG1MbUoxWm1abGNrUmhkR0VvWVM1MGVYQmxMR0V1Y0dWeWMybHpkR1Z1ZEVSaGRHRjhmR0V1WW5sMFpVeGxibWQwYUN4aExuVnpZV2RsS1gwcGZTeGZhVzVwZEVKMVptWmxjanB3ZlgxOUxIdGNJaTR2WTI5dWMzUmhiblJ6TDJGeWNtRjVkSGx3WlhNdWFuTnZibHdpT2pNc1hDSXVMMk52Ym5OMFlXNTBjeTlrZEhsd1pYTXVhbk52Ymx3aU9qUXNYQ0l1TDJOdmJuTjBZVzUwY3k5MWMyRm5aUzVxYzI5dVhDSTZOaXhjSWk0dmRYUnBiQzltYkdGMGRHVnVYQ0k2TWpNc1hDSXVMM1YwYVd3dmFYTXRibVJoY25KaGVWd2lPakkxTEZ3aUxpOTFkR2xzTDJsekxYUjVjR1ZrTFdGeWNtRjVYQ0k2TWpZc1hDSXVMM1YwYVd3dmNHOXZiRndpT2pJNExGd2lMaTkxZEdsc0wzWmhiSFZsYzF3aU9qTXhmVjBzTXpwYlpuVnVZM1JwYjI0b1ppeHdMSFVwZTNBdVpYaHdiM0owY3oxN1hDSmJiMkpxWldOMElFbHVkRGhCY25KaGVWMWNJam8xTVRJd0xGd2lXMjlpYW1WamRDQkpiblF4TmtGeWNtRjVYVndpT2pVeE1qSXNYQ0piYjJKcVpXTjBJRWx1ZERNeVFYSnlZWGxkWENJNk5URXlOQ3hjSWx0dlltcGxZM1FnVldsdWREaEJjbkpoZVYxY0lqbzFNVEl4TEZ3aVcyOWlhbVZqZENCVmFXNTBPRU5zWVcxd1pXUkJjbkpoZVYxY0lqbzFNVEl4TEZ3aVcyOWlhbVZqZENCVmFXNTBNVFpCY25KaGVWMWNJam8xTVRJekxGeHVYQ0piYjJKcVpXTjBJRlZwYm5Rek1rRnljbUY1WFZ3aU9qVXhNalVzWENKYmIySnFaV04wSUVac2IyRjBNekpCY25KaGVWMWNJam8xTVRJMkxGd2lXMjlpYW1WamRDQkdiRzloZERZMFFYSnlZWGxkWENJNk5URXlNU3hjSWx0dlltcGxZM1FnUVhKeVlYbENkV1ptWlhKZFhDSTZOVEV5TVgxOUxIdDlYU3cwT2x0bWRXNWpkR2x2YmlobUxIQXNkU2w3Y0M1bGVIQnZjblJ6UFh0cGJuUTRPalV4TWpBc2FXNTBNVFk2TlRFeU1peHBiblF6TWpvMU1USTBMSFZwYm5RNE9qVXhNakVzZFdsdWRERTJPalV4TWpNc2RXbHVkRE15T2pVeE1qVXNYQ0ptYkc5aGRGd2lPalV4TWpZc1pteHZZWFF6TWpvMU1USTJmWDBzZTMxZExEVTZXMloxYm1OMGFXOXVLR1lzY0N4MUtYdHdMbVY0Y0c5eWRITTllM0J2YVc1MGN6b3dMSEJ2YVc1ME9qQXNiR2x1WlhNNk1TeHNhVzVsT2pFc1hDSnNhVzVsSUd4dmIzQmNJam95TEZ3aWJHbHVaU0J6ZEhKcGNGd2lPak1zZEhKcFlXNW5iR1Z6T2pRc2RISnBZVzVuYkdVNk5DeGNJblJ5YVdGdVoyeGxJSE4wY21sd1hDSTZOU3hjSW5SeWFXRnVaMnhsSUdaaGJsd2lPalo5ZlN4N2ZWMHNOanBiWm5WdVkzUnBiMjRvWml4d0xIVXBlM0F1Wlhod2IzSjBjejE3WENKemRHRjBhV05jSWpvek5UQTBOQ3hrZVc1aGJXbGpPak0xTURRNExITjBjbVZoYlRvek5UQTBNSDE5TEh0OVhTdzNPbHRtZFc1amRHbHZiaWhtTEhBc2RTbDdablZ1WTNScGIyNGdiQ2hoS1h0eVpYUjFjbTRnUVhKeVlYa3VhWE5CY25KaGVTaGhLWHg4WEc1TktHRXBmSHgwS0dFcGZXWjFibU4wYVc5dUlHc29ZU2w3Y21WMGRYSnVJR0V1YzI5eWRDaG1kVzVqZEdsdmJpaGhMR01wZTNKbGRIVnlibHdpZG1sbGQzQnZjblJjSWowOVBXRS9MVEU2WENKMmFXVjNjRzl5ZEZ3aVBUMDlZejh4T21FOFl6OHRNVG94ZlNsOVpuVnVZM1JwYjI0Z2VDaGhMR01zWWl4cktYdDBhR2x6TG5Sb2FYTkVaWEE5WVR0MGFHbHpMbU52Ym5SbGVIUkVaWEE5WXp0MGFHbHpMbkJ5YjNCRVpYQTlZanQwYUdsekxtRndjR1Z1WkQxcmZXWjFibU4wYVc5dUlISW9ZU2w3Y21WMGRYSnVJR0VtSmlFb1lTNTBhR2x6UkdWd2ZIeGhMbU52Ym5SbGVIUkVaWEI4ZkdFdWNISnZjRVJsY0NsOVpuVnVZM1JwYjI0Z1l5aGhLWHR5WlhSMWNtNGdibVYzSUhnb0lURXNJVEVzSVRFc1lTbDlablZ1WTNScGIyNGdZU2hoTEdNcGUzWmhjaUJpUFdFdWRIbHdaVHR5WlhSMWNtNGdNRDA5UFdJL0tHSTlZUzVrWVhSaExteGxibWQwYUN4dVpYY2dlQ2doTUN3eFBEMWlMREk4UFdJc1l5a3BPalE5UFQxaVB5aGlQV0V1WkdGMFlTeHVaWGNnZUNoaUxuUm9hWE5FWlhBc1lpNWpiMjUwWlhoMFJHVndMR0l1Y0hKdmNFUmxjQ3hqS1NrNmJtVjNJSGdvTXowOVBXSXNNajA5UFdJc01UMDlQV0lzWXlsOWRtRnlJR0k5WmloY0lpNHZkWFJwYkM5amIyUmxaMlZ1WENJcExFWTlaaWhjSWk0dmRYUnBiQzlzYjI5d1hDSXBMRnh1VFQxbUtGd2lMaTkxZEdsc0wybHpMWFI1Y0dWa0xXRnljbUY1WENJcExIUTlaaWhjSWk0dmRYUnBiQzlwY3kxdVpHRnljbUY1WENJcExIazlaaWhjSWk0dmRYUnBiQzlwY3kxaGNuSmhlUzFzYVd0bFhDSXBMR2M5WmloY0lpNHZaSGx1WVcxcFkxd2lLU3hGUFdZb1hDSXVMMk52Ym5OMFlXNTBjeTl3Y21sdGFYUnBkbVZ6TG1wemIyNWNJaWtzUXoxbUtGd2lMaTlqYjI1emRHRnVkSE12WkhSNWNHVnpMbXB6YjI1Y0lpa3NUajFiWENKNFhDSXNYQ0o1WENJc1hDSjZYQ0lzWENKM1hDSmRMRzQ5WENKaWJHVnVaQzVtZFc1aklHSnNaVzVrTG1WeGRXRjBhVzl1SUhOMFpXNWphV3d1Wm5WdVl5QnpkR1Z1WTJsc0xtOXdSbkp2Ym5RZ2MzUmxibU5wYkM1dmNFSmhZMnNnYzJGdGNHeGxMbU52ZG1WeVlXZGxJSFpwWlhkd2IzSjBJSE5qYVhOemIzSXVZbTk0SUhCdmJIbG5iMjVQWm1aelpYUXViMlptYzJWMFhDSXVjM0JzYVhRb1hDSWdYQ0lwTEcwOWV6QTZNQ3d4T2pFc2VtVnliem93TEc5dVpUb3hMRndpYzNKaklHTnZiRzl5WENJNk56WTRMRndpYjI1bElHMXBiblZ6SUhOeVl5QmpiMnh2Y2x3aU9qYzJPU3hjSW5OeVl5QmhiSEJvWVZ3aU9qYzNNQ3hjSW05dVpTQnRhVzUxY3lCemNtTWdZV3h3YUdGY0lqbzNOekVzWENKa2MzUWdZMjlzYjNKY0lqbzNOelFzWENKdmJtVWdiV2x1ZFhNZ1pITjBJR052Ykc5eVhDSTZOemMxTEZ3aVpITjBJR0ZzY0doaFhDSTZOemN5TEZ3aWIyNWxJRzFwYm5WeklHUnpkQ0JoYkhCb1lWd2lPamMzTXl4Y2Jsd2lZMjl1YzNSaGJuUWdZMjlzYjNKY0lqb3pNamMyT1N4Y0ltOXVaU0J0YVc1MWN5QmpiMjV6ZEdGdWRDQmpiMnh2Y2x3aU9qTXlOemN3TEZ3aVkyOXVjM1JoYm5RZ1lXeHdhR0ZjSWpvek1qYzNNU3hjSW05dVpTQnRhVzUxY3lCamIyNXpkR0Z1ZENCaGJIQm9ZVndpT2pNeU56Y3lMRndpYzNKaklHRnNjR2hoSUhOaGRIVnlZWFJsWENJNk56YzJmU3hDUFh0dVpYWmxjam8xTVRJc2JHVnpjem8xTVRNc1hDSThYQ0k2TlRFekxHVnhkV0ZzT2pVeE5DeGNJajFjSWpvMU1UUXNYQ0k5UFZ3aU9qVXhOQ3hjSWowOVBWd2lPalV4TkN4c1pYRjFZV3c2TlRFMUxGd2lQRDFjSWpvMU1UVXNaM0psWVhSbGNqbzFNVFlzWENJK1hDSTZOVEUyTEc1dmRHVnhkV0ZzT2pVeE55eGNJaUU5WENJNk5URTNMRndpSVQwOVhDSTZOVEUzTEdkbGNYVmhiRG8xTVRnc1hDSStQVndpT2pVeE9DeGhiSGRoZVhNNk5URTVmU3haUFhzd09qQXNlbVZ5Ynpvd0xHdGxaWEE2TnpZNE1DeHlaWEJzWVdObE9qYzJPREVzYVc1amNtVnRaVzUwT2pjMk9ESXNaR1ZqY21WdFpXNTBPamMyT0RNc1hDSnBibU55WlcxbGJuUWdkM0poY0Z3aU9qTTBNRFUxTEZ3aVpHVmpjbVZ0Wlc1MElIZHlZWEJjSWpvek5EQTFOaXhwYm5abGNuUTZOVE00Tm4wc1REMTdZM2M2TWpNd05DeGpZM2M2TWpNd05YMHNTRDF1WlhjZ2VDZ2hNU3doTVN3aE1TeG1kVzVqZEdsdmJpZ3BlMzBwTzNBdVpYaHdiM0owY3oxbWRXNWpkR2x2Ymlob0xGeHVaaXgwTEhBc1RTeDFMRm9zUkN4TExFRmhMSFpoTEhFc1V5eHRZU3huWVNsN1puVnVZM1JwYjI0Z1Z5aGtLWHR5WlhSMWNtNGdaQzV5WlhCc1lXTmxLRndpTGx3aUxGd2lYMXdpS1gxbWRXNWpkR2x2YmlCU0tHUXNZU3hqS1h0MllYSWdZajFYS0dRcE8zY3VjSFZ6YUNoa0tUdDZXMkpkUFdWYllsMDlJU0ZqTzNkaFcySmRQV0Y5Wm5WdVkzUnBiMjRnUnloa0xHRXNZeWw3ZG1GeUlHSTlWeWhrS1R0M0xuQjFjMmdvWkNrN1FYSnlZWGt1YVhOQmNuSmhlU2hqS1Q4b1pWdGlYVDFqTG5Oc2FXTmxLQ2tzZWx0aVhUMWpMbk5zYVdObEtDa3BPbVZiWWwwOWVsdGlYVDFqTzNoaFcySmRQV0Y5Wm5WdVkzUnBiMjRnWW1Fb0tYdDJZWElnWkQxaUtDa3NZVDFrTG14cGJtc3NZejFrTG1kc2IySmhiRHRrTG1sa1BWSmhLeXM3WkM1aVlYUmphRWxrUFZ3aU1Gd2lPM1poY2lCb1BXRW9VV0VwTEVFOVpDNXphR0Z5WldROWUzQnliM0J6T2x3aVlUQmNJbjA3VDJKcVpXTjBMbXRsZVhNb1VXRXBMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNG9aQ2w3UVZ0a1hUMWpMbVJsWmlob0xGd2lMbHdpTEdRcGZTazdkbUZ5SUVvOVpDNXVaWGgwUFh0OUxGQTlaQzVqZFhKeVpXNTBQWHQ5TzA5aWFtVmpkQzVyWlhsektIaGhLUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVLR1FwZTBGeWNtRjVMbWx6UVhKeVlYa29aVnRrWFNrbUppaEtXMlJkUFdNdVpHVm1LRUV1Ym1WNGRDeGNibHdpTGx3aUxHUXBMRkJiWkYwOVl5NWtaV1lvUVM1amRYSnlaVzUwTEZ3aUxsd2lMR1FwS1gwcE8zWmhjaUJUWVQxa0xtTnZibk4wWVc1MGN6MTdmVHRQWW1wbFkzUXVhMlY1Y3loTllTa3VabTl5UldGamFDaG1kVzVqZEdsdmJpaGtLWHRUWVZ0a1hUMWpMbVJsWmloS1UwOU9Mbk4wY21sdVoybG1lU2hOWVZ0a1hTa3BmU2s3WkM1cGJuWnZhMlU5Wm5WdVkzUnBiMjRvWlN4SktYdHpkMmwwWTJnb1NTNTBlWEJsS1h0allYTmxJREE2ZG1GeUlHTTlXMXdpZEdocGMxd2lMRUV1WTI5dWRHVjRkQ3hCTG5CeWIzQnpMR1F1WW1GMFkyaEpaRjA3Y21WMGRYSnVJR1V1WkdWbUtHRW9TUzVrWVhSaEtTeGNJaTVqWVd4c0tGd2lMR011YzJ4cFkyVW9NQ3hOWVhSb0xtMWhlQ2hKTG1SaGRHRXViR1Z1WjNSb0t6RXNOQ2twTEZ3aUtWd2lLVHRqWVhObElERTZjbVYwZFhKdUlHVXVaR1ZtS0VFdWNISnZjSE1zU1M1a1lYUmhLVHRqWVhObElESTZjbVYwZFhKdUlHVXVaR1ZtS0VFdVkyOXVkR1Y0ZEN4SkxtUmhkR0VwTzJOaGMyVWdNenB5WlhSMWNtNGdaUzVrWldZb1hDSjBhR2x6WENJc1NTNWtZWFJoS1R0allYTmxJRFE2Y21WMGRYSnVJRWt1WkdGMFlTNWhjSEJsYm1Rb1pDeGxLU3hKTG1SaGRHRXVjbVZtZlgwN1pDNWhkSFJ5YVdKRFlXTm9aVDE3ZlR0MllYSWdTVDE3ZlR0a0xuTmpiM0JsUVhSMGNtbGlQV1oxYm1OMGFXOXVLR1FwZTJROVhHNW1MbWxrS0dRcE8ybG1LR1FnYVc0Z1NTbHlaWFIxY200Z1NWdGtYVHQyWVhJZ1pUMUJZUzV6WTI5d1pWdGtYVHRsZkh3b1pUMUJZUzV6WTI5d1pWdGtYVDF1WlhjZ1FtRXBPM0psZEhWeWJpQkpXMlJkUFdFb1pTbDlPM0psZEhWeWJpQmtmV1oxYm1OMGFXOXVJRzVoS0dRcGUzWmhjaUJsUFdSYlhDSnpkR0YwYVdOY0lsMDdaRDFrTG1SNWJtRnRhV003ZG1GeUlHSTdhV1lvWENKd2NtOW1hV3hsWENKcGJpQmxLWHQyWVhJZ2FEMGhJV1V1Y0hKdlptbHNaVHRpUFdNb1puVnVZM1JwYjI0b1pDeGxLWHR5WlhSMWNtNGdhSDBwTzJJdVpXNWhZbXhsUFdoOVpXeHpaU0JwWmloY0luQnliMlpwYkdWY0ltbHVJR1FwZTNaaGNpQkJQV1F1Y0hKdlptbHNaVHRpUFdFb1FTeG1kVzVqZEdsdmJpaGtMR1VwZTNKbGRIVnliaUJrTG1sdWRtOXJaU2hsTEVFcGZTbDljbVYwZFhKdUlHSjlablZ1WTNScGIyNGdlV0VvWkN4bEtYdDJZWElnWWoxa1cxd2ljM1JoZEdsalhDSmRMR2c5WkM1a2VXNWhiV2xqTzJsbUtGd2labkpoYldWaWRXWm1aWEpjSW1sdUlHSXBlM1poY2lCQlBXSXVabkpoYldWaWRXWm1aWEk3Y21WMGRYSnVJRUUvS0VFOVJDNW5aWFJHY21GdFpXSjFabVpsY2loQktTeGpLR1oxYm1OMGFXOXVLR1FzWlNsN2RtRnlJR0U5WkM1c2FXNXJLRUVwTEhZOVpDNXphR0Z5WldRN1pTNXpaWFFvZGk1bWNtRnRaV0oxWm1abGNpeGNibHdpTG01bGVIUmNJaXhoS1R0MlBYWXVZMjl1ZEdWNGREdGxMbk5sZENoMkxGd2lMbVp5WVcxbFluVm1abVZ5VjJsa2RHaGNJaXhoSzF3aUxuZHBaSFJvWENJcE8yVXVjMlYwS0hZc1hDSXVabkpoYldWaWRXWm1aWEpJWldsbmFIUmNJaXhoSzF3aUxtaGxhV2RvZEZ3aUtUdHlaWFIxY200Z1lYMHBLVHBqS0daMWJtTjBhVzl1S0dRc1pTbDdkbUZ5SUdFOVpDNXphR0Z5WldRN1pTNXpaWFFvWVM1bWNtRnRaV0oxWm1abGNpeGNJaTV1WlhoMFhDSXNYQ0p1ZFd4c1hDSXBPMkU5WVM1amIyNTBaWGgwTzJVdWMyVjBLR0VzWENJdVpuSmhiV1ZpZFdabVpYSlhhV1IwYUZ3aUxHRXJYQ0l1WkhKaGQybHVaMEoxWm1abGNsZHBaSFJvWENJcE8yVXVjMlYwS0dFc1hDSXVabkpoYldWaWRXWm1aWEpJWldsbmFIUmNJaXhoSzF3aUxtUnlZWGRwYm1kQ2RXWm1aWEpJWldsbmFIUmNJaWs3Y21WMGRYSnVYQ0p1ZFd4c1hDSjlLWDFwWmloY0ltWnlZVzFsWW5WbVptVnlYQ0pwYmlCb0tYdDJZWElnU2oxb0xtWnlZVzFsWW5WbVptVnlPM0psZEhWeWJpQmhLRW9zWm5WdVkzUnBiMjRvWkN4bEtYdDJZWElnWVQxa0xtbHVkbTlyWlNobExFb3BMSFk5WkM1emFHRnlaV1FzWXoxMkxtWnlZVzFsWW5WbVptVnlMR0U5WlM1a1pXWW9ZeXhjSWk1blpYUkdjbUZ0WldKMVptWmxjaWhjSWl4aExGd2lLVndpS1R0bExuTmxkQ2hqTEZ3aUxtNWxlSFJjSWl4aEtUdDJQWFl1WTI5dWRHVjRkRHRsTG5ObGRDaDJMRnh1WENJdVpuSmhiV1ZpZFdabVpYSlhhV1IwYUZ3aUxHRXJYQ0kvWENJcllTdGNJaTUzYVdSMGFEcGNJaXQySzF3aUxtUnlZWGRwYm1kQ2RXWm1aWEpYYVdSMGFGd2lLVHRsTG5ObGRDaDJMRndpTG1aeVlXMWxZblZtWm1WeVNHVnBaMmgwWENJc1lTdGNJajljSWl0aEsxd2lMbWhsYVdkb2REcGNJaXQySzF3aUxtUnlZWGRwYm1kQ2RXWm1aWEpJWldsbmFIUmNJaWs3Y21WMGRYSnVJR0Y5S1gxeVpYUjFjbTRnYm5Wc2JIMW1kVzVqZEdsdmJpQlZLR1FzWlN4aktYdG1kVzVqZEdsdmJpQmlLR1FwZTJsbUtHUWdhVzRnYUNsN2RtRnlJRWs5YUZ0a1hUdGtQU0V3TzNaaGNpQmpQVWt1ZUh3d0xIRmhQVWt1ZVh3d0xGQXNZV0U3WENKM2FXUjBhRndpYVc0Z1NUOVFQVWt1ZDJsa2RHaDhNRHBrUFNFeE8xd2lhR1ZwWjJoMFhDSnBiaUJKUDJGaFBVa3VhR1ZwWjJoMGZEQTZaRDBoTVR0eVpYUjFjbTRnYm1WM0lIZ29JV1FtSm1VbUptVXVkR2hwYzBSbGNDd2haQ1ltWlNZbVpTNWpiMjUwWlhoMFJHVndMQ0ZrSmlabEppWmxMbkJ5YjNCRVpYQXNablZ1WTNScGIyNG9aQ3hsS1h0MllYSWdZVDFrTG5Ob1lYSmxaQzVqYjI1MFpYaDBMSFk5VUR0Y0luZHBaSFJvWENKcGJpQkpmSHdvZGoxbExtUmxaaWhoTEZ3aUxsd2lMRndpWm5KaGJXVmlkV1ptWlhKWGFXUjBhRndpTEZ3aUxWd2lMR01wS1R0MllYSWdZajFoWVR0Y0ltaGxhV2RvZEZ3aWFXNGdTWHg4S0dJOVpTNWtaV1lvWVN4Y2Jsd2lMbHdpTEZ3aVpuSmhiV1ZpZFdabVpYSklaV2xuYUhSY0lpeGNJaTFjSWl4eFlTa3BPM0psZEhWeWJsdGpMSEZoTEhZc1lsMTlLWDFwWmloa0lHbHVJRW9wZTNaaGNpQjNQVXBiWkYwN1pEMWhLSGNzWm5WdVkzUnBiMjRvWkN4bEtYdDJZWElnWVQxa0xtbHVkbTlyWlNobExIY3BMRWs5WkM1emFHRnlaV1F1WTI5dWRHVjRkQ3hqUFdVdVpHVm1LR0VzWENJdWVId3dYQ0lwTEhZOVpTNWtaV1lvWVN4Y0lpNTVmREJjSWlrc2NXRTlaUzVrWldZb0oxd2lkMmxrZEdoY0lpQnBiaUFuTEdFc1hDSS9YQ0lzWVN4Y0lpNTNhV1IwYUh3d09sd2lMRndpS0Z3aUxFa3NYQ0l1WENJc1hDSm1jbUZ0WldKMVptWmxjbGRwWkhSb1hDSXNYQ0l0WENJc1l5eGNJaWxjSWlrc1lUMWxMbVJsWmlnblhDSm9aV2xuYUhSY0lpQnBiaUFuTEdFc1hDSS9YQ0lzWVN4Y0lpNW9aV2xuYUhSOE1EcGNJaXhjSWloY0lpeEpMRndpTGx3aUxGd2labkpoYldWaWRXWm1aWEpJWldsbmFIUmNJaXhjSWkxY0lpeDJMRndpS1Z3aUtUdHlaWFIxY201Yll5eDJMSEZoTEdGZGZTazdaU1ltS0dRdWRHaHBjMFJsY0Qxa0xuUm9hWE5FWlhCOGZHVXVkR2hwYzBSbGNDeGtMbU52Ym5SbGVIUkVaWEE5WkM1amIyNTBaWGgwUkdWd2ZIeGxMbU52Ym5SbGVIUkVaWEFzWkM1d2NtOXdSR1Z3UFdRdWNISnZjRVJsY0h4OFpTNXdjbTl3UkdWd0tUdHlaWFIxY200Z1pIMXlaWFIxY200Z1pUOXVaWGNnZUNobExuUm9hWE5FWlhBc1pTNWpiMjUwWlhoMFJHVndMRnh1WlM1d2NtOXdSR1Z3TEdaMWJtTjBhVzl1S0dRc1pTbDdkbUZ5SUdFOVpDNXphR0Z5WldRdVkyOXVkR1Y0ZER0eVpYUjFjbTViTUN3d0xHVXVaR1ZtS0dFc1hDSXVYQ0lzWENKbWNtRnRaV0oxWm1abGNsZHBaSFJvWENJcExHVXVaR1ZtS0dFc1hDSXVYQ0lzWENKbWNtRnRaV0oxWm1abGNraGxhV2RvZEZ3aUtWMTlLVHB1ZFd4c2ZYWmhjaUJvUFdSYlhDSnpkR0YwYVdOY0lsMHNTajFrTG1SNWJtRnRhV003YVdZb1pEMWlLRndpZG1sbGQzQnZjblJjSWlrcGUzWmhjaUJRUFdRN1pEMXVaWGNnZUNoa0xuUm9hWE5FWlhBc1pDNWpiMjUwWlhoMFJHVndMR1F1Y0hKdmNFUmxjQ3htZFc1amRHbHZiaWhrTEdVcGUzWmhjaUJoUFZBdVlYQndaVzVrS0dRc1pTa3NZejFrTG5Ob1lYSmxaQzVqYjI1MFpYaDBPMlV1YzJWMEtHTXNYQ0l1ZG1sbGQzQnZjblJYYVdSMGFGd2lMR0ZiTWwwcE8yVXVjMlYwS0dNc1hDSXVkbWxsZDNCdmNuUklaV2xuYUhSY0lpeGhXek5kS1R0eVpYUjFjbTRnWVgwcGZYSmxkSFZ5Ym50MmFXVjNjRzl5ZERwa0xITmphWE56YjNKZlltOTRPbUlvWENKelkybHpjMjl5TG1KdmVGd2lLWDE5Wm5WdVkzUnBiMjRnYVdFb1pDbDdablZ1WTNScGIyNGdaU2hrS1h0cFppaGtJR2x1SUdJcGUzWmhjaUJKUFdZdWFXUW9ZbHRrWFNrN1pEMWpLR1oxYm1OMGFXOXVLQ2w3Y21WMGRYSnVJRWw5S1R0a0xtbGtQVWs3Y21WMGRYSnVJR1I5YVdZb1pDQnBibHh1YUNsN2RtRnlJSFk5YUZ0a1hUdHlaWFIxY200Z1lTaDJMR1oxYm1OMGFXOXVLR1FzWlNsN2RtRnlJR0U5WkM1cGJuWnZhMlVvWlN4MktUdHlaWFIxY200Z1pTNWtaV1lvWkM1emFHRnlaV1F1YzNSeWFXNW5jeXhjSWk1cFpDaGNJaXhoTEZ3aUtWd2lLWDBwZlhKbGRIVnliaUJ1ZFd4c2ZYWmhjaUJpUFdSYlhDSnpkR0YwYVdOY0lsMHNhRDFrTG1SNWJtRnRhV01zUVQxbEtGd2labkpoWjF3aUtTeEtQV1VvWENKMlpYSjBYQ0lwTEZBOWJuVnNiRHR5S0VFcEppWnlLRW9wUHloUVBYWmhMbkJ5YjJkeVlXMG9TaTVwWkN4QkxtbGtLU3hrUFdNb1puVnVZM1JwYjI0b1pDeGxLWHR5WlhSMWNtNGdaQzVzYVc1cktGQXBmU2twT21ROWJtVjNJSGdvUVNZbVFTNTBhR2x6UkdWd2ZIeEtKaVpLTG5Sb2FYTkVaWEFzUVNZbVFTNWpiMjUwWlhoMFJHVndmSHhLSmlaS0xtTnZiblJsZUhSRVpYQXNRU1ltUVM1d2NtOXdSR1Z3Zkh4S0ppWktMbkJ5YjNCRVpYQXNablZ1WTNScGIyNG9aQ3hsS1h0MllYSWdZVDFrTG5Ob1lYSmxaQzV6YUdGa1pYSXNZenRqUFVFL1FTNWhjSEJsYm1Rb1pDeGxLVHBsTG1SbFppaGhMRndpTGx3aUxGd2labkpoWjF3aUtUdDJZWElnZGp0MlBVby9TaTVoY0hCbGJtUW9aQ3hsS1RwbExtUmxaaWhoTEZ3aUxsd2lMRndpZG1WeWRGd2lLVHR5WlhSMWNtNGdaUzVrWldZb1lTdGNJaTV3Y205bmNtRnRLRndpSzNZclhDSXNYQ0lyWXl0Y2Jsd2lLVndpS1gwcE8zSmxkSFZ5Ym50bWNtRm5Pa0VzZG1WeWREcEtMSEJ5YjJkV1lYSTZaQ3h3Y205bmNtRnRPbEI5ZldaMWJtTjBhVzl1SUd0aEtHUXNaU2w3Wm5WdVkzUnBiMjRnWWloa0xHVXBlMmxtS0dRZ2FXNGdhQ2w3ZG1GeUlIWTlhRnRrWFh3d08zSmxkSFZ5YmlCaktHWjFibU4wYVc5dUtHUXNZU2w3WlNZbUtHUXVUMFpHVTBWVVBYWXBPM0psZEhWeWJpQjJmU2w5YVdZb1pDQnBiaUJCS1h0MllYSWdjV0U5UVZ0a1hUdHlaWFIxY200Z1lTaHhZU3htZFc1amRHbHZiaWhrTEdFcGUzWmhjaUJqUFdRdWFXNTJiMnRsS0dFc2NXRXBPMlVtSmloa0xrOUdSbE5GVkQxaktUdHlaWFIxY200Z1kzMHBmWEpsZEhWeWJpQmxKaVpLUDJNb1puVnVZM1JwYjI0b1pDeGxLWHRrTGs5R1JsTkZWRDFjSWpCY0lqdHlaWFIxY200Z01IMHBPbTUxYkd4OWRtRnlJR2c5WkZ0Y0luTjBZWFJwWTF3aVhTeEJQV1F1WkhsdVlXMXBZeXhLUFdaMWJtTjBhVzl1S0NsN2FXWW9YQ0psYkdWdFpXNTBjMXdpYVc0Z2FDbDdkbUZ5SUdROWFDNWxiR1Z0Wlc1MGN6dHNLR1FwUDJROWRTNW5aWFJGYkdWdFpXNTBjeWgxTG1OeVpXRjBaU2hrTENFd0tTazZaQ1ltS0dROWRTNW5aWFJGYkdWdFpXNTBjeWhrS1NrN2RtRnlJR1U5WXlobWRXNWpkR2x2YmlobExHRXBlMmxtS0dRcGUzWmhjaUJqUFdVdWJHbHVheWhrS1R0eVpYUjFjbTRnWlM1RlRFVk5SVTVVVXoxY2JtTjljbVYwZFhKdUlHVXVSVXhGVFVWT1ZGTTliblZzYkgwcE8yVXVkbUZzZFdVOVpEdHlaWFIxY200Z1pYMXBaaWhjSW1Wc1pXMWxiblJ6WENKcGJpQkJLWHQyWVhJZ2RqMUJMbVZzWlcxbGJuUnpPM0psZEhWeWJpQmhLSFlzWm5WdVkzUnBiMjRvWkN4bEtYdDJZWElnWVQxa0xuTm9ZWEpsWkN4alBXRXVhWE5DZFdabVpYSkJjbWR6TEdFOVlTNWxiR1Z0Wlc1MGN5eEpQV1F1YVc1MmIydGxLR1VzZGlrc1lqMWxMbVJsWmloY0ltNTFiR3hjSWlrc1l6MWxMbVJsWmloakxGd2lLRndpTEVrc1hDSXBYQ0lwTEVrOVpDNWpiMjVrS0dNcExuUm9aVzRvWWl4Y0lqMWNJaXhoTEZ3aUxtTnlaV0YwWlZOMGNtVmhiU2hjSWl4SkxGd2lLVHRjSWlsYlhDSmxiSE5sWENKZEtHSXNYQ0k5WENJc1lTeGNJaTVuWlhSRmJHVnRaVzUwY3loY0lpeEpMRndpS1R0Y0lpazdaUzVsYm5SeWVTaEpLVHRsTG1WNGFYUW9aQzVqYjI1a0tHTXBMblJvWlc0b1lTeGNJaTVrWlhOMGNtOTVVM1J5WldGdEtGd2lMR0lzWENJcE8xd2lLU2s3Y21WMGRYSnVJR1F1UlV4RlRVVk9WRk05WW4wcGZYSmxkSFZ5YmlCdWRXeHNmU2dwTEZBOVlpaGNJbTltWm5ObGRGd2lMQ0V3S1R0eVpYUjFjbTU3Wld4bGJXVnVkSE02U2l4d2NtbHRhWFJwZG1VNlpuVnVZM1JwYjI0b0tYdHBaaWhjSW5CeWFXMXBkR2wyWlZ3aWFXNGdhQ2w3ZG1GeUlHUTlhQzV3Y21sdGFYUnBkbVU3Y21WMGRYSnVJR01vWm5WdVkzUnBiMjRvWlN4Y2JtRXBlM0psZEhWeWJpQkZXMlJkZlNsOWFXWW9YQ0p3Y21sdGFYUnBkbVZjSW1sdUlFRXBlM1poY2lCbFBVRXVjSEpwYldsMGFYWmxPM0psZEhWeWJpQmhLR1VzWm5WdVkzUnBiMjRvWkN4aEtYdDJZWElnWXoxa0xtTnZibk4wWVc1MGN5NXdjbWx0Vkhsd1pYTXNkajFrTG1sdWRtOXJaU2hoTEdVcE8zSmxkSFZ5YmlCaExtUmxaaWhqTEZ3aVcxd2lMSFlzWENKZFhDSXBmU2w5Y21WMGRYSnVJRW8vY2loS0tUOUtMblpoYkhWbFAyTW9ablZ1WTNScGIyNG9aQ3hsS1h0eVpYUjFjbTRnWlM1a1pXWW9aQzVGVEVWTlJVNVVVeXhjSWk1d2NtbHRWSGx3WlZ3aUtYMHBPbU1vWm5WdVkzUnBiMjRvS1h0eVpYUjFjbTRnTkgwcE9tNWxkeUI0S0VvdWRHaHBjMFJsY0N4S0xtTnZiblJsZUhSRVpYQXNTaTV3Y205d1JHVndMR1oxYm1OMGFXOXVLR1FzWlNsN2RtRnlJR0U5WkM1RlRFVk5SVTVVVXp0eVpYUjFjbTRnWlM1a1pXWW9ZU3hjSWo5Y0lpeGhMRndpTG5CeWFXMVVlWEJsT2x3aUxEUXBmU2s2Ym5Wc2JIMG9LU3hqYjNWdWREcG1kVzVqZEdsdmJpZ3BlMmxtS0Z3aVkyOTFiblJjSW1sdUlHZ3BlM1poY2lCa1BXZ3VZMjkxYm5SOE1EdHlaWFIxY200Z1l5aG1kVzVqZEdsdmJpZ3BlM0psZEhWeWJpQmtmU2w5YVdZb1hDSmpiM1Z1ZEZ3aWFXNGdRU2w3ZG1GeUlHVTlRUzVqYjNWdWREdHlaWFIxY200Z1lTaGxMR1oxYm1OMGFXOXVLR1FzWEc1aEtYdHlaWFIxY200Z1pDNXBiblp2YTJVb1lTeGxLWDBwZlhKbGRIVnliaUJLUDNJb1Npay9TajlRUDI1bGR5QjRLRkF1ZEdocGMwUmxjQ3hRTG1OdmJuUmxlSFJFWlhBc1VDNXdjbTl3UkdWd0xHWjFibU4wYVc5dUtHUXNaU2w3Y21WMGRYSnVJR1V1WkdWbUtHUXVSVXhGVFVWT1ZGTXNYQ0l1ZG1WeWRFTnZkVzUwTFZ3aUxHUXVUMFpHVTBWVUtYMHBPbU1vWm5WdVkzUnBiMjRvWkN4bEtYdHlaWFIxY200Z1pTNWtaV1lvWkM1RlRFVk5SVTVVVXl4Y0lpNTJaWEowUTI5MWJuUmNJaWw5S1RwaktHWjFibU4wYVc5dUtDbDdjbVYwZFhKdUxURjlLVHB1WlhjZ2VDaEtMblJvYVhORVpYQjhmRkF1ZEdocGMwUmxjQ3hLTG1OdmJuUmxlSFJFWlhCOGZGQXVZMjl1ZEdWNGRFUmxjQ3hLTG5CeWIzQkVaWEI4ZkZBdWNISnZjRVJsY0N4bWRXNWpkR2x2Ymloa0xHVXBlM1poY2lCaFBXUXVSVXhGVFVWT1ZGTTdjbVYwZFhKdUlHUXVUMFpHVTBWVVAyVXVaR1ZtS0dFc1hDSS9YQ0lzWVN4Y0lpNTJaWEowUTI5MWJuUXRYQ0lzWkM1UFJrWlRSVlFzWENJNkxURmNJaWs2WlM1a1pXWW9ZU3hjSWo5Y0lpeGhMRndpTG5abGNuUkRiM1Z1ZERvdE1Wd2lLWDBwT201MWJHeDlLQ2tzYVc1emRHRnVZMlZ6T21Jb1hDSnBibk4wWVc1alpYTmNJaXdoTVNrc2IyWm1jMlYwT2xCOWZXWjFibU4wYVc5dUlISmhLR1FzWlNsN2RtRnlJR0k5WkZ0Y0luTjBZWFJwWTF3aVhTeGNibWc5WkM1a2VXNWhiV2xqTEVFOWUzMDdkeTVtYjNKRllXTm9LR1oxYm1OMGFXOXVLR1FwZTJaMWJtTjBhVzl1SUdVb1NTeDNLWHRwWmloa0lHbHVJR0lwZTNaaGNpQnhZVDFKS0dKYlpGMHBPMEZiZGwwOVl5aG1kVzVqZEdsdmJpZ3BlM0psZEhWeWJpQnhZWDBwZldWc2MyVWdhV1lvWkNCcGJpQm9LWHQyWVhJZ1VEMW9XMlJkTzBGYmRsMDlZU2hRTEdaMWJtTjBhVzl1S0dRc1pTbDdjbVYwZFhKdUlIY29aQ3hsTEdRdWFXNTJiMnRsS0dVc1VDa3BmU2w5ZlhaaGNpQjJQVmNvWkNrN2MzZHBkR05vS0dRcGUyTmhjMlVnWENKamRXeHNMbVZ1WVdKc1pWd2lPbU5oYzJVZ1hDSmliR1Z1WkM1bGJtRmliR1ZjSWpwallYTmxJRndpWkdsMGFHVnlYQ0k2WTJGelpTQmNJbk4wWlc1amFXd3VaVzVoWW14bFhDSTZZMkZ6WlNCY0ltUmxjSFJvTG1WdVlXSnNaVndpT21OaGMyVWdYQ0p6WTJsemMyOXlMbVZ1WVdKc1pWd2lPbU5oYzJVZ1hDSndiMng1WjI5dVQyWm1jMlYwTG1WdVlXSnNaVndpT21OaGMyVWdYQ0p6WVcxd2JHVXVZV3h3YUdGY0lqcGpZWE5sSUZ3aWMyRnRjR3hsTG1WdVlXSnNaVndpT21OaGMyVWdYQ0prWlhCMGFDNXRZWE5yWENJNmNtVjBkWEp1SUdVb1puVnVZM1JwYjI0b1pDbDdjbVYwZFhKdUlHUjlMR1oxYm1OMGFXOXVLR1FzWlN4aEtYdHlaWFIxY200Z1lYMHBPMk5oYzJVZ1hDSmtaWEIwYUM1bWRXNWpYQ0k2Y21WMGRYSnVJR1VvWm5WdVkzUnBiMjRvWkNsN2NtVjBkWEp1SUVKYlpGMTlMRnh1Wm5WdVkzUnBiMjRvWkN4bExHRXBlM0psZEhWeWJpQmxMbVJsWmloa0xtTnZibk4wWVc1MGN5NWpiMjF3WVhKbFJuVnVZM01zWENKYlhDSXNZU3hjSWwxY0lpbDlLVHRqWVhObElGd2laR1Z3ZEdndWNtRnVaMlZjSWpweVpYUjFjbTRnWlNobWRXNWpkR2x2Ymloa0tYdHlaWFIxY200Z1pIMHNablZ1WTNScGIyNG9aQ3hsTEdFcGUyUTlaUzVrWldZb1hDSXJYQ0lzWVN4Y0lsc3dYVndpS1R0bFBXVXVaR1ZtS0Z3aUsxd2lMR0VzWENKYk1WMWNJaWs3Y21WMGRYSnVXMlFzWlYxOUtUdGpZWE5sSUZ3aVlteGxibVF1Wm5WdVkxd2lPbkpsZEhWeWJpQmxLR1oxYm1OMGFXOXVLR1FwZTNKbGRIVnlibHR0VzF3aWMzSmpVa2RDWENKcGJpQmtQMlF1YzNKalVrZENPbVF1YzNKalhTeHRXMXdpWkhOMFVrZENYQ0pwYmlCa1AyUXVaSE4wVWtkQ09tUXVaSE4wWFN4dFcxd2ljM0pqUVd4d2FHRmNJbWx1SUdRL1pDNXpjbU5CYkhCb1lUcGtMbk55WTEwc2JWdGNJbVJ6ZEVGc2NHaGhYQ0pwYmlCa1AyUXVaSE4wUVd4d2FHRTZaQzVrYzNSZFhYMHNablZ1WTNScGIyNG9aQ3hsTEdFcGUyWjFibU4wYVc5dUlHTW9aQ3gyS1h0eVpYUjFjbTRnWlM1a1pXWW9KMXdpSnl4a0xIWXNKMXdpSUdsdUlDY3NZU3hjSWo5Y0lpeGhMRndpTGx3aUxHUXNkaXhjSWpwY0lpeGhMRndpTGx3aUxHUXBmV1E5WkM1amIyNXpkR0Z1ZEhNdVlteGxibVJHZFc1amN6dDJZWElnZGoxaktGd2ljM0pqWENJc1hDSlNSMEpjSWlrc1hHNWlQV01vWENKa2MzUmNJaXhjSWxKSFFsd2lLU3gyUFdVdVpHVm1LR1FzWENKYlhDSXNkaXhjSWwxY0lpa3NhRDFsTG1SbFppaGtMRndpVzF3aUxHTW9YQ0p6Y21OY0lpeGNJa0ZzY0doaFhDSXBMRndpWFZ3aUtTeGlQV1V1WkdWbUtHUXNYQ0piWENJc1lpeGNJbDFjSWlrN1pEMWxMbVJsWmloa0xGd2lXMXdpTEdNb1hDSmtjM1JjSWl4Y0lrRnNjR2hoWENJcExGd2lYVndpS1R0eVpYUjFjbTViZGl4aUxHZ3NaRjE5S1R0allYTmxJRndpWW14bGJtUXVaWEYxWVhScGIyNWNJanB5WlhSMWNtNGdaU2htZFc1amRHbHZiaWhrS1h0cFppaGNJbk4wY21sdVoxd2lQVDA5ZEhsd1pXOW1JR1FwY21WMGRYSnVXMk5oVzJSZExHTmhXMlJkWFR0cFppaGNJbTlpYW1WamRGd2lQVDA5ZEhsd1pXOW1JR1FwY21WMGRYSnVXMk5oVzJRdWNtZGlYU3hqWVZ0a0xtRnNjR2hoWFYxOUxHWjFibU4wYVc5dUtHUXNaU3hoS1h0MllYSWdZejFrTG1OdmJuTjBZVzUwY3k1aWJHVnVaRVZ4ZFdGMGFXOXVjeXgyUFdVdVpHVm1LQ2tzWWoxbExtUmxaaWdwTzJROVpDNWpiMjVrS0Z3aWRIbHdaVzltSUZ3aUxHRXNKejA5UFZ3aWMzUnlhVzVuWENJbktUdGtMblJvWlc0b2RpeGNJajFjSWl4aUxGd2lQVndpTEdNc1hDSmJYQ0lzWVN4Y0lsMDdYQ0lwTzJSYlhDSmxiSE5sWENKZEtIWXNYQ0k5WENJc1l5eGNJbHRjSWl4aExGd2lMbkpuWWwwN1hDSXNZaXhjSWoxY0lpeGpMRndpVzF3aUxHRXNYQ0l1WVd4d2FHRmRPMXdpS1R0bEtHUXBPM0psZEhWeWJsdDJMR0pkZlNrN1hHNWpZWE5sSUZ3aVlteGxibVF1WTI5c2IzSmNJanB5WlhSMWNtNGdaU2htZFc1amRHbHZiaWhrS1h0eVpYUjFjbTRnUmlnMExHWjFibU4wYVc5dUtHVXBlM0psZEhWeWJpdGtXMlZkZlNsOUxHWjFibU4wYVc5dUtHUXNaU3hoS1h0eVpYUjFjbTRnUmlnMExHWjFibU4wYVc5dUtHUXBlM0psZEhWeWJpQmxMbVJsWmloY0lpdGNJaXhoTEZ3aVcxd2lMR1FzWENKZFhDSXBmU2w5S1R0allYTmxJRndpYzNSbGJtTnBiQzV0WVhOclhDSTZjbVYwZFhKdUlHVW9ablZ1WTNScGIyNG9aQ2w3Y21WMGRYSnVJR1I4TUgwc1puVnVZM1JwYjI0b1pDeGxMR0VwZTNKbGRIVnliaUJsTG1SbFppaGhMRndpZkRCY0lpbDlLVHRqWVhObElGd2ljM1JsYm1OcGJDNW1kVzVqWENJNmNtVjBkWEp1SUdVb1puVnVZM1JwYjI0b1pDbDdjbVYwZFhKdVcwSmJaQzVqYlhCOGZGd2lhMlZsY0Z3aVhTeGtMbkpsWm54OE1DeGNJbTFoYzJ0Y0ltbHVJR1EvWkM1dFlYTnJPaTB4WFgwc1puVnVZM1JwYjI0b1pDeGxMR0VwZTJROVpTNWtaV1lvSjF3aVkyMXdYQ0lnYVc0Z0p5eGhMRndpUDF3aUxHUXVZMjl1YzNSaGJuUnpMbU52YlhCaGNtVkdkVzVqY3l4Y0lsdGNJaXhoTEZ3aUxtTnRjRjFjSWl4Y0lqcGNJaXczTmpnd0tUdDJZWElnWXoxbExtUmxaaWhoTEZ3aUxuSmxabnd3WENJcE8yVTlaUzVrWldZb0oxd2liV0Z6YTF3aUlHbHVJQ2NzWVN4Y0lqOWNJaXhoTEZ3aUxtMWhjMnQ4TURvdE1Wd2lLVHR5WlhSMWNtNWJaQ3hjYm1Nc1pWMTlLVHRqWVhObElGd2ljM1JsYm1OcGJDNXZjRVp5YjI1MFhDSTZZMkZ6WlNCY0luTjBaVzVqYVd3dWIzQkNZV05yWENJNmNtVjBkWEp1SUdVb1puVnVZM1JwYjI0b1pTbDdjbVYwZFhKdVcxd2ljM1JsYm1OcGJDNXZjRUpoWTJ0Y0lqMDlQV1EvTVRBeU9Ub3hNREk0TEZsYlpTNW1ZV2xzZkh4Y0ltdGxaWEJjSWwwc1dWdGxMbnBtWVdsc2ZIeGNJbXRsWlhCY0lsMHNXVnRsTG5wd1lYTnpmSHhjSW10bFpYQmNJbDFkZlN4bWRXNWpkR2x2YmlobExHRXNZeWw3Wm5WdVkzUnBiMjRnZGloa0tYdHlaWFIxY200Z1lTNWtaV1lvSjF3aUp5eGtMQ2RjSWlCcGJpQW5MR01zWENJL1hDSXNZaXhjSWx0Y0lpeGpMRndpTGx3aUxHUXNYQ0pkT2x3aUxEYzJPREFwZlhaaGNpQmlQV1V1WTI5dWMzUmhiblJ6TG5OMFpXNWphV3hQY0hNN2NtVjBkWEp1VzF3aWMzUmxibU5wYkM1dmNFSmhZMnRjSWowOVBXUS9NVEF5T1RveE1ESTRMSFlvWENKbVlXbHNYQ0lwTEhZb1hDSjZabUZwYkZ3aUtTeDJLRndpZW5CaGMzTmNJaWxkZlNrN1kyRnpaU0JjSW5CdmJIbG5iMjVQWm1aelpYUXViMlptYzJWMFhDSTZjbVYwZFhKdUlHVW9ablZ1WTNScGIyNG9aQ2w3Y21WMGRYSnVXMlF1Wm1GamRHOXlmREFzWkM1MWJtbDBjM3d3WFgwc1puVnVZM1JwYjI0b1pDeGxMR0VwZTJROVpTNWtaV1lvWVN4Y0lpNW1ZV04wYjNKOE1Gd2lLVHRsUFdVdVpHVm1LR0VzWENJdWRXNXBkSE44TUZ3aUtUdHlaWFIxY201YlpDeGNibVZkZlNrN1kyRnpaU0JjSW1OMWJHd3VabUZqWlZ3aU9uSmxkSFZ5YmlCbEtHWjFibU4wYVc5dUtHUXBlM1poY2lCbFBUQTdYQ0ptY205dWRGd2lQVDA5WkQ5bFBURXdNamc2WENKaVlXTnJYQ0k5UFQxa0ppWW9aVDB4TURJNUtUdHlaWFIxY200Z1pYMHNablZ1WTNScGIyNG9aQ3hsTEdFcGUzSmxkSFZ5YmlCbExtUmxaaWhoTENjOVBUMWNJbVp5YjI1MFhDSS9KeXd4TURJNExGd2lPbHdpTERFd01qa3BmU2s3WTJGelpTQmNJbXhwYm1WWGFXUjBhRndpT25KbGRIVnliaUJsS0daMWJtTjBhVzl1S0dRcGUzSmxkSFZ5YmlCa2ZTeG1kVzVqZEdsdmJpaGtMR1VzWVNsN2NtVjBkWEp1SUdGOUtUdGpZWE5sSUZ3aVpuSnZiblJHWVdObFhDSTZjbVYwZFhKdUlHVW9ablZ1WTNScGIyNG9aQ2w3Y21WMGRYSnVJRXhiWkYxOUxHWjFibU4wYVc5dUtHUXNaU3hoS1h0eVpYUjFjbTRnWlM1a1pXWW9ZU3NuUFQwOVhDSmpkMXdpUHpJek1EUTZNak13TlNjcGZTazdZMkZ6WlNCY0ltTnZiRzl5VFdGemExd2lPbkpsZEhWeWJpQmxLR1oxYm1OMGFXOXVLR1FwZTNKbGRIVnliaUJrTG0xaGNDaG1kVzVqZEdsdmJpaGtLWHR5WlhSMWNtNGhJV1I5S1gwc1puVnVZM1JwYjI0b1pDeGxMR0VwZTNKbGRIVnliaUJHS0RRc1puVnVZM1JwYjI0b1pDbDdjbVYwZFhKdVhDSWhJVndpSzJFclhDSmJYQ0lyWkN0Y0lsMWNJbjBwZlNrN1kyRnpaU0JjSW5OaGJYQnNaUzVqYjNabGNtRm5aVndpT25KbGRIVnliaUJsS0daMWJtTjBhVzl1S0dRcGUzSmxkSFZ5Ymx0Y0luWmhiSFZsWENKcGJseHVaRDlrTG5aaGJIVmxPakVzSVNGa0xtbHVkbVZ5ZEYxOUxHWjFibU4wYVc5dUtHUXNaU3hoS1h0a1BXVXVaR1ZtS0NkY0luWmhiSFZsWENJZ2FXNGdKeXhoTEZ3aVB5dGNJaXhoTEZ3aUxuWmhiSFZsT2pGY0lpazdaVDFsTG1SbFppaGNJaUVoWENJc1lTeGNJaTVwYm5abGNuUmNJaWs3Y21WMGRYSnVXMlFzWlYxOUtYMTlLVHR5WlhSMWNtNGdRWDFtZFc1amRHbHZiaUJ6WVNoa0xHVXBlM1poY2lCaVBXUmJYQ0p6ZEdGMGFXTmNJbDBzYUQxa0xtUjVibUZ0YVdNc1FUMTdmVHRQWW1wbFkzUXVhMlY1Y3loaUtTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUtHUXBlM1poY2lCbFBXSmJaRjBzWVR0cFppaGNJbTUxYldKbGNsd2lQVDA5ZEhsd1pXOW1JR1Y4ZkZ3aVltOXZiR1ZoYmx3aVBUMDlkSGx3Wlc5bUlHVXBZVDFqS0daMWJtTjBhVzl1S0NsN2NtVjBkWEp1SUdWOUtUdGxiSE5sSUdsbUtGd2lablZ1WTNScGIyNWNJajA5UFhSNWNHVnZaaUJsS1h0MllYSWdkajFsTGw5eVpXZHNWSGx3WlR0cFppaGNJblJsZUhSMWNtVXlaRndpUFQwOWRueDhYQ0owWlhoMGRYSmxRM1ZpWlZ3aVBUMDlkaWxoUFdNb1puVnVZM1JwYjI0b1pDbDdjbVYwZFhKdUlHUXViR2x1YXlobEtYMHBPMlZzYzJVZ2FXWW9YQ0ptY21GdFpXSjFabVpsY2x3aVBUMDlkbng4WENKbWNtRnRaV0oxWm1abGNrTjFZbVZjSWowOVBYWXBZVDFqS0daMWJtTjBhVzl1S0dRcGUzSmxkSFZ5YmlCa0xteHBibXNvWlM1amIyeHZjbHN3WFNsOUtYMWxiSE5sSUhrb1pTa21KbHh1S0dFOVl5aG1kVzVqZEdsdmJpaGtLWHR5WlhSMWNtNGdaQzVuYkc5aVlXd3VaR1ZtS0Z3aVcxd2lMRVlvWlM1c1pXNW5kR2dzWm5WdVkzUnBiMjRvWkNsN2NtVjBkWEp1SUdWYlpGMTlLU3hjSWwxY0lpbDlLU2s3WVM1MllXeDFaVDFsTzBGYlpGMDlZWDBwTzA5aWFtVmpkQzVyWlhsektHZ3BMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNG9aQ2w3ZG1GeUlHVTlhRnRrWFR0QlcyUmRQV0VvWlN4bWRXNWpkR2x2Ymloa0xHRXBlM0psZEhWeWJpQmtMbWx1ZG05clpTaGhMR1VwZlNsOUtUdHlaWFIxY200Z1FYMW1kVzVqZEdsdmJpQmtZU2hrTEdVcGUzWmhjaUJpUFdSYlhDSnpkR0YwYVdOY0lsMHNhRDFrTG1SNWJtRnRhV01zUVQxN2ZUdFBZbXBsWTNRdWEyVjVjeWhpS1M1bWIzSkZZV05vS0daMWJtTjBhVzl1S0dRcGUzWmhjaUJsUFdKYlpGMHNZVDFtTG1sa0tHUXBMSFk5Ym1WM0lFSmhPMmxtS0d3b1pTa3BkaTV6ZEdGMFpUMHhMSFl1WW5WbVptVnlQVTB1WjJWMFFuVm1abVZ5S0UwdVkzSmxZWFJsS0dVc016UTVOaklzSVRFc0lUQXBLU3gyTG5SNWNHVTlNRHRsYkhObGUzWmhjaUJvUFUwdVoyVjBRblZtWm1WeUtHVXBPMmxtS0dncGRpNXpkR0YwWlQweExIWXVZblZtWm1WeVBXZ3NkaTUwZVhCbFBUQTdaV3h6WlNCcFppaGxMbU52Ym5OMFlXNTBLWHQyWVhJZ2R6MWxMbU52Ym5OMFlXNTBPM1l1WW5WbVptVnlQVnh1WENKdWRXeHNYQ0k3ZGk1emRHRjBaVDB5TzF3aWJuVnRZbVZ5WENJOVBUMTBlWEJsYjJZZ2R6OTJMbmc5ZHpwT0xtWnZja1ZoWTJnb1puVnVZM1JwYjI0b1pDeGxLWHRsUEhjdWJHVnVaM1JvSmlZb2RsdGtYVDEzVzJWZEtYMHBmV1ZzYzJWN2RtRnlJR2c5YkNobExtSjFabVpsY2lrL1RTNW5aWFJDZFdabVpYSW9UUzVqY21WaGRHVW9aUzVpZFdabVpYSXNNelE1TmpJc0lURXNJVEFwS1RwTkxtZGxkRUoxWm1abGNpaGxMbUoxWm1abGNpa3NlajFsTG05bVpuTmxkSHd3TEhFOVpTNXpkSEpwWkdWOE1DeHJQV1V1YzJsNlpYd3dMR2M5SVNGbExtNXZjbTFoYkdsNlpXUXNiVDB3TzF3aWRIbHdaVndpYVc0Z1pTWW1LRzA5UTF0bExuUjVjR1ZkS1R0bFBXVXVaR2wyYVhOdmNud3dPM1l1WW5WbVptVnlQV2c3ZGk1emRHRjBaVDB4TzNZdWMybDZaVDFyTzNZdWJtOXliV0ZzYVhwbFpEMW5PM1l1ZEhsd1pUMXRmSHhvTG1SMGVYQmxPM1l1YjJabWMyVjBQWG83ZGk1emRISnBaR1U5Y1R0MkxtUnBkbWx6YjNJOVpYMTlRVnRrWFQxaktHWjFibU4wYVc5dUtHUXNaU2w3ZG1GeUlHTTlaQzVoZEhSeWFXSkRZV05vWlR0cFppaGhJR2x1SUdNcGNtVjBkWEp1SUdOYllWMDdkbUZ5SUdJOWUybHpVM1J5WldGdE9pRXhmVHRQWW1wbFkzUXVhMlY1Y3loMktTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUtHUXBlMkpiWkYwOVhHNTJXMlJkZlNrN2RpNWlkV1ptWlhJbUppaGlMbUoxWm1abGNqMWtMbXhwYm1zb2RpNWlkV1ptWlhJcExHSXVkSGx3WlQxaUxuUjVjR1Y4ZkdJdVluVm1abVZ5SzF3aUxtUjBlWEJsWENJcE8zSmxkSFZ5YmlCalcyRmRQV0o5S1gwcE8wOWlhbVZqZEM1clpYbHpLR2dwTG1admNrVmhZMmdvWm5WdVkzUnBiMjRvWkNsN2RtRnlJR1U5YUZ0a1hUdEJXMlJkUFdFb1pTeG1kVzVqZEdsdmJpaGtMR0VwZTJaMWJtTjBhVzl1SUhZb1pDbDdZU2hCVzJSZExGd2lQVndpTEdNc1hDSXVYQ0lzWkN4Y0lud3dPMXdpS1gxMllYSWdZejFrTG1sdWRtOXJaU2hoTEdVcExHSTlaQzV6YUdGeVpXUXNhRDFpTG1selFuVm1abVZ5UVhKbmN5eDNQV0l1WW5WbVptVnlMRUU5ZTJselUzUnlaV0Z0T21FdVpHVm1LQ0V4S1gwc2VqMXVaWGNnUW1FN2VpNXpkR0YwWlQweE8wOWlhbVZqZEM1clpYbHpLSG9wTG1admNrVmhZMmdvWm5WdVkzUnBiMjRvWkNsN1FWdGtYVDFoTG1SbFppaGNJbHdpSzNwYlpGMHBmU2s3ZG1GeUlHRmhQVUV1WW5WbVptVnlMSEU5UVM1MGVYQmxPMkVvWENKcFppaGNJaXhvTEZ3aUtGd2lMR01zWENJcEtYdGNJaXhCTG1selUzUnlaV0Z0TEZ3aVBYUnlkV1U3WENJc1lXRXNYQ0k5WENJc2R5eGNJaTVqY21WaGRHVlRkSEpsWVcwb1hDSXNNelE1TmpJc1hDSXNYQ0lzWXl4Y0lpazdYQ0lzY1N4Y0lqMWNJaXhoWVN4Y0lpNWtkSGx3WlR0Y0lpeGNJbjFsYkhObGUxd2lMRnh1WVdFc1hDSTlYQ0lzZHl4Y0lpNW5aWFJDZFdabVpYSW9YQ0lzWXl4Y0lpazdYQ0lzWENKcFppaGNJaXhoWVN4Y0lpbDdYQ0lzY1N4Y0lqMWNJaXhoWVN4Y0lpNWtkSGx3WlR0Y0lpd25mV1ZzYzJVZ2FXWW9YQ0pqYjI1emRHRnVkRndpSUdsdUlDY3NZeXhjSWlsN1hDSXNRUzV6ZEdGMFpTeGNJajFjSWl3eUxGd2lPMXdpTEZ3aWFXWW9kSGx3Wlc5bUlGd2lLMk1ySnk1amIyNXpkR0Z1ZENBOVBUMGdYQ0p1ZFcxaVpYSmNJaWw3Snl4QlcwNWJNRjFkTEZ3aVBWd2lMR01zWENJdVkyOXVjM1JoYm5RN1hDSXNUaTV6YkdsalpTZ3hLUzV0WVhBb1puVnVZM1JwYjI0b1pDbDdjbVYwZFhKdUlFRmJaRjE5S1M1cWIybHVLRndpUFZ3aUtTeGNJajB3TzF3aUxGd2lmV1ZzYzJWN1hDSXNUaTV0WVhBb1puVnVZM1JwYjI0b1pDeGxLWHR5WlhSMWNtNGdRVnRrWFN0Y0lqMWNJaXRqSzF3aUxtTnZibk4wWVc1MExteGxibWQwYUQ0OVhDSXJaU3RjSWo5Y0lpdGpLMXdpTG1OdmJuTjBZVzUwVzF3aUsyVXJYQ0pkT2pBN1hDSjlLUzVxYjJsdUtGd2lYQ0lwTEZ3aWZYMWxiSE5sZTF3aUxGd2lhV1lvWENJc2FDeGNJaWhjSWl4akxGd2lMbUoxWm1abGNpa3BlMXdpTEdGaExGd2lQVndpTEhjc1hDSXVZM0psWVhSbFUzUnlaV0Z0S0Z3aUxETTBPVFl5TEZ3aUxGd2lMR01zWENJdVluVm1abVZ5S1R0Y0lpeGNJbjFsYkhObGUxd2lMR0ZoTEZ3aVBWd2lMSGNzWENJdVoyVjBRblZtWm1WeUtGd2lMR01zWENJdVluVm1abVZ5S1R0Y0lpeGNJbjFjSWl4eExDYzlYQ0owZVhCbFhDSWdhVzRnSnl4Y2JtTXNYQ0kvWENJc1lpNW5iRlI1Y0dWekxGd2lXMXdpTEdNc1hDSXVkSGx3WlYwNlhDSXNZV0VzWENJdVpIUjVjR1U3WENJc1FTNXViM0p0WVd4cGVtVmtMRndpUFNFaFhDSXNZeXhjSWk1dWIzSnRZV3hwZW1Wa08xd2lLVHQyS0Z3aWMybDZaVndpS1R0MktGd2liMlptYzJWMFhDSXBPM1lvWENKemRISnBaR1ZjSWlrN2RpaGNJbVJwZG1semIzSmNJaWs3WVNoY0luMTlYQ0lwTzJFdVpYaHBkQ2hjSW1sbUtGd2lMRUV1YVhOVGRISmxZVzBzWENJcGUxd2lMSGNzWENJdVpHVnpkSEp2ZVZOMGNtVmhiU2hjSWl4aFlTeGNJaWs3WENJc1hDSjlYQ0lwTzNKbGRIVnliaUJCZlNsOUtUdHlaWFIxY200Z1FYMW1kVzVqZEdsdmJpQnFZU2hrS1h0MllYSWdaVDFrVzF3aWMzUmhkR2xqWENKZExHSTlaQzVrZVc1aGJXbGpMR2c5ZTMwN1QySnFaV04wTG10bGVYTW9aU2t1Wm05eVJXRmphQ2htZFc1amRHbHZiaWhrS1h0MllYSWdZVDFsVzJSZE8yaGJaRjA5WXlobWRXNWpkR2x2Ymloa0xHVXBlM0psZEhWeWJsd2liblZ0WW1WeVhDSTlQVDEwZVhCbGIyWWdZWHg4WENKaWIyOXNaV0Z1WENJOVBUMTBlWEJsYjJZZ1lUOWNJbHdpSzJFNlpDNXNhVzVyS0dFcGZTbDlLVHRQWW1wbFkzUXVhMlY1Y3loaUtTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUtHUXBlM1poY2lCbFBXSmJaRjA3YUZ0a1hUMWhLR1VzWm5WdVkzUnBiMjRvWkN4aEtYdHlaWFIxY200Z1pDNXBiblp2YTJVb1lTeGxLWDBwZlNrN2NtVjBkWEp1SUdoOVhHNW1kVzVqZEdsdmJpQnNZU2hrTEdVc1lTeGpMR0lwZTNaaGNpQm9QWGxoS0dRc1lpa3NkejFWS0dRc2FDeGlLU3g2UFd0aEtHUXNZaWtzY1QxeVlTaGtMR0lwTEdzOWFXRW9aQ3hpS1N4blBYY3VkbWxsZDNCdmNuUTdaeVltS0hFdWRtbGxkM0J2Y25ROVp5azdaejFYS0Z3aWMyTnBjM052Y2k1aWIzaGNJaWs3S0hjOWQxdG5YU2ttSmloeFcyZGRQWGNwTzNjOU1EeFBZbXBsWTNRdWEyVjVjeWh4S1M1c1pXNW5kR2c3YUQxN1puSmhiV1ZpZFdabVpYSTZhQ3hrY21GM09ub3NjMmhoWkdWeU9tc3NjM1JoZEdVNmNTeGthWEowZVRwM2ZUdG9MbkJ5YjJacGJHVTlibUVvWkN4aUtUdG9MblZ1YVdadmNtMXpQWE5oS0dFc1lpazdhQzVoZEhSeWFXSjFkR1Z6UFdSaEtHVXNZaWs3YUM1amIyNTBaWGgwUFdwaEtHTXNZaWs3Y21WMGRYSnVJR2g5Wm5WdVkzUnBiMjRnWldFb1pDeGxMR0VwZTNaaGNpQmpQV1F1YzJoaGNtVmtMbU52Ym5SbGVIUXNZajFrTG5OamIzQmxLQ2s3VDJKcVpXTjBMbXRsZVhNb1lTa3VabTl5UldGamFDaG1kVzVqZEdsdmJpaG9LWHRsTG5OaGRtVW9ZeXhjSWk1Y0lpdG9LVHRpS0dNc1hDSXVYQ0lzYUN4Y0lqMWNJaXhoVzJoZExtRndjR1Z1WkNoa0xHVXBMRndpTzF3aUtYMHBPMlVvWWlsOVpuVnVZM1JwYjI0Z1R5aGtMR1VzWVN4aktYdDJZWElnWWoxa0xuTm9ZWEpsWkN4b1BXSXVaMndzZHoxaUxtWnlZVzFsWW5WbVptVnlMRnh1ZWp0dllTWW1LSG85WlM1a1pXWW9ZaTVsZUhSbGJuTnBiMjV6TEZ3aUxuZGxZbWRzWDJSeVlYZGZZblZtWm1WeWMxd2lLU2s3ZG1GeUlIRTlaQzVqYjI1emRHRnVkSE1zWWoxeExtUnlZWGRDZFdabVpYSXNjVDF4TG1KaFkydENkV1ptWlhJN1pEMWhQMkV1WVhCd1pXNWtLR1FzWlNrNlpTNWtaV1lvZHl4Y0lpNXVaWGgwWENJcE8yTjhmR1VvWENKcFppaGNJaXhrTEZ3aUlUMDlYQ0lzZHl4Y0lpNWpkWElwZTF3aUtUdGxLRndpYVdZb1hDSXNaQ3hjSWlsN1hDSXNhQ3hjSWk1aWFXNWtSbkpoYldWaWRXWm1aWElvWENJc016WXhOakFzWENJc1hDSXNaQ3hjSWk1bWNtRnRaV0oxWm1abGNpazdYQ0lwTzI5aEppWmxLSG9zWENJdVpISmhkMEoxWm1abGNuTlhSVUpIVENoY0lpeGlMRndpVzF3aUxHUXNYQ0l1WTI5c2IzSkJkSFJoWTJodFpXNTBjeTVzWlc1bmRHaGRLVHRjSWlrN1pTaGNJbjFsYkhObGUxd2lMR2dzWENJdVltbHVaRVp5WVcxbFluVm1abVZ5S0Z3aUxETTJNVFl3TEZ3aUxHNTFiR3dwTzF3aUtUdHZZU1ltWlNoNkxGd2lMbVJ5WVhkQ2RXWm1aWEp6VjBWQ1Iwd29YQ0lzY1N4Y0lpazdYQ0lwTzJVb1hDSjlYQ0lzZHl4Y0lpNWpkWEk5WENJc1pDeGNJanRjSWlrN1kzeDhaU2hjSW4xY0lpbDlablZ1WTNScGIyNGdhR0VvWkN4aExHTXBlM1poY2lCaVBXUXVjMmhoY21Wa0xHZzlZaTVuYkN4NlBXUXVZM1Z5Y21WdWRDeHhQV1F1Ym1WNGRDeG5QV0l1WTNWeWNtVnVkQ3hyUFdJdWJtVjRkQ3hjYm0wOVpDNWpiMjVrS0djc1hDSXVaR2x5ZEhsY0lpazdkeTVtYjNKRllXTm9LR1oxYm1OMGFXOXVLR0VwZTJFOVZ5aGhLVHRwWmlnaEtHRWdhVzRnWXk1emRHRjBaU2twZTNaaGNpQjJMR0k3YVdZb1lTQnBiaUJ4S1h0MlBYRmJZVjA3WWoxNlcyRmRPM1poY2lCM1BVWW9aVnRoWFM1c1pXNW5kR2dzWm5WdVkzUnBiMjRvWkNsN2NtVjBkWEp1SUcwdVpHVm1LSFlzWENKYlhDSXNaQ3hjSWwxY0lpbDlLVHR0S0dRdVkyOXVaQ2gzTG0xaGNDaG1kVzVqZEdsdmJpaGtMR1VwZTNKbGRIVnliaUJrSzF3aUlUMDlYQ0lyWWl0Y0lsdGNJaXRsSzF3aVhWd2lmU2t1YW05cGJpaGNJbng4WENJcEtTNTBhR1Z1S0dnc1hDSXVYQ0lzZUdGYllWMHNYQ0lvWENJc2R5eGNJaWs3WENJc2R5NXRZWEFvWm5WdVkzUnBiMjRvWkN4bEtYdHlaWFIxY200Z1lpdGNJbHRjSWl0bEsxd2lYVDFjSWl0a2ZTa3VhbTlwYmloY0lqdGNJaWtzWENJN1hDSXBLWDFsYkhObElIWTliUzVrWldZb2F5eGNJaTVjSWl4aEtTeDNQV1F1WTI5dVpDaDJMRndpSVQwOVhDSXNaeXhjSWk1Y0lpeGhLU3h0S0hjcExHRWdhVzRnZDJFL2R5aGtMbU52Ym1Rb2Rpa3VkR2hsYmlob0xGd2lMbVZ1WVdKc1pTaGNJaXgzWVZ0aFhTeGNJaWs3WENJcFcxd2laV3h6WlZ3aVhTaG9MRndpTG1ScGMyRmliR1VvWENJc2QyRmJZVjBzWENJcE8xd2lLU3huTEZ3aUxsd2lMR0VzWENJOVhDSXNkaXhjSWp0Y0lpazZkeWhvTEZ3aUxsd2lMSGhoVzJGZExGd2lLRndpTEhZc1hDSXBPMXdpTEZ4dVp5eGNJaTVjSWl4aExGd2lQVndpTEhZc1hDSTdYQ0lwZlgwcE96QTlQVDFQWW1wbFkzUXVhMlY1Y3loakxuTjBZWFJsS1M1c1pXNW5kR2dtSm0wb1p5eGNJaTVrYVhKMGVUMW1ZV3h6WlR0Y0lpazdZU2h0S1gxbWRXNWpkR2x2YmlCUktHUXNaU3hoTEdNcGUzWmhjaUJpUFdRdWMyaGhjbVZrTEdnOVpDNWpkWEp5Wlc1MExIYzlZaTVqZFhKeVpXNTBMSEU5WWk1bmJEdHJLRTlpYW1WamRDNXJaWGx6S0dFcEtTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUtHSXBlM1poY2lCNlBXRmJZbDA3YVdZb0lXTjhmR01vZWlrcGUzWmhjaUJuUFhvdVlYQndaVzVrS0dRc1pTazdhV1lvZDJGYllsMHBlM1poY2lCclBYZGhXMkpkTzNJb2Vpay9aejlsS0hFc1hDSXVaVzVoWW14bEtGd2lMR3NzWENJcE8xd2lLVHBsS0hFc1hDSXVaR2x6WVdKc1pTaGNJaXhyTEZ3aUtUdGNJaWs2WlNoa0xtTnZibVFvWnlrdWRHaGxiaWh4TEZ3aUxtVnVZV0pzWlNoY0lpeHJMRndpS1R0Y0lpbGJYQ0psYkhObFhDSmRLSEVzWENJdVpHbHpZV0pzWlNoY0lpeHJMRndpS1R0Y0lpa3BPMlVvZHl4Y0lpNWNJaXhpTEZ3aVBWd2lMR2NzWENJN1hDSXBmV1ZzYzJVZ2FXWW9lU2huS1NsN2RtRnlJRzA5YUZ0aVhUdGxLSEVzWENJdVhDSXNlR0ZiWWwwc1hDSW9YQ0lzWnl4Y0lpazdYQ0lzWnk1dFlYQW9ablZ1WTNScGIyNG9aQ3hsS1h0eVpYUjFjbTRnYlN0Y0lsdGNJaXRsSzF3aVhUMWNJaXRrZlNrdWFtOXBiaWhjSWp0Y0lpa3NYQ0k3WENJcGZXVnNjMlVnWlNoeExGeHVYQ0l1WENJc2VHRmJZbDBzWENJb1hDSXNaeXhjSWlrN1hDSXNkeXhjSWk1Y0lpeGlMRndpUFZ3aUxHY3NYQ0k3WENJcGZYMHBmV1oxYm1OMGFXOXVJSEJoS0dRc1pTbDdkR0VtSmloa0xtbHVjM1JoYm1OcGJtYzlaUzVrWldZb1pDNXphR0Z5WldRdVpYaDBaVzV6YVc5dWN5eGNJaTVoYm1kc1pWOXBibk4wWVc1alpXUmZZWEp5WVhselhDSXBLWDFtZFc1amRHbHZiaUJXS0dRc1pTeGhMR01zWWlsN1puVnVZM1JwYjI0Z2FDZ3BlM0psZEhWeWJsd2lkVzVrWldacGJtVmtYQ0k5UFQxMGVYQmxiMllnY0dWeVptOXliV0Z1WTJVL1hDSkVZWFJsTG01dmR5Z3BYQ0k2WENKd1pYSm1iM0p0WVc1alpTNXViM2NvS1Z3aWZXWjFibU4wYVc5dUlIY29aQ2w3YkQxbExtUmxaaWdwTzJRb2JDeGNJajFjSWl4b0tDa3NYQ0k3WENJcE8xd2ljM1J5YVc1blhDSTlQVDEwZVhCbGIyWWdZajlrS0dzc1hDSXVZMjkxYm5RclBWd2lMR0lzWENJN1hDSXBPbVFvYXl4Y0lpNWpiM1Z1ZENzck8xd2lLVHR0WVNZbUtHTS9LRzQ5WlM1a1pXWW9LU3hrS0c0c1hDSTlYQ0lzWml4Y0lpNW5aWFJPZFcxUVpXNWthVzVuVVhWbGNtbGxjeWdwTzF3aUtTazZaQ2htTEZ3aUxtSmxaMmx1VVhWbGNua29YQ0lzYXl4Y0lpazdYQ0lwS1gxbWRXNWpkR2x2YmlCeEtHUXBlMlFvYXl4Y0lpNWpjSFZVYVcxbEt6MWNJaXhvS0Nrc1hDSXRYQ0lzYkN4Y0lqdGNJaWs3YldFbUppaGpQMlFvWml4Y0lpNXdkWE5vVTJOdmNHVlRkR0YwY3loY0lpeHVMRnh1WENJc1hDSXNaaXhjSWk1blpYUk9kVzFRWlc1a2FXNW5VWFZsY21sbGN5Z3BMRndpTEdzc1hDSXBPMXdpS1Rwa0tHWXNYQ0l1Wlc1a1VYVmxjbmtvS1R0Y0lpa3BmV1oxYm1OMGFXOXVJSG9vWkNsN2RtRnlJR0U5WlM1a1pXWW9iU3hjSWk1d2NtOW1hV3hsWENJcE8yVW9iU3hjSWk1d2NtOW1hV3hsUFZ3aUxHUXNYQ0k3WENJcE8yVXVaWGhwZENodExGd2lMbkJ5YjJacGJHVTlYQ0lzWVN4Y0lqdGNJaWw5ZG1GeUlHYzlaQzV6YUdGeVpXUXNhejFrTG5OMFlYUnpMRzA5Wnk1amRYSnlaVzUwTEdZOVp5NTBhVzFsY2p0aFBXRXVjSEp2Wm1sc1pUdDJZWElnYkN4dU8ybG1LR0VwZTJsbUtISW9ZU2twZTJFdVpXNWhZbXhsUHloM0tHVXBMSEVvWlM1bGVHbDBLU3g2S0Z3aWRISjFaVndpS1NrNmVpaGNJbVpoYkhObFhDSXBPM0psZEhWeWJuMWhQV0V1WVhCd1pXNWtLR1FzWlNrN2VpaGhLWDFsYkhObElHRTlaUzVrWldZb2JTeGNJaTV3Y205bWFXeGxYQ0lwTzJjOVpDNWliRzlqYXlncE8zY29aeWs3WlNoY0ltbG1LRndpTEdFc1hDSXBlMXdpTEdjc1hDSjlYQ0lwTzJROVpDNWliRzlqYXlncE8zRW9aQ2s3WlM1bGVHbDBLRndpYVdZb1hDSXNZU3hjSWlsN1hDSXNaQ3hjSW4xY0lpbDlablZ1WTNScGIyNGdXQ2hrTEdVc1lTeGpMR0lwZTJaMWJtTjBhVzl1SUdnb1pDbDdjM2RwZEdOb0tHUXBlMk5oYzJVZ016VTJOalE2WTJGelpTQXpOVFkyTnpwallYTmxJRE0xTmpjeE9uSmxkSFZ5YmlBeU8xeHVZMkZ6WlNBek5UWTJOVHBqWVhObElETTFOalk0T21OaGMyVWdNelUyTnpJNmNtVjBkWEp1SURNN1kyRnpaU0F6TlRZMk5qcGpZWE5sSURNMU5qWTVPbU5oYzJVZ016VTJOek02Y21WMGRYSnVJRFE3WkdWbVlYVnNkRHB5WlhSMWNtNGdNWDE5Wm5WdVkzUnBiMjRnZHloaExHTXNZaWw3Wm5WdVkzUnBiMjRnYUNncGUyVW9YQ0pwWmlnaFhDSXNiU3hjSWk1aWRXWm1aWElwZTF3aUxHY3NYQ0l1Wlc1aFlteGxWbVZ5ZEdWNFFYUjBjbWxpUVhKeVlYa29YQ0lzYXl4Y0lpazdmVndpS1R0MllYSWdZVDFpTG5SNWNHVXNkenQzUFdJdWMybDZaVDlsTG1SbFppaGlMbk5wZW1Vc1hDSjhmRndpTEdNcE9tTTdaU2hjSW1sbUtGd2lMRzBzWENJdWRIbHdaU0U5UFZ3aUxHRXNYQ0o4ZkZ3aUxHMHNYQ0l1YzJsNlpTRTlQVndpTEhjc1hDSjhmRndpTEdGaExtMWhjQ2htZFc1amRHbHZiaWhrS1h0eVpYUjFjbTRnYlN0Y0lpNWNJaXRrSzF3aUlUMDlYQ0lyWWx0a1hYMHBMbXB2YVc0b1hDSjhmRndpS1N4Y0lpbDdYQ0lzWnl4Y0lpNWlhVzVrUW5WbVptVnlLRndpTERNME9UWXlMRndpTEZ3aUxHWXNYQ0l1WW5WbVptVnlLVHRjSWl4bkxGd2lMblpsY25SbGVFRjBkSEpwWWxCdmFXNTBaWElvWENJc1cyc3NkeXhoTEdJdWJtOXliV0ZzYVhwbFpDeGlMbk4wY21sa1pTeGlMbTltWm5ObGRGMHNYQ0lwTzF3aUxHMHNYQ0l1ZEhsd1pUMWNJaXhoTEZ3aU8xd2lMRzBzWENJdWMybDZaVDFjSWl4M0xGd2lPMXdpTEdGaExtMWhjQ2htZFc1amRHbHZiaWhrS1h0eVpYUjFjbTRnYlN0Y2Jsd2lMbHdpSzJRclhDSTlYQ0lyWWx0a1hTdGNJanRjSW4wcExtcHZhVzRvWENKY0lpa3NYQ0o5WENJcE8zUmhKaVlvWVQxaUxtUnBkbWx6YjNJc1pTaGNJbWxtS0Z3aUxHMHNYQ0l1WkdsMmFYTnZjaUU5UFZ3aUxHRXNYQ0lwZTF3aUxHUXVhVzV6ZEdGdVkybHVaeXhjSWk1MlpYSjBaWGhCZEhSeWFXSkVhWFpwYzI5eVFVNUhURVVvWENJc1cyc3NZVjBzWENJcE8xd2lMRzBzWENJdVpHbDJhWE52Y2oxY0lpeGhMRndpTzMxY0lpa3BmV1oxYm1OMGFXOXVJSG9vS1h0bEtGd2lhV1lvWENJc2JTeGNJaTVpZFdabVpYSXBlMXdpTEdjc1hDSXVaR2x6WVdKc1pWWmxjblJsZUVGMGRISnBZa0Z5Y21GNUtGd2lMR3NzWENJcE8xd2lMRndpZldsbUtGd2lMRTR1YldGd0tHWjFibU4wYVc5dUtHUXNaU2w3Y21WMGRYSnVJRzByWENJdVhDSXJaQ3RjSWlFOVBWd2lLMEZiWlYxOUtTNXFiMmx1S0Z3aWZIeGNJaWtzWENJcGUxd2lMR2NzWENJdWRtVnlkR1Y0UVhSMGNtbGlOR1lvWENJc2F5eGNJaXhjSWl4QkxGd2lLVHRjSWl4T0xtMWhjQ2htZFc1amRHbHZiaWhrTEdVcGUzSmxkSFZ5YmlCdEsxd2lMbHdpSzJRclhDSTlYQ0lyUVZ0bFhTdGNJanRjSW4wcExtcHZhVzRvWENKY0lpa3NYQ0o5WENJcGZYWmhjaUJuUFhFdVoyd3NhejFsTG1SbFppaGhMRndpTG14dlkyRjBhVzl1WENJcExHMDlaUzVrWldZb2NTNWhkSFJ5YVdKMWRHVnpMRndpVzF3aUxHc3NYQ0pkWENJcE8yRTlZaTV6ZEdGMFpUdDJZWElnWmoxaUxtSjFabVpsY2l4QlBWdGlMbmdzWWk1NUxGeHVZaTU2TEdJdWQxMHNZV0U5VzF3aVluVm1abVZ5WENJc1hDSnViM0p0WVd4cGVtVmtYQ0lzWENKdlptWnpaWFJjSWl4Y0luTjBjbWxrWlZ3aVhUc3hQVDA5WVQ5b0tDazZNajA5UFdFL2VpZ3BPaWhsS0Z3aWFXWW9YQ0lzWVN4Y0lqMDlQVndpTERFc1hDSXBlMXdpS1N4b0tDa3NaU2hjSW4xbGJITmxlMXdpS1N4NktDa3NaU2hjSW4xY0lpa3BmWFpoY2lCeFBXUXVjMmhoY21Wa08yTXVabTl5UldGamFDaG1kVzVqZEdsdmJpaGpLWHQyWVhJZ2NUMWpMbTVoYldVc1p6MWhMbUYwZEhKcFluVjBaWE5iY1Ywc2VqdHBaaWhuS1h0cFppZ2hZaWhuS1NseVpYUjFjbTQ3ZWoxbkxtRndjR1Z1WkNoa0xHVXBmV1ZzYzJWN2FXWW9JV0lvU0NrcGNtVjBkWEp1TzNaaGNpQnRQV1F1YzJOdmNHVkJkSFJ5YVdJb2NTazdlajE3ZlR0UFltcGxZM1F1YTJWNWN5aHVaWGNnUW1FcExtWnZja1ZoWTJnb1puVnVZM1JwYjI0b1pDbDdlbHRrWFQxbExtUmxaaWh0TEZ3aUxsd2lMR1FwZlNsOWR5aGtMbXhwYm1zb1l5a3NhQ2hqTG1sdVptOHVkSGx3WlNrc2VpbDlLWDFtZFc1amRHbHZiaUJVS0dRc1pTeGhMR01zWWlsN1ptOXlLSFpoY2lCb1BXUXVjMmhoY21Wa0xIYzlhQzVuYkN4bkxIRTlNRHR4UEdNdWJHVnVaM1JvT3lzcmNTbDdkbUZ5SUhvOVkxdHhYU3h0UFhvdWJtRnRaU3hyUFhvdWFXNW1ieTUwZVhCbExHdzlZUzUxYm1sbWIzSnRjMXR0WFN4NlBXUXViR2x1YXloNktTdGNibHdpTG14dlkyRjBhVzl1WENJc2JqdHBaaWhzS1h0cFppZ2hZaWhzS1NsamIyNTBhVzUxWlR0cFppaHlLR3dwS1h0dFBXd3VkbUZzZFdVN2FXWW9NelUyTnpnOVBUMXJmSHd6TlRZNE1EMDlQV3NwYXoxa0xteHBibXNvYlM1ZmRHVjRkSFZ5Wlh4OGJTNWpiMnh2Y2xzd1hTNWZkR1Y0ZEhWeVpTa3NaU2gzTEZ3aUxuVnVhV1p2Y20weGFTaGNJaXg2TEZ3aUxGd2lMR3NyWENJdVltbHVaQ2dwS1R0Y0lpa3NaUzVsZUdsMEtHc3NYQ0l1ZFc1aWFXNWtLQ2s3WENJcE8yVnNjMlVnYVdZb016VTJOelE5UFQxcmZId3pOVFkzTlQwOVBXdDhmRE0xTmpjMlBUMDlheWx0UFdRdVoyeHZZbUZzTG1SbFppaGNJbTVsZHlCR2JHOWhkRE15UVhKeVlYa29XMXdpSzBGeWNtRjVMbkJ5YjNSdmRIbHdaUzV6YkdsalpTNWpZV3hzS0cwcEsxd2lYU2xjSWlrc2JEMHlMRE0xTmpjMVBUMDlhejlzUFRNNk16VTJOelk5UFQxckppWW9iRDAwS1N4bEtIY3NYQ0l1ZFc1cFptOXliVTFoZEhKcGVGd2lMR3dzWENKbWRpaGNJaXg2TEZ3aUxHWmhiSE5sTEZ3aUxHMHNYQ0lwTzF3aUtUdGxiSE5sZTNOM2FYUmphQ2hyS1h0allYTmxJRFV4TWpZNlp6MWNJakZtWENJN1luSmxZV3M3WTJGelpTQXpOVFkyTkRwblBWd2lNbVpjSWp0aWNtVmhhenRqWVhObElETTFOalkxT21jOVhDSXpabHdpTzJKeVpXRnJPMk5oYzJVZ016VTJOalk2WnoxY0lqUm1YQ0k3WW5KbFlXczdZMkZ6WlNBek5UWTNNRHBuUFZ4dVhDSXhhVndpTzJKeVpXRnJPMk5oYzJVZ05URXlORHBuUFZ3aU1XbGNJanRpY21WaGF6dGpZWE5sSURNMU5qY3hPbWM5WENJeWFWd2lPMkp5WldGck8yTmhjMlVnTXpVMk5qYzZaejFjSWpKcFhDSTdZbkpsWVdzN1kyRnpaU0F6TlRZM01qcG5QVndpTTJsY0lqdGljbVZoYXp0allYTmxJRE0xTmpZNE9tYzlYQ0l6YVZ3aU8ySnlaV0ZyTzJOaGMyVWdNelUyTnpNNlp6MWNJalJwWENJN1luSmxZV3M3WTJGelpTQXpOVFkyT1RwblBWd2lOR2xjSW4xbEtIY3NYQ0l1ZFc1cFptOXliVndpTEdjc1hDSW9YQ0lzZWl4Y0lpeGNJaXg1S0cwcFAwRnljbUY1TG5CeWIzUnZkSGx3WlM1emJHbGpaUzVqWVd4c0tHMHBPbTBzWENJcE8xd2lLWDFqYjI1MGFXNTFaWDFsYkhObElHNDliQzVoY0hCbGJtUW9aQ3hsS1gxbGJITmxlMmxtS0NGaUtFZ3BLV052Ym5ScGJuVmxPMjQ5WlM1a1pXWW9hQzUxYm1sbWIzSnRjeXhjSWx0Y0lpeG1MbWxrS0cwcExGd2lYVndpS1gwek5UWTNPRDA5UFdzL1pTaGNJbWxtS0Z3aUxHNHNYQ0ltSmx3aUxHNHNKeTVmY21WbmJGUjVjR1U5UFQxY0ltWnlZVzFsWW5WbVptVnlYQ0lwZXljc2JpeGNJajFjSWl4dUxGd2lMbU52Ykc5eVd6QmRPMXdpTEZ3aWZWd2lLVG96TlRZNE1EMDlQV3NtSm1Vb1hDSnBaaWhjSWl4dUxGd2lKaVpjSWl4dUxDY3VYM0psWjJ4VWVYQmxQVDA5WENKbWNtRnRaV0oxWm1abGNrTjFZbVZjSWlsN0p5eHVMRndpUFZ3aUxHNHNYQ0l1WTI5c2IzSmJNRjA3WENJc1hDSjlYQ0lwTzF4dWJUMHhPM04zYVhSamFDaHJLWHRqWVhObElETTFOamM0T21OaGMyVWdNelUyT0RBNmF6MWxMbVJsWmlodUxGd2lMbDkwWlhoMGRYSmxYQ0lwTzJVb2R5eGNJaTUxYm1sbWIzSnRNV2tvWENJc2VpeGNJaXhjSWl4ckxGd2lMbUpwYm1Rb0tTazdYQ0lwTzJVdVpYaHBkQ2hyTEZ3aUxuVnVZbWx1WkNncE8xd2lLVHRqYjI1MGFXNTFaVHRqWVhObElEVXhNalE2WTJGelpTQXpOVFkzTURwblBWd2lNV2xjSWp0aWNtVmhhenRqWVhObElETTFOalkzT21OaGMyVWdNelUyTnpFNlp6MWNJakpwWENJN2JUMHlPMkp5WldGck8yTmhjMlVnTXpVMk5qZzZZMkZ6WlNBek5UWTNNanBuUFZ3aU0ybGNJanR0UFRNN1luSmxZV3M3WTJGelpTQXpOVFkyT1RwallYTmxJRE0xTmpjek9tYzlYQ0kwYVZ3aU8yMDlORHRpY21WaGF6dGpZWE5sSURVeE1qWTZaejFjSWpGbVhDSTdZbkpsWVdzN1kyRnpaU0F6TlRZMk5EcG5QVndpTW1aY0lqdHRQVEk3WW5KbFlXczdZMkZ6WlNBek5UWTJOVHBuUFZ3aU0yWmNJanR0UFRNN1luSmxZV3M3WTJGelpTQXpOVFkyTmpwblBWd2lOR1pjSWp0dFBUUTdZbkpsWVdzN1kyRnpaU0F6TlRZM05EcG5QVndpVFdGMGNtbDRNbVoyWENJN1luSmxZV3M3WTJGelpTQXpOVFkzTlRwblBWd2lUV0YwY21sNE0yWjJYQ0k3WW5KbFlXczdZMkZ6WlNBek5UWTNOanBuUFZ3aVRXRjBjbWw0TkdaMlhDSjlaU2gzTEZ3aUxuVnVhV1p2Y20xY0lpeG5MRndpS0Z3aUxIb3NYQ0lzWENJcE8xeHVhV1lvWENKTlhDSTlQVDFuTG1Ob1lYSkJkQ2d3S1NsN2RtRnlJSG85VFdGMGFDNXdiM2NvYXkwek5UWTNOQ3N5TERJcExFSTlaQzVuYkc5aVlXd3VaR1ZtS0Z3aWJtVjNJRVpzYjJGME16SkJjbkpoZVNoY0lpeDZMRndpS1Z3aUtUdGxLRndpWm1Gc2MyVXNLRUZ5Y21GNUxtbHpRWEp5WVhrb1hDSXNiaXhjSWlsOGZGd2lMRzRzWENJZ2FXNXpkR0Z1WTJWdlppQkdiRzloZERNeVFYSnlZWGtwUDF3aUxHNHNYQ0k2S0Z3aUxFWW9laXhtZFc1amRHbHZiaWhrS1h0eVpYUjFjbTRnUWl0Y0lsdGNJaXRrSzF3aVhUMWNJaXR1SzF3aVcxd2lLMlFyWENKZFhDSjlLU3hjSWl4Y0lpeENMRndpS1Z3aUtYMWxiSE5sSURFOGJUOWxLRVlvYlN4bWRXNWpkR2x2Ymloa0tYdHlaWFIxY200Z2JpdGNJbHRjSWl0a0sxd2lYVndpZlNrcE9tVW9iaWs3WlNoY0lpazdYQ0lwZlgxbWRXNWpkR2x2YmlCMVlTaGtMR1VzWVN4aktYdG1kVzVqZEdsdmJpQmlLR2dwZTNaaGNpQm5QV3RiYUYwN2NtVjBkWEp1SUdjL1p5NWpiMjUwWlhoMFJHVndKaVpqTG1OdmJuUmxlSFJFZVc1aGJXbGpmSHhuTG5CeWIzQkVaWEEvWnk1aGNIQmxibVFvWkN4aEtUcG5MbUZ3Y0dWdVpDaGtMR1VwT21VdVpHVm1LRzBzWENJdVhDSXNhQ2w5Wm5WdVkzUnBiMjRnYUNncGUyWjFibU4wYVc5dUlHUW9LWHRoS0hnc1hDSXVaSEpoZDBWc1pXMWxiblJ6U1c1emRHRnVZMlZrUVU1SFRFVW9YQ0lzVzJZc2JpeExMR3dyWENJOFBDZ29YQ0lyWEc1TEsxd2lMVFV4TWpFcFBqNHhLVndpTEVKZExGd2lLVHRjSWlsOVpuVnVZM1JwYjI0Z1pTZ3BlMkVvZUN4Y0lpNWtjbUYzUVhKeVlYbHpTVzV6ZEdGdVkyVmtRVTVIVEVVb1hDSXNXMllzYkN4dUxFSmRMRndpS1R0Y0lpbDljVDlUUDJRb0tUb29ZU2hjSW1sbUtGd2lMSEVzWENJcGUxd2lLU3hrS0Nrc1lTaGNJbjFsYkhObGUxd2lLU3hsS0Nrc1lTaGNJbjFjSWlrcE9tVW9LWDFtZFc1amRHbHZiaUJuS0NsN1puVnVZM1JwYjI0Z1pDZ3BlMkVvZWl0Y0lpNWtjbUYzUld4bGJXVnVkSE1vWENJclcyWXNiaXhMTEd3clhDSThQQ2dvWENJclN5dGNJaTAxTVRJeEtUNCtNU2xjSWwwclhDSXBPMXdpS1gxbWRXNWpkR2x2YmlCbEtDbDdZU2g2SzF3aUxtUnlZWGRCY25KaGVYTW9YQ0lyVzJZc2JDeHVYU3RjSWlrN1hDSXBmWEUvVXo5a0tDazZLR0VvWENKcFppaGNJaXh4TEZ3aUtYdGNJaWtzWkNncExHRW9YQ0o5Wld4elpYdGNJaWtzWlNncExHRW9YQ0o5WENJcEtUcGxLQ2w5ZG1GeUlIYzlaQzV6YUdGeVpXUXNlajEzTG1kc0xHMDlkeTVrY21GM0xHczlZeTVrY21GM0xIRTlablZ1WTNScGIyNG9LWHQyWVhJZ1lqMXJMbVZzWlcxbGJuUnpMR2c5WlR0cFppaGlLWHRwWmloaUxtTnZiblJsZUhSRVpYQW1KbU11WTI5dWRHVjRkRVI1Ym1GdGFXTjhmR0l1Y0hKdmNFUmxjQ2xvUFdFN1lqMWlMbUZ3Y0dWdVpDaGtMR2dwZldWc2MyVWdZajFvTG1SbFppaHRMRndpTGx3aUxGd2laV3hsYldWdWRITmNJaWs3WEc1aUppWm9LRndpYVdZb1hDSXJZaXRjSWlsY0lpdDZLMXdpTG1KcGJtUkNkV1ptWlhJb016UTVOak1zWENJcllpdGNJaTVpZFdabVpYSXVZblZtWm1WeUtUdGNJaWs3Y21WMGRYSnVJR0o5S0Nrc1pqMWlLRndpY0hKcGJXbDBhWFpsWENJcExHdzlZaWhjSW05bVpuTmxkRndpS1N4dVBXWjFibU4wYVc5dUtDbDdkbUZ5SUdJOWF5NWpiM1Z1ZEN4b1BXVTdhV1lvWWlsN2FXWW9ZaTVqYjI1MFpYaDBSR1Z3SmlaakxtTnZiblJsZUhSRWVXNWhiV2xqZkh4aUxuQnliM0JFWlhBcGFEMWhPMkk5WWk1aGNIQmxibVFvWkN4b0tYMWxiSE5sSUdJOWFDNWtaV1lvYlN4Y0lpNWNJaXhjSW1OdmRXNTBYQ0lwTzNKbGRIVnliaUJpZlNncE8ybG1LRndpYm5WdFltVnlYQ0k5UFQxMGVYQmxiMllnYmlsN2FXWW9NRDA5UFc0cGNtVjBkWEp1ZldWc2MyVWdZU2hjSW1sbUtGd2lMRzRzWENJcGUxd2lLU3hoTG1WNGFYUW9YQ0o5WENJcE8zWmhjaUJDTEhnN2RHRW1KaWhDUFdJb1hDSnBibk4wWVc1alpYTmNJaWtzZUQxa0xtbHVjM1JoYm1OcGJtY3BPM1poY2lCTFBYRXJYQ0l1ZEhsd1pWd2lMRk05YXk1bGJHVnRaVzUwY3lZbWNpaHJMbVZzWlcxbGJuUnpLVHQwWVNZbUtGd2liblZ0WW1WeVhDSWhQVDEwZVhCbGIyWWdRbng4TUR3OVFpay9YQ0p6ZEhKcGJtZGNJajA5UFhSNWNHVnZaaUJDUHloaEtGd2lhV1lvWENJc1FpeGNJajR3S1h0Y0lpa3NhQ2dwTEdFb1hDSjlaV3h6WlNCcFppaGNJaXhDTEZ4dVhDSThNQ2w3WENJcExHY29LU3hoS0Z3aWZWd2lLU2s2YUNncE9tY29LWDFtZFc1amRHbHZiaUJGWVNoa0xHVXNZU3hpTEdNcGUyVTlZbUVvS1R0alBXVXVjSEp2WXloY0ltSnZaSGxjSWl4aktUdDBZU1ltS0dVdWFXNXpkR0Z1WTJsdVp6MWpMbVJsWmlobExuTm9ZWEpsWkM1bGVIUmxibk5wYjI1ekxGd2lMbUZ1WjJ4bFgybHVjM1JoYm1ObFpGOWhjbkpoZVhOY0lpa3BPMlFvWlN4akxHRXNZaWs3Y21WMGRYSnVJR1V1WTI5dGNHbHNaU2dwTG1KdlpIbDlablZ1WTNScGIyNGdSbUVvWkN4bExHRXNZaWw3Y0dFb1pDeGxLVHRZS0dRc1pTeGhMR0l1WVhSMGNtbGlkWFJsY3l4bWRXNWpkR2x2YmlncGUzSmxkSFZ5YmlFd2ZTazdWQ2hrTEdVc1lTeGlMblZ1YVdadmNtMXpMR1oxYm1OMGFXOXVLQ2w3Y21WMGRYSnVJVEI5S1R0MVlTaGtMR1VzWlN4aEtYMW1kVzVqZEdsdmJpQklZU2hrTEdVcGUzWmhjaUJoUFdRdWNISnZZeWhjSW1SeVlYZGNJaXd4S1R0d1lTaGtMR0VwTzJWaEtHUXNZU3hsTG1OdmJuUmxlSFFwTzA4b1pDeGhMR1V1Wm5KaGJXVmlkV1ptWlhJcE8yaGhLR1FzWVN4bEtUdFJLR1FzWVN4bExuTjBZWFJsS1R0V0tHUXNZU3hsTENFeExDRXdLVHQyWVhJZ1lqMWxMbk5vWVdSbGNpNXdjbTluVm1GeUxtRndjR1Z1WkNoa0xHRXBPMkVvWkM1emFHRnlaV1F1WjJ3c1hDSXVkWE5sVUhKdlozSmhiU2hjSWl4aUxGeHVYQ0l1Y0hKdlozSmhiU2s3WENJcE8ybG1LR1V1YzJoaFpHVnlMbkJ5YjJkeVlXMHBSbUVvWkN4aExHVXNaUzV6YUdGa1pYSXVjSEp2WjNKaGJTazdaV3h6Wlh0MllYSWdZejFrTG1kc2IySmhiQzVrWldZb1hDSjdmVndpS1N4b1BXRXVaR1ZtS0dJc1hDSXVhV1JjSWlrc1p6MWhMbVJsWmloakxGd2lXMXdpTEdnc1hDSmRYQ0lwTzJFb1pDNWpiMjVrS0djcExuUm9aVzRvWnl4Y0lpNWpZV3hzS0hSb2FYTXNZVEFwTzF3aUtWdGNJbVZzYzJWY0lsMG9aeXhjSWoxY0lpeGpMRndpVzF3aUxHZ3NYQ0pkUFZ3aUxHUXViR2x1YXlobWRXNWpkR2x2YmloaEtYdHlaWFIxY200Z1JXRW9SbUVzWkN4bExHRXNNU2w5S1N4Y0lpaGNJaXhpTEZ3aUtUdGNJaXhuTEZ3aUxtTmhiR3dvZEdocGN5eGhNQ2s3WENJcEtYMHdQRTlpYW1WamRDNXJaWGx6S0dVdWMzUmhkR1VwTG14bGJtZDBhQ1ltWVNoa0xuTm9ZWEpsWkM1amRYSnlaVzUwTEZ3aUxtUnBjblI1UFhSeWRXVTdYQ0lwZldaMWJtTjBhVzl1SUVsaEtHUXNaU3hoTEdJcGUyWjFibU4wYVc5dUlHTW9LWHR5WlhSMWNtNGhNSDFrTG1KaGRHTm9TV1E5WENKaE1Wd2lPM0JoS0dRc1pTazdXQ2hrTEdVc1lTeGlMbUYwZEhKcFluVjBaWE1zWXlrN1ZDaGtMR1VzWVN4aUxuVnVhV1p2Y20xekxHTXBPM1ZoS0dRc1pTeGxMR0VwZldaMWJtTjBhVzl1SUVOaEtHVXNZU3hpTEdNcGUyWjFibU4wYVc5dUlHZ29aU2w3Y21WMGRYSnVJR1V1WTI5dWRHVjRkRVJsY0NZbVhHNTNmSHhsTG5CeWIzQkVaWEI5Wm5WdVkzUnBiMjRnWnlobEtYdHlaWFIxY200aGFDaGxLWDF3WVNobExHRXBPM1poY2lCM1BXSXVZMjl1ZEdWNGRFUmxjQ3g2UFdFdVpHVm1LQ2tzYlQxaExtUmxaaWdwTzJVdWMyaGhjbVZrTG5CeWIzQnpQVzA3WlM1aVlYUmphRWxrUFhvN2RtRnlJR3M5WlM1elkyOXdaU2dwTEhFOVpTNXpZMjl3WlNncE8yRW9heTVsYm5SeWVTeGNJbVp2Y2loY0lpeDZMRndpUFRBN1hDSXNlaXhjSWp4Y0lpeGNJbUV4WENJc1hDSTdLeXRjSWl4NkxGd2lLWHRjSWl4dExGd2lQVndpTEZ3aVlUQmNJaXhjSWx0Y0lpeDZMRndpWFR0Y0lpeHhMRndpZlZ3aUxHc3VaWGhwZENrN1lpNXVaV1ZrYzBOdmJuUmxlSFFtSm1WaEtHVXNjU3hpTG1OdmJuUmxlSFFwTzJJdWJtVmxaSE5HY21GdFpXSjFabVpsY2lZbVR5aGxMSEVzWWk1bWNtRnRaV0oxWm1abGNpazdVU2hsTEhFc1lpNXpkR0YwWlN4b0tUdGlMbkJ5YjJacGJHVW1KbWdvWWk1d2NtOW1hV3hsS1NZbVZpaGxMSEVzWWl3aE1Td2hNQ2s3WXo4b1dDaGxMR3NzWWl4akxtRjBkSEpwWW5WMFpYTXNaeWtzV0NobExIRXNZaXhqTG1GMGRISnBZblYwWlhNc2FDa3NWQ2hsTEdzc1lpeGpMblZ1YVdadmNtMXpMR2NwTEZRb1pTeHhMR0lzWXk1MWJtbG1iM0p0Y3l4b0tTeDFZU2hsTEdzc2NTeGlLU2s2S0dFOVpTNW5iRzlpWVd3dVpHVm1LRndpZTMxY0lpa3NZejFpTG5Ob1lXUmxjaTV3Y205blZtRnlMbUZ3Y0dWdVpDaGxMRnh1Y1Nrc2JUMXhMbVJsWmloakxGd2lMbWxrWENJcExHczljUzVrWldZb1lTeGNJbHRjSWl4dExGd2lYVndpS1N4eEtHVXVjMmhoY21Wa0xtZHNMRndpTG5WelpWQnliMmR5WVcwb1hDSXNZeXhjSWk1d2NtOW5jbUZ0S1R0Y0lpeGNJbWxtS0NGY0lpeHJMRndpS1h0Y0lpeHJMRndpUFZ3aUxHRXNYQ0piWENJc2JTeGNJbDA5WENJc1pTNXNhVzVyS0daMWJtTjBhVzl1S0dFcGUzSmxkSFZ5YmlCRllTaEpZU3hsTEdJc1lTd3lLWDBwTEZ3aUtGd2lMR01zWENJcE8zMWNJaXhyTEZ3aUxtTmhiR3dvZEdocGN5eGhNRnRjSWl4NkxGd2lYU3hjSWl4NkxGd2lLVHRjSWlrcGZXWjFibU4wYVc5dUlFUmhLR1VzWVNsN1puVnVZM1JwYjI0Z1lpaGxLWHR5WlhSMWNtNGdaUzVqYjI1MFpYaDBSR1Z3Smlab2ZIeGxMbkJ5YjNCRVpYQjlkbUZ5SUdNOVpTNXdjbTlqS0Z3aVltRjBZMmhjSWl3eUtUdGxMbUpoZEdOb1NXUTlYQ0l3WENJN2NHRW9aU3hqS1R0MllYSWdhRDBoTVN4blBTRXdPMDlpYW1WamRDNXJaWGx6S0dFdVkyOXVkR1Y0ZENrdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlobEtYdG9QV2g4ZkdFdVkyOXVkR1Y0ZEZ0bFhTNXdjbTl3UkdWd2ZTazdhSHg4S0dWaEtHVXNZeXhoTG1OdmJuUmxlSFFwTEdjOUlURXBPM1poY2lCM1BXRXVabkpoYldWaWRXWm1aWElzZWowaE1UdDNQeWgzTG5CeWIzQkVaWEEvYUQxNlBTRXdPbmN1WTI5dWRHVjRkRVJsY0NZbWFDWW1LSG85SVRBcExGeHVlbng4VHlobExHTXNkeWtwT2s4b1pTeGpMRzUxYkd3cE8yRXVjM1JoZEdVdWRtbGxkM0J2Y25RbUptRXVjM1JoZEdVdWRtbGxkM0J2Y25RdWNISnZjRVJsY0NZbUtHZzlJVEFwTzJoaEtHVXNZeXhoS1R0UktHVXNZeXhoTG5OMFlYUmxMR1oxYm1OMGFXOXVLR1VwZTNKbGRIVnliaUZpS0dVcGZTazdZUzV3Y205bWFXeGxKaVppS0dFdWNISnZabWxzWlNsOGZGWW9aU3hqTEdFc0lURXNYQ0poTVZ3aUtUdGhMbU52Ym5SbGVIUkVaWEE5YUR0aExtNWxaV1J6UTI5dWRHVjRkRDFuTzJFdWJtVmxaSE5HY21GdFpXSjFabVpsY2oxNk8yYzlZUzV6YUdGa1pYSXVjSEp2WjFaaGNqdHBaaWhuTG1OdmJuUmxlSFJFWlhBbUptaDhmR2N1Y0hKdmNFUmxjQ2xEWVNobExHTXNZU3h1ZFd4c0tUdGxiSE5sSUdsbUtHYzlaeTVoY0hCbGJtUW9aU3hqS1N4aktHVXVjMmhoY21Wa0xtZHNMRndpTG5WelpWQnliMmR5WVcwb1hDSXNaeXhjSWk1d2NtOW5jbUZ0S1R0Y0lpa3NZUzV6YUdGa1pYSXVjSEp2WjNKaGJTbERZU2hsTEdNc1lTeGhMbk5vWVdSbGNpNXdjbTluY21GdEtUdGxiSE5sZTNaaGNpQjNQV1V1WjJ4dlltRnNMbVJsWmloY0ludDlYQ0lwTEhvOVl5NWtaV1lvWnl4Y0lpNXBaRndpS1N4eFBXTXVaR1ZtS0hjc1hDSmJYQ0lzZWl4Y0lsMWNJaWs3WXlobExtTnZibVFvY1NrdWRHaGxiaWh4TEZ3aUxtTmhiR3dvZEdocGN5eGhNQ3hoTVNrN1hDSXBXMXdpWld4elpWd2lYU2h4TEZ4dVhDSTlYQ0lzZHl4Y0lsdGNJaXg2TEZ3aVhUMWNJaXhsTG14cGJtc29ablZ1WTNScGIyNG9ZaWw3Y21WMGRYSnVJRVZoS0VOaExHVXNZU3hpTERJcGZTa3NYQ0lvWENJc1p5eGNJaWs3WENJc2NTeGNJaTVqWVd4c0tIUm9hWE1zWVRBc1lURXBPMXdpS1NsOU1EeFBZbXBsWTNRdWEyVjVjeWhoTG5OMFlYUmxLUzVzWlc1bmRHZ21KbU1vWlM1emFHRnlaV1F1WTNWeWNtVnVkQ3hjSWk1a2FYSjBlVDEwY25WbE8xd2lLWDFtZFc1amRHbHZiaUJRWVNobExHRXBlMloxYm1OMGFXOXVJR0lvWnlsN2RtRnlJSGM5WVM1emFHRmtaWEpiWjEwN2R5WW1ZeTV6WlhRb2FDNXphR0ZrWlhJc1hDSXVYQ0lyWnl4M0xtRndjR1Z1WkNobExHTXBLWDEyWVhJZ1l6MWxMbkJ5YjJNb1hDSnpZMjl3WlZ3aUxETXBPMlV1WW1GMFkyaEpaRDFjSW1FeVhDSTdkbUZ5SUdnOVpTNXphR0Z5WldRc1p6MW9MbU4xY25KbGJuUTdaV0VvWlN4akxHRXVZMjl1ZEdWNGRDazdZUzVtY21GdFpXSjFabVpsY2lZbVlTNW1jbUZ0WldKMVptWmxjaTVoY0hCbGJtUW9aU3hqS1R0cktFOWlhbVZqZEM1clpYbHpLR0V1YzNSaGRHVXBLUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVLR0lwZTNaaGNpQm5QV0V1YzNSaGRHVmJZbDB1WVhCd1pXNWtLR1VzWXlrN2VTaG5LVDluTG1admNrVmhZMmdvWm5WdVkzUnBiMjRvWVN4b0tYdGpMbk5sZENobExtNWxlSFJiWWwwc1hDSmJYQ0lyYUN0Y0lsMWNJaXhjYm1FcGZTazZZeTV6WlhRb2FDNXVaWGgwTEZ3aUxsd2lLMklzWnlsOUtUdFdLR1VzWXl4aExDRXdMQ0V3S1R0YlhDSmxiR1Z0Wlc1MGMxd2lMRndpYjJabWMyVjBYQ0lzWENKamIzVnVkRndpTEZ3aWFXNXpkR0Z1WTJWelhDSXNYQ0p3Y21sdGFYUnBkbVZjSWwwdVptOXlSV0ZqYUNobWRXNWpkR2x2YmloaUtYdDJZWElnWnoxaExtUnlZWGRiWWwwN1p5WW1ZeTV6WlhRb2FDNWtjbUYzTEZ3aUxsd2lLMklzWENKY0lpdG5MbUZ3Y0dWdVpDaGxMR01wS1gwcE8wOWlhbVZqZEM1clpYbHpLR0V1ZFc1cFptOXliWE1wTG1admNrVmhZMmdvWm5WdVkzUnBiMjRvWWlsN1l5NXpaWFFvYUM1MWJtbG1iM0p0Y3l4Y0lsdGNJaXRtTG1sa0tHSXBLMXdpWFZ3aUxHRXVkVzVwWm05eWJYTmJZbDB1WVhCd1pXNWtLR1VzWXlrcGZTazdUMkpxWldOMExtdGxlWE1vWVM1aGRIUnlhV0oxZEdWektTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUtHSXBlM1poY2lCb1BXRXVZWFIwY21saWRYUmxjMXRpWFM1aGNIQmxibVFvWlN4aktTeG5QV1V1YzJOdmNHVkJkSFJ5YVdJb1lpazdUMkpxWldOMExtdGxlWE1vYm1WM0lFSmhLUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVLR1VwZTJNdWMyVjBLR2NzWENJdVhDSXJaU3hvVzJWZEtYMHBmU2s3WWloY0luWmxjblJjSWlrN1lpaGNJbVp5WVdkY0lpazdNRHhQWW1wbFkzUXVhMlY1Y3loaExuTjBZWFJsS1M1c1pXNW5kR2dtSmloaktHY3NYRzVjSWk1a2FYSjBlVDEwY25WbE8xd2lLU3hqTG1WNGFYUW9aeXhjSWk1a2FYSjBlVDEwY25WbE8xd2lLU2s3WXloY0ltRXhLRndpTEdVdWMyaGhjbVZrTG1OdmJuUmxlSFFzWENJc1lUQXNYQ0lzWlM1aVlYUmphRWxrTEZ3aUtUdGNJaWw5Wm5WdVkzUnBiMjRnVG1Fb1pTbDdhV1lvWENKdlltcGxZM1JjSWowOVBYUjVjR1Z2WmlCbEppWWhlU2hsS1NsN1ptOXlLSFpoY2lCaFBVOWlhbVZqZEM1clpYbHpLR1VwTEdJOU1EdGlQR0V1YkdWdVozUm9PeXNyWWlscFppaG5MbWx6UkhsdVlXMXBZeWhsVzJGYllsMWRLU2x5WlhSMWNtNGhNRHR5WlhSMWNtNGhNWDE5Wm5WdVkzUnBiMjRnU21Fb1pTeGlMR01wZTJaMWJtTjBhVzl1SUdnb1pTeGhLWHR4TG1admNrVmhZMmdvWm5WdVkzUnBiMjRvWkNsN2RtRnlJR0k5ZDF0a1hUdG5MbWx6UkhsdVlXMXBZeWhpS1NZbUtHSTlaUzVwYm5admEyVW9ZU3hpS1N4aEtHNHNYQ0l1WENJc1pDeGNJajFjSWl4aUxGd2lPMXdpS1NsOUtYMTJZWElnZHoxaVcxd2ljM1JoZEdsalhDSmRXMk5kTzJsbUtIY21KazVoS0hjcEtYdDJZWElnZWoxbExtZHNiMkpoYkN4eFBVOWlhbVZqZEM1clpYbHpLSGNwTEdzOUlURXNiVDBoTVN4bVBTRXhMRzQ5WlM1bmJHOWlZV3d1WkdWbUtGd2llMzFjSWlrN2NTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUtHSXBlM1poY2lCalBYZGJZbDA3YVdZb1p5NXBjMFI1Ym1GdGFXTW9ZeWtwWENKbWRXNWpkR2x2Ymx3aVBUMDlYRzUwZVhCbGIyWWdZeVltS0dNOWQxdGlYVDFuTG5WdVltOTRLR01wS1N4aVBXRW9ZeXh1ZFd4c0tTeHJQV3Q4ZkdJdWRHaHBjMFJsY0N4bVBXWjhmR0l1Y0hKdmNFUmxjQ3h0UFcxOGZHSXVZMjl1ZEdWNGRFUmxjRHRsYkhObGUzb29iaXhjSWk1Y0lpeGlMRndpUFZ3aUtUdHpkMmwwWTJnb2RIbHdaVzltSUdNcGUyTmhjMlVnWENKdWRXMWlaWEpjSWpwNktHTXBPMkp5WldGck8yTmhjMlVnWENKemRISnBibWRjSWpwNktDZGNJaWNzWXl3blhDSW5LVHRpY21WaGF6dGpZWE5sSUZ3aWIySnFaV04wWENJNlFYSnlZWGt1YVhOQmNuSmhlU2hqS1NZbWVpaGNJbHRjSWl4akxtcHZhVzRvS1N4Y0lsMWNJaWs3WW5KbFlXczdaR1ZtWVhWc2REcDZLR1V1YkdsdWF5aGpLU2w5ZWloY0lqdGNJaWw5ZlNrN1lpNWtlVzVoYldsalcyTmRQVzVsZHlCbkxrUjVibUZ0YVdOV1lYSnBZV0pzWlNnMExIdDBhR2x6UkdWd09tc3NZMjl1ZEdWNGRFUmxjRHB0TEhCeWIzQkVaWEE2Wml4eVpXWTZiaXhoY0hCbGJtUTZhSDBwTzJSbGJHVjBaU0JpVzF3aWMzUmhkR2xqWENKZFcyTmRmWDEyWVhJZ1FtRTlRV0V1VW1WamIzSmtMR05oUFh0aFpHUTZNekkzTnpRc2MzVmlkSEpoWTNRNk16STNOemdzWENKeVpYWmxjbk5sSUhOMVluUnlZV04wWENJNk16STNOemw5TzNRdVpYaDBYMkpzWlc1a1gyMXBibTFoZUNZbUtHTmhMbTFwYmowek1qYzNOU3hqWVM1dFlYZzlNekkzTnpZcE8xeHVkbUZ5SUhSaFBYUXVZVzVuYkdWZmFXNXpkR0Z1WTJWa1gyRnljbUY1Y3l4dllUMTBMbmRsWW1kc1gyUnlZWGRmWW5WbVptVnljeXhsUFh0a2FYSjBlVG9oTUN4d2NtOW1hV3hsT21kaExuQnliMlpwYkdWOUxIbzllMzBzZHoxYlhTeDNZVDE3ZlN4NFlUMTdmVHRTS0Z3aVpHbDBhR1Z5WENJc016QXlOQ2s3VWloY0ltSnNaVzVrTG1WdVlXSnNaVndpTERNd05ESXBPMGNvWENKaWJHVnVaQzVqYjJ4dmNsd2lMRndpWW14bGJtUkRiMnh2Y2x3aUxGc3dMREFzTUN3d1hTazdSeWhjSW1Kc1pXNWtMbVZ4ZFdGMGFXOXVYQ0lzWENKaWJHVnVaRVZ4ZFdGMGFXOXVVMlZ3WVhKaGRHVmNJaXhiTXpJM056UXNNekkzTnpSZEtUdEhLRndpWW14bGJtUXVablZ1WTF3aUxGd2lZbXhsYm1SR2RXNWpVMlZ3WVhKaGRHVmNJaXhiTVN3d0xERXNNRjBwTzFJb1hDSmtaWEIwYUM1bGJtRmliR1ZjSWl3eU9USTVMQ0V3S1R0SEtGd2laR1Z3ZEdndVpuVnVZMXdpTEZ3aVpHVndkR2hHZFc1alhDSXNOVEV6S1R0SEtGd2laR1Z3ZEdndWNtRnVaMlZjSWl4Y0ltUmxjSFJvVW1GdVoyVmNJaXhiTUN3eFhTazdSeWhjSW1SbGNIUm9MbTFoYzJ0Y0lpeGNJbVJsY0hSb1RXRnphMXdpTENFd0tUdEhLRndpWTI5c2IzSk5ZWE5yWENJc1hDSmpiMnh2Y2sxaGMydGNJaXhiSVRBc0lUQXNJVEFzSVRCZEtUdFNLRndpWTNWc2JDNWxibUZpYkdWY0lpd3lPRGcwS1R0SEtGd2lZM1ZzYkM1bVlXTmxYQ0lzWENKamRXeHNSbUZqWlZ3aUxGeHVNVEF5T1NrN1J5aGNJbVp5YjI1MFJtRmpaVndpTEZ3aVpuSnZiblJHWVdObFhDSXNNak13TlNrN1J5aGNJbXhwYm1WWGFXUjBhRndpTEZ3aWJHbHVaVmRwWkhSb1hDSXNNU2s3VWloY0luQnZiSGxuYjI1UFptWnpaWFF1Wlc1aFlteGxYQ0lzTXpJNE1qTXBPMGNvWENKd2IyeDVaMjl1VDJabWMyVjBMbTltWm5ObGRGd2lMRndpY0c5c2VXZHZiazltWm5ObGRGd2lMRnN3TERCZEtUdFNLRndpYzJGdGNHeGxMbUZzY0doaFhDSXNNekk1TWpZcE8xSW9YQ0p6WVcxd2JHVXVaVzVoWW14bFhDSXNNekk1TWpncE8wY29YQ0p6WVcxd2JHVXVZMjkyWlhKaFoyVmNJaXhjSW5OaGJYQnNaVU52ZG1WeVlXZGxYQ0lzV3pFc0lURmRLVHRTS0Z3aWMzUmxibU5wYkM1bGJtRmliR1ZjSWl3eU9UWXdLVHRIS0Z3aWMzUmxibU5wYkM1dFlYTnJYQ0lzWENKemRHVnVZMmxzVFdGemExd2lMQzB4S1R0SEtGd2ljM1JsYm1OcGJDNW1kVzVqWENJc1hDSnpkR1Z1WTJsc1JuVnVZMXdpTEZzMU1Ua3NNQ3d0TVYwcE8wY29YQ0p6ZEdWdVkybHNMbTl3Um5KdmJuUmNJaXhjSW5OMFpXNWphV3hQY0ZObGNHRnlZWFJsWENJc1d6RXdNamdzTnpZNE1DdzNOamd3TERjMk9EQmRLVHRIS0Z3aWMzUmxibU5wYkM1dmNFSmhZMnRjSWl4Y0luTjBaVzVqYVd4UGNGTmxjR0Z5WVhSbFhDSXNXekV3TWprc056WTRNQ3czTmpnd0xEYzJPREJkS1R0U0tGd2ljMk5wYzNOdmNpNWxibUZpYkdWY0lpd3pNRGc1S1R0SEtGd2ljMk5wYzNOdmNpNWliM2hjSWl4Y2Jsd2ljMk5wYzNOdmNsd2lMRnN3TERBc2FDNWtjbUYzYVc1blFuVm1abVZ5VjJsa2RHZ3NhQzVrY21GM2FXNW5RblZtWm1WeVNHVnBaMmgwWFNrN1J5aGNJblpwWlhkd2IzSjBYQ0lzWENKMmFXVjNjRzl5ZEZ3aUxGc3dMREFzYUM1a2NtRjNhVzVuUW5WbVptVnlWMmxrZEdnc2FDNWtjbUYzYVc1blFuVm1abVZ5U0dWcFoyaDBYU2s3ZG1GeUlGRmhQWHRuYkRwb0xHTnZiblJsZUhRNlV5eHpkSEpwYm1kek9tWXNibVY0ZERwNkxHTjFjbkpsYm5RNlpTeGtjbUYzT25Fc1pXeGxiV1Z1ZEhNNmRTeGlkV1ptWlhJNlRTeHphR0ZrWlhJNmRtRXNZWFIwY21saWRYUmxjenBCWVM1emRHRjBaU3gxYm1sbWIzSnRjenBMTEdaeVlXMWxZblZtWm1WeU9rUXNaWGgwWlc1emFXOXVjenAwTEhScGJXVnlPbTFoTEdselFuVm1abVZ5UVhKbmN6cHNmU3hOWVQxN2NISnBiVlI1Y0dWek9rVXNZMjl0Y0dGeVpVWjFibU56T2tJc1lteGxibVJHZFc1amN6cHRMR0pzWlc1a1JYRjFZWFJwYjI1ek9tTmhMSE4wWlc1amFXeFBjSE02V1N4bmJGUjVjR1Z6T2tNc2IzSnBaVzUwWVhScGIyNVVlWEJsT2t4OU8yOWhKaVlvVFdFdVltRmphMEoxWm1abGNqMWJNVEF5T1Ywc1RXRXVaSEpoZDBKMVptWmxjajFHS0hBdWJXRjRSSEpoZDJKMVptWmxjbk1zWm5WdVkzUnBiMjRvWlNsN2NtVjBkWEp1SURBOVBUMWxQMXN3WFRwR0tHVXNablZ1WTNScGIyNG9aU2w3Y21WMGRYSnVJRE0yTURZMEsxeHVaWDBwZlNrcE8zWmhjaUJTWVQwd08zSmxkSFZ5Ym50dVpYaDBPbm9zWTNWeWNtVnVkRHBsTEhCeWIyTnpPbVoxYm1OMGFXOXVLQ2w3ZG1GeUlHRTlZbUVvS1N4aVBXRXVjSEp2WXloY0luQnZiR3hjSWlrc1l6MWhMbkJ5YjJNb1hDSnlaV1p5WlhOb1hDSXBMR2M5WVM1aWJHOWpheWdwTzJJb1p5azdZeWhuS1R0MllYSWdkejFoTG5Ob1lYSmxaQ3g2UFhjdVoyd3NjVDEzTG01bGVIUXNhejEzTG1OMWNuSmxiblE3WnlockxGd2lMbVJwY25SNVBXWmhiSE5sTzF3aUtUdFBLR0VzWWlrN1R5aGhMR01zYm5Wc2JDd2hNQ2s3ZG1GeUlHMDlhQzVuWlhSRmVIUmxibk5wYjI0b1hDSmhibWRzWlY5cGJuTjBZVzVqWldSZllYSnlZWGx6WENJcExHWTdiU1ltS0dZOVlTNXNhVzVyS0cwcEtUdG1iM0lvZG1GeUlHNDlNRHR1UEhBdWJXRjRRWFIwY21saWRYUmxjenNySzI0cGUzWmhjaUJzUFdNdVpHVm1LSGN1WVhSMGNtbGlkWFJsY3l4Y0lsdGNJaXh1TEZ3aVhWd2lLU3hDUFdFdVkyOXVaQ2hzTEZ3aUxtSjFabVpsY2x3aUtUdENMblJvWlc0b2VpeGNJaTVsYm1GaWJHVldaWEowWlhoQmRIUnlhV0pCY25KaGVTaGNJaXh1TEZ3aUtUdGNJaXg2TEZ3aUxtSnBibVJDZFdabVpYSW9YQ0lzTXpRNU5qSXNYQ0lzWENJc2JDeGNJaTVpZFdabVpYSXVZblZtWm1WeUtUdGNJaXg2TEZ3aUxuWmxjblJsZUVGMGRISnBZbEJ2YVc1MFpYSW9YQ0lzYml4Y0lpeGNJaXhzTEZ3aUxuTnBlbVVzWENJc1hHNXNMRndpTG5SNWNHVXNYQ0lzYkN4Y0lpNXViM0p0WVd4cGVtVmtMRndpTEd3c1hDSXVjM1J5YVdSbExGd2lMR3dzWENJdWIyWm1jMlYwS1R0Y0lpbGJYQ0psYkhObFhDSmRLSG9zWENJdVpHbHpZV0pzWlZabGNuUmxlRUYwZEhKcFlrRnljbUY1S0Z3aUxHNHNYQ0lwTzF3aUxIb3NYQ0l1ZG1WeWRHVjRRWFIwY21saU5HWW9YQ0lzYml4Y0lpeGNJaXhzTEZ3aUxuZ3NYQ0lzYkN4Y0lpNTVMRndpTEd3c1hDSXVlaXhjSWl4c0xGd2lMbmNwTzF3aUxHd3NYQ0l1WW5WbVptVnlQVzUxYkd3N1hDSXBPMk1vUWlrN2JTWW1ZeWhtTEZ3aUxuWmxjblJsZUVGMGRISnBZa1JwZG1semIzSkJUa2RNUlNoY0lpeHVMRndpTEZ3aUxHd3NYQ0l1WkdsMmFYTnZjaWs3WENJcGZVOWlhbVZqZEM1clpYbHpLSGRoS1M1bWIzSkZZV05vS0daMWJtTjBhVzl1S0dVcGUzWmhjaUJvUFhkaFcyVmRMSGM5Wnk1a1pXWW9jU3hjSWk1Y0lpeGxLU3h0UFdFdVlteHZZMnNvS1R0dEtGd2lhV1lvWENJc2R5eGNJaWw3WENJc2VpeGNJaTVsYm1GaWJHVW9YQ0lzYUN4Y0lpbDlaV3h6Wlh0Y0lpeDZMRndpTG1ScGMyRmliR1VvWENJc2FDeGNJaWw5WENJc2F5eGNJaTVjSWl4bExGd2lQVndpTEhjc1hDSTdYQ0lwTzJNb2JTazdZaWhjSW1sbUtGd2lMSGNzWENJaFBUMWNJaXhyTEZ3aUxsd2lMR1VzWENJcGUxd2lMRzBzWENKOVhDSXBmU2s3VDJKcVpXTjBMbXRsZVhNb2VHRXBMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNG9hQ2w3ZG1GeUlIYzllR0ZiYUYwc2JUMWxXMmhkTEdZc1hHNXVMR3c5WVM1aWJHOWpheWdwTzJ3b2VpeGNJaTVjSWl4M0xGd2lLRndpS1R0NUtHMHBQeWgzUFcwdWJHVnVaM1JvTEdZOVlTNW5iRzlpWVd3dVpHVm1LSEVzWENJdVhDSXNhQ2tzYmoxaExtZHNiMkpoYkM1a1pXWW9heXhjSWk1Y0lpeG9LU3hzS0VZb2R5eG1kVzVqZEdsdmJpaGxLWHR5WlhSMWNtNGdaaXRjSWx0Y0lpdGxLMXdpWFZ3aWZTa3NYQ0lwTzF3aUxFWW9keXhtZFc1amRHbHZiaWhsS1h0eVpYUjFjbTRnYml0Y0lsdGNJaXRsSzF3aVhUMWNJaXRtSzF3aVcxd2lLMlVyWENKZE8xd2lmU2t1YW05cGJpaGNJbHdpS1Nrc1lpaGNJbWxtS0Z3aUxFWW9keXhtZFc1amRHbHZiaWhsS1h0eVpYUjFjbTRnWml0Y0lsdGNJaXRsSzF3aVhTRTlQVndpSzI0clhDSmJYQ0lyWlN0Y0lsMWNJbjBwTG1wdmFXNG9YQ0o4ZkZ3aUtTeGNJaWw3WENJc2JDeGNJbjFjSWlrcE9paG1QV2N1WkdWbUtIRXNYQ0l1WENJc2FDa3NiajFuTG1SbFppaHJMRndpTGx3aUxHZ3BMR3dvWml4Y0lpazdYQ0lzYXl4Y0lpNWNJaXhvTEZ3aVBWd2lMR1lzWENJN1hDSXBMR0lvWENKcFppaGNJaXhtTEZ3aUlUMDlYQ0lzYml4Y0lpbDdYQ0lzYkN4Y0luMWNJaWtwTzJNb2JDbDlLVHR5WlhSMWNtNGdZUzVqYjIxd2FXeGxLQ2w5S0Nrc1kyOXRjR2xzWlRwbWRXNWpkR2x2YmlobExHRXNZaXhqTEdncGUzWmhjaUJuUFdKaEtDazdaeTV6ZEdGMGN6MW5MbXhwYm1zb2FDazdUMkpxWldOMExtdGxlWE1vWVZ0Y0luTjBZWFJwWTF3aVhTa3VabTl5UldGamFDaG1kVzVqZEdsdmJpaGxLWHRLWVNobkxGeHVZU3hsS1gwcE8yNHVabTl5UldGamFDaG1kVzVqZEdsdmJpaGhLWHRLWVNobkxHVXNZU2w5S1R0aVBXeGhLR1VzWVN4aUxHTXNaeWs3U0dFb1p5eGlLVHRRWVNobkxHSXBPMFJoS0djc1lpazdjbVYwZFhKdUlHY3VZMjl0Y0dsc1pTZ3BmWDE5ZlN4N1hDSXVMMk52Ym5OMFlXNTBjeTlrZEhsd1pYTXVhbk52Ymx3aU9qUXNYQ0l1TDJOdmJuTjBZVzUwY3k5d2NtbHRhWFJwZG1WekxtcHpiMjVjSWpvMUxGd2lMaTlrZVc1aGJXbGpYQ0k2T0N4Y0lpNHZkWFJwYkM5amIyUmxaMlZ1WENJNk1qRXNYQ0l1TDNWMGFXd3ZhWE10WVhKeVlYa3RiR2xyWlZ3aU9qSTBMRndpTGk5MWRHbHNMMmx6TFc1a1lYSnlZWGxjSWpveU5TeGNJaTR2ZFhScGJDOXBjeTEwZVhCbFpDMWhjbkpoZVZ3aU9qSTJMRndpTGk5MWRHbHNMMnh2YjNCY0lqb3lOMzFkTERnNlcyWjFibU4wYVc5dUtHWXNjQ3gxS1h0bWRXNWpkR2x2YmlCc0tHTXNZU2w3ZEdocGN5NXBaRDF5S3lzN2RHaHBjeTUwZVhCbFBXTTdkR2hwY3k1a1lYUmhQV0Y5Wm5WdVkzUnBiMjRnYXloaktYdHBaaWd3UFQwOVl5NXNaVzVuZEdncGNtVjBkWEp1VzEwN2RtRnlJR0U5WXk1amFHRnlRWFFvTUNrc1lqMWpMbU5vWVhKQmRDaGpMbXhsYm1kMGFDMHhLVHRwWmlneFBHTXViR1Z1WjNSb0ppWmhQVDA5WWlZbUtDZGNJaWM5UFQxaGZIeGNJaWRjSWowOVBXRXBLWEpsZEhWeWJsc25YQ0luSzJNdWMzVmljM1J5S0RFc1hHNWpMbXhsYm1kMGFDMHlLUzV5WlhCc1lXTmxLQzljWEZ4Y0wyY3NYQ0pjWEZ4Y1hGeGNYRndpS1M1eVpYQnNZV05sS0M5Y0lpOW5MQ2RjWEZ4Y1hDSW5LU3NuWENJblhUdHBaaWhoUFM5Y1hGc29abUZzYzJWOGRISjFaWHh1ZFd4c2ZGeGNaQ3Q4SjF0ZUoxMHFKM3hjSWx0ZVhDSmRLbHdpS1Z4Y1hTOHVaWGhsWXloaktTbHlaWFIxY200Z2F5aGpMbk4xWW5OMGNpZ3dMR0V1YVc1a1pYZ3BLUzVqYjI1allYUW9heWhoV3pGZEtTa3VZMjl1WTJGMEtHc29ZeTV6ZFdKemRISW9ZUzVwYm1SbGVDdGhXekJkTG14bGJtZDBhQ2twS1R0aFBXTXVjM0JzYVhRb1hDSXVYQ0lwTzJsbUtERTlQVDFoTG14bGJtZDBhQ2x5WlhSMWNtNWJKMXdpSnl0akxuSmxjR3hoWTJVb0wxeGNYRnd2Wnl4Y0lseGNYRnhjWEZ4Y1hDSXBMbkpsY0d4aFkyVW9MMXdpTDJjc0oxeGNYRnhjSWljcEt5ZGNJaWRkTzJNOVcxMDdabTl5S0dJOU1EdGlQR0V1YkdWdVozUm9PeXNyWWlsalBXTXVZMjl1WTJGMEtHc29ZVnRpWFNrcE8zSmxkSFZ5YmlCamZXWjFibU4wYVc5dUlIZ29ZeWw3Y21WMGRYSnVYQ0piWENJcmF5aGpLUzVxYjJsdUtGd2lYVnRjSWlrclhDSmRYQ0o5ZG1GeUlISTlNRHR3TG1WNGNHOXlkSE05ZTBSNWJtRnRhV05XWVhKcFlXSnNaVHBzTEdSbFptbHVaVHBtZFc1amRHbHZiaWhqTEdFcGUzSmxkSFZ5YmlCdVpYY2diQ2hqTEhnb1lTdGNJbHdpS1NsOUxHbHpSSGx1WVcxcFl6cG1kVzVqZEdsdmJpaGpLWHR5WlhSMWNtNWNJbVoxYm1OMGFXOXVYQ0k5UFQxY2JuUjVjR1Z2WmlCakppWWhZeTVmY21WbmJGUjVjR1Y4ZkdNZ2FXNXpkR0Z1WTJWdlppQnNmU3gxYm1KdmVEcG1kVzVqZEdsdmJpaGpMR0VwZTNKbGRIVnlibHdpWm5WdVkzUnBiMjVjSWowOVBYUjVjR1Z2WmlCalAyNWxkeUJzS0RBc1l5azZZMzBzWVdOalpYTnpiM0k2ZUgxOUxIdDlYU3c1T2x0bWRXNWpkR2x2YmlobUxIQXNkU2w3ZG1GeUlHdzlaaWhjSWk0dmRYUnBiQzlwY3kxMGVYQmxaQzFoY25KaGVWd2lLU3hyUFdZb1hDSXVMM1YwYVd3dmFYTXRibVJoY25KaGVWd2lLU3g0UFdZb1hDSXVMM1YwYVd3dmRtRnNkV1Z6WENJcExISTlaaWhjSWk0dlkyOXVjM1JoYm5SekwzQnlhVzFwZEdsMlpYTXVhbk52Ymx3aUtTeGpQV1lvWENJdUwyTnZibk4wWVc1MGN5OTFjMkZuWlM1cWMyOXVYQ0lwTzNBdVpYaHdiM0owY3oxbWRXNWpkR2x2YmloaExHSXNaaXh3S1h0bWRXNWpkR2x2YmlCMEtHRXBlM1JvYVhNdWFXUTlReXNyTzBWYmRHaHBjeTVwWkYwOWRHaHBjenQwYUdsekxtSjFabVpsY2oxaE8zUm9hWE11Y0hKcGJWUjVjR1U5TkR0MGFHbHpMblI1Y0dVOWRHaHBjeTUyWlhKMFEyOTFiblE5TUgxbWRXNWpkR2x2YmlCNUtHTXNaeXh1TEhJc2VDeG9MSFFwZTJNdVluVm1abVZ5TG1KcGJtUW9LVHRwWmlobktYdDJZWElnZVQxME8zUjhmR3dvWnlrbUppZ2hheWhuS1h4OGJDaG5MbVJoZEdFcEtYeDhLSGs5WWk1dlpYTmZaV3hsYldWdWRGOXBibVJsZUY5MWFXNTBQMXh1TlRFeU5UbzFNVEl6S1R0bUxsOXBibWwwUW5WbVptVnlLR011WW5WbVptVnlMR2NzYml4NUxETXBmV1ZzYzJVZ1lTNWlkV1ptWlhKRVlYUmhLRE0wT1RZekxHZ3NiaWtzWXk1aWRXWm1aWEl1WkhSNWNHVTllWHg4TlRFeU1TeGpMbUoxWm1abGNpNTFjMkZuWlQxdUxHTXVZblZtWm1WeUxtUnBiV1Z1YzJsdmJqMHpMR011WW5WbVptVnlMbUo1ZEdWTVpXNW5kR2c5YUR0NVBYUTdhV1lvSVhRcGUzTjNhWFJqYUNoakxtSjFabVpsY2k1a2RIbHdaU2w3WTJGelpTQTFNVEl4T21OaGMyVWdOVEV5TURwNVBUVXhNakU3WW5KbFlXczdZMkZ6WlNBMU1USXpPbU5oYzJVZ05URXlNanA1UFRVeE1qTTdZbkpsWVdzN1kyRnpaU0ExTVRJMU9tTmhjMlVnTlRFeU5EcDVQVFV4TWpWOVl5NWlkV1ptWlhJdVpIUjVjR1U5ZVgxakxuUjVjR1U5ZVR0blBYZzdNRDVuSmlZb1p6MWpMbUoxWm1abGNpNWllWFJsVEdWdVozUm9MRFV4TWpNOVBUMTVQMmMrUGoweE9qVXhNalU5UFQxNUppWW9aejQrUFRJcEtUdGpMblpsY25SRGIzVnVkRDFuTzJjOWNqc3dQbkltSmloblBUUXNjajFqTG1KMVptWmxjaTVrYVcxbGJuTnBiMjRzTVQwOVBYSW1KaWhuUFRBcExESTlQVDF5SmlZb1p6MHhLU3d6UFQwOWNpWW1LR2M5TkNrcE8yTXVjSEpwYlZSNWNHVTlaMzFtZFc1amRHbHZiaUJuS0dFcGUzQXVaV3hsYldWdWRITkRiM1Z1ZEMwdE8xeHVaR1ZzWlhSbElFVmJZUzVwWkYwN1lTNWlkV1ptWlhJdVpHVnpkSEp2ZVNncE8yRXVZblZtWm1WeVBXNTFiR3g5ZG1GeUlFVTllMzBzUXowd0xFNDllM1ZwYm5RNE9qVXhNakVzZFdsdWRERTJPalV4TWpOOU8ySXViMlZ6WDJWc1pXMWxiblJmYVc1a1pYaGZkV2x1ZENZbUtFNHVkV2x1ZERNeVBUVXhNalVwTzNRdWNISnZkRzkwZVhCbExtSnBibVE5Wm5WdVkzUnBiMjRvS1h0MGFHbHpMbUoxWm1abGNpNWlhVzVrS0NsOU8zWmhjaUJ1UFZ0ZE8zSmxkSFZ5Ym50amNtVmhkR1U2Wm5WdVkzUnBiMjRvWVN4aUtYdG1kVzVqZEdsdmJpQnVLR0VwZTJsbUtHRXBhV1lvWENKdWRXMWlaWEpjSWowOVBYUjVjR1Z2WmlCaEtYZ29ZU2tzUXk1d2NtbHRWSGx3WlQwMExFTXVkbVZ5ZEVOdmRXNTBQV0Y4TUN4RExuUjVjR1U5TlRFeU1UdGxiSE5sZTNaaGNpQmlQVzUxYkd3c1p6MHpOVEEwTkN4dFBTMHhMR1k5TFRFc2REMHdMRUk5TUR0cFppaEJjbkpoZVM1cGMwRnljbUY1S0dFcGZIeHNLR0VwZkh4cktHRXBLV0k5WVR0bGJITmxJR2xtS0Z3aVpHRjBZVndpYVc0Z1lTWW1LR0k5WVM1a1lYUmhLU3hjSW5WellXZGxYQ0pwYmlCaEppWW9aejFqVzJFdWRYTmhaMlZkS1N4Y0luQnlhVzFwZEdsMlpWd2lhVzRnWVNZbUtHMDljbHRoTG5CeWFXMXBkR2wyWlYwcExGd2lZMjkxYm5SY0ltbHVJR0VtSmlobVBXRXVZMjkxYm5SOE1Da3NYRzVjSW5SNWNHVmNJbWx1SUdFbUppaENQVTViWVM1MGVYQmxYU2tzWENKc1pXNW5kR2hjSW1sdUlHRXBkRDFoTG14bGJtZDBhSHd3TzJWc2MyVWdhV1lvZEQxbUxEVXhNak05UFQxQ2ZIdzFNVEl5UFQwOVFpbDBLajB5TzJWc2MyVWdhV1lvTlRFeU5UMDlQVUo4ZkRVeE1qUTlQVDFDS1hRcVBUUTdlU2hETEdJc1p5eHRMR1lzZEN4Q0tYMWxiSE5sSUhnb0tTeERMbkJ5YVcxVWVYQmxQVFFzUXk1MlpYSjBRMjkxYm5ROU1DeERMblI1Y0dVOU5URXlNVHR5WlhSMWNtNGdibjEyWVhJZ2VEMW1MbU55WldGMFpTaHVkV3hzTERNME9UWXpMQ0V3S1N4RFBXNWxkeUIwS0hndVgySjFabVpsY2lrN2NDNWxiR1Z0Wlc1MGMwTnZkVzUwS3lzN2JpaGhLVHR1TGw5eVpXZHNWSGx3WlQxY0ltVnNaVzFsYm5SelhDSTdiaTVmWld4bGJXVnVkSE05UXp0dUxuTjFZbVJoZEdFOVpuVnVZM1JwYjI0b1lTeGlLWHQ0TG5OMVltUmhkR0VvWVN4aUtUdHlaWFIxY200Z2JuMDdiaTVrWlhOMGNtOTVQV1oxYm1OMGFXOXVLQ2w3WnloREtYMDdjbVYwZFhKdUlHNTlMR055WldGMFpWTjBjbVZoYlRwbWRXNWpkR2x2YmloaEtYdDJZWElnWWoxdUxuQnZjQ2dwTzJKOGZDaGlQVzVsZHlCMEtHWXVZM0psWVhSbEtHNTFiR3dzTXpRNU5qTXNJVEFzSVRFcExsOWlkV1ptWlhJcEtUdDVLR0lzWVN3ek5UQTBNQ3d0TVN3dE1Td3dMREFwTzNKbGRIVnliaUJpZlN4Y2JtUmxjM1J5YjNsVGRISmxZVzA2Wm5WdVkzUnBiMjRvWVNsN2JpNXdkWE5vS0dFcGZTeG5aWFJGYkdWdFpXNTBjenBtZFc1amRHbHZiaWhoS1h0eVpYUjFjbTVjSW1aMWJtTjBhVzl1WENJOVBUMTBlWEJsYjJZZ1lTWW1ZUzVmWld4bGJXVnVkSE1nYVc1emRHRnVZMlZ2WmlCMFAyRXVYMlZzWlcxbGJuUnpPbTUxYkd4OUxHTnNaV0Z5T21aMWJtTjBhVzl1S0NsN2VDaEZLUzVtYjNKRllXTm9LR2NwZlgxOWZTeDdYQ0l1TDJOdmJuTjBZVzUwY3k5d2NtbHRhWFJwZG1WekxtcHpiMjVjSWpvMUxGd2lMaTlqYjI1emRHRnVkSE12ZFhOaFoyVXVhbk52Ymx3aU9qWXNYQ0l1TDNWMGFXd3ZhWE10Ym1SaGNuSmhlVndpT2pJMUxGd2lMaTkxZEdsc0wybHpMWFI1Y0dWa0xXRnljbUY1WENJNk1qWXNYQ0l1TDNWMGFXd3ZkbUZzZFdWelhDSTZNekY5WFN3eE1EcGJablZ1WTNScGIyNG9aaXh3TEhVcGUzQXVaWGh3YjNKMGN6MW1kVzVqZEdsdmJpaG1MR3NwZTJaMWJtTjBhVzl1SUhnb1lTbDdZVDFoTG5SdlRHOTNaWEpEWVhObEtDazdkbUZ5SUdNN2RISjVlMk05Y2x0aFhUMW1MbWRsZEVWNGRHVnVjMmx2YmloaEtYMWpZWFJqYUNocktYdDljbVYwZFhKdUlTRmpmV1p2Y2loMllYSWdjajE3ZlN4alBUQTdZenhyTG1WNGRHVnVjMmx2Ym5NdWJHVnVaM1JvT3lzcll5bDdkbUZ5SUdFOWF5NWxlSFJsYm5OcGIyNXpXMk5kTzJsbUtDRjRLR0VwS1hKbGRIVnliaUJyTG05dVJHVnpkSEp2ZVNncExGeHVheTV2YmtSdmJtVW9KMXdpSnl0aEt5ZGNJaUJsZUhSbGJuTnBiMjRnYVhNZ2JtOTBJSE4xY0hCdmNuUmxaQ0JpZVNCMGFHVWdZM1Z5Y21WdWRDQlhaV0pIVENCamIyNTBaWGgwTENCMGNua2dkWEJuY21Ga2FXNW5JSGx2ZFhJZ2MzbHpkR1Z0SUc5eUlHRWdaR2xtWm1WeVpXNTBJR0p5YjNkelpYSW5LU3h1ZFd4c2ZXc3ViM0IwYVc5dVlXeEZlSFJsYm5OcGIyNXpMbVp2Y2tWaFkyZ29lQ2s3Y21WMGRYSnVlMlY0ZEdWdWMybHZibk02Y2l4eVpYTjBiM0psT21aMWJtTjBhVzl1S0NsN1QySnFaV04wTG10bGVYTW9jaWt1Wm05eVJXRmphQ2htZFc1amRHbHZiaWhoS1h0cFppZ2hlQ2hoS1NsMGFISnZkeUJGY25KdmNpaGNJaWh5Wldkc0tUb2daWEp5YjNJZ2NtVnpkRzl5YVc1bklHVjRkR1Z1YzJsdmJpQmNJaXRoS1R0OUtYMTlmWDBzZTMxZExERXhPbHRtZFc1amRHbHZiaWhtTEhBc2RTbDdkbUZ5SUd3OVppaGNJaTR2ZFhScGJDOTJZV3gxWlhOY0lpa3NhejFtS0Z3aUxpOTFkR2xzTDJWNGRHVnVaRndpS1N4NFBWdGRPM2hiTmpRd09GMDlORHQyWVhJZ2NqMWJYVHR5V3pVeE1qRmRQVEU3Y2xzMU1USTJYVDAwTzNKYk16WXhPVE5kUFRJN2NDNWxlSEJ2Y25SelBXWjFibU4wYVc5dUtHTXNZU3hpTEdZc2NDeDBLWHRtZFc1amRHbHZiaUI1S0dFc1l5eGlLWHQwYUdsekxuUmhjbWRsZEQxaE8zUm9hWE11ZEdWNGRIVnlaVDFjYm1NN2RHaHBjeTV5Wlc1a1pYSmlkV1ptWlhJOVlqdDJZWElnYUQxaFBUQTdZejhvWVQxakxuZHBaSFJvTEdnOVl5NW9aV2xuYUhRcE9tSW1KaWhoUFdJdWQybGtkR2dzYUQxaUxtaGxhV2RvZENrN2RHaHBjeTUzYVdSMGFEMWhPM1JvYVhNdWFHVnBaMmgwUFdoOVpuVnVZM1JwYjI0Z1p5aGhLWHRoSmlZb1lTNTBaWGgwZFhKbEppWmhMblJsZUhSMWNtVXVYM1JsZUhSMWNtVXVaR1ZqVW1WbUtDa3NZUzV5Wlc1a1pYSmlkV1ptWlhJbUptRXVjbVZ1WkdWeVluVm1abVZ5TGw5eVpXNWtaWEppZFdabVpYSXVaR1ZqVW1WbUtDa3BmV1oxYm1OMGFXOXVJRVVvWVN4akxHSXBlMkVtSmloaExuUmxlSFIxY21VL1lTNTBaWGgwZFhKbExsOTBaWGgwZFhKbExuSmxaa052ZFc1MEt6MHhPbUV1Y21WdVpHVnlZblZtWm1WeUxsOXlaVzVrWlhKaWRXWm1aWEl1Y21WbVEyOTFiblFyUFRFcGZXWjFibU4wYVc5dUlFTW9ZU3hpS1h0aUppWW9ZaTUwWlhoMGRYSmxQMk11Wm5KaGJXVmlkV1ptWlhKVVpYaDBkWEpsTWtRb016WXhOakFzWVN4aUxuUmhjbWRsZEN4aUxuUmxlSFIxY21VdVgzUmxlSFIxY21VdWRHVjRkSFZ5WlN3d0tUcGpMbVp5WVcxbFluVm1abVZ5VW1WdVpHVnlZblZtWm1WeUtETTJNVFl3TEdFc016WXhOakVzWWk1eVpXNWtaWEppZFdabVpYSXVYM0psYm1SbGNtSjFabVpsY2k1eVpXNWtaWEppZFdabVpYSXBLWDFjYm1aMWJtTjBhVzl1SUU0b1lTbDdkbUZ5SUdJOU16VTFNeXhqUFc1MWJHd3NhRDF1ZFd4c0xHYzlZVHRjSW05aWFtVmpkRndpUFQwOWRIbHdaVzltSUdFbUppaG5QV0V1WkdGMFlTeGNJblJoY21kbGRGd2lhVzRnWVNZbUtHSTlZUzUwWVhKblpYUjhNQ2twTzJFOVp5NWZjbVZuYkZSNWNHVTdYQ0owWlhoMGRYSmxNbVJjSWowOVBXRS9ZejFuT2x3aWRHVjRkSFZ5WlVOMVltVmNJajA5UFdFL1l6MW5PbHdpY21WdVpHVnlZblZtWm1WeVhDSTlQVDFoSmlZb2FEMW5MR0k5TXpZeE5qRXBPM0psZEhWeWJpQnVaWGNnZVNoaUxHTXNhQ2w5Wm5WdVkzUnBiMjRnYmloaExHSXNZeXhvTEdjcGUybG1LR01wY21WMGRYSnVJR0U5Wmk1amNtVmhkR1V5UkNoN2QybGtkR2c2WVN4b1pXbG5hSFE2WWl4bWIzSnRZWFE2YUN4MGVYQmxPbWQ5S1N4aExsOTBaWGgwZFhKbExuSmxaa052ZFc1MFBUQXNibVYzSUhrb016VTFNeXhoTEc1MWJHd3BPMkU5Y0M1amNtVmhkR1VvZTNkcFpIUm9PbUVzYUdWcFoyaDBPbUlzWm05eWJXRjBPbWg5S1R0aExsOXlaVzVrWlhKaWRXWm1aWEl1Y21WbVEyOTFiblE5TUR0eVpYUjFjbTRnYm1WM0lIa29Nell4TmpFc2JuVnNiQ3hoS1gxbWRXNWpkR2x2YmlCdEtHRXBlM0psZEhWeWJpQmhKaVlvWVM1MFpYaDBkWEpsZkh4aExuSmxibVJsY21KMVptWmxjaWw5Wm5WdVkzUnBiMjRnUWloaExHSXNZeWw3WVNZbVhHNG9ZUzUwWlhoMGRYSmxQMkV1ZEdWNGRIVnlaUzV5WlhOcGVtVW9ZaXhqS1RwaExuSmxibVJsY21KMVptWmxjaVltWVM1eVpXNWtaWEppZFdabVpYSXVjbVZ6YVhwbEtHSXNZeWtwZldaMWJtTjBhVzl1SUhVb0tYdDBhR2x6TG1sa1BWb3JLenRFVzNSb2FYTXVhV1JkUFhSb2FYTTdkR2hwY3k1bWNtRnRaV0oxWm1abGNqMWpMbU55WldGMFpVWnlZVzFsWW5WbVptVnlLQ2s3ZEdocGN5NW9aV2xuYUhROWRHaHBjeTUzYVdSMGFEMHdPM1JvYVhNdVkyOXNiM0pCZEhSaFkyaHRaVzUwY3oxYlhUdDBhR2x6TG1SbGNIUm9VM1JsYm1OcGJFRjBkR0ZqYUcxbGJuUTlkR2hwY3k1emRHVnVZMmxzUVhSMFlXTm9iV1Z1ZEQxMGFHbHpMbVJsY0hSb1FYUjBZV05vYldWdWREMXVkV3hzZldaMWJtTjBhVzl1SUV3b1lTbDdZUzVqYjJ4dmNrRjBkR0ZqYUcxbGJuUnpMbVp2Y2tWaFkyZ29aeWs3WnloaExtUmxjSFJvUVhSMFlXTm9iV1Z1ZENrN1p5aGhMbk4wWlc1amFXeEJkSFJoWTJodFpXNTBLVHRuS0dFdVpHVndkR2hUZEdWdVkybHNRWFIwWVdOb2JXVnVkQ2w5Wm5WdVkzUnBiMjRnU0NoaEtYdGpMbVJsYkdWMFpVWnlZVzFsWW5WbVptVnlLR0V1Wm5KaGJXVmlkV1ptWlhJcE8yRXVabkpoYldWaWRXWm1aWEk5Ym5Wc2JEdDBMbVp5WVcxbFluVm1abVZ5UTI5MWJuUXRMVHRrWld4bGRHVWdSRnRoTG1sa1hYMWNibVoxYm1OMGFXOXVJR2dvWVNsN2RtRnlJR2c3WXk1aWFXNWtSbkpoYldWaWRXWm1aWElvTXpZeE5qQXNZUzVtY21GdFpXSjFabVpsY2lrN2RtRnlJR2M5WVM1amIyeHZja0YwZEdGamFHMWxiblJ6TzJadmNpaG9QVEE3YUR4bkxteGxibWQwYURzcksyZ3BReWd6TmpBMk5DdG9MR2RiYUYwcE8yWnZjaWhvUFdjdWJHVnVaM1JvTzJnOFlpNXRZWGhEYjJ4dmNrRjBkR0ZqYUcxbGJuUnpPeXNyYUNsakxtWnlZVzFsWW5WbVptVnlWR1Y0ZEhWeVpUSkVLRE0yTVRZd0xETTJNRFkwSzJnc016VTFNeXh1ZFd4c0xEQXBPMk11Wm5KaGJXVmlkV1ptWlhKVVpYaDBkWEpsTWtRb016WXhOakFzTXpNek1EWXNNelUxTXl4dWRXeHNMREFwTzJNdVpuSmhiV1ZpZFdabVpYSlVaWGgwZFhKbE1rUW9Nell4TmpBc016WXdPVFlzTXpVMU15eHVkV3hzTERBcE8yTXVabkpoYldWaWRXWm1aWEpVWlhoMGRYSmxNa1FvTXpZeE5qQXNNell4TWpnc016VTFNeXh1ZFd4c0xEQXBPME1vTXpZd09UWXNZUzVrWlhCMGFFRjBkR0ZqYUcxbGJuUXBPME1vTXpZeE1qZ3NZUzV6ZEdWdVkybHNRWFIwWVdOb2JXVnVkQ2s3UXlnek16TXdOaXhoTG1SbGNIUm9VM1JsYm1OcGJFRjBkR0ZqYUcxbGJuUXBPMk11WTJobFkydEdjbUZ0WldKMVptWmxjbE4wWVhSMWN5Z3pOakUyTUNrN1l5NWlhVzVrUm5KaGJXVmlkV1ptWlhJb016WXhOakFzWEc1TFlTNXVaWGgwS1R0TFlTNWpkWEk5UzJFdWJtVjRkRHRqTG1kbGRFVnljbTl5S0NsOVpuVnVZM1JwYjI0Z1ptRW9ZU3hpS1h0bWRXNWpkR2x2YmlCaktHRXNZaWw3ZG1GeUlHc3NaajB3TEd3OU1DeDBQU0V3TEhrOUlUQTdhejF1ZFd4c08zWmhjaUJDUFNFd0xFTTlYQ0p5WjJKaFhDSXNSajFjSW5WcGJuUTRYQ0lzY0QweExFMDliblZzYkN4SVBXNTFiR3dzZFQxdWRXeHNMRms5SVRFN2FXWW9YQ0p1ZFcxaVpYSmNJajA5UFhSNWNHVnZaaUJoS1dZOVlYd3dMR3c5WW53d2ZIeG1PMlZzYzJVZ2FXWW9ZU2w3WENKemFHRndaVndpYVc0Z1lUOG9iRDFoTG5Ob1lYQmxMR1k5YkZzd1hTeHNQV3hiTVYwcE9paGNJbkpoWkdsMWMxd2lhVzRnWVNZbUtHWTliRDFoTG5KaFpHbDFjeWtzWENKM2FXUjBhRndpYVc0Z1lTWW1LR1k5WVM1M2FXUjBhQ2tzWENKb1pXbG5hSFJjSW1sdUlHRW1KaWhzUFdFdWFHVnBaMmgwS1NrN2FXWW9YQ0pqYjJ4dmNsd2lhVzRnWVh4OFhDSmpiMnh2Y25OY0ltbHVJR0VwYXoxaExtTnZiRzl5Zkh4aExtTnZiRzl5Y3l4QmNuSmhlUzVwYzBGeWNtRjVLR3NwTzJsbUtDRnJLWHRjSW1OdmJHOXlRMjkxYm5SY0ltbHVJR0VtSmlod1BXRXVZMjlzYjNKRGIzVnVkSHd3S1R0Y0ltTnZiRzl5VkdWNGRIVnlaVndpYVc0Z1lTWW1LRUk5SVNGaExtTnZiRzl5VkdWNGRIVnlaU3hEUFZ3aWNtZGlZVFJjSWlrN2FXWW9YQ0pqYjJ4dmNsUjVjR1ZjSW1sdVhHNWhKaVlvUmoxaExtTnZiRzl5Vkhsd1pTd2hRaWtwYVdZb1hDSm9ZV3htSUdac2IyRjBYQ0k5UFQxR2ZIeGNJbVpzYjJGME1UWmNJajA5UFVZcFF6MWNJbkpuWW1FeE5tWmNJanRsYkhObElHbG1LRndpWm14dllYUmNJajA5UFVaOGZGd2labXh2WVhRek1sd2lQVDA5UmlsRFBWd2ljbWRpWVRNeVpsd2lPMXdpWTI5c2IzSkdiM0p0WVhSY0ltbHVJR0VtSmloRFBXRXVZMjlzYjNKR2IzSnRZWFFzTUR3OVRHRXVhVzVrWlhoUFppaERLVDlDUFNFd09qQThQWHBoTG1sdVpHVjRUMllvUXlrbUppaENQU0V4S1NsOWFXWW9YQ0prWlhCMGFGUmxlSFIxY21WY0ltbHVJR0Y4ZkZ3aVpHVndkR2hUZEdWdVkybHNWR1Y0ZEhWeVpWd2lhVzRnWVNsWlBTRW9JV0V1WkdWd2RHaFVaWGgwZFhKbEppWWhZUzVrWlhCMGFGTjBaVzVqYVd4VVpYaDBkWEpsS1R0Y0ltUmxjSFJvWENKcGJpQmhKaVlvWENKaWIyOXNaV0Z1WENJOVBUMTBlWEJsYjJZZ1lTNWtaWEIwYUQ5MFBXRXVaR1Z3ZEdnNktFMDlZUzVrWlhCMGFDeDVQU0V4S1NrN1hDSnpkR1Z1WTJsc1hDSnBiaUJoSmlZb1hDSmliMjlzWldGdVhDSTlQVDEwZVhCbGIyWWdZUzV6ZEdWdVkybHNQM2s5WVM1emRHVnVZMmxzT2loSVBXRXVjM1JsYm1OcGJDeDBQU0V4S1NrN1hDSmtaWEIwYUZOMFpXNWphV3hjSW1sdUlHRW1KaWhjSW1KdmIyeGxZVzVjSWowOVBYUjVjR1Z2WmlCaExtUmxjSFJvVTNSbGJtTnBiRDkwUFhrOVlTNWtaWEIwYUZOMFpXNWphV3c2WEc0b2RUMWhMbVJsY0hSb1UzUmxibU5wYkN4NVBYUTlJVEVwS1gxbGJITmxJR1k5YkQweE8zWmhjaUJFUFc1MWJHd3NabUU5Ym5Wc2JDeExQVzUxYkd3c1R6MXVkV3hzTzJsbUtFRnljbUY1TG1selFYSnlZWGtvYXlrcFJEMXJMbTFoY0NoT0tUdGxiSE5sSUdsbUtHc3BSRDFiVGlocktWMDdaV3h6WlNCbWIzSW9SRDFCY25KaGVTaHdLU3hyUFRBN2F6eHdPeXNyYXlsRVcydGRQVzRvWml4c0xFSXNReXhHS1R0bVBXWjhmRVJiTUYwdWQybGtkR2c3YkQxc2ZIeEVXekJkTG1obGFXZG9kRHROUDJaaFBVNG9UU2s2ZENZbUlYa21KaWhtWVQxdUtHWXNiQ3haTEZ3aVpHVndkR2hjSWl4Y0luVnBiblF6TWx3aUtTazdTRDlMUFU0b1NDazZlU1ltSVhRbUppaExQVzRvWml4c0xDRXhMRndpYzNSbGJtTnBiRndpTEZ3aWRXbHVkRGhjSWlrcE8zVS9UejFPS0hVcE9pRk5KaVloU0NZbWVTWW1kQ1ltS0U4OWJpaG1MR3dzV1N4Y0ltUmxjSFJvSUhOMFpXNWphV3hjSWl4Y0ltUmxjSFJvSUhOMFpXNWphV3hjSWlrcE8zUTliblZzYkR0bWIzSW9hejB3TzJzOFJDNXNaVzVuZEdnN0t5dHJLVVVvUkZ0clhTeG1MR3dwTEVSYmExMG1Ka1JiYTEwdWRHVjRkSFZ5WlNZbUtIazllRnRFVzJ0ZExuUmxlSFIxY21VdVgzUmxlSFIxY21VdVptOXliV0YwWFNweVcwUmJhMTB1ZEdWNGRIVnlaUzVmZEdWNGRIVnlaUzUwZVhCbFhTeHVkV3hzUFQwOVhHNTBKaVlvZEQxNUtTazdSU2htWVN4bUxHd3BPMFVvU3l4bUxHd3BPMFVvVHl4bUxHd3BPMHdvWnlrN1p5NTNhV1IwYUQxbU8yY3VhR1ZwWjJoMFBXdzdaeTVqYjJ4dmNrRjBkR0ZqYUcxbGJuUnpQVVE3Wnk1a1pYQjBhRUYwZEdGamFHMWxiblE5Wm1FN1p5NXpkR1Z1WTJsc1FYUjBZV05vYldWdWREMUxPMmN1WkdWd2RHaFRkR1Z1WTJsc1FYUjBZV05vYldWdWREMVBPMk11WTI5c2IzSTlSQzV0WVhBb2JTazdZeTVrWlhCMGFEMXRLR1poS1R0akxuTjBaVzVqYVd3OWJTaExLVHRqTG1SbGNIUm9VM1JsYm1OcGJEMXRLRThwTzJNdWQybGtkR2c5Wnk1M2FXUjBhRHRqTG1obGFXZG9kRDFuTG1obGFXZG9kRHRvS0djcE8zSmxkSFZ5YmlCamZYWmhjaUJuUFc1bGR5QjFPM1F1Wm5KaGJXVmlkV1ptWlhKRGIzVnVkQ3NyTzJNb1lTeGlLVHR5WlhSMWNtNGdheWhqTEh0eVpYTnBlbVU2Wm5WdVkzUnBiMjRvWVN4aUtYdDJZWElnYXoxaGZEQXNaajFpZkRCOGZHczdhV1lvYXowOVBXY3VkMmxrZEdnbUptWTlQVDFuTG1obGFXZG9kQ2x5WlhSMWNtNGdZenRtYjNJb2RtRnlJRzA5Wnk1amIyeHZja0YwZEdGamFHMWxiblJ6TEd3OU1EdHNQRzB1YkdWdVozUm9PeXNyYkNsQ0tHMWJiRjBzYXl4bUtUdENLR2N1WkdWd2RHaEJkSFJoWTJodFpXNTBMR3NzWmlrN1FpaG5Mbk4wWlc1amFXeEJkSFJoWTJodFpXNTBMRnh1YXl4bUtUdENLR2N1WkdWd2RHaFRkR1Z1WTJsc1FYUjBZV05vYldWdWRDeHJMR1lwTzJjdWQybGtkR2c5WXk1M2FXUjBhRDFyTzJjdWFHVnBaMmgwUFdNdWFHVnBaMmgwUFdZN2FDaG5LVHR5WlhSMWNtNGdZMzBzWDNKbFoyeFVlWEJsT2x3aVpuSmhiV1ZpZFdabVpYSmNJaXhmWm5KaGJXVmlkV1ptWlhJNlp5eGtaWE4wY205NU9tWjFibU4wYVc5dUtDbDdTQ2huS1R0TUtHY3BmWDBwZlhaaGNpQkxZVDE3WTNWeU9tNTFiR3dzYm1WNGREcHVkV3hzTEdScGNuUjVPaUV4ZlN4TVlUMWJYQ0p5WjJKaFhDSmRMSHBoUFZ0Y0luSm5ZbUUwWENJc1hDSnlaMkkxTmpWY0lpeGNJbkpuWWpVZ1lURmNJbDA3WVM1bGVIUmZjM0puWWlZbWVtRXVjSFZ6YUNoY0luTnlaMkpoWENJcE8yRXVaWGgwWDJOdmJHOXlYMkoxWm1abGNsOW9ZV3htWDJac2IyRjBKaVo2WVM1d2RYTm9LRndpY21kaVlURTJabHdpTEZ3aWNtZGlNVFptWENJcE8yRXVkMlZpWjJ4ZlkyOXNiM0pmWW5WbVptVnlYMlpzYjJGMEppWjZZUzV3ZFhOb0tGd2ljbWRpWVRNeVpsd2lLVHQyWVhJZ1IyRTlXMXdpZFdsdWREaGNJbDA3WVM1dlpYTmZkR1Y0ZEhWeVpWOW9ZV3htWDJac2IyRjBKaVpIWVM1d2RYTm9LRndpYUdGc1ppQm1iRzloZEZ3aUxGd2labXh2WVhReE5sd2lLVHRoTG05bGMxOTBaWGgwZFhKbFgyWnNiMkYwSmlaSFlTNXdkWE5vS0Z3aVpteHZZWFJjSWl4Y0ltWnNiMkYwTXpKY0lpazdkbUZ5SUZvOVhHNHdMRVE5ZTMwN2NtVjBkWEp1SUdzb1MyRXNlMmRsZEVaeVlXMWxZblZtWm1WeU9tWjFibU4wYVc5dUtHRXBlM0psZEhWeWJsd2lablZ1WTNScGIyNWNJajA5UFhSNWNHVnZaaUJoSmlaY0ltWnlZVzFsWW5WbVptVnlYQ0k5UFQxaExsOXlaV2RzVkhsd1pTWW1LR0U5WVM1ZlpuSmhiV1ZpZFdabVpYSXNZU0JwYm5OMFlXNWpaVzltSUhVcFAyRTZiblZzYkgwc1kzSmxZWFJsT21aaExHTnlaV0YwWlVOMVltVTZablZ1WTNScGIyNG9ZU2w3Wm5WdVkzUnBiMjRnWXloaEtYdDJZWElnWnl4b1BYdGpiMnh2Y2pwdWRXeHNmU3h0UFRBc2JEMXVkV3hzTzJjOVhDSnlaMkpoWENJN2RtRnlJRzQ5WENKMWFXNTBPRndpTEhJOU1UdHBaaWhjSW01MWJXSmxjbHdpUFQwOWRIbHdaVzltSUdFcGJUMWhmREE3Wld4elpTQnBaaWhoS1h0Y0luTm9ZWEJsWENKcGJpQmhQMjA5WVM1emFHRndaVnN3WFRvb1hDSnlZV1JwZFhOY0ltbHVJR0VtSmlodFBXRXVjbUZrYVhWemZEQXBMRndpZDJsa2RHaGNJbWx1SUdFL2JUMWhMbmRwWkhSb2ZEQTZYQ0pvWldsbmFIUmNJbWx1SUdFbUppaHRQV0V1YUdWcFoyaDBmREFwS1R0cFppaGNJbU52Ykc5eVhDSnBiaUJoZkh4Y0ltTnZiRzl5YzF3aWFXNGdZU2xzUFdFdVkyOXNiM0o4ZkdFdVkyOXNiM0p6TEVGeWNtRjVMbWx6UVhKeVlYa29iQ2s3Ykh4OEtGd2lZMjlzYjNKRGIzVnVkRndpYVc0Z1lTWW1LSEk5WVM1amIyeHZja052ZFc1MGZGeHVNQ2tzWENKamIyeHZjbFI1Y0dWY0ltbHVJR0VtSmlodVBXRXVZMjlzYjNKVWVYQmxLU3hjSW1OdmJHOXlSbTl5YldGMFhDSnBiaUJoSmlZb1p6MWhMbU52Ykc5eVJtOXliV0YwS1NrN1hDSmtaWEIwYUZ3aWFXNGdZU1ltS0dndVpHVndkR2c5WVM1a1pYQjBhQ2s3WENKemRHVnVZMmxzWENKcGJpQmhKaVlvYUM1emRHVnVZMmxzUFdFdWMzUmxibU5wYkNrN1hDSmtaWEIwYUZOMFpXNWphV3hjSW1sdUlHRW1KaWhvTG1SbGNIUm9VM1JsYm1OcGJEMWhMbVJsY0hSb1UzUmxibU5wYkNsOVpXeHpaU0J0UFRFN2FXWW9iQ2xwWmloQmNuSmhlUzVwYzBGeWNtRjVLR3dwS1dadmNpaGhQVnRkTEdjOU1EdG5QR3d1YkdWdVozUm9PeXNyWnlsaFcyZGRQV3hiWjEwN1pXeHpaU0JoUFZ0c1hUdGxiSE5sSUdadmNpaGhQVUZ5Y21GNUtISXBMR3c5ZTNKaFpHbDFjenB0TEdadmNtMWhkRHBuTEhSNWNHVTZibjBzWnowd08yYzhjanNySzJjcFlWdG5YVDFtTG1OeVpXRjBaVU4xWW1Vb2JDazdhQzVqYjJ4dmNqMUJjbkpoZVNoaExteGxibWQwYUNrN1ptOXlLR2M5TUR0blBHRXViR1Z1WjNSb095c3JaeWx5UFdGYloxMHNiVDF0Zkh4eUxuZHBaSFJvTEdndVkyOXNiM0piWjEwOWUzUmhjbWRsZERvek5EQTJPU3hrWVhSaE9tRmJaMTE5TzJadmNpaG5QVEE3Tmo1bk95c3JaeWw3Wm05eUtISTlNRHR5UEdFdWJHVnVaM1JvT3lzcmNpbG9MbU52Ykc5eVczSmRMblJoY21kbGREMWNiak0wTURZNUsyYzdNRHhuSmlZb2FDNWtaWEIwYUQxaVd6QmRMbVJsY0hSb0xHZ3VjM1JsYm1OcGJEMWlXekJkTG5OMFpXNWphV3dzYUM1a1pYQjBhRk4wWlc1amFXdzlZbHN3WFM1a1pYQjBhRk4wWlc1amFXd3BPMmxtS0dKYloxMHBZbHRuWFNob0tUdGxiSE5sSUdKYloxMDlabUVvYUNsOWNtVjBkWEp1SUdzb1l5eDdkMmxrZEdnNmJTeG9aV2xuYUhRNmJTeGpiMnh2Y2pwaGZTbDlkbUZ5SUdJOVFYSnlZWGtvTmlrN1l5aGhLVHR5WlhSMWNtNGdheWhqTEh0bVlXTmxjenBpTEhKbGMybDZaVHBtZFc1amRHbHZiaWhoS1h0MllYSWdaejFoZkRBN2FXWW9aejA5UFdNdWQybGtkR2dwY21WMGRYSnVJR003ZG1GeUlHZzlZeTVqYjJ4dmNqdG1iM0lvWVQwd08yRThhQzVzWlc1bmRHZzdLeXRoS1doYllWMHVjbVZ6YVhwbEtHY3BPMlp2Y2loaFBUQTdOajVoT3lzcllTbGlXMkZkTG5KbGMybDZaU2huS1R0akxuZHBaSFJvUFdNdWFHVnBaMmgwUFdjN2NtVjBkWEp1SUdOOUxGOXlaV2RzVkhsd1pUcGNJbVp5WVcxbFluVm1abVZ5UTNWaVpWd2lMR1JsYzNSeWIzazZablZ1WTNScGIyNG9LWHRpTG1admNrVmhZMmdvWm5WdVkzUnBiMjRvWVNsN1lTNWtaWE4wY205NUtDbDlLWDE5S1gwc1kyeGxZWEk2Wm5WdVkzUnBiMjRvS1h0c0tFUXBMbVp2Y2tWaFkyZ29TQ2w5TEhKbGMzUnZjbVU2Wm5WdVkzUnBiMjRvS1h0c0tFUXBMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNG9ZU2w3WVM1bWNtRnRaV0oxWm1abGNqMWNibU11WTNKbFlYUmxSbkpoYldWaWRXWm1aWElvS1R0b0tHRXBmU2w5ZlNsOWZTeDdYQ0l1TDNWMGFXd3ZaWGgwWlc1a1hDSTZNaklzWENJdUwzVjBhV3d2ZG1Gc2RXVnpYQ0k2TXpGOVhTd3hNanBiWm5WdVkzUnBiMjRvWml4d0xIVXBlM0F1Wlhod2IzSjBjejFtZFc1amRHbHZiaWhtTEdzcGUzWmhjaUI0UFRFN2F5NWxlSFJmZEdWNGRIVnlaVjltYVd4MFpYSmZZVzVwYzI5MGNtOXdhV01tSmloNFBXWXVaMlYwVUdGeVlXMWxkR1Z5S0RNME1EUTNLU2s3ZG1GeUlISTlNU3hqUFRFN2F5NTNaV0puYkY5a2NtRjNYMkoxWm1abGNuTW1KaWh5UFdZdVoyVjBVR0Z5WVcxbGRHVnlLRE0wT0RVeUtTeGpQV1l1WjJWMFVHRnlZVzFsZEdWeUtETTJNRFl6S1NrN2NtVjBkWEp1ZTJOdmJHOXlRbWwwY3pwYlppNW5aWFJRWVhKaGJXVjBaWElvTXpReE1Da3NaaTVuWlhSUVlYSmhiV1YwWlhJb016UXhNU2tzWmk1blpYUlFZWEpoYldWMFpYSW9NelF4TWlrc1ppNW5aWFJRWVhKaGJXVjBaWElvTXpReE15bGRMR1JsY0hSb1FtbDBjenBtTG1kbGRGQmhjbUZ0WlhSbGNpZ3pOREUwS1N4emRHVnVZMmxzUW1sMGN6cG1MbWRsZEZCaGNtRnRaWFJsY2lnek5ERTFLU3h6ZFdKd2FYaGxiRUpwZEhNNlppNW5aWFJRWVhKaGJXVjBaWElvTXpRd09Da3NaWGgwWlc1emFXOXVjenBQWW1wbFkzUXVhMlY1Y3locktTNW1hV3gwWlhJb1puVnVZM1JwYjI0b1lTbDdjbVYwZFhKdUlTRnJXMkZkZlNrc1hHNXRZWGhCYm1semIzUnliM0JwWXpwNExHMWhlRVJ5WVhkaWRXWm1aWEp6T25Jc2JXRjRRMjlzYjNKQmRIUmhZMmh0Wlc1MGN6cGpMSEJ2YVc1MFUybDZaVVJwYlhNNlppNW5aWFJRWVhKaGJXVjBaWElvTXpNNU1ERXBMR3hwYm1WWGFXUjBhRVJwYlhNNlppNW5aWFJRWVhKaGJXVjBaWElvTXpNNU1ESXBMRzFoZUZacFpYZHdiM0owUkdsdGN6cG1MbWRsZEZCaGNtRnRaWFJsY2lnek16ZzJLU3h0WVhoRGIyMWlhVzVsWkZSbGVIUjFjbVZWYm1sMGN6cG1MbWRsZEZCaGNtRnRaWFJsY2lnek5UWTJNU2tzYldGNFEzVmlaVTFoY0ZOcGVtVTZaaTVuWlhSUVlYSmhiV1YwWlhJb016UXdOellwTEcxaGVGSmxibVJsY21KMVptWmxjbE5wZW1VNlppNW5aWFJRWVhKaGJXVjBaWElvTXpRd01qUXBMRzFoZUZSbGVIUjFjbVZWYm1sMGN6cG1MbWRsZEZCaGNtRnRaWFJsY2lnek5Ea3pNQ2tzYldGNFZHVjRkSFZ5WlZOcGVtVTZaaTVuWlhSUVlYSmhiV1YwWlhJb016TTNPU2tzYldGNFFYUjBjbWxpZFhSbGN6cG1MbWRsZEZCaGNtRnRaWFJsY2lnek5Ea3lNU2tzYldGNFZtVnlkR1Y0Vlc1cFptOXliWE02Wmk1blpYUlFZWEpoYldWMFpYSW9Nell6TkRjcExHMWhlRlpsY25SbGVGUmxlSFIxY21WVmJtbDBjenBtTG1kbGRGQmhjbUZ0WlhSbGNpZ3pOVFkyTUNrc2JXRjRWbUZ5ZVdsdVoxWmxZM1J2Y25NNlppNW5aWFJRWVhKaGJXVjBaWElvTXpZek5EZ3BMRnh1YldGNFJuSmhaMjFsYm5SVmJtbG1iM0p0Y3pwbUxtZGxkRkJoY21GdFpYUmxjaWd6TmpNME9Ta3NaMnh6YkRwbUxtZGxkRkJoY21GdFpYUmxjaWd6TlRjeU5Da3NjbVZ1WkdWeVpYSTZaaTVuWlhSUVlYSmhiV1YwWlhJb056a3pOeWtzZG1WdVpHOXlPbVl1WjJWMFVHRnlZVzFsZEdWeUtEYzVNellwTEhabGNuTnBiMjQ2Wmk1blpYUlFZWEpoYldWMFpYSW9Oemt6T0NsOWZYMHNlMzFkTERFek9sdG1kVzVqZEdsdmJpaG1MSEFzZFNsN2RtRnlJR3c5WmloY0lpNHZkWFJwYkM5cGN5MTBlWEJsWkMxaGNuSmhlVndpS1R0d0xtVjRjRzl5ZEhNOVpuVnVZM1JwYjI0b2F5eG1MSElzWXl4aExHSXBlM0psZEhWeWJpQm1kVzVqZEdsdmJpaGhLWHQyWVhJZ1lqdGlQVzUxYkd3OVBUMW1MbTVsZUhRL05URXlNVHBtTG01bGVIUXVZMjlzYjNKQmRIUmhZMmh0Wlc1MGMxc3dYUzUwWlhoMGRYSmxMbDkwWlhoMGRYSmxMblI1Y0dVN2RtRnlJSFE5TUN4NVBUQXNaejFqTG1aeVlXMWxZblZtWm1WeVYybGtkR2dzY0QxakxtWnlZVzFsWW5WbVptVnlTR1ZwWjJoMExFTTliblZzYkR0c0tHRXBQME05WVRwaEppWW9kRDFoTG5oOE1DeDVQV0V1ZVh3d0xHYzlLR0V1ZDJsa2RHaDhmR011Wm5KaGJXVmlkV1ptWlhKWGFXUjBhQzEwS1h3d0xIQTlLR0V1YUdWcFoyaDBmSHhqTG1aeVlXMWxZblZtWm1WeVNHVnBaMmgwTFZ4dWVTbDhNQ3hEUFdFdVpHRjBZWHg4Ym5Wc2JDazdjaWdwTzJFOVp5cHdLalE3UTN4OEtEVXhNakU5UFQxaVAwTTlibVYzSUZWcGJuUTRRWEp5WVhrb1lTazZOVEV5TmowOVBXSW1KaWhEUFVOOGZHNWxkeUJHYkc5aGRETXlRWEp5WVhrb1lTa3BLVHRyTG5CcGVHVnNVM1J2Y21WcEtETXpNek1zTkNrN2F5NXlaV0ZrVUdsNFpXeHpLSFFzZVN4bkxIQXNOalF3T0N4aUxFTXBPM0psZEhWeWJpQkRmWDE5TEh0Y0lpNHZkWFJwYkM5cGN5MTBlWEJsWkMxaGNuSmhlVndpT2pJMmZWMHNNVFE2VzJaMWJtTjBhVzl1S0dZc2NDeDFLWHQyWVhJZ2JEMW1LRndpTGk5MWRHbHNMM1poYkhWbGMxd2lLU3hyUFZ0ZE8ydGJNekk0TlRSZFBUSTdhMXN6TWpnMU5WMDlNanRyV3pNMk1UazBYVDB5TzJ0Yk16TXhPRGxkUFRJN2Exc3pOakUyT0YwOU1UdHJXek0wTURReFhUMDBPMnRiTXpVNU1EZGRQVFE3YTFzek5EZ3pObDA5TVRZN2Exc3pORGcwTWwwOU9EdHJXek0wT0RRelhUMDJPM0F1Wlhod2IzSjBjejFtZFc1amRHbHZiaWhtTEhJc1l5eGhMR0lwZTJaMWJtTjBhVzl1SUhBb1lTbDdkR2hwY3k1cFpEMW5LeXM3ZEdocGN5NXlaV1pEYjNWdWREMHhPM1JvYVhNdWNtVnVaR1Z5WW5WbVptVnlQV0U3ZEdocGN5NW1iM0p0WVhROU16STROVFE3ZEdocGN5NW9aV2xuYUhROWRHaHBjeTUzYVdSMGFEMHdPMkl1Y0hKdlptbHNaU1ltWEc0b2RHaHBjeTV6ZEdGMGN6MTdjMmw2WlRvd2ZTbDlablZ1WTNScGIyNGdUU2hpS1h0MllYSWdZejFpTG5KbGJtUmxjbUoxWm1abGNqdG1MbUpwYm1SU1pXNWtaWEppZFdabVpYSW9Nell4TmpFc2JuVnNiQ2s3Wmk1a1pXeGxkR1ZTWlc1a1pYSmlkV1ptWlhJb1l5azdZaTV5Wlc1a1pYSmlkV1ptWlhJOWJuVnNiRHRpTG5KbFprTnZkVzUwUFRBN1pHVnNaWFJsSUVWYllpNXBaRjA3WVM1eVpXNWtaWEppZFdabVpYSkRiM1Z1ZEMwdGZYWmhjaUIwUFh0eVoySmhORG96TWpnMU5DeHlaMkkxTmpVNk16WXhPVFFzWENKeVoySTFJR0V4WENJNk16STROVFVzWkdWd2RHZzZNek14T0Rrc2MzUmxibU5wYkRvek5qRTJPQ3hjSW1SbGNIUm9JSE4wWlc1amFXeGNJam96TkRBME1YMDdjaTVsZUhSZmMzSm5ZaVltS0hRdWMzSm5ZbUU5TXpVNU1EY3BPM0l1WlhoMFgyTnZiRzl5WDJKMVptWmxjbDlvWVd4bVgyWnNiMkYwSmlZb2RDNXlaMkpoTVRabVBUTTBPRFF5TEhRdWNtZGlNVFptUFRNME9EUXpLVHR5TG5kbFltZHNYMk52Ykc5eVgySjFabVpsY2w5bWJHOWhkQ1ltS0hRdWNtZGlZVE15Wmowek5EZ3pOaWs3ZG1GeUlIazlXMTA3VDJKcVpXTjBMbXRsZVhNb2RDa3VabTl5UldGamFDaG1kVzVqZEdsdmJpaGhLWHQ1VzNSYllWMWRQV0Y5S1R0MllYSWdaejB3TEVVOWUzMDdjQzV3Y205MGIzUjVjR1V1WkdWalVtVm1QVnh1Wm5WdVkzUnBiMjRvS1hzd1BqMHRMWFJvYVhNdWNtVm1RMjkxYm5RbUprMG9kR2hwY3lsOU8ySXVjSEp2Wm1sc1pTWW1LR0V1WjJWMFZHOTBZV3hTWlc1a1pYSmlkV1ptWlhKVGFYcGxQV1oxYm1OMGFXOXVLQ2w3ZG1GeUlHRTlNRHRQWW1wbFkzUXVhMlY1Y3loRktTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUtHSXBlMkVyUFVWYllsMHVjM1JoZEhNdWMybDZaWDBwTzNKbGRIVnliaUJoZlNrN2NtVjBkWEp1ZTJOeVpXRjBaVHBtZFc1amRHbHZiaWhqTEdjcGUyWjFibU4wYVc5dUlHNG9ZU3hqS1h0MllYSWdaejB3TEd3OU1DeG9QVE15T0RVME8xd2liMkpxWldOMFhDSTlQVDEwZVhCbGIyWWdZU1ltWVQ4b1hDSnphR0Z3WlZ3aWFXNGdZVDhvYkQxaExuTm9ZWEJsTEdjOWJGc3dYWHd3TEd3OWJGc3hYWHd3S1Rvb1hDSnlZV1JwZFhOY0ltbHVJR0VtSmloblBXdzlZUzV5WVdScGRYTjhNQ2tzWENKM2FXUjBhRndpYVc0Z1lTWW1LR2M5WVM1M2FXUjBhSHd3S1N4Y0ltaGxhV2RvZEZ3aWFXNGdZU1ltS0d3OVlTNW9aV2xuYUhSOE1Da3BMRndpWm05eWJXRjBYQ0pwYmlCaEppWW9hRDEwVzJFdVptOXliV0YwWFNrcE9sd2liblZ0WW1WeVhDSTlQVDEwZVhCbGIyWWdZVDhvWnoxaGZEQXNiRDFjSW01MWJXSmxjbHdpUFQwOWRIbHdaVzltSUdNL1kzd3dPbWNwT21GOGZDaG5QV3c5TVNrN2FXWW9aeUU5UFcwdWQybGtkR2g4Zkd3aFBUMWNibTB1YUdWcFoyaDBmSHhvSVQwOWJTNW1iM0p0WVhRcGNtVjBkWEp1SUc0dWQybGtkR2c5YlM1M2FXUjBhRDFuTEc0dWFHVnBaMmgwUFcwdWFHVnBaMmgwUFd3c2JTNW1iM0p0WVhROWFDeG1MbUpwYm1SU1pXNWtaWEppZFdabVpYSW9Nell4TmpFc2JTNXlaVzVrWlhKaWRXWm1aWElwTEdZdWNtVnVaR1Z5WW5WbVptVnlVM1J2Y21GblpTZ3pOakUyTVN4b0xHY3NiQ2tzWWk1d2NtOW1hV3hsSmlZb2JTNXpkR0YwY3k1emFYcGxQV3RiYlM1bWIzSnRZWFJkS20wdWQybGtkR2dxYlM1b1pXbG5hSFFwTEc0dVptOXliV0YwUFhsYmJTNW1iM0p0WVhSZExHNTlkbUZ5SUcwOWJtVjNJSEFvWmk1amNtVmhkR1ZTWlc1a1pYSmlkV1ptWlhJb0tTazdSVnR0TG1sa1hUMXRPMkV1Y21WdVpHVnlZblZtWm1WeVEyOTFiblFyS3p0dUtHTXNaeWs3Ymk1eVpYTnBlbVU5Wm5WdVkzUnBiMjRvWVN4aktYdDJZWElnWnoxaGZEQXNiRDFqZkRCOGZHYzdhV1lvWnowOVBXMHVkMmxrZEdnbUptdzlQVDF0TG1obGFXZG9kQ2x5WlhSMWNtNGdianR1TG5kcFpIUm9QVzB1ZDJsa2RHZzlaenR1TG1obGFXZG9kRDF0TG1obGFXZG9kRDFzTzJZdVltbHVaRkpsYm1SbGNtSjFabVpsY2lnek5qRTJNU3h0TG5KbGJtUmxjbUoxWm1abGNpazdaaTV5Wlc1a1pYSmlkV1ptWlhKVGRHOXlZV2RsS0RNMk1UWXhMRzB1Wm05eWJXRjBMRnh1Wnl4c0tUdGlMbkJ5YjJacGJHVW1KaWh0TG5OMFlYUnpMbk5wZW1VOWExdHRMbVp2Y20xaGRGMHFiUzUzYVdSMGFDcHRMbWhsYVdkb2RDazdjbVYwZFhKdUlHNTlPMjR1WDNKbFoyeFVlWEJsUFZ3aWNtVnVaR1Z5WW5WbVptVnlYQ0k3Ymk1ZmNtVnVaR1Z5WW5WbVptVnlQVzA3WWk1d2NtOW1hV3hsSmlZb2JpNXpkR0YwY3oxdExuTjBZWFJ6S1R0dUxtUmxjM1J5YjNrOVpuVnVZM1JwYjI0b0tYdHRMbVJsWTFKbFppZ3BmVHR5WlhSMWNtNGdibjBzWTJ4bFlYSTZablZ1WTNScGIyNG9LWHRzS0VVcExtWnZja1ZoWTJnb1RTbDlMSEpsYzNSdmNtVTZablZ1WTNScGIyNG9LWHRzS0VVcExtWnZja1ZoWTJnb1puVnVZM1JwYjI0b1lTbDdZUzV5Wlc1a1pYSmlkV1ptWlhJOVppNWpjbVZoZEdWU1pXNWtaWEppZFdabVpYSW9LVHRtTG1KcGJtUlNaVzVrWlhKaWRXWm1aWElvTXpZeE5qRXNZUzV5Wlc1a1pYSmlkV1ptWlhJcE8yWXVjbVZ1WkdWeVluVm1abVZ5VTNSdmNtRm5aU2d6TmpFMk1TeGhMbVp2Y20xaGRDeGhMbmRwWkhSb0xHRXVhR1ZwWjJoMEtYMHBPMll1WW1sdVpGSmxibVJsY21KMVptWmxjaWd6TmpFMk1TeHVkV3hzS1gxOWZYMHNlMXdpTGk5MWRHbHNMM1poYkhWbGMxd2lPak14ZlYwc01UVTZXMloxYm1OMGFXOXVLR1lzY0N4MUtYdDJZWElnYkQxbUtGd2lMaTkxZEdsc0wzWmhiSFZsYzF3aUtUdGNibkF1Wlhod2IzSjBjejFtZFc1amRHbHZiaWhtTEhnc2NpeGpLWHRtZFc1amRHbHZiaUJoS0dFc1l5eGlMR2NwZTNSb2FYTXVibUZ0WlQxaE8zUm9hWE11YVdROVl6dDBhR2x6TG14dlkyRjBhVzl1UFdJN2RHaHBjeTVwYm1adlBXZDlablZ1WTNScGIyNGdZaWhoTEdNcGUyWnZjaWgyWVhJZ1lqMHdPMkk4WVM1c1pXNW5kR2c3S3l0aUtXbG1LR0ZiWWwwdWFXUTlQVDFqTG1sa0tYdGhXMkpkTG14dlkyRjBhVzl1UFdNdWJHOWpZWFJwYjI0N2NtVjBkWEp1ZldFdWNIVnphQ2hqS1gxbWRXNWpkR2x2YmlCd0tHRXNZeXhpS1h0aVBUTTFOak15UFQwOVlUOTVPbWM3ZG1GeUlHdzlZbHRqWFR0cFppZ2hiQ2w3ZG1GeUlISTllQzV6ZEhJb1l5a3NiRDFtTG1OeVpXRjBaVk5vWVdSbGNpaGhLVHRtTG5Ob1lXUmxjbE52ZFhKalpTaHNMSElwTzJZdVkyOXRjR2xzWlZOb1lXUmxjaWhzS1R0aVcyTmRQV3g5Y21WMGRYSnVJR3g5Wm5WdVkzUnBiMjRnVFNoaExHSXBlM1JvYVhNdWFXUTlkU3NyTzNSb2FYTXVabkpoWjBsa1BXRTdkR2hwY3k1MlpYSjBTV1E5WWp0MGFHbHpMbkJ5YjJkeVlXMDliblZzYkR0MGFHbHpMblZ1YVdadmNtMXpQVnRkTzNSb2FYTXVZWFIwY21saWRYUmxjejFiWFR0akxuQnliMlpwYkdVbUppaDBhR2x6TG5OMFlYUnpQWHQxYm1sbWIzSnRjME52ZFc1ME9qQXNZWFIwY21saWRYUmxjME52ZFc1ME9qQjlLWDFjYm1aMWJtTjBhVzl1SUhRb1p5eHRLWHQyWVhJZ2JDeHlPMnc5Y0Nnek5UWXpNaXhuTG1aeVlXZEpaQ2s3Y2oxd0tETTFOak16TEdjdWRtVnlkRWxrS1R0MllYSWdkRDFuTG5CeWIyZHlZVzA5Wmk1amNtVmhkR1ZRY205bmNtRnRLQ2s3Wmk1aGRIUmhZMmhUYUdGa1pYSW9kQ3hzS1R0bUxtRjBkR0ZqYUZOb1lXUmxjaWgwTEhJcE8yWXViR2x1YTFCeWIyZHlZVzBvZENrN2RtRnlJSGs5Wmk1blpYUlFjbTluY21GdFVHRnlZVzFsZEdWeUtIUXNNelUzTVRncE8yTXVjSEp2Wm1sc1pTWW1LR2N1YzNSaGRITXVkVzVwWm05eWJYTkRiM1Z1ZEQxNUtUdDJZWElnYUQxbkxuVnVhV1p2Y20xek8yWnZjaWhzUFRBN2JEeDVPeXNyYkNscFppaHlQV1l1WjJWMFFXTjBhWFpsVlc1cFptOXliU2gwTEd3cEtXbG1LREU4Y2k1emFYcGxLV1p2Y2loMllYSWdRejB3TzBNOGNpNXphWHBsT3lzclF5bDdkbUZ5SUVVOWNpNXVZVzFsTG5KbGNHeGhZMlVvWENKYk1GMWNJaXhjSWx0Y0lpdERLMXdpWFZ3aUtUdGlLR2dzYm1WM0lHRW9SU3g0TG1sa0tFVXBMR1l1WjJWMFZXNXBabTl5YlV4dlkyRjBhVzl1S0hRc1JTa3NjaWtwZldWc2MyVWdZaWhvTEc1bGR5QmhLSEl1Ym1GdFpTeDRMbWxrS0hJdWJtRnRaU2tzWmk1blpYUlZibWxtYjNKdFRHOWpZWFJwYjI0b2RDeHlMbTVoYldVcExISXBLVHQ1UFdZdVoyVjBVSEp2WjNKaGJWQmhjbUZ0WlhSbGNpaDBMRnh1TXpVM01qRXBPMk11Y0hKdlptbHNaU1ltS0djdWMzUmhkSE11WVhSMGNtbGlkWFJsYzBOdmRXNTBQWGtwTzJnOVp5NWhkSFJ5YVdKMWRHVnpPMlp2Y2loc1BUQTdiRHg1T3lzcmJDa29jajFtTG1kbGRFRmpkR2wyWlVGMGRISnBZaWgwTEd3cEtTWW1ZaWhvTEc1bGR5QmhLSEl1Ym1GdFpTeDRMbWxrS0hJdWJtRnRaU2tzWmk1blpYUkJkSFJ5YVdKTWIyTmhkR2x2YmloMExISXVibUZ0WlNrc2Npa3BmWFpoY2lCNVBYdDlMR2M5ZTMwc1JUMTdmU3hEUFZ0ZExIVTlNRHRqTG5CeWIyWnBiR1VtSmloeUxtZGxkRTFoZUZWdWFXWnZjbTF6UTI5MWJuUTlablZ1WTNScGIyNG9LWHQyWVhJZ1lUMHdPME11Wm05eVJXRmphQ2htZFc1amRHbHZiaWhpS1h0aUxuTjBZWFJ6TG5WdWFXWnZjbTF6UTI5MWJuUStZU1ltS0dFOVlpNXpkR0YwY3k1MWJtbG1iM0p0YzBOdmRXNTBLWDBwTzNKbGRIVnliaUJoZlN4eUxtZGxkRTFoZUVGMGRISnBZblYwWlhORGIzVnVkRDFtZFc1amRHbHZiaWdwZTNaaGNpQmhQVEE3UXk1bWIzSkZZV05vS0daMWJtTjBhVzl1S0dJcGUySXVjM1JoZEhNdVlYUjBjbWxpZFhSbGMwTnZkVzUwUG1FbUppaGhQV0l1YzNSaGRITXVZWFIwY21saWRYUmxjME52ZFc1MEtYMHBPM0psZEhWeWJpQmhmU2s3Y21WMGRYSnVlMk5zWldGeU9tWjFibU4wYVc5dUtDbDdkbUZ5SUdFOVppNWtaV3hsZEdWVGFHRmtaWEl1WW1sdVpDaG1LVHRjYm13b2VTa3VabTl5UldGamFDaGhLVHQ1UFh0OU8yd29aeWt1Wm05eVJXRmphQ2hoS1R0blBYdDlPME11Wm05eVJXRmphQ2htZFc1amRHbHZiaWhoS1h0bUxtUmxiR1YwWlZCeWIyZHlZVzBvWVM1d2NtOW5jbUZ0S1gwcE8wTXViR1Z1WjNSb1BUQTdSVDE3ZlR0eUxuTm9ZV1JsY2tOdmRXNTBQVEI5TEhCeWIyZHlZVzA2Wm5WdVkzUnBiMjRvWVN4aUxHTXBlM0l1YzJoaFpHVnlRMjkxYm5Rckt6dDJZWElnWnoxRlcySmRPMmQ4ZkNoblBVVmJZbDA5ZTMwcE8zWmhjaUJtUFdkYllWMDdabng4S0dZOWJtVjNJRTBvWWl4aEtTeDBLR1lzWXlrc1oxdGhYVDFtTEVNdWNIVnphQ2htS1NrN2NtVjBkWEp1SUdaOUxISmxjM1J2Y21VNlpuVnVZM1JwYjI0b0tYdDVQWHQ5TzJjOWUzMDdabTl5S0haaGNpQmhQVEE3WVR4RExteGxibWQwYURzcksyRXBkQ2hEVzJGZEtYMHNjMmhoWkdWeU9uQXNabkpoWnpvdE1TeDJaWEowT2kweGZYMTlMSHRjSWk0dmRYUnBiQzkyWVd4MVpYTmNJam96TVgxZExERTJPbHRtZFc1amRHbHZiaWhtTEhBc2RTbDdjQzVsZUhCdmNuUnpQV1oxYm1OMGFXOXVLQ2w3Y21WMGRYSnVlMkoxWm1abGNrTnZkVzUwT2pBc1pXeGxiV1Z1ZEhORGIzVnVkRG93TEdaeVlXMWxZblZtWm1WeVEyOTFiblE2TUN4emFHRmtaWEpEYjNWdWREb3dMSFJsZUhSMWNtVkRiM1Z1ZERvd0xHTjFZbVZEYjNWdWREb3dMRnh1Y21WdVpHVnlZblZtWm1WeVEyOTFiblE2TUN4dFlYaFVaWGgwZFhKbFZXNXBkSE02TUgxOWZTeDdmVjBzTVRjNlcyWjFibU4wYVc5dUtHWXNjQ3gxS1h0d0xtVjRjRzl5ZEhNOVpuVnVZM1JwYjI0b0tYdDJZWElnWmoxN1hDSmNJam93ZlN4clBWdGNJbHdpWFR0eVpYUjFjbTU3YVdRNlpuVnVZM1JwYjI0b2VDbDdkbUZ5SUhJOVpsdDRYVHRwWmloeUtYSmxkSFZ5YmlCeU8zSTlabHQ0WFQxckxteGxibWQwYUR0ckxuQjFjMmdvZUNrN2NtVjBkWEp1SUhKOUxITjBjanBtZFc1amRHbHZiaWhtS1h0eVpYUjFjbTRnYTF0bVhYMTlmWDBzZTMxZExERTRPbHRtZFc1amRHbHZiaWhtTEhBc2RTbDdablZ1WTNScGIyNGdiQ2hoS1h0eVpYUjFjbTRnUVhKeVlYa3VhWE5CY25KaGVTaGhLU1ltS0RBOVBUMWhMbXhsYm1kMGFIeDhYQ0p1ZFcxaVpYSmNJajA5UFhSNWNHVnZaaUJoV3pCZEtYMW1kVzVqZEdsdmJpQnJLR0VwZTNKbGRIVnliaUJCY25KaGVTNXBjMEZ5Y21GNUtHRXBKaVl3SVQwOVlTNXNaVzVuZEdnbUprVW9ZVnN3WFNrL0lUQTZJVEY5Wm5WdVkzUnBiMjRnZUNoaEtYdHlaWFIxY200Z1QySnFaV04wTG5CeWIzUnZkSGx3WlM1MGIxTjBjbWx1Wnk1allXeHNLR0VwZldaMWJtTjBhVzl1SUhJb1lTbDdhV1lvSVdFcGNtVjBkWEp1SVRFN2RtRnlJR0k5ZUNoaEtUdHlaWFIxY200Z01EdzlXUzVwYm1SbGVFOW1LR0lwUDF4dUlUQTZiQ2hoS1h4OGF5aGhLWHg4ZENoaEtYMW1kVzVqZEdsdmJpQmpLR0VzWWlsN016WXhPVE05UFQxaExuUjVjR1UvS0dFdVpHRjBZVDFuS0dJcExIa3VabkpsWlZSNWNHVW9ZaWtwT21FdVpHRjBZVDFpZldaMWJtTjBhVzl1SUdFb1lTeGlMR01zWnl4bUxHc3BlMkU5WENKMWJtUmxabWx1WldSY0lpRTlQWFI1Y0dWdlppQklXMkZkUDBoYllWMDZRbHRoWFNwTVcySmRPMnNtSmloaEtqMDJLVHRwWmlobUtYdG1iM0lvWnowd096RThQV003S1djclBXRXFZeXBqTEdNdlBUSTdjbVYwZFhKdUlHZDljbVYwZFhKdUlHRXFZeXBuZlhaaGNpQmlQV1lvWENJdUwzVjBhV3d2WlhoMFpXNWtYQ0lwTEVZOVppaGNJaTR2ZFhScGJDOTJZV3gxWlhOY0lpa3NUVDFtS0Z3aUxpOTFkR2xzTDJsekxYUjVjR1ZrTFdGeWNtRjVYQ0lwTEhROVppaGNJaTR2ZFhScGJDOXBjeTF1WkdGeWNtRjVYQ0lwTEhrOVppaGNJaTR2ZFhScGJDOXdiMjlzWENJcExHYzlaaWhjSWk0dmRYUnBiQzkwYnkxb1lXeG1MV1pzYjJGMFhDSXBMRVU5WmloY0lpNHZkWFJwYkM5cGN5MWhjbkpoZVMxc2FXdGxYQ0lwTEVNOVppaGNJaTR2ZFhScGJDOW1iR0YwZEdWdVhDSXBPM1U5WmloY0lpNHZZMjl1YzNSaGJuUnpMMkZ5Y21GNWRIbHdaWE11YW5OdmJsd2lLVHQyWVhJZ1RqMW1LRndpTGk5amIyNXpkR0Z1ZEhNdllYSnlZWGwwZVhCbGN5NXFjMjl1WENJcExHNDlXems1T0RRc09UazROaXhjYmprNU9EVXNPVGs0TjEwc2JUMWJNQ3cyTkRBNUxEWTBNVEFzTmpRd055dzJOREE0WFN4Q1BYdDlPMEpiTmpRd09WMDlRbHMyTkRBMlhUMUNXelkwTURKZFBURTdRbHN6TkRBME1WMDlRbHMyTkRFd1hUMHlPMEpiTmpRd04xMDlRbHN6TlRrd05GMDlNenRDV3pZME1EaGRQVUpiTXpVNU1EWmRQVFE3ZG1GeUlGazlUMkpxWldOMExtdGxlWE1vZFNrdVkyOXVZMkYwS0Z0Y0lsdHZZbXBsWTNRZ1NGUk5URU5oYm5aaGMwVnNaVzFsYm5SZFhDSXNYQ0piYjJKcVpXTjBJRU5oYm5aaGMxSmxibVJsY21sdVowTnZiblJsZUhReVJGMWNJaXhjSWx0dlltcGxZM1FnU0ZSTlRFbHRZV2RsUld4bGJXVnVkRjFjSWl4Y0lsdHZZbXBsWTNRZ1NGUk5URlpwWkdWdlJXeGxiV1Z1ZEYxY0lsMHBMRXc5VzEwN1RGczFNVEl4WFQweE8weGJOVEV5TmwwOU5EdE1Xek0yTVRrelhUMHlPMHhiTlRFeU0xMDlNanRNV3pVeE1qVmRQVFE3ZG1GeUlFZzlXMTA3U0Zzek1qZzFORjA5TWp0SVd6TXlPRFUxWFQweU8waGJNell4T1RSZFBUSTdTRnN6TkRBME1WMDlORHRJV3pNek56YzJYVDB1TlR0SVd6TXpOemMzWFQwdU5UdElXek16TnpjNFhUMHhPMGhiTXpNM056bGRQVEU3U0Zzek5UazRObDA5TGpVN1NGc3pOVGs0TjEwOU1UdElXek0wTnprNFhUMHhPMGhiTXpVNE5EQmRQUzQxTzBoYk16VTROREZkUFM0eU5UdElXek0xT0RReVhUMHVOVHRjYmtoYk16VTRORE5kUFM0eU5UdElXek0yTVRrMlhUMHVOVHR3TG1WNGNHOXlkSE05Wm5WdVkzUnBiMjRvYUN4bUxIQXNkU3hJTEV3c1dpbDdablZ1WTNScGIyNGdSQ2dwZTNSb2FYTXVabTl5YldGMFBYUm9hWE11YVc1MFpYSnVZV3htYjNKdFlYUTlOalF3T0R0MGFHbHpMblI1Y0dVOU5URXlNVHQwYUdsekxtWnNhWEJaUFhSb2FYTXVjSEpsYlhWc2RHbHdiSGxCYkhCb1lUMTBhR2x6TG1OdmJYQnlaWE56WldROUlURTdkR2hwY3k1MWJuQmhZMnRCYkdsbmJtMWxiblE5TVR0MGFHbHpMbU5vWVc1dVpXeHpQWFJvYVhNdWFHVnBaMmgwUFhSb2FYTXVkMmxrZEdnOWRHaHBjeTVqYjJ4dmNsTndZV05sUFRCOVpuVnVZM1JwYjI0Z1N5aGhMR0lwZTJFdWFXNTBaWEp1WVd4bWIzSnRZWFE5WWk1cGJuUmxjbTVoYkdadmNtMWhkRHRoTG1admNtMWhkRDFpTG1admNtMWhkRHRoTG5SNWNHVTlZaTUwZVhCbE8yRXVZMjl0Y0hKbGMzTmxaRDFpTG1OdmJYQnlaWE56WldRN1lTNXdjbVZ0ZFd4MGFYQnNlVUZzY0doaFBXSXVjSEpsYlhWc2RHbHdiSGxCYkhCb1lUdGhMbVpzYVhCWlBXSXVabXhwY0ZrN1lTNTFibkJoWTJ0QmJHbG5ibTFsYm5ROVlpNTFibkJoWTJ0QmJHbG5ibTFsYm5RN1lTNWpiMnh2Y2xOd1lXTmxQV0l1WTI5c2IzSlRjR0ZqWlR0aExuZHBaSFJvUFdJdWQybGtkR2c3WVM1b1pXbG5hSFE5WEc1aUxtaGxhV2RvZER0aExtTm9ZVzV1Wld4elBXSXVZMmhoYm01bGJITjlablZ1WTNScGIyNGdXU2hoTEdJcGUybG1LRndpYjJKcVpXTjBYQ0k5UFQxMGVYQmxiMllnWWlZbVlpbDdYQ0p3Y21WdGRXeDBhWEJzZVVGc2NHaGhYQ0pwYmlCaUppWW9ZUzV3Y21WdGRXeDBhWEJzZVVGc2NHaGhQV0l1Y0hKbGJYVnNkR2x3YkhsQmJIQm9ZU2s3WENKbWJHbHdXVndpYVc0Z1lpWW1LR0V1Wm14cGNGazlZaTVtYkdsd1dTazdYQ0poYkdsbmJtMWxiblJjSW1sdUlHSW1KaWhoTG5WdWNHRmphMEZzYVdkdWJXVnVkRDFpTG1Gc2FXZHViV1Z1ZENrN1hDSmpiMnh2Y2xOd1lXTmxYQ0pwYmlCaUppWW9ZUzVqYjJ4dmNsTndZV05sUFhCaFcySXVZMjlzYjNKVGNHRmpaVjBwTzF3aWRIbHdaVndpYVc0Z1lpWW1LR0V1ZEhsd1pUMVdXMkl1ZEhsd1pWMHBPM1poY2lCalBXRXVkMmxrZEdnc1p6MWhMbWhsYVdkb2RDeG9QV0V1WTJoaGJtNWxiSE1zWmowaE1UdGNJbk5vWVhCbFhDSnBiaUJpUHloalBXSXVjMmhoY0dWYk1GMHNaejFpTG5Ob1lYQmxXekZkTERNOVBUMWlMbk5vWVhCbExteGxibWQwYUNZbUtHZzlZaTV6YUdGd1pWc3lYU3htUFNFd0tTazZLRndpY21Ga2FYVnpYQ0pwYmlCaUppWW9ZejFuUFdJdWNtRmthWFZ6S1N4Y0luZHBaSFJvWENKcGJpQmlKaVlvWXoxaUxuZHBaSFJvS1N4Y0ltaGxhV2RvZEZ3aWFXNGdZaVltS0djOVlpNW9aV2xuYUhRcExGeHVYQ0pqYUdGdWJtVnNjMXdpYVc0Z1lpWW1LR2c5WWk1amFHRnVibVZzY3l4bVBTRXdLU2s3WVM1M2FXUjBhRDFqZkRBN1lTNW9aV2xuYUhROVozd3dPMkV1WTJoaGJtNWxiSE05YUh3d08yTTlJVEU3WENKbWIzSnRZWFJjSW1sdUlHSW1KaWhqUFdJdVptOXliV0YwTEdjOVlTNXBiblJsY201aGJHWnZjbTFoZEQxWVcyTmRMR0V1Wm05eWJXRjBQVkJoVzJkZExHTWdhVzRnVmlZbUlTaGNJblI1Y0dWY0ltbHVJR0lwSmlZb1lTNTBlWEJsUFZaYlkxMHBMR01nYVc0Z1ZDWW1LR0V1WTI5dGNISmxjM05sWkQwaE1Da3NZejBoTUNrN0lXWW1KbU0vWVM1amFHRnVibVZzY3oxQ1cyRXVabTl5YldGMFhUcG1KaVloWXlZbVlTNWphR0Z1Ym1Wc2N5RTlQVzFiWVM1bWIzSnRZWFJkSmlZb1lTNW1iM0p0WVhROVlTNXBiblJsY201aGJHWnZjbTFoZEQxdFcyRXVZMmhoYm01bGJITmRLWDE5Wm5WdVkzUnBiMjRnZG1Fb1lTbDdhQzV3YVhobGJGTjBiM0psYVNnek56UTBNQ3hoTG1ac2FYQlpLVHRvTG5CcGVHVnNVM1J2Y21WcEtETTNORFF4TEdFdWNISmxiWFZzZEdsd2JIbEJiSEJvWVNrN2FDNXdhWGhsYkZOMGIzSmxhU2d6TnpRME15eGhMbU52Ykc5eVUzQmhZMlVwTzJndWNHbDRaV3hUZEc5eVpXa29Nek14Tnl4aExuVnVjR0ZqYTBGc2FXZHViV1Z1ZENsOVpuVnVZM1JwYjI0Z2NTZ3BlMFF1WTJGc2JDaDBhR2x6S1R0Y2JuUm9hWE11ZVU5bVpuTmxkRDEwYUdsekxuaFBabVp6WlhROU1EdDBhR2x6TG1SaGRHRTliblZzYkR0MGFHbHpMbTVsWldSelJuSmxaVDBoTVR0MGFHbHpMbVZzWlcxbGJuUTliblZzYkR0MGFHbHpMbTVsWldSelEyOXdlVDBoTVgxbWRXNWpkR2x2YmlCVEtHRXNZaWw3ZG1GeUlHZzliblZzYkR0eUtHSXBQMmc5WWpwaUppWW9XU2hoTEdJcExGd2llRndpYVc0Z1lpWW1LR0V1ZUU5bVpuTmxkRDFpTG5oOE1Da3NYQ0o1WENKcGJpQmlKaVlvWVM1NVQyWm1jMlYwUFdJdWVYd3dLU3h5S0dJdVpHRjBZU2ttSmlob1BXSXVaR0YwWVNrcE8ybG1LR0l1WTI5d2VTbDdkbUZ5SUdZOVNDNTJhV1YzY0c5eWRGZHBaSFJvTEc0OVNDNTJhV1YzY0c5eWRFaGxhV2RvZER0aExuZHBaSFJvUFdFdWQybGtkR2g4ZkdZdFlTNTRUMlptYzJWME8yRXVhR1ZwWjJoMFBXRXVhR1ZwWjJoMGZIeHVMV0V1ZVU5bVpuTmxkRHRoTG01bFpXUnpRMjl3ZVQwaE1IMWxiSE5sSUdsbUtDRm9LV0V1ZDJsa2RHZzlZUzUzYVdSMGFIeDhNU3hoTG1obGFXZG9kRDFoTG1obGFXZG9kSHg4TVN4aExtTm9ZVzV1Wld4elBXRXVZMmhoYm01bGJITjhmRFE3Wld4elpTQnBaaWhOS0dncEtXRXVZMmhoYm01bGJITTlZUzVqYUdGdWJtVnNjM3g4TkN4aExtUmhkR0U5YUN4Y0luUjVjR1ZjSW1sdUlHSjhmRFV4TWpFaFBUMWhMblI1Y0dWOGZDaGhMblI1Y0dVOVhHNU9XMDlpYW1WamRDNXdjbTkwYjNSNWNHVXVkRzlUZEhKcGJtY3VZMkZzYkNob0tWMThNQ2s3Wld4elpTQnBaaWhzS0dncEtYdGhMbU5vWVc1dVpXeHpQV0V1WTJoaGJtNWxiSE44ZkRRN1pqMW9PMjQ5Wmk1c1pXNW5kR2c3YzNkcGRHTm9LR0V1ZEhsd1pTbDdZMkZ6WlNBMU1USXhPbU5oYzJVZ05URXlNenBqWVhObElEVXhNalU2WTJGelpTQTFNVEkyT200OWVTNWhiR3h2WTFSNWNHVW9ZUzUwZVhCbExHNHBPMjR1YzJWMEtHWXBPMkV1WkdGMFlUMXVPMkp5WldGck8yTmhjMlVnTXpZeE9UTTZZUzVrWVhSaFBXY29aaWw5WVM1aGJHbG5ibTFsYm5ROU1UdGhMbTVsWldSelJuSmxaVDBoTUgxbGJITmxJR2xtS0hRb2FDa3BlMlk5YUM1a1lYUmhPMEZ5Y21GNUxtbHpRWEp5WVhrb1ppbDhmRFV4TWpFaFBUMWhMblI1Y0dWOGZDaGhMblI1Y0dVOVRsdFBZbXBsWTNRdWNISnZkRzkwZVhCbExuUnZVM1J5YVc1bkxtTmhiR3dvWmlsZGZEQXBPM1poY2lCdVBXZ3VjMmhoY0dVc2NUMW9Mbk4wY21sa1pTeHdMRVlzWkN4Mk96TTlQVDF1TG14bGJtZDBhRDhvWkQxdVd6SmRMSFk5Y1ZzeVhTazZkajFrUFRFN2NEMXVXekJkTzBZOWJsc3hYVHR1UFhGYk1GMDdjVDF4V3pGZE8yRXVZV3hwWjI1dFpXNTBQVEU3WVM1M2FXUjBhRDF3TzJFdWFHVnBaMmgwUFVZN1lTNWphR0Z1Ym1Wc2N6MWtPMkV1Wm05eWJXRjBQVnh1WVM1cGJuUmxjbTVoYkdadmNtMWhkRDF0VzJSZE8yRXVibVZsWkhOR2NtVmxQU0V3TzNBOWRqdG9QV2d1YjJabWMyVjBPMlE5WVM1M2FXUjBhRHQyUFdFdWFHVnBaMmgwTzBZOVlTNWphR0Z1Ym1Wc2N6dG1iM0lvZG1GeUlIVTllUzVoYkd4dlkxUjVjR1VvTXpZeE9UTTlQVDFoTG5SNWNHVS9OVEV5TmpwaExuUjVjR1VzWkNwMktrWXBMRUk5TUN4QlBUQTdRVHgyT3lzclFTbG1iM0lvZG1GeUlFUTlNRHRFUEdRN0t5dEVLV1p2Y2loMllYSWdkV0U5TUR0MVlUeEdPeXNyZFdFcGRWdENLeXRkUFdaYmJpcEVLM0VxUVN0d0tuVmhLMmhkTzJNb1lTeDFLWDFsYkhObElHbG1LRndpVzI5aWFtVmpkQ0JJVkUxTVEyRnVkbUZ6Uld4bGJXVnVkRjFjSWowOVBYZ29hQ2w4ZkZ3aVcyOWlhbVZqZENCRFlXNTJZWE5TWlc1a1pYSnBibWREYjI1MFpYaDBNa1JkWENJOVBUMTRLR2dwS1Z3aVcyOWlhbVZqZENCSVZFMU1RMkZ1ZG1GelJXeGxiV1Z1ZEYxY0lqMDlQWGdvYUNrL1lTNWxiR1Z0Wlc1MFBXZzZZUzVsYkdWdFpXNTBQV2d1WTJGdWRtRnpMR0V1ZDJsa2RHZzlZUzVsYkdWdFpXNTBMbmRwWkhSb0xHRXVhR1ZwWjJoMFBXRXVaV3hsYldWdWRDNW9aV2xuYUhRc1lTNWphR0Z1Ym1Wc2N6MDBPMlZzYzJVZ2FXWW9YQ0piYjJKcVpXTjBJRWhVVFV4SmJXRm5aVVZzWlcxbGJuUmRYQ0k5UFQxNEtHZ3BLV0V1Wld4bGJXVnVkRDFjYm1nc1lTNTNhV1IwYUQxb0xtNWhkSFZ5WVd4WGFXUjBhQ3hoTG1obGFXZG9kRDFvTG01aGRIVnlZV3hJWldsbmFIUXNZUzVqYUdGdWJtVnNjejAwTzJWc2MyVWdhV1lvWENKYmIySnFaV04wSUVoVVRVeFdhV1JsYjBWc1pXMWxiblJkWENJOVBUMTRLR2dwS1dFdVpXeGxiV1Z1ZEQxb0xHRXVkMmxrZEdnOWFDNTJhV1JsYjFkcFpIUm9MR0V1YUdWcFoyaDBQV2d1ZG1sa1pXOUlaV2xuYUhRc1lTNWphR0Z1Ym1Wc2N6MDBPMlZzYzJVZ2FXWW9heWhvS1NsN1pqMWhMbmRwWkhSb2ZIeG9XekJkTG14bGJtZDBhRHR1UFdFdWFHVnBaMmgwZkh4b0xteGxibWQwYUR0eFBXRXVZMmhoYm01bGJITTdjVDFGS0doYk1GMWJNRjBwUDNGOGZHaGJNRjFiTUYwdWJHVnVaM1JvT25GOGZERTdjRDFETG5Ob1lYQmxLR2dwTzJROU1UdG1iM0lvZGowd08zWThjQzVzWlc1bmRHZzdLeXQyS1dRcVBYQmJkbDA3WkQxNUxtRnNiRzlqVkhsd1pTZ3pOakU1TXowOVBXRXVkSGx3WlQ4MU1USTJPbUV1ZEhsd1pTeGtLVHRETG1ac1lYUjBaVzRvYUN4d0xGd2lYQ0lzWkNrN1l5aGhMR1FwTzJFdVlXeHBaMjV0Wlc1MFBURTdZUzUzYVdSMGFEMW1PMkV1YUdWcFoyaDBQVzQ3WVM1amFHRnVibVZzY3oxeE8yRXVabTl5YldGMFBXRXVhVzUwWlhKdVlXeG1iM0p0WVhROWJWdHhYVHRoTG01bFpXUnpSbkpsWlQwaE1IMTlablZ1WTNScGIyNGdiV0VvWVN4Y2JtSXNZeXhuTEdZcGUzWmhjaUJyUFdFdVpXeGxiV1Z1ZEN4c1BXRXVaR0YwWVN4dFBXRXVhVzUwWlhKdVlXeG1iM0p0WVhRc1pEMWhMbVp2Y20xaGRDeHlQV0V1ZEhsd1pTeHVQV0V1ZDJsa2RHZ3NjVDFoTG1obGFXZG9kRHQyWVNoaEtUdHJQMmd1ZEdWNFUzVmlTVzFoWjJVeVJDaGlMR1lzWXl4bkxHUXNjaXhyS1RwaExtTnZiWEJ5WlhOelpXUS9hQzVqYjIxd2NtVnpjMlZrVkdWNFUzVmlTVzFoWjJVeVJDaGlMR1lzWXl4bkxHMHNiaXh4TEd3cE9tRXVibVZsWkhORGIzQjVQeWgxS0Nrc2FDNWpiM0I1VkdWNFUzVmlTVzFoWjJVeVJDaGlMR1lzWXl4bkxHRXVlRTltWm5ObGRDeGhMbmxQWm1aelpYUXNiaXh4S1NrNmFDNTBaWGhUZFdKSmJXRm5aVEpFS0dJc1ppeGpMR2NzYml4eExHUXNjaXhzS1gxbWRXNWpkR2x2YmlCbllTZ3BlM0psZEhWeWJpQk9ZUzV3YjNBb0tYeDhibVYzSUhGOVpuVnVZM1JwYjI0Z1Z5aGhLWHRoTG01bFpXUnpSbkpsWlNZbWVTNW1jbVZsVkhsd1pTaGhMbVJoZEdFcE8zRXVZMkZzYkNoaEtUdE9ZUzV3ZFhOb0tHRXBmV1oxYm1OMGFXOXVJRklvS1h0RUxtTmhiR3dvZEdocGN5azdkR2hwY3k1blpXNU5hWEJ0WVhCelBTRXhPM1JvYVhNdWJXbHdiV0Z3U0dsdWREMDBNelV5TzNSb2FYTXViV2x3YldGemF6MHdPM1JvYVhNdWFXMWhaMlZ6UFVGeWNtRjVLREUyS1gxY2JtWjFibU4wYVc5dUlFY29ZU3hpTEdNcGUzWmhjaUJuUFdFdWFXMWhaMlZ6V3pCZFBXZGhLQ2s3WVM1dGFYQnRZWE5yUFRFN1p5NTNhV1IwYUQxaExuZHBaSFJvUFdJN1p5NW9aV2xuYUhROVlTNW9aV2xuYUhROVl6dG5MbU5vWVc1dVpXeHpQV0V1WTJoaGJtNWxiSE05TkgxbWRXNWpkR2x2YmlCaVlTaGhMR0lwZTNaaGNpQmpQVzUxYkd3N2FXWW9jaWhpS1NsalBXRXVhVzFoWjJWeld6QmRQV2RoS0Nrc1N5aGpMR0VwTEZNb1l5eGlLU3hoTG0xcGNHMWhjMnM5TVR0bGJITmxJR2xtS0Zrb1lTeGlLU3hCY25KaGVTNXBjMEZ5Y21GNUtHSXViV2x3YldGd0tTbG1iM0lvZG1GeUlHYzlZaTV0YVhCdFlYQXNhRDB3TzJnOFp5NXNaVzVuZEdnN0t5dG9LV005WVM1cGJXRm5aWE5iYUYwOVoyRW9LU3hMS0dNc1lTa3NZeTUzYVdSMGFENCtQV2dzWXk1b1pXbG5hSFErUGoxb0xGTW9ZeXhuVzJoZEtTeGhMbTFwY0cxaGMydDhQVEU4UEdnN1pXeHpaU0JqUFdFdWFXMWhaMlZ6V3pCZFBXZGhLQ2tzU3loakxHRXBMRk1vWXl4aUtTeGhMbTFwY0cxaGMyczlNVHRMS0dFc1lTNXBiV0ZuWlhOYk1GMHBmV1oxYm1OMGFXOXVJRzVoS0dFc1lpbDdabTl5S0haaGNpQmpQV0V1YVcxaFoyVnpMR2M5TUR0blBHTXViR1Z1WjNSb0ppWmpXMmRkT3lzclp5bDdkbUZ5SUdZOVkxdG5YU3hyUFdJc2JEMW5MRzA5Wmk1bGJHVnRaVzUwTEZ4dVpEMW1MbVJoZEdFc2NqMW1MbWx1ZEdWeWJtRnNabTl5YldGMExHNDlaaTVtYjNKdFlYUXNjVDFtTG5SNWNHVXNkRDFtTG5kcFpIUm9MSGs5Wmk1b1pXbG5hSFE3ZG1Fb1ppazdiVDlvTG5SbGVFbHRZV2RsTWtRb2F5eHNMRzRzYml4eExHMHBPbVl1WTI5dGNISmxjM05sWkQ5b0xtTnZiWEJ5WlhOelpXUlVaWGhKYldGblpUSkVLR3NzYkN4eUxIUXNlU3d3TEdRcE9tWXVibVZsWkhORGIzQjVQeWgxS0Nrc2FDNWpiM0I1VkdWNFNXMWhaMlV5UkNockxHd3NiaXhtTG5oUFptWnpaWFFzWmk1NVQyWm1jMlYwTEhRc2VTd3dLU2s2YUM1MFpYaEpiV0ZuWlRKRUtHc3NiQ3h1TEhRc2VTd3dMRzRzY1N4a0tYMTlablZ1WTNScGIyNGdlV0VvS1h0MllYSWdZVDFLWVM1d2IzQW9LWHg4Ym1WM0lGSTdSQzVqWVd4c0tHRXBPMlp2Y2loMllYSWdZajFoTG0xcGNHMWhjMnM5TURzeE5qNWlPeXNyWWlsaExtbHRZV2RsYzF0aVhUMXVkV3hzTzNKbGRIVnliaUJoZldaMWJtTjBhVzl1SUZVb1lTbDdabTl5S0haaGNpQmlQV0V1YVcxaFoyVnpMR005TUR0alBHSXViR1Z1WjNSb095c3JZeWxpVzJOZEppWlhLR0piWTEwcExHSmJZMTA5Ym5Wc2JEdEtZUzV3ZFhOb0tHRXBmV1oxYm1OMGFXOXVJR2xoS0NsN2RHaHBjeTV0WVdkR2FXeDBaWEk5ZEdocGN5NXRhVzVHYVd4MFpYSTlPVGN5T0R0MGFHbHpMbmR5WVhCVVBWeHVkR2hwY3k1M2NtRndVejB6TXpBM01UdDBhR2x6TG1GdWFYTnZkSEp2Y0dsalBURTdkR2hwY3k1blpXNU5hWEJ0WVhCelBTRXhPM1JvYVhNdWJXbHdiV0Z3U0dsdWREMDBNelV5ZldaMWJtTjBhVzl1SUd0aEtHRXNZaWw3WENKdGFXNWNJbWx1SUdJbUppaGhMbTFwYmtacGJIUmxjajFSVzJJdWJXbHVYU3d3UEQxdUxtbHVaR1Y0VDJZb1lTNXRhVzVHYVd4MFpYSXBKaVlvWVM1blpXNU5hWEJ0WVhCelBTRXdLU2s3WENKdFlXZGNJbWx1SUdJbUppaGhMbTFoWjBacGJIUmxjajFvWVZ0aUxtMWhaMTBwTzNaaGNpQmpQV0V1ZDNKaGNGTXNaejFoTG5keVlYQlVPMmxtS0Z3aWQzSmhjRndpYVc0Z1lpbDdkbUZ5SUdnOVlpNTNjbUZ3TzF3aWMzUnlhVzVuWENJOVBUMTBlWEJsYjJZZ2FEOWpQV2M5VDF0b1hUcEJjbkpoZVM1cGMwRnljbUY1S0dncEppWW9ZejFQVzJoYk1GMWRMR2M5VDF0b1d6RmRYU2w5Wld4elpWd2lkM0poY0ZOY0ltbHVJR0ltSmloalBVOWJZaTUzY21Gd1UxMHBMRndpZDNKaGNGUmNJbWx1SUdJbUppaG5QVTliWWk1M2NtRndWRjBwTzJFdWQzSmhjRk05WXp0aExuZHlZWEJVUFdjN1hDSmhibWx6YjNSeWIzQnBZMXdpYVc0Z1lpWW1LR0V1WVc1cGMyOTBjbTl3YVdNOVlpNWhibWx6YjNSeWIzQnBZeWs3YVdZb1hDSnRhWEJ0WVhCY0ltbHVJR0lwZTJNOUlURTdjM2RwZEdOb0tIUjVjR1Z2WmlCaUxtMXBjRzFoY0NsN1kyRnpaU0JjSW5OMGNtbHVaMXdpT21FdWJXbHdiV0Z3U0dsdWREMWNibVZoVzJJdWJXbHdiV0Z3WFR0alBXRXVaMlZ1VFdsd2JXRndjejBoTUR0aWNtVmhhenRqWVhObElGd2lZbTl2YkdWaGJsd2lPbU05WVM1blpXNU5hWEJ0WVhCelBXSXViV2x3YldGd08ySnlaV0ZyTzJOaGMyVWdYQ0p2WW1wbFkzUmNJanBoTG1kbGJrMXBjRzFoY0hNOUlURXNZejBoTUgwaFkzeDhYQ0p0YVc1Y0ltbHVJR0o4ZkNoaExtMXBia1pwYkhSbGNqMDVPVGcwS1gxOVpuVnVZM1JwYjI0Z2NtRW9ZU3hpS1h0b0xuUmxlRkJoY21GdFpYUmxjbWtvWWl3eE1ESTBNU3hoTG0xcGJrWnBiSFJsY2lrN2FDNTBaWGhRWVhKaGJXVjBaWEpwS0dJc01UQXlOREFzWVM1dFlXZEdhV3gwWlhJcE8yZ3VkR1Y0VUdGeVlXMWxkR1Z5YVNoaUxERXdNalF5TEdFdWQzSmhjRk1wTzJndWRHVjRVR0Z5WVcxbGRHVnlhU2hpTERFd01qUXpMR0V1ZDNKaGNGUXBPMll1WlhoMFgzUmxlSFIxY21WZlptbHNkR1Z5WDJGdWFYTnZkSEp2Y0dsakppWm9MblJsZUZCaGNtRnRaWFJsY21rb1lpd3pOREEwTml4aExtRnVhWE52ZEhKdmNHbGpLVHRoTG1kbGJrMXBjRzFoY0hNbUppaG9MbWhwYm5Rb016TXhOekFzWVM1dGFYQnRZWEJJYVc1MEtTeG9MbWRsYm1WeVlYUmxUV2x3YldGd0tHSXBLWDFtZFc1amRHbHZiaUJ6WVNoaEtYdEVMbU5oYkd3b2RHaHBjeWs3ZEdocGN5NXRhWEJ0WVhOclBUQTdkR2hwY3k1cGJuUmxjbTVoYkdadmNtMWhkRDFjYmpZME1EZzdkR2hwY3k1cFpEMUNZU3NyTzNSb2FYTXVjbVZtUTI5MWJuUTlNVHQwYUdsekxuUmhjbWRsZEQxaE8zUm9hWE11ZEdWNGRIVnlaVDFvTG1OeVpXRjBaVlJsZUhSMWNtVW9LVHQwYUdsekxuVnVhWFE5TFRFN2RHaHBjeTVpYVc1a1EyOTFiblE5TUR0MGFHbHpMblJsZUVsdVptODlibVYzSUdsaE8xb3VjSEp2Wm1sc1pTWW1LSFJvYVhNdWMzUmhkSE05ZTNOcGVtVTZNSDBwZldaMWJtTjBhVzl1SUdSaEtHRXBlMmd1WVdOMGFYWmxWR1Y0ZEhWeVpTZ3pNems0TkNrN2FDNWlhVzVrVkdWNGRIVnlaU2hoTG5SaGNtZGxkQ3hoTG5SbGVIUjFjbVVwZldaMWJtTjBhVzl1SUdwaEtDbDdkbUZ5SUdFOWIyRmJNRjA3WVQ5b0xtSnBibVJVWlhoMGRYSmxLR0V1ZEdGeVoyVjBMR0V1ZEdWNGRIVnlaU2s2YUM1aWFXNWtWR1Y0ZEhWeVpTZ3pOVFV6TEc1MWJHd3BmV1oxYm1OMGFXOXVJR3hoS0dFcGUzWmhjaUJpUFdFdWRHVjRkSFZ5WlN4alBXRXVkVzVwZEN4blBXRXVkR0Z5WjJWME96QThQV01tSmlob0xtRmpkR2wyWlZSbGVIUjFjbVVvTXpNNU9EUXJZeWtzYUM1aWFXNWtWR1Y0ZEhWeVpTaG5MRzUxYkd3cExHOWhXMk5kUFc1MWJHd3BPMmd1WkdWc1pYUmxWR1Y0ZEhWeVpTaGlLVHRoTG5SbGVIUjFjbVU5Ym5Wc2JEdGhMbkJoY21GdGN6MXVkV3hzTzJFdWNHbDRaV3h6UFc1MWJHdzdZUzV5WldaRGIzVnVkRDFjYmpBN1pHVnNaWFJsSUdOaFcyRXVhV1JkTzB3dWRHVjRkSFZ5WlVOdmRXNTBMUzE5ZG1GeUlHVmhQWHRjSW1SdmJpZDBJR05oY21WY0lqbzBNelV5TEZ3aVpHOXVkQ0JqWVhKbFhDSTZORE0xTWl4dWFXTmxPalF6TlRRc1ptRnpkRG8wTXpVemZTeFBQWHR5WlhCbFlYUTZNVEEwT1Rjc1kyeGhiWEE2TXpNd056RXNiV2x5Y205eU9qTXpOalE0ZlN4b1lUMTdibVZoY21WemREbzVOekk0TEd4cGJtVmhjam81TnpJNWZTeFJQV0lvZTIxcGNHMWhjRG81T1RnM0xGd2libVZoY21WemRDQnRhWEJ0WVhBZ2JtVmhjbVZ6ZEZ3aU9qazVPRFFzWENKc2FXNWxZWElnYldsd2JXRndJRzVsWVhKbGMzUmNJam81T1RnMUxGd2libVZoY21WemRDQnRhWEJ0WVhBZ2JHbHVaV0Z5WENJNk9UazROaXhjSW14cGJtVmhjaUJ0YVhCdFlYQWdiR2x1WldGeVhDSTZPVGs0TjMwc2FHRXBMSEJoUFh0dWIyNWxPakFzWW5KdmQzTmxjam96TnpRME5IMHNWajE3ZFdsdWREZzZOVEV5TVN4eVoySmhORG96TWpneE9TeHlaMkkxTmpVNk16TTJNelVzWENKeVoySTFJR0V4WENJNk16STRNakI5TEZnOWUyRnNjR2hoT2pZME1EWXNiSFZ0YVc1aGJtTmxPalkwTURrc1hDSnNkVzFwYm1GdVkyVWdZV3h3YUdGY0lqbzJOREV3TEhKbllqbzJOREEzTEhKblltRTZOalF3T0N4eVoySmhORG96TWpnMU5DeGNJbkpuWWpVZ1lURmNJam96TWpnMU5TeHlaMkkxTmpVNk16WXhPVFI5TEZ4dVZEMTdmVHRtTG1WNGRGOXpjbWRpSmlZb1dDNXpjbWRpUFRNMU9UQTBMRmd1YzNKblltRTlNelU1TURZcE8yWXViMlZ6WDNSbGVIUjFjbVZmWm14dllYUW1KaWhXTG1ac2IyRjBNekk5Vmx0Y0ltWnNiMkYwWENKZFBUVXhNallwTzJZdWIyVnpYM1JsZUhSMWNtVmZhR0ZzWmw5bWJHOWhkQ1ltS0ZZdVpteHZZWFF4TmoxV1cxd2lhR0ZzWmlCbWJHOWhkRndpWFQwek5qRTVNeWs3Wmk1M1pXSm5iRjlrWlhCMGFGOTBaWGgwZFhKbEppWW9ZaWhZTEh0a1pYQjBhRG8yTkRBeUxGd2laR1Z3ZEdnZ2MzUmxibU5wYkZ3aU9qTTBNRFF4ZlNrc1lpaFdMSHQxYVc1ME1UWTZOVEV5TXl4MWFXNTBNekk2TlRFeU5TeGNJbVJsY0hSb0lITjBaVzVqYVd4Y0lqb3pOREEwTW4wcEtUdG1MbmRsWW1kc1gyTnZiWEJ5WlhOelpXUmZkR1Y0ZEhWeVpWOXpNM1JqSmlaaUtGUXNlMXdpY21kaUlITXpkR01nWkhoME1Wd2lPak16TnpjMkxGd2ljbWRpWVNCek0zUmpJR1I0ZERGY0lqb3pNemMzTnl4Y0luSm5ZbUVnY3pOMFl5QmtlSFF6WENJNk16TTNOemdzWENKeVoySmhJSE16ZEdNZ1pIaDBOVndpT2pNek56YzVmU2s3Wmk1M1pXSm5iRjlqYjIxd2NtVnpjMlZrWDNSbGVIUjFjbVZmWVhSakppWmlLRlFzZTF3aWNtZGlJR0YwWTF3aU9qTTFPVGcyTEZ3aWNtZGlZU0JoZEdNZ1pYaHdiR2xqYVhRZ1lXeHdhR0ZjSWpvek5UazROeXhjSW5KblltRWdZWFJqSUdsdWRHVnljRzlzWVhSbFpDQmhiSEJvWVZ3aU9qTTBOems0ZlNrN1hHNW1MbmRsWW1kc1gyTnZiWEJ5WlhOelpXUmZkR1Y0ZEhWeVpWOXdkbkowWXlZbVlpaFVMSHRjSW5KbllpQndkbkowWXlBMFluQndkakZjSWpvek5UZzBNQ3hjSW5KbllpQndkbkowWXlBeVluQndkakZjSWpvek5UZzBNU3hjSW5KblltRWdjSFp5ZEdNZ05HSndjSFl4WENJNk16VTRORElzWENKeVoySmhJSEIyY25SaklESmljSEIyTVZ3aU9qTTFPRFF6ZlNrN1ppNTNaV0puYkY5amIyMXdjbVZ6YzJWa1gzUmxlSFIxY21WZlpYUmpNU1ltS0ZSYlhDSnlaMklnWlhSak1Wd2lYVDB6TmpFNU5pazdkbUZ5SUhWaFBVRnljbUY1TG5CeWIzUnZkSGx3WlM1emJHbGpaUzVqWVd4c0tHZ3VaMlYwVUdGeVlXMWxkR1Z5S0RNME5EWTNLU2s3VDJKcVpXTjBMbXRsZVhNb1ZDa3VabTl5UldGamFDaG1kVzVqZEdsdmJpaGhLWHQyWVhJZ1lqMVVXMkZkT3pBOFBYVmhMbWx1WkdWNFQyWW9ZaWttSmloWVcyRmRQV0lwZlNrN2RtRnlJRVZoUFU5aWFtVmpkQzVyWlhsektGZ3BPM0F1ZEdWNGRIVnlaVVp2Y20xaGRITTlSV0U3ZG1GeUlFWmhQVnRkTzA5aWFtVmpkQzVyWlhsektGZ3BMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNG9ZU2w3Um1GYldGdGhYVjA5WVgwcE8zWmhjaUJJWVQxYlhUdFBZbXBsWTNRdWEyVjVjeWhXS1M1bWIzSkZZV05vS0daMWJtTjBhVzl1S0dFcGUwaGhXMVpiWVYxZFBXRjlLVHQyWVhJZ1NXRTlXMTA3VDJKcVpXTjBMbXRsZVhNb2FHRXBMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNG9ZU2w3U1dGYmFHRmJZVjFkUFZ4dVlYMHBPM1poY2lCRFlUMWJYVHRQWW1wbFkzUXVhMlY1Y3loUktTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUtHRXBlME5oVzFGYllWMWRQV0Y5S1R0MllYSWdSR0U5VzEwN1QySnFaV04wTG10bGVYTW9UeWt1Wm05eVJXRmphQ2htZFc1amRHbHZiaWhoS1h0RVlWdFBXMkZkWFQxaGZTazdkbUZ5SUZCaFBVVmhMbkpsWkhWalpTaG1kVzVqZEdsdmJpaGhMR0lwZTNaaGNpQmpQVmhiWWwwN05qUXdPVDA5UFdOOGZEWTBNRFk5UFQxamZIdzJOREE1UFQwOVkzeDhOalF4TUQwOVBXTjhmRFkwTURJOVBUMWpmSHd6TkRBME1UMDlQV00vWVZ0alhUMWpPak15T0RVMVBUMDlZM3g4TUR3OVlpNXBibVJsZUU5bUtGd2ljbWRpWVZ3aUtUOWhXMk5kUFRZME1EZzZZVnRqWFQwMk5EQTNPM0psZEhWeWJpQmhmU3g3ZlNrc1RtRTlXMTBzU21FOVcxMHNRbUU5TUN4allUMTdmU3gwWVQxd0xtMWhlRlJsZUhSMWNtVlZibWwwY3l4dllUMUJjbkpoZVNoMFlTa3ViV0Z3S0daMWJtTjBhVzl1S0NsN2NtVjBkWEp1SUc1MWJHeDlLVHRpS0hOaExuQnliM1J2ZEhsd1pTeDdZbWx1WkRwbWRXNWpkR2x2YmlncGUzUm9hWE11WW1sdVpFTnZkVzUwS3oweE8zWmhjaUJoUFhSb2FYTXVkVzVwZER0cFppZ3dQbUVwZTJadmNpaDJZWElnWWowd08ySThkR0U3S3l0aUtYdDJZWElnWXoxdllWdGlYVHRwWmloaktYdHBaaWd3UEdNdVltbHVaRU52ZFc1MEtXTnZiblJwYm5WbE8xeHVZeTUxYm1sMFBTMHhmVzloVzJKZFBYUm9hWE03WVQxaU8ySnlaV0ZyZlZvdWNISnZabWxzWlNZbVRDNXRZWGhVWlhoMGRYSmxWVzVwZEhNOFlTc3hKaVlvVEM1dFlYaFVaWGgwZFhKbFZXNXBkSE05WVNzeEtUdDBhR2x6TG5WdWFYUTlZVHRvTG1GamRHbDJaVlJsZUhSMWNtVW9Nek01T0RRcllTazdhQzVpYVc1a1ZHVjRkSFZ5WlNoMGFHbHpMblJoY21kbGRDeDBhR2x6TG5SbGVIUjFjbVVwZlhKbGRIVnliaUJoZlN4MWJtSnBibVE2Wm5WdVkzUnBiMjRvS1hzdExYUm9hWE11WW1sdVpFTnZkVzUwZlN4a1pXTlNaV1k2Wm5WdVkzUnBiMjRvS1hzd1BqMHRMWFJvYVhNdWNtVm1RMjkxYm5RbUpteGhLSFJvYVhNcGZYMHBPMW91Y0hKdlptbHNaU1ltS0V3dVoyVjBWRzkwWVd4VVpYaDBkWEpsVTJsNlpUMW1kVzVqZEdsdmJpZ3BlM1poY2lCaFBUQTdUMkpxWldOMExtdGxlWE1vWTJFcExtWnZja1ZoWTJnb1puVnVZM1JwYjI0b1lpbDdZU3M5WTJGYllsMHVjM1JoZEhNdWMybDZaWDBwTzNKbGRIVnliaUJoZlNrN2NtVjBkWEp1ZTJOeVpXRjBaVEpFT21aMWJtTjBhVzl1S0dJc1l5bDdablZ1WTNScGIyNGdaeWhpTEdNcGUzWmhjaUJsUFdZdWRHVjRTVzVtYnp0cFlTNWpZV3hzS0dVcE8zWmhjaUJvUFhsaEtDazdYQ0p1ZFcxaVpYSmNJajA5UFhSNWNHVnZaaUJpUDF3aWJuVnRZbVZ5WENJOVBUMTBlWEJsYjJZZ1l6OWNia2NvYUN4aWZEQXNZM3d3S1RwSEtHZ3NZbnd3TEdKOE1DazZZajhvYTJFb1pTeGlLU3hpWVNob0xHSXBLVHBIS0dnc01Td3hLVHRsTG1kbGJrMXBjRzFoY0hNbUppaG9MbTFwY0cxaGMyczlLR2d1ZDJsa2RHZzhQREVwTFRFcE8yWXViV2x3YldGemF6MW9MbTFwY0cxaGMyczdTeWhtTEdncE8yWXVhVzUwWlhKdVlXeG1iM0p0WVhROWFDNXBiblJsY201aGJHWnZjbTFoZER0bkxuZHBaSFJvUFdndWQybGtkR2c3Wnk1b1pXbG5hSFE5YUM1b1pXbG5hSFE3WkdFb1ppazdibUVvYUN3ek5UVXpLVHR5WVNobExETTFOVE1wTzJwaEtDazdWU2hvS1R0YUxuQnliMlpwYkdVbUppaG1Mbk4wWVhSekxuTnBlbVU5WVNobUxtbHVkR1Z5Ym1Gc1ptOXliV0YwTEdZdWRIbHdaU3hvTG5kcFpIUm9MR2d1YUdWcFoyaDBMR1V1WjJWdVRXbHdiV0Z3Y3l3aE1Ta3BPMmN1Wm05eWJXRjBQVVpoVzJZdWFXNTBaWEp1WVd4bWIzSnRZWFJkTzJjdWRIbHdaVDFJWVZ0bUxuUjVjR1ZkTzJjdWJXRm5QVWxoVzJVdWJXRm5SbWxzZEdWeVhUdG5MbTFwYmoxRFlWdGxMbTFwYmtacGJIUmxjbDA3Wnk1M2NtRndVejFFWVZ0bExuZHlZWEJUWFR0bkxuZHlZWEJVUFVSaFcyVXVkM0poY0ZSZE8zSmxkSFZ5YmlCbmZYWmhjaUJtUFc1bGR5QnpZU2d6TlRVektUdGpZVnRtTG1sa1hUMW1PMHd1ZEdWNGRIVnlaVU52ZFc1MEt5czdYRzVuS0dJc1l5azdaeTV6ZFdKcGJXRm5aVDFtZFc1amRHbHZiaWhoTEdJc1l5eGxLWHRpZkQwd08yTjhQVEE3Wlh3OU1EdDJZWElnWkQxbllTZ3BPMHNvWkN4bUtUdGtMbmRwWkhSb1BUQTdaQzVvWldsbmFIUTlNRHRUS0dRc1lTazdaQzUzYVdSMGFEMWtMbmRwWkhSb2ZId29aaTUzYVdSMGFENCtaU2t0WWp0a0xtaGxhV2RvZEQxa0xtaGxhV2RvZEh4OEtHWXVhR1ZwWjJoMFBqNWxLUzFqTzJSaEtHWXBPMjFoS0dRc016VTFNeXhpTEdNc1pTazdhbUVvS1R0WEtHUXBPM0psZEhWeWJpQm5mVHRuTG5KbGMybDZaVDFtZFc1amRHbHZiaWhpTEdNcGUzWmhjaUJsUFdKOE1DeHJQV044TUh4OFpUdHBaaWhsUFQwOVppNTNhV1IwYUNZbWF6MDlQV1l1YUdWcFoyaDBLWEpsZEhWeWJpQm5PMmN1ZDJsa2RHZzlaaTUzYVdSMGFEMWxPMmN1YUdWcFoyaDBQV1l1YUdWcFoyaDBQV3M3WkdFb1ppazdabTl5S0haaGNpQmtQVEE3Wmk1dGFYQnRZWE5yUGo1a095c3JaQ2xvTG5SbGVFbHRZV2RsTWtRb016VTFNeXhrTEdZdVptOXliV0YwTEdVK1BtUXNhejQrWkN3d0xHWXVabTl5YldGMExHWXVkSGx3WlN4dWRXeHNLVHRxWVNncE8xb3VjSEp2Wm1sc1pTWW1LR1l1YzNSaGRITXVjMmw2WlQxaEtHWXVhVzUwWlhKdVlXeG1iM0p0WVhRc1ppNTBlWEJsTEdVc2F5d2hNU3doTVNrcE8zSmxkSFZ5YmlCbmZUdGNibWN1WDNKbFoyeFVlWEJsUFZ3aWRHVjRkSFZ5WlRKa1hDSTdaeTVmZEdWNGRIVnlaVDFtTzFvdWNISnZabWxzWlNZbUtHY3VjM1JoZEhNOVppNXpkR0YwY3lrN1p5NWtaWE4wY205NVBXWjFibU4wYVc5dUtDbDdaaTVrWldOU1pXWW9LWDA3Y21WMGRYSnVJR2Q5TEdOeVpXRjBaVU4xWW1VNlpuVnVZM1JwYjI0b1lpeGpMR2NzWml4ckxHd3BlMloxYm1OMGFXOXVJRzBvWWl4akxHVXNaeXhvTEdZcGUzWmhjaUJyTEd3OWJpNTBaWGhKYm1adk8ybGhMbU5oYkd3b2JDazdabTl5S0dzOU1EczJQbXM3S3l0cktXUmJhMTA5ZVdFb0tUdHBaaWhjSW01MWJXSmxjbHdpUFQwOWRIbHdaVzltSUdKOGZDRmlLV1p2Y2loaVBXSjhNSHg4TVN4clBUQTdOajVyT3lzcmF5bEhLR1JiYTEwc1lpeGlLVHRsYkhObElHbG1LRndpYjJKcVpXTjBYQ0k5UFQxMGVYQmxiMllnWWlscFppaGpLV0poS0dSYk1GMHNZaWtzWW1Fb1pGc3hYU3hqS1N4aVlTaGtXekpkTEdVcExHSmhLR1JiTTEwc1p5a3NZbUVvWkZzMFhTeG9LU3hpWVNoa1d6VmRMR1lwTzJWc2MyVWdhV1lvYTJFb2JDeGlLU3haS0c0c1lpa3NYQ0ptWVdObGMxd2lhVzRnWWlsbWIzSW9ZajFpTG1aaFkyVnpMR3M5TURzMlBtczdLeXRyS1Vzb1pGdHJYU3h1S1N4aVlTaGtXMnRkTEdKYmExMHBPMlZzYzJVZ1ptOXlLR3M5TURzMlBtczdLeXRyS1dKaEtHUmJhMTBzWWlrN1hHNUxLRzRzWkZzd1hTazdiaTV0YVhCdFlYTnJQV3d1WjJWdVRXbHdiV0Z3Y3o4b1pGc3dYUzUzYVdSMGFEdzhNU2t0TVRwa1d6QmRMbTFwY0cxaGMyczdiaTVwYm5SbGNtNWhiR1p2Y20xaGREMWtXekJkTG1sdWRHVnlibUZzWm05eWJXRjBPMjB1ZDJsa2RHZzlaRnN3WFM1M2FXUjBhRHR0TG1obGFXZG9kRDFrV3pCZExtaGxhV2RvZER0a1lTaHVLVHRtYjNJb2F6MHdPelkrYXpzcksyc3BibUVvWkZ0clhTd3pOREEyT1N0cktUdHlZU2hzTERNME1EWTNLVHRxWVNncE8xb3VjSEp2Wm1sc1pTWW1LRzR1YzNSaGRITXVjMmw2WlQxaEtHNHVhVzUwWlhKdVlXeG1iM0p0WVhRc2JpNTBlWEJsTEcwdWQybGtkR2dzYlM1b1pXbG5hSFFzYkM1blpXNU5hWEJ0WVhCekxDRXdLU2s3YlM1bWIzSnRZWFE5Um1GYmJpNXBiblJsY201aGJHWnZjbTFoZEYwN2JTNTBlWEJsUFVoaFcyNHVkSGx3WlYwN2JTNXRZV2M5U1dGYmJDNXRZV2RHYVd4MFpYSmRPMjB1YldsdVBVTmhXMnd1YldsdVJtbHNkR1Z5WFR0dExuZHlZWEJUUFVSaFcyd3VkM0poY0ZOZE8yMHVkM0poY0ZROVJHRmJiQzUzY21Gd1ZGMDdabTl5S0dzOU1EczJQbXM3S3l0cktWVW9aRnRyWFNrN2NtVjBkWEp1SUcxOWRtRnlJRzQ5Ym1WM0lITmhLRE0wTURZM0tUdGpZVnR1TG1sa1hUMXVPMHd1WTNWaVpVTnZkVzUwS3lzN2RtRnlJR1E5UVhKeVlYa29OaWs3WEc1dEtHSXNZeXhuTEdZc2F5eHNLVHR0TG5OMVltbHRZV2RsUFdaMWJtTjBhVzl1S0dFc1lpeGpMR1FzWlNsN1kzdzlNRHRrZkQwd08yVjhQVEE3ZG1GeUlHYzlaMkVvS1R0TEtHY3NiaWs3Wnk1M2FXUjBhRDB3TzJjdWFHVnBaMmgwUFRBN1V5aG5MR0lwTzJjdWQybGtkR2c5Wnk1M2FXUjBhSHg4S0c0dWQybGtkR2crUG1VcExXTTdaeTVvWldsbmFIUTlaeTVvWldsbmFIUjhmQ2h1TG1obGFXZG9kRDQrWlNrdFpEdGtZU2h1S1R0dFlTaG5MRE0wTURZNUsyRXNZeXhrTEdVcE8ycGhLQ2s3VnlobktUdHlaWFIxY200Z2JYMDdiUzV5WlhOcGVtVTlablZ1WTNScGIyNG9ZaWw3WW53OU1EdHBaaWhpSVQwOWJpNTNhV1IwYUNsN2JTNTNhV1IwYUQxdUxuZHBaSFJvUFdJN2JTNW9aV2xuYUhROWJpNW9aV2xuYUhROVlqdGtZU2h1S1R0bWIzSW9kbUZ5SUdNOU1EczJQbU03S3l0aktXWnZjaWgyWVhJZ1pEMHdPMjR1Yldsd2JXRnphejQrWkRzcksyUXBhQzUwWlhoSmJXRm5aVEpFS0RNME1EWTVLMk1zWkN4dUxtWnZjbTFoZEN4aVBqNWtMR0krUG1Rc01DeHVMbVp2Y20xaGRDeHVMblI1Y0dVc2JuVnNiQ2s3YW1Fb0tUdGFMbkJ5YjJacGJHVW1KaWh1TG5OMFlYUnpMbk5wZW1VOVlTaHVMbWx1ZEdWeWJtRnNabTl5YldGMExHNHVkSGx3WlN4dExuZHBaSFJvTEcwdWFHVnBaMmgwTENFeExDRXdLU2s3WEc1eVpYUjFjbTRnYlgxOU8yMHVYM0psWjJ4VWVYQmxQVndpZEdWNGRIVnlaVU4xWW1WY0lqdHRMbDkwWlhoMGRYSmxQVzQ3V2k1d2NtOW1hV3hsSmlZb2JTNXpkR0YwY3oxdUxuTjBZWFJ6S1R0dExtUmxjM1J5YjNrOVpuVnVZM1JwYjI0b0tYdHVMbVJsWTFKbFppZ3BmVHR5WlhSMWNtNGdiWDBzWTJ4bFlYSTZablZ1WTNScGIyNG9LWHRtYjNJb2RtRnlJR0U5TUR0aFBIUmhPeXNyWVNsb0xtRmpkR2wyWlZSbGVIUjFjbVVvTXpNNU9EUXJZU2tzYUM1aWFXNWtWR1Y0ZEhWeVpTZ3pOVFV6TEc1MWJHd3BMRzloVzJGZFBXNTFiR3c3UmloallTa3VabTl5UldGamFDaHNZU2s3VEM1amRXSmxRMjkxYm5ROU1EdE1MblJsZUhSMWNtVkRiM1Z1ZEQwd2ZTeG5aWFJVWlhoMGRYSmxPbVoxYm1OMGFXOXVLR0VwZTNKbGRIVnliaUJ1ZFd4c2ZTeHlaWE4wYjNKbE9tWjFibU4wYVc5dUtDbDdSaWhqWVNrdVptOXlSV0ZqYUNobWRXNWpkR2x2YmloaEtYdGhMblJsZUhSMWNtVTlhQzVqY21WaGRHVlVaWGgwZFhKbEtDazdhQzVpYVc1a1ZHVjRkSFZ5WlNoaExuUmhjbWRsZEN4aExuUmxlSFIxY21VcE8yWnZjaWgyWVhJZ1lqMHdPek15UG1JN0t5dGlLV2xtS0RBaFBUMG9ZUzV0YVhCdFlYTnJKakU4UEdJcEtXbG1LRE0xTlRNOVBUMWhMblJoY21kbGRDbG9MblJsZUVsdFlXZGxNa1FvTXpVMU15eGlMR0V1YVc1MFpYSnVZV3htYjNKdFlYUXNYRzVoTG5kcFpIUm9QajVpTEdFdWFHVnBaMmgwUGo1aUxEQXNZUzVwYm5SbGNtNWhiR1p2Y20xaGRDeGhMblI1Y0dVc2JuVnNiQ2s3Wld4elpTQm1iM0lvZG1GeUlHTTlNRHMyUG1NN0t5dGpLV2d1ZEdWNFNXMWhaMlV5UkNnek5EQTJPU3RqTEdJc1lTNXBiblJsY201aGJHWnZjbTFoZEN4aExuZHBaSFJvUGo1aUxHRXVhR1ZwWjJoMFBqNWlMREFzWVM1cGJuUmxjbTVoYkdadmNtMWhkQ3hoTG5SNWNHVXNiblZzYkNrN2NtRW9ZUzUwWlhoSmJtWnZMR0V1ZEdGeVoyVjBLWDBwZlgxOWZTeDdYQ0l1TDJOdmJuTjBZVzUwY3k5aGNuSmhlWFI1Y0dWekxtcHpiMjVjSWpvekxGd2lMaTkxZEdsc0wyVjRkR1Z1WkZ3aU9qSXlMRndpTGk5MWRHbHNMMlpzWVhSMFpXNWNJam95TXl4Y0lpNHZkWFJwYkM5cGN5MWhjbkpoZVMxc2FXdGxYQ0k2TWpRc1hDSXVMM1YwYVd3dmFYTXRibVJoY25KaGVWd2lPakkxTEZ3aUxpOTFkR2xzTDJsekxYUjVjR1ZrTFdGeWNtRjVYQ0k2TWpZc1hDSXVMM1YwYVd3dmNHOXZiRndpT2pJNExGd2lMaTkxZEdsc0wzUnZMV2hoYkdZdFpteHZZWFJjSWpvek1DeGNJaTR2ZFhScGJDOTJZV3gxWlhOY0lqb3pNWDFkTERFNU9sdG1kVzVqZEdsdmJpaG1MSEFzZFNsN2NDNWxlSEJ2Y25SelBXWjFibU4wYVc5dUtHWXNheWw3Wm5WdVkzUnBiMjRnY0NncGUzUm9hWE11Wlc1a1VYVmxjbmxKYm1SbGVEMTBhR2x6TG5OMFlYSjBVWFZsY25sSmJtUmxlRDFjYmkweE8zUm9hWE11YzNWdFBUQTdkR2hwY3k1emRHRjBjejF1ZFd4c2ZXWjFibU4wYVc5dUlISW9ZU3hpTEdNcGUzWmhjaUJtUFVZdWNHOXdLQ2w4Zkc1bGR5QndPMll1YzNSaGNuUlJkV1Z5ZVVsdVpHVjRQV0U3Wmk1bGJtUlJkV1Z5ZVVsdVpHVjRQV0k3Wmk1emRXMDlNRHRtTG5OMFlYUnpQV003ZFM1d2RYTm9LR1lwZlhaaGNpQmpQV3N1WlhoMFgyUnBjMnB2YVc1MFgzUnBiV1Z5WDNGMVpYSjVPMmxtS0NGaktYSmxkSFZ5YmlCdWRXeHNPM1poY2lCaFBWdGRMR0k5VzEwc1JqMWJYU3gxUFZ0ZExIUTlXMTBzZVQxYlhUdHlaWFIxY201N1ltVm5hVzVSZFdWeWVUcG1kVzVqZEdsdmJpaG5LWHQyWVhJZ1pqMWhMbkJ2Y0NncGZIeGpMbU55WldGMFpWRjFaWEo1UlZoVUtDazdZeTVpWldkcGJsRjFaWEo1UlZoVUtETTFNREEzTEdZcE8ySXVjSFZ6YUNobUtUdHlLR0l1YkdWdVozUm9MVEVzWWk1c1pXNW5kR2dzWnlsOUxHVnVaRkYxWlhKNU9tWjFibU4wYVc5dUtDbDdZeTVsYm1SUmRXVnllVVZZVkNnek5UQXdOeWw5TEhCMWMyaFRZMjl3WlZOMFlYUnpPbklzZFhCa1lYUmxPbVoxYm1OMGFXOXVLQ2w3ZG1GeUlHY3NaanRuUFdJdWJHVnVaM1JvTzJsbUtEQWhQVDFuS1h0NUxteGxibWQwYUQxTllYUm9MbTFoZUNoNUxteGxibWQwYUN4bkt6RXBPM1F1YkdWdVozUm9QVTFoZEdndWJXRjRLSFF1YkdWdVozUm9MRnh1WnlzeEtUdDBXekJkUFRBN2RtRnlJR3M5ZVZzd1hUMHdPMlp2Y2lobVBXYzlNRHRtUEdJdWJHVnVaM1JvT3lzclppbDdkbUZ5SUd3OVlsdG1YVHRqTG1kbGRGRjFaWEo1VDJKcVpXTjBSVmhVS0d3c016UTVNVGtwUHlockt6MWpMbWRsZEZGMVpYSjVUMkpxWldOMFJWaFVLR3dzTXpRNU1UZ3BMR0V1Y0hWemFDaHNLU2s2WWx0bkt5dGRQV3c3ZEZ0bUt6RmRQV3M3ZVZ0bUt6RmRQV2Q5WWk1c1pXNW5kR2c5Wnp0bWIzSW9aajFuUFRBN1pqeDFMbXhsYm1kMGFEc3JLMllwZTNaaGNpQnJQWFZiWmwwc2JqMXJMbk4wWVhKMFVYVmxjbmxKYm1SbGVDeHNQV3N1Wlc1a1VYVmxjbmxKYm1SbGVEdHJMbk4xYlNzOWRGdHNYUzEwVzI1ZE8yNDllVnR1WFR0c1BYbGJiRjA3YkQwOVBXNC9LR3N1YzNSaGRITXVaM0IxVkdsdFpTczlheTV6ZFcwdk1VVTJMRVl1Y0hWemFDaHJLU2s2S0dzdWMzUmhjblJSZFdWeWVVbHVaR1Y0UFc0c2F5NWxibVJSZFdWeWVVbHVaR1Y0UFd3c2RWdG5LeXRkUFdzcGZYVXViR1Z1WjNSb1BXZDlmU3huWlhST2RXMVFaVzVrYVc1blVYVmxjbWxsY3pwbWRXNWpkR2x2YmlncGUzSmxkSFZ5YmlCaUxteGxibWQwYUgwc1kyeGxZWEk2Wm5WdVkzUnBiMjRvS1h0aExuQjFjMmd1WVhCd2JIa29ZU3hpS1R0bWIzSW9kbUZ5SUdjOU1EdG5QR0V1YkdWdVozUm9PMmNyS3lsakxtUmxiR1YwWlZGMVpYSjVSVmhVS0dGYloxMHBPMXh1WWk1c1pXNW5kR2c5TUR0aExteGxibWQwYUQwd2ZTeHlaWE4wYjNKbE9tWjFibU4wYVc5dUtDbDdZaTVzWlc1bmRHZzlNRHRoTG14bGJtZDBhRDB3ZlgxOWZTeDdmVjBzTWpBNlcyWjFibU4wYVc5dUtHWXNjQ3gxS1h0d0xtVjRjRzl5ZEhNOVhDSjFibVJsWm1sdVpXUmNJaUU5UFhSNWNHVnZaaUJ3WlhKbWIzSnRZVzVqWlNZbWNHVnlabTl5YldGdVkyVXVibTkzUDJaMWJtTjBhVzl1S0NsN2NtVjBkWEp1SUhCbGNtWnZjbTFoYm1ObExtNXZkeWdwZlRwbWRXNWpkR2x2YmlncGUzSmxkSFZ5Yml0dVpYY2dSR0YwWlgxOUxIdDlYU3d5TVRwYlpuVnVZM1JwYjI0b1ppeHdMSFVwZTJaMWJtTjBhVzl1SUd3b1ppbDdjbVYwZFhKdUlFRnljbUY1TG5CeWIzUnZkSGx3WlM1emJHbGpaUzVqWVd4c0tHWXBmV1oxYm1OMGFXOXVJR3NvWmlsN2NtVjBkWEp1SUd3b1ppa3VhbTlwYmloY0lsd2lLWDEyWVhJZ2VEMW1LRndpTGk5bGVIUmxibVJjSWlrN2NDNWxlSEJ2Y25SelBXWjFibU4wYVc5dUtDbDdablZ1WTNScGIyNGdaaWdwZTNaaGNpQmlQVnRkTEdNOVcxMDdjbVYwZFhKdUlIZ29ablZ1WTNScGIyNG9LWHRpTG5CMWMyZ3VZWEJ3Ykhrb1lpeHNLR0Z5WjNWdFpXNTBjeWtwZlN4N1pHVm1PbVoxYm1OMGFXOXVLQ2w3ZG1GeUlHWTlYQ0oyWENJcllTc3JPMk11Y0hWemFDaG1LVHN3UEdGeVozVnRaVzUwY3k1c1pXNW5kR2dtSmx4dUtHSXVjSFZ6YUNobUxGd2lQVndpS1N4aUxuQjFjMmd1WVhCd2JIa29ZaXhzS0dGeVozVnRaVzUwY3lrcExHSXVjSFZ6YUNoY0lqdGNJaWtwTzNKbGRIVnliaUJtZlN4MGIxTjBjbWx1WnpwbWRXNWpkR2x2YmlncGUzSmxkSFZ5YmlCcktGc3dQR011YkdWdVozUm9QMXdpZG1GeUlGd2lLMk1yWENJN1hDSTZYQ0pjSWl4cktHSXBYU2w5ZlNsOVpuVnVZM1JwYjI0Z1l5Z3BlMloxYm1OMGFXOXVJR0VvWml4cktYdGpLR1lzYXl4Y0lqMWNJaXhpTG1SbFppaG1MR3NwTEZ3aU8xd2lLWDEyWVhJZ1lqMW1LQ2tzWXoxbUtDa3NhejFpTG5SdlUzUnlhVzVuTEhROVl5NTBiMU4wY21sdVp6dHlaWFIxY200Z2VDaG1kVzVqZEdsdmJpZ3BlMkl1WVhCd2JIa29ZaXhzS0dGeVozVnRaVzUwY3lrcGZTeDdaR1ZtT21JdVpHVm1MR1Z1ZEhKNU9tSXNaWGhwZERwakxITmhkbVU2WVN4elpYUTZablZ1WTNScGIyNG9ZeXhtTEdzcGUyRW9ZeXhtS1R0aUtHTXNaaXhjSWoxY0lpeHJMRndpTzF3aUtYMHNkRzlUZEhKcGJtYzZablZ1WTNScGIyNG9LWHR5WlhSMWNtNGdheWdwSzNRb0tYMTlLWDEyWVhJZ1lUMHdMR0k5VzEwc2NEMWJYU3gxUFdZb0tTeDBQWHQ5TzNKbGRIVnlibnRuYkc5aVlXdzZkU3hzYVc1ck9tWjFibU4wYVc5dUtHTXBlMlp2Y2loMllYSWdaejB3TzJjOGNDNXNaVzVuZEdnN0t5dG5LV2xtS0hCYloxMDlQVDFqS1hKbGRIVnliaUJpVzJkZE8xeHVaejFjSW1kY0lpdGhLeXM3WWk1d2RYTm9LR2NwTzNBdWNIVnphQ2hqS1R0eVpYUjFjbTRnWjMwc1lteHZZMnM2Wml4d2NtOWpPbVoxYm1OMGFXOXVLR0VzWWlsN1puVnVZM1JwYjI0Z1ppZ3BlM1poY2lCaFBWd2lZVndpSzJ3dWJHVnVaM1JvTzJ3dWNIVnphQ2hoS1R0eVpYUjFjbTRnWVgxMllYSWdiRDFiWFR0aVBXSjhmREE3Wm05eUtIWmhjaUJ5UFRBN2NqeGlPeXNyY2lsbUtDazdkbUZ5SUhJOVl5Z3BMRzQ5Y2k1MGIxTjBjbWx1Wnp0eVpYUjFjbTRnZEZ0aFhUMTRLSElzZTJGeVp6cG1MSFJ2VTNSeWFXNW5PbVoxYm1OMGFXOXVLQ2w3Y21WMGRYSnVJR3NvVzF3aVpuVnVZM1JwYjI0b1hDSXNiQzVxYjJsdUtDa3NYQ0lwZTF3aUxHNG9LU3hjSW4xY0lsMHBmWDBwZlN4elkyOXdaVHBqTEdOdmJtUTZablZ1WTNScGIyNG9LWHQyWVhJZ1lUMXJLR0Z5WjNWdFpXNTBjeWtzWWoxaktDa3NaajFqS0Nrc2NqMWlMblJ2VTNSeWFXNW5MSFE5Wmk1MGIxTjBjbWx1Wnp0eVpYUjFjbTRnZUNoaUxIdDBhR1Z1T21aMWJtTjBhVzl1S0NsN1lpNWhjSEJzZVNoaUxHd29ZWEpuZFcxbGJuUnpLU2s3Y21WMGRYSnVJSFJvYVhOOUxGd2laV3h6WlZ3aU9tWjFibU4wYVc5dUtDbDdaaTVoY0hCc2VTaG1MR3dvWVhKbmRXMWxiblJ6S1NrN2NtVjBkWEp1SUhSb2FYTjlMSFJ2VTNSeWFXNW5PbVoxYm1OMGFXOXVLQ2w3ZG1GeUlHSTlYRzUwS0NrN1lpWW1LR0k5WENKbGJITmxlMXdpSzJJclhDSjlYQ0lwTzNKbGRIVnliaUJyS0Z0Y0ltbG1LRndpTEdFc1hDSXBlMXdpTEhJb0tTeGNJbjFjSWl4aVhTbDlmU2w5TEdOdmJYQnBiR1U2Wm5WdVkzUnBiMjRvS1h0MllYSWdZVDFiSjF3aWRYTmxJSE4wY21samRGd2lPeWNzZFN4Y0luSmxkSFZ5YmlCN1hDSmRPMDlpYW1WamRDNXJaWGx6S0hRcExtWnZja1ZoWTJnb1puVnVZM1JwYjI0b1lpbDdZUzV3ZFhOb0tDZGNJaWNzWWl3blhDSTZKeXgwVzJKZExuUnZVM1J5YVc1bktDa3NYQ0lzWENJcGZTazdZUzV3ZFhOb0tGd2lmVndpS1R0MllYSWdZejFyS0dFcExuSmxjR3hoWTJVb0x6c3ZaeXhjSWp0Y1hHNWNJaWt1Y21Wd2JHRmpaU2d2ZlM5bkxGd2lmVnhjYmx3aUtTNXlaWEJzWVdObEtDOTdMMmNzWENKN1hGeHVYQ0lwTzNKbGRIVnliaUJHZFc1amRHbHZiaTVoY0hCc2VTaHVkV3hzTEdJdVkyOXVZMkYwS0dNcEtTNWhjSEJzZVNodWRXeHNMSEFwZlgxOWZTeDdYQ0l1TDJWNGRHVnVaRndpT2pJeWZWMHNNakk2VzJaMWJtTjBhVzl1S0dZc2NDeDFLWHR3TG1WNGNHOXlkSE05Wm5WdVkzUnBiMjRvWml4cktYdG1iM0lvZG1GeUlIQTlUMkpxWldOMExtdGxlWE1vYXlrc2NqMHdPM0k4Y0M1c1pXNW5kR2c3S3l0eUtXWmJjRnR5WFYwOWExdHdXM0pkWFR0eVpYUjFjbTRnWm4xOUxIdDlYU3d5TXpwYlpuVnVZM1JwYjI0b1ppeHdMSFVwZTJaMWJtTjBhVzl1SUd3b1ppeGNibU1zWVN4aUxHc3NiQ2w3Wm05eUtIWmhjaUIwUFRBN2REeGpPeXNyZENsbWIzSW9kbUZ5SUhBOVpsdDBYU3huUFRBN1p6eGhPeXNyWnlsbWIzSW9kbUZ5SUhnOWNGdG5YU3gxUFRBN2RUeGlPeXNyZFNsclcyd3JLMTA5ZUZ0MVhYMW1kVzVqZEdsdmJpQnJLR1lzWXl4aExHSXNjQ2w3Wm05eUtIWmhjaUI0UFRFc2REMWhLekU3ZER4akxteGxibWQwYURzckszUXBlQ285WTF0MFhUdDJZWElnZVQxalcyRmRPMmxtS0RROVBUMWpMbXhsYm1kMGFDMWhLWHQyWVhJZ1p6MWpXMkVyTVYwc2RUMWpXMkVyTWwwN1l6MWpXMkVyTTEwN1ptOXlLSFE5TUR0MFBIazdLeXQwS1d3b1psdDBYU3huTEhVc1l5eGlMSEFwTEhBclBYaDlaV3h6WlNCbWIzSW9kRDB3TzNROGVUc3JLM1FwYXlobVczUmRMR01zWVNzeExHSXNjQ2tzY0NzOWVIMTJZWElnZUQxbUtGd2lMaTl3YjI5c1hDSXBPM0F1Wlhod2IzSjBjejE3YzJoaGNHVTZablZ1WTNScGIyNG9aaWw3Wm05eUtIWmhjaUJqUFZ0ZE8yWXViR1Z1WjNSb08yWTlabHN3WFNsakxuQjFjMmdvWmk1c1pXNW5kR2dwTzNKbGRIVnliaUJqZlN4bWJHRjBkR1Z1T21aMWJtTjBhVzl1S0dZc1l5eGhMR0lwZTNaaGNpQndQVEU3YVdZb1l5NXNaVzVuZEdncFptOXlLSFpoY2lCMVBUQTdkVHhqTG14bGJtZDBhRHNySzNVcGNDbzlZMXQxWFR0bGJITmxJSEE5TUR0aFBXSjhmRnh1ZUM1aGJHeHZZMVI1Y0dVb1lTeHdLVHR6ZDJsMFkyZ29ZeTVzWlc1bmRHZ3BlMk5oYzJVZ01EcGljbVZoYXp0allYTmxJREU2WWoxald6QmRPMlp2Y2loalBUQTdZenhpT3lzcll5bGhXMk5kUFdaYlkxMDdZbkpsWVdzN1kyRnpaU0F5T21JOVkxc3dYVHRqUFdOYk1WMDdabTl5S0hVOWNEMHdPM1U4WWpzckszVXBabTl5S0haaGNpQjBQV1piZFYwc2VUMHdPM2s4WXpzcksza3BZVnR3S3l0ZFBYUmJlVjA3WW5KbFlXczdZMkZ6WlNBek9td29aaXhqV3pCZExHTmJNVjBzWTFzeVhTeGhMREFwTzJKeVpXRnJPMlJsWm1GMWJIUTZheWhtTEdNc01DeGhMREFwZlhKbGRIVnliaUJoZlgxOUxIdGNJaTR2Y0c5dmJGd2lPakk0ZlYwc01qUTZXMloxYm1OMGFXOXVLR1lzY0N4MUtYdDJZWElnYkQxbUtGd2lMaTlwY3kxMGVYQmxaQzFoY25KaGVWd2lLVHR3TG1WNGNHOXlkSE05Wm5WdVkzUnBiMjRvWmlsN2NtVjBkWEp1SUVGeWNtRjVMbWx6UVhKeVlYa29aaWw4Zkd3b1ppbDlmU3g3WENJdUwybHpMWFI1Y0dWa0xXRnljbUY1WENJNk1qWjlYU3d5TlRwYlpuVnVZM1JwYjI0b1ppeHdMSFVwZTNaaGNpQnNQV1lvWENJdUwybHpMWFI1Y0dWa0xXRnljbUY1WENJcE8zQXVaWGh3YjNKMGN6MW1kVzVqZEdsdmJpaG1LWHR5WlhSMWNtNGhJV1ltSmx3aWIySnFaV04wWENJOVBUMTBlWEJsYjJZZ1ppWW1RWEp5WVhrdWFYTkJjbkpoZVNobUxuTm9ZWEJsS1NZbVhHNUJjbkpoZVM1cGMwRnljbUY1S0dZdWMzUnlhV1JsS1NZbVhDSnVkVzFpWlhKY0lqMDlQWFI1Y0dWdlppQm1MbTltWm5ObGRDWW1aaTV6YUdGd1pTNXNaVzVuZEdnOVBUMW1Mbk4wY21sa1pTNXNaVzVuZEdnbUppaEJjbkpoZVM1cGMwRnljbUY1S0dZdVpHRjBZU2w4Zkd3b1ppNWtZWFJoS1NsOWZTeDdYQ0l1TDJsekxYUjVjR1ZrTFdGeWNtRjVYQ0k2TWpaOVhTd3lOanBiWm5WdVkzUnBiMjRvWml4d0xIVXBlM1poY2lCc1BXWW9YQ0l1TGk5amIyNXpkR0Z1ZEhNdllYSnlZWGwwZVhCbGN5NXFjMjl1WENJcE8zQXVaWGh3YjNKMGN6MW1kVzVqZEdsdmJpaG1LWHR5WlhSMWNtNGdUMkpxWldOMExuQnliM1J2ZEhsd1pTNTBiMU4wY21sdVp5NWpZV3hzS0dZcGFXNGdiSDE5TEh0Y0lpNHVMMk52Ym5OMFlXNTBjeTloY25KaGVYUjVjR1Z6TG1wemIyNWNJam96ZlYwc01qYzZXMloxYm1OMGFXOXVLR1lzY0N4MUtYdHdMbVY0Y0c5eWRITTlablZ1WTNScGIyNG9aaXhyS1h0bWIzSW9kbUZ5SUhBOVFYSnlZWGtvWmlrc2NqMHdPM0k4WmpzckszSXBjRnR5WFQxcktISXBPM0psZEhWeWJpQndmWDBzZTMxZExESTRPbHRtZFc1amRHbHZiaWhtTEhBc2RTbDdablZ1WTNScGIyNGdiQ2hqS1h0MllYSWdZU3hpTzJFOUtEWTFOVE0xUEdNcFBEdzBPMk0rUGo0OVlUdGlQU2d5TlRVOFl5azhQRE03WXo0K1BqMWlPMkY4UFZ4dVlqdGlQU2d4TlR4aktUdzhNanRqUGo0K1BXSTdZWHc5WWp0aVBTZ3pQR01wUER3eE8zSmxkSFZ5YmlCaGZHSjhZejQrUG1JK1BqRjlablZ1WTNScGIyNGdheWhqS1h0aE9udG1iM0lvZG1GeUlHRTlNVFk3TWpZNE5ETTFORFUyUGoxaE8yRXFQVEUyS1dsbUtHTThQV0VwZTJNOVlUdGljbVZoYXlCaGZXTTlNSDFoUFhKYmJDaGpLVDQrTWwwN2NtVjBkWEp1SURBOFlTNXNaVzVuZEdnL1lTNXdiM0FvS1RwdVpYY2dRWEp5WVhsQ2RXWm1aWElvWXlsOVpuVnVZM1JwYjI0Z2VDaGpLWHR5VzJ3b1l5NWllWFJsVEdWdVozUm9LVDQrTWwwdWNIVnphQ2hqS1gxMllYSWdjajFtS0Z3aUxpOXNiMjl3WENJcEtEZ3NablZ1WTNScGIyNG9LWHR5WlhSMWNtNWJYWDBwTzNBdVpYaHdiM0owY3oxN1lXeHNiMk02YXl4bWNtVmxPbmdzWVd4c2IyTlVlWEJsT21aMWJtTjBhVzl1S0dNc1lTbDdkbUZ5SUdJOWJuVnNiRHR6ZDJsMFkyZ29ZeWw3WTJGelpTQTFNVEl3T21JOWJtVjNJRWx1ZERoQmNuSmhlU2hyS0dFcExEQXNZU2s3WW5KbFlXczdZMkZ6WlNBMU1USXhPbUk5Ym1WM0lGVnBiblE0UVhKeVlYa29heWhoS1N3d0xHRXBPMkp5WldGck8yTmhjMlVnTlRFeU1qcGlQVzVsZHlCSmJuUXhOa0Z5Y21GNUtHc29NaXBoS1N3d0xHRXBPMkp5WldGck8yTmhjMlVnTlRFeU16cGlQVzVsZHlCVmFXNTBNVFpCY25KaGVTaHJLRElxWEc1aEtTd3dMR0VwTzJKeVpXRnJPMk5oYzJVZ05URXlORHBpUFc1bGR5QkpiblF6TWtGeWNtRjVLR3NvTkNwaEtTd3dMR0VwTzJKeVpXRnJPMk5oYzJVZ05URXlOVHBpUFc1bGR5QlZhVzUwTXpKQmNuSmhlU2hyS0RRcVlTa3NNQ3hoS1R0aWNtVmhhenRqWVhObElEVXhNalk2WWoxdVpYY2dSbXh2WVhRek1rRnljbUY1S0dzb05DcGhLU3d3TEdFcE8ySnlaV0ZyTzJSbFptRjFiSFE2Y21WMGRYSnVJRzUxYkd4OWNtVjBkWEp1SUdJdWJHVnVaM1JvSVQwOVlUOWlMbk4xWW1GeWNtRjVLREFzWVNrNlluMHNabkpsWlZSNWNHVTZablZ1WTNScGIyNG9ZeWw3ZUNoakxtSjFabVpsY2lsOWZYMHNlMXdpTGk5c2IyOXdYQ0k2TWpkOVhTd3lPVHBiWm5WdVkzUnBiMjRvWml4d0xIVXBlM0F1Wlhod2IzSjBjejFjSW1aMWJtTjBhVzl1WENJOVBUMTBlWEJsYjJZZ2NtVnhkV1Z6ZEVGdWFXMWhkR2x2YmtaeVlXMWxKaVpjSW1aMWJtTjBhVzl1WENJOVBUMTBlWEJsYjJZZ1kyRnVZMlZzUVc1cGJXRjBhVzl1Um5KaGJXVS9lMjVsZUhRNlpuVnVZM1JwYjI0b1ppbDdjbVYwZFhKdUlISmxjWFZsYzNSQmJtbHRZWFJwYjI1R2NtRnRaU2htS1gwc1kyRnVZMlZzT21aMWJtTjBhVzl1S0dZcGUzSmxkSFZ5YmlCallXNWpaV3hCYm1sdFlYUnBiMjVHY21GdFpTaG1LWDE5T250dVpYaDBPbVoxYm1OMGFXOXVLR1lwZTNKbGRIVnliaUJ6WlhSVWFXMWxiM1YwS0dZc1hHNHhOaWw5TEdOaGJtTmxiRHBqYkdWaGNsUnBiV1Z2ZFhSOWZTeDdmVjBzTXpBNlcyWjFibU4wYVc5dUtHWXNjQ3gxS1h0MllYSWdiRDFtS0Z3aUxpOXdiMjlzWENJcExHczlibVYzSUVac2IyRjBNekpCY25KaGVTZ3hLU3g0UFc1bGR5QlZhVzUwTXpKQmNuSmhlU2hyTG1KMVptWmxjaWs3Y0M1bGVIQnZjblJ6UFdaMWJtTjBhVzl1S0dZcGUyWnZjaWgyWVhJZ1l6MXNMbUZzYkc5alZIbHdaU2cxTVRJekxHWXViR1Z1WjNSb0tTeGhQVEE3WVR4bUxteGxibWQwYURzcksyRXBhV1lvYVhOT1lVNG9abHRoWFNrcFkxdGhYVDAyTlRVek5UdGxiSE5sSUdsbUtFbHVabWx1YVhSNVBUMDlabHRoWFNsalcyRmRQVE14TnpRME8yVnNjMlVnYVdZb0xVbHVabWx1YVhSNVBUMDlabHRoWFNsalcyRmRQVFkwTlRFeU8yVnNjMlY3YTFzd1hUMW1XMkZkTzNaaGNpQmlQWGhiTUYwc2NEMWlQajQrTXpFOFBERTFMSFU5S0dJOFBERStQajR5TkNrdE1USTNMR0k5WWo0K01UTW1NVEF5TXp0alcyRmRQUzB5TkQ1MVAzQTZMVEUwUG5VL2NDc29ZaXN4TURJMFBqNHRNVFF0ZFNrNk1UVThkVDl3S3pNeE56UTBPbkFyS0hVck1UVThQREV3S1N0aWZYSmxkSFZ5YmlCamZYMHNlMXdpTGk5d2IyOXNYQ0k2TWpoOVhTd3pNVHBiWm5WdVkzUnBiMjRvWml4d0xIVXBlM0F1Wlhod2IzSjBjejFtZFc1amRHbHZiaWhtS1h0eVpYUjFjbTRnVDJKcVpXTjBMbXRsZVhNb1ppa3ViV0Z3S0daMWJtTjBhVzl1S0dzcGUzSmxkSFZ5YmlCbVcydGRmU2w5ZlN4Y2JudDlYU3d6TWpwYlpuVnVZM1JwYjI0b1ppeHdMSFVwZTJaMWJtTjBhVzl1SUd3b1lTeGlMR1lwZTJaMWJtTjBhVzl1SUdzb0tYdDJZWElnWWoxM2FXNWtiM2N1YVc1dVpYSlhhV1IwYUN4blBYZHBibVJ2ZHk1cGJtNWxja2hsYVdkb2REdGhJVDA5Wkc5amRXMWxiblF1WW05a2VTWW1LR2M5WVM1blpYUkNiM1Z1WkdsdVowTnNhV1Z1ZEZKbFkzUW9LU3hpUFdjdWNtbG5hSFF0Wnk1c1pXWjBMR2M5Wnk1MGIzQXRaeTVpYjNSMGIyMHBPMnd1ZDJsa2RHZzlaaXBpTzJ3dWFHVnBaMmgwUFdZcVp6dGpLR3d1YzNSNWJHVXNlM2RwWkhSb09tSXJYQ0p3ZUZ3aUxHaGxhV2RvZERwbksxd2ljSGhjSW4wcGZYWmhjaUJzUFdSdlkzVnRaVzUwTG1OeVpXRjBaVVZzWlcxbGJuUW9YQ0pqWVc1MllYTmNJaWs3WXloc0xuTjBlV3hsTEh0aWIzSmtaWEk2TUN4dFlYSm5hVzQ2TUN4d1lXUmthVzVuT2pBc2RHOXdPakFzYkdWbWREb3dmU2s3WVM1aGNIQmxibVJEYUdsc1pDaHNLVHRoUFQwOVpHOWpkVzFsYm5RdVltOWtlU1ltS0d3dWMzUjViR1V1Y0c5emFYUnBiMjQ5WENKaFluTnZiSFYwWlZ3aUxHTW9ZUzV6ZEhsc1pTeDdiV0Z5WjJsdU9qQXNjR0ZrWkdsdVp6b3dmU2twTzNkcGJtUnZkeTVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLRndpY21WemFYcGxYQ0lzYXl3aE1TazdheWdwTzNKbGRIVnlibnRqWVc1MllYTTZiQ3h2YmtSbGMzUnliM2s2Wm5WdVkzUnBiMjRvS1h0M2FXNWtiM2N1Y21WdGIzWmxSWFpsYm5STWFYTjBaVzVsY2loY0luSmxjMmw2WlZ3aUxGeHVheWs3WVM1eVpXMXZkbVZEYUdsc1pDaHNLWDE5ZldaMWJtTjBhVzl1SUdzb1lTeGlLWHRtZFc1amRHbHZiaUJqS0dZcGUzUnllWHR5WlhSMWNtNGdZUzVuWlhSRGIyNTBaWGgwS0dZc1lpbDlZMkYwWTJnb2F5bDdjbVYwZFhKdUlHNTFiR3g5ZlhKbGRIVnliaUJqS0Z3aWQyVmlaMnhjSWlsOGZHTW9YQ0psZUhCbGNtbHRaVzUwWVd3dGQyVmlaMnhjSWlsOGZHTW9YQ0ozWldKbmJDMWxlSEJsY21sdFpXNTBZV3hjSWlsOVpuVnVZM1JwYjI0Z2VDaGhLWHR5WlhSMWNtNWNJbk4wY21sdVoxd2lQVDA5ZEhsd1pXOW1JR0UvWVM1emNHeHBkQ2dwT21GOVpuVnVZM1JwYjI0Z2NpaGhLWHR5WlhSMWNtNWNJbk4wY21sdVoxd2lQVDA5ZEhsd1pXOW1JR0UvWkc5amRXMWxiblF1Y1hWbGNubFRaV3hsWTNSdmNpaGhLVHBoZlhaaGNpQmpQV1lvWENJdUwzVjBhV3d2WlhoMFpXNWtYQ0lwTzNBdVpYaHdiM0owY3oxbWRXNWpkR2x2YmloaEtYdDJZWElnWWoxaGZIeDdmU3hqTEdZc2NDeDFPMkU5ZTMwN2RtRnlJR2M5VzEwc1JUMWJYU3hEUFZ3aWRXNWtaV1pwYm1Wa1hDSTlQVDEwZVhCbGIyWWdkMmx1Wkc5M1B6RTZkMmx1Wkc5M0xtUmxkbWxqWlZCcGVHVnNVbUYwYVc4c1RqMGhNU3h1UFdaMWJtTjBhVzl1S0dFcGUzMHNiVDFtZFc1amRHbHZiaWdwZTMwN1hDSnpkSEpwYm1kY0lqMDlQWFI1Y0dWdlppQmlQMk05Wkc5amRXMWxiblF1Y1hWbGNubFRaV3hsWTNSdmNpaGlLVHBjYmx3aWIySnFaV04wWENJOVBUMTBlWEJsYjJZZ1lpWW1LRndpYzNSeWFXNW5YQ0k5UFQxMGVYQmxiMllnWWk1dWIyUmxUbUZ0WlNZbVhDSm1kVzVqZEdsdmJsd2lQVDA5ZEhsd1pXOW1JR0l1WVhCd1pXNWtRMmhwYkdRbUpsd2lablZ1WTNScGIyNWNJajA5UFhSNWNHVnZaaUJpTG1kbGRFSnZkVzVrYVc1blEyeHBaVzUwVW1WamREOWpQV0k2WENKbWRXNWpkR2x2Ymx3aVBUMDlkSGx3Wlc5bUlHSXVaSEpoZDBGeWNtRjVjM3g4WENKbWRXNWpkR2x2Ymx3aVBUMDlkSGx3Wlc5bUlHSXVaSEpoZDBWc1pXMWxiblJ6UHloMVBXSXNjRDExTG1OaGJuWmhjeWs2S0Z3aVoyeGNJbWx1SUdJL2RUMWlMbWRzT2x3aVkyRnVkbUZ6WENKcGJpQmlQM0E5Y2loaUxtTmhiblpoY3lrNlhDSmpiMjUwWVdsdVpYSmNJbWx1SUdJbUppaG1QWElvWWk1amIyNTBZV2x1WlhJcEtTeGNJbUYwZEhKcFluVjBaWE5jSW1sdUlHSW1KaWhoUFdJdVlYUjBjbWxpZFhSbGN5a3NYQ0psZUhSbGJuTnBiMjV6WENKcGJpQmlKaVlvWnoxNEtHSXVaWGgwWlc1emFXOXVjeWtwTEZ3aWIzQjBhVzl1WVd4RmVIUmxibk5wYjI1elhDSnBiaUJpSmlZb1JUMTRLR0l1YjNCMGFXOXVZV3hGZUhSbGJuTnBiMjV6S1Nrc1hDSnZia1J2Ym1WY0ltbHVJR0ltSmlodVBXSXViMjVFYjI1bEtTeGNJbkJ5YjJacGJHVmNJbWx1SUdJbUppaE9QU0VoWWk1d2NtOW1hV3hsS1N4Y0luQnBlR1ZzVW1GMGFXOWNJbWx1SUdJbUpseHVLRU05SzJJdWNHbDRaV3hTWVhScGJ5a3BLVHRqSmlZb1hDSmpZVzUyWVhOY0lqMDlQV011Ym05a1pVNWhiV1V1ZEc5TWIzZGxja05oYzJVb0tUOXdQV002WmoxaktUdHBaaWdoZFNsN2FXWW9JWEFwZTJNOWJDaG1mSHhrYjJOMWJXVnVkQzVpYjJSNUxHNHNReWs3YVdZb0lXTXBjbVYwZFhKdUlHNTFiR3c3Y0QxakxtTmhiblpoY3p0dFBXTXViMjVFWlhOMGNtOTVmWFU5YXlod0xHRXBmWEpsZEhWeWJpQjFQM3RuYkRwMUxHTmhiblpoY3pwd0xHTnZiblJoYVc1bGNqcG1MR1Y0ZEdWdWMybHZibk02Wnl4dmNIUnBiMjVoYkVWNGRHVnVjMmx2Ym5NNlJTeHdhWGhsYkZKaGRHbHZPa01zY0hKdlptbHNaVHBPTEc5dVJHOXVaVHB1TEc5dVJHVnpkSEp2ZVRwdGZUb29iU2dwTEc0b1hDSjNaV0puYkNCdWIzUWdjM1Z3Y0c5eWRHVmtMQ0IwY25rZ2RYQm5jbUZrYVc1bklIbHZkWElnWW5KdmQzTmxjaUJ2Y2lCbmNtRndhR2xqY3lCa2NtbDJaWEp6SUdoMGRIQTZMeTluWlhRdWQyVmlaMnd1YjNKblhDSXBMRzUxYkd3cGZYMHNlMXdpTGk5MWRHbHNMMlY0ZEdWdVpGd2lPakl5ZlYwc016TTZXMloxYm1OMGFXOXVLR1lzY0N4MUtYdG1kVzVqZEdsdmJpQnNLR0VzWWlsN1ptOXlLSFpoY2lCalBUQTdZenhoTG14bGJtZDBhRHNySzJNcGFXWW9ZVnRqWFQwOVBXSXBjbVYwZFhKdUlHTTdjbVYwZFhKdUxURjlkbUZ5SUdzOVhHNW1LRndpTGk5c2FXSXZkWFJwYkM5bGVIUmxibVJjSWlrc2VEMW1LRndpTGk5c2FXSXZaSGx1WVcxcFkxd2lLU3h5UFdZb1hDSXVMMnhwWWk5MWRHbHNMM0poWmx3aUtTeGpQV1lvWENJdUwyeHBZaTkxZEdsc0wyTnNiMk5yWENJcExHRTlaaWhjSWk0dmJHbGlMM04wY21sdVozTmNJaWtzWWoxbUtGd2lMaTlzYVdJdmQyVmlaMnhjSWlrc1JqMW1LRndpTGk5c2FXSXZaWGgwWlc1emFXOXVYQ0lwTEUwOVppaGNJaTR2YkdsaUwyeHBiV2wwYzF3aUtTeDBQV1lvWENJdUwyeHBZaTlpZFdabVpYSmNJaWtzZVQxbUtGd2lMaTlzYVdJdlpXeGxiV1Z1ZEhOY0lpa3NaejFtS0Z3aUxpOXNhV0l2ZEdWNGRIVnlaVndpS1N4RlBXWW9YQ0l1TDJ4cFlpOXlaVzVrWlhKaWRXWm1aWEpjSWlrc1F6MW1LRndpTGk5c2FXSXZabkpoYldWaWRXWm1aWEpjSWlrc1RqMW1LRndpTGk5c2FXSXZZWFIwY21saWRYUmxYQ0lwTEc0OVppaGNJaTR2YkdsaUwzTm9ZV1JsY2x3aUtTeHRQV1lvWENJdUwyeHBZaTl5WldGa1hDSXBMRUk5WmloY0lpNHZiR2xpTDJOdmNtVmNJaWtzV1QxbUtGd2lMaTlzYVdJdmMzUmhkSE5jSWlrc1REMW1LRndpTGk5c2FXSXZkR2x0WlhKY0lpazdjQzVsZUhCdmNuUnpQV1oxYm1OMGFXOXVLR1lwZTJaMWJtTjBhVzl1SUdnb0tYdHBaaWd3UFQwOVVTNXNaVzVuZEdncFJ5WW1SeTUxY0dSaGRHVW9LU3hVUFc1MWJHdzdaV3h6Wlh0VVBYSXVibVY0ZENob0tUdExLQ2s3Wm05eUtIWmhjaUJoUFZ4dVVTNXNaVzVuZEdndE1Uc3dQRDFoT3kwdFlTbDdkbUZ5SUdJOVVWdGhYVHRpSmlaaUtGVXNiblZzYkN3d0tYMXhMbVpzZFhOb0tDazdSeVltUnk1MWNHUmhkR1VvS1gxOVpuVnVZM1JwYjI0Z2NDZ3BleUZVSmlZd1BGRXViR1Z1WjNSb0ppWW9WRDF5TG01bGVIUW9hQ2twZldaMWJtTjBhVzl1SUhVb0tYdFVKaVlvY2k1allXNWpaV3dvYUNrc1ZEMXVkV3hzS1gxbWRXNWpkR2x2YmlCTVlTaGhLWHRoTG5CeVpYWmxiblJFWldaaGRXeDBLQ2s3ZFNncE8zQmhMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNG9ZU2w3WVNncGZTbDlablZ1WTNScGIyNGdlbUVvWVNsN2NTNW5aWFJGY25KdmNpZ3BPMjFoTG5KbGMzUnZjbVVvS1R0ellTNXlaWE4wYjNKbEtDazdhMkV1Y21WemRHOXlaU2dwTzJSaExuSmxjM1J2Y21Vb0tUdHFZUzV5WlhOMGIzSmxLQ2s3YkdFdWNtVnpkRzl5WlNncE8wY21Ka2N1Y21WemRHOXlaU2dwTzJWaExuQnliMk56TG5KbFpuSmxjMmdvS1R0d0tDazdWaTVtYjNKRllXTm9LR1oxYm1OMGFXOXVLR0VwZTJFb0tYMHBmV1oxYm1OMGFXOXVJRWRoS0dFcGUyWjFibU4wYVc5dUlHSW9ZU2w3ZG1GeUlHTTllMzBzWmoxN2ZUdFBZbXBsWTNRdWEyVjVjeWhoS1M1bWIzSkZZV05vS0daMWJtTjBhVzl1S0dJcGUzWmhjaUJuUFdGYllsMDdlQzVwYzBSNWJtRnRhV01vWnlrL1psdGlYVDE0TG5WdVltOTRLR2NzWEc1aUtUcGpXMkpkUFdkOUtUdHlaWFIxY201N1pIbHVZVzFwWXpwbUxGd2ljM1JoZEdsalhDSTZZMzE5Wm5WdVkzUnBiMjRnWXloaEtYdG1iM0lvTzNFdWJHVnVaM1JvUEdFN0tYRXVjSFZ6YUNodWRXeHNLVHR5WlhSMWNtNGdjWDEyWVhJZ1pqMWlLR0V1WTI5dWRHVjRkSHg4ZTMwcExHYzlZaWhoTG5WdWFXWnZjbTF6Zkh4N2ZTa3NhRDFpS0dFdVlYUjBjbWxpZFhSbGMzeDhlMzBwTEd3OVlpaG1kVzVqZEdsdmJpaGhLWHRtZFc1amRHbHZiaUJpS0dFcGUybG1LR0VnYVc0Z1l5bDdkbUZ5SUdZOVkxdGhYVHRrWld4bGRHVWdZMXRoWFR0UFltcGxZM1F1YTJWNWN5aG1LUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVLR0lwZTJOYllTdGNJaTVjSWl0aVhUMW1XMkpkZlNsOWZYWmhjaUJqUFdzb2UzMHNZU2s3WkdWc1pYUmxJR011ZFc1cFptOXliWE03WkdWc1pYUmxJR011WVhSMGNtbGlkWFJsY3p0a1pXeGxkR1VnWXk1amIyNTBaWGgwTzF3aWMzUmxibU5wYkZ3aWFXNGdZeVltWXk1emRHVnVZMmxzTG05d0ppWW9ZeTV6ZEdWdVkybHNMbTl3UW1GamF6MWpMbk4wWlc1amFXd3ViM0JHY205dWREMWpMbk4wWlc1amFXd3ViM0FzWkdWc1pYUmxJR011YzNSbGJtTnBiQzV2Y0NrN1lpaGNJbUpzWlc1a1hDSXBPMklvWENKa1pYQjBhRndpS1R0aUtGd2lZM1ZzYkZ3aUtUdGlLRndpYzNSbGJtTnBiRndpS1R0aUtGd2ljRzlzZVdkdmJrOW1abk5sZEZ3aUtUdGNibUlvWENKelkybHpjMjl5WENJcE8ySW9YQ0p6WVcxd2JHVmNJaWs3Y21WMGRYSnVJR045S0dFcEtUdGhQWHRuY0hWVWFXMWxPakFzWTNCMVZHbHRaVG93TEdOdmRXNTBPakI5TzNaaGNpQm1QV1ZoTG1OdmJYQnBiR1VvYkN4b0xHY3NaaXhoS1N4dFBXWXVaSEpoZHl4dVBXWXVZbUYwWTJnc2NEMW1Mbk5qYjNCbExIRTlXMTA3Y21WMGRYSnVJR3NvWm5WdVkzUnBiMjRvWVN4aUtYdDJZWElnWmp0cFppaGNJbVoxYm1OMGFXOXVYQ0k5UFQxMGVYQmxiMllnWVNseVpYUjFjbTRnY0M1allXeHNLSFJvYVhNc2JuVnNiQ3hoTERBcE8ybG1LRndpWm5WdVkzUnBiMjVjSWowOVBYUjVjR1Z2WmlCaUtXbG1LRndpYm5WdFltVnlYQ0k5UFQxMGVYQmxiMllnWVNsbWIzSW9aajB3TzJZOFlUc3JLMllwY0M1allXeHNLSFJvYVhNc2JuVnNiQ3hpTEdZcE8yVnNjMlVnYVdZb1FYSnlZWGt1YVhOQmNuSmhlU2hoS1NsbWIzSW9aajB3TzJZOFlTNXNaVzVuZEdnN0t5dG1LWEF1WTJGc2JDaDBhR2x6TEdGYlpsMHNZaXhtS1R0bGJITmxJSEpsZEhWeWJpQndMbU5oYkd3b2RHaHBjeXhoTEdJc01DazdaV3h6WlNCcFppaGNJbTUxYldKbGNsd2lQVDA5ZEhsd1pXOW1JR0VwZTJsbUtEQThZU2x5WlhSMWNtNGdiaTVqWVd4c0tIUm9hWE1zWXloaGZEQXBMR0Y4TUNsOVpXeHpaU0JwWmloQmNuSmhlUzVwYzBGeWNtRjVLR0VwS1h0cFppaGhMbXhsYm1kMGFDbHlaWFIxY200Z2JpNWpZV3hzS0hSb2FYTXNYRzVoTEdFdWJHVnVaM1JvS1gxbGJITmxJSEpsZEhWeWJpQnRMbU5oYkd3b2RHaHBjeXhoS1gwc2UzTjBZWFJ6T21GOUtYMW1kVzVqZEdsdmJpQmFLR0VwZTFFdWNIVnphQ2hoS1R0d0tDazdjbVYwZFhKdWUyTmhibU5sYkRwbWRXNWpkR2x2YmlncGUyWjFibU4wYVc5dUlHSW9LWHQyWVhJZ1lUMXNLRkVzWWlrN1VWdGhYVDFSVzFFdWJHVnVaM1JvTFRGZE95MHRVUzVzWlc1bmRHZzdNRDQ5VVM1c1pXNW5kR2dtSm5Vb0tYMTJZWElnWXoxc0tGRXNZU2s3VVZ0alhUMWlmWDE5Wm5WdVkzUnBiMjRnUkNncGUzWmhjaUJoUFU4dWRtbGxkM0J2Y25Rc1lqMVBMbk5qYVhOemIzSmZZbTk0TzJGYk1GMDlZVnN4WFQxaVd6QmRQV0piTVYwOU1EdFZMblpwWlhkd2IzSjBWMmxrZEdnOVZTNW1jbUZ0WldKMVptWmxjbGRwWkhSb1BWVXVaSEpoZDJsdVowSjFabVpsY2xkcFpIUm9QV0ZiTWwwOVlsc3lYVDF4TG1SeVlYZHBibWRDZFdabVpYSlhhV1IwYUR0VkxuWnBaWGR3YjNKMFNHVnBaMmgwUFZVdVpuSmhiV1ZpZFdabVpYSklaV2xuYUhROVZTNWtjbUYzYVc1blFuVm1abVZ5U0dWcFoyaDBQV0ZiTTEwOVlsc3pYVDF4TG1SeVlYZHBibWRDZFdabVpYSklaV2xuYUhSOVpuVnVZM1JwYjI0Z1N5Z3BlMVV1ZEdsamF5czlNVHRWTG5ScGJXVTlkbUVvS1R0RUtDazdaV0V1Y0hKdlkzTXVjRzlzYkNncGZXWjFibU4wYVc5dUlFRmhLQ2w3UkNncE8xeHVaV0V1Y0hKdlkzTXVjbVZtY21WemFDZ3BPMGNtSmtjdWRYQmtZWFJsS0NsOVpuVnVZM1JwYjI0Z2RtRW9LWHR5WlhSMWNtNG9ZeWdwTFdKaEtTOHhSVE45WmoxaUtHWXBPMmxtS0NGbUtYSmxkSFZ5YmlCdWRXeHNPM1poY2lCeFBXWXVaMndzVXoxeExtZGxkRU52Ym5SbGVIUkJkSFJ5YVdKMWRHVnpLQ2s3Y1M1cGMwTnZiblJsZUhSTWIzTjBLQ2s3ZG1GeUlHMWhQVVlvY1N4bUtUdHBaaWdoYldFcGNtVjBkWEp1SUc1MWJHdzdkbUZ5SUdkaFBXRW9LU3hYUFZrb0tTeFNQVzFoTG1WNGRHVnVjMmx2Ym5Nc1J6MU1LSEVzVWlrc1ltRTlZeWdwTEc1aFBYRXVaSEpoZDJsdVowSjFabVpsY2xkcFpIUm9MSGxoUFhFdVpISmhkMmx1WjBKMVptWmxja2hsYVdkb2RDeFZQWHQwYVdOck9qQXNkR2x0WlRvd0xIWnBaWGR3YjNKMFYybGtkR2c2Ym1Fc2RtbGxkM0J2Y25SSVpXbG5hSFE2ZVdFc1puSmhiV1ZpZFdabVpYSlhhV1IwYURwdVlTeG1jbUZ0WldKMVptWmxja2hsYVdkb2REcDVZU3hrY21GM2FXNW5RblZtWm1WeVYybGtkR2c2Ym1Fc1pISmhkMmx1WjBKMVptWmxja2hsYVdkb2REcDVZU3h3YVhobGJGSmhkR2x2T21ZdWNHbDRaV3hTWVhScGIzMHNhV0U5VFNoeExGSXBMR3RoUFhRb2NTeFhMR1lwTEhKaFBYa29jU3hTTEd0aExGY3BMRzVoUFU0b2NTeFNMR2xoTEd0aExHZGhLU3h6WVQxdUtIRXNYRzVuWVN4WExHWXBMR1JoUFdjb2NTeFNMR2xoTEdaMWJtTjBhVzl1S0NsN1pXRXVjSEp2WTNNdWNHOXNiQ2dwZlN4VkxGY3NaaWtzYW1FOVJTaHhMRklzYVdFc1Z5eG1LU3hzWVQxREtIRXNVaXhwWVN4a1lTeHFZU3hYS1N4bFlUMUNLSEVzWjJFc1VpeHBZU3hyWVN4eVlTeGtZU3hzWVN4N2ZTeHVZU3h6WVN4N1pXeGxiV1Z1ZEhNNmJuVnNiQ3h3Y21sdGFYUnBkbVU2TkN4amIzVnVkRG90TVN4dlptWnpaWFE2TUN4cGJuTjBZVzVqWlhNNkxURjlMRlVzUnl4bUtTeG5ZVDF0S0hFc2JHRXNaV0V1Y0hKdlkzTXVjRzlzYkN4VkxGTXNVaWtzVHoxbFlTNXVaWGgwTEdoaFBYRXVZMkZ1ZG1GekxGRTlXMTBzY0dFOVcxMHNWajFiWFN4WVBWdG1MbTl1UkdWemRISnZlVjBzVkQxdWRXeHNPMmhoSmlZb2FHRXVZV1JrUlhabGJuUk1hWE4wWlc1bGNpaGNJbmRsWW1kc1kyOXVkR1Y0ZEd4dmMzUmNJaXhNWVN3aE1Ta3NhR0V1WVdSa1JYWmxiblJNYVhOMFpXNWxjaWhjSW5kbFltZHNZMjl1ZEdWNGRISmxjM1J2Y21Wa1hDSXNlbUVzSVRFcEtUdEJZU2dwTzFNOWF5aEhZU3g3WTJ4bFlYSTZablZ1WTNScGIyNG9ZU2w3ZG1GeUlHSTlNRHRsWVM1d2NtOWpjeTV3YjJ4c0tDazdkbUZ5SUdNOVlTNWpiMnh2Y2p0akppWW9jUzVqYkdWaGNrTnZiRzl5S0N0ald6QmRmSHd3TEN0ald6RmRmSHd3TEN0ald6SmRmSHd3TEZ4dUsyTmJNMTE4ZkRBcExHSjhQVEUyTXpnMEtUdGNJbVJsY0hSb1hDSnBiaUJoSmlZb2NTNWpiR1ZoY2tSbGNIUm9LQ3RoTG1SbGNIUm9LU3hpZkQweU5UWXBPMXdpYzNSbGJtTnBiRndpYVc0Z1lTWW1LSEV1WTJ4bFlYSlRkR1Z1WTJsc0tHRXVjM1JsYm1OcGJId3dLU3hpZkQweE1ESTBLVHR4TG1Oc1pXRnlLR0lwZlN4d2NtOXdPbmd1WkdWbWFXNWxMbUpwYm1Rb2JuVnNiQ3d4S1N4amIyNTBaWGgwT25ndVpHVm1hVzVsTG1KcGJtUW9iblZzYkN3eUtTeGNJblJvYVhOY0lqcDRMbVJsWm1sdVpTNWlhVzVrS0c1MWJHd3NNeWtzWkhKaGR6cEhZU2g3ZlNrc1luVm1abVZ5T21aMWJtTjBhVzl1S0dFcGUzSmxkSFZ5YmlCcllTNWpjbVZoZEdVb1lTd3pORGsyTWl3aE1Td2hNU2w5TEdWc1pXMWxiblJ6T21aMWJtTjBhVzl1S0dFcGUzSmxkSFZ5YmlCeVlTNWpjbVZoZEdVb1lTd2hNU2w5TEhSbGVIUjFjbVU2WkdFdVkzSmxZWFJsTWtRc1kzVmlaVHBrWVM1amNtVmhkR1ZEZFdKbExISmxibVJsY21KMVptWmxjanBxWVM1amNtVmhkR1VzWm5KaGJXVmlkV1ptWlhJNmJHRXVZM0psWVhSbExHWnlZVzFsWW5WbVptVnlRM1ZpWlRwc1lTNWpjbVZoZEdWRGRXSmxMR0YwZEhKcFluVjBaWE02VXl4bWNtRnRaVHBhTEc5dU9tWjFibU4wYVc5dUtHRXNZaWw3ZG1GeUlHTTdjM2RwZEdOb0tHRXBlMk5oYzJVZ1hDSm1jbUZ0WlZ3aU9uSmxkSFZ5YmlCYUtHSXBPMXh1WTJGelpTQmNJbXh2YzNSY0lqcGpQWEJoTzJKeVpXRnJPMk5oYzJVZ1hDSnlaWE4wYjNKbFhDSTZZejFXTzJKeVpXRnJPMk5oYzJVZ1hDSmtaWE4wY205NVhDSTZZejFZZldNdWNIVnphQ2hpS1R0eVpYUjFjbTU3WTJGdVkyVnNPbVoxYm1OMGFXOXVLQ2w3Wm05eUtIWmhjaUJoUFRBN1lUeGpMbXhsYm1kMGFEc3JLMkVwYVdZb1kxdGhYVDA5UFdJcGUyTmJZVjA5WTF0akxteGxibWQwYUMweFhUdGpMbkJ2Y0NncE8ySnlaV0ZyZlgxOWZTeHNhVzFwZEhNNmFXRXNhR0Z6UlhoMFpXNXphVzl1T21aMWJtTjBhVzl1S0dFcGUzSmxkSFZ5YmlBd1BEMXBZUzVsZUhSbGJuTnBiMjV6TG1sdVpHVjRUMllvWVM1MGIweHZkMlZ5UTJGelpTZ3BLWDBzY21WaFpEcG5ZU3hrWlhOMGNtOTVPbVoxYm1OMGFXOXVLQ2w3VVM1c1pXNW5kR2c5TUR0MUtDazdhR0VtSmlob1lTNXlaVzF2ZG1WRmRtVnVkRXhwYzNSbGJtVnlLRndpZDJWaVoyeGpiMjUwWlhoMGJHOXpkRndpTEV4aEtTeG9ZUzV5WlcxdmRtVkZkbVZ1ZEV4cGMzUmxibVZ5S0Z3aWQyVmlaMnhqYjI1MFpYaDBjbVZ6ZEc5eVpXUmNJaXg2WVNrcE8zTmhMbU5zWldGeUtDazdiR0V1WTJ4bFlYSW9LVHRxWVM1amJHVmhjaWdwTzJSaExtTnNaV0Z5S0NrN2NtRXVZMnhsWVhJb0tUdHJZUzVqYkdWaGNpZ3BPMGNtSmtjdVkyeGxZWElvS1R0WUxtWnZja1ZoWTJnb1puVnVZM1JwYjI0b1lTbDdZU2dwZlNsOUxGeHVYMmRzT25Fc1gzSmxabkpsYzJnNlFXRXNjRzlzYkRwbWRXNWpkR2x2YmlncGUwc29LVHRISmlaSExuVndaR0YwWlNncGZTeHViM2M2ZG1Fc2MzUmhkSE02VjMwcE8yWXViMjVFYjI1bEtHNTFiR3dzVXlrN2NtVjBkWEp1SUZOOWZTeDdYQ0l1TDJ4cFlpOWhkSFJ5YVdKMWRHVmNJam94TEZ3aUxpOXNhV0l2WW5WbVptVnlYQ0k2TWl4Y0lpNHZiR2xpTDJOdmNtVmNJam8zTEZ3aUxpOXNhV0l2WkhsdVlXMXBZMXdpT2pnc1hDSXVMMnhwWWk5bGJHVnRaVzUwYzF3aU9qa3NYQ0l1TDJ4cFlpOWxlSFJsYm5OcGIyNWNJam94TUN4Y0lpNHZiR2xpTDJaeVlXMWxZblZtWm1WeVhDSTZNVEVzWENJdUwyeHBZaTlzYVcxcGRITmNJam94TWl4Y0lpNHZiR2xpTDNKbFlXUmNJam94TXl4Y0lpNHZiR2xpTDNKbGJtUmxjbUoxWm1abGNsd2lPakUwTEZ3aUxpOXNhV0l2YzJoaFpHVnlYQ0k2TVRVc1hDSXVMMnhwWWk5emRHRjBjMXdpT2pFMkxGd2lMaTlzYVdJdmMzUnlhVzVuYzF3aU9qRTNMRndpTGk5c2FXSXZkR1Y0ZEhWeVpWd2lPakU0TEZ3aUxpOXNhV0l2ZEdsdFpYSmNJam94T1N4Y0lpNHZiR2xpTDNWMGFXd3ZZMnh2WTJ0Y0lqb3lNQ3hjSWk0dmJHbGlMM1YwYVd3dlpYaDBaVzVrWENJNk1qSXNYQ0l1TDJ4cFlpOTFkR2xzTDNKaFpsd2lPakk1TEZ3aUxpOXNhV0l2ZDJWaVoyeGNJam96TW4xZGZTeDdmU3hiTXpOZEtTZ3pNeWw5S1R0Y2JpSmRmUT09Il19
const quad = require('glsl-quad');
const regl = require('regl')();
let frag = `
THIS IS AN OBVIOUSLY BAD SHADER.
IT SHOULD THROW AN ERROR.
BUT REGL ONLY THROWS AN ERROR IN DEBUG MODE.
WHICH MEANS WE WILL ONLY SEE A WARNING. (CHECK
THE CONSOLE).
CAN WE GET REQUIREBIN
TO USE DEBUG MODE?
`;
let draw = regl({
vert: quad.shader.vert,
frag: frag,
attributes: {
a_position: quad.verts,
a_uv: quad.uvs
},
elements: quad.indices,
uniforms: {
u_clip_y: 1
}
});
draw();
;}, 0)
{
"name": "requirebin-sketch",
"version": "1.0.0",
"dependencies": {
"glsl-quad": "1.0.0",
"regl": "1.2.1"
}
}
<!-- contents of this file will be placed inside the <body> -->
<!-- contents of this file will be placed inside the <head> -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment