{"version":3,"sources":["vendor/ember-cli/app-prefix.js","adept-iq/adapters/-avlm-avlmService.js","adept-iq/adapters/-bs-bookingManagement.js","adept-iq/adapters/-cs-configService.js","adept-iq/adapters/-dispatch.js","adept-iq/adapters/-ss-schedulingService.js","adept-iq/adapters/-sso-ssoService.js","adept-iq/adapters/-tm-tripManagement.js","adept-iq/adapters/account.js","adept-iq/adapters/address-lookup.js","adept-iq/adapters/application.js","adept-iq/adapters/avlm-route-exec-event.js","adept-iq/adapters/break-type.js","adept-iq/adapters/cancel-type.js","adept-iq/adapters/cluster.js","adept-iq/adapters/cs-config-category.js","adept-iq/adapters/cs-config-item.js","adept-iq/adapters/cs-config-permission.js","adept-iq/adapters/dashboard.js","adept-iq/adapters/driver-break.js","adept-iq/adapters/driver-shift.js","adept-iq/adapters/driver.js","adept-iq/adapters/fare-type.js","adept-iq/adapters/leg-travel-need.js","adept-iq/adapters/location.js","adept-iq/adapters/no-show-reason-code.js","adept-iq/adapters/place.js","adept-iq/adapters/provider-type.js","adept-iq/adapters/provider.js","adept-iq/adapters/rider.js","adept-iq/adapters/route-place.js","adept-iq/adapters/route.js","adept-iq/adapters/schedule.js","adept-iq/adapters/sso-role.js","adept-iq/adapters/sso-user.js","adept-iq/adapters/stop.js","adept-iq/adapters/tm-activity-log.js","adept-iq/adapters/tm-booking.js","adept-iq/adapters/tm-canned-message-template.js","adept-iq/adapters/tm-canned-message.js","adept-iq/adapters/tm-common-operational-attribute.js","adept-iq/adapters/tm-config-parameter-value.js","adept-iq/adapters/tm-driver.js","adept-iq/adapters/tm-rider-profile.js","adept-iq/adapters/tm-rider.js","adept-iq/adapters/tm-route-exec.js","adept-iq/adapters/tm-text-message.js","adept-iq/adapters/travel-need-type.js","adept-iq/adapters/trip.js","adept-iq/adapters/vehicle-route.js","adept-iq/adapters/vehicle.js","adept-iq/adapters/zone.js","adept-iq/app.js","adept-iq/authenticators/sso.js","adept-iq/authorizers/sso.js","adept-iq/breakpoints.js","adept-iq/classes/circles/base.js","adept-iq/classes/circles/stand.js","adept-iq/classes/dashboard-instance.js","adept-iq/classes/markers/agency.js","adept-iq/classes/markers/base.js","adept-iq/classes/markers/stop.js","adept-iq/classes/markers/vehicle.js","adept-iq/classes/polygons/base.js","adept-iq/classes/polygons/zone.js","adept-iq/classes/polylines/base.js","adept-iq/classes/polylines/route.js","adept-iq/classes/polylines/trip.js","adept-iq/classes/shapes/base.js","adept-iq/classes/shapes/stand.js","adept-iq/classes/shapes/zone.js","adept-iq/classes/tree-nodes/base.js","adept-iq/classes/tree-nodes/category.js","adept-iq/classes/tree-nodes/object.js","adept-iq/classes/tree-nodes/value.js","adept-iq/classes/widget.js","adept-iq/components/-dynamic-element-alt.js","adept-iq/components/-dynamic-element.js","adept-iq/components/as-scrollable.js","adept-iq/components/basic-dropdown-content.js","adept-iq/components/basic-dropdown-trigger.js","adept-iq/components/basic-dropdown.js","adept-iq/components/basic-dropdown/content-element.js","adept-iq/components/basic-dropdown/content.js","adept-iq/components/basic-dropdown/trigger.js","adept-iq/components/bs-accordion.js","adept-iq/components/bs-accordion/item.js","adept-iq/components/bs-accordion/item/body.js","adept-iq/components/bs-accordion/item/title.js","adept-iq/components/bs-alert.js","adept-iq/components/bs-button-group.js","adept-iq/components/bs-button-group/button.js","adept-iq/components/bs-button.js","adept-iq/components/bs-carousel.js","adept-iq/components/bs-carousel/slide.js","adept-iq/components/bs-collapse.js","adept-iq/components/bs-dropdown.js","adept-iq/components/bs-dropdown/button.js","adept-iq/components/bs-dropdown/menu.js","adept-iq/components/bs-dropdown/menu/divider.js","adept-iq/components/bs-dropdown/menu/item.js","adept-iq/components/bs-dropdown/menu/link-to.js","adept-iq/components/bs-dropdown/toggle.js","adept-iq/components/bs-form.js","adept-iq/components/bs-form/element.js","adept-iq/components/bs-form/element/control.js","adept-iq/components/bs-form/element/control/checkbox.js","adept-iq/components/bs-form/element/control/input.js","adept-iq/components/bs-form/element/control/textarea.js","adept-iq/components/bs-form/element/errors.js","adept-iq/components/bs-form/element/feedback-icon.js","adept-iq/components/bs-form/element/help-text.js","adept-iq/components/bs-form/element/label.js","adept-iq/components/bs-form/element/layout/horizontal.js","adept-iq/components/bs-form/element/layout/horizontal/checkbox.js","adept-iq/components/bs-form/element/layout/inline.js","adept-iq/components/bs-form/element/layout/inline/checkbox.js","adept-iq/components/bs-form/element/layout/vertical.js","adept-iq/components/bs-form/element/layout/vertical/checkbox.js","adept-iq/components/bs-form/group.js","adept-iq/components/bs-modal-simple.js","adept-iq/components/bs-modal.js","adept-iq/components/bs-modal/body.js","adept-iq/components/bs-modal/dialog.js","adept-iq/components/bs-modal/footer.js","adept-iq/components/bs-modal/header.js","adept-iq/components/bs-modal/header/close.js","adept-iq/components/bs-modal/header/title.js","adept-iq/components/bs-nav.js","adept-iq/components/bs-nav/item.js","adept-iq/components/bs-nav/link-to.js","adept-iq/components/bs-navbar.js","adept-iq/components/bs-navbar/content.js","adept-iq/components/bs-navbar/link-to.js","adept-iq/components/bs-navbar/nav.js","adept-iq/components/bs-navbar/toggle.js","adept-iq/components/bs-popover.js","adept-iq/components/bs-popover/element.js","adept-iq/components/bs-progress.js","adept-iq/components/bs-progress/bar.js","adept-iq/components/bs-tab.js","adept-iq/components/bs-tab/pane.js","adept-iq/components/bs-tooltip.js","adept-iq/components/bs-tooltip/element.js","adept-iq/components/ember-chart.js","adept-iq/components/ember-flatpickr.js","adept-iq/components/ember-modal-dialog-positioned-container.js","adept-iq/components/ember-modal-dialog/-basic-dialog.js","adept-iq/components/ember-modal-dialog/-in-place-dialog.js","adept-iq/components/ember-modal-dialog/-liquid-dialog.js","adept-iq/components/ember-modal-dialog/-liquid-tether-dialog.js","adept-iq/components/ember-modal-dialog/-tether-dialog.js","adept-iq/components/ember-popper-targeting-parent.js","adept-iq/components/ember-popper.js","adept-iq/components/ember-scrollable.js","adept-iq/components/ember-scrollbar.js","adept-iq/components/ember-timepicker.js","adept-iq/components/ember-wormhole.js","adept-iq/components/flash-message.js","adept-iq/components/grid-stack-item.js","adept-iq/components/grid-stack.js","adept-iq/components/labeled-radio-button.js","adept-iq/components/light-table.js","adept-iq/components/light-table/cells/base.js","adept-iq/components/light-table/columns/base.js","adept-iq/components/lt-body.js","adept-iq/components/lt-column-resizer.js","adept-iq/components/lt-foot.js","adept-iq/components/lt-head.js","adept-iq/components/lt-infinity.js","adept-iq/components/lt-row.js","adept-iq/components/lt-scrollable.js","adept-iq/components/lt-spanned-row.js","adept-iq/components/modal-container.js","adept-iq/components/modal-dialog.js","adept-iq/components/modal.js","adept-iq/components/power-calendar-multiple.js","adept-iq/components/power-calendar-multiple/days.js","adept-iq/components/power-calendar-range.js","adept-iq/components/power-calendar-range/days.js","adept-iq/components/power-calendar.js","adept-iq/components/power-calendar/days.js","adept-iq/components/power-calendar/nav.js","adept-iq/components/power-select-multiple-with-create.js","adept-iq/components/power-select-multiple.js","adept-iq/components/power-select-multiple/trigger.js","adept-iq/components/power-select-with-create.js","adept-iq/components/power-select-with-create/suggested-option.js","adept-iq/components/power-select.js","adept-iq/components/power-select/before-options.js","adept-iq/components/power-select/options.js","adept-iq/components/power-select/placeholder.js","adept-iq/components/power-select/power-select-group.js","adept-iq/components/power-select/search-message.js","adept-iq/components/power-select/trigger.js","adept-iq/components/radio-button-input.js","adept-iq/components/radio-button.js","adept-iq/components/range-slider.js","adept-iq/components/resize-detector.js","adept-iq/components/scroll-content-element.js","adept-iq/components/sortable-group.js","adept-iq/components/sortable-item.js","adept-iq/components/spectrum-color-picker.js","adept-iq/components/tableau-view.js","adept-iq/components/ui-slider.js","adept-iq/components/vertical-collection.js","adept-iq/config/active-context-graph.js","adept-iq/config/api-preloads.js","adept-iq/config/api-urls.js","adept-iq/config/column-types.js","adept-iq/config/comparison-functions.js","adept-iq/config/filter-types.js","adept-iq/config/icon-paths.js","adept-iq/config/key-maps.js","adept-iq/config/map-layers.js","adept-iq/config/otp-criteria.js","adept-iq/config/server-relationships.js","adept-iq/config/tomtom.js","adept-iq/config/widget-groups.js","adept-iq/config/widget-types.js","adept-iq/config/zone-polygon.js","adept-iq/flash/object.js","adept-iq/helpers/-element.js","adept-iq/helpers/abs.js","adept-iq/helpers/acos.js","adept-iq/helpers/acosh.js","adept-iq/helpers/add.js","adept-iq/helpers/and.js","adept-iq/helpers/app-version.js","adept-iq/helpers/append.js","adept-iq/helpers/array.js","adept-iq/helpers/asin.js","adept-iq/helpers/asinh.js","adept-iq/helpers/assign.js","adept-iq/helpers/atan.js","adept-iq/helpers/atan2.js","adept-iq/helpers/atanh.js","adept-iq/helpers/bs-contains.js","adept-iq/helpers/bs-eq.js","adept-iq/helpers/camelize.js","adept-iq/helpers/cancel-all.js","adept-iq/helpers/capitalize.js","adept-iq/helpers/cbrt.js","adept-iq/helpers/ceil.js","adept-iq/helpers/chunk.js","adept-iq/helpers/classify.js","adept-iq/helpers/clz32.js","adept-iq/helpers/compact.js","adept-iq/helpers/compute.js","adept-iq/helpers/contains.js","adept-iq/helpers/cos.js","adept-iq/helpers/cosh.js","adept-iq/helpers/dasherize.js","adept-iq/helpers/dec.js","adept-iq/helpers/div.js","adept-iq/helpers/drop.js","adept-iq/helpers/ember-power-select-is-group.js","adept-iq/helpers/ember-power-select-is-selected.js","adept-iq/helpers/ember-power-select-true-string-if-present.js","adept-iq/helpers/eq.js","adept-iq/helpers/exp.js","adept-iq/helpers/expm1.js","adept-iq/helpers/filter-by.js","adept-iq/helpers/filter.js","adept-iq/helpers/find-by.js","adept-iq/helpers/firstletter.js","adept-iq/helpers/flatten.js","adept-iq/helpers/floor.js","adept-iq/helpers/fround.js","adept-iq/helpers/gcd.js","adept-iq/helpers/group-by.js","adept-iq/helpers/gt.js","adept-iq/helpers/gte.js","adept-iq/helpers/has-next.js","adept-iq/helpers/has-previous.js","adept-iq/helpers/html-safe.js","adept-iq/helpers/humanize.js","adept-iq/helpers/hypot.js","adept-iq/helpers/idandindex.js","adept-iq/helpers/ignore-children.js","adept-iq/helpers/imul.js","adept-iq/helpers/inc.js","adept-iq/helpers/intersect.js","adept-iq/helpers/invoke.js","adept-iq/helpers/is-after.js","adept-iq/helpers/is-array.js","adept-iq/helpers/is-before.js","adept-iq/helpers/is-between.js","adept-iq/helpers/is-empty.js","adept-iq/helpers/is-equal.js","adept-iq/helpers/is-same-or-after.js","adept-iq/helpers/is-same-or-before.js","adept-iq/helpers/is-same.js","adept-iq/helpers/join.js","adept-iq/helpers/lcm.js","adept-iq/helpers/log-e.js","adept-iq/helpers/log10.js","adept-iq/helpers/log1p.js","adept-iq/helpers/log2.js","adept-iq/helpers/lowercase.js","adept-iq/helpers/lt.js","adept-iq/helpers/lte.js","adept-iq/helpers/map-by.js","adept-iq/helpers/map.js","adept-iq/helpers/max.js","adept-iq/helpers/media.js","adept-iq/helpers/min.js","adept-iq/helpers/mod.js","adept-iq/helpers/moment-add.js","adept-iq/helpers/moment-calendar.js","adept-iq/helpers/moment-diff.js","adept-iq/helpers/moment-duration.js","adept-iq/helpers/moment-format.js","adept-iq/helpers/moment-from-now.js","adept-iq/helpers/moment-from.js","adept-iq/helpers/moment-subtract.js","adept-iq/helpers/moment-to-date.js","adept-iq/helpers/moment-to-now.js","adept-iq/helpers/moment-to.js","adept-iq/helpers/moment-unix.js","adept-iq/helpers/moment.js","adept-iq/helpers/mult.js","adept-iq/helpers/next.js","adept-iq/helpers/noop.js","adept-iq/helpers/not-eq.js","adept-iq/helpers/not.js","adept-iq/helpers/now.js","adept-iq/helpers/object-at.js","adept-iq/helpers/optional.js","adept-iq/helpers/or.js","adept-iq/helpers/perform.js","adept-iq/helpers/pipe-action.js","adept-iq/helpers/pipe.js","adept-iq/helpers/pluralize.js","adept-iq/helpers/popupmodelpath.js","adept-iq/helpers/pow.js","adept-iq/helpers/previous.js","adept-iq/helpers/queue.js","adept-iq/helpers/random.js","adept-iq/helpers/range.js","adept-iq/helpers/reduce.js","adept-iq/helpers/reject-by.js","adept-iq/helpers/repeat.js","adept-iq/helpers/reverse.js","adept-iq/helpers/round.js","adept-iq/helpers/route-action.js","adept-iq/helpers/send.js","adept-iq/helpers/shuffle.js","adept-iq/helpers/sign.js","adept-iq/helpers/sin.js","adept-iq/helpers/singularize.js","adept-iq/helpers/slice.js","adept-iq/helpers/sort-by.js","adept-iq/helpers/sqrt.js","adept-iq/helpers/sub.js","adept-iq/helpers/take.js","adept-iq/helpers/tan.js","adept-iq/helpers/tanh.js","adept-iq/helpers/task.js","adept-iq/helpers/titleandkey.js","adept-iq/helpers/titlecase.js","adept-iq/helpers/titleize.js","adept-iq/helpers/toggle-action.js","adept-iq/helpers/toggle.js","adept-iq/helpers/trim.js","adept-iq/helpers/trunc.js","adept-iq/helpers/truncate.js","adept-iq/helpers/underscore.js","adept-iq/helpers/union.js","adept-iq/helpers/unix.js","adept-iq/helpers/uppercase.js","adept-iq/helpers/utc.js","adept-iq/helpers/w.js","adept-iq/helpers/without.js","adept-iq/helpers/xor.js","adept-iq/initializers/add-modals-container.js","adept-iq/initializers/app-version.js","adept-iq/initializers/container-debug-adapter.js","adept-iq/initializers/debug.js","adept-iq/initializers/deprecations.js","adept-iq/initializers/ember-cli-mirage.js","adept-iq/initializers/ember-concurrency.js","adept-iq/initializers/ember-data.js","adept-iq/initializers/ember-responsive-breakpoints.js","adept-iq/initializers/ember-simple-auth.js","adept-iq/initializers/export-application-global.js","adept-iq/initializers/flash-messages.js","adept-iq/initializers/load-bootstrap-config.js","adept-iq/initializers/model-fragments.js","adept-iq/initializers/tomtom.js","adept-iq/initializers/unknownproperty.js","adept-iq/initializers/viewport-config.js","adept-iq/initializers/warnings.js","adept-iq/instance-initializers/ember-cli-mirage-autostart.js","adept-iq/instance-initializers/ember-data.js","adept-iq/instance-initializers/ember-simple-auth.js","adept-iq/mirage/config.js","adept-iq/mixins/iq-model-identification.js","adept-iq/mixins/otp-label.js","adept-iq/mixins/status-value.js","adept-iq/mixins/table-row-value.js","adept-iq/mixins/trip-attributes.js","adept-iq/mixins/trip-predefined-notes.js","adept-iq/mixins/zone-label.js","adept-iq/mixins/zone-style.js","adept-iq/models/-pick-drop.js","adept-iq/models/POI.js","adept-iq/models/account.js","adept-iq/models/activity-log.js","adept-iq/models/address-lookup.js","adept-iq/models/address.js","adept-iq/models/agency-marker.js","adept-iq/models/alert.js","adept-iq/models/attribute.js","adept-iq/models/attributes.js","adept-iq/models/avl.js","adept-iq/models/avlm-driver.js","adept-iq/models/avlm-route-exec-event.js","adept-iq/models/avlm-route.js","adept-iq/models/avlm-vehicle.js","adept-iq/models/break-type.js","adept-iq/models/bs-subscription-exclusion.js","adept-iq/models/bs-subscription-recurrence-pattern.js","adept-iq/models/bs-subscription-travel-need.js","adept-iq/models/bs-subscription.js","adept-iq/models/call-line.js","adept-iq/models/cancel-type.js","adept-iq/models/cluster.js","adept-iq/models/coord.js","adept-iq/models/cs-config-category.js","adept-iq/models/cs-config-item.js","adept-iq/models/cs-config-permission.js","adept-iq/models/dashboard.js","adept-iq/models/driver-break-event.js","adept-iq/models/driver-break.js","adept-iq/models/driver-event.js","adept-iq/models/driver-shift.js","adept-iq/models/driver-state.js","adept-iq/models/driver.js","adept-iq/models/eligibility-type.js","adept-iq/models/fare-type.js","adept-iq/models/favorite-pickup.js","adept-iq/models/favorite-trip.js","adept-iq/models/fixed-price-trip.js","adept-iq/models/invitation.js","adept-iq/models/iq-driver.js","adept-iq/models/iq-rider.js","adept-iq/models/iq-route.js","adept-iq/models/iq-stop.js","adept-iq/models/iq-trip.js","adept-iq/models/iq-vehicle.js","adept-iq/models/leg-subscription.js","adept-iq/models/leg-travel-need.js","adept-iq/models/leg.js","adept-iq/models/location.js","adept-iq/models/message.js","adept-iq/models/modal.js","adept-iq/models/multientry-catchall.js","adept-iq/models/no-show-reason-code.js","adept-iq/models/passenger-type.js","adept-iq/models/place.js","adept-iq/models/poi-address-search.js","adept-iq/models/provider-type.js","adept-iq/models/provider.js","adept-iq/models/rider-address-location.js","adept-iq/models/rider-eligibility.js","adept-iq/models/rider-info.js","adept-iq/models/rider-location.js","adept-iq/models/rider.js","adept-iq/models/route-place.js","adept-iq/models/route.js","adept-iq/models/schedule.js","adept-iq/models/segment.js","adept-iq/models/service-window.js","adept-iq/models/sso-role.js","adept-iq/models/sso-user.js","adept-iq/models/stand.js","adept-iq/models/stc.js","adept-iq/models/stop.js","adept-iq/models/subscription-exclusion.js","adept-iq/models/subscription-recurrence-pattern.js","adept-iq/models/subscription-travel-need.js","adept-iq/models/subscription.js","adept-iq/models/system-config-type.js","adept-iq/models/tm-activity-log.js","adept-iq/models/tm-address.js","adept-iq/models/tm-agenda.js","adept-iq/models/tm-booking.js","adept-iq/models/tm-canned-message-template.js","adept-iq/models/tm-canned-message.js","adept-iq/models/tm-common-operational-attribute.js","adept-iq/models/tm-config-parameter-value.js","adept-iq/models/tm-coord.js","adept-iq/models/tm-driver.js","adept-iq/models/tm-exception.js","adept-iq/models/tm-item.js","adept-iq/models/tm-operator.js","adept-iq/models/tm-passenger-event.js","adept-iq/models/tm-passenger.js","adept-iq/models/tm-pickup-window.js","adept-iq/models/tm-price.js","adept-iq/models/tm-related-id.js","adept-iq/models/tm-requested-provider.js","adept-iq/models/tm-required-attribute.js","adept-iq/models/tm-rider-profile.js","adept-iq/models/tm-rider.js","adept-iq/models/tm-route-exec.js","adept-iq/models/tm-source.js","adept-iq/models/tm-stop-point.js","adept-iq/models/tm-subscription.js","adept-iq/models/tm-text-message.js","adept-iq/models/tm-tip.js","adept-iq/models/travel-need-type.js","adept-iq/models/travel-need.js","adept-iq/models/trip-exec-event.js","adept-iq/models/trip.js","adept-iq/models/vehicle-capacity-config.js","adept-iq/models/vehicle-capacity-type.js","adept-iq/models/vehicle-event.js","adept-iq/models/vehicle-route.js","adept-iq/models/vehicle-state.js","adept-iq/models/vehicle-type.js","adept-iq/models/vehicle.js","adept-iq/models/widget-config.js","adept-iq/models/zone-stat.js","adept-iq/models/zone.js","adept-iq/modifiers/did-insert.js","adept-iq/modifiers/did-update.js","adept-iq/modifiers/will-destroy.js","adept-iq/pods/application/controller.js","adept-iq/pods/application/route.js","adept-iq/pods/application/template.js","adept-iq/pods/components/close-schedule/component.js","adept-iq/pods/components/close-schedule/template.js","adept-iq/pods/components/dashboard-picker/component.js","adept-iq/pods/components/dashboard-picker/template.js","adept-iq/pods/components/dashboard-save-as/component.js","adept-iq/pods/components/dashboard-save-as/template.js","adept-iq/pods/components/ember-chart-fix/component.js","adept-iq/pods/components/ember-cli-tableau/component.js","adept-iq/pods/components/forgot-form/component.js","adept-iq/pods/components/forgot-form/template.js","adept-iq/pods/components/form-components/account-model/component.js","adept-iq/pods/components/form-components/account-model/template.js","adept-iq/pods/components/form-components/account/component.js","adept-iq/pods/components/form-components/account/template.js","adept-iq/pods/components/form-components/add-new-message/component.js","adept-iq/pods/components/form-components/add-new-message/config.js","adept-iq/pods/components/form-components/add-new-message/template.js","adept-iq/pods/components/form-components/availabilities/component.js","adept-iq/pods/components/form-components/availabilities/template.js","adept-iq/pods/components/form-components/boolean/component.js","adept-iq/pods/components/form-components/boolean/template.js","adept-iq/pods/components/form-components/bs-subscriptions/component.js","adept-iq/pods/components/form-components/bs-subscriptions/template.js","adept-iq/pods/components/form-components/bs-travel-needs/component.js","adept-iq/pods/components/form-components/bs-travel-needs/template.js","adept-iq/pods/components/form-components/button-model/component.js","adept-iq/pods/components/form-components/button-model/template.js","adept-iq/pods/components/form-components/combobox/component.js","adept-iq/pods/components/form-components/combobox/template.js","adept-iq/pods/components/form-components/date/component.js","adept-iq/pods/components/form-components/date/template.js","adept-iq/pods/components/form-components/dateflatpickr/component.js","adept-iq/pods/components/form-components/dateflatpickr/template.js","adept-iq/pods/components/form-components/datetime/component.js","adept-iq/pods/components/form-components/datetime/template.js","adept-iq/pods/components/form-components/datetimeflatpickr/component.js","adept-iq/pods/components/form-components/datetimeflatpickr/template.js","adept-iq/pods/components/form-components/eligibilities/component.js","adept-iq/pods/components/form-components/eligibilities/template.js","adept-iq/pods/components/form-components/enum/component.js","adept-iq/pods/components/form-components/enum/template.js","adept-iq/pods/components/form-components/input/template.js","adept-iq/pods/components/form-components/locations/component.js","adept-iq/pods/components/form-components/locations/template.js","adept-iq/pods/components/form-components/multientry/component.js","adept-iq/pods/components/form-components/multientry/template.js","adept-iq/pods/components/form-components/multiselect/component.js","adept-iq/pods/components/form-components/multiselect/template.js","adept-iq/pods/components/form-components/number/component.js","adept-iq/pods/components/form-components/number/template.js","adept-iq/pods/components/form-components/phone-model/component.js","adept-iq/pods/components/form-components/phone-model/template.js","adept-iq/pods/components/form-components/populatecli/component.js","adept-iq/pods/components/form-components/radio/component.js","adept-iq/pods/components/form-components/radio/template.js","adept-iq/pods/components/form-components/routeenum/component.js","adept-iq/pods/components/form-components/routeenum/template.js","adept-iq/pods/components/form-components/savecli/component.js","adept-iq/pods/components/form-components/savecli/template.js","adept-iq/pods/components/form-components/scheduleavailabilities/component.js","adept-iq/pods/components/form-components/scheduleavailabilities/template.js","adept-iq/pods/components/form-components/search-datetimeflatpickr/component.js","adept-iq/pods/components/form-components/search-datetimeflatpickr/template.js","adept-iq/pods/components/form-components/search-locations/component.js","adept-iq/pods/components/form-components/search-locations/template.js","adept-iq/pods/components/form-components/search-text/component.js","adept-iq/pods/components/form-components/search-text/template.js","adept-iq/pods/components/form-components/searchable-enum-model/component.js","adept-iq/pods/components/form-components/searchable-enum-model/template.js","adept-iq/pods/components/form-components/searchable-enum/component.js","adept-iq/pods/components/form-components/searchable-enum/template.js","adept-iq/pods/components/form-components/select/component.js","adept-iq/pods/components/form-components/select/template.js","adept-iq/pods/components/form-components/shift-breaks/component.js","adept-iq/pods/components/form-components/shift-breaks/template.js","adept-iq/pods/components/form-components/specialtext/component.js","adept-iq/pods/components/form-components/specialtext/template.js","adept-iq/pods/components/form-components/subscriptions/component.js","adept-iq/pods/components/form-components/subscriptions/template.js","adept-iq/pods/components/form-components/text/component.js","adept-iq/pods/components/form-components/text/template.js","adept-iq/pods/components/form-components/time/component.js","adept-iq/pods/components/form-components/time/template.js","adept-iq/pods/components/form-components/timeflatpickr/component.js","adept-iq/pods/components/form-components/timeflatpickr/template.js","adept-iq/pods/components/form-components/travel-needs/component.js","adept-iq/pods/components/form-components/travel-needs/template.js","adept-iq/pods/components/generic-widgets/base-widget/component.js","adept-iq/pods/components/generic-widgets/chartjs-widget/component.js","adept-iq/pods/components/generic-widgets/chartjs-widget/template.js","adept-iq/pods/components/generic-widgets/column-widget/classes/checkbox-row.js","adept-iq/pods/components/generic-widgets/column-widget/classes/data-join.js","adept-iq/pods/components/generic-widgets/column-widget/classes/filter-column.js","adept-iq/pods/components/generic-widgets/column-widget/component.js","adept-iq/pods/components/generic-widgets/column-widget/template.js","adept-iq/pods/components/generic-widgets/column-widget/utils/compute-ordered-ids.js","adept-iq/pods/components/generic-widgets/dummy-widget/component.js","adept-iq/pods/components/generic-widgets/dummy-widget/template.js","adept-iq/pods/components/generic-widgets/form-widget/component.js","adept-iq/pods/components/generic-widgets/form-widget/section/component.js","adept-iq/pods/components/generic-widgets/form-widget/section/template.js","adept-iq/pods/components/generic-widgets/form-widget/template.js","adept-iq/pods/components/generic-widgets/map-widget/component.js","adept-iq/pods/components/generic-widgets/map-widget/template.js","adept-iq/pods/components/generic-widgets/side-drawer/component.js","adept-iq/pods/components/generic-widgets/side-drawer/side-drawer-body/component.js","adept-iq/pods/components/generic-widgets/side-drawer/side-drawer-body/template.js","adept-iq/pods/components/generic-widgets/side-drawer/side-drawer-header/component.js","adept-iq/pods/components/generic-widgets/side-drawer/side-drawer-header/template.js","adept-iq/pods/components/generic-widgets/side-drawer/template.js","adept-iq/pods/components/generic-widgets/tree-widget/component.js","adept-iq/pods/components/generic-widgets/tree-widget/template.js","adept-iq/pods/components/generic-widgets/tree-widget/tree-widget-row/component.js","adept-iq/pods/components/generic-widgets/tree-widget/tree-widget-row/template.js","adept-iq/pods/components/global-spinner/component.js","adept-iq/pods/components/global-spinner/template.js","adept-iq/pods/components/header-nav/component.js","adept-iq/pods/components/header-nav/template.js","adept-iq/pods/components/iq-widgets/accounts-widget/component.js","adept-iq/pods/components/iq-widgets/accounts-widget/config.js","adept-iq/pods/components/iq-widgets/activity-log-widget/component.js","adept-iq/pods/components/iq-widgets/activity-log-widget/config.js","adept-iq/pods/components/iq-widgets/address-lookup/component.js","adept-iq/pods/components/iq-widgets/address-lookup/config.js","adept-iq/pods/components/iq-widgets/alert-widget/component.js","adept-iq/pods/components/iq-widgets/alert-widget/config.js","adept-iq/pods/components/iq-widgets/assign-trip-2-route-widget/component.js","adept-iq/pods/components/iq-widgets/assign-trip-2-route-widget/config.js","adept-iq/pods/components/iq-widgets/bar-chart-widget/component.js","adept-iq/pods/components/iq-widgets/bar-chart-widget/template.js","adept-iq/pods/components/iq-widgets/box-widget/box-metric/component.js","adept-iq/pods/components/iq-widgets/box-widget/box-metric/template.js","adept-iq/pods/components/iq-widgets/box-widget/component.js","adept-iq/pods/components/iq-widgets/box-widget/template.js","adept-iq/pods/components/iq-widgets/cancel-type-form-widget/component.js","adept-iq/pods/components/iq-widgets/cancel-type-form-widget/config.js","adept-iq/pods/components/iq-widgets/cli-widget/component.js","adept-iq/pods/components/iq-widgets/cli-widget/template.js","adept-iq/pods/components/iq-widgets/column-widget/component.js","adept-iq/pods/components/iq-widgets/donut-chart-widget/component.js","adept-iq/pods/components/iq-widgets/donut-chart-widget/template.js","adept-iq/pods/components/iq-widgets/driver-breaks-form-widget/component.js","adept-iq/pods/components/iq-widgets/driver-breaks-form-widget/config.js","adept-iq/pods/components/iq-widgets/drivers-form-widget/component.js","adept-iq/pods/components/iq-widgets/drivers-form-widget/config.js","adept-iq/pods/components/iq-widgets/drivers-widget/component.js","adept-iq/pods/components/iq-widgets/drivers-widget/config.js","adept-iq/pods/components/iq-widgets/edit-settings-form-widget/component.js","adept-iq/pods/components/iq-widgets/edit-settings-form-widget/config.js","adept-iq/pods/components/iq-widgets/edit-settings-widget/component.js","adept-iq/pods/components/iq-widgets/edit-settings-widget/config.js","adept-iq/pods/components/iq-widgets/edit-settings-widget/data.js","adept-iq/pods/components/iq-widgets/edit-switch-trip-form-widget/component.js","adept-iq/pods/components/iq-widgets/edit-trip-form-widget/component.js","adept-iq/pods/components/iq-widgets/favorite-pickup-widget/component.js","adept-iq/pods/components/iq-widgets/favorite-pickup-widget/config.js","adept-iq/pods/components/iq-widgets/fixed-price-trip-widget/component.js","adept-iq/pods/components/iq-widgets/fixed-price-trip-widget/config.js","adept-iq/pods/components/iq-widgets/form-widget/component.js","adept-iq/pods/components/iq-widgets/gauge-widget/component.js","adept-iq/pods/components/iq-widgets/gauge-widget/gauge-chart/component.js","adept-iq/pods/components/iq-widgets/gauge-widget/template.js","adept-iq/pods/components/iq-widgets/map-widget/component.js","adept-iq/pods/components/iq-widgets/map-widget/config/arrow.js","adept-iq/pods/components/iq-widgets/map-widget/config/circle.js","adept-iq/pods/components/iq-widgets/map-widget/config/marker.js","adept-iq/pods/components/iq-widgets/map-widget/config/polygon.js","adept-iq/pods/components/iq-widgets/map-widget/config/polyline.js","adept-iq/pods/components/iq-widgets/map-widget/data-joins/base.js","adept-iq/pods/components/iq-widgets/map-widget/data-joins/circle.js","adept-iq/pods/components/iq-widgets/map-widget/data-joins/marker.js","adept-iq/pods/components/iq-widgets/map-widget/data-joins/polygon.js","adept-iq/pods/components/iq-widgets/map-widget/data-joins/polyline.js","adept-iq/pods/components/iq-widgets/map-widget/data-joins/shape.js","adept-iq/pods/components/iq-widgets/map-widget/decorations/arrow.js","adept-iq/pods/components/iq-widgets/map-widget/template.js","adept-iq/pods/components/iq-widgets/message-widget/component.js","adept-iq/pods/components/iq-widgets/message-widget/config.js","adept-iq/pods/components/iq-widgets/metrics-column-widget/component.js","adept-iq/pods/components/iq-widgets/metrics-column-widget/template.js","adept-iq/pods/components/iq-widgets/new-switch-trip-form-widget/component.js","adept-iq/pods/components/iq-widgets/new-trip-fixform-widget/component.js","adept-iq/pods/components/iq-widgets/new-trip-fixform-widget/config.js","adept-iq/pods/components/iq-widgets/new-trip-fixform-widget/template.js","adept-iq/pods/components/iq-widgets/new-trip-form-widget/component.js","adept-iq/pods/components/iq-widgets/no-show-reason-code/component.js","adept-iq/pods/components/iq-widgets/no-show-reason-code/config.js","adept-iq/pods/components/iq-widgets/noshow-event-form-widget/component.js","adept-iq/pods/components/iq-widgets/noshow-event-form-widget/config.js","adept-iq/pods/components/iq-widgets/noshow-event-stop-form-widget/component.js","adept-iq/pods/components/iq-widgets/noshow-event-stop-form-widget/config.js","adept-iq/pods/components/iq-widgets/passengers-form-widget/component.js","adept-iq/pods/components/iq-widgets/passengers-form-widget/config.js","adept-iq/pods/components/iq-widgets/passengers-widget/component.js","adept-iq/pods/components/iq-widgets/passengers-widget/config.js","adept-iq/pods/components/iq-widgets/poi-address-search-widget/component.js","adept-iq/pods/components/iq-widgets/poi-address-search-widget/config.js","adept-iq/pods/components/iq-widgets/report-widget/component.js","adept-iq/pods/components/iq-widgets/report-widget/template.js","adept-iq/pods/components/iq-widgets/report-widget1/component.js","adept-iq/pods/components/iq-widgets/report-widget1/template.js","adept-iq/pods/components/iq-widgets/report-widget2/component.js","adept-iq/pods/components/iq-widgets/report-widget2/template.js","adept-iq/pods/components/iq-widgets/report-widget3/component.js","adept-iq/pods/components/iq-widgets/report-widget3/template.js","adept-iq/pods/components/iq-widgets/report-widget4/component.js","adept-iq/pods/components/iq-widgets/report-widget4/template.js","adept-iq/pods/components/iq-widgets/rider-profile-widget/component.js","adept-iq/pods/components/iq-widgets/rider-profile-widget/config.js","adept-iq/pods/components/iq-widgets/routes-form-widget/component.js","adept-iq/pods/components/iq-widgets/routes-form-widget/config.js","adept-iq/pods/components/iq-widgets/routes-widget/component.js","adept-iq/pods/components/iq-widgets/routes-widget/config.js","adept-iq/pods/components/iq-widgets/routes-widget/routes-row/component.js","adept-iq/pods/components/iq-widgets/search-trip-form-widget/component.js","adept-iq/pods/components/iq-widgets/search-trip-form-widget/config.js","adept-iq/pods/components/iq-widgets/search-trip-widget/component.js","adept-iq/pods/components/iq-widgets/search-trip-widget/config.js","adept-iq/pods/components/iq-widgets/stands-widget/component.js","adept-iq/pods/components/iq-widgets/stands-widget/config.js","adept-iq/pods/components/iq-widgets/stops-form-widget/component.js","adept-iq/pods/components/iq-widgets/stops-form-widget/config.js","adept-iq/pods/components/iq-widgets/stops-widget/component.js","adept-iq/pods/components/iq-widgets/stops-widget/config.js","adept-iq/pods/components/iq-widgets/stops-widget/stops-row/component.js","adept-iq/pods/components/iq-widgets/subscriptions-form-widget/component.js","adept-iq/pods/components/iq-widgets/subscriptions-form-widget/config.js","adept-iq/pods/components/iq-widgets/subscriptions-widget/component.js","adept-iq/pods/components/iq-widgets/subscriptions-widget/config.js","adept-iq/pods/components/iq-widgets/trip-form-widget/component.js","adept-iq/pods/components/iq-widgets/trip-form-widget/config.js","adept-iq/pods/components/iq-widgets/trips-widget/component.js","adept-iq/pods/components/iq-widgets/trips-widget/config.js","adept-iq/pods/components/iq-widgets/users-form-widget/component.js","adept-iq/pods/components/iq-widgets/users-form-widget/config.js","adept-iq/pods/components/iq-widgets/users-widget/component.js","adept-iq/pods/components/iq-widgets/users-widget/config.js","adept-iq/pods/components/iq-widgets/vehicle-event-form-widget/component.js","adept-iq/pods/components/iq-widgets/vehicle-event-form-widget/config.js","adept-iq/pods/components/iq-widgets/vehicles-form-widget/component.js","adept-iq/pods/components/iq-widgets/vehicles-form-widget/config.js","adept-iq/pods/components/iq-widgets/vehicles-widget/component.js","adept-iq/pods/components/iq-widgets/vehicles-widget/config.js","adept-iq/pods/components/iq-widgets/vehicles-widget/mapconfig.js","adept-iq/pods/components/iq-widgets/zones-widget/component.js","adept-iq/pods/components/iq-widgets/zones-widget/config.js","adept-iq/pods/components/login-form/component.js","adept-iq/pods/components/login-form/template.js","adept-iq/pods/components/notification-bar/component.js","adept-iq/pods/components/notification-bar/template.js","adept-iq/pods/components/register-form/component.js","adept-iq/pods/components/register-form/template.js","adept-iq/pods/components/reset-form/component.js","adept-iq/pods/components/reset-form/template.js","adept-iq/pods/components/secondary-window/component.js","adept-iq/pods/components/secondary-window/template.js","adept-iq/pods/components/side-drawer-container/component.js","adept-iq/pods/components/side-drawer-container/template.js","adept-iq/pods/components/side-drawer/add-new-message/component.js","adept-iq/pods/components/side-drawer/add-new-message/config.js","adept-iq/pods/components/side-drawer/add-new-message/template.js","adept-iq/pods/components/side-drawer/add-widget/component.js","adept-iq/pods/components/side-drawer/add-widget/template.js","adept-iq/pods/components/side-drawer/add-widget/widget-button-section/component.js","adept-iq/pods/components/side-drawer/add-widget/widget-button-section/template.js","adept-iq/pods/components/side-drawer/bar-chart-settings/component.js","adept-iq/pods/components/side-drawer/bar-chart-settings/config.js","adept-iq/pods/components/side-drawer/bar-chart-settings/template.js","adept-iq/pods/components/side-drawer/box-widget-settings/component.js","adept-iq/pods/components/side-drawer/box-widget-settings/config.js","adept-iq/pods/components/side-drawer/box-widget-settings/template.js","adept-iq/pods/components/side-drawer/donut-chart-settings/component.js","adept-iq/pods/components/side-drawer/donut-chart-settings/config.js","adept-iq/pods/components/side-drawer/donut-chart-settings/template.js","adept-iq/pods/components/side-drawer/filter-settings/component.js","adept-iq/pods/components/side-drawer/filter-settings/template.js","adept-iq/pods/components/side-drawer/gauge-chart-settings/component.js","adept-iq/pods/components/side-drawer/gauge-chart-settings/config.js","adept-iq/pods/components/side-drawer/gauge-chart-settings/template.js","adept-iq/pods/components/side-drawer/map-filter/component.js","adept-iq/pods/components/side-drawer/map-filter/template.js","adept-iq/pods/components/side-drawer/map-label-preview/component.js","adept-iq/pods/components/side-drawer/map-label-preview/template.js","adept-iq/pods/components/side-drawer/map-label-settings/component.js","adept-iq/pods/components/side-drawer/map-label-settings/template.js","adept-iq/pods/components/side-drawer/map-legend-filter/component.js","adept-iq/pods/components/side-drawer/map-legend-filter/template.js","adept-iq/pods/components/side-drawer/route-activity-log/component.js","adept-iq/pods/components/side-drawer/route-activity-log/config.js","adept-iq/pods/components/side-drawer/route-activity-log/template.js","adept-iq/pods/components/side-drawer/system-config/component.js","adept-iq/pods/components/side-drawer/system-config/template.js","adept-iq/pods/components/side-drawer/trip-activity-log/component.js","adept-iq/pods/components/side-drawer/trip-activity-log/config.js","adept-iq/pods/components/side-drawer/trip-activity-log/template.js","adept-iq/pods/components/table/cells/base-cell/component.js","adept-iq/pods/components/table/cells/base-cell/template.js","adept-iq/pods/components/table/cells/check-box/component.js","adept-iq/pods/components/table/cells/check-box/template.js","adept-iq/pods/components/table/cells/text-extension/component.js","adept-iq/pods/components/table/cells/text-extension/template.js","adept-iq/pods/components/table/cells/user-editable-enum/component.js","adept-iq/pods/components/table/cells/user-editable-enum/template.js","adept-iq/pods/components/table/cells/user-editable/component.js","adept-iq/pods/components/table/cells/user-editable/template.js","adept-iq/pods/components/table/columns/base-column/component.js","adept-iq/pods/components/table/columns/check-box/component.js","adept-iq/pods/components/table/columns/check-box/template.js","adept-iq/pods/components/table/columns/filter-capable/component.js","adept-iq/pods/components/table/columns/filter-capable/template.js","adept-iq/pods/components/table/rows/action-row/component.js","adept-iq/pods/components/table/rows/action-row/template.js","adept-iq/pods/components/table/rows/base-row/component.js","adept-iq/pods/components/table/rows/driver-status-formatted-row/component.js","adept-iq/pods/components/table/rows/otp-formatted-row/component.js","adept-iq/pods/components/table/rows/status-formatted-row/component.js","adept-iq/pods/components/table/rows/vehicle-status-formatted-row/component.js","adept-iq/pods/components/table/rows/zonestat-formatted-row/component.js","adept-iq/pods/components/tile-dashboard/component.js","adept-iq/pods/components/tile-dashboard/template.js","adept-iq/pods/components/timeline-picker/component.js","adept-iq/pods/components/timeline-picker/date-picker/component.js","adept-iq/pods/components/timeline-picker/date-picker/template.js","adept-iq/pods/components/timeline-picker/relative-time-input/component.js","adept-iq/pods/components/timeline-picker/relative-time-input/template.js","adept-iq/pods/components/timeline-picker/relative-time-picker/component.js","adept-iq/pods/components/timeline-picker/relative-time-picker/template.js","adept-iq/pods/components/timeline-picker/template.js","adept-iq/pods/components/timeline-picker/time-bar/component.js","adept-iq/pods/components/timeline-picker/time-bar/template.js","adept-iq/pods/components/timeline-picker/time-picker/component.js","adept-iq/pods/components/timeline-picker/time-picker/template.js","adept-iq/pods/dashboard/controller.js","adept-iq/pods/dashboard/modals/edit-form/controller.js","adept-iq/pods/dashboard/modals/edit-form/resize-handle/component.js","adept-iq/pods/dashboard/modals/edit-form/resize-handle/template.js","adept-iq/pods/dashboard/modals/edit-form/template.js","adept-iq/pods/dashboard/route.js","adept-iq/pods/dashboard/template.js","adept-iq/pods/forgot-password/controller.js","adept-iq/pods/forgot-password/route.js","adept-iq/pods/forgot-password/template.js","adept-iq/pods/index/index/route.js","adept-iq/pods/index/modals/create-dashboard/controller.js","adept-iq/pods/index/modals/create-dashboard/route.js","adept-iq/pods/index/modals/create-dashboard/template.js","adept-iq/pods/index/modals/settings/controller.js","adept-iq/pods/index/modals/settings/template.js","adept-iq/pods/login/controller.js","adept-iq/pods/login/route.js","adept-iq/pods/login/template.js","adept-iq/pods/maximized/controller.js","adept-iq/pods/maximized/route.js","adept-iq/pods/maximized/template.js","adept-iq/pods/register/controller.js","adept-iq/pods/register/route.js","adept-iq/pods/register/template.js","adept-iq/pods/reset-password/controller.js","adept-iq/pods/reset-password/route.js","adept-iq/pods/reset-password/template.js","adept-iq/resolver.js","adept-iq/router.js","adept-iq/routes/application.js","adept-iq/serializers/-avlm-avlmService.js","adept-iq/serializers/-cs-configService.js","adept-iq/serializers/-dispatch.js","adept-iq/serializers/-ss-schedulingService.js","adept-iq/serializers/-sso-ssoService.js","adept-iq/serializers/-tm-tripManagement.js","adept-iq/serializers/POI.js","adept-iq/serializers/account-fixed-price-trip.js","adept-iq/serializers/account.js","adept-iq/serializers/address-lookup.js","adept-iq/serializers/address.js","adept-iq/serializers/agency-marker.js","adept-iq/serializers/application.js","adept-iq/serializers/avl.js","adept-iq/serializers/avlm-driver.js","adept-iq/serializers/avlm-route-exec-event.js","adept-iq/serializers/avlm-route.js","adept-iq/serializers/avlm-vehicle.js","adept-iq/serializers/booking.js","adept-iq/serializers/break-type.js","adept-iq/serializers/call-line.js","adept-iq/serializers/cord.js","adept-iq/serializers/cs-config-item.js","adept-iq/serializers/cs-config-permission.js","adept-iq/serializers/dashboard.js","adept-iq/serializers/driver-break.js","adept-iq/serializers/driver-shift.js","adept-iq/serializers/driver.js","adept-iq/serializers/eligibility-type.js","adept-iq/serializers/fare-type.js","adept-iq/serializers/favorite-pickup.js","adept-iq/serializers/favorite-trip.js","adept-iq/serializers/fixed-price-trip.js","adept-iq/serializers/iq-driver.js","adept-iq/serializers/iq-stop.js","adept-iq/serializers/iq-trip.js","adept-iq/serializers/iq-vehicle.js","adept-iq/serializers/leg-travel-need.js","adept-iq/serializers/leg.js","adept-iq/serializers/location.js","adept-iq/serializers/passenger-type.js","adept-iq/serializers/place.js","adept-iq/serializers/rider-eligibility.js","adept-iq/serializers/rider-info.js","adept-iq/serializers/rider-travel-need-info.js","adept-iq/serializers/rider-travel-need.js","adept-iq/serializers/rider.js","adept-iq/serializers/route-place.js","adept-iq/serializers/route.js","adept-iq/serializers/schedule.js","adept-iq/serializers/segment.js","adept-iq/serializers/service-window.js","adept-iq/serializers/ss-service-window.js","adept-iq/serializers/sso-role.js","adept-iq/serializers/sso-user.js","adept-iq/serializers/stand.js","adept-iq/serializers/stop.js","adept-iq/serializers/subscription-exclusion.js","adept-iq/serializers/subscription-recurrence-pattern.js","adept-iq/serializers/subscription-travel-need.js","adept-iq/serializers/subscription.js","adept-iq/serializers/tm-activity-log.js","adept-iq/serializers/tm-address.js","adept-iq/serializers/tm-booking.js","adept-iq/serializers/tm-canned-message-template.js","adept-iq/serializers/tm-canned-message.js","adept-iq/serializers/tm-common-operational-attribute.js","adept-iq/serializers/tm-config-parameter-value.js","adept-iq/serializers/tm-driver.js","adept-iq/serializers/tm-passenger.js","adept-iq/serializers/tm-requested-provider.js","adept-iq/serializers/tm-rider-profile.js","adept-iq/serializers/tm-rider.js","adept-iq/serializers/tm-route-exec.js","adept-iq/serializers/tm-stop-point.js","adept-iq/serializers/tm-subscription.js","adept-iq/serializers/tm-text-message.js","adept-iq/serializers/tm-tip.js","adept-iq/serializers/travel-need-type.js","adept-iq/serializers/trip-exec-event.js","adept-iq/serializers/trip.js","adept-iq/serializers/vehicle-route.js","adept-iq/serializers/vehicle-state.js","adept-iq/serializers/vehicle-type.js","adept-iq/serializers/vehicle.js","adept-iq/serializers/zone.js","adept-iq/services/-in-viewport.js","adept-iq/services/active-context.js","adept-iq/services/addessLookup.js","adept-iq/services/ajax.js","adept-iq/services/animation-timer.js","adept-iq/services/booking.js","adept-iq/services/cookies.js","adept-iq/services/drag-coordinator.js","adept-iq/services/edit-modal.js","adept-iq/services/editmodalcontext.js","adept-iq/services/error-message-avlm.js","adept-iq/services/error-message.js","adept-iq/services/flash-messages.js","adept-iq/services/geocode.js","adept-iq/services/map-context.js","adept-iq/services/maximizer.js","adept-iq/services/media.js","adept-iq/services/modal-dialog.js","adept-iq/services/modal.js","adept-iq/services/moment.js","adept-iq/services/power-calendar.js","adept-iq/services/resize-detector.js","adept-iq/services/riderprofile.js","adept-iq/services/routeexecevent.js","adept-iq/services/schedule-generation.js","adept-iq/services/scheduler.js","adept-iq/services/scrollbar-thickness.js","adept-iq/services/searchservice.js","adept-iq/services/session.js","adept-iq/services/socket-io.js","adept-iq/services/socket.js","adept-iq/services/stops-reorder.js","adept-iq/services/system-config.js","adept-iq/services/text-measurer.js","adept-iq/services/textmessage.js","adept-iq/services/time-span.js","adept-iq/services/tooltip.js","adept-iq/services/trip.js","adept-iq/services/vehicleinfo.js","adept-iq/services/websockets.js","adept-iq/services/window-resize.js","adept-iq/services/workspace-context.js","adept-iq/services/workspace.js","adept-iq/session-stores/application.js","adept-iq/templates/components/ember-popper-targeting-parent.js","adept-iq/templates/components/ember-popper.js","adept-iq/tests/mirage/mirage.lint-test.js","adept-iq/topic-transforms/account.js","adept-iq/topic-transforms/alert.js","adept-iq/topic-transforms/avl.js","adept-iq/topic-transforms/driver-state.js","adept-iq/topic-transforms/driver.js","adept-iq/topic-transforms/message.js","adept-iq/topic-transforms/navigation-info.js","adept-iq/topic-transforms/rider.js","adept-iq/topic-transforms/route-exec-event.js","adept-iq/topic-transforms/route.js","adept-iq/topic-transforms/stand.js","adept-iq/topic-transforms/stop.js","adept-iq/topic-transforms/subscription.js","adept-iq/topic-transforms/trip-exec-event.js","adept-iq/topic-transforms/trip.js","adept-iq/topic-transforms/user.js","adept-iq/topic-transforms/vehicle-state.js","adept-iq/topic-transforms/vehicle.js","adept-iq/topic-transforms/zone.js","adept-iq/transforms/array.js","adept-iq/transforms/fragment-array.js","adept-iq/transforms/fragment.js","adept-iq/transforms/nested.js","adept-iq/transforms/object.js","adept-iq/transforms/polyline.js","adept-iq/transforms/ss-date.js","adept-iq/utils/calculate-position.js","adept-iq/utils/check-address-flags.js","adept-iq/utils/check-address-overwrite.js","adept-iq/utils/check-value.js","adept-iq/utils/css-transitions/has-transitions.js","adept-iq/utils/css-transitions/index.js","adept-iq/utils/css-transitions/on-transition-end.js","adept-iq/utils/data-join.js","adept-iq/utils/encoding.js","adept-iq/utils/filter-functions.js","adept-iq/utils/filters.js","adept-iq/utils/find-row-record.js","adept-iq/utils/focus_column_widget_row.js","adept-iq/utils/format-text-extension.js","adept-iq/utils/graph.js","adept-iq/utils/guid.js","adept-iq/utils/isRouteAssignable.js","adept-iq/utils/local-traversal.js","adept-iq/utils/name-parser.js","adept-iq/utils/name-split.js","adept-iq/utils/populate-account.js","adept-iq/utils/populate-address.js","adept-iq/utils/populate-call-line.js","adept-iq/utils/populate-copy-trip.js","adept-iq/utils/populate-edit-trip.js","adept-iq/utils/populate-fixed-price.js","adept-iq/utils/populate-new-text-message.js","adept-iq/utils/populate-new-trip.js","adept-iq/utils/populate-pickup.js","adept-iq/utils/populate-poi-address.js","adept-iq/utils/populate-search-trip.js","adept-iq/utils/populate-trip-search-data.js","adept-iq/utils/range.js","adept-iq/utils/rql-generators.js","adept-iq/utils/rql.js","adept-iq/utils/save-records.js","adept-iq/utils/search-data.js","adept-iq/utils/sorts.js","adept-iq/utils/titleize.js","adept-iq/utils/widget-placement.js","adept-iq/utils/zone-check.js","adept-iq/utils/zone-validation.js","adept-iq/validators/alias.js","adept-iq/validators/belongs-to.js","adept-iq/validators/collection.js","adept-iq/validators/confirmation.js","adept-iq/validators/date.js","adept-iq/validators/dependent.js","adept-iq/validators/ds-error.js","adept-iq/validators/exclusion.js","adept-iq/validators/format.js","adept-iq/validators/has-many.js","adept-iq/validators/inclusion.js","adept-iq/validators/length.js","adept-iq/validators/messages.js","adept-iq/validators/number.js","adept-iq/validators/presence.js","vendor/ember-cli/app-suffix.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"sourcesContent":["'use strict';\n\n\n","define(\"adept-iq/adapters/-avlm-avlmService\", [\"exports\", \"adept-iq/adapters/application\", \"adept-iq/config/api-urls\"], function (_exports, _application, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    defaultSerializer: '-avlm-avlmService',\n    host: _apiUrls.API.avlmService.host,\n\n    pathForType(type) {\n      // trim 'bs' prefix from model type\n      const regEx = /^(?:avlm-)?(.*)$/;\n      const match = regEx.exec(type)[1];\n      return this._super(match);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/-bs-bookingManagement\", [\"exports\", \"adept-iq/adapters/application\", \"adept-iq/config/api-urls\"], function (_exports, _application, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    defaultSerializer: '-bs-bookingService',\n    host: _apiUrls.API.bookingService.host,\n    pathForType: function (type) {\n      // trim 'bs' prefix from model type\n      const regEx = /^(?:bs-)?(.*)$/;\n      const match = regEx.exec(type)[1];\n      return this._super(match);\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/-cs-configService\", [\"exports\", \"adept-iq/adapters/application\", \"adept-iq/config/api-urls\"], function (_exports, _application, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    defaultSerializer: '-cs-configService',\n    host: _apiUrls.API.configService.host,\n    namespace: 'config',\n\n    pathForType(type) {\n      // trim 'cs' prefix from model type\n      const regEx = /^(?:cs-)?(.*)$/;\n      const match = regEx.exec(type)[1];\n      return this._super(match);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/-dispatch\", [\"exports\", \"adept-iq/adapters/application\", \"adept-iq/config/api-urls\"], function (_exports, _application, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    defaultSerializer: '-dispatch',\n    host: _apiUrls.API.dispatchService.host\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/-ss-schedulingService\", [\"exports\", \"adept-iq/adapters/application\", \"adept-iq/config/api-urls\"], function (_exports, _application, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    defaultSerializer: '-ss-schedulingService',\n    host: _apiUrls.API.schedulingService.host,\n    pathForType: function (type) {\n      // trim 'ss' prefix from model type\n      const regEx = /^(?:ss-)?(.*)$/;\n      const match = regEx.exec(type)[1];\n      return this._super(match);\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/-sso-ssoService\", [\"exports\", \"adept-iq/adapters/application\", \"adept-iq/config/api-urls\"], function (_exports, _application, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    defaultSerializer: '-sso-ssoService',\n    host: _apiUrls.API.ssoService.host,\n    pathForType: function (type) {\n      // trim 'sso' prefix from model type\n      const regEx = /^(?:sso-)?(.*)$/;\n      const match = regEx.exec(type)[1];\n      return this._super(match);\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/-tm-tripManagement\", [\"exports\", \"adept-iq/adapters/application\", \"adept-iq/config/api-urls\"], function (_exports, _application, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    defaultSerializer: '-tm-tripManagement',\n    host: _apiUrls.API.tripManagementService.host,\n    // eslint-disable-next-line ember/avoid-leaking-state-in-ember-objects\n    headers: {\n      'Content-Type': 'application/json',\n      'Accept': 'application/json'\n    },\n    pathForType: function (type) {\n      // trim 'tm' prefix from model type\n      const regEx = /^(?:tm-)?(.*)$/;\n      const match = regEx.exec(type)[1];\n      return this._super(match);\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/account\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/address-lookup\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    urlForFindRecord(id, modelName, snapshot) {\n      console.log('inside urlForFindRecord ');\n\n      let url = this._super(...arguments);\n\n      let query = Ember.get(snapshot, 'options.query');\n\n      if (query) {\n        url += '?' + query;\n      }\n\n      return url;\n    },\n\n    urlForQuery: function (query, modelName) {\n      let url = this._super(...arguments);\n\n      console.log('urlForQuery ', url);\n      console.log('urlForQuery query ', query); //let query = Ember.get(snapshot, 'options.query');\n\n      if (query) {\n        url += '?' + query.searchURL;\n      }\n\n      return url;\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/application\", [\"exports\", \"ember-data\", \"ember-simple-auth/mixins/data-adapter-mixin\"], function (_exports, _emberData, _dataAdapterMixin) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    JSONAPIAdapter\n  } = _emberData.default;\n\n  var _default = JSONAPIAdapter.extend(_dataAdapterMixin.default, {\n    errorMessage: Ember.inject.service(),\n    authorizer: 'authorizer:sso',\n\n    normalizeErrorResponse(status, headers, payload) {\n      if (payload && typeof payload === 'object' && payload.errors) {\n        return payload.errors; // To deal with the API's error messages that do not comply to JSONAPI Standard.\n      } else if (Ember.isPresent(payload.message)) {\n        const error = {\n          status: `${status}`,\n          title: \"The backend responded with an error\",\n          detail: payload.message\n        };\n        this.get('errorMessage').pushError(error);\n        return [error];\n      } else {\n        return [{\n          status: `${status}`,\n          title: \"The backend responded with an error\",\n          detail: `${payload}`\n        }];\n      }\n    },\n\n    pathForType(modelName) {\n      return Ember.String.dasherize(modelName);\n    },\n\n    ajaxOptions(url, type) {\n      const hash = this._super(...arguments); // this._super() handles all but the GET case; in this case, the data\n      // object is normally passed straight to $.ajax, but this encodes URI\n      // characters like + and -. Instead, we encode params to a string ourself.\n\n\n      if (hash.data && type === 'GET') {\n        hash.data = Object.entries(hash.data).filter(([...value]) => Ember.isPresent(value)).map(([key, value]) => `${key}=${value}`).join('&');\n        hash.data = encodeURI(hash.data);\n      }\n\n      return hash;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/avlm-route-exec-event\", [\"exports\", \"adept-iq/adapters/-avlm-avlmService\"], function (_exports, _avlmAvlmService) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _avlmAvlmService.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/break-type\", [\"exports\", \"adept-iq/adapters/-ss-schedulingService\"], function (_exports, _ssSchedulingService) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _ssSchedulingService.default.extend({\n    pathForType: function ()\n    /* type*/\n    {\n      return 'break-type';\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/cancel-type\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/cluster\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/cs-config-category\", [\"exports\", \"adept-iq/adapters/-cs-configService\"], function (_exports, _csConfigService) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _csConfigService.default.extend({\n    findRecord()\n    /* store, type, id, snapshot */\n    {\n      throw 'adapter method unsupported';\n    },\n\n    findAll()\n    /* store, type, sinceToken, snapshotRecordArray */\n    {\n      throw 'adapter method unsupported';\n    },\n\n    query()\n    /* store, type, query = {}, recordArray */\n    {\n      throw 'adapter method unsupported';\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/cs-config-item\", [\"exports\", \"adept-iq/adapters/-cs-configService\"], function (_exports, _csConfigService) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const DEFAULT_CATEGORY = 'config';\n\n  var _default = _csConfigService.default.extend({\n    updateRecord(store, type, snapshot) {\n      const data = {};\n      const serializer = store.serializerFor(type.modelName);\n      serializer.serializeIntoHash(data, type, snapshot, {\n        includeId: true\n      }); // config service does not allow `id` or `name` on update\n\n      delete data.data.id;\n      delete data.data.attributes.name;\n      const url = this.buildURL(type.modelName, snapshot.id, snapshot, 'updateRecord');\n      return this.ajax(url, 'PATCH', {\n        data: data\n      });\n    },\n\n    ajaxOptions(url, type) {\n      const options = this._super(...arguments);\n\n      if (type === 'GET') {\n        // clear this stuff out; config API doesn't use it\n        options.data = null;\n      }\n\n      return options;\n    },\n\n    urlForCreateRecord(modelName, snapshot) {\n      const {\n        category\n      } = snapshot.attributes();\n      return this._buildUrlForPath(category);\n    },\n\n    urlForDeleteRecord(id\n    /*, modelName, snapshot*/\n    ) {\n      return this._buildUrlForPath(id);\n    },\n\n    urlForFindAll()\n    /*modelName, snapshot*/\n    {\n      // this isn't _really_ a findAll\n      return this._buildUrlForPath(DEFAULT_CATEGORY);\n    },\n\n    urlForFindRecord(id\n    /*, modelName, snapshot*/\n    ) {\n      return this._buildUrlForPath(id);\n    },\n\n    urlForQuery(query\n    /*, modelName*/\n    ) {\n      const path = query.category;\n      return this._buildUrlForPath(path);\n    },\n\n    urlForQueryRecord(query\n    /*, modelName*/\n    ) {\n      const path = query.category;\n      return this._buildUrlForPath(path);\n    },\n\n    urlForUpdateRecord(id\n    /*, modelName, snapshot*/\n    ) {\n      return this._buildUrlForPath(id);\n    },\n\n    _buildUrlForPath(path) {\n      const host = this.get('host');\n      const namespace = this.get('namespace');\n      return `${host}/${namespace}/${path}`;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/cs-config-permission\", [\"exports\", \"adept-iq/adapters/application\"], function (_exports, _application) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    findAll(store\n    /*, type, sinceToken, snapshotRecordArray*/\n    ) {\n      return store.query('cs-config-item', {\n        category: 'config-UI_restrictions'\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/dashboard\", [\"exports\", \"adept-iq/adapters/application\", \"lodash\"], function (_exports, _application, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const WORKSPACE_CATEGORIES = ['workspaces-default', 'workspaces-users'];\n\n  var _default = _application.default.extend({\n    findRecord(store, type, id\n    /*, snapshot*/\n    ) {\n      return store.findRecord('cs-config-item', id).then(configItem => {\n        return _lodash.default.cloneDeep(configItem.get('value'));\n      });\n    },\n\n    findAll(store, type\n    /*, sinceToken, snapshotRecordArray*/\n    ) {\n      return this.query(store, type, {\n        categories: WORKSPACE_CATEGORIES\n      });\n    },\n\n    query(store, type, query = {}\n    /*, recordArray*/\n    ) {\n      const {\n        categories = WORKSPACE_CATEGORIES\n      } = query;\n      delete query.categories;\n      const promiseHash = categories.reduce((hash, category) => {\n        hash[category] = this._fetchConfigItemsByCategory(store, category);\n        return hash;\n      }, {});\n      return Ember.RSVP.hash(promiseHash).then(resultHash => {\n        return categories.reduce((obj, category) => {\n          resultHash[category].data.forEach(data => {\n            obj.data.push(data);\n          });\n          Ember.makeArray(resultHash[category].included).forEach(data => {\n            obj.included.push(data);\n          });\n          return obj;\n        }, {\n          data: [],\n          included: []\n        });\n      });\n    },\n\n    createRecord(store, type, snapshot) {\n      const {\n        name,\n        category\n      } = snapshot.attributes();\n      snapshot.id = `${category}/${this._keyForName(name)}`;\n      const data = {};\n      const serializer = store.serializerFor(type.modelName);\n      serializer.serializeIntoHash(data, type, snapshot, {\n        includeId: true\n      });\n      const record = store.createRecord('cs-config-item', {\n        name: this._keyForName(name),\n        category,\n        type: 'json',\n        value: data\n      });\n      return record.save().then(configItem => {\n        return _lodash.default.cloneDeep(configItem.get('value'));\n      });\n    },\n\n    deleteRecord(store, type, snapshot) {\n      const configItem = store.peekRecord('cs-config-item', snapshot.id);\n      return configItem.destroyRecord().then(() => {\n        // have to swallow promise return value so ED won't try to parse it\n        return null;\n      });\n    },\n\n    updateRecord(store, type, snapshot) {\n      const serialized = {};\n      const serializer = store.serializerFor(type.modelName);\n      serializer.serializeIntoHash(serialized, type, snapshot, {\n        includeId: true\n      });\n      const configItem = store.peekRecord('cs-config-item', snapshot.id);\n      configItem.set('value', serialized);\n      return configItem.save().then(() => {\n        return serialized;\n      });\n    },\n\n    _fetchConfigItemsByCategory(store, category) {\n      return store.query('cs-config-item', {\n        category\n      }).then(configItems => {\n        return {\n          data: configItems.map(configItem => {\n            const {\n              data\n            } = _lodash.default.cloneDeep(configItem.get('value'));\n\n            return data;\n          })\n        };\n      });\n    },\n\n    _keyForName(name) {\n      // config service only accepts /[a-zA-Z0-9_]+/; note that this conversion\n      // is not injective, so collisions are possible\n      return escape(Ember.String.underscore(name)).replace(/%/g, '_');\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/driver-break\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/driver-shift\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/driver\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/fare-type\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/leg-travel-need\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/location\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/no-show-reason-code\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/place\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/provider-type\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/provider\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/rider\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/route-place\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/route\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  // export default DispatchAdapter;\n  var _default = _dispatch.default.extend({\n    // TODO: This is a temporary solution for creating a route\n    // dispatch backend will have a proper endpoint for POST route\n    buildURL: function (modelType, id, snapshot, requestType) {\n      if (requestType === 'createRecord') {\n        return `${this.host}/schedule/${snapshot.record.get('schedule.id')}/route/clusterization`;\n      }\n\n      return this._super(...arguments);\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/schedule\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/sso-role\", [\"exports\", \"adept-iq/adapters/-sso-ssoService\"], function (_exports, _ssoSsoService) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _ssoSsoService.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/sso-user\", [\"exports\", \"adept-iq/adapters/-sso-ssoService\"], function (_exports, _ssoSsoService) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _ssoSsoService.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/stop\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({\n    // Adapted from https://github.com/emberjs/data/blob/v3.1.1/addon/-private/adapters/build-url-mixin.js#L89-L109\n    urlForUpdateRecord(id, modelName) {\n      let path;\n      let url = [];\n      const host = Ember.get(this, 'host');\n      const prefix = this.urlPrefix();\n\n      if (modelName) {\n        path = this.pathForType(modelName);\n\n        if (path) {\n          url.push(path);\n        }\n      }\n\n      if (prefix) {\n        url.unshift(prefix);\n      }\n\n      url = url.join('/');\n\n      if (!host && url && url.charAt(0) !== '/') {\n        url = '/' + url;\n      }\n\n      return url;\n    },\n\n    handleResponse(status, headers, payload, requestData) {\n      if (status === 400 && Ember.isPresent(payload.validation)) {\n        status = 422;\n        payload = {\n          errors: [{\n            detail: payload.message\n          }]\n        };\n      }\n\n      return this._super(status, headers, payload, requestData);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/tm-activity-log\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    query(store, type, query) {\n      let url = this.buildURL(type.modelName, null, null, 'query', query);\n      url = url.replace('query/tm-activity-log', 'activity-log');\n      return this.ajax(url, 'GET');\n    },\n\n    buildURL(modelName, id, snapshot, requestType, query) {\n      const baseUrl = this._super(requestType, id, null);\n\n      const url = baseUrl + \"/\" + modelName + \"?filter=attributes/tripId==\" + query.filter.tripId;\n      return url;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/tm-booking\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    urlForFindRecord(id, modelName, snapshot) {\n      console.log('inside urlForFindRecord ');\n\n      let url = this._super(...arguments);\n\n      let query = Ember.get(snapshot, 'options.query');\n\n      if (query) {\n        url += '?' + query;\n      }\n\n      return url;\n    },\n\n    urlForQuery: function (query, modelName) {\n      let url = this._super(...arguments); //let query = Ember.get(snapshot, 'options.query');\n\n\n      if (query) {\n        url += '?' + query.searchURL;\n      }\n\n      return url;\n    },\n\n    updateRecord(store, type, snapshot) {\n      const data = {};\n      const serializer = this.store.serializerFor(type.modelName);\n      serializer.serializeIntoHash(data, type, snapshot, {\n        includeId: true\n      });\n      const id = snapshot.id;\n      const url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n      console.log('updateRecord ', this.ajax(url, 'PUT', {\n        data: data\n      }));\n      return data;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/tm-canned-message-template\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _tmTripManagement.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/tm-canned-message\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _tmTripManagement.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/tm-common-operational-attribute\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _tmTripManagement.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/tm-config-parameter-value\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _tmTripManagement.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/tm-driver\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _tmTripManagement.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/tm-rider-profile\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    /*findRecord: function(store, type, id, snapshot) {\n       console.log('snapshot ',snapshot);\n          let url = this.buildURL(type.modelName, id, snapshot, 'findRecord');\n        let query = this.buildQuery(snapshot);\n         url += \"\"+id;\n        return this.ajax(url, 'GET', { data: query });\n    },*/\n    updateRecord(store, type, snapshot) {\n      const data = {};\n      const serializer = this.store.serializerFor(type.modelName);\n      serializer.serializeIntoHash(data, type, snapshot, {\n        includeId: true\n      });\n      const id = snapshot.id;\n      const url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n      return this.ajax(url, 'PUT', {\n        data: data\n      });\n    },\n\n    buildURL: function (type, id, record) {\n      let url = this._super(type, id, record);\n\n      url += \"?filter=attributes/phone1/number==\" + id;\n      return url;\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/tm-rider\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _tmTripManagement.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/tm-route-exec\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _tmTripManagement.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/tm-text-message\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    updateRecord(store, type, snapshot) {\n      const data = {};\n      const serializer = this.store.serializerFor(type.modelName);\n      serializer.serializeIntoHash(data, type, snapshot, {\n        includeId: true\n      });\n      const id = snapshot.id;\n      const url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n      return this.ajax(url, 'PUT', {\n        data: data\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/travel-need-type\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/trip\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/vehicle-route\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/vehicle\", [\"exports\", \"adept-iq/adapters/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/adapters/zone\", [\"exports\", \"adept-iq/adapters/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _tmTripManagement.default;\n  _exports.default = _default;\n});","define(\"adept-iq/app\", [\"exports\", \"adept-iq/resolver\", \"ember-load-initializers\", \"adept-iq/config/environment\"], function (_exports, _resolver, _emberLoadInitializers, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const App = Ember.Application.extend({\n    modulePrefix: _environment.default.modulePrefix,\n    podModulePrefix: _environment.default.podModulePrefix,\n    Resolver: _resolver.default\n  });\n  (0, _emberLoadInitializers.default)(App, _environment.default.modulePrefix);\n  var _default = App;\n  _exports.default = _default;\n});","define(\"adept-iq/authenticators/sso\", [\"exports\", \"ember-simple-auth/authenticators/base\", \"fetch\", \"adept-iq/config/api-urls\"], function (_exports, _base, _fetch, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    authenticate(userName, password, tokenPayload) {\n      // Bypass login when token payload from /signup during registration passed.\n      if (Ember.isPresent(tokenPayload)) return Ember.RSVP.Promise.resolve(tokenPayload);\n      const {\n        host\n      } = _apiUrls.API.ssoService;\n      const url = host + '/login';\n      let base64Token = btoa(`${userName}:${password}`);\n\n      if (userName === 'iq-admin@ddswireless.com') {\n        base64Token = btoa('athakkar:DDS');\n      }\n\n      const options = {\n        headers: {\n          Authorization: 'Basic ' + base64Token\n        },\n        method: 'GET'\n      };\n      return new Ember.RSVP.Promise((resolve, reject) => {\n        (0, _fetch.default)(url, options).then(response => {\n          response.json().then(body => {\n            if (!response.ok) {\n              reject(body);\n            } else {\n              const tokenParts = body.token.split('.');\n              const tokenInfo = JSON.parse(atob(tokenParts[1])); // attach expiration time for JWT to session data\n\n              body.exp = tokenInfo.exp;\n              resolve(body);\n            }\n          });\n        }).catch(reject);\n      });\n    },\n\n    restore(data) {\n      const currentTime = Date.now() / 1000; // expired JWT invalidate session\n\n      if (currentTime >= data.exp) {\n        return Ember.RSVP.Promise.reject(data);\n      }\n\n      return Ember.RSVP.Promise.resolve(data);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/authorizers/sso\", [\"exports\", \"ember-simple-auth/authorizers/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    session: Ember.inject.service(),\n\n    authorize(data, block) {\n      if (Ember.isPresent(data.token)) {\n        block('Authorization', `Bearer ${data.token}`);\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/breakpoints\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    mobile: '(max-width: 767px)',\n    tablet: '(min-width: 768px) and (max-width: 991px)',\n    desktop: '(min-width: 992px) and (max-width: 1600px)',\n    jumbo: '(min-width: 1601px) and (max-width: 9000px)'\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/classes/circles/base\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Object.extend({\n    animationTimer: null,\n    id: null,\n    record: null,\n    lat: null,\n    lng: null,\n    opacity: 1.0,\n    // these will usually be over-ridden by layer\n    // see `app/pods/components/iq-widgets/map-widget/config/marker.js` for styles\n    type: null,\n    style: null,\n    label: null,\n    isActive: false,\n    isTraversal: false,\n    radius: false,\n    // these will be applied _after_ style defaults\n    options: null,\n    status: null,\n    parentLabel: null\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/circles/stand\", [\"exports\", \"adept-iq/classes/circles/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    style: 'stand',\n    label: 'Stands',\n    parentLabel: 'Stands',\n    isActive: true,\n    isTraversal: true,\n    stand: Ember.computed.alias('record'),\n    lat: Ember.computed.alias('stand.lat'),\n    lng: Ember.computed.alias('stand.lng'),\n    radius: Ember.computed.alias('stand.radius'),\n    options: Ember.computed.alias('stand.options'),\n    points: Ember.computed.alias('stand.polypoints'),\n    caption: Ember.computed.alias('stand.name'),\n    status: Ember.computed.alias('stand.status')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/dashboard-instance\", [\"exports\", \"lodash\", \"adept-iq/classes/widget\", \"md5\", \"moment\"], function (_exports, _lodash, _widget, _md, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const SCHEMA_VERSION = 1;\n  const DashboardInstance = Ember.Object.extend({\n    id: null,\n    name: null,\n    model: null,\n    // underlying ember-data model\n    startDate: null,\n    endDate: null,\n    referenceDate: null,\n    isDirty: false,\n    // TODO: implement\n    _mapState: null,\n    // POJO of map state\n    _widgets: null,\n    // array of Widget objects\n    _widgetsSavepoint: null,\n    // for rollback\n    _widgetCache: null,\n    // re-use widget objects if possible\n    mapState: Ember.computed('_mapState', {\n      get() {\n        let mapState = this.get('_mapState');\n\n        if (!mapState) {\n          mapState = {};\n          /*eslint-disable */\n\n          this.set('_mapState', mapState);\n          /*eslint-enable */\n        }\n\n        return mapState;\n      },\n\n      set(key, value) {\n        if (!value) {\n          /*eslint-disable */\n          value = {};\n          /*eslint-enable */\n        }\n\n        this.set('_mapState', value);\n        return value;\n      }\n\n    }),\n    widgets: Ember.computed('_widgets', {\n      get() {\n        let widgets = this.get('_widgets');\n\n        if (!widgets) {\n          widgets = [];\n          /*eslint-disable */\n\n          this.set('_widgets', widgets);\n          /*eslint-enable */\n        }\n\n        return widgets;\n      },\n\n      set(key, value) {\n        if (!value) {\n          /*eslint-disable */\n          value = [];\n          /*eslint-enable */\n        }\n\n        this.set('_widgets', value);\n        return value;\n      }\n\n    }),\n    height: Ember.computed('widgets.@each.{y,height}', function () {\n      return this.get('widgets').reduce((max, widget) => {\n        const y = widget.get('y');\n        const height = widget.get('height');\n        return Math.max(max, y + height);\n      }, 0);\n    }),\n    width: Ember.computed('widgets.@each.{x,width}', function () {\n      return this.get('widgets').reduce((max, widget) => {\n        const x = widget.get('x');\n        const width = widget.get('width');\n        return Math.max(max, x + width);\n      }, 0);\n    }),\n\n    // TODO: this should live in map widget state\n    mergeMapState(changes = {}) {\n      const mapState = this.get('mapState');\n\n      const mergedState = _lodash.default.merge({}, mapState, changes);\n\n      this.set('mapState', mergedState); // TODO: check if this is necessary\n\n      this.notifyPropertyChange('mapState');\n      this.set('hasDirtyWidgets', true);\n    },\n\n    makeWidgetsSavepoint() {\n      const widgetsSavepoint = this.get('widgets').map(widget => widget.serialize());\n      this.set('_widgetsSavepoint', widgetsSavepoint);\n    },\n\n    rollbackWidgets() {\n      const widgetsSavepoint = this.get('_widgetsSavepoint');\n\n      if (!widgetsSavepoint) {\n        /*eslint-disable */\n        throw 'no dashboard savepoint; must call makeWidgetsSavepoint() first';\n        /*eslint-enable */\n      }\n\n      this.get('widgets').clear();\n      widgetsSavepoint.forEach(({\n        attributes\n      }) => {\n        this.addWidget(attributes);\n      });\n    },\n\n    addWidget(options) {\n      const widget = this.makeWidget(options);\n      this.get('widgets').pushObject(widget);\n    },\n\n    removeWidget(widget) {\n      this.get('widgets').removeObject(widget);\n    },\n\n    clearDashboard() {\n      this.get('widgets').clear();\n    },\n\n    makeWidget(options) {\n      const {\n        id\n      } = options;\n      let widgetCache = this.get('_widgetCache');\n\n      if (!widgetCache) {\n        widgetCache = {};\n        this.set('_widgetCache', widgetCache);\n      }\n\n      if (Ember.isPresent(id)) {\n        const currWidget = widgetCache[id];\n\n        if (currWidget) {\n          currWidget.setProperties(options);\n          return currWidget;\n        }\n      }\n\n      const extendedOptions = Object.assign({}, options, {\n        dashboard: this\n      });\n\n      const widget = _widget.default.create(extendedOptions);\n\n      widgetCache[widget.get('id')] = widget;\n      return widget;\n    },\n\n    serialize() {\n      const attributes = {\n        id: this.get('id'),\n        name: this.get('name'),\n        role: this.get('role'),\n        startDate: this.get('startDate').toISOString(),\n        //moment(Date.now()).subtract(3, 'hours'),\n        endDate: this.get('endDate').toISOString(),\n        referenceDate: this.get('referenceDate').toISOString(),\n        widgets: this.get('widgets').map(widget => widget.serialize().attributes),\n        mapState: _lodash.default.cloneDeep(this.get('mapState'))\n      };\n      const serialized = {\n        schemaVersion: SCHEMA_VERSION,\n        timestamp: new Date().getTime(),\n        hash: (0, _md.default)(JSON.stringify(attributes)),\n        attributes\n      };\n      return serialized;\n    }\n\n  });\n  DashboardInstance.reopenClass({\n    deserialize(serialized) {\n      // for legacy, assume missing schema version means 1\n      const {\n        schemaVersion = 1\n      } = serialized;\n\n      if (schemaVersion !== 1) {\n        /*eslint-disable */\n        throw 'unknown schema version';\n        /*eslint-enable */\n      }\n\n      const {\n        id,\n        name,\n        role,\n        startDate,\n        endDate,\n        referenceDate,\n        mapState,\n        widgets\n      } = serialized.attributes;\n      const dashboardInstance = DashboardInstance.create({\n        id,\n        name,\n        role,\n        startDate: new Date(startDate),\n        endDate: new Date(endDate),\n        referenceDate: new Date(referenceDate),\n        mapState: _lodash.default.cloneDeep(mapState)\n      });\n      dashboardInstance.set('widgets', widgets.map(attributes => {\n        const widget = _widget.default.deserialize({\n          schemaVersion,\n          attributes\n        });\n\n        widget.set('dashboard', dashboardInstance);\n        return widget;\n      }));\n      return dashboardInstance;\n    }\n\n  });\n  var _default = DashboardInstance;\n  _exports.default = _default;\n});","define(\"adept-iq/classes/markers/agency\", [\"exports\", \"adept-iq/classes/markers/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    style: 'location',\n    label: 'Agency',\n    isActive: false,\n    isTraversal: false,\n    isMCG: false,\n    agencyMarker: Ember.computed.alias('record'),\n    lat: Ember.computed.alias('agencyMarker.lat'),\n    lng: Ember.computed.alias('agencyMarker.lng'),\n    options: Ember.computed.alias('agencyMarker.options')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/markers/base\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Object.extend({\n    animationTimer: null,\n    id: null,\n    record: null,\n    lat: null,\n    lng: null,\n    opacity: 1.0,\n    // these will usually be over-ridden by layer\n    // see `app/pods/components/iq-widgets/map-widget/config/marker.js` for styles\n    type: null,\n    style: null,\n    label: null,\n    isActive: false,\n    isTraversal: false,\n    isMCG: false,\n    status: null,\n    statusvalue: null,\n    // these will be applied _after_ style defaults\n    options: null\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/markers/stop\", [\"exports\", \"adept-iq/classes/markers/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    style: 'pick',\n    label: 'Stop',\n    isActive: true,\n    isTraversal: false,\n    isMCG: true,\n    iqStop: Ember.computed.alias('record'),\n    lat: Ember.computed.alias('iqStop.lat'),\n    lng: Ember.computed.alias('iqStop.lng'),\n    status: Ember.computed.alias('iqStop.drivedStatus')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/markers/vehicle\", [\"exports\", \"adept-iq/classes/markers/base\", \"adept-iq/pods/components/iq-widgets/map-widget/config/marker\", \"adept-iq/config/environment\"], function (_exports, _base, _marker, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  // average over (up to) the last N update timestamps\n  const MAX_SMOOTHING_N = 10; // don't average until there are N timestamps\n\n  const MIN_SMOOTHING_N = 5; // assume 1s vehicle updates off the bat\n\n  const DEFAULT_INTERVAL_MS = 1000;\n  const Z_INDEX_OFFSET = 1000;\n\n  var _default = _base.default.extend({\n    label: 'Vehicle',\n    isActive: true,\n    Z_INDEX_OFFSET: Z_INDEX_OFFSET,\n    iqVehicle: Ember.computed.alias('record'),\n    speed: Ember.computed.alias('iqVehicle.speed'),\n    isEmergencyVehicle: Ember.computed.alias('iqVehicle.isEmergencyVehicle'),\n    lastKnownCoord: Ember.computed.alias('iqVehicle.lastKnownCoord'),\n    lat: Ember.computed('iqVehicle.lat', function () {\n      const lat = this.get('iqVehicle.lat');\n\n      const _lat = this.get('lastKnownCoord') ? this.get('lastKnownCoord').lat : null;\n\n      if (Ember.isPresent(lat)) {\n        return lat;\n      } else if (Ember.isPresent(this.marker)) {\n        // actual lat is null, retrieve the last known marker position\n        return this.marker._latlng.lat;\n      } else if (Ember.isPresent(_lat)) {\n        return _lat;\n      }\n\n      return null;\n    }),\n    lng: Ember.computed('iqVehicle.lng', function () {\n      const lng = this.get('iqVehicle.lng');\n      this.get('style');\n\n      const _lng = this.get('lastKnownCoord') ? this.get('lastKnownCoord').lng : null;\n\n      if (Ember.isPresent(lng)) {\n        return lng;\n      } else if (Ember.isPresent(this.marker)) {\n        // actual lng is null, retrieve the last known marker position\n        return this.marker._latlng.lng;\n      } else if (Ember.isPresent(_lng)) {\n        return _lng;\n      }\n\n      return null;\n    }),\n    style: 'vehicle',\n    // style of the marker determined by otp and or linked to an emergency message\n    iconStyle: Ember.computed('iqVehicle.{lat,lng,isEmergencyVehicle}', function () {\n      const otp = this.get('iqVehicle.otp');\n      const lng = this.get('iqVehicle.lng');\n      let style = 'vehicle';\n\n      if (this.get('speed') && Ember.isPresent(lng)) {\n        style += 'Driving';\n      }\n\n      if (_environment.default.APP.avlmLite) {\n        return style + 'AVLM';\n      }\n\n      if (this.get('isEmergencyVehicle')) {\n        style += 'Emergency';\n      }\n\n      switch (otp) {\n        case 'D':\n          style += 'Danger';\n          return style;\n\n        case 'L':\n          style += 'Late';\n          return style;\n\n        default:\n          return style;\n      }\n    }),\n\n    init() {\n      this._super(...arguments); // each vehicle marker subscribes to a central `animationTimer` service\n      // that fires an event on animation ticks\n\n    },\n\n    destroy() {\n      this._super(...arguments);\n    },\n\n    onAnimationTimerTick() {\n      const iqVehicle = this.get('iqVehicle');\n\n      if (!iqVehicle) {\n        return;\n      } // if the vehicle has no actual lat/lng, there is nothing we can do\n\n\n      const actualLat = iqVehicle.get('lat');\n      const actualLng = iqVehicle.get('lng');\n      const heading = iqVehicle.get('heading');\n\n      if (Ember.isNone(actualLat) || Ember.isNone(actualLng)) {\n        this.set('lat', null);\n        this.set('lng', null);\n        return;\n      } // if we don't have a cached marker location, snap marker to current coords\n\n\n      const lat = this.get('_lat');\n      const lng = this.get('_lng');\n\n      if (Ember.isNone(lat) || Ember.isNone(lng)) {\n        this.set('lat', actualLat);\n        this.set('lng', actualLng);\n        return;\n      } // calculate average time between last n location updates\n\n\n      const interval = this.computeAverageTimeWindow(iqVehicle); // calculate % of time that has elapsed before projected update\n\n      const lastTime = iqVehicle.get('currentAVLLocation.localTimestamp').getTime();\n      const now = new Date().getTime();\n      const t = Math.min(1.0, (now - lastTime) / interval); // interpolate along vector from last cached marker location to known coords\n\n      const diffLat = actualLat - lat;\n      const diffLng = actualLng - lng;\n      const newLat = lat + t * diffLat;\n      const newLng = lng + t * diffLng;\n\n      if (this.marker) {\n        // NOTE: we intentionally do not update the `lat` and `lng` properties,\n        // becuase this would trigger an expensive update at the map widget level\n        const iconStyle = this.get('iconStyle'); // we know vehicle heading now, so switch to arrow icon\n        // this.marker.setIcon(MARKERS.vehicleDriving.icon);\n\n        this.marker.setIcon(_marker.default[iconStyle].icon); // make this vehicle sit on top of other markers (e.g. stops)\n\n        this.marker.setZIndexOffset(Z_INDEX_OFFSET); // update marker position and angle directly\n\n        this.marker.setLatLng([newLat, newLng]);\n        let angle = heading;\n\n        if (angle === 0) {\n          angle = -45;\n        } else {\n          angle = angle / 2 - 45;\n        } // console.log(angle);\n\n\n        this.marker.setRotationAngle(angle);\n      }\n    },\n\n    // calculates the (rolling) average time between location updates\n    computeAverageTimeWindow(iqVehicle) {\n      const locations = iqVehicle.get('sortedavls'); // if we have insufficient data points, return a default static guess\n\n      if (locations.length < MIN_SMOOTHING_N) {\n        return DEFAULT_INTERVAL_MS;\n      } // use up to N points\n\n\n      const n = Math.min(locations.length, MAX_SMOOTHING_N); // `localTimestamp` is a front-end only property set when we push the record\n\n      const timestamps = locations.slice(locations.length - n, locations.length).map(avlLocation => avlLocation.get('localTimestamp').getTime()); // compute the average\n\n      let sum = 0;\n\n      for (let i = 1; i < timestamps.length; i++) {\n        sum += timestamps[i] - timestamps[i - 1];\n      } // n points yields (n-1) intervals\n\n\n      return sum / (n - 1);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/polygons/base\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Object.extend({\n    animationTimer: null,\n    id: null,\n    record: null,\n    lat: null,\n    lng: null,\n    opacity: 1.0,\n    // these will usually be over-ridden by layer\n    // see `app/pods/components/iq-widgets/map-widget/config/marker.js` for styles\n    type: null,\n    style: null,\n    label: null,\n    isActive: false,\n    isTraversal: false,\n    // these will be applied _after_ style defaults\n    options: null,\n    status: null,\n    parentLabel: null\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/polygons/zone\", [\"exports\", \"adept-iq/classes/polygons/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    style: 'zone',\n    label: 'Zones',\n    parentLabel: 'Zones',\n    isActive: true,\n    isTraversal: true,\n    zonePolygon: Ember.computed.alias('record'),\n    lat: Ember.computed.alias('zonePolygon.lat'),\n    lng: Ember.computed.alias('zonePolygon.lng'),\n    options: Ember.computed.alias('zonePolygon.options'),\n    points: Ember.computed.alias('zonePolygon.polypoints'),\n    caption: Ember.computed.alias('zonePolygon.name'),\n    status: Ember.computed.alias('zonePolygon.status')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/polylines/base\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Object.extend({\n    animationTimer: null,\n    id: null,\n    record: null,\n    points: null,\n    opacity: 1.0,\n    // these will usually be over-ridden by layer\n    // see `app/pods/components/iq-widgets/map-widget/config/polyline.js`\n    type: null,\n    style: null,\n    label: null,\n    isActive: false,\n    otpStatus: null,\n    decorator: null,\n    // these will be applied _after_ style defaults\n    options: null\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/polylines/route\", [\"exports\", \"adept-iq/classes/polylines/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    dsRoute: Ember.computed.alias('record'),\n    points: Ember.computed('type', 'dsRoute.{fullPolyline,navigationPolyline}', function () {\n      switch (this.get('type')) {\n        case 'planned':\n          return this.get('dsRoute.fullPolyline');\n\n        case 'performed':\n          return this.get('dsRoute.fullPolyline');\n\n        case 'navigation':\n          return this.get('dsRoute.navigationPolyline');\n\n        default:\n          /*eslint-disable */\n          throw 'unknown route polyline type';\n\n        /*eslint-enable */\n      }\n    }),\n\n    /*eslint-disable */\n    options: {\n      weight: 3\n    }\n    /*eslint-enable */\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/polylines/trip\", [\"exports\", \"adept-iq/classes/polylines/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    iqTrip: Ember.computed.alias('record'),\n    points: Ember.computed.alias('iqTrip.trip.polyline'),\n    stopsIsVisible: null,\n    arrowStyle: Ember.computed('iqTrip.otp', function () {\n      const otp = this.get('iqTrip.otp');\n\n      switch (otp) {\n        case 'D':\n          return 'tripArrowPlannedDanger';\n\n        case 'L':\n          return 'tripArrowPlannedLate';\n\n        default:\n          return 'tripArrowPlanned';\n      }\n    }),\n\n    /*eslint-disable */\n    options: {\n      weight: 2\n    }\n    /*eslint-enable */\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/shapes/base\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Object.extend({\n    animationTimer: null,\n    id: null,\n    record: null,\n    lat: null,\n    lng: null,\n    opacity: 1.0,\n    // these will usually be over-ridden by layer\n    // see `app/pods/components/iq-widgets/map-widget/config/marker.js` for styles\n    type: null,\n    style: null,\n    label: null,\n    isActive: false,\n    isTraversal: false,\n    radius: false,\n    // these will be applied _after_ style defaults\n    options: null,\n    status: null,\n    parentLabel: null,\n    noOfPoints: null\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/shapes/stand\", [\"exports\", \"adept-iq/classes/shapes/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    style: 'stand',\n    label: 'Stands',\n    parentLabel: 'Stands',\n    isActive: true,\n    isTraversal: true,\n    stand: Ember.computed.alias('record'),\n    lat: Ember.computed.alias('stand.lat'),\n    lng: Ember.computed.alias('stand.lng'),\n    radius: Ember.computed.alias('stand.radius'),\n    options: Ember.computed.alias('stand.options'),\n    points: Ember.computed.alias('stand.polypoints'),\n    caption: Ember.computed.alias('stand.name'),\n    status: Ember.computed.alias('stand.status'),\n    noOfPoints: Ember.computed.alias('stand.noOfPoints')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/shapes/zone\", [\"exports\", \"adept-iq/classes/shapes/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    style: 'zone',\n    label: 'Zones',\n    parentLabel: 'Zones',\n    isActive: true,\n    isTraversal: true,\n    zone: Ember.computed.alias('record'),\n    lat: Ember.computed.alias('zone.lat'),\n    lng: Ember.computed.alias('zone.lng'),\n    radius: Ember.computed.alias('zone.radius'),\n    options: Ember.computed.alias('zone.options'),\n    points: Ember.computed.alias('zone.polypoints'),\n    caption: Ember.computed.alias('zone.name'),\n    status: Ember.computed.alias('zone.status'),\n    noOfPoints: Ember.computed.alias('zone.noOfPoints')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/tree-nodes/base\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Object.extend({\n    // config\n    label: null,\n    type: null,\n    depth: 0,\n    parent: null,\n    children: null,\n    isTreeModified: Ember.computed('tree.@each.isModified', function () {\n      return this.get('tree').any(node => node.get('isModified'));\n    }),\n    isTreeOutdated: Ember.computed('tree.@each.isOutdated', function () {\n      return this.get('tree').any(node => node.get('isOutdated'));\n    }),\n    isTreeDirty: Ember.computed.or('isTreeModified', 'isTreeOutdated'),\n    tree: Ember.computed('children.@each.tree', function () {\n      const nodes = [this];\n      const children = this.get('children');\n\n      if (Ember.isEmpty(children)) {\n        return nodes;\n      }\n\n      children.sortBy('label').forEach(child => {\n        const tree = child.get('tree');\n        nodes.push(...tree);\n      });\n      return nodes;\n    }),\n    visibleTree: Ember.computed('isExpanded', 'isRemoved', 'children.@each.visibleTree', function () {\n      if (this.get('isRemoved')) {\n        return [];\n      }\n\n      const nodes = [this];\n      const children = this.get('children');\n\n      if (!this.get('isExpanded') || Ember.isEmpty(children)) {\n        return nodes;\n      }\n\n      children.sortBy('label').forEach(child => {\n        const tree = child.get('visibleTree');\n        nodes.push(...tree);\n      });\n      return nodes;\n    }),\n    visibleChildren: Ember.computed('children.@each.isRemoved', function () {\n      const children = this.get('children');\n\n      if (Ember.isEmpty(children)) {\n        return [];\n      }\n\n      return children.rejectBy('isRemoved');\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/tree-nodes/category\", [\"exports\", \"adept-iq/classes/tree-nodes/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    type: 'category',\n    configCategory: null,\n    isCategory: true,\n    isExpandable: true,\n    // TODO: get this from config service somehow\n    isCollection: Ember.computed('children.@each.type', function () {\n      const children = this.get('children');\n\n      if (Ember.isEmpty(children)) {\n        return false;\n      }\n\n      return children.every(child => {\n        return child.get('type') === 'object';\n      });\n    }),\n    isModified: Ember.computed('children.length', 'visibleChildren.length', function () {\n      return this.get('children.length') !== this.get('visibleChildren.length');\n    }) // disabled for read-only release\n    // canAdd: computed.readOnly('isCollection')\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/tree-nodes/object\", [\"exports\", \"adept-iq/classes/tree-nodes/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    type: 'object',\n    configItem: null,\n    isExpandable: true,\n    isObject: true,\n    isRemoved: false,\n    // disabled for read-only release\n    // canRemove: computed.readOnly('parent.isCollection'),\n    isModified: Ember.computed('children.@each.isModified', function () {\n      const children = this.get('children');\n      return Ember.makeArray(children).any(child => child.get('isModified'));\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/tree-nodes/value\", [\"exports\", \"adept-iq/classes/tree-nodes/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    type: null,\n    configItem: null,\n    // TODO: bind this with permissions\n    canEdit: true,\n    isRemoved: false,\n    originalValue: null,\n    isValue: true,\n    isProperty: Ember.computed.readOnly('parent.isObject'),\n    isNumber: Ember.computed.equal('type', 'number'),\n    isString: Ember.computed.equal('type', 'string'),\n    isBoolean: Ember.computed.equal('type', 'boolean'),\n    isColor: Ember.computed.equal('type', 'color'),\n    isOutdated: Ember.computed('originalValue', 'configItem.value', function () {\n      const originalValue = this.get('originalValue');\n      const actualValue = this.get('configItem.value');\n\n      if (Ember.isEmpty(originalValue) && Ember.isEmpty(actualValue)) {\n        return false;\n      }\n\n      return JSON.stringify(originalValue) !== JSON.stringify(actualValue);\n    }),\n    isModified: Ember.computed('value', 'originalValue', function () {\n      const value = this.get('value');\n      const originalValue = this.get('originalValue');\n\n      if (Ember.isEmpty(value) && Ember.isEmpty(originalValue)) {\n        return false;\n      }\n\n      return JSON.stringify(value) !== JSON.stringify(originalValue);\n    }),\n    isDirty: Ember.computed.or('isOutdated', 'isModified')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/classes/widget\", [\"exports\", \"lodash\", \"md5\", \"adept-iq/utils/guid\"], function (_exports, _lodash, _md, _guid) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const SCHEMA_VERSION = 1;\n  const Widget = Ember.Object.extend({\n    typeId: null,\n    width: null,\n    height: null,\n    x: null,\n    y: null,\n    dashboard: null,\n    _models: null,\n    _id: null,\n    _state: null,\n    models: Ember.computed('_models', {\n      get() {\n        let models = this.get('_models');\n\n        if (!models) {\n          models = [];\n          /*eslint-disable */\n\n          this.set('_models', models);\n          /*eslint-enable */\n        }\n\n        return models;\n      },\n\n      set(key, value) {\n        this.set('_models', value);\n        return value;\n      }\n\n    }),\n    id: Ember.computed('_id', {\n      get() {\n        let id = this.get('_id');\n\n        if (!id) {\n          id = (0, _guid.guid)();\n          /*eslint-disable */\n\n          this.set('_id', id);\n          /*eslint-enable */\n        }\n\n        return id;\n      },\n\n      set(key, value) {\n        this.set('_id', value);\n        return value;\n      }\n\n    }),\n    state: Ember.computed('_state', {\n      get() {\n        let state = this.get('_state');\n\n        if (!state) {\n          state = {};\n          /*eslint-disable */\n\n          this.set('_state', state);\n          /*eslint-enable */\n        }\n\n        return state;\n      },\n\n      set(key, value) {\n        this.set('_state', value);\n        return value;\n      }\n\n    }),\n\n    // use this method to mutate state without replacing\n    mergeState(changes = {}) {\n      const state = this.get('state');\n\n      const mergedState = _lodash.default.merge({}, state, changes);\n\n      this.set('state', mergedState); // TODO: test if this is necessary\n\n      this.notifyPropertyChange('state');\n      this.set('dashboard.hasDirtyWidgets', true);\n    },\n\n    serialize() {\n      const attributes = {\n        id: this.get('id'),\n        typeId: this.get('typeId'),\n        width: this.get('width'),\n        height: this.get('height'),\n        x: this.get('x'),\n        y: this.get('y'),\n        state: _lodash.default.cloneDeep(this.get('state'))\n      };\n      const serialized = {\n        schemaVersion: SCHEMA_VERSION,\n        timestamp: new Date().getTime(),\n        hash: (0, _md.default)(JSON.stringify(attributes)),\n        attributes\n      };\n      return serialized;\n    }\n\n  });\n  Widget.reopenClass({\n    deserialize(serialized) {\n      // for legacy, missing schema version means 1\n      const {\n        schemaVersion = 1\n      } = serialized;\n\n      if (schemaVersion !== 1) {\n        /*eslint-disable */\n        throw 'unknown schema version';\n        /*eslint-enable */\n      }\n\n      const {\n        id,\n        typeId,\n        width,\n        height,\n        x,\n        y,\n        state\n      } = serialized.attributes;\n      return Widget.create({\n        id,\n        typeId,\n        width,\n        height,\n        x,\n        y,\n        state: _lodash.default.cloneDeep(state)\n      });\n    }\n\n  });\n  var _default = Widget;\n  _exports.default = _default;\n});","define(\"adept-iq/components/-dynamic-element-alt\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  // avoiding reexport directly here because in some circumstances (ember-engines\n  // for example) a simple reexport is transformed to `define.alias`,\n  // unfortunately at the moment (ember-source@3.13) there is no _actual_\n  // `@ember/component` module to alias so this causes issues\n  //\n  // tldr; we can replace this with a simple reexport when we can rely on Ember\n  // actually providing a `@ember/component` module\n  var _default = Ember.Component.extend();\n\n  _exports.default = _default;\n});","define(\"adept-iq/components/-dynamic-element\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  // avoiding reexport directly here because in some circumstances (ember-engines\n  // for example) a simple reexport is transformed to `define.alias`,\n  // unfortunately at the moment (ember-source@3.13) there is no _actual_\n  // `@ember/component` module to alias so this causes issues\n  //\n  // tldr; we can replace this with a simple reexport when we can rely on Ember\n  // actually providing a `@ember/component` module\n  var _default = Ember.Component.extend();\n\n  _exports.default = _default;\n});","define(\"adept-iq/components/as-scrollable\", [\"exports\", \"ember-scrollable/components/ember-scrollable\"], function (_exports, _emberScrollable) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _emberScrollable.default.extend({\n    classNames: 'as-scrollable'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/components/basic-dropdown-content\", [\"exports\", \"ember-basic-dropdown/components/basic-dropdown-content\"], function (_exports, _basicDropdownContent) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _basicDropdownContent.default;\n    }\n  });\n});","define(\"adept-iq/components/basic-dropdown-trigger\", [\"exports\", \"ember-basic-dropdown/components/basic-dropdown-trigger\"], function (_exports, _basicDropdownTrigger) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _basicDropdownTrigger.default;\n    }\n  });\n});","define(\"adept-iq/components/basic-dropdown\", [\"exports\", \"ember-basic-dropdown/components/basic-dropdown\"], function (_exports, _basicDropdown) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _basicDropdown.default;\n    }\n  });\n});","define(\"adept-iq/components/basic-dropdown/content-element\", [\"exports\", \"ember-basic-dropdown/components/basic-dropdown/content-element\"], function (_exports, _contentElement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _contentElement.default;\n    }\n  });\n});","define(\"adept-iq/components/basic-dropdown/content\", [\"exports\", \"ember-basic-dropdown/components/basic-dropdown/content\"], function (_exports, _content) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _content.default;\n    }\n  });\n});","define(\"adept-iq/components/basic-dropdown/trigger\", [\"exports\", \"ember-basic-dropdown/components/basic-dropdown/trigger\"], function (_exports, _trigger) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _trigger.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-accordion\", [\"exports\", \"ember-bootstrap/components/bs-accordion\"], function (_exports, _bsAccordion) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsAccordion.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-accordion/item\", [\"exports\", \"ember-bootstrap/components/bs-accordion/item\"], function (_exports, _item) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _item.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-accordion/item/body\", [\"exports\", \"ember-bootstrap/components/bs-accordion/item/body\"], function (_exports, _body) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _body.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-accordion/item/title\", [\"exports\", \"ember-bootstrap/components/bs-accordion/item/title\"], function (_exports, _title) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _title.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-alert\", [\"exports\", \"ember-bootstrap/components/bs-alert\"], function (_exports, _bsAlert) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsAlert.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-button-group\", [\"exports\", \"ember-bootstrap/components/bs-button-group\"], function (_exports, _bsButtonGroup) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsButtonGroup.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-button-group/button\", [\"exports\", \"ember-bootstrap/components/bs-button-group/button\"], function (_exports, _button) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _button.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-button\", [\"exports\", \"ember-bootstrap/components/bs-button\"], function (_exports, _bsButton) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsButton.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-carousel\", [\"exports\", \"ember-bootstrap/components/bs-carousel\"], function (_exports, _bsCarousel) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsCarousel.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-carousel/slide\", [\"exports\", \"ember-bootstrap/components/bs-carousel/slide\"], function (_exports, _slide) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _slide.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-collapse\", [\"exports\", \"ember-bootstrap/components/bs-collapse\"], function (_exports, _bsCollapse) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsCollapse.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-dropdown\", [\"exports\", \"ember-bootstrap/components/bs-dropdown\"], function (_exports, _bsDropdown) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsDropdown.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-dropdown/button\", [\"exports\", \"ember-bootstrap/components/bs-dropdown/button\"], function (_exports, _button) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _button.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-dropdown/menu\", [\"exports\", \"ember-bootstrap/components/bs-dropdown/menu\"], function (_exports, _menu) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _menu.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-dropdown/menu/divider\", [\"exports\", \"ember-bootstrap/components/bs-dropdown/menu/divider\"], function (_exports, _divider) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _divider.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-dropdown/menu/item\", [\"exports\", \"ember-bootstrap/components/bs-dropdown/menu/item\"], function (_exports, _item) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _item.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-dropdown/menu/link-to\", [\"exports\", \"ember-bootstrap/components/bs-dropdown/menu/link-to\"], function (_exports, _linkTo) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _linkTo.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-dropdown/toggle\", [\"exports\", \"ember-bootstrap/components/bs-dropdown/toggle\"], function (_exports, _toggle) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _toggle.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form\", [\"exports\", \"ember-bootstrap/components/bs-form\"], function (_exports, _bsForm) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsForm.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element\", [\"exports\", \"ember-bootstrap/components/bs-form/element\"], function (_exports, _element) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _element.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/control\", [\"exports\", \"ember-bootstrap/components/bs-form/element/control\"], function (_exports, _control) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _control.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/control/checkbox\", [\"exports\", \"ember-bootstrap/components/bs-form/element/control/checkbox\"], function (_exports, _checkbox) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _checkbox.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/control/input\", [\"exports\", \"ember-bootstrap/components/bs-form/element/control/input\"], function (_exports, _input) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _input.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/control/textarea\", [\"exports\", \"ember-bootstrap/components/bs-form/element/control/textarea\"], function (_exports, _textarea) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _textarea.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/errors\", [\"exports\", \"ember-bootstrap/components/bs-form/element/errors\"], function (_exports, _errors) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _errors.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/feedback-icon\", [\"exports\", \"ember-bootstrap/components/bs-form/element/feedback-icon\"], function (_exports, _feedbackIcon) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _feedbackIcon.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/help-text\", [\"exports\", \"ember-bootstrap/components/bs-form/element/help-text\"], function (_exports, _helpText) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _helpText.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/label\", [\"exports\", \"ember-bootstrap/components/bs-form/element/label\"], function (_exports, _label) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _label.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/layout/horizontal\", [\"exports\", \"ember-bootstrap/components/bs-form/element/layout/horizontal\"], function (_exports, _horizontal) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _horizontal.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/layout/horizontal/checkbox\", [\"exports\", \"ember-bootstrap/components/bs-form/element/layout/horizontal/checkbox\"], function (_exports, _checkbox) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _checkbox.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/layout/inline\", [\"exports\", \"ember-bootstrap/components/bs-form/element/layout/inline\"], function (_exports, _inline) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _inline.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/layout/inline/checkbox\", [\"exports\", \"ember-bootstrap/components/bs-form/element/layout/inline/checkbox\"], function (_exports, _checkbox) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _checkbox.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/layout/vertical\", [\"exports\", \"ember-bootstrap/components/bs-form/element/layout/vertical\"], function (_exports, _vertical) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _vertical.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/element/layout/vertical/checkbox\", [\"exports\", \"ember-bootstrap/components/bs-form/element/layout/vertical/checkbox\"], function (_exports, _checkbox) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _checkbox.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-form/group\", [\"exports\", \"ember-bootstrap/components/bs-form/group\"], function (_exports, _group) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _group.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-modal-simple\", [\"exports\", \"ember-bootstrap/components/bs-modal-simple\"], function (_exports, _bsModalSimple) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsModalSimple.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-modal\", [\"exports\", \"ember-bootstrap/components/bs-modal\"], function (_exports, _bsModal) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsModal.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-modal/body\", [\"exports\", \"ember-bootstrap/components/bs-modal/body\"], function (_exports, _body) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _body.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-modal/dialog\", [\"exports\", \"ember-bootstrap/components/bs-modal/dialog\"], function (_exports, _dialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _dialog.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-modal/footer\", [\"exports\", \"ember-bootstrap/components/bs-modal/footer\"], function (_exports, _footer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _footer.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-modal/header\", [\"exports\", \"ember-bootstrap/components/bs-modal/header\"], function (_exports, _header) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _header.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-modal/header/close\", [\"exports\", \"ember-bootstrap/components/bs-modal/header/close\"], function (_exports, _close) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _close.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-modal/header/title\", [\"exports\", \"ember-bootstrap/components/bs-modal/header/title\"], function (_exports, _title) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _title.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-nav\", [\"exports\", \"ember-bootstrap/components/bs-nav\"], function (_exports, _bsNav) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsNav.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-nav/item\", [\"exports\", \"ember-bootstrap/components/bs-nav/item\"], function (_exports, _item) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _item.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-nav/link-to\", [\"exports\", \"ember-bootstrap/components/bs-nav/link-to\"], function (_exports, _linkTo) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _linkTo.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-navbar\", [\"exports\", \"ember-bootstrap/components/bs-navbar\"], function (_exports, _bsNavbar) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsNavbar.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-navbar/content\", [\"exports\", \"ember-bootstrap/components/bs-navbar/content\"], function (_exports, _content) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _content.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-navbar/link-to\", [\"exports\", \"ember-bootstrap/components/bs-navbar/link-to\"], function (_exports, _linkTo) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _linkTo.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-navbar/nav\", [\"exports\", \"ember-bootstrap/components/bs-navbar/nav\"], function (_exports, _nav) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _nav.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-navbar/toggle\", [\"exports\", \"ember-bootstrap/components/bs-navbar/toggle\"], function (_exports, _toggle) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _toggle.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-popover\", [\"exports\", \"ember-bootstrap/components/bs-popover\"], function (_exports, _bsPopover) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsPopover.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-popover/element\", [\"exports\", \"ember-bootstrap/components/bs-popover/element\"], function (_exports, _element) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _element.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-progress\", [\"exports\", \"ember-bootstrap/components/bs-progress\"], function (_exports, _bsProgress) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsProgress.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-progress/bar\", [\"exports\", \"ember-bootstrap/components/bs-progress/bar\"], function (_exports, _bar) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bar.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-tab\", [\"exports\", \"ember-bootstrap/components/bs-tab\"], function (_exports, _bsTab) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsTab.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-tab/pane\", [\"exports\", \"ember-bootstrap/components/bs-tab/pane\"], function (_exports, _pane) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _pane.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-tooltip\", [\"exports\", \"ember-bootstrap/components/bs-tooltip\"], function (_exports, _bsTooltip) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsTooltip.default;\n    }\n  });\n});","define(\"adept-iq/components/bs-tooltip/element\", [\"exports\", \"ember-bootstrap/components/bs-tooltip/element\"], function (_exports, _element) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _element.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-chart\", [\"exports\", \"ember-cli-chart/components/ember-chart\"], function (_exports, _emberChart) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _emberChart.default;\n  _exports.default = _default;\n});","define(\"adept-iq/components/ember-flatpickr\", [\"exports\", \"ember-flatpickr/components/ember-flatpickr\"], function (_exports, _emberFlatpickr) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberFlatpickr.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-modal-dialog-positioned-container\", [\"exports\", \"ember-modal-dialog/components/positioned-container\"], function (_exports, _positionedContainer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _positionedContainer.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-modal-dialog/-basic-dialog\", [\"exports\", \"ember-modal-dialog/components/basic-dialog\"], function (_exports, _basicDialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _basicDialog.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-modal-dialog/-in-place-dialog\", [\"exports\", \"ember-modal-dialog/components/in-place-dialog\"], function (_exports, _inPlaceDialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _inPlaceDialog.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-modal-dialog/-liquid-dialog\", [\"exports\", \"ember-modal-dialog/components/liquid-dialog\"], function (_exports, _liquidDialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _liquidDialog.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-modal-dialog/-liquid-tether-dialog\", [\"exports\", \"ember-modal-dialog/components/liquid-tether-dialog\"], function (_exports, _liquidTetherDialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _liquidTetherDialog.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-modal-dialog/-tether-dialog\", [\"exports\", \"ember-modal-dialog/components/tether-dialog\"], function (_exports, _tetherDialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _tetherDialog.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-popper-targeting-parent\", [\"exports\", \"ember-popper/components/ember-popper-targeting-parent\"], function (_exports, _emberPopperTargetingParent) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberPopperTargetingParent.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-popper\", [\"exports\", \"ember-popper/components/ember-popper\"], function (_exports, _emberPopper) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberPopper.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-scrollable\", [\"exports\", \"ember-scrollable/components/ember-scrollable\"], function (_exports, _emberScrollable) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberScrollable.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-scrollbar\", [\"exports\", \"ember-scrollable/components/ember-scrollbar\"], function (_exports, _emberScrollbar) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberScrollbar.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-timepicker\", [\"exports\", \"ember-timepicker/components/ember-timepicker\"], function (_exports, _emberTimepicker) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberTimepicker.default;\n    }\n  });\n});","define(\"adept-iq/components/ember-wormhole\", [\"exports\", \"ember-wormhole/components/ember-wormhole\"], function (_exports, _emberWormhole) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberWormhole.default;\n    }\n  });\n});","define(\"adept-iq/components/flash-message\", [\"exports\", \"ember-cli-flash/components/flash-message\"], function (_exports, _flashMessage) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _flashMessage.default;\n    }\n  });\n});","define(\"adept-iq/components/grid-stack-item\", [\"exports\", \"ember-gridstack/components/grid-stack-item\"], function (_exports, _gridStackItem) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _gridStackItem.default;\n    }\n  });\n});","define(\"adept-iq/components/grid-stack\", [\"exports\", \"ember-gridstack/components/grid-stack\"], function (_exports, _gridStack) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _gridStack.default;\n    }\n  });\n});","define(\"adept-iq/components/labeled-radio-button\", [\"exports\", \"ember-radio-button/components/labeled-radio-button\"], function (_exports, _labeledRadioButton) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _labeledRadioButton.default;\n    }\n  });\n});","define(\"adept-iq/components/light-table\", [\"exports\", \"ember-light-table/components/light-table\"], function (_exports, _lightTable) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _lightTable.default;\n    }\n  });\n});","define(\"adept-iq/components/light-table/cells/base\", [\"exports\", \"ember-light-table/components/cells/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _base.default;\n    }\n  });\n});","define(\"adept-iq/components/light-table/columns/base\", [\"exports\", \"ember-light-table/components/columns/base\"], function (_exports, _base) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _base.default;\n    }\n  });\n});","define(\"adept-iq/components/lt-body\", [\"exports\", \"ember-light-table/components/lt-body\"], function (_exports, _ltBody) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ltBody.default;\n    }\n  });\n});","define(\"adept-iq/components/lt-column-resizer\", [\"exports\", \"ember-light-table/components/lt-column-resizer\"], function (_exports, _ltColumnResizer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ltColumnResizer.default;\n    }\n  });\n});","define(\"adept-iq/components/lt-foot\", [\"exports\", \"ember-light-table/components/lt-foot\"], function (_exports, _ltFoot) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ltFoot.default;\n    }\n  });\n});","define(\"adept-iq/components/lt-head\", [\"exports\", \"ember-light-table/components/lt-head\"], function (_exports, _ltHead) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ltHead.default;\n    }\n  });\n});","define(\"adept-iq/components/lt-infinity\", [\"exports\", \"ember-light-table/components/lt-infinity\"], function (_exports, _ltInfinity) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ltInfinity.default;\n    }\n  });\n});","define(\"adept-iq/components/lt-row\", [\"exports\", \"ember-light-table/components/lt-row\"], function (_exports, _ltRow) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ltRow.default;\n    }\n  });\n});","define(\"adept-iq/components/lt-scrollable\", [\"exports\", \"ember-light-table/components/lt-scrollable\"], function (_exports, _ltScrollable) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ltScrollable.default;\n    }\n  });\n});","define(\"adept-iq/components/lt-spanned-row\", [\"exports\", \"ember-light-table/components/lt-spanned-row\"], function (_exports, _ltSpannedRow) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ltSpannedRow.default;\n    }\n  });\n});","define(\"adept-iq/components/modal-container\", [\"exports\", \"ember-modal-service/components/modal-container\"], function (_exports, _modalContainer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _modalContainer.default;\n    }\n  });\n});","define(\"adept-iq/components/modal-dialog\", [\"exports\", \"ember-modal-dialog/components/modal-dialog\"], function (_exports, _modalDialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _modalDialog.default;\n    }\n  });\n});","define(\"adept-iq/components/modal\", [\"exports\", \"ember-modal-service/components/modal\"], function (_exports, _modal) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _modal.default;\n    }\n  });\n});","define(\"adept-iq/components/power-calendar-multiple\", [\"exports\", \"ember-power-calendar/components/power-calendar-multiple\"], function (_exports, _powerCalendarMultiple) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _powerCalendarMultiple.default;\n    }\n  });\n});","define(\"adept-iq/components/power-calendar-multiple/days\", [\"exports\", \"ember-power-calendar/components/power-calendar-multiple/days\"], function (_exports, _days) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _days.default;\n    }\n  });\n});","define(\"adept-iq/components/power-calendar-range\", [\"exports\", \"ember-power-calendar/components/power-calendar-range\"], function (_exports, _powerCalendarRange) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _powerCalendarRange.default;\n    }\n  });\n});","define(\"adept-iq/components/power-calendar-range/days\", [\"exports\", \"ember-power-calendar/components/power-calendar-range/days\"], function (_exports, _days) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _days.default;\n    }\n  });\n});","define(\"adept-iq/components/power-calendar\", [\"exports\", \"ember-power-calendar/components/power-calendar\"], function (_exports, _powerCalendar) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _powerCalendar.default;\n    }\n  });\n});","define(\"adept-iq/components/power-calendar/days\", [\"exports\", \"ember-power-calendar/components/power-calendar/days\"], function (_exports, _days) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _days.default;\n    }\n  });\n});","define(\"adept-iq/components/power-calendar/nav\", [\"exports\", \"ember-power-calendar/components/power-calendar/nav\"], function (_exports, _nav) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _nav.default;\n    }\n  });\n});","define(\"adept-iq/components/power-select-multiple-with-create\", [\"exports\", \"ember-power-select-with-create/components/power-select-multiple-with-create\"], function (_exports, _powerSelectMultipleWithCreate) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _powerSelectMultipleWithCreate.default;\n    }\n  });\n});","define(\"adept-iq/components/power-select-multiple\", [\"exports\", \"ember-power-select/components/power-select-multiple\"], function (_exports, _powerSelectMultiple) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _powerSelectMultiple.default;\n    }\n  });\n});","define(\"adept-iq/components/power-select-multiple/trigger\", [\"exports\", \"ember-power-select/components/power-select-multiple/trigger\"], function (_exports, _trigger) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _trigger.default;\n    }\n  });\n});","define(\"adept-iq/components/power-select-with-create\", [\"exports\", \"ember-power-select-with-create/components/power-select-with-create\"], function (_exports, _powerSelectWithCreate) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _powerSelectWithCreate.default;\n    }\n  });\n});","define(\"adept-iq/components/power-select-with-create/suggested-option\", [\"exports\", \"ember-power-select-with-create/components/power-select-with-create/suggested-option\"], function (_exports, _suggestedOption) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _suggestedOption.default;\n    }\n  });\n});","define(\"adept-iq/components/power-select\", [\"exports\", \"ember-power-select/components/power-select\"], function (_exports, _powerSelect) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _powerSelect.default;\n    }\n  });\n});","define(\"adept-iq/components/power-select/before-options\", [\"exports\", \"ember-power-select/components/power-select/before-options\"], function (_exports, _beforeOptions) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _beforeOptions.default;\n    }\n  });\n});","define(\"adept-iq/components/power-select/options\", [\"exports\", \"ember-power-select/components/power-select/options\"], function (_exports, _options) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _options.default;\n    }\n  });\n});","define(\"adept-iq/components/power-select/placeholder\", [\"exports\", \"ember-power-select/components/power-select/placeholder\"], function (_exports, _placeholder) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _placeholder.default;\n    }\n  });\n});","define(\"adept-iq/components/power-select/power-select-group\", [\"exports\", \"ember-power-select/components/power-select/power-select-group\"], function (_exports, _powerSelectGroup) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _powerSelectGroup.default;\n    }\n  });\n});","define(\"adept-iq/components/power-select/search-message\", [\"exports\", \"ember-power-select/components/power-select/search-message\"], function (_exports, _searchMessage) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _searchMessage.default;\n    }\n  });\n});","define(\"adept-iq/components/power-select/trigger\", [\"exports\", \"ember-power-select/components/power-select/trigger\"], function (_exports, _trigger) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _trigger.default;\n    }\n  });\n});","define(\"adept-iq/components/radio-button-input\", [\"exports\", \"ember-radio-button/components/radio-button-input\"], function (_exports, _radioButtonInput) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _radioButtonInput.default;\n    }\n  });\n});","define(\"adept-iq/components/radio-button\", [\"exports\", \"ember-radio-button/components/radio-button\"], function (_exports, _radioButton) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _radioButton.default;\n    }\n  });\n});","define(\"adept-iq/components/range-slider\", [\"exports\", \"ui-slider/components/range-slider\"], function (_exports, _rangeSlider) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _rangeSlider.default;\n    }\n  });\n});","define(\"adept-iq/components/resize-detector\", [\"exports\", \"ember-element-resize-detector/components/resize-detector\"], function (_exports, _resizeDetector) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _resizeDetector.default;\n    }\n  });\n});","define(\"adept-iq/components/scroll-content-element\", [\"exports\", \"ember-scrollable/components/scroll-content-element\"], function (_exports, _scrollContentElement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _scrollContentElement.default;\n    }\n  });\n});","define(\"adept-iq/components/sortable-group\", [\"exports\", \"ember-sortable/components/sortable-group\"], function (_exports, _sortableGroup) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _sortableGroup.default;\n  _exports.default = _default;\n});","define(\"adept-iq/components/sortable-item\", [\"exports\", \"ember-sortable/components/sortable-item\"], function (_exports, _sortableItem) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _sortableItem.default;\n  _exports.default = _default;\n});","define(\"adept-iq/components/spectrum-color-picker\", [\"exports\", \"ember-spectrum-color-picker/components/spectrum-color-picker\"], function (_exports, _spectrumColorPicker) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _spectrumColorPicker.default;\n  _exports.default = _default;\n});","define(\"adept-iq/components/tableau-view\", [\"exports\", \"ember-cli-tableau/components/tableau-view\"], function (_exports, _tableauView) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _tableauView.default;\n    }\n  });\n});","define(\"adept-iq/components/ui-slider\", [\"exports\", \"ui-slider/components/ui-slider\"], function (_exports, _uiSlider) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _uiSlider.default;\n    }\n  });\n});","define(\"adept-iq/components/vertical-collection\", [\"exports\", \"@html-next/vertical-collection/components/vertical-collection/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _component.default;\n    }\n  });\n});","define(\"adept-iq/config/active-context-graph\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _exports.activeContextGraph = _exports.activeContextNodes = _exports.iqStopNode = _exports.iqTripNode = _exports.iqRiderNode = _exports.iqVehicleNode = _exports.iqDriverNode = _exports.tmDriverNode = _exports.tmCannedMessageNode = _exports.ssoUserNode = _exports.standsNode = _exports.zonesNode = _exports.vehicleStateNode = _exports.vehicleNode = _exports.driverNode = _exports.accountNode = _exports.subscriptionNode = _exports.callLineNode = _exports.riderNode = _exports.stopNode = _exports.tripNode = void 0;\n  const tripNode = {\n    id: 'trip',\n    modelName: 'trip',\n    links: [{\n      type: 'belongsTo',\n      nodeId: 'iq-trip',\n      path: 'iqTrip'\n    }, {\n      // this is a hack for streaming; better to go through `legs`\n      type: 'hasMany',\n      nodeId: 'stop',\n      path: 'stops'\n    }, {\n      type: 'belongsTo',\n      nodeId: 'rider',\n      path: 'rider'\n    }, {\n      type: 'belongsTo',\n      nodeId: 'account',\n      path: 'account'\n    }, {\n      type: 'belongsTo',\n      nodeId: 'vehicle-state',\n      path: 'vehicleState'\n    }],\n    isActive: true,\n    leftTimeConstraint: 'requestedTime',\n    rightTimeConstraint: 'requestedTime'\n  };\n  _exports.tripNode = tripNode;\n  const stopNode = {\n    id: 'stop',\n    modelName: 'stop',\n    links: [{\n      type: 'belongsTo',\n      nodeId: 'iq-stop',\n      path: 'iqStop'\n    }, {\n      // this is a hack for streaming; better to go through `segment`\n      type: 'belongsTo',\n      nodeId: 'trip',\n      path: 'trip'\n    }],\n    isActive: true,\n    leftTimeConstraint: 'trip.requestedTime',\n    rightTimeConstraint: 'trip.requestedTime'\n  };\n  _exports.stopNode = stopNode;\n  const riderNode = {\n    id: 'rider',\n    modelName: 'rider',\n    links: [{\n      type: 'belongsTo',\n      nodeId: 'iq-rider',\n      path: 'iqRider'\n    }, {\n      type: 'hasMany',\n      nodeId: 'trip',\n      path: 'trips'\n    }, {\n      type: 'hasMany',\n      nodeId: 'call-line',\n      path: 'callLines'\n    }],\n    isActive: true\n  };\n  _exports.riderNode = riderNode;\n  const callLineNode = {\n    id: 'call-line',\n    modelName: 'call-line',\n    links: [{\n      type: 'belongsTo',\n      nodeId: 'account',\n      path: 'account'\n    }],\n    isActive: false\n  };\n  _exports.callLineNode = callLineNode;\n  const subscriptionNode = {\n    id: 'subscription',\n    modelName: 'subscription'\n  };\n  _exports.subscriptionNode = subscriptionNode;\n  const accountNode = {\n    id: 'account',\n    modelName: 'account',\n    links: [{\n      type: 'hasMany',\n      nodeId: 'trip',\n      path: 'trips'\n    }, {\n      type: 'hasMany',\n      nodeId: 'call-line',\n      path: 'callLines'\n    }],\n    isActive: true\n  };\n  _exports.accountNode = accountNode;\n  const driverNode = {\n    id: 'driver',\n    modelName: 'driver',\n    links: [{\n      type: 'belongsTo',\n      nodeId: 'iq-driver',\n      path: 'iqDriver'\n    }, {\n      type: 'belongsTo',\n      nodeId: 'vehicle',\n      path: 'vehicle'\n    }],\n    isActive: true\n  };\n  _exports.driverNode = driverNode;\n  const vehicleNode = {\n    id: 'vehicle',\n    modelName: 'vehicle',\n    links: [{\n      type: 'belongsTo',\n      nodeId: 'iq-vehicle',\n      path: 'iqVehicle'\n    }, {\n      type: 'belongsTo',\n      nodeId: 'driver',\n      path: 'driver'\n    }, {\n      type: 'belongsTo',\n      nodeId: 'vehicle-state',\n      path: 'vehicleState'\n    }],\n    isActive: true\n  };\n  _exports.vehicleNode = vehicleNode;\n  const vehicleStateNode = {\n    id: 'vehicle-state',\n    modelName: 'vehicle-state',\n    links: [{\n      type: 'belongsTo',\n      nodeId: 'driver',\n      path: 'driver'\n    }, {\n      type: 'belongsTo',\n      nodeId: 'trip',\n      path: 'trip'\n    }],\n    isActive: true\n  };\n  _exports.vehicleStateNode = vehicleStateNode;\n  const zonesNode = {\n    id: 'zone',\n    modelName: 'zone',\n    links: [{\n      type: 'hasMany',\n      nodeId: 'trip',\n      path: 'trips'\n    }, {\n      type: 'hasMany',\n      nodeId: 'vehicle',\n      path: 'vehicles'\n    }],\n    isActive: true\n  };\n  _exports.zonesNode = zonesNode;\n  const standsNode = {\n    id: 'stand',\n    modelName: 'stand',\n    links: [],\n    isActive: true\n  };\n  _exports.standsNode = standsNode;\n  const ssoUserNode = {\n    id: 'sso-user',\n    modelName: 'sso-user'\n  };\n  _exports.ssoUserNode = ssoUserNode;\n  const tmCannedMessageNode = {\n    id: 'tm-canned-message',\n    modelName: 'tm-canned-message',\n    links: [{\n      type: 'belongsTo',\n      nodeId: 'tm-driver',\n      path: 'driver'\n    }],\n    isActive: true,\n    leftTimeConstraint: 'createdTime',\n    rightTimeConstraint: 'createdTime'\n  };\n  _exports.tmCannedMessageNode = tmCannedMessageNode;\n  const tmDriverNode = {\n    id: 'tm-driver',\n    modelName: 'tm-driver',\n    links: [{\n      type: 'hasMany',\n      nodeId: 'tm-canned-message',\n      path: 'cannedMessages'\n    }, {\n      type: 'belongsTo',\n      nodeId: 'iq-driver',\n      path: 'iqDriver'\n    }],\n    isActive: true\n  };\n  _exports.tmDriverNode = tmDriverNode;\n  const iqDriverNode = {\n    id: 'iq-driver',\n    modelName: 'iq-driver',\n    links: [{\n      // TODO: change to `belongsTo` when data is fixed\n      type: 'hasMany',\n      nodeId: 'tm-driver',\n      path: 'tmDrivers'\n    }, {\n      type: 'belongsTo',\n      nodeId: 'driver',\n      path: 'driver'\n    }],\n    isActive: true\n  };\n  _exports.iqDriverNode = iqDriverNode;\n  const iqVehicleNode = {\n    id: 'iq-vehicle',\n    modelName: 'iq-vehicle',\n    links: [{\n      type: 'belongsTo',\n      nodeId: 'vehicle',\n      path: 'vehicle'\n    }],\n    isActive: true\n  };\n  _exports.iqVehicleNode = iqVehicleNode;\n  const iqRiderNode = {\n    id: 'iq-rider',\n    modelName: 'iq-rider',\n    links: [{\n      type: 'belongsTo',\n      nodeId: 'rider',\n      path: 'rider'\n    }],\n    isActive: true\n  };\n  _exports.iqRiderNode = iqRiderNode;\n  const iqTripNode = {\n    id: 'iq-trip',\n    modelName: 'iq-trip',\n    links: [{\n      type: 'belongsTo',\n      nodeId: 'trip',\n      path: 'trip'\n    }, {\n      type: 'belongsTo',\n      nodeId: 'driver',\n      path: 'driver'\n    }, {\n      type: 'belongsTo',\n      nodeId: 'iq-vehicle',\n      path: 'iqVehicle'\n    }],\n    isActive: true,\n    leftTimeConstraint: 'trip.requestedTime',\n    rightTimeConstraint: 'trip.requestedTime'\n  };\n  _exports.iqTripNode = iqTripNode;\n  const iqStopNode = {\n    id: 'iq-stop',\n    modelName: 'iq-stop',\n    links: [{\n      type: 'belongsTo',\n      nodeId: 'stop',\n      path: 'stop'\n    }],\n    isActive: true,\n    leftTimeConstraint: 'stop.trip.requestedTime',\n    rightTimeConstraint: 'stop.trip.requestedTime'\n  };\n  _exports.iqStopNode = iqStopNode;\n  const activeContextNodes = [// trip management graph\n  tmCannedMessageNode, tmDriverNode, // sign-on\n  ssoUserNode, // unification nodes\n  iqTripNode, iqStopNode, iqDriverNode, iqVehicleNode, iqRiderNode, // trip service graph\n  tripNode, stopNode, riderNode, callLineNode, subscriptionNode, accountNode, driverNode, vehicleNode, vehicleStateNode, zonesNode, standsNode];\n  _exports.activeContextNodes = activeContextNodes;\n  const activeContextGraph = activeContextNodes.reduce((obj, node) => {\n    obj[node.id] = node;\n    return obj;\n  }, {});\n  _exports.activeContextGraph = activeContextGraph;\n  var _default = activeContextGraph;\n  _exports.default = _default;\n});","define(\"adept-iq/config/api-preloads\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.apiPreloads = void 0;\n  const apiPreloads = [// rider management API\n  //{ modelName: 'rms-rider', async: true },\n  //{ modelName: 'rms-travel-need-type', async: true },\n  //{ modelName: 'rms-passenger-type', async: true },\n  //{ modelName: 'rms-eligibility-type', async: true },\n  //TM API\n  {\n    modelName: 'tm-common-operational-attribute',\n    async: true\n  }, {\n    modelName: 'tm-config-parameter-value',\n    async: true\n  }, {\n    modelName: 'zone',\n    async: true\n  }];\n  _exports.apiPreloads = apiPreloads;\n});","define(\"adept-iq/config/api-urls\", [\"exports\", \"adept-iq/config/environment\"], function (_exports, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.API_SUB_URL = _exports.API = void 0;\n  const API = {\n    avlmService: {\n      host: _environment.default.API.avlmService.host\n    },\n    avlmtripService: {\n      host: _environment.default.API.avlmtripService.host\n    },\n    tripService: {\n      host: _environment.default.API.tripService.host\n    },\n    configService: {\n      host: _environment.default.API.configService.host\n    },\n    dispatchService: {\n      host: _environment.default.API.dispatchService.host\n    },\n    geocodeService: {\n      host: _environment.default.API.geocodeService.host\n    },\n    riderManagementService: {\n      host: _environment.default.API.riderManagementService.host\n    },\n    schedulingService: {\n      host: _environment.default.API.schedulingService.host\n    },\n    ssoService: {\n      host: _environment.default.API.ssoService.host,\n      useMirage: false\n    },\n    streamingService: {\n      host: _environment.default.API.streamingService.host\n    },\n    tripManagementService: {\n      host: _environment.default.API.tripManagementService.host\n    },\n    tomtom: {\n      host: _environment.default.API.tomtomhost\n    },\n    awsAmazonConnect: {\n      host: _environment.default.API.awsAmazonConnect.host\n    }\n  };\n  _exports.API = API;\n  const API_SUB_URL = {\n    accountSearchPath: _environment.default.API_SUB_URL.accountSearchPath,\n    phoneSearchPath: _environment.default.API_SUB_URL.phoneSearchPath,\n    poiSearchPath: _environment.default.API_SUB_URL.poiSearchPath\n  };\n  _exports.API_SUB_URL = API_SUB_URL;\n});","define(\"adept-iq/config/column-types\", [\"exports\", \"adept-iq/config/filter-types\", \"adept-iq/config/comparison-functions\"], function (_exports, _filterTypes, _comparisonFunctions) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _exports.columnTypesHash = _exports.columnTypes = _exports.enumAddressColumnType = _exports.enumDateColumnType = _exports.enumColumnType = _exports.timeColumnType = _exports.dateTimeColumnType = _exports.dateColumnType = _exports.floatColumnType = _exports.integerColumnType = _exports.numberColumnType = _exports.phoneColumnType = _exports.textColumnType = _exports.stringColumnType = _exports.booleanColumnType = _exports.uuidColumnType = void 0;\n  const uuidColumnType = {\n    id: 'uuid',\n    filterTypes: [_filterTypes.nullFilter, _filterTypes.uuidEq, _filterTypes.emptyFilter],\n    searchFilterType: _filterTypes.uuidEq,\n    compare: _comparisonFunctions.numberCompare\n  };\n  _exports.uuidColumnType = uuidColumnType;\n  const booleanColumnType = {\n    id: 'boolean',\n    filterTypes: [_filterTypes.nullFilter, _filterTypes.booleanEq, _filterTypes.booleanNe, _filterTypes.emptyFilter],\n    searchFilterType: _filterTypes.booleanEq,\n    compare: _comparisonFunctions.booleanCompare\n  };\n  _exports.booleanColumnType = booleanColumnType;\n  const stringColumnType = {\n    id: 'string',\n    filterTypes: [_filterTypes.nullFilter, _filterTypes.stringEq, _filterTypes.stringNotEq, _filterTypes.stringContains, _filterTypes.emptyFilter],\n    searchFilterType: _filterTypes.stringContains,\n    compare: _comparisonFunctions.stringCompare\n  }; // alias for string\n\n  _exports.stringColumnType = stringColumnType;\n  const textColumnType = {\n    id: 'text',\n    filterTypes: stringColumnType.filterTypes,\n    searchFilterType: stringColumnType.searchFilterType,\n    compare: stringColumnType.compare\n  };\n  _exports.textColumnType = textColumnType;\n  const phoneColumnType = {\n    id: 'phone',\n    filterTypes: [_filterTypes.nullFilter, _filterTypes.stringEq, _filterTypes.stringContains, _filterTypes.emptyFilter],\n    searchFilterType: _filterTypes.stringContains,\n    compare: _comparisonFunctions.stringCompare\n  };\n  _exports.phoneColumnType = phoneColumnType;\n  const numberColumnType = {\n    id: 'number',\n    filterTypes: [_filterTypes.nullFilter, _filterTypes.numberEq, _filterTypes.numberNotEq, _filterTypes.numberLt, _filterTypes.numberLte, _filterTypes.numberGt, _filterTypes.numberGte, _filterTypes.numberBetween, _filterTypes.numberStrictlyBetween, _filterTypes.emptyFilter],\n    searchFilterType: _filterTypes.numberEq,\n    compare: _comparisonFunctions.numberCompare\n  };\n  _exports.numberColumnType = numberColumnType;\n  const integerColumnType = {\n    id: 'integer',\n    filterTypes: [_filterTypes.nullFilter, _filterTypes.integerEq, _filterTypes.numberNotEq, _filterTypes.numberLt, _filterTypes.numberLte, _filterTypes.numberGt, _filterTypes.numberGte, _filterTypes.numberBetween, _filterTypes.numberStrictlyBetween, _filterTypes.emptyFilter],\n    searchFilterType: _filterTypes.integerEq,\n    compare: _comparisonFunctions.numberCompare\n  };\n  _exports.integerColumnType = integerColumnType;\n  const floatColumnType = {\n    id: 'float',\n    filterTypes: [_filterTypes.nullFilter, _filterTypes.numberEq, _filterTypes.numberNotEq, _filterTypes.numberLt, _filterTypes.numberLte, _filterTypes.numberGt, _filterTypes.numberGte, _filterTypes.numberBetween, _filterTypes.numberStrictlyBetween, _filterTypes.emptyFilter],\n    searchFilterType: _filterTypes.numberEq,\n    compare: _comparisonFunctions.numberCompare\n  };\n  _exports.floatColumnType = floatColumnType;\n  const dateColumnType = {\n    id: 'date',\n    filterTypes: [_filterTypes.nullFilter, _filterTypes.dateEq, _filterTypes.dateStrEq, _filterTypes.dateNe, _filterTypes.dateLt, _filterTypes.dateLte, _filterTypes.dateGt, _filterTypes.dateGte, _filterTypes.dateBetween, _filterTypes.dateStrictlyBetween, _filterTypes.emptyFilter],\n    searchFilterType: _filterTypes.dateStrEq,\n    compare: _comparisonFunctions.dateCompare\n  }; // alias for date\n\n  _exports.dateColumnType = dateColumnType;\n  const dateTimeColumnType = {\n    id: 'datetime',\n    filterTypes: dateColumnType.filterTypes,\n    searchFilterType: dateColumnType.searchFilterType,\n    compare: dateColumnType.compare\n  }; // alias for date\n\n  _exports.dateTimeColumnType = dateTimeColumnType;\n  const timeColumnType = {\n    id: 'time',\n    filterTypes: dateColumnType.filterTypes,\n    searchFilterType: dateColumnType.searchFilterType,\n    compare: dateColumnType.compare\n  };\n  _exports.timeColumnType = timeColumnType;\n  const enumColumnType = {\n    id: 'enum',\n    filterTypes: [_filterTypes.nullFilter, _filterTypes.stringEq, _filterTypes.stringNotEq, _filterTypes.emptyFilter],\n    searchFilterType: _filterTypes.dateEq,\n    compare: _comparisonFunctions.stringCompare\n  };\n  _exports.enumColumnType = enumColumnType;\n  const enumDateColumnType = {\n    id: 'enum-date',\n    filterTypes: [_filterTypes.nullFilter, _filterTypes.stringEq, _filterTypes.stringNotEq, _filterTypes.dateContains, _filterTypes.emptyFilter],\n    searchFilterType: _filterTypes.dateContains,\n    compare: _comparisonFunctions.stringCompare\n  };\n  _exports.enumDateColumnType = enumDateColumnType;\n  const enumAddressColumnType = {\n    id: 'enum-address',\n    filterTypes: [_filterTypes.nullFilter, _filterTypes.stringEq, _filterTypes.stringNotEq, _filterTypes.addressContains, _filterTypes.emptyFilter],\n    searchFilterType: _filterTypes.addressContains,\n    compare: _comparisonFunctions.stringCompare\n  };\n  _exports.enumAddressColumnType = enumAddressColumnType;\n  const columnTypes = [uuidColumnType, booleanColumnType, stringColumnType, textColumnType, phoneColumnType, numberColumnType, integerColumnType, floatColumnType, timeColumnType, dateColumnType, dateTimeColumnType, enumColumnType, enumDateColumnType, enumAddressColumnType];\n  _exports.columnTypes = columnTypes;\n  const columnTypesHash = columnTypes.reduce((obj, columnType) => {\n    obj[columnType.id] = columnType;\n    return obj;\n  }, {});\n  _exports.columnTypesHash = columnTypesHash;\n  var _default = columnTypes;\n  _exports.default = _default;\n});","define(\"adept-iq/config/comparison-functions\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.nullCompare = nullCompare;\n  _exports.stringCompare = stringCompare;\n  _exports.numberCompare = numberCompare;\n  _exports.booleanCompare = booleanCompare;\n  _exports.dateCompare = dateCompare;\n  _exports.default = void 0;\n\n  function nullCompare(a, b) {\n    return Ember.guidFor(a).localeCompare(Ember.guidFor(b));\n  }\n\n  function stringCompare(a, b) {\n    if (Ember.typeOf(a) !== 'string' && Ember.typeOf(b) !== 'string') return 0;\n    if (Ember.typeOf(a) !== 'string') return 1;\n    if (Ember.typeOf(b) !== 'string') return -1;\n    return a.localeCompare(b);\n  }\n\n  function numberCompare(a, b) {\n    const aIsNone = Ember.isNone(a);\n    const bIsNone = Ember.isNone(b); // can't compare two null things\n\n    if (aIsNone && bIsNone) return 0; // null things come after non-null\n\n    if (aIsNone) return 1;\n    if (bIsNone) return -1;\n    const x = parseFloat(a);\n    const y = parseFloat(b);\n    const xIsNaN = isNaN(x);\n    const yIsNaN = isNaN(y); // can't compare two non-numeric things\n\n    if (xIsNaN && yIsNaN) return 0; // non-numeric things come after numeric things\n\n    if (xIsNaN) return 1;\n    if (yIsNaN) return -1;\n    return x - y;\n  }\n\n  function booleanCompare(a, b) {\n    if (Ember.typeOf(a) !== 'boolean' && Ember.typeOf(b) !== 'boolean') return 0;\n    if (Ember.typeOf(a) !== 'boolean') return 1;\n    if (Ember.typeOf(b) !== 'boolean') return -1;\n    if (a && b || !a && !b) return 0;\n    if (a) return -1;\n    return 1;\n  }\n\n  function dateCompare(a, b) {\n    if (Ember.typeOf(a) !== 'date' && Ember.typeOf(b) !== 'date') return 0;\n    if (Ember.typeOf(a) !== 'date') return 1;\n    if (Ember.typeOf(b) !== 'date') return -1;\n    return a.getTime() - b.getTime();\n  }\n\n  var _default = [nullCompare, stringCompare, numberCompare, booleanCompare, dateCompare];\n  _exports.default = _default;\n});","define(\"adept-iq/config/filter-types\", [\"exports\", \"adept-iq/utils/encoding\", \"adept-iq/utils/rql-generators\", \"adept-iq/utils/filter-functions\"], function (_exports, _encoding, _rqlGenerators, _filterFunctions) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.filterTypesHash = _exports.filterTypes = _exports.dateStrictlyBetween = _exports.dateBetween = _exports.dateNe = _exports.dateStrEq = _exports.dateEq = _exports.dateGte = _exports.dateGt = _exports.dateLte = _exports.dateLt = _exports.integerEq = _exports.numberStrictlyBetween = _exports.numberBetween = _exports.numberGte = _exports.numberGt = _exports.numberLte = _exports.numberLt = _exports.numberNotEq = _exports.numberEq = _exports.booleanNe = _exports.booleanEq = _exports.addressContains = _exports.dateContains = _exports.stringContains = _exports.stringNotEq = _exports.stringEq = _exports.uuidIn = _exports.uuidEq = _exports.emptyFilter = _exports.nullFilter = void 0;\n  const nullFilter = {\n    id: 'null',\n    label: '&nbsp;',\n    arity: '*',\n    isValue: () => true,\n    parseValue: x => x,\n    fn: _filterFunctions.nullFn,\n    rql: _rqlGenerators.nullRQL\n  };\n  _exports.nullFilter = nullFilter;\n  const emptyFilter = {\n    id: 'empty',\n    label: 'Empty',\n    arity: 0,\n    isValue: () => true,\n    parseValue: x => x,\n    fn: _filterFunctions.emptyFn,\n    rql: _rqlGenerators.emptyRQL\n  };\n  _exports.emptyFilter = emptyFilter;\n  const uuidEq = {\n    id: 'uuidEq',\n    label: 'Equals',\n    arity: 1,\n    isValue: _encoding.isNonEmptyString,\n    parseValue: _encoding.parseString,\n    fn: _filterFunctions.eqFn,\n    rql: _rqlGenerators.eqRQL\n  };\n  _exports.uuidEq = uuidEq;\n  const uuidIn = {\n    id: 'uuidIn',\n    label: 'In',\n    arity: '+',\n    isValue: _encoding.isNonEmptyString,\n    parseValue: _encoding.parseString,\n    fn: _filterFunctions.includesFn,\n    rql: _rqlGenerators.inRQL\n  };\n  _exports.uuidIn = uuidIn;\n  const stringEq = {\n    id: 'stringEq',\n    label: '=',\n    arity: 1,\n    isValue: _encoding.isNonEmptyString,\n    parseValue: _encoding.parseString,\n    fn: _filterFunctions.stringEqIFn,\n    rql: _rqlGenerators.stringEqRQL\n  };\n  _exports.stringEq = stringEq;\n  const stringNotEq = {\n    id: 'stringNotEq',\n    label: '&ne;',\n    arity: 1,\n    isValue: _encoding.isNonEmptyString,\n    parseValue: _encoding.parseString,\n    fn: _filterFunctions.stringNeIFn,\n    rql: _rqlGenerators.stringNeRQL\n  };\n  _exports.stringNotEq = stringNotEq;\n  const stringContains = {\n    id: 'stringContains',\n    label: 'Contains',\n    arity: 1,\n    isValue: _encoding.isNonEmptyString,\n    parseValue: _encoding.parseString,\n    fn: _filterFunctions.stringIncludesIFn,\n    rql: _rqlGenerators.stringLikeRQL\n  };\n  _exports.stringContains = stringContains;\n  const dateContains = {\n    id: 'dateContains',\n    label: 'Contains',\n    airty: 1,\n    isValue: _encoding.isNonEmptyString,\n    parseValue: _encoding.parseString,\n    fn: _filterFunctions.dateIncludesIFn,\n    rql: _rqlGenerators.dateEqRQL\n  };\n  _exports.dateContains = dateContains;\n  const addressContains = {\n    id: 'addressContains',\n    label: 'Contains',\n    arity: 1,\n    isValue: _encoding.isNonEmptyString,\n    parseValue: _encoding.parseString,\n    fn: _filterFunctions.addressIncludesIFn,\n    rql: _rqlGenerators.stringLikeRQL\n  };\n  _exports.addressContains = addressContains;\n  const booleanEq = {\n    id: 'booleanEq',\n    label: 'Is',\n    arity: 1,\n    isValue: _encoding.isEncodedBoolean,\n    parseValue: _encoding.parseBoolean,\n    fn: _filterFunctions.eqFn,\n    rql: _rqlGenerators.eqRQL // TODO: double check\n\n  };\n  _exports.booleanEq = booleanEq;\n  const booleanNe = {\n    id: 'booleanNe',\n    label: 'Is not',\n    arity: 1,\n    isValue: _encoding.isEncodedBoolean,\n    parseValue: _encoding.parseBoolean,\n    fn: _filterFunctions.neFn,\n    rql: _rqlGenerators.neRQL // TODO: double check\n\n  };\n  _exports.booleanNe = booleanNe;\n  const numberEq = {\n    id: 'numberEq',\n    label: '=',\n    arity: 1,\n    isValue: _encoding.isEncodedNumber,\n    parseValue: _encoding.parseNumber,\n    fn: _filterFunctions.eqFn,\n    rql: _rqlGenerators.eqRQL\n  };\n  _exports.numberEq = numberEq;\n  const numberNotEq = {\n    id: 'numberNotEq',\n    label: '&ne;',\n    arity: 1,\n    isValue: _encoding.isEncodedNumber,\n    parseValue: _encoding.parseNumber,\n    fn: _filterFunctions.neFn,\n    rql: _rqlGenerators.neRQL\n  };\n  _exports.numberNotEq = numberNotEq;\n  const numberLt = {\n    id: 'numberLt',\n    label: '&lt;',\n    arity: 1,\n    isValue: _encoding.isEncodedNumber,\n    parseValue: _encoding.parseNumber,\n    fn: _filterFunctions.ltFn,\n    rql: _rqlGenerators.ltRQL\n  };\n  _exports.numberLt = numberLt;\n  const numberLte = {\n    id: 'numberLte',\n    label: '&le;',\n    arity: 1,\n    isValue: _encoding.isEncodedNumber,\n    parseValue: _encoding.parseNumber,\n    fn: _filterFunctions.lteFn,\n    rql: _rqlGenerators.lteRQL\n  };\n  _exports.numberLte = numberLte;\n  const numberGt = {\n    id: 'numberGt',\n    label: '&gt;',\n    arity: 1,\n    isValue: _encoding.isEncodedNumber,\n    parseValue: _encoding.parseNumber,\n    fn: _filterFunctions.gtFn,\n    rql: _rqlGenerators.gtRQL\n  };\n  _exports.numberGt = numberGt;\n  const numberGte = {\n    id: 'numberGte',\n    label: '&ge;',\n    arity: 1,\n    isValue: _encoding.isEncodedNumber,\n    parseValue: _encoding.parseNumber,\n    fn: _filterFunctions.gteFn,\n    rql: _rqlGenerators.gteRQL\n  };\n  _exports.numberGte = numberGte;\n  const numberBetween = {\n    id: 'numberBetween',\n    label: 'Between',\n    arity: 2,\n    isValue: _encoding.isEncodedNumber,\n    parseValue: _encoding.parseNumber,\n    fn: _filterFunctions.betweenFn,\n    rql: _rqlGenerators.betweenRQL\n  };\n  _exports.numberBetween = numberBetween;\n  const numberStrictlyBetween = {\n    id: 'numberStrictlyBetween',\n    label: 'Strictly Between',\n    arity: 2,\n    isValue: _encoding.isEncodedNumber,\n    parseValue: _encoding.parseNumber,\n    fn: _filterFunctions.strictlyBetweenFn,\n    rql: _rqlGenerators.strictlyBetweenRQL\n  };\n  _exports.numberStrictlyBetween = numberStrictlyBetween;\n  const integerEq = {\n    id: 'integerEq',\n    label: '=',\n    arity: 1,\n    isValue: _encoding.isEncodedNumber,\n    parseValue: _encoding.parseInteger,\n    fn: _filterFunctions.eqFn,\n    rql: _rqlGenerators.eqRQL\n  };\n  _exports.integerEq = integerEq;\n  const dateLt = {\n    id: 'dateLt',\n    label: 'Before',\n    arity: 1,\n    isValue: _encoding.isEncodedDate,\n    parseValue: _encoding.parseDate,\n    fn: _filterFunctions.dateLtFn,\n    rql: _rqlGenerators.dateLtRQL\n  };\n  _exports.dateLt = dateLt;\n  const dateLte = {\n    id: 'dateLte',\n    label: 'At or Before',\n    arity: 1,\n    isValue: _encoding.isEncodedDate,\n    parseValue: _encoding.parseDate,\n    fn: _filterFunctions.dateLteFn,\n    rql: _rqlGenerators.dateLteRQL\n  };\n  _exports.dateLte = dateLte;\n  const dateGt = {\n    id: 'dateGt',\n    label: 'After',\n    arity: 1,\n    isValue: _encoding.isEncodedDate,\n    parseValue: _encoding.parseDate,\n    fn: _filterFunctions.dateGtFn,\n    rql: _rqlGenerators.dateGtRQL\n  };\n  _exports.dateGt = dateGt;\n  const dateGte = {\n    id: 'dateGte',\n    label: 'At or After',\n    arity: 1,\n    isValue: _encoding.isEncodedDate,\n    parseValue: _encoding.parseDate,\n    fn: _filterFunctions.dateGteFn,\n    rql: _rqlGenerators.dateGteRQL\n  };\n  _exports.dateGte = dateGte;\n  const dateEq = {\n    id: 'dateEq',\n    label: '=',\n    arity: 1,\n    isValue: _encoding.isEncodedDate,\n    parseValue: _encoding.parseDate,\n    fn: _filterFunctions.dateEqFn,\n    rql: _rqlGenerators.dateEqRQL\n  };\n  _exports.dateEq = dateEq;\n  const dateStrEq = {\n    id: 'dateStrEq',\n    label: '=',\n    arity: 1,\n    isValue: _encoding.isEncodedDate,\n    parseValue: _encoding.parseDate,\n    fn: _filterFunctions.dateStrEqFn,\n    rql: _rqlGenerators.dateEqRQL\n  };\n  _exports.dateStrEq = dateStrEq;\n  const dateNe = {\n    id: 'dateNe',\n    label: '&ne;',\n    arity: 1,\n    isValue: _encoding.isEncodedDate,\n    parseValue: _encoding.parseDate,\n    fn: _filterFunctions.dateNeFn,\n    rql: _rqlGenerators.dateNeRQL\n  };\n  _exports.dateNe = dateNe;\n  const dateBetween = {\n    id: 'dateBetween',\n    label: 'Between',\n    arity: 2,\n    isValue: _encoding.isEncodedDate,\n    parseValue: _encoding.parseDate,\n    validateValues: ([t1, t2]) => t1.getTime() <= t2.getTime(),\n    fn: _filterFunctions.dateBetweenFn,\n    rql: _rqlGenerators.dateBetweenRQL\n  };\n  _exports.dateBetween = dateBetween;\n  const dateStrictlyBetween = {\n    id: 'dateStrictlyBetween',\n    label: 'Strictly Between',\n    arity: 2,\n    isValue: _encoding.isEncodedDate,\n    parseValue: _encoding.parseDate,\n    validateValues: ([t1, t2]) => t1.getTime() <= t2.getTime(),\n    fn: _filterFunctions.dateStrictlyBetweenFn,\n    rql: _rqlGenerators.dateStrictlyBetweenRQL\n  };\n  _exports.dateStrictlyBetween = dateStrictlyBetween;\n  const filterTypes = [nullFilter, emptyFilter, uuidEq, uuidIn, stringEq, stringNotEq, addressContains, dateContains, stringContains, booleanEq, booleanNe, numberEq, numberNotEq, numberLt, numberLte, numberGt, numberGte, numberBetween, integerEq, dateEq, dateStrEq, dateLt, dateLte, dateGt, dateGte, dateBetween, dateStrictlyBetween];\n  _exports.filterTypes = filterTypes;\n  const filterTypesHash = filterTypes.reduce((acc, filter) => {\n    acc[filter.id] = filter;\n    return acc;\n  }, {});\n  _exports.filterTypesHash = filterTypesHash;\n});","define(\"adept-iq/config/icon-paths\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    stops: {\n      future: '/stops-icons/stop_unfinished.png',\n      futureLate: '/stops-icons/stop_added_red.png',\n      futureInDanger: '/stops-icons/stop_added_orange.png',\n      next: '/stops-icons/stop_next.png',\n      nextLate: '/stops-icons/stop_next_red.png',\n      nextInDanger: '/stops-icons/stop_next_orange.png',\n      completed: '/stops-icons/stop_completed.png',\n      booked: '/stops-icons/stop_booked.png',\n      active: '/stops-icons/stop_active.png',\n      dispatch: '/stops-icons/stop_dispatch.png',\n      underdispatch: '/stops-icons/stop_dispatch.png',\n      arrive: '/stops-icons/stop_arrived.png',\n      accept: '/stops-icons/stop_accepted.png',\n      noshow: '/stops-icons/stop_noshow.png',\n      load: '/stops-icons/stop_load.png',\n      inservice: '/stops-icons/stop_load.png',\n      depart: '/stops-icons/stop_load.png',\n      work: '/stops-icons/stop_load.png',\n      offered: '/stops-icons/stop_offered.png',\n      break: '/stops-icons/break_next_fixed.png',\n      cancelled: '/stops-icons/stop_cancelled.png',\n      onhold: '/stops-icons/stop_onhold.png',\n      scrub: '/stops-icons/stop_scrub.png',\n      altered: '/stops-icons/stop_altered.png'\n    },\n    vehicles: {\n      vehicle: '/vehicles-icons/car_icon.png',\n      onbreak: '/vehicles-icons/vehicle-break.png',\n      atWork: '/vehicles-icons/vehicle-work.png',\n      accept: '/vehicles-icons/vehicle-accepted.png',\n      booked: '/vehicles-icons/vehicle-busy.png',\n      load: '/vehicles-icons/vehicle-busy.png',\n      occupied: '/vehicles-icons/vehicle-busy.png',\n      stc: '/vehicles-icons/vehicle-stc.png',\n      ud: '/vehicles-icons/vehicle-busy.png',\n      offered: '/vehicles-icons/vehicle-busy.png',\n      arrive: '/vehicles-icons/vehicle-arrive.png',\n      off: '/vehicles-icons/vehicle-off.png',\n      tempoff: '/vehicles-icons/vehicle-tempoff.png',\n      onhold: '/vehicles-icons/vehicle-onhold.png',\n      free: '/vehicles-icons/vehicle-free.png',\n      empty: '/vehicles-icons/vehicle-free.png',\n      checking: '/vehicles-icons/vehicle-checking.png',\n      unexplained: '/vehicles-icons/vehicle-unexplained.png',\n      unknown: '/vehicles-icons/vehicle-unknown.png',\n      emergency: '/vehicles-icons/vehicle-emergency.png'\n    },\n    zones: {\n      normal: '/zones-icons/zone-line-normal.png',\n      medium: '/zones-icons/zone-line-medium.png',\n      high: '/zones-icons/zone-line-high.png',\n      asap: '/zones-icons/people.png',\n      freeVehicles: '/zones-icons/vehicle.png'\n    },\n    tripArrow: {\n      ontime: '/arrows-icons/arrow.svg',\n      danger: '/arrows-icons/arrow-danger.svg',\n      late: '/arrows-icons/arrow-late.svg'\n    },\n    tripArrowOffset: {\n      ontime: '/arrows-icons/arrow_offset.svg',\n      danger: '/arrows-icons/arrow_offset-danger.svg',\n      late: '/arrows-icons/arrow_offset-late.svg'\n    },\n    routes: {\n      planned: '/lines-icons/line-planned.png',\n      plannedSlack: '/lines-icons/line-planned-slack.png',\n      performed: '/lines-icons/line-performed.png',\n      performedSlack: '/lines-icons/line-performed-slack.png'\n    },\n    trips: {\n      planned: '/lines-icons/line-planned.png',\n      performed: '/lines-icons/line-performed.png'\n    }\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/config/key-maps\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    Default: {\n      Save: {\n        action: \"onApplyClick\",\n        title: \"Save\",\n        accessKey: \"Ctrl+esc\",\n        global: true,\n        preventDefault: true\n      },\n      SaveClear: {\n        action: \"onApplyClearClick\",\n        title: \"Save and Clear\",\n        accessKey: \"esc\",\n        global: true,\n        preventDefault: true\n      },\n      Clear: {\n        action: \"onClearClick\",\n        title: \"Clear\",\n        accessKey: \"F7\",\n        global: true,\n        preventDefault: true\n      },\n      Copy: {\n        action: \"onCopyClick\",\n        title: \"Copy\",\n        accessKey: \"Ctrl+F12\",\n        global: true,\n        preventDefault: true\n      }\n    },\n    Trip: {\n      Save: {\n        action: \"onApplyClick\",\n        title: \"Book\",\n        accessKey: \"Shift+esc\",\n        icon: \"check\",\n        global: true,\n        isDisabledCondition: true,\n        preventDefault: true\n      },\n      SaveClear: {\n        action: \"onApplyClearClick\",\n        title: \"Book and Clear\",\n        accessKey: \"esc\",\n        icon: \"check-square-o\",\n        global: true,\n        isDisabledCondition: true,\n        preventDefault: true\n      },\n      Cancel: {\n        action: \"onCancelClick\",\n        title: \"Cancel Job\",\n        accessKey: \"Shift+-\",\n        icon: \"minus\",\n        global: true,\n        preventDefault: true\n      },\n      Clear: {\n        action: \"onClearClick\",\n        title: \"Clear Job\",\n        accessKey: \"Shift+!\",\n        icon: \"refresh\",\n        global: true,\n        preventDefault: true\n      },\n      Copy: {\n        action: \"onCopyClick\",\n        title: \"Copy Job\",\n        accessKey: \"Shift+@\",\n        icon: \"copy\",\n        global: true,\n        preventDefault: true\n      },\n      Search: {\n        action: \"onSearchClick\",\n        title: \"Search Job\",\n        accessKey: \"Shift+&\",\n        icon: \"search\",\n        global: true,\n        preventDefault: true\n      },\n      List: {\n        action: \"onActivitLogs\",\n        title: \"Activity Logs\",\n        accessKey: \"Shift+*\",\n        icon: \"list\",\n        global: true,\n        preventDefault: true\n      }\n    },\n    search: {\n      Clear: {\n        action: \"onClearClick\",\n        title: \"Clear Search\",\n        accessKey: \"Shift+!\",\n        icon: \"refresh\",\n        global: true,\n        preventDefault: true\n      },\n      NewTrip: {\n        action: \"onNewClick\",\n        title: \"Add Trip\",\n        accessKey: \"Shift++\",\n        icon: \"plus\",\n        global: true,\n        preventDefault: true\n      }\n    },\n    cancel: {\n      SaveClear: {\n        action: \"onApplyClearClick\",\n        title: \"Cancel\",\n        accessKey: \"esc\",\n        icon: \"check-square-o\",\n        global: true,\n        isDisabledCondition: true,\n        preventDefault: true\n      },\n      NewTrip: {\n        action: \"onNewClick\",\n        title: \"Add Trip\",\n        accessKey: \"Shift++\",\n        icon: \"plus\",\n        global: true,\n        preventDefault: true\n      }\n    }\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/config/map-layers\", [\"exports\", \"adept-iq/config/icon-paths\", \"adept-iq/pods/components/iq-widgets/stops-widget/config\", \"adept-iq/pods/components/iq-widgets/vehicles-widget/mapconfig\", \"adept-iq/pods/components/iq-widgets/zones-widget/config\", \"adept-iq/pods/components/iq-widgets/stands-widget/config\"], function (_exports, _iconPaths, _config, _mapconfig, _config2, _config3) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  // TODO: make this JSON-only\n  // TODO: it would be better to look up values from static config at time of use,\n  // but for now this handles the differences in config format\n  const extractLabelsFromWidgetConfig = widgetConfig => {\n    return widgetConfig.columns.map(columnConfig => {\n      const {\n        id,\n        index,\n        type,\n        label,\n        valuePath,\n        valuePreview,\n        imgPath,\n        parentLabel,\n        searchable,\n        isMapLabelVisible,\n        isMapMCGLabelVisible\n      } = columnConfig;\n      return {\n        id,\n        index,\n        type,\n        label,\n        valuePath,\n        valuePreview,\n        imgPath,\n        parentLabel,\n        isSearchable: searchable,\n        isVisible: isMapLabelVisible,\n        isMCGVisible: isMapMCGLabelVisible\n      };\n    });\n  };\n\n  const layers = [{\n    id: 'vehicles',\n    type: 'markers',\n    label: 'Vehicles',\n    modelName: 'vehicle',\n    isVisible: true,\n    isActive: true,\n    isTraversal: true,\n    isMCG: true,\n    opacity: 1,\n    types: [{\n      id: 'free',\n      label: 'Free',\n      valueKey: 'drivedStatus',\n      style: 'free',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.vehicles.free\n    }, {\n      id: 'freeonBreak',\n      label: 'On Break',\n      valueKey: 'drivedStatus',\n      style: 'onBreak',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.vehicles.onbreak\n    }, {\n      id: 'freetemOff',\n      label: 'Temp Off',\n      valueKey: 'drivedStatus',\n      style: 'tempOff',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.vehicles.onbreak\n    }, {\n      id: 'onHold',\n      label: 'On Hold',\n      valueKey: 'drivedStatus',\n      style: 'onhold',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.vehicles.onhold\n    }, {\n      id: 'off',\n      label: 'Off',\n      valueKey: 'drivedStatus',\n      style: 'off',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.vehicles.off\n    }, {\n      id: 'STC',\n      label: 'STC',\n      valueKey: 'drivedStatus',\n      style: 'STC',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.vehicles.stc\n    }, {\n      id: 'emergency',\n      label: 'Emergency',\n      valueKey: 'drivedStatus',\n      style: 'emergency',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.vehicles.emergency\n    }, {\n      id: 'occupied',\n      label: 'Occupied',\n      valueKey: 'drivedStatus',\n      style: 'occupied',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.vehicles.occupied\n    }, {\n      id: 'unexplained',\n      label: 'Unexplained',\n      valueKey: 'drivedStatus',\n      style: 'unexplained',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.vehicles.unexplained\n    }, {\n      id: 'unknown',\n      label: 'Unknown',\n      valueKey: 'drivedStatus',\n      style: 'unknown',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.vehicles.unknown\n    }],\n    labelDisplay: 'select',\n    labels: extractLabelsFromWidgetConfig(_mapconfig.default)\n  }, {\n    id: 'zones',\n    type: 'shapes',\n    label: 'Zones',\n    modelName: 'zone',\n    isVisible: true,\n    isActive: false,\n    // does not respond to active context\n    isTraversal: true,\n    opacity: 1,\n    types: [{\n      id: 'high',\n      label: 'High',\n      valueKey: 'status',\n      style: 'high',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.zones.high\n    }, {\n      id: 'medium',\n      label: 'Medium',\n      valueKey: 'status',\n      style: 'medium',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.zones.medium\n    }, {\n      id: 'normal',\n      label: 'Normal',\n      valueKey: 'status',\n      style: 'normal',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.zones.normal\n    }],\n    labelDisplay: 'select',\n    labels: extractLabelsFromWidgetConfig(_config2.default)\n  }, {\n    id: 'stands',\n    type: 'shapes',\n    label: 'Stands',\n    modelName: 'stand',\n    isVisible: true,\n    isActive: false,\n    // does not respond to active context\n    isTraversal: true,\n    opacity: 1,\n    types: [{\n      id: 'high',\n      label: 'High',\n      valueKey: 'status',\n      style: 'high',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.zones.high\n    }, {\n      id: 'medium',\n      label: 'Medium',\n      valueKey: 'status',\n      style: 'medium',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.zones.medium\n    }, {\n      id: 'normal',\n      label: 'Normal',\n      valueKey: 'status',\n      style: 'normal',\n      isVisible: true,\n      display: true,\n      canFilter: true,\n      iconPath: _iconPaths.default.zones.normal\n    }],\n    labelDisplay: 'select',\n    labels: extractLabelsFromWidgetConfig(_config3.default)\n  }];\n  var _default = layers;\n  _exports.default = _default;\n});","define(\"adept-iq/config/otp-criteria\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.OTP_DANGER = _exports.OTP_LATE = void 0;\n  const OTP_LATE = 1;\n  _exports.OTP_LATE = OTP_LATE;\n  const OTP_DANGER = 0.8;\n  _exports.OTP_DANGER = OTP_DANGER;\n});","define(\"adept-iq/config/server-relationships\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.serverRelationships = void 0;\n  // this is deprecated; used for generating RQL for active context queries\n  const serverRelationships = {\n    route: [{\n      type: 'hasMany',\n      modelName: 'trip',\n      path: 'clusters.trips'\n    }, {\n      type: 'hasMany',\n      modelName: 'stop',\n      path: 'clusters.trips.stops'\n    }],\n    trip: [{\n      type: 'belongsTo',\n      modelName: 'route',\n      path: 'cluster.route'\n    }, {\n      type: 'hasMany',\n      modelName: 'stop',\n      path: 'stops'\n    }],\n    stop: [{\n      type: 'belongsTo',\n      modelName: 'route',\n      path: 'trip.cluster.route'\n    }, {\n      type: 'belongsTo',\n      modelName: 'trip',\n      path: 'trip'\n    }],\n    schedule: [],\n    'rms-rider': [],\n    'ss-driver': [],\n    'ss-schedule': [],\n    'ss-vehicle': [],\n    'leg': [],\n    'sso-user': [],\n    'subscription': [],\n    'account': [],\n    'zone': []\n  };\n  _exports.serverRelationships = serverRelationships;\n});","define(\"adept-iq/config/tomtom\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.tomtom = void 0;\n  const tomtom = {\n    search: {\n      searchKey: 'llnKTAlKB9cZgDidfx4XfQiMTFGp6WS1',\n      routingKey: 'llnKTAlKB9cZgDidfx4XfQiMTFGp6WS1',\n      countrySet: 'CA',\n      center: {\n        lat: 49.224734,\n        lon: -122.881157\n      },\n      radius: 20000\n    },\n    key: 'llnKTAlKB9cZgDidfx4XfQiMTFGp6WS1',\n    basePath: '/assets/tomtom',\n    // basePath not used on styleUrlMapping values\n    styleUrlMapping: {\n      main: {\n        basic: '/assets/tomtom-dds/styles/baasic_main.json',\n        hybrid: '/assets/tomtom/styles/hybrid_main.json',\n        labels: '/assets/tomtom/styles/labels_main.json'\n      },\n      night: {\n        basic: '/assets/tomtom/styles/basic_night.json',\n        hybrid: '/assets/tomtom/styles/hybrid_night.json',\n        labels: '/assets/tomtom/styles/labels_night.json'\n      }\n    },\n    source: 'vector',\n    traffic: {\n      style: 's3',\n      refresh: 5000,\n      key: 'llnKTAlKB9cZgDidfx4XfQiMTFGp6WS1',\n      diff: true\n    },\n    trafficFlow: {\n      key: 'llnKTAlKB9cZgDidfx4XfQiMTFGp6WS1',\n      refresh: 180000\n    }\n  };\n  _exports.tomtom = tomtom;\n});","define(\"adept-iq/config/widget-groups\", [\"exports\", \"adept-iq/config/widget-types\"], function (_exports, _widgetTypes) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = [{\n    id: 'widgets-1',\n    title: 'Resources',\n    widgetTypes: [_widgetTypes.passengersWidgetType, _widgetTypes.driversWidgetType, _widgetTypes.vehiclesWidgetType, _widgetTypes.accountsWidgetType, _widgetTypes.tripWidgetType]\n  }, {\n    id: 'widgets-2',\n    title: 'Work',\n    widgetTypes: [_widgetTypes.mapWidgetType, //messagesWidgetType,\n    //alertsWidgetType,\n    _widgetTypes.tripsWidgetType, _widgetTypes.stopsWidgetType, _widgetTypes.cliWidgetType, _widgetTypes.zoneWidgetType, _widgetTypes.standWidgetType //subscriptionsWidgetType\n    ]\n  }, {\n    id: 'metrics',\n    title: 'Metrics & Graphics',\n    widgetTypes: [_widgetTypes.metricsWidgetType, _widgetTypes.gaugeWidgetType, _widgetTypes.boxWidgetType, _widgetTypes.donutChartWidgetType, _widgetTypes.barChartWidgetType]\n  }\n  /*,\n  {\n  id: 'config',\n  title: 'Configuration',\n  widgetTypes: [\n    settingsWidgetType,\n    usersWidgetType\n  ]\n  },\n  {\n  id: 'reports',\n  title: 'Reports',\n  widgetTypes: [\n    reportWidgetType,\n    reportWidgetType1,\n    reportWidgetType2,\n    reportWidgetType3,\n    reportWidgetType4\n  ]\n  }*/\n  ];\n  _exports.default = _default;\n});","define(\"adept-iq/config/widget-types\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _exports.widgetTypesHash = _exports.reportWidgetType4 = _exports.reportWidgetType3 = _exports.reportWidgetType2 = _exports.reportWidgetType1 = _exports.reportWidgetType = _exports.favoritePickupsWidgetType = _exports.riderProfileWidgetType = _exports.poiAddressSearchWidgeType = _exports.fixedPriceTripsWidgetType = _exports.cliWidgetType = _exports.usersWidgetType = _exports.alertsWidgetType = _exports.box4WidgetType = _exports.box3WidgetType = _exports.box2WidgetType = _exports.box1WidgetType = _exports.gaugeWidgetType = _exports.barChartWidgetType = _exports.donutChartWidgetType = _exports.metricsWidgetType = _exports.boxWidgetType = _exports.vehiclesWidgetType = _exports.driversWidgetType = _exports.tripWidgetType = _exports.standWidgetType = _exports.zoneWidgetType = _exports.accountsWidgetType = _exports.passengersWidgetType = _exports.subscriptionsWidgetType = _exports.mapWidgetType = _exports.tripsWidgetType = _exports.stopsWidgetType = _exports.routesWidgetType = _exports.settingsWidgetType = _exports.messagesWidgetType = void 0;\n  // this file is for \"public\" widget config required for listing available\n  // widget types and computing widget placements; most other config should be\n  // placed in the `config.js` adjacent to the specific widgets' components\n  // `name` reflects how the widget appears in a list (e.g. add-widget sidebar).\n  // For widget title bar, set `title` in widget's `config.js`.\n  // this would be a good place to specify icons for add-widget sidebar\n  const messagesWidgetType = {\n    id: 'messages',\n    name: 'Messages',\n    componentName: 'iq-widgets/message-widget',\n    defaultWidth: 8,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.messagesWidgetType = messagesWidgetType;\n  const settingsWidgetType = {\n    id: 'settings',\n    name: 'System',\n    componentName: 'iq-widgets/edit-settings-widget',\n    defaultWidth: 8,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.settingsWidgetType = settingsWidgetType;\n  const routesWidgetType = {\n    id: 'routes',\n    name: 'Routes',\n    componentName: 'iq-widgets/routes-widget',\n    defaultWidth: 8,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.routesWidgetType = routesWidgetType;\n  const stopsWidgetType = {\n    id: 'stops',\n    name: 'Stops',\n    componentName: 'iq-widgets/stops-widget',\n    defaultWidth: 8,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.stopsWidgetType = stopsWidgetType;\n  const tripsWidgetType = {\n    id: 'trips',\n    name: 'Trips',\n    componentName: 'iq-widgets/trips-widget',\n    defaultWidth: 8,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.tripsWidgetType = tripsWidgetType;\n  const mapWidgetType = {\n    id: 'map',\n    name: 'Map',\n    componentName: 'iq-widgets/map-widget',\n    defaultWidth: 3,\n    defaultHeight: 3,\n    minWidth: 2,\n    minHeight: 2\n  };\n  _exports.mapWidgetType = mapWidgetType;\n  const subscriptionsWidgetType = {\n    id: 'subscriptions',\n    name: 'Subscriptions',\n    componentName: 'iq-widgets/subscriptions-widget',\n    defaultWidth: 4,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.subscriptionsWidgetType = subscriptionsWidgetType;\n  const passengersWidgetType = {\n    id: 'passengers',\n    name: 'Passengers',\n    componentName: 'iq-widgets/passengers-widget',\n    defaultWidth: 8,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.passengersWidgetType = passengersWidgetType;\n  const accountsWidgetType = {\n    id: 'accounts',\n    name: 'Accounts',\n    componentName: 'iq-widgets/accounts-widget',\n    defaultWidth: 8,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.accountsWidgetType = accountsWidgetType;\n  const zoneWidgetType = {\n    id: 'zone',\n    name: 'Zones',\n    componentName: 'iq-widgets/zones-widget',\n    defaultWidth: 8,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.zoneWidgetType = zoneWidgetType;\n  const standWidgetType = {\n    id: 'stand',\n    name: 'Stands',\n    componentName: 'iq-widgets/stands-widget',\n    defaultWidth: 8,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.standWidgetType = standWidgetType;\n  const tripWidgetType = {\n    id: 'trip',\n    name: 'Trip',\n    componentName: 'iq-widgets/new-trip-fixform-widget',\n    defaultWidth: 2,\n    defaultHeight: 8,\n    minWidth: 2,\n    minHeight: 8\n  };\n  _exports.tripWidgetType = tripWidgetType;\n  const driversWidgetType = {\n    id: 'drivers',\n    name: 'Drivers',\n    componentName: 'iq-widgets/drivers-widget',\n    defaultWidth: 8,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.driversWidgetType = driversWidgetType;\n  const vehiclesWidgetType = {\n    id: 'vehicles',\n    name: 'Vehicles',\n    componentName: 'iq-widgets/vehicles-widget',\n    defaultWidth: 8,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.vehiclesWidgetType = vehiclesWidgetType;\n  const boxWidgetType = {\n    id: 'box',\n    name: 'Box',\n    componentName: 'iq-widgets/box-widget',\n    defaultWidth: 1,\n    defaultHeight: 2,\n    minWidth: 1,\n    minHeight: 1\n  };\n  _exports.boxWidgetType = boxWidgetType;\n  const metricsWidgetType = {\n    id: 'metrics',\n    name: 'Metrics',\n    componentName: 'iq-widgets/metrics-column-widget',\n    defaultWidth: 8,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 2\n  };\n  _exports.metricsWidgetType = metricsWidgetType;\n  const donutChartWidgetType = {\n    id: 'donut-chart',\n    name: 'Donut Chart',\n    componentName: 'iq-widgets/donut-chart-widget',\n    defaultWidth: 3,\n    defaultHeight: 2,\n    minWidth: 3,\n    minHeight: 3\n  };\n  _exports.donutChartWidgetType = donutChartWidgetType;\n  const barChartWidgetType = {\n    id: 'bar-chart',\n    name: 'Bar Chart',\n    componentName: 'iq-widgets/bar-chart-widget',\n    defaultWidth: 4,\n    defaultHeight: 2,\n    minWidth: 4,\n    minHeight: 3\n  };\n  _exports.barChartWidgetType = barChartWidgetType;\n  const gaugeWidgetType = {\n    id: 'gauge',\n    name: 'Gauge',\n    componentName: 'iq-widgets/gauge-widget',\n    defaultWidth: 3,\n    defaultHeight: 2,\n    minWidth: 3,\n    minHeight: 2\n  };\n  _exports.gaugeWidgetType = gaugeWidgetType;\n  const box1WidgetType = {\n    id: 'box-1',\n    name: 'Box 1',\n    componentName: 'iq-widgets/box-widget',\n    defaultWidth: 1,\n    defaultHeight: 2,\n    minWidth: 1,\n    minHeight: 1\n  };\n  _exports.box1WidgetType = box1WidgetType;\n  const box2WidgetType = {\n    id: 'box-2',\n    name: 'Box 2',\n    componentName: 'iq-widgets/box-widget',\n    defaultWidth: 1,\n    defaultHeight: 2,\n    minWidth: 1,\n    minHeight: 1\n  };\n  _exports.box2WidgetType = box2WidgetType;\n  const box3WidgetType = {\n    id: 'box-3',\n    name: 'Box 3',\n    componentName: 'iq-widgets/box-widget',\n    defaultWidth: 1,\n    defaultHeight: 2,\n    minWidth: 1,\n    minHeight: 1\n  };\n  _exports.box3WidgetType = box3WidgetType;\n  const box4WidgetType = {\n    id: 'box-4',\n    name: 'Box 4',\n    componentName: 'iq-widgets/box-widget',\n    defaultWidth: 1,\n    defaultHeight: 2,\n    minWidth: 1,\n    minHeight: 1\n  };\n  _exports.box4WidgetType = box4WidgetType;\n  const alertsWidgetType = {\n    id: 'alerts',\n    name: 'Alerts',\n    componentName: 'iq-widgets/alert-widget',\n    defaultWidth: 1,\n    defaultHeight: 2,\n    minWidth: 1,\n    minHeight: 1\n  };\n  _exports.alertsWidgetType = alertsWidgetType;\n  const usersWidgetType = {\n    id: 'users',\n    name: 'Users',\n    componentName: 'iq-widgets/users-widget',\n    defaultWidth: 1,\n    defaultHeight: 2,\n    minWidth: 1,\n    minHeight: 1\n  };\n  _exports.usersWidgetType = usersWidgetType;\n  const cliWidgetType = {\n    id: 'cli',\n    name: 'CLI',\n    componentName: 'iq-widgets/cli-widget',\n    defaultWidth: 3,\n    defaultHeight: 6,\n    minWidth: 3,\n    minHeight: 6\n  };\n  _exports.cliWidgetType = cliWidgetType;\n  const fixedPriceTripsWidgetType = {\n    id: 'fixedPrice',\n    name: 'fixedPrice',\n    componentName: 'iq-widgets/fixed-price-trip-widget',\n    defaultWidth: 4,\n    defaultHeight: 6,\n    minWidth: 4,\n    minHeight: 6\n  };\n  _exports.fixedPriceTripsWidgetType = fixedPriceTripsWidgetType;\n  const poiAddressSearchWidgeType = {\n    id: 'poiAddressSearch',\n    name: 'poiAddressSearch',\n    componentName: 'iq-widgets/address-lookup',\n    defaultWidth: 4,\n    defaultHeight: 6,\n    minWidth: 4,\n    minHeight: 6\n  };\n  _exports.poiAddressSearchWidgeType = poiAddressSearchWidgeType;\n  const riderProfileWidgetType = {\n    id: 'riderProfile',\n    name: 'riderProfile',\n    componentName: 'iq-widgets/rider-profile-widget',\n    defaultWidth: 4,\n    defaultHeight: 6,\n    minWidth: 4,\n    minHeight: 6\n  };\n  _exports.riderProfileWidgetType = riderProfileWidgetType;\n  const favoritePickupsWidgetType = {\n    id: 'favoritePickup',\n    name: 'favoritePickup',\n    componentName: 'iq-widgets/favorite-pickup-widget',\n    defaultWidth: 4,\n    defaultHeight: 6,\n    minWidth: 4,\n    minHeight: 6\n  };\n  _exports.favoritePickupsWidgetType = favoritePickupsWidgetType;\n  const reportWidgetType = {\n    id: 'report',\n    name: 'report',\n    componentName: 'iq-widgets/report-widget',\n    defaultWidth: 4,\n    defaultHeight: 4,\n    minWidth: 4,\n    minHeight: 4\n  };\n  _exports.reportWidgetType = reportWidgetType;\n  const reportWidgetType1 = {\n    id: 'report1',\n    name: 'report1',\n    componentName: 'iq-widgets/report-widget1',\n    defaultWidth: 4,\n    defaultHeight: 4,\n    minWidth: 4,\n    minHeight: 4\n  };\n  _exports.reportWidgetType1 = reportWidgetType1;\n  const reportWidgetType2 = {\n    id: 'report2',\n    name: 'report2',\n    componentName: 'iq-widgets/report-widget2',\n    defaultWidth: 4,\n    defaultHeight: 4,\n    minWidth: 4,\n    minHeight: 4\n  };\n  _exports.reportWidgetType2 = reportWidgetType2;\n  const reportWidgetType3 = {\n    id: 'report3',\n    name: 'report3',\n    componentName: 'iq-widgets/report-widget3',\n    defaultWidth: 4,\n    defaultHeight: 4,\n    minWidth: 4,\n    minHeight: 4\n  };\n  _exports.reportWidgetType3 = reportWidgetType3;\n  const reportWidgetType4 = {\n    id: 'report4',\n    name: 'report4',\n    componentName: 'iq-widgets/report-widget4',\n    defaultWidth: 8,\n    defaultHeight: 8,\n    minWidth: 6,\n    minHeight: 6\n  };\n  _exports.reportWidgetType4 = reportWidgetType4;\n  const widgetTypes = [cliWidgetType, settingsWidgetType, routesWidgetType, stopsWidgetType, tripsWidgetType, mapWidgetType, passengersWidgetType, driversWidgetType, vehiclesWidgetType, tripWidgetType, boxWidgetType, metricsWidgetType, donutChartWidgetType, barChartWidgetType, gaugeWidgetType, box1WidgetType, box2WidgetType, box3WidgetType, box4WidgetType, alertsWidgetType, usersWidgetType, subscriptionsWidgetType, fixedPriceTripsWidgetType, favoritePickupsWidgetType, poiAddressSearchWidgeType, accountsWidgetType, zoneWidgetType, standWidgetType, messagesWidgetType, reportWidgetType, reportWidgetType1, reportWidgetType2, reportWidgetType3, reportWidgetType4];\n  const widgetTypesHash = widgetTypes.reduce((obj, widgetType) => {\n    obj[widgetType.id] = widgetType;\n    return obj;\n  }, {});\n  _exports.widgetTypesHash = widgetTypesHash;\n  var _default = widgetTypes;\n  _exports.default = _default;\n});","define(\"adept-iq/config/zone-polygon\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _exports.zone_polygon = void 0;\n  // holds the zone polygon for walla walla\n  // used by zone-validation.js\n  const zone_polygon = [[49.279015, -123.247252], [49.303846, -122.833503], [49.182406, -121.931221], [49.087698, -121.913986], [48.935364, -122.290462], [48.782800, -122.431157], [48.982679, -123.049720], [49.125910, -123.244351]];\n  _exports.zone_polygon = zone_polygon;\n  var _default = zone_polygon;\n  _exports.default = _default;\n});","define(\"adept-iq/flash/object\", [\"exports\", \"ember-cli-flash/flash/object\"], function (_exports, _object) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _object.default;\n    }\n  });\n});","define(\"adept-iq/helpers/-element\", [\"exports\", \"ember-element-helper/helpers/-element\"], function (_exports, _element) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _element.default;\n    }\n  });\n});","define(\"adept-iq/helpers/abs\", [\"exports\", \"ember-math-helpers/helpers/abs\"], function (_exports, _abs) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _abs.default;\n    }\n  });\n  Object.defineProperty(_exports, \"abs\", {\n    enumerable: true,\n    get: function () {\n      return _abs.abs;\n    }\n  });\n});","define(\"adept-iq/helpers/acos\", [\"exports\", \"ember-math-helpers/helpers/acos\"], function (_exports, _acos) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _acos.default;\n    }\n  });\n  Object.defineProperty(_exports, \"acos\", {\n    enumerable: true,\n    get: function () {\n      return _acos.acos;\n    }\n  });\n});","define(\"adept-iq/helpers/acosh\", [\"exports\", \"ember-math-helpers/helpers/acosh\"], function (_exports, _acosh) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _acosh.default;\n    }\n  });\n  Object.defineProperty(_exports, \"acosh\", {\n    enumerable: true,\n    get: function () {\n      return _acosh.acosh;\n    }\n  });\n});","define(\"adept-iq/helpers/add\", [\"exports\", \"ember-math-helpers/helpers/add\"], function (_exports, _add) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _add.default;\n    }\n  });\n  Object.defineProperty(_exports, \"add\", {\n    enumerable: true,\n    get: function () {\n      return _add.add;\n    }\n  });\n});","define(\"adept-iq/helpers/and\", [\"exports\", \"ember-truth-helpers/helpers/and\"], function (_exports, _and) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _and.default;\n    }\n  });\n  Object.defineProperty(_exports, \"and\", {\n    enumerable: true,\n    get: function () {\n      return _and.and;\n    }\n  });\n});","define(\"adept-iq/helpers/app-version\", [\"exports\", \"adept-iq/config/environment\", \"ember-cli-app-version/utils/regexp\"], function (_exports, _environment, _regexp) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.appVersion = appVersion;\n  _exports.default = void 0;\n\n  function appVersion(_, hash = {}) {\n    const version = _environment.default.APP.version; // e.g. 1.0.0-alpha.1+4jds75hf\n    // Allow use of 'hideSha' and 'hideVersion' For backwards compatibility\n\n    let versionOnly = hash.versionOnly || hash.hideSha;\n    let shaOnly = hash.shaOnly || hash.hideVersion;\n    let match = null;\n\n    if (versionOnly) {\n      if (hash.showExtended) {\n        match = version.match(_regexp.versionExtendedRegExp); // 1.0.0-alpha.1\n      } // Fallback to just version\n\n\n      if (!match) {\n        match = version.match(_regexp.versionRegExp); // 1.0.0\n      }\n    }\n\n    if (shaOnly) {\n      match = version.match(_regexp.shaRegExp); // 4jds75hf\n    }\n\n    return match ? match[0] : version;\n  }\n\n  var _default = Ember.Helper.helper(appVersion);\n\n  _exports.default = _default;\n});","define(\"adept-iq/helpers/append\", [\"exports\", \"ember-composable-helpers/helpers/append\"], function (_exports, _append) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _append.default;\n    }\n  });\n  Object.defineProperty(_exports, \"append\", {\n    enumerable: true,\n    get: function () {\n      return _append.append;\n    }\n  });\n});","define(\"adept-iq/helpers/array\", [\"exports\", \"ember-composable-helpers/helpers/array\"], function (_exports, _array) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _array.default;\n    }\n  });\n  Object.defineProperty(_exports, \"array\", {\n    enumerable: true,\n    get: function () {\n      return _array.array;\n    }\n  });\n});","define(\"adept-iq/helpers/asin\", [\"exports\", \"ember-math-helpers/helpers/asin\"], function (_exports, _asin) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _asin.default;\n    }\n  });\n  Object.defineProperty(_exports, \"asin\", {\n    enumerable: true,\n    get: function () {\n      return _asin.asin;\n    }\n  });\n});","define(\"adept-iq/helpers/asinh\", [\"exports\", \"ember-math-helpers/helpers/asinh\"], function (_exports, _asinh) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _asinh.default;\n    }\n  });\n  Object.defineProperty(_exports, \"asinh\", {\n    enumerable: true,\n    get: function () {\n      return _asinh.asinh;\n    }\n  });\n});","define(\"adept-iq/helpers/assign\", [\"exports\", \"ember-assign-helper/helpers/assign\"], function (_exports, _assign) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _assign.default;\n    }\n  });\n  Object.defineProperty(_exports, \"assign\", {\n    enumerable: true,\n    get: function () {\n      return _assign.assign;\n    }\n  });\n});","define(\"adept-iq/helpers/atan\", [\"exports\", \"ember-math-helpers/helpers/atan\"], function (_exports, _atan) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _atan.default;\n    }\n  });\n  Object.defineProperty(_exports, \"atan\", {\n    enumerable: true,\n    get: function () {\n      return _atan.atan;\n    }\n  });\n});","define(\"adept-iq/helpers/atan2\", [\"exports\", \"ember-math-helpers/helpers/atan2\"], function (_exports, _atan) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _atan.default;\n    }\n  });\n  Object.defineProperty(_exports, \"atan2\", {\n    enumerable: true,\n    get: function () {\n      return _atan.atan2;\n    }\n  });\n});","define(\"adept-iq/helpers/atanh\", [\"exports\", \"ember-math-helpers/helpers/atanh\"], function (_exports, _atanh) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _atanh.default;\n    }\n  });\n  Object.defineProperty(_exports, \"atanh\", {\n    enumerable: true,\n    get: function () {\n      return _atanh.atanh;\n    }\n  });\n});","define(\"adept-iq/helpers/bs-contains\", [\"exports\", \"ember-bootstrap/helpers/bs-contains\"], function (_exports, _bsContains) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsContains.default;\n    }\n  });\n  Object.defineProperty(_exports, \"bsContains\", {\n    enumerable: true,\n    get: function () {\n      return _bsContains.bsContains;\n    }\n  });\n});","define(\"adept-iq/helpers/bs-eq\", [\"exports\", \"ember-bootstrap/helpers/bs-eq\"], function (_exports, _bsEq) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsEq.default;\n    }\n  });\n  Object.defineProperty(_exports, \"eq\", {\n    enumerable: true,\n    get: function () {\n      return _bsEq.eq;\n    }\n  });\n});","define(\"adept-iq/helpers/camelize\", [\"exports\", \"ember-cli-string-helpers/helpers/camelize\"], function (_exports, _camelize) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _camelize.default;\n    }\n  });\n  Object.defineProperty(_exports, \"camelize\", {\n    enumerable: true,\n    get: function () {\n      return _camelize.camelize;\n    }\n  });\n});","define(\"adept-iq/helpers/cancel-all\", [\"exports\", \"ember-concurrency/helpers/cancel-all\"], function (_exports, _cancelAll) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _cancelAll.default;\n    }\n  });\n});","define(\"adept-iq/helpers/capitalize\", [\"exports\", \"ember-cli-string-helpers/helpers/capitalize\"], function (_exports, _capitalize) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _capitalize.default;\n    }\n  });\n  Object.defineProperty(_exports, \"capitalize\", {\n    enumerable: true,\n    get: function () {\n      return _capitalize.capitalize;\n    }\n  });\n});","define(\"adept-iq/helpers/cbrt\", [\"exports\", \"ember-math-helpers/helpers/cbrt\"], function (_exports, _cbrt) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _cbrt.default;\n    }\n  });\n  Object.defineProperty(_exports, \"cbrt\", {\n    enumerable: true,\n    get: function () {\n      return _cbrt.cbrt;\n    }\n  });\n});","define(\"adept-iq/helpers/ceil\", [\"exports\", \"ember-math-helpers/helpers/ceil\"], function (_exports, _ceil) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ceil.default;\n    }\n  });\n  Object.defineProperty(_exports, \"ceil\", {\n    enumerable: true,\n    get: function () {\n      return _ceil.ceil;\n    }\n  });\n});","define(\"adept-iq/helpers/chunk\", [\"exports\", \"ember-composable-helpers/helpers/chunk\"], function (_exports, _chunk) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _chunk.default;\n    }\n  });\n  Object.defineProperty(_exports, \"chunk\", {\n    enumerable: true,\n    get: function () {\n      return _chunk.chunk;\n    }\n  });\n});","define(\"adept-iq/helpers/classify\", [\"exports\", \"ember-cli-string-helpers/helpers/classify\"], function (_exports, _classify) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _classify.default;\n    }\n  });\n  Object.defineProperty(_exports, \"classify\", {\n    enumerable: true,\n    get: function () {\n      return _classify.classify;\n    }\n  });\n});","define(\"adept-iq/helpers/clz32\", [\"exports\", \"ember-math-helpers/helpers/clz32\"], function (_exports, _clz) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _clz.default;\n    }\n  });\n  Object.defineProperty(_exports, \"clz32\", {\n    enumerable: true,\n    get: function () {\n      return _clz.clz32;\n    }\n  });\n});","define(\"adept-iq/helpers/compact\", [\"exports\", \"ember-composable-helpers/helpers/compact\"], function (_exports, _compact) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _compact.default;\n    }\n  });\n});","define(\"adept-iq/helpers/compute\", [\"exports\", \"ember-composable-helpers/helpers/compute\"], function (_exports, _compute) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _compute.default;\n    }\n  });\n  Object.defineProperty(_exports, \"compute\", {\n    enumerable: true,\n    get: function () {\n      return _compute.compute;\n    }\n  });\n});","define(\"adept-iq/helpers/contains\", [\"exports\", \"ember-composable-helpers/helpers/contains\"], function (_exports, _contains) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _contains.default;\n    }\n  });\n  Object.defineProperty(_exports, \"contains\", {\n    enumerable: true,\n    get: function () {\n      return _contains.contains;\n    }\n  });\n});","define(\"adept-iq/helpers/cos\", [\"exports\", \"ember-math-helpers/helpers/cos\"], function (_exports, _cos) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _cos.default;\n    }\n  });\n  Object.defineProperty(_exports, \"cos\", {\n    enumerable: true,\n    get: function () {\n      return _cos.cos;\n    }\n  });\n});","define(\"adept-iq/helpers/cosh\", [\"exports\", \"ember-math-helpers/helpers/cosh\"], function (_exports, _cosh) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _cosh.default;\n    }\n  });\n  Object.defineProperty(_exports, \"cosh\", {\n    enumerable: true,\n    get: function () {\n      return _cosh.cosh;\n    }\n  });\n});","define(\"adept-iq/helpers/dasherize\", [\"exports\", \"ember-cli-string-helpers/helpers/dasherize\"], function (_exports, _dasherize) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _dasherize.default;\n    }\n  });\n  Object.defineProperty(_exports, \"dasherize\", {\n    enumerable: true,\n    get: function () {\n      return _dasherize.dasherize;\n    }\n  });\n});","define(\"adept-iq/helpers/dec\", [\"exports\", \"ember-composable-helpers/helpers/dec\"], function (_exports, _dec) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _dec.default;\n    }\n  });\n  Object.defineProperty(_exports, \"dec\", {\n    enumerable: true,\n    get: function () {\n      return _dec.dec;\n    }\n  });\n});","define(\"adept-iq/helpers/div\", [\"exports\", \"ember-math-helpers/helpers/div\"], function (_exports, _div) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _div.default;\n    }\n  });\n  Object.defineProperty(_exports, \"div\", {\n    enumerable: true,\n    get: function () {\n      return _div.div;\n    }\n  });\n});","define(\"adept-iq/helpers/drop\", [\"exports\", \"ember-composable-helpers/helpers/drop\"], function (_exports, _drop) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _drop.default;\n    }\n  });\n});","define(\"adept-iq/helpers/ember-power-select-is-group\", [\"exports\", \"ember-power-select/helpers/ember-power-select-is-group\"], function (_exports, _emberPowerSelectIsGroup) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberPowerSelectIsGroup.default;\n    }\n  });\n  Object.defineProperty(_exports, \"emberPowerSelectIsGroup\", {\n    enumerable: true,\n    get: function () {\n      return _emberPowerSelectIsGroup.emberPowerSelectIsGroup;\n    }\n  });\n});","define(\"adept-iq/helpers/ember-power-select-is-selected\", [\"exports\", \"ember-power-select/helpers/ember-power-select-is-selected\"], function (_exports, _emberPowerSelectIsSelected) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberPowerSelectIsSelected.default;\n    }\n  });\n  Object.defineProperty(_exports, \"emberPowerSelectIsSelected\", {\n    enumerable: true,\n    get: function () {\n      return _emberPowerSelectIsSelected.emberPowerSelectIsSelected;\n    }\n  });\n});","define(\"adept-iq/helpers/ember-power-select-true-string-if-present\", [\"exports\", \"ember-power-select/helpers/ember-power-select-true-string-if-present\"], function (_exports, _emberPowerSelectTrueStringIfPresent) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberPowerSelectTrueStringIfPresent.default;\n    }\n  });\n  Object.defineProperty(_exports, \"emberPowerSelectTrueStringIfPresent\", {\n    enumerable: true,\n    get: function () {\n      return _emberPowerSelectTrueStringIfPresent.emberPowerSelectTrueStringIfPresent;\n    }\n  });\n});","define(\"adept-iq/helpers/eq\", [\"exports\", \"ember-truth-helpers/helpers/equal\"], function (_exports, _equal) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _equal.default;\n    }\n  });\n  Object.defineProperty(_exports, \"equal\", {\n    enumerable: true,\n    get: function () {\n      return _equal.equal;\n    }\n  });\n});","define(\"adept-iq/helpers/exp\", [\"exports\", \"ember-math-helpers/helpers/exp\"], function (_exports, _exp) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _exp.default;\n    }\n  });\n  Object.defineProperty(_exports, \"exp\", {\n    enumerable: true,\n    get: function () {\n      return _exp.exp;\n    }\n  });\n});","define(\"adept-iq/helpers/expm1\", [\"exports\", \"ember-math-helpers/helpers/expm1\"], function (_exports, _expm) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _expm.default;\n    }\n  });\n  Object.defineProperty(_exports, \"expm1\", {\n    enumerable: true,\n    get: function () {\n      return _expm.expm1;\n    }\n  });\n});","define(\"adept-iq/helpers/filter-by\", [\"exports\", \"ember-composable-helpers/helpers/filter-by\"], function (_exports, _filterBy) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _filterBy.default;\n    }\n  });\n});","define(\"adept-iq/helpers/filter\", [\"exports\", \"ember-composable-helpers/helpers/filter\"], function (_exports, _filter) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _filter.default;\n    }\n  });\n});","define(\"adept-iq/helpers/find-by\", [\"exports\", \"ember-composable-helpers/helpers/find-by\"], function (_exports, _findBy) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _findBy.default;\n    }\n  });\n});","define(\"adept-iq/helpers/firstletter\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.firstletter = firstletter;\n  _exports.default = void 0;\n\n  function firstletter(str) {\n    const s = str[0].replace(/\\w\\S*/g, str[0].charAt(0).toUpperCase());\n    return s;\n  }\n\n  var _default = Ember.Helper.helper(firstletter);\n\n  _exports.default = _default;\n});","define(\"adept-iq/helpers/flatten\", [\"exports\", \"ember-composable-helpers/helpers/flatten\"], function (_exports, _flatten) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _flatten.default;\n    }\n  });\n  Object.defineProperty(_exports, \"flatten\", {\n    enumerable: true,\n    get: function () {\n      return _flatten.flatten;\n    }\n  });\n});","define(\"adept-iq/helpers/floor\", [\"exports\", \"ember-math-helpers/helpers/floor\"], function (_exports, _floor) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _floor.default;\n    }\n  });\n  Object.defineProperty(_exports, \"floor\", {\n    enumerable: true,\n    get: function () {\n      return _floor.floor;\n    }\n  });\n});","define(\"adept-iq/helpers/fround\", [\"exports\", \"ember-math-helpers/helpers/fround\"], function (_exports, _fround) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _fround.default;\n    }\n  });\n  Object.defineProperty(_exports, \"fround\", {\n    enumerable: true,\n    get: function () {\n      return _fround.fround;\n    }\n  });\n});","define(\"adept-iq/helpers/gcd\", [\"exports\", \"ember-math-helpers/helpers/gcd\"], function (_exports, _gcd) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _gcd.default;\n    }\n  });\n  Object.defineProperty(_exports, \"gcd\", {\n    enumerable: true,\n    get: function () {\n      return _gcd.gcd;\n    }\n  });\n});","define(\"adept-iq/helpers/group-by\", [\"exports\", \"ember-composable-helpers/helpers/group-by\"], function (_exports, _groupBy) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _groupBy.default;\n    }\n  });\n});","define(\"adept-iq/helpers/gt\", [\"exports\", \"ember-truth-helpers/helpers/gt\"], function (_exports, _gt) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _gt.default;\n    }\n  });\n  Object.defineProperty(_exports, \"gt\", {\n    enumerable: true,\n    get: function () {\n      return _gt.gt;\n    }\n  });\n});","define(\"adept-iq/helpers/gte\", [\"exports\", \"ember-truth-helpers/helpers/gte\"], function (_exports, _gte) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _gte.default;\n    }\n  });\n  Object.defineProperty(_exports, \"gte\", {\n    enumerable: true,\n    get: function () {\n      return _gte.gte;\n    }\n  });\n});","define(\"adept-iq/helpers/has-next\", [\"exports\", \"ember-composable-helpers/helpers/has-next\"], function (_exports, _hasNext) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _hasNext.default;\n    }\n  });\n  Object.defineProperty(_exports, \"hasNext\", {\n    enumerable: true,\n    get: function () {\n      return _hasNext.hasNext;\n    }\n  });\n});","define(\"adept-iq/helpers/has-previous\", [\"exports\", \"ember-composable-helpers/helpers/has-previous\"], function (_exports, _hasPrevious) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _hasPrevious.default;\n    }\n  });\n  Object.defineProperty(_exports, \"hasPrevious\", {\n    enumerable: true,\n    get: function () {\n      return _hasPrevious.hasPrevious;\n    }\n  });\n});","define(\"adept-iq/helpers/html-safe\", [\"exports\", \"ember-cli-string-helpers/helpers/html-safe\"], function (_exports, _htmlSafe) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _htmlSafe.default;\n    }\n  });\n  Object.defineProperty(_exports, \"htmlSafe\", {\n    enumerable: true,\n    get: function () {\n      return _htmlSafe.htmlSafe;\n    }\n  });\n});","define(\"adept-iq/helpers/humanize\", [\"exports\", \"ember-cli-string-helpers/helpers/humanize\"], function (_exports, _humanize) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _humanize.default;\n    }\n  });\n  Object.defineProperty(_exports, \"humanize\", {\n    enumerable: true,\n    get: function () {\n      return _humanize.humanize;\n    }\n  });\n});","define(\"adept-iq/helpers/hypot\", [\"exports\", \"ember-math-helpers/helpers/hypot\"], function (_exports, _hypot) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _hypot.default;\n    }\n  });\n  Object.defineProperty(_exports, \"hypot\", {\n    enumerable: true,\n    get: function () {\n      return _hypot.hypot;\n    }\n  });\n});","define(\"adept-iq/helpers/idandindex\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.idandindex = idandindex;\n  _exports.default = void 0;\n\n  function idandindex(args) {\n    const s = args[0] + args[1];\n    return s;\n  }\n\n  var _default = Ember.Helper.helper(idandindex);\n\n  _exports.default = _default;\n});","define(\"adept-iq/helpers/ignore-children\", [\"exports\", \"ember-ignore-children-helper/helpers/ignore-children\"], function (_exports, _ignoreChildren) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ignoreChildren.default;\n    }\n  });\n  Object.defineProperty(_exports, \"ignoreChildren\", {\n    enumerable: true,\n    get: function () {\n      return _ignoreChildren.ignoreChildren;\n    }\n  });\n});","define(\"adept-iq/helpers/imul\", [\"exports\", \"ember-math-helpers/helpers/imul\"], function (_exports, _imul) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _imul.default;\n    }\n  });\n  Object.defineProperty(_exports, \"imul\", {\n    enumerable: true,\n    get: function () {\n      return _imul.imul;\n    }\n  });\n});","define(\"adept-iq/helpers/inc\", [\"exports\", \"ember-composable-helpers/helpers/inc\"], function (_exports, _inc) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _inc.default;\n    }\n  });\n  Object.defineProperty(_exports, \"inc\", {\n    enumerable: true,\n    get: function () {\n      return _inc.inc;\n    }\n  });\n});","define(\"adept-iq/helpers/intersect\", [\"exports\", \"ember-composable-helpers/helpers/intersect\"], function (_exports, _intersect) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _intersect.default;\n    }\n  });\n});","define(\"adept-iq/helpers/invoke\", [\"exports\", \"ember-composable-helpers/helpers/invoke\"], function (_exports, _invoke) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _invoke.default;\n    }\n  });\n  Object.defineProperty(_exports, \"invoke\", {\n    enumerable: true,\n    get: function () {\n      return _invoke.invoke;\n    }\n  });\n});","define(\"adept-iq/helpers/is-after\", [\"exports\", \"ember-moment/helpers/is-after\"], function (_exports, _isAfter) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isAfter.default;\n    }\n  });\n});","define(\"adept-iq/helpers/is-array\", [\"exports\", \"ember-truth-helpers/helpers/is-array\"], function (_exports, _isArray) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isArray.default;\n    }\n  });\n  Object.defineProperty(_exports, \"isArray\", {\n    enumerable: true,\n    get: function () {\n      return _isArray.isArray;\n    }\n  });\n});","define(\"adept-iq/helpers/is-before\", [\"exports\", \"ember-moment/helpers/is-before\"], function (_exports, _isBefore) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isBefore.default;\n    }\n  });\n});","define(\"adept-iq/helpers/is-between\", [\"exports\", \"ember-moment/helpers/is-between\"], function (_exports, _isBetween) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isBetween.default;\n    }\n  });\n});","define(\"adept-iq/helpers/is-empty\", [\"exports\", \"ember-truth-helpers/helpers/is-empty\"], function (_exports, _isEmpty) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isEmpty.default;\n    }\n  });\n});","define(\"adept-iq/helpers/is-equal\", [\"exports\", \"ember-truth-helpers/helpers/is-equal\"], function (_exports, _isEqual) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isEqual.default;\n    }\n  });\n  Object.defineProperty(_exports, \"isEqual\", {\n    enumerable: true,\n    get: function () {\n      return _isEqual.isEqual;\n    }\n  });\n});","define(\"adept-iq/helpers/is-same-or-after\", [\"exports\", \"ember-moment/helpers/is-same-or-after\"], function (_exports, _isSameOrAfter) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isSameOrAfter.default;\n    }\n  });\n});","define(\"adept-iq/helpers/is-same-or-before\", [\"exports\", \"ember-moment/helpers/is-same-or-before\"], function (_exports, _isSameOrBefore) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isSameOrBefore.default;\n    }\n  });\n});","define(\"adept-iq/helpers/is-same\", [\"exports\", \"ember-moment/helpers/is-same\"], function (_exports, _isSame) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isSame.default;\n    }\n  });\n});","define(\"adept-iq/helpers/join\", [\"exports\", \"ember-composable-helpers/helpers/join\"], function (_exports, _join) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _join.default;\n    }\n  });\n});","define(\"adept-iq/helpers/lcm\", [\"exports\", \"ember-math-helpers/helpers/lcm\"], function (_exports, _lcm) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _lcm.default;\n    }\n  });\n  Object.defineProperty(_exports, \"lcm\", {\n    enumerable: true,\n    get: function () {\n      return _lcm.lcm;\n    }\n  });\n});","define(\"adept-iq/helpers/log-e\", [\"exports\", \"ember-math-helpers/helpers/log-e\"], function (_exports, _logE) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _logE.default;\n    }\n  });\n  Object.defineProperty(_exports, \"logE\", {\n    enumerable: true,\n    get: function () {\n      return _logE.logE;\n    }\n  });\n});","define(\"adept-iq/helpers/log10\", [\"exports\", \"ember-math-helpers/helpers/log10\"], function (_exports, _log) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _log.default;\n    }\n  });\n  Object.defineProperty(_exports, \"log10\", {\n    enumerable: true,\n    get: function () {\n      return _log.log10;\n    }\n  });\n});","define(\"adept-iq/helpers/log1p\", [\"exports\", \"ember-math-helpers/helpers/log1p\"], function (_exports, _log1p) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _log1p.default;\n    }\n  });\n  Object.defineProperty(_exports, \"log1p\", {\n    enumerable: true,\n    get: function () {\n      return _log1p.log1p;\n    }\n  });\n});","define(\"adept-iq/helpers/log2\", [\"exports\", \"ember-math-helpers/helpers/log2\"], function (_exports, _log) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _log.default;\n    }\n  });\n  Object.defineProperty(_exports, \"log2\", {\n    enumerable: true,\n    get: function () {\n      return _log.log2;\n    }\n  });\n});","define(\"adept-iq/helpers/lowercase\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.lowercase = lowercase;\n  _exports.default = void 0;\n\n  function lowercase(str) {\n    const s = str[0].replace(/\\s+/g, '-').toLowerCase();\n    return s;\n  }\n\n  var _default = Ember.Helper.helper(lowercase);\n\n  _exports.default = _default;\n});","define(\"adept-iq/helpers/lt\", [\"exports\", \"ember-truth-helpers/helpers/lt\"], function (_exports, _lt) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _lt.default;\n    }\n  });\n  Object.defineProperty(_exports, \"lt\", {\n    enumerable: true,\n    get: function () {\n      return _lt.lt;\n    }\n  });\n});","define(\"adept-iq/helpers/lte\", [\"exports\", \"ember-truth-helpers/helpers/lte\"], function (_exports, _lte) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _lte.default;\n    }\n  });\n  Object.defineProperty(_exports, \"lte\", {\n    enumerable: true,\n    get: function () {\n      return _lte.lte;\n    }\n  });\n});","define(\"adept-iq/helpers/map-by\", [\"exports\", \"ember-composable-helpers/helpers/map-by\"], function (_exports, _mapBy) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _mapBy.default;\n    }\n  });\n});","define(\"adept-iq/helpers/map\", [\"exports\", \"ember-composable-helpers/helpers/map\"], function (_exports, _map) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _map.default;\n    }\n  });\n});","define(\"adept-iq/helpers/max\", [\"exports\", \"ember-math-helpers/helpers/max\"], function (_exports, _max) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _max.default;\n    }\n  });\n  Object.defineProperty(_exports, \"max\", {\n    enumerable: true,\n    get: function () {\n      return _max.max;\n    }\n  });\n});","define(\"adept-iq/helpers/media\", [\"exports\", \"ember-responsive/helpers/media\"], function (_exports, _media) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _media.default;\n    }\n  });\n  Object.defineProperty(_exports, \"media\", {\n    enumerable: true,\n    get: function () {\n      return _media.media;\n    }\n  });\n});","define(\"adept-iq/helpers/min\", [\"exports\", \"ember-math-helpers/helpers/min\"], function (_exports, _min) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _min.default;\n    }\n  });\n  Object.defineProperty(_exports, \"min\", {\n    enumerable: true,\n    get: function () {\n      return _min.min;\n    }\n  });\n});","define(\"adept-iq/helpers/mod\", [\"exports\", \"ember-math-helpers/helpers/mod\"], function (_exports, _mod) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _mod.default;\n    }\n  });\n  Object.defineProperty(_exports, \"mod\", {\n    enumerable: true,\n    get: function () {\n      return _mod.mod;\n    }\n  });\n});","define(\"adept-iq/helpers/moment-add\", [\"exports\", \"ember-moment/helpers/moment-add\"], function (_exports, _momentAdd) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentAdd.default;\n    }\n  });\n});","define(\"adept-iq/helpers/moment-calendar\", [\"exports\", \"ember-moment/helpers/moment-calendar\"], function (_exports, _momentCalendar) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentCalendar.default;\n    }\n  });\n});","define(\"adept-iq/helpers/moment-diff\", [\"exports\", \"ember-moment/helpers/moment-diff\"], function (_exports, _momentDiff) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentDiff.default;\n    }\n  });\n});","define(\"adept-iq/helpers/moment-duration\", [\"exports\", \"ember-moment/helpers/moment-duration\"], function (_exports, _momentDuration) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentDuration.default;\n    }\n  });\n});","define(\"adept-iq/helpers/moment-format\", [\"exports\", \"ember-moment/helpers/moment-format\"], function (_exports, _momentFormat) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentFormat.default;\n    }\n  });\n});","define(\"adept-iq/helpers/moment-from-now\", [\"exports\", \"ember-moment/helpers/moment-from-now\"], function (_exports, _momentFromNow) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentFromNow.default;\n    }\n  });\n});","define(\"adept-iq/helpers/moment-from\", [\"exports\", \"ember-moment/helpers/moment-from\"], function (_exports, _momentFrom) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentFrom.default;\n    }\n  });\n});","define(\"adept-iq/helpers/moment-subtract\", [\"exports\", \"ember-moment/helpers/moment-subtract\"], function (_exports, _momentSubtract) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentSubtract.default;\n    }\n  });\n});","define(\"adept-iq/helpers/moment-to-date\", [\"exports\", \"ember-moment/helpers/moment-to-date\"], function (_exports, _momentToDate) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentToDate.default;\n    }\n  });\n});","define(\"adept-iq/helpers/moment-to-now\", [\"exports\", \"ember-moment/helpers/moment-to-now\"], function (_exports, _momentToNow) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentToNow.default;\n    }\n  });\n});","define(\"adept-iq/helpers/moment-to\", [\"exports\", \"ember-moment/helpers/moment-to\"], function (_exports, _momentTo) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentTo.default;\n    }\n  });\n});","define(\"adept-iq/helpers/moment-unix\", [\"exports\", \"ember-moment/helpers/unix\"], function (_exports, _unix) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _unix.default;\n    }\n  });\n});","define(\"adept-iq/helpers/moment\", [\"exports\", \"ember-moment/helpers/moment\"], function (_exports, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _moment.default;\n    }\n  });\n});","define(\"adept-iq/helpers/mult\", [\"exports\", \"ember-math-helpers/helpers/mult\"], function (_exports, _mult) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _mult.default;\n    }\n  });\n  Object.defineProperty(_exports, \"mult\", {\n    enumerable: true,\n    get: function () {\n      return _mult.mult;\n    }\n  });\n});","define(\"adept-iq/helpers/next\", [\"exports\", \"ember-composable-helpers/helpers/next\"], function (_exports, _next) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _next.default;\n    }\n  });\n  Object.defineProperty(_exports, \"next\", {\n    enumerable: true,\n    get: function () {\n      return _next.next;\n    }\n  });\n});","define(\"adept-iq/helpers/noop\", [\"exports\", \"ember-composable-helpers/helpers/noop\"], function (_exports, _noop) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _noop.default;\n    }\n  });\n  Object.defineProperty(_exports, \"noop\", {\n    enumerable: true,\n    get: function () {\n      return _noop.noop;\n    }\n  });\n});","define(\"adept-iq/helpers/not-eq\", [\"exports\", \"ember-truth-helpers/helpers/not-equal\"], function (_exports, _notEqual) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _notEqual.default;\n    }\n  });\n  Object.defineProperty(_exports, \"notEq\", {\n    enumerable: true,\n    get: function () {\n      return _notEqual.notEq;\n    }\n  });\n});","define(\"adept-iq/helpers/not\", [\"exports\", \"ember-truth-helpers/helpers/not\"], function (_exports, _not) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _not.default;\n    }\n  });\n  Object.defineProperty(_exports, \"not\", {\n    enumerable: true,\n    get: function () {\n      return _not.not;\n    }\n  });\n});","define(\"adept-iq/helpers/now\", [\"exports\", \"ember-moment/helpers/now\"], function (_exports, _now) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _now.default;\n    }\n  });\n});","define(\"adept-iq/helpers/object-at\", [\"exports\", \"ember-composable-helpers/helpers/object-at\"], function (_exports, _objectAt) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _objectAt.default;\n    }\n  });\n  Object.defineProperty(_exports, \"objectAt\", {\n    enumerable: true,\n    get: function () {\n      return _objectAt.objectAt;\n    }\n  });\n});","define(\"adept-iq/helpers/optional\", [\"exports\", \"ember-composable-helpers/helpers/optional\"], function (_exports, _optional) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _optional.default;\n    }\n  });\n  Object.defineProperty(_exports, \"optional\", {\n    enumerable: true,\n    get: function () {\n      return _optional.optional;\n    }\n  });\n});","define(\"adept-iq/helpers/or\", [\"exports\", \"ember-truth-helpers/helpers/or\"], function (_exports, _or) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _or.default;\n    }\n  });\n  Object.defineProperty(_exports, \"or\", {\n    enumerable: true,\n    get: function () {\n      return _or.or;\n    }\n  });\n});","define(\"adept-iq/helpers/perform\", [\"exports\", \"ember-concurrency/helpers/perform\"], function (_exports, _perform) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _perform.default;\n    }\n  });\n});","define(\"adept-iq/helpers/pipe-action\", [\"exports\", \"ember-composable-helpers/helpers/pipe-action\"], function (_exports, _pipeAction) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _pipeAction.default;\n    }\n  });\n});","define(\"adept-iq/helpers/pipe\", [\"exports\", \"ember-composable-helpers/helpers/pipe\"], function (_exports, _pipe) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _pipe.default;\n    }\n  });\n  Object.defineProperty(_exports, \"pipe\", {\n    enumerable: true,\n    get: function () {\n      return _pipe.pipe;\n    }\n  });\n});","define(\"adept-iq/helpers/pluralize\", [\"exports\", \"ember-inflector/lib/helpers/pluralize\"], function (_exports, _pluralize) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _pluralize.default;\n  _exports.default = _default;\n});","define(\"adept-iq/helpers/popupmodelpath\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.popupmodelpath = popupmodelpath;\n  _exports.default = void 0;\n\n  function popupmodelpath(widgetName) {\n    const s = 'iq-widgets/' + widgetName;\n    return s;\n  }\n\n  var _default = Ember.Helper.helper(popupmodelpath);\n\n  _exports.default = _default;\n});","define(\"adept-iq/helpers/pow\", [\"exports\", \"ember-math-helpers/helpers/pow\"], function (_exports, _pow) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _pow.default;\n    }\n  });\n  Object.defineProperty(_exports, \"pow\", {\n    enumerable: true,\n    get: function () {\n      return _pow.pow;\n    }\n  });\n});","define(\"adept-iq/helpers/previous\", [\"exports\", \"ember-composable-helpers/helpers/previous\"], function (_exports, _previous) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _previous.default;\n    }\n  });\n  Object.defineProperty(_exports, \"previous\", {\n    enumerable: true,\n    get: function () {\n      return _previous.previous;\n    }\n  });\n});","define(\"adept-iq/helpers/queue\", [\"exports\", \"ember-composable-helpers/helpers/queue\"], function (_exports, _queue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _queue.default;\n    }\n  });\n  Object.defineProperty(_exports, \"queue\", {\n    enumerable: true,\n    get: function () {\n      return _queue.queue;\n    }\n  });\n});","define(\"adept-iq/helpers/random\", [\"exports\", \"ember-math-helpers/helpers/random\"], function (_exports, _random) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _random.default;\n    }\n  });\n  Object.defineProperty(_exports, \"random\", {\n    enumerable: true,\n    get: function () {\n      return _random.random;\n    }\n  });\n});","define(\"adept-iq/helpers/range\", [\"exports\", \"ember-composable-helpers/helpers/range\"], function (_exports, _range) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _range.default;\n    }\n  });\n  Object.defineProperty(_exports, \"range\", {\n    enumerable: true,\n    get: function () {\n      return _range.range;\n    }\n  });\n});","define(\"adept-iq/helpers/reduce\", [\"exports\", \"ember-composable-helpers/helpers/reduce\"], function (_exports, _reduce) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _reduce.default;\n    }\n  });\n});","define(\"adept-iq/helpers/reject-by\", [\"exports\", \"ember-composable-helpers/helpers/reject-by\"], function (_exports, _rejectBy) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _rejectBy.default;\n    }\n  });\n});","define(\"adept-iq/helpers/repeat\", [\"exports\", \"ember-composable-helpers/helpers/repeat\"], function (_exports, _repeat) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _repeat.default;\n    }\n  });\n  Object.defineProperty(_exports, \"repeat\", {\n    enumerable: true,\n    get: function () {\n      return _repeat.repeat;\n    }\n  });\n});","define(\"adept-iq/helpers/reverse\", [\"exports\", \"ember-composable-helpers/helpers/reverse\"], function (_exports, _reverse) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _reverse.default;\n    }\n  });\n});","define(\"adept-iq/helpers/round\", [\"exports\", \"ember-math-helpers/helpers/round\"], function (_exports, _round) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _round.default;\n    }\n  });\n  Object.defineProperty(_exports, \"round\", {\n    enumerable: true,\n    get: function () {\n      return _round.round;\n    }\n  });\n});","define(\"adept-iq/helpers/route-action\", [\"exports\", \"ember-route-action-helper/helpers/route-action\"], function (_exports, _routeAction) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _routeAction.default;\n    }\n  });\n});","define(\"adept-iq/helpers/send\", [\"exports\", \"ember-component-inbound-actions/helpers/send\"], function (_exports, _send) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _send.default;\n    }\n  });\n});","define(\"adept-iq/helpers/shuffle\", [\"exports\", \"ember-composable-helpers/helpers/shuffle\"], function (_exports, _shuffle) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _shuffle.default;\n    }\n  });\n  Object.defineProperty(_exports, \"shuffle\", {\n    enumerable: true,\n    get: function () {\n      return _shuffle.shuffle;\n    }\n  });\n});","define(\"adept-iq/helpers/sign\", [\"exports\", \"ember-math-helpers/helpers/sign\"], function (_exports, _sign) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _sign.default;\n    }\n  });\n  Object.defineProperty(_exports, \"sign\", {\n    enumerable: true,\n    get: function () {\n      return _sign.sign;\n    }\n  });\n});","define(\"adept-iq/helpers/sin\", [\"exports\", \"ember-math-helpers/helpers/sin\"], function (_exports, _sin) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _sin.default;\n    }\n  });\n  Object.defineProperty(_exports, \"sin\", {\n    enumerable: true,\n    get: function () {\n      return _sin.sin;\n    }\n  });\n});","define(\"adept-iq/helpers/singularize\", [\"exports\", \"ember-inflector/lib/helpers/singularize\"], function (_exports, _singularize) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _singularize.default;\n  _exports.default = _default;\n});","define(\"adept-iq/helpers/slice\", [\"exports\", \"ember-composable-helpers/helpers/slice\"], function (_exports, _slice) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _slice.default;\n    }\n  });\n});","define(\"adept-iq/helpers/sort-by\", [\"exports\", \"ember-composable-helpers/helpers/sort-by\"], function (_exports, _sortBy) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _sortBy.default;\n    }\n  });\n});","define(\"adept-iq/helpers/sqrt\", [\"exports\", \"ember-math-helpers/helpers/sqrt\"], function (_exports, _sqrt) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _sqrt.default;\n    }\n  });\n  Object.defineProperty(_exports, \"sqrt\", {\n    enumerable: true,\n    get: function () {\n      return _sqrt.sqrt;\n    }\n  });\n});","define(\"adept-iq/helpers/sub\", [\"exports\", \"ember-math-helpers/helpers/sub\"], function (_exports, _sub) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _sub.default;\n    }\n  });\n  Object.defineProperty(_exports, \"sub\", {\n    enumerable: true,\n    get: function () {\n      return _sub.sub;\n    }\n  });\n});","define(\"adept-iq/helpers/take\", [\"exports\", \"ember-composable-helpers/helpers/take\"], function (_exports, _take) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _take.default;\n    }\n  });\n});","define(\"adept-iq/helpers/tan\", [\"exports\", \"ember-math-helpers/helpers/tan\"], function (_exports, _tan) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _tan.default;\n    }\n  });\n  Object.defineProperty(_exports, \"tan\", {\n    enumerable: true,\n    get: function () {\n      return _tan.tan;\n    }\n  });\n});","define(\"adept-iq/helpers/tanh\", [\"exports\", \"ember-math-helpers/helpers/tanh\"], function (_exports, _tanh) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _tanh.default;\n    }\n  });\n  Object.defineProperty(_exports, \"tanh\", {\n    enumerable: true,\n    get: function () {\n      return _tanh.tanh;\n    }\n  });\n});","define(\"adept-iq/helpers/task\", [\"exports\", \"ember-concurrency/helpers/task\"], function (_exports, _task) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _task.default;\n    }\n  });\n});","define(\"adept-iq/helpers/titleandkey\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.titleandkey = titleandkey;\n  _exports.default = void 0;\n\n  function titleandkey(args) {\n    const s = args[0] + \" \" + args[1];\n    return s;\n  }\n\n  var _default = Ember.Helper.helper(titleandkey);\n\n  _exports.default = _default;\n});","define(\"adept-iq/helpers/titlecase\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.titlecase = titlecase;\n  _exports.default = void 0;\n\n  function titlecase(str) {\n    const s = str[0].replace(/\\w\\S*/g, str[0].charAt(0).toUpperCase() + str[0].substr(1).toLowerCase());\n    return s;\n  }\n\n  var _default = Ember.Helper.helper(titlecase);\n\n  _exports.default = _default;\n});","define(\"adept-iq/helpers/titleize\", [\"exports\", \"ember-cli-string-helpers/helpers/titleize\"], function (_exports, _titleize) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _titleize.default;\n    }\n  });\n  Object.defineProperty(_exports, \"titleize\", {\n    enumerable: true,\n    get: function () {\n      return _titleize.titleize;\n    }\n  });\n});","define(\"adept-iq/helpers/toggle-action\", [\"exports\", \"ember-composable-helpers/helpers/toggle-action\"], function (_exports, _toggleAction) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _toggleAction.default;\n    }\n  });\n});","define(\"adept-iq/helpers/toggle\", [\"exports\", \"ember-composable-helpers/helpers/toggle\"], function (_exports, _toggle) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _toggle.default;\n    }\n  });\n  Object.defineProperty(_exports, \"toggle\", {\n    enumerable: true,\n    get: function () {\n      return _toggle.toggle;\n    }\n  });\n});","define(\"adept-iq/helpers/trim\", [\"exports\", \"ember-cli-string-helpers/helpers/trim\"], function (_exports, _trim) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _trim.default;\n    }\n  });\n  Object.defineProperty(_exports, \"trim\", {\n    enumerable: true,\n    get: function () {\n      return _trim.trim;\n    }\n  });\n});","define(\"adept-iq/helpers/trunc\", [\"exports\", \"ember-math-helpers/helpers/trunc\"], function (_exports, _trunc) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _trunc.default;\n    }\n  });\n  Object.defineProperty(_exports, \"trunc\", {\n    enumerable: true,\n    get: function () {\n      return _trunc.trunc;\n    }\n  });\n});","define(\"adept-iq/helpers/truncate\", [\"exports\", \"ember-cli-string-helpers/helpers/truncate\"], function (_exports, _truncate) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _truncate.default;\n    }\n  });\n  Object.defineProperty(_exports, \"truncate\", {\n    enumerable: true,\n    get: function () {\n      return _truncate.truncate;\n    }\n  });\n});","define(\"adept-iq/helpers/underscore\", [\"exports\", \"ember-cli-string-helpers/helpers/underscore\"], function (_exports, _underscore) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _underscore.default;\n    }\n  });\n  Object.defineProperty(_exports, \"underscore\", {\n    enumerable: true,\n    get: function () {\n      return _underscore.underscore;\n    }\n  });\n});","define(\"adept-iq/helpers/union\", [\"exports\", \"ember-composable-helpers/helpers/union\"], function (_exports, _union) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _union.default;\n    }\n  });\n});","define(\"adept-iq/helpers/unix\", [\"exports\", \"ember-moment/helpers/unix\"], function (_exports, _unix) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _unix.default;\n    }\n  });\n});","define(\"adept-iq/helpers/uppercase\", [\"exports\", \"ember-cli-string-helpers/helpers/uppercase\"], function (_exports, _uppercase) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _uppercase.default;\n    }\n  });\n  Object.defineProperty(_exports, \"uppercase\", {\n    enumerable: true,\n    get: function () {\n      return _uppercase.uppercase;\n    }\n  });\n});","define(\"adept-iq/helpers/utc\", [\"exports\", \"ember-moment/helpers/utc\"], function (_exports, _utc) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _utc.default;\n    }\n  });\n  Object.defineProperty(_exports, \"utc\", {\n    enumerable: true,\n    get: function () {\n      return _utc.utc;\n    }\n  });\n});","define(\"adept-iq/helpers/w\", [\"exports\", \"ember-cli-string-helpers/helpers/w\"], function (_exports, _w) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _w.default;\n    }\n  });\n  Object.defineProperty(_exports, \"w\", {\n    enumerable: true,\n    get: function () {\n      return _w.w;\n    }\n  });\n});","define(\"adept-iq/helpers/without\", [\"exports\", \"ember-composable-helpers/helpers/without\"], function (_exports, _without) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _without.default;\n    }\n  });\n  Object.defineProperty(_exports, \"without\", {\n    enumerable: true,\n    get: function () {\n      return _without.without;\n    }\n  });\n});","define(\"adept-iq/helpers/xor\", [\"exports\", \"ember-truth-helpers/helpers/xor\"], function (_exports, _xor) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _xor.default;\n    }\n  });\n  Object.defineProperty(_exports, \"xor\", {\n    enumerable: true,\n    get: function () {\n      return _xor.xor;\n    }\n  });\n});","define(\"adept-iq/initializers/add-modals-container\", [\"exports\", \"ember-modal-dialog/initializers/add-modals-container\"], function (_exports, _addModalsContainer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    name: 'add-modals-container',\n    initialize: _addModalsContainer.default\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/app-version\", [\"exports\", \"ember-cli-app-version/initializer-factory\", \"adept-iq/config/environment\"], function (_exports, _initializerFactory, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  let name, version;\n\n  if (_environment.default.APP) {\n    name = _environment.default.APP.name;\n    version = _environment.default.APP.version;\n  }\n\n  var _default = {\n    name: 'App Version',\n    initialize: (0, _initializerFactory.default)(name, version)\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/container-debug-adapter\", [\"exports\", \"ember-resolver/resolvers/classic/container-debug-adapter\"], function (_exports, _containerDebugAdapter) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    name: 'container-debug-adapter',\n\n    initialize() {\n      let app = arguments[1] || arguments[0];\n      app.register('container-debug-adapter:main', _containerDebugAdapter.default);\n      app.inject('container-debug-adapter:main', 'namespace', 'application:main');\n    }\n\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/debug\", [\"exports\", \"@html-next/vertical-collection/-debug\"], function (_exports, _debug) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    name: 'vertical-collection-debug',\n\n    initialize() {}\n\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/deprecations\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.initialize = initialize;\n  _exports.default = void 0;\n  const DEPRECATION_IDS_BLACKLIST = ['ember-simple-auth.session.authorize', 'ember-simple-auth.baseAuthorizer', 'ember-component.send-action', 'ember-polyfills.deprecate-merge', 'object.new-constructor', 'ember-runtime.deprecate-copy-copyable', 'remove-handler-infos'];\n\n  function initialize() {\n    Ember.Debug.registerDeprecationHandler((message, options, next) => {\n      if (DEPRECATION_IDS_BLACKLIST.includes(options.id)) return;\n      next(message, options);\n    });\n  }\n\n  var _default = {\n    initialize\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/ember-cli-mirage\", [\"exports\", \"adept-iq/config/environment\", \"adept-iq/mirage/config\", \"ember-cli-mirage/get-rfc232-test-context\", \"ember-cli-mirage/start-mirage\"], function (_exports, _environment, _config, _getRfc232TestContext, _startMirage) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.startMirage = startMirage;\n  _exports.default = void 0;\n  //\n  // This initializer does two things:\n  //\n  // 1. Pulls the mirage config objects from the application's config and\n  //    registers them in the container so `ember-cli-mirage/start-mirage` can\n  //    find them (since it doesn't have access to the app's namespace).\n  // 2. Provides legacy support for auto-starting mirage in pre-rfc268 acceptance\n  //    tests.\n  //\n  var _default = {\n    name: 'ember-cli-mirage',\n\n    initialize(application) {\n      if (_config.default) {\n        application.register('mirage:base-config', _config.default, {\n          instantiate: false\n        });\n      }\n\n      if (_config.testConfig) {\n        application.register('mirage:test-config', _config.testConfig, {\n          instantiate: false\n        });\n      }\n\n      _environment.default['ember-cli-mirage'] = _environment.default['ember-cli-mirage'] || {};\n\n      if (_shouldUseMirage(_environment.default.environment, _environment.default['ember-cli-mirage'])) {\n        startMirage(_environment.default);\n      }\n    }\n\n  };\n  _exports.default = _default;\n\n  function startMirage(env = _environment.default) {\n    return (0, _startMirage.default)(null, {\n      env,\n      baseConfig: _config.default,\n      testConfig: _config.testConfig\n    });\n  }\n\n  function _shouldUseMirage(env, addonConfig) {\n    if (typeof FastBoot !== 'undefined') {\n      return false;\n    }\n\n    if ((0, _getRfc232TestContext.default)()) {\n      return false;\n    }\n\n    let userDeclaredEnabled = typeof addonConfig.enabled !== 'undefined';\n\n    let defaultEnabled = _defaultEnabled(env, addonConfig);\n\n    return userDeclaredEnabled ? addonConfig.enabled : defaultEnabled;\n  }\n  /*\n    Returns a boolean specifying the default behavior for whether\n    to initialize Mirage.\n  */\n\n\n  function _defaultEnabled(env, addonConfig) {\n    let usingInDev = env === 'development' && !addonConfig.usingProxy;\n    let usingInTest = env === 'test';\n    return usingInDev || usingInTest;\n  }\n});","define(\"adept-iq/initializers/ember-concurrency\", [\"exports\", \"ember-concurrency/initializers/ember-concurrency\"], function (_exports, _emberConcurrency) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberConcurrency.default;\n    }\n  });\n});","define(\"adept-iq/initializers/ember-data\", [\"exports\", \"ember-data/setup-container\", \"ember-data\"], function (_exports, _setupContainer, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /*\n  \n    This code initializes Ember-Data onto an Ember application.\n  \n    If an Ember.js developer defines a subclass of DS.Store on their application,\n    as `App.StoreService` (or via a module system that resolves to `service:store`)\n    this code will automatically instantiate it and make it available on the\n    router.\n  \n    Additionally, after an application's controllers have been injected, they will\n    each have the store made available to them.\n  \n    For example, imagine an Ember.js application with the following classes:\n  \n    ```app/services/store.js\n    import DS from 'ember-data';\n  \n    export default DS.Store.extend({\n      adapter: 'custom'\n    });\n    ```\n  \n    ```app/controllers/posts.js\n    import { Controller } from '@ember/controller';\n  \n    export default Controller.extend({\n      // ...\n    });\n  \n    When the application is initialized, `ApplicationStore` will automatically be\n    instantiated, and the instance of `PostsController` will have its `store`\n    property set to that instance.\n  \n    Note that this code will only be run if the `ember-application` package is\n    loaded. If Ember Data is being used in an environment other than a\n    typical application (e.g., node.js where only `ember-runtime` is available),\n    this code will be ignored.\n  */\n  var _default = {\n    name: 'ember-data',\n    initialize: _setupContainer.default\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/ember-responsive-breakpoints\", [\"exports\", \"ember-responsive/initializers/responsive\"], function (_exports, _responsive) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _responsive.default;\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/ember-simple-auth\", [\"exports\", \"adept-iq/config/environment\", \"ember-simple-auth/configuration\", \"ember-simple-auth/initializers/setup-session\", \"ember-simple-auth/initializers/setup-session-service\", \"ember-simple-auth/initializers/setup-session-restoration\"], function (_exports, _environment, _configuration, _setupSession, _setupSessionService, _setupSessionRestoration) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    name: 'ember-simple-auth',\n\n    initialize(registry) {\n      const config = _environment.default['ember-simple-auth'] || {};\n      config.rootURL = _environment.default.rootURL || _environment.default.baseURL;\n\n      _configuration.default.load(config);\n\n      (0, _setupSession.default)(registry);\n      (0, _setupSessionService.default)(registry);\n      (0, _setupSessionRestoration.default)(registry);\n    }\n\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/export-application-global\", [\"exports\", \"adept-iq/config/environment\"], function (_exports, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.initialize = initialize;\n  _exports.default = void 0;\n\n  function initialize() {\n    var application = arguments[1] || arguments[0];\n\n    if (_environment.default.exportApplicationGlobal !== false) {\n      var theGlobal;\n\n      if (typeof window !== 'undefined') {\n        theGlobal = window;\n      } else if (typeof global !== 'undefined') {\n        theGlobal = global;\n      } else if (typeof self !== 'undefined') {\n        theGlobal = self;\n      } else {\n        // no reasonable global, just bail\n        return;\n      }\n\n      var value = _environment.default.exportApplicationGlobal;\n      var globalName;\n\n      if (typeof value === 'string') {\n        globalName = value;\n      } else {\n        globalName = Ember.String.classify(_environment.default.modulePrefix);\n      }\n\n      if (!theGlobal[globalName]) {\n        theGlobal[globalName] = application;\n        application.reopen({\n          willDestroy: function () {\n            this._super.apply(this, arguments);\n\n            delete theGlobal[globalName];\n          }\n        });\n      }\n    }\n  }\n\n  var _default = {\n    name: 'export-application-global',\n    initialize: initialize\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/flash-messages\", [\"exports\", \"adept-iq/config/environment\", \"ember-cli-flash/utils/flash-message-options\"], function (_exports, _environment, _flashMessageOptions) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.initialize = initialize;\n  _exports.default = void 0;\n\n  /* eslint-disable ember/new-module-imports */\n  const {\n    deprecate\n  } = Ember;\n  const INJECTION_FACTORIES_DEPRECATION_MESSAGE = '[ember-cli-flash] Future versions of ember-cli-flash will no longer inject the service automatically. Instead, you should explicitly inject it into your Route, Controller or Component with `Ember.inject.service`.';\n\n  function initialize() {\n    const application = arguments[1] || arguments[0];\n    const {\n      flashMessageDefaults\n    } = _environment.default || {};\n    const {\n      injectionFactories\n    } = flashMessageDefaults || [];\n    const options = (0, _flashMessageOptions.default)(flashMessageDefaults);\n    const shouldShowDeprecation = !(injectionFactories && injectionFactories.length);\n    deprecate(INJECTION_FACTORIES_DEPRECATION_MESSAGE, shouldShowDeprecation, {\n      id: 'ember-cli-flash.deprecate-injection-factories',\n      until: '2.0.0'\n    });\n    options.injectionFactories.forEach(factory => {\n      application.inject(factory, 'flashMessages', 'service:flash-messages');\n    });\n  }\n\n  var _default = {\n    name: 'flash-messages',\n    initialize\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/load-bootstrap-config\", [\"exports\", \"adept-iq/config/environment\", \"ember-bootstrap/config\"], function (_exports, _environment, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.initialize = initialize;\n  _exports.default = void 0;\n\n  function initialize()\n  /* container, application */\n  {\n    _config.default.load(_environment.default['ember-bootstrap'] || {});\n  }\n\n  var _default = {\n    name: 'load-bootstrap-config',\n    initialize\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/model-fragments\", [\"exports\", \"ember-data-model-fragments\"], function (_exports, _emberDataModelFragments) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  // Import the full module to ensure monkey-patches are applied before any store\n  // instances are created. Sad face for side-effects :(\n  var _default = {\n    name: 'fragmentTransform',\n    before: 'ember-data',\n\n    initialize(application) {\n      application.inject('transform', 'store', 'service:store');\n    }\n\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/tomtom\", [\"exports\", \"tomtom\"], function (_exports, _tomtom) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.initialize = initialize;\n  _exports.default = void 0;\n\n  function initialize() {\n    _tomtom.default.setProductInfo('Adept IQ', '0.0.0');\n  }\n\n  var _default = {\n    initialize\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/unknownproperty\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.initialize = initialize;\n  _exports.default = void 0;\n\n  function initialize()\n  /* appInstance */\n  {\n    Ember.ObjectProxy.reopen({\n      unknownProperty(key) {\n        if (this.isDestroying || this.isDestroyed) {\n          return;\n        }\n\n        let content = this.content;\n\n        if (content) {\n          return Ember.get(content, key);\n        }\n      },\n\n      willWatchProperty()\n      /*key*/\n      {\n        if (this.isDestroying || this.isDestroyed || this.content != null && (this.content.isDestroying || this.content.isDestroyed)) {\n          return;\n        }\n\n        return this._super(arguments);\n      }\n\n    });\n  }\n\n  var _default = {\n    initialize\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/initializers/viewport-config\", [\"exports\", \"ember-in-viewport/initializers/viewport-config\"], function (_exports, _viewportConfig) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _viewportConfig.default;\n    }\n  });\n  Object.defineProperty(_exports, \"initialize\", {\n    enumerable: true,\n    get: function () {\n      return _viewportConfig.initialize;\n    }\n  });\n});","define(\"adept-iq/initializers/warnings\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.initialize = initialize;\n  _exports.default = void 0;\n  const WARNING_IDS_BLACKLIST = ['ember-light-table.height-attribute', 'ember-htmlbars.style-xss-warning'];\n\n  function initialize() {\n    Ember.Debug.registerWarnHandler((message, options, next) => {\n      if (WARNING_IDS_BLACKLIST.includes(options.id)) {\n        console.trace = null; // eslint-disable-line no-console\n\n        return;\n      }\n\n      next(message, options);\n    });\n  }\n\n  var _default = {\n    initialize\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/instance-initializers/ember-cli-mirage-autostart\", [\"exports\", \"ember-cli-mirage/instance-initializers/ember-cli-mirage-autostart\"], function (_exports, _emberCliMirageAutostart) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberCliMirageAutostart.default;\n    }\n  });\n});","define(\"adept-iq/instance-initializers/ember-data\", [\"exports\", \"ember-data/initialize-store-service\"], function (_exports, _initializeStoreService) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    name: 'ember-data',\n    initialize: _initializeStoreService.default\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/instance-initializers/ember-simple-auth\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  // This is only needed for backwards compatibility and will be removed in the\n  // next major release of ember-simple-auth. Unfortunately, there is no way to\n  // deprecate this without hooking into Ember's internals…\n  var _default = {\n    name: 'ember-simple-auth',\n\n    initialize() {}\n\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/mirage/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _default;\n\n  function _default() {}\n});","define(\"adept-iq/mixins/iq-model-identification\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const REQUIRED_PROPERTIES = ['iqModelName', 'iqModelForeignKey', 'iqModelRelationship'];\n\n  var _default = Ember.Mixin.create({\n    // e.g. `iq-driver`\n    iqModelName: null,\n    // canonical `id` key (e.g. `externalId`)\n    iqModelForeignKey: null,\n    // e.g. `iqDriver`; this is how you get to the IQ model\n    iqModelRelationship: null,\n\n    init() {\n      this._super(...arguments);\n\n      REQUIRED_PROPERTIES.forEach(propertyName => {\n        const value = this.get(propertyName);\n        if (Ember.isPresent(value)) return;\n        (true && !(false) && Ember.assert(`iq-model-identification: '${propertyName}' property required`));\n      });\n    },\n\n    normalizeArrayResponse() {\n      const normalized = this._super(...arguments);\n\n      normalized.included = normalized.included || [];\n      normalized.data.forEach(payload => {\n        this._addInverseRelationship(payload, normalized.included);\n      });\n      return normalized;\n    },\n\n    normalizeSingleResponse() {\n      const normalized = this._super(...arguments);\n\n      normalized.included = normalized.included || [];\n\n      this._addInverseRelationship(normalized.data, normalized.included);\n\n      return normalized;\n    },\n\n    _addInverseRelationship(payload, included) {\n      const iqModelName = this.get('iqModelName');\n      const iqModelForeignKey = this.get('iqModelForeignKey');\n      let iqModelId;\n\n      if (iqModelForeignKey === 'id') {\n        iqModelId = payload.id;\n      } else {\n        iqModelId = payload.attributes[iqModelForeignKey];\n      }\n\n      if (Ember.isEmpty(iqModelId)) {\n        // don't have data needed to connect, so don't try\n        return;\n      }\n\n      included.push({\n        id: iqModelId,\n        type: iqModelName,\n        attributes: {},\n        relationships: {}\n      });\n    },\n\n    normalize(typeClass, hash) {\n      const iqModelName = this.get('iqModelName');\n      const iqModelForeignKey = this.get('iqModelForeignKey');\n      const iqModelRelationship = this.get('iqModelRelationship');\n      let iqModelId;\n\n      if (iqModelForeignKey === 'id') {\n        iqModelId = hash.id;\n      } else if (hash.attributes) {\n        iqModelId = hash.attributes[iqModelForeignKey];\n      }\n\n      const normalized = this._super(...arguments);\n\n      if (Ember.isEmpty(iqModelId)) {\n        // we don't have the data required to connect, so don't try\n        return normalized;\n      }\n\n      normalized.data.relationships[iqModelRelationship] = {\n        data: {\n          id: iqModelId,\n          type: iqModelName\n        }\n      };\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/mixins/otp-label\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Mixin.create({\n    otpLabel: Ember.computed('otp', function () {\n      const otp = this.get('otp');\n\n      switch (otp) {\n        case 'O':\n          return 'On Time';\n\n        case 'D':\n          return 'In Danger';\n\n        case 'L':\n          return 'Late';\n\n        case 'E':\n          return 'Early';\n\n        default:\n          return '';\n      }\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/mixins/status-value\", [\"exports\", \"lodash\"], function (_exports, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Mixin.create({\n    statusValue: Ember.computed('drivedStatus', function () {\n      let statusValue = '';\n\n      if (this.get('drivedStatus')) {\n        statusValue = _lodash.default.lowerCase(_lodash.default.camelCase(this.get('drivedStatus')));\n        statusValue = statusValue.replace(/\\s+/g, '');\n      }\n\n      return statusValue;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/mixins/table-row-value\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Mixin.create({\n    row: null,\n    column: {},\n    computedValue: Ember.computed('column', 'row', function () {\n      const row = this.get('row');\n      const column = this.get('column');\n      let valuePath = column.get('valuePath');\n\n      if (valuePath && valuePath !== 'record.undefined') {\n        return row.get(column.get('valuePath'));\n      }\n\n      const modelName = row.get('record.constructor.modelName');\n      const configValuePaths = column.get('valuePaths');\n      valuePath = configValuePaths.findBy('modelName', modelName).valuePath;\n      return row.get(`record.${valuePath}`);\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/mixins/trip-attributes\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Mixin.create({\n    /* eslint-disable ember/use-brace-expansion */\n    attributes: Ember.computed('account', 'editmodelcontext.attributes.account.[]', 'editmodelcontext.attributes.address.[]', 'editmodelcontext.attributes.area.[]', 'editmodelcontext.attributes.cli.[]', 'editmodelcontext.editAttributes.account.[]', 'editmodelcontext.editAttributes.address.[]', 'editmodelcontext.editAttributes.area.[]', 'editmodelcontext.editAttributes.cli.[]', 'editmodelcontext.editAttributes.editTrip[]', 'manualAttributes.[]', function () {\n      let assignsAttributes = [];\n      let assigns = []; //Account, cli, building, area and region could have attributes associated with.\n\n      if (!Ember.isEmpty(this.get('editmodelcontext.attributes.account'))) {\n        assignsAttributes.push(...this.get('editmodelcontext.attributes.account'));\n      }\n\n      if (!Ember.isEmpty(this.get('editmodelcontext.attributes.cli'))) {\n        assignsAttributes.push(...this.get('editmodelcontext.attributes.cli'));\n      }\n\n      if (!Ember.isEmpty(this.get('editmodelcontext.attributes.address'))) {\n        assignsAttributes.push(...this.get('editmodelcontext.attributes.address'));\n      }\n\n      if (!Ember.isEmpty(this.get('editmodelcontext.attributes.area'))) {\n        assignsAttributes.push(...this.get('editmodelcontext.attributes.area'));\n      }\n\n      if (!Ember.isEmpty(this.get('editmodelcontext.attributes.region'))) {\n        assignsAttributes.push(...this.get('editmodelcontext.attributes.region'));\n      } //Edit Trip Assigned Attributes\n\n\n      if (!Ember.isEmpty(this.get('editmodelcontext.editAttributes.account'))) {\n        assignsAttributes.push(...this.get('editmodelcontext.editAttributes.account'));\n      }\n\n      if (!Ember.isEmpty(this.get('editmodelcontext.editAttributes.cli'))) {\n        assignsAttributes.push(...this.get('editmodelcontext.editAttributes.cli'));\n      }\n\n      if (!Ember.isEmpty(this.get('editmodelcontext.editAttributes.address'))) {\n        assignsAttributes.push(...this.get('editmodelcontext.editAttributes.address'));\n      }\n\n      if (!Ember.isEmpty(this.get('editmodelcontext.editAttributes.area'))) {\n        assignsAttributes.push(...this.get('editmodelcontext.editAttributes.area'));\n      }\n\n      if (!Ember.isEmpty(this.get('editmodelcontext.editAttributes.region'))) {\n        assignsAttributes.push(...this.get('editmodelcontext.editAttributes.region'));\n      }\n\n      if (!Ember.isEmpty(this.get('editmodelcontext.editAttributes.editTrip'))) {\n        assignsAttributes.push(...this.get('editmodelcontext.editAttributes.editTrip'));\n      }\n\n      if (!Ember.isEmpty(this.get('manualAttributes'))) {\n        assignsAttributes.push(...this.get('manualAttributes'));\n      } // Attributes unique and attribute notes population\n\n\n      assignsAttributes.forEach(function (item) {\n        if (!assigns.isAny('type', item.get('type'))) {\n          assigns.addObject(item);\n        }\n      });\n      return assigns;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/mixins/trip-predefined-notes\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Mixin.create({\n    // eslint-disable-next-line ember/use-brace-expansion\n    predefinedNotes: Ember.computed('account', 'attributes.[]', 'editmodelcontext.predefinedDriverNotes.account', 'editmodelcontext.predefinedDriverNotes.address', 'editmodelcontext.predefinedDriverNotes.area', 'editmodelcontext.predefinedDriverNotes.cli', 'editmodelcontext.predefinedDriverNotes.editTrip', 'editmodelcontext.predefinedOperatorNotes.account', 'editmodelcontext.predefinedOperatorNotes.address', 'editmodelcontext.predefinedOperatorNotes.area', 'editmodelcontext.predefinedOperatorNotes.cli', 'editmodelcontext.predefinedOperatorNotes.editTrip', function () {\n      //Account,cli,Address,unit, building,region.area and attribute  could have driver/operator notes associated with.\n      const notesSeparator = '\\\\';\n      let driverNotes = [];\n      let operatorNotes = []; //Attributes Driver and operatornotes\n\n      if (!Ember.isBlank(this.get('attributes'))) {\n        // Attribute notes population\n        this.get('attributes').forEach(function (item) {\n          if (!Ember.isBlank(item.get('notes.driver'))) {\n            driverNotes.push(item.get('notes.driver'));\n          }\n\n          if (!Ember.isBlank(item.get('notes.dispatcher'))) {\n            operatorNotes.push(item.get('notes.dispatcher'));\n          }\n        });\n      } //Driver Notes population\n\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedDriverNotes.account'))) {\n        driverNotes.push(this.get('editmodelcontext.predefinedDriverNotes.account'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedDriverNotes.cli'))) {\n        driverNotes.push(this.get('editmodelcontext.predefinedDriverNotes.cli'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedDriverNotes.address'))) {\n        driverNotes.push(this.get('editmodelcontext.predefinedDriverNotes.address'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedDriverNotes.unit'))) {\n        driverNotes.push(this.get('editmodelcontext.predefinedDriverNotes.unit'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedDriverNotes.building'))) {\n        driverNotes.push(this.get('editmodelcontext.predefinedDriverNotes.building'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedDriverNotes.area'))) {\n        driverNotes.push(this.get('editmodelcontext.predefinedDriverNotes.area'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedDriverNotes.region'))) {\n        driverNotes.push(this.get('editmodelcontext.predefinedDriverNotes.region'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedDriverNotes.editTrip'))) {\n        driverNotes.push(this.get('editmodelcontext.predefinedDriverNotes.editTrip'));\n      } //Operator Notes population\n\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedOperatorNotes.account'))) {\n        operatorNotes.push(this.get('editmodelcontext.predefinedOperatorNotes.account'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedOperatorNotes.cli'))) {\n        operatorNotes.push(this.get('editmodelcontext.predefinedOperatorNotes.cli'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedOperatorNotes.address'))) {\n        operatorNotes.push(this.get('editmodelcontext.predefinedOperatorNotes.address'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedOperatorNotes.unit'))) {\n        operatorNotes.push(this.get('editmodelcontext.predefinedOperatorNotes.unit'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedOperatorNotes.building'))) {\n        operatorNotes.push(this.get('editmodelcontext.predefinedOperatorNotes.building'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedOperatorNotes.area'))) {\n        operatorNotes.push(this.get('editmodelcontext.predefinedOperatorNotes.area'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedOperatorNotes.region'))) {\n        operatorNotes.push(this.get('editmodelcontext.predefinedOperatorNotes.region'));\n      }\n\n      if (!Ember.isBlank(this.get('editmodelcontext.predefinedOperatorNotes.editTrip'))) {\n        operatorNotes.push(this.get('editmodelcontext.predefinedOperatorNotes.editTrip'));\n      }\n\n      return {\n        driverNotes: driverNotes.join(notesSeparator),\n        operatorNotes: operatorNotes.join(notesSeparator)\n      };\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/mixins/zone-label\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Mixin.create({\n    label: Ember.computed('zonestat', 'name', function () {\n      ////console.log('zone-label ');\n      let zonestat = this.get('zonestat');\n      let label = ''; ////console.log('zonestat asap ',zonestat.get('asap'));\n\n      if (zonestat) {\n        label = '<table  style=\"position:relative;\"><tr></tr><tr>' + '<td rowspan=\"2\" style=\"font-weight: bold; font-size: 2em;text-align: center;opacity:0.4;\">' + this.get('name') + '</td>' +\n        /* '<td><img src=\"/zones-icons/icon_asap.png\"/></td>'+\n         '<td>'+zonestat.get('asap')+'</td>'+\n         '</tr><tr>'+\n         '<td><img src=\"/zones-icons/icon_auction.png\"/></td>'+\n         '<td>'+zonestat.get('auction')+'</td> '+*/\n        '</tr></table>';\n      } else {\n        label = '<table  style=\"position:relative;\"><tr></tr><tr>' + '<td rowspan=\"2\" style=\"font-weight: bold; font-size: 2em;text-align: center;opacity:0.4;\">' + this.get('name') + '</td>' +\n        /*'<td><img src=\"/zones-icons/icon_asap.png\"/></td>'+\n        '<td>0</td>'+\n        '</tr><tr>'+\n        '<td><img src=\"/zones-icons/icon_auction.png\"/></td>'+\n        '<td>0</td>'+*/\n        '</tr></table>';\n      }\n\n      return label;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/mixins/zone-style\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Mixin.create({\n    status: Ember.computed('asap', function () {\n      const jobCount = this.get('asap');\n\n      if (jobCount) {\n        let freeVehicle = 0;\n\n        if (!Ember.isBlank(this.get('freeVehicle'))) {\n          freeVehicle = this.get('freeVehicle');\n        }\n\n        let stcVehicle = 0;\n\n        if (!Ember.isBlank(this.get('stcVehicle'))) {\n          stcVehicle = this.get('stcVehicle');\n        }\n\n        const totalAvailableVehicle = freeVehicle + stcVehicle;\n\n        if (jobCount > totalAvailableVehicle) {\n          return 'high';\n        } else if (jobCount > freeVehicle) {\n          return 'medium';\n        } else {\n          return 'normal';\n        }\n      } else {\n        return 'normal';\n      }\n    }),\n    style: Ember.computed.alias('status')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/-pick-drop\", [\"exports\", \"ember-data-model-fragments\", \"ember-data\"], function (_exports, _emberDataModelFragments, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    attr\n  } = _emberData.default;\n\n  var _default = _emberDataModelFragments.default.Fragment.extend({\n    type: attr('string'),\n    location: _emberDataModelFragments.default.fragment('location')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/POI\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    hasMany,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    type: attr(),\n    id: attr(),\n    score: attr(),\n    dist: attr(),\n    info: attr(),\n    poi: attr,\n    address: attr(),\n    position: attr(),\n    viewport: attr(),\n    entryPoints: attr(),\n    name: attr(),\n    freeformAddress: attr(),\n    municipalitySubdivision: attr()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/account\", [\"exports\", \"ember-data\", \"ember-data/relationships\", \"adept-iq/config/environment\"], function (_exports, _emberData, _relationships, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  function formatTextExtension(className, value) {\n    return {\n      className: className,\n      value: value\n    };\n  }\n\n  var _default = Model.extend({\n    effectiveDTM: attr('date'),\n    expiryDTM: attr('date'),\n    location: attr(),\n    acctName: attr('string'),\n    acctCode: attr('string'),\n    acctCardNr: attr('string'),\n    city: attr('string'),\n    trips: (0, _relationships.hasMany)('trip'),\n    requestTime: attr('date'),\n    phoneNr: attr('string'),\n    balance: attr('string'),\n    creditLimit: attr('string'),\n    contactName: attr('string'),\n    driverNotes: attr('string'),\n    operatorNotes: attr('string'),\n    tripsRemaining: attr('number'),\n    tripLimit: attr('string'),\n    defaultFixedPriceTripsId: attr(),\n    defaultFavoritePickupId: attr(),\n    defaultFavoriteTripId: attr(),\n    favoriteTrips: (0, _relationships.hasMany)('favorite-trip'),\n    favoritePickups: Ember.computed('favoriteTrips', function () {\n      if (!Ember.isEmpty(this.get('favoriteTrips'))) {\n        return this.get('favoriteTrips').filterBy('priceType', 'normal');\n      } else {\n        return null;\n      }\n    }),\n    fixedPriceTrips: Ember.computed('favoriteTrips', function () {\n      //console.log('defaultFavoritePickup favoritePickups',this.get('favoritePickups'));\n      //console.log('defaultFavoritePickup defaultFavoritePickupId',this.get('defaultFavoritePickupId'));\n      if (!Ember.isEmpty(this.get('favoriteTrips'))) {\n        return this.get('favoriteTrips').filterBy('priceType', 'fixedPrice');\n      } else {\n        return null;\n      }\n    }),\n    callLines: (0, _relationships.hasMany)('call-line'),\n    requiredAttributes: attr(),\n    requiredAttributesList: Ember.computed('requiredAttributes.[]', function () {\n      return Array.prototype.map.call(this.get('requiredAttributes'), attribute => attribute.type).toString();\n    }),\n    defaultFixedPriceTrip: Ember.computed('favoriteTrips@each', 'defaultFavoriteTripId', function () {\n      //console.log('defaultFixedPriceTrip fixedPriceTrips',this.get('fixedPriceTrips'));\n      //console.log('defaultFixedPriceTrip defaultFixedPriceTripsId',this.get('defaultFixedPriceTripsId'));\n      if (!Ember.isEmpty(this.get('favoriteTrips')) && !Ember.isBlank(this.get('defaultFavoriteTripId'))) {\n        //console.log('isndie defaultFixedPriceTripsId',this.get('fixedPriceTrips').filterBy('id', this.get('defaultFixedPriceTripsId')));\n        return this.get('favoriteTrips').findBy('id', this.get('defaultFavoriteTripId'));\n      } else {\n        return null;\n      }\n    }),\n    defaultFavoritePickup: Ember.computed('favoriteTrips@each', 'defaultFavoriteTripId', function () {\n      //console.log('defaultFavoritePickup favoritePickups',this.get('favoritePickups'));\n      //console.log('defaultFavoritePickup defaultFavoritePickupId',this.get('defaultFavoritePickupId'));\n      if (!Ember.isEmpty(this.get('favoriteTrips')) && !Ember.isBlank(this.get('defaultFavoriteTripId'))) {\n        return this.get('favoriteTrips').findBy('id', this.get('defaultFavoriteTripId'));\n      } else {\n        return null;\n      }\n    }),\n    formattedFavoriteTripsPickup: Ember.computed('defaultFavoriteTrip@each', function () {\n      let addresses = [];\n\n      if (!Ember.isEmpty(this.get('favoriteTrips'))) {\n        this.get('favoriteTrips').forEach(function (item) {\n          const pickupAddress = item.get('pickAddress');\n\n          if (pickupAddress.get('streetNr') !== undefined && pickupAddress.get('streetName') !== undefined) {\n            addresses.push(formatTextExtension('valueItem', `${pickupAddress.get('streetNr')} ${pickupAddress.get('streetName')} ${pickupAddress.get('region')}`));\n          }\n        });\n      }\n\n      return {\n        values: addresses\n      };\n    }),\n    accountAddresses: Ember.computed('favoritePickups@each', function () {\n      let addresses = [];\n\n      if (!Ember.isEmpty(this.get('favoritePickups'))) {\n        this.get('favoritePickups').forEach(function (item) {\n          addresses.push(item.get('pickAddress'));\n        });\n      }\n\n      return addresses;\n    })\n    /*,\n    workspacetrips: computed('trips@each', function() {\n      if(!isEmpty(this.get('trips'))) {\n        return this.get('trips').filter(function(item) {\n           return (ENV.workspaceContext.startDate < item.get('requestTime') &&\n                    (ENV.workspaceContext.endDate > item.get('requestTime')));\n      });\n    } else {\n      return [];\n    }\n    }),\n    sortedtrips :computed('workspacetrips.[]',function()\n    {\n    return this.get('workspacetrips').sortBy('requestTime');\n    }),\n    latesttripDate: computed('sortedtrips.[]', function() {\n    if(!isEmpty(this.get('sortedtrips'))) {\n      return this.get('sortedtrips').lastObject.get('requestTime');\n    }\n    return null;\n    }),\n    firsttripDate: computed('sortedtrips.[]', function() {\n    if(!isEmpty(this.get('sortedtrips'))) {\n      return this.get('sortedtrips').firstObject.get('requestTime');\n    }\n    return null;\n    })  */\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/activity-log\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    type: attr('string'),\n    timestamp: attr('date'),\n    description: attr('string'),\n    route: belongsTo()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/address-lookup\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    hasMany,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    address: attr(),\n    cord: attr(),\n    requiredAttributes: attr(),\n    zoneId: attr(),\n    notes: attr(),\n    leadTime: attr(),\n    zoneName: attr()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/address\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    hasMany,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    alias: attr('string', {\n      defaultValue: ''\n    }),\n    description: attr('string', {\n      defaultValue: ''\n    }),\n    streetNr: attr('string'),\n    streetName: attr('string'),\n    city: attr('string'),\n    locality: attr('string'),\n    region: attr('string'),\n    subRegion: attr('string'),\n    postOfficeBoxNumber: attr('string'),\n    postalCode: attr('string'),\n    country: attr('string'),\n    notes: attr('string'),\n    locations: hasMany('location'),\n    favoritePick: belongsTo('favorite-pickup', {\n      inverse: 'pickAddress'\n    }),\n    fixedPricePick: belongsTo('fixed-price-trip'),\n    fixedPriceDrop: belongsTo('fixed-price-trip'),\n    favoriteTripPick: belongsTo('favorite-trip'),\n    favoriteTripDrop: belongsTo('favorite-trip'),\n    callLineAddress: belongsTo('call-line', {\n      inverse: 'address'\n    }),\n    lat: Ember.computed.alias('coord.lat'),\n    lng: Ember.computed.alias('coord.lng'),\n    coord: attr(),\n    geoNode: Ember.computed.alias('coord.geoNode', {\n      defaultValue: 0\n    }),\n    latlng: Ember.computed('coord', function () {\n      return `${this.get('coord.lat')}/${this.get('coord.lng')}`;\n    }),\n    location: Ember.computed('locations', function () {\n      return Ember.get(this, 'locations').objectAt(0);\n    }),\n    tomtomFormattedAddress: Ember.computed('streetNr', 'streetName', 'region', function () {\n      let address = null;\n\n      if (this.get('streetName') !== undefined) {\n        address = {\n          address: {\n            freeformAddress: `${this.get('streetNr')} ${this.get('streetName')} ${this.get('region')}`\n          }\n        };\n      }\n\n      return address;\n    }),\n    address: Ember.computed('alias', 'streetNr', 'streetName', 'region', function () {\n      let address = null;\n\n      if (this.get('streetName') !== undefined) {\n        address = {\n          freeformAddress: `${this.get('alias')} ${this.get('streetNr')} ${this.get('streetName')} ${this.get('region')}`\n        };\n      }\n\n      return address;\n    }),\n    fullAddress: Ember.computed('streetNr', 'streetName', 'locality', 'region', 'postalCode', 'alias', function () {\n      const alias = Ember.get(this, 'alias');\n      const streetNr = Ember.get(this, 'streetNr');\n      const streetAddress = Ember.get(this, 'streetName');\n      const locality = Ember.get(this, 'region');\n      const region = Ember.get(this, 'region');\n      const postalCode = Ember.get(this, 'postalCode');\n      const address = [];\n\n      if (alias) {\n        address.push(alias + ',');\n      }\n\n      address.push(streetNr);\n      address.push(streetAddress);\n      const result = [address.join(' ')];\n      result.push(locality);\n      result.push(region);\n      result.push(postalCode);\n      return result.join(', ');\n    }).readOnly()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/agency-marker\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    lat: attr('number'),\n    lng: attr('number'),\n    options: attr('object')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/alert\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    generatedAt: attr('date'),\n    alert: attr('string'),\n    category: attr('string'),\n    vehicles: attr('vehicle', {\n      inverse: null\n    }),\n    drivers: attr('driver', {\n      inverse: null\n    }),\n    routes: attr('route', {\n      inverse: null\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/attribute\", [\"exports\", \"ember-data\", \"ember-data-model-fragments\"], function (_exports, _emberData, _emberDataModelFragments) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    attr\n  } = _emberData.default;\n\n  var _default = _emberDataModelFragments.default.Fragment.extend({\n    name: attr('string'),\n    key: attr('string')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/attributes\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    provider: attr(),\n    name: attr(),\n    description: attr(),\n    type: attr(),\n    displayName: attr(),\n    datum: attr()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/avl\", [\"exports\", \"ember-data\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _emberData, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    lat: (0, _attr.default)('number'),\n    lng: (0, _attr.default)('number'),\n    heading: (0, _attr.default)('number'),\n    speed: (0, _attr.default)('number'),\n    odo: (0, _attr.default)('number'),\n    timestamp: (0, _attr.default)('date'),\n    // we add this in because `id` gets replaced with a composite key\n    vehicleId: (0, _attr.default)('string'),\n    vehicle: (0, _relationships.belongsTo)('vehicle', {\n      inverse: 'avl'\n    }),\n    localTimestamp: null,\n\n    init() {\n      this._super(...arguments);\n\n      this.set('localTimestamp', new Date());\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/avlm-driver\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend({\n    firstName: (0, _attr.default)('string'),\n    lastName: (0, _attr.default)('string'),\n    middleName: (0, _attr.default)('string'),\n    phoneNumber: (0, _attr.default)('string'),\n    iqDriver: (0, _relationships.belongsTo)(),\n    tmCannedMessages: (0, _relationships.hasMany)()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/avlm-route-exec-event\", [\"exports\", \"ember-data/model\", \"ember-data/attr\"], function (_exports, _model, _attr) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend({\n    trackingId: (0, _attr.default)('string'),\n    routeId: (0, _attr.default)('string'),\n    routeVersion: (0, _attr.default)('string'),\n    content: (0, _attr.default)('object'),\n    // TODO: map these to `avlm-driver`, `avlm-vehicle` associations\n    driver: (0, _attr.default)('object'),\n    vehicle: (0, _attr.default)('object')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/avlm-route\", [\"exports\", \"ember-data/model\", \"ember-data/relationships\"], function (_exports, _model, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend({\n    iqRoute: (0, _relationships.belongsTo)(),\n    tmCannedMessages: (0, _relationships.hasMany)()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/avlm-vehicle\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend({\n    name: (0, _attr.default)('string'),\n    mobileId: (0, _attr.default)('string'),\n    vehicleType: (0, _attr.default)('string'),\n    iqVehicle: (0, _relationships.belongsTo)(),\n    tmCannedMessages: (0, _relationships.hasMany)()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/break-type\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    name: attr('string'),\n    defaultDuration: attr('number'),\n    isPaid: attr('boolean'),\n    isRecognized: attr('boolean')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/bs-subscription-exclusion\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    startDate: attr('date', {\n      defaultValue: null\n    }),\n    endDate: attr('date', {\n      defaultValue: null\n    }),\n    subscription: belongsTo('bs-subscription')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/bs-subscription-recurrence-pattern\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n  const WOM_OPTIONS = {\n    first: 'first',\n    second: 'second',\n    third: 'third',\n    fourth: 'fourth',\n    last: 'last'\n  };\n\n  var _default = Model.extend({\n    type: attr('string'),\n    separationCount: attr('number', {\n      defaultValue: 1\n    }),\n    sunday: attr('boolean'),\n    monday: attr('boolean'),\n    tuesday: attr('boolean'),\n    wednesday: attr('boolean'),\n    thursday: attr('boolean'),\n    friday: attr('boolean'),\n    saturday: attr('boolean'),\n    dayOfMonth: attr('number', {\n      defaultValue: null\n    }),\n    weekOfMonth: attr('number', {\n      defaultValue: null\n    }),\n    monthOfYear: attr('number', {\n      defaultValue: null\n    }),\n    everyweekday: attr('string'),\n    pattern: attr('string'),\n    recurring: attr('boolean', {\n      defaultValue: true\n    }),\n    selectedDOWs: Ember.computed('sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', function () {\n      const selectedDOWArray = [];\n      if (this.get('sunday')) selectedDOWArray.push('sunday');\n      if (this.get('monday')) selectedDOWArray.push('monday');\n      if (this.get('tuesday')) selectedDOWArray.push('tuesday');\n      if (this.get('wednesday')) selectedDOWArray.push('wednesday');\n      if (this.get('thursday')) selectedDOWArray.push('thursday');\n      if (this.get('friday')) selectedDOWArray.push('friday');\n      if (this.get('saturday')) selectedDOWArray.push('saturday');\n      return selectedDOWArray;\n    }),\n    isEveryDay: Ember.computed('sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', function () {\n      return this.get('sunday') && this.get('monday') && this.get('tuesday') && this.get('wednesday') && this.get('thursday') && this.get('friday') && this.get('saturday');\n    }),\n    selectedWOM: Ember.computed('weekOfMonth', {\n      get()\n      /* key */\n      {\n        const weekOfMonth = this.get('weekOfMonth');\n\n        switch (weekOfMonth) {\n          case -1:\n            return WOM_OPTIONS.last;\n\n          case 1:\n            return WOM_OPTIONS.first;\n\n          case 2:\n            return WOM_OPTIONS.second;\n\n          case 3:\n            return WOM_OPTIONS.third;\n\n          case 4:\n            return WOM_OPTIONS.fourth;\n\n          default:\n            return null;\n        }\n      },\n\n      set(_, value) {\n        let weekOfMonth = null;\n\n        switch (value) {\n          case WOM_OPTIONS.last:\n            weekOfMonth = -1;\n            break;\n\n          case WOM_OPTIONS.first:\n            weekOfMonth = 1;\n            break;\n\n          case WOM_OPTIONS.second:\n            weekOfMonth = 2;\n            break;\n\n          case WOM_OPTIONS.third:\n            weekOfMonth = 3;\n            break;\n\n          case WOM_OPTIONS.fourth:\n            weekOfMonth = 4;\n            break;\n\n          default:\n            weekOfMonth = null;\n        }\n\n        this.set('weekOfMonth', weekOfMonth);\n        return value;\n      }\n\n    }),\n    subscriptionStartDate: Ember.computed('subscription.startDate', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.startDate');\n      },\n\n      set(_, value) {\n        this.set('subscription.startDate', value);\n        return value;\n      }\n\n    }),\n    subscriptionEndDate: Ember.computed('subscription.endDate', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.endDate');\n      },\n\n      set(_, value) {\n        this.set('subscription.endDate', value);\n        return value;\n      }\n\n    }),\n    subscriptionMaxOccurences: Ember.computed('subscription.maximumOccurrences', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.maximumOccurrences');\n      },\n\n      set(_, value) {\n        this.set('subscription.maximumOccurrences', value);\n        return value;\n      }\n\n    }),\n    exclusionStartDate: Ember.computed('subscription.exclusions.firstObject.startDate', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.exclusions.firstObject.startDate');\n      },\n\n      set(_, value) {\n        this.set('subscription.exclusions.firstObject.startDate', value);\n        return value;\n      }\n\n    }),\n    exclusionEndDate: Ember.computed('subscription.exclusions.firstObject.endDate', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.exclusions.firstObject.endDate');\n      },\n\n      set(_, value) {\n        this.set('subscription.exclusions.firstObject.endDate', value);\n        return value;\n      }\n\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/bs-subscription-travel-need\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n  const SubscriptionTravelNeed = Model.extend({\n    count: attr('number'),\n    subscription: belongsTo('bs-subscription'),\n    travelNeedType: belongsTo('bs-travel-need-type'),\n    passengerType: belongsTo('bs-passenger-type'),\n    isClient: Ember.computed.equal('passengerType.name', 'client'),\n    isPca: Ember.computed.equal('passengerType.name', 'pca'),\n    isCompanion: Ember.computed.equal('passengerType.name', 'companion'),\n    basicTravelNeedType: Ember.computed('travelNeedType', function () {\n      const name = Ember.get(this, 'travelNeedType.name');\n      return name === 'ambulatory' || name === 'wideAmbulatory' || name === 'wheelchair' || name === 'wideWheelchair';\n    }),\n    isEquipment: Ember.computed('travelNeedType', function () {\n      return !this.get('travelNeedType.isServiceAnimal');\n    }),\n    isExtraPassenger: Ember.computed('travelNeedType', function () {\n      return this.get('travelNeedType.isServiceAnimal');\n    })\n  });\n  var _default = SubscriptionTravelNeed;\n  _exports.default = _default;\n});","define(\"adept-iq/models/bs-subscription\", [\"exports\", \"ember-data\", \"ember-data/relationships\", \"lodash\"], function (_exports, _emberData, _relationships, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    sample\n  } = _lodash.default;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n\n  function formatTextExtension(className, value) {\n    return {\n      className: className,\n      value: value\n    };\n  }\n\n  var _default = Model.extend({\n    requestTime: attr('date'),\n    anchor: attr('string'),\n    purpose: attr('string'),\n    origin: belongsTo('bs-location'),\n    destination: belongsTo('bs-location'),\n    fare: attr('number'),\n    originNotes: attr('string'),\n    destinationNotes: attr('string'),\n    startDate: attr('date', {\n      defaultValue: null\n    }),\n    endDate: attr('date', {\n      defaultValue: null\n    }),\n    maximumOccurrences: attr('number'),\n    remainingOccurrences: 0,\n    rider: belongsTo('bs-rider'),\n    subscriptionTravelNeeds: (0, _relationships.hasMany)('bs-subscription-travel-need'),\n    fareType: belongsTo('bs-fare-type'),\n    exclusions: (0, _relationships.hasMany)('bs-subscription-exclusion'),\n    recurrencePatterns: (0, _relationships.hasMany)('bs-subscription-recurrence-pattern'),\n    serviceWindowName: attr('string'),\n    serviceWindow: belongsTo('bs-service-window'),\n    status: Ember.computed('', function () {\n      return sample(['Paused', 'Active']);\n    }),\n    origins: Ember.computed('origin', function () {\n      return [this.get('origin.content')];\n    }),\n    destinations: Ember.computed('destination', function () {\n      return [this.get('destination.content')];\n    }),\n    equipments: Ember.computed.filterBy('subscriptionTravelNeeds', 'isEquipment', true),\n    extraPassengers: Ember.computed.filterBy('subscriptionTravelNeeds', 'isExtraPassenger', true),\n    formattedRecurrence: Ember.computed('recurrencePatterns', function () {\n      let formattedObject = {\n        header: null,\n        values: []\n      };\n      let recurrencePatterns = this.get('recurrencePatterns.firstObject');\n      const selectedDOWArray = [];\n\n      if (recurrencePatterns.get('sunday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Monday`));\n      }\n\n      if (recurrencePatterns.get('monday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Tuesday`));\n      }\n\n      if (recurrencePatterns.get('tuesday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Wednesday`));\n      }\n\n      if (recurrencePatterns.get('wednesday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Thursday`));\n      }\n\n      if (recurrencePatterns.get('thursday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Friday`));\n      }\n\n      if (recurrencePatterns.get('friday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Saturday`));\n      }\n\n      if (recurrencePatterns.get('saturday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Sunday`));\n      }\n\n      formattedObject.values = selectedDOWArray;\n      return formattedObject;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/call-line\", [\"exports\", \"ember-data\", \"ember-data/relationships\"], function (_exports, _emberData, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    address: (0, _relationships.belongsTo)('address', {\n      inverse: 'callLineAddress'\n    }),\n    account: (0, _relationships.belongsTo)('account')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/cancel-type\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    code: attr('string'),\n    externalCode: attr('string'),\n    description: attr('string'),\n    name: Ember.computed.alias('description')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/cluster\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo,\n    hasMany\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    distance: attr('number'),\n    endTime: attr('date'),\n    headCount: attr('number'),\n    ordinal: attr('number'),\n    startTime: attr('date'),\n    state: attr('string'),\n    route: belongsTo(),\n    schedule: belongsTo(),\n    trips: hasMany(),\n    orderedStops: Ember.computed('trips.@each.ordinalStops', function () {\n      const ordinalStops = this.get('trips').reduce((arr, trip) => {\n        const stops = trip.get('ordinalStops');\n        arr.push(...stops);\n        return arr;\n      }, []);\n      return ordinalStops.sortBy('ordinal');\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/coord\", [\"exports\", \"ember-data\", \"ember-data-model-fragments\"], function (_exports, _emberData, _emberDataModelFragments) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/coord.js */\n  var _default = _emberDataModelFragments.default.Fragment.extend({\n    lat: _emberData.default.attr('number'),\n    lng: _emberData.default.attr('number'),\n    address: _emberData.default.belongsTo('address')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/cs-config-category\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend({\n    name: (0, _attr.default)('string'),\n    depth: (0, _attr.default)('number'),\n    parent: (0, _relationships.belongsTo)('cs-config-category', {\n      inverse: 'children'\n    }),\n    children: (0, _relationships.hasMany)('cs-config-category', {\n      inverse: 'parent'\n    }),\n    configItems: (0, _relationships.hasMany)('cs-config-item'),\n    categoryChain: Ember.computed('parent.categoryChain', function () {\n      let categoryChain = [];\n      const parent = this.get('parent');\n\n      if (parent && parent.get('id')) {\n        categoryChain = parent.get('categoryChain');\n      }\n\n      categoryChain.push(this);\n      return categoryChain;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/cs-config-item\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend({\n    // these determine the `id` when persisted\n    category: (0, _attr.default)('string'),\n    name: (0, _attr.default)('string'),\n    description: (0, _attr.default)('string'),\n    unit: (0, _attr.default)('string'),\n    type: (0, _attr.default)('string'),\n    value: (0, _attr.default)('object'),\n    defaultValue: (0, _attr.default)('object'),\n    configCategory: (0, _relationships.belongsTo)('cs-config-category'),\n    valueString: Ember.computed('value', function () {\n      return JSON.stringify(this.get('value'));\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/cs-config-permission\", [\"exports\", \"ember-data/model\", \"ember-data/attr\"], function (_exports, _model, _attr) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend({\n    name: (0, _attr.default)('string'),\n    value: (0, _attr.default)('object'),\n    isFullAccessTimeline: Ember.computed('value.timeline', function () {\n      return this.get('value').timeline[0] === 'fullAccess';\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/dashboard\", [\"exports\", \"ember-data\", \"adept-iq/classes/dashboard-instance\", \"lodash\", \"moment\"], function (_exports, _emberData, _dashboardInstance, _lodash, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n  const CLONEABLE_PROPERTIES = ['name', 'role', 'startDate', 'endDate', 'referenceDate', 'mapState', 'widgets'];\n\n  var _default = Model.extend({\n    name: attr('string', {\n      defaultValue: 'Untitled'\n    }),\n    role: attr('string', {\n      defaultValue: 'Dispatch'\n    }),\n    // 'workspaces-{users,default,admin}'; can't be changed once saved\n    category: attr('string', {\n      defaultValue: 'workspaces-users'\n    }),\n    // absolute timeframe as selected by user\n    startDate: attr('date', {\n      defaultValue: () => (0, _moment.default)().startOf('day').subtract(1, 'day').toDate() //moment(Date.now()).subtract(3, 'hours')\n\n    }),\n    endDate: attr('date', {\n      defaultValue: () => (0, _moment.default)().startOf('day').toDate()\n    }),\n    // when `startDate` or `endDate` is modified, store the user's current date\n    // so that the relative timeframe can be calculated from a later date\n    referenceDate: attr('date', {\n      defaultValue: () => (0, _moment.default)(Date.now()).subtract(3, 'hours')\n    }),\n    mapState: attr('object', {\n      defaultValue: () => {}\n    }),\n    widgets: attr('object', {\n      defaultValue: () => []\n    }),\n    isDefaultWorkspace: Ember.computed.equal('category', 'workspaces-users'),\n\n    configureWidgetsOnPermission() {\n      const configPermissions = this.store.peekAll('cs-config-permission').get('firstObject.value');\n      const widgets = [];\n      this.get('widgets').forEach(widget => {\n        let configPermission;\n\n        if (!Ember.isNone(configPermissions)) {\n          configPermission = configPermissions[widget.typeId];\n        } //if (!isNone(configPermission) && configPermission.show) {\n\n\n        widgets.push(widget); //}\n      });\n      return widgets;\n    },\n\n    makeInstance() {\n      const widgets = this.configureWidgetsOnPermission();\n\n      const instance = _dashboardInstance.default.deserialize({\n        schemaVersion: 1,\n        attributes: {\n          id: this.get('id'),\n          name: this.get('name'),\n          role: this.get('role'),\n          startDate: this.get('startDate'),\n          endDate: this.get('endDate'),\n          referenceDate: this.get('referenceDate'),\n          mapState: this.get('mapState'),\n          widgets: widgets\n        }\n      });\n\n      instance.set('model', this);\n      return instance;\n    },\n\n    commitInstance(instance) {\n      const {\n        attributes\n      } = instance.serialize();\n      const {\n        name,\n        role,\n        startDate,\n        endDate,\n        referenceDate,\n        mapState,\n        widgets\n      } = attributes;\n      this.setProperties({\n        name,\n        role,\n        startDate: new Date(startDate),\n        endDate: new Date(endDate),\n        referenceDate: new Date(referenceDate),\n        mapState,\n        widgets\n      });\n    },\n\n    getOptionsForClone() {\n      return _lodash.default.cloneDeep(this.getProperties(CLONEABLE_PROPERTIES));\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/driver-break-event\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    type: attr('string'),\n    timestamp: attr('date'),\n    lat: Ember.computed.alias('coord.lat'),\n    lng: Ember.computed.alias('coord.lng'),\n    coord: belongsTo('coord'),\n    heading: attr('number'),\n    speed: attr('number'),\n    odometer: attr('number')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/driver-break\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    hasMany,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    driverBreakId: attr('number'),\n    externalId: attr('string'),\n    state: attr('string'),\n    ordinal: attr('number'),\n    promisedStart: attr('date'),\n    estimatedStart: attr('date'),\n    estimatedEnd: attr('date'),\n    plannedDuration: attr('number'),\n    notes: attr('string', {\n      defaultValue: ''\n    }),\n    driverBreakEvents: hasMany(),\n    breakType: belongsTo(),\n    place: belongsTo(),\n    route: belongsTo(),\n    schedule: belongsTo(),\n    actualArrivalTime: attr('date'),\n    actualDepartTime: attr('date'),\n    odometer: attr('number'),\n    plannedDepartTime: attr('date'),\n    serviceWindow: attr('string'),\n    breakStartTime: attr('date'),\n    breakEndTime: attr('date'),\n    BreakType: attr('string'),\n    BreakCategory: attr('string'),\n    eventtype: 'driver-break',\n    promisedEnd: attr('date'),\n    places: Ember.computed('place', function () {\n      return [this.get('place')];\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/driver-event\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    type: attr('string'),\n    timestamp: attr('date'),\n    lat: Ember.computed.alias('coord.lat'),\n    lng: Ember.computed.alias('coord.lng'),\n    coord: belongsTo('coord'),\n    heading: attr('number'),\n    speed: attr('number'),\n    odometer: attr('number'),\n    driverShift: belongsTo(),\n    location: Ember.computed.collect('lat', 'lng')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/driver-shift\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    hasMany,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    plannedStartTime: attr('date'),\n    plannedEndTime: attr('date'),\n    driver: belongsTo(),\n    vehicleRoute: belongsTo('vehicleRoute', {\n      inverse: 'driverShifts'\n    }),\n    driverEvents: hasMany()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/driver-state\", [\"exports\", \"ember-data\", \"adept-iq/mixins/otp-label\", \"adept-iq/mixins/status-value\"], function (_exports, _emberData, _otpLabel, _statusValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    attr,\n    hasMany\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    status: attr('string'),\n    vehicle: belongsTo('vehicle'),\n    offset: attr(),\n    trip: hasMany('trip'),\n    driver: belongsTo('driver', {\n      inverse: 'driverState'\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/driver\", [\"exports\", \"ember-data\", \"adept-iq/mixins/otp-label\", \"adept-iq/mixins/status-value\"], function (_exports, _emberData, _otpLabel, _statusValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    hasMany,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend(_statusValue.default, {\n    badgeNr: attr('number'),\n    name: attr('string'),\n    firstName: attr('string'),\n    middleName: attr('string'),\n    lastName: attr('string'),\n    attributes: attr(),\n    travelTimeAdjustment: attr('number'),\n    suspensionType: attr('string'),\n    signOnDTM: attr('date'),\n    signOffDTM: attr('date'),\n    phoneNumber: attr('string'),\n    active: attr('boolean'),\n    vehicle: Ember.computed('driverState.content.vehicle', 'drivedStatus', function () {\n      let driverState = this.get('driverState.content');\n\n      if (driverState) {\n        if (this.get('driverStatus') === 'Sign Off') {\n          return null;\n        }\n\n        return driverState.get('vehicle');\n      }\n\n      return null;\n    }),\n    attributesList: Ember.computed('attributes.[]', function () {\n      if (!Ember.isEmpty(this.get('attributes'))) {\n        return Array.prototype.map.call(this.get('attributes'), attribute => attribute.type).toString();\n      } else {\n        return [];\n      }\n    }),\n    suspensionFlag: Ember.computed('suspensionType', function () {\n      if (this.get('suspensionType')) {\n        return true;\n      }\n\n      return false;\n    }),\n    schedule: belongsTo(),\n    provider: belongsTo(),\n    driverState: belongsTo('driver-state', {\n      inverse: 'driver'\n    }),\n    status: attr('string'),\n    trip: belongsTo('trip'),\n    drivedStatus: Ember.computed('status', 'driverState.content.status', function () {\n      let driverState = this.get('driverState.content');\n\n      if (driverState) {\n        return driverState.get('status');\n      }\n\n      return this.get('status');\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/eligibility-type\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    name: attr('string')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/fare-type\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    name: attr('string')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/favorite-pickup\", [\"exports\", \"ember-data\", \"ember-data/relationships\"], function (_exports, _emberData, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    amount: attr(),\n    referenceCode: attr(),\n    pickAddress: (0, _relationships.belongsTo)('address', {\n      inverse: 'favoritePick'\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/favorite-trip\", [\"exports\", \"ember-data\", \"ember-data/relationships\"], function (_exports, _emberData, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    amount: attr(),\n    referenceCode: attr(),\n    priceType: attr(),\n    pickAddress: (0, _relationships.belongsTo)('address', {\n      inverse: 'favoriteTripPick'\n    }),\n    dropAddress: (0, _relationships.belongsTo)('address', {\n      inverse: 'favoriteTripDrop'\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/fixed-price-trip\", [\"exports\", \"ember-data\", \"ember-data/relationships\"], function (_exports, _emberData, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    amount: attr(),\n    referenceCode: attr(),\n    defaultFlag: attr(),\n    pickAddress: (0, _relationships.belongsTo)('address', {\n      inverse: 'fixedPricePick'\n    }),\n    dropAddress: (0, _relationships.belongsTo)('address', {\n      inverse: 'fixedPriceDrop'\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/invitation\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    email: attr('string'),\n    isAdmin: attr('boolean'),\n    isUsed: attr('boolean'),\n    isExpired: attr('boolean')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/iq-driver\", [\"exports\", \"ember-data\", \"ember-data/relationships\", \"ember-data/attr\"], function (_exports, _emberData, _relationships, _attr) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    driver: (0, _relationships.belongsTo)('driver', {\n      inverse: 'iqDriver'\n    }),\n    status: Ember.computed.alias('driver.status'),\n    statusValue: Ember.computed.alias('driver.statusValue')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/iq-rider\", [\"exports\", \"ember-data\", \"ember-data/relationships\"], function (_exports, _emberData, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    rider: (0, _relationships.belongsTo)('rider', {\n      inverse: 'iqRider'\n    }),\n    trips: Ember.computed.alias('rider.trips')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/iq-route\", [\"exports\", \"ember-data/model\", \"ember-data/relationships\"], function (_exports, _model, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend({\n    dsRoute: (0, _relationships.belongsTo)('route'),\n    avlmRoute: (0, _relationships.belongsTo)()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/iq-stop\", [\"exports\", \"ember-data/model\", \"ember-data/relationships\", \"adept-iq/mixins/otp-label\", \"adept-iq/mixins/status-value\", \"lodash\"], function (_exports, _model, _relationships, _otpLabel, _statusValue, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    sample\n  } = _lodash.default;\n\n  var _default = _model.default.extend(_otpLabel.default, _statusValue.default, {\n    stop: (0, _relationships.belongsTo)('stop', {\n      inverse: 'iqStop'\n    }),\n    lat: Ember.computed.alias('stop.place.lat'),\n    lng: Ember.computed.alias('stop.place.lng'),\n    otp: Ember.computed('', function () {\n      return sample(['O', 'L', 'D', 'E']);\n    }),\n    otpValue: Ember.computed('', function () {\n      return sample(['O', 'L', 'D', 'E']);\n    }),\n    status: Ember.computed.alias('stop.trip.iqTrip.status')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/iq-trip\", [\"exports\", \"ember-data/model\", \"ember-data/relationships\", \"adept-iq/mixins/otp-label\", \"adept-iq/mixins/status-value\", \"lodash\"], function (_exports, _model, _relationships, _otpLabel, _statusValue, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    sample\n  } = _lodash.default;\n\n  var _default = _model.default.extend(_statusValue.default, {\n    trip: (0, _relationships.belongsTo)('trip', {\n      inverse: 'iqTrip'\n    }),\n    tripExecEvent: (0, _relationships.belongsTo)('trip-exec-event', {\n      inverse: 'iqTrip'\n    }),\n    otp: Ember.computed('', function () {\n      return sample(['O', 'L', 'D', 'E']);\n    }),\n    otpValue: Ember.computed('', function () {\n      return sample(['O', 'L', 'D', 'E']);\n    }),\n    bookingType: Ember.computed('trip.bookingType', function () {\n      return this.get('trip.bookingType');\n    }),\n    paymentype: Ember.computed('', function () {\n      return this.get('trip.paymentType');\n    }),\n    status: Ember.computed('trip.content.tripStatus', 'tripExecEvent.content.status', function () {\n      let tripExecEvent = this.get('tripExecEvent.content');\n\n      if (this.get('trip.tripStatus') === 'completed' || this.get('trip.tripStatus') === 'cancelled') {\n        return this.get('trip.tripStatus');\n      }\n\n      if (tripExecEvent) {\n        return tripExecEvent.get('status');\n      }\n\n      return this.get('trip.tripStatus');\n    }),\n    drivedStatus: Ember.computed('trip.tripStatus', 'tripExecEvent.content.status', function () {\n      let tripExecEvent = this.get('tripExecEvent.content');\n\n      if (this.get('trip.tripStatus') === 'completed' || this.get('trip.tripStatus') === 'cancelled') {\n        return this.get('trip.ripStatus');\n      }\n\n      if (tripExecEvent) {\n        return tripExecEvent.get('status');\n      }\n\n      return this.get('trip.tripStatus');\n    }),\n    driver: Ember.computed('tripExecEvent.content.driver', function () {\n      let tripExecEvent = this.get('tripExecEvent.content');\n\n      if (tripExecEvent) {\n        return tripExecEvent.get('driver');\n      }\n\n      return null;\n    }),\n    vehicle: Ember.computed('tripExecEvent.content.vehicle', function () {\n      let tripExecEvent = this.get('tripExecEvent.content');\n\n      if (tripExecEvent) {\n        return tripExecEvent.get('vehicle');\n      }\n\n      return null;\n    }),\n    statusValue: Ember.computed.alias('status'),\n    zone: Ember.computed.alias('trip.zone'),\n    lat: Ember.computed.alias('trip.lat'),\n    lng: Ember.computed.alias('trip.lng')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/iq-vehicle\", [\"exports\", \"ember-data/model\", \"ember-data/relationships\", \"adept-iq/mixins/otp-label\", \"adept-iq/mixins/status-value\"], function (_exports, _model, _relationships, _otpLabel, _statusValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend(_statusValue.default, {\n    vehicle: (0, _relationships.belongsTo)('vehicle', {\n      inverse: 'iqVehicle'\n    }),\n    vehicleState: (0, _relationships.belongsTo)('vehicle-state', {\n      inverse: 'iqVehicle'\n    }),\n    otp: Ember.computed.alias('avlmVehicle.otp'),\n    lat: Ember.computed.alias('vehicle.lat'),\n    lng: Ember.computed.alias('vehicle.lng'),\n    timestamp: Ember.computed.alias('vehicle.timestamp'),\n    heading: Ember.computed.alias('vehicle.heading'),\n    speed: Ember.computed.alias('vehicle.speed'),\n    currentAVLLocation: Ember.computed.alias('vehicle.lastObject'),\n    sortedAvls: Ember.computed.alias('vehicle.sortedAvls'),\n    lastKnownCoord: Ember.computed.alias('vehicle.lastKnownCoord'),\n    point: Ember.computed.collect('lat', 'lng'),\n    //status:computed.alias('vehicle.status'),\n    statusValue: Ember.computed.alias('status'),\n    status: Ember.computed('vehicleState.content.status', function () {\n      if (this.get('vehicleState.content')) {\n        let vehicleState = this.get('vehicleState.content');\n\n        if (vehicleState) {\n          return vehicleState.get('status');\n        }\n      }\n\n      return this.get('vehicle.status');\n    }),\n    drivedStatus: Ember.computed('vehicleState.content.status', function () {\n      if (this.get('vehicleState.content')) {\n        let vehicleState = this.get('vehicleState.content');\n\n        if (vehicleState) {\n          return vehicleState.get('status');\n        }\n      }\n\n      return this.get('vehicle.status');\n    }),\n    // eslint-disable-next-line ember/use-brace-expansion\n    driver: Ember.computed('vehicleState.content.driver', 'drivedStatus', function () {\n      let vehicleState = this.get('vehicleState.content');\n\n      if (vehicleState) {\n        if (this.get('drivedStatus') === 'off') {\n          return null;\n        }\n\n        return vehicleState.get('driver');\n      }\n\n      return null;\n    }),\n    standQueuePos: Ember.computed.alias('vehicleState.content.standQueuePos'),\n    zoneQueuePos: Ember.computed.alias('vehicleState.content.zoneQueuePos'),\n    zone: Ember.computed('vehicleState.content.zone', function () {\n      let vehicleState = this.get('vehicleState.content');\n\n      if (vehicleState) {\n        return vehicleState.get('zone');\n      }\n    }),\n    stand: Ember.computed('vehicleState.content.stand', function () {\n      let vehicleState = this.get('vehicleState.content');\n\n      if (vehicleState) {\n        return vehicleState.get('stand');\n      }\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/leg-subscription\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    startTime: attr('date', {\n      defaultValue() {\n        return new Date();\n      }\n\n    }),\n    endTime: attr('date', {\n      defaultValue() {\n        return new Date();\n      }\n\n    }),\n    shiftStart: attr('string', {\n      defaultValue: '06:00:00'\n    }),\n    shiftEnd: attr('string', {\n      defaultValue: '17:00:00'\n    }),\n    sunday: attr('boolean'),\n    monday: attr('boolean'),\n    tuesday: attr('boolean'),\n    wednesday: attr('boolean'),\n    thursday: attr('boolean'),\n    friday: attr('boolean'),\n    saturday: attr('boolean'),\n    everyweekday: attr('string'),\n    pattern: attr('string'),\n    recurring: attr('string'),\n    dailyConfig: attr('string'),\n    startDateTime: attr('date', {\n      defaultValue() {\n        return new Date();\n      }\n\n    }),\n    endDateTime: attr('date', {\n      defaultValue() {\n        return new Date();\n      }\n\n    }),\n    excludeStartDateTime: attr('date', {\n      defaultValue() {\n        return new Date();\n      }\n\n    }),\n    excludeEndDateTime: attr('date', {\n      defaultValue() {\n        return new Date();\n      }\n\n    }),\n    leg: belongsTo('ss-leg'),\n    selectedDOWs: Ember.computed('sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', function () {\n      const selectedDOWArray = [];\n      if (this.get('sunday')) selectedDOWArray.push('sunday');\n      if (this.get('monday')) selectedDOWArray.push('monday');\n      if (this.get('tuesday')) selectedDOWArray.push('tuesday');\n      if (this.get('wednesday')) selectedDOWArray.push('wednesday');\n      if (this.get('thursday')) selectedDOWArray.push('thursday');\n      if (this.get('friday')) selectedDOWArray.push('friday');\n      if (this.get('saturday')) selectedDOWArray.push('saturday');\n      return selectedDOWArray;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/leg-travel-need\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n  const LegTravelNeed = Model.extend({\n    count: attr('number'),\n    leg: belongsTo('leg'),\n    travelNeedType: belongsTo('travel-need-type'),\n    passengerType: belongsTo('passenger-type'),\n    isClient: Ember.computed.equal('passengerType.name', 'client'),\n    isPca: Ember.computed.equal('passengerType.name', 'pca'),\n    isCompanion: Ember.computed.equal('passengerType.name', 'companion'),\n    basicTravelNeedType: Ember.computed('travelNeedType', function () {\n      const name = Ember.get(this, 'travelNeedType.name');\n      return name === 'ambulatory' || name === 'wideAmbulatory' || name === 'wheelchair' || name === 'wideWheelchair';\n    }),\n    isEquipment: Ember.computed('travelNeedType', function () {\n      return !this.get('travelNeedType.isServiceAnimal') && !this.get('passengerType.isClient');\n    }),\n    isExtraPassenger: Ember.computed('travelNeedType', 'passengerType', function () {\n      return this.get('travelNeedType.isServiceAnimal') || this.get('passengerType.isPca') || this.get('passengerType.isCompanion');\n    })\n  });\n  var _default = LegTravelNeed;\n  _exports.default = _default;\n});","define(\"adept-iq/models/leg\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo,\n    hasMany\n  } = _emberData.default;\n  const LegModel = Model.extend({\n    requestTime: attr('date'),\n    anchor: attr('string'),\n    purpose: attr('string'),\n    address: attr('nested'),\n    coordinates: attr('nested'),\n    pointOfInterest: attr('nested'),\n    geoNode: attr('number'),\n    stop: belongsTo('stop'),\n    trip: belongsTo('trip'),\n    origin: belongsTo('location'),\n    destination: belongsTo('location'),\n    rider: belongsTo('rider'),\n    locations: hasMany('location'),\n    extraPassengers: Ember.computed('', function () {\n      const rider = Ember.get(this, 'rider');\n      return rider.get('extraPassengers');\n    }),\n    equipments: Ember.computed('', function () {\n      const rider = Ember.get(this, 'rider');\n      return rider.get('equipments');\n    }),\n    // originlocations :  hasMany('location'),\n    // destinationlocations :  hasMany('location'),\n    segments: hasMany('segment'),\n    segment: Ember.computed('segments', function () {\n      if (Ember.get(this, 'segments') != null) {\n        const segments = Ember.get(this, 'segments').toArray();\n        return segments[0];\n      } else {\n        return null;\n      }\n    }),\n    legTravelNeeds: hasMany('leg-travel-need'),\n    noOfTravelNeeds: Ember.computed('', function () {\n      const noOfTravelNeeds = Ember.get(this, 'legTravelNeeds');\n\n      if (!Ember.isEmpty(noOfTravelNeeds)) {\n        return noOfTravelNeeds.length;\n      }\n\n      return 0;\n    }),\n    sortedLegTravelNeeds: Ember.computed('legTravelNeeds', function () {\n      return Ember.get(this, 'legTravelNeeds').sortBy('travelNeedType.name');\n    }),\n\n    /* originlocations1: computed('origin', function() {\n         let originlocations =[];\n         originlocations.push(get(this, 'origin'));\n       return originlocations;\n     }),\n      destinationlocations1: computed('destination', function() {\n         let destinationlocations =[];\n         destinationlocations.push(get(this, 'destination'));\n       return destinationlocations;\n     }),*/\n    tomtomFormattedAddress: Ember.computed('streetNr', 'streetAddress', 'locality', function () {\n      let address = null;\n\n      if (this.get('streetAddress') !== undefined) {\n        address = {\n          address: {\n            freeformAddress: `${this.get('streetNr')} ${this.get('streetAddress')} ${this.get('region')}`\n          }\n        };\n      }\n\n      return address;\n    })\n  });\n  var _default = LegModel;\n  _exports.default = _default;\n});","define(\"adept-iq/models/location\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo,\n    hasMany\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    alias: attr('string', {\n      defaultValue: ''\n    }),\n    description: attr('string'),\n    streetNr: attr('string'),\n    streetName: attr('string'),\n    room: attr('string'),\n    city: attr('string'),\n    county: attr('string'),\n    state: attr('string'),\n    postalCode: attr('string'),\n    country: attr('string'),\n    countryAbbreviation: attr('string'),\n    notes: attr('string'),\n    address: attr('nested'),\n    coordinates: attr('nested'),\n    pointOfInterest: attr('nested'),\n    geoNode: Ember.computed.alias('coord.geoNode', {\n      defaultValue: 0\n    }),\n    locality: attr('string'),\n    region: attr('string'),\n    subRegion: attr('string'),\n    postOfficeBoxNumber: attr('string'),\n    type: attr('string'),\n    stop: hasMany('stop'),\n    legOrigin: belongsTo('leg', {\n      inverse: 'origin'\n    }),\n    legDestination: belongsTo('leg', {\n      inverse: 'destination'\n    }),\n    lat: Ember.computed.alias('coord.lat'),\n    lng: Ember.computed.alias('coord.lng'),\n    coord: attr(),\n    latlng: Ember.computed('coord', function () {\n      if (this.get('coord.lat') !== undefined && this.get('coord.lng') !== undefined) {\n        return `${this.get('coord.lat')}/${this.get('coord.lng')}`;\n      }\n\n      return '';\n    }),\n    addresses: hasMany('address'),\n    tomtomFormattedAddress: Ember.computed('streetNr', 'streetName', 'locality', function () {\n      let address = null;\n\n      if (this.get('streetName') !== undefined) {\n        address = {\n          address: {\n            freeformAddress: `${this.get('streetNr')} ${this.get('streetName')} ${this.get('region')}`\n          }\n        };\n      }\n\n      return address;\n    }),\n    fullAddress: Ember.computed('address', 'pointOfInterest', function () {\n      const alias = Ember.get(this, 'pointOfInterest.alias');\n      const address = Ember.get(this, 'address');\n      const streetAddress = [];\n\n      if (address) {\n        if (alias) {\n          streetAddress.push(alias + ',');\n        }\n\n        streetAddress.push(address.streetNr);\n        streetAddress.push(address.streetName);\n        const result = [streetAddress.join(' ')];\n        result.push(address.region); // result.push(address.county);\n\n        result.push(address.stateAbbreviation);\n        result.push(address.postalCode);\n        return result.join(', ');\n      }\n\n      return '';\n    }).readOnly(),\n    streetAddress: Ember.computed('streetNr', 'streetName', 'alias', function () {\n      const alias = Ember.get(this, 'alias');\n      const streetAddress = [];\n\n      if (alias) {\n        streetAddress.push(alias + ',');\n      }\n\n      if (this.get('streetNr')) {\n        streetAddress.push(this.get('streetNr') + ',');\n      }\n\n      if (this.get('streetName')) {\n        streetAddress.push(this.get('streetName') + ',');\n      }\n\n      const result = [streetAddress.join(' ')];\n      return result;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/message\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    date: attr('date'),\n    time: attr('time'),\n    message: attr('string'),\n    driverId: attr('uuid'),\n    driverLastName: attr('string'),\n    driverFirstName: attr('string'),\n    vehicleId: attr('uuid'),\n    routeId: attr('uuid'),\n    hidden: attr('boolean', {\n      defaultValue: false\n    }),\n    status: Ember.computed('', function () {\n      let a = ['Received', 'Sent', 'Sending', 'Failed'];\n      return a[Math.floor(Math.random() * a.length)];\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/modal\", [\"exports\", \"ember-modal-service/models/modal\"], function (_exports, _modal) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _modal.default;\n    }\n  });\n});","define(\"adept-iq/models/multientry-catchall\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/no-show-reason-code\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    code: attr('string'),\n    externalCode: attr('string'),\n    description: attr('string'),\n    name: Ember.computed.alias('description')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/passenger-type\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    name: attr('string'),\n    isPca: Ember.computed('name', function () {\n      return this.get('name') === 'pca';\n    }),\n    isCompanion: Ember.computed('name', function () {\n      return this.get('name') === 'companion';\n    }),\n    isClient: Ember.computed('name', function () {\n      return this.get('name') === 'client';\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/place\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo,\n    hasMany\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    alias: attr('string', {\n      defaultValue: ''\n    }),\n    description: attr('string'),\n    streetNr: attr('string'),\n    streetName: attr('string'),\n    room: attr('string'),\n    city: attr('string'),\n    county: attr('string'),\n    state: attr('string'),\n    postalCode: attr('string'),\n    country: attr('string'),\n    countryAbbreviation: attr('string'),\n    notes: attr('string'),\n    address: attr('nested'),\n    coordinates: attr('nested'),\n    pointOfInterest: attr('nested'),\n    geoNode: Ember.computed.alias('coord.geoNode', {\n      defaultValue: 0\n    }),\n    locality: attr('string'),\n    region: attr('string'),\n    subRegion: attr('string'),\n    postOfficeBoxNumber: attr('string'),\n    type: attr('string'),\n    stop: hasMany('stop'),\n    legOrigin: belongsTo('leg', {\n      inverse: 'origin'\n    }),\n    legDestination: belongsTo('leg', {\n      inverse: 'destination'\n    }),\n    lat: Ember.computed.alias('coord.lat'),\n    lng: Ember.computed.alias('coord.lng'),\n    coord: attr(),\n    latlng: Ember.computed('coord', function () {\n      if (this.get('coord.lat') !== undefined && this.get('coord.lng') !== undefined) {\n        return `${this.get('coord.lat')}/${this.get('coord.lng')}`;\n      }\n\n      return '';\n    }),\n    addresses: hasMany('address'),\n    tomtomFormattedAddress: Ember.computed('streetNr', 'streetName', 'locality', function () {\n      let address = null;\n\n      if (this.get('streetName') !== undefined) {\n        address = {\n          address: {\n            freeformAddress: `${this.get('streetNr')} ${this.get('streetName')} ${this.get('region')}`\n          }\n        };\n      }\n\n      return address;\n    }),\n    fullAddress: Ember.computed('address', 'pointOfInterest', function () {\n      const alias = Ember.get(this, 'pointOfInterest.alias');\n      const address = Ember.get(this, 'address');\n      const streetAddress = [];\n\n      if (address) {\n        if (alias) {\n          streetAddress.push(alias + ',');\n        }\n\n        streetAddress.push(address.streetNr);\n        streetAddress.push(address.streetName);\n        const result = [streetAddress.join(' ')];\n        result.push(address.region); // result.push(address.county);\n\n        result.push(address.stateAbbreviation);\n        result.push(address.postalCode);\n        return result.join(', ');\n      }\n\n      return '';\n    }).readOnly(),\n    streetAddress: Ember.computed('streetNr', 'streetName', 'alias', function () {\n      const alias = Ember.get(this, 'alias');\n      const streetAddress = [];\n\n      if (alias) {\n        streetAddress.push(alias + ',');\n      }\n\n      if (this.get('streetNr')) {\n        streetAddress.push(this.get('streetNr') + ',');\n      }\n\n      if (this.get('streetName')) {\n        streetAddress.push(this.get('streetName') + ',');\n      }\n\n      const result = [streetAddress.join(' ')];\n      return result;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/poi-address-search\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    hasMany,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    type: attr(),\n    id: attr(),\n    score: attr(),\n    dist: attr(),\n    info: attr(),\n    poi: attr,\n    address: attr(),\n    position: attr(),\n    viewport: attr(),\n    entryPoints: attr(),\n    name: attr(),\n    freeformAddress: attr(),\n    municipalitySubdivision: attr()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/provider-type\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo,\n    hasMany\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    name: attr('string'),\n    schedule: belongsTo(),\n    providers: hasMany()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/provider\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo,\n    hasMany\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    name: attr('string'),\n    providerType: belongsTo(),\n    schedule: belongsTo(),\n    routes: hasMany()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/rider-address-location\", [\"exports\", \"ember-data\", \"ember-data-model-fragments\"], function (_exports, _emberData, _emberDataModelFragments) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    attr\n  } = _emberData.default;\n\n  var _default = _emberDataModelFragments.default.Fragment.extend({\n    locationId: attr('number'),\n    lat: attr('number'),\n    lng: attr('number'),\n    geoNode: attr('number')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/rider-eligibility\", [\"exports\", \"ember-data\", \"moment\"], function (_exports, _emberData, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    from: attr('string'),\n    to: attr('string'),\n    rider: belongsTo('rider'),\n    eligibilityType: belongsTo('rms-eligibility-type'),\n    formattedFrom: Ember.computed('from', function () {\n      const momentFrom = (0, _moment.default)(Ember.get(this, 'from'));\n      return momentFrom.format('LL');\n    }),\n    formattedTo: Ember.computed('to', function () {\n      const momentFrom = (0, _moment.default)(Ember.get(this, 'to'));\n      return momentFrom.format('LL');\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/rider-info\", [\"exports\", \"ember-data\", \"adept-iq/utils/name-parser\"], function (_exports, _emberData, _nameParser) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    hasMany\n  } = _emberData.default;\n  /*\n          This is the rider model for data coming from rider-management and later updated with\n          travel-needs. The rider-info model holds data to be sent to the trip service.\n          This is necessary because a complex nesting of DS models and ember-data-fragments\n          has problems serializing. See app/confirm/route.js.\n   */\n\n  var _default = Model.extend({\n    riderId: attr('string'),\n    firstName: attr('string'),\n    middleName: attr('string'),\n    lastName: attr('string'),\n    notes: attr('string'),\n    travelNeeds: hasMany('rider-travel-need-info'),\n    fullName: Ember.computed('firstName', 'middleName', 'lastName', {\n      get()\n      /* key*/\n      {\n        let middleName = Ember.get(this, 'middleName');\n\n        if (Ember.isEmpty(middleName)) {\n          middleName = ' ';\n        } else {\n          middleName = ` ${middleName} `;\n        }\n\n        return `${Ember.get(this, 'firstName')}${middleName}${Ember.get(this, 'lastName') || ''}`.trim();\n      },\n\n      set(key, value) {\n        const nameParts = _nameParser.default.parse(value);\n\n        Ember.set(this, 'firstName', nameParts.firstName);\n        Ember.set(this, 'middleName', nameParts.middleName);\n        Ember.set(this, 'lastName', nameParts.lastName);\n        return value;\n      }\n\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/rider-location\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    locationType: attr('string'),\n    location: belongsTo('location')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/rider\", [\"exports\", \"ember-data\", \"adept-iq/utils/name-parser\", \"ember-data/relationships\", \"adept-iq/config/environment\"], function (_exports, _emberData, _nameParser, _relationships, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    hasMany\n  } = _emberData.default;\n\n  function formatTextExtension(className, value) {\n    return {\n      className: className,\n      value: value\n    };\n  }\n\n  var _default = Model.extend({\n    riderId: attr('string'),\n    name: attr('string'),\n    firstName: attr('string'),\n    middleName: attr('string'),\n    lastName: attr('string'),\n    areaCode: attr('string', {\n      defaultValue: ''\n    }),\n    phoneNr: attr('string', {\n      defaultValue: ''\n    }),\n    extension: attr('string'),\n    attributes: attr('string'),\n    driverNotes: attr('string'),\n    operatorNotes: attr('string'),\n    calloutType: attr('string'),\n    notes: attr('string'),\n    email: attr('string'),\n    trips: hasMany('trip'),\n    callLines: hasMany('call-line'),\n    requestTime: attr('date'),\n    equipments: Ember.computed.filterBy('travelNeeds', 'isEquipment', true),\n    extraPassengers: Ember.computed.filterBy('travelNeeds', 'isExtraPassenger', true),\n    primaryAddresses: hasMany('address', {\n      inverse: 'ridersPrimary'\n    }),\n    formattedAccount: Ember.computed('callLines', function () {\n      const accounts = [];\n      this.get('callLines').forEach(function (item) {\n        const account = item.get('account');\n\n        if (!Ember.isEmpty(account) && !Ember.isBlank(account.get('acctCode'))) {\n          accounts.push(formatTextExtension('valueItem', `${account.get('acctCode')} ${account.get('acctCardNr')}`));\n        }\n      });\n      return {\n        values: accounts\n      };\n    }),\n    formattedPickupAddresses: Ember.computed('callLines', function () {\n      let addresses = [];\n      this.get('callLines').forEach(function (item) {\n        const pickupAddress = item.get('address');\n\n        if (!Ember.isBlank(pickupAddress)) {\n          //if(pickupAddress.get('streetNr') !== undefined && pickupAddress.get('streetName') !== undefined) {\n          addresses.push(formatTextExtension('valueItem', `${pickupAddress.get('streetNr')} ${pickupAddress.get('streetName')} ${pickupAddress.get('region')}`)); //}  \n        }\n      });\n      return {\n        values: addresses\n      };\n    }),\n    fullPhoneNumber: Ember.computed('areaCode', 'phoneNr', 'extension', {\n      get()\n      /* key */\n      {\n        const re = /\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})/g;\n        const subst = '$1 $2-$3';\n        const str = `${Ember.get(this, 'areaCode')} ${Ember.get(this, 'phoneNr')}`;\n        return str.replace(re, subst);\n      },\n\n      set(_, value) {\n        value = value.trim();\n        this.set('areaCode', value.substr(0, 3));\n        this.set('phoneNr', value.substr(4, 10).replace(/-/g, \"\"));\n        return value;\n      }\n\n    }),\n    fullName: Ember.computed('firstName', 'middleName', 'lastName', {\n      get()\n      /* key*/\n      {\n        let middleName = Ember.get(this, 'middleName');\n\n        if (Ember.isBlank(middleName)) {\n          middleName = ' ';\n        } else {\n          middleName = ` ${middleName} `;\n        }\n\n        return `${Ember.get(this, 'firstName')}${middleName}${Ember.get(this, 'lastName') || ''}`.trim();\n      },\n\n      set(key, value) {\n        const nameParts = _nameParser.default.parse(value);\n\n        Ember.set(this, 'firstName', nameParts.firstName);\n        Ember.set(this, 'middleName', nameParts.middleName);\n        Ember.set(this, 'lastName', nameParts.lastName);\n        return value;\n      }\n\n    }),\n    phone: Ember.computed('', function () {\n      let rider = this.get('iqRider.rmsRider');\n\n      if (rider) {\n        return rider.get('fullPhoneNumber');\n      }\n    }),\n\n    /*workspacetrips: computed('trips@each', function() {\n       if(!isEmpty(this.get('trips'))) {\n          return this.get('trips').filter(function(item) {\n             return (ENV.workspaceContext.startDate < item.get('requestTime') &&\n                      (ENV.workspaceContext.endDate > item.get('requestTime')));\n        });\n      } else {\n        return [];\n      }\n    }),\n     sortedtrips :computed('workspacetrips.[]',function()\n    {\n      return this.get('workspacetrips').sortBy('requestTime');\n    }),\n     latesttripDate: computed('sortedtrips.[]', function() {\n      if(!isEmpty(this.get('sortedtrips'))) {\n        let sortedtrips = this.get('sortedtrips');\n        return sortedtrips.lastObject.get('requestTime');\n      }\n      return null;\n    }),\n    firsttripDate: computed('sortedtrips.[]', function() {\n      if(!isEmpty(this.get('sortedtrips'))) {\n        let sortedtrips = this.get('sortedtrips');\n        return sortedtrips.firstObject.get('requestTime');\n      }\n      return null;\n    })  ,*/\n    travelNeeds: hasMany('rms-rider-travel-need')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/route-place\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    route: belongsTo(),\n    place: belongsTo(),\n    type: attr('string')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/route\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\", \"lodash\", \"moment\", \"adept-iq/mixins/otp-label\"], function (_exports, _model, _attr, _relationships, _lodash, _moment, _otpLabel) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    find\n  } = _lodash.default;\n\n  var _default = _model.default.extend(_otpLabel.default, {\n    name: (0, _attr.default)('string'),\n    plannedStartTime: (0, _attr.default)('date'),\n    plannedEndTime: (0, _attr.default)('date'),\n    lifoDepth: (0, _attr.default)('number'),\n    routeFactor: (0, _attr.default)('number'),\n    isBooleanExample: (0, _attr.default)('boolean', {\n      defaultValue: false\n    }),\n    enumExamples: (0, _attr.default)('object', {\n      defaultValue: () => ['One']\n    }),\n    enumExample: (0, _attr.default)('string', {\n      defaultValue: 'One'\n    }),\n    routeDate: (0, _attr.default)('date'),\n    vehicleName: (0, _attr.default)('string'),\n    selectedVehicle: (0, _attr.default)(),\n    selectedDriver: (0, _attr.default)(),\n    driverExternalId: (0, _attr.default)('string'),\n    odometer: (0, _attr.default)('string'),\n    otp: (0, _attr.default)('string', {\n      defaultValue: 'O'\n    }),\n    otpValue: (0, _attr.default)('number'),\n    timestamp: (0, _attr.default)('date', {\n      defaultValue: () => new Date()\n    }),\n    pulloutPolyline: (0, _attr.default)('polyline'),\n    stopPolylines: (0, _attr.default)('object'),\n    navigationPolyline: (0, _attr.default)('polyline'),\n    fullPolyline: Ember.computed('stopPolylines', 'orderedStops', 'counter', function () {\n      let stopPolylines = this.get('stopPolylines');\n      let stops = this.get('orderedStops');\n      if (Ember.isEmpty(stops)) return [];\n      return stops.reduce((arr, stop) => {\n        let obj = stopPolylines.find(obj => {\n          return obj.stopId.toString() === stop.get('id').toString();\n        });\n\n        if (obj && obj.polyline) {\n          arr.push(...obj.polyline);\n        }\n\n        return arr;\n      }, []);\n    }),\n    orderedStops: Ember.computed('orderedClusters.@each.orderedStops', function () {\n      return this.get('orderedClusters').reduce((arr, cluster) => {\n        let stops = cluster.get('orderedStops');\n        arr.push(...stops);\n        return arr;\n      }, []);\n    }),\n    orderedClusters: Ember.computed('clusters.@each.ordinal', function () {\n      return this.get('clusters').sortBy('ordinal');\n    }),\n    status: (0, _attr.default)('string'),\n    provider: (0, _relationships.belongsTo)(),\n    schedule: (0, _relationships.belongsTo)(),\n    assignRoute: (0, _relationships.belongsTo)('route'),\n    clusters: (0, _relationships.hasMany)(),\n    vehicleRoutes: (0, _relationships.hasMany)(),\n    driverBreaks: (0, _relationships.hasMany)(),\n    places: (0, _relationships.hasMany)(),\n    routePlaces: (0, _relationships.hasMany)(),\n    isCompleted: Ember.computed.equal('status', 'completed'),\n    isEmptyRoute: Ember.computed.empty('clusters.firstObject.trips'),\n\n    isVehicleAvailable(vehicle) {\n      let plannedStartTime = this.get('plannedStartTime');\n      let plannedEndTime = this.get('plannedEndTime');\n      let routeDate = this.get('routeDate');\n      plannedStartTime.setDate(routeDate.getDate());\n      plannedStartTime.setMonth(routeDate.getMonth());\n      plannedStartTime.setFullYear(routeDate.getFullYear());\n      plannedEndTime.setDate(routeDate.getDate());\n      plannedEndTime.setMonth(routeDate.getMonth());\n      plannedEndTime.setFullYear(routeDate.getFullYear());\n      return vehicle.isVehicleAvailable((0, _moment.default)(plannedStartTime), (0, _moment.default)(plannedEndTime));\n    },\n\n    isDriverAvailable(driver) {\n      let plannedStartTime = this.get('plannedStartTime');\n      let plannedEndTime = this.get('plannedEndTime');\n      let routeDate = this.get('routeDate');\n      plannedStartTime.setDate(routeDate.getDate());\n      plannedStartTime.setMonth(routeDate.getMonth());\n      plannedStartTime.setFullYear(routeDate.getFullYear());\n      plannedEndTime.setDate(routeDate.getDate());\n      plannedEndTime.setMonth(routeDate.getMonth());\n      plannedEndTime.setFullYear(routeDate.getFullYear());\n      return driver.isDriverAvailable((0, _moment.default)(plannedStartTime), (0, _moment.default)(plannedEndTime));\n    },\n\n    garages: Ember.computed.mapBy('routePlaces', 'place'),\n    assignedDriver: Ember.computed.alias('latestVehicleRoute.latestDriver'),\n    assignedVehicle: Ember.computed.alias('latestVehicleRoute.vehicle'),\n    latestVehicleRoute: Ember.computed('vehicleRoutes.@each.plannedStartTime', function () {\n      return this.get('vehicleRoutes').sortBy('plannedStartTime').get('lastObject');\n    }),\n    // FIXME: set dependent keys so this updates in realtime\n    actualDriverBreaks: Ember.computed('driverBreaks', function () {\n      const driverBreaks = Ember.get(this, 'driverBreaks');\n      let driverBreaksTaken = [];\n\n      if (!Ember.isEmpty(driverBreaks)) {\n        const driverBreakEvents = Ember.get(driverBreaks, 'driverBreakEvents');\n\n        if (!Ember.isEmpty(driverBreakEvents)) {\n          let completedDriverBreaks = find(driverBreakEvents.toArray(), driverBreakEvent => {\n            // TODO: Ankur -  Hardcoded will be remove to some configuration\n            return driverBreakEvent.type === 'end';\n          });\n          completedDriverBreaks.toArray().forEach(function (item) {\n            driverBreaksTaken.push(`${item.get('estimatedStart')} ${item.get('estimatedEnd')} `);\n          });\n        }\n      }\n\n      return driverBreaksTaken;\n    }),\n    // FIXME: set dependent keys so this updates in realtime\n    plannedDriverBreaks: Ember.computed('driverBreaks', function () {\n      let driverBreaks = [];\n      this.get('driverBreaks').forEach(function (item) {\n        driverBreaks.push(`${item.get('estimatedStart')} ${item.get('estimatedEnd')} `);\n      });\n      return driverBreaks;\n    }),\n    // FIXME: set dependent keys so this updates in realtime\n    actualStartEvent: Ember.computed('assignedVehicle', function () {\n      const assignedVehicle = Ember.get(this, 'assignedVehicle');\n\n      if (!Ember.isEmpty(assignedVehicle)) {\n        const vehicleEvents = Ember.get(assignedVehicle, 'vehicleEvents');\n\n        if (!Ember.isEmpty(vehicleEvents)) {\n          const lastVehicleEvent = vehicleEvents.sortBy('timestamp').objectAt(Ember.get(vehicleEvents, 'length') - 1); // TODO: Ankur -  Hardcoded will be remove to some configuration\n\n          if (!Ember.isEmpty(lastVehicleEvent) && lastVehicleEvent.type === 'pullout') {\n            return lastVehicleEvent;\n          }\n        }\n      }\n\n      return null;\n    }),\n    // FIXME: set dependent keys so this updates in realtime\n    actualEndEvent: Ember.computed('assignedVehicle', function () {\n      const assignedVehicle = Ember.get(this, 'assignedVehicle');\n\n      if (!Ember.isEmpty(assignedVehicle)) {\n        const vehicleEvents = Ember.get(assignedVehicle, 'vehicleEvents');\n\n        if (!Ember.isEmpty(vehicleEvents)) {\n          const lastVehicleEvent = vehicleEvents.sortBy('timestamp').objectAt(Ember.get(vehicleEvents, 'length') - 1); //Ankur -  Hardcoded will be remove to some configuration\n\n          if (!Ember.isEmpty(lastVehicleEvent) && lastVehicleEvent.type === 'pullin') {\n            return lastVehicleEvent;\n          }\n        }\n      }\n\n      return null;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/schedule\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    hasMany\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    externalId: attr('string'),\n    startTime: attr('date'),\n    endTime: attr('date'),\n    provider: hasMany(),\n    providerTypes: hasMany(),\n    route: hasMany()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/segment\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend({\n    promiseTime: (0, _attr.default)('date'),\n    anchor: (0, _attr.default)('string'),\n    fare: (0, _attr.default)('number'),\n    travelMode: (0, _attr.default)('string'),\n    pick: (0, _relationships.belongsTo)('stop'),\n    drop: (0, _relationships.belongsTo)('stop'),\n    fareType: (0, _relationships.belongsTo)('fare-type'),\n    leg: (0, _relationships.belongsTo)('leg'),\n    stops: Ember.computed.collect('pick', 'drop')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/service-window\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    name: attr('string'),\n    searchWindowStart: attr(),\n    searchWindowEnd: attr(),\n    promiseWindowStart: attr(),\n    promiseWindowEnd: attr(),\n    dropWindowStart: attr(),\n    dropWindowEnd: attr()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/sso-role\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    roleName: attr('string'),\n    displayName: attr('string'),\n    status: attr('string')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/sso-user\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    email: attr('string'),\n    userId: attr('string'),\n    firstName: attr('string'),\n    lastName: attr('string'),\n    status: attr('string', {\n      defaultValue: 'active'\n    }),\n    lastLoginAt: attr('date'),\n    roleNames: attr('object'),\n    calculatedStatus: Ember.computed('status', 'lastLoginAt', {\n      get()\n      /* key */\n      {\n        if (this.get('status') === 'active' && this.get('lastLoginAt') === null) {\n          return 'pending';\n        }\n\n        return this.get('status');\n      },\n\n      set(key, value) {\n        this.set('status', value);\n\n        if (this.get('status') === 'active' && this.get('lastLoginAt') === null) {\n          return 'pending';\n        }\n\n        return value;\n      }\n\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/stand\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"adept-iq/mixins/zone-label\", \"adept-iq/mixins/zone-style\", \"ember-data/relationships\", \"adept-iq/config/environment\"], function (_exports, _model, _attr, _zoneLabel, _zoneStyle, _relationships, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend(_zoneLabel.default, _zoneStyle.default, {\n    name: (0, _attr.default)('string'),\n    points: (0, _attr.default)(),\n    noOfPoints: Ember.computed('points', function () {\n      let count = 0;\n      const points = this.get('points');\n\n      if (this.get('points') != null) {\n        for (let i = 1; points[i] != null; i++) {\n          count++;\n        }\n\n        return count;\n      }\n\n      return 0;\n    }),\n    polypoints: Ember.computed('points', 'noOfPoints', function () {\n      let polygonPoints = [];\n      const points = this.get('points');\n\n      if (!Ember.isEmpty(points) && this.get('noOfPoints') === 1) {\n        if (this.get('points') != null) {\n          return points[1];\n        }\n      } else {\n        if (this.get('points') != null) {\n          for (let i = 1; points[i] != null; i++) {\n            const item = points[i];\n            let polygonPoint = [];\n            polygonPoint.push(item.lat);\n            polygonPoint.push(item.lng);\n            polygonPoints.push(polygonPoint);\n          }\n        }\n      }\n\n      return polygonPoints;\n    }),\n    calculateCenter: Ember.computed('points', 'noOfPoints', function () {\n      let minlat = false;\n      let minlng = false;\n      let maxlat = false;\n      let maxlng = false;\n      const points = this.get('points');\n\n      for (let i = 1; points[i] != null; i++) {\n        let item = points[i];\n\n        if (minlat === false) {\n          minlat = item.lat;\n        } else {\n          minlat = item.lat < minlat ? item.lat : minlat;\n        }\n\n        if (maxlat === false) {\n          maxlat = item.lat;\n        } else {\n          maxlat = item.lat > maxlat ? item.lat : maxlat;\n        }\n\n        if (minlng === false) {\n          minlng = item.lng;\n        } else {\n          minlng = item.lng < minlng ? item.lng : minlng;\n        }\n\n        if (maxlng === false) {\n          maxlng = item.lng;\n        } else {\n          maxlng = item.lng > maxlng ? item.lng : maxlng;\n        }\n      } // Calculate the center\n\n\n      let lat = maxlat - (maxlat - minlat) / 2;\n      let lng = maxlng - (maxlng - minlng) / 2;\n      return {\n        lat: lat,\n        lng: lng\n      };\n    }),\n    lat: Ember.computed.alias('calculateCenter.lat'),\n    lng: Ember.computed.alias('calculateCenter.lng'),\n    radius: (0, _attr.default)('number'),\n    trips: (0, _relationships.hasMany)('trip'),\n    vehicles: (0, _relationships.hasMany)('vehicle'),\n    // eslint-disable-next-line ember/use-brace-expansion\n    workspacetrips: Ember.computed('trips.@each', 'trips.@each.bookingType', 'trips.@each.status', function () {\n      if (!Ember.isEmpty(this.get('trips'))) {\n        return this.get('trips').filter(function (item) {\n          return _environment.default.workspaceContext.startDate < item.get('requestedTime') && _environment.default.workspaceContext.endDate > item.get('requestedTime');\n        });\n      } else {\n        return [];\n      }\n    }),\n    asap: Ember.computed('workspacetrips.[]', function () {\n      if (!Ember.isEmpty(this.get('workspacetrips'))) {\n        return this.get('workspacetrips').filter(trip => trip.get('bookingType') === 'asap' && (trip.get('drivedStatus') === 'booked' || trip.get('drivedStatus') === 'active')).length;\n      } else {\n        return 0;\n      }\n    }),\n    pb: Ember.computed('workspacetrips.[]', function () {\n      if (!Ember.isEmpty(this.get('workspacetrips'))) {\n        return this.get('workspacetrips').filter(trip => trip.get('bookingType') === 'prebook' && (trip.get('drivedStatus') === 'booked' || trip.get('drivedStatus') === 'active')).length;\n      } else {\n        return 0;\n      }\n    }),\n    auction: Ember.computed('workspacetrips.[]', function () {\n      if (!Ember.isEmpty(this.get('workspacetrips'))) {\n        return this.get('workspacetrips').filter(trip => trip.get('dispatchMethod') === 'auction' && (trip.get('drivedStatus') === 'booked' || trip.get('drivedStatus') === 'active' || trip.get('drivedStatus') === 'offered')).length;\n      } else {\n        return 0;\n      }\n    }),\n    // eslint-disable-next-line ember/use-brace-expansion\n    freeVehicle: Ember.computed('vehicles.@each', 'vehicles.@each.status', function () {\n      if (!Ember.isEmpty(this.get('vehicles'))) {\n        return this.get('vehicles').filterBy('status', 'free').length;\n      } else {\n        return 0;\n      }\n    }),\n    // eslint-disable-next-line ember/use-brace-expansion\n    stcVehicle: Ember.computed('vehicles.@each', 'vehicles.@each.status', function () {\n      if (!Ember.isEmpty(this.get('vehicles'))) {\n        return this.get('vehicles').filterBy('status', 'STC').length;\n      } else {\n        return 0;\n      }\n    }),\n    totalVehicle: Ember.computed('vehicles', function () {\n      return this.get('vehicles').length;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/stc\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"adept-iq/mixins/zone-label\", \"adept-iq/mixins/zone-style\", \"ember-data/relationships\", \"adept-iq/config/environment\"], function (_exports, _model, _attr, _zoneLabel, _zoneStyle, _relationships, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend(_zoneLabel.default, _zoneStyle.default, {\n    name: (0, _attr.default)('string'),\n    points: (0, _attr.default)(),\n    noOfPoints: Ember.computed('points', function () {\n      let count = 0;\n      const points = this.get('points');\n\n      if (this.get('points') != null) {\n        for (let i = 1; points[i] != null; i++) {\n          count++;\n        }\n\n        return count;\n      }\n\n      return 0;\n    }),\n    polypoints: Ember.computed('points', 'noOfPoints', function () {\n      let polygonPoints = [];\n      const points = this.get('points');\n\n      if (!Ember.isEmpty(points) && this.get('noOfPoints') === 1) {\n        if (this.get('points') != null) {\n          const item = points[1];\n          return item;\n        }\n      } else {\n        if (this.get('points') != null) {\n          for (let i = 1; points[i] != null; i++) {\n            let item = points[i];\n            let polygonPoint = [];\n            polygonPoint.push(item.lat);\n            polygonPoint.push(item.lng);\n            polygonPoints.push(polygonPoint);\n          }\n        }\n      }\n\n      return polygonPoints;\n    }),\n    trips: (0, _relationships.hasMany)('trip'),\n    vehicles: (0, _relationships.hasMany)('vehicleState'),\n    // eslint-disable-next-line ember/use-brace-expansion\n    workspacetrips: Ember.computed('trips.@each', 'trips.@each.bookingType', 'trips.@each.status', function () {\n      if (!Ember.isEmpty(this.get('trips'))) {\n        return this.get('trips').filter(function (item) {\n          return _environment.default.workspaceContext.startDate < item.get('requestedTime') && _environment.default.workspaceContext.endDate > item.get('requestedTime');\n        });\n      } else {\n        return [];\n      }\n    }),\n    asap: Ember.computed('workspacetrips.[]', function () {\n      if (!Ember.isEmpty(this.get('workspacetrips'))) {\n        return this.get('workspacetrips').filter(trip => trip.get('bookingType') === 'asap' && (trip.get('iqtrip.status') === 'booked' || trip.get('iqtrip.status') === 'active')).length;\n      } else {\n        return 0;\n      }\n    }),\n    pb: Ember.computed('workspacetrips.[]', function () {\n      if (!Ember.isEmpty(this.get('workspacetrips'))) {\n        return this.get('workspacetrips').filter(trip => trip.get('bookingType') === 'prebook' && (trip.get('iqtrip.status') === 'booked' || trip.get('iqtrip.status') === 'active')).length;\n      } else {\n        return 0;\n      }\n    }),\n    auction: Ember.computed('workspacetrips.[]', function () {\n      if (!Ember.isEmpty(this.get('workspacetrips'))) {\n        return this.get('workspacetrips').filter(trip => trip.get('dispatchMethod') === 'auction' && (trip.get('iqtrip.status') === 'booked' || trip.get('iqtrip.status') === 'active' || trip.get('iqtrip.status') === 'offered')).length;\n      } else {\n        return 0;\n      }\n    }),\n    // eslint-disable-next-line ember/use-brace-expansion\n    freeVehicle: Ember.computed('vehicles.@each', 'vehicles.@each.status', function () {\n      if (!Ember.isEmpty(this.get('vehicles'))) {\n        return this.get('vehicles').filterBy('status', 'free').length;\n      } else {\n        return 0;\n      }\n    }),\n    // eslint-disable-next-line ember/use-brace-expansion\n    stcVehicle: Ember.computed('vehicles.@each', 'vehicles.@each.status', function () {\n      if (!Ember.isEmpty(this.get('vehicles'))) {\n        return this.get('vehicles').filterBy('status', 'STC').length;\n      } else {\n        return 0;\n      }\n    }),\n    totalVehicle: Ember.computed('vehicles', function () {\n      return this.get('vehicles').length;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/stop\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\", \"adept-iq/mixins/otp-label\", \"adept-iq/mixins/status-value\"], function (_exports, _model, _attr, _relationships, _otpLabel, _statusValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend(_statusValue.default, {\n    driverNotes: (0, _attr.default)('string'),\n    type: (0, _attr.default)('string'),\n    tripId: (0, _attr.default)(),\n    orderId: (0, _attr.default)(),\n    calloutType: (0, _attr.default)('string'),\n    invoiceRefNum: (0, _attr.default)('string'),\n    fare: (0, _attr.default)(),\n    stopStatus: (0, _attr.default)('string'),\n    passengerName: (0, _attr.default)('string'),\n    notes: (0, _attr.default)('string'),\n    place: (0, _relationships.belongsTo)('place'),\n    lat: Ember.computed.alias('place.lat'),\n    lng: Ember.computed.alias('place.lng'),\n    drivedStatus: Ember.computed.alias('trip.drivedStatus'),\n    iqStop: (0, _relationships.belongsTo)('iq-stop', {\n      inverse: 'stop'\n    }),\n    // Ember-Data needs explicit inverses\n    picktrip: (0, _relationships.belongsTo)('trip', {\n      inverse: 'pick'\n    }),\n    droptrip: (0, _relationships.belongsTo)('trip', {\n      inverse: 'drop'\n    }),\n    // use this to get the trip (e.g. from stops widget)\n    trip: Ember.computed('picktrip.content', 'droptrip.content', function () {\n      return this.get('picktrip.content') || this.get('droptrip.content');\n    }),\n    onboardCount: (0, _attr.default)('number'),\n    zone: (0, _attr.default)()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/subscription-exclusion\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    startDate: attr('date', {\n      defaultValue: null\n    }),\n    endDate: attr('date', {\n      defaultValue: null\n    }),\n    subscription: belongsTo('subscription')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/subscription-recurrence-pattern\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n  const WOM_OPTIONS = {\n    first: 'first',\n    second: 'second',\n    third: 'third',\n    fourth: 'fourth',\n    last: 'last'\n  };\n\n  var _default = Model.extend({\n    type: attr('string'),\n    separationCount: attr('number', {\n      defaultValue: 1\n    }),\n    sunday: attr('boolean'),\n    monday: attr('boolean'),\n    tuesday: attr('boolean'),\n    wednesday: attr('boolean'),\n    thursday: attr('boolean'),\n    friday: attr('boolean'),\n    saturday: attr('boolean'),\n    dayOfMonth: attr('number', {\n      defaultValue: null\n    }),\n    weekOfMonth: attr('number', {\n      defaultValue: null\n    }),\n    monthOfYear: attr('number', {\n      defaultValue: null\n    }),\n    everyweekday: attr('string'),\n    pattern: attr('string'),\n    recurring: attr('boolean', {\n      defaultValue: true\n    }),\n    selectedDOWs: Ember.computed('sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', function () {\n      const selectedDOWArray = [];\n      if (this.get('sunday')) selectedDOWArray.push('sunday');\n      if (this.get('monday')) selectedDOWArray.push('monday');\n      if (this.get('tuesday')) selectedDOWArray.push('tuesday');\n      if (this.get('wednesday')) selectedDOWArray.push('wednesday');\n      if (this.get('thursday')) selectedDOWArray.push('thursday');\n      if (this.get('friday')) selectedDOWArray.push('friday');\n      if (this.get('saturday')) selectedDOWArray.push('saturday');\n      return selectedDOWArray;\n    }),\n    isEveryDay: Ember.computed('sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', function () {\n      return this.get('sunday') && this.get('monday') && this.get('tuesday') && this.get('wednesday') && this.get('thursday') && this.get('friday') && this.get('saturday');\n    }),\n    selectedWOM: Ember.computed('weekOfMonth', {\n      get()\n      /* key */\n      {\n        const weekOfMonth = this.get('weekOfMonth');\n\n        switch (weekOfMonth) {\n          case -1:\n            return WOM_OPTIONS.last;\n\n          case 1:\n            return WOM_OPTIONS.first;\n\n          case 2:\n            return WOM_OPTIONS.second;\n\n          case 3:\n            return WOM_OPTIONS.third;\n\n          case 4:\n            return WOM_OPTIONS.fourth;\n\n          default:\n            return null;\n        }\n      },\n\n      set(_, value) {\n        let weekOfMonth = null;\n\n        switch (value) {\n          case WOM_OPTIONS.last:\n            weekOfMonth = -1;\n            break;\n\n          case WOM_OPTIONS.first:\n            weekOfMonth = 1;\n            break;\n\n          case WOM_OPTIONS.second:\n            weekOfMonth = 2;\n            break;\n\n          case WOM_OPTIONS.third:\n            weekOfMonth = 3;\n            break;\n\n          case WOM_OPTIONS.fourth:\n            weekOfMonth = 4;\n            break;\n\n          default:\n            weekOfMonth = null;\n        }\n\n        this.set('weekOfMonth', weekOfMonth);\n        return value;\n      }\n\n    }),\n    subscriptionStartDate: Ember.computed('subscription.startDate', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.startDate');\n      },\n\n      set(_, value) {\n        this.set('subscription.startDate', value);\n        return value;\n      }\n\n    }),\n    subscriptionEndDate: Ember.computed('subscription.endDate', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.endDate');\n      },\n\n      set(_, value) {\n        this.set('subscription.endDate', value);\n        return value;\n      }\n\n    }),\n    subscriptionMaxOccurences: Ember.computed('subscription.maximumOccurrences', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.maximumOccurrences');\n      },\n\n      set(_, value) {\n        this.set('subscription.maximumOccurrences', value);\n        return value;\n      }\n\n    }),\n    exclusionStartDate: Ember.computed('subscription.exclusions.firstObject.startDate', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.exclusions.firstObject.startDate');\n      },\n\n      set(_, value) {\n        this.set('subscription.exclusions.firstObject.startDate', value);\n        return value;\n      }\n\n    }),\n    exclusionEndDate: Ember.computed('subscription.exclusions.firstObject.endDate', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.exclusions.firstObject.endDate');\n      },\n\n      set(_, value) {\n        this.set('subscription.exclusions.firstObject.endDate', value);\n        return value;\n      }\n\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/subscription-travel-need\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n  const SubscriptionTravelNeed = Model.extend({\n    count: attr('number'),\n    subscription: belongsTo('subscription'),\n    travelNeedType: belongsTo('travel-need-type'),\n    passengerType: belongsTo('passenger-type'),\n    isClient: Ember.computed.equal('passengerType.name', 'client'),\n    isPca: Ember.computed.equal('passengerType.name', 'pca'),\n    isCompanion: Ember.computed.equal('passengerType.name', 'companion'),\n    basicTravelNeedType: Ember.computed('travelNeedType', function () {\n      const name = Ember.get(this, 'travelNeedType.name');\n      return name === 'ambulatory' || name === 'wideAmbulatory' || name === 'wheelchair' || name === 'wideWheelchair';\n    }),\n    isEquipment: Ember.computed('travelNeedType', function () {\n      return !this.get('travelNeedType.isServiceAnimal');\n    }),\n    isExtraPassenger: Ember.computed('travelNeedType', function () {\n      return this.get('travelNeedType.isServiceAnimal');\n    })\n  });\n  var _default = SubscriptionTravelNeed;\n  _exports.default = _default;\n});","define(\"adept-iq/models/subscription\", [\"exports\", \"ember-data\", \"ember-data/relationships\", \"lodash\"], function (_exports, _emberData, _relationships, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    sample\n  } = _lodash.default;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n\n  function formatTextExtension(className, value) {\n    return {\n      className: className,\n      value: value\n    };\n  }\n\n  var _default = Model.extend({\n    requestTime: attr('date'),\n    anchor: attr('string'),\n    purpose: attr('string'),\n    origin: belongsTo('bs-location'),\n    destination: belongsTo('bs-location'),\n    fare: attr('number'),\n    originNotes: attr('string'),\n    destinationNotes: attr('string'),\n    startDate: attr('date', {\n      defaultValue: null\n    }),\n    endDate: attr('date', {\n      defaultValue: null\n    }),\n    maximumOccurrences: attr('number'),\n    remainingOccurrences: 0,\n    rider: belongsTo('bs-rider'),\n    subscriptionTravelNeeds: (0, _relationships.hasMany)('subscription-travel-need'),\n    fareType: belongsTo('fare-type'),\n    exclusions: (0, _relationships.hasMany)('subscription-exclusion'),\n    recurrencePatterns: (0, _relationships.hasMany)('subscription-recurrence-pattern'),\n    serviceWindowName: attr('string'),\n    serviceWindow: belongsTo('service-window'),\n    status: Ember.computed('', function () {\n      return sample(['Paused', 'Active']);\n    }),\n    origins: Ember.computed('origin', function () {\n      return [this.get('origin.content')];\n    }),\n    destinations: Ember.computed('destination', function () {\n      return [this.get('destination.content')];\n    }),\n    equipments: Ember.computed.filterBy('subscriptionTravelNeeds', 'isEquipment', true),\n    extraPassengers: Ember.computed.filterBy('subscriptionTravelNeeds', 'isExtraPassenger', true),\n    formattedRecurrence: Ember.computed('recurrencePatterns', function () {\n      let formattedObject = {\n        header: null,\n        values: []\n      };\n      let recurrencePatterns = this.get('recurrencePatterns.firstObject');\n      const selectedDOWArray = [];\n\n      if (recurrencePatterns.get('sunday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Monday`));\n      }\n\n      if (recurrencePatterns.get('monday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Tuesday`));\n      }\n\n      if (recurrencePatterns.get('tuesday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Wednesday`));\n      }\n\n      if (recurrencePatterns.get('wednesday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Thursday`));\n      }\n\n      if (recurrencePatterns.get('thursday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Friday`));\n      }\n\n      if (recurrencePatterns.get('friday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Saturday`));\n      }\n\n      if (recurrencePatterns.get('saturday')) {\n        selectedDOWArray.push(formatTextExtension('valueItem', `Sunday`));\n      }\n\n      formattedObject.values = selectedDOWArray;\n      return formattedObject;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/system-config-type\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    type: attr('string'),\n    description: attr('string')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-activity-log\", [\"exports\", \"ember-data/model\", \"ember-data/attr\"], function (_exports, _model, _attr) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/address.js */\n  var _default = _model.default.extend({\n    tripId: (0, _attr.default)('string'),\n    type: (0, _attr.default)('string'),\n    comments: (0, _attr.default)('string'),\n    actualTime: (0, _attr.default)('date'),\n    callSign: (0, _attr.default)('string'),\n    priority: (0, _attr.default)('string'),\n    logBy: (0, _attr.default)('string')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-address\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/address.js */\n  var _default = _model.default.extend({\n    formattedAddress: (0, _attr.default)('string'),\n    streetName: (0, _attr.default)('string'),\n    streetNr: (0, _attr.default)('string'),\n    unitNr: (0, _attr.default)('string'),\n    region: (0, _attr.default)('string'),\n    postCode: (0, _attr.default)('string'),\n    city: (0, _attr.default)('string'),\n    state: (0, _attr.default)('string'),\n    country: (0, _attr.default)('string'),\n    description: (0, _attr.default)('string'),\n    coord: (0, _relationships.belongsTo)('tm-coord'),\n    addressType: (0, _attr.default)('string'),\n    latlng: Ember.computed('coord', function () {\n      if (this.get('coord.lat') !== undefined && this.get('coord.lng') !== undefined) {\n        return `${this.get('coord.lat')}/${this.get('coord.lng')}`;\n      }\n\n      return '';\n    }),\n    tomtomFormattedAddress: Ember.computed('streetNr', 'streetName', 'region', function () {\n      if (this.get('streetName') !== undefined) {\n        return {\n          address: {\n            freeformAddress: `${this.get('streetNr')} ${this.get('streetName')} ${this.get('region')}`\n          }\n        };\n      }\n\n      return null;\n    }),\n    fullAddress: Ember.computed('address', 'pointOfInterest', function () {\n      const alias = Ember.get(this, 'pointOfInterest.alias');\n      const address = Ember.get(this, 'address');\n      const streetAddress = [];\n\n      if (address) {\n        if (alias) {\n          streetAddress.push(alias + ',');\n        }\n\n        streetAddress.push(address.streetNr);\n        streetAddress.push(address.streetName);\n        const result = [streetAddress.join(' ')];\n        result.push(address.regions); // result.push(address.county);\n\n        result.push(address.stateAbbreviation);\n        result.push(address.postalCode);\n        return result.join(', ');\n      }\n\n      return '';\n    }).readOnly(),\n    streetAddress: Ember.computed('streetNr', 'streetName', function () {\n      const streetNr = this.get('streetNr');\n      const streetName = this.get('streetName');\n      return `${streetNr} ${streetName}`;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-agenda\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/agenda.js */\n  var _default = _model.default.extend({\n    periodType: (0, _attr.default)('string'),\n    items: (0, _relationships.hasMany)('tm-item'),\n    subscription: (0, _relationships.belongsTo)('tm-subscription')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-booking\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data\", \"ember-data/relationships\", \"adept-iq/mixins/trip-predefined-notes\", \"adept-iq/mixins/trip-attributes\"], function (_exports, _model, _attr, _emberData, _relationships, _tripPredefinedNotes, _tripAttributes) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const WOM_OPTIONS = {\n    first: 'first',\n    second: 'second',\n    third: 'third',\n    fourth: 'fourth',\n    last: 'last'\n  };\n\n  var _default = _model.default.extend(_emberData.default.EmbeddedRecordsMixin, _tripPredefinedNotes.default, _tripAttributes.default, {\n    /*trackingId: attr('string'),\n    externaltripId: attr('string'),\n    tripId: attr('string'),\n    routeId: attr('string'),\n    requestedProvider: belongsTo('tm-requested-provider', { async: false, embedded: 'always'}),\n    source: belongsTo('source', { async: false, embedded: 'always'}),\n    status: attr('string'),\n    passengers: hasMany('tm-passenger', { async: false, embedded: 'always'}),\n    stopPoints: hasMany('tm-stop-point', { async: false, embedded: 'always'}),\n    price: belongsTo('tm-price', { async: false, embedded: 'always'}),\n    prices: hasMany('tm-price', { async: false, embedded: 'always'}),\n    relatedIds: hasMany('tm-elated-id', { async: false, embedded: 'always'}),\n    subscription: belongsTo('tm-subscription', { async: false, embedded: 'always'})*/\n    trackingId: (0, _attr.default)('string'),\n    tripId: (0, _attr.default)('string'),\n    routeId: (0, _attr.default)('string'),\n    requestedProvider: (0, _attr.default)(),\n    source: (0, _attr.default)(),\n    status: (0, _attr.default)('string'),\n    passengers: (0, _attr.default)(),\n    stopPoints: (0, _attr.default)(),\n    price: (0, _attr.default)(),\n    prices: (0, _attr.default)(),\n    relatedIds: (0, _attr.default)(),\n    subscriptions: (0, _attr.default)(),\n    subscription: (0, _relationships.belongsTo)('subscription'),\n    passengerType: (0, _attr.default)(),\n    dispatchType: (0, _attr.default)(),\n    tripType: (0, _attr.default)(),\n    //Supporting models\n    account: (0, _attr.default)(),\n    driverNotes: (0, _attr.default)(),\n    operatorNotes: (0, _attr.default)(),\n    acctCardNr: (0, _attr.default)(),\n    editmodelcontext: (0, _attr.default)({\n      serialize: false\n    }),\n    routeExec: (0, _attr.default)(),\n    customerReference: (0, _attr.default)(),\n    fixedAmount: (0, _attr.default)(),\n    isAccountPickups: Ember.computed('editmodelcontext.accountTrips', function () {\n      if (!Ember.isEmpty(this.get('editmodelcontext.accountTrips'))) {\n        const length = this.get('editmodelcontext.accountTrips').length;\n\n        if (length >= 1) {\n          return false;\n        }\n\n        return true;\n      } else {\n        return true;\n      }\n    }),\n    isAccountFixedPriceTrips: Ember.computed('editmodelcontext.accountFixedPriceTrips', function () {\n      if (!Ember.isEmpty(this.get('editmodelcontext.accountFixedPriceTrips'))) {\n        const length = this.get('editmodelcontext.accountFixedPriceTrips').length;\n\n        if (length >= 1) {\n          return false;\n        }\n\n        return true;\n      } else {\n        return true;\n      }\n    }),\n    selectedDOWs: Ember.computed('subscriptions.firstObject', function () {\n      const selectedDOWArray = [];\n      if (this.get('subscriptions.firstObject.sunday')) selectedDOWArray.push('sunday');\n      if (this.get('subscriptions.firstObject.monday')) selectedDOWArray.push('monday');\n      if (this.get('subscriptions.firstObject.tuesday')) selectedDOWArray.push('tuesday');\n      if (this.get('subscriptions.firstObject.wednesday')) selectedDOWArray.push('wednesday');\n      if (this.get('subscriptions.firstObject.thursday')) selectedDOWArray.push('thursday');\n      if (this.get('subscriptions.firstObject.friday')) selectedDOWArray.push('friday');\n      if (this.get('subscriptions.firstObject.saturday')) selectedDOWArray.push('saturday');\n      return selectedDOWArray;\n    }),\n    isEveryDay: Ember.computed('subscriptions.firstObject.', function () {\n      return this.get('subscriptions.firstObject.sunday') && this.get('subscriptions.firstObject.monday') && this.get('subscriptions.firstObject.tuesday') && this.get('subscriptions.firstObject.wednesday') && this.get('subscriptions.firstObject.thursday') && this.get('subscriptions.firstObject.friday') && this.get('subscriptions.firstObject.saturday');\n    }),\n    selectedWOM: Ember.computed('weekOfMonth', {\n      get()\n      /* key */\n      {\n        const weekOfMonth = this.get('weekOfMonth');\n\n        switch (weekOfMonth) {\n          case -1:\n            return WOM_OPTIONS.last;\n\n          case 1:\n            return WOM_OPTIONS.first;\n\n          case 2:\n            return WOM_OPTIONS.second;\n\n          case 3:\n            return WOM_OPTIONS.third;\n\n          case 4:\n            return WOM_OPTIONS.fourth;\n\n          default:\n            return null;\n        }\n      },\n\n      set(_, value) {\n        let weekOfMonth = null;\n\n        switch (value) {\n          case WOM_OPTIONS.last:\n            weekOfMonth = -1;\n            break;\n\n          case WOM_OPTIONS.first:\n            weekOfMonth = 1;\n            break;\n\n          case WOM_OPTIONS.second:\n            weekOfMonth = 2;\n            break;\n\n          case WOM_OPTIONS.third:\n            weekOfMonth = 3;\n            break;\n\n          case WOM_OPTIONS.fourth:\n            weekOfMonth = 4;\n            break;\n\n          default:\n            weekOfMonth = null;\n        }\n\n        this.set('weekOfMonth', weekOfMonth);\n        return value;\n      }\n\n    }),\n    subscriptionStartDate: Ember.computed('subscription.startDate', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.startDate');\n      },\n\n      set(_, value) {\n        this.set('subscription.startDate', value);\n        return value;\n      }\n\n    }),\n    subscriptionEndDate: Ember.computed('subscription.endDate', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.endDate');\n      },\n\n      set(_, value) {\n        this.set('subscription.endDate', value);\n        return value;\n      }\n\n    }),\n    subscriptionMaxOccurences: Ember.computed('subscription.maximumOccurrences', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.maximumOccurrences');\n      },\n\n      set(_, value) {\n        this.set('subscription.maximumOccurrences', value);\n        return value;\n      }\n\n    }),\n    exclusionStartDate: Ember.computed('subscription.exclusions.firstObject.startDate', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.exclusions.firstObject.startDate');\n      },\n\n      set(_, value) {\n        this.set('subscription.exclusions.firstObject.startDate', value);\n        return value;\n      }\n\n    }),\n    exclusionEndDate: Ember.computed('subscription.exclusions.firstObject.endDate', {\n      get()\n      /* key */\n      {\n        return this.get('subscription.exclusions.firstObject.endDate');\n      },\n\n      set(_, value) {\n        this.set('subscription.exclusions.firstObject.endDate', value);\n        return value;\n      }\n\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-canned-message-template\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    body: attr('string'),\n    messageNr: attr('string'),\n    // TODO: normalize in serializer\n    provider: attr('object')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-canned-message\", [\"exports\", \"ember-data\", \"ember-data/relationships\"], function (_exports, _emberData, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _exports.MESSAGE_STATUSES = _exports.MESSAGE_STATUS_DELETED = _exports.MESSAGE_STATUS_FAILED = _exports.MESSAGE_STATUS_RECEIVED = _exports.MESSAGE_STATUS_SENT = _exports.MESSAGE_STATUS_SENDING = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n  const MESSAGE_STATUS_SENDING = 'Sending';\n  _exports.MESSAGE_STATUS_SENDING = MESSAGE_STATUS_SENDING;\n  const MESSAGE_STATUS_SENT = 'Sent';\n  _exports.MESSAGE_STATUS_SENT = MESSAGE_STATUS_SENT;\n  const MESSAGE_STATUS_RECEIVED = 'Received';\n  _exports.MESSAGE_STATUS_RECEIVED = MESSAGE_STATUS_RECEIVED;\n  const MESSAGE_STATUS_FAILED = 'Failed';\n  _exports.MESSAGE_STATUS_FAILED = MESSAGE_STATUS_FAILED;\n  const MESSAGE_STATUS_DELETED = 'Deleted';\n  _exports.MESSAGE_STATUS_DELETED = MESSAGE_STATUS_DELETED;\n  const MESSAGE_STATUSES = [MESSAGE_STATUS_SENDING, MESSAGE_STATUS_SENT, MESSAGE_STATUS_RECEIVED, MESSAGE_STATUS_FAILED, MESSAGE_STATUS_DELETED];\n  _exports.MESSAGE_STATUSES = MESSAGE_STATUSES;\n\n  var _default = Model.extend({\n    body: attr('string'),\n    messageNr: attr('string'),\n    replyToMsgId: attr('string'),\n    priority: attr('string', {\n      defaultValue: 'normal'\n    }),\n    createdTime: attr('date', {\n      defaultValue: () => new Date()\n    }),\n    deliveredTime: attr('date'),\n    readTime: attr('date'),\n    deletedTime: attr('date'),\n    // these are used to normalize non-JSON-API payload\n    driverId: attr('string'),\n    driverEndPointType: attr('string', {\n      defaultValue: 'recipient'\n    }),\n    // TODO: make sure API is supplying these\n    vehicleId: attr('string'),\n    routeId: attr('string'),\n    // this is \"proxied\" to `driverId` and `driverEndPointType` above\n    driver: (0, _relationships.belongsTo)('tm-driver'),\n    // TODO: implement when supported by API\n    // vehicle: belongsTo('tm-vehicle'),\n    // route: belongsTo('tm-route'),\n    isDelivered: Ember.computed('deliveredTime', function () {\n      return Ember.isPresent(this.get('deliveredTime'));\n    }),\n    isRead: Ember.computed('readTime', function () {\n      return Ember.isPresent(this.get('readTime'));\n    }),\n    isDeleted: Ember.computed('deletedTime', function () {\n      return Ember.isPresent(this.get('deletedTime'));\n    }),\n    status: Ember.computed('isDelivered', 'isRead', 'isDeleted', function () {\n      if (this.get('isDeleted')) return MESSAGE_STATUS_DELETED;\n      if (this.get('isRead')) return MESSAGE_STATUS_RECEIVED;\n      if (this.get('isDelivered')) return MESSAGE_STATUS_SENT; // TODO: how do we know when a message is \"failed\"?\n\n      return MESSAGE_STATUS_SENDING;\n    }),\n    readString: Ember.computed('isRead', function () {\n      return this.get('isRead') ? 'Yes' : 'No';\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-common-operational-attribute\", [\"exports\", \"ember-data/model\", \"ember-data/attr\"], function (_exports, _model, _attr) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  //import { belongsTo, hasMany } from 'ember-data/relationships';\n  var _default = _model.default.extend({\n    provider: (0, _attr.default)(),\n    name: (0, _attr.default)(),\n    description: (0, _attr.default)(),\n    type: (0, _attr.default)(),\n    displayName: (0, _attr.default)(),\n    datum: (0, _attr.default)(),\n    notes: (0, _attr.default)()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-config-parameter-value\", [\"exports\", \"ember-data/model\", \"ember-data/attr\"], function (_exports, _model, _attr) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  //import { belongsTo, hasMany } from 'ember-data/relationships';\n  var _default = _model.default.extend({\n    provider: (0, _attr.default)(),\n    value: (0, _attr.default)(),\n    configParameter: (0, _attr.default)()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-coord\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/coord.js */\n  var _default = _model.default.extend({\n    lat: (0, _attr.default)('number'),\n    lng: (0, _attr.default)('number'),\n    geoNode: (0, _attr.default)(),\n    address: (0, _relationships.belongsTo)('tm-address')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-driver\", [\"exports\", \"ember-data\", \"ember-data/relationships\", \"ember-data/attr\"], function (_exports, _emberData, _relationships, _attr) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    status: (0, _attr.default)('string'),\n    name: (0, _attr.default)('string'),\n    lastName: (0, _attr.default)('string'),\n    firstName: (0, _attr.default)('string'),\n    middleName: (0, _attr.default)('string'),\n    badgeNr: (0, _attr.default)('string'),\n    email: (0, _attr.default)('string'),\n    // these are non-JSON-API compliant object attrs that will need to be\n    // normalized before consumption\n    provider: (0, _attr.default)('object'),\n    phone1: (0, _attr.default)('object'),\n    phone2: (0, _attr.default)('object'),\n    address: (0, _attr.default)('object'),\n    attributes: (0, _attr.default)('object'),\n    restrictions: (0, _attr.default)('object'),\n    licenses: (0, _attr.default)('object'),\n    iqDriver: (0, _relationships.belongsTo)('iq-driver', {\n      inverse: 'tmDrivers'\n    }),\n    cannedMessages: (0, _relationships.hasMany)('tm-canned-message')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-exception\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/exception.js */\n  var _default = _emberData.default.Model.extend({\n    exceptionDate: _emberData.default.attr('string'),\n    time: _emberData.default.attr('string'),\n    subscription: _emberData.default.belongsTo('tm-subscription')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-item\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/item.js */\n  var _default = _model.default.extend({\n    type: (0, _attr.default)('string'),\n    time: (0, _attr.default)('string'),\n    agenda: (0, _relationships.belongsTo)('tm-agenda')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-operator\", [\"exports\", \"ember-data/model\", \"ember-data/attr\"], function (_exports, _model, _attr) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/operator.js */\n  var _default = _model.default.extend({\n    operatorId: (0, _attr.default)('string'),\n    name: (0, _attr.default)('string') //source: belongsTo('tm-source')\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-passenger-event\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/passenger-event.js */\n  var _default = _model.default.extend({\n    type: (0, _attr.default)('string'),\n    passengerId: (0, _attr.default)('string'),\n    time: (0, _attr.default)('string'),\n    anchor: (0, _attr.default)('boolean'),\n    driverNote: (0, _attr.default)('string'),\n    pickupWindow: (0, _relationships.belongsTo)('tm-pickup-window'),\n    stopPoint: (0, _relationships.belongsTo)('tm-stop-point')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-passenger\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/address.js */\n  var _default = _model.default.extend({\n    name: (0, _attr.default)('string'),\n    type: (0, _attr.default)('string'),\n    lastName: (0, _attr.default)('string'),\n    firstName: (0, _attr.default)('string'),\n    middleName: (0, _attr.default)('string'),\n    phone1: (0, _relationships.belongsTo)('tm-phone1'),\n    phone2: (0, _relationships.belongsTo)('tm-phone2'),\n    email: (0, _attr.default)('string'),\n    bookingNote: (0, _attr.default)('string'),\n    requiredAttributes: (0, _relationships.hasMany)('tm-required-attribute'),\n    boardingOverhead: (0, _relationships.belongsTo)('tm-boarding-overhead'),\n    trip: (0, _relationships.belongsTo)('tm-booking')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-pickup-window\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/pickup-window.js */\n  var _default = _model.default.extend({\n    start: (0, _attr.default)('string'),\n    end: (0, _attr.default)('string'),\n    passengerEvent: (0, _relationships.belongsTo)('tm-passenger-event')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-price\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/price.js */\n  var _default = _model.default.extend({\n    payerIdentifier: (0, _attr.default)('string'),\n    currencyCode: (0, _attr.default)('string'),\n    estimate: (0, _attr.default)('number'),\n    fixed: (0, _attr.default)('number'),\n    tip: (0, _relationships.belongsTo)('tm-tip'),\n    paymentTypeName: (0, _attr.default)('string'),\n    trip: (0, _relationships.belongsTo)('tm-booking')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-related-id\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/agenda.js */\n  var _default = _model.default.extend({\n    periodType: (0, _attr.default)('string'),\n    items: (0, _relationships.hasMany)('item'),\n    subscription: (0, _relationships.belongsTo)('tm-subscription')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-requested-provider\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/requested-provider.js */\n  var _default = _model.default.extend({\n    type: (0, _attr.default)('string'),\n    name: (0, _attr.default)('string'),\n    trip: (0, _relationships.belongsTo)('tm-booking')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-required-attribute\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/required-attribute.js */\n  var _default = _model.default.extend({\n    type: (0, _attr.default)('string'),\n    cnt: (0, _attr.default)('number'),\n    passenger: (0, _relationships.belongsTo)('tm-passenger')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-rider-profile\", [\"exports\", \"ember-data/model\", \"ember-data/attr\"], function (_exports, _model, _attr) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/coord.js */\n  var _default = _model.default.extend({\n    provider: (0, _attr.default)(),\n    name: (0, _attr.default)('string'),\n    contactLastName: (0, _attr.default)('string'),\n    contactFirstName: (0, _attr.default)('string'),\n    contactMiddleName: (0, _attr.default)('string'),\n    phone1: (0, _attr.default)(),\n    phone2: (0, _attr.default)(),\n    email: (0, _attr.default)('string'),\n    countryCode: (0, _attr.default)('string'),\n    notes: (0, _attr.default)(),\n    account: (0, _attr.default)(),\n    requiredAttributes: (0, _attr.default)(),\n    boardingOverhead: (0, _attr.default)(),\n    defaultFavoritePaymentId: (0, _attr.default)(),\n    favoritePayments: (0, _attr.default)(),\n    defaultFavoriteTripId: (0, _attr.default)(),\n    favoriteTrips: (0, _attr.default)(),\n    eligibilities: (0, _attr.default)(),\n    SSN: (0, _attr.default)('string'),\n    dob: (0, _attr.default)(),\n    locale: (0, _attr.default)('string'),\n    externalId: (0, _attr.default)('string'),\n    status: (0, _attr.default)('string')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-rider\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/coord.js */\n  var _default = _model.default.extend({\n    //provider:  attr(),\n    passengerType: (0, _attr.default)('string'),\n    name: (0, _attr.default)('string'),\n    lastName: (0, _attr.default)('string'),\n    firstName: (0, _attr.default)('string'),\n    middleName: (0, _attr.default)('string'),\n    email: (0, _attr.default)('string'),\n    phone1: (0, _attr.default)(),\n    //phone2:  attr(),\n    account: (0, _attr.default)(),\n    countryCode: (0, _attr.default)('string'),\n    requiredAttributes: (0, _attr.default)(),\n    boardingOverhead: (0, _attr.default)(),\n    apps: (0, _attr.default)(),\n    defaultFavoritePaymentId: (0, _attr.default)(),\n    favoritePayments: (0, _attr.default)(),\n    defaultFavoritePickupId: (0, _attr.default)('number'),\n    favoritePickups: (0, _attr.default)(),\n    eligibilities: (0, _attr.default)(),\n    //SSN: attr('string'),\n    //dob: attr('string'),\n    //companions:  attr(),\n    //pcas:  attr(),\n    //locale: attr('string'),\n    //externalId: attr('string'),\n    status: (0, _attr.default)('string')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-route-exec\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/coord.js */\n  var _default = _model.default.extend({\n    version: (0, _attr.default)('string'),\n    trackingId: (0, _attr.default)('string'),\n    routeId: (0, _attr.default)('string'),\n    driver: (0, _attr.default)(),\n    vehicle: (0, _attr.default)(),\n    state: (0, _attr.default)('string'),\n    passengers: (0, _attr.default)(),\n    stopPoints: (0, _attr.default)(),\n    prices: (0, _attr.default)(),\n    clusters: (0, _attr.default)(),\n    breaks: (0, _attr.default)(),\n    requestedProvider: (0, _attr.default)(),\n    source: (0, _attr.default)(),\n    start: (0, _attr.default)(),\n    end: (0, _attr.default)(),\n    driverScheduleId: (0, _attr.default)('string'),\n    vehicleScheduleId: (0, _attr.default)('string')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-source\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend({\n    type: (0, _attr.default)('string'),\n    name: (0, _attr.default)('string'),\n    operator: (0, _relationships.belongsTo)('tm-operator'),\n    trip: (0, _relationships.belongsTo)('tm-booking')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-stop-point\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/stop-point.js */\n  var _default = _model.default.extend({\n    index: (0, _attr.default)('number'),\n    address: (0, _relationships.belongsTo)('tm-address'),\n    directions: (0, _attr.default)('string'),\n    passengerEvents: (0, _relationships.hasMany)('tm-passenger-event'),\n    trip: (0, _relationships.belongsTo)('tm-booking')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-subscription\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/coord.js */\n  var _default = _model.default.extend({\n    lat: (0, _attr.default)('number'),\n    lng: (0, _attr.default)('number'),\n    address: (0, _relationships.belongsTo)('tm-address')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-text-message\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    subject: attr(),\n    body: attr(),\n    sender: attr(),\n    recipients: attr(),\n    deliveryTime: attr(),\n    conversation: attr(),\n    driver: attr(),\n    vehicle: attr()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/tm-tip\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\"], function (_exports, _model, _attr, _relationships) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* app/models/tip.js */\n  var _default = _model.default.extend({\n    percent: (0, _attr.default)('number'),\n    minValue: (0, _attr.default)('number'),\n    price: (0, _relationships.belongsTo)('tm-price')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/travel-need-type\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    name: attr('string'),\n    vehicleCapacityCount: attr('number'),\n    loadTime: attr('number'),\n    unloadTime: attr('number'),\n    displayName: attr('string'),\n    displayOrder: attr('number'),\n    schedule: belongsTo(),\n    vehicleCapacityType: belongsTo(),\n    isServiceAnimal: Ember.computed('name', function () {\n      return this.get('name') === 'serviceAnimal';\n    }),\n    isAmbulatory: Ember.computed('name', function () {\n      return this.get('name') === 'ambulatory';\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/travel-need\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    travelNeedType: belongsTo()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/trip-exec-event\", [\"exports\", \"ember-data\", \"adept-iq/mixins/otp-label\", \"adept-iq/mixins/status-value\"], function (_exports, _emberData, _otpLabel, _statusValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    status: attr('string'),\n    driverId: attr(),\n    vehicleId: attr(),\n    driver: belongsTo('driver'),\n    vehicle: belongsTo('vehicle'),\n    trip: belongsTo('trip', {\n      inverse: 'tripExecEvent'\n    }),\n    iqTrip: belongsTo('iq-trip', {\n      inverse: 'tripExecEvent'\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/trip\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"ember-data/relationships\", \"adept-iq/mixins/otp-label\", \"adept-iq/mixins/status-value\"], function (_exports, _model, _attr, _relationships, _otpLabel, _statusValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend(_statusValue.default, {\n    status: (0, _attr.default)('string'),\n    planState: (0, _attr.default)('number'),\n    requestedTime: (0, _attr.default)('date'),\n    requestTime: (0, _attr.default)('date'),\n    promiseTime: (0, _attr.default)('date'),\n    anchor: (0, _attr.default)('string'),\n    tripExecEvent: (0, _relationships.belongsTo)('trip-exec-event', {\n      inverse: 'trip'\n    }),\n    vehicleState: (0, _relationships.belongsTo)('vehicle-state'),\n    iqTrip: (0, _relationships.belongsTo)('iq-trip', {\n      inverse: 'trip'\n    }),\n    //TODO\n    //fareType: belongsTo('fare-type'),\n    pick: (0, _relationships.belongsTo)('stop', {\n      inverse: 'picktrip'\n    }),\n    drop: (0, _relationships.belongsTo)('stop', {\n      inverse: 'droptrip'\n    }),\n    // this is created for AC; should go through legs\n    rider: (0, _relationships.belongsTo)('rider'),\n    legs: (0, _relationships.hasMany)('leg'),\n    originlocations: (0, _relationships.hasMany)('location'),\n    destinationlocations: (0, _relationships.hasMany)('location'),\n    stops: Ember.computed.collect('pick', 'drop'),\n    legTravelNeeds: Ember.computed.alias('leg.legTravelNeeds'),\n    extraPassengers: Ember.computed.alias('rider.extraPassengers'),\n    equipments: Ember.computed.alias('rider.equipments'),\n    pickAddress: Ember.computed.alias('pick.place.streetAddress'),\n    account: (0, _relationships.belongsTo)('account'),\n    zone: (0, _relationships.belongsTo)('zone'),\n    location: Ember.computed('pick.location', 'drop.location', function () {\n      let location = [];\n      const start = [this.get('pick.location.lat'), this.get('pick.location.lng')];\n      if (Ember.isPresent(start[0]) && Ember.isPresent(start[1])) location.push(start);\n      const end = [this.get('drop.location.lat'), this.get('drop.location.lng')];\n      if (Ember.isPresent(end[0]) && Ember.isPresent(end[1])) location.push(end);\n      return location;\n    }),\n    polyline: Ember.computed('pick.location.{lat,lng}', 'drop.location.{lat,lng}', function () {\n      const pickLat = this.get('pick.location.lat');\n      const pickLng = this.get('pick.location.lng');\n      const dropLat = this.get('drop.location.lat');\n      const dropLng = this.get('drop.location.lng');\n\n      if ([pickLat, pickLng, dropLat, dropLng].any(Ember.isNone)) {\n        return null;\n      }\n\n      return [[pickLat, pickLng], [dropLat, dropLng]];\n    }),\n    lat: Ember.computed('pick.location.{lat,lng}', function () {\n      const pickLat = this.get('pick.place.lat');\n      return pickLat;\n    }),\n    lng: Ember.computed('pick.location.{lat,lng}', function () {\n      const pickLng = this.get('pick.place.lng');\n      return pickLng;\n    }),\n    tripType: (0, _attr.default)('string'),\n    bookingType: (0, _attr.default)('string'),\n    operatorNotes: (0, _attr.default)('string'),\n    driverNotes: (0, _attr.default)('string'),\n    riderName: (0, _attr.default)('string'),\n    riderPhoneNr: (0, _attr.default)('string'),\n    tripStatus: (0, _attr.default)('string'),\n    paymentType: (0, _attr.default)('string'),\n    drivedStatus: Ember.computed('tripStatus', 'tripExecEvent.content.status', function () {\n      let tripExecEvent = this.get('tripExecEvent.content');\n\n      if (this.get('tripStatus') === 'completed' || this.get('tripStatus') === 'cancelled') {\n        return this.get('tripStatus');\n      }\n\n      if (tripExecEvent) {\n        return tripExecEvent.get('status');\n      }\n\n      return this.get('tripStatus');\n    }),\n    driver: Ember.computed('tripExecEvent.content.driver', function () {\n      let tripExecEvent = this.get('tripExecEvent.content');\n\n      if (tripExecEvent) {\n        return tripExecEvent.get('driver');\n      }\n\n      return null;\n    }),\n    vehicle: Ember.computed('tripExecEvent.content.vehicle', function () {\n      let tripExecEvent = this.get('tripExecEvent.content');\n\n      if (tripExecEvent) {\n        return tripExecEvent.get('vehicle');\n      }\n\n      return null;\n    }),\n    fare: (0, _attr.default)('number'),\n    statusReason: (0, _attr.default)('string'),\n    statusNote: (0, _attr.default)('string'),\n    tripTime: (0, _attr.default)('date'),\n    jobPriority: (0, _attr.default)('number'),\n    dispatchMethod: (0, _attr.default)('string'),\n    companyName: (0, _attr.default)('string'),\n    noShowReasonCode: (0, _attr.default)('string'),\n    auctionTime: (0, _attr.default)('date'),\n    cancelReason: (0, _attr.default)('string'),\n    callbackTime: (0, _attr.default)('date'),\n    attributes: (0, _attr.default)('string')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/vehicle-capacity-config\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    count: attr('number'),\n    vehicleType: belongsTo(),\n    vehicleCapacityType: belongsTo()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/vehicle-capacity-type\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    hasMany,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    name: attr('string'),\n    engineId: attr('string'),\n    engineName: attr('string'),\n    constrainedByLIFO: attr('boolean'),\n    dwellFactor: attr('number'),\n    description: attr('string'),\n    schedule: belongsTo(),\n    vehicleCapacityConfigs: hasMany()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/vehicle-event\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    type: attr('string'),\n    timestamp: attr('date'),\n    lat: attr('number'),\n    lng: attr('number'),\n    heading: attr('number'),\n    speed: attr('number'),\n    odometer: attr('number'),\n    location: Ember.computed.collect('lat', 'lng')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/vehicle-route\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr,\n    belongsTo,\n    hasMany\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    plannedStartTime: attr('date'),\n    plannedEndTime: attr('date'),\n    route: belongsTo(),\n    vehicle: belongsTo(),\n    driverShifts: hasMany(),\n    latestDriver: Ember.computed.alias('latestDriverShift.driver'),\n    latestDriverShift: Ember.computed('driverShifts.@each.plannedStartTime', function () {\n      return this.get('driverShifts').sortBy('plannedStartTime').get('lastObject');\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/vehicle-state\", [\"exports\", \"ember-data\", \"adept-iq/mixins/otp-label\", \"adept-iq/mixins/status-value\"], function (_exports, _emberData, _otpLabel, _statusValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    attr,\n    hasMany\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    status: attr('string'),\n    zones: attr(),\n    driver: belongsTo('driver'),\n    zone: belongsTo('zone'),\n    stand: belongsTo('stand'),\n    stc: belongsTo('stc'),\n    standQueuePos: attr('string'),\n    zoneQueuePos: attr('string'),\n    offset: attr(),\n    trip: belongsTo('trip', {\n      inverse: 'vehicleState'\n    }),\n    iqVehicle: belongsTo('iq-vehicle', {\n      inverse: 'vehicleState'\n    }),\n    vehicle: belongsTo('vehicle', {\n      inverse: 'vehicleState'\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/vehicle-type\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    hasMany,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    name: attr('string'),\n    schedule: belongsTo(),\n    vehicle: hasMany(),\n    vehicleCapacityConfigs: hasMany()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/vehicle\", [\"exports\", \"ember-data\", \"adept-iq/mixins/otp-label\", \"adept-iq/mixins/status-value\"], function (_exports, _emberData, _otpLabel, _statusValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    hasMany,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend(_statusValue.default, {\n    avl: belongsTo('avl', {\n      inverse: 'vehicle'\n    }),\n    vehicleState: belongsTo('vehicle-state', {\n      inverse: 'vehicle'\n    }),\n    name: attr('string'),\n    plateNr: attr('string'),\n    mobileId: attr('number'),\n    xmin: attr('string'),\n    serviceStatus: attr('string'),\n    lastGpsPing: attr('date'),\n    mileage: attr('string'),\n    schedule: belongsTo(),\n    provider: belongsTo(),\n    callsign: attr('string'),\n    vehicleCode: attr('string'),\n    odo: attr('string'),\n    registration: attr('string'),\n    vehicleModel: attr('string'),\n    description: attr('string'),\n    year: attr('string'),\n    color: attr('string'),\n    make: attr('string'),\n    attributes: attr(),\n    attributesList: Ember.computed('attributes.[]', function () {\n      if (!Ember.isEmpty(this.get('attributes'))) {\n        return Array.prototype.map.call(this.get('attributes'), attribute => attribute.type).toString();\n      } else {\n        return [];\n      }\n    }),\n    hardwareId: attr('string'),\n    companyName: attr('string'),\n    suspensionType: attr('string'),\n    // eslint-disable-next-line ember/use-brace-expansion\n    driver: Ember.computed('vehicleState.content.driver', 'drivedStatus', function () {\n      let vehicleState = this.get('vehicleState.content');\n\n      if (vehicleState) {\n        if (this.get('drivedStatus') === 'off') {\n          return null;\n        }\n\n        return vehicleState.get('driver');\n      }\n\n      return null;\n    }),\n    standId: attr('string'),\n    standQueuePos: Ember.computed.alias('vehicleState.content.standQueuePos'),\n    zoneQueuePos: Ember.computed.alias('vehicleState.content.zoneQueuePos'),\n    QPos: attr(),\n    status: attr('string'),\n    currentAVLLocation: Ember.computed.alias('avl'),\n    lat: Ember.computed.alias('currentAVLLocation.lat'),\n    lng: Ember.computed.alias('currentAVLLocation.lng'),\n    timestamp: Ember.computed.alias('currentAVLLocation.timestamp'),\n    heading: Ember.computed.alias('currentAVLLocation.heading'),\n    speed: Ember.computed.alias('currentAVLLocation.speed'),\n    sortedAvls: Ember.computed('avl', function () {\n      return this.get('avl');\n    }),\n    iqVehicle: belongsTo('iq-vehicle', {\n      inverse: 'vehicle'\n    }),\n    lastKnownCoord: Ember.computed.collect('lat', 'lng'),\n    point: Ember.computed.collect('lat', 'lng'),\n    suspensionFlag: Ember.computed('suspensionType', function () {\n      if (this.get('suspensionType')) {\n        return true;\n      }\n\n      return false;\n    }),\n    drivedStatus: Ember.computed('vehicleState.content.status', function () {\n      if (this.get('vehicleState')) {\n        let vehicleState = this.get('vehicleState.content');\n\n        if (vehicleState) {\n          return vehicleState.get('status');\n        }\n      }\n\n      return this.get('status');\n    }),\n    zone: Ember.computed('vehicleState.content.zone', function () {\n      let vehicleState = this.get('vehicleState.content');\n\n      if (vehicleState) {\n        return vehicleState.get('zone');\n      }\n    }),\n    stand: Ember.computed('vehicleState.content.stand', function () {\n      let vehicleState = this.get('vehicleState.content');\n\n      if (vehicleState) {\n        return vehicleState.get('stand');\n      }\n    }),\n    trips: hasMany('trip'),\n    GPS: Ember.computed('lat', 'lng', function () {\n      if (!Ember.isBlank(this.get('lat')) && !Ember.isBlank(this.get('lng')) && !isNaN(this.get('lat')) && !isNaN(this.get('lng')) && this.get('lat') !== 0 && this.get('lng') !== 0 && this.get('lat') !== 181 && this.get('lng') !== 181 && this.get('lat') !== -181 && this.get('lng') !== -181) {\n        return 'Valid';\n      } else {\n        return 'Invalid';\n      }\n    }),\n    GPSTimestamp: Ember.computed.alias('currentAVLLocation.timestamp')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/widget-config\", [\"exports\", \"ember-data\", \"lodash\"], function (_exports, _emberData, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    attr\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    componentName: attr('string'),\n    title: attr('string'),\n    width: attr('number'),\n    minWidth: attr('number'),\n    height: attr('number'),\n    minHeight: attr('number'),\n    x: attr('number'),\n    y: attr('number'),\n    options: attr('object', {\n      defaultValue: () => {}\n    }),\n    rowComponent: attr('string'),\n    hideWidgetControls: attr('boolean'),\n\n    mergeOptions(changes = {}) {\n      const options = this.get('options');\n\n      const mergedOptions = _lodash.default.merge({}, options, changes);\n\n      this.set('options', mergedOptions);\n      this.notifyPropertyChange('options');\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/zone-stat\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Model,\n    belongsTo,\n    attr,\n    hasMany\n  } = _emberData.default;\n\n  var _default = Model.extend({\n    asap: attr('number'),\n    pb: attr('number'),\n    auction: attr('number'),\n    freeVehicle: attr('number'),\n    stcVehicle: attr('number')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/models/zone\", [\"exports\", \"ember-data/model\", \"ember-data/attr\", \"adept-iq/mixins/zone-label\", \"adept-iq/mixins/zone-style\", \"ember-data/relationships\", \"adept-iq/config/environment\"], function (_exports, _model, _attr, _zoneLabel, _zoneStyle, _relationships, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _model.default.extend(_zoneLabel.default, _zoneStyle.default, {\n    name: (0, _attr.default)('string'),\n    points: (0, _attr.default)(),\n    noOfPoints: Ember.computed('points', function () {\n      let count = 0;\n      const points = this.get('points');\n\n      if (this.get('points') != null) {\n        for (let i = 1; points[i] != null; i++) {\n          count++;\n        }\n\n        return count;\n      }\n\n      return 0;\n    }),\n    polypoints: Ember.computed('points', 'noOfPoints', function () {\n      let polygonPoints = [];\n      const points = this.get('points');\n\n      if (!Ember.isEmpty(points) && this.get('noOfPoints') === 1) {\n        if (this.get('points') != null) {\n          const item = points[1];\n          return item;\n        }\n      } else {\n        if (this.get('points') != null) {\n          for (let i = 1; points[i] != null; i++) {\n            let item = points[i];\n            let polygonPoint = [];\n            polygonPoint.push(item.lat);\n            polygonPoint.push(item.lng);\n            polygonPoints.push(polygonPoint);\n          }\n        }\n      }\n\n      return polygonPoints;\n    }),\n    calculateCenter: Ember.computed('points', 'noOfPoints', function () {\n      let minlat = false;\n      let minlng = false;\n      let maxlat = false;\n      let maxlng = false;\n      const points = this.get('points');\n\n      for (let i = 1; points[i] != null; i++) {\n        let item = points[i];\n\n        if (minlat === false) {\n          minlat = item.lat;\n        } else {\n          minlat = item.lat < minlat ? item.lat : minlat;\n        }\n\n        if (maxlat === false) {\n          maxlat = item.lat;\n        } else {\n          maxlat = item.lat > maxlat ? item.lat : maxlat;\n        }\n\n        if (minlng === false) {\n          minlng = item.lng;\n        } else {\n          minlng = item.lng < minlng ? item.lng : minlng;\n        }\n\n        if (maxlng === false) {\n          maxlng = item.lng;\n        } else {\n          maxlng = item.lng > maxlng ? item.lng : maxlng;\n        }\n      } // Calculate the center\n\n\n      let lat = maxlat - (maxlat - minlat) / 2;\n      let lng = maxlng - (maxlng - minlng) / 2;\n      return {\n        lat: lat,\n        lng: lng\n      };\n    }),\n    lat: Ember.computed.alias('calculateCenter.lat'),\n    lng: Ember.computed.alias('calculateCenter.lng'),\n    trips: (0, _relationships.hasMany)('trip'),\n    vehicles: (0, _relationships.hasMany)('vehicleState'),\n    // eslint-disable-next-line ember/use-brace-expansion\n    workspacetrips: Ember.computed('trips.@each', 'trips.@each.bookingType', 'trips.@each.tripStatus', function () {\n      if (!Ember.isEmpty(this.get('trips'))) {\n        return this.get('trips').filter(function (item) {\n          return _environment.default.workspaceContext.startDate < item.get('requestedTime') && _environment.default.workspaceContext.endDate > item.get('requestedTime');\n        });\n      } else {\n        return [];\n      }\n    }),\n    asap: Ember.computed('workspacetrips.[]', function () {\n      if (!Ember.isEmpty(this.get('workspacetrips'))) {\n        return this.get('workspacetrips').filter(trip => trip.get('bookingType') === 'asap' && (trip.get('tripStatus') === 'booked' || trip.get('tripStatus') === 'active')).length;\n      } else {\n        return 0;\n      }\n    }),\n    pb: Ember.computed('workspacetrips.[]', function () {\n      if (!Ember.isEmpty(this.get('workspacetrips'))) {\n        return this.get('workspacetrips').filter(trip => trip.get('bookingType') === 'prebook' && (trip.get('tripStatus') === 'booked' || trip.get('tripStatus') === 'active')).length;\n      } else {\n        return 0;\n      }\n    }),\n    auction: Ember.computed('workspacetrips.[]', function () {\n      if (!Ember.isEmpty(this.get('workspacetrips'))) {\n        return this.get('workspacetrips').filter(trip => trip.get('dispatchMethod') === 'auction' && (trip.get('tripStatus') === 'booked' || trip.get('tripStatus') === 'active' || trip.get('tripStatus') === 'offered')).length;\n      } else {\n        return 0;\n      }\n    }),\n    // eslint-disable-next-line ember/use-brace-expansion\n    freeVehicle: Ember.computed('vehicles.@each', 'vehicles.@each.status', function () {\n      if (!Ember.isEmpty(this.get('vehicles'))) {\n        return this.get('vehicles').filterBy('status', 'free').length;\n      } else {\n        return 0;\n      }\n    }),\n    // eslint-disable-next-line ember/use-brace-expansion\n    stcVehicle: Ember.computed('vehicles.@each', 'vehicles.@each.status', function () {\n      if (!Ember.isEmpty(this.get('vehicles'))) {\n        return this.get('vehicles').filterBy('status', 'STC').length;\n      } else {\n        return 0;\n      }\n    }),\n    // eslint-disable-next-line ember/use-brace-expansion\n    offVehicle: Ember.computed('vehicles.@each', 'vehicles.@each.status', function () {\n      if (!Ember.isEmpty(this.get('vehicles'))) {\n        return this.get('vehicles').filter(vehicle => vehicle.get('status') !== 'off');\n      } else {\n        return [];\n      }\n    }),\n    totalVehicle: Ember.computed('vehicles', function () {\n      return this.get('vehicles').length;\n    }),\n    notes: (0, _attr.default)(),\n    requiredAttributes: (0, _attr.default)()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/modifiers/did-insert\", [\"exports\", \"@ember/render-modifiers/modifiers/did-insert\"], function (_exports, _didInsert) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _didInsert.default;\n    }\n  });\n});","define(\"adept-iq/modifiers/did-update\", [\"exports\", \"@ember/render-modifiers/modifiers/did-update\"], function (_exports, _didUpdate) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _didUpdate.default;\n    }\n  });\n});","define(\"adept-iq/modifiers/will-destroy\", [\"exports\", \"@ember/render-modifiers/modifiers/will-destroy\"], function (_exports, _willDestroy) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _willDestroy.default;\n    }\n  });\n});","define(\"adept-iq/pods/application/controller\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  // these are the top-level things that can focus can be rotated through\n  const FOCUSABLE_WIDGET_SELECTOR = '.header-nav, .dashboard-widget'; // used to select first control to receive browser focus on rotation\n\n  const INITIAL_CONTROL_SELECTOR = '.initial-focus-control';\n  const GENERIC_CONTROL_SELECTOR = 'input, button, .ember-basic-dropdown-trigger';\n\n  var _default = Ember.Controller.extend({\n    workspace: Ember.inject.service(),\n    data: null,\n\n    init() {\n      this._super(...arguments);\n\n      this._onKeyDown = event => {\n        Ember.run.schedule('actions', this, 'onKeyDown', event);\n      };\n\n      document.body.addEventListener('keydown', this._onKeyDown);\n    },\n\n    destroy() {\n      document.body.removeEventListener('keydown', this._onKeyDown);\n\n      this._super(...arguments);\n    },\n\n    onKeyDown(event) {\n      // don't activate global shortcuts when editing a form\n      if (event.target.tagName === 'INPUT') return; // shortcut for next widget\n\n      if (event.key === '`' && !event.altKey && !event.ctrlKey) {\n        event.preventDefault();\n        this.rotateFocus();\n      } // shortcut for previous widget\n\n\n      if (event.key === '~' && !event.altKey && !event.ctrlKey) {\n        event.preventDefault();\n        this.rotateFocus(-1);\n      }\n    },\n\n    rotateFocus(offset = 1) {\n      let nextElement;\n      const focusables = Array.from(document.querySelectorAll(FOCUSABLE_WIDGET_SELECTOR));\n      const closestFocusable = document.activeElement.closest(FOCUSABLE_WIDGET_SELECTOR);\n\n      if (closestFocusable) {\n        const index = focusables.indexOf(closestFocusable);\n        const nextIndex = (index + offset + focusables.length) % focusables.length;\n        nextElement = focusables[nextIndex];\n      } else {\n        nextElement = focusables[0];\n      }\n\n      if (nextElement) {\n        const control = nextElement.querySelector(INITIAL_CONTROL_SELECTOR) || nextElement.querySelector(GENERIC_CONTROL_SELECTOR);\n\n        if (control) {\n          control.focus();\n        }\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/application/route\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Route.extend({\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    tooltip: Ember.inject.service(),\n    socket: Ember.inject.service(),\n    actions: {\n      openDashboard(dashboard) {\n        // TODO: prompt to save changes\n        this.get('tooltip').reset();\n        this.transitionTo('dashboard', dashboard);\n      },\n\n      transitionTo() {\n        this.transitionTo(...arguments);\n      },\n\n      async logout() {\n        localStorage.setItem('lastDashboardId', null);\n        const workspace = this.get('workspace');\n        const dashboard = this.get('workspace.dashboardInstance');\n        const tooltip = this.get('tooltip');\n        Ember.run(() => this.get('socket').logout());\n        Ember.run(() => workspace.reset());\n        Ember.run(() => tooltip.reset());\n        this.get('session').invalidate().then(async () => {\n          await Ember.run(() => dashboard.clearDashboard());\n          await Ember.run(() => this.transitionTo('login'));\n        });\n        Ember.$(\"#rc-widget\").hide();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/application/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"r8MdtLHe\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"application-wrapper\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"workspace\\\",\\\"isGlobalSpinnerVisible\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[1,[21,\\\"global-spinner\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"workspace\\\",\\\"isDashboardPickerOpen\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[1,[21,\\\"dashboard-picker\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"workspace\\\",\\\"isDashboardSaveAsOpen\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[1,[21,\\\"dashboard-save-as\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"workspace\\\",\\\"isClosingSchedule\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[1,[21,\\\"close-schedule\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"header-nav-wrapper\\\"],[9],[0,\\\"\\\\n    \\\"],[1,[27,\\\"header-nav\\\",null,[[\\\"dashboards\\\",\\\"openDashboard\\\",\\\"transitionTo\\\",\\\"onLogout\\\"],[[23,[\\\"data\\\",\\\"dashboards\\\"]],[27,\\\"route-action\\\",[\\\"openDashboard\\\"],null],[27,\\\"route-action\\\",[\\\"transitionTo\\\"],null],[27,\\\"route-action\\\",[\\\"logout\\\"],null]]]],false],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\\n  \\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"workspace\\\",\\\"isEditingTimeline\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"timeline-picker-dropdown\\\"],[9],[0,\\\"\\\\n      \\\"],[1,[21,\\\"timeline-picker\\\"],false],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"content-wrapper\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"workspace\\\",\\\"sideDrawerComponent\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[1,[27,\\\"side-drawer-container\\\",null,[[\\\"sideDrawerComponent\\\"],[[23,[\\\"workspace\\\",\\\"sideDrawerComponent\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n    \\\"],[1,[21,\\\"outlet\\\"],false],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/application/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/close-schedule/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['dashboard-picker'],\n    store: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    schedules: null,\n\n    init() {\n      this._super(...arguments);\n\n      const schedules = [];\n      const routes = this.get('activeContext.workspaceData.route');\n      routes.forEach(route => {\n        if (!schedules.includes(route.schedule.content)) {\n          if (!route.schedule.content.locked) {\n            schedules.push(route.schedule.content);\n          }\n        }\n      });\n      this.set('schedules', schedules);\n    },\n\n    closeSchedule() {\n      const schedules = this.get('schedules');\n      schedules.forEach(schedule => {\n        schedule.set('locked', true);\n        schedule.save();\n      });\n    },\n\n    actions: {\n      onYesButtonClick() {\n        this.closeSchedule();\n        this.get('workspace').popState('closeSchedule');\n      },\n\n      onNoButtonClick() {\n        this.get('workspace').popState('closeSchedule');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/close-schedule/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"6J0VMaO+\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"secondary-window\\\",null,[[\\\"title\\\",\\\"onXButtonClick\\\",\\\"isLoading\\\"],[\\\"Close Schedule\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onXButtonClick\\\"],null],[23,[\\\"loadDashboardsTask\\\",\\\"isRunning\\\"]]]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"dashboard-picker-section\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"dashboard-picker-section-title\\\"],[9],[0,\\\"\\\\n      Close Schedule\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"dashboard-picker-item\\\"],[9],[0,\\\"\\\\n      Closing a schedule makes its data non-editable. Proceed?\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"spacer\\\"],[9],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"button\\\"],[9],[0,\\\" Yes \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onXButtonClick\\\",[23,[\\\"dashboard\\\"]]]],[10],[0,\\\"\\\\n      \\\"],[7,\\\"button\\\"],[9],[0,\\\" No \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onXButtonClick\\\",[23,[\\\"dashboard\\\"]]]],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/close-schedule/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/dashboard-picker/component\", [\"exports\", \"ember-concurrency\"], function (_exports, _emberConcurrency) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    classNames: ['dashboard-picker'],\n    dashboards: null,\n    isLoading: Ember.computed.or('loadDashboardsTask.isRunning', 'transitionTask.isRunning'),\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('loadDashboardsTask').perform().then(() => {\n        Ember.run.schedule('afterRender', () => {\n          this.$('.open-last-saved').focus();\n        });\n      });\n    },\n\n    loadDashboardsTask: (0, _emberConcurrency.task)(function* () {\n      const dashboards = yield this.get('store').query('dashboard', {});\n      this.set('dashboards', dashboards);\n    }).drop(),\n    transitionTask: (0, _emberConcurrency.task)(function* (dashboard) {\n      const workspace = this.get('workspace');\n      yield workspace.popState('openWorkspace');\n\n      if (dashboard === workspace.get('dashboardModel')) {\n        // setting again will trigger reload\n        workspace.set('dashboardModel', dashboard);\n      } else {\n        yield this.get('router').transitionTo('dashboard', dashboard);\n      }\n    }).drop(),\n    roles: Ember.computed('dashboards.[]', function () {\n      const dashboards = this.get('dashboards');\n      if (Ember.isEmpty(dashboards)) return [];\n      return dashboards.mapBy('role').uniq().sort();\n    }),\n    sections: Ember.computed('dashboards.[]', 'roles.[]', function () {\n      const dashboards = this.get('dashboards');\n      const roles = this.get('roles');\n      if (Ember.isEmpty(dashboards) || Ember.isEmpty(roles)) return [];\n      return roles.map(role => {\n        return {\n          title: role,\n          dashboards: dashboards.filterBy('role', role).sortBy('name')\n        };\n      });\n    }),\n    actions: {\n      onXButtonClick() {\n        this.get('workspace').popState('openWorkspace');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/dashboard-picker/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"6Uuyefl8\",\n    \"block\": \"{\\\"symbols\\\":[\\\"section\\\",\\\"dashboard\\\"],\\\"statements\\\":[[4,\\\"secondary-window\\\",null,[[\\\"title\\\",\\\"onXButtonClick\\\",\\\"isLoading\\\"],[\\\"Open Workspace\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onXButtonClick\\\"],null],[23,[\\\"isLoading\\\"]]]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"sections\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"dashboard-picker-section\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"dashboard-picker-section-title\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[22,1,[\\\"title\\\"]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"each\\\",[[22,1,[\\\"dashboards\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"div\\\"],[12,\\\"class\\\",[28,[\\\"dashboard-picker-item \\\",[27,\\\"if\\\",[[22,2,[\\\"isDirty\\\"]],\\\"is-dirty\\\",\\\"is-clean\\\"],null],\\\" \\\",[27,\\\"if\\\",[[27,\\\"eq\\\",[[22,2,[]],[23,[\\\"workspace\\\",\\\"dashboardModel\\\"]]],null],\\\"is-open\\\"],null]]]],[9],[0,\\\"\\\\n          \\\"],[1,[22,2,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\\n          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"spacer\\\"],[9],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"not-eq\\\",[[22,2,[]],[23,[\\\"workspace\\\",\\\"dashboardModel\\\"]]],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn-primary data-test-open-btn\\\"],[12,\\\"onclick\\\",[27,\\\"perform\\\",[[23,[\\\"transitionTask\\\"]],[22,2,[]]],null]],[9],[0,\\\"\\\\n\\\\n              Open\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn-primary data-test-reload-btn open-last-saved\\\"],[12,\\\"onclick\\\",[27,\\\"perform\\\",[[23,[\\\"transitionTask\\\"]],[22,2,[]]],null]],[9],[0,\\\"\\\\n\\\\n              Open Last Saved\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/dashboard-picker/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/dashboard-save-as/component\", [\"exports\", \"ember-concurrency\"], function (_exports, _emberConcurrency) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const DEFAULT_NAME = 'Untitled';\n\n  var _default = Ember.Component.extend({\n    workspace: Ember.inject.service(),\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    classNames: ['dashboard-save-as'],\n    name: null,\n    isLoading: Ember.computed.oneWay('findUnusedNameTask.isRunning'),\n    isRunning: Ember.computed.or('saveTask.isRunning', 'cancelTask.isRunning'),\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('findUnusedNameTask').perform().then(name => {\n        this.set('name', name);\n        Ember.run.schedule('afterRender', () => {\n          this.$('.workspace-name-input').focus();\n        });\n      });\n\n      this._onKeyDown = event => {\n        Ember.run.schedule('afterRender', this, 'onKeyDown', event);\n      };\n\n      this.$().on('keydown', this._onKeyDown);\n    },\n\n    willRemoveElement() {\n      this.$().off('keydown', this._onKeyDown);\n      this._onKeyDown = null;\n\n      this._super(...arguments);\n    },\n\n    findUnusedNameTask: (0, _emberConcurrency.task)(function* () {\n      let baseName = this.get('workspace.dashboard.name');\n      let version = 0;\n\n      if (Ember.isPresent(baseName)) {\n        // extract base name and version from names like \"My Dashboard (3)\"\n        const regEx = /^(.*)\\s+\\((\\d+)\\)\\s*$/;\n        const matches = regEx.exec(baseName);\n\n        if (matches) {\n          baseName = matches[1];\n          version = parseInt(matches[2], 10) + 1;\n        }\n      } else {\n        baseName = DEFAULT_NAME;\n      }\n\n      const dashboards = yield this.get('store').findAll('dashboard');\n      let name = version === 0 ? baseName : `${baseName} (${version})`;\n\n      while (dashboards.findBy('name', name)) {\n        version += 1;\n        name = `${baseName} (${version})`;\n      }\n\n      return name;\n    }).drop(),\n    saveTask: (0, _emberConcurrency.task)(function* () {\n      // clone persisted changes\n      const dashboardModel = this.get('workspace.dashboardModel');\n      const options = dashboardModel.getOptionsForClone();\n      const clone = this.get('store').createRecord('dashboard', options); // clone unsaved changes\n\n      const dashboardInstance = this.get('workspace.dashboardInstance');\n      clone.commitInstance(dashboardInstance); // update name using value in input box\n\n      clone.set('name', this.get('name'));\n\n      try {\n        yield clone.save();\n        yield this.get('workspace').popState('saveWorkspaceAs');\n        yield this.get('router').transitionTo('dashboard', clone);\n      } catch (e) {\n        clone.rollbackAttributes();\n      }\n    }).drop(),\n    cancelTask: (0, _emberConcurrency.task)(function* () {\n      // modal 'X' button can be clicked at any time, even during load\n      this.get('findUnusedNameTask').cancelAll();\n      this.get('saveTask').cancelAll();\n      yield this.get('workspace').popState('saveWorkspaceAs');\n    }).drop(),\n\n    onKeyDown(event) {\n      switch (event.key) {\n        case 'Enter':\n          {\n            event.preventDefault();\n            return this.get('saveTask').perform();\n          }\n\n        default:\n          return null;\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/dashboard-save-as/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"WO/k7yVr\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"secondary-window\\\",null,[[\\\"title\\\",\\\"onXButtonClick\\\",\\\"isLoading\\\"],[\\\"Save Workspace As\\\",[27,\\\"perform\\\",[[23,[\\\"cancelTask\\\"]]],null],[23,[\\\"isLoading\\\"]]]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"dashboard-save-as-body\\\"],[9],[0,\\\"\\\\n    Workspace Name:\\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"workspace-name-input\\\"],[12,\\\"disabled\\\",[21,\\\"isRunning\\\"]],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"name\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"saveTask\\\",\\\"isRunning\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"p\\\"],[11,\\\"class\\\",\\\"mt-3 mb-0\\\"],[9],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-circle-o-notch fa-spin\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\" Saving...\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"saveTask\\\",\\\"last\\\",\\\"isError\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"p\\\"],[11,\\\"class\\\",\\\"text-danger mt-3 mb-0\\\"],[9],[0,\\\"Error: \\\"],[1,[23,[\\\"saveTask\\\",\\\"last\\\",\\\"error\\\"]],false],[10],[0,\\\"\\\\n    \\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"dashboard-save-as-controls\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn-primary\\\"],[12,\\\"onclick\\\",[27,\\\"perform\\\",[[23,[\\\"saveTask\\\"]]],null]],[12,\\\"disabled\\\",[21,\\\"isRunning\\\"]],[9],[0,\\\"\\\\n\\\\n      Save\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn-secondary\\\"],[12,\\\"onclick\\\",[27,\\\"perform\\\",[[23,[\\\"cancelTask\\\"]]],null]],[12,\\\"disabled\\\",[21,\\\"isRunning\\\"]],[9],[0,\\\"\\\\n\\\\n      Cancel\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/dashboard-save-as/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/ember-chart-fix/component\", [\"exports\", \"ember-cli-chart/components/ember-chart\"], function (_exports, _emberChart) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _emberChart.default.extend({\n    updateChart() {\n      const chart = this.get('chart');\n      const data = this.get('data');\n      const options = this.get('options');\n      const animate = this.get('animate');\n\n      if (!data.labels) {\n        data.labels = [];\n      }\n\n      if (chart) {\n        chart.config.data = data;\n        chart.options = options;\n\n        if (animate) {\n          chart.update();\n        } else {\n          chart.update(0);\n        }\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/ember-cli-tableau/component\", [\"exports\", \"adept-iq/pods/components/templates/components/tableau-view\"], function (_exports, _tableauView) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    layout: _tableauView.default,\n    classNames: ['tableau-view'],\n    _resizeRetryCount: 0,\n    _config: Ember.computed(function () {\n      return Ember.getOwner(this).resolveRegistration('config:environment');\n    }),\n    _server: Ember.computed('_config', function () {\n      let server = this.get('_config.tableau.server');\n\n      if (server && server.endsWith('/')) {\n        server = server.slice(0, -1);\n      }\n\n      return server;\n    }),\n    _options: Ember.computed('options', function () {\n      const options = {\n        onFirstVizSizeKnown: e => {\n          Ember.run.later(() => {\n            this._resize(this.$().width(), this.$().height());\n          }, 2000);\n\n          if (this.get('onFirstVizSizeKnown')) {\n            this.get('onFirstVizSizeKnown')(e);\n          }\n        },\n        onFirstInteractive: e => {\n          this._addEvents();\n\n          if (this.get('onFirstInteractive')) {\n            this.get('onFirstInteractive')(e);\n          }\n        }\n      };\n      Ember.merge(options, this.get('options') || {});\n      return options;\n    }),\n\n    _resize(width, height) {\n      const viz = this.get('_vizInstance');\n      const retryCount = this.get('_resizeRetryCount');\n\n      if (!viz || retryCount >= 2) {\n        return;\n      }\n\n      try {\n        viz.setFrameSize(width, height);\n\n        try {\n          const sheet = viz.getWorkbook().getActiveSheet();\n          sheet.changeSizeAsync({\n            \"behavior\": \"EXACTLY\",\n            \"maxSize\": {\n              \"height\": height - 80,\n              \"width\": width\n            }\n          }).then(viz.setFrameSize(width, height));\n        } catch (e) {//console.error(e);\n        }\n      } catch (e) {\n        this.set('_resizeRetryCount', retryCount + 1);\n        Ember.run.later(() => {\n          this._resize(width, height);\n        }, 1500);\n      }\n    },\n\n    _addEvents() {\n      const viz = this.get('_vizInstance');\n\n      if (!viz) {\n        return;\n      }\n\n      viz.addEventListener('tabSwitch', () => {\n        Ember.run.later(() => {\n          this._resize(this.$().width(), this.$().height());\n        }, 500);\n      });\n    },\n\n    _dispose() {\n      const vizInstance = this.get('_vizInstance');\n\n      if (vizInstance) {\n        vizInstance.dispose();\n      }\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this._dispose();\n\n      const viewPath = this.get('viewPath') || `${this.get('workbook')}/${this.get('view')}`;\n      const sitePath = this.get('sitePath');\n      let url = `${this.get('_server')}/${sitePath}/views/${viewPath}`;\n\n      if (this.get('token')) {\n        url = `${this.get('_server')}/trusted/${this.get('token')}/views/${viewPath}`;\n      }\n\n      this.set('_vizInstance', new tableau.Viz(this.get('element'), url, this.get('_options')));\n    },\n\n    willDestroyElement() {\n      this._super(...arguments);\n\n      this._dispose();\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/forgot-form/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    errors: null,\n    success: null,\n    email: null,\n    isValid: Ember.computed('email', function () {\n      const email = this.get('email');\n      return Ember.isPresent(email);\n    }),\n    actions: {\n      onSubmit(email, e) {\n        e.preventDefault();\n        this.get('onSubmit')(email);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/forgot-form/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"DH9qyjMD\",\n    \"block\": \"{\\\"symbols\\\":[\\\"error\\\"],\\\"statements\\\":[[7,\\\"form\\\"],[12,\\\"onsubmit\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSubmit\\\",[23,[\\\"email\\\"]]],null]],[9],[0,\\\"\\\\n  \\\"],[7,\\\"label\\\"],[9],[0,\\\"\\\\n    Email\\\\n    \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"email\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"email\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"required\\\",\\\"\\\"],[11,\\\"type\\\",\\\"email\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"errors\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"ul\\\"],[11,\\\"class\\\",\\\"errors\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"errors\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"li\\\"],[9],[1,[22,1,[]],false],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"success\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"success\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"p\\\"],[9],[1,[21,\\\"success\\\"],false],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n  \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn\\\"],[12,\\\"onclick\\\",[27,\\\"route-action\\\",[\\\"cancel\\\"],null]],[11,\\\"type\\\",\\\"button\\\"],[9],[0,\\\"\\\\n    Cancel\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn\\\"],[12,\\\"disabled\\\",[27,\\\"not\\\",[[23,[\\\"isValid\\\"]]],null]],[11,\\\"type\\\",\\\"submit\\\"],[9],[0,\\\"\\\\n    Confirm\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/forgot-form/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/account-model/component\", [\"exports\", \"ember-concurrency\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/populate-account\", \"adept-iq/utils/populate-call-line\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\"], function (_exports, _emberConcurrency, _checkAddressFlags, _populateAccount, _populateCallLine, _environment, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-account-model'],\n    value: null,\n    disabled: false,\n    maxlength: null,\n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    optionSearchPath: Ember.computed.alias('extra.optionSearchPath'),\n    optionModelName: Ember.computed.alias('extra.optionModelName'),\n    parentValuePath: Ember.computed.alias('extra.parentValuePath'),\n    optionWidgetModel: Ember.computed.alias('extra.optionWidgetModel'),\n    optionModelWidgetPath: Ember.computed.alias('extra.optionModelWidgetPath'),\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    modalData: null,\n\n    init() {\n      this._super(...arguments);\n    },\n\n    // eslint-disable-next-line no-unused-vars\n    search: (0, _emberConcurrency.task)(function* (term) {\n      yield (0, _emberConcurrency.timeout)(50);\n      const searchResults = yield this.getRiderProfile(this.get('optionSearchPath'), this.get('value'), this.get('optionModelName'));\n      return searchResults;\n    }),\n\n    getRiderProfile(optionSearchPath, filterValue, optionModelName) {\n      return this.get('ajax').put(_apiUrls.API.tripManagementService.host + `/${optionModelName}?filter=${optionSearchPath}==` + filterValue.toUpperCase(), {\n        method: 'GET',\n        contentType: \"application/json\"\n      }).then(response => {\n        return response.data;\n      }).catch(function () {\n        return [];\n      });\n    },\n\n    actions: {\n      onInput(value) {\n        this.set(`record.${this.get('valuePath')}`, value.trim());\n      },\n\n      handleKeydown(event) {\n        if (event.keyCode !== 13) {\n          return;\n        }\n\n        this.set('editmodalcontext.showWidgetModal', false);\n        this.set('editmodalcontext.modelWidgetPath', '');\n        this.set('editModal.errors', []);\n\n        if (this.get('optionModelName')) {\n          this.get('search').perform().then(results => {\n            if (!Ember.isEmpty(results)) {\n              let searchRecord = results.firstObject;\n\n              if (!Ember.isBlank(this.get('parentValuePath'))) {\n                this.set(`record.${this.get('parentValuePath')}`, searchRecord);\n              }\n\n              Ember.run(() => {\n                (0, _populateAccount.default)(this.record, searchRecord, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('optionSearchPath'), searchRecord.attributes.account.accountId, true);\n              });\n            } else {\n              this.set(`record.${this.get('parentValuePath')}`, null);\n\n              if (this.get('valuePath') === 'acctCardNr') {\n                this.get('editModal.errors').pushObject('No account is present with this No.');\n                this.set('record.editmodelcontext.accountTrips', []);\n                this.set('record.editmodelcontext.accountFixedPriceTrips', []);\n                this.set('editmodalcontext.showWidgetModal', false);\n              }\n            }\n          });\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/account-model/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"7MM5owZ6\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 places-table\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[12,\\\"accesskey\\\",[21,\\\"accessKey\\\"]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"onkeydown\\\",[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\"],null]],[12,\\\"maxlength\\\",[27,\\\"readonly\\\",[[23,[\\\"maxlength\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[1,[27,\\\"form-components/account\\\",null,[[\\\"record\\\"],[[23,[\\\"record\\\"]]]]],false],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/account-model/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/account/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-places'],\n    editmodalcontext: Ember.inject.service(),\n    widgetModelData: null,\n    modelWidgetPath: null,\n    geocode: Ember.inject.service(),\n    isAccountPickups: 'isAccountPickups',\n    isAccountFixedPriceTrips: 'isAccountFixedPriceTrips',\n    // eslint-disable-next-line ember/avoid-leaking-state-in-ember-objects\n    accountPickups: {\n      isButtonEnabledPath: 'isAccountPickups',\n      widgetModelDataPath: 'editmodelcontext.accountTrips',\n      modelWidgetPath: 'favorite-pickup-widget',\n      label: 'Pickups',\n      accessKey: 'k'\n    },\n    // eslint-disable-next-line ember/avoid-leaking-state-in-ember-objects\n    accountFixedPriceTrips: {\n      isButtonEnabledPath: 'isAccountFixedPriceTrips',\n      widgetModelDataPath: 'editmodelcontext.accountFixedPriceTrips',\n      modelWidgetPath: 'fixed-price-trip-widget',\n      label: 'Fixed Price Trips',\n      accessKey: 'x'\n    },\n\n    init() {\n      this._super(...arguments);\n    },\n\n    actions: {\n      populateAccountPickups() {\n        //console.log('accountTrips)',this.get('record').get(this.get('accountPickups.widgetModelDataPath')));\n        Ember.run(() => {\n          this.set('widgetModelData', this.get('record').get(this.get('accountPickups.widgetModelDataPath')));\n          this.set('editmodalcontext.modelWidgetPath', this.get('accountPickups.modelWidgetPath'));\n          this.set('editmodalcontext.showWidgetModal', false);\n          this.set('editmodalcontext.showWidgetModal', true);\n        });\n      },\n\n      populateAccountFixedPriceTrips() {\n        //console.log('accountFixedPriceTrips)',this.get('record').get(this.get('accountFixedPriceTrips.widgetModelDataPath')));\n        Ember.run(() => {\n          this.set('widgetModelData', this.get('record').get(this.get('accountFixedPriceTrips.widgetModelDataPath')));\n          this.set('editmodalcontext.modelWidgetPath', this.get('accountFixedPriceTrips.modelWidgetPath'));\n          this.set('editmodalcontext.showWidgetModal', false);\n          this.set('editmodalcontext.showWidgetModal', true);\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/account/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"oLj74zN7\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[0,\\\" \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 places-table\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"populateAccountPickups\\\",[23,[\\\"record\\\"]]],null]],[12,\\\"disabled\\\",[23,[\\\"record\\\",\\\"isAccountPickups\\\"]]],[12,\\\"accesskey\\\",[23,[\\\"accountPickups\\\",\\\"accessKey\\\"]]],[11,\\\"id\\\",\\\"btnAccountPickups\\\"],[11,\\\"name\\\",\\\"btnAccountPickups\\\"],[12,\\\"title\\\",[23,[\\\"accountPickups\\\",\\\"label\\\"]]],[11,\\\"class\\\",\\\"multitype-button btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-home\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"populateAccountFixedPriceTrips\\\",[23,[\\\"record\\\"]],[23,[\\\"valuePath\\\"]],[23,[\\\"field\\\",\\\"modelName\\\"]]],null]],[12,\\\"disabled\\\",[23,[\\\"record\\\",\\\"isAccountFixedPriceTrips\\\"]]],[12,\\\"accesskey\\\",[23,[\\\"accountFixedPriceTrips\\\",\\\"accessKey\\\"]]],[11,\\\"id\\\",\\\"btnAccountFixedPrice\\\"],[11,\\\"name\\\",\\\"btnAccountFixedPrice\\\"],[12,\\\"title\\\",[23,[\\\"accountFixedPriceTrips\\\",\\\"label\\\"]]],[11,\\\"class\\\",\\\"multitype-button btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-home\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]],true],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"modelWidgetPath\\\"]],\\\"favorite-pickup-widget\\\"],null]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"div\\\"],[11,\\\"style\\\",\\\"position: fixed;\\\\tz-index: 1000;height: 50px;width: 50%;\\\"],[9],[0,\\\"  \\\\n        \\\"],[1,[27,\\\"iq-widgets/favorite-pickup-widget\\\",null,[[\\\"widgetModelData\\\",\\\"focusFieldId\\\",\\\"currentRecord\\\",\\\"showWidgetModal\\\"],[[23,[\\\"widgetModelData\\\"]],\\\"btnAccountPickups\\\",[23,[\\\"record\\\"]],[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]]]]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]],true],null]],null,{\\\"statements\\\":[[0,\\\"  \\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"modelWidgetPath\\\"]],\\\"fixed-price-trip-widget\\\"],null]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"div\\\"],[11,\\\"style\\\",\\\"position: fixed;\\\\tz-index: 1000;height: 50px;width: 50%\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[27,\\\"iq-widgets/fixed-price-trip-widget\\\",null,[[\\\"widgetModelData\\\",\\\"focusFieldId\\\",\\\"currentRecord\\\",\\\"showWidgetModal\\\"],[[23,[\\\"widgetModelData\\\"]],\\\"btnAccountFixedPrice\\\",[23,[\\\"record\\\"]],[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]]]]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\" \\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/account/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/add-new-message/component\", [\"exports\", \"adept-iq/pods/components/form-components/add-new-message/config\", \"adept-iq/utils/populate-new-text-message\"], function (_exports, _config, _populateNewTextMessage) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    tagName: '',\n    workspace: Ember.inject.service(),\n    tooltip: Ember.inject.service(),\n    store: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    textmessage: Ember.inject.service(),\n    title: 'Send Message',\n    sections: _config.default.sections,\n    templates: null,\n    selectedTemplate: null,\n    messageText: null,\n    selectedVehicles: null,\n    selectedZones: null,\n    selectedDrivers: null,\n    vehicles: null,\n    zones: null,\n    drivers: null,\n    options: null,\n    tempValue: null,\n    draftMessages: Ember.computed.alias('workspace.topOptions.draftMessages'),\n\n    /* This Screen is developed as  a demo screen can be do better way*/\n    init() {\n      let me = this;\n\n      this._super(...arguments);\n\n      Ember.run.later(function () {\n        let options = [];\n        options.push('Zone');\n        options.push('Vehicle');\n        options.push('Driver');\n        let vehicles = [];\n        vehicles = me.get('store').peekAll('iqVehicle').filter(vehicle => vehicle.get('status') !== 'off');\n        /*.then(function(vehiclesList){\n          console.log('vehiclesList ',vehiclesList);\n                vehiclesList.forEach(record => {\n            console.log('vehiclesList ',record.get('status'));\n            if(record.get('status') !== 'off') {\n              vehicles.push(record);\n            }\n          });\n         })*/\n\n        let zones = me.get('store').peekAll('zone');\n        let drivers = me.get('store').peekAll('driver');\n        console.log('vehicles ', vehicles);\n        console.log('zones ', zones);\n        console.log('drivers ', drivers);\n        me.set('vehicles', vehicles);\n        me.set('drivers', drivers);\n        me.set('zones', zones);\n        me.set('options', options);\n        me.set('tempValue', 'Vehicle');\n      }, 10000);\n    },\n\n    validateRecords(draftMessages) {\n      let valid = true;\n      this.set('editModal.errors', []);\n      console.log('isBlank ', Ember.isBlank(this.get('messageText')));\n\n      if (Ember.isBlank(this.get('messageText'))) {\n        valid = false;\n        this.get('errorMessage').pushError({\n          detail: `Message should be there`\n        });\n      }\n\n      return valid;\n    },\n\n    sendMessage() {\n      let draftMessages;\n\n      if (!Ember.isBlank(this.get('selectedVehicles'))) {\n        draftMessages = this.get('selectedVehicles').map(vehicle => {\n          let newTestMessage = (0, _populateNewTextMessage.default)(this.get('textmessage'), this.get('store'), vehicle, null, null);\n          return newTestMessage;\n        });\n      }\n\n      if (!Ember.isBlank(this.get('selectedDrivers'))) {\n        draftMessages = this.get('selectedDrivers').map(driver => {\n          let newTestMessage = (0, _populateNewTextMessage.default)(this.get('textmessage'), this.get('store'), null, driver, null);\n          return newTestMessage;\n        });\n      }\n\n      if (!Ember.isBlank(this.get('selectedZones'))) {\n        draftMessages = this.get('selectedZones').map(zone => {\n          zone.get('offVehicle').map(vehicle => {\n            let newTestMessage = (0, _populateNewTextMessage.default)(this.get('textmessage'), this.get('store'), vehicle, null, null);\n            draftMessages.push(newTestMessage);\n            return newTestMessage;\n          });\n        });\n      }\n\n      if (this.validateRecords(draftMessages)) {\n        draftMessages.forEach(message => {\n          message.set('body', this.get('messageText'));\n          message.set('subject', this.get('messageText'));\n        });\n        const me = this;\n        return new Promise((resolve, reject) => {\n          draftMessages.forEach(message => {\n            message.save().then(() => {\n              me.get('errorMessage').pushInfo({\n                detail: `Message successfully send`\n              });\n            }).catch(function () {\n              return [];\n            });\n          });\n        });\n      }\n    },\n\n    cancelMessage() {\n      this.get('tooltip').reset();\n    },\n\n    actions: {\n      valueChanged(value) {\n        this.set('selectedVehicles', []);\n        this.set('selectedDrivers', []);\n        this.set('selectedZones', []);\n        this.set('tempValue', value.trim());\n      },\n\n      onInput(value) {\n        this.set(`messageText`, value);\n      },\n\n      onVehiclesChange(record, value) {\n        console.log('onVehiclesChange record ', record);\n        console.log('onVehiclesChange value ', value);\n        this.set('selectedVehicles', value);\n      },\n\n      onDriversChange(record, value) {\n        this.set('selectedDrivers', value);\n      },\n\n      onZonesChange(record, value) {\n        this.set('selectedZones', value);\n      },\n\n      onSendMessageButtonClick() {\n        this.sendMessage();\n        /*let tooltip = this.get('tooltip');\n         tooltip.setProperties({\n          tip: 'Send new message?',\n          primaryActionText: 'Confirm',\n          secondaryActionText: 'Cancel',\n          primaryAction: () => {\n            tooltip.reset();\n            this.sendMessage();\n          },\n          secondaryAction: () => {\n            toolbar.reset();\n            this.cancelMessage();\n          }\n        });*/\n      },\n\n      onTemplateSelect(template) {\n        this.set('selectedTemplate', template);\n      },\n\n      onCloseButtonClick() {\n        this.get('workspace').popState();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/add-new-message/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    modelName: 'avlm-canned-message-template',\n    sections: [{\n      title: 'Message content',\n      fields: [{\n        id: 'title',\n        type: 'enum',\n        label: 'Title',\n        valuePath: 'messageNr',\n        cellDesc: 'title',\n        editable: true,\n        hidden: false,\n        extra: {\n          allowMultiple: false\n        }\n      }, {\n        id: 'content',\n        type: 'text',\n        label: 'Content',\n        valuePath: 'body',\n        cellDesc: 'content',\n        editable: false,\n        hidden: false\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/add-new-message/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"cvFymBN0\",\n    \"block\": \"{\\\"symbols\\\":[\\\"vehicle\\\",\\\"driver\\\",\\\"zone\\\",\\\"option\\\"],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-widget\\\"],[9],[0,\\\"\\\\n    \\\\n\\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 radio-table\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"options\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\",\\\"classNames\\\",\\\"changed\\\"],[[22,4,[]],[23,[\\\"tempValue\\\"]],\\\"radio-button-input\\\",\\\"valueChanged\\\"]],{\\\"statements\\\":[],\\\"parameters\\\":[]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n       \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"radio-button-1-label\\\"],[9],[1,[22,4,[]],false],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n       \\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"tempValue\\\"]],\\\"Zone\\\"],null]],null,{\\\"statements\\\":[[4,\\\"power-select-multiple\\\",null,[[\\\"options\\\",\\\"searchEnabled\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"required\\\",\\\"onchange\\\"],[[23,[\\\"zones\\\"]],true,[23,[\\\"selectedZones\\\"]],\\\"Select some Zones...\\\",true,[27,\\\"action\\\",[[22,0,[]],\\\"onZonesChange\\\",[23,[\\\"selectedZones\\\"]]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,3,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"tempValue\\\"]],\\\"Driver\\\"],null]],null,{\\\"statements\\\":[[4,\\\"power-select-multiple\\\",null,[[\\\"searchEnabled\\\",\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"required\\\",\\\"onchange\\\"],[true,[23,[\\\"drivers\\\"]],[23,[\\\"selectedDrivers\\\"]],\\\"Select some Drivers...\\\",true,[27,\\\"action\\\",[[22,0,[]],\\\"onDriversChange\\\",[23,[\\\"selectedDrivers\\\"]]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,2,[\\\"badgeNr\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"tempValue\\\"]],\\\"Vehicle\\\"],null]],null,{\\\"statements\\\":[[4,\\\"power-select-multiple\\\",null,[[\\\"options\\\",\\\"searchEnabled\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"required\\\",\\\"onchange\\\"],[[23,[\\\"vehicles\\\"]],true,[23,[\\\"selectedVehicles\\\"]],\\\"Select some vehicles...\\\",true,[27,\\\"action\\\",[[22,0,[]],\\\"onVehiclesChange\\\",[23,[\\\"selectedVehicles\\\"]]],null]]],{\\\"statements\\\":[[0,\\\"                  \\\"],[1,[22,1,[\\\"vehicle\\\",\\\"callsign\\\"]],false],[0,\\\" [\\\"],[1,[22,1,[\\\"status\\\"]],false],[0,\\\"]\\\\n\\\"]],\\\"parameters\\\":[1]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n      \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Message\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"textarea\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"button\\\"],[11,\\\"style\\\",\\\"float: right;\\\"],[11,\\\"class\\\",\\\"header-button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSendMessageButtonClick\\\"],null]],[11,\\\"type\\\",\\\"button\\\"],[9],[0,\\\"\\\\n              Send Message\\\\n            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\\n     \\\"],[10],[0,\\\" \\\\n\\\\n     \\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/add-new-message/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/availabilities/component\", [\"exports\", \"moment\", \"adept-iq/config/environment\"], function (_exports, _moment, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-availabilities'],\n    editModal: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    dayOfWeeks: null,\n    availabilities: Ember.computed.readOnly('value'),\n    availabilityType: Ember.computed.readOnly('valuePath'),\n    startTimePath: Ember.computed.readOnly('extra.startTimePath'),\n    endTimePath: Ember.computed.readOnly('extra.endTimePath'),\n    shiftStartPath: Ember.computed.readOnly('extra.shiftStartPath'),\n    shiftEndPath: Ember.computed.readOnly('extra.shiftEndPath'),\n    sundayPath: Ember.computed.readOnly('extra.sundayPath'),\n    mondayPath: Ember.computed.readOnly('extra.mondayPath'),\n    tuesdayPath: Ember.computed.readOnly('extra.tuesdayPath'),\n    wednesdayPath: Ember.computed.readOnly('extra.wednesdayPath'),\n    thursdayPath: Ember.computed.readOnly('extra.thursdayPath'),\n    fridayPath: Ember.computed.readOnly('extra.fridayPath'),\n    saturdayPath: Ember.computed.readOnly('extra.saturdayPath'),\n\n    init() {\n      this.set('dayOfWeeks', ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']);\n      this.set('datePlaceHolder', _environment.default.dateTimeFormat.dateMoment);\n      this.set('timePlaceHolder', _environment.default.dateTimeFormat.timeMoment);\n      this.set('dateFormat', _environment.default.dateTimeFormat.dateFlatPickr);\n      this.set('timeFormat', _environment.default.dateTimeFormat.timeFlatPickr);\n\n      this._super(...arguments);\n    },\n\n    actions: {\n      onInput(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value, options);\n      },\n\n      onChangeDate(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value[0], options);\n      },\n\n      onClose(currentValue, stringValue, datePicker) {\n        const currentValueMoment = (0, _moment.default)(currentValue[0]);\n        const newValueMoment = (0, _moment.default)(stringValue);\n\n        if (!newValueMoment._isValid) {\n          // $(`#${datePicker.element.id}`).focus();\n          this.set('editModal.errors', ['Date entered is invalid.']);\n        }\n\n        if (datePicker.config.allowInput && datePicker._input.value && newValueMoment._isValid && !currentValueMoment.isSame(newValueMoment)) {\n          // date format is for database so should not be from config\n          datePicker.setDate(newValueMoment.format('YYYY-MM-DD'), true);\n        } // $(datePicker.altInput.className).select();\n        // $(datePicker.element).select();\n        // $('.effective-start').select();\n\n      },\n\n      onChangeTime(record, valuePath, value) {\n        const momentTime = (0, _moment.default)(value[0]);\n        let options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(momentTime.format('HH:mm:ss'), options);\n      },\n\n      onCheckboxChange(record, valuePath) {\n        let switchState = record.get(valuePath);\n        let options = {\n          record,\n          valuePath\n        };\n        switchState = !switchState;\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(switchState, options);\n      },\n\n      onDOWChange(record, values) {\n        record.set('sunday', values.includes('sunday'));\n        record.set('monday', values.includes('monday'));\n        record.set('tuesday', values.includes('tuesday'));\n        record.set('wednesday', values.includes('wednesday'));\n        record.set('thursday', values.includes('thursday'));\n        record.set('friday', values.includes('friday'));\n        record.set('saturday', values.includes('saturday'));\n        this.set('record.isForceDirty', true);\n      },\n\n      onAddNewAvailability() {\n        this.get('onCreate')();\n      },\n\n      onRemoveAvailability(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.get('onRemove')(value, options);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/availabilities/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"W21V1uUq\",\n    \"block\": \"{\\\"symbols\\\":[\\\"availability\\\",\\\"name\\\"],\\\"statements\\\":[[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 availabilities-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"availabilities\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Day of the Week\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell data-test-day-of-week\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select-multiple\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"closeOnSelect\\\",\\\"onchange\\\"],[[23,[\\\"dayOfWeeks\\\"]],[22,1,[\\\"selectedDOWs\\\"]],\\\"Select some names...\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"onDOWChange\\\",[22,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[22,2,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Start Date\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell data-test-start-date-input\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"startTimePath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\",[22,1,[]],[23,[\\\"startTimePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"End Date\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell data-test-end-date-input\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"endTimePath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\",[22,1,[]],[23,[\\\"endTimePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Shift Start\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell data-test-shift-start-input\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"noCalendar\\\",\\\"time_24hr\\\",\\\"placeholder\\\",\\\"enableTime\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\"],[\\\"en\\\",true,true,false,[23,[\\\"timePlaceholder\\\"]],true,[23,[\\\"timeFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"shiftStartPath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeTime\\\",[22,1,[]],[23,[\\\"shiftStartPath\\\"]]],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Shift End\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell data-test-shift-end-input\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"noCalendar\\\",\\\"time_24hr\\\",\\\"placeholder\\\",\\\"enableTime\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\"],[\\\"en\\\",true,true,false,[23,[\\\"timePlaceholder\\\"]],true,[23,[\\\"timeFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"shiftEndPath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeTime\\\",[22,1,[]],[23,[\\\"shiftEndPath\\\"]]],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onRemoveAvailability\\\",[22,1,[]],[23,[\\\"shiftEndPath\\\"]],[23,[\\\"target\\\",\\\"value\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-remove\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-trash-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n          Remove\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onAddNewAvailability\\\",[23,[\\\"record\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary mt-3\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-plus\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n        Add New Availability\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/availabilities/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/boolean/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-boolean'],\n    value: null,\n    disabled: false,\n    options: Ember.computed.alias('extra.options'),\n    selected: Ember.computed('value', 'options', function () {\n      return this.get('options').find(option => {\n        return option.value === this.get('value');\n      });\n    }),\n    actions: {\n      onChange(option) {\n        this.get('onChange')(Ember.get(option, 'value'));\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/boolean/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"nescf5Oh\",\n    \"block\": \"{\\\"symbols\\\":[\\\"option\\\"],\\\"statements\\\":[[4,\\\"power-select\\\",null,[[\\\"selected\\\",\\\"options\\\",\\\"disabled\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"selected\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"options\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],false,[27,\\\"action\\\",[[22,0,[]],\\\"onChange\\\"],null]]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[1,[22,1,[\\\"label\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/boolean/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/bs-subscriptions/component\", [\"exports\", \"moment\", \"adept-iq/config/environment\"], function (_exports, _moment, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const DAILY_OPTIONS = {\n    everyDay: 'Every Day',\n    weekDay: 'Every WeekDay'\n  };\n  const FREQUENCY_OPTIONS = {\n    daily: 'daily',\n    weekly: 'weekly',\n    monthly: 'monthly'\n  };\n  const END_OPTIONS = {\n    noEnd: {\n      type: 'noEnd',\n      label: 'No end date'\n    },\n    endAfter: {\n      type: 'endAfter',\n      label: 'After number of occurences'\n    },\n    endBy: {\n      type: 'endBy',\n      label: 'By'\n    }\n  };\n  const WOM_OPTIONS = {\n    first: 'first',\n    second: 'second',\n    third: 'third',\n    fourth: 'fourth',\n    last: 'last'\n  };\n  const MONTHLY_TYPE_OPTIONS = {\n    dayOfMonth: 'dayOfMonth',\n    weekOfMonth: 'weekOfMonth'\n  };\n  const DAY_OF_WEEK_OPTIONS = {\n    sunday: 'sunday',\n    monday: 'monday',\n    tuesday: 'tuesday',\n    wednesday: 'wednesday',\n    thursday: 'thursday',\n    friday: 'friday',\n    saturday: 'saturday'\n  };\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-subscriptions'],\n    editModal: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    dayOfWeeks: null,\n    recurring: false,\n    subscriptions: Ember.computed.readOnly('value'),\n    recurringPath: Ember.computed.readOnly('extra.recurringPath'),\n    dailyConfigPath: Ember.computed.readOnly('extra.dailyConfigPath'),\n    availabilityType: Ember.computed.readOnly('valuePath'),\n    startTimePath: Ember.computed.readOnly('extra.startTimePath'),\n    endTimePath: Ember.computed.readOnly('extra.endTimePath'),\n    shiftStartPath: Ember.computed.readOnly('extra.shiftStartPath'),\n    shiftEndPath: Ember.computed.readOnly('extra.shiftEndPath'),\n    sundayPath: Ember.computed.readOnly('extra.sundayPath'),\n    mondayPath: Ember.computed.readOnly('extra.mondayPath'),\n    tuesdayPath: Ember.computed.readOnly('extra.tuesdayPath'),\n    wednesdayPath: Ember.computed.readOnly('extra.wednesdayPath'),\n    thursdayPath: Ember.computed.readOnly('extra.thursdayPath'),\n    fridayPath: Ember.computed.readOnly('extra.fridayPath'),\n    saturdayPath: Ember.computed.readOnly('extra.saturdayPath'),\n    startDatePath: Ember.computed.readOnly('extra.startDateTimePath'),\n    endDatePath: Ember.computed.readOnly('extra.endDateTimePath'),\n    exStartDatePath: Ember.computed.readOnly('extra.excludeStartDateTimePath'),\n    exEndDatePath: Ember.computed.readOnly('extra.excludeEndDateTimePath'),\n    selectedWOMPath: Ember.computed.readOnly('extra.selectedWOMPath'),\n    maxOccurencesPath: Ember.computed.readOnly('extra.maxOccurencesPath'),\n    separationCountPath: Ember.computed.readOnly('extra.separationCountPath'),\n    dayOfMonthPath: Ember.computed.readOnly('extra.dayOfMonthPath'),\n    useOptionRecord: Ember.computed.readOnly('extra.useOptionRecord'),\n\n    init() {\n      this._super(...arguments);\n\n      Ember.run(() => {\n        let recurring = this.get(`record.${this.get('valuePath')}.firstObject.${this.get('recurringPath')}`);\n        this.set('dayOfWeeks', [DAY_OF_WEEK_OPTIONS.sunday, DAY_OF_WEEK_OPTIONS.monday, DAY_OF_WEEK_OPTIONS.tuesday, DAY_OF_WEEK_OPTIONS.wednesday, DAY_OF_WEEK_OPTIONS.thursday, DAY_OF_WEEK_OPTIONS.friday, DAY_OF_WEEK_OPTIONS.saturday]);\n        this.set('dateTimePlaceHolder', _environment.default.dateTimeFlatPickr);\n\n        if (recurring) {\n          this.set('recurring', true);\n        } else {\n          this.set('recurring', false);\n        }\n\n        this.set('frequencyOptions', [FREQUENCY_OPTIONS.daily, FREQUENCY_OPTIONS.weekly, FREQUENCY_OPTIONS.monthly]);\n        this.set(this.get('dailyConfigPath'), FREQUENCY_OPTIONS.daily);\n        this.set('dailyDaysOptions', [DAILY_OPTIONS.everyDay, DAILY_OPTIONS.weekDay]);\n        this.subscriptions.forEach(subscription => {\n          //console.log('subscription',subscription);\n          // setup daily days\n          if (subscription.isEveryDay) {\n            subscription.dailyDaysdailyDays = DAILY_OPTIONS.everyDay;\n          } else {\n            subscription.dailyDays = DAILY_OPTIONS.weekDay;\n          } // setup exclude range dates\n\n\n          subscription.excludeRangeDate = [subscription.exclusionStartDate, subscription.exclusionEndDate]; // setup end options\n\n          subscription.endOptions = [END_OPTIONS.noEnd, END_OPTIONS.endAfter, END_OPTIONS.endBy]; // setup what is the end option selected\n\n          if (!Ember.isNone(subscription.subscriptionEndDate)) {\n            subscription.endSelected = END_OPTIONS.endBy;\n          } else if (!Ember.isNone(subscription.subscriptionMaxOccurences)) {\n            subscription.endSelected = END_OPTIONS.endAfter;\n          } else {\n            subscription.endSelected = END_OPTIONS.noEnd;\n          } // setup monthlyType\n\n\n          if (!Ember.isNone(subscription.dayOfMonth)) {\n            subscription.monthlyType = MONTHLY_TYPE_OPTIONS.dayOfMonth;\n          } else {\n            subscription.monthlyType = MONTHLY_TYPE_OPTIONS.weekOfMonth;\n          }\n        });\n        this.set('weekOfMonthOptions', [WOM_OPTIONS.first, WOM_OPTIONS.second, WOM_OPTIONS.third, WOM_OPTIONS.fourth, WOM_OPTIONS.last]);\n        this.set('datePlaceHolder', _environment.default.dateTimeFormat.dateMoment);\n        this.set('timePlaceHolder', _environment.default.dateTimeFormat.timeMoment);\n        this.set('dateFormat', _environment.default.dateTimeFormat.dateFlatPickr);\n      });\n    },\n\n    frequencyOptionChange(record) {\n      const frequency = record.dailyConfigPath;\n\n      if (frequency === FREQUENCY_OPTIONS.daily || frequency === FREQUENCY_OPTIONS.weekly) {\n        record.set(this.get('separationCountPath'), 1);\n      } else if (frequency === FREQUENCY_OPTIONS.monthly) {\n        let daysOfWeeks = this.get('dayOfWeeks');\n        daysOfWeeks.forEach(day => {\n          record.set(day, false);\n        });\n      }\n    },\n\n    actions: {\n      onInput(record, valuePath, monthlyType, value) {\n        let useOptionRecord = this.get('useOptionRecord');\n        let options = {\n          record,\n          valuePath,\n          useOptionRecord\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value, options);\n        record.set('monthlyType', monthlyType);\n      },\n\n      onChangeDate(record, valuePath, value) {\n        let useOptionRecord = this.get('useOptionRecord');\n        let options = {\n          record,\n          valuePath,\n          useOptionRecord\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value[0], options);\n      },\n\n      onChangeRangeDate(record, startPath, endPath, value) {\n        let useOptionRecord = this.get('useOptionRecord');\n\n        if (value.length === 2) {\n          let options = {\n            record,\n            valuePath: startPath,\n            useOptionRecord\n          };\n          this.get('onChange')(value[0], options);\n          options = {\n            record,\n            valuePath: endPath,\n            useOptionRecord\n          };\n          this.get('onChange')(value[1], options);\n          this.set('record.isForceDirty', true);\n        }\n      },\n\n      onClose(currentValue, stringValue, datePicker) {\n        const currentValueMoment = (0, _moment.default)(currentValue[0]);\n        const newValueMoment = (0, _moment.default)(stringValue);\n\n        if (!newValueMoment._isValid) {\n          this.set('editModal.errors', ['Date entered is invalid.']);\n        }\n\n        if (datePicker.config.allowInput && datePicker._input.value && newValueMoment._isValid && !currentValueMoment.isSame(newValueMoment)) {\n          // date format is for database so should not be from config\n          datePicker.setDate(newValueMoment.format('YYYY-MM-DD'), true);\n        }\n      },\n\n      onChangeTime(record, valuePath, value) {\n        let useOptionRecord = this.get('useOptionRecord');\n        const momentTime = (0, _moment.default)(value[0]);\n        let options = {\n          record,\n          valuePath,\n          useOptionRecord\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(momentTime.format('HH:mm:ss'), options);\n      },\n\n      onCheckboxChange(record, valuePath) {\n        let useOptionRecord = this.get('useOptionRecord');\n        let switchState = Ember.get(record, valuePath);\n        let options = {\n          record,\n          valuePath,\n          useOptionRecord\n        };\n        switchState = !switchState;\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(switchState, options);\n      },\n\n      onDOWChange(record, values) {\n        let daysOfWeeks = this.get('dayOfWeeks');\n        daysOfWeeks.forEach(day => {\n          record.set(day, false);\n        });\n\n        switch (values) {\n          case DAY_OF_WEEK_OPTIONS.sunday:\n            record.set('sunday', true);\n            break;\n\n          case DAY_OF_WEEK_OPTIONS.monday:\n            record.set('monday', true);\n            break;\n\n          case DAY_OF_WEEK_OPTIONS.tuesday:\n            record.set('tuesday', true);\n            break;\n\n          case DAY_OF_WEEK_OPTIONS.wednesday:\n            record.set('wednesday', true);\n            break;\n\n          case DAY_OF_WEEK_OPTIONS.thursday:\n            record.set('thursday', true);\n            break;\n\n          case DAY_OF_WEEK_OPTIONS.friday:\n            record.set('friday', true);\n            break;\n\n          case DAY_OF_WEEK_OPTIONS.saturday:\n            record.set('saturday', true);\n        }\n\n        this.set('record.isForceDirty', true);\n      },\n\n      onAddNewAvailability() {\n        this.get('onCreate')();\n      },\n\n      // onRecurringChange(record, value){\n      //   record.set('recurring',value);\n      //   this.set('recurring',value);\n      // },\n      onFrequencyChange(record, value) {\n        let useOptionRecord = this.get('useOptionRecord');\n        this.set('frequency', value);\n        let valuePath = this.get('dailyConfigPath');\n        let options = {\n          record,\n          valuePath,\n          useOptionRecord\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value, options);\n        this.frequencyOptionChange(record);\n      },\n\n      onDailyOptionsChange(record, value) {\n        record.set('dailyDays', value);\n        this.frequencyOptionChange(record);\n      },\n\n      onEndOptionChange(record, value) {\n        let useOptionRecord = this.get('useOptionRecord');\n        record.set('endSelected', value);\n\n        if (value === END_OPTIONS.endBy) {\n          // null out max occurences\n          let valuePath = this.get('maxOccurencesPath');\n          let options = {\n            record,\n            valuePath,\n            useOptionRecord\n          };\n          this.get('onChange')(null, options);\n        } else if (value === END_OPTIONS.endAfter) {\n          // null out end date\n          let valuePath = this.get('endDatePath');\n          let options = {\n            record,\n            valuePath,\n            useOptionRecord\n          };\n          this.get('onChange')(null, options);\n        } else {\n          // no end option\n          let valuePath = this.get('endDatePath');\n          let options = {\n            record,\n            valuePath,\n            useOptionRecord\n          }; // null out end date\n\n          this.get('onChange')(null, options); // null out max occurences\n\n          valuePath = this.get('maxOccurencesPath');\n          options = {\n            record,\n            valuePath,\n            useOptionRecord\n          };\n          this.get('onChange')(null, options);\n          this.set('record.isForceDirty', true);\n        }\n\n        this.set('record.isForceDirty', true);\n      },\n\n      onWOMChange(record, value) {\n        let useOptionRecord = this.get('useOptionRecord');\n        let valuePath = this.get('selectedWOMPath');\n        let options = {\n          record,\n          valuePath,\n          useOptionRecord\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value, options);\n      },\n\n      onEnableSubscriptionChange(record) {\n        this.toggleProperty('recurring'); //record.set(this.get('recurringPath'), this.get('recurring'));\n\n        Ember.set(record, this.get('recurringPath'), this.get('recurring')); //console.log('recurringPath ',get(record,this.get('recurringPath')));\n\n        let yesterdayDate = (0, _moment.default)().subtract(1, 'days');\n        Ember.set(record, this.get('endDatePath'), yesterdayDate.toDate()); //console.log('endDatePath ',  get(record,this.get('endDatePath')));\n      },\n\n      onMonthlyTypeChange(record, value) {\n        let useOptionRecord = this.get('useOptionRecord');\n\n        if (value === MONTHLY_TYPE_OPTIONS.dayOfMonth) {\n          let valuePath = this.get('selectedWOMPath');\n          let options = {\n            record,\n            valuePath,\n            useOptionRecord\n          };\n          this.get('onChange')(null, options);\n          record.set(this.get('dayOfMonthPath'), 1);\n        } else {\n          let valuePath = this.get('dayOfMonthPath');\n          let options = {\n            record,\n            valuePath,\n            useOptionRecord\n          };\n          this.get('onChange')(null, options);\n          record.set(this.get('selectedWOMPath'), WOM_OPTIONS.first);\n        }\n\n        this.set('record.isForceDirty', true);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/bs-subscriptions/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"4EjeT/zO\",\n    \"block\": \"{\\\"symbols\\\":[\\\"subscription\\\",\\\"option\\\",\\\"name\\\",\\\"name\\\",\\\"name\\\"],\\\"statements\\\":[[7,\\\"table\\\"],[11,\\\"class\\\",\\\"subscriptions-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"subscriptions\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"onoffswitch subscription-recurring\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"id\\\",\\\"subscriptionSwitch\\\"],[11,\\\"class\\\",\\\"form-control countInput onoffswitch-checkbox\\\"],[12,\\\"checked\\\",[21,\\\"recurring\\\"]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onEnableSubscriptionChange\\\",[22,1,[]]],null]],null]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"onoffswitch-label\\\"],[11,\\\"for\\\",\\\"subscriptionSwitch\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"onoffswitch-inner\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"onoffswitch-switch\\\"],[11,\\\"tabindex\\\",\\\"0\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"recurring\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label cell-label-frequency\\\"],[9],[0,\\\"Frequency\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell subscription-frequency\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"onchange\\\"],[[23,[\\\"frequencyOptions\\\"]],[22,1,[\\\"type\\\"]],\\\"Select some names...\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFrequencyChange\\\",[22,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,5,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[5]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"recurring\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"or\\\",[[27,\\\"eq\\\",[[22,1,[\\\"type\\\"]],\\\"daily\\\"],null],[27,\\\"eq\\\",[[22,1,[\\\"type\\\"]],\\\"weekly\\\"],null]],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"subscription-recur-on-label\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"Recur on the following days:\\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"sunday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"sunday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Sun\\\"],[10],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"monday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"monday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Mon\\\"],[10],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"tuesday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"tuesday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Tue\\\"],[10],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"wednesday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"wednesday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Wed\\\"],[10],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"thursday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"thursday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Thu\\\"],[10],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"friday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"friday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Fri\\\"],[10],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"saturday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"saturday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Sat\\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"type\\\"]],\\\"monthly\\\"],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\",\\\"changed\\\",\\\"classNames\\\"],[\\\"dayOfMonth\\\",[22,1,[\\\"monthlyType\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onMonthlyTypeChange\\\",[22,1,[]]],null],\\\"radio-button-input\\\"]],{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"p\\\"],[11,\\\"class\\\",\\\"radio-button-group\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"radio-button-1-label\\\"],[9],[0,\\\"Day\\\"],[10],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control countInput\\\"],[11,\\\"min\\\",\\\"1\\\"],[11,\\\"max\\\",\\\"31\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"dayOfMonthPath\\\"]]],null]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"dayOfMonthPath\\\"]],\\\"dayOfMonth\\\"],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"number\\\"],[9],[10],[0,\\\"\\\\n                \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"radio-button-2-label\\\"],[9],[0,\\\"of every month\\\"],[10],[0,\\\"\\\\n\\\"],[0,\\\"            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\",\\\"changed\\\",\\\"classNames\\\"],[\\\"weekOfMonth\\\",[22,1,[\\\"monthlyType\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onMonthlyTypeChange\\\",[22,1,[]]],null],\\\"radio-button-input\\\"]],{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"monthly-wom-line\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"radio-button-1-label\\\"],[9],[0,\\\"The\\\"],[10],[0,\\\"\\\\n                \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"monthly-wom-select\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"onchange\\\"],[[23,[\\\"weekOfMonthOptions\\\"]],[22,1,[\\\"selectedWOM\\\"]],\\\"Select week of the month...\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onWOMChange\\\",[22,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"                  \\\"],[1,[22,4,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"                \\\"],[10],[0,\\\"\\\\n                \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"monthly-dow-select\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"onchange\\\"],[[23,[\\\"dayOfWeeks\\\"]],[22,1,[\\\"selectedDOWs\\\"]],\\\"Select some names...\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onDOWChange\\\",[22,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"                  \\\"],[1,[22,3,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"                \\\"],[10],[0,\\\"\\\\n                \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"radio-button-2-label\\\"],[9],[0,\\\"of every month\\\"],[10],[0,\\\"\\\\n\\\"],[0,\\\"              \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Start\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\",[22,1,[]],[23,[\\\"startDatePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"End\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell subscription-end\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"subscription-end-option\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"onchange\\\"],[[22,1,[\\\"endOptions\\\"]],[22,1,[\\\"endSelected\\\"]],\\\"Select some names...\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onEndOptionChange\\\",[22,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,2,[\\\"label\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"endSelected\\\",\\\"type\\\"]],\\\"endBy\\\"],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\",[22,1,[]],[23,[\\\"endDatePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"endSelected\\\",\\\"type\\\"]],\\\"endAfter\\\"],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control countInput\\\"],[11,\\\"min\\\",\\\"1\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"maxOccurencesPath\\\"]]],null]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"maxOccurencesPath\\\"]],\\\"weekOfMonth\\\"],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"number\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Exclude\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"mode\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\"],[\\\"en\\\",\\\"range\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[22,1,[\\\"excludeRangeDate\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeRangeDate\\\",[22,1,[]],[23,[\\\"exStartDatePath\\\"]],[23,[\\\"exEndDatePath\\\"]]],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/bs-subscriptions/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/bs-travel-needs/component\", [\"exports\", \"lodash\"], function (_exports, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  // status of travel needs within the UI\n  const STATUS_TYPE_EXISTING = 'existing'; // already part of rider\n\n  const STATUS_TYPE_AVAILABLE = 'available'; // available for rider to add\n\n  const STATUS_TYPE_ADDED = 'added'; // it will be added to rider once it is saved\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-travel-need'],\n    store: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    pcaState: false,\n    serviceAnimalState: false,\n    travelNeedTypes: null,\n    passengerTypes: null,\n    travelNeeds: Ember.computed.readOnly('value'),\n    countPath: Ember.computed.readOnly('extra.countPath'),\n    travelNeedTypePath: Ember.computed.readOnly('extra.travelNeedTypePath'),\n    passengerTypePath: Ember.computed.readOnly('extra.passengerTypePath'),\n    modelName: Ember.computed.readOnly('field.modelName'),\n    equipments: Ember.computed('record.{newTravelNeeds,equipments}', function () {\n      const equipments = [];\n      this.get('record.equipments').map(travelNeed => {\n        travelNeed.set('status', STATUS_TYPE_EXISTING);\n      });\n      this.get('record.newTravelNeeds').map(travelNeed => {\n        travelNeed.set('status', STATUS_TYPE_AVAILABLE);\n      });\n      this.get('record.equipments').forEach(travelNeed => {\n        equipments.push(travelNeed);\n      });\n      this.get('record.newTravelNeeds').forEach(travelNeed => {\n        equipments.push(travelNeed);\n      });\n      return equipments;\n    }),\n    newEquipments: Ember.computed('record.newTravelNeeds', function () {\n      return this.get('record.newTravelNeeds').filter(travelNeed => {\n        return travelNeed.get('passengerType.isClient') && !travelNeed.get('travelNeedType.isServiceAnimal') && travelNeed.get('status') === STATUS_TYPE_AVAILABLE;\n      });\n    }),\n    extraPassengers: Ember.computed('record.{extraPassengers,newTravelNeeds}', function () {\n      const tempArray = [];\n      const extraPassObjects = [];\n      this.get('record.extraPassengers').forEach(travelNeed => {\n        tempArray.push(travelNeed);\n      });\n      this.get('record.newTravelNeeds').forEach(travelNeed => {\n        tempArray.push(travelNeed);\n      }); // arrange in specific order\n\n      extraPassObjects.push(tempArray.find(travelNeed => travelNeed.get('travelNeedType.isServiceAnimal')));\n      extraPassObjects.push(tempArray.find(travelNeed => travelNeed.get('passengerType.isPca')));\n      extraPassObjects.push(tempArray.find(travelNeed => travelNeed.get('passengerType.isCompanion')));\n      return extraPassObjects;\n    }),\n    init: function () {\n      this._super(...arguments);\n\n      const travelNeedTypeModelName = this.get('extra.travelNeedTypeModelName');\n      const passengerTypeModelName = this.get('extra.passengerTypeModelName');\n      this.set('travelNeedTypes', this.get('store').peekAll(travelNeedTypeModelName));\n      this.set('passengerTypes', this.get('store').peekAll(passengerTypeModelName));\n      this.setupNewEquipments();\n      this.setupNewExtraPassengers();\n    },\n    clientPassengerType: function () {\n      const passengerTypes = this.get('passengerTypes');\n      return passengerTypes.find(types => types.isClient);\n    },\n    serviceAnimalTravelNeedType: function () {\n      const travelNeedTypes = this.get('travelNeedTypes');\n      return travelNeedTypes.find(types => types.isServiceAnimal);\n    },\n    ambulatoryTravelNeedType: function () {\n      const travelNeedTypes = this.get('travelNeedTypes');\n      return travelNeedTypes.find(types => types.isAmbulatory);\n    },\n    pcaPassengerType: function () {\n      const passengerTypes = this.get('passengerTypes');\n      return passengerTypes.find(types => types.isPca);\n    },\n    companionPassengerType: function () {\n      const passengerTypes = this.get('passengerTypes');\n      return passengerTypes.find(types => types.isCompanion);\n    },\n    setupNewEquipments: function () {\n      const currentTravelNeeds = this.get(`record.${this.get('valuePath')}`);\n      const newTravelNeeds = []; // add other travel need types that this person does not have\n      // with empty count\n\n      this.get('travelNeedTypes').map(travelNeedType => {\n        if (!travelNeedType.isServiceAnimal && !currentTravelNeeds.any(travelNeed => {\n          return travelNeed.get('travelNeedType.id') === travelNeedType.id;\n        })) {\n          const newRecord = this.get('store').createRecord(this.get('modelName'));\n          newRecord.set('travelNeedType', travelNeedType);\n          newRecord.set('passengerType', this.clientPassengerType());\n          newTravelNeeds.push(newRecord);\n        }\n      });\n      this.set('record.newTravelNeeds', newTravelNeeds);\n    },\n    setupNewExtraPassengers: function () {\n      const currentTravelNeeds = this.get('record.extraPassengers');\n      const newTravelNeeds = [];\n      let retVal; // add service animal travel need type if this rider does not have\n      // in current travel needs. leave count as empty\n\n      retVal = currentTravelNeeds.find(travelNeed => travelNeed.get('travelNeedType.isServiceAnimal'));\n\n      if (_lodash.default.isUndefined(retVal)) {\n        const newRecord = this.get('store').createRecord(this.get('modelName'));\n        this.set('serviceAnimalState', false);\n        newRecord.set('travelNeedType', this.serviceAnimalTravelNeedType());\n        newRecord.set('passengerType', this.clientPassengerType());\n        newTravelNeeds.push(newRecord);\n      } else {\n        this.set('serviceAnimalState', retVal.get('count') > 0);\n      } // add pca passenger type for this rider if it does not have\n      // in current travel needs. leave count as empty\n\n\n      retVal = currentTravelNeeds.find(travelNeed => {\n        return travelNeed.get('passengerType.isPca');\n      });\n\n      if (_lodash.default.isUndefined(retVal)) {\n        const newRecord = this.get('store').createRecord(this.get('modelName'));\n        this.set('pcaState', false);\n        newRecord.set('travelNeedType', this.ambulatoryTravelNeedType());\n        newRecord.set('passengerType', this.pcaPassengerType());\n        newTravelNeeds.push(newRecord);\n      } else {\n        this.set('pcaState', retVal.get('count') > 0);\n      } // add companion passenger type for this rider if it does not have\n      // in current travel needs. leave count as empty\n\n\n      retVal = currentTravelNeeds.find(travelNeed => travelNeed.get('passengerType.isCompanion'));\n\n      if (_lodash.default.isUndefined(retVal)) {\n        const newRecord = this.get('store').createRecord(this.get('modelName'));\n        newRecord.set('travelNeedType', this.ambulatoryTravelNeedType());\n        newRecord.set('passengerType', this.companionPassengerType());\n        newTravelNeeds.push(newRecord);\n      }\n\n      this.get('record.newTravelNeeds').addObjects(newTravelNeeds);\n    },\n    actions: {\n      onInput(record, valuePath, value) {\n        const useOptionRecord = true;\n        const options = {\n          record,\n          valuePath,\n          useOptionRecord\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(parseInt(value, 10), options);\n      },\n\n      onAddNewTravelNeed(record) {\n        const travelNeed = record.get('newTravelNeeds').find(currTravelNeed => {\n          return currTravelNeed.status === STATUS_TYPE_AVAILABLE;\n        });\n\n        if (!Ember.isNone(travelNeed)) {\n          travelNeed.set('status', STATUS_TYPE_ADDED);\n        }\n      },\n\n      onTravelNeedTypeChange(oldTravelNeed, newTravelNeed) {\n        oldTravelNeed.set('status', STATUS_TYPE_AVAILABLE);\n        oldTravelNeed.set('count', 0);\n        newTravelNeed.set('status', STATUS_TYPE_ADDED);\n      },\n\n      onRemoveTravelNeed(record, valuePath, value) {\n        const options = {\n          record,\n          valuePath\n        };\n\n        if (!Ember.isNone(record)) {\n          record.set('status', STATUS_TYPE_AVAILABLE);\n        }\n\n        this.get('onRemove')(value, options);\n      },\n\n      onPCAChange(record, valuePath) {\n        const useOptionRecord = true;\n        this.toggleProperty('pcaState');\n        const options = {\n          record,\n          valuePath,\n          useOptionRecord\n        };\n        const currValue = this.get('pcaState') ? 1 : 0;\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(currValue, options);\n      },\n\n      onServiceAnimalChange(record, valuePath) {\n        const useOptionRecord = true;\n        this.toggleProperty('serviceAnimalState');\n        const options = {\n          record,\n          valuePath,\n          useOptionRecord\n        };\n        const currValue = this.get('serviceAnimalState') ? 1 : 0;\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(currValue, options);\n      },\n\n      onPassengerTypeChange(record, valuePath, value) {\n        const useOptionRecord = true;\n        const options = {\n          record,\n          valuePath\n        };\n        this.get('onChange')(value, options, useOptionRecord);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/bs-travel-needs/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"dbKtv+UU\",\n    \"block\": \"{\\\"symbols\\\":[\\\"travelNeed\\\",\\\"travelNeed\\\",\\\"option\\\",\\\"option\\\"],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"table-div\\\"],[9],[0,\\\"\\\\n\\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 travel-need-table\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label table-label\\\"],[9],[0,\\\"Equipments\\\"],[10],[10],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"equipments\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,2,[\\\"status\\\"]],\\\"existing\\\"],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"disabled\\\",\\\"onchange\\\"],[[23,[\\\"newEquipments\\\"]],[22,2,[]],[27,\\\"readonly\\\",[true],null],[27,\\\"action\\\",[[22,0,[]],\\\"onTravelNeedTypeChange\\\"],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,4,[\\\"travelNeedType\\\",\\\"displayName\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control countInput\\\"],[11,\\\"min\\\",\\\"0\\\"],[11,\\\"max\\\",\\\"10\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,2,[]],[23,[\\\"countPath\\\"]]],null]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,2,[]],[23,[\\\"countPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"number\\\"],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onRemoveTravelNeed\\\",[22,2,[]],[23,[\\\"countPath\\\"]],[23,[\\\"target\\\",\\\"value\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-trash-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,2,[\\\"status\\\"]],\\\"added\\\"],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"newEquipments\\\"]]],null],[27,\\\"readonly\\\",[[22,2,[]]],null],false,[27,\\\"action\\\",[[22,0,[]],\\\"onTravelNeedTypeChange\\\",[22,2,[]]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,3,[\\\"travelNeedType\\\",\\\"displayName\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control countInput\\\"],[11,\\\"min\\\",\\\"0\\\"],[11,\\\"max\\\",\\\"10\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,2,[]],[23,[\\\"countPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"\\\"],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,2,[]],[23,[\\\"countPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"number\\\"],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onRemoveTravelNeed\\\",[22,2,[]],[23,[\\\"countPath\\\"]],[23,[\\\"target\\\",\\\"value\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-trash-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[2]},null],[0,\\\"  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onAddNewTravelNeed\\\",[23,[\\\"record\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary mt-3\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-plus\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n        Add New Travel Need\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"table-div\\\"],[9],[0,\\\"\\\\n\\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 travel-need-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"extraPassengers\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[22,1,[\\\"isExtraPassenger\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"travelNeedType\\\",\\\"name\\\"]],\\\"serviceAnimal\\\"],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[1,[22,1,[\\\"travelNeedType\\\",\\\"displayName\\\"]],false],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"onoffswitch\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"id\\\",\\\"serviceAnimalSwitch\\\"],[11,\\\"class\\\",\\\"form-control countInput onoffswitch-checkbox\\\"],[12,\\\"checked\\\",[21,\\\"serviceAnimalState\\\"]],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[\\\"travelNeedType\\\",\\\"name\\\"]],\\\"serviceAnimal\\\",[23,[\\\"ravelNeed\\\"]],[23,[\\\"countPath\\\"]]],null]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onServiceAnimalChange\\\",[22,1,[]],[23,[\\\"countPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"onoffswitch-label\\\"],[11,\\\"for\\\",\\\"serviceAnimalSwitch\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"onoffswitch-inner\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"onoffswitch-switch\\\"],[11,\\\"tabindex\\\",\\\"0\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"passengerType\\\",\\\"name\\\"]],\\\"pca\\\"],null]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"PCA\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"onoffswitch\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[11,\\\"id\\\",\\\"pcaSwitch\\\"],[11,\\\"class\\\",\\\"form-control countInput onoffswitch-checkbox\\\"],[12,\\\"checked\\\",[21,\\\"pcaState\\\"]],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[\\\"passengerType\\\",\\\"name\\\"]],\\\"pca\\\",[22,1,[]],[23,[\\\"countPath\\\"]]],null]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onPCAChange\\\",[22,1,[]],[23,[\\\"countPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"onoffswitch-label\\\"],[11,\\\"for\\\",\\\"pcaSwitch\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"onoffswitch-inner\\\"],[9],[10],[0,\\\"\\\\n                \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"onoffswitch-switch\\\"],[11,\\\"tabindex\\\",\\\"0\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Companion\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control countInput\\\"],[11,\\\"min\\\",\\\"0\\\"],[11,\\\"max\\\",\\\"10\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"countPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"\\\"],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"countPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"number\\\"],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/bs-travel-needs/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/button-model/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-places'],\n    editmodalcontext: Ember.inject.service(),\n    widgetModelData: null,\n    currentRecord: null,\n    geocode: Ember.inject.service(),\n    isButtonEnabledPath: Ember.computed.readOnly('extra.isButtonEnabledPath'),\n    widgetModelDataPath: Ember.computed.readOnly('extra.widgetModelDataPath'),\n    modelWidgetPath: Ember.computed.readOnly('extra.modelWidgetPath'),\n    label: Ember.computed.readOnly('extra.label'),\n    accessKey: Ember.computed.readOnly('extra.accessKey'),\n    isButtonEnabled: false,\n\n    init() {\n      this._super(...arguments);\n\n      let record = this.currentRecord;\n      this.set('isButtonEnabled', record.get(this.get('isButtonEnabledPath')));\n    },\n\n    actions: {\n      populateDataList() {\n        Ember.run(() => {\n          this.set('widgetModelData', this.get('currentRecord').get(this.get('widgetModelDataPath')));\n          this.set('currentRecord', this.get('currentRecord'));\n          this.set('editmodalcontext.modelWidgetPath', this.get('modelWidgetPath'));\n          this.set('editmodalcontext.showWidgetModal', false);\n          this.set('editmodalcontext.showWidgetModal', true);\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/button-model/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"KeWfW7/p\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[0,\\\" \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 places-table\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"populateDataList\\\",[23,[\\\"record\\\"]],[23,[\\\"valuePath\\\"]],[23,[\\\"field\\\",\\\"modelName\\\"]]],null]],[12,\\\"disabled\\\",[21,\\\"isButtonEnabled\\\"]],[12,\\\"accesskey\\\",[21,\\\"accessKey\\\"]],[12,\\\"title\\\",[21,\\\"label\\\"]],[11,\\\"class\\\",\\\"multitype-button btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-home\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]],true],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"modelWidgetPath\\\"]],\\\"fixed-price-trip-widget\\\"],null]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"div\\\"],[11,\\\"style\\\",\\\"position: fixed;\\\\tz-index: 1000;height: 50px;width: 50%;\\\"],[9],[0,\\\"  \\\\n        \\\"],[1,[27,\\\"iq-widgets/fixed-price-trip-widget\\\",null,[[\\\"widgetModelData\\\",\\\"currentRecord\\\",\\\"showWidgetModal\\\"],[[23,[\\\"widgetModelData\\\"]],[23,[\\\"currentRecord\\\"]],[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]]]]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/button-model/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/combobox/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-combobox'],\n    value: null,\n    disabled: false,\n    extra: null,\n    store: Ember.inject.service(),\n    dataFromModel: false,\n    options: Ember.computed.alias('extra.options'),\n\n    init() {\n      this._super(...arguments);\n\n      if (!Ember.isNone(this.get('extra.optionModelName'))) {\n        this.set('dataFromModel', true);\n        this.set('options', this.get('store').peekAll(this.get('extra.optionModelName')));\n      }\n    },\n\n    actions: {\n      onChange(option) {\n        this.set('selected', option);\n      },\n\n      createNew(option) {\n        //console.log('New option'); // eslint-disable-line no-console\n        this.options.push(option);\n      },\n\n      deleteOption(option) {//console.log('Delete option', option); // eslint-disable-line no-console\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/combobox/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"lom9sZQx\",\n    \"block\": \"{\\\"symbols\\\":[\\\"option\\\"],\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"power-select-with-create\\\",null,[[\\\"selected\\\",\\\"options\\\",\\\"disabled\\\",\\\"searchEnabled\\\",\\\"searchField\\\",\\\"onchange\\\",\\\"oncreate\\\"],[[27,\\\"readonly\\\",[[23,[\\\"selected\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"options\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],true,\\\"label\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onChange\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"createNew\\\"],null]]],{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"div\\\"],[11,\\\"style\\\",\\\"display:flex; justify-content:space-between;\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"div\\\"],[9],[0,\\\"\\\\n       \\\"],[1,[27,\\\"get\\\",[[22,1,[]],[23,[\\\"optionSearchPath\\\"]]],null],false],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"data-option-index\\\",\\\"-1\\\"],[11,\\\"aria-disabled\\\",\\\"true\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"deleteComboItem\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"deleteOption\\\",[22,1,[]]],null]],[11,\\\"style\\\",\\\"border: none; background: transparent; width: 25px; padding: 0; margin: 0; margin-right: 5px;\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"fa fa-times-circle\\\"],[11,\\\"style\\\",\\\"margin: auto 1rem;\\\"],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n\\\\n\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/combobox/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/date/component\", [\"exports\", \"moment\"], function (_exports, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-datetimeflatpickr'],\n    editModal: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    defaultDate: null,\n    maxDate: null,\n    minDate: null,\n\n    init() {\n      this._super(...arguments);\n\n      const value = this.get('value') || '';\n      this.set('minDate', (0, _moment.default)().subtract(125, 'years').toDate());\n      this.set('value', value);\n      this.set('dateFormat', 'm/d/Y');\n      this.set('datePlaceholder', 'MM/DD/YYYY');\n    },\n\n    actions: {\n      onChangeDate(value) {\n        this.get('onChange')(value[0]);\n      },\n\n      onClose(currentValue, stringValue, datePicker) {\n        const currentValueMoment = (0, _moment.default)(currentValue[0]);\n        const newValueMoment = (0, _moment.default)(stringValue);\n\n        if (!newValueMoment._isValid && stringValue) {\n          this.set('editModal.errors', ['Date entered is invalid.']);\n        }\n\n        if (datePicker.config.allowInput && datePicker._input.value && newValueMoment._isValid && !currentValueMoment.isSame(newValueMoment)) {\n          datePicker.setDate(newValueMoment.toDate(), true);\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/date/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"SzIK711Z\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"enableTime\\\",\\\"minDate\\\",\\\"date\\\",\\\"classNames\\\",\\\"class\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceholder\\\"]],[23,[\\\"dateFormat\\\"]],false,[23,[\\\"minDate\\\"]],[23,[\\\"value\\\"]],[23,[\\\"classNames\\\"]],[23,[\\\"classNames\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/date/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/dateflatpickr/component\", [\"exports\", \"moment\", \"adept-iq/config/environment\", \"ember-keyboard-shortcuts\"], function (_exports, _moment, _environment, _emberKeyboardShortcuts) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-datetimeflatpickr'],\n    editModal: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    defaultDate: null,\n    maxDate: null,\n    minDate: null,\n\n    init() {\n      this._super(...arguments);\n\n      const value = this.get('value') || (0, _moment.default)().toDate(); //console.log('accessKey',this.get('accessKey'));\n\n      this.set('minDate', (0, _moment.default)(this.get('value')).startOf('day').toDate());\n      this.set('value', value);\n      this.set('dateFormat', _environment.default.dateTimeFormat.dateFlatPickr);\n      this.set('datePlaceholder', _environment.default.dateTimeFormat.dateMoment);\n      let altaccesskey = 'alt+' + this.get('accessKey');\n\n      if (!Ember.isBlank(this.get('accessKey'))) {\n        let accessKeyConfig = {\n          [altaccesskey]: {\n            action: 'handleFocus',\n            // action to trigger\n            global: true,\n            preventDefault: true\n          }\n        };\n        this.set('keyboardShortcuts', accessKeyConfig);\n      }\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.bindKeyboardShortcuts)(this);\n    },\n\n    willDestroyElement() {\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.unbindKeyboardShortcuts)(this);\n    },\n\n    actions: {\n      onChangeDate(value) {\n        this.get('onChange')(value[0]);\n      },\n\n      onClose(currentValue, stringValue, datePicker) {\n        const currentValueMoment = (0, _moment.default)(currentValue[0]);\n        const newValueMoment = (0, _moment.default)(stringValue);\n\n        if (!newValueMoment._isValid) {\n          this.set('editModal.errors', ['Date entered is invalid.']);\n        }\n\n        if (datePicker.config.allowInput && datePicker._input.value && newValueMoment._isValid && !currentValueMoment.isSame(newValueMoment)) {\n          datePicker.setDate(newValueMoment.toDate(), true);\n        }\n      },\n\n      handleFocus() {\n        //console.log('flatpickr-input',$('.flatpickr-input'));\n        if (!Ember.isBlank(this.get('accessKey'))) {\n          Ember.$('.flatpickr-input').focus();\n          /*this.input = document.querySelector(`.flatpickr-input`);\n          if (this.input) {\n                  run.next(this.input, 'focus');\n          }*/\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/dateflatpickr/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"pnhExA8x\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"enableTime\\\",\\\"minDate\\\",\\\"date\\\",\\\"classNames\\\",\\\"class\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceholder\\\"]],[23,[\\\"dateFormat\\\"]],false,[23,[\\\"minDate\\\"]],[23,[\\\"value\\\"]],[23,[\\\"classNames\\\"]],[23,[\\\"classNames\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/dateflatpickr/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/datetime/component\", [\"exports\", \"moment\"], function (_exports, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const DATETIME_FORMAT = /^\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d (AM|PM)$/;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-datetime'],\n    value: null,\n    disabled: false,\n    actions: {\n      onInput(value) {\n        if (!DATETIME_FORMAT.test(value)) return;\n        this.get('onChange')((0, _moment.default)(value, 'YYYY-MM-DD hh:mm A').toDate());\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/datetime/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"Zk7q8Lhe\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"moment-format\\\",[[23,[\\\"value\\\"]],\\\"YYYY-MM-DD hh:mm A\\\"],null]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/datetime/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/datetimeflatpickr/component\", [\"exports\", \"moment\", \"adept-iq/config/environment\", \"ember-keyboard-shortcuts\"], function (_exports, _moment, _environment, _emberKeyboardShortcuts) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-datetimeflatpickr'],\n    editModal: Ember.inject.service(),\n    value: null,\n    valueFormatted: null,\n    disabled: false,\n    defaultDate: null,\n    maxDate: null,\n    minDate: null,\n\n    init() {\n      this._super(...arguments);\n\n      const value = this.get('value') || (0, _moment.default)().toDate();\n      this.set('minDate', (0, _moment.default)(this.get('value')).startOf('day').toDate());\n      this.set('valueFormatted', value);\n      this.set('dateFormat', _environment.default.dateTimeFormat.dateTimeFlatPickr);\n      this.set('datePlaceholder', _environment.default.dateTimeFormat.dateTimeMoment);\n      const altaccesskey = 'alt+' + this.get('accessKey');\n\n      if (!Ember.isBlank(this.get('accessKey'))) {\n        const accessKeyConfig = {\n          [altaccesskey]: {\n            action: 'handleFocus',\n            // action to trigger\n            global: true,\n            preventDefault: true\n          }\n        };\n        this.set('keyboardShortcuts', accessKeyConfig);\n      }\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.bindKeyboardShortcuts)(this);\n    },\n\n    willDestroyElement() {\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.unbindKeyboardShortcuts)(this);\n    },\n\n    actions: {\n      onChangeDate(value) {\n        this.set('record.isForceDirty', true);\n        this.set(`record.${this.get('valuePath')}`, value[0]);\n      },\n\n      onClose(currentValue, stringValue, datePicker) {\n        const currentValueMoment = (0, _moment.default)(currentValue[0]);\n        const newValueMoment = (0, _moment.default)(stringValue);\n\n        if (!newValueMoment._isValid) {\n          // $(`#${datePicker.element.id}`).focus();\n          this.set('editModal.errors', ['Date entered is invalid.']);\n        }\n\n        if (datePicker.config.allowInput && datePicker._input.value && newValueMoment._isValid && !currentValueMoment.isSame(newValueMoment)) {\n          datePicker.setDate(newValueMoment.toDate(), true);\n        } // $(datePicker.altInput.className).select();\n        // $(datePicker.element).select();\n        // $('.effective-start').select();\n\n      },\n\n      onOpen() {\n        Ember.$('.numInputWrapper').focus();\n      },\n\n      handleFocus() {\n        //console.log('flatpickr-input',$('.flatpickr-input'));\n        if (!Ember.isBlank(this.get('accessKey'))) {\n          Ember.$('.flatpickr-input').focus();\n          /*this.input = document.querySelector(`.flatpickr-input`);\n          if (this.input) {\n                  run.next(this.input, 'focus');\n          }*/\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/datetimeflatpickr/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"YFwOPODi\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"datepickr-tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"label\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[1,[21,\\\"label\\\"],false],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n    \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"time_24hr\\\",\\\"enableTime\\\",\\\"minDate\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\",\\\"onOpen\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceholder\\\"]],[23,[\\\"dateFormat\\\"]],true,true,[23,[\\\"minDate\\\"]],[23,[\\\"valueFormatted\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onOpen\\\"],null]]]],false],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/datetimeflatpickr/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/eligibilities/component\", [\"exports\", \"moment\", \"adept-iq/config/environment\"], function (_exports, _moment, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-eligibilities'],\n    store: Ember.inject.service(),\n    value: null,\n    eligibilityTypes: null,\n    eligibilities: Ember.computed.readOnly('value'),\n    fromPath: Ember.computed.readOnly('extra.fromPath'),\n    toPath: Ember.computed.readOnly('extra.toPath'),\n    eligibilityTypePath: Ember.computed.readOnly('extra.eligibilityTypePath'),\n\n    init() {\n      this.set('datePlaceHolder', _environment.default.dateTimeFormat.dateMoment);\n      this.set('timePlaceHolder', _environment.default.dateTimeFormat.timeMoment);\n      this.set('dateFormat', _environment.default.dateTimeFormat.dateFlatPickr);\n      this.set('timeFormat', _environment.default.dateTimeFormat.timeFlatPickr);\n\n      this._super(...arguments);\n    },\n\n    didInsertElement: function () {\n      const eligibilityTypeModelName = this.get('extra.eligibilityTypeModelName');\n      this.set('eligibilityTypes', this.get('store').peekAll(eligibilityTypeModelName));\n    },\n    actions: {\n      onInput(record, valuePath, value) {\n        const options = {\n          record,\n          valuePath\n        };\n        this.get('onChange')(value, options);\n      },\n\n      onChangeDate(record, valuePath, value) {\n        const options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value[0], options);\n      },\n\n      onClose(currentValue, stringValue, datePicker) {\n        const currentValueMoment = (0, _moment.default)(currentValue[0]);\n        const newValueMoment = (0, _moment.default)(stringValue);\n\n        if (!newValueMoment._isValid) {\n          // $(`#${datePicker.element.id}`).focus();\n          this.set('editModal.errors', ['Date entered is invalid.']);\n        }\n\n        if (datePicker.config.allowInput && datePicker._input.value && newValueMoment._isValid && !currentValueMoment.isSame(newValueMoment)) {\n          // date format is for database so should not be from config\n          datePicker.setDate(newValueMoment.format('YYYY-MM-DD'), true);\n        } // $(datePicker.altInput.className).select();\n        // $(datePicker.element).select();\n        // $('.effective-start').select();\n\n      },\n\n      onAddNewEligibility() {\n        const eligibility = this.get('onCreate')();\n        eligibility.set('eligibilityType', '');\n      },\n\n      onRemoveEligibility(record, valuePath, value) {\n        const options = {\n          record,\n          valuePath\n        };\n        this.get('onRemove')(value, options);\n      },\n\n      onEligibilityTypeChange(record, valuePath, value) {\n        record.set(valuePath, value);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/eligibilities/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"pPnFax6U\",\n    \"block\": \"{\\\"symbols\\\":[\\\"eligibility\\\",\\\"option\\\"],\\\"statements\\\":[[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 eligibility-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"eligibilities\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Eligibility Type\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"selected\\\",\\\"options\\\",\\\"disabled\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"eligibilityTypePath\\\"]]],null]],null],[27,\\\"readonly\\\",[[23,[\\\"eligibilityTypes\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],false,[27,\\\"action\\\",[[22,0,[]],\\\"onEligibilityTypeChange\\\",[22,1,[]],[23,[\\\"eligibilityTypePath\\\"]]],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[22,2,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Start Date\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell data-test-eligibilityFrom-input\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"fromPath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\",[22,1,[]],[23,[\\\"fromPath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"End Date\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell data-test-eligibilityTo-input\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"toPath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\",[22,1,[]],[23,[\\\"toPath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onRemoveEligibility\\\",[22,1,[]],[23,[\\\"eligibilityTypePath\\\"]],[23,[\\\"target\\\",\\\"value\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-remove\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-trash-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n          Remove\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onAddNewEligibility\\\",[23,[\\\"record\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary mt-3\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-plus\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n        Add New Eligibility\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/eligibilities/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/enum/component\", [\"exports\", \"ember-keyboard-shortcuts\"], function (_exports, _emberKeyboardShortcuts) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-select'],\n    value: null,\n    disabled: false,\n    extra: null,\n    store: Ember.inject.service(),\n    dataFromModel: false,\n    options: Ember.computed.alias('extra.options'),\n    allowMultiple: Ember.computed.alias('extra.allowMultiple'),\n    optionModelName: Ember.computed.alias('extra.optionModelName'),\n    keyboardShortcuts: null,\n\n    init() {\n      this._super(...arguments);\n\n      if (this.get('extra.optionModelName') !== undefined) {\n        this.set('dataFromModel', true);\n        this.set('options', this.get('store').peekAll(this.get('extra.optionModelName')));\n      }\n\n      let altaccesskey = 'alt+' + this.get('accessKey');\n\n      if (!Ember.isBlank(this.get('accessKey'))) {\n        let accessKeyConfig = {\n          [altaccesskey]: {\n            action: 'handleFocus',\n            // action to trigger\n            global: true,\n            preventDefault: true\n          }\n        };\n        this.set('keyboardShortcuts', accessKeyConfig);\n      }\n    },\n\n    didInsertElement() {\n      this._super(...arguments); //console.log('enum keyboardShortcuts ',this.get('keyboardShortcuts'));\n\n\n      (0, _emberKeyboardShortcuts.bindKeyboardShortcuts)(this);\n    },\n\n    willDestroyElement() {\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.unbindKeyboardShortcuts)(this);\n    },\n\n    selected: Ember.computed('value', 'options', function () {\n      if (this.get('extra.optionModelName') !== undefined) {\n        if (this.get('value') === undefined || this.get('value.id') === undefined) {\n          this.set('value', this.get('options').firstObject);\n        }\n\n        return this.get('options').find(option => {\n          return option.id === this.get('value.id');\n        });\n      }\n    }),\n    actions: {\n      onChange(option) {\n        this.get('onChange')(option);\n      },\n\n      handleFocus() {\n        if (!Ember.isBlank(this.get('accessKey'))) {\n          this.input = document.querySelector(`.ember-power-select-trigger[id=\"${this.get('triggerId')}\"]`);\n\n          if (this.input) {\n            Ember.run.next(this.input, 'focus');\n          }\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/enum/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"2MYOU9iD\",\n    \"block\": \"{\\\"symbols\\\":[\\\"option\\\",\\\"option\\\"],\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"dataFromModel\\\"]],true],null]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"if\\\",[[23,[\\\"allowMultiple\\\"]],\\\"power-select-multiple\\\",\\\"power-select\\\"],null]],[[\\\"id\\\",\\\"selected\\\",\\\"options\\\",\\\"disabled\\\",\\\"onchange\\\",\\\"triggerId\\\"],[[27,\\\"readonly\\\",[[23,[\\\"triggerId\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"selected\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"options\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChange\\\"],null],[27,\\\"readonly\\\",[[23,[\\\"triggerId\\\"]]],null]]],{\\\"statements\\\":[[0,\\\"    \\\"],[1,[22,2,[\\\"name\\\"]],false],[0,\\\"\\\\n    \\\"]],\\\"parameters\\\":[2]},null],[1,[21,\\\"id\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"dataFromModel\\\"]],false],null]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"if\\\",[[23,[\\\"allowMultiple\\\"]],\\\"power-select-multiple\\\",\\\"power-select\\\"],null]],[[\\\"id\\\",\\\"selected\\\",\\\"options\\\",\\\"disabled\\\",\\\"onchange\\\",\\\"triggerId\\\"],[[27,\\\"readonly\\\",[[23,[\\\"triggerId\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"options\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChange\\\"],null],[27,\\\"readonly\\\",[[23,[\\\"triggerId\\\"]]],null]]],{\\\"statements\\\":[[0,\\\"    \\\"],[1,[22,1,[]],false],[0,\\\"\\\\n    \\\"]],\\\"parameters\\\":[1]},null],[1,[21,\\\"id\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/enum/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/input/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"6zUF5ZCV\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"label\\\"],[11,\\\"for\\\",\\\"basic-url\\\"],[9],[1,[21,\\\"label\\\"],false],[10],[0,\\\"\\\\n\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"input-group mb-3\\\"],[9],[0,\\\"\\\\n  \\\"],[1,[27,\\\"input\\\",[[27,\\\"-input-type\\\",[[23,[\\\"type\\\"]]],null]],[[\\\"type\\\",\\\"class\\\",\\\"value\\\",\\\"placeholder\\\"],[[23,[\\\"type\\\"]],\\\"form-control\\\",[23,[\\\"value\\\"]],[23,[\\\"placeholder\\\"]]]]],false],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/input/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/locations/component\", [\"exports\", \"tomtom\", \"adept-iq/config/environment\", \"ember-concurrency\", \"adept-iq/utils/zone-validation\", \"adept-iq/utils/check-address-overwrite\", \"adept-iq/utils/check-address-flags\", \"adept-iq/config/api-urls\", \"lodash\", \"adept-iq/utils/check-value\", \"ember-keyboard-shortcuts\"], function (_exports, _tomtom, _environment, _emberConcurrency, _zoneValidation, _checkAddressOverwrite, _checkAddressFlags, _apiUrls, _lodash, _checkValue, _emberKeyboardShortcuts) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-locations'],\n    editModal: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    addressOptions: null,\n    keyboardShortcuts: null,\n    // addresses: computed.readOnly('value'),\n    addressTypePath: Ember.computed.readOnly('extra.addressTypePath'),\n    aliasPath: Ember.computed.readOnly('extra.aliasPath'),\n    descriptionPath: Ember.computed.readOnly('extra.descriptionPath'),\n    unitPath: Ember.computed.readOnly('extra.unitPath'),\n    notesPath: Ember.computed.readOnly('extra.notesPath'),\n    streetNrPath: Ember.computed.readOnly('extra.streetNrPath'),\n    streetNamePath: Ember.computed.readOnly('extra.streetNamePath'),\n    localityPath: Ember.computed.readOnly('extra.localityPath'),\n    regionPath: Ember.computed.readOnly('extra.regionPath'),\n    subRegionPath: Ember.computed.readOnly('extra.subRegionPath'),\n    postalCodePath: Ember.computed.readOnly('extra.postalCodePath'),\n    countryPath: Ember.computed.readOnly('extra.countryPath'),\n    defaultOptionsPath: Ember.computed.readOnly('extra.defaultOptionsPath'),\n    useOptionRecord: Ember.computed.readOnly('extra.useOptionRecord'),\n    useRecordWithId: Ember.computed.readOnly('extra.useRecordWithId'),\n    pickup: Ember.computed.readOnly('extra.pickup'),\n    dropoff: Ember.computed.readOnly('extra.dropoff'),\n    swipeAddressAccessKey: Ember.computed.readOnly('extra.swipeAddressAccessKey'),\n    locationsPath: 'address.latlng',\n    geoNodePath: 'address.geoNode',\n    poiSearchPath: _apiUrls.API_SUB_URL.poiSearchPath,\n    altPickupAccesskey: null,\n    altDropoffAccesskey: null,\n    altSwipeAddressKey: null,\n    //locationsPath: 'latlng',\n    //geoNodePath: 'geoNode',\n    addressRecord: null,\n    addressInputRecord: null,\n    selected: null,\n\n    geocodeAddressChange() {\n      const record = this.get('addressRecord');\n      const tomtomAddress = this.get('geocode.tomtomAddress');\n\n      if (!Ember.isEmpty(tomtomAddress)) {\n        this.convertTTAddressToModel(record, tomtomAddress, true);\n        this.disableAddressSearchOnMap(record, record.passengerEvents[0].type);\n        this.removeObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n      }\n    },\n\n    geocodeLatLngChange() {\n      const record = this.get('addressRecord');\n      const tomtomLatLng = this.get('geocode.tomtomLatLng');\n\n      if (!Ember.isEmpty(tomtomLatLng)) {\n        record.address.coord.lat = tomtomLatLng.lat;\n        record.address.coord.lng = tomtomLatLng.lon;\n      }\n    },\n\n    prepareQuery(record) {\n      let description = this.get('geocode').get('activePOIDescription');\n      let streetNr = '';\n      let streetName = '';\n      let unitNr = '';\n      let region = '';\n\n      if (!Ember.isBlank(record)) {\n        streetNr = record.address.streetNr;\n        streetName = record.address.streetName;\n        unitNr = record.address.unitNr;\n        region = record.address.region;\n      }\n\n      let searchURL = '';\n\n      if (!Ember.isBlank(description) && !Ember.isBlank(description.trim())) {\n        searchURL = searchURL + 'description=' + description.toUpperCase();\n      }\n\n      if (!Ember.isBlank(streetNr) && !Ember.isBlank(streetNr.trim())) {\n        searchURL = 'streetNr=' + streetNr.toUpperCase();\n      }\n\n      if (!Ember.isBlank(streetName) && !Ember.isBlank(streetName.trim())) {\n        if (!Ember.isBlank(searchURL)) searchURL = searchURL + '&streetName=' + streetName.toUpperCase();else searchURL = 'streetName=' + streetName.toUpperCase();\n      }\n\n      if (!Ember.isBlank(unitNr) && !Ember.isBlank(unitNr.trim()) && !Ember.isBlank(streetNr) && !Ember.isBlank(streetNr.trim()) && !Ember.isBlank(streetName) && !Ember.isBlank(streetName.trim())) {\n        if (!Ember.isBlank(searchURL)) searchURL = searchURL + '&unitNr=' + unitNr.toUpperCase();else searchURL = 'unitNr=' + unitNr.toUpperCase();\n      }\n\n      if (!Ember.isBlank(region) && !Ember.isBlank(region.trim())) {\n        if (!Ember.isBlank(searchURL)) searchURL = searchURL + '&region=' + region.toUpperCase();else searchURL = 'region=' + region.toUpperCase();\n      }\n\n      return searchURL;\n    },\n\n    // eslint-disable-next-line no-unused-vars\n    search: (0, _emberConcurrency.task)(function* (term) {\n      yield (0, _emberConcurrency.timeout)(50);\n      let searchResults;\n      searchResults = yield this.getPOIData(this.get('poiSearchPath'), this.get('value'), this.get('optionModelName'));\n      return searchResults;\n    }),\n\n    getPOIData(optionSearchPath, filterValue, optionModelName) {\n      return this.get('ajax').put(_apiUrls.API.tripManagementService.host + optionSearchPath + '=' + this.get('geocode').get('activePOIDescription'), {\n        method: 'GET',\n        contentType: \"application/json\"\n      }).then(response => {\n        return response.data;\n      }).catch(function () {\n        return [];\n      });\n    },\n\n    validateAddresses(addressRecord) {\n      this.set('editModal.errors', []);\n      let me = this;\n\n      if (addressRecord.address.coord.lat === 0 || addressRecord.address.coord.lng === 0) {\n        this.get('editModal.errors').pushObject('Address does not have lat/lng. Please select position on the map.');\n      } else {\n        if (Ember.isBlank(addressRecord.address.streetNr)) {\n          this.get('editModal.errors').pushObject(addressRecord.passengerEvents[0].type + ' does not have street number');\n        }\n\n        (0, _checkAddressFlags.default)(this.get('record'));\n      }\n    },\n\n    init() {\n      this._super(...arguments);\n\n      let addresses = this.get('value');\n      this.set('addresses', addresses);\n      this.set('addressOptions', []);\n      const defaultOptionsPath = this.get('defaultOptionsPath');\n\n      if (this.get('record') !== null && this.get('record') !== undefined && !Ember.isNone(defaultOptionsPath) && this.get('record').get(defaultOptionsPath) !== null && this.get('record').get(defaultOptionsPath) !== undefined) {\n        // this.set('aliasOptions',this.get('record').get(defaultOptionsPath));\n        // this.set('addressOptions', this.get('record').get(defaultOptionsPath));\n        this.get('record').get(defaultOptionsPath).forEach(address => {\n          this.get('addressOptions').push(address);\n        });\n        addresses.forEach(address => {\n          this.get('addressOptions').push(address);\n        });\n      }\n\n      addresses.forEach(address => {\n        this.get('geocode').addressMapPopulate(address);\n      });\n      addresses.forEach(address => {\n        try {\n          Ember.set(address.address.tomtomFormattedAddress.address, 'freeformAddress', (0, _checkValue.default)((0, _checkValue.default)(address.address.streetNr) + \" \" + (0, _checkValue.default)(address.address.streetName) + \" \" + (0, _checkValue.default)(address.address.region)));\n        } catch (e) {\n          address.address.tomtomFormattedAddress = {\n            address: {\n              freeformAddress: (0, _checkValue.default)((0, _checkValue.default)(address.address.streetNr) + \" \" + (0, _checkValue.default)(address.address.streetName) + \" \" + (0, _checkValue.default)(address.address.region))\n            }\n          };\n        }\n\n        if (Ember.isBlank(address.address.coord)) {\n          try {\n            Ember.set(address.address, 'coord', {\n              \"lat\": 0,\n              \"lng\": 0\n            });\n          } catch (e) {\n            address.address.coord = {\n              \"lat\": 0,\n              \"lng\": 0\n            };\n          }\n        }\n      });\n      let altPickupAccesskey = 'alt+' + this.get('pickup.accessKey');\n      let altDropoffAccesskey = 'alt+' + this.get('dropoff.accessKey');\n      let altSwipeAddressKey = 'alt+' + this.get('swipeAddressAccessKey');\n      this.set('altPickupAccesskey', altPickupAccesskey);\n      this.set('altDropoffAccesskey', altDropoffAccesskey);\n      this.set('altSwipeAddressKey', altSwipeAddressKey);\n      let accessKeyConfig = {\n        [altSwipeAddressKey]: {\n          action: 'onSwapAddress',\n          // action to trigger\n          global: true,\n          preventDefault: true\n        },\n        [altPickupAccesskey]: {\n          action: 'handlePickupFocus',\n          // action to trigger\n          global: true,\n          preventDefault: true\n        },\n        [altDropoffAccesskey]: {\n          action: 'handleDropoffFocus',\n          // action to trigger\n          global: true,\n          preventDefault: true\n        }\n      };\n      this.set('keyboardShortcuts', accessKeyConfig);\n      this.addObserver('geocode.tomtomLatLng', this.geocodeLatLngChange);\n    },\n\n    didInsertElement() {\n      //console.log('keyboardShortcuts', this.get('keyboardShortcuts'));\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.bindKeyboardShortcuts)(this);\n    },\n\n    willDestroyElement() {\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.unbindKeyboardShortcuts)(this);\n    },\n\n    addressSearchResults(results) {\n      const emberResults = []; //let defaultOptions = this.get('record').get(this.get('defaultOptionsPath'));\n\n      results.forEach(result => {\n        if (result.type === 'POI' || result.type === 'Point Address' || result.type === 'Address Range') {\n          emberResults.push(Ember.Object.create(result));\n        }\n      });\n      /*if(defaultOptions) {\n        defaultOptions.forEach(option => {\n          emberResults.push(option);\n        });\n      }*/\n\n      this.set('addressOptions', emberResults);\n    },\n\n    searchAddress: (0, _emberConcurrency.task)(function* (term) {\n      this.populateAddressModel(this.get('addressInputRecord'), term);\n\n      if (term.length > 3) {\n        yield _tomtom.default.geocode().key(_environment.default.tomtom.search.searchKey).query(term).limit(20).countrySet(_environment.default.tomtom.search.countrySet).typeahead(true).center(_environment.default.tomtom.search.center).radius(_environment.default.tomtom.search.radius).callback(this.addressSearchResults.bind(this)).go();\n      }\n    }),\n    convertTTAddressToModel: function (record, ttAddress, checkOverwrite) {\n      this.set('record.isForceDirty', true);\n      let overwriteAddress = true;\n      let overwriteAddressPop = (0, _checkAddressOverwrite.default)(record.address, ttAddress.address);\n\n      if (overwriteAddressPop && checkOverwrite) {\n        overwriteAddress = confirm('Do you want to overwrite Address');\n      }\n\n      if (overwriteAddress) {\n        this.set('record.isForceDirty', true);\n\n        try {\n          record.address.streetNr = ttAddress.address.streetNumber;\n          record.address.streetName = ttAddress.address.streetName;\n          record.address.region = ttAddress.address.municipalitySubdivision || ttAddress.address.municipality;\n          record.address.state = ttAddress.address.countrySubdivisionName;\n          record.address.postCode = ttAddress.address.postalCode; //record.address.description = ttAddress.poi.name;\n          //record.address.country = ttAddress.address.country;\n        } catch (e) {\n          Ember.set(record.address, 'streetNr', (0, _checkValue.default)(ttAddress.address.streetNumber));\n          Ember.set(record.address, 'streetName', (0, _checkValue.default)(ttAddress.address.streetName || ttAddress.address.municipality));\n          Ember.set(record.address, 'region', (0, _checkValue.default)(ttAddress.address.municipalitySubdivision || ttAddress.address.municipality));\n          Ember.set(record.address, 'state', (0, _checkValue.default)(ttAddress.address.countrySubdivisionName));\n          Ember.set(record.address, 'postCode', (0, _checkValue.default)(ttAddress.address.postCode));\n          console.log('e', e);\n        }\n\n        try {\n          Ember.set(record.address.tomtomFormattedAddress.address, 'freeformAddress', (0, _checkValue.default)(record.address.streetNr) + \" \" + (0, _checkValue.default)(record.address.streetName) + \" \" + (0, _checkValue.default)(record.address.region));\n        } catch (e) {\n          console.log('e', e);\n\n          try {\n            record.address.tomtomFormattedAddress = {\n              address: {\n                freeformAddress: (0, _checkValue.default)(record.address.streetNr) + \" \" + (0, _checkValue.default)(record.address.streetName) + \" \" + (0, _checkValue.default)(record.address.region)\n              }\n            };\n          } catch (e) {\n            console.log('e1 ', e);\n          }\n        }\n\n        try {\n          Ember.set(record.address, 'formattedAddress', (0, _checkValue.default)(ttAddress.freeformAddress));\n        } catch (e) {\n          record.address.formattedAddress = (0, _checkValue.default)(ttAddress.freeformAddress);\n        }\n      }\n\n      try {\n        record.address.coord.lat = ttAddress.position.lat;\n        record.address.coord.lng = ttAddress.position.lon;\n      } catch (e) {//console.log(e);\n      }\n\n      try {\n        let searchURL = this.prepareQuery(record);\n        this.store.query('address-lookup', {\n          searchURL\n        }).then(results => {\n          this.get('geocode').addressLookupResults(results, record, this.get('record'));\n        }).catch(function (error) {\n          console.log('error ', error);\n        });\n      } catch (e) {\n        console.log(e);\n      }\n\n      try {\n        this.get('geocode').getGeonode(ttAddress.position.lat, ttAddress.position.lon).then(result => {\n          const zoneData = this.get('store').peekRecord('zone', result.data.gpsAreaId);\n          Ember.set(record.address, 'geoNode', zoneData.get('name'));\n          let notes = zoneData.get('notes');\n          let zoneDriverNotes = \"\";\n          let zoneOperatorNotes = \"\";\n\n          if (!Ember.isBlank(notes)) {\n            zoneDriverNotes = notes.driver;\n            zoneOperatorNotes = notes.dispatcher;\n          }\n\n          let tripData = this.get('record');\n          Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.area', zoneDriverNotes);\n          Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.area', zoneOperatorNotes);\n          let options = this.get('store').peekAll('tm-common-operational-attribute');\n          let requiredAttributes = zoneData.get('requiredAttributes');\n          let areaAttributes = options.filter(function (o1) {\n            // if match found return false\n            return _lodash.default.findIndex(requiredAttributes, {\n              'type': o1.type\n            }) === -1 ? false : true;\n          });\n          Ember.set(tripData, 'editmodelcontext.attributes.area', areaAttributes);\n        });\n      } catch (e) {//console.log(e);\n      }\n\n      try {\n        this.get('geocode').activateGeocode(false, record, record.passengerEvents[0].type);\n        this.validateAddresses(record);\n      } catch (e) {\n        console.log('e ', e);\n      }\n\n      try {\n        this.set('addressOptions', this.get('record').get(this.get('defaultOptionsPath')));\n      } catch (e) {}\n    },\n    clearAddressModel: function (record) {\n      // Ember.set(record.address,'unitNr','');\n      try {\n        record.address.streetNr = '';\n        record.address.streetName = '';\n        record.address.region = '';\n        record.address.state = '';\n        record.address.postCode = '';\n      } catch (e) {\n        Ember.set(record.address, 'streetNr', '');\n        Ember.set(record.address, 'streetName', '');\n        Ember.set(record.address, 'region', '');\n        Ember.set(record.address, 'state', '');\n        Ember.set(record.address, 'postCode', '');\n      }\n\n      Ember.set(record.address, 'description', '');\n\n      try {\n        Ember.set(record.address.tomtomFormattedAddress.address, 'freeformAddress', '');\n      } catch (e) {\n        console.log('e', e);\n\n        try {\n          record.address.tomtomFormattedAddress = {\n            address: {\n              freeformAddress: ''\n            }\n          };\n        } catch (e) {\n          console.log('e1 ', e);\n        }\n      } //record.address.country = '';\n\n\n      record.address.coord.lat = 0;\n      record.address.coord.lng = 0;\n    },\n    populateAddressModel: function (record, searchText) {\n      //Ember.set(record.address,'unitNr','');\n      try {\n        record.address.streetNr = '';\n        record.address.streetName = searchText;\n        record.address.region = '';\n        record.address.state = '';\n        record.address.postCode = '';\n      } catch (e) {\n        Ember.set(record.address, 'streetNr', '');\n        Ember.set(record.address, 'streetName', searchText);\n        Ember.set(record.address, 'region', '');\n        Ember.set(record.address, 'state', '');\n        Ember.set(record.address, 'postCode', '');\n      }\n\n      try {\n        Ember.set(record.address.tomtomFormattedAddress.address, 'freeformAddress', searchText);\n      } catch (e) {\n        console.log('e', e);\n\n        try {\n          record.address.tomtomFormattedAddress = {\n            address: {\n              freeformAddress: searchText\n            }\n          };\n        } catch (e) {\n          console.log('e1 ', e);\n        }\n      }\n\n      Ember.set(record.address, 'description', ''); //record.address.country = '';\n\n      record.address.coord.lat = 0;\n      record.address.coord.lng = 0;\n    },\n\n    enableAddressSearchOnMap(record, type) {\n      Ember.$('html,body,.tomtom-map').addClass('custom-cursor');\n      this.get('geocode').set('disabledFindLocationForRecord', true);\n      this.get('geocode').activateGeocode(true, record, type, false);\n      this.set('addressRecord', record);\n      this.addObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n    },\n\n    disableAddressSearchOnMap(record, type) {\n      Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n      this.get('geocode').activateGeocode(false, record, type);\n      this.set('addressRecord', null);\n      this.removeObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n      this.get('geocode').set('disabledFindLocationForRecord', false);\n    },\n\n    enableAddressPOIOnMap(record, type) {\n      Ember.$('html,body,.tomtom-map').addClass('custom-cursor');\n      this.get('geocode').set('activePOIDescription', record.address.description); //this.get('geocode').set('disabledFindLocationForRecord',true);\n\n      this.get('geocode').activatePOIGeocode(true, record, type, false);\n      this.set('addressRecord', record);\n      this.addObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n    },\n\n    disableAddressPOIOnMap(record, type) {\n      Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n      this.get('geocode').set('activePOIDescription', '');\n      this.get('geocode').activatePOIGeocode(false, record, type);\n      this.set('addressRecord', null);\n      /*this.removeObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n      this.get('geocode').set('disabledFindLocationForRecord', false);*/\n    },\n\n    actions: {\n      onInput(record, valuePath, value) {\n        Ember.set(record, valuePath, value);\n        this.set('record.isForceDirty', true);\n      },\n\n      onFocus(select, e) {\n        Ember.$('.ember-power-select-search-input').focus();\n        e.stopPropagation();\n      },\n\n      onClose(record, valuePath, dropdown, e) {\n        if (valuePath) {\n          this.input = document.querySelector('.ember-power-select-trigger[id=' + valuePath + ']');\n\n          if (this.input) {\n            Ember.run.next(this.input, 'focus');\n          }\n        }\n      },\n\n      onAddressSelected(record, valuePath, value) {\n        console.log('onAddressSelected ', value);\n\n        if (this.get('useRecordWithId') && !Ember.isNone(value.get('id'))) {\n          this.set('record.place', value);\n          this.set('addresses', [value]);\n        } else {\n          if (!(0, _zoneValidation.insideZone)([value.get('position.lat'), value.get('position.lon')])) {\n            this.get('errorMessage').pushError({\n              detail: 'Invalid Zone'\n            });\n            return;\n          }\n\n          this.convertTTAddressToModel(record, value, false);\n        }\n      },\n\n      onAliasAddressSelected(record, valuePath, value) {\n        this.convertTTAliasAddressToModel(record, value);\n      },\n\n      onPickOnMap(record) {\n        const activeGeocode = this.get('geocode.activeGeocode');\n\n        if (activeGeocode) {\n          this.disableAddressSearchOnMap(record, record.passengerEvents[0].type);\n        } else {\n          this.enableAddressSearchOnMap(record, record.passengerEvents[0].type);\n        }\n      },\n\n      onPOIOnMap(record) {\n        const activePOIGeocode = this.get('geocode.activePOIGeocode');\n\n        if (activePOIGeocode) {\n          this.disableAddressPOIOnMap(record, 'poi');\n        } else {\n          this.enableAddressPOIOnMap(record, 'poi');\n        }\n      },\n\n      onAddNewAddress(record, valuePath, modelName) {\n        const newAddress = this.get('editModal').pushRecordValue(record, valuePath, modelName);\n        this.get('editModal').pushRecordValue(newAddress, 'locations', 'rms-location');\n      },\n\n      onRemoveAddress(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.get('onRemove')(value, options);\n      },\n\n      handleKeydown(record, type, index, e, event) {\n        this.set('addressInputRecord', record);\n        const key = event.keyCode;\n\n        if (key == 34 || key == 27 || key == 92 || key == 91 || key == 93 || key == 94 || key == 62 || key == 60 || key == 123 || key == 124 || key == 125 || key == 16 || key == 39 || event.ctrlKey || event.altKey || event.shiftKey) {\n          return;\n        }\n\n        var inp = String.fromCharCode(event.keyCode);\n\n        if (/[a-zA-Z0-9-_ ]/.test(inp) || event.keyCode === 8) {\n          this.populateAddressModel(record, event.target.value);\n          this.set('record.isForceDirty', true);\n          this.set('addressRecord', record);\n          (0, _checkAddressFlags.default)(this.get('record'));\n        }\n\n        if (e.keyCode === 13) {\n          this.set('editmodalcontext.showWidgetModal', false);\n          this.set('editmodalcontext.modelWidgetPath', '');\n          this.get('geocode').set('activePOIResults', []);\n          this.clearAddressModel(record);\n          this.populateAddressModel(record, event.target.value);\n          this.set('record.isForceDirty', true);\n          this.set('addressRecord', record);\n          (0, _checkAddressFlags.default)(this.get('record'));\n        }\n      },\n\n      onSwapAddress() {\n        let record = this.get('record');\n\n        let pickAddress = _lodash.default.cloneDeep(record.stopPoints[0]);\n\n        let dropAddress = _lodash.default.cloneDeep(record.stopPoints[1]);\n\n        this.set('record.stopPoints.1.address', _lodash.default.cloneDeep(pickAddress.address));\n        this.set('record.stopPoints.0.address', _lodash.default.cloneDeep(dropAddress.address));\n        this.get('geocode').deactivateGeocode();\n        let pickAddressResult = [];\n        pickAddressResult.push(dropAddress);\n        this.get('geocode').set('markerType', 'pickup');\n        this.get('geocode').set('currentRecord', record.stopPoints[0]);\n        this.get('geocode').addressMapPopulate(record.stopPoints[0]);\n        let dropAddressResult = [];\n        dropAddressResult.push(pickAddress);\n        this.get('geocode').set('markerType', 'dropoff');\n        this.get('geocode').set('currentRecord', record.stopPoints[1].address);\n        this.get('geocode').addressMapPopulate(record.stopPoints[1]);\n      },\n\n      handlePickupFocus() {\n        this.input = document.querySelector(`.ember-power-select-trigger[id=pickup]`);\n\n        if (this.input) {\n          Ember.run.next(this.input, 'focus');\n        }\n      },\n\n      handleDropoffFocus() {\n        this.input = document.querySelector(`.ember-power-select-trigger[id=dropoff]`);\n\n        if (this.input) {\n          Ember.run.next(this.input, 'focus');\n        }\n      },\n\n      handlePOIKeydown(record, valuePath, type, index, event) {\n        let me = this;\n        console.log('handlePOIKeydown ', record);\n\n        if (event.keyCode !== 13) {\n          return;\n        }\n\n        this.set('editmodalcontext.showWidgetModal', false);\n        this.set('editmodalcontext.modelWidgetPath', '');\n        this.get('geocode').set('activePOIRecord', record);\n        this.get('geocode').set('activePOIDescription', record.address.description);\n        this.get('geocode').set('activePOIIndex', index);\n        this.get('geocode').set('markerType', type);\n        this.get('geocode').set('activePOIResults', []);\n        this.set('editmodalcontext.addressRecord', record);\n        this.set('editmodalcontext.record', this.get('record')); //Ankur Need to enable if allow marker click\n        // this.set('addressRecord', record);\n        // this.addObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n        //this.get('geocode').set('disabledFindLocationForRecord',true);\n\n        let searchURL = this.prepareQuery();\n        this.store.query('address-lookup', {\n          searchURL\n        }).then(results => {\n          this.get('geocode').addressPOISearchResults(results);\n        }).catch(function (error) {\n          me.get('editModal.errors').pushObject('No result found');\n        });\n      },\n\n      handleUnitKeydown(record, valuePath, type, index, event) {\n        let me = this;\n\n        if (event.keyCode !== 13) {\n          return;\n        }\n\n        this.set('editmodalcontext.showWidgetModal', false);\n        this.set('editmodalcontext.modelWidgetPath', '');\n        this.get('geocode').set('activePOIRecord', record);\n        this.get('geocode').set('activePOIIndex', index);\n        this.get('geocode').set('markerType', type); //Ankur Need to enable if allow marker click\n        // this.set('addressRecord', record);\n        // this.addObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n        //this.get('geocode').set('disabledFindLocationForRecord',true);\n\n        try {\n          let searchURL = this.prepareQuery(record);\n          this.store.query('address-lookup', {\n            searchURL\n          }).then(results => {\n            this.get('geocode').addressUnitLookupResults(results, record, this.get('record'));\n          }).catch(function (error) {\n            me.get('editModal.errors').pushObject('No result found');\n          });\n        } catch (e) {\n          console.log(e);\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/locations/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"W0fUZiUS\",\n    \"block\": \"{\\\"symbols\\\":[\\\"address\\\",\\\"index\\\",\\\"option\\\",\\\"option\\\"],\\\"statements\\\":[[7,\\\"table\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 locations-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"addresses\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]],\\\"pickup\\\"],null]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[12,\\\"accesskey\\\",[23,[\\\"pickup\\\",\\\"accessKey\\\"]]],[9],[1,[27,\\\"titlecase\\\",[[23,[\\\"pickup\\\",\\\"label\\\"]]],null],false],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[11,\\\"data-test-address-field\\\",\\\"\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"class\\\",\\\"options\\\",\\\"search\\\",\\\"onfocus\\\",\\\"id\\\",\\\"triggerId\\\",\\\"selected\\\",\\\"onclose\\\",\\\"onkeydown\\\",\\\"onchange\\\"],[\\\"data-power-select\\\",[23,[\\\"addressOptions\\\"]],[27,\\\"perform\\\",[[23,[\\\"searchAddress\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onFocus\\\"],null],[27,\\\"readonly\\\",[[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null],[27,\\\"readonly\\\",[[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null],[22,1,[\\\"address\\\",\\\"tomtomFormattedAddress\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\",[22,1,[]],[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\",[22,1,[]],[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]],[22,2,[]]],null]],null],[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onAddressSelected\\\",[22,1,[]],[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,4,[\\\"address\\\",\\\"freeformAddress\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]],\\\"dropoff\\\"],null]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[12,\\\"accesskey\\\",[23,[\\\"dropoff\\\",\\\"accessKey\\\"]]],[9],[1,[27,\\\"titlecase\\\",[[23,[\\\"dropoff\\\",\\\"label\\\"]]],null],false],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[11,\\\"data-test-address-field\\\",\\\"\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"class\\\",\\\"options\\\",\\\"search\\\",\\\"onfocus\\\",\\\"id\\\",\\\"triggerId\\\",\\\"selected\\\",\\\"onclose\\\",\\\"onkeydown\\\",\\\"onchange\\\"],[\\\"data-power-select\\\",[23,[\\\"addressOptions\\\"]],[27,\\\"perform\\\",[[23,[\\\"searchAddress\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onFocus\\\"],null],[27,\\\"readonly\\\",[[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null],[27,\\\"readonly\\\",[[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null],[22,1,[\\\"address\\\",\\\"tomtomFormattedAddress\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\",[22,1,[]],[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\",[22,1,[]],[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]],[22,2,[]]],null]],null],[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onAddressSelected\\\",[22,1,[]],[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,3,[\\\"address\\\",\\\"freeformAddress\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onPickOnMap\\\",[22,1,[]]],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary places-inline-button\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-map-marker\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Unit\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"unitPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Unit\\\"],[11,\\\"maxlength\\\",\\\"10\\\"],[12,\\\"id\\\",[27,\\\"idandindex\\\",[\\\"inputUnit\\\",[22,2,[]]],null]],[12,\\\"onkeydown\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"handleUnitKeydown\\\",[22,1,[]],[23,[\\\"unitPath\\\"]],[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]],[22,2,[]]],null]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"unitPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"modelWidgetPath\\\"]],\\\"address-lookup-unit\\\"],null]],null,{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]],true],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"geocode\\\",\\\"activePOIIndex\\\"]],[22,2,[]]],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"style\\\",\\\"position: fixed;\\\\tz-index: 1000;height: 50px;width: 50%;\\\"],[9],[0,\\\"\\\\n              \\\"],[1,[27,\\\"iq-widgets/address-lookup\\\",null,[[\\\"widgetModelData\\\",\\\"focusFieldId\\\",\\\"currentRecord\\\",\\\"addressRecord\\\",\\\"showWidgetModal\\\"],[[23,[\\\"editmodalcontext\\\",\\\"widgetModelData\\\"]],[27,\\\"idandindex\\\",[\\\"inputUnit\\\",[22,2,[]]],null],[23,[\\\"record\\\"]],[22,1,[]],[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]]]]],false],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Place Name\\\"],[10],[0,\\\"\\\\n\\\\n       \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"descriptionPath\\\"]]],null]],null]],[12,\\\"accesskey\\\",[21,\\\"accessKey\\\"]],[11,\\\"placeholder\\\",\\\"Place Name\\\"],[11,\\\"maxlength\\\",\\\"80\\\"],[12,\\\"id\\\",[27,\\\"idandindex\\\",[\\\"inputPOI\\\",[22,2,[]]],null]],[12,\\\"onkeydown\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"handlePOIKeydown\\\",[22,1,[]],[23,[\\\"descriptionPath\\\"]],[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]],[22,2,[]]],null]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"descriptionPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"modelWidgetPath\\\"]],\\\"address-lookup-poi\\\"],null]],null,{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]],true],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"geocode\\\",\\\"activePOIIndex\\\"]],[22,2,[]]],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"style\\\",\\\"position: fixed;\\\\tz-index: 1000;height: 50px;width: 50%;\\\"],[9],[0,\\\"\\\\n              \\\"],[1,[27,\\\"iq-widgets/address-lookup\\\",null,[[\\\"widgetModelData\\\",\\\"focusFieldId\\\",\\\"currentRecord\\\",\\\"addressRecord\\\",\\\"showWidgetModal\\\"],[[23,[\\\"editmodalcontext\\\",\\\"widgetModelData\\\"]],[27,\\\"idandindex\\\",[\\\"inputPOI\\\",[22,2,[]]],null],[23,[\\\"record\\\"]],[22,1,[]],[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]]]]],false],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[2,\\\" <td class='button-cell'>\\\\n        <button onclick={{action 'onPOIOnMap' address}}\\\\n        class='btn btn-outline-secondary places-inline-button'>\\\\n        {{fa-icon 'map-marker'}}\\\\n      </button>\\\\n      </td>\\\"],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Notes\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"notesPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Notes\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"notesPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"City\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[11,\\\"placeholder\\\",\\\"Locality\\\"],[11,\\\"disabled\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"localityPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Postal Code\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"postalCodePath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Postal Code\\\"],[11,\\\"disabled\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"postalCodePath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Lat/Long\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"locationsPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Lat/Long\\\"],[11,\\\"disabled\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"locationsPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Zone\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[11,\\\"maxlength\\\",\\\"40\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"geoNodePath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"geoNodePath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1,2]},null],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 places-table\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSwapAddress\\\"],null]],[12,\\\"title\\\",[28,[\\\"Swap Addresses  \\\",[21,\\\"altSwipeAddressKey\\\"]]]],[12,\\\"disabled\\\",[23,[\\\"record\\\",\\\"editmodelcontext\\\",\\\"swapAddressDisabled\\\"]]],[11,\\\"class\\\",\\\"btn btn-outline-secondary places-inline-button\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-lg fa-exchange fa-rotate-90 fa-fw\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[10]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/locations/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/multientry/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /*\n    This component is based off the \"eligibilities\" and \"places\" components\n  \n    It generates a form of text fields based on a config that supplies \"rows\" in a collection\n    For each key in a \"row\" object,\n    it pulls out the column key\n    and supplies a cell label and an input field from that key/value pair\n  \n    The intent is that a serializer would pull a model from an API,\n    translate it into the desired form configuration object\n    and supply new records based on these arbitrary fields\n  \n    TODO: hook this component/a model into a Mirage serializer\n    to supply a backend and multiple records on page load\n  \n    Sample config entries:\n    app/pods/components/iq-widgets/edit-settings-form-widget/config.js\n    {\n      title: 'Wifi Network',\n      fields: [{\n        id: 'wifiNetwork',\n        type: 'multientry',\n        label: '',\n        valuePath: 'wifiNetwork',\n        modelName: 'rms-address',\n        isMultiType: true,\n        extra: {\n          rows: [\n            {password: 'default', networkName: 'default'}\n          ]\n        }\n      }]},\n  */\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-multientry'],\n    store: Ember.inject.service(),\n    value: null,\n    editableRecords: null,\n    editableSections: null,\n    service: null,\n    columns: Ember.computed('extra.rows.firstObject', function () {\n      const row = this.get('extra.rows.firstObject');\n      return Object.keys(row);\n    }),\n    rows: Ember.computed.readOnly('extra.rows'),\n    model: null,\n    apiService: null,\n\n    init() {\n      this._super(...arguments);\n    },\n\n    actions: {\n      onInput()\n      /*model*/\n      {// do something with typed values\n      },\n\n      onClose()\n      /*model*/\n      {},\n\n      onAddNew(model, valuePath, modelName) {\n        // create a new table item\n        const newItem = this.get('editModal').pushRecordValue(model, valuePath, modelName);\n        this.get('editModal').pushRecordValue(newItem, 'multientry-catchall', 'rms-location');\n      },\n\n      onRemove()\n      /*model*/\n      {// remove an item from a table\n        // alert('Remove me', model)\n        // let options = { record, valuePath };\n        // this.get('onRemove')(value, options);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/multientry/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"ZxgvXlC7\",\n    \"block\": \"{\\\"symbols\\\":[\\\"entry\\\",\\\"column\\\"],\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3\\\"],[11,\\\"style\\\",\\\"border: 0;\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"rows\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"columns\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[1,[22,2,[]],false],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[22,2,[]]],null]],null]],[12,\\\"placeholder\\\",[22,2,[]]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[22,2,[]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"3\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onRemove\\\",[22,1,[]]],null]],[11,\\\"class\\\",\\\"btn btn-remove\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-trash-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n              Remove\\\\n            \\\"],[10],[0,\\\"  \\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onAddNew\\\",[23,[\\\"record\\\"]],[23,[\\\"valuePath\\\"]],[23,[\\\"field\\\",\\\"modelName\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary mt-3\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-plus\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n          Add New\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/multientry/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/multiselect/component\", [\"exports\", \"lodash\"], function (_exports, _lodash2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-multi-select'],\n    value: null,\n    disabled: false,\n    extra: null,\n    store: Ember.inject.service(),\n    dataFromModel: false,\n    options: null,\n    selectedAssign: null,\n    selectedAvailable: null,\n    assigns: null,\n    allOptions: null,\n    allowMultiple: Ember.computed.alias('extra.allowMultiple'),\n    optionModelName: Ember.computed.alias('extra.optionModelName'),\n    assignedValuePath: Ember.computed.alias('valuePath'),\n    additionalAssignedValuePath: Ember.computed.alias('extra.additionalValuePath'),\n\n    assignsChanged() {\n      console.log('assignsChanged ');\n      let record = this.get('record');\n      Ember.run(() => {\n        let requiredAttributes = record.get('attributes');\n        let allOptions = this.get('allOptions');\n        let availableOptions = [];\n\n        if (!Ember.isEmpty(requiredAttributes)) {\n          availableOptions = allOptions.filter(function (o1) {\n            // if match found return false\n            return _lodash2.default.findIndex(requiredAttributes, {\n              'id': o1.id\n            }) !== -1 ? false : true;\n          });\n        } else {\n          availableOptions = allOptions;\n        }\n\n        availableOptions = availableOptions.sortBy('displayName');\n        this.set('options', availableOptions);\n\n        if (!Ember.isEmpty(availableOptions)) {\n          this.set('selectedAvailable', availableOptions.firstObject);\n        }\n\n        if (!Ember.isEmpty(requiredAttributes) && Ember.isBlank(this.get('selectedAssign'))) {\n          this.set('selectedAssign', requiredAttributes.firstObject);\n        }\n      });\n    },\n\n    init() {\n      this._super(...arguments);\n\n      let record = this.get('record');\n      Ember.run(() => {\n        if (this.get('extra.optionModelName') !== undefined) {\n          this.set('dataFromModel', true);\n          let options = this.get('store').peekAll(this.get('extra.optionModelName'));\n          let assigns = record.get(this.get('additionalAssignedValuePath'));\n          this.set('allOptions', options);\n\n          if (assigns !== undefined && assigns !== null && assigns.length !== 0) {\n            options = options.filter(function (o1) {\n              // if match found return false\n              return _lodash2.default.findIndex(assigns, {\n                'id': o1.id\n              }) !== -1 ? false : true;\n            });\n          } //options = _lodash.sortBy(options, 'displayName');\n\n\n          options = options.sortBy('displayName');\n          this.set('options', options);\n\n          if (options !== undefined && options !== null && options.length !== 0) {\n            this.set('selectedAvailable', options.firstObject);\n          }\n        }\n      });\n    },\n\n    assignsDataChanged: Ember.observer('record.attributes', function () {\n      this.assignsChanged();\n    }),\n\n    toggleOptionBetweenSelect(event, shiftFrom, shiftTo, selectFrom, selectedTo, removeAdditionalAttributes = false) {\n      let option = event.target.value;\n\n      if (this.get(shiftFrom) !== undefined && this.get(shiftFrom) !== null && option !== '') {\n        let removeOptions = this.get('allOptions').filter(function (item) {\n          return item.id === option;\n        });\n\n        if (removeAdditionalAttributes) {\n          let elementPos = this.get('record.attributes').map(function (x) {\n            return x.id;\n          }).indexOf(option);\n          let requiredOptions = this.get('record.attributes').filter(function (item) {\n            return item.id != option;\n          });\n\n          if (!Ember.isEmpty(requiredOptions)) {\n            if (requiredOptions[elementPos]) {\n              this.set(selectFrom, requiredOptions[elementPos]);\n            } else if (requiredOptions[elementPos - 1]) {\n              this.set(selectFrom, requiredOptions[elementPos - 1]);\n            }\n          }\n\n          if (!Ember.isEmpty(this.get(shiftFrom))) {\n            this.get(shiftFrom).removeObject(removeOptions[0]);\n          }\n\n          if (!Ember.isEmpty(this.get('record.editmodelcontext.attributes.account'))) {\n            this.get('record.editmodelcontext.attributes.account').removeObject(removeOptions[0]);\n          }\n\n          if (!Ember.isEmpty(this.get('record.editmodelcontext.attributes.address'))) {\n            this.get('record.editmodelcontext.attributes.address').removeObject(removeOptions[0]);\n          }\n\n          if (!Ember.isEmpty(this.get('record.editmodelcontext.attributes.area'))) {\n            this.get('record.editmodelcontext.attributes.area').removeObject(removeOptions[0]);\n          }\n\n          if (!Ember.isEmpty(this.get('record.editmodelcontext.attributes.cli'))) {\n            this.get('record.editmodelcontext.attributes.cli').removeObject(removeOptions[0]);\n          }\n\n          if (!Ember.isEmpty(this.get('record.editmodelcontext.attributes.cli'))) {\n            this.get('record.editmodelcontext.attributes.cli').removeObject(removeOptions[0]);\n          }\n        } else {\n          let elementAvailablePos = this.get('options').map(function (x) {\n            return x.id;\n          }).indexOf(option);\n          let availableOptions = this.get('options').filter(function (item) {\n            return item.id != option;\n          });\n\n          if (!Ember.isEmpty(availableOptions)) {\n            if (availableOptions[elementAvailablePos]) {\n              this.set(selectFrom, availableOptions[elementAvailablePos]);\n            } else if (availableOptions[elementAvailablePos - 1]) {\n              this.set(selectFrom, availableOptions[elementAvailablePos - 1]);\n            }\n          }\n\n          let assignsOptions = this.get(shiftTo);\n\n          if (assignsOptions === null) {\n            assignsOptions = [];\n            assignsOptions.push(removeOptions[0]);\n          } else {\n            assignsOptions.push(removeOptions[0]);\n          }\n\n          assignsOptions = _lodash2.default.sortBy(assignsOptions, 'displayName');\n          this.set(shiftTo, []);\n          this.set(shiftTo, assignsOptions);\n          this.set(selectedTo, removeOptions[0]);\n        }\n\n        this.set('record.isForceDirty', true);\n      }\n    },\n\n    actions: {\n      selectionSaved(event) {//console.log('selectionSaved ', event);\n      },\n\n      handleKeydownonAvailabled(event) {\n        if (event.keyCode !== 13) {\n          return;\n        } //////console.log(('this.get(additionalAssignedValuePath)',this.get('additionalAssignedValuePath'));\n\n\n        if (!Ember.isEmpty(this.get('additionalAssignedValuePath'))) {\n          this.toggleOptionBetweenSelect(event, 'options', 'record.' + this.get('additionalAssignedValuePath'), 'selectedAvailable', 'selectedAssign');\n        }\n\n        return true;\n      },\n\n      handleKeydownoonAssignment(event) {\n        if (event.keyCode !== 13) {\n          return;\n        } //////console.log(('this.get(additionalAssignedValuePath)',this.get('additionalAssignedValuePath'));\n\n\n        if (!Ember.isEmpty(this.get('additionalAssignedValuePath'))) {\n          this.toggleOptionBetweenSelect(event, 'record.' + this.get('additionalAssignedValuePath'), 'options', 'selectedAssign', 'selectedAvailable', true);\n        }\n\n        return true;\n      },\n\n      onAvailabled(event) {\n        //////console.log(('this.get(additionalAssignedValuePath)',this.get('additionalAssignedValuePath'));\n        if (!Ember.isEmpty(this.get('additionalAssignedValuePath'))) {\n          this.toggleOptionBetweenSelect(event, 'options', 'record.' + this.get('additionalAssignedValuePath'), 'selectedAvailable', 'selectedAssign');\n        }\n      },\n\n      onAssignment(event) {\n        //////console.log(('this.get(additionalAssignedValuePath)',this.get('additionalAssignedValuePath'));\n        if (!Ember.isEmpty(this.get('additionalAssignedValuePath'))) {\n          this.toggleOptionBetweenSelect(event, 'record.' + this.get('additionalAssignedValuePath'), 'options', 'selectedAssign', 'selectedAvailable', true);\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/multiselect/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"Xlp0wCHD\",\n    \"block\": \"{\\\"symbols\\\":[\\\"assign\\\",\\\"available\\\"],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"table-div\\\"],[9],[0,\\\"\\\\n\\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 multi-select-table\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Available\\\\n        \\\"],[7,\\\"select\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"accesskey\\\",[21,\\\"accessKey\\\"]],[11,\\\"class\\\",\\\"form-control\\\"],[11,\\\"style\\\",\\\"width:220px;height:200px\\\"],[11,\\\"multiple\\\",\\\"multiple\\\"],[12,\\\"ondblclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onAvailabled\\\"],null]],[12,\\\"onkeydown\\\",[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydownonAvailabled\\\"],null]],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"options\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"option\\\"],[11,\\\"class\\\",\\\"multi-select-cell-label\\\"],[12,\\\"selected\\\",[27,\\\"eq\\\",[[22,2,[]],[23,[\\\"selectedAvailable\\\"]]],null]],[12,\\\"title\\\",[22,2,[\\\"displayName\\\"]]],[12,\\\"value\\\",[22,2,[\\\"id\\\"]]],[9],[1,[22,2,[\\\"displayName\\\"]],false],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Assigned\\\\n        \\\"],[7,\\\"select\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[11,\\\"style\\\",\\\"width:220px;height:200px\\\"],[11,\\\"multiple\\\",\\\"multiple\\\"],[12,\\\"ondblclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onAssignment\\\"],null]],[12,\\\"onkeydown\\\",[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydownoonAssignment\\\"],null]],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"record\\\",\\\"attributes\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"option\\\"],[11,\\\"class\\\",\\\"multi-select-cell-label\\\"],[12,\\\"selected\\\",[27,\\\"eq\\\",[[22,1,[]],[23,[\\\"selectedAssign\\\"]]],null]],[12,\\\"title\\\",[23,[\\\"available\\\",\\\"displayName\\\"]]],[12,\\\"value\\\",[22,1,[\\\"id\\\"]]],[9],[1,[22,1,[\\\"displayName\\\"]],false],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n     \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/multiselect/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/number/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const NUMBER_FORMAT = /^\\d*\\.*\\d*$/;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-number'],\n    value: null,\n    disabled: false,\n    decimal: null,\n    actions: {\n      onInput(value) {\n        // Reset input value to prior value unless changed value matches format.\n        if (!NUMBER_FORMAT.test(value)) {\n          return this.notifyPropertyChange('value');\n        }\n\n        console.log('decimal ', this.get('decimal'));\n        /*if(!isBlank(this.get('decimal'))) {\n           this.get('onChange')(parseFloat(value).toFixed(this.get('decimal')));\n          \n        } else {*/\n\n        this.get('onChange')(value); //}  \n\n        return value;\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/number/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"9X4+0zC+\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"decimal\\\"]]],null,{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"accesskey\\\",[21,\\\"accessKey\\\"]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"accesskey\\\",[21,\\\"accessKey\\\"]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/number/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/phone-model/component\", [\"exports\", \"ember-concurrency\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/populate-account\", \"adept-iq/utils/populate-call-line\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\"], function (_exports, _emberConcurrency, _checkAddressFlags, _populateAccount, _populateCallLine, _environment, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-phone-model'],\n    value: null,\n    maxlength: null,\n    disabled: false,\n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    optionSearchPath: Ember.computed.alias('extra.optionSearchPath'),\n    optionModelName: Ember.computed.alias('extra.optionModelName'),\n    parentValuePath: Ember.computed.alias('extra.parentValuePath'),\n    optionWidgetModel: Ember.computed.alias('extra.optionWidgetModel'),\n    optionModelWidgetPath: Ember.computed.alias('extra.optionModelWidgetPath'),\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    modalData: null,\n\n    init() {\n      this._super(...arguments);\n    },\n\n    // eslint-disable-next-line no-unused-vars\n    search: (0, _emberConcurrency.task)(function* (term) {\n      yield (0, _emberConcurrency.timeout)(50);\n      let searchResults;\n      searchResults = yield this.getProfileData(this.get('optionSearchPath'), this.get('value'), this.get('optionModelName'));\n      return searchResults;\n    }),\n\n    getProfileData(optionSearchPath, filterValue, optionModelName) {\n      return this.get('ajax').put(_apiUrls.API.tripManagementService.host + `/${optionModelName}?filter=${optionSearchPath}==` + filterValue.toUpperCase(), {\n        method: 'GET',\n        contentType: \"application/json\"\n      }).then(response => {\n        return response.data;\n      }).catch(function () {\n        return [];\n      });\n    },\n\n    doPhoneDetailsSearch() {\n      this.get('search').perform().then(results => {\n        if (!Ember.isEmpty(results)) {\n          let searchRecord = results.firstObject;\n\n          if (!Ember.isBlank(this.get('parentValuePath'))) {\n            this.set(`record.${this.get('parentValuePath')}`, searchRecord);\n          }\n\n          Ember.run(() => {\n            let widgetModelData = results; //console.log('widgetModelData ',widgetModelData);\n\n            this.set('record.editmodelcontext.callerTrips', widgetModelData);\n\n            if (widgetModelData && widgetModelData.length > 1) {\n              this.set('editmodalcontext.showWidgetModal', true);\n              this.set('editmodalcontext.widgetModelData', widgetModelData);\n              this.set('editmodalcontext.modelWidgetPath', this.get('optionModelWidgetPath'));\n              this.set('editmodalcontext.record', this.get('record'));\n            } else if (widgetModelData && widgetModelData.length === 1) {\n              (0, _populateCallLine.default)(this.get('record'), results.firstObject.attributes, this.get('geocode'), this.get('store'));\n              (0, _populateAccount.default)(this.get('record'), null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), results.firstObject.attributes.account.accountId, true, this.get('value'));\n            }\n\n            (0, _checkAddressFlags.default)(this.get('record'));\n          });\n        } else {\n          //console.log('parentValuePath',this.get('parentValuePath') );\n          this.set(`record.${this.get('parentValuePath')}`, null);\n          this.get('editModal.errors').pushObject('No result found');\n        }\n      });\n    },\n\n    actions: {\n      onInput(value) {\n        this.set(`record.${this.get('valuePath')}`, value.trim());\n      },\n\n      populateCliInfo() {\n        let phoneNr = document.getElementById('callerNo').innerHTML;\n        let tripRecord = this.get('record');\n        tripRecord.set('passengers.0.phone1.number', phoneNr); //trip.passengers[0].name =  rider.name;\n        //trip.passengers[0].firstName =  rider.name;\n\n        this.set('phoneSearchValue', phoneNr);\n        this.set('editModal.errors', []);\n        this.doPhoneDetailsSearch();\n      },\n\n      handleKeydown(event) {\n        if (event.keyCode !== 13) {\n          return;\n        }\n\n        this.set('editmodalcontext.showWidgetModal', false);\n        this.set('editmodalcontext.modelWidgetPath', '');\n        this.set('editModal.errors', []);\n\n        if (this.get('optionModelName')) {\n          this.doPhoneDetailsSearch();\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/phone-model/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"1POiWAg/\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 places-table\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\\n      \\\"],[7,\\\"td\\\"],[9],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[12,\\\"accesskey\\\",[21,\\\"accessKey\\\"]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[11,\\\"id\\\",\\\"inputPhone\\\"],[12,\\\"maxlength\\\",[27,\\\"readonly\\\",[[23,[\\\"maxlength\\\"]]],null]],[12,\\\"onkeydown\\\",[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\"],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"modelWidgetPath\\\"]],\\\"rider-profile-widget\\\"],null]],null,{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]],true],null]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"style\\\",\\\"position: fixed;\\\\tz-index: 1000;height: 50px;width: 50%;\\\"],[9],[0,\\\"\\\\n            \\\"],[1,[27,\\\"iq-widgets/rider-profile-widget\\\",null,[[\\\"widgetModelData\\\",\\\"focusFieldId\\\",\\\"currentRecord\\\",\\\"showWidgetModal\\\"],[[23,[\\\"editmodalcontext\\\",\\\"widgetModelData\\\"]],\\\"inputPhone\\\",[23,[\\\"record\\\"]],[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]]]]],false],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"table\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"table\\\"],[9],[0,\\\"\\\\n                  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n                    \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n                        \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"populateCliInfo\\\",[23,[\\\"record\\\"]]],null]],[11,\\\"title\\\",\\\"Populate CLI\\\"],[11,\\\"class\\\",\\\"multitype-button btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n                          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-volume-control-phone\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n                        \\\"],[10],[0,\\\"\\\\n                    \\\"],[10],[0,\\\"\\\\n                  \\\"],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[1,[27,\\\"form-components/savecli\\\",null,[[\\\"record\\\"],[[23,[\\\"record\\\"]]]]],false],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/phone-model/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/populatecli/component\", [\"exports\", \"ember-concurrency\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/populate-account\", \"adept-iq/utils/populate-call-line\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\"], function (_exports, _emberConcurrency, _checkAddressFlags, _populateAccount, _populateCallLine, _environment, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-populatecli'],\n    trip: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    store: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    session: Ember.inject.service(),\n    isAccountPickups: false,\n    isAccountFixedPrice: false,\n    phoneSearchValue: null,\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    editComponent: 'iq-widgets/passengers-form-widget',\n    newTripComponent: 'iq-widgets/new-trip-form-widget',\n    passengerTripComponent: 'iq-widgets/new-trip-passenger-form-widget',\n\n    init() {\n      this._super(...arguments);\n    },\n\n    prepareRiderData() {},\n\n    search: (0, _emberConcurrency.task)(function* (term) {\n      yield (0, _emberConcurrency.timeout)(50);\n      let searchResults;\n      searchResults = yield this.getRiderProfile(this.get('phoneSearchPath'), this.get('phoneSearchValue'));\n      return searchResults;\n    }),\n\n    getRiderProfile(phoneSearchPath, phoneSearchValue) {\n      return this.get('ajax').put(_apiUrls.API.tripManagementService.host + `/rider-profile?filter=${phoneSearchPath}==` + phoneSearchValue, {\n        method: 'GET',\n        contentType: \"application/json\"\n      }).then(response => {\n        return response.data;\n      }).catch(function () {\n        return [];\n      });\n    },\n\n    actions: {\n      populateCliInfo() {\n        let phoneNr = document.getElementById('callerNo').innerHTML;\n        let tripRecord = this.get('record');\n        tripRecord.set('passengers.0.phone1.number', phoneNr); //trip.passengers[0].name =  rider.name;\n        //trip.passengers[0].firstName =  rider.name;\n\n        this.set('phoneSearchValue', phoneNr);\n        this.set('editModal.errors', []);\n        Ember.run(() => {\n          this.get('search').perform().then(results => {\n            //console.log('rider.callLines',rider.callLines);\n            if (!Ember.isEmpty(results)) {\n              let searchRecord = results.firstObject;\n              let widgetModelData = results; //console.log('widgetModelData ',widgetModelData);\n\n              tripRecord.set('editmodelcontext.callerTrips', widgetModelData);\n\n              if (widgetModelData && widgetModelData.length > 1) {\n                this.set('editmodalcontext.showWidgetModal', true);\n                this.set('editmodalcontext.widgetModelData', widgetModelData);\n                this.set('editmodalcontext.modelWidgetPath', 'rider-profile-widget');\n                this.set('editmodalcontext.record', tripRecord);\n              } else if (widgetModelData && widgetModelData.length === 1) {\n                (0, _populateCallLine.default)(tripRecord, results.firstObject.attributes, this.get('geocode'), this.get('store'));\n                (0, _populateAccount.default)(tripRecord, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), results.firstObject.attributes.account.accountId, true, phoneNr);\n              }\n\n              (0, _checkAddressFlags.default)(tripRecord);\n            } else {\n              //console.log('parentValuePath',this.get('parentValuePath') );\n              this.get('editModal.errors').pushObject('No result found');\n            }\n          });\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/radio/component\", [\"exports\", \"moment\", \"adept-iq/config/environment\"], function (_exports, _moment, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-radio'],\n    editModal: Ember.inject.service(),\n    options: Ember.computed.alias('extra.options'),\n    value: null,\n    tempValue: null,\n    disabled: false,\n\n    init() {\n      this._super(...arguments);\n\n      if (Ember.isBlank(this.get('value'))) {\n        this.set('tempValue', 'none');\n      } else {\n        this.set('tempValue', this.get('value'));\n      }\n    },\n\n    actions: {\n      valueChanged(value) {\n        if (value === 'none') {\n          this.set(`record.${this.get('valuePath')}`, \"\");\n        } else {\n          this.set(`record.${this.get('valuePath')}`, value.trim());\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/radio/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"cpBy1xSb\",\n    \"block\": \"{\\\"symbols\\\":[\\\"option\\\"],\\\"statements\\\":[[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 radio-table\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"options\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\",\\\"classNames\\\",\\\"changed\\\"],[[22,1,[]],[23,[\\\"tempValue\\\"]],\\\"radio-button-input\\\",\\\"valueChanged\\\"]],{\\\"statements\\\":[],\\\"parameters\\\":[]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n       \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"radio-button-1-label\\\"],[9],[1,[22,1,[]],false],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n       \\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/radio/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/routeenum/component\", [\"exports\", \"adept-iq/utils/isRouteAssignable\"], function (_exports, _isRouteAssignable) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-select'],\n    value: null,\n    disabled: false,\n    extra: null,\n    store: Ember.inject.service(),\n    dataFromModel: false,\n    options: Ember.computed.alias('extra.options'),\n    allowMultiple: Ember.computed.alias('extra.allowMultiple'),\n    optionModelName: Ember.computed.alias('extra.optionModelName'),\n\n    init() {\n      this._super(...arguments);\n\n      if (this.get('extra.optionModelName') !== undefined) {\n        this.set('dataFromModel', true);\n        let routeOptions = this.get('store').peekAll(this.get('extra.optionModelName'));\n        let assignableRoute = [];\n        routeOptions.forEach(function (route) {\n          if ((0, _isRouteAssignable.isRouteAssignable)(route)) {\n            assignableRoute.push(route);\n          }\n        });\n        this.set('options', assignableRoute);\n      }\n    },\n\n    selected: Ember.computed('value', 'options', function () {\n      if (this.get('extra.optionModelName') !== undefined) {\n        return this.get('options').find(option => {\n          return option.id === this.get('value.id');\n        });\n      }\n    }),\n    actions: {\n      onChange(option) {\n        this.get('onChange')(option);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/routeenum/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"LETc6xCR\",\n    \"block\": \"{\\\"symbols\\\":[\\\"option\\\",\\\"option\\\"],\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"dataFromModel\\\"]],true],null]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"if\\\",[[23,[\\\"allowMultiple\\\"]],\\\"power-select-multiple\\\",\\\"power-select\\\"],null]],[[\\\"selected\\\",\\\"options\\\",\\\"disabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"selected\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"options\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChange\\\"],null]]],{\\\"statements\\\":[[0,\\\"   \\\"],[1,[22,2,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"dataFromModel\\\"]],false],null]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"if\\\",[[23,[\\\"allowMultiple\\\"]],\\\"power-select-multiple\\\",\\\"power-select\\\"],null]],[[\\\"selected\\\",\\\"options\\\",\\\"disabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"options\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChange\\\"],null]]],{\\\"statements\\\":[[0,\\\"   \\\"],[1,[22,1,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/routeenum/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/savecli/component\", [\"exports\", \"adept-iq/utils/check-value\"], function (_exports, _checkValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-savecli'],\n    editmodalcontext: Ember.inject.service(),\n    widgetModelData: null,\n    riderprofile: Ember.inject.service(),\n    store: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    isAccountPickups: false,\n    isAccountFixedPrice: false,\n\n    init() {\n      this._super(...arguments);\n    },\n\n    prepareRiderData() {},\n\n    validateRecords(tripData) {\n      let valid = true;\n      this.set('editModal.errors', []);\n\n      if (Ember.isBlank(tripData.passengers[0].phone1.number)) {\n        valid = false;\n        this.get('editModal.errors').pushObject('Phone Number should be there');\n      }\n\n      if (Ember.isBlank(tripData.passengers[0].firstName)) {\n        valid = false;\n        this.get('editModal.errors').pushObject('Client Name should be there');\n      }\n\n      let latlng = \"\";\n\n      if (tripData.stopPoints[0].address.coord.lat !== undefined && tripData.stopPoints[0].address.coord.lng !== undefined && tripData.stopPoints[0].address.coord.lat !== 0 && tripData.stopPoints[0].address.coord.lng !== 0 && tripData.stopPoints[0].address.coord.lat !== 181 && tripData.stopPoints[0].address.coord.lng !== 181 && tripData.stopPoints[0].address.coord.lat !== -181 && tripData.stopPoints[0].address.coord.lng !== -181) {\n        latlng = `${tripData.stopPoints[0].address.coord.lat}/${tripData.stopPoints[0].address.coord.lng}`;\n      }\n\n      if (Ember.isEmpty(latlng)) {\n        valid = false;\n        this.get('editModal.errors').pushObject('Valid Pickup address should be there');\n      }\n\n      if (Ember.isBlank(tripData.acctCardNr)) {\n        valid = false;\n        this.get('editModal.errors').pushObject('Account should be there');\n      }\n\n      return valid;\n    },\n\n    saveRiderRecordFunction(records) {\n      this.set('editModal.errors', []);\n      return new Promise((resolve, reject) => {\n        records.forEach(record => {\n          record.save().then(() => {\n            record.set('isForceDirty', false);\n            this.get('errorMessage').pushInfo({\n              detail: `CLI successfully saved`\n            });\n          }).catch(function (error) {\n            reject(error);\n          });\n        });\n      });\n    },\n\n    actions: {\n      saveCliInfo() {\n        let tripData = this.get('record');\n\n        if (this.validateRecords(tripData)) {\n          let riderProfileJSON = this.get('riderprofile').riderProfileData();\n          let riderData = riderProfileJSON.data[0].attributes;\n          let rider = null;\n          let requiredAttributes = [];\n\n          if (!Ember.isEmpty(this.get('record').attributes)) {\n            this.get('record').attributes.forEach(function (item) {\n              requiredAttributes.push({\n                \"type\": item.type,\n                \"cnt\": 0\n              });\n            });\n          }\n\n          if (Ember.isEmpty(this.get('record').get('editmodelcontext.rider'))) {\n            rider = this.get('store').createRecord('tm-rider-profile');\n            rider.set('name', tripData.passengers[0].firstName);\n            rider.set('contactFirstName', tripData.passengers[0].firstName);\n            rider.set('phone1', tripData.passengers[0].phone1);\n            rider.set('requiredAttributes', requiredAttributes); //////console.log(('tripData ',tripData);\n\n            rider.set('account', riderData.account);\n            rider.set('account.accountId', tripData.acctCardNr); //console.log('rider',rider );\n            //console.log('rider.favoritePickups',rider.favoritePickups );\n\n            if (!Ember.isEmpty(riderData.favoriteTrips)) {\n              rider.set('favoriteTrips', []);\n              let newFavoriteTrips = riderData.favoriteTrips[0]; //newFavoritePickup.address = tripData.stopPoints[0].address;\n\n              newFavoriteTrips.pickup.address.formattedAddress = tripData.stopPoints[0].address.tomtomFormattedAddress.address.freeformAddress;\n              newFavoriteTrips.pickup.address.unitNr = (0, _checkValue.default)(tripData.stopPoints[0].address.unitNr);\n              newFavoriteTrips.pickup.address.streetName = (0, _checkValue.default)(tripData.stopPoints[0].address.streetName);\n              newFavoriteTrips.pickup.address.streetNr = (0, _checkValue.default)(tripData.stopPoints[0].address.streetNr);\n              newFavoriteTrips.pickup.address.postCode = (0, _checkValue.default)(tripData.stopPoints[0].address.postalCode);\n              newFavoriteTrips.pickup.address.region = (0, _checkValue.default)(tripData.stopPoints[0].address.region);\n              newFavoriteTrips.pickup.address.state = (0, _checkValue.default)(tripData.stopPoints[0].address.state);\n              newFavoriteTrips.pickup.address.description = (0, _checkValue.default)(tripData.stopPoints[0].address.description);\n              newFavoriteTrips.pickup.address.coord = tripData.stopPoints[0].address.coord;\n              newFavoriteTrips.dropoff.address.formattedAddress = tripData.stopPoints[1].address.tomtomFormattedAddress.address.freeformAddress;\n              newFavoriteTrips.dropoff.address.unitNr = (0, _checkValue.default)(tripData.stopPoints[1].address.unitNr);\n              newFavoriteTrips.dropoff.address.streetName = (0, _checkValue.default)(tripData.stopPoints[1].address.streetName);\n              newFavoriteTrips.dropoff.address.streetNr = (0, _checkValue.default)(tripData.stopPoints[1].address.streetNr);\n              newFavoriteTrips.dropoff.address.postCode = (0, _checkValue.default)(tripData.stopPoints[1].address.postalCode);\n              newFavoriteTrips.dropoff.address.region = (0, _checkValue.default)(tripData.stopPoints[1].address.region);\n              newFavoriteTrips.dropoff.address.state = (0, _checkValue.default)(tripData.stopPoints[1].address.state);\n              newFavoriteTrips.dropoff.address.description = (0, _checkValue.default)(tripData.stopPoints[1].address.description);\n              newFavoriteTrips.dropoff.address.coord = tripData.stopPoints[1].address.coord; //console.log('newFavoritePickup',newFavoritePickup);\n\n              rider.get('favoriteTrips').push(newFavoriteTrips);\n            } else {\n              let favoritePickup = riderData.favoriteTrips[0];\n              favoritePickup.index = rider.favoriteTrips.length + 1;\n              favoritePickup.address = tripData.stopPoints[0].address;\n              rider.favoritePickups.push(favoritePickup);\n            } //console.log('rider ',rider);\n\n          } else {\n            rider = this.get('record').get('editmodelcontext.rider');\n          }\n\n          this.saveRiderRecordFunction([rider]);\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/savecli/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"5PRspfpA\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"table\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"table\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"saveCliInfo\\\",[23,[\\\"record\\\"]]],null]],[12,\\\"disabled\\\",[23,[\\\"record\\\",\\\"editmodelcontext\\\",\\\"saveCLIDisabled\\\"]]],[12,\\\"title\\\",[28,[\\\"Save CLI  \\\",[21,\\\"altSwipeAddressKey\\\"]]]],[11,\\\"class\\\",\\\"multitype-button btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n                   \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-phone-square\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n                \\\"],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/savecli/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/scheduleavailabilities/component\", [\"exports\", \"moment\", \"adept-iq/config/environment\", \"tomtom\", \"ember-concurrency\"], function (_exports, _moment, _environment, _tomtom, _emberConcurrency) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  function cleanFieldString(text) {\n    return typeof text === 'undefined' ? '' : text;\n  }\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-availabilities'],\n    editModal: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    dayOfWeeks: null,\n    store: Ember.inject.service(),\n    availabilities: Ember.computed.readOnly('value'),\n    availabilityType: Ember.computed.readOnly('valuePath'),\n    startTimePath: Ember.computed.readOnly('extra.startTimePath'),\n    endTimePath: Ember.computed.readOnly('extra.endTimePath'),\n    shiftStartPath: Ember.computed.readOnly('extra.shiftStartPath'),\n    shiftEndPath: Ember.computed.readOnly('extra.shiftEndPath'),\n    sundayPath: Ember.computed.readOnly('extra.sundayPath'),\n    mondayPath: Ember.computed.readOnly('extra.mondayPath'),\n    tuesdayPath: Ember.computed.readOnly('extra.tuesdayPath'),\n    wednesdayPath: Ember.computed.readOnly('extra.wednesdayPath'),\n    thursdayPath: Ember.computed.readOnly('extra.thursdayPath'),\n    fridayPath: Ember.computed.readOnly('extra.fridayPath'),\n    saturdayPath: Ember.computed.readOnly('extra.saturdayPath'),\n    shiftBreaksPath: Ember.computed.readOnly('extra.shiftBreaksPath'),\n    shiftBreakTypePath: Ember.computed.readOnly('extra.shiftBreakTypePath'),\n    shiftBreaks: null,\n    breakTypes: null,\n    addressOptions: null,\n    addresses: Ember.computed.readOnly('value'),\n    addressType: Ember.computed.readOnly('extra.addressvaluePath'),\n    aliasPath: Ember.computed.readOnly('extra.aliasPath'),\n    notesPath: Ember.computed.readOnly('extra.notesPath'),\n    streetNrPath: Ember.computed.readOnly('extra.streetNrPath'),\n    streetNamePath: Ember.computed.readOnly('extra.streetNamePath'),\n    localityPath: Ember.computed.readOnly('extra.localityPath'),\n    regionPath: Ember.computed.readOnly('extra.regionPath'),\n    subRegionPath: Ember.computed.readOnly('extra.subRegionPath'),\n    postalCodePath: Ember.computed.readOnly('extra.postalCodePath'),\n    countryPath: Ember.computed.readOnly('extra.countryPath'),\n    locationsPath: 'latlng',\n    addressRecord: null,\n    selected: null,\n    geocodeAddressChange: Ember.observer('geocode.tomtomAddress', function () {\n      const record = this.get('addressRecord');\n      const tomtomAddress = this.get('geocode.tomtomAddress');\n      this.convertTTAddressToModel(record, tomtomAddress);\n      this.disableAddressSearchOnMap(record, record.type);\n    }),\n\n    validateAddresses() {\n      const records = this.get('addresses');\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        if (record.lat === 0 || record.lng === 0) {\n          this.get('editModal.errors').pushObject('Address does not have lat/lng. Please select position on the map.');\n        }\n      });\n    },\n\n    addressSearchResults(results) {\n      this.set('addressOptions', results);\n    },\n\n    searchAddress: (0, _emberConcurrency.task)(function* (term) {\n      yield _tomtom.default.fuzzySearch().key(_environment.default.tomtom.search.searchKey).query(term).countrySet(_environment.default.tomtom.search.countrySet).typeahead(true).center(_environment.default.tomtom.search.center).radius(_environment.default.tomtom.search.radius).callback(this.addressSearchResults.bind(this)).go();\n    }),\n    convertTTAddressToModel: function (record, ttAddress) {\n      if (ttAddress.id === undefined && ttAddress.id === null || ttAddress.position !== undefined && ttAddress.position !== null) {\n        let addressvaluePath = this.get('streetNrPath');\n        let options = {\n          record,\n          addressvaluePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(cleanFieldString(ttAddress.address.streetNr), options);\n        options.addressvaluePath = this.get('streetNamePath');\n        this.get('onChange')(cleanFieldString(ttAddress.address.streetName), options);\n        options.addressvaluePath = this.get('localityPath');\n        this.get('onChange')(cleanFieldString(ttAddress.address.municipality), options);\n        options.addressvaluePath = this.get('regionPath');\n        this.get('onChange')(cleanFieldString(ttAddress.address.countrySubdivisionName), options);\n        options.addressvaluePath = this.get('subRegionPath');\n        this.get('onChange')(cleanFieldString(ttAddress.address.countrySecondarySubdivision), options);\n        options.addressvaluePath = this.get('postalCodePath');\n        this.get('onChange')(cleanFieldString(ttAddress.address.postalCode), options);\n        options.addressvaluePath = this.get('countryPath');\n        this.get('onChange')(cleanFieldString(ttAddress.address.countryCode), options);\n        options.addressvaluePath = this.get('aliasPath');\n        this.get('onChange')('', options);\n        record.set('lat', ttAddress.position.lat);\n        record.set('lng', ttAddress.position.lon);\n        this.get('geocode').getGeonode(ttAddress.address.freeformAddress).then(result => {\n          record.set('geoNode', result.data.gpsAreaId); //this.set('addressRecord', record);\n        });\n      } else {\n        let addressvaluePath = this.get('streetNrPath');\n        let options = {\n          record,\n          addressvaluePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(cleanFieldString(ttAddress.streetNr), options);\n        options.addressvaluePath = this.get('streetNamePath');\n        this.get('onChange')(cleanFieldString(ttAddress.streetAddress), options);\n        options.addressvaluePath = this.get('localityPath');\n        this.get('onChange')(cleanFieldString(ttAddress.locality), options);\n        options.addressvaluePath = this.get('regionPath');\n        this.get('onChange')(cleanFieldString(ttAddress.countrySubdivisionName), options);\n        options.addressvaluePath = this.get('subRegionPath');\n        this.get('onChange')(cleanFieldString(ttAddress.countrySecondarySubdivision), options);\n        options.addressvaluePath = this.get('postalCodePath');\n        this.get('onChange')(cleanFieldString(ttAddress.postalCode), options);\n        options.addressvaluePath = this.get('countryPath');\n        this.get('onChange')(cleanFieldString(ttAddress.countryCode), options);\n        options.addressvaluePath = this.get('aliasPath');\n        this.get('onChange')(cleanFieldString(ttAddress.alias), options);\n        options.addressvaluePath = this.get('notesPath');\n        this.get('onChange')(cleanFieldString(ttAddress.notes), options);\n        record.set('lat', ttAddress.locations.firstObject.lat);\n        record.set('lng', ttAddress.locations.firstObject.lng);\n        this.get('geocode').getGeonode(ttAddress.tomtomFormattedAddress.address.freeformAddress).then(result => {\n          record.set('geoNode', result.data.gpsAreaId);\n        });\n      }\n\n      this.get('geocode').activateGeocode(false, record, record.type);\n      this.validateAddresses();\n      this.set('addressOptions', this.get('record').get('rider.riderAddresses'));\n    },\n    clearAddressModel: function (record) {\n      let addressvaluePath = this.get('streetNrPath');\n      let options = {\n        record,\n        addressvaluePath\n      };\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('streetNamePath');\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('localityPath');\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('regionPath');\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('subRegionPath');\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('postalCodePath');\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('countryPath');\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('aliasPath');\n      this.get('onChange')('', options);\n      record.set('lat', 0);\n      record.set('lng', 0);\n    },\n\n    enableAddressSearchOnMap(record, type) {\n      Ember.$('html,body,.tomtom-map').addClass('custom-cursor');\n      this.get('geocode').activateGeocode(true, record, type);\n      this.set('addressRecord', record);\n    },\n\n    disableAddressSearchOnMap(record, type) {\n      Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n      this.get('geocode').activateGeocode(false, record, type);\n      this.set('addressRecord', null);\n    },\n\n    init() {\n      this.set('dayOfWeeks', ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']);\n      this.set('datePlaceHolder', _environment.default.dateTimeFormat.dateMoment);\n      this.set('timePlaceHolder', _environment.default.dateTimeFormat.timeMoment);\n      this.set('dateFormat', _environment.default.dateTimeFormat.dateFlatPickr);\n      this.set('timeFormat', _environment.default.dateTimeFormat.timeFlatPickr);\n\n      this._super(...arguments);\n\n      this.set('shiftBreaks', this.record.get('shiftBreaks'));\n    },\n\n    didInsertElement: function () {\n      const breakTypeModelName = this.get('extra.breakTypeModelName');\n      this.set('breakTypes', this.get('store').peekAll(breakTypeModelName));\n    },\n\n    getAvailibilityBreaks(record) {\n      return record.get('shiftBreaks');\n    },\n\n    actions: {\n      onInput(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value, options);\n      },\n\n      onChangeDate(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value[0], options);\n      },\n\n      onClose(currentValue, stringValue, datePicker) {\n        const currentValueMoment = (0, _moment.default)(currentValue[0]);\n        const newValueMoment = (0, _moment.default)(stringValue);\n\n        if (!newValueMoment._isValid) {\n          // $(`#${datePicker.element.id}`).focus();\n          this.set('editModal.errors', ['Date entered is invalid.']);\n        }\n\n        if (datePicker.config.allowInput && datePicker._input.value && newValueMoment._isValid && !currentValueMoment.isSame(newValueMoment)) {\n          // date format is for database so should not be from config\n          datePicker.setDate(newValueMoment.format('YYYY-MM-DD'), true);\n        } // $(datePicker.altInput.className).select();\n        // $(datePicker.element).select();\n        // $('.effective-start').select();\n\n      },\n\n      onChangeTime(record, valuePath, value) {\n        const momentTime = (0, _moment.default)(value[0]);\n        let options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(momentTime.format('HH:mm:ss'), options);\n      },\n\n      onCheckboxChange(record, valuePath) {\n        let switchState = record.get(valuePath);\n        let options = {\n          record,\n          valuePath\n        };\n        switchState = !switchState;\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(switchState, options);\n      },\n\n      onDOWChange(record, values) {\n        record.set('sunday', values.includes('sunday'));\n        record.set('monday', values.includes('monday'));\n        record.set('tuesday', values.includes('tuesday'));\n        record.set('wednesday', values.includes('wednesday'));\n        record.set('thursday', values.includes('thursday'));\n        record.set('friday', values.includes('friday'));\n        record.set('saturday', values.includes('saturday'));\n        this.set('record.isForceDirty', true);\n      },\n\n      onAddNewAvailability() {\n        this.get('onCreate')();\n      },\n\n      onRemoveAvailability(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.get('onRemove')(value, options);\n      },\n\n      onAddNewBreak(record, valuePath, modelName) {\n        //const newAddress = this.get('editModal').pushRecordValue(record., 'locations', 'location');\n        const shiftBreak = this.get('editModal').pushRecordValue(record, valuePath, modelName);\n        shiftBreak.set('breakType', this.get('breakTypes.firstObject')); //this.get('editModal').pushRecordValue(record, 'shiftBreaks', 'ss-shift-break');\n      },\n\n      onbreakTypeChange(record, valuePath, value) {\n        record.set(valuePath, value);\n        this.record.set(valuePath, value);\n        this.set('record.isForceDirty', true);\n      },\n\n      onRemoveBreak(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.get('onRemove')(value, options);\n      },\n\n      onAddressSelected(record, valuePath, value) {\n        this.convertTTAddressToModel(record, value);\n      },\n\n      onAliasAddressSelected(record, valuePath, value) {\n        this.convertTTAliasAddressToModel(record, value);\n      },\n\n      onPickOnMap(record) {\n        const activeGeocode = this.get('geocode.activeGeocode');\n\n        if (activeGeocode) {\n          this.disableAddressSearchOnMap(record, record.type);\n        } else {\n          this.enableAddressSearchOnMap(record, record.type);\n        }\n      },\n\n      handleKeydown(record, valuePath, dropdown, e) {\n        if (e.keyCode !== 13) {\n          return;\n        }\n\n        let text = e.target.value;\n        let options = {\n          record,\n          valuePath: 'streetAddress'\n        }; // address has been forced without geocodes\n        // this.set('record.isForceDirty', true);\n\n        this.clearAddressModel(record); // this.set('record.isForceDirty', true);\n\n        this.get('onChange')(text, options);\n        this.set('addressRecord', record);\n        this.validateAddresses();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/scheduleavailabilities/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"kFjhCUZS\",\n    \"block\": \"{\\\"symbols\\\":[\\\"availability\\\",\\\"shiftBreak\\\",\\\"address\\\",\\\"option\\\",\\\"option\\\",\\\"name\\\"],\\\"statements\\\":[[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 availabilities-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"availabilities\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Day of the Week\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select-multiple\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"closeOnSelect\\\",\\\"onchange\\\"],[[23,[\\\"dayOfWeeks\\\"]],[22,1,[\\\"selectedDOWs\\\"]],\\\"Select some names...\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"onDOWChange\\\",[22,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[22,6,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[6]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Start Date\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"startTimePath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\",[22,1,[]],[23,[\\\"startTimePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"End Date\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"endTimePath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\",[22,1,[]],[23,[\\\"endTimePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[9],[10],[7,\\\"td\\\"],[9],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 breaks-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"shiftBreaks\\\"]]],null,{\\\"statements\\\":[[0,\\\"\\\\n          \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Break Type\\\"],[10],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"selected\\\",\\\"options\\\",\\\"disabled\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,2,[]],[23,[\\\"shiftBreakTypePath\\\"]]],null]],null],[27,\\\"readonly\\\",[[23,[\\\"breakTypes\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],false,[27,\\\"action\\\",[[22,0,[]],\\\"onbreakTypeChange\\\",[22,2,[]],[23,[\\\"shiftBreakTypePath\\\"]]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,5,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[5]},null],[0,\\\"            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[22,2,[\\\"addresses\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[9],[10],[7,\\\"td\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 places-table\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t          \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Place Name\\\"],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,3,[]],[23,[\\\"aliasPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Place Name\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,3,[]],[23,[\\\"aliasPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t          \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t          \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Address\\\"],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"search\\\",\\\"selected\\\",\\\"onkeydown\\\",\\\"onchange\\\"],[[23,[\\\"addressOptions\\\"]],[27,\\\"perform\\\",[[23,[\\\"searchAddress\\\"]]],null],[22,3,[\\\"tomtomFormattedAddress\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\",[22,3,[]],[23,[\\\"addressType\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onAddressSelected\\\",[22,3,[]],[23,[\\\"addressType\\\"]]],null]],null]]],{\\\"statements\\\":[[0,\\\"\\\\t\\\\t\\\\t          \\\"],[1,[22,4,[\\\"address\\\",\\\"freeformAddress\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"\\\\t\\\\t\\\\t          \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onPickOnMap\\\",[22,3,[]]],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-map-marker \\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t          \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t          \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Unit\\\"],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[11,\\\"placeholder\\\",\\\"Unit\\\"],[11,\\\"disabled\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,3,[]],[23,[\\\"unitPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t          \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Notes\\\"],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,3,[]],[23,[\\\"notesPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Notes\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,3,[]],[23,[\\\"notesPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t        \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t        \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t          \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"City\\\"],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,3,[]],[23,[\\\"localityPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Locality\\\"],[11,\\\"disabled\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,3,[]],[23,[\\\"localityPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t          \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t      \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t      \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t\\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Postal Code\\\"],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t\\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t  \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,3,[]],[23,[\\\"postalCodePath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Postal Code\\\"],[11,\\\"disabled\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,3,[]],[23,[\\\"postalCodePath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t\\\"],[10],[0,\\\"\\\\n\\\\t\\\\t      \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t      \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t\\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Lat/Long\\\"],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t\\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\\t\\\\t\\\\t  \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,3,[]],[23,[\\\"locationsPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Lat/Long\\\"],[11,\\\"disabled\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,3,[]],[23,[\\\"locationsPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n\\\\t\\\\t\\\\t\\\"],[10],[0,\\\"\\\\n\\\\t\\\\t      \\\"],[10],[0,\\\"\\\\n\\\\t\\\\t      \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\\n\\\\t\\\\t\\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"          \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Break Start\\\"],[10],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"noCalendar\\\",\\\"time_24hr\\\",\\\"placeholder\\\",\\\"enableTime\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\"],[\\\"en\\\",true,true,false,[23,[\\\"timePlaceholder\\\"]],true,[23,[\\\"timeFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"startTimePath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeTime\\\",[22,2,[]],[23,[\\\"startTimePath\\\"]]],null]]]],false],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Break End\\\"],[10],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"noCalendar\\\",\\\"time_24hr\\\",\\\"placeholder\\\",\\\"enableTime\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\"],[\\\"en\\\",true,true,false,[23,[\\\"timePlaceholder\\\"]],true,[23,[\\\"timeFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"endTimePath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeTime\\\",[22,2,[]],[23,[\\\"endTimePath\\\"]]],null]]]],false],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n           \\\"],[10],[0,\\\"\\\\n\\\\n\\\\n          \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[9],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onRemoveBreak\\\",[22,2,[]],[23,[\\\"shiftBreaksPath\\\"]],[23,[\\\"target\\\",\\\"value\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-remove\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-trash-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n              Remove\\\\n            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n\\\\n          \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onAddNewBreak\\\",[23,[\\\"record\\\"]],[23,[\\\"shiftBreaksPath\\\"]],\\\"ss-shift-break\\\"],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary mt-3\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-plus\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n            Add New break\\\\n            \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Shift Start\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"noCalendar\\\",\\\"time_24hr\\\",\\\"placeholder\\\",\\\"enableTime\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\"],[\\\"en\\\",true,true,false,[23,[\\\"timePlaceholder\\\"]],true,[23,[\\\"timeFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"shiftStartPath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeTime\\\",[22,1,[]],[23,[\\\"shiftStartPath\\\"]]],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Shift End\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"noCalendar\\\",\\\"time_24hr\\\",\\\"placeholder\\\",\\\"enableTime\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\"],[\\\"en\\\",true,true,false,[23,[\\\"timePlaceholder\\\"]],true,[23,[\\\"timeFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"shiftEndPath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeTime\\\",[22,1,[]],[23,[\\\"shiftEndPath\\\"]]],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onRemoveAvailability\\\",[22,1,[]],[23,[\\\"shiftEndPath\\\"]],[23,[\\\"target\\\",\\\"value\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-remove\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-trash-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n          Remove\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onAddNewAvailability\\\",[23,[\\\"record\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary mt-3\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-plus\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n        Add New Availability\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/scheduleavailabilities/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/search-datetimeflatpickr/component\", [\"exports\", \"moment\", \"adept-iq/config/environment\", \"ember-keyboard-shortcuts\"], function (_exports, _moment, _environment, _emberKeyboardShortcuts) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-datetimeflatpickr'],\n    editModal: Ember.inject.service(),\n    value: null,\n    valueFormatted: null,\n    disabled: false,\n    defaultDate: null,\n    maxDate: null,\n    minDate: null,\n\n    init() {\n      this._super(...arguments);\n\n      const value = this.get('value') || (0, _moment.default)().toDate();\n      this.set('minDate', (0, _moment.default)(this.get('value')).startOf('day').toDate());\n      this.set('valueFormatted', value);\n      this.set('dateFormat', _environment.default.dateTimeFormat.dateTimeFlatPickr);\n      this.set('datePlaceholder', _environment.default.dateTimeFormat.dateTimeMoment);\n      const altaccesskey = 'alt+' + this.get('accessKey');\n\n      if (!Ember.isBlank(this.get('accessKey'))) {\n        const accessKeyConfig = {\n          [altaccesskey]: {\n            action: 'handleFocus',\n            // action to trigger\n            global: true,\n            preventDefault: true\n          }\n        };\n        this.set('keyboardShortcuts', accessKeyConfig);\n      }\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.bindKeyboardShortcuts)(this);\n    },\n\n    willDestroyElement() {\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.unbindKeyboardShortcuts)(this);\n    },\n\n    actions: {\n      onChangeDate(value) {\n        this.set('record.isForceDirty', true);\n        this.set(`record.${this.get('valuePath')}`, value[0]);\n      },\n\n      onClose(currentValue, stringValue, datePicker) {\n        const currentValueMoment = (0, _moment.default)(currentValue[0]);\n        const newValueMoment = (0, _moment.default)(stringValue);\n\n        if (!newValueMoment._isValid) {\n          // $(`#${datePicker.element.id}`).focus();\n          this.set('editModal.errors', ['Date entered is invalid.']);\n        }\n\n        if (datePicker.config.allowInput && datePicker._input.value && newValueMoment._isValid && !currentValueMoment.isSame(newValueMoment)) {\n          datePicker.setDate(newValueMoment.toDate(), true);\n        } // $(datePicker.altInput.className).select();\n        // $(datePicker.element).select();\n        // $('.effective-start').select();\n\n      },\n\n      onOpen() {\n        Ember.$('.numInputWrapper').focus();\n      },\n\n      handleFocus() {\n        //console.log('flatpickr-input',$('.flatpickr-input'));\n        if (!Ember.isBlank(this.get('accessKey'))) {\n          Ember.$('.flatpickr-input').focus();\n          /*this.input = document.querySelector(`.flatpickr-input`);\n          if (this.input) {\n                  run.next(this.input, 'focus');\n          }*/\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/search-datetimeflatpickr/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"o81Ja2iB\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"datepickr-tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"label\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[1,[21,\\\"label\\\"],false],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n    \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"time_24hr\\\",\\\"enableTime\\\",\\\"minDate\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\",\\\"onOpen\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceholder\\\"]],[23,[\\\"dateFormat\\\"]],true,true,[23,[\\\"minDate\\\"]],[23,[\\\"valueFormatted\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onOpen\\\"],null]]]],false],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/search-datetimeflatpickr/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/search-locations/component\", [\"exports\", \"tomtom\", \"adept-iq/config/environment\", \"ember-concurrency\", \"adept-iq/utils/zone-validation\", \"adept-iq/utils/check-address-overwrite\", \"adept-iq/utils/check-address-flags\", \"lodash\", \"adept-iq/utils/check-value\", \"ember-keyboard-shortcuts\"], function (_exports, _tomtom, _environment, _emberConcurrency, _zoneValidation, _checkAddressOverwrite, _checkAddressFlags, _lodash, _checkValue, _emberKeyboardShortcuts) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-locations'],\n    editModal: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    addressOptions: null,\n    store: Ember.inject.service(),\n    keyboardShortcuts: null,\n    editmodalcontext: Ember.inject.service(),\n    // addresses: computed.readOnly('value'),\n    addressTypePath: Ember.computed.readOnly('extra.addressTypePath'),\n    aliasPath: Ember.computed.readOnly('extra.aliasPath'),\n    descriptionPath: Ember.computed.readOnly('extra.descriptionPath'),\n    unitPath: Ember.computed.readOnly('extra.unitPath'),\n    notesPath: Ember.computed.readOnly('extra.notesPath'),\n    streetNrPath: Ember.computed.readOnly('extra.streetNrPath'),\n    streetNamePath: Ember.computed.readOnly('extra.streetNamePath'),\n    localityPath: Ember.computed.readOnly('extra.localityPath'),\n    regionPath: Ember.computed.readOnly('extra.regionPath'),\n    subRegionPath: Ember.computed.readOnly('extra.subRegionPath'),\n    postalCodePath: Ember.computed.readOnly('extra.postalCodePath'),\n    countryPath: Ember.computed.readOnly('extra.countryPath'),\n    defaultOptionsPath: Ember.computed.readOnly('extra.defaultOptionsPath'),\n    useOptionRecord: Ember.computed.readOnly('extra.useOptionRecord'),\n    useRecordWithId: Ember.computed.readOnly('extra.useRecordWithId'),\n    pickup: Ember.computed.readOnly('extra.pickup'),\n    dropoff: Ember.computed.readOnly('extra.dropoff'),\n    swipeAddressAccessKey: Ember.computed.readOnly('extra.swipeAddressAccessKey'),\n    locationsPath: 'address.latlng',\n    geoNodePath: 'address.geoNode',\n    altPickupAccesskey: null,\n    altDropoffAccesskey: null,\n    altSwipeAddressKey: null,\n    //locationsPath: 'latlng',\n    //geoNodePath: 'geoNode',\n    addressRecord: null,\n    selected: null,\n\n    geocodeAddressChange() {\n      console.log('geocodeAddressChange');\n      const record = this.get('addressRecord');\n      console.log('geocodeAddressChange record ', record);\n      const tomtomAddress = this.get('geocode.tomtomAddress');\n      console.log('geocodeAddressChange tomtomAddress record', record);\n\n      if (!Ember.isEmpty(tomtomAddress)) {\n        this.convertTTAddressToModel(record, tomtomAddress, true);\n        this.disableAddressSearchOnMap(record, record.passengerEvents[0].type);\n        this.removeObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n      }\n    },\n\n    validateAddresses(addressRecord) {\n      this.set('editModal.errors', []);\n\n      if (addressRecord.address.coord.lat === 0 || addressRecord.address.coord.lng === 0) {\n        this.get('editModal.errors').pushObject('Address does not have lat/lng. Please select position on the map.');\n      } else {\n        if (Ember.isBlank(addressRecord.address.streetNr)) {\n          this.get('editModal.errors').pushObject(addressRecord.passengerEvents[0].type + ' does not have street number');\n        }\n\n        (0, _checkAddressFlags.default)(this.get('record'));\n      }\n    },\n\n    init() {\n      this._super(...arguments);\n\n      let addresses = this.get('value');\n      this.set('addresses', addresses);\n      this.set('addressOptions', []);\n      const defaultOptionsPath = this.get('defaultOptionsPath');\n\n      if (this.get('record') !== null && this.get('record') !== undefined && !Ember.isNone(defaultOptionsPath) && this.get('record').get(defaultOptionsPath) !== null && this.get('record').get(defaultOptionsPath) !== undefined) {\n        // this.set('aliasOptions',this.get('record').get(defaultOptionsPath));\n        // this.set('addressOptions', this.get('record').get(defaultOptionsPath));\n        this.get('record').get(defaultOptionsPath).forEach(address => {\n          this.get('addressOptions').push(address);\n        });\n        addresses.forEach(address => {\n          this.get('addressOptions').push(address);\n        });\n      }\n\n      addresses.forEach(address => {\n        this.get('geocode').addressMapPopulate(address);\n        /*let altaccesskey = null;\n          //console.log('address.address.addressType ',address.address.addressType);\n           if(address.address.addressType === 'pickup') {\n            altaccesskey = 'alt+p';\n          } else {\n            altaccesskey = 'alt+e';\n          }\n           if(altaccesskey) {\n            let accessKeyConfig = {\n              [altaccesskey] : {\n                action: 'handleFocus', // action to trigger\n                global: true,\n                preventDefault: true\n              }\n            };\n            if(isBlank(this.get('keyboardShortcuts'))) {\n              this.set('keyboardShortcuts',[]);\n            }\n            this.get('keyboardShortcuts').push(accessKeyConfig);\n          }*/\n      });\n      let altPickupAccesskey = 'alt+' + this.get('pickup.accessKey');\n      let altDropoffAccesskey = 'alt+' + this.get('dropoff.accessKey');\n      let altSwipeAddressKey = 'alt+' + this.get('swipeAddressAccessKey');\n      this.set('altPickupAccesskey', altPickupAccesskey);\n      this.set('altDropoffAccesskey', altDropoffAccesskey);\n      this.set('altSwipeAddressKey', altSwipeAddressKey);\n      let accessKeyConfig = {\n        [altSwipeAddressKey]: {\n          action: 'onSwapAddress',\n          // action to trigger\n          global: true,\n          preventDefault: true\n        },\n        [altPickupAccesskey]: {\n          action: 'handlePickupFocus',\n          // action to trigger\n          global: true,\n          preventDefault: true\n        },\n        [altDropoffAccesskey]: {\n          action: 'handleDropoffFocus',\n          // action to trigger\n          global: true,\n          preventDefault: true\n        }\n      };\n      this.set('keyboardShortcuts', accessKeyConfig);\n    },\n\n    didInsertElement() {\n      //console.log('keyboardShortcuts', this.get('keyboardShortcuts'));\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.bindKeyboardShortcuts)(this);\n    },\n\n    willDestroyElement() {\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.unbindKeyboardShortcuts)(this);\n    },\n\n    addressSearchResults(results) {\n      const emberResults = [];\n      let defaultOptions = this.get('record').get(this.get('defaultOptionsPath'));\n      results.forEach(result => {\n        if (result.type === 'POI' || result.type === 'Point Address') {\n          emberResults.push(Ember.Object.create(result));\n        }\n      });\n\n      if (defaultOptions) {\n        defaultOptions.forEach(option => {\n          emberResults.push(option);\n        });\n      }\n\n      this.set('addressOptions', emberResults);\n    },\n\n    searchAddress: (0, _emberConcurrency.task)(function* (term) {\n      yield _tomtom.default.fuzzySearch().key(_environment.default.tomtom.search.searchKey).query(term).countrySet(_environment.default.tomtom.search.countrySet).typeahead(true).center(_environment.default.tomtom.search.center).radius(_environment.default.tomtom.search.radius).callback(this.addressSearchResults.bind(this)).go();\n    }),\n    convertTTAddressToModel: function (record, ttAddress, checkOverwrite) {\n      this.set('record.isForceDirty', true);\n      let overwriteAddress = true;\n      let overwriteAddressPop = (0, _checkAddressOverwrite.default)(record.address, ttAddress.address);\n\n      if (overwriteAddressPop && checkOverwrite) {\n        overwriteAddress = confirm('Do you want to overwrite Address');\n      }\n\n      if (overwriteAddress) {\n        this.set('record.isForceDirty', true);\n        console.log('convertTTAddressToModel ', record);\n        console.log('convertTTAddressToModel ttAddress', ttAddress);\n\n        try {\n          record.address.streetNr = ttAddress.address.streetNumber;\n          record.address.streetName = ttAddress.address.streetName || ttAddress.address.municipality;\n          record.address.region = ttAddress.address.municipalitySubdivision;\n          record.address.state = ttAddress.address.countrySubdivisionName;\n          record.address.postCode = ttAddress.address.postalCode;\n          record.address.description = ttAddress.poi.name; //record.address.country = ttAddress.address.country;\n        } catch (e) {}\n\n        try {\n          Ember.set(record.address.tomtomFormattedAddress.address, 'freeformAddress', (0, _checkValue.default)(record.address.streetNr) + \" \" + (0, _checkValue.default)(record.address.streetName) + \" \" + (0, _checkValue.default)(record.address.region));\n        } catch (e) {\n          console.log('e', e);\n\n          try {\n            record.address.tomtomFormattedAddress = {\n              address: {\n                freeformAddress: (0, _checkValue.default)(record.address.streetNr) + \" \" + (0, _checkValue.default)(record.address.streetName) + \" \" + (0, _checkValue.default)(record.address.region)\n              }\n            };\n          } catch (e) {\n            console.log('e1 ', e);\n          }\n        }\n\n        try {\n          Ember.set(record.address, 'formattedAddress', (0, _checkValue.default)(ttAddress.freeformAddress));\n        } catch (e) {\n          record.address.formattedAddress = (0, _checkValue.default)(ttAddress.freeformAddress);\n        }\n      }\n    },\n    clearAddressModel: function (record) {\n      Ember.set(record.address, 'unitNr', '');\n      record.address.streetNr = '';\n      record.address.streetName = '';\n      record.address.region = '';\n      record.address.state = '';\n      record.address.postCode = '';\n      Ember.set(record.address, 'description', '');\n\n      try {\n        Ember.set(record.address.tomtomFormattedAddress.address, 'freeformAddress', '');\n      } catch (e) {\n        console.log('e', e);\n\n        try {\n          record.address.tomtomFormattedAddress = {\n            address: {\n              freeformAddress: ''\n            }\n          };\n        } catch (e) {\n          console.log('e1 ', e);\n        }\n      } //record.address.country = '';\n\n\n      record.address.coord.lat = 0;\n      record.address.coord.lng = 0;\n    },\n    populateAddressModel: function (record, searchText) {\n      Ember.set(record.address, 'unitNr', '');\n      record.address.streetNr = '';\n      record.address.streetName = searchText;\n      record.address.region = '';\n      record.address.state = '';\n      record.address.postCode = '';\n\n      try {\n        Ember.set(record.address.tomtomFormattedAddress.address, 'freeformAddress', searchText);\n      } catch (e) {\n        console.log('e', e);\n\n        try {\n          record.address.tomtomFormattedAddress = {\n            address: {\n              freeformAddress: searchText\n            }\n          };\n        } catch (e) {\n          console.log('e1 ', e);\n        }\n      }\n\n      Ember.set(record.address, 'description', ''); //record.address.country = '';\n\n      record.address.coord.lat = 0;\n      record.address.coord.lng = 0;\n    },\n\n    enableAddressSearchOnMap(record, type) {\n      Ember.$('html,body,.tomtom-map').addClass('custom-cursor');\n      this.get('geocode').set('disabledFindLocationForRecord', true);\n      this.get('geocode').activateGeocode(true, record, type, false);\n      this.set('addressRecord', record);\n      this.addObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n    },\n\n    disableAddressSearchOnMap(record, type) {\n      Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n      this.get('geocode').activateGeocode(false, record, type);\n      this.set('addressRecord', null);\n      this.removeObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n      this.get('geocode').set('disabledFindLocationForRecord', false);\n    },\n\n    enableAddressPOIOnMap(record, type) {\n      Ember.$('html,body,.tomtom-map').addClass('custom-cursor');\n      console.log('record.address.description', record.address.description);\n      this.get('geocode').set('activePOIDescription', record.address.description); //this.get('geocode').set('disabledFindLocationForRecord',true);\n\n      this.get('geocode').activatePOIGeocode(true, record, type, false);\n      this.set('addressRecord', record);\n      this.addObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n    },\n\n    disableAddressPOIOnMap(record, type) {\n      Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n      this.get('geocode').set('activePOIDescription', '');\n      this.get('geocode').activatePOIGeocode(false, record, type);\n      this.set('addressRecord', null);\n      /*this.removeObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n      this.get('geocode').set('disabledFindLocationForRecord', false);*/\n    },\n\n    actions: {\n      onInput(record, valuePath, value) {\n        //////console.log(('record',record , ' valuePath',valuePath);\n        Ember.set(record, valuePath, value);\n        this.set('record.isForceDirty', true);\n      },\n\n      onFocus(select, e) {\n        Ember.$('.ember-power-select-search-input').focus();\n        e.stopPropagation();\n      },\n\n      onClose(record, valuePath, dropdown, e) {\n        if (valuePath) {\n          this.input = document.querySelector('.ember-power-select-trigger[id=' + valuePath + ']');\n\n          if (this.input) {\n            Ember.run.next(this.input, 'focus');\n          }\n        }\n      },\n\n      onAddressSelected(record, valuePath, value) {\n        if (this.get('useRecordWithId') && !Ember.isNone(value.get('id'))) {\n          this.set('record.place', value);\n          this.set('addresses', [value]);\n        } else {\n          if (!(0, _zoneValidation.insideZone)([value.get('position.lat'), value.get('position.lon')])) {\n            this.get('errorMessage').pushError({\n              detail: 'Invalid Zone'\n            });\n            return;\n          }\n\n          this.convertTTAddressToModel(record, value, false);\n        }\n      },\n\n      onAliasAddressSelected(record, valuePath, value) {\n        this.convertTTAliasAddressToModel(record, value);\n      },\n\n      onPickOnMap(record) {\n        const activeGeocode = this.get('geocode.activeGeocode');\n\n        if (activeGeocode) {\n          this.disableAddressSearchOnMap(record, record.passengerEvents[0].type);\n        } else {\n          this.enableAddressSearchOnMap(record, record.passengerEvents[0].type);\n        }\n      },\n\n      onPOIOnMap(record) {\n        const activePOIGeocode = this.get('geocode.activePOIGeocode');\n\n        if (activePOIGeocode) {\n          this.disableAddressPOIOnMap(record, 'poi');\n        } else {\n          this.enableAddressPOIOnMap(record, 'poi');\n        }\n      },\n\n      onAddNewAddress(record, valuePath, modelName) {\n        const newAddress = this.get('editModal').pushRecordValue(record, valuePath, modelName);\n        this.get('editModal').pushRecordValue(newAddress, 'locations', 'rms-location');\n      },\n\n      onRemoveAddress(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.get('onRemove')(value, options);\n      },\n\n      handleKeydown(record, valuePath, dropdown, e) {\n        const key = e.keyCode;\n\n        if (key == 34 || key == 27 || key == 92 || key == 91 || key == 93 || key == 94 || key == 62 || key == 60 || key == 123 || key == 124 || key == 125 || key == 16 || key == 39) {\n          return;\n        }\n\n        var inp = String.fromCharCode(e.keyCode);\n\n        if (/[a-zA-Z0-9-_ ]/.test(inp)) {\n          console.log(' dropdown.searchText ', dropdown.searchText);\n          this.populateAddressModel(record, dropdown.searchText); // address has been forced without geocodes\n          // this.set('record.isForceDirty', true);\n          //    this.clearAddressModel(record);\n\n          this.set('record.isForceDirty', true);\n          this.set('addressRecord', record);\n          (0, _checkAddressFlags.default)(this.get('record'));\n        }\n\n        if (e.keyCode === 13) {\n          this.clearAddressModel(record);\n          this.set('record.isForceDirty', true);\n          this.set('addressRecord', record);\n          (0, _checkAddressFlags.default)(this.get('record'));\n        }\n      },\n\n      onSwapAddress() {\n        let record = this.get('record');\n\n        let pickAddress = _lodash.default.cloneDeep(record.stopPoints[0]);\n\n        let dropAddress = _lodash.default.cloneDeep(record.stopPoints[1]);\n\n        this.set('record.stopPoints.1.address', _lodash.default.cloneDeep(pickAddress.address));\n        this.set('record.stopPoints.0.address', _lodash.default.cloneDeep(dropAddress.address));\n        this.get('geocode').deactivateGeocode();\n        let pickAddressResult = [];\n        pickAddressResult.push(dropAddress);\n        this.get('geocode').set('markerType', 'pickup');\n        this.get('geocode').set('currentRecord', record.stopPoints[0]);\n        this.get('geocode').addressMapPopulate(record.stopPoints[0]);\n        let dropAddressResult = [];\n        dropAddressResult.push(pickAddress);\n        this.get('geocode').set('markerType', 'dropoff');\n        this.get('geocode').set('currentRecord', record.stopPoints[1].address);\n        this.get('geocode').addressMapPopulate(record.stopPoints[1]);\n      },\n\n      handlePickupFocus() {\n        this.input = document.querySelector(`.ember-power-select-trigger[id=pickup]`);\n\n        if (this.input) {\n          Ember.run.next(this.input, 'focus');\n        }\n      },\n\n      handleDropoffFocus() {\n        this.input = document.querySelector(`.ember-power-select-trigger[id=dropoff]`);\n\n        if (this.input) {\n          Ember.run.next(this.input, 'focus');\n        }\n      },\n\n      handlePOIKeydown(record, valuePath, type, index, event) {\n        console.log('handlePOIKeydown ', record);\n\n        if (event.keyCode !== 13) {\n          return;\n        }\n\n        this.set('editmodalcontext.showWidgetModal', false);\n        this.set('editmodalcontext.modelWidgetPath', '');\n        this.get('geocode').set('activePOIFRecord', record);\n        this.get('geocode').set('activePOIDescription', record.address.description);\n        this.get('geocode').set('activePOIIndex', index);\n        this.get('geocode').set('markerType', type); //Ankur Need to enable if allow marker click\n        // this.set('addressRecord', record);\n        // this.addObserver('geocode.tomtomAddress', this.geocodeAddressChange);\n        //this.get('geocode').set('disabledFindLocationForRecord',true);\n\n        this.get('geocode').findPOIForRecord(null);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/search-locations/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"InOhnsK5\",\n    \"block\": \"{\\\"symbols\\\":[\\\"address\\\",\\\"index\\\",\\\"option\\\"],\\\"statements\\\":[[7,\\\"table\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 locations-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"addresses\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]],\\\"pickup\\\"],null]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[12,\\\"accesskey\\\",[23,[\\\"pickup\\\",\\\"accessKey\\\"]]],[9],[1,[27,\\\"titlecase\\\",[[23,[\\\"pickup\\\",\\\"label\\\"]]],null],false],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[11,\\\"data-test-address-field\\\",\\\"\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"class\\\",\\\"options\\\",\\\"search\\\",\\\"onfocus\\\",\\\"id\\\",\\\"triggerId\\\",\\\"selected\\\",\\\"onclose\\\",\\\"onkeydown\\\",\\\"onchange\\\"],[\\\"data-power-select\\\",[23,[\\\"addressOptions\\\"]],[27,\\\"perform\\\",[[23,[\\\"searchAddress\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onFocus\\\"],null],[27,\\\"readonly\\\",[[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null],[27,\\\"readonly\\\",[[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null],[22,1,[\\\"address\\\",\\\"tomtomFormattedAddress\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\",[22,1,[]],[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\",[22,1,[]],[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onAddressSelected\\\",[22,1,[]],[22,1,[\\\"passengerEvents\\\",\\\"0\\\",\\\"type\\\"]]],null]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,3,[\\\"address\\\",\\\"freeformAddress\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n      \\\\n\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Place Name\\\"],[10],[0,\\\"\\\\n\\\\n       \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"descriptionPath\\\"]]],null]],null]],[12,\\\"accesskey\\\",[21,\\\"accessKey\\\"]],[11,\\\"placeholder\\\",\\\"Place Name\\\"],[12,\\\"id\\\",[27,\\\"idandindex\\\",[\\\"inputPOI\\\",[22,2,[]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"descriptionPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n     \\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Notes\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"notesPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Notes\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"notesPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"City\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[11,\\\"placeholder\\\",\\\"Locality\\\"],[11,\\\"disabled\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"localityPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Postal Code\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"postalCodePath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Postal Code\\\"],[11,\\\"disabled\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"postalCodePath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Lat/Long\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"locationsPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Lat/Long\\\"],[11,\\\"disabled\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"locationsPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Zone\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"geoNodePath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"geoNodePath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1,2]},null],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\\n      \\\\n\\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[10]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/search-locations/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/search-text/component\", [\"exports\", \"ember-concurrency\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/populate-account\", \"adept-iq/utils/populate-call-line\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\"], function (_exports, _emberConcurrency, _checkAddressFlags, _populateAccount, _populateCallLine, _environment, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-text-model'],\n    value: null,\n    disabled: false,\n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    optionSearchPath: Ember.computed.alias('extra.optionSearchPath'),\n    optionModelName: Ember.computed.alias('extra.optionModelName'),\n    parentValuePath: Ember.computed.alias('extra.parentValuePath'),\n    optionWidgetModel: Ember.computed.alias('extra.optionWidgetModel'),\n    optionModelWidgetPath: Ember.computed.alias('extra.optionModelWidgetPath'),\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    modalData: null,\n\n    init() {\n      this._super(...arguments);\n    },\n\n    // eslint-disable-next-line no-unused-vars\n    search: (0, _emberConcurrency.task)(function* (term) {\n      yield (0, _emberConcurrency.timeout)(50);\n      let searchResults;\n      searchResults = yield this.getBookingData(this.get('optionSearchPath'), this.get('value'), this.get('optionModelName'));\n      return searchResults;\n    }),\n\n    getBookingData(optionSearchPath, filterValue, optionModelName) {\n      let tripRecord = this.get('record');\n      let tripID = tripRecord.get('id');\n      let telephone = tripRecord.get('passengers.0.phone1.number');\n      let description = tripRecord.get('stopPoints.0.address.description');\n      let account = tripRecord.get('acctCardNr');\n      let searchURL = \"\";\n\n      if (!Ember.isBlank(tripID)) {\n        return this.get('ajax').put(_apiUrls.API.tripManagementService.host + `/booking` + tripID, {\n          method: 'GET',\n          contentType: \"application/json\"\n        }).then(response => {\n          return response.data;\n        }).catch(function () {\n          return [];\n        });\n      } else {\n        if (!Ember.isBlank(telephone)) {\n          searchURL = searchURL + 'telephone=' + telephone;\n        }\n\n        if (!Ember.isBlank(description)) {\n          searchURL = searchURL + 'description=' + description;\n        }\n\n        if (!Ember.isBlank(account)) {\n          searchURL = searchURL + 'account=' + account;\n        }\n\n        return this.get('ajax').put(_apiUrls.API.tripManagementService.host + `/booking?` + searchURL, {\n          method: 'GET',\n          contentType: \"application/json\"\n        }).then(response => {\n          return response.data;\n        }).catch(function () {\n          return [];\n        });\n      }\n    },\n\n    actions: {\n      onInput(value) {\n        this.set('record.isForceDirty', true);\n        this.set(`record.${this.get('valuePath')}`, value.trim());\n      },\n\n      handleKeydown(event) {\n        if (event.keyCode !== 13) {\n          return;\n        }\n\n        this.set('editmodalcontext.showWidgetModal', false);\n        this.set('editmodalcontext.modelWidgetPath', '');\n\n        if (this.get('optionModelName')) {\n          this.get('search').perform().then(results => {\n            if (!Ember.isEmpty(results)) {\n              let searchRecord = results.firstObject;\n\n              if (!Ember.isBlank(this.get('parentValuePath'))) {\n                this.set(`record.${this.get('parentValuePath')}`, searchRecord);\n              }\n\n              Ember.run(() => {\n                let widgetModelData = results; //console.log('widgetModelData ',widgetModelData);\n\n                this.set('record.editmodelcontext.callerTrips', widgetModelData);\n\n                if (widgetModelData && widgetModelData.length > 1) {\n                  this.set('editmodalcontext.showWidgetModal', true);\n                  this.set('editmodalcontext.widgetModelData', widgetModelData);\n                  this.set('editmodalcontext.modelWidgetPath', this.get('optionModelWidgetPath'));\n                  this.set('editmodalcontext.record', this.get('record'));\n                } else if (widgetModelData && widgetModelData.length === 1) {\n                  (0, _populateCallLine.default)(this.get('record'), results.firstObject.attributes, this.get('geocode'), this.get('store'));\n                  (0, _populateAccount.default)(this.get('record'), null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), results.firstObject.attributes.account.accountId, true, this.get('value'));\n                }\n\n                (0, _checkAddressFlags.default)(this.get('record'));\n              });\n            } else {\n              //console.log('parentValuePath',this.get('parentValuePath') );\n              this.set(`record.${this.get('parentValuePath')}`, null);\n              this.get('editModal.errors').pushObject('No result found');\n            }\n          });\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/search-text/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"MNJ4avLw\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"multiLine\\\"]],true],null]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"textarea\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[12,\\\"accesskey\\\",[21,\\\"accessKey\\\"]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"   \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[12,\\\"accesskey\\\",[21,\\\"accessKey\\\"]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/search-text/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/searchable-enum-model/component\", [\"exports\", \"ember-concurrency\", \"ember-keyboard-shortcuts\"], function (_exports, _emberConcurrency, _emberKeyboardShortcuts) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-select-table'],\n    store: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    extra: null,\n    options: null,\n    widgetModelData: null,\n    keyboardShortcuts: null,\n    allowMultiple: Ember.computed.alias('extra.allowMultiple'),\n    optionSearchPath: Ember.computed.alias('extra.optionSearchPath'),\n    optionModelName: Ember.computed.alias('extra.optionModelName'),\n    optionSearchEnabled: Ember.computed.alias('extra.optionSearchEnabled'),\n    optionTempRecordSelected: Ember.computed.alias('extra.optionTempRecordSelected'),\n    optionFilterFunction: Ember.computed.alias('extra.optionFilterFunction'),\n    optionWidgetModel: Ember.computed.alias('extra.optionWidgetModel'),\n    optionModelWidgetPath: Ember.computed.alias('extra.optionModelWidgetPath'),\n    includes: Ember.computed('extra.optionIncludes', function () {\n      return this.get('extra.optionIncludes') !== undefined ? this.get('extra.optionIncludes') : '';\n    }),\n\n    init() {\n      const selectedPath = this.get('extra.optionSelectedPath');\n\n      if (!this.get('optionSearchEnabled')) {\n        if (Ember.isEmpty(selectedPath)) {\n          this.set('selected', this.get(`value`));\n        } else {\n          this.set('selected', this.get(`value.${selectedPath}`));\n        }\n      } else {\n        let object = {};\n        object[this.get('optionSearchPath')] = this.get('value');\n        this.set('selected', object);\n      }\n\n      if (!this.get('optionSearchEnabled')) {\n        this.loadEnum();\n      }\n\n      this._super(...arguments);\n\n      let altaccesskey = 'alt+' + this.get('accessKey');\n\n      if (!Ember.isBlank(this.get('accessKey'))) {\n        let accessKeyConfig = {\n          [altaccesskey]: {\n            action: 'handleFocus',\n            // action to trigger\n            global: true,\n            preventDefault: true\n          }\n        };\n        this.set('keyboardShortcuts', accessKeyConfig);\n      }\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.bindKeyboardShortcuts)(this);\n    },\n\n    willDestroyElement() {\n      this._super(...arguments);\n\n      (0, _emberKeyboardShortcuts.unbindKeyboardShortcuts)(this);\n    },\n\n    loadEnum() {\n      this.store.findAll(this.get('optionModelName')).then(results => {\n        this.searchResults(results);\n      });\n    },\n\n    searchResults(results) {\n      if (this.get('optionFilterFunction')) {\n        let filteredResults = results.filter(result => {\n          let available = this.get('record')[this.get('optionFilterFunction')](result);\n          return available;\n        });\n        this.set('options', filteredResults);\n      } else {\n        this.set('options', results);\n      }\n    },\n\n    // will do this when optionSearchEnabled is true\n    // otherwise it will do loadEnum\n    search: (0, _emberConcurrency.task)(function* (term) {\n      yield (0, _emberConcurrency.timeout)(500);\n      const query = {\n        filter: `ilike(${this.get('optionSearchPath')},'%${term}%')`,\n        include: this.get('includes')\n      };\n      const results = yield this.store.query(this.get('optionModelName'), query);\n      console;\n      this.searchResults(results);\n    }),\n    actions: {\n      createNew(option) {\n        //console.log('New option',option) // eslint-disable-line no-console\n        this.options.push(option);\n      },\n\n      onSelected(newRecord) {\n        this.set('selected', newRecord);\n\n        if (this.get('optionSearchEnabled')) {\n          this.set(`record.${this.get('valuePath')}`, newRecord.get(this.get('optionSearchPath')));\n          this.set(`record.${this.get('optionTempRecordSelected')}`, newRecord);\n        } else {\n          this.set(`record.${this.get('valuePath')}`, newRecord);\n        }\n\n        this.set('record.isForceDirty', true);\n      },\n\n      onFocus(select, e) {\n        Ember.$('.ember-power-select-search-input').focus();\n        return false;\n      },\n\n      handleKeydown(select, e) {\n        this.set('populateAddress', false);\n\n        if (e.keyCode !== 13) {\n          return;\n        }\n        /*let action = this.get('onkeydown');\n        if (action && action(select, e) === false) {\n          e.stopPropagation();\n          return false;\n        }\n        if (e.keyCode === 13) {\n          e.stopPropagation();\n        }*/\n        //console.log('select.searchText) ',select.searchText);\n        //console.log('optionTempRecordSelected ',this.get('optionTempRecordSelected'));\n\n\n        if (e.keyCode === 13 && select.isOpen && !select.highlighted && !Ember.isBlank(select.searchText)) {\n          //console.log('select.searchText) ',select.searchText);\n          let newRider = this.store.createRecord('rider', {\n            id: select.searchText,\n            riderId: select.searchText\n          });\n          let riderArray = [];\n          riderArray.push(select.searchText); //if (!selected.includes(select.searchText)) {\n\n          this.set('options', riderArray);\n          this.set(`record.${this.get('valuePath')}`, newRider.get(this.get('optionSearchPath')));\n          this.set(`record.${this.get('optionTempRecordSelected')}`, newRider);\n          this.set('selected', newRider);\n          this.set('record.isForceDirty', true);\n          e.stopPropagation();\n          return false; //select.actions.choose(select.searchText);\n          //this.get('options').push(newRider);\n          //}\n        } // TODO: add code to store data\n        //  to correct api host when kafka topic is done.\n\n      },\n\n      handleFocus() {\n        //console.log('ember-power-select-trigger',$('.ember-power-select-trigger'));\n        if (!Ember.isBlank(this.get('accessKey'))) {\n          this.input = document.querySelector(`.ember-power-select-trigger[id=\"${this.get('triggerId')}\"]`);\n\n          if (this.input) {\n            Ember.run.next(this.input, 'focus');\n          }\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/searchable-enum-model/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"8dMuubgM\",\n    \"block\": \"{\\\"symbols\\\":[\\\"option\\\"],\\\"statements\\\":[[4,\\\"power-select-with-create\\\",null,[[\\\"options\\\",\\\"searchEnabled\\\",\\\"search\\\",\\\"onfocus\\\",\\\"selected\\\",\\\"id\\\",\\\"triggerId\\\",\\\"onkeydown\\\",\\\"onchange\\\",\\\"oncreate\\\"],[[23,[\\\"options\\\"]],[23,[\\\"optionSearchEnabled\\\"]],[27,\\\"perform\\\",[[23,[\\\"search\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onFocus\\\"],null],[23,[\\\"selected\\\"]],[27,\\\"readonly\\\",[[23,[\\\"triggerId\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"triggerId\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\"],null],[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onSelected\\\"],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"createNew\\\"],null]]],{\\\"statements\\\":[[0,\\\"  \\\"],[1,[27,\\\"get\\\",[[22,1,[]],[23,[\\\"optionSearchPath\\\"]]],null],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/searchable-enum-model/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/searchable-enum/component\", [\"exports\", \"ember-concurrency\"], function (_exports, _emberConcurrency) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-select'],\n    store: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    extra: null,\n    options: null,\n    allowMultiple: Ember.computed.alias('extra.allowMultiple'),\n    optionSearchPath: Ember.computed.alias('extra.optionSearchPath'),\n    optionModelName: Ember.computed.alias('extra.optionModelName'),\n    optionSearchEnabled: Ember.computed.alias('extra.optionSearchEnabled'),\n    optionTempRecordSelected: Ember.computed.alias('extra.optionTempRecordSelected'),\n    optionFilterFunction: Ember.computed.alias('extra.optionFilterFunction'),\n    includes: Ember.computed('extra.optionIncludes', function () {\n      return this.get('extra.optionIncludes') !== undefined ? this.get('extra.optionIncludes') : '';\n    }),\n\n    init() {\n      const selectedPath = this.get('extra.optionSelectedPath');\n\n      if (!this.get('optionSearchEnabled')) {\n        if (Ember.isEmpty(selectedPath)) {\n          this.set('selected', this.get(`value`));\n        } else {\n          this.set('selected', this.get(`value.${selectedPath}`));\n        }\n      } else {\n        let object = {};\n        object[this.get('optionSearchPath')] = this.get('value');\n        this.set('selected', object);\n      }\n\n      if (!this.get('optionSearchEnabled')) {\n        this.loadEnum();\n      }\n\n      this._super(...arguments);\n    },\n\n    loadEnum() {\n      this.store.findAll(this.get('optionModelName')).then(results => {\n        this.searchResults(results);\n      });\n    },\n\n    searchResults(results) {\n      if (this.get('optionFilterFunction')) {\n        let filteredResults = results.filter(result => {\n          let available = this.get('record')[this.get('optionFilterFunction')](result);\n          return available;\n        });\n        this.set('options', filteredResults);\n      } else {\n        this.set('options', results);\n      }\n    },\n\n    // will do this when optionSearchEnabled is true\n    // otherwise it will do loadEnum\n    search: (0, _emberConcurrency.task)(function* (term) {\n      yield (0, _emberConcurrency.timeout)(500);\n      const query = {\n        filter: `ilike(${this.get('optionSearchPath')},'%${term}%')`,\n        include: this.get('includes')\n      };\n      const results = yield this.store.query(this.get('optionModelName'), query);\n      this.searchResults(results);\n    }),\n    actions: {\n      onSelected(newRecord) {\n        this.set('selected', newRecord);\n\n        if (this.get('optionSearchEnabled')) {\n          this.set(`record.${this.get('valuePath')}`, newRecord.get(this.get('optionSearchPath')));\n          this.set(`record.${this.get('optionTempRecordSelected')}`, newRecord);\n        } else {\n          this.set(`record.${this.get('valuePath')}`, newRecord);\n        }\n\n        this.set('record.isForceDirty', true);\n      },\n\n      handleKeydown(dropdown, e) {\n        if (e.keyCode !== 13) {\n          return;\n        } // TODO: add code to store data\n        //  to correct api host when kafka topic is done.\n\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/searchable-enum/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"sLh4pDHA\",\n    \"block\": \"{\\\"symbols\\\":[\\\"option\\\"],\\\"statements\\\":[[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"searchEnabled\\\",\\\"search\\\",\\\"selected\\\",\\\"onkeydown\\\",\\\"onchange\\\"],[[23,[\\\"options\\\"]],[23,[\\\"optionSearchEnabled\\\"]],[27,\\\"perform\\\",[[23,[\\\"search\\\"]]],null],[23,[\\\"selected\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\"],null],[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onSelected\\\"],null]],null]]],{\\\"statements\\\":[[0,\\\"  \\\"],[1,[27,\\\"get\\\",[[22,1,[]],[23,[\\\"optionSearchPath\\\"]]],null],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/searchable-enum/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/select/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-select'],\n    value: null,\n    disabled: false,\n    extra: null,\n    store: Ember.inject.service(),\n    dataFromModel: false,\n    options: Ember.computed.alias('extra.options'),\n\n    init() {\n      this._super(...arguments);\n\n      if (this.get('extra.optionModelName') !== undefined) {\n        this.set('dataFromModel', true);\n        this.set('options', this.get('store').peekAll(this.get('extra.optionModelName')));\n      }\n    },\n\n    actions: {\n      onChange(option) {\n        this.set('selected', option);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/select/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"4JEEjxXn\",\n    \"block\": \"{\\\"symbols\\\":[\\\"option\\\"],\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"selected\\\",\\\"options\\\",\\\"disabled\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"selected\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"options\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],false,[27,\\\"action\\\",[[22,0,[]],\\\"onChange\\\"],null]]],{\\\"statements\\\":[[0,\\\"  \\\"],[1,[22,1,[\\\"label\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/select/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/shift-breaks/component\", [\"exports\", \"moment\", \"adept-iq/config/environment\", \"tomtom\", \"ember-concurrency\"], function (_exports, _moment, _environment, _tomtom, _emberConcurrency) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  function cleanFieldString(text) {\n    return typeof text === 'undefined' ? '' : text;\n  }\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-availabilities'],\n    editModal: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    dayOfWeeks: null,\n    store: Ember.inject.service(),\n    startTimePath: Ember.computed.readOnly('extra.startTimePath'),\n    endTimePath: Ember.computed.readOnly('extra.endTimePath'),\n    sundayPath: Ember.computed.readOnly('extra.sundayPath'),\n    mondayPath: Ember.computed.readOnly('extra.mondayPath'),\n    tuesdayPath: Ember.computed.readOnly('extra.tuesdayPath'),\n    wednesdayPath: Ember.computed.readOnly('extra.wednesdayPath'),\n    thursdayPath: Ember.computed.readOnly('extra.thursdayPath'),\n    fridayPath: Ember.computed.readOnly('extra.fridayPath'),\n    saturdayPath: Ember.computed.readOnly('extra.saturdayPath'),\n    shiftBreaksPath: Ember.computed.readOnly('extra.shiftBreaksPath'),\n    shiftBreakTypePath: Ember.computed.readOnly('extra.shiftBreakTypePath'),\n    breakPromisedStartPath: Ember.computed.readOnly('extra.breakPromisedStartPath'),\n    breakPromisedEndPath: Ember.computed.readOnly('extra.breakPromisedEndPath'),\n    breakDurationPath: Ember.computed.readOnly('extra.breakDurationPath'),\n    shiftBreaks: null,\n    breakTypes: null,\n    addressOptions: null,\n    addresses: Ember.computed.readOnly('value'),\n    addressType: Ember.computed.readOnly('extra.addressvaluePath'),\n    aliasPath: Ember.computed.readOnly('extra.aliasPath'),\n    notesPath: Ember.computed.readOnly('extra.notesPath'),\n    streetNrPath: Ember.computed.readOnly('extra.streetNrPath'),\n    streetNamePath: Ember.computed.readOnly('extra.streetNamePath'),\n    localityPath: Ember.computed.readOnly('extra.localityPath'),\n    regionPath: Ember.computed.readOnly('extra.regionPath'),\n    subRegionPath: Ember.computed.readOnly('extra.subRegionPath'),\n    postalCodePath: Ember.computed.readOnly('extra.postalCodePath'),\n    countryPath: Ember.computed.readOnly('extra.countryPath'),\n    locationsPath: 'latlng',\n    addressRecord: null,\n    selected: null,\n    geocodeAddressChange: Ember.observer('geocode.tomtomAddress', function () {\n      const record = this.get('addressRecord');\n      const tomtomAddress = this.get('geocode.tomtomAddress');\n      this.convertTTAddressToModel(record, tomtomAddress);\n      this.disableAddressSearchOnMap(record, record.type);\n    }),\n\n    init() {\n      this.set('dayOfWeeks', ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']);\n      this.set('datePlaceHolder', _environment.default.dateTimeFormat.dateMoment);\n      this.set('timePlaceHolder', _environment.default.dateTimeFormat.timeMoment);\n      this.set('dateFormat', _environment.default.dateTimeFormat.dateFlatPickr);\n      this.set('timeFormat', _environment.default.dateTimeFormat.timeFlatPickr);\n\n      this._super(...arguments);\n\n      this.set('shiftBreaks', this.get('value'));\n    },\n\n    validateAddresses() {\n      const records = this.get('addresses');\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        if (record.lat === 0 || record.lng === 0) {\n          this.get('editModal.errors').pushObject('Address does not have lat/lng. Please select position on the map.');\n        }\n      });\n    },\n\n    addressSearchResults(results) {\n      this.set('addressOptions', results);\n    },\n\n    searchAddress: (0, _emberConcurrency.task)(function* (term) {\n      yield _tomtom.default.fuzzySearch().key(_environment.default.tomtom.search.searchKey).query(term).countrySet(_environment.default.tomtom.search.countrySet).typeahead(true).center(_environment.default.tomtom.search.center).radius(_environment.default.tomtom.search.radius).callback(this.addressSearchResults.bind(this)).go();\n    }),\n    convertTTAddressToModel: function (record, ttAddress) {\n      if (ttAddress.id === undefined && ttAddress.id === null || ttAddress.position !== undefined && ttAddress.position !== null) {\n        let useOptionRecord = true;\n        let valuePath = this.get('streetNrPath');\n        let options = {\n          record,\n          valuePath,\n          useOptionRecord\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(cleanFieldString(ttAddress.address.streetNr), options);\n        options.valuePath = this.get('streetNamePath');\n        this.get('onChange')(cleanFieldString(ttAddress.address.streetName), options);\n        options.valuePath = this.get('localityPath');\n        this.get('onChange')(cleanFieldString(ttAddress.address.municipality), options);\n        options.valuePath = this.get('regionPath');\n        this.get('onChange')(cleanFieldString(ttAddress.address.countrySubdivisionName), options);\n        options.valuePath = this.get('subRegionPath');\n        this.get('onChange')(cleanFieldString(ttAddress.address.countrySecondarySubdivision), options);\n        options.valuePath = this.get('postalCodePath');\n        this.get('onChange')(cleanFieldString(ttAddress.address.postalCode), options);\n        options.valuePath = this.get('countryPath');\n        this.get('onChange')(cleanFieldString(ttAddress.address.countryCode), options);\n        options.valuePath = this.get('aliasPath');\n        this.get('onChange')('', options);\n        record.set('lat', ttAddress.position.lat);\n        record.set('lng', ttAddress.position.lon);\n        this.get('geocode').getGeonode(ttAddress.address.freeformAddress).then(result => {\n          if (result.data.length > 0) {\n            record.set('geoNode', result.data[0].geonode); //this.set('addressRecord', record);\n          }\n        });\n      } else {\n        let useOptionRecord = true;\n        let valuePath = this.get('streetNrPath');\n        let options = {\n          record,\n          valuePath,\n          useOptionRecord\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(cleanFieldString(ttAddress.streetNr), options);\n        options.valuePath = this.get('streetNamePath');\n        this.get('onChange')(cleanFieldString(ttAddress.streetAddress), options);\n        options.valuePath = this.get('localityPath');\n        this.get('onChange')(cleanFieldString(ttAddress.locality), options);\n        options.valuePath = this.get('regionPath');\n        this.get('onChange')(cleanFieldString(ttAddress.countrySubdivisionName), options);\n        options.valuePath = this.get('subRegionPath');\n        this.get('onChange')(cleanFieldString(ttAddress.countrySecondarySubdivision), options);\n        options.valuePath = this.get('postalCodePath');\n        this.get('onChange')(cleanFieldString(ttAddress.postalCode), options);\n        options.valuePath = this.get('countryPath');\n        this.get('onChange')(cleanFieldString(ttAddress.countryCode), options);\n        options.valuePath = this.get('aliasPath');\n        this.get('onChange')(cleanFieldString(ttAddress.alias), options);\n        options.valuePath = this.get('notesPath');\n        this.get('onChange')(cleanFieldString(ttAddress.notes), options);\n        record.set('lat', ttAddress.locations.firstObject.lat);\n        record.set('lng', ttAddress.locations.firstObject.lng);\n        this.get('geocode').getGeonode(ttAddress.tomtomFormattedAddress.address.freeformAddress).then(result => {\n          if (result.data.length > 0) {\n            record.set('geoNode', result.data[0].geonode);\n          }\n        });\n      }\n\n      this.get('geocode').activateGeocode(false, record, record.type);\n      this.validateAddresses();\n      this.set('addressOptions', this.get('record').get('rider.riderAddresses'));\n    },\n    clearAddressModel: function (record) {\n      let addressvaluePath = this.get('streetNrPath');\n      let options = {\n        record,\n        addressvaluePath\n      };\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('streetNamePath');\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('localityPath');\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('regionPath');\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('subRegionPath');\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('postalCodePath');\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('countryPath');\n      this.get('onChange')('', options);\n      options.addressvaluePath = this.get('aliasPath');\n      this.get('onChange')('', options);\n      record.set('lat', 0);\n      record.set('lng', 0);\n    },\n\n    enableAddressSearchOnMap(record, type) {\n      Ember.$('html,body,.tomtom-map').addClass('custom-cursor');\n      this.get('geocode').activateGeocode(true, record, type);\n      this.set('addressRecord', record);\n    },\n\n    disableAddressSearchOnMap(record, type) {\n      Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n      this.get('geocode').activateGeocode(false, record, type);\n      this.set('addressRecord', null);\n    },\n\n    didInsertElement: function () {\n      const breakTypeModelName = this.get('extra.breakTypeModelName');\n      this.set('breakTypes', this.get('store').peekAll(breakTypeModelName));\n    },\n\n    getAvailibilityBreaks(record) {\n      return record.get('shiftBreaks');\n    },\n\n    actions: {\n      onInput(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value, options);\n      },\n\n      onChangeDate(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value[0], options);\n      },\n\n      onClose(currentValue, stringValue, datePicker) {\n        const currentValueMoment = (0, _moment.default)(currentValue[0]);\n        const newValueMoment = (0, _moment.default)(stringValue);\n\n        if (!newValueMoment._isValid) {\n          // $(`#${datePicker.element.id}`).focus();\n          this.set('editModal.errors', ['Date entered is invalid.']);\n        }\n\n        if (datePicker.config.allowInput && datePicker._input.value && newValueMoment._isValid && !currentValueMoment.isSame(newValueMoment)) {\n          // date format is for database so should not be from config\n          datePicker.setDate(newValueMoment.format('YYYY-MM-DD'), true);\n        }\n      },\n\n      onChangeTime(record, valuePath, value) {\n        const momentTime = (0, _moment.default)(value[0]);\n        let options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(momentTime.format('HH:mm:ss'), options);\n      },\n\n      onCheckboxChange(record, valuePath) {\n        let switchState = record.get(valuePath);\n        let options = {\n          record,\n          valuePath\n        };\n        switchState = !switchState;\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(switchState, options);\n      },\n\n      onDOWChange(record, values) {\n        record.set('sunday', values.includes('sunday'));\n        record.set('monday', values.includes('monday'));\n        record.set('tuesday', values.includes('tuesday'));\n        record.set('wednesday', values.includes('wednesday'));\n        record.set('thursday', values.includes('thursday'));\n        record.set('friday', values.includes('friday'));\n        record.set('saturday', values.includes('saturday'));\n        this.set('record.isForceDirty', true);\n      },\n\n      onAddNewBreak(record, valuePath, modelName) {\n        //const newAddress = this.get('editModal').pushRecordValue(record., 'locations', 'location');\n        const shiftBreak = this.get('editModal').pushRecordValue(record, valuePath, modelName);\n        shiftBreak.set('breakType', this.get('breakTypes.firstObject')); //this.get('editModal').pushRecordValue(record, 'shiftBreaks', 'ss-shift-break');\n      },\n\n      onbreakTypeChange(record, valuePath, value) {\n        record.set(valuePath, value);\n        this.record.set(valuePath, value);\n        this.set('record.isForceDirty', true);\n      },\n\n      onRemoveBreak(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.get('onRemove')(value, options);\n      },\n\n      onAddressSelected(record, valuePath, value) {\n        this.convertTTAddressToModel(record, value);\n      },\n\n      onAliasAddressSelected(record, valuePath, value) {\n        this.convertTTAliasAddressToModel(record, value);\n      },\n\n      onPickOnMap(record) {\n        const activeGeocode = this.get('geocode.activeGeocode');\n\n        if (activeGeocode) {\n          this.disableAddressSearchOnMap(record, record.type);\n        } else {\n          this.enableAddressSearchOnMap(record, record.type);\n        }\n      },\n\n      handleKeydown(record, valuePath, dropdown, e) {\n        if (e.keyCode !== 13) {\n          return;\n        }\n\n        let text = e.target.value;\n        let options = {\n          record,\n          valuePath: 'streetAddress'\n        }; // address has been forced without geocodes\n        // this.set('record.isForceDirty', true);\n\n        this.clearAddressModel(record); // this.set('record.isForceDirty', true);\n\n        this.get('onChange')(text, options);\n        this.set('addressRecord', record);\n        this.validateAddresses();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/shift-breaks/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"dVzNpKv/\",\n    \"block\": \"{\\\"symbols\\\":[\\\"shiftBreak\\\",\\\"address\\\",\\\"option\\\",\\\"option\\\",\\\"name\\\"],\\\"statements\\\":[[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 availabilities-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"shiftBreaks\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Day of the Week\\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select-multiple\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"closeOnSelect\\\",\\\"onchange\\\"],[[23,[\\\"dayOfWeeks\\\"]],[22,1,[\\\"selectedDOWs\\\"]],\\\"Select some names...\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"onDOWChange\\\",[22,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"      \\\"],[1,[22,5,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[5]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Start Date\\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n      \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"startTimePath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\",[22,1,[]],[23,[\\\"startTimePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"End Date\\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n      \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"endTimePath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\",[22,1,[]],[23,[\\\"endTimePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Type\\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"selected\\\",\\\"options\\\",\\\"disabled\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"shiftBreakTypePath\\\"]]],null]],null],[27,\\\"readonly\\\",[[23,[\\\"breakTypes\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],false,[27,\\\"action\\\",[[22,0,[]],\\\"onbreakTypeChange\\\",[22,1,[]],[23,[\\\"shiftBreakTypePath\\\"]]],null]]],{\\\"statements\\\":[[0,\\\"      \\\"],[1,[22,4,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[22,1,[\\\"locations\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 places-table\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Place Name\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,2,[]],[23,[\\\"aliasPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Place Name\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,2,[]],[23,[\\\"aliasPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Address\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"search\\\",\\\"selected\\\",\\\"onkeydown\\\",\\\"onchange\\\"],[[23,[\\\"addressOptions\\\"]],[27,\\\"perform\\\",[[23,[\\\"searchAddress\\\"]]],null],[22,2,[\\\"tomtomFormattedAddress\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\",[22,2,[]],[23,[\\\"addressType\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onAddressSelected\\\",[22,2,[]],[23,[\\\"addressType\\\"]]],null]],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[22,3,[\\\"address\\\",\\\"freeformAddress\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onPickOnMap\\\",[22,2,[]]],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-map-marker \\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Unit\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[11,\\\"placeholder\\\",\\\"Unit\\\"],[11,\\\"readonly\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,2,[]],[23,[\\\"unitPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Notes\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,2,[]],[23,[\\\"notesPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Notes\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,2,[]],[23,[\\\"notesPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"City\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,2,[]],[23,[\\\"localityPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Locality\\\"],[11,\\\"readonly\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,2,[]],[23,[\\\"localityPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Postal Code\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,2,[]],[23,[\\\"postalCodePath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Postal Code\\\"],[11,\\\"readonly\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,2,[]],[23,[\\\"postalCodePath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[11,\\\"class\\\",\\\"row-hidden\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Lat/Long\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,2,[]],[23,[\\\"locationsPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"Lat/Long\\\"],[11,\\\"readonly\\\",\\\"true\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,2,[]],[23,[\\\"locationsPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Start Time\\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n      \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"noCalendar\\\",\\\"time_24hr\\\",\\\"placeholder\\\",\\\"enableTime\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\"],[\\\"en\\\",true,true,false,[23,[\\\"timePlaceholder\\\"]],true,[23,[\\\"timeFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"breakPromisedStartPath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeTime\\\",[22,1,[]],[23,[\\\"breakPromisedStartPath\\\"]]],null]]]],false],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"End Time\\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n      \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"noCalendar\\\",\\\"time_24hr\\\",\\\"placeholder\\\",\\\"enableTime\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\"],[\\\"en\\\",true,true,false,[23,[\\\"timePlaceholder\\\"]],true,[23,[\\\"timeFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"breakPromisedEndPath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeTime\\\",[22,1,[]],[23,[\\\"breakPromisedEndPath\\\"]]],null]]]],false],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onRemoveBreak\\\",[22,1,[]],[23,[\\\"shiftBreaksPath\\\"]],[23,[\\\"target\\\",\\\"value\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-remove\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-trash-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n      Remove\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onAddNewBreak\\\",[23,[\\\"record\\\"]],[23,[\\\"shiftBreaksPath\\\"]],\\\"ss-shift-break\\\"],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary mt-3\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-plus\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n      Add New Break\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[10]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/shift-breaks/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/specialtext/component\", [\"exports\", \"adept-iq/utils/check-value\"], function (_exports, _checkValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-specialtext'],\n    value: null,\n    disabled: false,\n    movePath: Ember.computed.readOnly('extra.movePath'),\n    moveSperator: Ember.computed.readOnly('extra.moveSperator'),\n    actions: {\n      moveData() {\n        let record = this.get('record');\n        record.set('driverNotes', (0, _checkValue.default)(record.get('driverNotes')) + this.get('moveSperator') + (0, _checkValue.default)(record.get('predefinedNotes.driverNotes')));\n        record.set('predefinedNotes.driverNotes', '');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/specialtext/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"U2xr0Qh9\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"moveData\\\",[23,[\\\"record\\\"]]],null]],[12,\\\"accesskey\\\",[23,[\\\"accountPickups\\\",\\\"accessKey\\\"]]],[12,\\\"title\\\",[28,[\\\"Swap Addresses  \\\",[21,\\\"altSwipeAddressKey\\\"]]]],[11,\\\"class\\\",\\\"multitype-button btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-arrow-up\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n \\\"],[10],[0,\\\"        \\\\n \\\"],[1,[21,\\\"value\\\"],false],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/specialtext/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/subscriptions/component\", [\"exports\", \"moment\", \"adept-iq/config/environment\"], function (_exports, _moment, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-subscriptions'],\n    editModal: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    dayOfWeeks: null,\n    subscriptions: Ember.computed.readOnly('value'),\n    recurringPath: Ember.computed.readOnly('extra.recurringPath'),\n    availabilityType: Ember.computed.readOnly('valuePath'),\n    startTimePath: Ember.computed.readOnly('extra.startTimePath'),\n    endTimePath: Ember.computed.readOnly('extra.endTimePath'),\n    shiftStartPath: Ember.computed.readOnly('extra.shiftStartPath'),\n    shiftEndPath: Ember.computed.readOnly('extra.shiftEndPath'),\n    sundayPath: Ember.computed.readOnly('extra.sundayPath'),\n    mondayPath: Ember.computed.readOnly('extra.mondayPath'),\n    tuesdayPath: Ember.computed.readOnly('extra.tuesdayPath'),\n    wednesdayPath: Ember.computed.readOnly('extra.wednesdayPath'),\n    thursdayPath: Ember.computed.readOnly('extra.thursdayPath'),\n    fridayPath: Ember.computed.readOnly('extra.fridayPath'),\n    saturdayPath: Ember.computed.readOnly('extra.saturdayPath'),\n    startDatePath: Ember.computed.readOnly('extra.startDateTimePath'),\n    endDatePath: Ember.computed.readOnly('extra.endDateTimePath'),\n    exStartDatePath: Ember.computed.readOnly('extra.excludeStartDateTimePath'),\n    exEndDatePath: Ember.computed.readOnly('extra.excludeEndDateTimePath'),\n\n    init() {\n      this._super(...arguments);\n\n      let recurring = this.get(`record.${this.get('valuePath')}.firstObject.${this.get('recurringPath')}`);\n      this.set('dayOfWeeks', ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']);\n      this.set('dateTimePlaceHolder', _environment.default.dateTimeFlatPickr);\n      this.set('recurringOptions', ['yes', 'no']);\n\n      if (!Ember.isNone(recurring) || recurring === 'yes') {\n        this.set('recurring', 'yes');\n      } else {\n        this.set('recurring', 'no');\n      }\n\n      this.set('frequencyOptions', ['daily', 'weekly', 'montly']);\n      this.set('frequency', 'daily');\n      this.set('dailyDaysOptions', ['Every Day', 'Every WeekDay']);\n      this.set('dailyDays', 'Every Day');\n      this.set('weekOfMonthOptions', ['first', 'second', 'Third', 'fourth', 'last']);\n      this.set('dayOfWeekOfMonthOptions', ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']);\n      this.set('datePlaceHolder', _environment.default.dateTimeFormat.dateMoment);\n      this.set('timePlaceHolder', _environment.default.dateTimeFormat.timeMoment);\n      this.set('dateFormat', _environment.default.dateTimeFormat.dateFlatPickr); //    this.set('monthFrequency', ['sunday','monday','tuesday','wednesday','thursday','friday','saturday']);\n    },\n\n    actions: {\n      onInput(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value, options);\n      },\n\n      onChangeDate(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(value[0], options);\n      },\n\n      onClose(currentValue, stringValue, datePicker) {\n        const currentValueMoment = (0, _moment.default)(currentValue[0]);\n        const newValueMoment = (0, _moment.default)(stringValue);\n\n        if (!newValueMoment._isValid) {\n          // $(`#${datePicker.element.id}`).focus();\n          this.set('editModal.errors', ['Date entered is invalid.']);\n        }\n\n        if (datePicker.config.allowInput && datePicker._input.value && newValueMoment._isValid && !currentValueMoment.isSame(newValueMoment)) {\n          // date format is for database so should not be from config\n          datePicker.setDate(newValueMoment.format('YYYY-MM-DD'), true);\n        } // $(datePicker.altInput.className).select();\n        // $(datePicker.element).select();\n        // $('.effective-start').select();\n\n      },\n\n      onChangeTime(record, valuePath, value) {\n        const momentTime = (0, _moment.default)(value[0]);\n        let options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(momentTime.format('HH:mm:ss'), options);\n      },\n\n      onCheckboxChange(record, valuePath) {\n        let switchState = record.get(valuePath);\n        let options = {\n          record,\n          valuePath\n        };\n        switchState = !switchState;\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(switchState, options);\n      },\n\n      onDOWChange(record, values) {\n        record.set('sunday', values.includes('sunday'));\n        record.set('monday', values.includes('monday'));\n        record.set('tuesday', values.includes('tuesday'));\n        record.set('wednesday', values.includes('wednesday'));\n        record.set('thursday', values.includes('thursday'));\n        record.set('friday', values.includes('friday'));\n        record.set('saturday', values.includes('saturday'));\n      },\n\n      onAddNewAvailability() {\n        this.get('onCreate')();\n      },\n\n      onRecurringChange(record, value) {\n        record.set('recurring', value);\n        this.set('recurring', value);\n      },\n\n      onFrequencyChange(record, value) {\n        record.set('frequency', value);\n        this.set('frequency', value);\n      },\n\n      onRemoveAvailability(record, valuePath, value) {\n        let options = {\n          record,\n          valuePath\n        };\n        this.get('onRemove')(value, options);\n      },\n\n      onDailyDaysChange(record, value) {\n        record.set('dailyDays', value);\n      },\n\n      onDailyOptionsChange(record, value) {\n        record.set('dailyDays', value);\n      },\n\n      onWOMChange(record, value) {\n        record.set('dailyDays', value);\n      },\n\n      onDOWOMChange(record, value) {\n        record.set('dailyDays', value);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/subscriptions/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"ESiNsRmj\",\n    \"block\": \"{\\\"symbols\\\":[\\\"subscription\\\",\\\"option\\\",\\\"name\\\",\\\"name\\\",\\\"name\\\"],\\\"statements\\\":[[7,\\\"table\\\"],[11,\\\"class\\\",\\\"subscriptions-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"subscriptions\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"onoffswitch subscription-recurring\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"id\\\",\\\"subscriptionSwitch\\\"],[11,\\\"class\\\",\\\"form-control countInput onoffswitch-checkbox\\\"],[12,\\\"checked\\\",[21,\\\"recurring\\\"]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onEnableSubscriptionChange\\\",[22,1,[]]],null]],null]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"onoffswitch-label\\\"],[11,\\\"for\\\",\\\"subscriptionSwitch\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"onoffswitch-inner\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"onoffswitch-switch\\\"],[11,\\\"tabindex\\\",\\\"0\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"recurring\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label cell-label-frequency\\\"],[9],[0,\\\"Frequency\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell subscription-frequency\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"onchange\\\"],[[23,[\\\"frequencyOptions\\\"]],[22,1,[\\\"type\\\"]],\\\"Select some names...\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFrequencyChange\\\",[22,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,5,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[5]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"recurring\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"or\\\",[[27,\\\"eq\\\",[[22,1,[\\\"type\\\"]],\\\"daily\\\"],null],[27,\\\"eq\\\",[[22,1,[\\\"type\\\"]],\\\"weekly\\\"],null]],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"subscription-recur-on-label\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"Recur on the following days:\\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"sunday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"sunday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Sun\\\"],[10],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"monday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"monday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Mon\\\"],[10],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"tuesday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"tuesday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Tue\\\"],[10],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"wednesday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"wednesday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Wed\\\"],[10],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"thursday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"thursday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Thu\\\"],[10],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"friday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"friday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Fri\\\"],[10],[0,\\\"\\\\n            \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"click\\\"],[\\\"checkbox\\\",[22,1,[\\\"saturday\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxChange\\\",[22,1,[]],\\\"saturday\\\"],null]]]],false],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Sat\\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"type\\\"]],\\\"monthly\\\"],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\",\\\"changed\\\",\\\"classNames\\\"],[\\\"dayOfMonth\\\",[22,1,[\\\"monthlyType\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onMonthlyTypeChange\\\",[22,1,[]]],null],\\\"radio-button-input\\\"]],{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"p\\\"],[11,\\\"class\\\",\\\"radio-button-group\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"radio-button-1-label\\\"],[9],[0,\\\"Day\\\"],[10],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control countInput\\\"],[11,\\\"min\\\",\\\"1\\\"],[11,\\\"max\\\",\\\"31\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"dayOfMonthPath\\\"]]],null]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"dayOfMonthPath\\\"]],\\\"dayOfMonth\\\"],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"number\\\"],[9],[10],[0,\\\"\\\\n                \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"radio-button-2-label\\\"],[9],[0,\\\"of every month\\\"],[10],[0,\\\"\\\\n\\\"],[0,\\\"            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"radio-button\\\",null,[[\\\"value\\\",\\\"groupValue\\\",\\\"changed\\\",\\\"classNames\\\"],[\\\"weekOfMonth\\\",[22,1,[\\\"monthlyType\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onMonthlyTypeChange\\\",[22,1,[]]],null],\\\"radio-button-input\\\"]],{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"monthly-wom-line\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"radio-button-1-label\\\"],[9],[0,\\\"The\\\"],[10],[0,\\\"\\\\n                \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"monthly-wom-select\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"onchange\\\"],[[23,[\\\"weekOfMonthOptions\\\"]],[22,1,[\\\"selectedWOM\\\"]],\\\"Select week of the month...\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onWOMChange\\\",[22,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"                  \\\"],[1,[22,4,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"                \\\"],[10],[0,\\\"\\\\n                \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"monthly-dow-select\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"onchange\\\"],[[23,[\\\"dayOfWeeks\\\"]],[22,1,[\\\"selectedDOWs\\\"]],\\\"Select some names...\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onDOWChange\\\",[22,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"                  \\\"],[1,[22,3,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"                \\\"],[10],[0,\\\"\\\\n                \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"radio-button-2-label\\\"],[9],[0,\\\"of every month\\\"],[10],[0,\\\"\\\\n\\\"],[0,\\\"              \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Start\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"startDatePath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\",[22,1,[]],[23,[\\\"startDatePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"End\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell subscription-end\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"subscription-end-option\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"onchange\\\"],[[22,1,[\\\"endOptions\\\"]],[22,1,[\\\"endSelected\\\"]],\\\"Select some names...\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onEndOptionChange\\\",[22,1,[]]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,2,[\\\"label\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"endSelected\\\",\\\"type\\\"]],\\\"endBy\\\"],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"endDatePath\\\"]]],null]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeDate\\\",[22,1,[]],[23,[\\\"endDatePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"endSelected\\\",\\\"type\\\"]],\\\"endAfter\\\"],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control countInput\\\"],[11,\\\"min\\\",\\\"1\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"maxOccurencesPath\\\"]]],null]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"maxOccurencesPath\\\"]],\\\"weekOfMonth\\\"],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"number\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Exclude\\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"mode\\\",\\\"allowInput\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"date\\\",\\\"onChange\\\"],[\\\"en\\\",\\\"range\\\",true,[23,[\\\"datePlaceHolder\\\"]],[23,[\\\"dateFormat\\\"]],[22,1,[\\\"excludeRangeDate\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeRangeDate\\\",[22,1,[]],[23,[\\\"exStartDatePath\\\"]],[23,[\\\"exEndDatePath\\\"]]],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/subscriptions/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/text/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-text'],\n    value: null,\n    disabled: false,\n    actions: {\n      onInput(value) {\n        this.set('record.isForceDirty', true);\n        this.set(`record.${this.get('valuePath')}`, value.trim()); // this.get('onChange')(value.trim());\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/text/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"dz6bCgiA\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"multiLine\\\"]],true],null]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"textarea\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[12,\\\"accesskey\\\",[21,\\\"accessKey\\\"]],[12,\\\"maxlength\\\",[27,\\\"readonly\\\",[[23,[\\\"maxlength\\\"]]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"   \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[12,\\\"accesskey\\\",[21,\\\"accessKey\\\"]],[12,\\\"maxlength\\\",[27,\\\"readonly\\\",[[23,[\\\"maxlength\\\"]]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/text/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/time/component\", [\"exports\", \"moment\"], function (_exports, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const TIME_FORMAT = /^\\d\\d:\\d\\d (AM|PM)$/;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-time'],\n    value: null,\n    disabled: false,\n    actions: {\n      onInput(value) {\n        if (!TIME_FORMAT.test(value)) return;\n        const date = (0, _moment.default)(this.get('value')).format('YYYY-MM-DD');\n        const newValue = (0, _moment.default)(`${date} ${value}`, 'YYYY-MM-DD hh:mm A').toDate();\n        this.get('onChange')(newValue);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/time/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"6pUgWpqy\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"moment-format\\\",[[23,[\\\"value\\\"]],\\\"hh:mm A\\\"],null]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/time/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/timeflatpickr/component\", [\"exports\", \"adept-iq/config/environment\"], function (_exports, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-datetimeflatpickr'],\n    value: null,\n    disabled: false,\n    defaultDate: null,\n    maxDate: null,\n\n    init() {\n      this._super(...arguments);\n\n      this.set('timeFormat', _environment.default.dateTimeFormat.timeFlatPickr);\n      this.set('timePlaceholder', _environment.default.dateTimeFormat.timeMoment);\n    },\n\n    actions: {\n      onChangeTime() {// required by flatpickr\n      },\n\n      onClose(currentValue) {\n        let newValue = null;\n\n        if (Ember.isBlank(this.get('value'))) {\n          newValue = new Date();\n        } else {\n          newValue = new Date(this.get('value'));\n        } // change the date part only\n\n\n        newValue.setHours(currentValue[0].getHours());\n        newValue.setMinutes(currentValue[0].getMinutes());\n        this.get('onChange')(newValue);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/timeflatpickr/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"whVURrZB\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[1,[27,\\\"ember-flatpickr\\\",null,[[\\\"locale\\\",\\\"allowInput\\\",\\\"noCalendar\\\",\\\"placeholder\\\",\\\"dateFormat\\\",\\\"enableTime\\\",\\\"date\\\",\\\"onChange\\\",\\\"onClose\\\"],[\\\"en\\\",true,true,[23,[\\\"timePlaceholder\\\"]],[23,[\\\"timeFormat\\\"]],true,[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChangeTime\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onClose\\\"],null]]]],false],[0,\\\"\\\\n\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/timeflatpickr/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/travel-needs/component\", [\"exports\", \"lodash\"], function (_exports, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  // status of travel needs within the UI\n  const STATUS_TYPE_EXISTING = 'existing'; // already part of rider\n\n  const STATUS_TYPE_AVAILABLE = 'available'; // available for rider to add\n\n  const STATUS_TYPE_ADDED = 'added'; // it will be added to rider once it is saved\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-components-travel-need'],\n    store: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    value: null,\n    disabled: false,\n    pcaState: false,\n    serviceAnimalState: false,\n    travelNeedTypes: null,\n    passengerTypes: null,\n    travelNeeds: Ember.computed.readOnly('value'),\n    countPath: Ember.computed.readOnly('extra.countPath'),\n    travelNeedTypePath: Ember.computed.readOnly('extra.travelNeedTypePath'),\n    passengerTypePath: Ember.computed.readOnly('extra.passengerTypePath'),\n    modelName: Ember.computed.readOnly('field.modelName'),\n    equipments: Ember.computed('record.{equipments,newTravelNeeds}', function () {\n      this.get('record.equipments').map(travelNeed => {\n        travelNeed.set('status', STATUS_TYPE_EXISTING);\n      });\n      this.get('record.newTravelNeeds').map(travelNeed => {\n        travelNeed.set('status', STATUS_TYPE_AVAILABLE);\n      });\n      return _lodash.default.concat(this.get('record.equipments'), this.get('record.newTravelNeeds'));\n    }),\n    newEquipments: Ember.computed('record.newTravelNeeds', function () {\n      return this.get('record.newTravelNeeds').filter(travelNeed => {\n        return travelNeed.get('passengerType.isClient') && !travelNeed.get('travelNeedType.isServiceAnimal') && travelNeed.get('status') === STATUS_TYPE_AVAILABLE;\n      });\n    }),\n    extraPassengers: Ember.computed('record.{extraPassengers,newTravelNeeds}', function () {\n      const tempArray = _lodash.default.concat(this.get('record.extraPassengers'), this.get('record.newTravelNeeds'));\n\n      const extraPassObjects = []; // arrange in specific order\n\n      extraPassObjects.push(tempArray.find(travelNeed => travelNeed.get('travelNeedType.isServiceAnimal')));\n      extraPassObjects.push(tempArray.find(travelNeed => travelNeed.get('passengerType.isPca')));\n      extraPassObjects.push(tempArray.find(travelNeed => travelNeed.get('passengerType.isCompanion')));\n      return extraPassObjects;\n    }),\n    init: function () {\n      this._super(...arguments);\n\n      const travelNeedTypeModelName = this.get('extra.travelNeedTypeModelName');\n      const passengerTypeModelName = this.get('extra.passengerTypeModelName');\n      this.set('travelNeedTypes', this.get('store').peekAll(travelNeedTypeModelName));\n      this.set('passengerTypes', this.get('store').peekAll(passengerTypeModelName));\n      this.setupNewEquipments();\n      this.setupNewExtraPassengers();\n    },\n    clientPassengerType: function () {\n      const passengerTypes = this.get('passengerTypes');\n      return passengerTypes.find(types => types.isClient);\n    },\n    serviceAnimalTravelNeedType: function () {\n      const travelNeedTypes = this.get('travelNeedTypes');\n      return travelNeedTypes.find(types => types.isServiceAnimal);\n    },\n    ambulatoryTravelNeedType: function () {\n      const travelNeedTypes = this.get('travelNeedTypes');\n      return travelNeedTypes.find(types => types.isAmbulatory);\n    },\n    pcaPassengerType: function () {\n      const passengerTypes = this.get('passengerTypes');\n      return passengerTypes.find(types => types.isPca);\n    },\n    companionPassengerType: function () {\n      const passengerTypes = this.get('passengerTypes');\n      return passengerTypes.find(types => types.isCompanion);\n    },\n    setupNewEquipments: function () {\n      const currentTravelNeeds = this.get('record.equipments');\n      const newTravelNeeds = []; // add other travel need types that this person does not have\n      // with empty count\n\n      this.get('travelNeedTypes').map(travelNeedType => {\n        if (!travelNeedType.isServiceAnimal && _lodash.default.findIndex(currentTravelNeeds, travelNeed => {\n          return travelNeed.get('travelNeedType.id') === travelNeedType.id;\n        }) < 0) {\n          const newRecord = this.get('store').createRecord(this.get('modelName'));\n          newRecord.set('travelNeedType', travelNeedType);\n          newRecord.set('passengerType', this.clientPassengerType());\n          newTravelNeeds.push(newRecord);\n        }\n      });\n      this.set('record.newTravelNeeds', newTravelNeeds);\n    },\n    setupNewExtraPassengers: function () {\n      const currentTravelNeeds = this.get('record.extraPassengers');\n      const newTravelNeeds = [];\n      let retVal; // add service animal travel need type if this rider does not have\n      // in current travel needs. leave count as empty\n\n      retVal = currentTravelNeeds.find(travelNeed => travelNeed.get('travelNeedType.isServiceAnimal'));\n\n      if (_lodash.default.isUndefined(retVal)) {\n        const newRecord = this.get('store').createRecord(this.get('modelName'));\n        this.set('serviceAnimalState', false);\n        newRecord.set('travelNeedType', this.serviceAnimalTravelNeedType());\n        newRecord.set('passengerType', this.clientPassengerType());\n        newTravelNeeds.push(newRecord);\n      } else {\n        this.set('serviceAnimalState', retVal.get('count') > 0);\n      } // add pca passenger type for this rider if it does not have\n      // in current travel needs. leave count as empty\n\n\n      retVal = currentTravelNeeds.find(travelNeed => {\n        return travelNeed.get('passengerType.isPca');\n      });\n\n      if (_lodash.default.isUndefined(retVal)) {\n        const newRecord = this.get('store').createRecord(this.get('modelName'));\n        this.set('pcaState', false);\n        newRecord.set('travelNeedType', this.ambulatoryTravelNeedType());\n        newRecord.set('passengerType', this.pcaPassengerType());\n        newTravelNeeds.push(newRecord);\n      } else {\n        this.set('pcaState', retVal.get('count') > 0);\n      } // add companion passenger type for this rider if it does not have\n      // in current travel needs. leave count as empty\n\n\n      retVal = currentTravelNeeds.find(travelNeed => travelNeed.get('passengerType.isCompanion'));\n\n      if (_lodash.default.isUndefined(retVal)) {\n        const newRecord = this.get('store').createRecord(this.get('modelName'));\n        newRecord.set('travelNeedType', this.ambulatoryTravelNeedType());\n        newRecord.set('passengerType', this.companionPassengerType());\n        newTravelNeeds.push(newRecord);\n      }\n\n      this.get('record.newTravelNeeds').addObjects(newTravelNeeds);\n    },\n    actions: {\n      onInput(record, valuePath, value) {\n        const options = {\n          record,\n          valuePath\n        };\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(parseInt(value, 10), options);\n      },\n\n      onAddNewTravelNeed(record) {\n        const travelNeed = record.get('newTravelNeeds').find(currTravelNeed => {\n          return currTravelNeed.status === STATUS_TYPE_AVAILABLE && currTravelNeed.isEquipment;\n        });\n\n        if (!Ember.isNone(travelNeed)) {\n          travelNeed.set('status', STATUS_TYPE_ADDED);\n        }\n      },\n\n      onTravelNeedTypeChange(oldTravelNeed, newTravelNeed) {\n        oldTravelNeed.set('status', STATUS_TYPE_AVAILABLE);\n        oldTravelNeed.set('count', 0);\n        newTravelNeed.set('status', STATUS_TYPE_ADDED);\n      },\n\n      onRemoveTravelNeed(record, valuePath, value) {\n        const options = {\n          record,\n          valuePath\n        };\n\n        if (!Ember.isNone(record)) {\n          record.set('status', STATUS_TYPE_AVAILABLE);\n        }\n\n        this.get('onRemove')(value, options);\n      },\n\n      onPCAChange(record, valuePath\n      /*, value*/\n      ) {\n        this.toggleProperty('pcaState');\n        const options = {\n          record,\n          valuePath\n        };\n        const pcaState = this.get('pcaState') ? 1 : 0;\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(pcaState, options);\n      },\n\n      onServiceAnimalChange(record, valuePath\n      /*, value*/\n      ) {\n        this.toggleProperty('serviceAnimalState');\n        const options = {\n          record,\n          valuePath\n        };\n        const serviceAnimalState = this.get('serviceAnimalState') ? 1 : 0;\n        this.set('record.isForceDirty', true);\n        this.get('onChange')(serviceAnimalState, options);\n      },\n\n      onPassengerTypeChange(record, valuePath, value) {\n        const options = {\n          record,\n          valuePath\n        };\n        this.get('onChange')(value, options);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/form-components/travel-needs/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"jEJQ203Z\",\n    \"block\": \"{\\\"symbols\\\":[\\\"travelNeed\\\",\\\"travelNeed\\\",\\\"option\\\",\\\"option\\\"],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"table-div\\\"],[9],[0,\\\"\\\\n\\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 travel-need-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"equipments\\\"]]],null,{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,2,[\\\"status\\\"]],\\\"existing\\\"],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"disabled\\\",\\\"onchange\\\"],[[23,[\\\"newEquipments\\\"]],[22,2,[]],[27,\\\"readonly\\\",[true],null],[27,\\\"action\\\",[[22,0,[]],\\\"onTravelNeedTypeChange\\\"],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,4,[\\\"travelNeedType\\\",\\\"displayName\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control countInput\\\"],[11,\\\"min\\\",\\\"0\\\"],[11,\\\"max\\\",\\\"10\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,2,[]],[23,[\\\"countPath\\\"]]],null]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,2,[]],[23,[\\\"countPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"number\\\"],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onRemoveTravelNeed\\\",[22,2,[]],[23,[\\\"countPath\\\"]],[23,[\\\"target\\\",\\\"value\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-trash-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,2,[\\\"status\\\"]],\\\"added\\\"],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"newEquipments\\\"]]],null],[27,\\\"readonly\\\",[[22,2,[]]],null],false,[27,\\\"action\\\",[[22,0,[]],\\\"onTravelNeedTypeChange\\\",[22,2,[]]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,3,[\\\"travelNeedType\\\",\\\"displayName\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control countInput\\\"],[11,\\\"min\\\",\\\"0\\\"],[11,\\\"max\\\",\\\"10\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,2,[]],[23,[\\\"countPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"\\\"],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,2,[]],[23,[\\\"countPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"number\\\"],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onRemoveTravelNeed\\\",[22,2,[]],[23,[\\\"countPath\\\"]],[23,[\\\"target\\\",\\\"value\\\"]]],null]],[11,\\\"class\\\",\\\"btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-trash-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[0,\\\" \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[2]},null],[0,\\\"  \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"3\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onAddNewTravelNeed\\\",[23,[\\\"record\\\"]]],null]],[11,\\\"class\\\",\\\"multitype-button btn btn-outline-secondary\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-plus\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n        Add New Travel Need\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"table-div\\\"],[9],[0,\\\"\\\\n\\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3 travel-need-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"extraPassengers\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[22,1,[\\\"isExtraPassenger\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"travelNeedType\\\",\\\"name\\\"]],\\\"serviceAnimal\\\"],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label switch-cell-label\\\"],[9],[1,[22,1,[\\\"travelNeedType\\\",\\\"displayName\\\"]],false],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"onoffswitch\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"id\\\",\\\"serviceAnimalSwitch\\\"],[11,\\\"class\\\",\\\"form-control countInput onoffswitch-checkbox\\\"],[12,\\\"checked\\\",[21,\\\"serviceAnimalState\\\"]],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[\\\"travelNeedType\\\",\\\"name\\\"]],\\\"serviceAnimal\\\",[23,[\\\"ravelNeed\\\"]],[23,[\\\"countPath\\\"]]],null]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onServiceAnimalChange\\\",[22,1,[]],[23,[\\\"countPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"onoffswitch-label\\\"],[11,\\\"for\\\",\\\"serviceAnimalSwitch\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"onoffswitch-inner\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"onoffswitch-switch\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"passengerType\\\",\\\"name\\\"]],\\\"pca\\\"],null]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label switch-cell-label\\\"],[9],[0,\\\"PCA\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"onoffswitch\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[11,\\\"id\\\",\\\"pcaSwitch\\\"],[11,\\\"class\\\",\\\"form-control countInput onoffswitch-checkbox\\\"],[12,\\\"checked\\\",[21,\\\"pcaState\\\"]],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[\\\"passengerType\\\",\\\"name\\\"]],\\\"pca\\\",[22,1,[]],[23,[\\\"countPath\\\"]]],null]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onPCAChange\\\",[22,1,[]],[23,[\\\"countPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"onoffswitch-label\\\"],[11,\\\"for\\\",\\\"pcaSwitch\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"onoffswitch-inner\\\"],[9],[10],[0,\\\"\\\\n                \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"onoffswitch-switch\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Companion\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control countInput\\\"],[11,\\\"min\\\",\\\"0\\\"],[11,\\\"max\\\",\\\"10\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,1,[]],[23,[\\\"countPath\\\"]]],null]],null]],[11,\\\"placeholder\\\",\\\"\\\"],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\",[22,1,[]],[23,[\\\"countPath\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"number\\\"],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"button-cell\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/form-components/travel-needs/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/base-widget/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    workspace: Ember.inject.service(),\n    classNames: ['dashboard-widget'],\n    classNameBindings: ['disabled'],\n    // override with per-widget static configuration\n    config: null,\n    // widget model (see: `app/classes/widget.js`)\n    widget: null,\n    width: Ember.computed.alias('widget.width'),\n    height: Ember.computed.alias('widget.height'),\n    state: Ember.computed.alias('widget.state'),\n    isEditing: Ember.computed.alias('workspace.isEditing'),\n    disabled: Ember.computed.readOnly('isEditing'),\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this._resizeObserver = new ResizeObserver(() => {\n        Ember.run.debounce(this, 'onWidgetResize', 250);\n      });\n\n      this._resizeObserver.observe(this.$()[0]);\n    },\n\n    willDestroyElement() {\n      this._super(...arguments);\n\n      if (this._resizeObserver) {\n        this._resizeObserver.disconnect();\n\n        this._resizeObserver = null;\n      }\n    },\n\n    didRender() {\n      this._super(...arguments); //TODO better way to do\n      //$(\"input.can-focus[type='checkbox']:checked\").closest('tr').css('background-color', 'yellow');\n      // $(\"input.can-focus[type='checkbox']:not(:checked)\").closest('tr').css('background-color', 'white');\n\n\n      Ember.$(\"input.can-focus[type='checkbox']:checked\").each(function () {\n        let firstRow = Ember.$(this).closest('tr');\n\n        if (firstRow) {\n          firstRow.css('background-color', 'yellow'); //firstRow.addClass('checkbox_row_heighlighted');\n        }\n      });\n      Ember.$(\"input.can-focus[type='checkbox']:not(:checked)\").each(function () {\n        let firstRow = Ember.$(this).closest('tr');\n\n        if (firstRow) {\n          //firstRow.removeClass('checkbox_row_heighlighted');\n          firstRow.css('background-color', 'white');\n          Ember.$(this).closest('tr:nth-child(2n-1)').css('background-color', 'rgba(230, 231, 235, .4)');\n        }\n      });\n    },\n\n    // override this to resize 3rd party integrations (e.g. map)\n    onWidgetResize() {}\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/chartjs-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/base-widget/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    classNames: ['analytics-widget'],\n    colors: Ember.computed('', function () {\n      return ['#8BA6BD', '#AE9FBA', '#D3DDE6', '#ABCAE4', '#E3EBF0', '#CFD5DD', '#D6DEE3'];\n    }),\n    warningColor: Ember.computed('', function () {\n      return '#FF9300';\n    }),\n    urgentColor: Ember.computed('', function () {\n      return '#D0021B';\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/chartjs-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"L1kkZ/5M\",\n    \"block\": \"{\\\"symbols\\\":[\\\"&default\\\"],\\\"statements\\\":[[14,1]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/generic-widgets/chartjs-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/column-widget/classes/checkbox-row\", [\"exports\", \"ember-light-table/classes/Row\"], function (_exports, _Row) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  class CheckboxRow extends _Row.default {}\n\n  _exports.default = CheckboxRow;\n  CheckboxRow.reopen({\n    activeContext: null,\n    isLastChecked: false,\n    isSelected: false,\n    record: Ember.computed.alias('content'),\n    id: Ember.computed.alias('content.id'),\n    isChecked: Ember.computed('activeContext.checkedItems.[]', {\n      get()\n      /*key*/\n      {\n        const record = this.get('record');\n        return this.get('activeContext').isRecordChecked(record);\n      },\n\n      set(key, value) {\n        const record = this.get('record');\n        this.get('activeContext').setRecordsChecked([record], value);\n        return value;\n      }\n\n    })\n  });\n});","define(\"adept-iq/pods/components/generic-widgets/column-widget/classes/data-join\", [\"exports\", \"adept-iq/utils/data-join\", \"adept-iq/pods/components/generic-widgets/column-widget/classes/checkbox-row\"], function (_exports, _dataJoin, _checkboxRow) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  // if only making a few modificatons, it's faster to do them individually;\n  // at some point, its faster to replace all in one go\n  const FULL_REPLACE_THRESHOLD = 0;\n\n  var _default = _dataJoin.default.extend({\n    table: null,\n    activeContext: null,\n\n    initialize(record) {\n      const row = new _checkboxRow.default(record);\n      row.set('activeContext', this.get('activeContext'));\n      return row;\n    },\n\n    join()\n    /* collection */\n    {\n      this._super(...arguments);\n\n      const rows = this.get('nodes');\n      const tableRows = this.get('table.rows');\n\n      if (rows.length === 0) {\n        tableRows.clear();\n        return;\n      }\n\n      if (tableRows.length === 0) {\n        tableRows.pushObjects(rows);\n        return;\n      }\n\n      const rowIds = rows.mapBy('id');\n      const tableRowIds = tableRows.mapBy('id');\n\n      const isSubSequence = this._isSubSequence(rowIds, tableRowIds);\n\n      const isSuperSequence = this._isSubSequence(tableRowIds, rowIds);\n\n      const sizeDiff = Math.abs(tableRows.length, rows.length); // these optimizations make single insertions and deletions faster\n\n      if (isSubSequence && isSuperSequence) {\n        // rows sets are equal; nothing to do\n        return;\n      } else if (isSubSequence && sizeDiff < FULL_REPLACE_THRESHOLD) {\n        rows.forEach((row, i) => {\n          while (tableRows[i].get('id') !== row.get('id')) {\n            tableRows.removeAt(i);\n          }\n        });\n      } else if (isSuperSequence && sizeDiff < FULL_REPLACE_THRESHOLD) {\n        rows.forEach((row, i) => {\n          if (i >= tableRows.length || tableRows[i].get('id') !== row.get('id')) {\n            tableRows.insertAt(i, row);\n          }\n        });\n      } else {\n        // update by full replacement\n        tableRows.clear();\n        tableRows.pushObjects(rows);\n      }\n    },\n\n    exit(row) {\n      row.setProperties({\n        isSelected: false,\n        isLastChecked: false\n      });\n    },\n\n    release(row) {\n      row.destroy();\n    },\n\n    _isSubSequence(arr1, arr2) {\n      let i = 0;\n      let j = 0;\n\n      while (i < arr1.length && j < arr2.length) {\n        const a = arr1[i];\n        const b = arr2[j];\n\n        if (a === b) {\n          i += 1;\n          j += 1;\n        } else {\n          j += 1;\n        }\n      }\n\n      return i === arr1.length;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/column-widget/classes/filter-column\", [\"exports\", \"ember-light-table/classes/Column\", \"adept-iq/config/column-types\", \"adept-iq/config/filter-types\", \"adept-iq/utils/filters\"], function (_exports, _Column, _columnTypes, _filterTypes, _filters) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  class FilterColumn extends _Column.default {}\n\n  _exports.default = FilterColumn;\n  FilterColumn.reopen({\n    id: null,\n    config: null,\n    filterTypeId: null,\n    filterValues: null,\n    valuePathMap: Ember.computed('valuePaths', function () {\n      const valuePaths = this.get('valuePaths');\n      if (!valuePaths) return {};\n      const valuePathMap = valuePaths.reduce((obj, {\n        modelName,\n        valuePath\n      }) => {\n        obj[modelName] = valuePath;\n        return obj;\n      }, {});\n      return valuePathMap;\n    }),\n    columnType: Ember.computed('config.type', function () {\n      const columnTypeId = this.get('config.type');\n\n      const columnType = _columnTypes.default.findBy('id', columnTypeId);\n\n      if (!columnType) {\n        /*eslint-disable */\n        throw `no column type with id '${columnTypeId}'`;\n        /*eslint-enable */\n      }\n\n      return columnType;\n    }),\n    filterType: Ember.computed('filterTypeId', function () {\n      const filterTypeId = this.get('filterTypeId');\n      const filterType = _filterTypes.filterTypesHash[filterTypeId];\n\n      if (!filterType) {\n        return _filterTypes.nullFilter;\n      }\n\n      return filterType;\n    }),\n    filterTypes: Ember.computed('columnType', function () {\n      const columnType = this.get('columnType');\n      return columnType.filterTypes;\n    }),\n    isFiltered: Ember.computed('filterType', 'filterValues', function () {\n      const filterType = this.get('filterType');\n      const filterValues = this.get('filterValues');\n      return (0, _filters.testFilterValues)(filterType, filterValues);\n    }),\n    filterNode: Ember.computed('filterType', 'filterValues', 'config.valuePath', function () {\n      const filterType = this.get('filterType');\n      let filterValues = this.get('filterValues') || [];\n      if (!(0, _filters.testFilterValues)(filterType, filterValues)) return null;\n      filterValues = filterValues.map(filterType.parseValue);\n      const valuePath = this.get('config.valuePath');\n      return (0, _filters.buildValueFilterNode)(filterType, valuePath, filterValues);\n    })\n  });\n});","define(\"adept-iq/pods/components/generic-widgets/column-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/base-widget/component\", \"ember-light-table\", \"moment\", \"adept-iq/pods/components/generic-widgets/column-widget/classes/data-join\", \"adept-iq/pods/components/generic-widgets/column-widget/classes/filter-column\", \"adept-iq/pods/components/generic-widgets/column-widget/utils/compute-ordered-ids\", \"ember-concurrency\", \"papaparse\", \"adept-iq/utils/focus_column_widget_row\", \"ember-keyboard-shortcuts\", \"lodash\"], function (_exports, _component, _emberLightTable, _moment, _dataJoin, _filterColumn, _computeOrderedIds, _emberConcurrency, _papaparse, _focus_column_widget_row, _emberKeyboardShortcuts, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const DEFAULT_COLUMN_WIDTH = 100;\n  const MIN_COLUMN_WIDTH = 50;\n  const CHECKBOX_COLUMN_WIDTH = 30; // number of records to load at a time while scrolling\n\n  const PAGINATION_LIMIT = 50; // time to wait between refreshing adjacent widgets\n\n  const STAGGERING_INTERVAL = 150;\n\n  const toPixels = x => `${x}px`;\n\n  const fromPixels = x => parseInt(x.split('px')[0], 10);\n\n  var _default = _component.default.extend({\n    workspace: Ember.inject.service(),\n    maximizer: Ember.inject.service(),\n    stopsReorder: Ember.inject.service(),\n    store: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    classNames: ['column-widget'],\n    classNameBindings: ['disabled'],\n    // overload this with a static config object\n    config: null,\n    limit: PAGINATION_LIMIT,\n    offset: 0,\n    paginationEnabled: true,\n    tableActions: null,\n    allowedTableActions: null,\n    singleActions: null,\n    bulkActions: null,\n    records: null,\n    searchText: '',\n    isSearchEnabled: false,\n    isSearchAllowed: false,\n    isFilterAllowed: false,\n    isCellEditAllowed: false,\n    table: null,\n    dataJoin: null,\n    lastRowClicked: false,\n    inlineRowMenu: null,\n    inlineRowMenuPosition: null,\n    keyboardShortcuts: null,\n    accessKey: null,\n    sortId: Ember.computed.alias('widget.state.sortId'),\n    sortAsc: Ember.computed.alias('widget.state.sortAsc'),\n    tileSize: Ember.computed.alias('workspace.tileSize'),\n    tileSpacing: Ember.computed.alias('workspace.tileSpacing'),\n    isLoading: Ember.computed.alias('fetchDataTask.isRunning'),\n    isError: Ember.computed.alias('fetchDataTask.last.isError'),\n    useBulkActions: Ember.computed.gt('checkedRowsCount', 1),\n    isRowInCheckedRows: Ember.computed('lastRowClicked', 'table.rows', function () {\n      const lastRowClicked = this.get('lastRowClicked');\n      const checkedRows = this.get('table.rows').filterBy('isChecked');\n\n      if (!lastRowClicked) {\n        return false;\n      }\n\n      return checkedRows.some(row => row.get('content.id') === lastRowClicked.get('id'));\n    }),\n    showBulkActions: Ember.computed.and('useBulkActions', 'isRowInCheckedRows'),\n    showSingleActions: Ember.computed.equal('showBulkActions', false),\n    checkedRowsCount: Ember.computed('table.rows.@each.isChecked', function () {\n      return this.get('table.rows').filterBy('isChecked').length;\n    }),\n    isFiltered: Ember.computed('table.columns.@each.{isFiltered}', function () {\n      return this.get('table.columns').isAny('isFiltered');\n    }),\n    tableColumns: Ember.computed('config.columns', function () {\n      let tableColumns = [{\n        id: 'checkbox',\n        valuePath: 'checked',\n        cellComponent: 'table/cells/check-box',\n        component: 'table/columns/check-box',\n        sortable: false,\n        width: toPixels(CHECKBOX_COLUMN_WIDTH)\n      }];\n\n      if (this.get('config.checkBoxColumn') !== undefined && !this.get('config.checkBoxColumn')) {\n        tableColumns = [];\n      }\n\n      const columnConfigs = this.get('config.columns');\n      const orderedColumnIds = (0, _computeOrderedIds.default)(columnConfigs);\n      orderedColumnIds.forEach(id => {\n        const config = columnConfigs.findBy('id', id);\n        const tableColumn = {\n          id: id,\n          component: 'table/columns/filter-capable',\n          label: config.label,\n          cellDesc: config.cellDesc,\n          valuePath: `record.${config.valuePath}`,\n          valuePaths: config.valuePaths,\n          hidden: config.hidden || config.unAvailable,\n          resizable: true,\n          minResizeWidth: MIN_COLUMN_WIDTH,\n          width: toPixels(config.defaultWidth || DEFAULT_COLUMN_WIDTH),\n          config\n        };\n\n        if (config.editable && this.isCellEditAllowed) {\n          if (config.type === 'enum') {\n            tableColumn.cellComponent = 'table/cells/user-editable-enum';\n            tableColumn.options = config.options;\n            tableColumn.allowMultiple = config.allowMultiple;\n          } else {\n            tableColumn.cellComponent = 'table/cells/user-editable';\n          }\n        } else if (config.type.includes('enum')) {\n          tableColumn.cellComponent = 'table/cells/text-extension';\n        } else {\n          tableColumn.cellComponent = 'table/cells/base-cell';\n        }\n\n        if (config.highlightable) {\n          tableColumn.cellClassNames = ['highlightable'];\n        }\n\n        if (['date', 'datetime', 'time', 'datetimeflatpickr'].includes(config.type) && config.format) {\n          tableColumn.format = value => {\n            return Ember.isEmpty(value) ? value : (0, _moment.default)(value).format(config.format);\n          };\n\n          switch (config.type) {\n            case 'date':\n            case 'datetimeflatpickr':\n            case 'datetime':\n              tableColumn.parse = value => {\n                return (0, _moment.default)(value, config.format).toDate();\n              };\n\n              break;\n\n            case 'time':\n              tableColumn.parse = (timeString, originalValue) => {\n                const date = (0, _moment.default)(originalValue).format('YYYY-MM-DD');\n                const newValue = (0, _moment.default)(`${date} ${timeString}`, 'YYYY-MM-DD hh:mm A').toDate();\n                return newValue;\n              };\n\n              break;\n\n            default:\n              break;\n          }\n        }\n\n        tableColumns.push(tableColumn);\n      }); // fills the rest of the space with an empty column\n\n      tableColumns.push({\n        id: 'spacer',\n        width: '100%',\n        sortable: false,\n        isResizable: false\n      });\n      return tableColumns;\n    }),\n    canLoadMore: Ember.computed('paginationEnabled', 'offset', 'limit', 'records.length', function () {\n      if (!this.get('paginationEnabled')) {\n        return false;\n      }\n\n      const offset = this.get('offset');\n      const limit = this.get('limit');\n      const recordsLength = this.get('records.length') || 0;\n      return offset + limit < recordsLength;\n    }),\n\n    init() {\n      this._super(...arguments);\n\n      const table = new _emberLightTable.default([], [], {\n        enableSync: false\n      });\n\n      const dataJoin = _dataJoin.default.create({\n        table,\n        activeContext: this.get('activeContext')\n      });\n\n      this.setProperties({\n        table,\n        dataJoin,\n        records: [],\n        tableActions: [{\n          id: 'print',\n          name: 'Download',\n          action: () => {\n            this.exportData();\n          }\n        }]\n      });\n\n      if (!Ember.isEmpty(this.get('config.addAccessKey')) && !Ember.isEmpty(this.get('config.accessKey'))) {\n        const keyboardShortcuts = {\n          [this.get('config.addAccessKey')]: {\n            action: 'createNew',\n            // action to trigger\n            global: true,\n            preventDefault: true\n          },\n          ['ctrl+' + this.get('config.accessKey')]: {\n            action: 'focusFirstItem',\n            // action to trigger\n            global: true,\n            preventDefault: true\n          }\n        };\n        this.set('keyboardShortcuts', keyboardShortcuts);\n        this.set('accessKey', 'ctrl+' + this.get('config.accessKey'));\n      } else if (!Ember.isEmpty(this.get('config.accessKey'))) {\n        const keyboardShortcuts = {\n          ['ctrl+' + this.get('config.accessKey')]: {\n            action: 'focusFirstItem',\n            // action to trigger\n            global: true,\n            preventDefault: true\n          }\n        };\n        this.set('keyboardShortcuts', keyboardShortcuts);\n        this.set('accessKey', 'ctrl+' + this.get('config.accessKey'));\n      }\n\n      this.set('allowedTableActions', this.get('tableActions'));\n      this.configureSearchFilterPermission();\n\n      if (!this.get('config.isFormControls')) {\n        this.set('widget.models', _lodash.default.castArray(this.get('config.modelName')));\n      }\n    },\n\n    configureSearchFilterPermission() {\n      const configPermissions = this.get('workspace.configPermissions');\n      const widgetTypeId = this.get('widget.typeId');\n\n      if (!Ember.isNone(configPermissions) && !Ember.isNone(configPermissions[widgetTypeId])) {\n        const configPermission = configPermissions[widgetTypeId];\n\n        if (!Ember.isNone(configPermission.searchAllowed)) {\n          this.set('isSearchAllowed', configPermission.searchAllowed);\n        }\n\n        if (!Ember.isNone(configPermission.filterAllowed)) {\n          this.set('isFilterAllowed', configPermission.filterAllowed);\n        }\n\n        if (!Ember.isNone(configPermission.cellEditAllowed)) {\n          this.set('isCellEditAllowed', configPermission.cellEditAllowed);\n        }\n      }\n    },\n\n    exportData() {\n      const table = this.get('table');\n      const columns = table.get('columns').rejectBy('hidden');\n      const rows = table.get('rows');\n      const fields = columns.reduce((arr, column) => {\n        const id = column.get('id');\n\n        if (['checkbox', 'spacer'].includes(id)) {\n          return arr;\n        }\n\n        const label = column.get('label');\n        arr.push(label);\n        return arr;\n      }, []);\n      const data = rows.map(row => {\n        return columns.reduce((arr, column) => {\n          const config = column.get('config');\n          const id = column.get('id');\n\n          if (['checkbox', 'spacer'].includes(id)) {\n            return arr;\n          }\n\n          const valuePath = column.get('valuePath');\n          let value = row.get(valuePath);\n\n          if (config.type.includes('enum') && Ember.isPresent(value)) {\n            let values = null;\n\n            if (Ember.isPresent(value.values)) {\n              values = value.values.map(obj => obj.value);\n              value = values.join(';');\n            }\n          }\n\n          arr.push(value);\n          return arr;\n        }, []);\n      });\n\n      const csv = _papaparse.default.unparse({\n        fields,\n        data\n      }, {\n        quotes: true,\n        quoteChar: '\"',\n        escapeChar: '\"'\n      });\n\n      const link = document.createElement('a');\n      const timestamp = (0, _moment.default)().format('YYYY-MM-DD_HH-MM-SS');\n      const {\n        title\n      } = this.get('config');\n      const filename = `${timestamp}_${title}.csv`;\n      const blob = new Blob([csv], {\n        type: 'text/csv;charset=utf-8;'\n      });\n      const url = URL.createObjectURL(blob);\n      link.setAttribute('href', url);\n      link.setAttribute('download', filename);\n      link.style.visibility = 'hidden';\n      document.body.appendChild(link);\n      link.click();\n      document.body.removeChild(link);\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this._onKeyDown = event => {\n        Ember.run.schedule('actions', this, 'onKeyDown', event);\n      };\n\n      this.$().on('keydown', this._onKeyDown);\n\n      this._onMouseDown = event => {\n        Ember.run.schedule('actions', this, 'onMouseDown', event);\n      };\n\n      this.$().on('mousedown', this._onMouseDown);\n\n      this._onDoubleClick = event => {\n        Ember.run.schedule('actions', this, 'onDoubleClick', event);\n      };\n\n      this.$().on('dblclick', this._onDoubleClick);\n\n      if (!this.get('config')) {\n        // eslint-disable-next-line\n        throw 'static config property not found';\n      }\n\n      if (!Ember.isEmpty(this.get('keyboardShortcuts'))) {\n        (0, _emberKeyboardShortcuts.bindKeyboardShortcuts)(this);\n      }\n\n      this.onTableColumnsChange();\n      this.onWidgetStateChange();\n      this.onRecordsChange();\n      Ember.run.scheduleOnce('afterRender', this, 'resizeBody');\n      Ember.run.scheduleOnce('afterRender', this, 'refreshData');\n    },\n\n    willDestroyElement() {\n      if (!Ember.isEmpty(this.get('keyboardShortcuts'))) {\n        (0, _emberKeyboardShortcuts.unbindKeyboardShortcuts)(this);\n      }\n\n      this.$().off('keydown', this._onKeyDown);\n      this.$().off('mousedown', this._onMouseDown);\n      this.get('dataJoin').clear();\n\n      this._super(...arguments);\n    },\n\n    setTableColumns() {\n      const table = this.get('table');\n      const tableColumns = this.get('tableColumns');\n      table.set('columns', tableColumns.map(col => new _filterColumn.default(col)));\n    },\n\n    updateTableColumns() {\n      const state = this.get('widget.state') || {};\n      const config = this.get('config') || {};\n      const columns = this.get('table.columns');\n      let shouldResize = false;\n      let scrollLeft;\n      const body = this.$('.column-widget-body');\n\n      if (body) {\n        scrollLeft = this.$('.column-widget-body').scrollLeft();\n      }\n\n      if (columns) {\n        columns.forEach(column => {\n          const sortId = state.sortId || config.defaultSortId;\n\n          if (Ember.isPresent(sortId) && sortId === column.get('id')) {\n            let sortAsc;\n\n            if (!Ember.isEmpty(state) && Ember.isPresent(state.sortAsc)) {\n              sortAsc = state.sortAsc;\n            } else if (Ember.isPresent(config.defaultSortAsc)) {\n              sortAsc = config.defaultSortAsc;\n            } else {\n              sortAsc = true;\n            }\n\n            column.set('sorted', true);\n            column.set('ascending', sortAsc);\n          } else {\n            column.set('sorted', false);\n          }\n        });\n      }\n\n      const columnsHash = state.columns || {};\n      Object.entries(columnsHash).forEach(([id, columnState]) => {\n        const column = columns.findBy('id', id);\n\n        if (!column) {\n          return;\n        }\n\n        if (!Ember.isEmpty(state) && Ember.isPresent(columnState.hidden)) {\n          column.set('hidden', columnState.hidden);\n          shouldResize = true;\n        }\n\n        if (Ember.isPresent(columnState.index)) {\n          // +/- 1 accounts for checkbox column\n          const oldIndex = columns.indexOf(column) - 1;\n\n          if (columnState.index !== oldIndex) {\n            const swapColumn = columns.objectAt(1 + columnState.index);\n            columns.replace(1 + columnState.index, 1, [column]);\n            columns.replace(1 + oldIndex, 1, [swapColumn]);\n            shouldResize = true;\n          }\n        }\n\n        const wasFiltered = column.get('isFiltered');\n        ['filterTypeId', 'filterValues'].forEach(prop => {\n          // allow null value to overwrite\n          if (!columnState.hasOwnProperty(prop)) {\n            return;\n          }\n\n          column.set(prop, columnState[prop]);\n        });\n\n        if (wasFiltered || column.get('isFiltered')) {\n          Ember.run.scheduleOnce('afterRender', this, 'refreshData');\n        }\n\n        if (Ember.isPresent(columnState.width)) {\n          column.set('width', toPixels(columnState.width));\n        }\n      });\n\n      if (shouldResize) {\n        // resize at end of _next_ loop so that all changes are applied\n        Ember.run.next(() => {\n          Ember.run.scheduleOnce('afterRender', this, 'resizeBody');\n\n          if (Ember.isPresent(scrollLeft)) {\n            // wait an additional loop before restoring scroll position\n            Ember.run.next(() => {\n              Ember.run.scheduleOnce('afterRender', this, 'setScrollLeft', scrollLeft);\n            });\n          }\n        });\n      }\n    },\n\n    resizeBody() {\n      const table = this.$('.lt-head-wrap table');\n      const widgetBody = this.$('.column-widget-body');\n\n      if (!table && !widgetBody) {\n        return;\n      }\n\n      const tableWidth = table ? table.width() : -Infinity;\n      const widgetWidth = widgetBody ? widgetBody.width() : -Infinity;\n      const width = Math.max(tableWidth, widgetWidth);\n      this.$('.ember-light-table').width(width);\n    },\n\n    refreshData() {\n      this.get('fetchDataTask').perform().then(() => {\n        if (this.get('activeContext.refreshInProgress')) {\n          this.set('activeContext.refreshInProgress', false);\n        }\n      }).catch(err => {\n        if (this.get('activeContext.refreshInProgress')) {\n          this.set('activeContext.refreshInProgress', false);\n        }\n\n        if (!(0, _emberConcurrency.didCancel)(err)) {\n          throw err;\n        } // @TODO: log error\n\n      });\n    },\n\n    clearData() {\n      this.set('records', []);\n      this.set('offset', 0);\n    },\n\n    fetchMoreData() {\n      if (!this.get('canLoadMore')) {\n        return;\n      }\n\n      const limit = this.get('limit');\n      let offset = this.get('offset');\n      offset += limit;\n      this.set('offset', offset);\n    },\n\n    setScrollLeft(scrollLeft) {\n      if (!this.$('.column-widet-body')) {\n        return;\n      }\n\n      this.$('.column-widget-body').scrollLeft(scrollLeft);\n    },\n\n    getWidgetIndex() {\n      if (this.get('maximizer.maximizedWidget') || !Ember.isPresent(this.element.closest('.grid-stack'))) {\n        return null;\n      }\n\n      const gridStack = this.element.closest('.grid-stack');\n      const gridStackItems = Array.from(gridStack.children).sort((a, b) => {\n        const yDiff = parseInt(a.getAttribute('data-gs-y'), 10) - parseInt(b.getAttribute('data-gs-y'), 10);\n\n        if (yDiff === 0) {\n          return parseInt(a.getAttribute('data-gs-x'), 10) - parseInt(b.getAttribute('data-gs-x'), 10);\n        }\n\n        return yDiff;\n      });\n      const gridStackItem = this.element.closest('.grid-stack-item');\n      return gridStackItems.indexOf(gridStackItem);\n    },\n\n    doReSort() {\n      Ember.run.debounce(this, 'reSort', 300);\n    },\n\n    reSort() {\n      this.updateTableColumns();\n      this.refreshData();\n    },\n\n    fetchDataTask: (0, _emberConcurrency.task)(function* () {\n      const records = yield this.fetchDataQuery();\n      yield (0, _emberConcurrency.timeout)(STAGGERING_INTERVAL * this.getWidgetIndex());\n      this.set('records', records);\n      this.set('offset', 0);\n    }).restartable(),\n    onRecordsChange: Ember.observer('records', 'offset', function () {\n      const limit = this.get('limit');\n      const offset = this.get('offset');\n      const records = this.get('records').slice(0, offset + limit);\n      this.get('dataJoin').join(records);\n      Ember.run.scheduleOnce('afterRender', this, 'resizeBody');\n    }),\n    onTableColumnsChange: Ember.observer('tableColumns', function () {\n      Ember.run.scheduleOnce('afterRender', this, 'setTableColumns');\n      Ember.run.scheduleOnce('afterRender', this, 'updateTableColumns');\n    }),\n    onWidthChange: Ember.observer('width', function () {\n      Ember.run.scheduleOnce('afterRender', this, 'resizeBody');\n    }),\n    onWidgetStateChange: Ember.observer('widget.state', function () {\n      Ember.run.scheduleOnce('afterRender', this, 'updateTableColumns');\n    }),\n    onTableActionsChange: Ember.observer('tableActions.[]', function () {\n      this.reConfigureTableActions();\n    }),\n\n    reConfigureTableActions() {\n      const configPermissions = this.get('workspace.configPermissions');\n      const actions = []; //TODO when permission implemented\n\n      this.get('tableActions').forEach(currAction => actions.push(currAction));\n      this.set('allowedTableActions', actions);\n      /*if (!isNone(configPermissions)) {\n        const configPermission = configPermissions[this.get('widget.typeId')];\n         if (!isNone(configPermission) && !isNone(this.get('tableActions'))) {\n          this.get('tableActions').forEach((currAction) =>\n            if (!isNone(configPermission.tableActions) &&\n              (configPermission.tableActions.includes(currAction.id) || configPermission.tableActions.includes('all'))) {\n              actions.push(currAction);\n            }\n          });\n           this.set('allowedTableActions', actions);\n        }\n      }*/\n    },\n\n    onKeyDown(event) {\n      const ltCell = event.target.closest('.lt-cell'); //////console.log(('onKeyDown ',event);\n      // need to exempt checkboxes to allow right arrow from checkbox col\n\n      const targetIsControl = event.target.tagName === 'INPUT' && event.target.type !== 'checkbox';\n\n      switch (event.key) {\n        case 'Escape':\n          {\n            const targetIsSearchBox = event.target.classList.contains('column-widget-search-box');\n\n            if (targetIsSearchBox) {\n              event.preventDefault();\n              this.set('isSearchEnabled', false);\n              this.$('.column-widget-search-button').focus();\n            }\n\n            if (this.get('config.isFormControls')) {\n              event.preventDefault();\n              this.closeWidget();\n              event.stopPropagation();\n            }\n\n            break;\n          }\n\n        case 'ArrowLeft':\n          {\n            if (!ltCell || targetIsControl) {\n              return;\n            }\n\n            event.preventDefault();\n            const previousCell = ltCell.previousElementSibling;\n\n            if (!previousCell) {\n              return;\n            }\n\n            const focusElement = previousCell.querySelector('.can-focus') || previousCell.firstElementChild;\n\n            if (focusElement) {\n              focusElement.focus();\n            }\n\n            break;\n          }\n\n        case 'ArrowRight':\n          {\n            if (!ltCell || targetIsControl) {\n              return;\n            }\n\n            event.preventDefault();\n            const nextCell = ltCell.nextElementSibling;\n\n            if (!nextCell) {\n              return;\n            }\n\n            const focusElement = nextCell.querySelector('.can-focus') || nextCell.firstElementChild;\n\n            if (focusElement) {\n              focusElement.focus();\n            }\n\n            break;\n          }\n\n        case 'ArrowDown':\n          {\n            if (!ltCell) {\n              return;\n            }\n\n            event.preventDefault();\n            const row = ltCell.closest('.lt-row'); // an HTMLCollection isn't really an array\n\n            const rowChildren = [].slice.call(row.children);\n            const index = rowChildren.indexOf(ltCell);\n            const nextRow = row.nextElementSibling;\n\n            if (nextRow && nextRow.tagName !== 'OCCLUDED-CONTENT') {\n              // move table selection down one row\n              const tableRows = this.get('table.rows');\n              tableRows.setEach('selected', false);\n              const recordId = nextRow.getAttribute('data-record-id');\n              const nextTableRow = tableRows.findBy('content.id', recordId);\n              nextTableRow.set('selected', true); // move browser focus to same column in next row\n\n              const nextLtCell = nextRow.children[index];\n              const focusElement = nextLtCell.querySelector('.can-focus') || nextLtCell.firstElementChild;\n\n              if (focusElement) {\n                focusElement.focus();\n              }\n            }\n\n            break;\n          }\n\n        case 'ArrowUp':\n          {\n            if (!ltCell) {\n              return;\n            }\n\n            event.preventDefault();\n            const row = ltCell.closest('.lt-row'); // an HTMLCollection isn't really an array\n\n            const rowChildren = [].slice.call(row.children);\n            const index = rowChildren.indexOf(ltCell);\n            const previousRow = row.previousElementSibling;\n\n            if (previousRow && previousRow.tagName !== 'OCCLUDED-CONTENT') {\n              // move table selection down one row\n              const tableRows = this.get('table.rows');\n              tableRows.setEach('selected', false);\n              const recordId = previousRow.getAttribute('data-record-id');\n              const previousTableRow = tableRows.findBy('content.id', recordId);\n              previousTableRow.set('selected', true); // move browser focus to same column in previous row\n\n              const previousLtCell = previousRow.children[index];\n              const focusElement = previousLtCell.querySelector('.can-focus') || previousLtCell.firstElementChild;\n\n              if (focusElement) {\n                event.preventDefault();\n                focusElement.focus();\n              }\n            }\n\n            break;\n          }\n\n        case ' ':\n        case 'Enter':\n          {\n            const isColumn = event.target.classList.contains('table-base-column'); //console.log('isColumn',isColumn);\n            //if (isColumn) {\n\n            event.preventDefault();\n            this.$(event.target).trigger('click'); // }\n\n            break;\n          }\n\n        default:\n          break;\n      }\n    },\n\n    onMouseDown(event) {\n      if (!this.get('stopsReorder').reorderInProgress) {\n        event.preventDefault();\n      }\n\n      if (event.target.tagName === 'INPUT' && event.target.type === 'checkbox') {\n        // allow user to check another row without moving selection\n        return;\n      }\n\n      const ltCell = event.target.closest('.lt-cell');\n\n      if (ltCell) {\n        const row = ltCell.closest('.lt-row');\n        const recordId = row.getAttribute('data-record-id');\n        const tableRows = this.get('table.rows');\n        const clickedRow = tableRows.findBy('content.id', recordId);\n        tableRows.setEach('selected', false);\n        clickedRow.set('selected', true);\n        const focusElement = ltCell.querySelector('.can-focus') || ltCell.firstElementChild;\n\n        if (focusElement) {\n          focusElement.focus();\n        }\n      }\n    },\n\n    onDoubleClick(event) {\n      event.preventDefault();\n\n      if (event.target.tagName === 'INPUT' && event.target.type === 'checkbox') {\n        // allow user to check another row without moving selection\n        return;\n      }\n\n      const ltCell = event.target.closest('.lt-cell');\n\n      if (ltCell) {\n        const row = ltCell.closest('.lt-row');\n        const index = Array.from(row.children).indexOf(ltCell);\n        const recordId = row.getAttribute('data-record-id');\n        const tableRows = this.get('table.rows');\n        const clickedColumn = this.get('table.columns')[index];\n        const clickedRow = tableRows.findBy('content.id', recordId);\n        tableRows.setEach('selected', false);\n        const scheduleLocked = clickedRow.get('record.scheduleLocked');\n\n        if (!scheduleLocked || Ember.isNone(scheduleLocked)) {\n          clickedRow.set('isEditing', true);\n          clickedColumn.set('isEditing', true);\n        }\n      }\n    },\n\n    reConfigureSingleActions() {\n      const configPermissions = this.get('workspace.configPermissions');\n      const singleActions = [];\n      const bulkActions = [];\n      this.get('singleActions').forEach(currAction => {\n        singleActions.push(currAction);\n      });\n      this.set('singleActions', singleActions);\n\n      if (!Ember.isEmpty(this.get('bulkActions'))) {\n        this.get('bulkActions').forEach(currAction => {\n          bulkActions.push(currAction);\n        });\n        this.set('bulkActions', bulkActions);\n      } //TODO when implment permission\n\n      /*if (!isNone(configPermissions)) {\n        const configPermission = configPermissions[this.get('widget.typeId')];\n         if (!isNone(configPermission) && !isNone(this.get('singleActions'))) {\n          this.get('singleActions').forEach((currAction) => {\n            if (!isNone(configPermission.singleActions) &&\n              (configPermission.singleActions.includes(currAction.id) || configPermission.singleActions.includes('all'))) {\n              singleActions.push(currAction);\n            }\n          });\n           this.set('singleActions', singleActions);\n        }\n         if (!isNone(configPermission) && !isNone(this.get('bulkActions'))) {\n          this.get('bulkActions').forEach((currAction) => {\n            if (!isNone(configPermission.bulkActions) &&\n              (configPermission.bulkActions.includes(currAction.id) || configPermission.bulkActions.includes('all'))) {\n              bulkActions.push(currAction);\n            }\n          });\n           this.set('bulkActions', bulkActions);\n        }\n      }*/\n\n    },\n\n    closeWidget() {\n      this.toggleProperty('editmodalcontext.showWidgetModal');\n\n      if (this.get('focusFieldId')) {\n        const el = Ember.$('#' + this.get('focusFieldId'));\n\n        if (el && el[0]) {\n          Ember.run.next(el[0], 'focus');\n        }\n      }\n    },\n\n    actions: {\n      onSearchTextChange(searchText) {\n        const previousSearchText = this.get('searchText');\n\n        if (searchText === previousSearchText) {\n          return;\n        }\n\n        this.set('searchText', searchText);\n        Ember.run.debounce(this, 'refreshData', 250);\n      },\n\n      onColumnClick(column) {\n        if (!column.sorted) {\n          return;\n        }\n\n        try {\n          this.get('widget').mergeState({\n            sortId: column.get('id'),\n            sortAsc: column.get('ascending')\n          });\n        } catch (e) {}\n\n        Ember.run.scheduleOnce('afterRender', this, 'refreshData');\n      },\n\n      onColumnResize(column, pixels) {\n        const scrollLeft = this.$('.column-widget-body').scrollLeft();\n        const id = column.get('id');\n        const columns = {};\n        columns[id] = {\n          width: fromPixels(pixels)\n        };\n\n        try {\n          this.get('widget').mergeState({\n            columns\n          });\n        } catch (e) {}\n\n        Ember.run.scheduleOnce('afterRender', this, 'resizeBody');\n        Ember.run.next(() => {\n          Ember.run.scheduleOnce('afterRender', this, 'setScrollLeft', scrollLeft);\n        });\n      },\n\n      onSearchButtonClick() {\n        this.send('onSearchTextChange', '');\n        this.toggleProperty('isSearchEnabled');\n        Ember.run.schedule('afterRender', () => {\n          if (this.get('isSearchEnabled')) {\n            this.$('.column-widget-search-box').focus();\n          }\n        });\n      },\n\n      onRemoveSearchClick() {\n        this.send('onSearchTextChange', '');\n        this.toggleProperty('isSearchEnabled');\n        this.$('.column-widget-search-button').focus();\n      },\n\n      onHeaderDoubleClick() {\n        const maximizer = this.get('maximizer');\n\n        if (maximizer.maximizedWidget === this.get('widget')) {\n          maximizer.minimize();\n          return;\n        }\n\n        maximizer.maximize(this.get('widget'));\n      },\n\n      onExitMaximizedClick() {\n        const maximizer = this.get('maximizer');\n        maximizer.minimize();\n      },\n\n      onFilterButtonClick() {\n        const columns = [];\n        const workspace = this.get('workspace');\n        const widget = this.get('widget');\n        const config = this.get('config');\n        const displayName = `${config.title} Filters`; // close sidebar if _this_ widget's filter is currently open\n        // @TODO: define and use unique keys rather than `displayName` for this\n\n        if (displayName === workspace.get('topStateDisplayName')) {\n          workspace.popState();\n          return;\n        }\n\n        let topState = workspace.get('topState');\n\n        while (topState === 'filterColumnWidget') {\n          workspace.popState();\n          topState = workspace.get('topState');\n        }\n\n        this.get('table.columns').forEach(column => {\n          const columnConfig = column.config;\n\n          if (columnConfig) {\n            if (!columnConfig.unAvailable) {\n              columns.push(column);\n            }\n          } else {\n            columns.push(column);\n          }\n        });\n        workspace.pushState('filterColumnWidget', {\n          columns,\n          widget,\n          displayName\n        });\n      },\n\n      setInlineRowMenu(dropdown) {\n        this.set('inlineRowMenu', dropdown);\n      },\n\n      onRowClick(row, event) {},\n\n      onRowRightClick(row, event) {\n        this.set('inlineRowMenuPosition', function () {\n          return {\n            style: {\n              top: event.clientY,\n              left: event.clientX\n            }\n          };\n        });\n        this.set('lastRowClicked', row.get('record'));\n\n        if (!Ember.isNone(this.get('dynamicSingleActions'))) {\n          this.set('singleActions', this.get('dynamicSingleActions'));\n        } else {\n          this.set('dynamicSingleActions', this.get('singleActions'));\n        } // remove right click action if schedule record is locked\n\n\n        if (row.get('record.scheduleLocked')) {\n          const singleActions = [];\n          this.get('singleActions').forEach(action => {\n            if (!action.disableOnlocked) {\n              singleActions.push(action);\n            }\n          });\n          this.set('singleActions', singleActions);\n        }\n\n        if (!Ember.isNone(this.get('singleActions'))) {\n          this.reConfigureSingleActions();\n        }\n\n        this.get('inlineRowMenu').actions.open();\n      },\n\n      onScrolledToBottom() {\n        -Ember.run.scheduleOnce('actions', this, 'fetchMoreData');\n      },\n\n      onScroll() {\n        const scrollHeight = this.$('.column-widget-body')[0].scrollHeight;\n        const scrollTop = this.$('.column-widget-body')[0].scrollTop;\n        const offsetHeight = this.$('.column-widget-body')[0].offsetHeight; // scrollHeight is the total height value for scrollable content\n        // scrollTop is the current vertical scroll location\n        // offsetHeight is the height of the column-widget-body div element\n        // 100 is a buffer for getting close to the bottom of the scrollable content\n\n        if (scrollTop + offsetHeight + 100 >= scrollHeight) {\n          Ember.run.scheduleOnce('actions', this, 'fetchMoreData');\n        }\n      },\n\n      onTableActionClick(action, dropdown) {\n        dropdown.actions.close();\n\n        if (action.action) {\n          action.action();\n        }\n      },\n\n      onSingleRowAction(action) {\n        const model = this.get('lastRowClicked');\n        this.get('inlineRowMenu').actions.close();\n\n        if (action.action) {\n          action.action(model);\n        }\n      },\n\n      onBulkRowAction(action) {\n        const checkedRows = this.get('table.rows').filterBy('isChecked');\n        const models = [];\n        checkedRows.forEach(row => {\n          models.push(row.get('record'));\n        });\n        this.get('inlineRowMenu').actions.close();\n\n        if (action.action) {\n          action.action(models);\n        }\n      },\n\n      closeWidget() {\n        this.closeWidget();\n      },\n\n      createNew() {\n        console.log('create new');\n      },\n\n      onClearButtonClick() {\n        this.get('activeContext').clearCheckItemsByModelName(this.get('config.modelName'));\n      },\n\n      focusFirstItem() {\n        (0, _focus_column_widget_row.default)(this);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/column-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"ZM0Waotp\",\n    \"block\": \"{\\\"symbols\\\":[\\\"dropdown\\\",\\\"event\\\",\\\"event\\\",\\\"t\\\",\\\"body\\\",\\\"dropdown\\\",\\\"event\\\",\\\"dropdown\\\",\\\"event\\\"],\\\"statements\\\":[[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"column-widget-header\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"unless\\\",[[23,[\\\"config\\\",\\\"hideHeader\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isSearchEnabled\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"column-widget-search-box data-test-search-box\\\"],[11,\\\"placeholder\\\",\\\"Search\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"searchText\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSearchTextChange\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"\\\\n    \\\"],[7,\\\"h5\\\"],[11,\\\"class\\\",\\\"column-widget-title data-test-column-title\\\"],[12,\\\"title\\\",[21,\\\"accessKey\\\"]],[9],[0,\\\"\\\\n      \\\"],[1,[23,[\\\"config\\\",\\\"title\\\"]],false],[0,\\\"\\\\n\\\\n      (\\\"],[1,[27,\\\"min\\\",[[27,\\\"add\\\",[[23,[\\\"offset\\\"]],[23,[\\\"limit\\\"]]],null],[23,[\\\"records\\\",\\\"length\\\"]]],null],false],[0,\\\"/\\\"],[1,[23,[\\\"records\\\",\\\"length\\\"]],false],[0,\\\")\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isLoading\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-1x fa-circle-o-notch fa-spin\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"unless\\\",[[23,[\\\"config\\\",\\\"hideWidgetControls\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"column-widget-controls\\\"],[9],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"column-widget-button\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-times-circle active-button\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n        \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onRemoveSearchClick\\\"]],[10],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"column-widget-button column-widget-search-button data-test-search-button initial-focus-control\\\"],[9],[0,\\\"\\\\n\\\\n          \\\"],[7,\\\"i\\\"],[12,\\\"class\\\",[28,[\\\"fa fa-search \\\",[27,\\\"if\\\",[[23,[\\\"isSearchEnabled\\\"]],\\\"active-button\\\"],null]]]],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n        \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onSearchButtonClick\\\"]],[10],[0,\\\"\\\\n\\\\n\\\\n\\\"],[4,\\\"basic-dropdown\\\",null,[[\\\"horizontalPosition\\\"],[\\\"right\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,8,[\\\"trigger\\\"]],\\\"expected `dropdown.trigger` to be a contextual component but found a string. Did you mean `(component dropdown.trigger)`? ('adept-iq/pods/components/generic-widgets/column-widget/template.hbs' @ L43:C11) \\\"],null]],[[\\\"class\\\"],[\\\"column-widget-button data-test-plus-button\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-plus\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,8,[\\\"content\\\"]],\\\"expected `dropdown.content` to be a contextual component but found a string. Did you mean `(component dropdown.content)`? ('adept-iq/pods/components/generic-widgets/column-widget/template.hbs' @ L47:C11) \\\"],null]],[[\\\"class\\\"],[\\\"widget-dropdown-content data-test-dropdown\\\"]],{\\\"statements\\\":[[4,\\\"each\\\",[[23,[\\\"allowedTableActions\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[12,\\\"accessKey\\\",[22,9,[\\\"accessKey\\\"]]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onTableActionClick\\\",[22,9,[]],[22,8,[]]],null]],[9],[0,\\\"\\\\n              \\\"],[7,\\\"b\\\"],[9],[1,[22,9,[\\\"name\\\"]],false],[10],[0,\\\"  \\\"],[7,\\\"i\\\"],[9],[1,[22,9,[\\\"accessKey\\\"]],false],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[9]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[8]},null],[0,\\\"\\\\n      \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"check-box\\\"],[12,\\\"disabled\\\",[27,\\\"not\\\",[[23,[\\\"checkedRowsCount\\\"]]],null]],[12,\\\"checked\\\",[21,\\\"checkedRowsCount\\\"]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onClearButtonClick\\\"],null]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"column-widget-button data-test-filter-button\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"i\\\"],[12,\\\"class\\\",[28,[\\\"fa fa-filter \\\",[27,\\\"if\\\",[[23,[\\\"isFiltered\\\"]],\\\"active-button\\\"],null]]]],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n        \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onFilterButtonClick\\\"]],[10],[0,\\\"\\\\n\\\\n\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"maximizer\\\",\\\"maximizedWidget\\\"]],[23,[\\\"widget\\\"]]],null]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"column-widget-button minimize-button\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-times\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n          \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onExitMaximizedClick\\\"]],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"       \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"config\\\",\\\"isFormControls\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"column-widget-controls\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"config\\\",\\\"download\\\"]]],null,{\\\"statements\\\":[[4,\\\"basic-dropdown\\\",null,[[\\\"horizontalPosition\\\"],[\\\"right\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,6,[\\\"trigger\\\"]],\\\"expected `dropdown.trigger` to be a contextual component but found a string. Did you mean `(component dropdown.trigger)`? ('adept-iq/pods/components/generic-widgets/column-widget/template.hbs' @ L81:C19) \\\"],null]],[[\\\"class\\\"],[\\\"column-widget-button data-test-plus-button\\\"]],{\\\"statements\\\":[[0,\\\"                  \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-plus\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,6,[\\\"content\\\"]],\\\"expected `dropdown.content` to be a contextual component but found a string. Did you mean `(component dropdown.content)`? ('adept-iq/pods/components/generic-widgets/column-widget/template.hbs' @ L85:C19) \\\"],null]],[[\\\"class\\\"],[\\\"widget-dropdown-content data-test-dropdown\\\"]],{\\\"statements\\\":[[4,\\\"each\\\",[[23,[\\\"allowedTableActions\\\"]]],null,{\\\"statements\\\":[[0,\\\"                    \\\"],[7,\\\"div\\\"],[12,\\\"accessKey\\\",[22,7,[\\\"accessKey\\\"]]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onTableActionClick\\\",[22,7,[]],[22,6,[]]],null]],[9],[0,\\\"\\\\n                      \\\"],[7,\\\"b\\\"],[9],[1,[22,7,[\\\"name\\\"]],false],[10],[0,\\\"  \\\"],[7,\\\"i\\\"],[9],[1,[22,7,[\\\"accessKey\\\"]],false],[10],[0,\\\"\\\\n                    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[7]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[6]},null]],\\\"parameters\\\":[]},null],[0,\\\"            \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"column-widget-button minimize-button\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-times\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"closeWidget\\\"]],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[3,\\\"action\\\",[[22,0,[]],\\\"onHeaderDoubleClick\\\"],[[\\\"on\\\"],[\\\"doubleClick\\\"]]],[10],[0,\\\"\\\\n\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"column-widget-body\\\"],[12,\\\"onScroll\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onScroll\\\"],null]],[9],[0,\\\"\\\\n\\\"],[4,\\\"light-table\\\",[[23,[\\\"table\\\"]]],[[\\\"responsive\\\",\\\"occlusion\\\",\\\"estimatedRowHeight\\\",\\\"extra\\\"],[false,true,23,[27,\\\"hash\\\",null,[[\\\"options\\\"],[[23,[\\\"config\\\"]]]]]]],{\\\"statements\\\":[[0,\\\"\\\\n    \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,4,[\\\"head\\\"]],\\\"expected `t.head` to be a contextual component but found a string. Did you mean `(component t.head)`? ('adept-iq/pods/components/generic-widgets/column-widget/template.hbs' @ L117:C6) \\\"],null]],[[\\\"onColumnClick\\\",\\\"onColumnResized\\\",\\\"iconSortable\\\",\\\"iconAscending\\\",\\\"iconDescending\\\",\\\"fixed\\\",\\\"resizeOnDrag\\\"],[[27,\\\"action\\\",[[22,0,[]],\\\"onColumnClick\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onColumnResize\\\"],null],\\\"fa fa-sort\\\",\\\"fa fa-sort-asc\\\",\\\"fa fa-sort-desc\\\",true,true]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,4,[\\\"body\\\"]],\\\"expected `t.body` to be a contextual component but found a string. Did you mean `(component t.body)`? ('adept-iq/pods/components/generic-widgets/column-widget/template.hbs' @ L128:C7) \\\"],null]],[[\\\"canSelect\\\",\\\"multiSelect\\\",\\\"rowComponent\\\",\\\"onRowClick\\\",\\\"extra\\\"],[false,false,[27,\\\"component\\\",[[23,[\\\"config\\\",\\\"rowComponent\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onRowClick\\\"],null],[27,\\\"hash\\\",null,[[\\\"onRightClick\\\"],[[27,\\\"action\\\",[[22,0,[]],\\\"onRowRightClick\\\"],null]]]]]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isLoading\\\"]]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,5,[\\\"loader\\\"]],\\\"expected `body.loader` to be a contextual component but found a string. Did you mean `(component body.loader)`? ('adept-iq/pods/components/generic-widgets/column-widget/template.hbs' @ L139:C11) \\\"],null]],null,{\\\"statements\\\":[],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"table\\\",\\\"isEmpty\\\"]]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,5,[\\\"no-data\\\"]],\\\"expected `body.no-data` to be a contextual component but found a string. Did you mean `(component body.no-data)`? ('adept-iq/pods/components/generic-widgets/column-widget/template.hbs' @ L146:C13) \\\"],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isError\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"text-danger\\\"],[9],[0,\\\"\\\\n                \\\"],[1,[23,[\\\"fetchDataTask\\\",\\\"last\\\",\\\"error\\\"]],false],[0,\\\"\\\\n              \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[5]},null]],\\\"parameters\\\":[4]},null],[10],[0,\\\"\\\\n\\\"],[4,\\\"basic-dropdown\\\",null,[[\\\"calculatePosition\\\",\\\"onInit\\\"],[[23,[\\\"inlineRowMenuPosition\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"setInlineRowMenu\\\"],null]]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"trigger\\\"]],\\\"expected `dropdown.trigger` to be a contextual component but found a string. Did you mean `(component dropdown.trigger)`? ('adept-iq/pods/components/generic-widgets/column-widget/template.hbs' @ L165:C5) \\\"],null]],[[\\\"class\\\"],[\\\"this-trigger\\\"]],{\\\"statements\\\":[[0,\\\"     \\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"content\\\"]],\\\"expected `dropdown.content` to be a contextual component but found a string. Did you mean `(component dropdown.content)`? ('adept-iq/pods/components/generic-widgets/column-widget/template.hbs' @ L169:C5) \\\"],null]],[[\\\"class\\\"],[\\\"widget-dropdown-content\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"showSingleActions\\\"]]],null,{\\\"statements\\\":[[4,\\\"each\\\",[[23,[\\\"singleActions\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"div\\\"],[12,\\\"accessKey\\\",[22,3,[\\\"accessKey\\\"]]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSingleRowAction\\\",[22,3,[]]],null]],[9],[0,\\\"\\\\n          \\\"],[1,[22,3,[\\\"name\\\"]],false],[0,\\\" \\\"],[1,[22,3,[\\\"accessKey\\\"]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"showBulkActions\\\"]]],null,{\\\"statements\\\":[[4,\\\"each\\\",[[23,[\\\"bulkActions\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"div\\\"],[12,\\\"accessKey\\\",[22,2,[\\\"accessKey\\\"]]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onBulkRowAction\\\",[22,2,[]]],null]],[9],[0,\\\"\\\\n          \\\"],[1,[22,2,[\\\"name\\\"]],false],[0,\\\" \\\"],[1,[22,2,[\\\"accessKey\\\"]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/generic-widgets/column-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/column-widget/utils/compute-ordered-ids\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _default;\n\n  /**\n   * Returns a sorted list of ids from a partially indexed collection.\n   *\n   * @param {Array} items\n   * @param {string} idKey\n   * @param {string} indexKey\n   */\n  function _default(items, idKey = 'id', indexKey = 'index') {\n    const orderedIds = [];\n    items.forEach(item => {\n      const id = item[idKey];\n      const index = item[indexKey]; // no index specified; pass\n\n      if (!Ember.isPresent(index)) return;\n\n      if (!Number.isInteger(index)) {\n        /*eslint-disable */\n        throw `item with id='${id}' has invalid index '${index}'`;\n        /*eslint-enable */\n      }\n\n      if (Ember.isPresent(orderedIds[index])) {\n        /*eslint-disable */\n        throw `item with id='${id}' has duplicate index '${index}'`;\n        /*eslint-enable */\n      }\n\n      orderedIds[index] = id;\n    }); // interleave other items\n\n    let i = 0;\n    items.reject(item => orderedIds.includes(item[idKey])).forEach(item => {\n      while (Ember.isPresent(orderedIds[i])) i++;\n\n      orderedIds[i] = item[idKey];\n    }); // remove any spaces that are left\n\n    return orderedIds.compact();\n  }\n});","define(\"adept-iq/pods/components/generic-widgets/dummy-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/base-widget/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    classNames: ['dummy-widget'],\n    classNameBindings: ['color'],\n    color: Ember.computed.readOnly('widget.state.color')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/dummy-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"66saKHJQ\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[1,[23,[\\\"widget\\\",\\\"state\\\",\\\"text\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/generic-widgets/dummy-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/form-widget/component\", [\"exports\", \"lodash\", \"adept-iq/config/key-maps\", \"ember-keyboard-shortcuts\"], function (_exports, _lodash, _keyMaps, _emberKeyboardShortcuts) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['form-widget'],\n    layoutName: 'components/generic-widgets/form-widget',\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    editableRecords: Ember.computed.alias('editModal.editableRecords'),\n    keyboardShortcutsList: null,\n    // eslint-disable-next-line ember/avoid-leaking-state-in-ember-objects\n    keyboardShortcuts: {\n      'shift+esc': {\n        action: 'onApplyClick',\n        // action to trigger\n        global: true,\n        scoped: true,\n        preventDefault: true\n      },\n      esc: {\n        action: 'onApplyClearClick',\n        // action to trigger\n        global: true,\n        scoped: true,\n        preventDefault: true\n      },\n      'Shift+!': {\n        action: 'onClearClick',\n        // action to trigger\n        global: true,\n        scoped: true,\n        preventDefault: true\n      },\n      'Shift+@': {\n        action: 'onCopyClick',\n        // action to trigger\n        global: true,\n        scoped: true,\n        preventDefault: true\n      },\n      'Shift+-': {\n        action: 'onCancelClick',\n        // action to trigger\n        global: true,\n        scoped: true,\n        preventDefault: true\n      },\n      'Shift+#': {\n        action: 'onCloseClick',\n        // action to trigger\n        global: true,\n        scoped: true,\n        preventDefault: true\n      },\n      'Shift+&': {\n        action: \"onSearchClick\",\n        global: true,\n        scoped: true,\n        preventDefault: true\n      },\n      'Shift++': {\n        action: \"onNewClick\",\n        global: true,\n        scoped: true,\n        preventDefault: true\n      },\n      'Shift+*': {\n        action: \"onActivitLogs\",\n        global: true,\n        scoped: true,\n        preventDefault: true\n      }\n    },\n    editableSections: null,\n    service: null,\n    formType: Ember.computed('title', function () {\n      if (this.get('title') !== '') {\n        return this.get('title').split(' ')[1];\n      }\n\n      return '';\n    }),\n    title: Ember.computed('editModal.editComponent', function () {\n      const editComponent = this.get('editModal.editComponent');\n\n      try {\n        switch (editComponent.split(/[-/]+/)[2]) {\n          case 'new':\n            return 'Add Trip';\n\n          case 'edit':\n            return 'Edit Trip';\n\n          case 'cancel':\n            return 'Cancel Trip';\n\n          case 'search':\n            return 'Search Trip';\n\n          case 'assign':\n            return 'Assign Trip to Route';\n\n          case 'passengers':\n            if (this.get('editableRecords')[0].id) {\n              return 'Edit Passenger';\n            }\n\n            return 'Add Passenger';\n\n          case 'vehicles':\n            if (this.get('editableRecords')[0].id) {\n              return 'Edit Vehicle';\n            }\n\n            return 'Add Vehicle';\n\n          case 'drivers':\n            if (this.get('editableRecords')[0].id) {\n              return 'Edit Driver';\n            }\n\n            return 'Add Driver';\n\n          case 'routes':\n            return 'Add Route';\n\n          default:\n            return '';\n        }\n      } catch (e) {\n        return 'Add Trip';\n      }\n    }),\n    readOnlyFields: Ember.computed('editableRecords.[]', function () {\n      const editableSections = this.get('editableSections');\n      const readOnlyFields = editableSections.find(x => x.title === 'Read Only');\n      let readOnlyItems = {};\n\n      if (!Ember.isNone(readOnlyFields)) {\n        for (let i = 0; i < readOnlyFields.fields.length; i++) {\n          const o = readOnlyFields.fields[i];\n          readOnlyItems[o.id] = o;\n        }\n      }\n\n      return readOnlyItems;\n    }),\n\n    init() {\n      this._super(...arguments); //TODO fof FIX Trip Widget\n\n\n      if (Ember.isBlank(this.get('editableRecords'))) {\n        this.set('editableRecords', []);\n        this.set('editModal.editModal', false);\n      }\n\n      (true && !(Ember.isArray(this.get('editableSections'))) && Ember.assert('{{generic-widgets/form-widget}} requires extending components to provide an `editableSections` array', Ember.isArray(this.get('editableSections'))));\n      (true && !(Ember.isPresent(this.get('service'))) && Ember.assert('{{generic-widgets/form-widget}} requires extending components to provide a `service` service', Ember.isPresent(this.get('service'))));\n      (true && !(Ember.isArray(this.get('editableRecords'))) && Ember.assert('{{generic-widgets/form-widget}} requires an `editableRecords` array', Ember.isArray(this.get('editableRecords'))));\n    },\n\n    didUpdateAttrs() {},\n\n    didRender() {\n      this._super(...arguments);\n\n      this.highlightaccessKeys();\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      let me = this; // auto-focus on first input control\n\n      const el = this.$('input,.ember-power-select-trigger'); //console.log('el ',el);\n\n      if (el && el[0]) {\n        el[0].focus();\n      } //console.log('KeyMapConfig ',KeyMapConfigs,' formType ',this.get('formType'));\n\n\n      let keyMapConfig = _keyMaps.default['Default'];\n      const editComponent = this.get('editModal.editComponent');\n\n      try {\n        if (Ember.isPresent(_keyMaps.default[editComponent.split(/[-/]+/)[2]])) {\n          keyMapConfig = _keyMaps.default[editComponent.split(/[-/]+/)[2]];\n        } else if (Ember.isPresent(_keyMaps.default[this.get('formType')])) {\n          keyMapConfig = _keyMaps.default[this.get('formType')];\n        }\n      } catch (e) {\n        keyMapConfig = _keyMaps.default['Trip'];\n      } //console.log('keyMapConfig ',keyMapConfig);\n\n\n      let keyboardShortcuts = [];\n      let keyboardShortcutsList = [];\n\n      _lodash.default.forEach(keyMapConfig, function (keyMap) {\n        //console.log(keyMap);\n        if (!Ember.isBlank(keyMap.accessKey)) {\n          let accesskey = keyMap.accessKey;\n          keyboardShortcutsList.push(keyMap);\n          /*let accessKeyConfig = {\n            [accesskey] : {\n              action: keyMap.action, // action to trigger\n              global: true,\n              preventDefault: true\n            }\n          };*/\n\n          /*if(isBlank(me.get('keyboardShortcuts'))) {\n            me.set('keyboardShortcuts',[]);\n          }*/\n\n          keyboardShortcuts.push({\n            [accesskey]: {\n              action: keyMap.action,\n              // action to trigger\n              global: true,\n              preventDefault: true\n            }\n          });\n        }\n      }); //console.log('this.get(keyboardShortcuts) ', keyboardShortcuts);\n\n\n      this.set('keyboardShortcutsList', keyboardShortcutsList); //console.log('keyboardShortcutsList ',this.get('keyboardShortcutsList'));\n\n      let keyboardShortcutsStr = JSON.stringify(keyboardShortcuts, null, '\\t');\n      keyboardShortcutsStr = keyboardShortcutsStr.substr(1, keyboardShortcutsStr.length - 2);\n      keyboardShortcutsStr = keyboardShortcutsStr.replace('\"', ''); //console.log('keyboardShortcutsStr ',keyboardShortcutsStr);\n      //this.set('keyboardShortcuts',keyboardShortcutsStr);\n      // install keyboard listener\n\n      this._onKeyDown = event => {\n        Ember.run.schedule('actions', this, 'onKeyDown', event);\n      };\n\n      document.addEventListener('keydown', this._onKeyDown);\n      (0, _emberKeyboardShortcuts.bindKeyboardShortcuts)(this);\n    },\n\n    willDestroyElement() {\n      try {\n        document.removeEventListener('keydown', this._onKeyDown);\n        (0, _emberKeyboardShortcuts.unbindKeyboardShortcuts)(this);\n      } catch (e) {}\n    },\n\n    filteredSections: Ember.computed('editableSections', 'service.filter', function () {\n      const sections = Ember.copy(this.get('editableSections'), true);\n      const filter = this.get('service.filter');\n      return sections.map(section => {\n        /*eslint-disable */\n        Ember.set(section, 'fields', section.fields.filter(field => {\n          return new RegExp(`^${filter}`, 'i').test(field.label);\n        }));\n        /*eslint-enable */\n\n        return section;\n      }).filter(section => section.fields.length > 0);\n    }),\n\n    onKeyDown(event) {\n      // can check to see if focused element is in this component:\n      // let el = this.$()[0];\n      // if (!el.contains(document.activeElement)) return;\n      if (event.key === 'Enter') {\n        return this.onEnter();\n      }\n\n      if (event.key === 'z' && (event.metaKey || event.ctrlKey)) {\n        this.get('service').undo();\n      }\n\n      if (event.key === 'F7') {\n        this.onClearClick();\n      }\n    },\n\n    highlightaccessKeys() {\n      const sc = document.querySelectorAll('.cell-label,.cell-header'); //console.log('sc',sc);\n\n      for (let i = 0; i < sc.length; i++) {\n        let txt = sc[i].innerHTML;\n        let accessKey = sc[i].accessKey;\n\n        if (accessKey && txt) {\n          const pos = txt.toLowerCase().indexOf(accessKey.toLowerCase());\n\n          if (pos != -1) {\n            sc[i].innerHTML = txt.substring(0, pos) + '<u>' + txt.charAt(pos) + '</u>' + txt.substring(pos + 1);\n          }\n        }\n      }\n    },\n\n    onEnter() {\n      /*//console.log('document',document.activeElement);\n      if (document.activeElement.contains('ember-power-select-trigger') ||\n          document.activeElement.contains('ember-power-select-search-input')) {\n        return;\n      }\n      if (!document.activeElement) {\n        this.get('service').apply();\n        return;\n      }\n       // buttons handle enter button on their own\n      if (document.activeElement.tagName === 'BUTTON') {\n        return;\n      }\n       const { classList } = document.activeElement;\n       // power selects handle enter button on their own\n      if (classList.contains('ember-power-select-trigger')) {\n        return;\n      }\n       // enter toggles an on/off switch\n      if (classList.contains('onoffswitch-switch')) {\n        document.activeElement.parentElement.click();\n        return;\n      }\n       this.get('service').apply();*/\n    },\n\n    actions: {\n      onCellValueChange(record, valuePath, value, options) {\n        //console.log('valuePath',valuePath)\n        if (valuePath === 'account' || valuePath === 'subscriptions') {\n          record.set('isForceDirty', true);\n          record.set(valuePath, value);\n        } else {\n          this.get('service').setRecordValue(record, valuePath, value, options);\n        }\n      },\n\n      onCellValueAppend(record, valuePath, modelName) {\n        return this.get('service').pushRecordValue(record, valuePath, modelName);\n      },\n\n      onCellValueRemove(record, valuePath, modelName, options) {\n        this.get('service').pullRecordValue(record, valuePath, options.record);\n      },\n\n      onCloseClick() {\n        this.get('service').close();\n      },\n\n      onUndoClick() {\n        this.get('service').undo();\n      },\n\n      onLinkToggle() {\n        this.get('service').toggleLinkMode();\n      },\n\n      onSearchToggle() {\n        this.get('service').toggleSearchMode();\n      },\n\n      onApplyClick() {\n        this.get('service').apply();\n      },\n\n      onApplyClearClick() {//this.get('service').apply();\n      },\n\n      onClearClick() {\n        this.get('service').apply();\n      },\n\n      onSearchClick() {\n        console.log('onSearchClick');\n      },\n\n      onNewClick() {\n        console.log('onNewClick');\n      },\n\n      onCopyClick() {\n        this.get('service').apply();\n      },\n\n      onItemButtonClick()\n      /*item*/\n      {\n        /*eslint-disable */\n        alert('Clicked button');\n        /*eslint-enable */\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/form-widget/section/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    tagName: '',\n    section: null,\n    isOpen: true,\n    actions: {\n      onHeaderClick() {\n        this.toggleProperty('isOpen');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/form-widget/section/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"mYk7mZ7i\",\n    \"block\": \"{\\\"symbols\\\":[\\\"&default\\\"],\\\"statements\\\":[[7,\\\"tr\\\"],[12,\\\"class\\\",[28,[\\\"header \\\",[27,\\\"if\\\",[[27,\\\"not\\\",[[23,[\\\"isOpen\\\"]]],null],\\\"is-closed\\\"],null]]]],[12,\\\"ondblclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onHeaderClick\\\"],null]],[9],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"th\\\"],[11,\\\"colspan\\\",\\\"100\\\"],[11,\\\"class\\\",\\\"cell-header\\\"],[12,\\\"accessKey\\\",[27,\\\"readonly\\\",[[23,[\\\"section\\\",\\\"accessKey\\\"]]],null]],[9],[0,\\\"\\\\n    \\\"],[7,\\\"h4\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-sort-down\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n      \\\"],[1,[23,[\\\"section\\\",\\\"title\\\"]],false],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isOpen\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[14,1,[[23,[\\\"section\\\",\\\"fields\\\"]]]],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/generic-widgets/form-widget/section/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/form-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"6ZAm/RD1\",\n    \"block\": \"{\\\"symbols\\\":[\\\"section\\\",\\\"fields\\\",\\\"field\\\",\\\"record\\\",\\\"index\\\",\\\"section\\\",\\\"fields\\\",\\\"field\\\",\\\"record\\\",\\\"index\\\",\\\"record\\\",\\\"shortcuts\\\",\\\"error\\\"],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-widget-header-wrapper\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-widget-header\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"editModal\\\",\\\"isSearching\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-widget-search\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-widget-search-input\\\"],[11,\\\"data-test-form-search-input\\\",\\\"\\\"],[11,\\\"placeholder\\\",\\\"Filter Fields\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"editModal\\\",\\\"filter\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"editModal\\\",\\\"filter\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"search\\\"],[9],[10],[0,\\\"\\\\n        \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"form-widget-search-x\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSearchToggle\\\"],null]],[11,\\\"type\\\",\\\"button\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-times-circle\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"h5\\\"],[11,\\\"class\\\",\\\"form-widget-title\\\"],[9],[1,[21,\\\"title\\\"],false],[10],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"editModal\\\",\\\"errors\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"text-danger mt-3\\\"],[9],[0,\\\"\\\\n          \\\\n          \\\"],[7,\\\"ul\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"editModal\\\",\\\"errors\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[7,\\\"li\\\"],[9],[1,[22,13,[]],false],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[13]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}],[0,\\\"\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-widget-controls\\\"],[9],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"keyboardShortcutsList\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[22,12,[\\\"isDisabledCondition\\\"]]],null,{\\\"statements\\\":[[0,\\\"           \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"form-widget-header-button\\\"],[11,\\\"data-test-form-header-button\\\",\\\"\\\"],[11,\\\"data-test-form-apply-button\\\",\\\"\\\"],[12,\\\"title\\\",[27,\\\"titleandkey\\\",[[22,12,[\\\"title\\\"]],[22,12,[\\\"accessKey\\\"]]],null]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],[22,12,[\\\"action\\\"]]],null]],[11,\\\"type\\\",\\\"button\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[12,\\\"class\\\",[28,[\\\"fa fa-\\\",[22,12,[\\\"icon\\\"]]]]],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n           \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"not\\\",[[22,12,[\\\"isDisabledCondition\\\"]]],null]],null,{\\\"statements\\\":[[0,\\\"           \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"form-widget-header-button\\\"],[11,\\\"data-test-form-header-button\\\",\\\"\\\"],[11,\\\"data-test-form-apply-button\\\",\\\"\\\"],[12,\\\"title\\\",[27,\\\"titleandkey\\\",[[22,12,[\\\"title\\\"]],[22,12,[\\\"accessKey\\\"]]],null]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],[22,12,[\\\"action\\\"]]],null]],[11,\\\"type\\\",\\\"button\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[12,\\\"class\\\",[28,[\\\"fa fa-\\\",[22,12,[\\\"icon\\\"]]]]],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n           \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[12]},null],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-widget-subheader\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"editableRecords\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-widget-readonly-section\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"formType\\\"]],\\\"Passenger\\\"],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"readonly-label\\\"],[9],[0,\\\"Passenger: \\\"],[1,[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"fullName\\\",\\\"valuePath\\\"]]],null],false],[0,\\\" (ID# \\\"],[4,\\\"if\\\",[[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"id\\\",\\\"valuePath\\\"]]],null]],null,{\\\"statements\\\":[[1,[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"id\\\",\\\"valuePath\\\"]]],null],false]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"unassigned\\\"]],\\\"parameters\\\":[]}],[0,\\\")\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"formType\\\"]],\\\"Driver\\\"],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"readonly-label\\\"],[9],[0,\\\"Driver: \\\"],[1,[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"fullName\\\",\\\"valuePath\\\"]]],null],false],[0,\\\" (ID# \\\"],[4,\\\"if\\\",[[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"id\\\",\\\"valuePath\\\"]]],null]],null,{\\\"statements\\\":[[1,[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"id\\\",\\\"valuePath\\\"]]],null],false]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"unassigned\\\"]],\\\"parameters\\\":[]}],[0,\\\")\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"formType\\\"]],\\\"Vehicle\\\"],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"readonly-label\\\"],[9],[0,\\\"Vehicle ID# \\\"],[4,\\\"if\\\",[[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"vehicleId\\\",\\\"valuePath\\\"]]],null]],null,{\\\"statements\\\":[[1,[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"vehicleId\\\",\\\"valuePath\\\"]]],null],false]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"unassigned\\\"]],\\\"parameters\\\":[]}],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"formType\\\"]],\\\"Trip\\\"],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"title\\\"]],\\\"Edit Trip\\\"],null]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"readonly-label\\\"],[9],[0,\\\"Last Booked Trip ID:  \\\"],[4,\\\"if\\\",[[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"lastId\\\",\\\"valuePath\\\"]]],null]],null,{\\\"statements\\\":[[1,[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"lastId\\\",\\\"valuePath\\\"]]],null],false]],\\\"parameters\\\":[]},{\\\"statements\\\":[],\\\"parameters\\\":[]}],[0,\\\"    Callsign:   \\\"],[1,[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"callsign\\\",\\\"valuePath\\\"]]],null],false],[0,\\\"     Status:   \\\"],[1,[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"status\\\",\\\"valuePath\\\"]]],null],false],[0,\\\"    Driver:   \\\"],[1,[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"driver\\\",\\\"valuePath\\\"]]],null],false],[0,\\\" \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"              \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"readonly-label\\\"],[9],[0,\\\"Last Booked Trip ID:  \\\"],[4,\\\"if\\\",[[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"lastId\\\",\\\"valuePath\\\"]]],null]],null,{\\\"statements\\\":[[1,[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"lastId\\\",\\\"valuePath\\\"]]],null],false]],\\\"parameters\\\":[]},{\\\"statements\\\":[],\\\"parameters\\\":[]}],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"             \\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"formType\\\"]],\\\"Route\\\"],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"readonly-label\\\"],[9],[0,\\\"Route: \\\"],[4,\\\"if\\\",[[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"id\\\",\\\"valuePath\\\"]]],null]],null,{\\\"statements\\\":[[1,[27,\\\"get\\\",[[22,11,[]],[23,[\\\"readOnlyFields\\\",\\\"id\\\",\\\"valuePath\\\"]]],null],false]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"unnamed\\\"]],\\\"parameters\\\":[]}],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[11]},null],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-widget-body\\\"],[9],[0,\\\"\\\\n\\\\n  \\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"subheading\\\"]]],null,{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[1,[21,\\\"subheading\\\"],false],[0,\\\"\\\\n\\\\n\\\"]],\\\"parameters\\\":[]},null],[7,\\\"div\\\"],[11,\\\"style\\\",\\\"width: 49%; float: left;\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"filteredSections\\\"]]],null,{\\\"statements\\\":[[4,\\\"unless\\\",[[27,\\\"eq\\\",[[22,6,[\\\"title\\\"]],\\\"Read Only\\\"],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,6,[\\\"align\\\"]],\\\"right\\\"],null]],null,{\\\"statements\\\":[],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"section-table mt-3\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"generic-widgets/form-widget/section\\\",null,[[\\\"section\\\"],[[27,\\\"readonly\\\",[[22,6,[]]],null]]],{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"subsections\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"3\\\"],[9],[0,\\\"\\\\n                  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-button-cell\\\"],[9],[0,\\\"\\\\n                      \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"form-button-primary\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"addItem\\\"],null]],[11,\\\"type\\\",\\\"button\\\"],[9],[0,\\\"\\\\n                        Add New Config\\\\n                      \\\"],[10],[0,\\\"\\\\n                  \\\"],[10],[0,\\\"\\\\n                \\\"],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"each\\\",[[22,7,[]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"unless\\\",[[22,8,[\\\"isMultiType\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[12,\\\"accessKey\\\",[27,\\\"readonly\\\",[[22,8,[\\\"accessKey\\\"]]],null]],[9],[0,\\\" \\\"],[1,[22,8,[\\\"label\\\"]],false],[0,\\\" \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"each\\\",[[23,[\\\"editableRecords\\\"]]],null,{\\\"statements\\\":[[4,\\\"unless\\\",[[22,8,[\\\"isMultiType\\\"]]],null,{\\\"statements\\\":[[0,\\\"                  \\\"],[7,\\\"td\\\"],[12,\\\"class\\\",[28,[\\\"edit-cell data-test-\\\",[22,8,[\\\"id\\\"]],\\\"-input\\\"]]],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,8,[\\\"editable\\\"]],false],null]],null,{\\\"statements\\\":[[0,\\\"                      \\\"],[1,[27,\\\"get\\\",[[22,9,[]],[22,8,[\\\"valuePath\\\"]]],null],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                      \\\"],[1,[27,\\\"component\\\",[[27,\\\"concat\\\",[\\\"form-components/\\\",[22,8,[\\\"type\\\"]]],null]],[[\\\"record\\\",\\\"value\\\",\\\"valuePath\\\",\\\"disabled\\\",\\\"extra\\\",\\\"triggerId\\\",\\\"accessKey\\\",\\\"maxlength\\\",\\\"decimal\\\",\\\"multiLine\\\",\\\"onChange\\\",\\\"onCreate\\\",\\\"onRemove\\\"],[[27,\\\"readonly\\\",[[22,9,[]]],null],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,9,[]],[22,8,[\\\"valuePath\\\"]]],null]],null],[27,\\\"readonly\\\",[[22,8,[\\\"valuePath\\\"]]],null],[27,\\\"and\\\",[[23,[\\\"editModal\\\",\\\"isLinkMode\\\"]],[27,\\\"gt\\\",[[22,10,[]],0],null]],null],[27,\\\"readonly\\\",[[22,8,[\\\"extra\\\"]]],null],[27,\\\"readonly\\\",[[22,8,[\\\"id\\\"]]],null],[27,\\\"readonly\\\",[[22,8,[\\\"accessKey\\\"]]],null],[27,\\\"readonly\\\",[[22,8,[\\\"maxlength\\\"]]],null],[27,\\\"readonly\\\",[[22,8,[\\\"decimal\\\"]]],null],[27,\\\"readonly\\\",[[22,8,[\\\"multiLine\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCellValueChange\\\",[22,9,[]],[22,8,[\\\"valuePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCellValueAppend\\\",[22,9,[]],[22,8,[\\\"valuePath\\\"]],[22,8,[\\\"modelName\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCellValueRemove\\\",[22,9,[]],[22,8,[\\\"valuePath\\\"]]],null]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"                  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                  \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"\\\\n                  \\\"],[1,[27,\\\"component\\\",[[27,\\\"concat\\\",[\\\"form-components/\\\",[22,8,[\\\"type\\\"]]],null]],[[\\\"record\\\",\\\"field\\\",\\\"value\\\",\\\"valuePath\\\",\\\"disabled\\\",\\\"accessKey\\\",\\\"maxlength\\\",\\\"decimal\\\",\\\"multiLine\\\",\\\"extra\\\",\\\"triggerId\\\",\\\"onChange\\\",\\\"onCreate\\\",\\\"onRemove\\\"],[[27,\\\"readonly\\\",[[22,9,[]]],null],[27,\\\"readonly\\\",[[22,8,[]]],null],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,9,[]],[22,8,[\\\"valuePath\\\"]]],null]],null],[27,\\\"readonly\\\",[[22,8,[\\\"valuePath\\\"]]],null],[27,\\\"and\\\",[[23,[\\\"editModal\\\",\\\"isLinkMode\\\"]],[27,\\\"gt\\\",[[22,10,[]],0],null]],null],[27,\\\"readonly\\\",[[22,8,[\\\"accessKey\\\"]]],null],[27,\\\"readonly\\\",[[22,8,[\\\"maxlength\\\"]]],null],[27,\\\"readonly\\\",[[22,8,[\\\"decimal\\\"]]],null],[27,\\\"readonly\\\",[[22,8,[\\\"multiLine\\\"]]],null],[27,\\\"readonly\\\",[[22,8,[\\\"extra\\\"]]],null],[27,\\\"readonly\\\",[[22,8,[\\\"id\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCellValueChange\\\",[22,9,[]],[22,8,[\\\"valuePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCellValueAppend\\\",[22,9,[]],[22,8,[\\\"valuePath\\\"]],[22,8,[\\\"modelName\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCellValueRemove\\\",[22,9,[]],[22,8,[\\\"valuePath\\\"]]],null]]]],false],[0,\\\"\\\\n                  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[9,10]},null],[0,\\\"            \\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[22,8,[\\\"description\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[12,\\\"accessKey\\\",[27,\\\"readonly\\\",[[22,8,[\\\"accessKey\\\"]]],null]],[9],[0,\\\"\\\\n                  Description\\\\n                \\\"],[10],[0,\\\"\\\\n                \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n                \\\"],[1,[22,8,[\\\"description\\\"]],false],[0,\\\"\\\\n                \\\"],[10],[0,\\\"\\\\n              \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[8]},null]],\\\"parameters\\\":[7]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n    \\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null],[0,\\\" \\\\n\\\"]],\\\"parameters\\\":[6]},null],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"style\\\",\\\"width: 49%; float: right;\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"filteredSections\\\"]]],null,{\\\"statements\\\":[[4,\\\"unless\\\",[[27,\\\"eq\\\",[[22,1,[\\\"title\\\"]],\\\"Read Only\\\"],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,1,[\\\"align\\\"]],\\\"right\\\"],null]],null,{\\\"statements\\\":[[0,\\\"   \\\\n      \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"section-table mt-3\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"generic-widgets/form-widget/section\\\",null,[[\\\"section\\\"],[[27,\\\"readonly\\\",[[22,1,[]]],null]]],{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"subsections\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"3\\\"],[9],[0,\\\"\\\\n                  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-button-cell\\\"],[9],[0,\\\"\\\\n                      \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"form-button-primary\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"addItem\\\"],null]],[11,\\\"type\\\",\\\"button\\\"],[9],[0,\\\"\\\\n                        Add New Config\\\\n                      \\\"],[10],[0,\\\"\\\\n                  \\\"],[10],[0,\\\"\\\\n                \\\"],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"each\\\",[[22,2,[]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"unless\\\",[[22,3,[\\\"isMultiType\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[12,\\\"accessKey\\\",[27,\\\"readonly\\\",[[22,3,[\\\"accessKey\\\"]]],null]],[9],[0,\\\" \\\"],[1,[22,3,[\\\"label\\\"]],false],[0,\\\" \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"each\\\",[[23,[\\\"editableRecords\\\"]]],null,{\\\"statements\\\":[[4,\\\"unless\\\",[[22,3,[\\\"isMultiType\\\"]]],null,{\\\"statements\\\":[[0,\\\"                  \\\"],[7,\\\"td\\\"],[12,\\\"class\\\",[28,[\\\"edit-cell data-test-\\\",[22,3,[\\\"id\\\"]],\\\"-input\\\"]]],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,3,[\\\"editable\\\"]],false],null]],null,{\\\"statements\\\":[[0,\\\"                      \\\"],[1,[27,\\\"get\\\",[[22,4,[]],[22,3,[\\\"valuePath\\\"]]],null],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                      \\\"],[1,[27,\\\"component\\\",[[27,\\\"concat\\\",[\\\"form-components/\\\",[22,3,[\\\"type\\\"]]],null]],[[\\\"record\\\",\\\"value\\\",\\\"valuePath\\\",\\\"disabled\\\",\\\"extra\\\",\\\"triggerId\\\",\\\"accessKey\\\",\\\"maxlength\\\",\\\"decimal\\\",\\\"multiLine\\\",\\\"onChange\\\",\\\"onCreate\\\",\\\"onRemove\\\"],[[27,\\\"readonly\\\",[[22,4,[]]],null],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,4,[]],[22,3,[\\\"valuePath\\\"]]],null]],null],[27,\\\"readonly\\\",[[22,3,[\\\"valuePath\\\"]]],null],[27,\\\"and\\\",[[23,[\\\"editModal\\\",\\\"isLinkMode\\\"]],[27,\\\"gt\\\",[[22,5,[]],0],null]],null],[27,\\\"readonly\\\",[[22,3,[\\\"extra\\\"]]],null],[27,\\\"readonly\\\",[[22,3,[\\\"id\\\"]]],null],[27,\\\"readonly\\\",[[22,3,[\\\"accessKey\\\"]]],null],[27,\\\"readonly\\\",[[22,3,[\\\"maxlength\\\"]]],null],[27,\\\"readonly\\\",[[22,3,[\\\"decimal\\\"]]],null],[27,\\\"readonly\\\",[[22,3,[\\\"multiLine\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCellValueChange\\\",[22,4,[]],[22,3,[\\\"valuePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCellValueAppend\\\",[22,4,[]],[22,3,[\\\"valuePath\\\"]],[22,3,[\\\"modelName\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCellValueRemove\\\",[22,4,[]],[22,3,[\\\"valuePath\\\"]]],null]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"                  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                  \\\"],[7,\\\"td\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[9],[0,\\\"\\\\n                  \\\"],[1,[27,\\\"component\\\",[[27,\\\"concat\\\",[\\\"form-components/\\\",[22,3,[\\\"type\\\"]]],null]],[[\\\"record\\\",\\\"field\\\",\\\"value\\\",\\\"valuePath\\\",\\\"disabled\\\",\\\"accessKey\\\",\\\"maxlength\\\",\\\"decimal\\\",\\\"multiLine\\\",\\\"extra\\\",\\\"triggerId\\\",\\\"onChange\\\",\\\"onCreate\\\",\\\"onRemove\\\"],[[27,\\\"readonly\\\",[[22,4,[]]],null],[27,\\\"readonly\\\",[[22,3,[]]],null],[27,\\\"readonly\\\",[[27,\\\"get\\\",[[22,4,[]],[22,3,[\\\"valuePath\\\"]]],null]],null],[27,\\\"readonly\\\",[[22,3,[\\\"valuePath\\\"]]],null],[27,\\\"and\\\",[[23,[\\\"editModal\\\",\\\"isLinkMode\\\"]],[27,\\\"gt\\\",[[22,5,[]],0],null]],null],[27,\\\"readonly\\\",[[22,3,[\\\"accessKey\\\"]]],null],[27,\\\"readonly\\\",[[22,3,[\\\"maxlength\\\"]]],null],[27,\\\"readonly\\\",[[22,3,[\\\"decimal\\\"]]],null],[27,\\\"readonly\\\",[[22,3,[\\\"multiLine\\\"]]],null],[27,\\\"readonly\\\",[[22,3,[\\\"extra\\\"]]],null],[27,\\\"readonly\\\",[[22,3,[\\\"id\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCellValueChange\\\",[22,4,[]],[22,3,[\\\"valuePath\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCellValueAppend\\\",[22,4,[]],[22,3,[\\\"valuePath\\\"]],[22,3,[\\\"modelName\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCellValueRemove\\\",[22,4,[]],[22,3,[\\\"valuePath\\\"]]],null]]]],false],[0,\\\"\\\\n                  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[4,5]},null],[0,\\\"            \\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[22,3,[\\\"description\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[12,\\\"accessKey\\\",[27,\\\"readonly\\\",[[22,3,[\\\"accessKey\\\"]]],null]],[9],[0,\\\"\\\\n                  Description\\\\n                \\\"],[10],[0,\\\"\\\\n                \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n                \\\"],[1,[22,3,[\\\"description\\\"]],false],[0,\\\"\\\\n                \\\"],[10],[0,\\\"\\\\n              \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[3]},null]],\\\"parameters\\\":[2]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n    \\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\" \\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\" \\\"],[10],[0,\\\" \\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[1,[21,\\\"notification-bar\\\"],false]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/generic-widgets/form-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/map-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/base-widget/component\", \"tomtom\", \"adept-iq/config/environment\"], function (_exports, _component, _tomtom, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    classNames: ['map-widget'],\n    layoutName: 'components/generic-widgets/map-widget',\n    classNameBindings: ['testMapWidget'],\n    testMapWidget: false,\n    lat: 0,\n    lng: 0,\n    zoom: 12,\n    map: null,\n    // tomtom will only accept an element ID, so create a unique one\n    mapElementId: Ember.computed('elementId', function () {\n      const elementId = this.get('elementId');\n      return `${elementId}-map`;\n    }),\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      const mapElementId = this.get('mapElementId');\n      const lat = this.get('lat');\n      const lng = this.get('lng');\n      const zoom = this.get('zoom');\n      Ember.run.scheduleOnce('afterRender', () => {\n        const map = _tomtom.default.map(mapElementId, {\n          zoom,\n          center: [lat, lng],\n          key: _environment.default.tomtom.key,\n          source: _environment.default.tomtom.source,\n          basePath: _environment.default.tomtom.basePath,\n          styleUrlMapping: _environment.default.tomtom.styleUrlMapping\n        });\n\n        this.set('map', map);\n        this.didInitializeMap(map);\n      });\n    },\n\n    // overload in sub-class\n    didInitializeMap()\n    /* map */\n    {},\n\n    willDestroyElement() {\n      this.get('map').remove();\n      this.set('map', null);\n\n      this._super(...arguments);\n    },\n\n    onWidgetResize() {\n      this._super(...arguments);\n\n      const map = this.get('map');\n      if (!map) return;\n      Ember.run.scheduleOnce('afterRender', () => {\n        map.invalidateSize();\n      });\n    },\n\n    onLatLngOrZoomChange: Ember.observer('lat', 'lng', 'zoom', function () {\n      Ember.run.scheduleOnce('afterRender', this, 'updateMapView');\n    }),\n\n    updateMapView() {\n      const map = this.get('map');\n      const lat = this.get('lat');\n      const lng = this.get('lng');\n      const zoom = this.get('zoom');\n      if (!map || !lat || !lng || !zoom) return;\n      map.setView([lat, lng], zoom, {\n        animate: false\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/map-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"KezyjGq6\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[12,\\\"id\\\",[21,\\\"mapElementId\\\"]],[11,\\\"class\\\",\\\"tomtom-map\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/generic-widgets/map-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/side-drawer/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['side-drawer']\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/side-drawer/side-drawer-body/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['side-drawer-body']\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/side-drawer/side-drawer-body/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"GQSHdMNz\",\n    \"block\": \"{\\\"symbols\\\":[\\\"&default\\\"],\\\"statements\\\":[[14,1],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/generic-widgets/side-drawer/side-drawer-body/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/side-drawer/side-drawer-header/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['side-drawer-header'],\n    title: 'Side Drawer',\n    // these have no effect unless a click handler is passed\n    canClose: true,\n    canShrink: true,\n    canRefresh: true,\n    canSave: true,\n    onCloseClick: null,\n    onShrinkClick: null,\n    onRefreshClick: null,\n    onSaveClick: null\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/side-drawer/side-drawer-header/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"QR3dqWce\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"h5\\\"],[11,\\\"class\\\",\\\"side-drawer-title\\\"],[9],[0,\\\"\\\\n  \\\"],[1,[21,\\\"title\\\"],false],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-buttons\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"onShrinkClick\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"side-drawer-button\\\"],[11,\\\"title\\\",\\\"Shrink\\\"],[11,\\\"data-test-toggle-side-drawer\\\",\\\"\\\"],[12,\\\"disabled\\\",[27,\\\"not\\\",[[23,[\\\"canShrink\\\"]]],null]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onShrinkClick\\\"]]],null]],[9],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-2x fa-angle-double-left\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"onRefreshClick\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"side-drawer-button\\\"],[11,\\\"title\\\",\\\"Refresh\\\"],[12,\\\"disabled\\\",[27,\\\"not\\\",[[23,[\\\"canRefresh\\\"]]],null]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onRefreshClick\\\"]]],null]],[9],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-2x fa-refresh\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"onSaveClick\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"side-drawer-button\\\"],[11,\\\"title\\\",\\\"Save\\\"],[12,\\\"disabled\\\",[27,\\\"not\\\",[[23,[\\\"canSave\\\"]]],null]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onSaveClick\\\"]]],null]],[9],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-2x fa-check\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"onCloseClick\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"side-drawer-button\\\"],[11,\\\"data-test-close-side-drawer\\\",\\\"\\\"],[11,\\\"title\\\",\\\"Close\\\"],[12,\\\"disabled\\\",[27,\\\"not\\\",[[23,[\\\"canClose\\\"]]],null]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onCloseClick\\\"]]],null]],[9],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-2x fa-times\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/generic-widgets/side-drawer/side-drawer-header/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/side-drawer/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"0ZOiQHys\",\n    \"block\": \"{\\\"symbols\\\":[\\\"&default\\\"],\\\"statements\\\":[[14,1,[[27,\\\"hash\\\",null,[[\\\"body\\\",\\\"header\\\"],[[27,\\\"component\\\",[\\\"generic-widgets/side-drawer/side-drawer-body\\\"],null],[27,\\\"component\\\",[\\\"generic-widgets/side-drawer/side-drawer-header\\\"],null]]]]]]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/generic-widgets/side-drawer/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/tree-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/tree-widget/template\"], function (_exports, _template) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const ROW_SELECTOR = '.tree-widget-row';\n  const CONTROL_SELECTOR = '.btn-expand,.tree-widget-row-input';\n  const EXPAND_BUTTON_SELECTOR = '.btn-expand';\n\n  var _default = Ember.Component.extend({\n    layout: _template.default,\n    classNames: ['tree-widget'],\n    rowComponent: 'generic-widgets/tree-widget/tree-widget-row',\n    // override these when extending component\n    rootNodes: null,\n    isLoading: false,\n    // eliminates hierarchical tree structure for easier rendering and styling\n    flattenedNodes: Ember.computed('rootNodes.@each.visibleTree', function () {\n      const rootNodes = this.get('rootNodes');\n      if (Ember.isEmpty(rootNodes)) return [];\n      return rootNodes.sortBy('label').reduce((arr, node) => {\n        const nodes = node.get('visibleTree');\n        arr.push(...nodes);\n        return arr;\n      }, []);\n    }),\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this._onKeyDown = event => {\n        Ember.run.schedule('afterRender', this, 'onKeyDown', event);\n      };\n\n      this.$().on('keydown', this._onKeyDown);\n      this.$(CONTROL_SELECTOR).first().focus();\n    },\n\n    willRemoveElement() {\n      this.$().off('keydown', this._onKeyDown);\n      this._onKeyDown = null;\n\n      this._super(...arguments);\n    },\n\n    onKeyDown(event) {\n      switch (event.key) {\n        case 'ArrowUp':\n          return this.onArrowUp(event);\n\n        case 'ArrowDown':\n          return this.onArrowDown(event);\n\n        case 'ArrowLeft':\n          return this.onArrowLeft(event);\n\n        case 'ArrowRight':\n          return this.onArrowRight(event);\n\n        default:\n          return '';\n      }\n    },\n\n    onArrowUp(event) {\n      const row = event.target.closest(ROW_SELECTOR);\n      const previousRow = row.previousElementSibling;\n      if (!previousRow) return;\n      const control = previousRow.querySelector(CONTROL_SELECTOR);\n      if (!control) return;\n      event.preventDefault();\n      control.focus();\n    },\n\n    onArrowDown(event) {\n      const row = event.target.closest(ROW_SELECTOR);\n      const nextRow = row.nextElementSibling;\n      if (!nextRow) return;\n      const control = nextRow.querySelector(CONTROL_SELECTOR);\n      if (!control) return;\n      event.preventDefault();\n      control.focus();\n    },\n\n    onArrowLeft(event) {\n      const row = event.target.closest(ROW_SELECTOR);\n      if (!row.classList.contains('is-expanded')) return;\n      const expandButton = row.querySelector(EXPAND_BUTTON_SELECTOR);\n      if (!expandButton) return;\n      event.preventDefault();\n      expandButton.click();\n    },\n\n    onArrowRight(event) {\n      const row = event.target.closest(ROW_SELECTOR);\n\n      if (!row.classList.contains('is-expandable') || row.classList.contains('is-expanded')) {\n        return;\n      }\n\n      const expandButton = row.querySelector(EXPAND_BUTTON_SELECTOR);\n      if (!expandButton) return;\n      event.preventDefault();\n      expandButton.click();\n    },\n\n    click(event) {\n      const row = event.target.closest(ROW_SELECTOR);\n      const control = row.querySelector(CONTROL_SELECTOR);\n\n      if (control) {\n        control.focus();\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/tree-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"Ieqqvm/b\",\n    \"block\": \"{\\\"symbols\\\":[\\\"node\\\"],\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isLoading\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"tree-widget-loading-spinner\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-circle-o-notch fa-spin\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"each\\\",[[23,[\\\"flattenedNodes\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[1,[27,\\\"component\\\",[[23,[\\\"rowComponent\\\"]]],[[\\\"node\\\"],[[22,1,[]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null]],\\\"parameters\\\":[]}]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/generic-widgets/tree-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/tree-widget/tree-widget-row/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/tree-widget/tree-widget-row/template\"], function (_exports, _template) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    layout: _template.default,\n    classNames: ['tree-widget-row'],\n    classNameBindings: ['isExpanded', 'isExpandable', 'isCategory', 'isObject', 'isValue', 'isNumber', 'isString', 'isBoolean', 'rowDepthClass', 'isModified', 'isOutdated'],\n    node: null,\n    // immutable\n    label: Ember.computed.readOnly('node.label'),\n    depth: Ember.computed.readOnly('node.depth'),\n    canEdit: Ember.computed.readOnly('node.canEdit'),\n    isExpandable: Ember.computed.readOnly('node.isExpandable'),\n    isCategory: Ember.computed.readOnly('node.isCategory'),\n    isCollection: Ember.computed.readOnly('node.isCollection'),\n    isObject: Ember.computed.readOnly('node.isObject'),\n    isValue: Ember.computed.readOnly('node.isValue'),\n    isNumber: Ember.computed.readOnly('node.isNumber'),\n    isString: Ember.computed.readOnly('node.isString'),\n    isBoolean: Ember.computed.readOnly('node.isBoolean'),\n    isColor: Ember.computed.readOnly('node.isColor'),\n    // component doesn't know about hidden/deleted children\n    children: Ember.computed.readOnly('node.visibleChildren'),\n    canAdd: Ember.computed.readOnly('node.canAdd'),\n    canRemove: Ember.computed.readOnly('node.canRemove'),\n    // mutable\n    value: Ember.computed.alias('node.value'),\n    isExpanded: Ember.computed.alias('node.isExpanded'),\n    // state\n    isOutdated: Ember.computed.alias('node.isTreeOutdated'),\n    isModified: Ember.computed.alias('node.isTreeModified'),\n    // indentation styling\n    rowDepthClass: Ember.computed('depth', function () {\n      const depth = this.get('depth');\n      return `row-depth-${depth}`;\n    }),\n    actions: {\n      onExpandButtonToggle() {\n        this.toggleProperty('node.isExpanded');\n      },\n\n      onRemoveButtonClicked() {\n        this.set('node.isRemoved', true);\n      },\n\n      onAddButtonClicked() {// TODO: implement add functionality\n      },\n\n      onColorChanged(colorValue) {\n        this.set('node.value', colorValue);\n      },\n\n      onCheckboxClick() {\n        this.toggleProperty('value');\n      },\n\n      onTextInput(text) {\n        this.set('node.value', text);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/generic-widgets/tree-widget/tree-widget-row/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"AiEuadBA\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isExpandable\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn-expand\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onExpandButtonToggle\\\"],null]],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isExpanded\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-minus-square-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-plus-square-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"tree-widget-row-icon\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"and\\\",[[23,[\\\"isCategory\\\"]],[23,[\\\"isExpanded\\\"]]],null]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-folder-open-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isCategory\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-folder-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isObject\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-file-text-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isString\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-font\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isNumber\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-hashtag\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isBoolean\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-check\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isColor\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-eyedropper\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-question\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n  \\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}],[10],[0,\\\"\\\\n\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"tree-widget-row-label\\\"],[9],[0,\\\"\\\\n  \\\"],[1,[21,\\\"label\\\"],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isCategory\\\"]]],null,{\\\"statements\\\":[[0,\\\"    (\\\"],[1,[23,[\\\"children\\\",\\\"length\\\"]],false],[0,\\\")\\\\n\\\"]],\\\"parameters\\\":[]},null],[10],[0,\\\"\\\\n\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"tree-widget-row-value\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"or\\\",[[23,[\\\"isCategory\\\"]],[23,[\\\"isObject\\\"]]],null]],null,{\\\"statements\\\":[],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isColor\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[1,[27,\\\"spectrum-color-picker\\\",null,[[\\\"preferredFormat\\\",\\\"onChange\\\",\\\"color\\\",\\\"flat\\\",\\\"showInput\\\"],[\\\"hex\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onColorChanged\\\"],null],[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null],true,true]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isBoolean\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"input\\\"],[12,\\\"id\\\",[28,[[21,\\\"elementId\\\"],\\\"-checkbox\\\"]]],[11,\\\"class\\\",\\\"tree-widget-row-input tree-widget-row-input-checkbox\\\"],[12,\\\"checked\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[12,\\\"disabled\\\",[27,\\\"not\\\",[[23,[\\\"canEdit\\\"]]],null]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxClick\\\"],null]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"tree-widget-row-input tree-widget-row-input-text\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[12,\\\"disabled\\\",[27,\\\"not\\\",[[23,[\\\"canEdit\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onTextInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n  \\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}],[10],[0,\\\"\\\\n\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"tree-widget-row-controls\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"canRemove\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn-danger btn-delete\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onRemoveButtonClicked\\\"],null]],[9],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-remove\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/generic-widgets/tree-widget/tree-widget-row/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/global-spinner/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['global-spinner']\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/global-spinner/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"w3ojHsNh\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-3x fa-circle-o-notch fa-spin\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/global-spinner/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/header-nav/component\", [\"exports\", \"moment\", \"adept-iq/config/environment\"], function (_exports, _moment, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    editModal: Ember.inject.service(),\n    tooltip: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    session: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    scheduleGeneration: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    stopsReorder: Ember.inject.service(),\n    store: Ember.inject.service(),\n    classNames: ['row', 'no-gutters', 'header-wrapper', 'header-nav'],\n    classNameBindings: ['isLightMode:is-light:is-dark', 'isReordering'],\n    dashboards: null,\n    transitionTo: null,\n    configureWorkspaceAllowed: false,\n    saveWorkspaceAllowed: false,\n    saveAsWorkspaceAllowed: false,\n    deleteWorkspaceAllowed: false,\n    openWorkspaceAllowed: false,\n    generateScheduleAllowed: false,\n    closeScheduleAllowed: false,\n    systemConfigurationAllowed: false,\n    resetPasswordAllowed: false,\n    logoutAllowed: true,\n    isReordering: Ember.computed.alias('stopsReorder.reorderInProgress'),\n    isEditing: Ember.computed.alias('workspace.isEditing'),\n    isLightMode: Ember.computed.alias('workspace.isLightMode'),\n    isAuthenticated: Ember.computed.alias('session.isAuthenticated'),\n    abridgedDetail: Ember.computed('errorMessage.message', function () {\n      return this.get('errorMessage').message.detail;\n    }),\n    errorMessageInfoContentChange: Ember.observer('errorMessage.info', function () {\n      Ember.run.later(function () {\n        if (Ember.$('.text-info-multi').length > 0) {\n          Ember.$('.text-info-multi').height(Ember.$('.text-info-multi')[0].scrollHeight);\n        }\n      }, 500);\n    }),\n    configPermissionsChange: Ember.observer('workspace.configPermissions', function () {\n      this.resetHeaderFunctions();\n      this.configureHeaderPermission();\n    }),\n    oneDayTimelineNotFuture: Ember.computed('workspace.{startDate,endDate}', function () {\n      const startDate = (0, _moment.default)(this.get('workspace.startDate'));\n      const endDate = (0, _moment.default)(this.get('workspace.endDate'));\n      const currentDate = (0, _moment.default)().startOf('day');\n\n      if (startDate.format('YYYY-MMM-D') !== endDate.format('YYYY-MMM-D')) {\n        return false;\n      }\n\n      if (endDate.startOf('day').isAfter(currentDate)) {\n        return false;\n      }\n\n      const routes = this.get('activeContext.workspaceData.route'); // Only 1 date is selected by this point\n      // make sure that the schedule is not locked already.\n\n      if (routes.some(route => {\n        return route.get('schedule.locked');\n      })) {\n        return false;\n      }\n\n      return true;\n    }),\n\n    init() {\n      this._super(...arguments);\n\n      this.configureHeaderPermission();\n      this.set('fullMode', _environment.default.APP.fullMode);\n    },\n\n    resetHeaderFunctions() {\n      this.set('configureWorkspaceAllowed', true);\n      this.set('saveWorkspaceAllowed', true);\n      this.set('saveAsWorkspaceAllowed', true);\n      this.set('deleteWorkspaceAllowed', true);\n      this.set('openWorkspaceAllowed', true);\n      this.set('generateScheduleAllowed', true);\n      this.set('closeScheduleAllowed', true);\n      this.set('systemConfigurationAllowed', true);\n      this.set('resetPasswordAllowed', true);\n      this.set('logoutAllowed', true);\n    },\n\n    configureHeaderPermission() {\n      const configPermissions = this.get('workspace.configPermissions');\n\n      if (!Ember.isNone(configPermissions)) {\n        const headerFunctions = configPermissions.headerFunctions;\n\n        if (!Ember.isNone(headerFunctions)) {\n          headerFunctions.forEach(headerFunction => {\n            if (headerFunction === 'all') {\n              this.set('configureWorkspaceAllowed', true);\n              this.set('saveWorkspaceAllowed', true);\n              this.set('saveAsWorkspaceAllowed', true);\n              this.set('deleteWorkspaceAllowed', true);\n              this.set('openWorkspaceAllowed', true);\n              this.set('generateScheduleAllowed', true);\n              this.set('closeScheduleAllowed', true);\n              this.set('systemConfigurationAllowed', true);\n              this.set('resetPasswordAllowed', true);\n              this.set('logoutAllowed', true);\n            } else {\n              const allowedFunctionName = headerFunction + 'Allowed';\n              this.set(allowedFunctionName, true);\n            }\n          });\n        }\n      }\n    },\n\n    actions: {\n      onCloseReorder() {\n        this.get('stopsReorder').stopReorder();\n      },\n\n      onEditWorkspaceClick(dropdown) {\n        const workspace = this.get('workspace');\n        dropdown.actions.close();\n        if (this.get('isEditing')) return;\n        const displayName = 'Add Widgets';\n        workspace.pushState('editWorkspace', {\n          displayName\n        }).then(() => {// Q: state pushed?\n        }).catch(() => {// denied access\n        });\n      },\n\n      onSaveWorkspaceClick(dropdown) {\n        dropdown.actions.close();\n        const dashboardModel = this.get('workspace.dashboardModel'); //console.log('dashboardModel ',dashboardModel);\n\n        if (dashboardModel.get('isDefaultWorkspace')) {\n          const tooltip = this.get('tooltip');\n          tooltip.setProperties({\n            tip: 'Unable to Save. You must use the \"Save Workspace As\" option to save changes made to a default workspace.',\n            primaryActionText: 'Ok',\n\n            primaryAction() {\n              tooltip.reset();\n            }\n\n          });\n          return;\n        }\n\n        const dashboardInstance = this.get('workspace.dashboard'); //console.log('dashboardInstance ',dashboardInstance);\n\n        dashboardModel.commitInstance(dashboardInstance);\n        /*eslint-disable */\n\n        return dashboardModel.save();\n        /*eslint-enable */\n      },\n\n      onSaveWorkspaceAsClick(dropdown) {\n        dropdown.actions.close();\n        this.get('workspace').pushState('saveWorkspaceAs');\n      },\n\n      onDeleteWorkspaceClick(dropdown) {\n        dropdown.actions.close();\n        const dashboardModel = this.get('workspace.dashboardModel');\n\n        if (dashboardModel.get('isDefaultWorkspace')) {\n          const tooltip = this.get('tooltip');\n          tooltip.setProperties({\n            tip: 'Unable to delete. Default workspaces cannot be deleted.',\n            primaryActionText: 'Ok',\n\n            primaryAction() {\n              tooltip.reset();\n            }\n\n          });\n          return;\n        }\n\n        this.get('workspace').pushState('deleteWorkspace');\n      },\n\n      onOpenWorkspaceClick(dropdown) {\n        dropdown.actions.close();\n        this.get('workspace').pushState('openWorkspace');\n      },\n\n      toggleTimelinePicker() {\n        const workspace = this.get('workspace');\n        workspace.toggleProperty('isEditingTimeline');\n      },\n\n      onGenerateScheduleClick(dropdown) {\n        dropdown.actions.close();\n        this.get('scheduleGeneration.task').perform();\n      },\n\n      transitionToForgotPassword(dropdown, link) {\n        dropdown.actions.close();\n        this.transitionTo(link);\n      },\n\n      transitionToModalAndClose(dropdown, modal) {\n        dropdown.actions.close();\n        this.transitionTo(`index.modals.${modal}`);\n      },\n\n      toggleLayoutType(dropdown) {\n        dropdown.actions.close();\n        this.toggleProperty('isLightMode');\n      },\n\n      onEditApplyCancel() {\n        this.get('editModal').cancel();\n      },\n\n      onEditApplyCommit() {\n        this.get('editModal').commit();\n      },\n\n      onErrorDismiss() {\n        this.get('errorMessage').shiftError();\n      },\n\n      onWarningDismiss() {\n        this.get('errorMessage').shiftWarning();\n      },\n\n      onInfoDismiss() {\n        this.get('errorMessage').shiftInfo();\n      },\n\n      onCloseScheduleClick(dropdown) {\n        dropdown.actions.close();\n        this.get('workspace').pushState('closeSchedule');\n      },\n\n      onSystemConfigurationClick(dropdown) {\n        dropdown.actions.close();\n        this.get('workspace').pushState('editSystemConfiguration', {\n          displayName: 'System Configuration'\n        });\n      },\n\n      onLogout() {\n        this.onLogout();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/header-nav/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"HB6Y/bnb\",\n    \"block\": \"{\\\"symbols\\\":[\\\"dropdown\\\",\\\"dropdown\\\",\\\"dropdown\\\",\\\"dropdown\\\"],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"id\\\",\\\"header-left\\\"],[11,\\\"class\\\",\\\"col-2\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"link-to\\\",[\\\"index\\\"],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"logo-image\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"fullMode\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isAuthenticated\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"div\\\"],[11,\\\"id\\\",\\\"header-center\\\"],[11,\\\"class\\\",\\\"col text-center\\\"],[9],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"tooltip\\\",\\\"tip\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"span\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[23,[\\\"tooltip\\\",\\\"tip\\\"]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"tooltip\\\",\\\"secondaryAction\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn btn-outline-secondary data-test-secondary\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[23,[\\\"tooltip\\\",\\\"secondaryActionText\\\"]],false],[0,\\\"\\\\n        \\\"],[3,\\\"action\\\",[[22,0,[]],[23,[\\\"tooltip\\\",\\\"secondaryAction\\\"]]]],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"tooltip\\\",\\\"primaryAction\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn btn-outline-primary data-test-primary\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[23,[\\\"tooltip\\\",\\\"primaryActionText\\\"]],false],[0,\\\"\\\\n        \\\"],[3,\\\"action\\\",[[22,0,[]],[23,[\\\"tooltip\\\",\\\"primaryAction\\\"]]]],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"errorMessage\\\",\\\"warning\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"p\\\"],[11,\\\"class\\\",\\\"text-warning\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[27,\\\"readonly\\\",[[23,[\\\"errorMessage\\\",\\\"warning\\\",\\\"detail\\\"]]],null],false],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn btn-outline-primary ml-3\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onWarningDismiss\\\"],null]],[9],[0,\\\"\\\\n\\\\n          Dismiss\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"editModal\\\",\\\"hasApplied\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"p\\\"],[9],[0,\\\"\\\\n          Would you like to commit your changes?\\\\n\\\\n          \\\"],[7,\\\"button\\\"],[11,\\\"data-test-header-cancel-button\\\",\\\"\\\"],[11,\\\"class\\\",\\\"btn btn-outline-secondary ml-3\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onEditApplyCancel\\\"],null]],[9],[0,\\\"\\\\n\\\\n            Cancel\\\\n          \\\"],[10],[0,\\\"\\\\n\\\\n          \\\"],[7,\\\"button\\\"],[11,\\\"data-test-header-commit-button\\\",\\\"\\\"],[11,\\\"class\\\",\\\"btn btn-outline-primary\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onEditApplyCommit\\\"],null]],[9],[0,\\\"\\\\n\\\\n            Commit\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"errorMessage\\\",\\\"message\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"p\\\"],[11,\\\"class\\\",\\\"text-danger\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[21,\\\"abridgedDetail\\\"],false],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn btn-outline-primary ml-3\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onErrorDismiss\\\"],null]],[9],[0,\\\"\\\\n\\\\n          Dismiss\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"errorMessage\\\",\\\"info\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"table\\\"],[11,\\\"align\\\",\\\"center\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"textarea\\\"],[11,\\\"class\\\",\\\"text-info text-info-multi\\\"],[11,\\\"readonly\\\",\\\"\\\"],[9],[0,\\\"\\\"],[1,[27,\\\"readonly\\\",[[23,[\\\"errorMessage\\\",\\\"info\\\",\\\"detail\\\"]]],null],false],[0,\\\"            \\\"],[10],[0,\\\"          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"style\\\",\\\"vertical-align:top\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn btn-outline-primary ml-3\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInfoDismiss\\\"],null]],[9],[0,\\\"\\\\n\\\\n              Dismiss\\\\n            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[23,[\\\"isReordering\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"reorder-stop\\\"],[9],[0,\\\"Reordering Stops...\\\\n        \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn btn-outline-primary ml-3\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onCloseReorder\\\"],null]],[9],[0,\\\"\\\\n\\\\n          Cancel\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"id\\\",\\\"header-right\\\"],[11,\\\"class\\\",\\\"col-3 row no-gutters text-center\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"col\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"basic-dropdown\\\",null,[[\\\"horizontalPosition\\\"],[\\\"right\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,4,[\\\"trigger\\\"]],\\\"expected `dropdown.trigger` to be a contextual component but found a string. Did you mean `(component dropdown.trigger)`? ('adept-iq/pods/components/header-nav/template.hbs' @ L107:C11) \\\"],null]],[[\\\"class\\\"],[\\\"header-action-button initial-focus-control\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-th workspace-icon\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,4,[\\\"content\\\"]],\\\"expected `dropdown.content` to be a contextual component but found a string. Did you mean `(component dropdown.content)`? ('adept-iq/pods/components/header-nav/template.hbs' @ L111:C11) \\\"],null]],[[\\\"class\\\"],[\\\"header-nav-dropdown-content data-test-workspace-dropdown-content\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"configureWorkspaceAllowed\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"data-test-edit-workspace\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onEditWorkspaceClick\\\",[22,4,[]]],null]],[12,\\\"disabled\\\",[23,[\\\"workspace\\\",\\\"isEditing\\\"]]],[9],[0,\\\"\\\\n\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-cog\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\" Configure Workspace\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"saveWorkspaceAllowed\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"data-test-save-workspace\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSaveWorkspaceClick\\\",[22,4,[]]],null]],[12,\\\"disabled\\\",[23,[\\\"workspace\\\",\\\"isEditing\\\"]]],[9],[0,\\\"\\\\n\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-floppy-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\" Save Workspace\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"saveAsWorkspaceAllowed\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"data-test-saveas-workspace\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSaveWorkspaceAsClick\\\",[22,4,[]]],null]],[12,\\\"disabled\\\",[23,[\\\"workspace\\\",\\\"isEditing\\\"]]],[9],[0,\\\"\\\\n\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-floppy-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\" Save Workspace As\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"deleteWorkspaceAllowed\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"data-test-delete-workspace\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onDeleteWorkspaceClick\\\",[22,4,[]]],null]],[12,\\\"disabled\\\",[23,[\\\"workspace\\\",\\\"isEditing\\\"]]],[9],[0,\\\"\\\\n\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-trash-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\" Delete Workspace\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"openWorkspaceAllowed\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"data-test-open-workspace\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onOpenWorkspaceClick\\\",[22,4,[]]],null]],[12,\\\"disabled\\\",[23,[\\\"workspace\\\",\\\"isEditing\\\"]]],[9],[0,\\\"\\\\n\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-folder-open-o\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\" Open Workspace\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[4]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"basic-dropdown\\\",null,[[\\\"horizontalPosition\\\"],[\\\"right\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"col\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,3,[\\\"trigger\\\"]],\\\"expected `dropdown.trigger` to be a contextual component but found a string. Did you mean `(component dropdown.trigger)`? ('adept-iq/pods/components/header-nav/template.hbs' @ L168:C11) \\\"],null]],[[\\\"class\\\"],[\\\"header-action-button data-test-menu-plus-button\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-plus plus-icon\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,3,[\\\"content\\\"]],\\\"expected `dropdown.content` to be a contextual component but found a string. Did you mean `(component dropdown.content)`? ('adept-iq/pods/components/header-nav/template.hbs' @ L173:C9) \\\"],null]],[[\\\"class\\\"],[\\\"header-nav-dropdown-content\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"generateScheduleAllowed\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"data-test-generate-schedule\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onGenerateScheduleClick\\\",[22,3,[]]],null]],[9],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-list-alt\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\" Generate Schedule\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"and\\\",[[23,[\\\"closeScheduleAllowed\\\"]],[23,[\\\"oneDayTimelineNotFuture\\\"]]],null]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"data-test-close-schedule\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onCloseScheduleClick\\\",[22,3,[]]],null]],[9],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-list-alt\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\" Close Schedule\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[3]},null],[0,\\\"\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"col header-action-button\\\"],[11,\\\"tabindex\\\",\\\"0\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"toggleTimelinePicker\\\"],null]],[9],[0,\\\"\\\\n      \\\"],[7,\\\"img\\\"],[11,\\\"class\\\",\\\"svg-header-icon\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"basic-dropdown\\\",null,[[\\\"horizontalPosition\\\"],[\\\"right\\\"]],{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,2,[\\\"trigger\\\"]],\\\"expected `dropdown.trigger` to be a contextual component but found a string. Did you mean `(component dropdown.trigger)`? ('adept-iq/pods/components/header-nav/template.hbs' @ L200:C11) \\\"],null]],[[\\\"class\\\"],[\\\"col header-action-button data-test-header-cog\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-cog\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,2,[\\\"content\\\"]],\\\"expected `dropdown.content` to be a contextual component but found a string. Did you mean `(component dropdown.content)`? ('adept-iq/pods/components/header-nav/template.hbs' @ L204:C9) \\\"],null]],[[\\\"class\\\"],[\\\"header-nav-dropdown-content\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"systemConfigurationAllowed\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"data-test-system-configuration\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSystemConfigurationClick\\\",[22,2,[]]],null]],[9],[0,\\\"\\\\n            System Configuration\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"resetPasswordAllowed\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"data-test-reset-password\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"transitionToForgotPassword\\\",[22,2,[]],\\\"forgot-password\\\"],null]],[9],[0,\\\"\\\\n            Reset Password\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[9],[0,\\\"\\\\n          Version 1.0.1\\\\n        \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"logoutAllowed\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"data-test-logout\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onLogout\\\"],null]],[9],[0,\\\"\\\\n            Logout\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[2]},null],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isAuthenticated\\\"]]],null,{\\\"statements\\\":[[0,\\\" \\\"],[7,\\\"div\\\"],[11,\\\"id\\\",\\\"header-left\\\"],[11,\\\"class\\\",\\\"col text-right\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"basic-dropdown\\\",null,[[\\\"horizontalPosition\\\"],[\\\"right\\\"]],{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"trigger\\\"]],\\\"expected `dropdown.trigger` to be a contextual component but found a string. Did you mean `(component dropdown.trigger)`? ('adept-iq/pods/components/header-nav/template.hbs' @ L246:C11) \\\"],null]],[[\\\"class\\\"],[\\\"col header-action-button data-test-header-cog\\\"]],{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-cog\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"content\\\"]],\\\"expected `dropdown.content` to be a contextual component but found a string. Did you mean `(component dropdown.content)`? ('adept-iq/pods/components/header-nav/template.hbs' @ L250:C9) \\\"],null]],[[\\\"class\\\"],[\\\"header-nav-dropdown-content\\\"]],{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"div\\\"],[9],[0,\\\"\\\\n          Version 1.0.5\\\\n        \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"logoutAllowed\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"data-test-logout\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onLogout\\\"],null]],[9],[0,\\\"\\\\n            Logout\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[10],[0,\\\" \\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/header-nav/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/accounts-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/accounts-widget/config\", \"adept-iq/utils/populate-new-trip\", \"adept-iq/utils/populate-copy-trip\", \"adept-iq/utils/populate-edit-trip\", \"adept-iq/utils/populate-search-trip\", \"adept-iq/utils/populate-account\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\"], function (_exports, _component, _config, _populateNewTrip, _populateCopyTrip, _populateEditTrip, _populateSearchTrip, _populateAccount, _environment, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* eslint-disable ember/avoid-leaking-state-in-ember-objects */\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['accounts-widget'],\n    dragCoordinator: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    store: Ember.inject.service(),\n    trip: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    session: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    editComponent: 'iq-widgets/passengers-form-widget',\n    newTripComponent: 'iq-widgets/new-trip-form-widget',\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    saveTripRecordFunction(records, editComponentAction) {\n      console.log(' saveTripRecordFunction ', editComponentAction);\n      const me = this;\n      return new Ember.RSVP.Promise((resolve, reject) => {\n        let record = records.firstObject;\n        record.save().then(() => {\n          console.log('after saveTripRecordFunction ');\n          const tripId = record.get('id');\n          me.get('errorMessage').pushInfo({\n            detail: `Trip '${tripId}' successfully saved`\n          });\n          record.set('lastId', record.get('id'));\n          record.set('isForceDirty', false);\n\n          if (!isBlank(editComponentAction) && editComponentAction === 'onApplyClick') {\n            run(() => {\n              let recordRefresh = [];\n              let newtrip = (0, _populateEditTrip.default)(me.get('trip'), record, me.get('store'), me.get('geocode'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              recordRefresh.push(newtrip);\n              let newTripComponent = me.get('editSwitchTripComponent');\n\n              if (this.get('editModal.editComponent') !== null && this.get('editModal.editComponent') === this.get('editSwitchTripComponent')) {\n                newTripComponent = me.get('editTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          } else if (!isBlank(editComponentAction) && editComponentAction === 'onApplyClearClick') {\n            run(() => {\n              Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n              me.get('geocode').activateGeocode(false);\n              me.get('geocode').deactivateGeocode();\n              let recordRefresh = [];\n              let newtrip = (0, _populateNewTrip.default)(me.get('trip'), me.get('store'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              newtrip.set('lastId', record.get('lastId'));\n              recordRefresh.push(newtrip); //me.set('editableRecords',recordRefresh);\n              //me.set('records',recordRefresh);\n\n              let newTripComponent = me.get('newSwitchTripComponent');\n\n              if (me.get('editModal.editComponent') !== null && me.get('editModal.editComponent') === me.get('newSwitchTripComponent')) {\n                newTripComponent = me.get('newTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          }\n        }).catch(function (error) {\n          console.log(error);\n          reject(error);\n        });\n      });\n    },\n\n    prepareNewTrip(model) {\n      //console.log('prepareNewTrip ',model);\n      let trip = (0, _populateNewTrip.default)(this.get('trip'), this.get('store'));\n      (0, _populateAccount.default)(trip, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), model.acctCardNr, true);\n      trip.set('isForceDirty', true); //this.get('records').pushObject(trip);\n      //this.set('editModal.editableRecords',[]);\n      //this.get('editModal.editableRecords').pushObject(trip);\n\n      let newTripComponent = this.get('newTripComponent');\n      this.get('editModal').open(newTripComponent, [trip], this.get('saveTripRecordFunction').bind(this));\n    },\n\n    rowGroup: Ember.computed('row', function () {\n      return this.get('table.rows');\n    }).readOnly(),\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', [{\n        name: 'Add Trip',\n        action: model => {\n          this.prepareNewTrip(model);\n        }\n      }, {\n        name: 'View Activity Log',\n        action: () =>\n        /* models */\n        {}\n      }]);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/accounts-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/accounts-widget',\n    rowComponent: 'table/rows/otp-formatted-row',\n    modelName: 'account',\n    defaultSortId: 'name',\n    defaultSortAsc: false,\n    accessKey: 'a',\n    title: 'Accounts',\n    columns: [{\n      id: 'acctName',\n      index: 0,\n      type: 'text',\n      label: 'Name',\n      valuePath: 'acctName',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 60\n    }, {\n      id: 'acctCode',\n      type: 'text',\n      label: 'Code',\n      valuePath: 'acctCode',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 60\n    }, {\n      id: 'acctCardNr',\n      type: 'text',\n      label: 'Card Nr',\n      valuePath: 'acctCardNr',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 60\n    }, {\n      id: 'contactName',\n      type: 'text',\n      label: 'Contact Name',\n      valuePath: 'contactName',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 60\n    }, {\n      id: 'phoneNr',\n      type: 'text',\n      label: 'Phone Number',\n      valuePath: 'phoneNr',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 60\n    }, {\n      id: 'driverNotes',\n      type: 'text',\n      label: 'Driver Notes',\n      valuePath: 'driverNotes',\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'operatorNotes',\n      type: 'text',\n      label: 'Operator Notes',\n      valuePath: 'operatorNotes',\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'expiryDTM',\n      type: 'datetime',\n      label: 'Expiry Date',\n      valuePath: 'expiryDTM',\n      valuePreview: '09:00 AM',\n      editable: false,\n      format: 'YYYY-MM-DD hh:mm A',\n      defaultWidth: 50,\n      hidden: true\n    }, {\n      id: 'balance',\n      type: 'text',\n      label: 'Balance',\n      valuePath: 'balance',\n      valuePreview: 'Pick',\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'creditLimit',\n      type: 'text',\n      label: 'Credit Limit',\n      valuePath: 'creditLimit',\n      valuePreview: 'Pick',\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'tripsRemaining',\n      type: 'text',\n      label: 'Trips remaining',\n      valuePath: 'tripsRemaining',\n      valuePreview: 'Pick',\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'tripLimit',\n      type: 'text',\n      label: 'Trip Limit',\n      valuePath: 'tripLimit',\n      valuePreview: 'Pick',\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'Address',\n      index: 5,\n      type: 'enum-address',\n      label: 'Address',\n      valuePath: 'formattedFavoriteTripsPickup',\n      cellDesc: 'Addresses',\n      searchable: true,\n      editable: false,\n      hidden: false,\n      defaultWidth: 120\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/activity-log-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/activity-log-widget/config\", \"adept-iq/utils/focus_column_widget_row\"], function (_exports, _component, _config, _focus_column_widget_row) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['activity-log-widget'],\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    // need to sub-class this in specific widget\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    init() {\n      this._super(...arguments);\n\n      this.get('editmodalcontext.widgetModelData').forEach(record => {\n        this.get('records').pushObject(record);\n      });\n      let me = this;\n      Ember.run.later(function () {\n        (0, _focus_column_widget_row.default)(me);\n      }, 50);\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', []);\n    },\n\n    actions: {\n      closeWidget(event) {\n        this._super(...arguments);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/activity-log-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/activity-log-widget',\n    rowComponent: 'table/rows/otp-formatted-row',\n    modelName: 'tm-activity-log',\n    defaultSortId: 'id',\n    defaultSortAsc: false,\n    hideWidgetControls: true,\n    hideHeader: true,\n    checkBoxColumn: false,\n    isFormControls: true,\n    title: 'Trip logs',\n    download: true,\n    columns: [{\n      id: 'id',\n      type: 'uuid',\n      label: 'ID',\n      valuePath: 'id',\n      hidden: true,\n      isMapLabelVisible: false,\n      searchable: true,\n      defaultWidth: 60,\n      isMapMCGLabelVisible: false\n    }, {\n      id: 'tripId',\n      type: 'number',\n      label: 'Trip ID',\n      valuePath: 'tripId',\n      isMapLabelVisible: true,\n      searchable: true,\n      defaultWidth: 80,\n      isMapMCGLabelVisible: true,\n      sorted: false\n    }, {\n      id: 'type',\n      type: 'text',\n      label: 'Type',\n      valuePath: 'type',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 150,\n      sorted: false\n    }, {\n      id: 'actualTime',\n      type: 'time',\n      label: 'Time',\n      isMapLabelVisible: true,\n      valuePath: 'actualTime',\n      editable: false,\n      format: 'HH:mm A',\n      searchable: true,\n      defaultWidth: 100,\n      sorted: false\n    }, {\n      id: 'callSign',\n      type: 'text',\n      label: 'Call Sign',\n      valuePath: 'callSign',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      sorted: false\n    }, {\n      id: 'priority',\n      type: 'text',\n      label: 'priority',\n      valuePath: 'priority',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      sorted: false\n    }, {\n      id: 'logBy',\n      type: 'text',\n      label: 'Log By',\n      valuePath: 'logBy',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      sorted: false\n    }, {\n      id: 'Comments',\n      type: 'text',\n      label: 'Comments',\n      valuePath: 'comments',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 300,\n      sorted: false\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/address-lookup/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/address-lookup/config\", \"adept-iq/utils/populate-pickup\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/check-address-overwrite\", \"adept-iq/utils/focus_column_widget_row\", \"lodash\", \"adept-iq/utils/check-value\"], function (_exports, _component, _config, _populatePickup, _checkAddressFlags, _checkAddressOverwrite, _focus_column_widget_row, _lodash, _checkValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['address-lookup'],\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    // need to sub-class this in specific widget\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    init() {\n      this._super(...arguments);\n\n      let recordId = 1;\n      this.get('widgetModelData').forEach(record => {\n        this.get('records').pushObject(record);\n      });\n      console.log('this.get(records) ', this.get('records')); // this.set('records',this.get('widgetModelData'));\n\n      let me = this;\n      Ember.run.later(function () {\n        (0, _focus_column_widget_row.default)(me);\n      }, 100);\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', []);\n    },\n\n    validateAddresses(addressRecord) {\n      this.set('editModal.errors', []);\n\n      if (addressRecord.address.coord.lat === 0 || addressRecord.address.coord.lng === 0) {\n        this.get('editModal.errors').pushObject('Address does not have lat/lng. Please select position on the map.');\n      } else {\n        if (Ember.isBlank(addressRecord.address.streetNr)) {\n          this.get('editModal.errors').pushObject(addressRecord.passengerEvents[0].type + ' does not have street number');\n        }\n\n        (0, _checkAddressFlags.default)(this.get('record'));\n      }\n    },\n\n    actions: {\n      onRowRightClick(row, event) {},\n\n      closeWidget(event) {\n        this.get('geocode').set('activePOIResults', []);\n\n        this._super(...arguments);\n      },\n\n      onRowClick(row, event) {\n        let addressRecord = this.addressRecord;\n        let tripData = this.currentRecord;\n        let ttAddress = row.get('record');\n        console.log('ttAddress ', ttAddress);\n        this.closeWidget();\n        this.get('geocode').set('activePOIResults', []);\n        let overwriteAddress = true;\n        let overwriteAddressPop = (0, _checkAddressOverwrite.default)(addressRecord.address, ttAddress.address);\n\n        if (overwriteAddressPop) {\n          overwriteAddress = confirm('Do you want to overwrite Address');\n        }\n\n        if (overwriteAddress) {\n          try {\n            addressRecord.address.streetNr = ttAddress.address.streetNr;\n            addressRecord.address.streetName = ttAddress.address.streetName;\n            addressRecord.address.region = ttAddress.address.region;\n            addressRecord.address.state = ttAddress.address.state;\n            addressRecord.address.postCode = ttAddress.address.postalCode;\n\n            if (!Ember.isBlank(ttAddress.address.description) && ttAddress.address.description.length > 40) {\n              Ember.set(addressRecord.address, 'description', ttAddress.address.description.substring(0, 39));\n            } else {\n              Ember.set(addressRecord.address, 'description', ttAddress.address.description);\n            } //record.address.country = ttAddress.address.country;\n\n          } catch (e) {\n            console.log(e);\n          }\n\n          try {// Ember.set(addressRecord.address, 'description', checkValue(ttAddress.address.description));\n          } catch (e) {// record.address.formattedAddress =  checkValue(ttAddress.address.description);\n          }\n\n          try {\n            Ember.set(addressRecord.address.tomtomFormattedAddress.address, 'freeformAddress', (0, _checkValue.default)(addressRecord.address.streetNr) + \" \" + (0, _checkValue.default)(addressRecord.address.streetName) + \" \" + (0, _checkValue.default)(addressRecord.address.region));\n          } catch (e) {\n            console.log('e', e);\n\n            try {\n              addressRecord.address.tomtomFormattedAddress = {\n                address: {\n                  freeformAddress: (0, _checkValue.default)(addressRecord.address.streetNr) + \" \" + (0, _checkValue.default)(addressRecord.address.streetName) + \" \" + (0, _checkValue.default)(addressRecord.address.region)\n                }\n              };\n            } catch (e) {\n              console.log('e1 ', e);\n            }\n          }\n\n          try {\n            Ember.set(addressRecord.address, 'formattedAddress', (0, _checkValue.default)(ttAddress.freeformAddress));\n          } catch (e) {\n            addressRecord.address.formattedAddress = (0, _checkValue.default)(ttAddress.freeformAddress);\n          }\n\n          let options = this.get('store').peekAll('tm-common-operational-attribute');\n          let requiredAttributes = ttAddress.requiredAttributes;\n\n          try {\n            addressRecord.address.coord.lat = ttAddress.address.coord.lat;\n            addressRecord.address.coord.lng = ttAddress.address.coord.lng;\n            this.get('geocode').addressMapPopulate(addressRecord);\n          } catch (e) {\n            console.log(e);\n          }\n\n          if (!Ember.isBlank(addressRecord.address) && !Ember.isBlank(addressRecord.address.coord) && addressRecord.address.coord.lat !== 0 && addressRecord.address.coord.lng !== 0 && addressRecord.address.coord.lat !== 181 && addressRecord.address.coord.lng !== 181 && !Ember.isBlank(addressRecord.address.coord.lat) && !Ember.isBlank(addressRecord.address.coord.lng)) {\n            try {\n              this.get('geocode').getGeonode(addressRecord.address.coord.lat, addressRecord.address.coord.lng).then(result => {\n                const zoneData = this.get('store').peekRecord('zone', result.data.gpsAreaId);\n                Ember.set(addressRecord.address, 'geoNode', zoneData.get('name'));\n                let notes = zoneData.get('notes');\n                let zoneDriverNotes = \"\";\n                let zoneOperatorNotes = \"\";\n\n                if (!Ember.isBlank(notes)) {\n                  zoneDriverNotes = notes.driver;\n                  zoneOperatorNotes = notes.dispatcher;\n                }\n\n                Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.area', zoneDriverNotes);\n                Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.area', zoneOperatorNotes);\n                let options = this.get('store').peekAll('tm-common-operational-attribute');\n                let requiredAttributes = zoneData.get('requiredAttributes');\n                let areaAttributes = options.filter(function (o1) {\n                  // if match found return false\n                  return _lodash.default.findIndex(requiredAttributes, {\n                    'type': o1.type\n                  }) === -1 ? false : true;\n                });\n                Ember.set(tripData, 'editmodelcontext.attributes.area', areaAttributes);\n              });\n            } catch (e) {\n              console.log(e);\n            }\n          }\n\n          console.log('requiredAttributes ', requiredAttributes);\n          let addressAttributes = options.filter(function (o1) {\n            // if match found return false\n            return _lodash.default.findIndex(requiredAttributes, {\n              'type': o1.type\n            }) === -1 ? false : true;\n          });\n          console.log('buildingAttributes ', addressAttributes);\n\n          if (!Ember.isBlank(ttAddress.notes)) {\n            Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', (0, _checkValue.default)(ttAddress.notes.driver));\n            Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.address', (0, _checkValue.default)(ttAddress.notes.dispatcher));\n          } else {\n            Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', '');\n            Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.address', '');\n          }\n\n          Ember.set(tripData, 'editmodelcontext.attributes.address', addressAttributes);\n          (0, _checkAddressFlags.default)(tripData);\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/address-lookup/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/address-lookup',\n    rowComponent: 'table/rows/otp-formatted-row',\n    modelName: 'address-lookup',\n    defaultSortId: 'id',\n    defaultSortAsc: false,\n    hideWidgetControls: true,\n    hideHeader: true,\n    checkBoxColumn: false,\n    isFormControls: true,\n    title: 'Address search Details',\n    columns: [{\n      id: 'name',\n      type: 'text',\n      label: 'Name',\n      valuePath: 'address.description',\n      editable: false,\n      searchable: true,\n      hidden: false,\n      defaultWidth: 300\n    }, {\n      id: 'streetNumber',\n      type: 'text',\n      label: 'Street Number',\n      valuePath: 'address.streetNr',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 60\n    }, {\n      id: 'streetName',\n      type: 'text',\n      label: 'Street Name',\n      valuePath: 'address.streetName',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 300\n    }, {\n      id: 'unitNr',\n      type: 'text',\n      label: 'Unit Nr',\n      valuePath: 'address.unitNr',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 100\n    }, {\n      id: 'city',\n      type: 'text',\n      label: 'City',\n      valuePath: 'address.region',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 200\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/alert-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/alert-widget/config\", \"moment\", \"adept-iq/utils/range\"], function (_exports, _component, _config, _moment, _range) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    store: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    config: _config.default,\n    sortId: 'generatedAt',\n    sortAsc: false,\n\n    /*\n      Sample alerts:\n        'late':\n          \"Route <route number> running <OTP> min <behind / ahead of> plan: <number of trips> trips with late ETAs.\"\n        'danger':\n          \"Route <route number> running <OTP> min <behind / ahead of> plan: <number of trips> trips with ETAs in danger. \"\n        'info':\n          \"<number> unread messages\"\n          \"<driver name> not signed in to route <route number> on time\"\n          \"<driver name> not back from break on time\"\n          \"<number> trips not scheduled\"\n          ...\n         Alert model:\n          generatedAt: attr('date'),\n          alert: attr('string'),\n          category: attr('string'),\n          vehicles: hasMany('vehicle'),\n          drivers: hasMany('driver'),\n          routes: hasMany('route'),\n    */\n    fakeData: Ember.computed('', function () {\n      let store = this.get('store');\n      let vehicles = this.get('vehicleRecords');\n      let routes = this.get('routeRecords');\n      let drivers = this.get('driverRecords');\n      const arr = (0, _range.default)(12);\n      const category = ['late', 'danger', 'info'];\n      const descriptionsAndRecords = {\n        'late': alertData => {\n          alertData.otp = 1; // outside of service window is otp >= 1\n\n          let routeRecord = routes.next().value;\n\n          if (routeRecord) {\n            alertData.routes = [routeRecord];\n            let b = Math.floor(Math.random() * 20) + 10;\n            let c = Math.floor(Math.random() * 10) + 1;\n            let sign = Math.random() > 0.5 ? 'behind' : 'ahead of';\n            alertData.alert = `Route ${routeRecord.get('name')}\n                                running ${b}\n                                min ${sign}\n                                plan: ${c} trips with late ETAs.`;\n          }\n        },\n        'danger': alertData => {\n          alertData.otp = Math.random() / 5 + 0.8; // danger service window 0.8 < otp < 1.0\n\n          let routeRecord = routes.next().value;\n\n          if (routeRecord) {\n            alertData.routes = [routeRecord];\n            let b = Math.floor(Math.random() * 20) + 10;\n            let c = Math.floor(Math.random() * 10) + 1;\n            let sign = Math.random() > 0.5 ? 'behind' : 'ahead of';\n            alertData.alert = `Route ${routeRecord.get('name')}\n                              running ${b}\n                              min ${sign}\n                              plan: ${c} trips with ETAs in danger.`;\n          }\n        },\n        'info': alertData => {\n          alertData.otp = Math.random() / 5 * 4; // safe service window 0.0 < otp < 0.8\n\n          let c = Math.floor(Math.random() * 10) + 1;\n          let alerts = [alertData => {\n            alertData.alert = `${c} unread messages`;\n          }, alertData => {\n            let vehicleRecord = vehicles.next().value;\n            alertData.vehicles = [vehicleRecord];\n            alertData.alert = `Vehicle ${vehicleRecord.get('name')} communication lost`;\n          }, alertData => {\n            alertData.vehicles = [vehicles.next().value, vehicles.next().value, vehicles.next().value];\n            alertData.alert = `3 vehicles have no drivers:\n                                ${alertData.vehicles[0].get('name')},\n                                ${alertData.vehicles[1].get('name')},\n                                ${alertData.vehicles[2].get('name')},\n                                ...`;\n          }, alertData => {\n            alertData.drivers = [drivers.next().value, drivers.next().value, drivers.next().value];\n            alertData.alert = `3 drivers have no vehicles:\n                                ${alertData.drivers[0].get('driverId')},\n                                ${alertData.drivers[1].get('driverId')},\n                                ${alertData.drivers[2].get('driverId')},\n                                ...`;\n          }];\n          alerts[Math.floor(Math.random() * alerts.length)](alertData);\n        }\n      };\n      return arr.map(() => {\n        let alertData = {},\n            cat = category[Math.floor(Math.random() * category.length)];\n        let a = Math.floor(Math.random() * -20);\n        alertData.category = cat;\n        descriptionsAndRecords[cat](alertData);\n        alertData.generatedAt = (0, _moment.default)().add(a, 'm').format('LT');\n        alertData.id = Math.floor(Math.random() * 1000000000);\n        let alert = store.createRecord('alert', alertData);\n        return alert;\n      });\n    }),\n    recordArrayIterator: function* (recordArray, startIndex) {\n      while (startIndex < recordArray.length) {\n        yield recordArray.objectAtContent(startIndex++);\n      }\n    },\n\n    // overrides `generic-widgets/column-widget/component`\n    fetchDataQuery() {\n      // in lieu of actual API\n      console.warn('ALERT-WIDGET fetchDataQuery'); // eslint-disable-line no-console\n\n      return new Promise((resolve, reject) => {\n        let store = this.get('store');\n        let promises = [store.findAll('vehicle'), store.findAll('route'), store.findAll('ss-driver')];\n        Promise.all(promises).then(data => {\n          this.set('vehicleRecords', this.recordArrayIterator(data[0], 0));\n          this.set('routeRecords', this.recordArrayIterator(data[1], 0));\n          this.set('driverRecords', this.recordArrayIterator(data[2], 0));\n          resolve(this.sortRowData(this.get('fakeData')));\n        }).catch(e => reject(e));\n      });\n    },\n\n    // TODO: consider putting this in the `alert` model, as a CP.\n    categorize(otp) {//wait for real data\n    },\n\n    sortRowData(rows) {\n      let sign = this.get('sortAsc') ? 1 : -1;\n      return rows.sort((a, b) => {\n        let categoryA = this.categorize(a.get('otp'));\n        let categoryB = this.categorize(b.get('otp'));\n\n        if (categoryA !== categoryB) {\n          return categoryB - categoryA;\n        } else {\n          switch (this.get('sortId')) {\n            case 'generatedAt':\n              {\n                if (a.get('generatedAt') > b.get('generatedAt')) {\n                  return 1 * sign;\n                } else {\n                  return -1 * sign;\n                }\n              }\n\n            case 'alert':\n              {\n                if (a.get('alert') > b.get('alert')) {\n                  return 1 * sign;\n                } else {\n                  return -1 * sign;\n                }\n              }\n          }\n        }\n      });\n    },\n\n    processCheckedRecords(checkedRecords, relationName) {\n      let modelNames = {\n        'routes': 'route',\n        'vehicles': 'ss-vehicle',\n        'drivers': 'ss-driver'\n      };\n      let modelRecords = checkedRecords.mapBy(relationName);\n      let modelName = modelNames[relationName];\n      modelRecords = modelRecords.reduce((a, b) => {\n        if (Ember.isBlank(a) && Ember.isBlank(b)) {\n          return;\n        } else if (Ember.isBlank(a)) {\n          return b;\n        } else if (Ember.isBlank(b)) {\n          return a;\n        } else {\n          return a.concat(b);\n        }\n      }, []);\n      this.get('activeContext').setCheckedRecords(modelName, modelRecords || []);\n    },\n\n    actions: {\n      // overrides `generic-widgets/column-widget/component`\n      onColumnClick(column) {\n        if (!column.sorted) return;\n        this.set('sortId', column.get('id'));\n        this.set('sortAsc', column.get('ascending'));\n        Ember.run.scheduleOnce('afterRender', this, 'refreshData');\n      },\n\n      // overrides `iq-widgets/column-widget/component`\n      onRowCheckboxToggle() {\n        let relationNames = ['routes', 'vehicles', 'drivers'];\n        let checkedRecords = this.get('table.rows').filterBy('isChecked');\n        relationNames.map(relationName => this.processCheckedRecords(checkedRecords, relationName));\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/alert-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/alert-widget',\n    rowComponent: 'table/rows/otp-formatted-row',\n    modelName: 'alert',\n    title: 'Alerts',\n    hideWidgetControls: true,\n    columns: [{\n      id: 'generatedAt',\n      index: 0,\n      type: 'text',\n      label: 'Time',\n      valuePath: 'generatedAt',\n      editable: false,\n      hidden: false,\n      defaultWidth: 70\n    }, {\n      id: 'alert',\n      index: 1,\n      type: 'text',\n      label: 'Alert Description',\n      valuePath: 'alert',\n      editable: false,\n      hidden: false,\n      defaultWidth: 400\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/assign-trip-2-route-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/assign-trip-2-route-widget/config\"], function (_exports, _component, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    editModal: Ember.inject.service(),\n\n    validateRecords() {\n      let valid = true;\n      let records = this.get('editableRecords');\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        if (record.get('assignRoute.id') === undefined || record.get('assignRoute.id') === null) {\n          this.get('editModal.errors').pushObject('Route Id');\n          valid = false;\n        }\n      });\n      return valid;\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        /*let lastUndoState = this.get('editModal.undoHistory').popObject();\n         if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n           records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n         }\n        else {\n          lastUndoState.forEach(({ record, properties }) => {\n            record.setProperties(properties);\n          });\n        }\n         this.set('isLastUndoStateCommitted', true);*/\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n        }\n      } // onCellValueChange(record, valuePath, value, options) {\n      //   if (valuePath === 'vehicles.firstObject.name') {\n      //     let vehicle = record.get('vehicles.firstObject');\n      //     record.vehicles.removeObject(vehicle);\n      //   }\n      //   else {\n      //     this.get('service').setRecordValue(record, valuePath, value, options);\n      //   }\n      // }\n\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/assign-trip-2-route-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'riderFirstName',\n        label: 'First Name',\n        valuePath: 'trip.rider.lastName',\n        editable: false\n      }, {\n        id: 'riderLastName',\n        label: 'Rider Last Name',\n        valuePath: 'trip.rider.lastName',\n        editable: false\n      }, {\n        id: 'riderId',\n        label: 'Rider ID',\n        valuePath: 'rider.riderId',\n        editable: false\n      }]\n    }, {\n      title: 'Select Route',\n      fields: [{\n        id: 'route',\n        type: 'routeenum',\n        label: 'Route',\n        valuePath: 'assignRoute',\n        cellDesc: 'assignRoute',\n        editable: true,\n        hidden: false,\n        extra: {\n          optionModelName: 'route',\n          optionSearchPath: 'description'\n        }\n      }, {\n        id: 'vehicle',\n        type: 'uuid',\n        label: 'Vehicle',\n        valuePath: 'assignRoute.assignedVehicle.name',\n        editable: false\n      }, {\n        id: 'driverId',\n        type: 'uuid',\n        label: 'Driver ID',\n        valuePath: 'assignRoute.assignedDriver.externalId',\n        editable: false\n      }, {\n        id: 'driverLastName',\n        type: 'text',\n        label: 'Driver Last Name',\n        valuePath: 'assignRoute.assignedDriver.lastName',\n        editable: false\n      }, {\n        id: 'driverFirstName',\n        type: 'text',\n        label: 'Driver First Name',\n        valuePath: 'assignRoute.assignedDriver.firstName',\n        editable: false\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/bar-chart-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/chartjs-widget/component\", \"adept-iq/utils/filters\", \"adept-iq/pods/components/generic-widgets/column-widget/classes/filter-column\"], function (_exports, _component, _filters, _filterColumn) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    workspaceContext: Ember.inject.service(),\n    classNames: ['bar-chart-widget'],\n    widget: null,\n    options: Ember.computed.alias('widget.state.dataType'),\n\n    /* Applies the choice of data source. */\n    chartRecords: Ember.computed('options.modelName', 'workspaceContext.workspaceData.[]', function () {\n      const modelName = this.get('options.modelName');\n      if (Ember.isBlank(modelName)) return [];\n      const wrappedRecords = this.get('workspaceContext.workspaceData').filterBy('modelName', modelName);\n      return wrappedRecords.map(a => a.record);\n    }),\n\n    /* Builds the chosen filters. */\n    filterFunction: Ember.computed('options.columns', function () {\n      const filterColumns = Object.values(this.get('options.columns')).map(col => new _filterColumn.default(col));\n      const args = filterColumns.map(column => {\n        return column.get('filterNode');\n      });\n      return (0, _filters.buildFilterFunction)((0, _filters.buildCompoundFilterNode)('and', args));\n    }),\n\n    /* Applies the choice of filters. */\n    filteredRecords: Ember.computed('chartRecords', 'filterFunction', function () {\n      return this.get('chartRecords').filter(this.get('filterFunction'));\n    }),\n    chartSum: Ember.computed.alias('filteredRecords.length'),\n\n    /* Gets the choice for slicing the data. */\n    slicedBy: Ember.computed('options.displayOptions', function () {\n      if (Ember.isBlank(this.get('options.displayOptions'))) return;\n      /*eslint-disable */\n\n      return this.get('options.displayOptions').selected;\n      /*eslint-enable */\n    }),\n\n    /* Applies the choice for slicing the data. */\n    recordSlices: Ember.computed('filteredRecords', 'slicedBy', function () {\n      const categories = {};\n      const filteredRecords = this.get('filteredRecords');\n      const slicedBy = this.get('slicedBy');\n      if (Ember.isBlank(slicedBy)) return categories;\n      const filterKey = this.get('slicedBy.id');\n      const metricOption = this.get('slicedBy.metricOption.id');\n      this.get('slicedBy.valueCategories').forEach(category => {\n        switch (metricOption) {\n          case 'count':\n            categories[category.label] = filteredRecords.filterBy(filterKey, category.value).length;\n            break;\n\n          case 'sumOccurrences':\n            categories[category.label] = filteredRecords.reduce((a, b) => {\n              return a + b.get(filterKey).filter(item => item === category.value).length;\n            }, 0);\n            break;\n\n          default:\n            return;\n        }\n      }); // { 'label1': <value>, 'label2': <value> }\n\n      return categories;\n    }),\n\n    /* Applies the choices for displaying data counts and/or percentages. */\n    aggregatedSliceData: Ember.computed('recordSlices', 'options.visualOptions.@each.isChecked', function () {\n      const visualOptions = this.get('options.visualOptions');\n      const showValues = visualOptions.findBy('id', 'value').isChecked;\n      const showPercentage = visualOptions.findBy('id', 'percentage').isChecked;\n      const totalCount = this.get('chartSum');\n      const data = [];\n      Object.entries(this.get('recordSlices')).forEach(slice => {\n        let label = slice[0];\n        const numRecords = slice[1];\n\n        if (showValues) {\n          label += ', ' + numRecords;\n        }\n\n        if (showPercentage && totalCount !== 0) {\n          label += ', ' + Math.floor(100 * numRecords / totalCount) + '%';\n        }\n\n        data.push({\n          label: label,\n          value: numRecords\n        });\n      }); // [{...}, {...}, ...]\n\n      return data;\n    }),\n    chartData: Ember.computed('aggregatedSliceData', function () {\n      const aggregatedData = this.get('aggregatedSliceData');\n      if (Ember.isBlank(aggregatedData)) return {\n        data: [],\n        labels: []\n      };\n      const data = [];\n      const labels = [];\n      const backgroundColor = [];\n      const colors = this.get('colors');\n      aggregatedData.forEach((dataSlice, i) => {\n        data.push(dataSlice.value);\n        labels.push(dataSlice.label);\n        backgroundColor.push(colors[i % colors.length]);\n      });\n      const datasets = [{\n        data: data,\n        backgroundColor: backgroundColor,\n        borderWidth: 1\n      }];\n      return {\n        datasets,\n        labels\n      };\n    }),\n\n    /* Applies the chart title input. */\n    chartTitle: Ember.computed('widget.state.dataType.{name,title}', function () {\n      const title = this.get('widget.state.dataType.title');\n      if (Ember.isPresent(title)) return title;\n      const name = this.get('widget.state.dataType.name');\n\n      if (Ember.isPresent(name)) {\n        return `${name} Bar Chart`;\n      }\n\n      return 'Bar Chart';\n    }),\n    chartOptions: Ember.computed('', function () {\n      if (Ember.isBlank(this.get('widget.state'))) return {};\n      const options = {\n        legend: {\n          display: false\n        },\n        scales: {\n          yAxes: [{\n            ticks: {\n              min: 0\n            }\n          }]\n        }\n      };\n      return options;\n    }),\n    actions: {\n      onFilterButtonClick() {\n        const workspace = this.get('workspace');\n        let topState = workspace.get('topState');\n\n        while (topState === 'barChartWidget') {\n          workspace.popState();\n          topState = workspace.get('topState');\n        }\n\n        const displayName = 'Bar Chart';\n        const widget = this.get('widget');\n        workspace.pushState('barChartWidget', {\n          displayName,\n          widget\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/bar-chart-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"7fqD+4uT\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"analytics-widget-header\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"h5\\\"],[11,\\\"class\\\",\\\"analytics-widget-title\\\"],[9],[1,[21,\\\"chartTitle\\\"],false],[10],[0,\\\"\\\\n  \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"analytics-widget-button\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-filter\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onFilterButtonClick\\\"]],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"analytics-widget-body bar-chart-widget-body\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"bar-chart-container\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"options\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[1,[27,\\\"ember-chart-fix\\\",null,[[\\\"type\\\",\\\"data\\\",\\\"options\\\",\\\"width\\\",\\\"height\\\"],[\\\"bar\\\",[23,[\\\"chartData\\\"]],[23,[\\\"chartOptions\\\"]],350,120]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/bar-chart-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/box-widget/box-metric/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['box-widget-metric']\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/box-widget/box-metric/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"h2qlosUl\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"h3\\\"],[9],[1,[23,[\\\"metric\\\",\\\"value\\\"]],false],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/box-widget/box-metric/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/box-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/chartjs-widget/component\", \"adept-iq/utils/filters\", \"adept-iq/pods/components/generic-widgets/column-widget/classes/filter-column\"], function (_exports, _component, _filters, _filterColumn) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    classNames: ['analytics-widget', 'box-widget'],\n    classNameBindings: ['stateClass', 'widthConstrained'],\n    workspaceContext: Ember.inject.service(),\n    widget: null,\n    options: Ember.computed.alias('widget.state.dataType'),\n\n    /* Applies the choice of data source. */\n    chartRecords: Ember.computed('options.modelName', 'workspaceContext.workspaceData.[]', function () {\n      const modelName = this.get('options.modelName');\n      if (Ember.isBlank(modelName)) return [];\n      const wrappedRecords = this.get('workspaceContext.workspaceData').filterBy('modelName', modelName);\n      return wrappedRecords.map(a => a.record);\n    }),\n\n    /* Builds the chosen filters. */\n    filterFunction: Ember.computed('options.columns', function () {\n      const filterColumns = Object.values(this.get('options.columns')).map(col => new _filterColumn.default(col));\n      const args = filterColumns.map(column => {\n        return column.get('filterNode');\n      });\n      return (0, _filters.buildFilterFunction)((0, _filters.buildCompoundFilterNode)('and', args));\n    }),\n\n    /* Applies the choice of filters. */\n    filteredRecords: Ember.computed('chartRecords', 'filterFunction', function () {\n      return this.get('chartRecords').filter(this.get('filterFunction'));\n    }),\n\n    /* Applies the choices of fields and metrics. */\n    boxMetric: Ember.computed('options.displayOptions.selected', 'filteredRecords', function () {\n      const displaySelection = this.get('options.displayOptions.selected');\n      if (Ember.isBlank(displaySelection) || Ember.isBlank(displaySelection.valueKey) || Ember.isBlank(displaySelection.valueCategory) || Ember.isBlank(displaySelection.metricOption)) return;\n      const slicedRecords = this.get('filteredRecords').filterBy(displaySelection.valueKey, displaySelection.valueCategory.value);\n      const value = this.processRecords(slicedRecords, displaySelection.metricOption.id);\n      const name = displaySelection.label + ' - ' + displaySelection.valueCategory.label;\n      /*eslint-disable */\n\n      return {\n        name,\n        value\n      };\n      /*eslint-enable */\n    }),\n    stateClass: Ember.computed('boxMetrics', 'options.boxColor.{orange,red}', function () {\n      if (Ember.isBlank(this.get('options'))) return;\n      const value = this.get('boxMetric.value');\n      /*eslint-disable */\n\n      if (value >= this.get('options.boxColor.red')) {\n        return 'red-state';\n      } else if (value >= this.get('options.boxColor.orange')) {\n        return 'orange-state';\n      } else {\n        return;\n      }\n      /*eslint-enable */\n\n    }),\n    widthConstrained: Ember.computed('widget.width', function () {\n      if (this.get('widget.width') === 1) {\n        return 'width-constrained';\n      }\n\n      return null;\n    }),\n\n    /* Applies the chart title input. */\n    chartTitle: Ember.computed('widget.state.dataType.{name,title}', function () {\n      const title = this.get('widget.state.dataType.title');\n      if (Ember.isPresent(title)) return title;\n      const name = this.get('widget.state.dataType.name');\n\n      if (Ember.isPresent(name)) {\n        return `${name} Box Widget`;\n      }\n\n      return 'Box Widget';\n    }),\n\n    buildColumnFilter() {\n      const args = this.get('options.dataColumns').map(column => {\n        return column.get('filterNode');\n      });\n      return (0, _filters.buildCompoundFilterNode)('and', args);\n    },\n\n    processRecords(records, metricOption\n    /*, valueKey */\n    ) {\n      switch (metricOption) {\n        case 'count':\n          return records.length;\n\n        default:\n          return 0;\n      }\n    },\n\n    actions: {\n      onFilterButtonClick() {\n        const workspace = this.get('workspace');\n        let topState = workspace.get('topState');\n\n        while (topState === 'boxWidget') {\n          workspace.popState();\n          topState = workspace.get('topState');\n        }\n\n        const displayName = 'Box Analytics';\n        const widget = this.get('widget');\n        workspace.pushState('boxWidget', {\n          displayName,\n          widget\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/box-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"aLD/xXuy\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"analytics-widget-header\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"to-constrain analytics-widget-title\\\"],[9],[0,\\\"\\\\n    \\\"],[1,[21,\\\"chartTitle\\\"],false],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"analytics-widget-button\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-filter\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onFilterButtonClick\\\"]],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"analytics-widget-body box-widget-body\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-container\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"options\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[1,[27,\\\"iq-widgets/box-widget/box-metric\\\",null,[[\\\"metric\\\"],[[23,[\\\"boxMetric\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/box-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/cancel-type-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/cancel-type-form-widget/config\", \"adept-iq/utils/populate-new-trip\", \"adept-iq/utils/populate-copy-trip\", \"adept-iq/utils/populate-edit-trip\", \"adept-iq/utils/populate-search-trip\", \"adept-iq/utils/populate-account\", \"adept-iq/config/api-urls\"], function (_exports, _component, _config, _populateNewTrip, _populateCopyTrip, _populateEditTrip, _populateSearchTrip, _populateAccount, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    editModal: Ember.inject.service(),\n    trip: Ember.inject.service(),\n    store: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    newTripComponent: 'iq-widgets/new-trip-form-widget',\n\n    init() {\n      this._super(...arguments);\n\n      let valid = true;\n      let records = this.get('editableRecords');\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        record.set('lastId', record.get('id'));\n      });\n      return valid;\n    },\n\n    validateRecords() {\n      let valid = true;\n      let records = this.get('editableRecords');\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        //TODO Temparory for Taxibook Integration\n        if (Ember.isBlank(record.cancelNotes)) {\n          valid = false;\n          this.get('editModal.errors').pushObject('Cancel Notes should be there');\n        }\n      });\n      return valid;\n    },\n\n    saveTripRecordFunction(records, editComponentAction) {\n      console.log(' saveTripRecordFunction ', editComponentAction);\n      const me = this;\n      return new Promise((resolve, reject) => {\n        let record = records.firstObject;\n        record.save().then(() => {\n          console.log('after saveTripRecordFunction ');\n          const tripId = record.get('id');\n          me.get('errorMessage').pushInfo({\n            detail: `Trip '${tripId}' successfully saved`\n          });\n          record.set('lastId', record.get('id'));\n          record.set('isForceDirty', false);\n\n          if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClick') {\n            run(() => {\n              let recordRefresh = [];\n              let newtrip = (0, _populateEditTrip.default)(me.get('trip'), record, me.get('store'), me.get('geocode'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              recordRefresh.push(newtrip);\n              let newTripComponent = me.get('editSwitchTripComponent');\n\n              if (this.get('editModal.editComponent') !== null && this.get('editModal.editComponent') === this.get('editSwitchTripComponent')) {\n                newTripComponent = me.get('editTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          } else if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClearClick') {\n            run(() => {\n              Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n              me.get('geocode').activateGeocode(false);\n              me.get('geocode').deactivateGeocode();\n              let recordRefresh = [];\n              let newtrip = (0, _populateNewTrip.default)(me.get('trip'), me.get('store'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              newtrip.set('lastId', record.get('lastId'));\n              recordRefresh.push(newtrip); //me.set('editableRecords',recordRefresh);\n              //me.set('records',recordRefresh);\n\n              let newTripComponent = me.get('newSwitchTripComponent');\n\n              if (me.get('editModal.editComponent') !== null && me.get('editModal.editComponent') === me.get('newSwitchTripComponent')) {\n                newTripComponent = me.get('newTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          }\n        }).catch(function (error) {\n          console.log(error);\n          reject(error);\n        });\n      });\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        /*let lastUndoState = this.get('editModal.undoHistory').popObject();\n         if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n           records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n         }\n        else {\n          lastUndoState.forEach(({ record, properties }) => {\n            record.setProperties(properties);\n          });\n        }\n         this.set('isLastUndoStateCommitted', true);*/\n      },\n\n      onNewClick() {\n        this.set('records', []);\n        let newtrip = (0, _populateNewTrip.default)(this.get('trip'), this.get('store'));\n        (0, _populateAccount.default)(newtrip, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), newtrip.acctCardNr, true); //this.get('records').pushObject(newtrip);\n        //this.set('editModal.editableRecords',[]);\n        //this.get('editModal.editableRecords').pushObject(newtrip);\n\n        const newTripComponent = this.get('newTripComponent');\n        this.get('editModal').open(newTripComponent, [newtrip], this.get('saveTripRecordFunction').bind(this));\n      },\n\n      onApplyClearClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n          this.get('editModal').commit();\n        }\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n          this.get('editModal').commit();\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/cancel-type-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'id',\n        index: 3,\n        type: 'uuid',\n        label: 'ID',\n        valuePath: 'id',\n        valuePreview: '1',\n        hidden: false,\n        isMapLabelVisible: true,\n        searchable: true,\n        defaultWidth: 60\n      }, {\n        id: 'lastId',\n        type: 'text',\n        label: 'ID',\n        valuePath: 'lastId',\n        editable: false\n      }]\n    }, {\n      title: 'Editable',\n      fields: [{\n        id: 'notes',\n        type: 'text',\n        editable: true,\n        label: 'Notes',\n        valuePath: 'cancelNotes'\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/cli-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/base-widget/component\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\", \"ember-concurrency\", \"adept-iq/utils/populate-new-trip\", \"adept-iq/utils/populate-copy-trip\", \"adept-iq/utils/populate-edit-trip\", \"adept-iq/utils/populate-search-trip\", \"adept-iq/utils/populate-account\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/populate-call-line\"], function (_exports, _component, _environment, _apiUrls, _emberConcurrency, _populateNewTrip, _populateCopyTrip, _populateEditTrip, _populateSearchTrip, _populateAccount, _checkAddressFlags, _populateCallLine) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    dragCoordinator: Ember.inject.service(),\n    classNames: ['cli-widget'],\n    trip: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    store: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    session: Ember.inject.service(),\n    records: null,\n    phoneSearchValue: null,\n    phoneSearchPath: _apiUrls.API_SUB_URL.phoneSearchPath,\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    populatePhoneOnAccept: _environment.default.APP.populatePhoneOnAccept,\n    editComponent: 'iq-widgets/passengers-form-widget',\n    newTripComponent: 'iq-widgets/new-trip-form-widget',\n    passengerTripComponent: 'iq-widgets/new-trip-passenger-form-widget',\n\n    init() {\n      this._super(...arguments);\n\n      this.set('records', []);\n      let ringCentralURL = \"https://ringcentral.github.io/ringcentral-embeddable/adapter.js?appKey=\" + _environment.default.RING_CENTRAL.appKey + \"&appSecret=\" + _environment.default.RING_CENTRAL.appSecret + \"&appServer=\" + _environment.default.RING_CENTRAL.appServer;\n\n      (function () {\n        var rcs = document.createElement(\"script\");\n        rcs.src = ringCentralURL;\n        var rcs0 = document.getElementsByTagName(\"script\")[0];\n        rcs0.parentNode.insertBefore(rcs, rcs0);\n      })(); //this.set('awsAmazonConnect',API.awsAmazonConnect.host);\n\n    },\n\n    search: (0, _emberConcurrency.task)(function* (term) {\n      yield (0, _emberConcurrency.timeout)(50);\n      let searchResults;\n      searchResults = yield this.getRiderProfile(this.get('phoneSearchPath'), this.get('phoneSearchValue'));\n      return searchResults;\n    }),\n\n    getRiderProfile(phoneSearchPath, phoneSearchValue) {\n      return this.get('ajax').put(_apiUrls.API.tripManagementService.host + `/rider-profile?filter=${phoneSearchPath}==` + phoneSearchValue, {\n        method: 'GET',\n        contentType: \"application/json\"\n      }).then(response => {\n        return response.data;\n      }).catch(function () {\n        return [];\n      });\n    },\n\n    saveTripRecordFunction(records, editComponentAction) {\n      console.log(' saveTripRecordFunction ', editComponentAction);\n      const me = this;\n      return new Promise((resolve, reject) => {\n        let record = records.firstObject;\n        record.save().then(() => {\n          console.log('after saveTripRecordFunction ');\n          const tripId = record.get('id');\n          me.get('errorMessage').pushInfo({\n            detail: `Trip '${tripId}' successfully saved`\n          });\n          record.set('lastId', record.get('id'));\n          record.set('isForceDirty', false);\n\n          if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClick') {\n            Ember.run(() => {\n              let recordRefresh = [];\n              let newtrip = (0, _populateEditTrip.default)(me.get('trip'), record, me.get('store'), me.get('geocode'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              recordRefresh.push(newtrip);\n              let newTripComponent = me.get('editSwitchTripComponent');\n\n              if (this.get('editModal.editComponent') !== null && this.get('editModal.editComponent') === this.get('editSwitchTripComponent')) {\n                newTripComponent = me.get('editTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          } else if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClearClick') {\n            Ember.run(() => {\n              Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n              me.get('geocode').activateGeocode(false);\n              me.get('geocode').deactivateGeocode();\n              let recordRefresh = [];\n              let newtrip = (0, _populateNewTrip.default)(me.get('trip'), me.get('store'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              newtrip.set('lastId', record.get('lastId'));\n              recordRefresh.push(newtrip); //me.set('editableRecords',recordRefresh);\n              //me.set('records',recordRefresh);\n\n              let newTripComponent = me.get('newSwitchTripComponent');\n\n              if (me.get('editModal.editComponent') !== null && me.get('editModal.editComponent') === me.get('newSwitchTripComponent')) {\n                newTripComponent = me.get('newTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          }\n        }).catch(function (error) {\n          console.log(error);\n          reject(error);\n        });\n      });\n    },\n\n    prepareNewTrip(riderPhoneNr) {\n      let trip = (0, _populateNewTrip.default)(this.get('trip'), this.get('store'));\n      trip.passengers[0].phone1.number = riderPhoneNr;\n      Ember.run(() => {\n        trip.set('isForceDirty', true); //this.get('records').pushObject(trip);\n\n        let newTripComponent = this.get('newTripComponent');\n        this.get('editModal').open(newTripComponent, [trip], this.get('saveTripRecordFunction').bind(this));\n      });\n    },\n\n    preparePassengerTrip(model) {\n      let rider = model; //.get('rider.content');\n\n      let trip = (0, _populateNewTrip.default)(this.get('trip'), this.get('store'));\n      trip.passengers[0].phone1.number = rider.phoneNr;\n      trip.passengers[0].name = rider.name;\n      trip.passengers[0].firstName = rider.name;\n      this.set('phoneSearchValue', rider.phoneNr);\n      Ember.run(() => {\n        this.get('search').perform().then(results => {\n          //console.log('rider.callLines',rider.callLines);\n          let widgetModelData = results; //console.log('widgetModelData ',widgetModelData);\n\n          trip.editmodelcontext.callerTrips = widgetModelData;\n\n          if (widgetModelData && widgetModelData.length > 1) {\n            this.set('editmodalcontext.showWidgetModal', true);\n            this.set('editmodalcontext.widgetModelData', widgetModelData);\n            this.set('editmodalcontext.modelWidgetPath', 'rider-profile-widget');\n          } else if (widgetModelData && widgetModelData.length === 1) {\n            (0, _populateCallLine.default)(trip, results.firstObject.attributes, this.get('geocode'), this.get('store'));\n            (0, _populateAccount.default)(trip, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), results.firstObject.attributes.account.accountId, true, rider.phoneNr);\n          }\n\n          (0, _checkAddressFlags.default)(trip);\n        });\n        trip.set('isForceDirty', true); //this.get('records').pushObject(trip);\n        // this.set('editModal.editableRecords',[]);\n        // this.get('editModal.editableRecords').pushObject(trip);\n\n        let newTripComponent = this.get('newTripComponent');\n        this.get('editModal').open(newTripComponent, [trip], this.get('saveTripRecordFunction').bind(this));\n      });\n    },\n\n    prepareNewPassengerTrip(phoneNr) {\n      let records = this.get('editModal.editableRecords');\n      let tripRecord = records.firstObject;\n      tripRecord.set('passengers.0.phone1.number', phoneNr); //trip.passengers[0].name =  rider.name;\n      //trip.passengers[0].firstName =  rider.name;\n\n      this.set('phoneSearchValue', phoneNr);\n      this.set('editModal.errors', []);\n      Ember.run(() => {\n        this.get('search').perform().then(results => {\n          //console.log('rider.callLines',rider.callLines);\n          if (!Ember.isEmpty(results)) {\n            let searchRecord = results.firstObject;\n            let widgetModelData = results; //console.log('widgetModelData ',widgetModelData);\n\n            tripRecord.set('editmodelcontext.callerTrips', widgetModelData);\n\n            if (widgetModelData && widgetModelData.length > 1) {\n              this.set('editmodalcontext.showWidgetModal', true);\n              this.set('editmodalcontext.widgetModelData', widgetModelData);\n              this.set('editmodalcontext.modelWidgetPath', 'rider-profile-widget');\n              this.set('editmodalcontext.record', tripRecord);\n            } else if (widgetModelData && widgetModelData.length === 1) {\n              (0, _populateCallLine.default)(tripRecord, results.firstObject.attributes, this.get('geocode'), this.get('store'));\n              (0, _populateAccount.default)(tripRecord, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), results.firstObject.attributes.account.accountId, true, phoneNr);\n            }\n\n            (0, _checkAddressFlags.default)(tripRecord);\n          } else {\n            //console.log('parentValuePath',this.get('parentValuePath') );\n            this.get('editModal.errors').pushObject('No result found');\n          }\n        }); //let newTripComponent = this.get('newTripComponent');\n        //this.get('editModal').open(newTripComponent, [booking], this.get('saveTripRecordFunction').bind(this));\n      });\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      let me = this;\n      window.addEventListener('message', e => {\n        const data = e.data;\n        console.log('addEventListener ', e.data);\n\n        if (data) {\n          switch (data.type) {\n            case 'rc-active-call-notify':\n              {\n                // get call when user gets a ringing call\n                //console.log('rc-call-ring-notify data.call[from]',data.call['from']);\n\n                /* console.log('rc-call-ring-notify',data.call.from.phoneNumber);\n                 const customerNo = data.call.from.phoneNumber;\n                 let callerNumber =  customerNo;\n                 callerNumber = callerNumber.substring(2);\n                  me.prepareNewPassengerTrip(callerNumber);*/\n                break;\n              }\n\n            case 'rc-call-init-notify':\n              // get call when user creates a call from dial\n              console.log(data.call);\n              break;\n\n            case 'rc-call-start-notify':\n              {\n                // get call when a incoming call is accepted or a outbound call is connected\n                console.log('rc-call-ring-notify data.call', data);\n                console.log('rc-call-ring-notify data.call.from.phoneNumber', data.call.from);\n                const customerNo = data.call.from;\n                let callerNumber = customerNo;\n                callerNumber = callerNumber.substring(2);\n                document.getElementById('callerNo').innerHTML = callerNumber;\n\n                if (me.get('populatePhoneOnAccept')) {\n                  document.getElementById('inputPhone').focus();\n                  me.prepareNewPassengerTrip(callerNumber);\n                }\n\n                break;\n              }\n\n            case 'rc-call-hold-notify':\n            case 'rc-call-resume-notify':\n              {\n                // get call when a incoming call is accepted or a outbound call is connected\n                console.log('rc-call-ring-notify data.call', data);\n                console.log('rc-call-ring-notify data.call.from.phoneNumber', data.call.from);\n                const customerNo = data.call.from;\n                let callerNumber = customerNo;\n                callerNumber = callerNumber.substring(2);\n                document.getElementById('callerNo').innerHTML = callerNumber;\n                break;\n              }\n\n            case 'rc-call-end-notify':\n              // get call on call end event\n              console.log(data.call);\n              break;\n\n            default:\n              break;\n          }\n        }\n      });\n      Ember.$(\"#rc-widget\").show();\n      console.log('isndie didInsertElement', document.getElementById(\"containerDiv\"));\n      Ember.run.schedule('afterRender', () => {\n        this.$(connect.core.initCCP(document.getElementById('containerDiv'), {\n          ccpUrl: 'https://taxiuxconnectdemo.awsapps.com/connect/ccp#',\n          loginPopup: true,\n          ccpLoadTimeout: 25000000,\n          softphone: {\n            allowFramedSoftphone: true\n          }\n        }));\n        this.$(connect.contact(function (contact) {\n          const activeConnection = contact.getActiveInitialConnection();\n          const contactId = activeConnection['contactId'];\n          const connectionId = activeConnection['connectionId'];\n          const conn = new connect.Connection(contactId, connectionId);\n          const customerNo = conn.getEndpoint().phoneNumber;\n          document.getElementById('containerDiv').style.display = 'block'; //console.log('customerNo ',customerNo);\n\n          document.getElementById('callerNo').value = customerNo;\n          document.getElementById('callerNo').innerHTML = customerNo;\n          contact.onConnected(function () {\n            console.log('contact.onConnected ', document.getElementById('callerNo').innerHTML);\n\n            if (!contact.isSoftphoneCall(contact)) {\n              let callRidersRecords = [];\n              let callerNumber = document.getElementById('callerNo').innerHTML;\n              callerNumber = callerNumber.substring(2);\n              me.prepareNewPassengerTrip(callerNumber);\n            }\n          });\n          contact.onAccepted(function () {\n            {\n              console.log('contact.onAccepted ', document.getElementById('callerNo').innerHTML, ' contact.isSoftphoneCall() ', contact.isSoftphoneCall());\n\n              if (contact.isSoftphoneCall()) {\n                let callRidersRecords = [];\n                let callerNumber = document.getElementById('callerNo').innerHTML;\n                callerNumber = callerNumber.substring(2);\n                me.prepareNewPassengerTrip(callerNumber);\n              }\n            }\n          });\n        }));\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/cli-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"3qhwrvHI\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[0,\\\"\\\\n\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"id\\\",\\\"callerNo\\\"],[11,\\\"style\\\",\\\"display:none\\\"],[9],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"id\\\",\\\"awsAmazonConnect\\\"],[11,\\\"style\\\",\\\"display:none\\\"],[9],[1,[21,\\\"awsAmazonConnect\\\"],false],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"id\\\",\\\"containerDiv\\\"],[11,\\\"draggable\\\",\\\"true\\\"],[11,\\\"onload\\\",\\\"autoResize(this)\\\"],[11,\\\"style\\\",\\\"overflow:hidden;height:500px;width:400px;display:block\\\"],[11,\\\"height\\\",\\\"500px\\\"],[11,\\\"width\\\",\\\"400px\\\"],[9],[10],[0,\\\"\\\\n \\\\n\\\"],[2,\\\"<iframe width=\\\\\\\"250\\\\\\\" height=\\\\\\\"400\\\\\\\" allow=\\\\\\\"microphone\\\\\\\" style=\\\\\\\"z-index:9999;overflow:hidden;display:block\\\\\\\"  id=\\\\\\\"rc-widget\\\\\\\" allow=\\\\\\\"microphone\\\\\\\"  src=\\\\\\\"https://ringcentral.github.io/ringcentral-embeddable/app.html\\\\\\\">\\\\n </iframe> \\\"],[0,\\\"\\\\n \\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/cli-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/column-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/column-widget/component\", \"adept-iq/config/column-types\", \"adept-iq/utils/filters\"], function (_exports, _component, _columnTypes, _filters) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const logger = {\n    log: () => null,\n    warn: console.warn // eslint-disable-line no-console\n\n  };\n\n  var _default = _component.default.extend({\n    activeContext: Ember.inject.service(),\n    classNames: ['iqux-column-widget'],\n    layoutName: 'components/generic-widgets/column-widget',\n    defaultIncludes: null,\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this._onActiveContextRefresh = modelNames => {\n        if (!modelNames.includes(this.get('config.modelName'))) {\n          // not refreshing this model. give control back\n          if (this.get('isDestroyed')) {\n            return;\n          }\n\n          this.set('activeContext.refreshInProgress', false);\n          return;\n        }\n\n        ;\n        this.refreshData();\n      };\n\n      this._onActiveContextClear = () =>\n      /* modelNames */\n      {\n        this.clearData();\n      };\n\n      this.get('activeContext').on('refresh', this._onActiveContextRefresh);\n      this.get('activeContext').on('clear', this._onActiveContextClear);\n    },\n\n    willDestroyElement() {\n      this._super(...arguments);\n\n      this.get('activeContext').off('refresh', this._onActiveContextRefresh);\n      this.get('activeContext').off('clear', this._onActiveContextClear);\n      this._onActiveContextRefresh = null;\n      this._onActiveContextClear = null;\n    },\n\n    fetchDataQuery() {\n      const params = {\n        sorts: []\n      }; // this only applies for server-side pagination\n\n      if (this.get('paginationEnabled')) {\n        params.page = {\n          offset: this.get('records.length'),\n          limit: this.get('limit')\n        };\n      }\n\n      const sort = this.buildSortParam();\n\n      if (sort) {\n        params.sorts.push(sort);\n      }\n\n      const includes = this.get('defaultIncludes');\n\n      if (!Ember.isEmpty(includes)) {\n        params.includes = includes;\n      }\n\n      const filters = [this.buildSearchFilter(), this.buildColumnFilter()];\n      params.filter = (0, _filters.buildCompoundFilterNode)('and', filters);\n      const modelName = this.get('config.modelName'); //console.log(modelName,'[this.buildSearchFilter() ',this.buildSearchFilter());\n      //console.log(modelName,'[this.buildColumnFilter() ',this.buildColumnFilter());\n\n      return this.get('activeContext').query(modelName, params);\n    },\n\n    buildSortParam() {\n      const config = this.get('config');\n      const state = this.get('state');\n      let columnConfig; // user-specified sort order always takes precedence\n\n      if (!Ember.isEmpty(state) && Ember.isPresent(state.sortId)) {\n        columnConfig = config.columns.findBy('id', state.sortId);\n      } // fall back to default sort order; this is optional in widget config\n\n\n      if (!columnConfig && Ember.isPresent(config.defaultSortId)) {\n        columnConfig = config.columns.findBy('id', config.defaultSortId);\n      } // collection will be unsorted; this is expected when there is no specified\n      // workspace sort or widget default sort\n\n\n      if (!columnConfig) return null;\n\n      let columnType = _columnTypes.default.findBy('id', columnConfig.type);\n\n      if (!columnType) {\n        //logger.warn(`tried to sort by column with ID '${columnConfig.id}', but its type '${columnConfig.type}' is not a valid column type`);\n        return null;\n      }\n\n      if (!columnType.compare) {\n        // logger.warn(`column type '${columnType.id}' does not have a compare function configured`);\n        return null;\n      }\n\n      let sortAsc = true;\n\n      if (!Ember.isEmpty(state) && Ember.isPresent(state.sortAsc)) {\n        sortAsc = state.sortAsc;\n      } else if (Ember.isPresent(config.defaultSortAsc)) {\n        sortAsc = config.defaultSortAsc;\n      }\n\n      return {\n        path: columnConfig.valuePath,\n        asc: sortAsc,\n        compare: columnType.compare\n      };\n    },\n\n    buildSearchFilter() {\n      const searchText = this.get('searchText');\n      if (Ember.isEmpty(searchText)) return null;\n      const searchableConfigs = this.get('table.columns').rejectBy('hidden').mapBy('config').compact().filterBy('searchable');\n      const args = searchableConfigs.map(config => {\n        const columnType = _columnTypes.default.findBy('id', config.type);\n\n        const filterType = columnType.searchFilterType;\n        return (0, _filters.buildValueFilterNode)(filterType, config.valuePath, [searchText], config.format);\n      });\n      return (0, _filters.buildCompoundFilterNode)('or', args);\n    },\n\n    buildColumnFilter() {\n      const args = this.get('table.columns').map(column => {\n        return column.get('filterNode');\n      });\n      return (0, _filters.buildCompoundFilterNode)('and', args);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/donut-chart-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/chartjs-widget/component\", \"adept-iq/utils/filters\", \"adept-iq/pods/components/generic-widgets/column-widget/classes/filter-column\"], function (_exports, _component, _filters, _filterColumn) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* global Chart */\n  var _default = _component.default.extend({\n    workspaceContext: Ember.inject.service(),\n    classNames: ['donut-chart-widget', 'data-test-donut-chart-widget'],\n    widget: null,\n    options: Ember.computed.alias('widget.state.dataType'),\n\n    /* Applies the choice of data source. */\n    chartRecords: Ember.computed('options.modelName', 'workspaceContext.workspaceData.[]', function () {\n      const modelName = this.get('options.modelName');\n      if (Ember.isBlank(modelName)) return [];\n      return Ember.makeArray(this.get('workspaceContext.workspaceData')).filterBy('modelName', modelName).map(a => a.record);\n    }),\n\n    /* Builds the chosen filters. */\n    filterFunction: Ember.computed('options.columns', function () {\n      const filterColumns = Object.values(this.get('options.columns')).map(col => new _filterColumn.default(col));\n      const args = filterColumns.map(column => {\n        return column.get('filterNode');\n      });\n      return (0, _filters.buildFilterFunction)((0, _filters.buildCompoundFilterNode)('and', args));\n    }),\n\n    /* Applies the choice of filters. */\n    filteredRecords: Ember.computed('chartRecords', 'filterFunction', function () {\n      return this.get('chartRecords').filter(this.get('filterFunction'));\n    }),\n\n    /* Gets the choice for slicing the data. */\n    slicedBy: Ember.computed('options.displayOptions.[]', function () {\n      if (Ember.isBlank(this.get('options.displayOptions'))) return;\n      /*eslint-disable */\n\n      return this.get('options.displayOptions').findBy('id', 'slicedBy').selected;\n      /*eslint-enable */\n    }),\n    chartSum: Ember.computed.alias('filteredRecords.length'),\n\n    /* Applies the choice for slicing the data. */\n    recordSlices: Ember.computed('filteredRecords', 'slicedBy', function () {\n      const categories = {};\n      const filteredRecords = this.get('filteredRecords');\n      const slicedBy = this.get('slicedBy');\n      if (Ember.isBlank(slicedBy)) return categories;\n      const filterKey = this.get('slicedBy.valueKey');\n      this.get('slicedBy.valueCategories').forEach(category => {\n        categories[category.label] = filteredRecords.filterBy(filterKey, category.value);\n      }); // { 'label1': [], 'label2': [] }\n\n      return categories;\n    }),\n\n    /* Applies the choices for displaying data counts and/or percentages. */\n    aggregatedSliceData: Ember.computed('recordSlices', 'options.visualOptions.@each.isChecked', function () {\n      const visualOptions = this.get('options.visualOptions');\n      const showValues = visualOptions.findBy('id', 'value').isChecked;\n      const showPercentage = visualOptions.findBy('id', 'percentage').isChecked;\n      const totalCount = this.get('chartSum');\n      const data = [];\n      Object.entries(this.get('recordSlices')).forEach(slice => {\n        let label = slice[0];\n        const numRecords = slice[1].length;\n\n        if (showValues) {\n          label += ', ' + numRecords;\n        }\n\n        if (showPercentage && totalCount !== 0) {\n          label += ', ' + Math.floor(100 * numRecords / totalCount) + '%';\n        }\n\n        data.push({\n          label: label,\n          value: numRecords\n        });\n      }); // [{...}, {...}, ...]\n\n      return data;\n    }),\n\n    /* Applies the choice for sorting the data. */\n    sortedData: Ember.computed('aggregatedSliceData', 'options.sortOrder.selected.sortAsc', function () {\n      if (Ember.isBlank(this.get('aggregatedSliceData'))) return [];\n      const data = this.get('aggregatedSliceData');\n      const sortAsc = this.get('options.sortOrder.selected.sortAsc');\n\n      if (sortAsc) {\n        return data.sortBy('value');\n      } // [{...}, {...}, ...]\n\n\n      return data.sortBy('value').reverse();\n    }),\n    chartData: Ember.computed('sortedData', function () {\n      const sortedData = this.get('sortedData');\n      if (Ember.isBlank(sortedData)) return {\n        data: [],\n        labels: []\n      };\n      const data = [];\n      const labels = [];\n      const backgroundColor = [];\n      const colors = this.get('colors');\n      sortedData.forEach((dataSlice, i) => {\n        data.push(dataSlice.value);\n        labels.push(dataSlice.label);\n        backgroundColor.push(colors[i % colors.length]);\n      });\n      const datasets = [{\n        data,\n        backgroundColor\n      }];\n      return {\n        datasets,\n        labels\n      };\n    }),\n\n    /* Applies the chart title input. */\n    chartTitle: Ember.computed('widget.state.dataType.{name,title}', function () {\n      const title = this.get('widget.state.dataType.title');\n      if (Ember.isPresent(title)) return title;\n      const name = this.get('widget.state.dataType.name');\n\n      if (Ember.isPresent(name)) {\n        return `${name} Donut Chart`;\n      }\n\n      return 'Donut Chart';\n    }),\n\n    /* Applies the choices for display of legend and record count total. */\n    chartOptions: Ember.computed('options.{legendPlacement,visualOptions.@each.isChecked}', function () {\n      if (Ember.isBlank(this.get('widget.state'))) return {};\n      const options = {\n        legend: {\n          position: this.get('options.legendPlacement.selected.position')\n        },\n        elements: {\n          center: {\n            text: this.get('chartSum'),\n            fontStyle: 'AvenirNext',\n            //Default Arial\n            sidePadding: 15 //Default 20 (as a percentage)\n\n          }\n        },\n        tooltips: {\n          enabled: false\n        }\n      };\n      const showTotal = this.get('options.visualOptions').findBy('id', 'total').isChecked;\n\n      if (!showTotal) {\n        delete options.elements.center;\n      }\n\n      return options;\n    }),\n\n    didReceiveAttrs() {\n      this._super(...arguments);\n\n      Chart.pluginService.register({\n        beforeDraw: function (chart) {\n          if (chart.config.options.elements.center) {\n            //Get ctx from string\n            const ctx = chart.chart.ctx; //Get options from the center object in options\n\n            const centerConfig = chart.config.options.elements.center;\n            const fontStyle = centerConfig.fontStyle || 'Arial';\n            const txt = centerConfig.text;\n            const color = centerConfig.color || '#000';\n            const sidePadding = centerConfig.sidePadding || 20;\n            const sidePaddingCalculated = sidePadding / 100 * (chart.innerRadius * 2); //Start with a base font of 30px\n\n            ctx.font = '45px ' + fontStyle; //Get the width of the string and also the width of the element minus 10 to give it 5px side padding\n\n            const stringWidth = ctx.measureText(txt).width;\n            const elementWidth = chart.innerRadius * 2 - sidePaddingCalculated; // Find out how much the font can grow in width.\n\n            const widthRatio = elementWidth / stringWidth;\n            const newFontSize = Math.floor(30 * widthRatio);\n            const elementHeight = chart.innerRadius * 2; // Pick a new font size so it will not be larger than the height of label.\n\n            const fontSizeToUse = Math.min(newFontSize, elementHeight); //Set font settings to draw it correctly.\n\n            ctx.textAlign = 'center';\n            ctx.textBaseline = 'middle';\n            const centerX = (chart.chartArea.left + chart.chartArea.right) / 2;\n            const centerY = (chart.chartArea.top + chart.chartArea.bottom) / 2;\n            ctx.font = fontSizeToUse + 'px ' + fontStyle;\n            ctx.fillStyle = color; //Draw text in center\n\n            ctx.fillText(txt, centerX, centerY);\n          }\n        }\n      });\n    },\n\n    actions: {\n      onFilterButtonClick() {\n        const workspace = this.get('workspace');\n        let topState = workspace.get('topState');\n\n        while (topState === 'donutChartWidget') {\n          workspace.popState();\n          topState = workspace.get('topState');\n        }\n\n        const displayName = 'Donut Chart';\n        const widget = this.get('widget');\n        workspace.pushState('donutChartWidget', {\n          displayName,\n          widget\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/donut-chart-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"fdoR3zA8\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"analytics-widget-header\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"h5\\\"],[11,\\\"class\\\",\\\"analytics-widget-title data-test-analytics-title\\\"],[9],[0,\\\"\\\\n    \\\"],[1,[21,\\\"chartTitle\\\"],false],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"analytics-widget-button data-test-analytics-button\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-filter\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onFilterButtonClick\\\"]],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"analytics-widget-body donut-chart-widget-body\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"donut-chart-container\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"options\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[1,[27,\\\"ember-chart-fix\\\",null,[[\\\"type\\\",\\\"data\\\",\\\"options\\\",\\\"width\\\"],[\\\"doughnut\\\",[23,[\\\"chartData\\\"]],[23,[\\\"chartOptions\\\"]],260]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/donut-chart-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/driver-breaks-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/driver-breaks-form-widget/config\", \"moment\"], function (_exports, _component, _config, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    editModal: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n\n    validateRecords() {\n      let valid = true;\n      let records = this.get('editableRecords');\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        let promisedStartMoment = (0, _moment.default)(record.get('promisedStart'));\n        let promisedEndMoment = (0, _moment.default)(record.get('promisedEnd'));\n\n        if (Ember.isNone(record.get('breakType.id'))) {\n          valid = false;\n          this.get('editModal.errors').pushObject('Must select a break type.');\n        }\n\n        if (promisedStartMoment.isSame(promisedEndMoment)) {\n          valid = false;\n          this.get('editModal.errors').pushObject('Break Start and Break End cannot be the same.');\n        }\n      });\n      return valid;\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        let lastUndoState = this.get('editModal.undoHistory').popObject();\n\n        if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n          records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n        } else {\n          lastUndoState.forEach(({\n            record,\n            properties\n          }) => {\n            record.setProperties(properties);\n          });\n        }\n\n        this.set('isLastUndoStateCommitted', true);\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/driver-breaks-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'id',\n        type: 'text',\n        label: 'ID',\n        valuePath: 'id',\n        editable: false\n      }]\n    }, {\n      title: 'Editable',\n      fields: [{\n        id: 'type',\n        type: 'searchable-enum',\n        label: 'Type',\n        valuePath: 'breakType',\n        editable: true,\n        extra: {\n          optionModelName: 'break-type',\n          optionSearchPath: 'name',\n          optionSelectedPath: 'firstObject',\n          optionIncludes: '',\n          optionSearchEnabled: false\n        }\n      }, {\n        id: 'place',\n        type: 'locations',\n        label: '',\n        valuePath: 'places',\n        modelName: 'place',\n        isMultiType: true,\n        extra: {\n          aliasPath: 'alias',\n          notesPath: 'notes',\n          streetNrPath: 'streetNr',\n          streetNamePath: 'streetAddress',\n          localityPath: 'locality',\n          regionPath: 'region',\n          subRegionPath: 'subRegion',\n          postalCodePath: 'postalCode',\n          countryPath: 'country',\n          defaultOptionsPath: 'route.garages',\n          useRecordWithId: true,\n          useOptionRecord: true\n        }\n      }, {\n        id: 'promisedStart',\n        type: 'datetimeflatpickr',\n        label: 'Break Start',\n        valuePath: 'promisedStart'\n      }, {\n        id: 'promisedEnd',\n        type: 'datetimeflatpickr',\n        label: 'Break End',\n        valuePath: 'promisedEnd'\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/drivers-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/drivers-form-widget/config\", \"moment\"], function (_exports, _component, _config, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    editModal: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n\n    validateRecords() {\n      let valid = true;\n      let records = this.get('editableRecords');\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        const availabilities = record.availability;\n\n        if (record.driverId === undefined || record.driverId.trim().length < 1) {\n          this.get('editModal.errors').pushObject('Invalid Driver Id');\n          this.get('errorMessage').pushWarning({\n            detail: 'Invalid Driver Id'\n          });\n        }\n\n        availabilities.forEach(availability => {\n          const startTime = (0, _moment.default)(availability.startTime);\n          const endTime = (0, _moment.default)(availability.endTime);\n          const shiftStart = (0, _moment.default)(availability.shiftStart, 'HH:mm:ss');\n          const shiftEnd = (0, _moment.default)(availability.shiftEnd, 'HH:mm:ss');\n\n          if (endTime.isBefore(startTime)) {\n            valid = false;\n            this.get('editModal.errors').pushObject('Effective end date cannot be before effective start date');\n          }\n\n          if (shiftEnd.isBefore(shiftStart)) {\n            valid = false;\n            this.get('editModal.errors').pushObject('Shift end cannot be before shift start');\n          }\n        });\n      });\n      return valid;\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        let lastUndoState = this.get('editModal.undoHistory').popObject();\n\n        if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n          records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n        } else {\n          lastUndoState.forEach(({\n            record,\n            properties\n          }) => {\n            record.setProperties(properties);\n          });\n        }\n\n        this.set('isLastUndoStateCommitted', true);\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n        }\n      } // onCellValueChange(record, valuePath, value, options) {\n      //   if (valuePath === 'vehicles.firstObject.name') {\n      //     let vehicle = record.get('vehicles.firstObject');\n      //     record.vehicles.removeObject(vehicle);\n      //   }\n      //   else {\n      //     this.get('service').setRecordValue(record, valuePath, value, options);\n      //   }\n      // }\n\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/drivers-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'id',\n        type: 'text',\n        label: 'ID',\n        valuePath: 'id',\n        editable: false\n      }]\n    }, {\n      title: 'Editable',\n      fields: [{\n        id: 'driverId',\n        type: 'text',\n        label: 'Driver ID',\n        valuePath: 'driverId'\n      }, {\n        id: 'firstName',\n        type: 'text',\n        label: 'First Name',\n        valuePath: 'firstName'\n      }, {\n        id: 'lastName',\n        type: 'text',\n        label: 'Last Name',\n        valuePath: 'lastName'\n      }, {\n        id: 'status',\n        type: 'text',\n        label: 'Status',\n        valuePath: 'status',\n        editable: false\n      }, {\n        id: 'areaCode',\n        type: 'text',\n        label: 'Area Code',\n        valuePath: 'areaCode'\n      }, {\n        id: 'phoneNumber',\n        type: 'text',\n        label: 'Phone Number',\n        valuePath: 'phoneNumber'\n      }, {\n        id: 'active',\n        type: 'boolean',\n        label: 'Active',\n        valuePath: 'active',\n        extra: {\n          options: [{\n            label: 'True',\n            value: true\n          }, {\n            label: 'False',\n            value: false\n          }]\n        }\n      }, {\n        id: 'preferredVehicle',\n        type: 'searchable-enum',\n        label: 'Prefered Vehicle',\n        valuePath: 'preferredVehicleName',\n        extra: {\n          optionModelName: 'ss-vehicle',\n          optionSearchPath: 'name',\n          optionSearchEnabled: true\n        }\n      }]\n    }, {\n      title: 'Availabilities',\n      fields: [{\n        id: 'availabilities',\n        type: 'availabilities',\n        label: '',\n        valuePath: 'availability',\n        modelName: 'ss-driver-availability',\n        isMultiType: true,\n        extra: {\n          startTimePath: 'startTime',\n          endTimePath: 'endTime',\n          shiftStartPath: 'shiftStart',\n          shiftEndPath: 'shiftEnd',\n          sundayPath: 'sunday',\n          mondayPath: 'monday',\n          tuesdayPath: 'tuesday',\n          wednesdayPath: 'wednesday',\n          thursdayPath: 'thursday',\n          fridayPath: 'friday',\n          saturdayPath: 'saturday'\n        }\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/drivers-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/drivers-widget/config\", \"adept-iq/utils/populate-new-text-message\", \"lodash\"], function (_exports, _component, _config, _populateNewTextMessage, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['drivers-widget'],\n    editModal: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    textmessage: Ember.inject.service(),\n    editComponent: 'iq-widgets/drivers-form-widget',\n    // need to sub-class this in specific widget\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    // TODO: saveRecordFunction shall be moved to a service later on\n    // This save is specific to saving drivers and all related models.\n    saveRecordFunction(records) {\n      function saveDeleteAllObjects(objects) {\n        const deleteObjects = _lodash.default.difference(objects.content.canonicalState, objects.content.currentState); // delete objects that have been removed from the array\n\n\n        return Promise.all(deleteObjects.map(deleteObject => {\n          deleteObject._record.deleteRecord();\n\n          return deleteObject.save();\n        })).then(() => {\n          return Promise.all(objects.map(object => object.save()));\n        });\n      }\n\n      this.set('editModal.errors', []);\n      return new Promise((resolve, reject) => {\n        records.forEach(record => {\n          record.save().then(() => {\n            saveDeleteAllObjects(record.get('availability')).then(() => {\n              record.set('isForceDirty', false);\n              this.get('activeContext').refreshTableContent(this.get('modelName'));\n            });\n          }).catch(e => {\n            if (e.errors[0].status === '400' || e.errors[0].status === '409') {\n              this.get('editModal.errors').pushObject('Invalid Driver Id');\n            } else {\n              reject(e);\n            }\n          });\n        });\n      });\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', [{\n        name: 'Send Message',\n        action: driver => {\n          this.sendMessageToDrivers([driver]);\n        }\n      }]);\n      this.set('bulkActions', [{\n        name: 'Send Message',\n        action: drivers => {\n          this.sendMessageToDrivers(drivers);\n        }\n      }]);\n    },\n\n    sendMessageToDrivers(drivers) {\n      let me = this;\n      console.log('textMessage', me.get('textmessage'), 'this textmessage ', this.get('textmessage'));\n      let draftMessages = drivers.map(driver => {\n        let newTestMessage = (0, _populateNewTextMessage.default)(me.get('textmessage'), this.get('store'), null, driver, null);\n        return newTestMessage;\n      });\n      this.get('workspace').pushState('addNewMessage', {\n        draftMessages\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/drivers-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/drivers-widget',\n    rowComponent: 'table/rows/driver-status-formatted-row',\n    modelName: 'driver',\n    defaultSortId: 'badgeNr',\n    defaultSortAsc: false,\n    accessKey: '6',\n    title: 'Drivers',\n    columns: [{\n      id: 'badgeNr',\n      index: 0,\n      type: 'number',\n      label: 'Badge Nr',\n      valuePath: 'badgeNr',\n      searchable: true,\n      editable: false,\n      hidden: false,\n      defaultWidth: 50\n    }, {\n      id: 'name',\n      type: 'text',\n      label: 'Name',\n      valuePath: 'name',\n      searchable: true,\n      editable: false,\n      hidden: false,\n      defaultWidth: 60\n    }, {\n      id: 'status',\n      type: 'text',\n      label: 'Status',\n      valuePath: 'drivedStatus',\n      searchable: true,\n      editable: false,\n      hidden: false,\n      highlightable: true,\n      defaultWidth: 50\n    }, {\n      id: 'Callsign',\n      type: 'text',\n      label: 'Callsign',\n      valuePath: 'vehicle.callsign',\n      searchable: true,\n      cellDesc: 'Cab#',\n      editable: false,\n      hidden: false\n    }, {\n      id: 'attributes',\n      type: 'text',\n      label: 'Attributes',\n      valuePath: 'attributesList',\n      searchable: true,\n      editable: false,\n      hidden: false,\n      defaultWidth: 100\n    }, {\n      id: 'tripId',\n      type: 'number',\n      label: 'Trip ID',\n      valuePath: 'trip.id',\n      searchable: true,\n      editable: false,\n      hidden: false,\n      defaultWidth: 100\n    }, {\n      id: 'suspensionFlag',\n      type: 'boolean',\n      label: 'Suspended',\n      valuePath: 'suspensionFlag',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'active',\n      type: 'boolean',\n      label: 'Active',\n      valuePath: 'active',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/edit-settings-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/edit-settings-form-widget/config\"], function (_exports, _component, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    editModal: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    subsections: false,\n\n    validateRecords() {\n      let valid = true;\n      this.set('editModal.errors', []);\n      return valid;\n    },\n\n    sideDrawerTitle: Ember.computed('editableRecords', 'editableSections', function () {\n      const sections = Ember.copy(this.get('editableSections'), true);\n      const target = this.get('editableRecords')[0];\n      const displaySection = sections.find(f => {\n        const title = f.title;\n        const type = target.get('type');\n        return title === type;\n      });\n      return displaySection.title;\n    }),\n    subheading: Ember.computed('editableRecords', 'editableSections', function () {\n      const sections = Ember.copy(this.get('editableSections'), true);\n      const target = this.get('editableRecords')[0];\n      const displaySection = sections.find(f => {\n        const title = f.title;\n        const type = target.get('type');\n        return title === type;\n      });\n      return displaySection.description;\n    }),\n    filteredSections: Ember.computed('editableRecords', 'editableSections', function () {\n      const sections = Ember.copy(this.get('editableSections'), true);\n      const target = this.get('editableRecords')[0];\n      const displaySection = sections.find(f => {\n        const title = f.title;\n        const type = target.get('type');\n        return title === type;\n      });\n\n      if (displaySection) {\n        if (displaySection.subsections) {\n          this.set('subsections', true);\n        }\n\n        if (displaySection.description) {\n          this.set('subheading', displaySection.description);\n        }\n\n        if (displaySection.title) {\n          this.set('title', displaySection.title);\n        }\n      }\n\n      return displaySection.subsections || [displaySection];\n    }),\n    // TODO: WHEN YOU CLICK ADD, ADD ANOTHER THING TO AN ARRAY ENTRY ON THE FORM\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      addItem() {},\n\n      onCellValueAppend(record, valuePath, modelName) {\n        // todo: this should add a new eligibility, but where?\n        return this.get('service').pushRecordValue(record, valuePath, modelName);\n      },\n\n      onUndoClick() {\n        let lastUndoState = this.get('editModal.undoHistory').popObject();\n\n        if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n          records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n        } else {\n          lastUndoState.forEach(({\n            record,\n            properties\n          }) => {\n            record.setProperties(properties);\n          });\n        }\n\n        this.set('isLastUndoStateCommitted', true);\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/edit-settings-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: \"Driver Mobile App Configurations\",\n      subsections: [{\n        title: 'Passwords',\n        fields: [{\n          id: 'driverAppAdminPassword',\n          type: 'text',\n          label: 'Driver App Admin Password',\n          valuePath: 'driverAppAdminPassword',\n          editable: true,\n          mandatory: true,\n          default: '1234'\n        }]\n      }, {\n        title: 'Wifi Network',\n        fields: [{\n          id: 'wifiNetwork',\n          type: 'multientry',\n          label: '',\n          valuePath: 'wifiNetwork',\n          modelName: 'rms-address',\n          isMultiType: true,\n          extra: {\n            rows: [{\n              password: 'default',\n              networkName: 'default'\n            }]\n          }\n        }]\n      }, {\n        title: \"Driving Configuration\",\n        fields: [{\n          id: 'vehicleArriveRadius',\n          type: 'text',\n          label: 'Vehicle Arrive Radius',\n          valuePath: 'vehicleArriveRadius',\n          description: \" A vehicle must be less than this many feet from a stop in order for the Arrive screen or the Start Break screen (for a fixed location break) to be displayed. Note that the vehicle must also be considered stopped in order to display these screens, which is configured in the 'Vehicle Stopped' config value in the Fleet Management widget.\",\n          unit: 'ft',\n          editable: true\n        }, {\n          id: 'pickupTimeThreshold',\n          type: 'text',\n          label: 'Pickup Time Threshold',\n          valuePath: 'pickupTimeThreshold',\n          unit: 'min',\n          description: \"If the current time is more than this many minutes before the pickup stop’s pickup time, then disable Pickup button and add a countdown.\",\n          editable: true\n        }, {\n          id: 'noShowTimeThreshold',\n          type: 'text',\n          label: 'No Show Time Threshold',\n          valuePath: 'noShowTimeThreshold',\n          unit: 'min',\n          description: \"If the current time is more than this many minutes before the pickup stop's pickup time, then disable NoShow button and add a countdown.\",\n          editable: true\n        }, {\n          id: 'autoNoShow',\n          type: 'text',\n          label: 'No Show Requires Dispatch Approval',\n          valuePath: 'autoNoShow',\n          description: \"After a driver presses the NoShow button, the trip is saved as a NoShow. No request is sent to dispatch\",\n          editable: true\n        },\n        /* {\n              id: 'communicationRetryTimeout',\n              type: 'text',\n              label: 'Communication Retry Timeout',\n              valuePath: 'communicationRetryTimeout',\n              unit: 'min',\n              description: \"Not displayed in the UX for MVP. This controls how long information is stored in the event of no communication between app and backend before it is purged. For MVP the app will set this to zero, meaning all communication is saved indefinitely, until communication is re-established. No user will be allowed to change the value. For MVP+, we will consider making this configurable, and then we need to decide which types of messages are purged, saved. \",\n              editable: true\n            }, */\n        {\n          id: 'remainingManifestLengthToDisplay',\n          type: 'text',\n          label: 'Remaining Manifest Length To Display',\n          valuePath: 'remainingManifestLengthToDisplay',\n          description: \"Units can be number of stops or time period\",\n          editable: true\n        }, {\n          id: 'performedManifestLengthToDisplay',\n          type: 'text',\n          label: 'Performed Manifest Length To Display',\n          valuePath: 'performedManifestLengthToDisplay',\n          description: \"Units can be number of stops or time period\",\n          editable: true\n        }]\n      }, {\n        title: \"Canned Messages\",\n        fields: [{\n          id: 'messageContent',\n          type: 'multientry',\n          label: 'Message Content',\n          valuePath: 'messageContent',\n          description: \"Canned message content\",\n          editable: true,\n          isMultiType: true,\n          extra: {\n            rows: [{\n              message: 'canned message'\n            }, {\n              message: 'canned message 2'\n            }, {\n              message: 'canned message 4'\n            }]\n          }\n        }]\n      }, {\n        title: 'Communication Categories',\n        fields: [{\n          id: 'highPriority',\n          type: 'text',\n          label: 'High Priority',\n          valuePath: 'highPriority',\n          description: \"Applies to any changes to the next stop initiated by the dispatcher such as Cancel Trip, Add Trip, No-Show, Arrive, and Depart.\",\n          editable: false\n        }, {\n          id: 'medPriority',\n          type: 'text',\n          label: 'Medium Priority',\n          valuePath: 'medPriority',\n          description: \"Applies to any changes to the next stop initiated by the dispatcher such as Cancel Trip, Add Trip, No-Show, Arrive, and Depart.\",\n          editable: false\n        }]\n      }]\n    }, {\n      title: 'Passenger Mobile App Configurations',\n      subsections: [{\n        title: 'Book Trips',\n        fields: [{\n          id: 'passengersCanBookTripsOnApp',\n          type: 'boolean',\n          label: 'Passengers Can Book Trips On App',\n          valuePath: 'passengersCanBookTripsOnApp',\n          default: true,\n          extra: {\n            options: [{\n              label: 'True',\n              value: true\n            }, {\n              label: 'False',\n              value: false\n            }]\n          },\n          editable: true\n        }, {\n          id: 'allowFree-typeAddress',\n          type: 'boolean',\n          label: 'Allow Free-type Address',\n          valuePath: 'allowFree-typeAddress',\n          default: true,\n          extra: {\n            options: [{\n              label: 'True',\n              value: true\n            }, {\n              label: 'False',\n              value: false\n            }]\n          },\n          editable: true\n        }, {\n          id: 'allowSame-Daytrip',\n          type: 'boolean',\n          label: 'Allow Same-Day trip',\n          valuePath: 'allowSame-Daytrip',\n          default: true,\n          extra: {\n            options: [{\n              label: 'True',\n              value: true\n            }, {\n              label: 'False',\n              value: false\n            }]\n          },\n          editable: true\n        }, {\n          id: 'futuretripTimeline',\n          type: 'number',\n          label: 'Future trip Timeline',\n          valuePath: 'futuretripTimeline',\n          default: 2,\n          unit: 'days',\n          editable: true\n        }, {\n          id: 'cutoffTimeForTomorrowtrip ',\n          type: 'time',\n          label: 'Cutoff Time For Tomorrow trip ',\n          description: 'When a passenger tries to book a trip for tomorrow, the system will compare the current time with this setting and allow/prevent the trip.',\n          unit: 'time',\n          valuePath: 'cutoffTimeForTomorrowtrip ',\n          default: 1700,\n          editable: true\n        }, {\n          id: 'allowDefaultTravelNeedsChangedPerTrip',\n          type: 'boolean',\n          label: 'Allow Default Travel Needs Changed Per Trip',\n          description: 'When enabled, the passenger is allowed to change their travel needs when trip a trip.',\n          valuePath: 'allowDefaultTravelNeedsChangedPerTrip',\n          default: false,\n          extra: {\n            options: [{\n              label: 'True',\n              value: true\n            }, {\n              label: 'False',\n              value: false\n            }]\n          },\n          editable: true\n        }, {\n          id: 'trip_eligibility_type',\n          type: 'multientry',\n          label: 'Eligibility Type',\n          valuePath: 'trip_eligibility_type',\n          description: \"Only passengers with the selected eligibility types can cancel trips.\",\n          editable: true,\n          isMultiType: true,\n          extra: {\n            rows: [{\n              type: 'Eligibility 1'\n            }]\n          }\n        }, {\n          id: 'eligibilityMessage',\n          type: 'text',\n          label: 'Eligibility Message',\n          valuePath: 'eligibilityMessage',\n          default: 'Trip date must be within eligibility date range.',\n          description: ' a message displayed when a passenger enters a trip date that is not within their eligibility date range(s).',\n          editable: true\n        }, {\n          id: 'overlapMessage',\n          type: 'text',\n          label: 'Overlap Message',\n          valuePath: 'overlapMessage',\n          default: 'Unable to book trip. Trip overlaps with an existing trip.',\n          description: 'A message displayed when a passenger tries to book a trip but it is too close in time to an existing trip.',\n          editable: true\n        }]\n      }, {\n        title: 'Cancel Trip',\n        fields: [{\n          id: 'allowTripCancel ',\n          type: 'boolean',\n          label: 'Allow Trip Cancel ',\n          valuePath: 'allowTripCancel ',\n          default: true,\n          extra: {\n            options: [{\n              label: 'Yes',\n              value: true\n            }, {\n              label: 'No',\n              value: false\n            }]\n          },\n          description: \"\",\n          editable: true\n        }, {\n          id: 'lateTripCancelMessage',\n          type: 'text',\n          label: 'Late Trip Cancel Message',\n          valuePath: 'lateTripCancelMessage',\n          description: \"When a passenger tries to cancel a trip and it will be considered a late cancel,  display this message.\",\n          default: \"Please note that this will be counted as a late cancel.\",\n          editable: true\n        }, {\n          id: 'eligibility_type',\n          type: 'multientry',\n          label: 'Eligibility Type',\n          valuePath: 'eligibility_type',\n          description: \"Only passengers with the selected eligibility types can cancel trips.\",\n          editable: true,\n          isMultiType: true,\n          extra: {\n            rows: [{\n              type: 'Eligibility 1'\n            }]\n          }\n        }]\n      }, {\n        title: 'Vehicle Location',\n        fields: [{\n          id: 'when_to_display_vehicle_location',\n          type: 'number',\n          label: 'Vehicle Location Display',\n          unit: 'min',\n          valuePath: 'when_to_display_vehicle_location',\n          default: '60',\n          description: \"How many minutes before the trip's pickup ETA to display the vehicle location on the map.\",\n          editable: true\n        }]\n      }, {\n        title: 'Past Trips',\n        fields: [{\n          id: 'past_trips',\n          type: 'number',\n          label: 'Past Trips',\n          unit: 'days',\n          valuePath: 'past_trips',\n          default: '30',\n          description: \"How many days worth of past trips to display. Default is 30.\",\n          editable: true\n        }]\n      }]\n    }, {\n      title: \"Trip Configurations\",\n      subsections: [{\n        title: \"trip\",\n        description: 'Controls the days for which a user is allowed to book a trip.',\n        fields: [{\n          id: 'futureDays',\n          type: 'number',\n          label: 'Future Days',\n          description: 'Number of days in advance a user is required to book a trip',\n          unit: 'days',\n          valuePath: 'futureDays',\n          default: 2,\n          editable: true\n        }, {\n          id: 'allowsSameDaytrip',\n          type: 'boolean',\n          label: 'Allows Same Day trip',\n          valuePath: 'allowsSameDaytrip',\n          editable: true,\n          default: false,\n          extra: {\n            options: [{\n              label: 'True',\n              value: true\n            }, {\n              label: 'False',\n              value: false\n            }]\n          }\n        }]\n      }, {\n        title: \"No-Show Reasons\",\n        description: 'Description',\n        fields: [{\n          // TODO: Make multi-type select\n          id: 'reason',\n          label: 'Reason',\n          valuePath: 'reason',\n          description: \"A reason a passenger did not show to be picked up.\",\n          default: 'No Answer',\n          editable: true,\n          type: 'multientry',\n          isMultiType: true,\n          extra: {\n            rows: [{\n              'reason': \"No Answer\"\n            }]\n          }\n        }]\n      }, {\n        title: \"Cancel Reasons\",\n        description: 'Description',\n        fields: [{\n          // TODO: Make multi-type select\n          id: 'reason',\n          label: 'Reason',\n          valuePath: 'reason',\n          description: \"A reason a passenger cancelled.\",\n          editable: true,\n          default: 'Not Ready',\n          type: 'multientry',\n          isMultiType: true,\n          extra: {\n            rows: [{\n              'reason': 'Not Ready'\n            }, {\n              'reason': 'No Longer Need Trip'\n            }]\n          }\n        }]\n      }, {\n        title: \"Late Cancel\",\n        description: \"Determines when a trip cancellation qualifies as a late cancellation.\",\n        fields: [{\n          id: 'lateCancelTimeline',\n          type: 'number',\n          label: 'Late Cancel Timeline',\n          valuePath: 'lateCancelTimeline',\n          default: 120,\n          description: \"minutes before the trip pick-up time.\",\n          unit: 'minutes',\n          editable: true\n        }]\n      }, {\n        title: \"Trip Fare\",\n        description: 'Description',\n        fields: [{\n          id: 'defaultFare',\n          type: 'number',\n          label: 'Default Fare',\n          valuePath: 'defaultFare',\n          default: 250,\n          description: \"Default price of trip\",\n          editable: true\n        }]\n      }, {\n        title: \"Payment Method\",\n        description: 'A method used to pay for a trip.',\n        fields: [{\n          id: 'method',\n          type: 'multientry',\n          label: 'Method',\n          valuePath: 'method',\n          description: \"Payment method\",\n          default: 'Cash',\n          editable: true,\n          isMultiType: true,\n          extra: {\n            rows: [{\n              method: 'Cash'\n            }, {\n              method: 'Ticket'\n            }, {\n              method: 'Pass'\n            }]\n          }\n        }]\n      }]\n    }\n    /* {\n      title: \"System Configuration\",\n      subsections: [\n        {\n          title: \"Travel Need Types\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'loadTime',\n              type: 'time',\n              label: 'Load Time',\n              valuePath: 'loadTime',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'unloadTime',\n              type: 'time',\n              label: 'Unload Time',\n              valuePath: 'unloadTime',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'vehicleCapacityTypeId',\n              type: 'text',\n              label: 'Vehicle Capacity Type Id',\n              valuePath: 'vehicleCapacityTypeId',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'vehicleCapacityCount',\n              type: 'number',\n              label: 'Vehicle Capacity Count',\n              valuePath: 'vehicleCapacityCount',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'displayName',\n              type: 'text',\n              label: 'Display Name',\n              valuePath: 'displayName',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'displayOrder',\n              type: 'number',\n              label: 'Display Order',\n              valuePath: 'displayOrder',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'description',\n              type: 'text',\n              label: 'Description',\n              valuePath: 'description',\n              description: \"\",\n              editable: true\n            }\n          ]\n        },\n        {\n          title: \"Fare Types\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            }\n          ]\n        },\n        {\n          title: \"Provider Types\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            }\n          ]\n        },\n        {\n          title: \"Providers\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'providerTypeId',\n              type: 'number',\n              label: 'Provider Type Id',\n              valuePath: 'providerTypeId',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'primaryProviderId',\n              type: 'number',\n              label: 'Primary Provider Id',\n              valuePath: 'primaryProviderId',\n              description: \"null if the provider is a primary provider, otherwise the id of the primary provider if the provider is a sub-provider\",\n              editable: true\n            },\n           ]\n        },\n        {\n          title: \"Break Types\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'defaultDuration',\n              type: 'number',\n              label: 'Default Duration',\n              valuePath: 'defaultDuration',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'isPaid',\n              type: 'boolean',\n              label: 'Is Paid',\n              valuePath: 'isPaid',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'isRecognized',\n              type: 'boolean',\n              label: 'Is Recognized',\n              valuePath: 'isRecognized',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'serviceWindowId',\n              type: 'number',\n              label: 'Service Window Id',\n              valuePath: 'serviceWindowId',\n              description: \"\",\n              editable: true\n            }\n          ]\n        },\n        {\n          title: \"Cancel Types\",\n          fields: [\n            {\n              id: 'code',\n              type: 'number',\n              label: 'Code',\n              valuePath: 'code',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'externalCode',\n              type: 'number',\n              label: 'External Code',\n              valuePath: 'externalCode',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'description',\n              type: 'text',\n              label: 'Description',\n              valuePath: 'description',\n              description: \"\",\n              editable: true\n            },\n          ]\n        },\n        {\n          title: \"No Show Reason Codes\",\n          fields: [\n            {\n              id: 'code',\n              type: 'number',\n              label: 'Code',\n              valuePath: 'code',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'externalCode',\n              type: 'number',\n              label: 'External Code',\n              valuePath: 'externalCode',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'description',\n              type: 'text',\n              label: 'Description',\n              valuePath: 'description',\n              description: \"\",\n              editable: true\n            },\n          ]\n        },\n        {\n          title: \"Vehicle Capacity Types\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'description',\n              type: 'text',\n              label: 'Description',\n              valuePath: 'description',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'engineId',\n              type: 'number',\n              label: 'Engine Id',\n              valuePath: 'engineId',\n              description: \"Used by the strategy engine service)\",\n              editable: true\n            },\n        {\n              id: 'engineName',\n              type: 'text',\n              label: 'Engine Name',\n              valuePath: 'engineName',\n              description: \"Used by the strategy engine service)\",\n              editable: true\n            },\n        {\n                id: 'constrainedByLIFO',\n                type: 'boolean',\n                label: 'Constrained By L I F O',\n                valuePath: 'constrainedByLIFO',\n                description: \"\",\n                editable: true,\n                extra: {\n                  options: [\n                    { label: 'True', value: true },\n                    { label: 'False', value: false }\n                  ]\n                }\n              },\n        {\n              id: 'dwellFactor',\n              type: 'text',\n              label: 'Dwell Factor',\n              valuePath: 'dwellFactor',\n              description: \"\",\n              editable: true\n            },\n          ]\n        },\n        {\n          title: \"Vehicle Types\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            }\n          ]\n        },\n        {\n          title: \"Address Category Type\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            }\n          ]\n        },\n        {\n          title: \"Rider Address Type\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            }\n          ]\n        },\n        {\n          title: \"Passenger Type\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            }\n          ]\n        },\n        {\n          title: \"Eligibility Type\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            }\n          ]\n        },\n      ]\n    },\n    {\n      title: \"Travel Time Parameters\",\n      subsections: [\n        {\n          title: \"Congested Locations\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              editable: true\n            },{\n              id: 'address',\n              type: 'text',\n              label: 'Address',\n              valuePath: 'address',\n              editable: true\n            },{\n              id: 'startTimeOfArrivalDelay',\n              type: 'time',\n              label: 'Start time of arrival delay ',\n              valuePath: 'startTimeOfArrivalDelay',\n              editable: true\n            },\n            {\n              id: 'endTimeOfArrivalDelay',\n              type: 'time',\n              label: 'End time of arrival delay ',\n              valuePath: 'endTimeOfArrivalDelay',\n              editable: true\n            },\n            {\n              id: 'totalMinutesOfArrivalDelay',\n              type: 'number',\n              label: 'Total Minutes Of Arrival Delay',\n              valuePath: 'totalMinutesOfArrivalDelay',\n              editable: false,\n            }\n          ]\n        },\n        {\n          title: \"Speed Profiles\",\n          fields: [\n            {\n              id: 'roadClass',\n              type: 'text',\n              label: 'Road Class',\n              valuePath: 'roadClass',\n              editable: true\n            },{\n              id: 'timeSegment',\n              type: 'text',\n              label: 'Time Segment',\n              valuePath: 'timeSegment',\n              editable: true\n            },{\n              id: 'adjustmentPercentage',\n              type: 'number',\n              label: 'Adjustment Percentage',\n              valuePath: 'adjustmentPercentage',\n              editable: true\n            }\n          ]\n        },\n        {\n          title: \"Speed Regions\",\n          fields: [\n          ]\n        },\n        {\n          title: \"StreetNet binary files\",\n          fields: [\n            {\n              id: 'mapShape',\n              type: 'text',\n              label: 'Map Shape',\n              valuePath: 'mapShape',\n              editable: true\n            },{\n              id: 'timeSegment',\n              type: 'text',\n              label: 'Time Segment',\n              valuePath: 'timeSegment',\n              editable: true\n            },{\n              id: 'adjustmentPercentage',\n              type: 'number',\n              label: 'Adjustment Percentage',\n              valuePath: 'adjustmentPercentage',\n              editable: true\n            }\n          ]\n        }\n      ]\n    },\n    {\n      title: \"Map\",\n      subsections: [\n        {\n          title: \"Service Area\",\n          fields: [\n            {\n              id: 'serviceArea',\n              type: 'text',\n              label: 'Service Area',\n              valuePath: 'serviceArea',\n              editable: true\n            }\n          ]\n        }\n      ]\n    },\n    {\n      title: \"Scheduling\",\n      subsections: [\n        {\n          title: \"Service Windows\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'serviceTypeId',\n              type: 'text',\n              label: 'Service Type Id',\n              valuePath: 'serviceTypeId',\n              description: \"Underlying scheduling engine service type\",\n              editable: true\n            },\n        {\n              id: 'searchWindowStart',\n              type: 'text',\n              label: 'Search Window Start',\n              valuePath: 'searchWindowStart',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'searchWindowEnd',\n              type: 'text',\n              label: 'Search Window End',\n              valuePath: 'searchWindowEnd',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'promiseWindowStart',\n              type: 'number',\n              label: 'Promise Window Start',\n              valuePath: 'promiseWindowStart',\n              description: \"Number of minutes prior to promise time\",\n              editable: true\n            },\n        {\n              id: 'promiseWindowEnd',\n              type: 'number',\n              label: 'Promise Window End',\n              valuePath: 'promiseWindowEnd',\n              description: \"Number of minutes after promise time\",\n              editable: true\n            },\n        {\n              id: 'dropWindowStart',\n              type: 'number',\n              label: 'Drop Window Start',\n              valuePath: 'dropWindowStart',\n              description: \"Number of minutes prior to appt anchored trip requested time\",\n              editable: true\n            },\n        {\n              id: 'dropWindowEnd',\n              type: 'number',\n              label: 'Drop Window End',\n              valuePath: 'dropWindowEnd',\n              description: \"Number of minutes after appt anchored trip requested time\",\n              editable: true\n            },\n        {\n              id: 'scheduleConfigurationId',\n              type: 'text',\n              label: 'Schedule Configuration Id',\n              valuePath: 'scheduleConfigurationId',\n              description: \"Associated schedule configuration\",\n              editable: true\n            },\n          ]\n        },\n        {\n          title: \"Schedule Configurations\",\n          fields: [\n            {\n              id: 'name',\n              type: 'text',\n              label: 'Name',\n              valuePath: 'name',\n              description: \"\",\n              editable: true\n            },\n        {\n              id: 'description',\n              type: 'text',\n              label: 'Description',\n              valuePath: 'description',\n              description: \"\",\n              editable: true\n            },\n            {\n              id: 'isReadOnly',\n              type: 'boolean',\n              label: 'Is Read Only',\n              valuePath: 'isReadOnly',\n              description: \"\",\n              editable: true,\n              default: false,\n              extra: {\n                options: [\n                  {label: 'True', value: true},\n                  {label: 'False', value: false},\n                ]\n              }\n            },\n          ]\n        },\n      ]\n    },\n    {\n      title: 'URLs & Addresses',\n      fields: [\n        {\n          id: 'iQAPIGateway',\n          type: 'text',\n          label: 'IQ API Gateway',\n          valuePath: 'iQAPIGateway',\n          editable: true\n        },\n        {\n          id: 'clientURLAddress',\n          type: 'text',\n          label: 'Client URL Address',\n          valuePath: 'clientURLAddress',\n          editable: true\n        },\n        {\n          id: 'userAccountCreationEmailMessage',\n          type: 'text',\n          label: 'User Account Creation Email Message',\n          valuePath: 'userAccountCreationEmailMessage',\n          editable: true\n        },\n        {\n          id: 'userAccountPasswordResetEmailMessage',\n          type: 'text',\n          label: 'User Account Password Reset Email Message',\n          valuePath: 'userAccountPasswordResetEmailMessage',\n          editable: true\n        },\n        {\n          id: 'userAccountEmailSenderAddress',\n          type: 'text',\n          label: 'User Account Email Sender Address',\n          valuePath: 'userAccountEmailSenderAddress',\n          editable: true\n        },\n        {\n          id: 'userLogoutMinutes',\n          type: 'text',\n          label: 'User Logout Minutes',\n          valuePath: 'userLogoutMinutes',\n          editable: true\n        },\n        {\n          id: 'userAccountCreationEmailExpiry',\n          type: 'text',\n          label: 'User Account Creation Email Expiry',\n          valuePath: 'userAccountCreationEmailExpiry',\n          editable: true\n        }\n      ]\n    },\n    {\n      title: 'ETA Calculation',\n      fields: [\n      {\n        id: 'TOMTOM_BASE_URL',\n        type: 'text',\n        label: 'TomTom Base URL',\n        valuePath: 'TOMTOM_BASE_URL',\n        editable: true\n      },\n      {\n        id: 'TOMTOM_KEY',\n        type: 'text',\n        label: 'TomTom Key',\n        valuePath: 'TOMTOM_KEY',\n        editable: true\n      },\n      {\n        id: 'HISTORIC_TIME_THRESHOLD',\n        type: 'text',\n        label: 'Historic Time Threshold',\n        valuePath: 'HISTORIC_TIME_THRESHOLD',\n        editable: true\n      },\n      {\n        id: 'PARTIAL_REFRESH_THRESHOLD',\n        type: 'text',\n        label: 'Partial Refresh Threshold',\n        valuePath: 'PARTIAL_REFRESH_THRESHOLD',\n        editable: true\n      },\n      {\n        id: 'UPDATE_THRESHOLDS_METERS',\n        type: 'text',\n        label: 'Update Thresholds Meters',\n        valuePath: 'UPDATE_THRESHOLDS_METERS',\n        editable: true\n      },\n      {\n        id: 'UPDATE_THRESHOLDS_SECONDS',\n        type: 'text',\n        label: 'Update Thresholds Sections',\n        valuePath: 'UPDATE_THRESHOLDS_SECONDS',\n        editable: true\n      },\n      {\n        id: 'UPDATE_THRESHOLDS_CACHETTL',\n        type: 'text',\n        label: 'Update Thresholds CacheTTL',\n        valuePath: 'UPDATE_THRESHOLDS_CACHETTL',\n        editable: true\n      }\n      ]\n    },\n    {\n      title: 'Driver App License',\n      fields: [\n        {\n          id: 'totalLicenses',\n          type: 'text',\n          label: 'Total Licenses',\n          valuePath: 'totalLicenses',\n          editable: true\n        },\n        {\n          id: 'licensesUsed',\n          type: 'text',\n          label: 'Licenses Used',\n          valuePath: 'licensesUsed',\n          editable: true\n        },\n        {\n          id: 'licensesRemaining',\n          type: 'text',\n          label: 'Licenses Remaining',\n          valuePath: 'licensesRemaining',\n          editable: true\n        }\n      ]\n    },\n    { title: 'Fixed Route Engine Parameters',\n      fields:[\n        {\n          id: 'fullFixedRouteItineraryLimit',\n          type: 'number',\n          label: ' Full Fixed Route Itinerary Limit',\n          valuePath: 'FullFixedRouteItineraryLimit',\n          description: \"The maximum number of possible full fixed route itineraries that the Fixed Route Engine will return, but it may return less.\",\n          editable: true\n        },\n        {\n          id: 'feederItineraryLimit',\n          type: 'number',\n          label: ' Feeder Itinerary Limit',\n          valuePath: 'FeederItineraryLimit',\n          description: \"The maximum number of possible feeder itineraries that the Fixed Route Engine will return, but it may return less.\",\n          editable: true\n        },\n        {\n          id: 'reverseFeederItineraryLimit',\n          type: 'number',\n          label: ' Reverse Feeder Itinerary Limit',\n          valuePath: 'ReverseFeederItineraryLimit',\n          description: \"The maximum number of possible reverse feeder itineraries that the Fixed Route Engine will return, but it may return less.\",\n          editable: true\n        },\n        {\n          id: 'maximumTransfers',\n          type: 'number',\n          label: ' Maximum Transfers',\n          valuePath: 'MaximumTransfers',\n          description: \"The maximum number of transfers a fixed route solution trip is allowed to make.\",\n          editable: true\n        },\n        {\n          id: 'minimumTransferWaitTime',\n          type: 'number',\n          label: ' Minimum Transfer Wait Time',\n          valuePath: 'MinimumTransferWaitTime',\n          description: \"The minimum time, in minutes, between transfers on a fixed route solution trip.\",\n          editable: true\n        },\n        {\n          id: 'walkingTimeExtension',\n          type: 'number',\n          label: ' Walking Time Extension',\n          valuePath: 'WalkingTimeExtension',\n          description: \"The number of minutes to add as a safety factor when calculating the departure time from the pick location of a full fixed-route trip.\",\n          editable: true\n        },\n        {\n          id: 'feederServiceTimeExtension',\n          type: 'number',\n          label: ' Feeder Service Time Extension',\n          valuePath: 'FeederServiceTimeExtension',\n          description: \"The number of minutes to add as a safety factor when calculating the departure time from the pick location or the arrival time at the drop location of a feeder trip.\",\n          editable: true\n        },\n        {\n          id: 'useLastServiceSegment',\n          type: 'boolean',\n          label: ' Use Last Service Segment',\n          valuePath: 'UseLastServiceSegment',\n          description: \"Determines whether the Fixed Route Engine can schedule trips on the last service segment of the day.  Use 'true' for yes.  Use 'false' for no.\",\n          extra: {\n            options: [\n              { label: 'True', value: true },\n              { label: 'False', value: false }\n            ]\n          },\n          editable: true\n        },\n        {\n          id: 'bestTripCriteria',\n          type: 'select',\n          label: ' Best Trip Criteria',\n          valuePath: 'BestTripCriteria',\n          description: \"The criteria the Fixed Route Engine will use when determining the best full fixed-route itinerary.\",\n          extra: {\n            options: [\n              {label: \"Least travel time\" ,value: 0},\n              {label: \"Fewest transfers\" ,value: 1},\n              {label: \"Least walking distance\" ,value: 2},\n              {label: \"Closest to request time\" ,value: 3},\n              {label: \"Least demand-response ride distance\" ,value: 4},\n              {label: \"Least demand-response ride time\" ,value: 5}\n            ]\n          },\n          editable: true\n        },\n        {\n          id: 'bestFeederTripCriteria',\n          type: 'select',\n          label: ' Best Feeder Trip Criteria',\n          valuePath: 'BestFeederTripCriteria',\n          description: \"The criteria the Fixed Route Engine will use when determining the best feeder trip itinerary.\",\n          extra: {\n            options: [\n              {label: \"Least travel time\" ,value: 0},\n              {label: \"Fewest transfers\" ,value: 1},\n              {label: \"Least walking distance\" ,value: 2},\n              {label: \"Closest to request time\" ,value: 3},\n              {label: \"Least demand-response ride distance\" ,value: 4},\n              {label: \"Least demand-response ride time\" ,value: 5}\n            ]\n          },\n          editable: true\n        },\n        {\n          id: 'feederServiceMinimumDistance',\n          type: 'number',\n          label: ' Feeder Service Minimum Distance',\n          valuePath: 'FeederServiceMinimumDistance',\n          description: \"The minimum direct ride distance of the trip in meters required for the Fixed Route Engine to consider feeder trips.  If a trip's direct ride distance is less than this value, then the Fixed Route Engine will not consider the request for feeder trips.\",\n          editable: true\n        },\n        {\n          id: 'feederServiceSearchAreaShape',\n          type: 'number',\n          label: ' Feeder Service Search Area Shape',\n          valuePath: 'FeederServiceSearchAreaShape',\n          description: \"The shape that the Fixed Route Engine will use when searching for bus stops suitable for feeder trips.\",\n          extra: {\n            options: [\n              {label: \"Rectangle\" ,value: 0},\n              {label: \"Semicircle\" ,value: 1},\n              {label: \"Semiellipse\" ,value: 2}\n            ]\n          },\n          editable: true\n        },\n        {\n          id: 'directAxisForwardExtent',\n          type: 'number',\n          label: ' Direct Axis Forward Extent',\n          valuePath: 'DirectAxisForwardExtent',\n          description: \"The distance from the pick location along the direct travel axis towards the drop location that marks the boundary of the geographic search area used to find possible feeder trips.   If the DirectAxisForwardExtentType value is set to 0, this is in meters.  If the DirectAxisForwardExtentType value is set to 1, this is a percentage of the direct ride distance.\",\n          editable: true\n        },\n        {\n          id: 'directAxisForwardExtentType',\n          type: 'select',\n          label: ' Direct Axis Forward Extent Type',\n          valuePath: 'DirectAxisForwardExtentType',\n          description: \"Whether the DirectAxisForwardExtent value is an absolute value or a percentage of the direct distance.\",\n          extra: {\n            options: [\n              {label: \"Absolute value\" ,value: 0},\n              {label: \"Percentage\" ,value: 1}\n            ]\n          },\n          editable: true\n        },\n        {\n          id: 'directAxisReverseExtent',\n          type: 'number',\n          label: ' Direct Axis Reverse Extent',\n          valuePath: 'DirectAxisReverseExtent',\n          description: \"The distance from the pick location along the direct travel axis away from the drop location that marks the boundary of the geographic search area used to find possible feeder trips.  If the DirectAxisReverseExtentType value is set to 0, this is in meters.  If the DirectAxisReverseExtentType value is set to 1, this is a percentage of the direct ride distance.\",\n          editable: true\n        },\n        {\n          id: 'directAxisReverseExtentType',\n          type: 'number',\n          label: ' Direct Axis Reverse Extent Type',\n          valuePath: 'DirectAxisReverseExtentType',\n          description: \"Whether the DirectAxisReverseExtent value is an absolute value or a percentage of the direct distance.\",\n          extra: {\n            options: [\n              {label: \"Absolute value\" ,value: 0},\n              {label: \"Percentage\" ,value: 1}\n            ]\n          },\n          editable: true\n        },\n        {\n          id: 'orthogonalAxisExtent',\n          type: 'number',\n          label: ' Orthogonal Axis Extent',\n          valuePath: 'OrthogonalAxisExtent',\n          description: \"The distance from the direct travel axis along the orthogonal axis that marks the boundary of the geographic search area used to find possible feeder trips.  If the OrthogonalAxisExtentType value is set to 0, this is in meters.  If the OrthogonalAxisExtentType value is set to 1, this is a percentage of the direct ride distance.\",\n          editable: true\n        },\n        {\n          id: 'orthogonalAxisExtentType',\n          type: 'select',\n          label: ' Orthogonal Axis Extent Type',\n          valuePath: 'OrthogonalAxisExtentType',\n          description: \"Whether the OrthogonalAxisExtent value is an absolute value or a percentage of the direct distance.\",\n          extra: {\n            options: [\n              {label: \"Absolute value\" ,value: 0},\n              {label: \"Percentage\" ,value: 1}\n            ]\n          },\n          editable: true\n        },\n        {\n          id: 'fullFixedRoutePriority',\n          type: 'number',\n          label: ' Full Fixed Route Priority',\n          valuePath: 'FullFixedRoutePriority',\n          description: \"The order in which the Fixed Route Engine will for look for full fixed-route itineraries.  A value of 1 means that the Fixed Route Engine will look for full fixed route itineraries first.  A value of 2 means the Fixed Route Engine will look for full fixed route itineraries second.  A value of 3 means the Fixed Route Engine will look for full fixed route itineraries third.  A value of 0 means that the Fixed Route Engine will not look for full fixed route itineraries at all.  Setting this to the same value as FeederPriority or ReverseFeederPriority will result in the Fixed Route Engine returning itineraries of both types together.\",\n          editable: true\n        },\n        {\n          id: 'feederPriority',\n          type: 'number',\n          label: ' Feeder Priority',\n          valuePath: 'FeederPriority',\n          description: \"The order in which the Fixed Route Engine will for look for feeder itineraries.  A value of 1 means that the Fixed Route Engine will look for feeder itineraries first.  A value of 2 means the Fixed Route Engine will look for feeder itineraries second.  A value of 3 means the Fixed Route Engine will look for feeder itineraries third.  A value of 0 means that the Fixed Route Engine will not look for feeder itineraries at all.  Setting this to the same value as FullFixedRoutePriority or ReverseFeederPriority will result in the Fixed Route Engine returning itineraries of both types together.\",\n          editable: true\n        },\n        {\n          id: 'reverseFeederPriority',\n          type: 'number',\n          label: ' Reverse Feeder Priority',\n          valuePath: 'ReverseFeederPriority',\n          description: \"The order in which the Fixed Route Engine will for look for reverse feeder itineraries.  A value of 1 means that the Fixed Route Engine will look for reverse feeder first.  A value of 2 means the Fixed Route Engine will look for reverse feeder itineraries second.  A value of 3 means the Fixed Route Engine will look for reverse feeder itineraries third.  A value of 0 means that the Fixed Route Engine will not look for reverse feeder itineraries at all.  Setting this to the same value as FullFixedRoutePriority or FeederPriority will result in the Fixed Route Engine returning itineraries of both types together.\",\n          editable: true\n        },\n        {\n          id: 'defaultWalkingSpeed',\n          type: 'number',\n          label: ' Default Walking Speed',\n          valuePath: 'DefaultWalkingSpeed',\n          description: \"The speed the Fixed Route Engine will assume that clients can walk in meters per second.\",\n          editable: true\n        },\n        {\n          id: 'defaultMaximumWalkingDistance',\n          type: 'number',\n          label: ' Default Maximum Walking Distance',\n          valuePath: 'DefaultMaximumWalkingDistance',\n          description: \"The maximum walking distance, in meters, the Fixed Route Engine will assume that clients can walk.\",\n          editable: true\n        },\n        {\n          id: 'defaultLoadingTime',\n          type: 'number',\n          label: ' Default Loading Time',\n          valuePath: 'DefaultLoadingTime',\n          description: \"The time, in minutes, the Fixed Route Engine will assume that clients take to load into a demand response vehicle.\",\n          editable: true\n        },\n        {\n          id: 'defaultUnloadingTime',\n          type: 'number',\n          label: ' Default Unloading Time',\n          valuePath: 'DefaultUnloadingTime',\n          description: \"The time, in minutes, the Fixed Route Engine will assume that clients take to unload from a demand response vehicle.\",\n          editable: true\n        },\n        {\n          id: 'travelOracleType',\n          type: 'number',\n          label: ' Travel Oracle Type',\n          valuePath: 'TravelOracleType',\n          description: \"The type of Travel Oracle the Fixed Route Engine will use when calculating travel time and distance.\",\n          editable: true\n        },\n        {\n          id: 'returnCompleteItinerary',\n          type: 'boolean',\n          label: ' Return Complete Itinerary',\n          valuePath: 'ReturnCompleteItinerary',\n          description: \"Determines whether the Fixed Route Engine will return every stop along the fixed route itinerary.  Use 'true' for yes.  Use 'false' for no.\",\n          extra: {\n            options: [\n              { label: 'True', value: true },\n              { label: 'False', value: false }\n            ]\n          },\n          editable: true\n        },\n        {\n          id: 'excludeStopsWithinWalkingDistanceFromFeederTrips',\n          type: 'boolean',\n          label: ' Exclude Stops Within Walking Distance From Feeder Trips',\n          valuePath: 'ExcludeStopsWithinWalkingDistanceFromFeederTrips',\n          description: \"Determines whether the Fixed Route Engine will exclude stops within the client's walking distance from being considered for feeder and reverse feeder solutions.  Use 'true' for yes. Use 'false' for no.\",\n          extra: {\n            options: [\n              { label: 'True', value: true },\n              { label: 'False', value: false }\n            ]\n          },\n          editable: true\n        },\n        {\n          id: 'demandTripProcessingTimeLimit',\n          type: 'text',\n          label: ' Demand Trip Processing Time Limit',\n          valuePath: 'DemandTripProcessingTimeLimit',\n          description: \"The number of seconds the Fixed Route Engine is allowed to search for demand itineraries.  Once the time limit is reached, the Fixed Route Engine will return any valid itineraries it has already found.  Use '0' to disable.\",\n          editable: true\n        },\n        {\n          id: 'subscriptionTripProcessingTimeLimit',\n          type: 'text',\n          label: ' Subscription Trip Processing Time Limit',\n          valuePath: 'SubscriptionTripProcessingTimeLimit',\n          description: \"The number of seconds the Fixed Route Engine is allowed to search for subscription itineraries.  Once the time limit is reached, the Fixed Route Engine will return any valid itineraries it has already found.  Use '0' to disable.\",\n          editable: true\n        },\n        {\n          id: 'restrictFeederTransferLocations',\n          type: 'text',\n          label: ' Restrict Feeder Transfer Locations',\n          valuePath: 'RestrictFeederTransferLocations',\n          description: \"Determines whether the Fixed Route Engine will default stops to not allow clients to transfer between demand response vehicles and the fixed route network.  The default setting can be overriden by explicitly setting the individual stop constraints.  Use 'true' for yes. Use 'false' for no.\",\n          editable: true\n        },\n        {\n          id: 'restrictWalkingTransferLocations',\n          type: 'text',\n          label: ' Restrict Walking Transfer Locations',\n          valuePath: 'RestrictWalkingTransferLocations',\n          description: \"Determines whether the Fixed Route Engine will default stops to not allow clients to transfer between walking and the fixed route network.  The default setting can be overriden by explicitly setting the individual stop constraints.  Use 'true' for yes. Use 'false' for no.\",\n          editable: true\n        }\n      ]},\n    {\n      title: 'Book Trip',\n      fields: [\n        {\n          id: 'passengersCanBookTripsOnApp',\n          type: 'boolean',\n          label: 'Passengers Can Book Trips On App',\n          valuePath: 'passengersCanBookTripsOnApp',\n          default: 'Yes',\n          extra: {\n            options: [\n              { label: 'Yes', value: true },\n              { label: 'No', value: false }\n            ]\n          },\n          editable: true\n        },\n    {\n          id: 'allowFree-typeAddress',\n          type: 'boolean',\n          label: 'Allow Free-type Address',\n          valuePath: 'allowFree-typeAddress',\n          default: 'Yes',\n          extra: {\n            options: [\n              { label: 'Yes', value: true },\n              { label: 'No', value: false }\n            ]\n          },\n          editable: true\n        },\n    {\n          id: 'allowSame-Daytrip',\n          type: 'boolean',\n          label: 'Allow Same-Day trip',\n          valuePath: 'allowSame-Daytrip',\n          default: false,\n          extra: {\n            options: [\n              { label: 'Yes', value: true },\n              { label: 'No', value: false }\n            ]\n          },\n          editable: true\n        },\n    {\n          id: 'futuretripTimeline',\n          type: 'number',\n          label: 'Future trip Timeline',\n          valuePath: 'futuretripTimeline',\n          default: 2,\n          editable: true\n        },\n    {\n          id: 'cutoffTimeForTomorrowtrip ',\n          type: 'time',\n          label: 'Cutoff Time For Tomorrow trip ',\n          valuePath: 'cutoffTimeForTomorrowtrip ',\n          default: 1700,\n          editable: true\n        },\n    {\n          id: 'allowDefaultTravelNeedsChangedPerTrip',\n          type: 'boolean',\n          label: 'Allow Default Travel Needs Changed Per Trip',\n          valuePath: 'allowDefaultTravelNeedsChangedPerTrip',\n          default: true,\n          extra: {\n            options: [\n              { label: 'True', value: true },\n              { label: 'False', value: false }\n            ]\n          },\n          editable: true\n        },\n        {\n          // TODO: Convert this to an eligibilities table\n          id: 'eligibilityType',\n          type: 'text',\n          label: 'Eligibility Type',\n          valuePath: 'eligibilityType',\n          editable: true\n        },\n        {\n          id: 'eligibilityMessage',\n          type: 'text',\n          label: 'Eligibility Message',\n          valuePath: 'eligibilityMessage',\n          default: 'Trip date must be within eligibility date range.',\n          editable: true\n        },\n        {\n          id: 'overlapMessage',\n          type: 'text',\n          label: 'Overlap Message',\n          valuePath: 'overlapMessage',\n          default: 'Unable to book trip. Trip overlaps with an existing trip.',\n          editable: true\n        }\n      ]\n    },\n    {\n      title: 'Scheduling Parameters',\n      fields: [\n        {\n          id: 'ACT_DANCHORREGULAR_11',\n          type: 'number',\n          label: 'Act Danchorregular 11',\n          valuePath: 'ACT_DANCHORREGULAR_11',\n          description: \"If set to 1, the Engine will assign service type ID of all appointment anchored subscriptions to a hardcoded value of 11.\",\n          editable: true\n        },\n    {\n          id: 'ACT_FLOAT_ADD1',\n          type: 'number',\n          label: 'Act Float Add1',\n          valuePath: 'ACT_FLOAT_ADD1',\n          description: \"Extra rideshare time allowed for drop anchored subscription trips as a function of the trip's direct ride time\",\n          editable: true\n        },\n    {\n          id: 'ACT_FLOAT_ADD2',\n          type: 'number',\n          label: 'Act Float Add2',\n          valuePath: 'ACT_FLOAT_ADD2',\n          description: \"Extra rideshare time allowed for drop anchored subscription trips as a function of the trip's direct ride time\",\n          editable: true\n        },\n    {\n          id: 'ACT_FLOAT_ADD3',\n          type: 'number',\n          label: 'Act Float Add3',\n          valuePath: 'ACT_FLOAT_ADD3',\n          description: \"Extra rideshare time allowed for drop anchored subscription trips as a function of the trip's direct ride time\",\n          editable: true\n        },\n    {\n          id: 'ACT_FLOAT_ADD4',\n          type: 'number',\n          label: 'Act Float Add4',\n          valuePath: 'ACT_FLOAT_ADD4',\n          description: \"Extra rideshare time allowed for drop anchored subscription trips as a function of the trip's direct ride time\",\n          editable: true\n        },\n    {\n          id: 'ACT_FLOAT_TIME1',\n          type: 'number',\n          label: 'Act Float Time1',\n          valuePath: 'ACT_FLOAT_TIME1',\n          description: \"Maximum direct ride time for which the corresponding extra rideshare time applies\",\n          editable: true\n        },\n    {\n          id: 'ACT_FLOAT_TIME2',\n          type: 'number',\n          label: 'Act Float Time2',\n          valuePath: 'ACT_FLOAT_TIME2',\n          description: \"Maximum direct ride time for which the corresponding extra rideshare time applies\",\n          editable: true\n        },\n    {\n          id: 'ACT_FLOAT_TIME3',\n          type: 'number',\n          label: 'Act Float Time3',\n          valuePath: 'ACT_FLOAT_TIME3',\n          description: \"Maximum direct ride time for which the corresponding extra rideshare time applies\",\n          editable: true\n        },\n    {\n          id: 'ACT_FLOAT_TIME4',\n          type: 'number',\n          label: 'Act Float Time4',\n          valuePath: 'ACT_FLOAT_TIME4',\n          description: \"Maximum direct ride time for which the corresponding extra rideshare time applies\",\n          editable: true\n        },\n    {\n          id: 'AFFINITY_PACK_SIZE',\n          type: 'number',\n          label: 'Affinity Pack Size',\n          valuePath: 'AFFINITY_PACK_SIZE',\n          description: \"The number of zone affinities packed into a single field.  Each of the ten original zone affinity fields contains a number.  Each digit of that number represents a zone affinity.\",\n          editable: true\n        },\n    {\n          id: 'AFFINITY_WEIGHT_DROP',\n          type: 'number',\n          label: 'Affinity Weight Drop',\n          valuePath: 'AFFINITY_WEIGHT_DROP',\n          description: \"The weighting for drops when calculating route zone affinity\",\n          editable: true\n        },\n    {\n          id: 'AFFINITY_WEIGHT_PICK',\n          type: 'number',\n          label: 'Affinity Weight Pick',\n          valuePath: 'AFFINITY_WEIGHT_PICK',\n          description: \"The weighting for picks when calculating route zone affinity\",\n          editable: true\n        },\n    {\n          id: 'AGENCY_IS_CONSTRAINT',\n          type: 'number',\n          label: 'Agency Is Constraint',\n          valuePath: 'AGENCY_IS_CONSTRAINT',\n          description: \"If turned on, the scheduling engine will not allow a trip to be scheduled on a route that is part of an agency not associated with the trip\",\n          editable: true\n        },\n    {\n          id: 'ANGLE_GAP',\n          type: 'number',\n          label: 'Angle Gap',\n          valuePath: 'ANGLE_GAP',\n          description: \"The minimum number of degrees between stops for an angle to be considered a gap.\",\n          editable: true\n        },\n    {\n          id: 'ANGLE_SPLIT_POINT',\n          type: 'number',\n          label: 'Angle Split Point',\n          valuePath: 'ANGLE_SPLIT_POINT',\n          description: \"The minimum number of degrees between stops in a wide angle to be considered a place to split a wide angle.\",\n          editable: true\n        },\n    {\n          id: 'ANGLE_WIDE',\n          type: 'number',\n          label: 'Angle Wide',\n          valuePath: 'ANGLE_WIDE',\n          description: \"The minimum number of degrees for an angle to be considered wide for splitting purposes.\",\n          editable: true\n        },\n    {\n          id: 'APPT_PICKWIN_LENGTH',\n          type: 'number',\n          label: 'Appt Pickwin Length',\n          valuePath: 'APPT_PICKWIN_LENGTH',\n          description: \"The maximum pick window length allowed for drop anchored trips when the ride time is shortened by moving the picks closer to the drops and trimming the beginning of the pick window.\",\n          editable: true\n        },\n    {\n          id: 'AT_RISK_WIN_PERCENT',\n          type: 'number',\n          label: 'At Risk Win Percent',\n          valuePath: 'AT_RISK_WIN_PERCENT',\n          description: \"This defines where in the pick window trips are considered to be at risk of being late.\",\n          editable: true\n        },\n    {\n          id: 'BATCH_MULTIPLE_PASSES',\n          type: 'number',\n          label: 'Batch Multiple Passes',\n          valuePath: 'BATCH_MULTIPLE_PASSES',\n          description: \"The number of times to run through the batching process to improve ridesharing.\",\n          editable: true\n        },\n    {\n          id: 'BEST_FEEDER_CRITERIA',\n          type: 'number',\n          label: 'Best Feeder Criteria',\n          valuePath: 'BEST_FEEDER_CRITERIA',\n          description: \"The criteria to use when choosing the best feeder trip.  If 0, the criteria is the direct ride distance.  If 1, the criteria is the direct ride time.\",\n          editable: true\n        },\n    {\n          id: 'BLOCKTRAN_EXTEND_SHIFT',\n          type: 'number',\n          label: 'Blocktran Extend Shift',\n          valuePath: 'BLOCKTRAN_EXTEND_SHIFT',\n          description: \"If turned on, the scheduling engine will not allow block transfers that cause shifts to be extended\",\n          editable: true\n        },\n    {\n          id: 'BREAK_OVER_MANUAL',\n          type: 'number',\n          label: 'Break Over Manual',\n          valuePath: 'BREAK_OVER_MANUAL',\n          description: \"If turned on, inserted manual trips that conflict with breaks are marked as illegal.\",\n          editable: true\n        },\n    {\n          id: 'CARVE_BEST_WIN',\n          type: 'number',\n          label: 'Carve Best Win',\n          valuePath: 'CARVE_BEST_WIN',\n          description: \"Make the promise time as close to the request time as possible.  For appointment trips, this has a negative impact on scheduling flexibility.\",\n          editable: true\n        },\n    {\n          id: 'CARVE_PRO_WIN',\n          type: 'number',\n          label: 'Carve Pro Win',\n          valuePath: 'CARVE_PRO_WIN',\n          description: \"Determines whether the Window Carving feature is allowed to carve trips with assigned promise times.\",\n          editable: true\n        },\n    {\n          id: 'CLOSE_STOPS_MAX_TIME',\n          type: 'number',\n          label: 'Close Stops Max Time',\n          valuePath: 'CLOSE_STOPS_MAX_TIME',\n          description: \"The maximum amount of time between stops that are considered close to each other.\",\n          editable: true\n        },\n    {\n          id: 'CLUSTER_BY_ANCHOR',\n          type: 'number',\n          label: 'Cluster By Anchor',\n          valuePath: 'CLUSTER_BY_ANCHOR',\n          description: \"If turned on, the scheduling engine only clusters trips that are of the same anchor type.\",\n          editable: true\n        },\n    {\n          id: 'COM_DIST',\n          type: 'number',\n          label: 'Com Dist',\n          valuePath: 'COM_DIST',\n          description: \"The maximum distance between pairs of stops in a cluster\",\n          editable: true\n        },\n    {\n          id: 'COM_MAX_SIZE',\n          type: 'number',\n          label: 'Com Max Size',\n          valuePath: 'COM_MAX_SIZE',\n          description: \"The maximum number of stops in a cluster\",\n          editable: true\n        },\n    {\n          id: 'COM_PRIORITY_TYPE',\n          type: 'text',\n          label: 'Com Priority Type',\n          valuePath: 'COM_PRIORITY_TYPE',\n          description: \"If P, the clustering algorithm prioritizes common picks over common drops.  If D, the reverse is true.\",\n          editable: true\n        },\n    {\n          id: 'COM_WIN_OVERLAP',\n          type: 'number',\n          label: 'Com Win Overlap',\n          valuePath: 'COM_WIN_OVERLAP',\n          description: \"The minimum time overlap between pick/drop windows in a cluster\",\n          editable: true\n        },\n    {\n          id: 'DELTA_FLEET',\n          type: 'number',\n          label: 'Delta Fleet',\n          valuePath: 'DELTA_FLEET',\n          description: \"The maximum allowed change in the number of routes between two consecutive engine calls.\",\n          editable: true\n        },\n    {\n          id: 'DIRECT_RIDE_OK_X_MI_OF_D',\n          type: 'number',\n          label: 'Direct Ride Ok X Mi Of D',\n          valuePath: 'DIRECT_RIDE_OK_X_MI_OF_D',\n          description: \"This is an alternate name for the GONORTH_OK_X_MI_OF_D parameter\",\n          editable: true\n        },\n    {\n          id: 'DIRECT_RIDE_OVERSHOOT_PERCENT',\n          type: 'number',\n          label: 'Direct Ride Overshoot Percent',\n          valuePath: 'DIRECT_RIDE_OVERSHOOT_PERCENT',\n          description: \"This is an alternate name for the GONORTH_OVERSHOOT_PERCENT parameter\",\n          editable: true\n        },\n    {\n          id: 'DIRECT_RIDE_PERCENT',\n          type: 'number',\n          label: 'Direct Ride Percent',\n          valuePath: 'DIRECT_RIDE_PERCENT',\n          description: \"This is an alternate name for the GONORTH_PERCENT parameter\",\n          editable: true\n        },\n    {\n          id: 'DIRECT_RIDE_SWITCH',\n          type: 'number',\n          label: 'Direct Ride Switch',\n          valuePath: 'DIRECT_RIDE_SWITCH',\n          description: \"This is an alternate name for the GONORTH_RIDE_SWITCH parameter\",\n          editable: true\n        },\n    {\n          id: 'DRIVEBY_DROP_DIST',\n          type: 'number',\n          label: 'Driveby Drop Dist',\n          valuePath: 'DRIVEBY_DROP_DIST',\n          description: \"The maximum distance from the route that triggers a driveby drop off.\",\n          editable: true\n        },\n    {\n          id: 'DRIVEBY_MAX_ADD_T',\n          type: 'number',\n          label: 'Driveby Max Add T',\n          valuePath: 'DRIVEBY_MAX_ADD_T',\n          description: \"The maximum amount of time allowed to be added to a route by a driveby.\",\n          editable: true\n        },\n    {\n          id: 'DRIVEBY_PICK_DIST',\n          type: 'number',\n          label: 'Driveby Pick Dist',\n          valuePath: 'DRIVEBY_PICK_DIST',\n          description: \"The maximum distance from the route that triggers a driveby pick up.\",\n          editable: true\n        },\n    {\n          id: 'DRIVER_BREAK_SPAN_END',\n          type: 'number',\n          label: 'Driver Break Span End',\n          valuePath: 'DRIVER_BREAK_SPAN_END',\n          description: \"Any driver break after this limit will be automatically removed by the scheduling engine during the remove driver breaks mode.\",\n          editable: true\n        },\n    {\n          id: 'DRIVER_BREAK_SPAN_START',\n          type: 'number',\n          label: 'Driver Break Span Start',\n          valuePath: 'DRIVER_BREAK_SPAN_START',\n          description: \"Any driver break before this limit will be automatically removed by the scheduling engine during the remove driver breaks mode.\",\n          editable: true\n        },\n    {\n          id: 'DRIVER_FACTOR_SWITCH',\n          type: 'number',\n          label: 'Driver Factor Switch',\n          valuePath: 'DRIVER_FACTOR_SWITCH',\n          description: \"If turned on, enable the use of the driver factor when scheduling trips.\",\n          editable: true\n        },\n    {\n          id: 'ETA_CHANGE_THRESHOLD',\n          type: 'number',\n          label: 'Eta Change Threshold',\n          valuePath: 'ETA_CHANGE_THRESHOLD',\n          description: \"Ignore ETA variances less than this many minutes.   The threshold is applied only when ETAs are being updated using GPS data.\",\n          editable: true\n        },\n    {\n          id: 'FLEET_REC_INCLUDES_SUBFLEET',\n          type: 'number',\n          label: 'Fleet Rec Includes Subfleet',\n          valuePath: 'FLEET_REC_INCLUDES_SUBFLEET',\n          description: \"If turned on, keeper route, route trip limit, and route mile limit information from the 2fleeet.asc file are used.\",\n          editable: true\n        },\n    {\n          id: 'FREEZE_WIN_LENGTH',\n          type: 'number',\n          label: 'Freeze Win Length',\n          valuePath: 'FREEZE_WIN_LENGTH',\n          description: \"The earliest time in the future that the engine will schedule non-manual trips\",\n          editable: true\n        },\n    {\n          id: 'FULL_TRIPS_OUT_ALWAYS',\n          type: 'number',\n          label: 'Full Trips Out Always',\n          valuePath: 'FULL_TRIPS_OUT_ALWAYS',\n          description: \"If turned on, the scheduling engine will always load the full engine state\",\n          editable: true\n        },\n    {\n          id: 'GROUP_MAX_DIST',\n          type: 'number',\n          label: 'Group Max Dist',\n          valuePath: 'GROUP_MAX_DIST',\n          description: \"This specifies the maximum distance between stops for them to be considered a group.\",\n          editable: true\n        },\n    {\n          id: 'HONOR_FLEX_TRIPS',\n          type: 'number',\n          label: 'Honor Flex Trips',\n          valuePath: 'HONOR_FLEX_TRIPS',\n          description: \"If turned on, this allows semi-manual trips to be scheduled.\",\n          editable: true\n        },\n    {\n          id: 'HONOR_MANUAL_TRIPS',\n          type: 'number',\n          label: 'Honor Manual Trips',\n          valuePath: 'HONOR_MANUAL_TRIPS',\n          description: \"If turned on, this allows manual trips to be scheduled\",\n          editable: true\n        },\n    {\n          id: 'HONOR_SEMIMANUAL_TRIPS',\n          type: 'number',\n          label: 'Honor Semimanual Trips',\n          valuePath: 'HONOR_SEMIMANUAL_TRIPS',\n          description: \"This is an alternate name for the HONOR_FLEX_TRIPS parameter\",\n          editable: true\n        },\n    {\n          id: 'IGNORE_INCONSISTENT_MAPPINGS',\n          type: 'number',\n          label: 'Ignore Inconsistent Mappings',\n          valuePath: 'IGNORE_INCONSISTENT_MAPPINGS',\n          description: \"If turned on, the scheduling engine will not verify that the trip geonodes are mapped to the proper zone and river regions.\",\n          editable: true\n        },\n    {\n          id: 'IGNORE_TPRO',\n          type: 'number',\n          label: 'Ignore Tpro',\n          valuePath: 'IGNORE_TPRO',\n          description: \"If turned on, the scheduling engine will ignore the promise time and just use the request time.\",\n          editable: true\n        },\n    {\n          id: 'INCLUDE_PICK_DWELL_IN_ETA_CALC_',\n          type: 'number',\n          label: 'Include Pick Dwell In Eta Calc ',\n          valuePath: 'INCLUDE_PICK_DWELL_IN_ETA_CALC_',\n          description: \"If false, the engine will not include the pick dwell in ETA calculations from a performed stop.\",\n          editable: true\n        },\n    {\n          id: 'INPLACE_DIST',\n          type: 'number',\n          label: 'Inplace Dist',\n          valuePath: 'INPLACE_DIST',\n          description: \"The minimum distance that must exist between the pick and drop locations for two trips in order to be reoptimized when using the ReOptimization in Place mode.\",\n          editable: true\n        },\n    {\n          id: 'INPLACE_WIN_OVERLAP',\n          type: 'number',\n          label: 'Inplace Win Overlap',\n          valuePath: 'INPLACE_WIN_OVERLAP',\n          description: \"The minimum amount of time that service windows must overlap in order to be reoptimized when using the ReOptimization in Place mode.\",\n          editable: true\n        },\n    {\n          id: 'INPLACE_WL_LIMIT',\n          type: 'number',\n          label: 'Inplace Wl Limit',\n          valuePath: 'INPLACE_WL_LIMIT',\n          description: \"The maximum number of trips that can be waitlisted when a ReOptimization in Place is performed.\",\n          editable: true\n        },\n    {\n          id: 'INS_OPT_RIDESHARE',\n          type: 'number',\n          label: 'Ins Opt Rideshare',\n          valuePath: 'INS_OPT_RIDESHARE',\n          description: \"If turned on, the engine will perform ridesharing on inserts.\",\n          editable: true\n        },\n    {\n          id: 'INS_OPT_RIDESHARE_ALLOW_WL',\n          type: 'number',\n          label: 'Ins Opt Rideshare Allow Wl',\n          valuePath: 'INS_OPT_RIDESHARE_ALLOW_WL',\n          description: \"If turned on, waitlist the trip and attempt to insert the original trip on the rideshare route.\",\n          editable: true\n        },\n    {\n          id: 'INS_OPT_RIDESHARE_MAX_DIST',\n          type: 'number',\n          label: 'Ins Opt Rideshare Max Dist',\n          valuePath: 'INS_OPT_RIDESHARE_MAX_DIST',\n          description: \"The maximum distance to search for rideshare opportunities\",\n          editable: true\n        },\n    {\n          id: 'INS_OPT_RIDESHARE_OFF_TIME',\n          type: 'number',\n          label: 'Ins Opt Rideshare Off Time',\n          valuePath: 'INS_OPT_RIDESHARE_OFF_TIME',\n          description: \"The time of day prior to the trip date that the engine will stop applying the rideshare optimization.\",\n          editable: true\n        },\n    {\n          id: 'INS_OPT_RIDESHARE_TIME_SPAN',\n          type: 'number',\n          label: 'Ins Opt Rideshare Time Span',\n          valuePath: 'INS_OPT_RIDESHARE_TIME_SPAN',\n          description: \"The maximum number of minutes to search for rideshare opportunities.\",\n          editable: true\n        },\n    {\n          id: 'INSERT_NEGOTIATE_INCREMENT',\n          type: 'number',\n          label: 'Insert Negotiate Increment',\n          valuePath: 'INSERT_NEGOTIATE_INCREMENT',\n          description: \"This is an alternate name for the NEGOTIATE_INCREMENT parameter\",\n          editable: true\n        },\n    {\n          id: 'INTER_QUOTIENT_TOL',\n          type: 'number',\n          label: 'Inter Quotient Tol',\n          valuePath: 'INTER_QUOTIENT_TOL',\n          description: \"The maximum difference of inter-borough trips between providers\",\n          editable: true\n        },\n    {\n          id: 'INTRA_MAX_SHORT_PC',\n          type: 'number',\n          label: 'Intra Max Short Pc',\n          valuePath: 'INTRA_MAX_SHORT_PC',\n          description: \"The percentage of the longest intra-borough trip that can be used as the maximum distance for a short trip.\",\n          editable: true\n        },\n    {\n          id: 'INTRA_MIN_LONG_PC',\n          type: 'number',\n          label: 'Intra Min Long Pc',\n          valuePath: 'INTRA_MIN_LONG_PC',\n          description: \"The percentage of the longest intra-borough trip to use as the minimum distance of a long trip\",\n          editable: true\n        },\n    {\n          id: 'LONG_TRIP_MIN_DIST',\n          type: 'number',\n          label: 'Long Trip Min Dist',\n          valuePath: 'LONG_TRIP_MIN_DIST',\n          description: \"Threshold for the scheduling engine to consider a trip 'long'.\",\n          editable: true\n        },\n    {\n          id: 'LONG_TRIP_MIN_TIME',\n          type: 'number',\n          label: 'Long Trip Min Time',\n          valuePath: 'LONG_TRIP_MIN_TIME',\n          description: \"This controls how the scheduling engine classifies trips as long trips.  Inter-borough Trips with times over this value are classified as long trips.\",\n          editable: true\n        },\n    {\n          id: 'MAX_PAIRS_TO_CONSIDER',\n          type: 'number',\n          label: 'Max Pairs To Consider',\n          valuePath: 'MAX_PAIRS_TO_CONSIDER',\n          description: \"The maximum number of insertion pairs to look at when determining the best place to insert a new trip.\",\n          editable: true\n        },\n    {\n          id: 'MAX_ROUTES_TO_CONSIDER',\n          type: 'number',\n          label: 'Max Routes To Consider',\n          valuePath: 'MAX_ROUTES_TO_CONSIDER',\n          description: \"The maximum number of routes to look at when selecting the best route to place a trip on.  Once the number of candidate routes has been reduced to this number or less, the route filtering stops.\",\n          editable: true\n        },\n    {\n          id: 'MAXRIDE_BY_DIST',\n          type: 'number',\n          label: 'Maxride By Dist',\n          valuePath: 'MAXRIDE_BY_DIST',\n          description: \"If true, the maximum ride is based on distance, not ride time.\",\n          editable: true\n        },\n    {\n          id: 'MAXRIDE_COM_PAD',\n          type: 'number',\n          label: 'Maxride Com Pad',\n          valuePath: 'MAXRIDE_COM_PAD',\n          description: \"Factor used to pad the maximum ride of trips in a cluster\",\n          editable: true\n        },\n    {\n          id: 'MAXRIDE_FACTOR',\n          type: 'number',\n          label: 'Maxride Factor',\n          valuePath: 'MAXRIDE_FACTOR',\n          description: \"The initial calculation of a trip's maximum ride distance is this parameter multiplied by the trip's direct ride distance\",\n          editable: true\n        },\n    {\n          id: 'MAXRIDE_MAX',\n          type: 'number',\n          label: 'Maxride Max',\n          valuePath: 'MAXRIDE_MAX',\n          description: \"The maximum allowable maximum ride distance\",\n          editable: true\n        },\n    {\n          id: 'MAXRIDE_MIN',\n          type: 'number',\n          label: 'Maxride Min',\n          valuePath: 'MAXRIDE_MIN',\n          description: \"The minimum allowable maximum ride distance\",\n          editable: true\n        },\n    {\n          id: 'MODTRIP_MAX_XY_DELTA',\n          type: 'number',\n          label: 'Modtrip Max Xy Delta',\n          valuePath: 'MODTRIP_MAX_XY_DELTA',\n          description: \"The maximum mileage differential for minor address changes.\",\n          editable: true\n        },\n    {\n          id: 'MULTI_ROUTE_OPTION_LIMIT',\n          type: 'number',\n          label: 'Multi Route Option Limit',\n          valuePath: 'MULTI_ROUTE_OPTION_LIMIT',\n          description: \"For modes that support returning multiple scheduling options, this parameter controls how many possible possible routes  are returned.\",\n          editable: true\n        },\n    {\n          id: 'NEGOTIATE_INCREMENT',\n          type: 'number',\n          label: 'Negotiate Increment',\n          valuePath: 'NEGOTIATE_INCREMENT',\n          description: \"Specifies the increment size when searching for a trip promise time during the trip negotiation process.\",\n          editable: true\n        },\n    {\n          id: 'NEGOTIATE_RANGE',\n          type: 'number',\n          label: 'Negotiate Range',\n          valuePath: 'NEGOTIATE_RANGE',\n          description: \"The maximum allowed time deviation from the original request time when negotiating trips\",\n          editable: true\n        },\n    {\n          id: 'NO_FREEZE_WIN',\n          type: 'number',\n          label: 'No Freeze Win',\n          valuePath: 'NO_FREEZE_WIN',\n          description: \"If turned on, the engine will ignore the parameter FREEZE_WIN_LENGTH and thus will allow trips to be scheduled immediately\",\n          editable: true\n        },\n    {\n          id: 'OVERLAP_INTER_BOROUGH',\n          type: 'number',\n          label: 'Overlap Inter Borough',\n          valuePath: 'OVERLAP_INTER_BOROUGH',\n          description: \"The number of minutes that the scheduling engine will ensure exists between pick and drop times on multiples trips for a client where the early trip for that client is between two boroughs.\",\n          editable: true\n        },\n    {\n          id: 'OVERLAP_INTRA_BOROUGH',\n          type: 'number',\n          label: 'Overlap Intra Borough',\n          valuePath: 'OVERLAP_INTRA_BOROUGH',\n          description: \"The number of minutes that the scheduling engine will ensure exists between pick and drop times on multiples trips for a client where the early trip for that client is within the same borough.\",\n          editable: true\n        },\n    {\n          id: 'PANCHOR_INSERT_BIG_WIN',\n          type: 'number',\n          label: 'Panchor Insert Big Win',\n          valuePath: 'PANCHOR_INSERT_BIG_WIN',\n          description: \"DEPRECATED: see CARVE_BEST_WIN.   Setting this to 0 is equivalent to setting Carve_Best_Win to -1, setting this to 1 is equivalent to setting CARVE_BEST_WIN to 0.\",\n          editable: true\n        },\n    {\n          id: 'PARENT_OF_PVDR_',\n          type: 'number',\n          label: 'Parent Of Pvdr ',\n          valuePath: 'PARENT_OF_PVDR_',\n          description: \"Use to define parent-child relationship among providers.  The relationship can be at most 1 level deep (no grandparent provider is allowed).  The value of the parameter is the provider id of the parent.\",\n          editable: true\n        },\n    {\n          id: 'PASS_RANDOM_SEED',\n          type: 'number',\n          label: 'Pass Random Seed',\n          valuePath: 'PASS_RANDOM_SEED',\n          description: \"Seed for a pseudorandom number generator, which allows a random selection of candidate(s) upon reaching the end of a strategy section. By default the pseudorandom generator is disabled, which results in a deterministic selection of candidate(s), in other words the first candidate(s) in the remaining list is/are selected.\",\n          editable: true\n        },\n    {\n          id: 'PATCH_ANCH_SAMEADDR_OK',\n          type: 'number',\n          label: 'Patch Anch Sameaddr Ok',\n          valuePath: 'PATCH_ANCH_SAMEADDR_OK',\n          description: \"If turned on, the scheduling engine will inclue common stops in the drive by processing logic.\",\n          editable: true\n        },\n    {\n          id: 'PATCH_DROP_AT_1ST_OPP',\n          type: 'number',\n          label: 'Patch Drop At 1st Opp',\n          valuePath: 'PATCH_DROP_AT_1ST_OPP',\n          description: \"If turned on, when different stops occur at the same address, drops are scheduled first.\",\n          editable: true\n        },\n    {\n          id: 'PATCH_PICK_AT_LAST_OPP',\n          type: 'number',\n          label: 'Patch Pick At Last Opp',\n          valuePath: 'PATCH_PICK_AT_LAST_OPP',\n          description: \"If turned on, when different stops occur at the same address, picks are scheduled last.\",\n          editable: true\n        },\n    {\n          id: 'PATCH_WC_LAST_SAME_ADDR',\n          type: 'number',\n          label: 'Patch Wc Last Same Addr',\n          valuePath: 'PATCH_WC_LAST_SAME_ADDR',\n          description: \"If true, the manifest is patched such that wheelchairs are unloaded last if there are any ambulatory trips to the same drop address.\",\n          editable: true\n        },\n    {\n          id: 'PERCENT_TS_PER_PVDR',\n          type: 'number',\n          label: 'Percent Ts Per Pvdr',\n          valuePath: 'PERCENT_TS_PER_PVDR',\n          description: \"The percentage of trips that should be assigned to a specific provider\",\n          editable: true\n        },\n    {\n          id: 'PREVENT_GROUP_TRIP_EARLY_DROP',\n          type: 'number',\n          label: 'Prevent Group Trip Early Drop',\n          valuePath: 'PREVENT_GROUP_TRIP_EARLY_DROP',\n          description: \"If true, the engine makes sure the drop window of group trips is not enlarged to allow for early drops.  Preventing early drop ensures the service window are respected but decreases ridesharing.\",\n          editable: true\n        },\n    {\n          id: 'PVDR_IS_CONSTRAINT',\n          type: 'number',\n          label: 'Pvdr Is Constraint',\n          valuePath: 'PVDR_IS_CONSTRAINT',\n          description: \"If turned on, then any trip that specifies a provider must be assigned to a route of that provider\",\n          editable: true\n        },\n    {\n          id: 'PWIN_SVCTYPE_',\n          type: 'number',\n          label: 'Pwin Svctype ',\n          valuePath: 'PWIN_SVCTYPE_',\n          description: \"The size of the pick window for a given service type\",\n          editable: true\n        },\n    {\n          id: 'QUIET_ASCII',\n          type: 'number',\n          label: 'Quiet Ascii',\n          valuePath: 'QUIET_ASCII',\n          description: \"If turned on, the scheduling engine will not produce extra diagnostic files in the mt folder.\",\n          editable: true\n        },\n    {\n          id: 'QUIET_METRIC',\n          type: 'number',\n          label: 'Quiet Metric',\n          valuePath: 'QUIET_METRIC',\n          description: \"If turned on, the engine will not report scheduling metrics.\",\n          editable: true\n        },\n    {\n          id: 'REORDER_STRICTLY',\n          type: 'number',\n          label: 'Reorder Strictly',\n          valuePath: 'REORDER_STRICTLY',\n          description: \"If turned on, the scheduling engine will reorder trips in the exact order specified rather than possibly reordering trips based on an internal analysis of grouping.\",\n          editable: true\n        },\n    {\n          id: 'RTE_CONSOLIDATION_FAIR_SHR',\n          type: 'number',\n          label: 'Rte Consolidation Fair Shr',\n          valuePath: 'RTE_CONSOLIDATION_FAIR_SHR',\n          description: \"If turned on, the scheduling engine will use the provider specific fairshare controls\",\n          editable: true\n        },\n    {\n          id: 'RTE_CONSOLIDATION_KEEP_PCT',\n          type: 'number',\n          label: 'Rte Consolidation Keep Pct',\n          valuePath: 'RTE_CONSOLIDATION_KEEP_PCT',\n          description: \"The percentage of lightly loaded routes that should remain in service.\",\n          editable: true\n        },\n    {\n          id: 'RTE_CONSOLIDATION_SHR_',\n          type: 'number',\n          label: 'Rte Consolidation Shr ',\n          valuePath: 'RTE_CONSOLIDATION_SHR_',\n          description: \"The percentage of lightly loaded routes belonging to a specific provider that should be left in service.\",\n          editable: true\n        },\n    {\n          id: 'RTE_CONSOLIDATION_SLACK_LEN',\n          type: 'number',\n          label: 'Rte Consolidation Slack Len',\n          valuePath: 'RTE_CONSOLIDATION_SLACK_LEN',\n          description: \"The maximum amount of time of slack that is ignored when calculating a route's work time\",\n          editable: true\n        },\n    {\n          id: 'RTE_CONSOLIDATION_STRATEGY',\n          type: 'text',\n          label: 'Rte Consolidation Strategy',\n          valuePath: 'RTE_CONSOLIDATION_STRATEGY',\n          description: \"The strategy file to use when consolidating lightly loaded routes.\",\n          editable: true\n        },\n    {\n          id: 'RTE_CONSOLIDATION_T_CNT',\n          type: 'number',\n          label: 'Rte Consolidation T Cnt',\n          valuePath: 'RTE_CONSOLIDATION_T_CNT',\n          description: \"Routes with less than or equal to this number of bonafide trips are considered lightly loaded routes.\",\n          editable: true\n        },\n    {\n          id: 'RTE_CONSOLIDATION_WORK_TIME',\n          type: 'number',\n          label: 'Rte Consolidation Work Time',\n          valuePath: 'RTE_CONSOLIDATION_WORK_TIME',\n          description: \"Routes with less than or equal to this amount of work are considered lightly loaded routes.\",\n          editable: true\n        },\n    {\n          id: 'RTE_RIDESHARING_WORK_TIME',\n          type: 'number',\n          label: 'Rte Ridesharing Work Time',\n          valuePath: 'RTE_RIDESHARING_WORK_TIME',\n          description: \"Routes with less than or equal to this amount of work will be removed when optimizing ridesharing.\",\n          editable: true\n        },\n    {\n          id: 'SET_SAME_ADDR_SAME_ETA',\n          type: 'number',\n          label: 'Set Same Addr Same Eta',\n          valuePath: 'SET_SAME_ADDR_SAME_ETA',\n          description: \"If turned on, stops at the same address are scheduled with the same ETA, if possible within the service window constraints.\",\n          editable: true\n        },\n    {\n          id: 'SET_TPRO_SAMEDAY_PICKEARLY',\n          type: 'number',\n          label: 'Set Tpro Sameday Pickearly',\n          valuePath: 'SET_TPRO_SAMEDAY_PICKEARLY',\n          description: \"Alternate pick early value for same day scheduling\",\n          editable: true\n        },\n    {\n          id: 'SET_TPRO_SAMEDAY_PICKLATE',\n          type: 'number',\n          label: 'Set Tpro Sameday Picklate',\n          valuePath: 'SET_TPRO_SAMEDAY_PICKLATE',\n          description: \"Alternate pick late value for same day scheduling\",\n          editable: true\n        },\n    {\n          id: 'SET_TPRO_SAMEDAY_PICKWIN',\n          type: 'number',\n          label: 'Set Tpro Sameday Pickwin',\n          valuePath: 'SET_TPRO_SAMEDAY_PICKWIN',\n          description: \"If turned on, use alternate pick early/late values for same day scheduling\",\n          editable: true\n        },\n    {\n          id: 'SET_TPRO_TO_ETA',\n          type: 'number',\n          label: 'Set Tpro To Eta',\n          valuePath: 'SET_TPRO_TO_ETA',\n          description: \"If turned on, several effects occur: 1) all subscriptions are treated like demand trips, 2) promise times are ignored for most reoptimizations, and 3) maximum promise times are not set.\",\n          editable: true\n        },\n    {\n          id: 'SET_TPRO_TO_TREQ',\n          type: 'number',\n          label: 'Set Tpro To Treq',\n          valuePath: 'SET_TPRO_TO_TREQ',\n          description: \"If turned on, the promise time for a pick anchored trip is set to the request time\",\n          editable: true\n        },\n    {\n          id: 'SET_TPRO_WL',\n          type: 'number',\n          label: 'Set Tpro Wl',\n          valuePath: 'SET_TPRO_WL',\n          description: \"If turned on, set the promise time for all trips waitlisted during a batch or insertion.\",\n          editable: true\n        },\n    {\n          id: 'SET_TPRO_WL_APPTADDER',\n          type: 'number',\n          label: 'Set Tpro Wl Apptadder',\n          valuePath: 'SET_TPRO_WL_APPTADDER',\n          description: \"Extra rideshare time allowed for drop anchored trips when the promise time is set for a waitlisted trip\",\n          editable: true\n        },\n    {\n          id: 'SHAREDRIDE_FORMULA',\n          type: 'number',\n          label: 'Sharedride Formula',\n          valuePath: 'SHAREDRIDE_FORMULA',\n          description: \"Controls the formula to use when calculating shared ride merit.\",\n          editable: true\n        },\n    {\n          id: 'SHAREDRIDE_MINMERIT',\n          type: 'number',\n          label: 'Sharedride Minmerit',\n          valuePath: 'SHAREDRIDE_MINMERIT',\n          description: \"Minimum merit percentage required for a trip to be piggy-backed with another trip.\",\n          editable: true\n        },\n    {\n          id: 'SHAREDRIDE_MINMILE',\n          type: 'number',\n          label: 'Sharedride Minmile',\n          valuePath: 'SHAREDRIDE_MINMILE',\n          description: \"Minimum direct distance required before a trip is considered a host trip.\",\n          editable: true\n        },\n    {\n          id: 'SHORT_TRIP_MAX_TIME',\n          type: 'number',\n          label: 'Short Trip Max Time',\n          valuePath: 'SHORT_TRIP_MAX_TIME',\n          description: \"This controls how the scheduling engine classifies trips as short trips.  Trips with times under this value are classified as short trips.\",\n          editable: true\n        },\n    {\n          id: 'SITE_USING_GPS_UPDATE',\n          type: 'number',\n          label: 'Site Using Gps Update',\n          valuePath: 'SITE_USING_GPS_UPDATE',\n          description: \"Enables/disables GPS update functionality. The parameter also controls which method to use when determining the ETA of the first unperformed non-break stop following a break stop when a GPS update is received while on break or just before starting a break on a route.\",\n          editable: true\n        },\n    {\n          id: 'SKIP_SCHEDULING',\n          type: 'number',\n          label: 'Skip Scheduling',\n          valuePath: 'SKIP_SCHEDULING',\n          description: \"If turned on, the scheduling engine will generate metrics but will not schedule trips.\",\n          editable: true\n        },\n    {\n          id: 'SNAPSHOT_PERM_FREQ',\n          type: 'number',\n          label: 'Snapshot Perm Freq',\n          valuePath: 'SNAPSHOT_PERM_FREQ',\n          description: \"The frequency with which the engine permanently saves it's state and inputs to the history (e.g. every 2500 engine calls the engine copies the contents of mt folder to the history subfolder)\",\n          editable: true\n        },\n    {\n          id: 'SNAPSHOT_TAIL_FREQ',\n          type: 'number',\n          label: 'Snapshot Tail Freq',\n          valuePath: 'SNAPSHOT_TAIL_FREQ',\n          description: \"The frequency with which the engine saves a sliding window of it's state and inputs to the history folder (e.g. every 100 engine calls the engine copies all of the files in the mt folder into the history folder)\",\n          editable: true\n        },\n    {\n          id: 'SNAPSHOT_TAIL_LEN',\n          type: 'number',\n          label: 'Snapshot Tail Len',\n          valuePath: 'SNAPSHOT_TAIL_LEN',\n          description: \"The size of the sliding window of engine state and inputs (e.g. the engine only keeps the previous 2 sliding window histories)\",\n          editable: true\n        },\n    {\n          id: 'SPEEDING_MIN_DIST',\n          type: 'number',\n          label: 'Speeding Min Dist',\n          valuePath: 'SPEEDING_MIN_DIST',\n          description: \"The minimum distance a manual trip must travel before it will be checked for speeding.\",\n          editable: true\n        },\n    {\n          id: 'SPEEDING_MIN_FACTOR',\n          type: 'number',\n          label: 'Speeding Min Factor',\n          valuePath: 'SPEEDING_MIN_FACTOR',\n          description: \"The minimum ratio required between a manual trip's speed and the speed returned by Travel Oracle for the trip to considered speeding.\",\n          editable: true\n        },\n    {\n          id: 'STRATEGY',\n          type: 'text',\n          label: 'Strategy',\n          valuePath: 'STRATEGY',\n          description: \"The name of the strategy to use for scheduling.\",\n          editable: true\n        },\n    {\n          id: 'STRATEGY_WEEKEND',\n          type: 'text',\n          label: 'Strategy Weekend',\n          valuePath: 'STRATEGY_WEEKEND',\n          description: \"The name of the strategy to use for scheduling on the weekend\",\n          editable: true\n        },\n    {\n          id: 'SUB_OPT_LOG',\n          type: 'number',\n          label: 'Sub Opt Log',\n          valuePath: 'SUB_OPT_LOG',\n          description: \"If turned on together with the SUB_OPT_MODEL parameter, the scheduling engine prints subscription optimization logs.\",\n          editable: true\n        },\n    {\n          id: 'SUB_OPT_MIN_SCORE',\n          type: 'number',\n          label: 'Sub Opt Min Score',\n          valuePath: 'SUB_OPT_MIN_SCORE',\n          description: \"This parameter is used in the subscription optimizer mode (see SUB_OPT_MODEL) to fine tune the condition to determine whether a trip is a singleton trip within a ride-sharing block of trips on a route.  The threshold score, which is the ride-sharing total score multiplied by this parameter value is the cut-off value used to classify a singleton trip.  For example, if the a trip’s ride share score is smaller than the threshold score, it is considered as singleton and shall be removed from its ride-sharing block.\",\n          editable: true\n        },\n    {\n          id: 'SUB_OPT_MODEL',\n          type: 'number',\n          label: 'Sub Opt Model',\n          valuePath: 'SUB_OPT_MODEL',\n          description: \"If turned on, the scheduling engine works in the subscription optimizer mode.\",\n          editable: true\n        },\n    {\n          id: 'SUBSCRIPTIONS_FIRST',\n          type: 'number',\n          label: 'Subscriptions First',\n          valuePath: 'SUBSCRIPTIONS_FIRST',\n          description: \"If turned on, the built in strategies will attempt to schedule subscription trips before demand trips.\",\n          editable: true\n        },\n    {\n          id: 'TADJUST_BY_DIST',\n          type: 'number',\n          label: 'Tadjust By Dist',\n          valuePath: 'TADJUST_BY_DIST',\n          description: \"If turned on, the scheduling engine interprets the first two columns of 1t_adjust.asc as trip length in miles and the third column as a percentage that adjusts the nominal Travel Oracle speed for the region and time.  If turned off, the scheduling engine interprets the first two columns of 1t_adjust.asc as trip length in minutes and the third column as the number of minutes to add to the ride time.\",\n          editable: true\n        },\n    {\n          id: 'TO_MANIFEST_ON_PIN',\n          type: 'number',\n          label: 'To Manifest On Pin',\n          valuePath: 'TO_MANIFEST_ON_PIN',\n          description: \"If turned on, the times given by Travel Oracle for a manual trip are used during a re-ETA of the manifest, regardless of user specified pick and drop times.\",\n          editable: true\n        },\n    {\n          id: 'TOTYPE',\n          type: 'text',\n          label: 'Totype',\n          valuePath: 'TOTYPE',\n          description: \"This parameter is used to select Travel Oracle type for used by the engine.  If absent, the Travel Oracle type is set to RECTILINEAR by default.\",\n          editable: true\n        },\n    {\n          id: 'TRIM_SAME_ADDR_DWELL',\n          type: 'number',\n          label: 'Trim Same Addr Dwell',\n          valuePath: 'TRIM_SAME_ADDR_DWELL',\n          description: \"If turned on, the scheduling engine will reduce the dwell time when multiple picks and/or drops occur at the same address\",\n          editable: true\n        },\n    {\n          id: 'TRIP_REC_INCLUDES_CID',\n          type: 'number',\n          label: 'Trip Rec Includes Cid',\n          valuePath: 'TRIP_REC_INCLUDES_CID',\n          description: \"If turned on, the engine will report the client ID number in certain files (such as trips.asc)\",\n          editable: true\n        },\n    {\n          id: 'TRIPTRAN_EXTEND_SHIFT',\n          type: 'number',\n          label: 'Triptran Extend Shift',\n          valuePath: 'TRIPTRAN_EXTEND_SHIFT',\n          description: \"If turned on, the scheduling engine will not allow trip transfers that cause shifts to be extended\",\n          editable: true\n        },\n    {\n          id: 'USE_MAXRIDE_WIN',\n          type: 'number',\n          label: 'Use Maxride Win',\n          valuePath: 'USE_MAXRIDE_WIN',\n          description: \"If turned on, the scheduling engine will use the maximum ride time when computing the trip pick and drop windows.\",\n          editable: true\n        },\n    {\n          id: 'VERBOSE_LOG',\n          type: 'number',\n          label: 'Verbose Log',\n          valuePath: 'VERBOSE_LOG',\n          description: \"This switch controls how much information the scheduling engine stores in the log files.\",\n          editable: true\n        },\n       ]\n    }*/\n    ]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/edit-settings-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/edit-settings-widget/config\", \"lodash\"], function (_exports, _component, _config, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* eslint-disable ember/avoid-leaking-state-in-ember-objects */\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['edit-settings-widget'],\n    store: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n    // old-school modal\n    editModal: Ember.inject.service(),\n    editComponent: 'iq-widgets/edit-settings-form-widget',\n    systemEditComponent: 'iq-widgets/system-config-form-widget',\n\n    // TODO: saveRecordFunction shall be moved to a service later on\n    // This save is specific to saving drivers and all related models.\n    saveRecordFunction(records) {\n      function saveDeleteAllObjects(objects) {\n        const deleteObjects = _lodash.default.difference(objects.content.canonicalState, objects.content.currentState); // delete objects that have been removed from the array\n\n\n        return Promise.all(deleteObjects.map(deleteObject => {\n          deleteObject._record.deleteRecord();\n\n          return deleteObject.save();\n        })).then(() => {\n          return Promise.all(objects.map(object => object.save()));\n        });\n      }\n\n      this.set('editModal.errors', []);\n      return new Promise((resolve, reject) => {\n        records.forEach(record => {\n          record.save().then(() => {\n            saveDeleteAllObjects(record.get('availability')).then(() => {\n              record.set('isForceDirty', false);\n            });\n          }).catch(e => {\n            if (e.errors[0].status === '400' || e.errors[0].status === '409') {\n              this.get('editModal.errors').pushObject('Invalid Setting Id');\n            } else {\n              reject(e);\n            }\n          });\n        });\n      });\n    },\n\n    fetchDataQuery() {\n      return this.get('data');\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.set('singleActions', [{\n        name: 'Edit',\n        action: model => {\n          let editComponent = this.get('editComponent');\n          this.get('editModal').open(editComponent, [model], this.get('saveRecordFunction').bind(this));\n        }\n      }]);\n      this.set('bulkActions', [{\n        name: 'Activity Log',\n        action: () =>\n        /* model */\n        {}\n      }]);\n    },\n\n    data: Ember.computed('', function () {\n      const values = [\n      /* {type: 'System Configuration', description: 'Configurations for multiple system types', subsections: true }, */\n      {\n        type: 'Driver Mobile App Configurations',\n        description: 'Configure driver application',\n        subsections: true\n      }, {\n        type: 'Passenger Mobile App Configurations',\n        description: 'Configure passenger application',\n        subsections: true\n      }, {\n        type: 'Trip Configurations',\n        description: 'Configure trip rules',\n        subsections: true\n      }\n      /* {type: 'Travel Time Parameters', description: 'this is a description',  subsections: true},\n      {type: 'Map', description: 'this is a description',  subsections: true},\n      {type: 'Scheduling', description: 'this is a description',  subsections: true},\n      {type: 'URLs & Addresses', description: 'this is a description'},\n      {type: 'ETA Calculation', description: 'this is a description'},\n      {type: 'Driver App License', description: 'this is a description'},\n      {type: 'Fixed Route Engine Parameters', description: 'this is a description'},\n      {type: 'Driving Configuration', description: 'this is a description'},\n      {type: 'Scheduling Parameters', description: 'this is a description'} */\n      ];\n      let store = this.get('store');\n      return values.map((m, i) => {\n        values[i].id = i;\n        return store.peekRecord('system-config-type', `${i}`) || store.createRecord('system-config-type', values[i]);\n      });\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/edit-settings-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/edit-settings-widget',\n    rowComponent: 'table/rows/action-row',\n    modelName: 'system-config-type',\n    title: 'Settings',\n    defaultSortId: 'name',\n    defaultSortAsc: true,\n    columns: [{\n      id: 'type',\n      index: 0,\n      type: 'boolean',\n      label: 'Type',\n      valuePath: 'type',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 140\n    }, {\n      id: 'description',\n      index: 1,\n      type: 'text',\n      label: 'Description',\n      valuePath: 'description',\n      editable: true,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 260\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/edit-settings-widget/data\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = [{\n    type: 'Travel Need Type',\n    id: 'travelNeedType',\n    description: 'travelNeedType description here'\n  }, {\n    type: 'Fare Type',\n    id: 'fareType',\n    description: 'fareType description here'\n  }, {\n    type: 'Provider Type',\n    id: 'providerType',\n    description: 'providerType description here'\n  }, {\n    type: 'Providers',\n    id: 'providers',\n    description: 'providers description here'\n  }, {\n    type: 'Break Type',\n    id: 'breakType',\n    description: 'breakType description here'\n  }, {\n    type: 'Cancel Type',\n    id: 'cancelType',\n    description: 'cancelType description here'\n  }, {\n    type: 'No Show Reason Codes',\n    id: 'noShowReasonCodes',\n    description: 'noShowReasonCodes description here'\n  }, {\n    type: 'Vehicle Capacity Type',\n    id: 'vehicleCapacityType',\n    description: 'vehicleCapacityType description here'\n  }, {\n    type: 'Vehicle Type',\n    id: 'vehicleType',\n    description: 'vehicleType description here'\n  }, {\n    type: 'Address Category Type',\n    id: 'addressCategoryType',\n    description: 'addressCategoryType description here'\n  }, {\n    type: 'Rider Address Type',\n    id: 'riderAddressType',\n    description: 'riderAddressType description here'\n  }, {\n    type: 'Passenger Type',\n    id: 'passengerType',\n    description: 'passengerType description here'\n  }, {\n    type: 'Eligibility Type',\n    id: 'eligibilityType',\n    description: 'eligibilityType description here'\n  }];\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/edit-switch-trip-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/trip-form-widget/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const RESIZE_CURSOR_OFFSET = -2;\n  const MAX_WIDTH = 800;\n  const RESIZE_DEBOUNCE_TIME = 250;\n\n  var _default = _component.default.extend({\n    classNames: ['edit-trip-form-widget'],\n    actions: {\n      resizeModal(position) {\n        let windowWidth = Ember.$(window).width(); // Resize cursor offset ensures cursor is centered on handle.\n\n        let modalWidth = windowWidth - position.x + RESIZE_CURSOR_OFFSET;\n        Ember.run.scheduleOnce('afterRender', () => {\n          if (windowWidth - modalWidth >= MAX_WIDTH) {\n            Ember.$('.edit-widget-modal').css('right', `${windowWidth - MAX_WIDTH}px`);\n          } else {\n            Ember.$('.edit-widget-modal').css('right', `${modalWidth}px`);\n          }\n        });\n      },\n\n      closeWidget() {\n        this.toggleProperty('editmodalcontext.showWidgetModal');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/edit-trip-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/trip-form-widget/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const RESIZE_CURSOR_OFFSET = -2;\n  const MAX_WIDTH = 800;\n  const RESIZE_DEBOUNCE_TIME = 250;\n\n  var _default = _component.default.extend({\n    classNames: ['edit-trip-form-widget'],\n    actions: {\n      resizeModal(position) {\n        let windowWidth = Ember.$(window).width(); // Resize cursor offset ensures cursor is centered on handle.\n\n        let modalWidth = windowWidth - position.x + RESIZE_CURSOR_OFFSET;\n        Ember.run.scheduleOnce('afterRender', () => {\n          if (windowWidth - modalWidth >= MAX_WIDTH) {\n            Ember.$('.edit-widget-modal').css('right', `${windowWidth - MAX_WIDTH}px`);\n          } else {\n            Ember.$('.edit-widget-modal').css('right', `${modalWidth}px`);\n          }\n        });\n      },\n\n      closeWidget() {\n        this.toggleProperty('editmodalcontext.showWidgetModal');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/favorite-pickup-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/favorite-pickup-widget/config\", \"adept-iq/utils/populate-pickup\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/check-address-overwrite\", \"adept-iq/utils/focus_column_widget_row\", \"adept-iq/utils/check-value\"], function (_exports, _component, _config, _populatePickup, _checkAddressFlags, _checkAddressOverwrite, _focus_column_widget_row, _checkValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['favorite-pickup-widget'],\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    riderAddresses: null,\n    // need to sub-class this in specific widget\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    init() {\n      this._super(...arguments);\n\n      let recordId = 1;\n      this.get('widgetModelData').forEach(record => {\n        record.id = \"\" + recordId + \"\";\n        recordId++;\n\n        if (!Ember.isBlank(record.pickup) && !Ember.isBlank(record.pickup.address)) {\n          try {\n            record.pickupFreeFormAddress = (0, _checkValue.default)(record.pickup.address.streetNr) + \" \" + (0, _checkValue.default)(record.pickup.address.streetName);\n            record.pickupCity = (0, _checkValue.default)(record.pickup.address.region);\n          } catch (e) {\n            Ember.set(record, 'pickupFreeFormAddress', (0, _checkValue.default)(record.pickup.address.streetNr) + \" \" + (0, _checkValue.default)(record.pickup.address.streetName));\n            Ember.set(record, 'pickupCity', (0, _checkValue.default)(record.pickup.address.region));\n          }\n        } else {\n          try {\n            record.pickupFreeFormAddress = \"\";\n            record.pickupCity = \"\";\n          } catch (e) {\n            Ember.set(record, 'pickupFreeFormAddress', \"\");\n            Ember.set(record, 'pickupCity', \"\");\n          }\n        }\n\n        this.get('records').pushObject(record);\n      });\n      let me = this;\n      Ember.run.later(function () {\n        (0, _focus_column_widget_row.default)(me);\n      }, 10);\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', []);\n    },\n\n    actions: {\n      onRowRightClick(row, event) {},\n\n      onRowClick(row, event) {\n        let tripData = this.currentRecord;\n        let pickupData = row.get('record');\n        this.closeWidget();\n        let overwriteAddress = true;\n        let overwriteAddressPop = (0, _checkAddressOverwrite.default)(tripData.stopPoints[0].address, pickupData.pickup.address);\n\n        if (overwriteAddressPop) {\n          overwriteAddress = confirm('Do you want to overwrite Address');\n        }\n\n        if (overwriteAddress) {\n          (0, _populatePickup.default)(tripData, pickupData, this.get('geocode'), this.get('store'), 'pickup');\n          (0, _checkAddressFlags.default)(tripData);\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/favorite-pickup-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/favorite-pickup-widget',\n    rowComponent: 'table/rows/otp-formatted-row',\n    modelName: 'favorite-trip',\n    defaultSortId: 'referenceCode',\n    defaultSortAsc: false,\n    hideWidgetControls: true,\n    hideHeader: true,\n    checkBoxColumn: false,\n    isFormControls: true,\n    title: 'Pickup Trip Details',\n    columns: [{\n      id: 'pickupFreeFormAddress',\n      type: 'text',\n      label: 'Pickup Address',\n      valuePath: 'pickupFreeFormAddress',\n      editable: false,\n      hidden: false,\n      defaultWidth: 200\n    }, {\n      id: 'pickupCity',\n      type: 'text',\n      label: 'City',\n      valuePath: 'pickupCity',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 100\n    }, {\n      id: 'customerReference',\n      type: 'text',\n      label: 'Reference Code',\n      valuePath: 'customerReference',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 60\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/fixed-price-trip-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/fixed-price-trip-widget/config\", \"adept-iq/utils/populate-fixed-price\", \"adept-iq/utils/check-address-overwrite\", \"adept-iq/utils/focus_column_widget_row\", \"adept-iq/utils/check-value\"], function (_exports, _component, _config, _populateFixedPrice, _checkAddressOverwrite, _focus_column_widget_row, _checkValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['fixed-price-trip-widget'],\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    riderAddresses: null,\n    // need to sub-class this in specific widget\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    init() {\n      this._super(...arguments);\n\n      let recordId = 1; //////console.log(('fixed-price-trip-widget widgetModelData ',this.get('widgetModelData'));\n\n      this.get('widgetModelData').forEach(record => {\n        record.id = \"\" + recordId + \"\";\n        recordId++;\n        console.log('widgetModelData ', record);\n\n        if (!Ember.isBlank(record.pickup) && !Ember.isBlank(record.pickup.address)) {\n          try {\n            record.pickupFreeFormAddress = (0, _checkValue.default)(record.pickup.address.streetNr) + \" \" + (0, _checkValue.default)(record.pickup.address.streetName);\n            record.pickupCity = (0, _checkValue.default)(record.pickup.address.region);\n          } catch (e) {\n            Ember.set(record, 'pickupFreeFormAddress', (0, _checkValue.default)(record.pickup.address.streetNr) + \" \" + (0, _checkValue.default)(record.pickup.address.streetName));\n            Ember.set(record, 'pickupCity', (0, _checkValue.default)(record.pickup.address.region));\n          }\n        } else {\n          try {\n            record.pickupFreeFormAddress = \"\";\n            record.pickupCity = \"\";\n          } catch (e) {\n            Ember.set(record, 'pickupFreeFormAddress', \"\");\n            Ember.set(record, 'pickupCity', \"\");\n          }\n        }\n\n        if (!Ember.isBlank(record.dropoff) && !Ember.isBlank(record.dropoff.address)) {\n          try {\n            record.dropoffFreeFormAddress = (0, _checkValue.default)(record.dropoff.address.streetNr) + \" \" + (0, _checkValue.default)(record.dropoff.address.streetName);\n            record.dropoffCity = (0, _checkValue.default)(record.dropoff.address.region);\n          } catch (e) {\n            Ember.set(record, 'dropoffFreeFormAddress', (0, _checkValue.default)(record.dropoff.address.streetNr) + \" \" + (0, _checkValue.default)(record.dropoff.address.streetName));\n            Ember.set(record, 'dropoffCity', (0, _checkValue.default)(record.dropoff.address.region));\n          }\n\n          try {\n            Ember.set(record, 'tripAmount', parseFloat(record.price.amount.toFixed(2)));\n          } catch (e) {\n            console.log(e);\n          }\n        } else {\n          try {\n            record.dropoffFreeFormAddress = \"\";\n            record.dropoffCity = \"\";\n          } catch (e) {\n            Ember.set(record, 'dropoffFreeFormAddress', \"\");\n            Ember.set(record, 'dropoffCity', \"\");\n          }\n        }\n\n        this.get('records').pushObject(record);\n      });\n      let me = this;\n      Ember.run.later(function () {\n        (0, _focus_column_widget_row.default)(me);\n      }, 10);\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', []);\n    },\n\n    actions: {\n      onRowRightClick(row, event) {},\n\n      onRowClick(row, event) {\n        let tripData = this.get('currentRecord');\n        let fixedPriceTrip = row.get('record');\n        this.closeWidget();\n        let overwriteAddress = true;\n        let overwriteAddressPop = (0, _checkAddressOverwrite.default)(tripData.stopPoints[0].address, fixedPriceTrip.pickup.address);\n\n        if (overwriteAddressPop) {\n          overwriteAddress = confirm('Do you want to overwrite Address');\n        }\n\n        if (overwriteAddress) {\n          (0, _populateFixedPrice.default)(tripData, fixedPriceTrip, this.get('geocode'), this.get('store'));\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/fixed-price-trip-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/fixed-price-trip-widget',\n    rowComponent: 'table/rows/otp-formatted-row',\n    modelName: 'favorite-trip',\n    defaultSortId: 'referenceCode',\n    defaultSortAsc: false,\n    hideWidgetControls: true,\n    hideHeader: true,\n    checkBoxColumn: false,\n    isFormControls: true,\n    title: 'Fixed Price Account Detailss',\n    columns: [{\n      id: 'pickupFreeFormAddress',\n      type: 'text',\n      label: 'Pickup Address',\n      valuePath: 'pickupFreeFormAddress',\n      editable: false,\n      hidden: false,\n      defaultWidth: 200\n    }, {\n      id: 'pickupCity',\n      type: 'text',\n      label: 'City',\n      valuePath: 'pickupCity',\n      editable: false,\n      hidden: false,\n      defaultWidth: 100\n    }, {\n      id: 'dropoffFreeFormAddress',\n      type: 'text',\n      label: 'Drop Off Address',\n      valuePath: 'dropoffFreeFormAddress',\n      editable: false,\n      hidden: false,\n      defaultWidth: 200\n    }, {\n      id: 'dropoffCity',\n      type: 'text',\n      label: 'City',\n      valuePath: 'dropoffCity',\n      editable: false,\n      hidden: false,\n      defaultWidth: 100\n    }, {\n      id: 'customerReference',\n      type: 'text',\n      label: 'Reference Code',\n      valuePath: 'customerReference',\n      editable: false,\n      hidden: false,\n      searchable: true\n    }, {\n      id: 'price',\n      type: 'number',\n      label: 'Fixed amount',\n      valuePath: 'tripAmount',\n      editable: false,\n      hidden: false,\n      searchable: true\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/form-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/form-widget/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editModal: Ember.inject.service(),\n    isShrunken: false,\n    service: Ember.computed.alias('editModal'),\n    actions: {\n      onShrinkClick() {\n        this.toggleProperty('isShrunken');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/gauge-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/chartjs-widget/component\", \"adept-iq/utils/filters\", \"adept-iq/pods/components/generic-widgets/column-widget/classes/filter-column\"], function (_exports, _component, _filters, _filterColumn) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    workspace: Ember.inject.service(),\n    workspaceContext: Ember.inject.service(),\n    classNames: ['gauge-widget'],\n    widget: null,\n    options: Ember.computed.alias('widget.state.dataType'),\n\n    /* Applies the choice of data source. */\n    chartRecords: Ember.computed('options.modelName', 'workspaceContext.workspaceData.[]', function () {\n      const modelName = this.get('options.modelName');\n      if (Ember.isBlank(modelName)) return [];\n      const wrappedRecords = this.get('workspaceContext.workspaceData').filterBy('modelName', modelName);\n      return wrappedRecords.map(a => a.record);\n    }),\n\n    /* Builds the chosen filters. */\n    filterFunction: Ember.computed('options.columns', function () {\n      const filterColumns = Object.values(this.get('options.columns')).map(col => new _filterColumn.default(col));\n      const args = filterColumns.map(column => {\n        return column.get('filterNode');\n      });\n      return (0, _filters.buildFilterFunction)((0, _filters.buildCompoundFilterNode)('and', args));\n    }),\n\n    /* Applies the choice of filters. */\n    filteredRecords: Ember.computed('chartRecords', 'filterFunction', function () {\n      return this.get('chartRecords').filter(this.get('filterFunction'));\n    }),\n\n    /* Applies the choice of data to display. */\n    displaySlice: Ember.computed('options.displayOptions.selected', 'filteredRecords', function () {\n      const displaySelection = this.get('options.displayOptions.selected');\n\n      if (Ember.isBlank(displaySelection) || Ember.isBlank(displaySelection.valueKey) || Ember.isBlank(displaySelection.valueCategory)) {\n        return this.get('filteredRecords');\n      }\n\n      return this.get('filteredRecords').filterBy(displaySelection.valueKey, displaySelection.valueCategory.value);\n    }),\n\n    /* Applies the choice of operation (metric option) to apply to the selected records. */\n    dialValue: Ember.computed('displaySlice', 'options.displayOptions.selected.metricOption', function () {\n      const selectedMetric = this.get('options.displayOptions.selected.metricOption');\n      if (Ember.isBlank(selectedMetric)) return this.get('displaySlice.length');\n\n      switch (selectedMetric.id) {\n        case 'count':\n          return this.get('displaySlice.length');\n\n        default:\n          return 0;\n      }\n    }),\n    minGaugeValue: Ember.computed('options.displayOptions.selected.metricOption', function () {\n      const selectedMetric = this.get('options.displayOptions.selected.metricOption');\n      if (Ember.isBlank(selectedMetric)) return 0;\n\n      switch (selectedMetric.id) {\n        case 'count':\n          return 0;\n\n        default:\n          return 0;\n      }\n    }),\n\n    /* Applies the box color visual options. */\n    boxValues: Ember.computed('options.boxColor.{orange,red}', 'minGaugeValue', 'dialValue', function () {\n      const min = this.get('minGaugeValue');\n      const dialValue = this.get('dialValue');\n      const boxColors = this.get('options.boxColor');\n      const boxValues = [];\n      boxValues.push(boxColors.orange - min);\n      boxValues.push(boxColors.red - boxColors.orange);\n      const maxValue = boxColors.orange - min + 2 * (boxColors.red - boxColors.orange);\n\n      if (maxValue > dialValue) {\n        boxValues.push(boxColors.red - boxColors.orange);\n      } else {\n        boxValues.push(boxColors.red - boxColors.orange + (dialValue - maxValue));\n      }\n\n      return boxValues;\n    }),\n    dialRange: Ember.computed('boxValues', 'minGaugeValue', function () {\n      const boxValues = this.get('boxValues');\n      const min = this.get('minGaugeValue');\n      const max = boxValues.reduce((a, b) => a + b, min);\n      return {\n        min: min,\n        max: max\n      };\n    }),\n    chartData: Ember.computed('boxValues', function () {\n      const cData = {\n        'datasets': [{\n          'data': this.get('boxValues'),\n          'backgroundColor': [// this.get('colors')[0],\n          this.get('colors')[2], this.get('warningColor'), this.get('urgentColor')],\n          'borderWidth': 0,\n          'hoverBackgroundColor': [// this.get('colors')[0],\n          this.get('colors')[2], this.get('warningColor'), this.get('urgentColor')],\n          'hoverBorderWidth': 0\n        }],\n        labels: []\n      };\n      return cData;\n    }),\n\n    /* Applies the chart title input. */\n    chartTitle: Ember.computed('options.name', function () {\n      if (Ember.isBlank(this.get('options'))) {\n        return 'Gauge Chart';\n      } else if (Ember.isBlank(this.get('options.title'))) {\n        return this.get('options.name') + ' Gauge Chart';\n      }\n\n      return this.get('options.title');\n    }),\n\n    /* Applies the visual options, value and/or percentage display. */\n    dialDisplay: Ember.computed('dialValue', 'options.visualOptions', function () {\n      let text;\n      const visualOptions = this.get('options.visualOptions');\n      const dialValue = this.get('dialValue');\n\n      if (visualOptions.value.isChecked) {\n        text = dialValue.toString();\n      }\n\n      if (visualOptions.percentage.isChecked && this.get('filteredRecords.length') !== 0) {\n        text = text ? text + ', ' : '';\n        text += Math.floor(100 * dialValue / this.get('filteredRecords.length')).toString() + '%';\n      }\n\n      return text || '';\n    }),\n    chartOptions: Ember.computed('dialRange', 'dialValue', 'dialDisplay', function () {\n      const options = {\n        gauge: true,\n        labels: {\n          dial: this.get('dialValue'),\n          min: this.get('dialRange').min,\n          max: this.get('dialRange').max\n        },\n        rotation: -1.0 * Math.PI,\n        // start angle in radians\n        circumference: Math.PI,\n        // sweep angle in radians\n        title: {\n          'display': true,\n          'text': this.get('dialDisplay'),\n          'position': 'bottom'\n        },\n        tooltips: {\n          'enabled': false\n        },\n        onResize: function ()\n        /* chart, size */\n        {}\n      };\n      return options;\n    }),\n    actions: {\n      onFilterButtonClick() {\n        const workspace = this.get('workspace');\n        let topState = workspace.get('topState');\n\n        while (topState === 'gaugeWidget') {\n          workspace.popState();\n          topState = workspace.get('topState');\n        }\n\n        const displayName = 'Gauge Chart';\n        const widget = this.get('widget');\n        workspace.pushState('gaugeWidget', {\n          displayName,\n          widget\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/gauge-widget/gauge-chart/component\", [\"exports\", \"adept-iq/pods/components/ember-chart-fix/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* global Chart */\n  const NEEDLE_RADIUS = 80;\n\n  var _default = _component.default.extend({\n    chart: null,\n    needleAngle: Ember.computed('options.labels.{dial,min,max}', function () {\n      const options = this.get('options');\n      const needleAngle = (options.labels.dial - options.labels.min) / (options.labels.max - options.labels.min);\n      return options.rotation + needleAngle * Math.PI;\n    }),\n\n    drawGaugeComponents() {\n      const chart = this.get('chart');\n      const options = chart.options;\n      const ctx = chart.chart.ctx;\n      const cw = chart.width;\n      const ch = chart.height; // Get positions for dial\n\n      const cx = cw / 2;\n      const cy = ch - ch / 4;\n      const radianAngle = this.get('needleAngle');\n      const radius = NEEDLE_RADIUS;\n      ctx.translate(cx, cy);\n      ctx.rotate(radianAngle);\n      ctx.beginPath();\n      ctx.moveTo(0, -5);\n      ctx.lineTo(radius, 0);\n      ctx.lineTo(0, 5);\n      ctx.fillStyle = '#007bff';\n      ctx.fill();\n      ctx.rotate(-radianAngle);\n      ctx.translate(-cx, -cy);\n      ctx.beginPath();\n      ctx.arc(cx, cy, 7, 0, Math.PI * 2);\n      ctx.fill(); // configure label text\n\n      const fontStyle = 'Avenir Next';\n      const txt1 = options.labels.min;\n      const txt2 = options.labels.max; // let txt3 = options.labels.dial;\n\n      const color = '#666666';\n      ctx.font = '12px ' + fontStyle;\n      ctx.fillStyle = color;\n      ctx.textAlign = 'center';\n      ctx.testBaseline = 'bottom';\n      const centerX = (chart.chartArea.left + chart.chartArea.right) / 2;\n      const yPadding = 7;\n      const yPosition = chart.chartArea.top + chart.chartArea.bottom + yPadding;\n      ctx.fillText(txt1, centerX - NEEDLE_RADIUS, yPosition);\n      ctx.fillText(txt2, centerX + NEEDLE_RADIUS, yPosition); // ctx.fillText(txt3, centerX, yPosition);\n    },\n\n    didReceiveAttrs() {\n      this._super(...arguments);\n      /*eslint-disable */\n\n\n      const _this = this;\n      /*eslint-enable */\n\n\n      Chart.plugins.register({\n        afterDraw: function (chart) {\n          if (chart.config.options.gauge) {\n            _this.drawGaugeComponents();\n          }\n        }\n      });\n      Chart.plugins.register({\n        resize: function () {}\n      });\n    },\n\n    didInsertElement() {\n      const context = this.get('element');\n      const data = this.get('data');\n      const type = this.get('type');\n      const options = this.get('options');\n      const chart = new Chart(context, {\n        type: type,\n        data: data,\n        options: options\n      });\n      this.set('chart', chart);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/gauge-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"ryZC25U9\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"analytics-widget-header\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"h5\\\"],[11,\\\"class\\\",\\\"analytics-widget-title\\\"],[9],[0,\\\"\\\\n    \\\"],[1,[21,\\\"chartTitle\\\"],false],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"analytics-widget-button\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-filter\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onFilterButtonClick\\\"]],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"analytics-widget-body gauge-widget-body\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"gauge-chart-container\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"options\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[1,[27,\\\"iq-widgets/gauge-widget/gauge-chart\\\",null,[[\\\"type\\\",\\\"data\\\",\\\"options\\\",\\\"width\\\"],[\\\"doughnut\\\",[23,[\\\"chartData\\\"]],[23,[\\\"chartOptions\\\"]],260]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/gauge-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/map-widget/component\", \"adept-iq/pods/components/iq-widgets/map-widget/data-joins/marker\", \"adept-iq/pods/components/iq-widgets/map-widget/data-joins/polyline\", \"adept-iq/pods/components/iq-widgets/map-widget/data-joins/polygon\", \"adept-iq/pods/components/iq-widgets/map-widget/data-joins/circle\", \"adept-iq/pods/components/iq-widgets/map-widget/data-joins/shape\", \"adept-iq/utils/check-value\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/check-address-overwrite\", \"tomtom\", \"lodash\", \"adept-iq/config/environment\"], function (_exports, _component, _marker, _polyline, _polygon, _circle, _shape, _checkValue, _checkAddressFlags, _checkAddressOverwrite, _tomtom, _lodash, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _exports.RecenterControl = void 0;\n  const config = {\n    title: 'Map'\n  };\n  const recenterControlOptions = {\n    position: 'topleft',\n    recenterAction: null\n  };\n\n  var RecenterControl = _tomtom.default.L.Control.extend({\n    options: recenterControlOptions,\n    onAdd: function ()\n    /* map */\n    {\n      const name = 'leaflet-control-recenter';\n\n      const container = _tomtom.default.L.DomUtil.create('div', 'leaflet-control-recenter leaflet-bar');\n\n      this._recenterButton = this._createButton('<i class=\"fa fa-crosshairs fa-lg crosshairs-big\" aria-hidden=\"true\"></i>', \"Recenter\", name, container, this._recenterMap);\n      return container;\n    },\n    _recenterMap: function () {\n      this.options.mapWidget.onRecenterClick();\n    },\n    _createButton: function (html, title, className, container, fn) {\n      var link = _tomtom.default.L.DomUtil.create('a', className, container);\n\n      link.innerHTML = html;\n      link.href = '#';\n      link.title = title;\n      /*\n       * Will force screen readers like VoiceOver to read this as \"Zoom in - button\"\n       */\n\n      link.setAttribute('role', 'button');\n      link.setAttribute('aria-label', title);\n\n      _tomtom.default.L.DomEvent.disableClickPropagation(link);\n\n      _tomtom.default.L.DomEvent.on(link, 'click', _tomtom.default.L.DomEvent.stop);\n\n      _tomtom.default.L.DomEvent.on(link, 'click', fn, this);\n\n      _tomtom.default.L.DomEvent.on(link, 'click', this._refocusOnMap, this);\n\n      return link;\n    }\n  });\n\n  _exports.RecenterControl = RecenterControl;\n\n  var _default = _component.default.extend(Ember.Evented, {\n    mapContext: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    workspaceContext: Ember.inject.service(),\n    maximizer: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    store: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    markerDataJoin: null,\n    polylineDataJoin: null,\n    polygonDataJoin: null,\n    circleDataJoin: null,\n    shapeDataJoin: null,\n    config,\n    isSearchEnabled: Ember.computed.alias('mapContext.isSearchEnabled'),\n    fullMode: _environment.default.APP.fullMode,\n    searchText: Ember.computed.alias('mapContext.searchText'),\n    lat: Ember.computed.alias('mapContext.lat'),\n    lng: Ember.computed.alias('mapContext.lng'),\n    isVisible: Ember.computed.alias('mapContext.isVisible'),\n    isMCGVisible: Ember.computed.alias('mapContext.isMCGVisible'),\n    polylines: Ember.computed.alias('mapContext.polylines'),\n    markers: Ember.computed.alias('mapContext.markers'),\n    agencyMarkers: Ember.computed.alias('mapContext.agencyMarkers'),\n    shapes: Ember.computed.alias('mapContext.shapes'),\n    isFiltered: Ember.computed.alias('mapContext.isFiltered'),\n    contextMenu: Ember.computed.alias('mapContext.contextMenu'),\n    contextMenuOptions: Ember.computed.alias('mapContext.contextMenuOptions'),\n    contextMenuPosition: Ember.computed.alias('mapContext.contextMenuPosition'),\n    clearButtonEnabled: Ember.computed.gt('activeContext.checkedItems.length', 0),\n\n    init() {\n      this._super(...arguments); //console.log('mapContext ',this);\n\n\n      this.set('markerDataJoin', _marker.default.create());\n      this.set('polylineDataJoin', _polyline.default.create());\n      this.set('shapeDataJoin', _shape.default.create());\n    },\n\n    markerClusterDBClick(a, me) {\n      let filterRecords = [];\n      const firstMarker = a.layer.getAllChildMarkers()[0];\n      const markers = a.layer.getAllChildMarkers();\n      const modelName = firstMarker.options.modelName;\n      const parentModelName = firstMarker.options.parentModelName;\n      let allRecords;\n\n      if (!Ember.isBlank(parentModelName)) {\n        allRecords = me.get('store').peekAll(parentModelName);\n        markers.forEach(function (marker) {\n          const filterRecord = allRecords.filterBy('id', marker.options.parentModelId);\n\n          if (!filterRecords.includes(filterRecord[0])) {\n            filterRecords.push(filterRecord[0]);\n          }\n        });\n      } else {\n        allRecords = me.get('store').peekAll(modelName);\n        markers.forEach(function (marker) {\n          const filterRecord = allRecords.filterBy('id', marker.options.modelId);\n\n          if (!filterRecords.includes(filterRecord[0])) {\n            filterRecords.push(filterRecord[0]);\n          }\n        });\n      }\n\n      me.get('activeContext').replaceCheckedRecordsByType(filterRecords);\n    },\n\n    markerClusterPopup(a, me, map) {\n      // a.layer is actually a cluster\n      const content = [];\n      const markers = a.layer.getAllChildMarkers();\n      const popup_latlng = markers[0]._latlng;\n      markers.forEach(function (marker) {\n        let {\n          modelName,\n          modelId,\n          parentModelName,\n          parentModelId,\n          MCGLabel\n        } = marker.options;\n\n        if (!Ember.isBlank(parentModelName)) {\n          modelName = parentModelName;\n          modelId = parentModelId;\n        }\n\n        content.push(\"<div class='MGPopup' modelName='\" + modelName + \"' modelId='\" + modelId + \"'>\" + MCGLabel + \"</div>\");\n      });\n\n      _tomtom.default.L.popup({\n        maxHeight: 300,\n        maxWidth: 300,\n        minWidth: 150,\n        closeButton: false\n      }).setLatLng(popup_latlng).setContent(content.join(\"<div>----------------------</div>\")).openOn(map);\n\n      Ember.$(\".MGPopup\").dblclick(function () {\n        me.onLayerDblClick(Ember.$(this)[0].attributes.modelName.nodeValue, Ember.$(this)[0].attributes.modelId.nodeValue);\n      });\n    },\n\n    didInitializeMap(map) {\n      const locationControl = new RecenterControl({\n        mapWidget: this\n      });\n      locationControl.addTo(map);\n      const me = this; //TODO: bind the click event\n\n      this.set('markerDataJoin.map', map);\n      this.set('polylineDataJoin.map', map);\n      this.set('shapeDataJoin.map', map);\n      this.get('markerDataJoin').on('click', this, 'onLayerClick');\n      this.get('markerDataJoin').on('dblClick', this, 'onLayerDblClick');\n      this.get('markerDataJoin').on('contextMenu', this, 'onLayerContextMenu');\n      this.get('polylineDataJoin').on('click', this, 'onLayerClick');\n      this.get('polylineDataJoin').on('dblClick', this, 'onLayerDblClick');\n      this.get('polylineDataJoin').on('contextMenu', this, 'onLayerContextMenu');\n      this.get('shapeDataJoin').on('click', this, 'onLayerClick');\n      this.get('shapeDataJoin').on('dblClick', this, 'onLayerDblClick');\n      this.get('shapeDataJoin').on('contextMenu', this, 'onLayerContextMenu');\n\n      this._onMapContextRefresh = () => {\n        this.onMarkersChange();\n        this.onShapesChange();\n      };\n\n      Ember.run.later(function () {\n        me.get('activeContext').refreshAll();\n        me.onMarkersChange();\n        me.onShapesChange();\n      }, 10000);\n      /* later(function() {\n         me.get('workspaceContext').get('reloadWorkspace').perform();\n         me.get('workspaceContext').get('mapContext').trigger('refresh');\n         me.get('workspaceContext').set('startRefreshing',true);\n         \n       }, 60000);*/\n\n      this.get('mapContext').on('refresh', this._onMapContextRefresh);\n      this.get('geocode.activeGeocode');\n      this.get('geocode.activePickGeocode');\n      this.get('geocode.activeDropGeocode');\n      map.addLayer(this.get(\"mapContext.MCGTrips\"));\n      map.addLayer(this.get(\"mapContext.MCGVehicles\"));\n      this.get(\"mapContext.MCGTrips\").on('clusterclick', function (a) {\n        me.markerClusterPopup(a, me, map);\n      });\n      this.get(\"mapContext.MCGVehicles\").on('clusterclick', function (a) {\n        me.markerClusterPopup(a, me, map);\n      });\n      this.get(\"mapContext.MCGTrips\").on('clusterdblclick', function (a) {\n        me.markerClusterDBClick(a, me);\n      });\n      this.get(\"mapContext.MCGVehicles\").on('clusterdblclick', function (a) {\n        me.markerClusterDBClick(a, me);\n      });\n      /* this.get(\"mapContext.MCGTrips\").on('clustermouseover', function(event) {\n         // your custom L.MarkerCluster extended with function highlight()\n         event.layer.highlight();\n       })\n       \n       this.get(\"mapContext.MCGTrips\").on('clustermouseout', function(event) {\n         // your custom L.MarkerCluster extended with function resetHighlight()\n         event.layer.resetHighlight();\n       })\n        this.get(\"mapContext.MCGVehicles\").on('clustermouseover', function(event) {\n         // your custom L.MarkerCluster extended with function highlight()\n         event.layer.highlight();\n       })\n       \n       this.get(\"mapContext.MCGVehicles\").on('clustermouseout', function(event) {\n         // your custom L.MarkerCluster extended with function resetHighlight()\n         event.layer.resetHighlight();\n       })*/\n    },\n\n    async willDestroyElement() {\n      await Ember.run(() => {\n        this.get('markerDataJoin').off('click', this, 'onLayerClick');\n        this.get('markerDataJoin').off('dblClick', this, 'onLayerDblClick');\n        this.get('markerDataJoin').off('contextMenu', this, 'onLayerContextMenu');\n        this.get('polylineDataJoin').off('click', this, 'onLayerClick');\n        this.get('polylineDataJoin').off('dblClick', this, 'onLayerDblClick');\n        this.get('polylineDataJoin').off('contextMenu', this, 'onLayerContextMenu');\n        this.get('shapeDataJoin').off('click', this, 'onLayerClick');\n        this.get('shapeDataJoin').off('dblClick', this, 'onLayerDblClick');\n        this.get('shapeDataJoin').off('contextMenu', this, 'onLayerContextMenu');\n        this.get('mapContext').off('refresh', this._onMapContextRefresh);\n        this._onMapContextRefresh = null;\n        this.get('markerDataJoin').clear();\n        this.get('polylineDataJoin').clear();\n        this.get('shapeDataJoin').clear();\n      });\n\n      this._super(...arguments);\n    },\n\n    activeGeocode: Ember.observer('geocode.activeGeocode', function () {\n      const map = this.get('map');\n      const geocodeService = this.get('geocode');\n\n      if (geocodeService.get('activeGeocode')) {\n        map.on('click', function (event) {\n          console.log('markerLayer.getLatLng() ', event.latlng);\n          geocodeService.saveNewGeocode(event.latlng);\n        });\n      } else {\n        map.off('click');\n      }\n    }),\n    activePOIGeocode: Ember.observer('geocode.activePOIGeocode', function () {\n      const map = this.get('map');\n      const geocodeService = this.get('geocode');\n\n      if (geocodeService.get('activePOIGeocode')) {\n        map.on('click', function (event) {\n          geocodeService.findPOIForRecord(event.latlng);\n        });\n      } else {\n        map.off('click');\n      }\n    }),\n    activePOIResults: Ember.observer('geocode.activePOIResults', function () {\n      const map = this.get('map');\n      var markerOpt = {\n        noMarkerClustering: false\n      };\n      const me = this;\n\n      try {\n        const geocodeService = this.get('geocode');\n        const searchResponses = geocodeService.get('activePOIResults');\n        console.log('searchResponses ', searchResponses);\n\n        if (!Ember.isEmpty(searchResponses)) {\n          let addressRecord = this.get('editmodalcontext.addressRecord');\n          let tripData = this.get('editmodalcontext.record');\n          console.log('addressRecord ', addressRecord);\n          console.log('tripData ', tripData);\n          let markersData = [];\n          searchResponses.forEach(function (address) {\n            console.log('searchResponses ', address.address);\n            let latlng = {\n              lat: address.address.coord.lat,\n              lng: address.address.coord.lng\n            };\n\n            const tomtomMarker = _tomtom.default.L.marker(latlng);\n\n            let label = address.address.description;\n            tomtomMarker.address = address;\n            tomtomMarker.addressRecord = addressRecord;\n            tomtomMarker.tripData = tripData;\n            tomtomMarker.bindPopup(label, {\n              closeButton: false\n            });\n            markersData.push(tomtomMarker);\n            tomtomMarker.on('dblclick', function (event) {\n              console.log('tomtomMarker on dblclick event ', event);\n              console.log('tomtomMarker on dblclick event.target ', event.target);\n              me.toggleProperty('editmodalcontext.showWidgetModal');\n              let ttAddress = event.target.address;\n              let addressRecord = event.target.addressRecord;\n              console.log('tomtomMarker addressRecord ', addressRecord);\n              let tripData = event.target.tripData;\n              me.get('geocode').set('activePOIResults', []);\n              let overwriteAddress = true;\n              let overwriteAddressPop = (0, _checkAddressOverwrite.default)(addressRecord.address, ttAddress.address);\n\n              if (overwriteAddressPop) {\n                overwriteAddress = confirm('Do you want to overwrite Address');\n              }\n\n              if (overwriteAddress) {\n                try {\n                  addressRecord.address.streetNr = ttAddress.address.streetNr;\n                  addressRecord.address.streetName = ttAddress.address.streetName;\n                  addressRecord.address.region = ttAddress.address.region;\n                  addressRecord.address.state = ttAddress.address.state;\n                  addressRecord.address.postCode = ttAddress.address.postalCode;\n\n                  if (!Ember.isBlank(ttAddress.address.description) && ttAddress.address.description.length > 40) {\n                    Ember.set(addressRecord.address, 'description', ttAddress.address.description.substring(0, 39));\n                  } else {\n                    Ember.set(addressRecord.address, 'description', ttAddress.address.description);\n                  } //record.address.country = ttAddress.address.country;\n\n                } catch (e) {\n                  console.log(e);\n                }\n\n                try {// Ember.set(addressRecord.address, 'description', checkValue(ttAddress.address.description));\n                } catch (e) {// record.address.formattedAddress =  checkValue(ttAddress.address.description);\n                }\n\n                try {\n                  Ember.set(addressRecord.address.tomtomFormattedAddress.address, 'freeformAddress', (0, _checkValue.default)(addressRecord.address.streetNr) + \" \" + (0, _checkValue.default)(addressRecord.address.streetName) + \" \" + (0, _checkValue.default)(addressRecord.address.region));\n                } catch (e) {\n                  console.log('e', e);\n\n                  try {\n                    addressRecord.address.tomtomFormattedAddress = {\n                      address: {\n                        freeformAddress: (0, _checkValue.default)(addressRecord.address.streetNr) + \" \" + (0, _checkValue.default)(addressRecord.address.streetName) + \" \" + (0, _checkValue.default)(addressRecord.address.region)\n                      }\n                    };\n                  } catch (e) {\n                    console.log('e1 ', e);\n                  }\n                }\n\n                try {\n                  Ember.set(addressRecord.address, 'formattedAddress', (0, _checkValue.default)(ttAddress.freeformAddress));\n                } catch (e) {\n                  addressRecord.address.formattedAddress = (0, _checkValue.default)(ttAddress.freeformAddress);\n                }\n\n                let options = me.get('store').peekAll('tm-common-operational-attribute');\n                let requiredAttributes = ttAddress.requiredAttributes;\n\n                try {\n                  addressRecord.address.coord.lat = ttAddress.address.coord.lat;\n                  addressRecord.address.coord.lng = ttAddress.address.coord.lng;\n                  me.get('geocode').addressMapPopulate(addressRecord);\n                } catch (e) {\n                  console.log(e);\n                }\n\n                console.log('requiredAttributes ', requiredAttributes);\n                let addressAttributes = options.filter(function (o1) {\n                  // if match found return false\n                  return _lodash.default.findIndex(requiredAttributes, {\n                    'type': o1.type\n                  }) === -1 ? false : true;\n                });\n                console.log('buildingAttributes ', addressAttributes);\n\n                if (!Ember.isBlank(ttAddress.notes)) {\n                  Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', (0, _checkValue.default)(ttAddress.notes.driver));\n                  Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.address', (0, _checkValue.default)(ttAddress.notes.dispatcher));\n                } else {\n                  Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', '');\n                  Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.address', '');\n                }\n\n                Ember.set(tripData, 'editmodelcontext.attributes.address', addressAttributes);\n                document.getElementById('inputPOI' + me.get('geocode').get('activePOIIndex')).focus();\n                (0, _checkAddressFlags.default)(tripData);\n              }\n            });\n          });\n\n          var markersLayer = _tomtom.default.L.layerGroup(markersData).addTo(map);\n\n          geocodeService.set('activePOIMarkersLayer', markersLayer); // markersLayer.addTo(map);\n\n          /* markersLayer.forEach(function(markerLayer, index) {\n             var point = searchResponses[index];\n             var viewport = point.viewport;\n             if (viewport) {\n               map.fitBounds([viewport.topLeftPoint, viewport.btmRightPoint]);\n             } else {\n               map.panTo(markerLayer.getLatLng());\n             }\n             markerLayer.on('click', function(event) {\n               console.log('markerLayer.getLatLng() ',markerLayer.getLatLng());\n               geocodeService.set('disabledFindLocationForRecord',true);\n               \n               geocodeService.saveNewGeocode(markerLayer.getLatLng());\n                 markerLayer.openPopup();\n             });         \n           \n           });*/\n        } else {\n          if (geocodeService.get('activePOIMarkersLayer')) {\n            geocodeService.get('activePOIMarkersLayer').remove(); // map.remove(geocodeService.get('activePOIMarkersLayer'));\n          }\n        }\n      } catch (e) {}\n    }),\n    activeMarker: Ember.observer('geocode.activeMarker', function () {\n      const map = this.get('map');\n      const geocodeService = this.get('geocode');\n\n      if (geocodeService.get('oldMarker')) {\n        geocodeService.get('oldMarker').remove();\n      }\n\n      if (geocodeService.get('activeMarker')) {\n        const marker = geocodeService.get('activeMarker');\n        marker.addTo(map);\n        map.setView(marker._latlng, geocodeService.get('zoom'));\n      }\n    }),\n    activePOIMarker: Ember.observer('geocode.activePOIMarker', function () {\n      const map = this.get('map');\n      const geocodeService = this.get('geocode');\n\n      if (geocodeService.get('oldPOIMarker')) {\n        geocodeService.get('oldPOIMarker').remove();\n      }\n\n      if (geocodeService.get('activePOIMarker')) {\n        const marker = geocodeService.get('activePOIMarker');\n        marker.addTo(map);\n        map.setView(marker._latlng, geocodeService.get('zoom'));\n      }\n    }),\n    activePickMarker: Ember.observer('geocode.activePickMarker', function () {\n      const map = this.get('map');\n      const geocodeService = this.get('geocode');\n\n      if (geocodeService.get('oldPickMarker')) {\n        geocodeService.get('oldPickMarker').remove();\n      }\n\n      if (this.get('pickMarker')) {\n        this.get('pickMarker').remove();\n      }\n\n      if (geocodeService.get('activePickMarker')) {\n        const marker = geocodeService.get('activePickMarker');\n        marker.addTo(map);\n        map.setView(marker._latlng, geocodeService.get('zoom'));\n        this.set('pickMarker', marker);\n        marker.on('dragend', function (event) {\n          geocodeService.saveNewGeocode(event.target.getLatLng());\n        });\n      }\n    }),\n    activeDropMarker: Ember.observer('geocode.activeDropMarker', function () {\n      const map = this.get('map');\n      const geocodeService = this.get('geocode');\n\n      if (geocodeService.get('oldDropMarker')) {\n        geocodeService.get('oldDropMarker').remove();\n      }\n\n      if (this.get('dropMarker')) {\n        this.get('dropMarker').remove();\n      }\n\n      if (geocodeService.get('activeDropMarker')) {\n        const marker = geocodeService.get('activeDropMarker');\n        marker.addTo(map);\n        map.setView(marker._latlng, geocodeService.get('zoom'));\n        this.set('dropMarker', marker);\n        marker.on('dragend', function (event) {\n          geocodeService.saveNewGeocode(event.target.getLatLng());\n        });\n      }\n    }),\n    // TODO need to clean up\n    activeTripPolyline: Ember.observer('geocode.activeTripPolyline', function () {\n      const me = this;\n      const map = this.get('map');\n      const geocodeService = this.get('geocode');\n\n      if (this.get('dropMarker')) {\n        this.get('dropMarker').remove();\n      }\n\n      if (this.get('pickMarker')) {\n        this.get('pickMarker').remove();\n      }\n\n      if (geocodeService.get('oldTripPolyline')) {\n        geocodeService.get('oldTripPolyline').remove();\n      }\n\n      if (geocodeService.get('oldDropMarker')) {\n        geocodeService.get('oldDropMarker').remove();\n      }\n\n      if (geocodeService.get('oldPickMarker')) {\n        geocodeService.get('oldPickMarker').remove();\n      }\n\n      if (geocodeService.get('oldTripArrow')) {\n        geocodeService.get('oldTripArrow').remove();\n      }\n\n      if (geocodeService.get('oldPickMarker')) {\n        geocodeService.get('oldPickMarker').remove();\n      }\n\n      if (geocodeService.get('oldTripArrow')) {\n        geocodeService.get('oldTripArrow').remove();\n      }\n\n      if (geocodeService.get('tripRouteOnMap')) {\n        geocodeService.get('tripRouteOnMap').remove();\n      }\n\n      if (geocodeService.get('route4Trip')) {\n        geocodeService.get('route4Trip').remove();\n      }\n\n      if (geocodeService.get('route4TripPopup')) {\n        geocodeService.get('route4TripPopup').remove();\n      }\n\n      if (this.get('tripPolyline')) {\n        this.get('tripPolyline').remove();\n      }\n\n      if (this.get('tripArrow')) {\n        this.get('tripArrow').remove();\n      }\n\n      if (this.get('route4Trip')) {\n        this.get('route4Trip').remove();\n      }\n\n      if (geocodeService.get('activeDropMarker')) {\n        const marker = geocodeService.get('activeDropMarker');\n        marker.addTo(map);\n        map.setView(marker._latlng, geocodeService.get('zoom'));\n        this.set('dropMarker', marker);\n      }\n\n      if (this.get('pickMarker')) {\n        this.get('pickMarker').remove();\n      }\n\n      if (geocodeService.get('activePickMarker')) {\n        const marker = geocodeService.get('activePickMarker');\n        marker.addTo(map);\n        map.setView(marker._latlng, geocodeService.get('zoom'));\n        this.set('pickMarker', marker);\n      }\n\n      if (geocodeService.get('activeTripPolyline')) {\n        const tripPolyline = geocodeService.get('activeTripPolyline');\n        tripPolyline.addTo(map);\n        const tripArrow = geocodeService.get('activeTripArrow');\n        tripArrow.addTo(map);\n        this.set('tripPolyline', tripPolyline);\n        this.set('tripArrow', tripArrow);\n        const tripRoutePoints = geocodeService.get('tripRoutePoints');\n        const locations = tripRoutePoints[0] + \",\" + tripRoutePoints[1] + \":\" + tripRoutePoints[2] + \",\" + tripRoutePoints[3];\n        let route4Trip;\n\n        _tomtom.default.routing({\n          traffic: true\n        }).travelMode('taxi').locations(locations).go().then(function (routeJson) {\n          const summary = routeJson.features[0].properties.summary;\n          route4Trip = _tomtom.default.L.geoJson(routeJson, {\n            style: {\n              color: '#000000',\n              opacity: 0.7,\n              strokeWidth: \"6\"\n            }\n          });\n          map.fitBounds(route4Trip.getBounds(), {\n            padding: [10, 10]\n          });\n\n          const latlng = _tomtom.default.L.latLng(tripRoutePoints[0], tripRoutePoints[1]);\n\n          const summarycalc = '<div> Distance: ' + _tomtom.default.unitFormatConverter.formatDistance(summary.lengthInMeters) + '</div><p>' + '<div>Estimated travel time: ' + _tomtom.default.unitFormatConverter.formatTime(summary.travelTimeInSeconds) + '</div><p>' + '<div> Traffic delay: ' + _tomtom.default.unitFormatConverter.formatTime(summary.trafficDelayInSeconds);\n\n          var route4TripPopup = _tomtom.default.L.popup({\n            closeButton: false\n          }).setLatLng(latlng).setContent(summarycalc).openOn(map);\n\n          me.get('geocode').set('route4Trip', route4Trip);\n          me.get('geocode').set('route4TripPopup', route4TripPopup);\n          me.get('geocode').get('route4Trip').addTo(map);\n        });\n      }\n    }),\n\n    updateMarkerData() {\n      const markerDataJoin = this.get('markerDataJoin');\n      const markers = this.get('markers');\n      if (markers) markerDataJoin.join(markers);\n    },\n\n    updatePolylineData() {\n      const polylineDataJoin = this.get('polylineDataJoin');\n      const polylines = this.get('polylines');\n      if (polylines) polylineDataJoin.join(polylines);\n    },\n\n    updateShapeData() {\n      try {\n        let shapeDataJoin = this.get('shapeDataJoin');\n        const shapes = this.get('shapes');\n        shapeDataJoin.join(shapes);\n      } catch (es) {}\n    },\n\n    onMarkersChange: Ember.observer('activeContext.activeData.[]', 'mapContext.layers', function () {\n      Ember.run.scheduleOnce('actions', this, 'updateMarkerData');\n    }),\n    onPolylinesChange: Ember.observer('activeContext.activeData.[]', 'mapContext.layers', function () {\n      Ember.run.scheduleOnce('actions', this, 'updatePolylineData');\n    }),\n    onShapesChange: Ember.observer('activeContext.activeData.[]', 'mapContext.layers', function () {\n      Ember.run.scheduleOnce('actions', this, 'updateShapeData');\n    }),\n\n    onLayerClick(modelName, id, e) {\n      this.get('mapContext').onLayerClick(modelName, id, e);\n    },\n\n    onLayerDblClick(modelName, id, e) {\n      this.get('mapContext').onLayerDblClick(modelName, id, e);\n    },\n\n    onLayerContextMenu(modelName, id, e) {\n      this.get('mapContext').onLayerContextMenu(modelName, id, e);\n    },\n\n    onRecenterClick() {\n      this.notifyPropertyChange('lat');\n      this.notifyPropertyChange('lng');\n    },\n\n    getResultName(result) {\n      if (typeof result.poi !== 'undefined' && typeof result.poi.name !== 'undefined') {\n        return result.poi.name;\n      }\n\n      if (result.nm !== '') {\n        return result.nm;\n      }\n\n      return '';\n    },\n\n    getResultAddress(result) {\n      if (typeof result.address !== 'undefined') {\n        var address = [];\n\n        if (typeof result.address.freeformAddress !== 'undefined') {\n          address.push(result.address.freeformAddress);\n        }\n\n        if (typeof result.address.countryCodeISO3 !== 'undefined') {\n          address.push(result.address.countryCodeISO3);\n        }\n\n        return address.join(', ');\n      } else if (typeof result.a2 !== 'undefined') {\n        return result.a2;\n      }\n\n      return '';\n    },\n\n    prepareResultElement(result) {\n      var resultElement = new _tomtom.default.L.DomUtil.create('div', 'geoResponse-result');\n      var name = this.getResultName(result);\n      var adress = this.getResultAddress(result);\n\n      if (typeof name !== 'undefined') {\n        var nameWrapper = _tomtom.default.L.DomUtil.create('div', 'geoResponse-result-name');\n\n        nameWrapper.innerHTML = name;\n        resultElement.appendChild(nameWrapper);\n      }\n\n      if (typeof adress !== 'undefined') {\n        var addressWrapper = _tomtom.default.L.DomUtil.create('div', 'geoResponse-result-address');\n\n        addressWrapper.innerHTML = adress;\n        resultElement.appendChild(addressWrapper);\n      }\n\n      return resultElement;\n    },\n\n    actions: {\n      onSearchButtonClick() {\n        this.toggleProperty('isSearchEnabled');\n        Ember.run.scheduleOnce('afterRender', () => {\n          if (this.get('isSearchEnabled')) {\n            this.$('.map-widget-search-box').focus();\n          }\n        });\n      },\n\n      onRemoveSearchClick() {\n        this.set('searchText', '');\n        this.toggleProperty('isSearchEnabled');\n      },\n\n      onSearchTextChange(searchText) {\n        this.set('searchText', searchText);\n      },\n\n      onClearButtonClick() {\n        this.get('activeContext').clearCheckedItems();\n      },\n\n      onFilterButtonClick() {\n        const workspace = this.get('workspace');\n        let topState = workspace.get('topState');\n\n        while (topState === 'filterMapWidget') {\n          workspace.popState();\n          topState = workspace.get('topState');\n        }\n\n        const displayName = \"Map Layers\";\n        workspace.pushState('filterMapWidget', {\n          displayName\n        });\n      },\n\n      onLayerToggle(layer) {\n        this.toggleProperty(`isVisible.${layer}`);\n      },\n\n      setContextMenu(dropdown) {\n        this.set('contextMenu', dropdown);\n      },\n\n      onContextMenuOptionClick(option) {\n        this.get('mapContext').onContextMenuOptionClick(option);\n      },\n\n      onHeaderDoubleClick() {\n        const maximizer = this.get('maximizer');\n\n        if (maximizer.maximizedWidget === this.get('widget')) {\n          maximizer.minimize();\n          return;\n        }\n\n        maximizer.maximize(this.get('widget'));\n      },\n\n      onExitMaximizedClick() {\n        let maximizer = this.get('maximizer');\n        maximizer.minimize();\n      },\n\n      buildPopupMessage(summary) {\n        return ['Distance: ' + _tomtom.default.unitFormatConverter.formatDistance(summary.lengthInMeters), 'Estimated travel time: ' + _tomtom.default.unitFormatConverter.formatTime(summary.travelTimeInSeconds), 'Traffic delay: ' + _tomtom.default.unitFormatConverter.formatTime(summary.trafficDelayInSeconds)].join('<br/>');\n      },\n\n      bindPopups(feature, layer) {\n        const map = this.get('map');\n        layer.on('mouseover', function (e) {\n          _tomtom.default.L.popup().setLatLng(e.latlng).setContent(this.buildPopupMessage(feature.properties.summary)).openOn(map);\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/config/arrow\", [\"exports\", \"adept-iq/config/icon-paths\", \"tomtom\"], function (_exports, _iconPaths, _tomtom) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    tripArrowPlanned: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.tripArrow.ontime,\n        iconSize: [20, 20],\n        iconAnchor: [20, 10]\n      }),\n      rotationAngle: null,\n      rotationOrigin: 'center right',\n      color: '#555e63'\n    },\n    tripArrowPlannedDanger: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.tripArrow.danger,\n        iconSize: [20, 20],\n        iconAnchor: [20, 10]\n      }),\n      rotationAngle: null,\n      rotationOrigin: 'center right',\n      color: '#f09240'\n    },\n    tripArrowPlannedLate: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.tripArrow.late,\n        iconSize: [20, 20],\n        iconAnchor: [20, 10]\n      }),\n      rotationAngle: null,\n      rotationOrigin: 'center right',\n      color: '#d13730'\n    },\n    tripArrowPlannedOffset: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.tripArrowOffset.ontime,\n        iconSize: [35, 20],\n        iconAnchor: [35, 10]\n      }),\n      rotationAngle: null,\n      rotationOrigin: 'center right',\n      color: '#555e63'\n    },\n    tripArrowPlannedOffsetLate: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.tripArrowOffset.late,\n        iconSize: [35, 20],\n        iconAnchor: [35, 10]\n      }),\n      rotationAngle: null,\n      rotationOrigin: 'center right',\n      color: '#d13730'\n    },\n    tripArrowPlannedOffsetDanger: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.tripArrowOffset.danger,\n        iconSize: [35, 20],\n        iconAnchor: [35, 10]\n      }),\n      rotationAngle: null,\n      rotationOrigin: 'center right',\n      color: '#f09240'\n    }\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/config/circle\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    solid: {\n      dashArray: null,\n      color: '#97a3a9',\n      opacity: 0.5,\n      fillOpacity: 0.2\n    },\n    solidLate: {\n      dashArray: null,\n      // matches 'text-danger' in CSS\n      color: 'orange',\n      opacity: 0.5,\n      fillOpacity: 0.2\n    },\n    solidDanger: {\n      dashArray: null,\n      color: 'red',\n      opacity: 0.5,\n      fillOpacity: 0.2\n    },\n    normal: {\n      dashArray: 'null',\n      color: '#efe4b0',\n      opacity: 1.0,\n      fillOpacity: 0.6\n    },\n    medium: {\n      dashArray: 'null',\n      color: 'orange',\n      opacity: 1.0,\n      fillOpacity: 0.6\n    },\n    high: {\n      dashArray: 'null',\n      color: 'red',\n      opacity: 1.0,\n      fillOpacity: 0.6\n    }\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/config/marker\", [\"exports\", \"tomtom\", \"adept-iq/config/icon-paths\"], function (_exports, _tomtom, _iconPaths) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    location: {\n      icon: _tomtom.default.L.svgIcon({\n        icon: {\n          icon: 'fa fa-building',\n          iconSize: [32, 37],\n          iconAnchor: [16, 2],\n          style: {\n            color: '#fff'\n          },\n          noPlainSVG: true\n        }\n      })\n    },\n    locationLate: {\n      icon: _tomtom.default.L.svgIcon({\n        icon: {\n          icon: 'fa fa-building',\n          iconSize: [32, 37],\n          iconAnchor: [16, 2],\n          style: {\n            color: '#fff'\n          },\n          noPlainSVG: true\n        },\n        background: {\n          icon: 'icon-marker-red'\n        }\n      })\n    },\n    locationDanger: {\n      icon: _tomtom.default.L.svgIcon({\n        icon: {\n          icon: 'fa fa-building',\n          iconSize: [32, 37],\n          iconAnchor: [16, 2],\n          style: {\n            color: '#fff'\n          },\n          noPlainSVG: true\n        },\n        background: {\n          icon: 'icon-marker-orange'\n        }\n      })\n    },\n    active: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.active,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    arrived: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.arrived,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    arrive: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.arrive,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    accepted: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.accepted,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    booked: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.booked,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    noshow: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.noshow,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    accept: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.accept,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    underdispatch: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.underdispatch,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    dispatch: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.dispatch,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    inservice: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.inservice,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    load: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.load,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    offered: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.offered,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    cancelled: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.cancelled,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    onhold: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.onhold,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    scrub: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.scrub,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    altered: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.altered,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    completed: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.completed,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    pick: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.future,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    pickup: {\n      draggable: true,\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.future,\n        iconSize: [30, 42],\n        iconAnchor: [16, 16]\n      })\n    },\n    pickLate: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.futureLate,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    pickDanger: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.futureInDanger,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    drop: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.future,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    dropoff: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.future,\n        iconSize: [30, 42],\n        iconAnchor: [16, 16]\n      })\n    },\n    dropLate: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.futureLate,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    dropDanger: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.futureInDanger,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    break: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.stops.break,\n        iconSize: [24, 30],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleoffered: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.offered,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehiclearrived: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.arrived,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleempty: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.empty,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehiclefree: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.free,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleoff: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.off,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleonbreak: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.onbreak,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehiclefreetempoff: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.tempoff,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehiclefreeonbreak: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.onhold,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicletempoff: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.tempoff,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleonhold: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.onhold,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehiclechecking: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.checking,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleunexplained: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.unexplained,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleemergency: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.emergency,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicle: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.vehicle,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleDriving: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.atWork,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleLate: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.vehicle,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleDanger: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.vehicle,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleAtwork: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.atWork,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleaccepted: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.accepted,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehiclebooked: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.booked,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleload: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.load,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleoccupied: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.occupied,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehiclestc: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.stc,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    },\n    vehicleud: {\n      icon: _tomtom.default.L.icon({\n        iconUrl: _iconPaths.default.vehicles.ud,\n        iconSize: [16, 24],\n        iconAnchor: [16, 16]\n      })\n    }\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/config/polygon\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    solid: {\n      dashArray: null,\n      color: '#97a3a9',\n      opacity: 0.5,\n      fillOpacity: 0.2\n    },\n    solidLate: {\n      dashArray: null,\n      // matches 'text-danger' in CSS\n      color: 'orange',\n      opacity: 0.5,\n      fillOpacity: 0.2\n    },\n    solidDanger: {\n      dashArray: null,\n      color: 'red',\n      opacity: 0.5,\n      fillOpacity: 0.2\n    },\n    normal: {\n      dashArray: 'null',\n      color: '#97a3a9',\n      opacity: 0.1,\n      fillOpacity: 0\n    },\n    medium: {\n      dashArray: 'null',\n      color: 'orange',\n      opacity: 0.1,\n      fillOpacity: 0.05\n    },\n    high: {\n      dashArray: 'null',\n      color: 'red',\n      opacity: 0.1,\n      fillOpacity: 0.05\n    }\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/config/polyline\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    solid: {\n      dashArray: null,\n      color: '#555e63',\n      opacity: 1\n    },\n    solidLate: {\n      dashArray: null,\n      // matches 'text-danger' in CSS\n      color: '#d13730',\n      opacity: 1\n    },\n    solidDanger: {\n      dashArray: null,\n      color: '#f09240',\n      opacity: 1\n    },\n    dotted: {\n      dashArray: '0 6',\n      color: '#555e63',\n      opacity: 1\n    },\n    dottedLate: {\n      dashArray: '0 6',\n      color: '#d13730',\n      opacity: 1\n    },\n    dottedDanger: {\n      dashArray: '0 6',\n      color: '#f09240',\n      opacity: 1\n    }\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/data-joins/base\", [\"exports\", \"adept-iq/utils/data-join\", \"tomtom\"], function (_exports, _dataJoin, _tomtom) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dataJoin.default.extend(Ember.Evented, {\n    map: null,\n\n    bindMouseEvents(layer) {\n      layer.on('click', e => {\n        const {\n          modelName,\n          modelId,\n          isActive\n        } = e.target.options;\n        if (!isActive) return;\n        this.trigger('click', modelName, modelId, e);\n      });\n      layer.on('dblclick', e => {\n        _tomtom.default.L.DomEvent.stop(e);\n\n        let {\n          modelName,\n          modelId,\n          isTraversal,\n          parentModelName,\n          parentModelId\n        } = e.target.options;\n\n        if (!Ember.isBlank(parentModelName)) {\n          modelName = parentModelName;\n          modelId = parentModelId;\n        }\n\n        if (!isTraversal) return;\n        this.trigger('dblClick', modelName, modelId, e);\n      });\n      layer.on('contextmenu', e => {\n        const {\n          modelName,\n          modelId,\n          isActive\n        } = e.target.options;\n        if (!isActive) return;\n        this.trigger('contextMenu', modelName, modelId, e);\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/data-joins/circle\", [\"exports\", \"adept-iq/pods/components/iq-widgets/map-widget/data-joins/base\", \"adept-iq/pods/components/iq-widgets/map-widget/config/circle\", \"lodash\", \"tomtom\"], function (_exports, _base, _circle, _lodash, _tomtom) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    enter(node) {\n      const points = node.get('points');\n      if (Ember.isEmpty(points)) return;\n      this.createCircleFor(node);\n    },\n\n    update(node) {\n      const points = node.get('points');\n      const circle = node.get('circle');\n\n      if (Ember.isEmpty(points)) {\n        if (circle) {\n          this.removeCircleFor(node);\n        }\n\n        return;\n      }\n\n      if (!circle) {\n        this.createCircleFor(node);\n      }\n\n      this.updateCircleFor(node);\n    },\n\n    exit(node) {\n      if (node.get('circle')) {\n        this.removeCircleFor(node);\n      }\n    },\n\n    createCircleFor(node) {\n      const label = node.get('label');\n      const record = node.get('record');\n      let style = node.get('style');\n      const parentLabel = node.get('parentLabel');\n\n      if (record.get('style') !== undefined && record.get('style')) {\n        style = record.get('style');\n      }\n\n      const defaultOptions = _circle.default[style] || {};\n      const nodeOptions = node.get('options') || {};\n      const modelName = record.constructor.modelName;\n\n      const options = _lodash.default.merge(defaultOptions, nodeOptions, {\n        label,\n        opacity: node.get('opacity'),\n        // for active context clicks\n        isActive: node.get('isActive'),\n        isTraversal: node.get('isTraversal'),\n        modelId: record.get('id'),\n        modelName\n      });\n\n      const points = node.get('points');\n      const radius = node.get('radius');\n\n      const circle = _tomtom.default.L.circle([points.lat, points.lng], radius, options);\n\n      circle.setStyle(style);\n      this.bindMouseEvents(circle);\n      node.set('circle', circle);\n      const map = this.get('map');\n      circle.addTo(map);\n      const parentLabelFormatted = '<table  style=\"position:relative;\"><tr></tr><tr>' + '<td rowspan=\"2\" style=\"font-weight: bold; font-size: 2em;text-align: center;opacity:0.4;\">' + parentLabel + '</td><td rowspan=\"2\">&nbsp;</td><<td rowspan=\"2\">' + label + '</td></tr></table>'; //circle.bindPopup(label, { closeButton: false });\n\n      circle.bindTooltip(parentLabelFormatted, {\n        permanent: true,\n        direction: \"center\",\n        opacity: 0.4\n      }).openTooltip();\n    },\n\n    updateCircleFor(node) {\n      const opacity = node.get('opacity');\n      const circle = node.get('circle');\n\n      if (circle) {\n        const label = node.get('label');\n        const parentLabel = node.get('parentLabel');\n        let style = node.get('style');\n        const record = node.get('record');\n\n        if (record.get('style') !== undefined && record.get('style')) {\n          style = record.get('style');\n        }\n\n        const defaultOptions = _circle.default[style] || {};\n        const nodeOptions = node.get('options') || {};\n        const modelName = record.constructor.modelName;\n\n        let options = _lodash.default.merge(defaultOptions, nodeOptions, {\n          label,\n          opacity: opacity,\n          // for active context clicks\n          isActive: node.get('isActive'),\n          isTraversal: node.get('isTraversal'),\n          modelId: record.get('id'),\n          modelName\n        });\n\n        circle.setStyle(options);\n        this.bindMouseEvents(circle);\n        const parentLabelFormatted = '<table  style=\"position:relative;\"><tr></tr><tr>' + '<td rowspan=\"2\" style=\"font-weight: bold; font-size: 2em;text-align: center;\">' + parentLabel + '</td><td rowspan=\"2\">&nbsp;</td><td rowspan=\"2\">' + label + '</td></tr></table>';\n        circle.setTooltipContent(parentLabelFormatted);\n      }\n    },\n\n    removeCircleFor(node) {\n      const circle = node.get('circle');\n\n      if (circle) {\n        circle.remove();\n        node.set('circle', null);\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/data-joins/marker\", [\"exports\", \"adept-iq/pods/components/iq-widgets/map-widget/data-joins/base\", \"adept-iq/pods/components/iq-widgets/map-widget/config/marker\", \"tomtom\", \"lodash\"], function (_exports, _base, _marker, _tomtom, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    enter(node) {\n      const lat = node.get('lat');\n      const lng = node.get('lng');\n      if (Ember.isNone(lat) || Ember.isNone(lng)) return;\n      this.createMarkerFor(node);\n    },\n\n    update(node) {\n      const lat = node.get('lat');\n      const lng = node.get('lng');\n      const marker = node.get('marker');\n      node.get('style');\n\n      if (Ember.isNone(lat) || Ember.isNone(lng)) {\n        if (marker) {\n          this.removeMarkerFor(node);\n        }\n\n        return;\n      }\n\n      if (!marker) {\n        this.createMarkerFor(node);\n      }\n\n      this.updateMarkerFor(node);\n    },\n\n    exit(node) {\n      if (node.get('marker')) {\n        this.removeMarkerFor(node);\n      }\n    },\n\n    createMarkerFor(node) {\n      const label = node.get('label');\n      const record = node.get('record');\n      const isMCG = node.get('isMCG');\n      const MCGTrips = node.get('MCGTrips');\n      const MCGVehicles = node.get('MCGVehicles');\n      const MCGLabel = node.get('MCGLabel');\n      let parentModelId;\n      let parentModelName;\n\n      if (record.constructor.modelName === 'stop') {\n        parentModelId = record.get('trip.id');\n        parentModelName = 'iqTrip';\n      }\n\n      if (record.constructor.modelName === 'vehicle') {\n        parentModelId = record.get('id');\n        parentModelName = 'iqVehicle';\n      }\n\n      const style = node.get('style');\n      const defaultOptions = _marker.default[style] || {};\n      const nodeOptions = node.get('options') || {};\n\n      const options = _lodash.default.merge(defaultOptions, nodeOptions, {\n        label,\n        opacity: node.get('opacity'),\n        // for active context clicks\n        isActive: node.get('isActive'),\n        isTraversal: node.get('isTraversal'),\n        modelName: record.constructor.modelName,\n        modelId: record.get('id'),\n        MCGLabel: MCGLabel,\n        parentModelId: parentModelId,\n        parentModelName: parentModelName\n      });\n\n      const lat = node.get('lat');\n      const lng = node.get('lng');\n\n      const marker = _tomtom.default.L.marker([lat, lng], options);\n\n      marker.bindPopup(label, {\n        closeButton: false\n      });\n      marker.setZIndexOffset(1000);\n      this.bindMouseEvents(marker);\n      node.set('marker', marker);\n      const map = this.get('map');\n\n      if (!isMCG) {\n        marker.addTo(map);\n      } else {\n        if (record.constructor.modelName === 'vehicle') {\n          MCGVehicles.addLayer(marker);\n        } else {\n          MCGTrips.addLayer(marker);\n        } // map.addLayer(this.get(\"MCGTrips\"));\n\n      }\n\n      let angle = node.get('record').heading;\n\n      if (record.constructor.modelName === 'vehicle') {\n        angle /= 2;\n        marker.setRotationAngle(angle);\n      }\n\n      marker.setRotationAngle(angle); //marker.on(\"mouseover\",function(){$('.leaflet-mouse-marker').css('cursor','crosshair');});\n      //marker.on(\"mouseout\",function(){$('.leaflet-mouse-marker').css('cursor','');});\n\n      /* marker.bindTooltip(caption,\n         {permanent: true, direction:\"center\", opacity:0.5 , offset : tomtom.L.point(-20,0)}\n       ).openTooltip();*/\n\n      return marker;\n    },\n\n    updateMarkerFor(node) {\n      const marker = node.get('marker');\n      if (!marker) return;\n      const lat = node.get('lat');\n      const lng = node.get('lng');\n      const opacity = node.get('opacity');\n      const label = node.get('label');\n      const record = node.get('record');\n      const isMCG = node.get('isMCG');\n      const MCGTrips = node.get('MCGTrips');\n      const MCGVehicles = node.get('MCGVehicles');\n      const markerStyle = this._getLayerStyleSuffix(record) + record.get('statusValue'); //this._getOTPstyleSuffix(record, type.id);\n\n      const statusOption = _marker.default[markerStyle] || {}; ////console.log('!(parseFloat(marker._latlng.lat) === parseFloat(lat)) ',(statusOption.icon.options.iconUrl !== statusOption.icon.options.iconURL));\n      //if(statusOption.icon.options.iconUrl !== statusOption.icon.options.iconURL) {\n\n      marker.setIcon(statusOption.icon); //}\n      // update marker position and angle directly\n\n      let angle = node.get('record').heading; //angle /= 2;\n\n      if (record.constructor.modelName === 'vehicle') {\n        angle /= 2;\n        marker.setRotationAngle(angle);\n      }\n\n      marker.setZIndexOffset(1000); ////console.log('!(parseFloat(marker._latlng.lat) === parseFloat(lat)) ',!(parseFloat(marker._latlng.lat) === parseFloat(lat)));\n      // if(!(parseFloat(marker._latlng.lat) === parseFloat(lat)))  {\n\n      if (record.constructor.modelName === 'vehicle') {\n        marker.setLatLng([lat, lng]);\n      }\n\n      if (isMCG) {\n        if (record.constructor.modelName === 'vehicle') {\n          MCGVehicles.refreshClusters(marker);\n        } else {\n          MCGTrips.refreshClusters(marker);\n        }\n      } // }\n\n\n      marker.on(\"mouseover\", function () {\n        Ember.$('.leaflet-mouse-marker').css('cursor', 'crosshair');\n      });\n      marker.on(\"mouseout\", function () {\n        Ember.$('.leaflet-mouse-marker').css('cursor', '');\n      });\n      marker.bindPopup(label, {\n        closeButton: false\n      });\n      this.bindMouseEvents(marker);\n      marker.setOpacity(opacity);\n\n      marker._popup.setContent(label);\n\n      marker.setTooltipContent(label);\n    },\n\n    removeMarkerFor(node) {\n      //console.log('inside removeMarkerFor',node);\n      const marker = node.get('marker');\n      const record = node.get('record');\n      const MCGTrips = node.get('MCGTrips');\n      const MCGVehicles = node.get('MCGVehicles');\n\n      if (marker) {\n        if (record.constructor.modelName === 'vehicle') {\n          MCGVehicles.removeLayer(marker);\n        } else {\n          MCGTrips.removeLayer(marker);\n        }\n\n        marker.remove();\n        node.set('marker', null);\n      }\n    },\n\n    _getLayerStyleSuffix(record) {\n      let suffix = '';\n\n      if (record.constructor.modelName === 'vehicle') {\n        suffix = 'vehicle';\n      }\n\n      return suffix;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/data-joins/polygon\", [\"exports\", \"adept-iq/pods/components/iq-widgets/map-widget/data-joins/base\", \"adept-iq/pods/components/iq-widgets/map-widget/config/polygon\", \"lodash\", \"tomtom\"], function (_exports, _base, _polygon, _lodash, _tomtom) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    enter(node) {\n      const points = node.get('points');\n      if (Ember.isEmpty(points)) return;\n      this.createPolygonFor(node);\n    },\n\n    update(node) {\n      const points = node.get('points');\n      const polygon = node.get('polygon');\n\n      if (Ember.isEmpty(points)) {\n        if (polygon) {\n          this.removePolygonFor(node);\n        }\n\n        return;\n      }\n\n      if (!polygon) {\n        this.createPolygonFor(node);\n      }\n\n      this.updatePolygonFor(node);\n    },\n\n    exit(node) {\n      if (node.get('polygon')) {\n        this.removePolygonFor(node);\n      }\n    },\n\n    createPolygonFor(node) {\n      const label = node.get('label');\n      const record = node.get('record');\n      let style = node.get('style');\n      const parentLabel = node.get('parentLabel');\n\n      if (record.get('style') !== undefined && record.get('style')) {\n        style = record.get('style');\n      }\n\n      const defaultOptions = _polygon.default[style] || {};\n      const nodeOptions = node.get('options') || {};\n      const modelName = record.constructor.modelName;\n\n      const options = _lodash.default.merge(defaultOptions, nodeOptions, {\n        label,\n        opacity: node.get('opacity'),\n        // for active context clicks\n        isActive: node.get('isActive'),\n        isTraversal: node.get('isTraversal'),\n        modelId: record.get('id'),\n        modelName\n      });\n\n      const points = [node.get('points')];\n\n      const polygon = _tomtom.default.L.polygon(points, options);\n\n      polygon.setStyle(style);\n      this.bindMouseEvents(polygon);\n      node.set('polygon', polygon);\n      const map = this.get('map');\n      polygon.addTo(map);\n      const parentLabelFormatted = '<table  style=\"position:relative;\"><tr></tr><tr>' + '<td rowspan=\"2\" style=\"font-weight: bold; font-size: 2em;text-align: center;opacity:0.4;\">' + parentLabel + '</td><td rowspan=\"2\">&nbsp;</td><<td rowspan=\"2\">' + label + '</td></tr></table>'; //polygon.bindPopup(label, { closeButton: false });\n\n      polygon.bindTooltip(parentLabelFormatted, {\n        permanent: true,\n        direction: \"center\",\n        opacity: 0.4\n      }).openTooltip();\n    },\n\n    updatePolygonFor(node) {\n      const opacity = node.get('opacity');\n      const polygon = node.get('polygon');\n\n      if (polygon) {\n        const label = node.get('label');\n        const parentLabel = node.get('parentLabel');\n        let style = node.get('style');\n        const record = node.get('record');\n\n        if (record.get('style') !== undefined && record.get('style')) {\n          style = record.get('style');\n        }\n\n        const defaultOptions = _polygon.default[style] || {};\n        const nodeOptions = node.get('options') || {};\n        const modelName = record.constructor.modelName;\n\n        const options = _lodash.default.merge(defaultOptions, nodeOptions, {\n          label,\n          opacity: opacity,\n          // for active context clicks\n          isActive: node.get('isActive'),\n          isTraversal: node.get('isTraversal'),\n          modelId: record.get('id'),\n          modelName\n        });\n\n        polygon.setStyle(options);\n        this.bindMouseEvents(polygon);\n        const parentLabelFormatted = '<table  style=\"position:relative;\"><tr></tr><tr>' + '<td rowspan=\"2\" style=\"font-weight: bold; font-size: 2em;text-align: center;\">' + parentLabel + '</td><td rowspan=\"2\">&nbsp;</td><td rowspan=\"2\">' + label + '</td></tr></table>';\n        polygon.setTooltipContent(parentLabelFormatted);\n      }\n    },\n\n    removePolygonFor(node) {\n      const polygon = node.get('polygon');\n\n      if (polygon) {\n        polygon.remove();\n        node.set('polygon', null);\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/data-joins/polyline\", [\"exports\", \"adept-iq/pods/components/iq-widgets/map-widget/data-joins/base\", \"tomtom\", \"adept-iq/pods/components/iq-widgets/map-widget/config/polyline\", \"adept-iq/pods/components/iq-widgets/map-widget/config/arrow\", \"lodash\"], function (_exports, _base, _tomtom, _polyline, _arrow, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  // pixel distance from stop\n  const ARROW_OFFSET = 7;\n\n  var _default = _base.default.extend({\n    enter(node) {\n      let points = node.get('points');\n      if (Ember.isEmpty(points)) return;\n      this.createPolylineFor(node);\n    },\n\n    update(node) {\n      let points = node.get('points');\n      let polyline = node.get('polyline');\n\n      if (Ember.isEmpty(points)) {\n        if (polyline) {\n          this.removePolylineFor(node);\n        }\n\n        return;\n      }\n\n      if (!polyline) {\n        this.createPolylineFor(node);\n      }\n\n      this.updatePolylineFor(node);\n    },\n\n    exit(node) {\n      if (node.get('polyline')) {\n        this.removePolylineFor(node);\n      }\n    },\n\n    createPolylineFor(node) {\n      let label = node.get('label');\n      let record = node.get('record');\n      let style = node.get('style');\n      let defaultOptions = _polyline.default[style] || {};\n      let nodeOptions = node.get('options') || {};\n      let modelName = record.constructor.modelName;\n\n      let options = _lodash.default.merge(defaultOptions, nodeOptions, {\n        label,\n        opacity: node.get('opacity'),\n        // for active context clicks\n        isActive: node.get('isActive'),\n        isTraversal: node.get('isTraversal'),\n        modelId: record.get('id'),\n        modelName\n      });\n\n      let points = node.get('points');\n\n      let polyline = _tomtom.default.L.polyline(points, options);\n\n      polyline.bindPopup(label, {\n        closeButton: false\n      });\n      this.bindMouseEvents(polyline);\n      node.set('polyline', polyline);\n      let map = this.get('map');\n      polyline.addTo(map);\n      let arrowStyle = node.get('arrowStyle');\n\n      if (arrowStyle && points.length > 1) {\n        // we actually reverse points and draw the head of the arrow at the tail;\n        // this allows the offset to be set correctly in pixels\n        let arrowPoints = points.slice(points.length - 2, points.length);\n        arrowPoints.reverse();\n        let arrow = L.polylineDecorator(arrowPoints, {\n          patterns: [{\n            offset: node.get('stopsIsVisible') ? ARROW_OFFSET : 0,\n            repeat: 0,\n            symbol: L.Symbol.arrowHead({\n              headAngle: -290,\n              // flips arrow around so it looks right\n              pixelSize: 8,\n              polygon: false,\n              pathOptions: {\n                weight: 2,\n                stroke: true,\n                color: _arrow.default[arrowStyle].color,\n                opacity: options.opacity\n              }\n            })\n          }]\n        });\n        polyline.setStyle({\n          color: _arrow.default[arrowStyle].color\n        });\n        arrow.addTo(map);\n        node.set('arrow', arrow);\n      }\n    },\n\n    updatePolylineFor(node) {\n      let opacity = node.get('opacity');\n      let polyline = node.get('polyline');\n\n      if (polyline) {\n        let points = node.get('points');\n        let label = node.get('label');\n        let style = node.get('style');\n        let defaultOptions = _polyline.default[style] || {};\n        let nodeOptions = node.get('options') || {};\n\n        let options = _lodash.default.merge(defaultOptions, nodeOptions, {\n          opacity\n        }); // polyline does not have `setOpacity` method\n\n\n        polyline.setLatLngs(points);\n        polyline.setStyle(options);\n\n        polyline._popup.setContent(label);\n\n        polyline.setTooltipContent(label);\n        let arrow = node.get('arrow');\n\n        if (arrow) {\n          let arrowStyle = node.get('arrowStyle');\n          let offset = node.get('stopsIsVisible') ? ARROW_OFFSET : 0; // this enables otp colour changes\n\n          arrow.setStyle({\n            color: _arrow.default[arrowStyle].color,\n            opacity: options.opacity\n          }); // also color line to match\n\n          polyline.setStyle({\n            color: _arrow.default[arrowStyle].color\n          }); // decorator internals don't get updated permanently by `setStyle`\n\n          arrow.options.patterns.forEach(pattern => {\n            pattern.symbol.options.pathOptions.opacity = opacity;\n            pattern.offset = offset;\n          }); // have to dig really deep into the internals to get offset to refresh\n\n          arrow._patterns.forEach(pattern => {\n            pattern.offset.value = offset;\n          }); // ensure that arrow is redrawn when offset changes\n\n\n          arrow.redraw();\n        }\n      }\n    },\n\n    removePolylineFor(node) {\n      let polyline = node.get('polyline');\n      let arrow = node.get('arrow');\n\n      if (arrow) {\n        arrow.remove();\n        node.set('arrow', null);\n      }\n\n      if (polyline) {\n        polyline.remove();\n        node.set('polyline', null);\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/data-joins/shape\", [\"exports\", \"adept-iq/pods/components/iq-widgets/map-widget/data-joins/base\", \"adept-iq/pods/components/iq-widgets/map-widget/config/circle\", \"adept-iq/pods/components/iq-widgets/map-widget/config/polygon\", \"lodash\", \"tomtom\"], function (_exports, _base, _circle, _polygon, _lodash, _tomtom) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _base.default.extend({\n    enter(node) {\n      const points = node.get('points');\n      if (Ember.isEmpty(points)) return;\n      this.createShapeFor(node);\n    },\n\n    update(node) {\n      const points = node.get('points');\n      const shape = node.get('shape');\n\n      if (Ember.isEmpty(points)) {\n        if (shape) {\n          this.removeShapeFor(node);\n        }\n\n        return;\n      }\n\n      if (!shape) {\n        this.createShapeFor(node);\n      }\n\n      this.updateShapeFor(node);\n    },\n\n    exit(node) {\n      if (node.get('shape')) {\n        this.removeShapeFor(node);\n      }\n    },\n\n    createShapeFor(node) {\n      console.log('inside createShapeFor ');\n      let label = node.get('label');\n      const record = node.get('record');\n      let style = node.get('style');\n      const parentLabel = node.get('parentLabel');\n      let points = node.get('points');\n      const radius = node.get('radius');\n      const noOfPoints = node.get('noOfPoints');\n\n      if (record.get('style') !== undefined && record.get('style')) {\n        style = record.get('style');\n      }\n\n      let defaultOptions;\n      const nodeOptions = node.get('options') || {};\n      const modelName = record.constructor.modelName;\n      let shape;\n      label = '';\n      let parentLabelFormatted = '<table  style=\"position:relative;\"><tr></tr><tr>' + '<td rowspan=\"2\" style=\"font-weight: bold; font-size: 2em;text-align: center;\">' + parentLabel + '</td><td rowspan=\"2\">&nbsp;</td><td rowspan=\"2\">' + label + '</td></tr></table>';\n\n      if (noOfPoints === 1) {\n        defaultOptions = _circle.default[style] || {};\n\n        let options = _lodash.default.merge(defaultOptions, nodeOptions, {\n          label,\n          opacity: node.get('opacity'),\n          // for active context clicks\n          isActive: node.get('isActive'),\n          isTraversal: node.get('isTraversal'),\n          modelId: record.get('id'),\n          modelName\n        });\n\n        shape = _tomtom.default.L.circle([points.lat, points.lng], radius, options);\n        parentLabelFormatted = '<table  style=\"position:relative;\"><tr></tr><tr>' + '<td rowspan=\"2\" style=\"font-weight: bold; font-size: 0.7em;text-align: center;\">' + parentLabel + '</td><td rowspan=\"2\">&nbsp;</td><td rowspan=\"2\">' + label + '</td></tr></table>';\n      } else {\n        defaultOptions = _polygon.default[style] || {};\n        points = [node.get('points')];\n\n        let options = _lodash.default.merge(defaultOptions, nodeOptions, {\n          label,\n          opacity: node.get('opacity'),\n          // for active context clicks\n          isActive: node.get('isActive'),\n          isTraversal: node.get('isTraversal'),\n          modelId: record.get('id'),\n          modelName\n        });\n\n        shape = _tomtom.default.L.polygon(points, options);\n      }\n\n      shape.setStyle(style);\n      this.bindMouseEvents(shape);\n      node.set('shape', shape);\n      const map = this.get('map');\n      shape.addTo(map); //shape.bindPopup(label, { closeButton: false });\n\n      shape.bindTooltip(parentLabelFormatted, {\n        permanent: true,\n        direction: \"center\",\n        opacity: 0.4\n      }).openTooltip();\n    },\n\n    updateShapeFor(node) {\n      const opacity = node.get('opacity');\n      const shape = node.get('shape');\n\n      if (shape) {\n        let label = node.get('label');\n        const parentLabel = node.get('parentLabel');\n        let style = node.get('style');\n        const record = node.get('record');\n        const noOfPoints = node.get('noOfPoints');\n\n        if (record.get('style') !== undefined && record.get('style')) {\n          style = record.get('style');\n        }\n\n        label = '';\n        let parentLabelFormatted = '<table  style=\"position:relative;\"><tr></tr><tr>' + '<td rowspan=\"2\" style=\"font-weight: bold; font-size: 2em;text-align: center;\">' + parentLabel + '</td><td rowspan=\"2\">&nbsp;</td><td rowspan=\"2\">' + label + '</td></tr></table>';\n        let defaultOptions;\n\n        if (noOfPoints === 1) {\n          defaultOptions = _circle.default[style] || {};\n          parentLabelFormatted = '<table  style=\"position:relative;\"><tr></tr><tr>' + '<td rowspan=\"2\" style=\"font-weight: bold; font-size: 0.7em;text-align: center;\">' + parentLabel + '</td><td rowspan=\"2\">&nbsp;</td><td rowspan=\"2\">' + label + '</td></tr></table>';\n        } else {\n          defaultOptions = _polygon.default[style] || {};\n        }\n\n        const nodeOptions = node.get('options') || {};\n        const modelName = record.constructor.modelName;\n\n        const options = _lodash.default.merge(defaultOptions, nodeOptions, {\n          label,\n          opacity: opacity,\n          // for active context clicks\n          isActive: node.get('isActive'),\n          isTraversal: node.get('isTraversal'),\n          modelId: record.get('id'),\n          modelName\n        });\n\n        shape.setStyle(options);\n        this.bindMouseEvents(shape);\n        shape.setTooltipContent(parentLabelFormatted);\n      }\n    },\n\n    removeShapeFor(node) {\n      const shape = node.get('shape');\n\n      if (shape) {\n        shape.remove();\n        node.set('shape', null);\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/decorations/arrow\", [\"exports\", \"tomtom\"], function (_exports, _tomtom) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _default;\n\n  function toRadians(angle) {\n    return angle / 180 * Math.PI;\n  }\n\n  function toDegrees(angle) {\n    return angle / Math.PI * 180;\n  } // SOURCE: https://www.igismap.com/formula-to-find-bearing-or-heading-angle-between-two-points-latitude-longitude/\n\n\n  function getBearing(points) {\n    const X = Math.cos(toRadians(points[1][0])) * Math.sin(toRadians(points[1][1] - points[0][1]));\n    const Y = Math.cos(toRadians(points[0][0])) * Math.sin(toRadians(points[1][0])) - Math.sin(toRadians(points[0][0])) * Math.cos(toRadians(points[1][0])) * Math.cos(toRadians(points[1][1] - points[0][1]));\n    const bearing = toDegrees(Math.atan2(X, Y));\n    return bearing;\n  }\n\n  function _default(points, arrowOptions) {\n    const arrow = _tomtom.default.L.marker(points[1], arrowOptions); // relies on `vendor/leaflet/leaflet.rotatedMarker.js`\n\n\n    arrow.setRotationAngle(getBearing(points) - 90);\n    return arrow;\n  }\n});","define(\"adept-iq/pods/components/iq-widgets/map-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"v45jlwQE\",\n    \"block\": \"{\\\"symbols\\\":[\\\"dropdown\\\",\\\"option\\\"],\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"fullMode\\\"]]],null,{\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"map-widget-header\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isSearchEnabled\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"map-widget-search-box\\\"],[11,\\\"placeholder\\\",\\\"Search...\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"searchText\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSearchTextChange\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"h5\\\"],[11,\\\"class\\\",\\\"map-widget-title\\\"],[9],[1,[23,[\\\"config\\\",\\\"title\\\"]],false],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"map-widget-controls\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isSearchEnabled\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"map-widget-button\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-times-circle\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n      \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onRemoveSearchClick\\\"]],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n    \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"map-widget-button initial-focus-control\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isSearchEnabled\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-search active-button\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-search\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"    \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onSearchButtonClick\\\"]],[10],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"check-box\\\"],[12,\\\"disabled\\\",[27,\\\"not\\\",[[23,[\\\"activeContext\\\",\\\"checkedItems\\\",\\\"length\\\"]]],null]],[12,\\\"checked\\\",[21,\\\"clearButtonEnabled\\\"]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onClearButtonClick\\\"],null]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"map-widget-button\\\"],[11,\\\"data-test-map-filter-button\\\",\\\"\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"i\\\"],[12,\\\"class\\\",[28,[\\\"fa fa-filter \\\",[27,\\\"if\\\",[[23,[\\\"isFiltered\\\"]],\\\"active-button\\\"],null]]]],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onFilterButtonClick\\\"]],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"maximizer\\\",\\\"maximizedWidget\\\"]],[23,[\\\"widget\\\"]]],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"map-widget-button minimize-button\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-times\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n        \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onExitMaximizedClick\\\"]],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onHeaderDoubleClick\\\"],[[\\\"on\\\"],[\\\"doubleClick\\\"]]],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"map-widget-body\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[12,\\\"id\\\",[21,\\\"mapElementId\\\"]],[11,\\\"class\\\",\\\"tomtom-map\\\"],[9],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"basic-dropdown\\\",null,[[\\\"calculatePosition\\\",\\\"onInit\\\"],[[23,[\\\"contextMenuPosition\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"setContextMenu\\\"],null]]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"trigger\\\"]],\\\"expected `dropdown.trigger` to be a contextual component but found a string. Did you mean `(component dropdown.trigger)`? ('adept-iq/pods/components/iq-widgets/map-widget/template.hbs' @ L55:C5) \\\"],null]],[[\\\"class\\\"],[\\\"this-trigger\\\"]],{\\\"statements\\\":[[0,\\\"     \\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"content\\\"]],\\\"expected `dropdown.content` to be a contextual component but found a string. Did you mean `(component dropdown.content)`? ('adept-iq/pods/components/iq-widgets/map-widget/template.hbs' @ L59:C5) \\\"],null]],null,{\\\"statements\\\":[[4,\\\"each\\\",[[23,[\\\"contextMenuOptions\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"div\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onContextMenuOptionClick\\\",[22,2,[]]],null]],[9],[0,\\\"\\\\n        \\\"],[1,[22,2,[\\\"name\\\"]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/map-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/message-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/message-widget/config\"], function (_exports, _component, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['message-widget'],\n    store: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.set('tableActions', [{\n        name: 'Show All',\n        action: () => {\n          let rows = this.get('table.rows');\n          rows.forEach(r => {\n            r.set('hidden', false);\n          });\n        }\n      }]);\n      this.set('bulkActions', [{\n        name: 'Activity Log',\n        action: () =>\n        /* model */\n        {}\n      }]);\n      this.set('respondAction', {\n        name: 'Respond',\n        action: message => {\n          let workspace = this.get('workspace');\n          let draftMessage = this.get('store').createRecord('tm-canned-message', {\n            replyToMsgId: message.get('messageNr'),\n            driver: message.get('driver'),\n            driverId: message.get('driverId'),\n            vehicleId: message.get('vehicleId'),\n            routeId: message.get('routeId')\n          });\n          workspace.pushState('addNewMessage', {\n            draftMessages: [draftMessage]\n          });\n          message.set('readTime', new Date());\n          return message.save();\n        }\n      });\n      this.set('hideAction', {\n        name: 'Hide',\n        action: model => {\n          let row = this.get('table.rows').findBy('id', model.get('id'));\n          row.set('hidden', true);\n          model.set('readTime', new Date());\n          return model.save();\n        }\n      });\n      this.set('resendAction', {\n        name: 'Resend',\n        action: model => {\n          // TODO: how do we re-send?\n          model.set('readTime', new Date());\n          return model.save();\n        }\n      });\n    },\n\n    singleActions: Ember.computed('table.rows.@each.{selected,status}', function () {\n      let respondAction = this.get('respondAction');\n      let hideAction = this.get('hideAction');\n      let resendAction = this.get('resendAction');\n      let row = this.get('table.rows').findBy('selected', true);\n      if (!row) return []; // TODO: extract statuses to constants\n\n      switch (row.get('status')) {\n        case 'Received':\n          return [respondAction, hideAction];\n\n        case 'Sending':\n        case 'Sent':\n          return [hideAction];\n\n        case 'Failed':\n          return [resendAction];\n\n        default:\n          return [];\n      }\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/message-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/message-widget',\n    rowComponent: 'table/rows/action-row',\n    modelName: 'tm-canned-message',\n    title: 'Messages',\n    defaultSortId: 'name',\n    defaultSortAsc: true,\n    columns: [{\n      index: 4,\n      id: 'date',\n      type: 'text',\n      label: 'Date',\n      valuePath: 'createdTime',\n      editable: false,\n      hidden: false,\n      options: ['Received', 'Sent', 'Sending', 'Failed'],\n      allowMultiple: false,\n      defaultWidth: 60\n    }, {\n      id: 'time',\n      index: 3,\n      type: 'text',\n      label: 'Time',\n      valuePath: 'createdTime',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 60\n    }, {\n      id: 'status',\n      index: 2,\n      type: 'string',\n      label: 'Status',\n      valuePath: 'status',\n      editable: false,\n      hidden: false,\n      allowMultiple: false\n    }, {\n      id: 'message',\n      index: 5,\n      type: 'text',\n      label: 'Message',\n      valuePath: 'body',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 145\n    }, {\n      id: 'vehicleId',\n      index: 9,\n      type: 'text',\n      label: 'Vehicle Id',\n      valuePath: 'vehicleId',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 40\n    }, {\n      id: 'lastName',\n      index: 7,\n      type: 'text',\n      label: 'Driver Last Name',\n      valuePath: 'driver.lastName',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 75\n    }, {\n      id: 'firstName',\n      index: 8,\n      type: 'text',\n      label: 'Driver First Name',\n      valuePath: 'driver.firstName',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 60\n    }, {\n      id: 'driverId',\n      index: 6,\n      type: 'uuid',\n      label: 'Driver ID',\n      valuePath: 'driver.id',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 40\n    }, {\n      id: 'routeName',\n      index: 10,\n      type: 'text',\n      label: 'Route Name',\n      valuePath: 'route.name',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 40\n    }, {\n      index: 1,\n      id: 'read',\n      type: 'text',\n      label: 'Read',\n      valuePath: 'readString',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 70\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/metrics-column-widget/component\", [\"exports\", \"adept-iq/pods/components/generic-widgets/base-widget/component\", \"ember-light-table\"], function (_exports, _component, _emberLightTable) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  const fromPixels = x => parseInt(x.split('px')[0]);\n\n  var _default = _component.default.extend({\n    classNames: ['analytics-widget', 'metrics-column-widget'],\n    table: null,\n    dataType: null,\n    dataTypes: Ember.computed('', function () {\n      return [\"Schedules\", \"Routes\", \"Trips\", \"Stops\", \"Passengers\", \"Vehicles\", \"Users\", \"Drivers\"];\n    }),\n    model: Ember.computed(function () {\n      return [{\n        'sample': \"Captain\",\n        'firstName': \"Banana\",\n        'lastName': \"Sundae\"\n      }, {\n        'sample': \"Mr.\",\n        'firstName': \"Icecream\",\n        'lastName': \"Sandwich\"\n      }];\n    }),\n    columns: Ember.computed(function () {\n      return [{\n        label: 'Label name',\n        valuePath: 'sample',\n        width: '100px',\n        sortable: false,\n        cellComponent: 'table/cells/base-cell',\n        resizable: true\n      }, {\n        label: 'First Name',\n        valuePath: 'firstName',\n        width: '150px',\n        cellComponent: 'table/cells/base-cell',\n        resizable: true\n      }, {\n        label: 'Last Name',\n        valuePath: 'lastName',\n        width: '150px',\n        cellComponent: 'table/cells/base-cell',\n        resizable: true\n      }, {\n        id: 'spacer',\n        width: '100%',\n        sortable: false,\n        resizable: false\n      }];\n    }),\n\n    init() {\n      this._super(...arguments);\n\n      let table = new _emberLightTable.default(this.get('columns'), this.get('model'), {\n        enableSync: false\n      });\n      this.set('table', table);\n    },\n\n    actions: {\n      chooseDataType(chosenType) {\n        this.set('dataType', chosenType);\n      },\n\n      onColumnResize(column, pixels) {\n        let id = column.get('id');\n        let columns = {};\n        columns[id] = {\n          width: fromPixels(pixels)\n        };\n        this.get('widget').mergeState({\n          columns\n        });\n        Ember.run.scheduleOnce('afterRender', this, 'resizeBody');\n      },\n\n      onFilterButtonClick() {\n        let workspace = this.get('workspace');\n        let topState = workspace.get('topState');\n\n        while (topState === 'metricsColumnWidget') {\n          workspace.popState();\n          topState = workspace.get('topState');\n        }\n\n        let displayName = \"Metrics Column Analytics\";\n        workspace.pushState('metricsColumnWidget', {\n          displayName\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/metrics-column-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"pwYwJd2u\",\n    \"block\": \"{\\\"symbols\\\":[\\\"t\\\",\\\"body\\\",\\\"dataTypeOption\\\"],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"analytics-widget-header metrics-column-header\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"h5\\\"],[11,\\\"class\\\",\\\"analytics-widget-title\\\"],[9],[0,\\\"Metrics for:\\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"onchange\\\"],[[23,[\\\"dataTypes\\\"]],[23,[\\\"dataType\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"chooseDataType\\\"],null]]],{\\\"statements\\\":[[0,\\\"      \\\"],[1,[22,3,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"  \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"metrics-column-button\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"i\\\"],[12,\\\"class\\\",[28,[\\\"fa fa-filter \\\",[27,\\\"if\\\",[[23,[\\\"isFiltered\\\"]],\\\"active-button\\\"],null]]]],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onFilterButtonClick\\\"]],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metrics-metadata\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"table\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"th\\\"],[9],[0,\\\"Schedule Name\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"th\\\"],[9],[0,\\\"Start\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"th\\\"],[9],[0,\\\"End\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"th\\\"],[9],[0,\\\"Status\\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[0,\\\"2018-02-09\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[0,\\\"February 8, 2018 9:00 PM\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[0,\\\"February 9, 2018 8:59 PM\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[0,\\\"SCHEDULED\\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"analytics-widget-body metric-column-widget-body\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"light-table\\\",[[23,[\\\"table\\\"]]],null,{\\\"statements\\\":[[0,\\\"\\\\n    \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"head\\\"]],\\\"expected `t.head` to be a contextual component but found a string. Did you mean `(component t.head)`? ('adept-iq/pods/components/iq-widgets/metrics-column-widget/template.hbs' @ L34:C6) \\\"],null]],[[\\\"onColumnResized\\\",\\\"fixed\\\",\\\"resizeOnDrag\\\"],[[27,\\\"action\\\",[[22,0,[]],\\\"onColumnResize\\\"],null],true,true]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"body\\\"]],\\\"expected `t.body` to be a contextual component but found a string. Did you mean `(component t.body)`? ('adept-iq/pods/components/iq-widgets/metrics-column-widget/template.hbs' @ L40:C7) \\\"],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isLoading\\\"]]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,2,[\\\"loader\\\"]],\\\"expected `body.loader` to be a contextual component but found a string. Did you mean `(component body.loader)`? ('adept-iq/pods/components/iq-widgets/metrics-column-widget/template.hbs' @ L42:C11) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"          Loading...\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"table\\\",\\\"isEmpty\\\"]]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,2,[\\\"no-data\\\"]],\\\"expected `body.no-data` to be a contextual component but found a string. Did you mean `(component body.no-data)`? ('adept-iq/pods/components/iq-widgets/metrics-column-widget/template.hbs' @ L48:C11) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"          No users found.\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[1]},null],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/metrics-column-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/new-switch-trip-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/trip-form-widget/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const RESIZE_CURSOR_OFFSET = -2;\n  const MAX_WIDTH = 800;\n\n  var _default = _component.default.extend({\n    classNames: ['new-switch-trip-form-widget'],\n    actions: {\n      resizeModal(position) {\n        let windowWidth = Ember.$(window).width(); // Resize cursor offset ensures cursor is centered on handle.\n\n        let modalWidth = windowWidth - position.x + RESIZE_CURSOR_OFFSET;\n        Ember.run.scheduleOnce('afterRender', () => {\n          if (windowWidth - modalWidth >= MAX_WIDTH) {\n            Ember.$('.edit-widget-modal').css('right', `${windowWidth - MAX_WIDTH}px`);\n          } else {\n            Ember.$('.edit-widget-modal').css('right', `${modalWidth}px`);\n          }\n        });\n      },\n\n      closeWidget() {\n        this.toggleProperty('editmodalcontext.showWidgetModal');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/new-trip-fixform-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/trip-form-widget/component\", \"adept-iq/utils/populate-new-trip\", \"adept-iq/utils/populate-account\", \"adept-iq/config/api-urls\", \"adept-iq/pods/components/iq-widgets/new-trip-fixform-widget/config\"], function (_exports, _component, _component2, _populateNewTrip, _populateAccount, _apiUrls, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const RESIZE_CURSOR_OFFSET = -2;\n  const MAX_WIDTH = 800;\n  const RESIZE_DEBOUNCE_TIME = 250;\n\n  var _default = _component2.default.extend({\n    classNames: ['new-trip-fixform-widget'],\n    editableSections: _config.default.editableSections,\n    router: Ember.inject.service('router'),\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    trip: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    store: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    session: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n\n    init() {\n      console.log('new-trip-fixform-widget', this.get('editModal.showTripFormPopup')); // this.set('editModal.showTripFormPopup', false);\n\n      this._super(...arguments);\n\n      this.set('editableRecords', []);\n      this.set('undoHistory', []);\n      this.set('errors', []);\n      let newtrip = (0, _populateNewTrip.default)(this.get('trip'), this.get('store'));\n      (0, _populateAccount.default)(newtrip, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), newtrip.acctCardNr, true);\n      this.get('editableRecords').pushObject(newtrip);\n      let newTripComponent = this.get('newTripComponent');\n      this.get('editModal').open(newTripComponent, [newtrip], this.get('saveTripRecordFunction').bind(this));\n    },\n\n    actions: {\n      resizeModal(position) {\n        let windowWidth = $(window).width(); // Resize cursor offset ensures cursor is centered on handle.\n\n        let modalWidth = windowWidth - position.x + RESIZE_CURSOR_OFFSET;\n        run.scheduleOnce('afterRender', () => {\n          if (windowWidth - modalWidth >= MAX_WIDTH) {\n            $('.edit-widget-modal').css('right', `${windowWidth - MAX_WIDTH}px`);\n          } else {\n            $('.edit-widget-modal').css('right', `${modalWidth}px`);\n          }\n        });\n      },\n\n      closeWidget() {\n        this.toggleProperty('editmodalcontext.showWidgetModal');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/new-trip-fixform-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'id',\n        type: 'text',\n        label: 'ID',\n        valuePath: 'id',\n        editable: false\n      }, {\n        id: 'lastId',\n        type: 'text',\n        label: 'ID',\n        valuePath: 'lastId',\n        editable: false\n      }]\n    }, {\n      title: 'Client Detail',\n      fields: [{\n        id: 'Tel',\n        type: 'phone-model',\n        label: 'Tel',\n        accessKey: 't',\n        valuePath: 'passengers.0.phone1.number',\n        extra: {\n          optionModelName: 'rider-profile',\n          optionSearchPath: 'attributes/phone1/number',\n          optionSearchEnabled: false,\n          optionWidgetModel: 'callLines',\n          optionModelWidgetPath: 'rider-profile-widget'\n        }\n      }, {\n        id: 'Name',\n        type: 'text',\n        label: 'Name',\n        accessKey: 'N',\n        valuePath: 'passengers.0.firstName',\n        editable: true\n      }]\n    }, {\n      title: 'Trip Details',\n      fields: [{\n        id: 'addresses',\n        type: 'locations',\n        label: '',\n        valuePath: 'stopPoints',\n        modelName: 'tm-address',\n        isMultiType: true,\n        extra: {\n          addressTypePath: 'passengerEvents.0.type',\n          descriptionPath: 'address.description',\n          unitPath: 'address.unitNr',\n          streetNrPath: 'address.streetNr',\n          streetNamePath: 'address.streetName',\n          localityPath: 'address.region',\n          regionPath: 'address.county',\n          subRegionPath: 'address.state',\n          postalCodePath: 'address.postalCode',\n          countryPath: 'address.country',\n          defaultOptionsPath: 'callerTrips',\n          pickup: {\n            label: 'Pickup',\n            accessKey: 'p'\n          },\n          dropoff: {\n            label: 'Destination',\n            accessKey: 'e'\n          },\n          swipeAddressAccessKey: 'w'\n        }\n      }, {\n        id: 'requestTime',\n        type: 'datetimeflatpickr',\n        label: 'Date Time',\n        accessKey: 'm',\n        valuePath: 'stopPoints.0.passengerEvents.0.time',\n        editable: true,\n        hidden: false,\n        format: 'YYYY-MM-DD hh:mm A',\n        defaultWidth: 50\n      }]\n    }, {\n      title: 'Account',\n      align: 'right',\n      fields: [{\n        id: 'Account',\n        type: 'account-model',\n        label: 'Account',\n        valuePath: 'acctCardNr',\n        accessKey: 'c',\n        extra: {\n          parentValuePath: 'account',\n          optionModelName: 'rider-profile',\n          optionSearchPath: 'attributes/account/accountId',\n          optionSearchEnabled: false,\n          optionWidgetModel: 'callLines',\n          optionModelWidgetPath: 'rider-profile-widget'\n        }\n      },\n      /*{\n        id: 'accountPickupTrips',\n        type: 'buttonwithpopup',\n        label: 'Account Pickups',\n        accessKey: 'k',\n        extra: {\n          isButtonEnabledPath: 'isAccountPickups',\n          widgetModelDataPath: 'editmodelcontext.accountTrips',\n          modelWidgetPath:  'address-widget'\n        }\n      },\n      {\n        id: 'accountFixedPriceTrips',\n        type: 'buttonwithpopup',\n        label: 'Fixed Prices',\n        accessKey: 'x',\n        extra: {\n          isButtonEnabledPath: 'isAccountFixedPriceTrips',\n          widgetModelDataPath: 'editmodelcontext.accountFixedPriceTrips',\n          modelWidgetPath:  'fixed-price-trip-widget'\n        }\n      },*/\n      {\n        id: 'reference',\n        type: 'text',\n        accessKey: 'R',\n        label: 'Reference#',\n        valuePath: 'reference',\n        editable: true\n      }, {\n        id: 'fare',\n        type: 'number',\n        label: 'Fixed Price',\n        accessKey: 'F',\n        valuePath: 'prices.0.fixed',\n        editable: true\n      }]\n    }, {\n      title: 'Travel Needs',\n      align: 'right',\n      fields: [{\n        id: 'attributes',\n        type: 'multiselect',\n        label: '',\n        accessKey: 'a',\n        valuePath: 'attributes',\n        cellDesc: 'attributes',\n        hidden: false,\n        isMultiType: true,\n        extra: {\n          additionalValuePath: 'manualAttributes',\n          optionModelName: 'tm-common-operational-attribute',\n          optionSearchPath: 'name'\n        }\n      }]\n    }, {\n      title: 'Services',\n      align: 'right',\n      fields: [\n      /*{\n      id: 'taxis',\n      type: 'enum',\n      label: 'Taxis',\n      valuePath: 'taxis',\n      cellDesc: 'taxis',\n      accessKey: 'i',\n      editable: true,\n      hidden: false,\n      extra: {\n      options: [1, 2, 3, 4, 5],\n      optionSearchEnabled: false\n      },\n      allowMultiple: false\n      },\n      {\n      id: 'noOfpassenger',\n      type: 'enum',\n      label: 'Passenger',\n      valuePath: 'noOfpassenger',\n      cellDesc: 'noOfpassenger',\n      accessKey: 'g',\n      editable: true,\n      hidden: false,\n      extra: {\n      options: [1, 2, 3, 4, 5],\n      optionSearchEnabled: false\n      },\n      allowMultiple: false\n      },*/\n      {\n        id: 'callout',\n        type: 'radio',\n        label: 'Reminder',\n        valuePath: 'passengers.0.callout',\n        hidden: false,\n        extra: {\n          options: [\"call\", \"sms\"]\n        }\n      }]\n    }, {\n      title: 'Notes',\n      fields: [{\n        id: 'driverNotes',\n        type: 'text',\n        label: 'Driver',\n        multiLine: true,\n        accessKey: 'r',\n        valuePath: 'driverNotes',\n        placeholder: 'Driver Notes',\n        editable: true\n      }, {\n        id: 'driverNotesAutoPopulate',\n        type: 'text',\n        label: ' -',\n        valuePath: 'predefinedNotes.driverNotes',\n        editable: false\n      }, {\n        id: 'operatorNotes',\n        type: 'text',\n        label: 'Operator',\n        multiLine: true,\n        accessKey: 'o',\n        valuePath: 'operatorNotes',\n        editable: true\n      }, {\n        id: 'operatorNotesAutoPopulate',\n        type: 'text',\n        label: '- ',\n        valuePath: 'predefinedNotes.operatorNotes',\n        editable: false\n      }]\n    } //TODO - enabled when do subscription\n\n    /*, {\n      title: 'Subscription',\n      fields: [{\n        id: 'subscriptions',\n        type: 'subscriptions',\n        label: '',\n        valuePath: 'subscriptions.firstObject.recurrencePatterns',\n        modelName: 'subscription-recurence-pattern',\n        isMultiType: true,\n        extra: {\n           recurringPath: 'recurring',\n          dailyConfigPath: 'type',\n          selectedWOMPath: 'selectedWOM',\n          startDateTimePath: 'subscriptionStartDate',\n          endDateTimePath: 'subscriptionEndDate',\n          sundayPath: 'sunday',\n          mondayPath: 'monday',\n          tuesdayPath: 'tuesday',\n          wednesdayPath: 'wednesday',\n          thursdayPath: 'thursday',\n          fridayPath: 'friday',\n          saturdayPath: 'saturday',\n          excludeStartDateTimePath: 'exclusionStartDate',\n          excludeEndDateTimePath: 'exclusionEndDate',\n          maxOccurencesPath: 'subscriptionMaxOccurences',\n          separationCountPath: 'separationCount',\n          dayOfMonthPath: 'dayOfMonth',\n          useOptionRecord: true\n        }\n      }]\n    }*/\n    ]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/new-trip-fixform-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"qZwBP2KV\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"editModal\\\",\\\"editComponent\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editModal\\\",\\\"editComponent\\\"]],\\\"iq-widgets/activity-log-widget\\\"],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"editModal\\\",\\\"showActivityLog\\\"]]],null,{\\\"statements\\\":[[4,\\\"modal-dialog\\\",null,[[\\\"hasOverlay\\\"],[false]],{\\\"statements\\\":[[0,\\\"            \\\\n            \\\"],[1,[27,\\\"dashboard/modals/edit-form/resize-handle\\\",null,[[\\\"onResizeModal\\\"],[[27,\\\"action\\\",[[22,0,[]],\\\"resizeModal\\\"],null]]]],false],[0,\\\"\\\\n\\\\n            \\\"],[1,[27,\\\"component\\\",[[23,[\\\"editModal\\\",\\\"editComponent\\\"]]],[[\\\"widgetModelData\\\",\\\"showWidgetModal\\\"],[[23,[\\\"editmodalcontext\\\",\\\"widgetModelData\\\"]],[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"          \\\"],[1,[27,\\\"dashboard/modals/edit-form/resize-handle\\\",null,[[\\\"onResizeModal\\\"],[[27,\\\"action\\\",[[22,0,[]],\\\"resizeModal\\\"],null]]]],false],[0,\\\"\\\\n\\\\n          \\\"],[1,[27,\\\"component\\\",[[23,[\\\"editModal\\\",\\\"editComponent\\\"]]],[[\\\"editableRecords\\\"],[[23,[\\\"editableRecords\\\"]]]]],false],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]],true],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"modelWidgetPath\\\"]],\\\"search-trip-widget\\\"],null]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[7,\\\"div\\\"],[11,\\\"style\\\",\\\"position: absolute;top:400px;\\\\twidth: 100%;z-index: 1000;height:50%;padding:10px;\\\"],[9],[0,\\\"\\\\n            \\\\n                \\\"],[1,[27,\\\"iq-widgets/search-trip-widget\\\",null,[[\\\"widgetModelData\\\",\\\"currentRecord\\\",\\\"showWidgetModal\\\"],[[23,[\\\"editmodalcontext\\\",\\\"widgetModelData\\\"]],[23,[\\\"record\\\"]],[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]]]]],false],[0,\\\"\\\\n\\\\n              \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"editmodalcontext\\\",\\\"modelWidgetPath\\\"]],\\\"activity-log-widget\\\"],null]],null,{\\\"statements\\\":[[4,\\\"modal-dialog\\\",null,[[\\\"hasOverlay\\\"],[false]],{\\\"statements\\\":[[0,\\\"            \\\\n                \\\"],[1,[27,\\\"iq-widgets/activity-log-widget\\\",null,[[\\\"widgetModelData\\\",\\\"showWidgetModal\\\"],[[23,[\\\"editmodalcontext\\\",\\\"widgetModelData\\\"]],[23,[\\\"editmodalcontext\\\",\\\"showWidgetModal\\\"]]]]],false],[0,\\\"\\\\n\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"         \\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null],[0,\\\"   \\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/new-trip-fixform-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/new-trip-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/trip-form-widget/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const RESIZE_CURSOR_OFFSET = -2;\n  const MAX_WIDTH = 800;\n  const RESIZE_DEBOUNCE_TIME = 250;\n\n  var _default = _component.default.extend({\n    classNames: ['new-trip-form-widget'],\n    actions: {\n      resizeModal(position) {\n        let windowWidth = Ember.$(window).width(); // Resize cursor offset ensures cursor is centered on handle.\n\n        let modalWidth = windowWidth - position.x + RESIZE_CURSOR_OFFSET;\n        Ember.run.scheduleOnce('afterRender', () => {\n          if (windowWidth - modalWidth >= MAX_WIDTH) {\n            Ember.$('.edit-widget-modal').css('right', `${windowWidth - MAX_WIDTH}px`);\n          } else {\n            Ember.$('.edit-widget-modal').css('right', `${modalWidth}px`);\n          }\n        });\n      },\n\n      closeWidget() {\n        this.toggleProperty('editmodalcontext.showWidgetModal');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/no-show-reason-code/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/no-show-reason-code/config\"], function (_exports, _component, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/no-show-reason-code/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'vehicle',\n        type: 'text',\n        label: 'Vehicle',\n        valuePath: 'assignedVehicle.id',\n        editable: false\n      }]\n    }, {\n      title: 'Editable',\n      fields: [{\n        id: 'timestamp',\n        type: 'datetime',\n        label: 'Timestamp',\n        valuePath: 'timestamp'\n      }, {\n        id: 'odometer',\n        type: 'text',\n        label: 'Odometer',\n        valuePath: 'odometer'\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/noshow-event-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/noshow-event-form-widget/config\"], function (_exports, _component, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    editModal: Ember.inject.service(),\n\n    validateRecords() {\n      let valid = true; // let records = this.get('editableRecords');\n\n      this.set('editModal.errors', []);\n      return valid;\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        /*let lastUndoState = this.get('editModal.undoHistory').popObject();\n         if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n           records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n         }\n        else {\n          lastUndoState.forEach(({ record, properties }) => {\n            record.setProperties(properties);\n          });\n        }\n         this.set('isLastUndoStateCommitted', true);*/\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n        }\n      } // onCellValueChange(record, valuePath, value, options) {\n      //   if (valuePath === 'vehicles.firstObject.name') {\n      //     let vehicle = record.get('vehicles.firstObject');\n      //     record.vehicles.removeObject(vehicle);\n      //   }\n      //   else {\n      //     this.get('service').setRecordValue(record, valuePath, value, options);\n      //   }\n      // }\n\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/noshow-event-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'riderFirstName',\n        label: 'First Name',\n        valuePath: 'rider.firstName',\n        editable: false\n      }, {\n        id: 'riderLastName',\n        label: 'Rider Last Name',\n        valuePath: 'rider.lastName',\n        editable: false\n      }, {\n        id: 'externalId',\n        label: 'External ID',\n        valuePath: 'externalId',\n        editable: false\n      }, {\n        id: 'requestTime',\n        label: 'Request Time',\n        valuePath: 'requestTime',\n        editable: false\n      }, {\n        id: 'pickupaddress',\n        label: 'Pickup Address ',\n        valuePath: 'pick.place.address',\n        editable: false\n      }, {\n        id: 'dropaddress',\n        label: 'Dropoff Address',\n        valuePath: 'drop.place.address',\n        editable: false\n      }]\n    }, {\n      title: 'Editable',\n      fields: [{\n        id: 'timestamp',\n        type: 'datetimeflatpickr',\n        label: 'Date Time',\n        valuePath: 'timestamp',\n        editable: true,\n        hidden: false,\n        format: 'YYYY-MM-DD hh:mm A',\n        defaultWidth: 50\n      }, {\n        id: 'noShowReason',\n        type: 'enum',\n        label: 'Type',\n        valuePath: 'noShowReason',\n        cellDesc: 'noShowReason',\n        editable: true,\n        hidden: false,\n        extra: {\n          optionModelName: 'no-show-reason-code',\n          optionSearchPath: 'description'\n        }\n      }, {\n        id: 'notes',\n        type: 'text',\n        editable: true,\n        label: 'Notes',\n        valuePath: 'noShowNotes'\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/noshow-event-stop-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/noshow-event-stop-form-widget/config\"], function (_exports, _component, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    editModal: Ember.inject.service(),\n\n    validateRecords() {\n      let valid = true; // let records = this.get('editableRecords');\n\n      this.set('editModal.errors', []);\n      return valid;\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        /*let lastUndoState = this.get('editModal.undoHistory').popObject();\n         if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n           records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n         }\n        else {\n          lastUndoState.forEach(({ record, properties }) => {\n            record.setProperties(properties);\n          });\n        }\n         this.set('isLastUndoStateCommitted', true);*/\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n        }\n      } // onCellValueChange(record, valuePath, value, options) {\n      //   if (valuePath === 'vehicles.firstObject.name') {\n      //     let vehicle = record.get('vehicles.firstObject');\n      //     record.vehicles.removeObject(vehicle);\n      //   }\n      //   else {\n      //     this.get('service').setRecordValue(record, valuePath, value, options);\n      //   }\n      // }\n\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/noshow-event-stop-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'riderFirstName',\n        label: 'First Name',\n        valuePath: 'trip.rider.firstName',\n        editable: false\n      }, {\n        id: 'riderLastName',\n        label: 'Rider Last Name',\n        valuePath: 'trip.rider.lastName',\n        editable: false\n      }, {\n        id: 'externalId',\n        label: 'External ID',\n        valuePath: 'trip.externalId',\n        editable: false\n      }, {\n        id: 'requestTime',\n        label: 'Request Time',\n        valuePath: 'trip.requestTime',\n        editable: false\n      }, {\n        id: 'pickupaddress',\n        label: 'Pickup Address ',\n        valuePath: 'trip.pick.place.address',\n        editable: false\n      }, {\n        id: 'dropaddress',\n        label: 'Dropoff Address',\n        valuePath: 'trip.drop.place.address',\n        editable: false\n      }]\n    }, {\n      title: 'Editable',\n      fields: [{\n        id: 'timestamp',\n        type: 'datetimeflatpickr',\n        label: 'Date Time',\n        valuePath: 'timestamp',\n        editable: true,\n        hidden: false,\n        format: 'YYYY-MM-DD hh:mm A',\n        defaultWidth: 50\n      }, {\n        id: 'noShowReason',\n        type: 'enum',\n        label: 'Type',\n        valuePath: 'noShowReason',\n        cellDesc: 'noShowReason',\n        editable: true,\n        hidden: false,\n        extra: {\n          optionModelName: 'no-show-reason-code',\n          optionSearchPath: 'description'\n        }\n      }, {\n        id: 'notes',\n        type: 'text',\n        editable: true,\n        label: 'Notes',\n        valuePath: 'noShowNotes'\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/passengers-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/passengers-form-widget/config\", \"moment\"], function (_exports, _component, _config, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editModal: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    editableSections: _config.default.editableSections,\n    classNames: ['passenger-form-widget', 'data-test-passenger-form-widget'],\n\n    validateRecords() {\n      let valid = true;\n      let records = this.get('editableRecords');\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        const eligibilities = record.eligibilities;\n\n        if (Ember.isEmpty(record.dateOfBirth)) {\n          valid = false;\n          this.get('editModal.errors').pushObject('Date of birth cannot be blank.');\n        }\n\n        if (Ember.isEmpty(record.firstName) || Ember.isEmpty(record.lastName) || record.firstName.length === 0 || record.lastName.length === 0) {\n          valid = false;\n          this.get('editModal.errors').pushObject('First name and last name cannot be blank.');\n        }\n\n        eligibilities.forEach(eligibility => {\n          const from = (0, _moment.default)(eligibility.from);\n          const to = (0, _moment.default)(eligibility.to);\n\n          if (to.isBefore(from)) {\n            valid = false;\n            this.get('editModal.errors').pushObject('Eligibility to date cannot be before from date');\n          }\n        });\n      });\n      return valid;\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        let lastUndoState = this.get('editModal.undoHistory').popObject();\n\n        if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n          records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n        } else {\n          lastUndoState.forEach(({\n            record,\n            properties\n          }) => {\n            record.setProperties(properties);\n          });\n        }\n\n        this.set('isLastUndoStateCommitted', true);\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/passengers-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    title: 'Add Passenger',\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'riderId',\n        type: 'text',\n        label: 'ID',\n        valuePath: 'riderId',\n        editable: false\n      }]\n    }, {\n      title: 'Editable',\n      fields: [{\n        id: 'firstName',\n        type: 'text',\n        label: 'First Name',\n        valuePath: 'firstName'\n      }, {\n        id: 'lastName',\n        type: 'text',\n        label: 'Last Name',\n        valuePath: 'lastName'\n      }, {\n        id: 'dateOfBirth',\n        type: 'date',\n        label: 'Date Of Birth',\n        valuePath: 'dateOfBirth'\n      }, {\n        id: 'notes',\n        type: 'text',\n        label: 'Notes',\n        valuePath: 'notes'\n      }, {\n        id: 'fullPhoneNumber',\n        type: 'text',\n        label: 'Phone Number',\n        valuePath: 'fullPhoneNumber'\n      }]\n    }, {\n      title: 'Primary Addresses',\n      fields: [{\n        id: 'primaryAddresses',\n        type: 'places',\n        label: '',\n        valuePath: 'primaryAddresses',\n        modelName: 'rms-address',\n        isMultiType: true,\n        extra: {\n          aliasPath: 'alias',\n          notesPath: 'notes',\n          streetNrPath: 'streetNr',\n          streetAddressPath: 'streetAddress',\n          localityPath: 'locality',\n          regionPath: 'region',\n          subRegionPath: 'subRegion',\n          postalCodePath: 'postalCode',\n          countryPath: 'country',\n          defaultOptionsPath: 'callerTrips'\n        }\n      }]\n    }, {\n      title: 'Favorite Addresses',\n      fields: [{\n        id: 'favoriteAddresses',\n        type: 'places',\n        label: '',\n        valuePath: 'favoriteAddresses',\n        modelName: 'rms-address',\n        isMultiType: true,\n        extra: {\n          aliasPath: 'alias',\n          notesPath: 'notes',\n          streetNrPath: 'streetNr',\n          streetAddressPath: 'streetAddress',\n          localityPath: 'locality',\n          regionPath: 'region',\n          subRegionPath: 'subRegion',\n          postalCodePath: 'postalCode',\n          countryPath: 'country'\n        }\n      }]\n    }, {\n      title: 'Travel Needs',\n      fields: [{\n        id: 'travelNeeds',\n        type: 'travel-needs',\n        label: '',\n        valuePath: 'travelNeeds',\n        modelName: 'rms-rider-travel-need',\n        isMultiType: true,\n        extra: {\n          travelNeedTypeModelName: 'rms-travel-need-type',\n          passengerTypeModelName: 'rms-passenger-type',\n          countPath: 'count',\n          travelNeedTypePath: 'travelNeedType',\n          passengerTypePath: 'passengerType'\n        }\n      }]\n    }, {\n      title: 'Eligibilities',\n      fields: [{\n        id: 'eligibilities',\n        type: 'eligibilities',\n        label: '',\n        valuePath: 'eligibilities',\n        modelName: 'rms-rider-eligibility',\n        isMultiType: true,\n        extra: {\n          eligibilityTypeModelName: 'rms-eligibility-type',\n          fromPath: 'from',\n          toPath: 'to',\n          eligibilityTypePath: 'eligibilityType'\n        }\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/passengers-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/config/environment\", \"adept-iq/pods/components/iq-widgets/passengers-widget/config\", \"ember-concurrency\", \"adept-iq/utils/populate-new-trip\", \"adept-iq/utils/populate-copy-trip\", \"adept-iq/utils/populate-edit-trip\", \"adept-iq/utils/populate-search-trip\", \"adept-iq/utils/populate-account\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/populate-call-line\", \"adept-iq/config/api-urls\"], function (_exports, _component, _environment, _config, _emberConcurrency, _populateNewTrip, _populateCopyTrip, _populateEditTrip, _populateSearchTrip, _populateAccount, _checkAddressFlags, _populateCallLine, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* eslint-disable ember/avoid-leaking-state-in-ember-objects */\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['passengers-widget'],\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    store: Ember.inject.service(),\n    trip: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    session: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    phoneSearchValue: null,\n    optionSearchValue: null,\n    phoneSearchPath: _apiUrls.API_SUB_URL.phoneSearchPath,\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n    editComponent: 'iq-widgets/passengers-form-widget',\n    newTripComponent: 'iq-widgets/new-trip-form-widget',\n    // eslint-disable-next-line no-unused-vars\n    search: (0, _emberConcurrency.task)(function* (term) {\n      yield (0, _emberConcurrency.timeout)(50);\n      let searchResults;\n      searchResults = yield this.getRiderProfile(this.get('phoneSearchPath'), this.get('phoneSearchValue'));\n      return searchResults;\n    }),\n\n    getRiderProfile(phoneSearchPath, phoneSearchValue) {\n      return this.get('ajax').put(_apiUrls.API.tripManagementService.host + `/rider-profile?filter=${phoneSearchPath}==` + phoneSearchValue, {\n        method: 'GET',\n        contentType: \"application/json\"\n      }).then(response => {\n        return response.data;\n      }).catch(function (error) {\n        return [];\n      });\n    },\n\n    saveTripRecordFunction(records, editComponentAction) {\n      console.log(' saveTripRecordFunction ', editComponentAction);\n      const me = this;\n      return new Ember.RSVP.Promise((resolve, reject) => {\n        let record = records.firstObject;\n        record.save().then(() => {\n          console.log('after saveTripRecordFunction ');\n          const tripId = record.get('id');\n          me.get('errorMessage').pushInfo({\n            detail: `Trip '${tripId}' successfully saved`\n          });\n          record.set('lastId', record.get('id'));\n          record.set('isForceDirty', false);\n\n          if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClick') {\n            Ember.run(() => {\n              let recordRefresh = [];\n              let newtrip = (0, _populateEditTrip.default)(me.get('trip'), record, me.get('store'), me.get('geocode'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              recordRefresh.push(newtrip);\n              let newTripComponent = me.get('editSwitchTripComponent');\n\n              if (this.get('editModal.editComponent') !== null && this.get('editModal.editComponent') === this.get('editSwitchTripComponent')) {\n                newTripComponent = me.get('editTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          } else if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClearClick') {\n            Ember.run(() => {\n              Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n              me.get('geocode').activateGeocode(false);\n              me.get('geocode').deactivateGeocode();\n              let recordRefresh = [];\n              let newtrip = (0, _populateNewTrip.default)(me.get('trip'), me.get('store'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              newtrip.set('lastId', record.get('lastId'));\n              recordRefresh.push(newtrip); //me.set('editableRecords',recordRefresh);\n              //me.set('records',recordRefresh);\n\n              let newTripComponent = me.get('newSwitchTripComponent');\n\n              if (me.get('editModal.editComponent') !== null && me.get('editModal.editComponent') === me.get('newSwitchTripComponent')) {\n                newTripComponent = me.get('newTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          }\n        }).catch(function (error) {\n          console.log(error);\n          reject(error);\n        });\n      });\n    },\n\n    prepareNewTrip(model) {\n      let rider = model;\n      let trip = (0, _populateNewTrip.default)(this.get('trip'), this.get('store'));\n      trip.passengers[0].phone1.number = rider.phoneNr;\n      this.set('phoneSearchValue', rider.phoneNr);\n      trip.passengers[0].name = rider.name;\n      trip.passengers[0].firstName = rider.name;\n      Ember.run(() => {\n        this.get('search').perform().then(results => {\n          let widgetModelData = results;\n          trip.editmodelcontext.callerTrips = widgetModelData;\n\n          if (widgetModelData && widgetModelData.length > 1) {\n            this.set('editmodalcontext.showWidgetModal', true);\n            this.set('editmodalcontext.widgetModelData', widgetModelData);\n            this.set('editmodalcontext.modelWidgetPath', 'rider-profile-widget');\n          } else if (widgetModelData && widgetModelData.length === 1) {\n            (0, _populateCallLine.default)(trip, results.firstObject.attributes, this.get('geocode'), this.get('store'));\n            (0, _populateAccount.default)(trip, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), results.firstObject.attributes.account.accountId, true);\n            (0, _checkAddressFlags.default)(trip);\n          }\n\n          (0, _checkAddressFlags.default)(trip);\n        }); //this.get('records').pushObject(trip);\n\n        let newTripComponent = this.get('newTripComponent');\n        this.get('editModal').open(newTripComponent, [trip], this.get('saveTripRecordFunction').bind(this));\n      });\n    },\n\n    rowGroup: Ember.computed('row', function () {\n      return this.get('table.rows');\n    }).readOnly(),\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', [{\n        name: 'Add Trip',\n        action: model => {\n          this.prepareNewTrip(model);\n        }\n      }, {\n        name: 'View Activity Log',\n        action: () =>\n        /* models */\n        {}\n      }]);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/passengers-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/passengers-widget',\n    rowComponent: 'table/rows/otp-formatted-row',\n    modelName: 'rider',\n    defaultSortId: 'fullPhoneNumber',\n    defaultSortAsc: false,\n    accessKey: 'p',\n    title: 'Passengers',\n    columns: [{\n      id: 'id',\n      index: 0,\n      type: 'text',\n      label: 'Id',\n      valuePath: 'id',\n      editable: false,\n      hidden: false\n    }, {\n      id: 'fullPhoneNumber',\n      index: 1,\n      type: 'text',\n      label: 'Phone Number',\n      valuePath: 'phoneNr',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 90\n    }, {\n      id: 'name',\n      index: 2,\n      type: 'text',\n      label: 'Name',\n      valuePath: 'name',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 60\n    }, {\n      id: 'account',\n      index: 3,\n      type: 'enum',\n      label: 'Account',\n      valuePath: 'formattedAccount',\n      cellDesc: 'Account',\n      editable: false,\n      hidden: false\n    }, {\n      id: 'formattedPickupAddresses',\n      index: 4,\n      type: 'enum-address',\n      label: 'Addresses',\n      valuePath: 'formattedPickupAddresses',\n      cellDesc: 'Addresses',\n      searchable: true,\n      editable: false,\n      hidden: false,\n      defaultWidth: 120\n    }, {\n      id: 'driverNotes',\n      index: 5,\n      type: 'text',\n      label: 'Driver Notes',\n      valuePath: 'driverNotes',\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'operatorNotes',\n      index: 6,\n      type: 'text',\n      label: 'Operator Notes',\n      valuePath: 'operatorNotes',\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'email',\n      index: 7,\n      type: 'text',\n      label: 'EMail',\n      valuePath: 'email',\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/poi-address-search-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/poi-address-search-widget/config\", \"adept-iq/utils/populate-pickup\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/check-address-overwrite\", \"adept-iq/utils/focus_column_widget_row\", \"lodash\", \"adept-iq/utils/check-value\"], function (_exports, _component, _config, _populatePickup, _checkAddressFlags, _checkAddressOverwrite, _focus_column_widget_row, _lodash, _checkValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['poi-address-search-widget'],\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    // need to sub-class this in specific widget\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    init() {\n      this._super(...arguments);\n\n      let recordId = 1;\n      this.get('widgetModelData').forEach(record => {\n        console.log('widgetModelData ', record.address);\n\n        try {\n          const zoneData = this.get('store').peekRecord('zone', record.zoneId);\n\n          if (!Ember.isBlank(zoneData)) {\n            record.zoneName = zoneData.get('name');\n          }\n        } catch (e) {\n          const zoneData = this.get('store').peekRecord('zone', record.zoneId);\n\n          if (!Ember.isBlank(zoneData)) {\n            Ember.set(record, 'zoneName', zoneData.get('name'));\n          }\n        }\n\n        this.get('records').pushObject(record);\n      });\n      console.log('this.get(records) ', this.get('records')); // this.set('records',this.get('widgetModelData'));\n\n      let me = this;\n      Ember.run.later(function () {\n        (0, _focus_column_widget_row.default)(me);\n      }, 100);\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', []);\n    },\n\n    validateAddresses(addressRecord) {\n      this.set('editModal.errors', []);\n\n      if (addressRecord.address.coord.lat === 0 || addressRecord.address.coord.lng === 0) {\n        this.get('editModal.errors').pushObject('Address does not have lat/lng. Please select position on the map.');\n      } else {\n        if (Ember.isBlank(addressRecord.address.streetNr)) {\n          this.get('editModal.errors').pushObject(addressRecord.passengerEvents[0].type + ' does not have street number');\n        }\n\n        (0, _checkAddressFlags.default)(this.get('record'));\n      }\n    },\n\n    actions: {\n      onRowRightClick(row, event) {},\n\n      closeWidget(event) {\n        this.get('geocode').set('activePOIResults', []);\n\n        this._super(...arguments);\n      },\n\n      onRowClick(row, event) {\n        let addressRecord = this.addressRecord;\n        let tripData = this.currentRecord;\n        let ttAddress = row.get('record');\n        console.log('ttAddress ', ttAddress);\n        this.closeWidget();\n        this.get('geocode').set('activePOIResults', []);\n        let overwriteAddress = true;\n        let overwriteAddressPop = (0, _checkAddressOverwrite.default)(addressRecord.address, ttAddress.address);\n\n        if (overwriteAddressPop) {\n          overwriteAddress = confirm('Do you want to overwrite Address');\n        }\n\n        if (overwriteAddress) {\n          try {\n            addressRecord.address.streetNr = ttAddress.address.streetNr;\n            addressRecord.address.streetName = ttAddress.address.streetName;\n            addressRecord.address.region = ttAddress.address.region;\n            addressRecord.address.state = ttAddress.address.state;\n            addressRecord.address.postCode = ttAddress.address.postalCode; // addressRecord.address.description = ttAddress.address.description;\n            //record.address.country = ttAddress.address.country;\n          } catch (e) {}\n\n          try {// Ember.set(addressRecord.address, 'description', checkValue(ttAddress.address.description));\n          } catch (e) {// record.address.formattedAddress =  checkValue(ttAddress.address.description);\n          }\n\n          try {\n            Ember.set(addressRecord.address.tomtomFormattedAddress.address, 'freeformAddress', (0, _checkValue.default)(addressRecord.address.streetNr) + \" \" + (0, _checkValue.default)(addressRecord.address.streetName) + \" \" + (0, _checkValue.default)(addressRecord.address.region));\n          } catch (e) {\n            console.log('e', e);\n\n            try {\n              addressRecord.address.tomtomFormattedAddress = {\n                address: {\n                  freeformAddress: (0, _checkValue.default)(addressRecord.address.streetNr) + \" \" + (0, _checkValue.default)(addressRecord.address.streetName) + \" \" + (0, _checkValue.default)(addressRecord.address.region)\n                }\n              };\n            } catch (e) {\n              console.log('e1 ', e);\n            }\n          }\n\n          try {\n            Ember.set(addressRecord.address, 'formattedAddress', (0, _checkValue.default)(ttAddress.freeformAddress));\n          } catch (e) {\n            addressRecord.address.formattedAddress = (0, _checkValue.default)(ttAddress.freeformAddress);\n          }\n\n          let options = this.get('store').peekAll('tm-common-operational-attribute');\n          let requiredAttributes = ttAddress.requiredAttributes;\n\n          try {\n            addressRecord.address.coord.lat = ttAddress.address.coord.lat;\n            addressRecord.address.coord.lng = ttAddress.address.coord.lng;\n          } catch (e) {//console.log(e);\n          }\n\n          if (!Ember.isBlank(addressRecord.address) && !Ember.isBlank(addressRecord.address.coord) && addressRecord.address.coord.lat !== 0 && addressRecord.address.coord.lng !== 0 && addressRecord.address.coord.lat !== 181 && addressRecord.address.coord.lng !== 181 && !Ember.isBlank(addressRecord.address.coord.lat) && !Ember.isBlank(addressRecord.address.coord.lng)) {\n            try {\n              this.get('geocode').getGeonode(addressRecord.address.coord.lat, addressRecord.address.coord.lng).then(result => {\n                const zoneData = this.get('store').peekRecord('zone', result.data.gpsAreaId);\n                let zoneDriverNotes = zoneData.get('notes.driver');\n                let zoneOperatorNotes = zoneData.get('notes.dispatcher');\n                Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.area', zoneDriverNotes);\n                Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.area', zoneOperatorNotes);\n                let options = this.get('store').peekAll('tm-common-operational-attribute');\n                let requiredAttributes = zoneData.get('requiredAttributes');\n                let areaAttributes = options.filter(function (o1) {\n                  // if match found return false\n                  return _lodash.default.findIndex(requiredAttributes, {\n                    'type': o1.type\n                  }) === -1 ? false : true;\n                });\n                Ember.set(tripData, 'editmodelcontext.attributes.area', areaAttributes);\n              });\n            } catch (e) {\n              console.log(e);\n            }\n          }\n\n          console.log('requiredAttributes ', requiredAttributes);\n          let addressAttributes = options.filter(function (o1) {\n            // if match found return false\n            return _lodash.default.findIndex(requiredAttributes, {\n              'type': o1.type\n            }) === -1 ? false : true;\n          });\n          console.log('buildingAttributes ', addressAttributes);\n\n          if (!Ember.isBlank(ttAddress.notes)) {\n            Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', (0, _checkValue.default)(ttAddress.notes.driver));\n            Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.address', (0, _checkValue.default)(ttAddress.notes.dispatcher));\n          } else {\n            Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', '');\n            Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.address', '');\n          }\n\n          Ember.set(tripData, 'editmodelcontext.attributes.address', addressAttributes);\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/poi-address-search-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/address-lookup',\n    rowComponent: 'table/rows/otp-formatted-row',\n    modelName: 'address-lookup',\n    defaultSortId: 'address.description',\n    defaultSortAsc: false,\n    hideWidgetControls: true,\n    hideHeader: true,\n    checkBoxColumn: false,\n    isFormControls: true,\n    title: 'Address search Details',\n    columns: [{\n      id: 'name',\n      type: 'text',\n      label: 'Name',\n      valuePath: 'address.description',\n      editable: false,\n      searchable: true,\n      hidden: false,\n      defaultWidth: 300\n    }, {\n      id: 'streetNumber',\n      type: 'text',\n      label: 'Street Number',\n      valuePath: 'address.streetNr',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 60\n    }, {\n      id: 'streetName',\n      type: 'text',\n      label: 'Street Name',\n      valuePath: 'address.streetName',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 300\n    }, {\n      id: 'city',\n      type: 'text',\n      label: 'City',\n      valuePath: 'address.region',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 200\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/report-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/config/environment\", \"lodash\"], function (_exports, _component, _environment, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['report-widget']\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/report-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"Lr1dgUMp\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"style\\\",\\\"height:100%;width:100%;display:block;align:centers\\\"],[9],[0,\\\"\\\\n\\\"],[1,[27,\\\"tableau-view\\\",null,[[\\\"sitePath\\\",\\\"viewPath\\\"],[\\\"#/site/guilford\\\",\\\"TABLEAU_TODAYSDATA1/TODAYSJOBCOUNT?:tabs=no&:alerts=no&:customViews=no\\\"]]],false],[0,\\\"\\\\n\\\"],[10]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/report-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/report-widget1/component\", [\"exports\", \"adept-iq/config/environment\", \"lodash\"], function (_exports, _environment, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['report-widget']\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/report-widget1/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"wSY385kh\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"style\\\",\\\"height:100%;width:100%;display:block;align:centers\\\"],[9],[0,\\\"\\\\n\\\"],[1,[27,\\\"tableau-view\\\",null,[[\\\"sitePath\\\",\\\"viewPath\\\"],[\\\"#/site/guilford\\\",\\\"TABLEAU_TODAYSDATA1/TODAYSJOBCOUNT_?:tabs=no\\\"]]],false],[0,\\\"\\\\n\\\"],[10]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/report-widget1/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/report-widget2/component\", [\"exports\", \"adept-iq/config/environment\", \"lodash\"], function (_exports, _environment, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['report-widget']\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/report-widget2/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"PF+0bxqh\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"style\\\",\\\"height:100%;width:100%;display:block;align:centers\\\"],[9],[0,\\\"\\\\n\\\"],[1,[27,\\\"tableau-view\\\",null,[[\\\"sitePath\\\",\\\"viewPath\\\"],[\\\"#/site/guilford\\\",\\\"TABLEAU_TODAYSDATA1/TODAYSJOBCOUNT_?:tabs=no\\\"]]],false],[0,\\\"\\\\n\\\"],[10]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/report-widget2/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/report-widget3/component\", [\"exports\", \"adept-iq/config/environment\", \"lodash\"], function (_exports, _environment, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['report-widget']\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/report-widget3/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"Yys29F71\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"style\\\",\\\"height:100%;width:100%;display:block;align:centers\\\"],[9],[0,\\\"\\\\n\\\"],[1,[27,\\\"tableau-view\\\",null,[[\\\"sitePath\\\",\\\"viewPath\\\"],[\\\"#/site/guilford\\\",\\\"Guilford/DRIVERPERFORMANCE?:tabs=no\\\"]]],false],[0,\\\"\\\\n\\\"],[10]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/report-widget3/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/report-widget4/component\", [\"exports\", \"adept-iq/config/environment\", \"lodash\"], function (_exports, _environment, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['report-widget']\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/report-widget4/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"QaY0MY5o\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"style\\\",\\\"height:100%;width:100%;display:block;\\\"],[9],[0,\\\"\\\\n\\\"],[7,\\\"iframe\\\"],[11,\\\"style\\\",\\\"height:100%;width:100%;display:block;\\\"],[11,\\\"src\\\",\\\"https://tableau.ddswireless.com/#/site/demo/views/demosite-10REPORTS/TRIPCOUNTBYNOSHOW-CANCEL\\\"],[9],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/iq-widgets/report-widget4/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/rider-profile-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/rider-profile-widget/config\", \"adept-iq/utils/populate-call-line\", \"adept-iq/utils/populate-account\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/focus_column_widget_row\", \"adept-iq/utils/check-value\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\"], function (_exports, _component, _config, _populateCallLine, _populateAccount, _checkAddressFlags, _focus_column_widget_row, _checkValue, _environment, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['rider-profie-widget'],\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    riderAddresses: null,\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    init() {\n      this._super(...arguments);\n\n      try {\n        let recordId = 1;\n        this.get('editmodalcontext.widgetModelData').forEach(record => {\n          record.attributes.id = \"\" + recordId + \"\";\n          recordId++;\n          record.attributes.pickupFreeFormAddress = \"\";\n          record.attributes.pickupCity = \"\";\n\n          if (!Ember.isEmpty(record.attributes.favoriteTrips) && !Ember.isBlank(record.attributes.favoriteTrips[0].pickup) && !Ember.isBlank(record.attributes.favoriteTrips[0].pickup.address)) {\n            record.attributes.pickupFreeFormAddress = (0, _checkValue.default)(record.attributes.favoriteTrips[0].pickup.address.streetNr) + \" \" + (0, _checkValue.default)(record.attributes.favoriteTrips[0].pickup.address.streetName);\n            record.attributes.pickupCity = (0, _checkValue.default)(record.attributes.favoriteTrips[0].pickup.address.region);\n          }\n\n          record.attributes.dropoffFreeFormAddress = \"\";\n          record.attributes.dropoffCity = \"\";\n\n          if (!Ember.isEmpty(record.attributes.favoriteTrips) && !Ember.isBlank(record.attributes.favoriteTrips[0].dropoff) && !Ember.isBlank(record.attributes.favoriteTrips[0].dropoff.address)) {\n            record.attributes.dropoffFreeFormAddress = (0, _checkValue.default)(record.attributes.favoriteTrips[0].dropoff.address.streetNr) + \" \" + (0, _checkValue.default)(record.attributes.favoriteTrips[0].dropoff.address.streetName);\n            record.attributes.dropoffCity = (0, _checkValue.default)(record.attributes.favoriteTrips[0].dropoff.address.region);\n          }\n\n          this.get('records').pushObject(record.attributes);\n        });\n        let me = this;\n        Ember.run.later(function () {\n          (0, _focus_column_widget_row.default)(me);\n        }, 50);\n      } catch (e) {}\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', []);\n    },\n\n    actions: {\n      onRowRightClick(row, event) {},\n\n      onRowClick(row, event) {\n        let tripData = this.currentRecord;\n        let callLine = row.get('record');\n        (0, _populateCallLine.default)(tripData, callLine, this.get('geocode'), this.get('store'));\n        (0, _populateAccount.default)(tripData, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), callLine.account.accountId);\n        (0, _checkAddressFlags.default)(tripData);\n        this.closeWidget();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/rider-profile-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/call-line-widget',\n    rowComponent: 'table/rows/otp-formatted-row',\n    modelName: 'rider-profile',\n    defaultSortId: 'account.accountId',\n    defaultSortAsc: false,\n    hideWidgetControls: true,\n    hideHeader: true,\n    checkBoxColumn: false,\n    isFormControls: true,\n    title: 'CLI Address Details',\n    columns: [{\n      id: 'contactFirstName',\n      type: 'text',\n      label: 'Client Name',\n      valuePath: 'name',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 100\n    }, {\n      id: 'accountNr',\n      type: 'text',\n      label: 'Account No',\n      valuePath: 'account.accountId',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 100\n    }, {\n      id: 'pickupFreeFormAddress',\n      type: 'text',\n      label: 'Pickup Address',\n      valuePath: 'pickupFreeFormAddress',\n      editable: false,\n      hidden: false,\n      defaultWidth: 200\n    }, {\n      id: 'pickupCity',\n      type: 'text',\n      label: 'City',\n      valuePath: 'pickupCity',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 100\n    }, {\n      id: 'dropoffFreeFormAddress',\n      type: 'text',\n      label: 'Drop Off Address',\n      valuePath: 'dropoffFreeFormAddress',\n      editable: false,\n      hidden: false,\n      defaultWidth: 200\n    }, {\n      id: 'dropoffCity',\n      type: 'text',\n      label: 'City',\n      valuePath: 'dropoffCity',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 100\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/routes-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/routes-form-widget/config\"], function (_exports, _component, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    editModal: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    classNames: ['data-test-route-form-widget'],\n\n    validateRecords() {\n      let valid = true;\n      let records = this.get('editableRecords');\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        // make sure we apply the date to the plannedStartTime and plannedEndTime\n        let plannedStartTime = record.get('plannedStartTime');\n        let plannedEndTime = record.get('plannedEndTime');\n        let routeDate = record.get('routeDate');\n        plannedStartTime.setDate(routeDate.getDate());\n        plannedStartTime.setMonth(routeDate.getMonth());\n        plannedStartTime.setFullYear(routeDate.getFullYear());\n        plannedEndTime.setDate(routeDate.getDate());\n        plannedEndTime.setMonth(routeDate.getMonth());\n        plannedEndTime.setFullYear(routeDate.getFullYear());\n\n        if (record.name === undefined || record.name.length === 0) {\n          valid = false;\n          this.get('editModal.errors').pushObject('Name cannot be blank.');\n        }\n\n        if (record.selectedVehicle === undefined && record.selectedDriver !== undefined) {\n          valid = false;\n          this.get('editModal.errors').pushObject('Must have a vehicle selected if a driver is selected.');\n        }\n      });\n      return valid;\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        /*let lastUndoState = this.get('editModal.undoHistory').popObject();\n         if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n           records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n         }\n        else {\n          lastUndoState.forEach(({ record, properties }) => {\n            record.setProperties(properties);\n          });\n        }\n         this.set('isLastUndoStateCommitted', true);*/\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n        }\n      } // onCellValueChange(record, valuePath, value, options) {\n      //   if (valuePath === 'vehicles.firstObject.name') {\n      //     let vehicle = record.get('vehicles.firstObject');\n      //     record.vehicles.removeObject(vehicle);\n      //   }\n      //   else {\n      //     this.get('service').setRecordValue(record, valuePath, value, options);\n      //   }\n      // }\n\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/routes-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Section 1',\n      fields: [{\n        id: 'id',\n        type: 'uuid',\n        label: 'ID',\n        valuePath: 'id',\n        editable: false\n      }]\n    }, {\n      title: 'Section 2',\n      fields: [{\n        id: 'name',\n        type: 'text',\n        label: 'Name',\n        valuePath: 'name'\n      }, {\n        id: 'date',\n        type: 'dateflatpickr',\n        label: 'Date',\n        valuePath: 'routeDate',\n        format: 'hh:mm A'\n      }, {\n        id: 'start',\n        type: 'timeflatpickr',\n        label: 'Start',\n        valuePath: 'plannedStartTime',\n        format: 'hh:mm A'\n      }, {\n        id: 'end',\n        type: 'timeflatpickr',\n        label: 'End',\n        valuePath: 'plannedEndTime',\n        format: 'hh:mm A'\n      }, {\n        id: 'vehicle',\n        type: 'searchable-enum',\n        label: 'Vehicle',\n        valuePath: 'vehicleName',\n        extra: {\n          optionModelName: 'vehicle',\n          optionSearchPath: 'name',\n          optionSearchEnabled: true,\n          optionIncludes: 'vehicleRoutes',\n          optionTempRecordSelected: 'selectedVehicle',\n          optionFilterFunction: 'isVehicleAvailable'\n        }\n      }, {\n        id: 'driver',\n        type: 'searchable-enum',\n        label: 'Driver',\n        valuePath: 'driverExternalId',\n        extra: {\n          optionModelName: 'driver',\n          optionSearchPath: 'externalId',\n          optionSearchEnabled: true,\n          optionIncludes: 'driverShifts',\n          optionTempRecordSelected: 'selectedDriver',\n          optionFilterFunction: 'isDriverAvailable'\n        }\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/routes-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/routes-widget/config\", \"adept-iq/utils/find-row-record\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\"], function (_exports, _component, _config, _findRowRecord, _environment, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = ['clusters', 'vehicleRoutes', 'vehicleRoutes.driverShifts', 'vehicleRoutes.vehicle', 'vehicleRoutes.driverShifts.driver', 'vehicleRoutes.vehicle.vehicleType', 'driverBreaks', 'driverBreaks.driverBreakEvents', 'vehicleRoutes.vehicle.vehicleEvents'];\n\n  var _default = _component.default.extend({\n    classNames: ['routes-widget', 'data-test-routes-widget'],\n    editModal: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    dragCoordinator: Ember.inject.service(),\n    routeexecevent: Ember.inject.service(),\n    session: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    trip: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    editComponent: 'iq-widgets/routes-form-widget',\n    vehicleEventComponent: 'iq-widgets/vehicle-event-form-widget',\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    sendMessagesToVehicle(record, status) {\n      let assignedDriver = record.get('assignedDriver');\n      let assignedVehicle = record.get('assignedVehicle');\n      let message = ` ${status} Route action performed by dispatch`;\n      let draftMessage = this.get('store').createRecord('tm-canned-message', {\n        // TODO: should this be `driver.externalId`?\n        driverId: assignedDriver.get('externalId'),\n        vehicleId: assignedVehicle.get('name'),\n        routeId: `${record.get('name')}`,\n        body: message // TODO: how do we get the current route ID for a vehicle?\n        // routeId: driver.get('routeId')\n\n      });\n      return draftMessage.save();\n    },\n\n    saveRouteStartRecordFunction(records) {\n      let me = this;\n      return new Ember.RSVP.Promise((resolve, reject) => {\n        records.forEach(record => {\n          let routeStartData = this.get('routeexecevent').routeStartData();\n          let preparedRouteStartData = this.get('routeexecevent').prepareRouteStartData(routeStartData, record);\n          const json = JSON.stringify(preparedRouteStartData);\n          let session = this.get('session');\n          return this.get('ajax').post(_apiUrls.API.avlmService.host + '/production/route-exec-event', {\n            method: 'POST',\n            contentType: \"application/json\",\n            headers: {\n              \"Authorization\": `Bearer ${session.data.authenticated.token}`\n            },\n            data: json\n          }).then(response => {\n            record.set('isForceDirty', false);\n            record.set('id', response.data.id);\n            me.get('activeContext').refreshTableContent('route');\n            me.sendMessagesToVehicle(record, 'Start');\n          }).catch(function (error) {\n            reject(error);\n          });\n        });\n      });\n    },\n\n    saveRouteEndRecordFunction(records) {\n      let me = this;\n      return new Ember.RSVP.Promise((resolve, reject) => {\n        records.forEach(record => {\n          let routeEndData = this.get('routeexecevent').routeEndData();\n          let preparedRouteEndData = this.get('routeexecevent').prepareRouteEndData(routeEndData, record);\n          const json = JSON.stringify(preparedRouteEndData);\n          let session = this.get('session');\n          return this.get('ajax').post(_apiUrls.API.avlmService.host + '/production/route-exec-event', {\n            method: 'POST',\n            contentType: \"application/json\",\n            headers: {\n              \"Authorization\": `Bearer ${session.data.authenticated.token}`\n            },\n            data: json\n          }).then(response => {\n            record.set('isForceDirty', false);\n            record.set('id', response.data.id);\n            me.get('activeContext').refreshTableContent('route');\n            me.sendMessagesToVehicle(record, 'End');\n          }).catch(function (error) {\n            reject(error);\n          });\n        });\n      });\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.set('tableActions', [{\n        name: 'New Route',\n        action: function () {\n          let newModel = this.get('store').createRecord(this.config.modelName);\n          let plannedStartTime = new Date(this.workspace.startDate);\n          let plannedEndTime = new Date(this.workspace.startDate);\n          plannedStartTime.setHours(6);\n          plannedEndTime.setHours(18);\n          newModel.set('routeDate', new Date(this.workspace.startDate));\n          newModel.set('plannedStartTime', plannedStartTime);\n          newModel.set('plannedEndTime', plannedEndTime);\n          this.get('records').pushObject(newModel);\n          let editComponent = this.get('editComponent');\n          this.get('editModal').open(editComponent, [newModel], this.get('saveRecordFunction').bind(this));\n        }.bind(this)\n      }]);\n      this.set('singleActions', [{\n        name: 'Send Message',\n        action: route => {\n          this.sendMessagesToRoutes([route]);\n        }\n      }, {\n        name: 'Start Route',\n        model: 'vehicle-event',\n        action: model => {\n          model.set('odometer', '');\n          model.set('timestamp', new Date());\n          let vehicleEventComponent = this.get('vehicleEventComponent');\n          this.get('editModal').open(vehicleEventComponent, [model], this.get('saveRouteStartRecordFunction').bind(this));\n        }\n      }, {\n        name: 'End Route',\n        action: model => {\n          model.set('odometer', '');\n          model.set('timestamp', new Date());\n          let vehicleEventComponent = this.get('vehicleEventComponent');\n          this.get('editModal').open(vehicleEventComponent, [model], this.get('saveRouteEndRecordFunction').bind(this));\n        }\n      }, {\n        name: 'Activity Log',\n        action: route => {\n          let routeName = route.get('name');\n          this.get('workspace').pushState('routeActivityLog', {\n            displayName: `Route #${routeName} Activity Log`,\n            route\n          });\n        }\n      }, {\n        name: 'Delete Route',\n        model: 'vehicle-event',\n        action: model => {\n          this.deleteRoute(model);\n        }\n      }]);\n      this.set('bulkActions', [{\n        name: 'Activity Log',\n        action: () =>\n        /* model */\n        {}\n      }, {\n        name: 'Bulk Message',\n        action: routes => {\n          this.sendMessagesToRoutes(routes);\n        }\n      }]);\n    },\n\n    dragRowGroup: Ember.computed('row', function () {\n      return this.get('table.rows');\n    }).readOnly(),\n\n    dragStart(event) {\n      let row = (0, _findRowRecord.findRowRecordByElement)(event.target, this.get('dragRowGroup'));\n      if (Ember.isBlank(row)) return;\n      let dragId = Ember.guidFor(row);\n      this.get('dragCoordinator').setSourceRow(dragId, row, 'routes');\n      event.dataTransfer.setData('text', dragId);\n    },\n\n    dragEnd() {\n      this.get('dragCoordinator').clearSourceRows();\n    },\n\n    // saveRecordFunction(/* records */) {\n    //   let vehicleEvent = this.get('store').createRecord('vehicle-event', {\n    //     type: 'pullout',\n    //     timestamp: '',\n    //     lat: 0.0,\n    //     lng: 0.0,\n    //     heading: 0,\n    //     speed: 0,\n    //     odometer: 5467567775,\n    //     vehicle: '10'\n    //   });\n    //   return vehicleEvent.save();\n    // },\n    // TODO: saveRecordFunction shall be moved to a service later on\n    // This save is specific to saving drivers and all related models.\n    saveRecordFunction(records) {\n      function saveSelectedVehicle(route, vehicleRoute) {\n        if (route.get('selectedVehicle') !== undefined) {\n          vehicleRoute.set('route', route);\n          vehicleRoute.set('vehicle', route.get('selectedVehicle'));\n          vehicleRoute.set('plannedStartTime', new Date(route.get('plannedStartTime')));\n          vehicleRoute.set('plannedEndTime', new Date(route.get('plannedEndTime')));\n          return Ember.RSVP.Promise.all([vehicleRoute.save()]);\n        } else {\n          return Ember.RSVP.Promise.all([]);\n        }\n      }\n\n      function saveSelectedDriver(route, driverShift) {\n        if (route.get('selectedDriver') !== undefined) {\n          driverShift.set('route', route);\n          driverShift.set('driver', route.get('selectedDriver'));\n          driverShift.set('plannedStartTime', new Date(route.get('plannedStartTime')));\n          driverShift.set('plannedEndTime', new Date(route.get('plannedEndTime')));\n          return Ember.RSVP.Promise.all([driverShift.save()]);\n        } else {\n          return Ember.RSVP.Promise.all([]);\n        }\n      }\n\n      return new Ember.RSVP.Promise(() => {\n        records.forEach(record => {\n          let schedule = this.store.peekAll('schedule');\n          let provider = this.store.peekAll('provider');\n          record.set('schedule', schedule.get('firstObject'));\n          record.set('provider', provider.get('firstObject'));\n          record.save().then(() => {\n            let vehicleRoute = this.get('store').createRecord('vehicleRoute');\n            saveSelectedVehicle(record, vehicleRoute).then(results => {\n              let driverShift = this.get('store').createRecord('driverShift');\n\n              if (results.length > 0) {\n                driverShift.set('vehicleRoute', results[0]);\n                saveSelectedDriver(record, driverShift).then(() => {\n                  record.set('isForceDirty', false);\n                  this.get('activeContext').refreshTableContent(this.get('config.modelName'));\n                });\n              } else {\n                record.set('isForceDirty', false);\n                this.get('activeContext').refreshTableContent(this.get('config.modelName'));\n              }\n            });\n          });\n        });\n      });\n    },\n\n    //singleActions: computed('table.rows.@each.{selected,status}', function() {\n    //  let routeStartAction = this.get('routeStartAction');\n    //  let routeEndAction = this.get('routeEndAction');\n    //  let routeSendMessageAction = this.get('routeSendMessageAction');\n    //  let routeActivityAction = this.get('routeActivityAction');\n    //  let routeDeleteAction = this.get('routeDeleteAction');\n    //  //console.log('routeActivityAction ',routeActivityAction);\n    //  let row = this.get('table.rows').findBy('selected', true);\n    //  if (!row) return [];\n    //  let isRouteContainsTrips = true;\n    //  if(row.get('clusters') === null ||\n    //    row.get('clusters') === undefined ||\n    //    row.get('clusters').length === 0) {\n    //      isRouteContainsTrips = false;\n    //  }\n    //  if(row.get('status'))\n    //  switch(row.get('status')) {\n    //    case 'Not Started': {\n    //      if(isRouteContainsTrips) {\n    //        return [routeStartAction,routeActivityAction];\n    //      } else {\n    //        return [routeStartAction,routeActivityAction,routeDeleteAction];\n    //      }\n    //    }\n    //    case 'Signed On':\n    //      if(isRouteContainsTrips) {\n    //        return [routeStartAction,routeSendMessageAction,routeActivityAction];\n    //      } else {\n    //        return [routeStartAction,routeSendMessageAction,routeActivityAction,routeDeleteAction];\n    //      }\n    //   case 'Started':\n    //      //TODO All stops are completed check.\n    //      if(isRouteContainsTrips) {\n    //        return [routeEndAction,routeActivityAction];\n    //      } else {\n    //        return [routeEndAction,routeActivityAction,routeDeleteAction];\n    //      }\n    //    case 'Route Ended':\n    //    case 'Signed Off':\n    //      return [routeActivityAction];\n    //    default:\n    //      if(isRouteContainsTrips) {\n    //        return [routeActivityAction];\n    //      } else {\n    //        return [routeActivityAction,routeDeleteAction];\n    //      }\n    //  }\n    //}),\n    sendMessagesToRoutes(routes) {\n      let draftMessages = routes.map(route => {\n        return this.get('store').createRecord('tm-canned-message', {\n          // TODO: should this be `assignedDriver.externalId`?\n          driverId: route.get('assignedDriver.id'),\n          routeId: route.get('id'),\n          vehicleId: route.get('assignedVehicle.id')\n        });\n      });\n      this.get('workspace').pushState('addNewMessage', {\n        draftMessages\n      });\n    },\n\n    deleteRoute(route) {\n      let isCompleted = route.get('isCompleted');\n      let isEmptyRoute = route.get('isEmptyRoute');\n\n      if (isCompleted || !isEmptyRoute) {\n        this.get('errorMessage').pushError({\n          detail: 'Cannot delete trips that is not empty'\n        });\n      } else {\n        // delete endpoint does not exist in dispatch yet.\n        route.deleteRecord();\n        route.save();\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/routes-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/routes-widget',\n    rowComponent: 'iq-widgets/routes-widget/routes-row',\n    modelName: 'route',\n    title: 'Routes',\n    defaultSortId: 'name',\n    defaultSortAsc: true,\n    columns: [{\n      id: 'name',\n      type: 'text',\n      label: 'Name',\n      valuePath: 'name',\n      valuePreview: '22',\n      editable: false,\n      isMapLabelVisible: true,\n      searchable: true,\n      defaultWidth: 50\n    }, {\n      id: 'vehicle',\n      type: 'uuid',\n      label: 'Vehicle ID',\n      valuePath: 'assignedVehicle.name',\n      searchable: true,\n      defaultWidth: 50\n    }, {\n      id: 'driverId',\n      type: 'uuid',\n      label: 'Driver ID',\n      valuePath: 'assignedDriver.externalId',\n      searchable: true,\n      defaultWidth: 50\n    }, {\n      id: 'driverLastName',\n      type: 'text',\n      label: 'Driver Last Name',\n      valuePath: 'assignedDriver.lastName',\n      searchable: true,\n      defaultWidth: 75\n    }, {\n      id: 'driverFirstName',\n      type: 'text',\n      label: 'Driver First Name',\n      valuePath: 'assignedDriver.firstName',\n      searchable: true,\n      defaultWidth: 60\n    }, {\n      id: 'status',\n      type: 'text',\n      label: 'Status',\n      valuePath: 'status',\n      valuePreview: 'Planned',\n      editable: false,\n      isMapLabelVisible: true,\n      format: 'HH:mm A',\n      defaultWidth: 75\n    }, {\n      id: 'plannedStartTime',\n      type: 'date',\n      label: 'Planned Start Time',\n      valuePath: 'plannedStartTime',\n      valuePreview: '09:00 AM',\n      editable: false,\n      hidden: true,\n      format: 'HH:mm A'\n    }, {\n      id: 'actualStartTime',\n      type: 'date',\n      label: 'Actual Start Time',\n      valuePath: 'routeStartTime',\n      valuePreview: '09:05 AM',\n      hidden: true,\n      format: 'HH:mm A'\n    }, {\n      id: 'plannedBreaks',\n      type: 'enum',\n      label: 'Planned Breaks',\n      valuePath: 'plannedDriverBreaks',\n      cellDesc: 'Driver Breaks',\n      hidden: true\n    }, {\n      id: 'actualBreaks',\n      type: 'enum',\n      label: 'Actual Breaks',\n      valuePath: 'actualDriverBreaks',\n      cellDesc: 'Driver Breaks',\n      hidden: true\n    }, {\n      id: 'vehicleType',\n      type: 'text',\n      label: 'Vehicle Type',\n      valuePath: 'assignedVehicle.vehicleType.name',\n      hidden: true\n    }, {\n      id: 'plannedEndTime',\n      type: 'date',\n      label: 'Planned End Time',\n      valuePath: 'plannedEndTime',\n      valuePreview: '04:00 PM',\n      editable: false,\n      format: 'HH:mm A',\n      hidden: true\n    }, {\n      id: 'actualEndTime',\n      type: 'date',\n      label: 'Actual End Time',\n      valuePath: 'actualStartEvent.timestamp',\n      valuePreview: '04:35 PM',\n      format: 'HH:mm A',\n      hidden: true\n    }, {\n      id: 'plannedStartDate',\n      type: 'date',\n      label: 'Planned Start Date',\n      valuePath: 'plannedStartTime',\n      valuePreview: '2018-05-15',\n      editable: false,\n      format: 'DD/MM/YYYY',\n      hidden: true\n    }, {\n      id: 'actualStartDate',\n      type: 'date',\n      label: 'Actual Start Date',\n      valuePath: 'actualStartEvent.timestamp',\n      valuePreview: '2018-05-15',\n      format: 'DD/MM/YYYY',\n      hidden: true\n    }, {\n      id: 'plannedEndDate',\n      type: 'date',\n      label: 'Planned End Date',\n      valuePath: 'plannedEndTime',\n      valuePreview: '2018-05-15',\n      editable: false,\n      format: 'DD/MM/YYYY',\n      hidden: true\n    }, {\n      id: 'actualEndDate',\n      type: 'date',\n      label: 'Actual End Date',\n      valuePath: 'actualEndEvent.timestamp',\n      valuePreview: '2018-05-15',\n      format: 'DD/MM/YYYY',\n      hidden: true\n    }, {\n      id: 'lifo',\n      type: 'number',\n      label: 'LIFO',\n      valuePath: 'lifoDepth',\n      valuePreview: '0',\n      editable: false,\n      hidden: true\n    }, {\n      id: 'factor',\n      type: 'number',\n      label: 'Factor',\n      valuePath: 'routeFactor',\n      valuePreview: '1',\n      editable: false,\n      hidden: true\n    }, {\n      id: 'otp',\n      type: 'string',\n      label: 'Status',\n      valuePath: 'otpLabel',\n      valuePreview: 'On Time',\n      highlightable: true\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/routes-widget/routes-row/component\", [\"exports\", \"adept-iq/pods/components/table/rows/otp-formatted-row/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    attributeBindings: ['draggable'],\n    draggable: 'true'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/search-trip-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/search-trip-form-widget/config\", \"ember-concurrency\", \"adept-iq/utils/populate-new-trip\", \"adept-iq/utils/populate-copy-trip\", \"adept-iq/utils/populate-edit-trip\", \"adept-iq/utils/populate-search-trip\", \"adept-iq/utils/populate-account\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/populate-call-line\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\", \"adept-iq/utils/check-value\"], function (_exports, _component, _config, _emberConcurrency, _populateNewTrip, _populateCopyTrip, _populateEditTrip, _populateSearchTrip, _populateAccount, _checkAddressFlags, _populateCallLine, _environment, _apiUrls, _checkValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    trip: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    store: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    session: Ember.inject.service(),\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    searchTripComponent: 'iq-widgets/search-trip-form-widget',\n    editTripComponent: 'iq-widgets/edit-trip-form-widget',\n    newTripComponent: 'iq-widgets/new-trip-form-widget',\n    newTripFixComponent: 'iq-widgets/new-trip-fixform-widget',\n    notesSeparator: \"<>\",\n    classNames: ['search-trip-form-widget'],\n\n    init() {\n      this._super(...arguments);\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      let records = this.get('editableRecords');\n      let tripRecord = records.firstObject;\n      let defaultCardNr = 'CASH';\n      let PFCP_GENERAL_CASH_ACCOUNT_NAME = this.get('store').peekAll('tm-config-parameter-value').filterBy('configParameter.id', 'PFCP_GENERAL_CASH_ACCOUNT_NAME');\n\n      if (!Ember.isBlank(PFCP_GENERAL_CASH_ACCOUNT_NAME)) {\n        defaultCardNr = PFCP_GENERAL_CASH_ACCOUNT_NAME[0].get('value');\n      }\n\n      tripRecord.set('acctCardNr', (0, _checkValue.default)(tripRecord.get('acctCardNr')) === defaultCardNr ? '' : tripRecord.get('acctCardNr'));\n\n      if (!Ember.isBlank(this.prepareQuery(true))) {\n        this.onEnter(true);\n      } // install keyboard listener\n\n\n      this._onKeyDown = event => {\n        Ember.run.schedule('actions', this, 'onKeyDown', event);\n      };\n\n      document.addEventListener('keydown', this._onKeyDown);\n    },\n\n    onKeyDown(event) {\n      try {\n        this.set('editModal.errors', []);\n        console.log('onKeyDown ', event.target.value);\n\n        if (event.key === 'Enter') {\n          return this.onEnter(false);\n        }\n      } catch (e) {}\n    },\n\n    prepareQuery(initalLoad) {\n      let records = this.get('editableRecords');\n      let tripRecord = records.firstObject;\n      let tripID = tripRecord.get('tripId');\n      let telephone = tripRecord.get('passengers.0.phone1.number');\n      let name = tripRecord.get('passengers.0.firstName');\n      let description = tripRecord.get('stopPoints.0.address.description');\n      let streetNr = tripRecord.get('stopPoints.0.address.streetNr');\n      let streetName = tripRecord.get('stopPoints.0.address.streetName');\n      let account = tripRecord.get('acctCardNr');\n      let searchURL = '';\n\n      if (!Ember.isBlank(tripID)) {\n        searchURL = searchURL + 'id:' + tripID;\n      }\n\n      if (!Ember.isBlank(telephone) && !Ember.isBlank(telephone.trim())) {\n        searchURL = 'telephone=' + telephone;\n      }\n      /*if(!isBlank(description) && !isBlank(description.trim())) {\n        if(!isBlank(searchURL)) \n          searchURL = searchURL+ '&description='+description.toUpperCase();\n        else\n          searchURL = 'description='+description.toUpperCase();\n      }*/\n\n\n      let defaultCardNr = 'CASH';\n      let PFCP_GENERAL_CASH_ACCOUNT_NAME = this.get('store').peekAll('tm-config-parameter-value').filterBy('configParameter.id', 'PFCP_GENERAL_CASH_ACCOUNT_NAME');\n\n      if (!Ember.isBlank(PFCP_GENERAL_CASH_ACCOUNT_NAME)) {\n        defaultCardNr = PFCP_GENERAL_CASH_ACCOUNT_NAME[0].get('value');\n      }\n\n      if (!Ember.isBlank(name) && !Ember.isBlank(name.trim())) {\n        if (!Ember.isBlank(searchURL)) searchURL = searchURL + '&name=' + name.toUpperCase();else searchURL = 'name=' + name.toUpperCase();\n      }\n\n      if (initalLoad) {\n        if (!Ember.isBlank(account) && !Ember.isBlank(account.trim()) && account.toUpperCase() !== defaultCardNr) {\n          if (!Ember.isBlank(searchURL)) searchURL = searchURL + '&account=' + account.toUpperCase();else searchURL = 'account=' + account.toUpperCase();\n        }\n      } else {\n        if (!Ember.isBlank(account) && !Ember.isBlank(account.trim())) {\n          if (!Ember.isBlank(searchURL)) searchURL = searchURL + '&account=' + account.toUpperCase();else searchURL = 'account=' + account.toUpperCase();\n        }\n      }\n\n      if (!Ember.isBlank(streetNr) && !Ember.isBlank(streetNr.trim())) {\n        if (!Ember.isBlank(searchURL)) searchURL = searchURL + '&streetNr=' + streetNr.toUpperCase();else searchURL = 'streetNr=' + streetNr.toUpperCase();\n      }\n\n      if (!Ember.isBlank(streetName) && !Ember.isBlank(streetName.trim())) {\n        if (!Ember.isBlank(searchURL)) searchURL = searchURL + '&streetName=' + streetName.toUpperCase();else searchURL = 'streetName=' + streetName.toUpperCase();\n      }\n\n      console.log('prepareQuery searchURL', searchURL);\n      return searchURL;\n    },\n\n    populateBookingData(results) {\n      if (!Ember.isEmpty(results)) {\n        let widgetModelData = results;\n\n        if (widgetModelData && widgetModelData.length >= 1) {\n          this.set('editmodalcontext.showWidgetModal', true);\n          this.set('editmodalcontext.widgetModelData', widgetModelData);\n          this.set('editmodalcontext.modelWidgetPath', 'search-trip-widget');\n        } else if (widgetModelData) {\n          this.set('editModal.editableRecords', []);\n          this.get('editModal.editableRecords').pushObject(widgetModelData);\n          widgetModelData = (0, _populateEditTrip.default)(this.get('trip'), widgetModelData, this.get('store'), this.get('geocode'));\n          (0, _populateAccount.default)(widgetModelData, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), widgetModelData.acctCardNr, false);\n          const editTripComponent = this.get('editTripComponent');\n          this.get('editModal').open(editTripComponent, [widgetModelData], this.get('saveTripRecordFunction').bind(this)); //checkAddressFlags(this.get('record'));\n        }\n      } else {\n        this.set('editModal.errors', []);\n        this.get('editModal.errors').pushObject('No result found');\n      }\n    },\n\n    onEnter(initalLoad) {\n      let me = this;\n      this.set('editmodalcontext.showWidgetModal', false);\n      this.set('editmodalcontext.modelWidgetPath', '');\n      let records = this.get('editableRecords');\n      let tripRecord = records.firstObject;\n      let tripID = tripRecord.get('tripId');\n\n      if (!Ember.isBlank(tripID)) {\n        this.store.findRecord('tm-booking', tripID, {\n          reload: true\n        }).then(updatetrip => {\n          this.populateBookingData([updatetrip]);\n        }).catch(function (error) {\n          console.log('error ', error);\n          me.set('editModal.errors', []);\n          me.get('editModal.errors').pushObject('No result found');\n        });\n      } else {\n        let searchURL = this.prepareQuery(initalLoad);\n        this.store.query('tm-booking', {\n          searchURL\n        }).then(results => {\n          this.populateBookingData(results);\n        }).catch(function (error) {\n          console.log('error ', error);\n          me.set('editModal.errors', []);\n          me.get('editModal.errors').pushObject('No result found');\n        });\n      }\n    },\n\n    saveTripRecordFunction(records, editComponentAction) {\n      console.log(' saveTripRecordFunction ', editComponentAction);\n      const me = this;\n      return new Promise((resolve, reject) => {\n        let record = records.firstObject;\n        record.save().then(() => {\n          console.log('after saveTripRecordFunction ');\n          const tripId = record.get('id');\n          me.get('errorMessage').pushInfo({\n            detail: `Trip '${tripId}' successfully saved`\n          });\n          record.set('lastId', record.get('id'));\n          record.set('isForceDirty', false);\n\n          if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClick') {\n            Ember.run(() => {\n              let recordRefresh = [];\n              let newtrip = (0, _populateEditTrip.default)(me.get('trip'), record, me.get('store'), me.get('geocode'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              recordRefresh.push(newtrip);\n              let newTripComponent = me.get('editSwitchTripComponent');\n\n              if (this.get('editModal.editComponent') !== null && this.get('editModal.editComponent') === this.get('editSwitchTripComponent')) {\n                newTripComponent = me.get('editTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          } else if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClearClick') {\n            Ember.run(() => {\n              Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n              me.get('geocode').activateGeocode(false);\n              me.get('geocode').deactivateGeocode();\n              let recordRefresh = [];\n              let newtrip = (0, _populateNewTrip.default)(me.get('trip'), me.get('store'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              newtrip.set('lastId', record.get('lastId'));\n              recordRefresh.push(newtrip); //me.set('editableRecords',recordRefresh);\n              //me.set('records',recordRefresh);\n\n              let newTripComponent = me.get('newSwitchTripComponent');\n\n              if (me.get('editModal.editComponent') !== null && me.get('editModal.editComponent') === me.get('newSwitchTripComponent')) {\n                newTripComponent = me.get('newTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          }\n        }).catch(function (error) {\n          console.log(error);\n          reject(error);\n        });\n      });\n    },\n\n    actions: {\n      onClearClick() {\n        let records = this.get('editableRecords');\n        let tripRecord = records.firstObject;\n        tripRecord.set('tripId', '');\n        tripRecord.set('passengers.0.phone1.number', '');\n        tripRecord.set('passengers.0.firstName', '');\n        tripRecord.set('stopPoints.0.address.description', '');\n        tripRecord.set('stopPoints.0.address.streetNr', '');\n        tripRecord.set('stopPoints.0.address.streetName', '');\n        tripRecord.set('acctCardNr', '');\n        this.set('editmodalcontext.showWidgetModal', false);\n        this.set('editmodalcontext.widgetModelData', []);\n        this.set('editmodalcontext.modelWidgetPath', 'search-trip-widget');\n        this.set('editModal.errors', []);\n      },\n\n      onNewClick() {\n        this.set('records', []);\n        let newtrip = (0, _populateNewTrip.default)(this.get('trip'), this.get('store'));\n        (0, _populateAccount.default)(newtrip, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), newtrip.acctCardNr, true); //this.get('records').pushObject(newtrip);\n        //this.set('editModal.editableRecords',[]);\n        //this.get('editModal.editableRecords').pushObject(newtrip);\n\n        const newTripComponent = this.get('newTripComponent');\n        this.get('editModal').open(newTripComponent, [newtrip], this.get('saveTripRecordFunction').bind(this));\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/search-trip-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Trip',\n      align: 'right',\n      fields: [{\n        id: 'Tel',\n        type: 'text',\n        label: 'Trip ID',\n        accessKey: 't',\n        valuePath: 'tripId'\n      }]\n    }, {\n      title: 'Client Detail',\n      fields: [{\n        id: 'Tel',\n        type: 'text',\n        label: 'Tel',\n        accessKey: 't',\n        valuePath: 'passengers.0.phone1.number'\n      }, {\n        id: 'Name',\n        type: 'text',\n        label: 'Name',\n        accessKey: 'N',\n        valuePath: 'passengers.0.firstName',\n        editable: true\n      }]\n    }, {\n      title: 'Trip Details',\n      fields: [{\n        id: 'Tel',\n        type: 'text',\n        label: 'Street Nr',\n        accessKey: 't',\n        valuePath: 'stopPoints.0.address.streetNr'\n      }, {\n        id: 'Tel',\n        type: 'text',\n        label: 'Street Name',\n        accessKey: 't',\n        valuePath: 'stopPoints.0.address.streetName'\n      }]\n    }, {\n      title: 'Account',\n      align: 'right',\n      fields: [{\n        id: 'Account',\n        type: 'text',\n        label: 'Account',\n        valuePath: 'acctCardNr',\n        accessKey: 'a'\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/search-trip-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/search-trip-widget/config\", \"adept-iq/utils/populate-new-trip\", \"adept-iq/utils/populate-copy-trip\", \"adept-iq/utils/populate-edit-trip\", \"adept-iq/utils/populate-search-trip\", \"adept-iq/utils/populate-account\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/populate-call-line\", \"adept-iq/utils/focus_column_widget_row\", \"adept-iq/config/api-urls\", \"adept-iq/utils/check-value\"], function (_exports, _component, _config, _populateNewTrip, _populateCopyTrip, _populateEditTrip, _populateSearchTrip, _populateAccount, _checkAddressFlags, _populateCallLine, _focus_column_widget_row, _apiUrls, _checkValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['search-trip-widget'],\n    store: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    trip: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    session: Ember.inject.service(),\n    routeexecevent: Ember.inject.service(),\n    textmessage: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    noShowComponent: 'iq-widgets/noshow-event-form-widget',\n    editTripComponent: 'iq-widgets/edit-trip-form-widget',\n    newTripComponent: 'iq-widgets/new-trip-form-widget',\n    cancelTripComponent: 'iq-widgets/cancel-type-form-widget',\n    assignTrip2RouteComponent: 'iq-widgets/assign-trip-2-route-widget',\n    activityLogComponent: 'iq-widgets/activity-log-widget',\n    riderAddresses: null,\n\n    init() {\n      this._super(...arguments);\n\n      let recordId = 1;\n      console.log('this.get(widgetModelData) ', this.get('widgetModelData'));\n      this.get('widgetModelData').forEach(record => {\n        console.log('widgetModelData ', record.id);\n      });\n      this.set('records', this.get('widgetModelData'));\n      let me = this;\n      Ember.run.later(function () {\n        (0, _focus_column_widget_row.default)(me);\n      }, 50);\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', []);\n    },\n\n    saveTripRecordFunction(records, editComponentAction) {\n      console.log(' saveTripRecordFunction ', editComponentAction);\n      const me = this;\n      return new Promise((resolve, reject) => {\n        let record = records.firstObject;\n        record.save().then(() => {\n          console.log('after saveTripRecordFunction ');\n          const tripId = record.get('id');\n          me.get('errorMessage').pushInfo({\n            detail: `Trip '${tripId}' successfully saved`\n          });\n          record.set('lastId', record.get('id'));\n          record.set('isForceDirty', false);\n\n          if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClick') {\n            Ember.run(() => {\n              let recordRefresh = [];\n              let newtrip = (0, _populateEditTrip.default)(me.get('trip'), record, me.get('store'), me.get('geocode'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              recordRefresh.push(newtrip);\n              let newTripComponent = me.get('editSwitchTripComponent');\n\n              if (this.get('editModal.editComponent') !== null && this.get('editModal.editComponent') === this.get('editSwitchTripComponent')) {\n                newTripComponent = me.get('editTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          } else if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClearClick') {\n            Ember.run(() => {\n              Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n              me.get('geocode').activateGeocode(false);\n              me.get('geocode').deactivateGeocode();\n              let recordRefresh = [];\n              let newtrip = (0, _populateNewTrip.default)(me.get('trip'), me.get('store'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              newtrip.set('lastId', record.get('lastId'));\n              recordRefresh.push(newtrip); //me.set('editableRecords',recordRefresh);\n              //me.set('records',recordRefresh);\n\n              let newTripComponent = me.get('newSwitchTripComponent');\n\n              if (me.get('editModal.editComponent') !== null && me.get('editModal.editComponent') === me.get('newSwitchTripComponent')) {\n                newTripComponent = me.get('newTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          }\n        }).catch(function (error) {\n          console.log(error);\n          reject(error);\n        });\n      });\n    },\n\n    actions: {\n      onRowRightClick(row, event) {},\n\n      closeWidget(event) {\n        this._super(...arguments);\n      },\n\n      onRowClick(row, event) {\n        let widgetModelData = row.get('record');\n        this.closeWidget();\n        let tripData = (0, _populateEditTrip.default)(this.get('trip'), widgetModelData, this.get('store'), this.get('geocode'));\n        (0, _populateAccount.default)(tripData, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), widgetModelData.acctCardNr, false); //tripRecord = widgetModelData;    \n        //this.set('editModal.editableRecords',[]);\n        //this.set('editModal.editableRecords',[widgetModelData]);\n\n        this.set('editModal.editableRecords', []);\n        this.get('editModal.editableRecords').pushObject(widgetModelData);\n        this.store.findRecord('tm-route-exec', widgetModelData.id, {\n          reload: true\n        }).then(routeExec => {\n          tripData.set('routeExec', routeExec);\n          let editTripComponent = this.get('editTripComponent');\n\n          if (this.get('editModal.editComponent') !== null && this.get('editModal.editComponent') === this.get('editTripComponent')) {\n            editTripComponent = this.get('editSwitchTripComponent');\n          }\n\n          this.get('editModal').open(editTripComponent, [tripData], this.get('saveTripRecordFunction').bind(this));\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/search-trip-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/search-trip-widget',\n    rowComponent: 'table/rows/otp-formatted-row',\n    modelName: 'tm-booking',\n    defaultSortId: 'id',\n    defaultSortAsc: false,\n    hideWidgetControls: true,\n    hideHeader: true,\n    checkBoxColumn: false,\n    isFormControls: true,\n    title: 'Trip search Details',\n    columns: [{\n      id: 'id',\n      type: 'uuid',\n      label: 'Trip ID',\n      valuePath: 'id',\n      valuePreview: '1',\n      hidden: false,\n      isMapLabelVisible: true,\n      searchable: true,\n      defaultWidth: 100,\n      isMapMCGLabelVisible: true\n    }, {\n      id: 'source',\n      type: 'text',\n      label: 'Trip Origin',\n      valuePath: 'source.type',\n      searchable: true,\n      editable: false,\n      hidden: false,\n      defaultWidth: 60\n    }, {\n      id: 'Type',\n      type: 'text',\n      label: 'Trip Type',\n      valuePath: 'tripType',\n      searchable: true,\n      editable: false,\n      hidden: false,\n      defaultWidth: 60\n    }, {\n      id: 'requestTime',\n      type: 'time',\n      label: 'Pickup Time',\n      valuePath: 'stopPoints.0.passengerEvents.0.time',\n      searchable: true,\n      valuePreview: '08:00 AM',\n      editable: false,\n      hidden: false,\n      format: 'HH:mm A DD-MM-YYYY',\n      defaultWidth: 100\n    }, {\n      id: 'streetNr',\n      type: 'text',\n      label: 'Street Nr',\n      isMapLabelVisible: true,\n      valuePath: 'stopPoints.0.address.streetNr',\n      editable: false,\n      searchable: true,\n      hidden: false,\n      defaultWidth: 75\n    }, {\n      id: 'streetName',\n      type: 'text',\n      label: 'Street Name',\n      isMapLabelVisible: true,\n      valuePath: 'stopPoints.0.address.streetName',\n      editable: false,\n      searchable: true,\n      hidden: false,\n      defaultWidth: 150\n    }, {\n      id: 'paymentType',\n      type: 'text',\n      label: 'Payment',\n      valuePath: 'prices.0.paymentTypeName',\n      searchable: true,\n      valuePreview: 'Single',\n      editable: false,\n      hidden: false,\n      defaultWidth: 80\n    }, {\n      id: 'status',\n      type: 'text',\n      label: 'Trip Status',\n      valuePath: 'status',\n      searchable: true,\n      highlightable: true,\n      valuePreview: 'Planned',\n      hidden: false,\n      isMapLabelVisible: true,\n      defaultWidth: 75,\n      isMapMCGLabel: true\n    }, {\n      id: 'riderName',\n      type: 'text',\n      label: 'Passenger Name',\n      valuePath: 'passengers.0.firstName',\n      hidden: false,\n      searchable: true,\n      defaultWidth: 100\n    }, {\n      id: 'riderPhone',\n      type: 'text',\n      label: 'Phone Number',\n      valuePath: 'passengers.0.phone1.number',\n      hidden: false,\n      searchable: true,\n      defaultWidth: 120\n    }, {\n      id: 'acctCardNr',\n      type: 'text',\n      label: 'Account Card Nr',\n      valuePath: 'prices.0.payerIdentifier',\n      searchable: true,\n      hidden: false,\n      isMapLabelVisible: true,\n      defaultWidth: 75\n    }, {\n      id: 'fare',\n      type: 'text',\n      label: 'Fare',\n      valuePath: 'trip.fare',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'jobpriority',\n      type: 'text',\n      label: 'Priority',\n      valuePath: 'trip.jobpriority',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'bookingType',\n      type: 'text',\n      label: 'Type',\n      valuePath: 'bookingType',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'dispatchType',\n      type: 'text',\n      label: 'Dispatch Method',\n      valuePath: 'dispatchType',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/stands-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/stands-widget/config\", \"adept-iq/config/environment\", \"lodash\"], function (_exports, _component, _config, _environment, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* eslint-disable ember/avoid-leaking-state-in-ember-objects */\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['stands-widget'],\n    editModal: Ember.inject.service(),\n    store: Ember.inject.service(),\n    trip: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    session: Ember.inject.service(),\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', [{\n        name: 'Activity Log',\n        action: () =>\n        /* models */\n        {}\n      }]);\n      this.set('bulkActions', [{\n        name: 'Activity Log',\n        action: () =>\n        /* models */\n        {}\n      }]);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/stands-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/stands-widget',\n    rowComponent: 'table/rows/zonestat-formatted-row',\n    modelName: 'stand',\n    accessKey: '9',\n    defaultSortId: 'asap',\n    defaultSortAsc: false,\n    title: 'Stands',\n    columns: [{\n      id: 'name',\n      type: 'text',\n      label: 'Name',\n      valuePath: 'name',\n      editable: false,\n      searchable: true,\n      parentLabel: true,\n      index: 0,\n      isMapLabelVisible: true,\n      hidden: false\n    }, {\n      id: 'asap',\n      type: 'number',\n      label: 'ASAP',\n      valuePath: 'asap',\n      index: 1,\n      searchable: true,\n      editable: false,\n      isMapLabelVisible: true,\n      highlightable: true,\n      imgPath: 'fa-user',\n      hidden: false\n    }, {\n      id: 'pb',\n      type: 'number',\n      label: 'PB',\n      valuePath: 'pb',\n      index: 2,\n      searchable: true,\n      isMapLabelVisible: true,\n      imgPath: 'fa-clock-o',\n      editable: false,\n      hidden: false\n    }, {\n      id: 'auction',\n      type: 'number',\n      label: 'Auction',\n      index: 3,\n      valuePath: 'auction',\n      searchable: true,\n      isMapLabelVisible: true,\n      imgPath: 'fa-gavel',\n      editable: false,\n      hidden: false\n    }, {\n      id: 'freeVehicle',\n      type: 'number',\n      label: 'Free Vehicles',\n      valuePath: 'freeVehicle',\n      index: 4,\n      searchable: true,\n      isMapLabelVisible: true,\n      imgPath: 'fa-cab',\n      editable: false,\n      highlightable: true,\n      hidden: false\n    }, {\n      id: 'stcVehicle',\n      type: 'number',\n      label: 'STC Vehicles',\n      valuePath: 'stcVehicle',\n      index: 5,\n      searchable: true,\n      isMapLabelVisible: true,\n      imgPath: 'fa-circle-o',\n      editable: false,\n      highlightable: true,\n      hidden: false\n    }, {\n      id: 'totalVehicle',\n      type: 'number',\n      label: 'Total Vehicles',\n      valuePath: 'totalVehicle',\n      index: 6,\n      searchable: true,\n      isMapLabelVisible: true,\n      imgPath: 'fa-cog',\n      editable: false,\n      highlightable: true,\n      hidden: true\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/stops-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/stops-form-widget/config\"], function (_exports, _component, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/stops-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Section 1',\n      fields: [{\n        id: 'id',\n        type: 'uuid',\n        label: 'ID',\n        valuePath: 'id',\n        editable: false\n      }]\n    }, {\n      title: 'Section 2',\n      fields: [{\n        id: 'state',\n        type: 'enum',\n        label: 'State',\n        valuePath: 'state',\n        extra: {\n          options: ['Not Started', 'Sign On', 'Start', 'In-Progress', 'On-Break', 'End', 'Signoff'],\n          allowMultiple: true\n        }\n      }, {\n        id: 'xmin',\n        type: 'text',\n        label: 'X Min',\n        valuePath: 'xmin'\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/stops-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/stops-widget/config\", \"adept-iq/utils/find-row-record\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\", \"moment\"], function (_exports, _component, _config, _findRowRecord, _environment, _apiUrls, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = ['clusters', 'vehicleRoutes', 'vehicleRoutes.driverShifts', 'vehicleRoutes.vehicle', 'vehicleRoutes.driverShifts.driver', 'vehicleRoutes.vehicle.vehicleType', 'driverBreaks', 'driverBreaks.driverBreakEvents', 'vehicleRoutes.vehicle.vehicleEvents', 'clusters.trips', 'clusters.trips.stops'];\n\n  var _default = _component.default.extend({\n    classNames: ['stops-widget'],\n    editModal: Ember.inject.service(),\n    dragCoordinator: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    editComponent: 'iq-widgets/stops-form-widget',\n    driverBreakEditComponent: 'iq-widgets/driver-breaks-form-widget',\n    vehicleEventComponent: 'iq-widgets/vehicle-event-form-widget',\n    noShowComponent: 'iq-widgets/noshow-event-stop-form-widget',\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n    routeexecevent: Ember.inject.service(),\n\n    saveDriverBreakFunction(records) {\n      this.set('editModal.errors', []);\n      return new Promise((resolve, reject) => {\n        records.forEach(record => {\n          let promisedStartMoment = (0, _moment.default)(record.get('promisedStart'));\n          let promisedEndMoment = (0, _moment.default)(record.get('promisedEnd'));\n          record.set('estimatedStart', record.get('promisedStart'));\n          record.set('estimatedEnd', record.get('promisedEnd'));\n          record.set('plannedDuration', promisedEndMoment.diff(promisedStartMoment, 'seconds'));\n          record.set('externalId', `${record.get('route.id')}${(0, _moment.default)().unix()}`);\n          record.set('notes', `${promisedEndMoment.diff(promisedStartMoment, 'minutes')} minutes break`);\n          record.set('ordinal', 1);\n          record.set('state', 'planned');\n          record.save().then(() => {\n            record.set('isForceDirty', false);\n            this.get('activeContext').refreshTableContent(this.get('modelName'));\n          }).catch(e => {\n            reject(e);\n          });\n        });\n      });\n    },\n\n    sendMessagesToVehicle(record, status) {\n      const assignedDriver = record.get('trip.cluster.route.assignedDriver');\n      const assignedVehicle = record.get('trip.cluster.route.assignedVehicle');\n      const rider = record.get(\"trip.rider\");\n      const message = ` ${status} action performed by dispatch for ${rider.get('firstName')} ${rider.get('lastName')},\n               ${record.get('type')} : ${record.get('place.address')} , ${record.get('trip.requestTime')} `;\n      const draftMessage = this.get('store').createRecord('tm-canned-message', {\n        // TODO: should this be `driver.externalId`?\n        driverId: assignedDriver.get('externalId'),\n        vehicleId: assignedVehicle.get('name'),\n        routeId: `${record.get('trip.cluster.route.id')}`,\n        replyToMsgId: `${record.get('trip.id')}`,\n        body: message // TODO: how do we get the current route ID for a vehicle?\n        // routeId: driver.get('routeId')\n\n      });\n      return draftMessage.save();\n    },\n\n    sourceRowId: null,\n    dragTarget: null,\n\n    saveStopArriveRecordFunction(records) {\n      let me = this;\n      return new Promise((resolve, reject) => {\n        records.forEach(record => {\n          const routeStartData = this.get('routeexecevent').stopArriveData();\n          const preparedRouteStartData = this.get('routeexecevent').prepareStopArriveData(routeStartData, record);\n          const json = JSON.stringify(preparedRouteStartData);\n          const session = this.get('session');\n          return this.get('ajax').post(_apiUrls.API.avlmService.host + '/production/route-exec-event', {\n            method: 'POST',\n            contentType: \"application/json\",\n            headers: {\n              \"Authorization\": `Bearer ${session.data.authenticated.token}`\n            },\n            data: json\n          }).then(response => {\n            record.set('isForceDirty', false);\n            record.set('id', response.data.id);\n            me.get('activeContext').refreshTableContent('route');\n            me.sendMessagesToVehicle(record, 'Arrive');\n          }).catch(function (error) {\n            reject(error);\n          });\n        });\n      });\n    },\n\n    saveStopDepartRecordFunction(records) {\n      const me = this;\n      return new Promise((resolve, reject) => {\n        records.forEach(record => {\n          const routeEndData = this.get('routeexecevent').stopDepartData();\n          const preparedRouteEndData = this.get('routeexecevent').prepareStopDepartData(routeEndData, record);\n          const json = JSON.stringify(preparedRouteEndData);\n          const session = this.get('session');\n          return this.get('ajax').post(_apiUrls.API.avlmService.host + '/production/route-exec-event', {\n            method: 'POST',\n            contentType: \"application/json\",\n            headers: {\n              \"Authorization\": `Bearer ${session.data.authenticated.token}`\n            },\n            data: json\n          }).then(response => {\n            record.set('isForceDirty', false);\n            record.set('id', response.data.id);\n            me.get('activeContext').refreshTableContent('route');\n            me.sendMessagesToVehicle(record, 'Depart');\n          }).catch(function (error) {\n            reject(error);\n          });\n        });\n      });\n    },\n\n    saveNoShowRecordFunction(records) {\n      const me = this;\n      return new Promise((resolve, reject) => {\n        records.forEach(record => {\n          const noShowData = this.get('routeexecevent').noShowData();\n          const prepareNoShowData = this.get('routeexecevent').prepareStopNoShowData(noShowData, record);\n          const json = JSON.stringify(prepareNoShowData);\n          const session = this.get('session');\n          return this.get('ajax').post(_apiUrls.API.avlmService.host + '/production/route-exec-event', {\n            method: 'POST',\n            contentType: \"application/json\",\n            headers: {\n              \"Authorization\": `Bearer ${session.data.authenticated.token}`\n            },\n            data: json\n          }).then(response => {\n            record.set('isForceDirty', false);\n            record.set('id', response.data.id);\n            me.get('activeContext').refreshTableContent('route');\n          }).catch(function (error) {\n            reject(error);\n          });\n        });\n      });\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      /*this.set('singleActions', [{\n        name: 'Arrive',\n          action: (model) => {\n            let records = [];\n            records.push(model);\n            model.set('odometer','');\n            model.set('timestamp',new Date());\n            this.saveStopArriveRecordFunction(records);\n          }\n        },\n        {\n          name: 'Depart',\n          action: (model) => {\n            let records = [];\n            records.push(model);\n            model.set('odometer','');\n            model.set('timestamp',new Date());\n            this.saveStopDepartRecordFunction(records);\n          }\n        },\n        {\n          name: 'No Show',\n          action: (model) => {\n            let noShowReasonCodes = this.get('store').peekAll('no-show-reason-code');\n            model.set('noShowReason',noShowReasonCodes.firstObject);\n            model.set('timestamp',new Date());\n            let noShowComponent = this.get('noShowComponent');\n            this.get('editModal').open(noShowComponent, [model], this.get('saveNoShowRecordFunction').bind(this));\n           }\n        },\n        {\n          name: 'Remove',\n          action: ( model) => {\n           }\n        } ,\n        {\n          name: 'Edit',\n            action: ( model) => {\n             }\n        },\n        {\n          name: 'Add Driver Break',\n            action: (model) => {\n              let placeModel = this.get('store').createRecord('place');\n              let newModel = this.get('store').createRecord('driver-break', {\n                route: model.get('trip.cluster.route'),\n                place: placeModel,\n                promisedStart: new Date(),\n                promisedEnd: new Date()\n              });\n               this.get('records').pushObject(newModel);\n              let editComponent = this.get('driverBreakEditComponent');\n              this.get('editModal').open(editComponent, [newModel], this.get('saveRecordFunction').bind(this));\n            }\n        }\n      ]);*/\n\n      this.set('bulkActions', [{\n        name: 'Bulk Edit',\n        action: models => {\n          let editComponent = this.get('editComponent');\n          this.get('editModal').open(editComponent, models);\n        }\n      }]);\n    },\n\n    // singleActions: computed('table.rows.@each.{selected,status}', function() {\n    //   let stopArriveAction = this.get('stopArriveAction');\n    //   let stopDepartAction = this.get('stopDepartAction');\n    //   let stopNoshowAction = this.get('stopNoshowAction');\n    //   let breakStartAction = this.get('breakStartAction');\n    //   let breakEndAction = this.get('breakEndAction');\n    //   let breakRemoveAction = this.get('breakRemoveAction');\n    //   let breakAddAction = this.get('breakAddAction');\n    //   let breakEditAction = this.get('breakEditAction');\n    //   let row = this.get('table.rows').findBy('selected', true);\n    //   if (!row) return [];\n    //   switch(row.get('type')) {\n    //     case 'pick': {\n    //       switch(row.get('status')) {\n    //         case 'Arrived': {\n    //           return [stopDepartAction,stopNoshowAction,breakAddAction];\n    //         }\n    //         case 'Scheduled'  :  {\n    //           if(row.get('actualArrivalTime') === null ||\n    //             row.get('actualArrivalTime') === undefined) {\n    //               return [stopArriveAction,stopNoshowAction,breakAddAction];\n    //           } else {\n    //             return [stopNoshowAction,breakAddAction];\n    //           }\n    //         }\n    //         case 'Cancelled': {\n    //           return [breakAddAction];\n    //         }\n    //         case 'No Showed': {\n    //           return [breakAddAction];\n    //         }\n    //         default: {\n    //           return [breakAddAction];\n    //         }\n    //       }\n    //       break;\n    //     }\n    //     case 'drop': {\n    //       switch(row.get('status')) {\n    //         case 'Arrived'  :  {\n    //           return [stopDepartAction,breakAddAction];\n    //         }\n    //         case 'Scheduled': {\n    //           if(row.get('actualArrivalTime') === null ||\n    //             row.get('actualArrivalTime') === undefined) {\n    //               return [stopArriveAction,breakAddAction];\n    //           }\n    //         }\n    //         case 'Cancelled': {\n    //           return [breakAddAction];\n    //         }\n    //         default: {\n    //           return [breakAddAction];\n    //         }\n    //       }\n    //       break;\n    //     }\n    //    case 'break': {\n    //     switch(row.get('status')) {\n    //       case 'Arrived': {\n    //         return [breakEndAction,breakAddAction];\n    //       }\n    //       case 'Scheduled'  :  {\n    //         if(row.get('breakStartTime') === null ||\n    //           row.get('breakStartTime') === undefined) {\n    //             return [breakStartAction,breakEditAction,breakRemoveAction,breakAddAction];\n    //         } else {\n    //           return [breakEndAction,breakAddAction];\n    //         }\n    //       }\n    //       case 'Departed': {\n    //         return [breakAddAction];\n    //       }\n    //       default: {\n    //         return [breakAddAction];\n    //       }\n    //     }\n    //     }\n    //   }\n    // }),\n    dragRowGroup: Ember.computed('row', function () {\n      return this.get('table.rows');\n    }).readOnly(),\n    dragDirection: Ember.computed('dragTarget', 'sourceRowId', function () {\n      const targetRow = this.get('dragTarget');\n\n      if (targetRow) {\n        const rows = this.get('dragRowGroup');\n        const targetIdx = rows.indexOf((0, _findRowRecord.findRowRecordByElement)(targetRow, rows));\n        const sourceIdx = rows.indexOf(rows.findBy('rowId', this.get('sourceRowId')));\n        return sourceIdx - targetIdx;\n      }\n    }).readOnly(),\n    dragOverClass: Ember.computed('dragDirection', function () {\n      const direction = this.get('dragDirection') < 0 ? 'below' : 'above';\n      return ` drag-target-${direction} drag-target`;\n    }),\n\n    dragStart(event) {\n      const row = (0, _findRowRecord.findRowRecordByElement)(event.target, this.get('dragRowGroup'));\n      if (Ember.isBlank(row)) return;\n      this.set('sourceRowId', row.get('rowId'));\n      const dragId = Ember.guidFor(row);\n      this.get('dragCoordinator').setSourceRow(dragId, row, 'stops');\n      event.dataTransfer.setData('text', dragId);\n    },\n\n    dragOver(event) {\n      event.preventDefault();\n      if (this.get('dragCoordinator.widgetType') !== 'stops') return;\n      const rowElement = (0, _findRowRecord.findRowElement)(event.target); // User might drag over other widget elements.\n\n      if (Ember.isBlank(rowElement)) {\n        return;\n      }\n\n      this.set('dragTarget', rowElement);\n      this.$(`#${rowElement.id}`).addClass(this.get('dragOverClass'));\n    },\n\n    dragLeave(event) {\n      event.preventDefault();\n      const rowElement = (0, _findRowRecord.findRowElement)(event.target); // User might drag over other widget elements.\n\n      if (Ember.isBlank(rowElement)) {\n        return;\n      }\n\n      this.$(`#${rowElement.id}`).removeClass(['drag-target-above', 'drag-target-below', 'drag-target']);\n    },\n\n    drop(event) {\n      if (this.get('dragCoordinator.widgetType') !== 'stops') return;\n      const rowElement = (0, _findRowRecord.findRowElement)(event.target); // User might drop onto other widget elements.\n\n      if (Ember.isBlank(rowElement)) {\n        return;\n      }\n\n      this.$(`#${rowElement.id}`).removeClass(['drag-target-above', 'drag-target-below', 'drag-target']);\n      const table = this.get('table');\n      const rows = this.get('dragRowGroup'); // let sourceRowRecord = rows.findBy('rowId', this.get('sourceRowId'));\n      // // User might drop elements that are not Stops widget rows.\n      // if (isBlank(sourceRowRecord)) {\n      //   return;\n      // }\n\n      const sourceRowRecord = this.get('dragCoordinator').getSourceRow(event.dataTransfer.getData('text'));\n      if (Ember.isBlank(sourceRowRecord)) return;\n      const targetRowRecord = (0, _findRowRecord.findRowRecordByElement)(event.target, rows);\n\n      const _rows = rows.toArray();\n\n      const targetRowIdx = _rows.indexOf(targetRowRecord) + (this.get('dragDirection') < 0 ? 0 : 0);\n      event.dataTransfer.dropEffect = 'move';\n      event.preventDefault();\n      event.stopPropagation();\n      table.propertyWillChange('rows');\n\n      _rows.removeObject(sourceRowRecord);\n\n      _rows.insertAt(targetRowIdx, sourceRowRecord);\n\n      rows.setObjects(_rows);\n      table.propertyDidChange('rows');\n    },\n\n    dragEnd() {\n      this.set('sourceRowId', null);\n      this.set('dragTarget', null);\n      this.get('dragCoordinator').clearSourceRows();\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/stops-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/stops-widget',\n    rowComponent: 'table/rows/status-formatted-row',\n    modelName: 'stop',\n    defaultSortId: 'trip.id',\n    defaultSortAsc: false,\n    accessKey: 's',\n    title: 'Stops',\n    columns: [{\n      id: 'tripId',\n      type: 'number',\n      label: 'Trip ID',\n      valuePath: 'trip.id',\n      isMapLabelVisible: true,\n      searchable: true,\n      defaultWidth: 60,\n      isMapMCGLabelVisible: true\n    }, {\n      id: 'type',\n      type: 'text',\n      label: 'Type',\n      valuePath: 'type',\n      valuePreview: 'Pick',\n      searchable: true,\n      isMapLabelVisible: true,\n      defaultWidth: 50\n    }, {\n      id: 'name',\n      type: 'text',\n      label: 'Passenger Name',\n      isMapLabelVisible: true,\n      valuePath: 'passengerName',\n      searchable: true,\n      defaultWidth: 75\n    }, {\n      id: 'riderPhone',\n      type: 'text',\n      label: 'Phone Number',\n      valuePath: 'trip.rider.phoneNr',\n      hidden: false,\n      searchable: true,\n      defaultWidth: 70\n    }, {\n      id: 'status',\n      type: 'text',\n      label: 'Status',\n      isMapLabelVisible: true,\n      valuePath: 'trip.drivedStatus',\n      highlightable: true,\n      searchable: true,\n      editable: false,\n      defaultWidth: 60\n    }, {\n      id: 'requestedTime',\n      type: 'time',\n      label: 'Pickup Time',\n      isMapLabelVisible: true,\n      valuePath: 'trip.requestedTime',\n      editable: false,\n      format: 'HH:mm A',\n      searchable: true,\n      defaultWidth: 70\n    }, {\n      id: 'address',\n      type: 'text',\n      label: 'Address',\n      isMapLabelVisible: true,\n      valuePath: 'place.streetAddress',\n      editable: false,\n      searchable: true,\n      hidden: false,\n      defaultWidth: 100\n    }, {\n      id: 'pickupCity',\n      type: 'text',\n      label: 'Pickup City',\n      isMapLabelVisible: true,\n      valuePath: 'place.region',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 80\n    }, {\n      id: 'notes',\n      type: 'text',\n      label: 'Notes',\n      valuePath: 'drivernotes',\n      editable: false,\n      searchable: true,\n      hidden: true,\n      defaultWidth: 100\n    }, {\n      id: 'calloutType',\n      type: 'text',\n      label: 'Callout',\n      valuePath: 'calloutType',\n      editable: false,\n      searchable: true,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'invoiceRefNum',\n      type: 'text',\n      label: 'PO#',\n      valuePath: 'invoiceRefNum',\n      editable: false,\n      searchable: true,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'fare',\n      type: 'number',\n      label: 'Fare',\n      valuePath: 'fare',\n      editable: false,\n      searchable: true,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'bookingId',\n      type: 'number',\n      label: 'Booking ID',\n      valuePath: 'bookingId',\n      editable: false,\n      searchable: true,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'zone',\n      type: 'text',\n      label: 'Zone',\n      isMapLabelVisible: true,\n      valuePath: 'trip.zone.name',\n      editable: false,\n      searchable: true,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'attributes',\n      type: 'text',\n      label: 'Attributes',\n      valuePath: 'trip.attributes',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'callSign',\n      type: 'text',\n      label: 'Callsign',\n      valuePath: 'trip.vehicle.callsign',\n      searchable: true,\n      isMapLabelVisible: true\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/stops-widget/stops-row/component\", [\"exports\", \"adept-iq/pods/components/table/rows/otp-formatted-row/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    attributeBindings: ['draggable'],\n    draggable: 'true',\n    // TODO: delete or revise when API and/or model is updated.\n    otp: Ember.computed('row.otp', function () {\n      return Number(this.get('row.otp'));\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/subscriptions-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/subscriptions-form-widget/config\", \"moment\"], function (_exports, _component, _config, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    editModal: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    store: Ember.inject.service(),\n\n    init() {\n      this._super(...arguments);\n\n      let records = this.get('editableRecords');\n      records.forEach(record => {\n        if (record.get('exclusions').length === 0) {\n          let exclusionRecord = this.get('store').createRecord('subscription-exclusion');\n          exclusionRecord.set('subscription', record);\n          record.get('exclusions').pushObject(exclusionRecord);\n        }\n      });\n    },\n\n    validateRecords() {\n      let valid = true;\n      let records = this.get('editableRecords');\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        const requestTime = (0, _moment.default)(record.get('requestTime'));\n        let recurrencePatterns = record.recurrencePatterns;\n\n        if (Ember.isNone(requestTime)) {\n          valid = false;\n          this.get('editModal.errors').pushObject('Date should be there');\n        }\n\n        recurrencePatterns.forEach(recurrencePattern => {\n          if (recurrencePattern.type === 'monthly') {\n            if (Ember.isNone(recurrencePattern.weekOfMonth) && Ember.isNone(recurrencePattern.dayOfMonth)) {\n              valid = false;\n              this.get('editModal.errors').pushObject('Day of month and week of month cannot be both blank.');\n            } else if (!Ember.isNone(recurrencePattern.weekOfMonth) && recurrencePattern.selectedDOWs.length < 1) {\n              valid = false;\n              this.get('editModal.errors').pushObject('Select day of the week.');\n            }\n          }\n        });\n      });\n      return valid;\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        let lastUndoState = this.get('editModal.undoHistory').popObject();\n\n        if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n          records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n        } else {\n          lastUndoState.forEach(({\n            record,\n            properties\n          }) => {\n            record.setProperties(properties);\n          });\n        }\n\n        this.set('isLastUndoStateCommitted', true);\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/subscriptions-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'id',\n        type: 'text',\n        label: 'ID',\n        valuePath: 'id',\n        editable: false\n      }]\n    }, {\n      title: 'Editable',\n      fields: [{\n        id: 'anchor',\n        type: 'enum',\n        label: 'Anchor',\n        valuePath: 'anchor',\n        extra: {\n          options: ['pick', 'drop']\n        }\n      }, {\n        id: 'purpose',\n        type: 'text',\n        label: 'Purpose',\n        valuePath: 'purpose'\n      }, {\n        id: 'maximumOccurrences',\n        type: 'number',\n        label: 'Max Occurences',\n        valuePath: 'maximumOccurrences'\n      }, {\n        id: 'requestTime',\n        type: 'timeflatpickr',\n        label: 'Request Time',\n        valuePath: 'requestTime',\n        editable: true\n      }]\n    }, {\n      title: 'Fare',\n      fields: [{\n        id: 'type',\n        type: 'searchable-enum',\n        label: 'Payment Type',\n        valuePath: 'fareType',\n        editable: true,\n        extra: {\n          optionModelName: 'fare-type',\n          optionSearchPath: 'name',\n          optionSelectedPath: '',\n          optionIncludes: '',\n          optionSearchEnabled: false\n        }\n      }, {\n        id: 'fare',\n        type: 'number',\n        label: 'Amount',\n        valuePath: 'fare',\n        editable: true\n      }]\n    }, {\n      title: 'Origin',\n      fields: [{\n        id: 'origins',\n        type: 'locations',\n        label: '',\n        valuePath: 'origins',\n        modelName: 'location',\n        isMultiType: true,\n        extra: {\n          aliasPath: 'alias',\n          notesPath: 'notes',\n          streetNrPath: 'streetNr',\n          streetNamePath: 'streetName',\n          localityPath: 'city',\n          regionPath: 'county',\n          subRegionPath: 'state',\n          postalCodePath: 'postalCode',\n          countryPath: 'country',\n          defaultOptionsPath: 'rider.iqRider.rmsRider.riderAddresses',\n          useOptionRecord: true\n        }\n      }]\n    }, {\n      title: 'Destination',\n      fields: [{\n        id: 'destinations',\n        type: 'locations',\n        label: '',\n        valuePath: 'destinations',\n        modelName: 'location',\n        isMultiType: true,\n        extra: {\n          aliasPath: 'alias',\n          notesPath: 'notes',\n          streetNrPath: 'streetNr',\n          streetNamePath: 'streetName',\n          localityPath: 'city',\n          regionPath: 'county',\n          subRegionPath: 'state',\n          postalCodePath: 'postalCode',\n          countryPath: 'country',\n          defaultOptionsPath: 'rider.iqRider.rmsRider.riderAddresses',\n          useOptionRecord: true\n        }\n      }]\n    }, {\n      title: 'Travel Needs',\n      fields: [{\n        id: 'travelNeeds',\n        type: 'travel-needs',\n        label: '',\n        valuePath: 'subscriptionTravelNeeds',\n        modelName: 'subscription-travel-need',\n        isMultiType: true,\n        extra: {\n          travelNeedTypeModelName: 'travel-need-type',\n          passengerTypeModelName: 'passenger-type',\n          countPath: 'count',\n          travelNeedTypePath: 'travelNeedType',\n          passengerTypePath: 'passengerType'\n        }\n      }]\n    }, {\n      title: 'Subscription',\n      fields: [{\n        id: 'subscriptions',\n        type: 'subscriptions',\n        label: '',\n        valuePath: 'recurrencePatterns',\n        modelName: 'subscription-recurence-pattern',\n        isMultiType: true,\n        extra: {\n          recurringPath: 'recurring',\n          dailyConfigPath: 'type',\n          selectedWOMPath: 'selectedWOM',\n          startDateTimePath: 'subscriptionStartDate',\n          endDateTimePath: 'subscriptionEndDate',\n          sundayPath: 'sunday',\n          mondayPath: 'monday',\n          tuesdayPath: 'tuesday',\n          wednesdayPath: 'wednesday',\n          thursdayPath: 'thursday',\n          fridayPath: 'friday',\n          saturdayPath: 'saturday',\n          excludeStartDateTimePath: 'exclusionStartDate',\n          excludeEndDateTimePath: 'exclusionEndDate',\n          maxOccurencesPath: 'subscriptionMaxOccurences',\n          separationCountPath: 'separationCount',\n          dayOfMonthPath: 'dayOfMonth'\n        }\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/subscriptions-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/subscriptions-widget/config\", \"lodash\"], function (_exports, _component, _config, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    dragCoordinator: Ember.inject.service(),\n    store: Ember.inject.service(),\n    classNames: ['subscriptions-widget'],\n    editModal: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    editComponent: 'iq-widgets/subscriptions-form-widget',\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    saveRecordFunction(records) {\n      this.set('editModal.errors', []);\n\n      function saveDeleteAllTravelNeeds(objects) {\n        const deleteObjects = _lodash.default.difference(objects.content.canonicalState, objects.content.currentState); // delete objects that have been removed from the array\n\n\n        return Promise.all(deleteObjects.map(deleteObject => {\n          deleteObject._record.deleteRecord();\n\n          return deleteObject.save();\n        })).then(() => {\n          return Promise.all(objects.map(object => {\n            object.save();\n          }));\n        });\n      }\n\n      function saveNewTravelNeedObjects(subscription, oldObjects, newObjects) {\n        return Promise.all(newObjects.map(newObject => {\n          if (newObject.get('count') !== null && newObject.get('count') > 0) {\n            newObject.set('subscription', subscription);\n            newObject.save();\n            return newObject;\n          }\n        }));\n      }\n\n      function saveRecurrencePatterns(objects) {\n        return Promise.all(objects.map(object => {\n          object.save();\n        }));\n      }\n\n      function saveExlusions(objects) {\n        return Promise.all(objects.map(object => {\n          if (!Ember.isNone(object.get('startDate')) && !Ember.isNone(object.get('endDate'))) {\n            object.save();\n          }\n        }));\n      }\n\n      return new Promise((resolve, reject) => {\n        records.forEach(record => {\n          record.save().then(() => {\n            saveRecurrencePatterns(record.get('recurrencePatterns')).then(() => {\n              saveExlusions(record.get('exclusions')).then(() => {\n                saveDeleteAllTravelNeeds(record.get('subscriptionTravelNeeds')).then(() => {\n                  saveNewTravelNeedObjects(record, record.get('subscriptionTravelNeeds'), record.get('newTravelNeeds')).then(() => {\n                    record.set('isForceDirty', false);\n                    this.get('activeContext').refreshTableContent(this.get('modelName'));\n                  });\n                });\n              });\n            });\n          }).catch(e => {\n            reject(e);\n          });\n        });\n      });\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.set('tableActions', [{\n        name: 'New Subscription',\n        action: function () {\n          let subscriptionModel = this.get('store').createRecord(this.get('config.modelName'));\n          let subscriptionTravelNeedModel = this.get('store').createRecord('subscription-travel-need');\n          let exclusionModel = this.get('store').createRecord('subscription-exclusion');\n          let recurrencePatternModel = this.get('store').createRecord('subscription-recurrence-pattern');\n          subscriptionModel.set('subscriptionTravelNeeds', [subscriptionTravelNeedModel]);\n          subscriptionModel.set('exclusions', [exclusionModel]);\n          subscriptionModel.set('recurrencePatterns', [recurrencePatternModel]);\n          subscriptionModel.set('startDate', new Date());\n          subscriptionModel.set('endDate', new Date());\n          subscriptionModel.set('requestTime', new Date());\n          this.get('records').pushObject(subscriptionModel);\n          let editComponent = this.get('editComponent');\n          this.get('editModal').open(editComponent, [subscriptionModel], this.get('saveRecordFunction').bind(this));\n        }.bind(this)\n      }]);\n      this.set('singleActions', [{\n        name: 'Edit',\n        action: model => {\n          let editComponent = this.get('editComponent');\n          this.get('editModal').open(editComponent, [model], this.get('saveRecordFunction').bind(this));\n        }\n      }, {\n        name: 'Activity Log',\n        action: () =>\n        /* model */\n        {}\n      }]);\n      this.set('bulkActions', [{\n        name: 'Bulk Edit',\n        action: () =>\n        /* models */\n        {}\n      }, {\n        name: 'Activity Log',\n        action: () =>\n        /* models */\n        {}\n      }]);\n    },\n\n    rowGroup: Ember.computed('row', function () {\n      return this.get('table.rows');\n    }).readOnly()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/subscriptions-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/subscriptions-widget',\n    rowComponent: 'table/rows/otp-formatted-row',\n    modelName: 'subscription',\n    title: 'Subscriptions',\n    columns: [{\n      id: 'id',\n      type: 'uuid',\n      label: 'ID',\n      valuePath: 'stop.id',\n      searchable: true,\n      defaultWidth: 60,\n      hidden: true\n    }, {\n      id: 'riderFirstName',\n      index: 0,\n      type: 'text',\n      label: 'First Name',\n      valuePath: 'rider.firstName',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 75\n    }, {\n      id: 'riderLastName',\n      index: 1,\n      type: 'text',\n      label: 'Last Name',\n      valuePath: 'rider.lastName',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 75\n    }, {\n      id: 'riderPhone',\n      index: 2,\n      type: 'text',\n      label: 'Rider Phone',\n      valuePath: 'rider.lastName',\n      editable: false,\n      hidden: false,\n      searchable: true,\n      defaultWidth: 70\n    }, {\n      id: 'status',\n      index: 3,\n      type: 'text',\n      label: 'Status',\n      valuePath: 'status',\n      editable: false,\n      hidden: false,\n      defaultWidth: 60\n    }, {\n      id: 'externalId',\n      index: 4,\n      type: 'text',\n      label: 'Subscription ID',\n      valuePath: 'id',\n      editable: false,\n      hidden: false,\n      defaultWidth: 60\n    }, {\n      id: 'Start Date',\n      index: 5,\n      type: 'datetime',\n      label: 'Start Date',\n      valuePath: 'startDate',\n      editable: false,\n      format: 'YYYY-MM-DD',\n      defaultWidth: 50\n    }, {\n      id: 'datetime',\n      index: 6,\n      type: 'datetime',\n      label: 'End Date',\n      valuePath: 'endDate',\n      editable: false,\n      format: 'YYYY-MM-DD',\n      defaultWidth: 50\n    }, {\n      id: 'recurrence',\n      index: 7,\n      type: 'enum',\n      label: 'Recurrence',\n      valuePath: 'formattedRecurrence',\n      cellDesc: 'Recurrences',\n      editable: false,\n      hidden: false,\n      defaultWidth: 50\n    }, {\n      id: 'riderId',\n      index: 8,\n      type: 'text',\n      label: 'Passenger ID',\n      valuePath: 'rider.externalId',\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'requestTime',\n      index: 9,\n      type: 'time',\n      label: 'Request Time',\n      valuePath: 'requestTime',\n      editable: false,\n      hidden: true,\n      format: 'HH:mm A',\n      defaultWidth: 50\n    }, {\n      id: 'promisedTime',\n      index: 10,\n      type: 'datetime',\n      label: 'Promised Time',\n      valuePath: 'promisedTime',\n      editable: false,\n      format: 'YYYY-MM-DD hh:mm A',\n      defaultWidth: 50\n    }, {\n      id: 'serviceStartTime',\n      index: 11,\n      type: 'date',\n      label: 'Service Start Time',\n      valuePath: 'serviceWindowStartTime',\n      editable: false,\n      hidden: true,\n      format: 'HH:mm A',\n      defaultWidth: 50\n    }, {\n      id: 'serviceEndTime',\n      index: 12,\n      type: 'date',\n      label: 'Service End Time',\n      valuePath: 'serviceWindowEndTime',\n      editable: false,\n      hidden: true,\n      format: 'HH:mm A',\n      defaultWidth: 50\n    }, {\n      id: 'pickupaddress',\n      index: 13,\n      type: 'text',\n      label: 'Pickup Address ',\n      valuePath: 'origin.fullAddress',\n      editable: false,\n      hidden: true,\n      defaultWidth: 80\n    }, {\n      id: 'dropaddress',\n      index: 14,\n      type: 'text',\n      label: 'Dropoff Address',\n      valuePath: 'destincation.fullAddress',\n      editable: false,\n      hidden: true,\n      defaultWidth: 80\n    }, {\n      id: 'anchor',\n      index: 15,\n      type: 'text',\n      label: 'Anchor',\n      valuePath: 'anchor',\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'notes',\n      index: 16,\n      type: 'text',\n      label: 'Notes',\n      valuePath: 'notes',\n      editable: false,\n      hidden: true,\n      searchable: true,\n      defaultWidth: 50\n    }, {\n      id: 'passengerNotes',\n      index: 17,\n      type: 'text',\n      label: 'Passenger Notes',\n      valuePath: 'rider.notes',\n      editable: false,\n      hidden: true,\n      searchable: true,\n      defaultWidth: 80\n    }, {\n      id: 'travelNeeds',\n      index: 18,\n      type: 'number',\n      label: 'Travel Needs',\n      valuePath: 'noOfTravelNeeds',\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'fare',\n      index: 19,\n      type: 'text',\n      label: 'Fare',\n      valuePath: 'fare',\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'paymentType',\n      index: 20,\n      type: 'text',\n      label: 'Payment Type',\n      valuePath: 'fareType.name',\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'otp',\n      index: 21,\n      type: 'number',\n      label: 'OTP',\n      valuePath: 'otp',\n      editable: false,\n      hidden: false,\n      highlightable: true\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/trip-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/trip-form-widget/config\", \"adept-iq/utils/check-value\", \"moment\", \"adept-iq/utils/populate-new-trip\", \"adept-iq/utils/populate-copy-trip\", \"adept-iq/utils/populate-edit-trip\", \"adept-iq/utils/populate-search-trip\", \"adept-iq/utils/populate-account\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\"], function (_exports, _component, _config, _checkValue, _moment, _populateNewTrip, _populateCopyTrip, _populateEditTrip, _populateSearchTrip, _populateAccount, _environment, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    trip: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    store: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    session: Ember.inject.service(),\n    editComponentAction: null,\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    searchTripComponent: 'iq-widgets/search-trip-form-widget',\n    editTripComponent: 'iq-widgets/edit-trip-form-widget',\n    newTripComponent: 'iq-widgets/new-trip-form-widget',\n    editSwitchTripComponent: 'iq-widgets/edit-switch-trip-form-widget',\n    newSwitchTripComponent: 'iq-widgets/new-switch-trip-form-widget',\n    newTripFixComponent: 'iq-widgets/new-trip-fixform-widget',\n    cancelTripComponent: 'iq-widgets/cancel-type-form-widget',\n    notesSeparator: \"<>\",\n    classNames: ['trip-form-widget'],\n\n    prepareData() {\n      let records = this.get('editableRecords');\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        //Setting Data from helper Model Properties to orignal Model Properties.\n        let requiredAttributes = [];\n\n        if (!Ember.isEmpty(record.get('attributes'))) {\n          record.get('attributes').forEach(function (item) {\n            requiredAttributes.push({\n              \"type\": item.get('type'),\n              \"cnt\": 0\n            });\n          });\n        }\n\n        record.set('passengers.0.requiredAttributes', requiredAttributes);\n        record.set('stopPoints.0.passengerEvents.0.driverNote', (0, _checkValue.default)(record.get('driverNotes')) + this.get('notesSeparator') + (0, _checkValue.default)(record.get('predefinedNotes.driverNotes')));\n        record.set('passengers.0.bookingNote', (0, _checkValue.default)(record.get('operatorNotes')) + this.get('notesSeparator') + (0, _checkValue.default)(record.get('predefinedNotes.operatorNotes')));\n        /*try {\n          record.set('stopPoints.0.address.formattedAddress', record.get('stopPoints.0.address.tomtomFormattedAddress.address.freeformAddress'));\n         } catch(e) {\n         }\n         try {\n          record.set('stopPoints.1.address.formattedAddress', record.get('stopPoints.1.address.tomtomFormattedAddress.address.freeformAddress'));\n        } catch(e) {\n          //console.log(e);\n        }*/\n\n        try {\n          record.set('price.payerIdentifier', record.get('account.attributes.account.accountId'));\n        } catch (e) {//console.log(e);\n        }\n\n        try {\n          record.set('prices.0.payerIdentifier', record.get('account.attributes.account.accountId'));\n        } catch (e) {\n          console.log(e);\n        }\n\n        try {\n          record.set('prices.0.fixed', record.get('fixedAmount'));\n        } catch (e) {\n          console.log(e);\n        }\n\n        console.log('prepareData record', record);\n      });\n    },\n\n    validateRecords() {\n      let valid = true;\n      this.prepareData();\n      let records = this.get('editableRecords');\n      console.log('validateRecords', records);\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        const requestTime = (0, _moment.default)(record.stopPoints[0].passengerEvents[0].time);\n\n        if (Ember.isNone(requestTime)) {\n          valid = false;\n          this.get('editModal.errors').pushObject('Date should be there');\n        }\n\n        let latlng = \"\";\n\n        if (record.stopPoints[0].address.coord.lat !== undefined && record.stopPoints[0].address.coord.lng !== undefined && record.stopPoints[0].address.coord.lat !== 0 && record.stopPoints[0].address.coord.lng !== 0 && record.stopPoints[0].address.coord.lat !== 181 && record.stopPoints[0].address.coord.lng !== 181 && record.stopPoints[0].address.coord.lat !== -181 && record.stopPoints[0].address.coord.lng !== -181) {\n          latlng = `${record.stopPoints[0].address.coord.lat}/${record.stopPoints[0].address.coord.lng}`;\n        }\n\n        if (Ember.isEmpty(latlng)) {\n          valid = false;\n          this.get('editModal.errors').pushObject('Valid Pickup address should be there');\n        }\n        /* if (record.stopPoints[0].address.streetNr !== undefined) {\n           valid = false;\n           this.get('editModal.errors').pushObject('Pickup address should contain street number');\n         }*/\n        //TODO Temparory for Taxibook Integration\n\n\n        if (Ember.isBlank(record.acctCardNr)) {\n          valid = false;\n          this.get('editModal.errors').pushObject('Account should be there');\n        }\n      });\n      return valid;\n    },\n\n    init() {\n      this._super(...arguments);\n\n      this.set('editmodalcontext.showWidgetModal', false);\n      this.set('editModal.showActivityLog', false);\n      this.set('editModal.editComponentAction', '');\n      /*if(isEmpty(this.get('editableRecords'))) {\n      let newtrip =  populateNewTrip(this.get('trip'),\n                                          this.get('store'));\n         populateAccount(newtrip,\n                        null,\n                        this.get('geocode'),\n                        this.get('store'),\n                        this.get('editmodalcontext'),\n                        this.get('searchservice'),\n                        this.get('accountSearchPath'),\n                        newtrip.acctCardNr,\n                        true);\n        this.get('editableRecords').pushObject(newtrip);\n        let newTripComponent = this.get('newTripComponent');\n        this.get('editModal').open(newTripComponent, [newtrip], this.get('saveTripRecordFunction').bind(this));\n      }*/\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      const el = this.$('input,.ember-power-select-trigger'); //console.log('el ',el);\n\n      if (el && el[0]) {\n        el[0].focus();\n      }\n    },\n\n    saveTripRecordFunction(records, editComponentAction) {\n      console.log(' saveTripRecordFunction ', editComponentAction);\n      const me = this;\n      return new Promise((resolve, reject) => {\n        let record = records.firstObject;\n        record.save().then(() => {\n          console.log('after saveTripRecordFunction ');\n          const tripId = record.get('id');\n          me.get('errorMessage').pushInfo({\n            detail: `Trip '${tripId}' successfully saved`\n          });\n          record.set('lastId', record.get('id'));\n          record.set('isForceDirty', false);\n\n          if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClick') {\n            Ember.run(() => {\n              Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n              me.get('geocode').activateGeocode(false);\n              me.get('geocode').deactivateGeocode();\n              let recordRefresh = [];\n              let newtrip = (0, _populateEditTrip.default)(me.get('trip'), record, me.get('store'), me.get('geocode'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              recordRefresh.push(newtrip);\n              let newTripComponent = me.get('editSwitchTripComponent');\n\n              if (this.get('editModal.editComponent') !== null && this.get('editModal.editComponent') === this.get('editSwitchTripComponent')) {\n                newTripComponent = me.get('editTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          } else if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClearClick') {\n            Ember.run(() => {\n              Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n              me.get('geocode').activateGeocode(false);\n              me.get('geocode').deactivateGeocode();\n              let recordRefresh = [];\n              let newtrip = (0, _populateNewTrip.default)(me.get('trip'), me.get('store'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              newtrip.set('lastId', record.get('lastId'));\n              recordRefresh.push(newtrip); //me.set('editableRecords',recordRefresh);\n              //me.set('records',recordRefresh);\n\n              let newTripComponent = me.get('newSwitchTripComponent');\n\n              if (me.get('editModal.editComponent') !== null && me.get('editModal.editComponent') === me.get('newSwitchTripComponent')) {\n                newTripComponent = me.get('newTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          }\n        }).catch(function (error) {\n          console.log(error);\n          reject(error);\n        });\n      });\n    },\n\n    saveCancelRecordFunction(records) {\n      let me = this;\n      return new Promise((resolve, reject) => {\n        records.forEach(record => {\n          let tripId = record.id;\n          let session = this.get('session');\n          return this.get('ajax').patch(_apiUrls.API.tripManagementService.host + '/booking/' + record.id, {\n            method: 'PATCH',\n            //return this.get('ajax').delete(ENV.API.avlmBookingService.host+'/tripAssignmentAPI/taapi/booking/'+record.id, {\n            //method: 'DELETE',  \n            contentType: \"application/json\",\n            dataType: \"text\",\n            headers: {\n              \"Authorization\": `Bearer ${session.data.authenticated.token}`\n            },\n            data: {\n              \"data\": {\n                \"type\": \"booking\",\n                \"id\": record.id,\n                \"attributes\": {\n                  \"status\": \"cancelled\"\n                }\n              }\n            }\n          }).then(response => {\n            record.set('isForceDirty', false);\n            me.get('errorMessage').pushInfo({\n              detail: `Trip '${tripId}' successfully cancelled`\n            });\n            let newtrip = (0, _populateNewTrip.default)(me.get('trip'), me.get('store'));\n            (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, true); //me.get('records').pushObject(newtrip);\n            //this.set('editModal.editableRecords',[]);\n            //this.get('editModal.editableRecords').pushObject(newtrip);\n\n            const newTripComponent = me.get('newTripComponent');\n            me.get('editModal').open(newTripComponent, [newtrip], this.get('saveTripRecordFunction').bind(me));\n          }).catch(function (error) {\n            me.set('editModal.errors', []);\n\n            if (error.payload && error.payload.message) {\n              me.get('editModal.errors').pushObject(error.payload.message);\n            }\n\n            reject(error);\n          });\n        });\n      });\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        let lastUndoState = this.get('editModal.undoHistory').popObject();\n\n        if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n          records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n        } else {\n          lastUndoState.forEach(({\n            record,\n            properties\n          }) => {\n            record.setProperties(properties);\n          });\n        }\n\n        this.set('isLastUndoStateCommitted', true);\n      },\n\n      async onSearchClick() {\n        this.set('editModal.errors', []);\n        Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n        await this.get('geocode').activateGeocode(false);\n        await this.set('addressRecord', null);\n        await this.get('geocode').deactivateGeocode();\n        let records = this.get('editableRecords');\n        const newtrip = (0, _populateSearchTrip.default)(this.get('trip'), this.get('store'));\n        let tripRecord = records.firstObject;\n        newtrip.set('passengers.0.phone1.number', (0, _checkValue.default)(tripRecord.get('passengers.0.phone1.number')));\n        newtrip.set('stopPoints.0.address.description', (0, _checkValue.default)(tripRecord.get('stopPoints.0.address.description')));\n        newtrip.set('stopPoints.0.address.streetNr', (0, _checkValue.default)(tripRecord.get('stopPoints.0.address.streetNr')));\n        newtrip.set('stopPoints.0.address.streetName', (0, _checkValue.default)(tripRecord.get('stopPoints.0.address.streetName')));\n        newtrip.set('acctCardNr', (0, _checkValue.default)(tripRecord.get('acctCardNr')) === 'CASH' ? '' : tripRecord.get('acctCardNr'));\n        newtrip.set('passengers.0.firstName', (0, _checkValue.default)(tripRecord.get('passengers.0.firstName') === 'CASH' ? '' : tripRecord.get('passengers.0.firstName')));\n        const searchTripComponent = this.get('searchTripComponent');\n        this.get('editModal').open(searchTripComponent, [newtrip], this.get('searchTripRecordFunction'));\n      },\n\n      onCloseClick() {\n        this.get('geocode').deactivateGeocode();\n        this.get('service').close();\n        /* if(this.get('activeContext.clearCheckedItemsOnAction')) {\n           this.get('activeContext').clearCheckedItems();\n           this.get('errorMessage').pushInfo({ });\n         }*/\n      },\n\n      async onApplyClick() {\n        let me = this;\n        let records = me.get('editableRecords');\n\n        if (this.validateRecords()) {\n          this.set('editmodalcontext.editComponentAction', 'onApplyClick');\n          console.log('onApplyClick editComponentAction', this.get('editComponentAction'));\n          await this.get('service').apply();\n          await this.get('editModal').commit('onApplyClick');\n        }\n      },\n\n      onCopyClick() {\n        let me = this;\n        let records = me.get('editableRecords');\n        let recordRefresh = [];\n        records.forEach(record => {\n          let newtrip = (0, _populateCopyTrip.default)(this.get('trip'), record, this.get('store'), this.get('geocode'));\n          (0, _populateAccount.default)(newtrip, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), newtrip.acctCardNr, false); //console.log('newtrip ',newtrip);\n\n          recordRefresh.push(newtrip);\n        });\n        me.set('editableRecords', recordRefresh);\n        me.set('records', recordRefresh);\n        let newTripComponent = me.get('newTripComponent');\n        me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n      },\n\n      onActivitLogs() {\n        let me = this;\n        let records = this.get('editableRecords');\n        let tripRecord = records.firstObject;\n        let tripID = tripRecord.get('id');\n\n        if (!Ember.isBlank(tripID)) {\n          this.get('store').query('tm-activity-log', {\n            filter: {\n              tripId: tripID\n            }\n          }).then(function (activityLogs) {\n            Ember.run(() => {\n              me.set('editmodalcontext.showWidgetModal', true);\n              me.set('editmodalcontext.widgetModelData', activityLogs);\n              me.set('editmodalcontext.modelWidgetPath', 'activity-log-widget');\n            });\n          });\n        } else {\n          this.get('editModal.errors').pushObject('No Trip ID entered for Activity Logs');\n        }\n      },\n\n      async onApplyClearClick() {\n        let me = this;\n        let records = me.get('editableRecords');\n\n        if (this.validateRecords()) {\n          this.set('editmodalcontext.editComponentAction', 'onApplyClearClick');\n          Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n          await this.get('service').apply();\n          await this.get('editModal').commit('onApplyClearClick');\n        }\n      },\n\n      async onCancelClick() {\n        this.set('editModal.errors', []);\n        Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n        await this.get('geocode').activateGeocode(false);\n        await this.set('addressRecord', null);\n        await this.get('geocode').deactivateGeocode();\n        let records = this.get('editableRecords');\n        let tripRecord = records.firstObject;\n        let tripID = tripRecord.get('id');\n\n        if (!Ember.isBlank(tripID)) {\n          tripRecord.set('timestamp', new Date()); //this.get('records').pushObject(model);\n          //TODO for fix new trip screen\n          //this.set('editModal.editableRecords',[]);\n          //this.get('editModal.editableRecords').pushObject(model);\n\n          let cancelTripComponent = this.get('cancelTripComponent');\n          this.get('editModal').open(cancelTripComponent, [tripRecord], this.get('saveCancelRecordFunction').bind(this));\n        } else {\n          this.get('editModal.errors').pushObject('No Trip to Cancel');\n        }\n      },\n\n      async onClearClick() {\n        this.set('editModal.errors', []);\n        Ember.$('html,body,.tomtom-map').removeClass('custom-cursor');\n        await this.get('geocode').activateGeocode(false);\n        await this.set('addressRecord', null);\n        await this.get('geocode').deactivateGeocode();\n        let records = this.get('editableRecords');\n        let recordRefresh = [];\n        records.forEach(() => {\n          let newtrip = (0, _populateNewTrip.default)(this.get('trip'), this.get('store'));\n          (0, _populateAccount.default)(newtrip, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), newtrip.acctCardNr, true);\n          recordRefresh.push(newtrip);\n        }); //this.get('lastRecordId').push([]);\n\n        this.set('records', recordRefresh);\n        this.set('editableRecords', recordRefresh);\n        let newTripComponent = this.get('newTripComponent');\n\n        if (this.get('editModal.editComponent') !== null && this.get('editModal.editComponent') === this.get('newTripComponent')) {\n          newTripComponent = this.get('newSwitchTripComponent');\n        }\n\n        this.get('editModal').open(newTripComponent, recordRefresh, this.get('saveTripRecordFunction').bind(this));\n        /*if(this.get('activeContext.clearCheckedItemsOnAction')) {\n          this.get('activeContext').clearCheckedItems();\n          this.get('errorMessage').pushInfo({ });\n        } */\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/trip-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'id',\n        type: 'text',\n        label: 'ID',\n        valuePath: 'id',\n        editable: false\n      }, {\n        id: 'lastId',\n        type: 'text',\n        label: 'ID',\n        valuePath: 'lastId',\n        editable: false\n      }, {\n        id: 'callsign',\n        type: 'text',\n        label: 'CallSign',\n        valuePath: 'routeExec.vehicle.callsign',\n        editable: false\n      }, {\n        id: 'status',\n        type: 'text',\n        label: 'Status',\n        valuePath: 'status',\n        editable: false\n      }, {\n        id: 'driver',\n        type: 'text',\n        label: 'Driver',\n        valuePath: 'routeExec.driver.firstName',\n        editable: false\n      }]\n    }, {\n      title: 'Client Detail',\n      fields: [{\n        id: 'Tel',\n        type: 'phone-model',\n        label: 'Tel',\n        accessKey: 't',\n        maxlength: 15,\n        valuePath: 'passengers.0.phone1.number',\n        extra: {\n          optionModelName: 'rider-profile',\n          optionSearchPath: 'attributes/phone1/number',\n          optionSearchEnabled: false,\n          optionWidgetModel: 'callLines',\n          optionModelWidgetPath: 'rider-profile-widget'\n        }\n      }, {\n        id: 'Name',\n        type: 'text',\n        label: 'Name',\n        maxlength: 40,\n        accessKey: 'N',\n        valuePath: 'passengers.0.firstName',\n        editable: true\n      }]\n    }, {\n      title: 'Trip Details',\n      fields: [{\n        id: 'addresses',\n        type: 'locations',\n        label: '',\n        valuePath: 'stopPoints',\n        modelName: 'tm-address',\n        isMultiType: true,\n        extra: {\n          addressTypePath: 'passengerEvents.0.type',\n          descriptionPath: 'address.description',\n          unitPath: 'address.unitNr',\n          streetNrPath: 'address.streetNr',\n          streetNamePath: 'address.streetName',\n          localityPath: 'address.region',\n          regionPath: 'address.county',\n          subRegionPath: 'address.state',\n          postalCodePath: 'address.postalCode',\n          countryPath: 'address.country',\n          defaultOptionsPath: 'callerTrips',\n          pickup: {\n            label: 'Pickup',\n            accessKey: 'p'\n          },\n          dropoff: {\n            label: 'Destination',\n            accessKey: 'e'\n          },\n          swipeAddressAccessKey: 'w'\n        }\n      }, {\n        id: 'requestTime',\n        type: 'datetimeflatpickr',\n        label: 'Date Time',\n        accessKey: 'm',\n        valuePath: 'stopPoints.0.passengerEvents.0.time',\n        editable: true,\n        hidden: false,\n        format: 'YYYY-MM-DD hh:mm A',\n        defaultWidth: 50\n      }]\n    }, {\n      title: 'Account',\n      align: 'right',\n      fields: [{\n        id: 'Account',\n        type: 'account-model',\n        label: 'Account',\n        valuePath: 'acctCardNr',\n        accessKey: 'c',\n        maxlength: 20,\n        extra: {\n          parentValuePath: 'account',\n          optionModelName: 'rider-profile',\n          optionSearchPath: 'attributes/account/accountId',\n          optionSearchEnabled: false,\n          optionWidgetModel: 'callLines',\n          optionModelWidgetPath: 'rider-profile-widget'\n        }\n      },\n      /*{\n        id: 'accountPickupTrips',\n        type: 'buttonwithpopup',\n        label: 'Account Pickups',\n        accessKey: 'k',\n        extra: {\n          isButtonEnabledPath: 'isAccountPickups',\n          widgetModelDataPath: 'editmodelcontext.accountTrips',\n          modelWidgetPath:  'address-widget'\n        }\n      },\n      {\n        id: 'accountFixedPriceTrips',\n        type: 'buttonwithpopup',\n        label: 'Fixed Prices',\n        accessKey: 'x',\n        extra: {\n          isButtonEnabledPath: 'isAccountFixedPriceTrips',\n          widgetModelDataPath: 'editmodelcontext.accountFixedPriceTrips',\n          modelWidgetPath:  'fixed-price-trip-widget'\n        }\n      },*/\n      {\n        id: 'reference',\n        type: 'text',\n        accessKey: 'R',\n        label: 'P.O#',\n        maxlength: 40,\n        valuePath: 'customerReference',\n        editable: true\n      }, {\n        id: 'fare',\n        type: 'number',\n        decimal: 2,\n        label: 'Fixed Price',\n        accessKey: 'F',\n        valuePath: 'fixedAmount',\n        editable: true\n      }]\n    }, {\n      title: 'Travel Needs',\n      align: 'right',\n      fields: [{\n        id: 'attributes',\n        type: 'multiselect',\n        label: '',\n        accessKey: 'a',\n        valuePath: 'attributes',\n        cellDesc: 'attributes',\n        hidden: false,\n        isMultiType: true,\n        extra: {\n          additionalValuePath: 'manualAttributes',\n          optionModelName: 'tm-common-operational-attribute',\n          optionSearchPath: 'name'\n        }\n      }]\n    }, {\n      title: 'Services',\n      align: 'right',\n      fields: [\n      /*{\n      id: 'taxis',\n      type: 'enum',\n      label: 'Taxis',\n      valuePath: 'taxis',\n      cellDesc: 'taxis',\n      accessKey: 'i',\n      editable: true,\n      hidden: false,\n      extra: {\n      options: [1, 2, 3, 4, 5],\n      optionSearchEnabled: false\n      },\n      allowMultiple: false\n      },\n      {\n      id: 'noOfpassenger',\n      type: 'enum',\n      label: 'Passenger',\n      valuePath: 'noOfpassenger',\n      cellDesc: 'noOfpassenger',\n      accessKey: 'g',\n      editable: true,\n      hidden: false,\n      extra: {\n      options: [1, 2, 3, 4, 5],\n      optionSearchEnabled: false\n      },\n      allowMultiple: false\n      },*/\n      {\n        id: 'callout',\n        type: 'radio',\n        label: 'Reminder',\n        valuePath: 'passengers.0.callout',\n        hidden: false,\n        extra: {\n          options: [\"none\", \"call\", \"sms\"]\n        }\n      }]\n    }, {\n      title: 'Notes',\n      fields: [{\n        id: 'driverNotes',\n        type: 'text',\n        label: 'Driver',\n        multiLine: true,\n        accessKey: 'r',\n        maxlength: 140,\n        valuePath: 'driverNotes',\n        placeholder: 'Driver Notes',\n        editable: true\n      }, {\n        id: 'driverNotesAutoPopulate',\n        type: 'specialtext',\n        label: '-',\n        valuePath: 'predefinedNotes.driverNotes',\n        editable: true,\n        extra: {\n          movePath: 'driverNotes',\n          moveSperator: '\\\\'\n        }\n      }, {\n        id: 'operatorNotes',\n        type: 'text',\n        label: 'Operator',\n        multiLine: true,\n        maxlength: 140,\n        accessKey: 'o',\n        valuePath: 'operatorNotes',\n        editable: true\n      }, {\n        id: 'operatorNotesAutoPopulate',\n        type: 'text',\n        label: '-',\n        valuePath: 'predefinedNotes.operatorNotes',\n        editable: false\n      }]\n    } //TODO - enabled when do subscription\n\n    /*, {\n      title: 'Subscription',\n      fields: [{\n        id: 'subscriptions',\n        type: 'subscriptions',\n        label: '',\n        valuePath: 'subscriptions.firstObject.recurrencePatterns',\n        modelName: 'subscription-recurence-pattern',\n        isMultiType: true,\n        extra: {\n           recurringPath: 'recurring',\n          dailyConfigPath: 'type',\n          selectedWOMPath: 'selectedWOM',\n          startDateTimePath: 'subscriptionStartDate',\n          endDateTimePath: 'subscriptionEndDate',\n          sundayPath: 'sunday',\n          mondayPath: 'monday',\n          tuesdayPath: 'tuesday',\n          wednesdayPath: 'wednesday',\n          thursdayPath: 'thursday',\n          fridayPath: 'friday',\n          saturdayPath: 'saturday',\n          excludeStartDateTimePath: 'exclusionStartDate',\n          excludeEndDateTimePath: 'exclusionEndDate',\n          maxOccurencesPath: 'subscriptionMaxOccurences',\n          separationCountPath: 'separationCount',\n          dayOfMonthPath: 'dayOfMonth',\n          useOptionRecord: true\n        }\n      }]\n    }*/\n\n    /* , {\n       title: 'Message',\n       align: 'right',\n       fields: [{\n         id: 'add-new-message',\n         type: 'add-new-message',\n         label: '',\n         accessKey: 'a',\n         valuePath: 'messages',\n         cellDesc: 'messages',\n         hidden: false,\n         isMultiType: true\n       }]\n     }*/\n    ]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/trips-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/trips-widget/config\", \"adept-iq/utils/find-row-record\", \"adept-iq/utils/populate-new-trip\", \"adept-iq/utils/populate-copy-trip\", \"adept-iq/utils/populate-edit-trip\", \"adept-iq/utils/populate-account\", \"adept-iq/utils/populate-new-text-message\", \"adept-iq/config/environment\", \"moment\", \"adept-iq/config/api-urls\"], function (_exports, _component, _config, _findRowRecord, _populateNewTrip, _populateCopyTrip, _populateEditTrip, _populateAccount, _populateNewTextMessage, _environment, _moment, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['trips-widget'],\n    dragCoordinator: Ember.inject.service(),\n    store: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    trip: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    session: Ember.inject.service(),\n    routeexecevent: Ember.inject.service(),\n    textmessage: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    noShowComponent: 'iq-widgets/noshow-event-form-widget',\n    editTripComponent: 'iq-widgets/edit-trip-form-widget',\n    newTripComponent: 'iq-widgets/new-trip-form-widget',\n    cancelTripComponent: 'iq-widgets/cancel-type-form-widget',\n    assignTrip2RouteComponent: 'iq-widgets/assign-trip-2-route-widget',\n    activityLogComponent: 'iq-widgets/activity-log-widget',\n\n    init() {\n      this._super(...arguments);\n\n      this.get('editModal').set('showActivityLog', false); // if(!ENV.APP.fullMode) {\n\n      /*let newtrip =  populateNewTrip(this.get('trip'),\n                       this.get('store'));\n          populateAccount(newtrip,\n                         null,\n                         this.get('geocode'),\n                         this.get('store'),\n                         this.get('editmodalcontext'),\n                         this.get('searchservice'),\n                         this.get('accountSearchPath'),\n                         newtrip.acctCardNr,\n                         true);\n          //this.get('records').pushObject(newtrip);\n         //this.set('editModal.editableRecords',[]);\n         //this.get('editModal.editableRecords').pushObject(newtrip);\n         const newTripComponent = this.get('newTripComponent');\n         this.get('editModal').open(newTripComponent, [newtrip], this.get('saveTripRecordFunction').bind(this));\n       //}*/\n    },\n\n    willDestroyElement() {\n      document.removeEventListener('keydown', this._onKeyDown);\n    },\n\n    saveTripRecordFunction(records, editComponentAction) {\n      console.log(' saveTripRecordFunction ', editComponentAction);\n      const me = this;\n      return new Ember.RSVP.Promise((resolve, reject) => {\n        let record = records.firstObject;\n        record.save().then(() => {\n          console.log('after saveTripRecordFunction ');\n          const tripId = record.get('id');\n          me.get('errorMessage').pushInfo({\n            detail: `Trip '${tripId}' successfully saved`\n          });\n          record.set('lastId', record.get('id'));\n          record.set('isForceDirty', false);\n\n          if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClick') {\n            Ember.run(() => {\n              let recordRefresh = [];\n              let newtrip = (0, _populateEditTrip.default)(me.get('trip'), record, me.get('store'), me.get('geocode'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              recordRefresh.push(newtrip);\n              let newTripComponent = me.get('editSwitchTripComponent');\n\n              if (this.get('editModal.editComponent') !== null && this.get('editModal.editComponent') === this.get('editSwitchTripComponent')) {\n                newTripComponent = me.get('editTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          } else if (!Ember.isBlank(editComponentAction) && editComponentAction === 'onApplyClearClick') {\n            Ember.run(() => {\n              $('html,body,.tomtom-map').removeClass('custom-cursor');\n              me.get('geocode').activateGeocode(false);\n              me.get('geocode').deactivateGeocode();\n              let recordRefresh = [];\n              let newtrip = (0, _populateNewTrip.default)(me.get('trip'), me.get('store'));\n              (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, false);\n              newtrip.set('lastId', record.get('lastId'));\n              recordRefresh.push(newtrip); //me.set('editableRecords',recordRefresh);\n              //me.set('records',recordRefresh);\n\n              let newTripComponent = me.get('newSwitchTripComponent');\n\n              if (me.get('editModal.editComponent') !== null && me.get('editModal.editComponent') === me.get('newSwitchTripComponent')) {\n                newTripComponent = me.get('newTripComponent');\n              }\n\n              me.get('editModal').open(newTripComponent, recordRefresh, me.get('saveTripRecordFunction').bind(me));\n            });\n          }\n        }).catch(function (error) {\n          console.log(error);\n          reject(error);\n        });\n      });\n    },\n\n    saveCancelRecordFunction(records) {\n      let me = this;\n      return new Ember.RSVP.Promise((resolve, reject) => {\n        records.forEach(record => {\n          let tripId = record.id;\n          let session = this.get('session');\n          return this.get('ajax').patch(_apiUrls.API.tripManagementService.host + '/booking/' + record.id, {\n            method: 'PATCH',\n            //return this.get('ajax').delete(ENV.API.avlmBookingService.host+'/tripAssignmentAPI/taapi/booking/'+record.id, {\n            //method: 'DELETE',  \n            contentType: \"application/json\",\n            dataType: \"text\",\n            headers: {\n              \"Authorization\": `Bearer ${session.data.authenticated.token}`\n            },\n            data: {\n              \"data\": {\n                \"type\": \"booking\",\n                \"id\": record.id,\n                \"attributes\": {\n                  \"status\": \"cancelled\"\n                }\n              }\n            }\n          }).then(response => {\n            record.set('isForceDirty', false);\n            me.get('errorMessage').pushInfo({\n              detail: `Trip '${tripId}' successfully cancelled`\n            });\n            let newtrip = (0, _populateNewTrip.default)(me.get('trip'), me.get('store'));\n            (0, _populateAccount.default)(newtrip, null, me.get('geocode'), me.get('store'), me.get('editmodalcontext'), me.get('searchservice'), me.get('accountSearchPath'), newtrip.acctCardNr, true); //me.get('records').pushObject(newtrip);\n            //this.set('editModal.editableRecords',[]);\n            //this.get('editModal.editableRecords').pushObject(newtrip);\n\n            const newTripComponent = me.get('newTripComponent');\n            me.get('editModal').open(newTripComponent, [newtrip], this.get('saveTripRecordFunction').bind(me));\n          }).catch(function (error) {\n            me.set('editModal.errors', []);\n\n            if (error.payload && error.payload.message) {\n              me.get('editModal.errors').pushObject(error.payload.message);\n            }\n\n            reject(error);\n          });\n        });\n      });\n    },\n\n    sendMessageAssignTrip2RouteFunction(record, status, dsTripId) {\n      let assignedDriver = record.get('assignRoute.assignedDriver');\n      let assignedVehicle = record.get('assignRoute.assignedVehicle');\n      let message = ` Trip ${status} for ${record.get('trip.rider.firstName')} ${record.get('trip.rider.firstName')},\n                Pickup: ${record.get('trip.pick.location.streetAddress')} , ${record.get('trip.requestTime')} ,\n                Dropoff: ${record.get('trip.drop.location.streetAddress')} `;\n      let draftMessage = this.get('store').createRecord('tm-canned-message', {\n        driverId: assignedDriver.get('externalId'),\n        vehicleId: assignedVehicle.get('name'),\n        routeId: `${record.get('assignRoute.id')}`,\n        replyToMsgId: `${dsTripId}`,\n        body: message\n      });\n      return draftMessage.save();\n    },\n\n    sendMessageTripMovefromRouteFunction(record, status, dsTripId) {\n      let assignedDriver = record.get('dsTrip.cluster.route.assignedDriver');\n      let assignedVehicle = record.get('dsTrip.cluster.route.assignedVehicle');\n      let message = ` Trip ${status} for ${record.get('trip.rider.firstName')} ${record.get('trip.rider.firstName')},\n                Pickup: ${record.get('trip.pick.location.streetAddress')} , ${record.get('trip.requestTime')} ,\n                Dropoff: ${record.get('trip.drop.location.streetAddress')} `;\n      let draftMessage = this.get('store').createRecord('tm-canned-message', {\n        driverId: assignedDriver.get('externalId'),\n        vehicleId: assignedVehicle.get('name'),\n        routeId: `${record.get('dsTrip.cluster.route.id')}`,\n        replyToMsgId: `${dsTripId}`,\n        body: message\n      });\n      return draftMessage.save();\n    },\n\n    sendMessagesToVehicles(record, status) {\n      let assignedDriver = record.get('dsTrip.cluster.route.assignedDriver');\n      let assignedVehicle = record.get('dsTrip.cluster.route.assignedVehicle');\n      let message = ` ${status} action performed by dispatch for ${record.get('trip.rider.firstName')} ${record.get('trip.rider.firstName')},\n                Pick-up: ${record.get('trip.pick.location.streetAddress')} , ${record.get('trip.requestTime')} `;\n      let draftMessage = this.get('store').createRecord('tm-canned-message', {\n        // TODO: should this be `driver.externalId`?\n        driverId: assignedDriver.get('externalId'),\n        vehicleId: assignedVehicle.get('name'),\n        replyToMsgId: `${record.get('id')}`,\n        body: message // TODO: how do we get the current route ID for a vehicle?\n        // routeId: driver.get('routeId')\n\n      });\n      return draftMessage.save();\n    },\n\n    saveAssignTrip2RouteFunction(records) {\n      const me = this;\n      let tripId = '';\n      let dsTripId = '';\n      let updateRecord = null;\n      return new Ember.RSVP.Promise((resolve, reject) => {\n        records.forEach(record => {\n          tripId = record.get('id');\n          updateRecord = record;\n          const tripScheduleData = this.get('trip').tripScheduleData();\n          tripScheduleData.data.id = tripId; // external id is BS trip id\n\n          tripScheduleData.included = []; // a work around because service rejects this request without it.\n\n          const session = this.get('session');\n          const json = JSON.stringify(tripScheduleData);\n          return this.get('ajax').put(_apiUrls.API.tripService.host + '/trip/' + tripId + '/export/', {\n            method: 'PUT',\n            contentType: \"application/json\",\n            headers: {\n              \"Authorization\": `Bearer ${session.data.authenticated.token}`\n            },\n            data: json\n          }).then(response => {\n            record.set('isForceDirty', false);\n            dsTripId = response.data[0].id;\n            return this.get('ajax').put(_apiUrls.API.dispatchService.host + `/route/` + record.get('assignRoute.id') + '/tripTransfer/' + dsTripId, {\n              method: 'PUT',\n              contentType: \"application/json\",\n              headers: {\n                \"Authorization\": `Bearer ${session.data.authenticated.token}`\n              }\n            }).then(response => {\n              record.set('isForceDirty', false);\n              me.get('activeContext').refreshTableContent('trip');\n              me.get('errorMessage').pushInfo({\n                detail: `Trip '${tripId}' successfully transferred to Route '${record.get('assignRoute.name')}'`\n              });\n              me.sendMessageAssignTrip2RouteFunction(record, 'Added', dsTripId);\n            }).catch(function (error) {\n              updateRecord.set('isForceDirty', false);\n              me.get('activeContext').refreshTableContent('trip');\n              me.get('errorMessage').pushInfo({\n                detail: `Trip '${tripId}' successfully transferred to Route '${record.get('assignRoute.name')}'`\n              });\n              me.sendMessageAssignTrip2RouteFunction(record, 'Added', dsTripId); //reject(error);\n            });\n          }).catch(function (error) {\n            reject(error);\n          });\n        });\n      });\n    },\n\n    saveMoveTrip2RouteFunction(records) {\n      const me = this;\n      let tripId = '';\n      let dsTripId = '';\n      return new Ember.RSVP.Promise((resolve, reject) => {\n        const session = this.get('session');\n        records.forEach(record => {\n          tripId = record.get('id');\n          dsTripId = record.get('dsTrip.id');\n          return this.get('ajax').put(_apiUrls.API.dispatchService.host + `/route/` + record.get('assignRoute.id') + '/tripTransfer/' + dsTripId, {\n            method: 'PUT',\n            contentType: \"application/json\",\n            headers: {\n              \"Authorization\": `Bearer ${session.data.authenticated.token}`\n            }\n          }).then(response => {\n            record.set('isForceDirty', false);\n            me.get('activeContext').refreshTableContent('trip');\n            me.get('errorMessage').pushInfo({\n              detail: `Trip '${tripId}' successfully transferred to Route '${record.get('assignRoute.name')}'`\n            });\n            me.sendMessageTripMovefromRouteFunction(record, 'Remove', dsTripId);\n            me.sendMessageAssignTrip2RouteFunction(record, 'Added', dsTripId);\n          }).catch(function (error) {\n            reject(error);\n            me.sendMessageTripMovefromRouteFunction(record, 'Remove', dsTripId);\n            me.sendMessageAssignTrip2RouteFunction(record, 'Added', dsTripId);\n          });\n        });\n      });\n    },\n\n    saveNoShowRecordFunction(records) {\n      const me = this;\n      return new Ember.RSVP.Promise((resolve, reject) => {\n        records.forEach(record => {\n          const noShowData = this.get('routeexecevent').noShowData();\n          const prepareNoShowData = this.get('routeexecevent').prepareTripNoShowData(noShowData, record);\n          const json = JSON.stringify(prepareNoShowData);\n          const session = this.get('session');\n          return this.get('ajax').post(_apiUrls.API.avlmService.host + '/production/route-exec-event', {\n            method: 'POST',\n            contentType: \"application/json\",\n            headers: {\n              \"Authorization\": `Bearer ${session.data.authenticated.token}`\n            },\n            data: json\n          }).then(response => {\n            record.set('isForceDirty', false);\n            record.set('id', response.data.id);\n            me.get('activeContext').refreshTableContent('route');\n            me.sendMessagesToVehicles(record, 'No Show');\n          }).catch(function (error) {\n            reject(error);\n          });\n        });\n      });\n    },\n\n    createSubscriptionRecord1() {\n      const currentDate = new Date();\n      const subscriptions = [];\n      const exclusion = this.get('store').createRecord('subscription-exclusion');\n      const recurrencePattern = this.get('store').createRecord('subscription-recurrence-pattern', {\n        type: 'daily',\n        recurring: false\n      });\n      const subscription = this.get('store').createRecord('subscription', {\n        requestTime: currentDate,\n        exclusions: [exclusion],\n        recurrencePatterns: [recurrencePattern]\n      });\n      subscriptions.push(subscription);\n      return subscriptions;\n    },\n\n    createSubscriptionRecord() {\n      const currentDate = new Date();\n      const subscriptions = [];\n      const subscription = {\n        start: null,\n        end: null,\n        dailyDays: \"\",\n        dailyDaysdailyDays: \"\",\n        excludeRangeDate: [],\n        endOptions: [],\n        endSelected: \"\",\n        monthlyType: \"\",\n        agenda: {\n          periodType: \"weekly\",\n          items: [{\n            type: \"Day\",\n            time: \"2019-02-08T02:48:17.859Z\"\n          }]\n        },\n        exceptions: [{\n          exceptionDate: null,\n          time: null\n        }],\n        exclusions: [null],\n        type: 'daily',\n        separationCount: 1,\n        sunday: false,\n        monday: false,\n        tuesday: false,\n        wednesday: false,\n        thursday: false,\n        friday: false,\n        saturday: false,\n        dayOfMonth: null,\n        weekOfMonth: null,\n        monthOfYear: null,\n        everyweekday: '',\n        pattern: '',\n        recurring: false\n      };\n      subscriptions.push(subscription);\n      return subscriptions;\n    },\n\n    actions: {\n      createNew() {\n        const newtrip = (0, _populateNewTrip.default)(this.get('trip'), this.get('store'));\n        (0, _populateAccount.default)(newtrip, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), newtrip.acctCardNr, true); //this.get('records').pushObject(newtrip);\n        //this.createSubscriptionRecord();\n        //this.set('editModal.editableRecords',[]);\n        //this.get('editModal.editableRecords').pushObject(newtrip);\n\n        const newTripComponent = this.get('newTripComponent');\n        this.get('editModal').open(newTripComponent, [newtrip], this.get('saveTripRecordFunction').bind(this));\n      }\n\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({\n        name: 'Add Trip',\n        accessKey: this.get('config.addAccessKey'),\n        action: function () {\n          let newtrip = (0, _populateNewTrip.default)(this.get('trip'), this.get('store'));\n          (0, _populateAccount.default)(newtrip, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), newtrip.acctCardNr, true); //this.get('records').pushObject(newtrip);\n          //this.set('editModal.editableRecords',[]);\n          //this.get('editModal.editableRecords').pushObject(newtrip);\n\n          const newTripComponent = this.get('newTripComponent');\n          this.get('editModal').open(newTripComponent, [newtrip], this.get('saveTripRecordFunction').bind(this));\n        }.bind(this)\n      }); //TODO\n\n      this.set('singleActions', [{\n        name: 'Edit',\n        action: model => {\n          const trip = model;\n          this.store.findRecord('tm-booking', trip.get('id'), {\n            reload: true\n          }).then(updatetrip => {\n            console.log('updatetrip ', updatetrip);\n            updatetrip = (0, _populateEditTrip.default)(this.get('trip'), updatetrip, this.get('store'), this.get('geocode'));\n            (0, _populateAccount.default)(updatetrip, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), updatetrip.acctCardNr, false); // this.get('records').pushObject(updatetrip);\n            //this.set('editModal.editableRecords',[]);\n            //this.set('editModal.editableRecords').push(updatetrip);\n\n            const editTripComponent = this.get('editTripComponent');\n            this.get('editModal').open(editTripComponent, [updatetrip], this.get('saveTripRecordFunction').bind(this));\n          });\n        }\n      }, {\n        name: 'Cancel Trip',\n        action: model => {\n          //TODO TMAPI\n          //let cancelTypes = this.get('store').peekAll('cancel-type');\n          //model.set('cancelType',cancelTypes.firstObject);\n          model.set('timestamp', new Date()); //this.get('records').pushObject(model);\n          //TODO for fix new trip screen\n          //this.set('editModal.editableRecords',[]);\n          //this.get('editModal.editableRecords').pushObject(model);\n\n          let cancelTripComponent = this.get('cancelTripComponent');\n          this.get('editModal').open(cancelTripComponent, [model], this.get('saveCancelRecordFunction').bind(this));\n        }\n      }, {\n        name: 'Copy Trip',\n        action: model => {\n          //TODO TMAPI\n          const trip = model;\n          this.store.findRecord('tm-booking', trip.get('id'), {\n            reload: true\n          }).then(updatetrip => {\n            const copytrip = (0, _populateCopyTrip.default)(this.get('trip'), updatetrip, this.get('store'), this.get('geocode'));\n            (0, _populateAccount.default)(copytrip, null, this.get('geocode'), this.get('store'), this.get('editmodalcontext'), this.get('searchservice'), this.get('accountSearchPath'), copytrip.acctCardNr, false); //this.get('records').pushObject(copytrip);\n            //this.set('editModal.editableRecords',[]);\n            //this.get('editModal.editableRecords').pushObject(copytrip);\n\n            const editTripComponent = this.get('editTripComponent');\n            this.get('editModal').open(editTripComponent, [copytrip], this.get('saveTripRecordFunction').bind(this));\n          });\n        }\n      }, {\n        name: 'View Activity Log',\n        action: model => {\n          const trip = model;\n          const me = this;\n          this.get('store').query('tm-activity-log', {\n            filter: {\n              tripId: trip.get('id')\n            }\n          }).then(function (activityLogs) {\n            Ember.run(() => {\n              console.log('activityLogs ', activityLogs.get('content'));\n              me.get('records').pushObject(activityLogs);\n              me.set('editmodalcontext.modelWidgetPath', 'activity-log-widget');\n              me.set('editmodalcontext.showWidgetModal', false);\n              me.set('editModal.showActivityLog', true);\n              me.set('editmodalcontext.widgetModelData', activityLogs);\n              const activityLogComponent = me.get('activityLogComponent');\n              me.get('editModal').open(activityLogComponent, [activityLogs], null);\n            });\n          });\n        }\n      }, {\n        name: 'Send Message',\n        action: trip => {\n          this.sendMessageToTrips([trip]);\n        }\n      }, {\n        name: 'Add Log Entry',\n        action: () =>\n        /* models */\n        {}\n      }, {\n        name: 'Re Dispatch',\n        action: () =>\n        /* models */\n        {//TODO TMAPI\n\n          /*model.set('assignRoute',null);\n          let assignTrip2RouteComponent = this.get('assignTrip2RouteComponent');\n          this.get('editModal').open(assignTrip2RouteComponent, [model], this.get('saveAssignTrip2RouteFunction').bind(this));*/\n        }\n      }, {\n        name: 'Forward',\n        action: model => {//TODO TMAPI\n\n          /*let noShowReasonCodes = this.get('store').peekAll('no-show-reason-code');\n          model.set('noShowReason',noShowReasonCodes.firstObject);\n          model.set('timestamp',new Date());\n           let noShowComponent = this.get('noShowComponent');\n          this.get('editModal').open(noShowComponent, [model], this.get('saveNoShowRecordFunction').bind(this));*/\n        }\n      }]);\n      this.set('bulkActions', [{\n        name: 'Send Message',\n        action: trips => {\n          this.sendMessageToTrips(trips);\n        }\n      }]);\n    },\n\n    sendMessageToTrips(trips) {\n      let me = this;\n      let draftMessages = trips.map(trip => {\n        let newTestMessage = (0, _populateNewTextMessage.default)(me.get('textmessage'), this.get('store'), null, null, trip);\n        return newTestMessage;\n      });\n      this.get('workspace').pushState('addNewMessage', {\n        draftMessages\n      });\n    },\n\n    rowGroup: Ember.computed('row', function () {\n      return this.get('table.rows');\n    }).readOnly(),\n    oneDayTimeline: Ember.computed('workspace.{startDate,endDate}', function () {\n      const startDate = (0, _moment.default)(this.get('workspace.startDate')).format('YYYY-MMM-D');\n      const endDate = (0, _moment.default)(this.get('workspace.endDate')).format('YYYY-MMM-D');\n      return startDate === endDate;\n    }),\n\n    dragOver(event) {\n      event.preventDefault();\n      if (this.get('dragCoordinator.widgetType') !== 'routes') return;\n      const rowElement = (0, _findRowRecord.findRowElement)(event.target); // User might drop onto widget's other elements.\n\n      if (Ember.isBlank(rowElement) || Ember.isBlank(rowElement.id)) return;\n      this.$(`#${rowElement.id}`).addClass('drag-target');\n    },\n\n    dragLeave(event) {\n      event.preventDefault();\n      const rowElement = (0, _findRowRecord.findRowElement)(event.target);\n      if (Ember.isBlank(rowElement) || Ember.isBlank(rowElement.id)) return;\n      this.$(`#${rowElement.id}`).removeClass('drag-target');\n    },\n\n    drop(event) {\n      event.preventDefault();\n      event.stopPropagation();\n      if (this.get('dragCoordinator.widgetType') !== 'routes') return;\n      const rowElement = (0, _findRowRecord.findRowElement)(event.target);\n      if (Ember.isBlank(rowElement) || Ember.isBlank(rowElement.id)) return;\n      this.$(`#${rowElement.id}`).removeClass('drag-target');\n      const sourceRowRecord = this.get('dragCoordinator').getSourceRow(event.dataTransfer.getData('text'));\n      if (Ember.isBlank(sourceRowRecord)) return;\n      let targetRowRecord = (0, _findRowRecord.findRowRecordByElement)(event.target, this.get('rowGroup'));\n      this.assignCluster(targetRowRecord, sourceRowRecord);\n    },\n\n    assignCluster(tripRow, routeRow) {\n      const tripRecord = tripRow.get('record');\n      const routeRecord = routeRow.get('record');\n\n      if (routeRecord.constructor.modelName !== 'route') {\n        return;\n      }\n\n      let cluster = routeRecord.get('clusters').firstObject;\n\n      if (Ember.isBlank(cluster)) {\n        cluster = this.get('store').createRecord('cluster', {\n          route: routeRecord\n        });\n        tripRecord.set('cluster', cluster);\n        cluster.save();\n      } else {\n        tripRecord.set('cluster', cluster);\n        tripRecord.save();\n      }\n    },\n\n    //TODO\n    singleActions: Ember.computed('table.rows.@each.{selected,status}', function () {\n      const scheduleTripAction = this.get('scheduleTripAction');\n      const noShowTripAction = this.get('noShowTripAction');\n      const cancelTripAction = this.get('cancelTripAction');\n      const editTripAction = this.get('editTripAction');\n      const moveTripAction = this.get('moveTripAction');\n      const waitlistTripAction = this.get('waitlistTripAction');\n      const viewActivityLogAction = this.get('viewActivityLogAction');\n      let row = this.get('table.rows');\n      if (!row) return [];\n\n      switch (row.get('status')) {\n        case 'Scheduled':\n          {\n            return [moveTripAction, waitlistTripAction, noShowTripAction, cancelTripAction, editTripAction, viewActivityLogAction];\n          }\n\n        case 'WaitList':\n          {\n            return [scheduleTripAction, cancelTripAction, editTripAction, viewActivityLogAction];\n          }\n\n        default:\n          {\n            return [viewActivityLogAction];\n          }\n      }\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/trips-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/trips-widget',\n    rowComponent: 'table/rows/status-formatted-row',\n    modelName: 'iq-trip',\n    defaultSortId: 'id',\n    defaultSortAsc: false,\n    accessKey: '5',\n    addAccessKey: 'Shift++',\n    title: 'Trips',\n    columns: [{\n      id: 'id',\n      type: 'uuid',\n      label: 'Trip ID',\n      valuePath: 'id',\n      valuePreview: '1',\n      hidden: false,\n      isMapLabelVisible: true,\n      searchable: true,\n      defaultWidth: 60,\n      isMapMCGLabelVisible: true\n    }, {\n      id: 'source',\n      type: 'text',\n      label: 'Trip Origin',\n      valuePath: 'trip.tripType',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'Type',\n      type: 'text',\n      label: 'Trip Type',\n      valuePath: 'trip.bookingType',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'requestTime',\n      type: 'time',\n      label: 'Pickup Time',\n      valuePath: 'trip.requestedTime',\n      searchable: true,\n      valuePreview: '08:00 AM',\n      editable: false,\n      hidden: false,\n      format: 'HH:mm A DD-MM-YYYY',\n      defaultWidth: 50\n    }, {\n      id: 'address',\n      type: 'text',\n      label: 'Address',\n      isMapLabelVisible: true,\n      valuePath: 'trip.pick.place.streetAddress',\n      editable: false,\n      searchable: true,\n      hidden: false,\n      defaultWidth: 100\n    }, {\n      id: 'zone',\n      type: 'text',\n      label: 'Zone',\n      isMapLabelVisible: true,\n      valuePath: 'trip.zone.name',\n      editable: false,\n      searchable: true,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'attributes',\n      type: 'text',\n      label: 'Attributes',\n      valuePath: 'trip.attributes',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'paymentType',\n      type: 'text',\n      label: 'Payment',\n      valuePath: 'trip.paymentType',\n      searchable: true,\n      valuePreview: 'Single',\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'status',\n      type: 'text',\n      label: 'Trip Status',\n      valuePath: 'status',\n      searchable: true,\n      highlightable: true,\n      valuePreview: 'Planned',\n      hidden: false,\n      isMapLabelVisible: true,\n      defaultWidth: 75,\n      isMapMCGLabel: true\n    }, {\n      id: 'riderName',\n      type: 'text',\n      label: 'Passenger Name',\n      valuePath: 'trip.pick.passengerName',\n      hidden: false,\n      searchable: true,\n      defaultWidth: 75\n    }, {\n      id: 'riderPhone',\n      type: 'text',\n      label: 'Phone Number',\n      valuePath: 'trip.rider.phoneNr',\n      hidden: false,\n      searchable: true,\n      defaultWidth: 70\n    }, {\n      id: 'anchorETA',\n      type: 'time',\n      label: 'ETA',\n      valuePath: 'trip.dsanchorStop.eta',\n      searchable: true,\n      valuePreview: '16',\n      hidden: true,\n      format: 'HH:mm A',\n      defaultWidth: 50\n    }, {\n      id: 'acctCode',\n      type: 'text',\n      label: 'Account Code',\n      valuePath: 'trip.account.acctCode',\n      searchable: true,\n      hidden: false,\n      isMapLabelVisible: true,\n      defaultWidth: 75\n    }, {\n      id: 'acctCardNr',\n      type: 'text',\n      label: 'Account Card Nr',\n      valuePath: 'trip.account.acctCardNr',\n      searchable: true,\n      hidden: false,\n      isMapLabelVisible: true,\n      defaultWidth: 75\n    }, {\n      id: 'fare',\n      type: 'text',\n      label: 'Fare',\n      valuePath: 'trip.fare',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'jobpriority',\n      type: 'text',\n      label: 'priority',\n      valuePath: 'trip.jobpriority',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'bookingType',\n      type: 'text',\n      label: 'Type',\n      valuePath: 'trip.bookingType',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'dispatchType',\n      type: 'text',\n      label: 'Dispatch Method',\n      valuePath: 'trip.dispatchMethod',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'driverId',\n      type: 'text',\n      label: 'Badge Nr',\n      index: 4,\n      valuePath: 'driver.badgeNr',\n      editable: false,\n      isMapLabelVisible: true,\n      searchable: true,\n      defaultWidth: 45\n    }, {\n      id: 'Callsign',\n      type: 'text',\n      label: 'Callsign',\n      valuePath: 'vehicle.callsign',\n      searchable: true,\n      cellDesc: 'Cab#',\n      editable: false,\n      hidden: false\n    }, {\n      id: 'notes',\n      type: 'text',\n      label: 'Driver Notes',\n      valuePath: 'trip.stop.driverNotes',\n      editable: false,\n      searchable: true,\n      defaultWidth: 100\n    }, {\n      id: 'notes',\n      type: 'text',\n      label: 'Operator Notes',\n      valuePath: 'trip.stop.operatorNotes',\n      editable: false,\n      searchable: true,\n      defaultWidth: 100\n    }, {\n      id: 'cancelReason',\n      type: 'text',\n      label: 'Cancel Reason',\n      valuePath: 'trip.cancelReason',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }, {\n      id: 'noShowReasonCode',\n      type: 'text',\n      label: 'No Show Reason Code',\n      valuePath: 'trip.noShowReasonCode',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 60\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/users-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/users-form-widget/config\"], function (_exports, _component, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    editModal: Ember.inject.service(),\n\n    validateRecords() {\n      let valid = true; //let records = this.get('editableRecords');\n\n      this.set('editModal.errors', []);\n      return valid;\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        let lastUndoState = this.get('editModal.undoHistory').popObject();\n\n        if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n          records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n        } else {\n          lastUndoState.forEach(({\n            record,\n            properties\n          }) => {\n            record.setProperties(properties);\n          });\n        }\n\n        this.set('isLastUndoStateCommitted', true);\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/users-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'id',\n        type: 'text',\n        label: 'ID',\n        valuePath: 'userId',\n        editable: false\n      }]\n    }, {\n      title: 'Editable',\n      fields: [{\n        id: 'name',\n        type: 'text',\n        label: 'Name',\n        editable: true,\n        valuePath: 'displayName'\n      }, {\n        id: 'email',\n        type: 'text',\n        label: 'Email',\n        editable: true,\n        valuePath: 'email'\n      }, {\n        id: 'status',\n        type: 'enum',\n        label: 'Status',\n        valuePath: 'calculatedStatus',\n        extra: {\n          options: ['active', 'inactive']\n        }\n      }, {\n        id: 'role',\n        type: 'searchable-enum',\n        label: 'Role',\n        valuePath: 'UserRoleRolenames',\n        editable: true,\n        extra: {\n          optionModelName: 'sso-role',\n          optionSearchPath: 'displayName',\n          optionSelectedPath: 'firstObject',\n          optionIncludes: '',\n          optionSearchEnabled: false\n        }\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/users-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/users-widget/config\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\", \"lodash\"], function (_exports, _component, _config, _environment, _apiUrls, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['users-widget'],\n    editModal: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    session: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    store: Ember.inject.service(),\n    editComponent: 'iq-widgets/users-form-widget',\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    // TODO: saveRecordFunction shall be moved to a service later on\n    // This save is specific to saving drivers and all related models.\n    saveRecordFunction(records) {\n      let that = this; // using custom api call because sso api is non standard\n      // and in-consistent.\n\n      function userAPICall(method, data, url, dataType) {\n        let session = that.get('session');\n        let ajax = that.get('ajax');\n        return ajax.request(url, {\n          host: _apiUrls.API.ssoService.host,\n          dataType: 'text',\n          contentType: dataType,\n          method: method,\n          data: data,\n          headers: {\n            'Content-Type': dataType,\n            Accept: dataType,\n            Authorization: `Bearer ${session.data.authenticated.token}`\n          }\n        });\n      }\n\n      function saveStatus(userId, status) {\n        return userAPICall('PUT', {\n          status: status\n        }, `/user/${userId}/status`, 'application/json');\n      }\n\n      function saveRoles(userId, roles) {\n        let idRoles = _lodash.default.map(roles, role => {\n          return role.roleName;\n        });\n\n        return userAPICall('GET', null, `/user/${userId}/roles`, 'text').then(currentRolesString => {\n          let currentRoles = JSON.parse(currentRolesString);\n\n          let removeRoles = _lodash.default.difference(currentRoles.roles, idRoles);\n\n          let addRoles = _lodash.default.difference(idRoles, currentRoles.roles);\n\n          return Promise.all(removeRoles.map(removeRole => {\n            return userAPICall('DELETE', null, `/user/${userId}/roles/${removeRole}`, 'text');\n          })).then(() => {\n            return Promise.all(addRoles.map(addRole => {\n              return userAPICall('PUT', null, `/user/${userId}/roles/${addRole}`, 'text');\n            }));\n          });\n        });\n      }\n\n      function addNewUser(record) {\n        let roles = [];\n\n        if (!Ember.isEmpty(record.UserRoleRolenames)) {\n          roles.push(record.UserRoleRolenames.roleName);\n        } // sendMail defaulted to false because of a bug in api\n\n\n        let data = {\n          displayName: record.displayName,\n          email: record.email,\n          status: record.status,\n          roles: roles,\n          sendEmail: false\n        };\n        return userAPICall('POST', data, `/user`, 'application/json');\n      }\n\n      this.set('editModal.errors', []);\n      return new Promise((resolve, reject) => {\n        records.forEach(record => {\n          if (record.isNew) {\n            addNewUser(record, this).then(result => {\n              let resultObject = JSON.parse(result); // returning the record or the newly created id\n              // does not exist. This will happen a bit later\n              // when the backend guys have time. reload will fail without\n              // this.\n\n              if (resultObject.userId !== undefined) {\n                that.get('store').find('sso-user', resultObject.userId).then(result => {\n                  that.get('records').pushObject(result);\n                  record.destroyRecord();\n                  that.set('editModal.editableRecords', []);\n                  that.get('editModal.editableRecords').pushObject(result);\n                });\n              }\n            }).catch(e => {\n              reject(e);\n            });\n          } else {\n            saveStatus(record.userId, record.status, this).then(() => {\n              saveRoles(record.userId, record.UserRoleRolenames, this).then(() => {\n                record.reload().then(() => {\n                  record.set('isForceDirty', false);\n                  that.get('activeContext').refreshTableContent(that.get('config.modelName'));\n                });\n              });\n            }).catch(e => {\n              reject(e);\n            });\n          }\n        });\n      });\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.set('tableActions', [{\n        name: 'New User',\n        action: function () {\n          let newModel = this.get('store').createRecord(this.get('config.modelName'));\n          this.set('editModal.editableRecords', []);\n          let editComponent = this.get('editComponent');\n          this.get('editModal').open(editComponent, [newModel], this.get('saveRecordFunction').bind(this));\n        }.bind(this)\n      }]);\n      this.set('singleActions', [{\n        name: 'Edit',\n        action: model => {\n          let editComponent = this.get('editComponent');\n          this.get('editModal').open(editComponent, [model], this.get('saveRecordFunction').bind(this));\n        }\n      }]);\n      this.set('bulkActions', [{\n        name: 'Bulk Edit',\n        action: models => {\n          let editComponent = this.get('editComponent');\n          this.get('editModal').open(editComponent, models, this.get('saveRecordFunction').bind(this));\n        }\n      }]);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/users-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/users-widget',\n    rowComponent: 'table/rows/action-row',\n    modelName: 'sso-user',\n    title: 'Users',\n    columns: [{\n      id: 'email',\n      index: 0,\n      type: 'text',\n      label: 'ID',\n      valuePath: 'email',\n      editable: false,\n      hidden: false\n    }, {\n      id: 'displayName',\n      index: 1,\n      type: 'text',\n      label: 'Name',\n      valuePath: 'displayName',\n      editable: false,\n      hidden: false,\n      defaultWidth: 45\n    }, {\n      id: 'userRoleRolenames',\n      index: 2,\n      type: 'text',\n      label: 'Role Name',\n      valuePath: 'UserRoleRolenames.firstObject.displayName',\n      editable: false,\n      hidden: false\n    }, {\n      id: 'status',\n      index: 3,\n      type: 'text',\n      label: 'Status',\n      valuePath: 'calculatedStatus',\n      editable: false,\n      hidden: false,\n      defaultWidth: 70\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/vehicle-event-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/vehicle-event-form-widget/config\"], function (_exports, _component, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    editModal: Ember.inject.service(),\n\n    validateRecords() {\n      let valid = true;\n      this.set('editModal.errors', []);\n      return valid;\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        /*let lastUndoState = this.get('editModal.undoHistory').popObject();\n         if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n           records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n         }\n        else {\n          lastUndoState.forEach(({ record, properties }) => {\n            record.setProperties(properties);\n          });\n        }\n         this.set('isLastUndoStateCommitted', true);*/\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n        }\n      } // onCellValueChange(record, valuePath, value, options) {\n      //   if (valuePath === 'vehicles.firstObject.name') {\n      //     let vehicle = record.get('vehicles.firstObject');\n      //     record.vehicles.removeObject(vehicle);\n      //   }\n      //   else {\n      //     this.get('service').setRecordValue(record, valuePath, value, options);\n      //   }\n      // }\n\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/vehicle-event-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'routeId',\n        type: 'text',\n        label: 'Route Id',\n        valuePath: 'name',\n        editable: false\n      }, {\n        id: 'vehicle',\n        type: 'text',\n        label: 'Vehicle',\n        valuePath: 'assignedVehicle.id',\n        editable: false\n      }]\n    }, {\n      title: 'Editable',\n      fields: [{\n        id: 'timestamp',\n        type: 'datetimeflatpickr',\n        label: 'Date Time',\n        valuePath: 'timestamp',\n        editable: true,\n        hidden: false,\n        format: 'YYYY-MM-DD hh:mm A',\n        defaultWidth: 50\n      }, {\n        id: 'odometer',\n        type: 'text',\n        editable: true,\n        label: 'Odometer',\n        valuePath: 'odometer'\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/vehicles-form-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/form-widget/component\", \"adept-iq/pods/components/iq-widgets/vehicles-form-widget/config\", \"moment\"], function (_exports, _component, _config, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    editableSections: _config.default.editableSections,\n    editModal: Ember.inject.service(),\n    classNames: ['vehicle-form-widget', 'data-test-vehicle-form-widget'],\n\n    validateRecords() {\n      let valid = true;\n      const records = this.get('editableRecords');\n      this.set('editModal.errors', []);\n      records.forEach(record => {\n        const availabilities = record.availability;\n        const shiftBreaks = record.shiftBreaks;\n\n        if (record.name === undefined || record.name.trim().length < 1) {\n          this.get('editModal.errors').pushObject('Vehicle Id');\n          valid = false;\n        }\n\n        if (record.get('vehicleType.id') === undefined || record.get('vehicleType.id') === null) {\n          this.get('editModal.errors').pushObject('Vehicle Type');\n          valid = false;\n        }\n\n        if (Ember.isEmpty(record.get('startGarages.firstObject.latlng'))) {\n          valid = false;\n          this.get('editModal.errors').pushObject('Start Garage address should be there');\n        } else if (Ember.isEmpty(record.get('startGarages.firstObject.geoNode'))) {\n          valid = false;\n          this.get('editModal.errors').pushObject('Start Garage address should be valid');\n        }\n\n        if (Ember.isEmpty(record.get('endGarages.firstObject.latlng'))) {\n          valid = false;\n          this.get('editModal.errors').pushObject('End Garage address should be there');\n        } else if (Ember.isEmpty(record.get('endGarages.firstObject.geoNode'))) {\n          valid = false;\n          this.get('editModal.errors').pushObject('End Garage address should be valid');\n        }\n\n        availabilities.forEach(availability => {\n          const startTime = (0, _moment.default)(availability.startTime);\n          const endTime = (0, _moment.default)(availability.endTime);\n          const shiftStart = (0, _moment.default)(availability.shiftStart, 'HH:mm:ss');\n          const shiftEnd = (0, _moment.default)(availability.shiftEnd, 'HH:mm:ss');\n\n          if (endTime.isBefore(startTime)) {\n            valid = false;\n            this.get('editModal.errors').pushObject('Effective end date cannot be before effective start date');\n          }\n\n          if (shiftEnd.isBefore(shiftStart)) {\n            valid = false;\n            this.get('editModal.errors').pushObject('Shift end cannot be before shift start');\n          }\n        });\n        shiftBreaks.forEach(shiftBreak => {\n          const startTime = (0, _moment.default)(shiftBreak.startTime, 'HH:mm:ss');\n          const endTime = (0, _moment.default)(shiftBreak.endTime, 'HH:mm:ss');\n\n          if (endTime.isBefore(startTime)) {\n            valid = false;\n            this.get('editModal.errors').pushObject('Effective end date cannot be before effective start date');\n          }\n\n          const startDate = new Date(startTime);\n          const endDate = new Date(endTime);\n          const difference = startDate - endDate;\n          const diff_result = new Date(difference);\n          const hourDiff = diff_result.getHours();\n\n          if (hourDiff <= 0) {\n            valid = false;\n            this.get('editModal.errors').pushObject('Break end date cannot same as start date');\n          }\n        });\n      });\n      return valid;\n    },\n\n    actions: {\n      // override undo because we will have to deal with undoing created\n      // models for addresses, travel needs, and eligibility later.\n      // IQUX-510\n      onUndoClick() {\n        /*let lastUndoState = this.get('editModal.undoHistory').popObject();\n         if (lastUndoState === null) {\n          let records = this.get('editableRecords');\n           records.forEach(record => {\n            record.set('isForceDirty', false);\n          });\n         }\n        else {\n          lastUndoState.forEach(({ record, properties }) => {\n            record.setProperties(properties);\n          });\n        }\n         this.set('isLastUndoStateCommitted', true);*/\n      },\n\n      onApplyClick() {\n        if (this.validateRecords()) {\n          this.get('service').apply();\n        }\n      } // onCellValueChange(record, valuePath, value, options) {\n      //   if (valuePath === 'vehicles.firstObject.name') {\n      //     let vehicle = record.get('vehicles.firstObject');\n      //     record.vehicles.removeObject(vehicle);\n      //   }\n      //   else {\n      //     this.get('service').setRecordValue(record, valuePath, value, options);\n      //   }\n      // }\n\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/vehicles-form-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    editableSections: [{\n      title: 'Read Only',\n      fields: [{\n        id: 'vehicleId',\n        type: 'text',\n        label: 'ID',\n        valuePath: 'id',\n        editable: false\n      }]\n    }, {\n      title: 'Editable',\n      fields: [{\n        id: 'name',\n        type: 'text',\n        label: 'Vehicle Id',\n        valuePath: 'name'\n      }, {\n        id: 'type',\n        type: 'enum',\n        label: 'Type',\n        valuePath: 'vehicleType',\n        cellDesc: 'vehicleType',\n        editable: true,\n        hidden: false,\n        extra: {\n          optionModelName: 'ss-vehicle-type',\n          optionSearchPath: 'name'\n        }\n      }, {\n        id: 'noOfAmbulatorySeats',\n        type: 'text',\n        label: 'Ambulatory Seats',\n        valuePath: 'noOfAmbulatorySeats',\n        editable: false,\n        hidden: false\n      }, {\n        id: 'noOfWheelChairSeats',\n        type: 'text',\n        label: 'Wheelchair spaces',\n        valuePath: 'noOfWheelChairSeats',\n        editable: false,\n        hidden: false\n      }, {\n        id: 'active',\n        type: 'boolean',\n        label: 'Active',\n        valuePath: 'active',\n        extra: {\n          options: [{\n            label: 'True',\n            value: true\n          }, {\n            label: 'False',\n            value: false\n          }]\n        }\n      }]\n    }, {\n      title: 'Garage start Address',\n      fields: [{\n        id: 'originaddresses',\n        type: 'locations',\n        label: '',\n        valuePath: 'startGarages',\n        modelName: 'ss-location',\n        isMultiType: true,\n        extra: {\n          aliasPath: 'alias',\n          notesPath: 'notes',\n          streetNrPath: 'streetNr',\n          streetNamePath: 'streetName',\n          localityPath: 'city',\n          regionPath: 'county',\n          subRegionPath: 'state',\n          postalCodePath: 'postalCode',\n          countryPath: 'country',\n          defaultOptionsPath: 'riderAddresses'\n        }\n      }]\n    }, {\n      title: 'Garage end Address',\n      fields: [{\n        id: 'destinationaddresses',\n        type: 'locations',\n        label: 'Drop-off Address',\n        valuePath: 'endGarages',\n        modelName: 'ss-location',\n        isMultiType: true,\n        extra: {\n          aliasPath: 'alias',\n          notesPath: 'notes',\n          streetNrPath: 'streetNr',\n          streetNamePath: 'streetName',\n          localityPath: 'city',\n          regionPath: 'county',\n          subRegionPath: 'state',\n          postalCodePath: 'postalCode',\n          countryPath: 'country',\n          defaultOptionsPath: 'riderAddresses'\n        }\n      }]\n    }, {\n      title: 'Availabilities',\n      fields: [{\n        id: 'availabilities',\n        type: 'scheduleavailabilities',\n        label: '',\n        valuePath: 'availability',\n        modelName: 'ss-vehicle-availability',\n        isMultiType: true,\n        extra: {\n          startTimePath: 'startTime',\n          endTimePath: 'endTime',\n          shiftStartPath: 'shiftStart',\n          shiftEndPath: 'shiftEnd',\n          sundayPath: 'sunday',\n          mondayPath: 'monday',\n          tuesdayPath: 'tuesday',\n          wednesdayPath: 'wednesday',\n          thursdayPath: 'thursday',\n          fridayPath: 'friday',\n          saturdayPath: 'saturday',\n          shiftBreaksPath: 'shiftBreaks',\n          breakTypeModelName: 'breakType',\n          shiftBreakTypePath: 'breakType',\n          aliasPath: 'alias',\n          notesPath: 'notes',\n          streetNrPath: 'streetNr',\n          streetNamePath: 'streetName',\n          localityPath: 'city',\n          regionPath: 'county',\n          subRegionPath: 'state',\n          postalCodePath: 'postalCode',\n          countryPath: 'country',\n          addressvaluePath: 'address',\n          addressmodelName: 'ss-location',\n          breakPromisedStartPath: 'promisedStart',\n          breakEndTimePath: 'endTime',\n          breakDurationPath: 'plannedDuration'\n        }\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/vehicles-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/pods/components/iq-widgets/vehicles-widget/config\", \"adept-iq/utils/populate-new-text-message\", \"lodash\", \"adept-iq/config/environment\"], function (_exports, _component, _config, _populateNewTextMessage, _lodash, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['vehicles-widget'],\n    editModal: Ember.inject.service(),\n    //workspace: service(),\n    editComponent: 'iq-widgets/vehicles-form-widget',\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    vehicleinfo: Ember.inject.service(),\n    session: Ember.inject.service(),\n    textmessage: Ember.inject.service(),\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    saveRecordFunction(records) {\n      function saveDeleteAllObjects(objects) {\n        const deleteObjects = _lodash.default.difference(objects.content.canonicalState, objects.content.currentState); // delete objects that have been removed from the array\n\n\n        return Promise.all(deleteObjects.map(deleteObject => {\n          deleteObject._record.deleteRecord();\n\n          return deleteObject.save();\n        })).then(() => {\n          return Promise.all(objects.map(object => object.save()));\n        });\n      }\n\n      function saveLocationObject(object) {\n        if (object !== undefined) {\n          return Promise.all([object.save()]);\n        }\n\n        return Promise.all([]);\n      }\n\n      this.set('editModal.errors', []);\n      return new Promise((resolve, reject) => {\n        records.forEach(record => {\n          saveLocationObject(record.startGarages.firstObject).then(() => {\n            saveLocationObject(record.endGarages.firstObject).then(() => {\n              record.save();\n            });\n          }).then(() => {\n            saveDeleteAllObjects(record.get('availability')).then(() => {\n              saveDeleteAllObjects(record.get('shiftBreaks')).then(() => {\n                record.set('isForceDirty', false);\n              });\n            }).catch(e => {\n              if (e.errors[0].status === '400' || e.errors[0].status === '409') {\n                this.get('editModal.errors').pushObject('Invalid Vehicle Id');\n              } else {\n                reject(e);\n              }\n            });\n          });\n        });\n      });\n    },\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', [{\n        name: 'Send Message',\n        action: vehicle => {\n          this.sendMessagesToVehicles([vehicle]);\n        }\n      }]);\n      this.set('bulkActions', [{\n        name: 'Send Message',\n        action: vehicles => {\n          this.sendMessagesToVehicles(vehicles);\n        }\n      }]);\n    },\n\n    sendMessagesToVehicles(vehicles) {\n      let me = this;\n      let draftMessages = vehicles.map(vehicle => {\n        let newTestMessage = (0, _populateNewTextMessage.default)(me.get('textmessage'), this.get('store'), vehicle, null, null);\n        return newTestMessage;\n      });\n      this.get('workspace').pushState('addNewMessage', {\n        draftMessages\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/vehicles-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/vehicles-widget',\n    rowComponent: 'table/rows/vehicle-status-formatted-row',\n    modelName: 'iq-vehicle',\n    accessKey: '7',\n    title: 'Taxis',\n    defaultSortId: 'callSign',\n    defaultSortAsc: true,\n    columns: [{\n      id: 'callSign',\n      type: 'text',\n      label: 'Callsign',\n      valuePath: 'vehicle.callsign',\n      valuePreview: '2',\n      index: 0,\n      isMapLabelVisible: true,\n      searchable: true,\n      defaultWidth: 45,\n      isMapMCGLabelVisible: true\n    }, {\n      id: 'driverId',\n      type: 'text',\n      label: 'Badge Nr',\n      index: 4,\n      valuePath: 'driver.badgeNr',\n      editable: false,\n      isMapLabelVisible: true,\n      searchable: true,\n      defaultWidth: 45\n    }, {\n      id: 'driverName',\n      type: 'text',\n      label: 'Driver Name',\n      index: 5,\n      valuePath: 'driver.name',\n      isMapLabelVisible: true,\n      searchable: true,\n      editable: true,\n      defaultWidth: 60\n    }, {\n      id: 'zone',\n      type: 'text',\n      label: 'Zone',\n      valuePath: 'zone.name',\n      searchable: true,\n      editable: false,\n      defaultWidth: 45\n    }, {\n      id: 'zoneQueuePos',\n      type: 'text',\n      label: 'Zone QPos',\n      valuePath: 'zoneQueuePos',\n      isMapLabelVisible: true,\n      searchable: true,\n      editable: false,\n      defaultWidth: 45\n    }, {\n      id: 'stand',\n      type: 'text',\n      label: 'Stand',\n      valuePath: 'stand.name',\n      searchable: true,\n      editable: false,\n      defaultWidth: 45\n    }, {\n      id: 'standQueuePosition',\n      type: 'text',\n      label: 'Stand QPos',\n      valuePath: 'vehicle.standQueuePos',\n      isMapLabelVisible: true,\n      searchable: true,\n      editable: false,\n      defaultWidth: 45\n    }, {\n      id: 'status',\n      type: 'text',\n      label: 'Status',\n      valuePath: 'status',\n      index: 2,\n      highlightable: true,\n      isMapLabelVisible: true,\n      searchable: true,\n      editable: false,\n      defaultWidth: 45,\n      hidden: false\n    }, {\n      id: 'mdtid',\n      type: 'text',\n      label: 'MDT ID',\n      valuePath: 'vehicle.hardwareId',\n      searchable: true,\n      editable: false,\n      defaultWidth: 45,\n      hidden: true\n    }, {\n      id: 'model',\n      type: 'text',\n      label: 'Model',\n      valuePath: 'vehicle.vehicleModel',\n      searchable: true,\n      editable: false,\n      defaultWidth: 45,\n      hidden: true\n    }, {\n      id: 'make',\n      type: 'text',\n      label: 'Make',\n      valuePath: 'vehicle.make',\n      searchable: true,\n      editable: false,\n      defaultWidth: 45,\n      hidden: true\n    }, {\n      id: 'ETA',\n      type: 'text',\n      label: 'ETA',\n      valuePath: 'vehicle.ETA',\n      searchable: true,\n      editable: false,\n      defaultWidth: 45,\n      hidden: true\n    }, {\n      id: 'attributes',\n      type: 'text',\n      label: 'Attributes',\n      index: 3,\n      valuePath: 'vehicle.attributesList',\n      isMapLabelVisible: true,\n      searchable: true,\n      editable: false,\n      defaultWidth: 100,\n      hidden: true\n    }, {\n      id: 'suspensionFlag',\n      type: 'boolean',\n      label: 'Suspended',\n      valuePath: 'vehicle.suspensionFlag',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'GPS',\n      type: 'text',\n      label: 'GPS',\n      valuePath: 'vehicle.GPS',\n      searchable: true,\n      isMapLabelVisible: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'Lat',\n      type: 'text',\n      label: 'Lat',\n      valuePath: 'vehicle.lat',\n      searchable: true,\n      isMapLabelVisible: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'Lng',\n      type: 'text',\n      label: 'Lng',\n      valuePath: 'vehicle.lng',\n      searchable: true,\n      isMapLabelVisible: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'GPSTimestamp',\n      type: 'datetime',\n      label: 'Times',\n      valuePath: 'vehicle.timestamp',\n      searchable: true,\n      valuePreview: '09:00 AM',\n      editable: false,\n      format: 'YYYY-MM-DD hh:mm A',\n      defaultWidth: 50,\n      hidden: true\n    }, {\n      id: 'speed',\n      type: 'number',\n      label: 'Speed',\n      valuePath: 'vehicle.speed',\n      searchable: true,\n      editable: false,\n      defaultWidth: 50,\n      hidden: true\n    }, {\n      id: 'heading',\n      type: 'number',\n      label: 'Heading',\n      valuePath: 'vehicle.heading',\n      searchable: true,\n      editable: false,\n      defaultWidth: 50,\n      hidden: true\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/vehicles-widget/mapconfig\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/vehicles-widget',\n    rowComponent: 'table/rows/vehicle-status-formatted-row',\n    modelName: 'vehicle',\n    accessKey: '7',\n    title: 'Taxis',\n    defaultSortId: 'callSign',\n    defaultSortAsc: true,\n    columns: [{\n      id: 'callSign',\n      type: 'text',\n      label: 'Callsign',\n      valuePath: 'callsign',\n      valuePreview: '2',\n      index: 0,\n      isMapLabelVisible: true,\n      searchable: true,\n      defaultWidth: 45,\n      isMapMCGLabelVisible: true\n    }, {\n      id: 'driverId',\n      type: 'text',\n      label: 'Badge Nr',\n      index: 4,\n      valuePath: 'driver.badgeNr',\n      editable: false,\n      isMapLabelVisible: true,\n      searchable: true,\n      defaultWidth: 45\n    }, {\n      id: 'driverName',\n      type: 'text',\n      label: 'Driver Name',\n      index: 5,\n      valuePath: 'driver.name',\n      isMapLabelVisible: true,\n      searchable: true,\n      editable: true,\n      defaultWidth: 60\n    }, {\n      id: 'zone',\n      type: 'text',\n      label: 'Zone',\n      valuePath: 'zone.name',\n      searchable: true,\n      editable: false,\n      defaultWidth: 45\n    }, {\n      id: 'zoneQueuePos',\n      type: 'text',\n      label: 'Zone QPos',\n      valuePath: 'zoneQueuePos',\n      isMapLabelVisible: true,\n      searchable: true,\n      editable: false,\n      defaultWidth: 45\n    }, {\n      id: 'stand',\n      type: 'text',\n      label: 'Stand',\n      valuePath: 'stand.name',\n      searchable: true,\n      editable: false,\n      defaultWidth: 45\n    }, {\n      id: 'standQueuePosition',\n      type: 'text',\n      label: 'Stand QPos',\n      valuePath: 'standQueuePos',\n      isMapLabelVisible: true,\n      searchable: true,\n      editable: false,\n      defaultWidth: 45\n    }, {\n      id: 'status',\n      type: 'text',\n      label: 'Status',\n      valuePath: 'drivedStatus',\n      index: 2,\n      highlightable: true,\n      isMapLabelVisible: true,\n      searchable: true,\n      editable: false,\n      defaultWidth: 45,\n      hidden: false\n    }, {\n      id: 'mdtid',\n      type: 'text',\n      label: 'MDT ID',\n      valuePath: 'hardwareId',\n      searchable: true,\n      editable: false,\n      defaultWidth: 45,\n      hidden: true\n    }, {\n      id: 'model',\n      type: 'text',\n      label: 'Model',\n      valuePath: 'vehicleModel',\n      searchable: true,\n      editable: false,\n      defaultWidth: 45,\n      hidden: true\n    }, {\n      id: 'make',\n      type: 'text',\n      label: 'Make',\n      valuePath: 'make',\n      searchable: true,\n      editable: false,\n      defaultWidth: 45,\n      hidden: true\n    }, {\n      id: 'ETA',\n      type: 'text',\n      label: 'ETA',\n      valuePath: 'ETA',\n      searchable: true,\n      editable: false,\n      defaultWidth: 45,\n      hidden: true\n    }, {\n      id: 'attributes',\n      type: 'text',\n      label: 'Attributes',\n      index: 3,\n      valuePath: 'attributesList',\n      isMapLabelVisible: true,\n      searchable: true,\n      editable: false,\n      defaultWidth: 100,\n      hidden: true\n    }, {\n      id: 'suspensionFlag',\n      type: 'boolean',\n      label: 'Suspended',\n      valuePath: 'suspensionFlag',\n      searchable: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'GPS',\n      type: 'text',\n      label: 'GPS',\n      valuePath: 'GPS',\n      searchable: true,\n      isMapLabelVisible: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'Lat',\n      type: 'text',\n      label: 'Lat',\n      valuePath: 'lat',\n      searchable: true,\n      isMapLabelVisible: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'Lng',\n      type: 'text',\n      label: 'Lng',\n      valuePath: 'lng',\n      searchable: true,\n      isMapLabelVisible: true,\n      editable: false,\n      hidden: true,\n      defaultWidth: 50\n    }, {\n      id: 'GPSTimestamp',\n      type: 'datetime',\n      label: 'Times',\n      valuePath: 'timestamp',\n      searchable: true,\n      valuePreview: '09:00 AM',\n      editable: false,\n      format: 'YYYY-MM-DD hh:mm A',\n      defaultWidth: 50,\n      hidden: true\n    }, {\n      id: 'speed',\n      type: 'number',\n      label: 'Speed',\n      valuePath: 'speed',\n      searchable: true,\n      editable: false,\n      defaultWidth: 50,\n      hidden: true\n    }, {\n      id: 'heading',\n      type: 'number',\n      label: 'Heading',\n      valuePath: 'heading',\n      searchable: true,\n      editable: false,\n      defaultWidth: 50,\n      hidden: true\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/zones-widget/component\", [\"exports\", \"adept-iq/pods/components/iq-widgets/column-widget/component\", \"adept-iq/utils/populate-new-text-message\", \"adept-iq/pods/components/iq-widgets/zones-widget/config\", \"adept-iq/config/environment\", \"lodash\"], function (_exports, _component, _populateNewTextMessage, _config, _environment, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  /* eslint-disable ember/avoid-leaking-state-in-ember-objects */\n  const INCLUDES = [];\n\n  var _default = _component.default.extend({\n    classNames: ['zones-widget'],\n    editModal: Ember.inject.service(),\n    store: Ember.inject.service(),\n    trip: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    session: Ember.inject.service(),\n    textmessage: Ember.inject.service(),\n    config: _config.default,\n    defaultIncludes: INCLUDES,\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.get('tableActions').unshiftObject({});\n      this.set('singleActions', [{\n        name: 'Send Message',\n        action: zone => {\n          this.sendMessagesToZones([zone]);\n        }\n      }]);\n      this.set('bulkActions', [{\n        name: 'Send Message',\n        action: zones => {\n          this.sendMessagesToZones(zones);\n        }\n      }]);\n    },\n\n    sendMessagesToZones(zones) {\n      let me = this;\n      let draftMessages = [];\n      zones.map(zone => {\n        zone.get('offVehicle').map(vehicle => {\n          let newTestMessage = (0, _populateNewTextMessage.default)(me.get('textmessage'), this.get('store'), vehicle, null, null);\n          draftMessages.push(newTestMessage);\n          return newTestMessage;\n        });\n      });\n      this.get('workspace').pushState('addNewMessage', {\n        draftMessages\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/iq-widgets/zones-widget/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    component: 'iq-widgets/zones-widget',\n    rowComponent: 'table/rows/zonestat-formatted-row',\n    modelName: 'zone',\n    accessKey: '9',\n    defaultSortId: 'asap',\n    defaultSortAsc: false,\n    title: 'Zones',\n    columns: [{\n      id: 'name',\n      type: 'text',\n      label: 'Name',\n      valuePath: 'name',\n      editable: false,\n      searchable: true,\n      parentLabel: true,\n      index: 0,\n      isMapLabelVisible: true,\n      hidden: false\n    }, {\n      id: 'asap',\n      type: 'number',\n      label: 'ASAP',\n      valuePath: 'asap',\n      index: 1,\n      searchable: true,\n      editable: false,\n      isMapLabelVisible: true,\n      highlightable: true,\n      imgPath: 'fa-user',\n      hidden: false\n    }, {\n      id: 'pb',\n      type: 'number',\n      label: 'PB',\n      valuePath: 'pb',\n      index: 2,\n      searchable: true,\n      isMapLabelVisible: true,\n      imgPath: 'fa-clock-o',\n      editable: false,\n      hidden: false\n    }, {\n      id: 'auction',\n      type: 'number',\n      label: 'Auction',\n      index: 3,\n      valuePath: 'auction',\n      searchable: true,\n      isMapLabelVisible: true,\n      imgPath: 'fa-gavel',\n      editable: false,\n      hidden: false\n    }, {\n      id: 'freeVehicle',\n      type: 'number',\n      label: 'Free Vehicles',\n      valuePath: 'freeVehicle',\n      index: 4,\n      searchable: true,\n      isMapLabelVisible: true,\n      imgPath: 'fa-cab',\n      editable: false,\n      highlightable: true,\n      hidden: false\n    }, {\n      id: 'stcVehicle',\n      type: 'number',\n      label: 'STC Vehicles',\n      valuePath: 'stcVehicle',\n      index: 5,\n      searchable: true,\n      isMapLabelVisible: true,\n      imgPath: 'fa-circle-o',\n      editable: false,\n      highlightable: true,\n      hidden: false\n    }, {\n      id: 'totalVehicle',\n      type: 'number',\n      label: 'Total Vehicles',\n      valuePath: 'totalVehicle',\n      index: 6,\n      searchable: true,\n      isMapLabelVisible: true,\n      imgPath: 'fa-cog',\n      editable: false,\n      highlightable: true,\n      hidden: true\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/login-form/component\", [\"exports\", \"adept-iq/config/environment\"], function (_exports, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    errors: null,\n    email: null,\n    password: null,\n    resetPasswordAllowed: true,\n    isValid: Ember.computed('email', 'password', function () {\n      const email = this.get('email');\n      const password = this.get('password');\n      return Ember.isPresent(email) && Ember.isPresent(password);\n    }),\n\n    init() {\n      this._super(...arguments);\n\n      if (_environment.default.APP.avlmLite) {\n        this.set('resetPasswordAllowed', false);\n      }\n    },\n\n    actions: {\n      onSubmit(email, password, e) {\n        e.preventDefault();\n        this.get('onSubmit')(email, password);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/login-form/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"vjttCwQg\",\n    \"block\": \"{\\\"symbols\\\":[\\\"error\\\"],\\\"statements\\\":[[7,\\\"form\\\"],[12,\\\"onsubmit\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSubmit\\\",[23,[\\\"email\\\"]],[23,[\\\"password\\\"]]],null]],[9],[0,\\\"\\\\n  \\\"],[7,\\\"label\\\"],[9],[0,\\\"\\\\n    Username\\\\n    \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"email\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"email\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"data-test-email-input\\\",\\\"\\\"],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"label\\\"],[9],[0,\\\"\\\\n    Password\\\\n    \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"password\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"password\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"data-test-password-input\\\",\\\"\\\"],[11,\\\"type\\\",\\\"password\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"errors\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"ul\\\"],[11,\\\"class\\\",\\\"errors\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"errors\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"li\\\"],[9],[1,[22,1,[]],false],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n \\\"],[2,\\\" {{#if resetPasswordAllowed}}\\\\n    {{#link-to 'forgot-password' class=\\\\\\\"data-test-forgot-password\\\\\\\"}}Forgot Password?{{/link-to}}\\\\n  {{/if}}\\\\n  \\\"],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn\\\"],[12,\\\"disabled\\\",[27,\\\"not\\\",[[23,[\\\"isValid\\\"]]],null]],[11,\\\"data-test-login-button\\\",\\\"\\\"],[11,\\\"type\\\",\\\"submit\\\"],[9],[0,\\\"\\\\n    Log In\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/login-form/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/notification-bar/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    errorMessage: Ember.inject.service()\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/notification-bar/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"JW6ZmVTj\",\n    \"block\": \"{\\\"symbols\\\":[\\\"component\\\",\\\"flash\\\"],\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"errorMessage\\\",\\\"topMessage\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"notification-bar\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"flash-message\\\",null,[[\\\"flash\\\"],[[23,[\\\"errorMessage\\\",\\\"topMessage\\\"]]]],{\\\"statements\\\":[[0,\\\"    \\\\n      \\\"],[7,\\\"div\\\"],[12,\\\"style\\\",[28,[[22,2,[\\\"style\\\"]],\\\";text-align: left; padding: 0 5px;\\\"]]],[9],[0,\\\"\\\\n      \\\"],[1,[22,2,[\\\"message\\\"]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1,2]},null],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/notification-bar/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/register-form/component\", [\"exports\", \"ember-cp-validations\"], function (_exports, _emberCpValidations) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const Validations = (0, _emberCpValidations.buildValidations)({\n    password: {\n      validators: [(0, _emberCpValidations.validator)('presence', true), (0, _emberCpValidations.validator)('confirmation', {\n        on: 'password'\n      })]\n    },\n    confirmPassword: (0, _emberCpValidations.validator)('confirmation', {\n      on: 'password',\n      message: 'Passwords do not match'\n    }),\n    acceptTerms: (0, _emberCpValidations.validator)(value => value === true)\n  }, {\n    debounce: 500\n  });\n\n  var _default = Ember.Component.extend(Validations, {\n    /*eslint-disable */\n    invitaton: undefined,\n    errors: undefined,\n    password: undefined,\n    confirmPassword: undefined,\n    acceptTerms: false,\n\n    /*eslint-enable */\n    isValid: Ember.computed.alias('validations.isValid'),\n    actions: {\n      onSubmit(email, password, e) {\n        e.preventDefault();\n        this.get('onSubmit')(email, password);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/register-form/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"H50+DcpS\",\n    \"block\": \"{\\\"symbols\\\":[\\\"error\\\"],\\\"statements\\\":[[7,\\\"form\\\"],[12,\\\"onsubmit\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSubmit\\\",[23,[\\\"invitation\\\",\\\"email\\\"]],[23,[\\\"password\\\"]]],null]],[9],[0,\\\"\\\\n  \\\"],[7,\\\"label\\\"],[9],[0,\\\"\\\\n    Email\\\\n    \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[23,[\\\"invitation\\\",\\\"email\\\"]]],[11,\\\"disabled\\\",\\\"disabled\\\"],[11,\\\"type\\\",\\\"email\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"label\\\"],[9],[0,\\\"\\\\n    Password\\\\n    \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"password\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"password\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"password\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"label\\\"],[9],[0,\\\"\\\\n    Confirm Password\\\\n\\\\n    \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"confirmPassword\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"confirmPassword\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"password\\\"],[9],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"and\\\",[[23,[\\\"validations\\\",\\\"attrs\\\",\\\"confirmPassword\\\",\\\"isDirty\\\"]],[23,[\\\"validations\\\",\\\"attrs\\\",\\\"confirmPassword\\\",\\\"isInvalid\\\"]]],null]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"p\\\"],[11,\\\"class\\\",\\\"errors\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[23,[\\\"validations\\\",\\\"attrs\\\",\\\"confirmPassword\\\",\\\"message\\\"]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"label\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"input\\\"],[12,\\\"checked\\\",[21,\\\"acceptTerms\\\"]],[12,\\\"onchange\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"acceptTerms\\\"]]],null]],[[\\\"value\\\"],[\\\"target.checked\\\"]]]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n    Accept \\\"],[4,\\\"link-to\\\",[\\\"terms-of-service\\\"],[[\\\"target\\\"],[\\\"_blank\\\"]],{\\\"statements\\\":[[0,\\\"Terms of Service\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"errors\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"ul\\\"],[11,\\\"class\\\",\\\"errors\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"errors\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"li\\\"],[9],[1,[22,1,[]],false],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n  \\\"],[7,\\\"button\\\"],[12,\\\"disabled\\\",[27,\\\"not\\\",[[23,[\\\"isValid\\\"]]],null]],[11,\\\"type\\\",\\\"submit\\\"],[9],[0,\\\"\\\\n    Register\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/register-form/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/reset-form/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    /*eslint-disable */\n    errors: undefined,\n    success: undefined,\n    newPassword: undefined,\n    confirmPassword: undefined,\n\n    /*eslint-enable */\n    containsCaptial: Ember.computed('newPassword', function () {\n      const pass = this.get('newPassword');\n      if (!pass) return false;\n      return pass.match(/[A-Z]/);\n    }),\n    containsNumber: Ember.computed('newPassword', function () {\n      const pass = this.get('newPassword');\n      if (!pass) return false;\n      return pass.match(/[0-9]/);\n    }),\n    containsMoreThanEight: Ember.computed.gte('newPassword.length', 8),\n    matchPassword: Ember.computed('newPassword', 'confirmPassword', function () {\n      if (!this.get('newPassword')) return false;\n      return this.get('newPassword') === this.get('confirmPassword');\n    }),\n    containsSymbol: Ember.computed('newPassword', function () {\n      const pass = this.get('newPassword');\n      if (!pass) return false;\n      return pass.match(/[~!@#$%^&*()_\\-+={};:'\"|\\\\<>,.?/]/);\n    }),\n    isValid: Ember.computed.and('containsCaptial', 'containsNumber', 'containsMoreThanEight', 'matchPassword', 'containsSymbol'),\n    actions: {\n      onSubmit(newPassword, e) {\n        e.preventDefault();\n        this.get('onSubmit')(newPassword);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/reset-form/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"Q3R/1C2n\",\n    \"block\": \"{\\\"symbols\\\":[\\\"error\\\"],\\\"statements\\\":[[7,\\\"form\\\"],[12,\\\"onsubmit\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSubmit\\\",[23,[\\\"newPassword\\\"]]],null]],[9],[0,\\\"\\\\n  \\\"],[7,\\\"label\\\"],[9],[0,\\\"\\\\n    New Password\\\\n    \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"newPassword\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"newPassword\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"password\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"label\\\"],[9],[0,\\\"\\\\n    Confirm Password\\\\n    \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"confirmPassword\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"confirmPassword\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[11,\\\"type\\\",\\\"password\\\"],[9],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"errors\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"ul\\\"],[11,\\\"class\\\",\\\"errors\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"errors\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"li\\\"],[9],[1,[22,1,[]],false],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"success\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"success\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"p\\\"],[9],[1,[21,\\\"success\\\"],false],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n  \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn\\\"],[12,\\\"disabled\\\",[27,\\\"not\\\",[[23,[\\\"isValid\\\"]]],null]],[11,\\\"type\\\",\\\"submit\\\"],[9],[0,\\\"\\\\n    Confirm\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"validation-container\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"ul\\\"],[11,\\\"class\\\",\\\"validation-list\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"li\\\"],[11,\\\"class\\\",\\\"list-item\\\"],[9],[7,\\\"i\\\"],[12,\\\"class\\\",[28,[\\\"fa \\\",[27,\\\"if\\\",[[23,[\\\"containsCaptial\\\"]],\\\"fa-check icon correct\\\",\\\"fa-times icon incorrect\\\"],null]]]],[9],[10],[0,\\\"Password contains at least 1 capital letter\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"li\\\"],[11,\\\"class\\\",\\\"list-item\\\"],[9],[7,\\\"i\\\"],[12,\\\"class\\\",[28,[\\\"fa \\\",[27,\\\"if\\\",[[23,[\\\"containsSymbol\\\"]],\\\"fa-check icon correct\\\",\\\"fa-times icon incorrect\\\"],null]]]],[9],[10],[0,\\\"Password contains at least 1 symbol\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"li\\\"],[11,\\\"class\\\",\\\"list-item\\\"],[9],[7,\\\"i\\\"],[12,\\\"class\\\",[28,[\\\"fa \\\",[27,\\\"if\\\",[[23,[\\\"containsNumber\\\"]],\\\"fa-check icon correct\\\",\\\"fa-times icon incorrect\\\"],null]]]],[9],[10],[0,\\\"Password contains at least 1 number\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"li\\\"],[11,\\\"class\\\",\\\"list-item\\\"],[9],[7,\\\"i\\\"],[12,\\\"class\\\",[28,[\\\"fa \\\",[27,\\\"if\\\",[[23,[\\\"containsMoreThanEight\\\"]],\\\"fa-check icon correct\\\",\\\"fa-times icon incorrect\\\"],null]]]],[9],[10],[0,\\\"Password contains at least 8 characters\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"li\\\"],[11,\\\"class\\\",\\\"list-item\\\"],[9],[7,\\\"i\\\"],[12,\\\"class\\\",[28,[\\\"fa \\\",[27,\\\"if\\\",[[23,[\\\"matchPassword\\\"]],\\\"fa-check icon correct\\\",\\\"fa-times icon incorrect\\\"],null]]]],[9],[10],[0,\\\"Two password entries match\\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[10],[0,\\\"\\\\n\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/reset-form/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/secondary-window/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['secondary-window'],\n    title: null,\n    isLoading: false,\n    onXButtonClick: null,\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this._onKeyDown = event => {\n        Ember.run.schedule('afterRender', this, 'onKeyDown', event);\n      };\n\n      this.$().on('keydown', this._onKeyDown);\n    },\n\n    willRemoveElement() {\n      this.$().off('keydown', this._onKeyDown);\n      this._onKeyDown = null;\n\n      this._super(...arguments);\n    },\n\n    /*eslint-disable */\n    onKeyDown(event) {\n      switch (event.key) {\n        case 'Escape':\n          {\n            event.preventDefault();\n            return this.get('onXButtonClick')();\n          }\n\n        default:\n          break;\n      }\n    },\n\n    /*eslint-enable */\n    actions: {\n      onXButtonClick() {\n        this.get('onXButtonClick')();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/secondary-window/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"7XfcuFC5\",\n    \"block\": \"{\\\"symbols\\\":[\\\"&default\\\"],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"secondary-window-modal\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"secondary-window-header\\\"],[9],[0,\\\"\\\\n    \\\"],[1,[21,\\\"title\\\"],false],[0,\\\"\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"spacer\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"close-button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onXButtonClick\\\"],null]],[9],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-times\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"secondary-window-body\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isLoading\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"loading-spinner\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-circle-o-notch fa-spin\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"      \\\"],[14,1],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/secondary-window/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer-container/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const RESIZE_CURSOR_OFFSET = -2;\n  const SIDE_DRAWER_SHRUNKEN_WIDTH = 20;\n  const AUTO_CLOSE_MODAL_WIDTH = 213;\n\n  var _default = Ember.Component.extend({\n    // NOTE: actual styling classes are applied to the modal in template;\n    // it's element is not a child of this component's element\n    classNames: ['side-drawer-container'],\n    workspace: Ember.inject.service(),\n    isShrunken: false,\n    lastModalWidth: null,\n    sideDrawerTitle: Ember.computed.alias('workspace.topStateDisplayName'),\n    containerClassNames: Ember.computed('workspace.topState', function () {\n      const classes = ['ember-modal-dialog', 'side-drawer-modal']; // TODO: make these part of state config\n\n      const topState = this.get('workspace.topState');\n\n      switch (topState) {\n        case 'editWorkspace':\n          classes.push('add-widget-drawer');\n          break;\n\n        case 'filterColumnWidget':\n        case 'filterMapWidget':\n          classes.push('filter-drawer');\n          break;\n\n        default:\n          break;\n      }\n\n      return classes;\n    }),\n    actions: {\n      resizeModal(position) {\n        if (this.get('isShrunken')) {\n          return;\n        }\n\n        const windowWidth = Ember.$(window).width(); // Resize cursor offset ensures cursor is centered on handle.\n\n        const modalWidth = windowWidth - position.x + RESIZE_CURSOR_OFFSET;\n        Ember.run.scheduleOnce('afterRender', () => {\n          if (windowWidth - modalWidth > AUTO_CLOSE_MODAL_WIDTH) {\n            Ember.$('.side-drawer-modal').css('right', `${modalWidth}px`);\n          } else {\n            this.send('onShrinkClick');\n          }\n        });\n      },\n\n      onCloseClick() {\n        this.get('workspace').popState();\n      },\n\n      onShrinkClick() {\n        const isShrunken = this.get('isShrunken');\n\n        if (isShrunken) {\n          // Let's restore the old modal width\n          const modalWidth = this.get('lastModalWidth');\n          Ember.$('.side-drawer').css('right', `${modalWidth}px`);\n          Ember.$('.side-drawer').css('left', '0px');\n        } else {\n          // Shrink the modal and save the old minWidth\n          const currentModalWidth = parseInt(Ember.$('.side-drawer').css('right'), 10);\n          this.set('lastModalWidth', currentModalWidth);\n          const windowWidth = Ember.$(window).width();\n          const rightPosition = windowWidth - SIDE_DRAWER_SHRUNKEN_WIDTH; // this has to be the former modal width, minus the side drawer side\n\n          const leftPosition = 0 - parseInt(currentModalWidth, 10) + SIDE_DRAWER_SHRUNKEN_WIDTH;\n          Ember.$('.side-drawer').css('right', `${rightPosition}px`);\n          Ember.$('.side-drawer').css('left', `${leftPosition}px`);\n        }\n\n        this.toggleProperty('isShrunken');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer-container/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"xuy89h6L\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isShrunken\\\"]]],null,{\\\"statements\\\":[[4,\\\"modal-dialog\\\",null,[[\\\"containerClassNames\\\",\\\"overlayClass\\\",\\\"targetAttachment\\\",\\\"hasOverlay\\\"],[\\\"side-drawer-modal side-drawer-shrunken data-test-shrunken-side-drawer\\\",\\\"edit-widget-overlay\\\",\\\"left\\\",false]],{\\\"statements\\\":[[0,\\\"\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-buttons btn-toolbar justify-content-between\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"side-drawer-button\\\"],[11,\\\"data-test-toggle-side-drawer\\\",\\\"\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onShrinkClick\\\"],null]],[9],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"span\\\"],[9],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-angle-double-right\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"modal-dialog\\\",null,[[\\\"containerClassNames\\\",\\\"overlayClass\\\",\\\"targetAttachment\\\",\\\"hasOverlay\\\"],[[23,[\\\"containerClassNames\\\"]],\\\"edit-widget-overlay\\\",\\\"left\\\",false]],{\\\"statements\\\":[[0,\\\"\\\\n    \\\"],[1,[27,\\\"dashboard/modals/edit-form/resize-handle\\\",null,[[\\\"onResizeModal\\\"],[[27,\\\"action\\\",[[22,0,[]],\\\"resizeModal\\\"],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"sideDrawerComponent\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[1,[27,\\\"component\\\",[[23,[\\\"sideDrawerComponent\\\"]]],[[\\\"onCloseClick\\\",\\\"onShrinkClick\\\"],[[27,\\\"action\\\",[[22,0,[]],\\\"onCloseClick\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onShrinkClick\\\"],null]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"workspace\\\",\\\"topState\\\"]],\\\"routeActivityLog\\\"],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[1,[21,\\\"side-drawer/route-activity-log\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"workspace\\\",\\\"topState\\\"]],\\\"tripActivityLog\\\"],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[1,[21,\\\"side-drawer/trip-activity-log\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[23,[\\\"workspace\\\",\\\"topState\\\"]],\\\"barChartWidget\\\"],null]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[1,[21,\\\"side-drawer/bar-chart-settings\\\"],false],[0,\\\"\\\\n      \\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer-container/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/add-new-message/component\", [\"exports\", \"adept-iq/pods/components/side-drawer/add-new-message/config\"], function (_exports, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    tagName: '',\n    workspace: Ember.inject.service(),\n    tooltip: Ember.inject.service(),\n    store: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    title: 'Send Message',\n    sections: _config.default.sections,\n    templates: null,\n    selectedTemplate: null,\n    messageText: null,\n    draftMessages: Ember.computed.alias('workspace.topOptions.draftMessages'),\n\n    didInsertElement() {},\n\n    validateRecords(draftMessages) {\n      let valid = true;\n      this.set('editModal.errors', []);\n      console.log('isBlank ', Ember.isBlank(this.get('messageText')));\n\n      if (Ember.isBlank(this.get('messageText'))) {\n        valid = false;\n        this.get('errorMessage').pushError({\n          detail: `Message should be there`\n        });\n      }\n\n      return valid;\n    },\n\n    sendMessage() {\n      let draftMessages = this.get('draftMessages');\n\n      if (this.validateRecords(draftMessages)) {\n        draftMessages.forEach(message => {\n          message.set('body', this.get('messageText'));\n          message.set('subject', this.get('messageText'));\n        });\n        const me = this;\n        return new Promise((resolve, reject) => {\n          draftMessages.forEach(message => {\n            message.save().then(() => {\n              me.get('errorMessage').pushInfo({\n                detail: `Message successfully send`\n              });\n            }).catch(function () {\n              return [];\n            });\n          });\n        });\n      }\n    },\n\n    cancelMessage() {\n      this.get('tooltip').reset();\n    },\n\n    actions: {\n      onInput(value) {\n        this.set(`messageText`, value);\n      },\n\n      onSendMessageButtonClick() {\n        this.sendMessage();\n        /*let tooltip = this.get('tooltip');\n         tooltip.setProperties({\n          tip: 'Send new message?',\n          primaryActionText: 'Confirm',\n          secondaryActionText: 'Cancel',\n          primaryAction: () => {\n            tooltip.reset();\n            this.sendMessage();\n          },\n          secondaryAction: () => {\n            toolbar.reset();\n            this.cancelMessage();\n          }\n        });*/\n      },\n\n      onTemplateSelect(template) {\n        this.set('selectedTemplate', template);\n      },\n\n      onCloseButtonClick() {\n        this.get('workspace').popState();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/add-new-message/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = {\n    modelName: 'avlm-canned-message-template',\n    sections: [{\n      title: 'Message content',\n      fields: [{\n        id: 'title',\n        type: 'enum',\n        label: 'Title',\n        valuePath: 'messageNr',\n        cellDesc: 'title',\n        editable: true,\n        hidden: false,\n        extra: {\n          allowMultiple: false\n        }\n      }, {\n        id: 'content',\n        type: 'text',\n        label: 'Content',\n        valuePath: 'body',\n        cellDesc: 'content',\n        editable: false,\n        hidden: false\n      }]\n    }]\n  };\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/add-new-message/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"ErtPAuWk\",\n    \"block\": \"{\\\"symbols\\\":[\\\"drawer\\\",\\\"message\\\"],\\\"statements\\\":[[4,\\\"generic-widgets/side-drawer\\\",null,[[\\\"class\\\"],[\\\"add-new-message\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"header\\\"]],\\\"expected `drawer.header` to be a contextual component but found a string. Did you mean `(component drawer.header)`? ('adept-iq/pods/components/side-drawer/add-new-message/template.hbs' @ L5:C4) \\\"],null]],[[\\\"title\\\",\\\"onShrinkClick\\\",\\\"onCloseClick\\\"],[[23,[\\\"title\\\"]],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onShrinkClick\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onCloseClick\\\"]]],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"body\\\"]],\\\"expected `drawer.body` to be a contextual component but found a string. Did you mean `(component drawer.body)`? ('adept-iq/pods/components/side-drawer/add-new-message/template.hbs' @ L10:C5) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-widget\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-widget-header\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"h5\\\"],[11,\\\"class\\\",\\\"form-widget-title\\\"],[9],[0,\\\"Add New Message\\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"form-widget-subheader\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"subheader-buttons\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"header-button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onSendMessageButtonClick\\\"],null]],[11,\\\"type\\\",\\\"button\\\"],[9],[0,\\\"\\\\n              Send Message\\\\n            \\\"],[10],[0,\\\"\\\\n            \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"header-button-outline\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onCloseButtonClick\\\"],null]],[11,\\\"type\\\",\\\"button\\\"],[9],[0,\\\"\\\\n              Close\\\\n            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"Message\\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"form-control\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[12,\\\"disabled\\\",[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[9],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"draftMessages\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"table\\\"],[11,\\\"class\\\",\\\"mt-3\\\"],[9],[0,\\\"\\\\n\\\\n          \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"\\\\n              Driver Name:\\\\n            \\\"],[10],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[22,2,[\\\"driver\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[1,[22,2,[\\\"driver\\\",\\\"name\\\"]],false],[0,\\\" \\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                (avlm-driver not available)\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n\\\\n          \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"cell-label\\\"],[9],[0,\\\"\\\\n              Call Sign:\\\\n            \\\"],[10],[0,\\\"\\\\n            \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"edit-cell\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[22,2,[\\\"vehicle\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[1,[22,2,[\\\"vehicle\\\",\\\"callsign\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                (Vehicle ID not available)\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n\\\\n          \\\\n        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/add-new-message/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/add-widget/component\", [\"exports\", \"adept-iq/config/widget-groups\", \"adept-iq/utils/widget-placement\", \"lodash\"], function (_exports, _widgetGroups, _widgetPlacement, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    workspace: Ember.inject.service(),\n    store: Ember.inject.service(),\n    tagName: '',\n    title: 'Add Widgets',\n    widgetSections: null,\n\n    init() {\n      this._super(...arguments);\n\n      this.configureWidgetsOnPermission();\n    },\n\n    configureWidgetsOnPermission() {\n      this.set('widgetSections', _lodash.default.cloneDeep(_widgetGroups.default)); //console.log('widgetGroups ',widgetGroups);\n\n      let widgetSections = this.get('widgetSections');\n      const configPermissions = this.get('workspace.configPermissions');\n      widgetSections.forEach(widgetSection => {\n        const widgetTypesAllowed = []; //console.log('widgetSection.widgetTypes ',widgetSection.widgetTypes);\n\n        widgetSection.widgetTypes.forEach(widgetType => {\n          const configPermission = configPermissions[widgetType.id]; //TODO when permission implemented\n          //if (!isNone(configPermission) && configPermission.show) {\n\n          widgetTypesAllowed.push(widgetType); //}\n        });\n        widgetSection.widgetTypes.splice(0, widgetSection.widgetTypes.length);\n        widgetTypesAllowed.forEach(widgetType => {\n          widgetSection.widgetTypes.push(widgetType);\n        });\n\n        if (widgetSection.widgetTypes.length <= 0) {\n          widgetSections = _lodash.default.reject(widgetSections, function (currWidgetSection) {\n            return currWidgetSection.id === widgetSection.id;\n          });\n          this.set('widgetSections', widgetSections);\n        }\n      });\n    },\n\n    actions: {\n      addWidget(widgetType) {\n        // TODO: move this logic into dashboard model after grid settings have\n        // have been migrated\n        const dashboard = this.get('workspace.dashboard');\n        const gridWidth = this.get('workspace.gridWidth');\n        const dashboardModel = this.get('workspace.dashboardModel');\n        const {\n          minWidth,\n          minHeight,\n          defaultWidth,\n          defaultHeight\n        } = widgetType;\n        const locations = (0, _widgetPlacement.computeWidgetPlacements)(dashboard, gridWidth, minWidth, minHeight); // might want to rank locations rather than taking the first available\n\n        const {\n          x,\n          y,\n          maxWidth,\n          maxHeight\n        } = locations[0];\n        dashboard.addWidget({\n          typeId: widgetType.id,\n          width: Math.min(defaultWidth, maxWidth),\n          height: Math.min(defaultHeight, maxHeight),\n          x,\n          y\n        }); // adding a widget will be committed to the dashboard Model that way for maximizing or minimizing the widget will be kept\n\n        dashboardModel.commitInstance(dashboard);\n      },\n\n      onShrinkClick() {\n        this.onShrinkClick();\n      },\n\n      onCloseClick() {\n        this.onCloseClick();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/add-widget/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"o5nkDAOm\",\n    \"block\": \"{\\\"symbols\\\":[\\\"drawer\\\",\\\"widgetSection\\\"],\\\"statements\\\":[[4,\\\"generic-widgets/side-drawer\\\",null,[[\\\"class\\\"],[\\\"add-widget\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"header\\\"]],\\\"expected `drawer.header` to be a contextual component but found a string. Did you mean `(component drawer.header)`? ('adept-iq/pods/components/side-drawer/add-widget/template.hbs' @ L5:C4) \\\"],null]],[[\\\"title\\\",\\\"onShrinkClick\\\",\\\"onCloseClick\\\"],[[23,[\\\"title\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onShrinkClick\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onCloseClick\\\"],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"body\\\"]],\\\"expected `drawer.body` to be a contextual component but found a string. Did you mean `(component drawer.body)`? ('adept-iq/pods/components/side-drawer/add-widget/template.hbs' @ L10:C5) \\\"],null]],null,{\\\"statements\\\":[[4,\\\"each\\\",[[23,[\\\"widgetSections\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[1,[27,\\\"side-drawer/add-widget/widget-button-section\\\",null,[[\\\"widgetSection\\\",\\\"addWidget\\\"],[[22,2,[]],[27,\\\"action\\\",[[22,0,[]],\\\"addWidget\\\"],null]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/add-widget/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/add-widget/widget-button-section/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['add-widget-section'],\n    displayButtons: true,\n    widgetSection: null,\n    isOpen: true,\n    actions: {\n      onSectionButtonClick() {\n        // expand / contract the button\n        this.toggleProperty('displayButtons');\n      },\n\n      onWidgetButtonClick(widgetType) {\n        this.get('addWidget')(widgetType);\n      },\n\n      onHeaderClick() {\n        this.toggleProperty('isOpen');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/add-widget/widget-button-section/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"cBuZe+tp\",\n    \"block\": \"{\\\"symbols\\\":[\\\"widgetType\\\"],\\\"statements\\\":[[7,\\\"div\\\"],[12,\\\"class\\\",[28,[\\\"add-widget-section-header \\\",[27,\\\"if\\\",[[27,\\\"not\\\",[[23,[\\\"isOpen\\\"]]],null],\\\"is-closed\\\"],null]]]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onHeaderClick\\\"],null]],[9],[0,\\\"\\\\n  \\\"],[7,\\\"h4\\\"],[11,\\\"class\\\",\\\"add-widget-section-title\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-sort-down\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[1,[23,[\\\"widgetSection\\\",\\\"title\\\"]],false],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isOpen\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"add-widget-section-body\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"widgetSection\\\",\\\"widgetTypes\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"add-widget-button\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[12,\\\"class\\\",[28,[\\\"widget-type-\\\",[27,\\\"lowercase\\\",[[22,1,[\\\"name\\\"]]],null],\\\" widget-icon\\\"]]],[9],[0,\\\"\\\\n          \\\"],[7,\\\"img\\\"],[9],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n        \\\"],[7,\\\"p\\\"],[9],[1,[22,1,[\\\"name\\\"]],false],[10],[0,\\\"\\\\n      \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onWidgetButtonClick\\\",[22,1,[]]]],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/add-widget/widget-button-section/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/bar-chart-settings/component\", [\"exports\", \"adept-iq/pods/components/side-drawer/bar-chart-settings/config\", \"adept-iq/pods/components/generic-widgets/column-widget/classes/filter-column\", \"ember-cli-mirage/assert\"], function (_exports, _config, _filterColumn, _assert) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    tagName: '',\n    workspace: Ember.inject.service(),\n    widget: Ember.computed.readOnly('workspace.topOptions.widget'),\n    title: 'Bar Chart',\n    dataType: null,\n    sourceOptions: null,\n\n    init() {\n      this._super(...arguments);\n\n      this.set('sourceOptions', _config.default);\n      const dataType = this.get('widget.state.dataType');\n      this.set('dataType', dataType);\n\n      if (Ember.isPresent(dataType)) {\n        this.set('filterColumns', Object.values(dataType.columns).map(col => new _filterColumn.default(col)));\n      }\n    },\n\n    actions: {\n      onTypeSelect(dataType) {\n        this.set('dataType', dataType);\n        this.set('filterColumns', Object.values(dataType.columns).map(col => new _filterColumn.default(col)));\n        this.get('widget').mergeState({\n          dataType\n        });\n      },\n\n      setDisplayOptionVisibility(selected) {\n        try {\n          Ember.run(() => {\n            this.set('dataType.displayOptions.selected', selected); // We don't want to merge properties like `valueCategories`.\n\n            Ember.set(this.get('widget'), 'state.dataType', this.get('dataType'));\n            this.get('widget').notifyPropertyChange('state');\n          });\n        } catch (e) {\n          // Catches API errors, such as missing Mirage route `/travel-needs`\n          if (!(e instanceof _assert.MirageError)) {\n            throw e;\n          }\n        }\n      },\n\n      setDisplayOptionMetric(selected) {\n        this.set('dataType.displayOptions.selected.metricOption', selected);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onFilterValueChange(column, index, event) {\n        let filterValues = column.get('filterValues') || [];\n        filterValues = filterValues.slice();\n        filterValues[index] = event.target.value; // Update the displayed filter column.\n\n        Ember.set(column, 'filterValues', filterValues);\n        const id = column.get('id'); // Update the column config.\n\n        Ember.set(this.get('dataType'), `columns.${id}.filterValues`, filterValues);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onSelectFilterType(column, filterType) {\n        // Update the displayed filter column.\n        Ember.set(column, 'filterTypeId', filterType.id);\n        const id = column.get('id'); // Update the column config.\n\n        Ember.set(this.get('dataType'), `columns.${id}.filterTypeId`, filterType.id);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onTitleInput(data) {\n        this.set('dataType.title', data);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      setVisualOptionVisibility(selected, event) {\n        const dataType = this.get('dataType');\n        Ember.set(selected, 'isChecked', event.target.checked);\n        this.get('widget').mergeState({\n          dataType\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/bar-chart-settings/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const COLUMNS = {\n    routeColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          format: 'HH:mm A',\n          defaultWidth: 75\n        },\n        filterTypeId: 'stringEq',\n        filterValues: ['Scheduled']\n      }\n    },\n    tripColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          defaultWidth: 75\n        },\n        filterTypeId: null,\n        filterValues: []\n      }\n    },\n    vehicleColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          defaultWidth: 75\n        },\n        filterTypeId: null,\n        filterValues: []\n      }\n    },\n    driverColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          defaultWidth: 75\n        },\n        filterTypeId: null,\n        filterValues: []\n      }\n    }\n  };\n  const VisualOptions = [{\n    id: 'value',\n    name: 'Show Value',\n    isChecked: true\n  }, {\n    id: 'percentage',\n    name: 'Show Percentage',\n    isChecked: false\n  }, {\n    id: 'total',\n    name: 'Show Total',\n    isChecked: true\n  }];\n  var _default = [{\n    name: 'Trips',\n    modelName: 'trip',\n    columns: COLUMNS.tripColumns,\n    displayOptions: {\n      selected: {\n        id: 'bookingType',\n        name: 'Trip Type',\n        label: 'Trip Type',\n        valueKey: 'bookingType',\n        valueCategories: [{\n          label: 'ASAP',\n          value: 'asap'\n        }, {\n          label: 'Prebook',\n          value: 'prebook'\n        }, {\n          label: 'Street Hire',\n          value: 'street_hire'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      },\n      options: [{\n        id: 'bookingType',\n        name: 'Trip Type',\n        label: 'Trip Type',\n        valueKey: 'bookingType',\n        valueCategories: [{\n          label: 'ASAP',\n          value: 'asap'\n        }, {\n          label: 'Prebook',\n          value: 'prebook'\n        }, {\n          label: 'Street Hire',\n          value: 'street_hire'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }, {\n        id: 'drivedStatus',\n        name: 'Trip Status',\n        label: 'Trip Status',\n        valueKey: 'drivedStatus',\n        valueCategories: [{\n          label: 'Completed',\n          value: 'completed'\n        }, {\n          label: 'Cancelled',\n          value: 'cancelled'\n        }, {\n          label: 'NoShow',\n          value: 'noShow'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }, {\n        id: 'paymentype',\n        name: 'Payment Type',\n        label: 'Payment Type',\n        valueKey: 'paymentype',\n        valueCategories: [{\n          label: 'Cash',\n          value: 'CASH'\n        }, {\n          label: 'Account',\n          value: 'ACCOUNT'\n        }, {\n          label: 'Credit',\n          value: 'CREDIT'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }, {\n        id: 'tripType',\n        name: 'Source',\n        label: 'Source',\n        valueKey: 'tripType',\n        valueCategories: [{\n          label: 'Call',\n          value: 'callAgent'\n        }, {\n          label: 'App',\n          value: 'riderApp'\n        }, {\n          label: 'Web',\n          value: 'webApp'\n        }, {\n          label: 'Kiosk',\n          value: 'kiosk'\n        }, {\n          label: 'IVR',\n          value: 'IVR'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }]\n    },\n    title: '',\n    visualOptions: VisualOptions\n  }, {\n    name: 'Taxis',\n    modelName: 'vehicle',\n    columns: COLUMNS.vehicleColumns,\n    displayOptions: {\n      selected: {\n        id: 'drivedStatus',\n        name: 'Vehicle Status',\n        label: 'Vehicle Status',\n        valueKey: 'drivedStatus',\n        valueCategories: [{\n          label: 'Free',\n          value: 'free'\n        }, {\n          label: 'On Break',\n          value: 'onBreak'\n        }, {\n          label: 'On Hold',\n          value: 'onHold'\n        }, {\n          label: 'Off',\n          value: 'off'\n        }, {\n          label: 'STC',\n          value: 'STC'\n        }, {\n          label: 'Emergency',\n          value: 'emergency'\n        }, {\n          label: 'Occupied',\n          value: 'occupied'\n        }, {\n          label: 'Missing',\n          value: 'missing'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      },\n      options: [{\n        id: 'drivedStatus',\n        name: 'Vehicle Status',\n        label: 'Vehicle Status',\n        valueKey: 'drivedStatus',\n        valueCategories: [{\n          label: 'Free',\n          value: 'free'\n        }, {\n          label: 'On Break',\n          value: 'onBreak'\n        }, {\n          label: 'On Hold',\n          value: 'onHold'\n        }, {\n          label: 'Off',\n          value: 'off'\n        }, {\n          label: 'Occupied',\n          value: 'occupied'\n        }, {\n          label: 'Missing',\n          value: 'missing'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }]\n    },\n    title: '',\n    visualOptions: VisualOptions\n  }, {\n    name: 'Drivers',\n    modelName: 'driver',\n    columns: COLUMNS.driverColumns,\n    displayOptions: {\n      selected: {\n        id: 'drivedStatus',\n        name: 'Driver Status',\n        label: 'Driver Status',\n        valueKey: 'drivedStatus',\n        valueCategories: [{\n          label: 'Active',\n          value: 'active'\n        }, {\n          label: 'Working',\n          value: 'working'\n        }, {\n          label: 'Off',\n          value: 'signedOff'\n        }, {\n          label: 'On Break',\n          value: 'onBreak'\n        }, {\n          label: 'Temp Off',\n          value: 'tempOff'\n        }, {\n          label: 'Emergency',\n          value: 'inEmergency'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      },\n      options: [{\n        id: 'status',\n        name: 'Driver Status',\n        label: 'Driver Status',\n        valueKey: 'drivedStatus',\n        valueCategories: [{\n          label: 'Free',\n          value: 'active'\n        }, {\n          label: 'Working',\n          value: 'working'\n        }, {\n          label: 'Off',\n          value: 'signedOff'\n        }, {\n          label: 'On Break',\n          value: 'onBreak'\n        }, {\n          label: 'Temp Off',\n          value: 'tempOff'\n        }, {\n          label: 'Emergency',\n          value: 'inEmergency'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }]\n    },\n    title: '',\n    visualOptions: VisualOptions\n  }];\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/bar-chart-settings/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"ZDAngOUQ\",\n    \"block\": \"{\\\"symbols\\\":[\\\"drawer\\\",\\\"visualOption\\\",\\\"column\\\",\\\"filterType\\\",\\\"option\\\",\\\"option\\\",\\\"type\\\"],\\\"statements\\\":[[4,\\\"generic-widgets/side-drawer\\\",null,[[\\\"class\\\"],[\\\"metrics-widget-side-drawer\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"header\\\"]],\\\"expected `drawer.header` to be a contextual component but found a string. Did you mean `(component drawer.header)`? ('adept-iq/pods/components/side-drawer/bar-chart-settings/template.hbs' @ L5:C4) \\\"],null]],[[\\\"title\\\",\\\"onShrinkClick\\\",\\\"onCloseClick\\\"],[[23,[\\\"title\\\"]],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onShrinkClick\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onCloseClick\\\"]]],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"body\\\"]],\\\"expected `drawer.body` to be a contextual component but found a string. Did you mean `(component drawer.body)`? ('adept-iq/pods/components/side-drawer/bar-chart-settings/template.hbs' @ L10:C5) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-section\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Type:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"sourceOptions\\\"]]],null],[23,[\\\"dataType\\\"]],\\\"Select Type\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"onTypeSelect\\\"],null]]],{\\\"statements\\\":[[0,\\\"          \\\"],[1,[22,7,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[7]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"dataType\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Display:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content metric-filter-section\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"options\\\"]]],null],[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\"]],\\\"Select Choice\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"setDisplayOptionVisibility\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[22,6,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[6]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\"]]],null,{\\\"statements\\\":[[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\",\\\"metricOptions\\\"]]],null],[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\",\\\"metricOption\\\"]],\\\"Select Metric\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"setDisplayOptionMetric\\\"],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,5,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[5]},null]],\\\"parameters\\\":[]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Filter by Status:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content metric-filter-section\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"filterColumns\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"selected\\\",\\\"searchEnabled\\\",\\\"searchField\\\",\\\"options\\\",\\\"onchange\\\",\\\"disabled\\\"],[[22,3,[\\\"filterType\\\"]],false,\\\"label\\\",[22,3,[\\\"filterTypes\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onSelectFilterType\\\",[22,3,[]]],null],[27,\\\"eq\\\",[[22,3,[\\\"filterTypes\\\",\\\"length\\\"]],0],null]]],{\\\"statements\\\":[[0,\\\"\\\\n              \\\"],[1,[22,4,[\\\"label\\\"]],true],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],1],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,3,[\\\"filterValues\\\",\\\"0\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,3,[]],0],null]],[12,\\\"disabled\\\",[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],0],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],2],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,3,[\\\"filterValues\\\",\\\"0\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,3,[]],0],null]],[12,\\\"disabled\\\",[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],0],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,3,[\\\"filterValues\\\",\\\"1\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,3,[]],1],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[3]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Visuals:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"value\\\",\\\"enter\\\",\\\"focus-out\\\",\\\"placeholder\\\"],[\\\"text\\\",[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"title\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onTitleInput\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onTitleInput\\\"],null],\\\"Widget Title\\\"]]],false],[0,\\\"\\\\n        \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"dataType\\\",\\\"visualOptions\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-checkbox\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[12,\\\"checked\\\",[27,\\\"readonly\\\",[[22,2,[\\\"isChecked\\\"]]],null]],[12,\\\"onchange\\\",[27,\\\"action\\\",[[22,0,[]],\\\"setVisualOptionVisibility\\\",[22,2,[]]],null]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[12,\\\"class\\\",[28,[[27,\\\"if\\\",[[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],\\\"disabled\\\"],null]]]],[9],[1,[22,2,[\\\"name\\\"]],false],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/bar-chart-settings/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/box-widget-settings/component\", [\"exports\", \"adept-iq/pods/components/side-drawer/box-widget-settings/config\", \"adept-iq/pods/components/generic-widgets/column-widget/classes/filter-column\"], function (_exports, _config, _filterColumn) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    tagName: '',\n    workspace: Ember.inject.service(),\n    title: 'Box Chart',\n    widget: Ember.computed.readOnly('workspace.topOptions.widget'),\n    dataType: null,\n    sourceOptions: null,\n\n    init() {\n      this._super(...arguments);\n\n      this.set('sourceOptions', _config.default);\n      const dataType = this.get('widget.state.dataType');\n      this.set('dataType', dataType);\n\n      if (Ember.isPresent(dataType)) {\n        this.set('filterColumns', Object.values(dataType.columns).map(col => new _filterColumn.default(col)));\n      }\n    },\n\n    actions: {\n      onTypeSelect(dataType) {\n        this.set('dataType', dataType);\n        this.set('filterColumns', Object.values(dataType.columns).map(col => new _filterColumn.default(col)));\n        this.get('widget').mergeState({\n          dataType\n        });\n      },\n\n      setDisplayOptionVisibility(selected) {\n        this.set('dataType.displayOptions.selected', selected);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      setDisplayOptionMetric(selected) {\n        this.set('dataType.displayOptions.selected.metricOption', selected);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      setDisplayOptionValueCategory(selected) {\n        this.set('dataType.displayOptions.selected.valueCategory', selected);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onFilterValueChange(column, index, event) {\n        let filterValues = column.get('filterValues') || [];\n        filterValues = filterValues.slice();\n        filterValues[index] = event.target.value; // Update the displayed filter column.\n\n        Ember.set(column, 'filterValues', filterValues);\n        const id = column.get('id'); // Update the column config.\n\n        Ember.set(this.get('dataType'), `columns.${id}.filterValues`, filterValues);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onSelectFilterType(column, filterType) {\n        // Update the displayed filter column.\n        Ember.set(column, 'filterTypeId', filterType.id);\n        const id = column.get('id'); // Update the column config.\n\n        Ember.set(this.get('dataType'), `columns.${id}.filterTypeId`, filterType.id);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onTitleInput(data) {\n        this.set('dataType.title', data);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      setBoxMetriclabel(label) {\n        this.set('dataType.boxMetricLabel', label);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onGoColorChange(color, data) {\n        /*eslint-disable */\n        data = parseInt(data, 10);\n        /*eslint-enable */\n\n        if (data) {\n          Ember.set(this.get('dataType'), `boxColor.${color}`, data);\n          this.get('widget').mergeState({\n            dataType: this.get('dataType')\n          });\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/box-widget-settings/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const COLUMNS = {\n    routeColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          format: 'HH:mm A',\n          defaultWidth: 75\n        },\n        filterTypeId: 'stringEq',\n        filterValues: ['Scheduled']\n      }\n    },\n    tripColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          defaultWidth: 75\n        },\n        filterTypeId: null,\n        filterValues: []\n      }\n    },\n    vehicleColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          defaultWidth: 75\n        },\n        filterTypeId: null,\n        filterValues: []\n      }\n    },\n    driverColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          defaultWidth: 75\n        },\n        filterTypeId: null,\n        filterValues: []\n      }\n    }\n  };\n  const BOX_COLOR = {\n    orange: 2,\n    red: 4\n  };\n  var _default = [{\n    name: 'Trips',\n    modelName: 'trip',\n    columns: COLUMNS.tripColumns,\n    displayOptions: {\n      selected: {\n        id: 'bookingType',\n        name: 'Trip Type',\n        label: 'Trip Type',\n        valueKey: 'bookingType',\n        valueCategories: [{\n          label: 'ASAP',\n          value: 'asap'\n        }, {\n          label: 'Prebook',\n          value: 'prebook'\n        }, {\n          label: 'Street Hire',\n          value: 'street_hire'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      },\n      options: [{\n        id: 'bookingType',\n        name: 'Trip Type',\n        label: 'Trip Type',\n        valueKey: 'bookingType',\n        valueCategories: [{\n          label: 'ASAP',\n          value: 'asap'\n        }, {\n          label: 'Prebook',\n          value: 'prebook'\n        }, {\n          label: 'Street Hire',\n          value: 'street_hire'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }, {\n        id: 'driverStatus',\n        name: 'Trip Status',\n        label: 'Trip Status',\n        valueKey: 'driverStatus',\n        valueCategories: [{\n          label: 'Completed',\n          value: 'completed'\n        }, {\n          label: 'Cancelled',\n          value: 'cancelled'\n        }, {\n          label: 'NoShow',\n          value: 'noShow'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }, {\n        id: 'paymentype',\n        name: 'Payment Type',\n        label: 'Payment Type',\n        valueKey: 'paymentype',\n        valueCategories: [{\n          label: 'Cash',\n          value: 'CASH'\n        }, {\n          label: 'Account',\n          value: 'ACCOUNT'\n        }, {\n          label: 'Credit',\n          value: 'CREDIT'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }, {\n        id: 'tripType',\n        name: 'Source',\n        label: 'Source',\n        valueKey: 'tripType',\n        valueCategories: [{\n          label: 'Call',\n          value: 'callAgent'\n        }, {\n          label: 'App',\n          value: 'riderApp'\n        }, {\n          label: 'Web',\n          value: 'webApp'\n        }, {\n          label: 'Kiosk',\n          value: 'kiosk'\n        }, {\n          label: 'IVR',\n          value: 'IVR'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }]\n    },\n    title: '',\n    boxColor: BOX_COLOR\n  }, {\n    name: 'Taxis',\n    modelName: 'vehicle',\n    columns: COLUMNS.vehicleColumns,\n    displayOptions: {\n      selected: {\n        id: 'drivedStatus',\n        name: 'Status',\n        label: 'Status',\n        valueKey: 'drivedStatus',\n        valueCategory: {\n          label: 'Available Taxis',\n          value: 'free'\n        },\n        valueCategories: [{\n          label: 'Available Taxis',\n          value: 'free'\n        }, {\n          label: 'On Break',\n          value: 'onBreak'\n        }, {\n          label: 'On Hold',\n          value: 'onHold'\n        }, {\n          label: 'Off',\n          value: 'off'\n        }, {\n          label: 'STC',\n          value: 'STC'\n        }, {\n          label: 'Emergency',\n          value: 'emergency'\n        }, {\n          label: 'Occupied',\n          value: 'occupied'\n        }, {\n          label: 'Missing',\n          value: 'missing'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      },\n      options: [{\n        id: 'drivedStatus',\n        name: 'Status',\n        label: 'Status',\n        valueKey: 'drivedStatus',\n        valueCategory: {\n          label: 'Available Taxis',\n          value: 'free'\n        },\n        valueCategories: [{\n          label: 'Available Taxis',\n          value: 'free'\n        }, {\n          label: 'On Break',\n          value: 'onBreak'\n        }, {\n          label: 'On Hold',\n          value: 'onHold'\n        }, {\n          label: 'Off',\n          value: 'off'\n        }, {\n          label: 'Occupied',\n          value: 'occupied'\n        }, {\n          label: 'Missing',\n          value: 'missing'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }]\n    },\n    title: '',\n    boxColor: BOX_COLOR\n  }, {\n    name: 'Drivers',\n    modelName: 'driver',\n    columns: COLUMNS.driverColumns,\n    displayOptions: {\n      selected: {\n        id: 'drivedStatus',\n        name: 'Status',\n        label: 'Status',\n        valueKey: 'drivedStatus',\n        valueCategory: {\n          label: 'Available Drivers',\n          value: 'active'\n        },\n        valueCategories: [{\n          label: 'Available Drivers',\n          value: 'active'\n        }, {\n          label: 'Working',\n          value: 'working'\n        }, {\n          label: 'Off',\n          value: 'signedOff'\n        }, {\n          label: 'On Break',\n          value: 'onBreak'\n        }, {\n          label: 'Temp Off',\n          value: 'tempOff'\n        }, {\n          label: 'Emergency',\n          value: 'inEmergency'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      },\n      options: [{\n        id: 'drivedStatus',\n        name: 'Status',\n        label: 'Status',\n        valueKey: 'drivedStatus',\n        valueCategory: {\n          label: 'Available Drivers',\n          value: 'active'\n        },\n        valueCategories: [{\n          label: 'Available Drivers',\n          value: 'active'\n        }, {\n          label: 'Working',\n          value: 'working'\n        }, {\n          label: 'Off',\n          value: 'signedOff'\n        }, {\n          label: 'On Break',\n          value: 'onBreak'\n        }, {\n          label: 'Temp Off',\n          value: 'tempOff'\n        }, {\n          label: 'Emergency',\n          value: 'inEmergency'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }]\n    },\n    title: '',\n    boxColor: BOX_COLOR\n  }];\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/box-widget-settings/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"EhA4hSln\",\n    \"block\": \"{\\\"symbols\\\":[\\\"drawer\\\",\\\"column\\\",\\\"filterType\\\",\\\"option\\\",\\\"option\\\",\\\"option\\\",\\\"type\\\"],\\\"statements\\\":[[4,\\\"generic-widgets/side-drawer\\\",null,[[\\\"class\\\"],[\\\"metrics-widget-side-drawer\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"header\\\"]],\\\"expected `drawer.header` to be a contextual component but found a string. Did you mean `(component drawer.header)`? ('adept-iq/pods/components/side-drawer/box-widget-settings/template.hbs' @ L5:C4) \\\"],null]],[[\\\"title\\\",\\\"onShrinkClick\\\",\\\"onCloseClick\\\"],[[23,[\\\"title\\\"]],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onShrinkClick\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onCloseClick\\\"]]],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"body\\\"]],\\\"expected `drawer.body` to be a contextual component but found a string. Did you mean `(component drawer.body)`? ('adept-iq/pods/components/side-drawer/box-widget-settings/template.hbs' @ L10:C5) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-section\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Type:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"sourceOptions\\\"]]],null],[23,[\\\"dataType\\\"]],\\\"Select Type\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"onTypeSelect\\\"],null]]],{\\\"statements\\\":[[0,\\\"          \\\"],[1,[22,7,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[7]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"dataType\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Display:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content metric-filter-section\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"options\\\"]]],null],[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\"]],\\\"Select Choice\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"setDisplayOptionVisibility\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[22,6,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[6]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\",\\\"valueCategories\\\"]]],null],[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\",\\\"valueCategory\\\"]],\\\"Select Category\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"setDisplayOptionValueCategory\\\"],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,5,[\\\"label\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[5]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\\n          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\",\\\"metricOptions\\\"]]],null],[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\",\\\"metricOption\\\"]],\\\"Select Metric\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"setDisplayOptionMetric\\\"],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,4,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Filter by Status:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content metric-filter-section\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"filterColumns\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"selected\\\",\\\"searchEnabled\\\",\\\"searchField\\\",\\\"options\\\",\\\"onchange\\\",\\\"disabled\\\"],[[22,2,[\\\"filterType\\\"]],false,\\\"label\\\",[22,2,[\\\"filterTypes\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onSelectFilterType\\\",[22,2,[]]],null],[27,\\\"eq\\\",[[22,2,[\\\"filterTypes\\\",\\\"length\\\"]],0],null]]],{\\\"statements\\\":[[0,\\\"\\\\n              \\\"],[1,[22,3,[\\\"label\\\"]],true],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,2,[\\\"filterType\\\",\\\"arity\\\"]],1],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,2,[\\\"filterValues\\\",\\\"0\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,2,[]],0],null]],[12,\\\"disabled\\\",[27,\\\"eq\\\",[[22,2,[\\\"filterType\\\",\\\"arity\\\"]],0],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,2,[\\\"filterType\\\",\\\"arity\\\"]],2],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,2,[\\\"filterValues\\\",\\\"0\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,2,[]],0],null]],[12,\\\"disabled\\\",[27,\\\"eq\\\",[[22,2,[\\\"filterType\\\",\\\"arity\\\"]],0],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\\n            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,2,[\\\"filterValues\\\",\\\"1\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,2,[]],1],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[2]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Visuals\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"value\\\",\\\"enter\\\",\\\"focus-out\\\",\\\"placeholder\\\"],[\\\"text\\\",[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"title\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onTitleInput\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onTitleInput\\\"],null],\\\"Widget Title\\\"]]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Box Colors \\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-section\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-number-input\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"label\\\"],[9],[0,\\\"Go Orange:\\\"],[10],[0,\\\"\\\\n          \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"id\\\",\\\"value\\\",\\\"enter\\\",\\\"focus-out\\\"],[\\\"number\\\",\\\"go-orange-input\\\",[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"boxColor\\\",\\\"orange\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onGoColorChange\\\",\\\"orange\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onGoColorChange\\\",\\\"orange\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-number-input\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"label\\\"],[9],[0,\\\"Go Red:\\\"],[10],[0,\\\"\\\\n          \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"id\\\",\\\"value\\\",\\\"enter\\\",\\\"focus-out\\\"],[\\\"number\\\",\\\"go-red-input\\\",[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"boxColor\\\",\\\"red\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onGoColorChange\\\",\\\"red\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onGoColorChange\\\",\\\"red\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/box-widget-settings/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/donut-chart-settings/component\", [\"exports\", \"adept-iq/pods/components/side-drawer/donut-chart-settings/config\", \"adept-iq/pods/components/generic-widgets/column-widget/classes/filter-column\"], function (_exports, _config, _filterColumn) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    tagName: '',\n    workspace: Ember.inject.service(),\n    widget: Ember.computed.readOnly('workspace.topOptions.widget'),\n    dataType: null,\n    sourceOptions: null,\n\n    init() {\n      this._super(...arguments);\n\n      this.set('sourceOptions', _config.default);\n      const dataType = this.get('widget.state.dataType');\n      this.set('dataType', dataType);\n\n      if (Ember.isPresent(dataType)) {\n        this.set('filterColumns', Object.values(dataType.columns).map(col => new _filterColumn.default(col)));\n      }\n    },\n\n    actions: {\n      onTypeSelect(dataType) {\n        this.set('dataType', dataType);\n        this.set('filterColumns', Object.values(dataType.columns).map(col => new _filterColumn.default(col)));\n        this.get('widget').mergeState({\n          dataType\n        });\n      },\n\n      setVisualOptionVisibility(selected, event) {\n        const dataType = this.get('dataType');\n        Ember.set(selected, 'isChecked', event.target.checked);\n        this.get('widget').mergeState({\n          dataType\n        });\n      },\n\n      onTitleInput(data) {\n        this.set('dataType.title', data);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      setDisplayOptionVisibility(displaySet, selected) {\n        Ember.set(displaySet, 'selected', selected); // Don't want to merge `valueCategories`.\n\n        Ember.set(this.get('widget'), 'state.dataType', this.get('dataType'));\n        this.get('widget').notifyPropertyChange('state');\n      },\n\n      setSortOrder(selected) {\n        this.set('dataType.sortOrder.selected', selected);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      setLegendPlacement(selected) {\n        this.set('dataType.legendPlacement.selected', selected);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onFilterValueChange(column, index, event) {\n        let filterValues = column.get('filterValues') || [];\n        filterValues = filterValues.slice();\n        filterValues[index] = event.target.value; // Update the displayed filter column.\n\n        Ember.set(column, 'filterValues', filterValues);\n        const id = column.get('id'); // Update the column config.\n\n        Ember.set(this.get('dataType'), `columns.${id}.filterValues`, filterValues);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onSelectFilterType(column, filterType) {\n        // Update the displayed filter column.\n        Ember.set(column, 'filterTypeId', filterType.id);\n        const id = column.get('id'); // Update the column config.\n\n        Ember.set(this.get('dataType'), `columns.${id}.filterTypeId`, filterType.id);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/donut-chart-settings/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const COLUMNS = {\n    routeColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          format: 'HH:mm A',\n          defaultWidth: 75\n        },\n        filterTypeId: 'stringEq',\n        filterValues: ['Scheduled']\n      }\n    },\n    tripColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          defaultWidth: 75\n        },\n        filterTypeId: null,\n        filterValues: []\n      }\n    },\n    stopColumns: {\n      type: {\n        id: 'type',\n        config: {\n          id: 'type',\n          type: 'text',\n          label: 'Type',\n          valuePath: 'stop.type'\n        },\n        filterTypeId: 'stringNotEq',\n        filterValues: ['route-start']\n      }\n    },\n    vehicleColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          defaultWidth: 75\n        },\n        filterTypeId: null,\n        filterValues: []\n      }\n    },\n    driverColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          defaultWidth: 75\n        },\n        filterTypeId: null,\n        filterValues: []\n      }\n    }\n  };\n  const VisualOptions = [{\n    id: 'value',\n    name: 'Show Value',\n    isChecked: true\n  }, {\n    id: 'percentage',\n    name: 'Show Percentage',\n    isChecked: false\n  }, {\n    id: 'total',\n    name: 'Show Total',\n    isChecked: true\n  }];\n  const LegendPlacement = {\n    selected: {\n      name: 'Display On Right',\n      position: 'right'\n    },\n    options: [{\n      name: 'Display On Right',\n      position: 'right'\n    }, {\n      name: 'Display On Left',\n      position: 'left'\n    }, {\n      name: 'Display On Top',\n      position: 'top'\n    }, {\n      name: 'Display On Bottom',\n      position: 'bottom'\n    }]\n  };\n  const SortOrder = {\n    selected: {\n      name: 'Ascending',\n      sortAsc: true\n    },\n    options: [{\n      name: 'Ascending',\n      sortAsc: true\n    }, {\n      name: 'Descending',\n      sortAsc: false\n    }]\n  };\n  var _default = [{\n    name: 'Trips',\n    modelName: 'trip',\n    columns: COLUMNS.tripColumns,\n    displayOptions: [{\n      id: 'slicedBy',\n      name: 'Sliced By',\n      selected: {\n        id: 'source',\n        name: 'Source',\n        valueKey: 'tripType',\n        valueCategories: [{\n          label: 'Call',\n          value: 'callAgent'\n        }, {\n          label: 'App',\n          value: 'riderApp'\n        }, {\n          label: 'Web',\n          value: 'webApp'\n        }, {\n          label: 'Kiosk',\n          value: 'kiosk'\n        }, {\n          label: 'IVR',\n          value: 'IVR'\n        }]\n      },\n      options: [{\n        id: 'status',\n        name: 'Trip Status',\n        valueKey: 'drivedStatus',\n        valueCategories: [{\n          label: 'Completed',\n          value: 'completed'\n        }, {\n          label: 'Cancelled',\n          value: 'cancelled'\n        }, {\n          label: 'No Show',\n          value: 'NoShow'\n        }]\n      }, {\n        id: 'bookingType',\n        name: 'Trip Type',\n        label: 'Trip Type',\n        valueKey: 'bookingType',\n        valueCategories: [{\n          label: 'ASAP',\n          value: 'asap'\n        }, {\n          label: 'Prebook',\n          value: 'prebook'\n        }, {\n          label: 'Street Hire',\n          value: 'street_hire'\n        }]\n      }, {\n        id: 'source',\n        name: 'Source',\n        valueKey: 'tripType',\n        valueCategories: [{\n          label: 'Call',\n          value: 'callAgent'\n        }, {\n          label: 'App',\n          value: 'riderApp'\n        }, {\n          label: 'Web',\n          value: 'webApp'\n        }, {\n          label: 'Kiosk',\n          value: 'kiosk'\n        }, {\n          label: 'IVR',\n          value: 'IVR'\n        }]\n      }, {\n        id: 'paymentype',\n        name: 'Payment Type',\n        valueKey: 'paymentype',\n        valueCategories: [{\n          label: 'Cash',\n          value: 'CASH'\n        }, {\n          label: 'Account',\n          value: 'ACCOUNT'\n        }, {\n          label: 'Credit',\n          value: 'CREDIT'\n        }]\n      }]\n    }],\n    title: '',\n    visualOptions: VisualOptions,\n    sortOrder: SortOrder,\n    legendPlacement: LegendPlacement\n  }, {\n    name: 'Taxis',\n    modelName: 'vehicle',\n    columns: COLUMNS.vehicleColumns,\n    displayOptions: [{\n      id: 'slicedBy',\n      name: 'Sliced By',\n      selected: {\n        id: 'status',\n        name: 'Status',\n        valueKey: 'drivedStatus',\n        valueCategories: [{\n          label: 'Free',\n          value: 'free'\n        }, {\n          label: 'On Break',\n          value: 'onBreak'\n        }, {\n          label: 'On Hold',\n          value: 'onHold'\n        }, {\n          label: 'Off',\n          value: 'off'\n        }, {\n          label: 'STC',\n          value: 'STC'\n        }, {\n          label: 'Emergency',\n          value: 'emergency'\n        }, {\n          label: 'Occupied',\n          value: 'occupied'\n        }, {\n          label: 'Missing',\n          value: 'missing'\n        }]\n      },\n      options: [{\n        id: 'status',\n        name: 'Status',\n        valueKey: 'drivedStatus',\n        valueCategories: [{\n          label: 'Free',\n          value: 'free'\n        }, {\n          label: 'On Break',\n          value: 'onBreak'\n        }, {\n          label: 'On Hold',\n          value: 'onHold'\n        }, {\n          label: 'Off',\n          value: 'off'\n        }, {\n          label: 'Occupied',\n          value: 'occupied'\n        }, {\n          label: 'Missing',\n          value: 'missing'\n        }]\n      }]\n    }],\n    title: '',\n    visualOptions: VisualOptions,\n    sortOrder: SortOrder,\n    legendPlacement: LegendPlacement\n  }, {\n    name: 'Drivers',\n    modelName: 'driver',\n    columns: COLUMNS.driverColumns,\n    displayOptions: [{\n      id: 'slicedBy',\n      name: 'Sliced By',\n      selected: {\n        id: 'status',\n        name: 'Status',\n        valueKey: 'drivedStatus',\n        valueCategories: [{\n          label: 'Active',\n          value: 'active'\n        }, {\n          label: 'Working',\n          value: 'working'\n        }, {\n          label: 'Off',\n          value: 'signedOff'\n        }, {\n          label: 'On Break',\n          value: 'onBreak'\n        }, {\n          label: 'Temp Off',\n          value: 'tempOff'\n        }, {\n          label: 'Emergency',\n          value: 'inEmergency'\n        }]\n      },\n      options: [{\n        id: 'status',\n        name: 'Status',\n        valueKey: 'drivedStatus',\n        valueCategories: [{\n          label: 'Active',\n          value: 'active'\n        }, {\n          label: 'Working',\n          value: 'working'\n        }, {\n          label: 'Off',\n          value: 'signedOff'\n        }, {\n          label: 'On Break',\n          value: 'onBreak'\n        }, {\n          label: 'Temp Off',\n          value: 'tempOff'\n        }, {\n          label: 'Emergency',\n          value: 'inEmergency'\n        }]\n      }]\n    }],\n    title: '',\n    visualOptions: VisualOptions,\n    sortOrder: SortOrder,\n    legendPlacement: LegendPlacement\n  }];\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/donut-chart-settings/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"ugQZ77zb\",\n    \"block\": \"{\\\"symbols\\\":[\\\"drawer\\\",\\\"option\\\",\\\"option\\\",\\\"visualOption\\\",\\\"column\\\",\\\"filterType\\\",\\\"displayOption\\\",\\\"option\\\",\\\"type\\\"],\\\"statements\\\":[[4,\\\"generic-widgets/side-drawer\\\",null,[[\\\"class\\\"],[\\\"metrics-widget-side-drawer\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"header\\\"]],\\\"expected `drawer.header` to be a contextual component but found a string. Did you mean `(component drawer.header)`? ('adept-iq/pods/components/side-drawer/donut-chart-settings/template.hbs' @ L5:C4) \\\"],null]],[[\\\"title\\\",\\\"onShrinkClick\\\",\\\"onCloseClick\\\"],[\\\"Donut Chart\\\",[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onShrinkClick\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onCloseClick\\\"]]],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"body\\\"]],\\\"expected `drawer.body` to be a contextual component but found a string. Did you mean `(component drawer.body)`? ('adept-iq/pods/components/side-drawer/donut-chart-settings/template.hbs' @ L10:C5) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-section\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Type:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"sourceOptions\\\"]]],null],[23,[\\\"dataType\\\"]],\\\"Select Type\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"onTypeSelect\\\"],null]]],{\\\"statements\\\":[[0,\\\"          \\\"],[1,[22,9,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[9]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"dataType\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Display:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content metric-filter-section\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"dataType\\\",\\\"displayOptions\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n            \\\"],[1,[22,7,[\\\"name\\\"]],false],[0,\\\":\\\\n          \\\"],[10],[0,\\\"\\\\n\\\\n          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont  data-test-display-option\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[22,7,[\\\"options\\\"]]],null],[22,7,[\\\"selected\\\"]],\\\"Select Choice\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"setDisplayOptionVisibility\\\",[22,7,[]]],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,8,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[8]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[7]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Filter by Status:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content metric-filter-section data-test-filter-section\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"filterColumns\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"selected\\\",\\\"searchEnabled\\\",\\\"searchField\\\",\\\"options\\\",\\\"onchange\\\",\\\"disabled\\\"],[[22,5,[\\\"filterType\\\"]],false,\\\"label\\\",[22,5,[\\\"filterTypes\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onSelectFilterType\\\",[22,5,[]]],null],[27,\\\"eq\\\",[[22,5,[\\\"filterTypes\\\",\\\"length\\\"]],0],null]]],{\\\"statements\\\":[[0,\\\"\\\\n              \\\"],[1,[22,6,[\\\"label\\\"]],true],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[6]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,5,[\\\"filterType\\\",\\\"arity\\\"]],1],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont data-test-filter-type-arity1\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,5,[\\\"filterValues\\\",\\\"0\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,5,[]],0],null]],[12,\\\"disabled\\\",[27,\\\"eq\\\",[[22,5,[\\\"filterType\\\",\\\"arity\\\"]],0],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,5,[\\\"filterType\\\",\\\"arity\\\"]],2],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont data-test-filter-type-arity2\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,5,[\\\"filterValues\\\",\\\"0\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,5,[]],0],null]],[12,\\\"disabled\\\",[27,\\\"eq\\\",[[22,5,[\\\"filterType\\\",\\\"arity\\\"]],0],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\\n            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,5,[\\\"filterValues\\\",\\\"1\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,5,[]],1],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[5]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Visuals\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content data-test-display-title\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"value\\\",\\\"enter\\\",\\\"focus-out\\\",\\\"placeholder\\\"],[\\\"text\\\",[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"title\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onTitleInput\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onTitleInput\\\"],null],\\\"Widget Title\\\"]]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content data-test-checkbox-options\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"dataType\\\",\\\"visualOptions\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-checkbox\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[12,\\\"checked\\\",[27,\\\"readonly\\\",[[22,4,[\\\"isChecked\\\"]]],null]],[12,\\\"onchange\\\",[27,\\\"action\\\",[[22,0,[]],\\\"setVisualOptionVisibility\\\",[22,4,[]]],null]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[12,\\\"class\\\",[28,[[27,\\\"if\\\",[[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],\\\"disabled\\\"],null]]]],[9],[1,[22,4,[\\\"name\\\"]],false],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Sort By:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-section\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont data-test-sortBy-options\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"sortOrder\\\",\\\"options\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"sortOrder\\\",\\\"selected\\\"]]],null],\\\"Select Choice\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"setSortOrder\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[22,3,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Legend:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-section\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont data-test-legend-options\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"legendPlacement\\\",\\\"options\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"legendPlacement\\\",\\\"selected\\\"]]],null],\\\"Select Choice\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"setLegendPlacement\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[22,2,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/donut-chart-settings/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/filter-settings/component\", [\"exports\", \"adept-iq/config/filter-types\"], function (_exports, _filterTypes) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    workspace: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    tagName: '',\n    title: 'Filter Settings',\n    filterTypes: _filterTypes.filterTypes,\n    columns: Ember.computed.readOnly('workspace.topOptions.columns'),\n    widget: Ember.computed.readOnly('workspace.topOptions.widget'),\n    dataColumns: Ember.computed('columns.[]', function () {\n      const columns = this.get('columns');\n      return columns.slice(1, columns.length - 1);\n    }),\n\n    reOrderFilterSettings(columns) {\n      this.get('widget').mergeState({\n        columns\n      });\n      const tableColumns = this.get('columns'); // checkbox and spacer are always in the same location\n\n      tableColumns[0].sortOrder = 0;\n      tableColumns[tableColumns.length - 1].sortOrder = tableColumns.length - 1;\n      tableColumns.forEach(column => {\n        if (columns[column.id]) {\n          column.sortOrder = columns[column.id].index + 1;\n        }\n      });\n      tableColumns.sort(function (a, b) {\n        return a.sortOrder - b.sortOrder;\n      });\n      this.notifyPropertyChange('columns');\n    },\n\n    actions: {\n      onReorderItems(tableColumns) {\n        const columns = tableColumns.reduce((obj, column, index) => {\n          const id = column.id;\n          obj[id] = {\n            index\n          };\n          return obj;\n        }, {});\n        Ember.run(() => this.reOrderFilterSettings(columns));\n      },\n\n      onClickVisibilityCheckbox(column, event) {\n        const id = column.get('id');\n        const columns = {};\n        columns[id] = {\n          hidden: !event.target.checked\n        };\n        this.get('widget').mergeState({\n          columns\n        });\n      },\n\n      onSelectFilterType(column, filterType) {\n        const id = column.get('id');\n        const columns = {};\n        columns[id] = {\n          filterTypeId: filterType.id\n        };\n        this.get('widget').mergeState({\n          columns\n        }); // @TODO: focus on filter value input\n      },\n\n      onFilterValueChange(column, index, event) {\n        let filterValues = column.get('filterValues') || [];\n        filterValues = filterValues.slice();\n        filterValues[index] = event.target.value;\n        Ember.set(column, 'filterValues', filterValues);\n        const id = column.get('id');\n        const columns = {};\n        columns[id] = {\n          filterValues\n        }; // this.get('widget').mergeState({ columns } , false);\n      },\n\n      handleKeydown(column, index, event) {\n        //console.log('handleKeydown ',event);\n        if (event.keyCode !== 13) {\n          return;\n        }\n\n        let filterValues = column.get('filterValues') || [];\n        filterValues = filterValues.slice();\n        filterValues[index] = event.target.value;\n        Ember.set(column, 'filterValues', filterValues);\n        const id = column.get('id');\n        const columns = {};\n        columns[id] = {\n          filterValues\n        };\n        this.get('widget').mergeState({\n          columns\n        });\n        this.get('workspace').popState();\n      },\n\n      clearFilters() {\n        this.get('activeContext').set('serverFilteringEnabled', false);\n        this.get('activeContext').set('serverFilteringChecked', false);\n        this.get('activeContext').set('serverLoadedRecord', []);\n        const columns = this.get('columns').reduce((obj, column) => {\n          obj[column.id] = {\n            filterTypeId: 'null',\n            // this is actually the id of the null filter\n            filterValues: null\n          };\n          return obj;\n        }, {});\n        this.get('widget').mergeState({\n          columns\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/filter-settings/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"AH9rGi3I\",\n    \"block\": \"{\\\"symbols\\\":[\\\"drawer\\\",\\\"group\\\",\\\"column\\\",\\\"filterType\\\"],\\\"statements\\\":[[4,\\\"generic-widgets/side-drawer\\\",null,[[\\\"class\\\"],[\\\"filter-settings-side-drawer\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"header\\\"]],\\\"expected `drawer.header` to be a contextual component but found a string. Did you mean `(component drawer.header)`? ('adept-iq/pods/components/side-drawer/filter-settings/template.hbs' @ L5:C4) \\\"],null]],[[\\\"title\\\",\\\"onShrinkClick\\\",\\\"onCloseClick\\\"],[[23,[\\\"title\\\"]],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onShrinkClick\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onCloseClick\\\"]]],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"body\\\"]],\\\"expected `drawer.body` to be a contextual component but found a string. Did you mean `(component drawer.body)`? ('adept-iq/pods/components/side-drawer/filter-settings/template.hbs' @ L10:C5) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-subheader data-test-filter-side-bar-header\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"columns\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"reorder-column\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"visibility-column\\\"],[9],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-eye\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[10],[0,\\\"\\\\n            \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"header-label-column\\\"],[9],[0,\\\"Column\\\"],[10],[0,\\\"\\\\n            \\\"],[7,\\\"span\\\"],[11,\\\"class\\\",\\\"filter-type-column\\\"],[9],[0,\\\"Filter\\\"],[10],[0,\\\"\\\\n              \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"header-button-outline data-test-clear-filter-button\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"clearFilters\\\"],null]],[11,\\\"type\\\",\\\"button\\\"],[9],[0,\\\"\\\\n                  Clear All \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-times-circle\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-table-wrapper data-test-filter-side-bar-table\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"filter-settings-table\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"sortable-group\\\",null,[[\\\"tagName\\\",\\\"onChange\\\"],[\\\"div\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onReorderItems\\\"],null]]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"dataColumns\\\"]]],null,{\\\"statements\\\":[[4,\\\"sortable-item\\\",null,[[\\\"tagName\\\",\\\"model\\\",\\\"group\\\",\\\"handle\\\"],[\\\"div\\\",[22,3,[]],[22,2,[]],\\\".handle\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n              \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"filter-setting-row\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"setting-icon reorder-column handle data-test-reorder-column\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"img\\\"],[11,\\\"src\\\",\\\"/handles.png\\\"],[11,\\\"class\\\",\\\"reorder-handles\\\"],[9],[10],[0,\\\"\\\\n                \\\"],[10],[0,\\\"\\\\n\\\\n                \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"setting-icon visibility-column data-test-visibility-column\\\"],[9],[0,\\\"\\\\n                  \\\"],[7,\\\"input\\\"],[11,\\\"data-test-visibility-column\\\",\\\"\\\"],[12,\\\"checked\\\",[27,\\\"not\\\",[[22,3,[\\\"hidden\\\"]]],null]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onClickVisibilityCheckbox\\\",[22,3,[]]],null]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n                \\\"],[10],[0,\\\"\\\\n\\\\n                \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"setting-item label-column data-test-label-column\\\"],[9],[0,\\\"\\\\n                  \\\"],[1,[22,3,[\\\"config\\\",\\\"label\\\"]],false],[0,\\\"\\\\n                \\\"],[10],[0,\\\"\\\\n\\\\n                \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"setting-item-type filter-type-column data-test-type-column\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"selected\\\",\\\"searchEnabled\\\",\\\"searchField\\\",\\\"options\\\",\\\"onchange\\\",\\\"disabled\\\"],[[22,3,[\\\"filterType\\\"]],false,\\\"label\\\",[22,3,[\\\"filterTypes\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onSelectFilterType\\\",[22,3,[]]],null],[27,\\\"eq\\\",[[22,3,[\\\"filterTypes\\\",\\\"lengspan\\\"]],0],null]]],{\\\"statements\\\":[[0,\\\"\\\\n                    \\\"],[1,[22,4,[\\\"label\\\"]],true],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"                \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],1],null]],null,{\\\"statements\\\":[[0,\\\"                  \\\"],[7,\\\"div\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[11,\\\"class\\\",\\\"setting-item-value filter-value-column\\\"],[9],[0,\\\"\\\\n                    \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"data-test-filterValue-column\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,3,[\\\"filterValues\\\",\\\"0\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,3,[]],0],null]],[12,\\\"onkeydown\\\",[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\",[22,3,[]],0],null]],[12,\\\"disabled\\\",[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],0],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n                  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],2],null]],null,{\\\"statements\\\":[[0,\\\"                  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"setting-item-value filter-value-column\\\"],[9],[0,\\\"\\\\n                    \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"data-test-filterValue-column\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,3,[\\\"filterValues\\\",\\\"0\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,3,[]],0],null]],[12,\\\"onkeydown\\\",[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\",[22,3,[]],0],null]],[12,\\\"disabled\\\",[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],0],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n                  \\\"],[10],[0,\\\"\\\\n                  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"setting-item-value filter-value-column\\\"],[9],[0,\\\"\\\\n                    \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"data-test-filterValue-column\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,3,[\\\"filterValues\\\",\\\"1\\\"]]],null]],[12,\\\"onkeydown\\\",[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\",[22,3,[]],1],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,3,[]],1],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n                  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                  \\\"],[7,\\\"div\\\"],[11,\\\"colspan\\\",\\\"2\\\"],[11,\\\"class\\\",\\\"setting-item-value filter-value-column\\\"],[9],[0,\\\"\\\\n                    \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"data-test-filterValue-column\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,3,[\\\"filterValues\\\",\\\"0\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,3,[]],0],null]],[12,\\\"onkeydown\\\",[27,\\\"action\\\",[[22,0,[]],\\\"handleKeydown\\\",[22,3,[]],0],null]],[12,\\\"disabled\\\",[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],0],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n                  \\\"],[10],[0,\\\"\\\\n                \\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]}],[0,\\\"\\\\n              \\\"],[10],[0,\\\"\\\\n\\\\n\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[3]},null]],\\\"parameters\\\":[2]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/filter-settings/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/gauge-chart-settings/component\", [\"exports\", \"adept-iq/pods/components/side-drawer/gauge-chart-settings/config\", \"adept-iq/pods/components/generic-widgets/column-widget/classes/filter-column\"], function (_exports, _config, _filterColumn) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    tagName: '',\n    workspace: Ember.inject.service(),\n    widget: Ember.computed.readOnly('workspace.topOptions.widget'),\n    title: 'Gauge Chart',\n    dataType: null,\n    sourceOptions: null,\n    displayOptions: Ember.computed('dataType.displayOptions', function () {\n      return Object.values(this.get('dataType.displayOptions'));\n    }),\n    visualOptions: Ember.computed('dataType.visualOptions', function () {\n      return Object.values(this.get('dataType.visualOptions'));\n    }),\n\n    init() {\n      this._super(...arguments);\n\n      this.set('sourceOptions', _config.default);\n      const dataType = this.get('widget.state.dataType');\n      this.set('dataType', dataType);\n\n      if (Ember.isPresent(dataType)) {\n        this.set('filterColumns', Object.values(dataType.columns).map(col => new _filterColumn.default(col)));\n      }\n    },\n\n    actions: {\n      onTypeSelect(dataType) {\n        this.set('dataType', dataType);\n        this.set('filterColumns', Object.values(dataType.columns).map(col => new _filterColumn.default(col)));\n        this.get('widget').mergeState({\n          dataType\n        });\n      },\n\n      setDisplayOptionVisibility(selected) {\n        this.set('dataType.displayOptions.selected', selected);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      setDisplayOptionMetric(selected) {\n        this.set('dataType.displayOptions.selected.metricOption', selected);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      setDisplayOptionValueCategory(selected) {\n        this.set('dataType.displayOptions.selected.valueCategory', selected);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onTitleInput(data) {\n        this.set('dataType.title', data);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      setVisualOptionVisibility(selected, event) {\n        Ember.set(selected, 'isChecked', event.target.checked);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onFilterValueChange(column, index, event) {\n        let filterValues = column.get('filterValues') || [];\n        filterValues = filterValues.slice();\n        filterValues[index] = event.target.value; // Update the displayed filter column.\n\n        Ember.set(column, 'filterValues', filterValues);\n        const id = column.get('id'); // Update the column config.\n\n        Ember.set(this.get('dataType'), `columns.${id}.filterValues`, filterValues);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onSelectFilterType(column, filterType) {\n        // Update the displayed filter column.\n        Ember.set(column, 'filterTypeId', filterType.id);\n        const id = column.get('id'); // Update the column config.\n\n        Ember.set(this.get('dataType'), `columns.${id}.filterTypeId`, filterType.id);\n        this.get('widget').mergeState({\n          dataType: this.get('dataType')\n        });\n      },\n\n      onGoColorChange(color, data) {\n        /*eslint-disable */\n        data = parseInt(data);\n        /*eslint-enable */\n\n        if (data) {\n          Ember.set(this.get('dataType'), `boxColor.${color}`, data);\n          this.get('widget').mergeState({\n            dataType: this.get('dataType')\n          });\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/gauge-chart-settings/config\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const COLUMNS = {\n    routeColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          format: 'HH:mm A',\n          defaultWidth: 75\n        },\n        filterTypeId: 'stringEq',\n        filterValues: ['Scheduled']\n      }\n    },\n    tripColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          defaultWidth: 75\n        },\n        filterTypeId: null,\n        filterValues: []\n      }\n    },\n    taxiColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'drivedStatus',\n          editable: true,\n          hidden: false,\n          defaultWidth: 75\n        },\n        filterTypeId: null,\n        filterValues: []\n      }\n    },\n    zoneColumns: {\n      status: {\n        id: 'status',\n        config: {\n          id: 'status',\n          index: 5,\n          type: 'text',\n          label: 'Status',\n          valuePath: 'status',\n          editable: true,\n          hidden: false,\n          defaultWidth: 75\n        },\n        filterTypeId: null,\n        filterValues: []\n      }\n    }\n  };\n  const VISUAL_OPTIONS = {\n    value: {\n      id: 'value',\n      name: 'Show Value',\n      isChecked: true\n    },\n    percentage: {\n      id: 'percentage',\n      name: 'Show Percentage',\n      isChecked: true\n    }\n  };\n  const BOX_COLOR = {\n    orange: 2,\n    red: 4\n  };\n  var _default = [{\n    name: 'Zones',\n    modelName: 'zone',\n    columns: COLUMNS.zoneColumns,\n    displayOptions: {\n      selected: {\n        id: 'status',\n        name: 'Status',\n        label: 'Status',\n        valueKey: 'status',\n        valueCategory: {\n          label: 'High',\n          value: 'high'\n        },\n        valueCategories: [{\n          label: 'High',\n          value: 'high'\n        }, {\n          label: 'Medium',\n          value: 'medium'\n        }, {\n          label: 'Normal',\n          value: 'normal'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      },\n      options: [{\n        id: 'status',\n        name: 'Status',\n        label: 'Status',\n        valueKey: 'status',\n        valueCategory: {\n          label: 'High',\n          value: 'high'\n        },\n        valueCategories: [{\n          label: 'High',\n          value: 'high'\n        }, {\n          label: 'Medium',\n          value: 'medium'\n        }, {\n          label: 'Normal',\n          value: 'normal'\n        }],\n        metricOption: {\n          id: 'count',\n          name: 'Count'\n        },\n        metricOptions: [{\n          id: 'count',\n          name: 'Count'\n        }]\n      }]\n    },\n    title: '',\n    visualOptions: VISUAL_OPTIONS,\n    boxColor: BOX_COLOR\n  }];\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/gauge-chart-settings/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"Kz2myCRl\",\n    \"block\": \"{\\\"symbols\\\":[\\\"drawer\\\",\\\"visualOption\\\",\\\"column\\\",\\\"filterType\\\",\\\"option\\\",\\\"option\\\",\\\"option\\\",\\\"type\\\"],\\\"statements\\\":[[4,\\\"generic-widgets/side-drawer\\\",null,[[\\\"class\\\"],[\\\"metrics-widget-side-drawer\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"header\\\"]],\\\"expected `drawer.header` to be a contextual component but found a string. Did you mean `(component drawer.header)`? ('adept-iq/pods/components/side-drawer/gauge-chart-settings/template.hbs' @ L5:C4) \\\"],null]],[[\\\"title\\\",\\\"onShrinkClick\\\",\\\"onCloseClick\\\"],[[23,[\\\"title\\\"]],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onShrinkClick\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onCloseClick\\\"]]],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"body\\\"]],\\\"expected `drawer.body` to be a contextual component but found a string. Did you mean `(component drawer.body)`? ('adept-iq/pods/components/side-drawer/gauge-chart-settings/template.hbs' @ L10:C5) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-section\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Type:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"sourceOptions\\\"]]],null],[23,[\\\"dataType\\\"]],\\\"Select Type\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"onTypeSelect\\\"],null]]],{\\\"statements\\\":[[0,\\\"          \\\"],[1,[22,8,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[8]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"dataType\\\"]]],null,{\\\"statements\\\":[[0,\\\"      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Display:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content metric-filter-section\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"options\\\"]]],null],[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\"]],\\\"Select Choice\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"setDisplayOptionVisibility\\\"],null]]],{\\\"statements\\\":[[0,\\\"            \\\"],[1,[22,7,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[7]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\",\\\"valueCategories\\\"]]],null],[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\",\\\"valueCategory\\\"]],\\\"Select Category\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"setDisplayOptionValueCategory\\\"],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,6,[\\\"label\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[6]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\\n          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\",\\\"metricOptions\\\"]]],null],[23,[\\\"dataType\\\",\\\"displayOptions\\\",\\\"selected\\\",\\\"metricOption\\\"]],\\\"Select Metric\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"setDisplayOptionMetric\\\"],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,5,[\\\"name\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[5]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Filter by Status:\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content metric-filter-section\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"filterColumns\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"selected\\\",\\\"searchEnabled\\\",\\\"searchField\\\",\\\"options\\\",\\\"onchange\\\",\\\"disabled\\\"],[[22,3,[\\\"filterType\\\"]],false,\\\"label\\\",[22,3,[\\\"filterTypes\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onSelectFilterType\\\",[22,3,[]]],null],[27,\\\"eq\\\",[[22,3,[\\\"filterTypes\\\",\\\"length\\\"]],0],null]]],{\\\"statements\\\":[[0,\\\"\\\\n              \\\"],[1,[22,4,[\\\"label\\\"]],true],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[4]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],1],null]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,3,[\\\"filterValues\\\",\\\"0\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,3,[]],0],null]],[12,\\\"disabled\\\",[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],0],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],2],null]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,3,[\\\"filterValues\\\",\\\"0\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,3,[]],0],null]],[12,\\\"disabled\\\",[27,\\\"eq\\\",[[22,3,[\\\"filterType\\\",\\\"arity\\\"]],0],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[10],[0,\\\"\\\\n\\\\n              \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-filter-input-cont\\\"],[9],[0,\\\"\\\\n                \\\"],[7,\\\"input\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[22,3,[\\\"filterValues\\\",\\\"1\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onFilterValueChange\\\",[22,3,[]],1],null]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n              \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[3]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Visuals\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"value\\\",\\\"enter\\\",\\\"focus-out\\\",\\\"placeholder\\\"],[\\\"text\\\",[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"title\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onTitleInput\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onTitleInput\\\"],null],\\\"Widget Title\\\"]]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-content\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"visualOptions\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-checkbox\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"input\\\"],[12,\\\"checked\\\",[27,\\\"readonly\\\",[[22,2,[\\\"isChecked\\\"]]],null]],[12,\\\"onchange\\\",[27,\\\"action\\\",[[22,0,[]],\\\"setVisualOptionVisibility\\\",[22,2,[]]],null]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[12,\\\"class\\\",[28,[[27,\\\"if\\\",[[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],\\\"disabled\\\"],null]]]],[9],[1,[22,2,[\\\"name\\\"]],false],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"metric-drawer-section-subheader\\\"],[9],[0,\\\"\\\\n        Box Colors\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-section\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-number-input\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"label\\\"],[9],[0,\\\"Go Orange:\\\"],[10],[0,\\\"\\\\n          \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"id\\\",\\\"value\\\",\\\"enter\\\",\\\"focus-out\\\"],[\\\"number\\\",\\\"go-orange-input\\\",[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"boxColor\\\",\\\"orange\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onGoColorChange\\\",\\\"orange\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onGoColorChange\\\",\\\"orange\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-number-input\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"label\\\"],[9],[0,\\\"Go Red:\\\"],[10],[0,\\\"\\\\n          \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"id\\\",\\\"value\\\",\\\"enter\\\",\\\"focus-out\\\"],[\\\"number\\\",\\\"go-red-input\\\",[27,\\\"readonly\\\",[[23,[\\\"dataType\\\",\\\"boxColor\\\",\\\"red\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onGoColorChange\\\",\\\"red\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onGoColorChange\\\",\\\"red\\\"],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/gauge-chart-settings/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/map-filter/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    tagName: '',\n    mapContext: Ember.inject.service(),\n    // map-context layers are ephemeral, so use `id` for selection state\n    selectedLayerId: null,\n    title: 'Map Layers',\n    layers: Ember.computed.alias('mapContext.layers'),\n    selectedLayer: Ember.computed('layers', 'selectedLayerId', function () {\n      const layerId = this.get('selectedLayerId');\n      if (Ember.isNone(layerId)) return null;\n      const layers = this.get('layers');\n      if (Ember.isEmpty(layers)) return null;\n      return layers.findBy('id', layerId);\n    }),\n    isAgencyLayer: Ember.computed.equal('selectedLayerId', 'agency'),\n    disabled: Ember.computed.not('selectedLayerId'),\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      const layers = this.get('layers');\n      if (Ember.isEmpty(layers)) return;\n      this.selectLayer(layers[0]);\n    },\n\n    selectLayer(layer) {\n      this.set('selectedLayerId', layer.id);\n    },\n\n    actions: {\n      onLayerSelect(layer) {\n        this.selectLayer(layer);\n      },\n\n      onLayerVisibilityCheck(event) {\n        const layer = this.get('selectedLayer');\n        this.get('mapContext').setLayerVisibility(layer.id, event.target.checked);\n      },\n\n      onTransparencySliderChange(value) {\n        const layer = this.get('selectedLayer');\n        this.get('mapContext').setLayerOpacity(layer.id, value);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/map-filter/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"HCKy7o0R\",\n    \"block\": \"{\\\"symbols\\\":[\\\"drawer\\\",\\\"layer\\\",\\\"layer\\\"],\\\"statements\\\":[[4,\\\"generic-widgets/side-drawer\\\",null,[[\\\"class\\\"],[\\\"map-filter\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"header\\\"]],\\\"expected `drawer.header` to be a contextual component but found a string. Did you mean `(component drawer.header)`? ('adept-iq/pods/components/side-drawer/map-filter/template.hbs' @ L5:C4) \\\"],null]],[[\\\"title\\\",\\\"onShrinkClick\\\",\\\"onCloseClick\\\"],[[23,[\\\"title\\\"]],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onShrinkClick\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onCloseClick\\\"]]],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"body\\\"]],\\\"expected `drawer.body` to be a contextual component but found a string. Did you mean `(component drawer.body)`? ('adept-iq/pods/components/side-drawer/map-filter/template.hbs' @ L10:C5) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"data-test-map-filter\\\",\\\"\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"selectedLayer\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"map-filter-subheader\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"layer-subheader-section\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"label\\\"],[9],[0,\\\"Layer   \\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[23,[\\\"layers\\\"]],[23,[\\\"selectedLayer\\\"]],\\\"Select Layer\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"onLayerSelect\\\"],null]]],{\\\"statements\\\":[[0,\\\"              \\\"],[1,[22,3,[\\\"label\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[3]},null],[0,\\\"          \\\"],[10],[0,\\\"\\\\n          \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"visibility-subheader-section\\\"],[9],[0,\\\"\\\\n            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-checkbox\\\"],[9],[0,\\\"\\\\n              \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"disabled\\\",\\\"change\\\"],[\\\"checkbox\\\",[27,\\\"readonly\\\",[[23,[\\\"selectedLayer\\\",\\\"isVisible\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onLayerVisibilityCheck\\\"],null]]]],false],[0,\\\"\\\\n              \\\"],[7,\\\"label\\\"],[12,\\\"class\\\",[28,[[27,\\\"if\\\",[[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],\\\"disabled\\\"],null]]]],[9],[0,\\\"Show\\\"],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"map-layer-transparency\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"label\\\"],[9],[0,\\\"Transparency:\\\"],[10],[0,\\\"\\\\n              \\\"],[1,[27,\\\"ui-slider\\\",null,[[\\\"value\\\",\\\"changed\\\",\\\"min\\\",\\\"max\\\",\\\"step\\\",\\\"orientation\\\",\\\"tooltip\\\",\\\"tooltipPosition\\\",\\\"disabled\\\",\\\"reversed\\\",\\\"focus\\\",\\\"mood\\\",\\\"naturalArrowKeys\\\",\\\"immediateResponse\\\"],[[23,[\\\"selectedLayer\\\",\\\"opacity\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"onTransparencySliderChange\\\"],null],0,1,0.1,\\\"horizontal\\\",\\\"before\\\",\\\"bottom\\\",[23,[\\\"disabled\\\"]],false,false,\\\"success\\\",false,false]]],false],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"unless\\\",[[23,[\\\"isAgencyLayer\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[1,[27,\\\"side-drawer/map-legend-filter\\\",null,[[\\\"layer\\\"],[[23,[\\\"selectedLayer\\\"]]]]],false],[0,\\\"\\\\n\\\\n          \\\"],[1,[27,\\\"side-drawer/map-label-settings\\\",null,[[\\\"layer\\\",\\\"labels\\\"],[[23,[\\\"selectedLayer\\\"]],[23,[\\\"selectedLayer\\\",\\\"labels\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"side-drawer-section\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"label\\\"],[9],[0,\\\"Layer:\\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"power-select\\\",null,[[\\\"options\\\",\\\"selected\\\",\\\"placeholder\\\",\\\"searchEnabled\\\",\\\"onchange\\\"],[[23,[\\\"layers\\\"]],[23,[\\\"selectedLayer\\\"]],\\\"Select Layer\\\",false,[27,\\\"action\\\",[[22,0,[]],\\\"onLayerSelect\\\"],null]]],{\\\"statements\\\":[[0,\\\"\\\\n            \\\"],[1,[22,2,[\\\"label\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"    \\\"],[10],[0,\\\"\\\\n\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/map-filter/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/map-label-preview/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['map-label-preview'],\n    labels: null,\n    // This computed property is required, as Ember is not updating the list order\n    // when the passed in `labels` property changes order.\n    labelData: Ember.computed('labels', 'labels.@each.index', function () {\n      return this.get('labels');\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/map-label-preview/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"iWXtuRqW\",\n    \"block\": \"{\\\"symbols\\\":[\\\"label\\\"],\\\"statements\\\":[[7,\\\"table\\\"],[11,\\\"id\\\",\\\"map-filter-preview\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"thead\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"th\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"h4\\\"],[9],[0,\\\"Label Preview\\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"tbody\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"labelData\\\"]]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[22,1,[\\\"isVisible\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"tr\\\"],[9],[7,\\\"td\\\"],[9],[7,\\\"b\\\"],[9],[1,[22,1,[\\\"label\\\"]],false],[10],[0,\\\": \\\"],[1,[22,1,[\\\"valuePreview\\\"]],false],[10],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/map-label-preview/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/map-label-settings/component\", [\"exports\", \"adept-iq/config/column-types\", \"adept-iq/config/filter-types\"], function (_exports, _columnTypes, _filterTypes) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    mapContext: Ember.inject.service(),\n    classNames: ['filter-settings'],\n    columnTypesHash: _columnTypes.columnTypesHash,\n    filterTypesHash: _filterTypes.filterTypesHash,\n    layer: null,\n    toggleEye: false,\n    isEyeOpen: Ember.computed.not('toggleEye'),\n    sortedLabels: Ember.computed('layer.labels', function () {\n      const labels = this.get('layer.labels');\n      const sortedLabels = labels.sortBy('index');\n      return sortedLabels;\n    }),\n    actions: {\n      toggleCheckBoxes() {\n        const layer = this.get('layer');\n        const sortedLabels = this.get('sortedLabels');\n        const eye = this.toggleProperty('isEyeOpen');\n        sortedLabels.forEach(label => {\n          const layerId = Ember.get(layer, 'id');\n          const labelId = Ember.get(label, 'id');\n          this.get('mapContext').setLayerLabelVisibility(layerId, labelId, eye);\n        });\n\n        if (!eye) {\n          const labelId = Ember.get(sortedLabels[0], 'id');\n          const layerId = Ember.get(layer, 'id');\n          this.get('mapContext').setLayerLabelVisibility(layerId, labelId, !eye);\n        }\n      },\n\n      onReorderItems(labels) {\n        const layer = this.get('layer');\n        const labelIds = labels.mapBy('id');\n        this.get('mapContext').setLayerLabelsOrder(layer.id, labelIds);\n      },\n\n      setVisibility(label, event) {\n        const layer = this.get('layer');\n        const layerId = Ember.get(layer, 'id');\n        const labelId = Ember.get(label, 'id');\n        this.get('mapContext').setLayerLabelVisibility(layerId, labelId, event.target.checked);\n      },\n\n      onSelectFilterType(label, filterType) {\n        const layer = this.get('layer');\n        const layerId = Ember.get(layer, 'id');\n        const labelId = Ember.get(label, 'id');\n        const filterTypeId = Ember.get(filterType, 'id');\n        this.get('mapContext').setLayerLabelFilterType(layerId, labelId, filterTypeId);\n      },\n\n      onFilterValueChange(label, index, event) {\n        const layer = this.get('layer');\n        const layerId = Ember.get(layer, 'id');\n        const labelId = Ember.get(label, 'id');\n        let filterValues = Ember.get(label, 'filterValues') || []; // treat filter values as immutable\n\n        filterValues = filterValues.slice();\n        filterValues[index] = event.target.value;\n        this.get('mapContext').setLayerLabelFilterValues(layerId, labelId, filterValues);\n      },\n\n      clearFilters() {\n        const dashboard = this.get('mapContext.workspace.dashboard');\n        dashboard.set('mapState', null);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/map-label-settings/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"qFzQSuww\",\n    \"block\": \"{\\\"symbols\\\":[\\\"group\\\",\\\"label\\\"],\\\"statements\\\":[[7,\\\"table\\\"],[11,\\\"class\\\",\\\"filter-settings-table map-filter-settings\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"thead\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"th\\\"],[11,\\\"class\\\",\\\"header-title\\\"],[11,\\\"colspan\\\",\\\"3\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"h4\\\"],[9],[0,\\\"Labels\\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"thead\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"th\\\"],[11,\\\"class\\\",\\\"reorder-column\\\"],[9],[10],[0,\\\"\\\\n    \\\"],[7,\\\"th\\\"],[11,\\\"class\\\",\\\"visibility-column\\\"],[9],[7,\\\"span\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"toggleCheckBoxes\\\"],null]],[12,\\\"class\\\",[27,\\\"if\\\",[[23,[\\\"isEyeOpen\\\"]],\\\"fa fa-eye\\\",\\\"fa fa-eye-slash\\\"],null]],[9],[10],[10],[0,\\\"\\\\n    \\\"],[7,\\\"th\\\"],[11,\\\"class\\\",\\\"label-column\\\"],[9],[0,\\\"Label\\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"sortable-group\\\",null,[[\\\"tagName\\\",\\\"onChange\\\"],[\\\"tbody\\\",\\\"onReorderItems\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"sortedLabels\\\"]]],null,{\\\"statements\\\":[[4,\\\"sortable-item\\\",null,[[\\\"tagName\\\",\\\"model\\\",\\\"group\\\",\\\"handle\\\"],[\\\"tr\\\",[22,2,[]],[22,1,[]],\\\".handle\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"reorder-column handle\\\"],[9],[0,\\\"\\\\n          \\\"],[7,\\\"img\\\"],[11,\\\"src\\\",\\\"/handles.png\\\"],[11,\\\"class\\\",\\\"reorder-handles\\\"],[9],[10],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"visibility-column\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"checked\\\",\\\"change\\\"],[\\\"checkbox\\\",[27,\\\"readonly\\\",[[22,2,[\\\"isVisible\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"setVisibility\\\",[22,2,[]]],null]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\\n        \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"label-column\\\"],[9],[0,\\\"\\\\n          \\\"],[1,[22,2,[\\\"label\\\"]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[1]},null],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/map-label-settings/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/map-legend-filter/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['map-legend-filter'],\n    mapContext: Ember.inject.service(),\n    isRoute: Ember.computed('layer', function () {\n      return this.get('layer.id') === 'routes';\n    }),\n    layer: null,\n    actions: {\n      setVisibility(type, event) {\n        this.get('mapContext').setLayerTypeVisibility(this.get('layer.id'), type.id, event.target.checked);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/map-legend-filter/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"eskQUppI\",\n    \"block\": \"{\\\"symbols\\\":[\\\"type\\\"],\\\"statements\\\":[[7,\\\"table\\\"],[11,\\\"id\\\",\\\"map-legend-table\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"thead\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"th\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"h4\\\"],[9],[0,\\\"Legend\\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"layer\\\",\\\"types\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"tr\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[22,1,[\\\"canFilter\\\"]]],null,{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"legend-checkbox\\\"],[9],[0,\\\"\\\\n              \\\"],[1,[27,\\\"input\\\",null,[[\\\"type\\\",\\\"class\\\",\\\"checked\\\",\\\"change\\\"],[\\\"checkbox\\\",\\\"data-test-type-visibility-checkbox\\\",[27,\\\"readonly\\\",[[22,1,[\\\"isVisible\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"setVisibility\\\",[22,1,[]]],null]]]],false],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"          \\\"],[7,\\\"td\\\"],[11,\\\"class\\\",\\\"legend-checkbox\\\"],[9],[0,\\\"\\\\n          \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[4,\\\"if\\\",[[22,1,[\\\"display\\\"]]],null,{\\\"statements\\\":[[0,\\\"\\\\n      \\\"],[7,\\\"td\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"map-legend-filter-icon\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[22,1,[\\\"linePath\\\"]]],null,{\\\"statements\\\":[[0,\\\"              \\\"],[7,\\\"img\\\"],[12,\\\"src\\\",[22,1,[\\\"linePath\\\"]]],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"              \\\"],[7,\\\"img\\\"],[12,\\\"src\\\",[22,1,[\\\"iconPath\\\"]]],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"        \\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"td\\\"],[9],[7,\\\"b\\\"],[9],[1,[22,1,[\\\"label\\\"]],false],[10],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/map-legend-filter/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/route-activity-log/component\", [\"exports\", \"ember-concurrency\", \"ember-light-table\", \"adept-iq/pods/components/side-drawer/route-activity-log/config\"], function (_exports, _emberConcurrency, _emberLightTable, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    tagName: '',\n    store: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    columns: _config.columns,\n    route: Ember.computed.readOnly('workspace.topOptions.route'),\n    title: 'Route Activity Log',\n    table: null,\n    events: null,\n    isLoading: Ember.computed.alias('fetchEventsTask.isRunning'),\n    startDate: Ember.computed.alias('workspace.startDate'),\n    endDate: Ember.computed.alias('workspace.endDate'),\n    onFilteredEventsChange: Ember.observer('filteredEvents', function () {\n      Ember.run.scheduleOnce('afterRender', this, 'updateTableRows');\n    }),\n\n    init() {\n      this._super(...arguments);\n\n      const currColumns = this.get('columns');\n      const table = new _emberLightTable.default(currColumns);\n      this.set('table', table); // initialize key observer\n\n      this.onFilteredEventsChange();\n      this.get('fetchEventsTask').perform();\n    },\n\n    filteredEvents: Ember.computed('events.[]', 'startDate', 'endDate', function () {\n      let events = this.get('events') || [];\n      const startDate = this.get('startDate');\n\n      if (startDate) {\n        const startTime = startDate.getTime();\n        events = events.filter(event => {\n          const date = Ember.get(event, 'date');\n          return startTime <= date.getTime();\n        });\n      }\n\n      const endDate = this.get('endDate');\n\n      if (endDate) {\n        const endTime = endDate.getTime();\n        events = events.filter(event => {\n          const date = Ember.get(event, 'date');\n          return date.getTime() <= endTime;\n        });\n      } // sort reverse-chronologically while we're at it\n\n\n      events = events.sortBy('date');\n      events.reverse();\n      return events;\n    }),\n    fetchEventsTask: (0, _emberConcurrency.task)(function* () {\n      this.set('events', []);\n      const routeExecEvents = yield this.get('store').query('avlm-route-exec-event', {\n        routeId: this.get('route.id')\n      });\n      const events = routeExecEvents.reduce((arr, routeExecEvent) => {\n        const event = this._buildEvent(routeExecEvent);\n\n        if (event) {\n          arr.push(event);\n        }\n\n        return arr;\n      }, []);\n      this.set('events', events);\n    }).drop(),\n\n    updateTableRows() {\n      const table = this.get('table');\n      const filteredEvents = this.get('filteredEvents');\n      table.setRows(filteredEvents);\n    },\n\n    // this should be replaced when there is a real API\n    _buildEvent(routeExecEvent) {\n      const date = new Date(routeExecEvent.get('content.actualTime'));\n      const type = routeExecEvent.get('content.type');\n\n      const logEntryType = _config.logEntryTypes.findBy('routeExecEventType', type);\n\n      if (!logEntryType) return;\n      const {\n        activity,\n        condition,\n        buildAttrs,\n        buildDetails,\n        buildUser\n      } = logEntryType;\n      /*eslint-disable */\n\n      if (condition && !condition(routeExecEvent)) return null;\n      const attrs = buildAttrs(routeExecEvent, this.get('store'));\n      const details = buildDetails(attrs);\n      const user = buildUser(attrs);\n      return {\n        activity,\n        date,\n        details,\n        user\n      };\n      /*eslint-enable */\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/route-activity-log/config\", [\"exports\", \"moment\", \"lodash\", \"adept-iq/config/environment\"], function (_exports, _moment, _lodash, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.logEntryTypes = _exports.columns = void 0;\n  const TIME_FORMAT = 'YYYY-MM-DD hh:mmA'; // matches {{handleBars}}-style interpolation\n\n  const TEMPLATE_INTERPOLATION = /{{([\\s\\S]+?)}}/g;\n\n  const interpolate = (template, attrs) => {\n    const compiledTemplate = _lodash.default.template(template, {\n      interpolate: TEMPLATE_INTERPOLATION\n    });\n\n    return compiledTemplate(attrs);\n  };\n\n  function convertDistance(distanceInMeters, distanceUnit) {\n    if (distanceUnit === 'mi') {\n      return (distanceInMeters * 0.00062137).toFixed(0);\n    } else if (distanceUnit === 'km') {\n      return (distanceInMeters * 0.001).toFixed(0);\n    }\n\n    console.warn(`Invalid distance unit used for conversion = ${distanceUnit}`); // eslint-disable-line no-console\n\n    return distanceInMeters;\n  }\n\n  const columns = [{\n    label: 'Activity',\n    valuePath: 'activity'\n  }, {\n    label: 'Time',\n    valuePath: 'date',\n    format: date => (0, _moment.default)(date).format(TIME_FORMAT)\n  }, {\n    label: 'Details',\n    valuePath: 'details'\n  }, {\n    label: 'User',\n    valuePath: 'user'\n  }];\n  _exports.columns = columns;\n  const logEntryTypes = [{\n    activity: 'Start',\n    routeExecEventType: 'pullOut',\n\n    buildAttrs(routeExecEvent\n    /*, store*/\n    ) {\n      return {\n        driverId: routeExecEvent.get('driver.badgeNr'),\n        driverName: routeExecEvent.get('driver.name'),\n        vehicleName: routeExecEvent.get('vehicle.callSign'),\n        odometer: routeExecEvent.get('vehicle.odo'),\n        lat: routeExecEvent.get('vehicle.location.coord.lat'),\n        lng: routeExecEvent.get('vehicle.location.coord.lng')\n      };\n    },\n\n    buildDetails(attrs) {\n      let template = 'Route Started. Driver {{driverId}}. Vehicle {{vehicleName}}.'; // these aren't always available yet\n\n      if (attrs.odometer) {\n        const convertedDistance = convertDistance(parseInt(attrs.odometer, 10), _environment.default.APP.distanceUnit);\n        template += ` Odometer ${convertedDistance}.`;\n      }\n\n      if (attrs.lat) {\n        template += ' Lat {{lat}}.';\n      }\n\n      if (attrs.lng) {\n        template += ' Lng {{lng}}.';\n      }\n\n      return interpolate(template, attrs);\n    },\n\n    buildUser(attrs) {\n      const template = 'Driver {{driverId}}';\n      return interpolate(template, attrs);\n    }\n\n  }, {\n    activity: 'End',\n    routeExecEventType: 'pullIn',\n\n    buildAttrs(routeExecEvent\n    /*, store*/\n    ) {\n      return {\n        driverId: routeExecEvent.get('driver.badgeNr'),\n        driverName: routeExecEvent.get('driver.name'),\n        vehicleName: routeExecEvent.get('vehicle.callSign'),\n        odometer: routeExecEvent.get('vehicle.odo'),\n        lat: routeExecEvent.get('vehicle.location.coord.lat'),\n        lng: routeExecEvent.get('vehicle.location.coord.lng')\n      };\n    },\n\n    buildDetails(attrs) {\n      let template = 'Route ended. Driver {{driverId}}. Vehicle {{vehicleName}}.'; // these aren't always available yet\n\n      if (attrs.odometer) {\n        const convertedDistance = convertDistance(parseInt(attrs.odometer, 10), _environment.default.APP.distanceUnit);\n        template += ` Odometer ${convertedDistance}.`;\n      }\n\n      if (attrs.lat) {\n        template += ' Lat {{lat}}.';\n      }\n\n      if (attrs.lng) {\n        template += ' Lng {{lng}}';\n      }\n\n      return interpolate(template, attrs);\n    },\n\n    buildUser(attrs) {\n      const template = 'Driver {{driverId}}';\n      return interpolate(template, attrs);\n    }\n\n  }, {\n    activity: 'Arrive Stop',\n    routeExecEventType: 'arrive',\n\n    buildAttrs(routeExecEvent, store) {\n      let passengerEvents = routeExecEvent.get('content.passengerEvents');\n      let tripId, dsTripId;\n      passengerEvents = Ember.makeArray(passengerEvents);\n      const pickupEvent = passengerEvents.findBy('type', 'pickup');\n      const dropoffEvent = passengerEvents.findBy('type', 'dropoff');\n      const attrs = {\n        driverId: routeExecEvent.get('driver.badgeNr')\n      };\n\n      if (pickupEvent) {\n        dsTripId = Ember.get(pickupEvent, 'tripId');\n        attrs.stopType = 'pickup';\n      } else if (dropoffEvent) {\n        dsTripId = Ember.get(dropoffEvent, 'tripId');\n        attrs.stopType = 'drop-off';\n      }\n\n      const dsTrip = store.peekRecord('trip', dsTripId);\n\n      if (dsTrip) {\n        tripId = dsTrip.get('externalId');\n      }\n\n      attrs.tripId = tripId || '<loading>';\n      return attrs;\n    },\n\n    buildDetails(attrs) {\n      const template = 'Trip {{tripId}} {{stopType}} arrived.';\n      return interpolate(template, attrs);\n    },\n\n    buildUser(attrs) {\n      const template = 'Driver {{driverId}}';\n      return interpolate(template, attrs);\n    }\n\n  }, {\n    activity: 'Depart Stop',\n    routeExecEventType: 'depart',\n\n    condition(routeExecEvent) {\n      const passengerEvents = routeExecEvent.get('content.passengerEvents');\n      return Ember.makeArray(passengerEvents).any(passengerEvent => {\n        return ['pickup', 'dropoff'].includes(Ember.get(passengerEvent, 'type'));\n      });\n    },\n\n    buildAttrs(routeExecEvent, store) {\n      let passengerEvents = routeExecEvent.get('content.passengerEvents');\n      let tripId, dsTripId;\n      passengerEvents = Ember.makeArray(passengerEvents);\n      const pickupEvent = passengerEvents.findBy('type', 'pickup');\n      const dropoffEvent = passengerEvents.findBy('type', 'dropoff');\n      const noShowEvent = passengerEvents.findBy('type', 'noShow');\n      const attrs = {\n        driverId: routeExecEvent.get('driver.badgeNr')\n      };\n\n      if (pickupEvent) {\n        dsTripId = pickupEvent.tripId;\n        attrs.stopType = 'pickup';\n      } else if (dropoffEvent) {\n        dsTripId = dropoffEvent.tripId;\n        attrs.stopType = 'drop-off';\n      } else if (noShowEvent) {\n        dsTripId = noShowEvent.tripId;\n        attrs.stopType = 'no-show';\n      }\n\n      const dsTrip = store.peekRecord('trip', dsTripId);\n\n      if (dsTrip) {\n        tripId = dsTrip.get('externalId');\n      }\n\n      attrs.tripId = tripId || '<loading>';\n      return attrs;\n    },\n\n    buildDetails(attrs) {\n      const template = 'Trip {{tripId}} {{stopType}} departed.';\n      return interpolate(template, attrs);\n    },\n\n    buildUser(attrs) {\n      const template = 'Driver {{driverId}}';\n      return interpolate(template, attrs);\n    }\n\n  }, {\n    activity: 'No Show Trip',\n    routeExecEventType: 'onStop',\n\n    condition(routeExecEvent) {\n      const passengerEvents = routeExecEvent.get('content.passengerEvents'); // there must be a client noShow event to render this activity log event\n\n      return Ember.makeArray(passengerEvents).filterBy('type', 'noShow').findBy('passengerType', 'client');\n    },\n\n    buildAttrs(routeExecEvent, store) {\n      const passengerEvents = routeExecEvent.get('content.passengerEvents');\n      const passengerEvent = Ember.makeArray(passengerEvents).filterBy('type', 'noShow').findBy('passengerType', 'client');\n      let tripId;\n      const dsTrip = store.peekRecord('trip', Ember.get(passengerEvent, 'tripId'));\n\n      if (dsTrip) {\n        tripId = dsTrip.get('externalId');\n      }\n\n      return {\n        tripId: tripId || '<loading>',\n        reason: Ember.get(passengerEvent, 'details.message')\n      };\n    },\n\n    buildDetails(attrs) {\n      let template = 'Trip {{tripId}} no-showed.';\n\n      if (attrs.reason) {\n        template += ' No-show reason \"{{reason}}\".';\n      }\n\n      return interpolate(template, attrs);\n    },\n\n    buildUser() {\n      return 'Passenger';\n    }\n\n  }, // the following are not currently represented by routeExecEvents:\n  {\n    activity: 'Remove Vehicle',\n    attrs: () => {},\n    details: () => 'Vehicle <vehicleName> removed.',\n    user: () => null\n  }, {\n    activity: 'Add Vehicle',\n    attrs: () => {},\n    details: () => 'Vehicle <vehicleName> added.',\n    user: () => null\n  }, {\n    activity: 'Cancel Trip',\n    attrs: () => {},\n    details: () => 'Trip <tripId> cancelled. Cancel reason <reason>.',\n    user: () => null\n  }, {\n    activity: 'Transfer Trip',\n    attrs: () => {},\n    details: () => 'Trip <tripId> transferred to route <routeName>.',\n    user: () => null\n  }, {\n    activity: 'Waitlist Trip',\n    attrs: () => {},\n    details: () => 'Trip <tripId> placed on waitlist.',\n    user: () => null\n  }, {\n    activity: 'Message Received',\n    attrs: () => {},\n    details: () => 'Message <cannedMessage> received from vehicle <vehicleName>.',\n    user: () => null\n  }, {\n    activity: 'Message Sent',\n    attrs: () => {},\n    details: () => 'Message <cannedMessage> sent to vehicle <vehicleName>.',\n    user: () => null\n  }, {\n    activity: 'Edit',\n    attrs: () => {},\n    details: () => 'Route edited. Route\\'s start odometer changed from <odometerValue> to <odometerValue>.',\n    user: () => null\n  }, {\n    activity: 'Close',\n    attrs: () => {},\n    details: () => 'Route\\'s date of <date> was closed.',\n    user: () => null\n  }, {\n    activity: 'Create',\n    attrs: () => {},\n    details: () => 'Route created.',\n    user: () => null\n  }, {\n    activity: 'Add Trip',\n    attrs: () => {},\n    details: () => 'Trip <tripId> added',\n    user: () => null\n  }];\n  _exports.logEntryTypes = logEntryTypes;\n});","define(\"adept-iq/pods/components/side-drawer/route-activity-log/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"H5Zw7x32\",\n    \"block\": \"{\\\"symbols\\\":[\\\"drawer\\\",\\\"t\\\",\\\"body\\\"],\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"generic-widgets/side-drawer\\\",null,[[\\\"class\\\"],[\\\"activity-log route-activity-log\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"header\\\"]],\\\"expected `drawer.header` to be a contextual component but found a string. Did you mean `(component drawer.header)`? ('adept-iq/pods/components/side-drawer/route-activity-log/template.hbs' @ L6:C4) \\\"],null]],[[\\\"title\\\",\\\"onShrinkClick\\\",\\\"onCloseClick\\\"],[[23,[\\\"title\\\"]],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onShrinkClick\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onCloseClick\\\"]]],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"body\\\"]],\\\"expected `drawer.body` to be a contextual component but found a string. Did you mean `(component drawer.body)`? ('adept-iq/pods/components/side-drawer/route-activity-log/template.hbs' @ L11:C5) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"mb-2\\\"],[12,\\\"onclick\\\",[27,\\\"perform\\\",[[23,[\\\"fetchEventsTask\\\"]]],null]],[12,\\\"disabled\\\",[23,[\\\"fetchEventsTask\\\",\\\"isRunning\\\"]]],[9],[0,\\\"\\\\n      Refresh\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"light-table\\\",[[23,[\\\"table\\\"]]],[[\\\"height\\\"],[\\\"auto\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n      \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,2,[\\\"head\\\"]],\\\"expected `t.head` to be a contextual component but found a string. Did you mean `(component t.head)`? ('adept-iq/pods/components/side-drawer/route-activity-log/template.hbs' @ L23:C8) \\\"],null]],[[\\\"fixed\\\"],[true]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,2,[\\\"body\\\"]],\\\"expected `t.body` to be a contextual component but found a string. Did you mean `(component t.body)`? ('adept-iq/pods/components/side-drawer/route-activity-log/template.hbs' @ L25:C9) \\\"],null]],[[\\\"canSelect\\\"],[true]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isLoading\\\"]]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,3,[\\\"loader\\\"]],\\\"expected `body.loader` to be a contextual component but found a string. Did you mean `(component body.loader)`? ('adept-iq/pods/components/side-drawer/route-activity-log/template.hbs' @ L30:C13) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"text-center loading-spinner mt-2 mb-2\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-circle-o-notch fa-spin\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"table\\\",\\\"isEmpty\\\"]]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,3,[\\\"no-data\\\"]],\\\"expected `body.no-data` to be a contextual component but found a string. Did you mean `(component body.no-data)`? ('adept-iq/pods/components/side-drawer/route-activity-log/template.hbs' @ L37:C15) \\\"],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isError\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"text-danger mt-2 mb-2\\\"],[9],[0,\\\"\\\\n                  \\\"],[1,[23,[\\\"fetchEventsTask\\\",\\\"last\\\",\\\"error\\\"]],false],[0,\\\"\\\\n                \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"text-center mt-2 mb-2\\\"],[9],[0,\\\"\\\\n                  No activity recorded.\\\\n                \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[3]},null]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/route-activity-log/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/system-config/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const UNSAVED_CHANGES_CONFIRMATION = 'You have unsaved changes that will be discarded. Refresh?';\n\n  var _default = Ember.Component.extend({\n    tagName: '',\n    systemConfig: Ember.inject.service(),\n    title: 'System Configuration',\n    // gets passed in by `side-drawer-container`\n    onShrinkClick: null,\n    rootNodes: Ember.computed.readOnly('systemConfig.rootNodes'),\n    isProcessing: Ember.computed.readOnly('systemConfig.isProcessing'),\n    isModified: Ember.computed.readOnly('systemConfig.isModified'),\n    actions: {\n      onSaveClick() {\n        this.get('systemConfig').save();\n      },\n\n      onRefreshClick() {\n        /*eslint-disable */\n        if (this.get('isModified') && !confirm(UNSAVED_CHANGES_CONFIRMATION)) {\n          return;\n        }\n        /*eslint-enable */\n\n\n        this.get('systemConfig').refresh();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/system-config/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"A+0FxKRU\",\n    \"block\": \"{\\\"symbols\\\":[\\\"drawer\\\"],\\\"statements\\\":[[4,\\\"generic-widgets/side-drawer\\\",null,[[\\\"class\\\"],[\\\"system-config-side-drawer\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"header\\\"]],\\\"expected `drawer.header` to be a contextual component but found a string. Did you mean `(component drawer.header)`? ('adept-iq/pods/components/side-drawer/system-config/template.hbs' @ L5:C4) \\\"],null]],[[\\\"title\\\",\\\"canSave\\\",\\\"canRefresh\\\",\\\"onShrinkClick\\\",\\\"onRefreshClick\\\",\\\"onSaveClick\\\",\\\"onCloseClick\\\"],[[23,[\\\"title\\\"]],[27,\\\"and\\\",[[27,\\\"not\\\",[[23,[\\\"isProcessing\\\"]]],null],[23,[\\\"isModified\\\"]]],null],[27,\\\"not\\\",[[23,[\\\"isProcessing\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onShrinkClick\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onRefreshClick\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onSaveClick\\\"],null],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onCloseClick\\\"]]],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"body\\\"]],\\\"expected `drawer.body` to be a contextual component but found a string. Did you mean `(component drawer.body)`? ('adept-iq/pods/components/side-drawer/system-config/template.hbs' @ L14:C5) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[1,[27,\\\"generic-widgets/tree-widget\\\",null,[[\\\"rootNodes\\\",\\\"isLoading\\\"],[[23,[\\\"rootNodes\\\"]],[23,[\\\"isProcessing\\\"]]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/system-config/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/trip-activity-log/component\", [\"exports\", \"ember-concurrency\", \"ember-light-table\", \"adept-iq/pods/components/side-drawer/trip-activity-log/config\"], function (_exports, _emberConcurrency, _emberLightTable, _config) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    tagName: '',\n    store: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    columns: _config.columns,\n    trip: Ember.computed.readOnly('workspace.topOptions.trip'),\n    title: 'Trip Activity Log',\n    table: null,\n    events: null,\n    isLoading: Ember.computed.alias('fetchEventsTask.isRunning'),\n    startDate: Ember.computed.alias('workspace.startDate'),\n    endDate: Ember.computed.alias('workspace.endDate'),\n    onFilteredEventsChange: Ember.observer('filteredEvents', function () {\n      Ember.run.scheduleOnce('afterRender', this, 'updateTableRows');\n    }),\n\n    init() {\n      this._super(...arguments);\n\n      const currColumns = this.get('columns');\n      const table = new _emberLightTable.default(currColumns);\n      this.set('table', table); // initialize key observer\n\n      this.onFilteredEventsChange();\n      this.get('fetchEventsTask').perform();\n    },\n\n    filteredEvents: Ember.computed('events.[]', 'startDate', 'endDate', function () {\n      let events = this.get('events') || [];\n      const startDate = this.get('startDate');\n\n      if (startDate) {\n        const startTime = startDate.getTime();\n        events = events.filter(event => {\n          const date = Ember.get(event, 'date');\n          return startTime <= date.getTime();\n        });\n      }\n\n      const endDate = this.get('endDate');\n\n      if (endDate) {\n        const endTime = endDate.getTime();\n        events = events.filter(event => {\n          const date = Ember.get(event, 'date');\n          return date.getTime() <= endTime;\n        });\n      } // sort reverse-chronologically while we're at it\n\n\n      events = events.sortBy('date');\n      events.reverse();\n      return events;\n    }),\n    fetchEventsTask: (0, _emberConcurrency.task)(function* () {\n      this.set('events', []); // need a scheduled route to retrieve routeExecEvents\n\n      const tripStatus = this.get('trip.status');\n      if (!['Active', 'Completed', 'No Show'].includes(tripStatus)) return; //console.log('trip ',this.get('trip'));\n      //const trip = this.get('trip');\n      //let trip = trip.get('trip');\n\n      const tripId = this.get('trip.trip.id'); //console.log('tripId ',tripId);\n\n      const routeExecEvent = yield this.get('store').findRecord('tm-route-exec', tripId); //console.log('routeExecEvent',routeExecEvent);\n\n      let events = [];\n\n      const event = this._buildEvent(routeExecEvent);\n\n      if (event) {\n        events.push(event);\n      }\n\n      this.set('events', events); //console.log('events ',events);\n    }).drop(),\n\n    updateTableRows() {\n      const table = this.get('table');\n      const filteredEvents = this.get('filteredEvents');\n      table.setRows(filteredEvents);\n    },\n\n    // this should be replaced when there is a real API\n    _buildEvent(routeExecEvent) {\n      //console.log('_buildEvent routeExecEvent ',routeExecEvent);\n      const date = new Date(routeExecEvent.get('content.actualTime'));\n      const type = routeExecEvent.get('content.type'); //console.log('logEntryTypes ',logEntryTypes);\n\n      const logEntryType = _config.logEntryTypes.findBy('routeExecEventType', 'arriveActual'); //console.log('logEntryType ',logEntryType);\n\n\n      if (!logEntryType) return;\n      const {\n        activity,\n        condition,\n        buildAttrs,\n        buildDetails,\n        buildUser\n      } = logEntryType; //console.log('logEntryType ',logEntryType);\n\n      /*eslint-disable */\n      // if (condition && !condition(routeExecEvent, this.get('trip'))) return null;\n\n      const attrs = buildAttrs(routeExecEvent, this.get('store'), routeExecEvent.stopPoints[0].passengerEvents[0]); //console.log('attrs ',attrs);\n\n      if (!attrs) return null;\n      const details = buildDetails(attrs);\n      const user = buildUser(attrs);\n      return {\n        activity,\n        date,\n        details,\n        user\n      };\n      /*eslint-enable */\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/side-drawer/trip-activity-log/config\", [\"exports\", \"moment\", \"lodash\"], function (_exports, _moment, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.logEntryTypes = _exports.columns = void 0;\n  const TIME_FORMAT = 'YYYY-MM-DD hh:mmA';\n  const TEMPLATE_INTERPOLATION = /{{([\\s\\S]+?)}}/g;\n\n  const interpolate = (template, attrs) => {\n    const compiledTemplate = _lodash.default.template(template, {\n      interpolate: TEMPLATE_INTERPOLATION\n    });\n\n    return compiledTemplate(attrs);\n  };\n\n  const columns = [{\n    label: 'Activity',\n    valuePath: 'activity'\n  }, {\n    label: 'Time',\n    valuePath: 'date',\n    format: date => (0, _moment.default)(date).format(TIME_FORMAT)\n  }, {\n    label: 'Details',\n    valuePath: 'details'\n  }, {\n    label: 'User',\n    valuePath: 'user'\n  }];\n  _exports.columns = columns;\n  const logEntryTypes = [{\n    activity: 'Arrive Stop',\n    routeExecEventType: 'arriveActual',\n\n    condition(routeExecEvent, trip) {\n      const passengerEvents = routeExecEvent.get('content.passengerEvents');\n      return Ember.makeArray(passengerEvents).findBy('tripId', trip.get('trip.id'));\n    },\n\n    buildAttrs(routeExecEvent, store, passengerEvents) {\n      let dsTripId, tripId; //let passengerEvents = stopPoints.get('passengerEvents');\n\n      passengerEvents = Ember.makeArray(passengerEvents);\n      const pickupEvent = passengerEvents.findBy('type', 'pickup');\n      const dropoffEvent = passengerEvents.findBy('type', 'dropoff');\n      const attrs = {\n        driverId: routeExecEvent.driver.badgeNr\n      };\n\n      if (pickupEvent) {\n        dsTripId = Ember.get(pickupEvent, 'tripId');\n        attrs.stopType = 'pickup';\n      } else if (dropoffEvent) {\n        dsTripId = Ember.get(dropoffEvent, 'tripId');\n        attrs.stopType = 'drop-off';\n      }\n      /*const dsTrip = store.peekRecord('trip', dsTripId);\n       if (dsTrip) {\n        tripId = dsTrip.get('externalId');\n      }*/\n\n\n      attrs.tripId = routeExecEvent.id || '<loading>';\n      return attrs;\n    },\n\n    buildDetails(attrs) {\n      const template = 'Trip {{tripId}} {{stopType}} arrived.';\n      return interpolate(template, attrs);\n    },\n\n    buildUser(attrs) {\n      const template = 'Driver {{driverId}}';\n      return interpolate(template, attrs);\n    }\n\n  }, {\n    activity: 'Depart Stop',\n    routeExecEventType: 'departActual',\n\n    condition(routeExecEvent, trip) {\n      const passengerEvents = routeExecEvent.get('content.passengerEvents');\n      return Ember.makeArray(passengerEvents).any(passengerEvent => {\n        return Ember.get(passengerEvent, 'tripId') === trip.get('trip.id') && ['pickup', 'dropoff'].includes(Ember.get(passengerEvent, 'type'));\n      });\n    },\n\n    buildAttrs(routeExecEvent, store) {\n      let dsTripId, tripId;\n      let passengerEvents = routeExecEvent.get('content.passengerEvents');\n      passengerEvents = Ember.makeArray(passengerEvents);\n      const pickupEvent = passengerEvents.findBy('type', 'pickup');\n      const dropoffEvent = passengerEvents.findBy('type', 'dropoff');\n      const noShowEvent = passengerEvents.findBy('type', 'noShow');\n      const attrs = {\n        driverId: routeExecEvent.get('driver.badgeNr')\n      };\n\n      if (pickupEvent) {\n        dsTripId = pickupEvent.tripId;\n        attrs.stopType = 'pickup';\n      } else if (dropoffEvent) {\n        dsTripId = dropoffEvent.tripId;\n        attrs.stopType = 'drop-off';\n      } else if (noShowEvent) {\n        dsTripId = noShowEvent.tripId;\n        attrs.stopType = 'no-show';\n      }\n\n      const dsTrip = store.peekRecord('trip', dsTripId);\n\n      if (dsTrip) {\n        tripId = dsTrip.get('externalId');\n      }\n\n      attrs.tripId = tripId || '<loading>';\n      return attrs;\n    },\n\n    buildDetails(attrs) {\n      const template = 'Trip {{tripId}} {{stopType}} departed.';\n      return interpolate(template, attrs);\n    },\n\n    buildUser(attrs) {\n      const template = 'Driver {{driverId}}';\n      return interpolate(template, attrs);\n    }\n\n  }, {\n    activity: 'No Show Trip',\n    routeExecEventType: 'noShow',\n\n    condition(routeExecEvent, trip) {\n      const passengerEvents = routeExecEvent.get('content.passengerEvents'); // there must be a client noShow event to render this activity log event\n\n      return Ember.makeArray(passengerEvents).any(passengerEvent => {\n        return Ember.get(passengerEvent, 'tripId') === trip.get('trip.id') && Ember.get(passengerEvent, 'passengerType') === 'client';\n      });\n    },\n\n    buildAttrs(routeExecEvent, store) {\n      const passengerEvents = routeExecEvent.get('content.passengerEvents');\n      const passengerEvent = Ember.makeArray(passengerEvents).filterBy('type', 'dropoff').findBy('passengerType', 'client');\n      if (!passengerEvent) return;\n      let tripId;\n      const dsTrip = store.peekRecord('trip', Ember.get(passengerEvent, 'tripId'));\n\n      if (dsTrip) {\n        tripId = dsTrip.get('externalId');\n      }\n\n      return {\n        tripId: tripId || '<loading>',\n        reason: Ember.get(passengerEvent, 'details.message')\n      };\n    },\n\n    buildDetails(attrs) {\n      let template = 'Trip {{tripId}} no-showed.';\n\n      if (attrs.reason) {\n        template += ' No-show reason \"{{reason}}\".';\n      }\n\n      return interpolate(template, attrs);\n    },\n\n    buildUser() {\n      return 'Passenger';\n    }\n\n  }];\n  _exports.logEntryTypes = logEntryTypes;\n});","define(\"adept-iq/pods/components/side-drawer/trip-activity-log/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"YFlDvJYz\",\n    \"block\": \"{\\\"symbols\\\":[\\\"drawer\\\",\\\"t\\\",\\\"body\\\"],\\\"statements\\\":[[4,\\\"generic-widgets/side-drawer\\\",null,[[\\\"class\\\"],[\\\"activity-log trip-activity-log\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"header\\\"]],\\\"expected `drawer.header` to be a contextual component but found a string. Did you mean `(component drawer.header)`? ('adept-iq/pods/components/side-drawer/trip-activity-log/template.hbs' @ L5:C4) \\\"],null]],[[\\\"title\\\",\\\"onShrinkClick\\\",\\\"onCloseClick\\\"],[[23,[\\\"title\\\"]],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onShrinkClick\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],[23,[\\\"onCloseClick\\\"]]],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"body\\\"]],\\\"expected `drawer.body` to be a contextual component but found a string. Did you mean `(component drawer.body)`? ('adept-iq/pods/components/side-drawer/trip-activity-log/template.hbs' @ L10:C5) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"mb-2\\\"],[12,\\\"onclick\\\",[27,\\\"perform\\\",[[23,[\\\"fetchEventsTask\\\"]]],null]],[12,\\\"disabled\\\",[23,[\\\"fetchEventsTask\\\",\\\"isRunning\\\"]]],[9],[0,\\\"\\\\n      Refresh\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"light-table\\\",[[23,[\\\"table\\\"]]],[[\\\"height\\\"],[\\\"auto\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n      \\\"],[1,[27,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,2,[\\\"head\\\"]],\\\"expected `t.head` to be a contextual component but found a string. Did you mean `(component t.head)`? ('adept-iq/pods/components/side-drawer/trip-activity-log/template.hbs' @ L22:C8) \\\"],null]],[[\\\"fixed\\\"],[true]]],false],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,2,[\\\"body\\\"]],\\\"expected `t.body` to be a contextual component but found a string. Did you mean `(component t.body)`? ('adept-iq/pods/components/side-drawer/trip-activity-log/template.hbs' @ L24:C9) \\\"],null]],[[\\\"canSelect\\\"],[true]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isLoading\\\"]]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,3,[\\\"loader\\\"]],\\\"expected `body.loader` to be a contextual component but found a string. Did you mean `(component body.loader)`? ('adept-iq/pods/components/side-drawer/trip-activity-log/template.hbs' @ L29:C13) \\\"],null]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"text-center loading-spinner mt-2 mb-2\\\"],[9],[0,\\\"\\\\n              \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-circle-o-notch fa-spin\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"table\\\",\\\"isEmpty\\\"]]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,3,[\\\"no-data\\\"]],\\\"expected `body.no-data` to be a contextual component but found a string. Did you mean `(component body.no-data)`? ('adept-iq/pods/components/side-drawer/trip-activity-log/template.hbs' @ L36:C15) \\\"],null]],null,{\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isError\\\"]]],null,{\\\"statements\\\":[[0,\\\"                \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"text-danger mt-2 mb-2\\\"],[9],[0,\\\"\\\\n                  \\\"],[1,[23,[\\\"fetchEventsTask\\\",\\\"last\\\",\\\"error\\\"]],false],[0,\\\"\\\\n                \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"                \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"text-center mt-2 mb-2\\\"],[9],[0,\\\"\\\\n                  No activity recorded.\\\\n                \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[]}]],\\\"parameters\\\":[3]},null]],\\\"parameters\\\":[2]},null],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/side-drawer/trip-activity-log/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/cells/base-cell/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['table-base-cell', 'data-test-table-base-cell'],\n    attributeBindings: ['tabindex'],\n    tabindex: 0\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/cells/base-cell/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"hamOCl9N\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[1,[21,\\\"value\\\"],false],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/table/cells/base-cell/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/cells/check-box/component\", [\"exports\", \"adept-iq/pods/components/table/cells/base-cell/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    classNames: ['table-check-box-cell', 'data-test-table-check-box-cell'],\n    activeContext: Ember.inject.service(),\n    isChecked: Ember.computed.alias('row.isChecked'),\n    actions: {\n      onToggleCheckbox(event) {\n        //console.log('event.target.checked ',event.target.checked);\n        //console.log('activeContext.serverFilteringEnabled',this.get('activeContext.serverFilteringEnabled'));\n        if (this.get('activeContext.serverFilteringEnabled')) {\n          this.get('activeContext').set('serverFilteringChecked', event.target.checked);\n        } //console.log('activeContext.serverFilteringChecked',this.get('activeContext.serverFilteringChecked'));\n\n\n        const row = this.get('row');\n        const rows = this.get('table.rows');\n        const lastCheckedRow = rows.findBy('isLastChecked', true);\n        const affectedRows = [];\n\n        if (event.shiftKey && lastCheckedRow) {\n          const lastCheckedIndex = rows.indexOf(lastCheckedRow);\n          const checkedIndex = rows.indexOf(row);\n          const start = Math.min(checkedIndex, lastCheckedIndex);\n          const end = Math.max(checkedIndex, lastCheckedIndex);\n\n          for (let i = start; i <= end; i++) {\n            rows.objectAt(i).set('isChecked', event.target.checked);\n            affectedRows.push(rows.objectAt(i));\n          }\n        } else {\n          row.set('isChecked', event.target.checked);\n          affectedRows.push(row);\n        }\n\n        rows.setEach('isLastChecked', false);\n        row.set('isLastChecked', true);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/cells/check-box/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"gRMS6SBL\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"input\\\"],[11,\\\"class\\\",\\\"can-focus\\\"],[12,\\\"checked\\\",[27,\\\"readonly\\\",[[23,[\\\"isChecked\\\"]]],null]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onToggleCheckbox\\\"],null]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/table/cells/check-box/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/cells/text-extension/component\", [\"exports\", \"adept-iq/pods/components/table/cells/base-cell/component\", \"adept-iq/mixins/table-row-value\"], function (_exports, _component, _tableRowValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend(_tableRowValue.default, {\n    classNames: ['table-text-extension-cell'],\n    textContent: Ember.computed('value', function () {\n      const value = this.get('value.values');\n      if (!value || value.length < 1) return '';\n      const length = value.filter(val => val.className === 'valueItem').length; // show the actual value when there is only one item\n\n      if (length > 1) {\n        return `${length} ${this.get('column.cellDesc')}`;\n      } else if (length === 1) {\n        return value.firstObject.value;\n      }\n\n      return '';\n    }),\n    actions: {\n      showDropdown(dropdown, event) {\n        if (this.value.values.length > 1) {\n          dropdown.actions.open(event);\n        }\n      },\n\n      hideDropdown(dropdown, event) {\n        if (this.value.values.length > 1) {\n          dropdown.actions.close(event);\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/cells/text-extension/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"JfaIHWY7\",\n    \"block\": \"{\\\"symbols\\\":[\\\"dropdown\\\",\\\"item\\\"],\\\"statements\\\":[[4,\\\"basic-dropdown\\\",null,[[\\\"horizontalPosition\\\",\\\"verticalPosition\\\"],[\\\"auto\\\",\\\"auto\\\"]],{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"trigger\\\"]],\\\"expected `dropdown.trigger` to be a contextual component but found a string. Did you mean `(component dropdown.trigger)`? ('adept-iq/pods/components/table/cells/text-extension/template.hbs' @ L5:C5) \\\"],null]],[[\\\"class\\\",\\\"onMouseEnter\\\",\\\"onMouseLeave\\\",\\\"eventType\\\"],[\\\"can-focus\\\",[27,\\\"action\\\",[[22,0,[]],\\\"showDropdown\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"hideDropdown\\\"],null],\\\"onMouseEnter\\\"]],{\\\"statements\\\":[[0,\\\"    \\\"],[1,[21,\\\"textContent\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"content\\\"]],\\\"expected `dropdown.content` to be a contextual component but found a string. Did you mean `(component dropdown.content)`? ('adept-iq/pods/components/table/cells/text-extension/template.hbs' @ L13:C5) \\\"],null]],[[\\\"class\\\"],[\\\"cell-dropdown-content\\\"]],{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"cell-text-content-extension\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"header\\\"],[9],[1,[23,[\\\"value\\\",\\\"header\\\"]],false],[10],[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"value\\\",\\\"values\\\"]]],null,{\\\"statements\\\":[[0,\\\"        \\\"],[7,\\\"label\\\"],[12,\\\"class\\\",[22,2,[\\\"className\\\"]]],[9],[1,[22,2,[\\\"value\\\"]],false],[10],[7,\\\"br\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null],[0,\\\"    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/table/cells/text-extension/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/cells/user-editable-enum/component\", [\"exports\", \"adept-iq/pods/components/table/cells/base-cell/component\", \"adept-iq/utils/save-records\"], function (_exports, _component, _saveRecords) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const KEYCODE_TAB = 9;\n  const KEYCODE_ENTER = 13;\n  const KEYCODE_ESCAPE = 27;\n\n  var _default = _component.default.extend({\n    classNames: ['table-user-editable-enum-cell'],\n    classNameBindings: ['canFocus'],\n    isEditing: false,\n    value: null,\n    dropdownClass: null,\n    dropdownAPI: null,\n    options: Ember.computed.alias('column.options'),\n    allowMultiple: Ember.computed.alias('column.allowMultiple'),\n    canFocus: Ember.computed.not('isEditing'),\n    isDoubleClick: Ember.computed.and('row.isEditing', 'column.isEditing'),\n    onIsEditingChange: Ember.observer('isDoubleClick', function () {\n      if (this.get('isDoubleClick')) {\n        this.startEditing();\n      }\n    }),\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      this.set('dropdownClass', `${this.elementId}-dropdown`);\n    },\n\n    startEditing() {\n      if (this.get('isEditing')) return;\n      this.set('isEditing', true);\n      const row = this.get('row');\n      const valuePath = this.get('column.valuePath');\n      const value = row.get(valuePath);\n      this.set('value', Ember.copy(value));\n      Ember.run.scheduleOnce('afterRender', () => {\n        this.get('dropdownAPI').actions.open(); // Close on click outside.\n\n        Ember.$(document).on('click', e => {\n          Ember.run.scheduleOnce('afterRender', () => {\n            const componentElements = [this.element, Ember.$(this.get('dropdownClass')).get(0)];\n            const isClickInside = componentElements.any(element => {\n              return element && element.contains(e.target);\n            });\n            if (isClickInside) return;\n            this.saveChanges();\n            Ember.$(document).off('click');\n          });\n        });\n      });\n    },\n\n    saveChanges() {\n      if (!this.get('isEditing')) return;\n      this.set('isEditing', false);\n      const row = this.get('row');\n      const valuePath = this.get('column.valuePath');\n      const value = this.get('value');\n      row.set(valuePath, value);\n      (0, _saveRecords.default)([row.content.record]);\n    },\n\n    discardChanges() {\n      if (!this.get('isEditing')) return;\n      this.set('isEditing', false);\n      const row = this.get('row');\n      const valuePath = this.get('column.valuePath');\n      const value = row.get(valuePath);\n      this.set('value', Ember.copy(value));\n    },\n\n    actions: {\n      onChange(value) {\n        this.set('value', value);\n\n        if (this.get('allowMultiple') === false) {\n          this.saveChanges();\n        }\n      },\n\n      onKeydown(api, event) {\n        const {\n          keyCode\n        } = event; // Allow default enter to select and escape to close drop down when open.\n\n        if (api.isOpen) {\n          event.stopPropagation();\n          return;\n        }\n\n        if (keyCode === KEYCODE_ESCAPE) {\n          this.discardChanges();\n        }\n\n        if (keyCode === KEYCODE_TAB || keyCode === KEYCODE_ENTER) {\n          this.saveChanges();\n        }\n      },\n\n      onDidInsertDropdownElement(dropdownAPI) {\n        this.set('dropdownAPI', dropdownAPI);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/cells/user-editable-enum/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"diTR3eCj\",\n    \"block\": \"{\\\"symbols\\\":[\\\"option\\\"],\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isDoubleClick\\\"]]],null,{\\\"statements\\\":[[4,\\\"component\\\",[[27,\\\"if\\\",[[23,[\\\"allowMultiple\\\"]],\\\"power-select-multiple\\\",\\\"power-select\\\"],null]],[[\\\"selected\\\",\\\"options\\\",\\\"disabled\\\",\\\"searchEnabled\\\",\\\"triggerClass\\\",\\\"dropdownClass\\\",\\\"registerAPI\\\",\\\"onkeydown\\\",\\\"onchange\\\"],[[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"options\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"disabled\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"allowMultiple\\\"]]],null],\\\"can-focus\\\",[27,\\\"readonly\\\",[[23,[\\\"dropdownClass\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onDidInsertDropdownElement\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onKeydown\\\"],null],[27,\\\"action\\\",[[22,0,[]],\\\"onChange\\\"],null]]],{\\\"statements\\\":[[0,\\\"\\\\n    \\\"],[1,[22,1,[]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"  \\\"],[1,[21,\\\"value\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/table/cells/user-editable-enum/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/cells/user-editable/component\", [\"exports\", \"adept-iq/pods/components/table/cells/base-cell/component\", \"adept-iq/utils/save-records\", \"adept-iq/mixins/table-row-value\", \"moment\"], function (_exports, _component, _saveRecords, _tableRowValue, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const KEYCODE_TAB = 9;\n  const KEYCODE_ENTER = 13;\n  const KEYCODE_ESCAPE = 27;\n\n  var _default = _component.default.extend(_tableRowValue.default, {\n    classNames: ['table-user-editable-cell', 'data-test-table-user-editable-cell'],\n    classNameBindings: ['canFocus'],\n    errorMessage: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    isEditing: false,\n    buffer: null,\n    canFocus: Ember.computed.not('isEditing'),\n    isDoubleClick: Ember.computed.and('row.isEditing', 'column.isEditing'),\n    onIsEditingChange: Ember.observer('isDoubleClick', function () {\n      if (this.get('isDoubleClick')) {\n        this.startEditing();\n      }\n    }),\n\n    startEditing() {\n      if (this.get('isEditing')) return;\n      this.set('isEditing', true);\n      const row = this.get('row');\n      const valuePath = this.get('column.valuePath');\n      const value = row.get(valuePath);\n      const type = this.get('column.columnType');\n      const format = this.get('column.format');\n      const buffer = this.formatInputValue(value, type, format);\n      this.set('buffer', buffer);\n      Ember.run.scheduleOnce('afterRender', () => {\n        this.$('input').focus();\n      });\n    },\n\n    formatInputValue(value, type, format) {\n      switch (type.id) {\n        case 'date':\n        case 'datetime':\n        case 'datetimeflatpickr':\n        case 'time':\n          return format(value);\n\n        default:\n          return value ? value.toString() : '';\n      }\n    },\n\n    parseInputValue(value, type, parse, originalValue) {\n      switch (type.id) {\n        case 'date':\n          return new Date(value);\n\n        case 'datetime':\n        case 'datetimeflatpickr':\n        case 'time':\n          return parse(value, originalValue);\n\n        default:\n          return value;\n      }\n    },\n\n    validate(value) {\n      let valid = true;\n      const config = this.get('column.config');\n\n      if (Ember.isNone(config.validation)) {\n        return true;\n      }\n\n      const minValue = config.validation.minValue;\n      const maxValue = config.validation.maxValue;\n      const type = config.validation.type;\n\n      if (!Ember.isNone(minValue) && !Ember.isNone(maxValue)) {\n        switch (type) {\n          case 'text':\n            {\n              if (value.length < minValue || value.length > maxValue) {\n                let message = '';\n\n                if (minValue === maxValue) {\n                  message = `${config.label} must be ${minValue} characters in length.`;\n                } else {\n                  message = `${config.label} must be between ${minValue} and ${maxValue} characters in length.`;\n                }\n\n                valid = false;\n                this.get('errorMessage').pushWarning({\n                  detail: message\n                });\n              }\n\n              break;\n            }\n\n          case 'phoneNumber':\n            {\n              const numOnly = value.replace(/[^0-9]/g, '');\n\n              if (numOnly.length < minValue || numOnly.length > maxValue) {\n                let message = '';\n\n                if (minValue === maxValue) {\n                  message = `${config.label} must have ${minValue} digits.`;\n                } else {\n                  message = `${config.label} must be between ${minValue} and ${maxValue} digits.`;\n                }\n\n                valid = false;\n                this.get('errorMessage').pushWarning({\n                  detail: message\n                });\n              }\n\n              break;\n            }\n\n          case 'date':\n            {\n              const valueMoment = (0, _moment.default)(value);\n              const minValueMoment = minValue === 'now' ? (0, _moment.default)() : (0, _moment.default)(minValue);\n              const maxValueMoment = maxValue === 'now' ? (0, _moment.default)() : (0, _moment.default)(maxValue);\n              let message = '';\n\n              if (!valueMoment.isBetween(minValueMoment, maxValueMoment, null, '[]')) {\n                valid = false;\n                message = `${config.label} must be between ${minValueMoment.format('YYYY-MM-DD')} and ${maxValueMoment.format('YYYY-MM-DD')}.`;\n                this.get('errorMessage').pushWarning({\n                  detail: message\n                });\n              }\n\n              break;\n            }\n\n          default:\n            {\n              valid = false;\n              break;\n            }\n        }\n      }\n\n      return valid;\n    },\n\n    saveChanges() {\n      if (!this.get('isEditing')) return;\n      this.set('row.isEditing', false);\n      this.set('column.isEditing', false);\n      this.set('isEditing', false);\n      const buffer = this.get('buffer');\n      const type = this.get('column.columnType');\n      const parse = this.get('column.parse');\n      const row = this.get('row');\n      const valuePath = this.get('column.valuePath');\n      const origialValue = row.get(valuePath) || '';\n      const newValue = this.parseInputValue(buffer, type, parse, origialValue) || '';\n\n      if (this.validate(newValue)) {\n        row.set(valuePath, newValue); // get the last model in the value path\n\n        const path = valuePath.split('.');\n        path.pop();\n        const modelPatch = path.join('.'); // patch that specific model\n\n        row.get(modelPatch).reload().then(res => {\n          return (0, _saveRecords.default)([res]);\n        });\n      }\n    },\n\n    discardChanges() {\n      if (!this.get('isEditing')) return;\n      this.set('isEditing', false);\n      this.set('row.isEditing', false);\n      this.set('column.isEditing', false);\n    },\n\n    actions: {\n      onInput(text) {\n        this.set('buffer', text);\n      },\n\n      onKeydown(keyCode) {\n        if (keyCode === KEYCODE_ESCAPE) {\n          this.discardChanges();\n        }\n\n        if (keyCode === KEYCODE_TAB || keyCode === KEYCODE_ENTER) {\n          this.saveChanges();\n        }\n      },\n\n      onBlur() {\n        this.saveChanges();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/cells/user-editable/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"QZ/GGA5Y\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"if\\\",[[23,[\\\"isDoubleClick\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"input\\\"],[11,\\\"class\\\",\\\"can-focus\\\"],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"buffer\\\"]]],null]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onInput\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[12,\\\"onblur\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onBlur\\\"],null]],[12,\\\"onkeydown\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onKeydown\\\"],[[\\\"value\\\"],[\\\"keyCode\\\"]]]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"  \\\"],[1,[21,\\\"value\\\"],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/table/cells/user-editable/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/columns/base-column/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['table-base-column'],\n    attributeBindings: ['tabindex'],\n    tabindex: 0,\n    isEditing: false,\n    sortIconProperty: Ember.computed('column.{sortable,sorted,ascending}', function () {\n      const sorted = this.get('column.sorted');\n\n      if (sorted) {\n        const ascending = this.get('column.ascending');\n        return ascending ? 'iconAscending' : 'iconDescending';\n      }\n\n      return '';\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/columns/check-box/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['table-check-box-column'],\n    isChecked: Ember.computed('table.rows.@each.isChecked', function () {\n      const rows = this.get('table.rows'); // it's weird to see checkbox when no records are shown\n\n      if (!rows || rows.length === 0) return false;\n      return rows.isEvery('isChecked');\n    }),\n    actions: {\n      onCheckboxToggle(event) {\n        this.get('table.rows').setEach('isChecked', event.target.checked);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/columns/check-box/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"gV0H00+/\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"input\\\"],[12,\\\"checked\\\",[27,\\\"readonly\\\",[[23,[\\\"isChecked\\\"]]],null]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onCheckboxToggle\\\"],null]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/table/columns/check-box/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/columns/filter-capable/component\", [\"exports\", \"adept-iq/pods/components/table/columns/base-column/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    classNames: ['table-filter-capable-column']\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/columns/filter-capable/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"7+O+CY/G\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"column-label\\\"],[9],[0,\\\"\\\\n  \\\"],[1,[23,[\\\"column\\\",\\\"config\\\",\\\"label\\\"]],false],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"column-controls\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"sortIconProperty\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"i\\\"],[12,\\\"class\\\",[28,[\\\"lt-sort-icon \\\",[27,\\\"get\\\",[[23,[\\\"sortIcons\\\"]],[23,[\\\"sortIconProperty\\\"]]],null]]]],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"column\\\",\\\"isFiltered\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-filter\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/table/columns/filter-capable/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/rows/action-row/component\", [\"exports\", \"adept-iq/pods/components/table/rows/base-row/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    classNames: ['table-action-row', 'data-test-table-action-row'],\n    classNameBindings: ['status'],\n    attributeBindings: ['data-record-id'],\n    // this property name must be dasherized\n    'data-record-id': Ember.computed.alias('row.content.id'),\n    status: Ember.computed.alias('row.content.status'),\n    modelName: Ember.computed.alias('row.content.constructor.modelName'),\n\n    didInsertElement() {\n      this.$().on('contextmenu', event => {\n        event.preventDefault();\n\n        if (event.target.type !== 'checkbox') {\n          const extra = this.get('extra');\n\n          if (extra.onRightClick) {\n            extra.onRightClick(this.get('row'), event);\n          }\n        }\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/rows/action-row/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"QQzSqln/\",\n    \"block\": \"{\\\"symbols\\\":[\\\"column\\\"],\\\"statements\\\":[[4,\\\"each\\\",[[23,[\\\"columns\\\"]]],null,{\\\"statements\\\":[[0,\\\"  \\\"],[1,[27,\\\"component\\\",[[27,\\\"concat\\\",[\\\"light-table/cells/\\\",[22,1,[\\\"cellType\\\"]]],null]],[[\\\"table\\\",\\\"tableActions\\\",\\\"extra\\\",\\\"row\\\",\\\"column\\\",\\\"rawValue\\\"],[[23,[\\\"table\\\"]],[23,[\\\"tableActions\\\"]],[23,[\\\"extra\\\"]],[23,[\\\"row\\\"]],[22,1,[]],[27,\\\"get\\\",[[23,[\\\"row\\\"]],[27,\\\"if\\\",[[22,1,[\\\"valuePaths\\\"]],[27,\\\"get\\\",[[22,1,[\\\"valuePathMap\\\"]],[23,[\\\"modelName\\\"]]],null],[22,1,[\\\"valuePath\\\"]]],null]],null]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/table/rows/action-row/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/rows/base-row/component\", [\"exports\", \"ember-light-table/components/lt-row\"], function (_exports, _ltRow) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _ltRow.default.extend({\n    classNames: ['table-base-row', 'data-test-table-base-row'],\n    isEditing: false\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/rows/driver-status-formatted-row/component\", [\"exports\", \"adept-iq/pods/components/table/rows/action-row/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    classNameBindings: ['statusCategory'],\n    // override with sub-class-specific CP\n    statusValue: Ember.computed.alias('row.statusValue'),\n    statusCategory: Ember.computed('row.statusValue', function () {\n      const statusValue = this.get('row.statusValue');\n      const statusclass = 'driverstatus-' + statusValue;\n      return statusclass;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/rows/otp-formatted-row/component\", [\"exports\", \"adept-iq/pods/components/table/rows/action-row/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    classNameBindings: ['alertCategory'],\n    alertCategory: Ember.computed('row.otp', function () {\n      let otp = this.get('otp');\n\n      if (otp === 'L') {\n        return 'otp-danger';\n      } else if (otp === 'D') {\n        return 'otp-warning';\n      }\n\n      return '';\n    }),\n    // override with sub-class-specific CP\n    otp: Ember.computed.alias('row.otp')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/rows/status-formatted-row/component\", [\"exports\", \"adept-iq/pods/components/table/rows/action-row/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    classNameBindings: ['statusCategory'],\n    // override with sub-class-specific CP\n    statusValue: Ember.computed.alias('row.statusValue'),\n    statusCategory: Ember.computed('row.statusValue', function () {\n      const statusValue = this.get('row.statusValue');\n      const statusclass = 'tripstatus-' + statusValue;\n      return statusclass;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/rows/vehicle-status-formatted-row/component\", [\"exports\", \"adept-iq/pods/components/table/rows/action-row/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    classNameBindings: ['statusCategory'],\n    // override with sub-class-specific CP\n    statusValue: Ember.computed.alias('row.statusValue'),\n    statusCategory: Ember.computed('row.statusValue', function () {\n      const statusValue = this.get('row.statusValue');\n      const statusclass = 'vehiclestatus-' + statusValue;\n      return statusclass;\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/table/rows/zonestat-formatted-row/component\", [\"exports\", \"adept-iq/pods/components/table/rows/action-row/component\"], function (_exports, _component) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _component.default.extend({\n    classNameBindings: ['alertCategory'],\n    // override with sub-class-specific CP\n    alertCategory: Ember.computed('row.status', function () {\n      let status = this.get('status');\n\n      if (status === 'high') {\n        return 'zone-danger';\n      } else if (status === 'medium') {\n        return 'zone-warning';\n      } else {\n        return '';\n      }\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/tile-dashboard/component\", [\"exports\", \"adept-iq/config/widget-types\"], function (_exports, _widgetTypes) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const CLIP_COLUMNS_IN_NORMAL_MODE = false;\n  const RESIZE_DEBOUNCE_TIME = 250;\n\n  var _default = Ember.Component.extend({\n    workspace: Ember.inject.service(),\n    classNames: ['tile-dashboard', 'data-test-tile-dashboard'],\n    dashboard: null,\n    widgetTypesHash: _widgetTypes.widgetTypesHash,\n    isEditing: Ember.computed.alias('workspace.isEditing'),\n    isDragging: Ember.computed.alias('workspace.isDragging'),\n    isResizing: Ember.computed.alias('workspace.isResizing'),\n    tileSize: Ember.computed.alias('workspace.tileSize'),\n    tileSpacing: Ember.computed.alias('workspace.tileSpacing'),\n    contentWidth: Ember.computed.alias('workspace.contentWidth'),\n    contentHeight: Ember.computed.alias('workspace.contentHeight'),\n    modeClass: Ember.computed('isEditing', function () {\n      const mode = this.get('isEditing') ? 'edit' : 'normal';\n      return `dashboard-mode-${mode}`;\n    }),\n    tileSizeClass: Ember.computed('tileSize', function () {\n      return 'tile-size-' + this.get('tileSize');\n    }),\n    tileSpacingClass: Ember.computed('tileSpacing', function () {\n      return 'tile-spacing-' + this.get('tileSpacing');\n    }),\n    colsClass: Ember.computed('dashboard.widgets.@each.{x,width}', 'isEditing', 'gridWidth', function () {\n      let cols = this.get('gridWidth');\n      const widgets = this.get('dashboard.widgets') || [];\n\n      if (!this.get('isEditing') && CLIP_COLUMNS_IN_NORMAL_MODE) {\n        const maxWidth = widgets.reduce((max, widget) => {\n          const x = widget.get('x');\n          const width = widget.get('width');\n          return Math.max(max, x + width);\n        }, 0);\n        cols = Math.min(cols, maxWidth);\n      }\n\n      return `cols-${cols}`;\n    }),\n    rowsClass: Ember.computed('widgets.@each.{y,height}', 'gridHeight', function () {\n      const gridHeight = this.get('gridHeight');\n      const widgets = this.get('dashboard.widgets') || [];\n      const rows = widgets.reduce((max, widget) => {\n        const y = widget.get('y');\n        const height = widget.get('height');\n        return Math.max(max, y + height);\n      }, gridHeight);\n      return `rows-${rows}`;\n    }),\n    gridWidth: Ember.computed.alias('workspace.gridWidth'),\n    gridHeight: Ember.computed.alias('workspace.gridHeight'),\n\n    didInsertElement() {\n      this._onResize = () => {\n        if (this.get('isDragging') || this.get('isResizing')) return;\n        Ember.run.debounce(this, 'updateContentDimensions', RESIZE_DEBOUNCE_TIME);\n      };\n\n      this._resizeObserver = new ResizeObserver(this._onResize);\n\n      this._resizeObserver.observe(this.$()[0]); // add change listener here instead of in the template; ember-gridstack\n      // does not handle event listener teardown properly when attrs change\n\n\n      this._onGridStackChange = (event, items) => {\n        Ember.run.scheduleOnce('afterRender', this, 'onGridStackChange', event, items);\n      };\n\n      this.$('.grid-stack').on('change', this._onGridStackChange);\n      this.updateContentDimensions();\n      this.restoreStaticGridSetting();\n    },\n\n    willDestroyElement() {\n      this.$('.grid-stack').off('change', this._onGridStackChange);\n\n      this._resizeObserver.disconnect();\n\n      this._resizeObserver = null;\n      this._onResize = null;\n    },\n\n    restoreWidgetLayout() {\n      // unfortunately, we have to drop down to the GridStack level here;\n      // the changes we make will trigger `onGridstackChange` actions\n      const widgets = this.get('dashboard.widgets');\n      if (Ember.isEmpty(widgets)) return;\n      Ember.run.scheduleOnce('afterRender', () => {\n        const grid = this.$('.grid-stack').data('gridstack');\n        widgets.forEach(widget => {\n          const id = widget.get('id');\n          const el = this.$(`.grid-stack-item[id=\"${id}\"]`);\n          const currentX = parseInt(el.attr('data-gs-x'), 10);\n          const currentY = parseInt(el.attr('data-gs-y'), 10);\n          const x = widget.get('x');\n          const y = widget.get('y');\n\n          if (currentX !== x || currentY !== y) {\n            grid.move(el, x, y);\n          }\n\n          const currentWidth = parseInt(el.attr('data-gs-width'), 10);\n          const currentHeight = parseInt(el.attr('data-gs-height'), 10);\n          const width = widget.get('width');\n          const height = widget.get('height');\n\n          if (currentWidth !== width || currentHeight !== height) {\n            grid.resize(el, width, height);\n          }\n        });\n      });\n    },\n\n    restoreStaticGridSetting() {\n      // gridstack resets to non-static when widgets are added or removed;\n      // this happens even when dashboard model changes, so always set here\n      this.$('.grid-stack').data('gridstack').setStatic(!this.get('isEditing'));\n    },\n\n    updateContentDimensions() {\n      const content = this.$();\n      if (!content) return;\n      this.set('contentWidth', content.innerWidth());\n      this.set('contentHeight', content.innerHeight());\n    },\n\n    onTileGeometryChange: Ember.observer('tileSize', 'tileSpacing', function () {\n      Ember.run.scheduleOnce('afterRender', this, 'restoreWidgetLayout');\n    }),\n    onGridWidthChange: Ember.observer('gridWidth', function () {\n      // in editing mode, we do not respond to window size\n      if (this.get('isEditing')) return;\n      const debounceInterval = this.get('windowResize.debounceInterval');\n      Ember.run.debounce(this, 'restoreWidgetLayout', debounceInterval, false);\n    }),\n    onIsEditingChange: Ember.observer('isEditing', function () {\n      if (this.get('isEditing') === false) {\n        this.restoreWidgetLayout();\n      }\n    }),\n    onDashboardChange: Ember.observer('dashboard', function () {\n      Ember.run.scheduleOnce('afterRender', this, 'restoreWidgetLayout');\n    }),\n\n    onGridStackChange(event, items) {\n      this.restoreStaticGridSetting();\n      if (!items || !this.get('isEditing')) return;\n      const widgets = this.get('dashboard.widgets');\n      items.forEach(gridItem => {\n        const {\n          id,\n          x,\n          y,\n          width,\n          height\n        } = gridItem;\n        const widget = widgets.findBy('id', `${id}`);\n        if (!widget) return;\n        widget.setProperties({\n          x,\n          y,\n          width,\n          height\n        });\n      });\n    },\n\n    actions: {\n      onXButtonClick(widget) {\n        this.get('dashboard').removeWidget(widget);\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/tile-dashboard/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"b+cqXikj\",\n    \"block\": \"{\\\"symbols\\\":[\\\"widget\\\"],\\\"statements\\\":[[7,\\\"div\\\"],[12,\\\"class\\\",[28,[\\\"tile-dashboard-content \\\",[21,\\\"tileSizeClass\\\"],\\\" \\\",[21,\\\"tileSpacingClass\\\"],\\\" \\\",[21,\\\"rowsClass\\\"],\\\" \\\",[21,\\\"colsClass\\\"],\\\" \\\",[21,\\\"modeClass\\\"]]]],[9],[0,\\\"\\\\n\\\"],[4,\\\"grid-stack\\\",null,[[\\\"options\\\",\\\"onDragstart\\\",\\\"onDragstop\\\",\\\"onResizestart\\\",\\\"onResizestop\\\"],[[27,\\\"hash\\\",null,[[\\\"animate\\\",\\\"float\\\",\\\"disableOneColumnMode\\\",\\\"width\\\",\\\"minWidth\\\",\\\"verticalMargin\\\",\\\"cellHeight\\\",\\\"resizable\\\",\\\"staticGrid\\\"],[false,true,true,[23,[\\\"gridWidth\\\"]],0,0,[23,[\\\"tileSize\\\"]],[27,\\\"hash\\\",null,[[\\\"handles\\\"],[\\\"n, e, s, w, nw, se, sw\\\"]]],[27,\\\"not\\\",[[23,[\\\"isEditing\\\"]]],null]]]],[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"isDragging\\\"]]],null],true],null],[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"isDragging\\\"]]],null],false],null],[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"isResizing\\\"]]],null],true],null],[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"isResizing\\\"]]],null],false],null]]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"each\\\",[[23,[\\\"dashboard\\\",\\\"widgets\\\"]]],null,{\\\"statements\\\":[[4,\\\"grid-stack-item\\\",null,[[\\\"id\\\",\\\"options\\\"],[[22,1,[\\\"id\\\"]],[27,\\\"hash\\\",null,[[\\\"id\\\",\\\"x\\\",\\\"y\\\",\\\"height\\\",\\\"width\\\",\\\"minHeight\\\",\\\"minWidth\\\"],[[22,1,[\\\"id\\\"]],[22,1,[\\\"x\\\"]],[22,1,[\\\"y\\\"]],[22,1,[\\\"height\\\"]],[22,1,[\\\"width\\\"]],[22,1,[\\\"type\\\",\\\"minHeight\\\"]],[22,1,[\\\"type\\\",\\\"minWidth\\\"]]]]]]],{\\\"statements\\\":[[0,\\\"\\\\n        \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"tile-wrapper\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"isEditing\\\"]]],null,{\\\"statements\\\":[[0,\\\"            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-square handles handle-top-left\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-square handles handle-top-middle\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-square handles handle-top-right\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-square handles handle-center-left\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-square handles handle-center-right\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-square handles handle-bottom-left\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-square handles handle-bottom-middle\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"i\\\"],[11,\\\"class\\\",\\\"fa fa-square handles handle-bottom-right\\\"],[11,\\\"aria-hidden\\\",\\\"true\\\"],[9],[10],[0,\\\"\\\\n            \\\"],[7,\\\"button\\\"],[12,\\\"class\\\",[28,[\\\"x-button data-test-\\\",[22,1,[\\\"typeId\\\"]],\\\"-remove\\\"]]],[9],[0,\\\"\\\\n              ✕\\\\n            \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"onXButtonClick\\\",[22,1,[]]]],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null],[0,\\\"          \\\"],[1,[27,\\\"component\\\",[[27,\\\"get\\\",[[27,\\\"get\\\",[[23,[\\\"widgetTypesHash\\\"]],[22,1,[\\\"typeId\\\"]]],null],\\\"componentName\\\"],null]],[[\\\"widget\\\"],[[22,1,[]]]]],false],[0,\\\"\\\\n        \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"parameters\\\":[]},null],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/tile-dashboard/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/timeline-picker/component\", [\"exports\", \"adept-iq/config/environment\", \"moment\"], function (_exports, _environment, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    workspace: Ember.inject.service(),\n    timeSpan: Ember.inject.service(),\n    store: Ember.inject.service(),\n    workspaceContext: Ember.inject.service(),\n    classNames: ['timeline-picker'],\n    zoomPercent: 50,\n    minZoomPercent: 25,\n    maxZoomPercent: 100,\n    zoomPercentStep: 1,\n    proposedStartDate: null,\n    proposedEndDate: null,\n    isRelative: null,\n    isFullAccess: true,\n    fieldValidity: null,\n    areFieldsValid: Ember.computed('fieldValidity.{startDate,endDate,calendar}', function () {\n      // body\n      const fv = this.get('fieldValidity');\n      /*eslint-disable */\n\n      for (let state in fv) {\n        if (fv[state] === false) {\n          return false;\n        }\n      }\n      /*eslint-enable */\n\n\n      return true;\n    }),\n    isAbsoluteMode: true,\n    minusValue: Ember.computed('timeSpan.minusValue', function () {\n      return this.get('timeSpan.minusValue');\n    }),\n    plusValue: Ember.computed('timeSpan.plusValue', function () {\n      return this.get('timeSpan.plusValue');\n    }),\n    canChooseRelative: Ember.computed('proposedStartDate', 'proposedEndDate', function () {\n      const start = this.get('proposedStartDate').getTime();\n      const end = this.get('proposedEndDate').getTime();\n      const now = Date.now();\n\n      if (now <= start || now > end) {\n        return false;\n      }\n\n      return true;\n    }),\n\n    updateTimeSpanService(minusValue, plusValue) {\n      this.get('timeSpan').setSpanMillis(minusValue, plusValue);\n    },\n\n    stopTimeSpanService() {\n      this.get('timeSpan').stopInterval();\n    },\n\n    init() {\n      this._super(...arguments);\n\n      const startDate = this.get('workspace.startDate');\n      const proposedStartDate = new Date(); //proposedStartDate.setHours(0,0,0,0);\n\n      proposedStartDate.setTime(startDate.getTime());\n      this.set('proposedStartDate', proposedStartDate);\n      const endDate = this.get('workspace.endDate');\n      const proposedEndDate = new Date(); // proposedEndDate.setHours(23,59,59,999);\n\n      proposedEndDate.setTime(endDate.getTime());\n      this.set('proposedEndDate', proposedEndDate);\n      this.set('isRelative', this.get('timeSpan.isTimeSpanRunning'));\n      this.set('fieldValidity', {});\n      const isFullAccess = this.store.peekAll('cs-config-permission').get('firstObject.isFullAccessTimeline');\n      this.set('isFullAccess', isFullAccess);\n    },\n\n    actions: {\n      onZoomPercentChange(zoomPercent) {\n        this.set('zoomPercent', parseInt(zoomPercent, 10));\n      },\n\n      checkValidity() {\n        return this.get('areFieldsValid');\n      },\n\n      onCloseButtonClick() {\n        this.send('close');\n      },\n\n      onApplyButtonClick() {\n        if (this.get('areFieldsValid')) {\n          const newStartDate = this.get('proposedStartDate');\n          const newEndDate = this.get('proposedEndDate');\n\n          if (this.get('isRelative') && this.get('canChooseRelative')) {\n            const now = Date.now();\n            this.updateTimeSpanService(now - newStartDate.getTime(), newEndDate.getTime() - now);\n            _environment.default.workspaceContext.startDate = now - newStartDate.getTime();\n            _environment.default.workspaceContext.endDate = newEndDate.getTime() - now;\n          } else {\n            this.stopTimeSpanService();\n            this.set('workspace.startDate', newStartDate);\n            this.set('workspace.endDate', newEndDate);\n            _environment.default.workspaceContext.startDate = this.get('workspace.startDate');\n            _environment.default.workspaceContext.endDate = this.get('workspace.endDate');\n          } //this.get('workspaceContext').set('startRefreshing',false);\n\n\n          this.send('close');\n        }\n      },\n\n      onChangeAbsoluteCheckBox() {\n        this.toggleProperty('isRelative');\n      },\n\n      close() {\n        const workspace = this.get('workspace');\n        workspace.toggleProperty('isEditingTimeline');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/timeline-picker/date-picker/component\", [\"exports\", \"moment\", \"adept-iq/utils/encoding\"], function (_exports, _moment, _encoding) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const DATE_FORMAT = 'ddd YYYY-MM-DD';\n  const KEY_CODE_ENTER = 13;\n  const INVALID_DATE_STRING = 'Invalid';\n\n  var _default = Ember.Component.extend({\n    workspace: Ember.inject.service(),\n    classNames: ['timeline-date-picker', 'data-test-timeline-date-picker'],\n    classNameBindings: ['isValid', 'isInvalid', 'isDirty'],\n    startDate: null,\n    endDate: null,\n    fieldValidityObject: null,\n    dateString: null,\n    rangeStart: null,\n    rangeEnd: null,\n    isValid: Ember.computed.readOnly('isDateStringValid'),\n    isInvalid: Ember.computed.not('isValid'),\n    isDirty: Ember.computed.readOnly('isDateStringDirty'),\n    isDateStringValid: Ember.computed('dateString', function () {\n      const dateString = this.get('dateString');\n      return this.validateDateString(dateString);\n    }),\n    isDateStringDirty: Ember.computed('dateString', 'startDate', 'endDate', function () {\n      const dateString = this.get('dateString');\n      if (!this.validateDateString(dateString)) return true; // take the provided dates, build a date string, then parse it\n\n      const startDate = this.get('startDate');\n      const endDate = this.get('endDate');\n      const effectiveDateString = this.buildDateString(startDate, endDate);\n      const [effectiveStartDate, effectiveEndDate] = this.parseDateString(effectiveDateString); // compare against the parsed values from the current time string\n\n      const [encodedStartDate, encodedEndDate] = this.parseDateString(dateString); // string is dirty when parsed times don't match\n\n      return effectiveStartDate.getTime() !== encodedStartDate.getTime() || effectiveEndDate.getTime() !== encodedEndDate.getTime();\n    }),\n    isRangeStartDirty: Ember.computed('rangeStart', 'startDate', function () {\n      const rangeStart = this.get('rangeStart');\n      if (!rangeStart) return true;\n      const startDate = this.get('startDate');\n      const start = (0, _moment.default)(startDate).startOf('day');\n      return start.valueOf() !== rangeStart.valueOf();\n    }),\n    isRangeEndDirty: Ember.computed('rangeStart', 'rangeEnd', 'endDate', function () {\n      const rangeStart = this.get('rangeStart');\n      if (!rangeStart) return true;\n      const rangeEnd = this.get('rangeEnd');\n      const endDate = this.get('endDate');\n      const end = (0, _moment.default)(endDate).startOf('day'); // it's ok for no end to be specified, so long as window is single date\n\n      if (!rangeEnd) {\n        return end.valueOf() !== rangeStart.valueOf();\n      }\n\n      return end.valueOf() !== rangeEnd.valueOf();\n    }),\n    center: Ember.computed('startDate', function () {\n      const startDate = this.get('startDate');\n      return (0, _moment.default)(startDate).startOf('day');\n    }),\n\n    didReceiveAttrs() {\n      this._super(...arguments);\n\n      const startDate = this.get('startDate');\n      const endDate = this.get('endDate');\n\n      if (this.get('isDateStringDirty')) {\n        const dateString = this.buildDateString(startDate, endDate);\n        this.set('dateString', dateString);\n      } // check this before rangeStart!\n\n\n      if (this.get('isRangeEndDirty')) {\n        const rangeEnd = (0, _moment.default)(endDate).startOf('day');\n        this.set('rangeEnd', rangeEnd);\n      }\n\n      if (this.get('isRangeStartDirty')) {\n        const rangeStart = (0, _moment.default)(startDate).startOf('day');\n        this.set('rangeStart', rangeStart);\n      }\n    },\n\n    buildDateString(startDate, endDate) {\n      let start = (0, _moment.default)(startDate);\n      let end = (0, _moment.default)(endDate);\n      if (!start.isValid() || !end.isValid()) return INVALID_DATE_STRING;\n      start = start.startOf('day');\n      end = end.startOf('day');\n\n      if (start.valueOf() === end.valueOf()) {\n        return start.format(DATE_FORMAT);\n      }\n\n      return `${start.format(DATE_FORMAT)} to ${end.format(DATE_FORMAT)}`;\n    },\n\n    validateDateString(dateString) {\n      if (Ember.typeOf(dateString) !== 'string') return false;\n\n      if (dateString.includes(' to ')) {\n        const arr = dateString.split(' to ');\n        if (arr.length !== 2) return false;\n        if (!arr.every(_encoding.isEncodedDate)) return false;\n        const [startDate, endDate] = arr.map(_encoding.parseDate);\n        return startDate.getTime() <= endDate.getTime();\n      }\n\n      return (0, _encoding.isEncodedDate)(dateString);\n    },\n\n    parseDateString(dateString) {\n      let start, end;\n\n      if (dateString.includes(' to ')) {\n        const [startString, endString] = dateString.split(' to ');\n        start = (0, _moment.default)(startString).startOf('day');\n        end = (0, _moment.default)(endString).endOf('day');\n      } else {\n        start = (0, _moment.default)(dateString).startOf('day');\n        end = start.clone().endOf('day');\n      }\n\n      return [start.toDate(), end.toDate()];\n    },\n\n    checkValidity(startDate, endDate) {\n      if (startDate > endDate) {\n        return false;\n      }\n\n      return true;\n    },\n\n    setDates(startDate, endDate) {\n      // first: get the hours of the existing dates and apply those\n      const existingStart = this.get('startDate');\n      startDate.setHours(existingStart.getHours());\n      startDate.setMinutes(existingStart.getMinutes());\n      const existingEnd = this.get('endDate');\n      endDate.setHours(existingEnd.getHours());\n      endDate.setMinutes(existingEnd.getMinutes());\n      this.set('fieldValidityObject.calendar', this.checkValidity(startDate, endDate));\n      this.set('startDate', startDate);\n      this.set('endDate', endDate);\n    },\n\n    actions: {\n      onInputTextChange(text) {\n        this.set('dateString', text);\n      },\n\n      onKeydown(keyCode) {\n        if (keyCode === KEY_CODE_ENTER && this.get('isDateStringValid')) {\n          const dateString = this.get('dateString');\n          const [startDate, endDate] = this.parseDateString(dateString);\n          this.setDates(startDate, endDate);\n        }\n      },\n\n      onYesterdayButtonClick(dropdown) {\n        dropdown.actions.close();\n        const start = (0, _moment.default)().startOf('day').subtract(1, 'day');\n        const end = start.clone().endOf('day');\n        this.setDates(start.toDate(), end.toDate());\n      },\n\n      onTodayButtonClick(dropdown) {\n        dropdown.actions.close();\n        const start = (0, _moment.default)().startOf('day');\n        const end = start.clone().endOf('day');\n        this.setDates(start.toDate(), end.toDate());\n      },\n\n      onTomorrowButtonClick(dropdown) {\n        dropdown.actions.close();\n        const start = (0, _moment.default)().startOf('day').add(1, 'day');\n        const end = start.clone().endOf('day');\n        this.setDates(start.toDate(), end.toDate());\n      },\n\n      onRangeSelect(range) {\n        this.set('rangeStart', range.start);\n        this.set('rangeEnd', range.end);\n        let end;\n\n        if (range.end) {\n          end = range.end.clone().endOf('day');\n        } else {\n          end = range.start.clone().endOf('day');\n        }\n\n        this.setDates(range.start.toDate(), end.toDate());\n      },\n\n      onDoneButtonClick(dropdown) {\n        dropdown.actions.close();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/timeline-picker/date-picker/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"rYffGLA4\",\n    \"block\": \"{\\\"symbols\\\":[\\\"dropdown\\\",\\\"calendar\\\"],\\\"statements\\\":[[4,\\\"basic-dropdown\\\",null,null,{\\\"statements\\\":[[0,\\\"  \\\"],[7,\\\"input\\\"],[12,\\\"data-ebd-id\\\",[28,[[22,1,[\\\"uniqueId\\\"]],\\\"-trigger\\\"]]],[12,\\\"class\\\",[28,[\\\"timeline-date-picker-input \\\",[27,\\\"if\\\",[[23,[\\\"isValid\\\"]],\\\"is-valid\\\",\\\"is-invalid\\\"],null],\\\" \\\",[27,\\\"if\\\",[[23,[\\\"isDirty\\\"]],\\\"is-dirty\\\",\\\"is-clean\\\"],null]]]],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"dateString\\\"]]],null]],[12,\\\"onclick\\\",[22,1,[\\\"actions\\\",\\\"open\\\"]]],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onInputTextChange\\\"],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[12,\\\"onkeydown\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onKeydown\\\"],[[\\\"value\\\"],[\\\"keyCode\\\"]]]],[11,\\\"type\\\",\\\"text\\\"],[9],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"component\\\",[[27,\\\"-assert-implicit-component-helper-argument\\\",[[22,1,[\\\"content\\\"]],\\\"expected `dropdown.content` to be a contextual component but found a string. Did you mean `(component dropdown.content)`? ('adept-iq/pods/components/timeline-picker/date-picker/template.hbs' @ L10:C5) \\\"],null]],[[\\\"class\\\"],[\\\"timeline-date-picker-dropdown\\\"]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[4,\\\"power-calendar-range\\\",null,[[\\\"class\\\",\\\"center\\\",\\\"minRange\\\",\\\"onCenterChange\\\",\\\"selected\\\",\\\"onSelect\\\"],[\\\"timeline-date-picker-calendar\\\",[23,[\\\"center\\\"]],0,[27,\\\"action\\\",[[22,0,[]],[27,\\\"mut\\\",[[23,[\\\"center\\\"]]],null]],[[\\\"value\\\"],[\\\"date\\\"]]],[27,\\\"hash\\\",null,[[\\\"start\\\",\\\"end\\\"],[[23,[\\\"rangeStart\\\"]],[23,[\\\"rangeEnd\\\"]]]]],[27,\\\"action\\\",[[22,0,[]],[27,\\\"action\\\",[[22,0,[]],\\\"onRangeSelect\\\"],null]],[[\\\"value\\\"],[\\\"moment\\\"]]]]],{\\\"statements\\\":[[0,\\\"\\\\n      \\\"],[1,[22,2,[\\\"nav\\\"]],false],[0,\\\"\\\\n      \\\"],[1,[22,2,[\\\"days\\\"]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[2]},null]],\\\"parameters\\\":[]},null]],\\\"parameters\\\":[1]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/timeline-picker/date-picker/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/timeline-picker/relative-time-input/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    tagName: 'span',\n    classNames: ['timeline-relative-time-picker', 'data-test-timeline-relative-time-picker'],\n    classNameBindings: ['isValid', 'isInvalid', 'isDirty'],\n    value: null,\n    isValid: Ember.computed('value', function () {\n      // The <input type=\"number\"> will return '' when the input is invalid.\n      // The <input type=\"number\"> will allow floating point numbers: decimal point and engineering notation.\n      return /^[0-9]+$/.test(this.get('value'));\n    }),\n    isInvalid: Ember.computed.not('isValid'),\n    actions: {\n      setValue()\n      /* event */\n      {\n        const val = this.$('input').val();\n        this.set('value', val);\n        this.set('isDirty', true);\n      },\n\n      update(event) {\n        if (event.key === 'Enter' || event.type === 'blur') {\n          this.set('isDirty', false);\n\n          if (this.get('isValid')) {\n            this.sendAction('onUpdateValue', this.get('value')); // eslint-disable-line ember/closure-actions\n          } else {\n            this.sendAction('onUpdateValue', null); // eslint-disable-line ember/closure-actions\n          }\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/timeline-picker/relative-time-input/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"7JRnySfQ\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"input\\\"],[11,\\\"class\\\",\\\"timeline-relative-time-picker-input\\\"],[12,\\\"oninput\\\",[27,\\\"action\\\",[[22,0,[]],\\\"setValue\\\"],null]],[12,\\\"onkeyup\\\",[27,\\\"action\\\",[[22,0,[]],\\\"update\\\"],null]],[12,\\\"onblur\\\",[27,\\\"action\\\",[[22,0,[]],\\\"update\\\"],null]],[12,\\\"value\\\",[27,\\\"readonly\\\",[[23,[\\\"value\\\"]]],null]],[11,\\\"type\\\",\\\"number\\\"],[9],[10]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/timeline-picker/relative-time-input/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/timeline-picker/relative-time-picker/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    tagName: '',\n    minusValue: null,\n    plusValue: null,\n\n    updateTimeline() {\n      if (!(this.get('minusValue') === null || this.get('plusValue') === null)) {\n        this.sendAction('onSpanChange', this.get('minusValue'), this.get('plusValue')); // eslint-disable-line ember/closure-actions\n      }\n    },\n\n    actions: {\n      onUpdateMinusValue(value) {\n        this.set('minusValue', value);\n        this.updateTimeline();\n      },\n\n      onUpdatePlusValue(value) {\n        this.set('plusValue', value);\n        this.updateTimeline();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/timeline-picker/relative-time-picker/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"XrYV7ajc\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"time-picker-wrapper\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"strong\\\"],[9],[0,\\\"-\\\"],[10],[0,\\\"\\\\n  \\\"],[1,[27,\\\"timeline-picker/relative-time-input\\\",null,[[\\\"value\\\",\\\"onUpdateValue\\\"],[[27,\\\"readonly\\\",[[23,[\\\"minusValue\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onUpdateMinusValue\\\"],null]]]],false],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"time-picker-wrapper\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"strong\\\"],[9],[0,\\\"+\\\"],[10],[0,\\\"\\\\n  \\\"],[1,[27,\\\"timeline-picker/relative-time-input\\\",null,[[\\\"value\\\",\\\"onUpdateValue\\\"],[[27,\\\"readonly\\\",[[23,[\\\"plusValue\\\"]]],null],[27,\\\"action\\\",[[22,0,[]],\\\"onUpdatePlusValue\\\"],null]]]],false],[0,\\\"\\\\n\\\"],[10]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/timeline-picker/relative-time-picker/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/timeline-picker/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"rfaVyOsU\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"controls-row\\\"],[9],[0,\\\"\\\\n  \\\"],[1,[27,\\\"timeline-picker/time-picker\\\",null,[[\\\"startDate\\\",\\\"endDate\\\",\\\"editingDateProperty\\\",\\\"fieldValidityObject\\\",\\\"isFullAccess\\\",\\\"fieldValidityCheck\\\"],[[23,[\\\"proposedStartDate\\\"]],[23,[\\\"proposedEndDate\\\"]],\\\"startDate\\\",[23,[\\\"fieldValidity\\\"]],[23,[\\\"isFullAccess\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"checkValidity\\\"],null]]]],false],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"date-picker-wrapper\\\"],[9],[0,\\\"\\\\n    \\\"],[1,[27,\\\"timeline-picker/date-picker\\\",null,[[\\\"startDate\\\",\\\"endDate\\\",\\\"isFullAccess\\\",\\\"fieldValidityObject\\\"],[[23,[\\\"proposedStartDate\\\"]],[23,[\\\"proposedEndDate\\\"]],[23,[\\\"isFullAccess\\\"]],[23,[\\\"fieldValidity\\\"]]]]],false],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[1,[27,\\\"timeline-picker/time-picker\\\",null,[[\\\"startDate\\\",\\\"endDate\\\",\\\"editingDateProperty\\\",\\\"fieldValidityObject\\\",\\\"isFullAccess\\\",\\\"fieldValidityCheck\\\"],[[23,[\\\"proposedStartDate\\\"]],[23,[\\\"proposedEndDate\\\"]],\\\"endDate\\\",[23,[\\\"fieldValidity\\\"]],[23,[\\\"isFullAccess\\\"]],[27,\\\"action\\\",[[22,0,[]],\\\"checkValidity\\\"],null]]]],false],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"relative-checkbox-section\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"canChooseRelative\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"label\\\"],[9],[7,\\\"input\\\"],[11,\\\"id\\\",\\\"absolute\\\"],[11,\\\"name\\\",\\\"time-selection-mode\\\"],[12,\\\"checked\\\",[27,\\\"readonly\\\",[[23,[\\\"isRelative\\\"]]],null]],[12,\\\"onchange\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onChangeAbsoluteCheckBox\\\"],null]],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"Progress window with current time (every 15 minutes)\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"label\\\"],[11,\\\"class\\\",\\\"greyed\\\"],[9],[7,\\\"input\\\"],[11,\\\"disabled\\\",\\\"\\\"],[11,\\\"type\\\",\\\"checkbox\\\"],[9],[10],[0,\\\"Progress window with current time (every 15 minutes)\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"spacer\\\"],[9],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn btn-primary-simple\\\"],[12,\\\"disabled\\\",[27,\\\"unless\\\",[[23,[\\\"areFieldsValid\\\"]],\\\"true\\\"],null]],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onApplyButtonClick\\\"],null]],[9],[0,\\\"\\\\n    Apply\\\\n  \\\"],[10],[0,\\\"\\\\n  \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn btn-outline-primary-simple\\\"],[12,\\\"onclick\\\",[27,\\\"action\\\",[[22,0,[]],\\\"onCloseButtonClick\\\"],null]],[9],[0,\\\"\\\\n    Close\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/timeline-picker/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/timeline-picker/time-bar/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    workspace: Ember.inject.service(),\n    classNames: ['bar', 'data-test-bar'],\n\n    /* one 24-hour day */\n    numIncrements: 24,\n    startDateAbbrev: Ember.computed('startDate', function () {\n      return this.get('startDate').toDateString();\n    }),\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      const parentEl = this.$(); // To keep the zoomPercent related to the original size.\n\n      this.set('baseLineWidth', parentEl.width());\n      parentEl.css('width', `${parentEl.width() * this.get('zoomPercent') / 100}px`);\n      this.set('parentWidth', parentEl.width());\n      this.resetAllElements();\n    },\n\n    setDates(startDate, endDate) {\n      Ember.run.scheduleOnce('afterRender', this, 'onDatesChange', startDate, endDate);\n    },\n\n    resetAllElements() {\n      this.insertTimeScale();\n      this.insertTimeIncrements();\n      this.setLeftHandle();\n      this.setRightHandle();\n      this.setNowMarker();\n      this.insertOperatingBox();\n    },\n\n    insertTimeScale() {\n      const rowEl = this.$('#time-scale-row'); // Clear out the old cells before we add new ones.\n\n      rowEl.empty();\n      const numIncrements = this.get('numIncrements');\n      const cellWidth = Math.floor(this.get('parentWidth') / numIncrements);\n      const startEndCell = `<td style=\"width:${cellWidth / 2}px\"></td>`;\n      rowEl.append(startEndCell);\n\n      for (let i = 1; i < numIncrements; i++) {\n        const cell = `<td class=\"time-scale-cell\" style=\"width:${cellWidth}px\">${i}:00</td>`;\n        rowEl.append(cell);\n      }\n\n      rowEl.append(startEndCell);\n    },\n\n    insertTimeIncrements() {\n      const rowEl = this.$('#increment-row');\n      rowEl.empty();\n      const numIncrements = this.get('numIncrements');\n      const cellWidth = Math.floor(this.get('parentWidth') / numIncrements);\n      const cell = `<td class=\"time-bar-increment\" style=\"width:${cellWidth}px\"></td>`;\n\n      for (let i = 0; i < numIncrements; i++) {\n        rowEl.append(cell);\n      }\n    },\n\n    setLeftHandle() {\n      const leftHandle = this.$('.time-bar-handle-left');\n      const startDate = this.get('startDate');\n      const decimalTime = startDate.getHours() + startDate.getMinutes() / 60;\n      const leftPosition = Math.floor(this.get('parentWidth') / 24 * decimalTime);\n      leftHandle.css('left', `${leftPosition}px`);\n    },\n\n    setRightHandle() {\n      const rightHandle = this.$('.time-bar-handle-right');\n      const offset = rightHandle.width();\n      const endDate = this.get('endDate');\n      const decimalTime = endDate.getHours() + endDate.getMinutes() / 60;\n      const rightPosition = Math.floor(this.get('parentWidth') / 24 * decimalTime) - offset;\n      rightHandle.css('left', `${rightPosition}px`);\n    },\n\n    setNowMarker() {\n      const newMarker = this.$('.time-bar-now-marker'); // Arbitrarily picking 12:00PM,\n\n      const leftPosition = Math.floor(this.get('parentWidth') / 24 * 12);\n      newMarker.css('left', `${leftPosition}px`);\n    },\n\n    insertOperatingBox() {\n      const operatingBox = this.$('.time-bar-operating-box'); // The agency begins operations at 9:00am.\n\n      const leftPosition = Math.floor(this.get('parentWidth') / 24 * 9); // THe agency operates 8 hours / day.\n\n      const boxWidth = Math.floor(this.get('parentWidth') / 24 * 8);\n      operatingBox.css('left', `${leftPosition}px`);\n      operatingBox.css('width', `${boxWidth}px`);\n    },\n\n    startDateObserver: Ember.observer('startDate', function () {\n      this.setLeftHandle();\n    }),\n    endDateObserver: Ember.observer('endDate', function () {\n      this.setRightHandle();\n    }),\n    zoomObserver: Ember.observer('zoomPercent', function () {\n      const parentEl = this.$();\n      parentEl.css('width', `${this.get('baseLineWidth') * this.get('zoomPercent') / 100}px`);\n      this.set('parentWidth', parentEl.width());\n      this.resetAllElements();\n    }),\n\n    dragEnd(event) {\n      const target = this.$(`#${event.originalEvent.target.id}`);\n      const startingPosition = parseInt(target.css('left').replace(/px/, ''), 10);\n      const newPosition = startingPosition + event.originalEvent.offsetX;\n\n      switch (event.originalEvent.target.id) {\n        case 'left-handle':\n          {\n            // Gives a fractional hour.\n            const startDate = new Date(this.get('startDate').getTime());\n            const newTime = this.convertTime(newPosition / (this.get('parentWidth') / 24));\n            startDate.setHours(newTime.hours, newTime.minutes, 0);\n            this.setDates(startDate, this.get('endDate'));\n            break;\n          }\n\n        case 'right-handle':\n          {\n            const endDate = new Date(this.get('endDate').getTime());\n            const newTime = this.convertTime(newPosition / (this.get('parentWidth') / 24));\n            endDate.setHours(newTime.hours, newTime.minutes, 0);\n            this.setDates(this.get('startDate'), endDate);\n            break;\n          }\n\n        case 'now-marker':\n          {\n            target.css('left', `${newPosition}px`);\n            break;\n          }\n\n        default:\n          break;\n      }\n    },\n\n    convertTime(decimal) {\n      const hours = Math.floor(decimal / 24);\n      const minutes = Math.floor(decimal * 60);\n      return {\n        hours: hours,\n        minutes: minutes\n      };\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/timeline-picker/time-bar/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"HoCYBhqi\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[9],[1,[21,\\\"startDateAbbrev\\\"],false],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"time-bar-handle-left\\\"],[11,\\\"draggable\\\",\\\"true\\\"],[11,\\\"id\\\",\\\"left-handle\\\"],[9],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"time-bar-handle-right\\\"],[11,\\\"draggable\\\",\\\"true\\\"],[11,\\\"id\\\",\\\"right-handle\\\"],[9],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"time-bar-now-marker\\\"],[11,\\\"draggable\\\",\\\"true\\\"],[11,\\\"id\\\",\\\"now-marker\\\"],[9],[10],[0,\\\"\\\\n\\\\n\\\"],[7,\\\"table\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[11,\\\"id\\\",\\\"time-scale-row\\\"],[9],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[7,\\\"table\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"tr\\\"],[11,\\\"id\\\",\\\"increment-row\\\"],[9],[10],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"time-bar-operating-box-background\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"time-bar-operating-box\\\"],[9],[10],[0,\\\"\\\\n\\\"],[10]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/timeline-picker/time-bar/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/timeline-picker/time-picker/component\", [\"exports\", \"moment\"], function (_exports, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    classNames: ['time-picker-wrapper'],\n    classNameBindings: ['isValid', 'isInvalid', 'isDirty'],\n    timePickerOptions: Ember.computed('startDate', 'endDate', 'editingDateProperty', function () {\n      return {\n        dropdown: true,\n        interval: 30,\n        scrollbar: true,\n        defaultTime: this.get(this.get('editingDateProperty'))\n      };\n    }),\n\n    didInsertElement() {\n      this._super(...arguments);\n\n      if (!this.get('isFullAccess')) {\n        this.$().find('.ember-timepicker').prop('disabled', true);\n      }\n    },\n\n    isValid: Ember.computed('fieldValidityObject.{startDate,endDate}', function () {\n      const fieldValidityObj = this.get('fieldValidityObject');\n      const editingDateProperty = this.get('editingDateProperty');\n\n      if (fieldValidityObj[editingDateProperty] === false) {\n        return false;\n      }\n\n      return true;\n    }),\n    startDate: null,\n    endDate: null,\n    editingDateProperty: null,\n    fieldValidityObject: null,\n    timeString: null,\n    actions: {\n      onTimeChange(selectedTime) {\n        const propertyName = this.get('editingDateProperty');\n        const editingDate = this.get(propertyName);\n        const selectedDate = new Date(editingDate.getTime());\n        selectedDate.setHours(selectedTime.getHours());\n        selectedDate.setMinutes(selectedTime.getMinutes()); // do validation here!\n\n        if (editingDate.getTime() === selectedDate.getTime()) {\n          // nothing changed\n          this.set(`fieldValidityObject.${propertyName}`, true);\n        } else if (propertyName === 'startDate') {\n          const endDate = this.get('endDate');\n\n          if (selectedDate > endDate) {\n            this.set(`fieldValidityObject.${propertyName}`, false);\n            this.set('startDate', selectedDate);\n          } else {\n            this.set(`fieldValidityObject.${propertyName}`, true);\n            this.set('startDate', selectedDate);\n          }\n        } else {\n          // endDate being set\n          const startDate = this.get('startDate');\n\n          if (selectedDate < startDate) {\n            this.set(`fieldValidityObject.${propertyName}`, false);\n            this.set('endDate', selectedDate);\n          } else {\n            this.set(`fieldValidityObject.${propertyName}`, true);\n            this.set('endDate', selectedDate);\n          }\n        }\n\n        this.get('isValid');\n        this.get('fieldValidityCheck')();\n      },\n\n      onLastHourButtonClick(dropdown) {\n        dropdown.actions.close();\n        const end = (0, _moment.default)().startOf('minute');\n        const start = end.clone().subtract(1, 'hour');\n        this.setDates(start.toDate(), end.toDate());\n      },\n\n      onNowButtonClick(dropdown) {\n        dropdown.actions.close();\n        const start = (0, _moment.default)();\n        const end = start.clone().add(1, 'hour');\n        this.setDates(start.toDate(), end.toDate());\n      },\n\n      onNextTwoHoursButtonClick(dropdown) {\n        dropdown.actions.close();\n        const start = (0, _moment.default)();\n        const end = start.clone().add(2, 'hour');\n        this.setDates(start.toDate(), end.toDate());\n      },\n\n      onDoneButtonClick(dropdown) {\n        dropdown.actions.close();\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/components/timeline-picker/time-picker/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"Kxsg8yHc\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[12,\\\"class\\\",[28,[\\\"timeline-time-picker \\\",[27,\\\"if\\\",[[23,[\\\"isValid\\\"]],\\\"\\\",\\\"is-invalid\\\"],null]]]],[9],[0,\\\"\\\\n  \\\"],[1,[27,\\\"ember-timepicker\\\",null,[[\\\"onChange\\\",\\\"options\\\"],[[27,\\\"action\\\",[[22,0,[]],\\\"onTimeChange\\\"],null],[23,[\\\"timePickerOptions\\\"]]]]],false],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/components/timeline-picker/time-picker/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/dashboard/controller\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Controller.extend({\n    workspace: Ember.inject.service(),\n    tooltip: Ember.inject.service(),\n    store: Ember.inject.service(),\n    isEditing: Ember.computed.alias('workspace.isEditing'),\n    tileSize: Ember.computed.alias('workspace.tileSize'),\n    tileSpacing: Ember.computed.alias('workspace.tileSpacing'),\n    dashboard: Ember.computed.alias('data.dashboard')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/dashboard/modals/edit-form/controller\", [\"exports\", \"adept-iq/utils/populate-new-trip\", \"adept-iq/utils/populate-account\", \"adept-iq/config/api-urls\"], function (_exports, _populateNewTrip, _populateAccount, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const RESIZE_CURSOR_OFFSET = -2;\n  const MAX_WIDTH = 800;\n  const RESIZE_DEBOUNCE_TIME = 250;\n\n  var _default = Ember.Controller.extend({\n    editModal: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    editableRecords: Ember.computed.alias('editModal.editableRecords'),\n    showTripFormPopup: Ember.computed.alias('editModal.showTripFormPopup'),\n    editComponent: Ember.computed.alias('editModal.editComponent'),\n    showEditPopup: true,\n    accountSearchPath: _apiUrls.API_SUB_URL.accountSearchPath,\n    trip: Ember.inject.service(),\n    geocode: Ember.inject.service(),\n    store: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    searchservice: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    session: Ember.inject.service(),\n\n    init() {\n      this._super(...arguments);\n\n      console.log('editComponent ', this.get('editComponent'));\n      console.log('showTripFormPopup ', this.get('showTripFormPopup'));\n\n      if ((this.get('editComponent') === 'iq-widgets/new-trip-fixform-widget' || this.get('editComponent') === 'iq-widgets/edit-trip-form-widget' || this.get('editComponent') === 'iq-widgets/new-trip-form-widget') && !this.get('showTripFormPopup')) {\n        this.set('showEditPopup', false);\n      }\n\n      this._onResize = () => {\n        if (this.get('isDragging') || this.get('isResizing')) return;\n        Ember.run.debounce(this, 'resizedWindow', RESIZE_DEBOUNCE_TIME);\n      };\n\n      this._resizeObserver = new ResizeObserver(this._onResize);\n\n      this._resizeObserver.observe(Ember.$('body')[0]);\n\n      Ember.$('.modal-dialog').draggable();\n    },\n\n    resizedWindow() {\n      let position = Ember.$('.edit-widget-modal').width();\n      let coords = {\n        x: position\n      };\n\n      if (this.get('isDestroyed')) {\n        return;\n      }\n\n      this.send('resizeModal', coords);\n    },\n\n    willDestroyElement() {\n      this._resizeObserver.disconnect();\n\n      this._resizeObserver = null;\n      this._onResize = null;\n    },\n\n    actions: {\n      resizeModal(position) {\n        let windowWidth = Ember.$(window).width(); // Resize cursor offset ensures cursor is centered on handle.\n\n        let modalWidth = windowWidth - position.x + RESIZE_CURSOR_OFFSET;\n        Ember.run.scheduleOnce('afterRender', () => {\n          if (windowWidth - modalWidth >= MAX_WIDTH) {\n            Ember.$('.edit-widget-modal').css('right', `${windowWidth - MAX_WIDTH}px`);\n          } else {\n            Ember.$('.edit-widget-modal').css('right', `${modalWidth}px`);\n          }\n        });\n      },\n\n      closeWidget() {\n        this.toggleProperty('editmodalcontext.showWidgetModal');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/dashboard/modals/edit-form/resize-handle/component\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Component.extend({\n    didInsertElement() {\n      const elem = this.$();\n      elem.on('mousedown', () => {\n        //resize may happen outside of current element\n        Ember.$(document).on('mousemove', event => {\n          Ember.run.scheduleOnce('afterRender', this, 'resizeModal', event);\n        }); //rm listeners to avoid bloat\n\n        Ember.$(document).on('mouseup', () => {\n          Ember.run.scheduleOnce('afterRender', () => {\n            Ember.$(document).off('mouseup');\n            Ember.$(document).off('mousemove');\n          });\n        });\n      });\n    },\n\n    resizeModal(e) {\n      const coords = {\n        x: e.pageX\n      };\n      this.get('onResizeModal')(coords);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/dashboard/modals/edit-form/resize-handle/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"HOsE7ZcK\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"edit-modal-resize-handle\\\"],[9],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/dashboard/modals/edit-form/resize-handle/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/dashboard/modals/edit-form/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"3+6daL0Z\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[0,\\\"    \\\\n \\\"],[7,\\\"div\\\"],[11,\\\"id\\\",\\\"draggable\\\"],[11,\\\"draggable\\\",\\\"true\\\"],[11,\\\"style\\\",\\\"z-index:9999;display:none\\\"],[11,\\\"class\\\",\\\"ui-widget-content\\\"],[9],[0,\\\"\\\\n\\\\n \\\"],[1,[21,\\\"iq-widgets/cli-widget\\\"],false],[0,\\\"\\\\n \\\"],[10],[0,\\\" \\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/dashboard/modals/edit-form/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/dashboard/route\", [\"exports\", \"lodash\", \"moment\", \"ember-simple-auth/mixins/authenticated-route-mixin\"], function (_exports, _lodash, _moment, _authenticatedRouteMixin) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Route.extend(_authenticatedRouteMixin.default, {\n    workspace: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    store: Ember.inject.service(),\n    maximizer: Ember.inject.service(),\n\n    model(params) {\n      return this.store.findAll('cs-config-permission').then(configPermissions => {\n        this.set('workspace.configPermissions', configPermissions.get('firstObject.value'));\n        return this.store.findRecord('dashboard', params.id);\n      }).catch(() => {\n        this.transitionTo('index');\n      });\n    },\n\n    setupTimelinePermission(model) {\n      const isFullAccess = this.store.peekAll('cs-config-permission').get('firstObject.isFullAccessTimeline');\n\n      if (!isFullAccess) {\n        model.set('startDate', (0, _moment.default)().hours(0).minutes(1).toDate());\n        model.set('endDate', (0, _moment.default)().hours(23).minutes(59).toDate());\n        const referenceDate = (0, _moment.default)().startOf('day').toDate();\n        model.set('referenceDate', referenceDate);\n      }\n    },\n\n    afterModel(model) {\n      this.setupTimelinePermission(model);\n      localStorage.setItem('lastDashboardId', model.get('id'));\n      const userDash = localStorage.getItem('userDash');\n      const currentUser = localStorage.getItem('currentUser');\n      const arr = userDash.split(',');\n\n      const user = _lodash.default.find(arr, users => {\n        return users.split('*')[0] === currentUser;\n      });\n\n      arr.splice(arr.indexOf(user), 1);\n      user.split('*');\n      arr.push(`${currentUser}*${model.get('id')}`);\n      localStorage.setItem('userDash', arr); // wait for 1 ms. This is enough to eliminate exceptions\n      // when switching dashboards.\n\n      Ember.run.next(() => {\n        const configPermissions = this.get('workspace.configPermissions'); // if (configPermissions) {\n\n        this.get('workspace').set('dashboardModel', model); // }\n\n        this.store.findAll('cs-config-permission').then(currConfigPermissions => {\n          this.set('workspace.configPermissions', currConfigPermissions.get('firstObject.value'));\n          this.get('workspace').set('dashboardModel', model);\n        });\n        const maximizer = this.get('maximizer');\n\n        if (maximizer.get('checkedItems')) {\n          maximizer.set('checkedItems', null);\n          return;\n        } // clear out any checked items\n\n\n        this.get('activeContext').reset();\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/dashboard/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"5YG4FGck\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"dashboard-wrapper\\\"],[9],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"tile-dashboard-wrapper\\\"],[9],[0,\\\"\\\\n    \\\"],[1,[27,\\\"tile-dashboard\\\",null,[[\\\"dashboard\\\"],[[23,[\\\"workspace\\\",\\\"dashboard\\\"]]]]],false],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[1,[21,\\\"outlet\\\"],false],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/dashboard/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/forgot-password/controller\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Controller.extend({\n    errors: Ember.computed.alias('data.errors'),\n    success: Ember.computed.alias('data.success')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/forgot-password/route\", [\"exports\", \"adept-iq/config/api-urls\"], function (_exports, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Route.extend({\n    session: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n\n    setupController(controller\n    /*, model*/\n    ) {\n      // can we pass in the user's email ?\n      controller.set('data', {});\n    },\n\n    actions: {\n      cancel() {\n        this.transitionTo('login');\n      },\n\n      reset(email) {\n        const ajax = this.get('ajax');\n        const data = {\n          email: email\n        };\n        const message = 'Reset Password Failed';\n        const successMessage = `Password Reset Email has been sent to ${email}`;\n        return ajax.request(_apiUrls.API.ssoService.host + '/passwordResetToken', {\n          dataType: 'text',\n          contentType: 'application/json',\n          method: 'POST',\n          data: data\n        }).then(() => {\n          /*eslint-disable */\n          this.set('controller.data.errors', undefined);\n          /*eslint-enable */\n\n          return this.set('controller.data.success', successMessage);\n        }).catch(e => {\n          /*eslint-disable */\n          console.log(e);\n          this.set('controller.data.success', undefined);\n          /*eslint-enable */\n\n          return this.set('controller.data.errors', [message]);\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/forgot-password/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"OHnc/sh3\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"id\\\",\\\"forgot-password-template\\\"],[9],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"h3\\\"],[9],[0,\\\"\\\\n    Forgot Password\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[1,[27,\\\"forgot-form\\\",null,[[\\\"errors\\\",\\\"success\\\",\\\"onSubmit\\\"],[[27,\\\"readonly\\\",[[23,[\\\"errors\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"success\\\"]]],null],[27,\\\"route-action\\\",[\\\"reset\\\"],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/forgot-password/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/index/index/route\", [\"exports\", \"ember-simple-auth/mixins/authenticated-route-mixin\"], function (_exports, _authenticatedRouteMixin) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const DEFAULT_DASHBOARD_ID = 'workspaces-default/default';\n\n  var _default = Ember.Route.extend(_authenticatedRouteMixin.default, {\n    session: Ember.inject.service(),\n\n    model() {\n      return new Ember.RSVP.Promise((resolve\n      /*, reject*/\n      ) => {\n        this.fetchLastDashboard().then(dashboard => {\n          if (dashboard) {\n            resolve(dashboard);\n            return;\n          } // try to get default dashboard instead\n\n\n          this.store.findAll('dashboard').then(dashboards => {\n            let dashboard2 = dashboards.findBy('id', DEFAULT_DASHBOARD_ID);\n\n            if (!dashboard2) {\n              // default is missing, use whatever we can find\n              dashboard2 = dashboards.get('firstObject');\n            }\n\n            resolve(dashboard2);\n          });\n        });\n      });\n    },\n\n    fetchLastDashboard() {\n      const lastDashboardId = localStorage.getItem('lastDashboardId');\n\n      if (!lastDashboardId) {\n        return Ember.RSVP.resolve(null);\n      }\n\n      return new Ember.RSVP.Promise(resolve => {\n        this.store.findRecord('dashboard', lastDashboardId).then(resolve).catch(() => {\n          // don't try this again\n          localStorage.setItem('lastDashboardId', null);\n          resolve(null);\n        });\n      });\n    },\n\n    afterModel(dashboard) {\n      if (!dashboard) {\n        return this.transitionTo('index.modals.create-dashboard');\n      }\n\n      this.transitionTo('dashboard', dashboard);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/index/modals/create-dashboard/controller\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Controller.extend({\n    classNames: ['create-dashboard-wrapper'],\n    actions: {\n      toggleModal() {\n        this.transitionToRoute('index');\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/index/modals/create-dashboard/route\", [\"exports\", \"ember-simple-auth/mixins/authenticated-route-mixin\"], function (_exports, _authenticatedRouteMixin) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Route.extend(_authenticatedRouteMixin.default, {\n    tooltip: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n\n    model() {\n      return this.store.createRecord('dashboard');\n    },\n\n    actions: {\n      createDashboard(dashboard) {\n        dashboard.save().then(() => {\n          this.get('tooltip').reset();\n          this.transitionTo('dashboard', dashboard).then(() => {\n            const workspace = this.get('workspace');\n            workspace.pushState('editWorkspace');\n          });\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/index/modals/create-dashboard/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"tBTijs5F\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"modal-dialog\\\",null,[[\\\"onClose\\\",\\\"class\\\",\\\"targetAttachment\\\",\\\"translucentOverlay\\\"],[\\\"toggleModal\\\",\\\"create-dashboard-wrapper\\\",\\\"center\\\",true]],{\\\"statements\\\":[[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"modal-header\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"h6\\\"],[9],[0,\\\"Save Dashboard\\\"],[10],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"x-button\\\"],[9],[0,\\\"\\\\n      ✕\\\\n    \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"toggleModal\\\"]],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"container\\\"],[9],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"row mt-3\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"col\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[27,\\\"form-components/input\\\",null,[[\\\"label\\\",\\\"value\\\",\\\"placeholder\\\",\\\"type\\\"],[\\\"Dashboard Name\\\",[23,[\\\"model\\\",\\\"name\\\"]],\\\"name\\\",\\\"text\\\"]]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"row mt-3\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn btn-default col-4 offset-4 mt-3 mb-3\\\"],[9],[0,\\\"\\\\n        Discard Changes\\\\n      \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"toggleModal\\\"]],[10],[0,\\\"\\\\n\\\\n      \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn btn-primary-simple col-4 mt-3 mb-3\\\"],[9],[0,\\\"\\\\n        Save\\\\n      \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"createDashboard\\\",[23,[\\\"model\\\"]]]],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/index/modals/create-dashboard/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/index/modals/settings/controller\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const TILE_SIZE_OPTIONS = [100, 150, 200];\n  const TILE_SIZE_LABELS = {\n    '100': 'Small',\n    '150': 'Medium',\n    '200': 'Large'\n  };\n  const TILE_SPACING_OPTIONS = [2, 4, 6];\n  const TILE_SPACING_LABELS = {\n    '2': 'Small',\n    '4': 'Medium',\n    '6': 'Large'\n  };\n  const COLOR_MODE_OPTIONS = ['light', 'dark'];\n  const COLOR_MODE_LABELS = {\n    'light': 'Light mode',\n    'dark': 'Dark mode'\n  };\n\n  var _default = Ember.Controller.extend({\n    workspace: Ember.inject.service(),\n    tileSizeOptions: TILE_SIZE_OPTIONS,\n    tileSizeLabels: TILE_SIZE_LABELS,\n    tileSpacingOptions: TILE_SPACING_OPTIONS,\n    tileSpacingLabels: TILE_SPACING_LABELS,\n    colorModeOptions: COLOR_MODE_OPTIONS,\n    colorModeLabels: COLOR_MODE_LABELS,\n    selectedTileSize: Ember.computed.alias('workspace.tileSize'),\n    selectedTileSpacing: Ember.computed.alias('workspace.tileSpacing'),\n    selectedColorMode: Ember.computed('workspace.isLightMode', function () {\n      const isLight = this.get('workspace.isLightMode');\n\n      if (isLight) {\n        return 'light';\n      }\n\n      return 'dark';\n    }),\n    actions: {\n      toggleModal() {\n        this.transitionToRoute('index');\n      },\n\n      didSelectColorMode(colorMode) {\n        if (colorMode === 'dark') {\n          this.set('workspace.isLightMode', false);\n        } else {\n          this.set('workspace.isLightMode', true);\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/index/modals/settings/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"861f49dx\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[4,\\\"modal-dialog\\\",null,[[\\\"onClose\\\",\\\"targetAttachment\\\",\\\"translucentOverlay\\\"],[\\\"toggleModal\\\",\\\"center\\\",true]],{\\\"statements\\\":[[0,\\\"\\\\n\\\"],[0,\\\"\\\\n\\\"],[0,\\\"\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"modal-header\\\"],[9],[0,\\\"\\\\n    \\\"],[7,\\\"h5\\\"],[9],[0,\\\"User Settings\\\"],[10],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"x-button\\\"],[9],[0,\\\"\\\\n      ✕\\\\n    \\\"],[3,\\\"action\\\",[[22,0,[]],\\\"toggleModal\\\"]],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"container\\\"],[9],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"h6\\\"],[11,\\\"class\\\",\\\"mt-2\\\"],[9],[0,\\\"Change Password\\\"],[10],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"row\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"col-6\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[27,\\\"form-components/input\\\",null,[[\\\"label\\\",\\\"value\\\",\\\"placeholder\\\",\\\"type\\\"],[\\\"Existing Password\\\",[23,[\\\"existingPassword\\\"]],\\\"********\\\",\\\"password\\\"]]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"row\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"col\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[27,\\\"form-components/input\\\",null,[[\\\"label\\\",\\\"value\\\",\\\"placeholder\\\",\\\"type\\\"],[\\\"New Password\\\",[23,[\\\"newPassword\\\"]],\\\"********\\\",\\\"password\\\"]]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"col\\\"],[9],[0,\\\"\\\\n        \\\"],[1,[27,\\\"form-components/input\\\",null,[[\\\"label\\\",\\\"value\\\",\\\"placeholder\\\",\\\"type\\\"],[\\\"Confirm Password\\\",[23,[\\\"newPasswordConfirmation\\\"]],\\\"********\\\",\\\"password\\\"]]],false],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"button\\\"],[11,\\\"class\\\",\\\"btn btn-primary-simple col-5 offset-7 mt-1 mb-1\\\"],[9],[0,\\\"Change Password\\\"],[10],[0,\\\"\\\\n\\\\n    \\\"],[10],[0,\\\"\\\\n\\\\n    \\\"],[7,\\\"h6\\\"],[11,\\\"class\\\",\\\"mt-2\\\"],[9],[0,\\\"Reset Password\\\"],[10],[0,\\\"\\\\n    \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"row\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"col\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"a\\\"],[11,\\\"href\\\",\\\"_blank\\\"],[9],[0,\\\"Reset your password\\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"div\\\"],[11,\\\"class\\\",\\\"col\\\"],[9],[0,\\\"\\\\n        \\\"],[7,\\\"a\\\"],[11,\\\"href\\\",\\\"TODO\\\"],[9],[0,\\\"Logout of IQUX\\\"],[10],[0,\\\"\\\\n      \\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n  \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},null]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/index/modals/settings/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/login/controller\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Controller.extend({\n    errors: Ember.computed.alias('data.errors')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/login/route\", [\"exports\", \"lodash\"], function (_exports, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Route.extend({\n    session: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    store: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n\n    setupController(controller\n    /*, model*/\n    ) {\n      controller.set('data', {});\n    },\n\n    actions: {\n      login(userName, password) {\n        const session = this.get('session');\n        const authenticator = 'authenticator:sso';\n        session.authenticate(authenticator, userName, password).then(() => {\n          this.store.findAll('cs-config-permission').then(configPermissions => {\n            this.set('workspace.configPermissions', configPermissions.get('firstObject.value'));\n            this.get('errorMessage').flushMessageQueues();\n            localStorage.setItem('currentUser', userName);\n            const userDash = localStorage.getItem('userDash');\n\n            if (!userDash) {\n              localStorage.setItem('userDash', `${userName}*null`);\n              localStorage.setItem('lastDashboardId', null);\n            } else {\n              const arr = userDash.split(',');\n\n              const user = _lodash.default.find(arr, users => {\n                return users.split('*')[0] === userName;\n              });\n\n              if (!user) {\n                arr.push(`${userName}*null`);\n                localStorage.setItem('userDash', arr);\n                localStorage.setItem('lastDashboardId', null);\n              } else {\n                localStorage.setItem('lastDashboardId', user.split('*')[1]);\n              }\n            }\n\n            this.transitionTo('index');\n          });\n        }).catch(e => {\n          let message;\n\n          switch (e.message) {\n            case 'Unauthorized':\n              message = 'Username or password is not correct.';\n              break;\n\n            case 'Disabled':\n              message = 'Your account is disabled. Please contact your system administrator.';\n              break;\n\n            default:\n              message = '';\n          }\n\n          if (Ember.isPresent(message)) {\n            return this.set('controller.data.errors', [message]);\n          }\n\n          throw e;\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/login/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"7Bzzwb8D\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"id\\\",\\\"login-template\\\"],[9],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"h1\\\"],[9],[0,\\\"\\\\n    Sign In\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[1,[27,\\\"login-form\\\",null,[[\\\"errors\\\",\\\"onSubmit\\\"],[[27,\\\"readonly\\\",[[23,[\\\"errors\\\"]]],null],[27,\\\"route-action\\\",[\\\"login\\\"],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/login/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/maximized/controller\", [\"exports\", \"adept-iq/config/widget-types\"], function (_exports, _widgetTypes) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Controller.extend({\n    maximizer: Ember.inject.service(),\n    widgetTypesHash: _widgetTypes.widgetTypesHash,\n    widget: Ember.computed.alias('maximizer.maximizedWidget')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/maximized/route\", [\"exports\", \"ember-simple-auth/mixins/authenticated-route-mixin\"], function (_exports, _authenticatedRouteMixin) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Route.extend(_authenticatedRouteMixin.default, {\n    maximizer: Ember.inject.service(),\n    actions: {\n      didTransition()\n      /* transition */\n      {\n        const widget = this.get('maximizer.maximizedWidget');\n\n        if (widget === null) {\n          this.transitionTo('index');\n        }\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/maximized/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"g3HXWyt3\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"class\\\",\\\"maximized-widget-content\\\"],[9],[0,\\\"\\\\n  \\\"],[1,[27,\\\"component\\\",[[27,\\\"get\\\",[[27,\\\"get\\\",[[23,[\\\"widgetTypesHash\\\"]],[23,[\\\"widget\\\",\\\"typeId\\\"]]],null],\\\"componentName\\\"],null]],[[\\\"widget\\\"],[[23,[\\\"widget\\\"]]]]],false],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/maximized/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/register/controller\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Controller.extend({\n    queryParams: ['invitationId'],\n\n    /*eslint-disable */\n    invitationId: undefined,\n    data: undefined,\n\n    /*eslint-enable */\n    invitation: Ember.computed.alias('data.invitation'),\n    errors: Ember.computed.alias('data.errors')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/register/route\", [\"exports\", \"fetch\", \"adept-iq/config/api-urls\"], function (_exports, _fetch, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Route.extend({\n    session: Ember.inject.service(),\n\n    model({\n      invitationId\n    }) {\n      if (Ember.isBlank(invitationId)) return;\n      return this.store.findRecord('invitation', invitationId).catch(e => {\n        if (e.errors.firstObject.status !== '404') throw e;\n      });\n    },\n\n    setupController(controller, model) {\n      controller.set('data', {\n        invitation: model\n      });\n    },\n\n    makeRequest(url, options) {\n      return new Ember.RSVP.Promise((resolve, reject) => {\n        (0, _fetch.default)(url, options).then(response => {\n          response.json().then(body => {\n            if (!response.ok) {\n              reject(body);\n            } else {\n              resolve(body);\n            }\n          });\n        }).catch(reject);\n      });\n    },\n\n    actions: {\n      register(userName, password) {\n        const {\n          host\n        } = _apiUrls.API.ssoService;\n        const url = host + '/signup';\n        const data = {\n          userName,\n          password,\n          displayName: userName\n        };\n        const options = {\n          method: 'POST',\n          headers: {\n            'Content-Type': 'application/json'\n          },\n          body: JSON.stringify(data)\n        };\n        this.makeRequest(url, options).then(tokenPayload => {\n          const session = this.get('session');\n          const authenticator = 'authenticator:sso';\n          session.authenticate(authenticator, userName, password, tokenPayload).then(() => {\n            this.transitionTo('index');\n          });\n        }).catch(e => {\n          this.set('controller.data.errors', [e.message]);\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/register/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"Gliyhbfg\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"id\\\",\\\"register-template\\\"],[9],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"h1\\\"],[9],[0,\\\"\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"invitation\\\",\\\"isAdmin\\\"]]],null,{\\\"statements\\\":[[0,\\\"      Create Admin Account\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"      Register\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"  \\\"],[10],[0,\\\"\\\\n\\\\n\\\"],[4,\\\"if\\\",[[23,[\\\"invitation\\\"]]],null,{\\\"statements\\\":[[0,\\\"    \\\"],[1,[27,\\\"register-form\\\",null,[[\\\"invitation\\\",\\\"errors\\\",\\\"onSubmit\\\"],[[27,\\\"readonly\\\",[[23,[\\\"invitation\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"errors\\\"]]],null],[27,\\\"route-action\\\",[\\\"register\\\"],null]]]],false],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]},{\\\"statements\\\":[[0,\\\"    \\\"],[7,\\\"div\\\"],[9],[0,\\\"\\\\n      \\\"],[7,\\\"p\\\"],[9],[0,\\\"An invite code is required to use IQUX.\\\"],[10],[0,\\\"\\\\n      \\\"],[7,\\\"p\\\"],[9],[0,\\\"Please check your inbox or contact your system adminstrator for support.\\\"],[10],[0,\\\"\\\\n    \\\"],[10],[0,\\\"\\\\n\\\"]],\\\"parameters\\\":[]}],[0,\\\"\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/register/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/reset-password/controller\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Controller.extend({\n    errors: Ember.computed.alias('data.errors'),\n    success: Ember.computed.alias('data.success')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/reset-password/route\", [\"exports\", \"adept-iq/config/api-urls\"], function (_exports, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Route.extend({\n    session: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    queryParams: {\n      email: {},\n      token: {}\n    },\n\n    setupController(controller) {\n      // can we pass in the user's email ?\n      controller.set('data', {});\n    },\n\n    actions: {\n      reset(newPassword) {\n        const ajax = this.get('ajax');\n        const data = {\n          email: this.get('controller.email'),\n          passwordResetToken: this.get('controller.token'),\n          newPassword: newPassword\n        };\n        const message = 'Reset Password Failed';\n        const successMessage = 'Reset Password Successful';\n        return ajax.request(_apiUrls.API.ssoService.host + '/reset-password', {\n          dataType: 'text',\n          contentType: 'application/json',\n          method: 'POST',\n          data: data\n        }).then(() => {\n          /*eslint-disable */\n          this.set('controller.data.errors', undefined);\n          /*eslint-enable */\n\n          return this.set('controller.data.success', successMessage);\n        }).catch(e => {\n          /*eslint-disable */\n          console.log(e);\n          this.set('controller.data.success', undefined);\n          /*eslint-enable */\n\n          return this.set('controller.data.errors', [message]);\n        });\n      }\n\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/pods/reset-password/template\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.HTMLBars.template({\n    \"id\": \"xYliN0HW\",\n    \"block\": \"{\\\"symbols\\\":[],\\\"statements\\\":[[7,\\\"div\\\"],[11,\\\"id\\\",\\\"reset-password-template\\\"],[9],[0,\\\"\\\\n\\\\n  \\\"],[7,\\\"h3\\\"],[9],[0,\\\"\\\\n    Reset Password\\\\n  \\\"],[10],[0,\\\"\\\\n\\\\n  \\\"],[1,[27,\\\"reset-form\\\",null,[[\\\"errors\\\",\\\"success\\\",\\\"onSubmit\\\"],[[27,\\\"readonly\\\",[[23,[\\\"errors\\\"]]],null],[27,\\\"readonly\\\",[[23,[\\\"success\\\"]]],null],[27,\\\"route-action\\\",[\\\"reset\\\"],null]]]],false],[0,\\\"\\\\n\\\\n\\\"],[10],[0,\\\"\\\\n\\\"]],\\\"hasEval\\\":false}\",\n    \"meta\": {\n      \"moduleName\": \"adept-iq/pods/reset-password/template.hbs\"\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/resolver\", [\"exports\", \"ember-resolver\"], function (_exports, _emberResolver) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _emberResolver.default;\n  _exports.default = _default;\n});","define(\"adept-iq/router\", [\"exports\", \"adept-iq/config/environment\"], function (_exports, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const Router = Ember.Router.extend({\n    location: _environment.default.locationType,\n    rootURL: _environment.default.rootURL\n  });\n  Router.map(function () {\n    this.route('register');\n    this.route('login');\n    this.route('forgot-password');\n    this.route('reset-password');\n    this.route('dashboard', {\n      path: '/dashboard/:id'\n    }, function () {\n      this.route('modals', function () {\n        this.route('edit-form');\n      });\n    });\n    this.route('maximized');\n    this.route('index', {\n      path: '/'\n    }, function () {\n      this.route('modals', function () {\n        this.route('create-dashboard');\n        this.route('settings');\n      });\n    });\n    this.route('terms-of-service');\n  });\n  var _default = Router;\n  _exports.default = _default;\n});","define(\"adept-iq/routes/application\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    Route\n  } = Ember; // Ensure the application route exists for ember-simple-auth's `setup-session-restoration` initializer\n\n  var _default = Route.extend();\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/-avlm-avlmService\", [\"exports\", \"adept-iq/serializers/application\"], function (_exports, _application) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    modelPrefix: 'avlm'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/-cs-configService\", [\"exports\", \"adept-iq/serializers/application\"], function (_exports, _application) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    modelPrefix: 'cs'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/-dispatch\", [\"exports\", \"ember-data\", \"ember-inflector\"], function (_exports, _emberData, _emberInflector) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    JSONAPISerializer\n  } = _emberData.default;\n\n  var _default = JSONAPISerializer.extend({\n    keyForAttribute(key) {\n      return key;\n    },\n\n    keyForRelationship(key) {\n      return key;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/-ss-schedulingService\", [\"exports\", \"adept-iq/serializers/application\"], function (_exports, _application) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    modelPrefix: 'ss'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/-sso-ssoService\", [\"exports\", \"adept-iq/serializers/application\"], function (_exports, _application) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    modelPrefix: 'sso'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/-tm-tripManagement\", [\"exports\", \"adept-iq/serializers/application\"], function (_exports, _application) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    modelPrefix: 'tm'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/POI\", [\"exports\", \"adept-iq/serializers/application\"], function (_exports, _application) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/account-fixed-price-trip\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/account\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/address-lookup\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    normalizeResponse: function (store, primaryModelClass, payload) {\n      console.log('normalizeResponse payload', payload);\n      const data = Ember.makeArray(payload.data);\n      console.log('normalizeResponse data ', data);\n\n      for (let i = 0; i < data.length; i++) {\n        data[i].type = 'address-lookup';\n      }\n\n      return payload;\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/address\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/agency-marker\", [\"exports\", \"ember-data\", \"tomtom\"], function (_exports, _emberData, _tomtom) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    JSONAPISerializer\n  } = _emberData.default;\n\n  var _default = JSONAPISerializer.extend({\n    keyForAttribute: function (attr) {\n      return attr;\n    },\n\n    keyForRelationship(key) {\n      return key;\n    },\n\n    serialize(snapshot, options = {}) {\n      options.includeId = true;\n\n      const json = this._super(snapshot, options);\n\n      json.data.type = 'travelNeedType';\n      return json;\n    },\n\n    normalizeResponse: function (store, primaryModelClass, payload) {\n      const data = Ember.makeArray(payload.data);\n      const new_data = data.map(m => {\n        const new_icon = _tomtom.default.L.svgIcon({\n          icon: m.attributes.options.icon\n        });\n\n        m.attributes.options.icon = new_icon;\n        return m;\n      });\n      payload.data = new_data;\n      return payload;\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/application\", [\"exports\", \"ember-data\", \"ember-inflector\"], function (_exports, _emberData, _emberInflector) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    JSONAPISerializer\n  } = _emberData.default;\n\n  var _default = JSONAPISerializer.extend({\n    modelPrefix: '',\n\n    keyForAttribute(key) {\n      return key;\n    },\n\n    keyForRelationship(key) {\n      return key;\n    },\n\n    // deprecated; will change to `payloadTypeFromModelName`\n    payloadKeyFromModelName(modelName) {\n      const modelPrefix = this.get('modelPrefix');\n      let currModelName = modelName;\n\n      if (Ember.isPresent(modelPrefix) && currModelName.startsWith(`${modelPrefix}-`)) {\n        currModelName = currModelName.slice(modelPrefix.length + 1);\n      }\n\n      return Ember.String.camelize(currModelName);\n    },\n\n    // deprecated; will change to `modelNameFromPayloadType`\n    modelNameFromPayloadKey(key) {\n      const modelPrefix = this.get('modelPrefix');\n      let modelName = Ember.String.dasherize((0, _emberInflector.singularize)(key));\n\n      if (Ember.isPresent(modelPrefix) && !modelName.startsWith(`${modelPrefix}-`)) {\n        modelName = `${modelPrefix}-${modelName}`;\n      }\n\n      return modelName;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/avl\", [\"exports\", \"adept-iq/serializers/application\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _application, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    iqModelName: 'vehicle',\n    iqModelForeignKey: 'vehicleId',\n    iqModelRelationship: 'iqVehicle'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/avlm-driver\", [\"exports\", \"adept-iq/serializers/-avlm-avlmService\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _avlmAvlmService, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _avlmAvlmService.default.extend({\n    iqModelName: 'iq-driver',\n    iqModelForeignKey: 'schedulingDriverId',\n    // doesn't currently exist\n    iqModelRelationship: 'iqDriver'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/avlm-route-exec-event\", [\"exports\", \"adept-iq/serializers/-avlm-avlmService\"], function (_exports, _avlmAvlmService) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _avlmAvlmService.default.extend({\n    normalize(modelClass, resourceHash) {\n      let normalized = this._super(...arguments);\n\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/avlm-route\", [\"exports\", \"adept-iq/serializers/-avlm-avlmService\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _avlmAvlmService, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _avlmAvlmService.default.extend({\n    iqModelName: 'iq-route',\n    iqModelForeignKey: 'id',\n    // avlm route IDs are the same as dispatch\n    iqModelRelationship: 'iqRoute'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/avlm-vehicle\", [\"exports\", \"adept-iq/serializers/-avlm-avlmService\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _avlmAvlmService, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _avlmAvlmService.default.extend({\n    iqModelName: 'vehicle',\n    iqModelForeignKey: 'schedulingVehicleId',\n    // doesn't currently exist\n    iqModelRelationship: 'iqVehicle'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/booking\", [\"exports\", \"adept-iq/serializers/-dispatch\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _dispatch, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({\n    iqModelName: 'trip',\n    iqModelForeignKey: 'id',\n    iqModelRelationship: 'iqTrip'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/break-type\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/call-line\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/cord\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/cs-config-item\", [\"exports\", \"adept-iq/serializers/-cs-configService\"], function (_exports, _csConfigService) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const JSON_REGEX = /^\\s*[{[]/;\n  const OPTIONAL_ATTRS = ['description', 'unit', 'type'];\n  const CATEGORY_DELIMITER = '-';\n  const BOOLEAN_TYPE = 'Boolean';\n  const TRUE_STRING = 'Yes';\n  const FALSE_STRING = 'No';\n  const logger = {\n    warn: console.warn // eslint-disable-line no-console\n\n  };\n\n  var _default = _csConfigService.default.extend({\n    attrs: {\n      // do not list `type` or `value` here; these are need in `serialize()`\n      category: {\n        serialize: false\n      },\n      configCategory: {\n        serialize: false\n      }\n    },\n\n    serialize()\n    /* snapshot, options */\n    {\n      let serialized = this._super(...arguments);\n\n      OPTIONAL_ATTRS.forEach(attr => {\n        if (Ember.isEmpty(serialized.data.attributes[attr])) {\n          delete serialized.data.attributes[attr];\n        }\n      });\n      let {\n        type,\n        value\n      } = serialized.data.attributes;\n\n      if (type === BOOLEAN_TYPE) {\n        serialized.data.attributes.value = value ? TRUE_STRING : FALSE_STRING;\n      } else if (Ember.typeOf(value) !== 'string') {\n        // values must always be strings\n        serialized.data.attributes.value = JSON.stringify(value);\n      } // don't need this anymore\n\n\n      delete serialized.data.attributes.type; // API doesn't accept relationships hash at all\n\n      delete serialized.data.relationships;\n      return serialized;\n    },\n\n    normalizeArrayResponse()\n    /* store, primaryModelClass, payload, id, requestType */\n    {\n      let normalized = this._super(...arguments);\n\n      normalized.included = normalized.included || [];\n      normalized.data.forEach(itemPayload => {\n        let categoryPayloads = this._buildCategoryPayloads(itemPayload); // only add new payloads\n\n\n        categoryPayloads.forEach(categoryPayload => {\n          if (normalized.included.findBy('id', categoryPayload.id)) return;\n          normalized.included.push(categoryPayload);\n        });\n        itemPayload.relationships = itemPayload.relationships || {};\n        itemPayload.relationships.configCategory = {\n          data: {\n            id: categoryPayloads[categoryPayloads.length - 1].id,\n            type: 'cs-config-category'\n          }\n        };\n      });\n      return normalized;\n    },\n\n    normalizeSingleResponse()\n    /* store, primaryModelClass, payload, id, requestType */\n    {\n      let normalized = this._super(...arguments);\n\n      normalized.included = normalized.included || [];\n\n      let categoryPayloads = this._buildCategoryPayloads(normalized.data); // only add new payloads\n\n\n      categoryPayloads.forEach(categoryPayload => {\n        if (normalized.included.findBy('id', categoryPayload.id)) return;\n        normalized.included.push(categoryPayload);\n      });\n      normalized.data.relationships = normalized.data.relationships || {};\n      normalized.data.relationships.configCategory = {\n        data: {\n          id: categoryPayloads[categoryPayloads.length - 1].id,\n          type: 'cs-config-category'\n        }\n      };\n      return normalized;\n    },\n\n    normalize() {\n      let normalized = this._super(...arguments); // extract category and name from id\n\n\n      let {\n        id\n      } = normalized.data;\n      let segments = id.split('/');\n      let name = segments[segments.length - 1];\n      let category = segments.slice(0, segments.length - 1).join('/');\n      normalized.data.attributes.name = name;\n      normalized.data.attributes.category = category;\n      let {\n        type,\n        value\n      } = normalized.data.attributes;\n\n      if (Ember.typeOf(value) === 'string' && JSON_REGEX.test(value)) {\n        try {\n          normalized.data.attributes.value = JSON.parse(value);\n        } catch (err) {\n          logger.warn(`failed to parse JSON-like value`, value);\n        }\n      } // booleans are encoded as \"Yes\" or \"No\"\n\n\n      if (type === BOOLEAN_TYPE) {\n        normalized.data.attributes.value = value === TRUE_STRING;\n      }\n\n      return normalized;\n    },\n\n    _buildCategoryPayloads(payload) {\n      let segments = payload.attributes.category.split(CATEGORY_DELIMITER);\n      return segments.map((segment, i) => {\n        let payload = {\n          id: segments.slice(0, i + 1).join(CATEGORY_DELIMITER),\n          type: 'cs-config-category',\n          attributes: {\n            name: segment,\n            depth: i\n          },\n          relationships: {}\n        };\n\n        if (i > 0) {\n          payload.relationships.parent = {\n            data: {\n              id: segments.slice(0, i).join(CATEGORY_DELIMITER),\n              type: 'cs-config-category'\n            }\n          };\n        }\n\n        return payload;\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/cs-config-permission\", [\"exports\", \"adept-iq/serializers/-ss-schedulingService\"], function (_exports, _ssSchedulingService) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _ssSchedulingService.default.extend({\n    attrs: {},\n\n    serialize()\n    /* snapshot, options */\n    {\n      let json = this._super(...arguments);\n\n      return json;\n    },\n\n    normalizeResponse: function (store, primaryModelClass, payload) {\n      let configPermissions = [];\n      payload.map(configItem => {\n        let data = {\n          attributes: {\n            value: configItem.get('value')\n          },\n          id: configItem.id,\n          type: 'cs-config-permission'\n        };\n        data.attributes.name = configItem.name;\n        configPermissions.push(data);\n      });\n      return {\n        data: configPermissions\n      };\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/dashboard\", [\"exports\", \"adept-iq/serializers/application\"], function (_exports, _application) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _application.default.extend({\n    normalize(modelClass, resourceHash) {\n      if (!resourceHash.attributes.category) {\n        resourceHash.attributes.category = this._extractCategory(resourceHash.id);\n      }\n\n      return this._super(modelClass, resourceHash);\n    },\n\n    _extractCategory(id) {\n      return id.split('/')[0];\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/driver-break\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({\n    attrs: {\n      driverbreakId: {\n        serialize: false\n      },\n      actualArrivalTime: {\n        serialize: false\n      },\n      actualDepartTime: {\n        serialize: false\n      },\n      odometer: {\n        serialize: false\n      },\n      plannedDepartTime: {\n        serialize: false\n      },\n      serviceWindow: {\n        serialize: false\n      },\n      breakStartTime: {\n        serialize: false\n      },\n      breakEndTime: {\n        serialize: false\n      },\n      BreakType: {\n        serialize: false\n      },\n      BreakCategory: {\n        serialize: false\n      },\n      driverBreakId: {\n        serialize: false\n      },\n      promisedEnd: {\n        serialize: false\n      }\n    },\n\n    normalizeResponse(store, primaryModelClass, payload, id, requestType) {\n      // this is because of inconsistensies in api\n      // returns an array instead of an object after a POST\n      if (requestType === 'createRecord' && Ember.typeOf(payload.data) === 'array') {\n        if (payload.data.length === 1) {\n          payload.data = payload.data[0];\n        }\n      }\n\n      return this._super(...arguments);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/driver-shift\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({\n    normalizeResponse(store, primaryModelClass, payload, id, requestType) {\n      // this is because of inconsistensies in api\n      // returns an array instead of an object after a POST\n      if (requestType === 'createRecord' && Ember.typeOf(payload.data) === 'array') {\n        if (payload.data.length === 1) {\n          payload.data = payload.data[0];\n        }\n      }\n\n      return this._super(...arguments);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/driver\", [\"exports\", \"adept-iq/serializers/-dispatch\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _dispatch, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend(_iqModelIdentification.default, {\n    iqModelName: 'iq-driver',\n    iqModelForeignKey: 'id',\n    iqModelRelationship: 'iqDriver'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/eligibility-type\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({\n    normalizeResponse: function (store, primaryModelClass, payload) {\n      let eligibilityTypes = [];\n      payload.map(configItem => {\n        let data = {\n          attributes: {\n            name: configItem.name\n          },\n          id: configItem.name,\n          type: 'eligibility-type'\n        };\n        eligibilityTypes.push(data);\n      });\n      return {\n        data: eligibilityTypes\n      };\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/fare-type\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/favorite-pickup\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/favorite-trip\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/fixed-price-trip\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/iq-driver\", [], function () {\n  \"use strict\";\n});","define(\"adept-iq/serializers/iq-stop\", [], function () {\n  \"use strict\";\n});","define(\"adept-iq/serializers/iq-trip\", [], function () {\n  \"use strict\";\n});","define(\"adept-iq/serializers/iq-vehicle\", [], function () {\n  \"use strict\";\n});","define(\"adept-iq/serializers/leg-travel-need\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/leg\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/location\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/passenger-type\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/place\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/rider-eligibility\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/rider-info\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    JSONAPISerializer\n  } = _emberData.default;\n\n  var _default = JSONAPISerializer.extend({\n    keyForAttribute: function (attr) {\n      return attr;\n    },\n\n    keyForRelationship(key) {\n      return key;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/rider-travel-need-info\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    JSONAPISerializer\n  } = _emberData.default;\n\n  var _default = JSONAPISerializer.extend({\n    keyForAttribute: function (attr) {\n      return attr;\n    },\n\n    keyForRelationship(key) {\n      return key;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/rider-travel-need\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({\n    normalize(modelClass, resourceHash) {\n      let normalized = this._super(modelClass, resourceHash);\n\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/rider\", [\"exports\", \"adept-iq/serializers/-dispatch\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _dispatch, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend(_iqModelIdentification.default, {\n    iqModelName: 'iq-rider',\n    iqModelForeignKey: 'id',\n    iqModelRelationship: 'iqRider'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/route-place\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/route\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/schedule\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/segment\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/service-window\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/ss-service-window\", [\"exports\", \"adept-iq/serializers/-ss-schedulingService\"], function (_exports, _ssSchedulingService) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _ssSchedulingService.default;\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/sso-role\", [\"exports\", \"adept-iq/serializers/-sso-ssoService\"], function (_exports, _ssoSsoService) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _ssoSsoService.default.extend({\n    serialize(snapshot, options = {}) {\n      options.includeId = true;\n\n      const json = this._super(snapshot, options);\n\n      json.data.type = 'role';\n      return json;\n    },\n\n    normalizeResponse: function (store, primaryModelClass, payload) {\n      let currentPayload = {\n        data: []\n      };\n      const data = payload.length ? payload : [payload];\n\n      for (let i = 0; i < data.length; i++) {\n        currentPayload.data.push({\n          id: data[i].roleName,\n          type: 'sso-role',\n          attributes: data[i]\n        });\n      }\n\n      return currentPayload;\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/sso-user\", [\"exports\", \"adept-iq/serializers/-sso-ssoService\", \"lodash\"], function (_exports, _ssoSsoService, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _ssoSsoService.default.extend({\n    serialize(snapshot, options = {}) {\n      options.includeId = true;\n\n      const json = this._super(snapshot, options);\n\n      let roles = _lodash.default.map(json.data.attributes.roleNames, role => {\n        return role.roleName;\n      });\n\n      return {\n        displayName: json.data.attributes.displayName,\n        email: json.data.attributes.email,\n        status: json.data.attributes.status,\n        roles: roles\n      };\n    },\n\n    normalizeResponse(store, primaryModelClass, payload, id, requestType) {\n      // sso endpoint is not JSON-API compliant\n      if (Ember.isArray(payload)) {\n        payload = {\n          data: payload\n        };\n      } else if (!payload.hasOwnProperty('jsonapi')) {\n        // single record returns as a POJO for editing a user's status or role\n        const userPayload = {\n          data: {\n            attributes: {\n              email: payload.email,\n              firstName: payload.firstName,\n              lastName: payload.lastName,\n              status: payload.status,\n              roleNames: []\n            },\n            type: 'sso-user',\n            id: ''\n          }\n        };\n\n        const roles = _lodash.default.map(payload.UserRoleRoles, role => {\n          return {\n            roleName: role.roleName,\n            displayName: role.displayName\n          };\n        });\n\n        userPayload.data.attributes.roleNames = roles;\n        userPayload.data.id = payload.userId;\n        payload = userPayload;\n      }\n\n      return this._super(store, primaryModelClass, payload, id, requestType);\n    },\n\n    normalize(modelClass, resourceHash) {\n      // reconciles difference between streaming API and app model\n      let {\n        roleNames\n      } = resourceHash.attributes;\n\n      if (roleNames) {\n        resourceHash.attributes.roleNames = roleNames.map(item => {\n          if (typeof item === 'object') return item;\n          return {\n            roleName: item.toString(),\n            displayName: Ember.String.capitalize(item.toString())\n          };\n        });\n      }\n\n      return this._super(...arguments);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/stand\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/stop\", [\"exports\", \"adept-iq/serializers/-dispatch\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _dispatch, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend(_iqModelIdentification.default, {\n    iqModelName: 'iq-stop',\n    iqModelForeignKey: 'id',\n    iqModelRelationship: 'iqStop'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/subscription-exclusion\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/subscription-recurrence-pattern\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({\n    attrs: {\n      everyweekday: {\n        serialize: false\n      },\n      pattern: {\n        serialize: false\n      },\n      recurring: {\n        serialize: false\n      },\n      dailyConfig: {\n        serialize: false\n      }\n    },\n\n    serialize()\n    /* snapshot, options */\n    {\n      let json = this._super(...arguments);\n\n      return json;\n    },\n\n    normalize(modelClass, resourceHash) {\n      let normalized = this._super(modelClass, resourceHash);\n\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/subscription-travel-need\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({\n    serialize()\n    /* snapshot, options */\n    {\n      let json = this._super(...arguments);\n\n      if (!Ember.isNone(json.data.relationships)) {\n        if (!Ember.isNone(json.data.relationships.passengerType)) {\n          delete json.data.relationships.passengerType;\n        }\n      }\n\n      return json;\n    },\n\n    normalize(modelClass, resourceHash) {\n      let normalized = this._super(modelClass, resourceHash);\n\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/subscription\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({\n    normalize(modelClass, resourceHash) {\n      let normalized = this._super(modelClass, resourceHash);\n\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-activity-log\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    serialize()\n    /* snapshot, options */\n    {\n      let json = this._super(...arguments);\n\n      json.data.type = 'activity-log';\n      return json;\n    },\n\n    normalizeResponse: function (store, primaryModelClass, payload) {\n      const data = Ember.makeArray(payload.data);\n\n      for (let i = 0; i < data.length; i++) {\n        data[i].type = 'tm-activity-log';\n      }\n\n      return payload;\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-address\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    normalize(modelClass, resourceHash) {\n      let normalized = this._super(modelClass, resourceHash);\n\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-booking\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    serialize()\n    /* snapshot, options */\n    {\n      let json = this._super(...arguments);\n\n      console.log('booking json ', json);\n\n      try {\n        if (json.data.attributes.source.name) {\n          delete json.data.attributes.source.name;\n        }\n      } catch (e) {}\n\n      try {\n        if (json.data.attributes.source.operator) {\n          delete json.data.attributes.source.operator;\n        }\n      } catch (e) {}\n\n      try {\n        delete json.data.attributes.fixedAmount;\n      } catch (e) {//console.log(e);\n      }\n\n      try {\n        delete json.data.attributes.status;\n      } catch (e) {//console.log(e);\n      }\n\n      try {\n        delete json.data.attributes.dispatchType;\n      } catch (e) {//console.log(e);\n      }\n\n      try {\n        delete json.data.attributes.tripType;\n      } catch (e) {//console.log(e);\n      }\n\n      try {\n        delete json.data.attributes.routeExec;\n      } catch (e) {}\n\n      try {\n        json.data.attributes.stopPoints[0].address.formattedAddress = json.data.attributes.stopPoints[0].address.tomtomFormattedAddress.address.freeformAddress;\n        delete json.data.attributes.stopPoints[0].address.tomtomFormattedAddress;\n      } catch (e) {//console.log(e);\n      }\n\n      try {\n        json.data.attributes.stopPoints[1].address.formattedAddress = json.data.attributes.stopPoints[1].address.tomtomFormattedAddress.address.freeformAddress;\n        delete json.data.attributes.stopPoints[1].address.tomtomFormattedAddress;\n      } catch (e) {//console.log(e);\n      }\n\n      try {\n        delete json.data.attributes.acctCardNr;\n      } catch (e) {}\n\n      try {\n        delete json.data.attributes.driverNotes;\n      } catch (e) {}\n\n      try {\n        delete json.data.attributes.operatorNotes;\n      } catch (e) {}\n\n      try {\n        json.data.attributes.price.payerIdentifier = json.data.attributes.account.attributes.account.accountId;\n\n        if (Ember.isBlank(json.data.attributes.price.passengerId)) {\n          delete json.data.attributes.price.passengerId;\n        }\n      } catch (e) {//console.log(e);\n      }\n\n      try {\n        json.data.attributes.prices[0].payerIdentifier = json.data.attributes.account.attributes.account.accountId;\n        delete json.data.attributes.prices[0].passengerId;\n      } catch (e) {//console.log(e);\n      }\n\n      try {\n        delete json.data.attributes.account;\n      } catch (e) {}\n\n      try {\n        delete json.data.attributes.manualAttributes;\n      } catch (e) {} //If no data to save than Delete object\n      // Remove helper data\n\n\n      try {\n        if (Ember.isBlank(json.data.attributes.passengers[0].phone1.number)) {\n          delete json.data.attributes.passengers[0].phone1;\n        }\n      } catch (ex) {}\n      /* try {\n          delete json.data.attributes.passengers[0].callout;\n        } catch (e) {\n         }*/\n\n\n      try {\n        if (Ember.isBlank(json.data.attributes.passengers[0].phone2.number)) {\n          delete json.data.attributes.passengers[0].phone2;\n        }\n      } catch (ex) {}\n\n      try {\n        delete json.data.attributes.stopPoints[0].address.coord.geoNode;\n        delete json.data.attributes.stopPoints[1].address.coord.geoNode;\n      } catch (ex) {}\n\n      try {\n        delete json.data.attributes.stopPoints[0].address.geoNode;\n        delete json.data.attributes.stopPoints[1].address.geoNode; //TODO - for Booking to Taxibook (Temporary)\n\n        delete json.data.attributes.stopPoints[1].passengerEvents[0].time;\n        /*if(isBlank(json.data.attributes.stopPoints[1].address.formattedAddress)) {\n          delete json.data.attributes.stopPoints[1];\n        }*/\n      } catch (ex) {}\n\n      try {\n        delete json.data.attributes.subscriptions;\n      } catch (e) {}\n\n      try {\n        delete json.data.attributes.editmodelcontext;\n      } catch (ex) {}\n\n      return json;\n    },\n\n    normalizeResponse: function (store, primaryModelClass, payload) {\n      console.log('normalizeResponse payload', payload);\n      const data = Ember.makeArray(payload.data);\n      console.log('normalizeResponse data ', data);\n\n      for (let i = 0; i < data.length; i++) {\n        data[i].type = 'tm-booking';\n      }\n\n      return payload;\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-canned-message-template\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    normalize(modelClass, resourceHash) {\n      let normalized = this._super(modelClass, resourceHash);\n\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-canned-message\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    // this payload includes a non-JSON-API-compliant driver relationship\n    // with `endPointType` metadata; this restructures the payload to have\n    // a bona-fide relationship and moves the metadata to an attribute\n    normalizeResponse(store, primaryModelClass, payload, id, requestType) {\n      payload.data.forEach(data => {\n        // TODO: normalize vehicle and route relationships when they are supported\n        this.normalizeDriver(data);\n      });\n      return this._super(store, primaryModelClass, payload, id, requestType);\n    },\n\n    normalizeDriver(data) {\n      // remove non-JSON-API compliant driver object\n      let {\n        driver\n      } = data.attributes;\n      delete data.attributes.driver;\n      let driverId = driver.id;\n      delete driver.id;\n      let driverEndPointType = driver.endPointType;\n      delete driver.endPointType; // normalize as attributes\n\n      data.attributes.driverId = driverId;\n      data.attributes.driverEndPointType = driverEndPointType;\n      data.relationships = data.relationships || {}; // and a bona-fide Ember-Data relationship\n\n      data.relationships.driver = {\n        data: {\n          id: driverId,\n          type: 'driver'\n        }\n      };\n    },\n\n    serialize(snapshot, options) {\n      let serialized = this._super(snapshot, options);\n\n      let {\n        attributes,\n        relationships\n      } = serialized.data; // rebuild non-JSON-API compliant driver object\n\n      let {\n        driverEndPointType\n      } = attributes;\n      delete attributes.driverEndPointType;\n      let {\n        driverId\n      } = attributes;\n      delete attributes.driverId;\n\n      if (relationships) {\n        delete relationships.driver;\n      }\n\n      attributes.driver = {\n        id: driverId,\n        endPointType: driverEndPointType\n      }; // TODO: serialize vehicle and route relationships when they are supported\n\n      return serialized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-common-operational-attribute\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    normalize(modelClass, resourceHash) {\n      let normalized = this._super(modelClass, resourceHash);\n\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-config-parameter-value\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    normalize(modelClass, resourceHash) {\n      let normalized = this._super(modelClass, resourceHash);\n\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-driver\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _tmTripManagement, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    iqModelName: 'iq-driver',\n    iqModelForeignKey: 'badgeNr',\n    iqModelRelationship: 'iqDriver',\n    // TODO: change to 'belongsTo' when data is fixed\n    iqModelRelationshipType: 'hasMany'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-passenger\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    normalizeResponse: function (store, primaryModelClass, payload) {\n      const data = Ember.makeArray(payload.data);\n\n      for (let i = 0; i < data.length; i++) {\n        data[i].type = 'tm-passenger';\n      }\n\n      return payload;\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-requested-provider\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    normalizeResponse: function (store, primaryModelClass, payload) {\n      const data = Ember.makeArray(payload.data);\n\n      for (let i = 0; i < data.length; i++) {\n        data[i].type = 'tm-requested-provider';\n      }\n\n      return payload;\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-rider-profile\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    serialize()\n    /* snapshot, options */\n    {\n      let json = this._super(...arguments);\n\n      json.data.type = 'rider-profile';\n\n      try {\n        delete json.data.attributes.favoriteTrips[0].price;\n        delete json.data.attributes.favoriteTrips[0].customerReference;\n      } catch (e) {//console.log(e);\n      }\n\n      return json;\n    },\n\n    normalize(modelClass, resourceHash) {\n      let normalized = this._super(modelClass, resourceHash);\n\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-rider\", [], function () {\n  \"use strict\";\n});","define(\"adept-iq/serializers/tm-route-exec\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    normalize(modelClass, resourceHash) {\n      let normalized = this._super(modelClass, resourceHash);\n\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-stop-point\", [], function () {\n  \"use strict\";\n});","define(\"adept-iq/serializers/tm-subscription\", [], function () {\n  \"use strict\";\n});","define(\"adept-iq/serializers/tm-text-message\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    serialize()\n    /* snapshot, options */\n    {\n      let json = this._super(...arguments);\n\n      console.log('booking json ', json);\n\n      try {\n        delete json.data.attributes.driver;\n      } catch (e) {}\n\n      try {\n        delete json.data.attributes.vehicle;\n      } catch (e) {}\n\n      try {\n        delete json.data.attributes.vehicleId;\n      } catch (e) {}\n\n      return json;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/tm-tip\", [\"exports\", \"adept-iq/serializers/-tm-tripManagement\"], function (_exports, _tmTripManagement) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _tmTripManagement.default.extend({\n    normalize(modelClass, resourceHash) {\n      let normalized = this._super(modelClass, resourceHash);\n\n      return normalized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/travel-need-type\", [], function () {\n  \"use strict\";\n});","define(\"adept-iq/serializers/trip-exec-event\", [\"exports\", \"adept-iq/serializers/-dispatch\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _dispatch, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend(_iqModelIdentification.default, {\n    iqModelName: 'iq-trip',\n    iqModelForeignKey: 'id',\n    iqModelRelationship: 'iqTrip'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/trip\", [\"exports\", \"adept-iq/serializers/-dispatch\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _dispatch, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend(_iqModelIdentification.default, {\n    iqModelName: 'iq-trip',\n    iqModelForeignKey: 'id',\n    iqModelRelationship: 'iqTrip',\n    attrs: {\n      requestedTime: 'requestTime'\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/vehicle-route\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({});\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/vehicle-state\", [\"exports\", \"adept-iq/serializers/-dispatch\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _dispatch, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend(_iqModelIdentification.default, {\n    iqModelName: 'iq-vehicle',\n    iqModelForeignKey: 'id',\n    iqModelRelationship: 'iqVehicle'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/vehicle-type\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _dispatch.default;\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/vehicle\", [\"exports\", \"adept-iq/serializers/-dispatch\", \"adept-iq/mixins/iq-model-identification\"], function (_exports, _dispatch, _iqModelIdentification) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend(_iqModelIdentification.default, {\n    iqModelName: 'iq-vehicle',\n    iqModelForeignKey: 'id',\n    iqModelRelationship: 'iqVehicle'\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/serializers/zone\", [\"exports\", \"adept-iq/serializers/-dispatch\"], function (_exports, _dispatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _dispatch.default.extend({\n    attrs: {\n      name: 'zoneName'\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/-in-viewport\", [\"exports\", \"ember-in-viewport/services/-in-viewport\"], function (_exports, _inViewport) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _inViewport.default;\n    }\n  });\n});","define(\"adept-iq/services/active-context\", [\"exports\", \"adept-iq/config/environment\", \"adept-iq/config/filter-types\", \"adept-iq/config/server-relationships\", \"adept-iq/utils/graph\", \"adept-iq/utils/rql\", \"adept-iq/utils/sorts\", \"adept-iq/utils/populate-trip-search-data\", \"lodash\", \"adept-iq/config/active-context-graph\", \"adept-iq/utils/local-traversal\", \"adept-iq/utils/filters\"], function (_exports, _environment, _filterTypes, _serverRelationships, _graph, _rql, _sorts, _populateTripSearchData, _lodash, _activeContextGraph, _localTraversal, _filters) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  const flattenData = data => {\n    return Object.entries(data).reduce((arr, [modelName, records]) => {\n      records.forEach(record => {\n        arr.push({\n          modelName,\n          record\n        });\n      });\n      return arr;\n    }, []);\n  };\n\n  var _default = Ember.Service.extend(Ember.Evented, {\n    store: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    workspaceContext: Ember.inject.service(),\n    checkedItems: null,\n    refreshedModelNames: null,\n    refreshInProgress: false,\n    serverFilteringEnabled: false,\n    serverFilteringChecked: false,\n    serverLoadedRecord: null,\n    emptyImplicitHash: null,\n    clearCheckedItemsOnAction: false,\n    workspaceData: Ember.computed.alias('workspaceContext._structuredWorkspace'),\n    consumedModelNames: Ember.computed('workspace.dashboardInstance.widgets.[]', function () {\n      const widgets = this.get('workspace.dashboardInstance.widgets');\n\n      const widgetModels = _lodash.default.reduce(widgets, (acc, widget) => _lodash.default.union(acc, widget.get('models')), []);\n\n      return widgetModels;\n    }),\n    // structured data sets (grouped by model name)\n    structuredActiveData: Ember.computed('workspaceData', 'checkedItems.[]', function () {\n      const workspaceData = this.get('workspaceData');\n      const checkedItems = this.get('checkedItems');\n      return (0, _localTraversal.computeActiveContext)(workspaceData, checkedItems);\n    }),\n    structuredImplicitData: Ember.computed('workspaceData', 'checkedItems.[]', function () {\n      const workspaceData = this.get('workspaceData');\n      const checkedItems = this.get('checkedItems');\n      return (0, _localTraversal.computeImplicitContext)(workspaceData, checkedItems);\n    }),\n    // flattened data sets for easy binding & interation\n    activeData: Ember.computed('structuredActiveData', function () {\n      const structuredActiveData = this.get('structuredActiveData');\n      return flattenData(structuredActiveData);\n    }),\n    implicitData: Ember.computed('structuredImplicitData', function () {\n      const structuredImplicitData = this.get('structuredImplicitData');\n      return flattenData(structuredImplicitData);\n    }),\n    hashImplicitData: Ember.computed('structuredImplicitData', function () {\n      const structuredImplicitData = this.get('structuredImplicitData');\n      const hash = {};\n\n      _lodash.default.forOwn(structuredImplicitData, (value, key) => {\n        hash[key] = {};\n        value.forEach(v => {\n          const id = v.get('id');\n          hash[key][id] = true;\n        });\n      });\n\n      return hash;\n    }),\n    // map-context binds to this\n    implicitStops: Ember.computed('implicitData', function () {\n      const implicitData = Ember.makeArray(this.get('implicitData'));\n      return implicitData.filterBy('modelName', 'stop').mapBy('record');\n    }),\n    activeVehicles: Ember.computed('activeData', function () {\n      const activeData = Ember.makeArray(this.get('activeData'));\n      return activeData.filterBy('modelName', 'vehicle').mapBy('record');\n    }),\n    activeStops: Ember.computed('activeData', function () {\n      const activeData = Ember.makeArray(this.get('activeData'));\n      return activeData.filterBy('modelName', 'stop').mapBy('record');\n    }),\n    emergencyVehicles: Ember.computed('activeVehicles', function () {\n      const activeVehicles = this.get('activeVehicles'); // find all emergency vehicles that current have an emergency or approved emergency\n      // const emergencyVehicles = activeVehicles.filter((vehicle) => vehicle.isEmergencyVehicle || vehicle.approvedEmergency);\n\n      return activeVehicles;\n    }),\n\n    tripActiveContext() {\n      return this.get('checkedItems').some(record => {\n        return record.modelName === 'trip';\n      });\n    },\n\n    init() {\n      this._super(...arguments);\n\n      this.set('checkedItems', []);\n      this.set('refreshedModelNames', []);\n\n      this._onWorkspaceContextChange = modelNames => {\n        Ember.run.schedule('actions', this, 'onWorkspaceContextChange', modelNames);\n      };\n\n      const nodes = _activeContextGraph.activeContextNodes.reduce((acu, node) => {\n        acu[node.modelName] = {};\n        return acu;\n      }, {});\n\n      this.set('emptyImplicitHash', nodes);\n      this.get('workspaceContext').on('change', this._onWorkspaceContextChange);\n      this.set('activeContextNodes', _activeContextGraph.activeContextNodes); //this.set('activeContextNodesZone', activeContextNodesZone);\n\n      this.startRefreshQueue();\n    },\n\n    reset() {\n      this.set('checkedItems', []);\n    },\n\n    destroy() {\n      this.get('workspaceContext').off('change', this._onWorkspaceContextChange);\n\n      this._super(...arguments);\n    },\n\n    query(modelName, params = {}, extra = {}) {\n      if (_environment.default.APP.localFilteringEnabled) {\n        return Ember.RSVP.resolve(this.queryLocal(modelName, params, extra));\n      }\n\n      return Ember.RSVP.resolve(this.queryServer(modelName, params, extra));\n    },\n\n    queryLocal(modelName, params = {}, extra) {\n      let compareFn = (0, _sorts.buildCompareFunction)(params.sorts);\n      let filterFn = (0, _filters.buildFilterFunction)(params.filter);\n      let activeData = this.get('structuredActiveData');\n\n      if (!Ember.isEmpty(filterFn)) {\n        let filterData = activeData[modelName].filter(filterFn).sort(compareFn);\n\n        if ((!Ember.isPresent(filterData) || filterData.length === 0) && params.filter !== null) {\n          if (modelName === 'trip' && params.filter.local.path === \"id\" && !Ember.isBlank(params.filter.local.values[0])) {\n            //console.log('isnide server filtering');\n            this.set('serverFilteringEnabled', true);\n            return this.queryServer(modelName, params, extra);\n          } else {\n            return filterData;\n          }\n        } else {\n          return filterData;\n        }\n      } else {\n        return activeData[modelName];\n      }\n    },\n\n    // currently unused\n    queryServer(modelName, params = {}, extra = {}) {\n      if (modelName !== 'trip') {\n        let {\n          filter,\n          includes\n        } = this._buildActiveContextParams(modelName);\n\n        let extendedFilter = (0, _filters.buildCompoundFilterNode)('and', [filter, params.filter]);\n        let extendedIncludes = [];\n\n        if (!Ember.isEmpty(includes)) {\n          extendedIncludes.addObjects(includes);\n        }\n\n        if (!Ember.isEmpty(params.includes)) {\n          extendedIncludes.addObjects(params.includes);\n        }\n\n        let extendedParams = _lodash.default.merge({}, params, {\n          filter: extendedFilter,\n          includes: extendedIncludes\n        });\n\n        let queryParams = (0, _rql.buildQueryParams)(extendedParams);\n        queryParams = _lodash.default.merge({}, queryParams, extra);\n        return this.get('store').query(modelName, queryParams);\n      } else {\n        try {\n          return this.store.findRecord('tm-route-exec', params.filter.local.values[0], {\n            reload: true\n          }).then(updatetrip => this.prepareTripData(updatetrip));\n        } catch (e) {\n          //console.log('inside not found trip');\n          return [];\n        }\n      }\n    },\n\n    prepareTripData(updatetrip) {\n      let trip = (0, _populateTripSearchData.default)(updatetrip, this.get('store'), this);\n\n      if (!Ember.isEmpty(this.get('serverLoadedRecord'))) {\n        this.get('serverLoadedRecord').push(updatetrip.id);\n      } else {\n        this.set('serverLoadedRecord', []);\n        this.get('serverLoadedRecord').push(updatetrip.id);\n      }\n\n      return [trip];\n    },\n\n    refreshAll() {\n      // run(() => {\n      const modelNames = _activeContextGraph.activeContextNodes.mapBy('modelName');\n\n      this.refreshTableContent(modelNames); // });\n    },\n\n    // do not refresh if it is already on the list of\n    // refresh to do\n    addUniqueModelNamesRefresh(modelNames) {\n      const newModelNames = Ember.makeArray(modelNames); // remove any models that aren't actively being listened for\n\n      const consumedModels = this.get('consumedModelNames');\n\n      const filteredModelNames = _lodash.default.filter(newModelNames, model => consumedModels.includes(model));\n\n      const refreshedModelNames = this.get('refreshedModelNames');\n      filteredModelNames.forEach(modelName => {\n        if (!refreshedModelNames.includes(modelName)) {\n          refreshedModelNames.pushObject(modelName);\n        }\n      });\n    },\n\n    refreshTableContent(modelNames) {\n      this.addUniqueModelNamesRefresh(modelNames);\n      Ember.run.next(() => this.startRefreshQueue());\n    },\n\n    isRecordChecked(record) {\n      if (!Ember.isNone(record)) {\n        const checkedItems = this.get('checkedItems');\n        const modelName = record.constructor.modelName;\n        const modelId = record.get('id');\n        return checkedItems.any(item => {\n          return item.modelName === modelName && item.record.get('id') === modelId;\n        });\n      }\n\n      return false;\n    },\n\n    isMultiRecordsChecked(record) {\n      if (!Ember.isNone(record)) {\n        const checkedItems = this.get('checkedItems');\n        const modelName = record.constructor.modelName;\n        let numRecordsChecked = 0;\n        checkedItems.forEach(item => {\n          if (item.modelName === modelName) {\n            numRecordsChecked++;\n          }\n        });\n        return numRecordsChecked > 1;\n      }\n\n      return false;\n    },\n\n    clearCheckedItems() {\n      this.set('checkedItems', []);\n      this.refreshAll();\n    },\n\n    clearCheckItemsByModelName(modelName) {\n      let checkItemItemsData = this.get('checkedItems');\n      checkItemItemsData = checkItemItemsData.filter(function (obj) {\n        return obj.modelName !== modelName;\n      });\n      this.set('checkedItems', checkItemItemsData);\n      this.refreshAll();\n    },\n\n    setRecordsChecked(records, checked) {\n      const checkedItems = this.get('checkedItems').slice();\n      Ember.makeArray(records).forEach(record => {\n        const isChecked = this.isRecordChecked(record);\n\n        if (isChecked === checked) {\n          return;\n        }\n\n        if (checked) {\n          checkedItems.push({\n            modelName: record.constructor.modelName,\n            record\n          });\n        } else {\n          const item = checkedItems.findBy('record', record);\n          checkedItems.removeObject(item);\n        }\n      });\n      this.set('checkedItems', checkedItems);\n      const modelNames = records.mapBy('constructor.modelName').uniq();\n      modelNames.forEach(modelName => {\n        const relatedModelNames = this._getRelatedModelNames(modelName);\n\n        this.addUniqueModelNamesRefresh(relatedModelNames);\n      });\n      this.refreshAll();\n    },\n\n    replaceCheckedRecordsByType(records) {\n      /*eslint-disable */\n      records = Ember.makeArray(records);\n      /*eslint-enable */\n\n      const modelNames = records.mapBy('constructor.modelName').uniq(); // uncheck any records with modelName matching an argument element\n\n      const checkedItems = this.get('checkedItems').reject(({\n        record\n      }) => {\n        return modelNames.includes(record.constructor.modelName);\n      });\n      records.forEach(record => {\n        checkedItems.pushObject({\n          modelName: record.constructor.modelName,\n          record\n        });\n      });\n      this.set('checkedItems', checkedItems);\n      modelNames.forEach(modelName => {\n        const relatedModelNames = this._getRelatedModelNames(modelName);\n\n        this.addUniqueModelNamesRefresh(relatedModelNames);\n      });\n      this.refreshAll();\n    },\n\n    _getRelatedModelNames(modelName) {\n      const modelNode = _activeContextGraph.activeContextNodes.findBy('modelName', modelName);\n      /*console.log('_getRelatedModelNames model ',modelName);\n       let checkItemItemsData = this.get('checkedItems').filter(function( obj ) {\n        return obj.modelName === modelName;\n      });\n      console.log('activeContextNodes ',activeContextNodes);\n      let modelNode = activeContextNodes.findBy('modelName', modelName);\n       if(!isBlank(checkItemItemsData) && modelName === 'zone') {\n        console.log('activeContextNodesZone ',activeContextNodesZone);\n        modelNode =  activeContextNodesZone.findBy('modelName', modelName);\n       }\n       console.log('_getRelatedModelNames modelNode ',modelNode);*/\n      // queue the neighbours of this modelName's active context node\n\n\n      const queue = Ember.makeArray(modelNode.links).map(({\n        nodeId\n      }) => {\n        return _activeContextGraph.activeContextGraph[nodeId];\n      }); // don't revisit originating node\n\n      const visited = [modelNode];\n\n      const getNeighbours = ({\n        links\n      }) => {\n        return Ember.makeArray(links).map(({\n          nodeId\n        }) => _activeContextGraph.activeContextGraph[nodeId]);\n      };\n\n      const modelNames = [];\n      /*eslint-disable */\n\n      const visitNode = ({\n        modelName\n      }) => {\n        modelNames.push(modelName);\n      };\n      /*eslint-enable */\n      // trigger refresh events for related models\n\n\n      (0, _graph.breadthFirstSearch)({\n        queue,\n        visited,\n        getNeighbours,\n        visitNode\n      });\n      return modelNames;\n    },\n\n    // Staggered column widget refresh so UI does not become\n    // unresponsive\n    startRefreshQueue() {\n      setTimeout(() => {\n        const refreshInProgress = this.get('refreshInProgress');\n\n        if (!refreshInProgress) {\n          const refreshedModelNames = this.get('refreshedModelNames');\n\n          if (refreshedModelNames.length > 0) {\n            this.set('refreshInProgress', true);\n            this.trigger('refresh', [refreshedModelNames[0]]);\n            this.get('refreshedModelNames').shift();\n            this.startRefreshQueue();\n          }\n        }\n      }, 10);\n    },\n\n    // only used for server-side queries\n    _buildActiveContextParams(modelName) {\n      const filters = [];\n      const includes = [];\n\n      _serverRelationships.serverRelationships[modelName].forEach(relationship => {\n        const items = this.get('checkedItems');\n        const relatedItems = items.filterBy('modelName', relationship.modelName);\n\n        if (Ember.isEmpty(relatedItems)) {\n          return;\n        }\n\n        let path; // push necessary includes for filter\n\n        if (relationship.type === 'belongsTo') {\n          path = `${relationship.path}Id`;\n          const pathSegments = relationship.path.split('.');\n\n          if (pathSegments.length > 1) {\n            const parentPath = pathSegments.slice(0, -1).join('.');\n            includes.push(parentPath);\n          }\n        }\n\n        if (relationship.type === 'hasMany') {\n          path = `${relationship.path}.id`;\n          includes.push(relationship.path);\n        } // build filter node\n\n\n        const values = relatedItems.mapBy('record.id');\n        const filter = (0, _filters.buildValueFilterNode)(_filterTypes.uuidIn, path, values);\n        filters.push(filter);\n      });\n\n      const filter = (0, _filters.buildCompoundFilterNode)('and', filters);\n      return {\n        filter,\n        includes\n      };\n    },\n\n    _buildTimeFilter(modelName) {\n      const filters = [];\n      const node = _activeContextGraph.activeContextGraph[modelName]; // select entities that overlap time window, not just that are contained\n\n      if (!this.get('serverFilteringChecked')) {\n        if (node.leftTimeConstraint) {\n          const endDate = this.get('workspace.endDate').toISOString();\n          const filter = (0, _filters.buildValueFilterNode)(_filterTypes.dateLte, node.leftTimeConstraint, [endDate]);\n          filters.push(filter);\n        }\n\n        if (node.rightTimeConstraint) {\n          const startDate = this.get('workspace.startDate').toISOString();\n          const filter = (0, _filters.buildValueFilterNode)(_filterTypes.dateGte, node.rightTimeConstraint, [startDate]);\n          filters.push(filter);\n        }\n      }\n\n      return (0, _filters.buildCompoundFilterNode)('and', filters);\n    },\n\n    // this fires when the workspace context is modified\n    onWorkspaceContextChange(modelNames) {\n      const activeContextModelNames = _activeContextGraph.activeContextNodes.mapBy('modelName');\n\n      const didChange = modelNames.any(modelName => {\n        return activeContextModelNames.includes(modelName);\n      });\n\n      if (didChange) {\n        // the debounce value needs to be higher than the one\n        // in workspace-context forceRefresh\n        this.refreshAll();\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/addessLookup\", [\"exports\", \"ember-concurrency\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\"], function (_exports, _emberConcurrency, _environment, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    ajax: Ember.inject.service(),\n    optionSearchPath: null,\n    optionModelName: null,\n    optionSearchValue: null,\n    modalData: null,\n\n    prepareQuery(record) {\n      let description = this.get('geocode').get('activePOIDescription');\n      let streetNr = '';\n      let streetName = '';\n\n      if (!Ember.isBlank(record)) {\n        streetNr = record.address.streetNr;\n        streetName = record.address.streetName;\n      }\n\n      let searchURL = '';\n\n      if (!Ember.isBlank(description) && !Ember.isBlank(description.trim())) {\n        searchURL = searchURL + 'description=' + description.toUpperCase();\n      }\n\n      if (!Ember.isBlank(streetNr) && !Ember.isBlank(streetNr.trim())) {\n        searchURL = 'streetNr=' + streetNr.toUpperCase();\n      }\n\n      if (!Ember.isBlank(streetName) && !Ember.isBlank(streetName.trim())) {\n        if (!Ember.isBlank(searchURL)) searchURL = searchURL + '&streetName=' + streetName.toUpperCase();else searchURL = 'streetName=' + streetName.toUpperCase();\n      }\n\n      return searchURL;\n    },\n\n    // eslint-disable-next-line no-unused-vars\n    search: (0, _emberConcurrency.task)(function* (term) {\n      //console.log('search value ', this.get('value'));\n      yield (0, _emberConcurrency.timeout)(50);\n      let searchResults;\n      searchResults = yield this.getRiderProfile(this.get('optionSearchPath'), this.get('optionModelName'), this.get('optionSearchValue'));\n      return searchResults;\n    }),\n\n    getRiderProfile(optionSearchPath, optionSearchValue) {\n      return this.get('ajax').put(_apiUrls.API.tripManagementService.host + `/rider-profile?filter=${optionSearchPath}==` + optionSearchValue.toUpperCase(), {\n        method: 'GET',\n        contentType: \"application/json\"\n      }).then(response => {\n        return response.data;\n      }).catch(function () {\n        return [];\n      });\n    },\n\n    searchRiderProfile(optionSearchPath, optionSearchValue) {\n      this.set('optionSearchPath', optionSearchPath);\n      this.set('optionModelName', 'rider-profile');\n      this.set('optionSearchValue', optionSearchValue);\n      this.get('search').perform().then(results => {\n        return results;\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/ajax\", [\"exports\", \"ember-ajax/services/ajax\"], function (_exports, _ajax) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ajax.default;\n    }\n  });\n});","define(\"adept-iq/services/animation-timer\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const FRAMES_PER_SECOND = 30;\n\n  var _default = Ember.Service.extend(Ember.Evented, {\n    fps: FRAMES_PER_SECOND,\n\n    init() {\n      this._super(...arguments);\n\n      setInterval(() => {\n        Ember.run.scheduleOnce('afterRender', this, 'tick');\n      }, 1000 / FRAMES_PER_SECOND);\n    },\n\n    tick() {\n      this.trigger('tick');\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/booking\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    tripData() {\n      let tripData = {\n        \"data\": {\n          \"type\": \"trip\",\n          \"attributes\": {\n            \"trackingId\": \"12\",\n            \"requestedProvider\": {\n              \"id\": \"2\",\n              \"type\": \"dedicated\"\n            },\n            \"status\": \"active\",\n            \"source\": {\n              \"type\": \"webApp\",\n              \"id\": \"56e\"\n            },\n            \"passengers\": [{\n              \"id\": \"1\",\n              \"name\": \"\",\n              \"type\": \"client\",\n              \"lastName\": \"\",\n              \"firstName\": \"\",\n              \"middleName\": \"\",\n              \"callout\": \"call\",\n              \"phone1\": {\n                \"number\": \"\",\n                \"areaCode\": \"\",\n                \"extension\": \"\",\n                \"type\": \"fixed\"\n              },\n              \"phone2\": {\n                \"number\": \"\",\n                \"areaCode\": \"\",\n                \"extension\": \"\",\n                \"type\": \"fixed\"\n              },\n              \"email\": \"\",\n              \"bookingNote\": \"\",\n              \"requiredAttributes\": []\n            }],\n            \"stopPoints\": [{\n              \"index\": 1,\n              \"address\": {\n                \"formattedAddress\": \"\",\n                \"streetName\": \"\",\n                \"streetNr\": \"\",\n                \"unitNr\": null,\n                \"region\": \"\",\n                \"postCode\": \"\",\n                \"city\": \"\",\n                \"state\": \"\",\n                \"description\": \"\",\n                \"coord\": {\n                  \"lat\": 0,\n                  \"lng\": 0\n                }\n              },\n              \"directions\": \"\",\n              \"passengerEvents\": [{\n                \"type\": \"pickup\",\n                \"passengerId\": \"1\",\n                \"time\": \"\",\n                \"anchor\": true,\n                \"driverNote\": \"\",\n                \"pickupWindow\": {\n                  \"start\": \"\",\n                  \"end\": \"\"\n                }\n              }]\n            }, {\n              \"index\": 2,\n              \"address\": {\n                \"formattedAddress\": \"\",\n                \"streetName\": \"\",\n                \"streetNr\": \"\",\n                \"unitNr\": null,\n                \"region\": \"\",\n                \"postCode\": \"\",\n                \"city\": \"\",\n                \"state\": \"\",\n                \"description\": \"\",\n                \"coord\": {\n                  \"lat\": 0,\n                  \"lng\": 0\n                }\n              },\n              \"directions\": \"\",\n              \"passengerEvents\": [{\n                \"type\": \"dropoff\",\n                \"passengerId\": \"1\",\n                \"time\": \"\",\n                \"anchor\": true,\n                \"driverNote\": \"\",\n                \"pickupWindow\": {\n                  \"start\": \"\",\n                  \"end\": \"\"\n                }\n              }]\n            }],\n            \"prices\": [{\n              \"payerIdentifier\": \"CASH\",\n              \"currencyCode\": \"CAD\",\n              \"fixed\": 0,\n              \"estimate\": 0,\n              \"tip\": {\n                \"percent\": 0,\n                \"minValue\": 0\n              }\n            }],\n            \"customerReference\": \"string\",\n            \"relatedIds\": []\n          }\n        }\n      };\n      return tripData;\n    },\n\n    tripScheduleData() {\n      let tripScheduleData = {\n        \"data\": {\n          \"id\": \"\",\n          \"type\": \"trip\",\n          \"attributes\": {\n            \"destination\": \"dispatch\"\n          }\n        }\n      };\n      return tripScheduleData;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/cookies\", [\"exports\", \"ember-cookies/services/cookies\"], function (_exports, _cookies) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _cookies.default;\n  _exports.default = _default;\n});","define(\"adept-iq/services/drag-coordinator\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    sourceRows: null,\n    widgetType: null,\n\n    init() {\n      this._super(...arguments);\n\n      this.set('sourceRows', {});\n    },\n\n    // called when a widget registers dragStart\n    setSourceRow(dragId, row, widgetType) {\n      Ember.set(this.get('sourceRows'), dragId, row);\n      this.set('widgetType', widgetType);\n    },\n\n    // called when a widget registers drop\n    getSourceRow(dragId) {\n      if (Ember.isBlank(dragId)) return;\n      const sourceRow = this.get(`sourceRows.${dragId}`);\n      this.set('sourceRows', {});\n      return sourceRow;\n    },\n\n    // called when a widget registers dragEnd\n    clearSourceRows() {\n      this.set('sourceRows', {});\n      this.set('widgetType', null);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/edit-modal\", [\"exports\", \"adept-iq/utils/populate-new-trip\", \"adept-iq/utils/populate-account\", \"ember-concurrency\", \"lodash\", \"adept-iq/utils/save-records\", \"ember-inflector\"], function (_exports, _populateNewTrip, _populateAccount, _emberConcurrency, _lodash, _saveRecords, _emberInflector) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    first,\n    last,\n    isUndefined\n  } = _lodash.default;\n  const UNDO_DEBOUNCE_MS = 500;\n\n  var _default = Ember.Service.extend({\n    router: Ember.inject.service('router'),\n    store: Ember.inject.service(),\n    // eslint-disable-next-line ember/avoid-leaking-state-in-ember-objects\n    editableRecords: [],\n    editComponent: null,\n    saveRecordFunction: null,\n    isLinkMode: false,\n    isSearching: false,\n    hasApplied: false,\n    filter: '',\n    undoHistory: null,\n    isLastUndoStateCommitted: true,\n    errors: null,\n    showTripFormPopup: true,\n    showActivityLog: false,\n    editComponentAction: null,\n\n    init() {\n      this._super(...arguments);\n\n      this.set('editableRecords', []);\n      this.set('undoHistory', []);\n      this.set('errors', []);\n    },\n\n    isOpen: Ember.computed.equal('router.currentRouteName', 'dashboard.modals.edit-form'),\n    isDirty: Ember.computed('editableRecords.{@each.hasDirtyAttributes,@each.isForceDirty}', function () {\n      const records = this.get('editableRecords');\n      return records.any(record => {\n        return record.get('hasDirtyAttributes') || record.get('isForceDirty');\n      });\n    }),\n    canUndo: Ember.computed('undoHistory.lastObject.[]', function () {\n      return Ember.isPresent(this.get('undoHistory.lastObject'));\n    }),\n    commitLastUndoState: (0, _emberConcurrency.task)(function* () {\n      yield (0, _emberConcurrency.timeout)(UNDO_DEBOUNCE_MS);\n      this.set('isLastUndoStateCommitted', true);\n    }).restartable(),\n\n    getLastUndoState() {\n      let lastUndoState = this.get('undoHistory.lastObject');\n      const isLastUndoStateCommitted = this.get('isLastUndoStateCommitted');\n\n      if (isLastUndoStateCommitted) {\n        lastUndoState = this.get('undoHistory').pushObject([]);\n        this.set('isLastUndoStateCommitted', false);\n      }\n\n      return lastUndoState;\n    },\n\n    setLastUndoState(record, valuePath) {\n      const lastUndoState = this.getLastUndoState();\n      let recordChanges = lastUndoState.find(changes => changes.record === record);\n\n      if (Ember.isBlank(recordChanges)) {\n        recordChanges = lastUndoState.pushObject({\n          record: record,\n          properties: {}\n        });\n      }\n\n      if (Ember.isBlank(Ember.get(recordChanges, `properties.${valuePath}`))) {\n        Ember.set(recordChanges, `properties.${valuePath}`, Ember.get(record, valuePath));\n      }\n\n      this.get('commitLastUndoState').perform();\n    },\n\n    open(editComponent, models, saveRecordFunction) {\n      this.set('editComponent', editComponent);\n      this.set('editableRecords', models);\n      this.set('saveRecordFunction', saveRecordFunction);\n      const router = this.get('router');\n      router.transitionTo('dashboard.modals.edit-form');\n    },\n\n    close() {\n      this.reset();\n      const router = this.get('router');\n      router.transitionTo('dashboard');\n    },\n\n    setRecordValue(record, valuePath, value, options) {\n      const {\n        hasMany,\n        belongsTo\n      } = record.constructor.relationshipNames;\n      const isHasMany = hasMany.includes(valuePath);\n      const isBelongsTo = belongsTo.includes(first(valuePath.split('.')));\n\n      if (isHasMany) {\n        this.setLastUndoState(options.record, options.valuePath);\n        options.record.set(options.valuePath, value); // Link Mode does not support hasMany records.\n\n        return;\n      }\n\n      if (isBelongsTo) {\n        /*eslint-disable */\n        record = Ember.get(record, first(valuePath.split('.'))).content;\n        valuePath = last(valuePath.split('.'));\n        /*eslint-enable */\n      }\n\n      if (!Ember.isNone(options) && options.useOptionRecord) {\n        this.setLastUndoState(options.record, options.valuePath);\n        options.record.set(options.valuePath, value);\n      } else {\n        this.setLastUndoState(record, valuePath);\n        record.set(valuePath, value);\n      } // this.setLastUndoState(record, valuePath);\n      // record.set(valuePath, value);\n\n\n      if (this.get('isLinkMode')) {\n        const records = this.get('editableRecords');\n        /*eslint-disable */\n\n        records.forEach(record => {\n          if (isBelongsTo) {\n            record = Ember.get(record, first(valuePath.split('.'))).content;\n          }\n          /*eslint-enable */\n          // valuePath may be set to belongsTo model valuePath if isBelongsTo.\n\n\n          this.setLastUndoState(record, valuePath);\n          record.set(valuePath, value);\n        });\n      }\n    },\n\n    pushRecordValue(record, valuePath, modelNameDefault) {\n      const inflector = new _emberInflector.default(_emberInflector.default.defaultRules);\n      const modelName = !isUndefined(modelNameDefault) ? modelNameDefault : inflector.singularize(valuePath);\n      const newRecord = this.get('store').createRecord(modelName);\n      record.set('isForceDirty', true);\n      Ember.get(record, valuePath).pushObject(newRecord);\n      return newRecord;\n    },\n\n    pullRecordValue(record, valuePath, removeRecord) {\n      record.set('isForceDirty', true);\n      Ember.get(record, valuePath).removeObject(removeRecord);\n    },\n\n    undo() {\n      const lastUndoState = this.get('undoHistory').popObject();\n      lastUndoState.forEach(({\n        record,\n        properties\n      }) => {\n        record.setProperties(properties);\n      });\n      this.set('isLastUndoStateCommitted', true);\n    },\n\n    undoAll() {\n      const undoHistory = this.get('undoHistory');\n\n      while (Ember.isPresent(undoHistory)) this.undo();\n    },\n\n    toggleLinkMode() {\n      this.toggleProperty('isLinkMode');\n    },\n\n    toggleSearchMode() {\n      this.toggleProperty('isSearching');\n\n      if (this.get('isSearching') === false) {\n        this.set('filter', '');\n      }\n    },\n\n    apply() {\n      // TODO: Integrate against impact API.\n      this.setProperties({\n        hasApplied: true,\n        undoHistory: [],\n        isLastUndoStateCommitted: true\n      });\n    },\n\n    commit(editComponentAction) {\n      const records = this.get('editableRecords');\n      const saveRecordFunction = this.get('saveRecordFunction');\n      this.set('editComponentAction', editComponentAction);\n      this.set('errors', []);\n\n      if (!isUndefined(saveRecordFunction) && saveRecordFunction !== null) {\n        saveRecordFunction(records, editComponentAction).catch(e => {\n          this.get('errors').pushObject(e.message);\n        });\n      } else {\n        (0, _saveRecords.default)(records).catch(e => {\n          this.get('errors').pushObject(e.errors.firstObject.detail);\n        });\n      }\n\n      this.reset();\n    },\n\n    commitOnly() {\n      const records = this.get('editableRecords');\n      const saveRecordFunction = this.get('saveRecordFunction');\n      this.set('errors', []);\n\n      if (!isUndefined(saveRecordFunction) && saveRecordFunction !== null) {\n        saveRecordFunction(records).catch(e => {\n          this.get('errors').pushObject(e.message);\n        });\n      } else {\n        (0, _saveRecords.default)(records).catch(e => {\n          this.get('errors').pushObject(e.errors.firstObject.detail);\n        });\n      }\n    },\n\n    cancel() {\n      this.set('hasApplied', false);\n    },\n\n    reset() {\n      this.undoAll();\n      this.setProperties({\n        isLinkMode: false,\n        isSearching: false,\n        hasApplied: false,\n        filter: '',\n        errors: []\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/editmodalcontext\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    available: null,\n    assigns: null,\n    showWidgetModal: false,\n    widgetModelData: null,\n    modelWidgetPath: null,\n    saveStatus: false,\n    lastBookedId: null,\n    editComponentAction: null,\n\n    init() {\n      this._super(...arguments);\n\n      this.set('assigns', []);\n      this.set('widgetModelData', []);\n      this.set('modelWidgetPath', null);\n    },\n\n    setAssigns(assigment) {\n      //this.set('assigns',[]);\n      this.set('assigns', assigment);\n    },\n\n    setWidgetModelData(widgetModelData) {\n      //this.set('assigns',[]);\n      this.set('widgetModelData', widgetModelData);\n    },\n\n    setshowWidgetModal(showWidgetModal) {\n      //this.set('assigns',[]);\n      this.set('showWidgetModal', showWidgetModal);\n    },\n\n    deactivateAttributes() {\n      this.set('available', null);\n      this.set('assigns', null);\n    },\n\n    reinitilized() {\n      this.set('assigns', []);\n      this.set('showWidgetModal', false);\n      this.set('widgetModelData', []);\n      this.set('modelWidgetPath', null);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/error-message-avlm\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    messages: null,\n    warnings: null,\n    infos: null,\n    message: Ember.computed('messages.[]', function () {\n      if (Ember.isBlank(this.get('messages'))) {\n        return;\n      }\n\n      return this.get('messages').firstObject;\n    }),\n    warning: Ember.computed('warnings.[]', function () {\n      if (Ember.isBlank(this.get('warnings'))) {\n        return;\n      }\n\n      return this.get('warnings').firstObject;\n    }),\n    info: Ember.computed('infos.[]', function () {\n      if (Ember.isBlank(this.get('infos'))) {\n        return;\n      }\n\n      return this.get('infos').firstObject;\n    }),\n\n    pushError(error) {\n      this.get('messages').pushObject(error);\n    },\n\n    shiftError() {\n      this.get('messages').shiftObject();\n    },\n\n    pushWarning(warning) {\n      this.get('warnings').pushObject(warning);\n    },\n\n    shiftWarning() {\n      this.get('warnings').shiftObject();\n    },\n\n    pushInfo(info) {\n      this.get('infos').pushObject(info);\n    },\n\n    shiftInfo() {\n      this.get('infos').shiftObject();\n    },\n\n    flushMessageQueues() {\n      this.get('messages').clear();\n      this.get('warnings').clear();\n      this.get('infos').clear();\n    },\n\n    init() {\n      this.set('messages', []);\n      this.set('warnings', []);\n      this.set('infos', []);\n\n      this._super(...arguments);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/error-message\", [\"exports\", \"lodash\"], function (_exports, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    flashMessages: Ember.inject.service(),\n    store: Ember.inject.service(),\n    informationalTimeoutSeconds: 3000,\n    informationalBackgroundColor: '#2874CB',\n    informationalFontColor: 'white',\n    warningTimeoutSeconds: 3000,\n    warningBackgroundColor: '#f09240',\n    warningFontColor: 'white',\n    errorTimeoutSeconds: 3000,\n    errorBackgroundColor: '#f05454',\n    errorFontColor: 'white',\n    emergencyTimeoutSeconds: 10000,\n    emergencyReDisplaySeconds: 60000,\n    emergencyBackgroundColor: '#f05454',\n    emergencyFontColor: 'white',\n    topMessage: Ember.computed('flashMessages.queue.[]', function () {\n      const flashObject = this.get('flashMessages').peekFirst();\n\n      if (flashObject) {\n        // this is to start the timeout\n        flashObject.set('sticky', false);\n        flashObject.init();\n      }\n\n      return flashObject;\n    }),\n\n    setNotificationParameter(categoryName, configName, value) {\n      const parameterName = _lodash.default.camelCase(`${categoryName} ${configName}`);\n\n      this.set(parameterName, value);\n    },\n\n    generateEmergencyMessage(alert) {\n      let message = '';\n      const vehicleName = alert.get('vehicle.name');\n      const driverName = alert.get('driver.name');\n      const routeName = alert.get('iqRoute.dsRoute.name');\n\n      if (routeName && vehicleName && driverName) {\n        message = `Emergency message received from Driver ${driverName} on route ${routeName} in Vehicle ${vehicleName}`;\n      } else if (vehicleName && driverName) {\n        message = `Emergency message received from Driver ${driverName} in Vehicle ${vehicleName}`;\n      } else if (vehicleName) {\n        message = `Emergency message received from Vehicle ${vehicleName}`;\n      } else if (driverName) {\n        message = `Emergency message received from Driver ${driverName}`;\n      } else {\n        message = 'Emergency message received';\n      }\n\n      return message;\n    },\n\n    monitorForEmergency() {\n      Ember.run.later(this, function () {\n        const alerts = this.store.peekAll('alert');\n        alerts.forEach(alert => {\n          if (!alert.emergencyActive && alert.category === 'Emergency' && alert.state === 'active') {\n            const message = this.generateEmergencyMessage(alert);\n            this.pushEmergency({\n              detail: message\n            }, alert);\n            alert.set('emergencyActive', true);\n          }\n        });\n        this.monitorForEmergency();\n      }, this.emergencyReDisplaySeconds);\n    },\n\n    init() {\n      this._super(...arguments);\n\n      this.store.query('cs-config-item', {\n        category: 'config-Notification_Banners'\n      }).then(configs => {\n        configs.forEach(config => {\n          const categoryName = config.get('configCategory.name');\n          const configName = config.get('name');\n          let value = config.get('value');\n\n          if (config.type === 'Int') {\n            const intValue = parseInt(value, 10) * 1000; // convert to milliseconds\n\n            value = intValue <= 0 ? 10000 : intValue;\n          }\n\n          this.setNotificationParameter(categoryName, configName, value);\n        });\n      });\n      this.monitorForEmergency();\n    },\n\n    pushEmergency(emergency, alert) {\n      this.get('flashMessages').add({\n        message: emergency.detail,\n        type: 'emrgency',\n        timeout: this.emergencyTimeoutSeconds,\n        priority: 600,\n        sticky: true,\n        style: `background-color: ${this.emergencyBackgroundColor}; color: ${this.emergencyFontColor};`,\n\n        onDestroy() {\n          if (alert) {\n            alert.set('emergencyActive', false);\n          }\n        }\n\n      });\n    },\n\n    pushError(error) {\n      this.get('flashMessages').danger(error.detail, {\n        timeout: this.errorTimeoutSeconds,\n        priority: 400,\n        sticky: true,\n        style: `background-color: ${this.errorBackgroundColor}; color: ${this.errorFontColor};`\n      });\n    },\n\n    pushWarning(warning) {\n      this.get('flashMessages').warning(warning.detail, {\n        timeout: this.warningTimeoutSeconds,\n        priority: 300,\n        sticky: true,\n        style: `background-color: ${this.warningBackgroundColor}; color: ${this.warningFontColor};`\n      });\n    },\n\n    pushInfo(info) {\n      this.get('flashMessages').info(info.detail, {\n        timeout: this.informationalTimeoutSeconds,\n        priority: 200,\n        sticky: true,\n        style: `background-color: ${this.informationalBackgroundColor}; color: ${this.informationalFontColor};`\n      });\n    },\n\n    flushMessageQueues() {\n      this.get('flashMessages').clearMessages();\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/flash-messages\", [\"exports\", \"ember-cli-flash/services/flash-messages\"], function (_exports, _flashMessages) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _flashMessages.default;\n    }\n  });\n});","define(\"adept-iq/services/geocode\", [\"exports\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\", \"tomtom\", \"adept-iq/utils/zone-validation\", \"adept-iq/utils/check-value\", \"adept-iq/pods/components/iq-widgets/map-widget/config/arrow\", \"adept-iq/pods/components/iq-widgets/map-widget/decorations/arrow\", \"adept-iq/pods/components/iq-widgets/map-widget/config/polyline\", \"adept-iq/pods/components/iq-widgets/map-widget/config/marker\"], function (_exports, _environment, _apiUrls, _tomtom, _zoneValidation, _checkValue, _arrow, _arrow2, _polyline, _marker) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    ajax: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    editmodalcontext: Ember.inject.service(),\n    store: Ember.inject.service(),\n    activeGeocode: false,\n    activeMarker: null,\n    activePickMarker: null,\n    activeDropMarker: null,\n    oldPickMarker: null,\n    oldDropMarker: null,\n    oldTripPolyline: null,\n    activeTripPolyline: null,\n    route4Trip: null,\n    route4TripPopup: null,\n    activeTripArrow: null,\n    oldTripArrow: null,\n    oldMarker: null,\n    markerType: '',\n    latlng: null,\n    tomtomAddress: null,\n    tomtomLatLng: null,\n    zoom: 16,\n    currentRecord: null,\n    activeTripRouteOnMap: null,\n    tripRouteOnMap: null,\n    oldTripRouteOnMap: null,\n    tripRoutePoints: null,\n    disabledFindLocationForRecord: false,\n    activePOIResults: null,\n    activePOIGeocode: false,\n    activePOIDescription: null,\n    activePOIMarkersLayer: null,\n    activePOIRecord: null,\n    activePOIIndex: -1,\n\n    init() {\n      this._super(...arguments);\n    },\n\n    addressSearchResults(results) {\n      const record = this.get('currentRecord');\n\n      if (results.length > 0) {\n        const latLng = results.firstObject.position;\n\n        let markerOptions = _marker.default[this.get('markerType')];\n\n        this.set('latlng', {\n          lat: latLng.lat,\n          lng: latLng.lon\n        });\n\n        const tomtomMarker = _tomtom.default.L.marker(this.get('latlng'), markerOptions);\n\n        if (this.get('markerType') === 'pickup') {\n          if (this.get('activePickMarker')) {\n            this.set('oldPickMarker', this.get('activePickMarker'));\n          } else {\n            this.set('oldPickMarker', tomtomMarker);\n          }\n\n          this.set('activePickMarker', tomtomMarker);\n        } else if (this.get('markerType') === 'dropoff') {\n          if (this.get('activeDropMarker')) {\n            this.set('oldDropMarker', this.get('activeDropMarker'));\n          } else {\n            this.set('oldDropMarker', tomtomMarker);\n          }\n\n          this.set('activeDropMarker', tomtomMarker);\n        } else {\n          this.set('oldMarker', this.get('activeMarker'));\n          this.set('activeMarker', tomtomMarker);\n        }\n      } else if (record !== undefined && record.address.cord.lat !== 0 && record.address.cord.lng !== 0) {\n        this.set('latlng', {\n          lat: record.address.cord.lat,\n          lng: record.address.cord.lng\n        });\n\n        const tomtomMarker = _tomtom.default.L.marker(this.get('latlng'));\n\n        if (this.get('markerType') === 'pickup') {\n          if (this.get('activePickMarker')) {\n            this.set('oldPickMarker', this.get('activePickMarker'));\n          } else {\n            this.set('oldPickMarker', tomtomMarker);\n          }\n\n          this.set('activePickMarker', tomtomMarker);\n        } else if (this.get('markerType') === 'dropoff') {\n          if (this.get('activeDropMarker')) {\n            this.set('oldDropMarker', this.get('activeDropMarker'));\n          } else {\n            this.set('oldDropMarker', tomtomMarker);\n          }\n\n          this.set('activeDropMarker', tomtomMarker);\n        } else {\n          this.set('oldMarker', this.get('activeMarker'));\n          this.set('activeMarker', tomtomMarker);\n        }\n      }\n\n      if (this.get('activePickMarker') && this.get('activeDropMarker')) {\n        let tripPoints = [[this.get('activePickMarker._latlng.lat'), this.get('activePickMarker._latlng.lng')], [this.get('activeDropMarker._latlng.lat'), this.get('activeDropMarker._latlng.lng')]];\n        let arrowPoints = tripPoints.slice(tripPoints.length - 2, tripPoints.length);\n        let polyLineOptions = _polyline.default['dotted'];\n        let arrowOptions = _arrow.default['tripArrowPlannedOffset'];\n        let activeTripArrow = (0, _arrow2.default)(arrowPoints, arrowOptions);\n        let tripRoutePoints = [];\n        tripRoutePoints.push(this.get('activePickMarker._latlng.lat'));\n        tripRoutePoints.push(this.get('activePickMarker._latlng.lng'));\n        tripRoutePoints.push(this.get('activeDropMarker._latlng.lat'));\n        tripRoutePoints.push(this.get('activeDropMarker._latlng.lng'));\n        this.set('tripRoutePoints', tripRoutePoints);\n\n        let tripPolyline = _tomtom.default.L.polyline(tripPoints, polyLineOptions);\n\n        if (this.get('activeTripPolyline')) {\n          this.set('oldTripPolyline', this.get('activeTripPolyline'));\n        } else {\n          this.set('oldTripPolyline', tripPolyline);\n        }\n\n        if (this.get('activeTripArrow')) {\n          this.set('oldTripArrow', this.get('activeTripArrow'));\n        } else {\n          this.set('oldTripArrow', activeTripArrow);\n        }\n\n        this.set('activeTripArrow', activeTripArrow);\n        this.set('activeTripPolyline', tripPolyline);\n      }\n    },\n\n    addressPOISearchResults(results) {\n      if (results.length > 0) {\n        this.set('editmodalcontext.showWidgetModal', true);\n        this.set('editmodalcontext.widgetModelData', results);\n        this.set('editmodalcontext.modelWidgetPath', 'address-lookup-poi');\n        this.set('activePOIResults', results); //drawPOIMarker(geoResponses);\n      } else {\n        this.set('activePOIResults', []);\n      }\n    },\n\n    addressLookupResults(results, addressRecord, currentRecord) {\n      if (results.length === 1) {\n        let ttAddress = results.firstObject;\n\n        if (!Ember.isBlank(ttAddress.notes)) {\n          Ember.set(currentRecord, 'editmodelcontext.predefinedDriverNotes.address', (0, _checkValue.default)(ttAddress.notes.driver));\n          Ember.set(currentRecord, 'editmodelcontext.predefinedOperatorNotes.address', (0, _checkValue.default)(ttAddress.notes.dispatcher));\n        } else {\n          Ember.set(currentRecord, 'editmodelcontext.predefinedDriverNotes.address', '');\n          Ember.set(currentRecord, 'editmodelcontext.predefinedOperatorNotes.address', '');\n        }\n\n        this.set('activePOIResults', []); //drawPOIMarker(geoResponses);\n      } else {\n        this.set('editmodalcontext.addressRecord', addressRecord);\n        this.set('editmodalcontext.record', currentRecord);\n        this.set('editmodalcontext.showWidgetModal', true);\n        this.set('editmodalcontext.widgetModelData', results);\n        this.set('editmodalcontext.modelWidgetPath', '');\n        this.set('activePOIResults', []);\n      }\n    },\n\n    addressUnitLookupResults(results, addressRecord, currentRecord) {\n      if (results.length === 1) {\n        let ttAddress = results.firstObject;\n\n        if (!Ember.isBlank(ttAddress.notes)) {\n          Ember.set(currentRecord, 'editmodelcontext.predefinedDriverNotes.address', (0, _checkValue.default)(ttAddress.notes.driver));\n          Ember.set(currentRecord, 'editmodelcontext.predefinedOperatorNotes.address', (0, _checkValue.default)(ttAddress.notes.dispatcher));\n        } else {\n          Ember.set(currentRecord, 'editmodelcontext.predefinedDriverNotes.address', '');\n          Ember.set(currentRecord, 'editmodelcontext.predefinedOperatorNotes.address', '');\n        }\n\n        this.set('activePOIResults', []); //drawPOIMarker(geoResponses);\n      } else {\n        this.set('editmodalcontext.addressRecord', addressRecord);\n        this.set('editmodalcontext.record', currentRecord);\n        this.set('editmodalcontext.showWidgetModal', true);\n        this.set('editmodalcontext.widgetModelData', results);\n        this.set('editmodalcontext.modelWidgetPath', 'address-lookup-poi');\n        this.set('activePOIResults', []);\n      }\n    },\n\n    addressMapPopulate(stoppoint) {\n      console.log('stoppoint', stoppoint);\n      let address = stoppoint.address;\n\n      if (!Ember.isBlank(stoppoint.address) && !Ember.isBlank(stoppoint.address.coord) && stoppoint.address.coord.lat !== 0 && stoppoint.address.coord.lng !== 0 && stoppoint.address.coord.lat !== 181 && stoppoint.address.coord.lng !== 181 && stoppoint.address.coord.lat !== -181 && stoppoint.address.coord.lng !== -181 && !Ember.isBlank(stoppoint.address.coord.lat) && !Ember.isBlank(stoppoint.address.coord.lng)) {\n        let markerOptions = _marker.default[stoppoint.passengerEvents[0].type];\n        this.set('latlng', {\n          lat: address.coord.lat,\n          lng: address.coord.lng\n        });\n\n        const tomtomMarker = _tomtom.default.L.marker(this.get('latlng'), markerOptions);\n\n        if (stoppoint.passengerEvents[0].type === 'pickup') {\n          if (this.get('activePickMarker')) {\n            this.set('oldPickMarker', this.get('activePickMarker'));\n          } else {\n            this.set('oldPickMarker', tomtomMarker);\n          }\n\n          this.set('activePickMarker', tomtomMarker);\n        } else if (stoppoint.passengerEvents[0].type === 'dropoff') {\n          if (this.get('activeDropMarker')) {\n            this.set('oldDropMarker', this.get('activeDropMarker'));\n          } else {\n            this.set('oldDropMarker', tomtomMarker);\n          }\n\n          this.set('activeDropMarker', tomtomMarker);\n        } else {\n          this.set('oldMarker', this.get('activeMarker'));\n          this.set('activeMarker', tomtomMarker);\n        }\n      }\n\n      if (this.get('activePickMarker') && this.get('activeDropMarker')) {\n        let tripPoints = [[this.get('activePickMarker._latlng.lat'), this.get('activePickMarker._latlng.lng')], [this.get('activeDropMarker._latlng.lat'), this.get('activeDropMarker._latlng.lng')]];\n        let arrowPoints = tripPoints.slice(tripPoints.length - 2, tripPoints.length);\n        let polyLineOptions = _polyline.default['dotted'];\n        let arrowOptions = _arrow.default['tripArrowPlannedOffset'];\n        let activeTripArrow = (0, _arrow2.default)(arrowPoints, arrowOptions);\n        let tripRoutePoints = [];\n        tripRoutePoints.push(this.get('activePickMarker._latlng.lat'));\n        tripRoutePoints.push(this.get('activePickMarker._latlng.lng'));\n        tripRoutePoints.push(this.get('activeDropMarker._latlng.lat'));\n        tripRoutePoints.push(this.get('activeDropMarker._latlng.lng'));\n        this.set('tripRoutePoints', tripRoutePoints);\n\n        let tripPolyline = _tomtom.default.L.polyline(tripPoints, polyLineOptions);\n\n        if (this.get('activeTripPolyline')) {\n          this.set('oldTripPolyline', this.get('activeTripPolyline'));\n        } else {\n          this.set('oldTripPolyline', tripPolyline);\n        }\n\n        if (this.get('activeTripArrow')) {\n          this.set('oldTripArrow', this.get('activeTripArrow'));\n        } else {\n          this.set('oldTripArrow', activeTripArrow);\n        }\n\n        this.set('activeTripArrow', activeTripArrow);\n        this.set('activeTripPolyline', tripPolyline);\n      }\n    },\n\n    addressPopulateOnMap(stoppoint, type) {\n      console.log('stoppoint', stoppoint, ' type ', type);\n\n      if (!Ember.isBlank(stoppoint) && !Ember.isBlank(stoppoint.coord) && stoppoint.coord.lat !== 0 && stoppoint.coord.lng !== 0 && stoppoint.coord.lat !== 181 && stoppoint.coord.lng !== 181 && stoppoint.coord.lat !== -181 && stoppoint.coord.lng !== -181 && !Ember.isBlank(stoppoint.coord.lat) && !Ember.isBlank(stoppoint.coord.lng)) {\n        let markerOptions = _marker.default[type];\n        this.set('latlng', {\n          lat: stoppoint.coord.lat,\n          lng: stoppoint.coord.lng\n        });\n\n        const tomtomMarker = _tomtom.default.L.marker(this.get('latlng'), markerOptions);\n\n        if (type === 'pickup') {\n          if (this.get('activePickMarker')) {\n            this.set('oldPickMarker', this.get('activePickMarker'));\n          } else {\n            this.set('oldPickMarker', tomtomMarker);\n          }\n\n          this.set('activePickMarker', tomtomMarker);\n        } else if (type === 'dropoff') {\n          if (this.get('activeDropMarker')) {\n            this.set('oldDropMarker', this.get('activeDropMarker'));\n          } else {\n            this.set('oldDropMarker', tomtomMarker);\n          }\n\n          this.set('activeDropMarker', tomtomMarker);\n        } else {\n          this.set('oldMarker', this.get('activeMarker'));\n          this.set('activeMarker', tomtomMarker);\n        }\n      }\n\n      if (this.get('activePickMarker') && this.get('activeDropMarker')) {\n        let tripPoints = [[this.get('activePickMarker._latlng.lat'), this.get('activePickMarker._latlng.lng')], [this.get('activeDropMarker._latlng.lat'), this.get('activeDropMarker._latlng.lng')]];\n        let arrowPoints = tripPoints.slice(tripPoints.length - 2, tripPoints.length);\n        let polyLineOptions = _polyline.default['dotted'];\n        let arrowOptions = _arrow.default['tripArrowPlannedOffset'];\n        let activeTripArrow = (0, _arrow2.default)(arrowPoints, arrowOptions);\n        let tripRoutePoints = [];\n        tripRoutePoints.push(this.get('activePickMarker._latlng.lat'));\n        tripRoutePoints.push(this.get('activePickMarker._latlng.lng'));\n        tripRoutePoints.push(this.get('activeDropMarker._latlng.lat'));\n        tripRoutePoints.push(this.get('activeDropMarker._latlng.lng'));\n        this.set('tripRoutePoints', tripRoutePoints);\n\n        let tripPolyline = _tomtom.default.L.polyline(tripPoints, polyLineOptions);\n\n        if (this.get('activeTripPolyline')) {\n          this.set('oldTripPolyline', this.get('activeTripPolyline'));\n        } else {\n          this.set('oldTripPolyline', tripPolyline);\n        }\n\n        if (this.get('activeTripArrow')) {\n          this.set('oldTripArrow', this.get('activeTripArrow'));\n        } else {\n          this.set('oldTripArrow', activeTripArrow);\n        }\n\n        this.set('activeTripArrow', activeTripArrow);\n        this.set('activeTripPolyline', tripPolyline);\n      }\n    },\n\n    findLocationForRecord(record) {\n      if (record !== undefined) {\n        try {\n          if (record.address.streetName !== undefined) {\n            if (record.address.streetNr !== undefined || record.address.streetName !== undefined || record.address.region !== null) {\n              let streetNr = (0, _checkValue.default)(record.address.streetNr);\n              let streetName = (0, _checkValue.default)(record.address.streetName);\n              let city = (0, _checkValue.default)(record.address.region);\n              let queryString = `${streetNr} ${streetName} , ${city}`;\n\n              if (!Ember.isBlank(record.address.streetNr) === undefined) {\n                queryString = `${streetName} ${city}`;\n              }\n\n              _tomtom.default.fuzzySearch().key(_environment.default.tomtom.search.searchKey).query(queryString).countrySet(_environment.default.tomtom.search.countrySet).typeahead(false).limit(1).center(_environment.default.tomtom.search.center).radius(_environment.default.tomtom.search.radius).callback(this.addressSearchResults.bind(this)).go();\n            }\n          } else {\n            if (record.address.streetNr !== undefined || record.address.streetAddress !== undefined || record.address.subRegion !== null) {\n              _tomtom.default.fuzzySearch().key(_environment.default.tomtom.search.searchKey).query(`${record.address.streetNr} ${record.address.streetAddress} ${record.address.subRegion}`).countrySet(_environment.default.tomtom.search.countrySet).typeahead(false).limit(1).center(_environment.default.tomtom.search.center).radius(_environment.default.tomtom.search.radius).callback(this.addressSearchResults.bind(this)).go();\n            }\n          }\n        } catch (e) {\n          console.log(e);\n        }\n      }\n    },\n\n    findPOIForRecord(latlng) {\n      this.set('latlng', latlng); // if the point is outside the valid zone poolygon\n      // return error and exit\n\n      /* if (!insideZone([ latlng.lat, latlng.lng ])) {\n         this.get('errorMessage').pushError({ detail:'Invalid Zone' });\n         return;\n       }*/\n      // let markerOptions = MARKERS['location'];\n      //const tomtomMarker = tomtom.L.marker(latlng,markerOptions);\n      // this.set('activePOIMarker', tomtomMarker);\n\n      try {\n        if (this.get('activePOIDescription') !== undefined) {\n          let queryString = this.get('activePOIDescription');\n\n          _tomtom.default.poiSearch().key(_environment.default.tomtom.search.searchKey).query(queryString).countrySet(_environment.default.tomtom.search.countrySet).typeahead(false).limit(100) //.limit(1)\n          //.center(latlng)\n          //.radius(ENV.tomtom.search.poiradius)\n          .center(_environment.default.tomtom.search.center).radius(_environment.default.tomtom.search.radius).callback(this.addressPOISearchResults.bind(this)).go();\n        }\n      } catch (e) {\n        console.log(e);\n      }\n    },\n\n    activateGeocode(activeGeocode, record, markerType) {\n      if (!this.get('disabledFindLocationForRecord')) {\n        this.findLocationForRecord(record);\n      }\n\n      this.set('activeGeocode', activeGeocode);\n      this.set('markerType', markerType);\n    },\n\n    deactivateGeocode() {\n      this.set('activeGeocode', false);\n      this.set('tomtomAddress', null);\n      this.set('activeMarker', null);\n      this.set('activePickMarker', null);\n      this.set('activeDropMarker', null);\n      this.set('oldMarker', null);\n      this.set('oldPickMarker', null);\n      this.set('oldDropMarker', null);\n      this.set('oldTripPolyline', null);\n      this.set('oldTripArrow', null);\n      this.set('activeTripArrow', null);\n      this.set('activeTripRouteOnMap', null);\n      this.set('oldTripRouteOnMap', null);\n      this.set('tripRouteOnMap', null);\n      this.set('tripRoutePoints', null);\n      this.set('disabledFindLocationForRecord', false);\n      this.set('markerType', '');\n      this.set('activePOIMarkers', false);\n      this.set('activePOIGeocode', false);\n      this.set('activePOIDescription', '');\n      this.set('activePOIMarkersLayer', null);\n      this.set('activePOIRecord', null);\n      this.set('activePOIIndex', -1);\n      this.set('activeTripPolyline', null);\n    },\n\n    activatePOIGeocode(activeGeocode, record, markerType) {\n      this.set('activePOIGeocode', activeGeocode);\n      this.set('markerType', markerType);\n    },\n\n    deactivatePOIGeocode() {\n      this.set('activeTripPolyline', null);\n      this.set('activePOIGeocode', false);\n      this.set('activeGeocode', false);\n      this.set('tomtomAddress', null);\n      this.set('activeMarker', null);\n      this.set('activePickMarker', null);\n      this.set('activeDropMarker', null);\n      this.set('oldMarker', null);\n      this.set('oldPickMarker', null);\n      this.set('oldDropMarker', null);\n      this.set('oldTripPolyline', null);\n      this.set('oldTripArrow', null);\n      this.set('activeTripArrow', null);\n      this.set('activeTripRouteOnMap', null);\n      this.set('oldTripRouteOnMap', null);\n      this.set('tripRouteOnMap', null);\n      this.set('tripRoutePoints', null);\n      this.set('disabledFindLocationForRecord', false);\n      this.set('markerType', '');\n    },\n\n    reverseGeocodeResult(result) {\n      const latlng = this.get('latlng');\n      result.position = {\n        lat: parseFloat(latlng.lat.toFixed(5)),\n        lon: parseFloat(latlng.lng.toFixed(5))\n      };\n      this.set('tomtomAddress', result);\n    },\n\n    prepareQuery(streetNr, streetName, region) {\n      let searchURL = '';\n\n      if (!Ember.isBlank(streetNr) && !Ember.isBlank(streetNr.trim())) {\n        searchURL = 'streetNr=' + streetNr.toUpperCase();\n      }\n\n      if (!Ember.isBlank(streetName) && !Ember.isBlank(streetName.trim())) {\n        if (!Ember.isBlank(searchURL)) searchURL = searchURL + '&streetName=' + streetName.toUpperCase();else searchURL = 'streetName=' + streetName.toUpperCase();\n      }\n\n      return searchURL;\n    },\n\n    addressLookupAttributes(streetNr, streetName, region, addressData, tripData) {\n      let searchURL = this.prepareQuery(streetNr, streetName, region);\n      this.get('store').query('address-lookup', {\n        searchURL\n      }).then(results => {\n        this.get('geocode').addressLookupResults(results, addressData, tripData);\n      }).catch(function (error) {\n        return null;\n      });\n    },\n\n    saveNewGeocode(latlng) {\n      this.set('latlng', latlng); // if the point is outside the valid zone poolygon\n      // return error and exit\n\n      if (!(0, _zoneValidation.insideZone)([latlng.lat, latlng.lng])) {\n        this.get('errorMessage').pushError({\n          detail: 'Invalid Zone'\n        });\n        return;\n      }\n\n      let markerOptions = _marker.default[this.get('markerType')];\n\n      const tomtomMarker = _tomtom.default.L.marker(this.get('latlng'), markerOptions);\n\n      if (this.get('disabledFindLocationForRecord')) {\n        _tomtom.default.reverseGeocode().key(_environment.default.tomtom.search.searchKey).position(`${latlng.lat},${latlng.lng}`).go().then(this.reverseGeocodeResult.bind(this));\n      } else {\n        this.set('tomtomLatLng', {\n          lat: parseFloat(latlng.lat.toFixed(5)),\n          lon: parseFloat(latlng.lng.toFixed(5))\n        });\n      }\n\n      if (this.get('markerType') === 'pickup') {\n        //////console.log(('activePickMarker',this.get('activePickMarker') ,' tomtomMarker ',tomtomMarker );\n        if (this.get('activePickMarker')) {\n          this.set('oldPickMarker', this.get('activePickMarker'));\n        } else {\n          this.set('oldPickMarker', tomtomMarker);\n        }\n\n        this.set('activePickMarker', tomtomMarker);\n      } else if (this.get('markerType') === 'dropoff') {\n        if (this.get('activeDropMarker')) {\n          this.set('oldDropMarker', this.get('activeDropMarker'));\n        } else {\n          this.set('oldDropMarker', tomtomMarker);\n        }\n\n        this.set('activeDropMarker', tomtomMarker);\n      } else {\n        this.set('oldMarker', this.get('activeMarker'));\n        this.set('activeMarker', tomtomMarker);\n      }\n\n      if (this.get('activePickMarker') && this.get('activeDropMarker')) {\n        let tripPoints = [[this.get('activePickMarker._latlng.lat'), this.get('activePickMarker._latlng.lng')], [this.get('activeDropMarker._latlng.lat'), this.get('activeDropMarker._latlng.lng')]];\n        let arrowPoints = tripPoints.slice(tripPoints.length - 2, tripPoints.length);\n        let polyLineOptions = _polyline.default['dotted'];\n        let arrowOptions = _arrow.default['tripArrowPlannedOffset'];\n        let tripRoutePoints = [];\n        tripRoutePoints.push(this.get('activePickMarker._latlng.lat'));\n        tripRoutePoints.push(this.get('activePickMarker._latlng.lng'));\n        tripRoutePoints.push(this.get('activeDropMarker._latlng.lat'));\n        tripRoutePoints.push(this.get('activeDropMarker._latlng.lng'));\n        this.set('tripRoutePoints', tripRoutePoints);\n        let activeTripArrow = (0, _arrow2.default)(arrowPoints, arrowOptions);\n\n        let tripPolyline = _tomtom.default.L.polyline(tripPoints, polyLineOptions);\n\n        if (this.get('activeTripPolyline')) {\n          this.set('oldTripPolyline', this.get('activeTripPolyline'));\n        } else {\n          this.set('oldTripPolyline', tripPolyline);\n        }\n\n        if (this.get('activeTripArrow')) {\n          this.set('oldTripArrow', this.get('activeTripArrow'));\n        } else {\n          this.set('oldTripArrow', activeTripArrow);\n        }\n\n        this.set('activeTripArrow', activeTripArrow);\n        this.set('activeTripPolyline', tripPolyline);\n      }\n    },\n\n    // geonode is part of DDS' service used by the scheduling engine\n    getGeonode(lat, lng) {\n      //let queryString = 'lat='+lat+'&lon='+lng;\n      return this.get('ajax').request('/pfrestapi/v1/areas/company-id/2', {\n        host: _apiUrls.API.geocodeService.host,\n        contentType: \"application/json\",\n        method: 'GET',\n        data: {\n          lat: lat,\n          lon: lng\n        }\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/map-context\", [\"exports\", \"lodash\", \"ember-inflector\", \"adept-iq/config/column-types\", \"adept-iq/config/filter-types\", \"adept-iq/config/map-layers\", \"adept-iq/classes/markers/agency\", \"adept-iq/classes/markers/stop\", \"adept-iq/classes/markers/vehicle\", \"adept-iq/classes/polylines/route\", \"adept-iq/classes/polylines/trip\", \"adept-iq/classes/polygons/zone\", \"adept-iq/classes/circles/stand\", \"adept-iq/classes/shapes/zone\", \"adept-iq/classes/shapes/stand\", \"adept-iq/config/environment\", \"tomtom\", \"adept-iq/utils/filters\", \"adept-iq/pods/components/generic-widgets/column-widget/utils/compute-ordered-ids\"], function (_exports, _lodash, _emberInflector, _columnTypes, _filterTypes, _mapLayers, _agency, _stop, _vehicle, _route, _trip, _zone, _stand, _zone2, _stand2, _environment, _tomtom, _filters, _computeOrderedIds) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    flatten\n  } = _lodash.default;\n  const DEFAULT_LATLNG = [_environment.default.tomtom.search.center.lat, _environment.default.tomtom.search.center.lon]; // DDS Canada\n\n  var _default = Ember.Service.extend(Ember.Evented, {\n    activeContext: Ember.inject.service(),\n    animationTimer: Ember.inject.service(),\n    store: Ember.inject.service(),\n    editModal: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    isSearchEnabled: false,\n    searchText: '',\n    MCGTrips: _tomtom.default.L.markerClusterGroup({\n      zoomToBoundsOnClick: false,\n      spiderfyOnMaxZoom: false,\n      iconCreateFunction: function (cluster) {\n        return _tomtom.default.L.divIcon({\n          html: cluster.getChildCount(),\n          className: 'myJobcluster',\n          iconSize: _tomtom.default.L.point(40, 40)\n        });\n      }\n    }),\n    MCGVehicles: _tomtom.default.L.markerClusterGroup({\n      zoomToBoundsOnClick: false,\n      spiderfyOnMaxZoom: false,\n      iconCreateFunction: function (cluster) {\n        return _tomtom.default.L.divIcon({\n          html: cluster.getChildCount(),\n          className: 'myVehiclecluster',\n          iconSize: _tomtom.default.L.point(40, 40)\n        });\n      }\n    }),\n    config: _mapLayers.default,\n    contextMenu: null,\n    contextMenuOptions: null,\n    contextMenuPosition: null,\n    contextMenuRecord: null,\n\n    init() {\n      this._super(...arguments);\n\n      this.set('contextMenuOptions', [{\n        id: 'edit',\n        name: 'Edit',\n        action: model => {\n          const inflector = new _emberInflector.default(_emberInflector.default.defaultRules);\n          const modelName = inflector.pluralize(model.constructor.modelName);\n          const component = `iq-widgets/${modelName}-form-widget`;\n          this.get('editModal').open(component, [model]);\n        }\n      }]);\n    },\n\n    isFiltered: Ember.computed('layers', function () {\n      return !!this.get('layers').find(({\n        labels\n      }) => {\n        return !!labels.find(label => {\n          const {\n            filterTypeId,\n            filterValues\n          } = label;\n          const filterType = _filterTypes.filterTypesHash[filterTypeId];\n          return (0, _filters.testFilterValues)(filterType, filterValues);\n        });\n      });\n    }),\n    // merge dashboard's `mapState` on top of layer config defaults\n    layers: Ember.computed('workspace.dashboard.mapState', function () {\n      const config = _lodash.default.cloneDeep(_mapLayers.default);\n\n      const mapState = this.get('workspace.dashboard.mapState'); // remove labels that are un-available\n\n      config.forEach(currConfig => {\n        const labels = [];\n        currConfig.labels.forEach(label => {\n          if (!label.unAvailable) {\n            labels.push(label);\n          }\n        });\n\n        if (labels.length > 0) {\n          currConfig.labels = labels;\n        }\n      });\n      if (!mapState) return config;\n      Object.entries(mapState).forEach(([layerId, layerState]) => {\n        const layer = config.findBy('id', layerId);\n        if (!layer) return;\n        ['isVisible', 'opacity'].forEach(property => {\n          if (Ember.isNone(layerState[property])) return;\n          layer[property] = layerState[property];\n        });\n\n        if (layerState.types) {\n          Object.entries(layerState.types).forEach(([typeId, typeState]) => {\n            const type = layer.types.findBy('id', typeId);\n            if (!type) return;\n            ['isVisible'].forEach(property => {\n              if (Ember.isNone(typeState[property])) return;\n              type[property] = typeState[property];\n            });\n          });\n        }\n\n        if (layerState.labels) {\n          Object.entries(layerState.labels).forEach(([labelId, labelState]) => {\n            const label = layer.labels.findBy('id', labelId);\n            if (!label) return;\n            ['isVisible', 'index', 'filterTypeId', 'filterValues'].forEach(property => {\n              if (Ember.isNone(labelState[property])) return;\n              label[property] = labelState[property];\n            });\n          });\n        }\n\n        layer.labels = layer.labels || []; // ensure every label has index\n\n        const orderedIds = (0, _computeOrderedIds.default)(layer.labels);\n        orderedIds.forEach((labelId, index) => {\n          const label = layer.labels.findBy('id', labelId);\n          label.index = index;\n        });\n      });\n      return config;\n    }),\n    lat: Ember.computed('activeContext.checkedItems.[]', function () {\n      console.log('activeContext.checkedItems ', this.get('activeContext.checkedItems'));\n      const lats = this.get('activeContext.checkedItems').map(function (a) {\n        return a.record.lat;\n      });\n      const lat = this.computeCenter(lats);\n      return isNaN(lat) ? DEFAULT_LATLNG[0] : lat;\n    }),\n    lng: Ember.computed('activeContext.checkedItems.[]', function () {\n      const lngs = this.get('activeContext.checkedItems').map(function (a) {\n        return a.record.lng;\n      });\n      const lng = this.computeCenter(lngs);\n      return isNaN(lng) ? DEFAULT_LATLNG[1] : lng;\n    }),\n    // eslint-disable-next-line ember/no-duplicate-dependent-keys\n    polylines: Ember.computed('activeContext.implicitData', 'layers', 'searchText', function () {\n      // each item is a store record, with `otp` if so endowed\n      const items = this.get('activeContext.implicitData');\n      const searchText = this.get('searchText');\n      const layers = this.get('layers').filterBy('type', 'polylines');\n      const layerPolylines = layers.map(layer => {\n        if (layer.isVisible === false) return [];\n        const layerItems = items.filterBy('modelName', layer.modelName);\n        const layerRecords = layerItems.mapBy('record');\n        const filterNode = (0, _filters.buildCompoundFilterNode)('and', [this.buildSearchFilterNode(layer, searchText), this.buildColumnFilterNode(layer)]);\n        const filter = (0, _filters.buildFilterFunction)(filterNode);\n        const stopsIsVisible = this.get('layers').findBy('id', 'stops').isVisible;\n        return layer.types.map(type => {\n          if (type.isVisible === false) return [];\n          let typeRecords = type.valueKey ? layerRecords.filterBy(type.valueKey, type.id) : layerRecords;\n          const filteredRecords = typeRecords.filter(filter);\n          return filteredRecords.reduce((arr, record) => {\n            const polyline = this.polylineObjectFor(layer, type, record);\n            const label = this.getLabel(record, layer);\n            let otpStatus = ''; // Include Routes when otpStatus is mocked or provided.\n\n            if (layer.id === 'trips') {\n              otpStatus = this._getOTP_ODLE_styleSuffix(record);\n            }\n\n            polyline.setProperties({\n              style: `${type.style}${otpStatus}`,\n              type: type.id,\n              label: label,\n              opacity: layer.opacity,\n              otpStatus\n            });\n\n            if (layer.id === 'trips') {\n              polyline.set('stopsIsVisible', stopsIsVisible);\n            }\n\n            arr.push(polyline);\n            return arr;\n          }, []);\n        });\n      });\n      return flatten(flatten(layerPolylines));\n    }),\n    // eslint-disable-next-line ember/no-duplicate-dependent-keys\n    markers: Ember.computed('activeContext.serverFilteringChecked', 'activeContext.{implicitData,emergencyVehicles}', 'layers', 'searchText', function () {\n      const vehicles = this.get('activeContext.emergencyVehicles').toArray();\n      const stops = this.get('activeContext.activeStops').toArray();\n      const items = this.get('activeContext.implicitData');\n      const searchText = this.get('searchText');\n      const layers = this.get('layers').filterBy('type', 'markers');\n      const layerMarkers = layers.map(layer => {\n        if (layer.isVisible === false) return [];\n        let layerRecords = [];\n\n        if (layer.isActive) {\n          //layerRecords = items.filterBy('modelName', layer.modelName).mapBy('record');\n          if (layer.modelName === 'vehicle') {\n            layerRecords = layerRecords.pushObjects(vehicles).uniqBy('id');\n          } else if (layer.modelName === 'stop') {\n            layerRecords = layerRecords.pushObjects(stops).uniqBy('id');\n          }\n        } else {\n          // TODO: query `workspace-context` instead of store\n          layerRecords = items.filterBy('modelName', layer.modelName).mapBy('record');\n        }\n\n        const filterNode = (0, _filters.buildCompoundFilterNode)('and', [this.buildSearchFilterNode(layer, searchText), this.buildColumnFilterNode(layer)]);\n        const filter = (0, _filters.buildFilterFunction)(filterNode);\n        return layer.types.map(type => {\n          if (type.isVisible === false) return [];\n          let typeRecords = layerRecords;\n\n          if (type.valueKey) {\n            typeRecords = layerRecords.filter(record => {\n              return record.get(type.valueKey) === type.id;\n            });\n          }\n\n          const filteredRecords = typeRecords.filter(filter);\n          return filteredRecords.reduce((arr, record) => {\n            const marker = this.markerObjectFor(layer, type, record); // TODO: move this to marker model\n\n            let markerStyle = type.style;\n            markerStyle = this._getLayerStyleSuffix(record) + record.get('statusValue'); //this._getOTPstyleSuffix(record, type.id);\n\n            marker.setProperties({\n              style: markerStyle,\n              type: type.id,\n              label: this.getLabel(record, layer),\n              MCGLabel: this.getMCGLabel(record, layer),\n              opacity: layer.opacity,\n              isActive: layer.isActive,\n              isTraversal: layer.isTraversal,\n              isMCG: layer.isMCG,\n              MCGTrips: this.get('MCGTrips'),\n              MCGVehicles: this.get('MCGVehicles')\n            });\n            arr.push(marker);\n            return arr;\n          }, []);\n        });\n      });\n      return flatten(flatten(layerMarkers));\n    }),\n    polygons: Ember.computed('activeContext.implicitData', 'layers', 'searchText', function () {\n      //const items = this.get('store').peekAll('zone');\n      const items = this.get('activeContext.implicitData');\n      const searchText = this.get('searchText');\n      const layers = this.get('layers').filterBy('type', 'polygons');\n      const layerPolygons = layers.map(layer => {\n        if (layer.isVisible === false) return [];\n        let layerRecords;\n\n        if (layer.isActive) {\n          layerRecords = items.filterBy('modelName', layer.modelName).mapBy('record');\n        } else {\n          // TODO: query `workspace-context` instead of store\n          layerRecords = this.get('store').peekAll(layer.modelName);\n        }\n\n        const filterNode = (0, _filters.buildCompoundFilterNode)('and', [this.buildSearchFilterNode(layer, searchText), this.buildColumnFilterNode(layer)]);\n        const filter = (0, _filters.buildFilterFunction)(filterNode);\n        return layer.types.map(type => {\n          if (type.isVisible === false) return [];\n          let typeRecords = layerRecords;\n\n          if (type.valueKey) {\n            typeRecords = layerRecords.filter(record => {\n              return record.get(type.valueKey) === type.id;\n            });\n          }\n\n          const filteredRecords = typeRecords.filter(filter);\n          return filteredRecords.reduce((arr, record) => {\n            const polygon = this.polygonObjectFor(layer, type, record); // TODO: move this to polygon model\n\n            const polygonStyle = type.style;\n            polygon.setProperties({\n              style: polygonStyle,\n              type: type.id,\n              label: this.getLabel(record, layer),\n              parentLabel: this.getParentLabel(record, layer),\n              opacity: layer.opacity,\n              isActive: layer.isActive\n            });\n            arr.push(polygon);\n            return arr;\n          }, []);\n        });\n      });\n      return flatten(flatten(layerPolygons));\n    }),\n    circles: Ember.computed('activeContext.implicitData', 'layers', 'searchText', function () {\n      //const items = this.get('store').peekAll('zone');\n      const items = this.get('activeContext.implicitData');\n      const searchText = this.get('searchText');\n      const layers = this.get('layers').filterBy('type', 'circles');\n      const layerCircles = layers.map(layer => {\n        if (layer.isVisible === false) return [];\n        let layerRecords;\n\n        if (layer.isActive) {\n          layerRecords = items.filterBy('modelName', layer.modelName).mapBy('record');\n        } else {\n          // TODO: query `workspace-context` instead of store\n          layerRecords = this.get('store').peekAll(layer.modelName);\n        }\n\n        const filterNode = (0, _filters.buildCompoundFilterNode)('and', [this.buildSearchFilterNode(layer, searchText), this.buildColumnFilterNode(layer)]);\n        const filter = (0, _filters.buildFilterFunction)(filterNode);\n        return layer.types.map(type => {\n          if (type.isVisible === false) return [];\n          let typeRecords = layerRecords;\n\n          if (type.valueKey) {\n            typeRecords = layerRecords.filter(record => {\n              return record.get(type.valueKey) === type.id;\n            });\n          }\n\n          const filteredRecords = typeRecords.filter(filter);\n          return filteredRecords.reduce((arr, record) => {\n            const circle = this.circleObjectFor(layer, type, record); // TODO: move this to polygon model\n\n            const circleStyle = type.style;\n            circle.setProperties({\n              style: circleStyle,\n              type: type.id,\n              label: this.getLabel(record, layer),\n              parentLabel: this.getParentLabel(record, layer),\n              opacity: layer.opacity,\n              isActive: layer.isActive,\n              radius: record.get('radius')\n            });\n            arr.push(circle);\n            return arr;\n          }, []);\n        });\n      });\n      return flatten(flatten(layerCircles));\n    }),\n    // eslint-disable-next-line ember/no-duplicate-dependent-keys\n    shapes: Ember.computed('activeContext.implicitData', 'layers', 'searchText', function () {\n      //const items = this.get('store').peekAll('zone');\n      const items = this.get('activeContext.implicitData');\n      const searchText = this.get('searchText');\n      const layers = this.get('layers').filterBy('type', 'shapes');\n      const layerShapes = layers.map(layer => {\n        if (layer.isVisible === false) return [];\n        let layerRecords;\n\n        if (layer.isActive) {\n          layerRecords = items.filterBy('modelName', layer.modelName).mapBy('record');\n        } else {\n          // TODO: query `workspace-context` instead of store\n          layerRecords = this.get('store').peekAll(layer.modelName);\n        }\n\n        const filterNode = (0, _filters.buildCompoundFilterNode)('and', [this.buildSearchFilterNode(layer, searchText), this.buildColumnFilterNode(layer)]);\n        const filter = (0, _filters.buildFilterFunction)(filterNode);\n        return layer.types.map(type => {\n          if (type.isVisible === false) return [];\n          let typeRecords = layerRecords;\n\n          if (type.valueKey) {\n            typeRecords = layerRecords.filter(record => {\n              return record.get(type.valueKey) === type.id;\n            });\n          }\n\n          const filteredRecords = typeRecords.filter(filter);\n          return filteredRecords.reduce((arr, record) => {\n            const shape = this.shapeObjectFor(layer, type, record); // TODO: move this to polygon model\n\n            const shapeStyle = type.style;\n            shape.setProperties({\n              style: shapeStyle,\n              type: type.id,\n              label: this.getLabel(record, layer),\n              parentLabel: this.getParentLabel(record, layer),\n              opacity: layer.opacity,\n              isActive: layer.isActive,\n              radius: record.get('radius'),\n              noOfPoints: record.get('noOfPoints')\n            });\n            arr.push(shape);\n            return arr;\n          }, []);\n        });\n      });\n      return flatten(flatten(layerShapes));\n    }),\n\n    // TODO: this logic should be encapsulated in a data join\n    markerObjectFor(layer, layerType, record) {\n      if (!this._markerCache) {\n        this._markerCache = {};\n      }\n\n      const id = `${layer.id}-${layerType.id}-${record.get('id')}`;\n      let marker = this._markerCache[id];\n\n      if (!marker) {\n        const markerClass = this.markerClassForLayer(layer);\n        marker = markerClass.create({\n          id,\n          record,\n          animationTimer: this.get('animationTimer')\n        });\n        this._markerCache[id] = marker;\n      }\n\n      return marker;\n    },\n\n    // TODO: this logic should be encapsulated in a data join\n    polygonObjectFor(layer, layerType, record) {\n      if (!this._polygonCache) {\n        this._polygonCache = {};\n      }\n\n      const id = `${layer.id}-${layerType.id}-${record.get('id')}`;\n      let polygon = this._polygonCache[id];\n\n      if (!polygon) {\n        const polygonClass = this.polygonClassForLayer(layer);\n        polygon = polygonClass.create({\n          id,\n          record,\n          animationTimer: this.get('animationTimer')\n        });\n        this._polygonCache[id] = polygon;\n      }\n\n      return polygon;\n    },\n\n    circleObjectFor(layer, layerType, record) {\n      if (!this._circleCache) {\n        this._circleCache = {};\n      }\n\n      const id = `${layer.id}-${layerType.id}-${record.get('id')}`;\n      let circle = this._circleCache[id];\n\n      if (!circle) {\n        const circleClass = this.circleClassForLayer(layer);\n        circle = circleClass.create({\n          id,\n          record,\n          animationTimer: this.get('animationTimer')\n        });\n        this._circleCache[id] = circle;\n      }\n\n      return circle;\n    },\n\n    shapeObjectFor(layer, layerType, record) {\n      if (!this._shapeCache) {\n        this._shapeCache = {};\n      }\n\n      const id = `${layer.id}-${layerType.id}-${record.get('id')}`;\n      let shape = this._shapeCache[id];\n\n      if (!shape) {\n        const shapeClass = this.shapeClassForLayer(layer);\n        shape = shapeClass.create({\n          id,\n          record,\n          animationTimer: this.get('animationTimer')\n        });\n        this._shapeCache[id] = shape;\n      }\n\n      return shape;\n    },\n\n    polylineObjectFor(layer, layerType, record) {\n      if (!this._polylineCache) {\n        this._polylineCache = {};\n      }\n\n      const id = `${layer.id}-${layerType.id}-${record.get('id')}`;\n      let polyline = this._polylineCache[id];\n\n      if (!polyline) {\n        const polylineClass = this.polylineClassForLayer(layer);\n        polyline = polylineClass.create({\n          id,\n          record,\n          animationTimer: this.get('animationTimer')\n        });\n        this._polylineCache[id] = polyline;\n      }\n\n      return polyline;\n    },\n\n    markerClassForLayer(layer) {\n      switch (layer.id) {\n        case 'agency':\n          return _agency.default;\n\n        case 'vehicles':\n          return _vehicle.default;\n\n        case 'stops':\n          return _stop.default;\n\n        default:\n          throw `unhandled layer id '${layer.id}'`;\n      }\n    },\n\n    polylineClassForLayer(layer) {\n      switch (layer.id) {\n        case 'routes':\n          return _route.default;\n\n        case 'trips':\n          return _trip.default;\n\n        default:\n          throw `unhandled layer id '${layer.id}'`;\n      }\n    },\n\n    polygonClassForLayer(layer) {\n      switch (layer.id) {\n        case 'zones':\n          return _zone.default;\n\n        default:\n          throw `unhandled layer id '${layer.id}'`;\n      }\n    },\n\n    circleClassForLayer(layer) {\n      switch (layer.id) {\n        case 'stands':\n          return _stand.default;\n\n        default:\n          throw `unhandled layer id '${layer.id}'`;\n      }\n    },\n\n    shapeClassForLayer(layer) {\n      switch (layer.id) {\n        case 'stands':\n          return _stand2.default;\n\n        case 'zones':\n          return _zone2.default;\n\n        default:\n          throw `unhandled layer id '${layer.id}'`;\n      }\n    },\n\n    buildSearchFilterNode(layer, searchText) {\n      if (Ember.isBlank(searchText) || !layer.isVisible) return null;\n      if (!layer.isVisible) return null;\n      const filterNodes = layer.labels.reduce((arr, label) => {\n        if (!label.isSearchable) return arr; // TODO: determine if we shuld be searching hidden labels\n        // if (!label.isVisible) return arr;\n\n        const filterType = _columnTypes.columnTypesHash[label.type].searchFilterType;\n        const filterNode = (0, _filters.buildValueFilterNode)(filterType, label.valuePath, searchText);\n        arr.push(filterNode);\n        return arr;\n      }, []);\n      return (0, _filters.buildCompoundFilterNode)('or', filterNodes);\n    },\n\n    buildColumnFilterNode(layer) {\n      if (!layer.isVisible) return null;\n      const filterNodes = layer.labels.reduce((arr, label) => {\n        if (!label.isVisible || !label.isSearchable) return arr;\n        const filterType = _filterTypes.filterTypesHash[label.filterTypeId];\n        let filterValues = label.filterValues;\n        if (!(0, _filters.testFilterValues)(filterType, filterValues)) return arr;\n        filterValues = label.filterValues.map(filterType.parseValue);\n        const filterNode = (0, _filters.buildValueFilterNode)(filterType, label.valuePath, filterValues);\n        arr.push(filterNode);\n        return arr;\n      }, []);\n      return (0, _filters.buildCompoundFilterNode)('and', filterNodes);\n    },\n\n    computeCenter(values) {\n      if (Ember.isEmpty(values)) return NaN;\n      const [min, max] = values.reduce(([min, max], value) => {\n        if (Ember.isPresent(value)) {\n          min = Math.max(min, value);\n          max = Math.min(max, value);\n        }\n\n        return [min, max];\n      }, [-Infinity, Infinity]); // will return NaN if min and max are infinite\n\n      return (min + max) / 2;\n    },\n\n    getLabel(record, layer) {\n      const lines = [];\n      const sortedLabels = layer.labels.sort((a, b) => a.index - b.index);\n      sortedLabels.forEach(label => {\n        if (!label.isVisible || label.parentLabel) return;\n\n        if (!Ember.isBlank(label.imgPath)) {\n          lines.push(`<i class=\"fa ${label.imgPath}\"></i> ${record.get(label.valuePath)}`);\n        } else {\n          lines.push(`${label.label} ${record.get(label.valuePath)}`);\n        }\n      });\n      return `${lines.join('<br/>')}`;\n    },\n\n    getMCGLabel(record, layer) {\n      const lines = [];\n      const sortedLabels = layer.labels.sort((a, b) => a.index - b.index);\n      sortedLabels.forEach(label => {\n        if (!label.isMCGVisible || label.parentLabel) return;\n\n        if (!Ember.isBlank(label.imgPath)) {\n          lines.push(`<i class=\"fa ${label.imgPath}\"></i> ${record.get(label.valuePath)}`);\n        } else {\n          lines.push(`${label.label} ${record.get(label.valuePath)}`);\n        }\n      });\n      return `${lines.join('<br/>')}`;\n    },\n\n    getParentLabel(record, layer) {\n      const lines = [];\n      const sortedLabels = layer.labels.sort((a, b) => a.index - b.index);\n      sortedLabels.forEach(label => {\n        if (!label.isVisible || !label.parentLabel) return;\n        lines.push(`${record.get(label.valuePath)}`);\n      });\n      return `${lines.join('<br/>')}`;\n    },\n\n    setLayerVisibility(layerId, isVisible) {\n      this.get('workspace.dashboard').mergeMapState({\n        [layerId]: {\n          isVisible\n        }\n      });\n    },\n\n    setLayerOpacity(layerId, opacity) {\n      this.get('workspace.dashboard').mergeMapState({\n        [layerId]: {\n          opacity\n        }\n      });\n    },\n\n    setLayerTypeVisibility(layerId, typeId, isVisible) {\n      this.get('workspace.dashboard').mergeMapState({\n        [layerId]: {\n          types: {\n            [typeId]: {\n              isVisible\n            }\n          }\n        }\n      });\n    },\n\n    setLayerLabelVisibility(layerId, labelId, isVisible) {\n      this.get('workspace.dashboard').mergeMapState({\n        [layerId]: {\n          labels: {\n            [labelId]: {\n              isVisible\n            }\n          }\n        }\n      });\n    },\n\n    setLayerLabelFilterType(layerId, labelId, filterTypeId) {\n      this.get('workspace.dashboard').mergeMapState({\n        [layerId]: {\n          labels: {\n            [labelId]: {\n              filterTypeId\n            }\n          }\n        }\n      });\n    },\n\n    setLayerLabelFilterValues(layerId, labelId, filterValues) {\n      this.get('workspace.dashboard').mergeMapState({\n        [layerId]: {\n          labels: {\n            [labelId]: {\n              filterValues\n            }\n          }\n        }\n      });\n    },\n\n    setLayerLabelsOrder(layerId, labelIds) {\n      const labels = labelIds.reduce((obj, labelId, index) => {\n        obj[labelId] = {\n          index\n        };\n        return obj;\n      }, {});\n      this.get('workspace.dashboard').mergeMapState({\n        [layerId]: {\n          labels\n        }\n      });\n    },\n\n    setContextMenuPosition(e) {\n      this.set('contextMenuPosition', function () {\n        return {\n          style: {\n            top: e.originalEvent.clientY,\n            left: e.originalEvent.clientX\n          }\n        };\n      });\n    },\n\n    onContextMenuOptionClick(option) {\n      const record = this.get('contextMenuRecord');\n      this.get('contextMenu').actions.close();\n\n      if (option.action) {\n        option.action(record);\n      }\n    },\n\n    onLayerClick()\n    /* modelName, id, e */\n    {},\n\n    onLayerDblClick(modelName, id\n    /*, e*/\n    ) {\n      const record = this.get('store').peekRecord(modelName, id);\n      this.get('activeContext').replaceCheckedRecordsByType(record);\n    },\n\n    onLayerContextMenu(modelName, id, e) {\n      const record = this.get('store').peekRecord(modelName, id);\n      this.setContextMenuPosition(e);\n      this.set('contextMenuRecord', record);\n      this.get('contextMenu').actions.open();\n    },\n\n    _getOTPstyleSuffix(record, typeId) {\n      let otp = record.get('otp'),\n          suffix = '';\n      if (typeId !== 'pick' && typeId !== 'drop') return suffix;\n\n      if (otp === 'L') {\n        suffix += 'Late';\n      } else if (otp === 'D') {\n        suffix += 'Danger';\n      }\n\n      return suffix;\n    },\n\n    _getLayerStyleSuffix(record) {\n      let suffix = '';\n\n      if (record.constructor.modelName === 'vehicle') {\n        suffix = 'vehicle';\n      }\n\n      return suffix;\n    },\n\n    _getOTP_ODLE_styleSuffix(record) {\n      switch (record.get('otpStatus')) {\n        case 'L':\n          return 'Late';\n\n        case 'D':\n          return 'Danger';\n\n        default:\n          return '';\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/maximizer\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    router: Ember.inject.service('router'),\n    workspace: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    dashboard: Ember.computed.alias('workspace.dashboard'),\n    maximizedWidget: null,\n    checkedItems: null,\n\n    maximize(widget) {\n      this.set('maximizedWidget', widget);\n      this.set('checkedItems', this.get('activeContext.checkedItems'));\n      const router = this.get('router');\n      router.transitionTo('maximized');\n    },\n\n    minimize() {\n      this.set('maximizedWidget', null);\n      const router = this.get('router');\n      router.transitionTo('dashboard', this.get('dashboard').model);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/media\", [\"exports\", \"ember-responsive/services/media\"], function (_exports, _media) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _media.default;\n  _exports.default = _default;\n});","define(\"adept-iq/services/modal-dialog\", [\"exports\", \"adept-iq/config/environment\"], function (_exports, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  function computedFromConfig(prop) {\n    return Ember.computed(function () {\n      return _environment.default['ember-modal-dialog'] && _environment.default['ember-modal-dialog'][prop];\n    });\n  }\n\n  var _default = Ember.Service.extend({\n    hasEmberTether: computedFromConfig('hasEmberTether'),\n    hasLiquidWormhole: computedFromConfig('hasLiquidWormhole'),\n    hasLiquidTether: computedFromConfig('hasLiquidTether'),\n    destinationElementId: null // injected by initializer\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/modal\", [\"exports\", \"ember-modal-service/services/modal\"], function (_exports, _modal) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _modal.default;\n    }\n  });\n});","define(\"adept-iq/services/moment\", [\"exports\", \"ember-moment/services/moment\", \"adept-iq/config/environment\"], function (_exports, _moment, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const {\n    get\n  } = Ember;\n\n  var _default = _moment.default.extend({\n    defaultFormat: get(_environment.default, 'moment.outputFormat')\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/power-calendar\", [\"exports\", \"ember-power-calendar/services/power-calendar\"], function (_exports, _powerCalendar) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _powerCalendar.default;\n    }\n  });\n});","define(\"adept-iq/services/resize-detector\", [\"exports\", \"ember-element-resize-detector/services/resize-detector\"], function (_exports, _resizeDetector) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _resizeDetector.default;\n    }\n  });\n});","define(\"adept-iq/services/riderprofile\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    riderProfileData() {\n      let riderProfileData = {\n        \"data\": [{\n          \"type\": \"rider-profile\",\n          \"id\": \"\",\n          \"attributes\": {\n            \"provider\": {\n              \"type\": \"dedicated\",\n              \"id\": \"\",\n              \"name\": \"Yellow Cabs Of Our City\"\n            },\n            \"name\": \"\",\n            \"contactLastName\": \"\",\n            \"contactFirstName\": \"\",\n            \"contactMiddleName\": \"\",\n            \"phone1\": {\n              \"number\": \"\",\n              \"areaCode\": \"\",\n              \"extension\": \"\",\n              \"type\": \"fixed\"\n            },\n            \"phone2\": {\n              \"number\": \"\",\n              \"areaCode\": \"\",\n              \"extension\": \"\",\n              \"type\": \"fixed\"\n            },\n            \"email\": \"\",\n            \"countryCode\": \"\",\n            \"notes\": {\n              \"driver\": \"\",\n              \"dispatcher\": \"\"\n            },\n            \"callout\": 0,\n            \"account\": {\n              \"customerId\": \"\",\n              \"accountId\": \"\"\n            },\n            \"requiredAttributes\": [{\n              \"type\": \"\",\n              \"cnt\": 0\n            }],\n            \"boardingOverhead\": {\n              \"loadTime\": 8,\n              \"unloadTime\": 5\n            },\n            \"defaultFavoritePaymentId\": 1,\n            \"favoritePayments\": [{\n              \"id\": 1,\n              \"currencyCode\": \"CAD\",\n              \"tip\": {\n                \"percent\": 0,\n                \"minValue\": 0\n              },\n              \"creditCardId\": \"\"\n            }],\n            \"defaultFavoriteTripId\": 1,\n            \"favoriteTrips\": [{\n              \"priceType\": \"normal\",\n              \"price\": {\n                \"name\": \"\",\n                \"detail\": \"\",\n                \"amount\": 0\n              },\n              \"customerReference\": \"\",\n              \"tripId\": \"\",\n              \"pickup\": {\n                \"id\": 1,\n                \"name\": \"work\",\n                \"address\": {\n                  \"formattedAddress\": \"\",\n                  \"streetName\": \"\",\n                  \"streetNr\": \"\",\n                  \"unitNr\": \"\",\n                  \"region\": \"\",\n                  \"postCode\": \"\",\n                  \"city\": \"\",\n                  \"state\": \"\",\n                  \"country\": \"\",\n                  \"description\": \"\",\n                  \"coord\": {\n                    \"lat\": 0,\n                    \"lng\": 0\n                  }\n                },\n                \"noteForDriver\": \"\"\n              },\n              \"dropoff\": {\n                \"id\": 1,\n                \"name\": \"work\",\n                \"address\": {\n                  \"formattedAddress\": \"\",\n                  \"streetName\": \"\",\n                  \"streetNr\": \"\",\n                  \"unitNr\": \"\",\n                  \"region\": \"\",\n                  \"postCode\": \"\",\n                  \"city\": \"\",\n                  \"state\": \"\",\n                  \"country\": \"\",\n                  \"description\": \"\",\n                  \"coord\": {\n                    \"lat\": 0,\n                    \"lng\": 0\n                  }\n                },\n                \"noteForDriver\": \"\"\n              }\n            }],\n            \"eligibilities\": [{\n              \"id\": \"\",\n              \"type\": \"\",\n              \"from\": \"2019-05-01T23:27:19.484Z\",\n              \"to\": \"2019-05-01T23:27:19.484Z\"\n            }],\n            \"SSN\": \"\",\n            \"dob\": \"2019-05-01T23:27:19.484Z\",\n            \"locale\": \"\",\n            \"externalId\": \"\",\n            \"status\": \"active\"\n          }\n        }]\n      };\n      return riderProfileData;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/routeexecevent\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    routeStartData() {\n      let routeStartData = {\n        \"data\": {\n          \"type\": \"routeExecEvent\",\n          \"attributes\": {\n            \"routeId\": \"\",\n            \"content\": {\n              \"type\": \"pullOut\",\n              \"actualTime\": \"\"\n            },\n            \"driver\": {\n              \"id\": \"\",\n              \"badgeNr\": \"\",\n              \"name\": \"\"\n            },\n            \"vehicle\": {\n              \"id\": \"\",\n              \"callsign\": \"\",\n              \"location\": {\n                \"coord\": {\n                  \"lat\": 0.0,\n                  \"lng\": 0.0\n                },\n                \"time\": \"\"\n              },\n              \"odo\": 0\n            }\n          }\n        }\n      };\n      return routeStartData;\n    },\n\n    routeEndData() {\n      let routeEndData = {\n        \"data\": {\n          \"type\": \"routeExecEvent\",\n          \"attributes\": {\n            \"routeId\": \"\",\n            \"content\": {\n              \"type\": \"pullIn\",\n              \"actualTime\": \"\"\n            },\n            \"driver\": {\n              \"id\": \"\",\n              \"badgeNr\": \"\",\n              \"name\": \"\"\n            },\n            \"vehicle\": {\n              \"id\": \"\",\n              \"callsign\": \"\",\n              \"location\": {\n                \"coord\": {\n                  \"lat\": 0.0,\n                  \"lng\": 0.0\n                },\n                \"time\": \"\"\n              },\n              \"odo\": 0\n            }\n          }\n        }\n      };\n      return routeEndData;\n    },\n\n    stopArriveData() {\n      let stopArriveData = {\n        \"data\": {\n          \"type\": \"routeExecEvent\",\n          \"attributes\": {\n            \"trackingId\": \"1\",\n            \"routeId\": \"\",\n            \"content\": {\n              \"type\": \"arrive\",\n              \"stopIndex\": 0,\n              \"stopId\": \"\",\n              \"actualTime\": \"\",\n              \"passengerEvents\": [{\n                \"passengerId\": \"\",\n                \"passengerType\": \"client\",\n                \"type\": \"pickup\",\n                \"tripId\": \"\"\n              }]\n            },\n            \"driver\": {\n              \"id\": \"\",\n              \"badgeNr\": \"\",\n              \"name\": \"\"\n            },\n            \"vehicle\": {\n              \"id\": \"\",\n              \"callsign\": \"\",\n              \"location\": {\n                \"coord\": {\n                  \"lat\": 0.0,\n                  \"lng\": 0.0\n                },\n                \"time\": \"\"\n              },\n              \"odo\": 0\n            }\n          }\n        }\n      };\n      return stopArriveData;\n    },\n\n    stopDepartData() {\n      let stopDepartData = {\n        \"data\": {\n          \"type\": \"routeExecEvent\",\n          \"attributes\": {\n            \"trackingId\": \"\",\n            \"routeId\": \"\",\n            \"content\": {\n              \"type\": \"depart\",\n              \"stopIndex\": 0,\n              \"stopId\": \"\",\n              \"actualTime\": \"\",\n              \"passengerEvents\": [{\n                \"passengerId\": \"\",\n                \"passengerType\": \"client\",\n                \"type\": \"pickup\",\n                \"tripId\": \"\"\n              }]\n            },\n            \"driver\": {\n              \"id\": \"\",\n              \"badgeNr\": \"\",\n              \"name\": \"\"\n            },\n            \"vehicle\": {\n              \"id\": \"\",\n              \"callsign\": \"\",\n              \"location\": {\n                \"coord\": {\n                  \"lat\": 0.0,\n                  \"lng\": 0.0\n                },\n                \"time\": \"\"\n              },\n              \"odo\": 0.0\n            }\n          }\n        }\n      };\n      return stopDepartData;\n    },\n\n    onBreakData() {\n      let onBreakData = {\n        \"data\": {\n          \"type\": \"routeExecEvent\",\n          \"attributes\": {\n            \"trackingId\": \"1\",\n            \"routeId\": \"2\",\n            \"content\": {\n              \"type\": \"onBreak\",\n              \"actualTime\": \"2018-07-13T16:52:08.777Z\",\n              \"breakId\": \"13\"\n            },\n            \"driver\": {\n              \"id\": \"19031\",\n              \"badgeNr\": \"19031\",\n              \"name\": \"DRVR\"\n            },\n            \"vehicle\": {\n              \"id\": \"214\",\n              \"callsign\": \"214\",\n              \"location\": {\n                \"coord\": {\n                  \"lat\": 46.05991,\n                  \"lng\": -118.36189\n                },\n                \"time\": \"2018-07-13T15:52:08.777Z\"\n              },\n              \"mov\": {\n                \"speed\": 25,\n                \"heading\": 15\n              },\n              \"odo\": 154783.6\n            }\n          }\n        }\n      };\n      return onBreakData;\n    },\n\n    offBreakData() {\n      let offBreakData = {\n        \"data\": {\n          \"type\": \"routeExecEvent\",\n          \"attributes\": {\n            \"trackingId\": \"1\",\n            \"routeId\": \"2\",\n            \"content\": {\n              \"type\": \"offBreak\",\n              \"actualTime\": \"2018-07-13T16:52:08.777Z\",\n              \"breakId\": \"13\"\n            },\n            \"driver\": {\n              \"id\": \"19031\",\n              \"badgeNr\": \"19031\",\n              \"name\": \"DRVR\"\n            },\n            \"vehicle\": {\n              \"id\": \"214\",\n              \"callsign\": \"214\",\n              \"location\": {\n                \"coord\": {\n                  \"lat\": 46.05991,\n                  \"lng\": -118.36189\n                },\n                \"time\": \"2018-07-13T15:52:08.777Z\"\n              },\n              \"mov\": {\n                \"speed\": 25,\n                \"heading\": 15\n              },\n              \"odo\": 154783.6\n            }\n          }\n        }\n      };\n      return offBreakData;\n    },\n\n    noShowData() {\n      let noShowData = {\n        \"data\": {\n          \"type\": \"routeExecEvent\",\n          \"attributes\": {\n            \"trackingId\": \"\",\n            \"routeId\": \"\",\n            \"content\": {\n              \"type\": \"depart\",\n              \"stopIndex\": 1,\n              \"stopId\": \"\",\n              \"actualTime\": \"\",\n              \"passengerEvents\": [{\n                \"passengerId\": \"\",\n                \"passengerType\": \"\",\n                \"type\": \"noShow\",\n                \"details\": {\n                  \"code\": \"\",\n                  \"message\": \"\"\n                },\n                \"tripId\": \"\"\n              }]\n            },\n            \"driver\": {\n              \"id\": \"\",\n              \"badgeNr\": \"\",\n              \"name\": \"\"\n            },\n            \"vehicle\": {\n              \"id\": \"\",\n              \"callsign\": \"\",\n              \"location\": {\n                \"coord\": {\n                  \"lat\": 0.0,\n                  \"lng\": 0.0\n                },\n                \"time\": \"\"\n              },\n              \"odo\": 0.0\n            }\n          }\n        }\n      };\n      return noShowData;\n    },\n\n    cancelData() {\n      let cancelData = {\n        \"data\": {\n          \"type\": \"routeExecEvent\",\n          \"attributes\": {\n            \"trackingId\": \"\",\n            \"routeId\": \"\",\n            \"content\": {\n              \"type\": \"depart\",\n              \"stopIndex\": 1,\n              \"stopId\": \"\",\n              \"actualTime\": \"\",\n              \"passengerEvents\": [{\n                \"passengerId\": \"\",\n                \"passengerType\": \"\",\n                \"type\": \"cancel\",\n                \"details\": {\n                  \"code\": \"\",\n                  \"message\": \"\"\n                },\n                \"tripId\": \"\"\n              }]\n            },\n            \"driver\": {\n              \"id\": \"\",\n              \"badgeNr\": \"\",\n              \"name\": \"\"\n            },\n            \"vehicle\": {\n              \"id\": \"\",\n              \"callsign\": \"\",\n              \"location\": {\n                \"coord\": {\n                  \"lat\": 0.0,\n                  \"lng\": 0.0\n                },\n                \"time\": \"\"\n              },\n              \"odo\": 0.0\n            }\n          }\n        }\n      };\n      return cancelData;\n    },\n\n    prepareRouteStartData(routeStartData, record) {\n      routeStartData.data.attributes.routeId = record.id;\n      routeStartData.data.attributes.content.actualTime = record.timestamp;\n      let assignedDriver = record.get('assignedDriver');\n      let assignedVehicle = record.get('assignedDriver');\n      routeStartData.data.attributes.driver.id = assignedDriver.get('externalId');\n      routeStartData.data.attributes.driver.badgeNr = assignedDriver.get('externalId');\n      routeStartData.data.attributes.driver.name = assignedDriver.get('fullName');\n      routeStartData.data.attributes.vehicle.id = assignedVehicle.get('name');\n      routeStartData.data.attributes.vehicle.callsign = assignedVehicle.get('name');\n      routeStartData.data.attributes.vehicle.odo = record.get('odometer');\n      routeStartData.data.attributes.vehicle.location.time = record.timestamp;\n      routeStartData.data.attributes.vehicle.location.coord.lat = record.get('routePlaces.firstObject.place.lat');\n      routeStartData.data.attributes.vehicle.location.coord.lng = record.get('routePlaces.firstObject.place.lng');\n      return routeStartData;\n    },\n\n    prepareRouteEndData(routeEndData, record) {\n      routeEndData.data.attributes.routeId = record.id;\n      routeEndData.data.attributes.content.actualTime = record.timestamp;\n      routeEndData.data.attributes.driver.id = record.get('assignedDriver.externalId');\n      routeEndData.data.attributes.driver.badgeNr = record.get('assignedDriver.externalId');\n      routeEndData.data.attributes.driver.name = record.get('assignedDriver.firstName');\n      routeEndData.data.attributes.vehicle.id = record.get('assignedVehicle.name');\n      routeEndData.data.attributes.vehicle.callsign = record.get('assignedVehicle.name');\n      routeEndData.data.attributes.vehicle.location.time = record.timestamp;\n      routeEndData.data.attributes.vehicle.location.coord.lat = record.get('routePlaces.lastObject.place.lat');\n      routeEndData.data.attributes.vehicle.location.coord.lng = record.get('routePlaces.lastObject.place.lng');\n      return routeEndData;\n    },\n\n    prepareStopArriveData(stopArriveData, record) {\n      stopArriveData.data.attributes.trackingId = \"1\";\n      stopArriveData.data.attributes.routeId = record.get('trip.cluster.route.id');\n      stopArriveData.data.attributes.content.actualTime = record.timestamp;\n      stopArriveData.data.attributes.content.stopId = record.id;\n      stopArriveData.data.attributes.content.stopIndex = record.get('ordinal');\n      let assignedDriver = record.get('trip.cluster.route.assignedDriver');\n      let assignedVehicle = record.get('trip.cluster.route.assignedVehicle');\n      stopArriveData.data.attributes.content.passengerEvents[0].passengerId = record.get(\"trip.rider.id\");\n      stopArriveData.data.attributes.content.passengerEvents[0].passengerType = \"client\";\n\n      if (record.get('type') === 'drop') {\n        stopArriveData.data.attributes.content.passengerEvents[0].type = \"dropoff\";\n      }\n\n      stopArriveData.data.attributes.content.passengerEvents[0].tripId = record.get('id');\n      stopArriveData.data.attributes.driver.id = assignedDriver.get('externalId');\n      stopArriveData.data.attributes.driver.badgeNr = assignedDriver.get('externalId');\n      stopArriveData.data.attributes.driver.name = assignedDriver.get('fullName');\n      stopArriveData.data.attributes.vehicle.id = assignedVehicle.get('name');\n      stopArriveData.data.attributes.vehicle.callsign = assignedVehicle.get('name');\n      stopArriveData.data.attributes.vehicle.odo = record.get('odometer');\n      stopArriveData.data.attributes.vehicle.location.time = record.timestamp;\n      stopArriveData.data.attributes.vehicle.location.coord.lat = record.get('place.lat');\n      stopArriveData.data.attributes.vehicle.location.coord.lng = record.get('place.lng');\n      return stopArriveData;\n    },\n\n    prepareStopDepartData(stopDepartData, record) {\n      stopDepartData.data.attributes.trackingId = \"1\";\n      stopDepartData.data.attributes.routeId = record.get('trip.cluster.route.id');\n      stopDepartData.data.attributes.content.actualTime = record.timestamp;\n      stopDepartData.data.attributes.content.stopId = record.id;\n      let assignedDriver = record.get('trip.cluster.route.assignedDriver');\n      let assignedVehicle = record.get('trip.cluster.route.assignedVehicle');\n      stopDepartData.data.attributes.content.passengerEvents[0].passengerId = record.get(\"trip.rider.id\");\n      stopDepartData.data.attributes.content.passengerEvents[0].passengerType = \"client\";\n\n      if (record.get('type') === 'drop') {\n        stopDepartData.data.attributes.content.passengerEvents[0].type = \"dropoff\";\n      }\n\n      stopDepartData.data.attributes.content.passengerEvents[0].tripId = record.get('id');\n      stopDepartData.data.attributes.driver.id = assignedDriver.get('externalId');\n      stopDepartData.data.attributes.driver.badgeNr = assignedDriver.get('externalId');\n      stopDepartData.data.attributes.driver.name = assignedDriver.get('fullName');\n      stopDepartData.data.attributes.vehicle.id = assignedVehicle.get('name');\n      stopDepartData.data.attributes.vehicle.callsign = assignedVehicle.get('name');\n      stopDepartData.data.attributes.vehicle.odo = record.get('odometer');\n      stopDepartData.data.attributes.vehicle.location.time = record.timestamp;\n      stopDepartData.data.attributes.vehicle.location.coord.lat = record.get('place.lat');\n      stopDepartData.data.attributes.vehicle.location.coord.lng = record.get('place.lng');\n      return stopDepartData;\n    },\n\n    prepareStopNoShowData(noShowData, record) {\n      noShowData.data.attributes.trackingId = \"1\";\n      noShowData.data.attributes.routeId = record.get('trip.cluster.route.id');\n      noShowData.data.attributes.content.actualTime = record.timestamp;\n      noShowData.data.attributes.content.stopId = record.id;\n      let assignedDriver = record.get('trip.cluster.route.assignedDriver');\n      let assignedVehicle = record.get('trip.cluster.route.assignedVehicle');\n      noShowData.data.attributes.content.passengerEvents[0].passengerId = record.get(\"trip.rider.id\");\n      noShowData.data.attributes.content.passengerEvents[0].passengerType = \"client\";\n\n      if (record.get('type') === 'drop') {\n        noShowData.data.attributes.content.passengerEvents[0].type = \"dropoff\";\n      }\n\n      noShowData.data.attributes.content.passengerEvents[0].tripId = record.get('id');\n      let noShowReasonCode = record.get(\"noShowReason\");\n      noShowData.data.attributes.content.passengerEvents[0].details.code = noShowReasonCode.get('externalCode');\n      noShowData.data.attributes.content.passengerEvents[0].details.message = record.get('noShowNotes');\n      noShowData.data.attributes.driver.id = assignedDriver.get('externalId');\n      noShowData.data.attributes.driver.badgeNr = assignedDriver.get('externalId');\n      noShowData.data.attributes.driver.name = assignedDriver.get('fullName');\n      noShowData.data.attributes.vehicle.id = assignedVehicle.get('name');\n      noShowData.data.attributes.vehicle.callsign = assignedVehicle.get('name');\n      noShowData.data.attributes.vehicle.odo = record.get('odometer');\n      noShowData.data.attributes.vehicle.location.time = record.timestamp;\n      noShowData.data.attributes.vehicle.location.coord.lat = record.get('place.lat');\n      noShowData.data.attributes.vehicle.location.coord.lng = record.get('place.lng');\n      return noShowData;\n    },\n\n    prepareTripNoShowData(noShowData, record) {\n      noShowData.data.attributes.trackingId = \"1\";\n      noShowData.data.attributes.routeId = record.get('dsTrip.cluster.route.id');\n      noShowData.data.attributes.content.actualTime = record.timestamp;\n      noShowData.data.attributes.content.stopId = record.get('dsTrip.stops.firstObject.id');\n      let assignedDriver = record.get('dsTrip.cluster.route.assignedDriver');\n      let assignedVehicle = record.get('dsTrip.cluster.route.assignedVehicle');\n      noShowData.data.attributes.content.passengerEvents[0].passengerId = record.get(\"rider.id\");\n      noShowData.data.attributes.content.passengerEvents[0].passengerType = \"client\";\n\n      if (record.get('type') === 'drop') {\n        noShowData.data.attributes.content.passengerEvents[0].type = \"dropoff\";\n      }\n\n      noShowData.data.attributes.content.passengerEvents[0].tripId = record.get('dsTrip.id');\n      let noShowReasonCode = record.get(\"noShowReason\");\n      noShowData.data.attributes.content.passengerEvents[0].details.code = noShowReasonCode.get('externalCode');\n      noShowData.data.attributes.content.passengerEvents[0].details.message = record.get('noShowNotes'); //driver data\n\n      noShowData.data.attributes.driver.id = assignedDriver.get('externalId');\n      noShowData.data.attributes.driver.badgeNr = assignedDriver.get('externalId');\n      noShowData.data.attributes.driver.name = assignedDriver.get('fullName'); ///vehicle data\n\n      noShowData.data.attributes.vehicle.id = assignedVehicle.get('name');\n      noShowData.data.attributes.vehicle.callsign = assignedVehicle.get('name');\n      noShowData.data.attributes.vehicle.odo = record.get('odometer');\n      noShowData.data.attributes.vehicle.location.time = record.timestamp; //vehicle locatioon data\n\n      noShowData.data.attributes.vehicle.location.coord.lat = record.get('dsTrip.stops.firstObject.place.lat');\n      noShowData.data.attributes.vehicle.location.coord.lng = record.get('dsTrip.stops.firstObject.place.lng');\n      return noShowData;\n    },\n\n    prepareTripCancelData(cancelData, record) {\n      cancelData.data.attributes.trackingId = \"1\";\n      cancelData.data.attributes.routeId = record.get('dsTrip.cluster.route.id');\n      cancelData.data.attributes.content.actualTime = record.timestamp;\n      cancelData.data.attributes.content.stopId = record.get('dsTrip.stops.firstObject.id');\n      let assignedDriver = record.get('dsTrip.cluster.route.assignedDriver');\n      let assignedVehicle = record.get('dsTrip.cluster.route.assignedVehicle');\n      cancelData.data.attributes.content.passengerEvents[0].passengerId = record.get(\"rider.id\");\n      cancelData.data.attributes.content.passengerEvents[0].passengerType = \"client\";\n\n      if (record.get('type') === 'drop') {\n        cancelData.data.attributes.content.passengerEvents[0].type = \"dropoff\";\n      }\n\n      cancelData.data.attributes.content.passengerEvents[0].tripId = record.get('dsTrip.id');\n      let noShowReasonCode = record.get(\"noShowReason\");\n      cancelData.data.attributes.content.passengerEvents[0].details.code = noShowReasonCode.get('externalCode');\n      cancelData.data.attributes.content.passengerEvents[0].details.message = record.get('noShowNotes'); //driver data\n\n      cancelData.data.attributes.driver.id = assignedDriver.get('externalId');\n      cancelData.data.attributes.driver.badgeNr = assignedDriver.get('externalId');\n      cancelData.data.attributes.driver.name = assignedDriver.get('fullName'); ///vehicle data\n\n      cancelData.data.attributes.vehicle.id = assignedVehicle.get('name');\n      cancelData.data.attributes.vehicle.callsign = assignedVehicle.get('name');\n      cancelData.data.attributes.vehicle.odo = record.get('odometer');\n      cancelData.data.attributes.vehicle.location.time = record.timestamp; //vehicle locatioon data\n\n      cancelData.data.attributes.vehicle.location.coord.lat = record.get('dsTrip.stops.firstObject.place.lat');\n      cancelData.data.attributes.vehicle.location.coord.lng = record.get('dsTrip.stops.firstObject.place.lng');\n      return cancelData;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/schedule-generation\", [\"exports\", \"moment\", \"ember-concurrency\"], function (_exports, _moment, _emberConcurrency) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  // TODO: derive from agency\n  const trip_WINDOW_DAYS = 1;\n  const TIME_ZONE = 'America/Los_Angeles';\n\n  var _default = Ember.Service.extend({\n    activeContext: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    store: Ember.inject.service(),\n    tooltip: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    isRunning: false,\n\n    init() {\n      this._super(...arguments);\n    },\n\n    task: (0, _emberConcurrency.task)(function* () {\n      return yield this.performTask();\n    }).drop(),\n\n    performTask() {\n      let schedules;\n      const dates = this.getScheduleDates();\n      this.set('isRunning', true);\n      return this.fetchDSSchedulesForDates(dates).then(_schedules => {\n        schedules = _schedules;\n        return this.confirmScheduleDeletion(schedules);\n      }).then(() => {\n        const scheduleDeletions = Ember.RSVP.all(schedules.map(schedule => {\n          return schedule.destroyRecord();\n        }));\n        return Ember.RSVP.hash({\n          ssSchedules: this.fetchOrCreateSSSchedulesForDates(dates),\n          scheduleDeletions\n        });\n      }).then(({\n        ssSchedules\n      }) => {\n        return Ember.RSVP.all(ssSchedules.map(ssSchedule => {\n          return ssSchedule.importtrips().then(() => {\n            return ssSchedule.regenerateSchedule();\n          }).then(() => {\n            return ssSchedule.exportSchedule();\n          });\n        }));\n      }).then(() => {\n        // no promise to return here; refresh extends well beyond task\n        this.get('activeContext').refreshAll();\n        this.set('isRunning', false);\n      }).catch(err => {\n        this.set('isRunning', false);\n        if (!err || !err.message) return;\n        this.get('errorMessage').pushError({\n          title: 'Error generating schedule',\n          detail: err.message\n        });\n      });\n    },\n\n    getScheduleDates() {\n      const endDate = this.get('workspace.endDate');\n\n      const tomorrow = _moment.default.tz(TIME_ZONE).startOf('day').add(1, 'day');\n\n      const maxDate = tomorrow.clone().add(trip_WINDOW_DAYS - 1, 'day');\n      const maxTime = Math.min(endDate.valueOf(), maxDate.valueOf()); // regenerate all days after today and within end time and trip window\n\n      const dates = [];\n      let date = tomorrow;\n\n      while (date.valueOf() <= maxTime) {\n        dates.push(date);\n        date = date.clone().add(1, 'day');\n      }\n\n      return dates;\n    },\n\n    fetchOrCreateSSSchedulesForDates(dates) {\n      const ssSchedulesQuery = this.get('activeContext').queryServer('ss-schedule');\n      return ssSchedulesQuery.then(ssSchedules => {\n        return Ember.RSVP.all(dates.map(date => {\n          const dateStart = _moment.default.tz(date, TIME_ZONE).startOf('day');\n\n          const dateEnd = _moment.default.tz(date, TIME_ZONE).endOf('day');\n\n          let ssSchedule = ssSchedules.find(currssSchedule => {\n            const scheduleStart = _moment.default.tz(currssSchedule.get('start'), TIME_ZONE);\n\n            return scheduleStart.startOf('day').valueOf() === dateStart.valueOf();\n          });\n\n          if (ssSchedule) {\n            return Ember.RSVP.resolve(ssSchedule);\n          } // ensure name is unique\n\n\n          const baseName = dateStart.format('YYYY-MM-DD');\n          let name = baseName;\n\n          for (let i = 1;; i++) {\n            if (!ssSchedules.findBy('name', name)) break;\n            name = `${baseName} (${i})`;\n          }\n\n          ssSchedule = this.get('store').createRecord('ss-schedule', {\n            start: dateStart.toDate(),\n            end: dateEnd.toDate(),\n            name\n          });\n          return ssSchedule.save();\n        }));\n      });\n    },\n\n    fetchDSSchedulesForDates(dates) {\n      // TODO: add node to filter for future-only and ditch days altogether\n      const schedulesQuery = this.get('activeContext').queryServer('schedule');\n      return schedulesQuery.then(schedules => {\n        return dates.reduce((arr, date) => {\n          const dateStart = _moment.default.tz(date, TIME_ZONE).startOf('day');\n\n          const schedule = schedules.find(currSchedule => {\n            const scheduleStart = _moment.default.tz(currSchedule.get('startTime'), TIME_ZONE);\n\n            return scheduleStart.startOf('day').valueOf() === dateStart.valueOf();\n          });\n\n          if (schedule) {\n            arr.push(schedule);\n          }\n\n          return arr;\n        }, []);\n      });\n    },\n\n    confirmScheduleDeletion(schedules) {\n      if (Ember.isEmpty(schedules)) return Ember.RSVP.resolve();\n      const tooltip = this.get('tooltip');\n      this.set('isRunning', false);\n      return new Ember.RSVP.Promise((resolve, reject) => {\n        this.get('tooltip').setProperties({\n          tip: 'Regenerating the schedule may result in loss of data. Proceed?',\n          primaryActionText: 'Confirm',\n          secondaryActionText: 'Cancel',\n          primaryAction: () => {\n            tooltip.reset();\n            this.set('isRunning', true);\n            resolve();\n          },\n          secondaryAction: () => {\n            tooltip.reset();\n            reject();\n          }\n        });\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/scheduler\", [\"exports\", \"ember-task-scheduler/services/scheduler\"], function (_exports, _scheduler) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _scheduler.default;\n    }\n  });\n});","define(\"adept-iq/services/scrollbar-thickness\", [\"exports\", \"ember-scrollable/services/scrollbar-thickness\"], function (_exports, _scrollbarThickness) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _scrollbarThickness.default;\n    }\n  });\n});","define(\"adept-iq/services/searchservice\", [\"exports\", \"ember-concurrency\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\"], function (_exports, _emberConcurrency, _environment, _apiUrls) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    ajax: Ember.inject.service(),\n    optionSearchPath: null,\n    optionModelName: null,\n    optionSearchValue: null,\n    modalData: null,\n    // eslint-disable-next-line no-unused-vars\n    search: (0, _emberConcurrency.task)(function* (term) {\n      //console.log('search value ', this.get('value'));\n      yield (0, _emberConcurrency.timeout)(50);\n      let searchResults;\n      searchResults = yield this.getRiderProfile(this.get('optionSearchPath'), this.get('optionModelName'), this.get('optionSearchValue'));\n      return searchResults;\n    }),\n\n    getRiderProfile(optionSearchPath, optionSearchValue) {\n      return this.get('ajax').put(_apiUrls.API.tripManagementService.host + `/rider-profile?filter=${optionSearchPath}==` + optionSearchValue.toUpperCase(), {\n        method: 'GET',\n        contentType: \"application/json\"\n      }).then(response => {\n        return response.data;\n      }).catch(function () {\n        return [];\n      });\n    },\n\n    searchRiderProfile(optionSearchPath, optionSearchValue) {\n      this.set('optionSearchPath', optionSearchPath);\n      this.set('optionModelName', 'rider-profile');\n      this.set('optionSearchValue', optionSearchValue);\n      this.get('search').perform().then(results => {\n        return results;\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/session\", [\"exports\", \"ember-simple-auth/services/session\"], function (_exports, _session) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _session.default;\n  _exports.default = _default;\n});","define(\"adept-iq/services/socket-io\", [\"exports\", \"ember-websockets/services/socket-io\"], function (_exports, _socketIo) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _socketIo.default;\n    }\n  });\n});","define(\"adept-iq/services/socket\", [\"exports\", \"lodash\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\", \"moment\", \"md5\", \"adept-iq/topic-transforms/alert\", \"adept-iq/topic-transforms/avl\", \"adept-iq/topic-transforms/driver\", \"adept-iq/topic-transforms/message\", \"adept-iq/topic-transforms/navigation-info\", \"adept-iq/topic-transforms/rider\", \"adept-iq/topic-transforms/account\", \"adept-iq/topic-transforms/route\", \"adept-iq/topic-transforms/route-exec-event\", \"adept-iq/topic-transforms/stop\", \"adept-iq/topic-transforms/subscription\", \"adept-iq/topic-transforms/trip\", \"adept-iq/topic-transforms/zone\", \"adept-iq/topic-transforms/stand\", \"adept-iq/topic-transforms/user\", \"adept-iq/topic-transforms/vehicle\", \"adept-iq/topic-transforms/vehicle-state\", \"adept-iq/topic-transforms/driver-state\", \"adept-iq/topic-transforms/trip-exec-event\"], function (_exports, _lodash, _environment, _apiUrls, _moment, _md, _alert, _avl, _driver, _message, _navigationInfo, _rider, _account, _route, _routeExecEvent, _stop, _subscription, _trip, _zone, _stand, _user, _vehicle, _vehicleState, _driverState, _tripExecEvent) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const TIME_FILTERING_ENABLED = false;\n  const CHUNK_SIZE = 2000;\n  const SOCKET_CLEAN_CLOSURE_CODE = 1000;\n  const SOCKET_BAD_JWT = 4001;\n  const SOCKET_BAD_PREFIX = 4002;\n  const SOCKET_DUPLICATE_CONSUMER = 4003;\n  const SOCKET_URL_BASE = _apiUrls.API.streamingService.host; // `loadAsync` tells UI not to wait for this on initial load\n\n  const SUBSCRIPTION_TOPICS = [{\n    topic: 'tripWidgetTaxi',\n    loadAsync: true\n  }, {\n    topic: 'zoneWidgetTaxi',\n    loadAsync: true\n  }, //{ topic: 'zoneStatWidget', loadAsync: true },\n  //{ topic: 'routeWidget', loadAsync: true },\n  {\n    topic: 'stopWidgetTaxi',\n    loadAsync: true\n  }, {\n    topic: 'avlWidget',\n    loadAsync: true\n  }, // { topic: 'navigationInfoWidget', loadAsync: true },\n  //{ topic: 'routeExecEventsWidget', loadAsync: true },\n  {\n    topic: 'driverWidgetTaxi',\n    loadAsync: true\n  }, {\n    topic: 'vehicleWidgetTaxi',\n    loadAsync: true\n  }, //  { topic: 'messageWidget', loadAsync: true },\n  {\n    topic: 'accountWidgetTaxi',\n    loadAsync: true\n  }, {\n    topic: 'riderWidget',\n    loadAsync: true\n  }, //  { topic: 'driverState', loadAsync: true },\n  {\n    topic: 'tripExecEventWidgetTaxi',\n    loadAsync: true\n  }, {\n    topic: 'vehicleStateWidgetTaxi',\n    loadAsync: true\n  }, {\n    topic: 'driverStateWidgetTaxi',\n    loadAsync: true\n  }];\n  const EVENT_HANDLERS = {\n    open: 'onSocketOpen',\n    close: 'onSocketClose',\n    error: 'onSocketError',\n    message: 'onSocketMessage'\n  };\n  const TRANSFORMS = {\n    alert: _alert.default,\n    avl: _avl.default,\n    driver: _driver.default,\n    message: _message.default,\n    navigationInfo: _navigationInfo.default,\n    rider: _rider.default,\n    account: _account.default,\n    route: _route.default,\n    routeExecEvents: _routeExecEvent.default,\n    stop: _stop.default,\n    subscription: _subscription.default,\n    trip: _trip.default,\n    tripExecEvent: _tripExecEvent.default,\n    user: _user.default,\n    vehicle: _vehicle.default,\n    vehicleState: _vehicleState.default,\n    driverState: _driverState.default,\n    zone: _zone.default,\n    stand: _stand.default\n  };\n  const logger = {\n    warn: console.warn,\n\n    // eslint-disable-line no-console\n    debug(...args) {// console.debug(prefix, ...args); // eslint-disable-line no-console\n    }\n\n  };\n\n  var _default = Ember.Service.extend({\n    store: Ember.inject.service(),\n    websockets: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    workspaceContext: Ember.inject.service(),\n    session: Ember.inject.service(),\n    router: Ember.inject.service(),\n    sockets: null,\n    connected: null,\n    queue: null,\n    // used to identify duplicate payloads\n    digestLookup: null,\n\n    init() {\n      this._super(...arguments);\n\n      this.set('sockets', []);\n      this.set('queue', []);\n      this.set('digestLookup', {});\n      this.set('connected', false);\n      window.disconnectSocket = this.disconnect.bind(this);\n    },\n\n    connect(startDate, endDate) {\n      // Don't reconnect if already connected\n      if (!this.get('connected')) {\n        this.disconnect();\n        const session = this.get('session');\n        const sessionId = this.generateUUID();\n        const promises = [];\n        _environment.default.workspaceContext.startDate = startDate;\n        _environment.default.workspaceContext.endDate = endDate;\n        const sockets = SUBSCRIPTION_TOPICS.map(({\n          topic,\n          loadAsync\n        }) => {\n          const socketUrl = this.socketUrlFor(topic, sessionId, startDate, endDate); // socketFor takes two arguments: a url, and a protocol array (optional; adds the Sec-WebSocket-Protocol header to the request)\n\n          const socket = this.get('websockets').socketFor(socketUrl, [`${session.data.authenticated.token}`]);\n          const deferred = Ember.RSVP.defer(); // initial load only waits sync topics\n\n          if (!loadAsync) {\n            promises.push(deferred.promise);\n          } // build and cache handler functions (so we can unsubscribe on close)\n\n\n          const handlers = Object.entries(EVENT_HANDLERS).reduce((obj, entry) => {\n            const [eventName, handlerName] = entry;\n\n            obj[eventName] = event => {\n              // augment each call with topic\n              Ember.run.schedule('actions', this, handlerName, topic, event, deferred);\n            };\n\n            return obj;\n          }, {}); // subscribe to events\n\n          Object.entries(handlers).forEach(([eventName, handler]) => {\n            socket.on(eventName, handler);\n          });\n          return {\n            topic,\n            socket,\n            handlers\n          };\n        });\n        this.set('sockets', sockets);\n        this.set('connected', true);\n        return Ember.RSVP.allSettled(promises);\n      }\n    },\n\n    generateUUID() {\n      return Math.random().toString(36).substr(2, 9);\n    },\n\n    socketUrlFor(topic, sessionId, startDate, endDate) {\n      const queryTerms = [`topic=${topic}`, `consumerGroup=_${sessionId}`];\n\n      if (TIME_FILTERING_ENABLED) {\n        if (topic === 'tripWidget') {\n          const filterString = [`requestTime=ge=${startDate.toISOString()}`, `requestTime=le=${endDate.toISOString()}`].join('%26');\n          queryTerms.push(`filter=${filterString}`);\n        }\n\n        if (topic === 'routeWidget') {\n          const filterString = [`plannedStartTime=lt=${endDate.toISOString()}`, `plannedEndTime=gt=${startDate.toISOString()}`].join('%26');\n          queryTerms.push(`filter=${filterString}`);\n        }\n      }\n\n      const queryString = queryTerms.join('&');\n      return `${SOCKET_URL_BASE}/?${queryString}`;\n    },\n\n    disconnect() {\n      this.get('sockets').forEach(({\n        socket,\n        handlers\n      }) => {\n        Object.entries(handlers).forEach(({\n          eventName,\n          handler\n        }) => {\n          socket.off(eventName, handler);\n        });\n        socket.close();\n      });\n      this.set('sockets', []);\n    },\n\n    logout() {\n      this.disconnect();\n      this.set('connected', false);\n    },\n\n    onSocketOpen()\n    /*topic, event*/\n    {},\n\n    onSocketClose(topic, event) {\n      logger.warn('close', topic, event, null);\n      const sockets = this.get('sockets');\n      const currentSocket = sockets.find(socket => {\n        return socket.topic === topic;\n      });\n\n      if (SOCKET_CLEAN_CLOSURE_CODE === event.code) {\n        this.set('connected', false);\n      } else if (SOCKET_BAD_JWT === event.code) {\n        // If BAD_JWT is received, disconnect and perform standard logout procedures\n        if (!_environment.default.APP.avlmLite) {\n          Ember.run(() => this.store.unloadAll());\n        } else {\n          this.store.unloadAll('cs-config-permission');\n        }\n\n        this.disconnect();\n        this.get('session').invalidate().then(() => {\n          this.get('router').transitionTo('login');\n        });\n      } else if (SOCKET_BAD_PREFIX === event.code || SOCKET_DUPLICATE_CONSUMER === event.code) {\n        // If we receive either bad-prefix or duplicate-consumer\n        // we set the connected flag to false to allow reconnection\n        this.set('connected', false);\n        Ember.run.later(this, () => {\n          Ember.run.scheduleOnce('actions', this, 'scheduledConnect');\n        }, 1000);\n      } else {\n        Ember.run.later(this, () => {\n          logger.warn('attempting to reconnect to socket');\n          currentSocket.socket.reconnect();\n        }, 1000);\n      }\n    },\n\n    scheduledConnect() {\n      const startDate = this.get('workspace.startDate');\n      const endDate = this.get('workspace.endDate');\n      _environment.default.workspaceContext.startDate = this.get('workspace.startDate');\n      _environment.default.workspaceContext.endDate = this.get('workspace.endDate');\n      this.connect(startDate, endDate);\n    },\n\n    onSocketError(topic, event, deferred) {\n      logger.warn('error', topic, event, null);\n      deferred.reject(event);\n    },\n\n    onSocketMessage(topic, event, deferred) {\n      if (event.data) {\n        let payload;\n        /*let digestLookup = this.get('digestLookup');\n        let digest = md5(event.data);\n        digestLookup[digest] = (digestLookup[digest] || 0) + 1;\n         if (digestLookup[digest] > 1) {\n          console.warn(`duplicate ${topic} payload`, event.data.slice(0,100));\n        }*/\n\n        try {\n          // console.log('event.data',event.data);\n          payload = JSON.parse(event.data);\n        } catch (err) {\n          throw `bad topic json payload: ${event.data}`;\n        }\n\n        this.onTopicPayload(topic, payload);\n      }\n\n      deferred.resolve();\n    },\n\n    // this is a good entry point for stubbing a socket payload\n    onTopicPayload(topic, payload) {\n      // console.log('onTopicPayload payload ',payload);\n\n      /*eslint-disable */\n      payload = Ember.makeArray(payload);\n      /*eslint-enable */\n\n      if (payload.length === 0) {\n        return;\n      }\n\n      const workspaceContext = this.get('workspaceContext');\n      console.log('workspaceContext.get(startRefreshing) ', workspaceContext.get('startRefreshing'));\n\n      if (!workspaceContext.get('startRefreshing')) {\n        //console.log('payload ',payload);\n\n        /* let payloads = payload.map(function(a) {return a.message.data;});\n         let payloadStr =  '{\"data\":'+JSON.stringify(payloads)+\"}\";\n         let payloadArr = {\n            data: {\n             payloads\n           }\n         };*/\n        // console.log('payloads ',payloadStr);\n        //  this.get('workspaceContext').pushNewPayloads(payload);\n        payload.forEach(payload1 => {\n          if (payload1 !== undefined) this.get('store').pushPayload(payload1.message);\n        }); //this.get('store').push(payloadStr);\n      } else {\n        //this.get('workspaceContext').pushPayloads(payload);\n        //run.scheduleOnce('afterRender', workspaceContext, 'flushChanges');\n        const updatePayloads = payload.filterBy('action', 'UPDATE');\n        const deletePayloads = payload.filterBy('action', 'DELETE');\n\n        if (updatePayloads.length > 0) {\n          this.get('queue').push(...updatePayloads);\n          Ember.run.scheduleOnce('afterRender', this, 'processUpdateQueue');\n        }\n\n        if (deletePayloads.length > 0) {\n          deletePayloads.forEach(deletePayload => {\n            this.handleDeletePayload(deletePayload);\n          });\n          const workspaceContext = this.get('workspaceContext');\n          Ember.run.scheduleOnce('afterRender', workspaceContext, 'flushChanges');\n        }\n      }\n    },\n\n    processUpdateQueue() {\n      const queue = this.get('queue');\n\n      if (queue.length === 0) {\n        return;\n      }\n\n      const t = new Date().getTime();\n      const chunk = [];\n      const chunkSize = Math.min(queue.length, CHUNK_SIZE);\n\n      for (let i = 0; i < chunkSize; i++) {\n        chunk.push(queue.shift());\n      }\n\n      const payloads = chunk.reduce((arr, payload) => {\n        const unpackedPayloads = this.unpackTopicPayload(payload);\n        Ember.makeArray(unpackedPayloads).forEach(unpackedPayload => {\n          arr.push(unpackedPayload);\n        });\n        return arr;\n      }, []);\n\n      if (payloads.length > 0) {\n        this.get('workspaceContext').pushPayloads(payloads);\n        const workspaceContext = this.get('workspaceContext');\n        Ember.run.scheduleOnce('afterRender', workspaceContext, 'flushChanges');\n      }\n\n      Ember.run.next(() => {\n        Ember.run.scheduleOnce('afterRender', this, 'processUpdateQueue');\n      });\n    },\n\n    handleUpdatePayload(payload) {\n      let payloads = Ember.makeArray(this.unpackTopicPayload(payload.message));\n      return this.get('workspaceContext').pushPayloads(payloads);\n    },\n\n    handleDeletePayload(payload) {\n      const {\n        model,\n        message: {\n          id\n        }\n      } = payload;\n      const workspaceContext = this.get('workspaceContext');\n\n      switch (model) {\n        case 'alertsWidget':\n          return workspaceContext.removeRecord('alert', id);\n\n        case 'driverWidget':\n          return workspaceContext.removeRecord('iq-driver', id);\n\n        case 'messageWidget':\n          return workspaceContext.removeRecord('avlm-canned-message', id);\n\n        case 'riderWidget':\n          return workspaceContext.removeRecord('iq-rider', id);\n\n        case 'routeWidget':\n          return workspaceContext.removeRecord('iq-route', id);\n\n        case 'stopWidget':\n          return workspaceContext.removeRecord('iq-stop', id);\n\n        case 'subscriptionWidget':\n          return workspaceContext.removeRecord('subscription', id);\n\n        case 'tripWidget':\n          return workspaceContext.removeRecord('iq-trip', id);\n\n        case 'userWidget':\n          return workspaceContext.removeRecord('sso-user', id);\n\n        case 'vehicleWidget':\n          return workspaceContext.removeRecord('vehicle', id);\n\n        case 'avlmRouteWidget':\n          return workspaceContext.removeRecord('iq-route', id);\n\n        case 'avlmTripWidget':\n          return workspaceContext.removeRecord('iq-trip', id);\n\n        case 'avlmStopWidget':\n          return workspaceContext.removeRecord('iq-stop', id);\n\n        case 'avlmVehicleWidget':\n          return workspaceContext.removeRecord('vehicle', id);\n\n        default:\n          {\n            logger.warn(`unhandled socket delete model '${model}'`);\n            break;\n          }\n      }\n    },\n\n    unpackTopicPayload(payload) {\n      const {\n        model\n      } = payload;\n\n      switch (model) {\n        case 'routeWidgetTaxi':\n          return this.unpackRouteTopicPayload(payload.message);\n\n        case 'avl':\n          return this.unpackAVLTopicPayload(payload.message);\n\n        case 'driver':\n          return this.unpackDriverTopicPayload(payload.message);\n\n        case 'navigationInfoWidgetTaxi':\n          return this.unpackNavigationInfoPayload(payload.message);\n\n        case 'routeExecEventsWidgetTaxi':\n          return this.unpackRouteExecEventPayload(payload.message);\n\n        case 'stop':\n          return this.unpackStopTopicPayload(payload.message);\n\n        case 'trip':\n          return this.unpackTripTopicPayload(payload.message);\n\n        case 'tripExecEvent':\n          return this.unpackTripExecEventTopicPayload(payload.message);\n\n        case 'vehicle':\n          return this.unpackVehicleTopicPayload(payload.message);\n\n        case 'zone':\n          return this.unpackZoneTopicPayload(payload.message);\n\n        case 'stand':\n          return this.unpackStandTopicPayload(payload.message);\n\n        case 'zoneStatWidgetTaxi':\n          return this.unpackZoneStatTopicPayload(payload.message);\n\n        case 'account':\n          return this.unpackAccountTopicPayload(payload.message);\n\n        case 'rider':\n          return this.unpackRiderTopicPayload(payload.message);\n\n        case 'driverState':\n          return this.unpackDriverStateTopicPayload(payload.message);\n\n        case 'vehicleState':\n          return this.unpackVehicleStateTopicPayload(payload.message);\n\n        default:\n          throw `unhandled topic payload type '${model}'`;\n      }\n    },\n\n    unpackRouteTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackTripExecEventTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackTripTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackStopTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackVehicleStateTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackDriverStateTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackAVLTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackVehicleTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackRiderTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackDriverTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackZoneTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackStandTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackAccountTopicPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackZoneStatTopicPayload(payload) {\n      payload.data.type = 'zone-stat';\n      return this._normalizePayload(payload);\n    },\n\n    unpackNavigationInfoPayload(payload) {\n      const transformedPayloads = this.transformPayload(payload);\n      const normalizedPayloads = this.normalizePayloads(transformedPayloads);\n      return normalizedPayloads;\n    },\n\n    unpackRouteExecEventPayload(payload) {\n      let {\n        routeId,\n        tripId,\n        type\n      } = payload.data.attributes;\n      let stopId = payload.data.attributes.stopPointId;\n      let routeAttributes = {};\n      let tripAttributes = {};\n      let stopAttributes = {};\n\n      switch (type) {\n        case 'No Show':\n          {\n            //logger.debug(`routeExec ${type} tripId=${tripId}`)\n            tripAttributes.status = type;\n            break;\n          }\n\n        case 'Arrive':\n        case 'Depart':\n          {\n            //logger.debug(`routeExec ${type} stopId=${stopId}`)\n            stopAttributes.status = type;\n            break;\n          }\n\n        case 'Accept':\n        case 'Reject':\n        case 'OnBreak':\n        case 'OffBreak':\n          {\n            //logger.debug(`routeExec ${type} routeId=${routeId}`)\n            routeAttributes.status = type;\n            break;\n          }\n        // these are currently defined but unused\n\n        case 'OnStop':\n        case 'Complete':\n        case 'work': // TODO: check if this should be capitalized\n\n        case 'ETA':\n        case 'AVL':\n        case 'Pullout':\n        case 'Pullin':\n        default:\n          break;\n      }\n\n      let normalizedPayloads = [];\n\n      if (routeId) {\n        let {\n          otpRouteStatus,\n          otpRouteValue\n        } = payload.data.attributes;\n\n        if (Ember.isPresent(otpRouteStatus)) {\n          routeAttributes.otp = otpRouteStatus;\n        }\n\n        if (Ember.isPresent(otpRouteValue)) {\n          routeAttributes.otpValue = otpRouteValue;\n        }\n\n        let routePayload = {\n          data: {\n            id: routeId,\n            type: 'route',\n            attributes: routeAttributes\n          }\n        };\n\n        let normalizedRoutePayload = this._normalizePayload(routePayload);\n\n        normalizedPayloads.push(normalizedRoutePayload);\n      }\n\n      if (tripId) {\n        let {\n          otpTripStatus,\n          otpTripValue\n        } = payload.data.attributes;\n\n        if (Ember.isPresent(otpTripStatus)) {\n          tripAttributes.otp = otpTripStatus;\n        }\n\n        if (Ember.isPresent(otpTripValue)) {\n          tripAttributes.otpValue = otpTripValue;\n        }\n\n        let tripPayload = {\n          data: {\n            id: tripId,\n            type: 'trip',\n            attributes: tripAttributes\n          }\n        };\n\n        let normalizedTripPayload = this._normalizePayload(tripPayload);\n\n        normalizedPayloads.push(normalizedTripPayload);\n      }\n\n      if (stopId) {\n        let {\n          otpStopStatus,\n          otpStopValue\n        } = payload.data.attributes;\n\n        if (Ember.isPresent(otpStopStatus)) {\n          stopAttributes.otp = otpStopStatus;\n        }\n\n        if (Ember.isPresent(otpStopValue)) {\n          stopAttributes.otpValue = otpStopValue;\n        }\n\n        let stopPayload = {\n          data: {\n            id: stopId,\n            type: 'stop',\n            attributes: stopAttributes\n          }\n        };\n\n        let normalizedStopPayload = this._normalizePayload(stopPayload);\n\n        normalizedPayloads.push(normalizedStopPayload);\n      }\n\n      return normalizedPayloads;\n    },\n\n    // one-to-many transform; always returns an array\n    transformPayload(payload) {\n      const store = this.get('store');\n      const transform = TRANSFORMS[payload.data.type];\n      (true && !(transform) && Ember.assert(`transform exists for payload type '${payload.data.type}'`, transform));\n\n      const clonedPayload = _lodash.default.cloneDeep(payload);\n\n      const transformedPayloads = transform ? transform(store, clonedPayload, logger) : clonedPayload;\n      return Ember.makeArray(transformedPayloads);\n    },\n\n    transformMessagePayload(payload) {\n      const store = this.get('store');\n      const transform = TRANSFORMS[payload.message.type];\n      (true && !(transform) && Ember.assert(`transform exists for payload type '${payload.data.type}'`, transform));\n\n      const clonedPayload = _lodash.default.cloneDeep(payload);\n\n      const transformedPayloads = transform ? transform(store, clonedPayload, logger) : clonedPayload;\n      return Ember.makeArray(transformedPayloads);\n    },\n\n    // many-to-many transform\n    _normalizePayloads(payloads) {\n      const store = this.get('store');\n      return payloads.map(payload => {\n        const {\n          id,\n          type\n        } = payload.data;\n        const modelClass = store.modelFor(type);\n        const serializer = store.serializerFor(type);\n        const normalized = serializer.normalizeResponse(store, modelClass, payload, id, 'findRecord');\n        return normalized;\n      });\n    },\n\n    _normalizePayload(payload) {\n      const store = this.get('store');\n      const {\n        id,\n        type\n      } = payload.data;\n      const modelClass = store.modelFor(type);\n      const serializer = store.serializerFor(type);\n      return serializer.normalizeResponse(store, modelClass, payload, id, 'findRecord');\n    },\n\n    normalizePayloads(payloads) {\n      const store = this.get('store');\n      return payloads.map(payload => {\n        const {\n          id,\n          type\n        } = payload.data;\n        const modelClass = store.modelFor(type);\n        const serializer = store.serializerFor(type);\n        const normalized = serializer.normalizeResponse(store, modelClass, payload, id, 'findRecord');\n        return normalized;\n      });\n    },\n\n    normalizeMessagePayloads(payloads) {\n      const store = this.get('store');\n      return payloads.map(payload => {\n        const {\n          id,\n          type\n        } = payload.data;\n        const modelClass = store.modelFor(type);\n        const serializer = store.serializerFor(type);\n        const normalized = serializer.normalizeResponse(store, modelClass, payload, id, 'findRecord');\n        return normalized;\n      });\n    },\n\n    normalizePayload(payload) {\n      const store = this.get('store');\n      const {\n        id,\n        type\n      } = payload.data;\n      const modelClass = store.modelFor(type);\n      const serializer = store.serializerFor(type);\n      return serializer.normalizeResponse(store, modelClass, payload, id, 'findRecord');\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/stops-reorder\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    reorderInProgress: false,\n    widget: null,\n    currentState: null,\n\n    init() {\n      this._super(...arguments);\n\n      Ember.set(this, 'currentState', {});\n    },\n\n    // called when a user starts a reorder in stops widget\n    startReorder(widget) {\n      Ember.set(this, 'widget', widget);\n      this.sortByETA();\n      Ember.set(this, 'reorderInProgress', true);\n    },\n\n    // called when a user stops a reorder in stops widget\n    stopReorder() {\n      let currentState = this.get('currentState');\n\n      if (Object.keys(currentState).length === 0 && currentState.constructor === Object) {\n        currentState = {\n          sortId: 'id',\n          sortAsc: true\n        };\n      }\n\n      this.set('widget.state', currentState);\n      Ember.set(this, 'currentState', {});\n      Ember.set(this, 'reorderInProgress', false);\n    },\n\n    // stopBreakOrd is the ordinal which is also\n    // equivalent to eta\n    // using stopBreakOrd because eta is sometimes empty\n    sortByETA() {\n      const oldState = this.get('widget.state') || {};\n      Ember.set(this, 'currentState', oldState);\n      this.set('widget.state', {\n        sortId: 'stopBreakOrd',\n        sortAsc: true\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/system-config\", [\"exports\", \"ember-concurrency\", \"lodash\", \"adept-iq/classes/tree-nodes/category\", \"adept-iq/classes/tree-nodes/object\", \"adept-iq/classes/tree-nodes/value\"], function (_exports, _emberConcurrency, _lodash, _category, _object, _value) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const ROOT_CATEGORY = 'config';\n  const logger = {\n    warn: console.warn // eslint-disable-line no-console\n\n  };\n\n  var _default = Ember.Service.extend({\n    store: Ember.inject.service(),\n    rootCategory: null,\n    rootNodes: null,\n    isLoading: Ember.computed.readOnly('fetchTask.isRunning'),\n    isSaving: Ember.computed.readOnly('saveTask.isRunning'),\n    isProcessing: Ember.computed.or('isLoading', 'isSaving'),\n    isModified: Ember.computed('rootNodes.@each.isTreeModified', function () {\n      const rootNodes = this.get('rootNodes');\n      if (Ember.isEmpty(rootNodes)) return false;\n      return rootNodes.any(node => node.get('isTreeModified'));\n    }),\n    isOutdated: Ember.computed('rootNodes.@each.isTreeOutdated', function () {\n      const rootNodes = this.get('rootNodes');\n      if (Ember.isEmpty(rootNodes)) return false;\n      return rootNodes.any(node => node.get('isTreeOutdated'));\n    }),\n    isDirty: Ember.computed.or('isModified', 'isOutdated'),\n\n    init() {\n      this._super(...arguments);\n\n      this.refresh();\n    },\n\n    refresh() {\n      return this.get('fetchTask').perform();\n    },\n\n    save() {\n      if (!this.get('isModified')) {\n        /*eslint-disable */\n        throw 'cannot save unmodified config tree';\n        /*eslint-enable */\n      }\n\n      return this.get('saveTask').perform();\n    },\n\n    fetchTask: (0, _emberConcurrency.task)(function* () {\n      const store = this.get('store'); // this loads all associated categories as a side-effect\n\n      yield store.query('cs-config-item', {\n        category: ROOT_CATEGORY\n      });\n      const rootCategory = store.peekRecord('cs-config-category', ROOT_CATEGORY);\n      this.set('rootCategory', rootCategory);\n      const rootNodes = rootCategory.get('children').sortBy('name').map(category => {\n        return this.buildCategoryTree(category);\n      });\n      this.set('rootNodes', rootNodes);\n    }).drop(),\n    saveTask: (0, _emberConcurrency.task)(function* () {\n      yield (0, _emberConcurrency.timeout)(500);\n      const modifiedNodes = [];\n      const rootNodes = this.get('rootNodes'); // make sure we duplicate array!\n\n      const queue = [...rootNodes]; // BFS search means we can prune at unmodified & object nodes\n\n      while (queue.length > 0) {\n        const node = queue.shift();\n        /*eslint-disable */\n\n        if (!node.get('isTreeModified')) continue;\n        /*eslint-enable */\n\n        if (node.get('isObject') || node.get('isValue')) {\n          modifiedNodes.push(node);\n        } else {\n          const children = node.get('children');\n          queue.push(...children);\n        }\n      }\n\n      const promises = modifiedNodes.map(node => {\n        let value;\n\n        if (node.get('isValue')) {\n          value = node.get('value');\n        }\n\n        if (node.get('isObject')) {\n          value = node.get('children').reduce((obj, child) => {\n            const key = child.get('label');\n            const childValue = child.get('value');\n            obj[key] = childValue;\n            return obj;\n          }, {});\n        }\n\n        const configItem = node.get('configItem');\n        configItem.set('value', value);\n        return configItem.save().then(() => {\n          if (node.get('isValue')) {\n            node.set('originalValue', value);\n          }\n\n          if (node.get('isObject')) {\n            node.get('children').forEach(child => {\n              child.set('originalValue', child.get('value'));\n            });\n          }\n        });\n      });\n      return yield Ember.RSVP.all(promises);\n    }).drop(),\n\n    buildCategoryTree(category, parent) {\n      const node = _category.default.create({\n        label: category.get('name'),\n        type: 'category',\n        depth: parent ? parent.get('depth') + 1 : 0,\n        parent\n      });\n\n      const children = [];\n      category.get('children').sortBy('name').forEach(childCategory => {\n        const child = this.buildCategoryTree(childCategory, node);\n        children.push(child);\n      });\n      category.get('configItems').forEach(configItem => {\n        const child = this.buildItemTree(configItem, node);\n        children.push(child);\n      });\n      node.set('children', children);\n      return node;\n    },\n\n    buildItemTree(configItem, parent) {\n      const name = configItem.get('name');\n      const value = configItem.get('value');\n      const specifiedType = this.specifiedTypeFor(configItem.get('type'));\n      const inferredType = this.inferredTypeFor(value);\n      let type = this.nodeTypeFor(specifiedType) || this.nodeTypeFor(inferredType) || 'default';\n\n      if (inferredType === 'object' && type !== 'object') {\n        logger.warn(`config-item ${name} has object value but specified type ${type}`);\n        type = 'object';\n      }\n\n      const depth = parent ? parent.get('depth') + 1 : 0;\n      const node = this.treeNodeClassFor(type).create({\n        configItem,\n        type,\n        specifiedType,\n        inferredType,\n        label: name,\n        value: _lodash.default.cloneDeep(value),\n        originalValue: _lodash.default.cloneDeep(value),\n        depth,\n        parent\n      });\n\n      if (type === 'object') {\n        // handle JSON\n        const children = Object.entries(value).map(([key, val]) => {\n          const inferredChildType = this.inferredTypeFor(val);\n          const childType = this.nodeTypeFor(inferredChildType) || 'default';\n          return this.treeNodeClassFor(childType).create({\n            label: key,\n            type: childType,\n            value: _lodash.default.cloneDeep(val),\n            originalValue: _lodash.default.cloneDeep(val),\n            depth: depth + 1\n          });\n        }).sortBy('label');\n        node.set('children', children);\n      }\n\n      return node;\n    },\n\n    specifiedTypeFor(typeString) {\n      return Ember.isPresent(typeString) ? typeString.toLowerCase() : null;\n    },\n\n    inferredTypeFor(value) {\n      return Ember.isPresent(value) ? Ember.typeOf(value) : null;\n    },\n\n    nodeTypeFor(type) {\n      switch (type) {\n        case 'int':\n        case 'float':\n        case 'number':\n          return 'number';\n\n        case 'char':\n        case 'string':\n          return 'string';\n\n        case 'json':\n        case 'object':\n          return 'object';\n\n        case 'boolean':\n        case 'true/false':\n          return 'boolean';\n\n        case 'color':\n          return 'color';\n\n        default:\n          return null;\n      }\n    },\n\n    treeNodeClassFor(type) {\n      switch (type) {\n        case 'category':\n          return _category.default;\n\n        case 'object':\n          return _object.default;\n\n        default:\n          return _value.default;\n      }\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/text-measurer\", [\"exports\", \"ember-text-measurer/services/text-measurer\"], function (_exports, _textMeasurer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _textMeasurer.default;\n    }\n  });\n});","define(\"adept-iq/services/textmessage\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    textMessageData() {\n      let textMessageData = {\n        \"data\": [{\n          \"type\": \"textMessage\",\n          \"id\": \"string\",\n          \"attributes\": {\n            \"subject\": \"string\",\n            \"body\": \"string\",\n            \"sender\": {\n              \"type\": \"dispatcher\",\n              \"id\": \"string\"\n            },\n            \"recipients\": [{\n              \"type\": \"dispatcher\",\n              \"id\": \"string\",\n              \"deliveredAt\": \"\"\n            }],\n            \"deliveryTime\": \"\",\n            \"conversation\": {\n              \"type\": \"onTrip\",\n              \"id\": \"string\"\n            }\n          }\n        }]\n      };\n      return textMessageData;\n    },\n\n    tripScheduleData() {\n      let tripScheduleData = {\n        \"data\": {\n          \"id\": \"\",\n          \"type\": \"trip\",\n          \"attributes\": {\n            \"destination\": \"dispatch\"\n          }\n        }\n      };\n      return tripScheduleData;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/time-span\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    workspace: Ember.inject.service(),\n    minusValue: 0,\n    plusValue: 0,\n    intervalTimer: null,\n    timeInterval: 900000,\n    // 15 minutes\n    isTimeSpanRunning: Ember.computed.alias('intervalTimer'),\n\n    startInterval() {\n      // Run the update now.\n      this._updateWorkspace(); // Schedule the update to run every X minutes thereafter.\n\n\n      this.set('intervalTimer', setInterval(() => {\n        this._updateWorkspace();\n      }, this.get('timeInterval')));\n    },\n\n    stopInterval() {\n      clearInterval(this.get('intervalTimer'));\n      this.set('intervalTimer', null);\n    },\n\n    /* Input unit is hours. */\n    setSpan(minusValue, plusValue) {\n      this.set('minusValue', minusValue * 3600000);\n      this.set('plusValue', plusValue * 3600000);\n\n      this._resetSpan();\n    },\n\n    /* Input unit is milliseconds. */\n    setSpanMillis(minusValue, plusValue) {\n      this.set('minusValue', minusValue);\n      this.set('plusValue', plusValue);\n\n      this._resetSpan();\n    },\n\n    _updateWorkspace() {\n      const now = Date.now();\n      const startDate = new Date(now - this.get('minusValue'));\n      const endDate = new Date(now + this.get('plusValue'));\n      const changeSet = {};\n      changeSet.startDate = startDate;\n      changeSet.endDate = endDate;\n      Ember.run.scheduleOnce('afterRender', () => {\n        this.get('workspace').setProperties(changeSet);\n      });\n    },\n\n    _resetSpan() {\n      this.stopInterval();\n      this.startInterval();\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/tooltip\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    tip: null,\n    primaryActionText: null,\n    secondaryActionText: null,\n    primaryAction: null,\n    secondaryAction: null,\n\n    reset() {\n      this.setProperties({\n        tip: null,\n        primaryActionText: null,\n        secondaryActionText: null,\n        primaryAction: null,\n        secondaryAction: null\n      });\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/trip\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    tripData() {\n      let tripData = {\n        \"data\": {\n          \"type\": \"trip\",\n          \"attributes\": {\n            \"trackingId\": \"12\",\n            \"requestedProvider\": {\n              \"id\": \"2\",\n              \"type\": \"dedicated\"\n            },\n            \"status\": \"active\",\n            \"source\": {\n              \"type\": \"webApp\",\n              \"id\": \"56e\"\n            },\n            \"passengers\": [{\n              \"id\": \"1\",\n              \"name\": \"\",\n              \"type\": \"client\",\n              \"lastName\": \"\",\n              \"firstName\": \"\",\n              \"middleName\": \"\",\n              \"callout\": \"call\",\n              \"phone1\": {\n                \"number\": \"\",\n                \"areaCode\": \"\",\n                \"extension\": \"\",\n                \"type\": \"fixed\"\n              },\n              \"phone2\": {\n                \"number\": \"\",\n                \"areaCode\": \"\",\n                \"extension\": \"\",\n                \"type\": \"fixed\"\n              },\n              \"email\": \"\",\n              \"bookingNote\": \"\",\n              \"requiredAttributes\": []\n            }],\n            \"stopPoints\": [{\n              \"index\": 1,\n              \"address\": {\n                \"formattedAddress\": \"\",\n                \"streetName\": \"\",\n                \"streetNr\": \"\",\n                \"unitNr\": null,\n                \"region\": \"\",\n                \"postCode\": \"\",\n                \"city\": \"\",\n                \"state\": \"\",\n                \"description\": \"\",\n                \"coord\": {\n                  \"lat\": 0,\n                  \"lng\": 0\n                }\n              },\n              \"directions\": \"\",\n              \"passengerEvents\": [{\n                \"type\": \"pickup\",\n                \"passengerId\": \"1\",\n                \"time\": \"\",\n                \"anchor\": true,\n                \"driverNote\": \"\",\n                \"pickupWindow\": {\n                  \"start\": \"\",\n                  \"end\": \"\"\n                }\n              }]\n            }, {\n              \"index\": 2,\n              \"address\": {\n                \"formattedAddress\": \"\",\n                \"streetName\": \"\",\n                \"streetNr\": \"\",\n                \"unitNr\": null,\n                \"region\": \"\",\n                \"postCode\": \"\",\n                \"city\": \"\",\n                \"state\": \"\",\n                \"description\": \"\",\n                \"coord\": {\n                  \"lat\": 0,\n                  \"lng\": 0\n                }\n              },\n              \"directions\": \"\",\n              \"passengerEvents\": [{\n                \"type\": \"dropoff\",\n                \"passengerId\": \"1\",\n                \"time\": \"\",\n                \"anchor\": true,\n                \"driverNote\": \"\",\n                \"pickupWindow\": {\n                  \"start\": \"\",\n                  \"end\": \"\"\n                }\n              }]\n            }],\n            \"prices\": [{\n              \"payerIdentifier\": \"CASH\",\n              \"currencyCode\": \"CAD\",\n              \"fixed\": 0,\n              \"estimate\": 0,\n              \"tip\": {\n                \"percent\": 0,\n                \"minValue\": 0\n              }\n            }],\n            \"customerReference\": \"string\",\n            \"relatedIds\": []\n          }\n        }\n      };\n      return tripData;\n    },\n\n    tripScheduleData() {\n      let tripScheduleData = {\n        \"data\": {\n          \"id\": \"\",\n          \"type\": \"trip\",\n          \"attributes\": {\n            \"destination\": \"dispatch\"\n          }\n        }\n      };\n      return tripScheduleData;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/vehicleinfo\", [\"exports\", \"adept-iq/config/environment\"], function (_exports, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend({\n    distanceUnit: 'mi',\n\n    init() {\n      this._super(...arguments);\n\n      this.set('distanceUnit', _environment.default.APP.distanceUnit);\n    },\n\n    convertDistance(distanceInMeters) {\n      const unit = this.distanceUnit;\n\n      if (Ember.typeOf(distanceInMeters) !== 'number') {\n        console.warn(`Invalid distance used for conversion = ${distanceInMeters}`); // eslint-disable-line no-console\n\n        return distanceInMeters;\n      }\n\n      if (unit === 'mi') {\n        return (distanceInMeters * 0.00062137).toFixed(0);\n      } else if (unit === 'km') {\n        return (distanceInMeters * 0.001).toFixed(0);\n      }\n\n      console.warn(`Invalid distance unit used for conversion = ${unit}`); // eslint-disable-line no-console\n\n      return distanceInMeters;\n    },\n\n    vehicleInfoData() {\n      const vehicleInfoData = {\n        'data': {\n          'type': 'vehicleInfo',\n          'id': '',\n          'attributes': {\n            'state': 'active',\n            'callsign': '',\n            'device': {\n              'hardwareId': null,\n              'type': '',\n              'OS': '',\n              'appVersion': ''\n            }\n          }\n        }\n      };\n      return vehicleInfoData;\n    },\n\n    prepareVehicleInfoData(vehicleInfoData, record) {\n      vehicleInfoData.data.id = record.get('name');\n      vehicleInfoData.data.attributes.callsign = record.get('name');\n      return vehicleInfoData;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/websockets\", [\"exports\", \"ember-websockets/services/websockets\"], function (_exports, _websockets) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _websockets.default;\n    }\n  });\n});","define(\"adept-iq/services/window-resize\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Service.extend(Ember.Evented, {\n    debounceInterval: 250,\n\n    /*eslint-disable */\n    _onResize: undefined,\n\n    /*eslint-enable */\n    init() {\n      this._super(...arguments);\n\n      this._onResize = event => {\n        const debounceInterval = this.get('debounceInterval');\n        Ember.run.debounce(this, '_resizeHandler', event, debounceInterval);\n      };\n\n      this._initialiseResizeListener();\n    },\n\n    destroy() {\n      this._super(...arguments);\n\n      this._destroyResizeListener();\n    },\n\n    _initialiseResizeListener() {\n      window.addEventListener('resize', this._onResize);\n    },\n\n    _destroyResizeListener() {\n      window.removeEventListener('resize', this._onResize);\n    },\n\n    _resizeHandler(event) {\n      this.trigger('didResize', event);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/workspace-context\", [\"exports\", \"ember-concurrency\", \"adept-iq/config/active-context-graph\", \"adept-iq/config/api-preloads\", \"moment\", \"adept-iq/config/environment\", \"lodash\"], function (_exports, _emberConcurrency, _activeContextGraph, _apiPreloads, _moment, _environment, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  // there is a bug in ED that causes watcher errors after unloading records;\n  // if this flag is false, records will be \"soft\" deleted but not unloaded\n  const UNLOAD_DELETED_RECORDS = false; // number of records to process pushing at a time\n\n  const CHUNK_SIZE = 1000;\n\n  const flattenData = data => {\n    return Object.entries(data).reduce((arr, [modelName, records]) => {\n      records.forEach(record => {\n        arr.push({\n          modelName,\n          record\n        });\n      });\n      return arr;\n    }, []);\n  };\n\n  const logger = {};\n\n  var _default = Ember.Service.extend(Ember.Evented, {\n    socket: Ember.inject.service(),\n    store: Ember.inject.service(),\n    workspace: Ember.inject.service(),\n    activeContext: Ember.inject.service(),\n    mapContext: Ember.inject.service(),\n    startRefreshing: true,\n    _structuredWorkspace: null,\n    // keep track of newly pushed or removed records until `flushChanges`\n    _queue: null,\n    // used internally to manually invalidate data\n    _invalidationCounter: 0,\n    // keeps track of records that have been (or are pending) deletion\n    _deletedLookup: null,\n\n    init() {\n      let me = this;\n\n      this._super(...arguments);\n\n      this.set('_queue', []);\n      this.set('_deletedLookup', {});\n\n      const active = _activeContextGraph.activeContextNodes.reduce((acu, node) => {\n        acu[node.modelName] = [];\n        return acu;\n      }, {});\n\n      this.set('_structuredWorkspace', active);\n      this.get('loadAPIDataTask').perform(); // activates observer and triggers initial load\n\n      if (_environment.default.APP.fullMode) {\n        this.onDatesChange();\n      }\n    },\n\n    reset() {\n      this.trigger('change', _activeContextGraph.activeContextNodes.mapBy('modelName'));\n      this.get('connectSocketsTask').perform();\n    },\n\n    // flattened for easy binding & iteration\n    workspaceData: Ember.computed('_structuredWorkspace', function () {\n      const structuredWorkspaceData = this.get('_structuredWorkspace');\n      return flattenData(structuredWorkspaceData);\n    }),\n    // loads static data at application start\n    loadAPIDataTask: (0, _emberConcurrency.task)(function* () {\n      if (!_environment.default.APP.avlmLite) {\n        const store = this.get('store');\n        const loadedModelNames = [];\n\n        const refresh = () => {\n          this.trigger('change', loadedModelNames.slice());\n          loadedModelNames.clear();\n        }; // async loads can call refresh when each finishes\n\n\n        _apiPreloads.apiPreloads.filterBy('async').forEach(({\n          modelName\n        }) => {\n          return store.findAll(modelName).then(collection => {\n            loadedModelNames.push(collection.modelName);\n            Ember.run.debounce(this, refresh, 100);\n          });\n        }); // sync loads only refresh when all are done\n\n\n        const syncPromises = _apiPreloads.apiPreloads.rejectBy('async').map(({\n          modelName\n        }) => {\n          return store.findAll(modelName).then(collection => {\n            loadedModelNames.push(collection.modelName);\n          });\n        });\n\n        yield Ember.RSVP.all(syncPromises).then(collections => {\n          loadedModelNames.pushObjects(collections.mapBy('modelName'));\n          Ember.run.debounce(this, refresh, 100);\n        });\n      }\n    }).drop(),\n    connectSocketsTask: (0, _emberConcurrency.task)(function* () {\n      const startDate = this.get('workspace.startDate');\n      const endDate = this.get('workspace.endDate');\n      const startTime = startDate.getTime();\n      const endTime = endDate.getTime();\n      (true && !(startTime < endTime) && Ember.assert('workspace startTime must predate endTime', startTime < endTime)); // this will wait for any sync topics before resolving\n\n      yield this.get('socket').connect(startDate, endDate);\n    }).keepLatest(),\n\n    pushNewPayloads(payloads) {\n      //this.get('store').pushPayload(payload);\n      //payloads.forEach((payload) => this.pushPayload(payload));\n      //this.get('store').push(payloads);\n      //payloads.forEach((payload) => this.get('store').push(payload));\n      // if(this.get('startRefeshing')) {\n      //  this.get('reloadWorkspace').perform();\n      //}\n      payloads.forEach(payload => {\n        if (payload !== undefined) this.get('store').pushPayload(payload.message);\n      });\n    },\n\n    pushPayloads(payloads) {\n      payloads.forEach(payload => this.pushPayload(payload));\n    },\n\n    pushPayload(payload) {\n      this.get('_queue').push({\n        action: 'push',\n        payload\n      });\n    },\n\n    removeRecord(modelName, id) {\n      // this may not actually exist yet\n      const record = this.get('store').peekRecord(modelName, id);\n      const queue = this.get('_queue');\n      queue.push({\n        action: 'remove',\n        modelName,\n        id,\n        record\n      });\n\n      if (record) {\n        // mark isomorphic models for deletion\n        // TODO: expand this to BFS so it works correctly on non-iq-models\n        _activeContextGraph.activeContextNodes.findBy('modelName', modelName).links.filterBy('type', 'belongsTo') // should be redundant\n        //.filterBy('isIsomorphism', true)\n        .forEach(({\n          path\n        }) => {\n          let relatedRecord = record.get(path);\n\n          if (relatedRecord.hasOwnProperty('content')) {\n            relatedRecord = relatedRecord.content;\n          }\n\n          if (relatedRecord) {\n            queue.push({\n              action: 'remove',\n              modelName: relatedRecord.constructor.modelName,\n              id: relatedRecord.get('id'),\n              record: relatedRecord\n            });\n          }\n        });\n      }\n    },\n\n    processPayloadForMap(payload, store) {\n      const type = payload.data.type;\n\n      if (type === 'avl') {\n        return true;\n      }\n\n      if (type === 'stop') {\n        return true;\n      }\n\n      if (type === 'zone' || type === 'stand') {\n        return true;\n      }\n\n      return false;\n    },\n\n    processTimeConstraints(leftTimeConstraint, rightTimeConstraint) {\n      try {\n        let leftTime, rightTime;\n        const workspace = this.get('workspace');\n        const startTime = workspace.get('startDate').getTime();\n        const endTime = workspace.get('endDate').getTime();\n\n        if (leftTimeConstraint) {\n          const date = leftTimeConstraint;\n          leftTime = Ember.isPresent(date) ? date.getTime() : null;\n        }\n\n        if (rightTimeConstraint) {\n          const date = rightTimeConstraint;\n          rightTime = Ember.isPresent(date) ? date.getTime() : null;\n        }\n\n        if (Ember.isPresent(leftTime) && Ember.isPresent(rightTime)) {\n          if (leftTime <= endTime && rightTime >= startTime) return true;\n        }\n      } catch (e) {}\n\n      return false;\n    },\n\n    reloadWorkspace: (0, _emberConcurrency.task)(function* () {\n      const store = this.get('store');\n      let struc = this.get('_structuredWorkspace');\n      yield struc = _activeContextGraph.activeContextNodes.reduce((obj, node) => {\n        const peekedRecords = store.peekAll(node.modelName);\n        let filteredRecords;\n\n        if (node.isActive && this.get('startRefreshing')) {\n          filteredRecords = peekedRecords.filter(record => {\n            //TODO\n            // let bRemoved = false;\n            //bRemoved = this.isRecordRemoved(record);\n            // if (!bRemoved) {\n            if (this.get('activeContext.serverFilteringChecked')) {\n              return true;\n            }\n\n            if (record.constructor.modelName === 'rider' || record.constructor.modelName === 'account') {\n              const workspace = this.get('workspace');\n              const startTime = workspace.get('startDate').getTime();\n              const endTime = workspace.get('endDate').getTime();\n              let tripsWithActiveContext;\n\n              if (!Ember.isEmpty(record.get('trips'))) {\n                tripsWithActiveContext = record.get('trips').filter(function (item) {\n                  return startTime < item.get('requestedTime') && endTime > item.get('requestedTime');\n                });\n              }\n\n              if (!Ember.isEmpty(tripsWithActiveContext)) {\n                return true;\n              } else {\n                return false;\n              }\n            } else if (node.leftTimeConstraint !== undefined && node.rightTimeConstraint !== undefined) {\n              return this.processTimeConstraints(record.get(node.leftTimeConstraint), record.get(node.rightTimeConstraint));\n            } else {\n              return true;\n            } //}\n            //return false;\n\n          });\n        } else {\n          filteredRecords = peekedRecords.toArray();\n        }\n\n        obj[node.modelName] = filteredRecords;\n        return obj;\n      }, {});\n      this.set('_structuredWorkspace', struc);\n    }).keepLatest(),\n\n    isRecordRemoved(record) {\n      switch (record.constructor.modelName) {\n        case 'trip':\n        case 'iq-trip':\n        case 'stop':\n        case 'iq-stop':\n          return record.get('status') === 'Removed';\n\n        default:\n          return false;\n      }\n    },\n\n    flushChanges() {\n      const store = this.get('store');\n      const queue = this.get('_queue');\n      const mapContext = this.get('mapContext');\n      let updateMapContext = false;\n      if (Ember.isEmpty(queue)) return;\n      const pushModelNames = queue.filterBy('action', 'push').mapBy('payload.data.type').uniq();\n      const removeModelNames = queue.filterBy('action', 'remove').mapBy('record.constructor.modelName').uniq(); // these model types might not need to be refreshed\n\n      const countModelNames = pushModelNames.reject(modelName => {\n        // any model type for which a record is removed _must_ be refreshed after\n        return removeModelNames.includes(modelName);\n      }); // count these types before processing queue\n\n      const recordCount = countModelNames.reduce((obj, modelName) => {\n        obj[modelName] = store.peekAll(modelName).length;\n        return obj;\n      }, {});\n      const deletedLookup = this.get('_deletedLookup');\n      const killQueue = [];\n      let t = new Date().getTime();\n      const chunkSize = Math.min(queue.length, CHUNK_SIZE);\n      const chunk = [];\n\n      for (let i = 0; i < chunkSize; i++) {\n        chunk.push(queue.shift());\n      }\n\n      chunk.forEach(async (item\n      /*, i*/\n      ) => {\n        switch (item.action) {\n          case 'push':\n            {\n              updateMapContext = true; //this.processPayloadForMap(item.payload, store);\n\n              store.push(item.payload);\n              break;\n            }\n\n          case 'remove':\n            {\n              // mark record as deleted so that widgets can pull new data without it\n              let record = item.record;\n\n              if (!record) {\n                record = store.peekRecord(item.modelName, item.id);\n              }\n\n              if (record) {\n                killQueue.push(item.record);\n              } // this allow for faster filtering later\n\n\n              const key = `${item.modelName}:${item.id}`;\n              deletedLookup[key] = true;\n              break;\n            }\n\n          default:\n            break;\n        }\n      });\n      this.get('reloadWorkspace').perform();\n\n      if (updateMapContext) {\n        mapContext.trigger('refresh');\n      }\n\n      const refreshModelNames = removeModelNames.slice();\n      Object.entries(recordCount).forEach(([modelName, count]) => {\n        const newCount = store.peekAll(modelName).length;\n\n        if (newCount > count) {\n          refreshModelNames.push(modelName);\n        }\n      });\n\n      if (refreshModelNames.length > 0) {\n        this.trigger('change', refreshModelNames);\n      }\n\n      if (UNLOAD_DELETED_RECORDS) {\n        t = new Date().getTime();\n        Ember.run.schedule('afterRender', () => {\n          killQueue.forEach(record => {\n            store.unloadRecord(record);\n          });\n        }); //logger.debug(`unloaded ${killQueue.length} records`, t);\n      }\n\n      Ember.run.next(() => {\n        Ember.run.schedule('afterRender', this, 'flushChanges');\n      });\n    },\n\n    onDatesChange: Ember.observer('workspace.{startDate,endDate}', function () {\n      Ember.run.scheduleOnce('afterRender', this, 'reset');\n      this.get('reloadWorkspace').perform();\n      this.get('mapContext').trigger('refresh');\n    })\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/services/workspace\", [\"exports\", \"moment\"], function (_exports, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const DEFAULT_SIZE = 'small';\n  const DEFAULT_TILE_SIZE = 100;\n  const DEFAULT_TILE_SPACING = 4;\n\n  const logger = () => null;\n\n  const STATE_MACHINE = {\n    defaultStateId: 'default',\n    // TODO: relocate hooks to separated modules\n    states: [{\n      id: 'default',\n      hooks: []\n    }, {\n      id: 'editWorkspace',\n      sideDrawerComponent: 'side-drawer/add-widget',\n      hooks: [{\n        from: '*',\n\n        action() {\n          // this allows us to roll back on cancel\n          this.get('dashboard').makeWidgetsSavepoint(); // set tooltip\n\n          this.get('tooltip').setProperties({\n            tip: 'Configuration mode:',\n            primaryActionText: 'Exit Configuration',\n            secondaryActionText: 'Undo Changes',\n            primaryAction: () => {\n              this.popState('editWorkspace');\n              this.get('errorMessage').pushInfo({\n                detail: 'In order to retain the workspace changes, you must save the workspace.'\n              });\n            },\n            secondaryAction: () => {\n              this.get('dashboard').rollbackWidgets(); // Allow time for the GridStack instance to update the grid with the\n              // rolled back widget configs before popping edit workspace state.\n\n              setTimeout(() => {\n                this.popState('editWorkspace');\n              }, 15);\n            }\n          });\n        }\n\n      }, {\n        to: '*',\n\n        action() {\n          this.get('tooltip').reset();\n        }\n\n      }]\n    }, {\n      id: 'editRecords',\n      isSideDrawerVisible: true,\n      hooks: []\n    }, {\n      id: 'filterColumnWidget',\n      sideDrawerComponent: 'side-drawer/filter-settings',\n      hooks: []\n    }, {\n      id: 'gaugeWidget',\n      sideDrawerComponent: 'side-drawer/gauge-chart-settings',\n      hooks: []\n    }, {\n      id: 'donutChartWidget',\n      sideDrawerComponent: 'side-drawer/donut-chart-settings',\n      hooks: []\n    }, {\n      id: 'barChartWidget',\n      sideDrawerComponent: 'side-drawer/bar-chart-settings',\n      hooks: []\n    }, {\n      id: 'boxWidget',\n      sideDrawerComponent: 'side-drawer/box-widget-settings',\n      hooks: []\n    }, {\n      // TODO: is this a real state?\n      id: 'metricsColumnWidget',\n      isSideDrawerVisible: true,\n      hooks: []\n    }, {\n      id: 'filterMapWidget',\n      sideDrawerComponent: 'side-drawer/map-filter',\n      hooks: []\n    }, {\n      id: 'addNewMessage',\n      sideDrawerComponent: 'side-drawer/add-new-message',\n      hooks: [{\n        to: '*',\n\n        action() {\n          this.get('tooltip').reset();\n        }\n\n      }]\n    }, {\n      id: 'openWorkspace',\n      hooks: [{\n        to: '*',\n\n        action() {\n          this.get('tooltip').reset();\n        }\n\n      }]\n    }, {\n      id: 'saveWorkspaceAs',\n      hooks: [{\n        to: '*',\n\n        action() {\n          this.get('tooltip').reset();\n        }\n\n      }]\n    }, {\n      id: 'deleteWorkspace',\n      hooks: [{\n        from: '*',\n\n        action() {\n          this.get('tooltip').setProperties({\n            tip: 'Permanently delete workspace?',\n            primaryActionText: 'Delete Workspace',\n            secondaryActionText: 'Keep Workspace',\n            primaryAction: () => {\n              this.popState('deleteWorkspace').then(() => {\n                return this.get('dashboardModel').destroyRecord().then(() => {\n                  // must clear this before transitioning to index\n                  localStorage.setItem('lastDashboardId', null);\n                  this.get('router').transitionTo('index');\n                });\n              });\n            },\n            secondaryAction: () => {\n              this.popState('deleteWorkspace');\n            }\n          });\n        }\n\n      }, {\n        to: '*',\n\n        action() {\n          this.get('tooltip').reset();\n        }\n\n      }]\n    }, {\n      id: 'closeSchedule',\n      hooks: []\n    }, {\n      id: 'routeActivityLog',\n      sideDrawerComponent: 'side-drawer/route-activity-log'\n    }, {\n      id: 'tripActivityLog',\n      sideDrawerComponent: 'side-drawer/trip-activity-log'\n    }, {\n      id: 'editSystemConfiguration',\n      sideDrawerComponent: 'side-drawer/system-config'\n    }]\n  };\n\n  var _default = Ember.Service.extend({\n    activeContext: Ember.inject.service(),\n    router: Ember.inject.service(),\n    scheduleGeneration: Ember.inject.service(),\n    store: Ember.inject.service(),\n    tooltip: Ember.inject.service(),\n    errorMessage: Ember.inject.service(),\n    workspaceContext: Ember.inject.service(),\n    isLightMode: false,\n    size: DEFAULT_SIZE,\n    tileSize: DEFAULT_TILE_SIZE,\n    tileSpacing: DEFAULT_TILE_SPACING,\n    isDragging: false,\n    isResizing: false,\n    contentHeight: null,\n    contentWidth: null,\n    stack: null,\n    hasLockedSchedule: false,\n    configPermissions: null,\n    _dashboardModel: null,\n    _dashboardInstance: null,\n    isSideDrawerVisible: Ember.computed.alias('stack.lastObject.isSideDrawerVisible'),\n    sideDrawerComponent: Ember.computed.readOnly('stack.lastObject.sideDrawerComponent'),\n    topState: Ember.computed.alias('stack.lastObject.state'),\n    topStateDisplayName: Ember.computed.alias('stack.lastObject.options.displayName'),\n    topOptions: Ember.computed.alias('stack.lastObject.options'),\n    stackDepth: Ember.computed.alias('stack.length'),\n    isEditingTimeline: false,\n    isEditing: Ember.computed.equal('topState', 'editWorkspace'),\n    isGlobalSpinnerVisible: Ember.computed.alias('scheduleGeneration.isRunning'),\n    isDashboardPickerOpen: Ember.computed.equal('topState', 'openWorkspace'),\n    isDashboardSaveAsOpen: Ember.computed.equal('topState', 'saveWorkspaceAs'),\n    isClosingSchedule: Ember.computed.equal('topState', 'closeSchedule'),\n    gridWidth: Ember.computed('contentWidth', 'tileSize', function () {\n      return Math.floor(this.get('contentWidth') / this.get('tileSize'));\n    }),\n    gridHeight: Ember.computed('contentHeight', 'tileSize', function () {\n      return Math.floor(this.get('contentHeight') / this.get('tileSize'));\n    }),\n    onDatesChange: Ember.observer('endDate', function () {\n      this.validateTimeLineForLockedSchedule();\n    }),\n\n    validateTimeLineForLockedSchedule() {\n      /*eslint-disable */\n      const me = this;\n      /*eslint-enable */\n\n      const startDate = (0, _moment.default)(this.get('startDate'));\n      const endDate = (0, _moment.default)(this.get('endDate')); //Ankur - Commented Currently Transit specific code\n\n      /*me.store.findAll('schedule', { reload: true })\n        .then(function(schedules) {\n          schedules.forEach(schedule => {\n            if (schedule.get('locked')) {\n              const scheduleStart = moment(schedule.startTime);\n              const scheduleEnd = moment(schedule.endTime);\n               if (startDate.isBetween(scheduleStart, scheduleEnd) ||\n                  endDate.isBetween(scheduleStart, scheduleEnd) ||\n                  scheduleStart.isBetween(startDate, endDate) ||\n                  scheduleEnd.isBetween(startDate, endDate)) {\n                me.get('errorMessage').pushInfo({ detail: 'The current timeline contains at least one day with a closed schedule. In order to edit data, you must be viewing day(s) where the schedule is not closed.'});\n              }\n            }\n          });\n        });*/\n    },\n\n    isTimelineSpanMultipleDays: Ember.computed('startDate', 'endDate', function () {\n      const startDate = (0, _moment.default)(this.get('startDate'));\n      const endDate = (0, _moment.default)(this.get('endDate'));\n      const singleDate = (0, _moment.default)(startDate);\n      let isMultipleDays = false;\n\n      if (!(startDate.isSameOrAfter(singleDate.startOf('day')) && endDate.isSameOrBefore(singleDate.endOf('day')))) {\n        isMultipleDays = true;\n      }\n\n      return isMultipleDays;\n    }),\n    startDate: Ember.computed('dashboard.{startDate,referenceDate}', {\n      get()\n      /* key */\n      {\n        const startDate = this.get('dashboard.startDate');\n        const referenceDate = this.get('dashboard.referenceDate');\n        return (0, _moment.default)().startOf('day').add(startDate - referenceDate, 'ms').toDate();\n      },\n\n      set(key, value) {\n        const referenceDate = (0, _moment.default)().startOf('day').toDate();\n        this.set('dashboard.startDate', value);\n        this.set('dashboard.referenceDate', referenceDate);\n        return value;\n      }\n\n    }),\n    endDate: Ember.computed('dashboard.{endDate,referenceDate}', {\n      get()\n      /* key */\n      {\n        const endDate = this.get('dashboard.endDate');\n        const referenceDate = this.get('dashboard.referenceDate');\n        return (0, _moment.default)().startOf('day').add(endDate - referenceDate, 'ms').toDate();\n      },\n\n      set(key, value) {\n        const referenceDate = (0, _moment.default)().startOf('day').toDate();\n        this.set('dashboard.endDate', value);\n        this.set('dashboard.referenceDate', referenceDate);\n        return value;\n      }\n\n    }),\n    // for backward compatibility; it's better to use `dashboardInstance` or\n    // `dashboardModel` expclitily\n    dashboard: Ember.computed.alias('dashboardInstance'),\n    // this is a DashboardInstance class; it is decoupled from the model.\n    // you can replace this to update local state without persisting\n    dashboardInstance: Ember.computed('_dashboardInstance', {\n      get() {\n        return this.get('_dashboardInstance');\n      },\n\n      set(key, value) {\n        (true && !(value.constructor.modelName !== 'dashboard') && Ember.assert('cannot set workspace dashboard instance to be dashboard model', value.constructor.modelName !== 'dashboard'));\n        this.set('_dashboardInstance', value);\n        return value;\n      }\n\n    }),\n    dashboardModel: Ember.computed('_dashboardModel', {\n      get() {\n        return this.get('_dashboardModel');\n      },\n\n      set(key, value) {\n        this.set('_dashboardModel', value);\n\n        if (value) {\n          this.resetForDashboardChange();\n          this.set('dashboardInstance', value.makeInstance());\n        } else {\n          this.set('dashboardInstance', null);\n        }\n\n        return value;\n      }\n\n    }),\n\n    init() {\n      this._super(...arguments);\n\n      this.set('stack', ['default']);\n      this.validateTimeLineForLockedSchedule();\n    },\n\n    reset() {\n      this.setProperties({\n        isLightMode: false,\n        size: DEFAULT_SIZE,\n        tileSize: DEFAULT_TILE_SIZE\n      });\n      this.resetForDashboardChange();\n    },\n\n    resetForDashboardChange() {\n      this.setProperties({\n        isDragging: false,\n        isResizing: false\n      });\n      this.set('stack', [{\n        state: 'default'\n      }]);\n    },\n\n    pushState(newStateId, options = {}) {\n      const previousStateId = this.get('topState');\n      const previousState = STATE_MACHINE.states.findBy('id', previousStateId);\n      logger('covering', previousStateId); // TODO: allow for promise actions\n\n      if (previousState) {\n        Ember.makeArray(previousState.hooks).filter(({\n          to\n        }) => {\n          return to === newStateId || to === '*';\n        }).forEach(({\n          action\n        }) => {\n          action.call(this, this);\n        });\n      } // TODO: check if we are allowed to push state based on top state\n\n\n      const newState = STATE_MACHINE.states.findBy('id', newStateId);\n      /*eslint-disable */\n\n      if (!newState) throw `unknown state with id '${newStateId}'`;\n      /*eslint-enable */\n\n      logger('pushing', newStateId);\n      Ember.makeArray(newState.hooks).filter(({\n        from\n      }) => {\n        return from === previousStateId || from === '*';\n      }).forEach(({\n        action\n      }) => {\n        action.call(this, this);\n      });\n      this.get('stack').pushObject({\n        state: newStateId,\n        isSideDrawerVisible: newState.isSideDrawerVisible,\n        sideDrawerComponent: newState.sideDrawerComponent,\n        options\n      });\n      return Ember.RSVP.Promise.resolve();\n    },\n\n    popState(stateId) {\n      if (this.get('stackDepth') === 0) {\n        /*eslint-disable */\n        throw `cannot pop state: stack is empty`;\n        /*eslint-enable */\n      }\n\n      const previousStateId = this.get('topState');\n      const previousState = STATE_MACHINE.states.findBy('id', previousStateId);\n\n      if (Ember.isPresent(stateId) && stateId !== previousStateId) {\n        /*eslint-disable */\n        throw `cannot pop state ${stateId}: top state is ${previousStateId}`;\n        /*eslint-enable */\n      }\n\n      logger('popping', previousStateId);\n      this.get('stack').popObject();\n      const newStateId = this.get('topState');\n      const newState = STATE_MACHINE.states.findBy('id', newStateId); // TODO: allow for promise actions\n\n      Ember.makeArray(previousState.hooks).filter(({\n        to\n      }) => {\n        return to === newStateId || to === '*';\n      }).forEach(({\n        action\n      }) => {\n        action.call(this, this);\n      });\n      logger('uncovering', newStateId); // TODO: allow for promise actions\n\n      if (newState) {\n        Ember.makeArray(newState.hooks).filter(({\n          from\n        }) => {\n          return from === previousStateId || from === '*';\n        }).forEach(({\n          action\n        }) => {\n          action.call(this, this);\n        });\n      }\n\n      return Ember.RSVP.Promise.resolve();\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/session-stores/application\", [\"exports\", \"ember-simple-auth/session-stores/adaptive\"], function (_exports, _adaptive) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _adaptive.default.extend();\n\n  _exports.default = _default;\n});","define(\"adept-iq/templates/components/ember-popper-targeting-parent\", [\"exports\", \"ember-popper/templates/components/ember-popper-targeting-parent\"], function (_exports, _emberPopperTargetingParent) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberPopperTargetingParent.default;\n    }\n  });\n});","define(\"adept-iq/templates/components/ember-popper\", [\"exports\", \"ember-popper/templates/components/ember-popper\"], function (_exports, _emberPopper) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberPopper.default;\n    }\n  });\n});","define(\"adept-iq/tests/mirage/mirage.lint-test\", [], function () {\n  \"use strict\";\n\n  QUnit.module('ESLint | mirage');\n  QUnit.test('mirage/config.js', function (assert) {\n    assert.expect(1);\n    assert.ok(true, 'mirage/config.js should pass ESLint\\n\\n');\n  });\n});","define(\"adept-iq/topic-transforms/account\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/alert\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    payload.data.type = 'alert';\n\n    if (!payload.data.relationships) {\n      payload.data.relationships = {};\n    }\n\n    if (!payload.included) {\n      payload.included = [];\n    }\n\n    if (payload.data.attributes.providerId) {\n      payload.data.relationships.provider = {\n        data: {\n          type: 'provider',\n          id: payload.data.attributes.providerId\n        }\n      };\n      payload.included.push({\n        id: payload.data.attributes.providerId,\n        type: 'provider'\n      });\n    }\n\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/avl\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/driver-state\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    payload.data.type = 'driver-state';\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/driver\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/message\", [\"exports\", \"adept-iq/config/environment\"], function (_exports, _environment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n  const CANNED_RESPONSE_TYPES = {\n    'X': 'None',\n    'A': 'Acknowledge',\n    'Y': 'Yes/No'\n  };\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    payload.data.type = 'avlm-canned-message';\n    const transformedPayloads = [];\n\n    if (!_environment.default.APP.avlmLite && payload.data.attributes.priority === 'E') {\n      payload.data.type = 'avlm-emergency-message';\n    } // Because we receive included payloads with an empty 'id', we need to empty\n    // the included array and only push valid payloads\n\n\n    const avlmDriver = payload.included.filterBy('type', 'driver');\n    const avlmRoute = payload.included.filterBy('type', 'route');\n    const avlmVehicle = payload.included.filterBy('type', 'vehicle'); // Set the included array to empty\n\n    payload.included = []; // Determine if each exists and has an id\n\n    if (!avlmRoute[0] || avlmRoute[0].id === '') {\n      delete payload.data.relationships.route;\n    } else {\n      // create a dummy iq-route record to have an earlier association to iq-routes\n      const iqPayload = {\n        data: {\n          id: avlmRoute[0].id,\n          type: 'iqRoute'\n        }\n      };\n      transformedPayloads.push(iqPayload);\n      payload.included.push(avlmRoute[0]);\n    }\n\n    if (!avlmDriver[0] || avlmDriver[0].id === '') {\n      delete payload.data.relationships.driver;\n    } else {\n      // create a dummy iq-driver record to have an earlier association to iq-driver\n      const iqPayload = {\n        data: {\n          id: avlmDriver[0].id,\n          type: 'iqDriver'\n        }\n      };\n      transformedPayloads.push(iqPayload);\n      payload.included.push(avlmDriver[0]);\n    }\n\n    if (!avlmVehicle[0] || avlmVehicle[0].id === '') {\n      delete payload.data.relationships.vehicle;\n    } else {\n      // create a dummy vehicle record to have an earlier association to vehicle\n      const iqPayload = {\n        data: {\n          id: avlmVehicle[0].id,\n          type: 'iqVehicle'\n        }\n      };\n      transformedPayloads.push(iqPayload);\n      payload.included.push(avlmVehicle[0]);\n    }\n\n    if (avlmDriver.length !== 0) {\n      payload.data.attributes.driver = {\n        firstName: avlmDriver[0].attributes.firstName,\n        id: avlmDriver[0].id,\n        lastName: avlmDriver[0].attributes.lastName\n      };\n    }\n\n    payload.data.attributes.responseTypeText = CANNED_RESPONSE_TYPES[payload.data.attributes.responseType];\n    transformedPayloads.push(payload);\n    return transformedPayloads;\n  }\n});","define(\"adept-iq/topic-transforms/navigation-info\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload, logger) {\n    const routeId = payload.data.id;\n    const navigationPolyline = payload.data.attributes.polyline; // route will be created if non-existent, so show a warning\n\n    const route = store.peekRecord('route', routeId);\n\n    if (!route) {\n      logger.warn(`received navigationInfo for unknown route '${routeId}'`);\n    }\n\n    return {\n      data: {\n        id: routeId,\n        type: 'route',\n        attributes: {\n          navigationPolyline\n        }\n      }\n    };\n  }\n});","define(\"adept-iq/topic-transforms/rider\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/route-exec-event\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload, logger) {\n    const {\n      routeId,\n      tripId,\n      breakId,\n      type\n    } = payload.data.attributes;\n    const stopId = payload.data.attributes.stopPointId;\n    const routeAttributes = {};\n    const tripAttributes = {};\n    const stopAttributes = {};\n\n    switch (type) {\n      case 'No Show':\n        {\n          //logger.debug(`routeExec ${type} tripId=${tripId}`);\n          tripAttributes.status = type;\n          stopAttributes.status = type;\n          break;\n        }\n\n      case 'Arrive':\n        {\n          //logger.debug(`routeExec ${type} routeId=${routeId}`);\n          stopAttributes.status = type;\n          routeAttributes.status = type;\n          break;\n        }\n\n      case 'Depart':\n        {\n          // logger.debug(`routeExec ${type} stopId=${stopId}`);\n          stopAttributes.status = type;\n          routeAttributes.status = type;\n          break;\n        }\n\n      case 'Accept':\n      case 'Reject':\n      case 'OnBreak':\n        {\n          //logger.debug(`routeExec ${type} routeId=${routeId}`);\n          stopAttributes.status = type;\n          routeAttributes.status = type;\n          break;\n        }\n\n      case 'OffBreak':\n        {\n          //logger.debug(`routeExec ${type} routeId=${routeId}`);\n          stopAttributes.status = type;\n          routeAttributes.status = type;\n          break;\n        }\n      // these are currently defined but unused\n\n      case 'OnStop':\n      case 'Complete':\n        {\n          //logger.debug(`routeExec ${type} routeId=${routeId}`);\n          routeAttributes.status = type;\n          break;\n        }\n\n      case 'work': // TODO: check if this should be capitalized\n\n      case 'ETA':\n      case 'AVL':\n      case 'Pullout':\n        {\n          //logger.debug(`routeExec ${type} routeId=${routeId}`);\n          stopAttributes.status = type;\n          routeAttributes.status = type;\n          break;\n        }\n\n      case 'Pullin':\n        {\n          // logger.debug(`routeExec ${type} routeId=${routeId}`);\n          stopAttributes.status = type;\n          routeAttributes.status = type;\n          break;\n        }\n\n      default:\n        break;\n    }\n\n    const transformedPayloads = [];\n\n    if (routeId) {\n      const {\n        odo,\n        otpRouteStatus,\n        otpRouteValue\n      } = payload.data.attributes;\n\n      if (Ember.isPresent(otpRouteStatus)) {\n        routeAttributes.otp = otpRouteStatus;\n      }\n\n      if (Ember.isPresent(otpRouteValue)) {\n        routeAttributes.otpValue = otpRouteValue;\n      }\n\n      routeAttributes.odometer = odo;\n      const routePayload = {\n        data: {\n          id: routeId,\n          type: 'route',\n          attributes: routeAttributes\n        }\n      };\n      transformedPayloads.push(routePayload);\n    }\n\n    if (tripId) {\n      const {\n        otpTripStatus,\n        otpTripValue\n      } = payload.data.attributes;\n\n      if (Ember.isPresent(otpTripStatus)) {\n        tripAttributes.otp = otpTripStatus;\n      }\n\n      if (Ember.isPresent(otpTripValue)) {\n        tripAttributes.otpValue = otpTripValue;\n      }\n\n      const tripPayload = {\n        data: {\n          id: tripId,\n          type: 'trip',\n          attributes: tripAttributes\n        }\n      };\n      transformedPayloads.push(tripPayload);\n    }\n\n    if (stopId) {\n      const {\n        odo,\n        otpStopStatus,\n        otpStopValue\n      } = payload.data.attributes;\n\n      if (Ember.isPresent(otpStopStatus)) {\n        stopAttributes.otp = otpStopStatus;\n      }\n\n      if (Ember.isPresent(otpStopValue)) {\n        stopAttributes.otpValue = otpStopValue;\n      }\n\n      stopAttributes.odometer = odo;\n      const stopPayload = {\n        data: {\n          id: stopId,\n          type: 'stop',\n          attributes: stopAttributes\n        }\n      };\n      transformedPayloads.push(stopPayload);\n    }\n\n    if (breakId) {\n      const {\n        odo,\n        otpStopStatus,\n        otpStopValue\n      } = payload.data.attributes;\n\n      if (Ember.isPresent(otpStopStatus)) {\n        stopAttributes.otp = otpStopStatus;\n      }\n\n      if (Ember.isPresent(otpStopValue)) {\n        stopAttributes.otpValue = otpStopValue;\n      }\n\n      stopAttributes.odometer = odo;\n      const stopPayload = {\n        data: {\n          id: `B${breakId}`,\n          type: 'stop',\n          attributes: stopAttributes\n        }\n      };\n      transformedPayloads.push(stopPayload);\n    }\n\n    return transformedPayloads;\n  }\n});","define(\"adept-iq/topic-transforms/route\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/stand\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/stop\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/subscription\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload, logger) {\n    payload.data.type = 'subscription';\n    let {\n      fareTypeName,\n      fareTypeId,\n      serviceWindowId,\n      serviceWindowName\n    } = payload.data.attributes; // topic does not currently have ID for fareType, so try to look it up\n\n    if (Ember.isBlank(fareTypeId) && Ember.isPresent(fareTypeName)) {\n      let fareType = store.peekAll('fare-type').findBy('name', fareTypeName);\n\n      if (fareType) {\n        fareTypeId = fareType.get('id');\n      } else {\n        logger.warn(`could not find fareType with name '${fareTypeName}'`);\n      }\n    }\n\n    if (Ember.isPresent(fareTypeId)) {\n      payload.data.relationships.fareType = {\n        data: {\n          id: fareTypeId,\n          type: 'fareType'\n        }\n      };\n    } // same thing with service window\n\n\n    if (Ember.isBlank(serviceWindowId) && Ember.isPresent(serviceWindowName)) {\n      let serviceWindow = store.peekAll('service-window').findBy('name', serviceWindowName);\n\n      if (serviceWindow) {\n        serviceWindowId = serviceWindow.get('id');\n      } else {\n        // FIXME: it's probably not safe to assume these are the same; this\n        // shouldn't happen when service windows pre-loaded from config service\n        serviceWindowId = serviceWindowName;\n        payload.included.push({\n          id: serviceWindowId,\n          type: 'serviceWindow',\n          attributes: {\n            name: serviceWindowName\n          }\n        });\n      }\n    }\n\n    if (Ember.isPresent(serviceWindowId)) {\n      payload.data.relationships.serviceWindow = {\n        data: {\n          id: serviceWindowId,\n          type: 'serviceWindow'\n        }\n      };\n    } // subscriptions have their own kind of travelNeeds in trip domain model\n\n\n    let {\n      travelNeeds\n    } = payload.data.relationships;\n    delete payload.data.relationships.travelNeeds;\n    travelNeeds.data.setEach('type', 'subscriptionTravelNeed');\n    payload.data.relationships.subscriptionTravelNeeds = travelNeeds;\n    payload.included.filterBy('type', 'travelNeed').forEach(travelNeedPayload => {\n      travelNeedPayload.type = 'subscriptionTravelNeed';\n      travelNeedPayload.relationships = travelNeedPayload.relationships || {};\n      let {\n        passengerTypeName,\n        travelNeedTypeName\n      } = travelNeedPayload.attributes;\n      let passengerType = store.peekAll('passenger-type').findBy('name', passengerTypeName);\n\n      if (passengerType) {\n        travelNeedPayload.relationships.passengerType = {\n          data: {\n            id: passengerType.get('id'),\n            type: 'passengerType'\n          }\n        };\n      }\n\n      let travelNeedType = store.peekAll('travel-need-type').findBy('name', travelNeedTypeName);\n\n      if (travelNeedType) {\n        travelNeedPayload.relationships.travelNeedType = {\n          data: {\n            id: travelNeedType.get('id'),\n            type: 'travelNeedType'\n          }\n        };\n      }\n    });\n    payload.included.filterBy('type', 'rider').forEach(riderPayload => {\n      let {\n        rmsPK\n      } = riderPayload.attributes;\n\n      if (rmsPK) {\n        delete riderPayload.attributes.rmsPK;\n        riderPayload.attributes.riderId = rmsPK;\n      }\n    });\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/trip-exec-event\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    payload.data.type = 'trip-exec-event';\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/trip\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/user\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    payload.data.type = 'sso-user';\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/vehicle-state\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    payload.data.type = 'vehicle-state';\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/vehicle\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    return payload;\n  }\n});","define(\"adept-iq/topic-transforms/zone\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = transform;\n\n  function transform(store, payload\n  /*, logger*/\n  ) {\n    return payload;\n  }\n});","define(\"adept-iq/transforms/array\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _emberData.default.Transform.extend({\n    deserialize: function (serialized) {\n      if (Ember.isArray(serialized)) {\n        return Ember.A(serialized);\n      } else {\n        return Ember.A();\n      }\n    },\n    serialize: function (deserialized) {\n      if (Ember.isArray(deserialized)) {\n        return Ember.A(deserialized);\n      } else {\n        return Ember.A();\n      }\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/transforms/fragment-array\", [\"exports\", \"ember-data-model-fragments/transforms/fragment-array\"], function (_exports, _fragmentArray) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _fragmentArray.default;\n  _exports.default = _default;\n});","define(\"adept-iq/transforms/fragment\", [\"exports\", \"ember-data-model-fragments/transforms/fragment\"], function (_exports, _fragment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _fragment.default;\n  _exports.default = _default;\n});","define(\"adept-iq/transforms/nested\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  // import Ember from 'ember';\n  const {\n    Transform\n  } = _emberData.default; // function copy(source) {\n  //     let keys = Object.keys(source);\n  //     let dest = {};\n  //     for(let i = 0; i < keys.length; i++) {\n  //         if(keys[i].charAt(0) !== '_') {\n  //             dest[keys[i]] = source[keys[i]];\n  //         }\n  //     }\n  //     return dest;\n  // }\n\n  var _default = Transform.extend({\n    deserialize: function (serialized) {\n      return serialized;\n    },\n    serialize: function (deserialized) {\n      return deserialized;\n    }\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/transforms/object\", [\"exports\", \"ember-data\"], function (_exports, _emberData) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _emberData.default.Transform.extend({\n    deserialize(serialized) {\n      return serialized;\n    },\n\n    serialize(deserialized) {\n      return deserialized;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/transforms/polyline\", [\"exports\", \"ember-data\", \"@mapbox/polyline\"], function (_exports, _emberData, _polyline) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = _emberData.default.Transform.extend({\n    deserialize(serialized) {\n      if (Ember.isEmpty(serialized)) return null;\n      return _polyline.default.decode(serialized);\n    },\n\n    serialize(deserialized) {\n      if (Ember.isEmpty(deserialized)) return null;\n      return _polyline.default.encode(deserialized);\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/transforms/ss-date\", [\"exports\", \"ember-data\", \"moment\"], function (_exports, _emberData, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  // scheduling API uses a slightly different date format\n  const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ssZZ';\n\n  var _default = _emberData.default.DateTransform.extend({\n    serialize(date) {\n      if (date instanceof Date && !isNaN(date)) {\n        return (0, _moment.default)(date).format(DATE_FORMAT);\n      }\n\n      return null;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/utils/calculate-position\", [\"exports\", \"ember-basic-dropdown/utils/calculate-position\"], function (_exports, _calculatePosition) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _calculatePosition.default;\n    }\n  });\n});","define(\"adept-iq/utils/check-address-flags\", [\"exports\", \"lodash\"], function (_exports, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = checkAddressFlags;\n\n  function checkAddressFlags(record) {\n    try {\n      let pickAddress = _lodash.default.cloneDeep(record.stopPoints[0]);\n\n      let dropAddress = _lodash.default.cloneDeep(record.stopPoints[1]); // Enble this code if require same functionality as JCallbooker\n\n\n      let isPickupPresent = true;\n      let isDropPresent = true;\n      let isCliDataPresent = true;\n\n      if (Ember.isBlank(record.passengers[0].phone1.number)) {\n        isCliDataPresent = false;\n      }\n\n      if (Ember.isBlank(record.passengers[0].firstName)) {\n        isCliDataPresent = false;\n      }\n\n      if (Ember.isEmpty(pickAddress) || Ember.isEmpty(pickAddress.address) || Ember.isEmpty(pickAddress.address.streetNr) && Ember.isEmpty(pickAddress.address.streetName)) {\n        isPickupPresent = false;\n      }\n\n      if (Ember.isEmpty(dropAddress) || Ember.isEmpty(dropAddress.address) || Ember.isEmpty(dropAddress.address.streetNr) && Ember.isEmpty(dropAddress.address.streetName)) {\n        isDropPresent = false;\n      }\n\n      if (isPickupPresent && isDropPresent) {\n        record.set('editmodelcontext.swapAddressDisabled', false);\n      }\n\n      if (isPickupPresent) {\n        record.set('editmodelcontext.saveCLIDisabled', false);\n      }\n    } catch (e) {\n      console.log(e);\n    }\n\n    return;\n  }\n});","define(\"adept-iq/utils/check-address-overwrite\", [\"exports\", \"adept-iq/utils/check-value\"], function (_exports, _checkValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = checkAddressOverwrite;\n\n  function checkAddressOverwritePopup(address, addressData) {\n    if (Ember.isBlank(address.streetNr) && Ember.isBlank(address.streetName) && Ember.isBlank(address.region)) {\n      return false;\n    }\n\n    if ((0, _checkValue.default)(address.streetNr) === (0, _checkValue.default)(addressData.streetNr) && (0, _checkValue.default)(address.streetName) === (0, _checkValue.default)(addressData.streetName) && (0, _checkValue.default)(address.region) === (0, _checkValue.default)(addressData.region)) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function checkAddressOverwrite(address, addressData) {\n    return checkAddressOverwritePopup(address, addressData);\n  }\n});","define(\"adept-iq/utils/check-value\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = checkValue;\n\n  function checkValue(value) {\n    if (Ember.isBlank(value)) {\n      return \"\";\n    } else {\n      return value.trim();\n    }\n  }\n});","define(\"adept-iq/utils/css-transitions/has-transitions\", [\"exports\", \"ember-modal-service/utils/css-transitions/has-transitions\"], function (_exports, _hasTransitions) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _hasTransitions.default;\n    }\n  });\n});","define(\"adept-iq/utils/css-transitions/index\", [\"exports\", \"ember-modal-service/utils/css-transitions\"], function (_exports, _cssTransitions) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _cssTransitions.default;\n    }\n  });\n});","define(\"adept-iq/utils/css-transitions/on-transition-end\", [\"exports\", \"ember-modal-service/utils/css-transitions/on-transition-end\"], function (_exports, _onTransitionEnd) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _onTransitionEnd.default;\n    }\n  });\n});","define(\"adept-iq/utils/data-join\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n\n  var _default = Ember.Object.extend({\n    cache: null,\n    nodes: null,\n    dirtyMarkers: null,\n    dirtyPolylines: null,\n\n    init() {\n      this._super(...arguments);\n\n      this.set('cache', {});\n      this.set('dirtyMarkers', {});\n      this.set('dirtyPolylines', {});\n      this.set('nodes', []);\n    },\n\n    clear() {\n      this.join([]);\n      const cache = this.get('cache');\n      Object.entries(cache).forEach(([key, node]) => {\n        delete cache[key];\n        this.release(node);\n      });\n    },\n\n    // override initialize, enter, update, and exit with custom behaviour\n    initialize: data => data,\n\n    enter()\n    /* node, i */\n    {},\n\n    update()\n    /* node, data, i */\n    {},\n\n    exit()\n    /* node */\n    {},\n\n    release()\n    /* node */\n    {},\n\n    keyForNode: node => Ember.get(node, 'id'),\n    keyForData: data => Ember.get(data, 'id'),\n    keyForMarker: node => {\n      const id = node.get('id');\n      const lat = node.get('lat');\n      const lng = node.get('lng');\n      const style = node.get('iconStyle');\n      const label = node.get('label');\n\n      if (lat && lng) {\n        return `${id}-${lat}-${lng}-${style}-${label}`;\n      }\n\n      return null;\n    },\n    keyForPolyline: node => {\n      const id = node.get('id');\n      const points = node.get('points');\n      const style = node.get('style');\n      const label = node.get('label');\n\n      if (points) {\n        return `${id}-${style}-${label}`;\n      }\n\n      return null;\n    },\n\n    join(collection) {\n      const cache = this.get('cache');\n      const nodes = this.get('nodes');\n      const dirtyMarkers = this.get('dirtyMarkers');\n      const dirtyPolylines = this.get('dirtyPolylines'); // build lookup tables\n\n      const wasInNodes = {};\n\n      for (let i = 0; i < nodes.length; i++) {\n        wasInNodes[this.keyForNode(nodes[i])] = true;\n      }\n\n      const isInCollection = {};\n\n      for (let i = 0; i < collection.length; i++) {\n        isInCollection[this.keyForNode(collection[i])] = true;\n      } // exit outgoing nodes first\n\n\n      for (let i = nodes.length - 1; i >= 0; i--) {\n        const node = nodes[i];\n        const key = this.keyForNode(node);\n        const markerKey = this.keyForMarker(node);\n        const polylineKey = this.keyForPolyline(node);\n\n        if (!isInCollection[key]) {\n          this.exit(node);\n          if (polylineKey) delete dirtyPolylines[key];\n          if (markerKey) delete dirtyMarkers[key];\n        }\n      }\n\n      nodes.clear();\n      collection.forEach((data, i) => {\n        const key = this.keyForData(data);\n        let node = cache[key];\n\n        if (!node) {\n          node = this.initialize(data);\n          cache[key] = node;\n        }\n\n        nodes.push(node);\n        const markerKey = this.keyForMarker(node);\n        const cacheMarkerKey = dirtyMarkers[key] ? dirtyMarkers[key] : null;\n        const polylineKey = this.keyForPolyline(node);\n        const cachePolylineKey = dirtyPolylines[key] ? dirtyPolylines[key] : null;\n\n        if (wasInNodes[key]) {\n          if (markerKey !== cacheMarkerKey || polylineKey !== cachePolylineKey) {\n            this.update(node, data, i);\n            if (markerKey) dirtyMarkers[key] = markerKey;\n            if (polylineKey) dirtyPolylines[key] = polylineKey;\n          } else if (!markerKey && !polylineKey) this.update(node, data, i);\n        } else {\n          this.enter(node, i);\n          if (markerKey) dirtyMarkers[key] = markerKey;\n          if (polylineKey) dirtyPolylines[key] = polylineKey;\n        }\n      });\n      return this;\n    }\n\n  });\n\n  _exports.default = _default;\n});","define(\"adept-iq/utils/encoding\", [\"exports\", \"moment\"], function (_exports, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.parseTime = _exports.parseDate = _exports.parseInteger = _exports.parseNumber = _exports.parseBoolean = _exports.parseString = _exports.isEncodedTime = _exports.isEncodedDate = _exports.isEncodedNumber = _exports.isEncodedBoolean = _exports.isNonEmptyString = _exports.isDate = _exports.isString = _exports.isNumber = void 0;\n  const TIME_PARSING_FORMATS = ['h:mm A', 'HH:mm']; // strict type validations\n\n  const isString = s => Ember.typeOf(s) === 'string';\n\n  _exports.isString = isString;\n\n  const isNumber = x => Ember.typeOf(x) === 'number' && !isNaN(x);\n\n  _exports.isNumber = isNumber;\n\n  const isDate = date => {\n    const prototypeString = Object.prototype.toString.call(date);\n    return prototypeString === '[object Date]' && !isNaN(date);\n  }; // used to check if a user-supplied string represents a valid filter value\n\n\n  _exports.isDate = isDate;\n\n  const isNonEmptyString = s => isString(s) && Ember.isPresent(s);\n\n  _exports.isNonEmptyString = isNonEmptyString;\n\n  const isEncodedBoolean = s => s === 'true' || s === 'false';\n\n  _exports.isEncodedBoolean = isEncodedBoolean;\n\n  const isEncodedNumber = s => isNonEmptyString(s) && !isNaN(parseFloat(s));\n\n  _exports.isEncodedNumber = isEncodedNumber;\n\n  const isEncodedDate = s => isNonEmptyString(s) && (0, _moment.default)(s).isValid();\n\n  _exports.isEncodedDate = isEncodedDate;\n\n  const isEncodedTime = s => {\n    return isNonEmptyString(s) && (0, _moment.default)(s, TIME_PARSING_FORMATS).isValid();\n  }; // use to coerce a string to the given type\n\n\n  _exports.isEncodedTime = isEncodedTime;\n\n  const parseString = str => str;\n\n  _exports.parseString = parseString;\n\n  const parseNumber = str => parseFloat(str);\n\n  _exports.parseNumber = parseNumber;\n\n  const parseInteger = str => parseInt(str, 10);\n\n  _exports.parseInteger = parseInteger;\n\n  const parseBoolean = str => str === 'true';\n\n  _exports.parseBoolean = parseBoolean;\n\n  const parseDate = str => (0, _moment.default)(str).toDate();\n\n  _exports.parseDate = parseDate;\n\n  const parseTime = str => (0, _moment.default)(str, TIME_PARSING_FORMATS).toDate();\n\n  _exports.parseTime = parseTime;\n});","define(\"adept-iq/utils/filter-functions\", [\"exports\", \"moment\"], function (_exports, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.dateIncludesIFn = _exports.addressIncludesIFn = _exports.stringIncludesIFn = _exports.stringNeIFn = _exports.stringEqIFn = _exports.dateStrictlyBetweenFn = _exports.dateBetweenFn = _exports.dateGteFn = _exports.dateGtFn = _exports.dateLteFn = _exports.dateLtFn = _exports.dateNeFn = _exports.dateStrEqFn = _exports.dateEqFn = _exports.strictlyBetweenFn = _exports.betweenFn = _exports.gteFn = _exports.gtFn = _exports.lteFn = _exports.ltFn = _exports.includesFn = _exports.neFn = _exports.eqFn = _exports.emptyFn = _exports.nullFn = void 0;\n\n  const nullFn = () => true;\n\n  _exports.nullFn = nullFn;\n  const emptyFn = Ember.isBlank;\n  _exports.emptyFn = emptyFn;\n\n  const eqFn = (a, [b]) => a === b;\n\n  _exports.eqFn = eqFn;\n\n  const neFn = (a, [b]) => a !== b;\n\n  _exports.neFn = neFn;\n\n  const includesFn = (a, [b]) => {\n    if (!a || !a.includes || !b) {\n      return false;\n    }\n\n    return a.includes(b);\n  };\n\n  _exports.includesFn = includesFn;\n\n  const ltFn = (a, [b]) => a < b;\n\n  _exports.ltFn = ltFn;\n\n  const lteFn = (a, [b]) => a <= b;\n\n  _exports.lteFn = lteFn;\n\n  const gtFn = (a, [b]) => a > b;\n\n  _exports.gtFn = gtFn;\n\n  const gteFn = (a, [b]) => a >= b;\n\n  _exports.gteFn = gteFn;\n\n  const betweenFn = (a, [b, c]) => b <= a && a <= c;\n\n  _exports.betweenFn = betweenFn;\n\n  const strictlyBetweenFn = (a, [b, c]) => b < a && a < c;\n\n  _exports.strictlyBetweenFn = strictlyBetweenFn;\n\n  const dateEqFn = (a, [b]) => {\n    const dateB = new Date(b);\n\n    if (Ember.typeOf(a) !== 'date' || Ember.typeOf(b) !== 'date') {\n      return false;\n    }\n\n    return a && b && a.getTime() === dateB.getTime();\n  };\n\n  _exports.dateEqFn = dateEqFn;\n\n  const dateStrEqFn = (a, [b], format) => {\n    if (Ember.isBlank(a) || Ember.isBlank(b)) {\n      return false;\n    }\n\n    if (Ember.typeOf(a) !== 'date') {\n      return false;\n    }\n\n    const aStr = (0, _moment.default)(a).format(format);\n    return includesFn(aStr, [b]);\n  };\n\n  _exports.dateStrEqFn = dateStrEqFn;\n\n  const dateNeFn = (a, [b]) => a && b && a.getTime() !== b.getTime();\n\n  _exports.dateNeFn = dateNeFn;\n\n  const dateLtFn = (a, [b]) => a && b && a.getTime() < b.getTime();\n\n  _exports.dateLtFn = dateLtFn;\n\n  const dateLteFn = (a, [b]) => a && b && a.getTime() <= b.getTime();\n\n  _exports.dateLteFn = dateLteFn;\n\n  const dateGtFn = (a, [b]) => a && b && a.getTime() > b.getTime();\n\n  _exports.dateGtFn = dateGtFn;\n\n  const dateGteFn = (a, [b]) => a && b && a.getTime() >= b.getTime();\n\n  _exports.dateGteFn = dateGteFn;\n\n  const dateBetweenFn = (t, [t0, t1]) => {\n    return dateGteFn(t, [t0]) && dateLteFn(t, [t1]);\n  };\n\n  _exports.dateBetweenFn = dateBetweenFn;\n\n  const dateStrictlyBetweenFn = (t, [t0, t1]) => {\n    return dateGtFn(t, [t0]) && dateLtFn(t, [t1]);\n  }; // case-insensitive string functions\n\n\n  _exports.dateStrictlyBetweenFn = dateStrictlyBetweenFn;\n\n  const stringEqIFn = (a, [b]) => {\n    if (Ember.typeOf(a) !== 'string' || Ember.typeOf(b) !== 'string') {\n      return false;\n    }\n\n    return eqFn(a.toLowerCase(), [b.toLowerCase()]);\n  };\n\n  _exports.stringEqIFn = stringEqIFn;\n\n  const stringNeIFn = (a, [b]) => {\n    if (Ember.typeOf(a) !== 'string' || Ember.typeOf(b) !== 'string') {\n      return false;\n    }\n\n    return neFn(a.toLowerCase(), [b.toLowerCase()]);\n  };\n\n  _exports.stringNeIFn = stringNeIFn;\n\n  const stringIncludesIFn = (a, [b]) => {\n    if (Ember.typeOf(a) !== 'string' || Ember.typeOf(b) !== 'string') {\n      return false;\n    }\n\n    return includesFn(a.toLowerCase(), [b.toLowerCase()]);\n  };\n\n  _exports.stringIncludesIFn = stringIncludesIFn;\n\n  const addressIncludesIFn = (a, [b]) => {\n    if (typeof a !== 'object' || typeof b !== 'string') {\n      return false;\n    }\n\n    return a.values.some(obj => includesFn(obj.value.toLowerCase(), [b.toLowerCase()]));\n  };\n\n  _exports.addressIncludesIFn = addressIncludesIFn;\n\n  const dateIncludesIFn = (a, [b]) => {\n    if (typeof a !== 'object' || typeof b !== 'string') {\n      return false;\n    }\n\n    const header = a.header || '';\n    return a.values.some(obj => includesFn(obj.value.toLowerCase(), [b.toLowerCase()])) || header.includes(b.toLowerCase());\n  };\n\n  _exports.dateIncludesIFn = dateIncludesIFn;\n});","define(\"adept-iq/utils/filters\", [\"exports\", \"adept-iq/config/filter-types\"], function (_exports, _filterTypes) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.testFilterValues = testFilterValues;\n  _exports.buildFilterFunction = buildFilterFunction;\n  _exports.buildCompoundFilterNode = _exports.buildValueFilterNode = void 0;\n\n  const alwaysTrue = () => true;\n\n  function testFilterValues(filterType, values) {\n    if (!filterType || filterType === _filterTypes.nullFilter) return false;\n    const {\n      arity,\n      isValue,\n      parseValue,\n      validateValues\n    } = filterType;\n\n    if (!values) {\n      if (arity === '+') return false;\n      if (Ember.typeOf(arity) === 'number' && arity > 0) return false;\n      if (validateValues) return validateValues([]);\n      return true;\n    }\n\n    if (arity === '+' && values.length === 0) return false;\n    if (Ember.typeOf(arity) === 'number' && values.length < arity) return false;\n    let args = values.slice(0, arity);\n    if (isValue && !args.every(isValue)) return false;\n\n    if (parseValue) {\n      args = args.map(parseValue);\n    }\n\n    if (validateValues) return validateValues(args);\n    return true;\n  }\n\n  const buildValueFilterNode = (filterType, path, values, dateFormat) => {\n    if (!filterType || filterType === _filterTypes.nullFilter) return null;\n    /*eslint-disable */\n\n    if (Ember.isNone(values)) {\n      values = [];\n    } else if (Ember.typeOf(values) !== 'array') {\n      values = [values];\n    }\n    /*eslint-enable */\n\n\n    return {\n      type: filterType.id,\n      rql: {\n        path,\n        values\n      },\n      local: {\n        dateFormat,\n        path,\n        values\n      }\n    };\n  };\n\n  _exports.buildValueFilterNode = buildValueFilterNode;\n\n  const buildCompoundFilterNode = (type, args) => {\n    if (Ember.isEmpty(args)) return null;\n    /*eslint-disable */\n\n    args = args.compact();\n    /*eslint-enable */\n\n    if (args.length === 0) return null;\n    if (args.length === 1) return args[0];\n    return {\n      type,\n      args\n    };\n  };\n\n  _exports.buildCompoundFilterNode = buildCompoundFilterNode;\n\n  const buildValueFilterFunction = node => {\n    if (!node) return alwaysTrue;\n    const {\n      type,\n      local: {\n        dateFormat,\n        path,\n        values\n      }\n    } = node;\n    const filterType = _filterTypes.filterTypesHash[type];\n    const fn = filterType.fn;\n\n    const filterFunction = x => {\n      const targetValue = x.get(path);\n      return fn(targetValue, values, dateFormat);\n    };\n\n    return filterFunction;\n  };\n\n  const buildCompoundFilterFunction = ({\n    type,\n    args\n  }) => {\n    if (!args) return alwaysTrue;\n    /*eslint-disable */\n\n    const functions = args.map(buildFilterFunction).compact();\n    /*eslint-enable */\n\n    if (functions.length === 0) return alwaysTrue;\n    if (functions.length === 1) return functions[0];\n\n    switch (type) {\n      case 'and':\n        return x => functions.every(f => f(x));\n\n      case 'or':\n        return x => functions.any(f => f(x));\n\n      default:\n        /*eslint-disable */\n        throw 'invalid compound filter type';\n\n      /*eslint-enable */\n    }\n  };\n\n  function buildFilterFunction(node) {\n    if (!node) return alwaysTrue;\n\n    switch (node.type) {\n      case 'and':\n      case 'or':\n        return buildCompoundFilterFunction(node);\n\n      default:\n        return buildValueFilterFunction(node);\n    }\n  }\n});","define(\"adept-iq/utils/find-row-record\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.findRowElement = findRowElement;\n  _exports.findRowRecordByElement = findRowRecordByElement;\n\n  function findRowElement(targetElement) {\n    while (targetElement.tagName.toLowerCase() !== 'tr' && targetElement.tagName.toLowerCase() !== 'body') {\n      /*eslint-disable */\n      targetElement = targetElement.parentElement;\n      /*eslint-enable */\n    }\n\n    return targetElement.tagName.toLowerCase() === 'tr' ? targetElement : null;\n  }\n\n  function findRowRecordByElement(targetElement, tableRows) {\n    const rowElement = findRowElement(targetElement);\n\n    if (Ember.isBlank(rowElement)) {\n      return;\n    }\n\n    const node = rowElement.attributes.getNamedItem('data-row-id');\n\n    if (Ember.isBlank(node)) {\n      return;\n    }\n\n    return tableRows.findBy('rowId', node.value);\n  }\n});","define(\"adept-iq/utils/focus_column_widget_row\", [\"exports\", \"lodash\"], function (_exports, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = focusFirstItem;\n\n  function focusFirstItem(me) {\n    let className = me.get('classNames')[me.get('classNames').length - 1];\n    let isSelected = Ember.$(':scope .' + className + ' .is-selected').first();\n\n    if (Ember.isBlank(isSelected[0])) {\n      const el = Ember.$(':scope .' + className + ' .lt-row .table-base-cell').first(); // auto-focus on first input control\n\n      if (el) {\n        const currentRow = Ember.$(':scope .' + className + ' .lt-row').first();\n        const nextRow = currentRow[0];\n\n        if (nextRow && nextRow.tagName !== 'OCCLUDED-CONTENT') {\n          // move table selection down one row\n          const tableRows = me.get('table.rows');\n          tableRows.setEach('selected', false);\n          const recordId = nextRow.getAttribute('data-record-id');\n          const nextTableRow = tableRows.findBy('content.id', recordId);\n          nextTableRow.set('selected', true); // move browser focus to same column in next row\n\n          const nextLtCell = nextRow.children[0];\n          const focusElement = nextLtCell.querySelector('.can-focus') || nextLtCell.firstElementChild;\n\n          if (focusElement) {\n            focusElement.focus();\n          }\n        }\n      }\n    } else {\n      const nextRow = isSelected[0];\n\n      if (nextRow && nextRow.tagName !== 'OCCLUDED-CONTENT') {\n        // move table selection down one row\n        const tableRows = me.get('table.rows');\n        tableRows.setEach('selected', false);\n        const recordId = nextRow.getAttribute('data-record-id');\n        const nextTableRow = tableRows.findBy('content.id', recordId);\n        nextTableRow.set('selected', true); // move browser focus to same column in next row\n\n        const nextLtCell = nextRow.children[0];\n        const focusElement = nextLtCell.querySelector('.can-focus') || nextLtCell.firstElementChild;\n\n        if (focusElement) {\n          focusElement.focus();\n        }\n      }\n    }\n  }\n});","define(\"adept-iq/utils/format-text-extension\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.formatTextExtension = formatTextExtension;\n\n  function formatTextExtension(className, value) {\n    return {\n      className: className,\n      value: value\n    };\n  }\n});","define(\"adept-iq/utils/graph\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.breadthFirstSearch = breadthFirstSearch;\n\n  function breadthFirstSearch(params) {\n    const {\n      queue = [],\n      visited = [],\n      getNeighbours,\n      visitNode\n    } = params;\n\n    while (queue.length > 0) {\n      const v = queue.shift();\n      if (visitNode) visitNode(v);\n      visited.push(v);\n      getNeighbours(v).reject(w => visited.includes(w)).forEach(w => queue.push(w));\n    }\n  }\n});","define(\"adept-iq/utils/guid\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.guid = void 0;\n\n  const guid = () => {\n    const S4 = () => {\n      return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n    };\n    /*eslint-disable */\n\n\n    return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\n    /*eslint-enable */\n  };\n\n  _exports.guid = guid;\n});","define(\"adept-iq/utils/isRouteAssignable\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.isRouteAssignable = isRouteAssignable;\n\n  function isRouteAssignable(route\n  /*, time*/\n  ) {\n    if (Ember.isNone(Ember.get(route, 'assignedVehicle'))) {\n      return false;\n    }\n\n    if (Ember.isNone(Ember.get(route, 'assignedDriver'))) {\n      return false;\n    }\n\n    if (Ember.isNone(route.get('clusters')) || route.get('clusters').length === 0) {\n      return false;\n    } //TODO need to see how we can get promise date\n\n    /*if (!isEmpty(vehicleRoutes)) {\n        const currentVR = vehicleRoutes.find((vr) => {\n            const { plannedStartTime, plannedEndTime } = getProperties(\n                vr,\n                'plannedStartTime',\n                'plannedEndTime'\n            );\n             return moment(plannedEndTime).isAfter(time) && moment(plannedStartTime).isBefore(time);\n        });\n         if (currentVR) {\n            const driverShifts = get(currentVR, 'driverShifts');\n             if (!isEmpty(driverShifts)) {\n                const currentDS = driverShifts.find((ds) => {\n                    const { plannedStartTime, plannedEndTime } = getProperties(\n                        ds,\n                        'plannedStartTime',\n                        'plannedEndTime'\n                    );\n                     return (\n                        moment(plannedEndTime).isAfter(time) &&\n                        moment(plannedStartTime).isBefore(time)\n                    );\n                });\n                 if (!isEmpty(currentDS)) {\n                    return false;\n                }\n            }\n            return true;\n        }\n    }*/\n\n\n    return true;\n  }\n});","define(\"adept-iq/utils/local-traversal\", [\"exports\", \"adept-iq/utils/graph\", \"ember-data\", \"adept-iq/config/active-context-graph\"], function (_exports, _graph, _emberData, _activeContextGraph) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.computeImplicitContext = computeImplicitContext;\n  _exports.computeActiveContext = computeActiveContext;\n\n  const unwrapPossibleProxy = possibleProxy => {\n    if (!possibleProxy) return null;\n    if (possibleProxy.hasOwnProperty('content')) return possibleProxy.content;\n    return possibleProxy;\n  }; // helper for converting flattened data set to a structured record set\n\n\n  const makeRecordSet = data => {\n    return data.reduce((obj, {\n      modelName,\n      record\n    }) => {\n      let arr = obj[modelName];\n\n      if (!arr) {\n        arr = [];\n        obj[modelName] = arr;\n      }\n\n      arr.push(record);\n      return obj;\n    }, {});\n  };\n\n  const getRelatedRecords = (recordSet, modelName, link) => {\n    return recordSet[modelName].reduce((arr, record) => {\n      let relation = null;\n\n      if (record instanceof _emberData.default.Model) {\n        relation = unwrapPossibleProxy(record.get(link.path));\n      }\n\n      if (!relation) return arr;\n\n      switch (link.type) {\n        case 'belongsTo':\n          {\n            arr.push(relation);\n            break;\n          }\n\n        case 'hasMany':\n          /*eslint-disable */\n          relation.forEach(record => {\n            record = unwrapPossibleProxy(record);\n\n            if (record) {\n              arr.push(record);\n            }\n          });\n          /*eslint-enable */\n\n          break;\n\n        default:\n          /*eslint-disable */\n          throw `unknown relationship type '${link.type}'`;\n\n        /*eslint-enable */\n      }\n\n      return arr;\n    }, []);\n  };\n  /**\n   * Safely adds records of a single type to a record set in place.\n   * @param {RecordSet} recordSet\n   * @param {string} modelName\n   * @param {Array} records\n   * @returns {Boolean} whether or not records were added\n   */\n\n\n  const augmentRecordSet = (recordSet, modelName, records) => {\n    let collection = recordSet[modelName];\n\n    if (!collection) {\n      collection = [];\n      recordSet[modelName] = collection;\n    }\n\n    const lengthBefore = collection.length;\n    records.forEach(record => {\n      collection.addObject(record);\n    });\n    return collection.length - lengthBefore;\n  };\n  /**\n   * Traverses the domain relationship graph; this is not a true BFS!\n   * @param {RecordSet} recordSet - the set of records to augment\n   * @param {ModelNode[]} q - queue of model nodes to visit\n   * @param {ModelNode[]} blackList - model nodes to never visit\n   */\n\n\n  const expandGraph = (recordSet = {}, q = [], blackList = []) => {\n    // don't mutate input queue\n\n    /*eslint-disable */\n    q = q.slice();\n    /*eslint-enable */\n    // for each node, keep track of which nodes we came from\n\n    const predecessors = {};\n\n    while (q.length > 0) {\n      const sourceNode = q.shift();\n      /*eslint-disable */\n\n      if (blackList.includes(sourceNode)) continue;\n      /*eslint-enable */\n\n      Ember.makeArray(sourceNode.links).forEach(link => {\n        const targetNode = _activeContextGraph.activeContextGraph[link.nodeId]; // don't backtrack across hasManys\n\n        if (link.type === 'hasMany') {\n          const ids = predecessors[sourceNode.id] || [];\n          if (ids.includes(targetNode.id)) return;\n        }\n\n        const records = getRelatedRecords(recordSet, sourceNode.modelName, link);\n        const count = augmentRecordSet(recordSet, targetNode.modelName, records); // only [re-]visit target if we actually added something new\n\n        if (count > 0) {\n          q.addObject(targetNode);\n          predecessors[targetNode.id] = predecessors[targetNode.id] || [];\n          predecessors[targetNode.id].push(sourceNode.id);\n        }\n      });\n    }\n\n    return recordSet;\n  };\n  /**\n   * Computes the union of two or more record sets.\n   * @param {RecordSet[]} recordSets - record sets to combine\n   */\n\n\n  const unionRecordSets = function mergeRecordSets(...recordSets) {\n    return recordSets.reduce((obj, recordSet) => {\n      Object.entries(recordSet).forEach(([modelName, records]) => {\n        let collection = obj[modelName];\n\n        if (!collection) {\n          collection = [];\n          obj[modelName] = collection;\n        }\n\n        if (Ember.isEmpty(records)) return;\n        records.forEach(record => {\n          if (collection.includes(record)) return;\n          collection.push(record);\n        });\n      });\n      return obj;\n    }, {});\n  };\n  /**\n   * Computes the intersection of two record sets.\n   * @param {RecordSet[]} recordSets - record sets to intersect\n   */\n\n\n  const intersectRecordSets = function intersectRecordSets(...recordSets) {\n    return recordSets.reduce((obj, recordSet, i) => {\n      if (i === 0) {\n        Object.entries(recordSet).forEach(([modelName, records]) => {\n          obj[modelName] = records.slice();\n        });\n        return obj;\n      }\n\n      Object.entries(recordSet).forEach(([modelName, records]) => {\n        let collection = obj[modelName];\n\n        if (!collection) {\n          collection = [];\n          obj[modelName] = collection;\n        } // find existing records that are not in the new set\n\n\n        const missingRecords = collection.reduce((arr, record) => {\n          if (records.includes(record)) return arr;\n          arr.push(record);\n          return arr;\n        }, []); // remove those from the existing set\n\n        missingRecords.forEach(record => {\n          const index = collection.indexOf(record);\n          collection.splice(index, 1);\n        });\n      });\n      return obj;\n    }, {});\n  };\n  /**\n   * Computes the Implicit Context graph induced by a given selection of entities.\n   * @param {RecordSet} allData - the complete data set\n   * @param {Object[]} selectedData - the entities that have been \"checked\"\n   */\n\n\n  function computeImplicitContext(allData, selectedData) {\n    // implicit context is empty until something explicitly selected\n    if (Ember.isEmpty(selectedData)) return {};\n    const selectedRecordSet = makeRecordSet(selectedData); // compute induced subgraphs of each entity type group\n\n    const recordSets = Object.keys(selectedRecordSet).map(modelName => {\n      const modelNode = _activeContextGraph.activeContextNodes.findBy('modelName', modelName);\n\n      const recordSet = {}; // for *implicit* data, we seed with only the selected records; this results\n      // in a smaller data set when only one type is selected\n\n      recordSet[modelName] = selectedRecordSet[modelName];\n      const queue = [];\n      Ember.makeArray(modelNode.links).forEach(link => {\n        // get related records of _selected_ items only\n        const records = getRelatedRecords(selectedRecordSet, modelName, link);\n        const linkModelName = _activeContextGraph.activeContextGraph[link.nodeId].modelName;\n        recordSet[linkModelName] = records;\n        const node = _activeContextGraph.activeContextGraph[link.nodeId];\n        queue.push(node);\n      });\n      const visited = [modelNode]; // push related records as far as they will go\n\n      const expandedRecordSet = expandGraph(recordSet, queue, visited); // zero out any unvisited nodes *in this graph component*\n\n      (0, _graph.breadthFirstSearch)({\n        queue,\n        visited,\n        getNeighbours: ({\n          links\n        }) => {\n          return Ember.makeArray(links).map(({\n            nodeId\n          }) => _activeContextGraph.activeContextGraph[nodeId]);\n        },\n\n        /*eslint-disable */\n        visitNode: ({\n          modelName\n        }) => {\n          expandedRecordSet[modelName] = expandedRecordSet[modelName] || [];\n        }\n        /*eslint-enable */\n\n      });\n      return expandedRecordSet;\n    });\n    const intersection = intersectRecordSets(allData, ...recordSets); // restore any unconstrained model types; this is necessary when an isolated\n    // graph component has no selected items\n\n    _activeContextGraph.activeContextNodes.forEach(({\n      modelName\n    }) => {\n      if (intersection[modelName]) return;\n      intersection[modelName] = allData[modelName];\n    }); // add the selected records back in where missing\n\n\n    const union = unionRecordSets(intersection, selectedRecordSet);\n    return union;\n  }\n  /**\n   * Computes the Active Context graph induced by a given selection of entities.\n   * @param {RecordSet} allData - the complete data set\n   * @param {Object[]} selectedData - the entities that have been \"checked\"\n   */\n\n\n  function computeActiveContext(allData, selectedData) {\n    const selectedRecordSet = makeRecordSet(selectedData); // compute induced subgraphs of each entity type group\n\n    const recordSets = Object.keys(selectedRecordSet).map(modelName => {\n      const modelNode = _activeContextGraph.activeContextNodes.findBy('modelName', modelName);\n\n      const recordSet = {}; // for *full* active context, we seed with all data of this type\n\n      recordSet[modelName] = allData[modelName];\n      const queue = [];\n      Ember.makeArray(modelNode.links).forEach(link => {\n        // get related records of _selected_ items only\n        const records = getRelatedRecords(selectedRecordSet, modelName, link);\n        const linkModelName = _activeContextGraph.activeContextGraph[link.nodeId].modelName;\n        recordSet[linkModelName] = records;\n        const node = _activeContextGraph.activeContextGraph[link.nodeId];\n        queue.push(node);\n      });\n      const visited = [modelNode]; // push related records as far as they will go\n\n      const expandedRecordSet = expandGraph(recordSet, queue, visited); // zero out any unvisited nodes *in this graph component*\n\n      (0, _graph.breadthFirstSearch)({\n        queue,\n        visited,\n        getNeighbours: ({\n          links\n        }) => {\n          return Ember.makeArray(links).map(({\n            nodeId\n          }) => _activeContextGraph.activeContextGraph[nodeId]);\n        },\n\n        /*eslint-disable */\n        visitNode: ({\n          modelName\n        }) => {\n          expandedRecordSet[modelName] = expandedRecordSet[modelName] || [];\n        }\n        /*eslint-enable */\n\n      });\n      return expandedRecordSet;\n    });\n    const intersection = intersectRecordSets(allData, ...recordSets); // restore any unconstrained model types; this is necessary when an isolated\n    // graph component has no selected items\n\n    _activeContextGraph.activeContextNodes.forEach(({\n      modelName\n    }) => {\n      if (intersection[modelName]) return;\n      intersection[modelName] = allData[modelName];\n    }); // add the selected records back in where missing\n\n\n    const union = unionRecordSets(intersection, selectedRecordSet);\n    return union;\n  }\n});","define(\"adept-iq/utils/name-parser\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.parse = parse;\n\n  /**\n   * File created by bbarnum on 2/26/16.\n   *\n   * based on PHP Name Parser by Josh Fraser (joshfraser.com)\n   * http://www.onlineaspect.com/2009/08/17/splitting-names/\n   * ported to JavaScript by Mark Pemburn (pemburnia.com)\n   * https://github.com/joshfraser/JavaScript-Name-Parser/blob/master/parse-names.js\n   * released under Apache 2.0 license\n   *\n   */\n\n  /* eslint-disable no-param-reassign */\n  function removeIgnoredChars(word) {\n    // ignore periods\n    return word ? word.replace('.', '') : '';\n  }\n\n  function isSalutation(word) {\n    word = removeIgnoredChars(word).toLowerCase(); // returns normalized values\n\n    if (word === 'mr' || word === 'master' || word === 'mister') {\n      return 'Mr.';\n    } else if (word === 'mrs') {\n      return 'Mrs.';\n    } else if (word === 'miss' || word === 'ms') {\n      return 'Ms.';\n    } else if (word === 'dr') {\n      return 'Dr.';\n    } else if (word === 'rev') {\n      return 'Rev.';\n    } else if (word === 'fr') {\n      return 'Fr.';\n    }\n\n    return false;\n  } //  detect and format common suffixes\n\n\n  function isSuffix(word) {\n    word = removeIgnoredChars(word).toLowerCase(); // these are some common suffixes - what am I missing?\n\n    const suffixArray = ['I', 'II', 'III', 'IV', 'V', 'Senior', 'Junior', 'Jr', 'Sr', 'PhD', 'APR', 'RPh', 'PE', 'MD', 'MA', 'DMD', 'CME', 'BVM', 'CFRE', 'CLU', 'CPA', 'CSC', 'CSJ', 'DC', 'DD', 'DDS', 'DO', 'DVM', 'EdD', 'Esq', 'JD', 'LLD', 'OD', 'OSB', 'PC', 'Ret', 'RGS', 'RN', 'RNC', 'SHCJ', 'SJ', 'SNJM', 'SSMO', 'USA', 'USAF', 'USAFR', 'USAR', 'USCG', 'USMC', 'USMCR', 'USN', 'USNR'];\n    const suffixIndex = suffixArray.map(function (suffix) {\n      return suffix.toLowerCase();\n    }).indexOf(word);\n\n    if (suffixIndex >= 0) {\n      return suffixArray[suffixIndex];\n    }\n\n    return false;\n  } // detect compound last names like \"Von Fange\"\n\n\n  function isCompoundLastName(word) {\n    word = word.toLowerCase(); // these are some common prefixes that identify a compound last names - what am I missing?\n\n    const words = ['vere', 'von', 'van', 'de', 'del', 'della', 'di', 'da', 'pietro', 'vanden', 'du', 'st.', 'st', 'la', 'lo', 'ter'];\n    return words.indexOf(word) >= 0;\n  } // single letter, possibly followed by a period\n\n\n  function isInitial(word) {\n    word = removeIgnoredChars(word);\n    return word.length === 1;\n  } // detect mixed case words like \"McDonald\"\n  // returns false if the string is all one case\n\n\n  function isCamelCase(word) {\n    var ucReg = /[A-Z]+/;\n    var lcReg = /[a-z]+/;\n    return ucReg.exec(word) && lcReg.exec(word);\n  } // helper for fixCase\n  // uppercase words split by the separator (ex. dashes or periods)\n\n\n  function safeUpperCaseFirst(separator, word) {\n    return word.split(separator).map(function (thisWord) {\n      if (isCamelCase(thisWord)) {\n        return thisWord;\n      }\n\n      return thisWord.substr(0, 1).toUpperCase() + thisWord.substr(1).toLowerCase();\n    }, this).join(separator);\n  } // ucfirst words split by dashes or periods\n  // ucfirst all upper/lower strings, but leave camelcase words alone\n\n\n  function fixCase(word) {\n    // uppercase words split by dashes, like \"Kimura-Fay\"\n    word = safeUpperCaseFirst('-', word); // uppercase words split by periods, like \"J.P.\"\n\n    word = safeUpperCaseFirst('.', word);\n    return word;\n  }\n  /* eslint-disable complexity */\n\n\n  function parse(fullLastName) {\n    if (fullLastName === null) {\n      return {\n        salutation: null,\n        firstName: null,\n        middleName: null,\n        lastName: null,\n        suffix: null\n      };\n    }\n\n    fullLastName = fullLastName.trim();\n    let lastName = '';\n    let firstName = '';\n    let middleName = '';\n    let j = 0;\n    let i = 0; // split into words\n    // completely ignore any words in parentheses\n\n    const nameParts = fullLastName.split(' ').filter(function (namePart) {\n      return namePart.indexOf('(') === -1;\n    });\n    const numWords = nameParts.length; // is the first word a title? (Mr. Mrs, etc)\n\n    const salutation = isSalutation(nameParts[0]);\n    const suffix = isSuffix(nameParts[numWords - 1]); // set the range for the middle part of the name (trim prefixes & suffixes)\n\n    const start = salutation ? 1 : 0;\n    const end = suffix ? numWords - 1 : numWords;\n    let word = nameParts[start]; // if we start off with an initial, we'll call it the first name\n\n    if (isInitial(word)) {\n      // if so, do a look-ahead to see if they go by their middle name\n      // for ex: \"R. Jason Smith\" => \"Jason Smith\" & \"R.\" is stored as an initial\n      // but \"R. J. Smith\" => \"R. Smith\" and \"J.\" is stored as an initial\n      if (isInitial(nameParts[start + 1])) {\n        firstName += ' ' + word.toUpperCase();\n      } else {\n        middleName += ' ' + word.toUpperCase();\n      }\n    } else {\n      firstName += ' ' + fixCase(word);\n    } // concat the first name\n\n\n    for (i = start + 1; i < end - 1; i++) {\n      word = nameParts[i]; // move on to parsing the last name if we find an indicator of a compound\n      // last name (Von, Van, etc)\n      // we do not check earlier to allow for rare cases where an indicator is actually\n      // the first name (like \"Von Fabella\")\n\n      if (isCompoundLastName(word)) {\n        break;\n      }\n\n      if (isInitial(word)) {\n        middleName += ' ' + word.toUpperCase();\n      } else {\n        firstName += ' ' + fixCase(word);\n      }\n    } // check that we have more than 1 word in our string\n\n\n    if (end - start > 1) {\n      // concat the last name\n      for (j = i; j < end; j++) {\n        lastName += ' ' + fixCase(nameParts[j]);\n      }\n    } // return the various parts in an array\n\n\n    return {\n      salutation: salutation || '',\n      firstName: firstName.trim(),\n      middleName: middleName.trim(),\n      lastName: lastName.trim(),\n      suffix: suffix || ''\n    };\n  }\n});","define(\"adept-iq/utils/name-split\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = splitName;\n\n  function splitName(fullName) {\n    const result = {\n      firstName: null,\n      middleName: null,\n      lastName: null\n    };\n\n    if (typeof fullName !== 'undefined' && fullName !== null) {\n      const middleName = [];\n      fullName.split(' ').forEach((namePart, index, collection) => {\n        if (index === 0) {\n          if (collection.length === 1) {\n            // only have last name\n            result.lastName = namePart;\n          } else {\n            // first namePart is firstName\n            result.firstName = namePart;\n          }\n        } else if (index + 1 < collection.length) {\n          // not the last namePart, add to middleName\n          middleName.push(namePart);\n        } else {\n          // the last part of the name, set as lastName\n          result.lastName = namePart;\n        }\n      });\n\n      if (middleName.length > 0) {\n        result.middleName = middleName.join(' ');\n      }\n    }\n\n    return result;\n  }\n});","define(\"adept-iq/utils/populate-account\", [\"exports\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/populate-address\", \"adept-iq/utils/populate-fixed-price\", \"adept-iq/utils/check-address-overwrite\", \"adept-iq/utils/check-value\", \"lodash\"], function (_exports, _checkAddressFlags, _populateAddress, _populateFixedPrice, _checkAddressOverwrite, _checkValue, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = populateAccount;\n\n  function populateAccountData(tripData, accountData, geocode, store, editmodalcontext, accountSearchValue, overWrite, phoneNumber) {\n    // console.log(('accountSearchValue ',accountSearchValue);\n    console.log('accountData ', accountData);\n    let favoriteTrips = accountData.attributes.favoriteTrips;\n    Ember.set(tripData, 'acctCardNr', accountSearchValue);\n    Ember.set(tripData, 'account', accountData); // Ember.set(tripData,'passengers.0.firstName',accountData.attributes.contactFirstName);\n\n    if (!Ember.isEmpty(favoriteTrips)) {\n      Ember.set(tripData, 'editmodelcontext.accountTrips', favoriteTrips.filterBy('priceType', 'normal'));\n      Ember.set(tripData, 'editmodelcontext.accountFixedPriceTrips', favoriteTrips.filterBy('priceType', 'fixedPrice'));\n      Ember.set(editmodalcontext, 'showWidgetModal', false);\n    } else {\n      Ember.set(tripData, 'editmodelcontext.accountTrips', []);\n      Ember.set(tripData, 'editmodelcontext.accountFixedPriceTrips', []);\n      Ember.set(editmodalcontext, 'showWidgetModal', false);\n    }\n\n    if (overWrite) {\n      let accountDriverNotes = accountData.attributes.notes.driver;\n      let accountOperatorNotes = accountData.attributes.notes.dispatcher;\n      Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.account', accountDriverNotes);\n      Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.account', accountOperatorNotes);\n\n      if (!Ember.isBlank(phoneNumber)) {\n        Ember.set(tripData, 'passengers.0.phone1.number', phoneNumber);\n      } else {\n        if (!Ember.isEmpty(accountData.attributes.phone1) && !Ember.isBlank(accountData.attributes.phone1.number)) {\n          if (!Ember.isBlank(tripData.get('passengers.0.phone1.number')) && tripData.get('passengers.0.phone1.number') !== accountData.attributes.phone1.number) {\n            let overwritePhonePop = true;\n            overwritePhonePop = confirm('Do you want to Phone Number ');\n\n            if (overwritePhonePop) {\n              Ember.set(tripData, 'passengers.0.phone1.number', accountData.attributes.phone1.number);\n            }\n          } else {\n            Ember.set(tripData, 'passengers.0.phone1.number', accountData.attributes.phone1.number);\n          }\n        }\n      }\n\n      let options = store.peekAll('tm-common-operational-attribute');\n      let requiredAttributes = accountData.attributes.requiredAttributes;\n      let accountAttributes = options.filter(function (o1) {\n        // if match found return false\n        return _lodash.default.findIndex(requiredAttributes, {\n          'type': o1.type\n        }) === -1 ? false : true;\n      });\n      Ember.set(tripData, 'editmodelcontext.attributes.account', accountAttributes);\n      let defaultFavoriteTrip = null;\n\n      if (!Ember.isBlank(accountData.attributes.defaultFavoriteTripId) && accountData.attributes.defaultFavoriteTripId !== 0) {\n        let defaultFavoriteTripFilter = favoriteTrips.filterBy('tripId', \"\" + accountData.attributes.defaultFavoriteTripId);\n        defaultFavoriteTrip = defaultFavoriteTripFilter[0];\n      }\n\n      if (!Ember.isBlank(defaultFavoriteTrip) && defaultFavoriteTrip.priceType === 'normal') {\n        let addressData = defaultFavoriteTrip.pickup.address;\n        let overwriteAddress = true;\n        let overwriteAddressPop = (0, _checkAddressOverwrite.default)(tripData.stopPoints[0].address, addressData);\n\n        if (overwriteAddressPop) {\n          overwriteAddress = confirm('Do you want to overwrite Address');\n        }\n\n        if (overwriteAddress) {\n          (0, _populateAddress.default)(tripData.stopPoints[0].address, addressData, geocode, store, 'pickup', tripData);\n\n          try {\n            if (!Ember.isBlank(defaultFavoriteTrip.notes)) {\n              Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', (0, _checkValue.default)(defaultFavoriteTrip.notes.driver));\n              Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.address', (0, _checkValue.default)(defaultFavoriteTrip.notes.dispatcher));\n            } else {\n              Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', '');\n              Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.address', '');\n            }\n          } catch (e) {}\n\n          (0, _checkAddressFlags.default)(tripData);\n        }\n      } else {\n        if (!Ember.isBlank(defaultFavoriteTrip)) {\n          (0, _populateFixedPrice.default)(tripData, defaultFavoriteTrip, geocode, store);\n        }\n      }\n    }\n  }\n\n  function populateAccount(tripRecord, accountData, geocode, store, editmodalcontext, searchservice, accountSearchPath, accountSearchValue, overWrite, phoneNumber) {\n    if (!Ember.isEmpty(accountData)) {\n      populateAccountData(tripRecord, accountData, geocode, store, editmodalcontext, accountSearchValue, overWrite, phoneNumber);\n      return accountData;\n    } else {\n      searchservice.getRiderProfile(accountSearchPath, accountSearchValue).then(result => {\n        if (!Ember.isEmpty(result)) {\n          let accountData = result.firstObject;\n          populateAccountData(tripRecord, accountData, geocode, store, editmodalcontext, accountSearchValue, overWrite, phoneNumber);\n          return accountData;\n        }\n      });\n    }\n\n    return;\n  }\n});","define(\"adept-iq/utils/populate-address\", [\"exports\", \"adept-iq/utils/check-value\", \"lodash\"], function (_exports, _checkValue, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = populateAddress;\n\n  function populateAddressData(address, addressData, geocode, store, addressType, tripData, populateZoneData) {\n    console.log('address ', address);\n    console.log('addressData ', addressData);\n\n    try {\n      address.unitNr = (0, _checkValue.default)(addressData.unitNr);\n    } catch (e) {\n      Ember.set(address, 'unitNr', (0, _checkValue.default)(addressData.unitNr));\n    }\n\n    address.streetNr = (0, _checkValue.default)(addressData.streetNr);\n    address.streetName = (0, _checkValue.default)(addressData.streetName);\n    address.region = (0, _checkValue.default)(addressData.region);\n    address.state = (0, _checkValue.default)(addressData.region);\n    address.postCode = (0, _checkValue.default)(addressData.postalCode);\n\n    try {\n      address.description = (0, _checkValue.default)(addressData.description);\n    } catch (e) {\n      Ember.set(address, 'description', addressData.description);\n    } //address.country = ttAddress.address.country;\n\n\n    try {\n      Ember.set(address.tomtomFormattedAddress.address, 'freeformAddress', `${address.streetNr} ${address.streetName} ${address.region}`);\n    } catch (e) {\n      address.tomtomFormattedAddress.address.freeformAddress = `${address.streetNr} ${address.streetName} ${address.region}`;\n    }\n    /*try {\n      Ember.set(address, 'formattedAddress', `${address.streetNr} ${address.streetName} ${address.region}`);\n     } catch(e)   {\n     }*/\n\n\n    if (!Ember.isBlank(addressData) && !Ember.isBlank(addressData.coord) && addressData.coord.lat !== 0 && addressData.coord.lng !== 0 && addressData.coord.lat !== 181 && addressData.coord.lng !== 181 && addressData.coord.lat !== -181 && addressData.coord.lng !== -181 && !Ember.isBlank(addressData.coord.lat) && !Ember.isBlank(addressData.coord.lng)) {\n      address.coord.lat = addressData.coord.lat;\n      address.coord.lng = addressData.coord.lng;\n    } else {\n      address.coord.lat = 49.127196;\n      address.coord.lng = -123.093865;\n    } //address.geoNode = addressData.get('geoNode');\n\n\n    let addressResult = [];\n    addressResult.push(address);\n    geocode.set('markerType', addressType);\n\n    if (!Ember.isBlank(address) && !Ember.isBlank(address.coord) && address.coord.lat !== 0 && address.coord.lng !== 0 && address.coord.lat !== 181 && address.coord.lng !== 181 && address.coord.lat !== -181 && address.coord.lng !== -181 && !Ember.isBlank(address.coord.lat) && !Ember.isBlank(address.coord.lng)) {\n      geocode.addressPopulateOnMap(address, addressType);\n      /*try {\n        if(!isBlank(tripData)) {\n          geocode.addressLookupAttributes(address.streetNr , address.streetName, address.region, addressData, tripData);\n        }\n      } catch (e) {\n        console.log(e);\n      }*/\n\n      try {\n        geocode.getGeonode(addressData.coord.lat, addressData.coord.lng).then(result => {\n          const zoneData = store.peekRecord('zone', result.data.gpsAreaId);\n          Ember.set(address, 'geoNode', zoneData.get('name'));\n\n          if (populateZoneData) {\n            let notes = zoneData.get('notes');\n            let zoneDriverNotes = \"\";\n            let zoneOperatorNotes = \"\";\n\n            if (!Ember.isBlank(notes)) {\n              zoneDriverNotes = notes.driver;\n              zoneOperatorNotes = notes.dispatcher;\n            }\n\n            Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.area', zoneDriverNotes);\n            Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.area', zoneOperatorNotes);\n            let options = store.peekAll('tm-common-operational-attribute');\n            let requiredAttributes = zoneData.get('requiredAttributes');\n            let areaAttributes = options.filter(function (o1) {\n              // if match found return false\n              return _lodash.default.findIndex(requiredAttributes, {\n                'type': o1.type\n              }) === -1 ? false : true;\n            });\n            Ember.set(tripData, 'editmodelcontext.attributes.area', areaAttributes);\n          }\n        });\n      } catch (e) {\n        console.log(e);\n      }\n    }\n  }\n\n  function populateDataPreloadedData(address, addressData, geocode, store, addressType, tripData, populateZoneData) {\n    try {\n      address.unitNr = (0, _checkValue.default)(addressData.unitNr);\n    } catch (e) {\n      Ember.set(address, 'unitNr', (0, _checkValue.default)(addressData.get('unitNr')));\n    }\n\n    address.streetNr = addressData.get('streetNr');\n    address.streetName = (0, _checkValue.default)(addressData.get('streetName'));\n    address.region = (0, _checkValue.default)(addressData.get('locality'));\n    address.state = (0, _checkValue.default)(addressData.get('region'));\n    address.postCode = (0, _checkValue.default)(addressData.get('postalCode'));\n\n    try {\n      address.description = (0, _checkValue.default)(addressData.description);\n    } catch (e) {\n      Ember.set(address, 'description', addressData.get('description'));\n    }\n\n    try {\n      address.tomtomFormattedAddress.address.freeformAddress = `${addressData.get('streetNr')} ${addressData.get('streetName')} ${addressData.get('region')}`;\n    } catch (e) {\n      Ember.set(address.tomtomFormattedAddress.address, 'freeformAddress', `${addressData.get('streetNr')} ${addressData.get('streetName')} ${addressData.get('region')}`);\n    }\n\n    address.coord.lat = addressData.get('coord.lat');\n    address.coord.lng = addressData.get('coord.lng'); //address.geoNode = addressData.get('geoNode');\n\n    let addressResult = [];\n    addressResult.push(address);\n    geocode.set('markerType', addressType);\n\n    if (!Ember.isBlank(address) && !Ember.isBlank(address.coord) && address.coord.lat !== 0 && address.coord.lng !== 0 && address.coord.lat !== 181 && address.coord.lng !== 181 && !Ember.isBlank(address.coord.lat) && !Ember.isBlank(address.coord.lng)) {\n      geocode.addressPopulateOnMap(address);\n\n      try {\n        geocode.getGeonode(addressData.coord.lat, addressData.coord.lng).then(result => {\n          const zoneData = store.peekRecord('zone', result.data.gpsAreaId);\n          Ember.set(address, 'geoNode', zoneData.get('name'));\n\n          if (populateZoneData) {\n            let notes = zoneData.get('notes');\n            let zoneDriverNotes = \"\";\n            let zoneOperatorNotes = \"\";\n\n            if (!Ember.isBlank(notes)) {\n              zoneDriverNotes = notes.driver;\n              zoneOperatorNotes = notes.dispatcher;\n            }\n\n            Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.area', zoneDriverNotes);\n            Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.area', zoneOperatorNotes);\n            let options = store.peekAll('tm-common-operational-attribute');\n            let requiredAttributes = zoneData.get('requiredAttributes');\n            let areaAttributes = options.filter(function (o1) {\n              // if match found return false\n              return _lodash.default.findIndex(requiredAttributes, {\n                'type': o1.type\n              }) === -1 ? false : true;\n            });\n            Ember.set(tripData, 'editmodelcontext.attributes.area', areaAttributes);\n          }\n        });\n      } catch (e) {\n        console.log(e);\n      }\n    }\n  }\n\n  function clearAddressData(address, geocode) {\n    try {\n      address.unitNr = '';\n    } catch (e) {\n      Ember.set(address, 'unitNr', '');\n    }\n\n    try {\n      address.streetNr = '';\n    } catch (e) {\n      Ember.set(address, 'streetNr', '');\n    }\n\n    try {\n      address.streetName = '';\n    } catch (e) {\n      Ember.set(address, 'streetName', '');\n    }\n\n    try {\n      address.region = '';\n    } catch (e) {\n      Ember.set(address, 'region', '');\n    }\n\n    try {\n      address.state = '';\n    } catch (e) {\n      Ember.set(address, 'state', '');\n    }\n\n    try {\n      address.postCode = '';\n    } catch (e) {\n      Ember.set(address, 'postCode', '');\n    }\n\n    try {\n      address.description = '';\n    } catch (e) {\n      Ember.set(address, 'description', '');\n    } //address.country = '';\n\n\n    if (address.coord) {\n      address.coord.lat = 0;\n      address.coord.lng = 0;\n    }\n\n    try {\n      Ember.set(address.tomtomFormattedAddress.address, 'freeformAddress', '');\n    } catch (e) {} //TODO clear data according to type.\n\n\n    geocode.deactivateGeocode();\n  }\n\n  function populateAddress(address, addressData, geocode, store, addressType, tripData, populateZoneData) {\n    if (addressData !== null) {\n      try {\n        populateAddressData(address, addressData, geocode, store, addressType, tripData, populateZoneData);\n      } catch (e) {\n        console.log(e);\n        populateDataPreloadedData(address, addressData, geocode, store, addressType, tripData, populateZoneData);\n      }\n    } else {\n      clearAddressData(address, geocode, store, addressType, tripData);\n    }\n\n    return;\n  }\n});","define(\"adept-iq/utils/populate-call-line\", [\"exports\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/populate-address\", \"adept-iq/utils/check-value\", \"lodash\"], function (_exports, _checkAddressFlags, _populateAddress, _checkValue, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = populateCallLine;\n\n  function populateCallLineData(tripData, callLineData, geocode, store) {\n    console.log('callLineData ', callLineData);\n    tripData.set('passengers.0.firstName', callLineData.name);\n\n    if (!Ember.isEmpty(callLineData.favoriteTrips) && !Ember.isBlank(callLineData.favoriteTrips[0].pickup) && !Ember.isBlank(callLineData.favoriteTrips[0].pickup.address)) {\n      (0, _populateAddress.default)(tripData.stopPoints[0].address, callLineData.favoriteTrips[0].pickup.address, geocode, store, 'pickup', tripData, true);\n\n      try {\n        if (!Ember.isBlank(callLineData.favoriteTrips[0].notes)) {\n          Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', (0, _checkValue.default)(callLineData.favoriteTrips[0].notes.driver));\n          Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.address', (0, _checkValue.default)(callLineData.favoriteTrips[0].notes.dispatcher));\n        } else {\n          Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', '');\n          Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.address', '');\n        }\n      } catch (e) {}\n    }\n\n    if (!Ember.isEmpty(callLineData.favoriteTrips) && !Ember.isBlank(callLineData.favoriteTrips[0].dropoff) && !Ember.isBlank(callLineData.favoriteTrips[0].dropoff.address)) {\n      (0, _populateAddress.default)(tripData.stopPoints[1].address, callLineData.favoriteTrips[0].dropoff.address, geocode, store, 'dropoff', null, false);\n    }\n\n    let callLineAccount = callLineData.account.accountId;\n\n    if (!Ember.isBlank(callLineAccount) && !Ember.isBlank(callLineAccount.account)) {\n      tripData.acctCardNr = callLineAccount.account.accountId;\n      tripData.set('acctCardNr', callLineAccount.account.accountId); //tripData.set('editmodelcontext.accountTrips', callLineAccount.get('favoritePickups'));\n      //tripData.set('editmodelcontext.accountFixedPriceTrips', callLineAccount.get('fixedPriceTrips'));\n    }\n    /* else {\n     populateAddress(tripData.stopPoints[1].address,\n                     null,\n                     geocode,\n                     store,\n                     'dropoff',\n                     null);\n    }*/\n\n\n    tripData.set('acctCardNr', callLineData.account.accountId);\n    let options = store.peekAll('tm-common-operational-attribute');\n    let requiredAttributes = callLineData.requiredAttributes;\n    let cliAttributes = options.filter(function (o1) {\n      // if match found return false\n      return _lodash.default.findIndex(requiredAttributes, {\n        'type': o1.displayName\n      }) === -1 ? false : true;\n    }); //////console.log(('callLineData',callLineData);\n\n    let cliDriverNotes = callLineData.notes.driver;\n    let cliOperatorNotes = callLineData.notes.dispatcher;\n    Ember.set(tripData, 'editmodelcontext.attributes.cli', cliAttributes);\n    Ember.set(tripData, 'driverNotes', (0, _checkValue.default)(tripData.get('driverNotes')) + \" \" + cliDriverNotes);\n    Ember.set(tripData, 'operatorNotes', (0, _checkValue.default)(tripData.get('operatorNotes')) + \" \" + cliOperatorNotes);\n    (0, _checkAddressFlags.default)(tripData);\n  }\n\n  function clearTripData(tripData, geocode, store) {\n    try {\n      tripData.set('prices.0.fixed', 0);\n    } catch (e) {}\n\n    try {\n      tripData.set('price.fixed', 0);\n    } catch (e) {}\n\n    (0, _populateAddress.default)(tripData.stopPoints[0].address, null, geocode, store, 'pickup', tripData, true);\n    (0, _populateAddress.default)(tripData.stopPoints[1].address, null, geocode, store, 'dropoff', null, false);\n    geocode.deactivateGeocode();\n  }\n\n  function populateCallLine(tripRecord, fixedPriceTripData, geocode, store) {\n    if (fixedPriceTripData !== null) {\n      clearTripData(tripRecord, geocode, store);\n      populateCallLineData(tripRecord, fixedPriceTripData, geocode, store);\n    } else {\n      clearTripData(tripRecord, geocode, store);\n    }\n\n    return;\n  }\n});","define(\"adept-iq/utils/populate-copy-trip\", [\"exports\", \"adept-iq/utils/check-value\", \"adept-iq/utils/check-address-flags\", \"lodash\", \"moment\"], function (_exports, _checkValue, _checkAddressFlags, _lodash, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = populateCopyTrip;\n\n  function populateCopyTripData(tripTemplate, updatetrip, store, geocode) {\n    let tripData = tripTemplate.tripData().data.attributes;\n    let copytrip = store.createRecord('tm-booking', {\n      passengers: updatetrip.passengers,\n      prices: updatetrip.prices,\n      relatedIds: updatetrip.relatedIds,\n      requestedProvider: updatetrip.requestedProvider,\n      source: tripData.source,\n      status: updatetrip.status,\n      stopPoints: updatetrip.stopPoints,\n      trackingId: updatetrip.trackingId\n    }); //Helper UI Model\n\n    copytrip.set('editmodelcontext', {\n      callerTrips: [],\n      assigns: [],\n      swapAddressDisabled: true,\n      saveCLIDisabled: true,\n      driverNotes: '',\n      operatorNotes: '',\n      attributes: {\n        account: [],\n        cli: [],\n        address: [],\n        area: []\n      },\n      predefinedDriverNotes: {\n        account: '',\n        cli: '',\n        address: '',\n        area: '',\n        building: '',\n        attribute: '',\n        unit: '',\n        editTrip: ''\n      },\n      predefinedOperatorNotes: {\n        account: '',\n        cli: '',\n        address: '',\n        area: '',\n        building: '',\n        attribute: '',\n        unit: '',\n        editTrip: ''\n      },\n      editAttributes: {\n        account: [],\n        cli: [],\n        building: [],\n        area: [],\n        region: [],\n        editTrip: []\n      }\n    }); //passgenger\n\n    if (Ember.isBlank(updatetrip.passengers[0].phone1)) {\n      try {\n        Ember.set(updatetrip.passengers[0], 'phone1', tripData.passengers[0].phone1);\n      } catch (e) {\n        updatetrip.passengers[0].phone1 = tripData.passengers[0].phone1;\n      }\n    } //Attributes\n\n\n    let options = store.peekAll('tm-common-operational-attribute');\n    let requiredAttributes = updatetrip.passengers[0].requiredAttributes;\n    let assigns = options.filter(function (o1) {\n      // if match found return false\n      return _lodash.default.findIndex(requiredAttributes, {\n        'type': o1.displayName\n      }) === -1 ? false : true;\n    });\n\n    if (!Ember.isEmpty(requiredAttributes) && Ember.isEmpty(assigns)) {\n      assigns = options.filter(function (o1) {\n        // if match found return false\n        return _lodash.default.findIndex(requiredAttributes, {\n          'type': o1.type\n        }) === -1 ? false : true;\n      });\n    }\n\n    copytrip.set('manualAttributes', assigns); //Notes\n\n    try {\n      if (updatetrip.stopPoints[0].passengerEvents[0].driverNote && updatetrip.stopPoints[0].passengerEvents[0].driverNote.indexOf('\\\\') === -1 && updatetrip.get('predefinedNotes.driverNotes') !== updatetrip.stopPoints[0].passengerEvents[0].driverNote) {\n        copytrip.set('driverNotes', updatetrip.stopPoints[0].passengerEvents[0].driverNote);\n      }\n\n      if (updatetrip.stopPoints[0].passengerEvents[0].driverNote && updatetrip.stopPoints[0].passengerEvents[0].driverNote.indexOf('<>') !== -1) {\n        copytrip.set('driverNotes', updatetrip.stopPoints[0].passengerEvents[0].driverNote.substr(0, updatetrip.stopPoints[0].passengerEvents[0].driverNote.indexOf('<>')));\n        copytrip.set('editmodelcontext.predefinedDriverNotes.editTrip', updatetrip.stopPoints[0].passengerEvents[0].driverNote.substr(updatetrip.stopPoints[0].passengerEvents[0].driverNote.indexOf('<>')));\n      }\n    } catch (e) {}\n\n    try {\n      if (updatetrip.passengers[0].bookingNote && updatetrip.passengers[0].bookingNote.indexOf('\\\\') === -1 && updatetrip.get('predefinedNotes.operatorNotes') !== updatetrip.passengers[0].bookingNote) {\n        copytrip.set('operatorNotes', updatetrip.passengers[0].bookingNote);\n      }\n\n      if (updatetrip.passengers[0].bookingNote && updatetrip.passengers[0].bookingNote.indexOf('<>') !== -1) {\n        copytrip.set('operatorNotes', updatetrip.passengers[0].bookingNote.substr(0, updatetrip.passengers[0].bookingNote.indexOf('<>')));\n        copytrip.set('editmodelcontext.predefinedOperatorNotes.editTrip', updatetrip.passengers[0].bookingNote.substr(updatetrip.passengers[0].bookingNote.indexOf('<>')));\n      }\n    } catch (e) {} //Account\n\n\n    let defaultCardNr = 'CASH';\n    let PFCP_GENERAL_CASH_ACCOUNT_NAME = store.peekAll('tm-config-parameter-value').filterBy('configParameter.id', 'PFCP_GENERAL_CASH_ACCOUNT_NAME');\n\n    if (!Ember.isBlank(PFCP_GENERAL_CASH_ACCOUNT_NAME)) {\n      defaultCardNr = PFCP_GENERAL_CASH_ACCOUNT_NAME[0].get('value');\n    }\n\n    try {\n      if (!Ember.isBlank(updatetrip.prices) && !Ember.isBlank(updatetrip.prices[0])) {\n        defaultCardNr = updatetrip.prices[0].payerIdentifier;\n      } else {\n        defaultCardNr = updatetrip.price.payerIdentifier;\n      }\n    } catch (e) {}\n\n    copytrip.set('acctCardNr', defaultCardNr);\n    let fixedAmount;\n\n    try {\n      if (!Ember.isBlank(updatetrip.prices) && !Ember.isBlank(updatetrip.prices[0])) {\n        defaultCardNr = updatetrip.prices[0].fixed;\n      } else {\n        defaultCardNr = updatetrip.price.fixed;\n      }\n    } catch (e) {\n      console.log(e);\n    }\n\n    if (!Ember.isBlank(fixedAmount)) {\n      copytrip.set('fixedAmount', fixedAmount);\n    } // Last trip Id\n\n\n    updatetrip.set('lastId', updatetrip.get('id')); //Stoppoints means Trip Details\n\n    try {\n      try {\n        let currentUTC = _moment.default.utc().format();\n\n        if ((0, _moment.default)(currentUTC).isAfter(updatetrip.stopPoints[0].passengerEvents[0].time)) {\n          Ember.set(copytrip.stopPoints[0].passengerEvents[0], 'time', new Date());\n        } else {\n          Ember.set(copytrip.stopPoints[0].passengerEvents[0], 'time', updatetrip.stopPoints[0].passengerEvents[0].time);\n        }\n      } catch (e) {\n        let currentUTC = _moment.default.utc().format();\n\n        if ((0, _moment.default)(currentUTC).isAfter(updatetrip.stopPoints[0].passengerEvents[0].time)) {\n          copytrip.stopPoints[0].passengerEvents[0].time = updatetrip.stopPoints[0].passengerEvents[0].time;\n        } else {\n          Ember.set(copytrip.stopPoints[0].passengerEvents[0], 'time', new Date());\n        }\n      }\n    } catch (e) {}\n\n    for (let counter = 0; counter < copytrip.stopPoints.length; counter++) {\n      try {\n        Ember.set(copytrip.stopPoints[counter].address.tomtomFormattedAddress.address, 'freeformAddress', (0, _checkValue.default)(updatetrip.stopPoints[counter].address.streetNr) + \" \" + (0, _checkValue.default)(updatetrip.stopPoints[counter].address.streetName) + \" \" + (0, _checkValue.default)(updatetrip.stopPoints[counter].address.region));\n      } catch (e) {\n        copytrip.stopPoints[counter].address.tomtomFormattedAddress = {\n          address: {\n            freeformAddress: (0, _checkValue.default)(updatetrip.stopPoints[counter].address.streetNr) + \" \" + (0, _checkValue.default)(updatetrip.stopPoints[counter].address.streetName) + \" \" + (0, _checkValue.default)(updatetrip.stopPoints[counter].address.region)\n          }\n        };\n\n        if (!Ember.isBlank(copytrip.stopPoints[counter].address) && !Ember.isBlank(copytrip.stopPoints[counter].address.coord) && copytrip.stopPoints[counter].address.coord.lat !== 0 && copytrip.stopPoints[counter].address.coord.lng !== 0 && copytrip.stopPoints[counter].address.coord.lat !== 181 && copytrip.stopPoints[counter].address.coord.lng !== 181 && copytrip.stopPoints[counter].address.coord.lat !== -181 && copytrip.stopPoints[counter].address.coord.lng !== -181 && !Ember.isBlank(copytrip.stopPoints[counter].address.coord.lat) && !Ember.isBlank(copytrip.stopPoints[counter].address.coord.lng)) {\n          try {\n            geocode.getGeonode(copytrip.stopPoints[counter].address.coord.lat, copytrip.stopPoints[counter].address.coord.lng).then(result => {\n              const zoneData = store.peekRecord('zone', result.data.gpsAreaId);\n              Ember.set(copytrip.stopPoints[counter].address, 'geoNode', zoneData.get('name')); //Ember.set(copytrip.stopPoints[counter].address, 'zoneId', result.data.gpsAreaId);\n            });\n          } catch (e) {\n            console.log(e);\n          }\n        }\n        /*try {\n          Ember.set(copytrip.stopPoints[counter].address, 'formattedAddress', checkValue(updatetrip.stopPoints[counter].address.streetNr) + \" \"+  checkValue(updatetrip.stopPoints[counter].address.streetName)  + \" \" +    checkValue(updatetrip.stopPoints[counter].address.region));\n        } catch(e)   {\n          copytrip.stopPoints[counter].address.formattedAddress = checkValue(updatetrip.stopPoints[counter].address.streetNr) + \" \"+  checkValue(updatetrip.stopPoints[counter].address.streetName)  + \" \" +    checkValue(updatetrip.stopPoints[counter].address.region)\n        }*/\n\n      }\n\n      (0, _checkAddressFlags.default)(copytrip);\n    }\n\n    console.log('copytrip ', copytrip); //let subscriptions = this.createSubscriptionRecord1();\n    //trip.set('subscriptions',subscriptions);\n\n    return copytrip;\n  }\n\n  function populateCopyTrip(tripTemplate, trip, store, geocode) {\n    return populateCopyTripData(tripTemplate, trip, store, geocode);\n  }\n});","define(\"adept-iq/utils/populate-edit-trip\", [\"exports\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/check-value\", \"lodash\", \"moment\"], function (_exports, _checkAddressFlags, _checkValue, _lodash, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = populateEditTrip;\n  const TIME_ZONE = 'America/Los_Angeles';\n\n  function populateEditTripData(tripTemplate, updatetrip, store, geocode) {\n    let tripData = tripTemplate.tripData().data.attributes; //Account, attribute, cli, building and unit could have driver/operator notes associated with.\n    //Account, area,cli, building and region could have attributes associated with.\n\n    console.log('populateEditTripData tripData ', tripData); //Helper UI model\n\n    updatetrip.set('editmodelcontext', {\n      callerTrips: [],\n      assigns: [],\n      swapAddressDisabled: true,\n      saveCLIDisabled: true,\n      driverNotes: '',\n      operatorNotes: '',\n      attributes: {\n        account: [],\n        cli: [],\n        building: [],\n        area: [],\n        region: []\n      },\n      predefinedDriverNotes: {\n        account: '',\n        cli: '',\n        address: '',\n        area: '',\n        building: '',\n        attribute: '',\n        unit: '',\n        editTrip: ''\n      },\n      predefinedOperatorNotes: {\n        account: '',\n        cli: '',\n        address: '',\n        area: '',\n        building: '',\n        attribute: '',\n        unit: '',\n        editTrip: ''\n      },\n      editAttributes: {\n        account: [],\n        cli: [],\n        building: [],\n        area: [],\n        region: [],\n        editTrip: []\n      }\n    });\n    updatetrip.set('source', tripData.source); //passenger\n\n    if (Ember.isBlank(updatetrip.passengers[0].phone1)) {\n      try {\n        Ember.set(updatetrip.passengers[0], 'phone1', tripData.passengers[0].phone1);\n      } catch (e) {\n        updatetrip.passengers[0].phone1 = tripData.passengers[0].phone1;\n      }\n    }\n\n    console.log('updatetrip.stopPoints.length ', updatetrip.stopPoints.length); //Attributes\n\n    let options = store.peekAll('tm-common-operational-attribute');\n    let requiredAttributes = updatetrip.passengers[0].requiredAttributes;\n    console.log('inside edit trip ', requiredAttributes);\n    let assigns = options.filter(function (o1) {\n      // if match found return false\n      return _lodash.default.findIndex(requiredAttributes, {\n        'type': o1.displayName\n      }) === -1 ? false : true;\n    });\n\n    if (!Ember.isEmpty(requiredAttributes) && Ember.isEmpty(assigns)) {\n      assigns = options.filter(function (o1) {\n        // if match found return false\n        return _lodash.default.findIndex(requiredAttributes, {\n          'type': o1.type\n        }) === -1 ? false : true;\n      });\n    }\n\n    console.log('inside edit trip assigns', assigns);\n    updatetrip.set('manualAttributes', assigns); //updatetrip.set('driverNotes', updatetrip.stopPoints[0].passengerEvents[0].driverNote);\n    //updatetrip.set('operatorNotes',updatetrip.passengers[0].bookingNote);\n    //Notes\n\n    try {\n      if (updatetrip.stopPoints[0].passengerEvents[0].driverNote && updatetrip.stopPoints[0].passengerEvents[0].driverNote.indexOf('\\\\') !== -1 && updatetrip.get('predefinedNotes.driverNotes') !== updatetrip.stopPoints[0].passengerEvents[0].driverNote) {\n        updatetrip.set('driverNotes', updatetrip.stopPoints[0].passengerEvents[0].driverNote);\n      }\n\n      if (updatetrip.stopPoints[0].passengerEvents[0].driverNote && updatetrip.stopPoints[0].passengerEvents[0].driverNote.indexOf('<>') !== -1) {\n        let manualDriverNotes = updatetrip.stopPoints[0].passengerEvents[0].driverNote.substr(0, updatetrip.stopPoints[0].passengerEvents[0].driverNote.indexOf('<>'));\n        manualDriverNotes = manualDriverNotes.replace('<>', '');\n        updatetrip.set('driverNotes', manualDriverNotes);\n        let autoPopulateNotes = updatetrip.stopPoints[0].passengerEvents[0].driverNote.substr(updatetrip.stopPoints[0].passengerEvents[0].driverNote.indexOf('<>'));\n        autoPopulateNotes = autoPopulateNotes.replace('<>', '');\n        updatetrip.set('editmodelcontext.predefinedDriverNotes.editTrip', autoPopulateNotes);\n      }\n    } catch (e) {}\n\n    try {\n      if (updatetrip.passengers[0].bookingNote && updatetrip.passengers[0].bookingNote.indexOf('\\\\') !== -1 && updatetrip.get('predefinedNotes.operatorNotes') !== updatetrip.passengers[0].bookingNote) {\n        updatetrip.set('operatorNotes', updatetrip.passengers[0].bookingNote);\n      }\n\n      if (updatetrip.passengers[0].bookingNote && updatetrip.passengers[0].bookingNote.indexOf('<>') !== -1) {\n        let manualOperatorNotes = updatetrip.passengers[0].bookingNote.substr(0, updatetrip.passengers[0].bookingNote.indexOf('<>'));\n        manualOperatorNotes = manualOperatorNotes.replace('<>', '');\n        updatetrip.set('operatorNotes', manualOperatorNotes);\n        let autoPopulateNotes = updatetrip.passengers[0].bookingNote.substr(updatetrip.passengers[0].bookingNote.indexOf('<>'));\n        autoPopulateNotes = autoPopulateNotes.replace('<>', '');\n        updatetrip.set('editmodelcontext.predefinedOperatorNotes.editTrip', autoPopulateNotes);\n      }\n    } catch (e) {} //Accounts\n\n\n    let defaultCardNr = 'CASH';\n    let PFCP_GENERAL_CASH_ACCOUNT_NAME = store.peekAll('tm-config-parameter-value').filterBy('configParameter.id', 'PFCP_GENERAL_CASH_ACCOUNT_NAME');\n\n    if (!Ember.isBlank(PFCP_GENERAL_CASH_ACCOUNT_NAME)) {\n      defaultCardNr = PFCP_GENERAL_CASH_ACCOUNT_NAME[0].get('value');\n    }\n\n    try {\n      if (!Ember.isBlank(updatetrip.prices) && !Ember.isBlank(updatetrip.prices[0])) {\n        defaultCardNr = updatetrip.prices[0].payerIdentifier;\n      } else {\n        defaultCardNr = updatetrip.price.payerIdentifier;\n      }\n    } catch (e) {\n      console.log(e);\n    }\n\n    updatetrip.set('acctCardNr', defaultCardNr);\n    updatetrip.set('lastId', updatetrip.get('id'));\n    let fixedAmount;\n\n    try {\n      if (!Ember.isBlank(updatetrip.prices) && !Ember.isBlank(updatetrip.prices[0])) {\n        defaultCardNr = updatetrip.prices[0].fixed;\n      } else {\n        defaultCardNr = updatetrip.price.fixed;\n      }\n    } catch (e) {\n      console.log(e);\n    }\n\n    if (!Ember.isBlank(fixedAmount)) {\n      updatetrip.set('fixedAmount', fixedAmount);\n    }\n\n    for (let counter = 0; counter < updatetrip.stopPoints.length; counter++) {\n      try {\n        Ember.set(updatetrip.stopPoints[counter].address.tomtomFormattedAddress.address, 'freeformAddress', (0, _checkValue.default)(updatetrip.stopPoints[counter].address.streetNr) + \" \" + (0, _checkValue.default)(updatetrip.stopPoints[counter].address.streetName) + \" \" + (0, _checkValue.default)(updatetrip.stopPoints[counter].address.region));\n      } catch (e) {\n        updatetrip.stopPoints[counter].address.tomtomFormattedAddress = {\n          address: {\n            freeformAddress: (0, _checkValue.default)(updatetrip.stopPoints[counter].address.streetNr) + \" \" + (0, _checkValue.default)(updatetrip.stopPoints[counter].address.streetName) + \" \" + (0, _checkValue.default)(updatetrip.stopPoints[counter].address.region)\n          }\n        };\n      }\n\n      if (!Ember.isBlank(updatetrip.stopPoints[counter].address) && !Ember.isBlank(updatetrip.stopPoints[counter].address.coord) && updatetrip.stopPoints[counter].address.coord.lat !== 0 && updatetrip.stopPoints[counter].address.coord.lng !== 0 && updatetrip.stopPoints[counter].address.coord.lat !== 181 && updatetrip.stopPoints[counter].address.coord.lng !== 181 && updatetrip.stopPoints[counter].address.coord.lat !== -181 && updatetrip.stopPoints[counter].address.coord.lng !== -181 && !Ember.isBlank(updatetrip.stopPoints[counter].address.coord.lat) && !Ember.isBlank(updatetrip.stopPoints[counter].address.coord.lng)) {\n        try {\n          geocode.getGeonode(updatetrip.stopPoints[counter].address.coord.lat, updatetrip.stopPoints[counter].address.coord.lng).then(result => {\n            const zoneData = store.peekRecord('zone', result.data.gpsAreaId);\n            Ember.set(updatetrip.stopPoints[counter].address, 'geoNode', zoneData.get('name'));\n          });\n        } catch (e) {\n          console.log(e);\n        }\n      }\n\n      try {\n        Ember.set(updatetrip.stopPoints[counter].address, 'formattedAddress', (0, _checkValue.default)(updatetrip.stopPoints[counter].address.streetNr) + \" \" + (0, _checkValue.default)(updatetrip.stopPoints[counter].address.streetName) + \" \" + (0, _checkValue.default)(updatetrip.stopPoints[counter].address.region));\n      } catch (e) {\n        updatetrip.stopPoints[counter].address.formattedAddress = (0, _checkValue.default)(updatetrip.stopPoints[counter].address.streetNr) + \" \" + (0, _checkValue.default)(updatetrip.stopPoints[counter].address.streetName) + \" \" + (0, _checkValue.default)(updatetrip.stopPoints[counter].address.region);\n      }\n    }\n\n    (0, _checkAddressFlags.default)(updatetrip);\n    console.log('edit trip updatetrip', updatetrip);\n    console.log('After updatetrip ', updatetrip); //let subscriptions = this.createSubscriptionRecord1();\n    //trip.set('subscriptions',subscriptions);\n\n    return updatetrip;\n  }\n\n  function populateEditTrip(tripTemplate, updatetrip, store, geocode) {\n    return populateEditTripData(tripTemplate, updatetrip, store, geocode);\n  }\n});","define(\"adept-iq/utils/populate-fixed-price\", [\"exports\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/populate-address\", \"adept-iq/utils/check-address-overwrite\", \"adept-iq/utils/check-value\", \"lodash\"], function (_exports, _checkAddressFlags, _populateAddress, _checkAddressOverwrite, _checkValue, _lodash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = populateFixedPrice;\n\n  function populateFixedPriceData(tripData, fixedPriceTripData, geocode, store) {\n    //console.log('tripData ',tripData.stopPoints[0].address);\n    //console.log('pickAddress.pickAddress.coord.lat ',fixedPriceTripData.get('pickAddress.coord.lat'));\n    try {\n      tripData.set('fixedAmount', parseFloat(fixedPriceTripData.price.amount.toFixed(2)));\n    } catch (e) {\n      console.log(e);\n    }\n\n    let overwriteAddress = true;\n    let overwriteAddressPop = (0, _checkAddressOverwrite.default)(tripData.stopPoints[0].address, fixedPriceTripData.pickup.address);\n\n    if (overwriteAddressPop) {\n      overwriteAddress = confirm('Do you want to overwrite Address');\n    }\n\n    if (overwriteAddress) {\n      (0, _populateAddress.default)(tripData.stopPoints[0].address, fixedPriceTripData.pickup.address, geocode, store, 'pickup', tripData, true);\n\n      try {\n        if (!Ember.isBlank(fixedPriceTripData.notes)) {\n          Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', (0, _checkValue.default)(fixedPriceTripData.notes.driver));\n          Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.address', (0, _checkValue.default)(fixedPriceTripData.notes.dispatcher));\n        } else {\n          Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', '');\n          Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.address', '');\n        }\n      } catch (e) {}\n    }\n\n    (0, _populateAddress.default)(tripData.stopPoints[1].address, fixedPriceTripData.dropoff.address, geocode, store, 'dropoff', tripData, false);\n    (0, _checkAddressFlags.default)(tripData);\n  }\n\n  function clearTripData(tripData, geocode, store) {\n    try {\n      tripData.set('prices.0.fixed', '');\n    } catch (e) {\n      console.log(e);\n    }\n\n    try {\n      tripData.set('price.fixed', '');\n    } catch (e) {\n      console.log(e);\n    }\n\n    (0, _populateAddress.default)(tripData.stopPoints[0].address, null, geocode, store, 'pickup', tripData, true);\n    (0, _populateAddress.default)(tripData.stopPoints[1].address, null, geocode, store, 'dropoff', null, false);\n    geocode.deactivateGeocode();\n  }\n\n  function populateFixedPrice(tripRecord, fixedPriceTripData, geocode, store) {\n    if (fixedPriceTripData !== null) {\n      clearTripData(tripRecord, geocode, store);\n      populateFixedPriceData(tripRecord, fixedPriceTripData, geocode, store);\n    } else {\n      clearTripData(tripRecord, geocode, store);\n    }\n\n    return;\n  }\n});","define(\"adept-iq/utils/populate-new-text-message\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = populateNewTextMessage;\n\n  function populateNewTextMessageData(textMessageTemplate, store, vehicle, driver, trip) {\n    console.log('textMessageTemplate.textmessage.data', textMessageTemplate.textMessageData().data);\n    let textmessageData = textMessageTemplate.textMessageData().data[0].attributes;\n    let newTextMessage = store.createRecord('tm-text-message', {\n      subject: textmessageData.subject,\n      body: textmessageData.body,\n      sender: textmessageData.sender,\n      recipients: textmessageData.recipients,\n      deliveryTime: textmessageData.deliveryTime,\n      conversation: textmessageData.conversation,\n      vehicle: vehicle,\n      driver: driver\n    });\n\n    if (!Ember.isBlank(vehicle)) {\n      newTextMessage.set('vehicle', vehicle);\n\n      if (vehicle.get('driver')) {\n        driver = vehicle.get('driver');\n        newTextMessage.recipients[0].id = vehicle.get('driver.id');\n        newTextMessage.set('driver', vehicle.get('driver'));\n      }\n    }\n\n    if (!Ember.isBlank(driver)) {\n      newTextMessage.recipients[0].id = driver.get('id');\n      newTextMessage.set('driver', driver);\n\n      if (driver.get('vehicle')) {\n        vehicle = driver.get('vehicle');\n        newTextMessage.set('vehicle', vehicle);\n      }\n    }\n\n    if (!Ember.isBlank(trip)) {\n      if (trip.get('driver')) {\n        driver = trip.get('driver');\n        newTextMessage.recipients[0].id = trip.get('driver.id');\n        newTextMessage.set('driver', driver);\n      }\n\n      if (trip.get('vehicle')) {\n        vehicle = trip.get('vehicle');\n        newTextMessage.set('vehicle', vehicle);\n      }\n    }\n\n    return newTextMessage;\n  }\n\n  function populateNewTextMessage(textMessageTemplate, store, vehicle, driver, trip) {\n    return populateNewTextMessageData(textMessageTemplate, store, vehicle, driver, trip);\n  }\n});","define(\"adept-iq/utils/populate-new-trip\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = populateNewTrip;\n\n  function populateNewTripData(tripTemplate, store) {\n    let defaultCardNr = 'CASH';\n    let PFCP_GENERAL_CASH_ACCOUNT_NAME = store.peekAll('tm-config-parameter-value').filterBy('configParameter.id', 'PFCP_GENERAL_CASH_ACCOUNT_NAME');\n\n    if (!Ember.isBlank(PFCP_GENERAL_CASH_ACCOUNT_NAME)) {\n      defaultCardNr = PFCP_GENERAL_CASH_ACCOUNT_NAME[0].get('value');\n    }\n\n    let tripData = tripTemplate.tripData().data.attributes;\n    let newtrip = store.createRecord('tm-booking', {\n      passengers: tripData.passengers,\n      prices: tripData.prices,\n      relatedIds: tripData.relatedIds,\n      requestedProvider: tripData.requestedProvider,\n      source: tripData.source,\n      status: tripData.status,\n      stopPoints: tripData.stopPoints,\n      trackingId: tripData.trackingId,\n      acctCardNr: defaultCardNr,\n      manualAttributes: [],\n      // Helper property after this.\n      editmodelcontext: {\n        accountTrips: [],\n        accountFixedPriceTrips: [],\n        callerTrips: [],\n        assigns: [],\n        swapAddressDisabled: true,\n        saveCLIDisabled: true,\n        driverNotes: '',\n        operatorNotes: '',\n        attributes: {\n          account: [],\n          cli: [],\n          address: [],\n          area: []\n        },\n        predefinedDriverNotes: {\n          account: '',\n          cli: '',\n          address: '',\n          area: '',\n          building: '',\n          attribute: '',\n          unit: '',\n          editTrip: ''\n        },\n        predefinedOperatorNotes: {\n          account: '',\n          cli: '',\n          address: '',\n          area: '',\n          building: '',\n          attribute: '',\n          unit: '',\n          editTrip: ''\n        },\n        editAttributes: {\n          account: [],\n          cli: [],\n          building: [],\n          area: [],\n          region: [],\n          editTrip: []\n        }\n      }\n    });\n    newtrip.stopPoints[0].passengerEvents[0].time = new Date();\n    newtrip.stopPoints[0].address.tomtomFormattedAddress = {\n      address: {\n        freeformAddress: ''\n      }\n    };\n    newtrip.stopPoints[1].address.tomtomFormattedAddress = {\n      address: {\n        freeformAddress: ''\n      }\n    }; //let subscriptions = this.createSubscriptionRecord1();\n    //trip.set('subscriptions',subscriptions);\n    //////console.log(('newtrip ',newtrip);\n\n    return newtrip;\n  }\n\n  function populateNewTrip(tripTemplate, store) {\n    return populateNewTripData(tripTemplate, store);\n  }\n});","define(\"adept-iq/utils/populate-pickup\", [\"exports\", \"adept-iq/utils/check-address-flags\", \"adept-iq/utils/populate-address\"], function (_exports, _checkAddressFlags, _populateAddress) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = populatePickup;\n\n  function populatePickupData(tripData, pickupData, geocode, store) {\n    Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.address', pickupData.pickup.noteForDriver); //Ember.set(tripData,'editmodelcontext.predefinedOperatorNotes.account', pickupData.pickup.noteForDispatch);\n\n    (0, _populateAddress.default)(tripData.stopPoints[0].address, pickupData.pickup.address, geocode, store, 'pickup', tripData, true);\n    (0, _checkAddressFlags.default)(tripData);\n  }\n\n  function clearTripData(tripData, geocode, store) {\n    (0, _populateAddress.default)(tripData.stopPoints[0].address, null, geocode, store, 'pickup', tripData, true);\n    geocode.deactivateGeocode();\n  }\n\n  function populatePickup(tripRecord, pickupData, geocode, store) {\n    if (pickupData !== null) {\n      populatePickupData(tripRecord, pickupData, geocode, store);\n    } else {\n      clearTripData(tripRecord, geocode, store);\n    }\n\n    return;\n  }\n});","define(\"adept-iq/utils/populate-poi-address\", [\"exports\", \"adept-iq/utils/check-value\"], function (_exports, _checkValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = populateAddress;\n\n  function populateAddressData(address, addressData, geocode, store, addressType, tripData) {\n    //console.log('address ',address);\n    try {\n      address.unitNr = (0, _checkValue.default)(addressData.unitNr);\n    } catch (e) {\n      Ember.set(address, 'unitNr', (0, _checkValue.default)(addressData.unitNr));\n    }\n\n    address.streetNr = (0, _checkValue.default)(addressData.streetNr);\n    address.streetName = (0, _checkValue.default)(addressData.streetName);\n    address.region = (0, _checkValue.default)(addressData.region);\n    address.state = (0, _checkValue.default)(addressData.region);\n    address.postCode = (0, _checkValue.default)(addressData.postalCode);\n\n    try {\n      address.description = (0, _checkValue.default)(addressData.description);\n    } catch (e) {\n      Ember.set(address, 'description', addressData.description);\n    } //address.country = ttAddress.address.country;\n\n\n    try {\n      Ember.set(address.tomtomFormattedAddress.address, 'freeformAddress', `${address.streetNr} ${address.streetName} ${address.region}`);\n    } catch (e) {}\n    /*try {\n      Ember.set(address, 'formattedAddress', `${address.streetNr} ${address.streetName} ${address.region}`);\n     } catch(e)   {\n     }*/\n\n\n    if (!Ember.isBlank(addressData) && !Ember.isBlank(addressData.coord) && addressData.coord.lat !== 0 && addressData.coord.lng !== 0 && addressData.coord.lat !== 181 && addressData.coord.lng !== 181 && addressData.coord.lat !== -181 && addressData.coord.lng !== -181 && !Ember.isBlank(addressData.coord.lat) && !Ember.isBlank(addressData.coord.lng)) {\n      address.coord.lat = addressData.coord.lat;\n      address.coord.lng = addressData.coord.lng;\n    } else {\n      address.coord.lat = 49.127196;\n      address.coord.lng = -123.093865;\n    } //address.geoNode = addressData.get('geoNode');\n\n\n    let addressResult = [];\n    addressResult.push(address);\n    geocode.set('markerType', addressType);\n\n    if (!Ember.isBlank(address) && !Ember.isBlank(address.coord) && address.coord.lat !== 0 && address.coord.lng !== 0 && address.coord.lat !== 181 && address.coord.lng !== 181 && address.coord.lat !== -181 && address.coord.lng !== -181 && !Ember.isBlank(address.coord.lat) && !Ember.isBlank(address.coord.lng)) {\n      geocode.addressMapPopulate(address);\n\n      try {\n        geocode.getGeonode(addressData.coord.lat, addressData.coord.lng).then(result => {\n          const zoneData = store.peekRecord('zone', result.data.gpsAreaId);\n          Ember.set(address, 'geoNode', zoneData.get('name'));\n          let notes = zoneData.get('notes');\n          let zoneDriverNotes = \"\";\n          let zoneOperatorNotes = \"\";\n\n          if (!Ember.isBlank(notes)) {\n            zoneDriverNotes = notes.driver;\n            zoneOperatorNotes = notes.dispatcher;\n          }\n\n          Ember.set(tripData, 'editmodelcontext.predefinedDriverNotes.area', zoneDriverNotes);\n          Ember.set(tripData, 'editmodelcontext.predefinedOperatorNotes.area', zoneOperatorNotes);\n          let options = this.get('store').peekAll('tm-common-operational-attribute');\n          let requiredAttributes = zoneData.get('requiredAttributes');\n          let areaAttributes = options.filter(function (o1) {\n            // if match found return false\n            return lodash.findIndex(requiredAttributes, {\n              'type': o1.type\n            }) === -1 ? false : true;\n          });\n          Ember.set(tripData, 'editmodelcontext.attributes.area', areaAttributes);\n        });\n      } catch (e) {\n        console.log(e);\n      }\n    }\n  }\n\n  function populateDataPreloadedData(address, addressData, geocode, store, addressType, tripData) {\n    try {\n      address.unitNr = (0, _checkValue.default)(addressData.unitNr);\n    } catch (e) {\n      Ember.set(address, 'unitNr', (0, _checkValue.default)(addressData.get('unitNr')));\n    }\n\n    address.streetNr = addressData.get('streetNr');\n    address.streetName = (0, _checkValue.default)(addressData.get('streetName'));\n    address.region = (0, _checkValue.default)(addressData.get('locality'));\n    address.state = (0, _checkValue.default)(addressData.get('region'));\n    address.postCode = (0, _checkValue.default)(addressData.get('postalCode'));\n\n    try {\n      address.description = (0, _checkValue.default)(addressData.description);\n    } catch (e) {\n      Ember.set(address, 'description', addressData.get('description'));\n    }\n\n    Ember.set(address.tomtomFormattedAddress.address, 'freeformAddress', `${addressData.get('streetNr')} ${addressData.get('streetName')} ${addressData.get('region')}`);\n    address.coord.lat = addressData.get('coord.lat');\n    address.coord.lng = addressData.get('coord.lng'); //address.geoNode = addressData.get('geoNode');\n\n    let addressResult = [];\n    addressResult.push(address);\n    geocode.set('markerType', addressType);\n\n    if (!Ember.isBlank(address) && !Ember.isBlank(address.coord) && address.coord.lat !== 0 && address.coord.lng !== 0 && address.coord.lat !== 181 && address.coord.lng !== 181 && !Ember.isBlank(address.coord.lat) && !Ember.isBlank(address.coord.lng)) {\n      geocode.addressMapPopulate(address);\n\n      try {\n        geocode.getGeonode(addressData.get('coord.lat'), addressData.get('coord.lng')).then(result => {\n          const zoneData = store.peekRecord('zone', result.data.gpsAreaId); //Ember.set(address, 'geoNode', zoneData.get('name'));\n        });\n      } catch (e) {\n        console.log(e);\n      }\n    }\n  }\n\n  function clearAddressData(address, geocode) {\n    try {\n      address.unitNr = '';\n    } catch (e) {\n      Ember.set(address, 'unitNr', '');\n    }\n\n    address.streetNr = '';\n    address.streetName = '';\n    address.region = '';\n    address.state = '';\n    address.postCode = '';\n\n    try {\n      address.description = '';\n    } catch (e) {\n      Ember.set(address, 'description', '');\n    } //address.country = '';\n\n\n    if (address.coord) {\n      address.coord.lat = 0;\n      address.coord.lng = 0;\n    }\n\n    try {\n      Ember.set(address.tomtomFormattedAddress.address, 'freeformAddress', '');\n    } catch (e) {} //TODO clear data according to type.\n\n\n    geocode.deactivateGeocode();\n  }\n\n  function populateAddress(address, addressData, geocode, store, addressType, tripData) {\n    if (addressData !== null) {\n      try {\n        populateAddressData(address, addressData, geocode, store, addressType, tripData);\n      } catch (e) {\n        console.log(e);\n        populateDataPreloadedData(address, addressData, geocode, store, addressType, tripData);\n      }\n    } else {\n      clearAddressData(address, geocode, store, addressType);\n    }\n\n    return;\n  }\n});","define(\"adept-iq/utils/populate-search-trip\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = populateNewTrip;\n\n  function populateNewTripData(tripTemplate, store) {\n    let defaultCardNr = '';\n    let tripData = tripTemplate.tripData().data.attributes;\n    let newtrip = store.createRecord('tm-booking', {\n      passengers: tripData.passengers,\n      prices: tripData.prices,\n      relatedIds: tripData.relatedIds,\n      requestedProvider: tripData.requestedProvider,\n      source: tripData.source,\n      status: tripData.status,\n      stopPoints: tripData.stopPoints,\n      trackingId: tripData.trackingId,\n      acctCardNr: defaultCardNr,\n      manualAttributes: [],\n      // Helper property after this.\n      editmodelcontext: {\n        accountTrips: [],\n        accountFixedPriceTrips: [],\n        callerTrips: [],\n        assigns: [],\n        swapAddressDisabled: true,\n        saveCLIDisabled: true,\n        driverNotes: '',\n        operatorNotes: '',\n        attributes: {\n          account: [],\n          cli: [],\n          address: [],\n          area: []\n        },\n        predefinedDriverNotes: {\n          account: '',\n          cli: '',\n          address: '',\n          area: '',\n          building: '',\n          attribute: ''\n        },\n        predefinedOperatorNotes: {\n          account: '',\n          cli: '',\n          address: '',\n          area: '',\n          building: '',\n          attribute: ''\n        },\n        editAttributes: {\n          account: [],\n          cli: [],\n          building: [],\n          area: [],\n          region: [],\n          editTrip: []\n        }\n      }\n    }); //newtrip.stopPoints[0].passengerEvents[0].time = ;\n\n    newtrip.stopPoints[0].address.tomtomFormattedAddress = {\n      address: {\n        freeformAddress: ''\n      }\n    };\n    newtrip.stopPoints[1].address.tomtomFormattedAddress = {\n      address: {\n        freeformAddress: ''\n      }\n    }; //let subscriptions = this.createSubscriptionRecord1();\n    //trip.set('subscriptions',subscriptions);\n    //////console.log(('newtrip ',newtrip);\n\n    return newtrip;\n  }\n\n  function populateNewTrip(tripTemplate, store) {\n    return populateNewTripData(tripTemplate, store);\n  }\n});","define(\"adept-iq/utils/populate-trip-search-data\", [\"exports\", \"adept-iq/utils/check-value\"], function (_exports, _checkValue) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = populateTripSearchData;\n\n  function populateData(updatetrip, store) {\n    let iqTrip = store.peekRecord('trip', updatetrip.id);\n\n    if (Ember.isBlank(iqTrip)) {\n      let account;\n      let driver;\n      let vehicle;\n      let rider = store.peekRecord('rider', updatetrip.passengers[0].id);\n\n      if (Ember.isBlank(rider)) {\n        rider = store.createRecord('rider', {\n          id: updatetrip.passengers[0].id,\n          riderId: updatetrip.passengers[0].id,\n          name: updatetrip.passengers[0].firstName,\n          phoneNr: updatetrip.passengers[0].phone1.number,\n          areaCode: updatetrip.passengers[0].phone1.areaCode,\n          extension: updatetrip.passengers[0].phone1.extension\n        });\n      }\n\n      let originlocations = [];\n      let locationPickupID = updatetrip.id + \".\" + updatetrip.stopPoints[0].index + \".\" + updatetrip.stopPoints[0].index;\n      let locationDropoffID = updatetrip.id + \".\" + updatetrip.stopPoints[1].index + \".\" + updatetrip.stopPoints[1].index;\n      let origin = store.createRecord('place', {\n        id: locationPickupID,\n        streetNr: (0, _checkValue.default)(updatetrip.stopPoints[0].address.streetNr),\n        streetName: (0, _checkValue.default)(updatetrip.stopPoints[0].address.streetName),\n        city: (0, _checkValue.default)(updatetrip.stopPoints[0].address.region),\n        postalCode: (0, _checkValue.default)(updatetrip.stopPoints[0].address.postalCode)\n      });\n      origin.set('type', 'pick');\n      originlocations.push(origin);\n      let destinationlocations = [];\n      let destination = store.createRecord('place', {\n        id: locationDropoffID,\n        streetNr: (0, _checkValue.default)(updatetrip.stopPoints[1].address.streetNr),\n        streetName: (0, _checkValue.default)(updatetrip.stopPoints[1].address.streetName),\n        city: (0, _checkValue.default)(updatetrip.stopPoints[1].address.region),\n        postalCode: (0, _checkValue.default)(updatetrip.stopPoints[1].address.postalCode)\n      });\n      destination.set('type', 'drop');\n      destinationlocations.push(destination);\n      let pick = store.createRecord('stop', {\n        id: locationPickupID,\n        location: origin,\n        type: 'pick',\n        tripId: updatetrip.id,\n        orderId: updatetrip.id\n      });\n      let drop = store.createRecord('stop', {\n        id: locationDropoffID,\n        location: destination,\n        type: 'drop',\n        tripId: updatetrip.id,\n        orderId: updatetrip.id\n      });\n      let bsAccounts = store.peekAll('account');\n      let bsAccount = bsAccounts.filterBy('acctCardNr', updatetrip.prices[0].payerIdentifier);\n\n      if (!Ember.isBlank(updatetrip.driver)) {\n        driver = store.peekRecord('driver', updatetrip.driver.id);\n      }\n\n      if (!Ember.isBlank(updatetrip.vehicle)) {\n        vehicle = store.peekRecord('vehicle', updatetrip.vehicle.id);\n      }\n\n      if (Ember.isBlank(bsAccount)) {\n        account = store.createRecord('account', {\n          id: updatetrip.prices[0].payerIdentifier,\n          acctCardNr: updatetrip.prices[0].payerIdentifier\n        });\n      } else {\n        account = bsAccount.firstObject;\n      }\n\n      let trip = store.createRecord('trip', {\n        id: updatetrip.id,\n        planState: 1,\n        anchor: 'pick',\n        fare: updatetrip.prices[0].fare,\n        rider: rider,\n        origin: origin,\n        pick: pick,\n        drop: drop,\n        destination: destination,\n        originlocations: originlocations,\n        destinationlocations: destinationlocations,\n        driverNotes: '',\n        account: account,\n        acctCardNr: account.acctCardNr,\n        driver: driver,\n        vehicle: vehicle,\n        status: updatetrip.state\n      });\n      store.createRecord('stop', {\n        id: locationPickupID,\n        stop: pick\n      });\n      store.createRecord('stop', {\n        id: locationDropoffID,\n        stop: drop\n      });\n      iqTrip = store.createRecord('trip', {\n        id: updatetrip.id,\n        trip: trip\n      });\n    }\n\n    return iqTrip;\n  }\n\n  function populateTripSearchData(updatetrip, store) {\n    return populateData(updatetrip, store);\n  }\n});","define(\"adept-iq/utils/range\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = range;\n\n  function range(num) {\n    const arr = [];\n\n    for (let i = 0; i < num; i += 1) {\n      arr.push(0);\n    }\n\n    return arr;\n  }\n});","define(\"adept-iq/utils/rql-generators\", [\"exports\", \"moment\"], function (_exports, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.dateStrictlyBetweenRQL = _exports.dateBetweenRQL = _exports.dateNeRQL = _exports.dateEqRQL = _exports.dateLteRQL = _exports.dateLtRQL = _exports.dateGteRQL = _exports.dateGtRQL = _exports.stringBetweenRQL = _exports.stringLikeRQL = _exports.stringGtRQL = _exports.stringLtRQL = _exports.stringNeRQL = _exports.stringEqRQL = _exports.inRQL = _exports.strictlyBetweenRQL = _exports.betweenRQL = _exports.gteRQL = _exports.gtRQL = _exports.lteRQL = _exports.ltRQL = _exports.neRQL = _exports.eqRQL = _exports.emptyRQL = _exports.nullRQL = _exports.orRQL = _exports.andRQL = void 0;\n\n  // compound RQL generators\n  const andRQL = (...args) => `and(${args.join(',')})`;\n\n  _exports.andRQL = andRQL;\n\n  const orRQL = (...args) => `or(${args.join(',')})`; // elementary RQL generators\n\n\n  _exports.orRQL = orRQL;\n\n  const nullRQL = () => null;\n\n  _exports.nullRQL = nullRQL;\n\n  const emptyRQL = p => `eq(${p},null)`;\n\n  _exports.emptyRQL = emptyRQL;\n\n  const eqRQL = (p, [v]) => `eq(${p},${v})`;\n\n  _exports.eqRQL = eqRQL;\n\n  const neRQL = (p, [v]) => `ne(${p},${v})`;\n\n  _exports.neRQL = neRQL;\n\n  const ltRQL = (p, [v]) => `lt(${p},${v})`;\n\n  _exports.ltRQL = ltRQL;\n\n  const lteRQL = (p, [v]) => `le(${p},${v})`;\n\n  _exports.lteRQL = lteRQL;\n\n  const gtRQL = (p, [v]) => `gt(${p},${v})`;\n\n  _exports.gtRQL = gtRQL;\n\n  const gteRQL = (p, [v]) => `ge(${p},${v})`;\n\n  _exports.gteRQL = gteRQL;\n\n  const betweenRQL = (p, [v, w]) => andRQL(gteRQL(p, [v]), lteRQL(p, [w]));\n\n  _exports.betweenRQL = betweenRQL;\n\n  const strictlyBetweenRQL = (p, [v, w]) => {\n    return andRQL(gtRQL(p, [v]), ltRQL(p, [w]));\n  };\n\n  _exports.strictlyBetweenRQL = strictlyBetweenRQL;\n\n  const inRQL = (p, values) => {\n    return `in(${p},(${values.join(',')}))`;\n  }; // quoted values! API will break if types don't match\n\n\n  _exports.inRQL = inRQL;\n\n  const stringEqRQL = (p, [v]) => `eq(${p},'${v}')`;\n\n  _exports.stringEqRQL = stringEqRQL;\n\n  const stringNeRQL = (p, [v]) => `ne(${p},'${v}')`;\n\n  _exports.stringNeRQL = stringNeRQL;\n\n  const stringLtRQL = (p, [v]) => `lt(${p},'${v}')`;\n\n  _exports.stringLtRQL = stringLtRQL;\n\n  const stringGtRQL = (p, [v]) => `gt(${p},'${v}')`;\n\n  _exports.stringGtRQL = stringGtRQL;\n\n  const stringLikeRQL = (p, [v]) => `ilike(${p},'%${v}%')`; // need %...%\n\n\n  _exports.stringLikeRQL = stringLikeRQL;\n\n  const stringBetweenRQL = (p, [v, w]) => {\n    return andRQL(stringGtRQL(p, [v]), stringLtRQL(p, [w]));\n  };\n\n  _exports.stringBetweenRQL = stringBetweenRQL;\n\n  const dateGtRQL = (p, [v]) => `gt(${p},'${(0, _moment.default)(v).format()}')`;\n\n  _exports.dateGtRQL = dateGtRQL;\n\n  const dateGteRQL = (p, [v]) => `ge(${p},'${(0, _moment.default)(v).format()}')`;\n\n  _exports.dateGteRQL = dateGteRQL;\n\n  const dateLtRQL = (p, [v]) => `lt(${p},'${(0, _moment.default)(v).format()}')`;\n\n  _exports.dateLtRQL = dateLtRQL;\n\n  const dateLteRQL = (p, [v]) => `le(${p},'${(0, _moment.default)(v).format()}')`;\n\n  _exports.dateLteRQL = dateLteRQL;\n\n  const dateEqRQL = (p, [v]) => `eq(${p},'${(0, _moment.default)(v).format()}')`;\n\n  _exports.dateEqRQL = dateEqRQL;\n\n  const dateNeRQL = (p, [v]) => `ne(${p},'${(0, _moment.default)(v).format()}')`;\n\n  _exports.dateNeRQL = dateNeRQL;\n\n  const dateBetweenRQL = (p, [v, w]) => {\n    return andRQL(dateGteRQL(p, [v]), dateLteRQL(p, [w]));\n  };\n\n  _exports.dateBetweenRQL = dateBetweenRQL;\n\n  const dateStrictlyBetweenRQL = (p, [v, w]) => {\n    return andRQL(dateGtRQL(p, [v]), dateLtRQL(p, [w]));\n  };\n\n  _exports.dateStrictlyBetweenRQL = dateStrictlyBetweenRQL;\n});","define(\"adept-iq/utils/rql\", [\"exports\", \"adept-iq/config/filter-types\"], function (_exports, _filterTypes) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.buildQueryParams = void 0;\n\n  const renderSortsRQL = sorts => {\n    const rqlFragments = sorts.map(({\n      path,\n      asc\n    }) => {\n      const sign = asc ? '+' : '-';\n      return `${sign}${path}`;\n    });\n    return rqlFragments.uniq().join(',');\n  };\n\n  const renderCompoundFilter = (type, args) => {\n    if (!args) return null;\n    /*eslint-disable */\n\n    const renderedArgs = args.map(renderFilterRQL).compact();\n    /*eslint-enable */\n\n    if (renderedArgs.length === 0) return null;\n    if (renderedArgs.length === 1) return renderedArgs[0];\n    return `${type}(${renderedArgs.join(',')})`;\n  };\n\n  const renderFilterRQL = node => {\n    if (!node) return null; // allow pre-rendered fragments\n\n    if (Ember.typeOf(node) === 'string') return node;\n\n    switch (node.type) {\n      case 'and':\n      case 'or':\n        return renderCompoundFilter(node.type, node.args);\n\n      default:\n        {\n          const {\n            rql\n          } = _filterTypes.filterTypesHash[node.type];\n          return rql(node.rql.path, node.rql.values);\n        }\n    }\n  };\n\n  const renderIncludesRQL = includes => {\n    // TODO: handle configurable inner joins\n    return includes.sort().uniq().join(',');\n  };\n\n  const buildQueryParams = ({\n    sorts,\n    filter,\n    includes,\n    page\n  }) => {\n    const query = {};\n\n    if (!Ember.isEmpty(sorts)) {\n      query.sort = renderSortsRQL(sorts);\n    }\n\n    if (filter) {\n      const filterRQL = renderFilterRQL(filter);\n\n      if (filterRQL) {\n        query.filter = filterRQL;\n      }\n    }\n\n    if (!Ember.isEmpty(includes)) {\n      query.include = renderIncludesRQL(includes);\n    }\n\n    if (Ember.isPresent(page)) {\n      query['page[offset]'] = page.offset;\n      query['page[limit]'] = page.limit;\n    }\n\n    return query;\n  };\n\n  _exports.buildQueryParams = buildQueryParams;\n});","define(\"adept-iq/utils/save-records\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = _default;\n\n  function _default(records) {\n    return Promise.all(records.map(record => record.save()));\n  }\n});","define(\"adept-iq/utils/search-data\", [\"exports\", \"adept-iq/config/environment\", \"adept-iq/config/api-urls\", \"ember-concurrency\"], function (_exports, _environment, _apiUrls, _emberConcurrency) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = searchData;\n  let optionSearchPath;\n  let optionSearchValue;\n  let optionModelName;\n  let ajax;\n\n  function getRiderProfile() {\n    return ajax.put(_apiUrls.API.tripManagementService.host + `/${optionModelName}?filter=${optionSearchPath}==` + optionSearchValue.toUpperCase(), {\n      method: 'GET',\n      contentType: \"application/json\"\n    }).then(response => {\n      return response.data;\n    }).catch(function (error) {\n      return [];\n    });\n  }\n\n  search: (0, _emberConcurrency.task)(function* (term) {\n    yield (0, _emberConcurrency.timeout)(50);\n    let searchResults;\n    searchResults = yield getRiderProfile(); //console.log('search searchResults ',searchResults);\n\n    return searchResults;\n  });\n\n  function searchData(optionSearchPath, optionModelName, optionSearchValue) {\n    this.optionSearchPath = optionSearchPath;\n    this.optionSearchValue = optionSearchValue;\n    this.optionModelName = optionModelName;\n    this.ajax = ajax;\n    this.search.perform().then(results => {\n      return results;\n    });\n  }\n});","define(\"adept-iq/utils/sorts\", [\"exports\", \"adept-iq/config/comparison-functions\"], function (_exports, _comparisonFunctions) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.buildCompareFunction = buildCompareFunction;\n\n  function buildCompareFunction(params) {\n    return (a, b) => {\n      const cmp = Ember.makeArray(params).reduce((acc, {\n        path,\n        asc,\n        compare\n      }) => {\n        if (acc !== 0) return acc;\n        const sign = asc ? 1 : -1;\n        return sign * compare(a.get(path), b.get(path));\n      }, 0); // tie breaker uses `guidFor`\n\n      if (cmp === 0) {\n        return (0, _comparisonFunctions.nullCompare)(a, b);\n      }\n\n      return cmp;\n    };\n  }\n});","define(\"adept-iq/utils/titleize\", [\"exports\", \"ember-cli-string-helpers/utils/titleize\"], function (_exports, _titleize) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _titleize.default;\n    }\n  });\n});","define(\"adept-iq/utils/widget-placement\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.computeMaxSpacePairs = computeMaxSpacePairs;\n  _exports.computeMask = computeMask;\n  _exports.computeWidgetPlacements = computeWidgetPlacements;\n\n  /**\n   * Computes a list of possible locations that will fit a widget of specified\n   * minimum width and height; scans left to right, then down the rows.\n   *\n   * @param {Dashboard} dashboard\n   * @param {integer} gridWidth\n   * @param {integer} minWidth\n   * @param {integer} minHeight\n   */\n\n  /**\n   * Computes max width and height for a widget placed at each location in mask.\n   *\n   * @param {Array} mask\n   */\n  function computeMaxSpacePairs(mask) {\n    const width = mask.length;\n    const pairs = [];\n\n    for (let i = width - 1; i >= 0; i--) {\n      const height = mask[i].length;\n      pairs[i] = [];\n\n      for (let j = height - 1; j >= 0; j--) {\n        let maxWidth, maxHeight;\n\n        if (mask[i][j]) {\n          maxWidth = 0;\n        } else if (i === width - 1) {\n          maxWidth = 1;\n        } else {\n          maxWidth = pairs[i + 1][j][0] + 1;\n        }\n\n        if (mask[i][j]) {\n          maxHeight = 0;\n        } else if (j === height - 1) {\n          maxHeight = Infinity;\n        } else {\n          maxHeight = pairs[i][j + 1][1] + 1;\n        }\n\n        pairs[i][j] = [maxWidth, maxHeight];\n      }\n    }\n\n    return pairs;\n  }\n  /**\n   * Computes an array mask with non-zero value iff grid location is occupied.\n   *\n   * @param {Dashboard} dashboard\n   * @param {integer} gridWidth\n   */\n\n\n  function computeMask(dashboard, gridWidth) {\n    const widgets = dashboard.get('widgets'); // find horiz limit of existing widgets\n\n    let xMax = widgets.reduce((max, widget) => {\n      const x = widget.get('x');\n      const width = widget.get('width');\n      return Math.max(max, x + width);\n    }, 0); // grid may be wider than right-most widget's edge\n\n    xMax = Math.max(xMax, gridWidth); // allow one extra row below bottom-most widget\n\n    const yMax = 1 + widgets.reduce((max, widget) => {\n      const y = widget.get('y');\n      const height = widget.get('height');\n      return Math.max(max, y + height);\n    }, 0); // allow one extra row in mask\n\n    const mask = [];\n\n    for (let i = 0; i < xMax; i++) {\n      mask[i] = [];\n\n      for (let j = 0; j < yMax; j++) {\n        mask[i][j] = 0;\n      }\n    } // shade values for existing widgets in layout\n\n\n    widgets.forEach(widget => {\n      const {\n        x,\n        y,\n        height,\n        width\n      } = widget.getProperties(['x', 'y', 'height', 'width']);\n\n      for (let i = x; i < x + width; i++) {\n        for (let j = y; j < y + height; j++) {\n          mask[i][j] = 1;\n        }\n      }\n    });\n    return mask;\n  }\n\n  function computeWidgetPlacements(dashboard, gridWidth, minWidth, minHeight) {\n    const mask = computeMask(dashboard, gridWidth);\n    const freeSpacePairs = computeMaxSpacePairs(mask);\n    const locations = [];\n    const height = mask[0].length;\n\n    for (let j = 0; j < height; j++) {\n      for (let i = 0; i < gridWidth; i++) {\n        const [maxWidth, maxHeight] = freeSpacePairs[i][j];\n\n        if (maxWidth >= minWidth && maxHeight >= minHeight) {\n          locations.push({\n            x: i,\n            y: j,\n            maxWidth,\n            maxHeight\n          });\n        }\n      }\n    }\n\n    return locations;\n  }\n});","define(\"adept-iq/utils/zone-check\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.insideZone = insideZone;\n\n  function insideZone(point, zonePolygon) {\n    // ray-casting algorithm based on\n    // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html\n    const x = point[0];\n    const y = point[1];\n    let inside = false;\n\n    for (let i = 0, j = zonePolygon.length - 1; i < zonePolygon.length; j = i++) {\n      const xi = zonePolygon[i][0];\n      const yi = zonePolygon[i][1];\n      const xj = zonePolygon[j][0];\n      const yj = zonePolygon[j][1];\n      /*eslint-disable */\n\n      const intersect = yi > y != yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n      /*eslint-enable */\n\n      if (intersect) inside = !inside;\n    }\n\n    return inside;\n  }\n});","define(\"adept-iq/utils/zone-validation\", [\"exports\", \"adept-iq/config/zone-polygon\"], function (_exports, _zonePolygon) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.insideZone = insideZone;\n\n  function insideZone(point) {\n    // ray-casting algorithm based on\n    // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html\n    const x = point[0];\n    const y = point[1];\n    let inside = false;\n\n    for (let i = 0, j = _zonePolygon.default.length - 1; i < _zonePolygon.default.length; j = i++) {\n      const xi = _zonePolygon.default[i][0];\n      const yi = _zonePolygon.default[i][1];\n      const xj = _zonePolygon.default[j][0];\n      const yj = _zonePolygon.default[j][1];\n      /*eslint-disable */\n\n      const intersect = yi > y != yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n      /*eslint-enable */\n\n      if (intersect) inside = !inside;\n    }\n\n    return true;\n  }\n});","define(\"adept-iq/validators/alias\", [\"exports\", \"ember-cp-validations/validators/alias\"], function (_exports, _alias) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _alias.default;\n    }\n  });\n});","define(\"adept-iq/validators/belongs-to\", [\"exports\", \"ember-cp-validations/validators/belongs-to\"], function (_exports, _belongsTo) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _belongsTo.default;\n    }\n  });\n});","define(\"adept-iq/validators/collection\", [\"exports\", \"ember-cp-validations/validators/collection\"], function (_exports, _collection) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _collection.default;\n    }\n  });\n});","define(\"adept-iq/validators/confirmation\", [\"exports\", \"ember-cp-validations/validators/confirmation\"], function (_exports, _confirmation) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _confirmation.default;\n    }\n  });\n});","define(\"adept-iq/validators/date\", [\"exports\", \"ember-cp-validations/validators/date\"], function (_exports, _date) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _date.default;\n    }\n  });\n});","define(\"adept-iq/validators/dependent\", [\"exports\", \"ember-cp-validations/validators/dependent\"], function (_exports, _dependent) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _dependent.default;\n    }\n  });\n});","define(\"adept-iq/validators/ds-error\", [\"exports\", \"ember-cp-validations/validators/ds-error\"], function (_exports, _dsError) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _dsError.default;\n    }\n  });\n});","define(\"adept-iq/validators/exclusion\", [\"exports\", \"ember-cp-validations/validators/exclusion\"], function (_exports, _exclusion) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _exclusion.default;\n    }\n  });\n});","define(\"adept-iq/validators/format\", [\"exports\", \"ember-cp-validations/validators/format\"], function (_exports, _format) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _format.default;\n    }\n  });\n});","define(\"adept-iq/validators/has-many\", [\"exports\", \"ember-cp-validations/validators/has-many\"], function (_exports, _hasMany) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _hasMany.default;\n    }\n  });\n});","define(\"adept-iq/validators/inclusion\", [\"exports\", \"ember-cp-validations/validators/inclusion\"], function (_exports, _inclusion) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _inclusion.default;\n    }\n  });\n});","define(\"adept-iq/validators/length\", [\"exports\", \"ember-cp-validations/validators/length\"], function (_exports, _length) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _length.default;\n    }\n  });\n});","define(\"adept-iq/validators/messages\", [\"exports\", \"ember-cp-validations/validators/messages\"], function (_exports, _messages) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _messages.default;\n    }\n  });\n});","define(\"adept-iq/validators/number\", [\"exports\", \"ember-cp-validations/validators/number\"], function (_exports, _number) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _number.default;\n    }\n  });\n});","define(\"adept-iq/validators/presence\", [\"exports\", \"ember-cp-validations/validators/presence\"], function (_exports, _presence) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _presence.default;\n    }\n  });\n});","\n","define('adept-iq/config/environment', [], function() {\n  var prefix = 'adept-iq';\ntry {\n  var metaName = prefix + '/config/environment';\n  var rawConfig = document.querySelector('meta[name=\"' + metaName + '\"]').getAttribute('content');\n  var config = JSON.parse(decodeURIComponent(rawConfig));\n\n  var exports = { 'default': config };\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n}\ncatch(err) {\n  throw new Error('Could not read config from meta tag with name \"' + metaName + '\".');\n}\n\n});\n","\n          if (!runningTests) {\n            require(\"adept-iq/app\")[\"default\"].create({\"localFilteringEnabled\":true,\"paginationEnabled\":true,\"fullMode\":false,\"populatePhoneOnAccept\":false,\"name\":\"adept-iq\",\"version\":\"0.0.0+9d93c4a5\"});\n          }\n        \n"],"names":[],"mappings":"AAAA;AACA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9qBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACreA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChkCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1mFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;;ACDA;AACA;;ACDA;AACA;;ACDA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;;ACDA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9yBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvyBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;","file":"adept-iq.js"}