@dreamcommerce/aurora 3.1.7 → 3.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.js +5 -3
- package/build/cjs/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_drag_over_placeholder.js +5 -3
- package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_drag_over_placeholder.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_input.js +6 -10
- package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_input.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_preview_container.js +3 -9
- package/build/cjs/packages/aurora/src/components/image_picker/components/image_picker_preview_container.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/image_picker/image_picker.js +22 -15
- package/build/cjs/packages/aurora/src/components/image_picker/image_picker.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/image_picker/image_picker_delete_button.js +5 -1
- package/build/cjs/packages/aurora/src/components/image_picker/image_picker_delete_button.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/image_picker/use_image_picker.js +17 -11
- package/build/cjs/packages/aurora/src/components/image_picker/use_image_picker.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.js +14 -5
- package/build/cjs/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.js.map +1 -1
- package/build/esm/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.d.ts +1 -1
- package/build/esm/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.js +6 -4
- package/build/esm/packages/aurora/src/components/controls/xhr_image_picker_control/xhr_image_picker_control.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_drag_over_placeholder.d.ts +5 -1
- package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_drag_over_placeholder.js +5 -3
- package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_drag_over_placeholder.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_input.d.ts +1 -3
- package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_input.js +6 -10
- package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_input.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_preview_container.js +3 -9
- package/build/esm/packages/aurora/src/components/image_picker/components/image_picker_preview_container.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/image_picker.d.ts +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/image_picker.js +23 -16
- package/build/esm/packages/aurora/src/components/image_picker/image_picker.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/image_picker_delete_button.js +5 -1
- package/build/esm/packages/aurora/src/components/image_picker/image_picker_delete_button.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/image_picker_types.d.ts +3 -9
- package/build/esm/packages/aurora/src/components/image_picker/use_image_picker.js +17 -11
- package/build/esm/packages/aurora/src/components/image_picker/use_image_picker.js.map +1 -1
- package/build/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.d.ts +1 -1
- package/build/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.js +15 -6
- package/build/esm/packages/aurora/src/components/xhr_image_picker/xhr_image_picker.js.map +1 -1
- package/build/index.css +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,11 @@ var ImagePickerDeleteButton = function ImagePickerDeleteButton(_ref) {
|
|
|
10
10
|
t = _useTranslation2[0];
|
|
11
11
|
return /*#__PURE__*/React.createElement("button", {
|
|
12
12
|
"data-test-id": "image-picker-remove-button",
|
|
13
|
-
onClick:
|
|
13
|
+
onClick: function onClick(e) {
|
|
14
|
+
e.stopPropagation();
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
onFileDelete();
|
|
17
|
+
},
|
|
14
18
|
className: "aurora-flex aurora-items-center aurora-gap-1 aurora-border aurora-border-danger aurora-rounded-full aurora-px-3 aurora-py-[6px]",
|
|
15
19
|
type: "button"
|
|
16
20
|
}, /*#__PURE__*/React.createElement(DeleteBinLineIcon, {
|
package/build/esm/packages/aurora/src/components/image_picker/image_picker_delete_button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,iEAAqE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,iEAAqE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -27,16 +27,10 @@ export interface IImagePicker {
|
|
|
27
27
|
}
|
|
28
28
|
export interface IImagePickerInput {
|
|
29
29
|
id: string;
|
|
30
|
-
onDropFile: (event: React.DragEvent<HTMLLabelElement>) => void;
|
|
31
|
-
onDragOver: (event: React.DragEvent<HTMLLabelElement>) => void;
|
|
32
|
-
onDragLeave: (event: React.DragEvent<HTMLLabelElement>) => void;
|
|
33
30
|
allowedExtensions: TImagePickerExtension[];
|
|
34
31
|
isDragOver: boolean;
|
|
35
32
|
}
|
|
36
33
|
export interface IImagePickerPreviewContainer {
|
|
37
|
-
onDropFile: (event: React.DragEvent<HTMLLabelElement>) => void;
|
|
38
|
-
onDragOver: (event: React.DragEvent<HTMLLabelElement>) => void;
|
|
39
|
-
onDragLeave: (event: React.DragEvent<HTMLLabelElement>) => void;
|
|
40
34
|
children: ReactNode;
|
|
41
35
|
classname: string;
|
|
42
36
|
}
|
|
@@ -45,9 +39,9 @@ export declare type TImageSize = {
|
|
|
45
39
|
height: number;
|
|
46
40
|
};
|
|
47
41
|
export interface IUseImagePicker {
|
|
48
|
-
onDropFile: (event: React.DragEvent<
|
|
49
|
-
onDragOver: (event: React.DragEvent<
|
|
50
|
-
onDragLeave: (event: React.DragEvent<
|
|
42
|
+
onDropFile: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
43
|
+
onDragOver: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
44
|
+
onDragLeave: (event: React.DragEvent<HTMLDivElement>) => void;
|
|
51
45
|
onFileChange: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
52
46
|
onFileDelete: () => void;
|
|
53
47
|
onPreviewError: () => void;
|
|
@@ -23,6 +23,7 @@ var useImagePicker = function useImagePicker(_ref) {
|
|
|
23
23
|
isPreview = _useState6[0],
|
|
24
24
|
setPreview = _useState6[1];
|
|
25
25
|
var reader = useRef(new FileReader());
|
|
26
|
+
var dragTimeoutRef = useRef(null);
|
|
26
27
|
useEffect(function () {
|
|
27
28
|
reader.current.result && getDataUrlFromFile(reader.current.result);
|
|
28
29
|
reader.current.addEventListener('load', function () {
|
|
@@ -41,10 +42,11 @@ var useImagePicker = function useImagePicker(_ref) {
|
|
|
41
42
|
onError === null || onError === void 0 ? void 0 : onError([]);
|
|
42
43
|
event.stopPropagation();
|
|
43
44
|
event.preventDefault();
|
|
45
|
+
setDragOver(false);
|
|
44
46
|
var files = event.dataTransfer.files;
|
|
45
47
|
if (!files.length) return;
|
|
46
|
-
validateFileExtension(allowedExtensions, files[0].type);
|
|
47
|
-
|
|
48
|
+
var isValid = validateFileExtension(allowedExtensions, files[0].type);
|
|
49
|
+
if (!isValid) return;
|
|
48
50
|
updateFile(files);
|
|
49
51
|
};
|
|
50
52
|
var validateFileExtension = function validateFileExtension(allowedExtensions, mimeType) {
|
|
@@ -52,11 +54,9 @@ var useImagePicker = function useImagePicker(_ref) {
|
|
|
52
54
|
var isValid = allowedExtensions.reduce(function (acc, extension) {
|
|
53
55
|
return acc ? acc : MIME_TYPE_TO_FILE_EXTENSIONS[mimeType] === extension;
|
|
54
56
|
}, false);
|
|
55
|
-
if (isValid) {
|
|
56
|
-
|
|
57
|
+
if (!isValid) {
|
|
58
|
+
onError === null || onError === void 0 ? void 0 : onError([i18n.t(IMAGE_PICKER_ERROR.invalidFileFormat)]);
|
|
57
59
|
}
|
|
58
|
-
var newErrors = [i18n.t(IMAGE_PICKER_ERROR.invalidFileFormat)];
|
|
59
|
-
onError === null || onError === void 0 ? void 0 : onError(newErrors);
|
|
60
60
|
return isValid;
|
|
61
61
|
};
|
|
62
62
|
var onFileChange = function onFileChange(event) {
|
|
@@ -93,15 +93,21 @@ var useImagePicker = function useImagePicker(_ref) {
|
|
|
93
93
|
});
|
|
94
94
|
};
|
|
95
95
|
var onDragOver = function onDragOver(event) {
|
|
96
|
+
var dt = event.dataTransfer;
|
|
97
|
+
if (!dt.types || !(dt.types.indexOf ? dt.types.indexOf('Files') != -1 : dt.types.includes('Files'))) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
96
100
|
event.stopPropagation();
|
|
97
101
|
event.preventDefault();
|
|
98
102
|
event.dataTransfer.dropEffect = 'copy';
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
103
|
+
setDragOver(true);
|
|
104
|
+
dragTimeoutRef.current && window.clearTimeout(dragTimeoutRef.current);
|
|
102
105
|
};
|
|
103
|
-
var onDragLeave = function onDragLeave() {
|
|
104
|
-
|
|
106
|
+
var onDragLeave = function onDragLeave(event) {
|
|
107
|
+
dragTimeoutRef.current = setTimeout(function () {
|
|
108
|
+
setDragOver(false);
|
|
109
|
+
dragTimeoutRef.current = null;
|
|
110
|
+
}, 25);
|
|
105
111
|
};
|
|
106
112
|
var onFileDelete = function onFileDelete() {
|
|
107
113
|
inputRef.current.value = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { IXhrImagePickerProps } from './xhr_image_picker_types';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
export declare const XhrImagePicker: React.
|
|
3
|
+
export declare const XhrImagePicker: React.ForwardRefExoticComponent<IXhrImagePickerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useRef, useState, useEffect } from 'react';
|
|
1
|
+
import React, { forwardRef, useRef, useState, useEffect } from 'react';
|
|
2
2
|
import { useTranslation } from '../../../../../external/react-i18next/dist/es/useTranslation.js';
|
|
3
3
|
import { slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
4
4
|
import { Loader } from '../loader/loader.js';
|
|
@@ -11,7 +11,7 @@ import { ImageEditLineIcon } from '../../assets/icons/image_edit_icon.js';
|
|
|
11
11
|
import { REQUEST_TYPES } from '../../../../star_core/build/esm/packages/star_core/src/features/http_requester/http_requester_contants.js';
|
|
12
12
|
import { useHttpApi } from '../../hooks/use_http_api.js';
|
|
13
13
|
|
|
14
|
-
var XhrImagePicker = function
|
|
14
|
+
var XhrImagePicker = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
15
15
|
var id = _ref.id,
|
|
16
16
|
url = _ref.url,
|
|
17
17
|
name = _ref.name,
|
|
@@ -62,7 +62,7 @@ var XhrImagePicker = function XhrImagePicker(_ref) {
|
|
|
62
62
|
var fileAsDataUrlRef = useRef(undefined);
|
|
63
63
|
var handleControlChange = /*#__PURE__*/function () {
|
|
64
64
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(file) {
|
|
65
|
-
var fileList, fileAsDataUrl, _httpApi$fetch, response, cancelRequest, responseObject, paths;
|
|
65
|
+
var fileList, fileAsDataUrl, _httpApi$fetch, response, cancelRequest, responseObject, _responseObject$data$, paths;
|
|
66
66
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
67
67
|
while (1) switch (_context.prev = _context.next) {
|
|
68
68
|
case 0:
|
|
@@ -112,6 +112,13 @@ var XhrImagePicker = function XhrImagePicker(_ref) {
|
|
|
112
112
|
}
|
|
113
113
|
return _context.abrupt("return");
|
|
114
114
|
case 24:
|
|
115
|
+
if (!(responseObject.data.isSuccess === false)) {
|
|
116
|
+
_context.next = 27;
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
onError === null || onError === void 0 ? void 0 : onError((_responseObject$data$ = responseObject.data.messages) !== null && _responseObject$data$ !== void 0 ? _responseObject$data$ : [t('File upload failed')]);
|
|
120
|
+
return _context.abrupt("return");
|
|
121
|
+
case 27:
|
|
115
122
|
if (responseObject.data.imagePath) {
|
|
116
123
|
paths = {
|
|
117
124
|
original: responseObject.data.imagePath
|
|
@@ -123,7 +130,7 @@ var XhrImagePicker = function XhrImagePicker(_ref) {
|
|
|
123
130
|
imageId: responseObject.data.imageId,
|
|
124
131
|
paths: paths
|
|
125
132
|
});
|
|
126
|
-
case
|
|
133
|
+
case 29:
|
|
127
134
|
case "end":
|
|
128
135
|
return _context.stop();
|
|
129
136
|
}
|
|
@@ -211,7 +218,8 @@ var XhrImagePicker = function XhrImagePicker(_ref) {
|
|
|
211
218
|
}), /*#__PURE__*/React.createElement("span", {
|
|
212
219
|
className: "aurora-text-xs aurora-text aurora-font-semibold"
|
|
213
220
|
}, "".concat(t('Edit'))))),
|
|
214
|
-
editedImageResult: imageEditorResult
|
|
221
|
+
editedImageResult: imageEditorResult,
|
|
222
|
+
ref: ref
|
|
215
223
|
})), !!ImageEditor && (/*#__PURE__*/React.createElement(Modal, {
|
|
216
224
|
name: modalId,
|
|
217
225
|
header: /*#__PURE__*/React.createElement(React.Fragment, null, t('Edit image')),
|
|
@@ -223,7 +231,8 @@ var XhrImagePicker = function XhrImagePicker(_ref) {
|
|
|
223
231
|
setImageEditorResult(result);
|
|
224
232
|
}
|
|
225
233
|
}))));
|
|
226
|
-
};
|
|
234
|
+
});
|
|
235
|
+
XhrImagePicker.displayName = 'XhrImagePicker';
|
|
227
236
|
|
|
228
237
|
export { XhrImagePicker };
|
|
229
238
|
//# sourceMappingURL=xhr_image_picker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,iEAAqE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,iEAAqE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|