@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1780400156 → 5.0.0-next.3-dev.1780406485

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/calendar/_calendar.global.scss +25 -26
  2. package/calendar/calendar/calendar.component.js +1 -1
  3. package/calendar/calendar-day/calendar-day.component.js +1 -1
  4. package/calendar/calendar-month/calendar-month.component.js +1 -1
  5. package/calendar/calendar-year/calendar-year.component.js +1 -1
  6. package/calendar/common/calendar-cell-base-element.js +1 -1
  7. package/calendar-cell-base-element-DHCKK3bU.js +23 -0
  8. package/{calendar-day.component-Caf2w9lS.js → calendar-day.component-DrMWf6-w.js} +2 -2
  9. package/calendar.component-BM4L9oyb.js +987 -0
  10. package/calendar.js +3 -3
  11. package/calendar.pure.js +3 -3
  12. package/core/i18n/i18n.js +4 -4
  13. package/core/styles/_theme.scss +1 -0
  14. package/custom-elements.json +401 -233
  15. package/datepicker/datepicker/datepicker.component.js +45 -27
  16. package/development/calendar/calendar/calendar.component.d.ts +27 -42
  17. package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
  18. package/development/calendar/calendar/calendar.component.js +1 -1
  19. package/development/calendar/calendar-day/calendar-day.component.js +1 -1
  20. package/development/calendar/calendar-month/calendar-month.component.js +2 -2
  21. package/development/calendar/calendar-year/calendar-year.component.js +2 -2
  22. package/development/calendar/common/calendar-cell-base-element.js +1 -1
  23. package/development/calendar-cell-base-element-D9XadTz1.js +38 -0
  24. package/development/calendar-day.component-Zky9Z-Fq.js +139 -0
  25. package/development/calendar.component-C_Yc2PNV.js +1367 -0
  26. package/development/calendar.js +3 -3
  27. package/development/calendar.pure.js +3 -3
  28. package/development/core/decorators/id-reference.d.ts.map +1 -1
  29. package/development/core/decorators/id-reference.js +1 -1
  30. package/development/core/i18n/i18n.js +5 -5
  31. package/development/datepicker/datepicker/datepicker.component.d.ts +2 -0
  32. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  33. package/development/datepicker/datepicker/datepicker.component.js +37 -11
  34. package/lean-off-brand-theme.css +14 -22
  35. package/lean-safety-theme.css +14 -22
  36. package/lean-theme.css +14 -22
  37. package/off-brand-theme.css +14 -22
  38. package/package.json +2 -2
  39. package/safety-theme.css +14 -22
  40. package/standard-theme.css +14 -22
  41. package/calendar-cell-base-element-Dq7Ap5n-.js +0 -23
  42. package/calendar.component-DKKptbyy.js +0 -1082
  43. package/development/calendar-cell-base-element-D_CTwDn9.js +0 -38
  44. package/development/calendar-day.component-Bux4ezpg.js +0 -139
  45. package/development/calendar.component-NvMN01yi.js +0 -1478
@@ -0,0 +1,139 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { html, unsafeCSS } from "lit";
3
+ import { property, state } from "lit/decorators.js";
4
+ import { SbbCalendarCellBaseElement } from "./calendar/common/calendar-cell-base-element.js";
5
+ //#region src/elements/calendar/calendar-day/calendar-day.scss?inline
6
+ var calendar_day_default = ".sbb-calendar-day {\n justify-content: var(--sbb-calendar-day-justify-content);\n}\n\n.sbb-calendar-day__value {\n display: flex;\n height: var(--sbb-calendar-day-value-height);\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.sbb-calendar-day__extra {\n display: var(--sbb-calendar-day-extra-display);\n height: var(--sbb-calendar-day-extra-height);\n}\n\n::slotted(*) {\n height: var(--sbb-calendar-day-extra-height);\n}";
7
+ //#endregion
8
+ //#region src/elements/calendar/calendar-day/calendar-day.component.ts
9
+ /**
10
+ * It displays a single day cell in the `sbb-calendar` component.
11
+ *
12
+ * @slot - Use the unnamed slot to add some custom content to the day.
13
+ */
14
+ var SbbCalendarDayElement = (() => {
15
+ let _classSuper = SbbCalendarCellBaseElement;
16
+ let _instanceExtraInitializers = [];
17
+ let _set_slot_decorators;
18
+ let _set_value_decorators;
19
+ return class SbbCalendarDayElement extends _classSuper {
20
+ constructor() {
21
+ super(...arguments);
22
+ this._value = (__runInitializers(this, _instanceExtraInitializers), null);
23
+ }
24
+ static {
25
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
26
+ _set_slot_decorators = [property()];
27
+ _set_value_decorators = [state()];
28
+ __esDecorate(this, null, _set_slot_decorators, {
29
+ kind: "setter",
30
+ name: "slot",
31
+ static: false,
32
+ private: false,
33
+ access: {
34
+ has: (obj) => "slot" in obj,
35
+ set: (obj, value) => {
36
+ obj.slot = value;
37
+ }
38
+ },
39
+ metadata: _metadata
40
+ }, null, _instanceExtraInitializers);
41
+ __esDecorate(this, null, _set_value_decorators, {
42
+ kind: "setter",
43
+ name: "value",
44
+ static: false,
45
+ private: false,
46
+ access: {
47
+ has: (obj) => "value" in obj,
48
+ set: (obj, value) => {
49
+ obj.value = value;
50
+ }
51
+ },
52
+ metadata: _metadata
53
+ }, null, _instanceExtraInitializers);
54
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
55
+ enumerable: true,
56
+ configurable: true,
57
+ writable: true,
58
+ value: _metadata
59
+ });
60
+ }
61
+ static {
62
+ this.elementName = "sbb-calendar-day";
63
+ }
64
+ static {
65
+ this.styles = [unsafeCSS(calendar_day_default)];
66
+ }
67
+ set slot(value) {
68
+ super.slot = value;
69
+ this.value = this.dateAdapter.deserialize(value);
70
+ }
71
+ get slot() {
72
+ return super.slot;
73
+ }
74
+ /** Value of the calendar-day element. */
75
+ set value(value) {
76
+ const date = this.dateAdapter.getValidDateOrNull(this.dateAdapter.deserialize(value));
77
+ if (date) {
78
+ this._value = date;
79
+ const isToday = this.dateAdapter.sameDate(date, this.dateAdapter.today());
80
+ this.toggleState("current", isToday);
81
+ this.internals.ariaCurrent = isToday ? "date" : null;
82
+ this.internals.ariaLabel = this.dateAdapter.getAccessibilityFormatDate(date);
83
+ const parent = this.getParent();
84
+ if (parent) {
85
+ this.setDisabledFilteredState(parent);
86
+ this.setSelectedState(parent);
87
+ }
88
+ }
89
+ }
90
+ get value() {
91
+ return this._value;
92
+ }
93
+ connectedCallback() {
94
+ super.connectedCallback();
95
+ this.tabIndex = -1;
96
+ }
97
+ /**
98
+ * The component is used as the default day cell within the `sbb-calendar`,
99
+ * or, if extra content is needed, it can be slotted.
100
+ */
101
+ getParent() {
102
+ return this.closest?.("sbb-calendar") ?? this.getRootNode?.()?.host?.closest("sbb-calendar");
103
+ }
104
+ setSelectedState(parent) {
105
+ const selected = parent.multiple ? parent.value.some((selDay) => this.dateAdapter.sameDate(this.value, selDay)) : !!parent.value && this.dateAdapter.compareDate(this.value, parent.value) === 0;
106
+ this.toggleState("selected", selected);
107
+ this.internals.ariaPressed = String(selected);
108
+ }
109
+ setDisabledFilteredState(parent) {
110
+ const isFilteredOut = !this._isActiveDate(parent.dateFilter);
111
+ const isOutOfRange = !this._isDayInRange(parent.min, parent.max);
112
+ this.disabled = isFilteredOut || isOutOfRange;
113
+ this.internals.ariaDisabled = String(this.disabled);
114
+ this.toggleState("crossed-out", isFilteredOut && !isOutOfRange);
115
+ }
116
+ _isActiveDate(dateFilter) {
117
+ return dateFilter?.(this.value) ?? true;
118
+ }
119
+ _isDayInRange(min, max) {
120
+ if (!min && !max) return true;
121
+ return this.dateAdapter.sameDate(this.value, this.dateAdapter.clampDate(this.value, min, max));
122
+ }
123
+ _handleSlotchange(e) {
124
+ this.internals.ariaDescribedByElements = e.target.assignedElements();
125
+ }
126
+ renderTemplate() {
127
+ return html` <span class="sbb-calendar-day__value" aria-hidden="true">
128
+ ${this.dateAdapter.getDate(this.value)}
129
+ </span>
130
+ <span class="sbb-calendar-day__extra">
131
+ <slot @slotchange=${(event) => this._handleSlotchange(event)}></slot>
132
+ </span>`;
133
+ }
134
+ };
135
+ })();
136
+ //#endregion
137
+ export { SbbCalendarDayElement as t };
138
+
139
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZGF5LmNvbXBvbmVudC1aa3k5Wi1GcS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY2FsZW5kYXIvY2FsZW5kYXItZGF5L2NhbGVuZGFyLWRheS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jYWxlbmRhci9jYWxlbmRhci1kYXkvY2FsZW5kYXItZGF5LmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG4uc2JiLWNhbGVuZGFyLWRheSB7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tc2JiLWNhbGVuZGFyLWRheS1qdXN0aWZ5LWNvbnRlbnQpO1xufVxuXG4uc2JiLWNhbGVuZGFyLWRheV9fdmFsdWUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IHZhcigtLXNiYi1jYWxlbmRhci1kYXktdmFsdWUtaGVpZ2h0KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNiYi1jYWxlbmRhci1kYXlfX2V4dHJhIHtcbiAgZGlzcGxheTogdmFyKC0tc2JiLWNhbGVuZGFyLWRheS1leHRyYS1kaXNwbGF5KTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItY2FsZW5kYXItZGF5LWV4dHJhLWhlaWdodCk7XG59XG5cbjo6c2xvdHRlZCgqKSB7XG4gIGhlaWdodDogdmFyKC0tc2JiLWNhbGVuZGFyLWRheS1leHRyYS1oZWlnaHQpO1xufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJDYWxlbmRhckVsZW1lbnQgfSBmcm9tICcuLi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgU2JiQ2FsZW5kYXJDZWxsQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9jb21tb24vY2FsZW5kYXItY2VsbC1iYXNlLWVsZW1lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9jYWxlbmRhci1kYXkuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgc2luZ2xlIGRheSBjZWxsIGluIHRoZSBgc2JiLWNhbGVuZGFyYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgc29tZSBjdXN0b20gY29udGVudCB0byB0aGUgZGF5LlxuICovXG5leHBvcnQgY2xhc3MgU2JiQ2FsZW5kYXJEYXlFbGVtZW50PFQgPSBEYXRlPiBleHRlbmRzIFNiYkNhbGVuZGFyQ2VsbEJhc2VFbGVtZW50PFQ+IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1jYWxlbmRhci1kYXknO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIG92ZXJyaWRlIHNldCBzbG90KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBzdXBlci5zbG90ID0gdmFsdWU7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgc2xvdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXBlci5zbG90O1xuICB9XG5cbiAgLyoqIFZhbHVlIG9mIHRoZSBjYWxlbmRhci1kYXkgZWxlbWVudC4gKi9cbiAgQHN0YXRlKClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCB8IG51bGwpIHtcbiAgICBjb25zdCBkYXRlID0gdGhpcy5kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5kYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xuICAgIGlmIChkYXRlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IGRhdGU7XG4gICAgICBjb25zdCBpc1RvZGF5ID0gdGhpcy5kYXRlQWRhcHRlci5zYW1lRGF0ZShkYXRlLCB0aGlzLmRhdGVBZGFwdGVyLnRvZGF5KCkpO1xuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnY3VycmVudCcsIGlzVG9kYXkpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYUN1cnJlbnQgPSBpc1RvZGF5ID8gJ2RhdGUnIDogbnVsbDtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFMYWJlbCA9IHRoaXMuZGF0ZUFkYXB0ZXIuZ2V0QWNjZXNzaWJpbGl0eUZvcm1hdERhdGUoZGF0ZSk7XG4gICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmdldFBhcmVudCgpO1xuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICB0aGlzLnNldERpc2FibGVkRmlsdGVyZWRTdGF0ZShwYXJlbnQpO1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkU3RhdGUocGFyZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy50YWJJbmRleCA9IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb21wb25lbnQgaXMgdXNlZCBhcyB0aGUgZGVmYXVsdCBkYXkgY2VsbCB3aXRoaW4gdGhlIGBzYmItY2FsZW5kYXJgLFxuICAgKiBvciwgaWYgZXh0cmEgY29udGVudCBpcyBuZWVkZWQsIGl0IGNhbiBiZSBzbG90dGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldFBhcmVudCgpOiBTYmJDYWxlbmRhckVsZW1lbnQ8VD4gfCBudWxsIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jbG9zZXN0Py48U2JiQ2FsZW5kYXJFbGVtZW50PFQ+Pignc2JiLWNhbGVuZGFyJykgPz9cbiAgICAgICh0aGlzLmdldFJvb3ROb2RlPy4oKSBhcyBTaGFkb3dSb290KT8uaG9zdD8uY2xvc2VzdDxTYmJDYWxlbmRhckVsZW1lbnQ8VD4+KCdzYmItY2FsZW5kYXInKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0U2VsZWN0ZWRTdGF0ZShwYXJlbnQ6IFNiYkNhbGVuZGFyRWxlbWVudDxUPik6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gcGFyZW50Lm11bHRpcGxlXG4gICAgICA/IChwYXJlbnQudmFsdWUgYXMgRGF0ZVtdKS5zb21lKChzZWxEYXkpID0+IHRoaXMuZGF0ZUFkYXB0ZXIuc2FtZURhdGUodGhpcy52YWx1ZSwgc2VsRGF5KSlcbiAgICAgIDogISFwYXJlbnQudmFsdWUgJiYgdGhpcy5kYXRlQWRhcHRlci5jb21wYXJlRGF0ZSh0aGlzLnZhbHVlLCBwYXJlbnQudmFsdWUpID09PSAwO1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ3NlbGVjdGVkJywgc2VsZWN0ZWQpO1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFQcmVzc2VkID0gU3RyaW5nKHNlbGVjdGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXREaXNhYmxlZEZpbHRlcmVkU3RhdGUocGFyZW50OiBTYmJDYWxlbmRhckVsZW1lbnQ8VD4pOiB2b2lkIHtcbiAgICBjb25zdCBpc0ZpbHRlcmVkT3V0ID0gIXRoaXMuX2lzQWN0aXZlRGF0ZShwYXJlbnQuZGF0ZUZpbHRlcik7XG4gICAgY29uc3QgaXNPdXRPZlJhbmdlID0gIXRoaXMuX2lzRGF5SW5SYW5nZShwYXJlbnQubWluLCBwYXJlbnQubWF4KTtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNGaWx0ZXJlZE91dCB8fCBpc091dE9mUmFuZ2U7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gU3RyaW5nKHRoaXMuZGlzYWJsZWQpO1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2Nyb3NzZWQtb3V0JywgaXNGaWx0ZXJlZE91dCAmJiAhaXNPdXRPZlJhbmdlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQWN0aXZlRGF0ZShkYXRlRmlsdGVyOiAoKGRhdGU6IFQgfCBudWxsKSA9PiBib29sZWFuKSB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZUZpbHRlcj8uKHRoaXMudmFsdWUpID8/IHRydWU7XG4gIH1cblxuICBwcml2YXRlIF9pc0RheUluUmFuZ2UobWluOiBUIHwgbnVsbCwgbWF4OiBUIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmICghbWluICYmICFtYXgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5kYXRlQWRhcHRlci5zYW1lRGF0ZSh0aGlzLnZhbHVlLCB0aGlzLmRhdGVBZGFwdGVyLmNsYW1wRGF0ZSh0aGlzLnZhbHVlLCBtaW4sIG1heCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZShlOiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEZXNjcmliZWRCeUVsZW1lbnRzID0gKGUudGFyZ2V0IGFzIEhUTUxTbG90RWxlbWVudCkuYXNzaWduZWRFbGVtZW50cygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGAgPHNwYW4gY2xhc3M9XCJzYmItY2FsZW5kYXItZGF5X192YWx1ZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAke3RoaXMuZGF0ZUFkYXB0ZXIuZ2V0RGF0ZSh0aGlzLnZhbHVlKX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWNhbGVuZGFyLWRheV9fZXh0cmFcIj5cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLl9oYW5kbGVTbG90Y2hhbmdlKGV2ZW50KX0+PC9zbG90PlxuICAgICAgPC9zcGFuPmA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1jYWxlbmRhci1kYXknOiBTYmJDYWxlbmRhckRheUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQ2FhLCtCQUFxQjttQkFBbUI7Ozs7Y0FBeEMsOEJBQXdDLFlBQTZCOzs7R0FpQ3hFLEtBQUEsVUFqQ0csa0JBQUEsTUFBQSwwQkFBQSxHQWlDZ0I7RUF5RDdCOzs7MkJBdEZHLFNBQVEsQ0FBRTs0QkFVVixNQUFLLENBQUU7R0FUUixhQUFBLE1BQUEsTUFBQSxzQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFVBQUE7S0FBQSxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQW9CLE9BQUk7S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsTUFBQSwwQkFBQTtHQVV4QixhQUFBLE1BQUEsTUFBQSx1QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFdBQUE7S0FBQSxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQVcsUUFBSztLQUFBO0lBQUE7SUFBQSxVQUFBO0dBQUEsR0FBQSxNQUFBLDBCQUFBOzs7Ozs7Ozs7R0FkZ0IsS0FBQSxjQUFzQjtFQUFtQjs7R0FDbEQsS0FBQSxTQUF5QixDQUFDLFVBQVUsb0JBQUssQ0FBQztFQUFFO0VBR25FLElBQW9CLEtBQUssT0FBYTtHQUNwQyxNQUFNLE9BQU87R0FDYixLQUFLLFFBQVEsS0FBSyxZQUFZLFlBQVksS0FBSztFQUNqRDtFQUNBLElBQW9CLE9BQUk7R0FDdEIsT0FBTyxNQUFNO0VBQ2Y7O0VBSUEsSUFBVyxNQUFNLE9BQWU7R0FDOUIsTUFBTSxPQUFPLEtBQUssWUFBWSxtQkFBbUIsS0FBSyxZQUFZLFlBQVksS0FBSyxDQUFDO0dBQ3BGLElBQUksTUFBTTtJQUNSLEtBQUssU0FBUztJQUNkLE1BQU0sVUFBVSxLQUFLLFlBQVksU0FBUyxNQUFNLEtBQUssWUFBWSxNQUFLLENBQUU7SUFDeEUsS0FBSyxZQUFZLFdBQVcsT0FBTztJQUNuQyxLQUFLLFVBQVUsY0FBYyxVQUFVLFNBQVM7SUFDaEQsS0FBSyxVQUFVLFlBQVksS0FBSyxZQUFZLDJCQUEyQixJQUFJO0lBQzNFLE1BQU0sU0FBUyxLQUFLLFVBQVM7SUFDN0IsSUFBSSxRQUFRO0tBQ1YsS0FBSyx5QkFBeUIsTUFBTTtLQUNwQyxLQUFLLGlCQUFpQixNQUFNO0lBQzlCO0dBQ0Y7RUFDRjtFQUNBLElBQVcsUUFBSztHQUNkLE9BQU8sS0FBSztFQUNkO0VBR2dCLG9CQUFpQjtHQUMvQixNQUFNLGtCQUFpQjtHQUN2QixLQUFLLFdBQVc7RUFDbEI7Ozs7O0VBTW1CLFlBQVM7R0FDMUIsT0FDRSxLQUFLLFVBQWlDLGNBQWMsS0FDbkQsS0FBSyxjQUFhLEdBQW1CLE1BQU0sUUFBK0IsY0FBYztFQUU3RjtFQUVVLGlCQUFpQixRQUE2QjtHQUN0RCxNQUFNLFdBQVcsT0FBTyxXQUNuQixPQUFPLE1BQWlCLE1BQU0sV0FBVyxLQUFLLFlBQVksU0FBUyxLQUFLLE9BQU8sTUFBTSxDQUFDLElBQ3ZGLENBQUMsQ0FBQyxPQUFPLFNBQVMsS0FBSyxZQUFZLFlBQVksS0FBSyxPQUFPLE9BQU8sS0FBSyxNQUFNO0dBQ2pGLEtBQUssWUFBWSxZQUFZLFFBQVE7R0FDckMsS0FBSyxVQUFVLGNBQWMsT0FBTyxRQUFRO0VBQzlDO0VBRVUseUJBQXlCLFFBQTZCO0dBQzlELE1BQU0sZ0JBQWdCLENBQUMsS0FBSyxjQUFjLE9BQU8sVUFBVTtHQUMzRCxNQUFNLGVBQWUsQ0FBQyxLQUFLLGNBQWMsT0FBTyxLQUFLLE9BQU8sR0FBRztHQUMvRCxLQUFLLFdBQVcsaUJBQWlCO0dBQ2pDLEtBQUssVUFBVSxlQUFlLE9BQU8sS0FBSyxRQUFRO0dBQ2xELEtBQUssWUFBWSxlQUFlLGlCQUFpQixDQUFDLFlBQVk7RUFDaEU7RUFFUSxjQUFjLFlBQWdEO0dBQ3BFLE9BQU8sYUFBYSxLQUFLLEtBQUssS0FBSztFQUNyQztFQUVRLGNBQWMsS0FBZSxLQUFhO0dBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsS0FDWCxPQUFPO0dBRVQsT0FBTyxLQUFLLFlBQVksU0FBUyxLQUFLLE9BQU8sS0FBSyxZQUFZLFVBQVUsS0FBSyxPQUFPLEtBQUssR0FBRyxDQUFDO0VBQy9GO0VBRVEsa0JBQWtCLEdBQVE7R0FDaEMsS0FBSyxVQUFVLDBCQUEyQixFQUFFLE9BQTJCLGlCQUFnQjtFQUN6RjtFQUVtQixpQkFBYztHQUMvQixPQUFPLElBQUk7VUFDTCxLQUFLLFlBQVksUUFBUSxLQUFLLEtBQUssRUFBQTs7OzZCQUdoQixVQUFpQixLQUFLLGtCQUFrQixLQUFLLEVBQUM7O0VBRXpFIn0=