This example demonstrates the DataViews Card Layout Engine.
The card layout engine places each row in a defined block, or card.
Each card is formatted in a row template and placed in a cell in a layout grid.
<!DOCTYPE html>
<html lang="en">
<head>
<base href="/dataviewsjs/demos/en/sample/Showcase/Employees/purejs/" />
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="This example demonstrates the DataViews Card Layout Engine." />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Employees | Showcase | MESCIUS DataViewsJS JavaScript Demos</title>
<link href="/dataviewsjs/demos/node_modules/normalize.css/normalize.css" rel="stylesheet" type="text/css" />
<link href="/dataviewsjs/demos/static/css/base.css" rel="stylesheet" type="text/css" />
<link href="/dataviewsjs/demos/static/css/bootstrap-snippet.min.css" rel="stylesheet" type="text/css" />
<link
href="/dataviewsjs/demos/node_modules/@fortawesome/fontawesome-free/css/all.min.css"
rel="stylesheet"
type="text/css"
/>
<link href="/dataviewsjs/demos/static/dataviews/gc.dataviews.core.min.css" rel="stylesheet" type="text/css" />
<link href="/dataviewsjs/demos/static/dataviews/gc.dataviews.cardlayout.min.css" rel="stylesheet" type="text/css" />
<link href="styles.css" rel="stylesheet" type="text/css" />
<script src="/dataviewsjs/demos/static/js/app-polyfills.min.js" type="text/javascript"></script>
<script type="text/javascript">
window.process = {
env: {
NODE_ENV: 'production',
USE_NPM: false,
USE_CDN: false,
SITE_ROOT: '/dataviewsjs/demos',
FRAMEWORK: 'purejs',
DVJS_LICENSE_KEY:
'E348418822993781#B0EWvwY4dNNVQqJHUDpFROVWe5ZWNYFlVQFmRsJWRht4Z6lDO4Vla7YUaXhEWxd7Z5YXMuRnY7tWTQRHSlVnaYlXNhlEOpdkZ0FHWYJ5QKd6VXN5aR3ieGhUav9kZTBXWahkYBhEVutmZ72CbjdlZvV5TVdGdiplQsZXe95kUmNmZVF5cJ3mcypWNyx4UydESE3UblxGZyE7KQ94R4BjbUxUewsiaoREMxRDNllWREV6Voh4Q4dDZPRjWrIzUJl4TERXcQZWMHp4Sp9WaMZzN5o6StJmVDJXcwIVVmR6UMVGOlxUW8RmTxZDZTJWVN5GZqJHZuVDMkVGSW3WdxNzKCdDdSB7TzY7cqlnMU5GVyNzNP9WMyhDRvEEOFdkQORDM4dFVlFFWqFWSyMjNQJiOiMlIsISQyIkQ9YjQxIiOigkIsUTM7YjNxYTM0IicfJye&Qf35VfikFVVljI0IyQiwiIxYHITp4c7VWaWFGdhRkI0IiTis7W0ICZyBlIsIiNxUTN6ADI8EDMxMjMwIjI0ICdyNkIsIyc59yc5l6YzVWbuoCLwpmLzVXajNXZt9iKs2WauMXdpN6cl5mLqwSbvNmLzVXajNXZt9iKsAnau26YuMXdpN6cl5mLqwSbvNmL6VGZ9RXajVGchJ7ZuoCLuNmLt36YukHdpNWZwFmcn9iKs46bj9Se4l6YlBXYydmLqwicr9ybj9Se4l6YlBXYydmLqwCcq9ybj9Se4l6YlBXYydmLqIiOiMXbEJCLiMVVJN4UF5kI0ISYONkIsUWdyRnOiwmdFJCLiEDO7MTO9IjM8gTM4gDNzIiOiQWSisnOiQkIsISP3EkVxBVUHFDMplzLlVUdGd7cI9UeIt4SshESzV7NvY7ZxlDOuNTb5tzLr',
SJS_LICENSE_KEY:
'E518585142165236#B0wm4nx4QzdlTHRTSOFzcvVnaJdjSnNEeXdTMUtSUzk6bU94QuVXNwZVZjd4SzYjcadXRIVEMzEXTThkVyR7R85UayoHZZBTYQ5mZyh4Shd6VxFXazF4cBNGRG5WTvUGTsV4T6knQYRzKxxUdk9EarplU7d6VLF6KIR7bPJ5N6ZUMWZWaURGRKRDbLJDN5YjSN5mUoxmaxonSD56LEh7Y7RXenpmTvomevZlV9dkaysCO7hTRQFHcGRWQyc5LI9kQmB7QwR4Z7ZHOR3CSXp6SiFWYzFXeXZUSp94K8VDTkFjdwl4KptSYlRWcDxmNE5kS6kzdrkVcNJXROVGbLJkcTNGRzIER8tmd4YGNhh7dxAnMvIHRv46VtBXS4U5KvJ6dZJ6M5p4TxIjd9I5QSpXTTV6SDZXb7lzaL56ZiojITJCLikTQxUTQFV4NiojIIJCLyETO7UzM7kTO0IicfJye&Qf35VfikkR9IkI0IyQiwiIyEjL6ByUKBCZhVmcwNlI0IiTis7W0ICZyBlIsISNwkTN6ADI8EDMxMjMwIjI0ICdyNkIsIyc59yc5l6YzVWbuoCLwpmLzVXajNXZt9iKs2WauMXdpN6cl5mLqwSbvNmLzVXajNXZt9iKsAnau26YuMXdpN6cl5mLqwSbvNmL6VGZ9RXajVGchJ7ZuoCLuNmLt36YukHdpNWZwFmcn9iKs46bj9Se4l6YlBXYydmLqwicr9ybj9Se4l6YlBXYydmLqwCcq9ybj9Se4l6YlBXYydmLqIiOiMXbEJCLiMVVJN4UF5kI0ISYONkIsUWdyRnOiwmdFJCLiYzMyUjNxIDNxUDO5gTM5IiOiQWSiwSfdtlOicGbmJCLlNHbhZmOiI7ckJye0ICbuFkI1pjIEJCLi4TPRtGOhtWWEFWd4IDOLRVRvx4SyMGcDhTW6n4ep',
},
};
</script>
<script src="/dataviewsjs/demos/node_modules/jquery/dist/jquery.min.js" type="text/javascript"></script>
<script src="/dataviewsjs/demos/static/dataviews/gc.dataviews.common.min.js" type="text/javascript"></script>
<script src="/dataviewsjs/demos/static/dataviews/gc.dataviews.core.min.js" type="text/javascript"></script>
<script src="/dataviewsjs/demos/static/dataviews/gc.dataviews.cardlayout.min.js" type="text/javascript"></script>
<script src="/dataviewsjs/demos/static/js/license.js" type="text/javascript"></script>
</head>
<body class="theme-default">
<noscript>You need to enable JavaScript to run this app.</noscript>
<template id="displayGrid" style="display: none">
<div class="employee-container">
<div data-column="employee"></div>
</div>
</template>
<template id="displayList" style="display: none">
<div class="employee-container list-view">
<div data-column="employee"></div>
</div>
</template>
<div class="main-container">
<div class="sample-options">
<div class="btn-group">
<button id="disp-lists" class="btn btn-default display-button">
<span class="demo-icon icon-th-list"></span>
</button>
<button id="disp-cards" class="btn btn-default display-button active">
<span class="demo-icon icon-th"></span>
</button>
</div>
</div>
<div id="grid" class="grid"></div>
</div>
<script src="data.js" type="text/javascript"></script>
<script src="app.js" type="text/javascript"></script>
</body>
</html>
// presenters
var gridPresenter =
'\n <div class="employee">\n <div class="flex-row">\n <img class="employee-pic" title="{{=it.employee}}" src="{{=it.photo}}" />\n <div class="employee-info">\n <div class="employee-name">{{=it.employee}}</div>\n <div class="employee-position">{{=it.position}}</div>\n <div class="employee-unit">{{=it.unit}}</div>\n </div>\n </div>\n <div class="flex-row">\n <div class="employee-salary-text {{=it.class}}">{{=it.salaryText}}</div>\n <div>\n <div class="employee-salary">\n <div class="employee-chart {{=it.class}}">\n <svg width="80px" height="80px" viewBox="0 0 42 42" class="donut">\n <circle class="donut-hole" cx="21" cy="21" r="15.91549430918954" fill="#fff"></circle>\n <circle class="donut-ring" cx="21" cy="21" r="15.91549430918954" fill="transparent" stroke="#d2d3d4" stroke-width="4"></circle>\n <circle class="donut-segment" cx="21" cy="21" r="15.91549430918954" fill="transparent" stroke="currentColor" stroke-width="4" stroke-dasharray="{{=it.stake}} {{=it.rest}}" stroke-dashoffset="25"></circle>\n </svg>\n </div>\n <div>Salary</div>\n </div>\n <div class="communication">\n <a class="communication-icon video fab fa-skype" href="skype:{{=it.skype}}" title="{{=it.skype}}"></a>\n <a class="communication-icon voice fas fa-headset" href="tel:{{=it.phone}}" title="{{=it.phone}}"></a>\n <a class="communication-icon email far fa-envelope" href="mailto:{{=it.email}}" title="{{=it.email}}"></a>\n </div>\n </div>\n </div>\n </div>\n';
var listPresenter =
'\n <div class="employee employee-row">\n <div class="flex-col">\n <div class="flex-row">\n <div class="flex-col">\n <img class="employee-pic" title="{{=it.employee}}" src="{{=it.photo}}" />\n </div>\n <div class="flex-col">\n <div class="employee-info">\n <div class="employee-name">{{=it.employee}}</div>\n <div class="employee-position">{{=it.position}}</div>\n <div class="employee-unit">{{=it.unit}}</div>\n </div>\n </div>\n </div>\n </div>\n <div class="flex-col">\n <div class="employee-salary-text {{=it.class}}">{{=it.salaryText}}</div>\n <div>\n <div class="communication">\n <a class="communication-icon video fab fa-skype" href="skype:{{=it.skype}}" title="{{=it.skype}}"></a>\n <a class="communication-icon voice fas fa-headset" href="tel:{{=it.phone}}" title="{{=it.phone}}"></a>\n <a class="communication-icon email far fa-envelope" href="mailto:{{=it.email}}" title="{{=it.email}}"></a>\n </div>\n </div>\n </div>\n <div class="flex-col">\n <div class="employee-salary">\n <div class="employee-chart {{=it.class}}">\n <svg width="80px" height="80px" viewBox="0 0 42 42" class="donut">\n <circle class="donut-hole" cx="21" cy="21" r="15.91549430918954" fill="#fff"></circle>\n <circle class="donut-ring" cx="21" cy="21" r="15.91549430918954" fill="transparent" stroke="#d2d3d4" stroke-width="4"></circle>\n <circle class="donut-segment" cx="21" cy="21" r="15.91549430918954" fill="transparent" stroke="currentColor" stroke-width="4" stroke-dasharray="{{=it.stake}} {{=it.rest}}" stroke-dashoffset="25"></circle>\n </svg>\n </div>\n <div>Salary</div>\n </div>\n </div>\n </div>\n'; // columns
var cols = function cols(asList) {
return [
{
id: 'employee',
dataField: 'employee',
presenter: asList ? listPresenter : gridPresenter,
},
];
};
var cardLayoutOptions = {
cardHeight: 260,
cardWidth: 320,
rowTemplate: '#displayGrid',
};
var listLayoutOptions = {
cardHeight: 125,
cardWidth: 650,
rowTemplate: '#displayList',
};
function display(asList) {
var activeClass = 'active';
var $listView = $('#disp-lists');
var $cardView = $('#disp-cards');
$listView.removeClass(activeClass);
$cardView.removeClass(activeClass);
if (asList) {
$listView.addClass(activeClass);
} else {
$cardView.addClass(activeClass);
}
dataView.columns = cols(asList);
dataView.scrollOffset = {
viewport: {
top: 0,
left: 0,
},
};
var options = asList ? listLayoutOptions : cardLayoutOptions;
Object.assign(dataView.layoutEngine.options, options);
dataView.invalidate();
}
var dataView = new GC.DataViews.DataView(
document.getElementById('grid'),
data,
cols(false),
new GC.DataViews.CardLayout(cardLayoutOptions)
);
$('#disp-lists').click(function () {
return display(true);
});
$('#disp-cards').click(function () {
return display(false);
});
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly)
symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
keys.push.apply(keys, symbols);
}
return keys;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
if (i % 2) {
ownKeys(Object(source), true).forEach(function (key) {
_defineProperty(target, key, source[key]);
});
} else if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
ownKeys(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
}
return target;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
} else {
obj[key] = value;
}
return obj;
}
var employees = [
{
lastName: 'Engstrom',
firstName: 'Rose',
photo: 'https://www.fakepersongenerator.com/Face/female/female1021974882293.jpg',
position: 'Stock Clerk',
unit: 'Shipping',
skype: 'engstrom',
phone: '773-727-3197',
email: 'engstrom@company.com',
salary: 30000,
},
{
lastName: 'Forbis',
firstName: 'Andrew',
photo: 'https://www.fakepersongenerator.com/Face/male/male1084656357056.jpg',
position: 'Shipping Clerk',
unit: 'Shipping',
skype: 'forbis',
phone: '218-364-9490',
email: 'forbis@company.com',
salary: 24000,
},
{
lastName: 'Williams',
firstName: 'Lois',
photo: 'https://www.fakepersongenerator.com/Face/female/female1022305491760.jpg',
position: 'Stock Clerk',
unit: 'Shipping',
skype: 'williams',
phone: '218-640-7250',
email: 'williams@company.com',
salary: 17000,
},
{
lastName: 'Gardner',
firstName: 'Pamela',
photo: 'https://www.fakepersongenerator.com/Face/male/male108459814588.jpg',
position: 'Shipping Clerk',
unit: 'Shipping',
skype: 'gardner',
phone: '337-540-9762',
email: 'gardner@company.com',
salary: 9000,
},
{
lastName: 'Dock',
firstName: 'James',
photo: 'https://www.fakepersongenerator.com/Face/male/male20161086676100403.jpg',
position: 'Stock Clerk',
unit: 'Shipping',
skype: 'dock',
phone: '941-977-9603',
email: 'dock@company.com',
salary: 8000,
},
{
lastName: 'Graham',
firstName: 'Douglas',
photo: 'https://www.fakepersongenerator.com/Face/male/male2017108602255634.jpg',
position: 'Shipping Clerk',
unit: 'Shipping',
skype: 'graham',
phone: '904-803-9666',
email: 'graham@company.com',
salary: 6000,
},
{
lastName: 'Decaro',
firstName: 'Caroline',
photo: 'https://www.fakepersongenerator.com/Face/female/female20141023871126374.jpg',
position: 'Stock Clerk',
unit: 'Shipping',
skype: 'decaro',
phone: '586-758-8469',
email: 'decaro@company.com',
salary: 5000,
},
{
lastName: 'Rosa',
firstName: 'Viola',
photo: 'https://www.fakepersongenerator.com/Face/female/female20151024462987213.jpg',
position: 'Shipping Clerk',
unit: 'Shipping',
skype: 'rosa',
phone: '269-240-6811',
email: 'rosa@company.com',
salary: 5000,
},
{
lastName: 'Butler',
firstName: 'Dennis',
photo: 'https://www.fakepersongenerator.com/Face/male/male1084855365204.jpg',
position: 'Stock Clerk',
unit: 'Shipping',
skype: 'butler',
phone: '717-518-5737',
email: 'butler@company.com',
salary: 5000,
},
{
lastName: 'Sais',
firstName: 'Anne',
photo: 'https://www.fakepersongenerator.com/Face/female/female20141023848869934.jpg',
position: 'Stock Clerk',
unit: 'Shipping',
skype: 'sais',
phone: '831-821-0981',
email: 'sais@company.com',
salary: 5000,
},
{
lastName: 'Asbury',
firstName: 'Margaret',
photo: 'https://www.fakepersongenerator.com/Face/female/female20161025194525421.jpg',
position: 'Stock Clerk',
unit: 'Shipping',
skype: 'asbury',
phone: '602-390-6041',
email: 'asbury@company.com',
salary: 12000,
},
{
lastName: 'Furr',
firstName: 'Paul',
photo: 'https://www.fakepersongenerator.com/Face/male/male20161086617587128.jpg',
position: 'Stock Clerk',
unit: 'Shipping',
skype: 'furr',
phone: '606-610-7430',
email: 'furr@company.com',
salary: 14000,
},
{
lastName: 'Flanagan',
firstName: 'Joanne',
photo: 'https://www.fakepersongenerator.com/Face/female/female1023042297760.jpg',
position: 'Stock Clerk',
unit: 'Shipping',
skype: 'flanagan',
phone: '254-998-0463',
email: 'flanagan@company.com',
salary: 7000,
},
]; // max salary
var maxSalary = Math.max.apply(
Math,
employees.map(function (item) {
return item.salary;
})
); // extend data structure
var data = employees.map(function (entry) {
return _objectSpread(
_objectSpread({}, entry),
{},
{
employee: ''.concat(entry.firstName, ' ').concat(entry.lastName),
stake: Math.round((entry.salary * 100) / maxSalary),
rest: 100 - Math.round((entry.salary * 100) / maxSalary),
class: maxSalary / 2 < entry.salary ? 'high' : 'base',
salaryText: '$'.concat(entry.salary / 1000, 'k'),
}
);
});
@charset "UTF-8";
@font-face {
font-family: "spreadview-demo-icon";
src: url(data:application/font-woff;base64,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) format("woff");
}
.demo-icon {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: inline-block;
font-family: "spreadview-demo-icon";
font-style: normal;
font-variant: normal;
text-align: center;
text-transform: none;
}
.icon-th:before {
content: "";
}
.icon-th-list:before {
content: "";
}
.main-container {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
background: #efefef;
padding: 6px;
overflow: hidden;
}
.sample-options {
flex-grow: 0;
flex-shrink: 0;
display: flex;
box-sizing: border-box;
overflow: hidden;
padding: 6px;
}
.grid {
width: 100%;
flex-grow: 1;
flex-shrink: 1;
}
.card-layout .gc-row {
display: flex;
}
.card-layout .gc-cell {
display: flex;
width: 100%;
}
.list-view .gc-row {
display: flex;
}
.list-view .gc-cell {
height: 100%;
}
.gc-grid {
border: 0;
}
.flex-row {
display: flex;
flex-direction: row;
align-items: inherit;
}
.flex-col {
display: flex;
flex-direction: column;
align-items: inherit;
}
.employee {
display: flex;
padding: 10px;
width: 100%;
box-sizing: border-box;
flex-direction: column;
}
.employee.employee-row {
align-items: center;
justify-content: space-between;
flex-direction: row;
height: 100%;
padding: 0 48px;
}
.employee-container {
display: flex;
align-items: center;
margin: 6px;
overflow: hidden;
border: 1px solid #e2e2e2;
background: white;
width: 100%;
}
.employee-info {
padding-left: 12px;
}
.employee-row .employee-info {
min-width: 150px;
padding-left: 24px;
}
.employee-pic {
width: 48px;
height: 48px;
display: block;
border-radius: 50%;
}
.employee-name {
font-weight: bold;
margin-bottom: 6px;
}
.employee-position {
margin-bottom: 3px;
}
.employee-salary {
display: flex;
flex-direction: column;
align-items: center;
}
.employee-chart {
position: relative;
display: block;
width: 80px;
height: 80px;
color: green;
}
.employee-chart.high {
color: #ef4242;
}
.employee-salary-text {
font-size: 2.5rem;
font-weight: 600;
flex: 1 1 auto;
text-align: center;
letter-spacing: -0.035em;
padding-top: 24px;
color: steelblue;
}
.employee-salary-text.high {
color: #ef4242;
}
.employee-row .employee-salary-text {
padding-top: 0;
}
.communication {
min-width: 110px;
margin-top: 16px;
text-align: center;
}
.communication-icon {
font-size: 2rem;
margin-right: 12px;
text-decoration: none;
}
.communication-icon:hover {
text-decoration: none;
}
.communication-icon:last-child {
margin-right: 0;
}
.communication-icon.video {
color: lightseagreen;
}
.communication-icon.voice {
color: forestgreen;
}
.communication-icon.email {
color: orange;
}
.donut {
animation: chartfade 0.5s ease-out;
}
@keyframes chartfade {
0% {
transform: rotate(-360deg);
}
100% {
transform: rotate(0deg);
}
}
@media screen and (min-width: 0\0 ) {
.donut {
animation: none;
}
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNob3djYXNlL0VtcGxveWVlcy9wdXJlanMvc3R5bGVzLmNzcyIsIlNob3djYXNlL0VtcGxveWVlcy9wdXJlanMvc3R5bGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQWhCO0VBQ0UsbUNBQUE7RUFDQSxtMkxBQUE7QURFRjtBQ0VBO0VBQ0Usa0NBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0VBQ0EsbUNBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtBREFGOztBQ0dBO0VBQ0UsWUFBQTtBREFGOztBQ0dBO0VBQ0UsWUFBQTtBREFGOztBQ0dBO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtBREFGOztBQ0dBO0VBQ0UsWUFBQTtFQUNBLGNBQUE7RUFDQSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7QURBRjs7QUNHQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtBREFGOztBQ0dBO0VBQ0UsYUFBQTtBREFGOztBQ0dBO0VBQ0UsYUFBQTtFQUNBLFdBQUE7QURBRjs7QUNHQTtFQUNFLGFBQUE7QURBRjs7QUNHQTtFQUNFLFlBQUE7QURBRjs7QUNHQTtFQUNFLFNBQUE7QURBRjs7QUNHQTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0FEQUY7O0FDR0E7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxvQkFBQTtBREFGOztBQ0dBO0VBQ0UsYUFBQTtFQUNBLGFBQUE7RUFDQSxXQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtBREFGOztBQ0dBO0VBQ0UsbUJBQUE7RUFDQSw4QkFBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QURBRjs7QUNHQTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLHlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0FEQUY7O0FDR0E7RUFDRSxrQkFBQTtBREFGO0FDRUU7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0FEQUo7O0FDSUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtBRERGOztBQ0lBO0VBQ0UsaUJBQUE7RUFDQSxrQkFBQTtBRERGOztBQ0lBO0VBQ0Usa0JBQUE7QURERjs7QUNJQTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtFQUNBLG1CQUFBO0FEREY7O0FDSUE7RUFDRSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7QURERjtBQ0dFO0VBQ0UsY0FBQTtBRERKOztBQ0tBO0VBQ0UsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLHdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtBREZGO0FDSUU7RUFDRSxjQUFBO0FERko7QUNLRTtFQUNFLGNBQUE7QURISjs7QUNPQTtFQUNFLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtBREpGOztBQ09BO0VBQ0UsZUFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7QURKRjtBQ01FO0VBQ0UscUJBQUE7QURKSjtBQ09FO0VBQ0UsZUFBQTtBRExKOztBQ1NBO0VBQ0Usb0JBQUE7QURORjs7QUNRQTtFQUNFLGtCQUFBO0FETEY7O0FDT0E7RUFDRSxhQUFBO0FESkY7O0FDT0E7RUFDRSxrQ0FBQTtBREpGOztBQ09BO0VBQ0U7SUFDRSwwQkFBQTtFREpGO0VDTUE7SUFDRSx1QkFBQTtFREpGO0FBQ0Y7QUNPQTtFQUNFO0lBQ0UsZUFBQTtFRExGO0FBQ0YiLCJmaWxlIjoiU2hvd2Nhc2UvRW1wbG95ZWVzL3B1cmVqcy9zdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcInNwcmVhZHZpZXctZGVtby1pY29uXCI7XG4gIHNyYzogdXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2Jhc2U2NCxkMDlHUmdBQkFBQUFBQkZjQUE4QUFBQUFIZHdBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkhVMVZDQUFBQldBQUFBRE1BQUFCQ3NQNno3VTlUTHpJQUFBR01BQUFBUXdBQUFGWStJVWt5WTIxaGNBQUFBZEFBQUFCMkFBQUI3Z2xQN1ExamRuUWdBQUFDU0FBQUFCTUFBQUFnQnRYL0FtWndaMjBBQUFKY0FBQUZrQUFBQzNDS2taQlpaMkZ6Y0FBQUIrd0FBQUFJQUFBQUNBQUFBQkJuYkhsbUFBQUg5QUFBQm1ZQUFBb1VMcHF5bEdobFlXUUFBQTVjQUFBQU1BQUFBRFlKb3FmWWFHaGxZUUFBRG93QUFBQWRBQUFBSkFjOUExMW9iWFI0QUFBT3JBQUFBQmdBQUFBc0o1MEFBR3h2WTJFQUFBN0VBQUFBR0FBQUFCZ05NQTlNYldGNGNBQUFEdHdBQUFBZ0FBQUFJQUVoRERadVlXMWxBQUFPL0FBQUFYY0FBQUxOekowY0huQnZjM1FBQUJCMEFBQUFiQUFBQUpDOHQ5bWhjSEpsY0FBQUVPQUFBQUI2QUFBQWh1VkJLN3g0bkdOZ1pHQmc0R0tRWTlCaFlIUng4d2xoNEdCZ1lZQUFrQXhqVG1aNklsQU15Z1BLc1lCcERpQm1nNGdDQUlvakEwOEFlSnhqWUdTZXhUaUJnWldCZ2FtS2FROERBME1QaEdaOHdHREl5QVFVWldCbFpzQUtBdEpjVXhnY1hqQzg0R1FPK3AvRkVNVWN4REFkS013SWtnTUE4Y2dMMFFCNG5PMlIwUTNDUUF4RDM5RlE2S21qOE1sQWZERUxvMmFMMWtrOUJwR2VwVmk1KzdDQk83Q0lsd2dZWHdZMUg3bWovWVhaZnZEdW15Zy90K09RVXFvOVdtKzZEZjI0OHVESjF1OVcvck8zL3J6Tnl1MmlrelJLanpUVlNKcktOazIxbFVZcGswWjVrMGJKazBZZHFLa0w1Z2wzWHh0TkFBQjRuR05nUUFNU0VNZ2M5RDhUaEFFU1pnUGJBSGljclZacGQ5TkdGQjE1U1p5RUxDVUxMV3BoeE1ScHNFWW1iTUdBQ1VHeVl5QmRuSzJWb0lzVU8rbSs4WW5mNEYvelpOcHo2RGQrV3U4Ykx5U1F0T2R3bXBPamQrZk4xY3piWlJKYWt0Z0w2NUdVbXkvRjFOWW1qZXc4Q2VtR1RjdFJmQ2c3ZXlGbGlzbmZCVkVRclpiYXR4MkhSRVFpVUxXdXNFUVEreDVabW1SODZGRkd5N2FrVjAzS0xUM3BMbHZqUWIxVjMzNGFPc3F4TzZHa1pqTjBhRDJ5SlZVWVZhSklwajFTMHFabHFQb3JTU3U4djhMTVY4MVF3b2hPSW1tOEdjYlFTTjRiWjdUS2FEVzI0eWlLYkxMY0tGSWttdUZCRkhtVTFSTG41SW9KRE1vSHpaRHl5cWNSNWNQOGlLellvNXhXc0V1MjAveStMM21uZHprL3NWOXZVYmJrUUIvSWp1emc3SFFsWDRSYlcySGN0SlB0S0ZRUmR0ZDNRbXpaN0ZUL1pvL3lta1lEdHlzeXZkQ01ZS2w4aFJBclA2SE0vaUZaTFp4UCtaSkhvMXF5a1JOQjYyVk83RXMrZ2RiamlDbHh6UmhaME4zUkNSSFUvWkl6RFBhWVBoNzg4ZDRwbGdzVEFuZ2N5M3BISlp3SUV5bGhjelJKMmpCeVlDVmxpeXFwOWE2WU9PVjFXc1Jid243dDJ0R1h6bWpqVUhkaVBGc1BIVnM1VWNueGFGS25tVXlkMmtuTm95a05vcFIwSm5qTXJ3TW9QNkpKWG0xak5ZbVZSOU00WnNhRVJDSUNMZHhMVTBFc083R2tLUVROb3htOXVSdW11WFl0V3FUSkEvWGNvL2YwNWxhNHVkTlQyZzcwczBaL1ZxZGlPdGdMMCtscDVDL3hhZHJsSWtYcCt1a1pma3ppUWRZQ01wRXROc09VZ3dkdi9RN1N5OWVXSElYWEJ0anU3Zk1ycUgzV1JQQ2tBZnNiMEI1UDFTa0pUSVdZVlloV1FHS3RhMW1XeWRXc0ZxbkkxSGREbWxhK3JOTUVpbkljRjhlK2pISDlYek16bHBnU3Z0K0owN01qTGoxejdVc0kweHg4bTNVOW10ZXB4WElCY1daNVRxZFpsdS9yTk1meUE1M21XWjdYNlFoTFc2ZWpMRC9VYVlIbFJ6b2RZM2xCQzVwMDM4R1FpekRrQWc2UU1JU2xBME5ZWG9JaExCVU1ZYmtJUTFnV1lRakxKUmpDOG1NWXduSVpockM4ckdYVjFGTko0OXFaV0Fac1FtQmlqaDY1ekVYbGFpcTVWRUs3YUZScVE1NFNicFZVRk0rcWYyV2dYanp5aGptd0ZraVh5SnBmTWM2VmowYmwrTllWTFc4YU8xZkFzZXB2SDQ3Mk9mRlMxb3VGUHdYLzFkWlVKYjFpemNPVHEvQWJocDVzSjZvMnFYaDBUWmZQVlQyNi9sOVVWRmdMOUJ0SWhWZ295ckpzY0djaWhJODZuWVpxb0pWRHpHek1QTFRyZGN1YW44UDlOekZDRmxEOStEY1VHZ3ZjZzA1WlNWbnQ0S3pWMTl1eTNEdURjamdUTEVreE4vUDZWdmdpSTdQU2ZwRlp5cDZQZkI1d0JZeEtaZGhxQTYwVnZOa25NUStaM2lUUEJIRmJVVFpJMnRqT0JJa05IUE9BZWZPZEJDWmg2cW9ONUU3aGhnMzRCV0Z1d1hrblhLSjZveXlIN2tYczh5aWsvRnVuNGtUMnFHaU13TFBaRzJHdjcwTEtiM0VNSkRUNXBYNE1WQldocVJnMUZkQTBVbTZvQmwvRzJicHRRc1lPOUNNcWRzT3lyT0xEeHhiM2xaSnRHWVI4cElqVm82T2YxbDZpVHFyY2ZtWVVsKytkdmdYQklEVXhmM3ZmZEhHUXlydGF5VEpIYlFOVHR4cVZVOWVhUStOVmgrcm1VZlc5NCt3VE9XdWFicm9uSG5wZjA2cmJ3Y1ZjTExEMmJRN1NVaVlYMVBWaGhRMml5OFdsVU9wbE5FbnZ1QWNZRmhqUTcxQ0tqZityK3RoOG5pdFZoZEZ4Sk45TzFMZlI1MkFNL0EvWWYwZjFBOUQzWStoeURTN1A5NW9UbjI3MDRXeVpycUlYNjZmb056QnJyYmxadWdiYzBIUUQ0aUZIclk2NHlnMThwd1p4ZXFTNUhPa2g0R1BkRmVJQndDYUF4ZUFUM2JXTTVsTUFvL21NT1Q3QTU4eGgwR1FPZ3kzbU1OaG16aHJBRG5NWTdES0h3UjV6R0h6Qm5IV0FMNW5ESUdRT2c0ZzVESjR3SndCNHlod0dYekdId2RmTVlmQU5jKzREZk1zY0JqRnpHQ1RNWWJDdjZkWXd6QzFlMEYyZ3RrRlZvQU5UVDFqY3crSlFVMlhJL280WGh2MjlRY3ord1NDbS9xanA5cEQ2RXk4TTlXZURtUHFMUVV6OVZkT2RJZlUzWGhqcTd3WXg5UStEbVBwTXZ4akxaUWEvakh5WENnZVVYV3crNSsrSjl3L2J4VUM1QUFFQUFmLy9BQTk0bktWVldXOGIxeFUrNTk3Wk9CeXVtb1d5eURFM2NXeFNrRnl1aXF4U2xCZlFrdWtGdHBEUVNhVFFqcXkya0czSkRlQ2c2UGFnd0xYUkpnS3lGS2hiQkFpc3h3YXQrdEtYQUgxb243b0FiWDVDSHdJWlJaR25QclNJeGoyWFloVTdpYnFnUTg2OTU3dm56TXk1NXp2blhBZ0FQUDQ3MytGQmlNQmhtSUFadUFBdndScDhGemJoUXFzVEN6RTFhakNGcTBvdkVtQThyREdHblBXQ01rTUFYQkF6UWxlWEdDQjAzdmorM1kzdmZQUE9LN2RXVjE1ZWV1SFp5K2ZQMWdaWEpTNm5TcU9XcWFpNWJNR3JWZXRPcFd6SENIc0QzQ0NNbjlFTFhNSTlmQnozOEJmWmZ4bi92YjNRQy91aGdWN2d2dDVOMjc5d1hLVFJUajhoNHZWOTRMaitUdzdTNE1xbkR6NWg5YlRpaVpjL3VHRVR0RzdRYTF4VVZzWGtyQW9ML3c5UGFGaCtWZGlMd2YvOS8ycUUydjQ2QUNoZnlPMTA2NWtncWpyMk9RMGcxN0RQcUl4OVFta2lQaVVVZEg2R1F1Ty9wVEF6MEdjT29HU2diMlQyS01rTmNDVnpNQ1hzdDJsNzkxRWZNY2R4ZHhzSDYvQXA5UDhGL2VsNFVvQWUzK05YMkY4aEJmbFdCaGhuYTdTSTY4QUIrQUp3RGwwU29GTnc3SndrSjByWTM1MWpteEZVc2g0V3FnMnNsdytqd0xSWGZpV2Y4bC9kc3F5aWRkenkzelpOdkdGTjJVWEwyc0w3cVR3dXRkM2lsamx0bGdZS1hCV1dVL2JXRWRqM3BVYSt1SDFmT09OclluVWRxQ0RaQWxDWmRvR1k3ZGlqQmJQdmk2bVNFeFBreEF4bUJqV1Q4UVNxbHgyMGVjMzAzN0ducktKdFAvUmZUZVh6S2J6LzBMYUwvUStiT09XYXdzT2lOVzA5TExya0dXNVowd1F0L3gyejc4djNLTTlxTUFSZUs2OVRCbUU3Z0hBNlNNNmNJcThRRm9UTFhSR3NUcjdBWkx0a1ZadHlwUmJBV0RZc0h6dHpwL2YyeFpQNGl2LzZ5clVIODlmS1k5L1kvUE9iSytWRDB0LzhIL2l2bzhIaTJWUFhmdGovenRmNER2czFGQ0RaR2g2aHQyRTdoSEJLdkpkMkR5djViSTdKRnUwMWpMbXNwNmowbzlRcTFBdTB5eGxzc2hrY1I2L2FaSld5aTN6bjdrZjN2T0t0dDBieWVwZ3ppWEZEQ3BtcUdWVWozV1c4K05vSHkvYyt1b3RMVjdkNjB0V0NKcUdoSTlNa0hwSER0cFpNRGhYTGJ5N012ZGFiN0cwSjloOXY4K2Y1SmRDZ0NiZmdYR3QrYnJiQnVZeHRrQ2xKWkg0VGRBQ21RNDhzbUt5eEpYcEdsYmphQXdrVVNYbVJOaExvUWlCZzROek4xWlhsMFVveldmL1NZYXNVcEpKclZNZFJNZTBtWXJYZzVhcDFqNll3VTVVSWhobmQ2T1ZpdEIzSnNhbSthbFd2aVZXdlhpT2JKalpNMWJiMjdrRVZGc1JZaTRsYXJEZnFqU1pyMUVVb3lJQnFkOU5PMnZSbkcyUEozOVF4MndpSFRTZmtob0xoaEc0YnBoNlBxM1k0YVNUWm5ibVRxeXhxNmlrOUVFKzBSMlFMTTczelorcGZQVDFydkpjcUZsTS9NcDlKSjBPR25iQ1RFL05IUnE1TlBic2NNVm5pVUlLWmVERlZ4UFRYMDQwcVJrN01KMEtGV0RpYURnenBCdm8vWm9xaUtlem9ZaVFhS0I2Sko3MVFYc095VlQ0YU4wc0Z3NWdzblgvK2tPTVVVM2pkTFlibWltNzRSTWUyOHVkbks1TWl0eWlPZ29OejdERjFQUk9HSVE5M1cxVEJURTdaWVlvMEc2WUNBUzZhbTlRKysvUDR4VzdMSTI3a3RiMGlKdFZhUDA5ZlZoQWxDUy9SaE5KeklLRjBkcVJWK0x3bHJIM2U4RW9yRHBCSko1eG9KS0NSRzRxcFVpNDZEVSsxS2haV2Mxa3FRTXVzbEtrSmVBN21ha2h0d0d2MEc4THZ5aHVWTS9pU0lVdituNlNRTE9FRWQzZjhZenY4bkxtNHMyZ2V0emVJb1kzS2RKc3BodVIvS05HSTQ5THRIWC9pRVQ1SVdZdVBYclNzRFJzR1BYK2J4L2Q3L25FNENWK0I1ZGJWNTA0elJUdWFHWTRGVUtIRzBKWTVJMEZCdUNreEJxb0M2aXFFSWFDRkE3MUlpR21HemhUVWxDVlFnMEYxQVZRMTJJV2dHdXhjWDc2NjlNS1Z5NWN1ZE9iYXN6Tm0zaXlJS3hlbFJNWFlYcGJ0NVZmWmR2NERIb3BsWXFhTDFQWXB0eXNlSmJkQ0FSTTJzY0doRU12OTY3QnVVRFpUaWg1R2NjYTR1cGJYOVA2dythbjRocTd1aWFwK3hqYzBqZUVmbWFiNTkvOHhJc25iaW9SLzBiVjZkZFEvTmxyRm1yRDdxUmNZbytOalRQUGUxM1Q4cGY4cnNZaXpZanhBOXBkWmJQZGpLZ1hkWk5kbjZhU1VMOU1YZHo4ZVAzVmluQTMxblZpMGt1aWFpM3FmaDNmNUprK0pTb2NnUkNrblhaaHZ0VVVYNHdpaUExQmpvRTRnZzZUSTBwSnVhRnhSVldXaEx5aHFOeGlnSWxjNzhaaWJTbzdZVm13NFBoeUx4OFFWRGNuSkVtWnFtZjI3V2phem8yVTdqT09zN2dqQU56L1o0Ti8ydDNjL1pPTjRRY2lmYkt5dlk4TE9NdmRZbXVVL1dGOW43Ni83Mit2K3o5YjhiMDNldnAwZHkyTjJQTjJZdkEzL0JMazBwdHdBQUhpY1kyQmtZR0FBNGdjM0VxYkg4OXQ4WmVCbWZnRVVZYmpzdTBrR1FmL1BaSDdCSEFUa2NqQXdnVVFCWVc0TDFYaWNZMkJrWUdBTytwOEZKRjh3TVB6L0R5U0JJaWlBR3dDSDFBV2dBQUFBZUp4amZzSEF3QXpEa1ZDTXpoY0U0Z1VNREFDeTV3YS9BQUFBQUFEdUFaWUIzQUlpQWxZQ29nTmtBK2dFckFVS0FBRUFBQUFMQUpBQUNRQUFBQUFBQWdBa0FEUUFjd0FBQUhVTGNBQUFBQUI0bkhXUXkwN0NRQlNHLzVHTENva2FUZHc2S3dNeGxrc2lDeElTRWd4c2RFTU1XMU5LYVV0S2gwd0hFbDdEZC9CaGZBbWZ4WjkyTUFaaW0rbDg1NXN6WjA0SHdEVytJWkEvVHh3NUM1d3h5dmtFcCtoWkx0QS9XeTZTWHl5WFVNV2I1VEw5dStVS0hoQllydUlHSDZ3Z2l1ZU1GdmkwTEhBbExpMmY0RUxjV1M3UVAxb3VrbnVXUzdnVnI1Ykw5SjdsQ2lZaXRWekZ2ZmdhcU5WV1IwRm9aRzFRbCsxbXF5T25XNm1vb3NTTnBiczJvZEtwN011NVNvd2Z4OHJ4MUhMUFl6OVl4NjdlaC90NTR1czBVb2xzT2MyOUd2bUpyMTNqejNiVjAwM1FObVl1NTFvdDVkQm15SlZXQzk4elRtak1xdHRvL0QwUEF5aXNzSVZHeEtzS1lTQlJvNjF6YnFPSkZqcWtLVE1rTS9Pc0NBbGN4RFF1MXR3Ulppc3A0ejdIbkZGQzZ6TWpKanZ3K0YwZStURXA0UDZZVmZUUjZtRThJZTNPaURJdjJaZkQ3ZzZ6UnFRa3kzUXpPL3Z0UGNXR3A3VnBEWGZ0dXRSWlZ4TERneHFTOTdGYlc5QjQ5RTUySzRhMml3YmZmLzd2QitOcGhFOEFlSnh0eGtFT2d5QVFCZEQ1dElwSXI4S2hrSXdPQ1ZnQzQ2SzNiOUp1ZmF0SGh2NVd1dWRoOE1BVEUyWllMSEJZNGZFaW8ySlZRc2xEbDhLN2hpMGZydWREZnB1R3hNNDJ2V3ZsVTUzS1ZiY1JyalkzUGxNdVhuc2NFcmcyL2ZqWU5hZkNJUllsK2dKZnBCN1plSnhqOE43QmNDSW9ZaU1qWTEva0JzYWRIQXdjRE1rRkd4bFluVFl4TURKb2dSaWJ1WmdZT1NBc1BnWXdpODFwRjlNQm9EUW5rTTN1dEl2QkFjSm1abkRacU1MWUVSaXh3YUVqWWlOemlzdEdOUkJ2RjBjREF5T0xRMGR5U0FSSVNTUVFiT1poWXVUUjJzSDR2M1VEUys5R0pnWVhBQXgySS9RQUFBPT0pIGZvcm1hdChcIndvZmZcIik7XG59XG4uZGVtby1pY29uIHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwic3ByZWFkdmlldy1kZW1vLWljb25cIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLmljb24tdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCLuoIBcIjtcbn1cblxuLmljb24tdGgtbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6ggVwiO1xufVxuXG4ubWFpbi1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xuICBwYWRkaW5nOiA2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zYW1wbGUtb3B0aW9ucyB7XG4gIGZsZXgtZ3JvdzogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDZweDtcbn1cblxuLmdyaWQge1xuICB3aWR0aDogMTAwJTtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LXNocmluazogMTtcbn1cblxuLmNhcmQtbGF5b3V0IC5nYy1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uY2FyZC1sYXlvdXQgLmdjLWNlbGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmxpc3QtdmlldyAuZ2Mtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmxpc3QtdmlldyAuZ2MtY2VsbCB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmdjLWdyaWQge1xuICBib3JkZXI6IDA7XG59XG5cbi5mbGV4LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBpbmhlcml0O1xufVxuXG4uZmxleC1jb2wge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogaW5oZXJpdDtcbn1cblxuLmVtcGxveWVlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5lbXBsb3llZS5lbXBsb3llZS1yb3cge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMCA0OHB4O1xufVxuXG4uZW1wbG95ZWUtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luOiA2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmVtcGxveWVlLWluZm8ge1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG59XG4uZW1wbG95ZWUtcm93IC5lbXBsb3llZS1pbmZvIHtcbiAgbWluLXdpZHRoOiAxNTBweDtcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xufVxuXG4uZW1wbG95ZWUtcGljIHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLmVtcGxveWVlLW5hbWUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuXG4uZW1wbG95ZWUtcG9zaXRpb24ge1xuICBtYXJnaW4tYm90dG9tOiAzcHg7XG59XG5cbi5lbXBsb3llZS1zYWxhcnkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uZW1wbG95ZWUtY2hhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogODBweDtcbiAgaGVpZ2h0OiA4MHB4O1xuICBjb2xvcjogZ3JlZW47XG59XG4uZW1wbG95ZWUtY2hhcnQuaGlnaCB7XG4gIGNvbG9yOiAjZWY0MjQyO1xufVxuXG4uZW1wbG95ZWUtc2FsYXJ5LXRleHQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZmxleDogMSAxIGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAzNWVtO1xuICBwYWRkaW5nLXRvcDogMjRweDtcbiAgY29sb3I6IHN0ZWVsYmx1ZTtcbn1cbi5lbXBsb3llZS1zYWxhcnktdGV4dC5oaWdoIHtcbiAgY29sb3I6ICNlZjQyNDI7XG59XG4uZW1wbG95ZWUtcm93IC5lbXBsb3llZS1zYWxhcnktdGV4dCB7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuXG4uY29tbXVuaWNhdGlvbiB7XG4gIG1pbi13aWR0aDogMTEwcHg7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNvbW11bmljYXRpb24taWNvbiB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uY29tbXVuaWNhdGlvbi1pY29uOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmNvbW11bmljYXRpb24taWNvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4uY29tbXVuaWNhdGlvbi1pY29uLnZpZGVvIHtcbiAgY29sb3I6IGxpZ2h0c2VhZ3JlZW47XG59XG5cbi5jb21tdW5pY2F0aW9uLWljb24udm9pY2Uge1xuICBjb2xvcjogZm9yZXN0Z3JlZW47XG59XG5cbi5jb21tdW5pY2F0aW9uLWljb24uZW1haWwge1xuICBjb2xvcjogb3JhbmdlO1xufVxuXG4uZG9udXQge1xuICBhbmltYXRpb246IGNoYXJ0ZmFkZSAwLjVzIGVhc2Utb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIGNoYXJ0ZmFkZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMzYwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMFxcMCApIHtcbiAgLmRvbnV0IHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbn0iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdzcHJlYWR2aWV3LWRlbW8taWNvbic7XG4gIHNyYzogdXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2Jhc2U2NCxkMDlHUmdBQkFBQUFBQkZjQUE4QUFBQUFIZHdBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkhVMVZDQUFBQldBQUFBRE1BQUFCQ3NQNno3VTlUTHpJQUFBR01BQUFBUXdBQUFGWStJVWt5WTIxaGNBQUFBZEFBQUFCMkFBQUI3Z2xQN1ExamRuUWdBQUFDU0FBQUFCTUFBQUFnQnRYL0FtWndaMjBBQUFKY0FBQUZrQUFBQzNDS2taQlpaMkZ6Y0FBQUIrd0FBQUFJQUFBQUNBQUFBQkJuYkhsbUFBQUg5QUFBQm1ZQUFBb1VMcHF5bEdobFlXUUFBQTVjQUFBQU1BQUFBRFlKb3FmWWFHaGxZUUFBRG93QUFBQWRBQUFBSkFjOUExMW9iWFI0QUFBT3JBQUFBQmdBQUFBc0o1MEFBR3h2WTJFQUFBN0VBQUFBR0FBQUFCZ05NQTlNYldGNGNBQUFEdHdBQUFBZ0FBQUFJQUVoRERadVlXMWxBQUFPL0FBQUFYY0FBQUxOekowY0huQnZjM1FBQUJCMEFBQUFiQUFBQUpDOHQ5bWhjSEpsY0FBQUVPQUFBQUI2QUFBQWh1VkJLN3g0bkdOZ1pHQmc0R0tRWTlCaFlIUng4d2xoNEdCZ1lZQUFrQXhqVG1aNklsQU15Z1BLc1lCcERpQm1nNGdDQUlvakEwOEFlSnhqWUdTZXhUaUJnWldCZ2FtS2FROERBME1QaEdaOHdHREl5QVFVWldCbFpzQUtBdEpjVXhnY1hqQzg0R1FPK3AvRkVNVWN4REFkS013SWtnTUE4Y2dMMFFCNG5PMlIwUTNDUUF4RDM5RlE2S21qOE1sQWZERUxvMmFMMWtrOUJwR2VwVmk1KzdDQk83Q0lsd2dZWHdZMUg3bWovWVhaZnZEdW15Zy90K09RVXFvOVdtKzZEZjI0OHVESjF1OVcvck8zL3J6Tnl1MmlrelJLanpUVlNKcktOazIxbFVZcGswWjVrMGJKazBZZHFLa0w1Z2wzWHh0TkFBQjRuR05nUUFNU0VNZ2M5RDhUaEFFU1pnUGJBSGljclZacGQ5TkdGQjE1U1p5RUxDVUxMV3BoeE1ScHNFWW1iTUdBQ1VHeVl5QmRuSzJWb0lzVU8rbSs4WW5mNEYvelpOcHo2RGQrV3U4Ykx5U1F0T2R3bXBPamQrZk4xY3piWlJKYWt0Z0w2NUdVbXkvRjFOWW1qZXc4Q2VtR1RjdFJmQ2c3ZXlGbGlzbmZCVkVRclpiYXR4MkhSRVFpVUxXdXNFUVEreDVabW1SODZGRkd5N2FrVjAzS0xUM3BMbHZqUWIxVjMzNGFPc3F4TzZHa1pqTjBhRDJ5SlZVWVZhSklwajFTMHFabHFQb3JTU3U4djhMTVY4MVF3b2hPSW1tOEdjYlFTTjRiWjdUS2FEVzI0eWlLYkxMY0tGSWttdUZCRkhtVTFSTG41SW9KRE1vSHpaRHl5cWNSNWNQOGlLellvNXhXc0V1MjAveStMM21uZHprL3NWOXZVYmJrUUIvSWp1emc3SFFsWDRSYlcySGN0SlB0S0ZRUmR0ZDNRbXpaN0ZUL1pvL3lta1lEdHlzeXZkQ01ZS2w4aFJBclA2SE0vaUZaTFp4UCtaSkhvMXF5a1JOQjYyVk83RXMrZ2RiamlDbHh6UmhaME4zUkNSSFUvWkl6RFBhWVBoNzg4ZDRwbGdzVEFuZ2N5M3BISlp3SUV5bGhjelJKMmpCeVlDVmxpeXFwOWE2WU9PVjFXc1Jid243dDJ0R1h6bWpqVUhkaVBGc1BIVnM1VWNueGFGS25tVXlkMmtuTm95a05vcFIwSm5qTXJ3TW9QNkpKWG0xak5ZbVZSOU00WnNhRVJDSUNMZHhMVTBFc083R2tLUVROb3htOXVSdW11WFl0V3FUSkEvWGNvL2YwNWxhNHVkTlQyZzcwczBaL1ZxZGlPdGdMMCtscDVDL3hhZHJsSWtYcCt1a1pma3ppUWRZQ01wRXROc09VZ3dkdi9RN1N5OWVXSElYWEJ0anU3Zk1ycUgzV1JQQ2tBZnNiMEI1UDFTa0pUSVdZVlloV1FHS3RhMW1XeWRXc0ZxbkkxSGREbWxhK3JOTUVpbkljRjhlK2pISDlYek16bHBnU3Z0K0owN01qTGoxejdVc0kweHg4bTNVOW10ZXB4WElCY1daNVRxZFpsdS9yTk1meUE1M21XWjdYNlFoTFc2ZWpMRC9VYVlIbFJ6b2RZM2xCQzVwMDM4R1FpekRrQWc2UU1JU2xBME5ZWG9JaExCVU1ZYmtJUTFnV1lRakxKUmpDOG1NWXduSVpockM4ckdYVjFGTko0OXFaV0Fac1FtQmlqaDY1ekVYbGFpcTVWRUs3YUZScVE1NFNicFZVRk0rcWYyV2dYanp5aGptd0ZraVh5SnBmTWM2VmowYmwrTllWTFc4YU8xZkFzZXB2SDQ3Mk9mRlMxb3VGUHdYLzFkWlVKYjFpemNPVHEvQWJocDVzSjZvMnFYaDBUWmZQVlQyNi9sOVVWRmdMOUJ0SWhWZ295ckpzY0djaWhJODZuWVpxb0pWRHpHek1QTFRyZGN1YW44UDlOekZDRmxEOStEY1VHZ3ZjZzA1WlNWbnQ0S3pWMTl1eTNEdURjamdUTEVreE4vUDZWdmdpSTdQU2ZwRlp5cDZQZkI1d0JZeEtaZGhxQTYwVnZOa25NUStaM2lUUEJIRmJVVFpJMnRqT0JJa05IUE9BZWZPZEJDWmg2cW9ONUU3aGhnMzRCV0Z1d1hrblhLSjZveXlIN2tYczh5aWsvRnVuNGtUMnFHaU13TFBaRzJHdjcwTEtiM0VNSkRUNXBYNE1WQldocVJnMUZkQTBVbTZvQmwvRzJicHRRc1lPOUNNcWRzT3lyT0xEeHhiM2xaSnRHWVI4cElqVm82T2YxbDZpVHFyY2ZtWVVsKytkdmdYQklEVXhmM3ZmZEhHUXlydGF5VEpIYlFOVHR4cVZVOWVhUStOVmgrcm1VZlc5NCt3VE9XdWFicm9uSG5wZjA2cmJ3Y1ZjTExEMmJRN1NVaVlYMVBWaGhRMml5OFdsVU9wbE5FbnZ1QWNZRmhqUTcxQ0tqZityK3RoOG5pdFZoZEZ4Sk45TzFMZlI1MkFNL0EvWWYwZjFBOUQzWStoeURTN1A5NW9UbjI3MDRXeVpycUlYNjZmb056QnJyYmxadWdiYzBIUUQ0aUZIclk2NHlnMThwd1p4ZXFTNUhPa2g0R1BkRmVJQndDYUF4ZUFUM2JXTTVsTUFvL21NT1Q3QTU4eGgwR1FPZ3kzbU1OaG16aHJBRG5NWTdES0h3UjV6R0h6Qm5IV0FMNW5ESUdRT2c0ZzVESjR3SndCNHlod0dYekdId2RmTVlmQU5jKzREZk1zY0JqRnpHQ1RNWWJDdjZkWXd6QzFlMEYyZ3RrRlZvQU5UVDFqY3crSlFVMlhJL280WGh2MjlRY3ord1NDbS9xanA5cEQ2RXk4TTlXZURtUHFMUVV6OVZkT2RJZlUzWGhqcTd3WXg5UStEbVBwTXZ4akxaUWEvakh5WENnZVVYV3crNSsrSjl3L2J4VUM1QUFFQUFmLy9BQTk0bktWVldXOGIxeFUrNTk3Wk9CeXVtb1d5eURFM2NXeFNrRnl1aXF4U2xCZlFrdWtGdHBEUVNhVFFqcXkya0czSkRlQ2c2UGFnd0xYUkpnS3lGS2hiQkFpc3h3YXQrdEtYQUgxb243b0FiWDVDSHdJWlJaR25QclNJeGoyWFloVTdpYnFnUTg2OTU3dm56TXk1NXp2blhBZ0FQUDQ3MytGQmlNQmhtSUFadUFBdndScDhGemJoUXFzVEN6RTFhakNGcTBvdkVtQThyREdHblBXQ01rTUFYQkF6UWxlWEdDQjAzdmorM1kzdmZQUE9LN2RXVjE1ZWV1SFp5K2ZQMWdaWEpTNm5TcU9XcWFpNWJNR3JWZXRPcFd6SENIc0QzQ0NNbjlFTFhNSTlmQnozOEJmWmZ4bi92YjNRQy91aGdWN2d2dDVOMjc5d1hLVFJUajhoNHZWOTRMaitUdzdTNE1xbkR6NWg5YlRpaVpjL3VHRVR0RzdRYTF4VVZzWGtyQW9ML3c5UGFGaCtWZGlMd2YvOS8ycUUydjQ2QUNoZnlPMTA2NWtncWpyMk9RMGcxN0RQcUl4OVFta2lQaVVVZEg2R1F1Ty9wVEF6MEdjT29HU2diMlQyS01rTmNDVnpNQ1hzdDJsNzkxRWZNY2R4ZHhzSDYvQXA5UDhGL2VsNFVvQWUzK05YMkY4aEJmbFdCaGhuYTdTSTY4QUIrQUp3RGwwU29GTnc3SndrSjByWTM1MWpteEZVc2g0V3FnMnNsdytqd0xSWGZpV2Y4bC9kc3F5aWRkenkzelpOdkdGTjJVWEwyc0w3cVR3dXRkM2lsamx0bGdZS1hCV1dVL2JXRWRqM3BVYSt1SDFmT09OclluVWRxQ0RaQWxDWmRvR1k3ZGlqQmJQdmk2bVNFeFBreEF4bUJqV1Q4UVNxbHgyMGVjMzAzN0ducktKdFAvUmZUZVh6S2J6LzBMYUwvUStiT09XYXdzT2lOVzA5TExya0dXNVowd1F0L3gyejc4djNLTTlxTUFSZUs2OVRCbUU3Z0hBNlNNNmNJcThRRm9UTFhSR3NUcjdBWkx0a1ZadHlwUmJBV0RZc0h6dHpwL2YyeFpQNGl2LzZ5clVIODlmS1k5L1kvUE9iSytWRDB0LzhIL2l2bzhIaTJWUFhmdGovenRmNER2czFGQ0RaR2g2aHQyRTdoSEJLdkpkMkR5djViSTdKRnUwMWpMbXNwNmowbzlRcTFBdTB5eGxzc2hrY1I2L2FaSld5aTN6bjdrZjN2T0t0dDBieWVwZ3ppWEZEQ3BtcUdWVWozV1c4K05vSHkvYyt1b3RMVjdkNjB0V0NKcUdoSTlNa0hwSER0cFpNRGhYTGJ5N012ZGFiN0cwSjloOXY4K2Y1SmRDZ0NiZmdYR3QrYnJiQnVZeHRrQ2xKWkg0VGRBQ21RNDhzbUt5eEpYcEdsYmphQXdrVVNYbVJOaExvUWlCZzROek4xWlhsMFVveldmL1NZYXNVcEpKclZNZFJNZTBtWXJYZzVhcDFqNll3VTVVSWhobmQ2T1ZpdEIzSnNhbSthbFd2aVZXdlhpT2JKalpNMWJiMjdrRVZGc1JZaTRsYXJEZnFqU1pyMUVVb3lJQnFkOU5PMnZSbkcyUEozOVF4MndpSFRTZmtob0xoaEc0YnBoNlBxM1k0YVNUWm5ibVRxeXhxNmlrOUVFKzBSMlFMTTczelorcGZQVDFydkpjcUZsTS9NcDlKSjBPR25iQ1RFL05IUnE1TlBic2NNVm5pVUlLWmVERlZ4UFRYMDQwcVJrN01KMEtGV0RpYURnenBCdm8vWm9xaUtlem9ZaVFhS0I2Sko3MVFYc095VlQ0YU4wc0Z3NWdzblgvK2tPTVVVM2pkTFlibWltNzRSTWUyOHVkbks1TWl0eWlPZ29OejdERjFQUk9HSVE5M1cxVEJURTdaWVlvMEc2WUNBUzZhbTlRKysvUDR4VzdMSTI3a3RiMGlKdFZhUDA5ZlZoQWxDUy9SaE5KeklLRjBkcVJWK0x3bHJIM2U4RW9yRHBCSko1eG9KS0NSRzRxcFVpNDZEVSsxS2haV2Mxa3FRTXVzbEtrSmVBN21ha2h0d0d2MEc4THZ5aHVWTS9pU0lVdituNlNRTE9FRWQzZjhZenY4bkxtNHMyZ2V0emVJb1kzS2RKc3BodVIvS05HSTQ5THRIWC9pRVQ1SVdZdVBYclNzRFJzR1BYK2J4L2Q3L25FNENWK0I1ZGJWNTA0elJUdWFHWTRGVUtIRzBKWTVJMEZCdUNreEJxb0M2aXFFSWFDRkE3MUlpR21HemhUVWxDVlFnMEYxQVZRMTJJV2dHdXhjWDc2NjlNS1Z5NWN1ZE9iYXN6Tm0zaXlJS3hlbFJNWFlYcGJ0NVZmWmR2NERIb3BsWXFhTDFQWXB0eXNlSmJkQ0FSTTJzY0doRU12OTY3QnVVRFpUaWg1R2NjYTR1cGJYOVA2dythbjRocTd1aWFwK3hqYzBqZUVmbWFiNTkvOHhJc25iaW9SLzBiVjZkZFEvTmxyRm1yRDdxUmNZbytOalRQUGUxM1Q4cGY4cnNZaXpZanhBOXBkWmJQZGpLZ1hkWk5kbjZhU1VMOU1YZHo4ZVAzVmluQTMxblZpMGt1aWFpM3FmaDNmNUprK0pTb2NnUkNrblhaaHZ0VVVYNHdpaUExQmpvRTRnZzZUSTBwSnVhRnhSVldXaEx5aHFOeGlnSWxjNzhaaWJTbzdZVm13NFBoeUx4OFFWRGNuSkVtWnFtZjI3V2phem8yVTdqT09zN2dqQU56L1o0Ti8ydDNjL1pPTjRRY2lmYkt5dlk4TE9NdmRZbXVVL1dGOW43Ni83Mit2K3o5YjhiMDNldnAwZHkyTjJQTjJZdkEzL0JMazBwdHdBQUhpY1kyQmtZR0FBNGdjM0VxYkg4OXQ4WmVCbWZnRVVZYmpzdTBrR1FmL1BaSDdCSEFUa2NqQXdnVVFCWVc0TDFYaWNZMkJrWUdBTytwOEZKRjh3TVB6L0R5U0JJaWlBR3dDSDFBV2dBQUFBZUp4amZzSEF3QXpEa1ZDTXpoY0U0Z1VNREFDeTV3YS9BQUFBQUFEdUFaWUIzQUlpQWxZQ29nTmtBK2dFckFVS0FBRUFBQUFMQUpBQUNRQUFBQUFBQWdBa0FEUUFjd0FBQUhVTGNBQUFBQUI0bkhXUXkwN0NRQlNHLzVHTENva2FUZHc2S3dNeGxrc2lDeElTRWd4c2RFTU1XMU5LYVV0S2gwd0hFbDdEZC9CaGZBbWZ4WjkyTUFaaW0rbDg1NXN6WjA0SHdEVytJWkEvVHh3NUM1d3h5dmtFcCtoWkx0QS9XeTZTWHl5WFVNV2I1VEw5dStVS0hoQllydUlHSDZ3Z2l1ZU1GdmkwTEhBbExpMmY0RUxjV1M3UVAxb3VrbnVXUzdnVnI1Ykw5SjdsQ2lZaXRWekZ2ZmdhcU5WV1IwRm9aRzFRbCsxbXF5T25XNm1vb3NTTnBiczJvZEtwN011NVNvd2Z4OHJ4MUhMUFl6OVl4NjdlaC90NTR1czBVb2xzT2MyOUd2bUpyMTNqejNiVjAwM1FObVl1NTFvdDVkQm15SlZXQzk4elRtak1xdHRvL0QwUEF5aXNzSVZHeEtzS1lTQlJvNjF6YnFPSkZqcWtLVE1rTS9Pc0NBbGN4RFF1MXR3Ulppc3A0ejdIbkZGQzZ6TWpKanZ3K0YwZStURXA0UDZZVmZUUjZtRThJZTNPaURJdjJaZkQ3ZzZ6UnFRa3kzUXpPL3Z0UGNXR3A3VnBEWGZ0dXRSWlZ4TERneHFTOTdGYlc5QjQ5RTUySzRhMml3YmZmLzd2QitOcGhFOEFlSnh0eGtFT2d5QVFCZEQ1dElwSXI4S2hrSXdPQ1ZnQzQ2SzNiOUp1ZmF0SGh2NVd1dWRoOE1BVEUyWllMSEJZNGZFaW8ySlZRc2xEbDhLN2hpMGZydWREZnB1R3hNNDJ2V3ZsVTUzS1ZiY1JyalkzUGxNdVhuc2NFcmcyL2ZqWU5hZkNJUllsK2dKZnBCN1plSnhqOE43QmNDSW9ZaU1qWTEva0JzYWRIQXdjRE1rRkd4bFluVFl4TURKb2dSaWJ1WmdZT1NBc1BnWXdpODFwRjlNQm9EUW5rTTN1dEl2QkFjSm1abkRacU1MWUVSaXh3YUVqWWlOemlzdEdOUkJ2RjBjREF5T0xRMGR5U0FSSVNTUVFiT1poWXVUUjJzSDR2M1VEUys5R0pnWVhBQXgySS9RQUFBPT0pXG4gICAgZm9ybWF0KCd3b2ZmJyk7XG59XG5cbi5kZW1vLWljb24ge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJ3NwcmVhZHZpZXctZGVtby1pY29uJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLmljb24tdGg6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwMCc7XG59XG5cbi5pY29uLXRoLWxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZTgwMSc7XG59XG5cbi5tYWluLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNlZmVmZWY7XG4gIHBhZGRpbmc6IDZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnNhbXBsZS1vcHRpb25zIHtcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LXNocmluazogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogNnB4O1xufVxuXG4uZ3JpZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtc2hyaW5rOiAxO1xufVxuXG4uY2FyZC1sYXlvdXQgLmdjLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5jYXJkLWxheW91dCAuZ2MtY2VsbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubGlzdC12aWV3IC5nYy1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubGlzdC12aWV3IC5nYy1jZWxsIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZ2MtZ3JpZCB7XG4gIGJvcmRlcjogMDtcbn1cblxuLmZsZXgtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGluaGVyaXQ7XG59XG5cbi5mbGV4LWNvbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBpbmhlcml0O1xufVxuXG4uZW1wbG95ZWUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmVtcGxveWVlLmVtcGxveWVlLXJvdyB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwIDQ4cHg7XG59XG5cbi5lbXBsb3llZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJlMjtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZW1wbG95ZWUtaW5mbyB7XG4gIHBhZGRpbmctbGVmdDogMTJweDtcblxuICAuZW1wbG95ZWUtcm93ICYge1xuICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICB9XG59XG5cbi5lbXBsb3llZS1waWMge1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4uZW1wbG95ZWUtbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG5cbi5lbXBsb3llZS1wb3NpdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbn1cblxuLmVtcGxveWVlLXNhbGFyeSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5lbXBsb3llZS1jaGFydCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA4MHB4O1xuICBoZWlnaHQ6IDgwcHg7XG4gIGNvbG9yOiBncmVlbjtcblxuICAmLmhpZ2gge1xuICAgIGNvbG9yOiAjZWY0MjQyO1xuICB9XG59XG5cbi5lbXBsb3llZS1zYWxhcnktdGV4dCB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmbGV4OiAxIDEgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDM1ZW07XG4gIHBhZGRpbmctdG9wOiAyNHB4O1xuICBjb2xvcjogc3RlZWxibHVlO1xuXG4gICYuaGlnaCB7XG4gICAgY29sb3I6ICNlZjQyNDI7XG4gIH1cblxuICAuZW1wbG95ZWUtcm93ICYge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG5cbi5jb21tdW5pY2F0aW9uIHtcbiAgbWluLXdpZHRoOiAxMTBweDtcbiAgbWFyZ2luLXRvcDogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY29tbXVuaWNhdGlvbi1pY29uIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxufVxuXG4uY29tbXVuaWNhdGlvbi1pY29uLnZpZGVvIHtcbiAgY29sb3I6IGxpZ2h0c2VhZ3JlZW47XG59XG4uY29tbXVuaWNhdGlvbi1pY29uLnZvaWNlIHtcbiAgY29sb3I6IGZvcmVzdGdyZWVuO1xufVxuLmNvbW11bmljYXRpb24taWNvbi5lbWFpbCB7XG4gIGNvbG9yOiBvcmFuZ2U7XG59XG5cbi5kb251dCB7XG4gIGFuaW1hdGlvbjogY2hhcnRmYWRlIDAuNXMgZWFzZS1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgY2hhcnRmYWRlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIHtcbiAgLmRvbnV0IHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbn1cbiJdfQ== */