/*!
 * Hover.css (http://ianlunn.github.io/Hover/)
 * Version: 2.3.2
 * Author: Ian Lunn @IanLunn
 * Author URL: http://ianlunn.co.uk/
 * Github: https://github.com/IanLunn/Hover

 * Hover.css Copyright Ian Lunn 2017. Generated with Sass.
 */
div#supplierFlyout {
    display: none;
    position: fixed;
    left: 0;
    bottom: 25px;
    z-index: 99;
    background: #fff;
    padding: 25px 75px 25px 25px;
    border-radius: 0 10px 10px 0;
}
div#supplierFlyout h2 {
text-transform: capitalize;
    color: #2a4788;
    font-size: 1rem;
    font-weight: 700;
font-family: museo-sans, sans-serifi!Important;
}
div#supplierFlyout p {
    color: #2a4788;
    font-size: 1rem;
font-family: museo-sans, sans-serifi!Important;
}
div#supplierFlyout a {
    margin-bottom: 0!important;
    font-size: .8rem;
    padding: 10px 15px!important;
font-family: museo-sans, sans-serifi!Important;
}
div#supplierFlyout div.close {
    width: 15px;
    position: absolute;
    right: 10px;
    top: 10px;
    cursor: pointer;
}
div#supplierFlyout .button {
display: inline-block;
    vertical-align: middle;
    margin: 0 0 1rem 0;
    font-family: inherit;
    padding: 0.9em 2.25em;
    -webkit-appearance: none;
    border: 1px solid transparent;
    border-radius: 32px!important;
    transition: background-color 0.1s ease-out, border-color 0.1s ease-out, color 0.1s ease-out;
    font-size: 1rem!important;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    background-color: #ff6714;
    color: #fefefe;
    font-weight: 700!important;
    
text-transform: capitalize;
font-family: museo-sans, sans-serifi!Important;
}
.box.shadow {
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0), 0 2px 4px 0 rgba(0, 0, 0, 0.25);
    border-width: 1px;
    border-style: solid;
    border-color: #dfe3e5;
    border-radius: 10px;
    color: white;
}
#videos .blockgridBoxWrapper > div,
#caseStudies .blockgridBoxWrapper > div {
  border: 1px solid #DFE3E5;
}
select.industry {
  width: 255px;
}
ul.inspireSubNav {
  list-style-type: none;
  margin-bottom: 5px;
}
ul.inspireSubNav a {
  color: #a4a4a4;
  font-weight: 300;
}
ul.inspireSubNav li:hover {
  background: none;
}
ul.inspireSubNav a:hover {
  color: #00b5ef;
  background: transparent;
}
ul.inspireLegacySubNavMobile > li:first-child {
    padding: 0.5rem 1.2rem;
    background: #00b5ef!important;
    border: none;
    color: #ffffff;
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.2;
    text-transform: none;
    text-decoration: none;
}
ul.inspireLegacySubNavMobile li {
    padding: 0.3rem 1.2rem;
    font-size: 1rem;
    background: none;

}
.off-canvas ul.inspireSubNav a {
  padding: 0.3rem 1.2rem;
  font-size: 1rem;
}
.button.new {
  font-family: museo-sans, sans-serif;
  margin: .25rem 0 1rem 0;
    padding: 10.5px 28px 10px 24px!important;
    border-radius: 60px!Important;
    text-transform: capitalize;
        border: 3px solid  #35A89B!important;
    font-size: 16px!important;
    line-height: 1;
    font-weight: 700!important;
    background-color:  #35A89B!important;
    
}
.button.new:hover {
  background-color: #fefefe!Important;
    border-color:  #35A89B!important;
    color:  #35A89B!important;
}
.dark-blue {
  color: #2a4788!important;
}
h3.h6.smallFooter {
font-size: 17.952px;
}
#blog-content,
#blog-content p,
#blog-content ul li {
color: #5a5a5a;
}
.boxgreyPartner img {
  max-width: 149px;
  max-height: 149px;
}
.new-header-on-legacy .top-banner-container.grid-container {
  max-width: 78.75rem;
  margin: 0 auto;
}
/* 2D TRANSITIONS */
/* Grow */
.hvr-grow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }
  .hvr-grow:hover, .hvr-grow:focus, .hvr-grow:active {
    -webkit-transform: scale(1.1);
    -ms-transform: scale(1.1);
        transform: scale(1.1); }

/* Shrink */
.hvr-shrink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }
  .hvr-shrink:hover, .hvr-shrink:focus, .hvr-shrink:active {
    -webkit-transform: scale(0.9);
    -ms-transform: scale(0.9);
        transform: scale(0.9); }

/* Pulse */
@-webkit-keyframes hvr-pulse {
  25% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1); }
  75% {
    -webkit-transform: scale(0.9);
    transform: scale(0.9); } }

@keyframes hvr-pulse {
  25% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1); }
  75% {
    -webkit-transform: scale(0.9);
    transform: scale(0.9); } }

.hvr-pulse {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-pulse:hover, .hvr-pulse:focus, .hvr-pulse:active {
    -webkit-animation-name: hvr-pulse;
    animation-name: hvr-pulse;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite; }

/* Pulse Grow */
@-webkit-keyframes hvr-pulse-grow {
  to {
    -webkit-transform: scale(1.1);
    transform: scale(1.1); } }

@keyframes hvr-pulse-grow {
  to {
    -webkit-transform: scale(1.1);
    transform: scale(1.1); } }

.hvr-pulse-grow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-pulse-grow:hover, .hvr-pulse-grow:focus, .hvr-pulse-grow:active {
    -webkit-animation-name: hvr-pulse-grow;
    animation-name: hvr-pulse-grow;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-direction: alternate;
    animation-direction: alternate; }

/* Pulse Shrink */
@-webkit-keyframes hvr-pulse-shrink {
  to {
    -webkit-transform: scale(0.9);
    transform: scale(0.9); } }

@keyframes hvr-pulse-shrink {
  to {
    -webkit-transform: scale(0.9);
    transform: scale(0.9); } }

.hvr-pulse-shrink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-pulse-shrink:hover, .hvr-pulse-shrink:focus, .hvr-pulse-shrink:active {
    -webkit-animation-name: hvr-pulse-shrink;
    animation-name: hvr-pulse-shrink;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-direction: alternate;
    animation-direction: alternate; }

/* Push */
@-webkit-keyframes hvr-push {
  50% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1); } }

@keyframes hvr-push {
  50% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8); }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1); } }

.hvr-push {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-push:hover, .hvr-push:focus, .hvr-push:active {
    -webkit-animation-name: hvr-push;
    animation-name: hvr-push;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Pop */
@-webkit-keyframes hvr-pop {
  50% {
    -webkit-transform: scale(1.2);
    transform: scale(1.2); } }

@keyframes hvr-pop {
  50% {
    -webkit-transform: scale(1.2);
    transform: scale(1.2); } }

.hvr-pop {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-pop:hover, .hvr-pop:focus, .hvr-pop:active {
    -webkit-animation-name: hvr-pop;
    animation-name: hvr-pop;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Bounce In */
.hvr-bounce-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.5s; }
  .hvr-bounce-in:hover, .hvr-bounce-in:focus, .hvr-bounce-in:active {
    -webkit-transform: scale(1.2);
    -ms-transform: scale(1.2);
        transform: scale(1.2);
    transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); }

/* Bounce Out */
.hvr-bounce-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.5s; }
  .hvr-bounce-out:hover, .hvr-bounce-out:focus, .hvr-bounce-out:active {
    -webkit-transform: scale(0.8);
    -ms-transform: scale(0.8);
        transform: scale(0.8);
    transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); }

/* Rotate */
.hvr-rotate {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }
  .hvr-rotate:hover, .hvr-rotate:focus, .hvr-rotate:active {
    -webkit-transform: rotate(4deg);
    -ms-transform: rotate(4deg);
        transform: rotate(4deg); }

/* Grow Rotate */
.hvr-grow-rotate {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }
  .hvr-grow-rotate:hover, .hvr-grow-rotate:focus, .hvr-grow-rotate:active {
    -webkit-transform: scale(1.1) rotate(4deg);
    -ms-transform: scale(1.1) rotate(4deg);
        transform: scale(1.1) rotate(4deg); }

/* Float */
.hvr-float {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out; }
  .hvr-float:hover, .hvr-float:focus, .hvr-float:active {
    -webkit-transform: translateY(-8px);
    -ms-transform: translateY(-8px);
        transform: translateY(-8px); }

/* Sink */
.hvr-sink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  transition-timing-function: ease-out; }
  .hvr-sink:hover, .hvr-sink:focus, .hvr-sink:active {
    -webkit-transform: translateY(8px);
    -ms-transform: translateY(8px);
        transform: translateY(8px); }

/* Bob */
@-webkit-keyframes hvr-bob {
  0% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px); }
  50% {
    -webkit-transform: translateY(-4px);
    transform: translateY(-4px); }
  100% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px); } }

@keyframes hvr-bob {
  0% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px); }
  50% {
    -webkit-transform: translateY(-4px);
    transform: translateY(-4px); }
  100% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px); } }

@-webkit-keyframes hvr-bob-float {
  100% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px); } }

@keyframes hvr-bob-float {
  100% {
    -webkit-transform: translateY(-8px);
    transform: translateY(-8px); } }

.hvr-bob {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-bob:hover, .hvr-bob:focus, .hvr-bob:active {
    -webkit-animation-name: hvr-bob-float, hvr-bob;
    animation-name: hvr-bob-float, hvr-bob;
    -webkit-animation-duration: .3s, 1.5s;
    animation-duration: .3s, 1.5s;
    -webkit-animation-delay: 0s, .3s;
    animation-delay: 0s, .3s;
    -webkit-animation-timing-function: ease-out, ease-in-out;
    animation-timing-function: ease-out, ease-in-out;
    -webkit-animation-iteration-count: 1, infinite;
    animation-iteration-count: 1, infinite;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    -webkit-animation-direction: normal, alternate;
    animation-direction: normal, alternate; }

/* Hang */
@-webkit-keyframes hvr-hang {
  0% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px); }
  50% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px); }
  100% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px); } }

@keyframes hvr-hang {
  0% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px); }
  50% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px); }
  100% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px); } }

@-webkit-keyframes hvr-hang-sink {
  100% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px); } }

@keyframes hvr-hang-sink {
  100% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px); } }

.hvr-hang {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-hang:hover, .hvr-hang:focus, .hvr-hang:active {
    -webkit-animation-name: hvr-hang-sink, hvr-hang;
    animation-name: hvr-hang-sink, hvr-hang;
    -webkit-animation-duration: .3s, 1.5s;
    animation-duration: .3s, 1.5s;
    -webkit-animation-delay: 0s, .3s;
    animation-delay: 0s, .3s;
    -webkit-animation-timing-function: ease-out, ease-in-out;
    animation-timing-function: ease-out, ease-in-out;
    -webkit-animation-iteration-count: 1, infinite;
    animation-iteration-count: 1, infinite;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    -webkit-animation-direction: normal, alternate;
    animation-direction: normal, alternate; }

/* Skew */
.hvr-skew {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }
  .hvr-skew:hover, .hvr-skew:focus, .hvr-skew:active {
    -webkit-transform: skew(-10deg);
    -ms-transform: skew(-10deg);
        transform: skew(-10deg); }

/* Skew Forward */
.hvr-skew-forward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-transform-origin: 0 100%;
  -ms-transform-origin: 0 100%;
      transform-origin: 0 100%; }
  .hvr-skew-forward:hover, .hvr-skew-forward:focus, .hvr-skew-forward:active {
    -webkit-transform: skew(-10deg);
    -ms-transform: skew(-10deg);
        transform: skew(-10deg); }

/* Skew Backward */
.hvr-skew-backward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-transform-origin: 0 100%;
  -ms-transform-origin: 0 100%;
      transform-origin: 0 100%; }
  .hvr-skew-backward:hover, .hvr-skew-backward:focus, .hvr-skew-backward:active {
    -webkit-transform: skew(10deg);
    -ms-transform: skew(10deg);
        transform: skew(10deg); }

/* Wobble Vertical */
@-webkit-keyframes hvr-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px); }
  33.3% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px); }
  49.95% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px); }
  66.6% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px); }
  83.25% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px); }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@keyframes hvr-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px); }
  33.3% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px); }
  49.95% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px); }
  66.6% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px); }
  83.25% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px); }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

.hvr-wobble-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-wobble-vertical:hover, .hvr-wobble-vertical:focus, .hvr-wobble-vertical:active {
    -webkit-animation-name: hvr-wobble-vertical;
    animation-name: hvr-wobble-vertical;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Wobble Horizontal */
@-webkit-keyframes hvr-wobble-horizontal {
  16.65% {
    -webkit-transform: translateX(8px);
    transform: translateX(8px); }
  33.3% {
    -webkit-transform: translateX(-6px);
    transform: translateX(-6px); }
  49.95% {
    -webkit-transform: translateX(4px);
    transform: translateX(4px); }
  66.6% {
    -webkit-transform: translateX(-2px);
    transform: translateX(-2px); }
  83.25% {
    -webkit-transform: translateX(1px);
    transform: translateX(1px); }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

@keyframes hvr-wobble-horizontal {
  16.65% {
    -webkit-transform: translateX(8px);
    transform: translateX(8px); }
  33.3% {
    -webkit-transform: translateX(-6px);
    transform: translateX(-6px); }
  49.95% {
    -webkit-transform: translateX(4px);
    transform: translateX(4px); }
  66.6% {
    -webkit-transform: translateX(-2px);
    transform: translateX(-2px); }
  83.25% {
    -webkit-transform: translateX(1px);
    transform: translateX(1px); }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

.hvr-wobble-horizontal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-wobble-horizontal:hover, .hvr-wobble-horizontal:focus, .hvr-wobble-horizontal:active {
    -webkit-animation-name: hvr-wobble-horizontal;
    animation-name: hvr-wobble-horizontal;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Wobble To Bottom Right */
@-webkit-keyframes hvr-wobble-to-bottom-right {
  16.65% {
    -webkit-transform: translate(8px, 8px);
    transform: translate(8px, 8px); }
  33.3% {
    -webkit-transform: translate(-6px, -6px);
    transform: translate(-6px, -6px); }
  49.95% {
    -webkit-transform: translate(4px, 4px);
    transform: translate(4px, 4px); }
  66.6% {
    -webkit-transform: translate(-2px, -2px);
    transform: translate(-2px, -2px); }
  83.25% {
    -webkit-transform: translate(1px, 1px);
    transform: translate(1px, 1px); }
  100% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0); } }

@keyframes hvr-wobble-to-bottom-right {
  16.65% {
    -webkit-transform: translate(8px, 8px);
    transform: translate(8px, 8px); }
  33.3% {
    -webkit-transform: translate(-6px, -6px);
    transform: translate(-6px, -6px); }
  49.95% {
    -webkit-transform: translate(4px, 4px);
    transform: translate(4px, 4px); }
  66.6% {
    -webkit-transform: translate(-2px, -2px);
    transform: translate(-2px, -2px); }
  83.25% {
    -webkit-transform: translate(1px, 1px);
    transform: translate(1px, 1px); }
  100% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0); } }

.hvr-wobble-to-bottom-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-wobble-to-bottom-right:hover, .hvr-wobble-to-bottom-right:focus, .hvr-wobble-to-bottom-right:active {
    -webkit-animation-name: hvr-wobble-to-bottom-right;
    animation-name: hvr-wobble-to-bottom-right;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Wobble To Top Right */
@-webkit-keyframes hvr-wobble-to-top-right {
  16.65% {
    -webkit-transform: translate(8px, -8px);
    transform: translate(8px, -8px); }
  33.3% {
    -webkit-transform: translate(-6px, 6px);
    transform: translate(-6px, 6px); }
  49.95% {
    -webkit-transform: translate(4px, -4px);
    transform: translate(4px, -4px); }
  66.6% {
    -webkit-transform: translate(-2px, 2px);
    transform: translate(-2px, 2px); }
  83.25% {
    -webkit-transform: translate(1px, -1px);
    transform: translate(1px, -1px); }
  100% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0); } }

@keyframes hvr-wobble-to-top-right {
  16.65% {
    -webkit-transform: translate(8px, -8px);
    transform: translate(8px, -8px); }
  33.3% {
    -webkit-transform: translate(-6px, 6px);
    transform: translate(-6px, 6px); }
  49.95% {
    -webkit-transform: translate(4px, -4px);
    transform: translate(4px, -4px); }
  66.6% {
    -webkit-transform: translate(-2px, 2px);
    transform: translate(-2px, 2px); }
  83.25% {
    -webkit-transform: translate(1px, -1px);
    transform: translate(1px, -1px); }
  100% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0); } }

.hvr-wobble-to-top-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-wobble-to-top-right:hover, .hvr-wobble-to-top-right:focus, .hvr-wobble-to-top-right:active {
    -webkit-animation-name: hvr-wobble-to-top-right;
    animation-name: hvr-wobble-to-top-right;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Wobble Top */
@-webkit-keyframes hvr-wobble-top {
  16.65% {
    -webkit-transform: skew(-12deg);
    transform: skew(-12deg); }
  33.3% {
    -webkit-transform: skew(10deg);
    transform: skew(10deg); }
  49.95% {
    -webkit-transform: skew(-6deg);
    transform: skew(-6deg); }
  66.6% {
    -webkit-transform: skew(4deg);
    transform: skew(4deg); }
  83.25% {
    -webkit-transform: skew(-2deg);
    transform: skew(-2deg); }
  100% {
    -webkit-transform: skew(0);
    transform: skew(0); } }

@keyframes hvr-wobble-top {
  16.65% {
    -webkit-transform: skew(-12deg);
    transform: skew(-12deg); }
  33.3% {
    -webkit-transform: skew(10deg);
    transform: skew(10deg); }
  49.95% {
    -webkit-transform: skew(-6deg);
    transform: skew(-6deg); }
  66.6% {
    -webkit-transform: skew(4deg);
    transform: skew(4deg); }
  83.25% {
    -webkit-transform: skew(-2deg);
    transform: skew(-2deg); }
  100% {
    -webkit-transform: skew(0);
    transform: skew(0); } }

.hvr-wobble-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transform-origin: 0 100%;
  -ms-transform-origin: 0 100%;
      transform-origin: 0 100%; }
  .hvr-wobble-top:hover, .hvr-wobble-top:focus, .hvr-wobble-top:active {
    -webkit-animation-name: hvr-wobble-top;
    animation-name: hvr-wobble-top;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Wobble Bottom */
@-webkit-keyframes hvr-wobble-bottom {
  16.65% {
    -webkit-transform: skew(-12deg);
    transform: skew(-12deg); }
  33.3% {
    -webkit-transform: skew(10deg);
    transform: skew(10deg); }
  49.95% {
    -webkit-transform: skew(-6deg);
    transform: skew(-6deg); }
  66.6% {
    -webkit-transform: skew(4deg);
    transform: skew(4deg); }
  83.25% {
    -webkit-transform: skew(-2deg);
    transform: skew(-2deg); }
  100% {
    -webkit-transform: skew(0);
    transform: skew(0); } }

@keyframes hvr-wobble-bottom {
  16.65% {
    -webkit-transform: skew(-12deg);
    transform: skew(-12deg); }
  33.3% {
    -webkit-transform: skew(10deg);
    transform: skew(10deg); }
  49.95% {
    -webkit-transform: skew(-6deg);
    transform: skew(-6deg); }
  66.6% {
    -webkit-transform: skew(4deg);
    transform: skew(4deg); }
  83.25% {
    -webkit-transform: skew(-2deg);
    transform: skew(-2deg); }
  100% {
    -webkit-transform: skew(0);
    transform: skew(0); } }

.hvr-wobble-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  -webkit-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
      transform-origin: 100% 0; }
  .hvr-wobble-bottom:hover, .hvr-wobble-bottom:focus, .hvr-wobble-bottom:active {
    -webkit-animation-name: hvr-wobble-bottom;
    animation-name: hvr-wobble-bottom;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Wobble Skew */
@-webkit-keyframes hvr-wobble-skew {
  16.65% {
    -webkit-transform: skew(-12deg);
    transform: skew(-12deg); }
  33.3% {
    -webkit-transform: skew(10deg);
    transform: skew(10deg); }
  49.95% {
    -webkit-transform: skew(-6deg);
    transform: skew(-6deg); }
  66.6% {
    -webkit-transform: skew(4deg);
    transform: skew(4deg); }
  83.25% {
    -webkit-transform: skew(-2deg);
    transform: skew(-2deg); }
  100% {
    -webkit-transform: skew(0);
    transform: skew(0); } }

@keyframes hvr-wobble-skew {
  16.65% {
    -webkit-transform: skew(-12deg);
    transform: skew(-12deg); }
  33.3% {
    -webkit-transform: skew(10deg);
    transform: skew(10deg); }
  49.95% {
    -webkit-transform: skew(-6deg);
    transform: skew(-6deg); }
  66.6% {
    -webkit-transform: skew(4deg);
    transform: skew(4deg); }
  83.25% {
    -webkit-transform: skew(-2deg);
    transform: skew(-2deg); }
  100% {
    -webkit-transform: skew(0);
    transform: skew(0); } }

.hvr-wobble-skew {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-wobble-skew:hover, .hvr-wobble-skew:focus, .hvr-wobble-skew:active {
    -webkit-animation-name: hvr-wobble-skew;
    animation-name: hvr-wobble-skew;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Buzz */
@-webkit-keyframes hvr-buzz {
  50% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg); }
  100% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg); } }

@keyframes hvr-buzz {
  50% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg); }
  100% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg); } }

.hvr-buzz {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-buzz:hover, .hvr-buzz:focus, .hvr-buzz:active {
    -webkit-animation-name: hvr-buzz;
    animation-name: hvr-buzz;
    -webkit-animation-duration: 0.15s;
    animation-duration: 0.15s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite; }

/* Buzz Out */
@-webkit-keyframes hvr-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg); }
  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg); }
  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg); }
  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg); }
  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg); }
  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg); }
  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg); }
  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg); }
  90% {
    -webkit-transform: translateX(1px) rotate(0);
    transform: translateX(1px) rotate(0); }
  100% {
    -webkit-transform: translateX(-1px) rotate(0);
    transform: translateX(-1px) rotate(0); } }

@keyframes hvr-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg); }
  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg); }
  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg); }
  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg); }
  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg); }
  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg); }
  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg); }
  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg); }
  90% {
    -webkit-transform: translateX(1px) rotate(0);
    transform: translateX(1px) rotate(0); }
  100% {
    -webkit-transform: translateX(-1px) rotate(0);
    transform: translateX(-1px) rotate(0); } }

.hvr-buzz-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-buzz-out:hover, .hvr-buzz-out:focus, .hvr-buzz-out:active {
    -webkit-animation-name: hvr-buzz-out;
    animation-name: hvr-buzz-out;
    -webkit-animation-duration: 0.75s;
    animation-duration: 0.75s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Forward */
.hvr-forward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }
  .hvr-forward:hover, .hvr-forward:focus, .hvr-forward:active {
    -webkit-transform: translateX(8px);
    -ms-transform: translateX(8px);
        transform: translateX(8px); }

/* Backward */
.hvr-backward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }
  .hvr-backward:hover, .hvr-backward:focus, .hvr-backward:active {
    -webkit-transform: translateX(-8px);
    -ms-transform: translateX(-8px);
        transform: translateX(-8px); }

/* BACKGROUND TRANSITIONS */
/* Fade */
.hvr-fade {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  overflow: hidden;
  transition-duration: 0.3s;
  transition-property: color, background-color; }
  .hvr-fade:hover, .hvr-fade:focus, .hvr-fade:active {
    background-color: #2098D1;
    color: white; }

/* Back Pulse */
@-webkit-keyframes hvr-back-pulse {
  50% {
    background-color: rgba(32, 152, 209, 0.75); } }

@keyframes hvr-back-pulse {
  50% {
    background-color: rgba(32, 152, 209, 0.75); } }

.hvr-back-pulse {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  overflow: hidden;
  transition-duration: 0.5s;
  transition-property: color, background-color; }
  .hvr-back-pulse:hover, .hvr-back-pulse:focus, .hvr-back-pulse:active {
    -webkit-animation-name: hvr-back-pulse;
    animation-name: hvr-back-pulse;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-delay: 0.5s;
    animation-delay: 0.5s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    background-color: #2098D1;
    background-color: #2098d1;
    color: white; }

/* Sweep To Right */
.hvr-sweep-to-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-property: color;
  transition-duration: 0.3s; }
  .hvr-sweep-to-right:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #2098D1;
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
        transform: scaleX(0);
    -webkit-transform-origin: 0 50%;
    -ms-transform-origin: 0 50%;
        transform-origin: 0 50%;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-sweep-to-right:hover, .hvr-sweep-to-right:focus, .hvr-sweep-to-right:active {
    color: white; }
    .hvr-sweep-to-right:hover:before, .hvr-sweep-to-right:focus:before, .hvr-sweep-to-right:active:before {
      -webkit-transform: scaleX(1);
      -ms-transform: scaleX(1);
          transform: scaleX(1); }

/* Sweep To Left */
.hvr-sweep-to-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-property: color;
  transition-duration: 0.3s; }
  .hvr-sweep-to-left:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #2098D1;
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
        transform: scaleX(0);
    -webkit-transform-origin: 100% 50%;
    -ms-transform-origin: 100% 50%;
        transform-origin: 100% 50%;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-sweep-to-left:hover, .hvr-sweep-to-left:focus, .hvr-sweep-to-left:active {
    color: white; }
    .hvr-sweep-to-left:hover:before, .hvr-sweep-to-left:focus:before, .hvr-sweep-to-left:active:before {
      -webkit-transform: scaleX(1);
      -ms-transform: scaleX(1);
          transform: scaleX(1); }

/* Sweep To Bottom */
.hvr-sweep-to-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-property: color;
  transition-duration: 0.3s; }
  .hvr-sweep-to-bottom:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #2098D1;
    -webkit-transform: scaleY(0);
    -ms-transform: scaleY(0);
        transform: scaleY(0);
    -webkit-transform-origin: 50% 0;
    -ms-transform-origin: 50% 0;
        transform-origin: 50% 0;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-sweep-to-bottom:hover, .hvr-sweep-to-bottom:focus, .hvr-sweep-to-bottom:active {
    color: white; }
    .hvr-sweep-to-bottom:hover:before, .hvr-sweep-to-bottom:focus:before, .hvr-sweep-to-bottom:active:before {
      -webkit-transform: scaleY(1);
      -ms-transform: scaleY(1);
          transform: scaleY(1); }

/* Sweep To Top */
.hvr-sweep-to-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-property: color;
  transition-duration: 0.3s; }
  .hvr-sweep-to-top:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #2098D1;
    -webkit-transform: scaleY(0);
    -ms-transform: scaleY(0);
        transform: scaleY(0);
    -webkit-transform-origin: 50% 100%;
    -ms-transform-origin: 50% 100%;
        transform-origin: 50% 100%;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-sweep-to-top:hover, .hvr-sweep-to-top:focus, .hvr-sweep-to-top:active {
    color: white; }
    .hvr-sweep-to-top:hover:before, .hvr-sweep-to-top:focus:before, .hvr-sweep-to-top:active:before {
      -webkit-transform: scaleY(1);
      -ms-transform: scaleY(1);
          transform: scaleY(1); }

/* Bounce To Right */
.hvr-bounce-to-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-property: color;
  transition-duration: 0.5s; }
  .hvr-bounce-to-right:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #2098D1;
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
        transform: scaleX(0);
    -webkit-transform-origin: 0 50%;
    -ms-transform-origin: 0 50%;
        transform-origin: 0 50%;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.5s;
    transition-timing-function: ease-out; }
  .hvr-bounce-to-right:hover, .hvr-bounce-to-right:focus, .hvr-bounce-to-right:active {
    color: white; }
    .hvr-bounce-to-right:hover:before, .hvr-bounce-to-right:focus:before, .hvr-bounce-to-right:active:before {
      -webkit-transform: scaleX(1);
      -ms-transform: scaleX(1);
          transform: scaleX(1);
      transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); }

/* Bounce To Left */
.hvr-bounce-to-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-property: color;
  transition-duration: 0.5s; }
  .hvr-bounce-to-left:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #2098D1;
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
        transform: scaleX(0);
    -webkit-transform-origin: 100% 50%;
    -ms-transform-origin: 100% 50%;
        transform-origin: 100% 50%;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.5s;
    transition-timing-function: ease-out; }
  .hvr-bounce-to-left:hover, .hvr-bounce-to-left:focus, .hvr-bounce-to-left:active {
    color: white; }
    .hvr-bounce-to-left:hover:before, .hvr-bounce-to-left:focus:before, .hvr-bounce-to-left:active:before {
      -webkit-transform: scaleX(1);
      -ms-transform: scaleX(1);
          transform: scaleX(1);
      transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); }

/* Bounce To Bottom */
.hvr-bounce-to-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-property: color;
  transition-duration: 0.5s; }
  .hvr-bounce-to-bottom:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #2098D1;
    -webkit-transform: scaleY(0);
    -ms-transform: scaleY(0);
        transform: scaleY(0);
    -webkit-transform-origin: 50% 0;
    -ms-transform-origin: 50% 0;
        transform-origin: 50% 0;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.5s;
    transition-timing-function: ease-out; }
  .hvr-bounce-to-bottom:hover, .hvr-bounce-to-bottom:focus, .hvr-bounce-to-bottom:active {
    color: white; }
    .hvr-bounce-to-bottom:hover:before, .hvr-bounce-to-bottom:focus:before, .hvr-bounce-to-bottom:active:before {
      -webkit-transform: scaleY(1);
      -ms-transform: scaleY(1);
          transform: scaleY(1);
      transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); }

/* Bounce To Top */
.hvr-bounce-to-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-property: color;
  transition-duration: 0.5s; }
  .hvr-bounce-to-top:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #2098D1;
    -webkit-transform: scaleY(0);
    -ms-transform: scaleY(0);
        transform: scaleY(0);
    -webkit-transform-origin: 50% 100%;
    -ms-transform-origin: 50% 100%;
        transform-origin: 50% 100%;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.5s;
    transition-timing-function: ease-out; }
  .hvr-bounce-to-top:hover, .hvr-bounce-to-top:focus, .hvr-bounce-to-top:active {
    color: white; }
    .hvr-bounce-to-top:hover:before, .hvr-bounce-to-top:focus:before, .hvr-bounce-to-top:active:before {
      -webkit-transform: scaleY(1);
      -ms-transform: scaleY(1);
          transform: scaleY(1);
      transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); }

/* Radial Out */
.hvr-radial-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
  background: #e1e1e1;
  transition-property: color;
  transition-duration: 0.3s; }
  .hvr-radial-out:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #2098D1;
    border-radius: 100%;
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
        transform: scale(0);
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-radial-out:hover, .hvr-radial-out:focus, .hvr-radial-out:active {
    color: white; }
    .hvr-radial-out:hover:before, .hvr-radial-out:focus:before, .hvr-radial-out:active:before {
      -webkit-transform: scale(2);
      -ms-transform: scale(2);
          transform: scale(2); }

/* Radial In */
.hvr-radial-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden;
  background: #2098D1;
  transition-property: color;
  transition-duration: 0.3s; }
  .hvr-radial-in:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #e1e1e1;
    border-radius: 100%;
    -webkit-transform: scale(2);
    -ms-transform: scale(2);
        transform: scale(2);
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-radial-in:hover, .hvr-radial-in:focus, .hvr-radial-in:active {
    color: white; }
    .hvr-radial-in:hover:before, .hvr-radial-in:focus:before, .hvr-radial-in:active:before {
      -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0); }

/* Rectangle In */
.hvr-rectangle-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  background: #2098D1;
  transition-property: color;
  transition-duration: 0.3s; }
  .hvr-rectangle-in:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #e1e1e1;
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
        transform: scale(1);
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-rectangle-in:hover, .hvr-rectangle-in:focus, .hvr-rectangle-in:active {
    color: white; }
    .hvr-rectangle-in:hover:before, .hvr-rectangle-in:focus:before, .hvr-rectangle-in:active:before {
      -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0); }

/* Rectangle Out */
.hvr-rectangle-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  background: #e1e1e1;
  transition-property: color;
  transition-duration: 0.3s; }
  .hvr-rectangle-out:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #2098D1;
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
        transform: scale(0);
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-rectangle-out:hover, .hvr-rectangle-out:focus, .hvr-rectangle-out:active {
    color: white; }
    .hvr-rectangle-out:hover:before, .hvr-rectangle-out:focus:before, .hvr-rectangle-out:active:before {
      -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1); }

/* Shutter In Horizontal */
.hvr-shutter-in-horizontal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  background: #2098D1;
  transition-property: color;
  transition-duration: 0.3s; }
  .hvr-shutter-in-horizontal:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #e1e1e1;
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
        transform: scaleX(1);
    -webkit-transform-origin: 50%;
    -ms-transform-origin: 50%;
        transform-origin: 50%;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-shutter-in-horizontal:hover, .hvr-shutter-in-horizontal:focus, .hvr-shutter-in-horizontal:active {
    color: white; }
    .hvr-shutter-in-horizontal:hover:before, .hvr-shutter-in-horizontal:focus:before, .hvr-shutter-in-horizontal:active:before {
      -webkit-transform: scaleX(0);
      -ms-transform: scaleX(0);
          transform: scaleX(0); }

/* Shutter Out Horizontal */
.hvr-shutter-out-horizontal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  background: #e1e1e1;
  transition-property: color;
  transition-duration: 0.3s; }
  .hvr-shutter-out-horizontal:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #2098D1;
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
        transform: scaleX(0);
    -webkit-transform-origin: 50%;
    -ms-transform-origin: 50%;
        transform-origin: 50%;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-shutter-out-horizontal:hover, .hvr-shutter-out-horizontal:focus, .hvr-shutter-out-horizontal:active {
    color: white; }
    .hvr-shutter-out-horizontal:hover:before, .hvr-shutter-out-horizontal:focus:before, .hvr-shutter-out-horizontal:active:before {
      -webkit-transform: scaleX(1);
      -ms-transform: scaleX(1);
          transform: scaleX(1); }

/* Shutter In Vertical */
.hvr-shutter-in-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  background: #2098D1;
  transition-property: color;
  transition-duration: 0.3s; }
  .hvr-shutter-in-vertical:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #e1e1e1;
    -webkit-transform: scaleY(1);
    -ms-transform: scaleY(1);
        transform: scaleY(1);
    -webkit-transform-origin: 50%;
    -ms-transform-origin: 50%;
        transform-origin: 50%;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-shutter-in-vertical:hover, .hvr-shutter-in-vertical:focus, .hvr-shutter-in-vertical:active {
    color: white; }
    .hvr-shutter-in-vertical:hover:before, .hvr-shutter-in-vertical:focus:before, .hvr-shutter-in-vertical:active:before {
      -webkit-transform: scaleY(0);
      -ms-transform: scaleY(0);
          transform: scaleY(0); }

/* Shutter Out Vertical */
.hvr-shutter-out-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  background: #e1e1e1;
  transition-property: color;
  transition-duration: 0.3s; }
  .hvr-shutter-out-vertical:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: #2098D1;
    -webkit-transform: scaleY(0);
    -ms-transform: scaleY(0);
        transform: scaleY(0);
    -webkit-transform-origin: 50%;
    -ms-transform-origin: 50%;
        transform-origin: 50%;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-shutter-out-vertical:hover, .hvr-shutter-out-vertical:focus, .hvr-shutter-out-vertical:active {
    color: white; }
    .hvr-shutter-out-vertical:hover:before, .hvr-shutter-out-vertical:focus:before, .hvr-shutter-out-vertical:active:before {
      -webkit-transform: scaleY(1);
      -ms-transform: scaleY(1);
          transform: scaleY(1); }

/* BORDER TRANSITIONS */
/* Border Fade */
.hvr-border-fade {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: box-shadow;
  box-shadow: inset 0 0 0 4px #e1e1e1, 0 0 1px transparent;
  /* Hack to improve aliasing on mobile/tablet devices */ }
  .hvr-border-fade:hover, .hvr-border-fade:focus, .hvr-border-fade:active {
    box-shadow: inset 0 0 0 4px #2098D1, 0 0 1px transparent;
    /* Hack to improve aliasing on mobile/tablet devices */ }

/* Hollow */
.hvr-hollow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: background;
  box-shadow: inset 0 0 0 4px #e1e1e1, 0 0 1px transparent;
  /* Hack to improve aliasing on mobile/tablet devices */ }
  .hvr-hollow:hover, .hvr-hollow:focus, .hvr-hollow:active {
    background: none; }

/* Trim */
.hvr-trim {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-trim:before {
    content: '';
    position: absolute;
    border: white solid 4px;
    top: 4px;
    left: 4px;
    right: 4px;
    bottom: 4px;
    opacity: 0;
    transition-duration: 0.3s;
    transition-property: opacity; }
  .hvr-trim:hover:before, .hvr-trim:focus:before, .hvr-trim:active:before {
    opacity: 1; }

/* Ripple Out */
@-webkit-keyframes hvr-ripple-out {
  100% {
    top: -12px;
    right: -12px;
    bottom: -12px;
    left: -12px;
    opacity: 0; } }

@keyframes hvr-ripple-out {
  100% {
    top: -12px;
    right: -12px;
    bottom: -12px;
    left: -12px;
    opacity: 0; } }

.hvr-ripple-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-ripple-out:before {
    content: '';
    position: absolute;
    border: #e1e1e1 solid 6px;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    -webkit-animation-duration: 1s;
    animation-duration: 1s; }
  .hvr-ripple-out:hover:before, .hvr-ripple-out:focus:before, .hvr-ripple-out:active:before {
    -webkit-animation-name: hvr-ripple-out;
    animation-name: hvr-ripple-out; }

/* Ripple In */
@-webkit-keyframes hvr-ripple-in {
  100% {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 1; } }

@keyframes hvr-ripple-in {
  100% {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 1; } }

.hvr-ripple-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-ripple-in:before {
    content: '';
    position: absolute;
    border: #e1e1e1 solid 4px;
    top: -12px;
    right: -12px;
    bottom: -12px;
    left: -12px;
    opacity: 0;
    -webkit-animation-duration: 1s;
    animation-duration: 1s; }
  .hvr-ripple-in:hover:before, .hvr-ripple-in:focus:before, .hvr-ripple-in:active:before {
    -webkit-animation-name: hvr-ripple-in;
    animation-name: hvr-ripple-in; }

/* Outline Out */
.hvr-outline-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-outline-out:before {
    content: '';
    position: absolute;
    border: #e1e1e1 solid 4px;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    transition-duration: 0.3s;
    transition-property: top, right, bottom, left; }
  .hvr-outline-out:hover:before, .hvr-outline-out:focus:before, .hvr-outline-out:active:before {
    top: -8px;
    right: -8px;
    bottom: -8px;
    left: -8px; }

/* Outline In */
.hvr-outline-in {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-outline-in:before {
    pointer-events: none;
    content: '';
    position: absolute;
    border: #e1e1e1 solid 4px;
    top: -16px;
    right: -16px;
    bottom: -16px;
    left: -16px;
    opacity: 0;
    transition-duration: 0.3s;
    transition-property: top, right, bottom, left; }
  .hvr-outline-in:hover:before, .hvr-outline-in:focus:before, .hvr-outline-in:active:before {
    top: -8px;
    right: -8px;
    bottom: -8px;
    left: -8px;
    opacity: 1; }

/* Round Corners */
.hvr-round-corners {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: border-radius; }
  .hvr-round-corners:hover, .hvr-round-corners:focus, .hvr-round-corners:active {
    border-radius: 1em; }

/* Underline From Left */
.hvr-underline-from-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden; }
  .hvr-underline-from-left:before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 0;
    right: 100%;
    bottom: 0;
    background: #2098D1;
    height: 4px;
    transition-property: right;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-underline-from-left:hover:before, .hvr-underline-from-left:focus:before, .hvr-underline-from-left:active:before {
    right: 0; }

/* Underline From Center */
.hvr-underline-from-center {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden; }
  .hvr-underline-from-center:before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 51%;
    right: 51%;
    bottom: 0;
    background: #2098D1;
    height: 4px;
    transition-property: left, right;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-underline-from-center:hover:before, .hvr-underline-from-center:focus:before, .hvr-underline-from-center:active:before {
    left: 0;
    right: 0; }

/* Underline From Right */
.hvr-underline-from-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden; }
  .hvr-underline-from-right:before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 100%;
    right: 0;
    bottom: 0;
    background: #2098D1;
    height: 4px;
    transition-property: left;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-underline-from-right:hover:before, .hvr-underline-from-right:focus:before, .hvr-underline-from-right:active:before {
    left: 0; }

/* Overline From Left */
.hvr-overline-from-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden; }
  .hvr-overline-from-left:before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 0;
    right: 100%;
    top: 0;
    background: #2098D1;
    height: 4px;
    transition-property: right;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-overline-from-left:hover:before, .hvr-overline-from-left:focus:before, .hvr-overline-from-left:active:before {
    right: 0; }

/* Overline From Center */
.hvr-overline-from-center {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden; }
  .hvr-overline-from-center:before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 51%;
    right: 51%;
    top: 0;
    background: #2098D1;
    height: 4px;
    transition-property: left, right;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-overline-from-center:hover:before, .hvr-overline-from-center:focus:before, .hvr-overline-from-center:active:before {
    left: 0;
    right: 0; }

/* Overline From Right */
.hvr-overline-from-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden; }
  .hvr-overline-from-right:before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 100%;
    right: 0;
    top: 0;
    background: #2098D1;
    height: 4px;
    transition-property: left;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-overline-from-right:hover:before, .hvr-overline-from-right:focus:before, .hvr-overline-from-right:active:before {
    left: 0; }

/* Reveal */
.hvr-reveal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden; }
  .hvr-reveal:before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    border-color: #2098D1;
    border-style: solid;
    border-width: 0;
    transition-property: border-width;
    transition-duration: 0.1s;
    transition-timing-function: ease-out; }
  .hvr-reveal:hover:before, .hvr-reveal:focus:before, .hvr-reveal:active:before {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
        transform: translateY(0);
    border-width: 4px; }

/* Underline Reveal */
.hvr-underline-reveal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden; }
  .hvr-underline-reveal:before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 0;
    right: 0;
    bottom: 0;
    background: #2098D1;
    height: 4px;
    -webkit-transform: translateY(4px);
    -ms-transform: translateY(4px);
        transform: translateY(4px);
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-underline-reveal:hover:before, .hvr-underline-reveal:focus:before, .hvr-underline-reveal:active:before {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
        transform: translateY(0); }

/* Overline Reveal */
.hvr-overline-reveal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  overflow: hidden; }
  .hvr-overline-reveal:before {
    content: "";
    position: absolute;
    z-index: -1;
    left: 0;
    right: 0;
    top: 0;
    background: #2098D1;
    height: 4px;
    -webkit-transform: translateY(-4px);
    -ms-transform: translateY(-4px);
        transform: translateY(-4px);
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.3s;
    transition-timing-function: ease-out; }
  .hvr-overline-reveal:hover:before, .hvr-overline-reveal:focus:before, .hvr-overline-reveal:active:before {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
        transform: translateY(0); }

/* SHADOW/GLOW TRANSITIONS */
/* Glow */
.hvr-glow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: box-shadow; }
  .hvr-glow:hover, .hvr-glow:focus, .hvr-glow:active {
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); }

/* Shadow */
.hvr-shadow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: box-shadow; }
  .hvr-shadow:hover, .hvr-shadow:focus, .hvr-shadow:active {
    box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5); }

/* Grow Shadow */
.hvr-grow-shadow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: box-shadow, -webkit-transform;
  transition-property: box-shadow, transform;
  transition-property: box-shadow, transform, -webkit-transform; }
  .hvr-grow-shadow:hover, .hvr-grow-shadow:focus, .hvr-grow-shadow:active {
    box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5);
    -webkit-transform: scale(1.1);
    -ms-transform: scale(1.1);
        transform: scale(1.1); }

/* Box Shadow Outset */
.hvr-box-shadow-outset {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: box-shadow; }
  .hvr-box-shadow-outset:hover, .hvr-box-shadow-outset:focus, .hvr-box-shadow-outset:active {
    box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.6); }

/* Box Shadow Inset */
.hvr-box-shadow-inset {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: box-shadow;
  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0.6), 0 0 1px transparent;
  /* Hack to improve aliasing on mobile/tablet devices */ }
  .hvr-box-shadow-inset:hover, .hvr-box-shadow-inset:focus, .hvr-box-shadow-inset:active {
    box-shadow: inset 2px 2px 2px rgba(0, 0, 0, 0.6), 0 0 1px transparent;
    /* Hack to improve aliasing on mobile/tablet devices */ }

/* Float Shadow */
.hvr-float-shadow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }
  .hvr-float-shadow:before {
    pointer-events: none;
    position: absolute;
    z-index: -1;
    content: '';
    top: 100%;
    left: 5%;
    height: 10px;
    width: 90%;
    opacity: 0;
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.35) 0%, transparent 80%);
    /* W3C */
    transition-duration: 0.3s;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform; }
  .hvr-float-shadow:hover, .hvr-float-shadow:focus, .hvr-float-shadow:active {
    -webkit-transform: translateY(-5px);
    -ms-transform: translateY(-5px);
        transform: translateY(-5px);
    /* move the element up by 5px */ }
    .hvr-float-shadow:hover:before, .hvr-float-shadow:focus:before, .hvr-float-shadow:active:before {
      opacity: 1;
      -webkit-transform: translateY(5px);
      -ms-transform: translateY(5px);
          transform: translateY(5px);
      /* move the element down by 5px (it will stay in place because it's attached to the element that also moves up 5px) */ }

/* Shadow Radial */
.hvr-shadow-radial {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-shadow-radial:before, .hvr-shadow-radial:after {
    pointer-events: none;
    position: absolute;
    content: '';
    left: 0;
    width: 100%;
    box-sizing: border-box;
    background-repeat: no-repeat;
    height: 5px;
    opacity: 0;
    transition-duration: 0.3s;
    transition-property: opacity; }
  .hvr-shadow-radial:before {
    bottom: 100%;
    background: radial-gradient(ellipse at 50% 150%, rgba(0, 0, 0, 0.6) 0%, transparent 80%); }
  .hvr-shadow-radial:after {
    top: 100%;
    background: radial-gradient(ellipse at 50% -50%, rgba(0, 0, 0, 0.6) 0%, transparent 80%); }
  .hvr-shadow-radial:hover:before, .hvr-shadow-radial:focus:before, .hvr-shadow-radial:active:before, .hvr-shadow-radial:hover:after, .hvr-shadow-radial:focus:after, .hvr-shadow-radial:active:after {
    opacity: 1; }

/* SPEECH BUBBLES */
/* Bubble Top */
.hvr-bubble-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-bubble-top:before {
    pointer-events: none;
    position: absolute;
    z-index: -1;
    content: '';
    border-style: solid;
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    left: calc(50% - 10px);
    top: 0;
    border-width: 0 10px 10px 10px;
    border-color: transparent transparent #e1e1e1 transparent; }
  .hvr-bubble-top:hover:before, .hvr-bubble-top:focus:before, .hvr-bubble-top:active:before {
    -webkit-transform: translateY(-10px);
    -ms-transform: translateY(-10px);
        transform: translateY(-10px); }

/* Bubble Right */
.hvr-bubble-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-bubble-right:before {
    pointer-events: none;
    position: absolute;
    z-index: -1;
    content: '';
    border-style: solid;
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    top: calc(50% - 10px);
    right: 0;
    border-width: 10px 0 10px 10px;
    border-color: transparent transparent transparent #e1e1e1; }
  .hvr-bubble-right:hover:before, .hvr-bubble-right:focus:before, .hvr-bubble-right:active:before {
    -webkit-transform: translateX(10px);
    -ms-transform: translateX(10px);
        transform: translateX(10px); }

/* Bubble Bottom */
.hvr-bubble-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-bubble-bottom:before {
    pointer-events: none;
    position: absolute;
    z-index: -1;
    content: '';
    border-style: solid;
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    left: calc(50% - 10px);
    bottom: 0;
    border-width: 10px 10px 0 10px;
    border-color: #e1e1e1 transparent transparent transparent; }
  .hvr-bubble-bottom:hover:before, .hvr-bubble-bottom:focus:before, .hvr-bubble-bottom:active:before {
    -webkit-transform: translateY(10px);
    -ms-transform: translateY(10px);
        transform: translateY(10px); }

/* Bubble Left */
.hvr-bubble-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-bubble-left:before {
    pointer-events: none;
    position: absolute;
    z-index: -1;
    content: '';
    border-style: solid;
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    top: calc(50% - 10px);
    left: 0;
    border-width: 10px 10px 10px 0;
    border-color: transparent #e1e1e1 transparent transparent; }
  .hvr-bubble-left:hover:before, .hvr-bubble-left:focus:before, .hvr-bubble-left:active:before {
    -webkit-transform: translateX(-10px);
    -ms-transform: translateX(-10px);
        transform: translateX(-10px); }

/* Bubble Float Top */
.hvr-bubble-float-top {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }
  .hvr-bubble-float-top:before {
    position: absolute;
    z-index: -1;
    content: '';
    left: calc(50% - 10px);
    top: 0;
    border-style: solid;
    border-width: 0 10px 10px 10px;
    border-color: transparent transparent #e1e1e1 transparent;
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform; }
  .hvr-bubble-float-top:hover, .hvr-bubble-float-top:focus, .hvr-bubble-float-top:active {
    -webkit-transform: translateY(10px);
    -ms-transform: translateY(10px);
        transform: translateY(10px); }
    .hvr-bubble-float-top:hover:before, .hvr-bubble-float-top:focus:before, .hvr-bubble-float-top:active:before {
      -webkit-transform: translateY(-10px);
      -ms-transform: translateY(-10px);
          transform: translateY(-10px); }

/* Bubble Float Right */
.hvr-bubble-float-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }
  .hvr-bubble-float-right:before {
    position: absolute;
    z-index: -1;
    top: calc(50% - 10px);
    right: 0;
    content: '';
    border-style: solid;
    border-width: 10px 0 10px 10px;
    border-color: transparent transparent transparent #e1e1e1;
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform; }
  .hvr-bubble-float-right:hover, .hvr-bubble-float-right:focus, .hvr-bubble-float-right:active {
    -webkit-transform: translateX(-10px);
    -ms-transform: translateX(-10px);
        transform: translateX(-10px); }
    .hvr-bubble-float-right:hover:before, .hvr-bubble-float-right:focus:before, .hvr-bubble-float-right:active:before {
      -webkit-transform: translateX(10px);
      -ms-transform: translateX(10px);
          transform: translateX(10px); }

/* Bubble Float Bottom */
.hvr-bubble-float-bottom {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }
  .hvr-bubble-float-bottom:before {
    position: absolute;
    z-index: -1;
    content: '';
    left: calc(50% - 10px);
    bottom: 0;
    border-style: solid;
    border-width: 10px 10px 0 10px;
    border-color: #e1e1e1 transparent transparent transparent;
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform; }
  .hvr-bubble-float-bottom:hover, .hvr-bubble-float-bottom:focus, .hvr-bubble-float-bottom:active {
    -webkit-transform: translateY(-10px);
    -ms-transform: translateY(-10px);
        transform: translateY(-10px); }
    .hvr-bubble-float-bottom:hover:before, .hvr-bubble-float-bottom:focus:before, .hvr-bubble-float-bottom:active:before {
      -webkit-transform: translateY(10px);
      -ms-transform: translateY(10px);
          transform: translateY(10px); }

/* Bubble Float Left */
.hvr-bubble-float-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative;
  transition-duration: 0.3s;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform; }
  .hvr-bubble-float-left:before {
    position: absolute;
    z-index: -1;
    content: '';
    top: calc(50% - 10px);
    left: 0;
    border-style: solid;
    border-width: 10px 10px 10px 0;
    border-color: transparent #e1e1e1 transparent transparent;
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform; }
  .hvr-bubble-float-left:hover, .hvr-bubble-float-left:focus, .hvr-bubble-float-left:active {
    -webkit-transform: translateX(10px);
    -ms-transform: translateX(10px);
        transform: translateX(10px); }
    .hvr-bubble-float-left:hover:before, .hvr-bubble-float-left:focus:before, .hvr-bubble-float-left:active:before {
      -webkit-transform: translateX(-10px);
      -ms-transform: translateX(-10px);
          transform: translateX(-10px); }

/* ICONS */
/* Icon Back */
.hvr-icon-back {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.1s; }
  .hvr-icon-back .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-duration: 0.1s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-timing-function: ease-out; }
  .hvr-icon-back:hover .hvr-icon, .hvr-icon-back:focus .hvr-icon, .hvr-icon-back:active .hvr-icon {
    -webkit-transform: translateX(-4px);
    -ms-transform: translateX(-4px);
        transform: translateX(-4px); }

/* Icon Forward */
.hvr-icon-forward {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.1s; }
  .hvr-icon-forward .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-duration: 0.1s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-timing-function: ease-out; }
  .hvr-icon-forward:hover .hvr-icon, .hvr-icon-forward:focus .hvr-icon, .hvr-icon-forward:active .hvr-icon {
    -webkit-transform: translateX(4px);
    -ms-transform: translateX(4px);
        transform: translateX(4px); }

/* Icon Down */
@-webkit-keyframes hvr-icon-down {
  0%,
  50%,
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  25%,
  75% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px); } }

@keyframes hvr-icon-down {
  0%,
  50%,
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  25%,
  75% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px); } }

/* Icon Down */
.hvr-icon-down {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-icon-down .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0); }
  .hvr-icon-down:hover .hvr-icon, .hvr-icon-down:focus .hvr-icon, .hvr-icon-down:active .hvr-icon {
    -webkit-animation-name: hvr-icon-down;
    animation-name: hvr-icon-down;
    -webkit-animation-duration: 0.75s;
    animation-duration: 0.75s;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }

/* Icon Up */
@-webkit-keyframes hvr-icon-up {
  0%,
  50%,
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  25%,
  75% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px); } }

@keyframes hvr-icon-up {
  0%,
  50%,
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  25%,
  75% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px); } }

/* Icon Up */
.hvr-icon-up {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-icon-up .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0); }
  .hvr-icon-up:hover .hvr-icon, .hvr-icon-up:focus .hvr-icon, .hvr-icon-up:active .hvr-icon {
    -webkit-animation-name: hvr-icon-up;
    animation-name: hvr-icon-up;
    -webkit-animation-duration: 0.75s;
    animation-duration: 0.75s;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }

/* Icon Spin */
.hvr-icon-spin {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-icon-spin .hvr-icon {
    transition-duration: 1s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-timing-function: ease-in-out; }
  .hvr-icon-spin:hover .hvr-icon, .hvr-icon-spin:focus .hvr-icon, .hvr-icon-spin:active .hvr-icon {
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
        transform: rotate(360deg); }

/* Icon Drop */
@-webkit-keyframes hvr-icon-drop {
  0% {
    opacity: 0; }
  50% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%); }
  51%,
  100% {
    opacity: 1; } }

@keyframes hvr-icon-drop {
  0% {
    opacity: 0; }
  50% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%); }
  51%,
  100% {
    opacity: 1; } }

/* Icon Drop */
.hvr-icon-drop {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-icon-drop .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0); }
  .hvr-icon-drop:hover .hvr-icon, .hvr-icon-drop:focus .hvr-icon, .hvr-icon-drop:active .hvr-icon {
    opacity: 0;
    transition-duration: 0.3s;
    -webkit-animation-name: hvr-icon-drop;
    animation-name: hvr-icon-drop;
    -webkit-animation-duration: 0.5s;
    animation-duration: 0.5s;
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
    animation-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); }

/* Icon Fade */
.hvr-icon-fade {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-icon-fade .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-duration: 0.5s;
    transition-property: color; }
  .hvr-icon-fade:hover .hvr-icon, .hvr-icon-fade:focus .hvr-icon, .hvr-icon-fade:active .hvr-icon {
    color: #0F9E5E; }

/* Icon Float Away */
@-webkit-keyframes hvr-icon-float-away {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-1em);
    transform: translateY(-1em); } }

@keyframes hvr-icon-float-away {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translateY(-1em);
    transform: translateY(-1em); } }

/* Icon Float Away */
.hvr-icon-float-away {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-icon-float-away .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-animation-duration: 0.5s;
    animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards; }
  .hvr-icon-float-away:hover .hvr-icon, .hvr-icon-float-away:focus .hvr-icon, .hvr-icon-float-away:active .hvr-icon {
    -webkit-animation-name: hvr-icon-float-away;
    animation-name: hvr-icon-float-away;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }

/* Icon Sink Away */
@-webkit-keyframes hvr-icon-sink-away {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translateY(1em);
    transform: translateY(1em); } }

@keyframes hvr-icon-sink-away {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    -webkit-transform: translateY(1em);
    transform: translateY(1em); } }

/* Icon Sink Away */
.hvr-icon-sink-away {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-icon-sink-away .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-animation-duration: 0.5s;
    animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards; }
  .hvr-icon-sink-away:hover .hvr-icon, .hvr-icon-sink-away:focus .hvr-icon, .hvr-icon-sink-away:active .hvr-icon {
    -webkit-animation-name: hvr-icon-sink-away;
    animation-name: hvr-icon-sink-away;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }

/* Icon Grow */
.hvr-icon-grow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-grow .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-timing-function: ease-out; }
  .hvr-icon-grow:hover .hvr-icon, .hvr-icon-grow:focus .hvr-icon, .hvr-icon-grow:active .hvr-icon {
    -webkit-transform: scale(1.3) translateZ(0);
    transform: scale(1.3) translateZ(0); }

/* Icon Shrink */
.hvr-icon-shrink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-shrink .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-timing-function: ease-out; }
  .hvr-icon-shrink:hover .hvr-icon, .hvr-icon-shrink:focus .hvr-icon, .hvr-icon-shrink:active .hvr-icon {
    -webkit-transform: scale(0.8);
    -ms-transform: scale(0.8);
        transform: scale(0.8); }

/* Icon Pulse */
@-webkit-keyframes hvr-icon-pulse {
  25% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3); }
  75% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8); } }

@keyframes hvr-icon-pulse {
  25% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3); }
  75% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8); } }

.hvr-icon-pulse {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-icon-pulse .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-timing-function: ease-out; }
  .hvr-icon-pulse:hover .hvr-icon, .hvr-icon-pulse:focus .hvr-icon, .hvr-icon-pulse:active .hvr-icon {
    -webkit-animation-name: hvr-icon-pulse;
    animation-name: hvr-icon-pulse;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite; }

/* Icon Pulse Grow */
@-webkit-keyframes hvr-icon-pulse-grow {
  to {
    -webkit-transform: scale(1.3);
    transform: scale(1.3); } }

@keyframes hvr-icon-pulse-grow {
  to {
    -webkit-transform: scale(1.3);
    transform: scale(1.3); } }

.hvr-icon-pulse-grow {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-icon-pulse-grow .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-timing-function: ease-out; }
  .hvr-icon-pulse-grow:hover .hvr-icon, .hvr-icon-pulse-grow:focus .hvr-icon, .hvr-icon-pulse-grow:active .hvr-icon {
    -webkit-animation-name: hvr-icon-pulse-grow;
    animation-name: hvr-icon-pulse-grow;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-direction: alternate;
    animation-direction: alternate; }

/* Icon Pulse Shrink */
@-webkit-keyframes hvr-icon-pulse-shrink {
  to {
    -webkit-transform: scale(0.8);
    transform: scale(0.8); } }

@keyframes hvr-icon-pulse-shrink {
  to {
    -webkit-transform: scale(0.8);
    transform: scale(0.8); } }

.hvr-icon-pulse-shrink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent; }
  .hvr-icon-pulse-shrink .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-timing-function: ease-out; }
  .hvr-icon-pulse-shrink:hover .hvr-icon, .hvr-icon-pulse-shrink:focus .hvr-icon, .hvr-icon-pulse-shrink:active .hvr-icon {
    -webkit-animation-name: hvr-icon-pulse-shrink;
    animation-name: hvr-icon-pulse-shrink;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-direction: alternate;
    animation-direction: alternate; }

/* Icon Push */
@-webkit-keyframes hvr-icon-push {
  50% {
    -webkit-transform: scale(0.5);
    transform: scale(0.5); } }

@keyframes hvr-icon-push {
  50% {
    -webkit-transform: scale(0.5);
    transform: scale(0.5); } }

.hvr-icon-push {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-push .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-timing-function: ease-out; }
  .hvr-icon-push:hover .hvr-icon, .hvr-icon-push:focus .hvr-icon, .hvr-icon-push:active .hvr-icon {
    -webkit-animation-name: hvr-icon-push;
    animation-name: hvr-icon-push;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Icon Pop */
@-webkit-keyframes hvr-icon-pop {
  50% {
    -webkit-transform: scale(1.5);
    transform: scale(1.5); } }

@keyframes hvr-icon-pop {
  50% {
    -webkit-transform: scale(1.5);
    transform: scale(1.5); } }

.hvr-icon-pop {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-pop .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-timing-function: ease-out; }
  .hvr-icon-pop:hover .hvr-icon, .hvr-icon-pop:focus .hvr-icon, .hvr-icon-pop:active .hvr-icon {
    -webkit-animation-name: hvr-icon-pop;
    animation-name: hvr-icon-pop;
    -webkit-animation-duration: 0.3s;
    animation-duration: 0.3s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Icon Bounce */
.hvr-icon-bounce {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-bounce .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-timing-function: ease-out; }
  .hvr-icon-bounce:hover .hvr-icon, .hvr-icon-bounce:focus .hvr-icon, .hvr-icon-bounce:active .hvr-icon {
    -webkit-transform: scale(1.5);
    -ms-transform: scale(1.5);
        transform: scale(1.5);
    transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); }

/* Icon Rotate */
.hvr-icon-rotate {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-rotate .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-timing-function: ease-out; }
  .hvr-icon-rotate:hover .hvr-icon, .hvr-icon-rotate:focus .hvr-icon, .hvr-icon-rotate:active .hvr-icon {
    -webkit-transform: rotate(20deg);
    -ms-transform: rotate(20deg);
        transform: rotate(20deg); }

/* Icon Grow Rotate */
.hvr-icon-grow-rotate {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-grow-rotate .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-timing-function: ease-out; }
  .hvr-icon-grow-rotate:hover .hvr-icon, .hvr-icon-grow-rotate:focus .hvr-icon, .hvr-icon-grow-rotate:active .hvr-icon {
    -webkit-transform: scale(1.5) rotate(12deg);
    -ms-transform: scale(1.5) rotate(12deg);
        transform: scale(1.5) rotate(12deg); }

/* Icon Float */
.hvr-icon-float {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-float .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-timing-function: ease-out; }
  .hvr-icon-float:hover .hvr-icon, .hvr-icon-float:focus .hvr-icon, .hvr-icon-float:active .hvr-icon {
    -webkit-transform: translateY(-4px);
    -ms-transform: translateY(-4px);
        transform: translateY(-4px); }

/* Icon Sink */
.hvr-icon-sink {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-sink .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    transition-duration: 0.3s;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-timing-function: ease-out; }
  .hvr-icon-sink:hover .hvr-icon, .hvr-icon-sink:focus .hvr-icon, .hvr-icon-sink:active .hvr-icon {
    -webkit-transform: translateY(4px);
    -ms-transform: translateY(4px);
        transform: translateY(4px); }

/* Icon Bob */
@-webkit-keyframes hvr-icon-bob {
  0% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px); }
  50% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px); }
  100% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px); } }

@keyframes hvr-icon-bob {
  0% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px); }
  50% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px); }
  100% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px); } }

@-webkit-keyframes hvr-icon-bob-float {
  100% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px); } }

@keyframes hvr-icon-bob-float {
  100% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px); } }

.hvr-icon-bob {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-bob .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0); }
  .hvr-icon-bob:hover .hvr-icon, .hvr-icon-bob:focus .hvr-icon, .hvr-icon-bob:active .hvr-icon {
    -webkit-animation-name: hvr-icon-bob-float, hvr-icon-bob;
    animation-name: hvr-icon-bob-float, hvr-icon-bob;
    -webkit-animation-duration: .3s, 1.5s;
    animation-duration: .3s, 1.5s;
    -webkit-animation-delay: 0s, .3s;
    animation-delay: 0s, .3s;
    -webkit-animation-timing-function: ease-out, ease-in-out;
    animation-timing-function: ease-out, ease-in-out;
    -webkit-animation-iteration-count: 1, infinite;
    animation-iteration-count: 1, infinite;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    -webkit-animation-direction: normal, alternate;
    animation-direction: normal, alternate; }

/* Icon Hang */
@-webkit-keyframes hvr-icon-hang {
  0% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px); }
  50% {
    -webkit-transform: translateY(2px);
    transform: translateY(2px); }
  100% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px); } }

@keyframes hvr-icon-hang {
  0% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px); }
  50% {
    -webkit-transform: translateY(2px);
    transform: translateY(2px); }
  100% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px); } }

@-webkit-keyframes hvr-icon-hang-sink {
  100% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px); } }

@keyframes hvr-icon-hang-sink {
  100% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px); } }

.hvr-icon-hang {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-hang .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0); }
  .hvr-icon-hang:hover .hvr-icon, .hvr-icon-hang:focus .hvr-icon, .hvr-icon-hang:active .hvr-icon {
    -webkit-animation-name: hvr-icon-hang-sink, hvr-icon-hang;
    animation-name: hvr-icon-hang-sink, hvr-icon-hang;
    -webkit-animation-duration: .3s, 1.5s;
    animation-duration: .3s, 1.5s;
    -webkit-animation-delay: 0s, .3s;
    animation-delay: 0s, .3s;
    -webkit-animation-timing-function: ease-out, ease-in-out;
    animation-timing-function: ease-out, ease-in-out;
    -webkit-animation-iteration-count: 1, infinite;
    animation-iteration-count: 1, infinite;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    -webkit-animation-direction: normal, alternate;
    animation-direction: normal, alternate; }

/* Icon Wobble Horizontal */
@-webkit-keyframes hvr-icon-wobble-horizontal {
  16.65% {
    -webkit-transform: translateX(6px);
    transform: translateX(6px); }
  33.3% {
    -webkit-transform: translateX(-5px);
    transform: translateX(-5px); }
  49.95% {
    -webkit-transform: translateX(4px);
    transform: translateX(4px); }
  66.6% {
    -webkit-transform: translateX(-2px);
    transform: translateX(-2px); }
  83.25% {
    -webkit-transform: translateX(1px);
    transform: translateX(1px); }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

@keyframes hvr-icon-wobble-horizontal {
  16.65% {
    -webkit-transform: translateX(6px);
    transform: translateX(6px); }
  33.3% {
    -webkit-transform: translateX(-5px);
    transform: translateX(-5px); }
  49.95% {
    -webkit-transform: translateX(4px);
    transform: translateX(4px); }
  66.6% {
    -webkit-transform: translateX(-2px);
    transform: translateX(-2px); }
  83.25% {
    -webkit-transform: translateX(1px);
    transform: translateX(1px); }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

.hvr-icon-wobble-horizontal {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-wobble-horizontal .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0); }
  .hvr-icon-wobble-horizontal:hover .hvr-icon, .hvr-icon-wobble-horizontal:focus .hvr-icon, .hvr-icon-wobble-horizontal:active .hvr-icon {
    -webkit-animation-name: hvr-icon-wobble-horizontal;
    animation-name: hvr-icon-wobble-horizontal;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Icon Wobble Vertical */
@-webkit-keyframes hvr-icon-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px); }
  33.3% {
    -webkit-transform: translateY(-5px);
    transform: translateY(-5px); }
  49.95% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px); }
  66.6% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px); }
  83.25% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px); }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@keyframes hvr-icon-wobble-vertical {
  16.65% {
    -webkit-transform: translateY(6px);
    transform: translateY(6px); }
  33.3% {
    -webkit-transform: translateY(-5px);
    transform: translateY(-5px); }
  49.95% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px); }
  66.6% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px); }
  83.25% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px); }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

.hvr-icon-wobble-vertical {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-wobble-vertical .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0); }
  .hvr-icon-wobble-vertical:hover .hvr-icon, .hvr-icon-wobble-vertical:focus .hvr-icon, .hvr-icon-wobble-vertical:active .hvr-icon {
    -webkit-animation-name: hvr-icon-wobble-vertical;
    animation-name: hvr-icon-wobble-vertical;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* Icon Buzz */
@-webkit-keyframes hvr-icon-buzz {
  50% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg); }
  100% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg); } }

@keyframes hvr-icon-buzz {
  50% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg); }
  100% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg); } }

.hvr-icon-buzz {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-buzz .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0); }
  .hvr-icon-buzz:hover .hvr-icon, .hvr-icon-buzz:focus .hvr-icon, .hvr-icon-buzz:active .hvr-icon {
    -webkit-animation-name: hvr-icon-buzz;
    animation-name: hvr-icon-buzz;
    -webkit-animation-duration: 0.15s;
    animation-duration: 0.15s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite; }

/* Icon Buzz Out */
@-webkit-keyframes hvr-icon-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg); }
  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg); }
  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg); }
  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg); }
  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg); }
  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg); }
  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg); }
  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg); }
  90% {
    -webkit-transform: translateX(1px) rotate(0);
    transform: translateX(1px) rotate(0); }
  100% {
    -webkit-transform: translateX(-1px) rotate(0);
    transform: translateX(-1px) rotate(0); } }

@keyframes hvr-icon-buzz-out {
  10% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg); }
  20% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg); }
  30% {
    -webkit-transform: translateX(3px) rotate(2deg);
    transform: translateX(3px) rotate(2deg); }
  40% {
    -webkit-transform: translateX(-3px) rotate(-2deg);
    transform: translateX(-3px) rotate(-2deg); }
  50% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg); }
  60% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg); }
  70% {
    -webkit-transform: translateX(2px) rotate(1deg);
    transform: translateX(2px) rotate(1deg); }
  80% {
    -webkit-transform: translateX(-2px) rotate(-1deg);
    transform: translateX(-2px) rotate(-1deg); }
  90% {
    -webkit-transform: translateX(1px) rotate(0);
    transform: translateX(1px) rotate(0); }
  100% {
    -webkit-transform: translateX(-1px) rotate(0);
    transform: translateX(-1px) rotate(0); } }

.hvr-icon-buzz-out {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s; }
  .hvr-icon-buzz-out .hvr-icon {
    -webkit-transform: translateZ(0);
    transform: translateZ(0); }
  .hvr-icon-buzz-out:hover .hvr-icon, .hvr-icon-buzz-out:focus .hvr-icon, .hvr-icon-buzz-out:active .hvr-icon {
    -webkit-animation-name: hvr-icon-buzz-out;
    animation-name: hvr-icon-buzz-out;
    -webkit-animation-duration: 0.75s;
    animation-duration: 0.75s;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1; }

/* CURLS */
/* Curl Top Left */
.hvr-curl-top-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-curl-top-left:before {
    pointer-events: none;
    position: absolute;
    content: '';
    height: 0;
    width: 0;
    top: 0;
    left: 0;
    background: white;
    /* IE9 */
    background: linear-gradient(135deg, white 45%, #aaa 50%, #ccc 56%, white 80%);
    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#ffffff', endColorstr='#000000');
    /*For IE7-8-9*/
    z-index: 1000;
    box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.4);
    transition-duration: 0.3s;
    transition-property: width, height; }
  .hvr-curl-top-left:hover:before, .hvr-curl-top-left:focus:before, .hvr-curl-top-left:active:before {
    width: 25px;
    height: 25px; }

/* Curl Top Right */
.hvr-curl-top-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-curl-top-right:before {
    pointer-events: none;
    position: absolute;
    content: '';
    height: 0;
    width: 0;
    top: 0;
    right: 0;
    background: white;
    /* IE9 */
    background: linear-gradient(225deg, white 45%, #aaa 50%, #ccc 56%, white 80%);
    box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.4);
    transition-duration: 0.3s;
    transition-property: width, height; }
  .hvr-curl-top-right:hover:before, .hvr-curl-top-right:focus:before, .hvr-curl-top-right:active:before {
    width: 25px;
    height: 25px; }

/* Curl Bottom Right */
.hvr-curl-bottom-right {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-curl-bottom-right:before {
    pointer-events: none;
    position: absolute;
    content: '';
    height: 0;
    width: 0;
    bottom: 0;
    right: 0;
    background: white;
    /* IE9 */
    background: linear-gradient(315deg, white 45%, #aaa 50%, #ccc 56%, white 80%);
    box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.4);
    transition-duration: 0.3s;
    transition-property: width, height; }
  .hvr-curl-bottom-right:hover:before, .hvr-curl-bottom-right:focus:before, .hvr-curl-bottom-right:active:before {
    width: 25px;
    height: 25px; }

/* Curl Bottom Left */
.hvr-curl-bottom-left {
  display: inline-block;
  vertical-align: middle;
  -webkit-transform: perspective(1px) translateZ(0);
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  position: relative; }
  .hvr-curl-bottom-left:before {
    pointer-events: none;
    position: absolute;
    content: '';
    height: 0;
    width: 0;
    bottom: 0;
    left: 0;
    background: white;
    /* IE9 */
    background: linear-gradient(45deg, white 45%, #aaa 50%, #ccc 56%, white 80%);
    box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.4);
    transition-duration: 0.3s;
    transition-property: width, height; }
  .hvr-curl-bottom-left:hover:before, .hvr-curl-bottom-left:focus:before, .hvr-curl-bottom-left:active:before {
    width: 25px;
    height: 25px; }

@font-face {
  font-family: 'Linearicons-Free';
  src: url("fonts/Linearicons-Free.eot?w118d");
  src: url("fonts/Linearicons-Free.eot?#iefixw118d") format("embedded-opentype"), url("fonts/Linearicons-Free.woff2?w118d") format("woff2"), url("fonts/Linearicons-Free.woff?w118d") format("woff"), url("fonts/Linearicons-Free.ttf?w118d") format("truetype"), url("fonts/Linearicons-Free.svg?w118d#Linearicons-Free") format("svg");
  font-weight: normal;
  font-style: normal; }

.lnr {
  font-family: 'Linearicons-Free';
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.lnr-home:before {
  content: "\e800"; }

.lnr-apartment:before {
  content: "\e801"; }

.lnr-pencil:before {
  content: "\e802"; }

.lnr-magic-wand:before {
  content: "\e803"; }

.lnr-drop:before {
  content: "\e804"; }

.lnr-lighter:before {
  content: "\e805"; }

.lnr-poop:before {
  content: "\e806"; }

.lnr-sun:before {
  content: "\e807"; }

.lnr-moon:before {
  content: "\e808"; }

.lnr-cloud:before {
  content: "\e809"; }

.lnr-cloud-upload:before {
  content: "\e80a"; }

.lnr-cloud-download:before {
  content: "\e80b"; }

.lnr-cloud-sync:before {
  content: "\e80c"; }

.lnr-cloud-check:before {
  content: "\e80d"; }

.lnr-database:before {
  content: "\e80e"; }

.lnr-lock:before {
  content: "\e80f"; }

.lnr-cog:before {
  content: "\e810"; }

.lnr-trash:before {
  content: "\e811"; }

.lnr-dice:before {
  content: "\e812"; }

.lnr-heart:before {
  content: "\e813"; }

.lnr-star:before {
  content: "\e814"; }

.lnr-star-half:before {
  content: "\e815"; }

.lnr-star-empty:before {
  content: "\e816"; }

.lnr-flag:before {
  content: "\e817"; }

.lnr-envelope:before {
  content: "\e818"; }

.lnr-paperclip:before {
  content: "\e819"; }

.lnr-inbox:before {
  content: "\e81a"; }

.lnr-eye:before {
  content: "\e81b"; }

.lnr-printer:before {
  content: "\e81c"; }

.lnr-file-empty:before {
  content: "\e81d"; }

.lnr-file-add:before {
  content: "\e81e"; }

.lnr-enter:before {
  content: "\e81f"; }

.lnr-exit:before {
  content: "\e820"; }

.lnr-graduation-hat:before {
  content: "\e821"; }

.lnr-license:before {
  content: "\e822"; }

.lnr-music-note:before {
  content: "\e823"; }

.lnr-film-play:before {
  content: "\e824"; }

.lnr-camera-video:before {
  content: "\e825"; }

.lnr-camera:before {
  content: "\e826"; }

.lnr-picture:before {
  content: "\e827"; }

.lnr-book:before {
  content: "\e828"; }

.lnr-bookmark:before {
  content: "\e829"; }

.lnr-user:before {
  content: "\e82a"; }

.lnr-users:before {
  content: "\e82b"; }

.lnr-shirt:before {
  content: "\e82c"; }

.lnr-store:before {
  content: "\e82d"; }

.lnr-cart:before {
  content: "\e82e"; }

.lnr-tag:before {
  content: "\e82f"; }

.lnr-phone-handset:before {
  content: "\e830"; }

.lnr-phone:before {
  content: "\e831"; }

.lnr-pushpin:before {
  content: "\e832"; }

.lnr-map-marker:before {
  content: "\e833"; }

.lnr-map:before {
  content: "\e834"; }

.lnr-location:before {
  content: "\e835"; }

.lnr-calendar-full:before {
  content: "\e836"; }

.lnr-keyboard:before {
  content: "\e837"; }

.lnr-spell-check:before {
  content: "\e838"; }

.lnr-screen:before {
  content: "\e839"; }

.lnr-smartphone:before {
  content: "\e83a"; }

.lnr-tablet:before {
  content: "\e83b"; }

.lnr-laptop:before {
  content: "\e83c"; }

.lnr-laptop-phone:before {
  content: "\e83d"; }

.lnr-power-switch:before {
  content: "\e83e"; }

.lnr-bubble:before {
  content: "\e83f"; }

.lnr-heart-pulse:before {
  content: "\e840"; }

.lnr-construction:before {
  content: "\e841"; }

.lnr-pie-chart:before {
  content: "\e842"; }

.lnr-chart-bars:before {
  content: "\e843"; }

.lnr-gift:before {
  content: "\e844"; }

.lnr-diamond:before {
  content: "\e845"; }

.lnr-linearicons:before {
  content: "\e846"; }

.lnr-dinner:before {
  content: "\e847"; }

.lnr-coffee-cup:before {
  content: "\e848"; }

.lnr-leaf:before {
  content: "\e849"; }

.lnr-paw:before {
  content: "\e84a"; }

.lnr-rocket:before {
  content: "\e84b"; }

.lnr-briefcase:before {
  content: "\e84c"; }

.lnr-bus:before {
  content: "\e84d"; }

.lnr-car:before {
  content: "\e84e"; }

.lnr-train:before {
  content: "\e84f"; }

.lnr-bicycle:before {
  content: "\e850"; }

.lnr-wheelchair:before {
  content: "\e851"; }

.lnr-select:before {
  content: "\e852"; }

.lnr-earth:before {
  content: "\e853"; }

.lnr-smile:before {
  content: "\e854"; }

.lnr-sad:before {
  content: "\e855"; }

.lnr-neutral:before {
  content: "\e856"; }

.lnr-mustache:before {
  content: "\e857"; }

.lnr-alarm:before {
  content: "\e858"; }

.lnr-bullhorn:before {
  content: "\e859"; }

.lnr-volume-high:before {
  content: "\e85a"; }

.lnr-volume-medium:before {
  content: "\e85b"; }

.lnr-volume-low:before {
  content: "\e85c"; }

.lnr-volume:before {
  content: "\e85d"; }

.lnr-mic:before {
  content: "\e85e"; }

.lnr-hourglass:before {
  content: "\e85f"; }

.lnr-undo:before {
  content: "\e860"; }

.lnr-redo:before {
  content: "\e861"; }

.lnr-sync:before {
  content: "\e862"; }

.lnr-history:before {
  content: "\e863"; }

.lnr-clock:before {
  content: "\e864"; }

.lnr-download:before {
  content: "\e865"; }

.lnr-upload:before {
  content: "\e866"; }

.lnr-enter-down:before {
  content: "\e867"; }

.lnr-exit-up:before {
  content: "\e868"; }

.lnr-bug:before {
  content: "\e869"; }

.lnr-code:before {
  content: "\e86a"; }

.lnr-link:before {
  content: "\e86b"; }

.lnr-unlink:before {
  content: "\e86c"; }

.lnr-thumbs-up:before {
  content: "\e86d"; }

.lnr-thumbs-down:before {
  content: "\e86e"; }

.lnr-magnifier:before {
  content: "\e86f"; }

.lnr-cross:before {
  content: "\e870"; }

.lnr-menu:before {
  content: "\e871"; }

.lnr-list:before {
  content: "\e872"; }

.lnr-chevron-up:before {
  content: "\e873"; }

.lnr-chevron-down:before {
  content: "\e874"; }

.lnr-chevron-left:before {
  content: "\e875"; }

.lnr-chevron-right:before {
  content: "\e876"; }

.lnr-arrow-up:before {
  content: "\e877"; }

.lnr-arrow-down:before {
  content: "\e878"; }

.lnr-arrow-left:before {
  content: "\e879"; }

.lnr-arrow-right:before {
  content: "\e87a"; }

.lnr-move:before {
  content: "\e87b"; }

.lnr-warning:before {
  content: "\e87c"; }

.lnr-question-circle:before {
  content: "\e87d"; }

.lnr-menu-circle:before {
  content: "\e87e"; }

.lnr-checkmark-circle:before {
  content: "\e87f"; }

.lnr-cross-circle:before {
  content: "\e880"; }

.lnr-plus-circle:before {
  content: "\e881"; }

.lnr-circle-minus:before {
  content: "\e882"; }

.lnr-arrow-up-circle:before {
  content: "\e883"; }

.lnr-arrow-down-circle:before {
  content: "\e884"; }

.lnr-arrow-left-circle:before {
  content: "\e885"; }

.lnr-arrow-right-circle:before {
  content: "\e886"; }

.lnr-chevron-up-circle:before {
  content: "\e887"; }

.lnr-chevron-down-circle:before {
  content: "\e888"; }

.lnr-chevron-left-circle:before {
  content: "\e889"; }

.lnr-chevron-right-circle:before {
  content: "\e88a"; }

.lnr-crop:before {
  content: "\e88b"; }

.lnr-frame-expand:before {
  content: "\e88c"; }

.lnr-frame-contract:before {
  content: "\e88d"; }

.lnr-layers:before {
  content: "\e88e"; }

.lnr-funnel:before {
  content: "\e88f"; }

.lnr-text-format:before {
  content: "\e890"; }

.lnr-text-format-remove:before {
  content: "\e891"; }

.lnr-text-size:before {
  content: "\e892"; }

.lnr-bold:before {
  content: "\e893"; }

.lnr-italic:before {
  content: "\e894"; }

.lnr-underline:before {
  content: "\e895"; }

.lnr-strikethrough:before {
  content: "\e896"; }

.lnr-highlight:before {
  content: "\e897"; }

.lnr-text-align-left:before {
  content: "\e898"; }

.lnr-text-align-center:before {
  content: "\e899"; }

.lnr-text-align-right:before {
  content: "\e89a"; }

.lnr-text-align-justify:before {
  content: "\e89b"; }

.lnr-line-spacing:before {
  content: "\e89c"; }

.lnr-indent-increase:before {
  content: "\e89d"; }

.lnr-indent-decrease:before {
  content: "\e89e"; }

.lnr-pilcrow:before {
  content: "\e89f"; }

.lnr-direction-ltr:before {
  content: "\e8a0"; }

.lnr-direction-rtl:before {
  content: "\e8a1"; }

.lnr-page-break:before {
  content: "\e8a2"; }

.lnr-sort-alpha-asc:before {
  content: "\e8a3"; }

.lnr-sort-amount-asc:before {
  content: "\e8a4"; }

.lnr-hand:before {
  content: "\e8a5"; }

.lnr-pointer-up:before {
  content: "\e8a6"; }

.lnr-pointer-right:before {
  content: "\e8a7"; }

.lnr-pointer-down:before {
  content: "\e8a8"; }

.lnr-pointer-left:before {
  content: "\e8a9"; }

@font-face {
  font-family: 'ico-coupa-line';
  src: url("fonts/ico-coupa-line.eot?15s8xf");
  src: url("fonts/ico-coupa-line.eot?15s8xf#iefix") format("embedded-opentype"), url("fonts/ico-coupa-line.ttf?15s8xf") format("truetype"), url("fonts/ico-coupa-line.woff?15s8xf") format("woff"), url("fonts/ico-coupa-line.svg?15s8xf#ico-coupa-line") format("svg");
  font-weight: normal;
  font-style: normal; }

i.ico-coupa-line {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'ico-coupa-line' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-careers-disruptors:before {
  content: "\e900"; }

.icon-careers-doers:before {
  content: "\e901"; }

.icon-careers-dreamers:before {
  content: "\e902"; }

.icon-careers-ensure-customer-success:before {
  content: "\e903"; }

.icon-careers-focus-on-results:before {
  content: "\e904"; }

.icon-careers-strive-for-excellence:before {
  content: "\e905"; }

.icon-careers-we-do-not:before {
  content: "\e906"; }

.icon-careers-we-do:before {
  content: "\e907"; }

.icon-industry-cpg:before {
  content: "\e908"; }

.icon-industry-education:before {
  content: "\e909"; }

.icon-industry-energy-utilities:before {
  content: "\e90a"; }

.icon-industry-food-bev:before {
  content: "\e90b"; }

.icon-industry-healthcare:before {
  content: "\e90c"; }

.icon-industry-hospitality:before {
  content: "\e90d"; }

.icon-industry-life-sciences:before {
  content: "\e90e"; }

.icon-industry-manufacturing:before {
  content: "\e90f"; }

.icon-industry-non-profit:before {
  content: "\e910"; }

.icon-industry-public-sector:before {
  content: "\e911"; }

.icon-industry-retail:before {
  content: "\e912"; }

.icon-industry-services:before {
  content: "\e913"; }

.icon-industry-technology:before {
  content: "\e914"; }

.icon-platform-ai:before {
  content: "\e915"; }

.icon-platform-cloud:before {
  content: "\e916"; }

.icon-platform-compliance:before {
  content: "\e917"; }

.icon-platform-configuration:before {
  content: "\e918"; }

.icon-platform-design:before {
  content: "\e919"; }

.icon-platform-implementation:before {
  content: "\e91a"; }

.icon-platform-integrate:before {
  content: "\e91b"; }

.icon-platform-mobile:before {
  content: "\e91c"; }

.icon-platform-user-centric:before {
  content: "\e91d"; }

.icon-product-collaboration:before {
  content: "\e91e"; }

.icon-product-community-intel:before {
  content: "\e91f"; }

.icon-product-continget-workforce:before {
  content: "\e920"; }

.icon-product-contract-management:before {
  content: "\e921"; }

.icon-product-coupa-advantage:before {
  content: "\e922"; }

.icon-product-expense:before {
  content: "\e923"; }

.icon-product-invoice:before {
  content: "\e924"; }

.icon-product-open-business-network:before {
  content: "\e925"; }

.icon-product-pay:before {
  content: "\e926"; }

.icon-product-procure:before {
  content: "\e927"; }

.icon-product-spend-analysis:before {
  content: "\e928"; }

.icon-product-strategic-sourcing:before {
  content: "\e929"; }

.icon-product-supplier-management:before {
  content: "\e92a"; }

.icon-social-facebook:before {
  content: "\e92b"; }

.icon-social-glassdoor:before {
  content: "\e92c"; }

.icon-social-google-plus:before {
  content: "\e92d"; }

.icon-social-linkedin:before {
  content: "\e92e"; }

.icon-social-slack:before {
  content: "\e92f"; }

.icon-social-twitter:before {
  content: "\e930"; }

.icon-social-youtube:before {
  content: "\e931"; }

.icon-web-content:before {
  content: "\e932"; }

.icon-web-email:before {
  content: "\e933"; }

.icon-web-language:before {
  content: "\e934"; }

.icon-web-live-demo:before {
  content: "\e935"; }

.icon-web-search:before {
  content: "\e936"; }

.icon-web-video:before {
  content: "\e937"; }

.icon-web-webinars:before {
  content: "\e938"; }

@font-face {
  font-family: 'ico-coupa-solid';
  src: url("fonts/ico-coupa-solid.eot?7a8m8t");
  src: url("fonts/ico-coupa-solid.eot?7a8m8t#iefix") format("embedded-opentype"), url("fonts/ico-coupa-solid.ttf?7a8m8t") format("truetype"), url("fonts/ico-coupa-solid.woff?7a8m8t") format("woff"), url("fonts/ico-coupa-solid.svg?7a8m8t#ico-coupa-solid") format("svg");
  font-weight: normal;
  font-style: normal; }

i.ico-coupa-solid {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'ico-coupa-solid' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-careers-disruptors:before {
  content: "\e900"; }

.icon-careers-doers:before {
  content: "\e901"; }

.icon-careers-dreamers:before {
  content: "\e902"; }

.icon-careers-ensure-customer-success:before {
  content: "\e903"; }

.icon-careers-focus-on-results:before {
  content: "\e904"; }

.icon-careers-strive-for-excellence:before {
  content: "\e905"; }

.icon-careers-we-do-not:before {
  content: "\e906"; }

.icon-careers-we-do:before {
  content: "\e907"; }

.icon-industry-cpg:before {
  content: "\e908"; }

.icon-industry-education:before {
  content: "\e909"; }

.icon-industry-energy-utilities:before {
  content: "\e90a"; }

.icon-industry-food-bev:before {
  content: "\e90b"; }

.icon-industry-healthcare:before {
  content: "\e90c"; }

.icon-industry-hospitality:before {
  content: "\e90d"; }

.icon-industry-life-sciences:before {
  content: "\e90e"; }

.icon-industry-manufacturing:before {
  content: "\e90f"; }

.icon-industry-non-profit:before {
  content: "\e910"; }

.icon-industry-public-sector:before {
  content: "\e911"; }

.icon-industry-retail:before {
  content: "\e912"; }

.icon-industry-services:before {
  content: "\e913"; }

.icon-industry-technology:before {
  content: "\e914"; }

.icon-platform-cloud:before {
  content: "\e915"; }

.icon-platform-compliance:before {
  content: "\e916"; }

.icon-platform-configuration:before {
  content: "\e917"; }

.icon-platform-design:before {
  content: "\e918"; }

.icon-platform-implementation:before {
  content: "\e919"; }

.icon-platform-integrate:before {
  content: "\e91a"; }

.icon-platform-mobile:before {
  content: "\e91b"; }

.icon-platform-user-centric:before {
  content: "\e91c"; }

.icon-product-ai:before {
  content: "\e91d"; }

.icon-product-collaboration:before {
  content: "\e91e"; }

.icon-product-community-intel:before {
  content: "\e91f"; }

.icon-product-continget-workforce:before {
  content: "\e920"; }

.icon-product-contract-management:before {
  content: "\e921"; }

.icon-product-coupa-advantage:before {
  content: "\e922"; }

.icon-product-expense:before {
  content: "\e923"; }

.icon-product-invoice:before {
  content: "\e924"; }

.icon-product-open-business-network:before {
  content: "\e925"; }

.icon-product-pay:before {
  content: "\e926"; }

.icon-product-procure:before {
  content: "\e927"; }

.icon-product-spend-analysis:before {
  content: "\e928"; }

.icon-product-strategic-sourcing:before {
  content: "\e929"; }

.icon-product-supplier-management:before {
  content: "\e92a"; }

.icon-social-facebook:before {
  content: "\e92b"; }

.icon-social-glassdoor:before {
  content: "\e92c"; }

.icon-social-google-plus:before {
  content: "\e92d"; }

.icon-social-linkedin:before {
  content: "\e92e"; }

.icon-social-slack:before {
  content: "\e92f"; }

.icon-social-twitter:before {
  content: "\e930"; }

.icon-social-youtube:before {
  content: "\e931"; }

.icon-web-content:before {
  content: "\e932"; }

.icon-web-email:before {
  content: "\e933"; }

.icon-web-language:before {
  content: "\e934"; }

.icon-web-live-demo:before {
  content: "\e935"; }

.icon-web-search:before {
  content: "\e936"; }

.icon-web-video:before {
  content: "\e937"; }

.icon-web-webinars:before {
  content: "\e938"; }

@font-face {
  font-family: 'ico-coupa-nav';
  src: url("fonts/ico-coupa-nav.eot?3oeu5v");
  src: url("fonts/ico-coupa-nav.eot?3oeu5v#iefix") format("embedded-opentype"), url("fonts/ico-coupa-nav.ttf?3oeu5v") format("truetype"), url("fonts/ico-coupa-nav.woff?3oeu5v") format("woff"), url("fonts/ico-coupa-nav.svg?3oeu5v#ico-coupa-nav") format("svg");
  font-weight: normal;
  font-style: normal; }

i.ico-coupa-nav {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'ico-coupa-nav' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-email:before {
  content: "\e900"; }

.icon-language:before {
  content: "\e901"; }

.icon-search:before {
  content: "\e902"; }

#small-masthead-container-v2.tab-bar {
  background: #ffffff;
  color: #00b5ef;
  height: 56px;
  line-height: 56px;
  -moz-osx-font-smoothing: grayscale; }
  #small-masthead-container-v2.tab-bar .left-small, #small-masthead-container-v2.tab-bar .right-small {
    height: 56px; }
  #small-masthead-container-v2.tab-bar .left-small {
    width: 50%;
    border-right: none; }
    #small-masthead-container-v2.tab-bar .left-small .branding {
      height: 40px;
      max-height: 40px;
      padding: 8px 10px; }
      #small-masthead-container-v2.tab-bar .left-small .branding a {
        display: block;
        height: 40px;
        max-height: 40px; }
        #small-masthead-container-v2.tab-bar .left-small .branding a img {
          display: block;
          height: 40px;
          max-height: 40px;
          width: auto; }
  #small-masthead-container-v2.tab-bar .right-small {
    width: 2.8125rem;
    border-left: none; }
  #small-masthead-container-v2.tab-bar .menu-icon {
    text-indent: 2.1875rem;
    width: 56px;
    height: 56px;
    padding: 0;
    color: #00b5ef; }
    #small-masthead-container-v2.tab-bar .menu-icon span::after {
      width: 20px; }

#small-masthead-right-off-canvas-menu-v2 {
  background: #00b5ef; }
  #small-masthead-right-off-canvas-menu-v2 #small-masthead-menu {
    background: #00b5ef;
    -moz-osx-font-smoothing: grayscale; }
    #small-masthead-right-off-canvas-menu-v2 #small-masthead-menu.off-canvas-list {
      list-style-type: none !important; }
      #small-masthead-right-off-canvas-menu-v2 #small-masthead-menu.off-canvas-list li a {
        padding: 0.5rem 1.2rem;
        background: #00b5ef;
        border: none;
        color: #ffffff;
        font-size: 1.1rem;
        font-weight: 500;
        line-height: 1.2;
        text-transform: none;
        text-decoration: none; }
        #small-masthead-right-off-canvas-menu-v2 #small-masthead-menu.off-canvas-list li a:hover, #small-masthead-right-off-canvas-menu-v2 #small-masthead-menu.off-canvas-list li a:active, #small-masthead-right-off-canvas-menu-v2 #small-masthead-menu.off-canvas-list li a.active {
          background-color: #41d1ff;
          color: #ffffff;
          font-weight: 500; }
        #small-masthead-right-off-canvas-menu-v2 #small-masthead-menu.off-canvas-list li a i {
          display: inline;
          margin-right: 0.1rem;
          font-family: 'ico-coupa-solid' !important;
          speak: none;
          font-style: normal;
          font-weight: normal;
          font-variant: normal;
          text-transform: none;
          line-height: 1;
          font-size: 1.4rem;
          vertical-align: -0.25rem; }
      #small-masthead-right-off-canvas-menu-v2 #small-masthead-menu.off-canvas-list li ul.nested {
        margin-left: 1rem;
        list-style-type: none !important; }

.move-left .exit-off-canvas,
.move-right .exit-off-canvas {
  box-shadow: none; }

.masthead-sticky-container-full-v2-sp {
  height: 71px; }

.masthead-sticky-container-full-v2 {
  background-color: #fefefe;
  height: 71px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }
  .masthead-sticky-container-full-v2 > .masthead-sticky {
    border-bottom: 1px solid #dadada;
    height: 71px; }
    .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row {
      max-width: 1260px; }
      .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns {
        height: 72px; }
        .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.branding {
          width: 174px;
          padding-top: 16px;
          padding-right: 15px;
          padding-bottom: 0;
          padding-left: 15px; }
          .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.branding a.logo {
            display: block;
            width: 144px; }
        .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.mid-nav {
          padding-top: 0;
          padding-right: 0;
          padding-bottom: 0;
          padding-left: 0; }
          .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.mid-nav ul.menu {
            padding: 0;
            margin: 0; }
            .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.mid-nav ul.menu > li {
              display: list-item;
              padding: 0;
              margin: 0; }
              .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.mid-nav ul.menu > li > a {
                margin-right: 10px;
                margin-left: 10px;
                padding-top: 28px;
                padding-right: 0;
                padding-bottom: 28px;
                padding-left: 0;
                color: #02468c;
                font-family: "museo-sans", sans-serif;
                font-size: 0.9rem;
                font-weight: 500;
                line-height: 1;
                text-decoration: none; }
                .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.mid-nav ul.menu > li > a::before {
                  background: #00b5ef;
                  height: 3px; }
                .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.mid-nav ul.menu > li > a:hover, .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.mid-nav ul.menu > li > a:active {
                  color: #00b5ef; }
                .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.mid-nav ul.menu > li > a.active {
                  color: #00b5ef; }
                .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.mid-nav ul.menu > li > a.current::before {
                  position: absolute;
                  background: #00b5ef;
                  height: 3px;
                  z-index: -1;
                  left: 0;
                  right: 0;
                  bottom: 0;
                  content: ''; }
        .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav {
          padding-top: 0;
          padding-right: 15px;
          padding-bottom: 0;
          padding-left: 0; }
          .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu {
            display: inline-block;
            padding: 0;
            margin: 2px 0 0 0; }
            .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li {
              display: list-item;
              padding: 23px 0;
              margin: 0; }
              .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a {
                font-family: "museo-sans", sans-serif; }
                .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.login {
                  margin-top: 4x;
                  margin-bottom: 3x;
                  padding: 0 12px;
                  font-size: 12px;
                  line-height: 17px;
                  border-right: 1px solid #dadada;
                  vertical-align: middle; }
                  .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.login span {
                    display: inline-block;
                    padding: 2px 0;
                    vertical-align: middle; }
                  .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.login:hover, .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.login:active, .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.login.active {
                    color: #ff6714; }
                .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.ic {
                  padding: 0 12px;
                  color: #00b5ef;
                  font-size: 11px;
                  line-height: 1;
                  border-right: 1px solid #dadada; }
                  .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.ic span {
                    display: inline-block;
                    font-size: 11px;
                    line-height: 1;
                    vertical-align: middle; }
                  .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.ic i {
                    padding: 4px 0;
                    font-size: 18px;
                    line-height: 1;
                    vertical-align: middle; }
                  .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.ic:hover, .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.ic:active, .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.ic.active {
                    color: #ff6714;
                    text-decoration: none; }
                .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.search {
                  border-right: none; }
            .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu:last-child a {
              border-right: none; }
          .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav a.button {
            display: inline-block;
            float: right;
            margin: 14px 6px;
            background-color: #ff6714;
            border: 3px solid #ff6714 !important;
            border-radius: 32px !important;
            padding: 6px 12px !important;
            color: #fefefe !important;
            font-family: "museo-sans", sans-serif;
            font-size: 0.95rem !important;
            font-weight: 700;
            text-transform: none;
            line-height: 1;
            transition: background-color 0.1s ease-out, border-color 0.1s ease-out, color 0.1s ease-out; }
            .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav a.button:hover, .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav a.button:active {
              background-color: #00b5ef !important;
              border: 3px solid #00b5ef !important; }

@media print, screen and (min-width: 72em) {
  .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.mid-nav ul.menu > li > a {
    margin-right: 10px;
    margin-left: 10px;
    font-size: 0.93rem; }
  .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li {
    padding: 23px 0; }
    .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.ic {
      font-size: 13px;
      line-height: 1; }
      .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.ic span {
        font-size: 13px; }
      .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.ic i {
        font-size: 22px; }
  .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav a.button {
    display: inline-block;
    float: right;
    margin: 14px 8px;
    padding: 7px 12px !important;
    font-size: 0.96rem !important; } }

@media screen and (min-width: 78.75em) {
  .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.mid-nav ul.menu > li > a {
    margin-right: 14px;
    margin-left: 14px;
    font-size: 0.95rem; }
  .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li {
    padding: 23px 0; }
    .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.ic {
      font-size: 13px;
      line-height: 1; }
      .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.ic span {
        font-size: 13px; }
      .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav ul.menu > li a.ic i {
        font-size: 22px; }
  .masthead-sticky-container-full-v2 > .masthead-sticky > header.masthead.row > .columns > .row > .columns.right-nav a.button {
    display: inline-block;
    float: right;
    margin: 14px 8px;
    padding: 8px 14px !important;
    font-size: 1.05rem !important; } }

.f-dropdown {
  position: fixed;
  margin-top: 0 !important;
  z-index: 100; }
  .f-dropdown.content {
    margin-left: 0;
    max-height: none;
    padding: 0;
    font-size: 1rem;
    max-width: none;
    outline: 0; }
  .f-dropdown::after, .f-dropdown::before {
    display: none; }

.dropdown-pane {
  z-index: 100;
  max-width: 100%;
  background-color: #fefefe;
  border-radius: 0;
  padding: 0;
  font-family: "museo-sans", sans-serif;
  font-size: 1rem;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  border-top: 1px solid #dadada;
  box-shadow: 0px 4px 12px 1px rgba(0, 0, 0, 0.14); }
  .dropdown-pane.f-dropdown::before, .dropdown-pane.f-dropdown::after {
    z-index: 100; }
  .dropdown-pane.f-dropdown.content {
    z-index: 100; }
  .dropdown-pane .dropdown-pane-container {
    margin: 0;
    padding: 0; }
  .dropdown-pane .background-alt {
    background-color: #f5f5f5; }
  .dropdown-pane .border-left {
    border-left: 1px solid #dadada; }
  .dropdown-pane .border-right {
    border-right: 1px solid #dadada; }
  .dropdown-pane .margin-bot-1r {
    margin-bottom: 1rem !important; }
  .dropdown-pane .margin-bot-2r {
    margin-bottom: 2rem !important; }
  .dropdown-pane h1, .dropdown-pane .h1, .dropdown-pane h2, .dropdown-pane .h2, .dropdown-pane h3, .dropdown-pane .h3, .dropdown-pane h4, .dropdown-pane .h4, .dropdown-pane h5, .dropdown-pane .h5, .dropdown-pane h6, .dropdown-pane .h6 {
    margin-bottom: 1rem;
    border: none;
    color: #155e9b;
    font-weight: 700;
    font-family: "museo-sans", sans-serif;
    text-transform: none; }
    .dropdown-pane h1 a, .dropdown-pane .h1 a, .dropdown-pane h2 a, .dropdown-pane .h2 a, .dropdown-pane h3 a, .dropdown-pane .h3 a, .dropdown-pane h4 a, .dropdown-pane .h4 a, .dropdown-pane h5 a, .dropdown-pane .h5 a, .dropdown-pane h6 a, .dropdown-pane .h6 a {
      color: inherit; }
    .dropdown-pane h1.subhead, .dropdown-pane .h1.subhead, .dropdown-pane h2.subhead, .dropdown-pane .h2.subhead, .dropdown-pane h3.subhead, .dropdown-pane .h3.subhead, .dropdown-pane h4.subhead, .dropdown-pane .h4.subhead, .dropdown-pane h5.subhead, .dropdown-pane .h5.subhead, .dropdown-pane h6.subhead, .dropdown-pane .h6.subhead {
      margin-bottom: 0;
      color: #717171;
      font-weight: 500;
      line-height: 1.2; }
      .dropdown-pane h1.subhead span, .dropdown-pane .h1.subhead span, .dropdown-pane h2.subhead span, .dropdown-pane .h2.subhead span, .dropdown-pane h3.subhead span, .dropdown-pane .h3.subhead span, .dropdown-pane h4.subhead span, .dropdown-pane .h4.subhead span, .dropdown-pane h5.subhead span, .dropdown-pane .h5.subhead span, .dropdown-pane h6.subhead span, .dropdown-pane .h6.subhead span {
        font-size: 0.85rem;
        color: #959595;
        font-weight: 300; }
      .dropdown-pane h1.subhead a, .dropdown-pane .h1.subhead a, .dropdown-pane h2.subhead a, .dropdown-pane .h2.subhead a, .dropdown-pane h3.subhead a, .dropdown-pane .h3.subhead a, .dropdown-pane h4.subhead a, .dropdown-pane .h4.subhead a, .dropdown-pane h5.subhead a, .dropdown-pane .h5.subhead a, .dropdown-pane h6.subhead a, .dropdown-pane .h6.subhead a {
        color: inherit; }
        .dropdown-pane h1.subhead a:hover, .dropdown-pane h1.subhead a:active, .dropdown-pane .h1.subhead a:hover, .dropdown-pane .h1.subhead a:active, .dropdown-pane h2.subhead a:hover, .dropdown-pane h2.subhead a:active, .dropdown-pane .h2.subhead a:hover, .dropdown-pane .h2.subhead a:active, .dropdown-pane h3.subhead a:hover, .dropdown-pane h3.subhead a:active, .dropdown-pane .h3.subhead a:hover, .dropdown-pane .h3.subhead a:active, .dropdown-pane h4.subhead a:hover, .dropdown-pane h4.subhead a:active, .dropdown-pane .h4.subhead a:hover, .dropdown-pane .h4.subhead a:active, .dropdown-pane h5.subhead a:hover, .dropdown-pane h5.subhead a:active, .dropdown-pane .h5.subhead a:hover, .dropdown-pane .h5.subhead a:active, .dropdown-pane h6.subhead a:hover, .dropdown-pane h6.subhead a:active, .dropdown-pane .h6.subhead a:hover, .dropdown-pane .h6.subhead a:active {
          color: #00b5ef; }
          .dropdown-pane h1.subhead a:hover span, .dropdown-pane h1.subhead a:active span, .dropdown-pane .h1.subhead a:hover span, .dropdown-pane .h1.subhead a:active span, .dropdown-pane h2.subhead a:hover span, .dropdown-pane h2.subhead a:active span, .dropdown-pane .h2.subhead a:hover span, .dropdown-pane .h2.subhead a:active span, .dropdown-pane h3.subhead a:hover span, .dropdown-pane h3.subhead a:active span, .dropdown-pane .h3.subhead a:hover span, .dropdown-pane .h3.subhead a:active span, .dropdown-pane h4.subhead a:hover span, .dropdown-pane h4.subhead a:active span, .dropdown-pane .h4.subhead a:hover span, .dropdown-pane .h4.subhead a:active span, .dropdown-pane h5.subhead a:hover span, .dropdown-pane h5.subhead a:active span, .dropdown-pane .h5.subhead a:hover span, .dropdown-pane .h5.subhead a:active span, .dropdown-pane h6.subhead a:hover span, .dropdown-pane h6.subhead a:active span, .dropdown-pane .h6.subhead a:hover span, .dropdown-pane .h6.subhead a:active span {
            color: #00b5ef; }
  .dropdown-pane h3, .dropdown-pane h6, .dropdown-pane .h6 {
    font-size: 1.125rem; }
  .dropdown-pane h4, .dropdown-pane .h7 {
    font-size: 1rem; }
  .dropdown-pane p {
    font-size: 0.85rem;
    line-height: 1.2; }
    .dropdown-pane p:last-child {
      margin-bottom: 0; }
  .dropdown-pane a {
    text-decoration: none; }
    .dropdown-pane a:hover, .dropdown-pane a:active {
      text-decoration: none; }
    .dropdown-pane a.button {
      margin-bottom: 0;
      background-color: #00b5ef;
      border: 3px solid #00b5ef !important;
      border-radius: 24px !important;
      padding: 12px 22px !important;
      color: #fefefe !important;
      font-family: "museo-sans", sans-serif;
      font-size: 1rem !important;
      font-weight: 700 !important;
      line-height: 1;
      text-transform: none;
      transition: background-color 0.1s ease-out, border-color 0.1s ease-out, color 0.1s ease-out; }
      .dropdown-pane a.button:hover, .dropdown-pane a.button:active {
        background-color: #ff6714 !important;
        border-color: #ff6714 !important; }
    .dropdown-pane a.ic {
      line-height: 1; }
      .dropdown-pane a.ic i {
        display: inline;
        margin-right: 0.35rem;
        color: #00b5ef;
        font-family: 'ico-coupa-line' !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        font-size: 2.25rem;
        vertical-align: middle; }
      .dropdown-pane a.ic span {
        display: inline;
        vertical-align: middle; }
      .dropdown-pane a.ic:hover i, .dropdown-pane a.ic:active i {
        font-family: 'ico-coupa-solid' !important; }
  .dropdown-pane img {
    width: auto;
    max-width: none; }
  .dropdown-pane .icons-grid .icon-grid a.ic {
    line-height: 37px; }
  .dropdown-pane .icons-grid .icon-grid:hover a, .dropdown-pane .icons-grid .icon-grid:active a {
    color: #00b5ef; }
    .dropdown-pane .icons-grid .icon-grid:hover a span, .dropdown-pane .icons-grid .icon-grid:active a span {
      color: #00b5ef; }
  .dropdown-pane .icons-grid .icon-grid:hover i, .dropdown-pane .icons-grid .icon-grid:active i {
    font-family: 'ico-coupa-solid' !important; }
  .dropdown-pane .lists-grid .list.cell {
    background-color: transparent; }
    .dropdown-pane .lists-grid .list.cell a {
      padding: 0; }
    .dropdown-pane .lists-grid .list.cell .subhead {
      margin-bottom: 1.5rem; }
      .dropdown-pane .lists-grid .list.cell .subhead:last-child {
        margin-bottom: 1rem; }
  .dropdown-pane .card {
    margin: 0 auto 1rem auto;
    max-width: 75%;
    background-color: #00b5ef;
    background-image: url(../img/solutions-overview-explore-background-400x174-2x.png);
    background-repeat: no-repeat;
    background-origin: center center;
    background-size: cover;
    color: #fefefe; }
  .dropdown-pane .grid-x .cell.padded {
    padding: 30px; }
  .dropdown-pane ul.menu > li {
    background-color: transparent; }
    .dropdown-pane ul.menu > li a {
      padding: 0.375rem 0;
      color: #717171;
      font-size: 0.85rem;
      line-height: 1.2; }
      .dropdown-pane ul.menu > li a:hover, .dropdown-pane ul.menu > li a:active {
        color: #00b5ef; }

@media print, screen and (min-width: 72em) {
  .dropdown-pane {
    max-width: none; }
    .dropdown-pane p {
      font-size: 0.9rem;
      line-height: 1.2; }
    .dropdown-pane .grid-x .cell.padded {
      padding: 30px; }
    .dropdown-pane ul.menu > li a {
      padding: 0.375rem 0;
      font-size: 0.95rem;
      line-height: 1.2; } }

#products-dropdown {
  width: 1180px; }
  #products-dropdown > .dropdown-pane-container > .grid-x > .cell:nth-child(1) {
    width: 47%; }
  #products-dropdown > .dropdown-pane-container > .grid-x > .cell:nth-child(2) {
    width: 28%; }
  #products-dropdown > .dropdown-pane-container > .grid-x > .cell.cta {
    //background-image: url(/v2/assets/img/nav/Products_CTA_BSI.png);
    //background-size: cover;
    //background-position: center top;
    //background-repeat: no-repeat; }

#industries-dropdown {
  width: 1120px; }
  #industries-dropdown > .dropdown-pane-container .icon-columns-grid > .cell:nth-child(2) {
    padding-left: rem-calc(42); }
  #industries-dropdown > .dropdown-pane-container .icon-columns-grid > .cell:nth-child(3) {
    padding-left: rem-calc(35); }

#partners-dropdown {
  width: 580px; }

#company-dropdown {
  width: 1060px; }

#language-dropdown {
  width: 140px;
  background: transparent;
  border: none;
  box-shadow: none; }
  #language-dropdown .dropdown-pane-container {
    margin: 4px 0 0 0;
    padding: 0;
    background: #fefefe;
    border: 1px solid #dadada;
    border-radius: 8px;
    box-shadow: 2px 2px 3px 1px rgba(0, 0, 0, 0.1); }
  #language-dropdown .grid-x .cell.padded {
    padding: 18px 24px; }
  #language-dropdown h3 {
    margin-bottom: 0.5rem; }
  #language-dropdown ul.menu {
    margin: 0;
    padding: 0;
    list-style: none; }
    #language-dropdown ul.menu > li a {
      padding: 0.2rem 0;
      color: #717171;
      font-size: 0.95rem;
      line-height: 1.2; }
      #language-dropdown ul.menu > li a:hover, #language-dropdown ul.menu > li a:active {
        color: #00b5ef; }

#login-dropdown {
  width: 168px;
  background: transparent;
  border: none;
  box-shadow: none; }
  #login-dropdown .dropdown-pane-container {
    margin: 4px 0 0 0;
    padding: 0;
    background: #fefefe;
    border: 1px solid #dadada;
    border-radius: 8px;
    box-shadow: 2px 2px 3px 1px rgba(0, 0, 0, 0.1); }
  #login-dropdown .grid-x .cell.padded {
    padding: 18px 24px; }
  #login-dropdown h3 {
    margin-bottom: 0.5rem; }
  #login-dropdown ul.menu {
    margin: 0;
    padding: 0;
    list-style: none; }
    #login-dropdown ul.menu > li a {
      padding: 0.2rem 0;
      color: #717171;
      font-size: 0.95rem;
      line-height: 1.2; }
      #login-dropdown ul.menu > li a:hover, #login-dropdown ul.menu > li a:active {
        color: #00b5ef; }



#search-dropdown {
  width: 320px;
  background: transparent;
  border: none;
  box-shadow: none; }
  #search-dropdown .dropdown-pane-container {
    margin: 6px 0 0 0;
    width: 320px;
    padding: 6px;
    border-radius: 8px;
    background-color: #fefefe; }
  #search-dropdown form {
    margin: 0; }
    #search-dropdown form .input-group {
      margin: 0;
      border-radius: 8px; }
      #search-dropdown form .input-group .input-group-field {
        display: inline-block; }
      #search-dropdown form .input-group .input-group-button {
        display: inline-block; }
      #search-dropdown form .input-group input {
        display: inline-block;
        height: 40px !important;
        margin: 0 !important;
        border: 1px solid  #a4a4a4 !important;
        border-radius: 8px 0 0 8px !important;
        padding: 6px 10px !important;
        font-family: "museo-sans", sans-serif;
        line-height: 18px;
        vertical-align: top; }
        #search-dropdown form .input-group input[type="text"] {
          width: 336px !important; }
        #search-dropdown form .input-group input:focus {
          border: 1px solid  #ff6714 !important;
          box-shadow: none; }
        #search-dropdown form .input-group input[type="submit"].button {
          height: 40px !important;
          background-color: #ff6714;
          border: 1px solid  #a4a4a4 !important;
          border-radius: 0 8px 8px 0 !important;
          padding: 8px 14px 8px 10px !important;
          font-size: 1.1rem !important;
          font-weight: 700 !important;
          text-transform: none;
          transition: background-color 0.1s ease-out, border-color 0.1s ease-out, color 0.1s ease-out; }
          #search-dropdown form .input-group input[type="submit"].button:hover, #search-dropdown form .input-group input[type="submit"].button:active {
            background-color: #00b5ef !important;
            -webkit-order: 1px solid  #a4a4a4 !important;
                -ms-flex-order: 1px solid  #a4a4a4 !important;
                    order: 1px solid  #a4a4a4 !important; }

footer.footer-container {
  background-color: #2a4788;
  color: #ffffff;
  font-family: "museo-sans", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }
  footer.footer-container.full {
    width: 100%; }
  footer.footer-container > .inner {
    max-width: 1260px;
    margin: 0 auto;
    padding: 3rem 2rem 2rem 2rem; }
  footer.footer-container .footer-grid {
    max-width: 1226px; }
    footer.footer-container .footer-grid > .cell {
      padding-right: 0;
      padding-left: 0; }
      footer.footer-container .footer-grid > .cell.nav > .grid-x > .cell {
        margin-bottom: 0;
        padding-bottom: 0;
        text-align: center; }
      footer.footer-container .footer-grid > .cell.nav h1, footer.footer-container .footer-grid > .cell.nav .h1, footer.footer-container .footer-grid > .cell.nav h2, footer.footer-container .footer-grid > .cell.nav .h2, footer.footer-container .footer-grid > .cell.nav h3, footer.footer-container .footer-grid > .cell.nav .h3, footer.footer-container .footer-grid > .cell.nav h4, footer.footer-container .footer-grid > .cell.nav .h4, footer.footer-container .footer-grid > .cell.nav h5, footer.footer-container .footer-grid > .cell.nav .h5, footer.footer-container .footer-grid > .cell.nav h6, footer.footer-container .footer-grid > .cell.nav .h6 {
        margin-bottom: 1rem !important;
        color: #ffffff;
        font-weight: 700 !important;
        font-family: "museo-sans", sans-serif;
        line-height: 1.125rem;
        text-transform: none; }
        footer.footer-container .footer-grid > .cell.nav h1 a, footer.footer-container .footer-grid > .cell.nav h1 span, footer.footer-container .footer-grid > .cell.nav .h1 a, footer.footer-container .footer-grid > .cell.nav .h1 span, footer.footer-container .footer-grid > .cell.nav h2 a, footer.footer-container .footer-grid > .cell.nav h2 span, footer.footer-container .footer-grid > .cell.nav .h2 a, footer.footer-container .footer-grid > .cell.nav .h2 span, footer.footer-container .footer-grid > .cell.nav h3 a, footer.footer-container .footer-grid > .cell.nav h3 span, footer.footer-container .footer-grid > .cell.nav .h3 a, footer.footer-container .footer-grid > .cell.nav .h3 span, footer.footer-container .footer-grid > .cell.nav h4 a, footer.footer-container .footer-grid > .cell.nav h4 span, footer.footer-container .footer-grid > .cell.nav .h4 a, footer.footer-container .footer-grid > .cell.nav .h4 span, footer.footer-container .footer-grid > .cell.nav h5 a, footer.footer-container .footer-grid > .cell.nav h5 span, footer.footer-container .footer-grid > .cell.nav .h5 a, footer.footer-container .footer-grid > .cell.nav .h5 span, footer.footer-container .footer-grid > .cell.nav h6 a, footer.footer-container .footer-grid > .cell.nav h6 span, footer.footer-container .footer-grid > .cell.nav .h6 a, footer.footer-container .footer-grid > .cell.nav .h6 span {
          font-weight: 700 !important;
          text-decoration: none; }
      footer.footer-container .footer-grid > .cell.nav .h6 > a, footer.footer-container .footer-grid > .cell.nav .h6 > span {
        font-size: 1.4em; }
      footer.footer-container .footer-grid > .cell.nav p.copyright {
        font-size: 0.9rem;
        opacity: 0.75;
        font-family: "museo-sans", sans-serif; }
      footer.footer-container .footer-grid > .cell.nav a {
        color: #ffffff;
        font-family: "museo-sans", sans-serif; }
        footer.footer-container .footer-grid > .cell.nav a:hover, footer.footer-container .footer-grid > .cell.nav a:active {
          opacity: 0.75; }
        footer.footer-container .footer-grid > .cell.nav a.button {
          font-family: "museo-sans", sans-serif; }
          footer.footer-container .footer-grid > .cell.nav a.button:hover, footer.footer-container .footer-grid > .cell.nav a.button:active {
            background-color: #ffffff;
            border-color: #ff6714;
            color: #ff6714; }
      footer.footer-container .footer-grid > .cell.nav ul.menu {
        margin-bottom: 1.25rem;
        margin-left: 0;
        list-style-type: none; }
        footer.footer-container .footer-grid > .cell.nav ul.menu > li a {
          display: block;
          padding: 0.225rem 0;
          color: #ffffff;
          font-size: 1.1rem;
          font-weight: 300;
          font-family: "museo-sans", sans-serif;
          line-height: 1;
          text-decoration: none; }
          footer.footer-container .footer-grid > .cell.nav ul.menu > li a:hover, footer.footer-container .footer-grid > .cell.nav ul.menu > li a:active {
            opacity: 0.75; }
        footer.footer-container .footer-grid > .cell.nav ul.menu.social > li a {
          padding: 0.7rem 0.7rem; }
          footer.footer-container .footer-grid > .cell.nav ul.menu.social > li a i {
            font-size: 1.5rem; }
      footer.footer-container .footer-grid > .cell.mid {
        margin-top: 1rem;
        border-top: 1px solid rgba(255, 255, 255, 0.5);
        padding-top: 2rem;
        padding-bottom: 2rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.4);
        margin-bottom: 2rem; }
        footer.footer-container .footer-grid > .cell.mid h1, footer.footer-container .footer-grid > .cell.mid .h1, footer.footer-container .footer-grid > .cell.mid h2, footer.footer-container .footer-grid > .cell.mid .h2, footer.footer-container .footer-grid > .cell.mid h3, footer.footer-container .footer-grid > .cell.mid .h3, footer.footer-container .footer-grid > .cell.mid h4, footer.footer-container .footer-grid > .cell.mid .h4, footer.footer-container .footer-grid > .cell.mid h5, footer.footer-container .footer-grid > .cell.mid .h5, footer.footer-container .footer-grid > .cell.mid h6, footer.footer-container .footer-grid > .cell.mid .h6 {
          margin-bottom: 0;
          color: #ffffff;
          font-weight: 700;
          font-family: "museo-sans", sans-serif; }
        footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell:last-child {
          border-right: none; }
        footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell a.white {
          color: #ffffff; }
          footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell a.white:hover, footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell a.white:active {
            opacity: 0.75 !important; }
        footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social {
          text-align: center; }
          footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social ul.menu {
            display: inline-block;
            margin-left: 0;
            margin-bottom: 0;
            list-style-type: none; }
            footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social ul.menu > li {
              display: inline-block;
              margin-bottom: 0;
              margin-left: 0;
              float: none; }
              footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social ul.menu > li a {
                padding: 0.4rem 0.4rem;
                color: #ffffff;
                font-family: "museo-sans", sans-serif; }
                footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social ul.menu > li a i {
                  color: #ffffff;
                  font-family: 'ico-coupa-line' !important;
                  speak: none;
                  font-style: normal;
                  font-weight: normal;
                  font-variant: normal;
                  text-transform: none;
                  line-height: 1;
                  font-size: 3rem; }
                footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social ul.menu > li a:hover, footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social ul.menu > li a:active {
                  text-decoration: none; }
                  footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social ul.menu > li a:hover i, footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social ul.menu > li a:active i {
                    font-family: 'ico-coupa-solid' !important; }
            footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social ul.menu.solid > li a {
              padding: 0.4rem 0.4rem;
              color: #ffffff;
              font-family: "museo-sans", sans-serif; }
              footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social ul.menu.solid > li a i {
                color: #ffffff;
                font-family: 'ico-coupa-solid' !important;
                speak: none;
                font-style: normal;
                font-weight: normal;
                font-variant: normal;
                text-transform: none;
                line-height: 1;
                font-size: 3rem; }
              footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social ul.menu.solid > li a:hover i, footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social ul.menu.solid > li a:active i {
                font-family: 'ico-coupa-line' !important; }
        footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.bug {
          text-align: center; }
          footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.bug h3 {
            margin-bottom: 0;
            font-weight: 700 !important;
            line-height: 1; }
            footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.bug h3 a {
              margin-bottom: 0;
              font-size: 1.5em;
              font-weight: 700 !important;
              line-height: 3;
              text-decoration: none; }
        footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.contact {
          text-align: center; }
          footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.contact h5, footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.contact h6 {
            text-transform: none;
            font-family: "museo-sans", sans-serif;
            line-height: 2.2;
            text-align: center; }
          footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.contact a.button {
            margin-bottom: 0;
            border: 3px solid #ffffff !important;
            border-radius: 32px !important;
            padding: 0.6em 1.2em !important;
            background-color: transparent !important;
            color: #ffffff !important;
            font-size: 1.2rem !important;
            font-weight: 700;
            font-family: "museo-sans", sans-serif;
            text-transform: none; }
            footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.contact a.button:hover, footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.contact a.button:active {
              background-color: #ffffff !important;
              color: #2a4788 !important; }
      footer.footer-container .footer-grid > .cell.bot > .grid-x {
        margin-right: rem-calc(-15);
        margin-left: rem-calc(-15); }
        footer.footer-container .footer-grid > .cell.bot > .grid-x > .cell {
          font-size: 0.9rem;
          font-family: "museo-sans", sans-serif;
          text-align: center; }
          footer.footer-container .footer-grid > .cell.bot > .grid-x > .cell .copyright {
            margin-bottom: 1rem;
            font-size: 0.9rem; }
          footer.footer-container .footer-grid > .cell.bot > .grid-x > .cell a {
            color: #ffffff;
            font-weight: 300;
            font-family: "museo-sans", sans-serif;
            white-space: nowrap; }
            footer.footer-container .footer-grid > .cell.bot > .grid-x > .cell a:hover, footer.footer-container .footer-grid > .cell.bot > .grid-x > .cell a:active {
              text-decoration: none;
              opacity: 0.75; }
          footer.footer-container .footer-grid > .cell.bot > .grid-x > .cell img.ic {
            width: 124px; }

@media only screen and (min-width: 61.875em) {
  footer.footer-container > .inner {
    padding: 3rem 2rem 2rem 2rem; }
  footer.footer-container .footer-grid > .cell.nav > .grid-x > .cell {
    text-align: left; }
  footer.footer-container .footer-grid > .cell.nav h1 a, footer.footer-container .footer-grid > .cell.nav h1 span, footer.footer-container .footer-grid > .cell.nav .h1 a, footer.footer-container .footer-grid > .cell.nav .h1 span, footer.footer-container .footer-grid > .cell.nav h2 a, footer.footer-container .footer-grid > .cell.nav h2 span, footer.footer-container .footer-grid > .cell.nav .h2 a, footer.footer-container .footer-grid > .cell.nav .h2 span, footer.footer-container .footer-grid > .cell.nav h3 a, footer.footer-container .footer-grid > .cell.nav h3 span, footer.footer-container .footer-grid > .cell.nav .h3 a, footer.footer-container .footer-grid > .cell.nav .h3 span, footer.footer-container .footer-grid > .cell.nav h4 a, footer.footer-container .footer-grid > .cell.nav h4 span, footer.footer-container .footer-grid > .cell.nav .h4 a, footer.footer-container .footer-grid > .cell.nav .h4 span, footer.footer-container .footer-grid > .cell.nav h5 a, footer.footer-container .footer-grid > .cell.nav h5 span, footer.footer-container .footer-grid > .cell.nav .h5 a, footer.footer-container .footer-grid > .cell.nav .h5 span, footer.footer-container .footer-grid > .cell.nav h6 a, footer.footer-container .footer-grid > .cell.nav h6 span, footer.footer-container .footer-grid > .cell.nav .h6 a, footer.footer-container .footer-grid > .cell.nav .h6 span {
    font-size: 0.68em; }
  footer.footer-container .footer-grid > .cell.nav .h6 > a, footer.footer-container .footer-grid > .cell.nav .h6 > span {
    font-size: .68em; }
  footer.footer-container .footer-grid > .cell.nav ul.menu {
    margin-bottom: 1.25rem; }
    footer.footer-container .footer-grid > .cell.nav ul.menu > li a {
      padding: 0.225rem 0;
      font-size: 0.95rem; }
  footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell {
    border-right: 1px solid rgba(255, 255, 255, 0.4); }
    footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell:last-child {
      border-right: none; }
    footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social {
      width: 36%; }
    footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.bug {
      width: 28%; }
      footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.bug h3 {
        line-height: 61px; }
        footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.bug h3 a {
          font-size: 1.1em;
          line-height: 61px; }
    footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.contact {
      width: 36%;
      white-space: nowrap; }
      footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.contact h5, footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.contact h6 {
        line-height: 61px; }
  footer.footer-container .footer-grid > .cell.bot > .grid-x {
    margin-right: rem-calc(-15);
    margin-left: rem-calc(-15); }
    footer.footer-container .footer-grid > .cell.bot > .grid-x > .cell {
      font-size: 0.9rem; }
      footer.footer-container .footer-grid > .cell.bot > .grid-x > .cell .copyright {
        margin-bottom: 0; } }

@media print, screen and (min-width: 72em) {
  footer.footer-container > .inner {
    padding: 3rem 0 2rem 0; }
  footer.footer-container .footer-grid > .cell.nav > .grid-x > .cell {
    text-align: left; }
  footer.footer-container .footer-grid > .cell.nav h1 a, footer.footer-container .footer-grid > .cell.nav h1 span, footer.footer-container .footer-grid > .cell.nav .h1 a, footer.footer-container .footer-grid > .cell.nav .h1 span, footer.footer-container .footer-grid > .cell.nav h2 a, footer.footer-container .footer-grid > .cell.nav h2 span, footer.footer-container .footer-grid > .cell.nav .h2 a, footer.footer-container .footer-grid > .cell.nav .h2 span, footer.footer-container .footer-grid > .cell.nav h3 a, footer.footer-container .footer-grid > .cell.nav h3 span, footer.footer-container .footer-grid > .cell.nav .h3 a, footer.footer-container .footer-grid > .cell.nav .h3 span, footer.footer-container .footer-grid > .cell.nav h4 a, footer.footer-container .footer-grid > .cell.nav h4 span, footer.footer-container .footer-grid > .cell.nav .h4 a, footer.footer-container .footer-grid > .cell.nav .h4 span, footer.footer-container .footer-grid > .cell.nav h5 a, footer.footer-container .footer-grid > .cell.nav h5 span, footer.footer-container .footer-grid > .cell.nav .h5 a, footer.footer-container .footer-grid > .cell.nav .h5 span, footer.footer-container .footer-grid > .cell.nav h6 a, footer.footer-container .footer-grid > .cell.nav h6 span, footer.footer-container .footer-grid > .cell.nav .h6 a, footer.footer-container .footer-grid > .cell.nav .h6 span {
    font-size: 0.68em; }
  footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell {
    border-right: 1px solid rgba(255, 255, 255, 0.4); }
    footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell:last-child {
      border-right: none; }
    footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.social {
      width: 36%; }
    footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.bug {
      width: 28%; }
      footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.bug h3 {
        line-height: 61px; }
        footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.bug h3 a {
          font-size: 1.1em;
          line-height: 61px; }
    footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.contact {
      width: 36%;
      white-space: nowrap; }
      footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.contact h5, footer.footer-container .footer-grid > .cell.mid > .grid-x > .cell.contact h6 {
        line-height: 61px; }
  footer.footer-container .footer-grid > .cell.bot > .grid-x {
    margin-right: rem-calc(-15);
    margin-left: rem-calc(-15); }
    footer.footer-container .footer-grid > .cell.bot > .grid-x > .cell {
      font-size: 0.9rem; }
      footer.footer-container .footer-grid > .cell.bot > .grid-x > .cell .copyright {
        margin-bottom: 0; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9ob3Zlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX2dyb3cuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9faGFja3Muc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9fbWl4aW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fc2hyaW5rLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fcHVsc2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL19wdWxzZS1ncm93LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fcHVsc2Utc2hyaW5rLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fcHVzaC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3BvcC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX2JvdW5jZS1pbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX2JvdW5jZS1vdXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL19yb3RhdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL19ncm93LXJvdGF0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX2Zsb2F0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fc2luay5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX2JvYi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX2hhbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL19za2V3LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fc2tldy1mb3J3YXJkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fc2tldy1iYWNrd2FyZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3dvYmJsZS12ZXJ0aWNhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3dvYmJsZS1ob3Jpem9udGFsLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fd29iYmxlLXRvLWJvdHRvbS1yaWdodC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3dvYmJsZS10by10b3AtcmlnaHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzLzJkLXRyYW5zaXRpb25zL193b2JibGUtdG9wLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fd29iYmxlLWJvdHRvbS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX3dvYmJsZS1za2V3LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fYnV6ei5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX2J1enotb3V0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9fZm9yd2FyZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvMmQtdHJhbnNpdGlvbnMvX2JhY2t3YXJkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19mYWRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvX29wdGlvbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvX2JhY2stcHVsc2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvX3N3ZWVwLXRvLXJpZ2h0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19zd2VlcC10by1sZWZ0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19zd2VlcC10by1ib3R0b20uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvX3N3ZWVwLXRvLXRvcC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9fYm91bmNlLXRvLXJpZ2h0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19ib3VuY2UtdG8tbGVmdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9fYm91bmNlLXRvLWJvdHRvbS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9fYm91bmNlLXRvLXRvcC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9fcmFkaWFsLW91dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9fcmFkaWFsLWluLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9iYWNrZ3JvdW5kLXRyYW5zaXRpb25zL19yZWN0YW5nbGUtaW4uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvX3JlY3RhbmdsZS1vdXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvX3NodXR0ZXItaW4taG9yaXpvbnRhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9fc2h1dHRlci1vdXQtaG9yaXpvbnRhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9fc2h1dHRlci1pbi12ZXJ0aWNhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYmFja2dyb3VuZC10cmFuc2l0aW9ucy9fc2h1dHRlci1vdXQtdmVydGljYWwuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9fYm9yZGVyLWZhZGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9faG9sbG93LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvX3RyaW0uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9fcmlwcGxlLW91dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL19yaXBwbGUtaW4uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9fb3V0bGluZS1vdXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9fb3V0bGluZS1pbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL19yb3VuZC1jb3JuZXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvX3VuZGVybGluZS1mcm9tLWxlZnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9fdW5kZXJsaW5lLWZyb20tY2VudGVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvX3VuZGVybGluZS1mcm9tLXJpZ2h0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvX292ZXJsaW5lLWZyb20tbGVmdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL19vdmVybGluZS1mcm9tLWNlbnRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL19vdmVybGluZS1mcm9tLXJpZ2h0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvX3JldmVhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL191bmRlcmxpbmUtcmV2ZWFsLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvX292ZXJsaW5lLXJldmVhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvc2hhZG93LWFuZC1nbG93LXRyYW5zaXRpb25zL19nbG93LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9zaGFkb3ctYW5kLWdsb3ctdHJhbnNpdGlvbnMvX3NoYWRvdy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvc2hhZG93LWFuZC1nbG93LXRyYW5zaXRpb25zL19ncm93LXNoYWRvdy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvc2hhZG93LWFuZC1nbG93LXRyYW5zaXRpb25zL19ib3gtc2hhZG93LW91dHNldC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvc2hhZG93LWFuZC1nbG93LXRyYW5zaXRpb25zL19ib3gtc2hhZG93LWluc2V0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9zaGFkb3ctYW5kLWdsb3ctdHJhbnNpdGlvbnMvX2Zsb2F0LXNoYWRvdy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvc2hhZG93LWFuZC1nbG93LXRyYW5zaXRpb25zL19zaGFkb3ctcmFkaWFsLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9zcGVlY2gtYnViYmxlcy9fYnViYmxlLXRvcC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvc3BlZWNoLWJ1YmJsZXMvX2J1YmJsZS1yaWdodC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvc3BlZWNoLWJ1YmJsZXMvX2J1YmJsZS1ib3R0b20uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL3NwZWVjaC1idWJibGVzL19idWJibGUtbGVmdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvc3BlZWNoLWJ1YmJsZXMvX2J1YmJsZS1mbG9hdC10b3Auc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL3NwZWVjaC1idWJibGVzL19idWJibGUtZmxvYXQtcmlnaHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL3NwZWVjaC1idWJibGVzL19idWJibGUtZmxvYXQtYm90dG9tLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9zcGVlY2gtYnViYmxlcy9fYnViYmxlLWZsb2F0LWxlZnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLWJhY2suc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLWZvcndhcmQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLWRvd24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLXVwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9pY29ucy9faWNvbi1zcGluLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9pY29ucy9faWNvbi1kcm9wLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9pY29ucy9faWNvbi1mYWRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9pY29ucy9faWNvbi1mbG9hdC1hd2F5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9pY29ucy9faWNvbi1zaW5rLWF3YXkuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLWdyb3cuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLXNocmluay5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvaWNvbnMvX2ljb24tcHVsc2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLXB1bHNlLWdyb3cuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLXB1bHNlLXNocmluay5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvaWNvbnMvX2ljb24tcHVzaC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvaWNvbnMvX2ljb24tcG9wLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9pY29ucy9faWNvbi1ib3VuY2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLXJvdGF0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvaWNvbnMvX2ljb24tZ3Jvdy1yb3RhdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLWZsb2F0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9pY29ucy9faWNvbi1zaW5rLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9pY29ucy9faWNvbi1ib2Iuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLWhhbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLXdvYmJsZS1ob3Jpem9udGFsLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9pY29ucy9faWNvbi13b2JibGUtdmVydGljYWwuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLWJ1enouc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2ljb25zL19pY29uLWJ1enotb3V0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9jdXJscy9fY3VybC10b3AtbGVmdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hvdmVyLmNzcy9zY3NzL2VmZmVjdHMvY3VybHMvX2N1cmwtdG9wLXJpZ2h0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaG92ZXIuY3NzL3Njc3MvZWZmZWN0cy9jdXJscy9fY3VybC1ib3R0b20tcmlnaHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ob3Zlci5jc3Mvc2Nzcy9lZmZlY3RzL2N1cmxzL19jdXJsLWJvdHRvbS1sZWZ0LnNjc3MiLCJsaW5lYXJpY29ucy5jc3MiLCJpY28tY291cGEtbGluZS5jc3MiLCJpY28tY291cGEtc29saWQuY3NzIiwiaWNvLWNvdXBhLW5hdi5jc3MiLCJzdHlsZXMtMi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBT0gsb0JBQW9CO0FDZnBCLFVBQVU7QURrQlQ7RUVEQSxzQkFBc0I7RUFDdEIsdUJBQXVCO0VD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QUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUFDRDtFQUNDLGlCQUFpQixFQUNqQjs7QUN2aEJEO0VBQ0UsOEJBQThCO0VBQzlCLDRDQUFTO0VBQ1Qsc1FBRzhEO0VBQzlELG9CQUFvQjtFQUNwQixtQkFBbUIsRUFBQTs7QUFHckI7RUFDRSxnRkFBZ0Y7RUFDaEYseUNBQXlDO0VBQ3pDLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIsZUFBZTtFQUVmLHVDQUF1QztFQUN2QyxvQ0FBb0M7RUFDcEMsbUNBQW1DLEVBQ3BDOztBQUVEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsaUJBQWlCLEVBQ2xCOztBQ3BNRDtFQUNFLCtCQUErQjtFQUMvQiw2Q0FBUztFQUNULDJRQUdnRTtFQUNoRSxvQkFBb0I7RUFDcEIsbUJBQW1CLEVBQUE7O0FBR3JCO0VBQ0UsZ0ZBQWdGO0VBQ2hGLDBDQUEwQztFQUMxQyxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGVBQWU7RUFFZix1Q0FBdUM7RUFDdkMsb0NBQW9DO0VBQ3BDLG1DQUFtQyxFQUNwQzs7QUFFRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFpQixFQUNsQjs7QUFDRDtFQUNFLGlCQUFp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cDovL2lhbmx1bm4uZ2l0aHViLmlvL0hvdmVyLylcclxuICogVmVyc2lvbjogMi4zLjJcclxuICogQXV0aG9yOiBJYW4gTHVubiBASWFuTHVublxyXG4gKiBBdXRob3IgVVJMOiBodHRwOi8vaWFubHVubi5jby51ay9cclxuICogR2l0aHViOiBodHRwczovL2dpdGh1Yi5jb20vSWFuTHVubi9Ib3ZlclxyXG5cclxuICogSG92ZXIuY3NzIENvcHlyaWdodCBJYW4gTHVubiAyMDE3LiBHZW5lcmF0ZWQgd2l0aCBTYXNzLlxyXG4gKi9cclxuXHJcbkBpbXBvcnQgXCJvcHRpb25zXCI7XHJcbkBpbXBvcnQgXCJtaXhpbnNcIjtcclxuQGltcG9ydCBcImhhY2tzXCI7XHJcblxyXG5cclxuLyogMkQgVFJBTlNJVElPTlMgKi9cclxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvZ3Jvd1wiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1ncm93IHtcclxuXHRcdEBpbmNsdWRlIGdyb3coKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL3Nocmlua1wiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1zaHJpbmsge1xyXG5cdFx0QGluY2x1ZGUgc2hyaW5rKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9wdWxzZVwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1wdWxzZSB7XHJcblx0XHRAaW5jbHVkZSBwdWxzZSgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvcHVsc2UtZ3Jvd1wiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1wdWxzZS1ncm93IHtcclxuXHRcdEBpbmNsdWRlIHB1bHNlLWdyb3coKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL3B1bHNlLXNocmlua1wiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1wdWxzZS1zaHJpbmsge1xyXG5cdFx0QGluY2x1ZGUgcHVsc2Utc2hyaW5rKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9wdXNoXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXB1c2gge1xyXG5cdFx0QGluY2x1ZGUgcHVzaCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvcG9wXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXBvcCB7XHJcblx0XHRAaW5jbHVkZSBwb3AoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL2JvdW5jZS1pblwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1ib3VuY2UtaW4ge1xyXG5cdFx0QGluY2x1ZGUgYm91bmNlLWluKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9ib3VuY2Utb3V0XCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWJvdW5jZS1vdXQge1xyXG5cdFx0QGluY2x1ZGUgYm91bmNlLW91dCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvcm90YXRlXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXJvdGF0ZSB7XHJcblx0XHRAaW5jbHVkZSByb3RhdGUoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL2dyb3ctcm90YXRlXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWdyb3ctcm90YXRlIHtcclxuXHRcdEBpbmNsdWRlIGdyb3ctcm90YXRlKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9mbG9hdFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1mbG9hdCB7XHJcblx0XHRAaW5jbHVkZSBmbG9hdCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvc2lua1wiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1zaW5rIHtcclxuXHRcdEBpbmNsdWRlIHNpbmsoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL2JvYlwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1ib2Ige1xyXG5cdFx0QGluY2x1ZGUgYm9iKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9oYW5nXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWhhbmcge1xyXG5cdFx0QGluY2x1ZGUgaGFuZygpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvc2tld1wiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1za2V3IHtcclxuXHRcdEBpbmNsdWRlIHNrZXcoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL3NrZXctZm9yd2FyZFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1za2V3LWZvcndhcmQge1xyXG5cdFx0QGluY2x1ZGUgc2tldy1mb3J3YXJkKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy9za2V3LWJhY2t3YXJkXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXNrZXctYmFja3dhcmQge1xyXG5cdCAgICBAaW5jbHVkZSBza2V3LWJhY2t3YXJkKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy93b2JibGUtdmVydGljYWxcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0td29iYmxlLXZlcnRpY2FsIHtcclxuXHRcdEBpbmNsdWRlIHdvYmJsZS12ZXJ0aWNhbCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvd29iYmxlLWhvcml6b250YWxcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0td29iYmxlLWhvcml6b250YWwge1xyXG5cdFx0QGluY2x1ZGUgd29iYmxlLWhvcml6b250YWwoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL3dvYmJsZS10by1ib3R0b20tcmlnaHRcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0td29iYmxlLXRvLWJvdHRvbS1yaWdodCB7XHJcblx0ICAgIEBpbmNsdWRlIHdvYmJsZS10by1ib3R0b20tcmlnaHQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL3dvYmJsZS10by10b3AtcmlnaHRcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0td29iYmxlLXRvLXRvcC1yaWdodCB7XHJcblx0ICAgIEBpbmNsdWRlIHdvYmJsZS10by10b3AtcmlnaHQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL3dvYmJsZS10b3BcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0td29iYmxlLXRvcCB7XHJcblx0XHRAaW5jbHVkZSB3b2JibGUtdG9wKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy8yZC10cmFuc2l0aW9ucy93b2JibGUtYm90dG9tXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXdvYmJsZS1ib3R0b20ge1xyXG5cdFx0QGluY2x1ZGUgd29iYmxlLWJvdHRvbSgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvd29iYmxlLXNrZXdcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0td29iYmxlLXNrZXcge1xyXG5cdCAgICBAaW5jbHVkZSB3b2JibGUtc2tldygpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvYnV6elwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1idXp6IHtcclxuXHQgICAgQGluY2x1ZGUgYnV6eigpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvYnV6ei1vdXRcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tYnV6ei1vdXQge1xyXG5cdCAgICBAaW5jbHVkZSBidXp6LW91dCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvMmQtdHJhbnNpdGlvbnMvZm9yd2FyZFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1mb3J3YXJkIHtcclxuXHRcdEBpbmNsdWRlIGZvcndhcmQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzLzJkLXRyYW5zaXRpb25zL2JhY2t3YXJkXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWJhY2t3YXJkIHtcclxuXHRcdEBpbmNsdWRlIGJhY2t3YXJkKCk7XHJcblx0fVxyXG59XHJcblxyXG4vKiBCQUNLR1JPVU5EIFRSQU5TSVRJT05TICovXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvZmFkZVwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1mYWRlIHtcclxuXHRcdEBpbmNsdWRlIGZhZGUoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvYmFjay1wdWxzZVwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1iYWNrLXB1bHNlIHtcclxuXHRcdEBpbmNsdWRlIGJhY2stcHVsc2UoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvc3dlZXAtdG8tcmlnaHRcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tc3dlZXAtdG8tcmlnaHQge1xyXG5cdFx0QGluY2x1ZGUgc3dlZXAtdG8tcmlnaHQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvc3dlZXAtdG8tbGVmdFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1zd2VlcC10by1sZWZ0IHtcclxuXHRcdEBpbmNsdWRlIHN3ZWVwLXRvLWxlZnQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvc3dlZXAtdG8tYm90dG9tXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXN3ZWVwLXRvLWJvdHRvbSB7XHJcblx0XHRAaW5jbHVkZSBzd2VlcC10by1ib3R0b20oKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvc3dlZXAtdG8tdG9wXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXN3ZWVwLXRvLXRvcCB7XHJcblx0XHRAaW5jbHVkZSBzd2VlcC10by10b3AoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvYm91bmNlLXRvLXJpZ2h0XCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWJvdW5jZS10by1yaWdodCB7XHJcblx0XHRAaW5jbHVkZSBib3VuY2UtdG8tcmlnaHQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvYm91bmNlLXRvLWxlZnRcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tYm91bmNlLXRvLWxlZnQge1xyXG5cdFx0QGluY2x1ZGUgYm91bmNlLXRvLWxlZnQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvYm91bmNlLXRvLWJvdHRvbVwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1ib3VuY2UtdG8tYm90dG9tIHtcclxuXHRcdEBpbmNsdWRlIGJvdW5jZS10by1ib3R0b20oKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvYm91bmNlLXRvLXRvcFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1ib3VuY2UtdG8tdG9wIHtcclxuXHRcdEBpbmNsdWRlIGJvdW5jZS10by10b3AoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvcmFkaWFsLW91dFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1yYWRpYWwtb3V0IHtcclxuXHRcdEBpbmNsdWRlIHJhZGlhbC1vdXQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvcmFkaWFsLWluXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXJhZGlhbC1pbiB7XHJcblx0XHRAaW5jbHVkZSByYWRpYWwtaW4oKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvcmVjdGFuZ2xlLWluXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXJlY3RhbmdsZS1pbiB7XHJcblx0XHRAaW5jbHVkZSByZWN0YW5nbGUtaW4oKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvcmVjdGFuZ2xlLW91dFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1yZWN0YW5nbGUtb3V0IHtcclxuXHRcdEBpbmNsdWRlIHJlY3RhbmdsZS1vdXQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvc2h1dHRlci1pbi1ob3Jpem9udGFsXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXNodXR0ZXItaW4taG9yaXpvbnRhbCB7XHJcblx0XHRAaW5jbHVkZSBzaHV0dGVyLWluLWhvcml6b250YWwoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvc2h1dHRlci1vdXQtaG9yaXpvbnRhbFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1zaHV0dGVyLW91dC1ob3Jpem9udGFsIHtcclxuXHRcdEBpbmNsdWRlIHNodXR0ZXItb3V0LWhvcml6b250YWwoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvc2h1dHRlci1pbi12ZXJ0aWNhbFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1zaHV0dGVyLWluLXZlcnRpY2FsIHtcclxuXHRcdEBpbmNsdWRlIHNodXR0ZXItaW4tdmVydGljYWwoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JhY2tncm91bmQtdHJhbnNpdGlvbnMvc2h1dHRlci1vdXQtdmVydGljYWxcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tc2h1dHRlci1vdXQtdmVydGljYWwge1xyXG5cdFx0QGluY2x1ZGUgc2h1dHRlci1vdXQtdmVydGljYWwoKTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBCT1JERVIgVFJBTlNJVElPTlMgKi9cclxuQGltcG9ydCBcImVmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL2JvcmRlci1mYWRlXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWJvcmRlci1mYWRlIHtcclxuXHRcdEBpbmNsdWRlIGJvcmRlci1mYWRlKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvaG9sbG93XCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWhvbGxvdyB7XHJcblx0XHRAaW5jbHVkZSBob2xsb3coKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy90cmltXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXRyaW0ge1xyXG5cdFx0QGluY2x1ZGUgdHJpbSgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL3JpcHBsZS1vdXRcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tcmlwcGxlLW91dCB7XHJcblx0XHRAaW5jbHVkZSByaXBwbGUtb3V0KCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvcmlwcGxlLWluXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXJpcHBsZS1pbiB7XHJcblx0XHRAaW5jbHVkZSByaXBwbGUtaW4oKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9vdXRsaW5lLW91dFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1vdXRsaW5lLW91dCB7XHJcblx0XHRAaW5jbHVkZSBvdXRsaW5lLW91dCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL291dGxpbmUtaW5cIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tb3V0bGluZS1pbiB7XHJcblx0XHRAaW5jbHVkZSBvdXRsaW5lLWluKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvcm91bmQtY29ybmVyc1wiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1yb3VuZC1jb3JuZXJzIHtcclxuXHRcdEBpbmNsdWRlIHJvdW5kLWNvcm5lcnMoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy91bmRlcmxpbmUtZnJvbS1sZWZ0XCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LXVuZGVybGluZS1mcm9tLWxlZnQge1xyXG5cdFx0QGluY2x1ZGUgdW5kZXJsaW5lLWZyb20tbGVmdCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL3VuZGVybGluZS1mcm9tLWNlbnRlclwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS11bmRlcmxpbmUtZnJvbS1jZW50ZXIge1xyXG5cdFx0QGluY2x1ZGUgdW5kZXJsaW5lLWZyb20tY2VudGVyKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvdW5kZXJsaW5lLWZyb20tcmlnaHRcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tdW5kZXJsaW5lLWZyb20tcmlnaHQge1xyXG5cdFx0QGluY2x1ZGUgdW5kZXJsaW5lLWZyb20tcmlnaHQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9vdmVybGluZS1mcm9tLWxlZnRcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tb3ZlcmxpbmUtZnJvbS1sZWZ0IHtcclxuXHRcdEBpbmNsdWRlIG92ZXJsaW5lLWZyb20tbGVmdCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL292ZXJsaW5lLWZyb20tY2VudGVyXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LW92ZXJsaW5lLWZyb20tY2VudGVyIHtcclxuXHRcdEBpbmNsdWRlIG92ZXJsaW5lLWZyb20tY2VudGVyKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvb3ZlcmxpbmUtZnJvbS1yaWdodFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1vdmVybGluZS1mcm9tLXJpZ2h0IHtcclxuXHRcdEBpbmNsdWRlIG92ZXJsaW5lLWZyb20tcmlnaHQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2JvcmRlci10cmFuc2l0aW9ucy9yZXZlYWxcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tcmV2ZWFsIHtcclxuXHRcdEBpbmNsdWRlIHJldmVhbCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvYm9yZGVyLXRyYW5zaXRpb25zL3VuZGVybGluZS1yZXZlYWxcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tdW5kZXJsaW5lLXJldmVhbCB7XHJcblx0XHRAaW5jbHVkZSB1bmRlcmxpbmUtcmV2ZWFsKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9ib3JkZXItdHJhbnNpdGlvbnMvb3ZlcmxpbmUtcmV2ZWFsXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LW92ZXJsaW5lLXJldmVhbCB7XHJcblx0XHRAaW5jbHVkZSBvdmVybGluZS1yZXZlYWwoKTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBTSEFET1cvR0xPVyBUUkFOU0lUSU9OUyAqL1xyXG5AaW1wb3J0IFwiZWZmZWN0cy9zaGFkb3ctYW5kLWdsb3ctdHJhbnNpdGlvbnMvZ2xvd1wiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1nbG93IHtcclxuXHRcdEBpbmNsdWRlIGdsb3coKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9zaGFkb3dcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tc2hhZG93IHtcclxuXHRcdEBpbmNsdWRlIHNoYWRvdygpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvc2hhZG93LWFuZC1nbG93LXRyYW5zaXRpb25zL2dyb3ctc2hhZG93XCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWdyb3ctc2hhZG93IHtcclxuXHRcdEBpbmNsdWRlIGdyb3ctc2hhZG93KCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9zaGFkb3ctYW5kLWdsb3ctdHJhbnNpdGlvbnMvYm94LXNoYWRvdy1vdXRzZXRcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tYm94LXNoYWRvdy1vdXRzZXQge1xyXG5cdFx0QGluY2x1ZGUgYm94LXNoYWRvdy1vdXRzZXQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL3NoYWRvdy1hbmQtZ2xvdy10cmFuc2l0aW9ucy9ib3gtc2hhZG93LWluc2V0XCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWJveC1zaGFkb3ctaW5zZXQge1xyXG5cdFx0QGluY2x1ZGUgYm94LXNoYWRvdy1pbnNldCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvc2hhZG93LWFuZC1nbG93LXRyYW5zaXRpb25zL2Zsb2F0LXNoYWRvd1wiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1mbG9hdC1zaGFkb3cge1xyXG5cdFx0QGluY2x1ZGUgZmxvYXQtc2hhZG93KCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9zaGFkb3ctYW5kLWdsb3ctdHJhbnNpdGlvbnMvc2hhZG93LXJhZGlhbFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1zaGFkb3ctcmFkaWFsIHtcclxuXHRcdEBpbmNsdWRlIHNoYWRvdy1yYWRpYWwoKTtcclxuXHR9XHJcbn1cclxuXHJcbi8qIFNQRUVDSCBCVUJCTEVTICovXHJcbkBpbXBvcnQgXCJlZmZlY3RzL3NwZWVjaC1idWJibGVzL2J1YmJsZS10b3BcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tYnViYmxlLXRvcCB7XHJcblx0XHRAaW5jbHVkZSBidWJibGUtdG9wKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9zcGVlY2gtYnViYmxlcy9idWJibGUtcmlnaHRcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tYnViYmxlLXJpZ2h0IHtcclxuXHRcdEBpbmNsdWRlIGJ1YmJsZS1yaWdodCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvc3BlZWNoLWJ1YmJsZXMvYnViYmxlLWJvdHRvbVwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1idWJibGUtYm90dG9tIHtcclxuXHRcdEBpbmNsdWRlIGJ1YmJsZS1ib3R0b20oKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL3NwZWVjaC1idWJibGVzL2J1YmJsZS1sZWZ0XCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWJ1YmJsZS1sZWZ0IHtcclxuXHRcdEBpbmNsdWRlIGJ1YmJsZS1sZWZ0KCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9zcGVlY2gtYnViYmxlcy9idWJibGUtZmxvYXQtdG9wXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWJ1YmJsZS1mbG9hdC10b3Age1xyXG5cdFx0QGluY2x1ZGUgYnViYmxlLWZsb2F0LXRvcCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvc3BlZWNoLWJ1YmJsZXMvYnViYmxlLWZsb2F0LXJpZ2h0XCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWJ1YmJsZS1mbG9hdC1yaWdodCB7XHJcblx0XHRAaW5jbHVkZSBidWJibGUtZmxvYXQtcmlnaHQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL3NwZWVjaC1idWJibGVzL2J1YmJsZS1mbG9hdC1ib3R0b21cIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0tYnViYmxlLWZsb2F0LWJvdHRvbSB7XHJcblx0XHRAaW5jbHVkZSBidWJibGUtZmxvYXQtYm90dG9tKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9zcGVlY2gtYnViYmxlcy9idWJibGUtZmxvYXQtbGVmdFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1idWJibGUtZmxvYXQtbGVmdCB7XHJcblx0XHRAaW5jbHVkZSBidWJibGUtZmxvYXQtbGVmdCgpO1xyXG5cdH1cclxufVxyXG5cclxuLyogSUNPTlMgKi9cclxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1iYWNrXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWljb24tYmFjayB7XHJcblx0XHRAaW5jbHVkZSBpY29uLWJhY2soKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tZm9yd2FyZFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1pY29uLWZvcndhcmQge1xyXG5cdFx0QGluY2x1ZGUgaWNvbi1mb3J3YXJkKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLWRvd25cIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1kb3duIHtcclxuXHRcdEBpbmNsdWRlIGljb24tZG93bigpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi11cFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1pY29uLXVwIHtcclxuXHRcdEBpbmNsdWRlIGljb24tdXAoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tc3BpblwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1pY29uLXNwaW4ge1xyXG5cdFx0QGluY2x1ZGUgaWNvbi1zcGluKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLWRyb3BcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1kcm9wIHtcclxuXHRcdEBpbmNsdWRlIGljb24tZHJvcCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1mYWRlXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWljb24tZmFkZSB7XHJcblx0XHRAaW5jbHVkZSBpY29uLWZhZGUoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tZmxvYXQtYXdheVwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1pY29uLWZsb2F0LWF3YXkge1xyXG5cdFx0QGluY2x1ZGUgaWNvbi1mbG9hdC1hd2F5KCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLXNpbmstYXdheVwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1pY29uLXNpbmstYXdheSB7XHJcblx0XHRAaW5jbHVkZSBpY29uLXNpbmstYXdheSgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1ncm93XCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWljb24tZ3JvdyB7XHJcblx0XHRAaW5jbHVkZSBpY29uLWdyb3coKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tc2hyaW5rXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWljb24tc2hyaW5rIHtcclxuXHRcdEBpbmNsdWRlIGljb24tc2hyaW5rKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLXB1bHNlXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWljb24tcHVsc2Uge1xyXG5cdFx0QGluY2x1ZGUgaWNvbi1wdWxzZSgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1wdWxzZS1ncm93XCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWljb24tcHVsc2UtZ3JvdyB7XHJcblx0XHRAaW5jbHVkZSBpY29uLXB1bHNlLWdyb3coKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tcHVsc2Utc2hyaW5rXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWljb24tcHVsc2Utc2hyaW5rIHtcclxuXHRcdEBpbmNsdWRlIGljb24tcHVsc2Utc2hyaW5rKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLXB1c2hcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1wdXNoIHtcclxuXHRcdEBpbmNsdWRlIGljb24tcHVzaCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1wb3BcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1wb3Age1xyXG5cdFx0QGluY2x1ZGUgaWNvbi1wb3AoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tYm91bmNlXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWljb24tYm91bmNlIHtcclxuXHRcdEBpbmNsdWRlIGljb24tYm91bmNlKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLXJvdGF0ZVwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1pY29uLXJvdGF0ZSB7XHJcblx0XHRAaW5jbHVkZSBpY29uLXJvdGF0ZSgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1ncm93LXJvdGF0ZVwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1pY29uLWdyb3ctcm90YXRlIHtcclxuXHRcdEBpbmNsdWRlIGljb24tZ3Jvdy1yb3RhdGUoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tZmxvYXRcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1mbG9hdCB7XHJcblx0XHRAaW5jbHVkZSBpY29uLWZsb2F0KCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLXNpbmtcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1zaW5rIHtcclxuXHRcdEBpbmNsdWRlIGljb24tc2luaygpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi1ib2JcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0taWNvbi1ib2Ige1xyXG5cdFx0QGluY2x1ZGUgaWNvbi1ib2IoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24taGFuZ1wiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1pY29uLWhhbmcge1xyXG5cdFx0QGluY2x1ZGUgaWNvbi1oYW5nKCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLXdvYmJsZS1ob3Jpem9udGFsXCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWljb24td29iYmxlLWhvcml6b250YWwge1xyXG5cdFx0QGluY2x1ZGUgaWNvbi13b2JibGUtaG9yaXpvbnRhbCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvaWNvbnMvaWNvbi13b2JibGUtdmVydGljYWxcIjtcclxuQGlmICRpbmNsdWRlQ2xhc3NlcyB7XHJcblx0LiN7JG5hbWVTcGFjZX0taWNvbi13b2JibGUtdmVydGljYWwge1xyXG5cdFx0QGluY2x1ZGUgaWNvbi13b2JibGUtdmVydGljYWwoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2ljb25zL2ljb24tYnV6elwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1pY29uLWJ1enoge1xyXG5cdFx0QGluY2x1ZGUgaWNvbi1idXp6KCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9pY29ucy9pY29uLWJ1enotb3V0XCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWljb24tYnV6ei1vdXQge1xyXG5cdFx0QGluY2x1ZGUgaWNvbi1idXp6LW91dCgpO1xyXG5cdH1cclxufVxyXG5cclxuLyogQ1VSTFMgKi9cclxuQGltcG9ydCBcImVmZmVjdHMvY3VybHMvY3VybC10b3AtbGVmdFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1jdXJsLXRvcC1sZWZ0IHtcclxuXHRcdEBpbmNsdWRlIGN1cmwtdG9wLWxlZnQoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbXBvcnQgXCJlZmZlY3RzL2N1cmxzL2N1cmwtdG9wLXJpZ2h0XCI7XHJcbkBpZiAkaW5jbHVkZUNsYXNzZXMge1xyXG5cdC4jeyRuYW1lU3BhY2V9LWN1cmwtdG9wLXJpZ2h0IHtcclxuXHRcdEBpbmNsdWRlIGN1cmwtdG9wLXJpZ2h0KCk7XHJcblx0fVxyXG59XHJcblxyXG5AaW1wb3J0IFwiZWZmZWN0cy9jdXJscy9jdXJsLWJvdHRvbS1yaWdodFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1jdXJsLWJvdHRvbS1yaWdodCB7XHJcblx0XHRAaW5jbHVkZSBjdXJsLWJvdHRvbS1yaWdodCgpO1xyXG5cdH1cclxufVxyXG5cclxuQGltcG9ydCBcImVmZmVjdHMvY3VybHMvY3VybC1ib3R0b20tbGVmdFwiO1xyXG5AaWYgJGluY2x1ZGVDbGFzc2VzIHtcclxuXHQuI3skbmFtZVNwYWNlfS1jdXJsLWJvdHRvbS1sZWZ0IHtcclxuXHRcdEBpbmNsdWRlIGN1cmwtYm90dG9tLWxlZnQoKTtcclxuXHR9XHJcbn1cclxuIiwiLyogR3JvdyAqL1xyXG5AbWl4aW4gZ3JvdyB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEuMSkpO1xyXG5cdH1cclxufVxyXG4iLCIvLyBBcyBpcyBvZnRlbiB0aGUgY2FzZSwgc29tZSBkZXZpY2VzL2Jyb3dzZXJzIG5lZWQgYWRkaXRpb25hbCBjb2RlIHRvIGdldCBDU1MgdG8gd29ya1xyXG4vLyBpbiB0aGUgbW9zdCBkZXNpcmVkIHdheS4gVGhlc2UgbWl4aW5zIGFyZSB1c2VkIHRvIHF1aWNrbHkgZHJvcCBpbiBoYWNrcyBmb3IgZWFjaCBlbGVtZW50XHJcbi8vIEZpbmQgb3V0IG1vcmUgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL0lhbkx1bm4vSG92ZXIvd2lraS9IYWNrcy1FeHBsYWluZWRcclxuXHJcbkBtaXhpbiBoYXJkd2FyZUFjY2VsKCkge1xyXG5cdC8vIEltcHJvdmUgcGVyZm9ybWFuY2Ugb24gbW9iaWxlL3RhYmxldCBkZXZpY2VzXHJcblx0Ly8gUGVyc3BlY3RpdmUgcmVkdWNlcyBibHVycnluZXNzIG9mIHRleHQgaW4gQ2hyb21lXHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBwZXJzcGVjdGl2ZSgxcHgpIHRyYW5zbGF0ZVooMCkpO1xyXG59XHJcblxyXG5AbWl4aW4gaW1wcm92ZUFudGlBbGlhcygpIHtcclxuXHQvLyBJbXByb3ZlIGFsaWFzaW5nIG9uIG1vYmlsZS90YWJsZXQgZGV2aWNlc1xyXG5cdGJveC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTtcclxufVxyXG5cclxuQG1peGluIGZvcmNlQmxvY2tMZXZlbCgpIHtcclxuXHQvLyBUcmFuc2Zvcm1zIG5lZWQgdG8gYmUgYmxvY2stbGV2ZWwgdG8gd29ya1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG59XHJcblxyXG5AbWl4aW4gaGFja3MoKSB7XHJcblx0QGluY2x1ZGUgZm9yY2VCbG9ja0xldmVsKCk7XHJcblx0QGluY2x1ZGUgaGFyZHdhcmVBY2NlbCgpO1xyXG5cdEBpbmNsdWRlIGltcHJvdmVBbnRpQWxpYXMoKTtcclxufVxyXG4iLCIvLyBwcmVmaXggZGVjbGFyYXRpb25zXHJcbkBtaXhpbiBwcmVmaXhlZCgkcHJvcGVydHksICR2YWx1ZSkge1xyXG4gIEBpZiAkd2Via2l0ID09IHRydWUge1xyXG4gICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICN7JHZhbHVlfTtcclxuICB9XHJcblxyXG4gIEBpZiAkbW96ID09IHRydWUge1xyXG4gICAgLW1vei0jeyRwcm9wZXJ0eX06ICN7JHZhbHVlfTtcclxuICB9XHJcblxyXG4gIEBpZiAkbXMgPT0gdHJ1ZSB7XHJcbiAgICAtbXMtI3skcHJvcGVydHl9OiAjeyR2YWx1ZX07XHJcbiAgfVxyXG5cclxuICBAaWYgJG8gPT0gdHJ1ZSB7XHJcbiAgICAtby0jeyRwcm9wZXJ0eX06ICN7JHZhbHVlfTtcclxuICB9XHJcblxyXG4gICN7JHByb3BlcnR5fTogI3skdmFsdWV9O1xyXG59XHJcblxyXG4vLyBwcmVmaXgga2V5ZnJhbWVzXHJcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcclxuICBAaWYgJHdlYmtpdCA9PSB0cnVlIHtcclxuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRtb3ogPT0gdHJ1ZSB7XHJcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAkbXMgPT0gdHJ1ZSB7XHJcbiAgICBALW1zLWtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRvID09IHRydWUge1xyXG4gICAgQC1vLWtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuIiwiLyogU2hyaW5rICovXHJcbkBtaXhpbiBzaHJpbmsge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSguOSkpO1xyXG5cdH1cclxufVxyXG4iLCIvKiBQdWxzZSAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1wdWxzZSkge1xyXG5cdDI1JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEuMSkpO1xyXG5cdH1cclxuXHJcblx0NzUlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoLjkpKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBwdWxzZSB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXB1bHNlKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgbGluZWFyKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcclxuXHR9XHJcbn1cclxuIiwiLyogUHVsc2UgR3JvdyAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1wdWxzZS1ncm93KSB7XHJcblx0dG8ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSgxLjEpKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBwdWxzZS1ncm93IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0tcHVsc2UtZ3Jvdyk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBsaW5lYXIpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWRpcmVjdGlvbiwgYWx0ZXJuYXRlKTtcclxuXHR9XHJcbn1cclxuIiwiLyogUHVsc2UgU2hyaW5rICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LXB1bHNlLXNocmluaykge1xyXG5cdHRvIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoLjkpKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBwdWxzZS1zaHJpbmsge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1wdWxzZS1zaHJpbmspO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgbGluZWFyKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kaXJlY3Rpb24sIGFsdGVybmF0ZSk7XHJcblx0fVxyXG59XHJcbiIsIi8qIFB1c2ggKi9cclxuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0tcHVzaCkge1xyXG5cdDUwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKC44KSk7XHJcblx0fVxyXG5cclxuXHQxMDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoMSkpO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHB1c2gge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1wdXNoKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgLjNzKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGxpbmVhcik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAxKTtcclxuXHR9XHJcbn1cclxuIiwiLyogUG9wICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LXBvcCkge1xyXG5cdDUwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEuMikpO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHBvcCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXBvcCk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBsaW5lYXIpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgMSk7XHJcblx0fVxyXG59XHJcbiIsIi8qIEJvdW5jZSBJbiAqL1xyXG5AbWl4aW4gYm91bmNlLWluIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRzbG93RHVyYXRpb24pO1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSgxLjIpKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBjdWJpYy1iZXppZXIoLjQ3LDIuMDIsLjMxLC0wLjM2KSk7XHJcblx0fVxyXG59XHJcbiIsIi8qIEJvdW5jZSBPdXQgKi9cclxuQG1peGluIGJvdW5jZS1vdXQge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHNsb3dEdXJhdGlvbik7XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKC44KSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgY3ViaWMtYmV6aWVyKC40NywyLjAyLC4zMSwtMC4zNikpO1xyXG5cdH1cclxufVxyXG4iLCIvKiBSb3RhdGUgKi9cclxuQG1peGluIHJvdGF0ZSB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHJvdGF0ZSg0ZGVnKSk7XHJcblx0fVxyXG59XHJcbiIsIi8qIEdyb3cgUm90YXRlICovXHJcbkBtaXhpbiBncm93LXJvdGF0ZSB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEuMSkgcm90YXRlKDRkZWcpKTtcclxuXHR9XHJcbn1cclxuIiwiLyogRmxvYXQgKi9cclxuQG1peGluIGZsb2F0IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC04cHgpKTtcclxuXHR9XHJcbn1cclxuIiwiLyogU2luayAqL1xyXG5AbWl4aW4gc2luayB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg4cHgpKTtcclxuXHR9XHJcbn1cclxuIiwiLyogQm9iICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWJvYikge1xyXG5cdDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtOHB4KSk7XHJcblx0fVxyXG5cdDUwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTRweCkpO1xyXG5cdH1cclxuXHQxMDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtOHB4KSk7XHJcblx0fVxyXG59XHJcblxyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1ib2ItZmxvYXQpIHtcclxuXHQxMDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtOHB4KSk7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gYm9iIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsIFwiI3skbmFtZVNwYWNlfS1ib2ItZmxvYXQsICN7JG5hbWVTcGFjZX0tYm9iXCIpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCBcIi4zcywgMS41c1wiKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kZWxheSwgXCIwcywgLjNzXCIpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgXCJlYXNlLW91dCwgZWFzZS1pbi1vdXRcIik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBcIjEsIGluZmluaXRlXCIpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWZpbGwtbW9kZSwgXCJmb3J3YXJkc1wiKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kaXJlY3Rpb24sIFwibm9ybWFsLCBhbHRlcm5hdGVcIik7XHJcblx0fVxyXG59XHJcbiIsIi8qIEhhbmcgKi9cclxuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0taGFuZykge1xyXG5cdDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg4cHgpKTtcclxuXHR9XHJcblx0NTAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg0cHgpKTtcclxuXHR9XHJcblx0MTAwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoOHB4KSk7XHJcblx0fVxyXG59XHJcblxyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1oYW5nLXNpbmspIHtcclxuXHQxMDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg4cHgpKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBoYW5nIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsIFwiI3skbmFtZVNwYWNlfS1oYW5nLXNpbmssICN7JG5hbWVTcGFjZX0taGFuZ1wiKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgXCIuM3MsIDEuNXNcIik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGVsYXksIFwiMHMsIC4zc1wiKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIFwiZWFzZS1vdXQsIGVhc2UtaW4tb3V0XCIpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgXCIxLCBpbmZpbml0ZVwiKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1maWxsLW1vZGUsIFwiZm9yd2FyZHNcIik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGlyZWN0aW9uLCBcIm5vcm1hbCwgYWx0ZXJuYXRlXCIpO1xyXG5cdH1cclxufVxyXG4iLCIvKiBTa2V3ICovXHJcbkBtaXhpbiBza2V3IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldygtMTBkZWcpKTtcclxuXHR9XHJcbn1cclxuIiwiLyogU2tldyBGb3J3YXJkICovXHJcbkBtaXhpbiBza2V3LWZvcndhcmQge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybS1vcmlnaW4sIDAgMTAwJSk7XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoLTEwZGVnKSk7XHJcblx0fVxyXG59XHJcbiIsIi8qIFNrZXcgQmFja3dhcmQgKi9cclxuQG1peGluIHNrZXctYmFja3dhcmQge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybS1vcmlnaW4sIDAgMTAwJSk7XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoMTBkZWcpKTtcclxuXHR9XHJcbn1cclxuIiwiLyogV29iYmxlIFZlcnRpY2FsICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LXdvYmJsZS12ZXJ0aWNhbCkge1xyXG5cdDE2LjY1JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoOHB4KSk7XHJcblx0fVxyXG5cclxuXHQzMy4zJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTZweCkpO1xyXG5cdH1cclxuXHJcblx0NDkuOTUlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg0cHgpKTtcclxuXHR9XHJcblxyXG5cdDY2LjYlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtMnB4KSk7XHJcblx0fVxyXG5cclxuXHQ4My4yNSUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDFweCkpO1xyXG5cdH1cclxuXHJcblx0MTAwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoMCkpO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHdvYmJsZS12ZXJ0aWNhbCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXdvYmJsZS12ZXJ0aWNhbCk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sIDFzKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UtaW4tb3V0KTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIDEpO1xyXG5cdH1cclxufVxyXG4iLCIvKiBXb2JibGUgSG9yaXpvbnRhbCAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS13b2JibGUtaG9yaXpvbnRhbCkge1xyXG5cdDE2LjY1JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoOHB4KSk7XHJcblx0fVxyXG5cclxuXHQzMy4zJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTZweCkpO1xyXG5cdH1cclxuXHJcblx0NDkuOTUlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCg0cHgpKTtcclxuXHR9XHJcblxyXG5cdDY2LjYlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgtMnB4KSk7XHJcblx0fVxyXG5cclxuXHQ4My4yNSUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDFweCkpO1xyXG5cdH1cclxuXHJcblx0MTAwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoMCkpO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHdvYmJsZS1ob3Jpem9udGFsIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0td29iYmxlLWhvcml6b250YWwpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLWluLW91dCk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAxKTtcclxuXHR9XHJcbn1cclxuIiwiLyogV29iYmxlIFRvIEJvdHRvbSBSaWdodCAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS13b2JibGUtdG8tYm90dG9tLXJpZ2h0KSB7XHJcblx0MTYuNjUlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlKDhweCwgOHB4KSk7XHJcblx0fVxyXG5cclxuXHQzMy4zJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZSgtNnB4LCAtNnB4KSk7XHJcblx0fVxyXG5cclxuXHQ0OS45NSUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGUoNHB4LCA0cHgpKTtcclxuXHR9XHJcblxyXG5cdDY2LjYlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlKC0ycHgsIC0ycHgpKTtcclxuXHR9XHJcblxyXG5cdDgzLjI1JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZSgxcHgsIDFweCkpO1xyXG5cdH1cclxuXHJcblx0MTAwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZSgwLCAwKSk7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gd29iYmxlLXRvLWJvdHRvbS1yaWdodCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXdvYmJsZS10by1ib3R0b20tcmlnaHQpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLWluLW91dCk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAxKTtcclxuXHR9XHJcbn1cclxuIiwiLyogV29iYmxlIFRvIFRvcCBSaWdodCAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS13b2JibGUtdG8tdG9wLXJpZ2h0KSB7XHJcbiAgMTYuNjUlIHtcclxuICAgIEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlKDhweCwgLThweCkpO1xyXG4gIH1cclxuXHJcbiAgMzMuMyUge1xyXG4gICAgQGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGUoLTZweCwgNnB4KSk7XHJcbiAgfVxyXG5cclxuICA0OS45NSUge1xyXG4gICAgQGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGUoNHB4LCAtNHB4KSk7XHJcbiAgfVxyXG5cclxuICA2Ni42JSB7XHJcbiAgICBAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZSgtMnB4LCAycHgpKTtcclxuICB9XHJcblxyXG4gIDgzLjI1JSB7XHJcbiAgICBAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZSgxcHgsIC0xcHgpKTtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgQGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGUoMCwgMCkpO1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHdvYmJsZS10by10b3AtcmlnaHQge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblxyXG5cdCY6aG92ZXIsXHJcbiAgICAmOmZvY3VzLFxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICAgIEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXdvYmJsZS10by10b3AtcmlnaHQpO1xyXG4gICAgICAgIEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xyXG4gICAgICAgIEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UtaW4tb3V0KTtcclxuICAgICAgICBAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAxKTtcclxuXHR9XHJcbn1cclxuIiwiLyogV29iYmxlIFRvcCAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS13b2JibGUtdG9wKSB7XHJcblx0MTYuNjUlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldygtMTJkZWcpKTtcclxuXHR9XHJcblxyXG5cdDMzLjMlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldygxMGRlZykpO1xyXG5cdH1cclxuXHJcblx0NDkuOTUlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldygtNmRlZykpO1xyXG5cdH1cclxuXHJcblx0NjYuNiUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBza2V3KDRkZWcpKTtcclxuXHR9XHJcblxyXG5cdDgzLjI1JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoLTJkZWcpKTtcclxuXHR9XHJcblxyXG5cdDEwMCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBza2V3KDApKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiB3b2JibGUtdG9wIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybS1vcmlnaW4sIDAgMTAwJSk7XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS13b2JibGUtdG9wKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1pbi1vdXQpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgMSk7XHJcblx0fVxyXG59XHJcbiIsIi8qIFdvYmJsZSBCb3R0b20gKi9cclxuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0td29iYmxlLWJvdHRvbSkge1xyXG5cdDE2LjY1JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoLTEyZGVnKSk7XHJcblx0fVxyXG5cclxuXHQzMy4zJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoMTBkZWcpKTtcclxuXHR9XHJcblxyXG5cdDQ5Ljk1JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoLTZkZWcpKTtcclxuXHR9XHJcblxyXG5cdDY2LjYlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldyg0ZGVnKSk7XHJcblx0fVxyXG5cclxuXHQ4My4yNSUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBza2V3KC0yZGVnKSk7XHJcblx0fVxyXG5cclxuXHQxMDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldygwKSk7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gd29iYmxlLWJvdHRvbSB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0tb3JpZ2luLCAxMDAlIDApO1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0td29iYmxlLWJvdHRvbSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sIDFzKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UtaW4tb3V0KTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIDEpO1xyXG5cdH1cclxufVxyXG4iLCIvKiBXb2JibGUgU2tldyAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS13b2JibGUtc2tldykge1xyXG5cdDE2LjY1JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoLTEyZGVnKSk7XHJcblx0fVxyXG5cclxuXHQzMy4zJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoMTBkZWcpKTtcclxuXHR9XHJcblxyXG5cdDQ5Ljk1JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNrZXcoLTZkZWcpKTtcclxuXHR9XHJcblxyXG5cdDY2LjYlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldyg0ZGVnKSk7XHJcblx0fVxyXG5cclxuXHQ4My4yNSUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBza2V3KC0yZGVnKSk7XHJcblx0fVxyXG5cclxuXHQxMDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2tldygwKSk7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gd29iYmxlLXNrZXcge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS13b2JibGUtc2tldyk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sIDFzKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UtaW4tb3V0KTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIDEpO1xyXG5cdH1cclxufVxyXG4iLCIvKiBCdXp6ICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWJ1enopIHtcclxuXHQ1MCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDNweCkgcm90YXRlKDJkZWcpKTtcclxuXHR9XHJcblxyXG5cdDEwMCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZSgtMmRlZykpO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGJ1enoge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1idXp6KTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgLjE1cyk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBsaW5lYXIpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xyXG5cdH1cclxufVxyXG4iLCIvKiBCdXp6IE91dCAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1idXp6LW91dCkge1xyXG5cdDEwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoM3B4KSByb3RhdGUoMmRlZykpO1xyXG5cdH1cclxuXHJcblx0MjAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgtM3B4KSByb3RhdGUoLTJkZWcpKTtcclxuXHR9XHJcblxyXG5cdDMwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoM3B4KSByb3RhdGUoMmRlZykpO1xyXG5cdH1cclxuXHJcblx0NDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgtM3B4KSByb3RhdGUoLTJkZWcpKTtcclxuXHR9XHJcblxyXG5cdDUwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoMnB4KSByb3RhdGUoMWRlZykpO1xyXG5cdH1cclxuXHJcblx0NjAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgtMnB4KSByb3RhdGUoLTFkZWcpKTtcclxuXHR9XHJcblxyXG5cdDcwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoMnB4KSByb3RhdGUoMWRlZykpO1xyXG5cdH1cclxuXHJcblx0ODAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgtMnB4KSByb3RhdGUoLTFkZWcpKTtcclxuXHR9XHJcblxyXG5cdDkwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoMCkpO1xyXG5cdH1cclxuXHJcblx0MTAwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTFweCkgcm90YXRlKDApKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBidXp6LW91dCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LWJ1enotb3V0KTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgLjc1cyk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBsaW5lYXIpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgMSk7XHJcblx0fVxyXG59XHJcbiIsIi8qIEZvcndhcmQgKi9cclxuQG1peGluIGZvcndhcmQge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDhweCkpO1xyXG5cdH1cclxufVxyXG4iLCIvKiBCYWNrd2FyZCAqL1xyXG5AbWl4aW4gYmFja3dhcmQge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC04cHgpKTtcclxuXHR9XHJcbn1cclxuIiwiLyogRmFkZSAqL1xyXG5AbWl4aW4gZmFkZSB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgXCJjb2xvciwgYmFja2dyb3VuZC1jb2xvclwiKTtcclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmVDb2xvcjtcclxuXHRcdGNvbG9yOiB3aGl0ZTtcclxuXHR9XHJcbn1cclxuIiwiLy8gREVGQVVMVCBPUFRJT05TXHJcblxyXG4vLyBQcmVmaXggZm9yIEhvdmVyIGNsYXNzIG5hbWVzXHJcbiRuYW1lU3BhY2U6ICdodnInICFkZWZhdWx0O1xyXG5cclxuLy8gRHVyYXRpb25zXHJcbiRmYXN0RHVyYXRpb246IC4xcyAhZGVmYXVsdDtcclxuJG1lZGl1bUR1cmF0aW9uOiAuM3MgIWRlZmF1bHQ7XHJcbiRzbG93RHVyYXRpb246IC41cyAhZGVmYXVsdDtcclxuXHJcbi8vIENvbG9yc1xyXG4kcHJpbWFyeUNvbG9yOiAjZTFlMWUxICFkZWZhdWx0O1xyXG4kc2Vjb25kYXJ5Q29sb3I6ICM2NjYgIWRlZmF1bHQ7XHJcbiRoaWdobGlnaHRDb2xvcjogI2NjYyAhZGVmYXVsdDtcclxuJGFjdGl2ZUNvbG9yOiAjMjA5OEQxICFkZWZhdWx0O1xyXG4kc2hhZG93Q29sb3I6IHJnYmEoMCwgMCwgMCwgLjYpICFkZWZhdWx0O1xyXG5cclxuLy8gU3BlZWNoIGJ1YmJsZXMgb3B0aW9uc1xyXG4kdGlwV2lkdGg6IDEwcHggIWRlZmF1bHQ7ICAvL3RoZSB3aWR0aCBvZiB0aGUgc3BlZWNoIGJ1YmJsZSB0aXBcclxuJHRpcEhlaWdodDogMTBweCAhZGVmYXVsdDsgLy90aGUgaGVpZ2h0IG9mIHRoZSBzcGVlY2ggYnViYmxlIHRpcFxyXG4kdGlwQ29sb3I6ICRwcmltYXJ5Q29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLyBBcnJvd3Mgb3B0aW9uc1xyXG4kc3BhY2VCZXR3ZWVuVGV4dEFuZEFycm93czogMi4yZW0gIWRlZmF1bHQ7XHJcblxyXG4vLyBDdXJsIGRpbWVuc2lvbnNcclxuJGN1cmxXaWR0aDogMjVweCAhZGVmYXVsdDtcclxuJGN1cmxIZWlnaHQ6IDI1cHggIWRlZmF1bHQ7XHJcblxyXG4vLyBDdXJsIGNvbG9yc1xyXG4kcmV2ZWFsQXJlYUNvbG9yOiB3aGl0ZSAhZGVmYXVsdDsgICAgLy8gcmV2ZWFsIGFyZWEgYmVoaW5kIHRoZSBjdXJsXHJcbiRjdXJsTGluZUNvbG9yOiAjYWFhICFkZWZhdWx0OyAgICAgICAvLyBjcmVhc2UgbGluZVxyXG4kY3VybFRyYW5zaXRpb25Db2xvcjogI2NjYyAhZGVmYXVsdDtcdC8vIGNvbG9yIHRyYW5zaXRpb25pbmcgZnJvbSBjcmVhc2UgbGluZSB0byBmaW5hbCBjb2xvclxyXG4kY3VybExhc3RDb2xvcjogd2hpdGUgIWRlZmF1bHQ7XHRcdC8vIGZpbmFsIGNvbG9yIG9mIHRoZSBiYWNrIG9mIHRoZSBjdXJsXHJcblxyXG4vLyBCcm93c2VyIFByZWZpeGVzIC0gV2hpY2ggQ1NTIHByZWZpeGVzIHNob3VsZCBiZSB1c2VkP1xyXG4kd2Via2l0OiB0cnVlICFkZWZhdWx0O1xyXG4kbW96OiBmYWxzZSAhZGVmYXVsdDtcclxuJG1zOiBmYWxzZSAhZGVmYXVsdDtcclxuJG86IGZhbHNlICFkZWZhdWx0O1xyXG5cclxuLy8gQ29tcGlsZSB3aXRoIG9yIHdpdGhvdXQgY2xhc3Nlc1xyXG4kaW5jbHVkZUNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XHJcbiIsIi8qIEJhY2sgUHVsc2UgKi9cclxuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0tYmFjay1wdWxzZSkge1xyXG5cdDUwJSB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMyLCAxNTIsIDIwOSwgLjc1KTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBiYWNrLXB1bHNlIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHNsb3dEdXJhdGlvbik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgXCJjb2xvciwgYmFja2dyb3VuZC1jb2xvclwiKTtcclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LWJhY2stcHVsc2UpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGVsYXksICRzbG93RHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgbGluZWFyKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmVDb2xvcjtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzIsIDE1MiwgMjA5LCAxKTtcclxuXHRcdGNvbG9yOiB3aGl0ZTtcclxuXHR9XHJcbn1cclxuIiwiLyogU3dlZXAgVG8gUmlnaHQgKi9cclxuQG1peGluIHN3ZWVwLXRvLXJpZ2h0IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVgoMCkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLW9yaWdpbiwgMCA1MCUpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdGNvbG9yOiB3aGl0ZTtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVYKDEpKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogU3dlZXAgVG8gTGVmdCAqL1xyXG5AbWl4aW4gc3dlZXAtdG8tbGVmdCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgY29sb3IpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OiAtMTtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVYKDApKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybS1vcmlnaW4sIDEwMCUgNTAlKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRjb2xvcjogd2hpdGU7XHJcblxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWCgxKSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIFN3ZWVwIFRvIEJvdHRvbSAqL1xyXG5AbWl4aW4gc3dlZXAtdG8tYm90dG9tIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVkoMCkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLW9yaWdpbiwgNTAlIDApO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdGNvbG9yOiB3aGl0ZTtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVZKDEpKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogU3dlZXAgVG8gVG9wICovXHJcbkBtaXhpbiBzd2VlcC10by10b3Age1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGNvbG9yKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWSgwKSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0tb3JpZ2luLCA1MCUgMTAwJSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0Y29sb3I6IHdoaXRlO1xyXG5cclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVkoMSkpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBCb3VuY2UgVG8gUmlnaHQgKi9cclxuQG1peGluIGJvdW5jZS10by1yaWdodCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgY29sb3IpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRzbG93RHVyYXRpb24pO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWCgwKSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0tb3JpZ2luLCAwIDUwJSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHNsb3dEdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdGNvbG9yOiB3aGl0ZTtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVYKDEpKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGN1YmljLWJlemllciguNTIsMS42NCwuMzcsLjY2KSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEJvdW5jZSBUbyBMZWZ0ICovXHJcbkBtaXhpbiBib3VuY2UtdG8tbGVmdCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgY29sb3IpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRzbG93RHVyYXRpb24pO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWCgwKSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0tb3JpZ2luLCAxMDAlIDUwJSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHNsb3dEdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdGNvbG9yOiB3aGl0ZTtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVYKDEpKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGN1YmljLWJlemllciguNTIsMS42NCwuMzcsLjY2KSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEJvdW5jZSBUbyBCb3R0b20gKi9cclxuQG1peGluIGJvdW5jZS10by1ib3R0b20ge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGNvbG9yKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkc2xvd0R1cmF0aW9uKTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVkoMCkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLW9yaWdpbiwgNTAlIDApO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRzbG93RHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRjb2xvcjogd2hpdGU7XHJcblxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWSgxKSk7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBjdWJpYy1iZXppZXIoLjUyLDEuNjQsLjM3LC42NikpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBCb3VuY2UgVG8gVG9wICovXHJcbkBtaXhpbiBib3VuY2UtdG8tdG9wIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHNsb3dEdXJhdGlvbik7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OiAtMTtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVZKDApKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybS1vcmlnaW4sIDUwJSAxMDAlKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkc2xvd0R1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0Y29sb3I6IHdoaXRlO1xyXG5cclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVkoMSkpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgY3ViaWMtYmV6aWVyKC41MiwxLjY0LC4zNywuNjYpKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogUmFkaWFsIE91dCAqL1xyXG5AbWl4aW4gcmFkaWFsLW91dCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRiYWNrZ3JvdW5kOiAkcHJpbWFyeUNvbG9yO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGNvbG9yKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMDAlO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSgwKSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0Y29sb3I6IHdoaXRlO1xyXG5cclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSgyKSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIFJhZGlhbCBJbiAqL1xyXG5AbWl4aW4gcmFkaWFsLWluIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnlDb2xvcjtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDIpKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRjb2xvcjogd2hpdGU7XHJcblxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDApKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogUmVjdGFuZ2xlIEluICovXHJcbkBtaXhpbiByZWN0YW5nbGUtaW4ge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnlDb2xvcjtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoMSkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdGNvbG9yOiB3aGl0ZTtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoMCkpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBSZWN0YW5nbGUgT3V0ICovXHJcbkBtaXhpbiByZWN0YW5nbGUtb3V0IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRiYWNrZ3JvdW5kOiAkcHJpbWFyeUNvbG9yO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGNvbG9yKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDApKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRjb2xvcjogd2hpdGU7XHJcblxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEpKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogU2h1dHRlciBJbiBIb3Jpem9udGFsICovXHJcbkBtaXhpbiBzaHV0dGVyLWluLWhvcml6b250YWwge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnlDb2xvcjtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVYKDEpKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybS1vcmlnaW4sIDUwJSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0Y29sb3I6IHdoaXRlO1xyXG5cclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVgoMCkpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBTaHV0dGVyIE91dCBIb3Jpem9udGFsICovXHJcbkBtaXhpbiBzaHV0dGVyLW91dC1ob3Jpem9udGFsIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRiYWNrZ3JvdW5kOiAkcHJpbWFyeUNvbG9yO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGNvbG9yKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWCgwKSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0tb3JpZ2luLCA1MCUpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdGNvbG9yOiB3aGl0ZTtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGVYKDEpKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogU2h1dHRlciBJbiBWZXJ0aWNhbCAqL1xyXG5AbWl4aW4gc2h1dHRlci1pbi12ZXJ0aWNhbCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGNvbG9yKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRiYWNrZ3JvdW5kOiAkcHJpbWFyeUNvbG9yO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVkoMSkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLW9yaWdpbiwgNTAlKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRjb2xvcjogd2hpdGU7XHJcblxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWSgwKSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIFNodXR0ZXIgT3V0IFZlcnRpY2FsICovXHJcbkBtaXhpbiBzaHV0dGVyLW91dC12ZXJ0aWNhbCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0YmFja2dyb3VuZDogJHByaW1hcnlDb2xvcjtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBjb2xvcik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZVkoMCkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLW9yaWdpbiwgNTAlKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRjb2xvcjogd2hpdGU7XHJcblxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlWSgxKSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEJvcmRlciBGYWRlICovXHJcbkBtaXhpbiBib3JkZXItZmFkZSB7XHJcblx0JGJvcmRlcldpZHRoOiA0cHg7XHJcblxyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBib3gtc2hhZG93KTtcclxuXHRib3gtc2hhZG93OlxyXG5cdFx0XHRpbnNldCAwIDAgMCAkYm9yZGVyV2lkdGggJHByaW1hcnlDb2xvcixcclxuXHRcdFx0MCAwIDFweCByZ2JhKDAsIDAsIDAsIDApOyAvKiBIYWNrIHRvIGltcHJvdmUgYWxpYXNpbmcgb24gbW9iaWxlL3RhYmxldCBkZXZpY2VzICovXHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRib3gtc2hhZG93OlxyXG5cdFx0XHRpbnNldCAwIDAgMCAkYm9yZGVyV2lkdGggJGFjdGl2ZUNvbG9yLFxyXG5cdFx0XHQwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMCk7IC8qIEhhY2sgdG8gaW1wcm92ZSBhbGlhc2luZyBvbiBtb2JpbGUvdGFibGV0IGRldmljZXMgKi9cclxuXHR9XHJcbn1cclxuIiwiLyogSG9sbG93ICovXHJcbkBtaXhpbiBob2xsb3cge1xyXG5cdCRib3JkZXJXaWR0aDogNHB4O1xyXG5cclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgYmFja2dyb3VuZCk7XHJcblx0Ym94LXNoYWRvdzpcclxuXHRcdGluc2V0IDAgMCAwICRib3JkZXJXaWR0aCAkcHJpbWFyeUNvbG9yLFxyXG5cdFx0MCAwIDFweCByZ2JhKDAsIDAsIDAsIDApOyAvKiBIYWNrIHRvIGltcHJvdmUgYWxpYXNpbmcgb24gbW9iaWxlL3RhYmxldCBkZXZpY2VzICovXHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xyXG5cdH1cclxufVxyXG4iLCIvKiBUcmltICovXHJcbkBtaXhpbiB0cmltIHtcclxuXHQkb3V0ZXJCb3JkZXJXaWR0aDogNHB4O1xyXG5cdCRpbm5lckJvcmRlcldpZHRoOiA0cHg7XHJcblxyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvcmRlcjogd2hpdGUgc29saWQgJGlubmVyQm9yZGVyV2lkdGg7XHJcblx0XHR0b3A6ICRvdXRlckJvcmRlcldpZHRoO1xyXG5cdFx0bGVmdDogJG91dGVyQm9yZGVyV2lkdGg7XHJcblx0XHRyaWdodDogJG91dGVyQm9yZGVyV2lkdGg7XHJcblx0XHRib3R0b206ICRvdXRlckJvcmRlcldpZHRoO1xyXG5cdFx0b3BhY2l0eTogMDtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBvcGFjaXR5KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXI6YmVmb3JlLFxyXG5cdCY6Zm9jdXM6YmVmb3JlLFxyXG5cdCY6YWN0aXZlOmJlZm9yZSB7XHJcblx0XHRvcGFjaXR5OiAxO1xyXG5cdH1cclxufVxyXG4iLCIvKiBSaXBwbGUgT3V0ICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LXJpcHBsZS1vdXQpIHtcclxuXHQxMDAlIHtcclxuXHRcdHRvcDogLSg2cHggKyA2cHgpO1xyXG5cdFx0cmlnaHQ6IC0oNnB4ICsgNnB4KTtcclxuXHRcdGJvdHRvbTogLSg2cHggKyA2cHgpO1xyXG5cdFx0bGVmdDogLSg2cHggKyA2cHgpO1xyXG5cdFx0b3BhY2l0eTogMDtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiByaXBwbGUtb3V0IHtcclxuXHQkb3V0ZXJCb3JkZXJXaWR0aDogNnB4O1xyXG5cdCRpbm5lckJvcmRlcldpZHRoOiA2cHg7XHJcblxyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvcmRlcjogJHByaW1hcnlDb2xvciBzb2xpZCAkb3V0ZXJCb3JkZXJXaWR0aDtcclxuXHRcdHRvcDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgMXMpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcjpiZWZvcmUsXHJcblx0Jjpmb2N1czpiZWZvcmUsXHJcblx0JjphY3RpdmU6YmVmb3JlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LXJpcHBsZS1vdXQpO1xyXG5cdH1cclxufVxyXG4iLCIvKiBSaXBwbGUgSW4gKi9cclxuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0tcmlwcGxlLWluKSB7XHJcblx0MTAwJSB7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRvcGFjaXR5OiAxO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHJpcHBsZS1pbiB7XHJcblx0JG91dGVyQm9yZGVyV2lkdGg6IDRweDtcclxuXHQkaW5uZXJCb3JkZXJXaWR0aDogNHB4O1xyXG5cclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDogJyc7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRib3JkZXI6ICRwcmltYXJ5Q29sb3Igc29saWQgJG91dGVyQm9yZGVyV2lkdGg7XHJcblx0XHR0b3A6IC0oNnB4ICsgNnB4KTtcclxuXHRcdHJpZ2h0OiAtKDZweCArIDZweCk7XHJcblx0XHRib3R0b206IC0oNnB4ICsgNnB4KTtcclxuXHRcdGxlZnQ6IC0oNnB4ICsgNnB4KTtcclxuXHRcdG9wYWNpdHk6IDA7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sIDFzKTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXI6YmVmb3JlLFxyXG5cdCY6Zm9jdXM6YmVmb3JlLFxyXG5cdCY6YWN0aXZlOmJlZm9yZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1yaXBwbGUtaW4pO1xyXG5cdH1cclxufVxyXG4iLCIvKiBPdXRsaW5lIE91dCAqL1xyXG5AbWl4aW4gb3V0bGluZS1vdXQge1xyXG5cdCRvdXRlckJvcmRlcldpZHRoOiA0cHg7XHJcblx0JGlubmVyQm9yZGVyV2lkdGg6IDRweDtcclxuXHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0Ym9yZGVyOiAkcHJpbWFyeUNvbG9yIHNvbGlkICRvdXRlckJvcmRlcldpZHRoO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgLjNzKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIFwidG9wLCByaWdodCwgYm90dG9tLCBsZWZ0XCIpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcjpiZWZvcmUsXHJcblx0Jjpmb2N1czpiZWZvcmUsXHJcblx0JjphY3RpdmU6YmVmb3JlIHtcclxuXHRcdHRvcDogLSgkb3V0ZXJCb3JkZXJXaWR0aCArICRpbm5lckJvcmRlcldpZHRoKTtcclxuXHRcdHJpZ2h0OiAtKCRvdXRlckJvcmRlcldpZHRoICsgJGlubmVyQm9yZGVyV2lkdGgpO1xyXG5cdFx0Ym90dG9tOiAtKCRvdXRlckJvcmRlcldpZHRoICsgJGlubmVyQm9yZGVyV2lkdGgpO1xyXG5cdFx0bGVmdDogLSgkb3V0ZXJCb3JkZXJXaWR0aCArICRpbm5lckJvcmRlcldpZHRoKTtcclxuXHR9XHJcbn1cclxuIiwiLyogT3V0bGluZSBJbiAqL1xyXG5AbWl4aW4gb3V0bGluZS1pbiB7XHJcblx0JG91dGVyQm9yZGVyV2lkdGg6IDRweDtcclxuXHQkaW5uZXJCb3JkZXJXaWR0aDogNHB4O1xyXG5cclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGJvcmRlcjogJHByaW1hcnlDb2xvciBzb2xpZCAkb3V0ZXJCb3JkZXJXaWR0aDtcclxuXHRcdHRvcDogLSgkb3V0ZXJCb3JkZXJXaWR0aCArICRpbm5lckJvcmRlcldpZHRoKSAqIDI7XHJcblx0XHRyaWdodDogLSgkb3V0ZXJCb3JkZXJXaWR0aCArICRpbm5lckJvcmRlcldpZHRoKSAqIDI7XHJcblx0XHRib3R0b206IC0oJG91dGVyQm9yZGVyV2lkdGggKyAkaW5uZXJCb3JkZXJXaWR0aCkgKiAyO1xyXG5cdFx0bGVmdDogLSgkb3V0ZXJCb3JkZXJXaWR0aCArICRpbm5lckJvcmRlcldpZHRoKSAqIDI7XHJcblx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgLjNzKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIFwidG9wLCByaWdodCwgYm90dG9tLCBsZWZ0XCIpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcjpiZWZvcmUsXHJcblx0Jjpmb2N1czpiZWZvcmUsXHJcblx0JjphY3RpdmU6YmVmb3JlIHtcclxuXHRcdHRvcDogLSgkb3V0ZXJCb3JkZXJXaWR0aCArICRpbm5lckJvcmRlcldpZHRoKTtcclxuXHRcdHJpZ2h0OiAtKCRvdXRlckJvcmRlcldpZHRoICsgJGlubmVyQm9yZGVyV2lkdGgpO1xyXG5cdFx0Ym90dG9tOiAtKCRvdXRlckJvcmRlcldpZHRoICsgJGlubmVyQm9yZGVyV2lkdGgpO1xyXG5cdFx0bGVmdDogLSgkb3V0ZXJCb3JkZXJXaWR0aCArICRpbm5lckJvcmRlcldpZHRoKTtcclxuXHRcdG9wYWNpdHk6IDE7XHJcblx0fVxyXG59XHJcbiIsIi8qIFJvdW5kIENvcm5lcnMgKi9cclxuQG1peGluIHJvdW5kLWNvcm5lcnMge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBib3JkZXItcmFkaXVzKTtcclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDFlbTtcclxuXHR9XHJcbn1cclxuIiwiLyogVW5kZXJsaW5lIEZyb20gTGVmdCAqL1xyXG5AbWl4aW4gdW5kZXJsaW5lLWZyb20tbGVmdCB7XHJcblx0JGR1cmF0aW9uOiAkbWVkaXVtRHVyYXRpb247XHJcblxyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OiAtMTtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRyaWdodDogMTAwJTtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcclxuXHRcdGhlaWdodDogNHB4O1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgXCJyaWdodFwiKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHJpZ2h0OiAwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBVbmRlcmxpbmUgRnJvbSBDZW50ZXIgKi9cclxuQG1peGluIHVuZGVybGluZS1mcm9tLWNlbnRlciB7XHJcblx0JGR1cmF0aW9uOiAkbWVkaXVtRHVyYXRpb247XHJcblxyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OiAtMTtcclxuXHRcdGxlZnQ6IDUxJTtcclxuXHRcdHJpZ2h0OiA1MSU7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XHJcblx0XHRoZWlnaHQ6IDRweDtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIFwibGVmdCwgcmlnaHRcIik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkZHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRyaWdodDogMDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogVW5kZXJsaW5lIEZyb20gUmlnaHQgKi9cclxuQG1peGluIHVuZGVybGluZS1mcm9tLXJpZ2h0IHtcclxuXHQkZHVyYXRpb246ICRtZWRpdW1EdXJhdGlvbjtcclxuXHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0bGVmdDogMTAwJTtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xyXG5cdFx0aGVpZ2h0OiA0cHg7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBcImxlZnRcIik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkZHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBPdmVybGluZSBGcm9tIExlZnQgKi9cclxuQG1peGluIG92ZXJsaW5lLWZyb20tbGVmdCB7XHJcblx0JGR1cmF0aW9uOiAkbWVkaXVtRHVyYXRpb247XHJcblxyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OiAtMTtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRyaWdodDogMTAwJTtcclxuXHRcdHRvcDogMDtcclxuXHRcdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcclxuXHRcdGhlaWdodDogNHB4O1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgXCJyaWdodFwiKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHJpZ2h0OiAwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBPdmVybGluZSBGcm9tIENlbnRlciAqL1xyXG5AbWl4aW4gb3ZlcmxpbmUtZnJvbS1jZW50ZXIge1xyXG5cdCRkdXJhdGlvbjogJG1lZGl1bUR1cmF0aW9uO1xyXG5cclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHRsZWZ0OiA1MSU7XHJcblx0XHRyaWdodDogNTElO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xyXG5cdFx0aGVpZ2h0OiA0cHg7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBcImxlZnQsIHJpZ2h0XCIpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdFx0cmlnaHQ6IDA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIE92ZXJsaW5lIEZyb20gUmlnaHQgKi9cclxuQG1peGluIG92ZXJsaW5lLWZyb20tcmlnaHQge1xyXG5cdCRkdXJhdGlvbjogJG1lZGl1bUR1cmF0aW9uO1xyXG5cclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHRsZWZ0OiAxMDAlO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRiYWNrZ3JvdW5kOiAkYWN0aXZlQ29sb3I7XHJcblx0XHRoZWlnaHQ6IDRweDtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIFwibGVmdFwiKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGxlZnQ6IDA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIFJldmVhbCAqL1xyXG5AbWl4aW4gcmV2ZWFsIHtcclxuXHQkZHVyYXRpb246ICN7JGZhc3REdXJhdGlvbn07XHJcblxyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OiAtMTtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdHRvcDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGJvcmRlci1jb2xvcjogI3skYWN0aXZlQ29sb3J9O1xyXG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHRcdGJvcmRlci13aWR0aDogMDtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGJvcmRlci13aWR0aCk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAjeyRkdXJhdGlvbn0pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoMCkpO1xyXG5cdFx0XHRib3JkZXItd2lkdGg6IDRweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogVW5kZXJsaW5lIFJldmVhbCAqL1xyXG5AbWl4aW4gdW5kZXJsaW5lLXJldmVhbCB7XHJcblx0JGR1cmF0aW9uOiAkbWVkaXVtRHVyYXRpb247XHJcblxyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OiAtMTtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGJhY2tncm91bmQ6ICRhY3RpdmVDb2xvcjtcclxuXHRcdGhlaWdodDogNHB4O1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDRweCkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgwKSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIE92ZXJsaW5lIFJldmVhbCAqL1xyXG5AbWl4aW4gb3ZlcmxpbmUtcmV2ZWFsIHtcclxuXHQkZHVyYXRpb246ICRtZWRpdW1EdXJhdGlvbjtcclxuXHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0YmFja2dyb3VuZDogJGFjdGl2ZUNvbG9yO1xyXG5cdFx0aGVpZ2h0OiA0cHg7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTRweCkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgwKSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEdsb3cgKi9cclxuQG1peGluIGdsb3cge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBib3gtc2hhZG93KTtcclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdGJveC1zaGFkb3c6IDAgMCA4cHggJHNoYWRvd0NvbG9yO1xyXG5cdH1cclxufVxyXG4iLCIvKiBTaGFkb3cgKi9cclxuQG1peGluIHNoYWRvdyB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGJveC1zaGFkb3cpO1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0Ym94LXNoYWRvdzogMCAxMHB4IDEwcHggLTEwcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG5cdH1cclxufVxyXG4iLCIvKiBHcm93IFNoYWRvdyAqL1xyXG5AbWl4aW4gZ3Jvdy1zaGFkb3cge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBcImJveC1zaGFkb3csIHRyYW5zZm9ybVwiKTtcclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHRcdGJveC1zaGFkb3c6IDAgMTBweCAxMHB4IC0xMHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoMS4xKSk7XHJcblx0fVxyXG59XHJcbiIsIi8qIEJveCBTaGFkb3cgT3V0c2V0ICovXHJcbkBtaXhpbiBib3gtc2hhZG93LW91dHNldCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIGJveC1zaGFkb3cpO1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0Ym94LXNoYWRvdzogMnB4IDJweCAycHggJHNoYWRvd0NvbG9yO1xyXG5cdH1cclxufVxyXG4iLCIvKiBCb3ggU2hhZG93IEluc2V0ICovXHJcbkBtaXhpbiBib3gtc2hhZG93LWluc2V0IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgYm94LXNoYWRvdyk7XHJcblxyXG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRzaGFkb3dDb2xvcixcclxuXHRcdDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwKTsgLyogSGFjayB0byBpbXByb3ZlIGFsaWFzaW5nIG9uIG1vYmlsZS90YWJsZXQgZGV2aWNlcyAqL1xyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0Ym94LXNoYWRvdzogaW5zZXQgMnB4IDJweCAycHggJHNoYWRvd0NvbG9yLFxyXG5cdFx0MCAwIDFweCByZ2JhKDAsIDAsIDAsIDApOyAvKiBIYWNrIHRvIGltcHJvdmUgYWxpYXNpbmcgb24gbW9iaWxlL3RhYmxldCBkZXZpY2VzICovXHJcblx0fVxyXG59XHJcbiIsIi8qIEZsb2F0IFNoYWRvdyAqL1xyXG5AbWl4aW4gZmxvYXQtc2hhZG93IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHQgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdCAgcG9zaXRpb246IGFic29sdXRlO1xyXG5cdCAgei1pbmRleDogLTE7XHJcblx0ICBjb250ZW50OiAnJztcclxuXHQgIHRvcDogMTAwJTtcclxuXHQgIGxlZnQ6IDUlO1xyXG5cdCAgaGVpZ2h0OiAxMHB4O1xyXG5cdCAgd2lkdGg6IDkwJTtcclxuXHQgIG9wYWNpdHk6IDA7XHJcblx0ICBiYWNrZ3JvdW5kOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjZW50ZXIsIGVsbGlwc2UsIHJnYmEoMCwwLDAsLjM1KSAwJSwgcmdiYSgwLCAwLCAwLCAwKSA4MCUpO1xyXG5cdCAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCByZ2JhKDAsMCwwLC4zNSkgMCUscmdiYSgwLDAsMCwwKSA4MCUpOyAvKiBXM0MgKi9cclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCBcInRyYW5zZm9ybSwgb3BhY2l0eVwiKTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTVweCkpOyAvKiBtb3ZlIHRoZSBlbGVtZW50IHVwIGJ5IDVweCAqL1xyXG5cclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDVweCkpOyAvKiBtb3ZlIHRoZSBlbGVtZW50IGRvd24gYnkgNXB4IChpdCB3aWxsIHN0YXkgaW4gcGxhY2UgYmVjYXVzZSBpdCdzIGF0dGFjaGVkIHRvIHRoZSBlbGVtZW50IHRoYXQgYWxzbyBtb3ZlcyB1cCA1cHgpICovXHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIFNoYWRvdyBSYWRpYWwgKi9cclxuQG1peGluIHNoYWRvdy1yYWRpYWwge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHQmOmJlZm9yZSxcclxuXHQmOmFmdGVyIHtcclxuXHQgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0ICBjb250ZW50OiAnJztcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgIGhlaWdodDogNXB4O1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG5cdCAgQGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHQgIEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIG9wYWNpdHkpO1xyXG5cdH1cclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdCAgYm90dG9tOiAxMDAlO1xyXG5cdCAgYmFja2dyb3VuZDogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoNTAlIDE1MCUsIGVsbGlwc2UsICRzaGFkb3dDb2xvciAwJSwgcmdiYSgwLCAwLCAwLCAwKSA4MCUpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA1MCUgMTUwJSwgJHNoYWRvd0NvbG9yIDAlLCByZ2JhKDAsIDAsIDAsIDApIDgwJSk7XHJcblx0fVxyXG5cclxuXHQmOmFmdGVyIHtcclxuXHQgIHRvcDogMTAwJTtcclxuXHQgIGJhY2tncm91bmQ6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KDUwJSAtNTAlLCBlbGxpcHNlLCAkc2hhZG93Q29sb3IgMCUsIHJnYmEoMCwgMCwgMCwgMCkgODAlKTtcclxuXHQgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDUwJSAtNTAlLCAkc2hhZG93Q29sb3IgMCUsIHJnYmEoMCwgMCwgMCwgMCkgODAlKTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXI6YmVmb3JlLFxyXG5cdCY6Zm9jdXM6YmVmb3JlLFxyXG5cdCY6YWN0aXZlOmJlZm9yZSxcclxuXHQmOmhvdmVyOmFmdGVyLFxyXG5cdCY6Zm9jdXM6YWZ0ZXIsXHJcblx0JjphY3RpdmU6YWZ0ZXIge1xyXG5cdCAgb3BhY2l0eTogMTtcclxuXHR9XHJcbn1cclxuIiwiLyogQnViYmxlIFRvcCAqL1xyXG5AbWl4aW4gYnViYmxlLXRvcCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcclxuXHRcdGxlZnQ6IGNhbGMoNTAlIC0gI3skdGlwV2lkdGh9KTtcclxuXHRcdHRvcDogMDtcclxuXHRcdGJvcmRlci13aWR0aDogMCAkdGlwV2lkdGggJHRpcEhlaWdodCAkdGlwV2lkdGg7XHJcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0aXBDb2xvciB0cmFuc3BhcmVudDtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXI6YmVmb3JlLFxyXG5cdCY6Zm9jdXM6YmVmb3JlLFxyXG5cdCY6YWN0aXZlOmJlZm9yZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLSgkdGlwSGVpZ2h0KSkpO1xyXG5cdH1cclxufVxyXG4iLCIvKiBCdWJibGUgUmlnaHQgKi9cclxuQG1peGluIGJ1YmJsZS1yaWdodCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgdHJhbnNmb3JtKTtcclxuXHRcdHRvcDogY2FsYyg1MCUgLSAjeyR0aXBIZWlnaHR9KTtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0Ym9yZGVyLXdpZHRoOiAkdGlwSGVpZ2h0IDAgJHRpcEhlaWdodCAkdGlwV2lkdGg7XHJcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0aXBDb2xvcjtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXI6YmVmb3JlLFxyXG5cdCY6Zm9jdXM6YmVmb3JlLFxyXG5cdCY6YWN0aXZlOmJlZm9yZSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoJHRpcFdpZHRoKSk7XHJcblx0fVxyXG59XHJcbiIsIi8qIEJ1YmJsZSBCb3R0b20gKi9cclxuQG1peGluIGJ1YmJsZS1ib3R0b20ge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0Y29udGVudDogJyc7XHJcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRsZWZ0OiBjYWxjKDUwJSAtICN7JHRpcFdpZHRofSk7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRib3JkZXItd2lkdGg6ICR0aXBIZWlnaHQgJHRpcFdpZHRoIDAgJHRpcFdpZHRoO1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiAkdGlwQ29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyOmJlZm9yZSxcclxuXHQmOmZvY3VzOmJlZm9yZSxcclxuXHQmOmFjdGl2ZTpiZWZvcmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKCR0aXBIZWlnaHQpKTtcclxuXHR9XHJcbn1cclxuIiwiLyogQnViYmxlIExlZnQgKi9cclxuQG1peGluIGJ1YmJsZS1sZWZ0IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OiAtMTtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdFx0dG9wOiBjYWxjKDUwJSAtICN7JHRpcEhlaWdodH0pO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdGJvcmRlci13aWR0aDogJHRpcEhlaWdodCAkdGlwV2lkdGggJHRpcEhlaWdodCAwO1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdGlwQ29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyOmJlZm9yZSxcclxuXHQmOmZvY3VzOmJlZm9yZSxcclxuXHQmOmFjdGl2ZTpiZWZvcmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0oJHRpcFdpZHRoKSkpO1xyXG5cdH1cclxufVxyXG4iLCIvKiBCdWJibGUgRmxvYXQgVG9wICovXHJcbkBtaXhpbiBidWJibGUtZmxvYXQtdG9wIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0Y29udGVudDogJyc7XHJcblx0XHRsZWZ0OiBjYWxjKDUwJSAtICN7JHRpcFdpZHRofSk7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xyXG5cdFx0Ym9yZGVyLXdpZHRoOiAwICR0aXBXaWR0aCAkdGlwSGVpZ2h0ICR0aXBXaWR0aDtcclxuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRpcENvbG9yIHRyYW5zcGFyZW50O1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKCR0aXBIZWlnaHQpKTtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtKCR0aXBIZWlnaHQpKSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEJ1YmJsZSBGbG9hdCBSaWdodCAqL1xyXG5AbWl4aW4gYnViYmxlLWZsb2F0LXJpZ2h0IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0dG9wOiBjYWxjKDUwJSAtICN7JHRpcEhlaWdodH0pO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XHJcblx0XHRib3JkZXItd2lkdGg6ICR0aXBIZWlnaHQgMCAkdGlwSGVpZ2h0ICR0aXBXaWR0aDtcclxuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRpcENvbG9yO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0oJHRpcFdpZHRoKSkpO1xyXG5cclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKCR0aXBXaWR0aCkpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBCdWJibGUgRmxvYXQgQm90dG9tICovXHJcbkBtaXhpbiBidWJibGUtZmxvYXQtYm90dG9tIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHotaW5kZXg6IC0xO1xyXG5cdFx0Y29udGVudDogJyc7XHJcblx0XHRsZWZ0OiBjYWxjKDUwJSAtICN7JHRpcFdpZHRofSk7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xyXG5cdFx0Ym9yZGVyLXdpZHRoOiAkdGlwSGVpZ2h0ICR0aXBXaWR0aCAwICR0aXBXaWR0aDtcclxuXHRcdGJvcmRlci1jb2xvcjogJHRpcENvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC0oJHRpcEhlaWdodCkpKTtcclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgkdGlwSGVpZ2h0KSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEJ1YmJsZSBGbG9hdCBMZWZ0ICovXHJcbkBtaXhpbiBidWJibGUtZmxvYXQtbGVmdCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OiAtMTtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cdFx0dG9wOiBjYWxjKDUwJSAtICN7JHRpcEhlaWdodH0pO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XHJcblx0XHRib3JkZXItd2lkdGg6ICR0aXBIZWlnaHQgJHRpcFdpZHRoICR0aXBIZWlnaHQgMDtcclxuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRpcENvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKCR0aXBXaWR0aCkpO1xyXG5cclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0oJHRpcFdpZHRoKSkpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIEJhY2sgKi9cclxuQG1peGluIGljb24tYmFjayB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkZmFzdER1cmF0aW9uKTtcclxuXHJcblx0Lmh2ci1pY29uIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkZmFzdER1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQuaHZyLWljb24ge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTRweCkpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIEZvcndhcmQgKi9cclxuQG1peGluIGljb24tZm9yd2FyZCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkZmFzdER1cmF0aW9uKTtcclxuXHJcblx0Lmh2ci1pY29uIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkZmFzdER1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQuaHZyLWljb24ge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoNHB4KSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEljb24gRG93biAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLWRvd24pIHtcclxuXHQwJSxcclxuXHQ1MCUsXHJcblx0MTAwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoMCkpO1xyXG5cdH1cclxuXHQyNSUsXHJcblx0NzUlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg2cHgpKTtcclxuXHR9XHJcbn1cclxuXHJcbi8qIEljb24gRG93biAqL1xyXG5AbWl4aW4gaWNvbi1kb3duIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cclxuXHQuaHZyLWljb24ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi1kb3duKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAuNzVzKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIFVwICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24tdXApIHtcclxuXHQwJSxcclxuXHQ1MCUsXHJcblx0MTAwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoMCkpO1xyXG5cdH1cclxuXHQyNSUsXHJcblx0NzUlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtNnB4KSk7XHJcblx0fVxyXG59XHJcblxyXG4vKiBJY29uIFVwICovXHJcbkBtaXhpbiBpY29uLXVwIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cclxuXHQuaHZyLWljb24ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi11cCk7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgLjc1cyk7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogSWNvbiBTcGluICovXHJcbkBtaXhpbiBpY29uLXNwaW4ge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblxyXG5cdC5odnItaWNvbiB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAxcyk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UtaW4tb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCByb3RhdGUoMzYwZGVnKSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEljb24gRHJvcCAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLWRyb3ApIHtcclxuXHQwJSB7XHJcblx0XHRvcGFjaXR5OiAwO1xyXG5cclxuXHR9XHJcblxyXG5cdDUwJSB7XHJcblx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC0xMDAlKSk7XHJcblx0fVxyXG5cclxuXHQ1MSUsXHJcblx0MTAwJSB7XHJcblx0XHRvcGFjaXR5OiAxO1xyXG5cdH1cclxufVxyXG5cclxuLyogSWNvbiBEcm9wICovXHJcbkBtaXhpbiBpY29uLWRyb3Age1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblxyXG5cdC5odnItaWNvbiB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQuaHZyLWljb24ge1xyXG5cdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAjeyRtZWRpdW1EdXJhdGlvbn0pO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1pY29uLWRyb3ApO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sICN7JHNsb3dEdXJhdGlvbn0pO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGVsYXksICN7JG1lZGl1bUR1cmF0aW9ufSk7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1maWxsLW1vZGUsIGZvcndhcmRzKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1pbi1vdXQpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBjdWJpYy1iZXppZXIoLjUyLDEuNjQsLjM3LC42NikpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIEZhZGUgKi9cclxuQG1peGluIGljb24tZmFkZSB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHJcblx0Lmh2ci1pY29uIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAuNXMpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgY29sb3IpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQuaHZyLWljb24ge1xyXG5cdFx0XHRjb2xvcjogIzBGOUU1RTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogSWNvbiBGbG9hdCBBd2F5ICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24tZmxvYXQtYXdheSkge1xyXG5cdDAlIHtcclxuXHRcdG9wYWNpdHk6IDE7XHJcblx0fVxyXG5cclxuXHQxMDAlIHtcclxuXHRcdG9wYWNpdHk6IDA7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTFlbSkpO1xyXG5cdH1cclxufVxyXG5cclxuLyogSWNvbiBGbG9hdCBBd2F5ICovXHJcbkBtaXhpbiBpY29uLWZsb2F0LWF3YXkge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblxyXG5cdC5odnItaWNvbiB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAjeyRzbG93RHVyYXRpb259KTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1maWxsLW1vZGUsIGZvcndhcmRzKTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi1mbG9hdC1hd2F5KTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIFNpbmsgQXdheSAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLXNpbmstYXdheSkge1xyXG5cdDAlIHtcclxuXHRcdG9wYWNpdHk6IDE7XHJcblx0fVxyXG5cclxuXHQxMDAlIHtcclxuXHRcdG9wYWNpdHk6IDA7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoMWVtKSk7XHJcblx0fVxyXG59XHJcblxyXG4vKiBJY29uIFNpbmsgQXdheSAqL1xyXG5AbWl4aW4gaWNvbi1zaW5rLWF3YXkge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblxyXG5cdC5odnItaWNvbiB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAjeyRzbG93RHVyYXRpb259KTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1maWxsLW1vZGUsIGZvcndhcmRzKTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi1zaW5rLWF3YXkpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEljb24gR3JvdyAqL1xyXG5AbWl4aW4gaWNvbi1ncm93IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblxyXG5cdC5odnItaWNvbiB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQuaHZyLWljb24ge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEuMykgdHJhbnNsYXRlWigwKSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEljb24gU2hyaW5rICovXHJcbkBtaXhpbiBpY29uLXNocmluayB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cclxuXHQuaHZyLWljb24ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSguOCkpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIFB1bHNlICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24tcHVsc2UpIHtcclxuXHQyNSUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSgxLjMpKTtcclxuXHR9XHJcblxyXG5cdDc1JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKC44KSk7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaWNvbi1wdWxzZSB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHJcblx0Lmh2ci1pY29uIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQuaHZyLWljb24ge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1pY29uLXB1bHNlKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGxpbmVhcik7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIGluZmluaXRlKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogSWNvbiBQdWxzZSBHcm93ICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24tcHVsc2UtZ3Jvdykge1xyXG5cdHRvIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoMS4zKSk7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaWNvbi1wdWxzZS1ncm93IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cclxuXHQuaHZyLWljb24ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cclxuXHRcdC5odnItaWNvbiB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LWljb24tcHVsc2UtZ3Jvdyk7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgbGluZWFyKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGlyZWN0aW9uLCBhbHRlcm5hdGUpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIFB1bHNlIFNocmluayAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLXB1bHNlLXNocmluaykge1xyXG5cdHRvIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgc2NhbGUoLjgpKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBpY29uLXB1bHNlLXNocmluayB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRcclxuXHQuaHZyLWljb24ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCBlYXNlLW91dCk7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cclxuXHRcdC5odnItaWNvbiB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LWljb24tcHVsc2Utc2hyaW5rKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBsaW5lYXIpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBpbmZpbml0ZSk7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kaXJlY3Rpb24sIGFsdGVybmF0ZSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEljb24gUHVzaCAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLXB1c2gpIHtcclxuXHQ1MCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSguNSkpO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGljb24tcHVzaCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cclxuXHQuaHZyLWljb24ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi1wdXNoKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCBsaW5lYXIpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAxKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLyogSWNvbiBQb3AgKi9cclxuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0taWNvbi1wb3ApIHtcclxuXHQ1MCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSgxLjUpKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBpY29uLXBvcCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cclxuXHQuaHZyLWljb24ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi1wb3ApO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGxpbmVhcik7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIDEpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIEJvdW5jZSAqL1xyXG5cclxuQG1peGluIGljb24tYm91bmNlIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblxyXG5cdC5odnItaWNvbiB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQuaHZyLWljb24ge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHNjYWxlKDEuNSkpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgY3ViaWMtYmV6aWVyKC40NywyLjAyLC4zMSwtMC4zNikpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIFJvdGF0ZSAqL1xyXG5AbWl4aW4gaWNvbi1yb3RhdGUge1xyXG5cdCRkdXJhdGlvbjogJG1lZGl1bUR1cmF0aW9uO1xyXG5cclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbik7XHJcblxyXG5cdC5odnItaWNvbiB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQuaHZyLWljb24ge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHJvdGF0ZSgyMGRlZykpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIEdyb3cgUm90YXRlICovXHJcbkBtaXhpbiBpY29uLWdyb3ctcm90YXRlIHtcclxuXHQkZHVyYXRpb246ICRtZWRpdW1EdXJhdGlvbjtcclxuXHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkZHVyYXRpb24pO1xyXG5cclxuXHQuaHZyLWljb24ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCBzY2FsZSgxLjUpIHJvdGF0ZSgxMmRlZykpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIEZsb2F0ICovXHJcbkBtaXhpbiBpY29uLWZsb2F0IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblxyXG5cdC5odnItaWNvbiB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIHRyYW5zZm9ybSk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgZWFzZS1vdXQpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQuaHZyLWljb24ge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTRweCkpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIFNpbmsgKi9cclxuQG1peGluIGljb24tc2luayB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cclxuXHQuaHZyLWljb24ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLXByb3BlcnR5LCB0cmFuc2Zvcm0pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2Utb3V0KTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDRweCkpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIEJvYiAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLWJvYikge1xyXG5cdDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtNnB4KSk7XHJcblx0fVxyXG5cdDUwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoLTJweCkpO1xyXG5cdH1cclxuXHQxMDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtNnB4KSk7XHJcblx0fVxyXG59XHJcblxyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLWJvYi1mbG9hdCkge1xyXG5cdDEwMCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC02cHgpKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBpY29uLWJvYiB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cclxuXHQuaHZyLWljb24ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsIFwiI3skbmFtZVNwYWNlfS1pY29uLWJvYi1mbG9hdCwgI3skbmFtZVNwYWNlfS1pY29uLWJvYlwiKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCBcIi4zcywgMS41c1wiKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWRlbGF5LCBcIjBzLCAuM3NcIik7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIFwiZWFzZS1vdXQsIGVhc2UtaW4tb3V0XCIpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBcIjEsIGluZmluaXRlXCIpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZmlsbC1tb2RlLCBcImZvcndhcmRzXCIpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGlyZWN0aW9uLCBcIm5vcm1hbCwgYWx0ZXJuYXRlXCIpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIEhhbmcgKi9cclxuQGluY2x1ZGUga2V5ZnJhbWVzKCN7JG5hbWVTcGFjZX0taWNvbi1oYW5nKSB7XHJcblx0MCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDZweCkpO1xyXG5cdH1cclxuXHQ1MCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDJweCkpO1xyXG5cdH1cclxuXHQxMDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg2cHgpKTtcclxuXHR9XHJcbn1cclxuXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24taGFuZy1zaW5rKSB7XHJcblx0MTAwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoNnB4KSk7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaWNvbi1oYW5nIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblxyXG5cdC5odnItaWNvbiB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQuaHZyLWljb24ge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgXCIjeyRuYW1lU3BhY2V9LWljb24taGFuZy1zaW5rLCAjeyRuYW1lU3BhY2V9LWljb24taGFuZ1wiKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCBcIi4zcywgMS41c1wiKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWRlbGF5LCBcIjBzLCAuM3NcIik7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIFwiZWFzZS1vdXQsIGVhc2UtaW4tb3V0XCIpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCBcIjEsIGluZmluaXRlXCIpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZmlsbC1tb2RlLCBcImZvcndhcmRzXCIpO1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tZGlyZWN0aW9uLCBcIm5vcm1hbCwgYWx0ZXJuYXRlXCIpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIFdvYmJsZSBIb3Jpem9udGFsICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24td29iYmxlLWhvcml6b250YWwpIHtcclxuXHQxNi42NSUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDZweCkpO1xyXG5cdH1cclxuXHJcblx0MzMuMyUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC01cHgpKTtcclxuXHR9XHJcblxyXG5cdDQ5Ljk1JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoNHB4KSk7XHJcblx0fVxyXG5cclxuXHQ2Ni42JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTJweCkpO1xyXG5cdH1cclxuXHJcblx0ODMuMjUlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWCgxcHgpKTtcclxuXHR9XHJcblxyXG5cdDEwMCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDApKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBpY29uLXdvYmJsZS1ob3Jpem9udGFsIHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tZHVyYXRpb24sICRtZWRpdW1EdXJhdGlvbik7XHJcblxyXG5cdC5odnItaWNvbiB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVooMCkpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcixcclxuXHQmOmZvY3VzLFxyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0XHQuaHZyLWljb24ge1xyXG5cdFx0XHRAaW5jbHVkZSBwcmVmaXhlZChhbmltYXRpb24tbmFtZSwgI3skbmFtZVNwYWNlfS1pY29uLXdvYmJsZS1ob3Jpem9udGFsKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UtaW4tb3V0KTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgMSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEljb24gV29iYmxlIFZlcnRpY2FsICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24td29iYmxlLXZlcnRpY2FsKSB7XHJcblx0MTYuNjUlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSg2cHgpKTtcclxuXHR9XHJcblxyXG5cdDMzLjMlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgtNXB4KSk7XHJcblx0fVxyXG5cclxuXHQ0OS45NSUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKDRweCkpO1xyXG5cdH1cclxuXHJcblx0NjYuNiUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVZKC0ycHgpKTtcclxuXHR9XHJcblxyXG5cdDgzLjI1JSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVkoMXB4KSk7XHJcblx0fVxyXG5cclxuXHQxMDAlIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWSgwKSk7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaWNvbi13b2JibGUtdmVydGljYWwge1xyXG5cdEBpbmNsdWRlIGhhY2tzKCk7XHJcblx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHJcblx0Lmh2ci1pY29uIHtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zZm9ybSwgdHJhbnNsYXRlWigwKSk7XHJcblx0fVxyXG5cclxuXHQmOmhvdmVyLFxyXG5cdCY6Zm9jdXMsXHJcblx0JjphY3RpdmUge1xyXG5cclxuXHRcdC5odnItaWNvbiB7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1uYW1lLCAjeyRuYW1lU3BhY2V9LWljb24td29iYmxlLXZlcnRpY2FsKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAxcyk7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGVhc2UtaW4tb3V0KTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgMSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8qIEljb24gQnV6eiAqL1xyXG5AaW5jbHVkZSBrZXlmcmFtZXMoI3skbmFtZVNwYWNlfS1pY29uLWJ1enopIHtcclxuXHQ1MCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDNweCkgcm90YXRlKDJkZWcpKTtcclxuXHR9XHJcblxyXG5cdDEwMCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZSgtMmRlZykpO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGljb24tYnV6eiB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cclxuXHQuaHZyLWljb24ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi1idXp6KTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWR1cmF0aW9uLCAuMTVzKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgbGluZWFyKTtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgaW5maW5pdGUpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBJY29uIEJ1enogT3V0ICovXHJcbkBpbmNsdWRlIGtleWZyYW1lcygjeyRuYW1lU3BhY2V9LWljb24tYnV6ei1vdXQpIHtcclxuXHQxMCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDNweCkgcm90YXRlKDJkZWcpKTtcclxuXHR9XHJcblxyXG5cdDIwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTNweCkgcm90YXRlKC0yZGVnKSk7XHJcblx0fVxyXG5cclxuXHQzMCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDNweCkgcm90YXRlKDJkZWcpKTtcclxuXHR9XHJcblxyXG5cdDQwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTNweCkgcm90YXRlKC0yZGVnKSk7XHJcblx0fVxyXG5cclxuXHQ1MCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDJweCkgcm90YXRlKDFkZWcpKTtcclxuXHR9XHJcblxyXG5cdDYwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTJweCkgcm90YXRlKC0xZGVnKSk7XHJcblx0fVxyXG5cclxuXHQ3MCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDJweCkgcm90YXRlKDFkZWcpKTtcclxuXHR9XHJcblxyXG5cdDgwJSB7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2Zvcm0sIHRyYW5zbGF0ZVgoLTJweCkgcm90YXRlKC0xZGVnKSk7XHJcblx0fVxyXG5cclxuXHQ5MCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKDFweCkgcm90YXRlKDApKTtcclxuXHR9XHJcblxyXG5cdDEwMCUge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVYKC0xcHgpIHJvdGF0ZSgwKSk7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaWNvbi1idXp6LW91dCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cclxuXHQuaHZyLWljb24ge1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNmb3JtLCB0cmFuc2xhdGVaKDApKTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXIsXHJcblx0Jjpmb2N1cyxcclxuXHQmOmFjdGl2ZSB7XHJcblxyXG5cdFx0Lmh2ci1pY29uIHtcclxuXHRcdFx0QGluY2x1ZGUgcHJlZml4ZWQoYW5pbWF0aW9uLW5hbWUsICN7JG5hbWVTcGFjZX0taWNvbi1idXp6LW91dCk7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1kdXJhdGlvbiwgLjc1cyk7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sIGxpbmVhcik7XHJcblx0XHRcdEBpbmNsdWRlIHByZWZpeGVkKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsIDEpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvKiBDdXJsIFRvcCBMZWZ0ICovXHJcbkBtaXhpbiBjdXJsLXRvcC1sZWZ0IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdGhlaWdodDogMDtcclxuXHRcdHdpZHRoOiAwO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdGJhY2tncm91bmQ6ICRyZXZlYWxBcmVhQ29sb3I7IC8qIElFOSAqL1xyXG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxyXG5cdFx0XHQxMzVkZWcsXHJcblx0XHRcdCRyZXZlYWxBcmVhQ29sb3IgNDUlLFxyXG5cdFx0XHQkY3VybExpbmVDb2xvciA1MCUsXHJcblx0XHRcdCRjdXJsVHJhbnNpdGlvbkNvbG9yIDU2JSxcclxuXHRcdFx0JGN1cmxMYXN0Q29sb3IgODAlXHJcblx0XHQpO1xyXG5cdFx0ZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoR3JhZGllbnRUeXBlPTAsc3RhcnRDb2xvcnN0cj0nI2ZmZmZmZicsIGVuZENvbG9yc3RyPScjMDAwMDAwJyk7LypGb3IgSUU3LTgtOSovXHJcblxyXG5cdFx0ei1pbmRleDogMTAwMDtcclxuXHRcdGJveC1zaGFkb3c6IDFweCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgLjQpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIFwid2lkdGgsIGhlaWdodFwiKTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXI6YmVmb3JlLFxyXG5cdCY6Zm9jdXM6YmVmb3JlLFxyXG5cdCY6YWN0aXZlOmJlZm9yZSB7XHJcblx0XHR3aWR0aDogJGN1cmxXaWR0aDtcclxuXHRcdGhlaWdodDogJGN1cmxIZWlnaHQ7XHJcblx0fVxyXG59XHJcbiIsIi8qIEN1cmwgVG9wIFJpZ2h0ICovXHJcbkBtaXhpbiBjdXJsLXRvcC1yaWdodCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0Y29udGVudDogJyc7XHJcblx0XHRoZWlnaHQ6IDA7XHJcblx0XHR3aWR0aDogMDtcclxuXHRcdHRvcDogMDtcclxuXHRcdHJpZ2h0OiAwO1xyXG5cdFx0YmFja2dyb3VuZDogJHJldmVhbEFyZWFDb2xvcjsgLyogSUU5ICovXHJcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXHJcblx0XHRcdDIyNWRlZyxcclxuXHRcdFx0JHJldmVhbEFyZWFDb2xvciA0NSUsXHJcblx0XHRcdCRjdXJsTGluZUNvbG9yIDUwJSxcclxuXHRcdFx0JGN1cmxUcmFuc2l0aW9uQ29sb3IgNTYlLFxyXG5cdFx0XHQkY3VybExhc3RDb2xvciA4MCVcclxuXHRcdCk7XHJcblx0XHRib3gtc2hhZG93OiAtMXB4IDFweCAxcHggcmdiYSgwLCAwLCAwLCAuNCk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgXCJ3aWR0aCwgaGVpZ2h0XCIpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcjpiZWZvcmUsXHJcblx0Jjpmb2N1czpiZWZvcmUsXHJcblx0JjphY3RpdmU6YmVmb3JlIHtcclxuXHRcdHdpZHRoOiAkY3VybFdpZHRoO1xyXG5cdFx0aGVpZ2h0OiAkY3VybEhlaWdodDtcclxuXHR9XHJcbn1cclxuIiwiLyogQ3VybCBCb3R0b20gUmlnaHQgKi9cclxuQG1peGluIGN1cmwtYm90dG9tLXJpZ2h0IHtcclxuXHRAaW5jbHVkZSBoYWNrcygpO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHRcdGhlaWdodDogMDtcclxuXHRcdHdpZHRoOiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0XHRiYWNrZ3JvdW5kOiAkcmV2ZWFsQXJlYUNvbG9yOyAvKiBJRTkgKi9cclxuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuXHRcdFx0MzE1ZGVnLFxyXG5cdFx0XHQkcmV2ZWFsQXJlYUNvbG9yIDQ1JSxcclxuXHRcdFx0JGN1cmxMaW5lQ29sb3IgNTAlLFxyXG5cdFx0XHQkY3VybFRyYW5zaXRpb25Db2xvciA1NiUsXHJcblx0XHRcdCRjdXJsTGFzdENvbG9yIDgwJVxyXG5cdFx0KTtcclxuXHRcdGJveC1zaGFkb3c6IC0xcHggLTFweCAxcHggcmdiYSgwLCAwLCAwLCAuNCk7XHJcblx0XHRAaW5jbHVkZSBwcmVmaXhlZCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkbWVkaXVtRHVyYXRpb24pO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1wcm9wZXJ0eSwgXCJ3aWR0aCwgaGVpZ2h0XCIpO1xyXG5cdH1cclxuXHJcblx0Jjpob3ZlcjpiZWZvcmUsXHJcblx0Jjpmb2N1czpiZWZvcmUsXHJcblx0JjphY3RpdmU6YmVmb3JlIHtcclxuXHRcdHdpZHRoOiAkY3VybFdpZHRoO1xyXG5cdFx0aGVpZ2h0OiAkY3VybEhlaWdodDtcclxuXHR9XHJcbn1cclxuIiwiLyogQ3VybCBCb3R0b20gTGVmdCAqL1xyXG5AbWl4aW4gY3VybC1ib3R0b20tbGVmdCB7XHJcblx0QGluY2x1ZGUgaGFja3MoKTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0Y29udGVudDogJyc7XHJcblx0XHRoZWlnaHQ6IDA7XHJcblx0XHR3aWR0aDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblx0XHRiYWNrZ3JvdW5kOiAkcmV2ZWFsQXJlYUNvbG9yOyAvKiBJRTkgKi9cclxuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcclxuXHRcdFx0NDVkZWcsXHJcblx0XHRcdCRyZXZlYWxBcmVhQ29sb3IgNDUlLFxyXG5cdFx0XHQkY3VybExpbmVDb2xvciA1MCUsXHJcblx0XHRcdCRjdXJsVHJhbnNpdGlvbkNvbG9yIDU2JSxcclxuXHRcdFx0JGN1cmxMYXN0Q29sb3IgODAlXHJcblx0XHQpO1xyXG5cdFx0Ym94LXNoYWRvdzogMXB4IC0xcHggMXB4IHJnYmEoMCwgMCwgMCwgLjQpO1xyXG5cdFx0QGluY2x1ZGUgcHJlZml4ZWQodHJhbnNpdGlvbi1kdXJhdGlvbiwgJG1lZGl1bUR1cmF0aW9uKTtcclxuXHRcdEBpbmNsdWRlIHByZWZpeGVkKHRyYW5zaXRpb24tcHJvcGVydHksIFwid2lkdGgsIGhlaWdodFwiKTtcclxuXHR9XHJcblxyXG5cdCY6aG92ZXI6YmVmb3JlLFxyXG5cdCY6Zm9jdXM6YmVmb3JlLFxyXG5cdCY6YWN0aXZlOmJlZm9yZSB7XHJcblx0XHR3aWR0aDogJGN1cmxXaWR0aDtcclxuXHRcdGhlaWdodDogJGN1cmxIZWlnaHQ7XHJcblx0fVxyXG59XHJcbiIsIkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTogJ0xpbmVhcmljb25zLUZyZWUnO1xuXHRzcmM6dXJsKCdmb250cy9MaW5lYXJpY29ucy1GcmVlLmVvdD93MTE4ZCcpO1xuXHRzcmM6dXJsKCdmb250cy9MaW5lYXJpY29ucy1GcmVlLmVvdD8jaWVmaXh3MTE4ZCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcblx0XHR1cmwoJ2ZvbnRzL0xpbmVhcmljb25zLUZyZWUud29mZjI/dzExOGQnKSBmb3JtYXQoJ3dvZmYyJyksXG5cdFx0dXJsKCdmb250cy9MaW5lYXJpY29ucy1GcmVlLndvZmY/dzExOGQnKSBmb3JtYXQoJ3dvZmYnKSxcblx0XHR1cmwoJ2ZvbnRzL0xpbmVhcmljb25zLUZyZWUudHRmP3cxMThkJykgZm9ybWF0KCd0cnVldHlwZScpLFxuXHRcdHVybCgnZm9udHMvTGluZWFyaWNvbnMtRnJlZS5zdmc/dzExOGQjTGluZWFyaWNvbnMtRnJlZScpIGZvcm1hdCgnc3ZnJyk7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmxuciB7XG5cdGZvbnQtZmFtaWx5OiAnTGluZWFyaWNvbnMtRnJlZSc7XG5cdHNwZWFrOiBub25lO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cblx0LyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4ubG5yLWhvbWU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MDBcIjtcbn1cbi5sbnItYXBhcnRtZW50OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODAxXCI7XG59XG4ubG5yLXBlbmNpbDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgwMlwiO1xufVxuLmxuci1tYWdpYy13YW5kOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODAzXCI7XG59XG4ubG5yLWRyb3A6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MDRcIjtcbn1cbi5sbnItbGlnaHRlcjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgwNVwiO1xufVxuLmxuci1wb29wOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODA2XCI7XG59XG4ubG5yLXN1bjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgwN1wiO1xufVxuLmxuci1tb29uOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODA4XCI7XG59XG4ubG5yLWNsb3VkOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODA5XCI7XG59XG4ubG5yLWNsb3VkLXVwbG9hZDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgwYVwiO1xufVxuLmxuci1jbG91ZC1kb3dubG9hZDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgwYlwiO1xufVxuLmxuci1jbG91ZC1zeW5jOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODBjXCI7XG59XG4ubG5yLWNsb3VkLWNoZWNrOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODBkXCI7XG59XG4ubG5yLWRhdGFiYXNlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODBlXCI7XG59XG4ubG5yLWxvY2s6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MGZcIjtcbn1cbi5sbnItY29nOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODEwXCI7XG59XG4ubG5yLXRyYXNoOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODExXCI7XG59XG4ubG5yLWRpY2U6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MTJcIjtcbn1cbi5sbnItaGVhcnQ6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MTNcIjtcbn1cbi5sbnItc3RhcjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgxNFwiO1xufVxuLmxuci1zdGFyLWhhbGY6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MTVcIjtcbn1cbi5sbnItc3Rhci1lbXB0eTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgxNlwiO1xufVxuLmxuci1mbGFnOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODE3XCI7XG59XG4ubG5yLWVudmVsb3BlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODE4XCI7XG59XG4ubG5yLXBhcGVyY2xpcDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgxOVwiO1xufVxuLmxuci1pbmJveDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgxYVwiO1xufVxuLmxuci1leWU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MWJcIjtcbn1cbi5sbnItcHJpbnRlcjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgxY1wiO1xufVxuLmxuci1maWxlLWVtcHR5OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODFkXCI7XG59XG4ubG5yLWZpbGUtYWRkOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODFlXCI7XG59XG4ubG5yLWVudGVyOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODFmXCI7XG59XG4ubG5yLWV4aXQ6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MjBcIjtcbn1cbi5sbnItZ3JhZHVhdGlvbi1oYXQ6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MjFcIjtcbn1cbi5sbnItbGljZW5zZTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgyMlwiO1xufVxuLmxuci1tdXNpYy1ub3RlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODIzXCI7XG59XG4ubG5yLWZpbG0tcGxheTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgyNFwiO1xufVxuLmxuci1jYW1lcmEtdmlkZW86YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MjVcIjtcbn1cbi5sbnItY2FtZXJhOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODI2XCI7XG59XG4ubG5yLXBpY3R1cmU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MjdcIjtcbn1cbi5sbnItYm9vazpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgyOFwiO1xufVxuLmxuci1ib29rbWFyazpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgyOVwiO1xufVxuLmxuci11c2VyOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODJhXCI7XG59XG4ubG5yLXVzZXJzOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODJiXCI7XG59XG4ubG5yLXNoaXJ0OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODJjXCI7XG59XG4ubG5yLXN0b3JlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODJkXCI7XG59XG4ubG5yLWNhcnQ6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MmVcIjtcbn1cbi5sbnItdGFnOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODJmXCI7XG59XG4ubG5yLXBob25lLWhhbmRzZXQ6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MzBcIjtcbn1cbi5sbnItcGhvbmU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4MzFcIjtcbn1cbi5sbnItcHVzaHBpbjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgzMlwiO1xufVxuLmxuci1tYXAtbWFya2VyOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODMzXCI7XG59XG4ubG5yLW1hcDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgzNFwiO1xufVxuLmxuci1sb2NhdGlvbjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgzNVwiO1xufVxuLmxuci1jYWxlbmRhci1mdWxsOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODM2XCI7XG59XG4ubG5yLWtleWJvYXJkOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODM3XCI7XG59XG4ubG5yLXNwZWxsLWNoZWNrOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODM4XCI7XG59XG4ubG5yLXNjcmVlbjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgzOVwiO1xufVxuLmxuci1zbWFydHBob25lOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODNhXCI7XG59XG4ubG5yLXRhYmxldDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgzYlwiO1xufVxuLmxuci1sYXB0b3A6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4M2NcIjtcbn1cbi5sbnItbGFwdG9wLXBob25lOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODNkXCI7XG59XG4ubG5yLXBvd2VyLXN3aXRjaDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTgzZVwiO1xufVxuLmxuci1idWJibGU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4M2ZcIjtcbn1cbi5sbnItaGVhcnQtcHVsc2U6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NDBcIjtcbn1cbi5sbnItY29uc3RydWN0aW9uOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODQxXCI7XG59XG4ubG5yLXBpZS1jaGFydDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg0MlwiO1xufVxuLmxuci1jaGFydC1iYXJzOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODQzXCI7XG59XG4ubG5yLWdpZnQ6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NDRcIjtcbn1cbi5sbnItZGlhbW9uZDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg0NVwiO1xufVxuLmxuci1saW5lYXJpY29uczpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg0NlwiO1xufVxuLmxuci1kaW5uZXI6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NDdcIjtcbn1cbi5sbnItY29mZmVlLWN1cDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg0OFwiO1xufVxuLmxuci1sZWFmOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODQ5XCI7XG59XG4ubG5yLXBhdzpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg0YVwiO1xufVxuLmxuci1yb2NrZXQ6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NGJcIjtcbn1cbi5sbnItYnJpZWZjYXNlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODRjXCI7XG59XG4ubG5yLWJ1czpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg0ZFwiO1xufVxuLmxuci1jYXI6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NGVcIjtcbn1cbi5sbnItdHJhaW46YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NGZcIjtcbn1cbi5sbnItYmljeWNsZTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg1MFwiO1xufVxuLmxuci13aGVlbGNoYWlyOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODUxXCI7XG59XG4ubG5yLXNlbGVjdDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg1MlwiO1xufVxuLmxuci1lYXJ0aDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg1M1wiO1xufVxuLmxuci1zbWlsZTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg1NFwiO1xufVxuLmxuci1zYWQ6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NTVcIjtcbn1cbi5sbnItbmV1dHJhbDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg1NlwiO1xufVxuLmxuci1tdXN0YWNoZTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg1N1wiO1xufVxuLmxuci1hbGFybTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg1OFwiO1xufVxuLmxuci1idWxsaG9ybjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg1OVwiO1xufVxuLmxuci12b2x1bWUtaGlnaDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg1YVwiO1xufVxuLmxuci12b2x1bWUtbWVkaXVtOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODViXCI7XG59XG4ubG5yLXZvbHVtZS1sb3c6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NWNcIjtcbn1cbi5sbnItdm9sdW1lOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODVkXCI7XG59XG4ubG5yLW1pYzpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg1ZVwiO1xufVxuLmxuci1ob3VyZ2xhc3M6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NWZcIjtcbn1cbi5sbnItdW5kbzpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg2MFwiO1xufVxuLmxuci1yZWRvOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODYxXCI7XG59XG4ubG5yLXN5bmM6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NjJcIjtcbn1cbi5sbnItaGlzdG9yeTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg2M1wiO1xufVxuLmxuci1jbG9jazpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg2NFwiO1xufVxuLmxuci1kb3dubG9hZDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg2NVwiO1xufVxuLmxuci11cGxvYWQ6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NjZcIjtcbn1cbi5sbnItZW50ZXItZG93bjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg2N1wiO1xufVxuLmxuci1leGl0LXVwOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODY4XCI7XG59XG4ubG5yLWJ1ZzpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg2OVwiO1xufVxuLmxuci1jb2RlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODZhXCI7XG59XG4ubG5yLWxpbms6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NmJcIjtcbn1cbi5sbnItdW5saW5rOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODZjXCI7XG59XG4ubG5yLXRodW1icy11cDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg2ZFwiO1xufVxuLmxuci10aHVtYnMtZG93bjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg2ZVwiO1xufVxuLmxuci1tYWduaWZpZXI6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NmZcIjtcbn1cbi5sbnItY3Jvc3M6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NzBcIjtcbn1cbi5sbnItbWVudTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg3MVwiO1xufVxuLmxuci1saXN0OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODcyXCI7XG59XG4ubG5yLWNoZXZyb24tdXA6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NzNcIjtcbn1cbi5sbnItY2hldnJvbi1kb3duOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODc0XCI7XG59XG4ubG5yLWNoZXZyb24tbGVmdDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg3NVwiO1xufVxuLmxuci1jaGV2cm9uLXJpZ2h0OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODc2XCI7XG59XG4ubG5yLWFycm93LXVwOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODc3XCI7XG59XG4ubG5yLWFycm93LWRvd246YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4NzhcIjtcbn1cbi5sbnItYXJyb3ctbGVmdDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg3OVwiO1xufVxuLmxuci1hcnJvdy1yaWdodDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg3YVwiO1xufVxuLmxuci1tb3ZlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODdiXCI7XG59XG4ubG5yLXdhcm5pbmc6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4N2NcIjtcbn1cbi5sbnItcXVlc3Rpb24tY2lyY2xlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODdkXCI7XG59XG4ubG5yLW1lbnUtY2lyY2xlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODdlXCI7XG59XG4ubG5yLWNoZWNrbWFyay1jaXJjbGU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4N2ZcIjtcbn1cbi5sbnItY3Jvc3MtY2lyY2xlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODgwXCI7XG59XG4ubG5yLXBsdXMtY2lyY2xlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODgxXCI7XG59XG4ubG5yLWNpcmNsZS1taW51czpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg4MlwiO1xufVxuLmxuci1hcnJvdy11cC1jaXJjbGU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4ODNcIjtcbn1cbi5sbnItYXJyb3ctZG93bi1jaXJjbGU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4ODRcIjtcbn1cbi5sbnItYXJyb3ctbGVmdC1jaXJjbGU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4ODVcIjtcbn1cbi5sbnItYXJyb3ctcmlnaHQtY2lyY2xlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODg2XCI7XG59XG4ubG5yLWNoZXZyb24tdXAtY2lyY2xlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODg3XCI7XG59XG4ubG5yLWNoZXZyb24tZG93bi1jaXJjbGU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4ODhcIjtcbn1cbi5sbnItY2hldnJvbi1sZWZ0LWNpcmNsZTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg4OVwiO1xufVxuLmxuci1jaGV2cm9uLXJpZ2h0LWNpcmNsZTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg4YVwiO1xufVxuLmxuci1jcm9wOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODhiXCI7XG59XG4ubG5yLWZyYW1lLWV4cGFuZDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg4Y1wiO1xufVxuLmxuci1mcmFtZS1jb250cmFjdDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg4ZFwiO1xufVxuLmxuci1sYXllcnM6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4OGVcIjtcbn1cbi5sbnItZnVubmVsOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODhmXCI7XG59XG4ubG5yLXRleHQtZm9ybWF0OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODkwXCI7XG59XG4ubG5yLXRleHQtZm9ybWF0LXJlbW92ZTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg5MVwiO1xufVxuLmxuci10ZXh0LXNpemU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4OTJcIjtcbn1cbi5sbnItYm9sZDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg5M1wiO1xufVxuLmxuci1pdGFsaWM6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4OTRcIjtcbn1cbi5sbnItdW5kZXJsaW5lOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODk1XCI7XG59XG4ubG5yLXN0cmlrZXRocm91Z2g6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4OTZcIjtcbn1cbi5sbnItaGlnaGxpZ2h0OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODk3XCI7XG59XG4ubG5yLXRleHQtYWxpZ24tbGVmdDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg5OFwiO1xufVxuLmxuci10ZXh0LWFsaWduLWNlbnRlcjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg5OVwiO1xufVxuLmxuci10ZXh0LWFsaWduLXJpZ2h0OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODlhXCI7XG59XG4ubG5yLXRleHQtYWxpZ24tanVzdGlmeTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg5YlwiO1xufVxuLmxuci1saW5lLXNwYWNpbmc6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4OWNcIjtcbn1cbi5sbnItaW5kZW50LWluY3JlYXNlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODlkXCI7XG59XG4ubG5yLWluZGVudC1kZWNyZWFzZTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTg5ZVwiO1xufVxuLmxuci1waWxjcm93OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlODlmXCI7XG59XG4ubG5yLWRpcmVjdGlvbi1sdHI6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4YTBcIjtcbn1cbi5sbnItZGlyZWN0aW9uLXJ0bDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZThhMVwiO1xufVxuLmxuci1wYWdlLWJyZWFrOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlOGEyXCI7XG59XG4ubG5yLXNvcnQtYWxwaGEtYXNjOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlOGEzXCI7XG59XG4ubG5yLXNvcnQtYW1vdW50LWFzYzpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZThhNFwiO1xufVxuLmxuci1oYW5kOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlOGE1XCI7XG59XG4ubG5yLXBvaW50ZXItdXA6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4YTZcIjtcbn1cbi5sbnItcG9pbnRlci1yaWdodDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZThhN1wiO1xufVxuLmxuci1wb2ludGVyLWRvd246YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU4YThcIjtcbn1cbi5sbnItcG9pbnRlci1sZWZ0OmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlOGE5XCI7XG59XG4iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdpY28tY291cGEtbGluZSc7XG4gIHNyYzogIHVybCgnZm9udHMvaWNvLWNvdXBhLWxpbmUuZW90PzE1czh4ZicpO1xuICBzcmM6ICB1cmwoJ2ZvbnRzL2ljby1jb3VwYS1saW5lLmVvdD8xNXM4eGYjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgdXJsKCdmb250cy9pY28tY291cGEtbGluZS50dGY/MTVzOHhmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgIHVybCgnZm9udHMvaWNvLWNvdXBhLWxpbmUud29mZj8xNXM4eGYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICB1cmwoJ2ZvbnRzL2ljby1jb3VwYS1saW5lLnN2Zz8xNXM4eGYjaWNvLWNvdXBhLWxpbmUnKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbmkuaWNvLWNvdXBhLWxpbmUge1xuICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xuICBmb250LWZhbWlseTogJ2ljby1jb3VwYS1saW5lJyAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLmljb24tY2FyZWVycy1kaXNydXB0b3JzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAwXCI7XG59XG4uaWNvbi1jYXJlZXJzLWRvZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAxXCI7XG59XG4uaWNvbi1jYXJlZXJzLWRyZWFtZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAyXCI7XG59XG4uaWNvbi1jYXJlZXJzLWVuc3VyZS1jdXN0b21lci1zdWNjZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAzXCI7XG59XG4uaWNvbi1jYXJlZXJzLWZvY3VzLW9uLXJlc3VsdHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDRcIjtcbn1cbi5pY29uLWNhcmVlcnMtc3RyaXZlLWZvci1leGNlbGxlbmNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA1XCI7XG59XG4uaWNvbi1jYXJlZXJzLXdlLWRvLW5vdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwNlwiO1xufVxuLmljb24tY2FyZWVycy13ZS1kbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwN1wiO1xufVxuLmljb24taW5kdXN0cnktY3BnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA4XCI7XG59XG4uaWNvbi1pbmR1c3RyeS1lZHVjYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDlcIjtcbn1cbi5pY29uLWluZHVzdHJ5LWVuZXJneS11dGlsaXRpZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGFcIjtcbn1cbi5pY29uLWluZHVzdHJ5LWZvb2QtYmV2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBiXCI7XG59XG4uaWNvbi1pbmR1c3RyeS1oZWFsdGhjYXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBjXCI7XG59XG4uaWNvbi1pbmR1c3RyeS1ob3NwaXRhbGl0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwZFwiO1xufVxuLmljb24taW5kdXN0cnktbGlmZS1zY2llbmNlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwZVwiO1xufVxuLmljb24taW5kdXN0cnktbWFudWZhY3R1cmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwZlwiO1xufVxuLmljb24taW5kdXN0cnktbm9uLXByb2ZpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxMFwiO1xufVxuLmljb24taW5kdXN0cnktcHVibGljLXNlY3RvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxMVwiO1xufVxuLmljb24taW5kdXN0cnktcmV0YWlsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTEyXCI7XG59XG4uaWNvbi1pbmR1c3RyeS1zZXJ2aWNlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxM1wiO1xufVxuLmljb24taW5kdXN0cnktdGVjaG5vbG9neTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxNFwiO1xufVxuLmljb24tcGxhdGZvcm0tYWk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTVcIjtcbn1cbi5pY29uLXBsYXRmb3JtLWNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTE2XCI7XG59XG4uaWNvbi1wbGF0Zm9ybS1jb21wbGlhbmNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTE3XCI7XG59XG4uaWNvbi1wbGF0Zm9ybS1jb25maWd1cmF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTE4XCI7XG59XG4uaWNvbi1wbGF0Zm9ybS1kZXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTlcIjtcbn1cbi5pY29uLXBsYXRmb3JtLWltcGxlbWVudGF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTFhXCI7XG59XG4uaWNvbi1wbGF0Zm9ybS1pbnRlZ3JhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MWJcIjtcbn1cbi5pY29uLXBsYXRmb3JtLW1vYmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxY1wiO1xufVxuLmljb24tcGxhdGZvcm0tdXNlci1jZW50cmljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTFkXCI7XG59XG4uaWNvbi1wcm9kdWN0LWNvbGxhYm9yYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MWVcIjtcbn1cbi5pY29uLXByb2R1Y3QtY29tbXVuaXR5LWludGVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTFmXCI7XG59XG4uaWNvbi1wcm9kdWN0LWNvbnRpbmdldC13b3JrZm9yY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MjBcIjtcbn1cbi5pY29uLXByb2R1Y3QtY29udHJhY3QtbWFuYWdlbWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkyMVwiO1xufVxuLmljb24tcHJvZHVjdC1jb3VwYS1hZHZhbnRhZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MjJcIjtcbn1cbi5pY29uLXByb2R1Y3QtZXhwZW5zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkyM1wiO1xufVxuLmljb24tcHJvZHVjdC1pbnZvaWNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTI0XCI7XG59XG4uaWNvbi1wcm9kdWN0LW9wZW4tYnVzaW5lc3MtbmV0d29yazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkyNVwiO1xufVxuLmljb24tcHJvZHVjdC1wYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MjZcIjtcbn1cbi5pY29uLXByb2R1Y3QtcHJvY3VyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkyN1wiO1xufVxuLmljb24tcHJvZHVjdC1zcGVuZC1hbmFseXNpczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkyOFwiO1xufVxuLmljb24tcHJvZHVjdC1zdHJhdGVnaWMtc291cmNpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MjlcIjtcbn1cbi5pY29uLXByb2R1Y3Qtc3VwcGxpZXItbWFuYWdlbWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkyYVwiO1xufVxuLmljb24tc29jaWFsLWZhY2Vib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTJiXCI7XG59XG4uaWNvbi1zb2NpYWwtZ2xhc3Nkb29yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTJjXCI7XG59XG4uaWNvbi1zb2NpYWwtZ29vZ2xlLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MmRcIjtcbn1cbi5pY29uLXNvY2lhbC1saW5rZWRpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkyZVwiO1xufVxuLmljb24tc29jaWFsLXNsYWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTJmXCI7XG59XG4uaWNvbi1zb2NpYWwtdHdpdHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkzMFwiO1xufVxuLmljb24tc29jaWFsLXlvdXR1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MzFcIjtcbn1cbi5pY29uLXdlYi1jb250ZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTMyXCI7XG59XG4uaWNvbi13ZWItZW1haWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MzNcIjtcbn1cbi5pY29uLXdlYi1sYW5ndWFnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkzNFwiO1xufVxuLmljb24td2ViLWxpdmUtZGVtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkzNVwiO1xufVxuLmljb24td2ViLXNlYXJjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkzNlwiO1xufVxuLmljb24td2ViLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTM3XCI7XG59XG4uaWNvbi13ZWItd2ViaW5hcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MzhcIjtcbn1cbiIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2ljby1jb3VwYS1zb2xpZCc7XG4gIHNyYzogIHVybCgnZm9udHMvaWNvLWNvdXBhLXNvbGlkLmVvdD83YThtOHQnKTtcbiAgc3JjOiAgdXJsKCdmb250cy9pY28tY291cGEtc29saWQuZW90PzdhOG04dCNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICB1cmwoJ2ZvbnRzL2ljby1jb3VwYS1zb2xpZC50dGY/N2E4bTh0JykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgIHVybCgnZm9udHMvaWNvLWNvdXBhLXNvbGlkLndvZmY/N2E4bTh0JykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCdmb250cy9pY28tY291cGEtc29saWQuc3ZnPzdhOG04dCNpY28tY291cGEtc29saWQnKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbmkuaWNvLWNvdXBhLXNvbGlkIHtcbiAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgZm9udC1mYW1pbHk6ICdpY28tY291cGEtc29saWQnICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uaWNvbi1jYXJlZXJzLWRpc3J1cHRvcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDBcIjtcbn1cbi5pY29uLWNhcmVlcnMtZG9lcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDFcIjtcbn1cbi5pY29uLWNhcmVlcnMtZHJlYW1lcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDJcIjtcbn1cbi5pY29uLWNhcmVlcnMtZW5zdXJlLWN1c3RvbWVyLXN1Y2Nlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDNcIjtcbn1cbi5pY29uLWNhcmVlcnMtZm9jdXMtb24tcmVzdWx0czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwNFwiO1xufVxuLmljb24tY2FyZWVycy1zdHJpdmUtZm9yLWV4Y2VsbGVuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDVcIjtcbn1cbi5pY29uLWNhcmVlcnMtd2UtZG8tbm90OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA2XCI7XG59XG4uaWNvbi1jYXJlZXJzLXdlLWRvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA3XCI7XG59XG4uaWNvbi1pbmR1c3RyeS1jcGc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDhcIjtcbn1cbi5pY29uLWluZHVzdHJ5LWVkdWNhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwOVwiO1xufVxuLmljb24taW5kdXN0cnktZW5lcmd5LXV0aWxpdGllczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwYVwiO1xufVxuLmljb24taW5kdXN0cnktZm9vZC1iZXY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGJcIjtcbn1cbi5pY29uLWluZHVzdHJ5LWhlYWx0aGNhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MGNcIjtcbn1cbi5pY29uLWluZHVzdHJ5LWhvc3BpdGFsaXR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBkXCI7XG59XG4uaWNvbi1pbmR1c3RyeS1saWZlLXNjaWVuY2VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBlXCI7XG59XG4uaWNvbi1pbmR1c3RyeS1tYW51ZmFjdHVyaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBmXCI7XG59XG4uaWNvbi1pbmR1c3RyeS1ub24tcHJvZml0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTEwXCI7XG59XG4uaWNvbi1pbmR1c3RyeS1wdWJsaWMtc2VjdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTExXCI7XG59XG4uaWNvbi1pbmR1c3RyeS1yZXRhaWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MTJcIjtcbn1cbi5pY29uLWluZHVzdHJ5LXNlcnZpY2VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTEzXCI7XG59XG4uaWNvbi1pbmR1c3RyeS10ZWNobm9sb2d5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTE0XCI7XG59XG4uaWNvbi1wbGF0Zm9ybS1jbG91ZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxNVwiO1xufVxuLmljb24tcGxhdGZvcm0tY29tcGxpYW5jZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxNlwiO1xufVxuLmljb24tcGxhdGZvcm0tY29uZmlndXJhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxN1wiO1xufVxuLmljb24tcGxhdGZvcm0tZGVzaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTE4XCI7XG59XG4uaWNvbi1wbGF0Zm9ybS1pbXBsZW1lbnRhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxOVwiO1xufVxuLmljb24tcGxhdGZvcm0taW50ZWdyYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTFhXCI7XG59XG4uaWNvbi1wbGF0Zm9ybS1tb2JpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MWJcIjtcbn1cbi5pY29uLXBsYXRmb3JtLXVzZXItY2VudHJpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxY1wiO1xufVxuLmljb24tcHJvZHVjdC1haTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxZFwiO1xufVxuLmljb24tcHJvZHVjdC1jb2xsYWJvcmF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTFlXCI7XG59XG4uaWNvbi1wcm9kdWN0LWNvbW11bml0eS1pbnRlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkxZlwiO1xufVxuLmljb24tcHJvZHVjdC1jb250aW5nZXQtd29ya2ZvcmNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTIwXCI7XG59XG4uaWNvbi1wcm9kdWN0LWNvbnRyYWN0LW1hbmFnZW1lbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MjFcIjtcbn1cbi5pY29uLXByb2R1Y3QtY291cGEtYWR2YW50YWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTIyXCI7XG59XG4uaWNvbi1wcm9kdWN0LWV4cGVuc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MjNcIjtcbn1cbi5pY29uLXByb2R1Y3QtaW52b2ljZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkyNFwiO1xufVxuLmljb24tcHJvZHVjdC1vcGVuLWJ1c2luZXNzLW5ldHdvcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MjVcIjtcbn1cbi5pY29uLXByb2R1Y3QtcGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTI2XCI7XG59XG4uaWNvbi1wcm9kdWN0LXByb2N1cmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MjdcIjtcbn1cbi5pY29uLXByb2R1Y3Qtc3BlbmQtYW5hbHlzaXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MjhcIjtcbn1cbi5pY29uLXByb2R1Y3Qtc3RyYXRlZ2ljLXNvdXJjaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTI5XCI7XG59XG4uaWNvbi1wcm9kdWN0LXN1cHBsaWVyLW1hbmFnZW1lbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MmFcIjtcbn1cbi5pY29uLXNvY2lhbC1mYWNlYm9vazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkyYlwiO1xufVxuLmljb24tc29jaWFsLWdsYXNzZG9vcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkyY1wiO1xufVxuLmljb24tc29jaWFsLWdvb2dsZS1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTJkXCI7XG59XG4uaWNvbi1zb2NpYWwtbGlua2VkaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MmVcIjtcbn1cbi5pY29uLXNvY2lhbC1zbGFjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkyZlwiO1xufVxuLmljb24tc29jaWFsLXR3aXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MzBcIjtcbn1cbi5pY29uLXNvY2lhbC15b3V0dWJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTMxXCI7XG59XG4uaWNvbi13ZWItY29udGVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkzMlwiO1xufVxuLmljb24td2ViLWVtYWlsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTMzXCI7XG59XG4uaWNvbi13ZWItbGFuZ3VhZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MzRcIjtcbn1cbi5pY29uLXdlYi1saXZlLWRlbW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MzVcIjtcbn1cbi5pY29uLXdlYi1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MzZcIjtcbn1cbi5pY29uLXdlYi12aWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkzN1wiO1xufVxuLmljb24td2ViLXdlYmluYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTM4XCI7XG59XG4iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdpY28tY291cGEtbmF2JztcbiAgc3JjOiAgdXJsKCdmb250cy9pY28tY291cGEtbmF2LmVvdD8zb2V1NXYnKTtcbiAgc3JjOiAgdXJsKCdmb250cy9pY28tY291cGEtbmF2LmVvdD8zb2V1NXYjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgdXJsKCdmb250cy9pY28tY291cGEtbmF2LnR0Zj8zb2V1NXYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgdXJsKCdmb250cy9pY28tY291cGEtbmF2LndvZmY/M29ldTV2JykgZm9ybWF0KCd3b2ZmJyksXG4gICAgdXJsKCdmb250cy9pY28tY291cGEtbmF2LnN2Zz8zb2V1NXYjaWNvLWNvdXBhLW5hdicpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuaS5pY28tY291cGEtbmF2IHtcbiAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cbiAgZm9udC1mYW1pbHk6ICdpY28tY291cGEtbmF2JyAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gIC8qIEJldHRlciBGb250IFJlbmRlcmluZyA9PT09PT09PT09PSAqL1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLmljb24tZW1haWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDBcIjtcbn1cbi5pY29uLWxhbmd1YWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAxXCI7XG59XG4uaWNvbi1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDJcIjtcbn1cbiIsIkBpbXBvcnQgJ2hvdmVyJztcbkBpbXBvcnQgJ2xpbmVhcmljb25zJztcbkBpbXBvcnQgJ2ljby1jb3VwYS1saW5lJztcbkBpbXBvcnQgJ2ljby1jb3VwYS1zb2xpZCc7XG5AaW1wb3J0ICdpY28tY291cGEtbmF2JztcblxuLy8vL1xuLy8vIEBncm91cCBoZWFkZXIgc21hbGwgbWFzdGhlYWRcbi8vLy9cblxuI3NtYWxsLW1hc3RoZWFkLWNvbnRhaW5lci12MiB7XG5cdFxuXHQmLnRhYi1iYXIge1xuXHRcdGJhY2tncm91bmQ6ICNmZmZmZmY7XG5cdFx0Y29sb3I6ICMwMGI1ZWY7XG5cdFx0aGVpZ2h0OiA1NnB4O1xuXHRcdGxpbmUtaGVpZ2h0OiA1NnB4O1xuXHRcdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cblx0XHQubGVmdC1zbWFsbCwgLnJpZ2h0LXNtYWxsIHtcblx0XHRcdGhlaWdodDogNTZweDtcblx0XHR9XG5cdFx0XG5cdFx0LmxlZnQtc21hbGwge1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdGJvcmRlci1yaWdodDogbm9uZTtcblx0XHRcdFxuXHRcdFx0LmJyYW5kaW5nIHtcblx0XHRcdFx0aGVpZ2h0OiA0MHB4O1xuXHRcdFx0XHRtYXgtaGVpZ2h0OiA0MHB4O1xuXHRcdFx0XHRwYWRkaW5nOiA4cHggMTBweDtcblx0XHRcdFx0XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdGhlaWdodDogNDBweDtcblx0XHRcdFx0XHRtYXgtaGVpZ2h0OiA0MHB4O1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRcdGhlaWdodDogNDBweDtcblx0XHRcdFx0XHRcdG1heC1oZWlnaHQ6IDQwcHg7XG5cdFx0XHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XHRcdFxuXG5cdFx0LnJpZ2h0LXNtYWxsIHtcblx0XHRcdHdpZHRoOiAyLjgxMjVyZW07XG5cdFx0XHRib3JkZXItbGVmdDogbm9uZTtcblx0XHR9XHRcdFxuXHRcdFxuXHRcdC5tZW51LWljb24ge1xuXHRcdFx0dGV4dC1pbmRlbnQ6IDIuMTg3NXJlbTtcblx0XHRcdHdpZHRoOiA1NnB4O1xuXHRcdFx0aGVpZ2h0OiA1NnB4O1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGNvbG9yOiAjMDBiNWVmO1xuXHRcdFx0XG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0XG5cdFx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0XHR3aWR0aDogMjBweDtcdFx0XHRcdFxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XHRcbn1cblxuI3NtYWxsLW1hc3RoZWFkLXJpZ2h0LW9mZi1jYW52YXMtbWVudS12MiB7XG5cdGJhY2tncm91bmQ6ICMwMGI1ZWY7XG5cdFxuXHQjc21hbGwtbWFzdGhlYWQtbWVudSB7XG5cdFx0YmFja2dyb3VuZDogIzAwYjVlZjtcblx0XHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHRcdFx0XG5cdFx0Ji5vZmYtY2FudmFzLWxpc3Qge1xuXHRcdFx0bGlzdC1zdHlsZS10eXBlOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcblx0XHRcdGxpIHtcblx0XHRcdFx0XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDAuNXJlbSAxLjJyZW07XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogIzAwYjVlZjtcblx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdFx0Y29sb3I6ICNmZmZmZmY7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxLjFyZW07XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMS4yO1xuXHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHQmOmhvdmVyLCAmOmFjdGl2ZSwgJi5hY3RpdmUgIHtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICM0MWQxZmY7XG5cdFx0XHRcdFx0XHRjb2xvcjogI2ZmZmZmZjtcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRcdFx0aSB7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDAuMXJlbTtcblx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnaWNvLWNvdXBhLXNvbGlkJyAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0c3BlYWs6IG5vbmU7XG5cdFx0XHRcdFx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0XHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0XHRcdFx0Zm9udC12YXJpYW50OiBub3JtYWw7XG5cdFx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxLjRyZW07XG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogLTAuMjVyZW07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHR1bC5uZXN0ZWQge1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAxcmVtO1xuXHRcdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcblx0fVxufVxuXG4ubW92ZS1sZWZ0IC5leGl0LW9mZi1jYW52YXMsIFxuLm1vdmUtcmlnaHQgLmV4aXQtb2ZmLWNhbnZhcyB7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8vLy9cbi8vLyBAZ3JvdXAgaGVhZGVyIG1hc3RoZWFkXG4vLy8vXG5cbi5tYXN0aGVhZC1zdGlja3ktY29udGFpbmVyLWZ1bGwtdjItc3Age1xuXHRoZWlnaHQ6IDcxcHg7XG59XG5cbi5tYXN0aGVhZC1zdGlja3ktY29udGFpbmVyLWZ1bGwtdjIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuXHRoZWlnaHQ6IDcxcHg7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHRcblx0PiAubWFzdGhlYWQtc3RpY2t5IHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RhZGFkYTtcblx0XHRoZWlnaHQ6IDcxcHg7XG5cdFx0XG5cdFx0PiBoZWFkZXIubWFzdGhlYWQucm93IHtcblx0XHRcdG1heC13aWR0aDogMTI2MHB4O1xuXHRcdFx0XG5cdFx0XHQ+IC5jb2x1bW5zIHtcblx0XHRcdFx0XG5cdFx0XHRcdD4gLnJvdyB7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0PiAuY29sdW1ucyB7XG5cdFx0XHRcdFx0XHRoZWlnaHQ6IDcycHg7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdCYuYnJhbmRpbmcge1xuXHRcdFx0XHRcdFx0XHR3aWR0aDogMTc0cHg7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOiAxNnB4O1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRhLmxvZ28ge1xuXHRcdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiAxNDRweDtcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ji5taWQtbmF2IHtcblx0XHRcdFx0XHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR1bC5tZW51IHtcblx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRcdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHQ+IGxpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGxpc3QtaXRlbTtcblx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdD4gYSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOiAyOHB4O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMjhweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwO1x0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAjMDI0NjhjO1x0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LWZhbWlseTogXCJtdXNlby1zYW5zXCIsIHNhbnMtc2VyaWY7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMC45cmVtO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAjMDBiNWVmO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGhlaWdodDogM3B4O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQmOmhvdmVyLCAmOmFjdGl2ZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29sb3I6ICMwMGI1ZWY7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cbiBcdFx0XHRcdFx0XHRcdFx0XHRcdFxuIFx0XHRcdFx0XHRcdFx0XHRcdFx0Ji5hY3RpdmUge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAjMDBiNWVmO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG4gXHRcdFx0XHRcdFx0XHRcdFx0XHQmLmN1cnJlbnQge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAjMDBiNWVmO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aGVpZ2h0OiAzcHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR6LWluZGV4OiAtMTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGJvdHRvbTogMDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ji5yaWdodC1uYXYge1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMTVweDtcblx0XHRcdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHVsLm1lbnUge1xuXHRcdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRcdFx0XHRcdG1hcmdpbjogMnB4IDAgMCAwO1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdD4gbGkge1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGlzcGxheTogbGlzdC1pdGVtO1xuXHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZzogMjNweCAwO1xuXHRcdFx0XHRcdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9udC1mYW1pbHk6IFwibXVzZW8tc2Fuc1wiLCBzYW5zLXNlcmlmO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ji5sb2dpbiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWFyZ2luLXRvcDogNHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogM3g7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZzogMCAxMnB4O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTdweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGFkYWRhO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nOiAycHggMDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCY6aG92ZXIsICY6YWN0aXZlLCAmLmFjdGl2ZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb2xvcjogI2ZmNjcxNDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCYuaWMge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDAgMTJweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb2xvcjogIzAwYjVlZjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RhZGFkYTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nOiA0cHggMDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Jjpob3ZlciwgJjphY3RpdmUsICYuYWN0aXZlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAjZmY2NzE0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQmLnNlYXJjaCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0XHQmLmJ1dHRvbiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XHRcdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXJnaW46IDE0cHggNnB4O1xuXHRcdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmNjcxNDtcblx0XHRcdFx0XHRcdFx0XHRcdGJvcmRlcjogM3B4IHNvbGlkICNmZjY3MTQgIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDMycHggIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDZweCAxMnB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb2xvcjogI2ZlZmVmZSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRcdFx0Zm9udC1mYW1pbHk6IFwibXVzZW8tc2Fuc1wiLCBzYW5zLXNlcmlmO1xuXHRcdFx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAwLjk1cmVtICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRcdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0XHRcdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRcdFx0XHRcdFx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlLW91dCwgYm9yZGVyLWNvbG9yIDAuMXMgZWFzZS1vdXQsIGNvbG9yIDAuMXMgZWFzZS1vdXQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdCY6aG92ZXIsICY6YWN0aXZlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwYjVlZiAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRib3JkZXI6IDNweCBzb2xpZCAjMDBiNWVmICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcblx0fVxufVxuXG4vLyBsYXJnZSAxMTUycHhcbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3MmVtKSB7XG5cblx0Lm1hc3RoZWFkLXN0aWNreS1jb250YWluZXItZnVsbC12MiB7XG5cdFxuXHRcdD4gLm1hc3RoZWFkLXN0aWNreSB7XG5cdFx0XG5cdFx0XHQ+IGhlYWRlci5tYXN0aGVhZC5yb3cge1xuXHRcdFx0XG5cdFx0XHRcdD4gLmNvbHVtbnMge1xuXHRcdFx0XHRcblx0XHRcdFx0XHQ+IC5yb3cge1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0PiAuY29sdW1ucyB7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0Ji5icmFuZGluZyB7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0Ji5taWQtbmF2IHtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0dWwubWVudSB7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHQ+IGxpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ+IGEge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMTBweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDAuOTNyZW1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQmLnJpZ2h0LW5hdiB7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdHVsLm1lbnUge1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0PiBsaSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDIzcHggMDtcblx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ji5pYyB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAyMnB4O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQmLmJ1dHRvbiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRtYXJnaW46IDE0cHggOHB4O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nOiA3cHggMTJweCAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDAuOTZyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XG5cdFx0fVxuXHR9XG59XG5cbi8vIHhsYXJnZSAxMjYwcHggXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3OC43NWVtKSB7XG5cblx0Lm1hc3RoZWFkLXN0aWNreS1jb250YWluZXItZnVsbC12MiB7XG5cdFxuXHRcdD4gLm1hc3RoZWFkLXN0aWNreSB7XG5cdFx0XG5cdFx0XHQ+IGhlYWRlci5tYXN0aGVhZC5yb3cge1xuXHRcdFx0XG5cdFx0XHRcdD4gLmNvbHVtbnMge1xuXHRcdFx0XHRcblx0XHRcdFx0XHQ+IC5yb3cge1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0PiAuY29sdW1ucyB7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0Ji5icmFuZGluZyB7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0Ji5taWQtbmF2IHtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0dWwubWVudSB7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHQ+IGxpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ+IGEge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMTRweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMTRweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDAuOTVyZW07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0Ji5yaWdodC1uYXYge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHR1bC5tZW51IHtcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdD4gbGkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nOiAyM3B4IDA7XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCYuaWMge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMjJweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0XHRcdFx0Ji5idXR0b24ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0bWFyZ2luOiAxNHB4IDhweDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZzogOHB4IDE0cHggIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxLjA1cmVtICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFxuXHRcdH1cblx0fVxufVxuXG4uZi1kcm9wZG93biB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0bWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuXHR6LWluZGV4OiAxMDA7XG5cdFxuXHQmLmNvbnRlbnQge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdG1heC1oZWlnaHQ6IG5vbmU7XG5cdFx0cGFkZGluZzogMDtcblx0XHRmb250LXNpemU6IDFyZW07XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdG91dGxpbmU6IDA7XG4gICAgfVxuICAgIFxuXHQmOjphZnRlciwgJjo6YmVmb3JlIHtcblxuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH0gICAgXG59XG4uZHJvcGRvd24tcGFuZSB7XG5cdHotaW5kZXg6IDEwMDtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRmb250LWZhbWlseTogXCJtdXNlby1zYW5zXCIsIHNhbnMtc2VyaWY7XG5cdGZvbnQtc2l6ZTogMXJlbTtcblx0XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHRcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNkYWRhZGE7XG5cdGJveC1zaGFkb3c6IDBweCA0cHggMTJweCAxcHggcmdiYSgwLDAsMCwwLjE0KTtcblx0XG5cdCYuZi1kcm9wZG93biB7XG5cdFx0Jjo6YmVmb3JlLCAmOjphZnRlciB7XG5cdFx0XHR6LWluZGV4OiAxMDA7XG5cdFx0fVxuXHRcdFxuXHRcdCYuY29udGVudCB7XG5cdFx0XHR6LWluZGV4OiAxMDA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuZHJvcGRvd24tcGFuZS1jb250YWluZXIge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cdFxuXHQuYmFja2dyb3VuZC1hbHQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG5cdH1cblx0XG5cdC5ib3JkZXItbGVmdCB7XG5cdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGFkYWRhO1xuXHR9XG5cdC5ib3JkZXItcmlnaHQge1xuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkYWRhZGE7XG5cdH1cblx0XG5cdC5tYXJnaW4tYm90LTFyIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxcmVtICFpbXBvcnRhbnQ7XG5cdH1cblx0Lm1hcmdpbi1ib3QtMnIge1xuXHRcdG1hcmdpbi1ib3R0b206IDJyZW0gIWltcG9ydGFudDtcblx0fVxuXHRcblx0aDEsIC5oMSwgaDIsIC5oMiwgaDMsIC5oMywgaDQsIC5oNCwgaDUsIC5oNSwgaDYsIC5oNiB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMXJlbTtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Y29sb3I6ICMxNTVlOWI7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRmb250LWZhbWlseTogXCJtdXNlby1zYW5zXCIsIHNhbnMtc2VyaWY7XG5cdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0XG5cdFx0YSB7XG5cdFx0XHRjb2xvcjppbmhlcml0O1xuXHRcdH1cblx0XHRcblx0XHQmLnN1YmhlYWQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdGNvbG9yOiAjNzE3MTcxO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdFx0XHRcblx0XHRcdHNwYW4ge1xuXHRcdFx0XHRmb250LXNpemU6IDAuODVyZW07XG5cdFx0XHRcdGNvbG9yOiAjOTU5NTk1O1xuXHRcdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRhIHtcblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRcdFxuXHRcdFx0XHQmOmhvdmVyLCAmOmFjdGl2ZSB7XG5cdFx0XHRcdFx0Y29sb3I6ICMwMGI1ZWY7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHRjb2xvcjogIzAwYjVlZjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdGgzLCBoNiwgLmg2IHtcblx0XHRmb250LXNpemU6IDEuMTI1cmVtXG5cdH1cblx0XG5cdGg0LCAuaDcge1xuXHRcdGZvbnQtc2l6ZTogMXJlbVxuXHR9XG5cdFxuXHRwIHtcblx0XHRmb250LXNpemU6IDAuODVyZW07XG5cdFx0bGluZS1oZWlnaHQ6IDEuMjtcblx0XHRcblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cblx0XG5cdGEge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcblx0XHQmOmhvdmVyLCAmOmFjdGl2ZSB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdFxuXHRcdCYuYnV0dG9uIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNWVmO1xuXHRcdFx0Ym9yZGVyOiAzcHggc29saWQgIzAwYjVlZiAhaW1wb3J0YW50O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMjRweCAhaW1wb3J0YW50O1xuXHRcdFx0cGFkZGluZzogMTJweCAyMnB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRjb2xvcjogI2ZlZmVmZSAhaW1wb3J0YW50O1xuXHRcdFx0Zm9udC1mYW1pbHk6IFwibXVzZW8tc2Fuc1wiLCBzYW5zLXNlcmlmO1xuXHRcdFx0Zm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG5cdFx0XHRmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG5cdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjFzIGVhc2Utb3V0LCBib3JkZXItY29sb3IgMC4xcyBlYXNlLW91dCwgY29sb3IgMC4xcyBlYXNlLW91dDtcblx0XG5cdFx0XHQmOmhvdmVyLCAmOmFjdGl2ZSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZjY3MTQgIWltcG9ydGFudDtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjZmY2NzE0ICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdCYuaWMge1xuXHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0XHRcblx0XHRcdGkge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMC4zNXJlbTtcblx0XHRcdFx0Y29sb3I6ICMwMGI1ZWY7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAnaWNvLWNvdXBhLWxpbmUnICFpbXBvcnRhbnQ7XG5cdFx0XHRcdHNwZWFrOiBub25lO1xuXHRcdFx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0XHRcdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMi4yNXJlbTtcblx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdH1cblx0XHRcdHNwYW4ge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6aG92ZXIsICY6YWN0aXZlIHtcblx0XHRcdFx0XG5cdFx0XHRcdGkge1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnaWNvLWNvdXBhLXNvbGlkJyAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHRpbWcge1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdG1heC13aWR0aDogbm9uZTtcblx0fVxuXHRcblx0Lmljb25zLWdyaWQge1xuXHRcdFxuXHRcdC5pY29uLWdyaWQge1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRhIHtcblx0XHRcdFx0XG5cdFx0XHRcdCYuaWMge1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAzN3B4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6aG92ZXIsICY6YWN0aXZlIHtcblx0XHRcdFx0XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGNvbG9yOiAjMDBiNWVmO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICMwMGI1ZWY7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGkge1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnaWNvLWNvdXBhLXNvbGlkJyAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQubGlzdHMtZ3JpZCB7XG5cdFx0XG5cdFx0Lmxpc3QuY2VsbCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0XG5cdFx0XHRhIHtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LnN1YmhlYWQge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cdFx0XHRcdFxuXHRcdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDFyZW07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jYXJkIHtcblx0XHRtYXJnaW46IDAgYXV0byAxcmVtIGF1dG87XG5cdFx0bWF4LXdpZHRoOiA3NSU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwYjVlZjtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL3NvbHV0aW9ucy1vdmVydmlldy1leHBsb3JlLWJhY2tncm91bmQtNDAweDE3NC0yeC5wbmcpO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRjb2xvcjogI2ZlZmVmZTtcblx0fVxuXHRcblx0LmdyaWQteCB7XG5cdFxuXHRcdC5jZWxsIHtcblx0XHRcdFxuXHRcdFx0Ji5wYWRkZWQge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDMwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHR1bC5tZW51IHtcblx0XG5cdFx0PiBsaSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcblx0XHRcdGEge1xuXHRcdFx0XHRwYWRkaW5nOiAwLjM3NXJlbSAwO1xuXHRcdFx0XHRjb2xvcjogIzcxNzE3MTtcblx0XHRcdFx0Zm9udC1zaXplOiAwLjg1cmVtO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMS4yO1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHQmOmhvdmVyLCAmOmFjdGl2ZSB7XG5cdFx0XHRcdFx0Y29sb3I6ICMwMGI1ZWY7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxufVxuXG4vLyBsYXJnZSAxMTUycHhcbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3MmVtKSB7XG5cdC5kcm9wZG93bi1wYW5lIHtcblx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdFxuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiAwLjlyZW07XG5cdFx0XHRsaW5lLWhlaWdodDogMS4yO1xuXHRcdH1cblx0XG5cdFx0LmdyaWQteCB7XG5cdFxuXHRcdFx0LmNlbGwge1xuXHRcdFx0XG5cdFx0XHRcdCYucGFkZGVkIHtcblx0XHRcdFx0XHRwYWRkaW5nOiAzMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcblx0XHR1bC5tZW51IHtcblx0XG5cdFx0XHQ+IGxpIHtcblx0XHRcblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0cGFkZGluZzogMC4zNzVyZW0gMDtcblx0XHRcdFx0XHRmb250LXNpemU6IDAuOTVyZW07XG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuMjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cdFxufVxuXG4jcHJvZHVjdHMtZHJvcGRvd24ge1xuXHR3aWR0aDogMTE4MHB4O1xuXHRcblx0PiAuZHJvcGRvd24tcGFuZS1jb250YWluZXIge1xuXG5cdFx0PiAuZ3JpZC14IHtcblxuXHRcdFx0PiAuY2VsbCB7XG5cdFx0XHRcdFxuXHRcdFx0XHQmOm50aC1jaGlsZCgxKSB7XG5cdFx0XHRcdFx0d2lkdGg6IDQ3JTtcblx0XHRcdFx0fVxuXHRcdFx0XHQmOm50aC1jaGlsZCgyKSB7XG5cdFx0XHRcdFx0d2lkdGg6IDI4JTtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0Ji5jdGEge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWcvbmF2L2Ryb3Bkb3duLXByb2R1Y3RzLWN0YS1uZXR3b3JrLWJhY2tncm91bmQtMzAweDM3Mi5wbmcpO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHRvcDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cbn1cblxuI2luZHVzdHJpZXMtZHJvcGRvd24ge1xuXHR3aWR0aDogMTEyMHB4O1xuXHRcblx0PiAuZHJvcGRvd24tcGFuZS1jb250YWluZXIge1xuXG5cdFx0Lmljb24tY29sdW1ucy1ncmlkIHtcblx0XHRcdFxuXHRcdFx0PiAuY2VsbCB7XG5cdFx0XHRcdFxuXHRcdFx0XHQmOm50aC1jaGlsZCgyKSB7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OnJlbS1jYWxjKDQyKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQmOm50aC1jaGlsZCgzKSB7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OnJlbS1jYWxjKDM1KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4jcGFydG5lcnMtZHJvcGRvd24ge1xuXHR3aWR0aDogNTgwcHg7XG5cdFxuXHQ+IC5kcm9wZG93bi1wYW5lLWNvbnRhaW5lciB7XG5cdFx0XG5cdH1cbn1cblxuI2NvbXBhbnktZHJvcGRvd24ge1xuXHR3aWR0aDogMTA2MHB4O1xuXHRcblx0PiAuZHJvcGRvd24tcGFuZS1jb250YWluZXIge1xuXHRcdFxuXHR9XG59XG5cbiNsYW5ndWFnZS1kcm9wZG93biB7XG5cdHdpZHRoOiAxNDBweDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogbm9uZTtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0XG5cdC5kcm9wZG93bi1wYW5lLWNvbnRhaW5lciB7XG5cdFx0bWFyZ2luOiA0cHggMCAwIDA7XG5cdFx0cGFkZGluZzogMDtcblx0XHRiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNkYWRhZGE7XG5cdFx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRcdGJveC1zaGFkb3c6IDJweCAycHggM3B4IDFweCByZ2JhKDAsMCwwLDAuMSk7XG5cdH1cblx0XG5cdC5ncmlkLXgge1xuXG5cdFx0LmNlbGwge1xuXHRcdFx0XG5cdFx0XHQmLnBhZGRlZCB7XG5cdFx0XHRcdFx0cGFkZGluZzogMThweCAyNHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0aDMge1xuXHRcdG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblx0fVxuXHRcblx0dWwubWVudSB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRcblx0XHQ+IGxpIHtcblx0XHRcblx0XHRcdGEge1xuXHRcdFx0XHRwYWRkaW5nOiAwLjJyZW0gMDtcblx0XHRcdFx0Y29sb3I6ICM3MTcxNzE7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMC45NXJlbTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuMjtcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0Jjpob3ZlciwgJjphY3RpdmUge1xuXHRcdFx0XHRcdGNvbG9yOiAjMDBiNWVmO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cdFxuI3NlYXJjaC1kcm9wZG93biB7XG5cdHdpZHRoOiA0MDBweDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogbm9uZTtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0XG5cdC5kcm9wZG93bi1wYW5lLWNvbnRhaW5lciB7XG5cdFx0bWFyZ2luOiA2cHggMCAwIDA7XG5cdFx0d2lkdGg6IDQwMHB4O1xuXHRcdHBhZGRpbmc6IDZweDtcblx0XHRib3JkZXI6IDAgc29saWQgI2RmZjdmZTtcblx0XHRib3JkZXItcmFkaXVzOiA4cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcblx0XHRib3gtc2hhZG93OiAycHggMnB4IDNweCAxcHggcmdiYSgwLDAsMCwwLjEpO1xuXHR9XG5cdFxuXHRmb3JtIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0XG5cdFx0LmlucHV0LWdyb3VwIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDhweDtcblx0XHRcdFxuXHRcdFx0LmlucHV0LWdyb3VwLWZpZWxkIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrXG5cdFx0XHR9XG5cdFx0XHQuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrXG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdGlucHV0IHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcblx0XHRcdFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICAjYTRhNGE0ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDhweCAwIDAgOHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdHBhZGRpbmc6IDZweCAxMHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiBcIm11c2VvLXNhbnNcIiwgc2Fucy1zZXJpZjtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDE4cHg7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0XHRcdFxuXHRcdFx0XHQmW3R5cGU9XCJ0ZXh0XCJdIHtcblx0XHRcdFx0XHR3aWR0aDogMzM2cHggIWltcG9ydGFudDtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgICNmZjY3MTQgIWltcG9ydGFudDtcblx0XHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Jlt0eXBlPVwic3VibWl0XCJdLmJ1dHRvbiB7XG5cdFx0XHRcdFx0aGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmNjcxNDtcblx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAgI2E0YTRhNCAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDAgOHB4IDhweCAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0cGFkZGluZzogOHB4IDE0cHggOHB4IDEwcHggIWltcG9ydGFudDtcblx0XHRcdFx0XHRmb250LXNpemU6IDEuMXJlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcblx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRcdFx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZS1vdXQsIGJvcmRlci1jb2xvciAwLjFzIGVhc2Utb3V0LCBjb2xvciAwLjFzIGVhc2Utb3V0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0Jjpob3ZlciwgJjphY3RpdmUge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwYjVlZiAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0b3JkZXI6IDFweCBzb2xpZCAgI2E0YTRhNCAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvb3RlclxuLy8vL1xuXG5mb290ZXIuZm9vdGVyLWNvbnRhaW5lciB7XG5cdGJhY2tncm91bmQtY29sb3I6ICMyYTQ3ODg7XG5cdGNvbG9yOiAjZmZmZmZmO1xuXHRmb250LWZhbWlseTogXCJtdXNlby1zYW5zXCIsIHNhbnMtc2VyaWY7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHRcblx0Ji5mdWxsIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXHRcblx0PiAuaW5uZXIge1xuXHRcdG1heC13aWR0aDogMTI2MHB4O1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdHBhZGRpbmc6IDNyZW0gMnJlbSAycmVtIDJyZW07XG5cdH1cblx0XG5cdC5mb290ZXItZ3JpZCB7XG5cdFx0bWF4LXdpZHRoOiAxMjI2cHg7XG5cdFx0XG5cdFx0PiAuY2VsbCB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0XG5cdFx0XHQmLm5hdiB7XG5cdFx0XHRcdFxuXHRcdFx0XHQ+IC5ncmlkLXgge1xuXHRcdFx0XHRcblx0XHRcdFx0XHQ+IC5jZWxsIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdGgxLCAuaDEsIGgyLCAuaDIsIGgzLCAuaDMsIGg0LCAuaDQsIGg1LCAuaDUsIGg2LCAuaDYge1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcblx0XHRcdFx0XHRjb2xvcjogI2ZmZmZmZjtcblx0XHRcdFx0XHRmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6IFwibXVzZW8tc2Fuc1wiLCBzYW5zLXNlcmlmO1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjEyNXJlbTtcblx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcdFx0XHRcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRhLCBzcGFuIHtcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0XHR9XHRcdFx0XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdC5oNiB7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0PiBhLCA+IHNwYW4ge1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxLjRlbTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XG5cdFx0XHRcdHAge1xuXHRcdFxuXHRcdFx0XHRcdCYuY29weXJpZ2h0IHtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMC45cmVtO1xuXHRcdFx0XHRcdFx0b3BhY2l0eTogMC43NTtcblx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiBcIm11c2VvLXNhbnNcIiwgc2Fucy1zZXJpZjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiBcIm11c2VvLXNhbnNcIiwgc2Fucy1zZXJpZjtcblx0XHRcdFx0XG5cdFx0XHRcdFx0Jjpob3ZlciwgJjphY3RpdmUge1xuXHRcdFx0XHRcdFx0b3BhY2l0eTogMC43NTtcblx0XHRcdFx0XHR9XG5cdFxuXHRcdFx0XHRcdCYuYnV0dG9uIHtcblx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiBcIm11c2VvLXNhbnNcIiwgc2Fucy1zZXJpZjtcblx0XHRcdFxuXHRcdFx0XHRcdFx0Jjpob3ZlciwgJjphY3RpdmUge1xuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0XHRcdFx0XHRib3JkZXItY29sb3I6ICNmZjY3MTQ7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiAjZmY2NzE0O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcblx0XHRcdFx0dWwubWVudSB7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdFx0XHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cdFx0XG5cdFx0XHRcdFx0PiBsaSB7XG5cdFx0XHRcblx0XHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRcdFx0cGFkZGluZzogMC4yMjVyZW0gMDtcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICNmZmZmZmY7XG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMS4xcmVtO1xuXHRcdFx0XHRcdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0XHRcdFx0XHRmb250LWZhbWlseTogXCJtdXNlby1zYW5zXCIsIHNhbnMtc2VyaWY7XG5cdFx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQmOmhvdmVyLCAmOmFjdGl2ZSB7XG5cdFx0XHRcdFx0XHRcdFx0b3BhY2l0eTogMC43NTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcblx0XHRcdFx0XHQmLnNvY2lhbCB7XG5cdFx0XHRcblx0XHRcdFx0XHRcdD4gbGkge1xuXHRcdFx0XG5cdFx0XHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDAuN3JlbSAwLjdyZW07XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0aSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDEuNXJlbTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5taWQge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAxcmVtO1xuXHRcdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMnJlbTtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDJyZW07XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDJyZW07XG5cdFx0XHRcdFxuXHRcdFx0XHRoMSwgLmgxLCBoMiwgLmgyLCBoMywgLmgzLCBoNCwgLmg0LCBoNSwgLmg1LCBoNiwgLmg2IHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6IFwibXVzZW8tc2Fuc1wiLCBzYW5zLXNlcmlmO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQ+IC5ncmlkLXgge1xuXHRcdFx0XHRcblx0XHRcdFx0XHQ+IC5jZWxsIHtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdCYud2hpdGUge1xuXHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdCY6aG92ZXIsICY6YWN0aXZlIHtcblx0XHRcdFx0XHRcdFx0XHRcdG9wYWNpdHk6IDAuNzUgIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0Ji5zb2NpYWwge1xuXHRcdFx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR1bC5tZW51IHtcblx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0XHRcdFx0XHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cdFx0XG5cdFx0XHRcdFx0XHRcdFx0PiBsaSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdFx0XHRcdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDAuNHJlbSAwLjRyZW07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LWZhbWlseTogXCJtdXNlby1zYW5zXCIsIHNhbnMtc2VyaWY7XG5cdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0aSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29sb3I6ICNmZmZmZmY7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICdpY28tY291cGEtbGluZScgIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzcGVhazogbm9uZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LXZhcmlhbnQ6IG5vcm1hbDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDNyZW07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQmOmhvdmVyLCAmOmFjdGl2ZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnaWNvLWNvdXBhLXNvbGlkJyAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHQmLnNvbGlkIHtcblx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdD4gbGkge1xuXHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZzogMC40cmVtIDAuNHJlbTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjb2xvcjogI2ZmZmZmZjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LWZhbWlseTogXCJtdXNlby1zYW5zXCIsIHNhbnMtc2VyaWY7XG5cdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICdpY28tY291cGEtc29saWQnICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzcGVhazogbm9uZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LXZhcmlhbnQ6IG5vcm1hbDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDNyZW07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Jjpob3ZlciwgJjphY3RpdmUge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmb250LWZhbWlseTogJ2ljby1jb3VwYS1saW5lJyAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQmLmJ1ZyB7XG5cdFx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdGgzIHtcblx0XHRcdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdFx0XHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDM7XG5cdFx0XHRcdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHRcdFx0Ji5jb250YWN0IHtcblx0XHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0aDUsIGg2IHtcblx0XHRcdFx0XHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRmb250LWZhbWlseTogXCJtdXNlby1zYW5zXCIsIHNhbnMtc2VyaWY7XG5cdFx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDIuMjtcblx0XHRcdFx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0YS5idXR0b24ge1xuXHRcdFx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRcdFx0XHRcdFx0Ym9yZGVyOiAzcHggc29saWQgI2ZmZmZmZiAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDMycHggIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nOiAwLjZlbSAxLjJlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDEuMnJlbSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRcdFx0XHRcdFx0Zm9udC1mYW1pbHk6IFwibXVzZW8tc2Fuc1wiLCBzYW5zLXNlcmlmO1xuXHRcdFx0XHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1x0XHRcdFx0XHRcdFxuXHRcblx0XHRcdFx0XHRcdFx0XHQmOmhvdmVyLCAmOmFjdGl2ZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb2xvcjogIzJhNDc4OCAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0Ji5ib3Qge1xuXHRcdFx0XHRcblx0XHRcdFx0PiAuZ3JpZC14IHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKC0xNSk7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IHJlbS1jYWxjKC0xNSk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0PiAuY2VsbCB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDAuOXJlbTtcblx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiBcIm11c2VvLXNhbnNcIiwgc2Fucy1zZXJpZjtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0LmNvcHlyaWdodCB7XG5cdFx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDFyZW07XG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMC45cmVtO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICNmZmZmZmY7XG5cdFx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiBcIm11c2VvLXNhbnNcIiwgc2Fucy1zZXJpZjtcblx0XHRcdFx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdCY6aG92ZXIsICY6YWN0aXZlIHtcblx0XHRcdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0XHRcdFx0b3BhY2l0eTogMC43NTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRpbWcge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0Ji5pYyB7XG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg6IDEyNHB4O1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XHRcbn1cblxuLy8gbWVkaXVtIDEwMjRweFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MS44NzVlbSkge1xuXG5cdGZvb3Rlci5mb290ZXItY29udGFpbmVyIHtcblx0XG5cdFx0PiAuaW5uZXIge1xuXHRcdFx0cGFkZGluZzogM3JlbSAycmVtIDJyZW0gMnJlbTtcblx0XHR9XG5cdFxuXHRcdC5mb290ZXItZ3JpZCB7XG5cdFxuXHRcdFx0PiAuY2VsbCB7XG5cdFx0XHRcdFxuXHRcdFx0XHQmLm5hdiB7XG5cdFx0XHRcdFxuXHRcdFx0XHRcdD4gLmdyaWQteCB7XG5cdFx0XHRcdFxuXHRcdFx0XHRcdFx0PiAuY2VsbCB7XG5cdFx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGgxLCAuaDEsIGgyLCAuaDIsIGgzLCAuaDMsIGg0LCAuaDQsIGg1LCAuaDUsIGg2LCAuaDYge1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0YSwgc3BhbiB7XG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMC42OGVtO1xuXHRcdFx0XHRcdFx0fVx0XHRcdFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdFx0Lmg2IHtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdD4gYSwgPiBzcGFuIHtcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxLjFlbTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0dWwubWVudSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuXHRcdFxuXHRcdFx0XHRcdFx0PiBsaSB7XG5cdFx0XHRcblx0XHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdFx0cGFkZGluZzogMC4yMjVyZW0gMDtcblx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDAuOTVyZW07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdCYubWlkIHtcblx0XHRcdFxuXHRcdFx0XHRcdD4gLmdyaWQteCB7XG5cdFx0XHRcdFxuXHRcdFx0XHRcdFx0PiAuY2VsbCB7XG5cdFx0XHRcdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRcdFx0XHRcdGJvcmRlci1yaWdodDogbm9uZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0Ji5zb2NpYWwge1xuXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiAzNiU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdCYuYnVnIHtcblx0XHRcdFx0XHRcdFx0XHR3aWR0aDogMjglO1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdGgzIHtcblx0XHRcdFx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiA2MXB4O1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMS4xZW07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiA2MXB4O1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0Ji5jb250YWN0IHtcblx0XHRcdFx0XHRcdFx0XHR3aWR0aDogMzYlO1xuXHRcdFx0XHRcdFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0aDUsIGg2IHtcblx0XHRcdFx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiA2MXB4O1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRcdCYuYm90IHtcblx0XHRcdFx0XG5cdFx0XHRcdFx0PiAuZ3JpZC14IHtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogcmVtLWNhbGMoLTE1KTtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiByZW0tY2FsYygtMTUpO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0PiAuY2VsbCB7XG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMC45cmVtO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQuY29weXJpZ2h0IHtcblx0XHRcdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVx0XG5cdH1cbn1cblxuLy8gbGFyZ2UgMTE1MnB4XG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzJlbSkge1xuXG5cdGZvb3Rlci5mb290ZXItY29udGFpbmVyIHtcblx0XG5cdFx0PiAuaW5uZXIge1xuXHRcdFx0cGFkZGluZzogM3JlbSAwIDJyZW0gMDtcblx0XHR9XG5cdFxuXHRcdC5mb290ZXItZ3JpZCB7XG5cdFxuXHRcdFx0PiAuY2VsbCB7XG5cdFx0XHRcdFxuXHRcdFx0XHQmLm5hdiB7XG5cdFx0XHRcdFxuXHRcdFx0XHRcdD4gLmdyaWQteCB7XG5cdFx0XHRcdFxuXHRcdFx0XHRcdFx0PiAuY2VsbCB7XG5cdFx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGgxLCAuaDEsIGgyLCAuaDIsIGgzLCAuaDMsIGg0LCAuaDQsIGg1LCAuaDUsIGg2LCAuaDYge1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0YSwgc3BhbiB7XG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMC42OGVtO1xuXHRcdFx0XHRcdFx0fVx0XHRcdFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0Ji5taWQge1xuXHRcdFx0XG5cdFx0XHRcdFx0PiAuZ3JpZC14IHtcblx0XHRcdFx0XG5cdFx0XHRcdFx0XHQ+IC5jZWxsIHtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiBub25lO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQmLnNvY2lhbCB7XG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg6IDM2JTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0Ji5idWcge1xuXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiAyOCU7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0aDMge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDYxcHg7XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxLjFlbTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDYxcHg7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHQmLmNvbnRhY3Qge1xuXHRcdFx0XHRcdFx0XHRcdHdpZHRoOiAzNiU7XG5cdFx0XHRcdFx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRoNSwgaDYge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDYxcHg7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcblx0XHRcdFx0Ji5ib3Qge1xuXHRcdFx0XHRcblx0XHRcdFx0XHQ+IC5ncmlkLXgge1xuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiByZW0tY2FsYygtMTUpO1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IHJlbS1jYWxjKC0xNSk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQ+IC5jZWxsIHtcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiAwLjlyZW07XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdC5jb3B5cmlnaHQge1xuXHRcdFx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XHRcblx0fVxufVxuIl19 */
