.mdl-shadow--2dp,.responsive-block{box-shadow:0 2px 2px 0 rgba(0,0,0,.0466667),0 3px 1px -2px rgba(0,0,0,.0666667),0 1px 5px 0 rgba(0,0,0,.04)}.mdl-shadow--3dp{box-shadow:0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.2),0 1px 8px 0 rgba(0,0,0,.12)}.mdl-shadow--4dp{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2)}.mdl-shadow--6dp{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.2)}.mdl-shadow--8dp{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.2)}.mdl-shadow--16dp{box-shadow:0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.2)}.mdl-shadow--24dp{box-shadow:0 9px 46px 8px rgba(0,0,0,.14),0 11px 15px -7px rgba(0,0,0,.12),0 24px 38px 3px rgba(0,0,0,.2)}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#a67f59;background:rgba(255,255,255,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.f-color-chip{height:60px;width:60px;border:1px solid rgba(0,0,0,.5);border-radius:50%;margin-bottom:16px}.f-color-chip__text{text-align:center}.f-color-chip__border{text-align:center;border-width:2px;border-style:solid}.f-color-chips>div{margin-right:32px}.f-color-chip-small{height:30px;width:30px;border:1px solid rgba(0,0,0,.5);border-radius:50%;margin-bottom:10px}.f-color-chip-small__text{text-align:center}.f-color{margin-bottom:24px}.f-color-chip-text{font-size:70px;line-height:1.4;font-weight:500}.f-color-chip-shape{height:30px;width:30px;margin-bottom:24px}.f-controls{margin-right:8px}.f-controls .f-control{display:block;float:left;text-align:center;width:33.33333%;margin:0;padding:1rem 0}.f-controls .mdl-switch{margin:0 32px;width:auto}.f-controls .mdl-switch span{align-items:center;flex-direction:row;display:flex}.f-controls .mdl-switch span i{margin-left:4px}.f-control{display:inline-block;cursor:pointer;margin-left:.66rem}.f-control svg{width:.875rem;height:.875rem}.f-control svg use,.f-item-controls .f-control use{fill:color(light)}.f-control-bar{padding:1rem 0}.f-menu-toggle{cursor:pointer;vertical-align:middle}.f-menu-toggle svg{display:block;float:left;margin-bottom:-1px}.f-item-group{margin-bottom:32px;border-bottom:1px solid color(light)}.f-item-code{overflow:hidden;position:relative}.f-item-preview .ric-footer__container,.f-item-preview .ric-header__container,.f-item-preview .ric-metaheader__container{width:100%!important}.f-item-code-container{padding-top:2rem}.f-item-border-bottom{border-bottom:1px solid color(light)}.f-item-heading-group{vertical-align:middle}.f-item-controls,.f-item-heading{display:inline-block;vertical-align:middle}.f-item-heading{line-height:1}.f-item-controls{margin-left:.5rem}.f-item-controls .f-control{width:.875rem;height:.875rem;display:block;float:left}.f-item-controls .f-control:hover use{fill:color(normal)}.f-item-hidden{display:none}.f-item-notes{color:rgba(0,0,0,.54);margin-bottom:32px}.f-menu{z-index:1;flex:0 0 180px;margin-right:16px;order:0;overflow:auto}@media only screen and (max-width:960px){.f-menu{flex-direction:row;padding-top:0;overflow:none;position:static;border-bottom:solid 1px rgba(0,0,0,.15);overflow-x:scroll}}.f-menu a{display:block;padding:4px 32px;color:rgba(0,0,0,.87);font-weight:400}.f-menu a:hover,.overview-principle>div span{color:rgba(0,0,0,.54)}.f-menu a.f-active{box-shadow:inset .25rem 0 0 0 #0096d8}@media only screen and (max-width:960px){.f-menu a:not(.f-menu__heading){display:none}}.f-menu .f-menu__heading{padding-left:16px;font-weight:500}.f-menu .f-menu__heading:hover,.f-menu a{text-decoration:none}.f-menu .f-menu-section{margin:8px 0}.ricardo-icons__item{margin:20px 0}.ricardo-icons__code{margin:0 10px}.f-typo-item{margin:8px 0;padding:8px 0}.f-typo-item:hover{background-color:rgba(0,0,0,.1)}.typo-block{background-color:rgba(0,0,0,.15)}.typo-image-block{margin-top:20px;height:200px;width:400px;background-color:rgba(0,0,0,.08)}code{margin-left:1px;margin-right:1px;-webkit-font-smoothing:auto;border-radius:2px;padding:4px 0}code,pre[class*=language-]{background-color:#fff}pre[class*=language-]:hover{background-color:#fafafa}pre[class*=language-] code{background-color:transparent}.overview-principle{text-align:center;margin:16px 0}.overview-principle>div{width:120px;margin:0 16px}.overview-principle>div span:first-of-type{color:rgba(0,0,0,.87);font-size:16px;margin-top:8px}.container-typography{margin-right:32px}.header-brand{padding:16px}.page-content{position:relative;max-width:1200px;margin:auto}.page-content-container{margin:32px 0 64px}.media-queries-ui-container{margin-right:8px;margin-top:32px}.mdl-data-table tbody tr.hovered{background-color:#eee}.media-query-ui{height:20px;margin-bottom:16px;position:relative;padding:0 8px}.media-query-ui span{font-size:12px}.media-query-ui-inside{background-color:#c6ecff;border-right:4px solid #48a7f3}.media-query-ui-inside.hovered,.media-query-ui-inside:hover{background-color:#92cbf8}.media-query-ui-outside{background-color:#f2d8af}.media-query-ui-outside-1{border-right:4px solid #f37a22;margin-right:8px}.media-query-ui-outside-2{border-left:4px solid #f37a22;margin-left:8px}.media-query-ui-outside.hovered,.media-query-ui-outside:hover{background-color:#ffc16a}.media-query-ui-between{margin:0 8px;background-color:#cce9ab;border-left:4px solid #6a9e3f;border-right:4px solid #6a9e3f}.media-query-ui-between.hovered,.media-query-ui-between:hover{background-color:#b3dd82}.responsive-container{margin-top:32px}.responsive-container .mdl-radio{margin:0 8px}.responsive-block{height:600px;max-height:550px;margin:32px auto 0;width:100%;background-color:#fff;border:1px solid #d3d3d3}@media only screen and (max-width:600px){.responsive-block{margin-right:0;height:60vw}}.responsive-block>div{height:100%}.responsive-block-mobile_s{width:35%}.responsive-block-mobile_m{width:45%;height:600px;max-height:600px}.responsive-block-mobile_l{width:55%;height:650px;max-height:650px}.responsive-block-tablet{width:80%;height:800px;max-height:800px}.responsive-block-laptop{width:92%}.responsive-block-laptop .responsive-block-content,.responsive-block-laptop_4k,.responsive-block-laptop_l{width:100%}.responsive-block-laptop .responsive-block-menu{width:20%;height:100%}.responsive-block-laptop_l .responsive-block-content{width:80%;margin:auto}.responsive-block-laptop_l .responsive-block-menu{width:20%;height:100%}.responsive-block-laptop_4k .responsive-block-content{width:50%;margin:auto}.responsive-block-laptop_4k .responsive-block-menu{width:20%;height:100%}.responsive-block .center-text{display:flex;align-items:center;justify-content:center}.responsive-block .center-text span{max-width:50%}.responsive-block-metadata{background-color:#b39ddb;height:25px}.responsive-block-header{background-color:#90caf9;height:60px}.responsive-block-main{background-color:#ffcc80}.responsive-block-menu{background-color:#a5d6a7;height:40px}.responsive-block-footer{background-color:#e6ee9c;height:25px}.responsive-block-footer-meta{background-color:#ef9a9a;height:50px}.icons-container>div{margin:8px}.icons-container i.material-icons{width:48px;height:48px;line-height:48px;text-align:center}.footer-bar{background-color:#e4e4e4;padding:8px 16px}.footer-bar>div{max-width:1200px;margin:auto}.footer-bar .metaheader-footer{margin-bottom:12px}.footer-bar .metaheader-footer>div:not(:first-child){margin-top:8px}.codepen-button{z-index:1000;cursor:pointer;background-image:url(../images/codepen-logo.png);background-repeat:no-repeat;background-position:5px center;background-size:26px 26px;position:absolute;top:0;right:-140px;height:46px;display:inline-block;opacity:.6;overflow:hidden;box-sizing:border-box;white-space:nowrap;color:#000;padding:13px 15px 5px 50px;transition:right .5s,background-color .5s,opacity .5s,background-size .3s}.codepen-button::after{content:'Open in CodePen'}.codepen-button:hover{opacity:1;right:0;background-size:36px 36px;background-color:#eee;border-bottom-left-radius:10px}.docs-layout pre[class*=language-markup]{padding-right:0}.docs-layout pre[class*=language-markup].codepen-button-disabled:not code{padding-right:50px}.codepen-button-disabled .codepen-button{display:none}.layout.horizontal,.layout.horizontal-reverse,.layout.vertical,.layout.vertical-reverse{display:flex}.layout.inline{display:inline-flex}.layout.horizontal{flex-direction:row}.layout.horizontal-reverse{flex-direction:row-reverse}.layout.vertical{flex-direction:column}.layout.vertical-reverse{flex-direction:column-reverse}.layout.wrap{flex-wrap:wrap}.layout.no-wrap{flex-wrap:nowrap}.layout.wrap-reverse{flex-wrap:wrap-reverse}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex,.flex-1{flex:1}.flex-2{flex:2}.flex-3{flex:3}.flex-4{flex:4}.flex-5{flex:5}.flex-6{flex:6}.flex-7{flex:7}.flex-8{flex:8}.flex-9{flex:9}.flex-10{flex:10}.flex-11{flex:11}.flex-12{flex:12}.layout.start{align-items:flex-start}.layout.center,.layout.center-center{align-items:center}.layout.end{align-items:flex-end}.layout.start-justified{justify-content:flex-start}.center-center,.center-justified{justify-content:center}.end-justified{justify-content:flex-end}.around-justified{justify-content:space-around}.justified{justify-content:space-between}.self-start{-ms-align-self:flex-start;align-self:flex-start}.self-center{-ms-align-self:center;-ms-grid-row-align:center;align-self:center}.self-end{-ms-align-self:flex-end;align-self:flex-end}.self-stretch{-ms-align-self:stretch;-ms-grid-row-align:stretch;align-self:stretch}.block{display:block}[hidden]{display:none!important}.invisible{visibility:hidden!important}.relative{position:relative}.fit{position:absolute;top:0;right:0;bottom:0;left:0}body.fullbleed{margin:0;height:100vh}.scroll{-webkit-overflow-scrolling:touch;overflow:auto}.fixed-bottom,.fixed-left,.fixed-right,.fixed-top{position:fixed}.fixed-top{top:0;left:0;right:0}.fixed-right{top:0;right:0;bottom:0}.fixed-bottom{right:0;bottom:0;left:0}.fixed-left{top:0;bottom:0;left:0}.ric-pagination{margin-bottom:30px}@media screen and (max-width:600px){.ric-pagination{text-align:center}}pre{overflow:auto}.styleguide-fabricator-controls{display:flex;align-items:flex-end;justify-content:space-between;padding:15px 0}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9tZGwvc2hhZG93L19zaGFkb3cuc2NzcyIsIi4uLy4uLy4uL2xpYi9tZGwvX21peGlucy5zY3NzIiwicGFydGlhbHMvX2NvZGUuc2NzcyIsIm1haW4uY3NzIiwicGFydGlhbHMvX2NvbG9yLWNoaXBzLnNjc3MiLCJwYXJ0aWFscy9fY29udHJvbHMuc2NzcyIsInBhcnRpYWxzL19pdGVtLnNjc3MiLCJwYXJ0aWFscy9fbWVudS5zY3NzIiwiLi4vLi4vLi4vbGliL3JpY2FyZG8vbGF5b3V0L19taXhpbnMuc2NzcyIsImZhYnJpY2F0b3Iuc2NzcyIsInBhcnRpYWxzL19yaWNhcmRvLWljb25zLnNjc3MiLCJwYXJ0aWFscy9fdHlwby5zY3NzIiwiY29kZXBlbi5zY3NzIiwiaXJvbi1mbGV4LWxheW91dC5zY3NzIiwicGFnaW5hdGlvbi5zY3NzIiwibWFpbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CQSxnQixDQUFBLGlCLENDb05FLDJHLENEaE5GLGdCLENDcU5FLGdHLENEak5GLGdCLENDc05FLGlHLENEbE5GLGdCLENDdU5FLGtHLENEbk5GLGdCLENDd05FLHNHLENEcE5GLGlCLENDME5FLHdHLENEdE5GLGlCLENDNE5FLHlHLENDaFFGLHNCLENBQUEscUIsQ0FFQyxVLENBQ0EsYyxDQUNBLHNCLENBQ0EsaUUsQ0FDQSxlLENBQ0EsZSxDQUNBLG1CLENBQ0EsaUIsQ0FDQSxnQixDQUNBLGUsQ0FFQSxlLENBRUEsVSxDQUVBLG9CLENBRUEsZ0IsQ0FDQSxZLENDaVltQyxrQyxDRHhYcEMsaUMsQ0FBQSxpQyxDQUFBLGdDLENBRUMsZ0IsQ0FDQSxrQixDQUdELGFBQ0Msc0IsQ0FBQSxxQixDQUVDLGdCLENBSEYsQ0FRQSxxQixDQUNDLFcsQ0FDQSxhLENBQ0EsYSxDQUdELGdDLENBQUEscUIsQ0FFQyxrQixDQUlELGdDLENBQ0MsWSxDQUNBLGtCLENBQ0Esa0IsQ0NzWGMsWSxDRG5YZixjLENDa1hjLGMsQ0RsWGQsYSxDQUlDLGEsQ0FHRCxrQixDQUNDLFUsQ0FHRCxVLENBQ0MsVSxDQ2tYVSxjLENBRUcsZSxDQUVBLGMsQ0FIQyxhLENEaFhmLGUsQ0NrWGdCLGEsQ0RsWGhCLFUsQ0FPQyxVLENBR0QsZ0IsQ0NnWFksYyxDQURFLFcsQ0FFQyxlLENEalhmLGUsQ0M4V2lCLGEsQ0R4V2hCLFUsQ0NpWFUsMkIsQ0FDaUIsb0IsQ0QvVzVCLGEsQ0FBQSxlLENDNldjLFUsQ0R4V2IsYSxDQUNBLCtCLENBR0QsYSxDQUFBLGlCLENDNFdrQixjLENEeldqQixVLENBR0QsZSxDQUNDLGEsQ0FHRCxnQixDQUFBLFksQ0MwV2lCLGUsQ0R2V2hCLFUsQ0FHRCxXLENBQUEsZ0IsQ0FFQyxlLENBRUQsYSxDQUNDLGlCLENBR0QsYSxDQUNDLFcsQ0V4SUQsYSxDQUNJLFcsQ0FDQSxVLENBQ0EsK0IsQ0FDQSxpQixDQUNBLGtCLENBRUosbUIsQ0FDSSxpQixDQUVKLHFCLENBQ0ksaUIsQ0FDQSxnQixDQUNBLGtCLENBRUosa0IsQ0FFUSxpQixDQUdSLG1CLENBQ0ksVyxDQUNBLFUsQ0FDQSwrQixDQUNBLGlCLENBQ0Esa0IsQ0FFSix5QixDQUNJLGlCLENBRUosUSxDQUNJLGtCLENBRUosa0IsQ0FDSSxjLENBQ0EsZSxDQUNBLGUsQ0FFSixtQixDQUNJLFcsQ0FDQSxVLENBQ0Esa0IsQ0N2Q0osVyxDQUNJLGdCLENBREosc0IsQ0FJRSxhLENBQ0EsVSxDQUNBLGlCLENBQ0EsZSxDQUNBLFEsQ0FDQSxjLENBVEYsdUIsQ0FhRSxhLENBQ0EsVSxDQWRGLDRCLENBbUJHLGtCLENBQ0Esa0IsQ0FDQSxZLENBckJILDhCLENBaUJJLGUsQ0FTSixVLENBQ0Msb0IsQ0FDQSxjLENBQ0Esa0IsQ0FIRCxjLENBTUUsYSxDQUNBLGMsQ0FQRixrQixDQ1dBLCtCLENEREcsaUIsQ0FLSCxjLENBQ0MsYyxDQUdELGMsQ0FDQyxjLENBQ0EscUIsQ0FGRCxrQixDQUtFLGEsQ0FDQSxVLENBQ0Esa0IsQ0N0REYsYSxDQUNDLGtCLENBQ0Esb0MsQ0FHRCxZLENBQ0csZSxDQUNDLGlCLENBT0osc0MsQ0FBQSxzQyxDQUFBLDBDLENBRUUsb0IsQ0FJRixzQixDQUNDLGdCLENBR0QscUIsQ0FDQyxvQyxDQUdELHFCLENBQ0MscUIsQ0FVRCxnQixDQVBBLGUsQ0FRQyxvQixDQUNBLHFCLENBVEQsZSxDQUdDLGEsQ0FJRCxnQixDQUdDLGlCLENBSEQsMkIsQ0FNRSxhLENBQ0EsYyxDQUNBLGEsQ0FDQSxVLENBVEYscUMsQ0FhSSxrQixDQVVKLGMsQ0FDQyxZLENBR0QsYSxDQUNDLHFCLENBQ0Esa0IsQ0MvREQsTyxDQUNDLFMsQ0FDQSxjLENBQ0MsaUIsQ0FDRCxPLENBQ0EsYSxDQ2tCRyx5Q0R2QkosTyxDQVFFLGtCLENBQ0EsYSxDQUNFLGEsQ0FDRixlLENBQ0MsdUMsQ0FDRCxpQixDQ1VFLENEdkJKLFMsQ0FpQkUsYSxDQUNBLGdCLENBQ0EscUIsQ0FFQSxlLENBckJGLGUsQ0VpQ0EsNEIsQ0ZURyxxQixDQXhCSCxrQixDQTRCRyxxQyxDQ0xDLHlDRHZCSiwrQixDQWdDSSxZLENDVEEsQ0R2Qkosd0IsQ0F1Q0UsaUIsQ0FDQSxlLENBeENGLDhCLENBQUEsUyxDQTJDRyxvQixDQTNDSCx1QixDQWdERSxZLENHckRGLG9CLENBRUksYSxDQUZKLG9CLENBS0ksYSxDQ0xKLFksQ0FDSSxZLENBQ0EsYSxDQUZKLGtCLENBSVEsK0IsQ0FHUixXLENBQ0ksZ0MsQ0FFSixpQixDQUNJLGUsQ0FDQSxZLENBQ0EsVyxDQUNBLGdDLENGRUosSSxDQUNDLGUsQ0FDQSxnQixDQUNBLDJCLENBRUEsaUIsQ0FlQSxhLENBcEJELEksQ0FRQSxxQixDQUNDLHFCLENBREQsMkIsQ0FJRSx3QixDQUpGLDBCLENBT0UsNEIsQ0FPRixtQixDQUNDLGlCLENBQ0EsYSxDQUZELHVCLENBSUUsVyxDQUNBLGEsQ0FMRiwwQyxDQVNJLHFCLENBQ0EsYyxDQUNBLGMsQ0FLSixxQixDQUNDLGlCLENBRUQsYSxDQUNJLFksQ0FFSixhLENBQ0MsaUIsQ0FDQSxnQixDQUNBLFcsQ0FFRCx1QixDQUVDLGtCLENBR0QsMkIsQ0FDQyxnQixDQUNBLGUsQ0FFRCxnQyxDQUNJLHFCLENBRUosZSxDQUNDLFcsQ0FDQSxrQixDQUNFLGlCLENBQ0YsYSxDQUpELG9CLENBTUUsYyxDQU5GLHNCLENBU0Usd0IsQ0FDQSw4QixDQVZGLDhCLENBQUEsNEIsQ0FZRyx3QixDQVpILHVCLENBZ0JFLHdCLENBaEJGLHlCLENBa0JHLDhCLENBQ0EsZ0IsQ0FuQkgseUIsQ0FzQkcsNkIsQ0FDQSxlLENBdkJILCtCLENBQUEsNkIsQ0EwQkcsd0IsQ0ExQkgsdUIsQ0E4QkUsWSxDQUNBLHdCLENBQ0EsNkIsQ0FDQSw4QixDQWpDRiwrQixDQUFBLDZCLENBbUNHLHdCLENBS0gscUIsQ0FDQyxlLENBREQsZ0MsQ0FHRSxZLENBSUYsaUIsQ0FFQyxZLENBQ0EsZ0IsQ0FDQSxrQixDQUNBLFUsQ0FDQSxxQixDQUNBLHdCLENEdEhHLHlDQytHSixpQixDQVNFLGMsQ0FDQSxXLENEekhFLENDK0dKLHFCLENBYUUsVyxDQWJGLDBCLENBZ0JFLFMsQ0FoQkYsMEIsQ0FtQkUsUyxDQUNBLFksQ0FDQSxnQixDQXJCRiwwQixDQXdCRSxTLENBQ0EsWSxDQUNBLGdCLENBMUJGLHdCLENBNkJFLFMsQ0FDQSxZLENBQ0EsZ0IsQ0EvQkYsd0IsQ0FrQ0UsUyxDQWxDRixrRCxDQUFBLDJCLENBQUEsMEIsQ0FvQ0csVSxDQXBDSCwrQyxDQXVDRyxTLENBQ0EsVyxDQXhDSCxvRCxDQThDRyxTLENBQ0EsVyxDQS9DSCxpRCxDQWtERyxTLENBQ0EsVyxDQW5ESCxxRCxDQXlERyxTLENBQ0EsVyxDQTFESCxrRCxDQTZERyxTLENBQ0EsVyxDQTlESCw4QixDQWtFSSxZLENBQ0Ysa0IsQ0FDQSxzQixDQXBFRixtQyxDQXNFSyxhLENBdEVMLDBCLENBMEVFLHdCLENBQ0EsVyxDQTNFRix3QixDQThFRSx3QixDQUNBLFcsQ0EvRUYsc0IsQ0FrRkUsd0IsQ0FsRkYsc0IsQ0FxRkUsd0IsQ0FDQSxXLENBdEZGLHdCLENBeUZFLHdCLENBQ0EsVyxDQTFGRiw2QixDQTRGRyx3QixDQUNBLFcsQ0FJSCxvQixDQUVFLFUsQ0FGRixpQyxDQUtFLFUsQ0FDQSxXLENBQ0EsZ0IsQ0FDQSxpQixDQUlGLFcsQ0FDQyx3QixDQUNBLGdCLENBRkQsZSxDQUtFLGdCLENBQ0EsVyxDQU5GLDhCLENBU0Usa0IsQ0FURixvRCxDQVdHLGMsQ0duUEgsZSxDQUNFLFksQ0FDQSxjLENBQ0EsZ0QsQ0FDQSwyQixDQUNBLDhCLENBQ0EseUIsQ0FDQSxpQixDQUNBLEssQ0FDQSxZLENBQ0EsVyxDQUNBLG9CLENBQ0EsVSxDQUNBLGUsQ0FDQSxxQixDQUNBLGtCLENBQ0EsVSxDQUNBLDBCLENBQ0EseUUsQ0FFRixzQixDQUNFLHlCLENBRUYscUIsQ0FDRSxTLENBQ0EsTyxDQUNBLHlCLENBQ0EscUIsQ0FDQSw4QixDQUVGLHdDLENBQ0UsZSxDQUVGLHlFLENBQ0Usa0IsQ0FFRix3QyxDQUNFLFksQ0N0Q0Ysa0IsQ0FBQSwwQixDVnU0QjJCLGdCLENBQ1Ysd0IsQ1VsNEJiLFksQ0FHSixjLENBR0ksbUIsQ0FHSixrQixDQUdJLGtCLENBR0osMEIsQ0FHSSwwQixDQUdKLGdCLENBR0kscUIsQ0FHSix3QixDQUdJLDZCLENBR0osWSxDQUdJLGMsQ0FHSixlLENBR0ksZ0IsQ0FHSixvQixDQUdJLHNCLENBR0osVSxDQUdJLGEsQ0FHSixVLENBR0ksUyxDQUdKLEssQ0FBQSxPLENBSUksTSxDQUdKLE8sQ0FHSSxNLENBR0osTyxDQUdJLE0sQ0FHSixPLENBR0ksTSxDQUdKLE8sQ0FHSSxNLENBR0osTyxDQUdJLE0sQ0FHSixPLENBR0ksTSxDQUdKLE8sQ0FHSSxNLENBR0osTyxDQUdJLE0sQ0FHSixRLENBR0ksTyxDQUdKLFEsQ0FHSSxPLENBR0osUSxDQUdJLE8sQ0FLSixhLENBR0ksc0IsQ0FHSixjLENBQUEscUIsQ0FJSSxrQixDQUdKLFcsQ0FHSSxvQixDQUtKLHVCLENBR0ksMEIsQ0FHSixjLENBQUEsaUIsQ0FJSSxzQixDQUdKLGMsQ0FHSSx3QixDQUdKLGlCLENBR0ksNEIsQ0FHSixVLENBR0ksNkIsQ0FLSixXLENBQ0kseUIsQ0FFQSxxQixDQUdKLFksQ0FDSSxxQixDQUVBLHlCLENBQUEsaUIsQ0FHSixTLENBQ0ksdUIsQ0FFQSxtQixDQUdKLGEsQ0FDSSxzQixDQUVBLDBCLENBQUEsa0IsQ0FPSixNLENBQ0ksYSxDVnkyQkosUSxDVXAyQkksc0IsQ0FHSixVLENBQ0ksMkIsQ0FHSixTLENBQ0ksaUIsQ0FHSixJLENBQ0ksaUIsQ0FDQSxLLENBQ0EsTyxDQUNBLFEsQ0FDQSxNLENBR0osYyxDQUNJLFEsQ0FDQSxZLENBR0osTyxDQUNJLGdDLENBQ0EsYSxDQUtKLGEsQ0FBQSxXLENWd3hCWSxZLENBQ0MsVSxDVXJ4QlQsYyxDQUdKLFUsQ0FDSSxLLENBQ0EsTSxDQUNBLE8sQ0FHSixZLENBQ0ksSyxDQUNBLE8sQ0FDQSxRLENBR0osYSxDQUNJLE8sQ0FDQSxRLENBQ0EsTSxDQUdKLFcsQ0FDSSxLLENBQ0EsUSxDQUNBLE0sQ0NuU0osZSxDQUNFLGtCLENBQ0Esb0NBRkYsZSxDQUdJLGlCLENBREYsQ0NTRixHLENBQ0UsYSxDQUdGLCtCLENBQ0UsWSxDQUNBLG9CLENBQ0EsNkIsQ0FDQSxjIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4ubWRsLXNoYWRvdy0tMmRwIHtcbiAgQGluY2x1ZGUgc2hhZG93LTJkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tM2RwIHtcbiAgQGluY2x1ZGUgc2hhZG93LTNkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tNGRwIHtcbiAgQGluY2x1ZGUgc2hhZG93LTRkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tNmRwIHtcbiAgQGluY2x1ZGUgc2hhZG93LTZkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tOGRwIHtcbiAgQGluY2x1ZGUgc2hhZG93LThkcCgpO1xufVxuXG4ubWRsLXNoYWRvdy0tMTZkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy0xNmRwKCk7XG59XG5cbi5tZGwtc2hhZG93LS0yNGRwIHtcbiAgQGluY2x1ZGUgc2hhZG93LTI0ZHAoKTtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIFR5cG9ncmFwaHkgKi9cblxuQG1peGluIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaWYgJHVzZVByZWZlcnJlZCB7XG4gICAgZm9udC1mYW1pbHk6ICRwcmVmZXJyZWRfZm9udDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1kaXNwbGF5LTQoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogNjRweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjU0O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWRpc3BsYXktMygkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiA1NnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjU0O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWRpc3BsYXktMigkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiA0NXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogNDhweDtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuNTQ7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tZGlzcGxheS0xKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDM0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE3O1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1oZWFkbGluZSgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4zMztcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tdGl0bGUoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tc3ViaGVhZCgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC44NztcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1zdWJoZWFkLTIoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWJvZHktMigkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgQGlmICR1c2VQcmVmZXJyZWQge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH0gQGVsc2Uge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tYm9keS0xKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogZmFsc2UpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWNhcHRpb24oJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiBmYWxzZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuNTQ7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tYmxvY2txdW90ZSgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG5cbiAgJjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMC41ZW07XG4gICAgY29udGVudDogJ+KAnCc7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAn4oCdJztcbiAgICBtYXJnaW4tbGVmdDogLTAuMDVlbTtcbiAgfVxuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1tZW51KCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tYnV0dG9uKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuQG1peGluIHR5cG8taWNvbigpIHtcbiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnO1xuICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLyogU2hhZG93cyAqL1xuXG4vLyBGb2N1cyBzaGFkb3cgbWl4aW4uXG5AbWl4aW4gZm9jdXMtc2hhZG93KCkge1xuICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwwLDAsLjE4KSwwIDhweCAxNnB4IHJnYmEoMCwwLDAsLjM2KTtcbn1cblxuQG1peGluIHNoYWRvdy0yZHAoJGZhY3RvcjozKSB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSAvICRmYWN0b3IpLFxuICAgICAgICAgICAgICAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkgLyAkZmFjdG9yKSxcbiAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkgLyAkZmFjdG9yKTtcbn1cbkBtaXhpbiBzaGFkb3ctM2RwKCkge1xuICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDFweCA4cHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSk7XG59XG5AbWl4aW4gc2hhZG93LTRkcCgpIHtcbiAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5KTtcbn1cbkBtaXhpbiBzaGFkb3ctNmRwKCkge1xuICBib3gtc2hhZG93OiAwIDZweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAxcHggMThweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5KTtcbn1cbkBtaXhpbiBzaGFkb3ctOGRwKCkge1xuICBib3gtc2hhZG93OiAwIDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSk7XG59XG5cbkBtaXhpbiBzaGFkb3ctMTZkcCgpIHtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgIDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgIDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5KTtcbn1cblxuQG1peGluIHNoYWRvdy0yNGRwKCkge1xuICBib3gtc2hhZG93OiAwICA5cHggNDZweCAgOHB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDI0cHggMzhweCAgM3B4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSk7XG59XG5cbi8qIEFuaW1hdGlvbnMgKi9cblxuQG1peGluIG1hdGVyaWFsLWFuaW1hdGlvbi1mYXN0LW91dC1zbG93LWluKCRkdXJhdGlvbjowLjJzKSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtc2xvdy1pbjtcbn1cblxuQG1peGluIG1hdGVyaWFsLWFuaW1hdGlvbi1saW5lYXItb3V0LXNsb3ctaW4oJGR1cmF0aW9uOjAuMnMpIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGFuaW1hdGlvbi1jdXJ2ZS1saW5lYXItb3V0LXNsb3ctaW47XG59XG5cbkBtaXhpbiBtYXRlcmlhbC1hbmltYXRpb24tZmFzdC1vdXQtbGluZWFyLWluKCRkdXJhdGlvbjowLjJzKSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtbGluZWFyLWluO1xufVxuXG5AbWl4aW4gbWF0ZXJpYWwtYW5pbWF0aW9uLWRlZmF1bHQoJGR1cmF0aW9uOjAuMnMpIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0O1xufVxuXG4vKiBEaWFsb2cgKi9cblxuQG1peGluIGRpYWxvZy13aWR0aCgkdW5pdHM6NSkge1xuICBAaWYodHlwZV9vZigkdW5pdHMpICE9ICdudW1iZXInKSB7XG4gICAgQGVycm9yIFwiVGhlIHVuaXQgZ2l2ZW4gdG8gZGlhbG9nLXdpZHRoIHNob3VsZCBiZSBhIG51bWJlci5cIjtcbiAgfVxuICAvLyA1NmRwIGlzIHRoZSBiYXNlIHVuaXQgd2lkdGggZm9yIERpYWxvZ3MuXG4gIC8vIFdpdGggNSB1bml0cyBiZWluZyB0aGUgbnVtYmVyIG9mIHVuaXRzIGZvciBhIG1vYmlsZSBkZXZpY2UuXG4gIC8vIGh0dHBzOi8vZ29vLmdsL3NLMk81b1xuICB3aWR0aDogJHVuaXRzICogNTZweDtcbn1cbiIsIi8qIGh0dHA6Ly9wcmlzbWpzLmNvbS9kb3dubG9hZC5odG1sP3RoZW1lcz1wcmlzbSZsYW5ndWFnZXM9bWFya3VwK2NzcytjbGlrZStqYXZhc2NyaXB0ICovXG4vKipcbiAqIHByaXNtLmpzIGRlZmF1bHQgdGhlbWUgZm9yIEphdmFTY3JpcHQsIENTUyBhbmQgSFRNTFxuICogQmFzZWQgb24gZGFiYmxldCAoaHR0cDovL2RhYmJsZXQuY29tKVxuICogQGF1dGhvciBMZWEgVmVyb3VcbiAqL1xuXG5jb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSxcbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuXHRjb2xvcjogYmxhY2s7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdHRleHQtc2hhZG93OiAwIDFweCB3aGl0ZTtcblx0Zm9udC1mYW1pbHk6IENvbnNvbGFzLCBNb25hY28sICdBbmRhbGUgTW9ubycsICdVYnVudHUgTW9ubycsIG1vbm9zcGFjZTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0d2hpdGUtc3BhY2U6IHByZTtcblx0d29yZC1zcGFjaW5nOiBub3JtYWw7XG5cdHdvcmQtYnJlYWs6IG5vcm1hbDtcblx0d29yZC13cmFwOiBub3JtYWw7XG5cdGxpbmUtaGVpZ2h0OiAxLjU7XG5cblx0LW1vei10YWItc2l6ZTogNDtcblx0LW8tdGFiLXNpemU6IDQ7XG5cdHRhYi1zaXplOiA0O1xuXG5cdC13ZWJraXQtaHlwaGVuczogbm9uZTtcblx0LW1vei1oeXBoZW5zOiBub25lO1xuXHQtbXMtaHlwaGVuczogbm9uZTtcblx0aHlwaGVuczogbm9uZTtcbn1cblxucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTo6LW1vei1zZWxlY3Rpb24sIHByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0gOjotbW96LXNlbGVjdGlvbixcbmNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOjotbW96LXNlbGVjdGlvbiwgY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0gOjotbW96LXNlbGVjdGlvbiB7XG5cdHRleHQtc2hhZG93OiBub25lO1xuXHRiYWNrZ3JvdW5kOiAjYjNkNGZjO1xufVxuXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOjpzZWxlY3Rpb24sIHByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0gOjpzZWxlY3Rpb24sXG5jb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTo6c2VsZWN0aW9uLCBjb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSA6OnNlbGVjdGlvbiB7XG5cdHRleHQtc2hhZG93OiBub25lO1xuXHRiYWNrZ3JvdW5kOiAjYjNkNGZjO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuXHRjb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSxcblx0cHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSB7XG5cdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdH1cbn1cblxuLyogQ29kZSBibG9ja3MgKi9cbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuXHRwYWRkaW5nOiAxZW07XG5cdG1hcmdpbjogLjVlbSAwO1xuXHRvdmVyZmxvdzogYXV0bztcbn1cblxuOm5vdChwcmUpID4gY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0sXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcblx0YmFja2dyb3VuZDogI2Y1ZjJmMDtcbn1cblxuLyogSW5saW5lIGNvZGUgKi9cbjpub3QocHJlKSA+IGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcblx0cGFkZGluZzogLjFlbTtcblx0Ym9yZGVyLXJhZGl1czogLjNlbTtcblx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuLnRva2VuLmNvbW1lbnQsXG4udG9rZW4ucHJvbG9nLFxuLnRva2VuLmRvY3R5cGUsXG4udG9rZW4uY2RhdGEge1xuXHRjb2xvcjogc2xhdGVncmF5O1xufVxuXG4udG9rZW4ucHVuY3R1YXRpb24ge1xuXHRjb2xvcjogIzk5OTtcbn1cblxuLm5hbWVzcGFjZSB7XG5cdG9wYWNpdHk6IC43O1xufVxuXG4udG9rZW4ucHJvcGVydHksXG4udG9rZW4udGFnLFxuLnRva2VuLmJvb2xlYW4sXG4udG9rZW4ubnVtYmVyLFxuLnRva2VuLmNvbnN0YW50LFxuLnRva2VuLnN5bWJvbCxcbi50b2tlbi5kZWxldGVkIHtcblx0Y29sb3I6ICM5MDU7XG59XG5cbi50b2tlbi5zZWxlY3Rvcixcbi50b2tlbi5hdHRyLW5hbWUsXG4udG9rZW4uc3RyaW5nLFxuLnRva2VuLmNoYXIsXG4udG9rZW4uYnVpbHRpbixcbi50b2tlbi5pbnNlcnRlZCB7XG5cdGNvbG9yOiAjNjkwO1xufVxuXG4udG9rZW4ub3BlcmF0b3IsXG4udG9rZW4uZW50aXR5LFxuLnRva2VuLnVybCxcbi5sYW5ndWFnZS1jc3MgLnRva2VuLnN0cmluZyxcbi5zdHlsZSAudG9rZW4uc3RyaW5nIHtcblx0Y29sb3I6ICNhNjdmNTk7XG5cdGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcbn1cblxuLnRva2VuLmF0cnVsZSxcbi50b2tlbi5hdHRyLXZhbHVlLFxuLnRva2VuLmtleXdvcmQge1xuXHRjb2xvcjogIzA3YTtcbn1cblxuLnRva2VuLmZ1bmN0aW9uIHtcblx0Y29sb3I6ICNERDRBNjg7XG59XG5cbi50b2tlbi5yZWdleCxcbi50b2tlbi5pbXBvcnRhbnQsXG4udG9rZW4udmFyaWFibGUge1xuXHRjb2xvcjogI2U5MDtcbn1cblxuLnRva2VuLmltcG9ydGFudCxcbi50b2tlbi5ib2xkIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udG9rZW4uaXRhbGljIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4udG9rZW4uZW50aXR5IHtcblx0Y3Vyc29yOiBoZWxwO1xufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyogUmljYXJkbyBBZGRlZCB2YXJpYWJsZXMgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4vKiBSaWNhcmRvIEFkZGVkIHZhcmlhYmxlcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi8qIERpYWxvZyAqL1xuLm1kbC1zaGFkb3ctLTJkcCwgLnJlc3BvbnNpdmUtYmxvY2sge1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDQ2NjY2NyksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4wNjY2NjY3KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjA0KTsgfVxuXG4ubWRsLXNoYWRvdy0tM2RwIHtcbiAgYm94LXNoYWRvdzogMCAzcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGwtc2hhZG93LS00ZHAge1xuICBib3gtc2hhZG93OiAwIDRweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5tZGwtc2hhZG93LS02ZHAge1xuICBib3gtc2hhZG93OiAwIDZweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMThweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4ubWRsLXNoYWRvdy0tOGRwIHtcbiAgYm94LXNoYWRvdzogMCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5tZGwtc2hhZG93LS0xNmRwIHtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLm1kbC1zaGFkb3ctLTI0ZHAge1xuICBib3gtc2hhZG93OiAwIDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLyoqXG4gKiBGYWJyaWNhdG9yIHN0eWxlc1xuICogQGF1dGhvciBMdWtlIEFza2V3XG4gKiBDbGFzcyBzZWxlY3RvcnMgYXJlIG5hbWVzcGFjZWQgd2l0aCBcImYtXCJcbiAqL1xuLyogaHR0cDovL3ByaXNtanMuY29tL2Rvd25sb2FkLmh0bWw/dGhlbWVzPXByaXNtJmxhbmd1YWdlcz1tYXJrdXArY3NzK2NsaWtlK2phdmFzY3JpcHQgKi9cbi8qKlxuICogcHJpc20uanMgZGVmYXVsdCB0aGVtZSBmb3IgSmF2YVNjcmlwdCwgQ1NTIGFuZCBIVE1MXG4gKiBCYXNlZCBvbiBkYWJibGV0IChodHRwOi8vZGFiYmxldC5jb20pXG4gKiBAYXV0aG9yIExlYSBWZXJvdVxuICovXG5jb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSxcbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuICBjb2xvcjogYmxhY2s7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCB3aGl0ZTtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBNb25hY28sICdBbmRhbGUgTW9ubycsICdVYnVudHUgTW9ubycsIG1vbm9zcGFjZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIC1tb3otdGFiLXNpemU6IDQ7XG4gIC1vLXRhYi1zaXplOiA0O1xuICB0YWItc2l6ZTogNDtcbiAgLXdlYmtpdC1oeXBoZW5zOiBub25lO1xuICAtbW96LWh5cGhlbnM6IG5vbmU7XG4gIC1tcy1oeXBoZW5zOiBub25lO1xuICBoeXBoZW5zOiBub25lOyB9XG5cbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06Oi1tb3otc2VsZWN0aW9uLCBwcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6LW1vei1zZWxlY3Rpb24sXG5jb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTo6LW1vei1zZWxlY3Rpb24sIGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIDo6LW1vei1zZWxlY3Rpb24ge1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogI2IzZDRmYzsgfVxuXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOjpzZWxlY3Rpb24sIHByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0gOjpzZWxlY3Rpb24sXG5jb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTo6c2VsZWN0aW9uLCBjb2RlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSA6OnNlbGVjdGlvbiB7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiAjYjNkNGZjOyB9XG5cbkBtZWRpYSBwcmludCB7XG4gIGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdLFxuICBwcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTsgfSB9XG5cbi8qIENvZGUgYmxvY2tzICovXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcbiAgcGFkZGluZzogMWVtO1xuICBtYXJnaW46IC41ZW0gMDtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuOm5vdChwcmUpID4gY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0sXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcbiAgYmFja2dyb3VuZDogI2Y1ZjJmMDsgfVxuXG4vKiBJbmxpbmUgY29kZSAqL1xuOm5vdChwcmUpID4gY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuICBwYWRkaW5nOiAuMWVtO1xuICBib3JkZXItcmFkaXVzOiAuM2VtO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG5cbi50b2tlbi5jb21tZW50LFxuLnRva2VuLnByb2xvZyxcbi50b2tlbi5kb2N0eXBlLFxuLnRva2VuLmNkYXRhIHtcbiAgY29sb3I6IHNsYXRlZ3JheTsgfVxuXG4udG9rZW4ucHVuY3R1YXRpb24ge1xuICBjb2xvcjogIzk5OTsgfVxuXG4ubmFtZXNwYWNlIHtcbiAgb3BhY2l0eTogLjc7IH1cblxuLnRva2VuLnByb3BlcnR5LFxuLnRva2VuLnRhZyxcbi50b2tlbi5ib29sZWFuLFxuLnRva2VuLm51bWJlcixcbi50b2tlbi5jb25zdGFudCxcbi50b2tlbi5zeW1ib2wsXG4udG9rZW4uZGVsZXRlZCB7XG4gIGNvbG9yOiAjOTA1OyB9XG5cbi50b2tlbi5zZWxlY3Rvcixcbi50b2tlbi5hdHRyLW5hbWUsXG4udG9rZW4uc3RyaW5nLFxuLnRva2VuLmNoYXIsXG4udG9rZW4uYnVpbHRpbixcbi50b2tlbi5pbnNlcnRlZCB7XG4gIGNvbG9yOiAjNjkwOyB9XG5cbi50b2tlbi5vcGVyYXRvcixcbi50b2tlbi5lbnRpdHksXG4udG9rZW4udXJsLFxuLmxhbmd1YWdlLWNzcyAudG9rZW4uc3RyaW5nLFxuLnN0eWxlIC50b2tlbi5zdHJpbmcge1xuICBjb2xvcjogI2E2N2Y1OTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG5cbi50b2tlbi5hdHJ1bGUsXG4udG9rZW4uYXR0ci12YWx1ZSxcbi50b2tlbi5rZXl3b3JkIHtcbiAgY29sb3I6ICMwN2E7IH1cblxuLnRva2VuLmZ1bmN0aW9uIHtcbiAgY29sb3I6ICNERDRBNjg7IH1cblxuLnRva2VuLnJlZ2V4LFxuLnRva2VuLmltcG9ydGFudCxcbi50b2tlbi52YXJpYWJsZSB7XG4gIGNvbG9yOiAjZTkwOyB9XG5cbi50b2tlbi5pbXBvcnRhbnQsXG4udG9rZW4uYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi50b2tlbi5pdGFsaWMge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLnRva2VuLmVudGl0eSB7XG4gIGN1cnNvcjogaGVscDsgfVxuXG4uZi1jb2xvci1jaGlwIHtcbiAgaGVpZ2h0OiA2MHB4O1xuICB3aWR0aDogNjBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxuLmYtY29sb3ItY2hpcF9fdGV4dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uZi1jb2xvci1jaGlwX19ib3JkZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci13aWR0aDogMnB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG5cbi5mLWNvbG9yLWNoaXBzID4gZGl2IHtcbiAgbWFyZ2luLXJpZ2h0OiAzMnB4OyB9XG5cbi5mLWNvbG9yLWNoaXAtc21hbGwge1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4uZi1jb2xvci1jaGlwLXNtYWxsX190ZXh0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5mLWNvbG9yIHtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDsgfVxuXG4uZi1jb2xvci1jaGlwLXRleHQge1xuICBmb250LXNpemU6IDcwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLmYtY29sb3ItY2hpcC1zaGFwZSB7XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDMwcHg7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cblxuLmYtY29udHJvbHMge1xuICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuICAuZi1jb250cm9scyAuZi1jb250cm9sIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMXJlbSAwOyB9XG4gIC5mLWNvbnRyb2xzIC5tZGwtc3dpdGNoIHtcbiAgICBtYXJnaW46IDAgMzJweDtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5mLWNvbnRyb2xzIC5tZGwtc3dpdGNoIHNwYW4ge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAuZi1jb250cm9scyAubWRsLXN3aXRjaCBzcGFuIGkge1xuICAgICAgICBtYXJnaW4tbGVmdDogNHB4OyB9XG5cbi5mLWNvbnRyb2wge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDAuNjZyZW07IH1cbiAgLmYtY29udHJvbCBzdmcge1xuICAgIHdpZHRoOiAwLjg3NXJlbTtcbiAgICBoZWlnaHQ6IDAuODc1cmVtOyB9XG4gICAgLmYtY29udHJvbCBzdmcgdXNlIHtcbiAgICAgIGZpbGw6IGNvbG9yKGxpZ2h0KTsgfVxuXG4uZi1jb250cm9sLWJhciB7XG4gIHBhZGRpbmc6IDFyZW0gMDsgfVxuXG4uZi1tZW51LXRvZ2dsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAuZi1tZW51LXRvZ2dsZSBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7IH1cblxuLmYtaXRlbS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDMycHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihsaWdodCk7IH1cblxuLmYtaXRlbS1jb2RlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5mLWl0ZW0tcHJldmlldyAucmljLWhlYWRlcl9fY29udGFpbmVyLCAuZi1pdGVtLXByZXZpZXcgLnJpYy1mb290ZXJfX2NvbnRhaW5lciwgLmYtaXRlbS1wcmV2aWV3IC5yaWMtZm9vdGVyX19jb250YWluZXIsIC5mLWl0ZW0tcHJldmlldyAucmljLW1ldGFoZWFkZXJfX2NvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLmYtaXRlbS1jb2RlLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctdG9wOiAycmVtOyB9XG5cbi5mLWl0ZW0tYm9yZGVyLWJvdHRvbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihsaWdodCk7IH1cblxuLmYtaXRlbS1oZWFkaW5nLWdyb3VwIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4uZi1pdGVtLWhlYWRpbmcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi5mLWl0ZW0tY29udHJvbHMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgLmYtaXRlbS1jb250cm9scyAuZi1jb250cm9sIHtcbiAgICB3aWR0aDogMC44NzVyZW07XG4gICAgaGVpZ2h0OiAwLjg3NXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5mLWl0ZW0tY29udHJvbHMgLmYtY29udHJvbDpob3ZlciB1c2Uge1xuICAgICAgZmlsbDogY29sb3Iobm9ybWFsKTsgfVxuICAgIC5mLWl0ZW0tY29udHJvbHMgLmYtY29udHJvbCB1c2Uge1xuICAgICAgZmlsbDogY29sb3IobGlnaHQpOyB9XG5cbi5mLWl0ZW0taGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZi1pdGVtLW5vdGVzIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIG1hcmdpbi1ib3R0b206IDMycHg7IH1cblxuLmYtbWVudSB7XG4gIHotaW5kZXg6IDE7XG4gIGZsZXg6IDAgMCAxODBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICBvcmRlcjogMDtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAgIC5mLW1lbnUge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgICBvdmVyZmxvdzogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDsgfSB9XG4gIC5mLW1lbnUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNHB4IDMycHg7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAuZi1tZW51IGE6aG92ZXIge1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7IH1cbiAgICAuZi1tZW51IGEuZi1hY3RpdmUge1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMC4yNXJlbSAwIDAgMCAjMDA5NkQ4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAgICAgLmYtbWVudSBhOm5vdCguZi1tZW51X19oZWFkaW5nKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuZi1tZW51IC5mLW1lbnVfX2hlYWRpbmcge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwOyB9XG4gICAgLmYtbWVudSAuZi1tZW51X19oZWFkaW5nOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuZi1tZW51IC5mLW1lbnUtc2VjdGlvbiB7XG4gICAgbWFyZ2luOiA4cHggMDsgfVxuXG4ucmljYXJkby1pY29uc19faXRlbSB7XG4gIG1hcmdpbjogMjBweCAwOyB9XG5cbi5yaWNhcmRvLWljb25zX19jb2RlIHtcbiAgbWFyZ2luOiAwIDEwcHg7IH1cblxuLmYtdHlwby1pdGVtIHtcbiAgbWFyZ2luOiA4cHggMDtcbiAgcGFkZGluZzogOHB4IDA7IH1cbiAgLmYtdHlwby1pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLnR5cG8tYmxvY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpOyB9XG5cbi50eXBvLWltYWdlLWJsb2NrIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgaGVpZ2h0OiAyMDBweDtcbiAgd2lkdGg6IDQwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDgpOyB9XG5cbmNvZGUge1xuICBtYXJnaW4tbGVmdDogMXB4O1xuICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYXV0bztcbiAgcGFkZGluZzogMC4xMjVlbSAwLjM1ZW07XG4gIGJvcmRlci1yYWRpdXM6IDJweDsgfVxuXG5wcmVbY2xhc3MqPWxhbmd1YWdlLV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuICBwcmVbY2xhc3MqPWxhbmd1YWdlLV06aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7IH1cbiAgcHJlW2NsYXNzKj1sYW5ndWFnZS1dIGNvZGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbmNvZGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogNHB4IDBweDsgfVxuXG4ub3ZlcnZpZXctcHJpbmNpcGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDE2cHggMDsgfVxuICAub3ZlcnZpZXctcHJpbmNpcGxlID4gZGl2IHtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgbWFyZ2luOiAwIDE2cHg7IH1cbiAgICAub3ZlcnZpZXctcHJpbmNpcGxlID4gZGl2IHNwYW4ge1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7IH1cbiAgICAgIC5vdmVydmlldy1wcmluY2lwbGUgPiBkaXYgc3BhbjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4OyB9XG5cbi5jb250YWluZXItdHlwb2dyYXBoeSB7XG4gIG1hcmdpbi1yaWdodDogMzJweDsgfVxuXG4uaGVhZGVyLWJyYW5kIHtcbiAgcGFkZGluZzogMTZweDsgfVxuXG4ucGFnZS1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgbWFyZ2luOiBhdXRvOyB9XG5cbi5wYWdlLWNvbnRlbnQtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAzMnB4IDAgMzJweCAwO1xuICBtYXJnaW4tYm90dG9tOiA2NHB4OyB9XG5cbi5tZWRpYS1xdWVyaWVzLXVpLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBtYXJnaW4tdG9wOiAzMnB4OyB9XG5cbi5tZGwtZGF0YS10YWJsZSB0Ym9keSB0ci5ob3ZlcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTsgfVxuXG4ubWVkaWEtcXVlcnktdWkge1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMCA4cHg7IH1cbiAgLm1lZGlhLXF1ZXJ5LXVpIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuICAubWVkaWEtcXVlcnktdWktaW5zaWRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzZlY2ZmO1xuICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkICM0OGE3ZjM7IH1cbiAgICAubWVkaWEtcXVlcnktdWktaW5zaWRlOmhvdmVyLCAubWVkaWEtcXVlcnktdWktaW5zaWRlLmhvdmVyZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzkyY2JmODsgfVxuICAubWVkaWEtcXVlcnktdWktb3V0c2lkZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZDhhZjsgfVxuICAgIC5tZWRpYS1xdWVyeS11aS1vdXRzaWRlLTEge1xuICAgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgI2YzN2EyMjtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XG4gICAgLm1lZGlhLXF1ZXJ5LXVpLW91dHNpZGUtMiB7XG4gICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNmMzdhMjI7XG4gICAgICBtYXJnaW4tbGVmdDogOHB4OyB9XG4gICAgLm1lZGlhLXF1ZXJ5LXVpLW91dHNpZGU6aG92ZXIsIC5tZWRpYS1xdWVyeS11aS1vdXRzaWRlLmhvdmVyZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzE2YTsgfVxuICAubWVkaWEtcXVlcnktdWktYmV0d2VlbiB7XG4gICAgbWFyZ2luOiAwIDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NlOWFiO1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzZhOWUzZjtcbiAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjNmE5ZTNmOyB9XG4gICAgLm1lZGlhLXF1ZXJ5LXVpLWJldHdlZW46aG92ZXIsIC5tZWRpYS1xdWVyeS11aS1iZXR3ZWVuLmhvdmVyZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2IzZGQ4MjsgfVxuXG4ucmVzcG9uc2l2ZS1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAzMnB4OyB9XG4gIC5yZXNwb25zaXZlLWNvbnRhaW5lciAubWRsLXJhZGlvIHtcbiAgICBtYXJnaW46IDAgOHB4OyB9XG5cbi5yZXNwb25zaXZlLWJsb2NrIHtcbiAgaGVpZ2h0OiA2MDBweDtcbiAgbWF4LWhlaWdodDogNTUwcHg7XG4gIG1hcmdpbjogMzJweCBhdXRvIDBweCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgLnJlc3BvbnNpdmUtYmxvY2sge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICBoZWlnaHQ6IDYwdnc7IH0gfVxuICAucmVzcG9uc2l2ZS1ibG9jayA+IGRpdiB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLW1vYmlsZV9zIHtcbiAgICB3aWR0aDogMzUlOyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLW1vYmlsZV9tIHtcbiAgICB3aWR0aDogNDUlO1xuICAgIGhlaWdodDogNjAwcHg7XG4gICAgbWF4LWhlaWdodDogNjAwcHg7IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2stbW9iaWxlX2wge1xuICAgIHdpZHRoOiA1NSU7XG4gICAgaGVpZ2h0OiA2NTBweDtcbiAgICBtYXgtaGVpZ2h0OiA2NTBweDsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay10YWJsZXQge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgaGVpZ2h0OiA4MDBweDtcbiAgICBtYXgtaGVpZ2h0OiA4MDBweDsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay1sYXB0b3Age1xuICAgIHdpZHRoOiA5MiU7IH1cbiAgICAucmVzcG9uc2l2ZS1ibG9jay1sYXB0b3AgLnJlc3BvbnNpdmUtYmxvY2stY29udGVudCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5yZXNwb25zaXZlLWJsb2NrLWxhcHRvcCAucmVzcG9uc2l2ZS1ibG9jay1tZW51IHtcbiAgICAgIHdpZHRoOiAyMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2stbGFwdG9wX2wge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnJlc3BvbnNpdmUtYmxvY2stbGFwdG9wX2wgLnJlc3BvbnNpdmUtYmxvY2stY29udGVudCB7XG4gICAgICB3aWR0aDogODAlO1xuICAgICAgbWFyZ2luOiBhdXRvOyB9XG4gICAgLnJlc3BvbnNpdmUtYmxvY2stbGFwdG9wX2wgLnJlc3BvbnNpdmUtYmxvY2stbWVudSB7XG4gICAgICB3aWR0aDogMjAlO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLWxhcHRvcF80ayB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAucmVzcG9uc2l2ZS1ibG9jay1sYXB0b3BfNGsgLnJlc3BvbnNpdmUtYmxvY2stY29udGVudCB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgbWFyZ2luOiBhdXRvOyB9XG4gICAgLnJlc3BvbnNpdmUtYmxvY2stbGFwdG9wXzRrIC5yZXNwb25zaXZlLWJsb2NrLW1lbnUge1xuICAgICAgd2lkdGg6IDIwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAucmVzcG9uc2l2ZS1ibG9jayAuY2VudGVyLXRleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5yZXNwb25zaXZlLWJsb2NrIC5jZW50ZXItdGV4dCBzcGFuIHtcbiAgICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLW1ldGFkYXRhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjM5RERCO1xuICAgIGhlaWdodDogMjVweDsgfVxuICAucmVzcG9uc2l2ZS1ibG9jay1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5MENBRjk7XG4gICAgaGVpZ2h0OiA2MHB4OyB9XG4gIC5yZXNwb25zaXZlLWJsb2NrLW1haW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkNDODA7IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2stbWVudSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0E1RDZBNztcbiAgICBoZWlnaHQ6IDQwcHg7IH1cbiAgLnJlc3BvbnNpdmUtYmxvY2stZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTZFRTlDO1xuICAgIGhlaWdodDogMjVweDsgfVxuICAgIC5yZXNwb25zaXZlLWJsb2NrLWZvb3Rlci1tZXRhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFRjlBOUE7XG4gICAgICBoZWlnaHQ6IDUwcHg7IH1cblxuLmljb25zLWNvbnRhaW5lciA+IGRpdiB7XG4gIG1hcmdpbjogOHB4OyB9XG5cbi5pY29ucy1jb250YWluZXIgaS5tYXRlcmlhbC1pY29ucyB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmZvb3Rlci1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlNGU0O1xuICBwYWRkaW5nOiA4cHggMTZweDsgfVxuICAuZm9vdGVyLWJhciA+IGRpdiB7XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgbWFyZ2luOiBhdXRvOyB9XG4gIC5mb290ZXItYmFyIC5tZXRhaGVhZGVyLWZvb3RlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDsgfVxuICAgIC5mb290ZXItYmFyIC5tZXRhaGVhZGVyLWZvb3RlciA+IGRpdjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tdG9wOiA4cHg7IH1cblxuLyogT3BlbiB3aXRoIENvZGVQZW4gQnV0dG9uICovXG4uY29kZXBlbi1idXR0b24ge1xuICB6LWluZGV4OiAxMDAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9jb2RlcGVuLWxvZ28ucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1cHggY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDI2cHggMjZweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAtMTQwcHg7XG4gIGhlaWdodDogNDZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvcGFjaXR5OiAwLjY7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiBibGFjaztcbiAgcGFkZGluZzogMTNweCAxNXB4IDVweCA1MHB4O1xuICB0cmFuc2l0aW9uOiByaWdodCAwLjVzLCBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIG9wYWNpdHkgMC41cywgYmFja2dyb3VuZC1zaXplIDAuM3M7IH1cblxuLmNvZGVwZW4tYnV0dG9uOjphZnRlciB7XG4gIGNvbnRlbnQ6ICdPcGVuIGluIENvZGVQZW4nOyB9XG5cbi5jb2RlcGVuLWJ1dHRvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kLXNpemU6IDM2cHggMzZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDsgfVxuXG4uZG9jcy1sYXlvdXQgcHJlW2NsYXNzKj1sYW5ndWFnZS1tYXJrdXBdIHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4uZG9jcy1sYXlvdXQgcHJlW2NsYXNzKj1sYW5ndWFnZS1tYXJrdXBdLmNvZGVwZW4tYnV0dG9uLWRpc2FibGVkOm5vdCBjb2RlIHtcbiAgcGFkZGluZy1yaWdodDogNTBweDsgfVxuXG4uY29kZXBlbi1idXR0b24tZGlzYWJsZWQgLmNvZGVwZW4tYnV0dG9uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubGF5b3V0Lmhvcml6b250YWwsXG4ubGF5b3V0Lmhvcml6b250YWwtcmV2ZXJzZSxcbi5sYXlvdXQudmVydGljYWwsXG4ubGF5b3V0LnZlcnRpY2FsLXJldmVyc2Uge1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5sYXlvdXQuaW5saW5lIHtcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuXG4ubGF5b3V0Lmhvcml6b250YWwge1xuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG5cbi5sYXlvdXQuaG9yaXpvbnRhbC1yZXZlcnNlIHtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuXG4ubGF5b3V0LnZlcnRpY2FsIHtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG4ubGF5b3V0LnZlcnRpY2FsLXJldmVyc2Uge1xuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG5cbi5sYXlvdXQud3JhcCB7XG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuLmxheW91dC5uby13cmFwIHtcbiAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xuICAtd2Via2l0LWZsZXgtd3JhcDogbm93cmFwO1xuICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuXG4ubGF5b3V0LndyYXAtcmV2ZXJzZSB7XG4gIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcbiAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7IH1cblxuLmZsZXgtYXV0byB7XG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcbiAgLXdlYmtpdC1mbGV4OiAxIDEgYXV0bztcbiAgZmxleDogMSAxIGF1dG87IH1cblxuLmZsZXgtbm9uZSB7XG4gIC1tcy1mbGV4OiBub25lO1xuICAtd2Via2l0LWZsZXg6IG5vbmU7XG4gIGZsZXg6IG5vbmU7IH1cblxuLmZsZXgsXG4uZmxleC0xIHtcbiAgLW1zLWZsZXg6IDE7XG4gIC13ZWJraXQtZmxleDogMTtcbiAgZmxleDogMTsgfVxuXG4uZmxleC0yIHtcbiAgLW1zLWZsZXg6IDI7XG4gIC13ZWJraXQtZmxleDogMjtcbiAgZmxleDogMjsgfVxuXG4uZmxleC0zIHtcbiAgLW1zLWZsZXg6IDM7XG4gIC13ZWJraXQtZmxleDogMztcbiAgZmxleDogMzsgfVxuXG4uZmxleC00IHtcbiAgLW1zLWZsZXg6IDQ7XG4gIC13ZWJraXQtZmxleDogNDtcbiAgZmxleDogNDsgfVxuXG4uZmxleC01IHtcbiAgLW1zLWZsZXg6IDU7XG4gIC13ZWJraXQtZmxleDogNTtcbiAgZmxleDogNTsgfVxuXG4uZmxleC02IHtcbiAgLW1zLWZsZXg6IDY7XG4gIC13ZWJraXQtZmxleDogNjtcbiAgZmxleDogNjsgfVxuXG4uZmxleC03IHtcbiAgLW1zLWZsZXg6IDc7XG4gIC13ZWJraXQtZmxleDogNztcbiAgZmxleDogNzsgfVxuXG4uZmxleC04IHtcbiAgLW1zLWZsZXg6IDg7XG4gIC13ZWJraXQtZmxleDogODtcbiAgZmxleDogODsgfVxuXG4uZmxleC05IHtcbiAgLW1zLWZsZXg6IDk7XG4gIC13ZWJraXQtZmxleDogOTtcbiAgZmxleDogOTsgfVxuXG4uZmxleC0xMCB7XG4gIC1tcy1mbGV4OiAxMDtcbiAgLXdlYmtpdC1mbGV4OiAxMDtcbiAgZmxleDogMTA7IH1cblxuLmZsZXgtMTEge1xuICAtbXMtZmxleDogMTE7XG4gIC13ZWJraXQtZmxleDogMTE7XG4gIGZsZXg6IDExOyB9XG5cbi5mbGV4LTEyIHtcbiAgLW1zLWZsZXg6IDEyO1xuICAtd2Via2l0LWZsZXg6IDEyO1xuICBmbGV4OiAxMjsgfVxuXG4vKiBhbGlnbm1lbnQgaW4gY3Jvc3MgYXhpcyAqL1xuLmxheW91dC5zdGFydCB7XG4gIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLmxheW91dC5jZW50ZXIsXG4ubGF5b3V0LmNlbnRlci1jZW50ZXIge1xuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLmxheW91dC5lbmQge1xuICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbi8qIGFsaWdubWVudCBpbiBtYWluIGF4aXMgKi9cbi5sYXlvdXQuc3RhcnQtanVzdGlmaWVkIHtcbiAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cblxuLmNlbnRlci1qdXN0aWZpZWQsXG4uY2VudGVyLWNlbnRlciB7XG4gIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmVuZC1qdXN0aWZpZWQge1xuICAtbXMtZmxleC1wYWNrOiBlbmQ7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4uYXJvdW5kLWp1c3RpZmllZCB7XG4gIC1tcy1mbGV4LXBhY2s6IGFyb3VuZDtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLmp1c3RpZmllZCB7XG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cblxuLyogc2VsZiBhbGlnbm1lbnQgKi9cbi5zZWxmLXN0YXJ0IHtcbiAgLW1zLWFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuXG4uc2VsZi1jZW50ZXIge1xuICAtbXMtYWxpZ24tc2VsZjogY2VudGVyO1xuICAtd2Via2l0LWFsaWduLXNlbGY6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogY2VudGVyOyB9XG5cbi5zZWxmLWVuZCB7XG4gIC1tcy1hbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7IH1cblxuLnNlbGYtc3RyZXRjaCB7XG4gIC1tcy1hbGlnbi1zZWxmOiBzdHJldGNoO1xuICAtd2Via2l0LWFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7IH1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIE90aGVyIExheW91dFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIElFIDEwIHN1cHBvcnQgZm9yIEhUTUw1IGhpZGRlbiBhdHRyICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7IH1cblxuLnJlbGF0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5maXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDsgfVxuXG5ib2R5LmZ1bGxibGVlZCB7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiAxMDB2aDsgfVxuXG4uc2Nyb2xsIHtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKiBmaXhlZCBwb3NpdGlvbiAqL1xuLmZpeGVkLWJvdHRvbSxcbi5maXhlZC1sZWZ0LFxuLmZpeGVkLXJpZ2h0LFxuLmZpeGVkLXRvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDsgfVxuXG4uZml4ZWQtdG9wIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDsgfVxuXG4uZml4ZWQtcmlnaHQge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7IH1cblxuLmZpeGVkLWJvdHRvbSB7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7IH1cblxuLmZpeGVkLWxlZnQge1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDsgfVxuXG4ucmljLXBhZ2luYXRpb24ge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgLnJpYy1wYWdpbmF0aW9uIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi5zdHlsZWd1aWRlLWZhYnJpY2F0b3ItY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMTVweCAwOyB9XG4iLCIuZi1jb2xvci1jaGlwIHtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuNTApO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuLmYtY29sb3ItY2hpcF9fdGV4dCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmYtY29sb3ItY2hpcF9fYm9yZGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cbi5mLWNvbG9yLWNoaXBzIHtcbiAgICAmID4gZGl2IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMnB4O1xuICAgIH1cbn1cbi5mLWNvbG9yLWNoaXAtc21hbGwge1xuICAgIGhlaWdodDogMzBweDtcbiAgICB3aWR0aDogMzBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC41MCk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uZi1jb2xvci1jaGlwLXNtYWxsX190ZXh0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZi1jb2xvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cbi5mLWNvbG9yLWNoaXAtdGV4dCB7XG4gICAgZm9udC1zaXplOiA3MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5mLWNvbG9yLWNoaXAtc2hhcGUge1xuICAgIGhlaWdodDogMzBweDtcbiAgICB3aWR0aDogMzBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuIiwiQGltcG9ydCAncGFydGlhbHMvdmFyaWFibGVzJztcblxuLmYtY29udHJvbHMge1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuXG5cdC5mLWNvbnRyb2wge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR3aWR0aDogcGVyY2VudGFnZSgxLzMpO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAxcmVtIDA7XG5cblx0fVxuXHQubWRsLXN3aXRjaCB7XG5cdFx0bWFyZ2luOiAwIDMycHg7XG5cdFx0d2lkdGg6YXV0bztcblx0XHRzcGFuIHtcblx0XHRcdGkge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogNHB4O1xuXHRcdFx0fVxuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdH1cblx0fVxufVxuXG4uZi1jb250cm9sIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdG1hcmdpbi1sZWZ0OiAwLjY2cmVtO1xuXG5cdHN2ZyB7XG5cdFx0d2lkdGg6IDAuODc1cmVtO1xuXHRcdGhlaWdodDogMC44NzVyZW07XG5cblx0XHR1c2Uge1xuXHRcdFx0ZmlsbDogY29sb3IobGlnaHQpO1xuXHRcdH1cblx0fVxufVxuXG4uZi1jb250cm9sLWJhciB7XG5cdHBhZGRpbmc6IDFyZW0gMDtcbn1cblxuLmYtbWVudS10b2dnbGUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cblx0c3ZnIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tYm90dG9tOiAtMXB4O1xuXHR9XG59XG4iLCIuZi1pdGVtLWdyb3VwIHtcblx0bWFyZ2luLWJvdHRvbTogMzJweDtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGNvbG9yKGxpZ2h0KTtcbn1cblxuLmYtaXRlbS1jb2RlIHtcbiAgXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmYtaXRlbS1wcmV2aWV3IHtcblxufVxuXG4uZi1pdGVtLXByZXZpZXcge1xuXHQucmljLWhlYWRlcl9fY29udGFpbmVyLCAucmljLWZvb3Rlcl9fY29udGFpbmVyLCAucmljLWZvb3Rlcl9fY29udGFpbmVyLCAucmljLW1ldGFoZWFkZXJfX2NvbnRhaW5lciB7XG5cdFx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0fVxufVxuXG4uZi1pdGVtLWNvZGUtY29udGFpbmVyIHtcblx0cGFkZGluZy10b3A6IDJyZW07XG59XG5cbi5mLWl0ZW0tYm9yZGVyLWJvdHRvbSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcihsaWdodCk7XG59XG5cbi5mLWl0ZW0taGVhZGluZy1ncm91cCB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5mLWl0ZW0taGVhZGluZyB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0bGluZS1oZWlnaHQ6IDE7XG59XG5cblxuLmYtaXRlbS1jb250cm9scyB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0bWFyZ2luLWxlZnQ6IDAuNXJlbTtcblxuXHQuZi1jb250cm9sIHtcblx0XHR3aWR0aDogMC44NzVyZW07XG5cdFx0aGVpZ2h0OiAwLjg3NXJlbTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmbG9hdDogbGVmdDtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0dXNlIHtcblx0XHRcdFx0ZmlsbDogY29sb3Iobm9ybWFsKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR1c2Uge1xuXHRcdFx0ZmlsbDogY29sb3IobGlnaHQpO1xuXHRcdH1cblx0fVxufVxuXG4uZi1pdGVtLWhpZGRlbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5mLWl0ZW0tbm90ZXMge1xuXHRjb2xvcjogcmdiYSgwLCAwLCAwLCAuNTQpO1xuXHRtYXJnaW4tYm90dG9tOiAzMnB4O1xufVxuIiwiXG5AaW1wb3J0ICcuL3NyYy9saWIvcmljYXJkby9sYXlvdXQvbWl4aW5zJztcbkBpbXBvcnQgJ3BhcnRpYWxzL3ZhcmlhYmxlcyc7XG5cbi8vIG1lbnVcbi5mLW1lbnUge1xuXHR6LWluZGV4OiAxO1xuXHRmbGV4OiAwIDAgMTgwcHg7XG4gIG1hcmdpbi1yaWdodDoxNnB4O1xuXHRvcmRlcjogMDtcblx0b3ZlcmZsb3c6IGF1dG87XG5cblx0QGluY2x1ZGUgcmVzcG9uZC10byAoYWxsX3NtYWxsX3NjcmVlbnMpIHtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdHBhZGRpbmctdG9wOiAwcHg7XG4gICAgb3ZlcmZsb3c6IG5vbmU7XG5cdFx0cG9zaXRpb246IHN0YXRpYztcbiAgXHRib3JkZXItYm90dG9tOiBzb2xpZCAxcHggcmdiYSgwLDAsMCwwLjE1KTtcblx0XHRvdmVyZmxvdy14OiBzY3JvbGw7XG5cdH1cblxuXHRhIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwYWRkaW5nOiA0cHggMzJweDtcblx0XHRjb2xvcjogcmdiYSgwLDAsMCwwLjg3KTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6IHJnYmEoMCwwLDAsMC41NCk7XG5cdFx0fVxuXG5cdFx0Ji5mLWFjdGl2ZSB7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwLjI1cmVtIDAgMCAwICMwMDk2RDg7XG5cdFx0fVxuXHRcdEBpbmNsdWRlIHJlc3BvbmQtdG8gKGFsbF9zbWFsbF9zY3JlZW5zKSB7XG5cdFx0XHQmOm5vdCguZi1tZW51X19oZWFkaW5nKSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblxuXHQuZi1tZW51X19oZWFkaW5nIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDE2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblxuXHR9XG5cdC5mLW1lbnUtc2VjdGlvbiB7XG5cdFx0bWFyZ2luOiA4cHggMDtcblx0fVxufVxuIiwiJGJyZWFrX2V4dHJhX3NtYWxsOiAzMjBweDtcbiRicmVha192ZXJ5X3NtYWxsOiA0ODBweDtcbiRicmVha19zbWFsbDogNjAwcHg7XG4kYnJlYWtfbWVkaXVtOiA5NjBweDtcbiRicmVha19sYXJnZTogMTIwMHB4O1xuJGJyZWFrX2V4dHJhX2xhcmdlOiAxOTIwcHg7XG5AbWl4aW4gcmVzcG9uZC10bygkbWVkaWEpIHtcbiAgQGlmICRtZWRpYT09c21hbGxfcGhvbmVfc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtfZXh0cmFfc21hbGwgLSAxKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhPT1waG9uZV9zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha19zbWFsbCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYT09c21hbGxfc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtfc21hbGwgKyAxKSBhbmQgKG1heC13aWR0aDogJGJyZWFrX21lZGl1bSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYT09YWxsX3Zlcnlfc21hbGxfc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtfdmVyeV9zbWFsbCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYT09YWxsX3NtYWxsX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrX21lZGl1bSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYT09bWVkaXVtX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrX21lZGl1bSArIDEpIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtfbGFyZ2UpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWE9PWFsbF9tZWRpdW1fc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtfbWVkaXVtICsgMSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYT09YWxsX2xhcmdlX3NjcmVlbnMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrX2xhcmdlICsgMSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYT09bGFyZ2Vfc2NyZWVucyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkYnJlYWtfbGFyZ2UgKyAxKSBhbmQgKG1heC13aWR0aDogJGJyZWFrX2V4dHJhX2xhcmdlKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhPT1leHRyYV9sYXJnZV9zY3JlZW5zIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha19leHRyYV9sYXJnZSArIDEpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBGYWJyaWNhdG9yIHN0eWxlc1xuICogQGF1dGhvciBMdWtlIEFza2V3XG4gKiBDbGFzcyBzZWxlY3RvcnMgYXJlIG5hbWVzcGFjZWQgd2l0aCBcImYtXCJcbiAqL1xuXG5cbkBpbXBvcnQgJ3BhcnRpYWxzL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9jb2RlJztcbkBpbXBvcnQgJ3BhcnRpYWxzL2NvbG9yLWNoaXBzJztcbkBpbXBvcnQgJ3BhcnRpYWxzL2NvbnRyb2xzJztcbkBpbXBvcnQgJ3BhcnRpYWxzL2l0ZW0nO1xuQGltcG9ydCAncGFydGlhbHMvbWVudSc7XG5AaW1wb3J0ICdwYXJ0aWFscy9yaWNhcmRvLWljb25zJztcbkBpbXBvcnQgJ3BhcnRpYWxzL3R5cG8nO1xuXG5jb2RlIHtcblx0bWFyZ2luLWxlZnQ6IDFweDtcblx0bWFyZ2luLXJpZ2h0OiAxcHg7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGF1dG87XG5cdHBhZGRpbmc6IDAuMTI1ZW0gMC4zNWVtO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbnByZVtjbGFzcyo9bGFuZ3VhZ2UtXSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG5cdH1cblx0Y29kZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cbn1cbmNvZGUge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0cGFkZGluZzogNHB4IDBweDtcbn1cbi5vdmVydmlldy1wcmluY2lwbGUge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG1hcmdpbjogMTZweCAwO1xuXHQmID4gZGl2IHtcblx0XHR3aWR0aDogMTIwcHg7XG5cdFx0bWFyZ2luOiAwIDE2cHg7XG5cdFx0c3BhbiB7XG5cdFx0XHRjb2xvcjogcmdiYSgwLCAwLCAwLCAuNTQpO1xuXHRcdFx0JjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0Y29sb3I6IHJnYmEoMCwgMCwgMCwgLjg3KTtcblx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4uY29udGFpbmVyLXR5cG9ncmFwaHkge1xuXHRtYXJnaW4tcmlnaHQ6IDMycHg7XG59XG4uaGVhZGVyLWJyYW5kIHtcbiAgICBwYWRkaW5nOiAxNnB4O1xufVxuLnBhZ2UtY29udGVudCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWF4LXdpZHRoOiAxMjAwcHg7XG5cdG1hcmdpbjogYXV0bztcbn1cbi5wYWdlLWNvbnRlbnQtY29udGFpbmVyIHtcblx0bWFyZ2luOiAzMnB4IDAgMzJweCAwO1xuXHRtYXJnaW4tYm90dG9tOiA2NHB4O1xufVxuXG4ubWVkaWEtcXVlcmllcy11aS1jb250YWluZXIge1xuXHRtYXJnaW4tcmlnaHQ6IDhweDtcblx0bWFyZ2luLXRvcDogMzJweDtcbn1cbi5tZGwtZGF0YS10YWJsZSB0Ym9keSB0ci5ob3ZlcmVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuLm1lZGlhLXF1ZXJ5LXVpIHtcblx0aGVpZ2h0OiAyMHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogMCA4cHg7XG5cdHNwYW4ge1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0fVxuXHQmLWluc2lkZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2M2ZWNmZjtcblx0XHRib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjNDhhN2YzO1xuXHRcdCY6aG92ZXIsICYuaG92ZXJlZCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjOTJjYmY4O1xuXHRcdH1cblx0fVxuXHQmLW91dHNpZGUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmMmQ4YWY7XG5cdFx0Ji0xIHtcblx0XHRcdGJvcmRlci1yaWdodDogNHB4IHNvbGlkICNmMzdhMjI7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDhweDtcblx0XHR9XG5cdFx0Ji0yIHtcblx0XHRcdGJvcmRlci1sZWZ0OiA0cHggc29saWQgI2YzN2EyMjtcblx0XHRcdG1hcmdpbi1sZWZ0OiA4cHg7XG5cdFx0fVxuXHRcdCY6aG92ZXIsICYuaG92ZXJlZCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjMTZhO1xuXHRcdH1cblx0fVxuXHQmLWJldHdlZW4ge1xuXHRcdG1hcmdpbjogMCA4cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2NjZTlhYjtcblx0XHRib3JkZXItbGVmdDogNHB4IHNvbGlkICM2YTllM2Y7XG5cdFx0Ym9yZGVyLXJpZ2h0OiA0cHggc29saWQgIzZhOWUzZjtcblx0XHQmOmhvdmVyLCAmLmhvdmVyZWQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2IzZGQ4Mjtcblx0XHR9XG5cdH1cbn1cblxuLnJlc3BvbnNpdmUtY29udGFpbmVyIHtcblx0bWFyZ2luLXRvcDogMzJweDtcblx0Lm1kbC1yYWRpbyB7XG5cdFx0bWFyZ2luOiAwIDhweDtcblx0fVxufVxuXG4ucmVzcG9uc2l2ZS1ibG9jayB7XG5cdEBleHRlbmQgLm1kbC1zaGFkb3ctLTJkcDtcblx0aGVpZ2h0OiA2MDBweDtcblx0bWF4LWhlaWdodDogNTUwcHg7XG5cdG1hcmdpbjogMzJweCBhdXRvIDBweCBhdXRvO1xuXHR3aWR0aDogMTAwJTtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcblx0QGluY2x1ZGUgcmVzcG9uZC10byhwaG9uZV9zY3JlZW5zKSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwcHg7XG5cdFx0aGVpZ2h0OiA2MHZ3O1xuXHR9XG5cdD4gZGl2IHtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cblx0Ji1tb2JpbGVfcyB7XG5cdFx0d2lkdGg6IDM1JTtcblx0fVxuXHQmLW1vYmlsZV9tIHtcblx0XHR3aWR0aDogNDUlO1xuXHRcdGhlaWdodDogNjAwcHg7XG5cdFx0bWF4LWhlaWdodDogNjAwcHg7XG5cdH1cblx0Ji1tb2JpbGVfbCB7XG5cdFx0d2lkdGg6IDU1JTtcblx0XHRoZWlnaHQ6IDY1MHB4O1xuXHRcdG1heC1oZWlnaHQ6IDY1MHB4O1xuXHR9XG5cdCYtdGFibGV0IHtcblx0XHR3aWR0aDogODAlO1xuXHRcdGhlaWdodDogODAwcHg7XG5cdFx0bWF4LWhlaWdodDogODAwcHg7XG5cdH1cblx0Ji1sYXB0b3Age1xuXHRcdHdpZHRoOiA5MiU7XG5cdFx0LnJlc3BvbnNpdmUtYmxvY2stY29udGVudCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdFx0LnJlc3BvbnNpdmUtYmxvY2stbWVudSB7XG5cdFx0XHR3aWR0aDogMjAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdH1cblx0fVxuXHQmLWxhcHRvcF9sIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHQucmVzcG9uc2l2ZS1ibG9jay1jb250ZW50IHtcblx0XHRcdHdpZHRoOiA4MCU7XG5cdFx0XHRtYXJnaW46IGF1dG87XG5cdFx0fVxuXHRcdC5yZXNwb25zaXZlLWJsb2NrLW1lbnUge1xuXHRcdFx0d2lkdGg6IDIwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHR9XG5cdH1cblx0Ji1sYXB0b3BfNGsge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdC5yZXNwb25zaXZlLWJsb2NrLWNvbnRlbnQge1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdG1hcmdpbjogYXV0bztcblx0XHR9XG5cdFx0LnJlc3BvbnNpdmUtYmxvY2stbWVudSB7XG5cdFx0XHR3aWR0aDogMjAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdH1cblx0fVxuXHQuY2VudGVyLXRleHQge1xuICBcdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdHNwYW4ge1xuICBcdFx0XHRtYXgtd2lkdGg6IDUwJTtcblx0XHR9XG5cdH1cblx0Ji1tZXRhZGF0YSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0IzOUREQjtcblx0XHRoZWlnaHQ6IDI1cHg7XG5cdH1cblx0Ji1oZWFkZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICM5MENBRjk7XG5cdFx0aGVpZ2h0OiA2MHB4O1xuXHR9XG5cdCYtbWFpbiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGQ0M4MDtcblx0fVxuXHQmLW1lbnUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNBNUQ2QTc7XG5cdFx0aGVpZ2h0OiA0MHB4O1xuXHR9XG5cdCYtZm9vdGVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjRTZFRTlDO1xuXHRcdGhlaWdodDogMjVweDtcblx0XHQmLW1ldGEge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0VGOUE5QTtcblx0XHRcdGhlaWdodDogNTBweDtcblx0XHR9XG5cdH1cbn1cbi5pY29ucy1jb250YWluZXIge1xuXHQmID4gZGl2IHtcblx0XHRtYXJnaW46IDhweDtcblx0fVxuXHRpLm1hdGVyaWFsLWljb25zIHtcblx0XHR3aWR0aDogNDhweDtcblx0XHRoZWlnaHQ6IDQ4cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDQ4cHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG59XG5cbi5mb290ZXItYmFyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDtcblx0cGFkZGluZzogOHB4IDE2cHg7XG5cblx0PiBkaXYge1xuXHRcdG1heC13aWR0aDogMTIwMHB4O1xuXHRcdG1hcmdpbjogYXV0bztcblx0fVxuXHQubWV0YWhlYWRlci1mb290ZXIge1xuXHRcdG1hcmdpbi1ib3R0b206IDEycHg7XG5cdFx0PiBkaXY6bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLXRvcDogOHB4O1xuXHRcdH1cblx0fVxufVxuIiwiLnJpY2FyZG8taWNvbnMge1xuICAmX19pdGVtIHtcbiAgICBtYXJnaW46IDIwcHggMDtcbiAgfVxuICAmX19jb2RlIHtcbiAgICBtYXJnaW46IDAgMTBweDtcbiAgfVxufSIsIi5mLXR5cG8taXRlbSB7XG4gICAgbWFyZ2luOiA4cHggMDtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMSk7XG4gICAgfVxufVxuLnR5cG8tYmxvY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC4xNSk7XG59XG4udHlwby1pbWFnZS1ibG9jayB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBoZWlnaHQ6MjAwcHg7XG4gICAgd2lkdGg6NDAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjA4KTtcbn0iLCIvKiBPcGVuIHdpdGggQ29kZVBlbiBCdXR0b24gKi9cbi5jb2RlcGVuLWJ1dHRvbiB7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvY29kZXBlbi1sb2dvLnBuZycpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1cHggY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDI2cHggMjZweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAtMTQwcHg7XG4gIGhlaWdodDogNDZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvcGFjaXR5OiAwLjY7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiBibGFjaztcbiAgcGFkZGluZzogMTNweCAxNXB4IDVweCA1MHB4O1xuICB0cmFuc2l0aW9uOiByaWdodCAwLjVzLCBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIG9wYWNpdHkgMC41cywgYmFja2dyb3VuZC1zaXplIDAuM3M7XG59XG4uY29kZXBlbi1idXR0b246OmFmdGVyIHtcbiAgY29udGVudDogJ09wZW4gaW4gQ29kZVBlbic7XG59XG4uY29kZXBlbi1idXR0b246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICByaWdodDogMDtcbiAgYmFja2dyb3VuZC1zaXplOiAzNnB4IDM2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7XG59XG4uZG9jcy1sYXlvdXQgcHJlW2NsYXNzKj1sYW5ndWFnZS1tYXJrdXBdIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cbi5kb2NzLWxheW91dCBwcmVbY2xhc3MqPWxhbmd1YWdlLW1hcmt1cF0uY29kZXBlbi1idXR0b24tZGlzYWJsZWQ6bm90IGNvZGUge1xuICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xufVxuLmNvZGVwZW4tYnV0dG9uLWRpc2FibGVkIC5jb2RlcGVuLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59IiwiLmxheW91dC5ob3Jpem9udGFsLFxuLmxheW91dC5ob3Jpem9udGFsLXJldmVyc2UsXG4ubGF5b3V0LnZlcnRpY2FsLFxuLmxheW91dC52ZXJ0aWNhbC1yZXZlcnNlIHtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLmxheW91dC5pbmxpbmUge1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4ubGF5b3V0Lmhvcml6b250YWwge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4ubGF5b3V0Lmhvcml6b250YWwtcmV2ZXJzZSB7XG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG5cbi5sYXlvdXQudmVydGljYWwge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubGF5b3V0LnZlcnRpY2FsLXJldmVyc2Uge1xuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xufVxuXG4ubGF5b3V0LndyYXAge1xuICAgIC1tcy1mbGV4LXdyYXA6IHdyYXA7XG4gICAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ubGF5b3V0Lm5vLXdyYXAge1xuICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAtd2Via2l0LWZsZXgtd3JhcDogbm93cmFwO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xufVxuXG4ubGF5b3V0LndyYXAtcmV2ZXJzZSB7XG4gICAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xuICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XG4gICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XG59XG5cbi5mbGV4LWF1dG8ge1xuICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcbiAgICAtd2Via2l0LWZsZXg6IDEgMSBhdXRvO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4uZmxleC1ub25lIHtcbiAgICAtbXMtZmxleDogbm9uZTtcbiAgICAtd2Via2l0LWZsZXg6IG5vbmU7XG4gICAgZmxleDogbm9uZTtcbn1cblxuLmZsZXgsXG4uZmxleC0xIHtcbiAgICAtbXMtZmxleDogMTtcbiAgICAtd2Via2l0LWZsZXg6IDE7XG4gICAgZmxleDogMTtcbn1cblxuLmZsZXgtMiB7XG4gICAgLW1zLWZsZXg6IDI7XG4gICAgLXdlYmtpdC1mbGV4OiAyO1xuICAgIGZsZXg6IDI7XG59XG5cbi5mbGV4LTMge1xuICAgIC1tcy1mbGV4OiAzO1xuICAgIC13ZWJraXQtZmxleDogMztcbiAgICBmbGV4OiAzO1xufVxuXG4uZmxleC00IHtcbiAgICAtbXMtZmxleDogNDtcbiAgICAtd2Via2l0LWZsZXg6IDQ7XG4gICAgZmxleDogNDtcbn1cblxuLmZsZXgtNSB7XG4gICAgLW1zLWZsZXg6IDU7XG4gICAgLXdlYmtpdC1mbGV4OiA1O1xuICAgIGZsZXg6IDU7XG59XG5cbi5mbGV4LTYge1xuICAgIC1tcy1mbGV4OiA2O1xuICAgIC13ZWJraXQtZmxleDogNjtcbiAgICBmbGV4OiA2O1xufVxuXG4uZmxleC03IHtcbiAgICAtbXMtZmxleDogNztcbiAgICAtd2Via2l0LWZsZXg6IDc7XG4gICAgZmxleDogNztcbn1cblxuLmZsZXgtOCB7XG4gICAgLW1zLWZsZXg6IDg7XG4gICAgLXdlYmtpdC1mbGV4OiA4O1xuICAgIGZsZXg6IDg7XG59XG5cbi5mbGV4LTkge1xuICAgIC1tcy1mbGV4OiA5O1xuICAgIC13ZWJraXQtZmxleDogOTtcbiAgICBmbGV4OiA5O1xufVxuXG4uZmxleC0xMCB7XG4gICAgLW1zLWZsZXg6IDEwO1xuICAgIC13ZWJraXQtZmxleDogMTA7XG4gICAgZmxleDogMTA7XG59XG5cbi5mbGV4LTExIHtcbiAgICAtbXMtZmxleDogMTE7XG4gICAgLXdlYmtpdC1mbGV4OiAxMTtcbiAgICBmbGV4OiAxMTtcbn1cblxuLmZsZXgtMTIge1xuICAgIC1tcy1mbGV4OiAxMjtcbiAgICAtd2Via2l0LWZsZXg6IDEyO1xuICAgIGZsZXg6IDEyO1xufVxuXG4vKiBhbGlnbm1lbnQgaW4gY3Jvc3MgYXhpcyAqL1xuXG4ubGF5b3V0LnN0YXJ0IHtcbiAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XG4gICAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmxheW91dC5jZW50ZXIsXG4ubGF5b3V0LmNlbnRlci1jZW50ZXIge1xuICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5sYXlvdXQuZW5kIHtcbiAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cblxuLyogYWxpZ25tZW50IGluIG1haW4gYXhpcyAqL1xuXG4ubGF5b3V0LnN0YXJ0LWp1c3RpZmllZCB7XG4gICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4uY2VudGVyLWp1c3RpZmllZCxcbi5jZW50ZXItY2VudGVyIHtcbiAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmVuZC1qdXN0aWZpZWQge1xuICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLmFyb3VuZC1qdXN0aWZpZWQge1xuICAgIC1tcy1mbGV4LXBhY2s6IGFyb3VuZDtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xufVxuXG4uanVzdGlmaWVkIHtcbiAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLyogc2VsZiBhbGlnbm1lbnQgKi9cblxuLnNlbGYtc3RhcnQge1xuICAgIC1tcy1hbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIC13ZWJraXQtYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuXG4uc2VsZi1jZW50ZXIge1xuICAgIC1tcy1hbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgLXdlYmtpdC1hbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG4uc2VsZi1lbmQge1xuICAgIC1tcy1hbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAtd2Via2l0LWFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuXG4uc2VsZi1zdHJldGNoIHtcbiAgICAtbXMtYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAtd2Via2l0LWFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIE90aGVyIExheW91dFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLmJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogSUUgMTAgc3VwcG9ydCBmb3IgSFRNTDUgaGlkZGVuIGF0dHIgKi9cbltoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4ucmVsYXRpdmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmZpdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbn1cblxuYm9keS5mdWxsYmxlZWQge1xuICAgIG1hcmdpbjogMDtcbiAgICBoZWlnaHQ6IDEwMHZoO1xufVxuXG4uc2Nyb2xsIHtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qIGZpeGVkIHBvc2l0aW9uICovXG5cbi5maXhlZC1ib3R0b20sXG4uZml4ZWQtbGVmdCxcbi5maXhlZC1yaWdodCxcbi5maXhlZC10b3Age1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuLmZpeGVkLXRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG59XG5cbi5maXhlZC1yaWdodCB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbn1cblxuLmZpeGVkLWJvdHRvbSB7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG59XG5cbi5maXhlZC1sZWZ0IHtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG59XG4iLCIucmljLXBhZ2luYXRpb24ge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufSIsIkBpbXBvcnQgJy4vc3JjL2xpYi9tZGwvdmFyaWFibGVzJztcbkBpbXBvcnQgJy4vc3JjL2xpYi9tZGwvbWl4aW5zJztcbkBpbXBvcnQgJy4vc3JjL2xpYi9tZGwvc2hhZG93L3NoYWRvdyc7XG5AaW1wb3J0ICcuL3NyYy9saWIvcmljYXJkby9sYXlvdXQvbWl4aW5zJztcblxuQGltcG9ydCBcImZhYnJpY2F0b3JcIjtcbkBpbXBvcnQgXCJjb2RlcGVuXCI7XG5AaW1wb3J0IFwiaXJvbi1mbGV4LWxheW91dFwiO1xuXG5AaW1wb3J0IFwicGFnaW5hdGlvblwiO1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLnN0eWxlZ3VpZGUtZmFicmljYXRvci1jb250cm9scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAxNXB4IDA7XG59Il19 */
