.jobs__item {
  display: block;
  padding: 40px 50px 40px 0;
  width: 100%;
  border-top: 1px dashed rgba(15,17,18,0.3);
}
.jobs__item:last-child {
  border-bottom: 1px dashed rgba(15,17,18,0.3);
}
@media only screen and (max-width: 768px) {
  .jobs__item {
    padding: 40px 140px 40px 0;
  }
}
@media only screen and (max-width: 420px) {
  .jobs__item {
    padding: 40px 100px 40px 0;
  }
}
.jobs--white .jobs__item {
  border-color: rgba(255,255,255,0.3);
}
.jobs--white .jobs__item:first-child {
  border-top: 0;
}
.jobs--white .job__data {
  color: rgba(255,255,255,0.5);
}
.jobs--white .job__value {
  color: #fff;
}
.jobs--white .job h4 {
  color: #fff;
}
.job__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (max-width: 768px) {
  .job__row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 30px;
  }
}
.job__part {
  width: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 40px;
}
.job__part:nth-child(2) {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.job__part:first-child .job__value {
  margin-top: 7px;
}
@media only screen and (max-width: 768px) {
  .job__part {
    width: 100%;
  }
}
@media only screen and (max-width: 420px) {
  .job__part {
    gap: 20px;
  }
}
.job__data,
.job__value {
  font-size: 14px;
  line-height: 21px;
}
.job__data {
  color: rgba(15,17,18,0.5);
}
.job__value {
  margin-top: 18px;
  padding-right: 40px;
}
@media only screen and (max-width: 768px) {
  .job__value {
    margin-top: 8px;
  }
}
.job__block:nth-child(2) {
  width: 25%;
}
.vacancy {
  padding-top: 50px;
  border-top: 1px dashed rgba(15,17,18,0.3);
}
.vacancy-info {
  margin-top: 32px;
}
.vacancy-info__photo {
  width: 44px;
  height: 44px;
  borde-radius: 50%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  margin-right: 16px;
}
.vacancy-info__row,
.vacancy-info__block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
@media only screen and (max-width: 768px) {
  .vacancy-info__block:first-child {
    width: 100%;
  }
}
.vacancy-info__row {
  gap: 40px;
}
@media only screen and (max-width: 768px) {
  .vacancy-info__row {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 32px;
  }
}
.vacancy-info__data,
.vacancy-info__value {
  font-size: 14px;
  line-height: 21px;
}
.vacancy-info__data {
  color: rgba(15,17,18,0.5);
}
.vacancy-info__value {
  margin-top: 2px;
}
.vacancy-info__value a {
  display: inline-block;
}
.vacancy-info__value a:hover {
  color: #4664ff;
}
.vacancy-info__value a:not(:first-child) {
  position: relative;
  padding-left: 14px;
  margin-left: 12px;
}
.vacancy-info__value a:not(:first-child):before {
  position: absolute;
  content: '';
  width: 4px;
  height: 4px;
  background-color: #0f1112;
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}
.vacancy__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 70px;
}
@media only screen and (max-width: 820px) {
  .vacancy__wrapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}
.vacancy__main,
.vacancy-side {
  width: 100%;
}
.vacancy__main {
  max-width: 690px;
}
.vacancy-side {
  max-width: 335px;
}
@media only screen and (max-width: 680px) {
  .vacancy-side {
    max-width: 100%;
  }
}
@media only screen and (max-width: 520px) {
  .vacancy-side .vacancy-side__btn .btn {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
.vacancy-side__data,
.vacancy-side__value {
  font-size: 14px;
  line-height: 21px;
}
.vacancy-side__data {
  color: rgba(15,17,18,0.5);
}
.vacancy-side__value {
  margin-top: 2px;
}
.vacancy-side__main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px;
  padding-bottom: 24px;
}
.vacancy-side__btn {
  padding-top: 24px;
  border-top: 1px dashed rgba(15,17,18,0.3);
}
.vacancy__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 50px;
}
.vacancy__content ul {
  list-style-type: square;
  padding-left: 20px;
  margin-top: 15px;
}
.vacancy__subtitle {
  font-size: 16px;
  line-height: 24px;
  font-weight: bold;
}
.vacancy__block h2,
.vacancy__block h3,
.vacancy__block h4 {
  font-size: 16px;
  line-height: 24px;
  font-weight: bold;
  margin-bottom: 20px;
  text-transform: capitalize;
}
.vacancy__block p {
  margin-top: 24px;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImpvYnMuc3R5bCIsImpvYnMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3J1cHR1cmUvcnVwdHVyZS9pbmRleC5zdHlsIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlJO0VBQ0ksY0FBUTtFQUNSLHlCQUFRO0VBQ1IsV0FBTTtFQUNOLHlDQUFXO0FDSG5CO0FESVE7RUFDSSw0Q0FBYztBQ0YxQjtBQ3VJVztFQUFBO0lGbElDLDBCQUFRO0VDRGxCO0FBQ0Y7QUNrSVc7RUFBQTtJRi9IQywwQkFBUTtFQ0NsQjtBQUNGO0FERVk7RUFDSSxtQ0FBYTtBQ0E3QjtBRENnQjtFQUNJLGFBQVc7QUNDL0I7QURDWTtFQUNJLDRCQUFNO0FDQ3RCO0FEQVk7RUFDSSxXQUFNO0FDRXRCO0FERFk7RUFDSSxXQUFNO0FDR3RCO0FEQUk7RUFDSSxvQkFBUTtFQUFSLG9CQUFRO0VBQVIsYUFBUTtFQUNSLHlCQUFZO01BQVosc0JBQVk7VUFBWixtQkFBWTtFQUNaLHdCQUFnQjtNQUFoQixxQkFBZ0I7VUFBaEIsdUJBQWdCO0FDRXhCO0FDeUdXO0VBQUE7SUZ4R0MsNEJBQWU7SUFBZiw2QkFBZTtRQUFmLDBCQUFlO1lBQWYsc0JBQWU7SUFDZix3QkFBWTtRQUFaLHFCQUFZO1lBQVosdUJBQVk7SUFDWixTQUFJO0VDR2Q7QUFDRjtBREZJO0VBQ0ksVUFBTTtFQUNOLG9CQUFRO0VBQVIsb0JBQVE7RUFBUixhQUFRO0VBQ1IseUJBQVk7TUFBWixzQkFBWTtVQUFaLG1CQUFZO0VBQ1osdUJBQWdCO01BQWhCLG9CQUFnQjtVQUFoQiwyQkFBZ0I7RUFDaEIsbUJBQVU7TUFBVixlQUFVO0VBQ1YsU0FBSTtBQ0laO0FESFE7RUFDSSx5QkFBZ0I7TUFBaEIsc0JBQWdCO1VBQWhCLDhCQUFnQjtBQ0s1QjtBRERnQjtFQUNJLGVBQVc7QUNHL0I7QUNvRlc7RUFBQTtJRnBGQyxXQUFNO0VDSWhCO0FBQ0Y7QUMrRVc7RUFBQTtJRmpGQyxTQUFJO0VDTWQ7QUFDRjtBRExJOztFQUVJLGVBQVU7RUFDVixpQkFBWTtBQ09wQjtBRE5JO0VBQ0kseUJBQU07QUNRZDtBRFBJO0VBQ0ksZ0JBQVc7RUFDWCxtQkFBYztBQ1N0QjtBQzhEVztFQUFBO0lGcEVDLGVBQVc7RUNVckI7QUFDRjtBRFJRO0VBQ0ksVUFBTTtBQ1VsQjtBRFBBO0VBQ0ksaUJBQVk7RUFDWix5Q0FBVztBQ1NmO0FEUkk7RUFDSSxnQkFBVztBQ1VuQjtBRFRRO0VBQ0ksV0FBTTtFQUNOLFlBQU87RUFDUCxpQkFBYTtFQUNiLHNCQUFnQjtFQUNoQiwyQkFBb0I7RUFDcEIsNEJBQWtCO0VBQ2xCLGtCQUFhO0FDV3pCO0FEVlE7O0VBRUksb0JBQVE7RUFBUixvQkFBUTtFQUFSLGFBQVE7RUFDUix5QkFBWTtNQUFaLHNCQUFZO1VBQVosbUJBQVk7RUFDWix1QkFBZ0I7TUFBaEIsb0JBQWdCO1VBQWhCLDJCQUFnQjtBQ1k1QjtBQ2dDVztFQUFBO0lGdkNTLFdBQU07RUNXeEI7QUFDRjtBRFZRO0VBQ0ksU0FBSTtBQ1loQjtBQ3dCVztFQUFBO0lGakNLLG1CQUFVO1FBQVYsZUFBVTtJQUNWLFNBQUk7RUNhbEI7QUFDRjtBRFpROztFQUVJLGVBQVU7RUFDVixpQkFBWTtBQ2N4QjtBRGJRO0VBQ0kseUJBQU07QUNlbEI7QURkUTtFQUNJLGVBQVc7QUNnQnZCO0FEZlk7RUFDSSxxQkFBUTtBQ2lCeEI7QURoQmdCO0VBQ0ksY0FBTTtBQ2tCMUI7QURqQmdCO0VBQ0ksa0JBQVM7RUFDVCxrQkFBYTtFQUNiLGlCQUFZO0FDbUJoQztBRGxCb0I7RUFDSSxrQkFBUztFQUNULFdBQVE7RUFDUixVQUFNO0VBQ04sV0FBTztFQUNQLHlCQUFpQjtFQUNqQixPQUFLO0VBQ0wsTUFBSTtFQUNKLFNBQU87RUFDUCxZQUFPO0FDb0IvQjtBRGpCSTtFQUNJLG9CQUFRO0VBQVIsb0JBQVE7RUFBUixhQUFRO0VBQ1Isd0JBQVk7TUFBWixxQkFBWTtVQUFaLHVCQUFZO0VBQ1oseUJBQWdCO01BQWhCLHNCQUFnQjtVQUFoQiw4QkFBZ0I7RUFDaEIsU0FBSTtBQ21CWjtBQ3JCVztFQUFBO0lGS0MsNEJBQWU7SUFBZiw4QkFBZTtRQUFmLGtDQUFlO1lBQWYsOEJBQWU7RUNvQnpCO0FBQ0Y7QURuQkk7O0VBRUksV0FBTTtBQ3FCZDtBRGxCSTtFQUNJLGdCQUFVO0FDb0JsQjtBRG5CSTtFQUNJLGdCQUFVO0FDcUJsQjtBQ3BDVztFQUFBO0lGa0JDLGVBQVU7RUNzQnBCO0FBQ0Y7QUN6Q1c7RUZ3QmE7SUFDSSxvQkFBUTtJQUFSLG9CQUFRO0lBQVIsYUFBUTtFQ29CbEM7QUFDRjtBRGxCUTs7RUFFSSxlQUFVO0VBQ1YsaUJBQVk7QUNvQnhCO0FEbEJRO0VBQ0kseUJBQU07QUNvQmxCO0FEbkJRO0VBQ0ksZUFBVztBQ3FCdkI7QURuQlE7RUFDSSxvQkFBUTtFQUFSLG9CQUFRO0VBQVIsYUFBUTtFQUNSLDRCQUFlO0VBQWYsNkJBQWU7TUFBZiwwQkFBZTtVQUFmLHNCQUFlO0VBQ2YsU0FBSTtFQUNKLG9CQUFlO0FDcUIzQjtBRG5CUTtFQUNJLGlCQUFZO0VBQ1oseUNBQVc7QUNxQnZCO0FEbEJJO0VBQ0ksb0JBQVE7RUFBUixvQkFBUTtFQUFSLGFBQVE7RUFDUiw0QkFBZTtFQUFmLDZCQUFlO01BQWYsMEJBQWU7VUFBZixzQkFBZTtFQUNmLFNBQUk7QUNvQlo7QURsQlE7RUFDSSx1QkFBZ0I7RUFDaEIsa0JBQWE7RUFDYixnQkFBVztBQ29CdkI7QURsQkk7RUFDSSxlQUFVO0VBQ1YsaUJBQVk7RUFDWixpQkFBWTtBQ29CcEI7QURqQlE7OztFQUNJLGVBQVU7RUFDVixpQkFBWTtFQUNaLGlCQUFZO0VBQ1osbUJBQWM7RUFDZCwwQkFBZTtBQ3FCM0I7QURwQlE7RUFDSSxnQkFBVztBQ3NCdkIiLCJmaWxlIjoiam9icy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdzdXBwb3J0cy9fdmFycy5zdHlsJztcblxuXG4uam9ic1xuICAgICZfX2l0ZW1cbiAgICAgICAgZGlzcGxheSBibG9ja1xuICAgICAgICBwYWRkaW5nIDQwcHggNTBweCA0MHB4IDBcbiAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICBib3JkZXItdG9wIDFweCBkYXNoZWQgcmdiYSgxNSwxNywxOCwuMylcbiAgICAgICAgJjpsYXN0LWNoaWxkXG4gICAgICAgICAgICBib3JkZXItYm90dG9tIDFweCBkYXNoZWQgcmdiYSgxNSwxNywxOCwuMylcblxuICAgICAgICArYmVsb3coNzY4cHgpXG4gICAgICAgICAgICBwYWRkaW5nIDQwcHggMTQwcHggNDBweCAwXG5cbiAgICAgICAgK2JlbG93KDQyMHB4KVxuICAgICAgICAgICAgcGFkZGluZyA0MHB4IDEwMHB4IDQwcHggMFxuXG4gICAgJi0td2hpdGVcbiAgICAgICAgLmpvYnNcbiAgICAgICAgICAgICZfX2l0ZW1cbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3IgcmdiYSgyNTUsMjU1LDI1NSwuMylcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AgMFxuICAgICAgICAuam9iXG4gICAgICAgICAgICAmX19kYXRhXG4gICAgICAgICAgICAgICAgY29sb3IgcmdiYSgyNTUsMjU1LDI1NSwuNSlcbiAgICAgICAgICAgICZfX3ZhbHVlXG4gICAgICAgICAgICAgICAgY29sb3IgJHdoaXRlXG4gICAgICAgICAgICBoNFxuICAgICAgICAgICAgICAgIGNvbG9yICR3aGl0ZVxuXG4uam9iXG4gICAgJl9fcm93XG4gICAgICAgIGRpc3BsYXkgZmxleFxuICAgICAgICBhbGlnbi1pdGVtcyBjZW50ZXJcbiAgICAgICAganVzdGlmeS1jb250ZW50IGNlbnRlclxuXG4gICAgICAgICtiZWxvdyg3NjhweClcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uIGNvbHVtblxuICAgICAgICAgICAgYWxpZ24taXRlbXMgZmxleC1zdGFydFxuICAgICAgICAgICAgZ2FwIDMwcHhcblxuICAgICZfX3BhcnRcbiAgICAgICAgd2lkdGggNTAlXG4gICAgICAgIGRpc3BsYXkgZmxleFxuICAgICAgICBhbGlnbi1pdGVtcyBjZW50ZXJcbiAgICAgICAganVzdGlmeS1jb250ZW50IGZsZXgtc3RhcnRcbiAgICAgICAgZmxleC13cmFwIHdyYXBcbiAgICAgICAgZ2FwIDQwcHhcbiAgICAgICAgJjpudGgtY2hpbGQoMilcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudCBzcGFjZS1iZXR3ZWVuXG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZFxuICAgICAgICAgICAgLmpvYlxuICAgICAgICAgICAgICAgICZfX3ZhbHVlXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3AgN3B4XG5cbiAgICAgICAgK2JlbG93KDc2OHB4KVxuICAgICAgICAgICAgd2lkdGggMTAwJVxuXG4gICAgICAgICtiZWxvdyg0MjBweClcbiAgICAgICAgICAgIGdhcCAyMHB4XG5cbiAgICAmX19kYXRhLFxuICAgICZfX3ZhbHVlXG4gICAgICAgIGZvbnQtc2l6ZSAxNHB4XG4gICAgICAgIGxpbmUtaGVpZ2h0IDIxcHhcbiAgICAmX19kYXRhXG4gICAgICAgIGNvbG9yIHJnYmEoMTUsMTcsMTgsLjUpXG4gICAgJl9fdmFsdWVcbiAgICAgICAgbWFyZ2luLXRvcCAxOHB4XG4gICAgICAgIHBhZGRpbmctcmlnaHQgNDBweFxuXG4gICAgICAgICtiZWxvdyg3NjhweClcbiAgICAgICAgICAgIG1hcmdpbi10b3AgOHB4XG5cbiAgICAmX19ibG9ja1xuICAgICAgICAmOm50aC1jaGlsZCgyKVxuICAgICAgICAgICAgd2lkdGggMjUlXG5cblxuLnZhY2FuY3lcbiAgICBwYWRkaW5nLXRvcCA1MHB4XG4gICAgYm9yZGVyLXRvcCAxcHggZGFzaGVkIHJnYmEoMTUsMTcsMTgsLjMpXG4gICAgJi1pbmZvXG4gICAgICAgIG1hcmdpbi10b3AgMzJweFxuICAgICAgICAmX19waG90b1xuICAgICAgICAgICAgd2lkdGggNDRweFxuICAgICAgICAgICAgaGVpZ2h0IDQ0cHhcbiAgICAgICAgICAgIGJvcmRlLXJhZGl1cyA1MCVcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZSBjb3ZlclxuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbiBjZW50ZXJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0IG5vLXJlcGVhdFxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0IDE2cHhcbiAgICAgICAgJl9fcm93LFxuICAgICAgICAmX19ibG9ja1xuICAgICAgICAgICAgZGlzcGxheSBmbGV4XG4gICAgICAgICAgICBhbGlnbi1pdGVtcyBjZW50ZXJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudCBmbGV4LXN0YXJ0XG5cbiAgICAgICAgJl9fYmxvY2tcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGRcbiAgICAgICAgICAgICAgICArYmVsb3coNzY4cHgpXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoIDEwMCVcblxuICAgICAgICAmX19yb3dcbiAgICAgICAgICAgIGdhcCA0MHB4XG5cbiAgICAgICAgICAgICtiZWxvdyg3NjhweClcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXAgd3JhcFxuICAgICAgICAgICAgICAgIGdhcCAzMnB4XG5cbiAgICAgICAgJl9fZGF0YSxcbiAgICAgICAgJl9fdmFsdWVcbiAgICAgICAgICAgIGZvbnQtc2l6ZSAxNHB4XG4gICAgICAgICAgICBsaW5lLWhlaWdodCAyMXB4XG4gICAgICAgICZfX2RhdGFcbiAgICAgICAgICAgIGNvbG9yIHJnYmEoMTUsMTcsMTgsLjUpXG4gICAgICAgICZfX3ZhbHVlXG4gICAgICAgICAgICBtYXJnaW4tdG9wIDJweFxuICAgICAgICAgICAgYVxuICAgICAgICAgICAgICAgIGRpc3BsYXkgaW5saW5lLWJsb2NrXG4gICAgICAgICAgICAgICAgJjpob3ZlclxuICAgICAgICAgICAgICAgICAgICBjb2xvciAkc2xpZ2h0ZXItYmx1ZVxuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZClcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gcmVsYXRpdmVcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0IDE0cHhcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQgMTJweFxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgJydcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoIDRweFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0IDRweFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkYmxhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgMFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wIDBcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbSAwXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4gYXV0b1xuICAgICAgICAgICAgICAgICAgICAgICAgXG5cbiAgICAmX193cmFwcGVyXG4gICAgICAgIGRpc3BsYXkgZmxleFxuICAgICAgICBhbGlnbi1pdGVtcyBmbGV4LXN0YXJ0XG4gICAgICAgIGp1c3RpZnktY29udGVudCBzcGFjZS1iZXR3ZWVuXG4gICAgICAgIGdhcCA3MHB4XG5cbiAgICAgICAgK2JlbG93KDgyMHB4KVxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb24gY29sdW1uLXJldmVyc2VcblxuICAgICZfX21haW4sXG4gICAgJi1zaWRlXG4gICAgICAgIHdpZHRoIDEwMCVcblxuXG4gICAgJl9fbWFpblxuICAgICAgICBtYXgtd2lkdGggNjkwcHhcbiAgICAmLXNpZGVcbiAgICAgICAgbWF4LXdpZHRoIDMzNXB4XG5cbiAgICAgICAgK2JlbG93KDY4MHB4KVxuICAgICAgICAgICAgbWF4LXdpZHRoIDEwMCVcbiAgICAgICAgXG4gICAgICAgICtiZWxvdyg1MjBweClcbiAgICAgICAgICAgIC52YWNhbmN5XG4gICAgICAgICAgICAgICAgJi1zaWRlXG4gICAgICAgICAgICAgICAgICAgICZfX2J0blxuICAgICAgICAgICAgICAgICAgICAgICAgLmJ0blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgZmxleFxuXG4gICAgJi1zaWRlXG4gICAgICAgICZfX2RhdGEsXG4gICAgICAgICZfX3ZhbHVlXG4gICAgICAgICAgICBmb250LXNpemUgMTRweFxuICAgICAgICAgICAgbGluZS1oZWlnaHQgMjFweFxuICAgICAgICBcbiAgICAgICAgJl9fZGF0YVxuICAgICAgICAgICAgY29sb3IgcmdiYSgxNSwxNywxOCwuNSlcbiAgICAgICAgJl9fdmFsdWVcbiAgICAgICAgICAgIG1hcmdpbi10b3AgMnB4XG5cbiAgICAgICAgJl9fbWFpblxuICAgICAgICAgICAgZGlzcGxheSBmbGV4XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbiBjb2x1bW5cbiAgICAgICAgICAgIGdhcCAxNnB4XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbSAyNHB4XG5cbiAgICAgICAgJl9fYnRuXG4gICAgICAgICAgICBwYWRkaW5nLXRvcCAyNHB4XG4gICAgICAgICAgICBib3JkZXItdG9wIDFweCBkYXNoZWQgcmdiYSgxNSwxNywxOCwuMylcblxuXG4gICAgJl9fY29udGVudCAgXG4gICAgICAgIGRpc3BsYXkgZmxleFxuICAgICAgICBmbGV4LWRpcmVjdGlvbiBjb2x1bW5cbiAgICAgICAgZ2FwIDUwcHhcblxuICAgICAgICB1bFxuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlIHNxdWFyZVxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0IDIwcHhcbiAgICAgICAgICAgIG1hcmdpbi10b3AgMTVweFxuXG4gICAgJl9fc3VidGl0bGVcbiAgICAgICAgZm9udC1zaXplIDE2cHhcbiAgICAgICAgbGluZS1oZWlnaHQgMjRweFxuICAgICAgICBmb250LXdlaWdodCBib2xkXG5cbiAgICAmX19ibG9ja1xuICAgICAgICBoMixoMyxoNFxuICAgICAgICAgICAgZm9udC1zaXplIDE2cHhcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0IDI0cHhcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0IGJvbGRcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b20gMjBweFxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm0gY2FwaXRhbGl6ZVxuICAgICAgICBwXG4gICAgICAgICAgICBtYXJnaW4tdG9wIDI0cHgiLCIuam9ic19faXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA0MHB4IDUwcHggNDBweCAwO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCByZ2JhKDE1LDE3LDE4LDAuMyk7XG59XG4uam9ic19faXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCByZ2JhKDE1LDE3LDE4LDAuMyk7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5qb2JzX19pdGVtIHtcbiAgICBwYWRkaW5nOiA0MHB4IDE0MHB4IDQwcHggMDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MjBweCkge1xuICAuam9ic19faXRlbSB7XG4gICAgcGFkZGluZzogNDBweCAxMDBweCA0MHB4IDA7XG4gIH1cbn1cbi5qb2JzLS13aGl0ZSAuam9ic19faXRlbSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xufVxuLmpvYnMtLXdoaXRlIC5qb2JzX19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogMDtcbn1cbi5qb2JzLS13aGl0ZSAuam9iX19kYXRhIHtcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41KTtcbn1cbi5qb2JzLS13aGl0ZSAuam9iX192YWx1ZSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmpvYnMtLXdoaXRlIC5qb2IgaDQge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5qb2JfX3JvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuam9iX19yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAzMHB4O1xuICB9XG59XG4uam9iX19wYXJ0IHtcbiAgd2lkdGg6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogNDBweDtcbn1cbi5qb2JfX3BhcnQ6bnRoLWNoaWxkKDIpIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmpvYl9fcGFydDpmaXJzdC1jaGlsZCAuam9iX192YWx1ZSB7XG4gIG1hcmdpbi10b3A6IDdweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmpvYl9fcGFydCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgLmpvYl9fcGFydCB7XG4gICAgZ2FwOiAyMHB4O1xuICB9XG59XG4uam9iX19kYXRhLFxuLmpvYl9fdmFsdWUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMXB4O1xufVxuLmpvYl9fZGF0YSB7XG4gIGNvbG9yOiByZ2JhKDE1LDE3LDE4LDAuNSk7XG59XG4uam9iX192YWx1ZSB7XG4gIG1hcmdpbi10b3A6IDE4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5qb2JfX3ZhbHVlIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gIH1cbn1cbi5qb2JfX2Jsb2NrOm50aC1jaGlsZCgyKSB7XG4gIHdpZHRoOiAyNSU7XG59XG4udmFjYW5jeSB7XG4gIHBhZGRpbmctdG9wOiA1MHB4O1xuICBib3JkZXItdG9wOiAxcHggZGFzaGVkIHJnYmEoMTUsMTcsMTgsMC4zKTtcbn1cbi52YWNhbmN5LWluZm8ge1xuICBtYXJnaW4tdG9wOiAzMnB4O1xufVxuLnZhY2FuY3ktaW5mb19fcGhvdG8ge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBib3JkZS1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG59XG4udmFjYW5jeS1pbmZvX19yb3csXG4udmFjYW5jeS1pbmZvX19ibG9jayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnZhY2FuY3ktaW5mb19fYmxvY2s6Zmlyc3QtY2hpbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4udmFjYW5jeS1pbmZvX19yb3cge1xuICBnYXA6IDQwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC52YWNhbmN5LWluZm9fX3JvdyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMzJweDtcbiAgfVxufVxuLnZhY2FuY3ktaW5mb19fZGF0YSxcbi52YWNhbmN5LWluZm9fX3ZhbHVlIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjFweDtcbn1cbi52YWNhbmN5LWluZm9fX2RhdGEge1xuICBjb2xvcjogcmdiYSgxNSwxNywxOCwwLjUpO1xufVxuLnZhY2FuY3ktaW5mb19fdmFsdWUge1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG4udmFjYW5jeS1pbmZvX192YWx1ZSBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnZhY2FuY3ktaW5mb19fdmFsdWUgYTpob3ZlciB7XG4gIGNvbG9yOiAjNDY2NGZmO1xufVxuLnZhY2FuY3ktaW5mb19fdmFsdWUgYTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAxNHB4O1xuICBtYXJnaW4tbGVmdDogMTJweDtcbn1cbi52YWNhbmN5LWluZm9fX3ZhbHVlIGE6bm90KDpmaXJzdC1jaGlsZCk6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDRweDtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjExMTI7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG59XG4udmFjYW5jeV9fd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogNzBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODIwcHgpIHtcbiAgLnZhY2FuY3lfX3dyYXBwZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgfVxufVxuLnZhY2FuY3lfX21haW4sXG4udmFjYW5jeS1zaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udmFjYW5jeV9fbWFpbiB7XG4gIG1heC13aWR0aDogNjkwcHg7XG59XG4udmFjYW5jeS1zaWRlIHtcbiAgbWF4LXdpZHRoOiAzMzVweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjgwcHgpIHtcbiAgLnZhY2FuY3ktc2lkZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUyMHB4KSB7XG4gIC52YWNhbmN5LXNpZGUgLnZhY2FuY3ktc2lkZV9fYnRuIC5idG4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cbi52YWNhbmN5LXNpZGVfX2RhdGEsXG4udmFjYW5jeS1zaWRlX192YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDIxcHg7XG59XG4udmFjYW5jeS1zaWRlX19kYXRhIHtcbiAgY29sb3I6IHJnYmEoMTUsMTcsMTgsMC41KTtcbn1cbi52YWNhbmN5LXNpZGVfX3ZhbHVlIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuLnZhY2FuY3ktc2lkZV9fbWFpbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTZweDtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG59XG4udmFjYW5jeS1zaWRlX19idG4ge1xuICBwYWRkaW5nLXRvcDogMjRweDtcbiAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCByZ2JhKDE1LDE3LDE4LDAuMyk7XG59XG4udmFjYW5jeV9fY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNTBweDtcbn1cbi52YWNhbmN5X19jb250ZW50IHVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgbWFyZ2luLXRvcDogMTVweDtcbn1cbi52YWNhbmN5X19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnZhY2FuY3lfX2Jsb2NrIGgyLFxuLnZhY2FuY3lfX2Jsb2NrIGgzLFxuLnZhY2FuY3lfX2Jsb2NrIGg0IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuLnZhY2FuY3lfX2Jsb2NrIHAge1xuICBtYXJnaW4tdG9wOiAyNHB4O1xufVxuIiwiYmFzZS1mb250LXNpemUgPz0gMTZweFxucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMgPz0gZmFsc2VcblxucnVwdHVyZSA9IHtcbiAgcmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXM6IHJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzXG4gIG1vYmlsZS1jdXRvZmY6IDQwMHB4XG4gIGRlc2t0b3AtY3V0b2ZmOiAxMDUwcHhcbiAgaGQtY3V0b2ZmOiAxODAwcHhcbiAgZW5hYmxlLWVtLWJyZWFrcG9pbnRzOiBmYWxzZVxuICBiYXNlLWZvbnQtc2l6ZTogYmFzZS1mb250LXNpemVcbiAgYW50aS1vdmVybGFwOiBmYWxzZVxuICBkZW5zaXR5LXF1ZXJpZXM6ICdkcHB4JyAnd2Via2l0JyAnbW96JyAnZHBpJ1xuICByZXRpbmEtZGVuc2l0eTogMS41XG4gIHVzZS1kZXZpY2Utd2lkdGg6IGZhbHNlXG59XG5ydXB0dXJlLnNjYWxlID0gMCAocnVwdHVyZS5tb2JpbGUtY3V0b2ZmKSA2MDBweCA4MDBweCAocnVwdHVyZS5kZXNrdG9wLWN1dG9mZikgKHJ1cHR1cmUuaGQtY3V0b2ZmKVxucnVwdHVyZS5zY2FsZS1uYW1lcyA9ICd4cycgJ3MnICdtJyAnbCcgJ3hsJyAnaGQnXG5cbi1pcy1zdHJpbmcodmFsKVxuICBpZiB0eXBlb2YodmFsKSBpcyBub3QgJ3VuaXQnXG4gICAgaWYgdmFsIGlzIGEgJ3N0cmluZycgb3IgdmFsIGlzIGEgJ2lkZW50J1xuICAgICAgdHJ1ZVxuICAgIGVsc2VcbiAgICAgIGZhbHNlXG4gIGVsc2VcbiAgICBmYWxzZVxuXG4tZ2V0LXNjYWxlLW51bWJlcihzY2FsZS1uYW1lKVxuICBmb3IgbGlzdC1pdGVtLCBpIGluIHJ1cHR1cmUuc2NhbGUtbmFtZXNcbiAgICBpZiBsaXN0LWl0ZW0gaXMgc2NhbGUtbmFtZVxuICAgICAgcmV0dXJuIGkgKyAxXG4gIHJldHVybiBmYWxzZVxuXG4tY29udmVydC10byh0by11bml0LCB2YWx1ZSwgY29udGV4dCA9IHJ1cHR1cmUuYmFzZS1mb250LXNpemUpXG4gIGZyb20tdW5pdCA9IHVuaXQodmFsdWUpXG4gIHJldHVybiB2YWx1ZSBpZiB0by11bml0IGlzIGZyb20tdW5pdFxuICBpZiB0by11bml0IGluICgnZW0nICdyZW0nKVxuICAgIHJldHVybiB2YWx1ZSBpZiBmcm9tLXVuaXQgaW4gKCdlbScgJ3JlbScpXG4gICAgcmV0dXJuIHVuaXQoKHZhbHVlIC8gY29udGV4dCksIHRvLXVuaXQpXG4gIGlmIHRvLXVuaXQgaXMgJ3B4J1xuICAgIHJldHVybiB1bml0KCh2YWx1ZSAqIGNvbnRleHQpLCAncHgnKVxuXG4tb24tc2NhbGUobilcbiAgcmV0dXJuIHVuaXQobikgaXMgJydcblxuLWxhcmdlci10aGFuLXNjYWxlKG4pXG4gIHJldHVybiAobiA+IChsZW5ndGgocnVwdHVyZS5zY2FsZSkgLSAxKSkgYW5kIC1vbi1zY2FsZShuKVxuXG4taXMtemVybyhuKVxuICByZXR1cm4gbiBpcyAwXG5cbi1vdmVybGFwLXNoaWZ0KGFudGktb3ZlcmxhcCwgbilcbiAgc2hpZnQtdW5pdCA9IHVuaXQobilcbiAgYW50aS1vdmVybGFwID0gMHB4IHVubGVzcyBhbnRpLW92ZXJsYXBcbiAgYW50aS1vdmVybGFwID0gMXB4IGlmIGFudGktb3ZlcmxhcCBpcyB0cnVlXG4gIGlmIGxlbmd0aChhbnRpLW92ZXJsYXApIGlzIDFcbiAgICByZXR1cm4gLWNvbnZlcnQtdG8oc2hpZnQtdW5pdCwgYW50aS1vdmVybGFwKVxuICBmb3IgdmFsIGluIGFudGktb3ZlcmxhcFxuICAgIHJldHVybiB2YWwgaWYgdW5pdCh2YWwpIGlzIHNoaWZ0LXVuaXRcblxuLWFkanVzdC1vdmVybGFwKGFudGktb3ZlcmxhcCwgbiwgc2lkZSA9ICdtaW4nKVxuICAtc2hpZnQgPSAtb3ZlcmxhcC1zaGlmdChhbnRpLW92ZXJsYXAsIG4pXG4gIGlmIChzaWRlIGlzICdtaW4nIGFuZCAtc2hpZnQgPiAwKSBvciAoc2lkZSBpcyAnbWF4JyBhbmQgLXNoaWZ0IDwgMClcbiAgICBuID0gbiArIC1zaGlmdFxuICByZXR1cm4gblxuXG4taXMtcG9zaXRpdmUobilcbiAgcmV0dXJuIG4gPj0gMFxuXG4tZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gIGlmIHR5cGVvZihkZW5zaXR5KSBpcyBub3QgJ3VuaXQnXG4gICAgaWYgbm90IC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgIGRlbnNpdHkgPSAnJXMnICUgZGVuc2l0eVxuICBkZW5zaXR5ID0gcnVwdHVyZS5yZXRpbmEtZGVuc2l0eSBpZiBkZW5zaXR5IGlzICdyZXRpbmEnXG4gIHF1ZXJpZXMgPSAoKVxuICBmb3IgcXVlcnkgaW4gcnVwdHVyZS5kZW5zaXR5LXF1ZXJpZXNcbiAgICBpZiBxdWVyeSBpcyAnd2Via2l0J1xuICAgICAgcHVzaChxdWVyaWVzLCAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJXMpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdtb3onXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAlcyknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ28nXG4gICAgICBwdXNoKHF1ZXJpZXMsICcoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogJXMvMSknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ3JhdGlvJ1xuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnZHBpJ1xuICAgICAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgICBkZW5zaXR5PWNvbnZlcnQoZGVuc2l0eSlcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tcmVzb2x1dGlvbjogJXNkcGkpJyAlIChyb3VuZChkZW5zaXR5ICogOTYsIDEpKSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdkcHB4J1xuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi1yZXNvbHV0aW9uOiAlc2RwcHgpJyAlIChkZW5zaXR5KSlcbiAgcmV0dXJuIHF1ZXJpZXNcblxuY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBjbGFzcylcbiAgL3snJyArIGNsYXNzICsgJyAnICsgc2VsZWN0ZWR9XG4gICAge2Jsb2NrfVxuXG4vLyArYmV0d2VlbihtaW4sIG1heClcbi8vIHVzYWdlIChzY2FsZSBjYW4gYmUgbWl4ZWQgd2l0aCBjdXN0b20gdmFsdWVzKTpcbi8vICAgLSArYmV0d2VlbigxLCAzKSBzY2FsZTpzY2FsZVxuLy8gICAtICtiZXR3ZWVuKDAsIDMpIDAgd2lkdGg6c2NhbGVcbi8vICAgLSArYmV0d2VlbigyMDBweCwgNTAwcHgpIGN1c3RvbTpjdXN0b21cbi8vICAgLSArYmV0d2VlbigwLCAzMDBweCkgMCB3aWR0aDpjdXN0b21cbi8vICAgLSArYmV0d2VlbigxLCAzMDBweCkgc2NhbGU6Y3VzdG9tXG4vLyAgIC0gK2JldHdlZW4oMjAwcHgsIDQpIGN1c3RvbTpzY2FsZVxuXG5iZXR3ZWVuKG1pbiwgbWF4LCBhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcblxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gIGlmIC1pcy1zdHJpbmcobWluKVxuICAgIG1pbiA9IC1nZXQtc2NhbGUtbnVtYmVyKG1pbilcbiAgaWYgLWlzLXN0cmluZyhtYXgpXG4gICAgbWF4ID0gLWdldC1zY2FsZS1udW1iZXIobWF4KVxuXG4gIC1taW4gPSBydXB0dXJlLnNjYWxlW21pbiAtIDFdIHVubGVzcyAtaXMtemVybyhtaW4pIG9yIChub3QgLW9uLXNjYWxlKG1pbikpXG4gIC1tYXggPSBydXB0dXJlLnNjYWxlW21heF0gdW5sZXNzIG5vdCAtb24tc2NhbGUobWF4KVxuICAtbWluID89IG1pblxuICAtbWF4ID89IG1heFxuXG4gIGlmIChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGlmIG5vdCAoZGVuc2l0eSBvciAtbWF4IG9yIG9yaWVudGF0aW9uKVxuICAgICAge2Jsb2NrfVxuICBlbHNlXG4gICAgY29uZGl0aW9uID0gJ29ubHkgc2NyZWVuJ1xuICAgIHVzZS1kZXZpY2Utd2lkdGggPSB1c2UtZGV2aWNlLXdpZHRoID8gJ2RldmljZS0nIDogJydcbiAgICB1bmxlc3MgLW1pbiBpcyAwXG4gICAgICAtbWluID0gLWNvbnZlcnQtdG8oJ2VtJywgLW1pbikgaWYgcnVwdHVyZS5lbmFibGUtZW0tYnJlYWtwb2ludHNcbiAgICAgIC1taW4gPSAtYWRqdXN0LW92ZXJsYXAoYW50aS1vdmVybGFwLCAtbWluLCBzaWRlOiAnbWluJylcbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChtaW4tJyArIHVzZS1kZXZpY2Utd2lkdGggKyAnd2lkdGg6ICVzKScgJSAoLW1pbilcbiAgICB1bmxlc3MgLWxhcmdlci10aGFuLXNjYWxlKG1heClcbiAgICAgIC1tYXggPSAtY29udmVydC10bygnZW0nLCAtbWF4KSBpZiBydXB0dXJlLmVuYWJsZS1lbS1icmVha3BvaW50c1xuICAgICAgLW1heCA9IC1hZGp1c3Qtb3ZlcmxhcChhbnRpLW92ZXJsYXAsIC1tYXgsIHNpZGU6ICdtYXgnKVxuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG1heC0nICsgdXNlLWRldmljZS13aWR0aCArICd3aWR0aDogJXMpJyAlICgtbWF4KVxuICAgIGlmIG9yaWVudGF0aW9uXG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAob3JpZW50YXRpb246ICVzKScgJSAob3JpZW50YXRpb24pXG4gICAgaWYgZGVuc2l0eVxuICAgICAgY29uZGl0aW9ucyA9ICgpXG4gICAgICBmb3IgcXVlcnkgaW4gLWRlbnNpdHktcXVlcmllcyhkZW5zaXR5KVxuICAgICAgICBwdXNoKGNvbmRpdGlvbnMsIGNvbmRpdGlvbiArICcgYW5kICVzJyAlIChxdWVyeSkpXG4gICAgICBjb25kaXRpb24gPSBqb2luKCcsICcsIGNvbmRpdGlvbnMpXG4gICAgQG1lZGlhIGNvbmRpdGlvblxuICAgICAge2Jsb2NrfVxuICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAge2Jsb2NrfVxuXG5hdChzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihzY2FsZS1wb2ludCwgc2NhbGUtcG9pbnQsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuZnJvbS13aWR0aChzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbihzY2FsZS1wb2ludCwgbGVuZ3RoKHJ1cHR1cmUuc2NhbGUpLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmFib3ZlID0gZnJvbS13aWR0aFxuXG50by13aWR0aChzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmV0d2VlbigxLCBzY2FsZS1wb2ludCwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5iZWxvdyA9IHRvLXdpZHRoXG5cbm1vYmlsZShhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZWxvdyhydXB0dXJlLm1vYmlsZS1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxudGFibGV0KGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JldHdlZW4ocnVwdHVyZS5tb2JpbGUtY3V0b2ZmLCBydXB0dXJlLmRlc2t0b3AtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmRlc2t0b3AoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYWJvdmUocnVwdHVyZS5kZXNrdG9wLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5oZChhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICthYm92ZShydXB0dXJlLmhkLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5kZW5zaXR5KGRlbnNpdHksIG9yaWVudGF0aW9uID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBzZWxlY3RlZCA9IHNlbGVjdG9yKClcbiAgaWYgbm90IChydXB0dXJlLnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzKVxuICAgIGNvbmRpdGlvbnMgPSAoKVxuICAgIGZvciBxdWVyeSBpbiAtZGVuc2l0eS1xdWVyaWVzKGRlbnNpdHkpXG4gICAgICBjb25kaXRpb24gPSAnb25seSBzY3JlZW4gYW5kICVzJyAlIChxdWVyeSlcbiAgICAgIGlmIG9yaWVudGF0aW9uXG4gICAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChvcmllbnRhdGlvbjogJXMpJyAlIChvcmllbnRhdGlvbilcbiAgICAgIHB1c2goY29uZGl0aW9ucywgY29uZGl0aW9uKVxuICAgIGNvbmRpdGlvbiA9IGpvaW4oJywgJywgY29uZGl0aW9ucylcbiAgICBAbWVkaWEgY29uZGl0aW9uXG4gICAgICB7YmxvY2t9XG4gICAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG5cbnBpeGVsLXJhdGlvID0gZGVuc2l0eVxuXG5yZXRpbmEob3JpZW50YXRpb24gPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gICtkZW5zaXR5KCdyZXRpbmEnLCBvcmllbnRhdGlvbiwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5sYW5kc2NhcGUoZGVuc2l0eSA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgc2VsZWN0ZWQgPSBzZWxlY3RvcigpXG4gIGlmIG5vdCAocnVwdHVyZS5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcylcbiAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICAgIGlmIGRlbnNpdHlcbiAgICAgICtwaXhlbC1yYXRpbyhkZW5zaXR5LCBvcmllbnRhdGlvbjogbGFuZHNjYXBlLCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAge2Jsb2NrfVxuICAgIGVsc2VcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpXG4gICAgICAgIHtibG9ja31cbiAgICAgIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgICAgICtjcmVhdGUtZmFsbGJhY2stY2xhc3Moc2VsZWN0ZWQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICAgIHtibG9ja31cblxucG9ydHJhaXQoZGVuc2l0eSA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgc2VsZWN0ZWQgPSBzZWxlY3RvcigpXG4gIGlmIG5vdCAocnVwdHVyZS5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcylcbiAgICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICAgIGlmIGRlbnNpdHlcbiAgICAgICtwaXhlbC1yYXRpbyhkZW5zaXR5LCBvcmllbnRhdGlvbjogcG9ydHJhaXQsIGZhbGxiYWNrLWNsYXNzKVxuICAgICAgICB7YmxvY2t9XG4gICAgZWxzZVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KVxuICAgICAgICB7YmxvY2t9XG4gICAgICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICAgICArY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAgICB7YmxvY2t9XG5cbnJ1cHR1cmUtaG92ZXIoZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBjb25kaXRpb24gPSBcIm9ubHkgc2NyZWVuIGFuZCAoaG92ZXI6IGhvdmVyKVwiO1xuICBAbWVkaWEgKHtjb25kaXRpb259KVxuICAgIHtibG9ja31cblxuaG92ZXIgPSBydXB0dXJlLWhvdmVyXG4iXX0= */
