/* ==========================================================================
   Report
   ---
   Report Templates (Classic and Interactive)
   ========================================================================== */
.a-Report-pagination,
.a-Report-pagination table, .a-Report-report {
  border-collapse: collapse;
  table-layout: auto;
  border-spacing: 0; }

/* ==========================================================================
  Report Container
   ========================================================================== */
.a-Report {
  display: block;
  overflow: auto;
  *zoom: 1; }
  .sql-workshop-iframe-page .a-Report {
    overflow: visible; }
  .a-Report:before, .a-Report:after {
    content: " ";
    display: table; }
  .a-Report:after {
    clear: both; }

/* ==========================================================================
   Report Pagination
   ========================================================================== */
.a-Report-pagination {
  width: 100%; }
  .a-Report-pagination td.pagination {
    padding: 4px; }
  .a-Report-pagination td:empty {
    display: none; }

.a-Report-paginationText {
  color: #707070;
  font-size: 1.2rem;
  line-height: 1.6rem;
  padding: 0px 8px; }

/**
 * Bottom Pagination
 */
/**
 * Pagination Link
 */
.a-Report-paginationLink {
  display: inline-block;
  font-size: 1.2rem;
  line-height: 1.6rem; }

/* ==========================================================================
   Report Links
   ---
   External link and CSV link
   ========================================================================== */
.a-Report-links {
  clear: both;
  display: block;
  border: 1px solid #F0F0F0;
  border-top-width: 0;
  padding: 8px;
  background: #FAFAFA; }
  .a-Report-links:empty {
    display: none; }

/* ==========================================================================
   Report Wrapper
   ========================================================================== */
.a-Report-wrap {
  float: left; }

/* ==========================================================================
   Report
   ========================================================================== */
/**
 * Column Header
 */
.a-Report-colHead {
  background-color: #F8F8F8;
  vertical-align: bottom;
  padding: 12px;
  color: #404040;
  font-weight: bold;
  -webkit-font-smoothing: antialiased; }

.a-Report-cell--header {
  background-color: #F8F8F8 !important;
  font-weight: bold;
  white-space: nowrap; }

/**
 * Table Cell
 */
.a-Report-cell {
  padding: 8px 12px;
  color: #404040;
  transition: background-color .1s;
  background-color: #fff; }

.a-Report-report tr:nth-child(even) .a-Report-cell {
  background-color: #FAFAFA; }

/* ==========================================================================
   .a-Report
   ---
   Standard Report (Bordered)
   ========================================================================== */
.a-Report-cell,
.a-Report-colHead {
  border-left: 1px solid #F0F0F0;
  border-top: 1px solid #F0F0F0; }

.a-Report-report tr .a-Report-cell:last-child,
.a-Report-report tr .a-Report-colHead:last-child {
  border-right: 1px solid #F0F0F0; }

.a-Report-report tr:last-child .a-Report-cell {
  border-bottom: 1px solid #F0F0F0; }

/* ==========================================================================
   .a-Report--noBorders
   ---
   Borderless Report
   ========================================================================== */
.a-Report--noBorders .a-Report-links {
  background-color: transparent;
  border-width: 0; }

.a-Report--noBorders .a-Report-cell,
.a-Report--noBorders .a-Report-colHead {
  border-left-width: 0;
  border-top-width: 0; }

.a-Report--noBorders .a-Report-report tr .a-Report-cell:last-child,
.a-Report--noBorders .a-Report-report tr .a-Report-colHead:last-child {
  border-right-width: 0; }

.a-Report--noBorders .a-Report-report tr:last-child .a-Report-cell {
  border-bottom-width: 0; }

/* ==========================================================================
   .a-Report--stretch
   ---
   Stertch report to 100% width of container
   ========================================================================== */
.a-Report--stretch .a-Report-wrap,
.a-Report--stretch .a-Report-report {
  width: 100%; }

/* ==========================================================================
   .a-Report--confirmReport
   ---
   Used for wizard confirmation reports
   ========================================================================== */
.a-Report--confirmReport {
  width: 60%;
  margin-left: auto;
  margin-right: auto; }
  .a-Report--confirmReport .a-Report-cell,
  .a-Report--confirmReport .a-Report-colHead {
    padding: 12px; }
  .a-Report--confirmReport .a-Report-cell--header {
    width: 50%; }

/* ==========================================================================
   .a-Report--inline
   ---
   Remove outer borders and header background color
   ========================================================================== */
.a-Report--inline .a-Report-links {
  border-left-width: 0;
  border-right-width: 0; }

.a-Report--inline .a-Report-colHead {
  border-top-width: 0;
  background-color: #FFF;
  border-bottom: 1px solid #F0F0F0; }

.a-Report--inline .a-Report-report tr .a-Report-cell:first-child,
.a-Report--inline .a-Report-report tr .a-Report-colHead:first-child {
  border-left-width: 0; }

.a-Report--inline .a-Report-report tr .a-Report-cell:last-child,
.a-Report--inline .a-Report-report tr .a-Report-colHead:last-child {
  border-right-width: 0; }

/* ==========================================================================
   .a-Report--staticRowColors
   ---
   Stertch report to 100% width of container
   ========================================================================== */
.a-Report--staticRowColors .a-Report-report tr:nth-child(even) .a-Report-cell {
  background-color: #FFF; }

/* ==========================================================================
   .a-Report--horizontalBorders
   ---
   Stertch report to 100% width of container
   ========================================================================== */
.a-Report--horizontalBorders .a-Report-cell,
.a-Report--horizontalBorders .a-Report-colHead {
  border-left-width: 0; }

.a-Report--horizontalBorders .a-Report-report tr .a-Report-cell:first-child,
.a-Report--horizontalBorders .a-Report-report tr .a-Report-colHead:first-child {
  border-left-width: 1px; }

.a-Report--horizontalBorders .a-Report-report tr .a-Report-cell:last-child,
.a-Report--horizontalBorders .a-Report-report tr .a-Report-colHead:last-child {
  border-right-width: 1px; }

/* ==========================================================================
   .a-Report--verticalBorders
   ---
   Stertch report to 100% width of container
   ========================================================================== */
.a-Report--verticalBorders .a-Report-cell {
  border-top-width: 0; }

.a-Report--verticalBorders .a-Report-report tr:first-child .a-Report-cell {
  border-top-width: 1px; }

/* ==========================================================================
   .a-Report--rowHighlight
   ---
   Stertch report to 100% width of container
   ========================================================================== */
.a-Report--rowHighlight .a-Report-report tr:hover .a-Report-cell,
.a-Report--rowHighlight .a-Report-report tr:nth-child(even):hover .a-Report-cell {
  background-color: #F4F4F4; }

/* ==========================================================================
   .a-Report--condensed
   ---
   Condensed Report (Smaller fonts + smaller padding)
   ========================================================================== */
.a-Report--condensed .a-Report-colHead {
  padding: 8px; }

.a-Report--condensed .a-Report-cell {
  padding: 4px 8px; }

/* ==========================================================================
   .a-Report--vertical
   ---
   Vertical Report for showing key / value pairs
   ========================================================================== */
.a-Report--vertical.a-Report--stretch .a-Report-cell--header {
  width: 20%; }

.a-Report--vertical.a-Report--inline tr:first-child td {
  border-top-width: 0; }

.a-Report--vertical.a-Report--inline tr:last-child td {
  border-bottom-width: 0; }

.t-fht-thead.is-stuck:after {
  content: ' ';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 8px;
  margin-bottom: -8px;
  background-image: linear-gradient(rgba(0, 0, 0, 0.05), transparent);
  z-index: 100; }

/* ==========================================================================
   Percent Chart (Format Mask)
   ========================================================================== */
.a-Report-percentChart-fill {
  background-color: #399BEA; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlcG9ydC5zY3NzIiwiLi4vbW9kdWxlcy9fY29tbW9uLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0E7Ozs7Z0ZBSWdGO0FBa0NoRjs7RUEvQkUsMEJBQTBCO0VBQzFCLG1CQUFtQjtFQUNuQixrQkFBa0IsRUFDbkI7O0FBR0Q7O2dGQUVnRjtBQUNoRjtFQUNFLGVBQWU7RUFDZixlQUFlO0dDU2QsUUFBUyxFREpYO0VBSkM7SUFDRSxrQkFBa0IsRUFDbkI7RUFMSDtJQ0tPLGFBQWE7SUFDYixlQUFlLEVBQ2xCO0VEUEo7SUNTTyxZQUFZLEVBQ2Y7O0FEQUo7O2dGQUVnRjtBQUNoRjtFQUNFLFlBQVksRUFPYjtFQVJEO0lBR0ksYUFBYSxFQUNkO0VBSkg7SUFNSSxjQUFjLEVBQ2Y7O0FBT0g7RUFDRSxlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixpQkFBaUIsRUFDbEI7O0FBQ0Q7O0dBRUc7QUFJSDs7R0FFRztBQUNGO0VBQ0Msc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQixvQkFBb0IsRUFDcEI7O0FBRUY7Ozs7Z0ZBSWdGO0FBQ2hGO0VBQ0UsWUFBWTtFQUNaLGVBQWU7RUFDZiwwQkFBMEI7RUFDMUIsb0JBQW9CO0VBQ3BCLGFBQWE7RUFDYixvQkFBb0IsRUFJckI7RUFWRDtJQVFJLGNBQWMsRUFDZjs7QUFHSDs7Z0ZBRWdGO0FBQ2hGO0VBQ0UsWUFBWSxFQUNiOztBQUNEOztnRkFFZ0Y7QUFRaEY7O0dBRUc7QUFDSDtFQUNFLDBCQUEwQjtFQUMxQix1QkFBdUI7RUFDdkIsY0FBYztFQUNkLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsb0NBQW9DLEVBQ3JDOztBQUNEO0VBQ0UscUNBQXFDO0VBQ3JDLGtCQUFrQjtFQUNsQixvQkFBb0IsRUFDckI7O0FBRUE7O0dBRUU7QUFDRjtFQUNDLGtCQUFrQjtFQUNsQixlQUFlO0VBQ2YsaUNBQWlDO0VBQ2pDLHVCQUF1QixFQUN2Qjs7QUFFRjtFQUNFLDBCQUEwQixFQUMzQjs7QUFHQTs7OztnRkFJK0U7QUFFaEY7O0VBRUUsK0JBQStCO0VBQy9CLDhCQUE4QixFQUMvQjs7QUFDRDs7RUFFRSxnQ0FBZ0MsRUFDakM7O0FBQ0Q7RUFDRSxpQ0FBaUMsRUFDbEM7O0FBRUE7Ozs7Z0ZBSStFO0FBQ2hGO0VBRUksOEJBQThCO0VBQzlCLGdCQUFnQixFQUNqQjs7QUFKSDs7RUFPSSxxQkFBcUI7RUFDckIsb0JBQW9CLEVBQ3JCOztBQVRIOztFQVlJLHNCQUFzQixFQUN2Qjs7QUFiSDtFQWVJLHVCQUF1QixFQUN4Qjs7QUFHSDs7OztnRkFJZ0Y7QUFDaEY7O0VBR0ksWUFBWSxFQUNiOztBQUdIOzs7O2dGQUlnRjtBQUNoRjtFQVFFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsbUJBQW1CLEVBQ3BCO0VBWEQ7O0lBR0ksY0FBYyxFQUNmO0VBSkg7SUFNSSxXQUFXLEVBQ1o7O0FBTUg7Ozs7Z0ZBSWdGO0FBQ2hGO0VBRUkscUJBQXFCO0VBQ3JCLHNCQUFzQixFQUN2Qjs7QUFKSDtFQU1JLG9CQUFvQjtFQUNwQix1QkFBdUI7RUFDdkIsaUNBQWlDLEVBQ2xDOztBQVRIOztFQWVJLHFCQUFxQixFQUN0Qjs7QUFoQkg7O0VBbUJJLHNCQUFzQixFQUN2Qjs7QUFJSDs7OztnRkFJZ0Y7QUFDaEY7RUFFSSx1QkFBdUIsRUFDeEI7O0FBR0g7Ozs7Z0ZBSWdGO0FBQ2hGOztFQUdJLHFCQUFxQixFQUN0Qjs7QUFKSDs7RUFPSSx1QkFBdUIsRUFDeEI7O0FBUkg7O0VBV0ksd0JBQXdCLEVBQ3pCOztBQUdIOzs7O2dGQUlnRjtBQUNoRjtFQUVJLG9CQUFvQixFQUNyQjs7QUFISDtFQUtJLHNCQUFzQixFQUN2Qjs7QUFHSDs7OztnRkFJZ0Y7QUFDaEY7O0VBR0ksMEJBQTBCLEVBQzNCOztBQUdIOzs7O2dGQUlnRjtBQUNoRjtFQUVJLGFBQWEsRUFDZDs7QUFISDtFQUtJLGlCQUFpQixFQUNsQjs7QUFJRjs7OztnRkFJK0U7QUFFaEY7RUFHTSxXQUFXLEVBQ1o7O0FBSkw7RUFRTSxvQkFBb0IsRUFDckI7O0FBVEw7RUFXTSx1QkFBdUIsRUFDeEI7O0FBSUw7RUFHSSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFFBQVE7RUFDUixVQUFVO0VBQ1YsWUFBWTtFQUNaLFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsb0VBQWlDO0VBQ2pDLGFBQWEsRUFDZDs7QUFHSDs7Z0ZBRWdGO0FBR2hGO0VBQ0UsMEJBQTBCLEVBQzNCIiwiZmlsZSI6IlJlcG9ydC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS1cbi8vIEltcG9ydCBDb21wYXNzXG4vLyAtLS1cbkBpbXBvcnQgXCIuLi9tb2R1bGVzL2NvbW1vblwiO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUmVwb3J0XG4gICAtLS1cbiAgIFJlcG9ydCBUZW1wbGF0ZXMgKENsYXNzaWMgYW5kIEludGVyYWN0aXZlKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuJXRhYmxlUmVzZXQge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB0YWJsZS1sYXlvdXQ6IGF1dG87XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIFJlcG9ydCBDb250YWluZXJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYS1SZXBvcnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC5zcWwtd29ya3Nob3AtaWZyYW1lLXBhZ2UgICYge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSZXBvcnQgUGFnaW5hdGlvblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hLVJlcG9ydC1wYWdpbmF0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRkLnBhZ2luYXRpb24ge1xuICAgIHBhZGRpbmc6IDRweDtcbiAgfVxuICB0ZDplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmEtUmVwb3J0LXBhZ2luYXRpb24sXG5cbi5hLVJlcG9ydC1wYWdpbmF0aW9uIHRhYmxlIHtcbiAgQGV4dGVuZCAldGFibGVSZXNldDtcbn1cbi5hLVJlcG9ydC1wYWdpbmF0aW9uVGV4dCB7XG4gIGNvbG9yOiAjNzA3MDcwO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNnJlbTtcbiAgcGFkZGluZzogMHB4IDhweDtcbn1cbi8qKlxuICogQm90dG9tIFBhZ2luYXRpb25cbiAqL1xuLmEtUmVwb3J0LXBhZ2luYXRpb24tLWJvdHRvbSB7XG5cbn1cbi8qKlxuICogUGFnaW5hdGlvbiBMaW5rXG4gKi9cbiAuYS1SZXBvcnQtcGFnaW5hdGlvbkxpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBsaW5lLWhlaWdodDogMS42cmVtO1xuIH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJlcG9ydCBMaW5rc1xuICAgLS0tXG4gICBFeHRlcm5hbCBsaW5rIGFuZCBDU1YgbGlua1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hLVJlcG9ydC1saW5rcyB7XG4gIGNsZWFyOiBib3RoO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyOiAxcHggc29saWQgI0YwRjBGMDtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgcGFkZGluZzogOHB4O1xuICBiYWNrZ3JvdW5kOiAjRkFGQUZBO1xuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSZXBvcnQgV3JhcHBlclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hLVJlcG9ydC13cmFwIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUmVwb3J0XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmEtUmVwb3J0LXJlcG9ydCB7XG4gIC8vIHdpZHRoOiAxMDAlO1xuICBAZXh0ZW5kICV0YWJsZVJlc2V0O1xufVxuXG5cblxuLyoqXG4gKiBDb2x1bW4gSGVhZGVyXG4gKi9cbi5hLVJlcG9ydC1jb2xIZWFkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y4RjhGODtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgcGFkZGluZzogMTJweDtcbiAgY29sb3I6ICM0MDQwNDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cbi5hLVJlcG9ydC1jZWxsLS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjhGOEY4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4gLyoqXG4gKiBUYWJsZSBDZWxsXG4gKi9cbiAuYS1SZXBvcnQtY2VsbCB7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBjb2xvcjogIzQwNDA0MDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gfVxuXG4uYS1SZXBvcnQtcmVwb3J0IHRyOm50aC1jaGlsZChldmVuKSAuYS1SZXBvcnQtY2VsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUZBRkE7XG59XG5cblxuIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAuYS1SZXBvcnRcbiAgIC0tLVxuICAgU3RhbmRhcmQgUmVwb3J0IChCb3JkZXJlZClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5hLVJlcG9ydC1jZWxsLFxuLmEtUmVwb3J0LWNvbEhlYWQge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNGMEYwRjA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRjBGMEYwO1xufVxuLmEtUmVwb3J0LXJlcG9ydCB0ciAuYS1SZXBvcnQtY2VsbDpsYXN0LWNoaWxkLFxuLmEtUmVwb3J0LXJlcG9ydCB0ciAuYS1SZXBvcnQtY29sSGVhZDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0YwRjBGMDtcbn1cbi5hLVJlcG9ydC1yZXBvcnQgdHI6bGFzdC1jaGlsZCAuYS1SZXBvcnQtY2VsbCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjBGMEYwO1xufVxuXG4gLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIC5hLVJlcG9ydC0tbm9Cb3JkZXJzXG4gICAtLS1cbiAgIEJvcmRlcmxlc3MgUmVwb3J0XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmEtUmVwb3J0LS1ub0JvcmRlcnMge1xuICAuYS1SZXBvcnQtbGlua3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgfVxuICAuYS1SZXBvcnQtY2VsbCxcbiAgLmEtUmVwb3J0LWNvbEhlYWQge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIH1cbiAgLmEtUmVwb3J0LXJlcG9ydCB0ciAuYS1SZXBvcnQtY2VsbDpsYXN0LWNoaWxkLFxuICAuYS1SZXBvcnQtcmVwb3J0IHRyIC5hLVJlcG9ydC1jb2xIZWFkOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgfVxuICAuYS1SZXBvcnQtcmVwb3J0IHRyOmxhc3QtY2hpbGQgLmEtUmVwb3J0LWNlbGwge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIC5hLVJlcG9ydC0tc3RyZXRjaFxuICAgLS0tXG4gICBTdGVydGNoIHJlcG9ydCB0byAxMDAlIHdpZHRoIG9mIGNvbnRhaW5lclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hLVJlcG9ydC0tc3RyZXRjaCB7XG4gIC5hLVJlcG9ydC13cmFwLFxuICAuYS1SZXBvcnQtcmVwb3J0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgLmEtUmVwb3J0LS1jb25maXJtUmVwb3J0XG4gICAtLS1cbiAgIFVzZWQgZm9yIHdpemFyZCBjb25maXJtYXRpb24gcmVwb3J0c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hLVJlcG9ydC0tY29uZmlybVJlcG9ydCB7XG4gIC5hLVJlcG9ydC1jZWxsLFxuICAuYS1SZXBvcnQtY29sSGVhZCB7XG4gICAgcGFkZGluZzogMTJweDtcbiAgfVxuICAuYS1SZXBvcnQtY2VsbC0taGVhZGVyIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIHdpZHRoOiA2MCU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAuYS1SZXBvcnQtLWlubGluZVxuICAgLS0tXG4gICBSZW1vdmUgb3V0ZXIgYm9yZGVycyBhbmQgaGVhZGVyIGJhY2tncm91bmQgY29sb3JcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYS1SZXBvcnQtLWlubGluZSB7XG4gIC5hLVJlcG9ydC1saW5rcyB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICB9XG4gIC5hLVJlcG9ydC1jb2xIZWFkIHtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGMEYwRjA7XG4gIH1cbiAgLy8gLmEtUmVwb3J0LXJlcG9ydCB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gIC8vICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgLy8gfVxuICAuYS1SZXBvcnQtcmVwb3J0IHRyIC5hLVJlcG9ydC1jZWxsOmZpcnN0LWNoaWxkLFxuICAuYS1SZXBvcnQtcmVwb3J0IHRyIC5hLVJlcG9ydC1jb2xIZWFkOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgfVxuICAuYS1SZXBvcnQtcmVwb3J0IHRyIC5hLVJlcG9ydC1jZWxsOmxhc3QtY2hpbGQsXG4gIC5hLVJlcG9ydC1yZXBvcnQgdHIgLmEtUmVwb3J0LWNvbEhlYWQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICB9XG59XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIC5hLVJlcG9ydC0tc3RhdGljUm93Q29sb3JzXG4gICAtLS1cbiAgIFN0ZXJ0Y2ggcmVwb3J0IHRvIDEwMCUgd2lkdGggb2YgY29udGFpbmVyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmEtUmVwb3J0LS1zdGF0aWNSb3dDb2xvcnMge1xuICAuYS1SZXBvcnQtcmVwb3J0IHRyOm50aC1jaGlsZChldmVuKSAuYS1SZXBvcnQtY2VsbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgLmEtUmVwb3J0LS1ob3Jpem9udGFsQm9yZGVyc1xuICAgLS0tXG4gICBTdGVydGNoIHJlcG9ydCB0byAxMDAlIHdpZHRoIG9mIGNvbnRhaW5lclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hLVJlcG9ydC0taG9yaXpvbnRhbEJvcmRlcnMge1xuICAuYS1SZXBvcnQtY2VsbCxcbiAgLmEtUmVwb3J0LWNvbEhlYWQge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICB9XG4gIC5hLVJlcG9ydC1yZXBvcnQgdHIgLmEtUmVwb3J0LWNlbGw6Zmlyc3QtY2hpbGQsXG4gIC5hLVJlcG9ydC1yZXBvcnQgdHIgLmEtUmVwb3J0LWNvbEhlYWQ6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIH1cbiAgLmEtUmVwb3J0LXJlcG9ydCB0ciAuYS1SZXBvcnQtY2VsbDpsYXN0LWNoaWxkLFxuICAuYS1SZXBvcnQtcmVwb3J0IHRyIC5hLVJlcG9ydC1jb2xIZWFkOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAuYS1SZXBvcnQtLXZlcnRpY2FsQm9yZGVyc1xuICAgLS0tXG4gICBTdGVydGNoIHJlcG9ydCB0byAxMDAlIHdpZHRoIG9mIGNvbnRhaW5lclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hLVJlcG9ydC0tdmVydGljYWxCb3JkZXJzIHtcbiAgLmEtUmVwb3J0LWNlbGwge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIH1cbiAgLmEtUmVwb3J0LXJlcG9ydCB0cjpmaXJzdC1jaGlsZCAuYS1SZXBvcnQtY2VsbCB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAuYS1SZXBvcnQtLXJvd0hpZ2hsaWdodFxuICAgLS0tXG4gICBTdGVydGNoIHJlcG9ydCB0byAxMDAlIHdpZHRoIG9mIGNvbnRhaW5lclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hLVJlcG9ydC0tcm93SGlnaGxpZ2h0IHtcbiAgLmEtUmVwb3J0LXJlcG9ydCB0cjpob3ZlciAuYS1SZXBvcnQtY2VsbCxcbiAgLmEtUmVwb3J0LXJlcG9ydCB0cjpudGgtY2hpbGQoZXZlbik6aG92ZXIgLmEtUmVwb3J0LWNlbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIC5hLVJlcG9ydC0tY29uZGVuc2VkXG4gICAtLS1cbiAgIENvbmRlbnNlZCBSZXBvcnQgKFNtYWxsZXIgZm9udHMgKyBzbWFsbGVyIHBhZGRpbmcpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmEtUmVwb3J0LS1jb25kZW5zZWQge1xuICAuYS1SZXBvcnQtY29sSGVhZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICB9XG4gIC5hLVJlcG9ydC1jZWxsIHtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICB9XG59XG5cblxuIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAuYS1SZXBvcnQtLXZlcnRpY2FsXG4gICAtLS1cbiAgIFZlcnRpY2FsIFJlcG9ydCBmb3Igc2hvd2luZyBrZXkgLyB2YWx1ZSBwYWlyc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmEtUmVwb3J0LS12ZXJ0aWNhbCB7XG4gICYuYS1SZXBvcnQtLXN0cmV0Y2gge1xuICAgIC5hLVJlcG9ydC1jZWxsLS1oZWFkZXIge1xuICAgICAgd2lkdGg6IDIwJTtcbiAgICB9XG4gIH1cbiAgJi5hLVJlcG9ydC0taW5saW5lIHtcbiAgICB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIH1cbiAgICB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgfVxuICB9XG59XG5cbi50LWZodC10aGVhZC5pcy1zdHVjayB7XG4gIC8vb3ZlcmZsb3c6IHZpc2libGU7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogLThweDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwuMDUpLCByZ2JhKDAsMCwwLCAwKSk7XG4gICAgei1pbmRleDogMTAwO1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQZXJjZW50IENoYXJ0IChGb3JtYXQgTWFzaylcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uYS1SZXBvcnQtcGVyY2VudENoYXJ0IHtcbn1cbi5hLVJlcG9ydC1wZXJjZW50Q2hhcnQtZmlsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzOTlCRUE7XG59IiwiQG1peGluIHRyYW5zcGFyZW50RGl2aWRlcnMge1xuICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgJjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoI0ZGRiwuNzUpO1xuICAgICAgdG9wOiAwO1xuICAgfVxuICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDAwLC4xNSk7XG4gICAgICBib3R0b206IDA7XG4gICB9XG4gICAmOmJlZm9yZSxcbiAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICB9XG59XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICAmOmJlZm9yZSxcbiAgICY6YWZ0ZXIge1xuICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgfVxuICAgJjphZnRlciB7XG4gICAgICAgY2xlYXI6IGJvdGg7XG4gICB9XG4gICAqem9vbTogMTtcbn1cblxuQG1peGluIGFwZXg1aWNvbiB7XG4gIGZvbnQtZmFtaWx5OiBcImFwZXgtNS1pY29uLWZvbnRcIiAhaW1wb3J0YW50O1xuICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG5cbkBtaXhpbiB2aXN1YWxseUhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xufVxuXG5AbWl4aW4gbm9XcmFwVGV4dCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLyBAbWl4aW4gY2xlYXJmaXgyIHtcbi8vICAgICB6b29tOjE7XG4vLyAgICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuLy8gICAgICAgICBjb250ZW50OiBcIlxcMDAyMFwiOyBcbi8vICAgICAgICAgZGlzcGxheTogYmxvY2s7IFxuLy8gICAgICAgICBoZWlnaHQ6IDA7IFxuLy8gICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyBcbi8vICAgICB9XG4vLyAgICAgJjphZnRlciB7XG4vLyAgICAgICAgIGNsZWFyOiBib3RoO1xuLy8gICAgIH1cbi8vIH1cblxuLy8gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gU3ByaXRlIE1peGluXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AbWl4aW4gcGRTcHJpdGUoJHNpemUsICR4LCAkeSwgJHdpZHRoOiAwLCAkaGVpZ2h0OiAwLCAkaW1wOiAnJykge1xuICAkb2Zmc2V0OiAwO1xuICBAaWYgJHNpemUgPT0gMTYge1xuICAgICRvZmZzZXQ6IDIwO1xuICB9IEBlbHNlIGlmICRzaXplID09IDIwIHtcbiAgICAkb2Zmc2V0OiAxNTA7XG4gIH0gQGVsc2UgaWYgJHNpemUgPT0gMjQge1xuICAgICRvZmZzZXQ6IDI3MDtcbiAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAzMiB7XG4gICAgJG9mZnNldDogMzcwO1xuICB9IEBlbHNlIGlmICRzaXplID09IDM2IHtcbiAgICAkb2Zmc2V0OiA1NjA7XG4gIH0gQGVsc2UgaWYgJHNpemUgPT0gNjQge1xuICAgICRvZmZzZXQ6IC0xOyAvLzc0MFxuICB9IEBlbHNlIHtcbiAgICAkb2Zmc2V0OiAwO1xuICB9XG4gIFxuICBAaWYgJHdpZHRoICE9IDAge1xuICAgIHdpZHRoOiAjeyR3aWR0aH1weDtcbiAgfVxuICBAaWYgJGhlaWdodCAhPSAwIHtcbiAgICBoZWlnaHQ6ICN7JGhlaWdodH1weDtcbiAgfVxuICBAaWYgJG9mZnNldCA+IDAge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0jeyR4KiRzaXplfXB4IC0jeygkeSokc2l6ZSkrJG9mZnNldH1weCAjeyRpbXB9O1xuICB9IEBlbHNlIGlmICRvZmZzZXQgPT0gLTEge1xuICAgIC8vIFdpemFyZCBYLVBvc2l0aW9uIGlzIDUwJVxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAtI3soJHkqJHNpemUpKzc0MH1weCAjeyRpbXB9O1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtI3skeH1weCAtI3soJHkpfXB4ICN7JGltcH07XG4gIH1cbn1cblxuLy8gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gRXh0ZW5kaWJsZSBTcHJpdGUgQ2xhc3Ncbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiVwZFNwcml0ZSB7XG4gIC8vIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWcvYXBleF81X3VpLnN2Zyk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vLyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBNZWRpYSBRdWVyaWVzXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4kZGlzcGxheS14eHhzOiA2NDBweDtcbiRkaXNwbGF5LXh4czogODAwcHg7XG4kZGlzcGxheS14czogMTAyNHB4O1xuJGRpc3BsYXktc21hbGw6IDEyODBweDtcbiRkaXNwbGF5LW1lZGl1bTogMTY4MHB4O1xuJGRpc3BsYXktbGFyZ2U6IDE5MjBweDtcblxuQG1peGluIHJlc3BvbmQtdG8oJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0geHh4cy1zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRkaXNwbGF5LXh4eHMpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IHh4cy1zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRkaXNwbGF5LXh4cykgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gc21hbGxlc3Qtc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkZGlzcGxheS14cykgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gc21hbGwtc2NyZWVucy1pbiB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkZGlzcGxheS1zbWFsbCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbWVkaXVtLXNjcmVlbnMtaW4ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGRpc3BsYXktbWVkaXVtKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsYXJnZS1zY3JlZW5zLWluIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRkaXNwbGF5LWxhcmdlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBzbWFsbC1zY3JlZW5zLW91dCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkZGlzcGxheS1zbWFsbCArIDEpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IG1lZGl1bS1zY3JlZW5zLW91dCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkZGlzcGxheS1tZWRpdW0gKyAxKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsYXJnZS1zY3JlZW5zLW91dCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkZGlzcGxheS1sYXJnZSArIDEpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc21hbGwtc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkZGlzcGxheS14cyArIDEpIGFuZCAobWF4LXdpZHRoOiAkZGlzcGxheS1zbWFsbCAtIDEpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWVkaXVtLXNjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGRpc3BsYXktc21hbGwgKyAxKSBhbmQgKG1heC13aWR0aDogJGRpc3BsYXktbWVkaXVtIC0gMSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBsYXJnZS1zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRkaXNwbGF5LW1lZGl1bSArIDEpIGFuZCAobWF4LXdpZHRoOiAkZGlzcGxheS1sYXJnZSAtIDEpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbGFyZ2VzdC1zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRkaXNwbGF5LWxhcmdlKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuXG4vLyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBFeHRlbmRpYmxlIEljb24gQ2xhc3Ncbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiVhLUljb24ge1xuICBmb250LWZhbWlseTogXCJhcGV4LTUtaWNvbi1mb250XCIgIWltcG9ydGFudDtcbiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbiAgZm9udC12YXJpYW50OiBub3JtYWwgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgc3BlYWs6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuQG1peGluIHNoYWRvd1Njcm9sbCgkc2l6ZTogNCwgJGJnOiAjRkZGRkZGKSB7XG4gICRzaGFkb3dTbWFsbDogJHNpemUgKyBcInB4XCI7XG4gICRzaGFkb3dCaWc6ICAgJHNpemUgKiAyICsgXCJweFwiO1xuICAkYm9keUJHOiAgICAgICRiZztcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQoJGJvZHlCRyAzMCUsIHJnYmEoJGJvZHlCRywwKSksXG4gICAgbGluZWFyLWdyYWRpZW50KHJnYmEoJGJvZHlCRywwKSwgJGJvZHlCRyA3MCUpIDAgMTAwJSxcbiAgICBcbiAgICBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwuMDI1KSwgcmdiYSgwLDAsMCwwKSksXG4gICAgbGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsMCksIHJnYmEoMCwwLDAsLjAyNSkpIDAgMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHlCRztcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlICRzaGFkb3dCaWcsIDEwMCUgJHNoYWRvd0JpZywgMTAwJSAkc2hhZG93U21hbGwsIDEwMCUgJHNoYWRvd1NtYWxsO1xuICBcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBsb2NhbCwgbG9jYWwsIHNjcm9sbCwgc2Nyb2xsO1xufSJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
