body {
  width: 100%;
}
body:before,
body:after {
  content: "";
  display: table;
}
body:after {
  clear: both;
}
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-weight: inherit;
  font-style: inherit;
  font-family: inherit;
  font-size: 100%;
  vertical-align: baseline;
}
body {
  line-height: 1;
  color: #000;
  background: #fff;
}
ol,
ul {
  list-style: none;
}
table {
  border-collapse: separate;
  border-spacing: 0;
  vertical-align: middle;
}
caption,
th,
td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle;
}
a img {
  border: none;
}
input,
button {
  margin: 0;
  padding: 0;
}
input::-moz-focus-inner,
button::-moz-focus-inner {
  border: 0;
  padding: 0;
}
@font-face {
  font-family: FontAwesome;
  font-style: normal;
  font-weight: normal;
  src: url("fonts/fontawesome-webfont.eot?v=#4.0.3");
  src: url("fonts/fontawesome-webfont.eot?#iefix&v=#4.0.3") format("embedded-opentype"), url("fonts/fontawesome-webfont.woff?v=#4.0.3") format("woff"), url("fonts/fontawesome-webfont.ttf?v=#4.0.3") format("truetype"), url("fonts/fontawesome-webfont.svg#fontawesomeregular?v=#4.0.3") format("svg");
}
html,
body,
#container {
  height: 100%;
}
body {
  background: #eee;
  font: 14px -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans Japanese", "Roboto", "Helvetica Neue", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  -webkit-text-size-adjust: 100%;
  overflow-y: scroll;
}
.outer {
  max-width: 1220px;
  margin: 0 auto;
  padding: 0 20px;
}
.outer:before,
.outer:after {
  content: "";
  display: table;
}
.outer:after {
  clear: both;
}
.inner {
  display: inline;
  float: left;
  width: 98.33333333333333%;
  margin: 0 0.833333333333333%;
}
.left,
.alignleft {
  float: left;
}
.right,
.alignright {
  float: right;
}
.clear {
  clear: both;
}
#container {
  position: relative;
}
.mobile-nav-on {
  overflow: hidden;
}
#wrap {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-transition: 0.2s ease-out;
  -moz-transition: 0.2s ease-out;
  -ms-transition: 0.2s ease-out;
  transition: 0.2s ease-out;
  z-index: 1;
  background: #eee;
}
.mobile-nav-on #wrap {
  left: 280px;
}
@media screen and (min-width: 768px) {
  #main {
    display: inline;
    float: left;
    width: 73.33333333333333%;
    margin: 0 0.833333333333333%;
  }
}
.article-date,
.article-category-link,
.archive-year,
.widget-title {
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #999;
  margin-bottom: 1em;
  margin-left: 5px;
  line-height: 1em;
  text-shadow: 0 1px #fff;
  font-weight: bold;
}
.article-inner,
.archive-article-inner {
  background: #fff;
  -webkit-box-shadow: 1px 2px 3px #ddd;
  box-shadow: 1px 2px 3px #ddd;
  border: 1px solid #ddd;
  border-radius: 0px;
}
.article-entry h1,
.widget h1 {
  font-size: 2em;
}
.article-entry h2,
.widget h2 {
  font-size: 1.5em;
}
.article-entry h3,
.widget h3 {
  font-size: 1.3em;
}
.article-entry h4,
.widget h4 {
  font-size: 1.2em;
}
.article-entry h5,
.widget h5 {
  font-size: 1em;
}
.article-entry h6,
.widget h6 {
  font-size: 1em;
  color: #999;
}
.article-entry hr,
.widget hr {
  border: 1px dashed #ddd;
}
.article-entry strong,
.widget strong {
  font-weight: bold;
}
.article-entry em,
.widget em,
.article-entry cite,
.widget cite {
  font-style: italic;
}
.article-entry sup,
.widget sup,
.article-entry sub,
.widget sub {
  font-size: 0.75em;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
.article-entry sup,
.widget sup {
  top: -0.5em;
}
.article-entry sub,
.widget sub {
  bottom: -0.2em;
}
.article-entry small,
.widget small {
  font-size: 0.85em;
}
.article-entry acronym,
.widget acronym,
.article-entry abbr,
.widget abbr {
  border-bottom: 1px dotted;
}
.article-entry ul,
.widget ul,
.article-entry ol,
.widget ol,
.article-entry dl,
.widget dl {
  margin: 0 20px;
  line-height: 1.6em;
}
.article-entry ul ul,
.widget ul ul,
.article-entry ol ul,
.widget ol ul,
.article-entry ul ol,
.widget ul ol,
.article-entry ol ol,
.widget ol ol {
  margin-top: 0;
  margin-bottom: 0;
}
.article-entry ul,
.widget ul {
  list-style: disc;
}
.article-entry ol,
.widget ol {
  list-style: decimal;
}
.article-entry dt,
.widget dt {
  font-weight: bold;
}
#header {
  height: 50px;
  position: relative;
  border-bottom: 1px solid #ddd;
  background-color: #202340;
}
#header-outer {
  height: 100%;
  position: relative;
}
#header-inner {
  position: relative;
  overflow: hidden;
}
#header-title {
  text-align: left;
  height: 30px;
  position: absolute;
  top: 50%;
  left: 20px;
  margin-top: -18px;
}
#logo {
  text-decoration: none;
  color: #fff;
  font-weight: 300;
  text-shadow: 0 1px 4px rgba(0,0,0,0.3);
}
#logo {
  font-size: 30px;
  line-height: 30px;
  letter-spacing: 2px;
}
#main-nav {
  float: left;
  margin-left: -15px;
}
.nav-icon,
.main-nav-link {
  float: left;
  color: #fff;
  opacity: 0.6;
  text-decoration: none;
  text-shadow: 0 1px rgba(0,0,0,0.2);
  -webkit-transition: opacity 0.2s;
  -moz-transition: opacity 0.2s;
  -ms-transition: opacity 0.2s;
  transition: opacity 0.2s;
  display: block;
  padding: 15px 15px;
}
.nav-icon:hover,
.main-nav-link:hover {
  opacity: 1;
}
.nav-icon {
  font-family: FontAwesome;
  text-align: center;
  font-size: 14px;
  width: 14px;
  height: 14px;
  padding: 19px 15px;
  position: relative;
  cursor: pointer;
}
.main-nav-link {
  font-weight: 300;
  letter-spacing: 1px;
}
@media screen and (max-width: 479px) {
  .main-nav-link {
    display: none;
  }
}
#main-nav-toggle {
  display: none;
}
#main-nav-toggle:before {
  content: "\f0c9";
}
@media screen and (max-width: 479px) {
  #main-nav-toggle {
    display: block;
  }
}
#sub-nav {
  float: right;
  margin-right: -15px;
}
#nav-rss-link:before {
  content: "\f09e";
}
#nav-search-btn:before {
  content: "\f002";
}
#search-form-wrap {
  position: absolute;
  top: 11px;
  width: 200px;
  height: 30px;
  right: -200px;
  opacity: 0;
  -webkit-transition: 0.2s ease-out;
  -moz-transition: 0.2s ease-out;
  -ms-transition: 0.2s ease-out;
  transition: 0.2s ease-out;
}
#search-form-wrap.on {
  opacity: 1;
  right: 0;
}
@media screen and (max-width: 479px) {
  #search-form-wrap {
    width: 100%;
    right: -100%;
  }
}
.search-form {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: #fff;
  padding: 5px 15px;
  border-radius: 15px;
  -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.3);
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
}
.search-form-input {
  border: none;
  background: none;
  color: #555;
  width: 100%;
  font: 13px -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans Japanese", "Roboto", "Helvetica Neue", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  outline: none;
}
.search-form-input::-webkit-search-results-decoration,
.search-form-input::-webkit-search-cancel-button {
  -webkit-appearance: none;
}
.search-form-submit {
  position: absolute;
  top: 50%;
  right: 10px;
  margin-top: -7px;
  font: 13px FontAwesome;
  border: none;
  background: none;
  color: #bbb;
  cursor: pointer;
}
.search-form-submit:hover,
.search-form-submit:focus {
  color: #777;
}
.article {
  margin: 50px 0;
}
.article-inner {
  overflow: hidden;
}
.article-meta:before,
.article-meta:after {
  content: "";
  display: table;
}
.article-meta:after {
  clear: both;
}
.article-date {
  float: left;
}
.article-category {
  float: left;
  line-height: 1em;
  color: #ccc;
  text-shadow: 0 1px #fff;
  margin-left: 8px;
}
.article-category:before {
  content: "\2022";
}
.article-category-link {
  margin: 0 12px 1em;
}
.article-header {
  padding: 20px 20px 0;
}
.article-title {
  text-decoration: none;
  font-size: 2em;
  font-weight: bold;
  color: #555;
  line-height: 1.1em;
  -webkit-transition: color 0.2s;
  -moz-transition: color 0.2s;
  -ms-transition: color 0.2s;
  transition: color 0.2s;
}
a.article-title:hover {
  color: #0a84ff;
}
.article-entry {
  color: #555;
  padding: 0 20px;
}
.article-entry:before,
.article-entry:after {
  content: "";
  display: table;
}
.article-entry:after {
  clear: both;
}
.article-entry p,
.article-entry table {
  line-height: 1.6em;
  margin: 1.6em 0;
}
.article-entry h1,
.article-entry h2,
.article-entry h3,
.article-entry h4,
.article-entry h5,
.article-entry h6 {
  font-weight: bold;
}
.article-entry h1,
.article-entry h2,
.article-entry h3,
.article-entry h4,
.article-entry h5,
.article-entry h6 {
  line-height: 1.1em;
  margin: 1.1em 0;
}
.article-entry a {
  color: #0a84ff;
  text-decoration: none;
}
.article-entry a:hover {
  text-decoration: underline;
}
.article-entry ul,
.article-entry ol,
.article-entry dl {
  margin-top: 1.6em;
  margin-bottom: 1.6em;
}
.article-entry img,
.article-entry video {
  max-width: 100%;
  height: auto;
  display: block;
  margin: auto;
}
.article-entry iframe {
  border: none;
}
.article-entry table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}
.article-entry th {
  font-weight: bold;
  border-bottom: 3px solid #ddd;
  padding-bottom: 0.5em;
}
.article-entry td {
  border-bottom: 1px solid #ddd;
  padding: 10px 0;
}
.article-entry blockquote {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.4em;
  margin: 1.6em 20px;
  text-align: center;
}
.article-entry blockquote footer {
  font-size: 14px;
  margin: 1.6em 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans Japanese", "Roboto", "Helvetica Neue", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
}
.article-entry blockquote footer cite:before {
  content: "—";
  padding: 0 0.5em;
}
.article-entry .pullquote {
  text-align: left;
  width: 45%;
  margin: 0;
}
.article-entry .pullquote.left {
  margin-left: 0.5em;
  margin-right: 1em;
}
.article-entry .pullquote.right {
  margin-right: 0.5em;
  margin-left: 1em;
}
.article-entry .caption {
  color: #999;
  display: block;
  font-size: 0.9em;
  margin-top: 0.5em;
  position: relative;
  text-align: center;
}
.article-entry .video-container {
  position: relative;
  padding-top: 56.25%;
  height: 0;
  overflow: hidden;
}
.article-entry .video-container iframe,
.article-entry .video-container object,
.article-entry .video-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin-top: 0;
}
.article-more-link a {
  display: inline-block;
  line-height: 1em;
  padding: 6px 15px;
  border-radius: 15px;
  background: #eee;
  color: #999;
  text-shadow: 0 1px #fff;
  text-decoration: none;
}
.article-more-link a:hover {
  background: #0a84ff;
  color: #fff;
  text-decoration: none;
  text-shadow: 0 1px #006ad4;
}
.article-footer {
  font-size: 0.85em;
  line-height: 1.6em;
  border-top: 1px solid #ddd;
  padding-top: 1.6em;
  margin: 0 20px 20px;
}
.article-footer:before,
.article-footer:after {
  content: "";
  display: table;
}
.article-footer:after {
  clear: both;
}
.article-footer a {
  color: #999;
  text-decoration: none;
}
.article-footer a:hover {
  color: #555;
}
.article-tag-list-item {
  float: left;
  margin-right: 10px;
}
.article-tag-list-link:before {
  content: "#";
}
.article-comment-link {
  float: right;
}
.article-comment-link:before {
  content: "\f075";
  font-family: FontAwesome;
  padding-right: 8px;
}
.article-share-link {
  cursor: pointer;
  float: right;
  margin-left: 20px;
}
.article-share-link:before {
  content: "\f064";
  font-family: FontAwesome;
  padding-right: 6px;
}
#article-nav {
  position: relative;
}
#article-nav:before,
#article-nav:after {
  content: "";
  display: table;
}
#article-nav:after {
  clear: both;
}
@media screen and (min-width: 768px) {
  #article-nav {
    margin: 50px 0;
  }
  #article-nav:before {
    width: 8px;
    height: 8px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -4px;
    margin-left: -4px;
    content: "";
    border-radius: 50%;
    background: #ddd;
    -webkit-box-shadow: 0 1px 2px #fff;
    box-shadow: 0 1px 2px #fff;
  }
}
.article-nav-link-wrap {
  text-decoration: none;
  text-shadow: 0 1px #fff;
  color: #999;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  margin-top: 50px;
  text-align: center;
  display: block;
}
.article-nav-link-wrap:hover {
  color: #555;
}
@media screen and (min-width: 768px) {
  .article-nav-link-wrap {
    width: 50%;
    margin-top: 0;
  }
}
@media screen and (min-width: 768px) {
  #article-nav-newer {
    float: left;
    text-align: right;
    padding-right: 20px;
  }
}
@media screen and (min-width: 768px) {
  #article-nav-older {
    float: right;
    text-align: left;
    padding-left: 20px;
  }
}
.article-nav-caption {
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #ddd;
  line-height: 1em;
  font-weight: bold;
}
#article-nav-newer .article-nav-caption {
  margin-right: -2px;
}
.article-nav-title {
  font-size: 0.85em;
  line-height: 1.6em;
  margin-top: 0.5em;
}
.article-share-box {
  position: absolute;
  display: none;
  background: #fff;
  -webkit-box-shadow: 1px 2px 10px rgba(0,0,0,0.2);
  box-shadow: 1px 2px 10px rgba(0,0,0,0.2);
  border-radius: 3px;
  margin-left: -145px;
  overflow: hidden;
  z-index: 1;
}
.article-share-box.on {
  display: block;
}
.article-share-input {
  width: 100%;
  background: none;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  font: 14px -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans Japanese", "Roboto", "Helvetica Neue", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  padding: 0 15px;
  color: #555;
  outline: none;
  border: 1px solid #ddd;
  border-radius: 3px 3px 0 0;
  height: 36px;
  line-height: 36px;
}
.article-share-links {
  background: #eee;
}
.article-share-links:before,
.article-share-links:after {
  content: "";
  display: table;
}
.article-share-links:after {
  clear: both;
}
.article-share-twitter,
.article-share-facebook,
.article-share-pinterest,
.article-share-google {
  width: 50px;
  height: 36px;
  display: block;
  float: left;
  position: relative;
  color: #999;
  text-shadow: 0 1px #fff;
}
.article-share-twitter:before,
.article-share-facebook:before,
.article-share-pinterest:before,
.article-share-google:before {
  font-size: 20px;
  font-family: FontAwesome;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -10px;
  margin-left: -10px;
  text-align: center;
}
.article-share-twitter:hover,
.article-share-facebook:hover,
.article-share-pinterest:hover,
.article-share-google:hover {
  color: #fff;
}
.article-share-twitter:before {
  content: "\f099";
}
.article-share-twitter:hover {
  background: #00aced;
  text-shadow: 0 1px #008abe;
}
.article-share-facebook:before {
  content: "\f09a";
}
.article-share-facebook:hover {
  background: #3b5998;
  text-shadow: 0 1px #2f477a;
}
.article-share-pinterest:before {
  content: "\f0d2";
}
.article-share-pinterest:hover {
  background: #cb2027;
  text-shadow: 0 1px #a21a1f;
}
.article-share-google:before {
  content: "\f0d5";
}
.article-share-google:hover {
  background: #dd4b39;
  text-shadow: 0 1px #be3221;
}
.article-gallery {
  background: #000;
  position: relative;
}
.article-gallery-photos {
  position: relative;
  overflow: hidden;
}
.article-gallery-img {
  display: none;
  max-width: 100%;
}
.article-gallery-img:first-child {
  display: block;
}
.article-gallery-img.loaded {
  position: absolute;
  display: block;
}
.article-gallery-img img {
  display: block;
  max-width: 100%;
  margin: 0 auto;
}
.img-right {
  float: right;
}
#comments {
  background: #fff;
  -webkit-box-shadow: 1px 2px 3px #ddd;
  box-shadow: 1px 2px 3px #ddd;
  padding: 20px;
  border: 1px solid #ddd;
  border-radius: 3px;
  margin: 50px 0;
}
#comments a {
  color: #0a84ff;
}
.archives-wrap {
  margin: 50px 0;
}
.archives:before,
.archives:after {
  content: "";
  display: table;
}
.archives:after {
  clear: both;
}
.archive-year-wrap {
  margin-bottom: 1em;
}
.archives {
  -webkit-column-gap: 10px;
  -moz-column-gap: 10px;
  column-gap: 10px;
}
@media screen and (min-width: 480px) and (max-width: 767px) {
  .archives {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2;
  }
}
@media screen and (min-width: 768px) {
  .archives {
    -webkit-column-count: 3;
    -moz-column-count: 3;
    column-count: 3;
  }
}
.archive-article {
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  overflow: hidden;
  break-inside: avoid-column;
}
.archive-article-inner {
  padding: 10px;
  margin-bottom: 15px;
}
.archive-article-title {
  text-decoration: none;
  font-weight: bold;
  color: #555;
  -webkit-transition: color 0.2s;
  -moz-transition: color 0.2s;
  -ms-transition: color 0.2s;
  transition: color 0.2s;
  line-height: 1.6em;
}
.archive-article-title:hover {
  color: #0a84ff;
}
.archive-article-footer {
  margin-top: 1em;
}
.archive-article-date {
  color: #999;
  text-decoration: none;
  font-size: 0.85em;
  line-height: 1em;
  margin-bottom: 0.5em;
  display: block;
}
#page-nav {
  margin: 50px auto;
  background: #fff;
  -webkit-box-shadow: 1px 2px 3px #ddd;
  box-shadow: 1px 2px 3px #ddd;
  border: 1px solid #ddd;
  border-radius: 3px;
  text-align: center;
  color: #999;
  overflow: hidden;
}
#page-nav:before,
#page-nav:after {
  content: "";
  display: table;
}
#page-nav:after {
  clear: both;
}
#page-nav a,
#page-nav span {
  padding: 10px 20px;
  line-height: 1;
  height: 2ex;
}
#page-nav a {
  color: #999;
  text-decoration: none;
}
#page-nav a:hover {
  background: #999;
  color: #fff;
}
#page-nav .prev {
  float: left;
}
#page-nav .next {
  float: right;
}
#page-nav .page-number {
  display: inline-block;
}
@media screen and (max-width: 479px) {
  #page-nav .page-number {
    display: none;
  }
}
#page-nav .current {
  color: #555;
  font-weight: bold;
}
#page-nav .space {
  color: #ddd;
}
#footer {
  background: #262a30;
  padding: 50px 0;
  border-top: 1px solid #ddd;
  color: #999;
}
#footer a {
  color: #0a84ff;
  text-decoration: none;
}
#footer a:hover {
  text-decoration: underline;
}
#footer-info {
  line-height: 1.6em;
  font-size: 0.85em;
}
.article-entry pre,
.article-entry .highlight {
  background: #2d2d2d;
  margin: 0 -20px;
  padding: 15px 20px;
  border-style: solid;
  border-color: #ddd;
  border-width: 1px 0;
  overflow: auto;
  color: #ccc;
  line-height: 22.400000000000002px;
}
.article-entry .highlight .gutter pre,
.article-entry .gist .gist-file .gist-data .line-numbers {
  color: #666;
  font-size: 0.85em;
}
.article-entry pre,
.article-entry code {
  font-family: "Source Code Pro", Consolas, Monaco, Menlo, Consolas, "メイリオ", "Meiryo", monospace;
}
.article-entry code {
  background: #eee;
  text-shadow: 0 1px #fff;
  padding: 0 0.3em;
}
.article-entry pre code {
  background: none;
  text-shadow: none;
  padding: 0;
}
.article-entry .highlight pre {
  border: none;
  margin: 0;
  padding: 0;
}
.article-entry .highlight table {
  margin: 0;
  width: auto;
}
.article-entry .highlight td {
  border: none;
  padding: 0;
}
.article-entry .highlight figcaption {
  font-size: 0.85em;
  color: #999;
  line-height: 1em;
  margin-bottom: 1em;
}
.article-entry .highlight figcaption:before,
.article-entry .highlight figcaption:after {
  content: "";
  display: table;
}
.article-entry .highlight figcaption:after {
  clear: both;
}
.article-entry .highlight figcaption a {
  float: right;
}
.article-entry .highlight .gutter pre {
  text-align: right;
  padding-right: 20px;
}
.article-entry .highlight .line {
  height: 22.400000000000002px;
}
.article-entry .highlight .line.marked {
  background: #515151;
}
.article-entry .gist {
  margin: 0 -20px;
  border-style: solid;
  border-color: #ddd;
  border-width: 1px 0;
  background: #2d2d2d;
  padding: 15px 20px 15px 0;
}
.article-entry .gist .gist-file {
  border: none;
  font-family: "Source Code Pro", Consolas, Monaco, Menlo, Consolas, "メイリオ", "Meiryo", monospace;
  margin: 0;
}
.article-entry .gist .gist-file .gist-data {
  background: none;
  border: none;
}
.article-entry .gist .gist-file .gist-data .line-numbers {
  background: none;
  border: none;
  padding: 0 20px 0 0;
}
.article-entry .gist .gist-file .gist-data .line-data {
  padding: 0 !important;
}
.article-entry .gist .gist-file .highlight {
  margin: 0;
  padding: 0;
  border: none;
}
.article-entry .gist .gist-file .gist-meta {
  background: #2d2d2d;
  color: #999;
  font: 0.85em -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans Japanese", "Roboto", "Helvetica Neue", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  text-shadow: 0 0;
  padding: 0;
  margin-top: 1em;
  margin-left: 20px;
}
.article-entry .gist .gist-file .gist-meta a {
  color: #0a84ff;
  font-weight: normal;
}
.article-entry .gist .gist-file .gist-meta a:hover {
  text-decoration: underline;
}
pre .comment,
pre .title {
  color: #999;
}
pre .variable,
pre .attribute,
pre .tag,
pre .regexp,
pre .ruby .constant,
pre .xml .tag .title,
pre .xml .pi,
pre .xml .doctype,
pre .html .doctype,
pre .css .id,
pre .css .class,
pre .css .pseudo {
  color: #f2777a;
}
pre .number,
pre .preprocessor,
pre .built_in,
pre .literal,
pre .params,
pre .constant {
  color: #f99157;
}
pre .class,
pre .ruby .class .title,
pre .css .rules .attribute {
  color: #9c9;
}
pre .string,
pre .value,
pre .inheritance,
pre .header,
pre .ruby .symbol,
pre .xml .cdata {
  color: #9c9;
}
pre .css .hexcolor {
  color: #6cc;
}
pre .function,
pre .python .decorator,
pre .python .title,
pre .ruby .function .title,
pre .ruby .title .keyword,
pre .perl .sub,
pre .javascript .title,
pre .coffeescript .title {
  color: #69c;
}
pre .keyword,
pre .javascript .function {
  color: #c9c;
}
@media screen and (max-width: 479px) {
  #mobile-nav {
    position: absolute;
    top: 0;
    left: 0;
    width: 280px;
    height: 100%;
    background: #191919;
    border-right: 1px solid #fff;
  }
}
@media screen and (max-width: 479px) {
  .mobile-nav-link {
    display: block;
    color: #999;
    text-decoration: none;
    padding: 15px 20px;
    font-weight: bold;
  }
  .mobile-nav-link:hover {
    color: #fff;
  }
}
@media screen and (min-width: 768px) {
  #sidebar {
    display: inline;
    float: left;
    width: 23.333333333333332%;
    margin: 0 0.833333333333333%;
  }
}
.widget-wrap {
  margin: 50px 0;
}
.widget {
  color: #777;
  background: #fff;
  border: 1px solid #ccc;
  padding: 15px;
  border-radius: 0px;
}
.widget a {
  color: #0a84ff;
  text-decoration: none;
}
.widget a:hover {
  text-decoration: underline;
}
.widget ul ul,
.widget ol ul,
.widget dl ul,
.widget ul ol,
.widget ol ol,
.widget dl ol,
.widget ul dl,
.widget ol dl,
.widget dl dl {
  margin-left: 15px;
  list-style: disc;
}
.widget {
  line-height: 1.6em;
  word-wrap: break-word;
  font-size: 0.9em;
}
.widget ul,
.widget ol {
  list-style: none;
  margin: 0;
}
.widget ul ul,
.widget ol ul,
.widget ul ol,
.widget ol ol {
  margin: 0 20px;
}
.widget ul ul,
.widget ol ul {
  list-style: disc;
}
.widget ul ol,
.widget ol ol {
  list-style: decimal;
}
.category-list-count,
.tag-list-count,
.archive-list-count {
  padding-left: 5px;
  color: #999;
  font-size: 0.85em;
}
.category-list-count:before,
.tag-list-count:before,
.archive-list-count:before {
  content: "(";
}
.category-list-count:after,
.tag-list-count:after,
.archive-list-count:after {
  content: ")";
}
.tagcloud a {
  margin-right: 5px;
  display: inline-block;
}
.profile ul {
  display: table;
}
.profile ul li {
  display: table-row;
}
.profile ul li span {
  display: table-cell;
}
.profile ul li .profile_key {
  text-align: right;
  padding-right: 0.5em;
}
.profile ul li .profile_value {
  padding-left: 0.5em;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRoZW1lcy9sYW5kc2NhcGUvc291cmNlL2Nzcy9fdXRpbC9ncmlkLnN0eWwiLCJub2RlX21vZHVsZXMvbmliL2xpYi9uaWIvY2xlYXJmaXguc3R5bCIsIm5vZGVfbW9kdWxlcy9uaWIvbGliL25pYi9mbGV4LnN0eWwiLCJub2RlX21vZHVsZXMvbmliL2xpYi9uaWIvcmVzZXQuc3R5bCIsIm5vZGVfbW9kdWxlcy9uaWIvbGliL25pYi9ib3JkZXIuc3R5bCIsIm5vZGVfbW9kdWxlcy9uaWIvbGliL25pYi92ZW5kb3Iuc3R5bCIsInRoZW1lcy9sYW5kc2NhcGUvc291cmNlL2Nzcy9zdHlsZS5zdHlsIiwibm9kZV9tb2R1bGVzL25pYi9saWIvbmliL292ZXJmbG93LnN0eWwiLCJ0aGVtZXMvbGFuZHNjYXBlL3NvdXJjZS9jc3MvX2V4dGVuZC5zdHlsIiwidGhlbWVzL2xhbmRzY2FwZS9zb3VyY2UvY3NzL19wYXJ0aWFsL3NpZGViYXItYXNpZGUuc3R5bCIsIm5vZGVfbW9kdWxlcy9uaWIvbGliL25pYi9ib3JkZXItcmFkaXVzLnN0eWwiLCJ0aGVtZXMvbGFuZHNjYXBlL3NvdXJjZS9jc3MvX3BhcnRpYWwvaGVhZGVyLnN0eWwiLCJ0aGVtZXMvbGFuZHNjYXBlL3NvdXJjZS9jc3MvX3BhcnRpYWwvYXJ0aWNsZS5zdHlsIiwidGhlbWVzL2xhbmRzY2FwZS9zb3VyY2UvY3NzL191dGlsL21peGluLnN0eWwiLCJ0aGVtZXMvbGFuZHNjYXBlL3NvdXJjZS9jc3MvX3BhcnRpYWwvY29tbWVudC5zdHlsIiwidGhlbWVzL2xhbmRzY2FwZS9zb3VyY2UvY3NzL19wYXJ0aWFsL2FyY2hpdmUuc3R5bCIsInRoZW1lcy9sYW5kc2NhcGUvc291cmNlL2Nzcy9fcGFydGlhbC9mb290ZXIuc3R5bCIsInRoZW1lcy9sYW5kc2NhcGUvc291cmNlL2Nzcy9fcGFydGlhbC9oaWdobGlnaHQuc3R5bCIsInRoZW1lcy9sYW5kc2NhcGUvc291cmNlL2Nzcy9fcGFydGlhbC9tb2JpbGUuc3R5bCIsInRoZW1lcy9sYW5kc2NhcGUvc291cmNlL2Nzcy9fcGFydGlhbC9zaWRlYmFyLnN0eWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBO0VBRUUsT0FBTyxLQUFQOztBQ0VBO0FBQ0E7RUFDRSxTQUFTLEdBQVQ7RUNEQSxTQUFTLE1BQVQ7O0FER0Y7RUFDRSxPQUFPLEtBQVA7O0FFdkJGO0FBQU07QUFBTTtBQUFLO0FBQU07QUFBUTtBQUFRO0FBQU87QUFDSztBQUFJO0FBQUk7QUFBSTtBQUFJO0FBQUk7QUFBRztBQUFZO0FBQUk7QUFDSTtBQUFNO0FBQVM7QUFBUztBQUFLO0FBQU07QUFBSztBQUNNO0FBQUs7QUFBSTtBQUFLO0FBQUs7QUFBSztBQUFHO0FBQUc7QUFBSztBQUNRO0FBQVE7QUFBUTtBQUFLO0FBQUs7QUFBSTtBQUFJO0FBQ0s7QUFBSTtBQUFJO0FBQUk7QUFBSTtBQUFHO0FBQ1c7QUFBTTtBQUFPO0FBQU87QUFDUTtBQUFTO0FBQU87QUFBTztBQUFPO0FBQUk7QUFBSTtFQTZCOVQsUUFBUSxFQUFSO0VBQ0EsU0FBUyxFQUFUO0VDL0JFLFFBQVEsRUFBUjtFRGlDRixTQUFTLEVBQVQ7RUFHQSxhQUFhLFFBQWI7RUFDQSxZQUFZLFFBQVo7RUFDQSxhQUFhLFFBQWI7RUFDQSxXQUFXLEtBQVg7RUFDQSxnQkFBZ0IsU0FBaEI7O0FBcENBO0VBdUNBLGFBQWEsRUFBYjtFQUNBLE9BQU8sS0FBUDtFRTZiRSxZQUFXLEtBQVg7O0FGbmVGO0FBQUk7RUVxZkYsWUFBVyxLQUFYOztBRm5mRjtFQXdDQSxpQkFBaUIsU0FBakI7RUFDQSxnQkFBZ0IsRUFBaEI7RUFDQSxnQkFBZ0IsT0FBaEI7O0FBeENBO0FBQVM7QUFBSTtFQTJDYixZQUFZLEtBQVo7RUFDQSxhQUFhLE9BQWI7RUFDQSxnQkFBZ0IsT0FBaEI7O0FBM0NBO0VDWkUsUUFBUSxLQUFSOztBRUZKO0FBQU87RUFDTCxRQUFRLEVBQVI7RUFDQSxTQUFTLEVBQVQ7O0FBQ0E7O0VGREUsUUFBUSxFQUFSO0VFR0EsU0FBUyxFQUFU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OztBQUNBO0lBQ0UsT0FBTyxLQUFQOzs7QVRqQkc7QUFBQTtJUHFCTCxTQUFTLE9BQVQ7SUZPRixPQUFPLEtBQVA7SUFDQSxPQUF1RyxvQkFBdkc7SUFDQSxRQUFRLHFCQUFSOzs7QVMzQkY7RUFDRSxRQUFRLE9BQVI7O0FBS0Y7RUFDRSxPQUFPLEtBQVA7RUp1ZUUsWUFBVyxLQUFYO0VEemVBLFFBQVEsZUFBUjtFS09GLFNBQVMsS0FBVDtFQ29DQSxlQUFjLElBQWQ7O0FEbENBO0VBQ0UsT0FBTyxRQUFQO0VBQ0EsaUJBQWlCLEtBQWpCOztBQUNBO0VBQ0UsaUJBQWlCLFVBQWpCOztBQUVGO0FBQUk7QUFBSTs7Ozs7OztFQUNOLGFBQWEsS0FBYjtFSjJlRixZQUFXLEtBQVg7O0FjL2ZKO0VBRUUsYUFBYSxNQUFiO0VBQ0EsV0FBVyxXQUFYO0VBQ0EsV0FBVyxNQUFYOztBQUNBO0FBQUk7RWQwZkYsWUFBVyxLQUFYO0VjeGZBLFFBQVEsRUFBUjs7QUFDQTtBQUFJOzs7RUFDRixRQUFRLE9BQVI7O0FBQ0Y7O0VkcWZBLFlBQVcsS0FBWDs7QWNuZkE7O0VkbWZBLFlBQVcsUUFBWDs7QWNoZko7QUFDQTtBQUNBO0VBQ0UsY0FBYyxJQUFkO0VBQ0EsT0FBTyxLQUFQO0VBQ0EsV0FBVyxPQUFYOztBQUNBOzs7RUFDRSxTQUFTLElBQVQ7O0FBQ0Y7OztFQUNFLFNBQVMsSUFBVDs7QUFHRjtFQUNFLGNBQWMsSUFBZDtFakJYQSxTQUFTLGFBQVQ7O0FpQmVGO0VqQmZFLFNBQVMsTUFBVDs7QWlCaUJBO0VqQmpCQSxTQUFTLFVBQVQ7O0FpQm1CRTtFakJuQkYsU0FBUyxXQUFUOztBaUJxQkU7RUFDRSxZQUFZLE1BQVo7RUFDQSxlQUFlLE1BQWY7O0FBQ0Y7RUFDRSxjQUFhLE1BQWIiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNlbWFudGljLmdzIC8vIGZvciBTdHlsdXM6IGh0dHA6Ly9sZWFybmJvb3N0LmdpdGh1Yi5jb20vc3R5bHVzL1xuLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8gVXRpbGl0eSBmdW5jdGlvbiDigJQgeW91IHNob3VsZCBuZXZlciBuZWVkIHRvIG1vZGlmeSB0aGlzXG4vLyBfZ3JpZHN5c3RlbS13aWR0aCA9IChjb2x1bW4td2lkdGggKyBndXR0ZXItd2lkdGgpICogY29sdW1uc1xuZ3JpZHN5c3RlbS13aWR0aChfY29sdW1ucyA9IGNvbHVtbnMpXG4gIChjb2x1bW4td2lkdGggKyBndXR0ZXItd2lkdGgpICogX2NvbHVtbnNcblxuLy8gU2V0IEB0b3RhbC13aWR0aCB0byAxMDAlIGZvciBhIGZsdWlkIGxheW91dFxuLy8gdG90YWwtd2lkdGggPSBncmlkc3lzdGVtLXdpZHRoKGNvbHVtbnMpXG50b3RhbC13aWR0aCA9IDEwMCVcblxuLy8vLy8vLy8vL1xuLy8gR1JJRCAvL1xuLy8vLy8vLy8vL1xuXG5ib2R5XG4gIGNsZWFyZml4KClcbiAgd2lkdGg6IDEwMCVcblxucm93KF9jb2x1bW5zID0gY29sdW1ucylcbiAgY2xlYXJmaXgoKVxuICBkaXNwbGF5OiBibG9ja1xuICB3aWR0aDogdG90YWwtd2lkdGggKiAoKGd1dHRlci13aWR0aCArIGdyaWRzeXN0ZW0td2lkdGgoX2NvbHVtbnMpKSAvIGdyaWRzeXN0ZW0td2lkdGgoX2NvbHVtbnMpKVxuICBtYXJnaW46IDAgdG90YWwtd2lkdGggKiAoKChndXR0ZXItd2lkdGggKiAuNSkgLyBncmlkc3lzdGVtLXdpZHRoKF9jb2x1bW5zKSkgKiAtMSlcblxuY29sdW1uKHgsIF9jb2x1bW5zID0gY29sdW1ucylcbiAgZGlzcGxheTogaW5saW5lXG4gIGZsb2F0OiBsZWZ0XG4gIHdpZHRoOiB0b3RhbC13aWR0aCAqICgoKChndXR0ZXItd2lkdGggKyBjb2x1bW4td2lkdGgpICogeCkgLSBndXR0ZXItd2lkdGgpIC8gZ3JpZHN5c3RlbS13aWR0aChfY29sdW1ucykpXG4gIG1hcmdpbjogMCB0b3RhbC13aWR0aCAqICgoZ3V0dGVyLXdpZHRoICogLjUpIC8gZ3JpZHN5c3RlbS13aWR0aChfY29sdW1ucykpXG5cbnB1c2gob2Zmc2V0ID0gMSlcbiAgbWFyZ2luLWxlZnQ6IHRvdGFsLXdpZHRoICogKCgoZ3V0dGVyLXdpZHRoICsgY29sdW1uLXdpZHRoKSAqIG9mZnNldCkgLyBncmlkc3lzdGVtLXdpZHRoKGNvbHVtbnMpKVxuXG5wdWxsKG9mZnNldCA9IDEpXG4gIG1hcmdpbi1yaWdodDogdG90YWwtd2lkdGggKiAoKChndXR0ZXItd2lkdGggKyBjb2x1bW4td2lkdGgpICogb2Zmc2V0KSAvIGdyaWRzeXN0ZW0td2lkdGgoY29sdW1ucykpIiwiLypcbiAqIFRoZSBNYWduaWZpY2VudCBNaWNybyBDbGVhcmZpeFxuICpcbiAqIFVzZWZ1bCBmb3IgY2xlYXJpbmcgZmxvYXRzIHdpdGhvdXQgc3RydWN0dXJhbCBtYXJrdXAuXG4gKiBQcmV2ZW50cyBtYXJnaW4tY29sbGFwc2luZyBvbiBjaGlsZCBlbGVtZW50cyBpbiBtb3N0IGNhc2VzLlxuICpcbiAqIEtub3duIGlzc3VlczpcbiAqXG4gKiAxLiBGb3IgSUUgNi83IHdoZW4gYXBwbGllZCB0byBhbiBlbGVtZW50IHRoYXQgY29udGFpbnMgb25seSBsZWZ0LWZsb2F0ZWRcbiAqICAgIGNoaWxkcmVuIHRoZSBib3R0b20gbWFyZ2luIG9uIGNoaWxkIGVsZW1lbnRzIHdpbGwgYmUgY29sbGFwc2VkLlxuICpcbiAqIDIuIEZvciBGaXJlZm94IHZlcnNpb25zIHByaW9yIHRvIDMuNSB3aGVuIGFwcGxpZWQgdG8gdGhlIGZpcnN0IGNoaWxkIGVsZW1lbnRcbiAqICAgIG9mIGJvZHksIGFuZCB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIG5vbi16ZXJvIHBhZGRpbmcsIGV4dHJhIHNwYWNlIHdpbGxcbiAqICAgIGFwcGVhciBiZXR3ZWVuIHRoZSBib2R5IGFuZCB0aGUgZmlyc3QgY2hpbGQuXG4gKlxuICogU2VlIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xuICogYW5kIGh0dHA6Ly9qLm1wL2Jlc3RjbGVhcmZpeFxuICpcbiAqL1xuXG5jbGVhcmZpeCgpXG4gICY6YmVmb3JlXG4gICY6YWZ0ZXJcbiAgICBjb250ZW50OiBcIlwiXG4gICAgZGlzcGxheTogdGFibGVcbiAgJjphZnRlclxuICAgIGNsZWFyOiBib3RoXG4gIHpvb206IDEgaWYgc3VwcG9ydC1mb3ItaWVcbiIsIi8qXG4gKiBWZW5kb3IgXCJkaXNwbGF5OiBmbGV4XCIgc3VwcG9ydCB3aXRoIGZhbGxiYWNrIHRvIG9ic29sZXRlIHZlcnNpb25zLlxuICovXG5cbmZsZXgtdmVyc2lvbiA/PSBib3ggZmxleFxuXG4vL1xuLy8gMS4gRGlzcGxheSB2YWx1ZXNcbi8vICAgIC0gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mbGV4Ym94LyNmbGV4LWNvbnRhaW5lcnNcbi8vXG5kaXNwbGF5KHR5cGUsIGFyZ3MuLi4pXG4gIGlmIGZsZXggPT0gdHlwZSB8fCBpbmxpbmUtZmxleCA9PSB0eXBlXG4gICAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgICAgaWYgZmxleCA9PSB0eXBlXG4gICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94IGFyZ3NcbiAgICAgICAgZGlzcGxheTogdmVuZG9yLXZhbHVlKGJveCBhcmdzLCBvbmx5OiBtb3ogd2Via2l0KVxuICAgICAgZWxzZVxuICAgICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3ggYXJnc1xuICAgICAgICBkaXNwbGF5OiB2ZW5kb3ItdmFsdWUoaW5saW5lLWJveCBhcmdzLCBvbmx5OiBtb3ogd2Via2l0KVxuICAgIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgICBkaXNwbGF5OiB2ZW5kb3ItdmFsdWUoYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpIC8vIG92ZXJ3cml0ZXMgb2xkIHdlYmtpdFxuICBlbHNlXG4gICAgZGlzcGxheTogYXJndW1lbnRzXG5cbi8qXG4gKiBOZXcgc3ludGF4IGZvciBicm93c2VycyBsaWtlIEdvb2dsZSBDaHJvbWUuXG4gKiBQbHVzIGEgdHJhbnNsYXRpb24gdG8gdGhlIG9sZCBzeW50YXgsIGlmIHBvc3NpYmxlLlxuICovXG5cblxuLy9cbi8vIDUuIE9yZGVyaW5nIGFuZCBPcmllbnRhdGlvblxuLy8gICAgLSBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWZsZXhib3gvI29yZGVyaW5nLWFuZC1vcmllbnRhdGlvblxuLy9cbi1mbGV4LW9ic29sZXRlLWRpcmVjdGlvbihkaXJlY3Rpb24pXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICBpZiByb3ctcmV2ZXJzZSA9PSBkaXJlY3Rpb24gfHwgY29sdW1uLXJldmVyc2UgPT0gZGlyZWN0aW9uXG4gICAgICB2ZW5kb3IoJ2JveC1kaXJlY3Rpb24nLCByZXZlcnNlLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG4gICAgaWYgcm93ID09IGRpcmVjdGlvbiB8fCByb3ctcmV2ZXJzZSA9PSBkaXJlY3Rpb25cbiAgICAgIHZlbmRvcignYm94LW9yaWVudCcsIGhvcml6b250YWwsIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG4gICAgZWxzZSBpZiBjb2x1bW4gPT0gZGlyZWN0aW9uIHx8IGNvbHVtbi1yZXZlcnNlID09IGRpcmVjdGlvblxuICAgICAgdmVuZG9yKCdib3gtb3JpZW50JywgdmVydGljYWwsIGlnbm9yZTogbXMgb2ZmaWNpYWwpXG5cbi1mbGV4LW9ic29sZXRlLXdyYXAodmFsdWUpXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICAvLyBXQVJOOiB3cmFwLXJldmVyc2UgZG9lcyBub3QgaGF2ZSBhIGJveCBlcXVpdmFsZW50LiBUaGlzIHdpbGwgcmVuZGVyIGluIGRpZmZlcmVudCBtYW5uZXJzXG4gICAgLy8gICAgb24gYm94IHZzLiBmbGV4IHZhbHVlcy5cbiAgICBpZiAnd3JhcCcgPT0gdmFsdWUgfHwgd3JhcC1yZXZlcnNlID09IHZhbHVlXG4gICAgICB2ZW5kb3IoJ2JveC1saW5lcycsIG11bHRpcGxlLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuICAgIGVsc2UgaWYgbm93cmFwID09IHZhbHVlXG4gICAgICB2ZW5kb3IoJ2JveC1saW5lcycsIHNpbmdsZSwgaWdub3JlOiBtcyBvZmZpY2lhbClcblxuZmxleC1kaXJlY3Rpb24oZGlyZWN0aW9uKVxuICAvLyBvYnNvbGV0ZVxuICAtZmxleC1vYnNvbGV0ZS1kaXJlY3Rpb24oZGlyZWN0aW9uKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1kaXJlY3Rpb24nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtcyBvZmZpY2lhbClcblxuZmxleC13cmFwKHZhbHVlKVxuICAvLyBvYnNvbGV0ZVxuICAtZmxleC1vYnNvbGV0ZS13cmFwKHZhbHVlKVxuXG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LXdyYXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtcyBvZmZpY2lhbClcblxuZmxleC1mbG93KClcbiAgLy8gb2Jzb2xldGVcbiAgLWZsZXgtb2Jzb2xldGUtZGlyZWN0aW9uKGFyZ3VtZW50c1swXSlcbiAgLWZsZXgtb2Jzb2xldGUtZGlyZWN0aW9uKGFyZ3VtZW50c1sxXSlcbiAgLWZsZXgtb2Jzb2xldGUtd3JhcChhcmd1bWVudHNbMF0pXG4gIC1mbGV4LW9ic29sZXRlLXdyYXAoYXJndW1lbnRzWzFdKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1mbG93JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbXMgb2ZmaWNpYWwpXG5cblxub3JkZXIoKVxuICAvLyBvYnNvbGV0ZVxuICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdib3gtb3JkaW5hbC1ncm91cCcsIGFyZ3VtZW50cywgaWdub3JlOiBtcyBvZmZpY2lhbClcblxuICAvLyBuZXdcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtb3JkZXInLCBhcmd1bWVudHMsIG9ubHk6IG1zKVxuICAgIHZlbmRvcignb3JkZXInLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuXG4vL1xuLy8gNy4gRmxleGliaWxpdHlcbi8vICAgIC0gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mbGV4Ym94LyNmbGV4aWJpbGl0eVxuLy9cbmZsZXgtZ3Jvdyhncm93dGgpXG4gIC8vIG9ic29sZXRlXG4gIGlmIGJveCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2JveC1mbGV4JywgZ3Jvd3RoKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1ncm93JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbmZsZXgtYmFzaXMoKVxuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1iYXNpcycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG5mbGV4LXNocmluaygpXG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LXNocmluaycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG5mbGV4KGdyb3d0aClcblxuICAvLyBvYnNvbGV0ZVxuICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgc2hyaW5rID0gMVxuXG4gICAgaWYgbm9uZSA9PSBncm93dGggfHwgaW5pdGlhbCA9PSBncm93dGhcbiAgICAgIC8vIFdlbGwga25vd24gdmFsdWVzXG4gICAgICBzaHJpbmsgPSAwIGlmIG5vbmUgPT0gZ3Jvd3RoXG4gICAgICBncm93dGggPSAwXG4gICAgZWxzZSBpZiBpcy13aWR0aChncm93dGgpID09IHRydWVcbiAgICAgIC8vIEJhc2lzIGlzIGRlZmluZWQgYXMgdGhlIGZpcnN0IHBhcmFtZXRlclxuICAgICAgZ3Jvd3RoID0gYXJndW1lbnRzWzFdIHx8IDBcbiAgICAgIHNocmluayA9IGFyZ3VtZW50c1syXSBpZiAzIDw9IGxlbmd0aChhcmd1bWVudHMpXG4gICAgZWxzZSBpZiBhcmd1bWVudHNbMV0gJiYgaXMtd2lkdGgoYXJndW1lbnRzWzFdKSA9PSBmYWxzZVxuICAgICAgLy8gR3Jvd3RoIGlzIGZpcnN0IGFuZCBzaHJpbmsgaXMgc2Vjb25kXG4gICAgICBzaHJpbmsgPSBhcmd1bWVudHNbMV1cblxuICAgIC8vIFNpbmNlIHdlIGNhbid0IG1ha2UgdGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gZ3Jvd2luZyBhbmQgc2hyaW5raW5nIGluIHRoZSBib3ggbW9kZWwsIHRha2VcbiAgICAvLyB0aGUgb25lIHRoYXQgcHJvdmlkZXMgdGhlIG1vc3QgZmxleGliaWxpdHkuXG4gICAgdmVuZG9yKCdib3gtZmxleCcsIG1heChncm93dGgsIHNocmluayksIGlnbm9yZTogbXMpXG5cbiAgLy8gbmV3XG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbXMgb2ZmaWNpYWwpXG5cblxuLy8gY29udmVydHMgdGhlIGp1c3RpZmljYXRpb24gYWxpZ25tZW50XG4tY29udmVydC1qdXN0aWZ5KGFsaWduKVxuICBpZiBmbGV4LXN0YXJ0ID09IGFsaWduXG4gICAgcmV0dXJuIHN0YXJ0XG4gIGVsc2UgaWYgZmxleC1lbmQgPT0gYWxpZ25cbiAgICByZXR1cm4gZW5kXG4gIGVsc2UgaWYgc3BhY2UtYXJvdW5kID09IGFsaWduXG4gICAgcmV0dXJuIGRpc3RyaWJ1dGVcbiAgZWxzZSBpZiBzcGFjZS1iZXR3ZWVuID09IGFsaWduXG4gICAgcmV0dXJuIGp1c3RpZnlcbiAgZWxzZVxuICAgIHJldHVybiBhbGlnblxuXG4vL1xuLy8gOC4gQWxpZ25tZW50XG4vLyAgICAtIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtZmxleGJveC8jYWxpZ25tZW50XG4vL1xuanVzdGlmeS1jb250ZW50KGFsaWduKVxuICAvLyBvYnNvbGV0ZVxuICBpZiBib3ggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdib3gtcGFjaycsIC1jb252ZXJ0LWp1c3RpZnkoYWxpZ24pLCBpZ25vcmU6IG1zIG9mZmljaWFsKVxuXG4gIC8vIG5ld1xuICBpZiBmbGV4IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignZmxleC1wYWNrJywgLWNvbnZlcnQtanVzdGlmeShhbGlnbiksIG9ubHk6IG1zKVxuICAgIHZlbmRvcignanVzdGlmeS1jb250ZW50JywgYWxpZ24sIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcblxuYWxpZ24tY29udGVudChhbGlnbilcbiAgLy8gV0FSTjogT2Jzb2xldGUgc3BlYyBkb2VzIG5vdCBhbGxvdyBmb3IgYWRqdXN0bWVudCBoZXJlXG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdmbGV4LWxpbmUtcGFjaycsIC1jb252ZXJ0LWp1c3RpZnkoYWxpZ24pLCBvbmx5OiBtcylcbiAgICB2ZW5kb3IoJ2FsaWduLWNvbnRlbnQnLCBhbGlnbiwgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG4vLyBjb252ZXJ0cyBhbGlnbm1lbnQgZnJvbSAnZmxleCcgdG8gbm9ybWFsIHZhbHVlXG4tY29udmVydC1hbGlnbm1lbnQoYWxpZ24pXG4gIGlmIGZsZXgtc3RhcnQgPT0gYWxpZ25cbiAgICByZXR1cm4gc3RhcnRcbiAgZWxzZSBpZiBmbGV4LWVuZCA9PSBhbGlnblxuICAgIHJldHVybiBlbmRcbiAgZWxzZVxuICAgIHJldHVybiBhbGlnblxuXG5hbGlnbi1pdGVtcyhhbGlnbilcbiAgLy8gb2Jzb2xldGVcbiAgaWYgYm94IGluIGZsZXgtdmVyc2lvblxuICAgIHZlbmRvcignYm94LWFsaWduJywgLWNvbnZlcnQtYWxpZ25tZW50KGFsaWduKSwgaWdub3JlOiBtcyBvZmZpY2lhbClcblxuICAvLyBuZXdcbiAgaWYgZmxleCBpbiBmbGV4LXZlcnNpb25cbiAgICB2ZW5kb3IoJ2ZsZXgtYWxpZ24nLCAtY29udmVydC1hbGlnbm1lbnQoYWxpZ24pLCBvbmx5OiBtcylcbiAgICB2ZW5kb3IoJ2FsaWduLWl0ZW1zJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbmFsaWduLXNlbGYoYWxpZ24pXG4gIC8vIFdBUk46IE9ic29sZXRlIHNwZWMgZG9lcyBub3QgYWxsb3cgZm9yIG92ZXJyaWRpbmcgYWxpZ25tZW50IG9uIGluZGl2aWR1YWwgaXRlbXMuXG4gIGlmIGZsZXggaW4gZmxleC12ZXJzaW9uXG4gICAgdmVuZG9yKCdhbGlnbi1zZWxmJywgYWxpZ24sIG9ubHk6IHdlYmtpdCBvZmZpY2lhbClcbiAgICB2ZW5kb3IoJ2ZsZXgtaXRlbS1hbGlnbicsIC1jb252ZXJ0LWFsaWdubWVudChhbGlnbiksIG9ubHk6IG1zKVxuIiwiLy8gQmFzZWQgb24gW0VyaWMgTWV5ZXIncyByZXNldF0oaHR0cDovL21leWVyd2ViLmNvbS9lcmljL3Rob3VnaHRzLzIwMDcvMDUvMDEvcmVzZXQtcmVsb2FkZWQvKVxuXG5nbG9iYWwtcmVzZXQoKVxuICBodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbiAgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuICBkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG4gIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsXG4gIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG4gIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxuICB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZFxuICAgIHJlc2V0LWJveC1tb2RlbCgpXG4gICAgcmVzZXQtZm9udCgpXG4gIGJvZHlcbiAgICByZXNldC1ib2R5KClcbiAgb2wsIHVsXG4gICAgbGlzdC1zdHlsZTogbm9uZVxuICB0YWJsZVxuICAgIHJlc2V0LXRhYmxlKClcbiAgY2FwdGlvbiwgdGgsIHRkXG4gICAgcmVzZXQtdGFibGUtY2VsbCgpXG4gIGEgaW1nXG4gICAgYm9yZGVyOiBub25lXG5cbm5lc3RlZC1yZXNldCgpXG4gIGRpdiwgc3Bhbiwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsXG4gIHByZSwgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgY29kZSwgZGVsLCBkZm4sIGVtLCBpbWcsXG4gIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCxcbiAgbGVnZW5kLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0clxuICAgIHJlc2V0LWJveC1tb2RlbCgpXG4gICAgcmVzZXQtZm9udCgpXG4gIHRhYmxlXG4gICAgcmVzZXQtdGFibGUoKVxuICBjYXB0aW9uLCB0aCwgdGRcbiAgICByZXNldC10YWJsZS1jZWxsKClcbiAgYSBpbWdcbiAgICBib3JkZXI6IG5vbmVcblxucmVzZXQtYm94LW1vZGVsKClcbiAgbWFyZ2luOiAwXG4gIHBhZGRpbmc6IDBcbiAgYm9yZGVyOiAwXG4gIG91dGxpbmU6IDBcblxucmVzZXQtZm9udCgpXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0XG4gIGZvbnQtc3R5bGU6IGluaGVyaXRcbiAgZm9udC1mYW1pbHk6IGluaGVyaXRcbiAgZm9udC1zaXplOiAxMDAlXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZVxuXG5yZXNldC1ib2R5KClcbiAgbGluZS1oZWlnaHQ6IDFcbiAgY29sb3I6IGJsYWNrXG4gIGJhY2tncm91bmQ6IHdoaXRlXG5cbnJlc2V0LXRhYmxlKClcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZVxuICBib3JkZXItc3BhY2luZzogMFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXG5cbnJlc2V0LXRhYmxlLWNlbGwoKVxuICB0ZXh0LWFsaWduOiBsZWZ0XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWxcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZVxuXG5yZXNldC1odG1sNSgpXG4gIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGZpZ2NhcHRpb24sXG4gIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LFxuICBzZWN0aW9uLCBzdW1tYXJ5LCBtYWluXG4gICAgcmVzZXQtYm94LW1vZGVsKClcbiAgICBkaXNwbGF5OiBibG9ja1xuICBhdWRpbywgY2FudmFzLCB2aWRlb1xuICAgIGRpc3BsYXkgaW5saW5lLWJsb2NrXG4gICAgKmRpc3BsYXkgaW5saW5lXG4gICAgKnpvb20gMVxuICBhdWRpbzpub3QoW2NvbnRyb2xzXSksW2hpZGRlbl1cbiAgICBkaXNwbGF5IG5vbmVcbiIsIi8qXG4gKiBib3JkZXI6IDxjb2xvcj5cbiAqIGJvcmRlcjogLi4uXG4gKi9cblxuYm9yZGVyKGNvbG9yLCBhcmdzLi4uKVxuICBpZiBjb2xvciBpcyBhICdjb2xvcidcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvciBhcmdzXG4gIGVsc2VcbiAgICBib3JkZXI6IGFyZ3VtZW50c1xuIiwidXNlKCcuLi9ub2Rlcy92ZW5kb3ItaGVscGVycy5qcycpXG5AaW1wb3J0ICdjb25maWcnXG5cbi8qXG4gKiBBbGlhcyBcIm5vd3JhcFwiIGFzIFwibm8td3JhcFwiLlxuICovXG5cbm5vLXdyYXAgPSB1bnF1b3RlKCdub3dyYXAnKVxuXG4vKlxuICogSGVscGVyIHRvIGZpbmQgb3V0IGlmIGEgZ2l2ZW4gdmFsdWUgaXMgYSB3aWR0aFxuICovXG5cbmlzLXdpZHRoKHZhbClcbiAgaWYgYXV0byA9PSB2YWxcbiAgICByZXR1cm4gdHJ1ZVxuICBlbHNlIGlmIHZhbCAmJiAndW5pdCcgPT0gdHlwZSh2YWwpXG4gICAgLy8gU3R5bHVzIGRvZXMgbm90IHNob3J0IGNpcmN1aXQgc28gd2UgbmVlZCB0byBwZXJmb3JtIHRoaXMgYXMgYSBkaXN0aW5jdFxuICAgIC8vIG9wZXJhdGlvbiB0byBwcmV2ZW50IGVycm9yc1xuICAgIHJldHVybiAnJyAhPSB1bml0KHZhbClcbiAgcmV0dXJuIGZhbHNlXG5cbi8qXG4gKiBWZW5kb3Igc3VwcG9ydCBmb3IgdGhlIGdpdmVuIHByb3AgLyBhcmd1bWVudHMsIG9wdGlvbmFsbHkgc3BlY2lmeWluZyB0aGVcbiAqIG9ubHkgcHJlZml4ZXMgdG8gdXRpbGl6ZSwgb3IgdGhvc2Ugd2hpY2ggc2hvdWxkIGJlIGlnbm9yZWQuXG4gKi9cblxudmVuZG9yKHByb3AsIGFyZ3MsIG9ubHkgPSBudWxsLCBpZ25vcmUgPSBudWxsLCB2ZW5kb3ItcHJvcGVydHkgPSB0cnVlKVxuICBuZWVkX25vcm1hbGl6ZSA9ICF2ZW5kb3ItcHJvcGVydHkgb3IgcHJvcCBpbiAoJ3RyYW5zaXRpb24nICd0cmFuc2l0aW9uLXByb3BlcnR5JyAnYm9yZGVyLWltYWdlJyAnYm9yZGVyLWltYWdlLXNsaWNlJylcbiAgZm9yIHByZWZpeCBpbiB2ZW5kb3ItcHJlZml4ZXNcbiAgICB1bmxlc3MgKG9ubHkgYW5kICEocHJlZml4IGluIG9ubHkpKSBvciAoaWdub3JlIGFuZCBwcmVmaXggaW4gaWdub3JlKVxuICAgICAgaWYgb2ZmaWNpYWwgPT0gcHJlZml4XG4gICAgICAgIGlmIG5lZWRfbm9ybWFsaXplXG4gICAgICAgICAge3Byb3B9OiBub3JtYWxpemUocHJvcCwoJyVzJyAlIGFyZ3MpKVxuICAgICAgICBlbHNlXG4gICAgICAgICAge3Byb3B9OiBhcmdzXG4gICAgICBlbHNlXG4gICAgICAgIG5ld3Byb3AgPSBwcm9wXG4gICAgICAgIG5ld3Byb3AgPSAnLScgKyBwcmVmaXggKyAnLScgKyBwcm9wIGlmIHZlbmRvci1wcm9wZXJ0eVxuXG4gICAgICAgIGlmIG5lZWRfbm9ybWFsaXplXG4gICAgICAgICAge25ld3Byb3B9OiBub3JtYWxpemUocHJvcCwoJyVzJyAlIGFyZ3MpLHByZWZpeClcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHtuZXdwcm9wfTogYXJnc1xuLypcbiAqIFZlbmRvcml6ZSB0aGUgZ2l2ZW4gdmFsdWUuXG4gKi9cblxudmVuZG9yLXZhbHVlKGFyZywgb25seSA9IG51bGwsIGlnbm9yZSA9IG51bGwpXG4gIHByb3AgPSBjdXJyZW50LXByb3BlcnR5WzBdXG4gIGZvciBwcmVmaXggaW4gdmVuZG9yLXByZWZpeGVzXG4gICAgdW5sZXNzIChvbmx5IGFuZCAhKHByZWZpeCBpbiBvbmx5KSkgb3IgKGlnbm9yZSBhbmQgcHJlZml4IGluIGlnbm9yZSkgb3Igb2ZmaWNpYWwgPT0gcHJlZml4XG4gICAgICBhZGQtcHJvcGVydHkocHJvcCwgJy0lcy0lcycgJSAocHJlZml4IGFyZykpXG4gIGFyZ1xuXG4vKlxuICogVmVuZG9yIFwiYm94LXNoYWRvd1wiIHN1cHBvcnQuXG4gKi9cblxuYm94LXNoYWRvdygpXG4gIHZlbmRvcignYm94LXNoYWRvdycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwidXNlci1zZWxlY3RcIiBzdXBwb3J0LlxuICovXG5cbnVzZXItc2VsZWN0KClcbiAgdmVuZG9yKCd1c2VyLXNlbGVjdCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1jb3VudFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLWNvdW50KClcbiAgdmVuZG9yKCdjb2x1bW4tY291bnQnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tZ2FwXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tZ2FwKClcbiAgdmVuZG9yKCdjb2x1bW4tZ2FwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXJ1bGVcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1ydWxlKClcbiAgdmVuZG9yKCdjb2x1bW4tcnVsZScsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi1ydWxlLWNvbG9yXCIgc3VwcG9ydC5cbiAqL1xuXG5jb2x1bW4tcnVsZS1jb2xvcigpXG4gIHZlbmRvcignY29sdW1uLXJ1bGUtY29sb3InLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tcnVsZS13aWR0aFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXJ1bGUtd2lkdGgoKVxuICB2ZW5kb3IoJ2NvbHVtbi1ydWxlLXdpZHRoJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiY29sdW1uLXJ1bGUtc3R5bGVcIiBzdXBwb3J0LlxuICovXG5cbmNvbHVtbi1ydWxlLXN0eWxlKClcbiAgdmVuZG9yKCdjb2x1bW4tcnVsZS1zdHlsZScsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImNvbHVtbi13aWR0aFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXdpZHRoKClcbiAgdmVuZG9yKCdjb2x1bW4td2lkdGgnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tc3BhblwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLXNwYW4oKVxuICB2ZW5kb3IoJ2NvbHVtbi1zcGFuJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJjb2x1bW4tZmlsbFwiIHN1cHBvcnQuXG4gKi9cblxuY29sdW1uLWZpbGwoKVxuICB2ZW5kb3IoJ2NvbHVtbi1maWxsJywgYXJndW1lbnRzLCBvbmx5OiBtb3opXG5cbi8qXG4gKiBMZWdhY3kgc3ludGF4IHN1cHBvcnQgZm9yIGJhY2tncm91bmQtY2xpcCBhbmQgYmFja2dyb3VuZC1vcmlnaW5cbiAqL1xuXG5sZWdhY3ktYmctdmFsdWVzKHByb3BlcnR5LCBhcmdzKVxuICBsZWdhY3lfYXJncyA9ICgpXG4gIGltcG9ydGFuY2UgPSB1bnF1b3RlKCcnKVxuICBmb3Igc3ViYXJncyBpbiBhcmdzXG4gICAgZm9yIGFyZyBpbiBzdWJhcmdzXG4gICAgICBpZiBhcmcgaW4gKGJvcmRlci1ib3ggcGFkZGluZy1ib3ggY29udGVudC1ib3gpXG4gICAgICAgIGFyZyA9IHVucXVvdGUoJ2JvcmRlcicpICBpZiBhcmcgPT0gYm9yZGVyLWJveFxuICAgICAgICBhcmcgPSB1bnF1b3RlKCdwYWRkaW5nJykgaWYgYXJnID09IHBhZGRpbmctYm94XG4gICAgICAgIGFyZyA9IHVucXVvdGUoJ2NvbnRlbnQnKSBpZiBhcmcgPT0gY29udGVudC1ib3hcbiAgICAgIGlmIGFyZyAhPSAnIWltcG9ydGFudCdcbiAgICAgICAgcHVzaChsZWdhY3lfYXJncyxhcmcpXG4gICAgICBlbHNlXG4gICAgICAgIGltcG9ydGFuY2UgPSAhaW1wb3J0YW50XG4gIHZlbmRvcihwcm9wZXJ0eSwgdW5xdW90ZShqb2luKCcsICcsbGVnYWN5X2FyZ3MpKSBpbXBvcnRhbmNlLCBvbmx5OiBtb3ogd2Via2l0KVxuXG4vKlxuICogVmVuZG9yIFwiYmFja2dyb3VuZC1jbGlwXCIgc3VwcG9ydC5cbiAqL1xuXG5iYWNrZ3JvdW5kLWNsaXAoKVxuICBpZiBhcmd1bWVudHNbMF0gPT0gdGV4dFxuICAgIHZlbmRvcignYmFja2dyb3VuZC1jbGlwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQpXG4gIGVsc2VcbiAgICBsZWdhY3ktYmctdmFsdWVzKCdiYWNrZ3JvdW5kLWNsaXAnLCBhcmd1bWVudHMpXG4gICAgYmFja2dyb3VuZC1jbGlwOiBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcImJhY2tncm91bmQtb3JpZ2luXCIgc3VwcG9ydC5cbiAqL1xuXG5iYWNrZ3JvdW5kLW9yaWdpbigpXG4gIGxlZ2FjeS1iZy12YWx1ZXMoJ2JhY2tncm91bmQtb3JpZ2luJywgYXJndW1lbnRzKVxuICBiYWNrZ3JvdW5kLW9yaWdpbjogYXJndW1lbnRzXG5cbi8qXG4gKiBWZW5kb3IgXCJiYWNrZ3JvdW5kLXNpemVcIiBzdXBwb3J0LlxuICovXG5cbmJhY2tncm91bmQtc2l6ZSgpXG4gIHZlbmRvcignYmFja2dyb3VuZC1zaXplJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNmb3JtXCIgc3VwcG9ydC5cbiAqL1xuXG50cmFuc2Zvcm0oKVxuICB2ZW5kb3IoJ3RyYW5zZm9ybScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zZm9ybS1vcmlnaW5cIiBzdXBwb3J0LlxuICovXG50cmFuc2Zvcm0tb3JpZ2luKClcbiAgICB2ZW5kb3IoJ3RyYW5zZm9ybS1vcmlnaW4nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2Zvcm0tc3R5bGVcIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zZm9ybS1zdHlsZSgpXG4gIHZlbmRvcigndHJhbnNmb3JtLXN0eWxlJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYm9yZGVyLWltYWdlXCIgc3VwcG9ydC5cbiAqL1xuXG5ib3JkZXItaW1hZ2UoKVxuICB2ZW5kb3IoJ2JvcmRlci1pbWFnZScsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvblwiIHN1cHBvcnQuXG4gKi9cblxudHJhbnNpdGlvbigpXG4gIHZlbmRvcigndHJhbnNpdGlvbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zaXRpb24tcHJvcGVydHlcIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zaXRpb24tcHJvcGVydHkoKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tcHJvcGVydHknLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0cmFuc2l0aW9uLWR1cmF0aW9uXCIgc3VwcG9ydC5cbiAqL1xuXG50cmFuc2l0aW9uLWR1cmF0aW9uKClcbiAgdmVuZG9yKCd0cmFuc2l0aW9uLWR1cmF0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwidHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb25cIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKClcbiAgdmVuZG9yKCd0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcInRyYW5zaXRpb24tZGVsYXlcIiBzdXBwb3J0LlxuICovXG5cbnRyYW5zaXRpb24tZGVsYXkoKVxuICB2ZW5kb3IoJ3RyYW5zaXRpb24tZGVsYXknLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJiYWNrZmFjZS12aXNpYmlsaXR5XCIgc3VwcG9ydC5cbiAqL1xuXG5iYWNrZmFjZS12aXNpYmlsaXR5KClcbiAgdmVuZG9yKCdiYWNrZmFjZS12aXNpYmlsaXR5JywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwicGVyc3BlY3RpdmVcIiBzdXBwb3J0LlxuICovXG5cbnBlcnNwZWN0aXZlKClcbiAgaWYgbWl4aW5cbiAgICB2ZW5kb3IoJ3BlcnNwZWN0aXZlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuICBlbHNlXG4gICAgJ3BlcnNwZWN0aXZlKCVzKScgJSBhcmd1bWVudHNcblxuLypcbiAqIFZlbmRvciBcInBlcnNwZWN0aXZlLW9yaWdpblwiIHN1cHBvcnQuXG4gKi9cblxucGVyc3BlY3RpdmUtb3JpZ2luKClcbiAgdmVuZG9yKCdwZXJzcGVjdGl2ZS1vcmlnaW4nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBPcGFjaXR5IHdpdGggY29uZGl0aW9uYWwgSUUgc3VwcG9ydC5cbiAqL1xuXG5vcGFjaXR5KG4sIGFyZ3MuLi4pXG4gIG9wYWNpdHk6IG4gYXJnc1xuICBpZiBzdXBwb3J0LWZvci1pZVxuICAgIGlmIG4gPT0gaW5oZXJpdCBvciBuID09IGluaXRpYWxcbiAgICAgIC1tcy1maWx0ZXI6IG4gYXJnc1xuICAgICAgZmlsdGVyOiBuIGFyZ3NcbiAgICBlbHNlXG4gICAgICB2YWwgPSByb3VuZChuICogMTAwKVxuICAgICAgaWYgdmFsID09IDEwMFxuICAgICAgICAtbXMtZmlsdGVyOiBub25lIGFyZ3NcbiAgICAgICAgZmlsdGVyOiBub25lIGFyZ3NcbiAgICAgIGVsc2VcbiAgICAgICAgLW1zLWZpbHRlcjogJ1wicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9JXMpXCInICUgdmFsIGFyZ3NcbiAgICAgICAgZmlsdGVyOiAnYWxwaGEob3BhY2l0eT0lcyknICUgdmFsIGFyZ3NcblxuLypcbiAqIFZlbmRvciBcInRleHQtc2l6ZS1hZGp1c3RcIlxuICovXG5cbnRleHQtc2l6ZS1hZGp1c3QoKVxuICB2ZW5kb3IoJ3RleHQtc2l6ZS1hZGp1c3QnLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBBbGlhcyB0aGUgXCJ3aGl0ZS1zcGFjZVwiIHByb3BlcnR5LlxuICovXG5cbndoaXRlc3BhY2UoKVxuICB3aGl0ZS1zcGFjZTogYXJndW1lbnRzXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtc2l6aW5nXCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtc2l6aW5nKClcbiAgdmVuZG9yKCdib3gtc2l6aW5nJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LW9yaWVudFwiIHN1cHBvcnQuXG4gKi9cblxuYm94LW9yaWVudCgpXG4gIHZlbmRvcignYm94LW9yaWVudCcsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImJveC1mbGV4LWdyb3VwXCIgc3VwcG9ydC5cbiAqL1xuXG5ib3gtZmxleC1ncm91cCgpXG4gIHZlbmRvcignYm94LWZsZXgtZ3JvdXAnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtb3JkaW5hbC1ncm91cFwiIHN1cHBvcnQuXG4gKi9cblxuYm94LW9yZGluYWwtZ3JvdXAoKVxuICB2ZW5kb3IoJ2JveC1vcmRpbmFsLWdyb3VwJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG5cbi8qXG4gKiBWZW5kb3IgXCJib3gtYWxpZ25cIiBzdXBwb3J0LlxuICovXG5cbmJveC1hbGlnbigpXG4gIHZlbmRvcignYm94LWFsaWduJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG1zIG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwiYm94LXBhY2tcIiBzdXBwb3J0LlxuICovXG5cbmJveC1wYWNrKClcbiAgdmVuZG9yKCdib3gtcGFjaycsIGFyZ3VtZW50cywgb25seTogd2Via2l0IG1veiBtcyBvZmZpY2lhbClcblxuLypcbiAqIFZlbmRvciBcImJveC1kaXJlY3Rpb25cIiBzdXBwb3J0LlxuICovXG5cbmJveC1kaXJlY3Rpb24oKVxuICB2ZW5kb3IoJ2JveC1kaXJlY3Rpb24nLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbigpXG4gIHZlbmRvcignYW5pbWF0aW9uJywgYXJndW1lbnRzKVxuXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tbmFtZVwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLW5hbWUoKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1uYW1lJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLWR1cmF0aW9uXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZHVyYXRpb24oKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1kdXJhdGlvbicsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi1kZWxheVwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLWRlbGF5KClcbiAgdmVuZG9yKCdhbmltYXRpb24tZGVsYXknLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tZGlyZWN0aW9uXCIgc3VwcG9ydC5cbiAqL1xuXG5hbmltYXRpb24tZGlyZWN0aW9uKClcbiAgdmVuZG9yKCdhbmltYXRpb24tZGlyZWN0aW9uJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudFwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgpXG4gIHZlbmRvcignYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCcsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb25cIiBzdXBwb3J0LlxuICovXG5cbmFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24nLCBhcmd1bWVudHMpXG5cbi8qXG4gKiBWZW5kb3IgXCJhbmltYXRpb24tcGxheS1zdGF0ZVwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLXBsYXktc3RhdGUoKVxuICB2ZW5kb3IoJ2FuaW1hdGlvbi1wbGF5LXN0YXRlJywgYXJndW1lbnRzKVxuXG4vKlxuICogVmVuZG9yIFwiYW5pbWF0aW9uLWZpbGwtbW9kZVwiIHN1cHBvcnQuXG4gKi9cblxuYW5pbWF0aW9uLWZpbGwtbW9kZSgpXG4gIHZlbmRvcignYW5pbWF0aW9uLWZpbGwtbW9kZScsIGFyZ3VtZW50cylcblxuLypcbiAqIFZlbmRvciBcImh5cGhlbnNcIiBzdXBwb3J0LlxuICovXG5cbmh5cGhlbnMoKVxuICB2ZW5kb3IoJ2h5cGhlbnMnLCBhcmd1bWVudHMsIG9ubHk6IHdlYmtpdCBtb3ogbXMgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJhcHBlYXJhbmNlXCIgc3VwcG9ydC5cbiAqL1xuXG5hcHBlYXJhbmNlKClcbiAgdmVuZG9yKCdhcHBlYXJhbmNlJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgbW96IG9mZmljaWFsKVxuXG4vKlxuICogVmVuZG9yIFwidGFiLXNpemVcIiBzdXBwb3J0LlxuICovXG5cbnRhYi1zaXplKClcbiAgdmVuZG9yKCd0YWItc2l6ZScsIGFyZ3VtZW50cywgb25seTogbW96IG8gb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJvdmVyZmxvdy1zY3JvbGxpbmdcIiBzdXBwb3J0LlxuICovXG5cbm92ZXJmbG93LXNjcm9sbGluZygpXG4gIHZlbmRvcignb3ZlcmZsb3ctc2Nyb2xsaW5nJywgYXJndW1lbnRzLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG5cbi8qXG4gKiBWZW5kb3IgXCJ0ZXh0LW92ZXJmbG93XCIgc3VwcG9ydCwgLCAtby0gZm9yIG9wZXJhIDkuKiAtIDEwLipcbiAqL1xuXG50ZXh0LW92ZXJmbG93KClcbiAgdmVuZG9yKCd0ZXh0LW92ZXJmbG93JywgYXJndW1lbnRzLCBvbmx5OiBvZmZpY2lhbCBvKVxuXG4vKlxuICogVmVuZG9yIFwidGV4dC1zaXplLWFkanVzdFwiIHN1cHBvcnQuXG4gKi9cbnRleHQtc2l6ZS1hZGp1c3QoKVxuICB2ZW5kb3IoJ3RleHQtc2l6ZS1hZGp1c3QnLCBhcmd1bWVudHMsIG9ubHk6IG9mZmljaWFsIHdlYmtpdCBtcylcblxuLypcbiAqIFZlbmRvciBcImZvbnQtc21vb3RoaW5nXCIgc3VwcG9ydCwgd2Via2l0IG9ubHkuXG4gKi9cbmZvbnQtc21vb3RoaW5nKClcbiAgdmVuZG9yKCdmb250LXNtb290aGluZycsIGFyZ3VtZW50cywgb25seTogd2Via2l0KVxuXG5cbi8qKlxuICogVmVuZG9yIGlucHV0LXBsYWNlaG9sZGVyL3BsYWNlaG9sZGVyIHN1cHBvcnQuXG4gKlxuICogRXhhbXBsZXM6XG4gKiAgICAvLyBEZWZhdWx0IHN5bnRheFxuICogICAgYm9keVxuICogICAgICBwbGFjZWhvbGRlcihjb2xvciAjMzMzLCBmb250LXdlaWdodCBub3JtYWwpXG4gKlxuICogICAgLy8gVGhlIGNvbW1hIGlzIGltcG9ydGFudFxuICogICAgLnBsYWNlaG9sZGVyLXJlZFxuICogICAgICBwbGFjZWhvbGRlcihjb2xvciByZWQsKVxuICpcbiAqICAgIC8vIFdlIGNhbiBwYXNzIGEgZnVuY3Rpb25cbiAqICAgIGdyZWVuLXBsYWNlaG9sZGVyKClcbiAqICAgICAgY29sb3IgZ3JlZW5cbiAqICAgIC5wbGFjZWhvbGRlci1ncmVlblxuICogICAgICBwbGFjZWhvbGRlcihncmVlbi1wbGFjZWhvbGRlcilcbiAqXG4gKiAgICAvLyBXZSBjYW4gcGFzcyBhIGhhc2hcbiAqICAgIHRleHRhcmVhXG4gKiAgICAgIHBsYWNlaG9sZGVyKChmb250LXN0eWxlIGl0YWxpYykgKGZvbnQtd2VpZ2h0IGJvbGQpIChwYWRkaW5nICc0cHggMTBweCcpKVxuICovXG5wbGFjZWhvbGRlcigpXG4gIGZvciB2IGluICc6LXdlYmtpdC1pbnB1dCcgJy1tb3onICc6LW1veicgJy1tcy1pbnB1dCdcbiAgICAmOnt2fS1wbGFjZWhvbGRlclxuICAgICAgZm9yIHBhaXIgaW4gYXJndW1lbnRzXG4gICAgICAgIGlmIHR5cGVvZihwYWlyKSA9PSAnZnVuY3Rpb24nXG4gICAgICAgICAgcGFpcigpXG4gICAgICAgIGVsc2UgaWYgcGFpciBpcyBub3QgbnVsbCAmJiBwYWlyWzBdIGlzIG5vdCBudWxsXG4gICAgICAgICAge3BhaXJbMF19OiB0eXBlKHBhaXJbMV0pID09ICdzdHJpbmcnID8gcyhwYWlyWzFdKSA6IHBhaXJbMV1cbmlucHV0LXBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXJcblxuLypcbiAqIFZlbmRvciBiYWNrZ3JvdW5kIHN1cHBvcnQgKGdyYWRpZW50cykuXG4gKi9cblxuYmFja2dyb3VuZCgpXG4gIGlmIG1hdGNoKCctZ3JhZGllbnRcXCgnLCAnJythcmd1bWVudHMpXG4gICAgdmVuZG9yKCdiYWNrZ3JvdW5kJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgYmFja2dyb3VuZCBhcmd1bWVudHNcblxuYmFja2dyb3VuZC1pbWFnZSgpXG4gIGlmIG1hdGNoKCctZ3JhZGllbnRcXCgnLCAnJythcmd1bWVudHMpXG4gICAgdmVuZG9yKCdiYWNrZ3JvdW5kLWltYWdlJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgYmFja2dyb3VuZC1pbWFnZSBhcmd1bWVudHNcblxuY3Vyc29yKClcbiAgaWYgbWF0Y2goJy1ncmFkaWVudFxcKCcsICcnK2FyZ3VtZW50cylcbiAgICB2ZW5kb3IoJ2N1cnNvcicsIGFyZ3VtZW50cywgdmVuZG9yLXByb3BlcnR5OiBmYWxzZSlcbiAgZWxzZVxuICAgIGN1cnNvciBhcmd1bWVudHNcblxubGlzdC1zdHlsZSgpXG4gIGlmIG1hdGNoKCctZ3JhZGllbnRcXCgnLCAnJythcmd1bWVudHMpXG4gICAgdmVuZG9yKCdsaXN0LXN0eWxlJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgbGlzdC1zdHlsZSBhcmd1bWVudHNcblxubGlzdC1zdHlsZS1pbWFnZSgpXG4gIGlmIG1hdGNoKCctZ3JhZGllbnRcXCgnLCAnJythcmd1bWVudHMpXG4gICAgdmVuZG9yKCdsaXN0LXN0eWxlLWltYWdlJywgYXJndW1lbnRzLCB2ZW5kb3ItcHJvcGVydHk6IGZhbHNlKVxuICBlbHNlXG4gICAgbGlzdC1zdHlsZS1pbWFnZSBhcmd1bWVudHNcbiIsIkBpbXBvcnQgXCJuaWJcIlxuQGltcG9ydCBcIl92YXJpYWJsZXNcIlxuQGltcG9ydCBcIl91dGlsL21peGluXCJcbkBpbXBvcnQgXCJfdXRpbC9ncmlkXCJcblxuZ2xvYmFsLXJlc2V0KClcblxuaW5wdXQsIGJ1dHRvblxuICBtYXJnaW46IDBcbiAgcGFkZGluZzogMFxuICAmOjotbW96LWZvY3VzLWlubmVyXG4gICAgYm9yZGVyOiAwXG4gICAgcGFkZGluZzogMFxuXG5AZm9udC1mYWNlXG4gIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZVxuICBmb250LXN0eWxlOiBub3JtYWxcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbFxuICBzcmM6IHVybChmb250LWljb24tcGF0aCArIFwiLmVvdD92PSNcIiArIGZvbnQtaWNvbi12ZXJzaW9uKVxuICBzcmM6IHVybChmb250LWljb24tcGF0aCArIFwiLmVvdD8jaWVmaXgmdj0jXCIgKyBmb250LWljb24tdmVyc2lvbikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgICAgdXJsKGZvbnQtaWNvbi1wYXRoICsgXCIud29mZj92PSNcIiArIGZvbnQtaWNvbi12ZXJzaW9uKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgICAgIHVybChmb250LWljb24tcGF0aCArIFwiLnR0Zj92PSNcIiArIGZvbnQtaWNvbi12ZXJzaW9uKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICAgICB1cmwoZm9udC1pY29uLXBhdGggKyBcIi5zdmcjZm9udGF3ZXNvbWVyZWd1bGFyP3Y9I1wiICsgZm9udC1pY29uLXZlcnNpb24pIGZvcm1hdChcInN2Z1wiKVxuXG5odG1sLCBib2R5LCAjY29udGFpbmVyXG4gIGhlaWdodDogMTAwJVxuXG5ib2R5XG4gIGJhY2tncm91bmQ6IGNvbG9yLWJhY2tncm91bmRcbiAgZm9udDogZm9udC1zaXplIGZvbnQtc2Fuc1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCVcbiAgb3ZlcmZsb3cteTogc2Nyb2xsXG5cbi5vdXRlclxuICBjbGVhcmZpeCgpXG4gIG1heC13aWR0aDogKGNvbHVtbi13aWR0aCArIGd1dHRlci13aWR0aCkgKiBjb2x1bW5zICsgZ3V0dGVyLXdpZHRoXG4gIG1hcmdpbjogMCBhdXRvXG4gIHBhZGRpbmc6IDAgZ3V0dGVyLXdpZHRoXG5cbi5pbm5lclxuICBjb2x1bW4oY29sdW1ucylcblxuLmxlZnQsIC5hbGlnbmxlZnRcbiAgZmxvYXQ6IGxlZnRcblxuLnJpZ2h0LCAuYWxpZ25yaWdodFxuICBmbG9hdDogcmlnaHRcblxuLmNsZWFyXG4gIGNsZWFyOiBib3RoXG5cbiNjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlXG5cbi5tb2JpbGUtbmF2LW9uXG4gIG92ZXJmbG93OiBoaWRkZW5cblxuI3dyYXBcbiAgaGVpZ2h0OiAxMDAlXG4gIHdpZHRoOiAxMDAlXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICB0b3A6IDBcbiAgbGVmdDogMFxuICB0cmFuc2l0aW9uOiAwLjJzIGVhc2Utb3V0XG4gIHotaW5kZXg6IDFcbiAgYmFja2dyb3VuZDogY29sb3ItYmFja2dyb3VuZFxuICAubW9iaWxlLW5hdi1vbiAmXG4gICAgbGVmdDogbW9iaWxlLW5hdi13aWR0aFxuXG5pZiBzaWRlYmFyIGFuZCBzaWRlYmFyIGlzbnQgYm90dG9tXG4gICNtYWluXG4gICAgQG1lZGlhIG1xLW5vcm1hbFxuICAgICAgY29sdW1uKG1haW4tY29sdW1uKVxuXG5pZiBzaWRlYmFyIGlzIGxlZnRcbiAgQG1lZGlhIG1xLW5vcm1hbFxuICAgICNtYWluXG4gICAgICBmbG9hdDogcmlnaHRcblxuQGltcG9ydCBcIl9leHRlbmRcIlxuQGltcG9ydCBcIl9wYXJ0aWFsL2hlYWRlclwiXG5AaW1wb3J0IFwiX3BhcnRpYWwvYXJ0aWNsZVwiXG5AaW1wb3J0IFwiX3BhcnRpYWwvY29tbWVudFwiXG5AaW1wb3J0IFwiX3BhcnRpYWwvYXJjaGl2ZVwiXG5AaW1wb3J0IFwiX3BhcnRpYWwvZm9vdGVyXCJcbkBpbXBvcnQgXCJfcGFydGlhbC9oaWdobGlnaHRcIlxuQGltcG9ydCBcIl9wYXJ0aWFsL21vYmlsZVwiXG5cbmlmIHNpZGViYXJcbiAgQGltcG9ydCBcIl9wYXJ0aWFsL3NpZGViYXJcIiIsIi8qXG4gKiBPdmVyZmxvdyB1dGlsaXR5LiBNYXBzIHRvIHJlZ3VsYXIgb3ZlcmZsb3csIGFuZCBhZGRzIGFuIGVsbGlwc2lzIHZhbHVlLlxuICpcbiAqIFN5bm9wc2lzOlxuICpcbiAqICAgb3ZlcmZsb3c6IDx0eXBlPlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICBvdmVyZmxvdzogYXV0b1xuICogICAgIG92ZXJmbG93OiBoaWRkZW5cbiAqICAgICBvdmVyZmxvdzogZWxsaXBzaXNcbiAqXG4gKi9cblxub3ZlcmZsb3coKVxuICBpZiBhcmd1bWVudHNbMF0gPT0gZWxsaXBzaXNcbiAgICBlbGxpcHNpcygpXG4gIGVsc2VcbiAgICBvdmVyZmxvdzogYXJndW1lbnRzXG4iLCIkYmxvY2stY2FwdGlvblxuICB0ZXh0LWRlY29yYXRpb246IG5vbmVcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZVxuICBsZXR0ZXItc3BhY2luZzogMnB4XG4gIGNvbG9yOiBjb2xvci1ncmV5XG4gIG1hcmdpbi1ib3R0b206IDFlbVxuICBtYXJnaW4tbGVmdDogNXB4XG4gIGxpbmUtaGVpZ2h0OiAxZW1cbiAgdGV4dC1zaGFkb3c6IDAgMXB4ICNmZmZcbiAgZm9udC13ZWlnaHQ6IGJvbGRcblxuJGJsb2NrXG4gIGJhY2tncm91bmQ6ICNmZmZcbiAgYm94LXNoYWRvdzogMXB4IDJweCAzcHggI2RkZFxuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1ib3JkZXJcbiAgYm9yZGVyLXJhZGl1czogMHB4XG5cbiRiYXNlLXN0eWxlXG4gIGgxXG4gICAgZm9udC1zaXplOiAyZW1cbiAgaDJcbiAgICBmb250LXNpemU6IDEuNWVtXG4gIGgzXG4gICAgZm9udC1zaXplOiAxLjNlbVxuICBoNFxuICAgIGZvbnQtc2l6ZTogMS4yZW1cbiAgaDVcbiAgICBmb250LXNpemU6IDFlbVxuICBoNlxuICAgIGZvbnQtc2l6ZTogMWVtXG4gICAgY29sb3I6IGNvbG9yLWdyZXlcbiAgaHJcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgY29sb3ItYm9yZGVyXG4gIHN0cm9uZ1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkXG4gIGVtLCBjaXRlXG4gICAgZm9udC1zdHlsZTogaXRhbGljXG4gIHN1cCwgc3ViXG4gICAgZm9udC1zaXplOiAwLjc1ZW1cbiAgICBsaW5lLWhlaWdodDogMFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZVxuICBzdXBcbiAgICB0b3A6IC0wLjVlbVxuICBzdWJcbiAgICBib3R0b206IC0wLjJlbVxuICBzbWFsbFxuICAgIGZvbnQtc2l6ZTogMC44NWVtXG4gIGFjcm9ueW0sIGFiYnJcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkXG4gIHVsLCBvbCwgZGxcbiAgICBtYXJnaW46IDAgMjBweFxuICAgIGxpbmUtaGVpZ2h0OiBsaW5lLWhlaWdodFxuICB1bCwgb2xcbiAgICB1bCwgb2xcbiAgICAgIG1hcmdpbi10b3A6IDBcbiAgICAgIG1hcmdpbi1ib3R0b206IDBcbiAgdWxcbiAgICBsaXN0LXN0eWxlOiBkaXNjXG4gIG9sXG4gICAgbGlzdC1zdHlsZTogZGVjaW1hbFxuICBkdFxuICAgIGZvbnQtd2VpZ2h0OiBib2xkIiwiI3NpZGViYXJcbiAgQG1lZGlhIG1xLW5vcm1hbFxuICAgIGNvbHVtbihzaWRlYmFyLWNvbHVtbilcblxuLndpZGdldC13cmFwXG4gIG1hcmdpbjogYmxvY2stbWFyZ2luIDBcblxuLndpZGdldC10aXRsZVxuICBAZXh0ZW5kICRibG9jay1jYXB0aW9uXG5cbi53aWRnZXRcbiAgY29sb3I6IGNvbG9yLXNpZGViYXItdGV4dFxuICAvLyB0ZXh0LXNoYWRvdzogMCAxcHggI2ZmZlxuICBiYWNrZ3JvdW5kOiBjb2xvci13aWRnZXQtYmFja2dyb3VuZFxuICAvLyBib3gtc2hhZG93OiAwIC0xcHggNHB4IGNvbG9yLXdpZGdldC1ib3JkZXIgaW5zZXRcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3Itd2lkZ2V0LWJvcmRlclxuICBwYWRkaW5nOiAxNXB4XG4gIGJvcmRlci1yYWRpdXM6IDBweFxuICBhXG4gICAgY29sb3I6IGNvbG9yLWxpbmtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcbiAgICAmOmhvdmVyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxuICB1bCwgb2wsIGRsXG4gICAgdWwsIG9sLCBkbFxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHhcbiAgICAgIGxpc3Qtc3R5bGU6IGRpc2MiLCIvKlxuICogSGVscGVyIGZvciBib3JkZXItcmFkaXVzKCkuXG4gKi9cblxuLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zLCBpbXBvcnRhbmNlKVxuICBpZiBsZW5ndGgocG9zKSA9PSAzXG4gICAgLy8gYm9yZGVyLXJhZGl1czogPHRvcCB8IGJvdHRvbT4gPGxlZnQgfCByaWdodD4gPG4+XG4gICAgeSA9IHBvc1swXVxuICAgIHggPSBwb3NbMV1cbiAgICAvLyBXZSBkb24ndCB1c2UgdmVuZG9yIGZvciBib2Rlci1yYWRpdXMgYW55bW9yZVxuICAgIC8vIHZlbmRvcignYm9yZGVyLXJhZGl1cy0lcyVzJyAlIHBvcywgcG9zWzJdLCBvbmx5OiB3ZWJraXQgb2ZmaWNpYWwpXG4gICAgeydib3JkZXItJXMtJXMtcmFkaXVzJyAlIHBvc306IHBvc1syXSBpbXBvcnRhbmNlXG4gIGVsc2UgaWYgcG9zWzBdIGluICh0b3AgYm90dG9tKVxuICAgIC8vIGJvcmRlci1yYWRpdXM6IDx0b3AgfCBib3R0b20+IDxuPlxuICAgIC1hcHBseS1ib3JkZXItcmFkaXVzKHBvc1swXSBsZWZ0IHBvc1sxXSwgaW1wb3J0YW5jZSlcbiAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3NbMF0gcmlnaHQgcG9zWzFdLCBpbXBvcnRhbmNlKVxuICBlbHNlIGlmIHBvc1swXSBpbiAobGVmdCByaWdodClcbiAgICAvLyBib3JkZXItcmFkaXVzOiA8bGVmdCB8IHJpZ2h0PiA8bj5cbiAgICB1bnNoaWZ0KHBvcywgdG9wKTtcbiAgICAtYXBwbHktYm9yZGVyLXJhZGl1cyhwb3MsIGltcG9ydGFuY2UpXG4gICAgcG9zWzBdID0gYm90dG9tXG4gICAgLWFwcGx5LWJvcmRlci1yYWRpdXMocG9zLCBpbXBvcnRhbmNlKVxuXG4vKlxuICogYm9yZGVyLXJhZGl1cyBzdXBwb3J0aW5nIGF1Z21lbnRlZCBiZWhhdmlvci5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICBib3JkZXItcmFkaXVzOiAycHggNXB4XG4gKiAgICBib3JkZXItcmFkaXVzOiB0b3AgNXB4IGJvdHRvbSAxMHB4XG4gKiAgICBib3JkZXItcmFkaXVzOiBsZWZ0IDVweFxuICogICAgYm9yZGVyLXJhZGl1czogdG9wIGxlZnQgNXB4XG4gKiAgICBib3JkZXItcmFkaXVzOiB0b3AgbGVmdCAxMHB4IGJvdHRvbSByaWdodCA1cHhcbiAqICAgIGJvcmRlci1yYWRpdXM6IHRvcCBsZWZ0IDEwcHgsIGJvdHRvbSByaWdodCA1cHhcbiAqXG4gKi9cblxuYm9yZGVyLXJhZGl1cygpXG4gIHBvcyA9ICgpXG4gIGF1Z21lbnRlZCA9IGZhbHNlXG4gIGltcG9ydGFuY2UgPSBhcmd1bWVudHNbbGVuZ3RoKGFyZ3VtZW50cykgLSAxXSA9PSAhaW1wb3J0YW50ID8gIWltcG9ydGFudCA6IHVucXVvdGUoJycpXG5cbiAgZm9yIGFyZ3MgaW4gYXJndW1lbnRzXG4gICAgZm9yIGFyZyBpbiBhcmdzXG4gICAgICBpZiBhcmcgaXMgYSAnaWRlbnQnXG4gICAgICAgIGFwcGVuZChwb3MsIGFyZylcbiAgICAgICAgYXVnbWVudGVkID0gdHJ1ZVxuICAgICAgZWxzZVxuICAgICAgICBhcHBlbmQocG9zLCBhcmcpXG4gICAgICAgIGlmIGF1Z21lbnRlZFxuICAgICAgICAgIC1hcHBseS1ib3JkZXItcmFkaXVzKHBvcywgaW1wb3J0YW5jZSlcbiAgICAgICAgICBwb3MgPSAoKVxuICBib3JkZXItcmFkaXVzIHBvcyB1bmxlc3MgYXVnbWVudGVkXG4iLCIjaGVhZGVyXG4gIGhlaWdodDogYmFubmVyLWhlaWdodFxuICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yLWJvcmRlclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgIzIwMjM0MFxuXG4jaGVhZGVyLW91dGVyXG4gIGhlaWdodDogMTAwJVxuICBwb3NpdGlvbjogcmVsYXRpdmVcblxuI2hlYWRlci1pbm5lclxuICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgb3ZlcmZsb3c6IGhpZGRlblxuXG4jaGVhZGVyLXRpdGxlXG4gIHRleHQtYWxpZ246IGxlZnRcbiAgaGVpZ2h0OiBsb2dvLXNpemVcbiAgcG9zaXRpb246IGFic29sdXRlXG4gIHRvcDogNTAlXG4gIGxlZnQ6IGFydGljbGUtcGFkZGluZ1xuICBtYXJnaW4tdG9wOiBsb2dvLXNpemUgKiAtMC41IC0gM1xuXG4kbG9nby10ZXh0XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZVxuICBjb2xvcjogI2ZmZlxuICBmb250LXdlaWdodDogMzAwXG4gIHRleHQtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMpXG5cbiNsb2dvXG4gIEBleHRlbmQgJGxvZ28tdGV4dFxuICBmb250LXNpemU6IGxvZ28tc2l6ZVxuICBsaW5lLWhlaWdodDogbG9nby1zaXplXG4gIGxldHRlci1zcGFjaW5nOiAycHhcblxuI21haW4tbmF2XG4gIGZsb2F0OiBsZWZ0XG4gIG1hcmdpbi1sZWZ0OiAtMTVweFxuXG4kbmF2LWxpbmtcbiAgZmxvYXQ6IGxlZnRcbiAgY29sb3I6ICNmZmZcbiAgb3BhY2l0eTogMC42XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZVxuICB0ZXh0LXNoYWRvdzogMCAxcHggcmdiYSgwLCAwLCAwLCAwLjIpXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yc1xuICBkaXNwbGF5OiBibG9ja1xuICBwYWRkaW5nOiAxNXB4IDE1cHhcbiAgJjpob3ZlclxuICAgIG9wYWNpdHk6IDFcblxuLm5hdi1pY29uXG4gIEBleHRlbmQgJG5hdi1saW5rXG4gIGZvbnQtZmFtaWx5OiBmb250LWljb25cbiAgdGV4dC1hbGlnbjogY2VudGVyXG4gIGZvbnQtc2l6ZTogZm9udC1zaXplXG4gIHdpZHRoOiBmb250LXNpemVcbiAgaGVpZ2h0OiBmb250LXNpemVcbiAgcGFkZGluZzogMTlweCAxNXB4XG4gIHBvc2l0aW9uOiByZWxhdGl2ZVxuICBjdXJzb3I6IHBvaW50ZXJcblxuLm1haW4tbmF2LWxpbmtcbiAgQGV4dGVuZCAkbmF2LWxpbmtcbiAgZm9udC13ZWlnaHQ6IDMwMFxuICBsZXR0ZXItc3BhY2luZzogMXB4XG4gIEBtZWRpYSBtcS1tb2JpbGVcbiAgICBkaXNwbGF5OiBub25lXG5cbiNtYWluLW5hdi10b2dnbGVcbiAgZGlzcGxheTogbm9uZVxuICAmOmJlZm9yZVxuICAgIGNvbnRlbnQ6IFwiXFxmMGM5XCJcbiAgQG1lZGlhIG1xLW1vYmlsZVxuICAgIGRpc3BsYXk6IGJsb2NrXG5cbiNzdWItbmF2XG4gIGZsb2F0OiByaWdodFxuICBtYXJnaW4tcmlnaHQ6IC0xNXB4XG5cbiNuYXYtcnNzLWxpbmtcbiAgJjpiZWZvcmVcbiAgICBjb250ZW50OiBcIlxcZjA5ZVwiXG5cbiNuYXYtc2VhcmNoLWJ0blxuICAmOmJlZm9yZVxuICAgIGNvbnRlbnQ6IFwiXFxmMDAyXCJcblxuI3NlYXJjaC1mb3JtLXdyYXBcbiAgcG9zaXRpb246IGFic29sdXRlXG4gIHRvcDogMTFweFxuICB3aWR0aDogMjAwcHhcbiAgaGVpZ2h0OiAzMHB4XG4gIHJpZ2h0OiAtMjAwcHhcbiAgb3BhY2l0eTogMFxuICB0cmFuc2l0aW9uOiAwLjJzIGVhc2Utb3V0XG4gICYub25cbiAgICBvcGFjaXR5OiAxXG4gICAgcmlnaHQ6IDBcbiAgQG1lZGlhIG1xLW1vYmlsZVxuICAgIHdpZHRoOiAxMDAlXG4gICAgcmlnaHQ6IC0xMDAlXG5cbi5zZWFyY2gtZm9ybVxuICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgdG9wOiAwXG4gIGxlZnQ6IDBcbiAgcmlnaHQ6IDBcbiAgYmFja2dyb3VuZDogI2ZmZlxuICBwYWRkaW5nOiA1cHggMTVweFxuICBib3JkZXItcmFkaXVzOiAxNXB4XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4zKVxuXG4uc2VhcmNoLWZvcm0taW5wdXRcbiAgYm9yZGVyOiBub25lXG4gIGJhY2tncm91bmQ6IG5vbmVcbiAgY29sb3I6IGNvbG9yLWRlZmF1bHRcbiAgd2lkdGg6IDEwMCVcbiAgZm9udDogMTNweCBmb250LXNhbnNcbiAgb3V0bGluZTogbm9uZVxuICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb25cbiAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvblxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZVxuXG4uc2VhcmNoLWZvcm0tc3VibWl0XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICB0b3A6IDUwJVxuICByaWdodDogMTBweFxuICBtYXJnaW4tdG9wOiAtN3B4XG4gIGZvbnQ6IDEzcHggZm9udC1pY29uXG4gIGJvcmRlcjogbm9uZVxuICBiYWNrZ3JvdW5kOiBub25lXG4gIGNvbG9yOiAjYmJiXG4gIGN1cnNvcjogcG9pbnRlclxuICAmOmhvdmVyLCAmOmZvY3VzXG4gICAgY29sb3I6ICM3NzciLCIuYXJ0aWNsZVxuICBtYXJnaW46IGJsb2NrLW1hcmdpbiAwXG5cbi5hcnRpY2xlLWlubmVyXG4gIEBleHRlbmQgJGJsb2NrXG4gIG92ZXJmbG93OiBoaWRkZW5cblxuLmFydGljbGUtbWV0YVxuICBjbGVhcmZpeCgpXG5cbi5hcnRpY2xlLWRhdGVcbiAgQGV4dGVuZCAkYmxvY2stY2FwdGlvblxuICBmbG9hdDogbGVmdFxuXG4uYXJ0aWNsZS1jYXRlZ29yeVxuICBmbG9hdDogbGVmdFxuICBsaW5lLWhlaWdodDogMWVtXG4gIGNvbG9yOiAjY2NjXG4gIHRleHQtc2hhZG93OiAwIDFweCAjZmZmXG4gIG1hcmdpbi1sZWZ0OiA4cHhcbiAgJjpiZWZvcmVcbiAgICBjb250ZW50OiBcIlxcMjAyMlwiXG5cbi5hcnRpY2xlLWNhdGVnb3J5LWxpbmtcbiAgQGV4dGVuZCAkYmxvY2stY2FwdGlvblxuICBtYXJnaW46IDAgMTJweCAxZW1cblxuLmFydGljbGUtaGVhZGVyXG4gIHBhZGRpbmc6IGFydGljbGUtcGFkZGluZyBhcnRpY2xlLXBhZGRpbmcgMFxuXG4uYXJ0aWNsZS10aXRsZVxuICB0ZXh0LWRlY29yYXRpb246IG5vbmVcbiAgZm9udC1zaXplOiAyZW1cbiAgZm9udC13ZWlnaHQ6IGJvbGRcbiAgY29sb3I6IGNvbG9yLWRlZmF1bHRcbiAgbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0LXRpdGxlXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnNcbiAgYSY6aG92ZXJcbiAgICBjb2xvcjogY29sb3ItbGlua1xuXG4uYXJ0aWNsZS1lbnRyeVxuICBAZXh0ZW5kICRiYXNlLXN0eWxlXG4gIGNsZWFyZml4KClcbiAgY29sb3I6IGNvbG9yLWRlZmF1bHRcbiAgcGFkZGluZzogMCBhcnRpY2xlLXBhZGRpbmdcbiAgcCwgdGFibGVcbiAgICBsaW5lLWhlaWdodDogbGluZS1oZWlnaHRcbiAgICBtYXJnaW46IGxpbmUtaGVpZ2h0IDBcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNlxuICAgIGZvbnQtd2VpZ2h0OiBib2xkXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDZcbiAgICBsaW5lLWhlaWdodDogbGluZS1oZWlnaHQtdGl0bGVcbiAgICBtYXJnaW46IGxpbmUtaGVpZ2h0LXRpdGxlIDBcbiAgYVxuICAgIGNvbG9yOiBjb2xvci1saW5rXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXG4gICAgJjpob3ZlclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmVcbiAgdWwsIG9sLCBkbFxuICAgIG1hcmdpbi10b3A6IGxpbmUtaGVpZ2h0XG4gICAgbWFyZ2luLWJvdHRvbTogbGluZS1oZWlnaHRcbiAgaW1nLCB2aWRlb1xuICAgIG1heC13aWR0aDogMTAwJVxuICAgIGhlaWdodDogYXV0b1xuICAgIGRpc3BsYXk6IGJsb2NrXG4gICAgbWFyZ2luOiBhdXRvXG4gIGlmcmFtZVxuICAgIGJvcmRlcjogbm9uZVxuICB0YWJsZVxuICAgIHdpZHRoOiAxMDAlXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZVxuICAgIGJvcmRlci1zcGFjaW5nOiAwXG4gIHRoXG4gICAgZm9udC13ZWlnaHQ6IGJvbGRcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgY29sb3ItYm9yZGVyXG4gICAgcGFkZGluZy1ib3R0b206IDAuNWVtXG4gIHRkXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yLWJvcmRlclxuICAgIHBhZGRpbmc6IDEwcHggMFxuICBibG9ja3F1b3RlXG4gICAgZm9udC1mYW1pbHk6IGZvbnQtc2VyaWZcbiAgICBmb250LXNpemU6IDEuNGVtXG4gICAgbWFyZ2luOiBsaW5lLWhlaWdodCAyMHB4XG4gICAgdGV4dC1hbGlnbjogY2VudGVyXG4gICAgZm9vdGVyXG4gICAgICBmb250LXNpemU6IGZvbnQtc2l6ZVxuICAgICAgbWFyZ2luOiBsaW5lLWhlaWdodCAwXG4gICAgICBmb250LWZhbWlseTogZm9udC1zYW5zXG4gICAgICBjaXRlXG4gICAgICAgICY6YmVmb3JlXG4gICAgICAgICAgY29udGVudDogXCLigJRcIlxuICAgICAgICAgIHBhZGRpbmc6IDAgMC41ZW1cbiAgLnB1bGxxdW90ZVxuICAgIHRleHQtYWxpZ246IGxlZnRcbiAgICB3aWR0aDogNDUlXG4gICAgbWFyZ2luOiAwXG4gICAgJi5sZWZ0XG4gICAgICBtYXJnaW4tbGVmdDogMC41ZW1cbiAgICAgIG1hcmdpbi1yaWdodDogMWVtXG4gICAgJi5yaWdodFxuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbVxuICAgICAgbWFyZ2luLWxlZnQ6IDFlbVxuICAuY2FwdGlvblxuICAgIGNvbG9yOiBjb2xvci1ncmV5XG4gICAgZGlzcGxheTogYmxvY2tcbiAgICBmb250LXNpemU6IDAuOWVtXG4gICAgbWFyZ2luLXRvcDogMC41ZW1cbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgLy8gaHR0cDovL3dlYmRlc2lnbmVyd2FsbC5jb20vdHV0b3JpYWxzL2Nzcy1lbGFzdGljLXZpZGVvc1xuICAudmlkZW8tY29udGFpbmVyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXG4gICAgcGFkZGluZy10b3A6ICg5IC8gMTYgKiAxMDApJSAvLyAxNjo5IHJhdGlvXG4gICAgaGVpZ2h0OiAwXG4gICAgb3ZlcmZsb3c6IGhpZGRlblxuICAgIGlmcmFtZSwgb2JqZWN0LCBlbWJlZFxuICAgICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgICB0b3A6IDBcbiAgICAgIGxlZnQ6IDBcbiAgICAgIHdpZHRoOiAxMDAlXG4gICAgICBoZWlnaHQ6IDEwMCVcbiAgICAgIG1hcmdpbi10b3A6IDBcblxuLmFydGljbGUtbW9yZS1saW5rIGFcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gIGxpbmUtaGVpZ2h0OiAxZW1cbiAgcGFkZGluZzogNnB4IDE1cHhcbiAgYm9yZGVyLXJhZGl1czogMTVweFxuICBiYWNrZ3JvdW5kOiBjb2xvci1iYWNrZ3JvdW5kXG4gIGNvbG9yOiBjb2xvci1ncmV5XG4gIHRleHQtc2hhZG93OiAwIDFweCAjZmZmXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZVxuICAmOmhvdmVyXG4gICAgYmFja2dyb3VuZDogY29sb3ItbGlua1xuICAgIGNvbG9yOiAjZmZmXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IGRhcmtlbihjb2xvci1saW5rLCAyMCUpXG5cbi5hcnRpY2xlLWZvb3RlclxuICBjbGVhcmZpeCgpXG4gIGZvbnQtc2l6ZTogMC44NWVtXG4gIGxpbmUtaGVpZ2h0OiBsaW5lLWhlaWdodFxuICBib3JkZXItdG9wOiAxcHggc29saWQgY29sb3ItYm9yZGVyXG4gIHBhZGRpbmctdG9wOiBsaW5lLWhlaWdodFxuICBtYXJnaW46IDAgYXJ0aWNsZS1wYWRkaW5nIGFydGljbGUtcGFkZGluZ1xuICBhXG4gICAgY29sb3I6IGNvbG9yLWdyZXlcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcbiAgICAmOmhvdmVyXG4gICAgICBjb2xvcjogY29sb3ItZGVmYXVsdFxuXG4uYXJ0aWNsZS10YWctbGlzdC1pdGVtXG4gIGZsb2F0OiBsZWZ0XG4gIG1hcmdpbi1yaWdodDogMTBweFxuXG4uYXJ0aWNsZS10YWctbGlzdC1saW5rXG4gICY6YmVmb3JlXG4gICAgY29udGVudDogXCIjXCJcblxuLmFydGljbGUtY29tbWVudC1saW5rXG4gIGZsb2F0OiByaWdodFxuICAmOmJlZm9yZVxuICAgIGNvbnRlbnQ6IFwiXFxmMDc1XCJcbiAgICBmb250LWZhbWlseTogZm9udC1pY29uXG4gICAgcGFkZGluZy1yaWdodDogOHB4XG5cbi5hcnRpY2xlLXNoYXJlLWxpbmtcbiAgY3Vyc29yOiBwb2ludGVyXG4gIGZsb2F0OiByaWdodFxuICBtYXJnaW4tbGVmdDogMjBweFxuICAmOmJlZm9yZVxuICAgIGNvbnRlbnQ6IFwiXFxmMDY0XCJcbiAgICBmb250LWZhbWlseTogZm9udC1pY29uXG4gICAgcGFkZGluZy1yaWdodDogNnB4XG5cbiNhcnRpY2xlLW5hdlxuICBjbGVhcmZpeCgpXG4gIHBvc2l0aW9uOiByZWxhdGl2ZVxuICBAbWVkaWEgbXEtbm9ybWFsXG4gICAgbWFyZ2luOiBibG9jay1tYXJnaW4gMFxuICAgICY6YmVmb3JlXG4gICAgICBhYnNvbHV0ZS1jZW50ZXIoOHB4KVxuICAgICAgY29udGVudDogXCJcIlxuICAgICAgYm9yZGVyLXJhZGl1czogNTAlXG4gICAgICBiYWNrZ3JvdW5kOiBjb2xvci1ib3JkZXJcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCAjZmZmXG5cbi5hcnRpY2xlLW5hdi1saW5rLXdyYXBcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lXG4gIHRleHQtc2hhZG93OiAwIDFweCAjZmZmXG4gIGNvbG9yOiBjb2xvci1ncmV5XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3hcbiAgbWFyZ2luLXRvcDogYmxvY2stbWFyZ2luXG4gIHRleHQtYWxpZ246IGNlbnRlclxuICBkaXNwbGF5OiBibG9ja1xuICAmOmhvdmVyXG4gICAgY29sb3I6IGNvbG9yLWRlZmF1bHRcbiAgQG1lZGlhIG1xLW5vcm1hbFxuICAgIHdpZHRoOiA1MCVcbiAgICBtYXJnaW4tdG9wOiAwXG5cbiNhcnRpY2xlLW5hdi1uZXdlclxuICBAbWVkaWEgbXEtbm9ybWFsXG4gICAgZmxvYXQ6IGxlZnRcbiAgICB0ZXh0LWFsaWduOiByaWdodFxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHhcblxuI2FydGljbGUtbmF2LW9sZGVyXG4gIEBtZWRpYSBtcS1ub3JtYWxcbiAgICBmbG9hdDogcmlnaHRcbiAgICB0ZXh0LWFsaWduOiBsZWZ0XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4XG5cbi5hcnRpY2xlLW5hdi1jYXB0aW9uXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2VcbiAgbGV0dGVyLXNwYWNpbmc6IDJweFxuICBjb2xvcjogY29sb3ItYm9yZGVyXG4gIGxpbmUtaGVpZ2h0OiAxZW1cbiAgZm9udC13ZWlnaHQ6IGJvbGRcbiAgI2FydGljbGUtbmF2LW5ld2VyICZcbiAgICBtYXJnaW4tcmlnaHQ6IC0ycHhcblxuLmFydGljbGUtbmF2LXRpdGxlXG4gIGZvbnQtc2l6ZTogMC44NWVtXG4gIGxpbmUtaGVpZ2h0OiBsaW5lLWhlaWdodFxuICBtYXJnaW4tdG9wOiAwLjVlbVxuXG4uYXJ0aWNsZS1zaGFyZS1ib3hcbiAgcG9zaXRpb246IGFic29sdXRlXG4gIGRpc3BsYXk6IG5vbmVcbiAgYmFja2dyb3VuZDogI2ZmZlxuICBib3gtc2hhZG93OiAxcHggMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpXG4gIGJvcmRlci1yYWRpdXM6IDNweFxuICBtYXJnaW4tbGVmdDogLTE0NXB4XG4gIG92ZXJmbG93OiBoaWRkZW5cbiAgei1pbmRleDogMVxuICAmLm9uXG4gICAgZGlzcGxheTogYmxvY2tcblxuLmFydGljbGUtc2hhcmUtaW5wdXRcbiAgd2lkdGg6IDEwMCVcbiAgYmFja2dyb3VuZDogbm9uZVxuICBib3gtc2l6aW5nOiBib3JkZXItYm94XG4gIGZvbnQ6IDE0cHggZm9udC1zYW5zXG4gIHBhZGRpbmc6IDAgMTVweFxuICBjb2xvcjogY29sb3ItZGVmYXVsdFxuICBvdXRsaW5lOiBub25lXG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLWJvcmRlclxuICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMFxuICBoZWlnaHQ6IDM2cHhcbiAgbGluZS1oZWlnaHQ6IDM2cHhcblxuLmFydGljbGUtc2hhcmUtbGlua3NcbiAgY2xlYXJmaXgoKVxuICBiYWNrZ3JvdW5kOiBjb2xvci1iYWNrZ3JvdW5kXG5cbiRhcnRpY2xlLXNoYXJlLWxpbmtcbiAgd2lkdGg6IDUwcHhcbiAgaGVpZ2h0OiAzNnB4XG4gIGRpc3BsYXk6IGJsb2NrXG4gIGZsb2F0OiBsZWZ0XG4gIHBvc2l0aW9uOiByZWxhdGl2ZVxuICBjb2xvcjogIzk5OVxuICB0ZXh0LXNoYWRvdzogMCAxcHggI2ZmZlxuICAmOmJlZm9yZVxuICAgIGZvbnQtc2l6ZTogMjBweFxuICAgIGZvbnQtZmFtaWx5OiBmb250LWljb25cbiAgICBhYnNvbHV0ZS1jZW50ZXIoQGZvbnQtc2l6ZSlcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgJjpob3ZlclxuICAgIGNvbG9yOiAjZmZmXG5cbi5hcnRpY2xlLXNoYXJlLXR3aXR0ZXJcbiAgQGV4dGVuZCAkYXJ0aWNsZS1zaGFyZS1saW5rXG4gICY6YmVmb3JlXG4gICAgY29udGVudDogXCJcXGYwOTlcIlxuICAmOmhvdmVyXG4gICAgYmFja2dyb3VuZDogY29sb3ItdHdpdHRlclxuICAgIHRleHQtc2hhZG93OiAwIDFweCBkYXJrZW4oY29sb3ItdHdpdHRlciwgMjAlKVxuXG4uYXJ0aWNsZS1zaGFyZS1mYWNlYm9va1xuICBAZXh0ZW5kICRhcnRpY2xlLXNoYXJlLWxpbmtcbiAgJjpiZWZvcmVcbiAgICBjb250ZW50OiBcIlxcZjA5YVwiXG4gICY6aG92ZXJcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1mYWNlYm9va1xuICAgIHRleHQtc2hhZG93OiAwIDFweCBkYXJrZW4oY29sb3ItZmFjZWJvb2ssIDIwJSlcblxuLmFydGljbGUtc2hhcmUtcGludGVyZXN0XG4gIEBleHRlbmQgJGFydGljbGUtc2hhcmUtbGlua1xuICAmOmJlZm9yZVxuICAgIGNvbnRlbnQ6IFwiXFxmMGQyXCJcbiAgJjpob3ZlclxuICAgIGJhY2tncm91bmQ6IGNvbG9yLXBpbnRlcmVzdFxuICAgIHRleHQtc2hhZG93OiAwIDFweCBkYXJrZW4oY29sb3ItcGludGVyZXN0LCAyMCUpXG5cbi5hcnRpY2xlLXNoYXJlLWdvb2dsZVxuICBAZXh0ZW5kICRhcnRpY2xlLXNoYXJlLWxpbmtcbiAgJjpiZWZvcmVcbiAgICBjb250ZW50OiBcIlxcZjBkNVwiXG4gICY6aG92ZXJcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1nb29nbGVcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggZGFya2VuKGNvbG9yLWdvb2dsZSwgMjAlKVxuXG4uYXJ0aWNsZS1nYWxsZXJ5XG4gIGJhY2tncm91bmQ6ICMwMDBcbiAgcG9zaXRpb246IHJlbGF0aXZlXG5cbi5hcnRpY2xlLWdhbGxlcnktcGhvdG9zXG4gIHBvc2l0aW9uOiByZWxhdGl2ZVxuICBvdmVyZmxvdzogaGlkZGVuXG5cbi5hcnRpY2xlLWdhbGxlcnktaW1nXG4gIGRpc3BsYXk6IG5vbmVcbiAgbWF4LXdpZHRoOiAxMDAlXG4gICY6Zmlyc3QtY2hpbGRcbiAgICBkaXNwbGF5OiBibG9ja1xuICAmLmxvYWRlZFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgIGRpc3BsYXk6IGJsb2NrXG4gIGltZ1xuICAgIGRpc3BsYXk6IGJsb2NrXG4gICAgbWF4LXdpZHRoOiAxMDAlXG4gICAgbWFyZ2luOiAwIGF1dG9cblxuLmltZy1yaWdodFxuICAgIGZsb2F0OiByaWdodFxuLypcbiRhcnRpY2xlLWdhbGxlcnktY3RybFxuICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgdG9wOiAwXG4gIGhlaWdodDogMTAwJVxuICB3aWR0aDogNjBweFxuICBjb2xvcjogI2ZmZlxuICB0ZXh0LXNoYWRvdzogMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuMylcbiAgb3BhY2l0eTogMC4zXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yc1xuICBjdXJzb3I6IHBvaW50ZXJcbiAgJjpob3ZlclxuICAgIG9wYWNpdHk6IDAuOFxuICAmOmJlZm9yZVxuICAgIGZvbnQtc2l6ZTogMzBweFxuICAgIGZvbnQtZmFtaWx5OiBmb250LWljb25cbiAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICB0b3A6IDUwJVxuICAgIG1hcmdpbi10b3A6IEBmb250LXNpemUgKiAtMC41XG5cbi5hcnRpY2xlLWdhbGxlcnktcHJldlxuICBAZXh0ZW5kICRhcnRpY2xlLWdhbGxlcnktY3RybFxuICBsZWZ0OiAwXG4gICY6YmVmb3JlXG4gICAgY29udGVudDogXCJcXGYwNTNcIlxuICAgIGxlZnQ6IDE1cHhcblxuLmFydGljbGUtZ2FsbGVyeS1uZXh0XG4gIEBleHRlbmQgJGFydGljbGUtZ2FsbGVyeS1jdHJsXG4gIHJpZ2h0OiAwXG4gICY6YmVmb3JlXG4gICAgY29udGVudDogXCJcXGYwNTRcIlxuICAgIHJpZ2h0OiAxNXB4Ki8iLCIvLyBodHRwOi8vd3d3LnplbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnQvXG5oaWRlLXRleHQoKVxuICB0ZXh0LWluZGVudDogMTAwJVxuICB3aGl0ZS1zcGFjZTogbm93cmFwXG4gIG92ZXJmbG93OiBoaWRkZW5cblxuLy8gaHR0cDovL2NvZGVwZW4uaW8vc2hzaGF3L2Z1bGwvZ0VpRHRcbmFic29sdXRlLWNlbnRlcih3aWR0aCwgaGVpZ2h0ID0gd2lkdGgpXG4gIC8vIG1hcmdpbjogYXV0b1xuICAvLyBwb3NpdGlvbjogYWJzb2x1dGVcbiAgLy8gdG9wOiA1MCVcbiAgLy8gdG9wOiAwXG4gIC8vIGxlZnQ6IDBcbiAgLy8gYm90dG9tOiAwXG4gIC8vIHJpZ2h0OiAwXG4gIC8vIHdpZHRoOiB3aWR0aFxuICAvLyBoZWlnaHQ6IGhlaWdodFxuICAvLyBvdmVyZmxvdzogYXV0b1xuICB3aWR0aDogd2lkdGhcbiAgaGVpZ2h0OiBoZWlnaHRcbiAgcG9zaXRpb246IGFic29sdXRlXG4gIHRvcDogNTAlXG4gIGxlZnQ6IDUwJVxuICBtYXJnaW4tdG9wOiB3aWR0aCAqIC0wLjVcbiAgbWFyZ2luLWxlZnQ6IGhlaWdodCAqIC0wLjVcblxuYXZvaWQtY29sdW1uLWJyZWFrKClcbiAgdmVuZG9yKFwiY29sdW1uLWJyZWFrLWluc2lkZVwiLCBhdm9pZCwgb25seTogd2Via2l0KVxuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQgLy8gZm9yIGZpcmVmb3hcbiAgb3ZlcmZsb3c6IGhpZGRlbiAvLyBmaXggZm9yIGZpcmVmb3hcbiAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW5cbiIsIiNjb21tZW50c1xuICBiYWNrZ3JvdW5kOiAjZmZmXG4gIGJveC1zaGFkb3c6IDFweCAycHggM3B4ICNkZGRcbiAgcGFkZGluZzogYXJ0aWNsZS1wYWRkaW5nXG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLWJvcmRlclxuICBib3JkZXItcmFkaXVzOiAzcHhcbiAgbWFyZ2luOiBibG9jay1tYXJnaW4gMFxuICBhXG4gICAgY29sb3I6IGNvbG9yLWxpbmsiLCIuYXJjaGl2ZXMtd3JhcFxuICBtYXJnaW46IGJsb2NrLW1hcmdpbiAwXG5cbi5hcmNoaXZlc1xuICBjbGVhcmZpeCgpXG5cbi5hcmNoaXZlLXllYXItd3JhcFxuICBtYXJnaW4tYm90dG9tOiAxZW1cblxuLmFyY2hpdmUteWVhclxuICBAZXh0ZW5kICRibG9jay1jYXB0aW9uXG5cbi5hcmNoaXZlc1xuICBjb2x1bW4tZ2FwOiAxMHB4XG4gIEBtZWRpYSBtcS10YWJsZXRcbiAgICBjb2x1bW4tY291bnQ6IDJcbiAgQG1lZGlhIG1xLW5vcm1hbFxuICAgIGNvbHVtbi1jb3VudDogM1xuXG4uYXJjaGl2ZS1hcnRpY2xlXG4gIGF2b2lkLWNvbHVtbi1icmVhaygpXG5cbi5hcmNoaXZlLWFydGljbGUtaW5uZXJcbiAgQGV4dGVuZCAkYmxvY2tcbiAgcGFkZGluZzogMTBweFxuICBtYXJnaW4tYm90dG9tOiAxNXB4XG5cbi5hcmNoaXZlLWFydGljbGUtdGl0bGVcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lXG4gIGZvbnQtd2VpZ2h0OiBib2xkXG4gIGNvbG9yOiBjb2xvci1kZWZhdWx0XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnNcbiAgbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0XG4gICY6aG92ZXJcbiAgICBjb2xvcjogY29sb3ItbGlua1xuXG4uYXJjaGl2ZS1hcnRpY2xlLWZvb3RlclxuICBtYXJnaW4tdG9wOiAxZW1cblxuLmFyY2hpdmUtYXJ0aWNsZS1kYXRlXG4gIGNvbG9yOiBjb2xvci1ncmV5XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZVxuICBmb250LXNpemU6IDAuODVlbVxuICBsaW5lLWhlaWdodDogMWVtXG4gIG1hcmdpbi1ib3R0b206IDAuNWVtXG4gIGRpc3BsYXk6IGJsb2NrXG5cbiNwYWdlLW5hdlxuICBjbGVhcmZpeCgpXG4gIG1hcmdpbjogYmxvY2stbWFyZ2luIGF1dG9cbiAgYmFja2dyb3VuZDogI2ZmZlxuICBib3gtc2hhZG93OiAxcHggMnB4IDNweCAjZGRkXG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLWJvcmRlclxuICBib3JkZXItcmFkaXVzOiAzcHhcbiAgdGV4dC1hbGlnbjogY2VudGVyXG4gIGNvbG9yOiBjb2xvci1ncmV5XG4gIG92ZXJmbG93OiBoaWRkZW5cbiAgYSwgc3BhblxuICAgIHBhZGRpbmc6IDEwcHggMjBweFxuICAgIGxpbmUtaGVpZ2h0OiAxXG4gICAgaGVpZ2h0OiAyZXhcbiAgYVxuICAgIGNvbG9yOiBjb2xvci1ncmV5XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXG4gICAgJjpob3ZlclxuICAgICAgYmFja2dyb3VuZDogY29sb3ItZ3JleVxuICAgICAgY29sb3I6ICNmZmZcbiAgLnByZXZcbiAgICBmbG9hdDogbGVmdFxuICAubmV4dFxuICAgIGZsb2F0OiByaWdodFxuICAucGFnZS1udW1iZXJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgICBAbWVkaWEgbXEtbW9iaWxlXG4gICAgICBkaXNwbGF5OiBub25lXG4gIC5jdXJyZW50XG4gICAgY29sb3I6IGNvbG9yLWRlZmF1bHRcbiAgICBmb250LXdlaWdodDogYm9sZFxuICAuc3BhY2VcbiAgICBjb2xvcjogY29sb3ItYm9yZGVyIiwiI2Zvb3RlclxuICBiYWNrZ3JvdW5kOiBjb2xvci1mb290ZXItYmFja2dyb3VuZFxuICBwYWRkaW5nOiA1MHB4IDBcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGNvbG9yLWJvcmRlclxuICBjb2xvcjogY29sb3ItZ3JleVxuICBhXG4gICAgY29sb3I6IGNvbG9yLWxpbmtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcbiAgICAmOmhvdmVyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxuXG4jZm9vdGVyLWluZm9cbiAgbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0XG4gIGZvbnQtc2l6ZTogMC44NWVtIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL2Nocmlza2VtcHNvbi90b21vcnJvdy10aGVtZVxuaGlnaGxpZ2h0LWJhY2tncm91bmQgPSAjMmQyZDJkXG5oaWdobGlnaHQtY3VycmVudC1saW5lID0gIzM5MzkzOVxuaGlnaGxpZ2h0LXNlbGVjdGlvbiA9ICM1MTUxNTFcbmhpZ2hsaWdodC1mb3JlZ3JvdW5kID0gI2NjY2NjY1xuaGlnaGxpZ2h0LWNvbW1lbnQgPSAjOTk5OTk5XG5oaWdobGlnaHQtcmVkID0gI2YyNzc3YVxuaGlnaGxpZ2h0LW9yYW5nZSA9ICNmOTkxNTdcbmhpZ2hsaWdodC15ZWxsb3cgPSAjZmZjYzY2XG5oaWdobGlnaHQtZ3JlZW4gPSAjOTljYzk5XG5oaWdobGlnaHQtYXF1YSA9ICM2NmNjY2NcbmhpZ2hsaWdodC1ibHVlID0gIzY2OTljY1xuaGlnaGxpZ2h0LXB1cnBsZSA9ICNjYzk5Y2NcblxuJGNvZGUtYmxvY2tcbiAgYmFja2dyb3VuZDogaGlnaGxpZ2h0LWJhY2tncm91bmRcbiAgbWFyZ2luOiAwIGFydGljbGUtcGFkZGluZyAqIC0xXG4gIHBhZGRpbmc6IDE1cHggYXJ0aWNsZS1wYWRkaW5nXG4gIGJvcmRlci1zdHlsZTogc29saWRcbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1ib3JkZXJcbiAgYm9yZGVyLXdpZHRoOiAxcHggMFxuICBvdmVyZmxvdzogYXV0b1xuICBjb2xvcjogaGlnaGxpZ2h0LWZvcmVncm91bmRcbiAgbGluZS1oZWlnaHQ6IGZvbnQtc2l6ZSAqIGxpbmUtaGVpZ2h0XG5cbiRsaW5lLW51bWJlcnNcbiAgY29sb3I6ICM2NjZcbiAgZm9udC1zaXplOiAwLjg1ZW1cblxuLmFydGljbGUtZW50cnlcbiAgcHJlLCBjb2RlXG4gICAgZm9udC1mYW1pbHk6IGZvbnQtbW9ub1xuICBjb2RlXG4gICAgYmFja2dyb3VuZDogY29sb3ItYmFja2dyb3VuZFxuICAgIHRleHQtc2hhZG93OiAwIDFweCAjZmZmXG4gICAgcGFkZGluZzogMCAwLjNlbVxuICBwcmVcbiAgICBAZXh0ZW5kICRjb2RlLWJsb2NrXG4gICAgY29kZVxuICAgICAgYmFja2dyb3VuZDogbm9uZVxuICAgICAgdGV4dC1zaGFkb3c6IG5vbmVcbiAgICAgIHBhZGRpbmc6IDBcbiAgLmhpZ2hsaWdodFxuICAgIEBleHRlbmQgJGNvZGUtYmxvY2tcbiAgICBwcmVcbiAgICAgIGJvcmRlcjogbm9uZVxuICAgICAgbWFyZ2luOiAwXG4gICAgICBwYWRkaW5nOiAwXG4gICAgdGFibGVcbiAgICAgIG1hcmdpbjogMFxuICAgICAgd2lkdGg6IGF1dG9cbiAgICB0ZFxuICAgICAgYm9yZGVyOiBub25lXG4gICAgICBwYWRkaW5nOiAwXG4gICAgZmlnY2FwdGlvblxuICAgICAgY2xlYXJmaXgoKVxuICAgICAgZm9udC1zaXplOiAwLjg1ZW1cbiAgICAgIGNvbG9yOiBoaWdobGlnaHQtY29tbWVudFxuICAgICAgbGluZS1oZWlnaHQ6IDFlbVxuICAgICAgbWFyZ2luLWJvdHRvbTogMWVtXG4gICAgICBhXG4gICAgICAgIGZsb2F0OiByaWdodFxuICAgIC5ndXR0ZXIgcHJlXG4gICAgICBAZXh0ZW5kICRsaW5lLW51bWJlcnNcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4XG4gICAgLmxpbmVcbiAgICAgIGhlaWdodDogZm9udC1zaXplICogbGluZS1oZWlnaHRcbiAgICAubGluZS5tYXJrZWRcbiAgICAgIGJhY2tncm91bmQ6IGhpZ2hsaWdodC1zZWxlY3Rpb25cbiAgLmdpc3RcbiAgICBtYXJnaW46IDAgYXJ0aWNsZS1wYWRkaW5nICogLTFcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkXG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvci1ib3JkZXJcbiAgICBib3JkZXItd2lkdGg6IDFweCAwXG4gICAgYmFja2dyb3VuZDogaGlnaGxpZ2h0LWJhY2tncm91bmRcbiAgICBwYWRkaW5nOiAxNXB4IGFydGljbGUtcGFkZGluZyAxNXB4IDBcbiAgICAuZ2lzdC1maWxlXG4gICAgICBib3JkZXI6IG5vbmVcbiAgICAgIGZvbnQtZmFtaWx5OiBmb250LW1vbm9cbiAgICAgIG1hcmdpbjogMFxuICAgICAgLmdpc3QtZGF0YVxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lXG4gICAgICAgIGJvcmRlcjogbm9uZVxuICAgICAgICAubGluZS1udW1iZXJzXG4gICAgICAgICAgQGV4dGVuZCAkbGluZS1udW1iZXJzXG4gICAgICAgICAgYmFja2dyb3VuZDogbm9uZVxuICAgICAgICAgIGJvcmRlcjogbm9uZVxuICAgICAgICAgIHBhZGRpbmc6IDAgMjBweCAwIDBcbiAgICAgICAgLmxpbmUtZGF0YVxuICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudFxuICAgICAgLmhpZ2hsaWdodFxuICAgICAgICBtYXJnaW46IDBcbiAgICAgICAgcGFkZGluZzogMFxuICAgICAgICBib3JkZXI6IG5vbmVcbiAgICAgIC5naXN0LW1ldGFcbiAgICAgICAgYmFja2dyb3VuZDogaGlnaGxpZ2h0LWJhY2tncm91bmRcbiAgICAgICAgY29sb3I6IGhpZ2hsaWdodC1jb21tZW50XG4gICAgICAgIGZvbnQ6IDAuODVlbSBmb250LXNhbnNcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMFxuICAgICAgICBwYWRkaW5nOiAwXG4gICAgICAgIG1hcmdpbi10b3A6IDFlbVxuICAgICAgICBtYXJnaW4tbGVmdDogYXJ0aWNsZS1wYWRkaW5nXG4gICAgICAgIGFcbiAgICAgICAgICBjb2xvcjogY29sb3ItbGlua1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWxcbiAgICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxuXG5wcmVcbiAgLmNvbW1lbnRcbiAgLnRpdGxlXG4gICAgY29sb3I6IGhpZ2hsaWdodC1jb21tZW50XG4gIC52YXJpYWJsZVxuICAuYXR0cmlidXRlXG4gIC50YWdcbiAgLnJlZ2V4cFxuICAucnVieSAuY29uc3RhbnRcbiAgLnhtbCAudGFnIC50aXRsZVxuICAueG1sIC5waVxuICAueG1sIC5kb2N0eXBlXG4gIC5odG1sIC5kb2N0eXBlXG4gIC5jc3MgLmlkXG4gIC5jc3MgLmNsYXNzXG4gIC5jc3MgLnBzZXVkb1xuICAgIGNvbG9yOiBoaWdobGlnaHQtcmVkXG4gIC5udW1iZXJcbiAgLnByZXByb2Nlc3NvclxuICAuYnVpbHRfaW5cbiAgLmxpdGVyYWxcbiAgLnBhcmFtc1xuICAuY29uc3RhbnRcbiAgICBjb2xvcjogaGlnaGxpZ2h0LW9yYW5nZVxuICAuY2xhc3NcbiAgLnJ1YnkgLmNsYXNzIC50aXRsZVxuICAuY3NzIC5ydWxlcyAuYXR0cmlidXRlXG4gICAgY29sb3I6IGhpZ2hsaWdodC1ncmVlblxuICAuc3RyaW5nXG4gIC52YWx1ZVxuICAuaW5oZXJpdGFuY2VcbiAgLmhlYWRlclxuICAucnVieSAuc3ltYm9sXG4gIC54bWwgLmNkYXRhXG4gICAgY29sb3I6IGhpZ2hsaWdodC1ncmVlblxuICAuY3NzIC5oZXhjb2xvclxuICAgIGNvbG9yOiBoaWdobGlnaHQtYXF1YVxuICAuZnVuY3Rpb25cbiAgLnB5dGhvbiAuZGVjb3JhdG9yXG4gIC5weXRob24gLnRpdGxlXG4gIC5ydWJ5IC5mdW5jdGlvbiAudGl0bGVcbiAgLnJ1YnkgLnRpdGxlIC5rZXl3b3JkXG4gIC5wZXJsIC5zdWJcbiAgLmphdmFzY3JpcHQgLnRpdGxlXG4gIC5jb2ZmZWVzY3JpcHQgLnRpdGxlXG4gICAgY29sb3I6IGhpZ2hsaWdodC1ibHVlXG4gIC5rZXl3b3JkXG4gIC5qYXZhc2NyaXB0IC5mdW5jdGlvblxuICAgIGNvbG9yOiBoaWdobGlnaHQtcHVycGxlXG4iLCJAbWVkaWEgbXEtbW9iaWxlXG4gICNtb2JpbGUtbmF2XG4gICAgcG9zaXRpb246IGFic29sdXRlXG4gICAgdG9wOiAwXG4gICAgbGVmdDogMFxuICAgIHdpZHRoOiBtb2JpbGUtbmF2LXdpZHRoXG4gICAgaGVpZ2h0OiAxMDAlXG4gICAgYmFja2dyb3VuZDogY29sb3ItbW9iaWxlLW5hdi1iYWNrZ3JvdW5kXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ZmZlxuXG5AbWVkaWEgbXEtbW9iaWxlXG4gIC5tb2JpbGUtbmF2LWxpbmtcbiAgICBkaXNwbGF5OiBibG9ja1xuICAgIGNvbG9yOiBjb2xvci1ncmV5XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lXG4gICAgcGFkZGluZzogMTVweCAyMHB4XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRcbiAgICAmOmhvdmVyXG4gICAgICBjb2xvcjogI2ZmZlxuIiwiaWYgc2lkZWJhciBpcyBib3R0b21cbiAgQGltcG9ydCBcInNpZGViYXItYm90dG9tXCJcbmVsc2VcbiAgQGltcG9ydCBcInNpZGViYXItYXNpZGVcIlxuXG4ud2lkZ2V0XG4gIEBleHRlbmQgJGJhc2Utc3R5bGVcbiAgbGluZS1oZWlnaHQ6IGxpbmUtaGVpZ2h0XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZFxuICBmb250LXNpemU6IDAuOWVtXG4gIHVsLCBvbFxuICAgIGxpc3Qtc3R5bGU6IG5vbmVcbiAgICBtYXJnaW46IDBcbiAgICB1bCwgb2xcbiAgICAgIG1hcmdpbjogMCAyMHB4XG4gICAgdWxcbiAgICAgIGxpc3Qtc3R5bGU6IGRpc2NcbiAgICBvbFxuICAgICAgbGlzdC1zdHlsZTogZGVjaW1hbFxuXG4uY2F0ZWdvcnktbGlzdC1jb3VudFxuLnRhZy1saXN0LWNvdW50XG4uYXJjaGl2ZS1saXN0LWNvdW50XG4gIHBhZGRpbmctbGVmdDogNXB4XG4gIGNvbG9yOiBjb2xvci1ncmV5XG4gIGZvbnQtc2l6ZTogMC44NWVtXG4gICY6YmVmb3JlXG4gICAgY29udGVudDogXCIoXCJcbiAgJjphZnRlclxuICAgIGNvbnRlbnQ6IFwiKVwiXG5cbi50YWdjbG91ZFxuICBhXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHhcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcblxuLnByb2ZpbGVcbiAgdWxcbiAgICBkaXNwbGF5OnRhYmxlXG4gICAgbGlcbiAgICAgIGRpc3BsYXk6dGFibGUtcm93XG4gICAgICBzcGFuXG4gICAgICAgIGRpc3BsYXk6dGFibGUtY2VsbFxuICAgICAgLnByb2ZpbGVfa2V5XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtXG4gICAgICAucHJvZmlsZV92YWx1ZVxuICAgICAgICBwYWRkaW5nLWxlZnQ6MC41ZW0gICAgICBcbiJdfQ== */