ca-components 1.3.997 → 1.3.998
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/animations/index.mjs +11 -0
- package/esm2022/lib/animations/slide-in-out.animation.mjs +20 -0
- package/esm2022/lib/ca-components.module.mjs +7 -1
- package/esm2022/lib/components/ca-checkbox/ca-checkbox.component.mjs +3 -3
- package/esm2022/lib/components/ca-dropdown-menu/ca-dropdown-menu.component.mjs +8 -5
- package/esm2022/lib/components/ca-dropdown-menu/enums/dropdown-menu.enum.mjs +2 -2
- package/esm2022/lib/components/ca-dropdown-menu/interfaces/dropdown-menu-item.interface.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/ca-input-dropdown-test.component.mjs +19 -35
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-default-template/ca-input-dropdown-default-template.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-details-template/ca-input-dropdown-details-template.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-dispatch/ca-input-dropdown-dispatch.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-double-text-template/ca-input-dropdown-double-text-template.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-fuel-franchise/ca-input-dropdown-fuel-franchise.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-groups/ca-input-dropdown-groups.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-labels/ca-input-dropdown-labels.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker-item/ca-input-dropdown-load-broker-item.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact-item/ca-input-dropdown-load-broker-contact-item.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper-item/ca-input-dropdown-load-broker-shipper-item.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher-item/ca-input-dropdown-load-dispatcher-item.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd-item/ca-input-dropdown-load-dispatches-ttd-item.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-multiselect/ca-input-dropdown-multiselect.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-payroll-trucks/ca-input-dropdown-payroll-trucks.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svg-template/ca-input-dropdown-svg-template.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-dispatch-template/ca-input-dropdown-svgtext-dispatch-template.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template-item/ca-input-dropdown-svgtext-template-item.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-text-counter/ca-input-dropdown-text-counter.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-triple-text-template/ca-input-dropdown-triple-text-template.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/interfaces/input-dropdown-option.interface.mjs +2 -0
- package/esm2022/lib/components/ca-input-dropdown-test/pipes/dropdown-options.pipe.mjs +4 -2
- package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-default-template-class.pipe.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-fuel-franchise-class.pipe.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-get-icon.pipe.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-label-class.pipe.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-load-broker-container.pipe.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-multiselect-class.pipe.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-svgtext-template-container.pipe.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/pipes/input-dropdown-svgtext-template-icon.pipe.mjs +1 -1
- package/esm2022/lib/components/ca-input-dropdown-test/types/index.mjs +2 -0
- package/esm2022/lib/components/ca-input-dropdown-test/types/input-dropdown-forms.type.mjs +2 -0
- package/esm2022/lib/components/ca-input-dropdown-test/types/select-dropdown-value.type.mjs +2 -0
- package/esm2022/lib/components/ca-input-dropdown-test/validators/dropdown-empty-value.validator.mjs +1 -1
- package/esm2022/lib/components/ca-last-fuel-price-progress/ca-last-fuel-price-progress.component.mjs +22 -13
- package/esm2022/lib/components/ca-last-fuel-price-progress/interfaces/last-fuel-price-progress-config.interface.mjs +1 -1
- package/esm2022/lib/components/ca-last-fuel-price-progress/interfaces/last-fuel-price-progress-data.interface.mjs +1 -1
- package/esm2022/lib/components/ca-map/ca-map.component.mjs +53 -81
- package/esm2022/lib/components/ca-map/utils/helpers/map-marker-icon.helper.mjs +5 -4
- package/esm2022/lib/components/ca-map/utils/services/map-marker-icon.service.mjs +23 -5
- package/esm2022/lib/components/ca-map-dropdown/ca-map-dropdown.component.mjs +41 -8
- package/esm2022/lib/components/ca-map-dropdown/enums/map-dropdown-string.enum.mjs +3 -1
- package/esm2022/lib/components/ca-map-dropdown/models/map-dropdown-content.model.mjs +1 -1
- package/esm2022/lib/components/ca-new-filter/components/ca-filter-list-dropdown/ca-filter-list-dropdown.component.mjs +31 -23
- package/esm2022/lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component.mjs +3 -3
- package/esm2022/lib/components/ca-search-multiple-states-2/ca-search-multiple-states-2.component.mjs +112 -0
- package/esm2022/lib/components/ca-search-multiple-states-2/enums/index.mjs +2 -0
- package/esm2022/lib/components/ca-search-multiple-states-2/enums/search-multiple-state-action.enum.mjs +5 -0
- package/esm2022/lib/components/ca-search-multiple-states-2/util/index.mjs +2 -0
- package/esm2022/lib/components/ca-search-multiple-states-2/util/routes/multiple-search-state-svg.route.mjs +6 -0
- package/esm2022/lib/enums/general-actions.enum.mjs +27 -11
- package/esm2022/lib/enums/string-placeholder.enum.mjs +2 -1
- package/esm2022/lib/pipes/date-from-string.pipe.mjs +4 -1
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ca-components.mjs +450 -275
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/animations/index.d.ts +10 -0
- package/lib/animations/slide-in-out.animation.d.ts +1 -0
- package/lib/ca-components.module.d.ts +24 -23
- package/lib/components/ca-dropdown-menu/enums/dropdown-menu.enum.d.ts +1 -1
- package/lib/components/ca-dropdown-menu/interfaces/dropdown-menu-item.interface.d.ts +1 -1
- package/lib/components/ca-filters/ca-filter.component.d.ts +2 -2
- package/lib/components/ca-input-dropdown-test/ca-input-dropdown-test.component.d.ts +29 -34
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-default-template/ca-input-dropdown-default-template.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-details-template/ca-input-dropdown-details-template.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-dispatch/ca-input-dropdown-dispatch.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-double-text-template/ca-input-dropdown-double-text-template.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-fuel-franchise/ca-input-dropdown-fuel-franchise.component.d.ts +10 -10
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-groups/ca-input-dropdown-groups.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-labels/ca-input-dropdown-labels.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker-item/ca-input-dropdown-load-broker-item.component.d.ts +3 -3
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact-item/ca-input-dropdown-load-broker-contact-item.component.d.ts +3 -3
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-contact/ca-input-dropdown-load-broker-contact.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper-item/ca-input-dropdown-load-broker-shipper-item.component.d.ts +4 -4
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-broker-shipper/ca-input-dropdown-load-broker-shipper.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher-item/ca-input-dropdown-load-dispatcher-item.component.d.ts +4 -4
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatcher/ca-input-dropdown-load-dispatcher.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd-item/ca-input-dropdown-load-dispatches-ttd-item.d.ts +4 -4
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-load-dispatches-ttd/ca-input-dropdown-load-dispatches-ttd.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-multiselect/ca-input-dropdown-multiselect.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-payroll-trucks/ca-input-dropdown-payroll-trucks.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svg-template/ca-input-dropdown-svg-template.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-dispatch-template/ca-input-dropdown-svgtext-dispatch-template.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template-item/ca-input-dropdown-svgtext-template-item.component.d.ts +4 -4
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-svgtext-template/ca-input-dropdown-svgtext-template.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-text-counter/ca-input-dropdown-text-counter.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/components/ca-input-dropdown-triple-text-template/ca-input-dropdown-triple-text-template.component.d.ts +6 -6
- package/lib/components/ca-input-dropdown-test/{models/input-dropdown-option.model.d.ts → interfaces/input-dropdown-option.interface.d.ts} +1 -1
- package/lib/components/ca-input-dropdown-test/pipes/dropdown-options.pipe.d.ts +3 -3
- package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-default-template-class.pipe.d.ts +2 -2
- package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-fuel-franchise-class.pipe.d.ts +2 -2
- package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-get-icon.pipe.d.ts +2 -2
- package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-label-class.pipe.d.ts +2 -2
- package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-load-broker-container.pipe.d.ts +2 -2
- package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-multiselect-class.pipe.d.ts +2 -2
- package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-svgtext-template-container.pipe.d.ts +2 -2
- package/lib/components/ca-input-dropdown-test/pipes/input-dropdown-svgtext-template-icon.pipe.d.ts +2 -2
- package/lib/components/ca-input-dropdown-test/types/index.d.ts +1 -0
- package/lib/components/ca-input-dropdown-test/types/input-dropdown-forms.type.d.ts +7 -0
- package/lib/components/ca-input-dropdown-test/types/select-dropdown-value.type.d.ts +7 -0
- package/lib/components/ca-last-fuel-price-progress/ca-last-fuel-price-progress.component.d.ts +1 -0
- package/lib/components/ca-last-fuel-price-progress/interfaces/last-fuel-price-progress-config.interface.d.ts +1 -0
- package/lib/components/ca-last-fuel-price-progress/interfaces/last-fuel-price-progress-data.interface.d.ts +2 -0
- package/lib/components/ca-map/ca-map.component.d.ts +12 -18
- package/lib/components/ca-map/utils/helpers/map-marker-icon.helper.d.ts +1 -1
- package/lib/components/ca-map/utils/services/map-marker-icon.service.d.ts +2 -2
- package/lib/components/ca-map-dropdown/ca-map-dropdown.component.d.ts +5 -1
- package/lib/components/ca-map-dropdown/enums/map-dropdown-string.enum.d.ts +3 -1
- package/lib/components/ca-map-dropdown/models/map-dropdown-content.model.d.ts +2 -1
- package/lib/components/ca-new-filter/components/ca-filter-list-dropdown/ca-filter-list-dropdown.component.d.ts +5 -5
- package/lib/components/ca-search-multiple-states-2/ca-search-multiple-states-2.component.d.ts +32 -0
- package/lib/components/ca-search-multiple-states-2/enums/index.d.ts +1 -0
- package/lib/components/ca-search-multiple-states-2/enums/search-multiple-state-action.enum.d.ts +3 -0
- package/lib/components/ca-search-multiple-states-2/util/index.d.ts +1 -0
- package/lib/components/ca-search-multiple-states-2/util/routes/multiple-search-state-svg.route.d.ts +5 -0
- package/lib/enums/general-actions.enum.d.ts +26 -10
- package/lib/enums/string-placeholder.enum.d.ts +2 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/esm2022/lib/components/ca-input-dropdown-test/models/index.mjs +0 -4
- package/esm2022/lib/components/ca-input-dropdown-test/models/input-dropdown-option.model.mjs +0 -2
- package/esm2022/lib/components/ca-input-dropdown-test/models/load-modal-status.model.mjs +0 -2
- package/esm2022/lib/components/ca-input-dropdown-test/models/status-order.model.mjs +0 -2
- package/lib/components/ca-input-dropdown-test/models/index.d.ts +0 -3
- package/lib/components/ca-input-dropdown-test/models/load-modal-status.model.d.ts +0 -5
- package/lib/components/ca-input-dropdown-test/models/status-order.model.d.ts +0 -4
|
@@ -142,12 +142,13 @@ export class MapMarkerIconHelper {
|
|
|
142
142
|
markerIconRoute = MapSvgRoutes.favoriteMarkerIcon;
|
|
143
143
|
return markerIconRoute;
|
|
144
144
|
}
|
|
145
|
-
static getClusterMarker(count, isSelected) {
|
|
145
|
+
static getClusterMarker(count, isSelected, isFuelMarker) {
|
|
146
|
+
const markerColor = isFuelMarker ? '#6692F1' : '#FAB15C';
|
|
146
147
|
const markerSvg = `<svg class="marker-svg" width="52" height="52" viewBox="0 0 52 52" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
147
148
|
<g filter="url(#filter0_d_2631_274104)">
|
|
148
149
|
<circle cx="26" cy="26" r="16" fill="white"/>
|
|
149
150
|
</g>
|
|
150
|
-
<circle cx="26" cy="26" r="14" fill="
|
|
151
|
+
<circle cx="26" cy="26" r="14" fill="${markerColor}"/>
|
|
151
152
|
<text
|
|
152
153
|
id="_4"
|
|
153
154
|
data-name="4"
|
|
@@ -162,7 +163,7 @@ export class MapMarkerIconHelper {
|
|
|
162
163
|
<tspan> ${count} </tspan>
|
|
163
164
|
</text>
|
|
164
165
|
<g opacity="0.7" filter="url(#filter1_d_2631_274104)">
|
|
165
|
-
<path d="M36.781 7.65002L35.461 9.89302C35.3705 10.0502 35.3446 10.2363 35.3886 10.4122C35.4326 10.5881 35.5432 10.74 35.697 10.836C37.8917 12.2409 39.7555 14.1051 41.16 16.3C41.256 16.4538 41.408 16.5644 41.5838 16.6084C41.7597 16.6524 41.9458 16.6265 42.103 16.536L44.346 15.216C44.4275 15.1691 44.4988 15.1061 44.5554 15.031C44.6121 14.9559 44.653 14.8702 44.6758 14.7789C44.6986 14.6876 44.7027 14.5926 44.688 14.4997C44.6732 14.4068 44.6399 14.3178 44.59 14.238C42.8426 11.4867 40.5103 9.15436 37.759 7.40702C37.6792 7.35709 37.5902 7.32376 37.4973 7.30901C37.4044 7.29427 37.3094 7.2984 37.2181 7.32118C37.1268 7.34396 37.0411 7.38491 36.966 7.44158C36.8909 7.49825 36.8279 7.56848 36.781 7.65002ZM46.601 20.651L44.073 21.309C43.8985 21.3562 43.749 21.469 43.6558 21.6239C43.5626 21.7788 43.5329 21.9637 43.573 22.14C44.1343 24.6827 44.1343 27.3173 43.573 29.86C43.5329 30.0363 43.5626 30.2212 43.6558 30.3761C43.749 30.531 43.8985 30.6439 44.073 30.691L46.601 31.349C46.6917 31.3735 46.7864 31.3794 46.8795 31.3665C46.9725 31.3536 47.0621 31.3221 47.1427 31.2738C47.2233 31.2256 47.2934 31.1616 47.3488 31.0857C47.4041 31.0098 47.4437 30.9235 47.465 30.832C48.173 27.6496 48.173 24.3504 47.465 21.168C47.4437 21.0765 47.4041 20.9902 47.3488 20.9143C47.2934 20.8384 47.2233 20.7744 47.1427 20.7262C47.0621 20.678 46.9725 20.6464 46.8795 20.6335C46.7864 20.6206 46.6917 20.6266 46.601 20.651ZM30.696 44.079C30.6502 43.9037 30.5376 43.7532 30.3823 43.6598C30.227 43.5663 30.0414 43.5374 29.865 43.579C27.3192 44.1397 24.6818 44.1397 22.136 43.579C21.9597 43.5389 21.7748 43.5686 21.6199 43.6618C21.465 43.755 21.3521 43.9045 21.305 44.079L20.647 46.6C20.6225 46.6907 20.6166 46.7854 20.6295 46.8785C20.6424 46.9716 20.6739 47.0611 20.7222 47.1417C20.7704 47.2223 20.8344 47.2924 20.9103 47.3478C20.9862 47.4032 21.0725 47.4427 21.164 47.464C24.3471 48.172 27.6469 48.172 30.83 47.464C30.9214 47.4427 31.0076 47.4032 31.0834 47.3479C31.1592 47.2926 31.2231 47.2226 31.2714 47.1421C31.3196 47.0616 31.3512 46.9722 31.3641 46.8792C31.3771 46.7863 31.3713 46.6917 31.347 46.601L30.696 44.079ZM15.21 7.64902C15.163 7.56762 15.1002 7.49651 15.0251 7.43993C14.9501 7.38335 14.8644 7.34245 14.7733 7.31968C14.6821 7.29691 14.5873 7.29273 14.4945 7.30739C14.4016 7.32205 14.3127 7.35526 14.233 7.40502C11.4742 9.14543 9.13842 11.4795 7.39599 14.237C7.34623 14.3167 7.31303 14.4057 7.29837 14.4985C7.28371 14.5913 7.28789 14.6861 7.31066 14.7773C7.33343 14.8685 7.37432 14.9541 7.4309 15.0292C7.48748 15.1042 7.55859 15.1671 7.63999 15.214L9.88599 16.533C10.0436 16.6246 10.2308 16.6511 10.4076 16.6068C10.5845 16.5626 10.7371 16.4511 10.833 16.296C12.237 14.1021 14.101 12.2394 16.296 10.837C16.451 10.7411 16.5625 10.5885 16.6068 10.4116C16.6511 10.2348 16.6246 10.0476 16.533 9.89002L15.21 7.64902ZM7.90999 21.308L5.39599 20.652C5.30528 20.6274 5.21053 20.6213 5.11741 20.6341C5.02428 20.6468 4.93468 20.6782 4.85396 20.7264C4.77323 20.7746 4.70303 20.8385 4.64754 20.9143C4.59205 20.9902 4.55242 21.0765 4.53099 21.168C3.823 24.3504 3.823 27.6496 4.53099 30.832C4.55231 30.9235 4.59184 31.0098 4.64721 31.0857C4.70258 31.1616 4.77267 31.2256 4.8533 31.2738C4.93392 31.3221 5.02343 31.3536 5.1165 31.3665C5.20956 31.3794 5.30428 31.3735 5.39499 31.349L7.92299 30.691C8.09751 30.6439 8.24702 30.531 8.34022 30.3761C8.43342 30.2212 8.46308 30.0363 8.42299 29.86C8.13992 28.5928 7.99673 27.2984 7.99599 26C7.99593 24.7027 8.13439 23.409 8.40899 22.141C8.44966 21.9645 8.42028 21.779 8.32703 21.6237C8.23379 21.4683 8.08494 21.3552 7.90999 21.308ZM9.88899 35.465L7.64599 36.785C7.56446 36.832 7.49322 36.8949 7.43655 36.97C7.37988 37.0451 7.33893 37.1309 7.31616 37.2222C7.29338 37.3135 7.28924 37.4084 7.30399 37.5013C7.31874 37.5943 7.35207 37.6833 7.40199 37.763C9.14933 40.5143 11.4817 42.8467 14.233 44.594C14.3127 44.6439 14.4017 44.6773 14.4947 44.692C14.5876 44.7068 14.6826 44.7026 14.7738 44.6799C14.8651 44.6571 14.9509 44.6161 15.026 44.5595C15.1011 44.5028 15.164 44.4316 15.211 44.35L16.531 42.107C16.6214 41.9499 16.6474 41.7638 16.6034 41.5879C16.5594 41.412 16.4488 41.26 16.295 41.164C14.1003 39.7592 12.2365 37.895 10.832 35.7C10.736 35.5462 10.584 35.4357 10.4081 35.3916C10.2322 35.3476 10.0461 35.3746 9.88899 35.465ZM41.16 35.7C39.7552 37.8951 37.891 39.7593 35.696 41.164C35.5422 41.26 35.4316 41.412 35.3876 41.5879C35.3436 41.7638 35.3695 41.9499 35.46 42.107L36.78 44.35C36.827 44.4316 36.8899 44.5028 36.965 44.5595C37.0401 44.6161 37.1258 44.6571 37.2171 44.6799C37.3084 44.7026 37.4034 44.7068 37.4963 44.692C37.5892 44.6773 37.6782 44.6439 37.758 44.594C40.5093 42.8467 42.8416 40.5143 44.589 37.763C44.6389 37.6833 44.6722 37.5943 44.687 37.5013C44.7017 37.4084 44.6976 37.3135 44.6748 37.2222C44.6521 37.1309 44.6111 37.0451 44.5544 36.97C44.4978 36.8949 44.4265 36.832 44.345 36.785L42.102 35.465C41.9448 35.3746 41.7587 35.3486 41.5828 35.3926C41.407 35.4367 41.255 35.5472 41.159 35.701M25.996 4.00002C24.3707 3.99798 22.7501 4.17607 21.164 4.53102C21.0725 4.55244 20.9862 4.59208 20.9103 4.64757C20.8344 4.70305 20.7705 4.77325 20.7224 4.85398C20.6742 4.93471 20.6428 5.02431 20.63 5.11743C20.6173 5.21056 20.6234 5.3053 20.648 5.39602L21.304 7.91202C21.3511 8.08696 21.4643 8.23681 21.6196 8.33006C21.775 8.4233 21.9604 8.45268 22.137 8.41202C23.405 8.13775 24.6987 7.99963 25.996 8.00002C27.2971 7.99907 28.5944 8.1399 29.865 8.42002C30.0414 8.46168 30.227 8.43269 30.3823 8.33926C30.5376 8.24583 30.6502 8.09536 30.696 7.92002L31.347 5.39302C31.3713 5.30237 31.3771 5.20776 31.3641 5.11481C31.3512 5.02186 31.3196 4.93247 31.2714 4.85196C31.2231 4.77145 31.1592 4.70146 31.0834 4.64615C31.0076 4.59084 30.9214 4.55135 30.83 4.53002C29.2431 4.17581 27.6219 3.99806 25.996 4.00002Z" fill="${isSelected ?
|
|
166
|
+
<path d="M36.781 7.65002L35.461 9.89302C35.3705 10.0502 35.3446 10.2363 35.3886 10.4122C35.4326 10.5881 35.5432 10.74 35.697 10.836C37.8917 12.2409 39.7555 14.1051 41.16 16.3C41.256 16.4538 41.408 16.5644 41.5838 16.6084C41.7597 16.6524 41.9458 16.6265 42.103 16.536L44.346 15.216C44.4275 15.1691 44.4988 15.1061 44.5554 15.031C44.6121 14.9559 44.653 14.8702 44.6758 14.7789C44.6986 14.6876 44.7027 14.5926 44.688 14.4997C44.6732 14.4068 44.6399 14.3178 44.59 14.238C42.8426 11.4867 40.5103 9.15436 37.759 7.40702C37.6792 7.35709 37.5902 7.32376 37.4973 7.30901C37.4044 7.29427 37.3094 7.2984 37.2181 7.32118C37.1268 7.34396 37.0411 7.38491 36.966 7.44158C36.8909 7.49825 36.8279 7.56848 36.781 7.65002ZM46.601 20.651L44.073 21.309C43.8985 21.3562 43.749 21.469 43.6558 21.6239C43.5626 21.7788 43.5329 21.9637 43.573 22.14C44.1343 24.6827 44.1343 27.3173 43.573 29.86C43.5329 30.0363 43.5626 30.2212 43.6558 30.3761C43.749 30.531 43.8985 30.6439 44.073 30.691L46.601 31.349C46.6917 31.3735 46.7864 31.3794 46.8795 31.3665C46.9725 31.3536 47.0621 31.3221 47.1427 31.2738C47.2233 31.2256 47.2934 31.1616 47.3488 31.0857C47.4041 31.0098 47.4437 30.9235 47.465 30.832C48.173 27.6496 48.173 24.3504 47.465 21.168C47.4437 21.0765 47.4041 20.9902 47.3488 20.9143C47.2934 20.8384 47.2233 20.7744 47.1427 20.7262C47.0621 20.678 46.9725 20.6464 46.8795 20.6335C46.7864 20.6206 46.6917 20.6266 46.601 20.651ZM30.696 44.079C30.6502 43.9037 30.5376 43.7532 30.3823 43.6598C30.227 43.5663 30.0414 43.5374 29.865 43.579C27.3192 44.1397 24.6818 44.1397 22.136 43.579C21.9597 43.5389 21.7748 43.5686 21.6199 43.6618C21.465 43.755 21.3521 43.9045 21.305 44.079L20.647 46.6C20.6225 46.6907 20.6166 46.7854 20.6295 46.8785C20.6424 46.9716 20.6739 47.0611 20.7222 47.1417C20.7704 47.2223 20.8344 47.2924 20.9103 47.3478C20.9862 47.4032 21.0725 47.4427 21.164 47.464C24.3471 48.172 27.6469 48.172 30.83 47.464C30.9214 47.4427 31.0076 47.4032 31.0834 47.3479C31.1592 47.2926 31.2231 47.2226 31.2714 47.1421C31.3196 47.0616 31.3512 46.9722 31.3641 46.8792C31.3771 46.7863 31.3713 46.6917 31.347 46.601L30.696 44.079ZM15.21 7.64902C15.163 7.56762 15.1002 7.49651 15.0251 7.43993C14.9501 7.38335 14.8644 7.34245 14.7733 7.31968C14.6821 7.29691 14.5873 7.29273 14.4945 7.30739C14.4016 7.32205 14.3127 7.35526 14.233 7.40502C11.4742 9.14543 9.13842 11.4795 7.39599 14.237C7.34623 14.3167 7.31303 14.4057 7.29837 14.4985C7.28371 14.5913 7.28789 14.6861 7.31066 14.7773C7.33343 14.8685 7.37432 14.9541 7.4309 15.0292C7.48748 15.1042 7.55859 15.1671 7.63999 15.214L9.88599 16.533C10.0436 16.6246 10.2308 16.6511 10.4076 16.6068C10.5845 16.5626 10.7371 16.4511 10.833 16.296C12.237 14.1021 14.101 12.2394 16.296 10.837C16.451 10.7411 16.5625 10.5885 16.6068 10.4116C16.6511 10.2348 16.6246 10.0476 16.533 9.89002L15.21 7.64902ZM7.90999 21.308L5.39599 20.652C5.30528 20.6274 5.21053 20.6213 5.11741 20.6341C5.02428 20.6468 4.93468 20.6782 4.85396 20.7264C4.77323 20.7746 4.70303 20.8385 4.64754 20.9143C4.59205 20.9902 4.55242 21.0765 4.53099 21.168C3.823 24.3504 3.823 27.6496 4.53099 30.832C4.55231 30.9235 4.59184 31.0098 4.64721 31.0857C4.70258 31.1616 4.77267 31.2256 4.8533 31.2738C4.93392 31.3221 5.02343 31.3536 5.1165 31.3665C5.20956 31.3794 5.30428 31.3735 5.39499 31.349L7.92299 30.691C8.09751 30.6439 8.24702 30.531 8.34022 30.3761C8.43342 30.2212 8.46308 30.0363 8.42299 29.86C8.13992 28.5928 7.99673 27.2984 7.99599 26C7.99593 24.7027 8.13439 23.409 8.40899 22.141C8.44966 21.9645 8.42028 21.779 8.32703 21.6237C8.23379 21.4683 8.08494 21.3552 7.90999 21.308ZM9.88899 35.465L7.64599 36.785C7.56446 36.832 7.49322 36.8949 7.43655 36.97C7.37988 37.0451 7.33893 37.1309 7.31616 37.2222C7.29338 37.3135 7.28924 37.4084 7.30399 37.5013C7.31874 37.5943 7.35207 37.6833 7.40199 37.763C9.14933 40.5143 11.4817 42.8467 14.233 44.594C14.3127 44.6439 14.4017 44.6773 14.4947 44.692C14.5876 44.7068 14.6826 44.7026 14.7738 44.6799C14.8651 44.6571 14.9509 44.6161 15.026 44.5595C15.1011 44.5028 15.164 44.4316 15.211 44.35L16.531 42.107C16.6214 41.9499 16.6474 41.7638 16.6034 41.5879C16.5594 41.412 16.4488 41.26 16.295 41.164C14.1003 39.7592 12.2365 37.895 10.832 35.7C10.736 35.5462 10.584 35.4357 10.4081 35.3916C10.2322 35.3476 10.0461 35.3746 9.88899 35.465ZM41.16 35.7C39.7552 37.8951 37.891 39.7593 35.696 41.164C35.5422 41.26 35.4316 41.412 35.3876 41.5879C35.3436 41.7638 35.3695 41.9499 35.46 42.107L36.78 44.35C36.827 44.4316 36.8899 44.5028 36.965 44.5595C37.0401 44.6161 37.1258 44.6571 37.2171 44.6799C37.3084 44.7026 37.4034 44.7068 37.4963 44.692C37.5892 44.6773 37.6782 44.6439 37.758 44.594C40.5093 42.8467 42.8416 40.5143 44.589 37.763C44.6389 37.6833 44.6722 37.5943 44.687 37.5013C44.7017 37.4084 44.6976 37.3135 44.6748 37.2222C44.6521 37.1309 44.6111 37.0451 44.5544 36.97C44.4978 36.8949 44.4265 36.832 44.345 36.785L42.102 35.465C41.9448 35.3746 41.7587 35.3486 41.5828 35.3926C41.407 35.4367 41.255 35.5472 41.159 35.701M25.996 4.00002C24.3707 3.99798 22.7501 4.17607 21.164 4.53102C21.0725 4.55244 20.9862 4.59208 20.9103 4.64757C20.8344 4.70305 20.7705 4.77325 20.7224 4.85398C20.6742 4.93471 20.6428 5.02431 20.63 5.11743C20.6173 5.21056 20.6234 5.3053 20.648 5.39602L21.304 7.91202C21.3511 8.08696 21.4643 8.23681 21.6196 8.33006C21.775 8.4233 21.9604 8.45268 22.137 8.41202C23.405 8.13775 24.6987 7.99963 25.996 8.00002C27.2971 7.99907 28.5944 8.1399 29.865 8.42002C30.0414 8.46168 30.227 8.43269 30.3823 8.33926C30.5376 8.24583 30.6502 8.09536 30.696 7.92002L31.347 5.39302C31.3713 5.30237 31.3771 5.20776 31.3641 5.11481C31.3512 5.02186 31.3196 4.93247 31.2714 4.85196C31.2231 4.77145 31.1592 4.70146 31.0834 4.64615C31.0076 4.59084 30.9214 4.55135 30.83 4.53002C29.2431 4.17581 27.6219 3.99806 25.996 4.00002Z" fill="${isSelected ? markerColor : '#FFFFFF'}"/>
|
|
166
167
|
</g>
|
|
167
168
|
<defs>
|
|
168
169
|
<filter id="filter0_d_2631_274104" x="6" y="6" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
|
@@ -191,4 +192,4 @@ export class MapMarkerIconHelper {
|
|
|
191
192
|
return markerSvg;
|
|
192
193
|
}
|
|
193
194
|
}
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLW1hcmtlci1pY29uLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC91dGlscy9oZWxwZXJzL21hcC1tYXJrZXItaWNvbi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxRQUFRO0FBQ1IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELGFBQWE7QUFDYixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sT0FBTyxtQkFBbUI7YUFDckIsNEJBQXVCLEdBQUcsQ0FDN0IsVUFBa0IsRUFDbEIsUUFBZ0IsRUFDaEIsYUFBdUIsRUFDdkIsV0FBcUIsRUFDckIsU0FBa0IsRUFDUCxFQUFFO1FBQ2IsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwRCxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFbkIsSUFDSTtZQUNJLG1CQUFtQixDQUFDLFFBQVE7WUFDNUIsbUJBQW1CLENBQUMsTUFBTTtZQUMxQixtQkFBbUIsQ0FBQyxJQUFJO1lBQ3hCLG1CQUFtQixDQUFDLE1BQU07WUFDMUIsbUJBQW1CLENBQUMsT0FBTztTQUM5QixDQUFDLFFBQVEsQ0FBQyxRQUErQixDQUFDO1lBRTNDLFNBQVMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7O1lBRW5ELFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FDaEQsVUFBVSxFQUNWLFFBQVEsRUFDUixhQUFhLEVBQ2IsV0FBVyxDQUNkLENBQUM7UUFFTixhQUFhLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztR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LENBQUMsU0FBUyxDQUFDLENBQUM7UUFFakUsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvbnN0YW50c1xuaW1wb3J0IHsgTWFwT3B0aW9uc0NvbnN0YW50cyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbi8vIEVudW1zXG5pbXBvcnQgeyBNYXBNYXJrZXJTdHJpbmdFbnVtIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuXG4vLyBTdmcgUm91dGVzXG5pbXBvcnQgeyBNYXBTdmdSb3V0ZXMgfSBmcm9tICcuLi9zdmctcm91dGVzJztcblxuZXhwb3J0IGNsYXNzIE1hcE1hcmtlckljb25IZWxwZXIge1xuICAgIHN0YXRpYyBnZXRSb3V0aW5nTWFya2VyRWxlbWVudCA9IChcbiAgICAgICAgc3RvcE51bWJlcjogbnVtYmVyLFxuICAgICAgICBzdG9wVHlwZTogc3RyaW5nLFxuICAgICAgICBpc1N0b3BDaGVja2VkPzogYm9vbGVhbixcbiAgICAgICAgaXNMaWdodE1vZGU/OiBib29sZWFuLFxuICAgICAgICBsYWJlbE5hbWU/OiBzdHJpbmdcbiAgICApOiBIVE1MRWxlbWVudCA9PiB7XG4gICAgICAgIGNvbnN0IG1hcmtlckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgICAgICBsZXQgbWFya2VyU3ZnID0gJyc7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIE1hcE1hcmtlclN0cmluZ0VudW0uREVBREhFQUQsXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5SRVBBSVIsXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5GVUVMLFxuICAgICAgICAgICAgICAgIE1hcE1hcmtlclN0cmluZ0VudW0uVE9XSU5HLFxuICAgICAgICAgICAgICAgIE1hcE1hcmtlclN0cmluZ0VudW0uUEFSS0lORyxcbiAgICAgICAgICAgIF0uaW5jbHVkZXMoc3RvcFR5cGUgYXMgTWFwTWFya2VyU3RyaW5nRW51bSlcbiAgICAgICAgKVxuICAgICAgICAgICAgbWFya2VyU3ZnID0gdGhpcy5nZXRSb3V0aW5nTWFya2VySWNvblN2ZyhzdG9wVHlwZSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIG1hcmtlclN2ZyA9IE1hcE1hcmtlckljb25IZWxwZXIuZ2V0Um91dGluZ01hcmtlckljb24oXG4gICAgICAgICAgICAgICAgc3RvcE51bWJlcixcbiAgICAgICAgICAgICAgICBzdG9wVHlwZSxcbiAgICAgICAgICAgICAgICBpc1N0b3BDaGVja2VkLFxuICAgICAgICAgICAgICAgIGlzTGlnaHRNb2RlXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIG1hcmtlckVsZW1lbnQuaW5uZXJIVE1MID0gbWFya2VyU3ZnO1xuXG4gICAgICAgIGlmIChsYWJlbE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hcmtlckxhYmVsRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgbWFya2VyTGFiZWxFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ21hcmtlci1sYWJlbCcpO1xuICAgICAgICAgICAgbWFya2VyTGFiZWxFbGVtZW50LmlubmVySFRNTCA9IGxhYmVsTmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgbWFya2VyRWxlbWVudC5hcHBlbmRDaGlsZChtYXJrZXJMYWJlbEVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hcmtlckVsZW1lbnQ7XG4gICAgfTtcblxuICAgIHN0YXRpYyBnZXRSb3V0aW5nTWFya2VySWNvbiA9IChcbiAgICAgICAgc3RvcE51bWJlcjogbnVtYmVyLFxuICAgICAgICBzdG9wVHlwZTogc3RyaW5nLFxuICAgICAgICBpc1N0b3BDaGVja2VkPzogYm9vbGVhbixcbiAgICAgICAgaXNMaWdodE1vZGU/OiBib29sZWFuXG4gICAgKTogc3RyaW5nID0+IHtcbiAgICAgICAgaWYgKCFpc1N0b3BDaGVja2VkKSB7XG4gICAgICAgICAgICBjb25zdCBtYXJrZXJTdmcgPSB0aGlzLmdldFJvdXRpbmdNYXJrZXJTdmcoXG4gICAgICAgICAgICAgICAgc3RvcE51bWJlcixcbiAgICAgICAgICAgICAgICBzdG9wVHlwZSxcbiAgICAgICAgICAgICAgICBpc0xpZ2h0TW9kZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuIG1hcmtlclN2ZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNoZWNrZWRNYXJrZXJTdmcgPSB0aGlzLmdldFJvdXRpbmdDaGVja2VkTWFya2VyU3ZnKFxuICAgICAgICAgICAgICAgIHN0b3BUeXBlLFxuICAgICAgICAgICAgICAgIGlzTGlnaHRNb2RlXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm4gY2hlY2tlZE1hcmtlclN2ZztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBzdGF0aWMgZ2V0Um91dGluZ01hcmtlclN2ZyA9IChcbiAgICAgICAgc3RvcE51bWJlcjogbnVtYmVyLFxuICAgICAgICBzdG9wVHlwZTogc3RyaW5nLFxuICAgICAgICBpc0xpZ2h0TW9kZT86IGJvb2xlYW5cbiAgICApOiBzdHJpbmcgPT4ge1xuICAgICAgICBjb25zdCBtYXJrZXJDb2xvciA9IGlzTGlnaHRNb2RlXG4gICAgICAgICAgICA/IE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfTElHSFRfQ09MT1JTW1xuICAgICAgICAgICAgICAgICAgc3RvcFR5cGUgYXMga2V5b2YgdHlwZW9mIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfTElHSFRfQ09MT1JTXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIDogTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9EQVJLX0NPTE9SU1tcbiAgICAgICAgICAgICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0RBUktfQ09MT1JTXG4gICAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgbWFya2VyT3V0bGluZUNvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfT1VUTElORV9DT0xPUlNbXG4gICAgICAgICAgICAgICAgaXNMaWdodE1vZGVcbiAgICAgICAgICAgICAgICAgICAgPyBNYXBNYXJrZXJTdHJpbmdFbnVtLldISVRFXG4gICAgICAgICAgICAgICAgICAgIDogKHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX09VVExJTkVfQ09MT1JTKVxuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBtYXJrZXJEb3RDb2xvciA9XG4gICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0RPVF9DT0xPUlNbXG4gICAgICAgICAgICAgICAgaXNMaWdodE1vZGVcbiAgICAgICAgICAgICAgICAgICAgPyBNYXBNYXJrZXJTdHJpbmdFbnVtLkxJR0hUXG4gICAgICAgICAgICAgICAgICAgIDogTWFwTWFya2VyU3RyaW5nRW51bS5EQVJLXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IG1hcmtlclN2ZyA9IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjMwXCIgaGVpZ2h0PVwiMzNcIiB2aWV3Qm94PVwiMCAwIDMwIDMzXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNVwiIGN5PVwiMjlcIiByPVwiM1wiIGZpbGw9XCIke21hcmtlckNvbG9yfVwiIHN0cm9rZT1cIiR7bWFya2VyRG90Q29sb3J9XCIgc3Ryb2tlLXdpZHRoPVwiMlwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzI0MDYwXzU5MDkwKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjYgMTQuOTczMkMyNS45OTkxIDE2Ljc3MTUgMjUuNTU1NCAxOC41NDIgMjQuNzA4IDIwLjEyODlDMjMuODYwNiAyMS43MTU3IDIyLjYzNTUgMjMuMDcwMiAyMS4xNDA1IDI0LjA3MzJDMjEuMTE2NSAyNC4wOTEyIDIwLjc2MDkgMjQuMzEwMiAyMC42MjA3IDI0LjQwMjJDMTcuMjQ4NSAyNi41NDIyIDE1Ljg5NTQgMjcuOTg3MiAxNS4zNTA1IDI4LjgwMjJDMTUuMjg1OSAyOC44OTkxIDE1LjE4NTQgMjguOTY2NSAxNS4wNzEyIDI4Ljk4OTdDMTQuOTU2OSAyOS4wMTI5IDE0LjgzODEgMjguOTkwMSAxNC43NDA2IDI4LjkyNjJDMTQuNjkxNiAyOC44OTMyIDE0LjY0OTQgMjguODUxMSAxNC42MTY0IDI4LjgwMjJDMTQuMDcxNiAyNy45OTEyIDEyLjcxMzUgMjYuNTQ2MiA5LjM0NjI2IDI0LjQwMjJDOS4xOTMwMiAyNC4zMDcyIDguODUxNSAyNC4wOTEyIDguODI2NDYgMjQuMDczMkM3LjI1NjU2IDIzLjAxMDMgNS45ODg2IDIxLjU2MDEgNS4xNDU3MiAxOS44NjM1QzQuMzAyODUgMTguMTY2OSAzLjkxMzY4IDE2LjI4MTUgNC4wMTYwMyAxNC4zOTA0QzQuMTE4MzcgMTIuNDk5MyA0LjcwODc0IDEwLjY2NjcgNS43Mjk4MSA5LjA3MDdDNi43NTA4OCA3LjQ3NDY2IDguMTY3OTYgNi4xNjkzNiA5Ljg0MzQyIDUuMjgxNTVDMTEuNTE4OSA0LjM5Mzc1IDEzLjM5NTggMy45NTM2MSAxNS4yOTIgNC4wMDM4N0MxNy4xODgxIDQuMDU0MTMgMTkuMDM5IDQuNTkzMSAyMC42NjQ5IDUuNTY4NDJDMjIuMjkwOCA2LjU0Mzc0IDIzLjYzNjUgNy45MjIyOCAyNC41NzEzIDkuNTcwMTdDMjUuNTA2MiAxMS4yMTgxIDI1Ljk5ODMgMTMuMDc5MyAyNiAxNC45NzMyWlwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiR7bWFya2VyT3V0bGluZUNvbG9yfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGN4PVwiMTVcIiBjeT1cIjE1XCIgcj1cIjlcIiBmaWxsPVwiJHttYXJrZXJDb2xvcn1cIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dCB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaWQ9XCJfNFwiIGRhdGEtbmFtZT1cIjRcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTUgMTYpXCIgZmlsbD1cIiNmZmZcIiBmb250LXNpemU9XCIxMVwiIGZvbnQtZmFtaWx5PVwiTW9udHNlcnJhdCwgc2Fucy1zZXJpZlwiIGZvbnQtd2VpZ2h0PVwiNzAwXCIgZG9taW5hbnQtYmFzZWxpbmU9XCJtaWRkbGVcIiB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiIHk9XCIwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRzcGFuPiR7c3RvcE51bWJlciA/PyAwfTwvdHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI0MDYwXzU5MDkwXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMi45OTg1XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIyXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW4yPVwiaGFyZEFscGhhXCIgb3BlcmF0b3I9XCJvdXRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjE1IDBcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjQwNjBfNTkwOTBcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjQwNjBfNTkwOTBcIiByZXN1bHQ9XCJzaGFwZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5gO1xuXG4gICAgICAgIHJldHVybiBtYXJrZXJTdmc7XG4gICAgfTtcblxuICAgIHN0YXRpYyBnZXRSb3V0aW5nQ2hlY2tlZE1hcmtlclN2ZyA9IChcbiAgICAgICAgc3RvcFR5cGU6IHN0cmluZyxcbiAgICAgICAgaXNMaWdodE1vZGU/OiBib29sZWFuXG4gICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoZWNrZWRNYXJrZXJDb2xvciA9IGlzTGlnaHRNb2RlXG4gICAgICAgICAgICA/IE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfTElHSFRfQ09MT1JTW1xuICAgICAgICAgICAgICAgICAgc3RvcFR5cGUgYXMga2V5b2YgdHlwZW9mIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfTElHSFRfQ09MT1JTXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIDogTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9EQVJLX0NPTE9SU1tcbiAgICAgICAgICAgICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0RBUktfQ09MT1JTXG4gICAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgY2hlY2tlZE1hcmtlck91dGxpbmVDb2xvciA9XG4gICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX09VVExJTkVfQ09MT1JTW1xuICAgICAgICAgICAgICAgIGlzTGlnaHRNb2RlXG4gICAgICAgICAgICAgICAgICAgID8gTWFwTWFya2VyU3RyaW5nRW51bS5XSElURVxuICAgICAgICAgICAgICAgICAgICA6IChzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9PVVRMSU5FX0NPTE9SUylcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgY2hlY2tlZE1hcmtlckRvdENvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfRE9UX0NPTE9SU1tcbiAgICAgICAgICAgICAgICBpc0xpZ2h0TW9kZVxuICAgICAgICAgICAgICAgICAgICA/IE1hcE1hcmtlclN0cmluZ0VudW0uTElHSFRcbiAgICAgICAgICAgICAgICAgICAgOiBNYXBNYXJrZXJTdHJpbmdFbnVtLkRBUktcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgY2hlY2tlZE1hcmtlclN2ZyA9IGA8c3ZnIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzM1wiIHZpZXdCb3g9XCIwIDAgMzAgMzNcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1XCIgY3k9XCIyOVwiIHI9XCIzXCIgZmlsbD1cIiR7Y2hlY2tlZE1hcmtlckNvbG9yfVwiIHN0cm9rZT1cIiR7Y2hlY2tlZE1hcmtlckRvdENvbG9yfVwiIHN0cm9rZS13aWR0aD1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzE4MDU1XzM0MjM4KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjYgMTQuOTczMkMyNS45OTkxIDE2Ljc3MTUgMjUuNTU1NCAxOC41NDIgMjQuNzA4IDIwLjEyODlDMjMuODYwNiAyMS43MTU3IDIyLjYzNTUgMjMuMDcwMiAyMS4xNDA1IDI0LjA3MzJDMjEuMTE2NSAyNC4wOTEyIDIwLjc2MDkgMjQuMzEwMiAyMC42MjA3IDI0LjQwMjJDMTcuMjQ4NSAyNi41NDIyIDE1Ljg5NTQgMjcuOTg3MiAxNS4zNTA1IDI4LjgwMjJDMTUuMjg1OSAyOC44OTkxIDE1LjE4NTQgMjguOTY2NSAxNS4wNzEyIDI4Ljk4OTdDMTQuOTU2OSAyOS4wMTI5IDE0LjgzODEgMjguOTkwMSAxNC43NDA2IDI4LjkyNjJDMTQuNjkxNiAyOC44OTMyIDE0LjY0OTQgMjguODUxMSAxNC42MTY0IDI4LjgwMjJDMTQuMDcxNiAyNy45OTEyIDEyLjcxMzUgMjYuNTQ2MiA5LjM0NjI2IDI0LjQwMjJDOS4xOTMwMiAyNC4zMDcyIDguODUxNSAyNC4wOTEyIDguODI2NDYgMjQuMDczMkM3LjI1NjU2IDIzLjAxMDMgNS45ODg2IDIxLjU2MDEgNS4xNDU3MiAxOS44NjM1QzQuMzAyODUgMTguMTY2OSAzLjkxMzY4IDE2LjI4MTUgNC4wMTYwMyAxNC4zOTA0QzQuMTE4MzcgMTIuNDk5MyA0LjcwODc0IDEwLjY2NjcgNS43Mjk4MSA5LjA3MDdDNi43NTA4OCA3LjQ3NDY2IDguMTY3OTYgNi4xNjkzNiA5Ljg0MzQyIDUuMjgxNTVDMTEuNTE4OSA0LjM5Mzc1IDEzLjM5NTggMy45NTM2MSAxNS4yOTIgNC4wMDM4N0MxNy4xODgxIDQuMDU0MTMgMTkuMDM5IDQuNTkzMSAyMC42NjQ5IDUuNTY4NDJDMjIuMjkwOCA2LjU0Mzc0IDIzLjYzNjUgNy45MjIyOCAyNC41NzEzIDkuNTcwMTdDMjUuNTA2MiAxMS4yMTgxIDI1Ljk5ODMgMTMuMDc5MyAyNiAxNC45NzMyWlwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiR7Y2hlY2tlZE1hcmtlck91dGxpbmVDb2xvcn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1XCIgY3k9XCIxNVwiIHI9XCI5XCIgZmlsbD1cIiR7Y2hlY2tlZE1hcmtlckNvbG9yfVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMy4wNDYyIDE5LjA0NzdMOS43MTI5MSAxNS43MTQ0QzkuNjU3MTggMTUuNjU4NyA5LjYxMjk3IDE1LjU5MjUgOS41ODI4IDE1LjUxOTdDOS41NTI2NCAxNS40NDY5IDkuNTM3MTEgMTUuMzY4OSA5LjUzNzExIDE1LjI5MDFDOS41MzcxMSAxNS4yMTEyIDkuNTUyNjQgMTUuMTMzMiA5LjU4MjggMTUuMDYwNEM5LjYxMjk3IDE0Ljk4NzYgOS42NTcxOCAxNC45MjE0IDkuNzEyOTEgMTQuODY1N0wxMC41NjI5IDE0LjAxODRDMTAuNjE4NiAxMy45NjI3IDEwLjY4NDggMTMuOTE4NCAxMC43NTc2IDEzLjg4ODNDMTAuODMwNCAxMy44NTgxIDEwLjkwODQgMTMuODQyNiAxMC45ODcyIDEzLjg0MjZDMTEuMDY2MSAxMy44NDI2IDExLjE0NDEgMTMuODU4MSAxMS4yMTY5IDEzLjg4ODNDMTEuMjg5NyAxMy45MTg0IDExLjM1NTkgMTMuOTYyNyAxMS40MTE2IDE0LjAxODRMMTMuNDcwMiAxNi4wNzcxTDE4LjU4NjkgMTAuOTU3MUMxOC42NDI2IDEwLjkwMTMgMTguNzA4OCAxMC44NTcxIDE4Ljc4MTYgMTAuODI2OUMxOC44NTQ0IDEwLjc5NjggMTguOTMyNCAxMC43ODEyIDE5LjAxMTIgMTAuNzgxMkMxOS4wOTAxIDEwLjc4MTIgMTkuMTY4MSAxMC43OTY4IDE5LjI0MDkgMTAuODI2OUMxOS4zMTM3IDEwLjg1NzEgMTkuMzc5OSAxMC45MDEzIDE5LjQzNTYgMTAuOTU3MUwyMC4yODQyIDExLjgwNTdDMjAuMzQgMTEuODYxNCAyMC4zODQyIDExLjkyNzYgMjAuNDE0NCAxMi4wMDA0QzIwLjQ0NDUgMTIuMDczMiAyMC40NjAxIDEyLjE1MTIgMjAuNDYwMSAxMi4yMzAxQzIwLjQ2MDEgMTIuMzA4OSAyMC40NDQ1IDEyLjM4NjkgMjAuNDE0NCAxMi40NTk3QzIwLjM4NDIgMTIuNTMyNSAyMC4zNCAxMi41OTg3IDIwLjI4NDIgMTIuNjU0NEwxMy44OTQ5IDE5LjA0NTFDMTMuODM5MiAxOS4xMDA4IDEzLjc3MyAxOS4xNDUgMTMuNzAwMiAxOS4xNzUyQzEzLjYyNzQgMTkuMjA1MyAxMy41NDk0IDE5LjIyMDkgMTMuNDcwNiAxOS4yMjA5QzEzLjM5MTggMTkuMjIwOSAxMy4zMTM3IDE5LjIwNTMgMTMuMjQwOSAxOS4xNzUyQzEzLjE2ODEgMTkuMTQ1IDEzLjEwMiAxOS4xMDA4IDEzLjA0NjIgMTkuMDQ1MVYxOS4wNDc3WlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8xODA1NV8zNDIzOFwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjMwXCIgaGVpZ2h0PVwiMzIuOTk4NVwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW4yPVwiaGFyZEFscGhhXCIgb3BlcmF0b3I9XCJvdXRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4xNSAwXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18xODA1NV8zNDIzOFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMTgwNTVfMzQyMzhcIiByZXN1bHQ9XCJzaGFwZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+YDtcblxuICAgICAgICByZXR1cm4gY2hlY2tlZE1hcmtlclN2ZztcbiAgICB9O1xuXG4gICAgc3RhdGljIGdldFJvdXRpbmdNYXJrZXJJY29uU3ZnID0gKHN0b3BUeXBlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgICAgICBjb25zdCBtYXJrZXJTdmdQYXRoID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfSUNPTl9QQVRIU1tcbiAgICAgICAgICAgICAgICBzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9JQ09OX1BBVEhTXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IGNoZWNrZWRNYXJrZXJDb2xvciA9XG4gICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0xJR0hUX0NPTE9SU1tcbiAgICAgICAgICAgICAgICBzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9MSUdIVF9DT0xPUlNcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgY2hlY2tlZE1hcmtlck91dGxpbmVDb2xvciA9XG4gICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX09VVExJTkVfQ09MT1JTW1xuICAgICAgICAgICAgICAgIE1hcE1hcmtlclN0cmluZ0VudW0uV0hJVEVcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgY2hlY2tlZE1hcmtlckRvdENvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfRE9UX0NPTE9SU1tcbiAgICAgICAgICAgICAgICBNYXBNYXJrZXJTdHJpbmdFbnVtLkxJR0hUXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IHJvdXRpbmdNYXJrZXJTdmcgPSBgPHN2ZyB3aWR0aD1cIjMwXCIgaGVpZ2h0PVwiMzNcIiB2aWV3Qm94PVwiMCAwIDMwIDMzXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNVwiIGN5PVwiMjlcIiByPVwiM1wiIGZpbGw9XCIke2NoZWNrZWRNYXJrZXJDb2xvcn1cIiBzdHJva2U9XCIke2NoZWNrZWRNYXJrZXJEb3RDb2xvcn1cIiBzdHJva2Utd2lkdGg9XCIyXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF85MjY4Xzc5ODM0KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjYgMTQuOTczMkMyNS45OTkxIDE2Ljc3MTUgMjUuNTU1NCAxOC41NDIgMjQuNzA4IDIwLjEyODlDMjMuODYwNiAyMS43MTU3IDIyLjYzNTUgMjMuMDcwMiAyMS4xNDA1IDI0LjA3MzJDMjEuMTE2NSAyNC4wOTEyIDIwLjc2MDkgMjQuMzEwMiAyMC42MjA3IDI0LjQwMjJDMTcuMjQ4NSAyNi41NDIyIDE1Ljg5NTQgMjcuOTg3MiAxNS4zNTA1IDI4LjgwMjJDMTUuMjg1OSAyOC44OTkxIDE1LjE4NTQgMjguOTY2NSAxNS4wNzEyIDI4Ljk4OTdDMTQuOTU2OSAyOS4wMTI5IDE0LjgzODEgMjguOTkwMSAxNC43NDA2IDI4LjkyNjJDMTQuNjkxNiAyOC44OTMyIDE0LjY0OTQgMjguODUxMSAxNC42MTY0IDI4LjgwMjJDMTQuMDcxNiAyNy45OTEyIDEyLjcxMzUgMjYuNTQ2MiA5LjM0NjI2IDI0LjQwMjJDOS4xOTMwMiAyNC4zMDcyIDguODUxNSAyNC4wOTEyIDguODI2NDYgMjQuMDczMkM3LjI1NjU2IDIzLjAxMDMgNS45ODg2IDIxLjU2MDEgNS4xNDU3MiAxOS44NjM1QzQuMzAyODUgMTguMTY2OSAzLjkxMzY4IDE2LjI4MTUgNC4wMTYwMyAxNC4zOTA0QzQuMTE4MzcgMTIuNDk5MyA0LjcwODc0IDEwLjY2NjcgNS43Mjk4MSA5LjA3MDdDNi43NTA4OCA3LjQ3NDY2IDguMTY3OTYgNi4xNjkzNiA5Ljg0MzQyIDUuMjgxNTVDMTEuNTE4OSA0LjM5Mzc1IDEzLjM5NTggMy45NTM2MSAxNS4yOTIgNC4wMDM4N0MxNy4xODgxIDQuMDU0MTMgMTkuMDM5IDQuNTkzMSAyMC42NjQ5IDUuNTY4NDJDMjIuMjkwOCA2LjU0Mzc0IDIzLjYzNjUgNy45MjIyOCAyNC41NzEzIDkuNTcwMTdDMjUuNTA2MiAxMS4yMTgxIDI1Ljk5ODMgMTMuMDc5MyAyNiAxNC45NzMyWlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjE1XCIgcj1cIjlcIiBmaWxsPVwiJHtjaGVja2VkTWFya2VyQ29sb3J9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiJHttYXJrZXJTdmdQYXRofVwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF85MjY4Xzc5ODM0XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMi45OTg1XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMlwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjE1IDBcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzkyNjhfNzk4MzRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzkyNjhfNzk4MzRcIiByZXN1bHQ9XCJzaGFwZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+YDtcblxuICAgICAgICByZXR1cm4gcm91dGluZ01hcmtlclN2ZztcbiAgICB9O1xuXG4gICAgc3RhdGljIGdldE1hcE1hcmtlcihpc0Zhdm9yaXRlPzogYm9vbGVhbiwgaXNDbG9zZWQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG1hcmtlckljb25Sb3V0ZSA9IE1hcFN2Z1JvdXRlcy5kZWZhdWx0TWFya2VySWNvbjtcblxuICAgICAgICBpZiAoaXNDbG9zZWQpIG1hcmtlckljb25Sb3V0ZSA9IE1hcFN2Z1JvdXRlcy5jbG9zZWRNYXJrZXJJY29uO1xuICAgICAgICBlbHNlIGlmIChpc0Zhdm9yaXRlKSBtYXJrZXJJY29uUm91dGUgPSBNYXBTdmdSb3V0ZXMuZmF2b3JpdGVNYXJrZXJJY29uO1xuXG4gICAgICAgIHJldHVybiBtYXJrZXJJY29uUm91dGU7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldENsdXN0ZXJNYXJrZXIoY291bnQ6IG51bWJlciwgaXNTZWxlY3RlZD86IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBtYXJrZXJTdmcgPSBgPHN2ZyBjbGFzcz1cIm1hcmtlci1zdmdcIiB3aWR0aD1cIjUyXCIgaGVpZ2h0PVwiNTJcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzI2MzFfMjc0MTA0KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjE0XCIgZmlsbD1cIiNGQUIxNUNcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIl80XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbmFtZT1cIjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDI2IDI3KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI2ZmZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU9XCIxNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseT1cIk1vbnRzZXJyYXQsIHNhbnMtc2VyaWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ9XCI3MDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taW5hbnQtYmFzZWxpbmU9XCJtaWRkbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHNwYW4+ICR7Y291bnR9IDwvdHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgb3BhY2l0eT1cIjAuN1wiIGZpbHRlcj1cInVybCgjZmlsdGVyMV9kXzI2MzFfMjc0MTA0KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zNi43ODEgNy42NTAwMkwzNS40NjEgOS44OTMwMkMzNS4zNzA1IDEwLjA1MDIgMzUuMzQ0NiAxMC4yMzYzIDM1LjM4ODYgMTAuNDEyMkMzNS40MzI2IDEwLjU4ODEgMzUuNTQzMiAxMC43NCAzNS42OTcgMTAuODM2QzM3Ljg5MTcgMTIuMjQwOSAzOS43NTU1IDE0LjEwNTEgNDEuMTYgMTYuM0M0MS4yNTYgMTYuNDUzOCA0MS40MDggMTYuNTY0NCA0MS41ODM4IDE2LjYwODRDNDEuNzU5NyAxNi42NTI0IDQxLjk0NTggMTYuNjI2NSA0Mi4xMDMgMTYuNTM2TDQ0LjM0NiAxNS4yMTZDNDQuNDI3NSAxNS4xNjkxIDQ0LjQ5ODggMTUuMTA2MSA0NC41NTU0IDE1LjAzMUM0NC42MTIxIDE0Ljk1NTkgNDQuNjUzIDE0Ljg3MDIgNDQuNjc1OCAxNC43Nzg5QzQ0LjY5ODYgMTQuNjg3NiA0NC43MDI3IDE0LjU5MjYgNDQuNjg4IDE0LjQ5OTdDNDQuNjczMiAxNC40MDY4IDQ0LjYzOTkgMTQuMzE3OCA0NC41OSAxNC4yMzhDNDIuODQyNiAxMS40ODY3IDQwLjUxMDMgOS4xNTQzNiAzNy43NTkgNy40MDcwMkMzNy42NzkyIDcuMzU3MDkgMzcuNTkwMiA3LjMyMzc2IDM3LjQ5NzMgNy4zMDkwMUMzNy40MDQ0IDcuMjk0MjcgMzcuMzA5NCA3LjI5ODQgMzcuMjE4MSA3LjMyMTE4QzM3LjEyNjggNy4zNDM5NiAzNy4wNDExIDcuMzg0OTEgMzYuOTY2IDcuNDQxNThDMzYuODkwOSA3LjQ5ODI1IDM2LjgyNzkgNy41Njg0OCAzNi43ODEgNy42NTAwMlpNNDYuNjAxIDIwLjY1MUw0NC4wNzMgMjEuMzA5QzQzLjg5ODUgMjEuMzU2MiA0My43NDkgMjEuNDY5IDQzLjY1NTggMjEuNjIzOUM0My41NjI2IDIxLjc3ODggNDMuNTMyOSAyMS45NjM3IDQzLjU3MyAyMi4xNEM0NC4xMzQzIDI0LjY4MjcgNDQuMTM0MyAyNy4zMTczIDQzLjU3MyAyOS44NkM0My41MzI5IDMwLjAzNjMgNDMuNTYyNiAzMC4yMjEyIDQzLjY1NTggMzAuMzc2MUM0My43NDkgMzAuNTMxIDQzLjg5ODUgMzAuNjQzOSA0NC4wNzMgMzAuNjkxTDQ2LjYwMSAzMS4zNDlDNDYuNjkxNyAzMS4zNzM1IDQ2Ljc4NjQgMzEuMzc5NCA0Ni44Nzk1IDMxLjM2NjVDNDYuOTcyNSAzMS4zNTM2IDQ3LjA2MjEgMzEuMzIyMSA0Ny4xNDI3IDMxLjI3MzhDNDcuMjIzMyAzMS4yMjU2IDQ3LjI5MzQgMzEuMTYxNiA0Ny4zNDg4IDMxLjA4NTdDNDcuNDA0MSAzMS4wMDk4IDQ3LjQ0MzcgMzAuOTIzNSA0Ny40NjUgMzAuODMyQzQ4LjE3MyAyNy42NDk2IDQ4LjE3MyAyNC4zNTA0IDQ3LjQ2NSAyMS4xNjhDNDcuNDQzNyAyMS4wNzY1IDQ3LjQwNDEgMjAuOTkwMiA0Ny4zNDg4IDIwLjkxNDNDNDcuMjkzNCAyMC44Mzg0IDQ3LjIyMzMgMjAuNzc0NCA0Ny4xNDI3IDIwLjcyNjJDNDcuMDYyMSAyMC42NzggNDYuOTcyNSAyMC42NDY0IDQ2Ljg3OTUgMjAuNjMzNUM0Ni43ODY0IDIwLjYyMDYgNDYuNjkxNyAyMC42MjY2IDQ2LjYwMSAyMC42NTFaTTMwLjY5NiA0NC4wNzlDMzAuNjUwMiA0My45MDM3IDMwLjUzNzYgNDMuNzUzMiAzMC4zODIzIDQzLjY1OThDMzAuMjI3IDQzLjU2NjMgMzAuMDQxNCA0My41Mzc0IDI5Ljg2NSA0My41NzlDMjcuMzE5MiA0NC4xMzk3IDI0LjY4MTggNDQuMTM5NyAyMi4xMzYgNDMuNTc5QzIxLjk1OTcgNDMuNTM4OSAyMS43NzQ4IDQzLjU2ODYgMjEuNjE5OSA0My42NjE4QzIxLjQ2NSA0My43NTUgMjEuMzUyMSA0My45MDQ1IDIxLjMwNSA0NC4wNzlMMjAuNjQ3IDQ2LjZDMjAuNjIyNSA0Ni42OTA3IDIwLjYxNjYgNDYuNzg1NCAyMC42Mjk1IDQ2Ljg3ODVDMjAuNjQyNCA0Ni45NzE2IDIwLjY3MzkgNDcuMDYxMSAyMC43MjIyIDQ3LjE0MTdDMjAuNzcwNCA0Ny4yMjIzIDIwLjgzNDQgNDcuMjkyNCAyMC45MTAzIDQ3LjM0NzhDMjAuOTg2MiA0Ny40MDMyIDIxLjA3MjUgNDcuNDQyNyAyMS4xNjQgNDcuNDY0QzI0LjM0NzEgNDguMTcyIDI3LjY0NjkgNDguMTcyIDMwLjgzIDQ3LjQ2NEMzMC45MjE0IDQ3LjQ0MjcgMzEuMDA3NiA0Ny40MDMyIDMxLjA4MzQgNDcuMzQ3OUMzMS4xNTkyIDQ3LjI5MjYgMzEuMjIzMSA0Ny4yMjI2IDMxLjI3MTQgNDcuMTQyMUMzMS4zMTk2IDQ3LjA2MTYgMzEuMzUxMiA0Ni45NzIyIDMxLjM2NDEgNDYuODc5MkMzMS4zNzcxIDQ2Ljc4NjMgMzEuMzcxMyA0Ni42OTE3IDMxLjM0NyA0Ni42MDFMMzAuNjk2IDQ0LjA3OVpNMTUuMjEgNy42NDkwMkMxNS4xNjMgNy41Njc2MiAxNS4xMDAyIDcuNDk2NTEgMTUuMDI1MSA3LjQzOTkzQzE0Ljk1MDEgNy4zODMzNSAxNC44NjQ0IDcuMzQyNDUgMTQuNzczMyA3LjMxOTY4QzE0LjY4MjEgNy4yOTY5MSAxNC41ODczIDcuMjkyNzMgMTQuNDk0NSA3LjMwNzM5QzE0LjQwMTYgNy4zMjIwNSAxNC4zMTI3IDcuMzU1MjYgMTQuMjMzIDcuNDA1MDJDMTEuNDc0MiA5LjE0NTQzIDkuMTM4NDIgMTEuNDc5NSA3LjM5NTk5IDE0LjIzN0M3LjM0NjIzIDE0LjMxNjcgNy4zMTMwMyAxNC40MDU3IDcuMjk4MzcgMTQuNDk4NUM3LjI4MzcxIDE0LjU5MTMgNy4yODc4OSAxNC42ODYxIDcuMzEwNjYgMTQuNzc3M0M3LjMzMzQzIDE0Ljg2ODUgNy4zNzQzMiAxNC45NTQxIDcuNDMwOSAxNS4wMjkyQzcuNDg3NDggMTUuMTA0MiA3LjU1ODU5IDE1LjE2NzEgNy42Mzk5OSAxNS4yMTRMOS44ODU5OSAxNi41MzNDMTAuMDQzNiAxNi42MjQ2IDEwLjIzMDggMTYuNjUxMSAxMC40MDc2IDE2LjYwNjhDMTAuNTg0NSAxNi41NjI2IDEwLjczNzEgMTYuNDUxMSAxMC44MzMgMTYuMjk2QzEyLjIzNyAxNC4xMDIxIDE0LjEwMSAxMi4yMzk0IDE2LjI5NiAxMC44MzdDMTYuNDUxIDEwLjc0MTEgMTYuNTYyNSAxMC41ODg1IDE2LjYwNjggMTAuNDExNkMxNi42NTExIDEwLjIzNDggMTYuNjI0NiAxMC4wNDc2IDE2LjUzMyA5Ljg5MDAyTDE1LjIxIDcuNjQ5MDJaTTcuOTA5OTkgMjEuMzA4TDUuMzk1OTkgMjAuNjUyQzUuMzA1MjggMjAuNjI3NCA1LjIxMDUzIDIwLjYyMTMgNS4xMTc0MSAyMC42MzQxQzUuMDI0MjggMjAuNjQ2OCA0LjkzNDY4IDIwLjY3ODIgNC44NTM5NiAyMC43MjY0QzQuNzczMjMgMjAuNzc0NiA0LjcwMzAzIDIwLjgzODUgNC42NDc1NCAyMC45MTQzQzQuNTkyMDUgMjAuOTkwMiA0LjU1MjQyIDIxLjA3NjUgNC41MzA5OSAyMS4xNjhDMy44MjMgMjQuMzUwNCAzLjgyMyAyNy42NDk2IDQuNTMwOTkgMzAuODMyQzQuNTUyMzEgMzAuOTIzNSA0LjU5MTg0IDMxLjAwOTggNC42NDcyMSAzMS4wODU3QzQuNzAyNTggMzEuMTYxNiA0Ljc3MjY3IDMxLjIyNTYgNC44NTMzIDMxLjI3MzhDNC45MzM5MiAzMS4zMjIxIDUuMDIzNDMgMzEuMzUzNiA1LjExNjUgMzEuMzY2NUM1LjIwOTU2IDMxLjM3OTQgNS4zMDQyOCAzMS4zNzM1IDUuMzk0OTkgMzEuMzQ5TDcuOTIyOTkgMzAuNjkxQzguMDk3NTEgMzAuNjQzOSA4LjI0NzAyIDMwLjUzMSA4LjM0MDIyIDMwLjM3NjFDOC40MzM0MiAzMC4yMjEyIDguNDYzMDggMzAuMDM2MyA4LjQyMjk5IDI5Ljg2QzguMTM5OTIgMjguNTkyOCA3Ljk5NjczIDI3LjI5ODQgNy45OTU5OSAyNkM3Ljk5NTkzIDI0LjcwMjcgOC4xMzQzOSAyMy40MDkgOC40MDg5OSAyMi4xNDFDOC40NDk2NiAyMS45NjQ1IDguNDIwMjggMjEuNzc5IDguMzI3MDMgMjEuNjIzN0M4LjIzMzc5IDIxLjQ2ODMgOC4wODQ5NCAyMS4zNTUyIDcuOTA5OTkgMjEuMzA4Wk05Ljg4ODk5IDM1LjQ2NUw3LjY0NTk5IDM2Ljc4NUM3LjU2NDQ2IDM2LjgzMiA3LjQ5MzIyIDM2Ljg5NDkgNy40MzY1NSAzNi45N0M3LjM3OTg4IDM3LjA0NTEgNy4zMzg5MyAzNy4xMzA5IDcuMzE2MTYgMzcuMjIyMkM3LjI5MzM4IDM3LjMxMzUgNy4yODkyNCAzNy40MDg0IDcuMzAzOTkgMzcuNTAxM0M3LjMxODc0IDM3LjU5NDMgNy4zNTIwNyAzNy42ODMzIDcuNDAxOTkgMzcuNzYzQzkuMTQ5MzMgNDAuNTE0MyAxMS40ODE3IDQyLjg0NjcgMTQuMjMzIDQ0LjU5NEMxNC4zMTI3IDQ0LjY0MzkgMTQuNDAxNyA0NC42NzczIDE0LjQ5NDcgNDQuNjkyQzE0LjU4NzYgNDQuNzA2OCAxNC42ODI2IDQ0LjcwMjYgMTQuNzczOCA0NC42Nzk5QzE0Ljg2NTEgNDQuNjU3MSAxNC45NTA5IDQ0LjYxNjEgMTUuMDI2IDQ0LjU1OTVDMTUuMTAxMSA0NC41MDI4IDE1LjE2NCA0NC40MzE2IDE1LjIxMSA0NC4zNUwxNi41MzEgNDIuMTA3QzE2LjYyMTQgNDEuOTQ5OSAxNi42NDc0IDQxLjc2MzggMTYuNjAzNCA0MS41ODc5QzE2LjU1OTQgNDEuNDEyIDE2LjQ0ODggNDEuMjYgMTYuMjk1IDQxLjE2NEMxNC4xMDAzIDM5Ljc1OTIgMTIuMjM2NSAzNy44OTUgMTAuODMyIDM1LjdDMTAuNzM2IDM1LjU0NjIgMTAuNTg0IDM1LjQzNTcgMTAuNDA4MSAzNS4zOTE2QzEwLjIzMjIgMzUuMzQ3NiAxMC4wNDYxIDM1LjM3NDYgOS44ODg5OSAzNS40NjVaTTQxLjE2IDM1LjdDMzkuNzU1MiAzNy44OTUxIDM3Ljg5MSAzOS43NTkzIDM1LjY5NiA0MS4xNjRDMzUuNTQyMiA0MS4yNiAzNS40MzE2IDQxLjQxMiAzNS4zODc2IDQxLjU4NzlDMzUuMzQzNiA0MS43NjM4IDM1LjM2OTUgNDEuOTQ5OSAzNS40NiA0Mi4xMDdMMzYuNzggNDQuMzVDMzYuODI3IDQ0LjQzMTYgMzYuODg5OSA0NC41MDI4IDM2Ljk2NSA0NC41NTk1QzM3LjA0MDEgNDQuNjE2MSAzNy4xMjU4IDQ0LjY1NzEgMzcuMjE3MSA0NC42Nzk5QzM3LjMwODQgNDQuNzAyNiAzNy40MDM0IDQ0LjcwNjggMzcuNDk2MyA0NC42OTJDMzcuNTg5MiA0NC42NzczIDM3LjY3ODIgNDQuNjQzOSAzNy43NTggNDQuNTk0QzQwLjUwOTMgNDIuODQ2NyA0Mi44NDE2IDQwLjUxNDMgNDQuNTg5IDM3Ljc2M0M0NC42Mzg5IDM3LjY4MzMgNDQuNjcyMiAzNy41OTQzIDQ0LjY4NyAzNy41MDEzQzQ0LjcwMTcgMzcuNDA4NCA0NC42OTc2IDM3LjMxMzUgNDQuNjc0OCAzNy4yMjIyQzQ0LjY1MjEgMzcuMTMwOSA0NC42MTExIDM3LjA0NTEgNDQuNTU0NCAzNi45N0M0NC40OTc4IDM2Ljg5NDkgNDQuNDI2NSAzNi44MzIgNDQuMzQ1IDM2Ljc4NUw0Mi4xMDIgMzUuNDY1QzQxLjk0NDggMzUuMzc0NiA0MS43NTg3IDM1LjM0ODYgNDEuNTgyOCAzNS4zOTI2QzQxLjQwNyAzNS40MzY3IDQxLjI1NSAzNS41NDcyIDQxLjE1OSAzNS43MDFNMjUuOTk2IDQuMDAwMDJDMjQuMzcwNyAzLjk5Nzk4IDIyLjc1MDEgNC4xNzYwNyAyMS4xNjQgNC41MzEwMkMyMS4wNzI1IDQuNTUyNDQgMjAuOTg2MiA0LjU5MjA4IDIwLjkxMDMgNC42NDc1N0MyMC44MzQ0IDQuNzAzMDUgMjAuNzcwNSA0Ljc3MzI1IDIwLjcyMjQgNC44NTM5OEMyMC42NzQyIDQuOTM0NzEgMjAuNjQyOCA1LjAyNDMxIDIwLjYzIDUuMTE3NDNDMjAuNjE3MyA1LjIxMDU2IDIwLjYyMzQgNS4zMDUzIDIwLjY0OCA1LjM5NjAyTDIxLjMwNCA3LjkxMjAyQzIxLjM1MTEgOC4wODY5NiAyMS40NjQzIDguMjM2ODEgMjEuNjE5NiA4LjMzMDA2QzIxLjc3NSA4LjQyMzMgMjEuOTYwNCA4LjQ1MjY4IDIyLjEzNyA4LjQxMjAyQzIzLjQwNSA4LjEzNzc1IDI0LjY5ODcgNy45OTk2MyAyNS45OTYgOC4wMDAwMkMyNy4yOTcxIDcuOTk5MDcgMjguNTk0NCA4LjEzOTkgMjkuODY1IDguNDIwMDJDMzAuMDQxNCA4LjQ2MTY4IDMwLjIyNyA4LjQzMjY5IDMwLjM4MjMgOC4zMzkyNkMzMC41Mzc2IDguMjQ1ODMgMzAuNjUwMiA4LjA5NTM2IDMwLjY5NiA3LjkyMDAyTDMxLjM0NyA1LjM5MzAyQzMxLjM3MTMgNS4zMDIzNyAzMS4zNzcxIDUuMjA3NzYgMzEuMzY0MSA1LjExNDgxQzMxLjM1MTIgNS4wMjE4NiAzMS4zMTk2IDQuOTMyNDcgMzEuMjcxNCA0Ljg1MTk2QzMxLjIyMzEgNC43NzE0NSAzMS4xNTkyIDQuNzAxNDYgMzEuMDgzNCA0LjY0NjE1QzMxLjAwNzYgNC41OTA4NCAzMC45MjE0IDQuNTUxMzUgMzAuODMgNC41MzAwMkMyOS4yNDMxIDQuMTc1ODEgMjcuNjIxOSAzLjk5ODA2IDI1Ljk5NiA0LjAwMDAyWlwiIGZpbGw9XCIke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQgPyAnI0ZBQjE1QycgOiAnI0ZGRkZGRidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI2MzFfMjc0MTA0XCIgeD1cIjZcIiB5PVwiNlwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIyXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4xNSAwXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjYzMV8yNzQxMDRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNjMxXzI3NDEwNFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMV9kXzI2MzFfMjc0MTA0XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNTEuOTk2MVwiIGhlaWdodD1cIjUxLjk5NVwiIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIyXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCIgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4xNSAwXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjYzMV8yNzQxMDRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNjMxXzI3NDEwNFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPmA7XG5cbiAgICAgICAgY29uc3QgbWFya2VySWNvblJvdXRlID1cbiAgICAgICAgICAgICdkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtODtiYXNlNjQsJyArIGJ0b2EobWFya2VyU3ZnKTtcblxuICAgICAgICByZXR1cm4gbWFya2VyU3ZnO1xuICAgIH1cbn1cbiJdfQ==
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLW1hcmtlci1pY29uLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLW1hcC91dGlscy9oZWxwZXJzL21hcC1tYXJrZXItaWNvbi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxRQUFRO0FBQ1IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELGFBQWE7QUFDYixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sT0FBTyxtQkFBbUI7YUFDckIsNEJBQXVCLEdBQUcsQ0FDN0IsVUFBa0IsRUFDbEIsUUFBZ0IsRUFDaEIsYUFBdUIsRUFDdkIsV0FBcUIsRUFDckIsU0FBa0IsRUFDUCxFQUFFO1FBQ2IsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwRCxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFbkIsSUFDSTtZQUNJLG1CQUFtQixDQUFDLFFBQVE7WUFDNUIsbUJBQW1CLENBQUMsTUFBTTtZQUMxQixtQkFBbUIsQ0FBQyxJQUFJO1lBQ3hCLG1CQUFtQixDQUFDLE1BQU07WUFDMUIsbUJBQW1CLENBQUMsT0FBTztTQUM5QixDQUFDLFFBQVEsQ0FBQyxRQUErQixDQUFDO1lBRTNDLFNBQVMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7O1lBRW5ELFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FDaEQsVUFBVSxFQUNWLFFBQVEsRUFDUixhQUFhLEVBQ2IsV0FBVyxDQUNkLENBQUM7UUFFTixhQUFhLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztR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LENBQUMsQ0FBQyxDQUFDLFNBQy9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0JBd0JDLENBQUM7UUFFeEIsTUFBTSxlQUFlLEdBQ2pCLDBDQUEwQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVqRSxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29uc3RhbnRzXG5pbXBvcnQgeyBNYXBPcHRpb25zQ29uc3RhbnRzIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuLy8gRW51bXNcbmltcG9ydCB7IE1hcE1hcmtlclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5cbi8vIFN2ZyBSb3V0ZXNcbmltcG9ydCB7IE1hcFN2Z1JvdXRlcyB9IGZyb20gJy4uL3N2Zy1yb3V0ZXMnO1xuXG5leHBvcnQgY2xhc3MgTWFwTWFya2VySWNvbkhlbHBlciB7XG4gICAgc3RhdGljIGdldFJvdXRpbmdNYXJrZXJFbGVtZW50ID0gKFxuICAgICAgICBzdG9wTnVtYmVyOiBudW1iZXIsXG4gICAgICAgIHN0b3BUeXBlOiBzdHJpbmcsXG4gICAgICAgIGlzU3RvcENoZWNrZWQ/OiBib29sZWFuLFxuICAgICAgICBpc0xpZ2h0TW9kZT86IGJvb2xlYW4sXG4gICAgICAgIGxhYmVsTmFtZT86IHN0cmluZ1xuICAgICk6IEhUTUxFbGVtZW50ID0+IHtcbiAgICAgICAgY29uc3QgbWFya2VyRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgIGxldCBtYXJrZXJTdmcgPSAnJztcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5ERUFESEVBRCxcbiAgICAgICAgICAgICAgICBNYXBNYXJrZXJTdHJpbmdFbnVtLlJFUEFJUixcbiAgICAgICAgICAgICAgICBNYXBNYXJrZXJTdHJpbmdFbnVtLkZVRUwsXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5UT1dJTkcsXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5QQVJLSU5HLFxuICAgICAgICAgICAgXS5pbmNsdWRlcyhzdG9wVHlwZSBhcyBNYXBNYXJrZXJTdHJpbmdFbnVtKVxuICAgICAgICApXG4gICAgICAgICAgICBtYXJrZXJTdmcgPSB0aGlzLmdldFJvdXRpbmdNYXJrZXJJY29uU3ZnKHN0b3BUeXBlKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgbWFya2VyU3ZnID0gTWFwTWFya2VySWNvbkhlbHBlci5nZXRSb3V0aW5nTWFya2VySWNvbihcbiAgICAgICAgICAgICAgICBzdG9wTnVtYmVyLFxuICAgICAgICAgICAgICAgIHN0b3BUeXBlLFxuICAgICAgICAgICAgICAgIGlzU3RvcENoZWNrZWQsXG4gICAgICAgICAgICAgICAgaXNMaWdodE1vZGVcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgbWFya2VyRWxlbWVudC5pbm5lckhUTUwgPSBtYXJrZXJTdmc7XG5cbiAgICAgICAgaWYgKGxhYmVsTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgbWFya2VyTGFiZWxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBtYXJrZXJMYWJlbEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbWFya2VyLWxhYmVsJyk7XG4gICAgICAgICAgICBtYXJrZXJMYWJlbEVsZW1lbnQuaW5uZXJIVE1MID0gbGFiZWxOYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICBtYXJrZXJFbGVtZW50LmFwcGVuZENoaWxkKG1hcmtlckxhYmVsRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWFya2VyRWxlbWVudDtcbiAgICB9O1xuXG4gICAgc3RhdGljIGdldFJvdXRpbmdNYXJrZXJJY29uID0gKFxuICAgICAgICBzdG9wTnVtYmVyOiBudW1iZXIsXG4gICAgICAgIHN0b3BUeXBlOiBzdHJpbmcsXG4gICAgICAgIGlzU3RvcENoZWNrZWQ/OiBib29sZWFuLFxuICAgICAgICBpc0xpZ2h0TW9kZT86IGJvb2xlYW5cbiAgICApOiBzdHJpbmcgPT4ge1xuICAgICAgICBpZiAoIWlzU3RvcENoZWNrZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hcmtlclN2ZyA9IHRoaXMuZ2V0Um91dGluZ01hcmtlclN2ZyhcbiAgICAgICAgICAgICAgICBzdG9wTnVtYmVyLFxuICAgICAgICAgICAgICAgIHN0b3BUeXBlLFxuICAgICAgICAgICAgICAgIGlzTGlnaHRNb2RlXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm4gbWFya2VyU3ZnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY2hlY2tlZE1hcmtlclN2ZyA9IHRoaXMuZ2V0Um91dGluZ0NoZWNrZWRNYXJrZXJTdmcoXG4gICAgICAgICAgICAgICAgc3RvcFR5cGUsXG4gICAgICAgICAgICAgICAgaXNMaWdodE1vZGVcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJldHVybiBjaGVja2VkTWFya2VyU3ZnO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHN0YXRpYyBnZXRSb3V0aW5nTWFya2VyU3ZnID0gKFxuICAgICAgICBzdG9wTnVtYmVyOiBudW1iZXIsXG4gICAgICAgIHN0b3BUeXBlOiBzdHJpbmcsXG4gICAgICAgIGlzTGlnaHRNb2RlPzogYm9vbGVhblxuICAgICk6IHN0cmluZyA9PiB7XG4gICAgICAgIGNvbnN0IG1hcmtlckNvbG9yID0gaXNMaWdodE1vZGVcbiAgICAgICAgICAgID8gTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9MSUdIVF9DT0xPUlNbXG4gICAgICAgICAgICAgICAgICBzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9MSUdIVF9DT0xPUlNcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0RBUktfQ09MT1JTW1xuICAgICAgICAgICAgICAgICAgc3RvcFR5cGUgYXMga2V5b2YgdHlwZW9mIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfREFSS19DT0xPUlNcbiAgICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBtYXJrZXJPdXRsaW5lQ29sb3IgPVxuICAgICAgICAgICAgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9PVVRMSU5FX0NPTE9SU1tcbiAgICAgICAgICAgICAgICBpc0xpZ2h0TW9kZVxuICAgICAgICAgICAgICAgICAgICA/IE1hcE1hcmtlclN0cmluZ0VudW0uV0hJVEVcbiAgICAgICAgICAgICAgICAgICAgOiAoc3RvcFR5cGUgYXMga2V5b2YgdHlwZW9mIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfT1VUTElORV9DT0xPUlMpXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IG1hcmtlckRvdENvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfRE9UX0NPTE9SU1tcbiAgICAgICAgICAgICAgICBpc0xpZ2h0TW9kZVxuICAgICAgICAgICAgICAgICAgICA/IE1hcE1hcmtlclN0cmluZ0VudW0uTElHSFRcbiAgICAgICAgICAgICAgICAgICAgOiBNYXBNYXJrZXJTdHJpbmdFbnVtLkRBUktcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgbWFya2VyU3ZnID0gYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzM1wiIHZpZXdCb3g9XCIwIDAgMzAgMzNcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1XCIgY3k9XCIyOVwiIHI9XCIzXCIgZmlsbD1cIiR7bWFya2VyQ29sb3J9XCIgc3Ryb2tlPVwiJHttYXJrZXJEb3RDb2xvcn1cIiBzdHJva2Utd2lkdGg9XCIyXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjQwNjBfNTkwOTApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNiAxNC45NzMyQzI1Ljk5OTEgMTYuNzcxNSAyNS41NTU0IDE4LjU0MiAyNC43MDggMjAuMTI4OUMyMy44NjA2IDIxLjcxNTcgMjIuNjM1NSAyMy4wNzAyIDIxLjE0MDUgMjQuMDczMkMyMS4xMTY1IDI0LjA5MTIgMjAuNzYwOSAyNC4zMTAyIDIwLjYyMDcgMjQuNDAyMkMxNy4yNDg1IDI2LjU0MjIgMTUuODk1NCAyNy45ODcyIDE1LjM1MDUgMjguODAyMkMxNS4yODU5IDI4Ljg5OTEgMTUuMTg1NCAyOC45NjY1IDE1LjA3MTIgMjguOTg5N0MxNC45NTY5IDI5LjAxMjkgMTQuODM4MSAyOC45OTAxIDE0Ljc0MDYgMjguOTI2MkMxNC42OTE2IDI4Ljg5MzIgMTQuNjQ5NCAyOC44NTExIDE0LjYxNjQgMjguODAyMkMxNC4wNzE2IDI3Ljk5MTIgMTIuNzEzNSAyNi41NDYyIDkuMzQ2MjYgMjQuNDAyMkM5LjE5MzAyIDI0LjMwNzIgOC44NTE1IDI0LjA5MTIgOC44MjY0NiAyNC4wNzMyQzcuMjU2NTYgMjMuMDEwMyA1Ljk4ODYgMjEuNTYwMSA1LjE0NTcyIDE5Ljg2MzVDNC4zMDI4NSAxOC4xNjY5IDMuOTEzNjggMTYuMjgxNSA0LjAxNjAzIDE0LjM5MDRDNC4xMTgzNyAxMi40OTkzIDQuNzA4NzQgMTAuNjY2NyA1LjcyOTgxIDkuMDcwN0M2Ljc1MDg4IDcuNDc0NjYgOC4xNjc5NiA2LjE2OTM2IDkuODQzNDIgNS4yODE1NUMxMS41MTg5IDQuMzkzNzUgMTMuMzk1OCAzLjk1MzYxIDE1LjI5MiA0LjAwMzg3QzE3LjE4ODEgNC4wNTQxMyAxOS4wMzkgNC41OTMxIDIwLjY2NDkgNS41Njg0MkMyMi4yOTA4IDYuNTQzNzQgMjMuNjM2NSA3LjkyMjI4IDI0LjU3MTMgOS41NzAxN0MyNS41MDYyIDExLjIxODEgMjUuOTk4MyAxMy4wNzkzIDI2IDE0Ljk3MzJaXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiJHttYXJrZXJPdXRsaW5lQ29sb3J9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY3g9XCIxNVwiIGN5PVwiMTVcIiByPVwiOVwiIGZpbGw9XCIke21hcmtlckNvbG9yfVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBpZD1cIl80XCIgZGF0YS1uYW1lPVwiNFwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxNSAxNilcIiBmaWxsPVwiI2ZmZlwiIGZvbnQtc2l6ZT1cIjExXCIgZm9udC1mYW1pbHk9XCJNb250c2VycmF0LCBzYW5zLXNlcmlmXCIgZm9udC13ZWlnaHQ9XCI3MDBcIiBkb21pbmFudC1iYXNlbGluZT1cIm1pZGRsZVwiIHRleHQtYW5jaG9yPVwibWlkZGxlXCIgeT1cIjBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHNwYW4+JHtzdG9wTnVtYmVyID8/IDB9PC90c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjQwNjBfNTkwOTBcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMyLjk5ODVcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMTUgMFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18yNDA2MF81OTA5MFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNDA2MF81OTA5MFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPmA7XG5cbiAgICAgICAgcmV0dXJuIG1hcmtlclN2ZztcbiAgICB9O1xuXG4gICAgc3RhdGljIGdldFJvdXRpbmdDaGVja2VkTWFya2VyU3ZnID0gKFxuICAgICAgICBzdG9wVHlwZTogc3RyaW5nLFxuICAgICAgICBpc0xpZ2h0TW9kZT86IGJvb2xlYW5cbiAgICApID0+IHtcbiAgICAgICAgY29uc3QgY2hlY2tlZE1hcmtlckNvbG9yID0gaXNMaWdodE1vZGVcbiAgICAgICAgICAgID8gTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9MSUdIVF9DT0xPUlNbXG4gICAgICAgICAgICAgICAgICBzdG9wVHlwZSBhcyBrZXlvZiB0eXBlb2YgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9MSUdIVF9DT0xPUlNcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0RBUktfQ09MT1JTW1xuICAgICAgICAgICAgICAgICAgc3RvcFR5cGUgYXMga2V5b2YgdHlwZW9mIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfREFSS19DT0xPUlNcbiAgICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyT3V0bGluZUNvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfT1VUTElORV9DT0xPUlNbXG4gICAgICAgICAgICAgICAgaXNMaWdodE1vZGVcbiAgICAgICAgICAgICAgICAgICAgPyBNYXBNYXJrZXJTdHJpbmdFbnVtLldISVRFXG4gICAgICAgICAgICAgICAgICAgIDogKHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX09VVExJTkVfQ09MT1JTKVxuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyRG90Q29sb3IgPVxuICAgICAgICAgICAgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9ET1RfQ09MT1JTW1xuICAgICAgICAgICAgICAgIGlzTGlnaHRNb2RlXG4gICAgICAgICAgICAgICAgICAgID8gTWFwTWFya2VyU3RyaW5nRW51bS5MSUdIVFxuICAgICAgICAgICAgICAgICAgICA6IE1hcE1hcmtlclN0cmluZ0VudW0uREFSS1xuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyU3ZnID0gYDxzdmcgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMzXCIgdmlld0JveD1cIjAgMCAzMCAzM1wiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjI5XCIgcj1cIjNcIiBmaWxsPVwiJHtjaGVja2VkTWFya2VyQ29sb3J9XCIgc3Ryb2tlPVwiJHtjaGVja2VkTWFya2VyRG90Q29sb3J9XCIgc3Ryb2tlLXdpZHRoPVwiMlwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMTgwNTVfMzQyMzgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNiAxNC45NzMyQzI1Ljk5OTEgMTYuNzcxNSAyNS41NTU0IDE4LjU0MiAyNC43MDggMjAuMTI4OUMyMy44NjA2IDIxLjcxNTcgMjIuNjM1NSAyMy4wNzAyIDIxLjE0MDUgMjQuMDczMkMyMS4xMTY1IDI0LjA5MTIgMjAuNzYwOSAyNC4zMTAyIDIwLjYyMDcgMjQuNDAyMkMxNy4yNDg1IDI2LjU0MjIgMTUuODk1NCAyNy45ODcyIDE1LjM1MDUgMjguODAyMkMxNS4yODU5IDI4Ljg5OTEgMTUuMTg1NCAyOC45NjY1IDE1LjA3MTIgMjguOTg5N0MxNC45NTY5IDI5LjAxMjkgMTQuODM4MSAyOC45OTAxIDE0Ljc0MDYgMjguOTI2MkMxNC42OTE2IDI4Ljg5MzIgMTQuNjQ5NCAyOC44NTExIDE0LjYxNjQgMjguODAyMkMxNC4wNzE2IDI3Ljk5MTIgMTIuNzEzNSAyNi41NDYyIDkuMzQ2MjYgMjQuNDAyMkM5LjE5MzAyIDI0LjMwNzIgOC44NTE1IDI0LjA5MTIgOC44MjY0NiAyNC4wNzMyQzcuMjU2NTYgMjMuMDEwMyA1Ljk4ODYgMjEuNTYwMSA1LjE0NTcyIDE5Ljg2MzVDNC4zMDI4NSAxOC4xNjY5IDMuOTEzNjggMTYuMjgxNSA0LjAxNjAzIDE0LjM5MDRDNC4xMTgzNyAxMi40OTkzIDQuNzA4NzQgMTAuNjY2NyA1LjcyOTgxIDkuMDcwN0M2Ljc1MDg4IDcuNDc0NjYgOC4xNjc5NiA2LjE2OTM2IDkuODQzNDIgNS4yODE1NUMxMS41MTg5IDQuMzkzNzUgMTMuMzk1OCAzLjk1MzYxIDE1LjI5MiA0LjAwMzg3QzE3LjE4ODEgNC4wNTQxMyAxOS4wMzkgNC41OTMxIDIwLjY2NDkgNS41Njg0MkMyMi4yOTA4IDYuNTQzNzQgMjMuNjM2NSA3LjkyMjI4IDI0LjU3MTMgOS41NzAxN0MyNS41MDYyIDExLjIxODEgMjUuOTk4MyAxMy4wNzkzIDI2IDE0Ljk3MzJaXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiJHtjaGVja2VkTWFya2VyT3V0bGluZUNvbG9yfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjE1XCIgcj1cIjlcIiBmaWxsPVwiJHtjaGVja2VkTWFya2VyQ29sb3J9XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEzLjA0NjIgMTkuMDQ3N0w5LjcxMjkxIDE1LjcxNDRDOS42NTcxOCAxNS42NTg3IDkuNjEyOTcgMTUuNTkyNSA5LjU4MjggMTUuNTE5N0M5LjU1MjY0IDE1LjQ0NjkgOS41MzcxMSAxNS4zNjg5IDkuNTM3MTEgMTUuMjkwMUM5LjUzNzExIDE1LjIxMTIgOS41NTI2NCAxNS4xMzMyIDkuNTgyOCAxNS4wNjA0QzkuNjEyOTcgMTQuOTg3NiA5LjY1NzE4IDE0LjkyMTQgOS43MTI5MSAxNC44NjU3TDEwLjU2MjkgMTQuMDE4NEMxMC42MTg2IDEzLjk2MjcgMTAuNjg0OCAxMy45MTg0IDEwLjc1NzYgMTMuODg4M0MxMC44MzA0IDEzLjg1ODEgMTAuOTA4NCAxMy44NDI2IDEwLjk4NzIgMTMuODQyNkMxMS4wNjYxIDEzLjg0MjYgMTEuMTQ0MSAxMy44NTgxIDExLjIxNjkgMTMuODg4M0MxMS4yODk3IDEzLjkxODQgMTEuMzU1OSAxMy45NjI3IDExLjQxMTYgMTQuMDE4NEwxMy40NzAyIDE2LjA3NzFMMTguNTg2OSAxMC45NTcxQzE4LjY0MjYgMTAuOTAxMyAxOC43MDg4IDEwLjg1NzEgMTguNzgxNiAxMC44MjY5QzE4Ljg1NDQgMTAuNzk2OCAxOC45MzI0IDEwLjc4MTIgMTkuMDExMiAxMC43ODEyQzE5LjA5MDEgMTAuNzgxMiAxOS4xNjgxIDEwLjc5NjggMTkuMjQwOSAxMC44MjY5QzE5LjMxMzcgMTAuODU3MSAxOS4zNzk5IDEwLjkwMTMgMTkuNDM1NiAxMC45NTcxTDIwLjI4NDIgMTEuODA1N0MyMC4zNCAxMS44NjE0IDIwLjM4NDIgMTEuOTI3NiAyMC40MTQ0IDEyLjAwMDRDMjAuNDQ0NSAxMi4wNzMyIDIwLjQ2MDEgMTIuMTUxMiAyMC40NjAxIDEyLjIzMDFDMjAuNDYwMSAxMi4zMDg5IDIwLjQ0NDUgMTIuMzg2OSAyMC40MTQ0IDEyLjQ1OTdDMjAuMzg0MiAxMi41MzI1IDIwLjM0IDEyLjU5ODcgMjAuMjg0MiAxMi42NTQ0TDEzLjg5NDkgMTkuMDQ1MUMxMy44MzkyIDE5LjEwMDggMTMuNzczIDE5LjE0NSAxMy43MDAyIDE5LjE3NTJDMTMuNjI3NCAxOS4yMDUzIDEzLjU0OTQgMTkuMjIwOSAxMy40NzA2IDE5LjIyMDlDMTMuMzkxOCAxOS4yMjA5IDEzLjMxMzcgMTkuMjA1MyAxMy4yNDA5IDE5LjE3NTJDMTMuMTY4MSAxOS4xNDUgMTMuMTAyIDE5LjEwMDggMTMuMDQ2MiAxOS4wNDUxVjE5LjA0NzdaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzE4MDU1XzM0MjM4XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMi45OTg1XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMlwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbjI9XCJoYXJkQWxwaGFcIiBvcGVyYXRvcj1cIm91dFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjE1IDBcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCIgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzE4MDU1XzM0MjM4XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18xODA1NV8zNDIzOFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5gO1xuXG4gICAgICAgIHJldHVybiBjaGVja2VkTWFya2VyU3ZnO1xuICAgIH07XG5cbiAgICBzdGF0aWMgZ2V0Um91dGluZ01hcmtlckljb25TdmcgPSAoc3RvcFR5cGU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgICAgIGNvbnN0IG1hcmtlclN2Z1BhdGggPVxuICAgICAgICAgICAgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9JQ09OX1BBVEhTW1xuICAgICAgICAgICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0lDT05fUEFUSFNcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgY2hlY2tlZE1hcmtlckNvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfTElHSFRfQ09MT1JTW1xuICAgICAgICAgICAgICAgIHN0b3BUeXBlIGFzIGtleW9mIHR5cGVvZiBNYXBPcHRpb25zQ29uc3RhbnRzLlJPVVRJTkdfTUFSS0VSX0xJR0hUX0NPTE9SU1xuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyT3V0bGluZUNvbG9yID1cbiAgICAgICAgICAgIE1hcE9wdGlvbnNDb25zdGFudHMuUk9VVElOR19NQVJLRVJfT1VUTElORV9DT0xPUlNbXG4gICAgICAgICAgICAgICAgTWFwTWFya2VyU3RyaW5nRW51bS5XSElURVxuICAgICAgICAgICAgXTtcblxuICAgICAgICBjb25zdCBjaGVja2VkTWFya2VyRG90Q29sb3IgPVxuICAgICAgICAgICAgTWFwT3B0aW9uc0NvbnN0YW50cy5ST1VUSU5HX01BUktFUl9ET1RfQ09MT1JTW1xuICAgICAgICAgICAgICAgIE1hcE1hcmtlclN0cmluZ0VudW0uTElHSFRcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgY29uc3Qgcm91dGluZ01hcmtlclN2ZyA9IGA8c3ZnIHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzM1wiIHZpZXdCb3g9XCIwIDAgMzAgMzNcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjE1XCIgY3k9XCIyOVwiIHI9XCIzXCIgZmlsbD1cIiR7Y2hlY2tlZE1hcmtlckNvbG9yfVwiIHN0cm9rZT1cIiR7Y2hlY2tlZE1hcmtlckRvdENvbG9yfVwiIHN0cm9rZS13aWR0aD1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzkyNjhfNzk4MzQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNiAxNC45NzMyQzI1Ljk5OTEgMTYuNzcxNSAyNS41NTU0IDE4LjU0MiAyNC43MDggMjAuMTI4OUMyMy44NjA2IDIxLjcxNTcgMjIuNjM1NSAyMy4wNzAyIDIxLjE0MDUgMjQuMDczMkMyMS4xMTY1IDI0LjA5MTIgMjAuNzYwOSAyNC4zMTAyIDIwLjYyMDcgMjQuNDAyMkMxNy4yNDg1IDI2LjU0MjIgMTUuODk1NCAyNy45ODcyIDE1LjM1MDUgMjguODAyMkMxNS4yODU5IDI4Ljg5OTEgMTUuMTg1NCAyOC45NjY1IDE1LjA3MTIgMjguOTg5N0MxNC45NTY5IDI5LjAxMjkgMTQuODM4MSAyOC45OTAxIDE0Ljc0MDYgMjguOTI2MkMxNC42OTE2IDI4Ljg5MzIgMTQuNjQ5NCAyOC44NTExIDE0LjYxNjQgMjguODAyMkMxNC4wNzE2IDI3Ljk5MTIgMTIuNzEzNSAyNi41NDYyIDkuMzQ2MjYgMjQuNDAyMkM5LjE5MzAyIDI0LjMwNzIgOC44NTE1IDI0LjA5MTIgOC44MjY0NiAyNC4wNzMyQzcuMjU2NTYgMjMuMDEwMyA1Ljk4ODYgMjEuNTYwMSA1LjE0NTcyIDE5Ljg2MzVDNC4zMDI4NSAxOC4xNjY5IDMuOTEzNjggMTYuMjgxNSA0LjAxNjAzIDE0LjM5MDRDNC4xMTgzNyAxMi40OTkzIDQuNzA4NzQgMTAuNjY2NyA1LjcyOTgxIDkuMDcwN0M2Ljc1MDg4IDcuNDc0NjYgOC4xNjc5NiA2LjE2OTM2IDkuODQzNDIgNS4yODE1NUMxMS41MTg5IDQuMzkzNzUgMTMuMzk1OCAzLjk1MzYxIDE1LjI5MiA0LjAwMzg3QzE3LjE4ODEgNC4wNTQxMyAxOS4wMzkgNC41OTMxIDIwLjY2NDkgNS41Njg0MkMyMi4yOTA4IDYuNTQzNzQgMjMuNjM2NSA3LjkyMjI4IDI0LjU3MTMgOS41NzAxN0MyNS41MDYyIDExLjIxODEgMjUuOTk4MyAxMy4wNzkzIDI2IDE0Ljk3MzJaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxNVwiIGN5PVwiMTVcIiByPVwiOVwiIGZpbGw9XCIke2NoZWNrZWRNYXJrZXJDb2xvcn1cIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCIke21hcmtlclN2Z1BhdGh9XCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzkyNjhfNzk4MzRcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMyLjk5ODVcIiBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIyXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29tcG9zaXRlIGluMj1cImhhcmRBbHBoYVwiIG9wZXJhdG9yPVwib3V0XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMTUgMFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfOTI2OF83OTgzNFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfOTI2OF83OTgzNFwiIHJlc3VsdD1cInNoYXBlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5gO1xuXG4gICAgICAgIHJldHVybiByb3V0aW5nTWFya2VyU3ZnO1xuICAgIH07XG5cbiAgICBzdGF0aWMgZ2V0TWFwTWFya2VyKGlzRmF2b3JpdGU/OiBib29sZWFuLCBpc0Nsb3NlZD86IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICBsZXQgbWFya2VySWNvblJvdXRlID0gTWFwU3ZnUm91dGVzLmRlZmF1bHRNYXJrZXJJY29uO1xuXG4gICAgICAgIGlmIChpc0Nsb3NlZCkgbWFya2VySWNvblJvdXRlID0gTWFwU3ZnUm91dGVzLmNsb3NlZE1hcmtlckljb247XG4gICAgICAgIGVsc2UgaWYgKGlzRmF2b3JpdGUpIG1hcmtlckljb25Sb3V0ZSA9IE1hcFN2Z1JvdXRlcy5mYXZvcml0ZU1hcmtlckljb247XG5cbiAgICAgICAgcmV0dXJuIG1hcmtlckljb25Sb3V0ZTtcbiAgICB9XG4gICAgc3RhdGljIGdldENsdXN0ZXJNYXJrZXIoXG4gICAgICAgIGNvdW50OiBudW1iZXIsXG4gICAgICAgIGlzU2VsZWN0ZWQ/OiBib29sZWFuLFxuICAgICAgICBpc0Z1ZWxNYXJrZXI/OiBib29sZWFuXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbWFya2VyQ29sb3IgPSBpc0Z1ZWxNYXJrZXIgPyAnIzY2OTJGMScgOiAnI0ZBQjE1Qyc7XG4gICAgICAgIGNvbnN0IG1hcmtlclN2ZyA9IGA8c3ZnIGNsYXNzPVwibWFya2VyLXN2Z1wiIHdpZHRoPVwiNTJcIiBoZWlnaHQ9XCI1MlwiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjYzMV8yNzQxMDQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjE2XCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMTRcIiBmaWxsPVwiJHttYXJrZXJDb2xvcn1cIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIl80XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbmFtZT1cIjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDI2IDI3KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI2ZmZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU9XCIxNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseT1cIk1vbnRzZXJyYXQsIHNhbnMtc2VyaWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ9XCI3MDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taW5hbnQtYmFzZWxpbmU9XCJtaWRkbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHNwYW4+ICR7Y291bnR9IDwvdHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgb3BhY2l0eT1cIjAuN1wiIGZpbHRlcj1cInVybCgjZmlsdGVyMV9kXzI2MzFfMjc0MTA0KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zNi43ODEgNy42NTAwMkwzNS40NjEgOS44OTMwMkMzNS4zNzA1IDEwLjA1MDIgMzUuMzQ0NiAxMC4yMzYzIDM1LjM4ODYgMTAuNDEyMkMzNS40MzI2IDEwLjU4ODEgMzUuNTQzMiAxMC43NCAzNS42OTcgMTAuODM2QzM3Ljg5MTcgMTIuMjQwOSAzOS43NTU1IDE0LjEwNTEgNDEuMTYgMTYuM0M0MS4yNTYgMTYuNDUzOCA0MS40MDggMTYuNTY0NCA0MS41ODM4IDE2LjYwODRDNDEuNzU5NyAxNi42NTI0IDQxLjk0NTggMTYuNjI2NSA0Mi4xMDMgMTYuNTM2TDQ0LjM0NiAxNS4yMTZDNDQuNDI3NSAxNS4xNjkxIDQ0LjQ5ODggMTUuMTA2MSA0NC41NTU0IDE1LjAzMUM0NC42MTIxIDE0Ljk1NTkgNDQuNjUzIDE0Ljg3MDIgNDQuNjc1OCAxNC43Nzg5QzQ0LjY5ODYgMTQuNjg3NiA0NC43MDI3IDE0LjU5MjYgNDQuNjg4IDE0LjQ5OTdDNDQuNjczMiAxNC40MDY4IDQ0LjYzOTkgMTQuMzE3OCA0NC41OSAxNC4yMzhDNDIuODQyNiAxMS40ODY3IDQwLjUxMDMgOS4xNTQzNiAzNy43NTkgNy40MDcwMkMzNy42NzkyIDcuMzU3MDkgMzcuNTkwMiA3LjMyMzc2IDM3LjQ5NzMgNy4zMDkwMUMzNy40MDQ0IDcuMjk0MjcgMzcuMzA5NCA3LjI5ODQgMzcuMjE4MSA3LjMyMTE4QzM3LjEyNjggNy4zNDM5NiAzNy4wNDExIDcuMzg0OTEgMzYuOTY2IDcuNDQxNThDMzYuODkwOSA3LjQ5ODI1IDM2LjgyNzkgNy41Njg0OCAzNi43ODEgNy42NTAwMlpNNDYuNjAxIDIwLjY1MUw0NC4wNzMgMjEuMzA5QzQzLjg5ODUgMjEuMzU2MiA0My43NDkgMjEuNDY5IDQzLjY1NTggMjEuNjIzOUM0My41NjI2IDIxLjc3ODggNDMuNTMyOSAyMS45NjM3IDQzLjU3MyAyMi4xNEM0NC4xMzQzIDI0LjY4MjcgNDQuMTM0MyAyNy4zMTczIDQzLjU3MyAyOS44NkM0My41MzI5IDMwLjAzNjMgNDMuNTYyNiAzMC4yMjEyIDQzLjY1NTggMzAuMzc2MUM0My43NDkgMzAuNTMxIDQzLjg5ODUgMzAuNjQzOSA0NC4wNzMgMzAuNjkxTDQ2LjYwMSAzMS4zNDlDNDYuNjkxNyAzMS4zNzM1IDQ2Ljc4NjQgMzEuMzc5NCA0Ni44Nzk1IDMxLjM2NjVDNDYuOTcyNSAzMS4zNTM2IDQ3LjA2MjEgMzEuMzIyMSA0Ny4xNDI3IDMxLjI3MzhDNDcuMjIzMyAzMS4yMjU2IDQ3LjI5MzQgMzEuMTYxNiA0Ny4zNDg4IDMxLjA4NTdDNDcuNDA0MSAzMS4wMDk4IDQ3LjQ0MzcgMzAuOTIzNSA0Ny40NjUgMzAuODMyQzQ4LjE3MyAyNy42NDk2IDQ4LjE3MyAyNC4zNTA0IDQ3LjQ2NSAyMS4xNjhDNDcuNDQzNyAyMS4wNzY1IDQ3LjQwNDEgMjAuOTkwMiA0Ny4zNDg4IDIwLjkxNDNDNDcuMjkzNCAyMC44Mzg0IDQ3LjIyMzMgMjAuNzc0NCA0Ny4xNDI3IDIwLjcyNjJDNDcuMDYyMSAyMC42NzggNDYuOTcyNSAyMC42NDY0IDQ2Ljg3OTUgMjAuNjMzNUM0Ni43ODY0IDIwLjYyMDYgNDYuNjkxNyAyMC42MjY2IDQ2LjYwMSAyMC42NTFaTTMwLjY5NiA0NC4wNzlDMzAuNjUwMiA0My45MDM3IDMwLjUzNzYgNDMuNzUzMiAzMC4zODIzIDQzLjY1OThDMzAuMjI3IDQzLjU2NjMgMzAuMDQxNCA0My41Mzc0IDI5Ljg2NSA0My41NzlDMjcuMzE5MiA0NC4xMzk3IDI0LjY4MTggNDQuMTM5NyAyMi4xMzYgNDMuNTc5QzIxLjk1OTcgNDMuNTM4OSAyMS43NzQ4IDQzLjU2ODYgMjEuNjE5OSA0My42NjE4QzIxLjQ2NSA0My43NTUgMjEuMzUyMSA0My45MDQ1IDIxLjMwNSA0NC4wNzlMMjAuNjQ3IDQ2LjZDMjAuNjIyNSA0Ni42OTA3IDIwLjYxNjYgNDYuNzg1NCAyMC42Mjk1IDQ2Ljg3ODVDMjAuNjQyNCA0Ni45NzE2IDIwLjY3MzkgNDcuMDYxMSAyMC43MjIyIDQ3LjE0MTdDMjAuNzcwNCA0Ny4yMjIzIDIwLjgzNDQgNDcuMjkyNCAyMC45MTAzIDQ3LjM0NzhDMjAuOTg2MiA0Ny40MDMyIDIxLjA3MjUgNDcuNDQyNyAyMS4xNjQgNDcuNDY0QzI0LjM0NzEgNDguMTcyIDI3LjY0NjkgNDguMTcyIDMwLjgzIDQ3LjQ2NEMzMC45MjE0IDQ3LjQ0MjcgMzEuMDA3NiA0Ny40MDMyIDMxLjA4MzQgNDcuMzQ3OUMzMS4xNTkyIDQ3LjI5MjYgMzEuMjIzMSA0Ny4yMjI2IDMxLjI3MTQgNDcuMTQyMUMzMS4zMTk2IDQ3LjA2MTYgMzEuMzUxMiA0Ni45NzIyIDMxLjM2NDEgNDYuODc5MkMzMS4zNzcxIDQ2Ljc4NjMgMzEuMzcxMyA0Ni42OTE3IDMxLjM0NyA0Ni42MDFMMzAuNjk2IDQ0LjA3OVpNMTUuMjEgNy42NDkwMkMxNS4xNjMgNy41Njc2MiAxNS4xMDAyIDcuNDk2NTEgMTUuMDI1MSA3LjQzOTkzQzE0Ljk1MDEgNy4zODMzNSAxNC44NjQ0IDcuMzQyNDUgMTQuNzczMyA3LjMxOTY4QzE0LjY4MjEgNy4yOTY5MSAxNC41ODczIDcuMjkyNzMgMTQuNDk0NSA3LjMwNzM5QzE0LjQwMTYgNy4zMjIwNSAxNC4zMTI3IDcuMzU1MjYgMTQuMjMzIDcuNDA1MDJDMTEuNDc0MiA5LjE0NTQzIDkuMTM4NDIgMTEuNDc5NSA3LjM5NTk5IDE0LjIzN0M3LjM0NjIzIDE0LjMxNjcgNy4zMTMwMyAxNC40MDU3IDcuMjk4MzcgMTQuNDk4NUM3LjI4MzcxIDE0LjU5MTMgNy4yODc4OSAxNC42ODYxIDcuMzEwNjYgMTQuNzc3M0M3LjMzMzQzIDE0Ljg2ODUgNy4zNzQzMiAxNC45NTQxIDcuNDMwOSAxNS4wMjkyQzcuNDg3NDggMTUuMTA0MiA3LjU1ODU5IDE1LjE2NzEgNy42Mzk5OSAxNS4yMTRMOS44ODU5OSAxNi41MzNDMTAuMDQzNiAxNi42MjQ2IDEwLjIzMDggMTYuNjUxMSAxMC40MDc2IDE2LjYwNjhDMTAuNTg0NSAxNi41NjI2IDEwLjczNzEgMTYuNDUxMSAxMC44MzMgMTYuMjk2QzEyLjIzNyAxNC4xMDIxIDE0LjEwMSAxMi4yMzk0IDE2LjI5NiAxMC44MzdDMTYuNDUxIDEwLjc0MTEgMTYuNTYyNSAxMC41ODg1IDE2LjYwNjggMTAuNDExNkMxNi42NTExIDEwLjIzNDggMTYuNjI0NiAxMC4wNDc2IDE2LjUzMyA5Ljg5MDAyTDE1LjIxIDcuNjQ5MDJaTTcuOTA5OTkgMjEuMzA4TDUuMzk1OTkgMjAuNjUyQzUuMzA1MjggMjAuNjI3NCA1LjIxMDUzIDIwLjYyMTMgNS4xMTc0MSAyMC42MzQxQzUuMDI0MjggMjAuNjQ2OCA0LjkzNDY4IDIwLjY3ODIgNC44NTM5NiAyMC43MjY0QzQuNzczMjMgMjAuNzc0NiA0LjcwMzAzIDIwLjgzODUgNC42NDc1NCAyMC45MTQzQzQuNTkyMDUgMjAuOTkwMiA0LjU1MjQyIDIxLjA3NjUgNC41MzA5OSAyMS4xNjhDMy44MjMgMjQuMzUwNCAzLjgyMyAyNy42NDk2IDQuNTMwOTkgMzAuODMyQzQuNTUyMzEgMzAuOTIzNSA0LjU5MTg0IDMxLjAwOTggNC42NDcyMSAzMS4wODU3QzQuNzAyNTggMzEuMTYxNiA0Ljc3MjY3IDMxLjIyNTYgNC44NTMzIDMxLjI3MzhDNC45MzM5MiAzMS4zMjIxIDUuMDIzNDMgMzEuMzUzNiA1LjExNjUgMzEuMzY2NUM1LjIwOTU2IDMxLjM3OTQgNS4zMDQyOCAzMS4zNzM1IDUuMzk0OTkgMzEuMzQ5TDcuOTIyOTkgMzAuNjkxQzguMDk3NTEgMzAuNjQzOSA4LjI0NzAyIDMwLjUzMSA4LjM0MDIyIDMwLjM3NjFDOC40MzM0MiAzMC4yMjEyIDguNDYzMDggMzAuMDM2MyA4LjQyMjk5IDI5Ljg2QzguMTM5OTIgMjguNTkyOCA3Ljk5NjczIDI3LjI5ODQgNy45OTU5OSAyNkM3Ljk5NTkzIDI0LjcwMjcgOC4xMzQzOSAyMy40MDkgOC40MDg5OSAyMi4xNDFDOC40NDk2NiAyMS45NjQ1IDguNDIwMjggMjEuNzc5IDguMzI3MDMgMjEuNjIzN0M4LjIzMzc5IDIxLjQ2ODMgOC4wODQ5NCAyMS4zNTUyIDcuOTA5OTkgMjEuMzA4Wk05Ljg4ODk5IDM1LjQ2NUw3LjY0NTk5IDM2Ljc4NUM3LjU2NDQ2IDM2LjgzMiA3LjQ5MzIyIDM2Ljg5NDkgNy40MzY1NSAzNi45N0M3LjM3OTg4IDM3LjA0NTEgNy4zMzg5MyAzNy4xMzA5IDcuMzE2MTYgMzcuMjIyMkM3LjI5MzM4IDM3LjMxMzUgNy4yODkyNCAzNy40MDg0IDcuMzAzOTkgMzcuNTAxM0M3LjMxODc0IDM3LjU5NDMgNy4zNTIwNyAzNy42ODMzIDcuNDAxOTkgMzcuNzYzQzkuMTQ5MzMgNDAuNTE0MyAxMS40ODE3IDQyLjg0NjcgMTQuMjMzIDQ0LjU5NEMxNC4zMTI3IDQ0LjY0MzkgMTQuNDAxNyA0NC42NzczIDE0LjQ5NDcgNDQuNjkyQzE0LjU4NzYgNDQuNzA2OCAxNC42ODI2IDQ0LjcwMjYgMTQuNzczOCA0NC42Nzk5QzE0Ljg2NTEgNDQuNjU3MSAxNC45NTA5IDQ0LjYxNjEgMTUuMDI2IDQ0LjU1OTVDMTUuMTAxMSA0NC41MDI4IDE1LjE2NCA0NC40MzE2IDE1LjIxMSA0NC4zNUwxNi41MzEgNDIuMTA3QzE2LjYyMTQgNDEuOTQ5OSAxNi42NDc0IDQxLjc2MzggMTYuNjAzNCA0MS41ODc5QzE2LjU1OTQgNDEuNDEyIDE2LjQ0ODggNDEuMjYgMTYuMjk1IDQxLjE2NEMxNC4xMDAzIDM5Ljc1OTIgMTIuMjM2NSAzNy44OTUgMTAuODMyIDM1LjdDMTAuNzM2IDM1LjU0NjIgMTAuNTg0IDM1LjQzNTcgMTAuNDA4MSAzNS4zOTE2QzEwLjIzMjIgMzUuMzQ3NiAxMC4wNDYxIDM1LjM3NDYgOS44ODg5OSAzNS40NjVaTTQxLjE2IDM1LjdDMzkuNzU1MiAzNy44OTUxIDM3Ljg5MSAzOS43NTkzIDM1LjY5NiA0MS4xNjRDMzUuNTQyMiA0MS4yNiAzNS40MzE2IDQxLjQxMiAzNS4zODc2IDQxLjU4NzlDMzUuMzQzNiA0MS43NjM4IDM1LjM2OTUgNDEuOTQ5OSAzNS40NiA0Mi4xMDdMMzYuNzggNDQuMzVDMzYuODI3IDQ0LjQzMTYgMzYuODg5OSA0NC41MDI4IDM2Ljk2NSA0NC41NTk1QzM3LjA0MDEgNDQuNjE2MSAzNy4xMjU4IDQ0LjY1NzEgMzcuMjE3MSA0NC42Nzk5QzM3LjMwODQgNDQuNzAyNiAzNy40MDM0IDQ0LjcwNjggMzcuNDk2MyA0NC42OTJDMzcuNTg5MiA0NC42NzczIDM3LjY3ODIgNDQuNjQzOSAzNy43NTggNDQuNTk0QzQwLjUwOTMgNDIuODQ2NyA0Mi44NDE2IDQwLjUxNDMgNDQuNTg5IDM3Ljc2M0M0NC42Mzg5IDM3LjY4MzMgNDQuNjcyMiAzNy41OTQzIDQ0LjY4NyAzNy41MDEzQzQ0LjcwMTcgMzcuNDA4NCA0NC42OTc2IDM3LjMxMzUgNDQuNjc0OCAzNy4yMjIyQzQ0LjY1MjEgMzcuMTMwOSA0NC42MTExIDM3LjA0NTEgNDQuNTU0NCAzNi45N0M0NC40OTc4IDM2Ljg5NDkgNDQuNDI2NSAzNi44MzIgNDQuMzQ1IDM2Ljc4NUw0Mi4xMDIgMzUuNDY1QzQxLjk0NDggMzUuMzc0NiA0MS43NTg3IDM1LjM0ODYgNDEuNTgyOCAzNS4zOTI2QzQxLjQwNyAzNS40MzY3IDQxLjI1NSAzNS41NDcyIDQxLjE1OSAzNS43MDFNMjUuOTk2IDQuMDAwMDJDMjQuMzcwNyAzLjk5Nzk4IDIyLjc1MDEgNC4xNzYwNyAyMS4xNjQgNC41MzEwMkMyMS4wNzI1IDQuNTUyNDQgMjAuOTg2MiA0LjU5MjA4IDIwLjkxMDMgNC42NDc1N0MyMC44MzQ0IDQuNzAzMDUgMjAuNzcwNSA0Ljc3MzI1IDIwLjcyMjQgNC44NTM5OEMyMC42NzQyIDQuOTM0NzEgMjAuNjQyOCA1LjAyNDMxIDIwLjYzIDUuMTE3NDNDMjAuNjE3MyA1LjIxMDU2IDIwLjYyMzQgNS4zMDUzIDIwLjY0OCA1LjM5NjAyTDIxLjMwNCA3LjkxMjAyQzIxLjM1MTEgOC4wODY5NiAyMS40NjQzIDguMjM2ODEgMjEuNjE5NiA4LjMzMDA2QzIxLjc3NSA4LjQyMzMgMjEuOTYwNCA4LjQ1MjY4IDIyLjEzNyA4LjQxMjAyQzIzLjQwNSA4LjEzNzc1IDI0LjY5ODcgNy45OTk2MyAyNS45OTYgOC4wMDAwMkMyNy4yOTcxIDcuOTk5MDcgMjguNTk0NCA4LjEzOTkgMjkuODY1IDguNDIwMDJDMzAuMDQxNCA4LjQ2MTY4IDMwLjIyNyA4LjQzMjY5IDMwLjM4MjMgOC4zMzkyNkMzMC41Mzc2IDguMjQ1ODMgMzAuNjUwMiA4LjA5NTM2IDMwLjY5NiA3LjkyMDAyTDMxLjM0NyA1LjM5MzAyQzMxLjM3MTMgNS4zMDIzNyAzMS4zNzcxIDUuMjA3NzYgMzEuMzY0MSA1LjExNDgxQzMxLjM1MTIgNS4wMjE4NiAzMS4zMTk2IDQuOTMyNDcgMzEuMjcxNCA0Ljg1MTk2QzMxLjIyMzEgNC43NzE0NSAzMS4xNTkyIDQuNzAxNDYgMzEuMDgzNCA0LjY0NjE1QzMxLjAwNzYgNC41OTA4NCAzMC45MjE0IDQuNTUxMzUgMzAuODMgNC41MzAwMkMyOS4yNDMxIDQuMTc1ODEgMjcuNjIxOSAzLjk5ODA2IDI1Ljk5NiA0LjAwMDAyWlwiIGZpbGw9XCIke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQgPyBtYXJrZXJDb2xvciA6ICcjRkZGRkZGJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjYzMV8yNzQxMDRcIiB4PVwiNlwiIHk9XCI2XCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29tcG9zaXRlIGluMj1cImhhcmRBbHBoYVwiIG9wZXJhdG9yPVwib3V0XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjE1IDBcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18yNjMxXzI3NDEwNFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzI2MzFfMjc0MTA0XCIgcmVzdWx0PVwic2hhcGVcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIxX2RfMjYzMV8yNzQxMDRcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI1MS45OTYxXCIgaGVpZ2h0PVwiNTEuOTk1XCIgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjJcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29tcG9zaXRlIGluMj1cImhhcmRBbHBoYVwiIG9wZXJhdG9yPVwib3V0XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIiB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjE1IDBcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18yNjMxXzI3NDEwNFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzI2MzFfMjc0MTA0XCIgcmVzdWx0PVwic2hhcGVcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+YDtcblxuICAgICAgICBjb25zdCBtYXJrZXJJY29uUm91dGUgPVxuICAgICAgICAgICAgJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04O2Jhc2U2NCwnICsgYnRvYShtYXJrZXJTdmcpO1xuXG4gICAgICAgIHJldHVybiBtYXJrZXJTdmc7XG4gICAgfVxufVxuIl19
|
|
@@ -16,7 +16,7 @@ export class MapMarkerIconService {
|
|
|
16
16
|
this.routingElements = new BehaviorSubject([]);
|
|
17
17
|
this.renderer = rendererFactory.createRenderer(null, null);
|
|
18
18
|
}
|
|
19
|
-
getMarkerIcon(markerId, labelName, isClosed, isFavorite, isAlwaysSelected) {
|
|
19
|
+
getMarkerIcon(markerId, labelName, isClosed, isFavorite, isAlwaysSelected, fuelMarkerClass, secondLabelName) {
|
|
20
20
|
const markerElements = this.markerElements.getValue();
|
|
21
21
|
const previousMarkerIcon = markerElements.find((icon) => icon.id === 'marker-' + markerId);
|
|
22
22
|
if (previousMarkerIcon)
|
|
@@ -34,17 +34,33 @@ export class MapMarkerIconService {
|
|
|
34
34
|
if (labelName) {
|
|
35
35
|
const markerLabelElement = this.renderer.createElement('div');
|
|
36
36
|
this.renderer.addClass(markerLabelElement, 'marker-label');
|
|
37
|
-
this.renderer.
|
|
37
|
+
const markerLabelText = this.renderer.createElement('div');
|
|
38
|
+
this.renderer.addClass(markerLabelElement, 'marker-label-text');
|
|
39
|
+
this.renderer.setProperty(markerLabelText, 'innerHTML', labelName.toUpperCase());
|
|
40
|
+
this.renderer.appendChild(markerLabelElement, markerLabelText);
|
|
41
|
+
if (secondLabelName) {
|
|
42
|
+
const secondLabelElement = this.renderer.createElement('div');
|
|
43
|
+
this.renderer.addClass(secondLabelElement, 'marker-label-second-text');
|
|
44
|
+
this.renderer.addClass(secondLabelElement, 'ca-font-bold');
|
|
45
|
+
this.renderer.addClass(secondLabelElement, 'line-clamp-1');
|
|
46
|
+
this.renderer.setProperty(secondLabelElement, 'innerHTML', secondLabelName.toUpperCase());
|
|
47
|
+
this.renderer.appendChild(markerLabelElement, secondLabelElement);
|
|
48
|
+
this.renderer.addClass(markerLabelText, 'line-clamp-1');
|
|
49
|
+
}
|
|
38
50
|
this.renderer.appendChild(markerElement, markerLabelElement);
|
|
39
51
|
}
|
|
40
52
|
if (isAlwaysSelected)
|
|
41
53
|
this.renderer.addClass(markerElement, 'selected-permanently');
|
|
54
|
+
if (fuelMarkerClass && !isClosed) {
|
|
55
|
+
this.renderer.addClass(markerElement, 'fuel-icon');
|
|
56
|
+
this.renderer.addClass(markerElement, fuelMarkerClass);
|
|
57
|
+
}
|
|
42
58
|
markerElements.push(markerElement);
|
|
43
59
|
this.markerElements.next(markerElements);
|
|
44
60
|
return markerElement;
|
|
45
61
|
}
|
|
46
62
|
}
|
|
47
|
-
getClusterMarkerIcon(markerData) {
|
|
63
|
+
getClusterMarkerIcon(markerData, isFuelMarker) {
|
|
48
64
|
const clusterElements = this.clusterElements.getValue();
|
|
49
65
|
const clusterId = this.createClusterId(markerData);
|
|
50
66
|
const previousClusterIcon = clusterElements.find((icon) => icon.id === 'cluster-' + clusterId);
|
|
@@ -54,7 +70,9 @@ export class MapMarkerIconService {
|
|
|
54
70
|
const markerElement = this.renderer.createElement('div');
|
|
55
71
|
this.renderer.setAttribute(markerElement, 'id', 'cluster-' + clusterId);
|
|
56
72
|
this.renderer.addClass(markerElement, 'cluster-icon');
|
|
57
|
-
|
|
73
|
+
if (isFuelMarker)
|
|
74
|
+
this.renderer.addClass(markerElement, 'fuel-icon');
|
|
75
|
+
const markerSvg = MapMarkerIconHelper.getClusterMarker(markerData.data.count, false, isFuelMarker);
|
|
58
76
|
this.renderer.setProperty(markerElement, 'innerHTML', markerSvg);
|
|
59
77
|
clusterElements.push(markerElement);
|
|
60
78
|
this.clusterElements.next(clusterElements);
|
|
@@ -134,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
134
152
|
providedIn: 'root',
|
|
135
153
|
}]
|
|
136
154
|
}], ctorParameters: () => [{ type: i0.RendererFactory2 }] });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLW1hcmtlci1pY29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1tYXAvdXRpbHMvc2VydmljZXMvbWFwLW1hcmtlci1pY29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxVQUFVO0FBQ1YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpELFlBQVk7QUFDWixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBUXZELE1BQU0sT0FBTyxvQkFBb0I7SUFZL0IsWUFBWSxlQUFpQztRQVZyQyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsRUFBRSxDQUFDLENBQUM7UUFDM0Qsc0JBQWlCLEdBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMvQixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsRUFBRSxDQUFDLENBQUM7UUFDM0Qsc0JBQWlCLEdBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMvQixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUN4RCxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUN6RCxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUcvRCxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxhQUFhLENBQ2xCLFFB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QUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7K0dBMU1VLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vLyBIZWxwZXJzXG5pbXBvcnQgeyBNYXBNYXJrZXJJY29uSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycyc7XG5cbi8vIENvbnN0YW50c1xuaW1wb3J0IHsgTWFwTWFya2VySWNvbnNDb25zdGFudHMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG4vLyBNb2RlbHNcbmltcG9ydCB7IElNYXBNYXJrZXJzIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1hcE1hcmtlckljb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuICBwcml2YXRlIGNsdXN0ZXJNYXJrZXJJZHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElNYXBNYXJrZXJzW10+KFtdKTtcbiAgcHVibGljIGNsdXN0ZXJNYXJrZXJJZHMkOiBPYnNlcnZhYmxlPElNYXBNYXJrZXJzW10+ID1cbiAgICB0aGlzLmNsdXN0ZXJNYXJrZXJJZHMuYXNPYnNlcnZhYmxlKCk7XG4gIHByaXZhdGUgcm91dGluZ01hcmtlcklkcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SU1hcE1hcmtlcnNbXT4oW10pO1xuICBwdWJsaWMgcm91dGluZ01hcmtlcklkcyQ6IE9ic2VydmFibGU8SU1hcE1hcmtlcnNbXT4gPVxuICAgIHRoaXMucm91dGluZ01hcmtlcklkcy5hc09ic2VydmFibGUoKTtcbiAgcHJpdmF0ZSBtYXJrZXJFbGVtZW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SFRNTEVsZW1lbnRbXT4oW10pO1xuICBwcml2YXRlIGNsdXN0ZXJFbGVtZW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SFRNTEVsZW1lbnRbXT4oW10pO1xuICBwcml2YXRlIHJvdXRpbmdFbGVtZW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SFRNTEVsZW1lbnRbXT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5Mikge1xuICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TWFya2VySWNvbihcbiAgICBtYXJrZXJJZDogbnVtYmVyLFxuICAgIGxhYmVsTmFtZT86IHN0cmluZyxcbiAgICBpc0Nsb3NlZD86IGJvb2xlYW4sXG4gICAgaXNGYXZvcml0ZT86IGJvb2xlYW4sXG4gICAgaXNBbHdheXNTZWxlY3RlZD86IGJvb2xlYW5cbiAgKTogSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IG1hcmtlckVsZW1lbnRzID0gdGhpcy5tYXJrZXJFbGVtZW50cy5nZXRWYWx1ZSgpO1xuXG4gICAgY29uc3QgcHJldmlvdXNNYXJrZXJJY29uID0gbWFya2VyRWxlbWVudHMuZmluZChcbiAgICAgIChpY29uKSA9PiBpY29uLmlkID09PSAnbWFya2VyLScgKyBtYXJrZXJJZFxuICAgICk7XG5cbiAgICBpZiAocHJldmlvdXNNYXJrZXJJY29uKSByZXR1cm4gcHJldmlvdXNNYXJrZXJJY29uO1xuICAgIGVsc2Uge1xuICAgICAgY29uc3QgbWFya2VyRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShtYXJrZXJFbGVtZW50LCAnaWQnLCAnbWFya2VyLScgKyBtYXJrZXJJZCk7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG1hcmtlckVsZW1lbnQsICdtYXJrZXItaWNvbicpO1xuXG4gICAgICBjb25zdCBtYXJrZXJTdmcgPSBpc0Nsb3NlZFxuICAgICAgICA/IE1hcE1hcmtlckljb25zQ29uc3RhbnRzLmNsb3NlZE1hcmtlclxuICAgICAgICA6IGlzRmF2b3JpdGVcbiAgICAgICAgPyBNYXBNYXJrZXJJY29uc0NvbnN0YW50cy5mYXZvcml0ZU1hcmtlclxuICAgICAgICA6IE1hcE1hcmtlckljb25zQ29uc3RhbnRzLmRlZmF1bHRNYXJrZXI7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkobWFya2VyRWxlbWVudCwgJ2lubmVySFRNTCcsIG1hcmtlclN2Zyk7XG5cbiAgICAgIGlmIChsYWJlbE5hbWUpIHtcbiAgICAgICAgY29uc3QgbWFya2VyTGFiZWxFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhtYXJrZXJMYWJlbEVsZW1lbnQsICdtYXJrZXItbGFiZWwnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShcbiAgICAgICAgICBtYXJrZXJMYWJlbEVsZW1lbnQsXG4gICAgICAgICAgJ2lubmVySFRNTCcsXG4gICAgICAgICAgbGFiZWxOYW1lLnRvVXBwZXJDYXNlKClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChtYXJrZXJFbGVtZW50LCBtYXJrZXJMYWJlbEVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNBbHdheXNTZWxlY3RlZClcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhtYXJrZXJFbGVtZW50LCAnc2VsZWN0ZWQtcGVybWFuZW50bHknKTtcblxuICAgICAgbWFya2VyRWxlbWVudHMucHVzaChtYXJrZXJFbGVtZW50KTtcblxuICAgICAgdGhpcy5tYXJrZXJFbGVtZW50cy5uZXh0KG1hcmtlckVsZW1lbnRzKTtcblxuICAgICAgcmV0dXJuIG1hcmtlckVsZW1lbnQ7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldENsdXN0ZXJNYXJrZXJJY29uKG1hcmtlckRhdGE6IElNYXBNYXJrZXJzKTogSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IGNsdXN0ZXJFbGVtZW50cyA9IHRoaXMuY2x1c3RlckVsZW1lbnRzLmdldFZhbHVlKCk7XG5cbiAgICBjb25zdCBjbHVzdGVySWQgPSB0aGlzLmNyZWF0ZUNsdXN0ZXJJZChtYXJrZXJEYXRhKTtcblxuICAgIGNvbnN0IHByZXZpb3VzQ2x1c3Rlckljb24gPSBjbHVzdGVyRWxlbWVudHMuZmluZChcbiAgICAgIChpY29uKSA9PiBpY29uLmlkID09PSAnY2x1c3Rlci0nICsgY2x1c3RlcklkXG4gICAgKTtcblxuICAgIGlmIChwcmV2aW91c0NsdXN0ZXJJY29uKSByZXR1cm4gcHJldmlvdXNDbHVzdGVySWNvbjtcbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IG1hcmtlckVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobWFya2VyRWxlbWVudCwgJ2lkJywgJ2NsdXN0ZXItJyArIGNsdXN0ZXJJZCk7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG1hcmtlckVsZW1lbnQsICdjbHVzdGVyLWljb24nKTtcblxuICAgICAgY29uc3QgbWFya2VyU3ZnID0gTWFwTWFya2VySWNvbkhlbHBlci5nZXRDbHVzdGVyTWFya2VyKFxuICAgICAgICBtYXJrZXJEYXRhLmRhdGEuY291bnQsXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShtYXJrZXJFbGVtZW50LCAnaW5uZXJIVE1MJywgbWFya2VyU3ZnKTtcbiAgICAgIGNsdXN0ZXJFbGVtZW50cy5wdXNoKG1hcmtlckVsZW1lbnQpO1xuXG4gICAgICB0aGlzLmNsdXN0ZXJFbGVtZW50cy5uZXh0KGNsdXN0ZXJFbGVtZW50cyk7XG5cbiAgICAgIHJldHVybiBtYXJrZXJFbGVtZW50O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRSb3V0aW5nTWFya2VySWNvbihcbiAgICBtYXJrZXJEYXRhOiBJTWFwTWFya2VycyxcbiAgICBzdG9wTnVtYmVyOiBudW1iZXIsXG4gICAgc3RvcFR5cGU6IHN0cmluZyxcbiAgICBpc1N0b3BDaGVja2VkPzogYm9vbGVhbixcbiAgICBpc0xpZ2h0TW9kZT86IGJvb2xlYW4sXG4gICAgbGFiZWxOYW1lPzogc3RyaW5nXG4gICk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCByb3V0aW5nRWxlbWVudHMgPSB0aGlzLnJvdXRpbmdFbGVtZW50cy5nZXRWYWx1ZSgpO1xuXG4gICAgY29uc3Qgcm91dGluZ0lkID0gdGhpcy5jcmVhdGVSb3V0aW5nSWQobWFya2VyRGF0YSk7XG5cbiAgICBjb25zdCBwcmV2aW91c0NsdXN0ZXJJY29uID0gcm91dGluZ0VsZW1lbnRzLmZpbmQoXG4gICAgICAoaWNvbikgPT4gaWNvbi5pZCA9PT0gJ3JvdXRpbmdNYXJrZXItJyArIHJvdXRpbmdJZFxuICAgICk7XG5cbiAgICBpZiAocHJldmlvdXNDbHVzdGVySWNvbikgcmV0dXJuIHByZXZpb3VzQ2x1c3Rlckljb247XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBtYXJrZXJFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICBtYXJrZXJFbGVtZW50LFxuICAgICAgICAnaWQnLFxuICAgICAgICAncm91dGluZ01hcmtlci0nICsgcm91dGluZ0lkXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhtYXJrZXJFbGVtZW50LCAncm91dGluZy1pY29uJyk7XG5cbiAgICAgIGNvbnN0IG1hcmtlclN2ZyA9IE1hcE1hcmtlckljb25IZWxwZXIuZ2V0Um91dGluZ01hcmtlckljb24oXG4gICAgICAgIHN0b3BOdW1iZXIsXG4gICAgICAgIHN0b3BUeXBlLFxuICAgICAgICBpc1N0b3BDaGVja2VkLFxuICAgICAgICBpc0xpZ2h0TW9kZVxuICAgICAgKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkobWFya2VyRWxlbWVudCwgJ2lubmVySFRNTCcsIG1hcmtlclN2Zyk7XG5cbiAgICAgIGlmIChsYWJlbE5hbWUpIHtcbiAgICAgICAgY29uc3QgbWFya2VyTGFiZWxFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhtYXJrZXJMYWJlbEVsZW1lbnQsICdtYXJrZXItbGFiZWwnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShcbiAgICAgICAgICBtYXJrZXJMYWJlbEVsZW1lbnQsXG4gICAgICAgICAgJ2lubmVySFRNTCcsXG4gICAgICAgICAgbGFiZWxOYW1lLnRvVXBwZXJDYXNlKClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChtYXJrZXJFbGVtZW50LCBtYXJrZXJMYWJlbEVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICByb3V0aW5nRWxlbWVudHMucHVzaChtYXJrZXJFbGVtZW50KTtcblxuICAgICAgdGhpcy5yb3V0aW5nRWxlbWVudHMubmV4dChyb3V0aW5nRWxlbWVudHMpO1xuXG4gICAgICByZXR1cm4gbWFya2VyRWxlbWVudDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlQ2x1c3RlcklkKGNsdXN0ZXJEYXRhOiBJTWFwTWFya2Vycyk6IG51bWJlciB7XG4gICAgY29uc3QgY2x1c3Rlck1hcmtlcnMgPSB0aGlzLmNsdXN0ZXJNYXJrZXJJZHMuZ2V0VmFsdWUoKTtcblxuICAgIGNvbnN0IGNsdXN0ZXJJZCA9IGNsdXN0ZXJNYXJrZXJzLmZpbmQoXG4gICAgICAoaXRlbSkgPT5cbiAgICAgICAgY2x1c3RlckRhdGEucG9zaXRpb24ubGF0ID09PSBpdGVtLnBvc2l0aW9uLmxhdCAmJlxuICAgICAgICBjbHVzdGVyRGF0YS5wb3NpdGlvbi5sbmcgPT09IGl0ZW0ucG9zaXRpb24ubG5nXG4gICAgKT8uaWQ7XG5cbiAgICBpZiAoY2x1c3RlcklkKSByZXR1cm4gY2x1c3RlcklkO1xuICAgIGVsc2Uge1xuICAgICAgY29uc3QgbmV3SWQgPSBjbHVzdGVyTWFya2Vycy5sZW5ndGggKyAxO1xuXG4gICAgICBjb25zdCBuZXdEYXRhID0ge1xuICAgICAgICAuLi5jbHVzdGVyRGF0YSxcbiAgICAgICAgaWQ6IG5ld0lkLFxuICAgICAgfTtcblxuICAgICAgY2x1c3Rlck1hcmtlcnMucHVzaChuZXdEYXRhKTtcbiAgICAgIHRoaXMuY2x1c3Rlck1hcmtlcklkcy5uZXh0KGNsdXN0ZXJNYXJrZXJzKTtcblxuICAgICAgcmV0dXJuIG5ld0lkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVSb3V0aW5nSWQobWFya2VyRGF0YTogSU1hcE1hcmtlcnMpOiBudW1iZXIge1xuICAgIGNvbnN0IHJvdXRpbmdNYXJrZXJzID0gdGhpcy5yb3V0aW5nTWFya2VySWRzLmdldFZhbHVlKCk7XG5cbiAgICBjb25zdCByb3V0aW5nSWQgPSByb3V0aW5nTWFya2Vycy5maW5kKFxuICAgICAgKGl0ZW0pID0+XG4gICAgICAgIG1hcmtlckRhdGEucG9zaXRpb24ubGF0ID09PSBpdGVtLnBvc2l0aW9uLmxhdCAmJlxuICAgICAgICBtYXJrZXJEYXRhLnBvc2l0aW9uLmxuZyA9PT0gaXRlbS5wb3NpdGlvbi5sbmdcbiAgICApPy5pZDtcblxuICAgIGlmIChyb3V0aW5nSWQpIHJldHVybiByb3V0aW5nSWQ7XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBuZXdJZCA9IHJvdXRpbmdNYXJrZXJzLmxlbmd0aCArIDE7XG5cbiAgICAgIGNvbnN0IG5ld0RhdGEgPSB7XG4gICAgICAgIC4uLm1hcmtlckRhdGEsXG4gICAgICAgIGlkOiBuZXdJZCxcbiAgICAgIH07XG5cbiAgICAgIHJvdXRpbmdNYXJrZXJzLnB1c2gobmV3RGF0YSk7XG4gICAgICB0aGlzLnJvdXRpbmdNYXJrZXJJZHMubmV4dChyb3V0aW5nTWFya2Vycyk7XG5cbiAgICAgIHJldHVybiBuZXdJZDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVzZXRNYXJrZXJzRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsdXN0ZXJNYXJrZXJJZHMubmV4dChbXSk7XG4gICAgdGhpcy5yb3V0aW5nTWFya2VySWRzLm5leHQoW10pO1xuICAgIHRoaXMubWFya2VyRWxlbWVudHMubmV4dChbXSk7XG4gICAgdGhpcy5jbHVzdGVyRWxlbWVudHMubmV4dChbXSk7XG4gICAgdGhpcy5yb3V0aW5nRWxlbWVudHMubmV4dChbXSk7XG4gIH1cbn1cbiJdfQ==
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLW1hcmtlci1pY29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1tYXAvdXRpbHMvc2VydmljZXMvbWFwLW1hcmtlci1pY29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxVQUFVO0FBQ1YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpELFlBQVk7QUFDWixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBUXZELE1BQU0sT0FBTyxvQkFBb0I7SUFZN0IsWUFBWSxlQUFpQztRQVZyQyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsRUFBRSxDQUFDLENBQUM7UUFDM0Qsc0JBQWlCLEdBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNqQyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsRUFBRSxDQUFDLENBQUM7UUFDM0Qsc0JBQWlCLEdBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNqQyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUN4RCxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUN6RCxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUc3RCxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxhQUFhLENBQ2hCLFFB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QztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQjtRQUNuQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0EvUFEsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGakIsTUFBTTs7NEZBRVQsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8vIEhlbHBlcnNcbmltcG9ydCB7IE1hcE1hcmtlckljb25IZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzJztcblxuLy8gQ29uc3RhbnRzXG5pbXBvcnQgeyBNYXBNYXJrZXJJY29uc0NvbnN0YW50cyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbi8vIE1vZGVsc1xuaW1wb3J0IHsgSU1hcE1hcmtlcnMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBNYXJrZXJJY29uU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuICAgIHByaXZhdGUgY2x1c3Rlck1hcmtlcklkcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SU1hcE1hcmtlcnNbXT4oW10pO1xuICAgIHB1YmxpYyBjbHVzdGVyTWFya2VySWRzJDogT2JzZXJ2YWJsZTxJTWFwTWFya2Vyc1tdPiA9XG4gICAgICAgIHRoaXMuY2x1c3Rlck1hcmtlcklkcy5hc09ic2VydmFibGUoKTtcbiAgICBwcml2YXRlIHJvdXRpbmdNYXJrZXJJZHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElNYXBNYXJrZXJzW10+KFtdKTtcbiAgICBwdWJsaWMgcm91dGluZ01hcmtlcklkcyQ6IE9ic2VydmFibGU8SU1hcE1hcmtlcnNbXT4gPVxuICAgICAgICB0aGlzLnJvdXRpbmdNYXJrZXJJZHMuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHJpdmF0ZSBtYXJrZXJFbGVtZW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SFRNTEVsZW1lbnRbXT4oW10pO1xuICAgIHByaXZhdGUgY2x1c3RlckVsZW1lbnRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIVE1MRWxlbWVudFtdPihbXSk7XG4gICAgcHJpdmF0ZSByb3V0aW5nRWxlbWVudHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEhUTUxFbGVtZW50W10+KFtdKTtcblxuICAgIGNvbnN0cnVjdG9yKHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5Mikge1xuICAgICAgICB0aGlzLnJlbmRlcmVyID0gcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRNYXJrZXJJY29uKFxuICAgICAgICBtYXJrZXJJZDogbnVtYmVyLFxuICAgICAgICBsYWJlbE5hbWU/OiBzdHJpbmcsXG4gICAgICAgIGlzQ2xvc2VkPzogYm9vbGVhbixcbiAgICAgICAgaXNGYXZvcml0ZT86IGJvb2xlYW4sXG4gICAgICAgIGlzQWx3YXlzU2VsZWN0ZWQ/OiBib29sZWFuLFxuICAgICAgICBmdWVsTWFya2VyQ2xhc3M/OiBzdHJpbmcsXG4gICAgICAgIHNlY29uZExhYmVsTmFtZT86IHN0cmluZ1xuICAgICk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgbWFya2VyRWxlbWVudHMgPSB0aGlzLm1hcmtlckVsZW1lbnRzLmdldFZhbHVlKCk7XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXNNYXJrZXJJY29uID0gbWFya2VyRWxlbWVudHMuZmluZChcbiAgICAgICAgICAgIChpY29uKSA9PiBpY29uLmlkID09PSAnbWFya2VyLScgKyBtYXJrZXJJZFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChwcmV2aW91c01hcmtlckljb24pIHJldHVybiBwcmV2aW91c01hcmtlckljb247XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbWFya2VyRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICBtYXJrZXJFbGVtZW50LFxuICAgICAgICAgICAgICAgICdpZCcsXG4gICAgICAgICAgICAgICAgJ21hcmtlci0nICsgbWFya2VySWRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG1hcmtlckVsZW1lbnQsICdtYXJrZXItaWNvbicpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXJrZXJTdmcgPSBpc0Nsb3NlZFxuICAgICAgICAgICAgICAgID8gTWFwTWFya2VySWNvbnNDb25zdGFudHMuY2xvc2VkTWFya2VyXG4gICAgICAgICAgICAgICAgOiBpc0Zhdm9yaXRlXG4gICAgICAgICAgICAgICAgICA/IE1hcE1hcmtlckljb25zQ29uc3RhbnRzLmZhdm9yaXRlTWFya2VyXG4gICAgICAgICAgICAgICAgICA6IE1hcE1hcmtlckljb25zQ29uc3RhbnRzLmRlZmF1bHRNYXJrZXI7XG5cbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkobWFya2VyRWxlbWVudCwgJ2lubmVySFRNTCcsIG1hcmtlclN2Zyk7XG5cbiAgICAgICAgICAgIGlmIChsYWJlbE5hbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXJrZXJMYWJlbEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobWFya2VyTGFiZWxFbGVtZW50LCAnbWFya2VyLWxhYmVsJyk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBtYXJrZXJMYWJlbFRleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobWFya2VyTGFiZWxFbGVtZW50LCAnbWFya2VyLWxhYmVsLXRleHQnKTtcblxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgIG1hcmtlckxhYmVsVGV4dCxcbiAgICAgICAgICAgICAgICAgICAgJ2lubmVySFRNTCcsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsTmFtZS50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQobWFya2VyTGFiZWxFbGVtZW50LCBtYXJrZXJMYWJlbFRleHQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHNlY29uZExhYmVsTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWNvbmRMYWJlbEVsZW1lbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZExhYmVsRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICdtYXJrZXItbGFiZWwtc2Vjb25kLXRleHQnXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3Moc2Vjb25kTGFiZWxFbGVtZW50LCAnY2EtZm9udC1ib2xkJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3Moc2Vjb25kTGFiZWxFbGVtZW50LCAnbGluZS1jbGFtcC0xJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZExhYmVsRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICdpbm5lckhUTUwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kTGFiZWxOYW1lLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFya2VyTGFiZWxFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kTGFiZWxFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhtYXJrZXJMYWJlbFRleHQsICdsaW5lLWNsYW1wLTEnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKG1hcmtlckVsZW1lbnQsIG1hcmtlckxhYmVsRWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpc0Fsd2F5c1NlbGVjdGVkKVxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobWFya2VyRWxlbWVudCwgJ3NlbGVjdGVkLXBlcm1hbmVudGx5Jyk7XG5cbiAgICAgICAgICAgIGlmIChmdWVsTWFya2VyQ2xhc3MgJiYgIWlzQ2xvc2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhtYXJrZXJFbGVtZW50LCAnZnVlbC1pY29uJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhtYXJrZXJFbGVtZW50LCBmdWVsTWFya2VyQ2xhc3MpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXJrZXJFbGVtZW50cy5wdXNoKG1hcmtlckVsZW1lbnQpO1xuXG4gICAgICAgICAgICB0aGlzLm1hcmtlckVsZW1lbnRzLm5leHQobWFya2VyRWxlbWVudHMpO1xuXG4gICAgICAgICAgICByZXR1cm4gbWFya2VyRWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDbHVzdGVyTWFya2VySWNvbihcbiAgICAgICAgbWFya2VyRGF0YTogSU1hcE1hcmtlcnMsXG4gICAgICAgIGlzRnVlbE1hcmtlcj86IGJvb2xlYW5cbiAgICApOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJFbGVtZW50cyA9IHRoaXMuY2x1c3RlckVsZW1lbnRzLmdldFZhbHVlKCk7XG5cbiAgICAgICAgY29uc3QgY2x1c3RlcklkID0gdGhpcy5jcmVhdGVDbHVzdGVySWQobWFya2VyRGF0YSk7XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXNDbHVzdGVySWNvbiA9IGNsdXN0ZXJFbGVtZW50cy5maW5kKFxuICAgICAgICAgICAgKGljb24pID0+IGljb24uaWQgPT09ICdjbHVzdGVyLScgKyBjbHVzdGVySWRcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAocHJldmlvdXNDbHVzdGVySWNvbikgcmV0dXJuIHByZXZpb3VzQ2x1c3Rlckljb247XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbWFya2VyRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICBtYXJrZXJFbGVtZW50LFxuICAgICAgICAgICAgICAgICdpZCcsXG4gICAgICAgICAgICAgICAgJ2NsdXN0ZXItJyArIGNsdXN0ZXJJZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobWFya2VyRWxlbWVudCwgJ2NsdXN0ZXItaWNvbicpO1xuXG4gICAgICAgICAgICBpZiAoaXNGdWVsTWFya2VyKVxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobWFya2VyRWxlbWVudCwgJ2Z1ZWwtaWNvbicpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXJrZXJTdmcgPSBNYXBNYXJrZXJJY29uSGVscGVyLmdldENsdXN0ZXJNYXJrZXIoXG4gICAgICAgICAgICAgICAgbWFya2VyRGF0YS5kYXRhLmNvdW50LFxuICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRnVlbE1hcmtlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkobWFya2VyRWxlbWVudCwgJ2lubmVySFRNTCcsIG1hcmtlclN2Zyk7XG4gICAgICAgICAgICBjbHVzdGVyRWxlbWVudHMucHVzaChtYXJrZXJFbGVtZW50KTtcblxuICAgICAgICAgICAgdGhpcy5jbHVzdGVyRWxlbWVudHMubmV4dChjbHVzdGVyRWxlbWVudHMpO1xuXG4gICAgICAgICAgICByZXR1cm4gbWFya2VyRWxlbWVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSb3V0aW5nTWFya2VySWNvbihcbiAgICAgICAgbWFya2VyRGF0YTogSU1hcE1hcmtlcnMsXG4gICAgICAgIHN0b3BOdW1iZXI6IG51bWJlcixcbiAgICAgICAgc3RvcFR5cGU6IHN0cmluZyxcbiAgICAgICAgaXNTdG9wQ2hlY2tlZD86IGJvb2xlYW4sXG4gICAgICAgIGlzTGlnaHRNb2RlPzogYm9vbGVhbixcbiAgICAgICAgbGFiZWxOYW1lPzogc3RyaW5nXG4gICAgKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCByb3V0aW5nRWxlbWVudHMgPSB0aGlzLnJvdXRpbmdFbGVtZW50cy5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHJvdXRpbmdJZCA9IHRoaXMuY3JlYXRlUm91dGluZ0lkKG1hcmtlckRhdGEpO1xuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzQ2x1c3Rlckljb24gPSByb3V0aW5nRWxlbWVudHMuZmluZChcbiAgICAgICAgICAgIChpY29uKSA9PiBpY29uLmlkID09PSAncm91dGluZ01hcmtlci0nICsgcm91dGluZ0lkXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHByZXZpb3VzQ2x1c3Rlckljb24pIHJldHVybiBwcmV2aW91c0NsdXN0ZXJJY29uO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG1hcmtlckVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgbWFya2VyRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaWQnLFxuICAgICAgICAgICAgICAgICdyb3V0aW5nTWFya2VyLScgKyByb3V0aW5nSWRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG1hcmtlckVsZW1lbnQsICdyb3V0aW5nLWljb24nKTtcblxuICAgICAgICAgICAgY29uc3QgbWFya2VyU3ZnID0gTWFwTWFya2VySWNvbkhlbHBlci5nZXRSb3V0aW5nTWFya2VySWNvbihcbiAgICAgICAgICAgICAgICBzdG9wTnVtYmVyLFxuICAgICAgICAgICAgICAgIHN0b3BUeXBlLFxuICAgICAgICAgICAgICAgIGlzU3RvcENoZWNrZWQsXG4gICAgICAgICAgICAgICAgaXNMaWdodE1vZGVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KG1hcmtlckVsZW1lbnQsICdpbm5lckhUTUwnLCBtYXJrZXJTdmcpO1xuXG4gICAgICAgICAgICBpZiAobGFiZWxOYW1lKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFya2VyTGFiZWxFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG1hcmtlckxhYmVsRWxlbWVudCwgJ21hcmtlci1sYWJlbCcpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgIG1hcmtlckxhYmVsRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgJ2lubmVySFRNTCcsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsTmFtZS50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKG1hcmtlckVsZW1lbnQsIG1hcmtlckxhYmVsRWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJvdXRpbmdFbGVtZW50cy5wdXNoKG1hcmtlckVsZW1lbnQpO1xuXG4gICAgICAgICAgICB0aGlzLnJvdXRpbmdFbGVtZW50cy5uZXh0KHJvdXRpbmdFbGVtZW50cyk7XG5cbiAgICAgICAgICAgIHJldHVybiBtYXJrZXJFbGVtZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZUNsdXN0ZXJJZChjbHVzdGVyRGF0YTogSU1hcE1hcmtlcnMpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBjbHVzdGVyTWFya2VycyA9IHRoaXMuY2x1c3Rlck1hcmtlcklkcy5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IGNsdXN0ZXJJZCA9IGNsdXN0ZXJNYXJrZXJzLmZpbmQoXG4gICAgICAgICAgICAoaXRlbSkgPT5cbiAgICAgICAgICAgICAgICBjbHVzdGVyRGF0YS5wb3NpdGlvbi5sYXQgPT09IGl0ZW0ucG9zaXRpb24ubGF0ICYmXG4gICAgICAgICAgICAgICAgY2x1c3RlckRhdGEucG9zaXRpb24ubG5nID09PSBpdGVtLnBvc2l0aW9uLmxuZ1xuICAgICAgICApPy5pZDtcblxuICAgICAgICBpZiAoY2x1c3RlcklkKSByZXR1cm4gY2x1c3RlcklkO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0lkID0gY2x1c3Rlck1hcmtlcnMubGVuZ3RoICsgMTtcblxuICAgICAgICAgICAgY29uc3QgbmV3RGF0YSA9IHtcbiAgICAgICAgICAgICAgICAuLi5jbHVzdGVyRGF0YSxcbiAgICAgICAgICAgICAgICBpZDogbmV3SWQsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjbHVzdGVyTWFya2Vycy5wdXNoKG5ld0RhdGEpO1xuICAgICAgICAgICAgdGhpcy5jbHVzdGVyTWFya2VySWRzLm5leHQoY2x1c3Rlck1hcmtlcnMpO1xuXG4gICAgICAgICAgICByZXR1cm4gbmV3SWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlUm91dGluZ0lkKG1hcmtlckRhdGE6IElNYXBNYXJrZXJzKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgcm91dGluZ01hcmtlcnMgPSB0aGlzLnJvdXRpbmdNYXJrZXJJZHMuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCByb3V0aW5nSWQgPSByb3V0aW5nTWFya2Vycy5maW5kKFxuICAgICAgICAgICAgKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgbWFya2VyRGF0YS5wb3NpdGlvbi5sYXQgPT09IGl0ZW0ucG9zaXRpb24ubGF0ICYmXG4gICAgICAgICAgICAgICAgbWFya2VyRGF0YS5wb3NpdGlvbi5sbmcgPT09IGl0ZW0ucG9zaXRpb24ubG5nXG4gICAgICAgICk/LmlkO1xuXG4gICAgICAgIGlmIChyb3V0aW5nSWQpIHJldHVybiByb3V0aW5nSWQ7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbmV3SWQgPSByb3V0aW5nTWFya2Vycy5sZW5ndGggKyAxO1xuXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRhID0ge1xuICAgICAgICAgICAgICAgIC4uLm1hcmtlckRhdGEsXG4gICAgICAgICAgICAgICAgaWQ6IG5ld0lkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcm91dGluZ01hcmtlcnMucHVzaChuZXdEYXRhKTtcbiAgICAgICAgICAgIHRoaXMucm91dGluZ01hcmtlcklkcy5uZXh0KHJvdXRpbmdNYXJrZXJzKTtcblxuICAgICAgICAgICAgcmV0dXJuIG5ld0lkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0TWFya2Vyc0RhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2x1c3Rlck1hcmtlcklkcy5uZXh0KFtdKTtcbiAgICAgICAgdGhpcy5yb3V0aW5nTWFya2VySWRzLm5leHQoW10pO1xuICAgICAgICB0aGlzLm1hcmtlckVsZW1lbnRzLm5leHQoW10pO1xuICAgICAgICB0aGlzLmNsdXN0ZXJFbGVtZW50cy5uZXh0KFtdKTtcbiAgICAgICAgdGhpcy5yb3V0aW5nRWxlbWVudHMubmV4dChbXSk7XG4gICAgfVxufVxuIl19
|