This example demonstrates how Spread.Views supports swipe row gestures on touch devices.
If you swipe left, Edit and Detail buttons appear. If you swipe right, a Delete button appears.
Additionally, if you flick left (or swipe quickly), DataViews interprets that as a delete command.
As you can see in the code, each of the buttons is in a hidden column that gets revealed when the user swipes, or moves, the column.
You can enable these actions by setting the allowSwipeAction option to true when initializing the view and then configuring the action in the column definition.
Note the four action columns have a swipeDirection or flickAction property defined.
<!DOCTYPE html>
<html lang="en">
<head>
<base href="/dataviewsjs/demos/en/sample/Features/Rows/SwipeRow/purejs/" />
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="keywords" content="rows, touch, command, touch action, touchaction" />
<meta
name="description"
content="This example demonstrates how Spread.Views supports swipe row gestures on touch devices."
/>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Swipe Row | Features | 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/dataviews/gc.dataviews.core.min.css" rel="stylesheet" type="text/css" />
<link href="/dataviewsjs/demos/static/dataviews/gc.dataviews.grid.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.grid.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="editRowTemplate" style="display: none">
<div class="edit-row">
<div class="edit-detail">
<label class="column1">First Name</label>
<input class="column2" data-column="firstName" />
</div>
<div class="edit-detail">
<label class="column1">Last Name</label>
<input class="column2" data-column="lastName" />
</div>
</div>
<div class="edit-row">
<div class="edit-detail">
<label class="column1">Score</label>
<input class="column2" data-column="score" />
</div>
<div class="edit-detail">
<label class="column1">Position</label>
<select class="column2" data-column="position">
<option>Sales</option>
<option>Sales Manager</option>
<option>Web Developer</option>
<option>.NET Developer</option>
<option>Admin Assistant</option>
</select>
</div>
</div>
<div class="edit-advantage edit-detail">
<label class="column1">Advantage</label>
<textarea data-column="advantage"></textarea>
</div>
</template>
<div class="main-container">
<p class="tip">This demo is intended to show touch support features. Please view on a touch-enabled device.</p>
<div id="grid" class="grid"></div>
</div>
<script src="locale.js" type="text/javascript"></script>
<script src="data.js" type="text/javascript"></script>
<script src="app.js" type="text/javascript"></script>
</body>
</html>
var cols = [
{
id: 'firstName',
caption: 'First Name',
dataField: 'firstName',
width: '*',
},
{
id: 'lastName',
caption: 'Last Name',
dataField: 'lastName',
width: '*',
},
{
id: 'score',
caption: 'Score',
dataField: 'score',
width: '*',
dataType: 'number',
},
{
id: 'position',
caption: 'Position',
dataField: 'position',
width: '*',
},
{
id: 'advantage',
caption: 'Advantage',
dataField: 'advantage',
width: '*',
},
{
id: 'controlPanel1',
action: [
{
name: 'touchedit',
presenter:
'<div data-action = "touchedit" style = "background-color:#603DFD;" class="icon-background"><span class="icon-wrapper demo-icon icon-edit"></span></div>',
handler: startEdit,
},
],
width: 80,
swipeDirection: 'left',
},
{
id: 'controlPanel3',
action: [
{
name: 'detail',
presenter:
'<div data-action = "detail" style = "background-color:#FD6345;" class="icon-background"><span class="icon-wrapper demo-icon icon-detail"></span></div>',
handler: showDetails,
},
],
width: 80,
swipeDirection: 'left',
},
{
id: 'controlPanel4',
action: [
{
name: 'delete',
handler: flickDeleteRow,
flickAction: 'right',
},
],
swipeDirection: 'none',
},
{
id: 'controlPanel5',
action: [
{
name: 'delete',
presenter:
'<div data-action = "delete" style = "background-color:red;" class="icon-background"><span class="icon-wrapper demo-icon icon-delete"></span></div>',
handler: actionDeleteRow,
},
],
width: 80,
swipeDirection: 'right',
},
];
function getDataView() {
return window.dataView || window.getControlByElement(document.body);
}
function showDetails(args) {
showDialog(args);
}
function startEdit(args) {
args.closeActionColumnPanel();
getDataView().startEditing();
}
function flickDeleteRow(args) {
deleteRow(args, locale.flickDeleteConfirm);
}
function actionDeleteRow(args) {
deleteRow(args, locale.deleteConfirm);
}
function deleteRow(args, text) {
var answer = confirm(text);
if (answer) {
var dataItem = args.dataItem;
if (dataItem && dataItem.sourceIndex >= 0) {
getDataView().data.removeDataItems(dataItem.sourceIndex);
}
}
args.closeActionColumnPanel();
}
function showDialog(args) {
var dataItem = args.dataItem;
var overlay = $('<div class="dialog-overlay"></div>');
var dialogContainer = $('<div class="dialog-container"></div>');
var dialog = $(
'\n<div class="dialog-header">\n <span style="font-weight:bold">Applicant Details</span><div class="dialog-close-button"><span>✕</span></div>\n</div>\n<div class="dialog-body">\n <div class="name">'
.concat(dataItem.firstName, ' ')
.concat(dataItem.lastName, '</div>\n <div class="position">')
.concat(dataItem.position, '</div>\n <div class="advantage">')
.concat(dataItem.advantage, '</div>\n</div>')
);
dialogContainer.append(dialog);
$(document.body).append(overlay).append(dialogContainer);
overlay.on('mousewheel', function () {
return false;
});
$('.dialog-close-button').on('click', function () {
overlay.remove();
dialogContainer.remove();
args.closeActionColumnPanel();
});
var screenWindow = $(window);
var left = parseInt((screenWindow.width() - dialogContainer.width()) / 2 + window.pageXOffset, 10);
var top = parseInt((screenWindow.height() - dialogContainer.height()) / 2 + window.pageYOffset, 10);
dialogContainer.css({
left: left,
top: top,
});
}
var dataView = new GC.DataViews.DataView(
document.getElementById('grid'),
data,
cols,
new GC.DataViews.GridLayout({
rowHeight: 40,
allowEditing: true,
allowSwipe: true,
editMode: 'editForm',
editRowTemplate: '#editRowTemplate',
})
); // focus data.view by default
document.getElementById('grid').focus();
// resumes
var data = [{
firstName: 'Alexa',
lastName: 'Wilder',
registeredDate: 'Oct 14, 2018',
score: 90,
position: 'Web Developer',
advantage: 'Very smart. He can solve problems in a short time.'
}, {
firstName: 'Victor',
lastName: 'Wooten',
registeredDate: 'May 14, 2018',
score: 70,
position: 'Web Developer',
advantage: 'Positive and optimistic, always first to work on latest technology in company.'
}, {
firstName: 'Darrin',
lastName: 'Sweeney',
registeredDate: 'June 14, 2018',
score: 60,
position: '.NET Developer',
advantage: 'Loves games day, family day, and outings.'
}, {
firstName: 'Jen',
lastName: 'Coulter',
registeredDate: 'April 14, 2018',
score: '95',
position: 'Admin Assistant',
advantage: 'Very good communication skills.'
}, {
firstName: 'Ifeoma',
lastName: 'Mays',
registeredDate: 'April 14,2018',
score: 85,
position: 'Sales Manager',
advantage: 'Manages his team well. They are always ready to resolve conflict.'
}, {
firstName: 'Akeem',
lastName: 'Carr',
registeredDate: 'April 14, 2018',
score: 80,
position: 'Sales Manager',
advantage: 'Has experience in managing teams over 20 employees.'
}, {
firstName: 'Buffy',
lastName: 'Weber',
registeredDate: 'April 25, 2018',
score: 80,
position: 'Sales',
advantage: 'Is eager to communicate with others.'
}, {
firstName: 'Akeem',
lastName: 'Abdul',
registeredDate: 'April 14, 2018',
score: 80,
position: 'Web Developer',
advantage: 'Positive and optimistic, always first to work on latest technology in company.'
}, {
firstName: 'Buffy',
lastName: 'Carr',
registeredDate: 'April 14, 2018',
score: 90,
position: 'Web Developer',
advantage: 'Very smart. He can solve problems quickly.'
}, {
firstName: 'Guy',
lastName: 'Wooten',
registeredDate: 'July 14, 2018',
score: 90,
position: 'Web Developer',
advantage: 'A lot of experience on latest technology.'
}, {
firstName: 'Gina',
lastName: 'Wilder',
registeredDate: 'Oct 14, 2018',
score: 70,
position: 'Web Developer',
advantage: 'Very smart. She can solve problems quickly.'
}, {
firstName: 'Guy',
lastName: 'Wooten',
registeredDate: 'May 14, 2018',
score: 90,
position: 'Sales',
advantage: 'Is eager to communicate with others Would be good at networking.'
}, {
firstName: 'Daryl',
lastName: 'Sweeney',
registeredDate: 'June 14, 2018',
score: 90,
position: 'Sales',
advantage: 'Love games day, family day, and outings.'
}, {
firstName: 'Sally',
lastName: 'Weber',
registeredDate: 'April 14, 2018',
score: 90,
position: 'Web Developer',
advantage: 'Very smart. She can solve problems quickly.'
}, {
firstName: 'Euna Lee',
lastName: 'Mays',
registeredDate: 'April 14,2018',
score: 90,
position: 'Admin Assistant',
advantage: 'HR department is good. They always ready to resolve confusions if any.'
}, {
firstName: 'Akeem',
lastName: 'Carr',
registeredDate: 'April 14, 2018',
score: 60,
position: 'Admin Assistant',
advantage: 'Manages his team well. They are always ready to resolve conflict.'
}, {
firstName: 'Buffy',
lastName: 'Weber',
registeredDate: 'April 25, 2018',
score: 65,
position: 'Admin Assistant',
advantage: 'Manages her team well. They are always ready to resolve conflict.'
}, {
firstName: 'Aaron',
lastName: 'Carr',
registeredDate: 'April 14, 2018',
score: 60,
position: '.NET Developer',
advantage: 'Very smart. He can solve problems quickly.'
}, {
firstName: 'Buffy',
lastName: 'Carr',
registeredDate: 'April 14, 2018',
score: 70,
position: '.NET Developer',
advantage: 'A lot of exposure on latest technology.'
}, {
firstName: 'Guy',
lastName: 'Junker',
registeredDate: 'July 14, 2018',
score: 80,
position: '.NET Developer',
advantage: 'A lot of exposure on latest technology.'
}];
var locale = {
swipeRowTip: 'This demo is intended to show touch support features. Please view on a touch-enabled device.',
flickDeleteConfirm:
'flick action was detected and delete action was invoked, are you sure you want to delete this row?',
deleteConfirm: 'are you sure you want to delete this row?',
};
@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-edit:before {
content: "";
}
/* '' */
.icon-delete:before {
content: "";
}
/* '' */
.icon-detail:before {
content: "";
}
/* '' */
.icon-wrapper {
font-size: 15px;
line-height: 40px;
margin-left: 35%;
vertical-align: middle;
}
.icon-background {
color: #fff;
height: 100%;
position: relative;
width: 80px;
}
.edit-btn {
margin: 0 3px;
width: 70px;
}
.dialog-overlay {
background: rgba(55, 58, 71, 0.9);
height: 100%;
left: 0;
position: fixed;
top: 0;
width: 100%;
z-index: 9999;
}
.dialog-container {
background: #fff;
border: 1px solid #d3d3d3;
color: #777;
font-family: "Roboto", sans-serif;
font-weight: 300;
height: 200px;
position: absolute;
width: 300px;
z-index: 10000;
}
.dialog-header {
border-bottom: solid 1px #f1f1f1;
padding: 1em;
}
.dialog-body {
padding: 1em;
}
.dialog-body .name {
font-size: 20px;
font-weight: bold;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.dialog-body .position {
font-style: italic;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.dialog-body .advantage {
margin-top: 15px;
overflow-y: auto;
max-height: 66px;
}
.dialog-close-button {
border-radius: 10px;
color: #6a9f9f;
float: right;
text-align: center;
width: 20px;
}
.dialog-close-button:hover {
color: #406363;
cursor: pointer;
}
.gc-selected {
background-color: #e13300;
color: #fff;
}
.gc-row {
line-height: 36px;
}
.odd {
background-color: rgba(239, 239, 239, 0.4);
}
p.tip {
margin: 5px;
flex-grow: 0;
flex-shrink: 0;
}
.main-container {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
}
.grid {
width: 100%;
height: 90%;
flex-grow: 1;
flex-shrink: 1;
}
.column1 {
display: inline-block;
margin-left: 30px;
width: 90px;
}
.column2 {
width: 186px;
}
.edit-detail {
display: inline-block;
margin: 4px;
}
.edit-detail *:focus {
outline: none;
}
.edit-detail input {
padding: 0 2px;
}
.edit-advantage label {
vertical-align: top;
}
.edit-advantage textarea {
height: 50px;
resize: none;
width: 500px;
}
.gc-popup-dialog {
background: #f1f1f1;
}
.gc-popup-editing-area {
width: 690px;
}
@media only screen and (max-width: 768px) {
.gc-popup-editing-area {
width: 300px;
}
.column2 {
margin-left: 30px;
}
.edit-detail {
display: block;
}
.edit-advantage textarea {
margin-left: 30px;
width: 250px;
}
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZlYXR1cmVzL1Jvd3MvU3dpcGVSb3cvcHVyZWpzL3N0eWxlcy5jc3MiLCJGZWF0dXJlcy9Sb3dzL1N3aXBlUm93L3B1cmVqcy9zdHlsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNBaEI7RUFDRSxtQ0FBQTtFQUNBLG0yTEFBQTtBREVGO0FDRUE7RUFDRSxrQ0FBQTtFQUNBLG1DQUFBO0VBQ0EscUJBQUE7RUFDQSxtQ0FBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0FEQUY7O0FDR0E7RUFDRSxZQUFBO0FEQUY7O0FDR0EsUUFBQTtBQUNBO0VBQ0UsWUFBQTtBREFGOztBQ0dBLFFBQUE7QUFDQTtFQUNFLFlBQUE7QURBRjs7QUNHQSxRQUFBO0FBRUE7RUFDRSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0FEREY7O0FDSUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtBRERGOztBQ0lBO0VBQ0UsYUFBQTtFQUNBLFdBQUE7QURERjs7QUNJQTtFQUNFLGlDQUFBO0VBQ0EsWUFBQTtFQUNBLE9BQUE7RUFDQSxlQUFBO0VBQ0EsTUFBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0FEREY7O0FDSUE7RUFDRSxnQkFBQTtFQUNBLHlCQUFBO0VBQ0EsV0FBQTtFQUNBLGlDQUFBO0VBQ0EsZ0JBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtBRERGOztBQ0lBO0VBQ0UsZ0NBQUE7RUFDQSxZQUFBO0FEREY7O0FDSUE7RUFDRSxZQUFBO0FEREY7QUNHRTtFQUNFLGVBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtBRERKO0FDSUU7RUFDRSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtBREZKO0FDS0U7RUFDRSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QURISjs7QUNPQTtFQUNFLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7QURKRjs7QUNPQTtFQUNFLGNBQUE7RUFDQSxlQUFBO0FESkY7O0FDT0E7RUFDRSx5QkFBQTtFQUNBLFdBQUE7QURKRjs7QUNPQTtFQUNFLGlCQUFBO0FESkY7O0FDT0E7RUFDRSwwQ0FBQTtBREpGOztBQ09BO0VBQ0UsV0FBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0FESkY7O0FDT0E7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBREpGOztBQ09BO0VBQ0UsV0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtBREpGOztBQ09BO0VBQ0UscUJBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7QURKRjs7QUNPQTtFQUNFLFlBQUE7QURKRjs7QUNPQTtFQUNFLHFCQUFBO0VBQ0EsV0FBQTtBREpGOztBQ09BO0VBQ0UsYUFBQTtBREpGOztBQ09BO0VBQ0UsY0FBQTtBREpGOztBQ09BO0VBQ0UsbUJBQUE7QURKRjs7QUNPQTtFQUNFLFlBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtBREpGOztBQ09BO0VBQ0UsbUJBQUE7QURKRjs7QUNPQTtFQUNFLFlBQUE7QURKRjs7QUNPQTtFQUNFO0lBQ0UsWUFBQTtFREpGOztFQ09BO0lBQ0UsaUJBQUE7RURKRjs7RUNPQTtJQUNFLGNBQUE7RURKRjs7RUNPQTtJQUNFLGlCQUFBO0lBQ0EsWUFBQTtFREpGO0FBQ0YiLCJmaWxlIjoiRmVhdHVyZXMvUm93cy9Td2lwZVJvdy9wdXJlanMvc3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJzcHJlYWR2aWV3LWRlbW8taWNvblwiO1xuICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtiYXNlNjQsZDA5R1JnQUJBQUFBQUJGY0FBOEFBQUFBSGR3QUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJIVTFWQ0FBQUJXQUFBQURNQUFBQkNzUDZ6N1U5VEx6SUFBQUdNQUFBQVF3QUFBRlkrSVVreVkyMWhjQUFBQWRBQUFBQjJBQUFCN2dsUDdRMWpkblFnQUFBQ1NBQUFBQk1BQUFBZ0J0WC9BbVp3WjIwQUFBSmNBQUFGa0FBQUMzQ0trWkJaWjJGemNBQUFCK3dBQUFBSUFBQUFDQUFBQUJCbmJIbG1BQUFIOUFBQUJtWUFBQW9VTHBxeWxHaGxZV1FBQUE1Y0FBQUFNQUFBQURZSm9xZllhR2hsWVFBQURvd0FBQUFkQUFBQUpBYzlBMTFvYlhSNEFBQU9yQUFBQUJnQUFBQXNKNTBBQUd4dlkyRUFBQTdFQUFBQUdBQUFBQmdOTUE5TWJXRjRjQUFBRHR3QUFBQWdBQUFBSUFFaEREWnVZVzFsQUFBTy9BQUFBWGNBQUFMTnpKMGNIbkJ2YzNRQUFCQjBBQUFBYkFBQUFKQzh0OW1oY0hKbGNBQUFFT0FBQUFCNkFBQUFodVZCSzd4NG5HTmdaR0JnNEdLUVk5QmhZSFJ4OHdsaDRHQmdZWUFBa0F4alRtWjZJbEFNeWdQS3NZQnBEaUJtZzRnQ0FJb2pBMDhBZUp4allHU2V4VGlCZ1pXQmdhbUthUThEQTBNUGhHWjh3R0RJeUFRVVpXQmxac0FLQXRKY1V4Z2NYakM4NEdRTytwL0ZFTVVjeERBZEtNd0lrZ01BOGNnTDBRQjRuTzJSMFEzQ1FBeEQzOUZRNkttajhNbEFmREVMbzJhTDFrazlCcEdlcFZpNSs3Q0JPN0NJbHdnWVh3WTFIN21qL1lYWmZ2RHVteWcvdCtPUVVxbzlXbSs2RGYyNDh1REoxdTlXL3JPMy9yek55dTJpa3pSS2p6VFZTSnJLTmsyMWxVWXBrMFo1azBiSmswWWRxS2tMNWdsM1h4dE5BQUI0bkdOZ1FBTVNFTWdjOUQ4VGhBRVNaZ1BiQUhpY3JWWnBkOU5HRkIxNVNaeUVMQ1VMTFdwaHhNUnBzRVltYk1HQUNVR3lZeUJkbksyVm9Jc1VPK20rOFluZjRGL3paTnB6NkRkK1d1OGJMeVNRdE9kd21wT2pkK2ZOMWN6YlpSSmFrdGdMNjVHVW15L0YxTlltamV3OENlbUdUY3RSZkNnN2V5Rmxpc25mQlZFUXJaYmF0eDJIUkVRaVVMV3VzRVFRK3g1Wm1tUjg2RkZHeTdha1YwM0tMVDNwTGx2alFiMVYzMzRhT3NxeE82R2taak4wYUQyeUpWVVlWYUpJcGoxUzBxWmxxUG9yU1N1OHY4TE1WODFRd29oT0ltbThHY2JRU040Ylo3VEthRFcyNHlpS2JMTGNLRklrbXVGQkZIbVUxUkxuNUlvSkRNb0h6WkR5eXFjUjVjUDhpS3pZbzV4V3NFdTIwL3krTDNtbmR6ay9zVjl2VWJia1FCL0lqdXpnN0hRbFg0UmJXMkhjdEpQdEtGUVJkdGQzUW16WjdGVC9aby95bWtZRHR5c3l2ZENNWUtsOGhSQXJQNkhNL2lGWkxaeFArWkpIbzFxeWtSTkI2MlZPN0VzK2dkYmppQ2x4elJoWjBOM1JDUkhVL1pJekRQYVlQaDc4OGQ0cGxnc1RBbmdjeTNwSEpad0lFeWxoY3pSSjJqQnlZQ1ZsaXlxcDlhNllPT1YxV3NSYnduN3QydEdYem1qalVIZGlQRnNQSFZzNVVjbnhhRktubVV5ZDJrbk5veWtOb3BSMEpuak1yd01vUDZKSlhtMWpOWW1WUjlNNFpzYUVSQ0lDTGR4TFUwRXNPN0drS1FUTm94bTl1UnVtdVhZdFdxVEpBL1hjby9mMDVsYTR1ZE5UMmc3MHMwWi9WcWRpT3RnTDArbHA1Qy94YWRybElrWHArdWtaZmt6aVFkWUNNcEV0TnNPVWd3ZHYvUTdTeTllV0hJWFhCdGp1N2ZNcnFIM1dSUENrQWZzYjBCNVAxU2tKVElXWVZZaFdRR0t0YTFtV3lkV3NGcW5JMUhkRG1sYStyTk1FaW5JY0Y4ZStqSEg5WHpNemxwZ1N2dCtKMDdNakxqMXo3VXNJMHh4OG0zVTltdGVweFhJQmNXWjVUcWRabHUvck5NZnlBNTNtV1o3WDZRaExXNmVqTEQvVWFZSGxSem9kWTNsQkM1cDAzOEdRaXpEa0FnNlFNSVNsQTBOWVhvSWhMQlVNWWJrSVExZ1dZUWpMSlJqQzhtTVl3bklaaHJDOHJHWFYxRk5KNDlxWldBWnNRbUJpamg2NXpFWGxhaXE1VkVLN2FGUnFRNTRTYnBWVUZNK3FmMldnWGp6eWhqbXdGa2lYeUpwZk1jNlZqMGJsK05ZVkxXOGFPMWZBc2Vwdkg0NzJPZkZTMW91RlB3WC8xZFpVSmIxaXpjT1RxL0FiaHA1c0o2bzJxWGgwVFpmUFZUMjYvbDlVVkZnTDlCdEloVmdveXJKc2NHY2loSTg2bllacW9KVkR6R3pNUExUcmRjdWFuOFA5TnpGQ0ZsRDkrRGNVR2d2Y2cwNVpTVm50NEt6VjE5dXkzRHVEY2pnVExFa3hOL1A2VnZnaUk3UFNmcEZaeXA2UGZCNXdCWXhLWmRocUE2MFZ2TmtuTVErWjNpVFBCSEZiVVRaSTJ0ak9CSWtOSFBPQWVmT2RCQ1poNnFvTjVFN2hoZzM0QldGdXdYa25YS0o2b3l5SDdrWHM4eWlrL0Z1bjRrVDJxR2lNd0xQWkcyR3Y3MExLYjNFTUpEVDVwWDRNVkJXaHFSZzFGZEEwVW02b0JsL0cyYnB0UXNZTzlDTXFkc095ck9MRHh4YjNsWkp0R1lSOHBJalZvNk9mMWw2aVRxcmNmbVlVbCsrZHZnWEJJRFV4ZjN2ZmRIR1F5cnRheVRKSGJRTlR0eHFWVTllYVErTlZoK3JtVWZXOTQrd1RPV3VhYnJvbkhucGYwNnJid2NWY0xMRDJiUTdTVWlZWDFQVmhoUTJpeThXbFVPcGxORW52dUFjWUZoalE3MUNLamYrcit0aDhuaXRWaGRGeEpOOU8xTGZSNTJBTS9BL1lmMGYxQTlEM1kraHlEUzdQOTVvVG4yNzA0V3lacnFJWDY2Zm9OekJycmJsWnVnYmMwSFFENGlGSHJZNjR5ZzE4cHdaeGVxUzVIT2toNEdQZEZlSUJ3Q2FBeGVBVDNiV001bE1Bby9tTU9UN0E1OHhoMEdRT2d5M21NTmhtemhyQURuTVk3REtId1I1ekdIekJuSFdBTDVuRElHUU9nNGc1REo0d0p3QjR5aHdHWHpHSHdkZk1ZZkFOYys0RGZNc2NCakZ6R0NUTVliQ3Y2ZFl3ekMxZTBGMmd0a0ZWb0FOVFQxamN3K0pRVTJYSS9vNFhodjI5UWN6K3dTQ20vcWpwOXBENkV5OE05V2VEbVBxTFFVejlWZE9kSWZVM1hoanE3d1l4OVErRG1QcE12eGpMWlFhL2pIeVhDZ2VVWFd3KzUrK0o5dy9ieFVDNUFBRUFBZi8vQUE5NG5LVlZXVzhiMXhVKzU5N1pPQnl1bW9XeXlERTNjV3hTa0Z5dWlxeFNsQmZRa3VrRnRwRFFTYVRRanF5MmtHM0pEZUNnNlBhZ3dMWFJKZ0t5RktoYkJBaXN4d2F0K3RLWEFIMW9uN29BYlg1Q0h3SVpSWkduUHJTSXhqMlhZaFU3aWJxZ1E4Njk1N3Zuek15NTV6dm5YQWdBUFA0NzMrRkJpTUJobUlBWnVBQXZ3UnA4RnpiaFFxc1RDekUxYWpDRnEwb3ZFbUE4ckRHR25QV0NNa01BWEJBelFsZVhHQ0IwM3ZqKzNZM3ZmUFBPSzdkV1YxNWVldUhaeStmUDFnWlhKUzZuU3FPV3FhaTViTUdyVmV0T3BXekhDSHNEM0NDTW45RUxYTUk5ZkJ6MzhCZlpmeG4vdmIzUUMvdWhnVjdndnQ1TjI3OXdYS1RSVGo4aDR2Vjk0TGorVHc3UzRNcW5EejVoOWJUaWlaYy91R0VUdEc3UWExeFVWc1hrckFvTC93OVBhRmgrVmRpTHdmLzkvMnFFMnY0NkFDaGZ5TzEwNjVrZ3FqcjJPUTBnMTdEUHFJeDlRbWtpUGlVVWRINkdRdU8vcFRBejBHY09vR1NnYjJUMktNa05jQ1Z6TUNYc3QybDc5MUVmTWNkeGR4c0g2L0FwOVA4Ri9lbDRVb0FlMytOWDJGOGhCZmxXQmhobmE3U0k2OEFCK0FKd0RsMFNvRk53N0p3a0owclkzNTFqbXhGVXNoNFdxZzJzbHcrandMUlhmaVdmOGwvZHNxeWlkZHp5M3paTnZHRk4yVVhMMnNMN3FUd3V0ZDNpbGpsdGxnWUtYQldXVS9iV0VkajNwVWErdUgxZk9PTnJZblVkcUNEWkFsQ1pkb0dZN2RpakJiUHZpNm1TRXhQa3hBeG1CaldUOFFTcWx4MjBlYzMwMzdHbnJLSnRQL1JmVGVYektiei8wTGFML1ErYk9PV2F3c09pTlcwOUxMcmtHVzVaMHdRdC94Mno3OHYzS005cU1BUmVLNjlUQm1FN2dIQTZTTTZjSXE4UUZvVExYUkdzVHI3QVpMdGtWWnR5cFJiQVdEWXNIenR6cC9mMnhaUDRpdi82eXJVSDg5ZktZOS9ZL1BPYksrVkQwdC84SC9pdm84SGkyVlBYZnRqL3p0ZjREdnMxRkNEWkdoNmh0MkU3aEhCS3ZKZDJEeXY1Ykk3SkZ1MDFqTG1zcDZqMG85UXExQXUweXhsc3Noa2NSNi9hWkpXeWkzem43a2Yzdk9LdHQwYnllcGd6aVhGRENwbXFHVlVqM1dXOCtOb0h5L2MrdW90TFY3ZDYwdFdDSnFHaEk5TWtIcEhEdHBaTURoWExieTdNdmRhYjdHMEo5aDl2OCtmNUpkQ2dDYmZnWEd0K2JyYkJ1WXh0a0NsSlpINFRkQUNtUTQ4c21LeXhKWHBHbGJqYUF3a1VTWG1STmhMb1FpQmc0TnpOMVpYbDBVb3pXZi9TWWFzVXBKSnJWTWRSTWUwbVlyWGc1YXAxajZZd1U1VUloaG5kNk9WaXRCM0pzYW0rYWxXdmlWV3ZYaU9iSmpaTTFiYjI3a0VWRnNSWWk0bGFyRGZxalNacjFFVW95SUJxZDlOTzJ2Um5HMlBKMzlReDJ3aUhUU2ZraG9MaGhHNGJwaDZQcTNZNGFTVFpuYm1UcXl4cTZpazlFRSswUjJRTE03M3paK3BmUFQxcnZKY3FGbE0vTXA5SkowT0duYkNURS9OSFJxNU5QYnNjTVZuaVVJS1plREZWeFBUWDA0MHFSazdNSjBLRldEaWFEZ3pwQnZvL1pvcWlLZXpvWWlRYUtCNkpKNzFRWHNPeVZUNGFOMHNGdzVnc25YLytrT01VVTNqZExZYm1pbTc0Uk1lMjh1ZG5LNU1pdHlpT2dvTno3REYxUFJPR0lROTNXMVRCVEU3WllZbzBHNllDQVM2YW05USsrL1A0eFc3TEkyN2t0YjBpSnRWYVAwOWZWaEFsQ1MvUmhOSnpJS0YwZHFSVitMd2xySDNlOEVvckRwQkpKNXhvSktDUkc0cXBVaTQ2RFUrMUtoWldjMWtxUU11c2xLa0plQTdtYWtodHdHdjBHOEx2eWh1Vk0vaVNJVXYrbjZTUUxPRUVkM2Y4WXp2OG5MbTRzMmdldHplSW9ZM0tkSnNwaHVSL0tOR0k0OUx0SFgvaUVUNUlXWXVQWHJTc0RSc0dQWCtieC9kNy9uRTRDVitCNWRiVjUwNHpSVHVhR1k0RlVLSEcwSlk1STBGQnVDa3hCcW9DNmlxRUlhQ0ZBNzFJaUdtR3poVFVsQ1ZRZzBGMUFWUTEySVdnR3V4Y1g3NjY5TUtWeTVjdWRPYmFzek5tM2l5SUt4ZWxSTVhZWHBidDVWZlpkdjRESG9wbFlxYUwxUFlwdHlzZUpiZENBUk0yc2NHaEVNdjk2N0J1VURaVGloNUdjY2E0dXBiWDlQNncrYW40aHE3dWlhcCt4amMwamVFZm1hYjU5Lzh4SXNuYmlvUi8wYlY2ZGRRL05sckZtckQ3cVJjWW8rTmpUUFBlMTNUOHBmOHJzWWl6WWp4QTlwZFpiUGRqS2dYZFpOZG42YVNVTDlNWGR6OGVQM1ZpbkEzMW5WaTBrdWlhaTNxZmgzZjVKaytKU29jZ1JDa25YWmh2dFVVWDR3aWlBMUJqb0U0Z2c2VEkwcEp1YUZ4UlZXV2hMeWhxTnhpZ0lsYzc4WmliU283WVZtdzRQaHlMeDhRVkRjbkpFbVpxbWYyN1dqYXpvMlU3ak9PczdnakFOei9aNE4vMnQzYy9aT040UWNpZmJLeXZZOExPTXZkWW11VS9XRjluNzYvNzIrdit6OWI4YjAzZXZwMGR5Mk4yUE4yWXZBMy9CTGswcHR3QUFIaWNZMkJrWUdBQTRnYzNFcWJIODl0OFplQm1mZ0VVWWJqc3Uwa0dRZi9QWkg3QkhBVGtjakF3Z1VRQllXNEwxWGljWTJCa1lHQU8rcDhGSkY4d01Qei9EeVNCSWlpQUd3Q0gxQVdnQUFBQWVKeGpmc0hBd0F6RGtWQ016aGNFNGdVTURBQ3k1d2EvQUFBQUFBRHVBWllCM0FJaUFsWUNvZ05rQStnRXJBVUtBQUVBQUFBTEFKQUFDUUFBQUFBQUFnQWtBRFFBY3dBQUFIVUxjQUFBQUFCNG5IV1F5MDdDUUJTRy81R0xDb2thVGR3Nkt3TXhsa3NpQ3hJU0VneHNkRU1NVzFOS2FVdEtoMHdIRWw3RGQvQmhmQW1meFo5Mk1BWmltK2w4NTVzelowNEh3RFcrSVpBL1R4dzVDNXd4eXZrRXAraFpMdEEvV3k2U1h5eVhVTVdiNVRMOXUrVUtIaEJZcnVJR0g2d2dpdWVNRnZpMExIQWxMaTJmNEVMY1dTN1FQMW91a251V1M3Z1ZyNWJMOUo3bENpWWl0VnpGdmZnYXFOVldSMEZvWkcxUWwrMW1xeU9uVzZtb29zU05wYnMyb2RLcDdNdTVTb3dmeDhyeDFITFBZejlZeDY3ZWgvdDU0dXMwVW9sc09jMjlHdm1KcjEzanozYlYwMDNRTm1ZdTUxb3Q1ZEJteUpWV0M5OHpUbWpNcXR0by9EMFBBeWlzc0lWR3hLc0tZU0JSbzYxemJxT0pGanFrS1RNa00vT3NDQWxjeERRdTF0d1JaaXNwNHo3SG5GRkM2ek1qSmp2dytGMGUrVEVwNFA2WVZmVFI2bUU4SWUzT2lESXYyWmZEN2c2elJxUWt5M1F6Ty92dFBjV0dwN1ZwRFhmdHV0UlpWeExEZ3hxUzk3RmJXOUI0OUU1Mks0YTJpd2JmZi83dkIrTnBoRThBZUp4dHhrRU9neUFRQmRENXRJcElyOEtoa0l3T0NWZ0M0NkszYjlKdWZhdEhodjVXdXVkaDhNQVRFMlpZTEhCWTRmRWlvMkpWUXNsRGw4SzdoaTBmcnVkRGZwdUd4TTQydld2bFU1M0tWYmNScmpZM1BsTXVYbnNjRXJnMi9mallOYWZDSVJZbCtnSmZwQjdaZUp4ajhON0JjQ0lvWWlNalkxL2tCc2FkSEF3Y0RNa0ZHeGxZblRZeE1ESm9nUmlidVpnWU9TQXNQZ1l3aTgxcEY5TUJvRFFua00zdXRJdkJBY0ptWm5EWnFNTFlFUml4d2FFallpTnppc3RHTlJCdkYwY0RBeU9MUTBkeVNBUklTU1FRYk9aaFl1VFIyc0g0djNVRFMrOUdKZ1lYQUF4MkkvUUFBQT09KSBmb3JtYXQoXCJ3b2ZmXCIpO1xufVxuLmRlbW8taWNvbiB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcInNwcmVhZHZpZXctZGVtby1pY29uXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5pY29uLWVkaXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCLuoIdcIjtcbn1cblxuLyogJ+6ghycgKi9cbi5pY29uLWRlbGV0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIu6giFwiO1xufVxuXG4vKiAn7qCIJyAqL1xuLmljb24tZGV0YWlsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7qCJXCI7XG59XG5cbi8qICfuoIknICovXG4uaWNvbi13cmFwcGVyIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgbWFyZ2luLWxlZnQ6IDM1JTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmljb24tYmFja2dyb3VuZCB7XG4gIGNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDgwcHg7XG59XG5cbi5lZGl0LWJ0biB7XG4gIG1hcmdpbjogMCAzcHg7XG4gIHdpZHRoOiA3MHB4O1xufVxuXG4uZGlhbG9nLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDU1LCA1OCwgNzEsIDAuOSk7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA5OTk5O1xufVxuXG4uZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkM2QzZDM7XG4gIGNvbG9yOiAjNzc3O1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgaGVpZ2h0OiAyMDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMzAwcHg7XG4gIHotaW5kZXg6IDEwMDAwO1xufVxuXG4uZGlhbG9nLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjZjFmMWYxO1xuICBwYWRkaW5nOiAxZW07XG59XG5cbi5kaWFsb2ctYm9keSB7XG4gIHBhZGRpbmc6IDFlbTtcbn1cbi5kaWFsb2ctYm9keSAubmFtZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLmRpYWxvZy1ib2R5IC5wb3NpdGlvbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4uZGlhbG9nLWJvZHkgLmFkdmFudGFnZSB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDY2cHg7XG59XG5cbi5kaWFsb2ctY2xvc2UtYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgY29sb3I6ICM2YTlmOWY7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMjBweDtcbn1cblxuLmRpYWxvZy1jbG9zZS1idXR0b246aG92ZXIge1xuICBjb2xvcjogIzQwNjM2MztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZ2Mtc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTEzMzAwO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmdjLXJvdyB7XG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xufVxuXG4ub2RkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzksIDIzOSwgMjM5LCAwLjQpO1xufVxuXG5wLnRpcCB7XG4gIG1hcmdpbjogNXB4O1xuICBmbGV4LWdyb3c6IDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ubWFpbi1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uZ3JpZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDkwJTtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LXNocmluazogMTtcbn1cblxuLmNvbHVtbjEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICB3aWR0aDogOTBweDtcbn1cblxuLmNvbHVtbjIge1xuICB3aWR0aDogMTg2cHg7XG59XG5cbi5lZGl0LWRldGFpbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiA0cHg7XG59XG5cbi5lZGl0LWRldGFpbCAqOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmVkaXQtZGV0YWlsIGlucHV0IHtcbiAgcGFkZGluZzogMCAycHg7XG59XG5cbi5lZGl0LWFkdmFudGFnZSBsYWJlbCB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5lZGl0LWFkdmFudGFnZSB0ZXh0YXJlYSB7XG4gIGhlaWdodDogNTBweDtcbiAgcmVzaXplOiBub25lO1xuICB3aWR0aDogNTAwcHg7XG59XG5cbi5nYy1wb3B1cC1kaWFsb2cge1xuICBiYWNrZ3JvdW5kOiAjZjFmMWYxO1xufVxuXG4uZ2MtcG9wdXAtZWRpdGluZy1hcmVhIHtcbiAgd2lkdGg6IDY5MHB4O1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5nYy1wb3B1cC1lZGl0aW5nLWFyZWEge1xuICAgIHdpZHRoOiAzMDBweDtcbiAgfVxuXG4gIC5jb2x1bW4yIHtcbiAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgfVxuXG4gIC5lZGl0LWRldGFpbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuZWRpdC1hZHZhbnRhZ2UgdGV4dGFyZWEge1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIHdpZHRoOiAyNTBweDtcbiAgfVxufSIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ3NwcmVhZHZpZXctZGVtby1pY29uJztcbiAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7YmFzZTY0LGQwOUdSZ0FCQUFBQUFCRmNBQThBQUFBQUhkd0FBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCSFUxVkNBQUFCV0FBQUFETUFBQUJDc1A2ejdVOVRMeklBQUFHTUFBQUFRd0FBQUZZK0lVa3lZMjFoY0FBQUFkQUFBQUIyQUFBQjdnbFA3UTFqZG5RZ0FBQUNTQUFBQUJNQUFBQWdCdFgvQW1ad1oyMEFBQUpjQUFBRmtBQUFDM0NLa1pCWloyRnpjQUFBQit3QUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBSDlBQUFCbVlBQUFvVUxwcXlsR2hsWVdRQUFBNWNBQUFBTUFBQUFEWUpvcWZZYUdobFlRQUFEb3dBQUFBZEFBQUFKQWM5QTExb2JYUjRBQUFPckFBQUFCZ0FBQUFzSjUwQUFHeHZZMkVBQUE3RUFBQUFHQUFBQUJnTk1BOU1iV0Y0Y0FBQUR0d0FBQUFnQUFBQUlBRWhERFp1WVcxbEFBQU8vQUFBQVhjQUFBTE56SjBjSG5CdmMzUUFBQkIwQUFBQWJBQUFBSkM4dDltaGNISmxjQUFBRU9BQUFBQjZBQUFBaHVWQks3eDRuR05nWkdCZzRHS1FZOUJoWUhSeDh3bGg0R0JnWVlBQWtBeGpUbVo2SWxBTXlnUEtzWUJwRGlCbWc0Z0NBSW9qQTA4QWVKeGpZR1NleFRpQmdaV0JnYW1LYVE4REEwTVBoR1o4d0dESXlBUVVaV0JsWnNBS0F0SmNVeGdjWGpDODRHUU8rcC9GRU1VY3hEQWRLTXdJa2dNQThjZ0wwUUI0bk8yUjBRM0NRQXhEMzlGUTZLbWo4TWxBZkRFTG8yYUwxa2s5QnBHZXBWaTUrN0NCTzdDSWx3Z1lYd1kxSDdtai9ZWFpmdkR1bXlnL3QrT1FVcW85V20rNkRmMjQ4dURKMXU5Vy9yTzMvcnpOeXUyaWt6UktqelRWU0pyS05rMjFsVVlwazBaNWswYkprMFlkcUtrTDVnbDNYeHROQUFCNG5HTmdRQU1TRU1nYzlEOFRoQUVTWmdQYkFIaWNyVlpwZDlOR0ZCMTVTWnlFTENVTExXcGh4TVJwc0VZbWJNR0FDVUd5WXlCZG5LMlZvSXNVTyttKzhZbmY0Ri96Wk5wejZEZCtXdThiTHlTUXRPZHdtcE9qZCtmTjFjemJaUkpha3RnTDY1R1VteS9GMU5ZbWpldzhDZW1HVGN0UmZDZzdleUZsaXNuZkJWRVFyWmJhdHgySFJFUWlVTFd1c0VRUSt4NVptbVI4NkZGR3k3YWtWMDNLTFQzcExsdmpRYjFWMzM0YU9zcXhPNkdrWmpOMGFEMnlKVlVZVmFKSXBqMVMwcVpscVBvclNTdTh2OExNVjgxUXdvaE9JbW04R2NiUVNONGJaN1RLYURXMjR5aUtiTExjS0ZJa211RkJGSG1VMVJMbjVJb0pETW9IelpEeXlxY1I1Y1A4aUt6WW81eFdzRXUyMC95K0wzbW5kemsvc1Y5dlViYmtRQi9JanV6ZzdIUWxYNFJiVzJIY3RKUHRLRlFSZHRkM1Ftelo3RlQvWm8veW1rWUR0eXN5dmRDTVlLbDhoUkFyUDZITS9pRlpMWnhQK1pKSG8xcXlrUk5CNjJWTzdFcytnZGJqaUNseHpSaFowTjNSQ1JIVS9aSXpEUGFZUGg3ODhkNHBsZ3NUQW5nY3kzcEhKWndJRXlsaGN6UkoyakJ5WUNWbGl5cXA5YTZZT09WMVdzUmJ3bjd0MnRHWHptampVSGRpUEZzUEhWczVVY254YUZLbm1VeWQya25Ob3lrTm9wUjBKbmpNcndNb1A2SkpYbTFqTlltVlI5TTRac2FFUkNJQ0xkeExVMEVzTzdHa0tRVE5veG05dVJ1bXVYWXRXcVRKQS9YY28vZjA1bGE0dWROVDJnNzBzMFovVnFkaU90Z0wwK2xwNUMveGFkcmxJa1hwK3VrWmZremlRZFlDTXBFdE5zT1Vnd2R2L1E3U3k5ZVdISVhYQnRqdTdmTXJxSDNXUlBDa0Fmc2IwQjVQMVNrSlRJV1lWWWhXUUdLdGExbVd5ZFdzRnFuSTFIZERtbGErck5NRWluSWNGOGUrakhIOVh6TXpscGdTdnQrSjA3TWpMajF6N1VzSTB4eDhtM1U5bXRlcHhYSUJjV1o1VHFkWmx1L3JOTWZ5QTUzbVdaN1g2UWhMVzZlakxEL1VhWUhsUnpvZFkzbEJDNXAwMzhHUWl6RGtBZzZRTUlTbEEwTllYb0loTEJVTVlia0lRMWdXWVFqTEpSakM4bU1Zd25JWmhyQzhyR1hWMUZOSjQ5cVpXQVpzUW1CaWpoNjV6RVhsYWlxNVZFSzdhRlJxUTU0U2JwVlVGTStxZjJXZ1hqenloam13RmtpWHlKcGZNYzZWajBibCtOWVZMVzhhTzFmQXNlcHZINDcyT2ZGUzFvdUZQd1gvMWRaVUpiMWl6Y09UcS9BYmhwNXNKNm8ycVhoMFRaZlBWVDI2L2w5VVZGZ0w5QnRJaFZnb3lySnNjR2NpaEk4Nm5ZWnFvSlZEekd6TVBMVHJkY3VhbjhQOU56RkNGbEQ5K0RjVUdndmNnMDVaU1ZudDRLelYxOXV5M0R1RGNqZ1RMRWt4Ti9QNlZ2Z2lJN1BTZnBGWnlwNlBmQjV3Qll4S1pkaHFBNjBWdk5rbk1RK1ozaVRQQkhGYlVUWkkydGpPQklrTkhQT0FlZk9kQkNaaDZxb041RTdoaGczNEJXRnV3WGtuWEtKNm95eUg3a1hzOHlpay9GdW40a1QycUdpTXdMUFpHMkd2NzBMS2IzRU1KRFQ1cFg0TVZCV2hxUmcxRmRBMFVtNm9CbC9HMmJwdFFzWU85Q01xZHNPeXJPTER4eGIzbFpKdEdZUjhwSWpWbzZPZjFsNmlUcXJjZm1ZVWwrK2R2Z1hCSURVeGYzdmZkSEdReXJ0YXlUSkhiUU5UdHhxVlU5ZWFRK05WaCtybVVmVzk0K3dUT1d1YWJyb25IbnBmMDZyYndjVmNMTEQyYlE3U1VpWVgxUFZoaFEyaXk4V2xVT3BsTkVudnVBY1lGaGpRNzFDS2pmK3IrdGg4bml0VmhkRnhKTjlPMUxmUjUyQU0vQS9ZZjBmMUE5RDNZK2h5RFM3UDk1b1RuMjcwNFd5WnJxSVg2NmZvTnpCcnJibFp1Z2JjMEhRRDRpRkhyWTY0eWcxOHB3WnhlcVM1SE9raDRHUGRGZUlCd0NhQXhlQVQzYldNNWxNQW8vbU1PVDdBNTh4aDBHUU9neTNtTU5obXpockFEbk1ZN0RLSHdSNXpHSHpCbkhXQUw1bkRJR1FPZzRnNURKNHdKd0I0eWh3R1h6R0h3ZGZNWWZBTmMrNERmTXNjQmpGekdDVE1ZYkN2NmRZd3pDMWUwRjJndGtGVm9BTlRUMWpjdytKUVUyWEkvbzRYaHYyOVFjeit3U0NtL3FqcDlwRDZFeThNOVdlRG1QcUxRVXo5VmRPZElmVTNYaGpxN3dZeDlRK0RtUHBNdnhqTFpRYS9qSHlYQ2dlVVhXdys1KytKOXcvYnhVQzVBQUVBQWYvL0FBOTRuS1ZWV1c4YjF4VSs1OTdaT0J5dW1vV3l5REUzY1d4U2tGeXVpcXhTbEJmUWt1a0Z0cERRU2FUUWpxeTJrRzNKRGVDZzZQYWd3TFhSSmdLeUZLaGJCQWlzeHdhdCt0S1hBSDFvbjdvQWJYNUNId0laUlpHblByU0l4ajJYWWhVN2licWdRODY5NTd2bnpNeTU1enZuWEFnQVBQNDczK0ZCaU1CaG1JQVp1QUF2d1JwOEZ6YmhRcXNUQ3pFMWFqQ0ZxMG92RW1BOHJER0duUFdDTWtNQVhCQXpRbGVYR0NCMDN2aiszWTN2ZlBQT0s3ZFdWMTVlZXVIWnkrZlAxZ1pYSlM2blNxT1dxYWk1Yk1HclZldE9wV3pIQ0hzRDNDQ01uOUVMWE1JOWZCejM4QmZaZnhuL3ZiM1FDL3VoZ1Y3Z3Z0NU4yNzl3WEtUUlRqOGg0dlY5NExqK1R3N1M0TXFuRHo1aDliVGlpWmMvdUdFVHRHN1FhMXhVVnNYa3JBb0wvdzlQYUZoK1ZkaUx3Zi85LzJxRTJ2NDZBQ2hmeU8xMDY1a2dxanIyT1EwZzE3RFBxSXg5UW1raVBpVVVkSDZHUXVPL3BUQXowR2NPb0dTZ2IyVDJLTWtOY0NWek1DWHN0Mmw3OTFFZk1jZHhkeHNINi9BcDlQOEYvZWw0VW9BZTMrTlgyRjhoQmZsV0JoaG5hN1NJNjhBQitBSndEbDBTb0ZOdzdKd2tKMHJZMzUxam14RlVzaDRXcWcyc2x3K2p3TFJYZmlXZjhsL2RzcXlpZGR6eTN6Wk52R0ZOMlVYTDJzTDdxVHd1dGQzaWxqbHRsZ1lLWEJXV1UvYldFZGozcFVhK3VIMWZPT05yWW5VZHFDRFpBbENaZG9HWTdkaWpCYlB2aTZtU0V4UGt4QXhtQmpXVDhRU3FseDIwZWMzMDM3R25yS0p0UC9SZlRlWHpLYnovMExhTC9RK2JPT1dhd3NPaU5XMDlMTHJrR1c1WjB3UXQveDJ6Nzh2M0tNOXFNQVJlSzY5VEJtRTdnSEE2U002Y0lxOFFGb1RMWFJHc1RyN0FaTHRrVlp0eXBSYkFXRFlzSHp0enAvZjJ4WlA0aXYvNnlyVUg4OWZLWTkvWS9QT2JLK1ZEMHQvOEgvaXZvOEhpMlZQWGZ0ai96dGY0RHZzMUZDRFpHaDZodDJFN2hIQkt2SmQyRHl2NWJJN0pGdTAxakxtc3A2ajBvOVFxMUF1MHl4bHNzaGtjUjYvYVpKV3lpM3puN2tmM3ZPS3R0MGJ5ZXBnemlYRkRDcG1xR1ZVajNXVzgrTm9IeS9jK3VvdExWN2Q2MHRXQ0pxR2hJOU1rSHBIRHRwWk1EaFhMYnk3TXZkYWI3RzBKOWg5djgrZjVKZENnQ2JmZ1hHdCticmJCdVl4dGtDbEpaSDRUZEFDbVE0OHNtS3l4SlhwR2xiamFBd2tVU1htUk5oTG9RaUJnNE56TjFaWGwwVW96V2YvU1lhc1VwSkpyVk1kUk1lMG1ZclhnNWFwMWo2WXdVNVVJaGhuZDZPVml0QjNKc2FtK2FsV3ZpVld2WGlPYkpqWk0xYmIyN2tFVkZzUllpNGxhckRmcWpTWnIxRVVveUlCcWQ5Tk8ydlJuRzJQSjM5UXgyd2lIVFNma2hvTGhoRzRicGg2UHEzWTRhU1RabmJtVHF5eHE2aWs5RUUrMFIyUUxNNzN6WitwZlBUMXJ2SmNxRmxNL01wOUpKME9HbmJDVEUvTkhScTVOUGJzY01WbmlVSUtaZURGVnhQVFgwNDBxUms3TUowS0ZXRGlhRGd6cEJ2by9ab3FpS2V6b1lpUWFLQjZKSjcxUVhzT3lWVDRhTjBzRnc1Z3NuWC8ra09NVVUzamRMWWJtaW03NFJNZTI4dWRuSzVNaXR5aU9nb056N0RGMVBST0dJUTkzVzFUQlRFN1pZWW8wRzZZQ0FTNmFtOVErKy9QNHhXN0xJMjdrdGIwaUp0VmFQMDlmVmhBbENTL1JoTkp6SUtGMGRxUlYrTHdsckgzZThFb3JEcEJKSjV4b0pLQ1JHNHFwVWk0NkRVKzFLaFpXYzFrcVFNdXNsS2tKZUE3bWFraHR3R3YwRzhMdnlodVZNL2lTSVV2K242U1FMT0VFZDNmOFl6djhuTG00czJnZXR6ZUlvWTNLZEpzcGh1Ui9LTkdJNDlMdEhYL2lFVDVJV1l1UFhyU3NEUnNHUFgrYngvZDcvbkU0Q1YrQjVkYlY1MDR6UlR1YUdZNEZVS0hHMEpZNUkwRkJ1Q2t4QnFvQzZpcUVJYUNGQTcxSWlHbUd6aFRVbENWUWcwRjFBVlExMklXZ0d1eGNYNzY2OU1LVnk1Y3VkT2Jhc3pObTNpeUlLeGVsUk1YWVhwYnQ1VmZaZHY0REhvcGxZcWFMMVBZcHR5c2VKYmRDQVJNMnNjR2hFTXY5NjdCdVVEWlRpaDVHY2NhNHVwYlg5UDZ3K2FuNGhxN3VpYXAreGpjMGplRWZtYWI1OS84eElzbmJpb1IvMGJWNmRkUS9ObHJGbXJEN3FSY1lvK05qVFBQZTEzVDhwZjhyc1lpellqeEE5cGRaYlBkaktnWGRaTmRuNmFTVUw5TVhkejhlUDNWaW5BMzFuVmkwa3VpYWkzcWZoM2Y1SmsrSlNvY2dSQ2tuWFpodnRVVVg0d2lpQTFCam9FNGdnNlRJMHBKdWFGeFJWV1doTHlocU54aWdJbGM3OFppYlNvN1lWbXc0UGh5THg4UVZEY25KRW1acW1mMjdXamF6bzJVN2pPT3M3Z2pBTnovWjROLzJ0M2MvWk9ONFFjaWZiS3l2WThMT012ZFltdVUvV0Y5bjc2LzcyK3YrejliOGIwM2V2cDBkeTJOMlBOMll2QTMvQkxrMHB0d0FBSGljWTJCa1lHQUE0Z2MzRXFiSDg5dDhaZUJtZmdFVVlianN1MGtHUWYvUFpIN0JIQVRrY2pBd2dVUUJZVzRMMVhpY1kyQmtZR0FPK3A4RkpGOHdNUHovRHlTQklpaUFHd0NIMUFXZ0FBQUFlSnhqZnNIQXdBekRrVkNNemhjRTRnVU1EQUN5NXdhL0FBQUFBQUR1QVpZQjNBSWlBbFlDb2dOa0ErZ0VyQVVLQUFFQUFBQUxBSkFBQ1FBQUFBQUFBZ0FrQURRQWN3QUFBSFVMY0FBQUFBQjRuSFdReTA3Q1FCU0cvNUdMQ29rYVRkdzZLd014bGtzaUN4SVNFZ3hzZEVNTVcxTkthVXRLaDB3SEVsN0RkL0JoZkFtZnhaOTJNQVppbStsODU1c3paMDRId0RXK0laQS9UeHc1QzV3eHl2a0VwK2haTHRBL1d5NlNYeXlYVU1XYjVUTDl1K1VLSGhCWXJ1SUdINndnaXVlTUZ2aTBMSEFsTGkyZjRFTGNXUzdRUDFvdWtudVdTN2dWcjViTDlKN2xDaVlpdFZ6RnZmZ2FxTlZXUjBGb1pHMVFsKzFtcXlPblc2bW9vc1NOcGJzMm9kS3A3TXU1U293Zng4cngxSExQWXo5WXg2N2VoL3Q1NHVzMFVvbHNPYzI5R3ZtSnIxM2p6M2JWMDAzUU5tWXU1MW90NWRCbXlKVldDOTh6VG1qTXF0dG8vRDBQQXlpc3NJVkd4S3NLWVNCUm82MXpicU9KRmpxa0tUTWtNL09zQ0FsY3hEUXUxdHdSWmlzcDR6N0huRkZDNnpNakpqdncrRjBlK1RFcDRQNllWZlRSNm1FOEllM09pREl2MlpmRDdnNnpScVFreTNRek8vdnRQY1dHcDdWcERYZnR1dFJaVnhMRGd4cVM5N0ZiVzlCNDlFNTJLNGEyaXdiZmYvN3ZCK05waEU4QWVKeHR4a0VPZ3lBUUJkRDV0SXBJcjhLaGtJd09DVmdDNDZLM2I5SnVmYXRIaHY1V3V1ZGg4TUFURTJaWUxIQlk0ZkVpbzJKVlFzbERsOEs3aGkwZnJ1ZERmcHVHeE00MnZXdmxVNTNLVmJjUnJqWTNQbE11WG5zY0VyZzIvZmpZTmFmQ0lSWWwrZ0pmcEI3WmVKeGo4TjdCY0NJb1lpTWpZMS9rQnNhZEhBd2NETWtGR3hsWW5UWXhNREpvZ1JpYnVaZ1lPU0FzUGdZd2k4MXBGOU1Cb0RRbmtNM3V0SXZCQWNKbVpuRFpxTUxZRVJpeHdhRWpZaU56aXN0R05SQnZGMGNEQXlPTFEwZHlTQVJJU1NRUWJPWmhZdVRSMnNINHYzVURTKzlHSmdZWEFBeDJJL1FBQUE9PSlcbiAgICBmb3JtYXQoJ3dvZmYnKTtcbn1cblxuLmRlbW8taWNvbiB7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAnc3ByZWFkdmlldy1kZW1vLWljb24nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uaWNvbi1lZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MDcnO1xufVxuXG4vKiAn7qCHJyAqL1xuLmljb24tZGVsZXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MDgnO1xufVxuXG4vKiAn7qCIJyAqL1xuLmljb24tZGV0YWlsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGU4MDknO1xufVxuXG4vKiAn7qCJJyAqL1xuXG4uaWNvbi13cmFwcGVyIHtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgbWFyZ2luLWxlZnQ6IDM1JTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmljb24tYmFja2dyb3VuZCB7XG4gIGNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDgwcHg7XG59XG5cbi5lZGl0LWJ0biB7XG4gIG1hcmdpbjogMCAzcHg7XG4gIHdpZHRoOiA3MHB4O1xufVxuXG4uZGlhbG9nLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDU1LCA1OCwgNzEsIDAuOSk7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA5OTk5O1xufVxuXG4uZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkM2QzZDM7XG4gIGNvbG9yOiAjNzc3O1xuICBmb250LWZhbWlseTogJ1JvYm90bycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGhlaWdodDogMjAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDMwMHB4O1xuICB6LWluZGV4OiAxMDAwMDtcbn1cblxuLmRpYWxvZy1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2YxZjFmMTtcbiAgcGFkZGluZzogMWVtO1xufVxuXG4uZGlhbG9nLWJvZHkge1xuICBwYWRkaW5nOiAxZW07XG5cbiAgLm5hbWUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuICAucG9zaXRpb24ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuICAuYWR2YW50YWdlIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWF4LWhlaWdodDogNjZweDtcbiAgfVxufVxuXG4uZGlhbG9nLWNsb3NlLWJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGNvbG9yOiAjNmE5ZjlmO1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG59XG5cbi5kaWFsb2ctY2xvc2UtYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6ICM0MDYzNjM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmdjLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UxMzMwMDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5nYy1yb3cge1xuICBsaW5lLWhlaWdodDogMzZweDtcbn1cblxuLm9kZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM5LCAyMzksIDIzOSwgMC40KTtcbn1cblxucC50aXAge1xuICBtYXJnaW46IDVweDtcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLm1haW4tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmdyaWQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA5MCU7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleC1zaHJpbms6IDE7XG59XG5cbi5jb2x1bW4xIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMzBweDtcbiAgd2lkdGg6IDkwcHg7XG59XG5cbi5jb2x1bW4yIHtcbiAgd2lkdGg6IDE4NnB4O1xufVxuXG4uZWRpdC1kZXRhaWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogNHB4O1xufVxuXG4uZWRpdC1kZXRhaWwgKjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5lZGl0LWRldGFpbCBpbnB1dCB7XG4gIHBhZGRpbmc6IDAgMnB4O1xufVxuXG4uZWRpdC1hZHZhbnRhZ2UgbGFiZWwge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4uZWRpdC1hZHZhbnRhZ2UgdGV4dGFyZWEge1xuICBoZWlnaHQ6IDUwcHg7XG4gIHJlc2l6ZTogbm9uZTtcbiAgd2lkdGg6IDUwMHB4O1xufVxuXG4uZ2MtcG9wdXAtZGlhbG9nIHtcbiAgYmFja2dyb3VuZDogI2YxZjFmMTtcbn1cblxuLmdjLXBvcHVwLWVkaXRpbmctYXJlYSB7XG4gIHdpZHRoOiA2OTBweDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZ2MtcG9wdXAtZWRpdGluZy1hcmVhIHtcbiAgICB3aWR0aDogMzAwcHg7XG4gIH1cblxuICAuY29sdW1uMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gIH1cblxuICAuZWRpdC1kZXRhaWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmVkaXQtYWR2YW50YWdlIHRleHRhcmVhIHtcbiAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICB3aWR0aDogMjUwcHg7XG4gIH1cbn1cbiJdfQ== */