/**
 * Foundation for Sites by ZURB
 * Version 6.5.1
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
.login-portlet {
  /*buttons*/
  /*inputs*/
  /* errors */
  /* form */
  /*Hide all except first fieldset*/
  /*buttons*/ }
  .login-portlet .social-buttons {
    color: #150e33;
    background: #fff;
    -webkit-transition: all .25s ease;
    transition: all .25s ease;
    border-radius: 30px;
    border: 1px solid #fe5b16;
    white-space: nowrap;
    display: inline-block;
    vertical-align: middle;
    font-size: 11px;
    font-weight: 400;
    padding: 10px 10px 10px 45px;
    margin: 0 0 5px 0;
    text-align: left;
    text-decoration: none;
    overflow: hidden;
    background-color: #fff;
    background-position: 5px 50%;
    background-repeat: no-repeat;
    width: 185px; }
    .login-portlet .social-buttons--facebook {
      background-image: url(../images/facebook--icon.png); }
    .login-portlet .social-buttons--google {
      background-image: url(../images/google--icon.png); }
    .login-portlet .social-buttons--linkedin {
      background-image: url(../images/linkedin--icon.png); }
    .login-portlet .social-buttons--ey {
      background-image: url(../images/ey--icon.png); }
    .login-portlet .social-buttons:hover, .login-portlet .social-buttons:focus, .login-portlet .social-buttons:active {
      border-color: #ff0346;
      background-color: #ff0346;
      -webkit-transition: all .25s ease;
      transition: all .25s ease;
      text-decoration: none;
      color: #fff; }
  .login-portlet .button, .login-portlet .btn {
    border: 0;
    padding: 27px 70px;
    margin: 0;
    border-radius: 50px;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out; }
    .login-portlet .button__description, .login-portlet .btn__description {
      text-transform: uppercase;
      font-size: 1rem;
      letter-spacing: 0.2px;
      font-weight: 600; }
    .login-portlet .button--ui, .login-portlet .btn--ui {
      background: #fd8301;
      background: -webkit-gradient(left top, right top, color-stop(0%, #fd8301), color-stop(100%, #ff0346));
      background: -webkit-gradient(linear, left top, right top, from(#fd8301), to(#ff0346));
      background: linear-gradient(to right, #fd8301 0%, #ff0346 100%);
      filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fd8301', endColorstr='#ff0346', GradientType=1 ); }
      .login-portlet .button--ui:hover, .login-portlet .btn--ui:hover {
        -webkit-transition: all 0.2s ease-in-out;
        transition: all 0.2s ease-in-out;
        background: #ff0346;
        background: -webkit-gradient(left top, right top, color-stop(0%, #ff0346), color-stop(100%, #ff0346));
        background: -webkit-gradient(linear, left top, right top, from(#ff0346), to(#ff0346));
        background: linear-gradient(to right, #ff0346 0%, #ff0346 100%);
        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff0346', endColorstr='#ff0346', GradientType=1 ); }
  .login-portlet [type='text'], .login-portlet select, .login-portlet [type='password'], .login-portlet [type='date'], .login-portlet [type='datetime'], .login-portlet [type='datetime-local'], .login-portlet [type='month'], .login-portlet [type='week'], .login-portlet [type='email'], .login-portlet [type='number'], .login-portlet [type='search'], .login-portlet [type='tel'], .login-portlet [type='time'], .login-portlet [type='url'], .login-portlet [type='color'], .login-portlet textarea {
    padding: 0 25px;
    border: 1px solid #9c97a6;
    border-radius: 1px;
    /*margin-bottom: 25px;*/
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    color: #2C3E50;
    font-size: 12px;
    height: 44px;
    border-radius: 30px;
    -webkit-box-shadow: none;
    box-shadow: none; }
  .login-portlet select {
    padding: 0 35px 0 25px; }
  .login-portlet .control-label {
    padding-top: 0 !important;
    margin: 0;
    font-size: 12px;
    color: #150e33;
    letter-spacing: 0.2px;
    margin-left: 25px; }
  .login-portlet .input-checkbox-wrapper label {
    position: relative;
    cursor: pointer;
    padding: 5px 0;
    font-size: 10px;
    color: #150e33;
    letter-spacing: 0.2px; }
    .login-portlet .input-checkbox-wrapper label a {
      color: #150e33; }
  .login-portlet .input-checkbox-wrapper label::selection {
    background: transparent; }
  .login-portlet .input-checkbox-wrapper label input + .helper {
    background: white;
    content: "";
    display: inline-block;
    margin: 0 8px 0 0;
    padding: 0;
    vertical-align: middle;
    width: 16px;
    height: 16px;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    -webkit-backface-visibility: hidden;
    border-radius: 100%;
    border: 1px solid #9c97a6; }
  .login-portlet .input-checkbox-wrapper label input + .helper::after {
    content: "";
    display: block;
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
        transform: scale(0);
    transition: -webkit-transform .2s;
    -webkit-transition: -webkit-transform .2s;
    transition: transform .2s;
    transition: transform .2s, -webkit-transform .2s; }
  .login-portlet .input-checkbox-wrapper label input + .helper::before {
    content: "";
    display: block;
    height: 6px;
    width: 6px;
    background: #fff;
    z-index: 1;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    border-radius: 10px; }
  @media screen and (min-width: 768px) {
    .login-portlet .checkbox:hover input + .helper {
      -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
              box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); } }
  .login-portlet .input-checkbox-wrapper label input:active + .helper {
    -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); }
  .login-portlet .input-checkbox-wrapper label input:focus + .helper {
    -webkit-box-shadow: 0 0 0 3px lightblue;
            box-shadow: 0 0 0 3px lightblue; }
  .login-portlet .input-checkbox-wrapper label input:checked + .helper::after {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
        transform: scale(1); }
  .login-portlet .input-checkbox-wrapper label input {
    position: absolute;
    cursor: pointer;
    opacity: 0; }
  .login-portlet .input-checkbox-wrapper label input + .helper::after {
    width: 16px;
    height: 16px;
    border-radius: 100%;
    background: #fd8301;
    background: -webkit-gradient(left top, right top, color-stop(0%, #fd8301), color-stop(100%, #ff0346));
    background: -webkit-gradient(linear, left top, right top, from(#fd8301), to(#ff0346));
    background: linear-gradient(to right, #fd8301 0%, #ff0346 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fd8301', endColorstr='#ff0346', GradientType=1 );
    margin-left: -1px;
    margin-top: -1px; }
  .login-portlet .g-recaptcha > div {
    width: auto !important; }
  .login-portlet .has-error .help-block, .login-portlet .has-error .control-label, .login-portlet .has-error .radio, .login-portlet .has-error .checkbox, .login-portlet .has-error .radio-inline, .login-portlet .has-error .checkbox-inline, .login-portlet .has-error.radio label, .login-portlet .has-error.checkbox label, .login-portlet .has-error.radio-inline label, .login-portlet .has-error.checkbox-inline label {
    color: #ff0346; }
  .login-portlet .has-error [type='text'], .login-portlet .has-error select, .login-portlet .has-error [type='password'], .login-portlet .has-error [type='date'], .login-portlet .has-error [type='datetime'], .login-portlet .has-error [type='datetime-local'], .login-portlet .has-error [type='month'], .login-portlet .has-error [type='week'], .login-portlet .has-error [type='email'], .login-portlet .has-error [type='number'], .login-portlet .has-error [type='search'], .login-portlet .has-error [type='tel'], .login-portlet .has-error [type='time'], .login-portlet .has-error [type='url'], .login-portlet .has-error [type='color'], .login-portlet .has-error textarea {
    border-color: #ff0346; }
  .login-portlet .icon-asterisk.text-warning {
    display: none; }
  .login-portlet .icon-asterisk {
    font-size: 8px;
    top: -4px;
    position: relative; }
  .login-portlet .has-error .form-control {
    margin-bottom: 5px; }
  .login-portlet .login-form {
    width: 100%;
    margin: 0px auto;
    max-width: 530px; }
  .login-portlet .or {
    margin: 20px 0; }
    .login-portlet .or span {
      display: block;
      margin: 0 auto;
      text-align: center;
      width: 100px;
      color: #150e33;
      font-size: 12px;
      letter-spacing: 0.2px;
      background: #fff;
      position: relative; }
    .login-portlet .or:after {
      content: '';
      display: block;
      height: 1px;
      width: 100%;
      background: #e1e0e4;
      max-width: 580px;
      margin: -9px auto 0; }
  .login-portlet .form-group {
    margin-bottom: 0;
    height: 80px; }
    .login-portlet .form-group--normalize {
      height: auto;
      margin: 10px 0; }
  .login-portlet .form-group.input-checkbox-wrapper {
    height: auto; }
  .login-portlet fieldset {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important; }
  .login-portlet .login-form__title {
    font-size: 1.625rem;
    color: #150e33;
    letter-spacing: 0.2px;
    margin: 20px 0;
    font-weight: 600; }
  .login-portlet .password-strenght--wrapper {
    padding: 10px;
    outline: none;
    border: 1px solid #c0c0c0;
    background-color: #fefefe;
    font-size: 13px;
    padding: 20px 25px;
    border: 1px solid #9c97a6;
    border-radius: 1px;
    margin-bottom: 5px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    color: #2C3E50;
    font-size: 12px;
    border-radius: 25px;
    -webkit-box-shadow: none;
    box-shadow: none; }
  .login-portlet .password--information ul {
    list-style-type: none;
    margin: 5px 0 0;
    padding: 0; }
  .login-portlet .password--information ul li {
    padding: 0;
    color: #2C3E50;
    font-size: 12px; }
  .login-portlet .password--information ul li.valid i.fa {
    margin-right: 4px; }
  .login-portlet .password--information ul li.invalid i.fa {
    display: none; }
  .login-portlet .password--information ul li.invalid {
    color: #2C3E50;
    padding: 0 0 0 20px; }
  .login-portlet .password--information ul li.valid {
    color: #00ca6b;
    padding: 0 0 0 0; }
  .login-portlet #passwordStrength {
    display: block;
    height: 5px;
    margin-bottom: 10px;
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease; }
  .login-portlet .strength0 {
    background: none;
    /* too short */
    width: 0px; }
  .login-portlet .strength1 {
    background: none repeat scroll 0 0 #FF4545;
    /* weak */
    width: 25%; }
  .login-portlet .strength2 {
    background: none repeat scroll 0 0 #FFC824;
    /* good */
    width: 50%; }
  .login-portlet .strength3 {
    background: none repeat scroll 0 0 #6699CC;
    /* strong */
    width: 75%; }
  .login-portlet .strength4 {
    background: none repeat scroll 0 0 #008000;
    /* best */
    width: 100%; }
  .login-portlet .help-block {
    margin-top: -5px !important; }
  .login-portlet .input-checkbox-wrapper.has-error label {
    color: #ff0346; }
    .login-portlet .input-checkbox-wrapper.has-error label a {
      color: #ff0346; }
  .login-portlet form .control-group .help {
    color: #888888;
    margin: -5px -15px 5px 0;
    font-size: 12px !important;
    padding: 0; }
  .login-portlet form .control-group.control-group-textarea textarea {
    height: 120px;
    margin: 0;
    width: 100%; }
  @media only screen and (max-width: 40em) {
    .login-portlet .g-recaptcha {
      -ms-transform: scale(0.8);
          transform: scale(0.8);
      -webkit-transform: scale(0.8);
      -ms-transform-origin: 0 0;
          transform-origin: 0 0;
      -webkit-transform-origin: 0 0; } }
  @media only screen and (max-width: 20em) {
    .login-portlet .g-recaptcha {
      -ms-transform: scale(0.7);
          transform: scale(0.7);
      -webkit-transform: scale(0.7);
      -ms-transform-origin: 0 0;
          transform-origin: 0 0;
      -webkit-transform-origin: 0 0; } }
  .login-portlet div#information_confirmation h5 {
    color: #333;
    font-weight: 300;
    text-align: center;
    margin: 30px 0; }
  .login-portlet .has-error .help-block {
    font-size: 10px;
    text-align: right; }
  .login-portlet .bottom--actions {
    margin: 20px 0 0 0;
    text-align: center; }
    .login-portlet .bottom--actions p, .login-portlet .bottom--actions a {
      margin: 0;
      color: #9c97a6;
      font-weight: 400;
      font-size: 12px; }
    .login-portlet .bottom--actions .left {
      float: left; }
    .login-portlet .bottom--actions .right {
      float: right; }
  .login-portlet label .reference-mark {
    display: none; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwibG9naW5fcG9ydGxldC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL191bml0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUNNSDtFQUNJLFdBQVc7RUEwR1gsVUFBVTtFQWdJVixZQUFZO0VBc0JaLFVBQVU7RUE2TlYsa0NBQWtDO0VBcUJsQyxXQUFXLEVBd0JkO0VBM2dCRDtJQUdRLGVBQWM7SUFDZCxpQkFBZTtJQUNmLGtDQUF5QjtJQUF6QiwwQkFBeUI7SUFDekIsb0JBQW1CO0lBQ25CLDBCQUF5QjtJQUN6QixvQkFBbUI7SUFDbkIsc0JBQXFCO0lBQ3JCLHVCQUFzQjtJQUN0QixnQkFBZTtJQUNmLGlCQUFnQjtJQUNoQiw2QkFBNEI7SUFDNUIsa0JBQWlCO0lBQ2pCLGlCQUFnQjtJQUNoQixzQkFBb0I7SUFDcEIsaUJBQWU7SUFDZix1QkFBc0I7SUFDdEIsNkJBQTJCO0lBQzNCLDZCQUEyQjtJQUMzQixhQUFXLEVBMEJkO0lBL0NMO01Bd0JZLHFFQUFvRSxFQUV2RTtJQTFCVDtNQTZCWSxtRUFBa0UsRUFDckU7SUE5QlQ7TUFpQ1kscUVBQW9FLEVBQ3ZFO0lBbENUO01BcUNZLCtEQUE4RCxFQUNqRTtJQXRDVDtNQXlDWSxzQkFBNkI7TUFDN0IsMEJBQWtDO01BQ2xDLGtDQUF5QjtNQUF6QiwwQkFBeUI7TUFDekIsc0JBQW9CO01BQ3BCLFlBQVcsRUFDZDtFQTlDVDtJQW1EUSxVQUFRO0lBQ1IsbUJBQWlCO0lBQ2pCLFVBQVE7SUFDUixvQkFBa0I7SUE3RHhCLHlDQThEOEM7SUExRDlDLGlDQTBEOEMsRUFpRDNDO0lBeEdMO01BbUVZLDBCQUF3QjtNQUN4QixnQkNTNkM7TURSN0Msc0JBQW9CO01BQ3BCLGlCQUFlLEVBVWxCO0lBaEZUO01B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WUw7SUEwWVksMkNBQTBDO0lBQUMsVUFBVTtJQUN6RCxZQUFXLEVBQ2Q7RUE1WUw7SUF1YUksNEJBQTBCLEVBQ3pCO0VBeGFMO0lBNGFRLGVBQWMsRUFLakI7SUFqYkw7TUErYVksZUFBYyxFQUNqQjtFQWhiVDtJQXFiTSxlQUFjO0lBQ2QseUJBQXdCO0lBQ3hCLDJCQUEwQjtJQUMxQixXQUFVLEVBQ1g7RUF6Ykw7SUE0Yk0sY0FBYTtJQUNiLFVBQVM7SUFDVCxZQUFXLEVBQ1o7RUFXRDtJQTFjSjtNQTZjWSwwQkFBcUI7VUFBckIsc0JBQXFCO01BQ3JCLDhCQUE2QjtNQUM3QiwwQkFBcUI7VUFBckIsc0JBQXFCO01BQ3JCLDhCQUE2QixFQUNoQyxFQUFBO0VBR0w7SUFwZEo7TUF1ZFksMEJBQXFCO1VBQXJCLHNCQUFxQjtNQUNyQiw4QkFBNkI7TUFDN0IsMEJBQXFCO1VBQXJCLHNCQUFxQjtNQUNyQiw4QkFBNkIsRUFDaEMsRUFBQTtFQTNkVDtJQXNlUSxZQUFXO0lBQ1gsaUJBQWdCO0lBQ2hCLG1CQUFrQjtJQUNsQixlQUFjLEVBQ2pCO0VBMWVMO0lBK2VRLGdCQUFlO0lBQ2Ysa0JBQWlCLEVBQ3BCO0VBamZMO0lBc2ZRLG1CQUFrQjtJQUNsQixtQkFBaUIsRUFnQnBCO0lBdmdCTDtNQTBmWSxVQUFTO01BQ1QsZUFBYztNQUNkLGlCQUFnQjtNQUNoQixnQkFBZSxFQUNsQjtJQTlmVDtNQWlnQlksWUFBVSxFQUNiO0lBbGdCVDtNQXFnQlksYUFBVyxFQUNkO0VBdGdCVDtJQXlnQlEsY0FBWSxFQUNmIiwiZmlsZSI6ImxvZ2luX3BvcnRsZXQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuNS4xXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuXG4vLyBEZXBlbmRlbmNpZXNcbkBpbXBvcnQgJ3ZlbmRvci9ub3JtYWxpemUnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL21pc3NpbmctZGVwZW5kZW5jaWVzJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy90cnVlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL2NvbnRhaW4nO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcHVyZ2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvcmVtb3ZlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlcGxhY2UnO1xuQGltcG9ydCAnLi4vX3ZlbmRvci9zYXNzeS1saXN0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvdG8tbGlzdCc7XG5cbi8vIC0tLSBTZXR0aW5ncyAtLS1cbi8vIGltcG9ydCB5b3VyIG93biBgc2V0dGluZ3NgIGhlcmUgb3Jcbi8vIGltcG9ydCBhbmQgbW9kaWZ5IHRoZSBkZWZhdWx0IHNldHRpbmdzIHRocm91Z2hcbi8vIEBpbXBvcnQgJ3NldHRpbmdzL3NldHRpbmdzJztcblxuLy8gLS0tIENvbXBvbmVudHMgLS0tXG4vLyBVdGlsaXRpZXNcbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG4vLyBHbG9iYWwgc3R5bGVzXG5AaW1wb3J0ICdnbG9iYWwnO1xuQGltcG9ydCAnZm9ybXMvZm9ybXMnO1xuQGltcG9ydCAndHlwb2dyYXBoeS90eXBvZ3JhcGh5JztcblxuLy8gR3JpZHNcbkBpbXBvcnQgJ2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICd4eS1ncmlkL3h5LWdyaWQnO1xuLy8gR2VuZXJpYyBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Nsb3NlLWJ1dHRvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2xhYmVsJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3dpdGNoJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUnO1xuLy8gQmFzaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhcmQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BhZ2luYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sdGlwJztcblxuLy8gQ29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9tZWRpYS1vYmplY3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9vcmJpdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Jlc3BvbnNpdmUtZW1iZWQnO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbi8vIE1lbnUtYmFzZWQgY29udGFpbmVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudS1pY29uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uLW1lbnUnO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9kcm9wZG93bi1tZW51JztcblxuLy8gTGF5b3V0IGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb2ZmLWNhbnZhcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3JldmVhbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N0aWNreSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RvcC1iYXInO1xuXG4vLyBIZWxwZXJzXG5AaW1wb3J0ICdjb21wb25lbnRzL2Zsb2F0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmxleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Zpc2liaWxpdHknO1xuQGltcG9ydCAncHJvdG90eXBlL3Byb3RvdHlwZSc7XG5cblxuQG1peGluIGZvdW5kYXRpb24tZXZlcnl0aGluZyhcbiAgJGZsZXg6IHRydWUsXG4gICRwcm90b3R5cGU6IGZhbHNlXG4pIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8vIEdsb2JhbCBzdHlsZXNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG5cbiAgLy8gR3JpZHNcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHh5LWdyaWQge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICAvLyBCYXNpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcblxuICAvLyBDb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICAvLyBNZW51LWJhc2VkIGNvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuXG4gIC8vIExheW91dCBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuXG4gIC8vIEhlbHBlcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuICBAaWYgJGZsZXggeyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlczsgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGlmICRwcm90b3R5cGUgeyBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzOyB9XG59XG4iLCJAY2hhcnNldCAndXRmLTgnO1xyXG5AaW1wb3J0ICdmb3VuZGF0aW9uJztcclxuXHJcbkBtaXhpbiB0cmFuc2l0aW9uKCRhcmdzLi4uKSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAkYXJncztcclxuICAtbW96LXRyYW5zaXRpb246ICRhcmdzO1xyXG4gIC1tcy10cmFuc2l0aW9uOiAkYXJncztcclxuICAtby10cmFuc2l0aW9uOiAkYXJncztcclxuICB0cmFuc2l0aW9uOiAkYXJncztcclxufVxyXG5cclxuLmxvZ2luLXBvcnRsZXQge1xyXG4gICAgLypidXR0b25zKi9cclxuICAgIC5zb2NpYWwtYnV0dG9ucyB7XHJcbiAgICAgICAgY29sb3I6ICMxNTBlMzM7XHJcbiAgICAgICAgYmFja2dyb3VuZDojZmZmO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2U7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmU1YjE2O1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgcGFkZGluZzogMTBweCAxMHB4IDEwcHggNDVweDtcclxuICAgICAgICBtYXJnaW46IDAgMCA1cHggMDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjpub25lO1xyXG4gICAgICAgIG92ZXJmbG93OmhpZGRlbjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246NXB4IDUwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XHJcbiAgICAgICAgd2lkdGg6MTg1cHg7XHJcblxyXG4gICAgICAgICYtLWZhY2Vib29rIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL2ltYWdlcy9sb2dpbl9wb3J0bGV0L2ZhY2Vib29rLS1pY29uLnBuZykgXHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi0tZ29vZ2xlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL2ltYWdlcy9sb2dpbl9wb3J0bGV0L2dvb2dsZS0taWNvbi5wbmcpIFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi0tbGlua2VkaW4ge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1hZ2VzL2xvZ2luX3BvcnRsZXQvbGlua2VkaW4tLWljb24ucG5nKSBcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYtLWV5IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL2ltYWdlcy9sb2dpbl9wb3J0bGV0L2V5LS1pY29uLnBuZykgXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjpyZ2JhKDI1NSwzLDcwLDEpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwzLDcwLDEpO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlO1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246bm9uZTtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5idXR0b24sIC5idG4ge1xyXG5cclxuICAgICAgICBib3JkZXI6MDtcclxuICAgICAgICBwYWRkaW5nOjI3cHggNzBweDtcclxuICAgICAgICBtYXJnaW46MDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOjUwcHg7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4ycyBlYXNlLWluLW91dCk7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgZG93bikge1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNnB4KTtcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6MC4ycHg7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OjYwMDtcclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgZG93bikge1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLS11aSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjUzLDEzMSwxLDEpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDI1MywxMzEsMSwxKSAwJSwgcmdiYSgyNTUsMyw3MCwxKSAxMDAlKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAlLCByZ2JhKDI1MywxMzEsMSwxKSksIGNvbG9yLXN0b3AoMTAwJSwgcmdiYSgyNTUsMyw3MCwxKSkpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDI1MywxMzEsMSwxKSAwJSwgcmdiYSgyNTUsMyw3MCwxKSAxMDAlKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjUzLDEzMSwxLDEpIDAlLCByZ2JhKDI1NSwzLDcwLDEpIDEwMCUpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjUzLDEzMSwxLDEpIDAlLCByZ2JhKDI1NSwzLDcwLDEpIDEwMCUpO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjUzLDEzMSwxLDEpIDAlLCByZ2JhKDI1NSwzLDcwLDEpIDEwMCUpO1xyXG4gICAgICAgICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2ZkODMwMScsIGVuZENvbG9yc3RyPScjZmYwMzQ2JywgR3JhZGllbnRUeXBlPTEgKTtcclxuXHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4ycyBlYXNlLWluLW91dCk7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwzLDcwLDEpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgyNTUsMyw3MCwxKSAwJSwgcmdiYSgyNTUsMyw3MCwxKSAxMDAlKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGVmdCB0b3AsIHJpZ2h0IHRvcCwgY29sb3Itc3RvcCgwJSwgcmdiYSgyNTUsMyw3MCwxKSksIGNvbG9yLXN0b3AoMTAwJSwgcmdiYSgyNTUsMyw3MCwxKSkpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgyNTUsMyw3MCwxKSAwJSwgcmdiYSgyNTUsMyw3MCwxKSAxMDAlKTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDI1NSwzLDcwLDEpIDAlLCByZ2JhKDI1NSwzLDcwLDEpIDEwMCUpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDI1NSwzLDcwLDEpIDAlLCByZ2JhKDI1NSwzLDcwLDEpIDEwMCUpO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwzLDcwLDEpIDAlLCByZ2JhKDI1NSwzLDcwLDEpIDEwMCUpO1xyXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9JyNmZjAzNDYnLCBlbmRDb2xvcnN0cj0nI2ZmMDM0NicsIEdyYWRpZW50VHlwZT0xICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qaW5wdXRzKi9cclxuICAgIFt0eXBlPSd0ZXh0J10sIHNlbGVjdCwgW3R5cGU9J3Bhc3N3b3JkJ10sIFt0eXBlPSdkYXRlJ10sIFt0eXBlPSdkYXRldGltZSddLCBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSwgW3R5cGU9J21vbnRoJ10sIFt0eXBlPSd3ZWVrJ10sIFt0eXBlPSdlbWFpbCddLCBbdHlwZT0nbnVtYmVyJ10sIFt0eXBlPSdzZWFyY2gnXSwgW3R5cGU9J3RlbCddLCBbdHlwZT0ndGltZSddLCBbdHlwZT0ndXJsJ10sIFt0eXBlPSdjb2xvciddLCB0ZXh0YXJlYSB7XHJcbiAgICAgICAgcGFkZGluZzogMCAyNXB4O1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5Yzk3YTY7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4O1xyXG4gICAgICAgIC8qbWFyZ2luLWJvdHRvbTogMjVweDsqL1xyXG4gICAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIGNvbG9yOiAjMkMzRTUwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICBoZWlnaHQ6IDQ0cHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgIH1cclxuICAgIHNlbGVjdCB7XHJcbiAgICAgICAgcGFkZGluZzogMCAzNXB4IDAgMjVweCA7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbnRyb2wtbGFiZWwge1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAwIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgZm9udC1zaXplOjEycHg7XHJcbiAgICAgICAgY29sb3I6IzE1MGUzMztcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzowLjJweDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjVweDtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC5pbnB1dC1jaGVja2JveC13cmFwcGVyIGxhYmVsIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IDVweCAwO1xyXG4gICAgICBmb250LXNpemU6MTBweDtcclxuICAgICAgY29sb3I6IzE1MGUzMztcclxuICAgICAgbGV0dGVyLXNwYWNpbmc6MC4ycHg7XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBjb2xvcjojMTUwZTMzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuaW5wdXQtY2hlY2tib3gtd3JhcHBlciBsYWJlbDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuICAgIC5pbnB1dC1jaGVja2JveC13cmFwcGVyIGxhYmVsOjpzZWxlY3Rpb24ge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIH1cclxuICAgIC5pbnB1dC1jaGVja2JveC13cmFwcGVyIGxhYmVsIGlucHV0ICsgLmhlbHBlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgbWFyZ2luOiAwIDhweCAwIDA7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIHdpZHRoOiAxNnB4O1xyXG4gICAgICAgIGhlaWdodDogMTZweDtcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcclxuICAgICAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5Yzk3YTY7XHJcbiAgICB9XHJcbiAgICAuaW5wdXQtY2hlY2tib3gtd3JhcHBlciBsYWJlbCBpbnB1dCArIC5oZWxwZXI6OmFmdGVyIHtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcclxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xyXG4gICAgICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAuMnM7XHJcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnM7XHJcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnMsIC13ZWJraXQtdHJhbnNmb3JtIC4ycztcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC5pbnB1dC1jaGVja2JveC13cmFwcGVyIGxhYmVsIGlucHV0ICsgLmhlbHBlcjo6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGhlaWdodDogNnB4O1xyXG4gICAgICAgIHdpZHRoOiA2cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgICB6LWluZGV4OiAxO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuXHJcbiAgICB9XHJcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAuY2hlY2tib3g6aG92ZXIgaW5wdXQgKyAuaGVscGVyIHtcclxuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLmlucHV0LWNoZWNrYm94LXdyYXBwZXIgbGFiZWwgaW5wdXQ6YWN0aXZlICsgLmhlbHBlciB7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xyXG4gICAgfVxyXG4gICAgLmlucHV0LWNoZWNrYm94LXdyYXBwZXIgbGFiZWwgaW5wdXQ6Zm9jdXMgKyAuaGVscGVyIHtcclxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IGxpZ2h0Ymx1ZTtcclxuICAgIH1cclxuICAgIC5pbnB1dC1jaGVja2JveC13cmFwcGVyIGxhYmVsIGlucHV0OmNoZWNrZWQgKyAuaGVscGVyOjphZnRlciB7XHJcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgfVxyXG4gICAgLmlucHV0LWNoZWNrYm94LXdyYXBwZXIgbGFiZWwgaW5wdXQge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLmlucHV0LWNoZWNrYm94LXdyYXBwZXIgbGFiZWwgaW5wdXQgKyAuaGVscGVyOjphZnRlciB7XHJcbiAgICAgICAgd2lkdGg6IDE2cHg7XHJcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZkODMwMTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCUsICNmZDgzMDEpLCBjb2xvci1zdG9wKDEwMCUsICNmZjAzNDYpKTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbSgjZmQ4MzAxKSwgdG8oI2ZmMDM0NikpO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2ZkODMwMSAwJSwgI2ZmMDM0NiAxMDAlKTtcclxuICAgICAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCggc3RhcnRDb2xvcnN0cj0nI2ZkODMwMScsIGVuZENvbG9yc3RyPScjZmYwMzQ2JywgR3JhZGllbnRUeXBlPTEgKTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xyXG4gICAgfVxyXG4gICAgLmctcmVjYXB0Y2hhID4gZGl2IHtcclxuICAgICAgICB3aWR0aDogYXV0byFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qIGVycm9ycyAqL1xyXG4gICAgLmhhcy1lcnJvciAuaGVscC1ibG9jaywgLmhhcy1lcnJvciAuY29udHJvbC1sYWJlbCwgLmhhcy1lcnJvciAucmFkaW8sIC5oYXMtZXJyb3IgLmNoZWNrYm94LCAuaGFzLWVycm9yIC5yYWRpby1pbmxpbmUsIC5oYXMtZXJyb3IgLmNoZWNrYm94LWlubGluZSwgLmhhcy1lcnJvci5yYWRpbyBsYWJlbCwgLmhhcy1lcnJvci5jaGVja2JveCBsYWJlbCwgLmhhcy1lcnJvci5yYWRpby1pbmxpbmUgbGFiZWwsIC5oYXMtZXJyb3IuY2hlY2tib3gtaW5saW5lIGxhYmVsIHtcclxuICAgICAgICBjb2xvcjogI2ZmMDM0NjtcclxuICAgIH1cclxuXHJcbiAgICAuaGFzLWVycm9yIHtcclxuICAgICAgICBbdHlwZT0ndGV4dCddLCBzZWxlY3QsIFt0eXBlPSdwYXNzd29yZCddLCBbdHlwZT0nZGF0ZSddLCBbdHlwZT0nZGF0ZXRpbWUnXSwgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sIFt0eXBlPSdtb250aCddLCBbdHlwZT0nd2VlayddLCBbdHlwZT0nZW1haWwnXSwgW3R5cGU9J251bWJlciddLCBbdHlwZT0nc2VhcmNoJ10sIFt0eXBlPSd0ZWwnXSwgW3R5cGU9J3RpbWUnXSwgW3R5cGU9J3VybCddLCBbdHlwZT0nY29sb3InXSwgdGV4dGFyZWEge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6I2ZmMDM0NjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuaWNvbi1hc3Rlcmlzay50ZXh0LXdhcm5pbmcge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICAuaWNvbi1hc3RlcmlzayB7XHJcbiAgICAgICAgZm9udC1zaXplOiA4cHg7XHJcbiAgICAgICAgdG9wOiAtNHB4O1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIH1cclxuICAgIC5oYXMtZXJyb3IgLmZvcm0tY29udHJvbCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xyXG4gICAgfVxyXG5cclxuICAgIC8qIGZvcm0gKi9cclxuXHJcbiAgICAubG9naW4tZm9ybSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWFyZ2luOiAwcHggYXV0bztcclxuICAgICAgICBtYXgtd2lkdGg6IDUzMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5vciB7XHJcbiAgICAgICAgbWFyZ2luOiAyMHB4IDA7XHJcblxyXG4gICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xyXG4gICAgICAgICAgICBjb2xvcjogIzE1MGUzMztcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2UxZTBlNDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA1ODBweDtcclxuICAgICAgICAgICAgbWFyZ2luOiAtOXB4IGF1dG8gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm0tZ3JvdXAge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICAgICAgaGVpZ2h0OjgwcHg7XHJcblxyXG4gICAgICAgICYtLW5vcm1hbGl6ZSB7XHJcbiAgICAgICAgICAgIGhlaWdodDphdXRvO1xyXG4gICAgICAgICAgICBtYXJnaW46MTBweCAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybS1ncm91cC5pbnB1dC1jaGVja2JveC13cmFwcGVyIHtcclxuICAgICAgICBoZWlnaHQ6YXV0bztcclxuICAgIH1cclxuICAgIGZpZWxkc2V0IHtcclxuICAgICAgICBtYXJnaW46IDAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBhZGRpbmc6IDAhaW1wb3J0YW50O1xyXG4gICAgICAgIGJvcmRlcjogMCFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmxvZ2luLWZvcm0ge1xyXG5cclxuICAgICAgICAmX190aXRsZSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygyNnB4KTtcclxuICAgICAgICAgICAgY29sb3I6IzE1MGUzMztcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6MC4ycHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjoyMHB4IDA7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OjYwMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC5wYXNzd29yZC1zdHJlbmdodC0td3JhcHBlciB7XHJcbiAgICAgICAgcGFkZGluZzogMTBweDtcclxuICAgICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcclxuICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgcGFkZGluZzogMjBweCAyNXB4O1xyXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5Yzk3YTY7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgICAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBjb2xvcjogIzJDM0U1MDtcclxuICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDtcclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLnBhc3N3b3JkLS1pbmZvcm1hdGlvbiB1bCB7XHJcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gICAgICAgIG1hcmdpbjogNXB4IDAgMDtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gICAgLnBhc3N3b3JkLS1pbmZvcm1hdGlvbiB1bCBsaSB7XHJcbiAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICBjb2xvcjogIzJDM0U1MDtcclxuICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnBhc3N3b3JkLS1pbmZvcm1hdGlvbiB1bCBsaS52YWxpZCBpLmZhIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcclxuICAgIH1cclxuXHJcbiAgICAucGFzc3dvcmQtLWluZm9ybWF0aW9uIHVsIGxpLmludmFsaWQgaS5mYSB7XHJcbiAgICAgICAgZGlzcGxheTpub25lO1xyXG4gICAgfVxyXG5cclxuICAgIC5wYXNzd29yZC0taW5mb3JtYXRpb24gdWwgbGkuaW52YWxpZCB7XHJcbiAgICAgICAgY29sb3I6ICMyQzNFNTA7XHJcbiAgICAgICAgcGFkZGluZzogMCAwIDAgMjBweDtcclxuICAgIH1cclxuXHJcbiAgICAucGFzc3dvcmQtLWluZm9ybWF0aW9uIHVsIGxpLnZhbGlkIHtcclxuICAgICAgICBjb2xvcjogIzAwY2E2YjtcclxuICAgICAgICBwYWRkaW5nOiAwIDAgMCAwO1xyXG4gICAgfVxyXG4gICAgI3Bhc3N3b3JkU3RyZW5ndGgge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGhlaWdodDogNXB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcclxuICAgIH1cclxuICAgIC5zdHJlbmd0aDAge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7IC8qIHRvbyBzaG9ydCAqL1xyXG4gICAgICAgIHdpZHRoOiAwcHg7XHJcbiAgICB9XHJcbiAgICAuc3RyZW5ndGgxIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lIHJlcGVhdCBzY3JvbGwgMCAwICNGRjQ1NDU7Lyogd2VhayAqL1xyXG4gICAgICAgIHdpZHRoOiAyNSU7XHJcbiAgICB9XHJcbiAgICAuc3RyZW5ndGgyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lIHJlcGVhdCBzY3JvbGwgMCAwICNGRkM4MjQ7LyogZ29vZCAqL1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICB9XHJcbiAgICAuc3RyZW5ndGgzIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZSByZXBlYXQgc2Nyb2xsIDAgMCAjNjY5OUNDOy8qIHN0cm9uZyAqL1xyXG4gICAgICAgIHdpZHRoOiA3NSU7XHJcbiAgICB9XHJcblxyXG4gICAgLnN0cmVuZ3RoNCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgIzAwODAwMDsvKiBiZXN0ICovXHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgLmhlbHAtYmxvY2t7XHJcbiAgICBtYXJnaW4tdG9wOiAtNXB4IWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLmlucHV0LWNoZWNrYm94LXdyYXBwZXIuaGFzLWVycm9yIGxhYmVsIHtcclxuICAgICAgICBjb2xvcjogI2ZmMDM0NjtcclxuXHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmYwMzQ2O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgZm9ybSAuY29udHJvbC1ncm91cCAuaGVscCB7XHJcbiAgICAgIGNvbG9yOiAjODg4ODg4O1xyXG4gICAgICBtYXJnaW46IC01cHggLTE1cHggNXB4IDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm0gLmNvbnRyb2wtZ3JvdXAuY29udHJvbC1ncm91cC10ZXh0YXJlYSB0ZXh0YXJlYSB7XHJcbiAgICAgIGhlaWdodDogMTIwcHg7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MGVtKSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLmctcmVjYXB0Y2hhIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xyXG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xyXG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAgMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyMGVtKSB7XHJcblxyXG4gICAgICAgIC5nLXJlY2FwdGNoYSB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcclxuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNyk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcclxuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qSGlkZSBhbGwgZXhjZXB0IGZpcnN0IGZpZWxkc2V0Ki9cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIGRpdiNpbmZvcm1hdGlvbl9jb25maXJtYXRpb24gaDUge1xyXG4gICAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbjogMzBweCAwO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLmhhcy1lcnJvciAuaGVscC1ibG9jayB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qYnV0dG9ucyovXHJcblxyXG4gICAgLmJvdHRvbS0tYWN0aW9ucyAge1xyXG4gICAgICAgIG1hcmdpbjogMjBweCAwIDAgMDtcclxuICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHJcbiAgICAgICAgcCwgYSB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICAgICAgY29sb3I6ICM5Yzk3YTY7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5sZWZ0IHtcclxuICAgICAgICAgICAgZmxvYXQ6bGVmdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5yaWdodCB7XHJcbiAgICAgICAgICAgIGZsb2F0OnJpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGxhYmVsIC5yZWZlcmVuY2UtbWFyayB7XHJcbiAgICAgICAgZGlzcGxheTpub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlIGFzIHRoZSBiYXNlLlxuLy8vXG4vLy8gQHJldHVybnMge0xpc3R9IEEgbGlzdCBvZiBjb252ZXJ0ZWQgdmFsdWVzLlxuQGZ1bmN0aW9uIHJlbS1jYWxjKCR2YWx1ZXMsICRiYXNlOiBudWxsKSB7XG4gICRyZW0tdmFsdWVzOiAoKTtcbiAgJGNvdW50OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSAxMDAlIGZvbnQgc2l6ZSA9IDE2cHggaW4gbW9zdCBhbGwgYnJvd3NlcnNcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIC8vIFVzaW5nIHJlbSBhcyBiYXNlIGFsbG93cyBjb3JyZWN0IHNjYWxpbmdcbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmICRjb3VudCA9PSAxIHtcbiAgICBAcmV0dXJuIC16Zi10by1yZW0oJHZhbHVlcywgJGJhc2UpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY291bnQge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIC16Zi10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlbS12YWx1ZXM7XG59XG5cbi8vIENvbnZlcnRzIGEgdW5pdGxlc3MsIHBpeGVsLCBvciByZW0gdmFsdWUgdG8gZW0sIGZvciB1c2UgaW4gYnJlYWtwb2ludHMuXG5AZnVuY3Rpb24gLXpmLWJwLXRvLWVtKCR2YWx1ZSkge1xuICAvLyBQaXhlbCBhbmQgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gcmVtc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcgb3IgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgJHZhbHVlOiByZW0tY2FsYygkdmFsdWUsICRiYXNlOiAxNnB4KTtcbiAgfVxuXG4gIC8vIFRoZW4gdGhlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBlbXNcbiAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxZW07XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsIHZhbHVlIHRvIG1hdGNoaW5nIHJlbSB2YWx1ZS4gKkFueSogdmFsdWUgcGFzc2VkLCByZWdhcmRsZXNzIG9mIHVuaXQsIGlzIGFzc3VtZWQgdG8gYmUgYSBwaXhlbCB2YWx1ZS4gQnkgZGVmYXVsdCwgdGhlIGJhc2UgcGl4ZWwgdmFsdWUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHJlbSB2YWx1ZSBpcyB0YWtlbiBmcm9tIHRoZSBgJGdsb2JhbC1mb250LXNpemVgIHZhcmlhYmxlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIEJhc2UgZm9yIHBpeGVsIGNvbnZlcnNpb24uXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciBpbiByZW1zLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGhlIGJhc2UgcGl4ZWwgdmFsdWUuIHJlbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzIGlzLlxuQGZ1bmN0aW9uIC16Zi10by1yZW0oJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBudW1iZXJcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnbnVtYmVyJyB7XG4gICAgQHdhcm4gaW5zcGVjdCgkdmFsdWUpICsgJyB3YXMgcGFzc2VkIHRvIHJlbS1jYWxjKCksIHdoaWNoIGlzIG5vdCBhIG51bWJlci4nO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGVtIGludG8gcmVtIGlmIHNvbWVvbmUgaGFuZHMgb3ZlciAnZW0nc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogMXJlbTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtIG9yIGVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gVHVybiAwcmVtIGludG8gMFxuICBAaWYgJHZhbHVlID09IDByZW0ge1xuICAgICR2YWx1ZTogMDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCwgcGVyY2VudGFnZSwgcmVtIG9yIGVtIHZhbHVlIHRvIGEgdW5pdGxlc3MgdmFsdWUgYmFzZWQgb24gYSBnaXZlbiBmb250IHNpemUuIElkZWFsIGZvciB3b3JraW5nIG91dCB1bml0bGVzcyBsaW5lIGhlaWdodHMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydCB0byBhIHVuaXRsZXNzIGxpbmUgaGVpZ2h0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGZvbnQgc2l6ZSB0byB1c2UgdG8gd29yayBvdXQgdGhlIGxpbmUgaGVpZ2h0IC0gZGVmYXVsdHMgdG8gJGdsb2JhbC1mb250LXNpemVcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBVbml0bGVzcyBudW1iZXJcbkBmdW5jdGlvbiB1bml0bGVzcy1jYWxjKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBGaXJzdCwgbGV0cyBjb252ZXJ0IG91ciAkYmFzZSB0byBwaXhlbHNcblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgQGlmIHVuaXQoJGJhc2UpID09ICclJyB7XG4gICAgJGJhc2U6ICgkYmFzZSAvIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gTm93IGxldCdzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlciB0aGFuIDEwIGFyZSBtZWFudCB0byBiZSBhYnNvbHV0ZSBpbiAncHgnXG4gIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAoJHZhbHVlID4gMTApIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIHN0cmlwLXVuaXQoJGJhc2UpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iXX0= */