.services{background:var(--color-bg-secondary);padding:var(--space-24) 0}.services-grid{display:grid;gap:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(350px,1fr));margin-top:var(--space-16)}.portfolio{padding:var(--space-24) 0}.placeholder-card{backdrop-filter:blur(20px);background:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);max-width:500px;padding:var(--space-12);position:relative;text-align:center}.placeholder-card:before{align-items:center;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-full);content:"🛒";display:flex;font-size:var(--font-size-4xl);height:60px;justify-content:center;left:50%;position:absolute;top:-20px;transform:translateX(-50%);width:60px}.placeholder-card h3{color:var(--color-text-primary);margin-bottom:var(--space-4)}.placeholder-card p{color:var(--color-text-secondary);margin-bottom:var(--space-6)}.contact{padding:var(--space-24) 0}.contact-content{display:grid;gap:var(--space-16);grid-template-columns:1fr 2fr;margin-top:var(--space-16)}.contact-info{display:flex;flex-direction:column;gap:var(--space-8)}.contact-item{backdrop-filter:blur(20px);background:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8)}.contact-item h3{color:var(--color-text-primary);font-size:var(--font-size-lg);margin-bottom:var(--space-3)}.contact-item p{color:var(--color-text-secondary);margin-bottom:var(--space-4)}.contact-details p{font-size:var(--font-size-sm);margin-bottom:var(--space-2)}.form{backdrop-filter:blur(20px);background:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8)}.form input[name=website],.form input[type=text][style*="position:absolute"]{background:none!important;border:none!important;height:0!important;left:-9999px!important;opacity:0!important;pointer-events:none!important;position:absolute!important;top:-9999px!important;visibility:hidden!important;width:0!important}.form-row{display:grid;gap:var(--space-4);grid-template-columns:1fr 1fr}.form-group{margin-bottom:var(--space-6);position:relative}.form-group input,.form-group textarea{backdrop-filter:blur(10px);background:var(--color-bg-glass);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-base);padding:var(--space-4) var(--space-4) var(--space-3);transition:var(--transition-base);width:100%}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(0,245,255,.1);outline:none}.form-group label{color:var(--color-text-tertiary);font-size:var(--font-size-base);left:var(--space-4);pointer-events:none;position:absolute;top:var(--space-4);transition:var(--transition-base)}.form-group input:focus+label,.form-group input:not(:placeholder-shown)+label,.form-group textarea:focus+label,.form-group textarea:not(:placeholder-shown)+label{background:var(--color-bg-tertiary);border-radius:var(--radius-sm);box-shadow:0 0 0 2px var(--color-bg-tertiary);color:var(--color-primary);font-size:var(--font-size-sm);left:var(--space-3);padding:2px var(--space-2);top:-12px}.optional-text{background:var(--color-bg-tertiary);border-radius:var(--radius-sm);box-shadow:0 0 0 2px var(--color-bg-tertiary);color:var(--color-text-tertiary);font-size:var(--font-size-xs);opacity:0;padding:2px var(--space-1);position:absolute;right:var(--space-3);top:-12px;transition:var(--transition-base)}.form-group input:focus+label+.optional-text,.form-group input:not(:placeholder-shown)+label+.optional-text{opacity:1}.form-group textarea{min-height:120px;resize:vertical}.form .btn{justify-content:center;margin-top:var(--space-4);width:100%}@media (max-width:1024px){.services-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.contact-content{gap:var(--space-8);grid-template-columns:1fr}}@media (max-width:768px){.form-row,.services-grid{grid-template-columns:1fr}.hero-stats{flex-direction:column;gap:var(--space-4)}}.text-center{text-align:center}.text-gradient{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass{backdrop-filter:blur(20px);background:var(--color-bg-glass);border:1px solid var(--color-border)}.glow{box-shadow:var(--shadow-glow)}.hidden{display:none}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.contact-details p{align-items:center;display:flex;line-height:1.6;margin-bottom:var(--space-3)}.contact-icon{filter:drop-shadow(0 0 2px rgba(0,0,0,.3));font-size:1.2em;margin-right:var(--space-2);min-width:1.5em;text-align:center}.contact-details strong{color:var(--color-primary);font-weight:600;margin-right:var(--space-2);min-width:4.5rem}.phone-link{border-bottom:1px solid transparent;color:var(--color-primary);font-family:var(--font-mono,"Courier New",monospace);font-weight:500;letter-spacing:.02em;text-decoration:none;transition:var(--transition-base)}.phone-link:hover{border-bottom-color:var(--color-accent);color:var(--color-accent);text-decoration:none;transform:translateY(-1px)}.phone-link:focus{border-radius:var(--radius-sm);outline:2px solid var(--color-primary);outline-offset:2px}.mobile-phone .phone-link:hover{color:#4caf50}.landline-phone .phone-link:hover{color:#2196f3}.phone-note{border-top:1px solid hsla(0,0%,100%,.1);color:var(--color-text-tertiary);font-style:italic;margin-top:var(--space-3);padding-top:var(--space-2);text-align:center}.phone-note small{font-size:var(--font-size-xs);line-height:1.4}.phone-protected{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-style:italic}.phone-protected:before{content:"wird geladen..."}.email-protected{font-family:var(--font-mono,"Courier New",monospace);letter-spacing:.02em}@media (max-width:768px){.contact-details p{align-items:flex-start;flex-direction:column;margin-bottom:var(--space-4)}.contact-icon{align-self:flex-start;margin-bottom:var(--space-1)}.contact-details strong{margin-bottom:var(--space-1);min-width:auto}.phone-link{font-size:var(--font-size-base);word-break:break-all}.phone-note{margin-top:var(--space-4);text-align:left}}@media (prefers-contrast:high){.contact-icon{filter:none}.phone-link{border-bottom:1px solid}}@media (prefers-color-scheme:dark){.contact-icon{filter:drop-shadow(0 0 3px rgba(255,255,255,.2))}}.contact-success-modal{align-items:center;animation:modalFadeIn .3s ease-out;backdrop-filter:blur(10px);background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;padding:1rem;position:fixed;top:0;width:100%;z-index:9999}.contact-success-dialog{animation:modalSlideIn .4s ease-out;backdrop-filter:blur(20px);background:linear-gradient(145deg,rgba(30,41,59,.95),rgba(15,23,42,.95));border:1px solid rgba(16,185,129,.3);border-radius:var(--radius-xl,20px);box-shadow:0 25px 50px rgba(0,0,0,.5),0 0 50px rgba(16,185,129,.1),inset 0 1px 0 hsla(0,0%,100%,.1);max-width:500px;overflow:hidden;padding:2.5rem;position:relative;text-align:center;width:100%}.contact-success-dialog:before{animation:successShimmer 2s ease-in-out infinite;background:linear-gradient(90deg,transparent,#10b981,transparent);content:"";height:2px;left:-100%;position:absolute;top:0;width:100%}.modal-success-icon{animation:iconPulse 2s ease-in-out infinite;color:#10b981;filter:drop-shadow(0 0 20px rgba(16,185,129,.4));font-size:4rem;margin-bottom:1.5rem}.contact-success-dialog h3{color:#10b981;font-size:1.75rem;font-weight:700;margin:0 0 1rem;text-shadow:0 0 20px rgba(16,185,129,.3)}.contact-success-dialog p{color:#e2e8f0;font-size:1.1rem;line-height:1.6;margin:0 0 2rem;opacity:.9}.modal-close-btn{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:var(--radius-lg,12px);box-shadow:0 4px 15px rgba(16,185,129,.3);color:#fff;cursor:pointer;font-size:1rem;font-weight:600;overflow:hidden;padding:.875rem 2rem;position:relative;transition:all .3s ease}.modal-close-btn:before{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .6s ease;width:100%}.modal-close-btn:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 8px 25px rgba(16,185,129,.4);transform:translateY(-2px)}.modal-close-btn:hover:before{left:100%}.modal-close-btn:active{transform:translateY(0)}.modal-timer{color:#94a3b8;font-size:.875rem;opacity:.7;position:absolute;right:1rem;top:1rem}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-50px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes successShimmer{0%{left:-100%}to{left:100%}}@keyframes iconPulse{0%,to{filter:drop-shadow(0 0 20px rgba(16,185,129,.4));transform:scale(1)}50%{filter:drop-shadow(0 0 30px rgba(16,185,129,.6));transform:scale(1.05)}}.contact-success-modal.fade-out{opacity:0;transition:opacity .3s ease-out}.contact-success-modal.fade-out .contact-success-dialog{transform:translateY(-20px) scale(.95);transition:transform .3s ease-out}@media (max-width:768px){.contact-success-dialog{margin:1rem;max-width:calc(100% - 2rem);padding:2rem}.modal-success-icon{font-size:3rem;margin-bottom:1rem}.contact-success-dialog h3{font-size:1.5rem}.contact-success-dialog p{font-size:1rem}.modal-close-btn{font-size:.9rem;padding:.75rem 1.5rem}}@media (prefers-contrast:high){.contact-success-dialog{background:rgba(0,0,0,.95);border-width:2px}.contact-success-dialog h3{color:#fff}}@media (prefers-reduced-motion:reduce){.contact-success-dialog,.contact-success-modal,.modal-success-icon{animation:none}.modal-close-btn{transition:none}}
/*# sourceMappingURL=data:application/json;base64,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RixDQU50RixVQUFXLENBS1gsV0FBWSxDQUZaLFVBQVcsQ0FGWCxpQkFBa0IsQ0FDbEIsS0FBTSxDQUtOLHdCQUEwQixDQUgxQixVQUlKLENBRUEsdUJBR0ksa0RBQXFELENBRHJELHlDQUE4QyxDQUQ5QywwQkFHSixDQUVBLDhCQUNJLFNBQ0osQ0FFQSx3QkFDSSx1QkFDSixDQUdBLGFBSUksYUFBYyxDQUNkLGlCQUFtQixDQUNuQixVQUFZLENBTFosaUJBQWtCLENBRWxCLFVBQVcsQ0FEWCxRQUtKLENBR0EsdUJBQ0ksR0FDSSxTQUNKLENBQ0EsR0FDSSxTQUNKLENBQ0osQ0FFQSx3QkFDSSxHQUNJLFNBQVUsQ0FDVixxQ0FDSixDQUNBLEdBQ0ksU0FBVSxDQUNWLGdDQUNKLENBQ0osQ0FFQSwwQkFDSSxHQUNJLFVBQ0osQ0FDQSxHQUNJLFNBQ0osQ0FDSixDQUVBLHFCQUNJLE1BRUksZ0RBQXFELENBRHJELGtCQUVKLENBQ0EsSUFFSSxnREFBcUQsQ0FEckQscUJBRUosQ0FDSixDQUdBLGdDQUNJLFNBQVUsQ0FDViwrQkFDSixDQUVBLHdEQUNJLHNDQUF3QyxDQUN4QyxpQ0FDSixDQUdBLHlCQUNJLHdCQUVJLFdBQVksQ0FDWiwyQkFBNEIsQ0FGNUIsWUFHSixDQUVBLG9CQUNJLGNBQWUsQ0FDZixrQkFDSixDQUVBLDJCQUNJLGdCQUNKLENBRUEsMEJBQ0ksY0FDSixDQUVBLGlCQUVJLGVBQWlCLENBRGpCLHFCQUVKLENBQ0osQ0FHQSwrQkFDSSx3QkFFSSwwQkFBK0IsQ0FEL0IsZ0JBRUosQ0FFQSwyQkFDSSxVQUNKLENBQ0osQ0FHQSx1Q0FDSSxtRUFHSSxjQUNKLENBRUEsaUJBQ0ksZUFDSixDQUNKIiwiZmlsZSI6ImNvbXBvbmVudHMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQ29tcG9uZW50cyBDU1MgLSBMYXlvdXQgJiBTZWN0aW9ucyAqL1xuLyogU3BlaWNoZXJuIGFsczogc3JjL3N0eWxlcy9jb21wb25lbnRzLmNzcyAqL1xuXG4vKiBTZXJ2aWNlcyBTZWN0aW9uIExheW91dCAqL1xuLnNlcnZpY2VzIHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2UtMjQpIDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7XG59XG5cbi5zZXJ2aWNlcy1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzNTBweCwgMWZyKSk7XG4gIGdhcDogdmFyKC0tc3BhY2UtOCk7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlLTE2KTtcbn1cblxuLyogUG9ydGZvbGlvIFNlY3Rpb24gTGF5b3V0ICovXG4ucG9ydGZvbGlvIHtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2UtMjQpIDA7XG59XG5cbi5wbGFjZWhvbGRlci1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tZ3JhZGllbnQtY2FyZCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXhsKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2UtMTIpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnBsYWNlaG9sZGVyLWNhcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICfwn5uSJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0yMHB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNHhsKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctcHJpbWFyeSk7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDYwcHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG59XG5cbi5wbGFjZWhvbGRlci1jYXJkIGgzIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UtNCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpO1xufVxuXG4ucGxhY2Vob2xkZXItY2FyZCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UtNik7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG59XG5cbi8qIENvbnRhY3QgU2VjdGlvbiAqL1xuLmNvbnRhY3Qge1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjZS0yNCkgMDtcbn1cblxuLmNvbnRhY3QtY29udGVudCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDJmcjtcbiAgZ2FwOiB2YXIoLS1zcGFjZS0xNik7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlLTE2KTtcbn1cblxuLmNvbnRhY3QtaW5mbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2UtOCk7XG59XG5cbi5jb250YWN0LWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkaWVudC1jYXJkKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMteGwpO1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjZS04KTtcbn1cblxuLmNvbnRhY3QtaXRlbSBoMyB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZS0zKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xufVxuXG4uY29udGFjdC1pdGVtIHAge1xuICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZS00KTtcbn1cblxuLmNvbnRhY3QtZGV0YWlscyBwIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UtMik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbn1cblxuLmNvbnRhY3QtZGV0YWlscyBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG59XG5cbi8qIEZvcm0gU3R5bGVzICovXG4uZm9ybSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWdyYWRpZW50LWNhcmQpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14bCk7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNlLTgpO1xufVxuXG4uZm9ybSBpbnB1dFtuYW1lPVwid2Vic2l0ZVwiXSxcbi5mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdW3N0eWxlKj1cInBvc2l0aW9uOmFic29sdXRlXCJdIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICBsZWZ0OiAtOTk5OXB4ICFpbXBvcnRhbnQ7XG4gICAgdG9wOiAtOTk5OXB4ICFpbXBvcnRhbnQ7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5mb3JtLXJvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgZ2FwOiB2YXIoLS1zcGFjZS00KTtcbn1cblxuLmZvcm0tZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlLTYpO1xufVxuXG4uZm9ybS1ncm91cCBpbnB1dCxcbi5mb3JtLWdyb3VwIHRleHRhcmVhIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNlLTQpIHZhcigtLXNwYWNlLTQpIHZhcigtLXNwYWNlLTMpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1nbGFzcyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1iYXNlKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuXG4uZm9ybS1ncm91cCBpbnB1dDpmb2N1cyxcbi5mb3JtLWdyb3VwIHRleHRhcmVhOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMCwgMjQ1LCAyNTUsIDAuMSk7XG59XG5cbi5mb3JtLWdyb3VwIGxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IHZhcigtLXNwYWNlLTQpO1xuICBsZWZ0OiB2YXIoLS1zcGFjZS00KTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtdGVydGlhcnkpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG59XG5cbi5mb3JtLWdyb3VwIGlucHV0OmZvY3VzICsgbGFiZWwsXG4uZm9ybS1ncm91cCBpbnB1dDpub3QoOnBsYWNlaG9sZGVyLXNob3duKSArIGxhYmVsLFxuLmZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgKyBsYWJlbCxcbi5mb3JtLWdyb3VwIHRleHRhcmVhOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwge1xuICB0b3A6IC0xMnB4O1xuICBsZWZ0OiB2YXIoLS1zcGFjZS0zKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXRlcnRpYXJ5KTtcbiAgcGFkZGluZzogMnB4IHZhcigtLXNwYWNlLTIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tY29sb3ItYmctdGVydGlhcnkpO1xufVxuXG4ub3B0aW9uYWwtdGV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTJweDtcbiAgcmlnaHQ6IHZhcigtLXNwYWNlLTMpO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14cyk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXRlcnRpYXJ5KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctdGVydGlhcnkpO1xuICBwYWRkaW5nOiAycHggdmFyKC0tc3BhY2UtMSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tYmFzZSk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jb2xvci1iZy10ZXJ0aWFyeSk7XG59XG5cbi5mb3JtLWdyb3VwIGlucHV0OmZvY3VzICsgbGFiZWwgKyAub3B0aW9uYWwtdGV4dCxcbi5mb3JtLWdyb3VwIGlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwgKyAub3B0aW9uYWwtdGV4dCB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5mb3JtLWdyb3VwIHRleHRhcmVhIHtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgbWluLWhlaWdodDogMTIwcHg7XG59XG5cbi5mb3JtIC5idG4ge1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlLTQpO1xufVxuXG4vKiBSZXNwb25zaXZlIERlc2lnbiBmb3IgQ29tcG9uZW50cyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuc2VydmljZXMtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7XG4gICAgZ2FwOiB2YXIoLS1zcGFjZS02KTtcbiAgfVxuICBcbiAgLmNvbnRhY3QtY29udGVudCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiB2YXIoLS1zcGFjZS04KTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNlcnZpY2VzLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG4gIFxuICAuZm9ybS1yb3cge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG4gIFxuICAuaGVyby1zdGF0cyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLXNwYWNlLTQpO1xuICB9XG59XG5cbi8qIFV0aWxpdHkgQ2xhc3NlcyAqL1xuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udGV4dC1ncmFkaWVudCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWdyYWRpZW50LXByaW1hcnkpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG59XG5cbi5nbGFzcyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLWdsYXNzKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xufVxuXG4uZ2xvdyB7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1nbG93KTtcbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXI6IDA7XG59XG4vKiBDb250YWN0IERldGFpbHMgTGF5b3V0ICovXG4uY29udGFjdC1kZXRhaWxzIHAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZS0zKTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4vKiBVbmljb2RlIEljb25zICovXG4uY29udGFjdC1pY29uIHtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2UtMik7XG4gICAgbWluLXdpZHRoOiAxLjVlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSk7XG59XG5cbi8qIENvbnRhY3QgTGFiZWxzICovXG4uY29udGFjdC1kZXRhaWxzIHN0cm9uZyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2UtMik7XG4gICAgbWluLXdpZHRoOiA0LjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLyogUGhvbmUgTGluayBTdHlsaW5nICovXG4ucGhvbmUtbGluayB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8sICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZSk7IC8qIE1vbm9zcGFjZSBmw7xyIE51bW1lcm4gKi9cbiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWJhc2UpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xufVxuXG4ucGhvbmUtbGluazpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY29sb3ItYWNjZW50KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4ucGhvbmUtbGluazpmb2N1cyB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTtcbn1cblxuLyogVW50ZXJzY2hpZWRsaWNoZSBIb3Zlci1FZmZla3RlIGbDvHIgSGFuZHkgdnMgRmVzdG5ldHogKi9cbi5tb2JpbGUtcGhvbmUgLnBob25lLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjNENBRjUwOyAvKiBHcsO8biBmw7xyIE1vYmlsICovXG59XG5cbi5sYW5kbGluZS1waG9uZSAucGhvbmUtbGluazpob3ZlciB7XG4gICAgY29sb3I6ICMyMTk2RjM7IC8qIEJsYXUgZsO8ciBGZXN0bmV0eiAqL1xufVxuXG4vKiBQaG9uZSBOb3RlIC0gamV0enQgdW50ZXIgYmVpZGVuIE51bW1lcm4gKi9cbi5waG9uZS1ub3RlIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZS0zKTtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2UtMik7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC10ZXJ0aWFyeSk7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnBob25lLW5vdGUgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhzKTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4vKiBMb2FkaW5nIHN0YXRlIGbDvHIgcGhvbmUtcHJvdGVjdGVkICovXG4ucGhvbmUtcHJvdGVjdGVkIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG59XG5cbi5waG9uZS1wcm90ZWN0ZWQ6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJ3aXJkIGdlbGFkZW4uLi5cIjtcbn1cblxuLyogRS1NYWlsIExpbmsgYW5wYXNzZW4gKEtvbnNpc3RlbnopICovXG4uZW1haWwtcHJvdGVjdGVkIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2UpO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG59XG5cbi8qIFJlc3BvbnNpdmUgRGVzaWduICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAuY29udGFjdC1kZXRhaWxzIHAge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UtNCk7XG4gICAgfVxuICAgIFxuICAgIC5jb250YWN0LWljb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZS0xKTtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICB9XG4gICAgXG4gICAgLmNvbnRhY3QtZGV0YWlscyBzdHJvbmcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZS0xKTtcbiAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBcbiAgICAucGhvbmUtbGluayB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWJhc2UpO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgfVxuICAgIFxuICAgIC5waG9uZS1ub3RlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UtNCk7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxufVxuXG4vKiBBY2Nlc3NpYmlsaXR5IC0gSGlnaCBDb250cmFzdCBNb2RlICovXG5AbWVkaWEgKHByZWZlcnMtY29udHJhc3Q6IGhpZ2gpIHtcbiAgICAuY29udGFjdC1pY29uIHtcbiAgICAgICAgZmlsdGVyOiBub25lO1xuICAgIH1cbiAgICBcbiAgICAucGhvbmUtbGluayB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgfVxufVxuXG4vKiBEYXJrIE1vZGUgQW5wYXNzdW5nZW4gKi9cbkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAuY29udGFjdC1pY29uIHtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgM3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSk7XG4gICAgfVxufVxuLmNvbnRhY3Qtc3VjY2Vzcy1tb2RhbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB6LWluZGV4OiA5OTk5O1xuICAgIGFuaW1hdGlvbjogbW9kYWxGYWRlSW4gMC4zcyBlYXNlLW91dDtcbiAgICBwYWRkaW5nOiAxcmVtO1xufVxuXG4vKiBNb2RhbCBDb250ZW50ICovXG4uY29udGFjdC1zdWNjZXNzLWRpYWxvZyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgzMCwgNDEsIDU5LCAwLjk1KSwgcmdiYSgxNSwgMjMsIDQyLCAwLjk1KSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDE4NSwgMTI5LCAwLjMpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy14bCwgMjBweCk7XG4gICAgcGFkZGluZzogMi41cmVtO1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJveC1zaGFkb3c6IFxuICAgICAgICAwIDI1cHggNTBweCByZ2JhKDAsIDAsIDAsIDAuNSksXG4gICAgICAgIDAgMCA1MHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjEpLFxuICAgICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICBhbmltYXRpb246IG1vZGFsU2xpZGVJbiAwLjRzIGVhc2Utb3V0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHbG93aW5nIGJvcmRlciBlZmZlY3QgKi9cbi5jb250YWN0LXN1Y2Nlc3MtZGlhbG9nOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogLTEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgIzEwYjk4MSwgdHJhbnNwYXJlbnQpO1xuICAgIGFuaW1hdGlvbjogc3VjY2Vzc1NoaW1tZXIgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi8qIFN1Y2Nlc3MgSWNvbiAqL1xuLm1vZGFsLXN1Y2Nlc3MtaWNvbiB7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICAgIGNvbG9yOiAjMTBiOTgxO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAyMHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjQpKTtcbiAgICBhbmltYXRpb246IGljb25QdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLyogVHlwb2dyYXBoeSAqL1xuLmNvbnRhY3Qtc3VjY2Vzcy1kaWFsb2cgaDMge1xuICAgIGNvbG9yOiAjMTBiOTgxO1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDIwcHggcmdiYSgxNiwgMTg1LCAxMjksIDAuMyk7XG59XG5cbi5jb250YWN0LXN1Y2Nlc3MtZGlhbG9nIHAge1xuICAgIGNvbG9yOiAjZTJlOGYwO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIG1hcmdpbjogMCAwIDJyZW0gMDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG9wYWNpdHk6IDAuOTtcbn1cblxuLyogQ2xvc2UgQnV0dG9uICovXG4ubW9kYWwtY2xvc2UtYnRuIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTBiOTgxLCAjMDU5NjY5KTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDAuODc1cmVtIDJyZW07XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnLCAxMnB4KTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNXB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjMpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubW9kYWwtY2xvc2UtYnRuOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogLTEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSwgdHJhbnNwYXJlbnQpO1xuICAgIHRyYW5zaXRpb246IGxlZnQgMC42cyBlYXNlO1xufVxuXG4ubW9kYWwtY2xvc2UtYnRuOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjVweCByZ2JhKDE2LCAxODUsIDEyOSwgMC40KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDU5NjY5LCAjMDQ3ODU3KTtcbn1cblxuLm1vZGFsLWNsb3NlLWJ0bjpob3Zlcjo6YmVmb3JlIHtcbiAgICBsZWZ0OiAxMDAlO1xufVxuXG4ubW9kYWwtY2xvc2UtYnRuOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4vKiBBdXRvLWNsb3NlIHRpbWVyICovXG4ubW9kYWwtdGltZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDFyZW07XG4gICAgcmlnaHQ6IDFyZW07XG4gICAgY29sb3I6ICM5NGEzYjg7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBvcGFjaXR5OiAwLjc7XG59XG5cbi8qIEFuaW1hdGlvbnMgKi9cbkBrZXlmcmFtZXMgbW9kYWxGYWRlSW4ge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIG1vZGFsU2xpZGVJbiB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpIHNjYWxlKDAuOSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHN1Y2Nlc3NTaGltbWVyIHtcbiAgICAwJSB7XG4gICAgICAgIGxlZnQ6IC0xMDAlO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgaWNvblB1bHNlIHtcbiAgICAwJSwgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDIwcHggcmdiYSgxNiwgMTg1LCAxMjksIDAuNCkpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAzMHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjYpKTtcbiAgICB9XG59XG5cbi8qIEZhZGUgb3V0IGFuaW1hdGlvbiAqL1xuLmNvbnRhY3Qtc3VjY2Vzcy1tb2RhbC5mYWRlLW91dCB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1vdXQ7XG59XG5cbi5jb250YWN0LXN1Y2Nlc3MtbW9kYWwuZmFkZS1vdXQgLmNvbnRhY3Qtc3VjY2Vzcy1kaWFsb2cge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCkgc2NhbGUoMC45NSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG59XG5cbi8qIFJlc3BvbnNpdmUgRGVzaWduICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAuY29udGFjdC1zdWNjZXNzLWRpYWxvZyB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIG1hcmdpbjogMXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAycmVtKTtcbiAgICB9XG4gICAgXG4gICAgLm1vZGFsLXN1Y2Nlc3MtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG4gICAgXG4gICAgLmNvbnRhY3Qtc3VjY2Vzcy1kaWFsb2cgaDMge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICB9XG4gICAgXG4gICAgLmNvbnRhY3Qtc3VjY2Vzcy1kaWFsb2cgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICB9XG4gICAgXG4gICAgLm1vZGFsLWNsb3NlLWJ0biB7XG4gICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMS41cmVtO1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICB9XG59XG5cbi8qIEhpZ2ggY29udHJhc3QgbW9kZSAqL1xuQG1lZGlhIChwcmVmZXJzLWNvbnRyYXN0OiBoaWdoKSB7XG4gICAgLmNvbnRhY3Qtc3VjY2Vzcy1kaWFsb2cge1xuICAgICAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgICB9XG4gICAgXG4gICAgLmNvbnRhY3Qtc3VjY2Vzcy1kaWFsb2cgaDMge1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB9XG59XG5cbi8qIFJlZHVjZSBtb3Rpb24gZm9yIGFjY2Vzc2liaWxpdHkgKi9cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLmNvbnRhY3Qtc3VjY2Vzcy1tb2RhbCxcbiAgICAuY29udGFjdC1zdWNjZXNzLWRpYWxvZyxcbiAgICAubW9kYWwtc3VjY2Vzcy1pY29uIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgIH1cbiAgICBcbiAgICAubW9kYWwtY2xvc2UtYnRuIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG59Il19 */