@databricks/design-system 2.0.4 → 2.0.5

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 (40) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/RHFControlledTypeaheadComboboxV2-DsH-nIEk.js +172 -0
  3. package/dist/RHFControlledTypeaheadComboboxV2-DsH-nIEk.js.map +1 -0
  4. package/dist/{WizardStepContentWrapper-8bs2FwRi.js → WizardStepContentWrapper-Bq1wm0V7.js} +554 -404
  5. package/dist/WizardStepContentWrapper-Bq1wm0V7.js.map +1 -0
  6. package/dist/index-BRAVZg-S.js +8308 -0
  7. package/dist/index-BRAVZg-S.js.map +1 -0
  8. package/dist/index-dark.css +364 -97
  9. package/dist/index-dark.mitigated.css +367 -100
  10. package/dist/index.css +684 -117
  11. package/dist/index.js +25 -8146
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.mitigated.css +688 -121
  14. package/dist/patterns.js +1 -1
  15. package/dist-types/design-system/Breadcrumb/Breadcrumb.d.ts +10 -3
  16. package/dist-types/design-system/Button/AntDButtonInternal.d.ts +21 -0
  17. package/dist-types/design-system/Button/Button.d.ts +3 -19
  18. package/dist-types/design-system/Button/NativeButton.d.ts +3 -0
  19. package/dist-types/design-system/Button/getBtnClassName.d.ts +17 -0
  20. package/dist-types/design-system/Button/index.d.ts +1 -0
  21. package/dist-types/design-system/DesignSystemProvider/DesignTokenScopeWithEmotionTheme.d.ts +4 -4
  22. package/dist-types/design-system/FormV2/RHFAdapters.d.ts +8 -0
  23. package/dist-types/design-system/FormV2/RHFControlledTypeaheadComboboxV2.d.ts +58 -0
  24. package/dist-types/design-system/Icon/Icon.d.ts +2 -2
  25. package/dist-types/design-system/Icon/__generated/icons/ColorMappingEditIcon.d.ts +4 -0
  26. package/dist-types/design-system/Icon/__generated/icons/ColorMappingIcon.d.ts +4 -0
  27. package/dist-types/design-system/Icon/__generated/icons/MicrophoneIcon.d.ts +4 -0
  28. package/dist-types/design-system/Icon/__generated/icons/MicrophoneOffIcon.d.ts +4 -0
  29. package/dist-types/design-system/Icon/__generated/icons/OperatorIcon.d.ts +4 -0
  30. package/dist-types/design-system/Icon/__generated/icons/VoiceModeIcon.d.ts +4 -0
  31. package/dist-types/design-system/Icon/__generated/icons/index.d.ts +6 -0
  32. package/dist-types/design-system/Overflow/Overflow.d.ts +3 -1
  33. package/dist-types/design-system/Overflow/OverflowPopover.d.ts +2 -1
  34. package/dist-types/design-system/TypeaheadComboboxV2/TypeaheadComboboxMenu.d.ts +2 -0
  35. package/dist-types/design-system/shape-tokens.d.ts +1 -1
  36. package/dist-types/test-utils/rtl/buttonVariants.d.ts +4 -4
  37. package/dist-types/~patterns/Wizard/WizardStepNavigation.d.ts +9 -0
  38. package/dist-types/~patterns/Wizard/index.d.ts +1 -0
  39. package/package.json +6 -4
  40. package/dist/WizardStepContentWrapper-8bs2FwRi.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.5 (2026-09-10T17:52:39Z)
4
+
5
+ ### Added
6
+
7
+ - `Overflow` / `OverflowPopover`: new optional `defaultOpen` prop to open the menu declaratively without user interaction
8
+ - `TypeaheadComboboxMenu`: new optional `offset` prop to control the menu's distance from its trigger
9
+ - New icons: `MicrophoneIcon`, `MicrophoneOffIcon`, `VoiceModeIcon`, `ColorMappingIcon`, `ColorMappingEditIcon`, `OperatorIcon`
10
+ - `RHFControlledComponents.TypeaheadComboboxV2` and `RHFControlledComponents.MultiSelectTypeaheadComboboxV2` — React Hook Form adapters for `TypeaheadComboboxV2`
11
+
12
+ ### Changed
13
+
14
+ - v2 CSS token palette names updated: `primary` → `accent`, `error` → `negative`, `warning` → `caution`, `success` → `positive`; density scale renamed from t-shirt sizes to numeric steps (`--db-space-1`, `--db-space-2`, …)
15
+ - `ShapeTokens.POPOVER_BORDER_RADIUS` renamed to `ShapeTokens.POPUP_BORDER_RADIUS`; all `--db-popover-*` CSS custom properties renamed to `--db-popup-*`
16
+ - `Breadcrumb`: `dangerouslySetAntdProps` narrowed to `{ separator?: React.ReactNode }`; removed unused props `itemRender`, `routes`, and `params`
17
+ - `Icon`: removed `dangerouslySetAntdProps` prop — all AntD icon props are already accepted directly on `IconProps`
18
+ - `DesignSystemThemeProvider` now merges `designTokenOverrides` from ancestor scopes rather than replacing them when nesting providers
19
+
20
+ ### Fixed
21
+
22
+ - `RadioTile` now correctly inherits `disabled` from a parent `Radio.Group`
23
+ - Native button corners were rendering as 0px radius because shape tokens were not loaded into the CSS cascade; this is now corrected
24
+ - `RHFTypeaheadComboboxV2` and `MultiSelectTypeaheadComboboxV2` prop types corrected to resolve React 18 type collisions, removing 5 `@ts-ignore` suppressions
25
+ - `DesignTokenScopeWithEmotionTheme` no longer re-emits unchanged color token overrides on every render, fixing a performance regression that caused excessive style recalculation in scoped-theme layouts
26
+
3
27
  ## 2.0.4 (2026-09-02T22:07:11Z)
4
28
 
5
29
  ### Added
@@ -0,0 +1,172 @@
1
+ import { jsxs, jsx } from '@emotion/react/jsx-runtime';
2
+ import React__default, { useRef, useCallback } from 'react';
3
+ import { useController } from 'react-hook-form';
4
+ import { u as useComboboxState, T as TypeaheadComboboxRoot, a as TypeaheadComboboxMultiSelectInput, b as TypeaheadComboboxMenu, c as TypeaheadComboboxInput } from './index-BRAVZg-S.js';
5
+ import './WizardStepContentWrapper-Bq1wm0V7.js';
6
+ import '@react-aria/listbox';
7
+ import 'classnames';
8
+ import '@emotion/react';
9
+ import 'lodash/isEqual';
10
+ import '@react-aria/button';
11
+ import '@react-aria/focus';
12
+ import 'antd';
13
+ import '@floating-ui/react';
14
+ import 'lodash/isUndefined';
15
+ import 'lodash/uniqueId';
16
+ import '@radix-ui/react-dialog';
17
+ import '@floating-ui/dom';
18
+ import 'react-dom';
19
+ import '@radix-ui/react-hover-card';
20
+ import '@radix-ui/react-toast';
21
+ import '@react-aria/combobox';
22
+ import '@react-aria/overlays';
23
+ import '@react-aria/utils';
24
+ import '@react-stately/combobox';
25
+ import '@react-aria/i18n';
26
+ import '@react-stately/collections';
27
+ import 'date-fns';
28
+ import '@radix-ui/react-popover';
29
+ import '@radix-ui/react-dropdown-menu';
30
+ import 'lodash/noop';
31
+ import 'lodash/pick';
32
+ import 'lodash/compact';
33
+ import '@emotion/unitless';
34
+ import 'chroma-js';
35
+ import 'lodash/memoize';
36
+ import 'lodash/endsWith';
37
+ import 'lodash/isBoolean';
38
+ import 'lodash/isNil';
39
+ import 'lodash/isNumber';
40
+ import 'lodash/isString';
41
+ import 'lodash/mapValues';
42
+ import '@radix-ui/react-accordion';
43
+ import '@radix-ui/react-tooltip-patch';
44
+ import 'lodash/kebabCase';
45
+ import '@ant-design/icons';
46
+ import 'lodash/random';
47
+ import 'lodash/times';
48
+ import '@radix-ui/react-context-menu';
49
+ import 'react-day-picker';
50
+ import 'tabbable';
51
+ import 'downshift';
52
+ import '@radix-ui/react-navigation-menu';
53
+ import '@radix-ui/react-radio-group';
54
+ import '@radix-ui/react-progress';
55
+ import 'react-resizable';
56
+ import '@radix-ui/react-slider';
57
+ import '@radix-ui/react-scroll-area';
58
+ import '@radix-ui/react-tabs';
59
+ import 'lodash/debounce';
60
+ import '@radix-ui/react-toggle';
61
+ import '@radix-ui/react-toolbar';
62
+
63
+ function RHFControlledTypeaheadComboboxV2({ name, control, rules, allItems, itemToString, matcher, getKey, allowNewValue, children, validationState, inputProps, menuProps, onInputChange, componentId, analyticsEvents, valueHasNoPii, preventUnsetOnBlur, ...props }) {
64
+ const { field } = useController({
65
+ name,
66
+ control,
67
+ rules
68
+ });
69
+ const comboboxState = useComboboxState({
70
+ allItems,
71
+ itemToString,
72
+ getKey,
73
+ matcher,
74
+ allowNewValue,
75
+ formValue: field.value,
76
+ formOnChange: field.onChange,
77
+ formOnBlur: field.onBlur,
78
+ componentId,
79
+ analyticsEvents,
80
+ valueHasNoPii,
81
+ // react-aria owns the input value; surface changes through the 'input' state event so the legacy
82
+ // `onInputChange` contract keeps working without making the input value a controlled prop.
83
+ onStateChange: onInputChange ? (change)=>{
84
+ if (change.type === 'input') {
85
+ onInputChange(change.inputValue);
86
+ }
87
+ } : undefined
88
+ });
89
+ return /*#__PURE__*/ jsxs(TypeaheadComboboxRoot, {
90
+ ...props,
91
+ comboboxState: comboboxState,
92
+ children: [
93
+ /*#__PURE__*/ jsx(TypeaheadComboboxInput, {
94
+ ...inputProps,
95
+ validationState: validationState,
96
+ ref: field.ref
97
+ }),
98
+ /*#__PURE__*/ jsx(TypeaheadComboboxMenu, {
99
+ ...menuProps,
100
+ children: children({
101
+ comboboxState
102
+ })
103
+ })
104
+ ]
105
+ });
106
+ }
107
+ function RHFControlledMultiSelectTypeaheadComboboxV2({ name, control, rules, allItems, itemToString, matcher, getKey, children, validationState, inputProps, menuProps, onInputChange, componentId, analyticsEvents, valueHasNoPii, ...props }) {
108
+ const { field } = useController({
109
+ name,
110
+ control,
111
+ rules
112
+ });
113
+ // The array field value IS the selection — drive it straight from RHF, no local mirror. `getKey`
114
+ // must be stable across renders (react-aria keys options by it) so memoize on field.value identity.
115
+ const selectedItems = React__default.useMemo(()=>field.value ?? [], [
116
+ field.value
117
+ ]);
118
+ const selectedItemsRef = useRef(selectedItems);
119
+ selectedItemsRef.current = selectedItems;
120
+ // The hook always calls this with a concrete array on a selection commit, but the setter type also
121
+ // permits an updater function — resolve it against the latest selection so both shapes are correct.
122
+ const setSelectedItems = useCallback((next)=>{
123
+ const resolved = typeof next === 'function' ? next(selectedItemsRef.current) : next;
124
+ field.onChange(resolved);
125
+ }, [
126
+ field
127
+ ]);
128
+ const comboboxState = useComboboxState({
129
+ allItems,
130
+ itemToString,
131
+ getKey,
132
+ matcher,
133
+ multiSelect: true,
134
+ // Multi-select drives the form through selectedItems/setSelectedItems (above), not the single-select
135
+ // form bridge: formValue/formOnChange/formOnBlur are single-value props, and passing the array field
136
+ // value as formValue would feed itemToString an array (breaking the input filter).
137
+ selectedItems,
138
+ setSelectedItems,
139
+ componentId,
140
+ analyticsEvents,
141
+ valueHasNoPii,
142
+ onStateChange: onInputChange ? (change)=>{
143
+ if (change.type === 'input') {
144
+ onInputChange(change.inputValue);
145
+ }
146
+ } : undefined
147
+ });
148
+ return /*#__PURE__*/ jsxs(TypeaheadComboboxRoot, {
149
+ ...props,
150
+ comboboxState: comboboxState,
151
+ children: [
152
+ /*#__PURE__*/ jsx(TypeaheadComboboxMultiSelectInput, {
153
+ ...inputProps,
154
+ selectedItems: selectedItems,
155
+ setSelectedItems: setSelectedItems,
156
+ getSelectedItemLabel: itemToString,
157
+ validationState: validationState,
158
+ ref: field.ref
159
+ }),
160
+ /*#__PURE__*/ jsx(TypeaheadComboboxMenu, {
161
+ ...menuProps,
162
+ children: children({
163
+ comboboxState,
164
+ selectedItems
165
+ })
166
+ })
167
+ ]
168
+ });
169
+ }
170
+
171
+ export { RHFControlledMultiSelectTypeaheadComboboxV2, RHFControlledTypeaheadComboboxV2 };
172
+ //# sourceMappingURL=RHFControlledTypeaheadComboboxV2-DsH-nIEk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RHFControlledTypeaheadComboboxV2-DsH-nIEk.js","sources":["../src/design-system/FormV2/RHFControlledTypeaheadComboboxV2.tsx"],"sourcesContent":["import type { Key } from '@react-types/shared';\nimport type { HTMLAttributes } from 'react';\nimport React, { useCallback, useRef } from 'react';\nimport type { Control, FieldPath, FieldValues, UseControllerProps } from 'react-hook-form';\nimport { useController } from 'react-hook-form';\n\nimport type { DesignSystemEventProviderAnalyticsEventTypes } from '../DesignSystemEventProvider';\nimport {\n TypeaheadComboboxInput as TypeaheadComboboxV2Input,\n TypeaheadComboboxMenu as TypeaheadComboboxV2Menu,\n TypeaheadComboboxMultiSelectInput as TypeaheadComboboxV2MultiSelectInput,\n TypeaheadComboboxRoot as TypeaheadComboboxV2Root,\n useComboboxState as useComboboxStateV2,\n} from '../TypeaheadComboboxV2';\nimport type { TypeaheadComboboxInputProps as TypeaheadComboboxV2InputProps } from '../TypeaheadComboboxV2/TypeaheadComboboxInput';\nimport type { TypeaheadComboboxMenuProps as TypeaheadComboboxV2MenuProps } from '../TypeaheadComboboxV2/TypeaheadComboboxMenu';\nimport type { TypeaheadComboboxMultiSelectInputProps as TypeaheadComboboxV2MultiSelectInputProps } from '../TypeaheadComboboxV2/TypeaheadComboboxMultiSelectInput';\nimport type { TypeaheadComboboxRootProps as TypeaheadComboboxV2RootProps } from '../TypeaheadComboboxV2/TypeaheadComboboxRoot';\nimport type { ComboboxStateValue } from '../TypeaheadComboboxV2/hooks/useComboboxState';\nimport type { AnalyticsEventValueChangeNoPiiFlagProps, ValidationState } from '../types';\n\n// This file holds the react-aria TypeaheadComboboxV2 RHF adapters, split out of RHFAdapters.tsx so the\n// (broadly imported) RHFControlledComponents barrel does not statically pull the react-aria combobox\n// subtree into the common chunk. RHFAdapters.tsx React.lazy-imports these, so the ~175KB subtree only\n// loads on pages that actually render a V2 typeahead.\n\n// These props are omitted, as `useController` handles them. (Mirrors RHFAdapters.tsx.)\ntype OmittedOriginalProps = 'name' | 'onChange' | 'onBlur' | 'value' | 'defaultValue' | 'checked';\n\nexport interface RHFControlledTypeaheadComboboxV2Props<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends\n Omit<\n TypeaheadComboboxV2RootProps<TFieldValues[TName]>,\n OmittedOriginalProps | 'comboboxState' | 'componentId' | 'children'\n >,\n UseControllerProps<TFieldValues, TName>,\n AnalyticsEventValueChangeNoPiiFlagProps<DesignSystemEventProviderAnalyticsEventTypes.OnValueChange> {\n control: Control<TFieldValues, any>;\n name: TName;\n // The react-aria hook owns filtering, so children render `comboboxState.filteredItems` rather than\n // receiving a consumer-maintained `items` list (the key API change from the legacy adapter).\n children: (renderProps: { comboboxState: ComboboxStateValue<Required<TFieldValues>[TName]> }) => React.ReactNode;\n validationState?: ValidationState;\n allItems: Required<TFieldValues>[TName][];\n itemToString: (item: Required<TFieldValues>[TName]) => string;\n matcher?: (item: Required<TFieldValues>[TName], query: string) => boolean;\n getKey?: (item: Required<TFieldValues>[TName]) => Key;\n /* Whether to allow the input value to not match any options in the list. For this to work, the item type (T) must be a string.\n * Defaults to false.\n */\n allowNewValue?: boolean;\n inputProps?: Partial<Omit<TypeaheadComboboxV2InputProps, 'componentId'>>;\n menuProps?: Partial<TypeaheadComboboxV2MenuProps>;\n onInputChange?: (inputValue: string) => void;\n /** @deprecated No-op under react-aria; accepted for source-compat while migrating off the legacy adapter. */\n preventUnsetOnBlur?: boolean;\n}\n\nexport function RHFControlledTypeaheadComboboxV2<\n TFieldValues extends FieldValues,\n TName extends FieldPath<TFieldValues>,\n>({\n name,\n control,\n rules,\n allItems,\n itemToString,\n matcher,\n getKey,\n allowNewValue,\n children,\n validationState,\n inputProps,\n menuProps,\n onInputChange,\n componentId,\n analyticsEvents,\n valueHasNoPii,\n preventUnsetOnBlur,\n ...props\n}: RHFControlledTypeaheadComboboxV2Props<TFieldValues, TName> &\n Omit<HTMLAttributes<HTMLDivElement>, 'children'>): JSX.Element {\n const { field } = useController<TFieldValues, TName>({\n name,\n control,\n rules,\n });\n\n const comboboxState = useComboboxStateV2({\n allItems,\n itemToString,\n getKey,\n matcher,\n allowNewValue,\n formValue: field.value,\n formOnChange: field.onChange,\n formOnBlur: field.onBlur,\n componentId,\n analyticsEvents,\n valueHasNoPii,\n preventUnsetOnBlur,\n // react-aria owns the input value; surface changes through the 'input' state event so the legacy\n // `onInputChange` contract keeps working without making the input value a controlled prop.\n onStateChange: onInputChange\n ? (change) => {\n if (change.type === 'input') {\n onInputChange(change.inputValue);\n }\n }\n : undefined,\n });\n\n return (\n <TypeaheadComboboxV2Root {...props} comboboxState={comboboxState}>\n <TypeaheadComboboxV2Input {...inputProps} validationState={validationState} ref={field.ref} />\n <TypeaheadComboboxV2Menu {...menuProps}>{children({ comboboxState })}</TypeaheadComboboxV2Menu>\n </TypeaheadComboboxV2Root>\n );\n}\n\nexport interface RHFControlledMultiSelectTypeaheadComboboxV2Props<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>\n extends\n Omit<\n TypeaheadComboboxV2RootProps<TFieldValues>,\n OmittedOriginalProps | 'comboboxState' | 'componentId' | 'children'\n >,\n UseControllerProps<TFieldValues, TName>,\n AnalyticsEventValueChangeNoPiiFlagProps<DesignSystemEventProviderAnalyticsEventTypes.OnValueChange> {\n control: Control<any, TFieldValues>;\n // Required override because the full array is the field value, but TName implies a scalar property.\n name: any;\n children: (renderProps: {\n comboboxState: ComboboxStateValue<TFieldValues>;\n selectedItems: TFieldValues[];\n }) => React.ReactNode;\n validationState?: ValidationState;\n allItems: TFieldValues[];\n itemToString: (item: TFieldValues) => string;\n matcher?: (item: TFieldValues, query: string) => boolean;\n getKey?: (item: TFieldValues) => Key;\n inputProps?: Partial<\n Omit<\n TypeaheadComboboxV2MultiSelectInputProps<TFieldValues>,\n 'selectedItems' | 'setSelectedItems' | 'getSelectedItemLabel'\n >\n >;\n menuProps?: Partial<TypeaheadComboboxV2MenuProps>;\n onInputChange?: (inputValue: string) => void;\n}\n\nexport function RHFControlledMultiSelectTypeaheadComboboxV2<TFieldValues extends FieldValues>({\n name,\n control,\n rules,\n allItems,\n itemToString,\n matcher,\n getKey,\n children,\n validationState,\n inputProps,\n menuProps,\n onInputChange,\n componentId,\n analyticsEvents,\n valueHasNoPii,\n ...props\n}: RHFControlledMultiSelectTypeaheadComboboxV2Props<TFieldValues> &\n Omit<HTMLAttributes<HTMLDivElement>, 'children'>): JSX.Element {\n const { field } = useController({\n name,\n control,\n rules,\n });\n\n // The array field value IS the selection — drive it straight from RHF, no local mirror. `getKey`\n // must be stable across renders (react-aria keys options by it) so memoize on field.value identity.\n const selectedItems = React.useMemo<TFieldValues[]>(() => field.value ?? [], [field.value]);\n const selectedItemsRef = useRef(selectedItems);\n selectedItemsRef.current = selectedItems;\n\n // The hook always calls this with a concrete array on a selection commit, but the setter type also\n // permits an updater function — resolve it against the latest selection so both shapes are correct.\n const setSelectedItems = useCallback<React.Dispatch<React.SetStateAction<TFieldValues[]>>>(\n (next) => {\n const resolved = typeof next === 'function' ? next(selectedItemsRef.current) : next;\n field.onChange(resolved);\n },\n [field],\n );\n\n const comboboxState = useComboboxStateV2<TFieldValues>({\n allItems,\n itemToString,\n getKey,\n matcher,\n multiSelect: true,\n // Multi-select drives the form through selectedItems/setSelectedItems (above), not the single-select\n // form bridge: formValue/formOnChange/formOnBlur are single-value props, and passing the array field\n // value as formValue would feed itemToString an array (breaking the input filter).\n selectedItems,\n setSelectedItems,\n componentId,\n analyticsEvents,\n valueHasNoPii,\n onStateChange: onInputChange\n ? (change) => {\n if (change.type === 'input') {\n onInputChange(change.inputValue);\n }\n }\n : undefined,\n });\n\n return (\n <TypeaheadComboboxV2Root {...props} comboboxState={comboboxState}>\n <TypeaheadComboboxV2MultiSelectInput\n {...inputProps}\n selectedItems={selectedItems}\n setSelectedItems={setSelectedItems}\n getSelectedItemLabel={itemToString}\n validationState={validationState}\n ref={field.ref}\n />\n <TypeaheadComboboxV2Menu {...menuProps}>\n {children({\n comboboxState,\n selectedItems,\n })}\n </TypeaheadComboboxV2Menu>\n </TypeaheadComboboxV2Root>\n );\n}\n"],"names":["RHFControlledTypeaheadComboboxV2","name","control","rules","allItems","itemToString","matcher","getKey","allowNewValue","children","validationState","inputProps","menuProps","onInputChange","componentId","analyticsEvents","valueHasNoPii","preventUnsetOnBlur","props","field","useController","comboboxState","useComboboxStateV2","formValue","value","formOnChange","onChange","formOnBlur","onBlur","onStateChange","change","type","inputValue","undefined","_jsxs","TypeaheadComboboxV2Root","_jsx","TypeaheadComboboxV2Input","ref","TypeaheadComboboxV2Menu","RHFControlledMultiSelectTypeaheadComboboxV2","selectedItems","React","useMemo","selectedItemsRef","useRef","current","setSelectedItems","useCallback","next","resolved","multiSelect","TypeaheadComboboxV2MultiSelectInput","getSelectedItemLabel"],"mappings":"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"}