/*------------------------------------------------------------------
[Print stylesheet]
-------------------------------------------------------------------*/
/*------------------------------------------------------------------
[Colors]
-------------------------------------------------------------------*/
/*------------------------------------------------------------------
[Defaults]
-------------------------------------------------------------------*/
/*------------------------------------------------------------------
[Neat settings]

Override the default neat grid settings
-------------------------------------------------------------------*/
/*------------------------------------------------------------------
[Variables]

General variables used throughout the project.
-------------------------------------------------------------------*/
html {
  box-sizing: border-box;
}

*, *::after, *::before {
  box-sizing: inherit;
}

/*------------------------------------------------------------------
[Clearfix]
-------------------------------------------------------------------*/
.clearfix::after {
  clear: both;
  content: "";
  display: table;
}

/*------------------------------------------------------------------
[Grid classes]
-------------------------------------------------------------------*/
.row {
  display: block;
}

.row::after {
  clear: both;
  content: "";
  display: table;
}

.container {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

.container::after {
  clear: both;
  content: "";
  display: table;
}

.col-1 {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 6.17215%;
}

.col-1:last-child {
  margin-right: 0;
}

.col-2 {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 14.70196%;
}

.col-2:last-child {
  margin-right: 0;
}

.col-3 {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 23.23176%;
}

.col-3:last-child {
  margin-right: 0;
}

.col-4 {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 31.76157%;
}

.col-4:last-child {
  margin-right: 0;
}

.col-5 {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 40.29137%;
}

.col-5:last-child {
  margin-right: 0;
}

.col-6 {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 48.82117%;
}

.col-6:last-child {
  margin-right: 0;
}

.col-7 {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 57.35098%;
}

.col-7:last-child {
  margin-right: 0;
}

.col-8 {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 65.88078%;
}

.col-8:last-child {
  margin-right: 0;
}

.col-9 {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 74.41059%;
}

.col-9:last-child {
  margin-right: 0;
}

.col-10 {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 82.94039%;
}

.col-10:last-child {
  margin-right: 0;
}

.col-11 {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 91.4702%;
}

.col-11:last-child {
  margin-right: 0;
}

.col-12 {
  float: left;
  display: block;
  margin-right: 2.35765%;
  width: 100%;
}

.col-12:last-child {
  margin-right: 0;
}

/*------------------------------------------------------------------
[Functions]
-------------------------------------------------------------------*/
/*------------------------------------------------------------------
[Print stylesheet]
-------------------------------------------------------------------*/

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByaW50LnNjc3MiLCJ2YXJpYWJsZXMvX2NvbG9ycy5zY3NzIiwidmFyaWFibGVzL19kZWZhdWx0cy5zY3NzIiwidmFyaWFibGVzL19ncmlkLXNldHRpbmdzLnNjc3MiLCJ2YXJpYWJsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vLm5wbS9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fYm94LXNpemluZy5zY3NzIiwiaGVscGVycy9jbGFzc2VzL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vLm5wbS9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsImhlbHBlcnMvY2xhc3Nlcy9fZ3JpZC5zY3NzIiwiLi4vLi4vLm5wbS9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcm93LnNjc3MiLCIuLi8uLi8ubnBtL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19vdXRlci1jb250YWluZXIuc2NzcyIsIi4uLy4uLy5ucG0vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3NwYW4tY29sdW1ucy5zY3NzIiwiLi4vLi4vLm5wbS9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcHJpdmF0ZS5zY3NzIiwiaGVscGVycy9mdW5jdGlvbnMvX2Z1bmN0aW9ucy5zY3NzIiwicHJpbnQvX3ByaW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O3FFQUVxRTtBQ0ZyRTs7cUVBRXFFO0FDRnJFOztxRUFFcUU7QUNGckU7Ozs7cUVBSXFFO0FDSnJFOzs7O3FFQUlxRTtBQ0RuRTtFQUNFLHVCQUF1QjtDQUN4Qjs7QUFFRDtFQUlJLG9CQUFvQjtDQUNyQjs7QUNaTDs7cUVBRXFFO0FBRXJFO0VDZ0JJLFlBQVk7RUFDWixZQUFZO0VBQ1osZUFBZTtDQUNoQjs7QUN2Qkg7O3FFQUVxRTtBQUVyRTtFQzRDSSxlQUFlO0NEMUNsQjs7QUFGRDtFRGdCSSxZQUFZO0VBQ1osWUFBWTtFQUNaLGVBQWU7Q0FDaEI7O0FDZkg7RUV3QkUsa0JQZGdCO0VPZWhCLGtCQUNhO0VBRGIsbUJBRWM7Q0Z6QmY7O0FBRkQ7RURZSSxZQUFZO0VBQ1osWUFBWTtFQUNaLGVBQWU7Q0FDaEI7O0FDVEQ7RUdxREUsWUFBTztFQUdMLGVBQWU7RUFlZix1QkN0RWM7RUR1RWQsZ0JDNUVjO0NKTWpCOztBQUZEO0VHMkVNLGdCQUErQjtDQUNoQzs7QUg1RUw7RUdxREUsWUFBTztFQUdMLGVBQWU7RUFlZix1QkN0RWM7RUR1RWQsaUJDNUVjO0NKTWpCOztBQUZEO0VHMkVNLGdCQUErQjtDQUNoQzs7QUg1RUw7RUdxREUsWUFBTztFQUdMLGVBQWU7RUFlZix1QkN0RWM7RUR1RWQsaUJDNUVjO0NKTWpCOztBQUZEO0VHMkVNLGdCQUErQjtDQUNoQzs7QUg1RUw7RUdxREUsWUFBTztFQUdMLGVBQWU7RUFlZix1QkN0RWM7RUR1RWQsaUJDNUVjO0NKTWpCOztBQUZEO0VHMkVNLGdCQUErQjtDQUNoQzs7QUg1RUw7RUdxREUsWUFBTztFQUdMLGVBQWU7RUFlZix1QkN0RWM7RUR1RWQsaUJDNUVjO0NKTWpCOztBQUZEO0VHMkVNLGdCQUErQjtDQUNoQzs7QUg1RUw7RUdxREUsWUFBTztFQUdMLGVBQWU7RUFlZix1QkN0RWM7RUR1RWQsaUJDNUVjO0NKTWpCOztBQUZEO0VHMkVNLGdCQUErQjtDQUNoQzs7QUg1RUw7RUdxREUsWUFBTztFQUdMLGVBQWU7RUFlZix1QkN0RWM7RUR1RWQsaUJDNUVjO0NKTWpCOztBQUZEO0VHMkVNLGdCQUErQjtDQUNoQzs7QUg1RUw7RUdxREUsWUFBTztFQUdMLGVBQWU7RUFlZix1QkN0RWM7RUR1RWQsaUJDNUVjO0NKTWpCOztBQUZEO0VHMkVNLGdCQUErQjtDQUNoQzs7QUg1RUw7RUdxREUsWUFBTztFQUdMLGVBQWU7RUFlZix1QkN0RWM7RUR1RWQsaUJDNUVjO0NKTWpCOztBQUZEO0VHMkVNLGdCQUErQjtDQUNoQzs7QUg1RUw7RUdxREUsWUFBTztFQUdMLGVBQWU7RUFlZix1QkN0RWM7RUR1RWQsaUJDNUVjO0NKTWpCOztBQUZEO0VHMkVNLGdCQUErQjtDQUNoQzs7QUg1RUw7RUdxREUsWUFBTztFQUdMLGVBQWU7RUFlZix1QkN0RWM7RUR1RWQsZ0JDNUVjO0NKTWpCOztBQUZEO0VHMkVNLGdCQUErQjtDQUNoQzs7QUg1RUw7RUdxREUsWUFBTztFQUdMLGVBQWU7RUFlZix1QkN0RWM7RUR1RWQsWUM1RWM7Q0pNakI7O0FBRkQ7RUcyRU0sZ0JBQStCO0NBQ2hDOztBRTFGUDs7cUVBRXFFO0FDRnJFOztxRUFFcUUiLCJmaWxlIjoicHJpbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbltQcmludCBzdHlsZXNoZWV0XVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gQm91cmJvbiwgbmVhdCwgaGVscGVycyBhbmQgdmFyaWFibGVzXG5AaW1wb3J0IFwiYm91cmJvblwiO1xuQGltcG9ydCBcIi9zcnYvd3d3L2Rldi9ldXJvcGVhbmdyZWVucy5mdWRldi5jby5uei9zaXRlcy9ldXJvcGVhbmdyZWVucy5ldS90aGVtZXMvZWdwMjAxNi9zcmMvc2Nzcy92YXJpYWJsZXMvX2JyZWFrcG9pbnRzLnNjc3NcIjtcbkBpbXBvcnQgXCIvc3J2L3d3dy9kZXYvZXVyb3BlYW5ncmVlbnMuZnVkZXYuY28ubnovc2l0ZXMvZXVyb3BlYW5ncmVlbnMuZXUvdGhlbWVzL2VncDIwMTYvc3JjL3Njc3MvdmFyaWFibGVzL19jb2xvcnMuc2Nzc1wiO1xuQGltcG9ydCBcIi9zcnYvd3d3L2Rldi9ldXJvcGVhbmdyZWVucy5mdWRldi5jby5uei9zaXRlcy9ldXJvcGVhbmdyZWVucy5ldS90aGVtZXMvZWdwMjAxNi9zcmMvc2Nzcy92YXJpYWJsZXMvX2RlZmF1bHRzLnNjc3NcIjtcbkBpbXBvcnQgXCIvc3J2L3d3dy9kZXYvZXVyb3BlYW5ncmVlbnMuZnVkZXYuY28ubnovc2l0ZXMvZXVyb3BlYW5ncmVlbnMuZXUvdGhlbWVzL2VncDIwMTYvc3JjL3Njc3MvdmFyaWFibGVzL19ncmlkLXNldHRpbmdzLnNjc3NcIjtcbkBpbXBvcnQgXCIvc3J2L3d3dy9kZXYvZXVyb3BlYW5ncmVlbnMuZnVkZXYuY28ubnovc2l0ZXMvZXVyb3BlYW5ncmVlbnMuZXUvdGhlbWVzL2VncDIwMTYvc3JjL3Njc3MvdmFyaWFibGVzL19pY29ucy5zY3NzXCI7XG5AaW1wb3J0IFwiL3Nydi93d3cvZGV2L2V1cm9wZWFuZ3JlZW5zLmZ1ZGV2LmNvLm56L3NpdGVzL2V1cm9wZWFuZ3JlZW5zLmV1L3RoZW1lcy9lZ3AyMDE2L3NyYy9zY3NzL3ZhcmlhYmxlcy9fbWl4aW5zLnNjc3NcIjtcbkBpbXBvcnQgXCIvc3J2L3d3dy9kZXYvZXVyb3BlYW5ncmVlbnMuZnVkZXYuY28ubnovc2l0ZXMvZXVyb3BlYW5ncmVlbnMuZXUvdGhlbWVzL2VncDIwMTYvc3JjL3Njc3MvdmFyaWFibGVzL192YXJpYWJsZXMuc2Nzc1wiO1xuO1xuQGltcG9ydCBcIm5lYXRcIjtcbkBpbXBvcnQgXCIvc3J2L3d3dy9kZXYvZXVyb3BlYW5ncmVlbnMuZnVkZXYuY28ubnovc2l0ZXMvZXVyb3BlYW5ncmVlbnMuZXUvdGhlbWVzL2VncDIwMTYvc3JjL3Njc3MvaGVscGVycy9jbGFzc2VzL19jbGVhcmZpeC5zY3NzXCI7XG5AaW1wb3J0IFwiL3Nydi93d3cvZGV2L2V1cm9wZWFuZ3JlZW5zLmZ1ZGV2LmNvLm56L3NpdGVzL2V1cm9wZWFuZ3JlZW5zLmV1L3RoZW1lcy9lZ3AyMDE2L3NyYy9zY3NzL2hlbHBlcnMvY2xhc3Nlcy9fZ3JpZC5zY3NzXCI7XG5AaW1wb3J0IFwiL3Nydi93d3cvZGV2L2V1cm9wZWFuZ3JlZW5zLmZ1ZGV2LmNvLm56L3NpdGVzL2V1cm9wZWFuZ3JlZW5zLmV1L3RoZW1lcy9lZ3AyMDE2L3NyYy9zY3NzL2hlbHBlcnMvZXh0ZW5kL19hY2Nlc3NpYmlsaXR5LnNjc3NcIjtcbkBpbXBvcnQgXCIvc3J2L3d3dy9kZXYvZXVyb3BlYW5ncmVlbnMuZnVkZXYuY28ubnovc2l0ZXMvZXVyb3BlYW5ncmVlbnMuZXUvdGhlbWVzL2VncDIwMTYvc3JjL3Njc3MvaGVscGVycy9leHRlbmQvX2J1dHRvbi5zY3NzXCI7XG5AaW1wb3J0IFwiL3Nydi93d3cvZGV2L2V1cm9wZWFuZ3JlZW5zLmZ1ZGV2LmNvLm56L3NpdGVzL2V1cm9wZWFuZ3JlZW5zLmV1L3RoZW1lcy9lZ3AyMDE2L3NyYy9zY3NzL2hlbHBlcnMvZnVuY3Rpb25zL19mdW5jdGlvbnMuc2Nzc1wiO1xuQGltcG9ydCBcIi9zcnYvd3d3L2Rldi9ldXJvcGVhbmdyZWVucy5mdWRldi5jby5uei9zaXRlcy9ldXJvcGVhbmdyZWVucy5ldS90aGVtZXMvZWdwMjAxNi9zcmMvc2Nzcy9oZWxwZXJzL21peGlucy9fYm9yZGVyLnNjc3NcIjtcbkBpbXBvcnQgXCIvc3J2L3d3dy9kZXYvZXVyb3BlYW5ncmVlbnMuZnVkZXYuY28ubnovc2l0ZXMvZXVyb3BlYW5ncmVlbnMuZXUvdGhlbWVzL2VncDIwMTYvc3JjL3Njc3MvaGVscGVycy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3NcIjtcbkBpbXBvcnQgXCIvc3J2L3d3dy9kZXYvZXVyb3BlYW5ncmVlbnMuZnVkZXYuY28ubnovc2l0ZXMvZXVyb3BlYW5ncmVlbnMuZXUvdGhlbWVzL2VncDIwMTYvc3JjL3Njc3MvaGVscGVycy9taXhpbnMvX2ljb25zLnNjc3NcIjtcbkBpbXBvcnQgXCIvc3J2L3d3dy9kZXYvZXVyb3BlYW5ncmVlbnMuZnVkZXYuY28ubnovc2l0ZXMvZXVyb3BlYW5ncmVlbnMuZXUvdGhlbWVzL2VncDIwMTYvc3JjL3Njc3MvaGVscGVycy9taXhpbnMvX2xheW91dC5zY3NzXCI7XG47XG5cbi8vIFByaW50XG5AaW1wb3J0IFwicHJpbnQvcHJpbnRcIjtcbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5bQ29sb3JzXVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRjb2xvci1ibHVlOiAjMTU2NWMwO1xuJGNvbG9yLWdyYXktZGFyazogIzMzMztcbiRjb2xvci1ncmF5LWRhcmstMjogIzJEMkIzMDtcbiRjb2xvci1ncmF5LWRhcmstMzogIzgxODE4MTtcbiRjb2xvci1ncmF5OiAjOTk5O1xuJGNvbG9yLWdyYXktMzogI2NjYztcbiRjb2xvci1ncmF5LWxpZ2h0OiAjREZERkRGO1xuJGNvbG9yLWdyYXktbGlnaHRlcjogI2VmZWZlZjtcbiRjb2xvci1ncmF5LWxpZ2h0ZXItMjogI2EzYTNhMztcbiRjb2xvci1ncmF5LWxpZ2h0ZXN0OiAjZjdmN2Y3O1xuJGNvbG9yLWdyZWVuOiAjNTdCNDVGO1xuJGNvbG9yLWdyZWVuLTI6ICM1N0I5NDc7XG4kY29sb3ItZ3JlZW4tMzogIzU3QTUwMDtcbiRjb2xvci1ncmVlbi00OiAjNDM5RTMyOyBcbiRjb2xvci1ncmVlbi1kYXJrOiAjMTY2NDREO1xuJGNvbG9yLWdyZWVuLWRhcmstMjogIzFEODYxMztcbiRjb2xvci15ZWxsb3c6ICNmZmRlMDA7XG4kY29sb3IteWVsbG93LTI6ICNmZmUzMDI7XG4kY29sb3Itb3JhbmdlOiAjZmY3NzMzO1xuJGNvbG9yLXdoaXRlOiAjZmZmZmZmO1xuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbltEZWZhdWx0c11cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBEZWZhdWx0IGJveC1zaXppbmcgYm9yZGVyIGJveFxuJGRlZmF1bHQtYm9yZGVyLWJveDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gRm9udGF3ZXNvbWUgcGF0aCB0byBmb250XG4kZmEtZm9udC1wYXRoOiBcIi4uL2ZvbnRzL2ZvbnQtYXdlc29tZVwiOyIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5bTmVhdCBzZXR0aW5nc11cblxuT3ZlcnJpZGUgdGhlIGRlZmF1bHQgbmVhdCBncmlkIHNldHRpbmdzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQGltcG9ydCBcIm5lYXQtaGVscGVyc1wiO1xuXG4vLyBTZXRzIHRoZSByZWxhdGl2ZSB3aWR0aCBvZiBhIHNpbmdsZSBncmlkIGNvbHVtbi4gVGhlIHVuaXQgdXNlZCBzaG91bGQgYmUgdGhlIHNhbWUgb25lIHVzZWQgdG8gZGVmaW5lIGAkZ3V0dGVyYC5cbiRjb2x1bW46IG1vZHVsYXItc2NhbGUoMywgMWVtLCAkZ29sZGVuKTtcblxuLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBndXR0ZXIuIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGNvbHVtbmAuXG4kZ3V0dGVyOiBtb2R1bGFyLXNjYWxlKDEsIDFlbSwgJGdvbGRlbik7XG5cbi8vIFNldHMgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkLiBJdHMgdmFsdWUgY2FuIGJlIG92ZXJyaWRkZW4gaW5zaWRlIGEgbWVkaWEgcXVlcnkgdXNpbmcgdGhlIGBtZWRpYSgpYCBtaXhpbi5cbiRncmlkLWNvbHVtbnM6IDEyO1xuXG4vLyBTZXRzIHRoZSBtYXgtd2lkdGggcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgdGhhdCBpbmNsdWRlcyBgb3V0ZXItY29udGFpbmVyKClgLlxuJG1heC13aWR0aDogMTIwMHB4O1xuXG4vLyBXaGVuIHNldCB0byB0cnVlLCBpdCBzZXRzIHRoZSBib3gtc2l6aW5nIHByb3BlcnR5IG9mIGFsbCBlbGVtZW50cyB0byBgYm9yZGVyLWJveGAuXG4kYm9yZGVyLWJveC1zaXppbmc6IHRydWU7XG5cbi8vIFNldHMgdGhlIGRlZmF1bHQgW21lZGlhIGZlYXR1cmVdIHRoYXQgYG1lZGlhKClgIGFuZCBgbmV3LWJyZWFrcG9pbnQoKWAgcmV2ZXJ0IHRvIHdoZW4gb25seSBhIGJyZWFrcG9pbnQgdmFsdWUgaXMgcGFzc2VkLlxuJGRlZmF1bHQtZmVhdHVyZTogbWluLXdpZHRoO1xuXG4vLyBTZXRzIHRoZSBkZWZhdWx0IGxheW91dCBkaXJlY3Rpb24gb2YgdGhlIGdyaWQuIENhbiBiZSBgTFRSYCBvciBgUlRMYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbiRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb246IExUUjtcblxuLy8vIERpc3BsYXlzIHRoZSB2aXN1YWwgZ3JpZCB3aGVuIHNldCB0byB0cnVlXG4kdmlzdWFsLWdyaWQ6IGZhbHNlO1xuXG4vLyBTZXRzIHRoZSB2aXN1YWwgZ3JpZCBjb2xvclxuJHZpc3VhbC1ncmlkLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodDtcblxuLy8gU2V0cyB0aGUgei1pbmRleCBwcm9wZXJ0eSBvZiB0aGUgdmlzdWFsIGdyaWQuIENhbiBiZSBiYWNrIChiZWhpbmQgY29udGVudCkgb3IgZnJvbnQgKGluIGZyb250IG9mIGNvbnRlbnQpLlxuJHZpc3VhbC1ncmlkLWluZGV4OiBmcm9udDtcblxuLy8gU2V0cyB0aGUgb3BhY2l0eSBwcm9wZXJ0eSBvZiB0aGUgdmlzdWFsIGdyaWRcbiR2aXN1YWwtZ3JpZC1vcGFjaXR5OiAuMTsiLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuW1ZhcmlhYmxlc11cblxuR2VuZXJhbCB2YXJpYWJsZXMgdXNlZCB0aHJvdWdob3V0IHRoZSBwcm9qZWN0LlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIFR5cG9ncmFwaHlcbiRqYWxkaTogJ2phbGRpJywgc2Fucy1zZXJpZjtcbiRoZWx2ZXRpY2E6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kcm9ib3RvOiBSb2JvdG8sICdyb2JvdG8nLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRyb2JvdG8tY29uZGVuc2VkOiAnUm9ib3RvIENvbmRlbnNlZCcsICdyb2JvdG9fY29uZGVuc2VkJywgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiRiYXNlLWZvbnQtZmFtaWx5OiAkaGVsdmV0aWNhO1xuJGhlYWRpbmctZm9udC1mYW1pbHk6ICRqYWxkaTtcblxuLy8gRm9udCBTaXplc1xuJGJhc2UtZm9udC1zaXplOiAxLjZyZW07XG4kZm9udC1zaXplLXNtYWxsZXI6IDEuMnJlbTtcbiRmb250LXNpemUtc21hbGw6IDEuNHJlbTtcbiRmb250LXNpemUtbGFyZ2U6IDEuOHJlbTtcbiRmb250LXNpemUtbGFyZ2VyOiAycmVtO1xuJGZvbnQtc2l6ZS1sYXJnZXItMjogMi4ycmVtO1xuJGZvbnQtc2l6ZS1wYWdlLXRpdGxlOiA1LjByZW07XG4kZm9udC1zaXplLWhlYWRpbmctMTogNC4zcmVtO1xuJGZvbnQtc2l6ZS1oZWFkaW5nLTI6IDMuNnJlbTtcbiRmb250LXNpemUtaGVhZGluZy0zOiAzLjByZW07XG4kZm9udC1zaXplLWhlYWRpbmctNDogMi40cmVtO1xuJGZvbnQtc2l6ZS1oZWFkaW5nLTU6IDIuMHJlbTtcbiRmb250LXNpemUtaGVhZGluZy02OiAkYmFzZS1mb250LXNpemU7XG5cbiRiYXNlLWxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG5cbi8vIExpbmUgaGVpZ2h0XG4kYmFzZS1saW5lLWhlaWdodDogMS43NTtcbiRoZWFkaW5nLWxpbmUtaGVpZ2h0OiAxLjI7XG5cbi8vIEJvcmRlclxuJGJhc2UtYm9yZGVyLWNvbG9yOiAkY29sb3ItZ3JheS1saWdodDtcbiRiYXNlLWJvcmRlcjogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcblxuLy8gQ29sb3JzXG4kYmFzZS1mb250LWNvbG9yOiAkY29sb3ItZ3JheS1kYXJrO1xuJGFjdGlvbi1jb2xvcjogJGNvbG9yLWJsdWU7XG4kYWN0aW9uLWZvY3VzLWNvbG9yOiAkY29sb3ItZ3JlZW4tZGFyaztcblxuLy8gQmFja2dyb3VuZCBDb2xvcnNcbiRiYXNlLWJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4kYnV0dG9uLWJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ncmF5LWRhcms7XG5cbi8vIEZvcm1zXG4kZm9ybS1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAzcHggcmdiYSgjMDAwLCAwLjA2KTtcbiRmb3JtLWJveC1zaGFkb3ctZm9jdXM6ICRmb3JtLWJveC1zaGFkb3csIDAgMCA1cHggYWRqdXN0LWNvbG9yKCRhY3Rpb24tY29sb3IsICRsaWdodG5lc3M6IC01JSwgJGFscGhhOiAtMC4zKTtcblxuLy8gQW5pbWF0aW9uc1xuJGJhc2UtZHVyYXRpb246IDE1MG1zO1xuJGJhc2UtdGltaW5nOiBlYXNlO1xuJHRpbWluZy1tZW51LXRyYW5zaXRpb246IDc1MG1zO1xuXG4vLyBPdGhlciBTaXplc1xuJGJhc2UtYm9yZGVyLXJhZGl1czogM3B4O1xuJGJhc2Utc3BhY2luZzogJGJhc2UtbGluZS1oZWlnaHQgKiAxLjZyZW07XG4kdGlueS1zcGFjaW5nOiAkYmFzZS1zcGFjaW5nIC8gNDtcbiRzbWFsbC1zcGFjaW5nOiAkYmFzZS1zcGFjaW5nIC8gMjtcbiRsYXJnZS1zcGFjaW5nOiAkYmFzZS1zcGFjaW5nICogMjtcbiRiYXNlLXotaW5kZXg6IDA7XG5cbi8vIEhlYWRlclxuJGhlYWRlci10b3AtaGVpZ2h0OiA2LjRyZW07XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBpZiAkYm9yZGVyLWJveC1zaXppbmcgPT0gdHJ1ZSB7XG4gIGh0bWwgeyAvLyBodHRwOi8vYml0Lmx5LzFxazJ0VlJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgKiB7XG4gICAgJixcbiAgICAmOjphZnRlcixcbiAgICAmOjpiZWZvcmUge1xuICAgICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5bQ2xlYXJmaXhdXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmNsZWFyZml4IHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbltHcmlkIGNsYXNzZXNdXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLnJvdyB7XG4gIEBpbmNsdWRlIHJvdygpO1xufVxuXG4uY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKCk7XG59XG5cbi8vIEdlbmVyYXRlIGNvbCBjbGFzc2VzXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAuY29sLSN7JGl9IHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoJGkpO1xuICB9XG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGVzaWduYXRlcyB0aGUgZWxlbWVudCBhcyBhIHJvdyBvZiBjb2x1bW5zIGluIHRoZSBncmlkIGxheW91dC4gSXQgY2xlYXJzIHRoZSBmbG9hdHMgb24gdGhlIGVsZW1lbnQgYW5kIHNldHMgaXRzIGRpc3BsYXkgcHJvcGVydHkuIFJvd3MgY2FuJ3QgYmUgbmVzdGVkLCBidXQgdGhlcmUgY2FuIGJlIG1vcmUgdGhhbiBvbmUgcm93IGVsZW1lbnTigJR3aXRoIGRpZmZlcmVudCBkaXNwbGF5IHByb3BlcnRpZXPigJRwZXIgbGF5b3V0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtkZWZhdWx0XVxuLy8vICBTZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IGFuZCB0aGUgZGlzcGxheSBjb250ZXh0IHRoYXQgd2lsbCBiZSB1c2VkIGJ5IGl0cyBjaGlsZHJlbi4gQ2FuIGJlIGBibG9ja2Agb3IgYHRhYmxlYC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFskZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uXVxuLy8vICBTZXRzIHRoZSBsYXlvdXQgZGlyZWN0aW9uLiBDYW4gYmUgYExUUmAgKGxlZnQtdG8tcmlnaHQpIG9yIGBSVExgIChyaWdodC10by1sZWZ0KS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAuZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgcm93KCk7XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgICp6b29tOiAxO1xuLy8vICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICB9XG4vLy9cbi8vLyAuZWxlbWVudDpiZWZvcmUsIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgIGNvbnRlbnQ6IFwiIFwiO1xuLy8vICAgZGlzcGxheTogdGFibGU7XG4vLy8gfVxuLy8vXG4vLy8gLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgY2xlYXI6IGJvdGg7XG4vLy8gfVxuXG5AbWl4aW4gcm93KCRkaXNwbGF5OiBkZWZhdWx0LCAkZGlyZWN0aW9uOiAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKSB7XG4gIEBpZiAkZGlyZWN0aW9uICE9ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24ge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJGRpcmVjdGlvbiBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbiAgfVxuXG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkZGlyZWN0aW9uICFnbG9iYWw7XG5cbiAgQGlmICRkaXNwbGF5ICE9IGRlZmF1bHQge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJGRpc3BsYXkgYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlzcGxheSgpey4uLn0gbWl4aW4uXCIpO1xuICB9XG5cbiAgQGlmICRkaXNwbGF5ID09IHRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBAaW5jbHVkZSBmaWxsLXBhcmVudDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICRjb250YWluZXItZGlzcGxheS10YWJsZTogdHJ1ZSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFnbG9iYWw7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgYSBvdXRlciBjb250YWluZXIgYnkgY2VudHJpbmcgaXQgaW4gdGhlIHZpZXdwb3J0LCBjbGVhcmluZyBpdHMgZmxvYXRzLCBhbmQgc2V0dGluZyBpdHMgYG1heC13aWR0aGAuXG4vLy8gQWx0aG91Z2ggb3B0aW9uYWwsIHVzaW5nIGBvdXRlci1jb250YWluZXJgIGlzIHJlY29tbWVuZGVkLiBUaGUgbWl4aW4gY2FuIGJlIGNhbGxlZCBvbiBtb3JlIHRoYW4gb25lIGVsZW1lbnQgcGVyIHBhZ2UsIGFzIGxvbmcgYXMgdGhleSBhcmUgbm90IG5lc3RlZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIFt1bml0XX0gJGxvY2FsLW1heC13aWR0aCBbJG1heC13aWR0aF1cbi8vLyAgIE1heCB3aWR0aCB0byBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50LiBDYW4gYmUgYSBwZXJjZW50YWdlIG9yIGEgbWVhc3VyZS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoMTAwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgICp6b29tOiAxO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50OmJlZm9yZSwgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgICBjb250ZW50OiBcIiBcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICB9XG5cbkBtaXhpbiBvdXRlci1jb250YWluZXIoJGxvY2FsLW1heC13aWR0aDogJG1heC13aWR0aCkge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgbWF4LXdpZHRoOiAkbG9jYWwtbWF4LXdpZHRoO1xuICBtYXJnaW46IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBjb2x1bW5zIGFuIGVsZW1lbnQgc2hvdWxkIHNwYW4uIElmIHRoZSBzZWxlY3RvciBpcyBuZXN0ZWQgdGhlIG51bWJlciBvZiBjb2x1bW5zIG9mIGl0cyBwYXJlbnQgZWxlbWVudCBzaG91bGQgYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IGFzIHdlbGwuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzcGFuXG4vLy8gICBBIGxpc3QgY29udGFpbmluZyBgJGNvbHVtbnNgLCB0aGUgdW5pdGxlc3MgbnVtYmVyIG9mIGNvbHVtbnMgdGhlIGVsZW1lbnQgc3BhbnMgKHJlcXVpcmVkKSwgYW5kIGAkY29udGFpbmVyLWNvbHVtbnNgLCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhlIHBhcmVudCBlbGVtZW50IHNwYW5zIChvcHRpb25hbCkuXG4vLy9cbi8vLyAgIElmIG9ubHkgb25lIHZhbHVlIGlzIHBhc3NlZCwgaXQgaXMgYXNzdW1lZCB0aGF0IGl0J3MgYCRjb2x1bW5zYCBhbmQgdGhhdCB0aGF0IGAkY29udGFpbmVyLWNvbHVtbnNgIGlzIGVxdWFsIHRvIGAkZ3JpZC1jb2x1bW5zYCwgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkLlxuLy8vXG4vLy8gICBUaGUgdmFsdWVzIGNhbiBiZSBzZXBhcmF0ZWQgd2l0aCBhbnkgc3RyaW5nIHN1Y2ggYXMgYG9mYCwgYC9gLCBldGMuXG4vLy9cbi8vLyAgIGAkY29sdW1uc2AgYWxzbyBhY2NlcHRzIGRlY2ltYWxzIGZvciB3aGVuIGl0J3MgbmVjZXNzYXJ5IHRvIGJyZWFrIG91dCBvZiB0aGUgc3RhbmRhcmQgZ3JpZC4gRS5nLiBQYXNzaW5nIGAyLjRgIGluIGEgc3RhbmRhcmQgMTIgY29sdW1uIGdyaWQgd2lsbCBkaXZpZGUgdGhlIHJvdyBpbnRvIDUgY29sdW1ucy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbYmxvY2tdXG4vLy8gICBTZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50LiBCeSBkZWZhdWx0IGl0IHNldHMgdGhlIGRpc3BsYXkgcHJvcGVydCBvZiB0aGUgZWxlbWVudCB0byBgYmxvY2tgLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYGJsb2NrLWNvbGxhcHNlYCwgaXQgYWxzbyByZW1vdmVzIHRoZSBtYXJnaW4gZ3V0dGVyIGJ5IGFkZGluZyBpdCB0byB0aGUgZWxlbWVudCB3aWR0aC5cbi8vL1xuLy8vICAgSWYgcGFzc2VkIGB0YWJsZWAsIGl0IHNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgdG8gYHRhYmxlLWNlbGxgIGFuZCBjYWxjdWxhdGVzIHRoZSB3aWR0aCBvZiB0aGUgZWxlbWVudCB3aXRob3V0IHRha2luZyBndXR0ZXJzIGludG8gY29uc2lkZXJhdGlvbi4gVGhlIHJlc3VsdCBkb2VzIG5vdCBhbGlnbiB3aXRoIHRoZSBibG9jay1iYXNlZCBncmlkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vL1xuLy8vICAgIC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMiBvZiA2KTtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuLy8vICAgICB3aWR0aDogNDguODIxMTclO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudCAubmVzdGVkLWVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogNC44MjkxNiU7XG4vLy8gICAgIHdpZHRoOiAzMC4xMTM4OSU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudDpsYXN0LWNoaWxkIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuXG5AbWl4aW4gc3Bhbi1jb2x1bW5zKCRzcGFuOiAkY29sdW1ucyBvZiAkY29udGFpbmVyLWNvbHVtbnMsICRkaXNwbGF5OiBibG9jaykge1xuICAkY29sdW1uczogbnRoKCRzcGFuLCAxKTtcbiAgJGNvbnRhaW5lci1jb2x1bW5zOiBjb250YWluZXItc3Bhbigkc3Bhbik7XG5cbiAgJHBhcmVudC1jb2x1bW5zOiBnZXQtcGFyZW50LWNvbHVtbnMoJGNvbnRhaW5lci1jb2x1bW5zKSAhZ2xvYmFsO1xuXG4gICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gICRkaXNwbGF5LXRhYmxlOiBpcy1kaXNwbGF5LXRhYmxlKCRjb250YWluZXItZGlzcGxheS10YWJsZSwgJGRpc3BsYXkpO1xuXG4gIEBpZiAkZGlzcGxheS10YWJsZSAge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGNvbHVtbnMgLyAkY29udGFpbmVyLWNvbHVtbnMpO1xuICB9IEBlbHNlIHtcbiAgICBmbG9hdDogI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTtcblxuICAgIEBpZiAkZGlzcGxheSAhPSBuby1kaXNwbGF5IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSB7XG4gICAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICdjb2xsYXBzZScgYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkLiBVc2UgJ2Jsb2NrLWNvbGxhcHNlJyBpbnN0ZWFkLlwiKTtcbiAgICB9XG5cbiAgICBAaWYgJGRpc3BsYXkgPT0gY29sbGFwc2Ugb3IgJGRpc3BsYXkgPT0gYmxvY2stY29sbGFwc2Uge1xuICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKSArIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB9XG5cbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnMpO1xuICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQ7XG4kZmctY29sdW1uOiAkY29sdW1uO1xuJGZnLWd1dHRlcjogJGd1dHRlcjtcbiRmZy1tYXgtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWRlZmF1bHQ7XG4kbGF5b3V0LWRpcmVjdGlvbjogTFRSICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcbn1cblxuQGZ1bmN0aW9uIGdldC1wYXJlbnQtY29sdW1ucygkY29sdW1ucykge1xuICBAaWYgJGNvbHVtbnMgIT0gJGdyaWQtY29sdW1ucyB7XG4gICAgJHBhcmVudC1jb2x1bW5zOiAkY29sdW1ucyAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHBhcmVudC1jb2x1bW5zO1xufVxuXG5AZnVuY3Rpb24gaXMtZGlzcGxheS10YWJsZSgkY29udGFpbmVyLWlzLWRpc3BsYXktdGFibGUsICRkaXNwbGF5KSB7XG4gIEByZXR1cm4gJGNvbnRhaW5lci1pcy1kaXNwbGF5LXRhYmxlID09IHRydWUgb3IgJGRpc3BsYXkgPT0gdGFibGU7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuW0Z1bmN0aW9uc11cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi8vLyBNYXAgZGVlcCBnZXRcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAka2V5cyAtIEtleSBjaGFpblxuLy8vIEByZXR1cm4geyp9IC0gRGVzaXJlZCB2YWx1ZVxuQGZ1bmN0aW9uIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICB9XG5cbiAgQHJldHVybiAkbWFwO1xufVxuXG4vLy8gVXBkYXRlIGEga2V5IGRlZXBseSBuZXN0ZWRcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB1cGRhdGVcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRrZXlzIC0gS2V5cyB0byBhY2Nlc3MgdG8gdmFsdWUgdG8gdXBkYXRlXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWUgLSBOZXcgdmFsdWUgKGxhc3QgbWVtYmVyIG9mIGAka2V5c2ApXG4vLy8gQHJldHVybiB7TWFwfSAtIFVwZGF0ZWQgbWFwXG5AZnVuY3Rpb24gbWFwLWRlZXAtc2V0KCRtYXAsICRrZXlzLi4uKSB7XG4gICRtYXAtbGlzdDogKCRtYXApO1xuICAkcmVzdWx0OiBudWxsO1xuXG4gIEBpZiBsZW5ndGgoJGtleXMpID09IDIge1xuICAgIEByZXR1cm4gbWFwLW1lcmdlKCRtYXAsIChudGgoJGtleXMsIDEpOiBudGgoJGtleXMsIC0xKSkpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGtleXMpIC0gMiB7XG4gICAgJG1hcC1saXN0OiBhcHBlbmQoJG1hcC1saXN0LCBtYXAtZ2V0KG50aCgkbWFwLWxpc3QsIC0xKSwgbnRoKCRrZXlzLCAkaSkpKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSBsZW5ndGgoJG1hcC1saXN0KSB0aHJvdWdoIDEge1xuICAgICRyZXN1bHQ6IG1hcC1tZXJnZShudGgoJG1hcC1saXN0LCAkaSksIChudGgoJGtleXMsICRpKTogaWYoJGkgPT0gbGVuZ3RoKCRtYXAtbGlzdCksIG50aCgka2V5cywgLTEpLCAkcmVzdWx0KSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLyBtYXAtZ2V0XG5AZnVuY3Rpb24gbWcoJG1hcCwgJGtleSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJLZXk6IGAjeyRrZXl9YCBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBsaXN0LlwiO1xuICB9XG59XG5cbi8vIG1hcC1kZWVwLWdldCBmdW5jdGlvblxuQGZ1bmN0aW9uIG1kZygkbWFwLCAka2V5cy4uLikge1xuICBAcmV0dXJuIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLik7XG59XG5cbi8vIG1hcC1kZWVwLXNldCBmdW5jdGlvblxuQGZ1bmN0aW9uIG1kcygkbWFwLCAka2V5cy4uLikge1xuICBAcmV0dXJuIG1hcC1kZWVwLXNldCgkbWFwLCAka2V5cy4uLik7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuW1ByaW50IHN0eWxlc2hlZXRdXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8iXX0= */
