.ps-site-search .view-all-results{background-color:var(--ps-color-primary-light, #f99d1a)}.ps-site-search .modal-dialog{max-width:100vw;margin:0}@media(max-width: 991.98px){.ps-site-search .modal-dialog{max-width:100vw;margin:0}}.ps-site-search .modal-content{background:var(--ps-color-secondary, #090917);max-height:100vh}@media(max-width: 991.98px){.ps-site-search .modal-content{max-height:100vh}}.ps-site-search .modal-header{border:1px solid #5d5d5d;background:#1e1e1e;border-radius:0;padding:0px}.ps-site-search .modal-header .vehicle-select-title{display:none;padding-left:25px}.ps-site-search .modal-header .search_input_group{width:100%}.ps-site-search .modal-header .search_input_group .search{flex:1}.ps-site-search .modal-header .search_input_group .searchInput{align-items:center}.ps-site-search .modal-header .search_input_group .search input{background:rgba(0,0,0,0);border:none;box-shadow:none;color:#fff}.ps-site-search .modal-header .search_input_group .searchIcon{color:#fff;border:none;cursor:pointer;background-image:linear-gradient(to bottom, var(--ps-color-primary, #001877), var(--ps-color-primary, #001877));padding:15px 25px}.ps-site-search .modal-header .search_input_group .searchIcon:hover{background-image:linear-gradient(to bottom, #001d91, #001d91)}.ps-site-search .modal-header .search_input_group .selectedVehicle{background-color:var(--ps-color-primary, #001877);color:#fff;font-size:12px;margin-right:5px}@media(max-width: 767.98px){.ps-site-search .modal-header .search_input_group .selectedVehicle{position:absolute;top:63px;left:10px;z-index:10}}.ps-site-search .modal-header .search_input_group .selectedVehicle .remove{cursor:pointer}.ps-site-search .modal-header .search_input_group .vehicle-text{padding-left:10px}.ps-site-search .modal-header .close{color:#fff;border:none;border-left:1px solid #5d5d5d;cursor:pointer;background:#1e1e1e;padding:.9375rem 1.5625rem}.ps-site-search .modal-body{min-height:200px;overflow:auto;padding-top:55px;position:relative}.ps-site-search .modal-body .vehicle-select{display:none;position:relative;top:0;bottom:auto}.ps-site-search .modal-body .vehicle-select .container{max-width:none}.ps-site-search .modal-body .vehicle-select .container .body{background:rgba(0,0,0,0);box-shadow:none}.ps-site-search .modal-body .vehicle-select .container .body .search_by{display:none}.ps-site-search .modal-body .loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);display:flex;justify-content:center;align-items:center;z-index:1000}.ps-site-search .modal-body .loading-spinner{border:4px solid rgba(255,255,255,.3);border-top:4px solid #fff;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.ps-site-search .modal-body .search_results .current_vehicle_prompt{display:none}.ps-site-search .modal-body .search_results h2.search-prompt{color:#fff}.ps-site-search .modal-body .search_results .non-vehicle-text-in-search{color:#fff}.ps-site-search .modal-body .search_results .product-list-selector{color:var(--ps-color-border-2, #a7a7a7);padding:10PX}.ps-site-search .modal-body .search_results .product-list-selector .product-cont{background-color:var(--ps-color-secondary, #090917);border:.0625rem solid #4b4a4a}.ps-site-search .modal-body .search_results .product-list-selector .product-cont .title{color:#fff}.ps-site-search .modal-body .search_results .product-list-selector .product-cont .brand-logo-cont{margin-left:3px}.ps-site-search .modal-body .search_results .product-list-selector .product-cont .pricing .price span{color:#fff}.ps-site-search .modal-body .search_results .product-list-selector .product-cont .part-number-cont label{color:#fff;font-weight:400}.ps-site-search .modal-body .search_results .product-list-selector .product-cont .fits-row table tr th{background-color:#464646}.ps-site-search .modal-body .search_results .product-list-selector .facets-cont label{color:#fff}.ps-site-search .modal-body .search_results .product-list-selector .product-details-tabs .nav-tabs .nav-link.active{border-color:#262626;background-color:#262626}.ps-site-search .modal-body .search_results .product-list-selector .product-details-tabs .tab-pane{background-color:#262626;border-color:#262626}.ps-site-search .modal-body .search_results .product-list-selector .product-details-tabs .tab-pane .header{color:#fff}.ps-site-search .modal-body .search_results .product-list-selector .product-details-tabs .tab-pane .stacktable{color:#ababab;font-weight:500}.ps-site-search .modal-body .search_results .product-list-selector .product-details-tabs .info-col-2 .prod-attr-cont{background-color:#262626}.ps-site-search .modal-body::-webkit-scrollbar{width:4px}.ps-site-search .modal-body::-webkit-scrollbar-track{background:#000;box-shadow:inset 0 0 6px rgba(0,0,0,.3);border-radius:2px}.ps-site-search .modal-body::-webkit-scrollbar-thumb{background:var(--ps-color-primary, #001877);border:3px solid var(--ps-color-primary, #001877);border-radius:2px}.ps-site-search .modal-footer{background:#1e1e1e;border-radius:0;border:1px solid #5d5d5d;justify-content:space-between}.ps-site-search--light .modal-content{background-color:#fff;border:0}.ps-site-search--light .modal-body .search_results .product-list-selector .product-cont .title{color:#000}.ps-site-search--light .modal-body .search_results h2.search-prompt{color:#000}.ps-site-search--light .modal-body .search_results .product-list-selector{color:#000}.ps-site-search--light .modal-body .search_results .product-list-selector .product-cont .pricing .price span{color:#000}.ps-site-search--light .modal-body .search_results .product-list-selector .product-cont .part-number-cont label{color:#000}.ps-site-search--light .modal-body .search_results .product-list-selector .facets-cont label{color:#000}.ps-site-search--light .modal-body .search_results .non-vehicle-text-in-search{color:#000}.ps-site-search--light .modal-body{background-color:#fff}.ps-site-search--light .modal-body .search_results .product-list-selector .product-cont{background-color:#fff;border:.0625rem solid #fff;border-bottom:1px solid #000}.ps-site-search--light .modal-header{border:0;border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);background:none}.ps-site-search--light .modal-header .close{background:#fff;color:#000}.ps-site-search--light .modal-footer{background:#fff}.ps-site-search--light .search_by{color:var(--bs-secondary-color)}.ps-site-search--light .modal-header .search_input_group .search input{color:#000}.ps-site-search--light .vehicle-select .container .body .selected-vehicle .my-garage .selected_vehicle a{color:#000}.ps-site-search--light .modal-body .search_results .product-list-selector .product-details-tabs .info-col-2 .prod-attr-cont{background-color:#fff}.ps-site-search--light .modal-body .search_results .product-list-selector .product-details-tabs .nav-tabs .nav-link.active{background-color:unset;border-color:unset}.ps-site-search--light .modal-body .search_results .product-list-selector .product-details-tabs .tab-pane{background-color:unset;border-color:unset}.ps-site-search--light .modal-body .search_results .product-list-selector .product-cont .fits-row table tr th{background-color:var(--ps-color-text-2, #575757)}.ps-site-search--dark .ps-search-cards,.ps-site-search--dark .live-search-cont{--ps-pc-color-bg: #1e1e1e;--ps-pc-color-surface: #262626;--ps-pc-color-surface-alt: #2f2f2f;--ps-pc-color-ink: #f5f5f5;--ps-pc-color-ink-2: #b8b8b8;--ps-pc-color-hairline: #3a3a3a}.ps-site-search--dark .vehicle-select{--ps-vs-color-body-bg: #1e1e1e;--ps-vs-color-surface: #262626;--ps-vs-color-text: #f5f5f5;--ps-vs-color-border: #3a3a3a}.ps-site-search .ps-search-mode{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto;margin-left:12px;padding:3px;border:1px solid #5d5d5d;border-radius:999px;background:rgba(255,255,255,.06)}.ps-site-search .ps-search-mode__btn{display:inline-flex;align-items:center;gap:6px;border:none;background:rgba(0,0,0,0);color:#cfcfcf;font-size:13px;font-weight:600;line-height:1;padding:8px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease}.ps-site-search .ps-search-mode__btn .bi{font-size:13px;line-height:1}.ps-site-search .ps-search-mode__btn:hover{color:#fff}.ps-site-search .ps-search-mode__btn--active{background:var(--ps-color-primary, #001877);color:#fff}.ps-site-search .ps-search-mode__btn--active:hover{color:#fff}@media(max-width: 575.98px){.ps-site-search .ps-search-mode{margin-left:8px}.ps-site-search .ps-search-mode .ps-search-mode__long{display:none}.ps-site-search .ps-search-mode__btn{padding:8px 11px}}.ps-site-search .modal-body .ai-chat-pane{padding:10px 10px 24px;max-width:1440px;margin:0 auto}.ps-site-search--mode-ai .view-all-results{display:none !important}.ps-site-search--light .ps-search-mode{border-color:#d9dde3;background:#f2f4f7}.ps-site-search--light .ps-search-mode .ps-search-mode__btn{color:#59626e}.ps-site-search--light .ps-search-mode .ps-search-mode__btn:hover{color:#000}.ps-site-search--light .ps-search-mode .ps-search-mode__btn--active{background:var(--ps-color-primary, #001877);color:#fff}.ps-site-search--light .ps-search-mode .ps-search-mode__btn--active:hover{color:#fff}.ps-site-search--dark .ai-chat-pane{--ps-color-surface: #262626;--ps-color-surface-alt: #1e1e1e;--ps-color-text: #f5f5f5;--ps-color-text-3: #b8b8b8;--ps-color-border: #3a3a3a}.searchInput--ai .searchInput-ai{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;align-self:center;position:relative;z-index:3;margin:0 6px;padding:6px 12px;border-radius:999px;background:var(--ps-color-primary, #001877);color:#fff;border:1px solid rgba(255,255,255,.35);box-shadow:0 1px 6px rgba(0,0,0,.18);font-size:12px;font-weight:700;line-height:1;letter-spacing:.02em;white-space:nowrap;text-decoration:none;transition:filter .15s ease,transform .15s ease}.searchInput--ai .searchInput-ai .bi{font-size:13px;line-height:1}.searchInput--ai .searchInput-ai:hover{color:#fff;filter:brightness(1.12);transform:translateY(-1px)}@media(max-width: 767.98px){.searchInput--ai .searchInput-ai{padding:6px 9px}.searchInput--ai .searchInput-ai .searchInput-ai-label{display:none}}@media(max-width: 767.98px){.ps-site-search .modal-header:has(.ps-search-mode){display:grid;grid-template-columns:1fr auto;grid-template-areas:"mode  close" "search search";align-items:center}.ps-site-search .modal-header:has(.ps-search-mode) .ps-search-mode{grid-area:mode;margin:6px 0 6px 8px}.ps-site-search .modal-header:has(.ps-search-mode) .search_input_group{grid-area:search;width:100%}.ps-site-search .modal-header:has(.ps-search-mode) .close{grid-area:close;border-left:0;margin-left:10px}.ps-site-search .modal-header .search_input_group .searchIcon{padding-left:0;padding-right:0;min-width:44px;justify-content:center}}.ps-site-search .modal-body{padding-top:12px}@media(max-width: 767.98px){.ps-site-search--mode-ai .modal-body{padding-bottom:0}}.ps-site-search .ps-suggest-cont{margin-top:0}@media(max-width: 767.98px){.ps-site-search .product-main-title-group .prompt-list{font-size:13px;line-height:1.3;padding:0;margin:0 0 6px}.ps-site-search .product-main-title-group h1,.ps-site-search .product-main-title-group h2,.ps-site-search .product-main-title-group h3,.ps-site-search .product-main-title-group .h1,.ps-site-search .product-main-title-group .h2,.ps-site-search .product-main-title-group .h3{font-size:13px;line-height:1.3;margin:0;text-transform:none}.ps-site-search .pagination-container:not(.pagination-bottom){display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px}.ps-site-search .pagination-container:not(.pagination-bottom) .pagination-container-item{padding:0}.ps-site-search .pagination-container:not(.pagination-bottom) .-showing p{font-size:12px;margin:0}.ps-site-search .pagination-container:not(.pagination-bottom) .pagination,.ps-site-search .pagination-container:not(.pagination-bottom) nav[aria-label*=agination]{display:none}.ps-site-search .pagination-container:not(.pagination-bottom) .pp-cont{display:none}.ps-site-search .pagination-container:not(.pagination-bottom) .show-side-nav{flex:1 0 100%;order:2}.ps-site-search .pagination-container:not(.pagination-bottom) .show-filter{font-size:13px;font-weight:700}.ps-site-search .pagination-bottom{margin-top:18px;padding-top:14px;border-top:1px solid rgba(128,128,128,.25)}}.ps-site-search .facets-cont>.close{position:sticky;top:0;z-index:5;background:inherit}@media(max-width: 767.98px){.ps-site-search .search_by{display:flex;align-items:baseline;gap:8px;white-space:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:12px}.ps-site-search .search_by .search_by_list{display:flex;gap:8px;margin:0;padding:0;list-style:none;font-size:inherit}.ps-site-search .search_by .search_by_list_item{white-space:nowrap;margin-right:0;padding-right:0}}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy9jb21wb25lbnQtc2l0ZS1zZWFyY2gtZGVmYXVsdC43NWRmYzM2MWE2ZDFjYTEzOTQ3ZS5jc3MiLCJtYXBwaW5ncyI6IkFBd0NJLGtDQUNJLHVEQ2ZnQixDRG1CaEIsOEJBTUksZ0JBRUEsU0FQQSw0QkFESiw4QkFFUSxnQkFDQSxVQU9SLCtCQUNJLDZDQ3pCYyxDRDJCZCxpQkFDQSw0QkFKSiwrQkFLUSxrQkFHUiw4QkFDSSx5QkFDQSxtQkFDQSxnQkFDQSxZQUNBLG9EQUNJLGFBQ0Esa0JBRUosa0RBQ0ksV0FDQSwwREFDSSxPQUNBLCtEQUNJLG1CQUVKLGdFQUNJLHlCQUNBLFlBQ0EsZ0JBQ0EsV0FHUiw4REFDSSxXQUNBLFlBQ0EsZUFDQSxnSEFDQSxrQkFDQSxvRUFDSSw4REFHUixtRUFDSSxpREN4RUksQ0R5RUosV0FDQSxlQUNBLGlCQUVBLDRCQU5KLG1FQU9RLGtCQUNBLFNBQ0EsVUFDQSxZQUdKLDJFQUNJLGVBR1IsZ0VBQ0ksa0JBR1IscUNBQ0ksV0FDQSxZQUNBLDhCQUNBLGVBQ0EsbUJBQ0EsMkJBR1IsNEJBQ0ksaUJBQ0EsY0FDQSxpQkFDQSxrQkFFQSw0Q0FDSSxhQUNBLGtCQUNBLE1BQ0EsWUFDQSx1REFDSSxlQUNBLDZEQUNJLHlCQUNBLGdCQUNBLHdFQUNJLGFBT2hCLDZDQUNJLGtCQUNBLE1BQ0EsT0FDQSxXQUNBLFlBQ0EsMEJBQ0EsYUFDQSx1QkFDQSxtQkFDQSxhQUdKLDZDQUNJLHNDQUNBLDBCQUNBLGtCQUNBLFdBQ0EsWUFDQSxrQ0FHSixnQkFDSSwwQkFDQSwrQkFLQSxvRUFDSSxhQUdKLDZEQUNJLFdBR0osd0VBQ0ksV0FJSixtRUFDSSx1Q0N6SkYsQ0QwSkUsYUFDQSxpRkFDSSxtRENyS0UsQ0RzS0YsOEJBQ0Esd0ZBQ0ksV0FFSixrR0FDSSxnQkFJSSxzR0FDSSxXQUtSLHlHQUNJLFdBQ0EsZ0JBR1IsdUdBQ0kseUJBSUosc0ZBQ0ksV0FNSSxvSEFDSSxxQkFDQSx5QkFLWixtR0FDSSx5QkFDQSxxQkFDQSwyR0FDSSxXQUVKLCtHQUNJLGNBQ0EsZ0JBSUoscUhBQ0kseUJBTXBCLCtDQUNJLFVBR0YscURBQ0UsZ0JBQ0Esd0NBQ0Esa0JBR0YscURBQ0UsMkNDalBRLENEa1BSLGtEQUNBLGtCQUdSLDhCQUNJLG1CQUNBLGdCQUNBLHlCQUNBLDhCQVlSLHNDQUNJLHNCQUNBLFNBR0osK0ZBQ0ksV0FHSixvRUFDSSxXQUdKLDBFQUNJLFdBR0osNkdBQ0ksV0FHSixnSEFDSSxXQUdKLDZGQUNJLFdBR0osK0VBQ0ksV0FHSixtQ0FDSSxzQkFHSix3RkFDSSxzQkFDQSwyQkFDQSw2QkFHSixxQ0FDSSxTQUNBLDRGQUNBLGdCQUdKLDRDQUNJLGdCQUNBLFdBR0oscUNBQ0ksZ0JBR0osa0NBQ0ksZ0NBR0osdUVBQ0ksV0FHSix5R0FDSSxXQUdKLDRIQUNJLHNCQUdKLDJIQUNJLHVCQUNBLG1CQUdKLDBHQUNJLHVCQUNBLG1CQUdKLDhHQUNJLGdEQ2xWa0IsQ0RnV3RCLCtFQUVJLDBCQUNBLCtCQUNBLG1DQUNBLDJCQUNBLDZCQUNBLGdDQUdKLHNDQUNJLCtCQUNBLCtCQUNBLDRCQUNBLDhCQWtCSixnQ0FDSSxvQkFDQSxtQkFDQSxRQUNBLGNBQ0EsaUJBQ0EsWUFDQSx5QkFDQSxvQkFDQSxpQ0FFQSxxQ0FDSSxvQkFDQSxtQkFDQSxRQUNBLFlBQ0EseUJBQ0EsY0FDQSxlQUNBLGdCQUNBLGNBQ0EsaUJBQ0Esb0JBQ0EsZUFDQSxtQkFDQSxnREFFQSxzRUFFQSxzREFFQSw2Q0FDSSwyQ0N6YVEsQ0QwYVIsV0FFQSw4REFJUiw0QkF2Q0osZ0NBd0NRLGdCQUVBLG1FQUVBLHVEQUlSLDBDQUNJLHVCQUNBLGlCQUNBLGNBSUosbUVBSUosdUNBQ0kscUJBQ0EsbUJBRUEsNERBQ0ksY0FFQSw2RUFFQSxvRUFDSSwyQ0M5Y1ksQ0QrY1osV0FFQSxxRkFRWixvQ0FDSSw0QkFDQSxnQ0FDQSx5QkFDQSwyQkFDQSwyQkFTQSxpQ0FDSSxvQkFDQSxtQkFDQSxRQUNBLGNBQ0Esa0JBSUEsa0JBQ0EsVUFDQSxhQUNBLGlCQUNBLG9CQUNBLDJDQ3JmZ0IsQ0RzZmhCLFdBQ0EsdUNBQ0EscUNBQ0EsZUFDQSxnQkFDQSxjQUNBLHFCQUNBLG1CQUNBLHFCQUNBLGdEQUVBLGtFQUVBLHVDQUNJLFdBQ0Esd0JBQ0EsMkJBSVIsNEJBQ0ksaUNBQ0ksZ0JBRUEscUVBMkJaLDRCQUNFLG1EQUNFLGFBQ0EsK0JBQ0EsaURBQ0UsQ0FFRixtQkFFQSx1R0FDQSxtR0FTQSwwREFDRSxnQkFDQSxjQUNBLGlCQU9KLDhEQUNFLGVBQ0EsZ0JBQ0EsZUFDQSx3QkFTSiw0QkFDRSxpQkFTRiw0QkFDRSx1REFHRixpQ0FDRSxhQVNGLDRCQUlNLHVEQUNFLGVBQ0EsZ0JBQ0EsVUFDQSxlQUdGLGlSQUNFLGVBQ0EsZ0JBQ0EsU0FDQSxvQkFLSiw4REFDRSxhQUNBLGVBQ0EsbUJBQ0EsYUFDQSxrQkFFQSxtR0FFQSxrR0FHQSxtS0FDK0IsYUFHL0Isb0ZBRUEsbUdBQ0EsMEdBSUYsbUNBQ0UsZ0JBQ0EsaUJBQ0EsNENBVUosb0NBQ0UsZ0JBQ0EsTUFDQSxVQUVBLG1CQVFKLDRCQUNFLDJCQUNFLGFBQ0EscUJBQ0EsUUFDQSxtQkFDQSxnQkFDQSxpQ0FJQSxlQUVBLDJDQUNFLGFBQ0EsUUFDQSxTQUNBLFVBQ0EsZ0JBR0Esa0JBTUYsZ0RBQ0UsbUJBQ0EsZUFDQSxpQiIsInNvdXJjZXMiOlsid2VicGFjazovL2JlYWNoc2lkZWF1dG9wYXJ0cy8uLi8uLi8uLi9hdXRvLXByZXNzL3Jlc291cmNlcy9jb21wb25lbnRzL3NpdGUtc2VhcmNoL2RlZmF1bHQvaW5kZXguc2NzcyIsIndlYnBhY2s6Ly9iZWFjaHNpZGVhdXRvcGFydHMvLi4vLi4vLi4vYXV0by1wcmVzcy9yZXNvdXJjZXMvc3R5bGVzL3ZhcmlhbnRzL19jb2xvcnMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTSVRFLVNFQVJDSCDigJQgdmFyaWFudCBcImRlZmF1bHRcIiAoTlBPVEcgZnVsbHNjcmVlbiBzZWFyY2ggbW9kYWwpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQb3J0ZWQgdmVyYmF0aW0gZnJvbSBOUE9URzpcbi8vICAgc3JjL3N0eWxlcy9jb21wb25lbnRzL19tb2RhbF9zZWFyY2guc2NzcyAgICAgICAgICAgICAoZGFyayBiYXNlIHBhbGV0dGUpXG4vLyAgIHNyYy9zdHlsZXMvY29tcG9uZW50cy9fbW9kYWxfc2VhcmNoX3doaXRlX3RoZW1lLnNjc3MgKGxpZ2h0IG92ZXJyaWRlcylcbi8vIENvbXBpbGVzIHRvIGNvbXBvbmVudC1zaXRlLXNlYXJjaC1kZWZhdWx0LmNzcy5cbi8vXG4vLyBTY29waW5nOiB0aGUgbGVnYWN5IGZpbGVzIGtleWVkIGV2ZXJ5dGhpbmcgb2ZmICNtb2RhbFNlYXJjaC4gVGhlIGNvbXBvbmVudFxuLy8gcm9vdCBjYXJyaWVzIHRoYXQgc2FtZSBpZCBQTFVTIC5wcy1zaXRlLXNlYXJjaCBhbmQgYSB0aGVtZSBtb2RpZmllciwgc28gdGhlXG4vLyBwb3J0IHNjb3BlcyBvZmYgdGhlIGNsYXNzZXMgaW5zdGVhZDpcbi8vICAgLnBzLXNpdGUtc2VhcmNoICAgICAgICAgIOKAlCBzdHJ1Y3R1cmFsIHN0eWxlcyArIHRoZSBkYXJrIHBhbGV0dGVcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoYXQgLS1kYXJrIHJlbmRlcnM7IGxlZ2FjeSBfbW9kYWxfc2VhcmNoLnNjc3MpXG4vLyAgIC5wcy1zaXRlLXNlYXJjaC0tbGlnaHQgICDigJQgdGhlIHdoaXRlLXRoZW1lIG92ZXJyaWRlcyBsYXllcmVkIG9uIHRvcCxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhhY3RseSBsaWtlIE5QT1RHJ3MgYnVpbGQsIHdoaWNoIGltcG9ydHMgdGhlXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlIHRoZW1lIGZpbGUgQUZURVIgdGhlIGRhcmsgb25lLiBFcXVhbFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY2l0eSArIGxhdGVyIG9yZGVyID0gbGlnaHQgd2lucywgdGhlXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbWUgbWVjaGFuaXNtIHRoZSBsZWdhY3kgZmlsZXMgcmVsaWVkIG9uLlxuLy9cbi8vIEJyZWFrcG9pbnRzOiBOUE9URyBjb21waWxlZCB0aGVzZSB3aXRoIEJvb3RzdHJhcCA1IG1peGlucyAoZG93bihtZCkgPVxuLy8gPDc2OHB4LCBkb3duKGxnKSA9IDw5OTJweCk7IHRoZSBfY2F0YWxvZy9nbG9iYWxzIGJyaWRnZSBtaXhpbnMgYXJlXG4vLyBCUzQtc3R5bGUgKGRvd24obWQpID0gPDk5MnB4KSwgc28gdGhlIG1lZGlhIHF1ZXJpZXMgYXJlIHdyaXR0ZW4gb3V0XG4vLyBleHBsaWNpdGx5IGZvciBwaXhlbCBwYXJpdHkgd2l0aCB0aGUgbGVnYWN5IGJ1aWxkLlxuLy9cbi8vIERlcHM6ICRjb2xvcl9wcmltYXJ5IC8gJGNvbG9yX3ByaW1hcnlfbGlnaHQgLyAkY29sb3Jfc2Vjb25kYXJ5IGZyb20gdGhlXG4vLyBzaXRlJ3Mgc3R5bGVzL3ZhcmlhbnRzL2NvbG9ycyAodmlhIF9jYXRhbG9nL2dsb2JhbHMpOyByZW1jKCkgZnJvbSBnbG9iYWxzLlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AaW1wb3J0ICdjb21wb25lbnRzL19jYXRhbG9nL2dsb2JhbHMnO1xuXG4vLyBQYWxldHRlIHBpZWNlcyB0aGUgZ2xvYmFscyBicmlkZ2UgZG9lc24ndCBzaGlwIOKAlCBOUE9URyB2YWx1ZXMgYXMgZmFsbGJhY2tzXG4vLyAodGhlIHNpdGUncyB2YXJpYW50cy9jb2xvcnMsIGltcG9ydGVkIHNpdGUtZmlyc3QgYWJvdmUsIHdpbnMgd2hlbiBkZWZpbmVkKS5cbiRjb2xvcl9uZXV0cmFsXzI6ICNhN2E3YTcgIWRlZmF1bHQ7XG4kY29sb3Jfc2Vjb25kYXJ5X2xpZ2h0OiAjNTc1NzU3ICFkZWZhdWx0O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEJhc2UgKyBkYXJrIHBhbGV0dGUgKGxlZ2FjeSBfbW9kYWxfc2VhcmNoLnNjc3MgbGluZXMgMS0yNDEpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5wcy1zaXRlLXNlYXJjaCB7XG5cbiAgICAudmlldy1hbGwtcmVzdWx0cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wcmltYXJ5X2xpZ2h0O1xuICAgIH1cblxuICAgIC5tb2RhbCB7XG4gICAgICAgICYtZGlhbG9nIHtcbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkgeyAvLyBtZWRpYS1icmVha3BvaW50LWRvd24obGcpLCBCUzVcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGFsd2F5cyBmb3JjZSBpdCB0byBiZSBmdWxsIHdpZHRoXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgICAgICAgICAgLy8gcmVtb3ZlIG1hcmdpbiB0aGF0IG1ha2VzIGEgbW9kZWwgaGF2ZSBhIGdhcCBvbiB0aGUgdG9wXG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgICAgJi1jb250ZW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnk7XG4gICAgICAgICAgICAvL21heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkgeyAvLyBtZWRpYS1icmVha3BvaW50LWRvd24obGcpLCBCUzVcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLWhlYWRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNWQ1ZDVkO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlMWUxZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgICAgICAudmVoaWNsZS1zZWxlY3QtdGl0bGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW1jKDI1cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnNlYXJjaF9pbnB1dF9ncm91cCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgLnNlYXJjaCB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgICAgICZJbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc2VhcmNoSWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICRjb2xvcl9wcmltYXJ5LCAkY29sb3JfcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbWMoMTVweCwgMjVweCk7XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgbGlnaHRlbigkY29sb3JfcHJpbWFyeV9oZXgsIDUlKSwgbGlnaHRlbigkY29sb3JfcHJpbWFyeV9oZXgsIDUlKSk7IC8vIGhleCB0d2luOiBTYXNzIGxpZ2h0ZW4oKSBjYW4ndCB0YWtlIGEgdmFyKClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc2VsZWN0ZWRWZWhpY2xlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3ByaW1hcnk7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW1jKDEycHgpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbWMoNXB4KTtcblxuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHsgLy8gbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSwgQlM1XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IHJlbWMoNjNweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiByZW1jKDEwcHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDoxMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5yZW1vdmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC52ZWhpY2xlLXRleHQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmNsb3NlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzVkNWQ1ZDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzFlMWUxZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjkzNzVyZW0gMS41NjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtYm9keSB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiByZW1jKDIwMHB4KTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbWMoNTVweCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIC52ZWhpY2xlLXNlbGVjdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICAgICAgICAgIC5jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIC5ib2R5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zZWFyY2hfYnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgLmxvYWRpbmctb3ZlcmxheSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7IC8qIEdyYXkgb3V0IHRoZSBiYWNrZ3JvdW5kICovXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5sb2FkaW5nLXNwaW5uZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgI2ZmZjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7XG4gICAgICAgICAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAgICAgICAgICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zZWFyY2hfcmVzdWx0cyB7XG5cbiAgICAgICAgICAgICAgICAuY3VycmVudF92ZWhpY2xlX3Byb21wdCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaDIuc2VhcmNoLXByb21wdCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubm9uLXZlaGljbGUtdGV4dC1pbi1zZWFyY2gge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy9kaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIC5wcm9kdWN0LWxpc3Qtc2VsZWN0b3Ige1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX25ldXRyYWxfMjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTBQWDtcbiAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtY29udCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfc2Vjb25kYXJ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiByZW1jKDEpIHNvbGlkICM0YjRhNGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5icmFuZC1sb2dvLWNvbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2luZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAucGFydC1udW1iZXItY29udHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5maXRzLXJvdyB0YWJsZSB0ciB0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQ2NDY0NjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuZmFjZXRzLWNvbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1kZXRhaWxzLXRhYnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgLm5hdi10YWJzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubmF2LWxpbmsge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICMyNjI2MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjYyNjI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAudGFiLXBhbmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyNjI2MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMjYyNjI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdGFja3RhYmxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNhYmFiYWI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLmluZm8tY29sLTIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9kLWF0dHItY29udCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyNjI2MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRjb2xvcl9wcmltYXJ5O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtZm9vdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxZTFlMWU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzVkNWQ1ZDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBMaWdodCB0aGVtZSBvdmVycmlkZXMgKGxlZ2FjeSBfbW9kYWxfc2VhcmNoX3doaXRlX3RoZW1lLnNjc3MgbGluZXMgMS05Nilcbi8vIE11c3Qgc3RheSBBRlRFUiB0aGUgYmFzZSBibG9jazogZXF1YWwgc3BlY2lmaWNpdHksIGxhdGVyIG9yZGVyIHdpbnMg4oCUXG4vLyBtaXJyb3JpbmcgTlBPVEcncyBtYWluLnNjc3MgaW1wb3J0IG9yZGVyLlxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucHMtc2l0ZS1zZWFyY2gtLWxpZ2h0IHtcblxuICAgIC5tb2RhbC1jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgIH1cblxuICAgIC5tb2RhbC1ib2R5IC5zZWFyY2hfcmVzdWx0cyAucHJvZHVjdC1saXN0LXNlbGVjdG9yIC5wcm9kdWN0LWNvbnQgLnRpdGxlIHtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLm1vZGFsLWJvZHkgLnNlYXJjaF9yZXN1bHRzIGgyLnNlYXJjaC1wcm9tcHQge1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAubW9kYWwtYm9keSAuc2VhcmNoX3Jlc3VsdHMgLnByb2R1Y3QtbGlzdC1zZWxlY3RvciB7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC5tb2RhbC1ib2R5IC5zZWFyY2hfcmVzdWx0cyAucHJvZHVjdC1saXN0LXNlbGVjdG9yIC5wcm9kdWN0LWNvbnQgLnByaWNpbmcgLnByaWNlIHNwYW4ge1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cbiAgICAubW9kYWwtYm9keSAuc2VhcmNoX3Jlc3VsdHMgLnByb2R1Y3QtbGlzdC1zZWxlY3RvciAucHJvZHVjdC1jb250IC5wYXJ0LW51bWJlci1jb250IGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLm1vZGFsLWJvZHkgLnNlYXJjaF9yZXN1bHRzIC5wcm9kdWN0LWxpc3Qtc2VsZWN0b3IgLmZhY2V0cy1jb250IGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLm1vZGFsLWJvZHkgLnNlYXJjaF9yZXN1bHRzIC5ub24tdmVoaWNsZS10ZXh0LWluLXNlYXJjaCB7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC5tb2RhbC1ib2R5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICB9XG5cbiAgICAubW9kYWwtYm9keSAuc2VhcmNoX3Jlc3VsdHMgLnByb2R1Y3QtbGlzdC1zZWxlY3RvciAucHJvZHVjdC1jb250IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiAwLjA2MjVyZW0gc29saWQgI2ZmZjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrO1xuICAgIH1cblxuICAgIC5tb2RhbC1oZWFkZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHZhcigtLWJzLW1vZGFsLWhlYWRlci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWJzLW1vZGFsLWhlYWRlci1ib3JkZXItY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cblxuICAgIC5tb2RhbC1oZWFkZXIgLmNsb3NlIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuXG4gICAgLm1vZGFsLWZvb3RlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgfVxuXG4gICAgLnNlYXJjaF9ieSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktY29sb3IpO1xuICAgIH1cblxuICAgIC5tb2RhbC1oZWFkZXIgLnNlYXJjaF9pbnB1dF9ncm91cCAuc2VhcmNoIGlucHV0IHtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cblxuICAgIC52ZWhpY2xlLXNlbGVjdCAuY29udGFpbmVyIC5ib2R5IC5zZWxlY3RlZC12ZWhpY2xlIC5teS1nYXJhZ2UgLnNlbGVjdGVkX3ZlaGljbGUgYSB7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICB9XG5cbiAgICAubW9kYWwtYm9keSAuc2VhcmNoX3Jlc3VsdHMgLnByb2R1Y3QtbGlzdC1zZWxlY3RvciAucHJvZHVjdC1kZXRhaWxzLXRhYnMgLmluZm8tY29sLTIgLnByb2QtYXR0ci1jb250IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuXG4gICAgLm1vZGFsLWJvZHkgLnNlYXJjaF9yZXN1bHRzIC5wcm9kdWN0LWxpc3Qtc2VsZWN0b3IgLnByb2R1Y3QtZGV0YWlscy10YWJzIC5uYXYtdGFicyAubmF2LWxpbmsuYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdW5zZXQ7XG4gICAgfVxuXG4gICAgLm1vZGFsLWJvZHkgLnNlYXJjaF9yZXN1bHRzIC5wcm9kdWN0LWxpc3Qtc2VsZWN0b3IgLnByb2R1Y3QtZGV0YWlscy10YWJzIC50YWItcGFuZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgICBib3JkZXItY29sb3I6IHVuc2V0O1xuICAgIH1cblxuICAgIC5tb2RhbC1ib2R5IC5zZWFyY2hfcmVzdWx0cyAucHJvZHVjdC1saXN0LXNlbGVjdG9yIC5wcm9kdWN0LWNvbnQgLmZpdHMtcm93IHRhYmxlIHRyIHRoIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3NlY29uZGFyeV9saWdodDtcbiAgICB9XG59XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gV1M1IOKAlCBkYXJrLXRoZW1lIGJyaWRnZSBmb3IgRU1CRURERUQgY29tcG9uZW50cyAoYnVpbGRlci1jaG9zZW4gcmVzdWx0IGNhcmRzXG4vLyArIHRoZSB2ZWhpY2xlIHBpY2tlcikuIFdoZW4gdGhlIHNlYXJjaCBtb2RhbCByZW5kZXJzIGRhcmtcbi8vICgucHMtc2l0ZS1zZWFyY2gtLWRhcmspLCB0aGUgcHJvZHVjdC1jYXJkIC8gdmVoaWNsZS1zZWxlY3QgY29tcG9uZW50cyDigJQgd2hpY2hcbi8vIGRlZmF1bHQgdG8gYSBsaWdodCBwYWxldHRlIOKAlCB3b3VsZCBvdGhlcndpc2Ugc2l0IGxpZ2h0LW9uLWRhcmsuIFJlbWFwIHRoZWlyXG4vLyBkZXNpZ24gdG9rZW5zIHRvIHRoZSBtb2RhbCdzIGRhcmsgdmFsdWVzIHNvIHRoZSBlbWJlZHMgbWF0Y2ggdGhlIGNocm9tZS5cbi8vIEEgbWVyY2hhbnQncyBvd24gcGVyLWVtYmVkIHRva2VuIG92ZXJyaWRlIChpbmxpbmUgc3R5bGUgb24gLnBzLXNlYXJjaC1jYXJkcyAvXG4vLyAudmVoaWNsZS1zZWxlY3QpIHN0aWxsIHdpbnM6IGlubGluZSBzdHlsZXMgYmVhdCB0aGVzZSBzdHlsZXNoZWV0IHJ1bGVzLlxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4ucHMtc2l0ZS1zZWFyY2gtLWRhcmsge1xuICAgIC5wcy1zZWFyY2gtY2FyZHMsXG4gICAgLmxpdmUtc2VhcmNoLWNvbnQge1xuICAgICAgICAtLXBzLXBjLWNvbG9yLWJnOiAjMWUxZTFlO1xuICAgICAgICAtLXBzLXBjLWNvbG9yLXN1cmZhY2U6ICMyNjI2MjY7XG4gICAgICAgIC0tcHMtcGMtY29sb3Itc3VyZmFjZS1hbHQ6ICMyZjJmMmY7XG4gICAgICAgIC0tcHMtcGMtY29sb3ItaW5rOiAjZjVmNWY1O1xuICAgICAgICAtLXBzLXBjLWNvbG9yLWluay0yOiAjYjhiOGI4O1xuICAgICAgICAtLXBzLXBjLWNvbG9yLWhhaXJsaW5lOiAjM2EzYTNhO1xuICAgIH1cblxuICAgIC52ZWhpY2xlLXNlbGVjdCB7XG4gICAgICAgIC0tcHMtdnMtY29sb3ItYm9keS1iZzogIzFlMWUxZTtcbiAgICAgICAgLS1wcy12cy1jb2xvci1zdXJmYWNlOiAjMjYyNjI2O1xuICAgICAgICAtLXBzLXZzLWNvbG9yLXRleHQ6ICNmNWY1ZjU7XG4gICAgICAgIC0tcHMtdnMtY29sb3ItYm9yZGVyOiAjM2EzYTNhO1xuICAgIH1cbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBBSSBtb2RlICh1bmlmaWVkIHNlYXJjaCArIGNoYXQpXG4vLyBSZW5kZXJlZCBvbmx5IHdoZW4gdGhlIGJsYWRlJ3MgYXZhaWxhYmlsaXR5IGdhdGUgcGFzc2VzICgkYWlFbmFibGVkKTpcbi8vICAgLnBzLXNlYXJjaC1tb2RlICAgICAg4oCUIHRoZSBTZWFyY2ggfCBBSSBzZWdtZW50ZWQgdG9nZ2xlIGluIHRoZSBtb2RhbCBoZWFkZXJcbi8vICAgLmFpLWNoYXQtcGFuZSAgICAgICAg4oCUIHRoZSBlbWJlZGRlZCBhaS1jaGF0Ym90IHBhbmUgKHdpZGdldCBsYXlvdXQvc2l6ZSBpc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVkIGJ5IHRoZSBjaGF0IGJ1bmRsZSdzIC5wcy1jaGF0LS1vdmVybGF5IGNsYXNzKVxuLy8gICAuc2VhcmNoSW5wdXQtLWFpLy1haSDigJQgdGhlIGhlYWRlciBjb21iaW5lZCBzZWFyY2ggYm94IGFmZm9yZGFuY2UuIEl0c1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmt1cCBsaXZlcyBpbiBzaXRlLWhlYWRlciwgYnV0IHRoZSBzdHlsaW5nIGJlbG9uZ3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgICB0byBUSElTIGJ1bmRsZTogdGhlIGhlYWRlciBlbWl0cyB0aGVzZSBzdHlsZXMgZXhhY3RseVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgIHdoZW4gdGhlIGZ1bGxzY3JlZW4gc2VhcmNoIG1vZGFsIGlzIGVtYmVkZGVkLlxuLy8gQmFzZSA9IGRhcmsgY2hyb21lOyB0aGUgLS1saWdodCBvdmVycmlkZXMgZm9sbG93IChzYW1lIG1lY2hhbmlzbSBhcyBhYm92ZSkuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi5wcy1zaXRlLXNlYXJjaCB7XG5cbiAgICAucHMtc2VhcmNoLW1vZGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogcmVtYygxMnB4KTtcbiAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjNWQ1ZDVkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcblxuICAgICAgICAmX19idG4ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiByZW1jKDZweCk7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAjY2ZjZmNmO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW1jKDEzcHgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtYyg4cHgpIHJlbWMoMTRweCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7XG5cbiAgICAgICAgICAgIC5iaSB7IGZvbnQtc2l6ZTogcmVtYygxM3B4KTsgbGluZS1oZWlnaHQ6IDE7IH1cblxuICAgICAgICAgICAgJjpob3ZlciB7IGNvbG9yOiAjZmZmOyB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHsgY29sb3I6ICNmZmY7IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkgeyAvLyBtZWRpYS1icmVha3BvaW50LWRvd24oc20pLCBCUzVcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW1jKDhweCk7XG5cbiAgICAgICAgICAgIC5wcy1zZWFyY2gtbW9kZV9fbG9uZyB7IGRpc3BsYXk6IG5vbmU7IH0gLy8gXCJBSSBhc3Npc3RhbnRcIiDihpIgXCJBSVwiXG5cbiAgICAgICAgICAgICZfX2J0biB7IHBhZGRpbmc6IHJlbWMoOHB4KSByZW1jKDExcHgpOyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubW9kYWwtYm9keSAuYWktY2hhdC1wYW5lIHtcbiAgICAgICAgcGFkZGluZzogcmVtYygxMHB4KSByZW1jKDEwcHgpIHJlbWMoMjRweCk7XG4gICAgICAgIG1heC13aWR0aDogMTQ0MHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cbiAgICAvLyBBSSBtb2RlIGhpZGVzIHRoZSBrZXl3b3JkLXJlc3VsdHMgY2hyb21lIHRoYXQgbGl2ZXMgb3V0c2lkZSB0aGUgcGFuZXNcbiAgICAmLS1tb2RlLWFpIC52aWV3LWFsbC1yZXN1bHRzIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IC8vIGxpdmUuanMgc2V0cyBpbmxpbmUgZGlzcGxheVxufVxuXG4vLyBsaWdodCBjaHJvbWUgKGVxdWFsIHNwZWNpZmljaXR5LCBsYXRlciBvcmRlciDigJQgc2FtZSBhcyB0aGUgdGhlbWUgYmxvY2sgYWJvdmUpXG4ucHMtc2l0ZS1zZWFyY2gtLWxpZ2h0IC5wcy1zZWFyY2gtbW9kZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZDlkZGUzO1xuICAgIGJhY2tncm91bmQ6ICNmMmY0Zjc7XG5cbiAgICAucHMtc2VhcmNoLW1vZGVfX2J0biB7XG4gICAgICAgIGNvbG9yOiAjNTk2MjZlO1xuXG4gICAgICAgICY6aG92ZXIgeyBjb2xvcjogIzAwMDsgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHsgY29sb3I6ICNmZmY7IH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gZGFyayBjaHJvbWU6IGZlZWQgdGhlIGNoYXQncyBzaXRlLXRva2VuIGZhbGxiYWNrcyAoLS1wcy1jaGF0LSogZmFsbCBiYWNrIHRvXG4vLyAtLXBzLWNvbG9yLSopIHNvIHRoZSBlbWJlZGRlZCBhc3Npc3RhbnQgbWF0Y2hlcyB0aGUgZGFyayBtb2RhbC4gQSBtZXJjaGFudCdzXG4vLyBwZXItZW1iZWQgU3R5bGUgb3ZlcnJpZGVzIHJpZGUgSU5MSU5FIG9uIHRoZSAucHMtY2hhdCByb290IGFuZCBzdGlsbCB3aW4uXG4ucHMtc2l0ZS1zZWFyY2gtLWRhcmsgLmFpLWNoYXQtcGFuZSB7XG4gICAgLS1wcy1jb2xvci1zdXJmYWNlOiAjMjYyNjI2O1xuICAgIC0tcHMtY29sb3Itc3VyZmFjZS1hbHQ6ICMxZTFlMWU7XG4gICAgLS1wcy1jb2xvci10ZXh0OiAjZjVmNWY1O1xuICAgIC0tcHMtY29sb3ItdGV4dC0zOiAjYjhiOGI4O1xuICAgIC0tcHMtY29sb3ItYm9yZGVyOiAjM2EzYTNhO1xufVxuXG4vLyDilIDilIAgdGhlIGhlYWRlciBjb21iaW5lZCBzZWFyY2ggYm94IChtYXJrdXAgaW4gc2l0ZS1oZWFkZXIvZGVmYXVsdC5ibGFkZS5waHApIOKUgOKUgFxuLy8gQSByZWFkb25seSBkaXNwbGF5IGJveCB0aGF0IG9wZW5zIHRoaXMgbW9kYWw7IHdpdGggQUkgb24gaXQgYmVjb21lcyB0aGVcbi8vIGNvbWJpbmVkIFwiU2VhcmNoIG9yIGFzayBBSVwiIHdpZGdldDogdGhlIHNwYXJrbGUgY2hpcCBvcGVucyBzdHJhaWdodCBpbnRvIEFJXG4vLyBtb2RlIChkYXRhLXNlYXJjaD1cImFpXCIpLlxuLnNlYXJjaElucHV0LS1haSB7XG5cbiAgICAuc2VhcmNoSW5wdXQtYWkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiByZW1jKDVweCk7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIC8vIHRoZSBsZWdhY3kgLnNlYXJjaElucHV0LWdsYXNzIGlzIGFuIGFic29sdXRlIGZ1bGwtYm94IG92ZXJsYXkgYW5jaG9yXG4gICAgICAgIC8vICh0aGUgd2hvbGUgc2VhcmNoIGJveCBvcGVucyBrZXl3b3JkIHNlYXJjaCkg4oCUIHRoZSBjaGlwIG11c3Qgc2l0XG4gICAgICAgIC8vIEFCT1ZFIGl0IHRvIGJlIGNsaWNrYWJsZSwgYW5kIHRvIHJlYWQgYXMgaXRzIG93biBjb250cm9sLlxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIG1hcmdpbjogMCByZW1jKDZweCk7XG4gICAgICAgIHBhZGRpbmc6IHJlbWMoNnB4KSByZW1jKDEycHgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCA2cHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiAgICAgICAgZm9udC1zaXplOiByZW1jKDEycHgpO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG5cbiAgICAgICAgLmJpIHsgZm9udC1zaXplOiByZW1jKDEzcHgpOyBsaW5lLWhlaWdodDogMTsgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4xMik7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHsgLy8gbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSwgQlM1XG4gICAgICAgIC5zZWFyY2hJbnB1dC1haSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW1jKDZweCkgcmVtYyg5cHgpO1xuXG4gICAgICAgICAgICAuc2VhcmNoSW5wdXQtYWktbGFiZWwgeyBkaXNwbGF5OiBub25lOyB9IC8vIGljb24tb25seSBjaGlwXG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE1PQklMRSBTRUFSQ0ggT1ZFUkxBWSAgKG93bmVyIHJlcG9ydCAyMDI2LTA4LTE3KVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU2l4IHNlcGFyYXRlIGNvbXBsYWludHMsIGFsbCBvZiB0aGVtIHRoZSBzYW1lIHVuZGVybHlpbmcgY2F1c2U6IHRoaXMgb3ZlcmxheVxuICAgd2FzIGxhaWQgb3V0IGZvciBhIGRlc2t0b3AgbW9kYWwgYW5kIHRoZW4gbGV0IGxvb3NlIG9uIGEgMzkwcHggcGhvbmUsIHdoZXJlXG4gICBldmVyeSByb3cgaXQgc3RhY2tzIGVhdHMgc2NyZWVuIHRoZSBzaG9wcGVyIG5lZWRzIGZvciByZXN1bHRzLlxuXG4gICBNZWFzdXJlZCBiZWZvcmUsIG9uIGEgMzkwcHggdmlld3BvcnQ6XG4gICAgIG1vZGUgdG9nZ2xlIDE2NSArIHNlYXJjaCBpY29uIDY2ICsgaW5wdXQgMTAwICsgY2xvc2UgNjcgPSAzOThweCAgKD4gMzkwKVxuICAgICDihpIgdGhlIGtleXdvcmQgZmllbGQgd2FzIDEwMHB4IHdpZGUgYW5kIGl0cyBwbGFjZWhvbGRlciB3YXMgY2xpcHBlZFxuICAgICBtb2RhbC1ib2R5IHBhZGRpbmctdG9wIDU1cHgg4oaSIGEgNjVweCB2b2lkIGFib3ZlIHRoZSBzdWdnZXN0aW9uIGxpc3RcbiAgICAgaGVhZGluZyBibG9jayA5MnB4ICsgdG9vbGJhciAxNzZweCA9IDI2OHB4IG9mIGNocm9tZSBiZWZvcmUgcHJvZHVjdCBvbmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogLS0tIDEuIEhlYWRlcjogdHdvIHJvd3Mgb24gcGhvbmVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVGhlIHRvZ2dsZSwgdGhlIGljb24gYnV0dG9uLCB0aGUgZmllbGQgYW5kIHRoZSBjbG9zZSBidXR0b24gY2Fubm90IHNoYXJlXG4gICAzOTBweC4gT25seSB0aGUgRklFTEQgZGVzZXJ2ZXMgdGhlIHdpZHRoLCBzbyB0aGUgY2hyb21lIG1vdmVzIHRvIGl0cyBvd25cbiAgIGxpbmU6IG1vZGUgdG9nZ2xlIGxlZnQsIGNsb3NlIHJpZ2h0LCBzZWFyY2ggYWNyb3NzIHRoZSBmdWxsIHdpZHRoIGJlbmVhdGguXG5cbiAgIFNjb3BlZCB3aXRoIDpoYXMoLnBzLXNlYXJjaC1tb2RlKSBkZWxpYmVyYXRlbHkg4oCUIGFuIG92ZXJsYXkgV0lUSE9VVCB0aGUgQUlcbiAgIHRvZ2dsZSBoYXMgcm9vbSBmb3IgdGhlIHNpbmdsZS1yb3cgbGF5b3V0IGl0IGFscmVhZHkgdXNlcywgYW5kIHJlc3RhY2tpbmcgaXRcbiAgIHdvdWxkIGFkZCBhIHJvdyBmb3Igbm8gcmVhc29uLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5wcy1zaXRlLXNlYXJjaCAubW9kYWwtaGVhZGVyOmhhcygucHMtc2VhcmNoLW1vZGUpIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgIFwibW9kZSAgY2xvc2VcIlxuICAgICAgXCJzZWFyY2ggc2VhcmNoXCI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5wcy1zZWFyY2gtbW9kZSAgICAgIHsgZ3JpZC1hcmVhOiBtb2RlOyBtYXJnaW46IDZweCAwIDZweCA4cHg7IH1cbiAgICAuc2VhcmNoX2lucHV0X2dyb3VwICB7IGdyaWQtYXJlYTogc2VhcmNoOyB3aWR0aDogMTAwJTsgfVxuXG4gICAgLyogVGhlIGNsb3NlIGJ1dHRvbiBjYXJyaWVzIGEgYm9yZGVyLWxlZnQgdGhhdCByZWFkcyBhcyBhIGRpdmlkZXIgb25cbiAgICAgICBERVNLVE9QLCB3aGVyZSBpdCBzZXBhcmF0ZXMgdGhlIHNlYXJjaCBmaWVsZCBmcm9tIHRoZSBYIGFjcm9zcyBvbmUgcm93LlxuICAgICAgIEhlcmUgdGhlIHJvdyBpcyBbU2VhcmNofEFJIHBpbGxdW1hdLCBzbyB0aGF0IHJ1bGUgbGFuZHMgaGFyZCBhZ2FpbnN0IHRoZVxuICAgICAgIHBpbGwncyByb3VuZGVkIGVkZ2Ug4oCUIGEgc2VhbSBiZXR3ZWVuIHR3byB0aGluZ3MgdGhhdCBhcmUgYWxyZWFkeVxuICAgICAgIHZpc3VhbGx5IGRpc3RpbmN0IChvd25lciwgMjAyNi0wOC0yODogXCJ0aGUgdmVydGljYWwgbGluZSBpcyBidXR0IHVwXG4gICAgICAgYWdhaW5zdCB0aGUgcGlsbOKApiBpdCBsb29rcyBiYWRcIikuIERyb3AgdGhlIHJ1bGUgb24gcGhvbmVzIGFuZCBnaXZlIHRoZSBYXG4gICAgICAgcmVhbCBzcGFjZSBpbnN0ZWFkOyB0aGUgcGlsbCdzIG93biBiYWNrZ3JvdW5kIGRvZXMgdGhlIHNlcGFyYXRpbmcuICovXG4gICAgLmNsb3NlIHtcbiAgICAgIGdyaWQtYXJlYTogY2xvc2U7XG4gICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cbiAgfVxuXG4gIC8qIFRoZSBpY29uIGJ1dHRvbiB3YXMgYSA2NnB4IHNsYWIg4oCUIGEgdGhpcmQgb2YgdGhlIGZpZWxkJ3Mgd2lkdGggZm9yIGEgZ2x5cGhcbiAgICAgdGhhdCByZXBlYXRzIHdoYXQgdGhlIHBsYWNlaG9sZGVyIHNheXMuIEtlZXAgaXQgYXMgdGhlIHN1Ym1pdCBhZmZvcmRhbmNlLFxuICAgICBhdCBhIHRodW1iLXNpemVkIDQ0cHguICovXG4gIC5wcy1zaXRlLXNlYXJjaCAubW9kYWwtaGVhZGVyIC5zZWFyY2hfaW5wdXRfZ3JvdXAgLnNlYXJjaEljb24ge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIG1pbi13aWR0aDogNDRweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxufVxuXG4vKiAtLS0gMi4gU3VnZ2VzdGlvbnMgc2l0IHVuZGVyIHRoZSBmaWVsZCwgbm90IDY1cHggYmVsb3cgaXQgLS0tLS0tLS0tLS0tLS0tLVxuICAgYHBhZGRpbmctdG9wOiA1NXB4YCBvbiB0aGUgYm9keSB3YXMgcmVzZXJ2aW5nIHJvb20gbm90aGluZyBvY2N1cGllcyBvbmNlIHRoZVxuICAgaGVhZGVyIGlzIGluIGZsb3cuIFN1Z2dlc3Rpb25zIGJlbG9uZyBkaXJlY3RseSBiZW5lYXRoIHRoZSBpbnB1dCAodGhhdCBpc1xuICAgd2hhdCBtYWtlcyBhIHR5cGVhaGVhZCByZWFkIGFzIGF0dGFjaGVkIHRvIHRoZSBmaWVsZCkuIEFwcGxpZWQgYXQgZXZlcnlcbiAgIHdpZHRoIOKAlCB0aGUgb3duZXIgY2FsbGVkIG91dCBkZXNrdG9wIHRvby4gKi9cbi5wcy1zaXRlLXNlYXJjaCAubW9kYWwtYm9keSB7XG4gIHBhZGRpbmctdG9wOiByZW1jKDEycHgpO1xufVxuXG4vKiBBSSBtb2RlIG9uIHBob25lczogdGhlIGNoYXQgcGFuZSBydW5zIHNpbmdsZS1zY3JvbGwgZmxvdyAoc2VlIHRoZVxuICAgYWktY2hhdGJvdCBidW5kbGUncyBtb2JpbGUgZmxvdyBibG9jaykgd2l0aCBpdHMgY29tcG9zZXIgc3RpY2t5IHRvIFRISVNcbiAgIHNjcm9sbHBvcnQncyBib3R0b20uIFRoZSBib2R5J3Mgb3duIGJvdHRvbSBwYWRkaW5nIHdvdWxkIGhvbGQgdGhlIHBpbm5lZFxuICAgY29tcG9zZXIgfjE2cHggYWJvdmUgdGhlIG1vZGFsIGVkZ2Ug4oCUIGEgZGVhZCBzdHJpcCB1bmRlciB0aGUgaW5wdXQg4oCUIHNvIGl0XG4gICBnb2VzIHRvIHplcm8gaGVyZTsgdGhlIC5haS1jaGF0LXBhbmUga2VlcHMgaXRzIG93biBib3R0b20gcGFkZGluZyBmb3JcbiAgIHNwYWNpbmcgYWZ0ZXIgdGhlIG1hdGNoaW5nLXByb2R1Y3RzIGdyaWQuICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnBzLXNpdGUtc2VhcmNoLS1tb2RlLWFpIC5tb2RhbC1ib2R5IHsgcGFkZGluZy1ib3R0b206IDA7IH1cbn1cblxuLnBzLXNpdGUtc2VhcmNoIC5wcy1zdWdnZXN0LWNvbnQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4vKiAtLS0gMy4gUmVzdWx0cyBjaHJvbWU6IGZpdmUgc3RhY2tlZCByb3dzIOKGkiB0d28gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBCZWZvcmUgdGhlIGZpcnN0IHByb2R1Y3QgYSBwaG9uZSBzaG93ZWQ6IGEgdHdvLWxpbmUgOTJweCBoZWFkaW5nLCB0aGVcbiAgIFwiU2hvd2luZyAxIC0gOSBvZiAxMiw5MTIgcHJvZHVjdHNcIiBsaW5lLCBTaG93IEZpbHRlcnMsIHRoZSBzb3J0IHNlbGVjdCwgYW5kXG4gICBhIGZ1bGwgcGFnaW5hdGlvbiBzdHJpcC4gVGhlIGhlYWRpbmcgYW5kIHRoZSBjb3VudCBzYXkgdGhlIHNhbWUgdGhpbmcgdHdpY2UsXG4gICBhbmQgcGFnaW5hdGlvbiBhdCB0aGUgVE9QIG9mIGEgbGlzdCBub2JvZHkgaGFzIHJlYWQgeWV0IGlzIG5vaXNlIOKAlCBpdCBpc1xuICAgc3RpbGwgdGhlcmUgYXQgdGhlIGJvdHRvbSwgd2hpY2ggaXMgd2hlcmUgaXQgaXMgdXNlZnVsLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5wcy1zaXRlLXNlYXJjaCB7XG4gICAgLyogdGhlIFwiU2hvcCBCeSBQcm9kdWN0IE1hdGNoaW5nIOKAplwiIGJhbm5lciDihpIgb25lIHF1aWV0IGxpbmUgKi9cbiAgICAucHJvZHVjdC1tYWluLXRpdGxlLWdyb3VwIHtcbiAgICAgIC5wcm9tcHQtbGlzdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtYygxM3B4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwIDAgcmVtYyg2cHgpO1xuICAgICAgfVxuXG4gICAgICBoMSwgaDIsIGgzLCAuaDEsIC5oMiwgLmgzIHtcbiAgICAgICAgZm9udC1zaXplOiByZW1jKDEzcHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIHRvb2xiYXI6IGNvdW50ICsgc29ydCBvbiBvbmUgbGluZSwgU2hvdyBGaWx0ZXJzIG9uIHRoZSBuZXh0ICovXG4gICAgLnBhZ2luYXRpb24tY29udGFpbmVyOm5vdCgucGFnaW5hdGlvbi1ib3R0b20pIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiA2cHggMTBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IHJlbWMoOHB4KTtcblxuICAgICAgLnBhZ2luYXRpb24tY29udGFpbmVyLWl0ZW0geyBwYWRkaW5nOiAwOyB9XG5cbiAgICAgIC4tc2hvd2luZyBwIHsgZm9udC1zaXplOiByZW1jKDEycHgpOyBtYXJnaW46IDA7IH1cblxuICAgICAgLyogdGhlIHRvcCBwYWdpbmF0aW9uIHN0cmlwIHJlcGVhdHMgdGhlIGJvdHRvbSBvbmUgKi9cbiAgICAgIC5wYWdpbmF0aW9uLFxuICAgICAgbmF2W2FyaWEtbGFiZWwqPVwiYWdpbmF0aW9uXCJdIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICAvKiByb3dzLXBlci1wYWdlIGlzIGEgZGVza3RvcCByZWZpbmVtZW50OyB0aGUgcGhvbmUgaGFzIHRoZSBzb3J0IHNlbGVjdCAqL1xuICAgICAgLnBwLWNvbnQgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAgIC5zaG93LXNpZGUtbmF2IHsgZmxleDogMSAwIDEwMCU7IG9yZGVyOiAyOyB9XG4gICAgICAuc2hvdy1maWx0ZXIgICB7IGZvbnQtc2l6ZTogcmVtYygxM3B4KTsgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgIH1cblxuICAgIC8qIC0tLSA2LiB0aGUgYm90dG9tIGJhciB3YXMgYnV0dGVkIGFnYWluc3QgdGhlIGxhc3QgY2FyZCAtLS0tLS0tLS0tLS0tLSAqL1xuICAgIC5wYWdpbmF0aW9uLWJvdHRvbSB7XG4gICAgICBtYXJnaW4tdG9wOiByZW1jKDE4cHgpO1xuICAgICAgcGFkZGluZy10b3A6IHJlbWMoMTRweCk7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjI1KTtcbiAgICB9XG4gIH1cbn1cblxuLyogLS0tIDQuIEZpbHRlcnMgcGFuZWw6IHRoZSBjbG9zZSBjb250cm9sIG11c3QgbmV2ZXIgc2Nyb2xsIGF3YXkgLS0tLS0tLS0tLS1cbiAgIC5mYWNldHMtY29udCBpcyBwb3NpdGlvbjpmaXhlZCB3aXRoIGl0cyBvd24gc2Nyb2xsLCBhbmQgaXRzIC5jbG9zZSB3YXMganVzdFxuICAgdGhlIGZpcnN0IGNoaWxkIOKAlCBzY3JvbGwgdGhlIHllYXIgbGlzdCBhbmQgdGhlIG9ubHkgd2F5IG91dCBsZWZ0IHRoZSBzY3JlZW4uXG4gICBTdGlja3kgcGlucyBpdCB0byB0aGUgcGFuZWwncyB0b3AgZWRnZSBmb3IgdGhlIHdob2xlIHNjcm9sbC4gKi9cbi5wcy1zaXRlLXNlYXJjaCAuZmFjZXRzLWNvbnQge1xuICA+IC5jbG9zZSB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogNTtcbiAgICAvKiB0aGUgcGFuZWwgYmFja2dyb3VuZCwgc28gbGlzdCByb3dzIHBhc3MgVU5ERVIgaXQgcmF0aGVyIHRoYW4gdGhyb3VnaCAqL1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gIH1cbn1cblxuLyogLS0tIDUuIFwiU2VhcmNoIGJ5OlwiIGZvb3RlciBvbiBvbmUgbGluZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgXCJBSSBBc3Npc3RhbnRcIiBwdXNoZWQgdGhlIHJvdyB0byB0d28gbGluZXMgYW5kIGRyYWdnZWQgXCJTZWFyY2ggYnk6XCIgd2l0aCBpdC5cbiAgIFRoZSBsYWJlbCBhbmQgdGhlIGxpbmtzIG5vdyBzaGFyZSBhIHNpbmdsZSBmbGV4IHJvdyB0aGF0IHNjcm9sbHMgc2lkZXdheXMgaWZcbiAgIGEgc2l0ZSBldmVyIGFkZHMgYSBmaWZ0aCBlbnRyeSwgaW5zdGVhZCBvZiByZWZsb3dpbmcuICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnBzLXNpdGUtc2VhcmNoIC5zZWFyY2hfYnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogOHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgLyogMTJweCArIDhweCBnYXBzIG1lYXN1cmVzIH4yOTZweCBvZiB0aGUgMzU4cHggYXZhaWxhYmxlLCBzbyBhbGwgZm91clxuICAgICAgIGVudHJpZXMgZml0IG9uIG9uZSBsaW5lIGF0IDM5MHB4OyBvdmVyZmxvdy14IGlzIHRoZSBzYWZldHkgbmV0IGZvciBhXG4gICAgICAgbmFycm93ZXIgZGV2aWNlIG9yIGEgc2l0ZSB0aGF0IGFkZHMgYSBmaWZ0aC4gKi9cbiAgICBmb250LXNpemU6IHJlbWMoMTJweCk7XG5cbiAgICAuc2VhcmNoX2J5X2xpc3Qge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAvLyB0aGUgbGlzdCBjYXJyaWVzIGl0cyBvd24gMTRweDsgd2l0aG91dCB0aGlzIHRoZSBsYWJlbCBzaHJpbmtzIGFuZCB0aGVcbiAgICAgIC8vIGxpbmtzIGRvIG5vdCwgd2hpY2ggaXMgd2hhdCBwdXNoZWQgXCJCcmFuZFwiIG9mZiB0aGUgcm93XG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLy8gRWFjaCBpdGVtIGFsc28gaGFkIG1hcmdpbi1yaWdodDoxMHB4IEFORCBwYWRkaW5nLXJpZ2h0OjEwcHgsIHNvIHRoZSByZWFsXG4gICAgLy8gc2VhbSB3YXMgMjhweCwgbm90IHRoZSA4cHggZ2FwLiBaZXJvIHRoZW0gYW5kIGxldCBgZ2FwYCBiZSB0aGUgb25lIHRoaW5nXG4gICAgLy8gdGhhdCBkZWNpZGVzIHRoZSBzcGFjaW5nLlxuICAgIC5zZWFyY2hfYnlfbGlzdF9pdGVtIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRoZW1lIHBhbGV0dGUg4oCUIFRPS0VOLUJBQ0tFRCAoUm91bmQgMTQsIENPTE9SU19UT0tFTlNfUkVDT05DSUxJQVRJT04ubWQpLlxuLy9cbi8vIEV2ZXJ5ICRjb2xvcl8qIHZhciByZXNvbHZlcyB0byBhIFRoZW1lIEJ1aWxkZXIgZ2xvYmFsIGRlc2lnbiB0b2tlblxuLy8gKHZhcigtLXBzLWNvbG9yLSosIDxicmFuZCBoZXggZmFsbGJhY2s+KSkuIFJlbmRlcmluZyBpcyBJREVOVElDQUwgdG8gdGhlIG9sZFxuLy8gc3RhdGljIHBhbGV0dGUgdW50aWwgdGhlIGJhY2tlbmQgdGhlbWUgZWRpdG9yIHB1Ymxpc2hlcyBhIHRva2VuIHZhbHVlIOKAlCB0aGVuXG4vLyB0aGF0IHZhbHVlIHdpbnMgYWNyb3NzIHRoZSBlbnRpcmUgY29tcGlsZWQgc3R5bGVzaGVldCAoZ2xvYmFsIHNoZWV0IEFORCBldmVyeVxuLy8gY29tcG9uZW50IGJ1bmRsZSwgc2luY2UgdGhleSBhbGwgaW1wb3J0IHRoaXMgZmlsZSB2aWEgX2NhdGFsb2cvZ2xvYmFscykuXG4vL1xuLy8gUlVMRVM6XG4vLyAgLSBTYXNzIGNvbG9yIGZ1bmN0aW9ucyAobGlnaHRlbi9kYXJrZW4vcmdiYS9taXgpIENBTk5PVCBvcGVyYXRlIG9uIHZhcigpLlxuLy8gICAgVXNlIHRoZSAqX2hleCBsaXRlcmFscyBmb3IgdGhvc2Ug4oCUIEJvb3RzdHJhcCdzICR0aGVtZS1jb2xvcnMgbWF0aCBkb2VzXG4vLyAgICAob3ZlcnJpZGVzL192YXJpYWJsZXMuc2NzcyksIGFuZCBzbyBkb2VzIHRoZSBzaXRlLXNlYXJjaCBtb2RhbCBncmFkaWVudC5cbi8vICAtIERlcml2ZWQgc2hhZGVzIGFyZSBOT1QgY29tcHV0ZWQgZnJvbSB0aGUgYmFzZTogZWFjaCBpcyBpdHMgb3duIHRva2VuIHdpdGhcbi8vICAgIGl0cyBvd24gZmFsbGJhY2sgKHRoZSBsZWdhY3kgdmFsdWVzIHdlcmUgbmV2ZXIgYWxnb3JpdGhtaWMgdGludHMpLlxuLy8gIC0gVGhlIEpJUy1mb3NzaWwgdmFycyAoJGNvbG9yX2ppcyopIGFuZCB0aGUgJGNvbG9yX3ByaW1hcnlfbGlnaHRlc3QgYWxpYXNcbi8vICAgIHdlcmUgcmV0aXJlZCBoZXJlICh6ZXJvIGNhbGxlcnMgYWZ0ZXIgdGhlIFJvdW5kIDEzIHN3ZWVwKS5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIOKUgOKUgCBSYXcgYnJhbmQgbGl0ZXJhbHMg4oCUIE9OTFkgZm9yIFNhc3MgY29sb3IgbWF0aCAoQm9vdHN0cmFwIHRoZW1lIGNvbG9ycyxcbi8vICAgIGxpZ2h0ZW4oKS9yZ2JhKCkgY2FsbCBzaXRlcykuIEV2ZXJ5dGhpbmcgZWxzZSB1c2VzIHRoZSB0b2tlbi1iYWNrZWQgdmFycy5cbiRjb2xvcl9wcmltYXJ5X2hleDogICAjMDAxODc3O1xuJGNvbG9yX3NlY29uZGFyeV9oZXg6ICMwOTA5MTc7XG5cbi8vIOKUgOKUgCBQcmltYXJ5IChicmFuZCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4kY29sb3JfcHJpbWFyeTogICAgICAgICB2YXIoLS1wcy1jb2xvci1wcmltYXJ5LCAjeyRjb2xvcl9wcmltYXJ5X2hleH0pO1xuJGNvbG9yX3ByaW1hcnlfbGlnaHQ6ICAgdmFyKC0tcHMtY29sb3ItcHJpbWFyeS1saWdodCwgI2Y5OWQxYSk7ICAgLy8gb3JhbmdlIGFjY2VudCAobm90IGEgdGludClcbiRjb2xvcl9wcmltYXJ5X2Rhcms6ICAgIHZhcigtLXBzLWNvbG9yLXByaW1hcnktZGFyaywgIzRiODRjMCk7ICAgIC8vIGxpZ2h0ZXIgYmx1ZSAobGVnYWN5IG5hbWluZylcbiRjb2xvcl9wcmltYXJ5X2RhcmtlcjogIHZhcigtLXBzLWNvbG9yLXByaW1hcnktaG92ZXIsICN7JGNvbG9yX3ByaW1hcnlfaGV4fSk7IC8vIGxlZ2FjeSBzZWxmLWFsaWFzIOKGkiBob3ZlciB0b2tlblxuXG4vLyDilIDilIAgU2Vjb25kYXJ5IChkYXJrIGJhbmRzIC8gYmFja2dyb3VuZHMpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuJGNvbG9yX3NlY29uZGFyeTogICAgICAgICB2YXIoLS1wcy1jb2xvci1zZWNvbmRhcnksICN7JGNvbG9yX3NlY29uZGFyeV9oZXh9KTtcbiRjb2xvcl9zZWNvbmRhcnlfZGFya2VyOiAgdmFyKC0tcHMtY29sb3Itc2Vjb25kYXJ5LWRhcmtlciwgIzAwMDAwMCk7XG4kY29sb3Jfc2Vjb25kYXJ5X2Rhcms6ICAgIHZhcigtLXBzLWNvbG9yLXNlY29uZGFyeS1kYXJrLCAjMTQxNjE4KTtcbiRjb2xvcl9zZWNvbmRhcnlfbGlnaHQ6ICAgdmFyKC0tcHMtY29sb3ItdGV4dC0yLCAjNTc1NzU3KTtcbiRjb2xvcl9zZWNvbmRhcnlfbGlnaHRlcjogdmFyKC0tcHMtY29sb3ItdGV4dC0zLCAjN2M3YzdjKTtcblxuLy8g4pSA4pSAIE5ldXRyYWxzIC8gc3VyZmFjZXMgLyBib3JkZXJzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuJGNvbG9yX25ldXRyYWw6ICAgdmFyKC0tcHMtY29sb3ItbmV1dHJhbCwgI2ZmZmZmZik7XG4kY29sb3JfbmV1dHJhbF8xOiB2YXIoLS1wcy1jb2xvci1zdXJmYWNlLWFsdCwgI2YwZjBmMCk7XG4kY29sb3JfbmV1dHJhbF8yOiB2YXIoLS1wcy1jb2xvci1ib3JkZXItMiwgI2E3YTdhNyk7XG4kY29sb3JfbmV1dHJhbF8zOiB2YXIoLS1wcy1jb2xvci1ib3JkZXIsICNkYmRiZGIpO1xuJGNvbG9yLW5ldXRyYWxfNDogdmFyKC0tcHMtY29sb3Itc3VyZmFjZS1hbHQsICNlZmVmZWYpO1xuXG4vLyDilIDilIAgU2VtYW50aWMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4kY29sb3JfcmVkOiAgICAgICAgdmFyKC0tcHMtY29sb3ItZGFuZ2VyLCAjZmYxZTAwKTtcbiRjb2xvcl90ZXh0X2xpZ2h0OiB2YXIoLS1wcy1jb2xvci10ZXh0LWludmVyc2UsICNmZmZmZmYpO1xuXG4vLyBQcmVjb21wdXRlZCB0cmFuc2x1Y2VudCBvdmVybGF5IOKAlCBhIGZpcnN0LWNsYXNzIHRva2VuIChTYXNzIGNhbid0IHJnYmEoKSBhXG4vLyB2YXIoKTsgdGhlIGxlZ2FjeSB2YWx1ZSB3YXMgcmdiYSgkY29sb3Jfc2Vjb25kYXJ5X2RhcmtlciwgLjgpID0gcmdiYSBibGFjaykuXG4kb3ZlcmxheS1kYXJrOiB2YXIoLS1wcy1jb2xvci1vdmVybGF5LWRhcmssIHJnYmEoMCwgMCwgMCwgMC44KSk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/