@edgenets/utils 0.3.3 → 0.3.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.
- package/dist/errors/code.d.ts +20 -0
- package/dist/errors/code.d.ts.map +1 -0
- package/dist/errors/code.js +21 -0
- package/dist/errors/code.js.map +1 -0
- package/dist/errors/index.d.ts +14 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +83 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/models/point.d.ts +1 -0
- package/dist/models/point.d.ts.map +1 -1
- package/package.json +1 -1
@@ -0,0 +1,20 @@
|
|
1
|
+
export declare enum ErrorCode {
|
2
|
+
USR_VAL_MISSING_FIELDS = "USR-VAL-001",
|
3
|
+
USR_VAL_INVALID_INPUT = "USR-VAL-002",
|
4
|
+
USR_DATA_NOT_FOUND = "USR-DATA-001",
|
5
|
+
USR_DATA_DUPLICATE = "USR-DATA-002",
|
6
|
+
AUTH_VAL_SIGNATURE_INVALID = "AUTH-VAL-001",
|
7
|
+
AUTH_VAL_TOKEN_EXPIRED = "AUTH-VAL-002",
|
8
|
+
AUTH_VAL_TOKEN_INVALID = "AUTH-VAL-003",
|
9
|
+
AUTH_AUTH_UNAUTHORIZED = "AUTH-AUTH-001",
|
10
|
+
DB_CONN_FAILED = "DB-SYS-001",
|
11
|
+
DB_QUERY_FAILED = "DB-SYS-002",
|
12
|
+
DB_DATA_CONFLICT = "DB-DATA-001",
|
13
|
+
SYS_UNKNOWN = "SYS-SYS-001",
|
14
|
+
SYS_INTERNAL_ERROR = "SYS-SYS-002",
|
15
|
+
SYS_TIMEOUT = "SYS-SYS-003",
|
16
|
+
API_VAL_RESPONSE_INVALID = "API-VAL-001",
|
17
|
+
API_CONN_FAILED = "API-SYS-001",
|
18
|
+
API_RATE_LIMIT_EXCEEDED = "API-SYS-002"
|
19
|
+
}
|
20
|
+
//# sourceMappingURL=code.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/errors/code.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IAEnB,sBAAsB,gBAAgB;IACtC,qBAAqB,gBAAgB;IACrC,kBAAkB,iBAAiB;IACnC,kBAAkB,iBAAiB;IAGnC,0BAA0B,iBAAiB;IAC3C,sBAAsB,iBAAiB;IACvC,sBAAsB,iBAAiB;IACvC,sBAAsB,kBAAkB;IAGxC,cAAc,eAAe;IAC7B,eAAe,eAAe;IAC9B,gBAAgB,gBAAgB;IAGhC,WAAW,gBAAgB;IAC3B,kBAAkB,gBAAgB;IAClC,WAAW,gBAAgB;IAG3B,wBAAwB,gBAAgB;IACxC,eAAe,gBAAgB;IAC/B,uBAAuB,gBAAgB;CACxC"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
export var ErrorCode;
|
2
|
+
(function (ErrorCode) {
|
3
|
+
ErrorCode["USR_VAL_MISSING_FIELDS"] = "USR-VAL-001";
|
4
|
+
ErrorCode["USR_VAL_INVALID_INPUT"] = "USR-VAL-002";
|
5
|
+
ErrorCode["USR_DATA_NOT_FOUND"] = "USR-DATA-001";
|
6
|
+
ErrorCode["USR_DATA_DUPLICATE"] = "USR-DATA-002";
|
7
|
+
ErrorCode["AUTH_VAL_SIGNATURE_INVALID"] = "AUTH-VAL-001";
|
8
|
+
ErrorCode["AUTH_VAL_TOKEN_EXPIRED"] = "AUTH-VAL-002";
|
9
|
+
ErrorCode["AUTH_VAL_TOKEN_INVALID"] = "AUTH-VAL-003";
|
10
|
+
ErrorCode["AUTH_AUTH_UNAUTHORIZED"] = "AUTH-AUTH-001";
|
11
|
+
ErrorCode["DB_CONN_FAILED"] = "DB-SYS-001";
|
12
|
+
ErrorCode["DB_QUERY_FAILED"] = "DB-SYS-002";
|
13
|
+
ErrorCode["DB_DATA_CONFLICT"] = "DB-DATA-001";
|
14
|
+
ErrorCode["SYS_UNKNOWN"] = "SYS-SYS-001";
|
15
|
+
ErrorCode["SYS_INTERNAL_ERROR"] = "SYS-SYS-002";
|
16
|
+
ErrorCode["SYS_TIMEOUT"] = "SYS-SYS-003";
|
17
|
+
ErrorCode["API_VAL_RESPONSE_INVALID"] = "API-VAL-001";
|
18
|
+
ErrorCode["API_CONN_FAILED"] = "API-SYS-001";
|
19
|
+
ErrorCode["API_RATE_LIMIT_EXCEEDED"] = "API-SYS-002";
|
20
|
+
})(ErrorCode || (ErrorCode = {}));
|
21
|
+
//# sourceMappingURL=code.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/errors/code.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SA2BX;AA3BD,WAAY,SAAS;IAEnB,mDAAsC,CAAA;IACtC,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,gDAAmC,CAAA;IAGnC,wDAA2C,CAAA;IAC3C,oDAAuC,CAAA;IACvC,oDAAuC,CAAA;IACvC,qDAAwC,CAAA;IAGxC,0CAA6B,CAAA;IAC7B,2CAA8B,CAAA;IAC9B,6CAAgC,CAAA;IAGhC,wCAA2B,CAAA;IAC3B,+CAAkC,CAAA;IAClC,wCAA2B,CAAA;IAG3B,qDAAwC,CAAA;IACxC,4CAA+B,CAAA;IAC/B,oDAAuC,CAAA;AACzC,CAAC,EA3BW,SAAS,KAAT,SAAS,QA2BpB"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { ErrorCode } from "./code.js";
|
2
|
+
export { ErrorCode };
|
3
|
+
export declare const ErrorDetails: {
|
4
|
+
[key in ErrorCode]: {
|
5
|
+
message: string;
|
6
|
+
httpStatus: number;
|
7
|
+
};
|
8
|
+
};
|
9
|
+
export declare function handleError(errorCode: ErrorCode): {
|
10
|
+
code: string;
|
11
|
+
message: string;
|
12
|
+
httpStatus: number;
|
13
|
+
};
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,eAAO,MAAM,YAAY,EAAE;KACxB,GAAG,IAAI,SAAS,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CA+E5D,CAAC;AAEF,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAOA"}
|
@@ -0,0 +1,83 @@
|
|
1
|
+
import { ErrorCode } from "./code.js";
|
2
|
+
export { ErrorCode };
|
3
|
+
export const ErrorDetails = {
|
4
|
+
[ErrorCode.USR_VAL_MISSING_FIELDS]: {
|
5
|
+
message: "Required fields are missing.",
|
6
|
+
httpStatus: 400,
|
7
|
+
},
|
8
|
+
[ErrorCode.USR_VAL_INVALID_INPUT]: {
|
9
|
+
message: "Invalid input provided.",
|
10
|
+
httpStatus: 400,
|
11
|
+
},
|
12
|
+
[ErrorCode.USR_DATA_NOT_FOUND]: {
|
13
|
+
message: "User data not found.",
|
14
|
+
httpStatus: 404,
|
15
|
+
},
|
16
|
+
[ErrorCode.USR_DATA_DUPLICATE]: {
|
17
|
+
message: "Duplicate user data found.",
|
18
|
+
httpStatus: 409,
|
19
|
+
},
|
20
|
+
[ErrorCode.AUTH_VAL_SIGNATURE_INVALID]: {
|
21
|
+
message: "Signature is invalid.",
|
22
|
+
httpStatus: 401,
|
23
|
+
},
|
24
|
+
[ErrorCode.AUTH_VAL_TOKEN_EXPIRED]: {
|
25
|
+
message: "Authentication token has expired.",
|
26
|
+
httpStatus: 401,
|
27
|
+
},
|
28
|
+
[ErrorCode.AUTH_VAL_TOKEN_INVALID]: {
|
29
|
+
message: "Invalid authentication token.",
|
30
|
+
httpStatus: 401,
|
31
|
+
},
|
32
|
+
[ErrorCode.AUTH_AUTH_UNAUTHORIZED]: {
|
33
|
+
message: "User is unauthorized.",
|
34
|
+
httpStatus: 403,
|
35
|
+
},
|
36
|
+
[ErrorCode.DB_CONN_FAILED]: {
|
37
|
+
message: "Database connection failed.",
|
38
|
+
httpStatus: 500,
|
39
|
+
},
|
40
|
+
[ErrorCode.DB_QUERY_FAILED]: {
|
41
|
+
message: "Database query failed.",
|
42
|
+
httpStatus: 500,
|
43
|
+
},
|
44
|
+
[ErrorCode.DB_DATA_CONFLICT]: {
|
45
|
+
message: "Data conflict in database.",
|
46
|
+
httpStatus: 409,
|
47
|
+
},
|
48
|
+
[ErrorCode.SYS_UNKNOWN]: {
|
49
|
+
message: "Unknown system error.",
|
50
|
+
httpStatus: 500,
|
51
|
+
},
|
52
|
+
[ErrorCode.SYS_INTERNAL_ERROR]: {
|
53
|
+
message: "Internal server error.",
|
54
|
+
httpStatus: 500,
|
55
|
+
},
|
56
|
+
[ErrorCode.SYS_TIMEOUT]: {
|
57
|
+
message: "System request timed out.",
|
58
|
+
httpStatus: 504,
|
59
|
+
},
|
60
|
+
[ErrorCode.API_VAL_RESPONSE_INVALID]: {
|
61
|
+
message: "Invalid response from external API.",
|
62
|
+
httpStatus: 502,
|
63
|
+
},
|
64
|
+
[ErrorCode.API_CONN_FAILED]: {
|
65
|
+
message: "Failed to connect to external API.",
|
66
|
+
httpStatus: 502,
|
67
|
+
},
|
68
|
+
[ErrorCode.API_RATE_LIMIT_EXCEEDED]: {
|
69
|
+
message: "External API rate limit exceeded.",
|
70
|
+
httpStatus: 429,
|
71
|
+
},
|
72
|
+
};
|
73
|
+
export function handleError(errorCode) {
|
74
|
+
const errorDetail = ErrorDetails[errorCode];
|
75
|
+
return {
|
76
|
+
code: errorCode,
|
77
|
+
message: errorDetail.message,
|
78
|
+
httpStatus: errorDetail.httpStatus,
|
79
|
+
};
|
80
|
+
}
|
81
|
+
const errorResponse = handleError(ErrorCode.AUTH_VAL_SIGNATURE_INVALID);
|
82
|
+
console.log(errorResponse);
|
83
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,MAAM,CAAC,MAAM,YAAY,GAErB;IAEF,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE;QAClC,OAAO,EAAE,8BAA8B;QACvC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE;QACjC,OAAO,EAAE,yBAAyB;QAClC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;QAC9B,OAAO,EAAE,sBAAsB;QAC/B,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;QAC9B,OAAO,EAAE,4BAA4B;QACrC,UAAU,EAAE,GAAG;KAChB;IAGD,CAAC,SAAS,CAAC,0BAA0B,CAAC,EAAE;QACtC,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE;QAClC,OAAO,EAAE,mCAAmC;QAC5C,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE;QAClC,OAAO,EAAE,+BAA+B;QACxC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE;QAClC,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,GAAG;KAChB;IAGD,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE;QAC1B,OAAO,EAAE,6BAA6B;QACtC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE;QAC3B,OAAO,EAAE,wBAAwB;QACjC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;QAC5B,OAAO,EAAE,4BAA4B;QACrC,UAAU,EAAE,GAAG;KAChB;IAGD,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;QACvB,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;QAC9B,OAAO,EAAE,wBAAwB;QACjC,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;QACvB,OAAO,EAAE,2BAA2B;QACpC,UAAU,EAAE,GAAG;KAChB;IAGD,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE;QACpC,OAAO,EAAE,qCAAqC;QAC9C,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE;QAC3B,OAAO,EAAE,oCAAoC;QAC7C,UAAU,EAAE,GAAG;KAChB;IACD,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE;QACnC,OAAO,EAAE,mCAAmC;QAC5C,UAAU,EAAE,GAAG;KAChB;CACF,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,SAAoB;IAK9C,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC5C,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,UAAU,EAAE,WAAW,CAAC,UAAU;KACnC,CAAC;AACJ,CAAC;AAGD,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;AACxE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,cAAc,kBAAkB,CAAC;AAGjC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,qBAAqB,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,cAAc,kBAAkB,CAAC;AAGjC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,cAAc,kBAAkB,CAAC;AAGjC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,qBAAqB,CAAC"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,cAAc,kBAAkB,CAAC;AAGjC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC"}
|
package/dist/models/point.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../src/models/point.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC/D,MAAM,MAAM,sBAAsB,GAC9B,UAAU,GACV,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,OAAO,CAAC;AAGZ,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
1
|
+
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../src/models/point.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC/D,MAAM,MAAM,sBAAsB,GAC9B,UAAU,GACV,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,OAAO,CAAC;AAGZ,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|