mirror of
https://github.com/frappe/books.git
synced 2024-11-14 17:34:04 +00:00
2512 lines
647 KiB
JavaScript
2512 lines
647 KiB
JavaScript
/******/ (function(modules) { // webpackBootstrap
|
|
/******/ // The module cache
|
|
/******/ var installedModules = {};
|
|
/******/
|
|
/******/ // The require function
|
|
/******/ function __webpack_require__(moduleId) {
|
|
/******/
|
|
/******/ // Check if module is in cache
|
|
/******/ if(installedModules[moduleId]) {
|
|
/******/ return installedModules[moduleId].exports;
|
|
/******/ }
|
|
/******/ // Create a new module (and put it into the cache)
|
|
/******/ var module = installedModules[moduleId] = {
|
|
/******/ i: moduleId,
|
|
/******/ l: false,
|
|
/******/ exports: {}
|
|
/******/ };
|
|
/******/
|
|
/******/ // Execute the module function
|
|
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
|
/******/
|
|
/******/ // Flag the module as loaded
|
|
/******/ module.l = true;
|
|
/******/
|
|
/******/ // Return the exports of the module
|
|
/******/ return module.exports;
|
|
/******/ }
|
|
/******/
|
|
/******/
|
|
/******/ // expose the modules object (__webpack_modules__)
|
|
/******/ __webpack_require__.m = modules;
|
|
/******/
|
|
/******/ // expose the module cache
|
|
/******/ __webpack_require__.c = installedModules;
|
|
/******/
|
|
/******/ // define getter function for harmony exports
|
|
/******/ __webpack_require__.d = function(exports, name, getter) {
|
|
/******/ if(!__webpack_require__.o(exports, name)) {
|
|
/******/ Object.defineProperty(exports, name, {
|
|
/******/ configurable: false,
|
|
/******/ enumerable: true,
|
|
/******/ get: getter
|
|
/******/ });
|
|
/******/ }
|
|
/******/ };
|
|
/******/
|
|
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
/******/ __webpack_require__.n = function(module) {
|
|
/******/ var getter = module && module.__esModule ?
|
|
/******/ function getDefault() { return module['default']; } :
|
|
/******/ function getModuleExports() { return module; };
|
|
/******/ __webpack_require__.d(getter, 'a', getter);
|
|
/******/ return getter;
|
|
/******/ };
|
|
/******/
|
|
/******/ // Object.prototype.hasOwnProperty.call
|
|
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
|
/******/
|
|
/******/ // __webpack_public_path__
|
|
/******/ __webpack_require__.p = "/";
|
|
/******/
|
|
/******/ // Load entry module and return exports
|
|
/******/ return __webpack_require__(__webpack_require__.s = 4);
|
|
/******/ })
|
|
/************************************************************************/
|
|
/******/ ([
|
|
/* 0 */
|
|
/***/ (function(module, exports) {
|
|
|
|
module.exports = {
|
|
async init() {
|
|
if (this._initialized) return;
|
|
this.init_config();
|
|
this.init_errors();
|
|
this.init_globals();
|
|
this._initialized = true;
|
|
},
|
|
|
|
init_config() {
|
|
this.config = {
|
|
backend: 'sqlite',
|
|
port: 8000
|
|
};
|
|
},
|
|
|
|
init_errors() {
|
|
this.ValueError = class extends Error { };
|
|
},
|
|
|
|
init_globals() {
|
|
this.meta_cache = {};
|
|
},
|
|
|
|
get_meta(doctype) {
|
|
if (!this.meta_cache[doctype]) {
|
|
this.meta_cache[doctype] = new (this.models.get_meta_class(doctype))(this.models.get('DocType', doctype));
|
|
}
|
|
return this.meta_cache[doctype];
|
|
},
|
|
|
|
init_controller(doctype, module) {
|
|
doctype = this.slug(doctype);
|
|
this.models.controllers[doctype] = module[doctype];
|
|
this.models.meta_classes[doctype] = module[doctype + '_meta'];
|
|
},
|
|
|
|
async get_doc(data, name) {
|
|
if (typeof data==='string' && typeof name==='string') {
|
|
let controller_class = this.models.get_controller(data);
|
|
var doc = new controller_class({doctype:data, name: name});
|
|
await doc.load();
|
|
} else {
|
|
let controller_class = this.models.get_controller(data.doctype);
|
|
var doc = new controller_class(data);
|
|
}
|
|
return doc;
|
|
},
|
|
|
|
async insert(data) {
|
|
const doc = await this.get_doc(data);
|
|
return await doc.insert();
|
|
},
|
|
|
|
login(user='guest', user_key) {
|
|
this.session = new this._session.Session(user);
|
|
if (user && user_key) {
|
|
this.authenticate(user_key);
|
|
}
|
|
},
|
|
|
|
close() {
|
|
this.db.close();
|
|
|
|
if (this.server) {
|
|
this.server.close();
|
|
}
|
|
}
|
|
};
|
|
|
|
|
|
/***/ }),
|
|
/* 1 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class BaseControl {
|
|
constructor(docfield, parent) {
|
|
Object.assign(this, docfield);
|
|
if (!this.fieldname) {
|
|
this.fieldname = frappe.slug(this.label);
|
|
}
|
|
this.parent = parent;
|
|
if (this.setup) {
|
|
this.setup();
|
|
}
|
|
}
|
|
|
|
bind(doc) {
|
|
this.doc = doc;
|
|
|
|
this.doc.add_handler(this.fieldname, () => {
|
|
this.set_doc_value();
|
|
});
|
|
|
|
this.set_doc_value();
|
|
}
|
|
|
|
refresh() {
|
|
this.make();
|
|
this.set_doc_value();
|
|
}
|
|
|
|
set_doc_value() {
|
|
if (this.doc) {
|
|
this.set_input_value(this.doc.get(this.fieldname));
|
|
}
|
|
}
|
|
|
|
make() {
|
|
if (!this.form_group) {
|
|
this.make_form_group();
|
|
this.make_label();
|
|
this.make_input();
|
|
this.set_input_name();
|
|
this.make_description();
|
|
this.bind_change_event();
|
|
}
|
|
}
|
|
|
|
make_form_group() {
|
|
this.form_group = frappe.ui.add('div', 'form-group', this.parent);
|
|
}
|
|
|
|
make_label() {
|
|
this.label_element = frappe.ui.add('label', null, this.form_group);
|
|
this.label_element.textContent = this.label;
|
|
}
|
|
|
|
make_input() {
|
|
this.input = frappe.ui.add('input', 'form-control', this.form_group);
|
|
}
|
|
|
|
set_input_name() {
|
|
this.input.setAttribute('name', this.fieldname);
|
|
}
|
|
|
|
make_description() {
|
|
if (this.description) {
|
|
this.description_element = frappe.ui.add('small', 'form-text text-muted', this.form_group);
|
|
this.description_element.textContent = this.description;
|
|
}
|
|
}
|
|
|
|
set_input_value(value) {
|
|
if (value === undefined || value === null) {
|
|
value = '';
|
|
}
|
|
this.input.value = value;
|
|
}
|
|
|
|
async get_input_value() {
|
|
return await this.parse(this.input.value);
|
|
}
|
|
|
|
async parse(value) {
|
|
return value;
|
|
}
|
|
|
|
async validate(value) {
|
|
return value;
|
|
}
|
|
|
|
bind_change_event() {
|
|
this.input.addEventListener('change', (e) => this.handle_change(e));
|
|
}
|
|
|
|
async handle_change(e) {
|
|
let value = await this.get_input_value();
|
|
value = await this.validate(value);
|
|
await this.doc.set(this.fieldname, value);
|
|
}
|
|
}
|
|
|
|
module.exports = BaseControl;
|
|
|
|
/***/ }),
|
|
/* 2 */
|
|
/***/ (function(module, exports) {
|
|
|
|
// shim for using process in browser
|
|
var process = module.exports = {};
|
|
|
|
// cached from whatever global is present so that test runners that stub it
|
|
// don't break things. But we need to wrap it in a try catch in case it is
|
|
// wrapped in strict mode code which doesn't define any globals. It's inside a
|
|
// function because try/catches deoptimize in certain engines.
|
|
|
|
var cachedSetTimeout;
|
|
var cachedClearTimeout;
|
|
|
|
function defaultSetTimout() {
|
|
throw new Error('setTimeout has not been defined');
|
|
}
|
|
function defaultClearTimeout () {
|
|
throw new Error('clearTimeout has not been defined');
|
|
}
|
|
(function () {
|
|
try {
|
|
if (typeof setTimeout === 'function') {
|
|
cachedSetTimeout = setTimeout;
|
|
} else {
|
|
cachedSetTimeout = defaultSetTimout;
|
|
}
|
|
} catch (e) {
|
|
cachedSetTimeout = defaultSetTimout;
|
|
}
|
|
try {
|
|
if (typeof clearTimeout === 'function') {
|
|
cachedClearTimeout = clearTimeout;
|
|
} else {
|
|
cachedClearTimeout = defaultClearTimeout;
|
|
}
|
|
} catch (e) {
|
|
cachedClearTimeout = defaultClearTimeout;
|
|
}
|
|
} ())
|
|
function runTimeout(fun) {
|
|
if (cachedSetTimeout === setTimeout) {
|
|
//normal enviroments in sane situations
|
|
return setTimeout(fun, 0);
|
|
}
|
|
// if setTimeout wasn't available but was latter defined
|
|
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
|
|
cachedSetTimeout = setTimeout;
|
|
return setTimeout(fun, 0);
|
|
}
|
|
try {
|
|
// when when somebody has screwed with setTimeout but no I.E. maddness
|
|
return cachedSetTimeout(fun, 0);
|
|
} catch(e){
|
|
try {
|
|
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
|
return cachedSetTimeout.call(null, fun, 0);
|
|
} catch(e){
|
|
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
|
|
return cachedSetTimeout.call(this, fun, 0);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
function runClearTimeout(marker) {
|
|
if (cachedClearTimeout === clearTimeout) {
|
|
//normal enviroments in sane situations
|
|
return clearTimeout(marker);
|
|
}
|
|
// if clearTimeout wasn't available but was latter defined
|
|
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
|
|
cachedClearTimeout = clearTimeout;
|
|
return clearTimeout(marker);
|
|
}
|
|
try {
|
|
// when when somebody has screwed with setTimeout but no I.E. maddness
|
|
return cachedClearTimeout(marker);
|
|
} catch (e){
|
|
try {
|
|
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
|
return cachedClearTimeout.call(null, marker);
|
|
} catch (e){
|
|
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
|
|
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
|
|
return cachedClearTimeout.call(this, marker);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
var queue = [];
|
|
var draining = false;
|
|
var currentQueue;
|
|
var queueIndex = -1;
|
|
|
|
function cleanUpNextTick() {
|
|
if (!draining || !currentQueue) {
|
|
return;
|
|
}
|
|
draining = false;
|
|
if (currentQueue.length) {
|
|
queue = currentQueue.concat(queue);
|
|
} else {
|
|
queueIndex = -1;
|
|
}
|
|
if (queue.length) {
|
|
drainQueue();
|
|
}
|
|
}
|
|
|
|
function drainQueue() {
|
|
if (draining) {
|
|
return;
|
|
}
|
|
var timeout = runTimeout(cleanUpNextTick);
|
|
draining = true;
|
|
|
|
var len = queue.length;
|
|
while(len) {
|
|
currentQueue = queue;
|
|
queue = [];
|
|
while (++queueIndex < len) {
|
|
if (currentQueue) {
|
|
currentQueue[queueIndex].run();
|
|
}
|
|
}
|
|
queueIndex = -1;
|
|
len = queue.length;
|
|
}
|
|
currentQueue = null;
|
|
draining = false;
|
|
runClearTimeout(timeout);
|
|
}
|
|
|
|
process.nextTick = function (fun) {
|
|
var args = new Array(arguments.length - 1);
|
|
if (arguments.length > 1) {
|
|
for (var i = 1; i < arguments.length; i++) {
|
|
args[i - 1] = arguments[i];
|
|
}
|
|
}
|
|
queue.push(new Item(fun, args));
|
|
if (queue.length === 1 && !draining) {
|
|
runTimeout(drainQueue);
|
|
}
|
|
};
|
|
|
|
// v8 likes predictible objects
|
|
function Item(fun, array) {
|
|
this.fun = fun;
|
|
this.array = array;
|
|
}
|
|
Item.prototype.run = function () {
|
|
this.fun.apply(null, this.array);
|
|
};
|
|
process.title = 'browser';
|
|
process.browser = true;
|
|
process.env = {};
|
|
process.argv = [];
|
|
process.version = ''; // empty string to avoid regexp issues
|
|
process.versions = {};
|
|
|
|
function noop() {}
|
|
|
|
process.on = noop;
|
|
process.addListener = noop;
|
|
process.once = noop;
|
|
process.off = noop;
|
|
process.removeListener = noop;
|
|
process.removeAllListeners = noop;
|
|
process.emit = noop;
|
|
process.prependListener = noop;
|
|
process.prependOnceListener = noop;
|
|
|
|
process.listeners = function (name) { return [] }
|
|
|
|
process.binding = function (name) {
|
|
throw new Error('process.binding is not supported');
|
|
};
|
|
|
|
process.cwd = function () { return '/' };
|
|
process.chdir = function (dir) {
|
|
throw new Error('process.chdir is not supported');
|
|
};
|
|
process.umask = function() { return 0; };
|
|
|
|
|
|
/***/ }),
|
|
/* 3 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Document {
|
|
constructor(data) {
|
|
this.handlers = {};
|
|
this.setup();
|
|
Object.assign(this, data);
|
|
}
|
|
|
|
setup() {
|
|
// add handlers
|
|
}
|
|
|
|
clear_handlers() {
|
|
this.handlers = {};
|
|
}
|
|
|
|
add_handler(key, method) {
|
|
if (!this.handlers[key]) {
|
|
this.handlers[key] = [];
|
|
}
|
|
this.handlers[key].push(method || key);
|
|
}
|
|
|
|
get(key) {
|
|
return this[key];
|
|
}
|
|
|
|
set(key, value) {
|
|
this.validate_field(key, value);
|
|
this[key] = value;
|
|
}
|
|
|
|
set_name() {
|
|
// assign a random name by default
|
|
// override this to set a name
|
|
if (!this.name) {
|
|
this.name = Math.random().toString(36).substr(3);
|
|
}
|
|
}
|
|
|
|
get meta() {
|
|
if (!this._meta) {
|
|
this._meta = frappe.get_meta(this.doctype);
|
|
}
|
|
return this._meta;
|
|
}
|
|
|
|
append(key, document) {
|
|
if (!this[key]) {
|
|
this[key] = [];
|
|
}
|
|
this[key].push(this.init_doc(document));
|
|
}
|
|
|
|
init_doc(data) {
|
|
if (data.prototype instanceof Document) {
|
|
return data;
|
|
} else {
|
|
return new Document(d);
|
|
}
|
|
}
|
|
|
|
validate_field (key, value) {
|
|
let df = this.meta.get_field(key);
|
|
if (df.fieldtype=='Select') {
|
|
this.meta.validate_select(df, value);
|
|
}
|
|
}
|
|
|
|
get_valid_dict() {
|
|
let doc = {};
|
|
for(let df of this.meta.get_valid_fields()) {
|
|
doc[df.fieldname] = this.get(df.fieldname);
|
|
}
|
|
return doc;
|
|
}
|
|
|
|
set_standard_values() {
|
|
let now = new Date();
|
|
if (this.docstatus === null || this.docstatus === undefined) {
|
|
this.docstatus = 0;
|
|
}
|
|
if (!this.owner) {
|
|
this.owner = frappe.session.user;
|
|
this.creation = now;
|
|
}
|
|
this.modified_by = frappe.session.user;
|
|
this.modified = now;
|
|
}
|
|
|
|
async load() {
|
|
Object.assign(this, await frappe.db.get(this.doctype, this.name));
|
|
}
|
|
|
|
async insert() {
|
|
this.set_name();
|
|
this.set_standard_values();
|
|
await this.trigger('validate', 'before_insert');
|
|
await frappe.db.insert(this.doctype, this.get_valid_dict());
|
|
await this.trigger('after_insert', 'after_save');
|
|
}
|
|
|
|
async delete() {
|
|
await this.trigger('before_delete');
|
|
await frappe.db.delete(this.doctype, this.name);
|
|
await this.trigger('after_delete');
|
|
}
|
|
|
|
async trigger() {
|
|
for(var key of arguments) {
|
|
if (this.handlers[key]) {
|
|
for (let method of this.handlers[key]) {
|
|
if (typeof method === 'string') {
|
|
await this[method]();
|
|
} else {
|
|
await method(this);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
async update() {
|
|
this.set_standard_values();
|
|
await this.trigger('validate', 'before_update');
|
|
await frappe.db.update(this.doctype, this.get_valid_dict());
|
|
await this.trigger('after_update', 'after_save');
|
|
return this;
|
|
}
|
|
};
|
|
|
|
module.exports = { Document: Document };
|
|
|
|
/***/ }),
|
|
/* 4 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
__webpack_require__(5);
|
|
|
|
const client = __webpack_require__(10);
|
|
|
|
const ListView = __webpack_require__(22).ListView;
|
|
const Page = __webpack_require__(23).Page;
|
|
const Form = __webpack_require__(24).Form;
|
|
|
|
window.app = {
|
|
setup_form() {
|
|
this.edit_page = new Page('Edit To Do');
|
|
this.edit_page.form = new Form({
|
|
doctype: 'ToDo',
|
|
parent: this.edit_page.body
|
|
});
|
|
},
|
|
setup_list() {
|
|
this.todo_list = new Page('ToDo List');
|
|
this.todo_list.list = new ListView({
|
|
doctype: 'ToDo',
|
|
parent: this.todo_list.body,
|
|
fields: ['name', 'subject', 'status']
|
|
});
|
|
this.todo_list.list.meta.get_row_html = (data) => {
|
|
const sign = data.status === 'Open' ? '✔' : '✘';
|
|
return `<p><a href="#edit/todo/${data.name}">${sign} ${data.subject}</a></p>`;
|
|
}
|
|
}
|
|
};
|
|
|
|
// start server
|
|
client.start({
|
|
server: 'localhost:8000',
|
|
container: document.querySelector('.wrapper'),
|
|
}).then(() => {
|
|
const todo = __webpack_require__(29);
|
|
frappe.init_controller('todo', todo);
|
|
|
|
app.home = frappe.ui.add('a', '', frappe.ui.add('p', null, frappe.sidebar));
|
|
app.home.textContent = 'Home';
|
|
app.home.href = '#';
|
|
|
|
app.make_new = frappe.ui.add('a', '', frappe.ui.add('p', null, frappe.sidebar));
|
|
app.make_new.textContent = 'New ToDo';
|
|
app.make_new.href = '#new/todo';
|
|
|
|
// make pages
|
|
app.setup_list();
|
|
app.setup_form();
|
|
|
|
// to do list
|
|
frappe.router.add('default', () => {
|
|
app.todo_list.show();
|
|
app.todo_list.list.run();
|
|
});
|
|
|
|
// setup todo form
|
|
frappe.router.add('edit/todo/:name', async (params) => {
|
|
app.doc = await frappe.get_doc('ToDo', params.name);
|
|
app.edit_page.show();
|
|
app.edit_page.form.use(app.doc);
|
|
});
|
|
|
|
// setup todo new
|
|
frappe.router.add('new/todo', async (params) => {
|
|
app.doc = await frappe.get_doc({doctype: 'ToDo'});
|
|
app.doc.set_name();
|
|
app.edit_page.show();
|
|
app.edit_page.form.use(app.doc, true);
|
|
});
|
|
|
|
frappe.router.show(window.location.hash);
|
|
});
|
|
|
|
/***/ }),
|
|
/* 5 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
// style-loader: Adds some css to the DOM by adding a <style> tag
|
|
|
|
// load the styles
|
|
var content = __webpack_require__(6);
|
|
if(typeof content === 'string') content = [[module.i, content, '']];
|
|
// Prepare cssTransformation
|
|
var transform;
|
|
|
|
var options = {"hmr":true}
|
|
options.transform = transform
|
|
// add the styles to the DOM
|
|
var update = __webpack_require__(8)(content, options);
|
|
if(content.locals) module.exports = content.locals;
|
|
// Hot Module Replacement
|
|
if(false) {
|
|
// When the styles change, update the <style> tags
|
|
if(!content.locals) {
|
|
module.hot.accept("!!../node_modules/css-loader/index.js!../node_modules/postcss-loader/lib/index.js??ref--0-2!../node_modules/sass-loader/lib/loader.js??ref--0-3!./main.scss", function() {
|
|
var newContent = require("!!../node_modules/css-loader/index.js!../node_modules/postcss-loader/lib/index.js??ref--0-2!../node_modules/sass-loader/lib/loader.js??ref--0-3!./main.scss");
|
|
if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
|
|
update(newContent);
|
|
});
|
|
}
|
|
// When the module is disposed, remove the <style> tags
|
|
module.hot.dispose(function() { update(); });
|
|
}
|
|
|
|
/***/ }),
|
|
/* 6 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
exports = module.exports = __webpack_require__(7)(false);
|
|
// imports
|
|
|
|
|
|
// module
|
|
exports.push([module.i, "/*!\n * Bootstrap v4.0.0-alpha.6 (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors\n * Copyright 2011-2017 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%; }\nbody {\n margin: 0; }\narticle, aside, footer, header, nav, section {\n display: block; }\nh1 {\n font-size: 2em;\n margin: 0.67em 0; }\nfigcaption, figure, main {\n display: block; }\nfigure {\n margin: 1em 40px; }\nhr {\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n overflow: visible; }\npre {\n font-family: monospace, monospace;\n font-size: 1em; }\na {\n background-color: transparent;\n -webkit-text-decoration-skip: objects; }\na:active, a:hover {\n outline-width: 0; }\nabbr[title] {\n border-bottom: none;\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; }\nb, strong {\n font-weight: inherit; }\nb, strong {\n font-weight: bolder; }\ncode, kbd, samp {\n font-family: monospace, monospace;\n font-size: 1em; }\ndfn {\n font-style: italic; }\nmark {\n background-color: #ff0;\n color: #000; }\nsmall {\n font-size: 80%; }\nsub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline; }\nsub {\n bottom: -0.25em; }\nsup {\n top: -0.5em; }\naudio, video {\n display: inline-block; }\naudio:not([controls]) {\n display: none;\n height: 0; }\nimg {\n border-style: none; }\nsvg:not(:root) {\n overflow: hidden; }\nbutton, input, optgroup, select, textarea {\n font-family: sans-serif;\n font-size: 100%;\n line-height: 1.15;\n margin: 0; }\nbutton, input {\n overflow: visible; }\nbutton, select {\n text-transform: none; }\nbutton, html [type=\"button\"], [type=\"reset\"], [type=\"submit\"] {\n -webkit-appearance: button; }\nbutton::-moz-focus-inner, [type=\"button\"]::-moz-focus-inner, [type=\"reset\"]::-moz-focus-inner, [type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0; }\nbutton:-moz-focusring, [type=\"button\"]:-moz-focusring, [type=\"reset\"]:-moz-focusring, [type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText; }\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em; }\nlegend {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: inherit;\n display: table;\n max-width: 100%;\n padding: 0;\n white-space: normal; }\nprogress {\n display: inline-block;\n vertical-align: baseline; }\ntextarea {\n overflow: auto; }\n[type=\"checkbox\"], [type=\"radio\"] {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0; }\n[type=\"number\"]::-webkit-inner-spin-button, [type=\"number\"]::-webkit-outer-spin-button {\n height: auto; }\n[type=\"search\"] {\n -webkit-appearance: textfield;\n outline-offset: -2px; }\n[type=\"search\"]::-webkit-search-cancel-button, [type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit; }\ndetails, menu {\n display: block; }\nsummary {\n display: list-item; }\ncanvas {\n display: inline-block; }\ntemplate {\n display: none; }\n[hidden] {\n display: none; }\n@media print {\n *, *::before, *::after, p::first-letter, div::first-letter, blockquote::first-letter, li::first-letter, p::first-line, div::first-line, blockquote::first-line, li::first-line {\n text-shadow: none !important;\n -webkit-box-shadow: none !important;\n box-shadow: none !important; }\n a, a:visited {\n text-decoration: underline; }\n abbr[title]::after {\n content: \" (\" attr(title) \")\"; }\n pre {\n white-space: pre-wrap !important; }\n pre, blockquote {\n border: 1px solid #999;\n page-break-inside: avoid; }\n thead {\n display: table-header-group; }\n tr, img {\n page-break-inside: avoid; }\n p, h2, h3 {\n orphans: 3;\n widows: 3; }\n h2, h3 {\n page-break-after: avoid; }\n .navbar {\n display: none; }\n .badge {\n border: 1px solid #000; }\n .table {\n border-collapse: collapse !important; }\n .table td, .table th {\n background-color: #fff !important; }\n .table-bordered th, .table-bordered td {\n border: 1px solid #ddd !important; } }\nhtml {\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n*, *::before, *::after {\n -webkit-box-sizing: inherit;\n box-sizing: inherit; }\n@-ms-viewport {\n width: device-width; }\nhtml {\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent; }\nbody {\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 1rem;\n font-weight: normal;\n line-height: 1.5;\n color: #292b2c;\n background-color: #fff; }\n[tabindex=\"-1\"]:focus {\n outline: none !important; }\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: .5rem; }\np {\n margin-top: 0;\n margin-bottom: 1rem; }\nabbr[title], abbr[data-original-title] {\n cursor: help; }\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit; }\nol, ul, dl {\n margin-top: 0;\n margin-bottom: 1rem; }\nol ol, ul ul, ol ul, ul ol {\n margin-bottom: 0; }\ndt {\n font-weight: bold; }\ndd {\n margin-bottom: .5rem;\n margin-left: 0; }\nblockquote {\n margin: 0 0 1rem; }\na {\n color: #0275d8;\n text-decoration: none; }\na:focus, a:hover {\n color: #014c8c;\n text-decoration: underline; }\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none; }\na:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {\n color: inherit;\n text-decoration: none; }\na:not([href]):not([tabindex]):focus {\n outline: 0; }\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto; }\nfigure {\n margin: 0 0 1rem; }\nimg {\n vertical-align: middle; }\n[role=\"button\"] {\n cursor: pointer; }\na, area, button, [role=\"button\"], input, label, select, summary, textarea {\n -ms-touch-action: manipulation;\n touch-action: manipulation; }\ntable {\n border-collapse: collapse;\n background-color: transparent; }\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #636c72;\n text-align: left;\n caption-side: bottom; }\nth {\n text-align: left; }\nlabel {\n display: inline-block;\n margin-bottom: .5rem; }\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color; }\ninput, button, select, textarea {\n line-height: inherit; }\ninput[type=\"radio\"]:disabled, input[type=\"checkbox\"]:disabled {\n cursor: not-allowed; }\ninput[type=\"date\"], input[type=\"time\"], input[type=\"datetime-local\"], input[type=\"month\"] {\n -webkit-appearance: listbox; }\ntextarea {\n resize: vertical; }\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0; }\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit; }\ninput[type=\"search\"] {\n -webkit-appearance: none; }\noutput {\n display: inline-block; }\n[hidden] {\n display: none !important; }\nh1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit; }\nh1, .h1 {\n font-size: 2.5rem; }\nh2, .h2 {\n font-size: 2rem; }\nh3, .h3 {\n font-size: 1.75rem; }\nh4, .h4 {\n font-size: 1.5rem; }\nh5, .h5 {\n font-size: 1.25rem; }\nh6, .h6 {\n font-size: 1rem; }\n.lead {\n font-size: 1.25rem;\n font-weight: 300; }\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.1; }\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.1; }\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.1; }\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.1; }\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1); }\nsmall, .small {\n font-size: 80%;\n font-weight: normal; }\nmark, .mark {\n padding: 0.2em;\n background-color: #fcf8e3; }\n.list-unstyled {\n padding-left: 0;\n list-style: none; }\n.list-inline {\n padding-left: 0;\n list-style: none; }\n.list-inline-item {\n display: inline-block; }\n.list-inline-item:not(:last-child) {\n margin-right: 5px; }\n.initialism {\n font-size: 90%;\n text-transform: uppercase; }\n.blockquote {\n padding: 0.5rem 1rem;\n margin-bottom: 1rem;\n font-size: 1.25rem;\n border-left: 0.25rem solid #eceeef; }\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #636c72; }\n.blockquote-footer::before {\n content: \"\\2014 \\A0\"; }\n.blockquote-reverse {\n padding-right: 1rem;\n padding-left: 0;\n text-align: right;\n border-right: 0.25rem solid #eceeef;\n border-left: 0; }\n.blockquote-reverse .blockquote-footer::before {\n content: \"\"; }\n.blockquote-reverse .blockquote-footer::after {\n content: \"\\A0 \\2014\"; }\n.img-fluid {\n max-width: 100%;\n height: auto; }\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 0.25rem;\n -webkit-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n max-width: 100%;\n height: auto; }\n.figure {\n display: inline-block; }\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1; }\n.figure-caption {\n font-size: 90%;\n color: #636c72; }\ncode, kbd, pre, samp {\n font-family: Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; }\ncode {\n padding: 0.2rem 0.4rem;\n font-size: 90%;\n color: #bd4147;\n background-color: #f7f7f9;\n border-radius: 0.25rem; }\na > code {\n padding: 0;\n color: inherit;\n background-color: inherit; }\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 90%;\n color: #fff;\n background-color: #292b2c;\n border-radius: 0.2rem; }\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold; }\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n font-size: 90%;\n color: #292b2c; }\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n background-color: transparent;\n border-radius: 0; }\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll; }\n.container {\n position: relative;\n margin-left: auto;\n margin-right: auto;\n padding-right: 15px;\n padding-left: 15px; }\n@media (min-width: 576px) {\n .container {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 768px) {\n .container {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 992px) {\n .container {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 1200px) {\n .container {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 576px) {\n .container {\n width: 540px;\n max-width: 100%; } }\n@media (min-width: 768px) {\n .container {\n width: 720px;\n max-width: 100%; } }\n@media (min-width: 992px) {\n .container {\n width: 960px;\n max-width: 100%; } }\n@media (min-width: 1200px) {\n .container {\n width: 1140px;\n max-width: 100%; } }\n.container-fluid {\n position: relative;\n margin-left: auto;\n margin-right: auto;\n padding-right: 15px;\n padding-left: 15px; }\n@media (min-width: 576px) {\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 768px) {\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 992px) {\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 1200px) {\n .container-fluid {\n padding-right: 15px;\n padding-left: 15px; } }\n.row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px; }\n@media (min-width: 576px) {\n .row {\n margin-right: -15px;\n margin-left: -15px; } }\n@media (min-width: 768px) {\n .row {\n margin-right: -15px;\n margin-left: -15px; } }\n@media (min-width: 992px) {\n .row {\n margin-right: -15px;\n margin-left: -15px; } }\n@media (min-width: 1200px) {\n .row {\n margin-right: -15px;\n margin-left: -15px; } }\n.no-gutters {\n margin-right: 0;\n margin-left: 0; }\n.no-gutters > .col, .no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0; }\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px; }\n@media (min-width: 576px) {\n .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 768px) {\n .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 992px) {\n .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n padding-right: 15px;\n padding-left: 15px; } }\n@media (min-width: 1200px) {\n .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl {\n padding-right: 15px;\n padding-left: 15px; } }\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%; }\n.col-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto; }\n.col-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.33333%;\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n.col-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.66667%;\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n.col-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%; }\n.col-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.33333%;\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n.col-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.66667%;\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n.col-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%; }\n.col-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.33333%;\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n.col-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.66667%;\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n.col-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%; }\n.col-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.33333%;\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n.col-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.66667%;\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n.col-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%; }\n.pull-0 {\n right: auto; }\n.pull-1 {\n right: 8.33333%; }\n.pull-2 {\n right: 16.66667%; }\n.pull-3 {\n right: 25%; }\n.pull-4 {\n right: 33.33333%; }\n.pull-5 {\n right: 41.66667%; }\n.pull-6 {\n right: 50%; }\n.pull-7 {\n right: 58.33333%; }\n.pull-8 {\n right: 66.66667%; }\n.pull-9 {\n right: 75%; }\n.pull-10 {\n right: 83.33333%; }\n.pull-11 {\n right: 91.66667%; }\n.pull-12 {\n right: 100%; }\n.push-0 {\n left: auto; }\n.push-1 {\n left: 8.33333%; }\n.push-2 {\n left: 16.66667%; }\n.push-3 {\n left: 25%; }\n.push-4 {\n left: 33.33333%; }\n.push-5 {\n left: 41.66667%; }\n.push-6 {\n left: 50%; }\n.push-7 {\n left: 58.33333%; }\n.push-8 {\n left: 66.66667%; }\n.push-9 {\n left: 75%; }\n.push-10 {\n left: 83.33333%; }\n.push-11 {\n left: 91.66667%; }\n.push-12 {\n left: 100%; }\n.offset-1 {\n margin-left: 8.33333%; }\n.offset-2 {\n margin-left: 16.66667%; }\n.offset-3 {\n margin-left: 25%; }\n.offset-4 {\n margin-left: 33.33333%; }\n.offset-5 {\n margin-left: 41.66667%; }\n.offset-6 {\n margin-left: 50%; }\n.offset-7 {\n margin-left: 58.33333%; }\n.offset-8 {\n margin-left: 66.66667%; }\n.offset-9 {\n margin-left: 75%; }\n.offset-10 {\n margin-left: 83.33333%; }\n.offset-11 {\n margin-left: 91.66667%; }\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%; }\n .col-sm-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto; }\n .col-sm-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.33333%;\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-sm-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.66667%;\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-sm-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%; }\n .col-sm-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.33333%;\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-sm-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.66667%;\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-sm-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%; }\n .col-sm-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.33333%;\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-sm-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.66667%;\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-sm-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%; }\n .col-sm-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.33333%;\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-sm-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.66667%;\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-sm-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%; }\n .pull-sm-0 {\n right: auto; }\n .pull-sm-1 {\n right: 8.33333%; }\n .pull-sm-2 {\n right: 16.66667%; }\n .pull-sm-3 {\n right: 25%; }\n .pull-sm-4 {\n right: 33.33333%; }\n .pull-sm-5 {\n right: 41.66667%; }\n .pull-sm-6 {\n right: 50%; }\n .pull-sm-7 {\n right: 58.33333%; }\n .pull-sm-8 {\n right: 66.66667%; }\n .pull-sm-9 {\n right: 75%; }\n .pull-sm-10 {\n right: 83.33333%; }\n .pull-sm-11 {\n right: 91.66667%; }\n .pull-sm-12 {\n right: 100%; }\n .push-sm-0 {\n left: auto; }\n .push-sm-1 {\n left: 8.33333%; }\n .push-sm-2 {\n left: 16.66667%; }\n .push-sm-3 {\n left: 25%; }\n .push-sm-4 {\n left: 33.33333%; }\n .push-sm-5 {\n left: 41.66667%; }\n .push-sm-6 {\n left: 50%; }\n .push-sm-7 {\n left: 58.33333%; }\n .push-sm-8 {\n left: 66.66667%; }\n .push-sm-9 {\n left: 75%; }\n .push-sm-10 {\n left: 83.33333%; }\n .push-sm-11 {\n left: 91.66667%; }\n .push-sm-12 {\n left: 100%; }\n .offset-sm-0 {\n margin-left: 0%; }\n .offset-sm-1 {\n margin-left: 8.33333%; }\n .offset-sm-2 {\n margin-left: 16.66667%; }\n .offset-sm-3 {\n margin-left: 25%; }\n .offset-sm-4 {\n margin-left: 33.33333%; }\n .offset-sm-5 {\n margin-left: 41.66667%; }\n .offset-sm-6 {\n margin-left: 50%; }\n .offset-sm-7 {\n margin-left: 58.33333%; }\n .offset-sm-8 {\n margin-left: 66.66667%; }\n .offset-sm-9 {\n margin-left: 75%; }\n .offset-sm-10 {\n margin-left: 83.33333%; }\n .offset-sm-11 {\n margin-left: 91.66667%; } }\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%; }\n .col-md-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto; }\n .col-md-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.33333%;\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-md-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.66667%;\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-md-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%; }\n .col-md-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.33333%;\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-md-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.66667%;\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-md-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%; }\n .col-md-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.33333%;\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-md-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.66667%;\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-md-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%; }\n .col-md-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.33333%;\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-md-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.66667%;\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-md-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%; }\n .pull-md-0 {\n right: auto; }\n .pull-md-1 {\n right: 8.33333%; }\n .pull-md-2 {\n right: 16.66667%; }\n .pull-md-3 {\n right: 25%; }\n .pull-md-4 {\n right: 33.33333%; }\n .pull-md-5 {\n right: 41.66667%; }\n .pull-md-6 {\n right: 50%; }\n .pull-md-7 {\n right: 58.33333%; }\n .pull-md-8 {\n right: 66.66667%; }\n .pull-md-9 {\n right: 75%; }\n .pull-md-10 {\n right: 83.33333%; }\n .pull-md-11 {\n right: 91.66667%; }\n .pull-md-12 {\n right: 100%; }\n .push-md-0 {\n left: auto; }\n .push-md-1 {\n left: 8.33333%; }\n .push-md-2 {\n left: 16.66667%; }\n .push-md-3 {\n left: 25%; }\n .push-md-4 {\n left: 33.33333%; }\n .push-md-5 {\n left: 41.66667%; }\n .push-md-6 {\n left: 50%; }\n .push-md-7 {\n left: 58.33333%; }\n .push-md-8 {\n left: 66.66667%; }\n .push-md-9 {\n left: 75%; }\n .push-md-10 {\n left: 83.33333%; }\n .push-md-11 {\n left: 91.66667%; }\n .push-md-12 {\n left: 100%; }\n .offset-md-0 {\n margin-left: 0%; }\n .offset-md-1 {\n margin-left: 8.33333%; }\n .offset-md-2 {\n margin-left: 16.66667%; }\n .offset-md-3 {\n margin-left: 25%; }\n .offset-md-4 {\n margin-left: 33.33333%; }\n .offset-md-5 {\n margin-left: 41.66667%; }\n .offset-md-6 {\n margin-left: 50%; }\n .offset-md-7 {\n margin-left: 58.33333%; }\n .offset-md-8 {\n margin-left: 66.66667%; }\n .offset-md-9 {\n margin-left: 75%; }\n .offset-md-10 {\n margin-left: 83.33333%; }\n .offset-md-11 {\n margin-left: 91.66667%; } }\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%; }\n .col-lg-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto; }\n .col-lg-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.33333%;\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-lg-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.66667%;\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-lg-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%; }\n .col-lg-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.33333%;\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-lg-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.66667%;\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-lg-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%; }\n .col-lg-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.33333%;\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-lg-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.66667%;\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-lg-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%; }\n .col-lg-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.33333%;\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-lg-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.66667%;\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-lg-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%; }\n .pull-lg-0 {\n right: auto; }\n .pull-lg-1 {\n right: 8.33333%; }\n .pull-lg-2 {\n right: 16.66667%; }\n .pull-lg-3 {\n right: 25%; }\n .pull-lg-4 {\n right: 33.33333%; }\n .pull-lg-5 {\n right: 41.66667%; }\n .pull-lg-6 {\n right: 50%; }\n .pull-lg-7 {\n right: 58.33333%; }\n .pull-lg-8 {\n right: 66.66667%; }\n .pull-lg-9 {\n right: 75%; }\n .pull-lg-10 {\n right: 83.33333%; }\n .pull-lg-11 {\n right: 91.66667%; }\n .pull-lg-12 {\n right: 100%; }\n .push-lg-0 {\n left: auto; }\n .push-lg-1 {\n left: 8.33333%; }\n .push-lg-2 {\n left: 16.66667%; }\n .push-lg-3 {\n left: 25%; }\n .push-lg-4 {\n left: 33.33333%; }\n .push-lg-5 {\n left: 41.66667%; }\n .push-lg-6 {\n left: 50%; }\n .push-lg-7 {\n left: 58.33333%; }\n .push-lg-8 {\n left: 66.66667%; }\n .push-lg-9 {\n left: 75%; }\n .push-lg-10 {\n left: 83.33333%; }\n .push-lg-11 {\n left: 91.66667%; }\n .push-lg-12 {\n left: 100%; }\n .offset-lg-0 {\n margin-left: 0%; }\n .offset-lg-1 {\n margin-left: 8.33333%; }\n .offset-lg-2 {\n margin-left: 16.66667%; }\n .offset-lg-3 {\n margin-left: 25%; }\n .offset-lg-4 {\n margin-left: 33.33333%; }\n .offset-lg-5 {\n margin-left: 41.66667%; }\n .offset-lg-6 {\n margin-left: 50%; }\n .offset-lg-7 {\n margin-left: 58.33333%; }\n .offset-lg-8 {\n margin-left: 66.66667%; }\n .offset-lg-9 {\n margin-left: 75%; }\n .offset-lg-10 {\n margin-left: 83.33333%; }\n .offset-lg-11 {\n margin-left: 91.66667%; } }\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%; }\n .col-xl-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto; }\n .col-xl-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.33333%;\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-xl-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.66667%;\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-xl-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%; }\n .col-xl-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.33333%;\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-xl-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.66667%;\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-xl-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%; }\n .col-xl-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.33333%;\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-xl-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.66667%;\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-xl-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%; }\n .col-xl-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.33333%;\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-xl-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.66667%;\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-xl-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%; }\n .pull-xl-0 {\n right: auto; }\n .pull-xl-1 {\n right: 8.33333%; }\n .pull-xl-2 {\n right: 16.66667%; }\n .pull-xl-3 {\n right: 25%; }\n .pull-xl-4 {\n right: 33.33333%; }\n .pull-xl-5 {\n right: 41.66667%; }\n .pull-xl-6 {\n right: 50%; }\n .pull-xl-7 {\n right: 58.33333%; }\n .pull-xl-8 {\n right: 66.66667%; }\n .pull-xl-9 {\n right: 75%; }\n .pull-xl-10 {\n right: 83.33333%; }\n .pull-xl-11 {\n right: 91.66667%; }\n .pull-xl-12 {\n right: 100%; }\n .push-xl-0 {\n left: auto; }\n .push-xl-1 {\n left: 8.33333%; }\n .push-xl-2 {\n left: 16.66667%; }\n .push-xl-3 {\n left: 25%; }\n .push-xl-4 {\n left: 33.33333%; }\n .push-xl-5 {\n left: 41.66667%; }\n .push-xl-6 {\n left: 50%; }\n .push-xl-7 {\n left: 58.33333%; }\n .push-xl-8 {\n left: 66.66667%; }\n .push-xl-9 {\n left: 75%; }\n .push-xl-10 {\n left: 83.33333%; }\n .push-xl-11 {\n left: 91.66667%; }\n .push-xl-12 {\n left: 100%; }\n .offset-xl-0 {\n margin-left: 0%; }\n .offset-xl-1 {\n margin-left: 8.33333%; }\n .offset-xl-2 {\n margin-left: 16.66667%; }\n .offset-xl-3 {\n margin-left: 25%; }\n .offset-xl-4 {\n margin-left: 33.33333%; }\n .offset-xl-5 {\n margin-left: 41.66667%; }\n .offset-xl-6 {\n margin-left: 50%; }\n .offset-xl-7 {\n margin-left: 58.33333%; }\n .offset-xl-8 {\n margin-left: 66.66667%; }\n .offset-xl-9 {\n margin-left: 75%; }\n .offset-xl-10 {\n margin-left: 83.33333%; }\n .offset-xl-11 {\n margin-left: 91.66667%; } }\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem; }\n.table th, .table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #eceeef; }\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #eceeef; }\n.table tbody + tbody {\n border-top: 2px solid #eceeef; }\n.table .table {\n background-color: #fff; }\n.table-sm th, .table-sm td {\n padding: 0.3rem; }\n.table-bordered {\n border: 1px solid #eceeef; }\n.table-bordered th, .table-bordered td {\n border: 1px solid #eceeef; }\n.table-bordered thead th, .table-bordered thead td {\n border-bottom-width: 2px; }\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05); }\n.table-hover tbody tr:hover {\n background-color: rgba(0, 0, 0, 0.075); }\n.table-active, .table-active > th, .table-active > td {\n background-color: rgba(0, 0, 0, 0.075); }\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075); }\n.table-hover .table-active:hover > td, .table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075); }\n.table-success, .table-success > th, .table-success > td {\n background-color: #dff0d8; }\n.table-hover .table-success:hover {\n background-color: #d0e9c6; }\n.table-hover .table-success:hover > td, .table-hover .table-success:hover > th {\n background-color: #d0e9c6; }\n.table-info, .table-info > th, .table-info > td {\n background-color: #d9edf7; }\n.table-hover .table-info:hover {\n background-color: #c4e3f3; }\n.table-hover .table-info:hover > td, .table-hover .table-info:hover > th {\n background-color: #c4e3f3; }\n.table-warning, .table-warning > th, .table-warning > td {\n background-color: #fcf8e3; }\n.table-hover .table-warning:hover {\n background-color: #faf2cc; }\n.table-hover .table-warning:hover > td, .table-hover .table-warning:hover > th {\n background-color: #faf2cc; }\n.table-danger, .table-danger > th, .table-danger > td {\n background-color: #f2dede; }\n.table-hover .table-danger:hover {\n background-color: #ebcccc; }\n.table-hover .table-danger:hover > td, .table-hover .table-danger:hover > th {\n background-color: #ebcccc; }\n.thead-inverse th {\n color: #fff;\n background-color: #292b2c; }\n.thead-default th {\n color: #464a4c;\n background-color: #eceeef; }\n.table-inverse {\n color: #fff;\n background-color: #292b2c; }\n.table-inverse th, .table-inverse td, .table-inverse thead th {\n border-color: #fff; }\n.table-inverse.table-bordered {\n border: 0; }\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -ms-overflow-style: -ms-autohiding-scrollbar; }\n.table-responsive.table-bordered {\n border: 0; }\n.form-control {\n display: block;\n width: 100%;\n padding: 0.5rem 0.75rem;\n font-size: 1rem;\n line-height: 1.25;\n color: #464a4c;\n background-color: #fff;\n background-image: none;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; }\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0; }\n.form-control:focus {\n color: #464a4c;\n background-color: #fff;\n border-color: #5cb3fd;\n outline: none; }\n.form-control::-webkit-input-placeholder {\n color: #636c72;\n opacity: 1; }\n.form-control:-ms-input-placeholder {\n color: #636c72;\n opacity: 1; }\n.form-control::-ms-input-placeholder {\n color: #636c72;\n opacity: 1; }\n.form-control::placeholder {\n color: #636c72;\n opacity: 1; }\n.form-control:disabled, .form-control[readonly] {\n background-color: #eceeef;\n opacity: 1; }\n.form-control:disabled {\n cursor: not-allowed; }\nselect.form-control:not([size]):not([multiple]) {\n height: calc(2.25rem + 2px); }\nselect.form-control:focus::-ms-value {\n color: #464a4c;\n background-color: #fff; }\n.form-control-file, .form-control-range {\n display: block; }\n.col-form-label {\n padding-top: calc(0.5rem - 1px * 2);\n padding-bottom: calc(0.5rem - 1px * 2);\n margin-bottom: 0; }\n.col-form-label-lg {\n padding-top: calc(0.75rem - 1px * 2);\n padding-bottom: calc(0.75rem - 1px * 2);\n font-size: 1.25rem; }\n.col-form-label-sm {\n padding-top: calc(0.25rem - 1px * 2);\n padding-bottom: calc(0.25rem - 1px * 2);\n font-size: 0.875rem; }\n.col-form-legend {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n margin-bottom: 0;\n font-size: 1rem; }\n.form-control-static {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n margin-bottom: 0;\n line-height: 1.25;\n border: solid transparent;\n border-width: 1px 0; }\n.form-control-static.form-control-sm, .input-group-sm > .form-control-static.form-control, .input-group-sm > .form-control-static.input-group-addon, .input-group-sm > .input-group-btn > .form-control-static.btn, .form-control-static.form-control-lg, .input-group-lg > .form-control-static.form-control, .input-group-lg > .form-control-static.input-group-addon, .input-group-lg > .input-group-btn > .form-control-static.btn {\n padding-right: 0;\n padding-left: 0; }\n.form-control-sm, .input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem; }\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]), .input-group-sm > select.input-group-addon:not([size]):not([multiple]), .input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) {\n height: 1.8125rem; }\n.form-control-lg, .input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n border-radius: 0.3rem; }\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]), .input-group-lg > select.input-group-addon:not([size]):not([multiple]), .input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) {\n height: 3.16667rem; }\n.form-group {\n margin-bottom: 1rem; }\n.form-text {\n display: block;\n margin-top: 0.25rem; }\n.form-check {\n position: relative;\n display: block;\n margin-bottom: 0.5rem; }\n.form-check.disabled .form-check-label {\n color: #636c72;\n cursor: not-allowed; }\n.form-check-label {\n padding-left: 1.25rem;\n margin-bottom: 0;\n cursor: pointer; }\n.form-check-input {\n position: absolute;\n margin-top: 0.25rem;\n margin-left: -1.25rem; }\n.form-check-input:only-child {\n position: static; }\n.form-check-inline {\n display: inline-block; }\n.form-check-inline .form-check-label {\n vertical-align: middle; }\n.form-check-inline + .form-check-inline {\n margin-left: 0.75rem; }\n.form-control-feedback {\n margin-top: 0.25rem; }\n.form-control-success, .form-control-warning, .form-control-danger {\n padding-right: 2.25rem;\n background-repeat: no-repeat;\n background-position: center right 0.5625rem;\n background-size: 1.125rem 1.125rem; }\n.has-success .form-control-feedback, .has-success .form-control-label, .has-success .col-form-label, .has-success .form-check-label, .has-success .custom-control {\n color: #5cb85c; }\n.has-success .form-control {\n border-color: #5cb85c; }\n.has-success .input-group-addon {\n color: #5cb85c;\n border-color: #5cb85c;\n background-color: #eaf6ea; }\n.has-success .form-control-success {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E\"); }\n.has-warning .form-control-feedback, .has-warning .form-control-label, .has-warning .col-form-label, .has-warning .form-check-label, .has-warning .custom-control {\n color: #f0ad4e; }\n.has-warning .form-control {\n border-color: #f0ad4e; }\n.has-warning .input-group-addon {\n color: #f0ad4e;\n border-color: #f0ad4e;\n background-color: white; }\n.has-warning .form-control-warning {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f0ad4e' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E\"); }\n.has-danger .form-control-feedback, .has-danger .form-control-label, .has-danger .col-form-label, .has-danger .form-check-label, .has-danger .custom-control {\n color: #d9534f; }\n.has-danger .form-control {\n border-color: #d9534f; }\n.has-danger .input-group-addon {\n color: #d9534f;\n border-color: #d9534f;\n background-color: #fdf7f7; }\n.has-danger .form-control-danger {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E\"); }\n.form-inline {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n.form-inline .form-check {\n width: 100%; }\n@media (min-width: 576px) {\n .form-inline label {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0; }\n .form-inline .form-group {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0; }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle; }\n .form-inline .form-control-static {\n display: inline-block; }\n .form-inline .input-group {\n width: auto; }\n .form-inline .form-control-label {\n margin-bottom: 0;\n vertical-align: middle; }\n .form-inline .form-check {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n margin-top: 0;\n margin-bottom: 0; }\n .form-inline .form-check-label {\n padding-left: 0; }\n .form-inline .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0; }\n .form-inline .custom-control {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0; }\n .form-inline .custom-control-indicator {\n position: static;\n display: inline-block;\n margin-right: 0.25rem;\n vertical-align: text-bottom; }\n .form-inline .has-feedback .form-control-feedback {\n top: 0; } }\n.btn {\n display: inline-block;\n font-weight: normal;\n line-height: 1.25;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.5rem 1rem;\n font-size: 1rem;\n border-radius: 0.25rem;\n -webkit-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out; }\n.btn:focus, .btn:hover {\n text-decoration: none; }\n.btn:focus, .btn.focus {\n outline: 0;\n -webkit-box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.25);\n box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.25); }\n.btn.disabled, .btn:disabled {\n cursor: not-allowed;\n opacity: .65; }\n.btn:active, .btn.active {\n background-image: none; }\na.btn.disabled, fieldset[disabled] a.btn {\n pointer-events: none; }\n.btn-primary {\n color: #fff;\n background-color: #0275d8;\n border-color: #0275d8; }\n.btn-primary:hover {\n color: #fff;\n background-color: #025aa5;\n border-color: #01549b; }\n.btn-primary:focus, .btn-primary.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.5);\n box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.5); }\n.btn-primary.disabled, .btn-primary:disabled {\n background-color: #0275d8;\n border-color: #0275d8; }\n.btn-primary:active, .btn-primary.active, .show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #025aa5;\n background-image: none;\n border-color: #01549b; }\n.btn-secondary {\n color: #292b2c;\n background-color: #fff;\n border-color: #ccc; }\n.btn-secondary:hover {\n color: #292b2c;\n background-color: #e6e6e6;\n border-color: #adadad; }\n.btn-secondary:focus, .btn-secondary.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(204, 204, 204, 0.5);\n box-shadow: 0 0 0 2px rgba(204, 204, 204, 0.5); }\n.btn-secondary.disabled, .btn-secondary:disabled {\n background-color: #fff;\n border-color: #ccc; }\n.btn-secondary:active, .btn-secondary.active, .show > .btn-secondary.dropdown-toggle {\n color: #292b2c;\n background-color: #e6e6e6;\n background-image: none;\n border-color: #adadad; }\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #5bc0de; }\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #2aabd2; }\n.btn-info:focus, .btn-info.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(91, 192, 222, 0.5);\n box-shadow: 0 0 0 2px rgba(91, 192, 222, 0.5); }\n.btn-info.disabled, .btn-info:disabled {\n background-color: #5bc0de;\n border-color: #5bc0de; }\n.btn-info:active, .btn-info.active, .show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #31b0d5;\n background-image: none;\n border-color: #2aabd2; }\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #5cb85c; }\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #419641; }\n.btn-success:focus, .btn-success.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(92, 184, 92, 0.5);\n box-shadow: 0 0 0 2px rgba(92, 184, 92, 0.5); }\n.btn-success.disabled, .btn-success:disabled {\n background-color: #5cb85c;\n border-color: #5cb85c; }\n.btn-success:active, .btn-success.active, .show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #449d44;\n background-image: none;\n border-color: #419641; }\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #f0ad4e; }\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #eb9316; }\n.btn-warning:focus, .btn-warning.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(240, 173, 78, 0.5);\n box-shadow: 0 0 0 2px rgba(240, 173, 78, 0.5); }\n.btn-warning.disabled, .btn-warning:disabled {\n background-color: #f0ad4e;\n border-color: #f0ad4e; }\n.btn-warning:active, .btn-warning.active, .show > .btn-warning.dropdown-toggle {\n color: #fff;\n background-color: #ec971f;\n background-image: none;\n border-color: #eb9316; }\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d9534f; }\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #c12e2a; }\n.btn-danger:focus, .btn-danger.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(217, 83, 79, 0.5);\n box-shadow: 0 0 0 2px rgba(217, 83, 79, 0.5); }\n.btn-danger.disabled, .btn-danger:disabled {\n background-color: #d9534f;\n border-color: #d9534f; }\n.btn-danger:active, .btn-danger.active, .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #c9302c;\n background-image: none;\n border-color: #c12e2a; }\n.btn-outline-primary {\n color: #0275d8;\n background-image: none;\n background-color: transparent;\n border-color: #0275d8; }\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #0275d8;\n border-color: #0275d8; }\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.5);\n box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.5); }\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #0275d8;\n background-color: transparent; }\n.btn-outline-primary:active, .btn-outline-primary.active, .show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #0275d8;\n border-color: #0275d8; }\n.btn-outline-secondary {\n color: #ccc;\n background-image: none;\n background-color: transparent;\n border-color: #ccc; }\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #ccc;\n border-color: #ccc; }\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(204, 204, 204, 0.5);\n box-shadow: 0 0 0 2px rgba(204, 204, 204, 0.5); }\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #ccc;\n background-color: transparent; }\n.btn-outline-secondary:active, .btn-outline-secondary.active, .show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #ccc;\n border-color: #ccc; }\n.btn-outline-info {\n color: #5bc0de;\n background-image: none;\n background-color: transparent;\n border-color: #5bc0de; }\n.btn-outline-info:hover {\n color: #fff;\n background-color: #5bc0de;\n border-color: #5bc0de; }\n.btn-outline-info:focus, .btn-outline-info.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(91, 192, 222, 0.5);\n box-shadow: 0 0 0 2px rgba(91, 192, 222, 0.5); }\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #5bc0de;\n background-color: transparent; }\n.btn-outline-info:active, .btn-outline-info.active, .show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #5bc0de;\n border-color: #5bc0de; }\n.btn-outline-success {\n color: #5cb85c;\n background-image: none;\n background-color: transparent;\n border-color: #5cb85c; }\n.btn-outline-success:hover {\n color: #fff;\n background-color: #5cb85c;\n border-color: #5cb85c; }\n.btn-outline-success:focus, .btn-outline-success.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(92, 184, 92, 0.5);\n box-shadow: 0 0 0 2px rgba(92, 184, 92, 0.5); }\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #5cb85c;\n background-color: transparent; }\n.btn-outline-success:active, .btn-outline-success.active, .show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #5cb85c;\n border-color: #5cb85c; }\n.btn-outline-warning {\n color: #f0ad4e;\n background-image: none;\n background-color: transparent;\n border-color: #f0ad4e; }\n.btn-outline-warning:hover {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #f0ad4e; }\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(240, 173, 78, 0.5);\n box-shadow: 0 0 0 2px rgba(240, 173, 78, 0.5); }\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #f0ad4e;\n background-color: transparent; }\n.btn-outline-warning:active, .btn-outline-warning.active, .show > .btn-outline-warning.dropdown-toggle {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #f0ad4e; }\n.btn-outline-danger {\n color: #d9534f;\n background-image: none;\n background-color: transparent;\n border-color: #d9534f; }\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #d9534f;\n border-color: #d9534f; }\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n -webkit-box-shadow: 0 0 0 2px rgba(217, 83, 79, 0.5);\n box-shadow: 0 0 0 2px rgba(217, 83, 79, 0.5); }\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #d9534f;\n background-color: transparent; }\n.btn-outline-danger:active, .btn-outline-danger.active, .show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #d9534f;\n border-color: #d9534f; }\n.btn-link {\n font-weight: normal;\n color: #0275d8;\n border-radius: 0; }\n.btn-link, .btn-link:active, .btn-link.active, .btn-link:disabled {\n background-color: transparent; }\n.btn-link, .btn-link:focus, .btn-link:active {\n border-color: transparent; }\n.btn-link:hover {\n border-color: transparent; }\n.btn-link:focus, .btn-link:hover {\n color: #014c8c;\n text-decoration: underline;\n background-color: transparent; }\n.btn-link:disabled {\n color: #636c72; }\n.btn-link:disabled:focus, .btn-link:disabled:hover {\n text-decoration: none; }\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n border-radius: 0.3rem; }\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem; }\n.btn-block {\n display: block;\n width: 100%; }\n.btn-block + .btn-block {\n margin-top: 0.5rem; }\ninput[type=\"submit\"].btn-block, input[type=\"reset\"].btn-block, input[type=\"button\"].btn-block {\n width: 100%; }\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear; }\n.fade.show {\n opacity: 1; }\n.collapse {\n display: none; }\n.collapse.show {\n display: block; }\ntr.collapse.show {\n display: table-row; }\ntbody.collapse.show {\n display: table-row-group; }\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition: height 0.35s ease;\n transition: height 0.35s ease; }\n.dropup, .dropdown {\n position: relative; }\n.dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.3em;\n vertical-align: middle;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-left: 0.3em solid transparent; }\n.dropdown-toggle:focus {\n outline: 0; }\n.dropup .dropdown-toggle::after {\n border-top: 0;\n border-bottom: 0.3em solid; }\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #292b2c;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem; }\n.dropdown-divider {\n height: 1px;\n margin: 0.5rem 0;\n overflow: hidden;\n background-color: #eceeef; }\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 3px 1.5rem;\n clear: both;\n font-weight: normal;\n color: #292b2c;\n text-align: inherit;\n white-space: nowrap;\n background: none;\n border: 0; }\n.dropdown-item:focus, .dropdown-item:hover {\n color: #1d1e1f;\n text-decoration: none;\n background-color: #f7f7f9; }\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #0275d8; }\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #636c72;\n cursor: not-allowed;\n background-color: transparent; }\n.show > .dropdown-menu {\n display: block; }\n.show > a {\n outline: 0; }\n.dropdown-menu-right {\n right: 0;\n left: auto; }\n.dropdown-menu-left {\n right: auto;\n left: 0; }\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #636c72;\n white-space: nowrap; }\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990; }\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 0.125rem; }\n.btn-group, .btn-group-vertical {\n position: relative;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle; }\n.btn-group > .btn, .btn-group-vertical > .btn {\n position: relative;\n -webkit-box-flex: 0;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto; }\n.btn-group > .btn:hover, .btn-group-vertical > .btn:hover {\n z-index: 2; }\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn:focus, .btn-group-vertical > .btn:active, .btn-group-vertical > .btn.active {\n z-index: 2; }\n.btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group, .btn-group-vertical .btn + .btn, .btn-group-vertical .btn + .btn-group, .btn-group-vertical .btn-group + .btn, .btn-group-vertical .btn-group + .btn-group {\n margin-left: -1px; }\n.btn-toolbar {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n.btn-toolbar .input-group {\n width: auto; }\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0; }\n.btn-group > .btn:first-child {\n margin-left: 0; }\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n.btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n.btn-group > .btn-group {\n float: left; }\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0; }\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle {\n outline: 0; }\n.btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem; }\n.btn + .dropdown-toggle-split::after {\n margin-left: 0; }\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem; }\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 1.125rem;\n padding-left: 1.125rem; }\n.btn-group-vertical {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center; }\n.btn-group-vertical .btn, .btn-group-vertical .btn-group {\n width: 100%; }\n.btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0; }\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0; }\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-right-radius: 0;\n border-top-left-radius: 0; }\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0; }\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0; }\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"], [data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"], [data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"], [data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none; }\n.input-group {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n width: 100%; }\n.input-group .form-control {\n position: relative;\n z-index: 2;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0; }\n.input-group .form-control:focus, .input-group .form-control:active, .input-group .form-control:hover {\n z-index: 3; }\n.input-group-addon, .input-group-btn, .input-group .form-control {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center; }\n.input-group-addon:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child), .input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0; }\n.input-group-addon, .input-group-btn {\n white-space: nowrap;\n vertical-align: middle; }\n.input-group-addon {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: normal;\n line-height: 1.25;\n color: #464a4c;\n text-align: center;\n background-color: #eceeef;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem; }\n.input-group-addon.form-control-sm, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .input-group-addon.btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: 0.2rem; }\n.input-group-addon.form-control-lg, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .input-group-addon.btn {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n border-radius: 0.3rem; }\n.input-group-addon input[type=\"radio\"], .input-group-addon input[type=\"checkbox\"] {\n margin-top: 0; }\n.input-group .form-control:not(:last-child), .input-group-addon:not(:last-child), .input-group-btn:not(:last-child) > .btn, .input-group-btn:not(:last-child) > .btn-group > .btn, .input-group-btn:not(:last-child) > .dropdown-toggle, .input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle), .input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n.input-group-addon:not(:last-child) {\n border-right: 0; }\n.input-group .form-control:not(:first-child), .input-group-addon:not(:first-child), .input-group-btn:not(:first-child) > .btn, .input-group-btn:not(:first-child) > .btn-group > .btn, .input-group-btn:not(:first-child) > .dropdown-toggle, .input-group-btn:not(:last-child) > .btn:not(:first-child), .input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n.form-control + .input-group-addon:not(:first-child) {\n border-left: 0; }\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap; }\n.input-group-btn > .btn {\n position: relative;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1; }\n.input-group-btn > .btn + .btn {\n margin-left: -1px; }\n.input-group-btn > .btn:focus, .input-group-btn > .btn:active, .input-group-btn > .btn:hover {\n z-index: 3; }\n.input-group-btn:not(:last-child) > .btn, .input-group-btn:not(:last-child) > .btn-group {\n margin-right: -1px; }\n.input-group-btn:not(:first-child) > .btn, .input-group-btn:not(:first-child) > .btn-group {\n z-index: 2;\n margin-left: -1px; }\n.input-group-btn:not(:first-child) > .btn:focus, .input-group-btn:not(:first-child) > .btn:active, .input-group-btn:not(:first-child) > .btn:hover, .input-group-btn:not(:first-child) > .btn-group:focus, .input-group-btn:not(:first-child) > .btn-group:active, .input-group-btn:not(:first-child) > .btn-group:hover {\n z-index: 3; }\n.custom-control {\n position: relative;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n margin-right: 1rem;\n cursor: pointer; }\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0; }\n.custom-control-input:checked ~ .custom-control-indicator {\n color: #fff;\n background-color: #0275d8; }\n.custom-control-input:focus ~ .custom-control-indicator {\n -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 3px #0275d8;\n box-shadow: 0 0 0 1px #fff, 0 0 0 3px #0275d8; }\n.custom-control-input:active ~ .custom-control-indicator {\n color: #fff;\n background-color: #8fcafe; }\n.custom-control-input:disabled ~ .custom-control-indicator {\n cursor: not-allowed;\n background-color: #eceeef; }\n.custom-control-input:disabled ~ .custom-control-description {\n color: #636c72;\n cursor: not-allowed; }\n.custom-control-indicator {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: #ddd;\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 50% 50%; }\n.custom-checkbox .custom-control-indicator {\n border-radius: 0.25rem; }\n.custom-checkbox .custom-control-input:checked ~ .custom-control-indicator {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"); }\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-indicator {\n background-color: #0275d8;\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\"); }\n.custom-radio .custom-control-indicator {\n border-radius: 50%; }\n.custom-radio .custom-control-input:checked ~ .custom-control-indicator {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\"); }\n.custom-controls-stacked {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column; }\n.custom-controls-stacked .custom-control {\n margin-bottom: 0.25rem; }\n.custom-controls-stacked .custom-control + .custom-control {\n margin-left: 0; }\n.custom-select {\n display: inline-block;\n max-width: 100%;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n line-height: 1.25;\n color: #464a4c;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center;\n background-size: 8px 10px;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n -moz-appearance: none;\n -webkit-appearance: none; }\n.custom-select:focus {\n border-color: #5cb3fd;\n outline: none; }\n.custom-select:focus::-ms-value {\n color: #464a4c;\n background-color: #fff; }\n.custom-select:disabled {\n color: #636c72;\n cursor: not-allowed;\n background-color: #eceeef; }\n.custom-select::-ms-expand {\n opacity: 0; }\n.custom-select-sm {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 75%; }\n.custom-file {\n position: relative;\n display: inline-block;\n max-width: 100%;\n height: 2.5rem;\n margin-bottom: 0;\n cursor: pointer; }\n.custom-file-input {\n min-width: 14rem;\n max-width: 100%;\n height: 2.5rem;\n margin: 0;\n filter: alpha(opacity=0);\n opacity: 0; }\n.custom-file-control {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 5;\n height: 2.5rem;\n padding: 0.5rem 1rem;\n line-height: 1.5;\n color: #464a4c;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem; }\n.custom-file-control:lang(en)::after {\n content: \"Choose file...\"; }\n.custom-file-control::before {\n position: absolute;\n top: -1px;\n right: -1px;\n bottom: -1px;\n z-index: 6;\n display: block;\n height: 2.5rem;\n padding: 0.5rem 1rem;\n line-height: 1.5;\n color: #464a4c;\n background-color: #eceeef;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0 0.25rem 0.25rem 0; }\n.custom-file-control:lang(en)::before {\n content: \"Browse\"; }\n.nav {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n.nav-link {\n display: block;\n padding: 0.5em 1em; }\n.nav-link:focus, .nav-link:hover {\n text-decoration: none; }\n.nav-link.disabled {\n color: #636c72;\n cursor: not-allowed; }\n.nav-tabs {\n border-bottom: 1px solid #ddd; }\n.nav-tabs .nav-item {\n margin-bottom: -1px; }\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-right-radius: 0.25rem;\n border-top-left-radius: 0.25rem; }\n.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {\n border-color: #eceeef #eceeef #ddd; }\n.nav-tabs .nav-link.disabled {\n color: #636c72;\n background-color: transparent;\n border-color: transparent; }\n.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link {\n color: #464a4c;\n background-color: #fff;\n border-color: #ddd #ddd #fff; }\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0; }\n.nav-pills .nav-link {\n border-radius: 0.25rem; }\n.nav-pills .nav-link.active, .nav-pills .nav-item.show .nav-link {\n color: #fff;\n cursor: default;\n background-color: #0275d8; }\n.nav-fill .nav-item {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center; }\n.nav-justified .nav-item {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 100%;\n flex: 1 1 100%;\n text-align: center; }\n.tab-content > .tab-pane {\n display: none; }\n.tab-content > .active {\n display: block; }\n.navbar {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0.5rem 1rem; }\n.navbar-brand {\n display: inline-block;\n padding-top: .25rem;\n padding-bottom: .25rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap; }\n.navbar-brand:focus, .navbar-brand:hover {\n text-decoration: none; }\n.navbar-nav {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0; }\n.navbar-text {\n display: inline-block;\n padding-top: .425rem;\n padding-bottom: .425rem; }\n.navbar-toggler {\n -ms-flex-item-align: start;\n align-self: flex-start;\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n.navbar-toggler:focus, .navbar-toggler:hover {\n text-decoration: none; }\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%; }\n.navbar-toggler-left {\n position: absolute;\n left: 1rem; }\n.navbar-toggler-right {\n position: absolute;\n right: 1rem; }\n@media (max-width: 575px) {\n .navbar-toggleable .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n .navbar-toggleable > .container {\n padding-right: 0;\n padding-left: 0; } }\n@media (min-width: 576px) {\n .navbar-toggleable {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row; }\n .navbar-toggleable .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem; }\n .navbar-toggleable > .container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n width: 100%; }\n .navbar-toggleable .navbar-toggler {\n display: none; } }\n@media (max-width: 767px) {\n .navbar-toggleable-sm .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n .navbar-toggleable-sm > .container {\n padding-right: 0;\n padding-left: 0; } }\n@media (min-width: 768px) {\n .navbar-toggleable-sm {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable-sm .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row; }\n .navbar-toggleable-sm .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem; }\n .navbar-toggleable-sm > .container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable-sm .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n width: 100%; }\n .navbar-toggleable-sm .navbar-toggler {\n display: none; } }\n@media (max-width: 991px) {\n .navbar-toggleable-md .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n .navbar-toggleable-md > .container {\n padding-right: 0;\n padding-left: 0; } }\n@media (min-width: 992px) {\n .navbar-toggleable-md {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable-md .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row; }\n .navbar-toggleable-md .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem; }\n .navbar-toggleable-md > .container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable-md .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n width: 100%; }\n .navbar-toggleable-md .navbar-toggler {\n display: none; } }\n@media (max-width: 1199px) {\n .navbar-toggleable-lg .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n .navbar-toggleable-lg > .container {\n padding-right: 0;\n padding-left: 0; } }\n@media (min-width: 1200px) {\n .navbar-toggleable-lg {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable-lg .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row; }\n .navbar-toggleable-lg .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem; }\n .navbar-toggleable-lg > .container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .navbar-toggleable-lg .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n width: 100%; }\n .navbar-toggleable-lg .navbar-toggler {\n display: none; } }\n.navbar-toggleable-xl {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n.navbar-toggleable-xl .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n.navbar-toggleable-xl > .container {\n padding-right: 0;\n padding-left: 0; }\n.navbar-toggleable-xl .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row; }\n.navbar-toggleable-xl .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem; }\n.navbar-toggleable-xl > .container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n.navbar-toggleable-xl .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n width: 100%; }\n.navbar-toggleable-xl .navbar-toggler {\n display: none; }\n.navbar-light .navbar-brand, .navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.9); }\n.navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover, .navbar-light .navbar-toggler:focus, .navbar-light .navbar-toggler:hover {\n color: rgba(0, 0, 0, 0.9); }\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5); }\n.navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover {\n color: rgba(0, 0, 0, 0.7); }\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3); }\n.navbar-light .navbar-nav .open > .nav-link, .navbar-light .navbar-nav .active > .nav-link, .navbar-light .navbar-nav .nav-link.open, .navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9); }\n.navbar-light .navbar-toggler {\n border-color: rgba(0, 0, 0, 0.1); }\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E\"); }\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5); }\n.navbar-inverse .navbar-brand, .navbar-inverse .navbar-toggler {\n color: white; }\n.navbar-inverse .navbar-brand:focus, .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-toggler:focus, .navbar-inverse .navbar-toggler:hover {\n color: white; }\n.navbar-inverse .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5); }\n.navbar-inverse .navbar-nav .nav-link:focus, .navbar-inverse .navbar-nav .nav-link:hover {\n color: rgba(255, 255, 255, 0.75); }\n.navbar-inverse .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25); }\n.navbar-inverse .navbar-nav .open > .nav-link, .navbar-inverse .navbar-nav .active > .nav-link, .navbar-inverse .navbar-nav .nav-link.open, .navbar-inverse .navbar-nav .nav-link.active {\n color: white; }\n.navbar-inverse .navbar-toggler {\n border-color: rgba(255, 255, 255, 0.1); }\n.navbar-inverse .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E\"); }\n.navbar-inverse .navbar-text {\n color: rgba(255, 255, 255, 0.5); }\n.card {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem; }\n.card-block {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1.25rem; }\n.card-title {\n margin-bottom: 0.75rem; }\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0; }\n.card-text:last-child {\n margin-bottom: 0; }\n.card-link:hover {\n text-decoration: none; }\n.card-link + .card-link {\n margin-left: 1.25rem; }\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-right-radius: 0.25rem;\n border-top-left-radius: 0.25rem; }\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: #f7f7f9;\n border-bottom: 1px solid rgba(0, 0, 0, 0.125); }\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: #f7f7f9;\n border-top: 1px solid rgba(0, 0, 0, 0.125); }\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0; }\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem; }\n.card-primary {\n background-color: #0275d8;\n border-color: #0275d8; }\n.card-primary .card-header, .card-primary .card-footer {\n background-color: transparent; }\n.card-success {\n background-color: #5cb85c;\n border-color: #5cb85c; }\n.card-success .card-header, .card-success .card-footer {\n background-color: transparent; }\n.card-info {\n background-color: #5bc0de;\n border-color: #5bc0de; }\n.card-info .card-header, .card-info .card-footer {\n background-color: transparent; }\n.card-warning {\n background-color: #f0ad4e;\n border-color: #f0ad4e; }\n.card-warning .card-header, .card-warning .card-footer {\n background-color: transparent; }\n.card-danger {\n background-color: #d9534f;\n border-color: #d9534f; }\n.card-danger .card-header, .card-danger .card-footer {\n background-color: transparent; }\n.card-outline-primary {\n background-color: transparent;\n border-color: #0275d8; }\n.card-outline-secondary {\n background-color: transparent;\n border-color: #ccc; }\n.card-outline-info {\n background-color: transparent;\n border-color: #5bc0de; }\n.card-outline-success {\n background-color: transparent;\n border-color: #5cb85c; }\n.card-outline-warning {\n background-color: transparent;\n border-color: #f0ad4e; }\n.card-outline-danger {\n background-color: transparent;\n border-color: #d9534f; }\n.card-inverse {\n color: rgba(255, 255, 255, 0.65); }\n.card-inverse .card-header, .card-inverse .card-footer {\n background-color: transparent;\n border-color: rgba(255, 255, 255, 0.2); }\n.card-inverse .card-header, .card-inverse .card-footer, .card-inverse .card-title, .card-inverse .card-blockquote {\n color: #fff; }\n.card-inverse .card-link, .card-inverse .card-text, .card-inverse .card-subtitle, .card-inverse .card-blockquote .blockquote-footer {\n color: rgba(255, 255, 255, 0.65); }\n.card-inverse .card-link:focus, .card-inverse .card-link:hover {\n color: #fff; }\n.card-blockquote {\n padding: 0;\n margin-bottom: 0;\n border-left: 0; }\n.card-img {\n border-radius: calc(0.25rem - 1px); }\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem; }\n.card-img-top {\n border-top-right-radius: calc(0.25rem - 1px);\n border-top-left-radius: calc(0.25rem - 1px); }\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n@media (min-width: 576px) {\n .card-deck {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap; }\n .card-deck .card {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex: 1 0 0px;\n flex: 1 0 0;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column; }\n .card-deck .card:not(:first-child) {\n margin-left: 15px; }\n .card-deck .card:not(:last-child) {\n margin-right: 15px; } }\n@media (min-width: 576px) {\n .card-group {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap; }\n .card-group .card {\n -webkit-box-flex: 1;\n -ms-flex: 1 0 0px;\n flex: 1 0 0; }\n .card-group .card + .card {\n margin-left: 0;\n border-left: 0; }\n .card-group .card:first-child {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0; }\n .card-group .card:first-child .card-img-top {\n border-top-right-radius: 0; }\n .card-group .card:first-child .card-img-bottom {\n border-bottom-right-radius: 0; }\n .card-group .card:last-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0; }\n .card-group .card:last-child .card-img-top {\n border-top-left-radius: 0; }\n .card-group .card:last-child .card-img-bottom {\n border-bottom-left-radius: 0; }\n .card-group .card:not(:first-child):not(:last-child) {\n border-radius: 0; }\n .card-group .card:not(:first-child):not(:last-child) .card-img-top, .card-group .card:not(:first-child):not(:last-child) .card-img-bottom {\n border-radius: 0; } }\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n column-gap: 1.25rem; }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n margin-bottom: 0.75rem; } }\n.breadcrumb {\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #eceeef;\n border-radius: 0.25rem; }\n.breadcrumb::after {\n display: block;\n content: \"\";\n clear: both; }\n.breadcrumb-item {\n float: left; }\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n color: #636c72;\n content: \"/\"; }\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline; }\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none; }\n.breadcrumb-item.active {\n color: #636c72; }\n.pagination {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem; }\n.page-item:first-child .page-link {\n margin-left: 0;\n border-bottom-left-radius: 0.25rem;\n border-top-left-radius: 0.25rem; }\n.page-item:last-child .page-link {\n border-bottom-right-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n.page-item.active .page-link {\n z-index: 2;\n color: #fff;\n background-color: #0275d8;\n border-color: #0275d8; }\n.page-item.disabled .page-link {\n color: #636c72;\n pointer-events: none;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd; }\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #0275d8;\n background-color: #fff;\n border: 1px solid #ddd; }\n.page-link:focus, .page-link:hover {\n color: #014c8c;\n text-decoration: none;\n background-color: #eceeef;\n border-color: #ddd; }\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem; }\n.pagination-lg .page-item:first-child .page-link {\n border-bottom-left-radius: 0.3rem;\n border-top-left-radius: 0.3rem; }\n.pagination-lg .page-item:last-child .page-link {\n border-bottom-right-radius: 0.3rem;\n border-top-right-radius: 0.3rem; }\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem; }\n.pagination-sm .page-item:first-child .page-link {\n border-bottom-left-radius: 0.2rem;\n border-top-left-radius: 0.2rem; }\n.pagination-sm .page-item:last-child .page-link {\n border-bottom-right-radius: 0.2rem;\n border-top-right-radius: 0.2rem; }\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem; }\n.badge:empty {\n display: none; }\n.btn .badge {\n position: relative;\n top: -1px; }\na.badge:focus, a.badge:hover {\n color: #fff;\n text-decoration: none;\n cursor: pointer; }\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem; }\n.badge-default {\n background-color: #636c72; }\n.badge-default[href]:focus, .badge-default[href]:hover {\n background-color: #4b5257; }\n.badge-primary {\n background-color: #0275d8; }\n.badge-primary[href]:focus, .badge-primary[href]:hover {\n background-color: #025aa5; }\n.badge-success {\n background-color: #5cb85c; }\n.badge-success[href]:focus, .badge-success[href]:hover {\n background-color: #449d44; }\n.badge-info {\n background-color: #5bc0de; }\n.badge-info[href]:focus, .badge-info[href]:hover {\n background-color: #31b0d5; }\n.badge-warning {\n background-color: #f0ad4e; }\n.badge-warning[href]:focus, .badge-warning[href]:hover {\n background-color: #ec971f; }\n.badge-danger {\n background-color: #d9534f; }\n.badge-danger[href]:focus, .badge-danger[href]:hover {\n background-color: #c9302c; }\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #eceeef;\n border-radius: 0.3rem; }\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem; } }\n.jumbotron-hr {\n border-top-color: #d0d5d8; }\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0; }\n.alert {\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n.alert-heading {\n color: inherit; }\n.alert-link {\n font-weight: bold; }\n.alert-dismissible .close {\n position: relative;\n top: -0.75rem;\n right: -1.25rem;\n padding: 0.75rem 1.25rem;\n color: inherit; }\n.alert-success {\n background-color: #dff0d8;\n border-color: #d0e9c6;\n color: #3c763d; }\n.alert-success hr {\n border-top-color: #c1e2b3; }\n.alert-success .alert-link {\n color: #2b542c; }\n.alert-info {\n background-color: #d9edf7;\n border-color: #bcdff1;\n color: #31708f; }\n.alert-info hr {\n border-top-color: #a6d5ec; }\n.alert-info .alert-link {\n color: #245269; }\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faf2cc;\n color: #8a6d3b; }\n.alert-warning hr {\n border-top-color: #f7ecb5; }\n.alert-warning .alert-link {\n color: #66512c; }\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebcccc;\n color: #a94442; }\n.alert-danger hr {\n border-top-color: #e4b9b9; }\n.alert-danger .alert-link {\n color: #843534; }\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0; }\n to {\n background-position: 0 0; } }\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0; }\n to {\n background-position: 0 0; } }\n.progress {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n overflow: hidden;\n font-size: 0.75rem;\n line-height: 1rem;\n text-align: center;\n background-color: #eceeef;\n border-radius: 0.25rem; }\n.progress-bar {\n height: 1rem;\n color: #fff;\n background-color: #0275d8; }\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem; }\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite; }\n.media {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start; }\n.media-body {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1; }\n.list-group {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0; }\n.list-group-item-action {\n width: 100%;\n color: #464a4c;\n text-align: inherit; }\n.list-group-item-action .list-group-item-heading {\n color: #292b2c; }\n.list-group-item-action:focus, .list-group-item-action:hover {\n color: #464a4c;\n text-decoration: none;\n background-color: #f7f7f9; }\n.list-group-item-action:active {\n color: #292b2c;\n background-color: #eceeef; }\n.list-group-item {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125); }\n.list-group-item:first-child {\n border-top-right-radius: 0.25rem;\n border-top-left-radius: 0.25rem; }\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n.list-group-item:focus, .list-group-item:hover {\n text-decoration: none; }\n.list-group-item.disabled, .list-group-item:disabled {\n color: #636c72;\n cursor: not-allowed;\n background-color: #fff; }\n.list-group-item.disabled .list-group-item-heading, .list-group-item:disabled .list-group-item-heading {\n color: inherit; }\n.list-group-item.disabled .list-group-item-text, .list-group-item:disabled .list-group-item-text {\n color: #636c72; }\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #0275d8;\n border-color: #0275d8; }\n.list-group-item.active .list-group-item-heading, .list-group-item.active .list-group-item-heading > small, .list-group-item.active .list-group-item-heading > .small {\n color: inherit; }\n.list-group-item.active .list-group-item-text {\n color: #daeeff; }\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0; }\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0; }\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom: 0; }\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8; }\na.list-group-item-success, button.list-group-item-success {\n color: #3c763d; }\na.list-group-item-success .list-group-item-heading, button.list-group-item-success .list-group-item-heading {\n color: inherit; }\na.list-group-item-success:focus, a.list-group-item-success:hover, button.list-group-item-success:focus, button.list-group-item-success:hover {\n color: #3c763d;\n background-color: #d0e9c6; }\na.list-group-item-success.active, button.list-group-item-success.active {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d; }\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7; }\na.list-group-item-info, button.list-group-item-info {\n color: #31708f; }\na.list-group-item-info .list-group-item-heading, button.list-group-item-info .list-group-item-heading {\n color: inherit; }\na.list-group-item-info:focus, a.list-group-item-info:hover, button.list-group-item-info:focus, button.list-group-item-info:hover {\n color: #31708f;\n background-color: #c4e3f3; }\na.list-group-item-info.active, button.list-group-item-info.active {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f; }\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3; }\na.list-group-item-warning, button.list-group-item-warning {\n color: #8a6d3b; }\na.list-group-item-warning .list-group-item-heading, button.list-group-item-warning .list-group-item-heading {\n color: inherit; }\na.list-group-item-warning:focus, a.list-group-item-warning:hover, button.list-group-item-warning:focus, button.list-group-item-warning:hover {\n color: #8a6d3b;\n background-color: #faf2cc; }\na.list-group-item-warning.active, button.list-group-item-warning.active {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b; }\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede; }\na.list-group-item-danger, button.list-group-item-danger {\n color: #a94442; }\na.list-group-item-danger .list-group-item-heading, button.list-group-item-danger .list-group-item-heading {\n color: inherit; }\na.list-group-item-danger:focus, a.list-group-item-danger:hover, button.list-group-item-danger:focus, button.list-group-item-danger:hover {\n color: #a94442;\n background-color: #ebcccc; }\na.list-group-item-danger.active, button.list-group-item-danger.active {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442; }\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden; }\n.embed-responsive::before {\n display: block;\n content: \"\"; }\n.embed-responsive .embed-responsive-item, .embed-responsive iframe, .embed-responsive embed, .embed-responsive object, .embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0; }\n.embed-responsive-21by9::before {\n padding-top: 42.85714%; }\n.embed-responsive-16by9::before {\n padding-top: 56.25%; }\n.embed-responsive-4by3::before {\n padding-top: 75%; }\n.embed-responsive-1by1::before {\n padding-top: 100%; }\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5; }\n.close:focus, .close:hover {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n opacity: .75; }\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none; }\n.modal-open {\n overflow: hidden; }\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n outline: 0; }\n.modal.fade .modal-dialog {\n -webkit-transition: -webkit-transform 0.3s ease-out;\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -25%);\n transform: translate(0, -25%); }\n.modal.show .modal-dialog {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0); }\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto; }\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px; }\n.modal-content {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0; }\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000; }\n.modal-backdrop.fade {\n opacity: 0; }\n.modal-backdrop.show {\n opacity: 0.5; }\n.modal-header {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 15px;\n border-bottom: 1px solid #eceeef; }\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5; }\n.modal-body {\n position: relative;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 15px; }\n.modal-footer {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 15px;\n border-top: 1px solid #eceeef; }\n.modal-footer > :not(:first-child) {\n margin-left: .25rem; }\n.modal-footer > :not(:last-child) {\n margin-right: .25rem; }\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll; }\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 30px auto; }\n .modal-sm {\n max-width: 300px; } }\n@media (min-width: 992px) {\n .modal-lg {\n max-width: 800px; } }\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0; }\n.tooltip.show {\n opacity: 0.9; }\n.tooltip.tooltip-top, .tooltip.bs-tether-element-attached-bottom {\n padding: 5px 0;\n margin-top: -3px; }\n.tooltip.tooltip-top .tooltip-inner::before, .tooltip.bs-tether-element-attached-bottom .tooltip-inner::before {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n content: \"\";\n border-width: 5px 5px 0;\n border-top-color: #000; }\n.tooltip.tooltip-right, .tooltip.bs-tether-element-attached-left {\n padding: 0 5px;\n margin-left: 3px; }\n.tooltip.tooltip-right .tooltip-inner::before, .tooltip.bs-tether-element-attached-left .tooltip-inner::before {\n top: 50%;\n left: 0;\n margin-top: -5px;\n content: \"\";\n border-width: 5px 5px 5px 0;\n border-right-color: #000; }\n.tooltip.tooltip-bottom, .tooltip.bs-tether-element-attached-top {\n padding: 5px 0;\n margin-top: 3px; }\n.tooltip.tooltip-bottom .tooltip-inner::before, .tooltip.bs-tether-element-attached-top .tooltip-inner::before {\n top: 0;\n left: 50%;\n margin-left: -5px;\n content: \"\";\n border-width: 0 5px 5px;\n border-bottom-color: #000; }\n.tooltip.tooltip-left, .tooltip.bs-tether-element-attached-right {\n padding: 0 5px;\n margin-left: -3px; }\n.tooltip.tooltip-left .tooltip-inner::before, .tooltip.bs-tether-element-attached-right .tooltip-inner::before {\n top: 50%;\n right: 0;\n margin-top: -5px;\n content: \"\";\n border-width: 5px 0 5px 5px;\n border-left-color: #000; }\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem; }\n.tooltip-inner::before {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid; }\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n padding: 1px;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem; }\n.popover.popover-top, .popover.bs-tether-element-attached-bottom {\n margin-top: -10px; }\n.popover.popover-top::before, .popover.popover-top::after, .popover.bs-tether-element-attached-bottom::before, .popover.bs-tether-element-attached-bottom::after {\n left: 50%;\n border-bottom-width: 0; }\n.popover.popover-top::before, .popover.bs-tether-element-attached-bottom::before {\n bottom: -11px;\n margin-left: -11px;\n border-top-color: rgba(0, 0, 0, 0.25); }\n.popover.popover-top::after, .popover.bs-tether-element-attached-bottom::after {\n bottom: -10px;\n margin-left: -10px;\n border-top-color: #fff; }\n.popover.popover-right, .popover.bs-tether-element-attached-left {\n margin-left: 10px; }\n.popover.popover-right::before, .popover.popover-right::after, .popover.bs-tether-element-attached-left::before, .popover.bs-tether-element-attached-left::after {\n top: 50%;\n border-left-width: 0; }\n.popover.popover-right::before, .popover.bs-tether-element-attached-left::before {\n left: -11px;\n margin-top: -11px;\n border-right-color: rgba(0, 0, 0, 0.25); }\n.popover.popover-right::after, .popover.bs-tether-element-attached-left::after {\n left: -10px;\n margin-top: -10px;\n border-right-color: #fff; }\n.popover.popover-bottom, .popover.bs-tether-element-attached-top {\n margin-top: 10px; }\n.popover.popover-bottom::before, .popover.popover-bottom::after, .popover.bs-tether-element-attached-top::before, .popover.bs-tether-element-attached-top::after {\n left: 50%;\n border-top-width: 0; }\n.popover.popover-bottom::before, .popover.bs-tether-element-attached-top::before {\n top: -11px;\n margin-left: -11px;\n border-bottom-color: rgba(0, 0, 0, 0.25); }\n.popover.popover-bottom::after, .popover.bs-tether-element-attached-top::after {\n top: -10px;\n margin-left: -10px;\n border-bottom-color: #f7f7f7; }\n.popover.popover-bottom .popover-title::before, .popover.bs-tether-element-attached-top .popover-title::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 20px;\n margin-left: -10px;\n content: \"\";\n border-bottom: 1px solid #f7f7f7; }\n.popover.popover-left, .popover.bs-tether-element-attached-right {\n margin-left: -10px; }\n.popover.popover-left::before, .popover.popover-left::after, .popover.bs-tether-element-attached-right::before, .popover.bs-tether-element-attached-right::after {\n top: 50%;\n border-right-width: 0; }\n.popover.popover-left::before, .popover.bs-tether-element-attached-right::before {\n right: -11px;\n margin-top: -11px;\n border-left-color: rgba(0, 0, 0, 0.25); }\n.popover.popover-left::after, .popover.bs-tether-element-attached-right::after {\n right: -10px;\n margin-top: -10px;\n border-left-color: #fff; }\n.popover-title {\n padding: 8px 14px;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-right-radius: calc(0.3rem - 1px);\n border-top-left-radius: calc(0.3rem - 1px); }\n.popover-title:empty {\n display: none; }\n.popover-content {\n padding: 9px 14px; }\n.popover::before, .popover::after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid; }\n.popover::before {\n content: \"\";\n border-width: 11px; }\n.popover::after {\n content: \"\";\n border-width: 10px; }\n.carousel {\n position: relative; }\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden; }\n.carousel-item {\n position: relative;\n display: none;\n width: 100%; }\n@media (-webkit-transform-3d) {\n .carousel-item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n perspective: 1000px; } }\n@supports ((-webkit-transform: translate3d(0, 0, 0)) or (transform: translate3d(0, 0, 0))) {\n .carousel-item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n perspective: 1000px; } }\n.carousel-item.active, .carousel-item-next, .carousel-item-prev {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex; }\n.carousel-item-next, .carousel-item-prev {\n position: absolute;\n top: 0; }\n@media (-webkit-transform-3d) {\n .carousel-item-next.carousel-item-left, .carousel-item-prev.carousel-item-right {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0); }\n .carousel-item-next, .active.carousel-item-right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0); }\n .carousel-item-prev, .active.carousel-item-left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0); } }\n@supports ((-webkit-transform: translate3d(0, 0, 0)) or (transform: translate3d(0, 0, 0))) {\n .carousel-item-next.carousel-item-left, .carousel-item-prev.carousel-item-right {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0); }\n .carousel-item-next, .active.carousel-item-right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0); }\n .carousel-item-prev, .active.carousel-item-left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0); } }\n.carousel-control-prev, .carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5; }\n.carousel-control-prev:focus, .carousel-control-prev:hover, .carousel-control-next:focus, .carousel-control-next:hover {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: .9; }\n.carousel-control-prev {\n left: 0; }\n.carousel-control-next {\n right: 0; }\n.carousel-control-prev-icon, .carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: transparent no-repeat center center;\n background-size: 100% 100%; }\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"); }\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"); }\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none; }\n.carousel-indicators li {\n position: relative;\n -webkit-box-flex: 1;\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n max-width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: rgba(255, 255, 255, 0.5); }\n.carousel-indicators li::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\"; }\n.carousel-indicators li::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\"; }\n.carousel-indicators .active {\n background-color: #fff; }\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center; }\n.align-baseline {\n vertical-align: baseline !important; }\n.align-top {\n vertical-align: top !important; }\n.align-middle {\n vertical-align: middle !important; }\n.align-bottom {\n vertical-align: bottom !important; }\n.align-text-bottom {\n vertical-align: text-bottom !important; }\n.align-text-top {\n vertical-align: text-top !important; }\n.bg-faded {\n background-color: #f7f7f7; }\n.bg-primary {\n background-color: #0275d8 !important; }\na.bg-primary:focus, a.bg-primary:hover {\n background-color: #025aa5 !important; }\n.bg-success {\n background-color: #5cb85c !important; }\na.bg-success:focus, a.bg-success:hover {\n background-color: #449d44 !important; }\n.bg-info {\n background-color: #5bc0de !important; }\na.bg-info:focus, a.bg-info:hover {\n background-color: #31b0d5 !important; }\n.bg-warning {\n background-color: #f0ad4e !important; }\na.bg-warning:focus, a.bg-warning:hover {\n background-color: #ec971f !important; }\n.bg-danger {\n background-color: #d9534f !important; }\na.bg-danger:focus, a.bg-danger:hover {\n background-color: #c9302c !important; }\n.bg-inverse {\n background-color: #292b2c !important; }\na.bg-inverse:focus, a.bg-inverse:hover {\n background-color: #101112 !important; }\n.border-0 {\n border: 0 !important; }\n.border-top-0 {\n border-top: 0 !important; }\n.border-right-0 {\n border-right: 0 !important; }\n.border-bottom-0 {\n border-bottom: 0 !important; }\n.border-left-0 {\n border-left: 0 !important; }\n.rounded {\n border-radius: 0.25rem; }\n.rounded-top {\n border-top-right-radius: 0.25rem;\n border-top-left-radius: 0.25rem; }\n.rounded-right {\n border-bottom-right-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n.rounded-left {\n border-bottom-left-radius: 0.25rem;\n border-top-left-radius: 0.25rem; }\n.rounded-circle {\n border-radius: 50%; }\n.rounded-0 {\n border-radius: 0; }\n.clearfix::after {\n display: block;\n content: \"\";\n clear: both; }\n.d-none {\n display: none !important; }\n.d-inline {\n display: inline !important; }\n.d-inline-block {\n display: inline-block !important; }\n.d-block {\n display: block !important; }\n.d-table {\n display: table !important; }\n.d-table-cell {\n display: table-cell !important; }\n.d-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important; }\n.d-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; }\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important; }\n .d-sm-inline {\n display: inline !important; }\n .d-sm-inline-block {\n display: inline-block !important; }\n .d-sm-block {\n display: block !important; }\n .d-sm-table {\n display: table !important; }\n .d-sm-table-cell {\n display: table-cell !important; }\n .d-sm-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important; }\n .d-sm-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important; }\n .d-md-inline {\n display: inline !important; }\n .d-md-inline-block {\n display: inline-block !important; }\n .d-md-block {\n display: block !important; }\n .d-md-table {\n display: table !important; }\n .d-md-table-cell {\n display: table-cell !important; }\n .d-md-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important; }\n .d-md-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important; }\n .d-lg-inline {\n display: inline !important; }\n .d-lg-inline-block {\n display: inline-block !important; }\n .d-lg-block {\n display: block !important; }\n .d-lg-table {\n display: table !important; }\n .d-lg-table-cell {\n display: table-cell !important; }\n .d-lg-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important; }\n .d-lg-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important; }\n .d-xl-inline {\n display: inline !important; }\n .d-xl-inline-block {\n display: inline-block !important; }\n .d-xl-block {\n display: block !important; }\n .d-xl-table {\n display: table !important; }\n .d-xl-table-cell {\n display: table-cell !important; }\n .d-xl-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important; }\n .d-xl-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important; } }\n.flex-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1; }\n.flex-last {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1; }\n.flex-unordered {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0; }\n.flex-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important; }\n.flex-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important; }\n.flex-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important; }\n.flex-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important; }\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important; }\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important; }\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important; }\n.justify-content-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important; }\n.justify-content-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important; }\n.justify-content-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important; }\n.justify-content-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important; }\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important; }\n.align-items-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important; }\n.align-items-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important; }\n.align-items-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important; }\n.align-items-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important; }\n.align-items-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important; }\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important; }\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important; }\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important; }\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important; }\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important; }\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important; }\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important; }\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important; }\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important; }\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important; }\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important; }\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important; }\n@media (min-width: 576px) {\n .flex-sm-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1; }\n .flex-sm-last {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1; }\n .flex-sm-unordered {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0; }\n .flex-sm-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important; }\n .flex-sm-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important; }\n .flex-sm-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important; }\n .flex-sm-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important; }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important; }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important; }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important; }\n .justify-content-sm-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important; }\n .justify-content-sm-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important; }\n .justify-content-sm-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important; }\n .justify-content-sm-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important; }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important; }\n .align-items-sm-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important; }\n .align-items-sm-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important; }\n .align-items-sm-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important; }\n .align-items-sm-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important; }\n .align-items-sm-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important; }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important; }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important; }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important; }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important; }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important; }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important; }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important; }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important; }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important; }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important; }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important; }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important; } }\n@media (min-width: 768px) {\n .flex-md-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1; }\n .flex-md-last {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1; }\n .flex-md-unordered {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0; }\n .flex-md-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important; }\n .flex-md-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important; }\n .flex-md-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important; }\n .flex-md-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important; }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important; }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important; }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important; }\n .justify-content-md-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important; }\n .justify-content-md-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important; }\n .justify-content-md-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important; }\n .justify-content-md-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important; }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important; }\n .align-items-md-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important; }\n .align-items-md-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important; }\n .align-items-md-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important; }\n .align-items-md-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important; }\n .align-items-md-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important; }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important; }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important; }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important; }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important; }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important; }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important; }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important; }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important; }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important; }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important; }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important; }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important; } }\n@media (min-width: 992px) {\n .flex-lg-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1; }\n .flex-lg-last {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1; }\n .flex-lg-unordered {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0; }\n .flex-lg-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important; }\n .flex-lg-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important; }\n .flex-lg-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important; }\n .flex-lg-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important; }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important; }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important; }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important; }\n .justify-content-lg-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important; }\n .justify-content-lg-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important; }\n .justify-content-lg-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important; }\n .justify-content-lg-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important; }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important; }\n .align-items-lg-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important; }\n .align-items-lg-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important; }\n .align-items-lg-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important; }\n .align-items-lg-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important; }\n .align-items-lg-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important; }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important; }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important; }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important; }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important; }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important; }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important; }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important; }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important; }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important; }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important; }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important; }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important; } }\n@media (min-width: 1200px) {\n .flex-xl-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1; }\n .flex-xl-last {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1; }\n .flex-xl-unordered {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0; }\n .flex-xl-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important; }\n .flex-xl-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important; }\n .flex-xl-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important; }\n .flex-xl-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important; }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important; }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important; }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important; }\n .justify-content-xl-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important; }\n .justify-content-xl-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important; }\n .justify-content-xl-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important; }\n .justify-content-xl-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important; }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important; }\n .align-items-xl-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important; }\n .align-items-xl-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important; }\n .align-items-xl-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important; }\n .align-items-xl-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important; }\n .align-items-xl-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important; }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important; }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important; }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important; }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important; }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important; }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important; }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important; }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important; }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important; }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important; }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important; }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important; } }\n.float-left {\n float: left !important; }\n.float-right {\n float: right !important; }\n.float-none {\n float: none !important; }\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important; }\n .float-sm-right {\n float: right !important; }\n .float-sm-none {\n float: none !important; } }\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important; }\n .float-md-right {\n float: right !important; }\n .float-md-none {\n float: none !important; } }\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important; }\n .float-lg-right {\n float: right !important; }\n .float-lg-none {\n float: none !important; } }\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important; }\n .float-xl-right {\n float: right !important; }\n .float-xl-none {\n float: none !important; } }\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030; }\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030; }\n.sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1030; }\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0; }\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto; }\n.w-25 {\n width: 25% !important; }\n.w-50 {\n width: 50% !important; }\n.w-75 {\n width: 75% !important; }\n.w-100 {\n width: 100% !important; }\n.h-25 {\n height: 25% !important; }\n.h-50 {\n height: 50% !important; }\n.h-75 {\n height: 75% !important; }\n.h-100 {\n height: 100% !important; }\n.mw-100 {\n max-width: 100% !important; }\n.mh-100 {\n max-height: 100% !important; }\n.m-0 {\n margin: 0 0 !important; }\n.mt-0 {\n margin-top: 0 !important; }\n.mr-0 {\n margin-right: 0 !important; }\n.mb-0 {\n margin-bottom: 0 !important; }\n.ml-0 {\n margin-left: 0 !important; }\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n.m-1 {\n margin: 0.25rem 0.25rem !important; }\n.mt-1 {\n margin-top: 0.25rem !important; }\n.mr-1 {\n margin-right: 0.25rem !important; }\n.mb-1 {\n margin-bottom: 0.25rem !important; }\n.ml-1 {\n margin-left: 0.25rem !important; }\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n.m-2 {\n margin: 0.5rem 0.5rem !important; }\n.mt-2 {\n margin-top: 0.5rem !important; }\n.mr-2 {\n margin-right: 0.5rem !important; }\n.mb-2 {\n margin-bottom: 0.5rem !important; }\n.ml-2 {\n margin-left: 0.5rem !important; }\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n.m-3 {\n margin: 1rem 1rem !important; }\n.mt-3 {\n margin-top: 1rem !important; }\n.mr-3 {\n margin-right: 1rem !important; }\n.mb-3 {\n margin-bottom: 1rem !important; }\n.ml-3 {\n margin-left: 1rem !important; }\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n.m-4 {\n margin: 1.5rem 1.5rem !important; }\n.mt-4 {\n margin-top: 1.5rem !important; }\n.mr-4 {\n margin-right: 1.5rem !important; }\n.mb-4 {\n margin-bottom: 1.5rem !important; }\n.ml-4 {\n margin-left: 1.5rem !important; }\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n.m-5 {\n margin: 3rem 3rem !important; }\n.mt-5 {\n margin-top: 3rem !important; }\n.mr-5 {\n margin-right: 3rem !important; }\n.mb-5 {\n margin-bottom: 3rem !important; }\n.ml-5 {\n margin-left: 3rem !important; }\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n.p-0 {\n padding: 0 0 !important; }\n.pt-0 {\n padding-top: 0 !important; }\n.pr-0 {\n padding-right: 0 !important; }\n.pb-0 {\n padding-bottom: 0 !important; }\n.pl-0 {\n padding-left: 0 !important; }\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n.p-1 {\n padding: 0.25rem 0.25rem !important; }\n.pt-1 {\n padding-top: 0.25rem !important; }\n.pr-1 {\n padding-right: 0.25rem !important; }\n.pb-1 {\n padding-bottom: 0.25rem !important; }\n.pl-1 {\n padding-left: 0.25rem !important; }\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n.p-2 {\n padding: 0.5rem 0.5rem !important; }\n.pt-2 {\n padding-top: 0.5rem !important; }\n.pr-2 {\n padding-right: 0.5rem !important; }\n.pb-2 {\n padding-bottom: 0.5rem !important; }\n.pl-2 {\n padding-left: 0.5rem !important; }\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n.p-3 {\n padding: 1rem 1rem !important; }\n.pt-3 {\n padding-top: 1rem !important; }\n.pr-3 {\n padding-right: 1rem !important; }\n.pb-3 {\n padding-bottom: 1rem !important; }\n.pl-3 {\n padding-left: 1rem !important; }\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n.p-4 {\n padding: 1.5rem 1.5rem !important; }\n.pt-4 {\n padding-top: 1.5rem !important; }\n.pr-4 {\n padding-right: 1.5rem !important; }\n.pb-4 {\n padding-bottom: 1.5rem !important; }\n.pl-4 {\n padding-left: 1.5rem !important; }\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n.p-5 {\n padding: 3rem 3rem !important; }\n.pt-5 {\n padding-top: 3rem !important; }\n.pr-5 {\n padding-right: 3rem !important; }\n.pb-5 {\n padding-bottom: 3rem !important; }\n.pl-5 {\n padding-left: 3rem !important; }\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n.m-auto {\n margin: auto !important; }\n.mt-auto {\n margin-top: auto !important; }\n.mr-auto {\n margin-right: auto !important; }\n.mb-auto {\n margin-bottom: auto !important; }\n.ml-auto {\n margin-left: auto !important; }\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; }\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 0 !important; }\n .mt-sm-0 {\n margin-top: 0 !important; }\n .mr-sm-0 {\n margin-right: 0 !important; }\n .mb-sm-0 {\n margin-bottom: 0 !important; }\n .ml-sm-0 {\n margin-left: 0 !important; }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .m-sm-1 {\n margin: 0.25rem 0.25rem !important; }\n .mt-sm-1 {\n margin-top: 0.25rem !important; }\n .mr-sm-1 {\n margin-right: 0.25rem !important; }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important; }\n .ml-sm-1 {\n margin-left: 0.25rem !important; }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .m-sm-2 {\n margin: 0.5rem 0.5rem !important; }\n .mt-sm-2 {\n margin-top: 0.5rem !important; }\n .mr-sm-2 {\n margin-right: 0.5rem !important; }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important; }\n .ml-sm-2 {\n margin-left: 0.5rem !important; }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .m-sm-3 {\n margin: 1rem 1rem !important; }\n .mt-sm-3 {\n margin-top: 1rem !important; }\n .mr-sm-3 {\n margin-right: 1rem !important; }\n .mb-sm-3 {\n margin-bottom: 1rem !important; }\n .ml-sm-3 {\n margin-left: 1rem !important; }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .m-sm-4 {\n margin: 1.5rem 1.5rem !important; }\n .mt-sm-4 {\n margin-top: 1.5rem !important; }\n .mr-sm-4 {\n margin-right: 1.5rem !important; }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important; }\n .ml-sm-4 {\n margin-left: 1.5rem !important; }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .m-sm-5 {\n margin: 3rem 3rem !important; }\n .mt-sm-5 {\n margin-top: 3rem !important; }\n .mr-sm-5 {\n margin-right: 3rem !important; }\n .mb-sm-5 {\n margin-bottom: 3rem !important; }\n .ml-sm-5 {\n margin-left: 3rem !important; }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .p-sm-0 {\n padding: 0 0 !important; }\n .pt-sm-0 {\n padding-top: 0 !important; }\n .pr-sm-0 {\n padding-right: 0 !important; }\n .pb-sm-0 {\n padding-bottom: 0 !important; }\n .pl-sm-0 {\n padding-left: 0 !important; }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .p-sm-1 {\n padding: 0.25rem 0.25rem !important; }\n .pt-sm-1 {\n padding-top: 0.25rem !important; }\n .pr-sm-1 {\n padding-right: 0.25rem !important; }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important; }\n .pl-sm-1 {\n padding-left: 0.25rem !important; }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .p-sm-2 {\n padding: 0.5rem 0.5rem !important; }\n .pt-sm-2 {\n padding-top: 0.5rem !important; }\n .pr-sm-2 {\n padding-right: 0.5rem !important; }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important; }\n .pl-sm-2 {\n padding-left: 0.5rem !important; }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .p-sm-3 {\n padding: 1rem 1rem !important; }\n .pt-sm-3 {\n padding-top: 1rem !important; }\n .pr-sm-3 {\n padding-right: 1rem !important; }\n .pb-sm-3 {\n padding-bottom: 1rem !important; }\n .pl-sm-3 {\n padding-left: 1rem !important; }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .p-sm-4 {\n padding: 1.5rem 1.5rem !important; }\n .pt-sm-4 {\n padding-top: 1.5rem !important; }\n .pr-sm-4 {\n padding-right: 1.5rem !important; }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important; }\n .pl-sm-4 {\n padding-left: 1.5rem !important; }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .p-sm-5 {\n padding: 3rem 3rem !important; }\n .pt-sm-5 {\n padding-top: 3rem !important; }\n .pr-sm-5 {\n padding-right: 3rem !important; }\n .pb-sm-5 {\n padding-bottom: 3rem !important; }\n .pl-sm-5 {\n padding-left: 3rem !important; }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .m-sm-auto {\n margin: auto !important; }\n .mt-sm-auto {\n margin-top: auto !important; }\n .mr-sm-auto {\n margin-right: auto !important; }\n .mb-sm-auto {\n margin-bottom: auto !important; }\n .ml-sm-auto {\n margin-left: auto !important; }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; } }\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 0 !important; }\n .mt-md-0 {\n margin-top: 0 !important; }\n .mr-md-0 {\n margin-right: 0 !important; }\n .mb-md-0 {\n margin-bottom: 0 !important; }\n .ml-md-0 {\n margin-left: 0 !important; }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .m-md-1 {\n margin: 0.25rem 0.25rem !important; }\n .mt-md-1 {\n margin-top: 0.25rem !important; }\n .mr-md-1 {\n margin-right: 0.25rem !important; }\n .mb-md-1 {\n margin-bottom: 0.25rem !important; }\n .ml-md-1 {\n margin-left: 0.25rem !important; }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .m-md-2 {\n margin: 0.5rem 0.5rem !important; }\n .mt-md-2 {\n margin-top: 0.5rem !important; }\n .mr-md-2 {\n margin-right: 0.5rem !important; }\n .mb-md-2 {\n margin-bottom: 0.5rem !important; }\n .ml-md-2 {\n margin-left: 0.5rem !important; }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .m-md-3 {\n margin: 1rem 1rem !important; }\n .mt-md-3 {\n margin-top: 1rem !important; }\n .mr-md-3 {\n margin-right: 1rem !important; }\n .mb-md-3 {\n margin-bottom: 1rem !important; }\n .ml-md-3 {\n margin-left: 1rem !important; }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .m-md-4 {\n margin: 1.5rem 1.5rem !important; }\n .mt-md-4 {\n margin-top: 1.5rem !important; }\n .mr-md-4 {\n margin-right: 1.5rem !important; }\n .mb-md-4 {\n margin-bottom: 1.5rem !important; }\n .ml-md-4 {\n margin-left: 1.5rem !important; }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .m-md-5 {\n margin: 3rem 3rem !important; }\n .mt-md-5 {\n margin-top: 3rem !important; }\n .mr-md-5 {\n margin-right: 3rem !important; }\n .mb-md-5 {\n margin-bottom: 3rem !important; }\n .ml-md-5 {\n margin-left: 3rem !important; }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .p-md-0 {\n padding: 0 0 !important; }\n .pt-md-0 {\n padding-top: 0 !important; }\n .pr-md-0 {\n padding-right: 0 !important; }\n .pb-md-0 {\n padding-bottom: 0 !important; }\n .pl-md-0 {\n padding-left: 0 !important; }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .p-md-1 {\n padding: 0.25rem 0.25rem !important; }\n .pt-md-1 {\n padding-top: 0.25rem !important; }\n .pr-md-1 {\n padding-right: 0.25rem !important; }\n .pb-md-1 {\n padding-bottom: 0.25rem !important; }\n .pl-md-1 {\n padding-left: 0.25rem !important; }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .p-md-2 {\n padding: 0.5rem 0.5rem !important; }\n .pt-md-2 {\n padding-top: 0.5rem !important; }\n .pr-md-2 {\n padding-right: 0.5rem !important; }\n .pb-md-2 {\n padding-bottom: 0.5rem !important; }\n .pl-md-2 {\n padding-left: 0.5rem !important; }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .p-md-3 {\n padding: 1rem 1rem !important; }\n .pt-md-3 {\n padding-top: 1rem !important; }\n .pr-md-3 {\n padding-right: 1rem !important; }\n .pb-md-3 {\n padding-bottom: 1rem !important; }\n .pl-md-3 {\n padding-left: 1rem !important; }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .p-md-4 {\n padding: 1.5rem 1.5rem !important; }\n .pt-md-4 {\n padding-top: 1.5rem !important; }\n .pr-md-4 {\n padding-right: 1.5rem !important; }\n .pb-md-4 {\n padding-bottom: 1.5rem !important; }\n .pl-md-4 {\n padding-left: 1.5rem !important; }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .p-md-5 {\n padding: 3rem 3rem !important; }\n .pt-md-5 {\n padding-top: 3rem !important; }\n .pr-md-5 {\n padding-right: 3rem !important; }\n .pb-md-5 {\n padding-bottom: 3rem !important; }\n .pl-md-5 {\n padding-left: 3rem !important; }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .m-md-auto {\n margin: auto !important; }\n .mt-md-auto {\n margin-top: auto !important; }\n .mr-md-auto {\n margin-right: auto !important; }\n .mb-md-auto {\n margin-bottom: auto !important; }\n .ml-md-auto {\n margin-left: auto !important; }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; } }\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 0 !important; }\n .mt-lg-0 {\n margin-top: 0 !important; }\n .mr-lg-0 {\n margin-right: 0 !important; }\n .mb-lg-0 {\n margin-bottom: 0 !important; }\n .ml-lg-0 {\n margin-left: 0 !important; }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .m-lg-1 {\n margin: 0.25rem 0.25rem !important; }\n .mt-lg-1 {\n margin-top: 0.25rem !important; }\n .mr-lg-1 {\n margin-right: 0.25rem !important; }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important; }\n .ml-lg-1 {\n margin-left: 0.25rem !important; }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .m-lg-2 {\n margin: 0.5rem 0.5rem !important; }\n .mt-lg-2 {\n margin-top: 0.5rem !important; }\n .mr-lg-2 {\n margin-right: 0.5rem !important; }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important; }\n .ml-lg-2 {\n margin-left: 0.5rem !important; }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .m-lg-3 {\n margin: 1rem 1rem !important; }\n .mt-lg-3 {\n margin-top: 1rem !important; }\n .mr-lg-3 {\n margin-right: 1rem !important; }\n .mb-lg-3 {\n margin-bottom: 1rem !important; }\n .ml-lg-3 {\n margin-left: 1rem !important; }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .m-lg-4 {\n margin: 1.5rem 1.5rem !important; }\n .mt-lg-4 {\n margin-top: 1.5rem !important; }\n .mr-lg-4 {\n margin-right: 1.5rem !important; }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important; }\n .ml-lg-4 {\n margin-left: 1.5rem !important; }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .m-lg-5 {\n margin: 3rem 3rem !important; }\n .mt-lg-5 {\n margin-top: 3rem !important; }\n .mr-lg-5 {\n margin-right: 3rem !important; }\n .mb-lg-5 {\n margin-bottom: 3rem !important; }\n .ml-lg-5 {\n margin-left: 3rem !important; }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .p-lg-0 {\n padding: 0 0 !important; }\n .pt-lg-0 {\n padding-top: 0 !important; }\n .pr-lg-0 {\n padding-right: 0 !important; }\n .pb-lg-0 {\n padding-bottom: 0 !important; }\n .pl-lg-0 {\n padding-left: 0 !important; }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .p-lg-1 {\n padding: 0.25rem 0.25rem !important; }\n .pt-lg-1 {\n padding-top: 0.25rem !important; }\n .pr-lg-1 {\n padding-right: 0.25rem !important; }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important; }\n .pl-lg-1 {\n padding-left: 0.25rem !important; }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .p-lg-2 {\n padding: 0.5rem 0.5rem !important; }\n .pt-lg-2 {\n padding-top: 0.5rem !important; }\n .pr-lg-2 {\n padding-right: 0.5rem !important; }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important; }\n .pl-lg-2 {\n padding-left: 0.5rem !important; }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .p-lg-3 {\n padding: 1rem 1rem !important; }\n .pt-lg-3 {\n padding-top: 1rem !important; }\n .pr-lg-3 {\n padding-right: 1rem !important; }\n .pb-lg-3 {\n padding-bottom: 1rem !important; }\n .pl-lg-3 {\n padding-left: 1rem !important; }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .p-lg-4 {\n padding: 1.5rem 1.5rem !important; }\n .pt-lg-4 {\n padding-top: 1.5rem !important; }\n .pr-lg-4 {\n padding-right: 1.5rem !important; }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important; }\n .pl-lg-4 {\n padding-left: 1.5rem !important; }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .p-lg-5 {\n padding: 3rem 3rem !important; }\n .pt-lg-5 {\n padding-top: 3rem !important; }\n .pr-lg-5 {\n padding-right: 3rem !important; }\n .pb-lg-5 {\n padding-bottom: 3rem !important; }\n .pl-lg-5 {\n padding-left: 3rem !important; }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .m-lg-auto {\n margin: auto !important; }\n .mt-lg-auto {\n margin-top: auto !important; }\n .mr-lg-auto {\n margin-right: auto !important; }\n .mb-lg-auto {\n margin-bottom: auto !important; }\n .ml-lg-auto {\n margin-left: auto !important; }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; } }\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 0 !important; }\n .mt-xl-0 {\n margin-top: 0 !important; }\n .mr-xl-0 {\n margin-right: 0 !important; }\n .mb-xl-0 {\n margin-bottom: 0 !important; }\n .ml-xl-0 {\n margin-left: 0 !important; }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important; }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important; }\n .m-xl-1 {\n margin: 0.25rem 0.25rem !important; }\n .mt-xl-1 {\n margin-top: 0.25rem !important; }\n .mr-xl-1 {\n margin-right: 0.25rem !important; }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important; }\n .ml-xl-1 {\n margin-left: 0.25rem !important; }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important; }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important; }\n .m-xl-2 {\n margin: 0.5rem 0.5rem !important; }\n .mt-xl-2 {\n margin-top: 0.5rem !important; }\n .mr-xl-2 {\n margin-right: 0.5rem !important; }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important; }\n .ml-xl-2 {\n margin-left: 0.5rem !important; }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important; }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important; }\n .m-xl-3 {\n margin: 1rem 1rem !important; }\n .mt-xl-3 {\n margin-top: 1rem !important; }\n .mr-xl-3 {\n margin-right: 1rem !important; }\n .mb-xl-3 {\n margin-bottom: 1rem !important; }\n .ml-xl-3 {\n margin-left: 1rem !important; }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important; }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important; }\n .m-xl-4 {\n margin: 1.5rem 1.5rem !important; }\n .mt-xl-4 {\n margin-top: 1.5rem !important; }\n .mr-xl-4 {\n margin-right: 1.5rem !important; }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important; }\n .ml-xl-4 {\n margin-left: 1.5rem !important; }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important; }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important; }\n .m-xl-5 {\n margin: 3rem 3rem !important; }\n .mt-xl-5 {\n margin-top: 3rem !important; }\n .mr-xl-5 {\n margin-right: 3rem !important; }\n .mb-xl-5 {\n margin-bottom: 3rem !important; }\n .ml-xl-5 {\n margin-left: 3rem !important; }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important; }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important; }\n .p-xl-0 {\n padding: 0 0 !important; }\n .pt-xl-0 {\n padding-top: 0 !important; }\n .pr-xl-0 {\n padding-right: 0 !important; }\n .pb-xl-0 {\n padding-bottom: 0 !important; }\n .pl-xl-0 {\n padding-left: 0 !important; }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important; }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important; }\n .p-xl-1 {\n padding: 0.25rem 0.25rem !important; }\n .pt-xl-1 {\n padding-top: 0.25rem !important; }\n .pr-xl-1 {\n padding-right: 0.25rem !important; }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important; }\n .pl-xl-1 {\n padding-left: 0.25rem !important; }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important; }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important; }\n .p-xl-2 {\n padding: 0.5rem 0.5rem !important; }\n .pt-xl-2 {\n padding-top: 0.5rem !important; }\n .pr-xl-2 {\n padding-right: 0.5rem !important; }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important; }\n .pl-xl-2 {\n padding-left: 0.5rem !important; }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important; }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important; }\n .p-xl-3 {\n padding: 1rem 1rem !important; }\n .pt-xl-3 {\n padding-top: 1rem !important; }\n .pr-xl-3 {\n padding-right: 1rem !important; }\n .pb-xl-3 {\n padding-bottom: 1rem !important; }\n .pl-xl-3 {\n padding-left: 1rem !important; }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important; }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important; }\n .p-xl-4 {\n padding: 1.5rem 1.5rem !important; }\n .pt-xl-4 {\n padding-top: 1.5rem !important; }\n .pr-xl-4 {\n padding-right: 1.5rem !important; }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important; }\n .pl-xl-4 {\n padding-left: 1.5rem !important; }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important; }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important; }\n .p-xl-5 {\n padding: 3rem 3rem !important; }\n .pt-xl-5 {\n padding-top: 3rem !important; }\n .pr-xl-5 {\n padding-right: 3rem !important; }\n .pb-xl-5 {\n padding-bottom: 3rem !important; }\n .pl-xl-5 {\n padding-left: 3rem !important; }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important; }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important; }\n .m-xl-auto {\n margin: auto !important; }\n .mt-xl-auto {\n margin-top: auto !important; }\n .mr-xl-auto {\n margin-right: auto !important; }\n .mb-xl-auto {\n margin-bottom: auto !important; }\n .ml-xl-auto {\n margin-left: auto !important; }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important; }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important; } }\n.text-justify {\n text-align: justify !important; }\n.text-nowrap {\n white-space: nowrap !important; }\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n.text-left {\n text-align: left !important; }\n.text-right {\n text-align: right !important; }\n.text-center {\n text-align: center !important; }\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important; }\n .text-sm-right {\n text-align: right !important; }\n .text-sm-center {\n text-align: center !important; } }\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important; }\n .text-md-right {\n text-align: right !important; }\n .text-md-center {\n text-align: center !important; } }\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important; }\n .text-lg-right {\n text-align: right !important; }\n .text-lg-center {\n text-align: center !important; } }\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important; }\n .text-xl-right {\n text-align: right !important; }\n .text-xl-center {\n text-align: center !important; } }\n.text-lowercase {\n text-transform: lowercase !important; }\n.text-uppercase {\n text-transform: uppercase !important; }\n.text-capitalize {\n text-transform: capitalize !important; }\n.font-weight-normal {\n font-weight: normal; }\n.font-weight-bold {\n font-weight: bold; }\n.font-italic {\n font-style: italic; }\n.text-white {\n color: #fff !important; }\n.text-muted {\n color: #636c72 !important; }\na.text-muted:focus, a.text-muted:hover {\n color: #4b5257 !important; }\n.text-primary {\n color: #0275d8 !important; }\na.text-primary:focus, a.text-primary:hover {\n color: #025aa5 !important; }\n.text-success {\n color: #5cb85c !important; }\na.text-success:focus, a.text-success:hover {\n color: #449d44 !important; }\n.text-info {\n color: #5bc0de !important; }\na.text-info:focus, a.text-info:hover {\n color: #31b0d5 !important; }\n.text-warning {\n color: #f0ad4e !important; }\na.text-warning:focus, a.text-warning:hover {\n color: #ec971f !important; }\n.text-danger {\n color: #d9534f !important; }\na.text-danger:focus, a.text-danger:hover {\n color: #c9302c !important; }\n.text-gray-dark {\n color: #292b2c !important; }\na.text-gray-dark:focus, a.text-gray-dark:hover {\n color: #101112 !important; }\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0; }\n.invisible {\n visibility: hidden !important; }\n.hidden-xs-up {\n display: none !important; }\n@media (max-width: 575px) {\n .hidden-xs-down {\n display: none !important; } }\n@media (min-width: 576px) {\n .hidden-sm-up {\n display: none !important; } }\n@media (max-width: 767px) {\n .hidden-sm-down {\n display: none !important; } }\n@media (min-width: 768px) {\n .hidden-md-up {\n display: none !important; } }\n@media (max-width: 991px) {\n .hidden-md-down {\n display: none !important; } }\n@media (min-width: 992px) {\n .hidden-lg-up {\n display: none !important; } }\n@media (max-width: 1199px) {\n .hidden-lg-down {\n display: none !important; } }\n@media (min-width: 1200px) {\n .hidden-xl-up {\n display: none !important; } }\n.hidden-xl-down {\n display: none !important; }\n.visible-print-block {\n display: none !important; }\n@media print {\n .visible-print-block {\n display: block !important; } }\n.visible-print-inline {\n display: none !important; }\n@media print {\n .visible-print-inline {\n display: inline !important; } }\n.visible-print-inline-block {\n display: none !important; }\n@media print {\n .visible-print-inline-block {\n display: inline-block !important; } }\n@media print {\n .hidden-print {\n display: none !important; } }\nhtml {\n font-size: 14px; }\n.wrapper {\n display: grid;\n grid-template-columns: 1fr 4fr;\n grid-auto-rows: minmax(100%, auto);\n height: 100vh; }\n.sidebar {\n background-color: #f6f8fa;\n margin-left: -15px; }\n.main, .sidebar {\n padding: 2rem; }\n.hide {\n display: none !important; }\n.form-body .form-toolbar {\n height: 2rem;\n margin-bottom: 1rem; }\n.form-body .alert {\n margin-top: 1rem; }\ntextarea.form-control {\n line-height: 1.5; }\n", ""]);
|
|
|
|
// exports
|
|
|
|
|
|
/***/ }),
|
|
/* 7 */
|
|
/***/ (function(module, exports) {
|
|
|
|
/*
|
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
Author Tobias Koppers @sokra
|
|
*/
|
|
// css base code, injected by the css-loader
|
|
module.exports = function(useSourceMap) {
|
|
var list = [];
|
|
|
|
// return the list of modules as css string
|
|
list.toString = function toString() {
|
|
return this.map(function (item) {
|
|
var content = cssWithMappingToString(item, useSourceMap);
|
|
if(item[2]) {
|
|
return "@media " + item[2] + "{" + content + "}";
|
|
} else {
|
|
return content;
|
|
}
|
|
}).join("");
|
|
};
|
|
|
|
// import a list of modules into the list
|
|
list.i = function(modules, mediaQuery) {
|
|
if(typeof modules === "string")
|
|
modules = [[null, modules, ""]];
|
|
var alreadyImportedModules = {};
|
|
for(var i = 0; i < this.length; i++) {
|
|
var id = this[i][0];
|
|
if(typeof id === "number")
|
|
alreadyImportedModules[id] = true;
|
|
}
|
|
for(i = 0; i < modules.length; i++) {
|
|
var item = modules[i];
|
|
// skip already imported module
|
|
// this implementation is not 100% perfect for weird media query combinations
|
|
// when a module is imported multiple times with different media queries.
|
|
// I hope this will never occur (Hey this way we have smaller bundles)
|
|
if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
|
|
if(mediaQuery && !item[2]) {
|
|
item[2] = mediaQuery;
|
|
} else if(mediaQuery) {
|
|
item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
|
|
}
|
|
list.push(item);
|
|
}
|
|
}
|
|
};
|
|
return list;
|
|
};
|
|
|
|
function cssWithMappingToString(item, useSourceMap) {
|
|
var content = item[1] || '';
|
|
var cssMapping = item[3];
|
|
if (!cssMapping) {
|
|
return content;
|
|
}
|
|
|
|
if (useSourceMap && typeof btoa === 'function') {
|
|
var sourceMapping = toComment(cssMapping);
|
|
var sourceURLs = cssMapping.sources.map(function (source) {
|
|
return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
|
|
});
|
|
|
|
return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
|
|
}
|
|
|
|
return [content].join('\n');
|
|
}
|
|
|
|
// Adapted from convert-source-map (MIT)
|
|
function toComment(sourceMap) {
|
|
// eslint-disable-next-line no-undef
|
|
var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
|
|
var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
|
|
|
|
return '/*# ' + data + ' */';
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
/* 8 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/*
|
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
Author Tobias Koppers @sokra
|
|
*/
|
|
|
|
var stylesInDom = {};
|
|
|
|
var memoize = function (fn) {
|
|
var memo;
|
|
|
|
return function () {
|
|
if (typeof memo === "undefined") memo = fn.apply(this, arguments);
|
|
return memo;
|
|
};
|
|
};
|
|
|
|
var isOldIE = memoize(function () {
|
|
// Test for IE <= 9 as proposed by Browserhacks
|
|
// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
|
|
// Tests for existence of standard globals is to allow style-loader
|
|
// to operate correctly into non-standard environments
|
|
// @see https://github.com/webpack-contrib/style-loader/issues/177
|
|
return window && document && document.all && !window.atob;
|
|
});
|
|
|
|
var getElement = (function (fn) {
|
|
var memo = {};
|
|
|
|
return function(selector) {
|
|
if (typeof memo[selector] === "undefined") {
|
|
var styleTarget = fn.call(this, selector);
|
|
// Special case to return head of iframe instead of iframe itself
|
|
if (styleTarget instanceof window.HTMLIFrameElement) {
|
|
try {
|
|
// This will throw an exception if access to iframe is blocked
|
|
// due to cross-origin restrictions
|
|
styleTarget = styleTarget.contentDocument.head;
|
|
} catch(e) {
|
|
styleTarget = null;
|
|
}
|
|
}
|
|
memo[selector] = styleTarget;
|
|
}
|
|
return memo[selector]
|
|
};
|
|
})(function (target) {
|
|
return document.querySelector(target)
|
|
});
|
|
|
|
var singleton = null;
|
|
var singletonCounter = 0;
|
|
var stylesInsertedAtTop = [];
|
|
|
|
var fixUrls = __webpack_require__(9);
|
|
|
|
module.exports = function(list, options) {
|
|
if (typeof DEBUG !== "undefined" && DEBUG) {
|
|
if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
|
|
}
|
|
|
|
options = options || {};
|
|
|
|
options.attrs = typeof options.attrs === "object" ? options.attrs : {};
|
|
|
|
// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
|
|
// tags it will allow on a page
|
|
if (!options.singleton && typeof options.singleton !== "boolean") options.singleton = isOldIE();
|
|
|
|
// By default, add <style> tags to the <head> element
|
|
if (!options.insertInto) options.insertInto = "head";
|
|
|
|
// By default, add <style> tags to the bottom of the target
|
|
if (!options.insertAt) options.insertAt = "bottom";
|
|
|
|
var styles = listToStyles(list, options);
|
|
|
|
addStylesToDom(styles, options);
|
|
|
|
return function update (newList) {
|
|
var mayRemove = [];
|
|
|
|
for (var i = 0; i < styles.length; i++) {
|
|
var item = styles[i];
|
|
var domStyle = stylesInDom[item.id];
|
|
|
|
domStyle.refs--;
|
|
mayRemove.push(domStyle);
|
|
}
|
|
|
|
if(newList) {
|
|
var newStyles = listToStyles(newList, options);
|
|
addStylesToDom(newStyles, options);
|
|
}
|
|
|
|
for (var i = 0; i < mayRemove.length; i++) {
|
|
var domStyle = mayRemove[i];
|
|
|
|
if(domStyle.refs === 0) {
|
|
for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();
|
|
|
|
delete stylesInDom[domStyle.id];
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
function addStylesToDom (styles, options) {
|
|
for (var i = 0; i < styles.length; i++) {
|
|
var item = styles[i];
|
|
var domStyle = stylesInDom[item.id];
|
|
|
|
if(domStyle) {
|
|
domStyle.refs++;
|
|
|
|
for(var j = 0; j < domStyle.parts.length; j++) {
|
|
domStyle.parts[j](item.parts[j]);
|
|
}
|
|
|
|
for(; j < item.parts.length; j++) {
|
|
domStyle.parts.push(addStyle(item.parts[j], options));
|
|
}
|
|
} else {
|
|
var parts = [];
|
|
|
|
for(var j = 0; j < item.parts.length; j++) {
|
|
parts.push(addStyle(item.parts[j], options));
|
|
}
|
|
|
|
stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
|
|
}
|
|
}
|
|
}
|
|
|
|
function listToStyles (list, options) {
|
|
var styles = [];
|
|
var newStyles = {};
|
|
|
|
for (var i = 0; i < list.length; i++) {
|
|
var item = list[i];
|
|
var id = options.base ? item[0] + options.base : item[0];
|
|
var css = item[1];
|
|
var media = item[2];
|
|
var sourceMap = item[3];
|
|
var part = {css: css, media: media, sourceMap: sourceMap};
|
|
|
|
if(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});
|
|
else newStyles[id].parts.push(part);
|
|
}
|
|
|
|
return styles;
|
|
}
|
|
|
|
function insertStyleElement (options, style) {
|
|
var target = getElement(options.insertInto)
|
|
|
|
if (!target) {
|
|
throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
|
|
}
|
|
|
|
var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];
|
|
|
|
if (options.insertAt === "top") {
|
|
if (!lastStyleElementInsertedAtTop) {
|
|
target.insertBefore(style, target.firstChild);
|
|
} else if (lastStyleElementInsertedAtTop.nextSibling) {
|
|
target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);
|
|
} else {
|
|
target.appendChild(style);
|
|
}
|
|
stylesInsertedAtTop.push(style);
|
|
} else if (options.insertAt === "bottom") {
|
|
target.appendChild(style);
|
|
} else if (typeof options.insertAt === "object" && options.insertAt.before) {
|
|
var nextSibling = getElement(options.insertInto + " " + options.insertAt.before);
|
|
target.insertBefore(style, nextSibling);
|
|
} else {
|
|
throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");
|
|
}
|
|
}
|
|
|
|
function removeStyleElement (style) {
|
|
if (style.parentNode === null) return false;
|
|
style.parentNode.removeChild(style);
|
|
|
|
var idx = stylesInsertedAtTop.indexOf(style);
|
|
if(idx >= 0) {
|
|
stylesInsertedAtTop.splice(idx, 1);
|
|
}
|
|
}
|
|
|
|
function createStyleElement (options) {
|
|
var style = document.createElement("style");
|
|
|
|
options.attrs.type = "text/css";
|
|
|
|
addAttrs(style, options.attrs);
|
|
insertStyleElement(options, style);
|
|
|
|
return style;
|
|
}
|
|
|
|
function createLinkElement (options) {
|
|
var link = document.createElement("link");
|
|
|
|
options.attrs.type = "text/css";
|
|
options.attrs.rel = "stylesheet";
|
|
|
|
addAttrs(link, options.attrs);
|
|
insertStyleElement(options, link);
|
|
|
|
return link;
|
|
}
|
|
|
|
function addAttrs (el, attrs) {
|
|
Object.keys(attrs).forEach(function (key) {
|
|
el.setAttribute(key, attrs[key]);
|
|
});
|
|
}
|
|
|
|
function addStyle (obj, options) {
|
|
var style, update, remove, result;
|
|
|
|
// If a transform function was defined, run it on the css
|
|
if (options.transform && obj.css) {
|
|
result = options.transform(obj.css);
|
|
|
|
if (result) {
|
|
// If transform returns a value, use that instead of the original css.
|
|
// This allows running runtime transformations on the css.
|
|
obj.css = result;
|
|
} else {
|
|
// If the transform function returns a falsy value, don't add this css.
|
|
// This allows conditional loading of css
|
|
return function() {
|
|
// noop
|
|
};
|
|
}
|
|
}
|
|
|
|
if (options.singleton) {
|
|
var styleIndex = singletonCounter++;
|
|
|
|
style = singleton || (singleton = createStyleElement(options));
|
|
|
|
update = applyToSingletonTag.bind(null, style, styleIndex, false);
|
|
remove = applyToSingletonTag.bind(null, style, styleIndex, true);
|
|
|
|
} else if (
|
|
obj.sourceMap &&
|
|
typeof URL === "function" &&
|
|
typeof URL.createObjectURL === "function" &&
|
|
typeof URL.revokeObjectURL === "function" &&
|
|
typeof Blob === "function" &&
|
|
typeof btoa === "function"
|
|
) {
|
|
style = createLinkElement(options);
|
|
update = updateLink.bind(null, style, options);
|
|
remove = function () {
|
|
removeStyleElement(style);
|
|
|
|
if(style.href) URL.revokeObjectURL(style.href);
|
|
};
|
|
} else {
|
|
style = createStyleElement(options);
|
|
update = applyToTag.bind(null, style);
|
|
remove = function () {
|
|
removeStyleElement(style);
|
|
};
|
|
}
|
|
|
|
update(obj);
|
|
|
|
return function updateStyle (newObj) {
|
|
if (newObj) {
|
|
if (
|
|
newObj.css === obj.css &&
|
|
newObj.media === obj.media &&
|
|
newObj.sourceMap === obj.sourceMap
|
|
) {
|
|
return;
|
|
}
|
|
|
|
update(obj = newObj);
|
|
} else {
|
|
remove();
|
|
}
|
|
};
|
|
}
|
|
|
|
var replaceText = (function () {
|
|
var textStore = [];
|
|
|
|
return function (index, replacement) {
|
|
textStore[index] = replacement;
|
|
|
|
return textStore.filter(Boolean).join('\n');
|
|
};
|
|
})();
|
|
|
|
function applyToSingletonTag (style, index, remove, obj) {
|
|
var css = remove ? "" : obj.css;
|
|
|
|
if (style.styleSheet) {
|
|
style.styleSheet.cssText = replaceText(index, css);
|
|
} else {
|
|
var cssNode = document.createTextNode(css);
|
|
var childNodes = style.childNodes;
|
|
|
|
if (childNodes[index]) style.removeChild(childNodes[index]);
|
|
|
|
if (childNodes.length) {
|
|
style.insertBefore(cssNode, childNodes[index]);
|
|
} else {
|
|
style.appendChild(cssNode);
|
|
}
|
|
}
|
|
}
|
|
|
|
function applyToTag (style, obj) {
|
|
var css = obj.css;
|
|
var media = obj.media;
|
|
|
|
if(media) {
|
|
style.setAttribute("media", media)
|
|
}
|
|
|
|
if(style.styleSheet) {
|
|
style.styleSheet.cssText = css;
|
|
} else {
|
|
while(style.firstChild) {
|
|
style.removeChild(style.firstChild);
|
|
}
|
|
|
|
style.appendChild(document.createTextNode(css));
|
|
}
|
|
}
|
|
|
|
function updateLink (link, options, obj) {
|
|
var css = obj.css;
|
|
var sourceMap = obj.sourceMap;
|
|
|
|
/*
|
|
If convertToAbsoluteUrls isn't defined, but sourcemaps are enabled
|
|
and there is no publicPath defined then lets turn convertToAbsoluteUrls
|
|
on by default. Otherwise default to the convertToAbsoluteUrls option
|
|
directly
|
|
*/
|
|
var autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;
|
|
|
|
if (options.convertToAbsoluteUrls || autoFixUrls) {
|
|
css = fixUrls(css);
|
|
}
|
|
|
|
if (sourceMap) {
|
|
// http://stackoverflow.com/a/26603875
|
|
css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
|
|
}
|
|
|
|
var blob = new Blob([css], { type: "text/css" });
|
|
|
|
var oldSrc = link.href;
|
|
|
|
link.href = URL.createObjectURL(blob);
|
|
|
|
if(oldSrc) URL.revokeObjectURL(oldSrc);
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
/* 9 */
|
|
/***/ (function(module, exports) {
|
|
|
|
|
|
/**
|
|
* When source maps are enabled, `style-loader` uses a link element with a data-uri to
|
|
* embed the css on the page. This breaks all relative urls because now they are relative to a
|
|
* bundle instead of the current page.
|
|
*
|
|
* One solution is to only use full urls, but that may be impossible.
|
|
*
|
|
* Instead, this function "fixes" the relative urls to be absolute according to the current page location.
|
|
*
|
|
* A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.
|
|
*
|
|
*/
|
|
|
|
module.exports = function (css) {
|
|
// get current location
|
|
var location = typeof window !== "undefined" && window.location;
|
|
|
|
if (!location) {
|
|
throw new Error("fixUrls requires window.location");
|
|
}
|
|
|
|
// blank or null?
|
|
if (!css || typeof css !== "string") {
|
|
return css;
|
|
}
|
|
|
|
var baseUrl = location.protocol + "//" + location.host;
|
|
var currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/");
|
|
|
|
// convert each url(...)
|
|
/*
|
|
This regular expression is just a way to recursively match brackets within
|
|
a string.
|
|
|
|
/url\s*\( = Match on the word "url" with any whitespace after it and then a parens
|
|
( = Start a capturing group
|
|
(?: = Start a non-capturing group
|
|
[^)(] = Match anything that isn't a parentheses
|
|
| = OR
|
|
\( = Match a start parentheses
|
|
(?: = Start another non-capturing groups
|
|
[^)(]+ = Match anything that isn't a parentheses
|
|
| = OR
|
|
\( = Match a start parentheses
|
|
[^)(]* = Match anything that isn't a parentheses
|
|
\) = Match a end parentheses
|
|
) = End Group
|
|
*\) = Match anything and then a close parens
|
|
) = Close non-capturing group
|
|
* = Match anything
|
|
) = Close capturing group
|
|
\) = Match a close parens
|
|
|
|
/gi = Get all matches, not the first. Be case insensitive.
|
|
*/
|
|
var fixedCss = css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) {
|
|
// strip quotes (if they exist)
|
|
var unquotedOrigUrl = origUrl
|
|
.trim()
|
|
.replace(/^"(.*)"$/, function(o, $1){ return $1; })
|
|
.replace(/^'(.*)'$/, function(o, $1){ return $1; });
|
|
|
|
// already a full url? no change
|
|
if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(unquotedOrigUrl)) {
|
|
return fullMatch;
|
|
}
|
|
|
|
// convert the url to a full url
|
|
var newUrl;
|
|
|
|
if (unquotedOrigUrl.indexOf("//") === 0) {
|
|
//TODO: should we add protocol?
|
|
newUrl = unquotedOrigUrl;
|
|
} else if (unquotedOrigUrl.indexOf("/") === 0) {
|
|
// path should be relative to the base url
|
|
newUrl = baseUrl + unquotedOrigUrl; // already starts with '/'
|
|
} else {
|
|
// path should be relative to current directory
|
|
newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, ""); // Strip leading './'
|
|
}
|
|
|
|
// send back the fixed url(...)
|
|
return "url(" + JSON.stringify(newUrl) + ")";
|
|
});
|
|
|
|
// send back the fixed css
|
|
return fixedCss;
|
|
};
|
|
|
|
|
|
/***/ }),
|
|
/* 10 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const common = __webpack_require__(11);
|
|
const Database = __webpack_require__(17).Database;
|
|
const frappe = __webpack_require__(0);
|
|
frappe.ui = __webpack_require__(19);
|
|
frappe.view = __webpack_require__(20);
|
|
const Router = __webpack_require__(21).Router;
|
|
|
|
module.exports = {
|
|
async start({server, container}) {
|
|
window.frappe = frappe;
|
|
frappe.init();
|
|
common.init_libs(frappe);
|
|
|
|
frappe.fetch = window.fetch.bind();
|
|
frappe.db = await new Database({server: server});
|
|
|
|
frappe.view.init({container: container});
|
|
frappe.router = new Router();
|
|
await frappe.login();
|
|
}
|
|
};
|
|
|
|
|
|
|
|
/***/ }),
|
|
/* 11 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const utils = __webpack_require__(12);
|
|
const models = __webpack_require__(13);
|
|
const model = __webpack_require__(14);
|
|
const _document = __webpack_require__(3);
|
|
const meta = __webpack_require__(15);
|
|
const _session = __webpack_require__(16);
|
|
|
|
|
|
module.exports = {
|
|
init_libs(frappe) {
|
|
Object.assign(frappe, utils);
|
|
frappe.model = model;
|
|
frappe.models = new models.Models();
|
|
frappe.document = _document;
|
|
frappe.meta = meta;
|
|
frappe._session = _session;
|
|
}
|
|
}
|
|
|
|
/***/ }),
|
|
/* 12 */
|
|
/***/ (function(module, exports) {
|
|
|
|
module.exports = {
|
|
slug(text) {
|
|
return text.toLowerCase().replace(/ /g, '_');
|
|
},
|
|
|
|
async_handler(fn) {
|
|
return (req, res, next) => Promise.resolve(fn(req, res, next))
|
|
.catch(next);
|
|
},
|
|
|
|
async sleep(seconds) {
|
|
return new Promise(resolve => {
|
|
setTimeout(resolve, seconds * 1000);
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
/* 13 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const process = __webpack_require__(2);
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Models {
|
|
constructor() {
|
|
this.data = {doctype: {}};
|
|
this.controllers = {};
|
|
this.meta_classes = {};
|
|
}
|
|
|
|
get(doctype, name) {
|
|
return this.data[frappe.slug(doctype)][frappe.slug(name)];
|
|
}
|
|
|
|
get_controller(doctype) {
|
|
return this.controllers[frappe.slug(doctype)];
|
|
}
|
|
|
|
get_meta_class(doctype) {
|
|
return this.meta_classes[frappe.slug(doctype)] || frappe.meta.Meta;
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = { Models: Models }
|
|
|
|
/***/ }),
|
|
/* 14 */
|
|
/***/ (function(module, exports) {
|
|
|
|
module.exports = {
|
|
standard_fields: [
|
|
{
|
|
fieldname: 'name', fieldtype: 'Data', reqd: 1
|
|
},
|
|
{
|
|
fieldname: 'owner', fieldtype: 'Link', reqd: 1, options: 'User'
|
|
},
|
|
{
|
|
fieldname: 'modified_by', fieldtype: 'Link', reqd: 1, options: 'User'
|
|
},
|
|
{
|
|
fieldname: 'creation', fieldtype: 'Datetime', reqd: 1
|
|
},
|
|
{
|
|
fieldname: 'modified', fieldtype: 'Datetime', reqd: 1
|
|
},
|
|
{
|
|
fieldname: 'docstatus', fieldtype: 'Int', reqd: 1, default: 0
|
|
}
|
|
],
|
|
child_fields: [
|
|
{
|
|
fieldname: 'idx', fieldtype: 'Int', reqd: 1
|
|
},
|
|
{
|
|
fieldname: 'parent', fieldtype: 'Data', reqd: 1
|
|
},
|
|
{
|
|
fieldname: 'parenttype', fieldtype: 'Link', reqd: 1, options: 'DocType'
|
|
},
|
|
{
|
|
fieldname: 'parentfield', fieldtype: 'Data', reqd: 1
|
|
}
|
|
]
|
|
};
|
|
|
|
/***/ }),
|
|
/* 15 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const Document = __webpack_require__(3).Document;
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Meta extends Document {
|
|
constructor(data) {
|
|
super(data);
|
|
this.event_handlers = {};
|
|
this.list_options = {
|
|
fields: ['name', 'modified']
|
|
};
|
|
if (this.setup_meta) {
|
|
this.setup_meta();
|
|
}
|
|
}
|
|
|
|
get_field(fieldname) {
|
|
if (!this.field_map) {
|
|
this.field_map = {};
|
|
for (let df of this.fields) {
|
|
this.field_map[df.fieldname] = df;
|
|
}
|
|
}
|
|
return this.field_map[fieldname];
|
|
}
|
|
|
|
on(key, fn) {
|
|
if (!this.event_handlers[key]) {
|
|
this.event_handlers[key] = [];
|
|
}
|
|
this.event_handlers[key].push(fn);
|
|
}
|
|
|
|
async set(fieldname, value) {
|
|
this[fieldname] = value;
|
|
await this.trigger(fieldname);
|
|
}
|
|
|
|
get(fieldname) {
|
|
return this[fieldname];
|
|
}
|
|
|
|
get_valid_fields() {
|
|
if (!this._valid_fields) {
|
|
this._valid_fields = [];
|
|
|
|
// standard fields
|
|
for (let df of frappe.model.standard_fields) {
|
|
this._valid_fields.push(df);
|
|
}
|
|
|
|
// parent fields
|
|
if (this.istable) {
|
|
for (let df of frappe.model.child_fields) {
|
|
this._valid_fields.push(df);
|
|
}
|
|
}
|
|
|
|
// doctype fields
|
|
for (let df of this.fields) {
|
|
if (frappe.db.type_map[df.fieldtype]) {
|
|
this._valid_fields.push(df);
|
|
}
|
|
}
|
|
}
|
|
|
|
return this._valid_fields;
|
|
}
|
|
|
|
validate_select(df, value) {
|
|
let options = df.options;
|
|
if (typeof options === 'string') {
|
|
// values given as string
|
|
options = df.options.split('\n');
|
|
}
|
|
if (!options.includes(value)) {
|
|
throw new frappe.ValueError(`${value} must be one of ${options.join(", ")}`);
|
|
}
|
|
}
|
|
|
|
async trigger(key, event = {}) {
|
|
|
|
Object.assign(event, {
|
|
doc: this,
|
|
name: key
|
|
});
|
|
|
|
if (this.event_handlers[key]) {
|
|
for (var handler of this.event_handlers[key]) {
|
|
await handler(event);
|
|
}
|
|
}
|
|
}
|
|
|
|
// collections
|
|
async get_list({start, limit=20, filters}) {
|
|
return await frappe.db.get_all({
|
|
doctype: this.name,
|
|
fields: this.list_options.fields,
|
|
filters: filters,
|
|
start: start,
|
|
limit: limit
|
|
});
|
|
}
|
|
|
|
get_row_html(data) {
|
|
return `<a href="/view/${this.name}/${data.name}">${data.name}</a>`;
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = { Meta: Meta }
|
|
|
|
/***/ }),
|
|
/* 16 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Session {
|
|
constructor(user, user_key) {
|
|
this.user = user || 'guest';
|
|
if (this.user !== 'guest') {
|
|
this.login(user_key);
|
|
}
|
|
}
|
|
|
|
login(user_key) {
|
|
// could be password, sessionid, otp
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = { Session: Session };
|
|
|
|
/***/ }),
|
|
/* 17 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
const path = __webpack_require__(18);
|
|
|
|
class RESTClient {
|
|
constructor({server, protocol='http'}) {
|
|
this.server = server;
|
|
this.protocol = protocol;
|
|
|
|
this.init_type_map();
|
|
|
|
this.json_headers = {
|
|
'Accept': 'application/json',
|
|
'Content-Type': 'application/json'
|
|
}
|
|
}
|
|
|
|
connect() {
|
|
|
|
}
|
|
|
|
async insert(doctype, doc) {
|
|
doc.doctype = doctype;
|
|
let url = this.protocol + '://' + path.join(this.server, `/api/resource/${frappe.slug(doctype)}`);
|
|
let response = await frappe.fetch(url, {
|
|
method: 'POST',
|
|
headers: this.json_headers,
|
|
body: JSON.stringify(doc)
|
|
});
|
|
|
|
return await response.json();
|
|
}
|
|
|
|
async get(doctype, name) {
|
|
let url = this.protocol + '://' + path.join(this.server, `/api/resource/${frappe.slug(doctype)}/${name}`);
|
|
let response = await frappe.fetch(url, {
|
|
method: 'GET',
|
|
headers: this.json_headers
|
|
});
|
|
return await response.json();
|
|
}
|
|
|
|
async get_all({doctype, fields, filters, start, limit, sort_by, order}) {
|
|
let url = this.protocol + '://' + path.join(this.server, `/api/resource/${frappe.slug(doctype)}`);
|
|
|
|
url = url + "?" + this.get_query_string({
|
|
fields: JSON.stringify(fields),
|
|
filters: JSON.stringify(filters),
|
|
start: start,
|
|
limit: limit,
|
|
sort_by: sort_by,
|
|
order: order
|
|
});
|
|
|
|
let response = await frappe.fetch(url, {
|
|
method: 'GET',
|
|
headers: this.json_headers
|
|
});
|
|
return await response.json();
|
|
|
|
}
|
|
|
|
async update(doctype, doc) {
|
|
doc.doctype = doctype;
|
|
let url = this.protocol + '://' + path.join(this.server, `/api/resource/${frappe.slug(doctype)}/${doc.name}`);
|
|
let response = await frappe.fetch(url, {
|
|
method: 'PUT',
|
|
headers: this.json_headers,
|
|
body: JSON.stringify(doc)
|
|
});
|
|
|
|
return await response.json();
|
|
}
|
|
|
|
async delete(doctype, name) {
|
|
let url = this.protocol + '://' + path.join(this.server, `/api/resource/${frappe.slug(doctype)}/${name}`);
|
|
|
|
let response = await frappe.fetch(url, {
|
|
method: 'DELETE',
|
|
headers: this.json_headers
|
|
});
|
|
|
|
return await response.json();
|
|
}
|
|
|
|
get_query_string(params) {
|
|
return Object.keys(params)
|
|
.map(k => params[k] != null ? encodeURIComponent(k) + '=' + encodeURIComponent(params[k]) : null)
|
|
.filter(v => v)
|
|
.join('&');
|
|
}
|
|
|
|
init_type_map() {
|
|
this.type_map = {
|
|
'Currency': true
|
|
,'Int': true
|
|
,'Float': true
|
|
,'Percent': true
|
|
,'Check': true
|
|
,'Small Text': true
|
|
,'Long Text': true
|
|
,'Code': true
|
|
,'Text Editor': true
|
|
,'Date': true
|
|
,'Datetime': true
|
|
,'Time': true
|
|
,'Text': true
|
|
,'Data': true
|
|
,'Link': true
|
|
,'Dynamic Link':true
|
|
,'Password': true
|
|
,'Select': true
|
|
,'Read Only': true
|
|
,'Attach': true
|
|
,'Attach Image':true
|
|
,'Signature': true
|
|
,'Color': true
|
|
,'Barcode': true
|
|
,'Geolocation': true
|
|
}
|
|
}
|
|
|
|
close() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = {
|
|
Database: RESTClient
|
|
}
|
|
|
|
/***/ }),
|
|
/* 18 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
// copy of this software and associated documentation files (the
|
|
// "Software"), to deal in the Software without restriction, including
|
|
// without limitation the rights to use, copy, modify, merge, publish,
|
|
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
// persons to whom the Software is furnished to do so, subject to the
|
|
// following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be included
|
|
// in all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
// resolves . and .. elements in a path array with directory names there
|
|
// must be no slashes, empty elements, or device names (c:\) in the array
|
|
// (so also no leading and trailing slashes - it does not distinguish
|
|
// relative and absolute paths)
|
|
function normalizeArray(parts, allowAboveRoot) {
|
|
// if the path tries to go above the root, `up` ends up > 0
|
|
var up = 0;
|
|
for (var i = parts.length - 1; i >= 0; i--) {
|
|
var last = parts[i];
|
|
if (last === '.') {
|
|
parts.splice(i, 1);
|
|
} else if (last === '..') {
|
|
parts.splice(i, 1);
|
|
up++;
|
|
} else if (up) {
|
|
parts.splice(i, 1);
|
|
up--;
|
|
}
|
|
}
|
|
|
|
// if the path is allowed to go above the root, restore leading ..s
|
|
if (allowAboveRoot) {
|
|
for (; up--; up) {
|
|
parts.unshift('..');
|
|
}
|
|
}
|
|
|
|
return parts;
|
|
}
|
|
|
|
// Split a filename into [root, dir, basename, ext], unix version
|
|
// 'root' is just a slash, or nothing.
|
|
var splitPathRe =
|
|
/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
|
|
var splitPath = function(filename) {
|
|
return splitPathRe.exec(filename).slice(1);
|
|
};
|
|
|
|
// path.resolve([from ...], to)
|
|
// posix version
|
|
exports.resolve = function() {
|
|
var resolvedPath = '',
|
|
resolvedAbsolute = false;
|
|
|
|
for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
|
|
var path = (i >= 0) ? arguments[i] : process.cwd();
|
|
|
|
// Skip empty and invalid entries
|
|
if (typeof path !== 'string') {
|
|
throw new TypeError('Arguments to path.resolve must be strings');
|
|
} else if (!path) {
|
|
continue;
|
|
}
|
|
|
|
resolvedPath = path + '/' + resolvedPath;
|
|
resolvedAbsolute = path.charAt(0) === '/';
|
|
}
|
|
|
|
// At this point the path should be resolved to a full absolute path, but
|
|
// handle relative paths to be safe (might happen when process.cwd() fails)
|
|
|
|
// Normalize the path
|
|
resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {
|
|
return !!p;
|
|
}), !resolvedAbsolute).join('/');
|
|
|
|
return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
|
|
};
|
|
|
|
// path.normalize(path)
|
|
// posix version
|
|
exports.normalize = function(path) {
|
|
var isAbsolute = exports.isAbsolute(path),
|
|
trailingSlash = substr(path, -1) === '/';
|
|
|
|
// Normalize the path
|
|
path = normalizeArray(filter(path.split('/'), function(p) {
|
|
return !!p;
|
|
}), !isAbsolute).join('/');
|
|
|
|
if (!path && !isAbsolute) {
|
|
path = '.';
|
|
}
|
|
if (path && trailingSlash) {
|
|
path += '/';
|
|
}
|
|
|
|
return (isAbsolute ? '/' : '') + path;
|
|
};
|
|
|
|
// posix version
|
|
exports.isAbsolute = function(path) {
|
|
return path.charAt(0) === '/';
|
|
};
|
|
|
|
// posix version
|
|
exports.join = function() {
|
|
var paths = Array.prototype.slice.call(arguments, 0);
|
|
return exports.normalize(filter(paths, function(p, index) {
|
|
if (typeof p !== 'string') {
|
|
throw new TypeError('Arguments to path.join must be strings');
|
|
}
|
|
return p;
|
|
}).join('/'));
|
|
};
|
|
|
|
|
|
// path.relative(from, to)
|
|
// posix version
|
|
exports.relative = function(from, to) {
|
|
from = exports.resolve(from).substr(1);
|
|
to = exports.resolve(to).substr(1);
|
|
|
|
function trim(arr) {
|
|
var start = 0;
|
|
for (; start < arr.length; start++) {
|
|
if (arr[start] !== '') break;
|
|
}
|
|
|
|
var end = arr.length - 1;
|
|
for (; end >= 0; end--) {
|
|
if (arr[end] !== '') break;
|
|
}
|
|
|
|
if (start > end) return [];
|
|
return arr.slice(start, end - start + 1);
|
|
}
|
|
|
|
var fromParts = trim(from.split('/'));
|
|
var toParts = trim(to.split('/'));
|
|
|
|
var length = Math.min(fromParts.length, toParts.length);
|
|
var samePartsLength = length;
|
|
for (var i = 0; i < length; i++) {
|
|
if (fromParts[i] !== toParts[i]) {
|
|
samePartsLength = i;
|
|
break;
|
|
}
|
|
}
|
|
|
|
var outputParts = [];
|
|
for (var i = samePartsLength; i < fromParts.length; i++) {
|
|
outputParts.push('..');
|
|
}
|
|
|
|
outputParts = outputParts.concat(toParts.slice(samePartsLength));
|
|
|
|
return outputParts.join('/');
|
|
};
|
|
|
|
exports.sep = '/';
|
|
exports.delimiter = ':';
|
|
|
|
exports.dirname = function(path) {
|
|
var result = splitPath(path),
|
|
root = result[0],
|
|
dir = result[1];
|
|
|
|
if (!root && !dir) {
|
|
// No dirname whatsoever
|
|
return '.';
|
|
}
|
|
|
|
if (dir) {
|
|
// It has a dirname, strip trailing slash
|
|
dir = dir.substr(0, dir.length - 1);
|
|
}
|
|
|
|
return root + dir;
|
|
};
|
|
|
|
|
|
exports.basename = function(path, ext) {
|
|
var f = splitPath(path)[2];
|
|
// TODO: make this comparison case-insensitive on windows?
|
|
if (ext && f.substr(-1 * ext.length) === ext) {
|
|
f = f.substr(0, f.length - ext.length);
|
|
}
|
|
return f;
|
|
};
|
|
|
|
|
|
exports.extname = function(path) {
|
|
return splitPath(path)[3];
|
|
};
|
|
|
|
function filter (xs, f) {
|
|
if (xs.filter) return xs.filter(f);
|
|
var res = [];
|
|
for (var i = 0; i < xs.length; i++) {
|
|
if (f(xs[i], i, xs)) res.push(xs[i]);
|
|
}
|
|
return res;
|
|
}
|
|
|
|
// String.prototype.substr - negative index don't work in IE8
|
|
var substr = 'ab'.substr(-1) === 'b'
|
|
? function (str, start, len) { return str.substr(start, len) }
|
|
: function (str, start, len) {
|
|
if (start < 0) start = str.length + start;
|
|
return str.substr(start, len);
|
|
}
|
|
;
|
|
|
|
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))
|
|
|
|
/***/ }),
|
|
/* 19 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
const Dropdown = __webpack_require__(31);
|
|
|
|
module.exports = {
|
|
add(tag, className, parent) {
|
|
let element = document.createElement(tag);
|
|
if (className) {
|
|
for (let c of className.split(' ')) {
|
|
this.add_class(element, c);
|
|
}
|
|
}
|
|
if (parent) {
|
|
parent.appendChild(element);
|
|
}
|
|
return element;
|
|
},
|
|
|
|
remove(element) {
|
|
element.parentNode.removeChild(element);
|
|
},
|
|
|
|
add_class(element, className) {
|
|
if (element.classList) {
|
|
element.classList.add(className);
|
|
} else {
|
|
element.className += " " + className;
|
|
}
|
|
},
|
|
|
|
remove_class(element, className) {
|
|
if (element.classList) {
|
|
element.classList.remove(className);
|
|
} else {
|
|
element.className = element.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
|
|
}
|
|
},
|
|
|
|
toggle(element, default_display = '') {
|
|
element.style.display = element.style.display === 'none' ? default_display : 'none';
|
|
},
|
|
|
|
make_dropdown(label, parent, btn_class = 'btn-secondary') {
|
|
return new Dropdown({parent: parent, label:label, btn_class:btn_class});
|
|
}
|
|
|
|
}
|
|
|
|
/***/ }),
|
|
/* 20 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
module.exports = {
|
|
init({container, main, sidebar}) {
|
|
frappe.container = container;
|
|
|
|
if (sidebar) {
|
|
frappe.sidebar = sidebar;
|
|
} else {
|
|
frappe.sidebar = frappe.ui.add('div', 'sidebar', frappe.container);
|
|
}
|
|
|
|
if (main) {
|
|
frappe.main = main;
|
|
} else {
|
|
frappe.main = frappe.ui.add('div', 'main', frappe.container);
|
|
}
|
|
},
|
|
|
|
}
|
|
|
|
/***/ }),
|
|
/* 21 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Router {
|
|
constructor() {
|
|
this.current_page = null;
|
|
this.routes = {};
|
|
this.listen();
|
|
}
|
|
|
|
add(route, handler) {
|
|
let page = {handler: handler};
|
|
|
|
// '/todo/:name/:place'.match(/:([^/]+)/g);
|
|
page.param_keys = route.match(/:([^/]+)/g);
|
|
|
|
if (page.param_keys) {
|
|
// make expression
|
|
// '/todo/:name/:place'.replace(/\/:([a-z1-9]+)/g, "\/([a-z0-9]+)");
|
|
page.expression = route.replace(/\/:([a-z1-9]+)/g, "\/([a-z0-9]+)");
|
|
}
|
|
|
|
this.routes[route] = page;
|
|
}
|
|
|
|
listen() {
|
|
window.onhashchange = this.changed.bind(this);
|
|
this.changed();
|
|
}
|
|
|
|
async changed(event) {
|
|
if (window.location.hash.length > 0) {
|
|
const page_name = window.location.hash.substr(1);
|
|
this.show(page_name);
|
|
} else if (this.routes['default']) {
|
|
this.show('default');
|
|
}
|
|
}
|
|
|
|
show(route) {
|
|
if (!route) {
|
|
route = 'default';
|
|
}
|
|
|
|
if (route[0]==='#') {
|
|
route = route.substr(1);
|
|
}
|
|
|
|
let page = this.match(route);
|
|
|
|
if (page) {
|
|
if (typeof page.handler==='function') {
|
|
page.handler(page.params);
|
|
} else {
|
|
page.handler.show(page.params);
|
|
}
|
|
}
|
|
}
|
|
|
|
match(route) {
|
|
for(let key in this.routes) {
|
|
let page = this.routes[key];
|
|
|
|
if (page.param_keys) {
|
|
let matches = route.match(new RegExp(page.expression));
|
|
if (matches && matches.length == page.param_keys.length + 1) {
|
|
let params = {}
|
|
for (let i=0; i < page.param_keys.length; i++) {
|
|
params[page.param_keys[i].substr(1)] = matches[i + 1];
|
|
}
|
|
return {handler:page.handler, params: params};
|
|
}
|
|
|
|
} else {
|
|
if (key === route) {
|
|
return {handler:page.handler};
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = {Router: Router};
|
|
|
|
/***/ }),
|
|
/* 22 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class ListView {
|
|
constructor({doctype, parent, fields}) {
|
|
this.doctype = doctype;
|
|
this.parent = parent;
|
|
this.fields = fields;
|
|
|
|
this.meta = frappe.get_meta(this.doctype);
|
|
|
|
this.start = 0;
|
|
this.page_length = 20;
|
|
|
|
this.body = null;
|
|
this.rows = [];
|
|
}
|
|
|
|
async run() {
|
|
this.make_body();
|
|
let data = await this.meta.get_list({
|
|
start:this.start,
|
|
limit:this.page_length
|
|
});
|
|
|
|
for (let i=0; i< data.length; i++) {
|
|
this.render_row(this.start + i, data[i]);
|
|
}
|
|
|
|
this.clear_empty_rows(data.length);
|
|
}
|
|
|
|
make_body() {
|
|
if (!this.body) {
|
|
this.body = frappe.ui.add('div', 'list-body', this.parent);
|
|
}
|
|
}
|
|
|
|
render_row(i, data) {
|
|
let row = this.get_row(i);
|
|
row.innerHTML = this.meta.get_row_html(data);
|
|
}
|
|
|
|
get_row(i) {
|
|
if (!this.rows[i]) {
|
|
this.rows[i] = frappe.ui.add('div', 'list-row', this.body);
|
|
}
|
|
return this.rows[i];
|
|
}
|
|
|
|
clear_empty_rows(start) {
|
|
if (this.rows.length > start) {
|
|
for (let i=start; i < this.rows.length; i++) {
|
|
let row = this.get_row(i);
|
|
row.innerHTML = '';
|
|
}
|
|
}
|
|
}
|
|
|
|
};
|
|
|
|
module.exports = {
|
|
ListView: ListView
|
|
};
|
|
|
|
/***/ }),
|
|
/* 23 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Page {
|
|
constructor(title) {
|
|
this.handlers = {};
|
|
this.title = title;
|
|
this.make();
|
|
}
|
|
|
|
make() {
|
|
this.body = frappe.ui.add('div', 'page hide', frappe.main);
|
|
}
|
|
|
|
hide() {
|
|
frappe.ui.add_class(this.body, 'hide');
|
|
|
|
this.trigger('hide');
|
|
}
|
|
|
|
show(params) {
|
|
if (frappe.router.current_page) {
|
|
frappe.router.current_page.hide();
|
|
}
|
|
frappe.ui.remove_class(this.body, 'hide');
|
|
frappe.router.current_page = this;
|
|
document.title = this.title;
|
|
|
|
this.trigger('show', params);
|
|
}
|
|
|
|
on(event, fn) {
|
|
if (!this.handlers[event]) this.handlers.event = [];
|
|
this.handlers[event].push(fn);
|
|
}
|
|
|
|
trigger(event, params) {
|
|
if (this.handlers[event]) {
|
|
for (let handler of this.handlers[event]) {
|
|
handler(params);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = { Page: Page };
|
|
|
|
/***/ }),
|
|
/* 24 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
const controls = __webpack_require__(25);
|
|
|
|
class Form {
|
|
constructor({doctype, parent, submit_label='Submit'}) {
|
|
this.parent = parent;
|
|
this.doctype = doctype;
|
|
this.submit_label = submit_label;
|
|
|
|
this.controls = {};
|
|
this.controls_list = [];
|
|
|
|
this.meta = frappe.get_meta(this.doctype);
|
|
this.make();
|
|
}
|
|
|
|
make() {
|
|
if (this.body || !this.parent) {
|
|
return;
|
|
}
|
|
|
|
this.body = frappe.ui.add('div', 'form-body', this.parent);
|
|
this.make_actions();
|
|
|
|
this.form = frappe.ui.add('form', null, this.body);
|
|
for(let df of this.meta.fields) {
|
|
if (controls.get_control_class(df.fieldtype)) {
|
|
let control = controls.make_control(df, this.form);
|
|
this.controls_list.push(control);
|
|
this.controls[df.fieldname] = control;
|
|
}
|
|
}
|
|
this.make_submit();
|
|
}
|
|
|
|
make_actions() {
|
|
this.toolbar = frappe.ui.add('div', 'form-toolbar', this.body);
|
|
this.actions = frappe.ui.make_dropdown('Actions', this.toolbar);
|
|
|
|
// delete
|
|
this.actions.add_item('Delete', async () => {
|
|
await this.doc.delete();
|
|
this.show_alert('Deleted', 'success');
|
|
});
|
|
|
|
this.actions.float_right();
|
|
}
|
|
|
|
make_submit() {
|
|
this.submit_btn = frappe.ui.add('button', 'btn btn-outline-primary',
|
|
this.body);
|
|
this.submit_btn.setAttribute('type', 'submit');
|
|
this.submit_btn.textContent = this.submit_label;
|
|
this.submit_btn.addEventListener('click', (event) => {
|
|
this.submit();
|
|
event.preventDefault();
|
|
})
|
|
}
|
|
|
|
show_alert(message, type) {
|
|
this.clear_alert();
|
|
this.alert = frappe.ui.add('div', `alert alert-${type}`, this.body);
|
|
this.alert.textContent = message;
|
|
}
|
|
|
|
clear_alert() {
|
|
if (this.alert) {
|
|
frappe.ui.remove(this.alert);
|
|
this.alert = null;
|
|
}
|
|
}
|
|
|
|
async use(doc, is_new = false) {
|
|
if (this.doc) {
|
|
// clear handlers of outgoing doc
|
|
this.doc.clear_handlers();
|
|
}
|
|
this.clear_alert();
|
|
this.doc = doc;
|
|
this.is_new = is_new;
|
|
for (let control of this.controls_list) {
|
|
control.bind(this.doc);
|
|
}
|
|
}
|
|
|
|
async submit() {
|
|
try {
|
|
if (this.is_new) {
|
|
await this.doc.insert();
|
|
} else {
|
|
await this.doc.update();
|
|
}
|
|
await this.refresh();
|
|
this.show_alert('Saved', 'success');
|
|
} catch (e) {
|
|
this.show_alert('Failed', 'danger');
|
|
}
|
|
}
|
|
|
|
refresh() {
|
|
for(let control of this.controls_list) {
|
|
control.refresh();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = {Form: Form};
|
|
|
|
/***/ }),
|
|
/* 25 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const control_classes = {
|
|
Data: __webpack_require__(26),
|
|
Text: __webpack_require__(27),
|
|
Select: __webpack_require__(28)
|
|
}
|
|
|
|
|
|
module.exports = {
|
|
get_control_class(fieldtype) {
|
|
return control_classes[fieldtype];
|
|
},
|
|
make_control(field, parent) {
|
|
const control_class = this.get_control_class(field.fieldtype);
|
|
let control = new control_class(field, parent);
|
|
control.make();
|
|
return control;
|
|
}
|
|
}
|
|
|
|
/***/ }),
|
|
/* 26 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const BaseControl = __webpack_require__(1);
|
|
|
|
class DataControl extends BaseControl {
|
|
make() {
|
|
super.make();
|
|
this.input.setAttribute('type', 'text');
|
|
}
|
|
};
|
|
|
|
module.exports = DataControl;
|
|
|
|
/***/ }),
|
|
/* 27 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const BaseControl = __webpack_require__(1);
|
|
|
|
class TextControl extends BaseControl {
|
|
make_input() {
|
|
this.input = frappe.ui.add('textarea', 'form-control', this.form_group);
|
|
}
|
|
make() {
|
|
super.make();
|
|
this.input.setAttribute('rows', '8');
|
|
}
|
|
};
|
|
|
|
module.exports = TextControl;
|
|
|
|
/***/ }),
|
|
/* 28 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const BaseControl = __webpack_require__(1);
|
|
|
|
class SelectControl extends BaseControl {
|
|
make_input() {
|
|
this.input = frappe.ui.add('select', 'form-control', this.form_group);
|
|
|
|
let options = this.options;
|
|
if (typeof options==='string') {
|
|
options = options.split('\n');
|
|
}
|
|
|
|
for (let value of options) {
|
|
let option = frappe.ui.add('option', null, this.input);
|
|
option.textContent = value;
|
|
option.setAttribute('value', value);
|
|
}
|
|
}
|
|
make() {
|
|
super.make();
|
|
this.input.setAttribute('row', '3');
|
|
}
|
|
};
|
|
|
|
module.exports = SelectControl;
|
|
|
|
/***/ }),
|
|
/* 29 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class todo_meta extends frappe.meta.Meta {
|
|
setup_meta() {
|
|
Object.assign(this, __webpack_require__(30));
|
|
this.name = 'ToDo';
|
|
this.list_options.fields = ['name', 'subject', 'status', 'description'];
|
|
}
|
|
|
|
get_row_html(data) {
|
|
return `<a href="#edit/todo/${data.name}">${data.subject}</a>`;
|
|
}
|
|
|
|
}
|
|
|
|
class todo extends frappe.document.Document {
|
|
setup() {
|
|
this.add_handler('validate');
|
|
}
|
|
validate() {
|
|
if (!this.status) {
|
|
this.status = 'Open';
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
todo: todo,
|
|
todo_meta: todo_meta
|
|
};
|
|
|
|
|
|
/***/ }),
|
|
/* 30 */
|
|
/***/ (function(module, exports) {
|
|
|
|
module.exports = {"autoname":"hash","name":"ToDo","doctype":"DocType","issingle":0,"fields":[{"fieldname":"subject","label":"Subject","fieldtype":"Data","reqd":1},{"fieldname":"description","label":"Description","fieldtype":"Text"},{"fieldname":"status","label":"Status","fieldtype":"Select","options":["Open","Closed"],"default":"Open","reqd":1}]}
|
|
|
|
/***/ }),
|
|
/* 31 */
|
|
/***/ (function(module, exports, __webpack_require__) {
|
|
|
|
const frappe = __webpack_require__(0);
|
|
|
|
class Dropdown {
|
|
constructor({parent, label, btn_class = 'btn-secondary', items = []}) {
|
|
Object.assign(this, arguments[0]);
|
|
|
|
this.dropdown_items = [];
|
|
this.setup_background_click();
|
|
this.make();
|
|
|
|
// init items
|
|
if (this.items) {
|
|
for (item of this.items) {
|
|
this.add_item(item.label, item.action);
|
|
}
|
|
}
|
|
}
|
|
|
|
setup_background_click() {
|
|
if (!document.dropdown_setup) {
|
|
frappe.dropdowns = [];
|
|
// setup hiding all dropdowns on click
|
|
document.addEventListener('click', (event) => {
|
|
for (let d of frappe.dropdowns) {
|
|
if (d.button !== event.target) {
|
|
d.collapse();
|
|
}
|
|
}
|
|
});
|
|
document.dropdown_setup = true;
|
|
}
|
|
frappe.dropdowns.push(this);
|
|
}
|
|
|
|
make() {
|
|
this.dropdown = frappe.ui.add('div', 'dropdown', this.parent);
|
|
this.make_button();
|
|
this.dropdown_menu = frappe.ui.add('div', 'dropdown-menu', this.dropdown);
|
|
}
|
|
|
|
make_button() {
|
|
this.button = frappe.ui.add('button', 'btn ' + this.btn_class,
|
|
this.dropdown);
|
|
frappe.ui.add_class(this.button, 'dropdown-toggle');
|
|
this.button.textContent = this.label;
|
|
this.button.addEventListener('click', () => {
|
|
this.toggle();
|
|
});
|
|
}
|
|
|
|
expand() {
|
|
this.dropdown.classList.add('show');
|
|
this.dropdown_menu.classList.add('show');
|
|
}
|
|
|
|
collapse() {
|
|
this.dropdown.classList.remove('show');
|
|
this.dropdown_menu.classList.remove('show');
|
|
}
|
|
|
|
toggle() {
|
|
this.dropdown.classList.toggle('show');
|
|
this.dropdown_menu.classList.toggle('show');
|
|
}
|
|
|
|
add_item(label, action) {
|
|
let item = frappe.ui.add('a', 'dropdown-item', this.dropdown_menu);
|
|
item.textContent = label;
|
|
if (typeof action === 'string') {
|
|
item.src = action;
|
|
item.addEventListener('click', () => {
|
|
this.toggle();
|
|
});
|
|
} else {
|
|
item.addEventListener('click', async () => {
|
|
await action();
|
|
this.toggle();
|
|
});
|
|
}
|
|
this.dropdown_items.push(item);
|
|
}
|
|
|
|
float_right() {
|
|
frappe.ui.add_class(this.dropdown, 'float-right');
|
|
frappe.ui.add_class(this.dropdown_menu, 'dropdown-menu-right');
|
|
}
|
|
}
|
|
|
|
module.exports = Dropdown;
|
|
|
|
/***/ })
|
|
/******/ ]);
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAgZmE0MzJjY2ZkOGI2YzU0Y2ZjM2YiLCJ3ZWJwYWNrOi8vLy4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2NvbnRyb2xzL2Jhc2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL21vZGVsL2RvY3VtZW50LmpzIiwid2VicGFjazovLy8uL2luZGV4LmpzIiwid2VicGFjazovLy8uL3Njc3MvbWFpbi5zY3NzPzE5ZGEiLCJ3ZWJwYWNrOi8vLy4vc2Nzcy9tYWluLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2xpYi91cmxzLmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L2luZGV4LmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY29tbW9uL2luZGV4LmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9tb2RlbC9tb2RlbHMuanMiLCJ3ZWJwYWNrOi8vLy4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9tb2RlbC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL21vZGVsL21ldGEuanMiLCJ3ZWJwYWNrOi8vLy4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9zZXNzaW9uLmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvYmFja2VuZHMvcmVzdF9jbGllbnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3BhdGgtYnJvd3NlcmlmeS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC91aS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2luZGV4LmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvcm91dGVyLmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvbGlzdC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L3BhZ2UuanMiLCJ3ZWJwYWNrOi8vLy4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvdmlldy9mb3JtLmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvY29udHJvbHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvdmlldy9jb250cm9scy9kYXRhLmpzIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvY29udHJvbHMvdGV4dC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2NvbnRyb2xzL3NlbGVjdC5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL21vZGVscy9kb2N0eXBlL3RvZG8vdG9kby5qcyIsIndlYnBhY2s6Ly8vLi4vZnJhcHBlLWNvcmUvZnJhcHBlL21vZGVscy9kb2N0eXBlL3RvZG8vdG9kby5qc29uIiwid2VicGFjazovLy8uLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3VpL2Ryb3Bkb3duLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUNBQTJCLDBCQUEwQixFQUFFO0FBQ3ZELHlDQUFpQyxlQUFlO0FBQ2hEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDhEQUFzRCwrREFBK0Q7O0FBRXJIO0FBQ0E7O0FBRUE7QUFDQTs7Ozs7OztBQzdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQSx5Q0FBeUM7QUFDekMsRUFBRTs7QUFFRjtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHlCQUF5QjtBQUM1RDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNwRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNkI7Ozs7OztBQ3BHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLHNCQUFzQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEscUNBQXFDOztBQUVyQztBQUNBO0FBQ0E7O0FBRUEsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixVQUFVOzs7Ozs7O0FDdkx0Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQkFB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a0Msa0NBQWtDLDJCQUEyQixFQUFFLGVBQWUsMEJBQTBCLDRCQUE0Qiw0QkFBNEIscUJBQXFCLEVBQUUsZUFBZSwwQkFBMEIsa0NBQWtDLGtDQUFrQywyQkFBMkIsRUFBRSxlQUFlLDBCQUEwQixrQ0FBa0Msa0NBQWtDLDJCQUEyQixFQUFFLGVBQWUsMEJBQTBCLDRCQUE0Qiw0QkFBNEIscUJBQXFCLEVBQUUsZUFBZSwwQkFBMEIsa0NBQWtDLGtDQUFrQywyQkFBMkIsRUFBRSxlQUFlLDBCQUEwQixrQ0FBa0Msa0NBQWtDLDJCQUEyQixFQUFFLGVBQWUsMEJBQTBCLDRCQUE0Qiw0QkFBNEIscUJBQXFCLEVBQUUsZ0JBQWdCLDBCQUEwQixrQ0FBa0Msa0NBQWtDLDJCQUEyQixFQUFFLGdCQUFnQiwwQkFBMEIsa0NBQWtDLGtDQUFrQywyQkFBMkIsRUFBRSxnQkFBZ0IsMEJBQTBCLDZCQUE2Qiw2QkFBNkIsc0JBQXNCLEVBQUUsZ0JBQWdCLGtCQUFrQixFQUFFLGdCQUFnQixzQkFBc0IsRUFBRSxnQkFBZ0IsdUJBQXVCLEVBQUUsZ0JBQWdCLGlCQUFpQixFQUFFLGdCQUFnQix1QkFBdUIsRUFBRSxnQkFBZ0IsdUJBQXVCLEVBQUUsZ0JBQWdCLGlCQUFpQixFQUFFLGdCQUFnQix1QkFBdUIsRUFBRSxnQkFBZ0IsdUJBQXVCLEVBQUUsZ0JBQWdCLGlCQUFpQixFQUFFLGlCQUFpQix1QkFBdUIsRUFBRSxpQkFBaUIsdUJBQXVCLEVBQUUsaUJBQWlCLGtCQUFrQixFQUFFLGdCQUFnQixpQkFBaUIsRUFBRSxnQkFBZ0IscUJBQXFCLEVBQUUsZ0JBQWdCLHNCQUFzQixFQUFFLGdCQUFnQixnQkFBZ0IsRUFBRSxnQkFBZ0Isc0JBQXNCLEVBQUUsZ0JBQWdCLHNCQUFzQixFQUFFLGdCQUFnQixnQkFBZ0IsRUFBRSxnQkFBZ0Isc0JBQXNCLEVBQUUsZ0JBQWdCLHNCQUFzQixFQUFFLGdCQUFnQixnQkFBZ0IsRUFBRSxpQkFBaUIsc0JBQXNCLEVBQUUsaUJBQWlCLHNCQUFzQixFQUFFLGlCQUFpQixpQkFBaUIsRUFB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MkJBQTJCLEVBQUUsZUFBZSwwQkFBMEIsNEJBQTRCLDRCQUE0QixxQkFBcUIsRUFBRSxlQUFlLDBCQUEwQixrQ0FBa0Msa0NBQWtDLDJCQUEyQixFQUFFLGVBQWUsMEJBQTBCLGtDQUFrQyxrQ0FBa0MsMkJBQTJCLEVBQUUsZUFBZSwwQkFBMEIsNEJBQTRCLDRCQUE0QixxQkFBcUIsRUFBRSxnQkFBZ0IsMEJBQTBCLGtDQUFrQyxrQ0FBa0MsMkJBQTJCLEVBQUUsZ0JBQWdCLDBCQUEwQixrQ0FBa0Msa0NBQWtDLDJCQUEyQixFQUFFLGdCQUFnQiwwQkFBMEIsNkJBQTZCLDZCQUE2QixzQkFBc0IsRUFBRSxnQkFBZ0Isa0JBQWtCLEVBQUUsZ0JBQWdCLHNCQUFzQixFQUFFLGdCQUFnQix1QkFBdUIsRUFBRSxnQkFBZ0IsaUJBQWlCLEVBQUUsZ0JBQWdCLHVCQUF1QixFQUFFLGdCQUFnQix1QkFBdUIsRUFBRSxnQkFBZ0IsaUJBQWlCLEVBQUUsZ0JBQWdCLHVCQUF1QixFQUFFLGdCQUFnQix1QkFBdUIsRUFBRSxnQkFBZ0IsaUJBQWlCLEVBQUUsaUJBQWlCLHVCQUF1QixFQUFFLGlCQUFpQix1QkFBdUIsRUFBRSxpQkFBaUIsa0JBQWtCLEVBQUUsZ0JBQWdCLGlCQUFpQixFQUFFLGdCQUFnQixxQkFBcUIsRUFBRSxnQkFBZ0Isc0JBQXNCLEVBQUUsZ0JBQWdCLGdCQUFnQixFQUFFLGdCQUFnQixzQkFBc0IsRUFBRSxnQkFBZ0Isc0JBQXNCLEVBQUUsZ0JBQWdCLGdCQUFnQixFQUFFLGdCQUFnQixzQkFBc0IsRUFBRSxnQkFBZ0Isc0JBQXNCLEVBQUUsZ0JBQWdCLGdCQUFnQixFQUFFLGlCQUFpQixzQkFBc0IsRUFBRSxpQkFBaUIsc0JBQXNCLEVBQUUsaUJBQWlCLGlCQUFpQixFQUFFLGtCQUFrQixzQkFBc0IsRUFBRSxrQkFBa0IsNEJBQTRCLEVBQUUsa0JBQWtCLDZCQUE2QixFQUFFLGtCQUFrQix1QkFBdUIsRUFBRSxrQkFBa0IsNkJBQTZCLEVBQUUsa0JBQWtCLDZCQUE2QixFQUFFLGtCQUFrQix1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Q0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsdURBQXVEO0FBQ3ZEOztBQUVBLDZCQUE2QixtQkFBbUI7O0FBRWhEOztBQUVBOztBQUVBO0FBQ0E7Ozs7Ozs7O0FDNVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7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QUFDL0I7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxvQkFBb0Isc0JBQXNCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEU7Ozs7OztBQzlEQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLGM7Ozs7OztBQzVDbEI7QUFDQTs7QUFFQTtBQUNBLGNBQWMsdUNBQXVDO0FBQ3JEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQSxtREFBbUQsS0FBSztBQUN4RDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsa0JBQWtCLFk7Ozs7OztBQzNHbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEM7Ozs7OztBQ2pCQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNkI7Ozs7OztBQ1RBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw2Qjs7Ozs7O0FDWkE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsK0I7Ozs7OztBQ3ZCQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQ0FBZ0MsVUFBVSxJQUFJLGFBQWE7QUFDM0Q7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUM3QkEsa0JBQWtCLDRFQUE0RSxvRUFBb0UsRUFBRSxtRUFBbUUsRUFBRSxpSEFBaUgsRTs7Ozs7O0FDQTFWOztBQUVBO0FBQ0EsY0FBYyx1REFBdUQ7QUFDckU7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwwQiIsImZpbGUiOiIuL2pzL2J1bmRsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGdldHRlclxuIFx0XHRcdH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9cIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA0KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCBmYTQzMmNjZmQ4YjZjNTRjZmMzZiIsIm1vZHVsZS5leHBvcnRzID0ge1xuXHRhc3luYyBpbml0KCkge1xuXHRcdGlmICh0aGlzLl9pbml0aWFsaXplZCkgcmV0dXJuO1xuXHRcdHRoaXMuaW5pdF9jb25maWcoKTtcblx0XHR0aGlzLmluaXRfZXJyb3JzKCk7XG5cdFx0dGhpcy5pbml0X2dsb2JhbHMoKTtcblx0XHR0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7XG5cdH0sXG5cblx0aW5pdF9jb25maWcoKSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRiYWNrZW5kOiAnc3FsaXRlJyxcblx0XHRcdHBvcnQ6IDgwMDBcblx0XHR9O1xuXHR9LFxuXG5cdGluaXRfZXJyb3JzKCkge1xuXHRcdHRoaXMuVmFsdWVFcnJvciA9IGNsYXNzIGV4dGVuZHMgRXJyb3IgeyB9O1xuXHR9LFxuXG5cdGluaXRfZ2xvYmFscygpIHtcblx0XHR0aGlzLm1ldGFfY2FjaGUgPSB7fTtcblx0fSxcblxuXHRnZXRfbWV0YShkb2N0eXBlKSB7XG5cdFx0aWYgKCF0aGlzLm1ldGFfY2FjaGVbZG9jdHlwZV0pIHtcblx0XHRcdHRoaXMubWV0YV9jYWNoZVtkb2N0eXBlXSA9IG5ldyAodGhpcy5tb2RlbHMuZ2V0X21ldGFfY2xhc3MoZG9jdHlwZSkpKHRoaXMubW9kZWxzLmdldCgnRG9jVHlwZScsIGRvY3R5cGUpKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMubWV0YV9jYWNoZVtkb2N0eXBlXTtcblx0fSxcblxuXHRpbml0X2NvbnRyb2xsZXIoZG9jdHlwZSwgbW9kdWxlKSB7XG5cdFx0ZG9jdHlwZSA9IHRoaXMuc2x1Zyhkb2N0eXBlKTtcblx0XHR0aGlzLm1vZGVscy5jb250cm9sbGVyc1tkb2N0eXBlXSA9IG1vZHVsZVtkb2N0eXBlXTtcblx0XHR0aGlzLm1vZGVscy5tZXRhX2NsYXNzZXNbZG9jdHlwZV0gPSBtb2R1bGVbZG9jdHlwZSArICdfbWV0YSddO1xuXHR9LFxuXG5cdGFzeW5jIGdldF9kb2MoZGF0YSwgbmFtZSkge1xuXHRcdGlmICh0eXBlb2YgZGF0YT09PSdzdHJpbmcnICYmIHR5cGVvZiBuYW1lPT09J3N0cmluZycpIHtcblx0XHRcdGxldCBjb250cm9sbGVyX2NsYXNzID0gdGhpcy5tb2RlbHMuZ2V0X2NvbnRyb2xsZXIoZGF0YSk7XG5cdFx0XHR2YXIgZG9jID0gbmV3IGNvbnRyb2xsZXJfY2xhc3Moe2RvY3R5cGU6ZGF0YSwgbmFtZTogbmFtZX0pO1xuXHRcdFx0YXdhaXQgZG9jLmxvYWQoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bGV0IGNvbnRyb2xsZXJfY2xhc3MgPSB0aGlzLm1vZGVscy5nZXRfY29udHJvbGxlcihkYXRhLmRvY3R5cGUpO1xuXHRcdFx0dmFyIGRvYyA9IG5ldyBjb250cm9sbGVyX2NsYXNzKGRhdGEpO1xuXHRcdH1cblx0XHRyZXR1cm4gZG9jO1xuXHR9LFxuXG5cdGFzeW5jIGluc2VydChkYXRhKSB7XG5cdFx0Y29uc3QgZG9jID0gYXdhaXQgdGhpcy5nZXRfZG9jKGRhdGEpO1xuXHRcdHJldHVybiBhd2FpdCBkb2MuaW5zZXJ0KCk7XG5cdH0sXG5cblx0bG9naW4odXNlcj0nZ3Vlc3QnLCB1c2VyX2tleSkge1xuXHRcdHRoaXMuc2Vzc2lvbiA9IG5ldyB0aGlzLl9zZXNzaW9uLlNlc3Npb24odXNlcik7XG5cdFx0aWYgKHVzZXIgJiYgdXNlcl9rZXkpIHtcblx0XHRcdHRoaXMuYXV0aGVudGljYXRlKHVzZXJfa2V5KTtcblx0XHR9XG5cdH0sXG5cblx0Y2xvc2UoKSB7XG5cdFx0dGhpcy5kYi5jbG9zZSgpO1xuXG5cdFx0aWYgKHRoaXMuc2VydmVyKSB7XG5cdFx0XHR0aGlzLnNlcnZlci5jbG9zZSgpO1xuXHRcdH1cblx0fVxufTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBmcmFwcGUgPSByZXF1aXJlKCdmcmFwcGUtY29yZScpO1xuXG5jbGFzcyBCYXNlQ29udHJvbCB7XG5cdGNvbnN0cnVjdG9yKGRvY2ZpZWxkLCBwYXJlbnQpIHtcblx0XHRPYmplY3QuYXNzaWduKHRoaXMsIGRvY2ZpZWxkKTtcblx0XHRpZiAoIXRoaXMuZmllbGRuYW1lKSB7XG5cdFx0XHR0aGlzLmZpZWxkbmFtZSA9IGZyYXBwZS5zbHVnKHRoaXMubGFiZWwpO1xuXHRcdH1cblx0XHR0aGlzLnBhcmVudCA9IHBhcmVudDtcblx0XHRpZiAodGhpcy5zZXR1cCkge1xuXHRcdFx0dGhpcy5zZXR1cCgpO1xuXHRcdH1cblx0fVxuXG5cdGJpbmQoZG9jKSB7XG5cdFx0dGhpcy5kb2MgPSBkb2M7XG5cblx0XHR0aGlzLmRvYy5hZGRfaGFuZGxlcih0aGlzLmZpZWxkbmFtZSwgKCkgPT4ge1xuXHRcdFx0dGhpcy5zZXRfZG9jX3ZhbHVlKCk7XG5cdFx0fSk7XG5cblx0XHR0aGlzLnNldF9kb2NfdmFsdWUoKTtcblx0fVxuXG5cdHJlZnJlc2goKSB7XG5cdFx0dGhpcy5tYWtlKCk7XG5cdFx0dGhpcy5zZXRfZG9jX3ZhbHVlKCk7XG5cdH1cblxuXHRzZXRfZG9jX3ZhbHVlKCkge1xuXHRcdGlmICh0aGlzLmRvYykge1xuXHRcdFx0dGhpcy5zZXRfaW5wdXRfdmFsdWUodGhpcy5kb2MuZ2V0KHRoaXMuZmllbGRuYW1lKSk7XG5cdFx0fVxuXHR9XG5cblx0bWFrZSgpIHtcblx0XHRpZiAoIXRoaXMuZm9ybV9ncm91cCkge1xuXHRcdFx0dGhpcy5tYWtlX2Zvcm1fZ3JvdXAoKTtcblx0XHRcdHRoaXMubWFrZV9sYWJlbCgpO1xuXHRcdFx0dGhpcy5tYWtlX2lucHV0KCk7XG5cdFx0XHR0aGlzLnNldF9pbnB1dF9uYW1lKCk7XG5cdFx0XHR0aGlzLm1ha2VfZGVzY3JpcHRpb24oKTtcblx0XHRcdHRoaXMuYmluZF9jaGFuZ2VfZXZlbnQoKTtcblx0XHR9XG5cdH1cblxuXHRtYWtlX2Zvcm1fZ3JvdXAoKSB7XG5cdFx0dGhpcy5mb3JtX2dyb3VwID0gZnJhcHBlLnVpLmFkZCgnZGl2JywgJ2Zvcm0tZ3JvdXAnLCB0aGlzLnBhcmVudCk7XG5cdH1cblxuXHRtYWtlX2xhYmVsKCkge1xuXHRcdHRoaXMubGFiZWxfZWxlbWVudCA9IGZyYXBwZS51aS5hZGQoJ2xhYmVsJywgbnVsbCwgdGhpcy5mb3JtX2dyb3VwKTtcblx0XHR0aGlzLmxhYmVsX2VsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLmxhYmVsO1xuXHR9XG5cblx0bWFrZV9pbnB1dCgpIHtcblx0XHR0aGlzLmlucHV0ID0gZnJhcHBlLnVpLmFkZCgnaW5wdXQnLCAnZm9ybS1jb250cm9sJywgdGhpcy5mb3JtX2dyb3VwKTtcblx0fVxuXG5cdHNldF9pbnB1dF9uYW1lKCkge1xuXHRcdHRoaXMuaW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgdGhpcy5maWVsZG5hbWUpO1xuXHR9XG5cblx0bWFrZV9kZXNjcmlwdGlvbigpIHtcblx0XHRpZiAodGhpcy5kZXNjcmlwdGlvbikge1xuXHRcdFx0dGhpcy5kZXNjcmlwdGlvbl9lbGVtZW50ID0gZnJhcHBlLnVpLmFkZCgnc21hbGwnLCAnZm9ybS10ZXh0IHRleHQtbXV0ZWQnLCB0aGlzLmZvcm1fZ3JvdXApO1xuXHRcdFx0dGhpcy5kZXNjcmlwdGlvbl9lbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5kZXNjcmlwdGlvbjtcblx0XHR9XG5cdH1cblxuXHRzZXRfaW5wdXRfdmFsdWUodmFsdWUpIHtcblx0XHRpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuXHRcdFx0dmFsdWUgPSAnJztcblx0XHR9XG5cdFx0dGhpcy5pbnB1dC52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0YXN5bmMgZ2V0X2lucHV0X3ZhbHVlKCkge1xuXHRcdHJldHVybiBhd2FpdCB0aGlzLnBhcnNlKHRoaXMuaW5wdXQudmFsdWUpO1xuXHR9XG5cblx0YXN5bmMgcGFyc2UodmFsdWUpIHtcblx0XHRyZXR1cm4gdmFsdWU7XG5cdH1cblxuXHRhc3luYyB2YWxpZGF0ZSh2YWx1ZSkge1xuXHRcdHJldHVybiB2YWx1ZTtcblx0fVxuXG5cdGJpbmRfY2hhbmdlX2V2ZW50KCkge1xuXHRcdHRoaXMuaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHRoaXMuaGFuZGxlX2NoYW5nZShlKSk7XG5cdH1cblxuXHRhc3luYyBoYW5kbGVfY2hhbmdlKGUpIHtcblx0XHRsZXQgdmFsdWUgPSBhd2FpdCB0aGlzLmdldF9pbnB1dF92YWx1ZSgpO1xuXHRcdHZhbHVlID0gYXdhaXQgdGhpcy52YWxpZGF0ZSh2YWx1ZSk7XG5cdFx0YXdhaXQgdGhpcy5kb2Muc2V0KHRoaXMuZmllbGRuYW1lLCB2YWx1ZSk7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBCYXNlQ29udHJvbDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvY29udHJvbHMvYmFzZS5qc1xuLy8gbW9kdWxlIGlkID0gMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvLyBzaGltIGZvciB1c2luZyBwcm9jZXNzIGluIGJyb3dzZXJcbnZhciBwcm9jZXNzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTtcblxuLy8gY2FjaGVkIGZyb20gd2hhdGV2ZXIgZ2xvYmFsIGlzIHByZXNlbnQgc28gdGhhdCB0ZXN0IHJ1bm5lcnMgdGhhdCBzdHViIGl0XG4vLyBkb24ndCBicmVhayB0aGluZ3MuICBCdXQgd2UgbmVlZCB0byB3cmFwIGl0IGluIGEgdHJ5IGNhdGNoIGluIGNhc2UgaXQgaXNcbi8vIHdyYXBwZWQgaW4gc3RyaWN0IG1vZGUgY29kZSB3aGljaCBkb2Vzbid0IGRlZmluZSBhbnkgZ2xvYmFscy4gIEl0J3MgaW5zaWRlIGFcbi8vIGZ1bmN0aW9uIGJlY2F1c2UgdHJ5L2NhdGNoZXMgZGVvcHRpbWl6ZSBpbiBjZXJ0YWluIGVuZ2luZXMuXG5cbnZhciBjYWNoZWRTZXRUaW1lb3V0O1xudmFyIGNhY2hlZENsZWFyVGltZW91dDtcblxuZnVuY3Rpb24gZGVmYXVsdFNldFRpbW91dCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRDbGVhclRpbWVvdXQgKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG4oZnVuY3Rpb24gKCkge1xuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgIH1cbn0gKCkpXG5mdW5jdGlvbiBydW5UaW1lb3V0KGZ1bikge1xuICAgIGlmIChjYWNoZWRTZXRUaW1lb3V0ID09PSBzZXRUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICAvLyBpZiBzZXRUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkU2V0VGltZW91dCA9PT0gZGVmYXVsdFNldFRpbW91dCB8fCAhY2FjaGVkU2V0VGltZW91dCkgJiYgc2V0VGltZW91dCkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dChmdW4sIDApO1xuICAgIH0gY2F0Y2goZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwobnVsbCwgZnVuLCAwKTtcbiAgICAgICAgfSBjYXRjaChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yXG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKHRoaXMsIGZ1biwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuZnVuY3Rpb24gcnVuQ2xlYXJUaW1lb3V0KG1hcmtlcikge1xuICAgIGlmIChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGNsZWFyVGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICAvLyBpZiBjbGVhclRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGRlZmF1bHRDbGVhclRpbWVvdXQgfHwgIWNhY2hlZENsZWFyVGltZW91dCkgJiYgY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCAgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbChudWxsLCBtYXJrZXIpO1xuICAgICAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yLlxuICAgICAgICAgICAgLy8gU29tZSB2ZXJzaW9ucyBvZiBJLkUuIGhhdmUgZGlmZmVyZW50IHJ1bGVzIGZvciBjbGVhclRpbWVvdXQgdnMgc2V0VGltZW91dFxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKHRoaXMsIG1hcmtlcik7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG59XG52YXIgcXVldWUgPSBbXTtcbnZhciBkcmFpbmluZyA9IGZhbHNlO1xudmFyIGN1cnJlbnRRdWV1ZTtcbnZhciBxdWV1ZUluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHtcbiAgICBpZiAoIWRyYWluaW5nIHx8ICFjdXJyZW50UXVldWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGRyYWluUXVldWUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHRpbWVvdXQgPSBydW5UaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuXG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UXVldWUpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50UXVldWVbcXVldWVJbmRleF0ucnVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgICAgICBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgfVxuICAgIGN1cnJlbnRRdWV1ZSA9IG51bGw7XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBydW5DbGVhclRpbWVvdXQodGltZW91dCk7XG59XG5cbnByb2Nlc3MubmV4dFRpY2sgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcXVldWUucHVzaChuZXcgSXRlbShmdW4sIGFyZ3MpKTtcbiAgICBpZiAocXVldWUubGVuZ3RoID09PSAxICYmICFkcmFpbmluZykge1xuICAgICAgICBydW5UaW1lb3V0KGRyYWluUXVldWUpO1xuICAgIH1cbn07XG5cbi8vIHY4IGxpa2VzIHByZWRpY3RpYmxlIG9iamVjdHNcbmZ1bmN0aW9uIEl0ZW0oZnVuLCBhcnJheSkge1xuICAgIHRoaXMuZnVuID0gZnVuO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbn1cbkl0ZW0ucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZ1bi5hcHBseShudWxsLCB0aGlzLmFycmF5KTtcbn07XG5wcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInO1xucHJvY2Vzcy5icm93c2VyID0gdHJ1ZTtcbnByb2Nlc3MuZW52ID0ge307XG5wcm9jZXNzLmFyZ3YgPSBbXTtcbnByb2Nlc3MudmVyc2lvbiA9ICcnOyAvLyBlbXB0eSBzdHJpbmcgdG8gYXZvaWQgcmVnZXhwIGlzc3Vlc1xucHJvY2Vzcy52ZXJzaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxucHJvY2Vzcy5vbiA9IG5vb3A7XG5wcm9jZXNzLmFkZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3Mub25jZSA9IG5vb3A7XG5wcm9jZXNzLm9mZiA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUxpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDtcbnByb2Nlc3MuZW1pdCA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRPbmNlTGlzdGVuZXIgPSBub29wO1xuXG5wcm9jZXNzLmxpc3RlbmVycyA9IGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiBbXSB9XG5cbnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcblxucHJvY2Vzcy5jd2QgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAnLycgfTtcbnByb2Nlc3MuY2hkaXIgPSBmdW5jdGlvbiAoZGlyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5wcm9jZXNzLnVtYXNrID0gZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcHJvY2Vzcy9icm93c2VyLmpzXG4vLyBtb2R1bGUgaWQgPSAyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5cbmNsYXNzIERvY3VtZW50IHtcblx0Y29uc3RydWN0b3IoZGF0YSkge1xuXHRcdHRoaXMuaGFuZGxlcnMgPSB7fTtcblx0XHR0aGlzLnNldHVwKCk7XG5cdFx0T2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKTtcblx0fVxuXG5cdHNldHVwKCkge1xuXHRcdC8vIGFkZCBoYW5kbGVyc1xuXHR9XG5cblx0Y2xlYXJfaGFuZGxlcnMoKSB7XG5cdFx0dGhpcy5oYW5kbGVycyA9IHt9O1xuXHR9XG5cblx0YWRkX2hhbmRsZXIoa2V5LCBtZXRob2QpIHtcblx0XHRpZiAoIXRoaXMuaGFuZGxlcnNba2V5XSkge1xuXHRcdFx0dGhpcy5oYW5kbGVyc1trZXldID0gW107XG5cdFx0fVxuXHRcdHRoaXMuaGFuZGxlcnNba2V5XS5wdXNoKG1ldGhvZCB8fCBrZXkpO1xuXHR9XG5cblx0Z2V0KGtleSkge1xuXHRcdHJldHVybiB0aGlzW2tleV07XG5cdH1cblxuXHRzZXQoa2V5LCB2YWx1ZSkge1xuXHRcdHRoaXMudmFsaWRhdGVfZmllbGQoa2V5LCB2YWx1ZSk7XG5cdFx0dGhpc1trZXldID0gdmFsdWU7XG5cdH1cblxuXHRzZXRfbmFtZSgpIHtcblx0XHQvLyBhc3NpZ24gYSByYW5kb20gbmFtZSBieSBkZWZhdWx0XG5cdFx0Ly8gb3ZlcnJpZGUgdGhpcyB0byBzZXQgYSBuYW1lXG5cdFx0aWYgKCF0aGlzLm5hbWUpIHtcblx0XHRcdHRoaXMubmFtZSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigzKTtcblx0XHR9XG5cdH1cblxuXHRnZXQgbWV0YSgpIHtcblx0XHRpZiAoIXRoaXMuX21ldGEpIHtcblx0XHRcdHRoaXMuX21ldGEgPSBmcmFwcGUuZ2V0X21ldGEodGhpcy5kb2N0eXBlKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX21ldGE7XG5cdH1cblxuXHRhcHBlbmQoa2V5LCBkb2N1bWVudCkge1xuXHRcdGlmICghdGhpc1trZXldKSB7XG5cdFx0XHR0aGlzW2tleV0gPSBbXTtcblx0XHR9XG5cdFx0dGhpc1trZXldLnB1c2godGhpcy5pbml0X2RvYyhkb2N1bWVudCkpO1xuXHR9XG5cblx0aW5pdF9kb2MoZGF0YSkge1xuXHRcdGlmIChkYXRhLnByb3RvdHlwZSBpbnN0YW5jZW9mIERvY3VtZW50KSB7XG5cdFx0XHRyZXR1cm4gZGF0YTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIG5ldyBEb2N1bWVudChkKTtcblx0XHR9XG5cdH1cblxuXHR2YWxpZGF0ZV9maWVsZCAoa2V5LCB2YWx1ZSkge1xuXHRcdGxldCBkZiA9IHRoaXMubWV0YS5nZXRfZmllbGQoa2V5KTtcblx0XHRpZiAoZGYuZmllbGR0eXBlPT0nU2VsZWN0Jykge1xuXHRcdFx0dGhpcy5tZXRhLnZhbGlkYXRlX3NlbGVjdChkZiwgdmFsdWUpO1xuXHRcdH1cblx0fVxuXG5cdGdldF92YWxpZF9kaWN0KCkge1xuXHRcdGxldCBkb2MgPSB7fTtcblx0XHRmb3IobGV0IGRmIG9mIHRoaXMubWV0YS5nZXRfdmFsaWRfZmllbGRzKCkpIHtcblx0XHRcdGRvY1tkZi5maWVsZG5hbWVdID0gdGhpcy5nZXQoZGYuZmllbGRuYW1lKTtcblx0XHR9XG5cdFx0cmV0dXJuIGRvYztcblx0fVxuXG5cdHNldF9zdGFuZGFyZF92YWx1ZXMoKSB7XG5cdFx0bGV0IG5vdyA9IG5ldyBEYXRlKCk7XG5cdFx0aWYgKHRoaXMuZG9jc3RhdHVzID09PSBudWxsIHx8IHRoaXMuZG9jc3RhdHVzID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHRoaXMuZG9jc3RhdHVzID0gMDtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLm93bmVyKSB7XG5cdFx0XHR0aGlzLm93bmVyID0gZnJhcHBlLnNlc3Npb24udXNlcjtcblx0XHRcdHRoaXMuY3JlYXRpb24gPSBub3c7XG5cdFx0fVxuXHRcdHRoaXMubW9kaWZpZWRfYnkgPSBmcmFwcGUuc2Vzc2lvbi51c2VyO1xuXHRcdHRoaXMubW9kaWZpZWQgPSBub3c7XG5cdH1cblxuXHRhc3luYyBsb2FkKCkge1xuXHRcdE9iamVjdC5hc3NpZ24odGhpcywgYXdhaXQgZnJhcHBlLmRiLmdldCh0aGlzLmRvY3R5cGUsIHRoaXMubmFtZSkpO1xuXHR9XG5cblx0YXN5bmMgaW5zZXJ0KCkge1xuXHRcdHRoaXMuc2V0X25hbWUoKTtcblx0XHR0aGlzLnNldF9zdGFuZGFyZF92YWx1ZXMoKTtcblx0XHRhd2FpdCB0aGlzLnRyaWdnZXIoJ3ZhbGlkYXRlJywgJ2JlZm9yZV9pbnNlcnQnKTtcblx0XHRhd2FpdCBmcmFwcGUuZGIuaW5zZXJ0KHRoaXMuZG9jdHlwZSwgdGhpcy5nZXRfdmFsaWRfZGljdCgpKTtcblx0XHRhd2FpdCB0aGlzLnRyaWdnZXIoJ2FmdGVyX2luc2VydCcsICdhZnRlcl9zYXZlJyk7XG5cdH1cblxuXHRhc3luYyBkZWxldGUoKSB7XG5cdFx0YXdhaXQgdGhpcy50cmlnZ2VyKCdiZWZvcmVfZGVsZXRlJyk7XG5cdFx0YXdhaXQgZnJhcHBlLmRiLmRlbGV0ZSh0aGlzLmRvY3R5cGUsIHRoaXMubmFtZSk7XG5cdFx0YXdhaXQgdGhpcy50cmlnZ2VyKCdhZnRlcl9kZWxldGUnKTtcblx0fVxuXG5cdGFzeW5jIHRyaWdnZXIoKSB7XG5cdFx0Zm9yKHZhciBrZXkgb2YgYXJndW1lbnRzKSB7XG5cdFx0XHRpZiAodGhpcy5oYW5kbGVyc1trZXldKSB7XG5cdFx0XHRcdGZvciAobGV0IG1ldGhvZCBvZiB0aGlzLmhhbmRsZXJzW2tleV0pIHtcblx0XHRcdFx0XHRpZiAodHlwZW9mIG1ldGhvZCA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRcdGF3YWl0IHRoaXNbbWV0aG9kXSgpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRhd2FpdCBtZXRob2QodGhpcyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgdXBkYXRlKCkge1xuXHRcdHRoaXMuc2V0X3N0YW5kYXJkX3ZhbHVlcygpO1xuXHRcdGF3YWl0IHRoaXMudHJpZ2dlcigndmFsaWRhdGUnLCAnYmVmb3JlX3VwZGF0ZScpO1xuXHRcdGF3YWl0IGZyYXBwZS5kYi51cGRhdGUodGhpcy5kb2N0eXBlLCB0aGlzLmdldF92YWxpZF9kaWN0KCkpO1xuXHRcdGF3YWl0IHRoaXMudHJpZ2dlcignYWZ0ZXJfdXBkYXRlJywgJ2FmdGVyX3NhdmUnKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7IERvY3VtZW50OiBEb2N1bWVudCB9O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9tb2RlbC9kb2N1bWVudC5qc1xuLy8gbW9kdWxlIGlkID0gM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJyZXF1aXJlKCcuL3Njc3MvbWFpbi5zY3NzJyk7XG5cbmNvbnN0IGNsaWVudCA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQnKTtcblxuY29uc3QgTGlzdFZpZXcgPSByZXF1aXJlKCdmcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvbGlzdCcpLkxpc3RWaWV3O1xuY29uc3QgUGFnZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvdmlldy9wYWdlJykuUGFnZTtcbmNvbnN0IEZvcm0gPSByZXF1aXJlKCdmcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvZm9ybScpLkZvcm07XG5cbndpbmRvdy5hcHAgPSB7XG5cdHNldHVwX2Zvcm0oKSB7XG5cdFx0dGhpcy5lZGl0X3BhZ2UgPSBuZXcgUGFnZSgnRWRpdCBUbyBEbycpO1xuXHRcdHRoaXMuZWRpdF9wYWdlLmZvcm0gPSBuZXcgRm9ybSh7XG5cdFx0XHRkb2N0eXBlOiAnVG9EbycsXG5cdFx0XHRwYXJlbnQ6IHRoaXMuZWRpdF9wYWdlLmJvZHlcblx0XHR9KTtcblx0fSxcblx0c2V0dXBfbGlzdCgpIHtcblx0XHR0aGlzLnRvZG9fbGlzdCA9IG5ldyBQYWdlKCdUb0RvIExpc3QnKTtcblx0XHR0aGlzLnRvZG9fbGlzdC5saXN0ID0gbmV3IExpc3RWaWV3KHtcblx0XHRcdGRvY3R5cGU6ICdUb0RvJyxcblx0XHRcdHBhcmVudDogdGhpcy50b2RvX2xpc3QuYm9keSxcblx0XHRcdGZpZWxkczogWyduYW1lJywgJ3N1YmplY3QnLCAnc3RhdHVzJ11cblx0XHR9KTtcblx0XHR0aGlzLnRvZG9fbGlzdC5saXN0Lm1ldGEuZ2V0X3Jvd19odG1sID0gKGRhdGEpID0+IHtcblx0XHRcdGNvbnN0IHNpZ24gPSBkYXRhLnN0YXR1cyA9PT0gJ09wZW4nID8gJ+KclCcgOiAn4pyYJztcblx0XHRcdHJldHVybiBgPHA+PGEgaHJlZj1cIiNlZGl0L3RvZG8vJHtkYXRhLm5hbWV9XCI+JHtzaWdufSAke2RhdGEuc3ViamVjdH08L2E+PC9wPmA7XG5cdFx0fVxuXHR9XG59O1xuXG4vLyBzdGFydCBzZXJ2ZXJcbmNsaWVudC5zdGFydCh7XG5cdHNlcnZlcjogJ2xvY2FsaG9zdDo4MDAwJyxcblx0Y29udGFpbmVyOiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcud3JhcHBlcicpLFxufSkudGhlbigoKSA9PiB7XG5cdGNvbnN0IHRvZG8gPSByZXF1aXJlKCdmcmFwcGUtY29yZS9mcmFwcGUvbW9kZWxzL2RvY3R5cGUvdG9kby90b2RvLmpzJyk7XG5cdGZyYXBwZS5pbml0X2NvbnRyb2xsZXIoJ3RvZG8nLCB0b2RvKTtcblxuXHRhcHAuaG9tZSA9IGZyYXBwZS51aS5hZGQoJ2EnLCAnJywgZnJhcHBlLnVpLmFkZCgncCcsIG51bGwsIGZyYXBwZS5zaWRlYmFyKSk7XG5cdGFwcC5ob21lLnRleHRDb250ZW50ID0gJ0hvbWUnO1xuXHRhcHAuaG9tZS5ocmVmID0gJyMnO1xuXG5cdGFwcC5tYWtlX25ldyA9IGZyYXBwZS51aS5hZGQoJ2EnLCAnJywgZnJhcHBlLnVpLmFkZCgncCcsIG51bGwsIGZyYXBwZS5zaWRlYmFyKSk7XG5cdGFwcC5tYWtlX25ldy50ZXh0Q29udGVudCA9ICdOZXcgVG9Ebyc7XG5cdGFwcC5tYWtlX25ldy5ocmVmID0gJyNuZXcvdG9kbyc7XG5cblx0Ly8gbWFrZSBwYWdlc1xuXHRhcHAuc2V0dXBfbGlzdCgpO1xuXHRhcHAuc2V0dXBfZm9ybSgpO1xuXG5cdC8vIHRvIGRvIGxpc3Rcblx0ZnJhcHBlLnJvdXRlci5hZGQoJ2RlZmF1bHQnLCAoKSA9PiB7XG5cdFx0YXBwLnRvZG9fbGlzdC5zaG93KCk7XG5cdFx0YXBwLnRvZG9fbGlzdC5saXN0LnJ1bigpO1xuXHR9KTtcblxuXHQvLyBzZXR1cCB0b2RvIGZvcm1cblx0ZnJhcHBlLnJvdXRlci5hZGQoJ2VkaXQvdG9kby86bmFtZScsIGFzeW5jIChwYXJhbXMpID0+IHtcblx0XHRhcHAuZG9jID0gYXdhaXQgZnJhcHBlLmdldF9kb2MoJ1RvRG8nLCBwYXJhbXMubmFtZSk7XG5cdFx0YXBwLmVkaXRfcGFnZS5zaG93KCk7XG5cdFx0YXBwLmVkaXRfcGFnZS5mb3JtLnVzZShhcHAuZG9jKTtcblx0fSk7XG5cblx0Ly8gc2V0dXAgdG9kbyBuZXdcblx0ZnJhcHBlLnJvdXRlci5hZGQoJ25ldy90b2RvJywgYXN5bmMgKHBhcmFtcykgPT4ge1xuXHRcdGFwcC5kb2MgPSBhd2FpdCBmcmFwcGUuZ2V0X2RvYyh7ZG9jdHlwZTogJ1RvRG8nfSk7XG5cdFx0YXBwLmRvYy5zZXRfbmFtZSgpO1xuXHRcdGFwcC5lZGl0X3BhZ2Uuc2hvdygpO1xuXHRcdGFwcC5lZGl0X3BhZ2UuZm9ybS51c2UoYXBwLmRvYywgdHJ1ZSk7XG5cdH0pO1xuXG5cdGZyYXBwZS5yb3V0ZXIuc2hvdyh3aW5kb3cubG9jYXRpb24uaGFzaCk7XG59KTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSA0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8vIHN0eWxlLWxvYWRlcjogQWRkcyBzb21lIGNzcyB0byB0aGUgRE9NIGJ5IGFkZGluZyBhIDxzdHlsZT4gdGFnXG5cbi8vIGxvYWQgdGhlIHN0eWxlc1xudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvbGliL2luZGV4LmpzPz9yZWYtLTAtMiEuLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvbGliL2xvYWRlci5qcz8/cmVmLS0wLTMhLi9tYWluLnNjc3NcIik7XG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbi8vIFByZXBhcmUgY3NzVHJhbnNmb3JtYXRpb25cbnZhciB0cmFuc2Zvcm07XG5cbnZhciBvcHRpb25zID0ge1wiaG1yXCI6dHJ1ZX1cbm9wdGlvbnMudHJhbnNmb3JtID0gdHJhbnNmb3JtXG4vLyBhZGQgdGhlIHN0eWxlcyB0byB0aGUgRE9NXG52YXIgdXBkYXRlID0gcmVxdWlyZShcIiEuLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXMuanNcIikoY29udGVudCwgb3B0aW9ucyk7XG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2Fscztcbi8vIEhvdCBNb2R1bGUgUmVwbGFjZW1lbnRcbmlmKG1vZHVsZS5ob3QpIHtcblx0Ly8gV2hlbiB0aGUgc3R5bGVzIGNoYW5nZSwgdXBkYXRlIHRoZSA8c3R5bGU+IHRhZ3Ncblx0aWYoIWNvbnRlbnQubG9jYWxzKSB7XG5cdFx0bW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9saWIvaW5kZXguanM/P3JlZi0tMC0yIS4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9saWIvbG9hZGVyLmpzPz9yZWYtLTAtMyEuL21haW4uc2Nzc1wiLCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBuZXdDb250ZW50ID0gcmVxdWlyZShcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2xpYi9pbmRleC5qcz8/cmVmLS0wLTIhLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2xpYi9sb2FkZXIuanM/P3JlZi0tMC0zIS4vbWFpbi5zY3NzXCIpO1xuXHRcdFx0aWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG5cdFx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdFx0fSk7XG5cdH1cblx0Ly8gV2hlbiB0aGUgbW9kdWxlIGlzIGRpc3Bvc2VkLCByZW1vdmUgdGhlIDxzdHlsZT4gdGFnc1xuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3Njc3MvbWFpbi5zY3NzXG4vLyBtb2R1bGUgaWQgPSA1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCIuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcIikoZmFsc2UpO1xuLy8gaW1wb3J0c1xuXG5cbi8vIG1vZHVsZVxuZXhwb3J0cy5wdXNoKFttb2R1bGUuaWQsIFwiLyohXFxuICogQm9vdHN0cmFwIHY0LjAuMC1hbHBoYS42IChodHRwczovL2dldGJvb3RzdHJhcC5jb20pXFxuICogQ29weXJpZ2h0IDIwMTEtMjAxNyBUaGUgQm9vdHN0cmFwIEF1dGhvcnNcXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE3IFR3aXR0ZXIsIEluYy5cXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxcbiAqL1xcbi8qISBub3JtYWxpemUuY3NzIHY1LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cXG5odG1sIHtcXG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XFxuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgfVxcbmJvZHkge1xcbiAgbWFyZ2luOiAwOyB9XFxuYXJ0aWNsZSwgYXNpZGUsIGZvb3RlciwgaGVhZGVyLCBuYXYsIHNlY3Rpb24ge1xcbiAgZGlzcGxheTogYmxvY2s7IH1cXG5oMSB7XFxuICBmb250LXNpemU6IDJlbTtcXG4gIG1hcmdpbjogMC42N2VtIDA7IH1cXG5maWdjYXB0aW9uLCBmaWd1cmUsIG1haW4ge1xcbiAgZGlzcGxheTogYmxvY2s7IH1cXG5maWd1cmUge1xcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxcbmhyIHtcXG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgaGVpZ2h0OiAwO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cXG5wcmUge1xcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xcbiAgZm9udC1zaXplOiAxZW07IH1cXG5hIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgfVxcbmE6YWN0aXZlLCBhOmhvdmVyIHtcXG4gIG91dGxpbmUtd2lkdGg6IDA7IH1cXG5hYmJyW3RpdGxlXSB7XFxuICBib3JkZXItYm90dG9tOiBub25lO1xcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyB9XFxuYiwgc3Ryb25nIHtcXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyB9XFxuYiwgc3Ryb25nIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7IH1cXG5jb2RlLCBrYmQsIHNhbXAge1xcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xcbiAgZm9udC1zaXplOiAxZW07IH1cXG5kZm4ge1xcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XFxubWFyayB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xcbiAgY29sb3I6ICMwMDA7IH1cXG5zbWFsbCB7XFxuICBmb250LXNpemU6IDgwJTsgfVxcbnN1Yiwgc3VwIHtcXG4gIGZvbnQtc2l6ZTogNzUlO1xcbiAgbGluZS1oZWlnaHQ6IDA7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cXG5zdWIge1xcbiAgYm90dG9tOiAtMC4yNWVtOyB9XFxuc3VwIHtcXG4gIHRvcDogLTAuNWVtOyB9XFxuYXVkaW8sIHZpZGVvIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxcbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgaGVpZ2h0OiAwOyB9XFxuaW1nIHtcXG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxcbnN2Zzpub3QoOnJvb3QpIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cXG5idXR0b24sIGlucHV0LCBvcHRncm91cCwgc2VsZWN0LCB0ZXh0YXJlYSB7XFxuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcXG4gIGZvbnQtc2l6ZTogMTAwJTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xcbiAgbWFyZ2luOiAwOyB9XFxuYnV0dG9uLCBpbnB1dCB7XFxuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxcbmJ1dHRvbiwgc2VsZWN0IHtcXG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XFxuYnV0dG9uLCBodG1sIFt0eXBlPVxcXCJidXR0b25cXFwiXSwgW3R5cGU9XFxcInJlc2V0XFxcIl0sIFt0eXBlPVxcXCJzdWJtaXRcXFwiXSB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgfVxcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwgW3R5cGU9XFxcImJ1dHRvblxcXCJdOjotbW96LWZvY3VzLWlubmVyLCBbdHlwZT1cXFwicmVzZXRcXFwiXTo6LW1vei1mb2N1cy1pbm5lciwgW3R5cGU9XFxcInN1Ym1pdFxcXCJdOjotbW96LWZvY3VzLWlubmVyIHtcXG4gIGJvcmRlci1zdHlsZTogbm9uZTtcXG4gIHBhZGRpbmc6IDA7IH1cXG5idXR0b246LW1vei1mb2N1c3JpbmcsIFt0eXBlPVxcXCJidXR0b25cXFwiXTotbW96LWZvY3VzcmluZywgW3R5cGU9XFxcInJlc2V0XFxcIl06LW1vei1mb2N1c3JpbmcsIFt0eXBlPVxcXCJzdWJtaXRcXFwiXTotbW96LWZvY3VzcmluZyB7XFxuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7IH1cXG5maWVsZHNldCB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xcbiAgbWFyZ2luOiAwIDJweDtcXG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxcbmxlZ2VuZCB7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIGRpc3BsYXk6IHRhYmxlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZzogMDtcXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cXG5wcm9ncmVzcyB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cXG50ZXh0YXJlYSB7XFxuICBvdmVyZmxvdzogYXV0bzsgfVxcblt0eXBlPVxcXCJjaGVja2JveFxcXCJdLCBbdHlwZT1cXFwicmFkaW9cXFwiXSB7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBwYWRkaW5nOiAwOyB9XFxuW3R5cGU9XFxcIm51bWJlclxcXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLCBbdHlwZT1cXFwibnVtYmVyXFxcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xcbiAgaGVpZ2h0OiBhdXRvOyB9XFxuW3R5cGU9XFxcInNlYXJjaFxcXCJdIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IH1cXG5bdHlwZT1cXFwic2VhcmNoXFxcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sIFt0eXBlPVxcXCJzZWFyY2hcXFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbiAgZm9udDogaW5oZXJpdDsgfVxcbmRldGFpbHMsIG1lbnUge1xcbiAgZGlzcGxheTogYmxvY2s7IH1cXG5zdW1tYXJ5IHtcXG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxcbmNhbnZhcyB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cXG50ZW1wbGF0ZSB7XFxuICBkaXNwbGF5OiBub25lOyB9XFxuW2hpZGRlbl0ge1xcbiAgZGlzcGxheTogbm9uZTsgfVxcbkBtZWRpYSBwcmludCB7XFxuICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyLCBwOjpmaXJzdC1sZXR0ZXIsIGRpdjo6Zmlyc3QtbGV0dGVyLCBibG9ja3F1b3RlOjpmaXJzdC1sZXR0ZXIsIGxpOjpmaXJzdC1sZXR0ZXIsIHA6OmZpcnN0LWxpbmUsIGRpdjo6Zmlyc3QtbGluZSwgYmxvY2txdW90ZTo6Zmlyc3QtbGluZSwgbGk6OmZpcnN0LWxpbmUge1xcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cXG4gIGEsIGE6dmlzaXRlZCB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XFxuICBhYmJyW3RpdGxlXTo6YWZ0ZXIge1xcbiAgICBjb250ZW50OiBcXFwiIChcXFwiIGF0dHIodGl0bGUpIFxcXCIpXFxcIjsgfVxcbiAgcHJlIHtcXG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwICFpbXBvcnRhbnQ7IH1cXG4gIHByZSwgYmxvY2txdW90ZSB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XFxuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxcbiAgdGhlYWQge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cXG4gIHRyLCBpbWcge1xcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cXG4gIHAsIGgyLCBoMyB7XFxuICAgIG9ycGhhbnM6IDM7XFxuICAgIHdpZG93czogMzsgfVxcbiAgaDIsIGgzIHtcXG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cXG4gIC5uYXZiYXIge1xcbiAgICBkaXNwbGF5OiBub25lOyB9XFxuICAuYmFkZ2Uge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOyB9XFxuICAudGFibGUge1xcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7IH1cXG4gICAgLnRhYmxlIHRkLCAudGFibGUgdGgge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDsgfVxcbiAgLnRhYmxlLWJvcmRlcmVkIHRoLCAudGFibGUtYm9yZGVyZWQgdGQge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkICFpbXBvcnRhbnQ7IH0gfVxcbmh0bWwge1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XFxuKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGluaGVyaXQ7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cXG5ALW1zLXZpZXdwb3J0IHtcXG4gIHdpZHRoOiBkZXZpY2Utd2lkdGg7IH1cXG5odG1sIHtcXG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogc2Nyb2xsYmFyO1xcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbmJvZHkge1xcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIHN5c3RlbS11aSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBSb2JvdG8sIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICBjb2xvcjogIzI5MmIyYztcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cXG5bdGFiaW5kZXg9XFxcIi0xXFxcIl06Zm9jdXMge1xcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyB9XFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07IH1cXG5wIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XFxuYWJiclt0aXRsZV0sIGFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xcbiAgY3Vyc29yOiBoZWxwOyB9XFxuYWRkcmVzcyB7XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cXG5vbCwgdWwsIGRsIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XFxub2wgb2wsIHVsIHVsLCBvbCB1bCwgdWwgb2wge1xcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxcbmR0IHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XFxuZGQge1xcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XFxuICBtYXJnaW4tbGVmdDogMDsgfVxcbmJsb2NrcXVvdGUge1xcbiAgbWFyZ2luOiAwIDAgMXJlbTsgfVxcbmEge1xcbiAgY29sb3I6ICMwMjc1ZDg7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cXG5hOmZvY3VzLCBhOmhvdmVyIHtcXG4gICAgY29sb3I6ICMwMTRjOGM7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XFxuYTpub3QoW2hyZWZdKTpub3QoW3RhYmluZGV4XSkge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cXG5hOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKTpmb2N1cywgYTpub3QoW2hyZWZdKTpub3QoW3RhYmluZGV4XSk6aG92ZXIge1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XFxuYTpub3QoW2hyZWZdKTpub3QoW3RhYmluZGV4XSk6Zm9jdXMge1xcbiAgICBvdXRsaW5lOiAwOyB9XFxucHJlIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbiAgb3ZlcmZsb3c6IGF1dG87IH1cXG5maWd1cmUge1xcbiAgbWFyZ2luOiAwIDAgMXJlbTsgfVxcbmltZyB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XFxuW3JvbGU9XFxcImJ1dHRvblxcXCJdIHtcXG4gIGN1cnNvcjogcG9pbnRlcjsgfVxcbmEsIGFyZWEsIGJ1dHRvbiwgW3JvbGU9XFxcImJ1dHRvblxcXCJdLCBpbnB1dCwgbGFiZWwsIHNlbGVjdCwgc3VtbWFyeSwgdGV4dGFyZWEge1xcbiAgLW1zLXRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xcbiAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9XFxudGFibGUge1xcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuY2FwdGlvbiB7XFxuICBwYWRkaW5nLXRvcDogMC43NXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAwLjc1cmVtO1xcbiAgY29sb3I6ICM2MzZjNzI7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgY2FwdGlvbi1zaWRlOiBib3R0b207IH1cXG50aCB7XFxuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XFxubGFiZWwge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07IH1cXG5idXR0b246Zm9jdXMge1xcbiAgb3V0bGluZTogMXB4IGRvdHRlZDtcXG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjsgfVxcbmlucHV0LCBidXR0b24sIHNlbGVjdCwgdGV4dGFyZWEge1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cXG5pbnB1dFt0eXBlPVxcXCJyYWRpb1xcXCJdOmRpc2FibGVkLCBpbnB1dFt0eXBlPVxcXCJjaGVja2JveFxcXCJdOmRpc2FibGVkIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cXG5pbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl0sIGlucHV0W3R5cGU9XFxcInRpbWVcXFwiXSwgaW5wdXRbdHlwZT1cXFwiZGF0ZXRpbWUtbG9jYWxcXFwiXSwgaW5wdXRbdHlwZT1cXFwibW9udGhcXFwiXSB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGxpc3Rib3g7IH1cXG50ZXh0YXJlYSB7XFxuICByZXNpemU6IHZlcnRpY2FsOyB9XFxuZmllbGRzZXQge1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgcGFkZGluZzogMDtcXG4gIG1hcmdpbjogMDtcXG4gIGJvcmRlcjogMDsgfVxcbmxlZ2VuZCB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZzogMDtcXG4gIG1hcmdpbi1ib3R0b206IC41cmVtO1xcbiAgZm9udC1zaXplOiAxLjVyZW07XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgfVxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxcbm91dHB1dCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cXG5baGlkZGVuXSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCAuaDEsIC5oMiwgLmgzLCAuaDQsIC5oNSwgLmg2IHtcXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjE7XFxuICBjb2xvcjogaW5oZXJpdDsgfVxcbmgxLCAuaDEge1xcbiAgZm9udC1zaXplOiAyLjVyZW07IH1cXG5oMiwgLmgyIHtcXG4gIGZvbnQtc2l6ZTogMnJlbTsgfVxcbmgzLCAuaDMge1xcbiAgZm9udC1zaXplOiAxLjc1cmVtOyB9XFxuaDQsIC5oNCB7XFxuICBmb250LXNpemU6IDEuNXJlbTsgfVxcbmg1LCAuaDUge1xcbiAgZm9udC1zaXplOiAxLjI1cmVtOyB9XFxuaDYsIC5oNiB7XFxuICBmb250LXNpemU6IDFyZW07IH1cXG4ubGVhZCB7XFxuICBmb250LXNpemU6IDEuMjVyZW07XFxuICBmb250LXdlaWdodDogMzAwOyB9XFxuLmRpc3BsYXktMSB7XFxuICBmb250LXNpemU6IDZyZW07XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTsgfVxcbi5kaXNwbGF5LTIge1xcbiAgZm9udC1zaXplOiA1LjVyZW07XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTsgfVxcbi5kaXNwbGF5LTMge1xcbiAgZm9udC1zaXplOiA0LjVyZW07XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTsgfVxcbi5kaXNwbGF5LTQge1xcbiAgZm9udC1zaXplOiAzLjVyZW07XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTsgfVxcbmhyIHtcXG4gIG1hcmdpbi10b3A6IDFyZW07XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbiAgYm9yZGVyOiAwO1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxcbnNtYWxsLCAuc21hbGwge1xcbiAgZm9udC1zaXplOiA4MCU7XFxuICBmb250LXdlaWdodDogbm9ybWFsOyB9XFxubWFyaywgLm1hcmsge1xcbiAgcGFkZGluZzogMC4yZW07XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzOyB9XFxuLmxpc3QtdW5zdHlsZWQge1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxcbi5saXN0LWlubGluZSB7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICBsaXN0LXN0eWxlOiBub25lOyB9XFxuLmxpc3QtaW5saW5lLWl0ZW0ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XFxuLmxpc3QtaW5saW5lLWl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XFxuLmluaXRpYWxpc20ge1xcbiAgZm9udC1zaXplOiA5MCU7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XFxuLmJsb2NrcXVvdGUge1xcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xcbiAgYm9yZGVyLWxlZnQ6IDAuMjVyZW0gc29saWQgI2VjZWVlZjsgfVxcbi5ibG9ja3F1b3RlLWZvb3RlciB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGZvbnQtc2l6ZTogODAlO1xcbiAgY29sb3I6ICM2MzZjNzI7IH1cXG4uYmxvY2txdW90ZS1mb290ZXI6OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcMjAxNCAgIFxcXFxBMFxcXCI7IH1cXG4uYmxvY2txdW90ZS1yZXZlcnNlIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG4gIGJvcmRlci1yaWdodDogMC4yNXJlbSBzb2xpZCAjZWNlZWVmO1xcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cXG4uYmxvY2txdW90ZS1yZXZlcnNlIC5ibG9ja3F1b3RlLWZvb3Rlcjo6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiOyB9XFxuLmJsb2NrcXVvdGUtcmV2ZXJzZSAuYmxvY2txdW90ZS1mb290ZXI6OmFmdGVyIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFxcQTAgICBcXFxcMjAxNFxcXCI7IH1cXG4uaW1nLWZsdWlkIHtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGhlaWdodDogYXV0bzsgfVxcbi5pbWctdGh1bWJuYWlsIHtcXG4gIHBhZGRpbmc6IDAuMjVyZW07XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IGF1dG87IH1cXG4uZmlndXJlIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxcbi5maWd1cmUtaW1nIHtcXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxOyB9XFxuLmZpZ3VyZS1jYXB0aW9uIHtcXG4gIGZvbnQtc2l6ZTogOTAlO1xcbiAgY29sb3I6ICM2MzZjNzI7IH1cXG5jb2RlLCBrYmQsIHByZSwgc2FtcCB7XFxuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFxcXCJMaWJlcmF0aW9uIE1vbm9cXFwiLCBcXFwiQ291cmllciBOZXdcXFwiLCBtb25vc3BhY2U7IH1cXG5jb2RlIHtcXG4gIHBhZGRpbmc6IDAuMnJlbSAwLjRyZW07XFxuICBmb250LXNpemU6IDkwJTtcXG4gIGNvbG9yOiAjYmQ0MTQ3O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmOTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07IH1cXG5hID4gY29kZSB7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OyB9XFxua2JkIHtcXG4gIHBhZGRpbmc6IDAuMnJlbSAwLjRyZW07XFxuICBmb250LXNpemU6IDkwJTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI5MmIyYztcXG4gIGJvcmRlci1yYWRpdXM6IDAuMnJlbTsgfVxcbmtiZCBrYmQge1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBmb250LXNpemU6IDEwMCU7XFxuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XFxucHJlIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XFxuICBmb250LXNpemU6IDkwJTtcXG4gIGNvbG9yOiAjMjkyYjJjOyB9XFxucHJlIGNvZGUge1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxcbi5wcmUtc2Nyb2xsYWJsZSB7XFxuICBtYXgtaGVpZ2h0OiAzNDBweDtcXG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgfVxcbi5jb250YWluZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAgIC5jb250YWluZXIge1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gICAgLmNvbnRhaW5lciB7XFxuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgICAuY29udGFpbmVyIHtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xcbiAgICAuY29udGFpbmVyIHtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAgIC5jb250YWluZXIge1xcbiAgICAgIHdpZHRoOiA1NDBweDtcXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgICAuY29udGFpbmVyIHtcXG4gICAgICB3aWR0aDogNzIwcHg7XFxuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gICAgLmNvbnRhaW5lciB7XFxuICAgICAgd2lkdGg6IDk2MHB4O1xcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xcbiAgICAuY29udGFpbmVyIHtcXG4gICAgICB3aWR0aDogMTE0MHB4O1xcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XFxuLmNvbnRhaW5lci1mbHVpZCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIG1hcmdpbi1yaWdodDogYXV0bztcXG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gICAgLmNvbnRhaW5lci1mbHVpZCB7XFxuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgICAuY29udGFpbmVyLWZsdWlkIHtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAgIC5jb250YWluZXItZmx1aWQge1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAgIC5jb250YWluZXItZmx1aWQge1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9IH1cXG4ucm93IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XFxuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4OyB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAgIC5yb3cge1xcbiAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XFxuICAgICAgbWFyZ2luLWxlZnQ6IC0xNXB4OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gICAgLnJvdyB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcXG4gICAgICBtYXJnaW4tbGVmdDogLTE1cHg7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgICAucm93IHtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTVweDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xcbiAgICAucm93IHtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTVweDsgfSB9XFxuLm5vLWd1dHRlcnMge1xcbiAgbWFyZ2luLXJpZ2h0OiAwO1xcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4ubm8tZ3V0dGVycyA+IC5jb2wsIC5uby1ndXR0ZXJzID4gW2NsYXNzKj1cXFwiY29sLVxcXCJdIHtcXG4gICAgcGFkZGluZy1yaWdodDogMDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XFxuLmNvbC0xLCAuY29sLTIsIC5jb2wtMywgLmNvbC00LCAuY29sLTUsIC5jb2wtNiwgLmNvbC03LCAuY29sLTgsIC5jb2wtOSwgLmNvbC0xMCwgLmNvbC0xMSwgLmNvbC0xMiwgLmNvbCwgLmNvbC1zbS0xLCAuY29sLXNtLTIsIC5jb2wtc20tMywgLmNvbC1zbS00LCAuY29sLXNtLTUsIC5jb2wtc20tNiwgLmNvbC1zbS03LCAuY29sLXNtLTgsIC5jb2wtc20tOSwgLmNvbC1zbS0xMCwgLmNvbC1zbS0xMSwgLmNvbC1zbS0xMiwgLmNvbC1zbSwgLmNvbC1tZC0xLCAuY29sLW1kLTIsIC5jb2wtbWQtMywgLmNvbC1tZC00LCAuY29sLW1kLTUsIC5jb2wtbWQtNiwgLmNvbC1tZC03LCAuY29sLW1kLTgsIC5jb2wtbWQtOSwgLmNvbC1tZC0xMCwgLmNvbC1tZC0xMSwgLmNvbC1tZC0xMiwgLmNvbC1tZCwgLmNvbC1sZy0xLCAuY29sLWxnLTIsIC5jb2wtbGctMywgLmNvbC1sZy00LCAuY29sLWxnLTUsIC5jb2wtbGctNiwgLmNvbC1sZy03LCAuY29sLWxnLTgsIC5jb2wtbGctOSwgLmNvbC1sZy0xMCwgLmNvbC1sZy0xMSwgLmNvbC1sZy0xMiwgLmNvbC1sZywgLmNvbC14bC0xLCAuY29sLXhsLTIsIC5jb2wteGwtMywgLmNvbC14bC00LCAuY29sLXhsLTUsIC5jb2wteGwtNiwgLmNvbC14bC03LCAuY29sLXhsLTgsIC5jb2wteGwtOSwgLmNvbC14bC0xMCwgLmNvbC14bC0xMSwgLmNvbC14bC0xMiwgLmNvbC14bCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1pbi1oZWlnaHQ6IDFweDtcXG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gICAgLmNvbC0xLCAuY29sLTIsIC5jb2wtMywgLmNvbC00LCAuY29sLTUsIC5jb2wtNiwgLmNvbC03LCAuY29sLTgsIC5jb2wtOSwgLmNvbC0xMCwgLmNvbC0xMSwgLmNvbC0xMiwgLmNvbCwgLmNvbC1zbS0xLCAuY29sLXNtLTIsIC5jb2wtc20tMywgLmNvbC1zbS00LCAuY29sLXNtLTUsIC5jb2wtc20tNiwgLmNvbC1zbS03LCAuY29sLXNtLTgsIC5jb2wtc20tOSwgLmNvbC1zbS0xMCwgLmNvbC1zbS0xMSwgLmNvbC1zbS0xMiwgLmNvbC1zbSwgLmNvbC1tZC0xLCAuY29sLW1kLTIsIC5jb2wtbWQtMywgLmNvbC1tZC00LCAuY29sLW1kLTUsIC5jb2wtbWQtNiwgLmNvbC1tZC03LCAuY29sLW1kLTgsIC5jb2wtbWQtOSwgLmNvbC1tZC0xMCwgLmNvbC1tZC0xMSwgLmNvbC1tZC0xMiwgLmNvbC1tZCwgLmNvbC1sZy0xLCAuY29sLWxnLTIsIC5jb2wtbGctMywgLmNvbC1sZy00LCAuY29sLWxnLTUsIC5jb2wtbGctNiwgLmNvbC1sZy03LCAuY29sLWxnLTgsIC5jb2wtbGctOSwgLmNvbC1sZy0xMCwgLmNvbC1sZy0xMSwgLmNvbC1sZy0xMiwgLmNvbC1sZywgLmNvbC14bC0xLCAuY29sLXhsLTIsIC5jb2wteGwtMywgLmNvbC14bC00LCAuY29sLXhsLTUsIC5jb2wteGwtNiwgLmNvbC14bC03LCAuY29sLXhsLTgsIC5jb2wteGwtOSwgLmNvbC14bC0xMCwgLmNvbC14bC0xMSwgLmNvbC14bC0xMiwgLmNvbC14bCB7XFxuICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgICAuY29sLTEsIC5jb2wtMiwgLmNvbC0zLCAuY29sLTQsIC5jb2wtNSwgLmNvbC02LCAuY29sLTcsIC5jb2wtOCwgLmNvbC05LCAuY29sLTEwLCAuY29sLTExLCAuY29sLTEyLCAuY29sLCAuY29sLXNtLTEsIC5jb2wtc20tMiwgLmNvbC1zbS0zLCAuY29sLXNtLTQsIC5jb2wtc20tNSwgLmNvbC1zbS02LCAuY29sLXNtLTcsIC5jb2wtc20tOCwgLmNvbC1zbS05LCAuY29sLXNtLTEwLCAuY29sLXNtLTExLCAuY29sLXNtLTEyLCAuY29sLXNtLCAuY29sLW1kLTEsIC5jb2wtbWQtMiwgLmNvbC1tZC0zLCAuY29sLW1kLTQsIC5jb2wtbWQtNSwgLmNvbC1tZC02LCAuY29sLW1kLTcsIC5jb2wtbWQtOCwgLmNvbC1tZC05LCAuY29sLW1kLTEwLCAuY29sLW1kLTExLCAuY29sLW1kLTEyLCAuY29sLW1kLCAuY29sLWxnLTEsIC5jb2wtbGctMiwgLmNvbC1sZy0zLCAuY29sLWxnLTQsIC5jb2wtbGctNSwgLmNvbC1sZy02LCAuY29sLWxnLTcsIC5jb2wtbGctOCwgLmNvbC1sZy05LCAuY29sLWxnLTEwLCAuY29sLWxnLTExLCAuY29sLWxnLTEyLCAuY29sLWxnLCAuY29sLXhsLTEsIC5jb2wteGwtMiwgLmNvbC14bC0zLCAuY29sLXhsLTQsIC5jb2wteGwtNSwgLmNvbC14bC02LCAuY29sLXhsLTcsIC5jb2wteGwtOCwgLmNvbC14bC05LCAuY29sLXhsLTEwLCAuY29sLXhsLTExLCAuY29sLXhsLTEyLCAuY29sLXhsIHtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAgIC5jb2wtMSwgLmNvbC0yLCAuY29sLTMsIC5jb2wtNCwgLmNvbC01LCAuY29sLTYsIC5jb2wtNywgLmNvbC04LCAuY29sLTksIC5jb2wtMTAsIC5jb2wtMTEsIC5jb2wtMTIsIC5jb2wsIC5jb2wtc20tMSwgLmNvbC1zbS0yLCAuY29sLXNtLTMsIC5jb2wtc20tNCwgLmNvbC1zbS01LCAuY29sLXNtLTYsIC5jb2wtc20tNywgLmNvbC1zbS04LCAuY29sLXNtLTksIC5jb2wtc20tMTAsIC5jb2wtc20tMTEsIC5jb2wtc20tMTIsIC5jb2wtc20sIC5jb2wtbWQtMSwgLmNvbC1tZC0yLCAuY29sLW1kLTMsIC5jb2wtbWQtNCwgLmNvbC1tZC01LCAuY29sLW1kLTYsIC5jb2wtbWQtNywgLmNvbC1tZC04LCAuY29sLW1kLTksIC5jb2wtbWQtMTAsIC5jb2wtbWQtMTEsIC5jb2wtbWQtMTIsIC5jb2wtbWQsIC5jb2wtbGctMSwgLmNvbC1sZy0yLCAuY29sLWxnLTMsIC5jb2wtbGctNCwgLmNvbC1sZy01LCAuY29sLWxnLTYsIC5jb2wtbGctNywgLmNvbC1sZy04LCAuY29sLWxnLTksIC5jb2wtbGctMTAsIC5jb2wtbGctMTEsIC5jb2wtbGctMTIsIC5jb2wtbGcsIC5jb2wteGwtMSwgLmNvbC14bC0yLCAuY29sLXhsLTMsIC5jb2wteGwtNCwgLmNvbC14bC01LCAuY29sLXhsLTYsIC5jb2wteGwtNywgLmNvbC14bC04LCAuY29sLXhsLTksIC5jb2wteGwtMTAsIC5jb2wteGwtMTEsIC5jb2wteGwtMTIsIC5jb2wteGwge1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAgIC5jb2wtMSwgLmNvbC0yLCAuY29sLTMsIC5jb2wtNCwgLmNvbC01LCAuY29sLTYsIC5jb2wtNywgLmNvbC04LCAuY29sLTksIC5jb2wtMTAsIC5jb2wtMTEsIC5jb2wtMTIsIC5jb2wsIC5jb2wtc20tMSwgLmNvbC1zbS0yLCAuY29sLXNtLTMsIC5jb2wtc20tNCwgLmNvbC1zbS01LCAuY29sLXNtLTYsIC5jb2wtc20tNywgLmNvbC1zbS04LCAuY29sLXNtLTksIC5jb2wtc20tMTAsIC5jb2wtc20tMTEsIC5jb2wtc20tMTIsIC5jb2wtc20sIC5jb2wtbWQtMSwgLmNvbC1tZC0yLCAuY29sLW1kLTMsIC5jb2wtbWQtNCwgLmNvbC1tZC01LCAuY29sLW1kLTYsIC5jb2wtbWQtNywgLmNvbC1tZC04LCAuY29sLW1kLTksIC5jb2wtbWQtMTAsIC5jb2wtbWQtMTEsIC5jb2wtbWQtMTIsIC5jb2wtbWQsIC5jb2wtbGctMSwgLmNvbC1sZy0yLCAuY29sLWxnLTMsIC5jb2wtbGctNCwgLmNvbC1sZy01LCAuY29sLWxnLTYsIC5jb2wtbGctNywgLmNvbC1sZy04LCAuY29sLWxnLTksIC5jb2wtbGctMTAsIC5jb2wtbGctMTEsIC5jb2wtbGctMTIsIC5jb2wtbGcsIC5jb2wteGwtMSwgLmNvbC14bC0yLCAuY29sLXhsLTMsIC5jb2wteGwtNCwgLmNvbC14bC01LCAuY29sLXhsLTYsIC5jb2wteGwtNywgLmNvbC14bC04LCAuY29sLXhsLTksIC5jb2wteGwtMTAsIC5jb2wteGwtMTEsIC5jb2wteGwtMTIsIC5jb2wteGwge1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9IH1cXG4uY29sIHtcXG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwO1xcbiAgICAgIGZsZXgtYmFzaXM6IDA7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XFxuICBtYXgtd2lkdGg6IDEwMCU7IH1cXG4uY29sLWF1dG8ge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgd2lkdGg6IGF1dG87IH1cXG4uY29sLTEge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDguMzMzMzMlO1xcbiAgICAgICAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XFxuICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XFxuLmNvbC0yIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCAxNi42NjY2NyU7XFxuICAgICAgICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XFxuICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxcbi5jb2wtMyB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgMjUlO1xcbiAgICAgICAgICBmbGV4OiAwIDAgMjUlO1xcbiAgbWF4LXdpZHRoOiAyNSU7IH1cXG4uY29sLTQge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDMzLjMzMzMzJTtcXG4gICAgICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcXG4gIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XFxuLmNvbC01IHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCA0MS42NjY2NyU7XFxuICAgICAgICAgIGZsZXg6IDAgMCA0MS42NjY2NyU7XFxuICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxcbi5jb2wtNiB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgNTAlO1xcbiAgICAgICAgICBmbGV4OiAwIDAgNTAlO1xcbiAgbWF4LXdpZHRoOiA1MCU7IH1cXG4uY29sLTcge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDU4LjMzMzMzJTtcXG4gICAgICAgICAgZmxleDogMCAwIDU4LjMzMzMzJTtcXG4gIG1heC13aWR0aDogNTguMzMzMzMlOyB9XFxuLmNvbC04IHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCA2Ni42NjY2NyU7XFxuICAgICAgICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XFxuICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxcbi5jb2wtOSB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgNzUlO1xcbiAgICAgICAgICBmbGV4OiAwIDAgNzUlO1xcbiAgbWF4LXdpZHRoOiA3NSU7IH1cXG4uY29sLTEwIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCA4My4zMzMzMyU7XFxuICAgICAgICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XFxuICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxcbi5jb2wtMTEge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDkxLjY2NjY3JTtcXG4gICAgICAgICAgZmxleDogMCAwIDkxLjY2NjY3JTtcXG4gIG1heC13aWR0aDogOTEuNjY2NjclOyB9XFxuLmNvbC0xMiB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgMTAwJTtcXG4gICAgICAgICAgZmxleDogMCAwIDEwMCU7XFxuICBtYXgtd2lkdGg6IDEwMCU7IH1cXG4ucHVsbC0wIHtcXG4gIHJpZ2h0OiBhdXRvOyB9XFxuLnB1bGwtMSB7XFxuICByaWdodDogOC4zMzMzMyU7IH1cXG4ucHVsbC0yIHtcXG4gIHJpZ2h0OiAxNi42NjY2NyU7IH1cXG4ucHVsbC0zIHtcXG4gIHJpZ2h0OiAyNSU7IH1cXG4ucHVsbC00IHtcXG4gIHJpZ2h0OiAzMy4zMzMzMyU7IH1cXG4ucHVsbC01IHtcXG4gIHJpZ2h0OiA0MS42NjY2NyU7IH1cXG4ucHVsbC02IHtcXG4gIHJpZ2h0OiA1MCU7IH1cXG4ucHVsbC03IHtcXG4gIHJpZ2h0OiA1OC4zMzMzMyU7IH1cXG4ucHVsbC04IHtcXG4gIHJpZ2h0OiA2Ni42NjY2NyU7IH1cXG4ucHVsbC05IHtcXG4gIHJpZ2h0OiA3NSU7IH1cXG4ucHVsbC0xMCB7XFxuICByaWdodDogODMuMzMzMzMlOyB9XFxuLnB1bGwtMTEge1xcbiAgcmlnaHQ6IDkxLjY2NjY3JTsgfVxcbi5wdWxsLTEyIHtcXG4gIHJpZ2h0OiAxMDAlOyB9XFxuLnB1c2gtMCB7XFxuICBsZWZ0OiBhdXRvOyB9XFxuLnB1c2gtMSB7XFxuICBsZWZ0OiA4LjMzMzMzJTsgfVxcbi5wdXNoLTIge1xcbiAgbGVmdDogMTYuNjY2NjclOyB9XFxuLnB1c2gtMyB7XFxuICBsZWZ0OiAyNSU7IH1cXG4ucHVzaC00IHtcXG4gIGxlZnQ6IDMzLjMzMzMzJTsgfVxcbi5wdXNoLTUge1xcbiAgbGVmdDogNDEuNjY2NjclOyB9XFxuLnB1c2gtNiB7XFxuICBsZWZ0OiA1MCU7IH1cXG4ucHVzaC03IHtcXG4gIGxlZnQ6IDU4LjMzMzMzJTsgfVxcbi5wdXNoLTgge1xcbiAgbGVmdDogNjYuNjY2NjclOyB9XFxuLnB1c2gtOSB7XFxuICBsZWZ0OiA3NSU7IH1cXG4ucHVzaC0xMCB7XFxuICBsZWZ0OiA4My4zMzMzMyU7IH1cXG4ucHVzaC0xMSB7XFxuICBsZWZ0OiA5MS42NjY2NyU7IH1cXG4ucHVzaC0xMiB7XFxuICBsZWZ0OiAxMDAlOyB9XFxuLm9mZnNldC0xIHtcXG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxcbi5vZmZzZXQtMiB7XFxuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XFxuLm9mZnNldC0zIHtcXG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cXG4ub2Zmc2V0LTQge1xcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxcbi5vZmZzZXQtNSB7XFxuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XFxuLm9mZnNldC02IHtcXG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cXG4ub2Zmc2V0LTcge1xcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxcbi5vZmZzZXQtOCB7XFxuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XFxuLm9mZnNldC05IHtcXG4gIG1hcmdpbi1sZWZ0OiA3NSU7IH1cXG4ub2Zmc2V0LTEwIHtcXG4gIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cXG4ub2Zmc2V0LTExIHtcXG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gIC5jb2wtc20ge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMDtcXG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTtcXG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XFxuICAgIG1heC13aWR0aDogMTAwJTsgfVxcbiAgLmNvbC1zbS1hdXRvIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gICAgd2lkdGg6IGF1dG87IH1cXG4gIC5jb2wtc20tMSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDguMzMzMzMlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcXG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxcbiAgLmNvbC1zbS0yIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgMTYuNjY2NjclO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XFxuICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XFxuICAuY29sLXNtLTMge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCAyNSU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDI1JTtcXG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cXG4gIC5jb2wtc20tNCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDMzLjMzMzMzJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxcbiAgLmNvbC1zbS01IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNDEuNjY2NjclO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA0MS42NjY2NyU7XFxuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XFxuICAuY29sLXNtLTYge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA1MCU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDUwJTtcXG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cXG4gIC5jb2wtc20tNyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDU4LjMzMzMzJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNTguMzMzMzMlO1xcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxcbiAgLmNvbC1zbS04IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNjYuNjY2NjclO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XFxuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XFxuICAuY29sLXNtLTkge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA3NSU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDc1JTtcXG4gICAgbWF4LXdpZHRoOiA3NSU7IH1cXG4gIC5jb2wtc20tMTAge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA4My4zMzMzMyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDgzLjMzMzMzJTtcXG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cXG4gIC5jb2wtc20tMTEge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA5MS42NjY2NyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDkxLjY2NjY3JTtcXG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cXG4gIC5jb2wtc20tMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCAxMDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cXG4gIC5wdWxsLXNtLTAge1xcbiAgICByaWdodDogYXV0bzsgfVxcbiAgLnB1bGwtc20tMSB7XFxuICAgIHJpZ2h0OiA4LjMzMzMzJTsgfVxcbiAgLnB1bGwtc20tMiB7XFxuICAgIHJpZ2h0OiAxNi42NjY2NyU7IH1cXG4gIC5wdWxsLXNtLTMge1xcbiAgICByaWdodDogMjUlOyB9XFxuICAucHVsbC1zbS00IHtcXG4gICAgcmlnaHQ6IDMzLjMzMzMzJTsgfVxcbiAgLnB1bGwtc20tNSB7XFxuICAgIHJpZ2h0OiA0MS42NjY2NyU7IH1cXG4gIC5wdWxsLXNtLTYge1xcbiAgICByaWdodDogNTAlOyB9XFxuICAucHVsbC1zbS03IHtcXG4gICAgcmlnaHQ6IDU4LjMzMzMzJTsgfVxcbiAgLnB1bGwtc20tOCB7XFxuICAgIHJpZ2h0OiA2Ni42NjY2NyU7IH1cXG4gIC5wdWxsLXNtLTkge1xcbiAgICByaWdodDogNzUlOyB9XFxuICAucHVsbC1zbS0xMCB7XFxuICAgIHJpZ2h0OiA4My4zMzMzMyU7IH1cXG4gIC5wdWxsLXNtLTExIHtcXG4gICAgcmlnaHQ6IDkxLjY2NjY3JTsgfVxcbiAgLnB1bGwtc20tMTIge1xcbiAgICByaWdodDogMTAwJTsgfVxcbiAgLnB1c2gtc20tMCB7XFxuICAgIGxlZnQ6IGF1dG87IH1cXG4gIC5wdXNoLXNtLTEge1xcbiAgICBsZWZ0OiA4LjMzMzMzJTsgfVxcbiAgLnB1c2gtc20tMiB7XFxuICAgIGxlZnQ6IDE2LjY2NjY3JTsgfVxcbiAgLnB1c2gtc20tMyB7XFxuICAgIGxlZnQ6IDI1JTsgfVxcbiAgLnB1c2gtc20tNCB7XFxuICAgIGxlZnQ6IDMzLjMzMzMzJTsgfVxcbiAgLnB1c2gtc20tNSB7XFxuICAgIGxlZnQ6IDQxLjY2NjY3JTsgfVxcbiAgLnB1c2gtc20tNiB7XFxuICAgIGxlZnQ6IDUwJTsgfVxcbiAgLnB1c2gtc20tNyB7XFxuICAgIGxlZnQ6IDU4LjMzMzMzJTsgfVxcbiAgLnB1c2gtc20tOCB7XFxuICAgIGxlZnQ6IDY2LjY2NjY3JTsgfVxcbiAgLnB1c2gtc20tOSB7XFxuICAgIGxlZnQ6IDc1JTsgfVxcbiAgLnB1c2gtc20tMTAge1xcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cXG4gIC5wdXNoLXNtLTExIHtcXG4gICAgbGVmdDogOTEuNjY2NjclOyB9XFxuICAucHVzaC1zbS0xMiB7XFxuICAgIGxlZnQ6IDEwMCU7IH1cXG4gIC5vZmZzZXQtc20tMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxcbiAgLm9mZnNldC1zbS0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XFxuICAub2Zmc2V0LXNtLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XFxuICAub2Zmc2V0LXNtLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XFxuICAub2Zmc2V0LXNtLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XFxuICAub2Zmc2V0LXNtLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XFxuICAub2Zmc2V0LXNtLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XFxuICAub2Zmc2V0LXNtLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XFxuICAub2Zmc2V0LXNtLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XFxuICAub2Zmc2V0LXNtLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XFxuICAub2Zmc2V0LXNtLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxcbiAgLm9mZnNldC1zbS0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLmNvbC1tZCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwO1xcbiAgICAgICAgZmxleC1iYXNpczogMDtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcXG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XFxuICAuY29sLW1kLWF1dG8ge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgICB3aWR0aDogYXV0bzsgfVxcbiAgLmNvbC1tZC0xIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgOC4zMzMzMyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDguMzMzMzMlO1xcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XFxuICAuY29sLW1kLTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCAxNi42NjY2NyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDE2LjY2NjY3JTtcXG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cXG4gIC5jb2wtbWQtMyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDI1JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgMjUlO1xcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxcbiAgLmNvbC1tZC00IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgMzMuMzMzMzMlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XFxuICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XFxuICAuY29sLW1kLTUge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA0MS42NjY2NyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDQxLjY2NjY3JTtcXG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyU7IH1cXG4gIC5jb2wtbWQtNiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDUwJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNTAlO1xcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxcbiAgLmNvbC1tZC03IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNTguMzMzMzMlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XFxuICAgIG1heC13aWR0aDogNTguMzMzMzMlOyB9XFxuICAuY29sLW1kLTgge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA2Ni42NjY2NyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDY2LjY2NjY3JTtcXG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7IH1cXG4gIC5jb2wtbWQtOSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDc1JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNzUlO1xcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxcbiAgLmNvbC1tZC0xMCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDgzLjMzMzMzJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxcbiAgLmNvbC1tZC0xMSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDkxLjY2NjY3JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgOTEuNjY2NjclO1xcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JTsgfVxcbiAgLmNvbC1tZC0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDEwMCU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDEwMCU7XFxuICAgIG1heC13aWR0aDogMTAwJTsgfVxcbiAgLnB1bGwtbWQtMCB7XFxuICAgIHJpZ2h0OiBhdXRvOyB9XFxuICAucHVsbC1tZC0xIHtcXG4gICAgcmlnaHQ6IDguMzMzMzMlOyB9XFxuICAucHVsbC1tZC0yIHtcXG4gICAgcmlnaHQ6IDE2LjY2NjY3JTsgfVxcbiAgLnB1bGwtbWQtMyB7XFxuICAgIHJpZ2h0OiAyNSU7IH1cXG4gIC5wdWxsLW1kLTQge1xcbiAgICByaWdodDogMzMuMzMzMzMlOyB9XFxuICAucHVsbC1tZC01IHtcXG4gICAgcmlnaHQ6IDQxLjY2NjY3JTsgfVxcbiAgLnB1bGwtbWQtNiB7XFxuICAgIHJpZ2h0OiA1MCU7IH1cXG4gIC5wdWxsLW1kLTcge1xcbiAgICByaWdodDogNTguMzMzMzMlOyB9XFxuICAucHVsbC1tZC04IHtcXG4gICAgcmlnaHQ6IDY2LjY2NjY3JTsgfVxcbiAgLnB1bGwtbWQtOSB7XFxuICAgIHJpZ2h0OiA3NSU7IH1cXG4gIC5wdWxsLW1kLTEwIHtcXG4gICAgcmlnaHQ6IDgzLjMzMzMzJTsgfVxcbiAgLnB1bGwtbWQtMTEge1xcbiAgICByaWdodDogOTEuNjY2NjclOyB9XFxuICAucHVsbC1tZC0xMiB7XFxuICAgIHJpZ2h0OiAxMDAlOyB9XFxuICAucHVzaC1tZC0wIHtcXG4gICAgbGVmdDogYXV0bzsgfVxcbiAgLnB1c2gtbWQtMSB7XFxuICAgIGxlZnQ6IDguMzMzMzMlOyB9XFxuICAucHVzaC1tZC0yIHtcXG4gICAgbGVmdDogMTYuNjY2NjclOyB9XFxuICAucHVzaC1tZC0zIHtcXG4gICAgbGVmdDogMjUlOyB9XFxuICAucHVzaC1tZC00IHtcXG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XFxuICAucHVzaC1tZC01IHtcXG4gICAgbGVmdDogNDEuNjY2NjclOyB9XFxuICAucHVzaC1tZC02IHtcXG4gICAgbGVmdDogNTAlOyB9XFxuICAucHVzaC1tZC03IHtcXG4gICAgbGVmdDogNTguMzMzMzMlOyB9XFxuICAucHVzaC1tZC04IHtcXG4gICAgbGVmdDogNjYuNjY2NjclOyB9XFxuICAucHVzaC1tZC05IHtcXG4gICAgbGVmdDogNzUlOyB9XFxuICAucHVzaC1tZC0xMCB7XFxuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxcbiAgLnB1c2gtbWQtMTEge1xcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cXG4gIC5wdXNoLW1kLTEyIHtcXG4gICAgbGVmdDogMTAwJTsgfVxcbiAgLm9mZnNldC1tZC0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XFxuICAub2Zmc2V0LW1kLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cXG4gIC5vZmZzZXQtbWQtMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cXG4gIC5vZmZzZXQtbWQtMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cXG4gIC5vZmZzZXQtbWQtNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cXG4gIC5vZmZzZXQtbWQtNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cXG4gIC5vZmZzZXQtbWQtNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cXG4gIC5vZmZzZXQtbWQtNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cXG4gIC5vZmZzZXQtbWQtOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cXG4gIC5vZmZzZXQtbWQtOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cXG4gIC5vZmZzZXQtbWQtMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XFxuICAub2Zmc2V0LW1kLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAuY29sLWxnIHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDA7XFxuICAgICAgICBmbGV4LWJhc2lzOiAwO1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XFxuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cXG4gIC5jb2wtbGctYXV0byB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICAgIHdpZHRoOiBhdXRvOyB9XFxuICAuY29sLWxnLTEge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA4LjMzMzMzJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XFxuICAgIG1heC13aWR0aDogOC4zMzMzMyU7IH1cXG4gIC5jb2wtbGctMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDE2LjY2NjY3JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxcbiAgLmNvbC1sZy0zIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgMjUlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCAyNSU7XFxuICAgIG1heC13aWR0aDogMjUlOyB9XFxuICAuY29sLWxnLTQge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCAzMy4zMzMzMyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcXG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cXG4gIC5jb2wtbGctNSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDQxLjY2NjY3JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxcbiAgLmNvbC1sZy02IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNTAlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA1MCU7XFxuICAgIG1heC13aWR0aDogNTAlOyB9XFxuICAuY29sLWxnLTcge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA1OC4zMzMzMyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDU4LjMzMzMzJTtcXG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cXG4gIC5jb2wtbGctOCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDY2LjY2NjY3JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxcbiAgLmNvbC1sZy05IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNzUlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA3NSU7XFxuICAgIG1heC13aWR0aDogNzUlOyB9XFxuICAuY29sLWxnLTEwIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgODMuMzMzMzMlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XFxuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XFxuICAuY29sLWxnLTExIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgOTEuNjY2NjclO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XFxuICAgIG1heC13aWR0aDogOTEuNjY2NjclOyB9XFxuICAuY29sLWxnLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgMTAwJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcXG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XFxuICAucHVsbC1sZy0wIHtcXG4gICAgcmlnaHQ6IGF1dG87IH1cXG4gIC5wdWxsLWxnLTEge1xcbiAgICByaWdodDogOC4zMzMzMyU7IH1cXG4gIC5wdWxsLWxnLTIge1xcbiAgICByaWdodDogMTYuNjY2NjclOyB9XFxuICAucHVsbC1sZy0zIHtcXG4gICAgcmlnaHQ6IDI1JTsgfVxcbiAgLnB1bGwtbGctNCB7XFxuICAgIHJpZ2h0OiAzMy4zMzMzMyU7IH1cXG4gIC5wdWxsLWxnLTUge1xcbiAgICByaWdodDogNDEuNjY2NjclOyB9XFxuICAucHVsbC1sZy02IHtcXG4gICAgcmlnaHQ6IDUwJTsgfVxcbiAgLnB1bGwtbGctNyB7XFxuICAgIHJpZ2h0OiA1OC4zMzMzMyU7IH1cXG4gIC5wdWxsLWxnLTgge1xcbiAgICByaWdodDogNjYuNjY2NjclOyB9XFxuICAucHVsbC1sZy05IHtcXG4gICAgcmlnaHQ6IDc1JTsgfVxcbiAgLnB1bGwtbGctMTAge1xcbiAgICByaWdodDogODMuMzMzMzMlOyB9XFxuICAucHVsbC1sZy0xMSB7XFxuICAgIHJpZ2h0OiA5MS42NjY2NyU7IH1cXG4gIC5wdWxsLWxnLTEyIHtcXG4gICAgcmlnaHQ6IDEwMCU7IH1cXG4gIC5wdXNoLWxnLTAge1xcbiAgICBsZWZ0OiBhdXRvOyB9XFxuICAucHVzaC1sZy0xIHtcXG4gICAgbGVmdDogOC4zMzMzMyU7IH1cXG4gIC5wdXNoLWxnLTIge1xcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cXG4gIC5wdXNoLWxnLTMge1xcbiAgICBsZWZ0OiAyNSU7IH1cXG4gIC5wdXNoLWxnLTQge1xcbiAgICBsZWZ0OiAzMy4zMzMzMyU7IH1cXG4gIC5wdXNoLWxnLTUge1xcbiAgICBsZWZ0OiA0MS42NjY2NyU7IH1cXG4gIC5wdXNoLWxnLTYge1xcbiAgICBsZWZ0OiA1MCU7IH1cXG4gIC5wdXNoLWxnLTcge1xcbiAgICBsZWZ0OiA1OC4zMzMzMyU7IH1cXG4gIC5wdXNoLWxnLTgge1xcbiAgICBsZWZ0OiA2Ni42NjY2NyU7IH1cXG4gIC5wdXNoLWxnLTkge1xcbiAgICBsZWZ0OiA3NSU7IH1cXG4gIC5wdXNoLWxnLTEwIHtcXG4gICAgbGVmdDogODMuMzMzMzMlOyB9XFxuICAucHVzaC1sZy0xMSB7XFxuICAgIGxlZnQ6IDkxLjY2NjY3JTsgfVxcbiAgLnB1c2gtbGctMTIge1xcbiAgICBsZWZ0OiAxMDAlOyB9XFxuICAub2Zmc2V0LWxnLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cXG4gIC5vZmZzZXQtbGctMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxcbiAgLm9mZnNldC1sZy0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxcbiAgLm9mZnNldC1sZy0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxcbiAgLm9mZnNldC1sZy00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxcbiAgLm9mZnNldC1sZy01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxcbiAgLm9mZnNldC1sZy02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxcbiAgLm9mZnNldC1sZy03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxcbiAgLm9mZnNldC1sZy04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxcbiAgLm9mZnNldC1sZy05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxcbiAgLm9mZnNldC1sZy0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cXG4gIC5vZmZzZXQtbGctMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAuY29sLXhsIHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDA7XFxuICAgICAgICBmbGV4LWJhc2lzOiAwO1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7XFxuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cXG4gIC5jb2wteGwtYXV0byB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICAgIHdpZHRoOiBhdXRvOyB9XFxuICAuY29sLXhsLTEge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA4LjMzMzMzJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XFxuICAgIG1heC13aWR0aDogOC4zMzMzMyU7IH1cXG4gIC5jb2wteGwtMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDE2LjY2NjY3JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxcbiAgLmNvbC14bC0zIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgMjUlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCAyNSU7XFxuICAgIG1heC13aWR0aDogMjUlOyB9XFxuICAuY29sLXhsLTQge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCAzMy4zMzMzMyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcXG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cXG4gIC5jb2wteGwtNSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDQxLjY2NjY3JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxcbiAgLmNvbC14bC02IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNTAlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA1MCU7XFxuICAgIG1heC13aWR0aDogNTAlOyB9XFxuICAuY29sLXhsLTcge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCA1OC4zMzMzMyU7XFxuICAgICAgICAgICAgZmxleDogMCAwIDU4LjMzMzMzJTtcXG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cXG4gIC5jb2wteGwtOCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIDY2LjY2NjY3JTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxcbiAgLmNvbC14bC05IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNzUlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA3NSU7XFxuICAgIG1heC13aWR0aDogNzUlOyB9XFxuICAuY29sLXhsLTEwIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgODMuMzMzMzMlO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XFxuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XFxuICAuY29sLXhsLTExIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgOTEuNjY2NjclO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XFxuICAgIG1heC13aWR0aDogOTEuNjY2NjclOyB9XFxuICAuY29sLXhsLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgMTAwJTtcXG4gICAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcXG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XFxuICAucHVsbC14bC0wIHtcXG4gICAgcmlnaHQ6IGF1dG87IH1cXG4gIC5wdWxsLXhsLTEge1xcbiAgICByaWdodDogOC4zMzMzMyU7IH1cXG4gIC5wdWxsLXhsLTIge1xcbiAgICByaWdodDogMTYuNjY2NjclOyB9XFxuICAucHVsbC14bC0zIHtcXG4gICAgcmlnaHQ6IDI1JTsgfVxcbiAgLnB1bGwteGwtNCB7XFxuICAgIHJpZ2h0OiAzMy4zMzMzMyU7IH1cXG4gIC5wdWxsLXhsLTUge1xcbiAgICByaWdodDogNDEuNjY2NjclOyB9XFxuICAucHVsbC14bC02IHtcXG4gICAgcmlnaHQ6IDUwJTsgfVxcbiAgLnB1bGwteGwtNyB7XFxuICAgIHJpZ2h0OiA1OC4zMzMzMyU7IH1cXG4gIC5wdWxsLXhsLTgge1xcbiAgICByaWdodDogNjYuNjY2NjclOyB9XFxuICAucHVsbC14bC05IHtcXG4gICAgcmlnaHQ6IDc1JTsgfVxcbiAgLnB1bGwteGwtMTAge1xcbiAgICByaWdodDogODMuMzMzMzMlOyB9XFxuICAucHVsbC14bC0xMSB7XFxuICAgIHJpZ2h0OiA5MS42NjY2NyU7IH1cXG4gIC5wdWxsLXhsLTEyIHtcXG4gICAgcmlnaHQ6IDEwMCU7IH1cXG4gIC5wdXNoLXhsLTAge1xcbiAgICBsZWZ0OiBhdXRvOyB9XFxuICAucHVzaC14bC0xIHtcXG4gICAgbGVmdDogOC4zMzMzMyU7IH1cXG4gIC5wdXNoLXhsLTIge1xcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cXG4gIC5wdXNoLXhsLTMge1xcbiAgICBsZWZ0OiAyNSU7IH1cXG4gIC5wdXNoLXhsLTQge1xcbiAgICBsZWZ0OiAzMy4zMzMzMyU7IH1cXG4gIC5wdXNoLXhsLTUge1xcbiAgICBsZWZ0OiA0MS42NjY2NyU7IH1cXG4gIC5wdXNoLXhsLTYge1xcbiAgICBsZWZ0OiA1MCU7IH1cXG4gIC5wdXNoLXhsLTcge1xcbiAgICBsZWZ0OiA1OC4zMzMzMyU7IH1cXG4gIC5wdXNoLXhsLTgge1xcbiAgICBsZWZ0OiA2Ni42NjY2NyU7IH1cXG4gIC5wdXNoLXhsLTkge1xcbiAgICBsZWZ0OiA3NSU7IH1cXG4gIC5wdXNoLXhsLTEwIHtcXG4gICAgbGVmdDogODMuMzMzMzMlOyB9XFxuICAucHVzaC14bC0xMSB7XFxuICAgIGxlZnQ6IDkxLjY2NjY3JTsgfVxcbiAgLnB1c2gteGwtMTIge1xcbiAgICBsZWZ0OiAxMDAlOyB9XFxuICAub2Zmc2V0LXhsLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cXG4gIC5vZmZzZXQteGwtMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxcbiAgLm9mZnNldC14bC0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxcbiAgLm9mZnNldC14bC0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxcbiAgLm9mZnNldC14bC00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxcbiAgLm9mZnNldC14bC01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxcbiAgLm9mZnNldC14bC02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxcbiAgLm9mZnNldC14bC03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxcbiAgLm9mZnNldC14bC04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxcbiAgLm9mZnNldC14bC05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxcbiAgLm9mZnNldC14bC0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cXG4gIC5vZmZzZXQteGwtMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9IH1cXG4udGFibGUge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XFxuLnRhYmxlIHRoLCAudGFibGUgdGQge1xcbiAgICBwYWRkaW5nOiAwLjc1cmVtO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2VjZWVlZjsgfVxcbi50YWJsZSB0aGVhZCB0aCB7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XFxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZWNlZWVmOyB9XFxuLnRhYmxlIHRib2R5ICsgdGJvZHkge1xcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgI2VjZWVlZjsgfVxcbi50YWJsZSAudGFibGUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XFxuLnRhYmxlLXNtIHRoLCAudGFibGUtc20gdGQge1xcbiAgcGFkZGluZzogMC4zcmVtOyB9XFxuLnRhYmxlLWJvcmRlcmVkIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlY2VlZWY7IH1cXG4udGFibGUtYm9yZGVyZWQgdGgsIC50YWJsZS1ib3JkZXJlZCB0ZCB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlY2VlZWY7IH1cXG4udGFibGUtYm9yZGVyZWQgdGhlYWQgdGgsIC50YWJsZS1ib3JkZXJlZCB0aGVhZCB0ZCB7XFxuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDsgfVxcbi50YWJsZS1zdHJpcGVkIHRib2R5IHRyOm50aC1vZi10eXBlKG9kZCkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTsgfVxcbi50YWJsZS1ob3ZlciB0Ym9keSB0cjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDc1KTsgfVxcbi50YWJsZS1hY3RpdmUsIC50YWJsZS1hY3RpdmUgPiB0aCwgLnRhYmxlLWFjdGl2ZSA+IHRkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNzUpOyB9XFxuLnRhYmxlLWhvdmVyIC50YWJsZS1hY3RpdmU6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA3NSk7IH1cXG4udGFibGUtaG92ZXIgLnRhYmxlLWFjdGl2ZTpob3ZlciA+IHRkLCAudGFibGUtaG92ZXIgLnRhYmxlLWFjdGl2ZTpob3ZlciA+IHRoIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA3NSk7IH1cXG4udGFibGUtc3VjY2VzcywgLnRhYmxlLXN1Y2Nlc3MgPiB0aCwgLnRhYmxlLXN1Y2Nlc3MgPiB0ZCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4OyB9XFxuLnRhYmxlLWhvdmVyIC50YWJsZS1zdWNjZXNzOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGU5YzY7IH1cXG4udGFibGUtaG92ZXIgLnRhYmxlLXN1Y2Nlc3M6aG92ZXIgPiB0ZCwgLnRhYmxlLWhvdmVyIC50YWJsZS1zdWNjZXNzOmhvdmVyID4gdGgge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBlOWM2OyB9XFxuLnRhYmxlLWluZm8sIC50YWJsZS1pbmZvID4gdGgsIC50YWJsZS1pbmZvID4gdGQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNzsgfVxcbi50YWJsZS1ob3ZlciAudGFibGUtaW5mbzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRlM2YzOyB9XFxuLnRhYmxlLWhvdmVyIC50YWJsZS1pbmZvOmhvdmVyID4gdGQsIC50YWJsZS1ob3ZlciAudGFibGUtaW5mbzpob3ZlciA+IHRoIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M0ZTNmMzsgfVxcbi50YWJsZS13YXJuaW5nLCAudGFibGUtd2FybmluZyA+IHRoLCAudGFibGUtd2FybmluZyA+IHRkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7IH1cXG4udGFibGUtaG92ZXIgLnRhYmxlLXdhcm5pbmc6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZjJjYzsgfVxcbi50YWJsZS1ob3ZlciAudGFibGUtd2FybmluZzpob3ZlciA+IHRkLCAudGFibGUtaG92ZXIgLnRhYmxlLXdhcm5pbmc6aG92ZXIgPiB0aCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWYyY2M7IH1cXG4udGFibGUtZGFuZ2VyLCAudGFibGUtZGFuZ2VyID4gdGgsIC50YWJsZS1kYW5nZXIgPiB0ZCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlOyB9XFxuLnRhYmxlLWhvdmVyIC50YWJsZS1kYW5nZXI6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViY2NjYzsgfVxcbi50YWJsZS1ob3ZlciAudGFibGUtZGFuZ2VyOmhvdmVyID4gdGQsIC50YWJsZS1ob3ZlciAudGFibGUtZGFuZ2VyOmhvdmVyID4gdGgge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJjY2NjOyB9XFxuLnRoZWFkLWludmVyc2UgdGgge1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyYjJjOyB9XFxuLnRoZWFkLWRlZmF1bHQgdGgge1xcbiAgY29sb3I6ICM0NjRhNGM7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZWVmOyB9XFxuLnRhYmxlLWludmVyc2Uge1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyYjJjOyB9XFxuLnRhYmxlLWludmVyc2UgdGgsIC50YWJsZS1pbnZlcnNlIHRkLCAudGFibGUtaW52ZXJzZSB0aGVhZCB0aCB7XFxuICAgIGJvcmRlci1jb2xvcjogI2ZmZjsgfVxcbi50YWJsZS1pbnZlcnNlLnRhYmxlLWJvcmRlcmVkIHtcXG4gICAgYm9yZGVyOiAwOyB9XFxuLnRhYmxlLXJlc3BvbnNpdmUge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93LXg6IGF1dG87XFxuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjsgfVxcbi50YWJsZS1yZXNwb25zaXZlLnRhYmxlLWJvcmRlcmVkIHtcXG4gICAgYm9yZGVyOiAwOyB9XFxuLmZvcm0tY29udHJvbCB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XFxuICBmb250LXNpemU6IDFyZW07XFxuICBsaW5lLWhlaWdodDogMS4yNTtcXG4gIGNvbG9yOiAjNDY0YTRjO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAwLjE1cywgLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IDAuMTVzO1xcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IDAuMTVzLCAtd2Via2l0LWJveC1zaGFkb3cgZWFzZS1pbi1vdXQgMC4xNXM7XFxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgMC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgMC4xNXM7XFxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgMC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgMC4xNXMsIC13ZWJraXQtYm94LXNoYWRvdyBlYXNlLWluLW91dCAwLjE1czsgfVxcbi5mb3JtLWNvbnRyb2w6Oi1tcy1leHBhbmQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyOiAwOyB9XFxuLmZvcm0tY29udHJvbDpmb2N1cyB7XFxuICAgIGNvbG9yOiAjNDY0YTRjO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgICBib3JkZXItY29sb3I6ICM1Y2IzZmQ7XFxuICAgIG91dGxpbmU6IG5vbmU7IH1cXG4uZm9ybS1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM2MzZjNzI7XFxuICAgIG9wYWNpdHk6IDE7IH1cXG4uZm9ybS1jb250cm9sOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICAgIGNvbG9yOiAjNjM2YzcyO1xcbiAgICBvcGFjaXR5OiAxOyB9XFxuLmZvcm0tY29udHJvbDo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgY29sb3I6ICM2MzZjNzI7XFxuICAgIG9wYWNpdHk6IDE7IH1cXG4uZm9ybS1jb250cm9sOjpwbGFjZWhvbGRlciB7XFxuICAgIGNvbG9yOiAjNjM2YzcyO1xcbiAgICBvcGFjaXR5OiAxOyB9XFxuLmZvcm0tY29udHJvbDpkaXNhYmxlZCwgLmZvcm0tY29udHJvbFtyZWFkb25seV0ge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZWVmO1xcbiAgICBvcGFjaXR5OiAxOyB9XFxuLmZvcm0tY29udHJvbDpkaXNhYmxlZCB7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cXG5zZWxlY3QuZm9ybS1jb250cm9sOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSB7XFxuICBoZWlnaHQ6IGNhbGMoMi4yNXJlbSArIDJweCk7IH1cXG5zZWxlY3QuZm9ybS1jb250cm9sOmZvY3VzOjotbXMtdmFsdWUge1xcbiAgY29sb3I6ICM0NjRhNGM7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XFxuLmZvcm0tY29udHJvbC1maWxlLCAuZm9ybS1jb250cm9sLXJhbmdlIHtcXG4gIGRpc3BsYXk6IGJsb2NrOyB9XFxuLmNvbC1mb3JtLWxhYmVsIHtcXG4gIHBhZGRpbmctdG9wOiBjYWxjKDAuNXJlbSAtIDFweCAqIDIpO1xcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMC41cmVtIC0gMXB4ICogMik7XFxuICBtYXJnaW4tYm90dG9tOiAwOyB9XFxuLmNvbC1mb3JtLWxhYmVsLWxnIHtcXG4gIHBhZGRpbmctdG9wOiBjYWxjKDAuNzVyZW0gLSAxcHggKiAyKTtcXG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDAuNzVyZW0gLSAxcHggKiAyKTtcXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTsgfVxcbi5jb2wtZm9ybS1sYWJlbC1zbSB7XFxuICBwYWRkaW5nLXRvcDogY2FsYygwLjI1cmVtIC0gMXB4ICogMik7XFxuICBwYWRkaW5nLWJvdHRvbTogY2FsYygwLjI1cmVtIC0gMXB4ICogMik7XFxuICBmb250LXNpemU6IDAuODc1cmVtOyB9XFxuLmNvbC1mb3JtLWxlZ2VuZCB7XFxuICBwYWRkaW5nLXRvcDogMC41cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxuICBmb250LXNpemU6IDFyZW07IH1cXG4uZm9ybS1jb250cm9sLXN0YXRpYyB7XFxuICBwYWRkaW5nLXRvcDogMC41cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxuICBsaW5lLWhlaWdodDogMS4yNTtcXG4gIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItd2lkdGg6IDFweCAwOyB9XFxuLmZvcm0tY29udHJvbC1zdGF0aWMuZm9ybS1jb250cm9sLXNtLCAuaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLXN0YXRpYy5mb3JtLWNvbnRyb2wsIC5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wtc3RhdGljLmlucHV0LWdyb3VwLWFkZG9uLCAuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmZvcm0tY29udHJvbC1zdGF0aWMuYnRuLCAuZm9ybS1jb250cm9sLXN0YXRpYy5mb3JtLWNvbnRyb2wtbGcsIC5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wtc3RhdGljLmZvcm0tY29udHJvbCwgLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbC1zdGF0aWMuaW5wdXQtZ3JvdXAtYWRkb24sIC5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuZm9ybS1jb250cm9sLXN0YXRpYy5idG4ge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cXG4uZm9ybS1jb250cm9sLXNtLCAuaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLCAuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sIC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcXG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMnJlbTsgfVxcbnNlbGVjdC5mb3JtLWNvbnRyb2wtc206bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLCAuaW5wdXQtZ3JvdXAtc20gPiBzZWxlY3QuZm9ybS1jb250cm9sOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSwgLmlucHV0LWdyb3VwLXNtID4gc2VsZWN0LmlucHV0LWdyb3VwLWFkZG9uOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSwgLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IHNlbGVjdC5idG46bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pIHtcXG4gIGhlaWdodDogMS44MTI1cmVtOyB9XFxuLmZvcm0tY29udHJvbC1sZywgLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCwgLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFkZG9uLCAuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XFxuICBwYWRkaW5nOiAwLjc1cmVtIDEuNXJlbTtcXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTsgfVxcbnNlbGVjdC5mb3JtLWNvbnRyb2wtbGc6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLCAuaW5wdXQtZ3JvdXAtbGcgPiBzZWxlY3QuZm9ybS1jb250cm9sOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSwgLmlucHV0LWdyb3VwLWxnID4gc2VsZWN0LmlucHV0LWdyb3VwLWFkZG9uOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSwgLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IHNlbGVjdC5idG46bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pIHtcXG4gIGhlaWdodDogMy4xNjY2N3JlbTsgfVxcbi5mb3JtLWdyb3VwIHtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cXG4uZm9ybS10ZXh0IHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTsgfVxcbi5mb3JtLWNoZWNrIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XFxuLmZvcm0tY2hlY2suZGlzYWJsZWQgLmZvcm0tY2hlY2stbGFiZWwge1xcbiAgICBjb2xvcjogIzYzNmM3MjtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxcbi5mb3JtLWNoZWNrLWxhYmVsIHtcXG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxuICBjdXJzb3I6IHBvaW50ZXI7IH1cXG4uZm9ybS1jaGVjay1pbnB1dCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xcbiAgbWFyZ2luLWxlZnQ6IC0xLjI1cmVtOyB9XFxuLmZvcm0tY2hlY2staW5wdXQ6b25seS1jaGlsZCB7XFxuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cXG4uZm9ybS1jaGVjay1pbmxpbmUge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XFxuLmZvcm0tY2hlY2staW5saW5lIC5mb3JtLWNoZWNrLWxhYmVsIHtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxcbi5mb3JtLWNoZWNrLWlubGluZSArIC5mb3JtLWNoZWNrLWlubGluZSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwLjc1cmVtOyB9XFxuLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XFxuICBtYXJnaW4tdG9wOiAwLjI1cmVtOyB9XFxuLmZvcm0tY29udHJvbC1zdWNjZXNzLCAuZm9ybS1jb250cm9sLXdhcm5pbmcsIC5mb3JtLWNvbnRyb2wtZGFuZ2VyIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDIuMjVyZW07XFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHJpZ2h0IDAuNTYyNXJlbTtcXG4gIGJhY2tncm91bmQtc2l6ZTogMS4xMjVyZW0gMS4xMjVyZW07IH1cXG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbC1mZWVkYmFjaywgLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wtbGFiZWwsIC5oYXMtc3VjY2VzcyAuY29sLWZvcm0tbGFiZWwsIC5oYXMtc3VjY2VzcyAuZm9ybS1jaGVjay1sYWJlbCwgLmhhcy1zdWNjZXNzIC5jdXN0b20tY29udHJvbCB7XFxuICBjb2xvcjogIzVjYjg1YzsgfVxcbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sIHtcXG4gIGJvcmRlci1jb2xvcjogIzVjYjg1YzsgfVxcbi5oYXMtc3VjY2VzcyAuaW5wdXQtZ3JvdXAtYWRkb24ge1xcbiAgY29sb3I6ICM1Y2I4NWM7XFxuICBib3JkZXItY29sb3I6ICM1Y2I4NWM7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFmNmVhOyB9XFxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wtc3VjY2VzcyB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDggOCclM0UlM0NwYXRoIGZpbGw9JyUyMzVjYjg1YycgZD0nTTIuMyA2LjczTC42IDQuNTNjLS40LTEuMDQuNDYtMS40IDEuMS0uOGwxLjEgMS40IDMuNC0zLjhjLjYtLjYzIDEuNi0uMjcgMS4yLjdsLTQgNC42Yy0uNDMuNS0uOC40LTEuMS4xeicvJTNFJTNDL3N2ZyUzRVxcXCIpOyB9XFxuLmhhcy13YXJuaW5nIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssIC5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sLWxhYmVsLCAuaGFzLXdhcm5pbmcgLmNvbC1mb3JtLWxhYmVsLCAuaGFzLXdhcm5pbmcgLmZvcm0tY2hlY2stbGFiZWwsIC5oYXMtd2FybmluZyAuY3VzdG9tLWNvbnRyb2wge1xcbiAgY29sb3I6ICNmMGFkNGU7IH1cXG4uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbCB7XFxuICBib3JkZXItY29sb3I6ICNmMGFkNGU7IH1cXG4uaGFzLXdhcm5pbmcgLmlucHV0LWdyb3VwLWFkZG9uIHtcXG4gIGNvbG9yOiAjZjBhZDRlO1xcbiAgYm9yZGVyLWNvbG9yOiAjZjBhZDRlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cXG4uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbC13YXJuaW5nIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOCA4JyUzRSUzQ3BhdGggZmlsbD0nJTIzZjBhZDRlJyBkPSdNNC40IDUuMzI0aC0uOHYtMi40NmguOHptMCAxLjQyaC0uOFY1Ljg5aC44ek0zLjc2LjYzTC4wNCA3LjA3NWMtLjExNS4yLjAxNi40MjUuMjYuNDI2aDcuMzk3Yy4yNDIgMCAuMzcyLS4yMjYuMjU4LS40MjZDNi43MjYgNC45MjQgNS40NyAyLjc5IDQuMjUzLjYzYy0uMTEzLS4xNzQtLjM5LS4xNzQtLjQ5NCAweicvJTNFJTNDL3N2ZyUzRVxcXCIpOyB9XFxuLmhhcy1kYW5nZXIgLmZvcm0tY29udHJvbC1mZWVkYmFjaywgLmhhcy1kYW5nZXIgLmZvcm0tY29udHJvbC1sYWJlbCwgLmhhcy1kYW5nZXIgLmNvbC1mb3JtLWxhYmVsLCAuaGFzLWRhbmdlciAuZm9ybS1jaGVjay1sYWJlbCwgLmhhcy1kYW5nZXIgLmN1c3RvbS1jb250cm9sIHtcXG4gIGNvbG9yOiAjZDk1MzRmOyB9XFxuLmhhcy1kYW5nZXIgLmZvcm0tY29udHJvbCB7XFxuICBib3JkZXItY29sb3I6ICNkOTUzNGY7IH1cXG4uaGFzLWRhbmdlciAuaW5wdXQtZ3JvdXAtYWRkb24ge1xcbiAgY29sb3I6ICNkOTUzNGY7XFxuICBib3JkZXItY29sb3I6ICNkOTUzNGY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmN2Y3OyB9XFxuLmhhcy1kYW5nZXIgLmZvcm0tY29udHJvbC1kYW5nZXIge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9JyUyM2Q5NTM0Zicgdmlld0JveD0nLTIgLTIgNyA3JyUzRSUzQ3BhdGggc3Ryb2tlPSclMjNkOTUzNGYnIGQ9J00wIDBsMyAzbTAtM0wwIDMnLyUzRSUzQ2NpcmNsZSByPScuNScvJTNFJTNDY2lyY2xlIGN4PSczJyByPScuNScvJTNFJTNDY2lyY2xlIGN5PSczJyByPScuNScvJTNFJTNDY2lyY2xlIGN4PSczJyBjeT0nMycgcj0nLjUnLyUzRSUzQy9zdmclM0VcXFwiKTsgfVxcbi5mb3JtLWlubGluZSB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xcbiAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuLmZvcm0taW5saW5lIC5mb3JtLWNoZWNrIHtcXG4gICAgd2lkdGg6IDEwMCU7IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gICAgLmZvcm0taW5saW5lIGxhYmVsIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxcbiAgICAuZm9ybS1pbmxpbmUgLmZvcm0tZ3JvdXAge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgICAtbXMtZmxleC1mbG93OiByb3cgd3JhcDtcXG4gICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XFxuICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxcbiAgICAuZm9ybS1pbmxpbmUgLmZvcm0tY29udHJvbCB7XFxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgIHdpZHRoOiBhdXRvO1xcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cXG4gICAgLmZvcm0taW5saW5lIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cXG4gICAgLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCB7XFxuICAgICAgd2lkdGg6IGF1dG87IH1cXG4gICAgLmZvcm0taW5saW5lIC5mb3JtLWNvbnRyb2wtbGFiZWwge1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxcbiAgICAuZm9ybS1pbmxpbmUgLmZvcm0tY2hlY2sge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICB3aWR0aDogYXV0bztcXG4gICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cXG4gICAgLmZvcm0taW5saW5lIC5mb3JtLWNoZWNrLWxhYmVsIHtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cXG4gICAgLmZvcm0taW5saW5lIC5mb3JtLWNoZWNrLWlucHV0IHtcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgbWFyZ2luLXRvcDogMDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4gICAgLmZvcm0taW5saW5lIC5jdXN0b20tY29udHJvbCB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfVxcbiAgICAuZm9ybS1pbmxpbmUgLmN1c3RvbS1jb250cm9sLWluZGljYXRvciB7XFxuICAgICAgcG9zaXRpb246IHN0YXRpYztcXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTsgfVxcbiAgICAuZm9ybS1pbmxpbmUgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcXG4gICAgICB0b3A6IDA7IH0gfVxcbi5idG4ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cXG4uYnRuOmZvY3VzLCAuYnRuOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XFxuLmJ0bjpmb2N1cywgLmJ0bi5mb2N1cyB7XFxuICAgIG91dGxpbmU6IDA7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMiwgMTE3LCAyMTYsIDAuMjUpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDIsIDExNywgMjE2LCAwLjI1KTsgfVxcbi5idG4uZGlzYWJsZWQsIC5idG46ZGlzYWJsZWQge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICBvcGFjaXR5OiAuNjU7IH1cXG4uYnRuOmFjdGl2ZSwgLmJ0bi5hY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyB9XFxuYS5idG4uZGlzYWJsZWQsIGZpZWxkc2V0W2Rpc2FibGVkXSBhLmJ0biB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxcbi5idG4tcHJpbWFyeSB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjc1ZDg7XFxuICBib3JkZXItY29sb3I6ICMwMjc1ZDg7IH1cXG4uYnRuLXByaW1hcnk6aG92ZXIge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAyNWFhNTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjMDE1NDliOyB9XFxuLmJ0bi1wcmltYXJ5OmZvY3VzLCAuYnRuLXByaW1hcnkuZm9jdXMge1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDIsIDExNywgMjE2LCAwLjUpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDIsIDExNywgMjE2LCAwLjUpOyB9XFxuLmJ0bi1wcmltYXJ5LmRpc2FibGVkLCAuYnRuLXByaW1hcnk6ZGlzYWJsZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI3NWQ4O1xcbiAgICBib3JkZXItY29sb3I6ICMwMjc1ZDg7IH1cXG4uYnRuLXByaW1hcnk6YWN0aXZlLCAuYnRuLXByaW1hcnkuYWN0aXZlLCAuc2hvdyA+IC5idG4tcHJpbWFyeS5kcm9wZG93bi10b2dnbGUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAyNWFhNTtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjMDE1NDliOyB9XFxuLmJ0bi1zZWNvbmRhcnkge1xcbiAgY29sb3I6ICMyOTJiMmM7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyLWNvbG9yOiAjY2NjOyB9XFxuLmJ0bi1zZWNvbmRhcnk6aG92ZXIge1xcbiAgICBjb2xvcjogIzI5MmIyYztcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcXG4gICAgYm9yZGVyLWNvbG9yOiAjYWRhZGFkOyB9XFxuLmJ0bi1zZWNvbmRhcnk6Zm9jdXMsIC5idG4tc2Vjb25kYXJ5LmZvY3VzIHtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgyMDQsIDIwNCwgMjA0LCAwLjUpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDIwNCwgMjA0LCAyMDQsIDAuNSk7IH1cXG4uYnRuLXNlY29uZGFyeS5kaXNhYmxlZCwgLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgICBib3JkZXItY29sb3I6ICNjY2M7IH1cXG4uYnRuLXNlY29uZGFyeTphY3RpdmUsIC5idG4tc2Vjb25kYXJ5LmFjdGl2ZSwgLnNob3cgPiAuYnRuLXNlY29uZGFyeS5kcm9wZG93bi10b2dnbGUge1xcbiAgICBjb2xvcjogIzI5MmIyYztcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjYWRhZGFkOyB9XFxuLmJ0bi1pbmZvIHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzViYzBkZTtcXG4gIGJvcmRlci1jb2xvcjogIzViYzBkZTsgfVxcbi5idG4taW5mbzpob3ZlciB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzFiMGQ1O1xcbiAgICBib3JkZXItY29sb3I6ICMyYWFiZDI7IH1cXG4uYnRuLWluZm86Zm9jdXMsIC5idG4taW5mby5mb2N1cyB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoOTEsIDE5MiwgMjIyLCAwLjUpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDkxLCAxOTIsIDIyMiwgMC41KTsgfVxcbi5idG4taW5mby5kaXNhYmxlZCwgLmJ0bi1pbmZvOmRpc2FibGVkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzViYzBkZTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjNWJjMGRlOyB9XFxuLmJ0bi1pbmZvOmFjdGl2ZSwgLmJ0bi1pbmZvLmFjdGl2ZSwgLnNob3cgPiAuYnRuLWluZm8uZHJvcGRvd24tdG9nZ2xlIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMWIwZDU7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJvcmRlci1jb2xvcjogIzJhYWJkMjsgfVxcbi5idG4tc3VjY2VzcyB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2I4NWM7XFxuICBib3JkZXItY29sb3I6ICM1Y2I4NWM7IH1cXG4uYnRuLXN1Y2Nlc3M6aG92ZXIge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OWQ0NDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjNDE5NjQxOyB9XFxuLmJ0bi1zdWNjZXNzOmZvY3VzLCAuYnRuLXN1Y2Nlc3MuZm9jdXMge1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDkyLCAxODQsIDkyLCAwLjUpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDkyLCAxODQsIDkyLCAwLjUpOyB9XFxuLmJ0bi1zdWNjZXNzLmRpc2FibGVkLCAuYnRuLXN1Y2Nlc3M6ZGlzYWJsZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNiODVjO1xcbiAgICBib3JkZXItY29sb3I6ICM1Y2I4NWM7IH1cXG4uYnRuLXN1Y2Nlc3M6YWN0aXZlLCAuYnRuLXN1Y2Nlc3MuYWN0aXZlLCAuc2hvdyA+IC5idG4tc3VjY2Vzcy5kcm9wZG93bi10b2dnbGUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OWQ0NDtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjNDE5NjQxOyB9XFxuLmJ0bi13YXJuaW5nIHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwYWQ0ZTtcXG4gIGJvcmRlci1jb2xvcjogI2YwYWQ0ZTsgfVxcbi5idG4td2FybmluZzpob3ZlciB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM5NzFmO1xcbiAgICBib3JkZXItY29sb3I6ICNlYjkzMTY7IH1cXG4uYnRuLXdhcm5pbmc6Zm9jdXMsIC5idG4td2FybmluZy5mb2N1cyB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjQwLCAxNzMsIDc4LCAwLjUpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDI0MCwgMTczLCA3OCwgMC41KTsgfVxcbi5idG4td2FybmluZy5kaXNhYmxlZCwgLmJ0bi13YXJuaW5nOmRpc2FibGVkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwYWQ0ZTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZjBhZDRlOyB9XFxuLmJ0bi13YXJuaW5nOmFjdGl2ZSwgLmJ0bi13YXJuaW5nLmFjdGl2ZSwgLnNob3cgPiAuYnRuLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xlIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYzk3MWY7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XFxuICAgIGJvcmRlci1jb2xvcjogI2ViOTMxNjsgfVxcbi5idG4tZGFuZ2VyIHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5NTM0ZjtcXG4gIGJvcmRlci1jb2xvcjogI2Q5NTM0ZjsgfVxcbi5idG4tZGFuZ2VyOmhvdmVyIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNjOTMwMmM7XFxuICAgIGJvcmRlci1jb2xvcjogI2MxMmUyYTsgfVxcbi5idG4tZGFuZ2VyOmZvY3VzLCAuYnRuLWRhbmdlci5mb2N1cyB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjE3LCA4MywgNzksIDAuNSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjE3LCA4MywgNzksIDAuNSk7IH1cXG4uYnRuLWRhbmdlci5kaXNhYmxlZCwgLmJ0bi1kYW5nZXI6ZGlzYWJsZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk1MzRmO1xcbiAgICBib3JkZXItY29sb3I6ICNkOTUzNGY7IH1cXG4uYnRuLWRhbmdlcjphY3RpdmUsIC5idG4tZGFuZ2VyLmFjdGl2ZSwgLnNob3cgPiAuYnRuLWRhbmdlci5kcm9wZG93bi10b2dnbGUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M5MzAyYztcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjYzEyZTJhOyB9XFxuLmJ0bi1vdXRsaW5lLXByaW1hcnkge1xcbiAgY29sb3I6ICMwMjc1ZDg7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6ICMwMjc1ZDg7IH1cXG4uYnRuLW91dGxpbmUtcHJpbWFyeTpob3ZlciB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI3NWQ4O1xcbiAgICBib3JkZXItY29sb3I6ICMwMjc1ZDg7IH1cXG4uYnRuLW91dGxpbmUtcHJpbWFyeTpmb2N1cywgLmJ0bi1vdXRsaW5lLXByaW1hcnkuZm9jdXMge1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDIsIDExNywgMjE2LCAwLjUpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDIsIDExNywgMjE2LCAwLjUpOyB9XFxuLmJ0bi1vdXRsaW5lLXByaW1hcnkuZGlzYWJsZWQsIC5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkIHtcXG4gICAgY29sb3I6ICMwMjc1ZDg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuLmJ0bi1vdXRsaW5lLXByaW1hcnk6YWN0aXZlLCAuYnRuLW91dGxpbmUtcHJpbWFyeS5hY3RpdmUsIC5zaG93ID4gLmJ0bi1vdXRsaW5lLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xlIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMjc1ZDg7XFxuICAgIGJvcmRlci1jb2xvcjogIzAyNzVkODsgfVxcbi5idG4tb3V0bGluZS1zZWNvbmRhcnkge1xcbiAgY29sb3I6ICNjY2M7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6ICNjY2M7IH1cXG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmhvdmVyIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XFxuICAgIGJvcmRlci1jb2xvcjogI2NjYzsgfVxcbi5idG4tb3V0bGluZS1zZWNvbmRhcnk6Zm9jdXMsIC5idG4tb3V0bGluZS1zZWNvbmRhcnkuZm9jdXMge1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDIwNCwgMjA0LCAyMDQsIDAuNSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjA0LCAyMDQsIDIwNCwgMC41KTsgfVxcbi5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQsIC5idG4tb3V0bGluZS1zZWNvbmRhcnk6ZGlzYWJsZWQge1xcbiAgICBjb2xvcjogI2NjYztcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmFjdGl2ZSwgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5hY3RpdmUsIC5zaG93ID4gLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5kcm9wZG93bi10b2dnbGUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcXG4gICAgYm9yZGVyLWNvbG9yOiAjY2NjOyB9XFxuLmJ0bi1vdXRsaW5lLWluZm8ge1xcbiAgY29sb3I6ICM1YmMwZGU7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6ICM1YmMwZGU7IH1cXG4uYnRuLW91dGxpbmUtaW5mbzpob3ZlciB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWJjMGRlO1xcbiAgICBib3JkZXItY29sb3I6ICM1YmMwZGU7IH1cXG4uYnRuLW91dGxpbmUtaW5mbzpmb2N1cywgLmJ0bi1vdXRsaW5lLWluZm8uZm9jdXMge1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDkxLCAxOTIsIDIyMiwgMC41KTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSg5MSwgMTkyLCAyMjIsIDAuNSk7IH1cXG4uYnRuLW91dGxpbmUtaW5mby5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLWluZm86ZGlzYWJsZWQge1xcbiAgICBjb2xvcjogIzViYzBkZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4uYnRuLW91dGxpbmUtaW5mbzphY3RpdmUsIC5idG4tb3V0bGluZS1pbmZvLmFjdGl2ZSwgLnNob3cgPiAuYnRuLW91dGxpbmUtaW5mby5kcm9wZG93bi10b2dnbGUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzViYzBkZTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjNWJjMGRlOyB9XFxuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3Mge1xcbiAgY29sb3I6ICM1Y2I4NWM7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6ICM1Y2I4NWM7IH1cXG4uYnRuLW91dGxpbmUtc3VjY2Vzczpob3ZlciB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNiODVjO1xcbiAgICBib3JkZXItY29sb3I6ICM1Y2I4NWM7IH1cXG4uYnRuLW91dGxpbmUtc3VjY2Vzczpmb2N1cywgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZm9jdXMge1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDkyLCAxODQsIDkyLCAwLjUpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDkyLCAxODQsIDkyLCAwLjUpOyB9XFxuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZGlzYWJsZWQsIC5idG4tb3V0bGluZS1zdWNjZXNzOmRpc2FibGVkIHtcXG4gICAgY29sb3I6ICM1Y2I4NWM7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6YWN0aXZlLCAuYnRuLW91dGxpbmUtc3VjY2Vzcy5hY3RpdmUsIC5zaG93ID4gLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1Y2I4NWM7XFxuICAgIGJvcmRlci1jb2xvcjogIzVjYjg1YzsgfVxcbi5idG4tb3V0bGluZS13YXJuaW5nIHtcXG4gIGNvbG9yOiAjZjBhZDRlO1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWNvbG9yOiAjZjBhZDRlOyB9XFxuLmJ0bi1vdXRsaW5lLXdhcm5pbmc6aG92ZXIge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwYWQ0ZTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZjBhZDRlOyB9XFxuLmJ0bi1vdXRsaW5lLXdhcm5pbmc6Zm9jdXMsIC5idG4tb3V0bGluZS13YXJuaW5nLmZvY3VzIHtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgyNDAsIDE3MywgNzgsIDAuNSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjQwLCAxNzMsIDc4LCAwLjUpOyB9XFxuLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZGlzYWJsZWQsIC5idG4tb3V0bGluZS13YXJuaW5nOmRpc2FibGVkIHtcXG4gICAgY29sb3I6ICNmMGFkNGU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuLmJ0bi1vdXRsaW5lLXdhcm5pbmc6YWN0aXZlLCAuYnRuLW91dGxpbmUtd2FybmluZy5hY3RpdmUsIC5zaG93ID4gLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xlIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGFkNGU7XFxuICAgIGJvcmRlci1jb2xvcjogI2YwYWQ0ZTsgfVxcbi5idG4tb3V0bGluZS1kYW5nZXIge1xcbiAgY29sb3I6ICNkOTUzNGY7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6ICNkOTUzNGY7IH1cXG4uYnRuLW91dGxpbmUtZGFuZ2VyOmhvdmVyIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOTUzNGY7XFxuICAgIGJvcmRlci1jb2xvcjogI2Q5NTM0ZjsgfVxcbi5idG4tb3V0bGluZS1kYW5nZXI6Zm9jdXMsIC5idG4tb3V0bGluZS1kYW5nZXIuZm9jdXMge1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDIxNywgODMsIDc5LCAwLjUpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDIxNywgODMsIDc5LCAwLjUpOyB9XFxuLmJ0bi1vdXRsaW5lLWRhbmdlci5kaXNhYmxlZCwgLmJ0bi1vdXRsaW5lLWRhbmdlcjpkaXNhYmxlZCB7XFxuICAgIGNvbG9yOiAjZDk1MzRmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbi5idG4tb3V0bGluZS1kYW5nZXI6YWN0aXZlLCAuYnRuLW91dGxpbmUtZGFuZ2VyLmFjdGl2ZSwgLnNob3cgPiAuYnRuLW91dGxpbmUtZGFuZ2VyLmRyb3Bkb3duLXRvZ2dsZSB7XFxuICAgIGNvbG9yOiAjZmZmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk1MzRmO1xcbiAgICBib3JkZXItY29sb3I6ICNkOTUzNGY7IH1cXG4uYnRuLWxpbmsge1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gIGNvbG9yOiAjMDI3NWQ4O1xcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxcbi5idG4tbGluaywgLmJ0bi1saW5rOmFjdGl2ZSwgLmJ0bi1saW5rLmFjdGl2ZSwgLmJ0bi1saW5rOmRpc2FibGVkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4uYnRuLWxpbmssIC5idG4tbGluazpmb2N1cywgLmJ0bi1saW5rOmFjdGl2ZSB7XFxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4uYnRuLWxpbms6aG92ZXIge1xcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuLmJ0bi1saW5rOmZvY3VzLCAuYnRuLWxpbms6aG92ZXIge1xcbiAgICBjb2xvcjogIzAxNGM4YztcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuLmJ0bi1saW5rOmRpc2FibGVkIHtcXG4gICAgY29sb3I6ICM2MzZjNzI7IH1cXG4uYnRuLWxpbms6ZGlzYWJsZWQ6Zm9jdXMsIC5idG4tbGluazpkaXNhYmxlZDpob3ZlciB7XFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XFxuLmJ0bi1sZywgLmJ0bi1ncm91cC1sZyA+IC5idG4ge1xcbiAgcGFkZGluZzogMC43NXJlbSAxLjVyZW07XFxuICBmb250LXNpemU6IDEuMjVyZW07XFxuICBib3JkZXItcmFkaXVzOiAwLjNyZW07IH1cXG4uYnRuLXNtLCAuYnRuLWdyb3VwLXNtID4gLmJ0biB7XFxuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XFxuICBib3JkZXItcmFkaXVzOiAwLjJyZW07IH1cXG4uYnRuLWJsb2NrIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7IH1cXG4uYnRuLWJsb2NrICsgLmJ0bi1ibG9jayB7XFxuICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cXG5pbnB1dFt0eXBlPVxcXCJzdWJtaXRcXFwiXS5idG4tYmxvY2ssIGlucHV0W3R5cGU9XFxcInJlc2V0XFxcIl0uYnRuLWJsb2NrLCBpbnB1dFt0eXBlPVxcXCJidXR0b25cXFwiXS5idG4tYmxvY2sge1xcbiAgd2lkdGg6IDEwMCU7IH1cXG4uZmFkZSB7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyOyB9XFxuLmZhZGUuc2hvdyB7XFxuICAgIG9wYWNpdHk6IDE7IH1cXG4uY29sbGFwc2Uge1xcbiAgZGlzcGxheTogbm9uZTsgfVxcbi5jb2xsYXBzZS5zaG93IHtcXG4gICAgZGlzcGxheTogYmxvY2s7IH1cXG50ci5jb2xsYXBzZS5zaG93IHtcXG4gIGRpc3BsYXk6IHRhYmxlLXJvdzsgfVxcbnRib2R5LmNvbGxhcHNlLnNob3cge1xcbiAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwOyB9XFxuLmNvbGxhcHNpbmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiAwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogaGVpZ2h0IDAuMzVzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zNXMgZWFzZTsgfVxcbi5kcm9wdXAsIC5kcm9wZG93biB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG4uZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMDtcXG4gIGhlaWdodDogMDtcXG4gIG1hcmdpbi1sZWZ0OiAwLjNlbTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIGJvcmRlci10b3A6IDAuM2VtIHNvbGlkO1xcbiAgYm9yZGVyLXJpZ2h0OiAwLjNlbSBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1sZWZ0OiAwLjNlbSBzb2xpZCB0cmFuc3BhcmVudDsgfVxcbi5kcm9wZG93bi10b2dnbGU6Zm9jdXMge1xcbiAgb3V0bGluZTogMDsgfVxcbi5kcm9wdXAgLmRyb3Bkb3duLXRvZ2dsZTo6YWZ0ZXIge1xcbiAgYm9yZGVyLXRvcDogMDtcXG4gIGJvcmRlci1ib3R0b206IDAuM2VtIHNvbGlkOyB9XFxuLmRyb3Bkb3duLW1lbnUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAxMDAlO1xcbiAgbGVmdDogMDtcXG4gIHotaW5kZXg6IDEwMDA7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgZmxvYXQ6IGxlZnQ7XFxuICBtaW4td2lkdGg6IDEwcmVtO1xcbiAgcGFkZGluZzogMC41cmVtIDA7XFxuICBtYXJnaW46IDAuMTI1cmVtIDAgMDtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIGNvbG9yOiAjMjkyYjJjO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtOyB9XFxuLmRyb3Bkb3duLWRpdmlkZXIge1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBtYXJnaW46IDAuNXJlbSAwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VlZWY7IH1cXG4uZHJvcGRvd24taXRlbSB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZzogM3B4IDEuNXJlbTtcXG4gIGNsZWFyOiBib3RoO1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gIGNvbG9yOiAjMjkyYjJjO1xcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgYm9yZGVyOiAwOyB9XFxuLmRyb3Bkb3duLWl0ZW06Zm9jdXMsIC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcXG4gICAgY29sb3I6ICMxZDFlMWY7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmOTsgfVxcbi5kcm9wZG93bi1pdGVtLmFjdGl2ZSwgLmRyb3Bkb3duLWl0ZW06YWN0aXZlIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAyNzVkODsgfVxcbi5kcm9wZG93bi1pdGVtLmRpc2FibGVkLCAuZHJvcGRvd24taXRlbTpkaXNhYmxlZCB7XFxuICAgIGNvbG9yOiAjNjM2YzcyO1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbi5zaG93ID4gLmRyb3Bkb3duLW1lbnUge1xcbiAgZGlzcGxheTogYmxvY2s7IH1cXG4uc2hvdyA+IGEge1xcbiAgb3V0bGluZTogMDsgfVxcbi5kcm9wZG93bi1tZW51LXJpZ2h0IHtcXG4gIHJpZ2h0OiAwO1xcbiAgbGVmdDogYXV0bzsgfVxcbi5kcm9wZG93bi1tZW51LWxlZnQge1xcbiAgcmlnaHQ6IGF1dG87XFxuICBsZWZ0OiAwOyB9XFxuLmRyb3Bkb3duLWhlYWRlciB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBhZGRpbmc6IDAuNXJlbSAxLjVyZW07XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGNvbG9yOiAjNjM2YzcyO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcbi5kcm9wZG93bi1iYWNrZHJvcCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiA5OTA7IH1cXG4uZHJvcHVwIC5kcm9wZG93bi1tZW51IHtcXG4gIHRvcDogYXV0bztcXG4gIGJvdHRvbTogMTAwJTtcXG4gIG1hcmdpbi1ib3R0b206IDAuMTI1cmVtOyB9XFxuLmJ0bi1ncm91cCwgLmJ0bi1ncm91cC12ZXJ0aWNhbCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cXG4uYnRuLWdyb3VwID4gLmJ0biwgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAxIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAxIGF1dG87IH1cXG4uYnRuLWdyb3VwID4gLmJ0bjpob3ZlciwgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46aG92ZXIge1xcbiAgICAgIHotaW5kZXg6IDI7IH1cXG4uYnRuLWdyb3VwID4gLmJ0bjpmb2N1cywgLmJ0bi1ncm91cCA+IC5idG46YWN0aXZlLCAuYnRuLWdyb3VwID4gLmJ0bi5hY3RpdmUsIC5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmZvY3VzLCAuYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjphY3RpdmUsIC5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLmFjdGl2ZSB7XFxuICAgICAgei1pbmRleDogMjsgfVxcbi5idG4tZ3JvdXAgLmJ0biArIC5idG4sIC5idG4tZ3JvdXAgLmJ0biArIC5idG4tZ3JvdXAsIC5idG4tZ3JvdXAgLmJ0bi1ncm91cCArIC5idG4sIC5idG4tZ3JvdXAgLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAsIC5idG4tZ3JvdXAtdmVydGljYWwgLmJ0biArIC5idG4sIC5idG4tZ3JvdXAtdmVydGljYWwgLmJ0biArIC5idG4tZ3JvdXAsIC5idG4tZ3JvdXAtdmVydGljYWwgLmJ0bi1ncm91cCArIC5idG4sIC5idG4tZ3JvdXAtdmVydGljYWwgLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAge1xcbiAgICBtYXJnaW4tbGVmdDogLTFweDsgfVxcbi5idG4tdG9vbGJhciB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cXG4uYnRuLXRvb2xiYXIgLmlucHV0LWdyb3VwIHtcXG4gICAgd2lkdGg6IGF1dG87IH1cXG4uYnRuLWdyb3VwID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XFxuICBib3JkZXItcmFkaXVzOiAwOyB9XFxuLmJ0bi1ncm91cCA+IC5idG46Zmlyc3QtY2hpbGQge1xcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4uYnRuLWdyb3VwID4gLmJ0bjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XFxuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsgfVxcbi5idG4tZ3JvdXAgPiAuYnRuOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksIC5idG4tZ3JvdXAgPiAuZHJvcGRvd24tdG9nZ2xlOm5vdCg6Zmlyc3QtY2hpbGQpIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwOyB9XFxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXAge1xcbiAgZmxvYXQ6IGxlZnQ7IH1cXG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XFxuICBib3JkZXItcmFkaXVzOiAwOyB9XFxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5idG46bGFzdC1jaGlsZCwgLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5kcm9wZG93bi10b2dnbGUge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsgfVxcbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwOyB9XFxuLmJ0bi1ncm91cCAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZSwgLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUge1xcbiAgb3V0bGluZTogMDsgfVxcbi5idG4gKyAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDAuNzVyZW07XFxuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07IH1cXG4uYnRuICsgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDo6YWZ0ZXIge1xcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxcbi5idG4tc20gKyAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0LCAuYnRuLWdyb3VwLXNtID4gLmJ0biArIC5kcm9wZG93bi10b2dnbGUtc3BsaXQge1xcbiAgcGFkZGluZy1yaWdodDogMC4zNzVyZW07XFxuICBwYWRkaW5nLWxlZnQ6IDAuMzc1cmVtOyB9XFxuLmJ0bi1sZyArIC5kcm9wZG93bi10b2dnbGUtc3BsaXQsIC5idG4tZ3JvdXAtbGcgPiAuYnRuICsgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxLjEyNXJlbTtcXG4gIHBhZGRpbmctbGVmdDogMS4xMjVyZW07IH1cXG4uYnRuLWdyb3VwLXZlcnRpY2FsIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxcbi5idG4tZ3JvdXAtdmVydGljYWwgLmJ0biwgLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuLWdyb3VwIHtcXG4gICAgd2lkdGg6IDEwMCU7IH1cXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biArIC5idG4sIC5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuICsgLmJ0bi1ncm91cCwgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAgKyAuYnRuLCAuYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAge1xcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOyB9XFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7IH1cXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XFxuICBib3JkZXItcmFkaXVzOiAwOyB9XFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5idG46bGFzdC1jaGlsZCwgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5kcm9wZG93bi10b2dnbGUge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOyB9XFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwOyB9XFxuW2RhdGEtdG9nZ2xlPVxcXCJidXR0b25zXFxcIl0gPiAuYnRuIGlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl0sIFtkYXRhLXRvZ2dsZT1cXFwiYnV0dG9uc1xcXCJdID4gLmJ0biBpbnB1dFt0eXBlPVxcXCJjaGVja2JveFxcXCJdLCBbZGF0YS10b2dnbGU9XFxcImJ1dHRvbnNcXFwiXSA+IC5idG4tZ3JvdXAgPiAuYnRuIGlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl0sIFtkYXRhLXRvZ2dsZT1cXFwiYnV0dG9uc1xcXCJdID4gLmJ0bi1ncm91cCA+IC5idG4gaW5wdXRbdHlwZT1cXFwiY2hlY2tib3hcXFwiXSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cXG4uaW5wdXQtZ3JvdXAge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICB3aWR0aDogMTAwJTsgfVxcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICB6LWluZGV4OiAyO1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICB3aWR0aDogMSU7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpmb2N1cywgLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6YWN0aXZlLCAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpob3ZlciB7XFxuICAgICAgei1pbmRleDogMzsgfVxcbi5pbnB1dC1ncm91cC1hZGRvbiwgLmlucHV0LWdyb3VwLWJ0biwgLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxcbi5pbnB1dC1ncm91cC1hZGRvbjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCksIC5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICBib3JkZXItcmFkaXVzOiAwOyB9XFxuLmlucHV0LWdyb3VwLWFkZG9uLCAuaW5wdXQtZ3JvdXAtYnRuIHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XFxuLmlucHV0LWdyb3VwLWFkZG9uIHtcXG4gIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICBsaW5lLWhlaWdodDogMS4yNTtcXG4gIGNvbG9yOiAjNDY0YTRjO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWVlZjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtOyB9XFxuLmlucHV0LWdyb3VwLWFkZG9uLmZvcm0tY29udHJvbC1zbSwgLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLCAuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmlucHV0LWdyb3VwLWFkZG9uLmJ0biB7XFxuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgICBib3JkZXItcmFkaXVzOiAwLjJyZW07IH1cXG4uaW5wdXQtZ3JvdXAtYWRkb24uZm9ybS1jb250cm9sLWxnLCAuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYWRkb24sIC5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuaW5wdXQtZ3JvdXAtYWRkb24uYnRuIHtcXG4gICAgcGFkZGluZzogMC43NXJlbSAxLjVyZW07XFxuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcXG4gICAgYm9yZGVyLXJhZGl1czogMC4zcmVtOyB9XFxuLmlucHV0LWdyb3VwLWFkZG9uIGlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl0sIC5pbnB1dC1ncm91cC1hZGRvbiBpbnB1dFt0eXBlPVxcXCJjaGVja2JveFxcXCJdIHtcXG4gICAgbWFyZ2luLXRvcDogMDsgfVxcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOm5vdCg6bGFzdC1jaGlsZCksIC5pbnB1dC1ncm91cC1hZGRvbjpub3QoOmxhc3QtY2hpbGQpLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuLWdyb3VwID4gLmJ0biwgLmlucHV0LWdyb3VwLWJ0bjpub3QoOmxhc3QtY2hpbGQpID4gLmRyb3Bkb3duLXRvZ2dsZSwgLmlucHV0LWdyb3VwLWJ0bjpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksIC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7IH1cXG4uaW5wdXQtZ3JvdXAtYWRkb246bm90KDpsYXN0LWNoaWxkKSB7XFxuICBib3JkZXItcmlnaHQ6IDA7IH1cXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpub3QoOmZpcnN0LWNoaWxkKSwgLmlucHV0LWdyb3VwLWFkZG9uOm5vdCg6Zmlyc3QtY2hpbGQpLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0biwgLmlucHV0LWdyb3VwLWJ0bjpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4tZ3JvdXAgPiAuYnRuLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmRyb3Bkb3duLXRvZ2dsZSwgLmlucHV0LWdyb3VwLWJ0bjpub3QoOmxhc3QtY2hpbGQpID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKSwgLmlucHV0LWdyb3VwLWJ0bjpub3QoOmxhc3QtY2hpbGQpID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4ge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7IH1cXG4uZm9ybS1jb250cm9sICsgLmlucHV0LWdyb3VwLWFkZG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcXG4gIGJvcmRlci1sZWZ0OiAwOyB9XFxuLmlucHV0LWdyb3VwLWJ0biB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBmb250LXNpemU6IDA7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMTtcXG4gICAgICAgICAgICBmbGV4OiAxOyB9XFxuLmlucHV0LWdyb3VwLWJ0biA+IC5idG4gKyAuYnRuIHtcXG4gICAgICBtYXJnaW4tbGVmdDogLTFweDsgfVxcbi5pbnB1dC1ncm91cC1idG4gPiAuYnRuOmZvY3VzLCAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bjphY3RpdmUsIC5pbnB1dC1ncm91cC1idG4gPiAuYnRuOmhvdmVyIHtcXG4gICAgICB6LWluZGV4OiAzOyB9XFxuLmlucHV0LWdyb3VwLWJ0bjpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biwgLmlucHV0LWdyb3VwLWJ0bjpub3QoOmxhc3QtY2hpbGQpID4gLmJ0bi1ncm91cCB7XFxuICAgIG1hcmdpbi1yaWdodDogLTFweDsgfVxcbi5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bi1ncm91cCB7XFxuICAgIHotaW5kZXg6IDI7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMXB4OyB9XFxuLmlucHV0LWdyb3VwLWJ0bjpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46Zm9jdXMsIC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmFjdGl2ZSwgLmlucHV0LWdyb3VwLWJ0bjpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46aG92ZXIsIC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuLWdyb3VwOmZvY3VzLCAuaW5wdXQtZ3JvdXAtYnRuOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bi1ncm91cDphY3RpdmUsIC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuLWdyb3VwOmhvdmVyIHtcXG4gICAgICB6LWluZGV4OiAzOyB9XFxuLmN1c3RvbS1jb250cm9sIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgbWluLWhlaWdodDogMS41cmVtO1xcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XFxuICBtYXJnaW4tcmlnaHQ6IDFyZW07XFxuICBjdXJzb3I6IHBvaW50ZXI7IH1cXG4uY3VzdG9tLWNvbnRyb2wtaW5wdXQge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgei1pbmRleDogLTE7XFxuICBvcGFjaXR5OiAwOyB9XFxuLmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMjc1ZDg7IH1cXG4uY3VzdG9tLWNvbnRyb2wtaW5wdXQ6Zm9jdXMgfiAuY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yIHtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgM3B4ICMwMjc1ZDg7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDNweCAjMDI3NWQ4OyB9XFxuLmN1c3RvbS1jb250cm9sLWlucHV0OmFjdGl2ZSB+IC5jdXN0b20tY29udHJvbC1pbmRpY2F0b3Ige1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzhmY2FmZTsgfVxcbi5jdXN0b20tY29udHJvbC1pbnB1dDpkaXNhYmxlZCB+IC5jdXN0b20tY29udHJvbC1pbmRpY2F0b3Ige1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZWVmOyB9XFxuLmN1c3RvbS1jb250cm9sLWlucHV0OmRpc2FibGVkIH4gLmN1c3RvbS1jb250cm9sLWRlc2NyaXB0aW9uIHtcXG4gICAgY29sb3I6ICM2MzZjNzI7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cXG4uY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMC4yNXJlbTtcXG4gIGxlZnQ6IDA7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxcmVtO1xcbiAgaGVpZ2h0OiAxcmVtO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xcbiAgYmFja2dyb3VuZC1zaXplOiA1MCUgNTAlOyB9XFxuLmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07IH1cXG4uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWluZGljYXRvciB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDggOCclM0UlM0NwYXRoIGZpbGw9JyUyM2ZmZicgZD0nTTYuNTY0Ljc1bC0zLjU5IDMuNjEyLTEuNTM4LTEuNTVMMCA0LjI2IDIuOTc0IDcuMjUgOCAyLjE5M3onLyUzRSUzQy9zdmclM0VcXFwiKTsgfVxcbi5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmluZGV0ZXJtaW5hdGUgfiAuY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjc1ZDg7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDQgNCclM0UlM0NwYXRoIHN0cm9rZT0nJTIzZmZmJyBkPSdNMCAyaDQnLyUzRSUzQy9zdmclM0VcXFwiKTsgfVxcbi5jdXN0b20tcmFkaW8gLmN1c3RvbS1jb250cm9sLWluZGljYXRvciB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7IH1cXG4uY3VzdG9tLXJhZGlvIC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWluZGljYXRvciB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nLTQgLTQgOCA4JyUzRSUzQ2NpcmNsZSByPSczJyBmaWxsPSclMjNmZmYnLyUzRSUzQy9zdmclM0VcXFwiKTsgfVxcbi5jdXN0b20tY29udHJvbHMtc3RhY2tlZCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxcbi5jdXN0b20tY29udHJvbHMtc3RhY2tlZCAuY3VzdG9tLWNvbnRyb2wge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtOyB9XFxuLmN1c3RvbS1jb250cm9scy1zdGFja2VkIC5jdXN0b20tY29udHJvbCArIC5jdXN0b20tY29udHJvbCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4uY3VzdG9tLXNlbGVjdCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IGNhbGMoMi4yNXJlbSArIDJweCk7XFxuICBwYWRkaW5nOiAwLjM3NXJlbSAxLjc1cmVtIDAuMzc1cmVtIDAuNzVyZW07XFxuICBsaW5lLWhlaWdodDogMS4yNTtcXG4gIGNvbG9yOiAjNDY0YTRjO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIGJhY2tncm91bmQ6ICNmZmYgdXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0IDUnJTNFJTNDcGF0aCBmaWxsPSclMjMzMzMnIGQ9J00yIDBMMCAyaDR6bTAgNUwwIDNoNHonLyUzRSUzQy9zdmclM0VcXFwiKSBuby1yZXBlYXQgcmlnaHQgMC43NXJlbSBjZW50ZXI7XFxuICBiYWNrZ3JvdW5kLXNpemU6IDhweCAxMHB4O1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XFxuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cXG4uY3VzdG9tLXNlbGVjdDpmb2N1cyB7XFxuICAgIGJvcmRlci1jb2xvcjogIzVjYjNmZDtcXG4gICAgb3V0bGluZTogbm9uZTsgfVxcbi5jdXN0b20tc2VsZWN0OmZvY3VzOjotbXMtdmFsdWUge1xcbiAgICAgIGNvbG9yOiAjNDY0YTRjO1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cXG4uY3VzdG9tLXNlbGVjdDpkaXNhYmxlZCB7XFxuICAgIGNvbG9yOiAjNjM2YzcyO1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZWVmOyB9XFxuLmN1c3RvbS1zZWxlY3Q6Oi1tcy1leHBhbmQge1xcbiAgICBvcGFjaXR5OiAwOyB9XFxuLmN1c3RvbS1zZWxlY3Qtc20ge1xcbiAgcGFkZGluZy10b3A6IDAuMzc1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuMzc1cmVtO1xcbiAgZm9udC1zaXplOiA3NSU7IH1cXG4uY3VzdG9tLWZpbGUge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAyLjVyZW07XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgY3Vyc29yOiBwb2ludGVyOyB9XFxuLmN1c3RvbS1maWxlLWlucHV0IHtcXG4gIG1pbi13aWR0aDogMTRyZW07XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDIuNXJlbTtcXG4gIG1hcmdpbjogMDtcXG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTtcXG4gIG9wYWNpdHk6IDA7IH1cXG4uY3VzdG9tLWZpbGUtY29udHJvbCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiA1O1xcbiAgaGVpZ2h0OiAyLjVyZW07XFxuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICBjb2xvcjogIzQ2NGE0YztcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsgfVxcbi5jdXN0b20tZmlsZS1jb250cm9sOmxhbmcoZW4pOjphZnRlciB7XFxuICAgIGNvbnRlbnQ6IFxcXCJDaG9vc2UgZmlsZS4uLlxcXCI7IH1cXG4uY3VzdG9tLWZpbGUtY29udHJvbDo6YmVmb3JlIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IC0xcHg7XFxuICAgIHJpZ2h0OiAtMXB4O1xcbiAgICBib3R0b206IC0xcHg7XFxuICAgIHotaW5kZXg6IDY7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBoZWlnaHQ6IDIuNXJlbTtcXG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAgIGNvbG9yOiAjNDY0YTRjO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZWVmO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xcbiAgICBib3JkZXItcmFkaXVzOiAwIDAuMjVyZW0gMC4yNXJlbSAwOyB9XFxuLmN1c3RvbS1maWxlLWNvbnRyb2w6bGFuZyhlbik6OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJCcm93c2VcXFwiOyB9XFxuLm5hdiB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxuICBsaXN0LXN0eWxlOiBub25lOyB9XFxuLm5hdi1saW5rIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcGFkZGluZzogMC41ZW0gMWVtOyB9XFxuLm5hdi1saW5rOmZvY3VzLCAubmF2LWxpbms6aG92ZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cXG4ubmF2LWxpbmsuZGlzYWJsZWQge1xcbiAgICBjb2xvcjogIzYzNmM3MjtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxcbi5uYXYtdGFicyB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDsgfVxcbi5uYXYtdGFicyAubmF2LWl0ZW0ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4OyB9XFxuLm5hdi10YWJzIC5uYXYtbGluayB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yNXJlbTsgfVxcbi5uYXYtdGFicyAubmF2LWxpbms6Zm9jdXMsIC5uYXYtdGFicyAubmF2LWxpbms6aG92ZXIge1xcbiAgICAgIGJvcmRlci1jb2xvcjogI2VjZWVlZiAjZWNlZWVmICNkZGQ7IH1cXG4ubmF2LXRhYnMgLm5hdi1saW5rLmRpc2FibGVkIHtcXG4gICAgICBjb2xvcjogIzYzNmM3MjtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuLm5hdi10YWJzIC5uYXYtbGluay5hY3RpdmUsIC5uYXYtdGFicyAubmF2LWl0ZW0uc2hvdyAubmF2LWxpbmsge1xcbiAgICBjb2xvcjogIzQ2NGE0YztcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkICNkZGQgI2ZmZjsgfVxcbi5uYXYtdGFicyAuZHJvcGRvd24tbWVudSB7XFxuICAgIG1hcmdpbi10b3A6IC0xcHg7XFxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwOyB9XFxuLm5hdi1waWxscyAubmF2LWxpbmsge1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsgfVxcbi5uYXYtcGlsbHMgLm5hdi1saW5rLmFjdGl2ZSwgLm5hdi1waWxscyAubmF2LWl0ZW0uc2hvdyAubmF2LWxpbmsge1xcbiAgY29sb3I6ICNmZmY7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI3NWQ4OyB9XFxuLm5hdi1maWxsIC5uYXYtaXRlbSB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cXG4ubmF2LWp1c3RpZmllZCAubmF2LWl0ZW0ge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIDEwMCU7XFxuICAgICAgICAgIGZsZXg6IDEgMSAxMDAlO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XFxuLnRhYi1jb250ZW50ID4gLnRhYi1wYW5lIHtcXG4gIGRpc3BsYXk6IG5vbmU7IH1cXG4udGFiLWNvbnRlbnQgPiAuYWN0aXZlIHtcXG4gIGRpc3BsYXk6IGJsb2NrOyB9XFxuLm5hdmJhciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtOyB9XFxuLm5hdmJhci1icmFuZCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBwYWRkaW5nLXRvcDogLjI1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IC4yNXJlbTtcXG4gIG1hcmdpbi1yaWdodDogMXJlbTtcXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcbi5uYXZiYXItYnJhbmQ6Zm9jdXMsIC5uYXZiYXItYnJhbmQ6aG92ZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cXG4ubmF2YmFyLW5hdiB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxuICBsaXN0LXN0eWxlOiBub25lOyB9XFxuLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcXG4gICAgcGFkZGluZy1yaWdodDogMDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XFxuLm5hdmJhci10ZXh0IHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHBhZGRpbmctdG9wOiAuNDI1cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IC40MjVyZW07IH1cXG4ubmF2YmFyLXRvZ2dsZXIge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RhcnQ7XFxuICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcXG4gIHBhZGRpbmc6IDAuMjVyZW0gMC43NXJlbTtcXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07IH1cXG4ubmF2YmFyLXRvZ2dsZXI6Zm9jdXMsIC5uYXZiYXItdG9nZ2xlcjpob3ZlciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxcbi5uYXZiYXItdG9nZ2xlci1pY29uIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAxLjVlbTtcXG4gIGhlaWdodDogMS41ZW07XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgY29udGVudDogXFxcIlxcXCI7XFxuICBiYWNrZ3JvdW5kOiBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcXG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlOyB9XFxuLm5hdmJhci10b2dnbGVyLWxlZnQge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMXJlbTsgfVxcbi5uYXZiYXItdG9nZ2xlci1yaWdodCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMXJlbTsgfVxcbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xcbiAgLm5hdmJhci10b2dnbGVhYmxlIC5uYXZiYXItbmF2IC5kcm9wZG93bi1tZW51IHtcXG4gICAgcG9zaXRpb246IHN0YXRpYztcXG4gICAgZmxvYXQ6IG5vbmU7IH1cXG4gIC5uYXZiYXItdG9nZ2xlYWJsZSA+IC5jb250YWluZXIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLm5hdmJhci10b2dnbGVhYmxlIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgIC5uYXZiYXItdG9nZ2xlYWJsZSAubmF2YmFyLW5hdiB7XFxuICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cXG4gICAgICAubmF2YmFyLXRvZ2dsZWFibGUgLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC41cmVtO1xcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAuNXJlbTsgfVxcbiAgICAubmF2YmFyLXRvZ2dsZWFibGUgPiAuY29udGFpbmVyIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gICAgLm5hdmJhci10b2dnbGVhYmxlIC5uYXZiYXItY29sbGFwc2Uge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcXG4gICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XFxuICAgICAgd2lkdGg6IDEwMCU7IH1cXG4gICAgLm5hdmJhci10b2dnbGVhYmxlIC5uYXZiYXItdG9nZ2xlciB7XFxuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAubmF2YmFyLXRvZ2dsZWFibGUtc20gLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUge1xcbiAgICBwb3NpdGlvbjogc3RhdGljO1xcbiAgICBmbG9hdDogbm9uZTsgfVxcbiAgLm5hdmJhci10b2dnbGVhYmxlLXNtID4gLmNvbnRhaW5lciB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAubmF2YmFyLXRvZ2dsZWFibGUtc20ge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gICAgLm5hdmJhci10b2dnbGVhYmxlLXNtIC5uYXZiYXItbmF2IHtcXG4gICAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxcbiAgICAgIC5uYXZiYXItdG9nZ2xlYWJsZS1zbSAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtOyB9XFxuICAgIC5uYXZiYXItdG9nZ2xlYWJsZS1zbSA+IC5jb250YWluZXIge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAubmF2YmFyLXRvZ2dsZWFibGUtc20gLm5hdmJhci1jb2xsYXBzZSB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3ggIWltcG9ydGFudDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcXG4gICAgICB3aWR0aDogMTAwJTsgfVxcbiAgICAubmF2YmFyLXRvZ2dsZWFibGUtc20gLm5hdmJhci10b2dnbGVyIHtcXG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cXG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5uYXZiYXItdG9nZ2xlYWJsZS1tZCAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XFxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxuICAgIGZsb2F0OiBub25lOyB9XFxuICAubmF2YmFyLXRvZ2dsZWFibGUtbWQgPiAuY29udGFpbmVyIHtcXG4gICAgcGFkZGluZy1yaWdodDogMDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5uYXZiYXItdG9nZ2xlYWJsZS1tZCB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAubmF2YmFyLXRvZ2dsZWFibGUtbWQgLm5hdmJhci1uYXYge1xcbiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XFxuICAgICAgLm5hdmJhci10b2dnbGVhYmxlLW1kIC5uYXZiYXItbmF2IC5uYXYtbGluayB7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuNXJlbTtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07IH1cXG4gICAgLm5hdmJhci10b2dnbGVhYmxlLW1kID4gLmNvbnRhaW5lciB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgIC5uYXZiYXItdG9nZ2xlYWJsZS1tZCAubmF2YmFyLWNvbGxhcHNlIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94ICFpbXBvcnRhbnQ7XFxuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xcbiAgICAgIHdpZHRoOiAxMDAlOyB9XFxuICAgIC5uYXZiYXItdG9nZ2xlYWJsZS1tZCAubmF2YmFyLXRvZ2dsZXIge1xcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxcbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcXG4gIC5uYXZiYXItdG9nZ2xlYWJsZS1sZyAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudSB7XFxuICAgIHBvc2l0aW9uOiBzdGF0aWM7XFxuICAgIGZsb2F0OiBub25lOyB9XFxuICAubmF2YmFyLXRvZ2dsZWFibGUtbGcgPiAuY29udGFpbmVyIHtcXG4gICAgcGFkZGluZy1yaWdodDogMDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAubmF2YmFyLXRvZ2dsZWFibGUtbGcge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gICAgLm5hdmJhci10b2dnbGVhYmxlLWxnIC5uYXZiYXItbmF2IHtcXG4gICAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxcbiAgICAgIC5uYXZiYXItdG9nZ2xlYWJsZS1sZyAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xcbiAgICAgICAgcGFkZGluZy1yaWdodDogLjVyZW07XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtOyB9XFxuICAgIC5uYXZiYXItdG9nZ2xlYWJsZS1sZyA+IC5jb250YWluZXIge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAubmF2YmFyLXRvZ2dsZWFibGUtbGcgLm5hdmJhci1jb2xsYXBzZSB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3ggIWltcG9ydGFudDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcXG4gICAgICB3aWR0aDogMTAwJTsgfVxcbiAgICAubmF2YmFyLXRvZ2dsZWFibGUtbGcgLm5hdmJhci10b2dnbGVyIHtcXG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cXG4ubmF2YmFyLXRvZ2dsZWFibGUteGwge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4ubmF2YmFyLXRvZ2dsZWFibGUteGwgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnUge1xcbiAgICBwb3NpdGlvbjogc3RhdGljO1xcbiAgICBmbG9hdDogbm9uZTsgfVxcbi5uYXZiYXItdG9nZ2xlYWJsZS14bCA+IC5jb250YWluZXIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cXG4ubmF2YmFyLXRvZ2dsZWFibGUteGwgLm5hdmJhci1uYXYge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxcbi5uYXZiYXItdG9nZ2xlYWJsZS14bCAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IC41cmVtO1xcbiAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07IH1cXG4ubmF2YmFyLXRvZ2dsZWFibGUteGwgPiAuY29udGFpbmVyIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbi5uYXZiYXItdG9nZ2xlYWJsZS14bCAubmF2YmFyLWNvbGxhcHNlIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3ggIWltcG9ydGFudDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcXG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xcbiAgICB3aWR0aDogMTAwJTsgfVxcbi5uYXZiYXItdG9nZ2xlYWJsZS14bCAubmF2YmFyLXRvZ2dsZXIge1xcbiAgICBkaXNwbGF5OiBub25lOyB9XFxuLm5hdmJhci1saWdodCAubmF2YmFyLWJyYW5kLCAubmF2YmFyLWxpZ2h0IC5uYXZiYXItdG9nZ2xlciB7XFxuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpOyB9XFxuLm5hdmJhci1saWdodCAubmF2YmFyLWJyYW5kOmZvY3VzLCAubmF2YmFyLWxpZ2h0IC5uYXZiYXItYnJhbmQ6aG92ZXIsIC5uYXZiYXItbGlnaHQgLm5hdmJhci10b2dnbGVyOmZvY3VzLCAubmF2YmFyLWxpZ2h0IC5uYXZiYXItdG9nZ2xlcjpob3ZlciB7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7IH1cXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItbmF2IC5uYXYtbGluayB7XFxuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpOyB9XFxuLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbms6Zm9jdXMsIC5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm5hdi1saW5rOmhvdmVyIHtcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTsgfVxcbi5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm5hdi1saW5rLmRpc2FibGVkIHtcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTsgfVxcbi5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm9wZW4gPiAubmF2LWxpbmssIC5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLmFjdGl2ZSA+IC5uYXYtbGluaywgLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsub3BlbiwgLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsuYWN0aXZlIHtcXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7IH1cXG4ubmF2YmFyLWxpZ2h0IC5uYXZiYXItdG9nZ2xlciB7XFxuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxcbi5uYXZiYXItbGlnaHQgLm5hdmJhci10b2dnbGVyLWljb24ge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB2aWV3Qm94PScwIDAgMzIgMzInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIHN0cm9rZT0ncmdiYSgwLCAwLCAwLCAwLjUpJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJyBkPSdNNCA4aDI0TTQgMTZoMjRNNCAyNGgyNCcvJTNFJTNDL3N2ZyUzRVxcXCIpOyB9XFxuLm5hdmJhci1saWdodCAubmF2YmFyLXRleHQge1xcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgfVxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kLCAubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGVyIHtcXG4gIGNvbG9yOiB3aGl0ZTsgfVxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kOmZvY3VzLCAubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZDpob3ZlciwgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlcjpmb2N1cywgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlcjpob3ZlciB7XFxuICAgIGNvbG9yOiB3aGl0ZTsgfVxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAubmF2LWxpbmsge1xcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAubmF2LWxpbms6Zm9jdXMsIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAubmF2LWxpbms6aG92ZXIge1xcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTsgfVxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAubmF2LWxpbmsuZGlzYWJsZWQge1xcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTsgfVxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiA+IC5uYXYtbGluaywgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5hY3RpdmUgPiAubmF2LWxpbmssIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAubmF2LWxpbmsub3BlbiwgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5uYXYtbGluay5hY3RpdmUge1xcbiAgY29sb3I6IHdoaXRlOyB9XFxuLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlciB7XFxuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxcbi5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZXItaWNvbiB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMiAzMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggc3Ryb2tlPSdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSknIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J000IDhoMjRNNCAxNmgyNE00IDI0aDI0Jy8lM0UlM0Mvc3ZnJTNFXFxcIik7IH1cXG4ubmF2YmFyLWludmVyc2UgLm5hdmJhci10ZXh0IHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cXG4uY2FyZCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07IH1cXG4uY2FyZC1ibG9jayB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICBwYWRkaW5nOiAxLjI1cmVtOyB9XFxuLmNhcmQtdGl0bGUge1xcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTsgfVxcbi5jYXJkLXN1YnRpdGxlIHtcXG4gIG1hcmdpbi10b3A6IC0wLjM3NXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDA7IH1cXG4uY2FyZC10ZXh0Omxhc3QtY2hpbGQge1xcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxcbi5jYXJkLWxpbms6aG92ZXIge1xcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XFxuLmNhcmQtbGluayArIC5jYXJkLWxpbmsge1xcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cXG4uY2FyZCA+IC5saXN0LWdyb3VwOmZpcnN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjVyZW07XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI1cmVtOyB9XFxuLmNhcmQgPiAubGlzdC1ncm91cDpsYXN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuMjVyZW07IH1cXG4uY2FyZC1oZWFkZXIge1xcbiAgcGFkZGluZzogMC43NXJlbSAxLjI1cmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjk7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyNSk7IH1cXG4uY2FyZC1oZWFkZXI6Zmlyc3QtY2hpbGQge1xcbiAgICBib3JkZXItcmFkaXVzOiBjYWxjKDAuMjVyZW0gLSAxcHgpIGNhbGMoMC4yNXJlbSAtIDFweCkgMCAwOyB9XFxuLmNhcmQtZm9vdGVyIHtcXG4gIHBhZGRpbmc6IDAuNzVyZW0gMS4yNXJlbTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjk7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyNSk7IH1cXG4uY2FyZC1mb290ZXI6bGFzdC1jaGlsZCB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDAgMCBjYWxjKDAuMjVyZW0gLSAxcHgpIGNhbGMoMC4yNXJlbSAtIDFweCk7IH1cXG4uY2FyZC1oZWFkZXItdGFicyB7XFxuICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IC0wLjc1cmVtO1xcbiAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTtcXG4gIGJvcmRlci1ib3R0b206IDA7IH1cXG4uY2FyZC1oZWFkZXItcGlsbHMge1xcbiAgbWFyZ2luLXJpZ2h0OiAtMC42MjVyZW07XFxuICBtYXJnaW4tbGVmdDogLTAuNjI1cmVtOyB9XFxuLmNhcmQtcHJpbWFyeSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI3NWQ4O1xcbiAgYm9yZGVyLWNvbG9yOiAjMDI3NWQ4OyB9XFxuLmNhcmQtcHJpbWFyeSAuY2FyZC1oZWFkZXIsIC5jYXJkLXByaW1hcnkgLmNhcmQtZm9vdGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4uY2FyZC1zdWNjZXNzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2I4NWM7XFxuICBib3JkZXItY29sb3I6ICM1Y2I4NWM7IH1cXG4uY2FyZC1zdWNjZXNzIC5jYXJkLWhlYWRlciwgLmNhcmQtc3VjY2VzcyAuY2FyZC1mb290ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbi5jYXJkLWluZm8ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzViYzBkZTtcXG4gIGJvcmRlci1jb2xvcjogIzViYzBkZTsgfVxcbi5jYXJkLWluZm8gLmNhcmQtaGVhZGVyLCAuY2FyZC1pbmZvIC5jYXJkLWZvb3RlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuLmNhcmQtd2FybmluZyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBhZDRlO1xcbiAgYm9yZGVyLWNvbG9yOiAjZjBhZDRlOyB9XFxuLmNhcmQtd2FybmluZyAuY2FyZC1oZWFkZXIsIC5jYXJkLXdhcm5pbmcgLmNhcmQtZm9vdGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4uY2FyZC1kYW5nZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5NTM0ZjtcXG4gIGJvcmRlci1jb2xvcjogI2Q5NTM0ZjsgfVxcbi5jYXJkLWRhbmdlciAuY2FyZC1oZWFkZXIsIC5jYXJkLWRhbmdlciAuY2FyZC1mb290ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxcbi5jYXJkLW91dGxpbmUtcHJpbWFyeSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1jb2xvcjogIzAyNzVkODsgfVxcbi5jYXJkLW91dGxpbmUtc2Vjb25kYXJ5IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWNvbG9yOiAjY2NjOyB9XFxuLmNhcmQtb3V0bGluZS1pbmZvIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWNvbG9yOiAjNWJjMGRlOyB9XFxuLmNhcmQtb3V0bGluZS1zdWNjZXNzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWNvbG9yOiAjNWNiODVjOyB9XFxuLmNhcmQtb3V0bGluZS13YXJuaW5nIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWNvbG9yOiAjZjBhZDRlOyB9XFxuLmNhcmQtb3V0bGluZS1kYW5nZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6ICNkOTUzNGY7IH1cXG4uY2FyZC1pbnZlcnNlIHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjUpOyB9XFxuLmNhcmQtaW52ZXJzZSAuY2FyZC1oZWFkZXIsIC5jYXJkLWludmVyc2UgLmNhcmQtZm9vdGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOyB9XFxuLmNhcmQtaW52ZXJzZSAuY2FyZC1oZWFkZXIsIC5jYXJkLWludmVyc2UgLmNhcmQtZm9vdGVyLCAuY2FyZC1pbnZlcnNlIC5jYXJkLXRpdGxlLCAuY2FyZC1pbnZlcnNlIC5jYXJkLWJsb2NrcXVvdGUge1xcbiAgICBjb2xvcjogI2ZmZjsgfVxcbi5jYXJkLWludmVyc2UgLmNhcmQtbGluaywgLmNhcmQtaW52ZXJzZSAuY2FyZC10ZXh0LCAuY2FyZC1pbnZlcnNlIC5jYXJkLXN1YnRpdGxlLCAuY2FyZC1pbnZlcnNlIC5jYXJkLWJsb2NrcXVvdGUgLmJsb2NrcXVvdGUtZm9vdGVyIHtcXG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NSk7IH1cXG4uY2FyZC1pbnZlcnNlIC5jYXJkLWxpbms6Zm9jdXMsIC5jYXJkLWludmVyc2UgLmNhcmQtbGluazpob3ZlciB7XFxuICAgIGNvbG9yOiAjZmZmOyB9XFxuLmNhcmQtYmxvY2txdW90ZSB7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG4gIGJvcmRlci1sZWZ0OiAwOyB9XFxuLmNhcmQtaW1nIHtcXG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoMC4yNXJlbSAtIDFweCk7IH1cXG4uY2FyZC1pbWctb3ZlcmxheSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBwYWRkaW5nOiAxLjI1cmVtOyB9XFxuLmNhcmQtaW1nLXRvcCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogY2FsYygwLjI1cmVtIC0gMXB4KTtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGMoMC4yNXJlbSAtIDFweCk7IH1cXG4uY2FyZC1pbWctYm90dG9tIHtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBjYWxjKDAuMjVyZW0gLSAxcHgpO1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogY2FsYygwLjI1cmVtIC0gMXB4KTsgfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLmNhcmQtZGVjayB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgIC1tcy1mbGV4LWZsb3c6IHJvdyB3cmFwO1xcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7IH1cXG4gICAgLmNhcmQtZGVjayAuY2FyZCB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgICAtbXMtZmxleDogMSAwIDBweDtcXG4gICAgICAgICAgICAgIGZsZXg6IDEgMCAwO1xcbiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxcbiAgICAgIC5jYXJkLWRlY2sgLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCkge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7IH1cXG4gICAgICAuY2FyZC1kZWNrIC5jYXJkOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gIC5jYXJkLWdyb3VwIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgLW1zLWZsZXgtZmxvdzogcm93IHdyYXA7XFxuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxcbiAgICAuY2FyZC1ncm91cCAuY2FyZCB7XFxuICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgICAgLW1zLWZsZXg6IDEgMCAwcHg7XFxuICAgICAgICAgICAgICBmbGV4OiAxIDAgMDsgfVxcbiAgICAgIC5jYXJkLWdyb3VwIC5jYXJkICsgLmNhcmQge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgICAgICBib3JkZXItbGVmdDogMDsgfVxcbiAgICAgIC5jYXJkLWdyb3VwIC5jYXJkOmZpcnN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7IH1cXG4gICAgICAgIC5jYXJkLWdyb3VwIC5jYXJkOmZpcnN0LWNoaWxkIC5jYXJkLWltZy10b3Age1xcbiAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsgfVxcbiAgICAgICAgLmNhcmQtZ3JvdXAgLmNhcmQ6Zmlyc3QtY2hpbGQgLmNhcmQtaW1nLWJvdHRvbSB7XFxuICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOyB9XFxuICAgICAgLmNhcmQtZ3JvdXAgLmNhcmQ6bGFzdC1jaGlsZCB7XFxuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsgfVxcbiAgICAgICAgLmNhcmQtZ3JvdXAgLmNhcmQ6bGFzdC1jaGlsZCAuY2FyZC1pbWctdG9wIHtcXG4gICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsgfVxcbiAgICAgICAgLmNhcmQtZ3JvdXAgLmNhcmQ6bGFzdC1jaGlsZCAuY2FyZC1pbWctYm90dG9tIHtcXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsgfVxcbiAgICAgIC5jYXJkLWdyb3VwIC5jYXJkOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDsgfVxcbiAgICAgICAgLmNhcmQtZ3JvdXAgLmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSAuY2FyZC1pbWctdG9wLCAuY2FyZC1ncm91cCAuY2FyZDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIC5jYXJkLWltZy1ib3R0b20ge1xcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwOyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gIC5jYXJkLWNvbHVtbnMge1xcbiAgICAtd2Via2l0LWNvbHVtbi1jb3VudDogMztcXG4gICAgICAgICAgICBjb2x1bW4tY291bnQ6IDM7XFxuICAgIC13ZWJraXQtY29sdW1uLWdhcDogMS4yNXJlbTtcXG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiAxLjI1cmVtOyB9XFxuICAgIC5jYXJkLWNvbHVtbnMgLmNhcmQge1xcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICB3aWR0aDogMTAwJTtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOyB9IH1cXG4uYnJlYWRjcnVtYiB7XFxuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbiAgbGlzdC1zdHlsZTogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VlZWY7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtOyB9XFxuLmJyZWFkY3J1bWI6OmFmdGVyIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgICBjbGVhcjogYm90aDsgfVxcbi5icmVhZGNydW1iLWl0ZW0ge1xcbiAgZmxvYXQ6IGxlZnQ7IH1cXG4uYnJlYWRjcnVtYi1pdGVtICsgLmJyZWFkY3J1bWItaXRlbTo6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XFxuICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xcbiAgICBjb2xvcjogIzYzNmM3MjtcXG4gICAgY29udGVudDogXFxcIi9cXFwiOyB9XFxuLmJyZWFkY3J1bWItaXRlbSArIC5icmVhZGNydW1iLWl0ZW06aG92ZXI6OmJlZm9yZSB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XFxuLmJyZWFkY3J1bWItaXRlbSArIC5icmVhZGNydW1iLWl0ZW06aG92ZXI6OmJlZm9yZSB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxcbi5icmVhZGNydW1iLWl0ZW0uYWN0aXZlIHtcXG4gICAgY29sb3I6ICM2MzZjNzI7IH1cXG4ucGFnaW5hdGlvbiB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtOyB9XFxuLnBhZ2UtaXRlbTpmaXJzdC1jaGlsZCAucGFnZS1saW5rIHtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yNXJlbTtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjVyZW07IH1cXG4ucGFnZS1pdGVtOmxhc3QtY2hpbGQgLnBhZ2UtbGluayB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjI1cmVtOyB9XFxuLnBhZ2UtaXRlbS5hY3RpdmUgLnBhZ2UtbGluayB7XFxuICB6LWluZGV4OiAyO1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI3NWQ4O1xcbiAgYm9yZGVyLWNvbG9yOiAjMDI3NWQ4OyB9XFxuLnBhZ2UtaXRlbS5kaXNhYmxlZCAucGFnZS1saW5rIHtcXG4gIGNvbG9yOiAjNjM2YzcyO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJvcmRlci1jb2xvcjogI2RkZDsgfVxcbi5wYWdlLWxpbmsge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcXG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XFxuICBjb2xvcjogIzAyNzVkODtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOyB9XFxuLnBhZ2UtbGluazpmb2N1cywgLnBhZ2UtbGluazpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDE0YzhjO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlY2VlZWY7XFxuICAgIGJvcmRlci1jb2xvcjogI2RkZDsgfVxcbi5wYWdpbmF0aW9uLWxnIC5wYWdlLWxpbmsge1xcbiAgcGFkZGluZzogMC43NXJlbSAxLjVyZW07XFxuICBmb250LXNpemU6IDEuMjVyZW07IH1cXG4ucGFnaW5hdGlvbi1sZyAucGFnZS1pdGVtOmZpcnN0LWNoaWxkIC5wYWdlLWxpbmsge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4zcmVtO1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4zcmVtOyB9XFxuLnBhZ2luYXRpb24tbGcgLnBhZ2UtaXRlbTpsYXN0LWNoaWxkIC5wYWdlLWxpbmsge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuM3JlbTtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjNyZW07IH1cXG4ucGFnaW5hdGlvbi1zbSAucGFnZS1saW5rIHtcXG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxcbi5wYWdpbmF0aW9uLXNtIC5wYWdlLWl0ZW06Zmlyc3QtY2hpbGQgLnBhZ2UtbGluayB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjJyZW07XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjJyZW07IH1cXG4ucGFnaW5hdGlvbi1zbSAucGFnZS1pdGVtOmxhc3QtY2hpbGQgLnBhZ2UtbGluayB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4ycmVtO1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMnJlbTsgfVxcbi5iYWRnZSB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBwYWRkaW5nOiAwLjI1ZW0gMC40ZW07XFxuICBmb250LXNpemU6IDc1JTtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxuICBjb2xvcjogI2ZmZjtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtOyB9XFxuLmJhZGdlOmVtcHR5IHtcXG4gICAgZGlzcGxheTogbm9uZTsgfVxcbi5idG4gLmJhZGdlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHRvcDogLTFweDsgfVxcbmEuYmFkZ2U6Zm9jdXMsIGEuYmFkZ2U6aG92ZXIge1xcbiAgY29sb3I6ICNmZmY7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7IH1cXG4uYmFkZ2UtcGlsbCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAwLjZlbTtcXG4gIHBhZGRpbmctbGVmdDogMC42ZW07XFxuICBib3JkZXItcmFkaXVzOiAxMHJlbTsgfVxcbi5iYWRnZS1kZWZhdWx0IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM2MzZjNzI7IH1cXG4uYmFkZ2UtZGVmYXVsdFtocmVmXTpmb2N1cywgLmJhZGdlLWRlZmF1bHRbaHJlZl06aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGI1MjU3OyB9XFxuLmJhZGdlLXByaW1hcnkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAyNzVkODsgfVxcbi5iYWRnZS1wcmltYXJ5W2hyZWZdOmZvY3VzLCAuYmFkZ2UtcHJpbWFyeVtocmVmXTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMjVhYTU7IH1cXG4uYmFkZ2Utc3VjY2VzcyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNiODVjOyB9XFxuLmJhZGdlLXN1Y2Nlc3NbaHJlZl06Zm9jdXMsIC5iYWRnZS1zdWNjZXNzW2hyZWZdOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OWQ0NDsgfVxcbi5iYWRnZS1pbmZvIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1YmMwZGU7IH1cXG4uYmFkZ2UtaW5mb1tocmVmXTpmb2N1cywgLmJhZGdlLWluZm9baHJlZl06aG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzFiMGQ1OyB9XFxuLmJhZGdlLXdhcm5pbmcge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwYWQ0ZTsgfVxcbi5iYWRnZS13YXJuaW5nW2hyZWZdOmZvY3VzLCAuYmFkZ2Utd2FybmluZ1tocmVmXTpob3ZlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYzk3MWY7IH1cXG4uYmFkZ2UtZGFuZ2VyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNkOTUzNGY7IH1cXG4uYmFkZ2UtZGFuZ2VyW2hyZWZdOmZvY3VzLCAuYmFkZ2UtZGFuZ2VyW2hyZWZdOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M5MzAyYzsgfVxcbi5qdW1ib3Ryb24ge1xcbiAgcGFkZGluZzogMnJlbSAxcmVtO1xcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VlZWY7XFxuICBib3JkZXItcmFkaXVzOiAwLjNyZW07IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gICAgLmp1bWJvdHJvbiB7XFxuICAgICAgcGFkZGluZzogNHJlbSAycmVtOyB9IH1cXG4uanVtYm90cm9uLWhyIHtcXG4gIGJvcmRlci10b3AtY29sb3I6ICNkMGQ1ZDg7IH1cXG4uanVtYm90cm9uLWZsdWlkIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDA7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICBib3JkZXItcmFkaXVzOiAwOyB9XFxuLmFsZXJ0IHtcXG4gIHBhZGRpbmc6IDAuNzVyZW0gMS4yNXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XFxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07IH1cXG4uYWxlcnQtaGVhZGluZyB7XFxuICBjb2xvcjogaW5oZXJpdDsgfVxcbi5hbGVydC1saW5rIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XFxuLmFsZXJ0LWRpc21pc3NpYmxlIC5jbG9zZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB0b3A6IC0wLjc1cmVtO1xcbiAgcmlnaHQ6IC0xLjI1cmVtO1xcbiAgcGFkZGluZzogMC43NXJlbSAxLjI1cmVtO1xcbiAgY29sb3I6IGluaGVyaXQ7IH1cXG4uYWxlcnQtc3VjY2VzcyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xcbiAgYm9yZGVyLWNvbG9yOiAjZDBlOWM2O1xcbiAgY29sb3I6ICMzYzc2M2Q7IH1cXG4uYWxlcnQtc3VjY2VzcyBociB7XFxuICAgIGJvcmRlci10b3AtY29sb3I6ICNjMWUyYjM7IH1cXG4uYWxlcnQtc3VjY2VzcyAuYWxlcnQtbGluayB7XFxuICAgIGNvbG9yOiAjMmI1NDJjOyB9XFxuLmFsZXJ0LWluZm8ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcXG4gIGJvcmRlci1jb2xvcjogI2JjZGZmMTtcXG4gIGNvbG9yOiAjMzE3MDhmOyB9XFxuLmFsZXJ0LWluZm8gaHIge1xcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjYTZkNWVjOyB9XFxuLmFsZXJ0LWluZm8gLmFsZXJ0LWxpbmsge1xcbiAgICBjb2xvcjogIzI0NTI2OTsgfVxcbi5hbGVydC13YXJuaW5nIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XFxuICBib3JkZXItY29sb3I6ICNmYWYyY2M7XFxuICBjb2xvcjogIzhhNmQzYjsgfVxcbi5hbGVydC13YXJuaW5nIGhyIHtcXG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2Y3ZWNiNTsgfVxcbi5hbGVydC13YXJuaW5nIC5hbGVydC1saW5rIHtcXG4gICAgY29sb3I6ICM2NjUxMmM7IH1cXG4uYWxlcnQtZGFuZ2VyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XFxuICBib3JkZXItY29sb3I6ICNlYmNjY2M7XFxuICBjb2xvcjogI2E5NDQ0MjsgfVxcbi5hbGVydC1kYW5nZXIgaHIge1xcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZTRiOWI5OyB9XFxuLmFsZXJ0LWRhbmdlciAuYWxlcnQtbGluayB7XFxuICAgIGNvbG9yOiAjODQzNTM0OyB9XFxuQC13ZWJraXQta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcXG4gIGZyb20ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcmVtIDA7IH1cXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9IH1cXG5Aa2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcXG4gIGZyb20ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcmVtIDA7IH1cXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9IH1cXG4ucHJvZ3Jlc3Mge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDFyZW07XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZWVmO1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsgfVxcbi5wcm9ncmVzcy1iYXIge1xcbiAgaGVpZ2h0OiAxcmVtO1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI3NWQ4OyB9XFxuLnByb2dyZXNzLWJhci1zdHJpcGVkIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xcbiAgYmFja2dyb3VuZC1zaXplOiAxcmVtIDFyZW07IH1cXG4ucHJvZ3Jlc3MtYmFyLWFuaW1hdGVkIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBwcm9ncmVzcy1iYXItc3RyaXBlcyAxcyBsaW5lYXIgaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMXMgbGluZWFyIGluZmluaXRlOyB9XFxuLm1lZGlhIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cXG4ubWVkaWEtYm9keSB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxO1xcbiAgICAgICAgICBmbGV4OiAxOyB9XFxuLmxpc3QtZ3JvdXAge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAwOyB9XFxuLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24ge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBjb2xvcjogIzQ2NGE0YztcXG4gIHRleHQtYWxpZ246IGluaGVyaXQ7IH1cXG4ubGlzdC1ncm91cC1pdGVtLWFjdGlvbiAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xcbiAgICBjb2xvcjogIzI5MmIyYzsgfVxcbi5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzLCAubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3ZlciB7XFxuICAgIGNvbG9yOiAjNDY0YTRjO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjk7IH1cXG4ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjphY3RpdmUge1xcbiAgICBjb2xvcjogIzI5MmIyYztcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWVlZjsgfVxcbi5saXN0LWdyb3VwLWl0ZW0ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1mbG93OiByb3cgd3JhcDtcXG4gICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIHBhZGRpbmc6IDAuNzVyZW0gMS4yNXJlbTtcXG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyNSk7IH1cXG4ubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjVyZW07XFxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjVyZW07IH1cXG4ubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yNXJlbTsgfVxcbi5saXN0LWdyb3VwLWl0ZW06Zm9jdXMsIC5saXN0LWdyb3VwLWl0ZW06aG92ZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkLCAubGlzdC1ncm91cC1pdGVtOmRpc2FibGVkIHtcXG4gICAgY29sb3I6ICM2MzZjNzI7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZywgLmxpc3QtZ3JvdXAtaXRlbTpkaXNhYmxlZCAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xcbiAgICAgIGNvbG9yOiBpbmhlcml0OyB9XFxuLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCAubGlzdC1ncm91cC1pdGVtLXRleHQsIC5saXN0LWdyb3VwLWl0ZW06ZGlzYWJsZWQgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcXG4gICAgICBjb2xvcjogIzYzNmM3MjsgfVxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIHtcXG4gICAgei1pbmRleDogMjtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMjc1ZDg7XFxuICAgIGJvcmRlci1jb2xvcjogIzAyNzVkODsgfVxcbi5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZywgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gc21hbGwsIC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCB7XFxuICAgICAgY29sb3I6IGluaGVyaXQ7IH1cXG4ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLXRleHQge1xcbiAgICAgIGNvbG9yOiAjZGFlZWZmOyB9XFxuLmxpc3QtZ3JvdXAtZmx1c2ggLmxpc3QtZ3JvdXAtaXRlbSB7XFxuICBib3JkZXItcmlnaHQ6IDA7XFxuICBib3JkZXItbGVmdDogMDtcXG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cXG4ubGlzdC1ncm91cC1mbHVzaDpmaXJzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3A6IDA7IH1cXG4ubGlzdC1ncm91cC1mbHVzaDpsYXN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XFxuICBib3JkZXItYm90dG9tOiAwOyB9XFxuLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIHtcXG4gIGNvbG9yOiAjM2M3NjNkO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODsgfVxcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyB7XFxuICBjb2xvcjogIzNjNzYzZDsgfVxcbmEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLCBidXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7IH1cXG5hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmZvY3VzLCBhLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmhvdmVyLCBidXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6Zm9jdXMsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpob3ZlciB7XFxuICAgIGNvbG9yOiAjM2M3NjNkO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBlOWM2OyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmUsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNjNzYzZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjM2M3NjNkOyB9XFxuLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIHtcXG4gIGNvbG9yOiAjMzE3MDhmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNzsgfVxcbmEubGlzdC1ncm91cC1pdGVtLWluZm8sIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbyB7XFxuICBjb2xvcjogIzMxNzA4ZjsgfVxcbmEubGlzdC1ncm91cC1pdGVtLWluZm8gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLCBidXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7IH1cXG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmZvY3VzLCBhLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmhvdmVyLCBidXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm86Zm9jdXMsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbzpob3ZlciB7XFxuICAgIGNvbG9yOiAjMzE3MDhmO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRlM2YzOyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmUsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMxNzA4ZjtcXG4gICAgYm9yZGVyLWNvbG9yOiAjMzE3MDhmOyB9XFxuLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIHtcXG4gIGNvbG9yOiAjOGE2ZDNiO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMzsgfVxcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZyB7XFxuICBjb2xvcjogIzhhNmQzYjsgfVxcbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLCBidXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7IH1cXG5hLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmZvY3VzLCBhLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmhvdmVyLCBidXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6Zm9jdXMsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpob3ZlciB7XFxuICAgIGNvbG9yOiAjOGE2ZDNiO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmMmNjOyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmUsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmUge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzhhNmQzYjtcXG4gICAgYm9yZGVyLWNvbG9yOiAjOGE2ZDNiOyB9XFxuLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIge1xcbiAgY29sb3I6ICNhOTQ0NDI7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlOyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLCBidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlciB7XFxuICBjb2xvcjogI2E5NDQ0MjsgfVxcbmEubGlzdC1ncm91cC1pdGVtLWRhbmdlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XFxuICAgIGNvbG9yOiBpbmhlcml0OyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmZvY3VzLCBhLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6aG92ZXIsIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmZvY3VzLCBidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpob3ZlciB7XFxuICAgIGNvbG9yOiAjYTk0NDQyO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJjY2NjOyB9XFxuYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZSwgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlIHtcXG4gICAgY29sb3I6ICNmZmY7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNhOTQ0NDI7XFxuICAgIGJvcmRlci1jb2xvcjogI2E5NDQ0MjsgfVxcbi5lbWJlZC1yZXNwb25zaXZlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiAwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbi5lbWJlZC1yZXNwb25zaXZlOjpiZWZvcmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgY29udGVudDogXFxcIlxcXCI7IH1cXG4uZW1iZWQtcmVzcG9uc2l2ZSAuZW1iZWQtcmVzcG9uc2l2ZS1pdGVtLCAuZW1iZWQtcmVzcG9uc2l2ZSBpZnJhbWUsIC5lbWJlZC1yZXNwb25zaXZlIGVtYmVkLCAuZW1iZWQtcmVzcG9uc2l2ZSBvYmplY3QsIC5lbWJlZC1yZXNwb25zaXZlIHZpZGVvIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDA7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgYm9yZGVyOiAwOyB9XFxuLmVtYmVkLXJlc3BvbnNpdmUtMjFieTk6OmJlZm9yZSB7XFxuICBwYWRkaW5nLXRvcDogNDIuODU3MTQlOyB9XFxuLmVtYmVkLXJlc3BvbnNpdmUtMTZieTk6OmJlZm9yZSB7XFxuICBwYWRkaW5nLXRvcDogNTYuMjUlOyB9XFxuLmVtYmVkLXJlc3BvbnNpdmUtNGJ5Mzo6YmVmb3JlIHtcXG4gIHBhZGRpbmctdG9wOiA3NSU7IH1cXG4uZW1iZWQtcmVzcG9uc2l2ZS0xYnkxOjpiZWZvcmUge1xcbiAgcGFkZGluZy10b3A6IDEwMCU7IH1cXG4uY2xvc2Uge1xcbiAgZmxvYXQ6IHJpZ2h0O1xcbiAgZm9udC1zaXplOiAxLjVyZW07XFxuICBmb250LXdlaWdodDogYm9sZDtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbiAgY29sb3I6ICMwMDA7XFxuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAjZmZmO1xcbiAgb3BhY2l0eTogLjU7IH1cXG4uY2xvc2U6Zm9jdXMsIC5jbG9zZTpob3ZlciB7XFxuICAgIGNvbG9yOiAjMDAwO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgb3BhY2l0eTogLjc1OyB9XFxuYnV0dG9uLmNsb3NlIHtcXG4gIHBhZGRpbmc6IDA7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlcjogMDtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxcbi5tb2RhbC1vcGVuIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cXG4ubW9kYWwge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgei1pbmRleDogMTA1MDtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgb3V0bGluZTogMDsgfVxcbi5tb2RhbC5mYWRlIC5tb2RhbC1kaWFsb2cge1xcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XFxuICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XFxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dCwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTsgfVxcbi5tb2RhbC5zaG93IC5tb2RhbC1kaWFsb2cge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XFxuLm1vZGFsLW9wZW4gLm1vZGFsIHtcXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcXG4gIG92ZXJmbG93LXk6IGF1dG87IH1cXG4ubW9kYWwtZGlhbG9nIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiBhdXRvO1xcbiAgbWFyZ2luOiAxMHB4OyB9XFxuLm1vZGFsLWNvbnRlbnQge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtcXG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcXG4gIG91dGxpbmU6IDA7IH1cXG4ubW9kYWwtYmFja2Ryb3Age1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgei1pbmRleDogMTA0MDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7IH1cXG4ubW9kYWwtYmFja2Ryb3AuZmFkZSB7XFxuICAgIG9wYWNpdHk6IDA7IH1cXG4ubW9kYWwtYmFja2Ryb3Auc2hvdyB7XFxuICAgIG9wYWNpdHk6IDAuNTsgfVxcbi5tb2RhbC1oZWFkZXIge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIHBhZGRpbmc6IDE1cHg7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VjZWVlZjsgfVxcbi5tb2RhbC10aXRsZSB7XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuNTsgfVxcbi5tb2RhbC1ib2R5IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gIHBhZGRpbmc6IDE1cHg7IH1cXG4ubW9kYWwtZm9vdGVyIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG4gIHBhZGRpbmc6IDE1cHg7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2VjZWVlZjsgfVxcbi5tb2RhbC1mb290ZXIgPiA6bm90KDpmaXJzdC1jaGlsZCkge1xcbiAgICBtYXJnaW4tbGVmdDogLjI1cmVtOyB9XFxuLm1vZGFsLWZvb3RlciA+IDpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAuMjVyZW07IH1cXG4ubW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtOTk5OXB4O1xcbiAgd2lkdGg6IDUwcHg7XFxuICBoZWlnaHQ6IDUwcHg7XFxuICBvdmVyZmxvdzogc2Nyb2xsOyB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAubW9kYWwtZGlhbG9nIHtcXG4gICAgbWF4LXdpZHRoOiA1MDBweDtcXG4gICAgbWFyZ2luOiAzMHB4IGF1dG87IH1cXG4gIC5tb2RhbC1zbSB7XFxuICAgIG1heC13aWR0aDogMzAwcHg7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLm1vZGFsLWxnIHtcXG4gICAgbWF4LXdpZHRoOiA4MDBweDsgfSB9XFxuLnRvb2x0aXAge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgei1pbmRleDogMTA3MDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIHN5c3RlbS11aSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBSb2JvdG8sIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICBsaW5lLWJyZWFrOiBhdXRvO1xcbiAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICB0ZXh0LWFsaWduOiBzdGFydDtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIHRleHQtc2hhZG93OiBub25lO1xcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgd29yZC1icmVhazogbm9ybWFsO1xcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xcbiAgb3BhY2l0eTogMDsgfVxcbi50b29sdGlwLnNob3cge1xcbiAgICBvcGFjaXR5OiAwLjk7IH1cXG4udG9vbHRpcC50b29sdGlwLXRvcCwgLnRvb2x0aXAuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtYm90dG9tIHtcXG4gICAgcGFkZGluZzogNXB4IDA7XFxuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cXG4udG9vbHRpcC50b29sdGlwLXRvcCAudG9vbHRpcC1pbm5lcjo6YmVmb3JlLCAudG9vbHRpcC5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1ib3R0b20gLnRvb2x0aXAtaW5uZXI6OmJlZm9yZSB7XFxuICAgICAgYm90dG9tOiAwO1xcbiAgICAgIGxlZnQ6IDUwJTtcXG4gICAgICBtYXJnaW4tbGVmdDogLTVweDtcXG4gICAgICBjb250ZW50OiBcXFwiXFxcIjtcXG4gICAgICBib3JkZXItd2lkdGg6IDVweCA1cHggMDtcXG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAjMDAwOyB9XFxuLnRvb2x0aXAudG9vbHRpcC1yaWdodCwgLnRvb2x0aXAuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtbGVmdCB7XFxuICAgIHBhZGRpbmc6IDAgNXB4O1xcbiAgICBtYXJnaW4tbGVmdDogM3B4OyB9XFxuLnRvb2x0aXAudG9vbHRpcC1yaWdodCAudG9vbHRpcC1pbm5lcjo6YmVmb3JlLCAudG9vbHRpcC5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1sZWZ0IC50b29sdGlwLWlubmVyOjpiZWZvcmUge1xcbiAgICAgIHRvcDogNTAlO1xcbiAgICAgIGxlZnQ6IDA7XFxuICAgICAgbWFyZ2luLXRvcDogLTVweDtcXG4gICAgICBjb250ZW50OiBcXFwiXFxcIjtcXG4gICAgICBib3JkZXItd2lkdGg6IDVweCA1cHggNXB4IDA7XFxuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjMDAwOyB9XFxuLnRvb2x0aXAudG9vbHRpcC1ib3R0b20sIC50b29sdGlwLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLXRvcCB7XFxuICAgIHBhZGRpbmc6IDVweCAwO1xcbiAgICBtYXJnaW4tdG9wOiAzcHg7IH1cXG4udG9vbHRpcC50b29sdGlwLWJvdHRvbSAudG9vbHRpcC1pbm5lcjo6YmVmb3JlLCAudG9vbHRpcC5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC10b3AgLnRvb2x0aXAtaW5uZXI6OmJlZm9yZSB7XFxuICAgICAgdG9wOiAwO1xcbiAgICAgIGxlZnQ6IDUwJTtcXG4gICAgICBtYXJnaW4tbGVmdDogLTVweDtcXG4gICAgICBjb250ZW50OiBcXFwiXFxcIjtcXG4gICAgICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcXG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjMDAwOyB9XFxuLnRvb2x0aXAudG9vbHRpcC1sZWZ0LCAudG9vbHRpcC5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1yaWdodCB7XFxuICAgIHBhZGRpbmc6IDAgNXB4O1xcbiAgICBtYXJnaW4tbGVmdDogLTNweDsgfVxcbi50b29sdGlwLnRvb2x0aXAtbGVmdCAudG9vbHRpcC1pbm5lcjo6YmVmb3JlLCAudG9vbHRpcC5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1yaWdodCAudG9vbHRpcC1pbm5lcjo6YmVmb3JlIHtcXG4gICAgICB0b3A6IDUwJTtcXG4gICAgICByaWdodDogMDtcXG4gICAgICBtYXJnaW4tdG9wOiAtNXB4O1xcbiAgICAgIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgICAgIGJvcmRlci13aWR0aDogNXB4IDAgNXB4IDVweDtcXG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogIzAwMDsgfVxcbi50b29sdGlwLWlubmVyIHtcXG4gIG1heC13aWR0aDogMjAwcHg7XFxuICBwYWRkaW5nOiAzcHggOHB4O1xcbiAgY29sb3I6ICNmZmY7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsgfVxcbi50b29sdGlwLWlubmVyOjpiZWZvcmUge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiAwO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7IH1cXG4ucG9wb3ZlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgei1pbmRleDogMTA2MDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbWF4LXdpZHRoOiAyNzZweDtcXG4gIHBhZGRpbmc6IDFweDtcXG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBzeXN0ZW0tdWksIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBcXFwiSGVsdmV0aWNhIE5ldWVcXFwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbiAgbGluZS1icmVhazogYXV0bztcXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcXG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcXG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtOyB9XFxuLnBvcG92ZXIucG9wb3Zlci10b3AsIC5wb3BvdmVyLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLWJvdHRvbSB7XFxuICAgIG1hcmdpbi10b3A6IC0xMHB4OyB9XFxuLnBvcG92ZXIucG9wb3Zlci10b3A6OmJlZm9yZSwgLnBvcG92ZXIucG9wb3Zlci10b3A6OmFmdGVyLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1ib3R0b206OmJlZm9yZSwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtYm90dG9tOjphZnRlciB7XFxuICAgICAgbGVmdDogNTAlO1xcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7IH1cXG4ucG9wb3Zlci5wb3BvdmVyLXRvcDo6YmVmb3JlLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1ib3R0b206OmJlZm9yZSB7XFxuICAgICAgYm90dG9tOiAtMTFweDtcXG4gICAgICBtYXJnaW4tbGVmdDogLTExcHg7XFxuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxcbi5wb3BvdmVyLnBvcG92ZXItdG9wOjphZnRlciwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtYm90dG9tOjphZnRlciB7XFxuICAgICAgYm90dG9tOiAtMTBweDtcXG4gICAgICBtYXJnaW4tbGVmdDogLTEwcHg7XFxuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjsgfVxcbi5wb3BvdmVyLnBvcG92ZXItcmlnaHQsIC5wb3BvdmVyLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLWxlZnQge1xcbiAgICBtYXJnaW4tbGVmdDogMTBweDsgfVxcbi5wb3BvdmVyLnBvcG92ZXItcmlnaHQ6OmJlZm9yZSwgLnBvcG92ZXIucG9wb3Zlci1yaWdodDo6YWZ0ZXIsIC5wb3BvdmVyLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLWxlZnQ6OmJlZm9yZSwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtbGVmdDo6YWZ0ZXIge1xcbiAgICAgIHRvcDogNTAlO1xcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwOyB9XFxuLnBvcG92ZXIucG9wb3Zlci1yaWdodDo6YmVmb3JlLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1sZWZ0OjpiZWZvcmUge1xcbiAgICAgIGxlZnQ6IC0xMXB4O1xcbiAgICAgIG1hcmdpbi10b3A6IC0xMXB4O1xcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxcbi5wb3BvdmVyLnBvcG92ZXItcmlnaHQ6OmFmdGVyLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC1sZWZ0OjphZnRlciB7XFxuICAgICAgbGVmdDogLTEwcHg7XFxuICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XFxuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZmZmOyB9XFxuLnBvcG92ZXIucG9wb3Zlci1ib3R0b20sIC5wb3BvdmVyLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLXRvcCB7XFxuICAgIG1hcmdpbi10b3A6IDEwcHg7IH1cXG4ucG9wb3Zlci5wb3BvdmVyLWJvdHRvbTo6YmVmb3JlLCAucG9wb3Zlci5wb3BvdmVyLWJvdHRvbTo6YWZ0ZXIsIC5wb3BvdmVyLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLXRvcDo6YmVmb3JlLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC10b3A6OmFmdGVyIHtcXG4gICAgICBsZWZ0OiA1MCU7XFxuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMDsgfVxcbi5wb3BvdmVyLnBvcG92ZXItYm90dG9tOjpiZWZvcmUsIC5wb3BvdmVyLmJzLXRldGhlci1lbGVtZW50LWF0dGFjaGVkLXRvcDo6YmVmb3JlIHtcXG4gICAgICB0b3A6IC0xMXB4O1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTFweDtcXG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XFxuLnBvcG92ZXIucG9wb3Zlci1ib3R0b206OmFmdGVyLCAucG9wb3Zlci5icy10ZXRoZXItZWxlbWVudC1hdHRhY2hlZC10b3A6OmFmdGVyIHtcXG4gICAgICB0b3A6IC0xMHB4O1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcXG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZjdmN2Y3OyB9XFxuLnBvcG92ZXIucG9wb3Zlci1ib3R0b20gLnBvcG92ZXItdGl0bGU6OmJlZm9yZSwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtdG9wIC5wb3BvdmVyLXRpdGxlOjpiZWZvcmUge1xcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICB0b3A6IDA7XFxuICAgICAgbGVmdDogNTAlO1xcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgIHdpZHRoOiAyMHB4O1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcXG4gICAgICBjb250ZW50OiBcXFwiXFxcIjtcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y3ZjdmNzsgfVxcbi5wb3BvdmVyLnBvcG92ZXItbGVmdCwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtcmlnaHQge1xcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7IH1cXG4ucG9wb3Zlci5wb3BvdmVyLWxlZnQ6OmJlZm9yZSwgLnBvcG92ZXIucG9wb3Zlci1sZWZ0OjphZnRlciwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtcmlnaHQ6OmJlZm9yZSwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtcmlnaHQ6OmFmdGVyIHtcXG4gICAgICB0b3A6IDUwJTtcXG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7IH1cXG4ucG9wb3Zlci5wb3BvdmVyLWxlZnQ6OmJlZm9yZSwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtcmlnaHQ6OmJlZm9yZSB7XFxuICAgICAgcmlnaHQ6IC0xMXB4O1xcbiAgICAgIG1hcmdpbi10b3A6IC0xMXB4O1xcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XFxuLnBvcG92ZXIucG9wb3Zlci1sZWZ0OjphZnRlciwgLnBvcG92ZXIuYnMtdGV0aGVyLWVsZW1lbnQtYXR0YWNoZWQtcmlnaHQ6OmFmdGVyIHtcXG4gICAgICByaWdodDogLTEwcHg7XFxuICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XFxuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmY7IH1cXG4ucG9wb3Zlci10aXRsZSB7XFxuICBwYWRkaW5nOiA4cHggMTRweDtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxuICBmb250LXNpemU6IDFyZW07XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYmViZWI7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogY2FsYygwLjNyZW0gLSAxcHgpO1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogY2FsYygwLjNyZW0gLSAxcHgpOyB9XFxuLnBvcG92ZXItdGl0bGU6ZW1wdHkge1xcbiAgICBkaXNwbGF5OiBub25lOyB9XFxuLnBvcG92ZXItY29udGVudCB7XFxuICBwYWRkaW5nOiA5cHggMTRweDsgfVxcbi5wb3BvdmVyOjpiZWZvcmUsIC5wb3BvdmVyOjphZnRlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAwO1xcbiAgaGVpZ2h0OiAwO1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7IH1cXG4ucG9wb3Zlcjo6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgYm9yZGVyLXdpZHRoOiAxMXB4OyB9XFxuLnBvcG92ZXI6OmFmdGVyIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgYm9yZGVyLXdpZHRoOiAxMHB4OyB9XFxuLmNhcm91c2VsIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbi5jYXJvdXNlbC1pbm5lciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cXG4uY2Fyb3VzZWwtaXRlbSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgd2lkdGg6IDEwMCU7IH1cXG5AbWVkaWEgKC13ZWJraXQtdHJhbnNmb3JtLTNkKSB7XFxuICAgIC5jYXJvdXNlbC1pdGVtIHtcXG4gICAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XFxuICAgICAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dCwgLXdlYmtpdC10cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcXG4gICAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgICAtd2Via2l0LXBlcnNwZWN0aXZlOiAxMDAwcHg7XFxuICAgICAgICAgICAgICBwZXJzcGVjdGl2ZTogMTAwMHB4OyB9IH1cXG5Ac3VwcG9ydHMgKCgtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkpIG9yICh0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApKSkge1xcbiAgICAuY2Fyb3VzZWwtaXRlbSB7XFxuICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0O1xcbiAgICAgIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XFxuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XFxuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQsIC13ZWJraXQtdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XFxuICAgICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XFxuICAgICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XFxuICAgICAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogMTAwMHB4O1xcbiAgICAgICAgICAgICAgcGVyc3BlY3RpdmU6IDEwMDBweDsgfSB9XFxuLmNhcm91c2VsLWl0ZW0uYWN0aXZlLCAuY2Fyb3VzZWwtaXRlbS1uZXh0LCAuY2Fyb3VzZWwtaXRlbS1wcmV2IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4OyB9XFxuLmNhcm91c2VsLWl0ZW0tbmV4dCwgLmNhcm91c2VsLWl0ZW0tcHJldiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7IH1cXG5AbWVkaWEgKC13ZWJraXQtdHJhbnNmb3JtLTNkKSB7XFxuICAuY2Fyb3VzZWwtaXRlbS1uZXh0LmNhcm91c2VsLWl0ZW0tbGVmdCwgLmNhcm91c2VsLWl0ZW0tcHJldi5jYXJvdXNlbC1pdGVtLXJpZ2h0IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cXG4gIC5jYXJvdXNlbC1pdGVtLW5leHQsIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1yaWdodCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApOyB9XFxuICAuY2Fyb3VzZWwtaXRlbS1wcmV2LCAuYWN0aXZlLmNhcm91c2VsLWl0ZW0tbGVmdCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7IH0gfVxcbkBzdXBwb3J0cyAoKC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSkgb3IgKHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkpKSB7XFxuICAuY2Fyb3VzZWwtaXRlbS1uZXh0LmNhcm91c2VsLWl0ZW0tbGVmdCwgLmNhcm91c2VsLWl0ZW0tcHJldi5jYXJvdXNlbC1pdGVtLXJpZ2h0IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cXG4gIC5jYXJvdXNlbC1pdGVtLW5leHQsIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1yaWdodCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApOyB9XFxuICAuY2Fyb3VzZWwtaXRlbS1wcmV2LCAuYWN0aXZlLmNhcm91c2VsLWl0ZW0tbGVmdCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7IH0gfVxcbi5jYXJvdXNlbC1jb250cm9sLXByZXYsIC5jYXJvdXNlbC1jb250cm9sLW5leHQge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHdpZHRoOiAxNSU7XFxuICBjb2xvcjogI2ZmZjtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIG9wYWNpdHk6IDAuNTsgfVxcbi5jYXJvdXNlbC1jb250cm9sLXByZXY6Zm9jdXMsIC5jYXJvdXNlbC1jb250cm9sLXByZXY6aG92ZXIsIC5jYXJvdXNlbC1jb250cm9sLW5leHQ6Zm9jdXMsIC5jYXJvdXNlbC1jb250cm9sLW5leHQ6aG92ZXIge1xcbiAgICBjb2xvcjogI2ZmZjtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBvdXRsaW5lOiAwO1xcbiAgICBvcGFjaXR5OiAuOTsgfVxcbi5jYXJvdXNlbC1jb250cm9sLXByZXYge1xcbiAgbGVmdDogMDsgfVxcbi5jYXJvdXNlbC1jb250cm9sLW5leHQge1xcbiAgcmlnaHQ6IDA7IH1cXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24sIC5jYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbiB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7IH1cXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24ge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9JyUyM2ZmZicgdmlld0JveD0nMCAwIDggOCclM0UlM0NwYXRoIGQ9J000IDBsLTQgNCA0IDQgMS41LTEuNS0yLjUtMi41IDIuNS0yLjUtMS41LTEuNXonLyUzRSUzQy9zdmclM0VcXFwiKTsgfVxcbi5jYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbiB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nJTIzZmZmJyB2aWV3Qm94PScwIDAgOCA4JyUzRSUzQ3BhdGggZD0nTTEuNSAwbC0xLjUgMS41IDIuNSAyLjUtMi41IDIuNSAxLjUgMS41IDQtNC00LTR6Jy8lM0UlM0Mvc3ZnJTNFXFxcIik7IH1cXG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMTBweDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAxNTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICBtYXJnaW4tcmlnaHQ6IDE1JTtcXG4gIG1hcmdpbi1sZWZ0OiAxNSU7XFxuICBsaXN0LXN0eWxlOiBub25lOyB9XFxuLmNhcm91c2VsLWluZGljYXRvcnMgbGkge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICAgIG1heC13aWR0aDogMzBweDtcXG4gICAgaGVpZ2h0OiAzcHg7XFxuICAgIG1hcmdpbi1yaWdodDogM3B4O1xcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xcbiAgICB0ZXh0LWluZGVudDogLTk5OXB4O1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxcbi5jYXJvdXNlbC1pbmRpY2F0b3JzIGxpOjpiZWZvcmUge1xcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICB0b3A6IC0xMHB4O1xcbiAgICAgIGxlZnQ6IDA7XFxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgIGhlaWdodDogMTBweDtcXG4gICAgICBjb250ZW50OiBcXFwiXFxcIjsgfVxcbi5jYXJvdXNlbC1pbmRpY2F0b3JzIGxpOjphZnRlciB7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIGJvdHRvbTogLTEwcHg7XFxuICAgICAgbGVmdDogMDtcXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgaGVpZ2h0OiAxMHB4O1xcbiAgICAgIGNvbnRlbnQ6IFxcXCJcXFwiOyB9XFxuLmNhcm91c2VsLWluZGljYXRvcnMgLmFjdGl2ZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cXG4uY2Fyb3VzZWwtY2FwdGlvbiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMTUlO1xcbiAgYm90dG9tOiAyMHB4O1xcbiAgbGVmdDogMTUlO1xcbiAgei1pbmRleDogMTA7XFxuICBwYWRkaW5nLXRvcDogMjBweDtcXG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xcbiAgY29sb3I6ICNmZmY7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cXG4uYWxpZ24tYmFzZWxpbmUge1xcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tdG9wIHtcXG4gIHZlcnRpY2FsLWFsaWduOiB0b3AgIWltcG9ydGFudDsgfVxcbi5hbGlnbi1taWRkbGUge1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50OyB9XFxuLmFsaWduLWJvdHRvbSB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tdGV4dC1ib3R0b20ge1xcbiAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tdGV4dC10b3Age1xcbiAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wICFpbXBvcnRhbnQ7IH1cXG4uYmctZmFkZWQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxcbi5iZy1wcmltYXJ5IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjc1ZDggIWltcG9ydGFudDsgfVxcbmEuYmctcHJpbWFyeTpmb2N1cywgYS5iZy1wcmltYXJ5OmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjVhYTUgIWltcG9ydGFudDsgfVxcbi5iZy1zdWNjZXNzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2I4NWMgIWltcG9ydGFudDsgfVxcbmEuYmctc3VjY2Vzczpmb2N1cywgYS5iZy1zdWNjZXNzOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDlkNDQgIWltcG9ydGFudDsgfVxcbi5iZy1pbmZvIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1YmMwZGUgIWltcG9ydGFudDsgfVxcbmEuYmctaW5mbzpmb2N1cywgYS5iZy1pbmZvOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMzMWIwZDUgIWltcG9ydGFudDsgfVxcbi5iZy13YXJuaW5nIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGFkNGUgIWltcG9ydGFudDsgfVxcbmEuYmctd2FybmluZzpmb2N1cywgYS5iZy13YXJuaW5nOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzk3MWYgIWltcG9ydGFudDsgfVxcbi5iZy1kYW5nZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5NTM0ZiAhaW1wb3J0YW50OyB9XFxuYS5iZy1kYW5nZXI6Zm9jdXMsIGEuYmctZGFuZ2VyOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNjOTMwMmMgIWltcG9ydGFudDsgfVxcbi5iZy1pbnZlcnNlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyOTJiMmMgIWltcG9ydGFudDsgfVxcbmEuYmctaW52ZXJzZTpmb2N1cywgYS5iZy1pbnZlcnNlOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMxMDExMTIgIWltcG9ydGFudDsgfVxcbi5ib3JkZXItMCB7XFxuICBib3JkZXI6IDAgIWltcG9ydGFudDsgfVxcbi5ib3JkZXItdG9wLTAge1xcbiAgYm9yZGVyLXRvcDogMCAhaW1wb3J0YW50OyB9XFxuLmJvcmRlci1yaWdodC0wIHtcXG4gIGJvcmRlci1yaWdodDogMCAhaW1wb3J0YW50OyB9XFxuLmJvcmRlci1ib3R0b20tMCB7XFxuICBib3JkZXItYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4uYm9yZGVyLWxlZnQtMCB7XFxuICBib3JkZXItbGVmdDogMCAhaW1wb3J0YW50OyB9XFxuLnJvdW5kZWQge1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsgfVxcbi5yb3VuZGVkLXRvcCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjVyZW07IH1cXG4ucm91bmRlZC1yaWdodCB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjI1cmVtOyB9XFxuLnJvdW5kZWQtYm90dG9tIHtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjI1cmVtO1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yNXJlbTsgfVxcbi5yb3VuZGVkLWxlZnQge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yNXJlbTtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjVyZW07IH1cXG4ucm91bmRlZC1jaXJjbGUge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlOyB9XFxuLnJvdW5kZWQtMCB7XFxuICBib3JkZXItcmFkaXVzOiAwOyB9XFxuLmNsZWFyZml4OjphZnRlciB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgY2xlYXI6IGJvdGg7IH1cXG4uZC1ub25lIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxcbi5kLWlubGluZSB7XFxuICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfVxcbi5kLWlubGluZS1ibG9jayB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfVxcbi5kLWJsb2NrIHtcXG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cXG4uZC10YWJsZSB7XFxuICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XFxuLmQtdGFibGUtY2VsbCB7XFxuICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cXG4uZC1mbGV4IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyB9XFxuLmQtaW5saW5lLWZsZXgge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94ICFpbXBvcnRhbnQ7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3ggIWltcG9ydGFudDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gIC5kLXNtLW5vbmUge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG4gIC5kLXNtLWlubGluZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9XFxuICAuZC1zbS1pbmxpbmUtYmxvY2sge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfVxcbiAgLmQtc20tYmxvY2sge1xcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XFxuICAuZC1zbS10YWJsZSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cXG4gIC5kLXNtLXRhYmxlLWNlbGwge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cXG4gIC5kLXNtLWZsZXgge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cXG4gIC5kLXNtLWlubGluZS1mbGV4IHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5kLW1kLW5vbmUge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG4gIC5kLW1kLWlubGluZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9XFxuICAuZC1tZC1pbmxpbmUtYmxvY2sge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfVxcbiAgLmQtbWQtYmxvY2sge1xcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XFxuICAuZC1tZC10YWJsZSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cXG4gIC5kLW1kLXRhYmxlLWNlbGwge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cXG4gIC5kLW1kLWZsZXgge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cXG4gIC5kLW1kLWlubGluZS1mbGV4IHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5kLWxnLW5vbmUge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG4gIC5kLWxnLWlubGluZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9XFxuICAuZC1sZy1pbmxpbmUtYmxvY2sge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfVxcbiAgLmQtbGctYmxvY2sge1xcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XFxuICAuZC1sZy10YWJsZSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cXG4gIC5kLWxnLXRhYmxlLWNlbGwge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cXG4gIC5kLWxnLWZsZXgge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cXG4gIC5kLWxnLWlubGluZS1mbGV4IHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94ICFpbXBvcnRhbnQ7XFxuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAuZC14bC1ub25lIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XFxuICAuZC14bC1pbmxpbmUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfVxcbiAgLmQteGwtaW5saW5lLWJsb2NrIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH1cXG4gIC5kLXhsLWJsb2NrIHtcXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxcbiAgLmQteGwtdGFibGUge1xcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XFxuICAuZC14bC10YWJsZS1jZWxsIHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XFxuICAuZC14bC1mbGV4IHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3ggIWltcG9ydGFudDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcXG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyB9XFxuICAuZC14bC1pbmxpbmUtZmxleCB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveCAhaW1wb3J0YW50O1xcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3ggIWltcG9ydGFudDtcXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsgfSB9XFxuLmZsZXgtZmlyc3Qge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMDtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogLTE7XFxuICAgICAgICAgIG9yZGVyOiAtMTsgfVxcbi5mbGV4LWxhc3Qge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogMTtcXG4gICAgICAgICAgb3JkZXI6IDE7IH1cXG4uZmxleC11bm9yZGVyZWQge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogMDtcXG4gICAgICAgICAgb3JkZXI6IDA7IH1cXG4uZmxleC1yb3cge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsICFpbXBvcnRhbnQ7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhaW1wb3J0YW50O1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDsgfVxcbi5mbGV4LWNvbHVtbiB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsICFpbXBvcnRhbnQ7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhaW1wb3J0YW50O1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsgfVxcbi5mbGV4LXJvdy1yZXZlcnNlIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbCAhaW1wb3J0YW50O1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDsgfVxcbi5mbGV4LWNvbHVtbi1yZXZlcnNlIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgIWltcG9ydGFudDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cXG4uZmxleC13cmFwIHtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsgfVxcbi5mbGV4LW5vd3JhcCB7XFxuICAtbXMtZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcXG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50OyB9XFxuLmZsZXgtd3JhcC1yZXZlcnNlIHtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cXG4uanVzdGlmeS1jb250ZW50LXN0YXJ0IHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4uanVzdGlmeS1jb250ZW50LWVuZCB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XFxuLmp1c3RpZnktY29udGVudC1jZW50ZXIge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4uanVzdGlmeS1jb250ZW50LWJldHdlZW4ge1xcbiAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeSAhaW1wb3J0YW50O1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cXG4uanVzdGlmeS1jb250ZW50LWFyb3VuZCB7XFxuICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlICFpbXBvcnRhbnQ7XFxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsgfVxcbi5hbGlnbi1pdGVtcy1zdGFydCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbi5hbGlnbi1pdGVtcy1lbmQge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24taXRlbXMtY2VudGVyIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbi5hbGlnbi1pdGVtcy1iYXNlbGluZSB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24taXRlbXMtc3RyZXRjaCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tY29udGVudC1zdGFydCB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuLmFsaWduLWNvbnRlbnQtZW5kIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbi5hbGlnbi1jb250ZW50LWNlbnRlciB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuLmFsaWduLWNvbnRlbnQtYmV0d2VlbiB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcXG4gICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tY29udGVudC1hcm91bmQge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlICFpbXBvcnRhbnQ7XFxuICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tY29udGVudC1zdHJldGNoIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxcbi5hbGlnbi1zZWxmLWF1dG8ge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogYXV0byAhaW1wb3J0YW50O1xcbiAgICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsgfVxcbi5hbGlnbi1zZWxmLXN0YXJ0IHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuLmFsaWduLXNlbGYtZW5kIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tc2VsZi1jZW50ZXIge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tc2VsZi1iYXNlbGluZSB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xcbiAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cXG4uYWxpZ24tc2VsZi1zdHJldGNoIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0cmV0Y2ggIWltcG9ydGFudDtcXG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gIC5mbGV4LXNtLWZpcnN0IHtcXG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMDtcXG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTtcXG4gICAgICAgICAgICBvcmRlcjogLTE7IH1cXG4gIC5mbGV4LXNtLWxhc3Qge1xcbiAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyO1xcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDE7XFxuICAgICAgICAgICAgb3JkZXI6IDE7IH1cXG4gIC5mbGV4LXNtLXVub3JkZXJlZCB7XFxuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDE7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogMDtcXG4gICAgICAgICAgICBvcmRlcjogMDsgfVxcbiAgLmZsZXgtc20tcm93IHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgtc20tY29sdW1uIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LXNtLXJvdy1yZXZlcnNlIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50OyB9XFxuICAuZmxleC1zbS1jb2x1bW4tcmV2ZXJzZSB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LXNtLXdyYXAge1xcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgtc20tbm93cmFwIHtcXG4gICAgLW1zLWZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50OyB9XFxuICAuZmxleC1zbS13cmFwLXJldmVyc2Uge1xcbiAgICAtbXMtZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQtc20tc3RhcnQge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC1zbS1lbmQge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC1zbS1jZW50ZXIge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQtc20tYmV0d2VlbiB7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC1zbS1hcm91bmQge1xcbiAgICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlICFpbXBvcnRhbnQ7XFxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMtc20tc3RhcnQge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1pdGVtcy1zbS1lbmQge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1pdGVtcy1zbS1jZW50ZXIge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMtc20tYmFzZWxpbmUge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMtc20tc3RyZXRjaCB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LXNtLXN0YXJ0IHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC1zbS1lbmQge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQtc20tY2VudGVyIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC1zbS1iZXR3ZWVuIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LXNtLWFyb3VuZCB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZGlzdHJpYnV0ZSAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LXNtLXN0cmV0Y2gge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IHN0cmV0Y2ggIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYtc20tYXV0byB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGF1dG8gIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYtc20tc3RhcnQge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi1zbS1lbmQge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLXNtLWNlbnRlciB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLXNtLWJhc2VsaW5lIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLXNtLXN0cmV0Y2gge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLmZsZXgtbWQtZmlyc3Qge1xcbiAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAwO1xcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IC0xO1xcbiAgICAgICAgICAgIG9yZGVyOiAtMTsgfVxcbiAgLmZsZXgtbWQtbGFzdCB7XFxuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDI7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogMTtcXG4gICAgICAgICAgICBvcmRlcjogMTsgfVxcbiAgLmZsZXgtbWQtdW5vcmRlcmVkIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTtcXG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAwO1xcbiAgICAgICAgICAgIG9yZGVyOiAwOyB9XFxuICAuZmxleC1tZC1yb3cge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWwgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50OyB9XFxuICAuZmxleC1tZC1jb2x1bW4ge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsgfVxcbiAgLmZsZXgtbWQtcm93LXJldmVyc2Uge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LW1kLWNvbHVtbi1yZXZlcnNlIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgtbWQtd3JhcCB7XFxuICAgIC1tcy1mbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50OyB9XFxuICAuZmxleC1tZC1ub3dyYXAge1xcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcXG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LW1kLXdyYXAtcmV2ZXJzZSB7XFxuICAgIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC1tZC1zdGFydCB7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuICAuanVzdGlmeS1jb250ZW50LW1kLWVuZCB7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtcGFjazogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XFxuICAuanVzdGlmeS1jb250ZW50LW1kLWNlbnRlciB7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbiAgLmp1c3RpZnktY29udGVudC1tZC1iZXR3ZWVuIHtcXG4gICAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeSAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeSAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OyB9XFxuICAuanVzdGlmeS1jb250ZW50LW1kLWFyb3VuZCB7XFxuICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGUgIWltcG9ydGFudDtcXG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1pdGVtcy1tZC1zdGFydCB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLW1kLWVuZCB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLW1kLWNlbnRlciB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1pdGVtcy1tZC1iYXNlbGluZSB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1pdGVtcy1tZC1zdHJldGNoIHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2ggIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQtbWQtc3RhcnQge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LW1kLWVuZCB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC1tZC1jZW50ZXIge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LW1kLWJldHdlZW4ge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGp1c3RpZnkgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQtbWQtYXJvdW5kIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQtbWQtc3RyZXRjaCB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi1tZC1hdXRvIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogYXV0byAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogYXV0byAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi1tZC1zdGFydCB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLW1kLWVuZCB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYtbWQtY2VudGVyIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYtbWQtYmFzZWxpbmUge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYtbWQtc3RyZXRjaCB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0cmV0Y2ggIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAuZmxleC1sZy1maXJzdCB7XFxuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDA7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogLTE7XFxuICAgICAgICAgICAgb3JkZXI6IC0xOyB9XFxuICAuZmxleC1sZy1sYXN0IHtcXG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcXG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xcbiAgICAgICAgICAgIG9yZGVyOiAxOyB9XFxuICAuZmxleC1sZy11bm9yZGVyZWQge1xcbiAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxO1xcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDA7XFxuICAgICAgICAgICAgb3JkZXI6IDA7IH1cXG4gIC5mbGV4LWxnLXJvdyB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LWxnLWNvbHVtbiB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWwgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OyB9XFxuICAuZmxleC1sZy1yb3ctcmV2ZXJzZSB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgtbGctY29sdW1uLXJldmVyc2Uge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50OyB9XFxuICAuZmxleC1sZy13cmFwIHtcXG4gICAgLW1zLWZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LWxnLW5vd3JhcCB7XFxuICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgtbGctd3JhcC1yZXZlcnNlIHtcXG4gICAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50OyB9XFxuICAuanVzdGlmeS1jb250ZW50LWxnLXN0YXJ0IHtcXG4gICAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctZW5kIHtcXG4gICAgLXdlYmtpdC1ib3gtcGFjazogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctY2VudGVyIHtcXG4gICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuICAuanVzdGlmeS1jb250ZW50LWxnLWJldHdlZW4ge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctYXJvdW5kIHtcXG4gICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZSAhaW1wb3J0YW50O1xcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLWxnLXN0YXJ0IHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMtbGctZW5kIHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMtbGctY2VudGVyIHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLWxnLWJhc2VsaW5lIHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLWxnLXN0cmV0Y2gge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2ggIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC1sZy1zdGFydCB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQtbGctZW5kIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LWxnLWNlbnRlciB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQtbGctYmV0d2VlbiB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeSAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC1sZy1hcm91bmQge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGUgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC1sZy1zdHJldGNoIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLWxnLWF1dG8ge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLWxnLXN0YXJ0IHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYtbGctZW5kIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi1sZy1jZW50ZXIge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi1sZy1iYXNlbGluZSB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi1sZy1zdHJldGNoIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAuZmxleC14bC1maXJzdCB7XFxuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDA7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogLTE7XFxuICAgICAgICAgICAgb3JkZXI6IC0xOyB9XFxuICAuZmxleC14bC1sYXN0IHtcXG4gICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcXG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xcbiAgICAgICAgICAgIG9yZGVyOiAxOyB9XFxuICAuZmxleC14bC11bm9yZGVyZWQge1xcbiAgICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxO1xcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDA7XFxuICAgICAgICAgICAgb3JkZXI6IDA7IH1cXG4gIC5mbGV4LXhsLXJvdyB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LXhsLWNvbHVtbiB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWwgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OyB9XFxuICAuZmxleC14bC1yb3ctcmV2ZXJzZSB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgteGwtY29sdW1uLXJldmVyc2Uge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50OyB9XFxuICAuZmxleC14bC13cmFwIHtcXG4gICAgLW1zLWZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7IH1cXG4gIC5mbGV4LXhsLW5vd3JhcCB7XFxuICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDsgfVxcbiAgLmZsZXgteGwtd3JhcC1yZXZlcnNlIHtcXG4gICAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50OyB9XFxuICAuanVzdGlmeS1jb250ZW50LXhsLXN0YXJ0IHtcXG4gICAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtZW5kIHtcXG4gICAgLXdlYmtpdC1ib3gtcGFjazogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtY2VudGVyIHtcXG4gICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuICAuanVzdGlmeS1jb250ZW50LXhsLWJldHdlZW4ge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cXG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtYXJvdW5kIHtcXG4gICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZSAhaW1wb3J0YW50O1xcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLXhsLXN0YXJ0IHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0ICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMteGwtZW5kIHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZCAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24taXRlbXMteGwtY2VudGVyIHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLXhsLWJhc2VsaW5lIHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWl0ZW1zLXhsLXN0cmV0Y2gge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2ggIWltcG9ydGFudDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC14bC1zdGFydCB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQteGwtZW5kIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1jb250ZW50LXhsLWNlbnRlciB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLWNvbnRlbnQteGwtYmV0d2VlbiB7XFxuICAgIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeSAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC14bC1hcm91bmQge1xcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGUgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tY29udGVudC14bC1zdHJldGNoIHtcXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdHJldGNoICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLXhsLWF1dG8ge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5hbGlnbi1zZWxmLXhsLXN0YXJ0IHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxcbiAgLmFsaWduLXNlbGYteGwtZW5kIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi14bC1jZW50ZXIge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcXG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi14bC1iYXNlbGluZSB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XFxuICAgICAgICBhbGlnbi1zZWxmOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XFxuICAuYWxpZ24tc2VsZi14bC1zdHJldGNoIHtcXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaCAhaW1wb3J0YW50O1xcbiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50OyB9IH1cXG4uZmxvYXQtbGVmdCB7XFxuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XFxuLmZsb2F0LXJpZ2h0IHtcXG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XFxuLmZsb2F0LW5vbmUge1xcbiAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLmZsb2F0LXNtLWxlZnQge1xcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XFxuICAuZmxvYXQtc20tcmlnaHQge1xcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfVxcbiAgLmZsb2F0LXNtLW5vbmUge1xcbiAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5mbG9hdC1tZC1sZWZ0IHtcXG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgfVxcbiAgLmZsb2F0LW1kLXJpZ2h0IHtcXG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cXG4gIC5mbG9hdC1tZC1ub25lIHtcXG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAuZmxvYXQtbGctbGVmdCB7XFxuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cXG4gIC5mbG9hdC1sZy1yaWdodCB7XFxuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XFxuICAuZmxvYXQtbGctbm9uZSB7XFxuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC5mbG9hdC14bC1sZWZ0IHtcXG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgfVxcbiAgLmZsb2F0LXhsLXJpZ2h0IHtcXG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cXG4gIC5mbG9hdC14bC1ub25lIHtcXG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgfSB9XFxuLmZpeGVkLXRvcCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAxMDMwOyB9XFxuLmZpeGVkLWJvdHRvbSB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAxMDMwOyB9XFxuLnN0aWNreS10b3Age1xcbiAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5O1xcbiAgcG9zaXRpb246IHN0aWNreTtcXG4gIHRvcDogMDtcXG4gIHotaW5kZXg6IDEwMzA7IH1cXG4uc3Itb25seSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWFyZ2luOiAtMXB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XFxuICBib3JkZXI6IDA7IH1cXG4uc3Itb25seS1mb2N1c2FibGU6YWN0aXZlLCAuc3Itb25seS1mb2N1c2FibGU6Zm9jdXMge1xcbiAgcG9zaXRpb246IHN0YXRpYztcXG4gIHdpZHRoOiBhdXRvO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgbWFyZ2luOiAwO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICBjbGlwOiBhdXRvOyB9XFxuLnctMjUge1xcbiAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XFxuLnctNTAge1xcbiAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XFxuLnctNzUge1xcbiAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XFxuLnctMTAwIHtcXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cXG4uaC0yNSB7XFxuICBoZWlnaHQ6IDI1JSAhaW1wb3J0YW50OyB9XFxuLmgtNTAge1xcbiAgaGVpZ2h0OiA1MCUgIWltcG9ydGFudDsgfVxcbi5oLTc1IHtcXG4gIGhlaWdodDogNzUlICFpbXBvcnRhbnQ7IH1cXG4uaC0xMDAge1xcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7IH1cXG4ubXctMTAwIHtcXG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XFxuLm1oLTEwMCB7XFxuICBtYXgtaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7IH1cXG4ubS0wIHtcXG4gIG1hcmdpbjogMCAwICFpbXBvcnRhbnQ7IH1cXG4ubXQtMCB7XFxuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cXG4ubXItMCB7XFxuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxcbi5tYi0wIHtcXG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbi5tbC0wIHtcXG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4ubXgtMCB7XFxuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcXG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4ubXktMCB7XFxuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4ubS0xIHtcXG4gIG1hcmdpbjogMC4yNXJlbSAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4ubXQtMSB7XFxuICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4ubXItMSB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbi5tYi0xIHtcXG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbi5tbC0xIHtcXG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4ubXgtMSB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4ubXktMSB7XFxuICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4ubS0yIHtcXG4gIG1hcmdpbjogMC41cmVtIDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuLm10LTIge1xcbiAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4ubXItMiB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuLm1iLTIge1xcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4ubWwtMiB7XFxuICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4ubXgtMiB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuLm15LTIge1xcbiAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbi5tLTMge1xcbiAgbWFyZ2luOiAxcmVtIDFyZW0gIWltcG9ydGFudDsgfVxcbi5tdC0zIHtcXG4gIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDsgfVxcbi5tci0zIHtcXG4gIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50OyB9XFxuLm1iLTMge1xcbiAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OyB9XFxuLm1sLTMge1xcbiAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbi5teC0zIHtcXG4gIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbi5teS0zIHtcXG4gIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbi5tLTQge1xcbiAgbWFyZ2luOiAxLjVyZW0gMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4ubXQtNCB7XFxuICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbi5tci00IHtcXG4gIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4ubWItNCB7XFxuICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbi5tbC00IHtcXG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbi5teC00IHtcXG4gIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4ubXktNCB7XFxuICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcXG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuLm0tNSB7XFxuICBtYXJnaW46IDNyZW0gM3JlbSAhaW1wb3J0YW50OyB9XFxuLm10LTUge1xcbiAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50OyB9XFxuLm1yLTUge1xcbiAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4ubWItNSB7XFxuICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4ubWwtNSB7XFxuICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuLm14LTUge1xcbiAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuLm15LTUge1xcbiAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuLnAtMCB7XFxuICBwYWRkaW5nOiAwIDAgIWltcG9ydGFudDsgfVxcbi5wdC0wIHtcXG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7IH1cXG4ucHItMCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cXG4ucGItMCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuLnBsLTAge1xcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4ucHgtMCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbi5weS0wIHtcXG4gIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XFxuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuLnAtMSB7XFxuICBwYWRkaW5nOiAwLjI1cmVtIDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbi5wdC0xIHtcXG4gIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4ucHItMSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4ucGItMSB7XFxuICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuLnBsLTEge1xcbiAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4ucHgtMSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbi5weS0xIHtcXG4gIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuLnAtMiB7XFxuICBwYWRkaW5nOiAwLjVyZW0gMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4ucHQtMiB7XFxuICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4ucHItMiB7XFxuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbi5wYi0yIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbi5wbC0yIHtcXG4gIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4ucHgtMiB7XFxuICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcXG4gIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4ucHktMiB7XFxuICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4ucC0zIHtcXG4gIHBhZGRpbmc6IDFyZW0gMXJlbSAhaW1wb3J0YW50OyB9XFxuLnB0LTMge1xcbiAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDsgfVxcbi5wci0zIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbi5wYi0zIHtcXG4gIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4ucGwtMyB7XFxuICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbi5weC0zIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcXG4gIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuLnB5LTMge1xcbiAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcXG4gIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4ucC00IHtcXG4gIHBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gIWltcG9ydGFudDsgfVxcbi5wdC00IHtcXG4gIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbi5wci00IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuLnBiLTQge1xcbiAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuLnBsLTQge1xcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbi5weC00IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbi5weS00IHtcXG4gIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcXG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbi5wLTUge1xcbiAgcGFkZGluZzogM3JlbSAzcmVtICFpbXBvcnRhbnQ7IH1cXG4ucHQtNSB7XFxuICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50OyB9XFxuLnByLTUge1xcbiAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50OyB9XFxuLnBiLTUge1xcbiAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbi5wbC01IHtcXG4gIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuLnB4LTUge1xcbiAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xcbiAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4ucHktNSB7XFxuICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xcbiAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbi5tLWF1dG8ge1xcbiAgbWFyZ2luOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4ubXQtYXV0byB7XFxuICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4ubXItYXV0byB7XFxuICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxcbi5tYi1hdXRvIHtcXG4gIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsgfVxcbi5tbC1hdXRvIHtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4ubXgtYXV0byB7XFxuICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4ubXktYXV0byB7XFxuICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gIC5tLXNtLTAge1xcbiAgICBtYXJnaW46IDAgMCAhaW1wb3J0YW50OyB9XFxuICAubXQtc20tMCB7XFxuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxcbiAgLm1yLXNtLTAge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLm1iLXNtLTAge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1zbS0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLm14LXNtLTAge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLm15LXNtLTAge1xcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbiAgLm0tc20tMSB7XFxuICAgIG1hcmdpbjogMC4yNXJlbSAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1zbS0xIHtcXG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXItc20tMSB7XFxuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWItc20tMSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLXNtLTEge1xcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXgtc20tMSB7XFxuICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXktc20tMSB7XFxuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubS1zbS0yIHtcXG4gICAgbWFyZ2luOiAwLjVyZW0gMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1zbS0yIHtcXG4gICAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1zbS0yIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLXNtLTIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLXNtLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1zbS0yIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXktc20tMiB7XFxuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0tc20tMyB7XFxuICAgIG1hcmdpbjogMXJlbSAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1zbS0zIHtcXG4gICAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXItc20tMyB7XFxuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWItc20tMyB7XFxuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLXNtLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXgtc20tMyB7XFxuICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXktc20tMyB7XFxuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubS1zbS00IHtcXG4gICAgbWFyZ2luOiAxLjVyZW0gMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1zbS00IHtcXG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1zbS00IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLXNtLTQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLXNtLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1zbS00IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXktc20tNCB7XFxuICAgIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0tc20tNSB7XFxuICAgIG1hcmdpbjogM3JlbSAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1zbS01IHtcXG4gICAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubXItc20tNSB7XFxuICAgIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubWItc20tNSB7XFxuICAgIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1sLXNtLTUge1xcbiAgICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubXgtc20tNSB7XFxuICAgIG1hcmdpbi1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubXktc20tNSB7XFxuICAgIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucC1zbS0wIHtcXG4gICAgcGFkZGluZzogMCAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC1zbS0wIHtcXG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsgfVxcbiAgLnByLXNtLTAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi1zbS0wIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbiAgLnBsLXNtLTAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLnB4LXNtLTAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9XFxuICAucHktc20tMCB7XFxuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wLXNtLTEge1xcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LXNtLTEge1xcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHItc20tMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLXNtLTEge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGwtc20tMSB7XFxuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHgtc20tMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS1zbS0xIHtcXG4gICAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAtc20tMiB7XFxuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LXNtLTIge1xcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wci1zbS0yIHtcXG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi1zbS0yIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGwtc20tMiB7XFxuICAgIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weC1zbS0yIHtcXG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS1zbS0yIHtcXG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLXNtLTMge1xcbiAgICBwYWRkaW5nOiAxcmVtIDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LXNtLTMge1xcbiAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHItc20tMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLXNtLTMge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGwtc20tMyB7XFxuICAgIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHgtc20tMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS1zbS0zIHtcXG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAtc20tNCB7XFxuICAgIHBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LXNtLTQge1xcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wci1zbS00IHtcXG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi1zbS00IHtcXG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGwtc20tNCB7XFxuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weC1zbS00IHtcXG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS1zbS00IHtcXG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLXNtLTUge1xcbiAgICBwYWRkaW5nOiAzcmVtIDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB0LXNtLTUge1xcbiAgICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucHItc20tNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLXNtLTUge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucGwtc20tNSB7XFxuICAgIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucHgtc20tNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weS1zbS01IHtcXG4gICAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0tc20tYXV0byB7XFxuICAgIG1hcmdpbjogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubXQtc20tYXV0byB7XFxuICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm1yLXNtLWF1dG8ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm1iLXNtLWF1dG8ge1xcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1zbS1hdXRvIHtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm14LXNtLWF1dG8ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm15LXNtLWF1dG8ge1xcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAubS1tZC0wIHtcXG4gICAgbWFyZ2luOiAwIDAgIWltcG9ydGFudDsgfVxcbiAgLm10LW1kLTAge1xcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1tZC0wIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1tZC0wIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuICAubWwtbWQtMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1tZC0wIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1tZC0wIHtcXG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tLW1kLTEge1xcbiAgICBtYXJnaW46IDAuMjVyZW0gMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXQtbWQtMSB7XFxuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLW1kLTEge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLW1kLTEge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1tZC0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LW1kLTEge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LW1kLTEge1xcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0tbWQtMiB7XFxuICAgIG1hcmdpbjogMC41cmVtIDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXQtbWQtMiB7XFxuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXItbWQtMiB7XFxuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1tZC0yIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1tZC0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXgtbWQtMiB7XFxuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LW1kLTIge1xcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLW1kLTMge1xcbiAgICBtYXJnaW46IDFyZW0gMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXQtbWQtMyB7XFxuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLW1kLTMge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLW1kLTMge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1tZC0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LW1kLTMge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LW1kLTMge1xcbiAgICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0tbWQtNCB7XFxuICAgIG1hcmdpbjogMS41cmVtIDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXQtbWQtNCB7XFxuICAgIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXItbWQtNCB7XFxuICAgIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1tZC00IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1tZC00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXgtbWQtNCB7XFxuICAgIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LW1kLTQge1xcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLW1kLTUge1xcbiAgICBtYXJnaW46IDNyZW0gM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubXQtbWQtNSB7XFxuICAgIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLW1kLTUge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLW1kLTUge1xcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC1tZC01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LW1kLTUge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LW1kLTUge1xcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAtbWQtMCB7XFxuICAgIHBhZGRpbmc6IDAgMCAhaW1wb3J0YW50OyB9XFxuICAucHQtbWQtMCB7XFxuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wci1tZC0wIHtcXG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9XFxuICAucGItbWQtMCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC1tZC0wIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5weC1tZC0wIHtcXG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLnB5LW1kLTAge1xcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuICAucC1tZC0xIHtcXG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC1tZC0xIHtcXG4gICAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLW1kLTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi1tZC0xIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLW1kLTEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LW1kLTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHktbWQtMSB7XFxuICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLW1kLTIge1xcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC1tZC0yIHtcXG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHItbWQtMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGItbWQtMiB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLW1kLTIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHgtbWQtMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHktbWQtMiB7XFxuICAgIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucC1tZC0zIHtcXG4gICAgcGFkZGluZzogMXJlbSAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC1tZC0zIHtcXG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLW1kLTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi1tZC0zIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLW1kLTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LW1kLTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHktbWQtMyB7XFxuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLW1kLTQge1xcbiAgICBwYWRkaW5nOiAxLjVyZW0gMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC1tZC00IHtcXG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHItbWQtNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGItbWQtNCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLW1kLTQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHgtbWQtNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHktbWQtNCB7XFxuICAgIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucC1tZC01IHtcXG4gICAgcGFkZGluZzogM3JlbSAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC1tZC01IHtcXG4gICAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLW1kLTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi1tZC01IHtcXG4gICAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLW1kLTUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LW1kLTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucHktbWQtNSB7XFxuICAgIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLW1kLWF1dG8ge1xcbiAgICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm10LW1kLWF1dG8ge1xcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1tZC1hdXRvIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1tZC1hdXRvIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubWwtbWQtYXV0byB7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1tZC1hdXRvIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1tZC1hdXRvIHtcXG4gICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLm0tbGctMCB7XFxuICAgIG1hcmdpbjogMCAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1sZy0wIHtcXG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XFxuICAubXItbGctMCB7XFxuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XFxuICAubWItbGctMCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbiAgLm1sLWxnLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XFxuICAubXgtbGctMCB7XFxuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OyB9XFxuICAubXktbGctMCB7XFxuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuICAubS1sZy0xIHtcXG4gICAgbWFyZ2luOiAwLjI1cmVtIDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm10LWxnLTEge1xcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1sZy0xIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1sZy0xIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWwtbGctMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1sZy0xIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1sZy0xIHtcXG4gICAgbWFyZ2luLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLWxnLTIge1xcbiAgICBtYXJnaW46IDAuNXJlbSAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm10LWxnLTIge1xcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLWxnLTIge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWItbGctMiB7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWwtbGctMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LWxnLTIge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1sZy0yIHtcXG4gICAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubS1sZy0zIHtcXG4gICAgbWFyZ2luOiAxcmVtIDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm10LWxnLTMge1xcbiAgICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1sZy0zIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1sZy0zIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWwtbGctMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1sZy0zIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1sZy0zIHtcXG4gICAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLWxnLTQge1xcbiAgICBtYXJnaW46IDEuNXJlbSAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm10LWxnLTQge1xcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLWxnLTQge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWItbGctNCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubWwtbGctNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LWxnLTQge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1sZy00IHtcXG4gICAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubS1sZy01IHtcXG4gICAgbWFyZ2luOiAzcmVtIDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm10LWxnLTUge1xcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tci1sZy01IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi1sZy01IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubWwtbGctNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teC1sZy01IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5teS1sZy01IHtcXG4gICAgbWFyZ2luLXRvcDogM3JlbSAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLWxnLTAge1xcbiAgICBwYWRkaW5nOiAwIDAgIWltcG9ydGFudDsgfVxcbiAgLnB0LWxnLTAge1xcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OyB9XFxuICAucHItbGctMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLnBiLWxnLTAge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuICAucGwtbGctMCB7XFxuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9XFxuICAucHgtbGctMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5weS1sZy0wIHtcXG4gICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDsgfVxcbiAgLnAtbGctMSB7XFxuICAgIHBhZGRpbmc6IDAuMjVyZW0gMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHQtbGctMSB7XFxuICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wci1sZy0xIHtcXG4gICAgcGFkZGluZy1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGItbGctMSB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC1sZy0xIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weC1sZy0xIHtcXG4gICAgcGFkZGluZy1yaWdodDogMC4yNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB5LWxnLTEge1xcbiAgICBwYWRkaW5nLXRvcDogMC4yNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucC1sZy0yIHtcXG4gICAgcGFkZGluZzogMC41cmVtIDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHQtbGctMiB7XFxuICAgIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLWxnLTIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLWxnLTIge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC1sZy0yIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LWxnLTIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB5LWxnLTIge1xcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAtbGctMyB7XFxuICAgIHBhZGRpbmc6IDFyZW0gMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHQtbGctMyB7XFxuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wci1sZy0zIHtcXG4gICAgcGFkZGluZy1yaWdodDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGItbGctMyB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC1sZy0zIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weC1sZy0zIHtcXG4gICAgcGFkZGluZy1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB5LWxnLTMge1xcbiAgICBwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucC1sZy00IHtcXG4gICAgcGFkZGluZzogMS41cmVtIDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHQtbGctNCB7XFxuICAgIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLWxnLTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBiLWxnLTQge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC1sZy00IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LWxnLTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB5LWxnLTQge1xcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAtbGctNSB7XFxuICAgIHBhZGRpbmc6IDNyZW0gM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucHQtbGctNSB7XFxuICAgIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wci1sZy01IHtcXG4gICAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucGItbGctNSB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC1sZy01IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5weC1sZy01IHtcXG4gICAgcGFkZGluZy1yaWdodDogM3JlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB5LWxnLTUge1xcbiAgICBwYWRkaW5nLXRvcDogM3JlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubS1sZy1hdXRvIHtcXG4gICAgbWFyZ2luOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5tdC1sZy1hdXRvIHtcXG4gICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubXItbGctYXV0byB7XFxuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubWItbGctYXV0byB7XFxuICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm1sLWxnLWF1dG8ge1xcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubXgtbGctYXV0byB7XFxuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubXktbGctYXV0byB7XFxuICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAubS14bC0wIHtcXG4gICAgbWFyZ2luOiAwIDAgIWltcG9ydGFudDsgfVxcbiAgLm10LXhsLTAge1xcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tci14bC0wIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi14bC0wIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuICAubWwteGwtMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5teC14bC0wIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5teS14bC0wIHtcXG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5tLXhsLTEge1xcbiAgICBtYXJnaW46IDAuMjVyZW0gMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXQteGwtMSB7XFxuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLXhsLTEge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLXhsLTEge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC14bC0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LXhsLTEge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LXhsLTEge1xcbiAgICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0teGwtMiB7XFxuICAgIG1hcmdpbjogMC41cmVtIDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXQteGwtMiB7XFxuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXIteGwtMiB7XFxuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi14bC0yIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC14bC0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXgteGwtMiB7XFxuICAgIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LXhsLTIge1xcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLXhsLTMge1xcbiAgICBtYXJnaW46IDFyZW0gMXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXQteGwtMyB7XFxuICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLXhsLTMge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLXhsLTMge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC14bC0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LXhsLTMge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LXhsLTMge1xcbiAgICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLm0teGwtNCB7XFxuICAgIG1hcmdpbjogMS41cmVtIDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXQteGwtNCB7XFxuICAgIG1hcmdpbi10b3A6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXIteGwtNCB7XFxuICAgIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi14bC00IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC14bC00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAubXgteGwtNCB7XFxuICAgIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LXhsLTQge1xcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLXhsLTUge1xcbiAgICBtYXJnaW46IDNyZW0gM3JlbSAhaW1wb3J0YW50OyB9XFxuICAubXQteGwtNSB7XFxuICAgIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1yLXhsLTUge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm1iLXhsLTUge1xcbiAgICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tbC14bC01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm14LXhsLTUge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcXG4gICAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLm15LXhsLTUge1xcbiAgICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnAteGwtMCB7XFxuICAgIHBhZGRpbmc6IDAgMCAhaW1wb3J0YW50OyB9XFxuICAucHQteGwtMCB7XFxuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wci14bC0wIHtcXG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9XFxuICAucGIteGwtMCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5wbC14bC0wIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cXG4gIC5weC14bC0wIHtcXG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxcbiAgLnB5LXhsLTAge1xcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XFxuICAucC14bC0xIHtcXG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC14bC0xIHtcXG4gICAgcGFkZGluZy10b3A6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLXhsLTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi14bC0xIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLXhsLTEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LXhsLTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHkteGwtMSB7XFxuICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLXhsLTIge1xcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC14bC0yIHtcXG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHIteGwtMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGIteGwtMiB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLXhsLTIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHgteGwtMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHkteGwtMiB7XFxuICAgIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucC14bC0zIHtcXG4gICAgcGFkZGluZzogMXJlbSAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC14bC0zIHtcXG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLXhsLTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi14bC0zIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLXhsLTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LXhsLTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHkteGwtMyB7XFxuICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wLXhsLTQge1xcbiAgICBwYWRkaW5nOiAxLjVyZW0gMS41cmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC14bC00IHtcXG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHIteGwtNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucGIteGwtNCB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLXhsLTQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHgteGwtNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucHkteGwtNCB7XFxuICAgIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcXG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9XFxuICAucC14bC01IHtcXG4gICAgcGFkZGluZzogM3JlbSAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wdC14bC01IHtcXG4gICAgcGFkZGluZy10b3A6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnByLXhsLTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5wYi14bC01IHtcXG4gICAgcGFkZGluZy1ib3R0b206IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnBsLXhsLTUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDNyZW0gIWltcG9ydGFudDsgfVxcbiAgLnB4LXhsLTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogM3JlbSAhaW1wb3J0YW50OyB9XFxuICAucHkteGwtNSB7XFxuICAgIHBhZGRpbmctdG9wOiAzcmVtICFpbXBvcnRhbnQ7XFxuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7IH1cXG4gIC5tLXhsLWF1dG8ge1xcbiAgICBtYXJnaW46IGF1dG8gIWltcG9ydGFudDsgfVxcbiAgLm10LXhsLWF1dG8ge1xcbiAgICBtYXJnaW4tdG9wOiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5tci14bC1hdXRvIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5tYi14bC1hdXRvIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogYXV0byAhaW1wb3J0YW50OyB9XFxuICAubWwteGwtYXV0byB7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5teC14bC1hdXRvIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7IH1cXG4gIC5teS14bC1hdXRvIHtcXG4gICAgbWFyZ2luLXRvcDogYXV0byAhaW1wb3J0YW50O1xcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7IH0gfVxcbi50ZXh0LWp1c3RpZnkge1xcbiAgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OyB9XFxuLnRleHQtbm93cmFwIHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDsgfVxcbi50ZXh0LXRydW5jYXRlIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cXG4udGV4dC1sZWZ0IHtcXG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxcbi50ZXh0LXJpZ2h0IHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cXG4udGV4dC1jZW50ZXIge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gIC50ZXh0LXNtLWxlZnQge1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cXG4gIC50ZXh0LXNtLXJpZ2h0IHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxcbiAgLnRleHQtc20tY2VudGVyIHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLnRleHQtbWQtbGVmdCB7XFxuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxcbiAgLnRleHQtbWQtcmlnaHQge1xcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XFxuICAudGV4dC1tZC1jZW50ZXIge1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAudGV4dC1sZy1sZWZ0IHtcXG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XFxuICAudGV4dC1sZy1yaWdodCB7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cXG4gIC50ZXh0LWxnLWNlbnRlciB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAudGV4dC14bC1sZWZ0IHtcXG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XFxuICAudGV4dC14bC1yaWdodCB7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cXG4gIC50ZXh0LXhsLWNlbnRlciB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9IH1cXG4udGV4dC1sb3dlcmNhc2Uge1xcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZSAhaW1wb3J0YW50OyB9XFxuLnRleHQtdXBwZXJjYXNlIHtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDsgfVxcbi50ZXh0LWNhcGl0YWxpemUge1xcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWltcG9ydGFudDsgfVxcbi5mb250LXdlaWdodC1ub3JtYWwge1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxcbi5mb250LXdlaWdodC1ib2xkIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XFxuLmZvbnQtaXRhbGljIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxcbi50ZXh0LXdoaXRlIHtcXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7IH1cXG4udGV4dC1tdXRlZCB7XFxuICBjb2xvcjogIzYzNmM3MiAhaW1wb3J0YW50OyB9XFxuYS50ZXh0LW11dGVkOmZvY3VzLCBhLnRleHQtbXV0ZWQ6aG92ZXIge1xcbiAgY29sb3I6ICM0YjUyNTcgIWltcG9ydGFudDsgfVxcbi50ZXh0LXByaW1hcnkge1xcbiAgY29sb3I6ICMwMjc1ZDggIWltcG9ydGFudDsgfVxcbmEudGV4dC1wcmltYXJ5OmZvY3VzLCBhLnRleHQtcHJpbWFyeTpob3ZlciB7XFxuICBjb2xvcjogIzAyNWFhNSAhaW1wb3J0YW50OyB9XFxuLnRleHQtc3VjY2VzcyB7XFxuICBjb2xvcjogIzVjYjg1YyAhaW1wb3J0YW50OyB9XFxuYS50ZXh0LXN1Y2Nlc3M6Zm9jdXMsIGEudGV4dC1zdWNjZXNzOmhvdmVyIHtcXG4gIGNvbG9yOiAjNDQ5ZDQ0ICFpbXBvcnRhbnQ7IH1cXG4udGV4dC1pbmZvIHtcXG4gIGNvbG9yOiAjNWJjMGRlICFpbXBvcnRhbnQ7IH1cXG5hLnRleHQtaW5mbzpmb2N1cywgYS50ZXh0LWluZm86aG92ZXIge1xcbiAgY29sb3I6ICMzMWIwZDUgIWltcG9ydGFudDsgfVxcbi50ZXh0LXdhcm5pbmcge1xcbiAgY29sb3I6ICNmMGFkNGUgIWltcG9ydGFudDsgfVxcbmEudGV4dC13YXJuaW5nOmZvY3VzLCBhLnRleHQtd2FybmluZzpob3ZlciB7XFxuICBjb2xvcjogI2VjOTcxZiAhaW1wb3J0YW50OyB9XFxuLnRleHQtZGFuZ2VyIHtcXG4gIGNvbG9yOiAjZDk1MzRmICFpbXBvcnRhbnQ7IH1cXG5hLnRleHQtZGFuZ2VyOmZvY3VzLCBhLnRleHQtZGFuZ2VyOmhvdmVyIHtcXG4gIGNvbG9yOiAjYzkzMDJjICFpbXBvcnRhbnQ7IH1cXG4udGV4dC1ncmF5LWRhcmsge1xcbiAgY29sb3I6ICMyOTJiMmMgIWltcG9ydGFudDsgfVxcbmEudGV4dC1ncmF5LWRhcms6Zm9jdXMsIGEudGV4dC1ncmF5LWRhcms6aG92ZXIge1xcbiAgY29sb3I6ICMxMDExMTIgIWltcG9ydGFudDsgfVxcbi50ZXh0LWhpZGUge1xcbiAgZm9udDogMC8wIGE7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB0ZXh0LXNoYWRvdzogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyOiAwOyB9XFxuLmludmlzaWJsZSB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfVxcbi5oaWRkZW4teHMtdXAge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XFxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XFxuICAuaGlkZGVuLXhzLWRvd24ge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLmhpZGRlbi1zbS11cCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAuaGlkZGVuLXNtLWRvd24ge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLmhpZGRlbi1tZC11cCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XFxuICAuaGlkZGVuLW1kLWRvd24ge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLmhpZGRlbi1sZy11cCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTlweCkge1xcbiAgLmhpZGRlbi1sZy1kb3duIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAuaGlkZGVuLXhsLXVwIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cXG4uaGlkZGVuLXhsLWRvd24ge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XFxuLnZpc2libGUtcHJpbnQtYmxvY2sge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XFxuQG1lZGlhIHByaW50IHtcXG4gICAgLnZpc2libGUtcHJpbnQtYmxvY2sge1xcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxcbi52aXNpYmxlLXByaW50LWlubGluZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG5AbWVkaWEgcHJpbnQge1xcbiAgICAudmlzaWJsZS1wcmludC1pbmxpbmUge1xcbiAgICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9IH1cXG4udmlzaWJsZS1wcmludC1pbmxpbmUtYmxvY2sge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XFxuQG1lZGlhIHByaW50IHtcXG4gICAgLnZpc2libGUtcHJpbnQtaW5saW5lLWJsb2NrIHtcXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfSB9XFxuQG1lZGlhIHByaW50IHtcXG4gIC5oaWRkZW4tcHJpbnQge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxcbmh0bWwge1xcbiAgZm9udC1zaXplOiAxNHB4OyB9XFxuLndyYXBwZXIge1xcbiAgZGlzcGxheTogZ3JpZDtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDRmcjtcXG4gIGdyaWQtYXV0by1yb3dzOiBtaW5tYXgoMTAwJSwgYXV0byk7XFxuICBoZWlnaHQ6IDEwMHZoOyB9XFxuLnNpZGViYXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjhmYTtcXG4gIG1hcmdpbi1sZWZ0OiAtMTVweDsgfVxcbi5tYWluLCAuc2lkZWJhciB7XFxuICBwYWRkaW5nOiAycmVtOyB9XFxuLmhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XFxuLmZvcm0tYm9keSAuZm9ybS10b29sYmFyIHtcXG4gIGhlaWdodDogMnJlbTtcXG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cXG4uZm9ybS1ib2R5IC5hbGVydCB7XFxuICBtYXJnaW4tdG9wOiAxcmVtOyB9XFxudGV4dGFyZWEuZm9ybS1jb250cm9sIHtcXG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cXG5cIiwgXCJcIl0pO1xuXG4vLyBleHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2xpYj97fSEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9saWIvbG9hZGVyLmpzP3tcImluY2x1ZGVQYXRoc1wiOltcIm5vZGVfbW9kdWxlc1wiLFwiLi9mcmFwcGUvY2xpZW50L3Njc3NcIl19IS4vc2Nzcy9tYWluLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLypcblx0TUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcblx0QXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbi8vIGNzcyBiYXNlIGNvZGUsIGluamVjdGVkIGJ5IHRoZSBjc3MtbG9hZGVyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHVzZVNvdXJjZU1hcCkge1xuXHR2YXIgbGlzdCA9IFtdO1xuXG5cdC8vIHJldHVybiB0aGUgbGlzdCBvZiBtb2R1bGVzIGFzIGNzcyBzdHJpbmdcblx0bGlzdC50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuXHRcdHJldHVybiB0aGlzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuXHRcdFx0dmFyIGNvbnRlbnQgPSBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0sIHVzZVNvdXJjZU1hcCk7XG5cdFx0XHRpZihpdGVtWzJdKSB7XG5cdFx0XHRcdHJldHVybiBcIkBtZWRpYSBcIiArIGl0ZW1bMl0gKyBcIntcIiArIGNvbnRlbnQgKyBcIn1cIjtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH0pLmpvaW4oXCJcIik7XG5cdH07XG5cblx0Ly8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3Rcblx0bGlzdC5pID0gZnVuY3Rpb24obW9kdWxlcywgbWVkaWFRdWVyeSkge1xuXHRcdGlmKHR5cGVvZiBtb2R1bGVzID09PSBcInN0cmluZ1wiKVxuXHRcdFx0bW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgXCJcIl1dO1xuXHRcdHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG5cdFx0Zm9yKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBpZCA9IHRoaXNbaV1bMF07XG5cdFx0XHRpZih0eXBlb2YgaWQgPT09IFwibnVtYmVyXCIpXG5cdFx0XHRcdGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcblx0XHR9XG5cdFx0Zm9yKGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGl0ZW0gPSBtb2R1bGVzW2ldO1xuXHRcdFx0Ly8gc2tpcCBhbHJlYWR5IGltcG9ydGVkIG1vZHVsZVxuXHRcdFx0Ly8gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgMTAwJSBwZXJmZWN0IGZvciB3ZWlyZCBtZWRpYSBxdWVyeSBjb21iaW5hdGlvbnNcblx0XHRcdC8vICB3aGVuIGEgbW9kdWxlIGlzIGltcG9ydGVkIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IG1lZGlhIHF1ZXJpZXMuXG5cdFx0XHQvLyAgSSBob3BlIHRoaXMgd2lsbCBuZXZlciBvY2N1ciAoSGV5IHRoaXMgd2F5IHdlIGhhdmUgc21hbGxlciBidW5kbGVzKVxuXHRcdFx0aWYodHlwZW9mIGl0ZW1bMF0gIT09IFwibnVtYmVyXCIgfHwgIWFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaXRlbVswXV0pIHtcblx0XHRcdFx0aWYobWVkaWFRdWVyeSAmJiAhaXRlbVsyXSkge1xuXHRcdFx0XHRcdGl0ZW1bMl0gPSBtZWRpYVF1ZXJ5O1xuXHRcdFx0XHR9IGVsc2UgaWYobWVkaWFRdWVyeSkge1xuXHRcdFx0XHRcdGl0ZW1bMl0gPSBcIihcIiArIGl0ZW1bMl0gKyBcIikgYW5kIChcIiArIG1lZGlhUXVlcnkgKyBcIilcIjtcblx0XHRcdFx0fVxuXHRcdFx0XHRsaXN0LnB1c2goaXRlbSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXHRyZXR1cm4gbGlzdDtcbn07XG5cbmZ1bmN0aW9uIGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSwgdXNlU291cmNlTWFwKSB7XG5cdHZhciBjb250ZW50ID0gaXRlbVsxXSB8fCAnJztcblx0dmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuXHRpZiAoIWNzc01hcHBpbmcpIHtcblx0XHRyZXR1cm4gY29udGVudDtcblx0fVxuXG5cdGlmICh1c2VTb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgPT09ICdmdW5jdGlvbicpIHtcblx0XHR2YXIgc291cmNlTWFwcGluZyA9IHRvQ29tbWVudChjc3NNYXBwaW5nKTtcblx0XHR2YXIgc291cmNlVVJMcyA9IGNzc01hcHBpbmcuc291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xuXHRcdFx0cmV0dXJuICcvKiMgc291cmNlVVJMPScgKyBjc3NNYXBwaW5nLnNvdXJjZVJvb3QgKyBzb3VyY2UgKyAnICovJ1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIFtjb250ZW50XS5jb25jYXQoc291cmNlVVJMcykuY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbignXFxuJyk7XG5cdH1cblxuXHRyZXR1cm4gW2NvbnRlbnRdLmpvaW4oJ1xcbicpO1xufVxuXG4vLyBBZGFwdGVkIGZyb20gY29udmVydC1zb3VyY2UtbWFwIChNSVQpXG5mdW5jdGlvbiB0b0NvbW1lbnQoc291cmNlTWFwKSB7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuXHR2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKTtcblx0dmFyIGRhdGEgPSAnc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsJyArIGJhc2U2NDtcblxuXHRyZXR1cm4gJy8qIyAnICsgZGF0YSArICcgKi8nO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcbi8vIG1vZHVsZSBpZCA9IDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLypcblx0TUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcblx0QXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cblxudmFyIHN0eWxlc0luRG9tID0ge307XG5cbnZhclx0bWVtb2l6ZSA9IGZ1bmN0aW9uIChmbikge1xuXHR2YXIgbWVtbztcblxuXHRyZXR1cm4gZnVuY3Rpb24gKCkge1xuXHRcdGlmICh0eXBlb2YgbWVtbyA9PT0gXCJ1bmRlZmluZWRcIikgbWVtbyA9IGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cdFx0cmV0dXJuIG1lbW87XG5cdH07XG59O1xuXG52YXIgaXNPbGRJRSA9IG1lbW9pemUoZnVuY3Rpb24gKCkge1xuXHQvLyBUZXN0IGZvciBJRSA8PSA5IGFzIHByb3Bvc2VkIGJ5IEJyb3dzZXJoYWNrc1xuXHQvLyBAc2VlIGh0dHA6Ly9icm93c2VyaGFja3MuY29tLyNoYWNrLWU3MWQ4NjkyZjY1MzM0MTczZmVlNzE1YzIyMmNiODA1XG5cdC8vIFRlc3RzIGZvciBleGlzdGVuY2Ugb2Ygc3RhbmRhcmQgZ2xvYmFscyBpcyB0byBhbGxvdyBzdHlsZS1sb2FkZXJcblx0Ly8gdG8gb3BlcmF0ZSBjb3JyZWN0bHkgaW50byBub24tc3RhbmRhcmQgZW52aXJvbm1lbnRzXG5cdC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2stY29udHJpYi9zdHlsZS1sb2FkZXIvaXNzdWVzLzE3N1xuXHRyZXR1cm4gd2luZG93ICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LmFsbCAmJiAhd2luZG93LmF0b2I7XG59KTtcblxudmFyIGdldEVsZW1lbnQgPSAoZnVuY3Rpb24gKGZuKSB7XG5cdHZhciBtZW1vID0ge307XG5cblx0cmV0dXJuIGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG5cdFx0aWYgKHR5cGVvZiBtZW1vW3NlbGVjdG9yXSA9PT0gXCJ1bmRlZmluZWRcIikge1xuXHRcdFx0dmFyIHN0eWxlVGFyZ2V0ID0gZm4uY2FsbCh0aGlzLCBzZWxlY3Rvcik7XG5cdFx0XHQvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuXHRcdFx0aWYgKHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Ly8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcblx0XHRcdFx0XHQvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuXHRcdFx0XHRcdHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG5cdFx0XHRcdH0gY2F0Y2goZSkge1xuXHRcdFx0XHRcdHN0eWxlVGFyZ2V0ID0gbnVsbDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0bWVtb1tzZWxlY3Rvcl0gPSBzdHlsZVRhcmdldDtcblx0XHR9XG5cdFx0cmV0dXJuIG1lbW9bc2VsZWN0b3JdXG5cdH07XG59KShmdW5jdGlvbiAodGFyZ2V0KSB7XG5cdHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRhcmdldClcbn0pO1xuXG52YXIgc2luZ2xldG9uID0gbnVsbDtcbnZhclx0c2luZ2xldG9uQ291bnRlciA9IDA7XG52YXJcdHN0eWxlc0luc2VydGVkQXRUb3AgPSBbXTtcblxudmFyXHRmaXhVcmxzID0gcmVxdWlyZShcIi4vdXJsc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihsaXN0LCBvcHRpb25zKSB7XG5cdGlmICh0eXBlb2YgREVCVUcgIT09IFwidW5kZWZpbmVkXCIgJiYgREVCVUcpIHtcblx0XHRpZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgc3R5bGUtbG9hZGVyIGNhbm5vdCBiZSB1c2VkIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnRcIik7XG5cdH1cblxuXHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuXHRvcHRpb25zLmF0dHJzID0gdHlwZW9mIG9wdGlvbnMuYXR0cnMgPT09IFwib2JqZWN0XCIgPyBvcHRpb25zLmF0dHJzIDoge307XG5cblx0Ly8gRm9yY2Ugc2luZ2xlLXRhZyBzb2x1dGlvbiBvbiBJRTYtOSwgd2hpY2ggaGFzIGEgaGFyZCBsaW1pdCBvbiB0aGUgIyBvZiA8c3R5bGU+XG5cdC8vIHRhZ3MgaXQgd2lsbCBhbGxvdyBvbiBhIHBhZ2Vcblx0aWYgKCFvcHRpb25zLnNpbmdsZXRvbiAmJiB0eXBlb2Ygb3B0aW9ucy5zaW5nbGV0b24gIT09IFwiYm9vbGVhblwiKSBvcHRpb25zLnNpbmdsZXRvbiA9IGlzT2xkSUUoKTtcblxuXHQvLyBCeSBkZWZhdWx0LCBhZGQgPHN0eWxlPiB0YWdzIHRvIHRoZSA8aGVhZD4gZWxlbWVudFxuXHRpZiAoIW9wdGlvbnMuaW5zZXJ0SW50bykgb3B0aW9ucy5pbnNlcnRJbnRvID0gXCJoZWFkXCI7XG5cblx0Ly8gQnkgZGVmYXVsdCwgYWRkIDxzdHlsZT4gdGFncyB0byB0aGUgYm90dG9tIG9mIHRoZSB0YXJnZXRcblx0aWYgKCFvcHRpb25zLmluc2VydEF0KSBvcHRpb25zLmluc2VydEF0ID0gXCJib3R0b21cIjtcblxuXHR2YXIgc3R5bGVzID0gbGlzdFRvU3R5bGVzKGxpc3QsIG9wdGlvbnMpO1xuXG5cdGFkZFN0eWxlc1RvRG9tKHN0eWxlcywgb3B0aW9ucyk7XG5cblx0cmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZSAobmV3TGlzdCkge1xuXHRcdHZhciBtYXlSZW1vdmUgPSBbXTtcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgaXRlbSA9IHN0eWxlc1tpXTtcblx0XHRcdHZhciBkb21TdHlsZSA9IHN0eWxlc0luRG9tW2l0ZW0uaWRdO1xuXG5cdFx0XHRkb21TdHlsZS5yZWZzLS07XG5cdFx0XHRtYXlSZW1vdmUucHVzaChkb21TdHlsZSk7XG5cdFx0fVxuXG5cdFx0aWYobmV3TGlzdCkge1xuXHRcdFx0dmFyIG5ld1N0eWxlcyA9IGxpc3RUb1N0eWxlcyhuZXdMaXN0LCBvcHRpb25zKTtcblx0XHRcdGFkZFN0eWxlc1RvRG9tKG5ld1N0eWxlcywgb3B0aW9ucyk7XG5cdFx0fVxuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBtYXlSZW1vdmUubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBkb21TdHlsZSA9IG1heVJlbW92ZVtpXTtcblxuXHRcdFx0aWYoZG9tU3R5bGUucmVmcyA9PT0gMCkge1xuXHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSBkb21TdHlsZS5wYXJ0c1tqXSgpO1xuXG5cdFx0XHRcdGRlbGV0ZSBzdHlsZXNJbkRvbVtkb21TdHlsZS5pZF07XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xufTtcblxuZnVuY3Rpb24gYWRkU3R5bGVzVG9Eb20gKHN0eWxlcywgb3B0aW9ucykge1xuXHRmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlcy5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBpdGVtID0gc3R5bGVzW2ldO1xuXHRcdHZhciBkb21TdHlsZSA9IHN0eWxlc0luRG9tW2l0ZW0uaWRdO1xuXG5cdFx0aWYoZG9tU3R5bGUpIHtcblx0XHRcdGRvbVN0eWxlLnJlZnMrKztcblxuXHRcdFx0Zm9yKHZhciBqID0gMDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGRvbVN0eWxlLnBhcnRzW2pdKGl0ZW0ucGFydHNbal0pO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3IoOyBqIDwgaXRlbS5wYXJ0cy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRkb21TdHlsZS5wYXJ0cy5wdXNoKGFkZFN0eWxlKGl0ZW0ucGFydHNbal0sIG9wdGlvbnMpKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dmFyIHBhcnRzID0gW107XG5cblx0XHRcdGZvcih2YXIgaiA9IDA7IGogPCBpdGVtLnBhcnRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdHBhcnRzLnB1c2goYWRkU3R5bGUoaXRlbS5wYXJ0c1tqXSwgb3B0aW9ucykpO1xuXHRcdFx0fVxuXG5cdFx0XHRzdHlsZXNJbkRvbVtpdGVtLmlkXSA9IHtpZDogaXRlbS5pZCwgcmVmczogMSwgcGFydHM6IHBhcnRzfTtcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gbGlzdFRvU3R5bGVzIChsaXN0LCBvcHRpb25zKSB7XG5cdHZhciBzdHlsZXMgPSBbXTtcblx0dmFyIG5ld1N0eWxlcyA9IHt9O1xuXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBpdGVtID0gbGlzdFtpXTtcblx0XHR2YXIgaWQgPSBvcHRpb25zLmJhc2UgPyBpdGVtWzBdICsgb3B0aW9ucy5iYXNlIDogaXRlbVswXTtcblx0XHR2YXIgY3NzID0gaXRlbVsxXTtcblx0XHR2YXIgbWVkaWEgPSBpdGVtWzJdO1xuXHRcdHZhciBzb3VyY2VNYXAgPSBpdGVtWzNdO1xuXHRcdHZhciBwYXJ0ID0ge2NzczogY3NzLCBtZWRpYTogbWVkaWEsIHNvdXJjZU1hcDogc291cmNlTWFwfTtcblxuXHRcdGlmKCFuZXdTdHlsZXNbaWRdKSBzdHlsZXMucHVzaChuZXdTdHlsZXNbaWRdID0ge2lkOiBpZCwgcGFydHM6IFtwYXJ0XX0pO1xuXHRcdGVsc2UgbmV3U3R5bGVzW2lkXS5wYXJ0cy5wdXNoKHBhcnQpO1xuXHR9XG5cblx0cmV0dXJuIHN0eWxlcztcbn1cblxuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50IChvcHRpb25zLCBzdHlsZSkge1xuXHR2YXIgdGFyZ2V0ID0gZ2V0RWxlbWVudChvcHRpb25zLmluc2VydEludG8pXG5cblx0aWYgKCF0YXJnZXQpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydEludG8nIHBhcmFtZXRlciBpcyBpbnZhbGlkLlwiKTtcblx0fVxuXG5cdHZhciBsYXN0U3R5bGVFbGVtZW50SW5zZXJ0ZWRBdFRvcCA9IHN0eWxlc0luc2VydGVkQXRUb3Bbc3R5bGVzSW5zZXJ0ZWRBdFRvcC5sZW5ndGggLSAxXTtcblxuXHRpZiAob3B0aW9ucy5pbnNlcnRBdCA9PT0gXCJ0b3BcIikge1xuXHRcdGlmICghbGFzdFN0eWxlRWxlbWVudEluc2VydGVkQXRUb3ApIHtcblx0XHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoc3R5bGUsIHRhcmdldC5maXJzdENoaWxkKTtcblx0XHR9IGVsc2UgaWYgKGxhc3RTdHlsZUVsZW1lbnRJbnNlcnRlZEF0VG9wLm5leHRTaWJsaW5nKSB7XG5cdFx0XHR0YXJnZXQuaW5zZXJ0QmVmb3JlKHN0eWxlLCBsYXN0U3R5bGVFbGVtZW50SW5zZXJ0ZWRBdFRvcC5uZXh0U2libGluZyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG5cdFx0fVxuXHRcdHN0eWxlc0luc2VydGVkQXRUb3AucHVzaChzdHlsZSk7XG5cdH0gZWxzZSBpZiAob3B0aW9ucy5pbnNlcnRBdCA9PT0gXCJib3R0b21cIikge1xuXHRcdHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG5cdH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMuaW5zZXJ0QXQgPT09IFwib2JqZWN0XCIgJiYgb3B0aW9ucy5pbnNlcnRBdC5iZWZvcmUpIHtcblx0XHR2YXIgbmV4dFNpYmxpbmcgPSBnZXRFbGVtZW50KG9wdGlvbnMuaW5zZXJ0SW50byArIFwiIFwiICsgb3B0aW9ucy5pbnNlcnRBdC5iZWZvcmUpO1xuXHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoc3R5bGUsIG5leHRTaWJsaW5nKTtcblx0fSBlbHNlIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJbU3R5bGUgTG9hZGVyXVxcblxcbiBJbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgJ2luc2VydEF0JyAoJ29wdGlvbnMuaW5zZXJ0QXQnKSBmb3VuZC5cXG4gTXVzdCBiZSAndG9wJywgJ2JvdHRvbScsIG9yIE9iamVjdC5cXG4gKGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrLWNvbnRyaWIvc3R5bGUtbG9hZGVyI2luc2VydGF0KVxcblwiKTtcblx0fVxufVxuXG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQgKHN0eWxlKSB7XG5cdGlmIChzdHlsZS5wYXJlbnROb2RlID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG5cdHN0eWxlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGUpO1xuXG5cdHZhciBpZHggPSBzdHlsZXNJbnNlcnRlZEF0VG9wLmluZGV4T2Yoc3R5bGUpO1xuXHRpZihpZHggPj0gMCkge1xuXHRcdHN0eWxlc0luc2VydGVkQXRUb3Auc3BsaWNlKGlkeCwgMSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlU3R5bGVFbGVtZW50IChvcHRpb25zKSB7XG5cdHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcblxuXHRvcHRpb25zLmF0dHJzLnR5cGUgPSBcInRleHQvY3NzXCI7XG5cblx0YWRkQXR0cnMoc3R5bGUsIG9wdGlvbnMuYXR0cnMpO1xuXHRpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucywgc3R5bGUpO1xuXG5cdHJldHVybiBzdHlsZTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTGlua0VsZW1lbnQgKG9wdGlvbnMpIHtcblx0dmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtcblxuXHRvcHRpb25zLmF0dHJzLnR5cGUgPSBcInRleHQvY3NzXCI7XG5cdG9wdGlvbnMuYXR0cnMucmVsID0gXCJzdHlsZXNoZWV0XCI7XG5cblx0YWRkQXR0cnMobGluaywgb3B0aW9ucy5hdHRycyk7XG5cdGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zLCBsaW5rKTtcblxuXHRyZXR1cm4gbGluaztcbn1cblxuZnVuY3Rpb24gYWRkQXR0cnMgKGVsLCBhdHRycykge1xuXHRPYmplY3Qua2V5cyhhdHRycykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG5cdFx0ZWwuc2V0QXR0cmlidXRlKGtleSwgYXR0cnNba2V5XSk7XG5cdH0pO1xufVxuXG5mdW5jdGlvbiBhZGRTdHlsZSAob2JqLCBvcHRpb25zKSB7XG5cdHZhciBzdHlsZSwgdXBkYXRlLCByZW1vdmUsIHJlc3VsdDtcblxuXHQvLyBJZiBhIHRyYW5zZm9ybSBmdW5jdGlvbiB3YXMgZGVmaW5lZCwgcnVuIGl0IG9uIHRoZSBjc3Ncblx0aWYgKG9wdGlvbnMudHJhbnNmb3JtICYmIG9iai5jc3MpIHtcblx0ICAgIHJlc3VsdCA9IG9wdGlvbnMudHJhbnNmb3JtKG9iai5jc3MpO1xuXG5cdCAgICBpZiAocmVzdWx0KSB7XG5cdCAgICBcdC8vIElmIHRyYW5zZm9ybSByZXR1cm5zIGEgdmFsdWUsIHVzZSB0aGF0IGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGNzcy5cblx0ICAgIFx0Ly8gVGhpcyBhbGxvd3MgcnVubmluZyBydW50aW1lIHRyYW5zZm9ybWF0aW9ucyBvbiB0aGUgY3NzLlxuXHQgICAgXHRvYmouY3NzID0gcmVzdWx0O1xuXHQgICAgfSBlbHNlIHtcblx0ICAgIFx0Ly8gSWYgdGhlIHRyYW5zZm9ybSBmdW5jdGlvbiByZXR1cm5zIGEgZmFsc3kgdmFsdWUsIGRvbid0IGFkZCB0aGlzIGNzcy5cblx0ICAgIFx0Ly8gVGhpcyBhbGxvd3MgY29uZGl0aW9uYWwgbG9hZGluZyBvZiBjc3Ncblx0ICAgIFx0cmV0dXJuIGZ1bmN0aW9uKCkge1xuXHQgICAgXHRcdC8vIG5vb3Bcblx0ICAgIFx0fTtcblx0ICAgIH1cblx0fVxuXG5cdGlmIChvcHRpb25zLnNpbmdsZXRvbikge1xuXHRcdHZhciBzdHlsZUluZGV4ID0gc2luZ2xldG9uQ291bnRlcisrO1xuXG5cdFx0c3R5bGUgPSBzaW5nbGV0b24gfHwgKHNpbmdsZXRvbiA9IGNyZWF0ZVN0eWxlRWxlbWVudChvcHRpb25zKSk7XG5cblx0XHR1cGRhdGUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGUsIHN0eWxlSW5kZXgsIGZhbHNlKTtcblx0XHRyZW1vdmUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGUsIHN0eWxlSW5kZXgsIHRydWUpO1xuXG5cdH0gZWxzZSBpZiAoXG5cdFx0b2JqLnNvdXJjZU1hcCAmJlxuXHRcdHR5cGVvZiBVUkwgPT09IFwiZnVuY3Rpb25cIiAmJlxuXHRcdHR5cGVvZiBVUkwuY3JlYXRlT2JqZWN0VVJMID09PSBcImZ1bmN0aW9uXCIgJiZcblx0XHR0eXBlb2YgVVJMLnJldm9rZU9iamVjdFVSTCA9PT0gXCJmdW5jdGlvblwiICYmXG5cdFx0dHlwZW9mIEJsb2IgPT09IFwiZnVuY3Rpb25cIiAmJlxuXHRcdHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCJcblx0KSB7XG5cdFx0c3R5bGUgPSBjcmVhdGVMaW5rRWxlbWVudChvcHRpb25zKTtcblx0XHR1cGRhdGUgPSB1cGRhdGVMaW5rLmJpbmQobnVsbCwgc3R5bGUsIG9wdGlvbnMpO1xuXHRcdHJlbW92ZSA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSk7XG5cblx0XHRcdGlmKHN0eWxlLmhyZWYpIFVSTC5yZXZva2VPYmplY3RVUkwoc3R5bGUuaHJlZik7XG5cdFx0fTtcblx0fSBlbHNlIHtcblx0XHRzdHlsZSA9IGNyZWF0ZVN0eWxlRWxlbWVudChvcHRpb25zKTtcblx0XHR1cGRhdGUgPSBhcHBseVRvVGFnLmJpbmQobnVsbCwgc3R5bGUpO1xuXHRcdHJlbW92ZSA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSk7XG5cdFx0fTtcblx0fVxuXG5cdHVwZGF0ZShvYmopO1xuXG5cdHJldHVybiBmdW5jdGlvbiB1cGRhdGVTdHlsZSAobmV3T2JqKSB7XG5cdFx0aWYgKG5ld09iaikge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRuZXdPYmouY3NzID09PSBvYmouY3NzICYmXG5cdFx0XHRcdG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmXG5cdFx0XHRcdG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXBcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHVwZGF0ZShvYmogPSBuZXdPYmopO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZW1vdmUoKTtcblx0XHR9XG5cdH07XG59XG5cbnZhciByZXBsYWNlVGV4dCA9IChmdW5jdGlvbiAoKSB7XG5cdHZhciB0ZXh0U3RvcmUgPSBbXTtcblxuXHRyZXR1cm4gZnVuY3Rpb24gKGluZGV4LCByZXBsYWNlbWVudCkge1xuXHRcdHRleHRTdG9yZVtpbmRleF0gPSByZXBsYWNlbWVudDtcblxuXHRcdHJldHVybiB0ZXh0U3RvcmUuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJ1xcbicpO1xuXHR9O1xufSkoKTtcblxuZnVuY3Rpb24gYXBwbHlUb1NpbmdsZXRvblRhZyAoc3R5bGUsIGluZGV4LCByZW1vdmUsIG9iaikge1xuXHR2YXIgY3NzID0gcmVtb3ZlID8gXCJcIiA6IG9iai5jc3M7XG5cblx0aWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcblx0XHRzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSByZXBsYWNlVGV4dChpbmRleCwgY3NzKTtcblx0fSBlbHNlIHtcblx0XHR2YXIgY3NzTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcyk7XG5cdFx0dmFyIGNoaWxkTm9kZXMgPSBzdHlsZS5jaGlsZE5vZGVzO1xuXG5cdFx0aWYgKGNoaWxkTm9kZXNbaW5kZXhdKSBzdHlsZS5yZW1vdmVDaGlsZChjaGlsZE5vZGVzW2luZGV4XSk7XG5cblx0XHRpZiAoY2hpbGROb2Rlcy5sZW5ndGgpIHtcblx0XHRcdHN0eWxlLmluc2VydEJlZm9yZShjc3NOb2RlLCBjaGlsZE5vZGVzW2luZGV4XSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHN0eWxlLmFwcGVuZENoaWxkKGNzc05vZGUpO1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBhcHBseVRvVGFnIChzdHlsZSwgb2JqKSB7XG5cdHZhciBjc3MgPSBvYmouY3NzO1xuXHR2YXIgbWVkaWEgPSBvYmoubWVkaWE7XG5cblx0aWYobWVkaWEpIHtcblx0XHRzdHlsZS5zZXRBdHRyaWJ1dGUoXCJtZWRpYVwiLCBtZWRpYSlcblx0fVxuXG5cdGlmKHN0eWxlLnN0eWxlU2hlZXQpIHtcblx0XHRzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG5cdH0gZWxzZSB7XG5cdFx0d2hpbGUoc3R5bGUuZmlyc3RDaGlsZCkge1xuXHRcdFx0c3R5bGUucmVtb3ZlQ2hpbGQoc3R5bGUuZmlyc3RDaGlsZCk7XG5cdFx0fVxuXG5cdFx0c3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlTGluayAobGluaywgb3B0aW9ucywgb2JqKSB7XG5cdHZhciBjc3MgPSBvYmouY3NzO1xuXHR2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcblxuXHQvKlxuXHRcdElmIGNvbnZlcnRUb0Fic29sdXRlVXJscyBpc24ndCBkZWZpbmVkLCBidXQgc291cmNlbWFwcyBhcmUgZW5hYmxlZFxuXHRcdGFuZCB0aGVyZSBpcyBubyBwdWJsaWNQYXRoIGRlZmluZWQgdGhlbiBsZXRzIHR1cm4gY29udmVydFRvQWJzb2x1dGVVcmxzXG5cdFx0b24gYnkgZGVmYXVsdC4gIE90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBjb252ZXJ0VG9BYnNvbHV0ZVVybHMgb3B0aW9uXG5cdFx0ZGlyZWN0bHlcblx0Ki9cblx0dmFyIGF1dG9GaXhVcmxzID0gb3B0aW9ucy5jb252ZXJ0VG9BYnNvbHV0ZVVybHMgPT09IHVuZGVmaW5lZCAmJiBzb3VyY2VNYXA7XG5cblx0aWYgKG9wdGlvbnMuY29udmVydFRvQWJzb2x1dGVVcmxzIHx8IGF1dG9GaXhVcmxzKSB7XG5cdFx0Y3NzID0gZml4VXJscyhjc3MpO1xuXHR9XG5cblx0aWYgKHNvdXJjZU1hcCkge1xuXHRcdC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzI2NjAzODc1XG5cdFx0Y3NzICs9IFwiXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxcIiArIGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSkgKyBcIiAqL1wiO1xuXHR9XG5cblx0dmFyIGJsb2IgPSBuZXcgQmxvYihbY3NzXSwgeyB0eXBlOiBcInRleHQvY3NzXCIgfSk7XG5cblx0dmFyIG9sZFNyYyA9IGxpbmsuaHJlZjtcblxuXHRsaW5rLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuXG5cdGlmKG9sZFNyYykgVVJMLnJldm9rZU9iamVjdFVSTChvbGRTcmMpO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXMuanNcbi8vIG1vZHVsZSBpZCA9IDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiXG4vKipcbiAqIFdoZW4gc291cmNlIG1hcHMgYXJlIGVuYWJsZWQsIGBzdHlsZS1sb2FkZXJgIHVzZXMgYSBsaW5rIGVsZW1lbnQgd2l0aCBhIGRhdGEtdXJpIHRvXG4gKiBlbWJlZCB0aGUgY3NzIG9uIHRoZSBwYWdlLiBUaGlzIGJyZWFrcyBhbGwgcmVsYXRpdmUgdXJscyBiZWNhdXNlIG5vdyB0aGV5IGFyZSByZWxhdGl2ZSB0byBhXG4gKiBidW5kbGUgaW5zdGVhZCBvZiB0aGUgY3VycmVudCBwYWdlLlxuICpcbiAqIE9uZSBzb2x1dGlvbiBpcyB0byBvbmx5IHVzZSBmdWxsIHVybHMsIGJ1dCB0aGF0IG1heSBiZSBpbXBvc3NpYmxlLlxuICpcbiAqIEluc3RlYWQsIHRoaXMgZnVuY3Rpb24gXCJmaXhlc1wiIHRoZSByZWxhdGl2ZSB1cmxzIHRvIGJlIGFic29sdXRlIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBwYWdlIGxvY2F0aW9uLlxuICpcbiAqIEEgcnVkaW1lbnRhcnkgdGVzdCBzdWl0ZSBpcyBsb2NhdGVkIGF0IGB0ZXN0L2ZpeFVybHMuanNgIGFuZCBjYW4gYmUgcnVuIHZpYSB0aGUgYG5wbSB0ZXN0YCBjb21tYW5kLlxuICpcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3MpIHtcbiAgLy8gZ2V0IGN1cnJlbnQgbG9jYXRpb25cbiAgdmFyIGxvY2F0aW9uID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cubG9jYXRpb247XG5cbiAgaWYgKCFsb2NhdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihcImZpeFVybHMgcmVxdWlyZXMgd2luZG93LmxvY2F0aW9uXCIpO1xuICB9XG5cblx0Ly8gYmxhbmsgb3IgbnVsbD9cblx0aWYgKCFjc3MgfHwgdHlwZW9mIGNzcyAhPT0gXCJzdHJpbmdcIikge1xuXHQgIHJldHVybiBjc3M7XG4gIH1cblxuICB2YXIgYmFzZVVybCA9IGxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgbG9jYXRpb24uaG9zdDtcbiAgdmFyIGN1cnJlbnREaXIgPSBiYXNlVXJsICsgbG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXFwvW15cXC9dKiQvLCBcIi9cIik7XG5cblx0Ly8gY29udmVydCBlYWNoIHVybCguLi4pXG5cdC8qXG5cdFRoaXMgcmVndWxhciBleHByZXNzaW9uIGlzIGp1c3QgYSB3YXkgdG8gcmVjdXJzaXZlbHkgbWF0Y2ggYnJhY2tldHMgd2l0aGluXG5cdGEgc3RyaW5nLlxuXG5cdCAvdXJsXFxzKlxcKCAgPSBNYXRjaCBvbiB0aGUgd29yZCBcInVybFwiIHdpdGggYW55IHdoaXRlc3BhY2UgYWZ0ZXIgaXQgYW5kIHRoZW4gYSBwYXJlbnNcblx0ICAgKCAgPSBTdGFydCBhIGNhcHR1cmluZyBncm91cFxuXHQgICAgICg/OiAgPSBTdGFydCBhIG5vbi1jYXB0dXJpbmcgZ3JvdXBcblx0ICAgICAgICAgW14pKF0gID0gTWF0Y2ggYW55dGhpbmcgdGhhdCBpc24ndCBhIHBhcmVudGhlc2VzXG5cdCAgICAgICAgIHwgID0gT1Jcblx0ICAgICAgICAgXFwoICA9IE1hdGNoIGEgc3RhcnQgcGFyZW50aGVzZXNcblx0ICAgICAgICAgICAgICg/OiAgPSBTdGFydCBhbm90aGVyIG5vbi1jYXB0dXJpbmcgZ3JvdXBzXG5cdCAgICAgICAgICAgICAgICAgW14pKF0rICA9IE1hdGNoIGFueXRoaW5nIHRoYXQgaXNuJ3QgYSBwYXJlbnRoZXNlc1xuXHQgICAgICAgICAgICAgICAgIHwgID0gT1Jcblx0ICAgICAgICAgICAgICAgICBcXCggID0gTWF0Y2ggYSBzdGFydCBwYXJlbnRoZXNlc1xuXHQgICAgICAgICAgICAgICAgICAgICBbXikoXSogID0gTWF0Y2ggYW55dGhpbmcgdGhhdCBpc24ndCBhIHBhcmVudGhlc2VzXG5cdCAgICAgICAgICAgICAgICAgXFwpICA9IE1hdGNoIGEgZW5kIHBhcmVudGhlc2VzXG5cdCAgICAgICAgICAgICApICA9IEVuZCBHcm91cFxuICAgICAgICAgICAgICAqXFwpID0gTWF0Y2ggYW55dGhpbmcgYW5kIHRoZW4gYSBjbG9zZSBwYXJlbnNcbiAgICAgICAgICApICA9IENsb3NlIG5vbi1jYXB0dXJpbmcgZ3JvdXBcbiAgICAgICAgICAqICA9IE1hdGNoIGFueXRoaW5nXG4gICAgICAgKSAgPSBDbG9zZSBjYXB0dXJpbmcgZ3JvdXBcblx0IFxcKSAgPSBNYXRjaCBhIGNsb3NlIHBhcmVuc1xuXG5cdCAvZ2kgID0gR2V0IGFsbCBtYXRjaGVzLCBub3QgdGhlIGZpcnN0LiAgQmUgY2FzZSBpbnNlbnNpdGl2ZS5cblx0ICovXG5cdHZhciBmaXhlZENzcyA9IGNzcy5yZXBsYWNlKC91cmxcXHMqXFwoKCg/OlteKShdfFxcKCg/OlteKShdK3xcXChbXikoXSpcXCkpKlxcKSkqKVxcKS9naSwgZnVuY3Rpb24oZnVsbE1hdGNoLCBvcmlnVXJsKSB7XG5cdFx0Ly8gc3RyaXAgcXVvdGVzIChpZiB0aGV5IGV4aXN0KVxuXHRcdHZhciB1bnF1b3RlZE9yaWdVcmwgPSBvcmlnVXJsXG5cdFx0XHQudHJpbSgpXG5cdFx0XHQucmVwbGFjZSgvXlwiKC4qKVwiJC8sIGZ1bmN0aW9uKG8sICQxKXsgcmV0dXJuICQxOyB9KVxuXHRcdFx0LnJlcGxhY2UoL14nKC4qKSckLywgZnVuY3Rpb24obywgJDEpeyByZXR1cm4gJDE7IH0pO1xuXG5cdFx0Ly8gYWxyZWFkeSBhIGZ1bGwgdXJsPyBubyBjaGFuZ2Vcblx0XHRpZiAoL14oI3xkYXRhOnxodHRwOlxcL1xcL3xodHRwczpcXC9cXC98ZmlsZTpcXC9cXC9cXC8pL2kudGVzdCh1bnF1b3RlZE9yaWdVcmwpKSB7XG5cdFx0ICByZXR1cm4gZnVsbE1hdGNoO1xuXHRcdH1cblxuXHRcdC8vIGNvbnZlcnQgdGhlIHVybCB0byBhIGZ1bGwgdXJsXG5cdFx0dmFyIG5ld1VybDtcblxuXHRcdGlmICh1bnF1b3RlZE9yaWdVcmwuaW5kZXhPZihcIi8vXCIpID09PSAwKSB7XG5cdFx0ICBcdC8vVE9ETzogc2hvdWxkIHdlIGFkZCBwcm90b2NvbD9cblx0XHRcdG5ld1VybCA9IHVucXVvdGVkT3JpZ1VybDtcblx0XHR9IGVsc2UgaWYgKHVucXVvdGVkT3JpZ1VybC5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdFx0Ly8gcGF0aCBzaG91bGQgYmUgcmVsYXRpdmUgdG8gdGhlIGJhc2UgdXJsXG5cdFx0XHRuZXdVcmwgPSBiYXNlVXJsICsgdW5xdW90ZWRPcmlnVXJsOyAvLyBhbHJlYWR5IHN0YXJ0cyB3aXRoICcvJ1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBwYXRoIHNob3VsZCBiZSByZWxhdGl2ZSB0byBjdXJyZW50IGRpcmVjdG9yeVxuXHRcdFx0bmV3VXJsID0gY3VycmVudERpciArIHVucXVvdGVkT3JpZ1VybC5yZXBsYWNlKC9eXFwuXFwvLywgXCJcIik7IC8vIFN0cmlwIGxlYWRpbmcgJy4vJ1xuXHRcdH1cblxuXHRcdC8vIHNlbmQgYmFjayB0aGUgZml4ZWQgdXJsKC4uLilcblx0XHRyZXR1cm4gXCJ1cmwoXCIgKyBKU09OLnN0cmluZ2lmeShuZXdVcmwpICsgXCIpXCI7XG5cdH0pO1xuXG5cdC8vIHNlbmQgYmFjayB0aGUgZml4ZWQgY3NzXG5cdHJldHVybiBmaXhlZENzcztcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL3VybHMuanNcbi8vIG1vZHVsZSBpZCA9IDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiY29uc3QgY29tbW9uID0gcmVxdWlyZSgnZnJhcHBlLWNvcmUvZnJhcHBlL2NvbW1vbicpO1xuY29uc3QgRGF0YWJhc2UgPSByZXF1aXJlKCdmcmFwcGUtY29yZS9mcmFwcGUvYmFja2VuZHMvcmVzdF9jbGllbnQnKS5EYXRhYmFzZTtcbmNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5mcmFwcGUudWkgPSByZXF1aXJlKCcuL3VpJyk7XG5mcmFwcGUudmlldyA9IHJlcXVpcmUoJy4vdmlldycpO1xuY29uc3QgUm91dGVyID0gcmVxdWlyZSgnLi92aWV3L3JvdXRlcicpLlJvdXRlcjtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG5cdGFzeW5jIHN0YXJ0KHtzZXJ2ZXIsIGNvbnRhaW5lcn0pIHtcblx0XHR3aW5kb3cuZnJhcHBlID0gZnJhcHBlO1xuXHRcdGZyYXBwZS5pbml0KCk7XG5cdFx0Y29tbW9uLmluaXRfbGlicyhmcmFwcGUpO1xuXG5cdFx0ZnJhcHBlLmZldGNoID0gd2luZG93LmZldGNoLmJpbmQoKTtcblx0XHRmcmFwcGUuZGIgPSBhd2FpdCBuZXcgRGF0YWJhc2Uoe3NlcnZlcjogc2VydmVyfSk7XG5cblx0XHRmcmFwcGUudmlldy5pbml0KHtjb250YWluZXI6IGNvbnRhaW5lcn0pO1xuXHRcdGZyYXBwZS5yb3V0ZXIgPSBuZXcgUm91dGVyKCk7XG5cdFx0YXdhaXQgZnJhcHBlLmxvZ2luKCk7XG5cdH1cbn07XG5cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMnKTtcbmNvbnN0IG1vZGVscyA9IHJlcXVpcmUoJy4uL21vZGVsL21vZGVscycpO1xuY29uc3QgbW9kZWwgPSByZXF1aXJlKCcuLi9tb2RlbCcpO1xuY29uc3QgX2RvY3VtZW50ID0gcmVxdWlyZSgnLi4vbW9kZWwvZG9jdW1lbnQnKTtcbmNvbnN0IG1ldGEgPSByZXF1aXJlKCcuLi9tb2RlbC9tZXRhJyk7XG5jb25zdCBfc2Vzc2lvbiA9IHJlcXVpcmUoJy4uL3Nlc3Npb24nKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0aW5pdF9saWJzKGZyYXBwZSkge1xuXHRcdE9iamVjdC5hc3NpZ24oZnJhcHBlLCB1dGlscyk7XG5cdFx0ZnJhcHBlLm1vZGVsID0gbW9kZWw7XG5cdFx0ZnJhcHBlLm1vZGVscyA9IG5ldyBtb2RlbHMuTW9kZWxzKCk7XG5cdFx0ZnJhcHBlLmRvY3VtZW50ID0gX2RvY3VtZW50O1xuXHRcdGZyYXBwZS5tZXRhID0gbWV0YTtcblx0XHRmcmFwcGUuX3Nlc3Npb24gPSBfc2Vzc2lvbjtcblx0fVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9jb21tb24vaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDExXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0ge1xuXHRzbHVnKHRleHQpIHtcblx0XHRyZXR1cm4gdGV4dC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyAvZywgJ18nKTtcblx0fSxcblxuXHRhc3luY19oYW5kbGVyKGZuKSB7XG5cdFx0cmV0dXJuIChyZXEsIHJlcywgbmV4dCkgPT4gUHJvbWlzZS5yZXNvbHZlKGZuKHJlcSwgcmVzLCBuZXh0KSlcblx0XHRcdC5jYXRjaChuZXh0KTtcblx0fSxcblxuXHRhc3luYyBzbGVlcChzZWNvbmRzKSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuXHRcdFx0c2V0VGltZW91dChyZXNvbHZlLCBzZWNvbmRzICogMTAwMCk7XG5cdFx0fSk7XG5cdH1cbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS91dGlscy5qc1xuLy8gbW9kdWxlIGlkID0gMTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiY29uc3QgcHJvY2VzcyA9IHJlcXVpcmUoJ3Byb2Nlc3MnKTtcbmNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5cbmNsYXNzIE1vZGVscyB7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuZGF0YSA9IHtkb2N0eXBlOiB7fX07XG5cdFx0dGhpcy5jb250cm9sbGVycyA9IHt9O1xuXHRcdHRoaXMubWV0YV9jbGFzc2VzID0ge307XG5cdH1cblxuXHRnZXQoZG9jdHlwZSwgbmFtZSkge1xuXHRcdHJldHVybiB0aGlzLmRhdGFbZnJhcHBlLnNsdWcoZG9jdHlwZSldW2ZyYXBwZS5zbHVnKG5hbWUpXTtcblx0fVxuXG5cdGdldF9jb250cm9sbGVyKGRvY3R5cGUpIHtcblx0XHRyZXR1cm4gdGhpcy5jb250cm9sbGVyc1tmcmFwcGUuc2x1Zyhkb2N0eXBlKV07XG5cdH1cblxuXHRnZXRfbWV0YV9jbGFzcyhkb2N0eXBlKSB7XG5cdFx0cmV0dXJuIHRoaXMubWV0YV9jbGFzc2VzW2ZyYXBwZS5zbHVnKGRvY3R5cGUpXSB8fCBmcmFwcGUubWV0YS5NZXRhO1xuXHR9XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7IE1vZGVsczogTW9kZWxzIH1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuLi9mcmFwcGUtY29yZS9mcmFwcGUvbW9kZWwvbW9kZWxzLmpzXG4vLyBtb2R1bGUgaWQgPSAxM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJtb2R1bGUuZXhwb3J0cyA9IHtcblx0c3RhbmRhcmRfZmllbGRzOiBbXG5cdFx0e1xuXHRcdFx0ZmllbGRuYW1lOiAnbmFtZScsIGZpZWxkdHlwZTogJ0RhdGEnLCByZXFkOiAxXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRmaWVsZG5hbWU6ICdvd25lcicsIGZpZWxkdHlwZTogJ0xpbmsnLCByZXFkOiAxLCBvcHRpb25zOiAnVXNlcidcblx0XHR9LFxuXHRcdHtcblx0XHRcdGZpZWxkbmFtZTogJ21vZGlmaWVkX2J5JywgZmllbGR0eXBlOiAnTGluaycsIHJlcWQ6IDEsIG9wdGlvbnM6ICdVc2VyJ1xuXHRcdH0sXG5cdFx0e1xuXHRcdFx0ZmllbGRuYW1lOiAnY3JlYXRpb24nLCBmaWVsZHR5cGU6ICdEYXRldGltZScsIHJlcWQ6IDFcblx0XHR9LFxuXHRcdHtcblx0XHRcdGZpZWxkbmFtZTogJ21vZGlmaWVkJywgZmllbGR0eXBlOiAnRGF0ZXRpbWUnLCByZXFkOiAxXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRmaWVsZG5hbWU6ICdkb2NzdGF0dXMnLCBmaWVsZHR5cGU6ICdJbnQnLCByZXFkOiAxLCBkZWZhdWx0OiAwXG5cdFx0fVxuXHRdLFxuXHRjaGlsZF9maWVsZHM6IFtcblx0XHR7XG5cdFx0XHRmaWVsZG5hbWU6ICdpZHgnLCBmaWVsZHR5cGU6ICdJbnQnLCByZXFkOiAxXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRmaWVsZG5hbWU6ICdwYXJlbnQnLCBmaWVsZHR5cGU6ICdEYXRhJywgcmVxZDogMVxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0ZmllbGRuYW1lOiAncGFyZW50dHlwZScsIGZpZWxkdHlwZTogJ0xpbmsnLCByZXFkOiAxLCBvcHRpb25zOiAnRG9jVHlwZSdcblx0XHR9LFxuXHRcdHtcblx0XHRcdGZpZWxkbmFtZTogJ3BhcmVudGZpZWxkJywgZmllbGR0eXBlOiAnRGF0YScsIHJlcWQ6IDFcblx0XHR9XG5cdF1cbn07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL21vZGVsL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSAxNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBEb2N1bWVudCA9IHJlcXVpcmUoJy4vZG9jdW1lbnQnKS5Eb2N1bWVudDtcbmNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5cbmNsYXNzIE1ldGEgZXh0ZW5kcyBEb2N1bWVudCB7XG5cdGNvbnN0cnVjdG9yKGRhdGEpIHtcblx0XHRzdXBlcihkYXRhKTtcblx0XHR0aGlzLmV2ZW50X2hhbmRsZXJzID0ge307XG5cdFx0dGhpcy5saXN0X29wdGlvbnMgPSB7XG5cdFx0XHRmaWVsZHM6IFsnbmFtZScsICdtb2RpZmllZCddXG5cdFx0fTtcblx0XHRpZiAodGhpcy5zZXR1cF9tZXRhKSAge1xuXHRcdFx0dGhpcy5zZXR1cF9tZXRhKCk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0X2ZpZWxkKGZpZWxkbmFtZSkge1xuXHRcdGlmICghdGhpcy5maWVsZF9tYXApIHtcblx0XHRcdHRoaXMuZmllbGRfbWFwID0ge307XG5cdFx0XHRmb3IgKGxldCBkZiBvZiB0aGlzLmZpZWxkcykge1xuXHRcdFx0XHR0aGlzLmZpZWxkX21hcFtkZi5maWVsZG5hbWVdID0gZGY7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmZpZWxkX21hcFtmaWVsZG5hbWVdO1xuXHR9XG5cblx0b24oa2V5LCBmbikge1xuXHRcdGlmICghdGhpcy5ldmVudF9oYW5kbGVyc1trZXldKSB7XG5cdFx0XHR0aGlzLmV2ZW50X2hhbmRsZXJzW2tleV0gPSBbXTtcblx0XHR9XG5cdFx0dGhpcy5ldmVudF9oYW5kbGVyc1trZXldLnB1c2goZm4pO1xuXHR9XG5cblx0YXN5bmMgc2V0KGZpZWxkbmFtZSwgdmFsdWUpIHtcblx0XHR0aGlzW2ZpZWxkbmFtZV0gPSB2YWx1ZTtcblx0XHRhd2FpdCB0aGlzLnRyaWdnZXIoZmllbGRuYW1lKTtcblx0fVxuXG5cdGdldChmaWVsZG5hbWUpIHtcblx0XHRyZXR1cm4gdGhpc1tmaWVsZG5hbWVdO1xuXHR9XG5cblx0Z2V0X3ZhbGlkX2ZpZWxkcygpIHtcblx0XHRpZiAoIXRoaXMuX3ZhbGlkX2ZpZWxkcykge1xuXHRcdFx0dGhpcy5fdmFsaWRfZmllbGRzID0gW107XG5cblx0XHRcdC8vIHN0YW5kYXJkIGZpZWxkc1xuXHRcdFx0Zm9yIChsZXQgZGYgb2YgZnJhcHBlLm1vZGVsLnN0YW5kYXJkX2ZpZWxkcykge1xuXHRcdFx0XHR0aGlzLl92YWxpZF9maWVsZHMucHVzaChkZik7XG5cdFx0XHR9XG5cblx0XHRcdC8vIHBhcmVudCBmaWVsZHNcblx0XHRcdGlmICh0aGlzLmlzdGFibGUpIHtcblx0XHRcdFx0Zm9yIChsZXQgZGYgb2YgZnJhcHBlLm1vZGVsLmNoaWxkX2ZpZWxkcykge1xuXHRcdFx0XHRcdHRoaXMuX3ZhbGlkX2ZpZWxkcy5wdXNoKGRmKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBkb2N0eXBlIGZpZWxkc1xuXHRcdFx0Zm9yIChsZXQgZGYgb2YgdGhpcy5maWVsZHMpIHtcblx0XHRcdFx0aWYgKGZyYXBwZS5kYi50eXBlX21hcFtkZi5maWVsZHR5cGVdKSB7XG5cdFx0XHRcdFx0dGhpcy5fdmFsaWRfZmllbGRzLnB1c2goZGYpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuX3ZhbGlkX2ZpZWxkcztcblx0fVxuXG5cdHZhbGlkYXRlX3NlbGVjdChkZiwgdmFsdWUpIHtcblx0XHRsZXQgb3B0aW9ucyA9IGRmLm9wdGlvbnM7XG5cdFx0aWYgKHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJykge1xuXHRcdFx0Ly8gdmFsdWVzIGdpdmVuIGFzIHN0cmluZ1xuXHRcdFx0b3B0aW9ucyA9IGRmLm9wdGlvbnMuc3BsaXQoJ1xcbicpO1xuXHRcdH1cblx0XHRpZiAoIW9wdGlvbnMuaW5jbHVkZXModmFsdWUpKSB7XG5cdFx0XHR0aHJvdyBuZXcgZnJhcHBlLlZhbHVlRXJyb3IoYCR7dmFsdWV9IG11c3QgYmUgb25lIG9mICR7b3B0aW9ucy5qb2luKFwiLCBcIil9YCk7XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgdHJpZ2dlcihrZXksIGV2ZW50ID0ge30pIHtcblxuXHRcdE9iamVjdC5hc3NpZ24oZXZlbnQsIHtcblx0XHRcdGRvYzogdGhpcyxcblx0XHRcdG5hbWU6IGtleVxuXHRcdH0pO1xuXG5cdFx0aWYgKHRoaXMuZXZlbnRfaGFuZGxlcnNba2V5XSkge1xuXHRcdFx0Zm9yICh2YXIgaGFuZGxlciBvZiB0aGlzLmV2ZW50X2hhbmRsZXJzW2tleV0pIHtcblx0XHRcdFx0YXdhaXQgaGFuZGxlcihldmVudCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gY29sbGVjdGlvbnNcblx0YXN5bmMgZ2V0X2xpc3Qoe3N0YXJ0LCBsaW1pdD0yMCwgZmlsdGVyc30pIHtcblx0XHRyZXR1cm4gYXdhaXQgZnJhcHBlLmRiLmdldF9hbGwoe1xuXHRcdFx0ZG9jdHlwZTogdGhpcy5uYW1lLFxuXHRcdFx0ZmllbGRzOiB0aGlzLmxpc3Rfb3B0aW9ucy5maWVsZHMsXG5cdFx0XHRmaWx0ZXJzOiBmaWx0ZXJzLFxuXHRcdFx0c3RhcnQ6IHN0YXJ0LFxuXHRcdFx0bGltaXQ6IGxpbWl0XG5cdFx0fSk7XG5cdH1cblxuXHRnZXRfcm93X2h0bWwoZGF0YSkge1xuXHRcdHJldHVybiBgPGEgaHJlZj1cIi92aWV3LyR7dGhpcy5uYW1lfS8ke2RhdGEubmFtZX1cIj4ke2RhdGEubmFtZX08L2E+YDtcblx0fVxuXG59XG5cbm1vZHVsZS5leHBvcnRzID0geyBNZXRhOiBNZXRhIH1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuLi9mcmFwcGUtY29yZS9mcmFwcGUvbW9kZWwvbWV0YS5qc1xuLy8gbW9kdWxlIGlkID0gMTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiY29uc3QgZnJhcHBlID0gcmVxdWlyZSgnZnJhcHBlLWNvcmUnKTtcblxuY2xhc3MgU2Vzc2lvbiB7XG5cdGNvbnN0cnVjdG9yKHVzZXIsIHVzZXJfa2V5KSB7XG5cdFx0dGhpcy51c2VyID0gdXNlciB8fCAnZ3Vlc3QnO1xuXHRcdGlmICh0aGlzLnVzZXIgIT09ICdndWVzdCcpIHtcblx0XHRcdHRoaXMubG9naW4odXNlcl9rZXkpO1xuXHRcdH1cblx0fVxuXG5cdGxvZ2luKHVzZXJfa2V5KSB7XG5cdFx0Ly8gY291bGQgYmUgcGFzc3dvcmQsIHNlc3Npb25pZCwgb3RwXG5cdH1cblxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHsgU2Vzc2lvbjogU2Vzc2lvbiB9O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9zZXNzaW9uLmpzXG4vLyBtb2R1bGUgaWQgPSAxNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBmcmFwcGUgPSByZXF1aXJlKCdmcmFwcGUtY29yZScpO1xuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcblxuY2xhc3MgUkVTVENsaWVudCB7XG5cdGNvbnN0cnVjdG9yKHtzZXJ2ZXIsIHByb3RvY29sPSdodHRwJ30pIHtcblx0XHR0aGlzLnNlcnZlciA9IHNlcnZlcjtcblx0XHR0aGlzLnByb3RvY29sID0gcHJvdG9jb2w7XG5cblx0XHR0aGlzLmluaXRfdHlwZV9tYXAoKTtcblxuXHRcdHRoaXMuanNvbl9oZWFkZXJzID0ge1xuXHRcdFx0J0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcblx0XHRcdCdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcblx0XHR9XG5cdH1cblxuXHRjb25uZWN0KCkge1xuXG5cdH1cblxuXHRhc3luYyBpbnNlcnQoZG9jdHlwZSwgZG9jKSB7XG5cdFx0ZG9jLmRvY3R5cGUgPSBkb2N0eXBlO1xuXHRcdGxldCB1cmwgPSB0aGlzLnByb3RvY29sICsgJzovLycgKyBwYXRoLmpvaW4odGhpcy5zZXJ2ZXIsIGAvYXBpL3Jlc291cmNlLyR7ZnJhcHBlLnNsdWcoZG9jdHlwZSl9YCk7XG5cdFx0bGV0IHJlc3BvbnNlID0gYXdhaXQgZnJhcHBlLmZldGNoKHVybCwge1xuXHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHRoZWFkZXJzOiB0aGlzLmpzb25faGVhZGVycyxcblx0XHRcdGJvZHk6IEpTT04uc3RyaW5naWZ5KGRvYylcblx0XHR9KTtcblxuXHRcdHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cdH1cblxuXHRhc3luYyBnZXQoZG9jdHlwZSwgbmFtZSkge1xuXHRcdGxldCB1cmwgPSB0aGlzLnByb3RvY29sICsgJzovLycgKyBwYXRoLmpvaW4odGhpcy5zZXJ2ZXIsIGAvYXBpL3Jlc291cmNlLyR7ZnJhcHBlLnNsdWcoZG9jdHlwZSl9LyR7bmFtZX1gKTtcblx0XHRsZXQgcmVzcG9uc2UgPSBhd2FpdCBmcmFwcGUuZmV0Y2godXJsLCB7XG5cdFx0XHRtZXRob2Q6ICdHRVQnLFxuXHRcdFx0aGVhZGVyczogdGhpcy5qc29uX2hlYWRlcnNcblx0XHR9KTtcblx0XHRyZXR1cm4gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuXHR9XG5cblx0YXN5bmMgZ2V0X2FsbCh7ZG9jdHlwZSwgZmllbGRzLCBmaWx0ZXJzLCBzdGFydCwgbGltaXQsIHNvcnRfYnksIG9yZGVyfSkge1xuXHRcdGxldCB1cmwgPSB0aGlzLnByb3RvY29sICsgJzovLycgKyBwYXRoLmpvaW4odGhpcy5zZXJ2ZXIsIGAvYXBpL3Jlc291cmNlLyR7ZnJhcHBlLnNsdWcoZG9jdHlwZSl9YCk7XG5cblx0XHR1cmwgPSB1cmwgKyBcIj9cIiArIHRoaXMuZ2V0X3F1ZXJ5X3N0cmluZyh7XG5cdFx0XHRmaWVsZHM6IEpTT04uc3RyaW5naWZ5KGZpZWxkcyksXG5cdFx0XHRmaWx0ZXJzOiBKU09OLnN0cmluZ2lmeShmaWx0ZXJzKSxcblx0XHRcdHN0YXJ0OiBzdGFydCxcblx0XHRcdGxpbWl0OiBsaW1pdCxcblx0XHRcdHNvcnRfYnk6IHNvcnRfYnksXG5cdFx0XHRvcmRlcjogb3JkZXJcblx0XHR9KTtcblxuXHRcdGxldCByZXNwb25zZSA9IGF3YWl0IGZyYXBwZS5mZXRjaCh1cmwsIHtcblx0XHRcdG1ldGhvZDogJ0dFVCcsXG5cdFx0XHRoZWFkZXJzOiB0aGlzLmpzb25faGVhZGVyc1xuXHRcdH0pO1xuXHRcdHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cblx0fVxuXG5cdGFzeW5jIHVwZGF0ZShkb2N0eXBlLCBkb2MpIHtcblx0XHRkb2MuZG9jdHlwZSA9IGRvY3R5cGU7XG5cdFx0bGV0IHVybCA9IHRoaXMucHJvdG9jb2wgKyAnOi8vJyArIHBhdGguam9pbih0aGlzLnNlcnZlciwgYC9hcGkvcmVzb3VyY2UvJHtmcmFwcGUuc2x1Zyhkb2N0eXBlKX0vJHtkb2MubmFtZX1gKTtcblx0XHRsZXQgcmVzcG9uc2UgPSBhd2FpdCBmcmFwcGUuZmV0Y2godXJsLCB7XG5cdFx0XHRtZXRob2Q6ICdQVVQnLFxuXHRcdFx0aGVhZGVyczogdGhpcy5qc29uX2hlYWRlcnMsXG5cdFx0XHRib2R5OiBKU09OLnN0cmluZ2lmeShkb2MpXG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuXHR9XG5cblx0YXN5bmMgZGVsZXRlKGRvY3R5cGUsIG5hbWUpIHtcblx0XHRsZXQgdXJsID0gdGhpcy5wcm90b2NvbCArICc6Ly8nICsgcGF0aC5qb2luKHRoaXMuc2VydmVyLCBgL2FwaS9yZXNvdXJjZS8ke2ZyYXBwZS5zbHVnKGRvY3R5cGUpfS8ke25hbWV9YCk7XG5cblx0XHRsZXQgcmVzcG9uc2UgPSBhd2FpdCBmcmFwcGUuZmV0Y2godXJsLCB7XG5cdFx0XHRtZXRob2Q6ICdERUxFVEUnLFxuXHRcdFx0aGVhZGVyczogdGhpcy5qc29uX2hlYWRlcnNcblx0XHR9KTtcblxuXHRcdHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cdH1cblxuXHRnZXRfcXVlcnlfc3RyaW5nKHBhcmFtcykge1xuXHRcdHJldHVybiBPYmplY3Qua2V5cyhwYXJhbXMpXG5cdFx0XHQubWFwKGsgPT4gcGFyYW1zW2tdICE9IG51bGwgPyBlbmNvZGVVUklDb21wb25lbnQoaykgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQocGFyYW1zW2tdKSA6IG51bGwpXG5cdFx0XHQuZmlsdGVyKHYgPT4gdilcblx0XHRcdC5qb2luKCcmJyk7XG5cdH1cblxuXHRpbml0X3R5cGVfbWFwKCkge1xuXHRcdHRoaXMudHlwZV9tYXAgPSB7XG5cdFx0XHQnQ3VycmVuY3knOlx0XHR0cnVlXG5cdFx0XHQsJ0ludCc6XHRcdFx0dHJ1ZVxuXHRcdFx0LCdGbG9hdCc6XHRcdHRydWVcblx0XHRcdCwnUGVyY2VudCc6XHRcdHRydWVcblx0XHRcdCwnQ2hlY2snOlx0XHR0cnVlXG5cdFx0XHQsJ1NtYWxsIFRleHQnOlx0dHJ1ZVxuXHRcdFx0LCdMb25nIFRleHQnOlx0dHJ1ZVxuXHRcdFx0LCdDb2RlJzpcdFx0dHJ1ZVxuXHRcdFx0LCdUZXh0IEVkaXRvcic6XHR0cnVlXG5cdFx0XHQsJ0RhdGUnOlx0XHR0cnVlXG5cdFx0XHQsJ0RhdGV0aW1lJzpcdHRydWVcblx0XHRcdCwnVGltZSc6XHRcdHRydWVcblx0XHRcdCwnVGV4dCc6XHRcdHRydWVcblx0XHRcdCwnRGF0YSc6XHRcdHRydWVcblx0XHRcdCwnTGluayc6XHRcdHRydWVcblx0XHRcdCwnRHluYW1pYyBMaW5rJzp0cnVlXG5cdFx0XHQsJ1Bhc3N3b3JkJzpcdHRydWVcblx0XHRcdCwnU2VsZWN0JzpcdFx0dHJ1ZVxuXHRcdFx0LCdSZWFkIE9ubHknOlx0dHJ1ZVxuXHRcdFx0LCdBdHRhY2gnOlx0XHR0cnVlXG5cdFx0XHQsJ0F0dGFjaCBJbWFnZSc6dHJ1ZVxuXHRcdFx0LCdTaWduYXR1cmUnOlx0dHJ1ZVxuXHRcdFx0LCdDb2xvcic6XHRcdHRydWVcblx0XHRcdCwnQmFyY29kZSc6XHRcdHRydWVcblx0XHRcdCwnR2VvbG9jYXRpb24nOlx0dHJ1ZVxuXHRcdH1cblx0fVxuXG5cdGNsb3NlKCkge1xuXG5cdH1cblxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0RGF0YWJhc2U6IFJFU1RDbGllbnRcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuLi9mcmFwcGUtY29yZS9mcmFwcGUvYmFja2VuZHMvcmVzdF9jbGllbnQuanNcbi8vIG1vZHVsZSBpZCA9IDE3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4vLyByZXNvbHZlcyAuIGFuZCAuLiBlbGVtZW50cyBpbiBhIHBhdGggYXJyYXkgd2l0aCBkaXJlY3RvcnkgbmFtZXMgdGhlcmVcbi8vIG11c3QgYmUgbm8gc2xhc2hlcywgZW1wdHkgZWxlbWVudHMsIG9yIGRldmljZSBuYW1lcyAoYzpcXCkgaW4gdGhlIGFycmF5XG4vLyAoc28gYWxzbyBubyBsZWFkaW5nIGFuZCB0cmFpbGluZyBzbGFzaGVzIC0gaXQgZG9lcyBub3QgZGlzdGluZ3Vpc2hcbi8vIHJlbGF0aXZlIGFuZCBhYnNvbHV0ZSBwYXRocylcbmZ1bmN0aW9uIG5vcm1hbGl6ZUFycmF5KHBhcnRzLCBhbGxvd0Fib3ZlUm9vdCkge1xuICAvLyBpZiB0aGUgcGF0aCB0cmllcyB0byBnbyBhYm92ZSB0aGUgcm9vdCwgYHVwYCBlbmRzIHVwID4gMFxuICB2YXIgdXAgPSAwO1xuICBmb3IgKHZhciBpID0gcGFydHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICB2YXIgbGFzdCA9IHBhcnRzW2ldO1xuICAgIGlmIChsYXN0ID09PSAnLicpIHtcbiAgICAgIHBhcnRzLnNwbGljZShpLCAxKTtcbiAgICB9IGVsc2UgaWYgKGxhc3QgPT09ICcuLicpIHtcbiAgICAgIHBhcnRzLnNwbGljZShpLCAxKTtcbiAgICAgIHVwKys7XG4gICAgfSBlbHNlIGlmICh1cCkge1xuICAgICAgcGFydHMuc3BsaWNlKGksIDEpO1xuICAgICAgdXAtLTtcbiAgICB9XG4gIH1cblxuICAvLyBpZiB0aGUgcGF0aCBpcyBhbGxvd2VkIHRvIGdvIGFib3ZlIHRoZSByb290LCByZXN0b3JlIGxlYWRpbmcgLi5zXG4gIGlmIChhbGxvd0Fib3ZlUm9vdCkge1xuICAgIGZvciAoOyB1cC0tOyB1cCkge1xuICAgICAgcGFydHMudW5zaGlmdCgnLi4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGFydHM7XG59XG5cbi8vIFNwbGl0IGEgZmlsZW5hbWUgaW50byBbcm9vdCwgZGlyLCBiYXNlbmFtZSwgZXh0XSwgdW5peCB2ZXJzaW9uXG4vLyAncm9vdCcgaXMganVzdCBhIHNsYXNoLCBvciBub3RoaW5nLlxudmFyIHNwbGl0UGF0aFJlID1cbiAgICAvXihcXC8/fCkoW1xcc1xcU10qPykoKD86XFwuezEsMn18W15cXC9dKz98KShcXC5bXi5cXC9dKnwpKSg/OltcXC9dKikkLztcbnZhciBzcGxpdFBhdGggPSBmdW5jdGlvbihmaWxlbmFtZSkge1xuICByZXR1cm4gc3BsaXRQYXRoUmUuZXhlYyhmaWxlbmFtZSkuc2xpY2UoMSk7XG59O1xuXG4vLyBwYXRoLnJlc29sdmUoW2Zyb20gLi4uXSwgdG8pXG4vLyBwb3NpeCB2ZXJzaW9uXG5leHBvcnRzLnJlc29sdmUgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHJlc29sdmVkUGF0aCA9ICcnLFxuICAgICAgcmVzb2x2ZWRBYnNvbHV0ZSA9IGZhbHNlO1xuXG4gIGZvciAodmFyIGkgPSBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSA+PSAtMSAmJiAhcmVzb2x2ZWRBYnNvbHV0ZTsgaS0tKSB7XG4gICAgdmFyIHBhdGggPSAoaSA+PSAwKSA/IGFyZ3VtZW50c1tpXSA6IHByb2Nlc3MuY3dkKCk7XG5cbiAgICAvLyBTa2lwIGVtcHR5IGFuZCBpbnZhbGlkIGVudHJpZXNcbiAgICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudHMgdG8gcGF0aC5yZXNvbHZlIG11c3QgYmUgc3RyaW5ncycpO1xuICAgIH0gZWxzZSBpZiAoIXBhdGgpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHJlc29sdmVkUGF0aCA9IHBhdGggKyAnLycgKyByZXNvbHZlZFBhdGg7XG4gICAgcmVzb2x2ZWRBYnNvbHV0ZSA9IHBhdGguY2hhckF0KDApID09PSAnLyc7XG4gIH1cblxuICAvLyBBdCB0aGlzIHBvaW50IHRoZSBwYXRoIHNob3VsZCBiZSByZXNvbHZlZCB0byBhIGZ1bGwgYWJzb2x1dGUgcGF0aCwgYnV0XG4gIC8vIGhhbmRsZSByZWxhdGl2ZSBwYXRocyB0byBiZSBzYWZlIChtaWdodCBoYXBwZW4gd2hlbiBwcm9jZXNzLmN3ZCgpIGZhaWxzKVxuXG4gIC8vIE5vcm1hbGl6ZSB0aGUgcGF0aFxuICByZXNvbHZlZFBhdGggPSBub3JtYWxpemVBcnJheShmaWx0ZXIocmVzb2x2ZWRQYXRoLnNwbGl0KCcvJyksIGZ1bmN0aW9uKHApIHtcbiAgICByZXR1cm4gISFwO1xuICB9KSwgIXJlc29sdmVkQWJzb2x1dGUpLmpvaW4oJy8nKTtcblxuICByZXR1cm4gKChyZXNvbHZlZEFic29sdXRlID8gJy8nIDogJycpICsgcmVzb2x2ZWRQYXRoKSB8fCAnLic7XG59O1xuXG4vLyBwYXRoLm5vcm1hbGl6ZShwYXRoKVxuLy8gcG9zaXggdmVyc2lvblxuZXhwb3J0cy5ub3JtYWxpemUgPSBmdW5jdGlvbihwYXRoKSB7XG4gIHZhciBpc0Fic29sdXRlID0gZXhwb3J0cy5pc0Fic29sdXRlKHBhdGgpLFxuICAgICAgdHJhaWxpbmdTbGFzaCA9IHN1YnN0cihwYXRoLCAtMSkgPT09ICcvJztcblxuICAvLyBOb3JtYWxpemUgdGhlIHBhdGhcbiAgcGF0aCA9IG5vcm1hbGl6ZUFycmF5KGZpbHRlcihwYXRoLnNwbGl0KCcvJyksIGZ1bmN0aW9uKHApIHtcbiAgICByZXR1cm4gISFwO1xuICB9KSwgIWlzQWJzb2x1dGUpLmpvaW4oJy8nKTtcblxuICBpZiAoIXBhdGggJiYgIWlzQWJzb2x1dGUpIHtcbiAgICBwYXRoID0gJy4nO1xuICB9XG4gIGlmIChwYXRoICYmIHRyYWlsaW5nU2xhc2gpIHtcbiAgICBwYXRoICs9ICcvJztcbiAgfVxuXG4gIHJldHVybiAoaXNBYnNvbHV0ZSA/ICcvJyA6ICcnKSArIHBhdGg7XG59O1xuXG4vLyBwb3NpeCB2ZXJzaW9uXG5leHBvcnRzLmlzQWJzb2x1dGUgPSBmdW5jdGlvbihwYXRoKSB7XG4gIHJldHVybiBwYXRoLmNoYXJBdCgwKSA9PT0gJy8nO1xufTtcblxuLy8gcG9zaXggdmVyc2lvblxuZXhwb3J0cy5qb2luID0gZnVuY3Rpb24oKSB7XG4gIHZhciBwYXRocyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XG4gIHJldHVybiBleHBvcnRzLm5vcm1hbGl6ZShmaWx0ZXIocGF0aHMsIGZ1bmN0aW9uKHAsIGluZGV4KSB7XG4gICAgaWYgKHR5cGVvZiBwICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRzIHRvIHBhdGguam9pbiBtdXN0IGJlIHN0cmluZ3MnKTtcbiAgICB9XG4gICAgcmV0dXJuIHA7XG4gIH0pLmpvaW4oJy8nKSk7XG59O1xuXG5cbi8vIHBhdGgucmVsYXRpdmUoZnJvbSwgdG8pXG4vLyBwb3NpeCB2ZXJzaW9uXG5leHBvcnRzLnJlbGF0aXZlID0gZnVuY3Rpb24oZnJvbSwgdG8pIHtcbiAgZnJvbSA9IGV4cG9ydHMucmVzb2x2ZShmcm9tKS5zdWJzdHIoMSk7XG4gIHRvID0gZXhwb3J0cy5yZXNvbHZlKHRvKS5zdWJzdHIoMSk7XG5cbiAgZnVuY3Rpb24gdHJpbShhcnIpIHtcbiAgICB2YXIgc3RhcnQgPSAwO1xuICAgIGZvciAoOyBzdGFydCA8IGFyci5sZW5ndGg7IHN0YXJ0KyspIHtcbiAgICAgIGlmIChhcnJbc3RhcnRdICE9PSAnJykgYnJlYWs7XG4gICAgfVxuXG4gICAgdmFyIGVuZCA9IGFyci5sZW5ndGggLSAxO1xuICAgIGZvciAoOyBlbmQgPj0gMDsgZW5kLS0pIHtcbiAgICAgIGlmIChhcnJbZW5kXSAhPT0gJycpIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChzdGFydCA+IGVuZCkgcmV0dXJuIFtdO1xuICAgIHJldHVybiBhcnIuc2xpY2Uoc3RhcnQsIGVuZCAtIHN0YXJ0ICsgMSk7XG4gIH1cblxuICB2YXIgZnJvbVBhcnRzID0gdHJpbShmcm9tLnNwbGl0KCcvJykpO1xuICB2YXIgdG9QYXJ0cyA9IHRyaW0odG8uc3BsaXQoJy8nKSk7XG5cbiAgdmFyIGxlbmd0aCA9IE1hdGgubWluKGZyb21QYXJ0cy5sZW5ndGgsIHRvUGFydHMubGVuZ3RoKTtcbiAgdmFyIHNhbWVQYXJ0c0xlbmd0aCA9IGxlbmd0aDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIGlmIChmcm9tUGFydHNbaV0gIT09IHRvUGFydHNbaV0pIHtcbiAgICAgIHNhbWVQYXJ0c0xlbmd0aCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB2YXIgb3V0cHV0UGFydHMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IHNhbWVQYXJ0c0xlbmd0aDsgaSA8IGZyb21QYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgIG91dHB1dFBhcnRzLnB1c2goJy4uJyk7XG4gIH1cblxuICBvdXRwdXRQYXJ0cyA9IG91dHB1dFBhcnRzLmNvbmNhdCh0b1BhcnRzLnNsaWNlKHNhbWVQYXJ0c0xlbmd0aCkpO1xuXG4gIHJldHVybiBvdXRwdXRQYXJ0cy5qb2luKCcvJyk7XG59O1xuXG5leHBvcnRzLnNlcCA9ICcvJztcbmV4cG9ydHMuZGVsaW1pdGVyID0gJzonO1xuXG5leHBvcnRzLmRpcm5hbWUgPSBmdW5jdGlvbihwYXRoKSB7XG4gIHZhciByZXN1bHQgPSBzcGxpdFBhdGgocGF0aCksXG4gICAgICByb290ID0gcmVzdWx0WzBdLFxuICAgICAgZGlyID0gcmVzdWx0WzFdO1xuXG4gIGlmICghcm9vdCAmJiAhZGlyKSB7XG4gICAgLy8gTm8gZGlybmFtZSB3aGF0c29ldmVyXG4gICAgcmV0dXJuICcuJztcbiAgfVxuXG4gIGlmIChkaXIpIHtcbiAgICAvLyBJdCBoYXMgYSBkaXJuYW1lLCBzdHJpcCB0cmFpbGluZyBzbGFzaFxuICAgIGRpciA9IGRpci5zdWJzdHIoMCwgZGlyLmxlbmd0aCAtIDEpO1xuICB9XG5cbiAgcmV0dXJuIHJvb3QgKyBkaXI7XG59O1xuXG5cbmV4cG9ydHMuYmFzZW5hbWUgPSBmdW5jdGlvbihwYXRoLCBleHQpIHtcbiAgdmFyIGYgPSBzcGxpdFBhdGgocGF0aClbMl07XG4gIC8vIFRPRE86IG1ha2UgdGhpcyBjb21wYXJpc29uIGNhc2UtaW5zZW5zaXRpdmUgb24gd2luZG93cz9cbiAgaWYgKGV4dCAmJiBmLnN1YnN0cigtMSAqIGV4dC5sZW5ndGgpID09PSBleHQpIHtcbiAgICBmID0gZi5zdWJzdHIoMCwgZi5sZW5ndGggLSBleHQubGVuZ3RoKTtcbiAgfVxuICByZXR1cm4gZjtcbn07XG5cblxuZXhwb3J0cy5leHRuYW1lID0gZnVuY3Rpb24ocGF0aCkge1xuICByZXR1cm4gc3BsaXRQYXRoKHBhdGgpWzNdO1xufTtcblxuZnVuY3Rpb24gZmlsdGVyICh4cywgZikge1xuICAgIGlmICh4cy5maWx0ZXIpIHJldHVybiB4cy5maWx0ZXIoZik7XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGYoeHNbaV0sIGksIHhzKSkgcmVzLnB1c2goeHNbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuXG4vLyBTdHJpbmcucHJvdG90eXBlLnN1YnN0ciAtIG5lZ2F0aXZlIGluZGV4IGRvbid0IHdvcmsgaW4gSUU4XG52YXIgc3Vic3RyID0gJ2FiJy5zdWJzdHIoLTEpID09PSAnYidcbiAgICA/IGZ1bmN0aW9uIChzdHIsIHN0YXJ0LCBsZW4pIHsgcmV0dXJuIHN0ci5zdWJzdHIoc3RhcnQsIGxlbikgfVxuICAgIDogZnVuY3Rpb24gKHN0ciwgc3RhcnQsIGxlbikge1xuICAgICAgICBpZiAoc3RhcnQgPCAwKSBzdGFydCA9IHN0ci5sZW5ndGggKyBzdGFydDtcbiAgICAgICAgcmV0dXJuIHN0ci5zdWJzdHIoc3RhcnQsIGxlbik7XG4gICAgfVxuO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcGF0aC1icm93c2VyaWZ5L2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSAxOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBmcmFwcGUgPSByZXF1aXJlKCdmcmFwcGUtY29yZScpO1xuY29uc3QgRHJvcGRvd24gPSByZXF1aXJlKCcuL2Ryb3Bkb3duJyk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRhZGQodGFnLCBjbGFzc05hbWUsIHBhcmVudCkge1xuXHRcdGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpO1xuXHRcdGlmIChjbGFzc05hbWUpIHtcblx0XHRcdGZvciAobGV0IGMgb2YgY2xhc3NOYW1lLnNwbGl0KCcgJykpIHtcblx0XHRcdFx0dGhpcy5hZGRfY2xhc3MoZWxlbWVudCwgYyk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChwYXJlbnQpIHtcblx0XHRcdHBhcmVudC5hcHBlbmRDaGlsZChlbGVtZW50KTtcblx0XHR9XG5cdFx0cmV0dXJuIGVsZW1lbnQ7XG5cdH0sXG5cblx0cmVtb3ZlKGVsZW1lbnQpIHtcblx0XHRlbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG5cdH0sXG5cblx0YWRkX2NsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkge1xuXHRcdGlmIChlbGVtZW50LmNsYXNzTGlzdCkge1xuXHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGVsZW1lbnQuY2xhc3NOYW1lICs9IFwiIFwiICsgY2xhc3NOYW1lO1xuXHRcdH1cblx0fSxcblxuXHRyZW1vdmVfY2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSB7XG5cdFx0aWYgKGVsZW1lbnQuY2xhc3NMaXN0KSB7XG5cdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZWxlbWVudC5jbGFzc05hbWUgPSBlbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoJyhefFxcXFxiKScgKyBjbGFzc05hbWUuc3BsaXQoJyAnKS5qb2luKCd8JykgKyAnKFxcXFxifCQpJywgJ2dpJyksICcgJyk7XG5cdFx0fVxuXHR9LFxuXG5cdHRvZ2dsZShlbGVtZW50LCBkZWZhdWx0X2Rpc3BsYXkgPSAnJykge1xuXHRcdGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnID8gZGVmYXVsdF9kaXNwbGF5IDogJ25vbmUnO1xuXHR9LFxuXG5cdG1ha2VfZHJvcGRvd24obGFiZWwsIHBhcmVudCwgYnRuX2NsYXNzID0gJ2J0bi1zZWNvbmRhcnknKSB7XG5cdFx0cmV0dXJuIG5ldyBEcm9wZG93bih7cGFyZW50OiBwYXJlbnQsIGxhYmVsOmxhYmVsLCBidG5fY2xhc3M6YnRuX2NsYXNzfSk7XG5cdH1cblxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvdWkvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDE5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRpbml0KHtjb250YWluZXIsIG1haW4sIHNpZGViYXJ9KSB7XG5cdFx0ZnJhcHBlLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcblxuXHRcdGlmIChzaWRlYmFyKSB7XG5cdFx0XHRmcmFwcGUuc2lkZWJhciA9IHNpZGViYXI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZyYXBwZS5zaWRlYmFyID0gZnJhcHBlLnVpLmFkZCgnZGl2JywgJ3NpZGViYXInLCBmcmFwcGUuY29udGFpbmVyKTtcblx0XHR9XG5cblx0XHRpZiAobWFpbikge1xuXHRcdFx0ZnJhcHBlLm1haW4gPSBtYWluO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRmcmFwcGUubWFpbiA9IGZyYXBwZS51aS5hZGQoJ2RpdicsICdtYWluJywgZnJhcHBlLmNvbnRhaW5lcik7XG5cdFx0fVxuXHR9LFxuXG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSAyMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBmcmFwcGUgPSByZXF1aXJlKCdmcmFwcGUtY29yZScpO1xuXG5jbGFzcyBSb3V0ZXIge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLmN1cnJlbnRfcGFnZSA9IG51bGw7XG5cdFx0dGhpcy5yb3V0ZXMgPSB7fTtcblx0XHR0aGlzLmxpc3RlbigpO1xuXHR9XG5cblx0YWRkKHJvdXRlLCBoYW5kbGVyKSB7XG5cdFx0bGV0IHBhZ2UgPSB7aGFuZGxlcjogaGFuZGxlcn07XG5cblx0XHQvLyAnL3RvZG8vOm5hbWUvOnBsYWNlJy5tYXRjaCgvOihbXi9dKykvZyk7XG5cdFx0cGFnZS5wYXJhbV9rZXlzID0gcm91dGUubWF0Y2goLzooW14vXSspL2cpO1xuXG5cdFx0aWYgKHBhZ2UucGFyYW1fa2V5cykge1xuXHRcdFx0Ly8gbWFrZSBleHByZXNzaW9uXG5cdFx0XHQvLyAnL3RvZG8vOm5hbWUvOnBsYWNlJy5yZXBsYWNlKC9cXC86KFthLXoxLTldKykvZywgXCJcXC8oW2EtejAtOV0rKVwiKTtcblx0XHRcdHBhZ2UuZXhwcmVzc2lvbiA9IHJvdXRlLnJlcGxhY2UoL1xcLzooW2EtejEtOV0rKS9nLCBcIlxcLyhbYS16MC05XSspXCIpO1xuXHRcdH1cblxuXHRcdHRoaXMucm91dGVzW3JvdXRlXSA9IHBhZ2U7XG5cdH1cblxuXHRsaXN0ZW4oKSB7XG5cdFx0d2luZG93Lm9uaGFzaGNoYW5nZSA9IHRoaXMuY2hhbmdlZC5iaW5kKHRoaXMpO1xuXHRcdHRoaXMuY2hhbmdlZCgpO1xuXHR9XG5cblx0YXN5bmMgY2hhbmdlZChldmVudCkge1xuXHRcdGlmICh3aW5kb3cubG9jYXRpb24uaGFzaC5sZW5ndGggPiAwKSB7XG5cdFx0XHRjb25zdCBwYWdlX25hbWUgPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHIoMSk7XG5cdFx0XHR0aGlzLnNob3cocGFnZV9uYW1lKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMucm91dGVzWydkZWZhdWx0J10pIHtcblx0XHRcdHRoaXMuc2hvdygnZGVmYXVsdCcpO1xuXHRcdH1cblx0fVxuXG5cdHNob3cocm91dGUpIHtcblx0XHRpZiAoIXJvdXRlKSB7XG5cdFx0XHRyb3V0ZSA9ICdkZWZhdWx0Jztcblx0XHR9XG5cblx0XHRpZiAocm91dGVbMF09PT0nIycpIHtcblx0XHRcdHJvdXRlID0gcm91dGUuc3Vic3RyKDEpO1xuXHRcdH1cblxuXHRcdGxldCBwYWdlID0gdGhpcy5tYXRjaChyb3V0ZSk7XG5cblx0XHRpZiAocGFnZSkge1xuXHRcdFx0aWYgKHR5cGVvZiBwYWdlLmhhbmRsZXI9PT0nZnVuY3Rpb24nKSB7XG5cdFx0XHRcdHBhZ2UuaGFuZGxlcihwYWdlLnBhcmFtcyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwYWdlLmhhbmRsZXIuc2hvdyhwYWdlLnBhcmFtcyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0bWF0Y2gocm91dGUpIHtcblx0XHRmb3IobGV0IGtleSBpbiB0aGlzLnJvdXRlcykge1xuXHRcdFx0bGV0IHBhZ2UgPSB0aGlzLnJvdXRlc1trZXldO1xuXG5cdFx0XHRpZiAocGFnZS5wYXJhbV9rZXlzKSB7XG5cdFx0XHRcdGxldCBtYXRjaGVzID0gcm91dGUubWF0Y2gobmV3IFJlZ0V4cChwYWdlLmV4cHJlc3Npb24pKTtcblx0XHRcdFx0aWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPT0gcGFnZS5wYXJhbV9rZXlzLmxlbmd0aCArIDEpIHtcblx0XHRcdFx0XHRsZXQgcGFyYW1zID0ge31cblx0XHRcdFx0XHRmb3IgKGxldCBpPTA7IGkgPCBwYWdlLnBhcmFtX2tleXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdHBhcmFtc1twYWdlLnBhcmFtX2tleXNbaV0uc3Vic3RyKDEpXSA9IG1hdGNoZXNbaSArIDFdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4ge2hhbmRsZXI6cGFnZS5oYW5kbGVyLCBwYXJhbXM6IHBhcmFtc307XG5cdFx0XHRcdH1cblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKGtleSA9PT0gcm91dGUpIHtcblx0XHRcdFx0XHRyZXR1cm4ge2hhbmRsZXI6cGFnZS5oYW5kbGVyfTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtSb3V0ZXI6IFJvdXRlcn07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L3JvdXRlci5qc1xuLy8gbW9kdWxlIGlkID0gMjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiY29uc3QgZnJhcHBlID0gcmVxdWlyZSgnZnJhcHBlLWNvcmUnKTtcblxuY2xhc3MgTGlzdFZpZXcge1xuXHRjb25zdHJ1Y3Rvcih7ZG9jdHlwZSwgcGFyZW50LCBmaWVsZHN9KSB7XG5cdFx0dGhpcy5kb2N0eXBlID0gZG9jdHlwZTtcblx0XHR0aGlzLnBhcmVudCA9IHBhcmVudDtcblx0XHR0aGlzLmZpZWxkcyA9IGZpZWxkcztcblxuXHRcdHRoaXMubWV0YSA9IGZyYXBwZS5nZXRfbWV0YSh0aGlzLmRvY3R5cGUpO1xuXG5cdFx0dGhpcy5zdGFydCA9IDA7XG5cdFx0dGhpcy5wYWdlX2xlbmd0aCA9IDIwO1xuXG5cdFx0dGhpcy5ib2R5ID0gbnVsbDtcblx0XHR0aGlzLnJvd3MgPSBbXTtcblx0fVxuXG5cdGFzeW5jIHJ1bigpIHtcblx0XHR0aGlzLm1ha2VfYm9keSgpO1xuXHRcdGxldCBkYXRhID0gYXdhaXQgdGhpcy5tZXRhLmdldF9saXN0KHtcblx0XHRcdHN0YXJ0OnRoaXMuc3RhcnQsXG5cdFx0XHRsaW1pdDp0aGlzLnBhZ2VfbGVuZ3RoXG5cdFx0fSk7XG5cblx0XHRmb3IgKGxldCBpPTA7IGk8IGRhdGEubGVuZ3RoOyBpKyspIHtcblx0XHRcdHRoaXMucmVuZGVyX3Jvdyh0aGlzLnN0YXJ0ICsgaSwgZGF0YVtpXSk7XG5cdFx0fVxuXG5cdFx0dGhpcy5jbGVhcl9lbXB0eV9yb3dzKGRhdGEubGVuZ3RoKTtcblx0fVxuXG5cdG1ha2VfYm9keSgpIHtcblx0XHRpZiAoIXRoaXMuYm9keSkge1xuXHRcdFx0dGhpcy5ib2R5ID0gZnJhcHBlLnVpLmFkZCgnZGl2JywgJ2xpc3QtYm9keScsIHRoaXMucGFyZW50KTtcblx0XHR9XG5cdH1cblxuXHRyZW5kZXJfcm93KGksIGRhdGEpIHtcblx0XHRsZXQgcm93ID0gdGhpcy5nZXRfcm93KGkpO1xuXHRcdHJvdy5pbm5lckhUTUwgPSB0aGlzLm1ldGEuZ2V0X3Jvd19odG1sKGRhdGEpO1xuXHR9XG5cblx0Z2V0X3JvdyhpKSB7XG5cdFx0aWYgKCF0aGlzLnJvd3NbaV0pIHtcblx0XHRcdHRoaXMucm93c1tpXSA9IGZyYXBwZS51aS5hZGQoJ2RpdicsICdsaXN0LXJvdycsIHRoaXMuYm9keSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnJvd3NbaV07XG5cdH1cblxuXHRjbGVhcl9lbXB0eV9yb3dzKHN0YXJ0KSB7XG5cdFx0aWYgKHRoaXMucm93cy5sZW5ndGggPiBzdGFydCkge1xuXHRcdFx0Zm9yIChsZXQgaT1zdGFydDsgaSA8IHRoaXMucm93cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRsZXQgcm93ID0gdGhpcy5nZXRfcm93KGkpO1xuXHRcdFx0XHRyb3cuaW5uZXJIVE1MID0gJyc7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRMaXN0VmlldzogTGlzdFZpZXdcbn07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2xpc3QuanNcbi8vIG1vZHVsZSBpZCA9IDIyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5cbmNsYXNzIFBhZ2Uge1xuXHRjb25zdHJ1Y3Rvcih0aXRsZSkge1xuXHRcdHRoaXMuaGFuZGxlcnMgPSB7fTtcblx0XHR0aGlzLnRpdGxlID0gdGl0bGU7XG5cdFx0dGhpcy5tYWtlKCk7XG5cdH1cblxuXHRtYWtlKCkge1xuXHRcdHRoaXMuYm9keSA9IGZyYXBwZS51aS5hZGQoJ2RpdicsICdwYWdlIGhpZGUnLCBmcmFwcGUubWFpbik7XG5cdH1cblxuXHRoaWRlKCkge1xuXHRcdGZyYXBwZS51aS5hZGRfY2xhc3ModGhpcy5ib2R5LCAnaGlkZScpO1xuXG5cdFx0dGhpcy50cmlnZ2VyKCdoaWRlJyk7XG5cdH1cblxuXHRzaG93KHBhcmFtcykge1xuXHRcdGlmIChmcmFwcGUucm91dGVyLmN1cnJlbnRfcGFnZSkge1xuXHRcdFx0ZnJhcHBlLnJvdXRlci5jdXJyZW50X3BhZ2UuaGlkZSgpO1xuXHRcdH1cblx0XHRmcmFwcGUudWkucmVtb3ZlX2NsYXNzKHRoaXMuYm9keSwgJ2hpZGUnKTtcblx0XHRmcmFwcGUucm91dGVyLmN1cnJlbnRfcGFnZSA9IHRoaXM7XG5cdFx0ZG9jdW1lbnQudGl0bGUgPSB0aGlzLnRpdGxlO1xuXG5cdFx0dGhpcy50cmlnZ2VyKCdzaG93JywgcGFyYW1zKTtcblx0fVxuXG5cdG9uKGV2ZW50LCBmbikge1xuXHRcdGlmICghdGhpcy5oYW5kbGVyc1tldmVudF0pIHRoaXMuaGFuZGxlcnMuZXZlbnQgPSBbXTtcblx0XHR0aGlzLmhhbmRsZXJzW2V2ZW50XS5wdXNoKGZuKTtcblx0fVxuXG5cdHRyaWdnZXIoZXZlbnQsIHBhcmFtcykge1xuXHRcdGlmICh0aGlzLmhhbmRsZXJzW2V2ZW50XSkge1xuXHRcdFx0Zm9yIChsZXQgaGFuZGxlciBvZiB0aGlzLmhhbmRsZXJzW2V2ZW50XSkge1xuXHRcdFx0XHRoYW5kbGVyKHBhcmFtcyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0geyBQYWdlOiBQYWdlIH07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L3BhZ2UuanNcbi8vIG1vZHVsZSBpZCA9IDIzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5jb25zdCBjb250cm9scyA9IHJlcXVpcmUoJy4vY29udHJvbHMnKTtcblxuY2xhc3MgRm9ybSB7XG5cdGNvbnN0cnVjdG9yKHtkb2N0eXBlLCBwYXJlbnQsIHN1Ym1pdF9sYWJlbD0nU3VibWl0J30pIHtcblx0XHR0aGlzLnBhcmVudCA9IHBhcmVudDtcblx0XHR0aGlzLmRvY3R5cGUgPSBkb2N0eXBlO1xuXHRcdHRoaXMuc3VibWl0X2xhYmVsID0gc3VibWl0X2xhYmVsO1xuXG5cdFx0dGhpcy5jb250cm9scyA9IHt9O1xuXHRcdHRoaXMuY29udHJvbHNfbGlzdCA9IFtdO1xuXG5cdFx0dGhpcy5tZXRhID0gZnJhcHBlLmdldF9tZXRhKHRoaXMuZG9jdHlwZSk7XG5cdFx0dGhpcy5tYWtlKCk7XG5cdH1cblxuXHRtYWtlKCkge1xuXHRcdGlmICh0aGlzLmJvZHkgfHwgIXRoaXMucGFyZW50KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5ib2R5ID0gZnJhcHBlLnVpLmFkZCgnZGl2JywgJ2Zvcm0tYm9keScsIHRoaXMucGFyZW50KTtcblx0XHR0aGlzLm1ha2VfYWN0aW9ucygpO1xuXG5cdFx0dGhpcy5mb3JtID0gZnJhcHBlLnVpLmFkZCgnZm9ybScsIG51bGwsIHRoaXMuYm9keSk7XG5cdFx0Zm9yKGxldCBkZiBvZiB0aGlzLm1ldGEuZmllbGRzKSB7XG5cdFx0XHRpZiAoY29udHJvbHMuZ2V0X2NvbnRyb2xfY2xhc3MoZGYuZmllbGR0eXBlKSkge1xuXHRcdFx0XHRsZXQgY29udHJvbCA9IGNvbnRyb2xzLm1ha2VfY29udHJvbChkZiwgdGhpcy5mb3JtKTtcblx0XHRcdFx0dGhpcy5jb250cm9sc19saXN0LnB1c2goY29udHJvbCk7XG5cdFx0XHRcdHRoaXMuY29udHJvbHNbZGYuZmllbGRuYW1lXSA9IGNvbnRyb2w7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMubWFrZV9zdWJtaXQoKTtcblx0fVxuXG5cdG1ha2VfYWN0aW9ucygpIHtcblx0XHR0aGlzLnRvb2xiYXIgPSBmcmFwcGUudWkuYWRkKCdkaXYnLCAnZm9ybS10b29sYmFyJywgdGhpcy5ib2R5KTtcblx0XHR0aGlzLmFjdGlvbnMgPSBmcmFwcGUudWkubWFrZV9kcm9wZG93bignQWN0aW9ucycsIHRoaXMudG9vbGJhcik7XG5cblx0XHQvLyBkZWxldGVcblx0XHR0aGlzLmFjdGlvbnMuYWRkX2l0ZW0oJ0RlbGV0ZScsIGFzeW5jICgpID0+IHtcblx0XHRcdGF3YWl0IHRoaXMuZG9jLmRlbGV0ZSgpO1xuXHRcdFx0dGhpcy5zaG93X2FsZXJ0KCdEZWxldGVkJywgJ3N1Y2Nlc3MnKTtcblx0XHR9KTtcblxuXHRcdHRoaXMuYWN0aW9ucy5mbG9hdF9yaWdodCgpO1xuXHR9XG5cblx0bWFrZV9zdWJtaXQoKSB7XG5cdFx0dGhpcy5zdWJtaXRfYnRuID0gZnJhcHBlLnVpLmFkZCgnYnV0dG9uJywgJ2J0biBidG4tb3V0bGluZS1wcmltYXJ5Jyxcblx0XHRcdHRoaXMuYm9keSk7XG5cdFx0dGhpcy5zdWJtaXRfYnRuLnNldEF0dHJpYnV0ZSgndHlwZScsICdzdWJtaXQnKTtcblx0XHR0aGlzLnN1Ym1pdF9idG4udGV4dENvbnRlbnQgPSB0aGlzLnN1Ym1pdF9sYWJlbDtcblx0XHR0aGlzLnN1Ym1pdF9idG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZlbnQpID0+IHtcblx0XHRcdHRoaXMuc3VibWl0KCk7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH0pXG5cdH1cblxuXHRzaG93X2FsZXJ0KG1lc3NhZ2UsIHR5cGUpIHtcblx0XHR0aGlzLmNsZWFyX2FsZXJ0KCk7XG5cdFx0dGhpcy5hbGVydCA9IGZyYXBwZS51aS5hZGQoJ2RpdicsIGBhbGVydCBhbGVydC0ke3R5cGV9YCwgdGhpcy5ib2R5KTtcblx0XHR0aGlzLmFsZXJ0LnRleHRDb250ZW50ID0gbWVzc2FnZTtcblx0fVxuXG5cdGNsZWFyX2FsZXJ0KCkge1xuXHRcdGlmICh0aGlzLmFsZXJ0KSB7XG5cdFx0XHRmcmFwcGUudWkucmVtb3ZlKHRoaXMuYWxlcnQpO1xuXHRcdFx0dGhpcy5hbGVydCA9IG51bGw7XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgdXNlKGRvYywgaXNfbmV3ID0gZmFsc2UpIHtcblx0XHRpZiAodGhpcy5kb2MpIHtcblx0XHRcdC8vIGNsZWFyIGhhbmRsZXJzIG9mIG91dGdvaW5nIGRvY1xuXHRcdFx0dGhpcy5kb2MuY2xlYXJfaGFuZGxlcnMoKTtcblx0XHR9XG5cdFx0dGhpcy5jbGVhcl9hbGVydCgpO1xuXHRcdHRoaXMuZG9jID0gZG9jO1xuXHRcdHRoaXMuaXNfbmV3ID0gaXNfbmV3O1xuXHRcdGZvciAobGV0IGNvbnRyb2wgb2YgdGhpcy5jb250cm9sc19saXN0KSB7XG5cdFx0XHRjb250cm9sLmJpbmQodGhpcy5kb2MpO1xuXHRcdH1cblx0fVxuXG5cdGFzeW5jIHN1Ym1pdCgpIHtcblx0XHR0cnkge1xuXHRcdFx0aWYgKHRoaXMuaXNfbmV3KSB7XG5cdFx0XHRcdGF3YWl0IHRoaXMuZG9jLmluc2VydCgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YXdhaXQgdGhpcy5kb2MudXBkYXRlKCk7XG5cdFx0XHR9XG5cdFx0XHRhd2FpdCB0aGlzLnJlZnJlc2goKTtcblx0XHRcdHRoaXMuc2hvd19hbGVydCgnU2F2ZWQnLCAnc3VjY2VzcycpO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdHRoaXMuc2hvd19hbGVydCgnRmFpbGVkJywgJ2RhbmdlcicpO1xuXHRcdH1cblx0fVxuXG5cdHJlZnJlc2goKSB7XG5cdFx0Zm9yKGxldCBjb250cm9sIG9mIHRoaXMuY29udHJvbHNfbGlzdCkge1xuXHRcdFx0Y29udHJvbC5yZWZyZXNoKCk7XG5cdFx0fVxuXHR9XG5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7Rm9ybTogRm9ybX07XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC92aWV3L2Zvcm0uanNcbi8vIG1vZHVsZSBpZCA9IDI0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IGNvbnRyb2xfY2xhc3NlcyA9IHtcblx0RGF0YTogcmVxdWlyZSgnLi9kYXRhJyksXG5cdFRleHQ6IHJlcXVpcmUoJy4vdGV4dCcpLFxuXHRTZWxlY3Q6IHJlcXVpcmUoJy4vc2VsZWN0Jylcbn1cblxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0Z2V0X2NvbnRyb2xfY2xhc3MoZmllbGR0eXBlKSB7XG5cdFx0cmV0dXJuIGNvbnRyb2xfY2xhc3Nlc1tmaWVsZHR5cGVdO1xuXHR9LFxuXHRtYWtlX2NvbnRyb2woZmllbGQsIHBhcmVudCkge1xuXHRcdGNvbnN0IGNvbnRyb2xfY2xhc3MgPSB0aGlzLmdldF9jb250cm9sX2NsYXNzKGZpZWxkLmZpZWxkdHlwZSk7XG5cdFx0bGV0IGNvbnRyb2wgPSBuZXcgY29udHJvbF9jbGFzcyhmaWVsZCwgcGFyZW50KTtcblx0XHRjb250cm9sLm1ha2UoKTtcblx0XHRyZXR1cm4gY29udHJvbDtcblx0fVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvdmlldy9jb250cm9scy9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMjVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiY29uc3QgQmFzZUNvbnRyb2wgPSByZXF1aXJlKCcuL2Jhc2UnKTtcblxuY2xhc3MgRGF0YUNvbnRyb2wgZXh0ZW5kcyBCYXNlQ29udHJvbCB7XG5cdG1ha2UoKSB7XG5cdFx0c3VwZXIubWFrZSgpO1xuXHRcdHRoaXMuaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTtcblx0fVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBEYXRhQ29udHJvbDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvY29udHJvbHMvZGF0YS5qc1xuLy8gbW9kdWxlIGlkID0gMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiY29uc3QgQmFzZUNvbnRyb2wgPSByZXF1aXJlKCcuL2Jhc2UnKTtcblxuY2xhc3MgVGV4dENvbnRyb2wgZXh0ZW5kcyBCYXNlQ29udHJvbCB7XG5cdG1ha2VfaW5wdXQoKSB7XG5cdFx0dGhpcy5pbnB1dCA9IGZyYXBwZS51aS5hZGQoJ3RleHRhcmVhJywgJ2Zvcm0tY29udHJvbCcsIHRoaXMuZm9ybV9ncm91cCk7XG5cdH1cblx0bWFrZSgpIHtcblx0XHRzdXBlci5tYWtlKCk7XG5cdFx0dGhpcy5pbnB1dC5zZXRBdHRyaWJ1dGUoJ3Jvd3MnLCAnOCcpO1xuXHR9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFRleHRDb250cm9sO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4uL2ZyYXBwZS1jb3JlL2ZyYXBwZS9jbGllbnQvdmlldy9jb250cm9scy90ZXh0LmpzXG4vLyBtb2R1bGUgaWQgPSAyN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBCYXNlQ29udHJvbCA9IHJlcXVpcmUoJy4vYmFzZScpO1xuXG5jbGFzcyBTZWxlY3RDb250cm9sIGV4dGVuZHMgQmFzZUNvbnRyb2wge1xuXHRtYWtlX2lucHV0KCkge1xuXHRcdHRoaXMuaW5wdXQgPSBmcmFwcGUudWkuYWRkKCdzZWxlY3QnLCAnZm9ybS1jb250cm9sJywgdGhpcy5mb3JtX2dyb3VwKTtcblxuXHRcdGxldCBvcHRpb25zID0gdGhpcy5vcHRpb25zO1xuXHRcdGlmICh0eXBlb2Ygb3B0aW9ucz09PSdzdHJpbmcnKSB7XG5cdFx0XHRvcHRpb25zID0gb3B0aW9ucy5zcGxpdCgnXFxuJyk7XG5cdFx0fVxuXG5cdFx0Zm9yIChsZXQgdmFsdWUgb2Ygb3B0aW9ucykge1xuXHRcdFx0bGV0IG9wdGlvbiA9IGZyYXBwZS51aS5hZGQoJ29wdGlvbicsIG51bGwsIHRoaXMuaW5wdXQpO1xuXHRcdFx0b3B0aW9uLnRleHRDb250ZW50ID0gdmFsdWU7XG5cdFx0XHRvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsIHZhbHVlKTtcblx0XHR9XG5cdH1cblx0bWFrZSgpIHtcblx0XHRzdXBlci5tYWtlKCk7XG5cdFx0dGhpcy5pbnB1dC5zZXRBdHRyaWJ1dGUoJ3JvdycsICczJyk7XG5cdH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gU2VsZWN0Q29udHJvbDtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuLi9mcmFwcGUtY29yZS9mcmFwcGUvY2xpZW50L3ZpZXcvY29udHJvbHMvc2VsZWN0LmpzXG4vLyBtb2R1bGUgaWQgPSAyOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJjb25zdCBmcmFwcGUgPSByZXF1aXJlKCdmcmFwcGUtY29yZScpO1xuXG5jbGFzcyB0b2RvX21ldGEgZXh0ZW5kcyBmcmFwcGUubWV0YS5NZXRhIHtcblx0c2V0dXBfbWV0YSgpIHtcblx0XHRPYmplY3QuYXNzaWduKHRoaXMsIHJlcXVpcmUoJy4vdG9kby5qc29uJykpO1xuXHRcdHRoaXMubmFtZSA9ICdUb0RvJztcblx0XHR0aGlzLmxpc3Rfb3B0aW9ucy5maWVsZHMgPSBbJ25hbWUnLCAnc3ViamVjdCcsICdzdGF0dXMnLCAnZGVzY3JpcHRpb24nXTtcblx0fVxuXG5cdGdldF9yb3dfaHRtbChkYXRhKSB7XG5cdFx0cmV0dXJuIGA8YSBocmVmPVwiI2VkaXQvdG9kby8ke2RhdGEubmFtZX1cIj4ke2RhdGEuc3ViamVjdH08L2E+YDtcblx0fVxuXG59XG5cbmNsYXNzIHRvZG8gZXh0ZW5kcyBmcmFwcGUuZG9jdW1lbnQuRG9jdW1lbnQge1xuXHRzZXR1cCgpIHtcblx0XHR0aGlzLmFkZF9oYW5kbGVyKCd2YWxpZGF0ZScpO1xuXHR9XG5cdHZhbGlkYXRlKCkge1xuXHRcdGlmICghdGhpcy5zdGF0dXMpIHtcblx0XHRcdHRoaXMuc3RhdHVzID0gJ09wZW4nO1xuXHRcdH1cblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0dG9kbzogdG9kbyxcblx0dG9kb19tZXRhOiB0b2RvX21ldGFcbn07XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuLi9mcmFwcGUtY29yZS9mcmFwcGUvbW9kZWxzL2RvY3R5cGUvdG9kby90b2RvLmpzXG4vLyBtb2R1bGUgaWQgPSAyOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCJtb2R1bGUuZXhwb3J0cyA9IHtcImF1dG9uYW1lXCI6XCJoYXNoXCIsXCJuYW1lXCI6XCJUb0RvXCIsXCJkb2N0eXBlXCI6XCJEb2NUeXBlXCIsXCJpc3NpbmdsZVwiOjAsXCJmaWVsZHNcIjpbe1wiZmllbGRuYW1lXCI6XCJzdWJqZWN0XCIsXCJsYWJlbFwiOlwiU3ViamVjdFwiLFwiZmllbGR0eXBlXCI6XCJEYXRhXCIsXCJyZXFkXCI6MX0se1wiZmllbGRuYW1lXCI6XCJkZXNjcmlwdGlvblwiLFwibGFiZWxcIjpcIkRlc2NyaXB0aW9uXCIsXCJmaWVsZHR5cGVcIjpcIlRleHRcIn0se1wiZmllbGRuYW1lXCI6XCJzdGF0dXNcIixcImxhYmVsXCI6XCJTdGF0dXNcIixcImZpZWxkdHlwZVwiOlwiU2VsZWN0XCIsXCJvcHRpb25zXCI6W1wiT3BlblwiLFwiQ2xvc2VkXCJdLFwiZGVmYXVsdFwiOlwiT3BlblwiLFwicmVxZFwiOjF9XX1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuLi9mcmFwcGUtY29yZS9mcmFwcGUvbW9kZWxzL2RvY3R5cGUvdG9kby90b2RvLmpzb25cbi8vIG1vZHVsZSBpZCA9IDMwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsImNvbnN0IGZyYXBwZSA9IHJlcXVpcmUoJ2ZyYXBwZS1jb3JlJyk7XG5cbmNsYXNzIERyb3Bkb3duIHtcblx0Y29uc3RydWN0b3Ioe3BhcmVudCwgbGFiZWwsIGJ0bl9jbGFzcyA9ICdidG4tc2Vjb25kYXJ5JywgaXRlbXMgPSBbXX0pIHtcblx0XHRPYmplY3QuYXNzaWduKHRoaXMsIGFyZ3VtZW50c1swXSk7XG5cblx0XHR0aGlzLmRyb3Bkb3duX2l0ZW1zID0gW107XG5cdFx0dGhpcy5zZXR1cF9iYWNrZ3JvdW5kX2NsaWNrKCk7XG5cdFx0dGhpcy5tYWtlKCk7XG5cblx0XHQvLyBpbml0IGl0ZW1zXG5cdFx0aWYgKHRoaXMuaXRlbXMpIHtcblx0XHRcdGZvciAoaXRlbSBvZiB0aGlzLml0ZW1zKSB7XG5cdFx0XHRcdHRoaXMuYWRkX2l0ZW0oaXRlbS5sYWJlbCwgaXRlbS5hY3Rpb24pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHNldHVwX2JhY2tncm91bmRfY2xpY2soKSB7XG5cdFx0aWYgKCFkb2N1bWVudC5kcm9wZG93bl9zZXR1cCkge1xuXHRcdFx0ZnJhcHBlLmRyb3Bkb3ducyA9IFtdO1xuXHRcdFx0Ly8gc2V0dXAgaGlkaW5nIGFsbCBkcm9wZG93bnMgb24gY2xpY2tcblx0XHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGZvciAobGV0IGQgb2YgZnJhcHBlLmRyb3Bkb3ducykge1xuXHRcdFx0XHRcdGlmIChkLmJ1dHRvbiAhPT0gZXZlbnQudGFyZ2V0KSB7XG5cdFx0XHRcdFx0XHRkLmNvbGxhcHNlKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdGRvY3VtZW50LmRyb3Bkb3duX3NldHVwID0gdHJ1ZTtcblx0XHR9XG5cdFx0ZnJhcHBlLmRyb3Bkb3ducy5wdXNoKHRoaXMpO1xuXHR9XG5cblx0bWFrZSgpIHtcblx0XHR0aGlzLmRyb3Bkb3duID0gZnJhcHBlLnVpLmFkZCgnZGl2JywgJ2Ryb3Bkb3duJywgdGhpcy5wYXJlbnQpO1xuXHRcdHRoaXMubWFrZV9idXR0b24oKTtcblx0XHR0aGlzLmRyb3Bkb3duX21lbnUgPSBmcmFwcGUudWkuYWRkKCdkaXYnLCAnZHJvcGRvd24tbWVudScsIHRoaXMuZHJvcGRvd24pO1xuXHR9XG5cblx0bWFrZV9idXR0b24oKSB7XG5cdFx0dGhpcy5idXR0b24gPSBmcmFwcGUudWkuYWRkKCdidXR0b24nLCAnYnRuICcgKyB0aGlzLmJ0bl9jbGFzcyxcblx0XHRcdHRoaXMuZHJvcGRvd24pO1xuXHRcdGZyYXBwZS51aS5hZGRfY2xhc3ModGhpcy5idXR0b24sICdkcm9wZG93bi10b2dnbGUnKTtcblx0XHR0aGlzLmJ1dHRvbi50ZXh0Q29udGVudCA9IHRoaXMubGFiZWw7XG5cdFx0dGhpcy5idXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG5cdFx0XHR0aGlzLnRvZ2dsZSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0ZXhwYW5kKCkge1xuXHRcdHRoaXMuZHJvcGRvd24uY2xhc3NMaXN0LmFkZCgnc2hvdycpO1xuXHRcdHRoaXMuZHJvcGRvd25fbWVudS5jbGFzc0xpc3QuYWRkKCdzaG93Jyk7XG5cdH1cblxuXHRjb2xsYXBzZSgpIHtcblx0XHR0aGlzLmRyb3Bkb3duLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTtcblx0XHR0aGlzLmRyb3Bkb3duX21lbnUuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpO1xuXHR9XG5cblx0dG9nZ2xlKCkge1xuXHRcdHRoaXMuZHJvcGRvd24uY2xhc3NMaXN0LnRvZ2dsZSgnc2hvdycpO1xuXHRcdHRoaXMuZHJvcGRvd25fbWVudS5jbGFzc0xpc3QudG9nZ2xlKCdzaG93Jyk7XG5cdH1cblxuXHRhZGRfaXRlbShsYWJlbCwgYWN0aW9uKSB7XG5cdFx0bGV0IGl0ZW0gPSBmcmFwcGUudWkuYWRkKCdhJywgJ2Ryb3Bkb3duLWl0ZW0nLCB0aGlzLmRyb3Bkb3duX21lbnUpO1xuXHRcdGl0ZW0udGV4dENvbnRlbnQgPSBsYWJlbDtcblx0XHRpZiAodHlwZW9mIGFjdGlvbiA9PT0gJ3N0cmluZycpIHtcblx0XHRcdGl0ZW0uc3JjID0gYWN0aW9uO1xuXHRcdFx0aXRlbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcblx0XHRcdFx0dGhpcy50b2dnbGUoKTtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpdGVtLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgYXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRhd2FpdCBhY3Rpb24oKTtcblx0XHRcdFx0dGhpcy50b2dnbGUoKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHR0aGlzLmRyb3Bkb3duX2l0ZW1zLnB1c2goaXRlbSk7XG5cdH1cblxuXHRmbG9hdF9yaWdodCgpIHtcblx0XHRmcmFwcGUudWkuYWRkX2NsYXNzKHRoaXMuZHJvcGRvd24sICdmbG9hdC1yaWdodCcpO1xuXHRcdGZyYXBwZS51aS5hZGRfY2xhc3ModGhpcy5kcm9wZG93bl9tZW51LCAnZHJvcGRvd24tbWVudS1yaWdodCcpO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gRHJvcGRvd247XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi4vZnJhcHBlLWNvcmUvZnJhcHBlL2NsaWVudC91aS9kcm9wZG93bi5qc1xuLy8gbW9kdWxlIGlkID0gMzFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==
|