/* Variables  */
/* Aliases  */
#dashboard-widgets #sugar_calendar_dashboard_widget .inside {
  margin: 0;
  padding: 0;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block {
  position: relative;
  padding: 0 12px;
  margin-top: 12px;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block.sugar-calendar-dash-widget-block-event-list {
  padding: 0;
  margin-top: 0;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block h3 {
  display: inline-block;
  line-height: 2;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block p {
  margin-top: 0;
  margin-bottom: 0;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 13px;
  background-color: #FAFAFA;
  border-bottom: 1px solid #DCDCDE;
  margin-top: 0;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-title h3 {
  margin: 0;
  color: #1D2327;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.22;
  display: block;
  flex: 1;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-title .button {
  height: 30px;
  padding: 0 10px;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 4px;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-title .button.button-secondary {
  background-color: #F7F7F7;
  color: #2271B1;
  border: 1px solid #2271B1;
  box-shadow: none;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-title .button.button-secondary span::before {
  content: "";
  display: inline-block;
  mask: url("../images/icons/add.svg") center center no-repeat;
  width: 11px;
  height: 11px;
  background-color: #2271B1;
  margin-right: 4px;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-title .button.button-secondary:hover, #dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-title .button.button-secondary:focus {
  background-color: #f0f0f1;
  border-color: #0a4b78;
  color: #0a4b78;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list {
  display: flex;
  flex-direction: column;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item {
  display: flex;
  flex-direction: row;
  gap: 8px;
  padding: 10px 13px;
  border-bottom: 1px solid #dcdcde;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item-col:not(:last-child) {
  overflow: hidden;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item-col:first-child {
  min-width: 42px;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item-col:last-child {
  margin-left: auto;
  display: flex;
  align-items: center;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-image-container {
  border-radius: 4px;
  overflow: hidden;
  width: 42px;
  height: 42px;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-image-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-title {
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-title a {
  color: #2271B1;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.4;
  text-decoration: none;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-title a:hover, #dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-title a:focus {
  color: #0a4b78;
  text-decoration: underline;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details {
  color: #787C82;
  font-size: 12px;
  line-height: 1.19;
  display: block;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details > * {
  display: inline-flex;
  vertical-align: middle;
  margin-right: 6px;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details .sugar-calendar-dash-widget-event-recurring {
  width: 12px;
  height: 12px;
  background: url("data:image/svg+xml,%0A%3Csvg width='12' height='13' viewBox='0 0 12 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 5.75C0 3.6875 1.66406 2 3.75 2H7.5V1.25C7.5 0.96875 7.66406 0.6875 7.94531 0.570312C8.22656 0.453125 8.55469 0.523438 8.76562 0.734375L10.2656 2.23438C10.5703 2.51562 10.5703 3.00781 10.2656 3.28906L8.76562 4.78906C8.55469 5 8.22656 5.07031 7.94531 4.95312C7.66406 4.83594 7.5 4.55469 7.5 4.25V3.5H3.75C2.50781 3.5 1.5 4.50781 1.5 5.75C1.5 6.17188 1.14844 6.5 0.75 6.5C0.328125 6.5 0 6.17188 0 5.75ZM12 7.25C12 9.33594 10.3125 11 8.25 11H4.5V11.75C4.5 12.0547 4.3125 12.3359 4.03125 12.4531C3.75 12.5703 3.42188 12.5 3.21094 12.2891L1.71094 10.7891C1.40625 10.5078 1.40625 10.0156 1.71094 9.73438L3.21094 8.23438C3.42188 8.02344 3.75 7.95312 4.03125 8.07031C4.3125 8.1875 4.5 8.46875 4.5 8.75V9.5H8.25C9.49219 9.5 10.5 8.49219 10.5 7.25C10.5 6.85156 10.8281 6.5 11.25 6.5C11.6484 6.5 12 6.85156 12 7.25Z' fill='%23A7AAAD'/%3E%3C/svg%3E%0A") no-repeat center center;
  background-size: contain;
}
@media (min-width: 1801px) {
  #dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details .sugar-calendar-dash-widget-event-venue {
    display: none;
  }
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details-extra {
  display: flex;
  flex-direction: row;
  position: relative;
  align-items: center;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details-extra .sugar-calendar-dash-widget-event-rsvp-remaining,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details-extra .sugar-calendar-dash-widget-event-ticket-remaining,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details-extra .sugar-calendar-dash-widget-event-detail-remaining {
  font-size: 12px;
  color: #787C82;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details-extra .sugar-calendar-dash-widget-event-extra-tooltip {
  display: none;
  position: absolute;
  top: -30px;
  right: 0;
  width: max-content;
  padding: 5px 10px;
  background-color: #50575e;
  z-index: 1000;
  color: white;
  border-radius: 4px;
  font-size: 12px;
  line-height: 1.2;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details-extra:hover .sugar-calendar-dash-widget-event-extra-tooltip {
  display: block;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details-extra .sugar-calendar-dash-widget-event-extra-icon {
  margin-left: 8px;
  width: 15px;
  height: 15px;
  background-color: #A7AAAD;
  display: block;
  position: relative;
  cursor: pointer;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details-extra .sugar-calendar-dash-widget-event-extra-icon-rsvp {
  mask: url("../images/icons/rsvp.svg") center center no-repeat;
  mask-size: contain;
  top: 0px;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details-extra .sugar-calendar-dash-widget-event-extra-icon-ticketing {
  mask: url("../images/icons/ticketing.svg") center center no-repeat;
  mask-size: contain;
  top: 0px;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details-extra .sugar-calendar-dash-widget-event-extra-icon:hover, #dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list .sugar-calendar-dash-widget-block-event-list-item .sugar-calendar-dash-widget-event-details-extra .sugar-calendar-dash-widget-event-extra-icon:focus {
  background-color: #2271b1;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list-empty {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-bottom: 1px solid #dcdcde;
  margin-top: 0;
  height: 150px;
  gap: 10px;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list-empty .sugar-calendar-dash-widget-icon-container img {
  display: block;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-block-event-list-empty h3 {
  margin: 0;
  color: #787C82;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.22;
  text-align: center;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-recommended-plugin-block {
  position: relative;
  padding: 13px;
  margin-top: 0px;
  display: flex;
  gap: 20px;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block .sugar-calendar-dash-widget-recommended-plugin,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-recommended-plugin-block .sugar-calendar-dash-widget-recommended-plugin {
  font-size: 13px;
  line-height: 1.19;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block .sugar-calendar-dash-widget-recommended-plugin .recommended,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-recommended-plugin-block .sugar-calendar-dash-widget-recommended-plugin .recommended {
  color: #787C82;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block .sugar-calendar-dash-widget-recommended-plugin strong,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-recommended-plugin-block .sugar-calendar-dash-widget-recommended-plugin strong {
  font-weight: 500;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block .sugar-calendar-dash-widget-recommended-plugin .sep,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-recommended-plugin-block .sugar-calendar-dash-widget-recommended-plugin .sep {
  margin: 0 3px;
  color: #787C82;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block .sugar-calendar-dash-widget-recommended-plugin .sep.sep-vertical,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-recommended-plugin-block .sugar-calendar-dash-widget-recommended-plugin .sep.sep-vertical {
  margin: 0 3px;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block .sugar-calendar-dash-widget-recommended-plugin .action-links a,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-recommended-plugin-block .sugar-calendar-dash-widget-recommended-plugin .action-links a {
  color: #2271B1;
  text-decoration: none;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block .sugar-calendar-dash-widget-recommended-plugin .action-links a:hover, #dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block .sugar-calendar-dash-widget-recommended-plugin .action-links a:focus,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-recommended-plugin-block .sugar-calendar-dash-widget-recommended-plugin .action-links a:hover,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-recommended-plugin-block .sugar-calendar-dash-widget-recommended-plugin .action-links a:focus {
  color: #0a4b78;
  text-decoration: underline;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block .sugar-calendar-dash-widget-dismiss-icon,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-recommended-plugin-block .sugar-calendar-dash-widget-dismiss-icon {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  margin-left: auto;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block .sugar-calendar-dash-widget-dismiss-icon .dashicons,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-recommended-plugin-block .sugar-calendar-dash-widget-dismiss-icon .dashicons {
  color: #787C82;
  font-size: 16px;
  width: 16px;
  height: 16px;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block .sugar-calendar-dash-widget-dismiss-icon .dashicons:hover,
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-recommended-plugin-block .sugar-calendar-dash-widget-dismiss-icon .dashicons:hover {
  color: #d63638;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block {
  padding: 16px 12px;
  color: #787C82;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block span {
  line-height: 140% !important;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block strong {
  color: #2c3338;
}
#dashboard-widgets #sugar_calendar_dashboard_widget .inside .sugar-calendar-dash-widget .sugar-calendar-dash-widget-education-block a {
  color: #008a20;
  font-weight: 500;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3NzL2FkbWluL192YXJpYWJsZXMuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluLWRhc2hib2FyZC5zY3NzIiwiYXNzZXRzL3Njc3MvdmVuZG9yL19pbmNsdWRlLW1lZGlhLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7QUFtRUE7QUM5REU7RUFDQztFQUNBOztBQUlDO0VBQ0M7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7O0FBR0Q7RUFDQztFQUNBOztBQUtGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQSxXRGlGYTtFQ2hGYjtFQUNBO0VBQ0E7O0FBR0Q7RUFDQztFQUNBO0VBQ0EsV0R1RWM7RUN0RWQ7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFDQTs7QUFPSjtFQUNDO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdBO0VBQ0M7O0FBR0Q7RUFDQzs7QUFJRDtFQUNDO0VBQ0E7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUNBOztBQUtGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0EsV0RUVztFQ1VYO0VBQ0E7O0FBRUE7RUFDQztFQUNBOztBQUtIO0VBQ0MsT0Q5RWM7RUMrRWQsV0R4QmE7RUN5QmI7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQzZiSjtFRHhiSTtJQUNDOzs7QUFLSDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtFQUdDLFdEMURZO0VDMkRaOztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esa0JEL0tXO0VDZ0xYO0VBQ0EsT0RqS2M7RUNrS2Q7RUFDQSxXRHpFWTtFQzBFWjs7QUFJQTtFQUNDOztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDQztFQUNBO0VBQ0E7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7O0FBR0Q7RUFDQyxrQkQxTmE7O0FDa09sQjtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUM7RUFDQzs7QUFJRjtFQUNDO0VBQ0EsT0QzTGU7RUM0TGY7RUFDQSxXRHBJYTtFQ3FJYjtFQUNBOztBQUtGO0FBQUE7RUFFQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7RUFDQyxXRHJKYztFQ3NKZDs7QUFFQTtBQUFBO0VBQ0M7O0FBR0Q7QUFBQTtFQUNDOztBQUdEO0FBQUE7RUFDQztFQUNBOztBQUVBO0FBQUE7RUFDQzs7QUFLRDtBQUFBO0VBQ0M7RUFDQTs7QUFFQTtBQUFBO0FBQUE7RUFDQztFQUNBOztBQU1KO0FBQUE7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7RUFDQztFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0VBQ0M7O0FBT0o7RUFDQztFQUVBLE9EdFFnQjs7QUN3UWhCO0VBQ0M7O0FBR0Q7RUFDQyxPRGxVYTs7QUNxVWQ7RUFDQyxPRDFUbUI7RUMyVG5CIiwiZmlsZSI6ImFzc2V0cy9jc3MvYWRtaW4tZGFzaGJvYXJkLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFkbWluIHZhcmlhYmxlcy5cblxuLyogVmFyaWFibGVzICAqL1xuJHJhZGl1cy1tZDogNHB4O1xuJHJhZGl1cy1sZzogNnB4O1xuJHJhZGl1cy1zbTogM3B4O1xuJHNwYWNpbmcteHM6IDVweDtcbiRzcGFjaW5nLXNtOiAxMHB4O1xuJHNwYWNpbmctbWQ6IDIwcHg7XG4kc3BhY2luZy1sZzogMzBweDtcbiRzcGFjaW5nLXhsOiA1MHB4O1xuJGNvbG9yLWJyYW5kLW9yYW5nZS01MDogI0ZGODg0NUZGO1xuJGNvbG9yLWJyYW5kLW9yYW5nZS03MDogI0NCNkQzN0ZGO1xuJGNvbG9yLWJyYW5kLWJsdWUtMDogI2YwZjZmY2ZmO1xuJGNvbG9yLWJyYW5kLWJsdWUtNTA6ICMyMjcxQjFGRjtcbiRjb2xvci1icmFuZC1ibHVlLWJyaWdodC01MDogIzAwQTBEMkZGO1xuJGNvbG9yLWJyYW5kLWJsdWUtNzA6ICMwQTRCNzhGRjtcbiRjb2xvci1uZXV0cmFsLTEwMDogIzEwMTUxNztcbiRjb2xvci1uZXV0cmFsLTkwOiAjMUQyMzI3RkY7XG4kY29sb3ItbmV1dHJhbC04MDogIzJDMzMzOEZGO1xuJGNvbG9yLW5ldXRyYWwtNzA6ICMzQzQzNEFGRjtcbiRjb2xvci1uZXV0cmFsLTYwOiAjNTA1NzVFRkY7XG4kY29sb3ItbmV1dHJhbC01MDogIzY0Njk3MEZGO1xuJGNvbG9yLW5ldXRyYWwtMzA6ICM4QzhGOTRGRjtcbiRjb2xvci1uZXV0cmFsLTEwOiAjQzNDNEM3RkY7XG4kY29sb3ItbmV1dHJhbC0yMDogI0E3QUFBREZGO1xuJGNvbG9yLW5ldXRyYWwtNTogI0RDRENERUZGO1xuJGNvbG9yLXV0aWxpdHkteWVsbG93LTA6ICNGQ0Y5RTg7XG4kY29sb3ItdXRpbGl0eS15ZWxsb3ctMzA6ICNGMkQ2NzU7XG4kY29sb3ItdXRpbGl0eS15ZWxsb3ctNTA6ICNEQkE2MTdGRjtcbiRjb2xvci11dGlsaXR5LXJlZC01MDogI0Q2MzYzOEZGO1xuJGNvbG9yLXV0aWxpdHktZ3JlZW4tNTA6ICMwMDhBMjBGRjtcbiRyYWRpdXMtbWQ6IDRweDtcbiRyYWRpdXMtbGc6IDZweDtcbiRyYWRpdXMteGw6IDlweDtcbiRjb2xvci1uZXV0cmFsLTM6ICNGMEYwRjFGRjtcbiRjb2xvci1uZXV0cmFsLTA6ICNGNkY3RjdGRjtcbiRjb2xvci11dGlsaXR5LXdoaXRlOiAjRkZGRkZGRkY7XG4kY29sb3ItYnJhbmQtb3JhbmdlLTA6ICNGRkYzRUNGRjtcbiRjb2xvci1icmFuZC1ibHVlLWJyaWdodC0wOiAjRTVGNUZBRkY7XG4kY29sb3ItdXRpbGl0eS1ncmVlbi0wOiAjRURGQUVGRkY7XG4kY29sb3ItdXRpbGl0eS1yZWQtMDogI0ZDRjBGMUZGO1xuJGNvbG9yLWJyYW5kLW9yYW5nZS0zMDogI0ZGQTA2QUZGO1xuJGNvbG9yLWJyYW5kLWJsdWUtYnJpZ2h0LTMwOiAjNjZDNkU0RkY7XG4kY29sb3ItdXRpbGl0eS1ncmVlbi0zMDogIzAwQkEzN0ZGO1xuJGNvbG9yLXV0aWxpdHktcmVkLTMwOiAjRjg2MzY4RkY7XG4kY29sb3Itd29yZHByZXNzLWJsdWU6ICMyMjcxQjFGRjtcbiRjb2xvci11dGlsaXR5LWdyYXktMDogI0Y2RjZGNkZGO1xuJGNvbG9yLWFjY2VudC1vcmFuZ2UtNTA6ICNGRTlFNjhGRjtcbiRjb2xvci1hY2NlbnQtb3JhbmdlLTA6ICNGRkYwRThGRjtcbiRjb2xvci1hY2NlbnQtcmVkLTUwOiAjRkY3MzY4RkY7XG4kY29sb3ItYWNjZW50LXJlZC0wOiAjRkZFQUU4RkY7XG4kY29sb3ItYWNjZW50LXBpbmstNTA6ICNERjVCOUFGRjtcbiRjb2xvci1hY2NlbnQtcGluay0wOiAjRkFFNkYwRkY7XG4kY29sb3ItYWNjZW50LXB1cnBsZS01MDogIzg2NTlDMkZGO1xuJGNvbG9yLWFjY2VudC1wdXJwbGUtMDogI0VERTZGNkZGO1xuJGNvbG9yLWFjY2VudC1ibHVlLTUwOiAjNTY4NUJERkY7XG4kY29sb3ItYWNjZW50LWJsdWUtMDogI0U2RURGNUZGO1xuJGNvbG9yLWFjY2VudC10ZWFsLTUwOiAjNEJCOUE3RkY7XG4kY29sb3ItYWNjZW50LXRlYWwtMDogI0U0RjVGMkZGO1xuJGNvbG9yLWFjY2VudC1ncmVlbi01MDogIzU3RDQ2NkZGO1xuJGNvbG9yLWFjY2VudC1ncmVlbi0wOiAjRTZGOUU4RkY7XG4kY29sb3ItYWNjZW50LXllbGxvdy01MDogI0ZGQzQ2OUZGO1xuJGNvbG9yLWFjY2VudC15ZWxsb3ctMDogI0ZGRjZFOUZGO1xuJGNhbGVuZGFyLXRleHQtcHJpbWFyeTogIzAwMDAwMEQ5O1xuJGNhbGVuZGFyLXRleHQtc2Vjb25kYXJ5OiByZ2JhKDAsIDAsIDAsIDAuNzApO1xuJGNhbGVuZGFyLXRleHQtdGVydGlhcnk6ICMwMDAwMDA2NjtcbiRjYWxlbmRhci1iYWNrZ3JvdW5kOiAjMDAwMDAwMDg7XG5cbi8qIEFsaWFzZXMgICovXG4kdGV4dC10ZXh0LXByaW1hcnk6ICRjb2xvci1uZXV0cmFsLTgwO1xuJHRleHQtdGV4dC1zZWNvbmRhcnk6ICRjb2xvci1uZXV0cmFsLTYwO1xuJHRleHQtdGV4dC10ZXJ0aWFyeTogIzc4N0M4MjtcbiR0ZXh0LXRleHQtaGVhZGluZzogJGNvbG9yLW5ldXRyYWwtOTA7XG4kdGV4dC10ZXh0LXRpdGxlOiAkY29sb3ItbmV1dHJhbC0xMDA7XG4kYnV0dG9ucy1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kOiAkY29sb3ItYnJhbmQtb3JhbmdlLTUwO1xuJGJ1dHRvbnMtYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAkY29sb3ItYnJhbmQtYmx1ZS01MDtcbiRidXR0b25zLWJ1dHRvbi10ZXJ0aWFyeS1iYWNrZ3JvdW5kOiAkY29sb3ItbmV1dHJhbC0wO1xuJGZpZWxkcy1maWVsZC1ib3JkZXI6ICRjb2xvci1uZXV0cmFsLTEwO1xuJGZpZWxkLWJvcmRlci1lcnJvcjogJGNvbG9yLXV0aWxpdHktcmVkLTUwO1xuJHN1cmZhY2Utc3VyZmFjZS1ib3JkZXI6ICRjb2xvci1uZXV0cmFsLTEwO1xuJHN1cmZhY2Utc3VyZmFjZS1kaXZpZGVyOiAkY29sb3ItbmV1dHJhbC01O1xuJGJ1dHRvbnMtYnV0dG9uLXByaW1hcnktYmFja2dyb3VuZC0taG92ZXI6ICRjb2xvci1icmFuZC1vcmFuZ2UtNzA7XG4kYnV0dG9ucy1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQtLWhvdmVyOiAkY29sb3ItYnJhbmQtYmx1ZS03MDtcbiRidXR0b25zLWJ1dHRvbi10ZXJ0aWFyeS1ib3JkZXI6ICRjb2xvci1uZXV0cmFsLTMwO1xuJGJ1dHRvbnMtYnV0dG9uLXByaW1hcnktdGV4dDogJGNvbG9yLXV0aWxpdHktd2hpdGU7XG4kYnV0dG9ucy1idXR0b24tc2Vjb25kYXJ5LXRleHQ6ICRjb2xvci11dGlsaXR5LXdoaXRlO1xuJGJ1dHRvbnMtYnV0dG9uLXRlcnRpYXJ5LXRleHQ6ICRjb2xvci1uZXV0cmFsLTYwO1xuJGJ1dHRvbnMtYnV0dG9uLXRlcnRpYXJ5LWJvcmRlci0taG92ZXI6ICRjb2xvci1uZXV0cmFsLTYwO1xuJGJ1dHRvbnMtYnV0dG9uLXRlcnRpYXJ5LWJhY2tncm91bmQtLS1ob3ZlcjogJGNvbG9yLW5ldXRyYWwtMztcbiRidXR0b25zLWJ1dHRvbi10ZXJ0aWFyeS10ZXh0LS1ob3ZlcjogJGNvbG9yLW5ldXRyYWwtODA7XG4kYnV0dG9ucy1idXR0b24td3AtcHJpbWFyeS1iYWNrZ3JvdW5kOiAjMjI3MUIxO1xuJHRleHQtdGV4dC13aGl0ZTogJGNvbG9yLXV0aWxpdHktd2hpdGU7XG4kdGV4dC10ZXh0LWxpbms6ICRjb2xvci1icmFuZC1ibHVlLTUwO1xuJHRleHQtdGV4dC1zdWNjZXNzOiAkY29sb3ItdXRpbGl0eS1ncmVlbi01MDtcbiR0ZXh0LXRleHQtZXJyb3I6ICRjb2xvci11dGlsaXR5LXJlZC01MDtcbiR0ZXh0LXRleHQtd2FybmluZzogJGNvbG9yLXV0aWxpdHkteWVsbG93LTUwO1xuJGZpZWxkcy1maWVsZC1ib3JkZXItLWZvY3VzOiAkY29sb3ItYnJhbmQtYmx1ZS01MDtcbiRmaWVsZHMtZmllbGQtYm9yZGVyLWVycm9yOiAkY29sb3ItdXRpbGl0eS1yZWQtNTA7XG4kZmllbGRzLWZpZWxkLWNob2ljZS1vZmY6ICRjb2xvci1uZXV0cmFsLTMwO1xuJGZpZWxkcy1maWVsZC1jaG9pY2Utb246ICRjb2xvci1icmFuZC1ibHVlLTUwO1xuJGJhZGdlcy1iYWRnZS1vcmFuZ2UtdGV4dDogJGNvbG9yLWJyYW5kLW9yYW5nZS0zMDtcbiRiYWRnZXMtYmFkZ2Utb3JhbmdlLWJhY2tncm91bmQ6ICRjb2xvci1icmFuZC1vcmFuZ2UtMDtcbiRiYWRnZXMtYmFkZ2UtYmx1ZS1iYWNrZ3JvdW5kOiAkY29sb3ItYnJhbmQtYmx1ZS1icmlnaHQtMDtcbiRiYWRnZXMtYmFkZ2UtYmx1ZS10ZXh0OiAkY29sb3ItYnJhbmQtYmx1ZS1icmlnaHQtMzA7XG4kYmFkZ2VzLWJhZGdlLWdyZWVuLWJhY2tncm91bmQ6ICRjb2xvci11dGlsaXR5LWdyZWVuLTA7XG4kYmFkZ2VzLWJhZGdlLWdyZWVuLXRleHQ6ICRjb2xvci11dGlsaXR5LWdyZWVuLTUwO1xuJGJhZGdlcy1iYWRnZS1yZWQtYmFja2dyb3VuZDogJGNvbG9yLXV0aWxpdHktcmVkLTA7XG4kYmFkZ2VzLWJhZGdlLXJlZC10ZXh0OiAkY29sb3ItdXRpbGl0eS1yZWQtMzA7XG4kYmFkZ2VzLWJhZGdlLW5ldXRyYWwtYmFja2dyb3VuZDogJGNvbG9yLW5ldXRyYWwtNTtcbiRiYWRnZXMtYmFkZ2UtbmV1dHJhbC10ZXh0OiAkY29sb3ItbmV1dHJhbC0zMDtcbiRyYWRpdXMtcmFkaXVzLXRhYmxlOiAkcmFkaXVzLW1kO1xuJHJhZGl1cy1yYWRpdXMtYnV0dG9uOiAkcmFkaXVzLW1kO1xuJHJhZGl1cy1yYWRpdXMtZmllbGQ6ICRyYWRpdXMtbWQ7XG4kcmFkaXVzLXJhZGl1cy1iYWRnZTogJHJhZGl1cy1zbTtcbiRzdXJmYWNlLXN1cmZhY2UtYm9yZGVyLXByaW1hcnk6ICRjb2xvci1icmFuZC1vcmFuZ2UtNTA7XG4kc3VyZmFjZS1zdXJmYWNlLWJhY2tncm91bmQ6ICRjb2xvci1uZXV0cmFsLTM7XG4kc3VyZmFjZS1zdXJmYWNlLWJhY2tncm91bmQtd2hpdGU6ICRjb2xvci11dGlsaXR5LXdoaXRlO1xuJHRleHQtdGV4dC1pY29uOiAkY29sb3ItbmV1dHJhbC0yMDtcbiR0ZXh0LXRleHQtaWNvbi0taG92ZXI6ICRjb2xvci1uZXV0cmFsLTUwO1xuJHN1cmZhY2Utc3VyZmFjZS1iYWNrZ3JvdW5kLWxpZ2h0OiAjRjdGN0Y3O1xuJGZpZWxkcy1maWVsZC1jaG9pY2Utb2ZmLS1ob3ZlcjogJGNvbG9yLW5ldXRyYWwtNTA7XG4kZmllbGRzLWZpZWxkLWNob2ljZS1vbi0taG92ZXI6ICRjb2xvci1icmFuZC1ibHVlLTcwO1xuJFdvcmRQcmVzcy1GaWVsZC1Cb3JkZXI6ICM4QzhGOTQ7XG5cbi8vIEZvbnQgc2l6ZXMuXG4kdGV4dC1mb250LXNpemUtMnhzOiAxMXB4O1xuJHRleHQtZm9udC1zaXplLXhzOiAxMnB4O1xuJHRleHQtZm9udC1zaXplLXNzOiAxM3B4O1xuJHRleHQtZm9udC1zaXplLXM6IDE0cHg7XG4kdGV4dC1mb250LXNpemUtbTogMTZweDtcbiR0ZXh0LWZvbnQtc2l6ZS1sOiAxOHB4O1xuJHRleHQtZm9udC1zaXplLWxsOiAyMHB4O1xuJHRleHQtZm9udC1zaXplLWxsbDogMjJweDtcbiR0ZXh0LWZvbnQtc2l6ZS14bDogMjRweDtcbiR0ZXh0LWZvbnQtc2l6ZS14eGw6IDI4cHg7XG5cbi8vIFRyYW5zaXRpb25zLlxuJHRyYW5zaXRpb25zLXRyYW5zaXRpb24tc2xvd2VzdDogLjUwcztcbiR0cmFuc2l0aW9ucy10cmFuc2l0aW9uLXNsb3dlcjogLjQwcztcbiR0cmFuc2l0aW9ucy10cmFuc2l0aW9uLXNsb3c6IC4yNXM7XG4kdHJhbnNpdGlvbnMtdHJhbnNpdGlvbi1ub3JtYWw6IC4xNXM7XG4kdHJhbnNpdGlvbnMtdHJhbnNpdGlvbi1mYXN0OiAuMDVzO1xuIiwiQGltcG9ydCAnYWRtaW4vdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvci9pbmNsdWRlLW1lZGlhJztcblxuI2Rhc2hib2FyZC13aWRnZXRzIHtcblxuXHQjc3VnYXJfY2FsZW5kYXJfZGFzaGJvYXJkX3dpZGdldCB7XG5cblx0XHQuaW5zaWRlIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdC5zdWdhci1jYWxlbmRhci1kYXNoLXdpZGdldCB7XG5cblx0XHRcdFx0LnN1Z2FyLWNhbGVuZGFyLWRhc2gtd2lkZ2V0LWJsb2NrIHtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0cGFkZGluZzogMCAxMnB4O1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDEycHg7XG5cblx0XHRcdFx0XHQmLnN1Z2FyLWNhbGVuZGFyLWRhc2gtd2lkZ2V0LWJsb2NrLWV2ZW50LWxpc3Qge1xuXHRcdFx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aDMge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDI7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cCB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBUaXRsZSBhbmQgYnV0dG9uIHNlY3Rpb24uXG5cdFx0XHRcdC5zdWdhci1jYWxlbmRhci1kYXNoLXdpZGdldC1ibG9jay10aXRsZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0XHRwYWRkaW5nOiAxM3B4O1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNGQUZBRkE7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEQ0RDREU7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMDtcblxuXHRcdFx0XHRcdGgzIHtcblx0XHRcdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0XHRcdGNvbG9yOiAjMUQyMzI3O1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogJHRleHQtZm9udC1zaXplLXM7XG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMS4yMjtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdFx0ZmxleDogMTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQuYnV0dG9uIHtcblx0XHRcdFx0XHRcdGhlaWdodDogMzBweDtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDAgMTBweDtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogJHRleHQtZm9udC1zaXplLXNzO1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRcdFx0XHRnYXA6IDRweDtcblxuXHRcdFx0XHRcdFx0Ji5idXR0b24tc2Vjb25kYXJ5IHtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0Y3RjdGNztcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICMyMjcxQjE7XG5cdFx0XHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICMyMjcxQjE7XG5cdFx0XHRcdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cblx0XHRcdFx0XHRcdFx0c3Bhbjo6YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdFx0XHRtYXNrOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9hZGQuc3ZnJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg6IDExcHg7XG5cdFx0XHRcdFx0XHRcdFx0aGVpZ2h0OiAxMXB4O1xuXHRcdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICMyMjcxQjE7XG5cdFx0XHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA0cHg7XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHQmOmhvdmVyLCAmOmZvY3VzIHtcblx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYxO1xuXHRcdFx0XHRcdFx0XHRcdGJvcmRlci1jb2xvcjogIzBhNGI3ODtcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogIzBhNGI3ODtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEl0ZW0gbGlzdC5cblx0XHRcdFx0LnN1Z2FyLWNhbGVuZGFyLWRhc2gtd2lkZ2V0LWJsb2NrLWV2ZW50LWxpc3Qge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuXHRcdFx0XHRcdC5zdWdhci1jYWxlbmRhci1kYXNoLXdpZGdldC1ibG9jay1ldmVudC1saXN0LWl0ZW0ge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRcdFx0XHRnYXA6IDhweDtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDEwcHggMTNweDtcblx0XHRcdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItbmV1dHJhbC01O1xuXG5cdFx0XHRcdFx0XHQvLyBFdmVyeSBjb2wgZXhjZXB0IGxhc3QuXG5cdFx0XHRcdFx0XHQmLWNvbDpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdFx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ji1jb2w6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRcdFx0XHRtaW4td2lkdGg6IDQycHg7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIExhc3Qgc3VnYXItY2FsZW5kYXItZGFzaC13aWRnZXQtYmxvY2stZXZlbnQtbGlzdC1pdGVtLWNvbC5cblx0XHRcdFx0XHRcdCYtY29sOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0LnN1Z2FyLWNhbGVuZGFyLWRhc2gtd2lkZ2V0LWV2ZW50LWltYWdlLWNvbnRhaW5lciB7XG5cdFx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRcdFx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0XHRcdFx0d2lkdGg6IDQycHg7XG5cdFx0XHRcdFx0XHRcdGhlaWdodDogNDJweDtcblxuXHRcdFx0XHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0XHRcdFx0XHRvYmplY3QtZml0OiBjb3Zlcjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQvLyBFdmVudCB0aXRsZSBhbmQgZGV0YWlsc1xuXHRcdFx0XHRcdFx0LnN1Z2FyLWNhbGVuZGFyLWRhc2gtd2lkZ2V0LWV2ZW50LXRpdGxlIHtcblx0XHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogNHB4O1xuXHRcdFx0XHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0XHRcdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdFx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHRcdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogIzIyNzFCMTtcblx0XHRcdFx0XHRcdFx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogJHRleHQtZm9udC1zaXplLXM7XG5cdFx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuNDtcblx0XHRcdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdFx0XHRcdFx0XHQmOmhvdmVyLCAmOmZvY3VzIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAjMGE0Yjc4O1xuXHRcdFx0XHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC5zdWdhci1jYWxlbmRhci1kYXNoLXdpZGdldC1ldmVudC1kZXRhaWxzIHtcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICR0ZXh0LXRleHQtdGVydGlhcnk7XG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogJHRleHQtZm9udC1zaXplLXhzO1xuXHRcdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMS4xOTtcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRcdFx0XHRcdFx0Jj4qIHtcblx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRcdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogNnB4O1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0LnN1Z2FyLWNhbGVuZGFyLWRhc2gtd2lkZ2V0LWV2ZW50LXJlY3VycmluZyB7XG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg6IDEycHg7XG5cdFx0XHRcdFx0XHRcdFx0aGVpZ2h0OiAxMnB4O1xuXHRcdFx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlMEElM0Nzdmcgd2lkdGg9JzEyJyBoZWlnaHQ9JzEzJyB2aWV3Qm94PScwIDAgMTIgMTMnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00wIDUuNzVDMCAzLjY4NzUgMS42NjQwNiAyIDMuNzUgMkg3LjVWMS4yNUM3LjUgMC45Njg3NSA3LjY2NDA2IDAuNjg3NSA3Ljk0NTMxIDAuNTcwMzEyQzguMjI2NTYgMC40NTMxMjUgOC41NTQ2OSAwLjUyMzQzOCA4Ljc2NTYyIDAuNzM0Mzc1TDEwLjI2NTYgMi4yMzQzOEMxMC41NzAzIDIuNTE1NjIgMTAuNTcwMyAzLjAwNzgxIDEwLjI2NTYgMy4yODkwNkw4Ljc2NTYyIDQuNzg5MDZDOC41NTQ2OSA1IDguMjI2NTYgNS4wNzAzMSA3Ljk0NTMxIDQuOTUzMTJDNy42NjQwNiA0LjgzNTk0IDcuNSA0LjU1NDY5IDcuNSA0LjI1VjMuNUgzLjc1QzIuNTA3ODEgMy41IDEuNSA0LjUwNzgxIDEuNSA1Ljc1QzEuNSA2LjE3MTg4IDEuMTQ4NDQgNi41IDAuNzUgNi41QzAuMzI4MTI1IDYuNSAwIDYuMTcxODggMCA1Ljc1Wk0xMiA3LjI1QzEyIDkuMzM1OTQgMTAuMzEyNSAxMSA4LjI1IDExSDQuNVYxMS43NUM0LjUgMTIuMDU0NyA0LjMxMjUgMTIuMzM1OSA0LjAzMTI1IDEyLjQ1MzFDMy43NSAxMi41NzAzIDMuNDIxODggMTIuNSAzLjIxMDk0IDEyLjI4OTFMMS43MTA5NCAxMC43ODkxQzEuNDA2MjUgMTAuNTA3OCAxLjQwNjI1IDEwLjAxNTYgMS43MTA5NCA5LjczNDM4TDMuMjEwOTQgOC4yMzQzOEMzLjQyMTg4IDguMDIzNDQgMy43NSA3Ljk1MzEyIDQuMDMxMjUgOC4wNzAzMUM0LjMxMjUgOC4xODc1IDQuNSA4LjQ2ODc1IDQuNSA4Ljc1VjkuNUg4LjI1QzkuNDkyMTkgOS41IDEwLjUgOC40OTIxOSAxMC41IDcuMjVDMTAuNSA2Ljg1MTU2IDEwLjgyODEgNi41IDExLjI1IDYuNUMxMS42NDg0IDYuNSAxMiA2Ljg1MTU2IDEyIDcuMjVaJyBmaWxsPSclMjNBN0FBQUQnLyUzRSUzQy9zdmclM0UlMEFcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG5cdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0Ly8gSGlkZSB2ZW51ZSBvbiBtZWRpYSBsYXJnZXIgdGhhbiAxODAwcHguXG5cdFx0XHRcdFx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+MTgwMHB4Jykge1xuXHRcdFx0XHRcdFx0XHRcdC5zdWdhci1jYWxlbmRhci1kYXNoLXdpZGdldC1ldmVudC12ZW51ZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQuc3VnYXItY2FsZW5kYXItZGFzaC13aWRnZXQtZXZlbnQtZGV0YWlscy1leHRyYSB7XG5cdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdFx0XHRcdFx0XHQuc3VnYXItY2FsZW5kYXItZGFzaC13aWRnZXQtZXZlbnQtcnN2cC1yZW1haW5pbmcsXG5cdFx0XHRcdFx0XHRcdC5zdWdhci1jYWxlbmRhci1kYXNoLXdpZGdldC1ldmVudC10aWNrZXQtcmVtYWluaW5nLFxuXHRcdFx0XHRcdFx0XHQuc3VnYXItY2FsZW5kYXItZGFzaC13aWRnZXQtZXZlbnQtZGV0YWlsLXJlbWFpbmluZyB7XG5cdFx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAkdGV4dC1mb250LXNpemUteHM7XG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I6ICM3ODdDODI7XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHQuc3VnYXItY2FsZW5kYXItZGFzaC13aWRnZXQtZXZlbnQtZXh0cmEtdG9vbHRpcCB7XG5cdFx0XHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0XHRcdFx0dG9wOiAtMzBweDtcblx0XHRcdFx0XHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0XHRcdFx0XHR3aWR0aDogbWF4LWNvbnRlbnQ7XG5cdFx0XHRcdFx0XHRcdFx0cGFkZGluZzogNXB4IDEwcHg7XG5cdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW5ldXRyYWwtNjA7XG5cdFx0XHRcdFx0XHRcdFx0ei1pbmRleDogMTAwMDtcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogJGNvbG9yLXV0aWxpdHktd2hpdGU7XG5cdFx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRcdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogJHRleHQtZm9udC1zaXplLXhzO1xuXHRcdFx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdFx0XHQuc3VnYXItY2FsZW5kYXItZGFzaC13aWRnZXQtZXZlbnQtZXh0cmEtdG9vbHRpcCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHQuc3VnYXItY2FsZW5kYXItZGFzaC13aWRnZXQtZXZlbnQtZXh0cmEtaWNvbiB7XG5cdFx0XHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDhweDtcblx0XHRcdFx0XHRcdFx0XHR3aWR0aDogMTVweDtcblx0XHRcdFx0XHRcdFx0XHRoZWlnaHQ6IDE1cHg7XG5cdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0E3QUFBRDtcblx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHRcdFx0XHRcdFx0Ji1yc3ZwIHtcblx0XHRcdFx0XHRcdFx0XHRcdG1hc2s6IHVybCgnLi4vaW1hZ2VzL2ljb25zL3JzdnAuc3ZnJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXNrLXNpemU6IGNvbnRhaW47XG5cdFx0XHRcdFx0XHRcdFx0XHR0b3A6IDBweDtcblx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHQmLXRpY2tldGluZyB7XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXNrOiB1cmwoJy4uL2ltYWdlcy9pY29ucy90aWNrZXRpbmcuc3ZnJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXNrLXNpemU6IGNvbnRhaW47XG5cdFx0XHRcdFx0XHRcdFx0XHR0b3A6IDBweDtcblx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHQmOmhvdmVyLCAmOmZvY3VzIHtcblx0XHRcdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1icmFuZC1ibHVlLTUwO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEVtcHR5IGV2ZW50IGxpc3Qgc3R5bGluZy5cblx0XHRcdFx0LnN1Z2FyLWNhbGVuZGFyLWRhc2gtd2lkZ2V0LWJsb2NrLWV2ZW50LWxpc3QtZW1wdHkge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItbmV1dHJhbC01O1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxNTBweDtcblx0XHRcdFx0XHRnYXA6IDEwcHg7XG5cblx0XHRcdFx0XHQvLyBJY29uIGNvbnRhaW5lci5cblx0XHRcdFx0XHQuc3VnYXItY2FsZW5kYXItZGFzaC13aWRnZXQtaWNvbi1jb250YWluZXIge1xuXHRcdFx0XHRcdFx0aW1nIHtcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aDMge1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdFx0Y29sb3I6ICR0ZXh0LXRleHQtdGVydGlhcnk7XG5cdFx0XHRcdFx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAkdGV4dC1mb250LXNpemUtcztcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjIyO1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJlY29tbWVuZGVkIHBsdWdpbiBibG9jay5cblx0XHRcdFx0LnN1Z2FyLWNhbGVuZGFyLWRhc2gtd2lkZ2V0LWVkdWNhdGlvbi1ibG9jayxcblx0XHRcdFx0LnN1Z2FyLWNhbGVuZGFyLWRhc2gtd2lkZ2V0LXJlY29tbWVuZGVkLXBsdWdpbi1ibG9jayB7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDEzcHg7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMHB4O1xuXHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0Z2FwOiAyMHB4O1xuXG5cdFx0XHRcdFx0LnN1Z2FyLWNhbGVuZGFyLWRhc2gtd2lkZ2V0LXJlY29tbWVuZGVkLXBsdWdpbiB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6ICR0ZXh0LWZvbnQtc2l6ZS1zcztcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjE5O1xuXG5cdFx0XHRcdFx0XHQucmVjb21tZW5kZWQge1xuXHRcdFx0XHRcdFx0XHRjb2xvcjogIzc4N0M4Mjtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0c3Ryb25nIHtcblx0XHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0LnNlcCB7XG5cdFx0XHRcdFx0XHRcdG1hcmdpbjogMCAzcHg7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiAjNzg3QzgyO1xuXG5cdFx0XHRcdFx0XHRcdCYuc2VwLXZlcnRpY2FsIHtcblx0XHRcdFx0XHRcdFx0XHRtYXJnaW46IDAgM3B4O1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC5hY3Rpb24tbGlua3Mge1xuXHRcdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogIzIyNzFCMTtcblx0XHRcdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdFx0XHRcdFx0XHQmOmhvdmVyLCAmOmZvY3VzIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAjMGE0Yjc4O1xuXHRcdFx0XHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LnN1Z2FyLWNhbGVuZGFyLWRhc2gtd2lkZ2V0LWRpc21pc3MtaWNvbiB7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG5cdFx0XHRcdFx0XHQuZGFzaGljb25zIHtcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICM3ODdDODI7XG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0XHRcdFx0d2lkdGg6IDE2cHg7XG5cdFx0XHRcdFx0XHRcdGhlaWdodDogMTZweDtcblxuXHRcdFx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogI2Q2MzYzODtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEVkdWNhdGlvbiBibG9ja1xuXHRcdFx0XHQuc3VnYXItY2FsZW5kYXItZGFzaC13aWRnZXQtZWR1Y2F0aW9uLWJsb2NrIHtcblx0XHRcdFx0XHRwYWRkaW5nOiAxNnB4IDEycHg7XG5cblx0XHRcdFx0XHRjb2xvcjogJHRleHQtdGV4dC10ZXJ0aWFyeTtcblxuXHRcdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDE0MCUhaW1wb3J0YW50O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHN0cm9uZyB7XG5cdFx0XHRcdFx0XHRjb2xvcjogJHRleHQtdGV4dC1wcmltYXJ5O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRjb2xvci11dGlsaXR5LWdyZWVuLTUwO1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2Mi4wLjBcbi8vXG4vLyAgICAgICAgaHR0cHM6Ly9lZHVhcmRvYm91Y2FzLmdpdGh1Yi5pby9pbmNsdWRlLW1lZGlhXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEtpdHR5IEdpcmF1ZGVsIChAa2l0dHlnaXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG5AY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cbkB1c2UgJ3Nhc3M6bWF0aCc7XG5AdXNlICdzYXNzOm1hcCc7XG5AdXNlICdzYXNzOmxpc3QnO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ3Bob25lJzogMzIwcHgsXG4gICd0YWJsZXQnOiA3NjhweCxcbiAgJ3NtX21vbml0b3InOiA5OTJweCxcbiAgJ2Rlc2t0b3AnOiAxMDI0cHgsXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzpcbiAgICAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOlxuICAgICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KScsXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDAsXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIG1ldGEuZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge1xuICB9XG59XG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHtcbn1cblxuLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy9cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAuZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xuXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xuICAgIEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgQGlmIG5vdCBtYXAuaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XG4gICAgICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuICAgICAgQGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG4gICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSlcbiAgICAgIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBsaXN0LmluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHJpbmcuaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHJpbmcuaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHJpbmcuc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXRyaW0oJHBhcnNlZC1kaW1lbnNpb24pO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHJpbmcubGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihsaXN0LmluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0cmluZy5pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHJpbmcuc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0cmluZy5sZW5ndGgoJG9wZXJhdG9yKSk7XG4gICR0cmltbWVkVmFsdWU6IHN0ci10cmltKCR2YWx1ZSk7XG5cbiAgQGlmIG1hcC5oYXMta2V5KCRicmVha3BvaW50cywgJHRyaW1tZWRWYWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLmdldCgkYnJlYWtwb2ludHMsICR0cmltbWVkVmFsdWUpO1xuICB9IEBlbHNlIHtcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdHJpbW1lZFZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLmdldCgkdW5pdC1pbnRlcnZhbHMsIG1hdGgudW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICAgJF86IGltLWxvZygnVW5rbm93biB1bml0IGAje21hdGgudW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICBAaWYgbWFwLmhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuICAgIEByZXR1cm4gbWFwLmdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxpc3QubGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGlzdC5sZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGxpc3QuYXBwZW5kKCRyZXN1bHQsIGxpc3QubnRoKCRsaXN0LCAkaSksIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cblxuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIG1ldGEudHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiBtZXRhLnR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgJF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0cmluZy5zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoXG4gICAgJzAnOiAwLFxuICAgICcxJzogMSxcbiAgICAnMic6IDIsXG4gICAgJzMnOiAzLFxuICAgICc0JzogNCxcbiAgICAnNSc6IDUsXG4gICAgJzYnOiA2LFxuICAgICc3JzogNyxcbiAgICAnOCc6IDgsXG4gICAgJzknOiA5LFxuICApO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgJHZhbHVlOiBzdHJpbmcuc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyaW5nLmxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHJpbmcuc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdChsaXN0LmluZGV4KG1hcC5rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHJpbmcuc2xpY2UoJHZhbHVlLCAkaSkpO1xuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC5nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hdGguZGl2KG1hcC5nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpLCAkZGlnaXRzKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKFxuICAgICdweCc6IDFweCxcbiAgICAnY20nOiAxY20sXG4gICAgJ21tJzogMW1tLFxuICAgICclJzogMSUsXG4gICAgJ2NoJzogMWNoLFxuICAgICdwYyc6IDFwYyxcbiAgICAnaW4nOiAxaW4sXG4gICAgJ2VtJzogMWVtLFxuICAgICdyZW0nOiAxcmVtLFxuICAgICdwdCc6IDFwdCxcbiAgICAnZXgnOiAxZXgsXG4gICAgJ3Z3JzogMXZ3LFxuICAgICd2aCc6IDF2aCxcbiAgICAndm1pbic6IDF2bWluLFxuICAgICd2bWF4JzogMXZtYXgsXG4gICk7XG5cbiAgQGlmIG5vdCBsaXN0LmluZGV4KG1hcC5rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC5nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSmFjayBNY05pY29sXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cbi8vL1xuLy8vIFRyaW1zIGEgc3RyaW5nIG9mIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlc1xuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHJpbmcgLSBWYWx1ZSB0byBiZSB0cmltbWVkXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9XG4vLy9cblxuQGZ1bmN0aW9uIHN0ci10cmltKCRzdHJpbmcpIHtcbiAgQGlmIChzdHItc2xpY2UoJHN0cmluZywgMSwgMSkgPT0gJyAnKSB7XG4gICAgQHJldHVybiBzdHItdHJpbShzdHItc2xpY2UoJHN0cmluZywgMikpO1xuICB9IEBlbHNlIGlmIChzdHItc2xpY2UoJHN0cmluZywgc3RyLWxlbmd0aCgkc3RyaW5nKSwgLTEpID09ICcgJykge1xuICAgIEByZXR1cm4gc3RyLXRyaW0oc3RyLXNsaWNlKCRzdHJpbmcsIDEsIC0yKSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHN0cmluZztcbiAgfVxufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLm1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC5tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGlzdC5sZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpXG4gIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxpc3QubGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3tzdHJpbmcudW5xdW90ZShwYXJzZS1leHByZXNzaW9uKGxpc3QubnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgJHNsaWNlZC1jb25kaXRpb25zOiBzbGljZSgkY29uZGl0aW9ucywgMik7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkc2xpY2VkLWNvbmRpdGlvbnMuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0= */
