/** Entire Page **/
.blockpy-content .row {
    border-bottom: 1px solid #faebcc;
}

.blockpy-content .blockpy-panel {
    padding-left: 10px;
    padding-right: 10px;
    padding-bottom: 5px;
}

.blockpy-bottom {
    height: 25%;
}

.blockpy-header {
    height: 25%;
}

.blockpy-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #000;
    filter: alpha(opacity=50);
    -moz-opacity: 0.5;
    -khtml-opacity: 0.5;
    opacity: 0.5;
    z-index: 10000;
}

.green-check-mark {
    font-weight: bold;
    color: green;
    text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
}

.blockpy-content .fas {
    font-size: 12px;
}

/** Pop-up **/

.blockpy-dialog .modal-body {
    overflow-y: auto;
}

.blockpy-dialog .modal-body table {
    width: 100%;
}

.blockpy-dialog .row {
    border-bottom: 0;
}

.corgis-icon {
    max-width: 32px;
}

/** First Row **/

.blockpy-content .blockpy-instructions * {
    /* font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; */
}

.blockpy-content .blockpy-instructions pre, .blockpy-content .blockpy-instructions code {
    font-family: monospace;
}

.blockpy-content .blockpy-instructions blockquote {
    font-style: italic;
}

.blockpy-content .blockpy-instructions p, .blockpy-content .blockpy-instructions pre {
    margin-bottom: 4px;
}

.blockpy-instructions-reset a {
    font-size: smaller;
}

.blockpy-content .blockpy-instructions {
}

.blockpy-content .blockpy-quick-menu {
    padding-left: 10px;
    border-left: 1px solid #faebcc;
}

/** Second Row **/

.blockpy-content .blockpy-console {
    padding-top: 10px;
}

.blockpy-content .blockpy-show-feedback {
    margin-top: 10px;
    margin-left: 10px;
}

.blockpy-printer {
    height: 200px;
    overflow: auto;
    resize: vertical;
    padding-bottom: 64px;
}

.blockpy-printer-default {
    background-color: white;
    border: 1px solid lightgray;
}

.blockpy-printer-inverse {
    background-color: black;
    border: 1px solid darkgray;
    color: white;
}

.blockpy-printer .blockpy-printer-output {
    display: block;
    padding-left: 10px;
    border-bottom: 1px dashed lightgray;
}

.blockpy-printer .blockpy-printer-output samp {
    white-space: pre;
}

.blockpy-console-plot-output {
    cursor: pointer;
}

.blockpy-console-image-output img {
    max-height: 100px;
}

.blockpy-console-input input {
    width: 75%;
}

.blockpy-btn-eval {
    position: absolute;
    bottom: 20px;
    left: 20px;
}

/** Feedback **/

.blockpy-content .feedback-badge {
    font-size: 75%;
    color: white;
}

.blockpy-content .label-internal-error {
    background-color: black;
}

.blockpy-content .label-syntax-error {
    background-color: darkred;
}

.blockpy-content .label-runtime-error {
    background-color: #d9534f;
}

.blockpy-content .label-semantic-error {
    background-color: orangered;
}

.blockpy-content .label-feedback-error {
    background-color: #f0ad4e;
}

.blockpy-content .label-problem-complete {
    background-color: #5cb85c;
}

.blockpy-content .label-none {
    background-color: rgba(0, 0, 0, 0);
}

.blockpy-content .label-no-errors {
    background-color: #5bc0de;
}

.blockpy-content .label-instructions {
    background-color: #5bc0de;
}

.blockpy-content .label-success {
    background-color: #358535;
}

.blockpy-feedback {
    padding: 10px;
    overflow-y: auto;
    /*max-height: 230px;*/
}

.blockpy-feedback-traces table {
    background: white;
    width: 100%;
}

table.pedal-table {
    background: white;
    width: 100%;
    padding-top: 4px;
}

table.pedal-table tr.pedal-row {
    border-top: 1px solid lightgray;
}

table.pedal-table pre.pedal-python-code {
    display: inline-block;
}

.blockpy-feedback pre {
    background: #f0f0f0;
    border: 1px solid lightgrey;
    font-size: 12px;
    padding: 3px 5px;
    border-radius: 4px;
    overflow-x: auto;
}

.blockpy-feedback pre strong {
    font-size: 12px;
}

.blockpy-feedback pre span.filename {
    color: green;
    font-weight: bold;
    font-size: 12px;
}

.blockpy-feedback pre span.lineno {
    color: orangered;
    font-weight: bold;
    font-size: 12px;
}

.blockpy-feedback-unit code {
    color: black;
    background-color: transparent;
}

.blockpy-feedback-original {
    white-space: pre-wrap;
}

.blockpy-content .blockpy-floating-feedback {
    z-index: 100;
    margin-top: 10px;
    display: none;
    color: red;
}

/** Trace **/
.blockpy-content .blockpy-trace {
    padding-top: 10px;
}

.blockpy-content .blockpy-hide-trace {
    margin-top: 10px;
    margin-left: 10px;
}

.blockpy-content .blockpy-trace-controls button {
    margin-top: 0px;
    margin-bottom: 0px;
}

/** Third Row **/

.blockpy-content .blockpy-files {
}

.blockpy-content .nav-tabs {
    border-bottom: none;
}

.blockpy-content .nav-link {
    padding: .2rem .5rem;
    background-color: #cccccc;
    color: black;
    border: none;
    border-left: 2px solid #ddd;
    border-right: 2px solid #ddd;
    border-radius: 0;
}

.blockpy-content .nav-link.active {
    background-color: white;
    color: black;
    border: 1px solid #ddd;
    border-right: 2px solid #ddd;
    border-left: 2px solid #ddd;
    /* padding: .2rem .3rem .1rem; */
    padding-bottom: .1rem;
    font-weight: bold;
}

.blockpy-content .nav-link:hover {
    background-color: #ddd;
}

.blockpy-content .nav-link.active:hover {
    background-color: white;
}

.blockpy-content a.nav-link {
    text-decoration: none;
}

.blockpy-content .nav-link.uneditable {
    color: darkblue;
    font-style: italic;
}

.blockpy-content .nav-item strong {
    vertical-align: middle;
    padding-right: 5px;
}

.blockpy-content .nav-tabs .nav-item:first-child {
    padding-top: 7px;
}

.blockpy-content .nav-tabs .nav-item {
    padding-top: 5px;
}

.btn-file {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.btn-file input[type=file] {
    position: absolute;
    top: 0;
    right: 0;
    min-width: 100%;
    min-height: 100%;
    font-size: 100px;
    text-align: right;
    filter: alpha(opacity=0);
    opacity: 0;
    outline: none;
    background: white;
    cursor: pointer;
    display: block;
}

/** View Rows **/

.blockpy-content .blockpy-python-toolbar {
    /*background-color: #fcf8e3;
    padding-bottom: 10px;
    border: 1px solid #faebcc*/
    padding-left: 0px;
}

button.blockpy-run {
    background-color: rgb(40, 130, 40);
    color: white;
}

button.blockpy-run:focus {
    background-color: rgb(20, 100, 20);
}

.blockpy-content button.blockpy-run.blockpy-run-running {
    background-color: #f0ad4e;
}

.blockpy-content button.blockpy-run.blockpy-run-error {
    background-color: #d9534f;
}

button.blockpy-delete {
    background-color: white;
    border-color: rgb(130, 40, 40);
    color: black;
}

button.blockpy-delete:focus {
    border-color: rgb(100, 20, 20);
}

button.blockpy-delete:active {
    background-color: rgb(100, 20, 20);
    color: white;
}

.blockpy-text {
    border: 1px solid lightgray;
}

.blockpy-upload {
    border: 1px solid lightgray;
}

.editor-active-line {
    background: #C4FBC4 !important;
    color: #8a1f11 !important;
}

.CodeMirror-gutters {
    background-color: #ddd;
    border-left: 1px solid #bbb;
}

.editor-error-line {
    background: #FBC4C4 !important;
}

.editor-uncovered-line {
    background: #FBFBC4 !important;
}

.editor-traced-line {
    background: #C4FBC4 !important;
}

div.blockpy-text.blockpy-editor-menu.col-md-6 {
    padding-left: 0px;
    padding-right: 0px;
}

div.blockpy-blocks.blockpy-editor-menu.col-md-6 {
    padding-left: 0px;
}

.CodeMirror-code div pre {
    border-bottom: 1px dashed rgba(1, 1, 1, .1);
}

.blockpy-read-only .CodeMirror-scroll {
    background-color: #E5E5E5;
}

/** Markdown Editor **/
.blockpy-content .editor-preview {
    background: #fcf8e3;
    padding: 0px;
    border: 1px solid #faebcd;
}

.blockpy-content .editor-toolbar {
    background: #eee;
    border: 1px solid lightgrey
}

.blockpy-content .cm-s-easymde {
    border-bottom: 1px solid lightgrey;
    border-left: 1px solid lightgrey;
    border-right: 1px solid lightgrey;
}

.blockpy-content .cm-s-easymde .CodeMirror-scroll {
    width: 100%;
}

/** Assignment Settings **/
.blockpy-view-settings .row {
    border-bottom: 0;
}

/** Footer Row **/

.blockpy-content .blockpy-status span {
    font-size: 12px;
}

.blockpy-content .badge {
    font-size: 75%;
    color: white;
}

.blockpy-content .badge.server-status-ready {
    background-color: #5cb85c;
}

.blockpy-content .badge.server-status-active {
    background-color: #5bc0de;
}

.blockpy-content .badge.server-status-retrying {
    background-color: #f0ad4e;
}

.blockpy-content .badge.server-status-failed {
    background-color: #d9534f;
}

.blockpy-content .badge.server-status-offline {
    background-color: #333;
}

.notransition {
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -o-transition: none !important;
  transition: none !important;
}

.blockpy-content .blockpy-feedback-message p {
    margin-bottom: 0;
}

.blockpy-content .blockpy-feedback-message p+p {
    margin-top: .5rem;
}

.blockpy-content .blockpy-feedback-message pre {
    margin: 0;
}

.blockpy-content .blockpy-feedback-message pre+p {
    margin-top: .5rem;
}

.blockpy-content .blockpy-feedback-message code {
    padding: 0;
}

.blockpy-content .blockpy-feedback-positive {
    right: 10px;
    position: absolute;
    bottom: 0;
}

.blockpy-content .blockpy-feedback-positive .blockpy-feedback-positive-icon {
    font-size: 16px;
    cursor: pointer;
}

.blockpy-content .blockpy-dialog-student-error-message {
    padding: 10px;
    border: 1px solid lightgray;
}

.blockpy-quick-menu .blockpy-student-error {
    font-size: 16px;
    cursor: pointer;
    color: pink;
    display: none;
}

.blockpy-content sup {
    font-size: 12px;
}

.pedal-positive-mark {
    color: green;
    font-size: 16px;
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
}
/**
 * Override bad accessibility in Bootstrap
 */

body {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.blockpy-content * {
    font-size: 14px;
}

.blockpy-content .btn-sm, .blockpy-content .btn-sm span {
    font-size: 12px;
}

.blockpy-content a {
    text-decoration: underline;
}

.blockpy-content {
    background-color: #fcf8e3;
    border: 1px solid #faebcc;
    padding-left: 0px;
    padding-right: 0px;
}

.blockpy-content .btn {
    margin-bottom: 5px;
    margin-top: 5px;
}

.blockpy-content .btn-outline-secondary {
    background-color: white;
    color: #333;
}

.blockpy-content .btn-outline-secondary:focus {
    color: #333;
    border-color: #8c8c8c;
    background-color: #e6e6e6;
}

.blockpy-content .btn-outline-secondary:hover {
    color: #333;
    border-color: #adadad;
    background-color: #e6e6e6;
}

.blockpy-content .text-muted-less {
    color: #444;
}

.blockpy-content .label-default {
    background-color: #666;
}

.row {
    margin-left: 0px;
    margin-right: 0px;
}

.blockpy-content .alert {
    color: black;
}

.blockpy-content table {
    background-color: white;
}

.blockpy-content p, .blockpy-content pre {
    /*margin-bottom: 4px;*/
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ibG9ja3B5L2Jsb2NrcHkuY3NzIiwid2VicGFjazovL2Jsb2NrcHkvYm9vdHN0cmFwX3JldGhlbWUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtCQUFrQjtBQUNsQjtJQUNJLGdDQUFnQztBQUNwQzs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksV0FBVztBQUNmOztBQUVBO0lBQ0ksV0FBVztBQUNmOztBQUVBO0lBQ0ksZUFBZTtJQUNmLE1BQU07SUFDTixPQUFPO0lBQ1AsV0FBVztJQUNYLFlBQVk7SUFDWixzQkFBc0I7SUFDdEIseUJBQXlCO0lBQ3pCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxpQkFBaUI7SUFDakIsWUFBWTtJQUNaLGlFQUFpRTtBQUNyRTs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUEsYUFBYTs7QUFFYjtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLFdBQVc7QUFDZjs7QUFFQTtJQUNJLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUEsZ0JBQWdCOztBQUVoQjtJQUNJLGlFQUFpRTtBQUNyRTs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGtCQUFrQjtBQUN0Qjs7QUFFQTtBQUNBOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLDhCQUE4QjtBQUNsQzs7QUFFQSxpQkFBaUI7O0FBRWpCO0lBQ0ksaUJBQWlCO0FBQ3JCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtBQUN4Qjs7QUFFQTtJQUNJLHVCQUF1QjtJQUN2QiwyQkFBMkI7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c0JBQXNCO0FBQzFCLEMiLCJmaWxlIjoiYmxvY2tweS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogRW50aXJlIFBhZ2UgKiovXHJcbi5ibG9ja3B5LWNvbnRlbnQgLnJvdyB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZhZWJjYztcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAuYmxvY2tweS1wYW5lbCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcclxufVxyXG5cclxuLmJsb2NrcHktYm90dG9tIHtcclxuICAgIGhlaWdodDogMjUlO1xyXG59XHJcblxyXG4uYmxvY2tweS1oZWFkZXIge1xyXG4gICAgaGVpZ2h0OiAyNSU7XHJcbn1cclxuXHJcbi5ibG9ja3B5LW92ZXJsYXkge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcclxuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XHJcbiAgICAtbW96LW9wYWNpdHk6IDAuNTtcclxuICAgIC1raHRtbC1vcGFjaXR5OiAwLjU7XHJcbiAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICB6LWluZGV4OiAxMDAwMDtcclxufVxyXG5cclxuLmdyZWVuLWNoZWNrLW1hcmsge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBjb2xvcjogZ3JlZW47XHJcbiAgICB0ZXh0LXNoYWRvdzogLTFweCAwIGJsYWNrLCAwIDFweCBibGFjaywgMXB4IDAgYmxhY2ssIDAgLTFweCBibGFjaztcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAuZmFzIHtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxufVxyXG5cclxuLyoqIFBvcC11cCAqKi9cclxuXHJcbi5ibG9ja3B5LWRpYWxvZyAubW9kYWwtYm9keSB7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG59XHJcblxyXG4uYmxvY2tweS1kaWFsb2cgLm1vZGFsLWJvZHkgdGFibGUge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWRpYWxvZyAucm93IHtcclxuICAgIGJvcmRlci1ib3R0b206IDA7XHJcbn1cclxuXHJcbi5jb3JnaXMtaWNvbiB7XHJcbiAgICBtYXgtd2lkdGg6IDMycHg7XHJcbn1cclxuXHJcbi8qKiBGaXJzdCBSb3cgKiovXHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5ibG9ja3B5LWluc3RydWN0aW9ucyAqIHtcclxuICAgIC8qIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICovXHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmJsb2NrcHktaW5zdHJ1Y3Rpb25zIHByZSwgLmJsb2NrcHktY29udGVudCAuYmxvY2tweS1pbnN0cnVjdGlvbnMgY29kZSB7XHJcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5ibG9ja3B5LWluc3RydWN0aW9ucyBibG9ja3F1b3RlIHtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAuYmxvY2tweS1pbnN0cnVjdGlvbnMgcCwgLmJsb2NrcHktY29udGVudCAuYmxvY2tweS1pbnN0cnVjdGlvbnMgcHJlIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxufVxyXG5cclxuLmJsb2NrcHktaW5zdHJ1Y3Rpb25zLXJlc2V0IGEge1xyXG4gICAgZm9udC1zaXplOiBzbWFsbGVyO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5ibG9ja3B5LWluc3RydWN0aW9ucyB7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmJsb2NrcHktcXVpY2stbWVudSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNmYWViY2M7XHJcbn1cclxuXHJcbi8qKiBTZWNvbmQgUm93ICoqL1xyXG5cclxuLmJsb2NrcHktY29udGVudCAuYmxvY2tweS1jb25zb2xlIHtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5ibG9ja3B5LXNob3ctZmVlZGJhY2sge1xyXG4gICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG59XHJcblxyXG4uYmxvY2tweS1wcmludGVyIHtcclxuICAgIGhlaWdodDogMjAwcHg7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuICAgIHJlc2l6ZTogdmVydGljYWw7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNjRweDtcclxufVxyXG5cclxuLmJsb2NrcHktcHJpbnRlci1kZWZhdWx0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmF5O1xyXG59XHJcblxyXG4uYmxvY2tweS1wcmludGVyLWludmVyc2Uge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBkYXJrZ3JheTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmJsb2NrcHktcHJpbnRlciAuYmxvY2tweS1wcmludGVyLW91dHB1dCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmctbGVmdDogMTBweDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgbGlnaHRncmF5O1xyXG59XHJcblxyXG4uYmxvY2tweS1wcmludGVyIC5ibG9ja3B5LXByaW50ZXItb3V0cHV0IHNhbXAge1xyXG4gICAgd2hpdGUtc3BhY2U6IHByZTtcclxufVxyXG5cclxuLmJsb2NrcHktY29uc29sZS1wbG90LW91dHB1dCB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnNvbGUtaW1hZ2Utb3V0cHV0IGltZyB7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDBweDtcclxufVxyXG5cclxuLmJsb2NrcHktY29uc29sZS1pbnB1dCBpbnB1dCB7XHJcbiAgICB3aWR0aDogNzUlO1xyXG59XHJcblxyXG4uYmxvY2tweS1idG4tZXZhbCB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDIwcHg7XHJcbiAgICBsZWZ0OiAyMHB4O1xyXG59XHJcblxyXG4vKiogRmVlZGJhY2sgKiovXHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5mZWVkYmFjay1iYWRnZSB7XHJcbiAgICBmb250LXNpemU6IDc1JTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAubGFiZWwtaW50ZXJuYWwtZXJyb3Ige1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmxhYmVsLXN5bnRheC1lcnJvciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrcmVkO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5sYWJlbC1ydW50aW1lLWVycm9yIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOTUzNGY7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmxhYmVsLXNlbWFudGljLWVycm9yIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZXJlZDtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAubGFiZWwtZmVlZGJhY2stZXJyb3Ige1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwYWQ0ZTtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAubGFiZWwtcHJvYmxlbS1jb21wbGV0ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNiODVjO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5sYWJlbC1ub25lIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmxhYmVsLW5vLWVycm9ycyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWJjMGRlO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5sYWJlbC1pbnN0cnVjdGlvbnMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzViYzBkZTtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAubGFiZWwtc3VjY2VzcyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU4NTM1O1xyXG59XHJcblxyXG4uYmxvY2tweS1mZWVkYmFjayB7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIC8qbWF4LWhlaWdodDogMjMwcHg7Ki9cclxufVxyXG5cclxuLmJsb2NrcHktZmVlZGJhY2stdHJhY2VzIHRhYmxlIHtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbnRhYmxlLnBlZGFsLXRhYmxlIHtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nLXRvcDogNHB4O1xyXG59XHJcblxyXG50YWJsZS5wZWRhbC10YWJsZSB0ci5wZWRhbC1yb3cge1xyXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcclxufVxyXG5cclxudGFibGUucGVkYWwtdGFibGUgcHJlLnBlZGFsLXB5dGhvbi1jb2RlIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLmJsb2NrcHktZmVlZGJhY2sgcHJlIHtcclxuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyZXk7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBwYWRkaW5nOiAzcHggNXB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgb3ZlcmZsb3cteDogYXV0bztcclxufVxyXG5cclxuLmJsb2NrcHktZmVlZGJhY2sgcHJlIHN0cm9uZyB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWZlZWRiYWNrIHByZSBzcGFuLmZpbGVuYW1lIHtcclxuICAgIGNvbG9yOiBncmVlbjtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG59XHJcblxyXG4uYmxvY2tweS1mZWVkYmFjayBwcmUgc3Bhbi5saW5lbm8ge1xyXG4gICAgY29sb3I6IG9yYW5nZXJlZDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG59XHJcblxyXG4uYmxvY2tweS1mZWVkYmFjay11bml0IGNvZGUge1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWZlZWRiYWNrLW9yaWdpbmFsIHtcclxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAuYmxvY2tweS1mbG9hdGluZy1mZWVkYmFjayB7XHJcbiAgICB6LWluZGV4OiAxMDA7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIGNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbi8qKiBUcmFjZSAqKi9cclxuLmJsb2NrcHktY29udGVudCAuYmxvY2tweS10cmFjZSB7XHJcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAuYmxvY2tweS1oaWRlLXRyYWNlIHtcclxuICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAuYmxvY2tweS10cmFjZS1jb250cm9scyBidXR0b24ge1xyXG4gICAgbWFyZ2luLXRvcDogMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG59XHJcblxyXG4vKiogVGhpcmQgUm93ICoqL1xyXG5cclxuLmJsb2NrcHktY29udGVudCAuYmxvY2tweS1maWxlcyB7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLm5hdi10YWJzIHtcclxuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLm5hdi1saW5rIHtcclxuICAgIHBhZGRpbmc6IC4ycmVtIC41cmVtO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYztcclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2RkZDtcclxuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICNkZGQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5uYXYtbGluay5hY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgI2RkZDtcclxuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2RkZDtcclxuICAgIC8qIHBhZGRpbmc6IC4ycmVtIC4zcmVtIC4xcmVtOyAqL1xyXG4gICAgcGFkZGluZy1ib3R0b206IC4xcmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLm5hdi1saW5rOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLm5hdi1saW5rLmFjdGl2ZTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCBhLm5hdi1saW5rIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAubmF2LWxpbmsudW5lZGl0YWJsZSB7XHJcbiAgICBjb2xvcjogZGFya2JsdWU7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLm5hdi1pdGVtIHN0cm9uZyB7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgcGFkZGluZy1yaWdodDogNXB4O1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5uYXYtdGFicyAubmF2LWl0ZW06Zmlyc3QtY2hpbGQge1xyXG4gICAgcGFkZGluZy10b3A6IDdweDtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAubmF2LXRhYnMgLm5hdi1pdGVtIHtcclxuICAgIHBhZGRpbmctdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5idG4tZmlsZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uYnRuLWZpbGUgaW5wdXRbdHlwZT1maWxlXSB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICByaWdodDogMDtcclxuICAgIG1pbi13aWR0aDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcbiAgICBmb250LXNpemU6IDEwMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi8qKiBWaWV3IFJvd3MgKiovXHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5ibG9ja3B5LXB5dGhvbi10b29sYmFyIHtcclxuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcclxuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZhZWJjYyovXHJcbiAgICBwYWRkaW5nLWxlZnQ6IDBweDtcclxufVxyXG5cclxuYnV0dG9uLmJsb2NrcHktcnVuIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig0MCwgMTMwLCA0MCk7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbmJ1dHRvbi5ibG9ja3B5LXJ1bjpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjAsIDEwMCwgMjApO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IGJ1dHRvbi5ibG9ja3B5LXJ1bi5ibG9ja3B5LXJ1bi1ydW5uaW5nIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGFkNGU7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgYnV0dG9uLmJsb2NrcHktcnVuLmJsb2NrcHktcnVuLWVycm9yIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOTUzNGY7XHJcbn1cclxuXHJcbmJ1dHRvbi5ibG9ja3B5LWRlbGV0ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiKDEzMCwgNDAsIDQwKTtcclxuICAgIGNvbG9yOiBibGFjaztcclxufVxyXG5cclxuYnV0dG9uLmJsb2NrcHktZGVsZXRlOmZvY3VzIHtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiKDEwMCwgMjAsIDIwKTtcclxufVxyXG5cclxuYnV0dG9uLmJsb2NrcHktZGVsZXRlOmFjdGl2ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAwLCAyMCwgMjApO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4uYmxvY2tweS10ZXh0IHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcclxufVxyXG5cclxuLmJsb2NrcHktdXBsb2FkIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcclxufVxyXG5cclxuLmVkaXRvci1hY3RpdmUtbGluZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjQzRGQkM0ICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogIzhhMWYxMSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uQ29kZU1pcnJvci1ndXR0ZXJzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNiYmI7XHJcbn1cclxuXHJcbi5lZGl0b3ItZXJyb3ItbGluZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRkJDNEM0ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5lZGl0b3ItdW5jb3ZlcmVkLWxpbmUge1xyXG4gICAgYmFja2dyb3VuZDogI0ZCRkJDNCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZWRpdG9yLXRyYWNlZC1saW5lIHtcclxuICAgIGJhY2tncm91bmQ6ICNDNEZCQzQgIWltcG9ydGFudDtcclxufVxyXG5cclxuZGl2LmJsb2NrcHktdGV4dC5ibG9ja3B5LWVkaXRvci1tZW51LmNvbC1tZC02IHtcclxuICAgIHBhZGRpbmctbGVmdDogMHB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogMHB4O1xyXG59XHJcblxyXG5kaXYuYmxvY2tweS1ibG9ja3MuYmxvY2tweS1lZGl0b3ItbWVudS5jb2wtbWQtNiB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDBweDtcclxufVxyXG5cclxuLkNvZGVNaXJyb3ItY29kZSBkaXYgcHJlIHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgcmdiYSgxLCAxLCAxLCAuMSk7XHJcbn1cclxuXHJcbi5ibG9ja3B5LXJlYWQtb25seSAuQ29kZU1pcnJvci1zY3JvbGwge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0U1RTVFNTtcclxufVxyXG5cclxuLyoqIE1hcmtkb3duIEVkaXRvciAqKi9cclxuLmJsb2NrcHktY29udGVudCAuZWRpdG9yLXByZXZpZXcge1xyXG4gICAgYmFja2dyb3VuZDogI2ZjZjhlMztcclxuICAgIHBhZGRpbmc6IDBweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmYWViY2Q7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmVkaXRvci10b29sYmFyIHtcclxuICAgIGJhY2tncm91bmQ6ICNlZWU7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyZXlcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAuY20tcy1lYXN5bWRlIHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGdyZXk7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcclxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAuY20tcy1lYXN5bWRlIC5Db2RlTWlycm9yLXNjcm9sbCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLyoqIEFzc2lnbm1lbnQgU2V0dGluZ3MgKiovXHJcbi5ibG9ja3B5LXZpZXctc2V0dGluZ3MgLnJvdyB7XHJcbiAgICBib3JkZXItYm90dG9tOiAwO1xyXG59XHJcblxyXG4vKiogRm9vdGVyIFJvdyAqKi9cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmJsb2NrcHktc3RhdHVzIHNwYW4ge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5iYWRnZSB7XHJcbiAgICBmb250LXNpemU6IDc1JTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAuYmFkZ2Uuc2VydmVyLXN0YXR1cy1yZWFkeSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNiODVjO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5iYWRnZS5zZXJ2ZXItc3RhdHVzLWFjdGl2ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWJjMGRlO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5iYWRnZS5zZXJ2ZXItc3RhdHVzLXJldHJ5aW5nIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGFkNGU7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmJhZGdlLnNlcnZlci1zdGF0dXMtZmFpbGVkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOTUzNGY7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmJhZGdlLnNlcnZlci1zdGF0dXMtb2ZmbGluZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xyXG59XHJcblxyXG4ubm90cmFuc2l0aW9uIHtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuICAtbW96LXRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuICAtby10cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5ibG9ja3B5LWZlZWRiYWNrLW1lc3NhZ2UgcCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5ibG9ja3B5LWZlZWRiYWNrLW1lc3NhZ2UgcCtwIHtcclxuICAgIG1hcmdpbi10b3A6IC41cmVtO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5ibG9ja3B5LWZlZWRiYWNrLW1lc3NhZ2UgcHJlIHtcclxuICAgIG1hcmdpbjogMDtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCAuYmxvY2tweS1mZWVkYmFjay1tZXNzYWdlIHByZStwIHtcclxuICAgIG1hcmdpbi10b3A6IC41cmVtO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5ibG9ja3B5LWZlZWRiYWNrLW1lc3NhZ2UgY29kZSB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5ibG9ja3B5LWZlZWRiYWNrLXBvc2l0aXZlIHtcclxuICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAwO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5ibG9ja3B5LWZlZWRiYWNrLXBvc2l0aXZlIC5ibG9ja3B5LWZlZWRiYWNrLXBvc2l0aXZlLWljb24ge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5ibG9ja3B5LWRpYWxvZy1zdHVkZW50LWVycm9yLW1lc3NhZ2Uge1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcclxufVxyXG5cclxuLmJsb2NrcHktcXVpY2stbWVudSAuYmxvY2tweS1zdHVkZW50LWVycm9yIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGNvbG9yOiBwaW5rO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCBzdXAge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG59XHJcblxyXG4ucGVkYWwtcG9zaXRpdmUtbWFyayB7XHJcbiAgICBjb2xvcjogZ3JlZW47XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsXCJTZWdvZSBVSVwiLFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsQXJpYWwsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCIsXCJOb3RvIENvbG9yIEVtb2ppXCI7XHJcbn0iLCIvKipcclxuICogT3ZlcnJpZGUgYmFkIGFjY2Vzc2liaWxpdHkgaW4gQm9vdHN0cmFwXHJcbiAqL1xyXG5cclxuYm9keSB7XHJcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50ICoge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5idG4tc20sIC5ibG9ja3B5LWNvbnRlbnQgLmJ0bi1zbSBzcGFuIHtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCBhIHtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmFlYmNjO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmJ0biB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGNvbG9yOiAjMzMzO1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5idG4tb3V0bGluZS1zZWNvbmRhcnk6Zm9jdXMge1xyXG4gICAgY29sb3I6ICMzMzM7XHJcbiAgICBib3JkZXItY29sb3I6ICM4YzhjOGM7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC5idG4tb3V0bGluZS1zZWNvbmRhcnk6aG92ZXIge1xyXG4gICAgY29sb3I6ICMzMzM7XHJcbiAgICBib3JkZXItY29sb3I6ICNhZGFkYWQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xyXG59XHJcblxyXG4uYmxvY2tweS1jb250ZW50IC50ZXh0LW11dGVkLWxlc3Mge1xyXG4gICAgY29sb3I6ICM0NDQ7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmxhYmVsLWRlZmF1bHQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NjtcclxufVxyXG5cclxuLnJvdyB7XHJcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XHJcbn1cclxuXHJcbi5ibG9ja3B5LWNvbnRlbnQgLmFsZXJ0IHtcclxuICAgIGNvbG9yOiBibGFjaztcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCB0YWJsZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmJsb2NrcHktY29udGVudCBwLCAuYmxvY2tweS1jb250ZW50IHByZSB7XHJcbiAgICAvKm1hcmdpbi1ib3R0b206IDRweDsqL1xyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==*/