:root {
  --article-min-width: 300px;
}

article-list {
  display: grid;
  grid-gap: var(--gutter1);
  grid-template-columns: repeat(auto-fill, minmax(var(--article-min-width), 1fr));
}
article-list[class*=columns-] {
  grid-template-columns: repeat(auto-fit, minmax(var(--article-min-width), 1fr));
}
article-list.columns-1 {
  grid-template-columns: 1fr;
}
article-list.columns-2 {
  --article-min-width: 440px;
}
article-list.columns-3 {
  --article-min-width: 400px;
}
article-list.columns-4 {
  --article-min-width: 350px;
}
article-list.columns-5 {
  gap: var(--gutter0);
  --article-min-width: 250px;
}
article-list.columns-6 {
  gap: var(--gutter0);
  --article-min-width: 220px;
}
@media (max-width: 480px) {
  article-list[class*=columns-] {
    grid-template-columns: 1fr;
  }
}

body:has(side-bar) main article-list.columns-2 {
  --article-min-width: 320px;
}
body:has(side-bar) main article-list.columns-3 {
  --article-min-width: 250px;
}
body:has(side-bar) main article-list.columns-4 {
  --article-min-width: 200px;
}
body:has(side-bar) main article-list.columns-5 {
  --article-min-width: 200px;
}

side-bar article-list {
  --font-colour: #6a6a6a;
  padding: 0;
  background-color: initial;
  border: none;
  grid-gap: var(--gap);
  align-content: flex-start;
}
side-bar article-list.columns-6 {
  gap: var(--gutter0);
  --article-min-width: 220px;
}
side-bar article-list .article {
  color: #6a6a6a;
  --image-width: 120px;
  --image-width: clamp(100px, 11vw, 200px);
}
side-bar article-list .article .container {
  position: relative;
  background-color: white;
  padding: var(--gap) var(--gap) var(--gap) calc(var(--image-width) + var(--gap));
  min-height: 120px;
}
side-bar article-list .article .container .heading {
  font-size: 1.0625em;
  line-height: 1.6;
  line-height: 1.3;
  margin: 0;
}
side-bar article-list .article .container time {
  order: 1;
  margin-bottom: calc(var(--gap) * 0.5);
  color: #969695;
}
side-bar article-list .article .container .image {
  position: absolute;
  margin: 0;
  left: 0;
  top: 0;
  width: var(--image-width);
  height: 100%;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29udGVudC1ibG9ja3MvYXJ0aWNsZS1saXN0LnNjc3MiLCJjb21wb25lbnRzL2NvbnRlbnQtYmxvY2tzL2FydGljbGUtbGlzdC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9oZWxwZXJzL19icmVhay5zY3NzIiwiX3ZhcmlhYmxlcy9jb2xvdXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX2hlYWRpbmdzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDRSwwQkFBQTtBQ0RGOztBRElBO0VBQ0UsYUFBQTtFQUNBLHdCRTRIUztFRjNIVCwrRUFBQTtBQ0RGO0FERUU7RUFDRSw4RUFBQTtBQ0FKO0FERUU7RUFDRSwwQkFBQTtBQ0FKO0FERUU7RUFDRSwwQkFBQTtBQ0FKO0FERUU7RUFDRSwwQkFBQTtBQ0FKO0FERUU7RUFDRSwwQkFBQTtBQ0FKO0FERUU7RUFDRSxtQkV5R087RUZ4R1AsMEJBQUE7QUNBSjtBREVFO0VBQ0UsbUJFcUdPO0VGcEdQLDBCQUFBO0FDQUo7QUVwQkU7RUh1QkU7SUFDRSwwQkFBQTtFQ0FKO0FBQ0Y7O0FETUk7RUFDRSwwQkFBQTtBQ0hOO0FES0k7RUFDRSwwQkFBQTtBQ0hOO0FES0k7RUFDRSwwQkFBQTtBQ0hOO0FES0k7RUFDRSwwQkFBQTtBQ0hOOztBRFFBO0VBQ0Usc0JBQUE7RUFDQSxVQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JFWE07RUZZTix5QkFBQTtBQ0xGO0FEV0U7RUFDRSxtQkU2RE87RUY1RFAsMEJBQUE7QUNUSjtBRFlFO0VBQ0UsY0lqREk7RUprREosb0JBQUE7RUFDQSx3Q0FBQTtBQ1ZKO0FEV0k7RUFDRSxrQkFBQTtFQUNBLHVCQUFBO0VBQ0EsK0VBQUE7RUFDQSxpQkFBQTtBQ1ROO0FEVU07RUtxR0osbUJBQUE7RUFXSSxnQkF6SGM7RUxXWixnQkFBQTtFQUNBLFNBQUE7QUNQUjtBRFNNO0VBQ0UsUUFBQTtFQUNBLHFDRXhDQTtFRnlDQSxjSWxFRDtBSDJEUDtBRFNNO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7QUNQUiIsImZpbGUiOiJjb21wb25lbnRzL2NvbnRlbnQtYmxvY2tzL2FydGljbGUtbGlzdC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdfbW9kdWxlcycgYXMgKjtcblxuOnJvb3Qge1xuICAtLWFydGljbGUtbWluLXdpZHRoOiAzMDBweDtcbn1cblxuYXJ0aWNsZS1saXN0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6ICRndXR0ZXI7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KHZhcigtLWFydGljbGUtbWluLXdpZHRoKSwgMWZyKSk7XG4gICZbY2xhc3MqPSdjb2x1bW5zLSddIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KHZhcigtLWFydGljbGUtbWluLXdpZHRoKSwgMWZyKSk7XG4gIH1cbiAgJi5jb2x1bW5zLTEge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG4gICYuY29sdW1ucy0yIHtcbiAgICAtLWFydGljbGUtbWluLXdpZHRoOiA0NDBweDtcbiAgfVxuICAmLmNvbHVtbnMtMyB7XG4gICAgLS1hcnRpY2xlLW1pbi13aWR0aDogNDAwcHg7XG4gIH1cbiAgJi5jb2x1bW5zLTQge1xuICAgIC0tYXJ0aWNsZS1taW4td2lkdGg6IDM1MHB4O1xuICB9XG4gICYuY29sdW1ucy01IHtcbiAgICBnYXA6ICRndXR0ZXIwO1xuICAgIC0tYXJ0aWNsZS1taW4td2lkdGg6IDI1MHB4O1xuICB9XG4gICYuY29sdW1ucy02IHtcbiAgICBnYXA6ICRndXR0ZXIwO1xuICAgIC0tYXJ0aWNsZS1taW4td2lkdGg6IDIyMHB4O1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsKSB7XG4gICAgJltjbGFzcyo9J2NvbHVtbnMtJ10ge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxuICB9XG59XG5cbmJvZHk6aGFzKHNpZGUtYmFyKSB7XG4gIG1haW4gYXJ0aWNsZS1saXN0IHtcbiAgICAmLmNvbHVtbnMtMiB7XG4gICAgICAtLWFydGljbGUtbWluLXdpZHRoOiAzMjBweDtcbiAgICB9XG4gICAgJi5jb2x1bW5zLTMge1xuICAgICAgLS1hcnRpY2xlLW1pbi13aWR0aDogMjUwcHg7XG4gICAgfVxuICAgICYuY29sdW1ucy00IHtcbiAgICAgIC0tYXJ0aWNsZS1taW4td2lkdGg6IDIwMHB4O1xuICAgIH1cbiAgICAmLmNvbHVtbnMtNSB7XG4gICAgICAtLWFydGljbGUtbWluLXdpZHRoOiAyMDBweDtcbiAgICB9XG4gIH1cbn1cblxuc2lkZS1iYXIgYXJ0aWNsZS1saXN0IHtcbiAgLS1mb250LWNvbG91cjogI3skZm9udC1jb2xvdXJ9O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBib3JkZXI6IG5vbmU7XG4gIGdyaWQtZ2FwOiAkZ2FwO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gIC8vICYuY29sdW1ucy0ge1xuICAvLyAgIGdhcDogJGd1dHRlcjA7XG4gIC8vICAgLS1hcnRpY2xlLW1pbi13aWR0aDogMjUwcHg7XG4gIC8vIH1cbiAgJi5jb2x1bW5zLTYge1xuICAgIGdhcDogJGd1dHRlcjA7XG4gICAgLS1hcnRpY2xlLW1pbi13aWR0aDogMjIwcHg7XG4gIH1cblxuICAuYXJ0aWNsZSB7XG4gICAgY29sb3I6ICRmb250LWNvbG91cjtcbiAgICAtLWltYWdlLXdpZHRoOiAxMjBweDtcbiAgICAtLWltYWdlLXdpZHRoOiBjbGFtcCgxMDBweCwgMTF2dywgMjAwcHgpO1xuICAgIC5jb250YWluZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBwYWRkaW5nOiAkZ2FwICRnYXAgJGdhcCBjYWxjKHZhcigtLWltYWdlLXdpZHRoKSArICN7JGdhcH0pO1xuICAgICAgbWluLWhlaWdodDogMTIwcHg7XG4gICAgICAuaGVhZGluZyB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICAgIHRpbWUge1xuICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDA7XG4gICAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICAgIH1cbiAgICAgIC5pbWFnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1pbWFnZS13aWR0aCk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjpyb290IHtcbiAgLS1hcnRpY2xlLW1pbi13aWR0aDogMzAwcHg7XG59XG5cbmFydGljbGUtbGlzdCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ndXR0ZXIxKTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgodmFyKC0tYXJ0aWNsZS1taW4td2lkdGgpLCAxZnIpKTtcbn1cbmFydGljbGUtbGlzdFtjbGFzcyo9Y29sdW1ucy1dIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCh2YXIoLS1hcnRpY2xlLW1pbi13aWR0aCksIDFmcikpO1xufVxuYXJ0aWNsZS1saXN0LmNvbHVtbnMtMSB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xufVxuYXJ0aWNsZS1saXN0LmNvbHVtbnMtMiB7XG4gIC0tYXJ0aWNsZS1taW4td2lkdGg6IDQ0MHB4O1xufVxuYXJ0aWNsZS1saXN0LmNvbHVtbnMtMyB7XG4gIC0tYXJ0aWNsZS1taW4td2lkdGg6IDQwMHB4O1xufVxuYXJ0aWNsZS1saXN0LmNvbHVtbnMtNCB7XG4gIC0tYXJ0aWNsZS1taW4td2lkdGg6IDM1MHB4O1xufVxuYXJ0aWNsZS1saXN0LmNvbHVtbnMtNSB7XG4gIGdhcDogdmFyKC0tZ3V0dGVyMCk7XG4gIC0tYXJ0aWNsZS1taW4td2lkdGg6IDI1MHB4O1xufVxuYXJ0aWNsZS1saXN0LmNvbHVtbnMtNiB7XG4gIGdhcDogdmFyKC0tZ3V0dGVyMCk7XG4gIC0tYXJ0aWNsZS1taW4td2lkdGg6IDIyMHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIGFydGljbGUtbGlzdFtjbGFzcyo9Y29sdW1ucy1dIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxufVxuXG5ib2R5OmhhcyhzaWRlLWJhcikgbWFpbiBhcnRpY2xlLWxpc3QuY29sdW1ucy0yIHtcbiAgLS1hcnRpY2xlLW1pbi13aWR0aDogMzIwcHg7XG59XG5ib2R5OmhhcyhzaWRlLWJhcikgbWFpbiBhcnRpY2xlLWxpc3QuY29sdW1ucy0zIHtcbiAgLS1hcnRpY2xlLW1pbi13aWR0aDogMjUwcHg7XG59XG5ib2R5OmhhcyhzaWRlLWJhcikgbWFpbiBhcnRpY2xlLWxpc3QuY29sdW1ucy00IHtcbiAgLS1hcnRpY2xlLW1pbi13aWR0aDogMjAwcHg7XG59XG5ib2R5OmhhcyhzaWRlLWJhcikgbWFpbiBhcnRpY2xlLWxpc3QuY29sdW1ucy01IHtcbiAgLS1hcnRpY2xlLW1pbi13aWR0aDogMjAwcHg7XG59XG5cbnNpZGUtYmFyIGFydGljbGUtbGlzdCB7XG4gIC0tZm9udC1jb2xvdXI6ICM2YTZhNmE7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gIGJvcmRlcjogbm9uZTtcbiAgZ3JpZC1nYXA6IHZhcigtLWdhcCk7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5zaWRlLWJhciBhcnRpY2xlLWxpc3QuY29sdW1ucy02IHtcbiAgZ2FwOiB2YXIoLS1ndXR0ZXIwKTtcbiAgLS1hcnRpY2xlLW1pbi13aWR0aDogMjIwcHg7XG59XG5zaWRlLWJhciBhcnRpY2xlLWxpc3QgLmFydGljbGUge1xuICBjb2xvcjogIzZhNmE2YTtcbiAgLS1pbWFnZS13aWR0aDogMTIwcHg7XG4gIC0taW1hZ2Utd2lkdGg6IGNsYW1wKDEwMHB4LCAxMXZ3LCAyMDBweCk7XG59XG5zaWRlLWJhciBhcnRpY2xlLWxpc3QgLmFydGljbGUgLmNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IHZhcigtLWdhcCkgdmFyKC0tZ2FwKSB2YXIoLS1nYXApIGNhbGModmFyKC0taW1hZ2Utd2lkdGgpICsgdmFyKC0tZ2FwKSk7XG4gIG1pbi1oZWlnaHQ6IDEyMHB4O1xufVxuc2lkZS1iYXIgYXJ0aWNsZS1saXN0IC5hcnRpY2xlIC5jb250YWluZXIgLmhlYWRpbmcge1xuICBmb250LXNpemU6IDEuMDYyNWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBtYXJnaW46IDA7XG59XG5zaWRlLWJhciBhcnRpY2xlLWxpc3QgLmFydGljbGUgLmNvbnRhaW5lciB0aW1lIHtcbiAgb3JkZXI6IDE7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIGNvbG9yOiAjOTY5Njk1O1xufVxuc2lkZS1iYXIgYXJ0aWNsZS1saXN0IC5hcnRpY2xlIC5jb250YWluZXIgLmltYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IHZhcigtLWltYWdlLXdpZHRoKTtcbiAgaGVpZ2h0OiAxMDAlO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZigkbWluID09IDAsIDBweCwgJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQnJlYWsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicmVha1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIG91dCgkYnJlYWtwb2ludCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDojeyRicmVha3BvaW50ICsgMX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaW4oJGJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6I3skYnJlYWtwb2ludH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gYmV0d2VlbigkbWluLCAkbWF4KSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiN7JG1pbn0pIGFuZCAobWF4LXdpZHRoOiN7JG1heH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xvdXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8gRXhwbGljaXQgQ29sb3VycyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEV4cGxpY2l0IGNvbG91cnMgYXJlIGEgd2hhdCB0aGV5IGFyZS4gR3JlZW4gaXMgZ3JlZW4sIGJsdWUgaXMgYmx1ZS4uLiBubyBvYnNjdXJpdHkuXG4vLy8gV2Ugc3VmZml4IG51bWJlcnMgdG8gZGVmaW5lIHZhcmlhdGlvbnMgb2YgY29sb3VycyBpbiBubyBwYXJ0aWN1bGFyIG9yZGVyIG9mIHNoYWRlLlxuLy8vIEV4YW1wbGU6IGdyZWVuMSwgZ3JlZW4yLCBncmVlbjMsIGdyZWVuNC4gVGhpcyBpcyBzbyB3ZSBjYW4gaW1taWRpYXRlbHkgc2VlIGhvd1xuLy8vIG1hbnkgb3B0aW9ucyB3ZSBoYXZlIGZvciBhIHNpbmdsZSBjb2xvdXIgYXQgYSBnbGFuY2UuIElmIHlvdSBzZWUgJGdyZWVuNCwgeW91IGtub3cgdGhpc1xuLy8vIHByb2plY3QgaXMgdXNpbmcgZm91ciB2YXJpYXRpb25zIG9mIGdyZWVuLiBUaGlzIGlzIGFsc28gb2Z0ZW4gdXNlZnVsIGJlY2F1c2UgbWFueSBkZXZlbG9wbWVudFxuLy8vIHRvb2xzIHdpbGwgYXV0by1zdWdnZXN0IGNvbG91cnMgd2l0aCBhY3R1YWwgZXhhbXBsZXMgb2YgdGhlIGNvbG91ci5cbi8vLyBUaGUgUGFsbGV0ZXMgbW9kdWxlIChhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSkgd2lsbCBvdXRwdXQgc2hhZGVkIG5hbWVkIHZhcmlhdGlvbnMsXG4vLy8vIDxjb2xvdXI+LWRhcmsgYW5kIDxjb2xvdXI+LWxpZ2h0LiBJZiB5b3UgbmVlZCBhZGRpdGlvbmFsIHNoYWRlcyBwbGVhc2UgcmVmcmFpbSBmcm9tIGdvaW5nIGRvd25cbi8vLyB0aGUgJ2xpZ2h0ZXInLCAnbGlnaHRlc3QnLCAnZGFya2VyJywgJ2Rhcmtlc3QnIGNvbnZlbnRpb24uIFRoZXNlIGFyZSBub3QgcGFydGljdWFybHkgbGVnaWFibGVcbi8vLyBhbmQgdGhleSBhcmUgbGltaXRlZCBieSBob3cgY3JlYXRpdmUgKGNvbmZ1c2luZykgeW91ciB3b3JkaW5nIGNhbiBiZS5cbi8vLyBJdCBpcyBiZXR0ZXIgdG8gZGVmaW5lIGEgbmV3IGV4cGxjaXQgY29sb3VyIGVudGlyZWx5LlxuLy8vIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS93aGF0LWRvLXlvdS1uYW1lLWNvbG9yLXZhcmlhYmxlcy9cblxuJGJsdWU6ICMxMzFmNmI7IC8vIFByaW1hcnlcbiRibHVlMjogIzI5MmI2ODsgLy8gTmFrZWQgTGlua1xuJGJsdWUzOiAjM2QzZjdmOyAvLyBMaWdudCBHcmFkaWVudFxuJGJsdWU0OiAjMTAxMjRkOyAvLyBEYXJrIEdyYWRpZW50XG4kYmx1ZTU6ICMwMDk1ZmY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlclxuLy8gJHJlZCAgICA6ICNFMDNBNDA7IC8vIFNlY29uZGFyeVxuJHJlZDogI2RmMzAzNTsgLy8gU2Vjb25kYXJ5IC0gVGhpcyBwYXNzZXMgdGhlIGNvbnRyYXN0IHJhdGlvIGFjY2Vzc2liaWxpdHkgdGVzdCBpbiBHb29nbGVzIExpZ2h0aG91c2VcbiRncmV5OiAjOTY5Njk1O1xuJGdyZXkyOiAjNmE2YTZhOyAvLyBGb250XG4kZ3JleTM6ICNmNGY0ZjQ7IC8vIExpZ2h0ZXIgR3JleSBCYWNrZ3JvdW5kXG4kZ3JleTQ6ICNkY2RjZGM7XG4kZ3JleTU6ICNiMWIxYjE7IC8vIFNwYWNlcnMgPGhyPlxuJGdyZXk2OiAjMzMzMjM2OyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXJcbiRncmVlbjogIzUwYmMwODtcbiRncmVlbjI6ICM3NmJiMjg7IC8vIEVTRyBncmVlblxuJHllbGxvdzogI2Y2ZjRkYjsgLy8gRGlzY2xhaW1lciBCYWNrZ3JvdW5kXG4keWVsbG93MjogI2ZjYjAwMjtcbiRvcmFuZ2U6ICNmZjZhMDA7XG4kb3JhbmdlMjogI2RhOGIwZjtcbiRibGFjazogIzFlMWMxYztcblxuJG1hcms6ICRibHVlNTsgLy8gYmFja2dyb3VuZCBjb2xvdXIgZm9yIDxtYXJrPiB0YWdzXG5cbiRwcmltYXJ5OiB2YXIoLS1wcmltYXJ5LCAjeyRibHVlfSk7XG4kc2Vjb25kYXJ5OiB2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuXG4vLy8gUGFsZXR0ZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEJ5IGxvYWRpbmcgY29uZmlndXJhdGlvbnMgaW50byB0aGlzICdwYWxsZXRlJyBtb2R1bGUsIHdlIHdpbGwgYmUgYWJsZVxuLy8vIHRvIGRlY2xhcmUgdmFyaWFudHMgb2YgYSBmZXcgY29tbW9uIGNvbG91cnMuIFlvdSBjYW4gYWxzbyBhZGp1c3QgdGhlIGxpZ2h0bmVzc1xuLy8vIG9yIGRhcmtuZXNzIG9mIGVhY2ggdmFyaWFudCBieSBwYXNzaW5nIGluIHRoZSByZWxldmFudCBwcml2YXRlIHJ1bGVzLlxuLy8vIFBhbGV0dGUgd2lsbCBhbHNvIGV4cG9zZSBwb3B1bGFyIHNvY2lhbCBtZWRpYSBjb2xvdXJzIGFuZCB0aGUgWWVsbG8gYnJhbmQgY29sb3VyLlxuLy8vIEBzZWUgaHR0cHM6Ly9zYXNzLWxhbmcuY29tL2RvY3VtZW50YXRpb24vYXQtcnVsZXMvZm9yd2FyZCNjb25maWd1cmluZy1tb2R1bGVzXG4vLy8gQG91dHB1dCAkZ3JlZW4gOiAjMDI5MjlBOyAkZ3JlZW4tZGFyayA6ICMyNTY1Njk7ICRncmVlbi1saWdodDogIzA0YjljNDtcblxuQGZvcndhcmQgJ2NyZWF0ZS9wYWxldHRlJyB3aXRoIChcbiAgJGJsdWU6ICRibHVlLFxuICAkcmVkOiAkcmVkLFxuICAkZ3JleTogJGdyZXksXG4gICR5ZWxsb3c6ICR5ZWxsb3csXG4gICRvcmFuZ2U6ICRvcmFuZ2UsXG4gICRncmVlbjogJGdyZWVuLFxuICAkYmxhY2s6ICRibGFja1xuKTtcblxuJG1hcDogKFxuICBibHVlOiAkYmx1ZSxcbiAgcmVkOiAkcmVkLFxuICBncmV5OiAkZ3JleTMsXG4gIHllbGxvdzogJHllbGxvdyxcbiAgb3JhbmdlOiAkb3JhbmdlLFxuICBncmVlbjogJGdyZWVuLFxuICBibGFjazogJGJsYWNrLFxuKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIZWFkaW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnc2FzczptZXRhJztcbkB1c2UgJ3Nhc3M6bWF0aCc7XG5AdXNlICcuL2NvbGxlY3Rpb25zL2ZvbnQnO1xuQHVzZSAnLi9tb2R1bGVzL3VuaXQnO1xuXG4vLyBEZWZhdWx0IEhlYWRpbmcgVmFsdWVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kaDEgOiAoXG4gICdmb250LXNpemUnICAgOiAzLjByZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjFcbikgIWRlZmF1bHQ7XG5cbiRoMiA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuNXJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuM1xuKSAhZGVmYXVsdDtcblxuJGgzIDogKFxuICAnZm9udC1zaXplJyAgIDogMi4ycmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDQgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjByZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNSA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDEuOHJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg2IDogKFxuICAnZm9udC1zaXplJyAgIDogMS42cmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kYmFzZSA6IDYyLjUgIWRlZmF1bHQ7XG4kc2NhbGVyIDogMS41dncgIWRlZmF1bHQ7XG4kZW5hYmxlLWNyb3BwaW5nIDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEZhbGxiYWNrIExpbmUtaGVpZ2h0cyBzaG91bGQgdGhleSBub3QgaGF2ZSBiZWVuIHBhc3NlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGgxLCBcImxpbmUtaGVpZ2h0XCIpIHsgJGgxIDogbWFwLnNldCgkaDEsICdsaW5lLWhlaWdodCcsIDEuMSk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGgyLCBcImxpbmUtaGVpZ2h0XCIpIHsgJGgyIDogbWFwLnNldCgkaDIsICdsaW5lLWhlaWdodCcsIDEuMyk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGgzLCBcImxpbmUtaGVpZ2h0XCIpIHsgJGgzIDogbWFwLnNldCgkaDMsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGg0LCBcImxpbmUtaGVpZ2h0XCIpIHsgJGg0IDogbWFwLnNldCgkaDQsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGg1LCBcImxpbmUtaGVpZ2h0XCIpIHsgJGg1IDogbWFwLnNldCgkaDUsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cbkBpZiBub3QgbWFwLmhhcy1rZXkoJGg2LCBcImxpbmUtaGVpZ2h0XCIpIHsgJGg2IDogbWFwLnNldCgkaDYsICdsaW5lLWhlaWdodCcsIDEuNCk7IH1cblxuLy8gRGVmaW5lIHRoZSB2YXJpYWJsZXMgc28gdGhleSBhcmUgc3RpbGwgYWNjZXNpYmxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGgxLWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoMSwgJ2ZvbnQtc2l6ZScpO1xuJGgxLWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoMSwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDEtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoMSwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoMSwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDEtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoMSwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGgxLCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoMi1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDIsICdmb250LXNpemUnKTtcbiRoMi1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDIsICdsaW5lLWhlaWdodCcpO1xuJGgyLWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDIsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDIsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGgyLXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDIsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoMiwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDMtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGgzLCAnZm9udC1zaXplJyk7XG4kaDMtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGgzLCAnbGluZS1oZWlnaHQnKTtcbiRoMy1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGgzLCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGgzLCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoMy1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGgzLCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDMsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGg0LWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoNCwgJ2ZvbnQtc2l6ZScpO1xuJGg0LWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoNCwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDQtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoNCwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoNCwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDQtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoNCwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGg0LCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoNS1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDUsICdmb250LXNpemUnKTtcbiRoNS1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDUsICdsaW5lLWhlaWdodCcpO1xuJGg1LWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDUsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDUsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGg1LXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDUsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoNSwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDYtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGg2LCAnZm9udC1zaXplJyk7XG4kaDYtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGg2LCAnbGluZS1oZWlnaHQnKTtcbiRoNi1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGg2LCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGg2LCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoNi1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGg2LCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDYsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuLy8gSGFuZGxlcyBDcm9wcyBzaG91bGQgdGhleSBub3QgaGF2ZSBiZWVuIHBhc3NlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJF9oMS1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoMSwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDEsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDItY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDIsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGgyLCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2gzLWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGgzLCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoMywgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oNC1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoNCwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDQsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDUtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDUsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGg1LCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2g2LWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGg2LCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoNiwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuXG4kX2gxLWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGgxLCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoMSwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oMi1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoMiwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDIsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDMtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDMsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGgzLCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2g0LWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGg0LCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoNCwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oNS1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoNSwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDUsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDYtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDYsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGg2LCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG5cblxuLy8gTWl4aW5zIGZvciBlYWNoIGhlYWRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIF9zZXQtY3JvcCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRjcm9wKSB7XG5cbiAgQGlmIChtZXRhLnR5cGUtb2YoJGNyb3ApID09ICdtYXAnKSB7XG5cbiAgICAkZm9udC1zaXplICAgOiB1bml0LnN0cmlwKCRmb250LXNpemUpICogMTA7XG4gICAgJGxpbmUtaGVpZ2h0IDogdW5pdC5zdHJpcCgkbGluZS1oZWlnaHQpO1xuICAgICR0b3AgICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRjcm9wLCBcInRvcFwiKSwgdW5pdC5zdHJpcChtYXAuZ2V0KCRjcm9wLCBcInRvcFwiKSksIDApO1xuICAgICRib3R0b20gICAgICA6IGlmKG1hcC5oYXMta2V5KCRjcm9wLCBcImJvdHRvbVwiKSwgdW5pdC5zdHJpcChtYXAuZ2V0KCRjcm9wLCBcImJvdHRvbVwiKSksIDApO1xuXG4gICAgQGluY2x1ZGUgZm9udC5jcm9wKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJHRvcCwgJGJvdHRvbSk7XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBoMSgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMS1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMS1mb250LXNpemUtbWluIGFuZCAkaDEtZm9udC1zaXplLW1pbiA8ICRoMS1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgxLWZvbnQtc2l6ZS1taW4pfSwgI3skaDEtc2NhbGVyfSwgI3tmb250LnNpemUoJGgxLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgxLWZvbnQtc2l6ZSwgJGgxLWxpbmUtaGVpZ2h0LCAkX2gxLWNyb3AtdG9wLCAkX2gxLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDEtbGluZS1oZWlnaHQ7IFxuICAgIH1cblxuICB9XG5cbn1cblxuQG1peGluIGgyKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgyLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgyLWZvbnQtc2l6ZS1taW4gYW5kICRoMi1mb250LXNpemUtbWluIDwgJGgyLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDItZm9udC1zaXplLW1pbil9LCAjeyRoMi1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDItZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDItZm9udC1zaXplLCAkaDItbGluZS1oZWlnaHQsICRfaDItY3JvcC10b3AsICRfaDItY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMi1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGgzKCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGgzLWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGgzLWZvbnQtc2l6ZS1taW4gYW5kICRoMy1mb250LXNpemUtbWluIDwgJGgzLWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDMtZm9udC1zaXplLW1pbil9LCAjeyRoMy1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDMtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDMtZm9udC1zaXplLCAkaDMtbGluZS1oZWlnaHQsICRfaDMtY3JvcC10b3AsICRfaDMtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoMy1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGg0KCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGg0LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGg0LWZvbnQtc2l6ZS1taW4gYW5kICRoNC1mb250LXNpemUtbWluIDwgJGg0LWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDQtZm9udC1zaXplLW1pbil9LCAjeyRoNC1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDQtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDQtZm9udC1zaXplLCAkaDQtbGluZS1oZWlnaHQsICRfaDQtY3JvcC10b3AsICRfaDQtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNC1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGg1KCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGg1LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGg1LWZvbnQtc2l6ZS1taW4gYW5kICRoNS1mb250LXNpemUtbWluIDwgJGg1LWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDUtZm9udC1zaXplLW1pbil9LCAjeyRoNS1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDUtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkaDUtZm9udC1zaXplLCAkaDUtbGluZS1oZWlnaHQsICRfaDUtY3JvcC10b3AsICRfaDUtY3JvcC1ib3R0b20gKTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICBsaW5lLWhlaWdodCA6ICRoNS1saW5lLWhlaWdodDsgXG4gICAgfVxuICAgIFxuICB9XG5cbn1cblxuQG1peGluIGg2KCRmb250LXNpemUtb25seSA6IGZhbHNlLCAkY3JvcCA6ICRlbmFibGUtY3JvcHBpbmcpIHtcblxuICBmb250LXNpemUgOiBmb250LnNpemUoJGg2LWZvbnQtc2l6ZSk7XG5cbiAgQGlmICggJGg2LWZvbnQtc2l6ZS1taW4gYW5kICRoNi1mb250LXNpemUtbWluIDwgJGg2LWZvbnQtc2l6ZSApIHtcbiAgICBmb250LXNpemUgOiBjbGFtcCgje2ZvbnQuc2l6ZSgkaDYtZm9udC1zaXplLW1pbil9LCAjeyRoNi1zY2FsZXJ9LCAje2ZvbnQuc2l6ZSgkaDYtZm9udC1zaXplKX0pO1xuICB9XG5cbiAgQGlmIG5vdCAkZm9udC1zaXplLW9ubHkgeyBcblxuICAgIEBpZiAoICRjcm9wICkgeyBcbiAgICAgIEBpbmNsdWRlIGZvbnQuY3JvcDIoJGg2LWZvbnQtc2l6ZSwgJGg2LWxpbmUtaGVpZ2h0LCAkX2g2LWNyb3AtdG9wLCAkX2g2LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDYtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cblxuIl19 */