:where(html){line-height:1.15;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}:where(h1){-webkit-margin-after:.67em;margin-block-end:.67em;-webkit-margin-before:.67em;margin-block-start:.67em}:where(dl,ol,ul) :where(dl,ol,ul){-webkit-margin-after:0;margin-block-end:0;-webkit-margin-before:0;margin-block-start:0}:where(hr){-webkit-box-sizing:content-box;box-sizing:content-box}:where(code,kbd,pre,samp){font-family:monospace,monospace;font-size:1em}:where(table){border-color:currentColor}:where(button){text-transform:none}:where(button,input:is([type=button i],[type=reset i],[type=submit i])){-webkit-appearance:button}:where(select){text-transform:none}:where(input[type=search i]){-webkit-appearance:textfield;outline-offset:-2px}:where(button,input:is([type=button i],[type=color i],[type=reset i],[type=submit i]))::-moz-focus-inner{border-style:none;padding:0}:where(button,input:is([type=button i],[type=color i],[type=reset i],[type=submit i]))::-moz-focusring{outline:1px dotted ButtonText}:where(:-moz-ui-invalid){box-shadow:none}:where(summary){display:list-item}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}:after,:before{text-decoration:inherit;vertical-align:inherit}:where(:root){cursor:default;line-height:1.5;overflow-wrap:break-word;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}:where(body){margin:0}:where(h1){font-size:2em;margin:.67em 0}:where(dl,ol,ul) :where(dl,ol,ul){margin:0}:where(hr){color:inherit;height:0}:where(nav) :where(ol,ul){list-style-type:none;padding:0}:where(nav li):before{content:"\200B";float:left}:where(pre){font-family:monospace,monospace;font-size:1em;overflow:auto}:where(abbr[title]){text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(b,strong){font-weight:bolder}:where(code,kbd,samp){font-family:monospace,monospace;font-size:1em}:where(small){font-size:80%}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}:where(iframe){border-style:none}:where(svg:not([fill])){fill:currentColor}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,select){margin:0}:where(button,[type=button i],[type=reset i],[type=submit i]){-webkit-appearance:button}:where(fieldset){border:1px solid #a0a0a0}:where(progress){vertical-align:baseline}:where(textarea){margin:0;resize:vertical}:where([type=search i]){-webkit-appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(dialog){background-color:#fff;border:solid;color:#000;height:-moz-fit-content;height:-webkit-fit-content;height:fit-content;left:0;margin:auto;padding:1em;position:absolute;right:0;width:-moz-fit-content;width:-webkit-fit-content;width:fit-content}:where(dialog:not([open])){display:none}:where(details>summary:first-of-type){display:list-item}:where([aria-busy=true i]){cursor:progress}:where([aria-controls]){cursor:pointer}:where([aria-disabled=true i],[disabled]){cursor:not-allowed}:where([aria-hidden=false i][hidden]){display:initial}:where([aria-hidden=false i][hidden]:not(:focus)){clip:rect(0,0,0,0);position:absolute}:root{--black:#0a0a0a;--dark-grey:#1a1a1a;--medium-grey:#333;--light-grey:#ccc;--white:#fff;--red:#d45456;--bg-primary:var(--black);--bg-secondary:var(--dark-grey);--bg-tertiary:var(--medium-grey);--bg-code:var(--dark-grey);--text-primary:var(--white);--text-secondary:var(--light-grey);--text-muted:#888;--text-code:#e6edf3;--accent-primary:var(--red);--accent-hover:#e56567;--border-color:var(--medium-grey);--syntax-comment:#8b949e;--syntax-punctuation:#e6edf3;--syntax-property:#79c0ff;--syntax-string:#a5d6ff;--syntax-keyword:#ff7b72;--syntax-function:#d2a8ff;--syntax-variable:#ffa657}@custom-media --mobile (max-width: 768px);@custom-media --tablet (max-width: 1024px);body{background:var(--bg-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.7}body,h1,h2,h3,h4,h5,h6{color:var(--text-primary)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;margin-bottom:1rem}h1{font-size:2.5rem;font-weight:700;margin-bottom:1.5rem}@media (--mobile ){h1{font-size:2rem}}h2{color:var(--accent-primary);font-size:2rem;margin-bottom:1rem;margin-top:3rem}@media (--mobile ){h2{font-size:1.75rem}}h3{font-size:1.5rem;margin-bottom:.75rem;margin-top:2rem}@media (--mobile ){h3{font-size:1.35rem}}h4,h5,h6{font-size:1.25rem;margin-bottom:.5rem;margin-top:1.5rem}p{color:var(--text-secondary);margin-bottom:1.5rem}a{color:var(--accent-primary);text-decoration:underline}a:is(:active,:hover){color:var(--accent-hover)}:focus{outline:2px solid var(--accent-primary);outline-offset:2px}::-moz-selection{background:var(--accent-primary);color:var(--white)}::selection{background:var(--accent-primary);color:var(--white)}header{background:var(--bg-primary);padding:1rem 0}nav{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin:0 auto;max-width:900px;padding:0 2rem}@media (--mobile ){nav{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:1rem;padding:1rem}}.logo{color:var(--accent-primary);font-size:1.5rem;font-weight:700;text-decoration:underline}.nav-links{display:-webkit-box;display:-ms-flexbox;display:flex;gap:2rem;list-style:none}@media (--mobile ){.nav-links{gap:1.5rem}}.nav-links a{color:var(--text-secondary);font-weight:500;padding:.5rem 0}:is(.nav-links a):is(:hover,:focus){color:var(--accent-primary);text-decoration:underline}main{margin:0 auto;max-width:900px;min-height:calc(100vh - 140px);padding:3rem 2rem;text-align:justify}@media (--mobile ){main{padding:2rem 1rem}}footer{background:var(--bg-primary);color:var(--text-muted);padding:2rem 0;text-align:center}footer p{margin:.5rem 0}footer a{color:var(--accent-primary)}:is(footer a):hover{color:var(--accent-hover)}.home-header,.page-header{margin-bottom:3rem;text-align:center}:is(.page-header,.home-header) h1{margin-bottom:1rem}:is(.page-header,.home-header) p{color:var(--text-secondary);font-size:1.25rem}.home-header{margin-bottom:4rem}.tag{background:var(--bg-tertiary);border-radius:3px;color:var(--text-secondary);font-size:.75rem;padding:.2rem .4rem;-webkit-transition:all .2s ease;transition:all .2s ease;white-space:nowrap}.tag,.tag:hover{text-decoration:none}.tag:hover{background:var(--accent-primary);color:var(--white)}.tags{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:.5rem}@media (--mobile ){.tags{-ms-flex-wrap:wrap;flex-wrap:wrap}}.articles-list,.posts-grid{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:1rem}.post-preview{-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid var(--border-color);display:-webkit-box;display:-ms-flexbox;display:flex;gap:.75rem;padding:.5rem 0}.post-preview:last-child{border-bottom:none}@media (--mobile ){.post-preview{-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.5rem}}.post-preview .separator,.post-preview time{color:var(--text-muted);font-size:.9rem;white-space:nowrap}@media (--mobile ){.post-preview .separator,.post-preview time{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}}.post-preview h3{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:0}@media (--mobile ){.post-preview h3{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}}:is(.post-preview h3) a{color:var(--accent-primary);font-size:1rem;font-weight:500;text-decoration:underline}:is(:is(.post-preview h3) a):hover{color:var(--accent-hover)}@media (--mobile ){.post-preview .tags{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}}.article-header{border-bottom:1px solid var(--border-color);margin-bottom:3rem;padding-bottom:2rem}.article-header h1{font-size:2.5rem;line-height:1.2;margin-bottom:1rem}.article-tags{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.article-tags .tag{border-radius:4px;font-size:.8rem;padding:.3rem .6rem}.article-date{color:var(--text-muted);font-size:.9rem;font-style:italic}.article-body{line-height:1.8}.article-body :is(h2,h3,h4):first-child{margin-top:0}.tags-grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:3rem}.tag-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem}.tag-card h3{font-size:1.25rem;margin:0 0 .5rem}:is(.tag-card h3) a{color:var(--accent-primary);text-decoration:none}:is(:is(.tag-card h3) a):hover{color:var(--accent-hover);text-decoration:underline}.tag-card>p{color:var(--text-muted);font-size:.9rem;margin-bottom:1rem}.recent-in-tag{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.5rem}.tag-post-preview a{color:var(--text-secondary);font-size:.9rem;line-height:1.4;text-decoration:none}:is(.tag-post-preview a):hover{color:var(--accent-primary);text-decoration:underline}.about-content{margin:0 auto;max-width:700px}@media (--mobile ){.about-content{max-width:none}}.about-content section{margin-bottom:3rem}.about-content h2{color:var(--accent-primary);font-size:1.5rem;margin-bottom:1.5rem}.about-content p{font-size:1.1rem;line-height:1.7}.about-content p,.about-content ul{margin-bottom:1.5rem}.about-content li{font-size:1.05rem;line-height:1.6;margin-bottom:.75rem}.social-links{display:-webkit-box;display:-ms-flexbox;display:flex;gap:1rem;margin-top:1.5rem}@media (--mobile ){.social-links{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.social-link{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;text-decoration:none;-webkit-transition:all .2s ease;transition:all .2s ease}@media (--mobile ){.social-link{text-align:center}}.social-link svg{height:16px;width:16px;stroke:currentColor}.social-link:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--white);text-decoration:none;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.back-link,.error-link{background:var(--bg-tertiary);border-radius:4px;color:var(--text-primary);display:inline-block;font-size:.9rem;padding:.5rem 1rem;text-decoration:none;-webkit-transition:background-color .2s ease;transition:background-color .2s ease}:is(.back-link,.error-link):hover{background:var(--accent-primary);color:var(--white);text-decoration:none}.error-link{background:var(--bg-secondary);font-weight:500;padding:.75rem 1.5rem;-webkit-transition:all .2s ease;transition:all .2s ease}.back-to-tags{margin-top:3rem;text-align:center}.error-page{margin:0 auto;max-width:600px;padding:4rem 2rem;text-align:center}@media (--mobile ){.error-page{padding:3rem 1rem}}.error-page h1{color:var(--accent-primary);font-size:6rem;font-weight:700;margin-bottom:1rem}@media (--mobile ){.error-page h1{font-size:4rem}}.error-page h2{color:var(--text-primary);font-size:2rem;margin-bottom:1rem;margin-top:0}@media (--mobile ){.error-page h2{font-size:1.5rem}}.error-page p{color:var(--text-secondary);font-size:1.125rem;margin-bottom:2rem}.error-nav{display:-webkit-box;display:-ms-flexbox;display:flex;gap:1rem;margin-top:2rem}@media (--mobile ){.error-nav{gap:.5rem}}code{color:var(--text-code);font-family:monospace;font-size:.9rem;padding:.2rem .4rem}code,pre{background:var(--bg-code)}pre{margin:2rem 0;overflow-x:auto;padding:1.5rem}pre code{background:none;font-size:.9rem;line-height:1.5;padding:0}.token.comment{color:var(--syntax-comment);font-style:italic}.token.punctuation{color:var(--syntax-punctuation)}.token:is(.property,.tag,.boolean,.number){color:var(--syntax-property)}.token:is(.string,.attr-name){color:var(--syntax-string)}.token:is(.keyword,.operator){color:var(--syntax-keyword)}.token:is(.function,.class-name){color:var(--syntax-function)}.token.variable{color:var(--syntax-variable)}blockquote{border-left:4px solid var(--accent-primary);font-style:italic;margin:2rem 0;padding:1rem 1.5rem}blockquote,li{color:var(--text-secondary)}li{margin-bottom:.5rem}table{border-collapse:collapse;margin:2rem 0;width:100%}td,th{border-bottom:1px solid var(--border-color);padding:1rem;text-align:left}th{background:var(--bg-tertiary);color:var(--text-primary);font-weight:600}figure{display:block;margin:1em auto;overflow:hidden;padding:0;text-align:center}figure img,figure picture{display:block;height:auto;width:100%}figure figcaption{color:var(--syntax-comment);font-size:1rem;font-style:italic;padding:1em}hr{border:none;border-top:1px solid var(--border-color);margin:2rem 0}.utterances{max-width:900px}.color-primary{color:var(--accent-primary)}.sr-only{border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0 0 0 0);clip-path:inset(100%)}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9AY3NzdG9vbHMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3Nhbml0aXplLmNzcy9zYW5pdGl6ZS5jc3MiLCIuLi8uLi9zcmMvY3NzL3N0eWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxhQUNFLGdCQUFpQixDQUNqQiw2QkFBOEIsQ0FDOUIsMEJBQXNCLENBQXRCLHlCQUFzQixDQUF0QixxQkFDRixDQVVBLFdBRUUsMEJBQXdCLENBQXhCLHNCQUF3QixDQUN4QiwyQkFBMEIsQ0FBMUIsd0JBQ0YsQ0FTQSxrQ0FDRSxzQkFBbUIsQ0FBbkIsa0JBQW1CLENBQ25CLHVCQUFxQixDQUFyQixvQkFDRixDQU9BLFdBQ0UsOEJBQXVCLENBQXZCLHNCQUdGLENBMkJBLDBCQUNFLCtCQUFpQyxDQUNqQyxhQUNGLENBa0JBLGNBQ0UseUJBRUYsQ0FpQkEsZUFDRSxtQkFDRixDQU1BLHdFQUNFLHlCQUNGLENBY0EsZUFDRSxtQkFDRixDQWVBLDZCQUNFLDRCQUE2QixDQUM3QixtQkFDRixDQTBDQSx5R0FDRSxpQkFBa0IsQ0FDbEIsU0FDRixDQU1BLHVHQUNFLDZCQUNGLENBTUEseUJBQ0UsZUFDRixDQWdDQSxnQkFDRSxpQkFDRixDQ3hQQSxpQkFHRSw2QkFBc0IsQ0FBdEIscUJBRUYsQ0FPQSxlQUVFLHVCQUF3QixDQUN4QixzQkFDRixDQVdBLGNBQ0UsY0FBZSxDQUNmLGVBQWdCLENBQ2hCLHdCQUF5QixDQUN6QixlQUFnQixDQUNoQixhQUFXLENBQVgsVUFBVyxDQUNYLHVDQUF3QyxDQUN4Qyw2QkFDRixDQVNBLGFBQ0UsUUFDRixDQU9BLFdBQ0UsYUFBYyxDQUNkLGNBQ0YsQ0FTQSxrQ0FDRSxRQUNGLENBT0EsV0FDRSxhQUFjLENBQ2QsUUFDRixDQU1BLDBCQUNFLG9CQUFxQixDQUNyQixTQUNGLENBTUEsc0JBQ0UsZUFBZ0IsQ0FDaEIsVUFDRixDQVFBLFlBQ0Us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LGlCQUNGLENBRUEsbUJBQ0UsK0JBQ0YsQ0FFQSwyQ0FDRSw0QkFDRixDQUVBLDhCQUNFLDBCQUNGLENBRUEsOEJBQ0UsMkJBQ0YsQ0FFQSxpQ0FDRSw0QkFDRixDQUVBLGdCQUNFLDRCQUNGLENBSUYsV0FDRSwyQ0FBNEMsQ0FHNUMsaUJBQWtCLENBRGxCLGFBQWMsQ0FEZCxtQkFJRixDQUVBLGNBSEUsMkJBTUYsQ0FIQSxHQUNFLG1CQUVGLENBRUEsTUFFRSx3QkFBeUIsQ0FDekIsYUFBYyxDQUZkLFVBR0YsQ0FFQSxNQUlFLDJDQUE0QyxDQUY1QyxZQUFhLENBQ2IsZUFFRixDQUVBLEdBQ0UsNkJBQThCLENBQzlCLHlCQUEwQixDQUMxQixlQUNGLENBRUEsT0FDRSxhQUFjLENBQ2QsZUFBZ0IsQ0FFaEIsZUFBZ0IsQ0FEaEIsU0FBVSxDQUVWLGlCQWVGLENBYkUsMEJBRUUsYUFBYyxDQUVkLFdBQVksQ0FEWixVQUVGLENBRUEsa0JBRUUsMkJBQTRCLENBRDVCLGNBQWUsQ0FHZixpQkFBa0IsQ0FEbEIsV0FFRixDQUdGLEdBQ0UsV0FBWSxDQUNaLHdDQUF5QyxDQUN6QyxhQUNGLENBR0EsWUFDRSxlQUNGLENBR0EsZUFDRSwyQkFDRixDQUVBLFNBTUUsUUFBUyxDQUhULFVBQVcsQ0FDWCxXQUFZLENBR1osZUFBZ0IsQ0FGaEIsU0FBVSxDQUpWLGlCQUFrQixDQUNsQixTQUFVLENBTVYsa0JBQW1CLENBQ25CLHFCQUNGIiwiZmlsZSI6InN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIERvY3VtZW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbjp3aGVyZShodG1sKSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICB0ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEVkZ2UsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuOndoZXJlKGgxKSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW4tYmxvY2stZW5kOiAwLjY3ZW07XG4gIG1hcmdpbi1ibG9jay1zdGFydDogMC42N2VtO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIG9uIG5lc3RlZCBsaXN0cyBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuOndoZXJlKGRsLCBvbCwgdWwpIDp3aGVyZShkbCwgb2wsIHVsKSB7XG4gIG1hcmdpbi1ibG9jay1lbmQ6IDA7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2Ugb2YgYm9yZGVyIGNvbG9yIGluIEZpcmVmb3guXG4gKi9cblxuOndoZXJlKGhyKSB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUoYWJiclt0aXRsZV0pIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbjp3aGVyZShiLCBzdHJvbmcpIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbjp3aGVyZShjb2RlLCBrYmQsIHByZSwgc2FtcCkge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG46d2hlcmUoc21hbGwpIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qIFRhYnVsYXIgZGF0YVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRhYmxlIGJvcmRlciBjb2xvciBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKiAyLiBSZW1vdmUgdGV4dCBpbmRlbnRhdGlvbiBmcm9tIHRhYmxlIGNvbnRlbnRzIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUodGFibGUpIHtcbiAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Q29sb3I7IC8qIDEgKi9cbiAgdGV4dC1pbmRlbnQ6IDA7IC8qIDIgKi9cbn1cblxuLyogRm9ybXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gb24gY29udHJvbHMgaW4gU2FmYXJpLlxuICovXG5cbjp3aGVyZShidXR0b24sIGlucHV0LCBzZWxlY3QpIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG46d2hlcmUoYnV0dG9uKSB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBidXR0b25zIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbjp3aGVyZShidXR0b24sIGlucHV0OmlzKFt0eXBlPVwiYnV0dG9uXCIgaV0sIFt0eXBlPVwicmVzZXRcIiBpXSwgW3R5cGU9XCJzdWJtaXRcIiBpXSkpIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBGaXJlZm94LlxuICovXG5cbjp3aGVyZShwcm9ncmVzcykge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbjp3aGVyZShzZWxlY3QpIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbjp3aGVyZSh0ZXh0YXJlYSkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuOndoZXJlKGlucHV0W3R5cGU9XCJzZWFyY2hcIiBpXSkge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG46Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgdGV4dCBzdHlsZSBvZiBwbGFjZWhvbGRlcnMgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjU0O1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSB1cGxvYWQgYnV0dG9ucyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIG9mIGZvY3VzIG91dGxpbmVzIGluIEZpcmVmb3guXG4gKi9cblxuOndoZXJlKGJ1dHRvbiwgaW5wdXQ6aXMoW3R5cGU9XCJidXR0b25cIiBpXSwgW3R5cGU9XCJjb2xvclwiIGldLCBbdHlwZT1cInJlc2V0XCIgaV0sIFt0eXBlPVwic3VibWl0XCIgaV0pKTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBvdXRsaW5lIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZSBpbiBGaXJlZm94LlxuICovXG5cbjp3aGVyZShidXR0b24sIGlucHV0OmlzKFt0eXBlPVwiYnV0dG9uXCIgaV0sIFt0eXBlPVwiY29sb3JcIiBpXSwgW3R5cGU9XCJyZXNldFwiIGldLCBbdHlwZT1cInN1Ym1pdFwiIGldKSk6Oi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYWRkaXRpb25hbCA6aW52YWxpZCBzdHlsZXMgaW4gRmlyZWZveC5cbiAqL1xuXG46d2hlcmUoOi1tb3otdWktaW52YWxpZCkge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBzdHlsZXMgaW4gU2FmYXJpLlxuICovXG5cbjp3aGVyZShkaWFsb2cpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogc29saWQ7XG4gIGNvbG9yOiBibGFjaztcbiAgaGVpZ2h0OiAtbW96LWZpdC1jb250ZW50O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmc6IDFlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbn1cblxuOndoZXJlKGRpYWxvZzpub3QoW29wZW5dKSkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbjp3aGVyZShzdW1tYXJ5KSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cbiIsIi8qIERvY3VtZW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCBib3JkZXIgYm94IHNpemluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIEJhY2tncm91bmRzIGRvIG5vdCByZXBlYXQgYnkgZGVmYXVsdCAob3BpbmlvbmF0ZWQpLlxuICovXG5cbiosXG46OmJlZm9yZSxcbjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBBZGQgdGV4dCBkZWNvcmF0aW9uIGluaGVyaXRhbmNlIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gQWRkIHZlcnRpY2FsIGFsaWdubWVudCBpbmhlcml0YW5jZSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG46OmJlZm9yZSxcbjo6YWZ0ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBVc2UgdGhlIGRlZmF1bHQgY3Vyc29yIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gQ2hhbmdlIHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDMuIEJyZWFrcyB3b3JkcyB0byBwcmV2ZW50IG92ZXJmbG93IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogNC4gVXNlIGEgNC1zcGFjZSB0YWIgd2lkdGggaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiA1LiBSZW1vdmUgdGhlIGdyZXkgaGlnaGxpZ2h0IG9uIGxpbmtzIGluIGlPUyAob3BpbmlvbmF0ZWQpLlxuICogNi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuOndoZXJlKDpyb290KSB7XG4gIGN1cnNvcjogZGVmYXVsdDsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS41OyAvKiAyICovXG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7IC8qIDMgKi9cbiAgLW1vei10YWItc2l6ZTogNDsgLyogNCAqL1xuICB0YWItc2l6ZTogNDsgLyogNCAqL1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiA1ICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogNiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG46d2hlcmUoYm9keSkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRWRnZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUoaDEpIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gb24gbmVzdGVkIGxpc3RzIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUoZGwsIG9sLCB1bCkgOndoZXJlKGRsLCBvbCwgdWwpIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIG9mIGJvcmRlciBjb2xvciBpbiBGaXJlZm94LlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqL1xuXG46d2hlcmUoaHIpIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBsaXN0IHN0eWxlIG9uIG5hdmlnYXRpb24gbGlzdHMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuOndoZXJlKG5hdikgOndoZXJlKG9sLCB1bCkge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUHJldmVudCBWb2ljZU92ZXIgZnJvbSBpZ25vcmluZyBsaXN0IHNlbWFudGljcyBpbiBTYWZhcmkgKG9waW5pb25hdGVkKS5cbiAqL1xuXG46d2hlcmUobmF2IGxpKTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwMEJcIjtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqIDMuIFByZXZlbnQgb3ZlcmZsb3cgb2YgdGhlIGNvbnRhaW5lciBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG46d2hlcmUocHJlKSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xuICBvdmVyZmxvdzogYXV0bzsgLyogMyAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUoYWJiclt0aXRsZV0pIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbjp3aGVyZShiLCBzdHJvbmcpIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbjp3aGVyZShjb2RlLCBrYmQsIHNhbXApIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuOndoZXJlKHNtYWxsKSB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQ2hhbmdlIHRoZSBhbGlnbm1lbnQgb24gbWVkaWEgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuOndoZXJlKGF1ZGlvLCBjYW52YXMsIGlmcmFtZSwgaW1nLCBzdmcsIHZpZGVvKSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaWZyYW1lcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG46d2hlcmUoaWZyYW1lKSB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIGZpbGwgY29sb3IgdG8gbWF0Y2ggdGhlIHRleHQgY29sb3IgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuOndoZXJlKHN2Zzpub3QoW2ZpbGxdKSkge1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG59XG5cbi8qIFRhYnVsYXIgZGF0YVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb2xsYXBzZSBib3JkZXIgc3BhY2luZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIENvcnJlY3QgdGFibGUgYm9yZGVyIGNvbG9yIGluaGVyaXRhbmNlIGluIGFsbCBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKiAzLiBSZW1vdmUgdGV4dCBpbmRlbnRhdGlvbiBmcm9tIHRhYmxlIGNvbnRlbnRzIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUodGFibGUpIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgLyogMSAqL1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgdGV4dC1pbmRlbnQ6IDA7IC8qIDMgKi9cbn1cblxuLyogRm9ybXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gb24gY29udHJvbHMgaW4gU2FmYXJpLlxuICovXG5cbjp3aGVyZShidXR0b24sIGlucHV0LCBzZWxlY3QpIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBidXR0b25zIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbjp3aGVyZShidXR0b24sIFt0eXBlPVwiYnV0dG9uXCIgaV0sIFt0eXBlPVwicmVzZXRcIiBpXSwgW3R5cGU9XCJzdWJtaXRcIiBpXSkge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIGluY29uc2lzdGVudCBhcHBlYXJhbmNlIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbjp3aGVyZShmaWVsZHNldCkge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYTBhMGEwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgRmlyZWZveC5cbiAqL1xuXG46d2hlcmUocHJvZ3Jlc3MpIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqIDMuIENoYW5nZSB0aGUgcmVzaXplIGRpcmVjdGlvbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG46d2hlcmUodGV4dGFyZWEpIHtcbiAgbWFyZ2luOiAwOyAvKiAxICovXG4gIHJlc2l6ZTogdmVydGljYWw7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG46d2hlcmUoW3R5cGU9XCJzZWFyY2hcIiBpXSkge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG46Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgdGV4dCBzdHlsZSBvZiBwbGFjZWhvbGRlcnMgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjU0O1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSB1cGxvYWQgYnV0dG9ucyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBzdHlsZXMgaW4gU2FmYXJpLlxuICovXG5cbjp3aGVyZShkaWFsb2cpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogc29saWQ7XG4gIGNvbG9yOiBibGFjaztcbiAgaGVpZ2h0OiAtbW96LWZpdC1jb250ZW50O1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmc6IDFlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbn1cblxuOndoZXJlKGRpYWxvZzpub3QoW29wZW5dKSkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gU2FmYXJpLlxuICovXG5cbjp3aGVyZShkZXRhaWxzID4gc3VtbWFyeTpmaXJzdC1vZi10eXBlKSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogQWNjZXNzaWJpbGl0eVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDaGFuZ2UgdGhlIGN1cnNvciBvbiBidXN5IGVsZW1lbnRzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbjp3aGVyZShbYXJpYS1idXN5PVwidHJ1ZVwiIGldKSB7XG4gIGN1cnNvcjogcHJvZ3Jlc3M7XG59XG5cbi8qXG4gKiBDaGFuZ2UgdGhlIGN1cnNvciBvbiBjb250cm9sIGVsZW1lbnRzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbjp3aGVyZShbYXJpYS1jb250cm9sc10pIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKlxuICogQ2hhbmdlIHRoZSBjdXJzb3Igb24gZGlzYWJsZWQsIG5vdC1lZGl0YWJsZSwgb3Igb3RoZXJ3aXNlXG4gKiBpbm9wZXJhYmxlIGVsZW1lbnRzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbjp3aGVyZShbYXJpYS1kaXNhYmxlZD1cInRydWVcIiBpXSwgW2Rpc2FibGVkXSkge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vKlxuICogQ2hhbmdlIHRoZSBkaXNwbGF5IG9uIHZpc3VhbGx5IGhpZGRlbiBhY2Nlc3NpYmxlIGVsZW1lbnRzXG4gKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG46d2hlcmUoW2FyaWEtaGlkZGVuPVwiZmFsc2VcIiBpXVtoaWRkZW5dKSB7XG4gIGRpc3BsYXk6IGluaXRpYWw7XG59XG5cbjp3aGVyZShbYXJpYS1oaWRkZW49XCJmYWxzZVwiIGldW2hpZGRlbl06bm90KDpmb2N1cykpIHtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuIiwiQGltcG9ydCBcIm5vcm1hbGl6ZS5jc3NcIjtcbkBpbXBvcnQgXCJzYW5pdGl6ZS5jc3NcIjtcblxuLyogTW9kZXJuIFNpbXBsZSBCbG9nIC0gRGFyayBUaGVtZSAqL1xuOnJvb3Qge1xuICAtLWJsYWNrOiAjMGEwYTBhO1xuICAtLWRhcmstZ3JleTogIzFhMWExYTtcbiAgLS1tZWRpdW0tZ3JleTogIzMzMzMzMztcbiAgLS1saWdodC1ncmV5OiAjY2NjY2NjO1xuICAtLXdoaXRlOiAjZmZmZmZmO1xuICAtLXJlZDogI2Q0NTQ1NjtcblxuICAtLWJnLXByaW1hcnk6IHZhcigtLWJsYWNrKTtcbiAgLS1iZy1zZWNvbmRhcnk6IHZhcigtLWRhcmstZ3JleSk7XG4gIC0tYmctdGVydGlhcnk6IHZhcigtLW1lZGl1bS1ncmV5KTtcbiAgLS1iZy1jb2RlOiB2YXIoLS1kYXJrLWdyZXkpO1xuXG4gIC0tdGV4dC1wcmltYXJ5OiB2YXIoLS13aGl0ZSk7XG4gIC0tdGV4dC1zZWNvbmRhcnk6IHZhcigtLWxpZ2h0LWdyZXkpO1xuICAtLXRleHQtbXV0ZWQ6ICM4ODg4ODg7XG4gIC0tdGV4dC1jb2RlOiAjZTZlZGYzO1xuXG4gIC0tYWNjZW50LXByaW1hcnk6IHZhcigtLXJlZCk7XG4gIC0tYWNjZW50LWhvdmVyOiAjZTU2NTY3O1xuXG4gIC0tYm9yZGVyLWNvbG9yOiB2YXIoLS1tZWRpdW0tZ3JleSk7XG5cbiAgLS1zeW50YXgtY29tbWVudDogIzhiOTQ5ZTtcbiAgLS1zeW50YXgtcHVuY3R1YXRpb246ICNlNmVkZjM7XG4gIC0tc3ludGF4LXByb3BlcnR5OiAjNzljMGZmO1xuICAtLXN5bnRheC1zdHJpbmc6ICNhNWQ2ZmY7XG4gIC0tc3ludGF4LWtleXdvcmQ6ICNmZjdiNzI7XG4gIC0tc3ludGF4LWZ1bmN0aW9uOiAjZDJhOGZmO1xuICAtLXN5bnRheC12YXJpYWJsZTogI2ZmYTY1Nztcbn1cblxuLyogQ3VzdG9tIE1lZGlhIFF1ZXJpZXMgKi9cbkBjdXN0b20tbWVkaWEgLS1tb2JpbGUgKG1heC13aWR0aDogNzY4cHgpO1xuQGN1c3RvbS1tZWRpYSAtLXRhYmxldCAobWF4LXdpZHRoOiAxMDI0cHgpO1xuXG4vKiBCYXNlIFN0eWxlcyAqL1xuYm9keSB7XG4gIGZvbnQtZmFtaWx5OlxuICAgIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWY7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbiAgbGluZS1oZWlnaHQ6IDEuNztcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4vKiBUeXBvZ3JhcGh5ICovXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuaDEge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXG4gIEBtZWRpYSAoLS1tb2JpbGUpIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cbn1cblxuaDIge1xuICBmb250LXNpemU6IDJyZW07XG4gIG1hcmdpbi10b3A6IDNyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtcHJpbWFyeSk7XG5cbiAgQG1lZGlhICgtLW1vYmlsZSkge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgfVxufVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuXG4gIEBtZWRpYSAoLS1tb2JpbGUpIHtcbiAgICBmb250LXNpemU6IDEuMzVyZW07XG4gIH1cbn1cblxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxucCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTtcbn1cblxuLyogTGlua3MgKi9cbmEge1xuICBjb2xvcjogdmFyKC0tYWNjZW50LXByaW1hcnkpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAmOmlzKDphY3RpdmUsIDpob3Zlcikge1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtaG92ZXIpO1xuICB9XG59XG5cbi8qIEZvY3VzIGFuZCBTZWxlY3Rpb24gKi9cbio6Zm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYWNjZW50LXByaW1hcnkpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC1wcmltYXJ5KTtcbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbn1cblxuLyogTGF5b3V0IENvbXBvbmVudHMgKi9cbmhlYWRlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpO1xuICBwYWRkaW5nOiAxcmVtIDA7XG59XG5cbm5hdiB7XG4gIG1heC13aWR0aDogOTAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwIDJyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICBAbWVkaWEgKC0tbW9iaWxlKSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDFyZW07XG4gICAgcGFkZGluZzogMXJlbTtcbiAgfVxufVxuXG4ubG9nbyB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LXByaW1hcnkpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLm5hdi1saW5rcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMnJlbTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICBAbWVkaWEgKC0tbW9iaWxlKSB7XG4gICAgZ2FwOiAxLjVyZW07XG4gIH1cblxuICAmIGEge1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMDtcblxuICAgICY6aXMoOmhvdmVyLCA6Zm9jdXMpIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtcHJpbWFyeSk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxubWFpbiB7XG4gIG1heC13aWR0aDogOTAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAzcmVtIDJyZW07XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxNDBweCk7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG5cbiAgQG1lZGlhICgtLW1vYmlsZSkge1xuICAgIHBhZGRpbmc6IDJyZW0gMXJlbTtcbiAgfVxufVxuXG5mb290ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5KTtcbiAgcGFkZGluZzogMnJlbSAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcblxuICAmIHAge1xuICAgIG1hcmdpbjogMC41cmVtIDA7XG4gIH1cblxuICAmIGEge1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtcHJpbWFyeSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtaG92ZXIpO1xuICAgIH1cbiAgfVxufVxuXG4vKiBQYWdlIEhlYWRlcnMgKi9cbi5wYWdlLWhlYWRlcixcbi5ob21lLWhlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcblxuICAmIGgxIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG5cbiAgJiBwIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTtcbiAgfVxufVxuXG4uaG9tZS1oZWFkZXIge1xuICBtYXJnaW4tYm90dG9tOiA0cmVtO1xufVxuXG4vKiBUYWdzICovXG4udGFnIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmctdGVydGlhcnkpO1xuICBwYWRkaW5nOiAwLjJyZW0gMC40cmVtO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC1wcmltYXJ5KTtcbiAgICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuXG4udGFncyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC41cmVtO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICBAbWVkaWEgKC0tbW9iaWxlKSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG59XG5cbi8qIFBvc3RzICovXG4ucG9zdHMtZ3JpZCxcbi5hcnRpY2xlcy1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4ucG9zdC1wcmV2aWV3IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG5cbiAgQG1lZGlhICgtLW1vYmlsZSkge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDAuNXJlbTtcbiAgfVxuXG4gICYgdGltZSxcbiAgJiAuc2VwYXJhdG9yIHtcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBtZWRpYSAoLS1tb2JpbGUpIHtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICYgaDMge1xuICAgIG1hcmdpbjogMDtcbiAgICBmbGV4OiAxO1xuXG4gICAgQG1lZGlhICgtLW1vYmlsZSkge1xuICAgICAgb3JkZXI6IDI7XG4gICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIH1cblxuICAgICYgYSB7XG4gICAgICBjb2xvcjogdmFyKC0tYWNjZW50LXByaW1hcnkpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWFjY2VudC1ob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJiAudGFncyB7XG4gICAgQG1lZGlhICgtLW1vYmlsZSkge1xuICAgICAgb3JkZXI6IDM7XG4gICAgfVxuICB9XG59XG5cbi8qIEFydGljbGUgTGF5b3V0ICovXG4uYXJ0aWNsZS1oZWFkZXIge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XG5cbiAgJiBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG59XG5cbi5hcnRpY2xlLXRhZ3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICYgLnRhZyB7XG4gICAgcGFkZGluZzogMC4zcmVtIDAuNnJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gIH1cbn1cblxuLmFydGljbGUtZGF0ZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLmFydGljbGUtYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjg7XG5cbiAgJiA6aXMoaDIsIGgzLCBoNCk6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuLyogVGFncyBJbmRleCAqL1xuLnRhZ3MtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpO1xuICBnYXA6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG59XG5cbi50YWctY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLXNlY29uZGFyeSk7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO1xuXG4gICYgaDMge1xuICAgIG1hcmdpbjogMCAwIDAuNXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcblxuICAgICYgYSB7XG4gICAgICBjb2xvcjogdmFyKC0tYWNjZW50LXByaW1hcnkpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWFjY2VudC1ob3Zlcik7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYgPiBwIHtcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxufVxuXG4ucmVjZW50LWluLXRhZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC41cmVtO1xufVxuXG4udGFnLXBvc3QtcHJldmlldyBhIHtcbiAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50LXByaW1hcnkpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG5cbi8qIEFib3V0IFBhZ2UgKi9cbi5hYm91dC1jb250ZW50IHtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG5cbiAgQG1lZGlhICgtLW1vYmlsZSkge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gICYgc2VjdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgfVxuXG4gICYgaDIge1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtcHJpbWFyeSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG5cbiAgJiBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNztcbiAgfVxuXG4gICYgdWwge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgfVxuXG4gICYgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIH1cbn1cblxuLnNvY2lhbC1saW5rcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMXJlbTtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuXG4gIEBtZWRpYSAoLS1tb2JpbGUpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG5cbi5zb2NpYWwtbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgcGFkZGluZzogMC43NXJlbSAxLjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLXNlY29uZGFyeSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICBAbWVkaWEgKC0tbW9iaWxlKSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJiBzdmcge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBzdHJva2U6IGN1cnJlbnRDb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC1wcmltYXJ5KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC1wcmltYXJ5KTtcbiAgICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIH1cbn1cblxuLyogQnV0dG9ucyBhbmQgTGlua3MgKi9cbi5iYWNrLWxpbmssXG4uZXJyb3ItbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZDogdmFyKC0tYmctdGVydGlhcnkpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LXByaW1hcnkpO1xuICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi5lcnJvci1saW5rIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmctc2Vjb25kYXJ5KTtcbiAgcGFkZGluZzogMC43NXJlbSAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5iYWNrLXRvLXRhZ3Mge1xuICBtYXJnaW4tdG9wOiAzcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIDQwNCBFcnJvciBQYWdlICovXG4uZXJyb3ItcGFnZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDRyZW0gMnJlbTtcblxuICBAbWVkaWEgKC0tbW9iaWxlKSB7XG4gICAgcGFkZGluZzogM3JlbSAxcmVtO1xuICB9XG5cbiAgJiBoMSB7XG4gICAgZm9udC1zaXplOiA2cmVtO1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtcHJpbWFyeSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgQG1lZGlhICgtLW1vYmlsZSkge1xuICAgICAgZm9udC1zaXplOiA0cmVtO1xuICAgIH1cbiAgfVxuXG4gICYgaDIge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICBAbWVkaWEgKC0tbW9iaWxlKSB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICB9XG4gIH1cblxuICAmIHAge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICB9XG59XG5cbi5lcnJvci1uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDFyZW07XG4gIG1hcmdpbi10b3A6IDJyZW07XG5cbiAgQG1lZGlhICgtLW1vYmlsZSkge1xuICAgIGdhcDogMC41cmVtO1xuICB9XG59XG5cbi8qIENvZGUgKi9cbmNvZGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jb2RlKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29kZSk7XG4gIHBhZGRpbmc6IDAuMnJlbSAwLjRyZW07XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG5wcmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jb2RlKTtcbiAgcGFkZGluZzogMS41cmVtO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBtYXJnaW46IDJyZW0gMDtcblxuICAmIGNvZGUge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICB9XG59XG5cbi8qIFN5bnRheCBIaWdobGlnaHRpbmcgKi9cbi50b2tlbiB7XG4gICYuY29tbWVudCB7XG4gICAgY29sb3I6IHZhcigtLXN5bnRheC1jb21tZW50KTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICAmLnB1bmN0dWF0aW9uIHtcbiAgICBjb2xvcjogdmFyKC0tc3ludGF4LXB1bmN0dWF0aW9uKTtcbiAgfVxuXG4gICY6aXMoLnByb3BlcnR5LCAudGFnLCAuYm9vbGVhbiwgLm51bWJlcikge1xuICAgIGNvbG9yOiB2YXIoLS1zeW50YXgtcHJvcGVydHkpO1xuICB9XG5cbiAgJjppcyguc3RyaW5nLCAuYXR0ci1uYW1lKSB7XG4gICAgY29sb3I6IHZhcigtLXN5bnRheC1zdHJpbmcpO1xuICB9XG5cbiAgJjppcygua2V5d29yZCwgLm9wZXJhdG9yKSB7XG4gICAgY29sb3I6IHZhcigtLXN5bnRheC1rZXl3b3JkKTtcbiAgfVxuXG4gICY6aXMoLmZ1bmN0aW9uLCAuY2xhc3MtbmFtZSkge1xuICAgIGNvbG9yOiB2YXIoLS1zeW50YXgtZnVuY3Rpb24pO1xuICB9XG5cbiAgJi52YXJpYWJsZSB7XG4gICAgY29sb3I6IHZhcigtLXN5bnRheC12YXJpYWJsZSk7XG4gIH1cbn1cblxuLyogQ29udGVudCBFbGVtZW50cyAqL1xuYmxvY2txdW90ZSB7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tYWNjZW50LXByaW1hcnkpO1xuICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcbiAgbWFyZ2luOiAycmVtIDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTtcbn1cblxubGkge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIG1hcmdpbjogMnJlbSAwO1xufVxuXG50aCxcbnRkIHtcbiAgcGFkZGluZzogMXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XG59XG5cbnRoIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmctdGVydGlhcnkpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMWVtIGF1dG87XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBwaWN0dXJlLFxuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIGZpZ2NhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjb2xvcjogdmFyKC0tc3ludGF4LWNvbW1lbnQpO1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cbn1cblxuaHIge1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO1xuICBtYXJnaW46IDJyZW0gMDtcbn1cblxuLyogVXR0ZXJhbmNlcyAqL1xuLnV0dGVyYW5jZXMge1xuICBtYXgtd2lkdGg6IDkwMHB4O1xufVxuXG4vKiBVdGlsaXR5IGNsYXNzZXMgKi9cbi5jb2xvci1wcmltYXJ5IHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1wcmltYXJ5KTtcbn1cblxuLnNyLW9ubHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgY2xpcC1wYXRoOiBpbnNldCgxMDAlKTtcbn1cbiJdfQ== */