@regulaforensics/facesdk-webclient 3.1.2 → 4.1.2

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 (215) hide show
  1. package/dist/cjs-es5/api/group-api.js +695 -0
  2. package/dist/cjs-es5/api/matching-api.js +101 -127
  3. package/dist/cjs-es5/api/person-api.js +952 -0
  4. package/dist/cjs-es5/api/search-api.js +200 -0
  5. package/dist/cjs-es5/api.js +6 -3
  6. package/dist/cjs-es5/base.js +3 -3
  7. package/dist/cjs-es5/common.js +235 -0
  8. package/dist/cjs-es5/configuration.js +18 -3
  9. package/dist/cjs-es5/ext/face-sdk.js +7 -1
  10. package/dist/cjs-es5/ext/group-api.js +47 -0
  11. package/dist/cjs-es5/ext/index.js +1 -2
  12. package/dist/cjs-es5/ext/matching-api.js +3 -7
  13. package/dist/cjs-es5/ext/person-api.js +61 -0
  14. package/dist/cjs-es5/ext/search-api.js +33 -0
  15. package/dist/cjs-es5/index.js +1 -2
  16. package/dist/cjs-es5/models/crop.js +16 -0
  17. package/dist/cjs-es5/models/detect-request.js +2 -2
  18. package/dist/cjs-es5/models/detect-response-all-of.js +2 -2
  19. package/dist/cjs-es5/models/detect-response.js +2 -2
  20. package/dist/cjs-es5/models/detect-result.js +2 -2
  21. package/dist/cjs-es5/models/detection-face.js +2 -2
  22. package/dist/cjs-es5/models/detection-quality.js +16 -0
  23. package/dist/cjs-es5/models/detection.js +2 -2
  24. package/dist/cjs-es5/models/face-align-type-quality.js +29 -0
  25. package/dist/cjs-es5/models/face-image-quality-groups.js +32 -0
  26. package/dist/cjs-es5/models/face-quality-config-name.js +70 -0
  27. package/dist/cjs-es5/models/face-quality-scenarios.js +31 -0
  28. package/dist/cjs-es5/models/face-quality-status.js +27 -0
  29. package/dist/cjs-es5/models/face-recognition-result-code.js +1 -6
  30. package/dist/cjs-es5/models/face-sdkresult-code.js +36 -37
  31. package/dist/cjs-es5/models/face-sdkresult.js +2 -2
  32. package/dist/cjs-es5/models/group-all-of.js +16 -0
  33. package/dist/cjs-es5/models/group-page-all-of.js +16 -0
  34. package/dist/cjs-es5/models/group-page.js +16 -0
  35. package/dist/cjs-es5/models/group-to-create.js +16 -0
  36. package/dist/cjs-es5/models/group.js +16 -0
  37. package/dist/cjs-es5/models/image-fields-image.js +16 -0
  38. package/dist/cjs-es5/models/image-fields.js +16 -0
  39. package/dist/cjs-es5/models/image-page-all-of.js +16 -0
  40. package/dist/cjs-es5/models/image-page.js +16 -0
  41. package/dist/cjs-es5/models/image-source.js +11 -12
  42. package/dist/cjs-es5/models/image.js +16 -0
  43. package/dist/cjs-es5/models/index.js +54 -16
  44. package/dist/cjs-es5/models/match-image-detection.js +2 -2
  45. package/dist/cjs-es5/models/match-image-result.js +2 -2
  46. package/dist/cjs-es5/models/match-image.js +2 -2
  47. package/dist/cjs-es5/models/match-request.js +2 -2
  48. package/dist/cjs-es5/models/match-response-all-of.js +2 -2
  49. package/dist/cjs-es5/models/match-response.js +2 -2
  50. package/dist/cjs-es5/models/operation-log.js +16 -0
  51. package/dist/cjs-es5/models/output-image-params.js +16 -0
  52. package/dist/cjs-es5/models/page.js +16 -0
  53. package/dist/cjs-es5/models/person-all-of.js +16 -0
  54. package/dist/cjs-es5/models/person-fields.js +16 -0
  55. package/dist/cjs-es5/models/person.js +16 -0
  56. package/dist/cjs-es5/models/persons-page-all-of.js +16 -0
  57. package/dist/cjs-es5/models/persons-page.js +16 -0
  58. package/dist/cjs-es5/models/process-param.js +16 -0
  59. package/dist/cjs-es5/models/quality-config.js +16 -0
  60. package/dist/cjs-es5/models/quality-detail.js +16 -0
  61. package/dist/cjs-es5/models/quality-details-groups.js +16 -0
  62. package/dist/cjs-es5/models/quality-request.js +16 -0
  63. package/dist/cjs-es5/models/recognize-image-all-of.js +16 -0
  64. package/dist/cjs-es5/models/recognize-image.js +16 -0
  65. package/dist/cjs-es5/models/search-person-all-of.js +16 -0
  66. package/dist/cjs-es5/models/search-person.js +16 -0
  67. package/dist/cjs-es5/models/search-request-all-of.js +16 -0
  68. package/dist/cjs-es5/models/search-request.js +16 -0
  69. package/dist/cjs-es5/models/search-result-all-of.js +16 -0
  70. package/dist/cjs-es5/models/search-result.js +16 -0
  71. package/dist/cjs-es5/models/update-group.js +16 -0
  72. package/dist/esm-es5/api/group-api.js +692 -0
  73. package/dist/esm-es5/api/matching-api.js +100 -126
  74. package/dist/esm-es5/api/person-api.js +949 -0
  75. package/dist/esm-es5/api/search-api.js +197 -0
  76. package/dist/esm-es5/api.js +6 -3
  77. package/dist/esm-es5/base.js +3 -3
  78. package/dist/esm-es5/common.js +232 -0
  79. package/dist/esm-es5/configuration.js +18 -3
  80. package/dist/esm-es5/ext/face-sdk.js +7 -1
  81. package/dist/esm-es5/ext/group-api.js +44 -0
  82. package/dist/esm-es5/ext/index.js +1 -2
  83. package/dist/esm-es5/ext/matching-api.js +3 -7
  84. package/dist/esm-es5/ext/person-api.js +58 -0
  85. package/dist/esm-es5/ext/search-api.js +30 -0
  86. package/dist/esm-es5/index.js +1 -2
  87. package/dist/esm-es5/models/crop.js +14 -0
  88. package/dist/esm-es5/models/detect-request.js +2 -2
  89. package/dist/esm-es5/models/detect-response-all-of.js +2 -2
  90. package/dist/esm-es5/models/detect-response.js +2 -2
  91. package/dist/esm-es5/models/detect-result.js +2 -2
  92. package/dist/esm-es5/models/detection-face.js +2 -2
  93. package/dist/esm-es5/models/detection-quality.js +14 -0
  94. package/dist/esm-es5/models/detection.js +2 -2
  95. package/dist/esm-es5/models/face-align-type-quality.js +26 -0
  96. package/dist/esm-es5/models/face-image-quality-groups.js +29 -0
  97. package/dist/esm-es5/models/face-quality-config-name.js +67 -0
  98. package/dist/esm-es5/models/face-quality-scenarios.js +28 -0
  99. package/dist/esm-es5/models/face-quality-status.js +24 -0
  100. package/dist/esm-es5/models/face-recognition-result-code.js +1 -3
  101. package/dist/esm-es5/models/face-sdkresult-code.js +36 -37
  102. package/dist/esm-es5/models/face-sdkresult.js +2 -2
  103. package/dist/esm-es5/models/group-all-of.js +14 -0
  104. package/dist/esm-es5/models/group-page-all-of.js +14 -0
  105. package/dist/esm-es5/models/group-page.js +14 -0
  106. package/dist/esm-es5/models/group-to-create.js +14 -0
  107. package/dist/esm-es5/models/group.js +14 -0
  108. package/dist/esm-es5/models/image-fields-image.js +14 -0
  109. package/dist/esm-es5/models/image-fields.js +14 -0
  110. package/dist/esm-es5/models/image-page-all-of.js +14 -0
  111. package/dist/esm-es5/models/image-page.js +14 -0
  112. package/dist/esm-es5/models/image-source.js +11 -12
  113. package/dist/esm-es5/models/image.js +14 -0
  114. package/dist/esm-es5/models/index.js +54 -16
  115. package/dist/esm-es5/models/match-image-detection.js +2 -2
  116. package/dist/esm-es5/models/match-image-result.js +2 -2
  117. package/dist/esm-es5/models/match-image.js +2 -2
  118. package/dist/esm-es5/models/match-request.js +2 -2
  119. package/dist/esm-es5/models/match-response-all-of.js +2 -2
  120. package/dist/esm-es5/models/match-response.js +2 -2
  121. package/dist/esm-es5/models/operation-log.js +14 -0
  122. package/dist/esm-es5/models/output-image-params.js +14 -0
  123. package/dist/esm-es5/models/page.js +14 -0
  124. package/dist/esm-es5/models/person-all-of.js +14 -0
  125. package/dist/esm-es5/models/person-fields.js +14 -0
  126. package/dist/esm-es5/models/person.js +14 -0
  127. package/dist/esm-es5/models/persons-page-all-of.js +14 -0
  128. package/dist/esm-es5/models/persons-page.js +14 -0
  129. package/dist/esm-es5/models/process-param.js +14 -0
  130. package/dist/esm-es5/models/quality-config.js +14 -0
  131. package/dist/esm-es5/models/quality-detail.js +14 -0
  132. package/dist/esm-es5/models/quality-details-groups.js +14 -0
  133. package/dist/esm-es5/models/quality-request.js +14 -0
  134. package/dist/esm-es5/models/recognize-image-all-of.js +14 -0
  135. package/dist/esm-es5/models/recognize-image.js +14 -0
  136. package/dist/esm-es5/models/search-person-all-of.js +14 -0
  137. package/dist/esm-es5/models/search-person.js +14 -0
  138. package/dist/esm-es5/models/search-request-all-of.js +14 -0
  139. package/dist/esm-es5/models/search-request.js +14 -0
  140. package/dist/esm-es5/models/search-result-all-of.js +14 -0
  141. package/dist/esm-es5/models/search-result.js +14 -0
  142. package/dist/esm-es5/models/update-group.js +14 -0
  143. package/package.json +1 -1
  144. package/src/api/group-api.ts +592 -0
  145. package/src/api/matching-api.ts +152 -172
  146. package/src/api/person-api.ts +831 -0
  147. package/src/api/search-api.ts +133 -0
  148. package/src/api.ts +5 -2
  149. package/src/base.ts +4 -4
  150. package/src/common.ts +138 -0
  151. package/src/configuration.ts +27 -2
  152. package/src/ext/face-sdk.ts +10 -0
  153. package/src/ext/group-api.ts +34 -0
  154. package/src/ext/index.ts +0 -1
  155. package/src/ext/matching-api.ts +5 -9
  156. package/src/ext/person-api.ts +51 -0
  157. package/src/ext/search-api.ts +14 -0
  158. package/src/index.ts +0 -1
  159. package/src/models/crop.ts +49 -0
  160. package/src/models/detect-request.ts +18 -12
  161. package/src/models/detect-response-all-of.ts +3 -4
  162. package/src/models/detect-response.ts +2 -3
  163. package/src/models/detect-result.ts +18 -6
  164. package/src/models/detection-face.ts +8 -9
  165. package/src/models/detection-quality.ts +57 -0
  166. package/src/models/detection.ts +22 -9
  167. package/src/models/face-align-type-quality.ts +34 -0
  168. package/src/models/face-image-quality-groups.ts +37 -0
  169. package/src/models/face-quality-config-name.ts +75 -0
  170. package/src/models/face-quality-scenarios.ts +36 -0
  171. package/src/models/face-quality-status.ts +32 -0
  172. package/src/models/face-recognition-result-code.ts +0 -4
  173. package/src/models/face-sdkresult-code.ts +38 -35
  174. package/src/models/face-sdkresult.ts +3 -4
  175. package/src/models/group-all-of.ts +36 -0
  176. package/src/models/group-page-all-of.ts +31 -0
  177. package/src/models/group-page.ts +26 -0
  178. package/src/models/group-to-create.ts +36 -0
  179. package/src/models/group.ts +25 -0
  180. package/src/models/image-fields-image.ts +37 -0
  181. package/src/models/image-fields.ts +31 -0
  182. package/src/models/image-page-all-of.ts +31 -0
  183. package/src/models/image-page.ts +26 -0
  184. package/src/models/image-source.ts +13 -10
  185. package/src/models/image.ts +54 -0
  186. package/src/models/index.ts +53 -15
  187. package/src/models/match-image-detection.ts +6 -7
  188. package/src/models/match-image-result.ts +15 -16
  189. package/src/models/match-image.ts +6 -7
  190. package/src/models/match-request.ts +8 -9
  191. package/src/models/match-response-all-of.ts +5 -6
  192. package/src/models/match-response.ts +2 -3
  193. package/src/models/operation-log.ts +42 -0
  194. package/src/models/output-image-params.ts +37 -0
  195. package/src/models/page.ts +36 -0
  196. package/src/models/person-all-of.ts +42 -0
  197. package/src/models/person-fields.ts +36 -0
  198. package/src/models/person.ts +26 -0
  199. package/src/models/persons-page-all-of.ts +31 -0
  200. package/src/models/persons-page.ts +26 -0
  201. package/src/models/process-param.ts +51 -0
  202. package/src/models/quality-config.ts +37 -0
  203. package/src/models/quality-detail.ts +57 -0
  204. package/src/models/quality-details-groups.ts +50 -0
  205. package/src/models/quality-request.ts +37 -0
  206. package/src/models/recognize-image-all-of.ts +30 -0
  207. package/src/models/recognize-image.ts +25 -0
  208. package/src/models/search-person-all-of.ts +31 -0
  209. package/src/models/search-person.ts +26 -0
  210. package/src/models/search-request-all-of.ts +42 -0
  211. package/src/models/search-request.ts +26 -0
  212. package/src/models/search-result-all-of.ts +30 -0
  213. package/src/models/search-result.ts +37 -0
  214. package/src/models/update-group.ts +36 -0
  215. package/update-models.sh +2 -3
@@ -0,0 +1,692 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Regula FaceSDK Web API
5
+ * Regula FaceSDK Web API # Clients * [JavaScript](https://github.com/regulaforensics/FaceSDK-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/FaceSDK-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/FaceSDK-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/FaceSDK-web-csharp-client) client for .NET & .NET Core
6
+ *
7
+ * The version of the OpenAPI document: 4.1.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ var __extends = (this && this.__extends) || (function () {
15
+ var extendStatics = function (d, b) {
16
+ extendStatics = Object.setPrototypeOf ||
17
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
19
+ return extendStatics(d, b);
20
+ };
21
+ return function (d, b) {
22
+ extendStatics(d, b);
23
+ function __() { this.constructor = d; }
24
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
25
+ };
26
+ })();
27
+ var __assign = (this && this.__assign) || function () {
28
+ __assign = Object.assign || function(t) {
29
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
30
+ s = arguments[i];
31
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32
+ t[p] = s[p];
33
+ }
34
+ return t;
35
+ };
36
+ return __assign.apply(this, arguments);
37
+ };
38
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
39
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
40
+ return new (P || (P = Promise))(function (resolve, reject) {
41
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
42
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
43
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
44
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
45
+ });
46
+ };
47
+ var __generator = (this && this.__generator) || function (thisArg, body) {
48
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
49
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
50
+ function verb(n) { return function (v) { return step([n, v]); }; }
51
+ function step(op) {
52
+ if (f) throw new TypeError("Generator is already executing.");
53
+ while (_) try {
54
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
55
+ if (y = 0, t) op = [op[0] & 2, t.value];
56
+ switch (op[0]) {
57
+ case 0: case 1: t = op; break;
58
+ case 4: _.label++; return { value: op[1], done: false };
59
+ case 5: _.label++; y = op[1]; op = [0]; continue;
60
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
61
+ default:
62
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
63
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
64
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
65
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
66
+ if (t[2]) _.ops.pop();
67
+ _.trys.pop(); continue;
68
+ }
69
+ op = body.call(thisArg, _);
70
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
71
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
72
+ }
73
+ };
74
+ import globalAxios from 'axios';
75
+ // Some imports not used depending on template conditions
76
+ // @ts-ignore
77
+ import { DUMMY_BASE_URL, assertParamExists, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common';
78
+ // @ts-ignore
79
+ import { BASE_PATH, BaseAPI } from '../base';
80
+ /**
81
+ * GroupApi - axios parameter creator
82
+ * @export
83
+ */
84
+ export var GroupApiAxiosParamCreator = function (configuration) {
85
+ var _this = this;
86
+ return {
87
+ /**
88
+ *
89
+ * @summary Create group
90
+ * @param {GroupToCreate} groupToCreate Request body for the group to create.
91
+ * @param {*} [options] Override http request option.
92
+ * @throws {RequiredError}
93
+ */
94
+ createGroup: function (groupToCreate, options) {
95
+ if (options === void 0) { options = {}; }
96
+ return __awaiter(_this, void 0, void 0, function () {
97
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
98
+ return __generator(this, function (_a) {
99
+ // verify required parameter 'groupToCreate' is not null or undefined
100
+ assertParamExists('createGroup', 'groupToCreate', groupToCreate);
101
+ localVarPath = "/api/groups";
102
+ localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
103
+ if (configuration) {
104
+ baseOptions = configuration.baseOptions;
105
+ }
106
+ localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
107
+ localVarHeaderParameter = {};
108
+ localVarQueryParameter = {};
109
+ localVarHeaderParameter['Content-Type'] = 'application/json';
110
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
111
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
112
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
113
+ localVarRequestOptions.data = serializeDataIfNeeded(groupToCreate, localVarRequestOptions, configuration);
114
+ return [2 /*return*/, {
115
+ url: toPathString(localVarUrlObj),
116
+ options: localVarRequestOptions,
117
+ }];
118
+ });
119
+ });
120
+ },
121
+ /**
122
+ *
123
+ * @summary Delete group
124
+ * @param {number} groupId Group ID.
125
+ * @param {*} [options] Override http request option.
126
+ * @throws {RequiredError}
127
+ */
128
+ deleteGroup: function (groupId, options) {
129
+ if (options === void 0) { options = {}; }
130
+ return __awaiter(_this, void 0, void 0, function () {
131
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
132
+ return __generator(this, function (_a) {
133
+ // verify required parameter 'groupId' is not null or undefined
134
+ assertParamExists('deleteGroup', 'groupId', groupId);
135
+ localVarPath = "/api/groups/{group_id}"
136
+ .replace("{" + "group_id" + "}", encodeURIComponent(String(groupId)));
137
+ localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
138
+ if (configuration) {
139
+ baseOptions = configuration.baseOptions;
140
+ }
141
+ localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), options);
142
+ localVarHeaderParameter = {};
143
+ localVarQueryParameter = {};
144
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
145
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
146
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
147
+ return [2 /*return*/, {
148
+ url: toPathString(localVarUrlObj),
149
+ options: localVarRequestOptions,
150
+ }];
151
+ });
152
+ });
153
+ },
154
+ /**
155
+ *
156
+ * @summary Get groups
157
+ * @param {number} page The page number to get a list of persons or groups.
158
+ * @param {number} size The page size with a list of persons or groups, items.
159
+ * @param {*} [options] Override http request option.
160
+ * @throws {RequiredError}
161
+ */
162
+ getAllGroups: function (page, size, options) {
163
+ if (options === void 0) { options = {}; }
164
+ return __awaiter(_this, void 0, void 0, function () {
165
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
166
+ return __generator(this, function (_a) {
167
+ // verify required parameter 'page' is not null or undefined
168
+ assertParamExists('getAllGroups', 'page', page);
169
+ // verify required parameter 'size' is not null or undefined
170
+ assertParamExists('getAllGroups', 'size', size);
171
+ localVarPath = "/api/groups";
172
+ localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
173
+ if (configuration) {
174
+ baseOptions = configuration.baseOptions;
175
+ }
176
+ localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
177
+ localVarHeaderParameter = {};
178
+ localVarQueryParameter = {};
179
+ if (page !== undefined) {
180
+ localVarQueryParameter['page'] = page;
181
+ }
182
+ if (size !== undefined) {
183
+ localVarQueryParameter['size'] = size;
184
+ }
185
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
186
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
187
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
188
+ return [2 /*return*/, {
189
+ url: toPathString(localVarUrlObj),
190
+ options: localVarRequestOptions,
191
+ }];
192
+ });
193
+ });
194
+ },
195
+ /**
196
+ *
197
+ * @summary Get group persons
198
+ * @param {number} page The page number to get a list of persons or groups.
199
+ * @param {number} size The page size with a list of persons or groups, items.
200
+ * @param {number} groupId Group ID.
201
+ * @param {*} [options] Override http request option.
202
+ * @throws {RequiredError}
203
+ */
204
+ getAllPersonsByGroupId: function (page, size, groupId, options) {
205
+ if (options === void 0) { options = {}; }
206
+ return __awaiter(_this, void 0, void 0, function () {
207
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
208
+ return __generator(this, function (_a) {
209
+ // verify required parameter 'page' is not null or undefined
210
+ assertParamExists('getAllPersonsByGroupId', 'page', page);
211
+ // verify required parameter 'size' is not null or undefined
212
+ assertParamExists('getAllPersonsByGroupId', 'size', size);
213
+ // verify required parameter 'groupId' is not null or undefined
214
+ assertParamExists('getAllPersonsByGroupId', 'groupId', groupId);
215
+ localVarPath = "/api/groups/{group_id}/persons"
216
+ .replace("{" + "group_id" + "}", encodeURIComponent(String(groupId)));
217
+ localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
218
+ if (configuration) {
219
+ baseOptions = configuration.baseOptions;
220
+ }
221
+ localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
222
+ localVarHeaderParameter = {};
223
+ localVarQueryParameter = {};
224
+ if (page !== undefined) {
225
+ localVarQueryParameter['page'] = page;
226
+ }
227
+ if (size !== undefined) {
228
+ localVarQueryParameter['size'] = size;
229
+ }
230
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
231
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
232
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
233
+ return [2 /*return*/, {
234
+ url: toPathString(localVarUrlObj),
235
+ options: localVarRequestOptions,
236
+ }];
237
+ });
238
+ });
239
+ },
240
+ /**
241
+ *
242
+ * @summary Get group
243
+ * @param {number} groupId Group ID.
244
+ * @param {*} [options] Override http request option.
245
+ * @throws {RequiredError}
246
+ */
247
+ getGroup: function (groupId, options) {
248
+ if (options === void 0) { options = {}; }
249
+ return __awaiter(_this, void 0, void 0, function () {
250
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
251
+ return __generator(this, function (_a) {
252
+ // verify required parameter 'groupId' is not null or undefined
253
+ assertParamExists('getGroup', 'groupId', groupId);
254
+ localVarPath = "/api/groups/{group_id}"
255
+ .replace("{" + "group_id" + "}", encodeURIComponent(String(groupId)));
256
+ localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
257
+ if (configuration) {
258
+ baseOptions = configuration.baseOptions;
259
+ }
260
+ localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
261
+ localVarHeaderParameter = {};
262
+ localVarQueryParameter = {};
263
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
264
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
265
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
266
+ return [2 /*return*/, {
267
+ url: toPathString(localVarUrlObj),
268
+ options: localVarRequestOptions,
269
+ }];
270
+ });
271
+ });
272
+ },
273
+ /**
274
+ *
275
+ * @summary Update group
276
+ * @param {number} groupId Group ID.
277
+ * @param {GroupToCreate} groupToCreate Request body for the group to update.
278
+ * @param {*} [options] Override http request option.
279
+ * @throws {RequiredError}
280
+ */
281
+ updateGroup: function (groupId, groupToCreate, options) {
282
+ if (options === void 0) { options = {}; }
283
+ return __awaiter(_this, void 0, void 0, function () {
284
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
285
+ return __generator(this, function (_a) {
286
+ // verify required parameter 'groupId' is not null or undefined
287
+ assertParamExists('updateGroup', 'groupId', groupId);
288
+ // verify required parameter 'groupToCreate' is not null or undefined
289
+ assertParamExists('updateGroup', 'groupToCreate', groupToCreate);
290
+ localVarPath = "/api/groups/{group_id}"
291
+ .replace("{" + "group_id" + "}", encodeURIComponent(String(groupId)));
292
+ localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
293
+ if (configuration) {
294
+ baseOptions = configuration.baseOptions;
295
+ }
296
+ localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), options);
297
+ localVarHeaderParameter = {};
298
+ localVarQueryParameter = {};
299
+ localVarHeaderParameter['Content-Type'] = 'application/json';
300
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
301
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
302
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
303
+ localVarRequestOptions.data = serializeDataIfNeeded(groupToCreate, localVarRequestOptions, configuration);
304
+ return [2 /*return*/, {
305
+ url: toPathString(localVarUrlObj),
306
+ options: localVarRequestOptions,
307
+ }];
308
+ });
309
+ });
310
+ },
311
+ /**
312
+ *
313
+ * @summary Add/remove persons to group
314
+ * @param {number} groupId Group ID.
315
+ * @param {UpdateGroup} updateGroup Request body for person IDs to add or remove.
316
+ * @param {*} [options] Override http request option.
317
+ * @throws {RequiredError}
318
+ */
319
+ updatePersonsInGroup: function (groupId, updateGroup, options) {
320
+ if (options === void 0) { options = {}; }
321
+ return __awaiter(_this, void 0, void 0, function () {
322
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
323
+ return __generator(this, function (_a) {
324
+ // verify required parameter 'groupId' is not null or undefined
325
+ assertParamExists('updatePersonsInGroup', 'groupId', groupId);
326
+ // verify required parameter 'updateGroup' is not null or undefined
327
+ assertParamExists('updatePersonsInGroup', 'updateGroup', updateGroup);
328
+ localVarPath = "/api/groups/{group_id}/persons"
329
+ .replace("{" + "group_id" + "}", encodeURIComponent(String(groupId)));
330
+ localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
331
+ if (configuration) {
332
+ baseOptions = configuration.baseOptions;
333
+ }
334
+ localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), options);
335
+ localVarHeaderParameter = {};
336
+ localVarQueryParameter = {};
337
+ localVarHeaderParameter['Content-Type'] = 'application/json';
338
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
339
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
340
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
341
+ localVarRequestOptions.data = serializeDataIfNeeded(updateGroup, localVarRequestOptions, configuration);
342
+ return [2 /*return*/, {
343
+ url: toPathString(localVarUrlObj),
344
+ options: localVarRequestOptions,
345
+ }];
346
+ });
347
+ });
348
+ },
349
+ };
350
+ };
351
+ /**
352
+ * GroupApi - functional programming interface
353
+ * @export
354
+ */
355
+ export var GroupApiFp = function (configuration) {
356
+ var localVarAxiosParamCreator = GroupApiAxiosParamCreator(configuration);
357
+ return {
358
+ /**
359
+ *
360
+ * @summary Create group
361
+ * @param {GroupToCreate} groupToCreate Request body for the group to create.
362
+ * @param {*} [options] Override http request option.
363
+ * @throws {RequiredError}
364
+ */
365
+ createGroup: function (groupToCreate, options) {
366
+ return __awaiter(this, void 0, void 0, function () {
367
+ var localVarAxiosArgs;
368
+ return __generator(this, function (_a) {
369
+ switch (_a.label) {
370
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.createGroup(groupToCreate, options)];
371
+ case 1:
372
+ localVarAxiosArgs = _a.sent();
373
+ return [2 /*return*/, createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)];
374
+ }
375
+ });
376
+ });
377
+ },
378
+ /**
379
+ *
380
+ * @summary Delete group
381
+ * @param {number} groupId Group ID.
382
+ * @param {*} [options] Override http request option.
383
+ * @throws {RequiredError}
384
+ */
385
+ deleteGroup: function (groupId, options) {
386
+ return __awaiter(this, void 0, void 0, function () {
387
+ var localVarAxiosArgs;
388
+ return __generator(this, function (_a) {
389
+ switch (_a.label) {
390
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.deleteGroup(groupId, options)];
391
+ case 1:
392
+ localVarAxiosArgs = _a.sent();
393
+ return [2 /*return*/, createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)];
394
+ }
395
+ });
396
+ });
397
+ },
398
+ /**
399
+ *
400
+ * @summary Get groups
401
+ * @param {number} page The page number to get a list of persons or groups.
402
+ * @param {number} size The page size with a list of persons or groups, items.
403
+ * @param {*} [options] Override http request option.
404
+ * @throws {RequiredError}
405
+ */
406
+ getAllGroups: function (page, size, options) {
407
+ return __awaiter(this, void 0, void 0, function () {
408
+ var localVarAxiosArgs;
409
+ return __generator(this, function (_a) {
410
+ switch (_a.label) {
411
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAllGroups(page, size, options)];
412
+ case 1:
413
+ localVarAxiosArgs = _a.sent();
414
+ return [2 /*return*/, createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)];
415
+ }
416
+ });
417
+ });
418
+ },
419
+ /**
420
+ *
421
+ * @summary Get group persons
422
+ * @param {number} page The page number to get a list of persons or groups.
423
+ * @param {number} size The page size with a list of persons or groups, items.
424
+ * @param {number} groupId Group ID.
425
+ * @param {*} [options] Override http request option.
426
+ * @throws {RequiredError}
427
+ */
428
+ getAllPersonsByGroupId: function (page, size, groupId, options) {
429
+ return __awaiter(this, void 0, void 0, function () {
430
+ var localVarAxiosArgs;
431
+ return __generator(this, function (_a) {
432
+ switch (_a.label) {
433
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAllPersonsByGroupId(page, size, groupId, options)];
434
+ case 1:
435
+ localVarAxiosArgs = _a.sent();
436
+ return [2 /*return*/, createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)];
437
+ }
438
+ });
439
+ });
440
+ },
441
+ /**
442
+ *
443
+ * @summary Get group
444
+ * @param {number} groupId Group ID.
445
+ * @param {*} [options] Override http request option.
446
+ * @throws {RequiredError}
447
+ */
448
+ getGroup: function (groupId, options) {
449
+ return __awaiter(this, void 0, void 0, function () {
450
+ var localVarAxiosArgs;
451
+ return __generator(this, function (_a) {
452
+ switch (_a.label) {
453
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.getGroup(groupId, options)];
454
+ case 1:
455
+ localVarAxiosArgs = _a.sent();
456
+ return [2 /*return*/, createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)];
457
+ }
458
+ });
459
+ });
460
+ },
461
+ /**
462
+ *
463
+ * @summary Update group
464
+ * @param {number} groupId Group ID.
465
+ * @param {GroupToCreate} groupToCreate Request body for the group to update.
466
+ * @param {*} [options] Override http request option.
467
+ * @throws {RequiredError}
468
+ */
469
+ updateGroup: function (groupId, groupToCreate, options) {
470
+ return __awaiter(this, void 0, void 0, function () {
471
+ var localVarAxiosArgs;
472
+ return __generator(this, function (_a) {
473
+ switch (_a.label) {
474
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.updateGroup(groupId, groupToCreate, options)];
475
+ case 1:
476
+ localVarAxiosArgs = _a.sent();
477
+ return [2 /*return*/, createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)];
478
+ }
479
+ });
480
+ });
481
+ },
482
+ /**
483
+ *
484
+ * @summary Add/remove persons to group
485
+ * @param {number} groupId Group ID.
486
+ * @param {UpdateGroup} updateGroup Request body for person IDs to add or remove.
487
+ * @param {*} [options] Override http request option.
488
+ * @throws {RequiredError}
489
+ */
490
+ updatePersonsInGroup: function (groupId, updateGroup, options) {
491
+ return __awaiter(this, void 0, void 0, function () {
492
+ var localVarAxiosArgs;
493
+ return __generator(this, function (_a) {
494
+ switch (_a.label) {
495
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.updatePersonsInGroup(groupId, updateGroup, options)];
496
+ case 1:
497
+ localVarAxiosArgs = _a.sent();
498
+ return [2 /*return*/, createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)];
499
+ }
500
+ });
501
+ });
502
+ },
503
+ };
504
+ };
505
+ /**
506
+ * GroupApi - factory interface
507
+ * @export
508
+ */
509
+ export var GroupApiFactory = function (configuration, basePath, axios) {
510
+ var localVarFp = GroupApiFp(configuration);
511
+ return {
512
+ /**
513
+ *
514
+ * @summary Create group
515
+ * @param {GroupToCreate} groupToCreate Request body for the group to create.
516
+ * @param {*} [options] Override http request option.
517
+ * @throws {RequiredError}
518
+ */
519
+ createGroup: function (groupToCreate, options) {
520
+ return localVarFp.createGroup(groupToCreate, options).then(function (request) { return request(axios, basePath); });
521
+ },
522
+ /**
523
+ *
524
+ * @summary Delete group
525
+ * @param {number} groupId Group ID.
526
+ * @param {*} [options] Override http request option.
527
+ * @throws {RequiredError}
528
+ */
529
+ deleteGroup: function (groupId, options) {
530
+ return localVarFp.deleteGroup(groupId, options).then(function (request) { return request(axios, basePath); });
531
+ },
532
+ /**
533
+ *
534
+ * @summary Get groups
535
+ * @param {number} page The page number to get a list of persons or groups.
536
+ * @param {number} size The page size with a list of persons or groups, items.
537
+ * @param {*} [options] Override http request option.
538
+ * @throws {RequiredError}
539
+ */
540
+ getAllGroups: function (page, size, options) {
541
+ return localVarFp.getAllGroups(page, size, options).then(function (request) { return request(axios, basePath); });
542
+ },
543
+ /**
544
+ *
545
+ * @summary Get group persons
546
+ * @param {number} page The page number to get a list of persons or groups.
547
+ * @param {number} size The page size with a list of persons or groups, items.
548
+ * @param {number} groupId Group ID.
549
+ * @param {*} [options] Override http request option.
550
+ * @throws {RequiredError}
551
+ */
552
+ getAllPersonsByGroupId: function (page, size, groupId, options) {
553
+ return localVarFp.getAllPersonsByGroupId(page, size, groupId, options).then(function (request) { return request(axios, basePath); });
554
+ },
555
+ /**
556
+ *
557
+ * @summary Get group
558
+ * @param {number} groupId Group ID.
559
+ * @param {*} [options] Override http request option.
560
+ * @throws {RequiredError}
561
+ */
562
+ getGroup: function (groupId, options) {
563
+ return localVarFp.getGroup(groupId, options).then(function (request) { return request(axios, basePath); });
564
+ },
565
+ /**
566
+ *
567
+ * @summary Update group
568
+ * @param {number} groupId Group ID.
569
+ * @param {GroupToCreate} groupToCreate Request body for the group to update.
570
+ * @param {*} [options] Override http request option.
571
+ * @throws {RequiredError}
572
+ */
573
+ updateGroup: function (groupId, groupToCreate, options) {
574
+ return localVarFp.updateGroup(groupId, groupToCreate, options).then(function (request) { return request(axios, basePath); });
575
+ },
576
+ /**
577
+ *
578
+ * @summary Add/remove persons to group
579
+ * @param {number} groupId Group ID.
580
+ * @param {UpdateGroup} updateGroup Request body for person IDs to add or remove.
581
+ * @param {*} [options] Override http request option.
582
+ * @throws {RequiredError}
583
+ */
584
+ updatePersonsInGroup: function (groupId, updateGroup, options) {
585
+ return localVarFp.updatePersonsInGroup(groupId, updateGroup, options).then(function (request) { return request(axios, basePath); });
586
+ },
587
+ };
588
+ };
589
+ /**
590
+ * GroupApi - object-oriented interface
591
+ * @export
592
+ * @class GroupApi
593
+ * @extends {BaseAPI}
594
+ */
595
+ var GroupApi = /** @class */ (function (_super) {
596
+ __extends(GroupApi, _super);
597
+ function GroupApi() {
598
+ return _super !== null && _super.apply(this, arguments) || this;
599
+ }
600
+ /**
601
+ *
602
+ * @summary Create group
603
+ * @param {GroupToCreate} groupToCreate Request body for the group to create.
604
+ * @param {*} [options] Override http request option.
605
+ * @throws {RequiredError}
606
+ * @memberof GroupApi
607
+ */
608
+ GroupApi.prototype.createGroup = function (groupToCreate, options) {
609
+ var _this = this;
610
+ return GroupApiFp(this.configuration).createGroup(groupToCreate, options).then(function (request) { return request(_this.axios, _this.basePath); });
611
+ };
612
+ /**
613
+ *
614
+ * @summary Delete group
615
+ * @param {number} groupId Group ID.
616
+ * @param {*} [options] Override http request option.
617
+ * @throws {RequiredError}
618
+ * @memberof GroupApi
619
+ */
620
+ GroupApi.prototype.deleteGroup = function (groupId, options) {
621
+ var _this = this;
622
+ return GroupApiFp(this.configuration).deleteGroup(groupId, options).then(function (request) { return request(_this.axios, _this.basePath); });
623
+ };
624
+ /**
625
+ *
626
+ * @summary Get groups
627
+ * @param {number} page The page number to get a list of persons or groups.
628
+ * @param {number} size The page size with a list of persons or groups, items.
629
+ * @param {*} [options] Override http request option.
630
+ * @throws {RequiredError}
631
+ * @memberof GroupApi
632
+ */
633
+ GroupApi.prototype.getAllGroups = function (page, size, options) {
634
+ var _this = this;
635
+ return GroupApiFp(this.configuration).getAllGroups(page, size, options).then(function (request) { return request(_this.axios, _this.basePath); });
636
+ };
637
+ /**
638
+ *
639
+ * @summary Get group persons
640
+ * @param {number} page The page number to get a list of persons or groups.
641
+ * @param {number} size The page size with a list of persons or groups, items.
642
+ * @param {number} groupId Group ID.
643
+ * @param {*} [options] Override http request option.
644
+ * @throws {RequiredError}
645
+ * @memberof GroupApi
646
+ */
647
+ GroupApi.prototype.getAllPersonsByGroupId = function (page, size, groupId, options) {
648
+ var _this = this;
649
+ return GroupApiFp(this.configuration).getAllPersonsByGroupId(page, size, groupId, options).then(function (request) { return request(_this.axios, _this.basePath); });
650
+ };
651
+ /**
652
+ *
653
+ * @summary Get group
654
+ * @param {number} groupId Group ID.
655
+ * @param {*} [options] Override http request option.
656
+ * @throws {RequiredError}
657
+ * @memberof GroupApi
658
+ */
659
+ GroupApi.prototype.getGroup = function (groupId, options) {
660
+ var _this = this;
661
+ return GroupApiFp(this.configuration).getGroup(groupId, options).then(function (request) { return request(_this.axios, _this.basePath); });
662
+ };
663
+ /**
664
+ *
665
+ * @summary Update group
666
+ * @param {number} groupId Group ID.
667
+ * @param {GroupToCreate} groupToCreate Request body for the group to update.
668
+ * @param {*} [options] Override http request option.
669
+ * @throws {RequiredError}
670
+ * @memberof GroupApi
671
+ */
672
+ GroupApi.prototype.updateGroup = function (groupId, groupToCreate, options) {
673
+ var _this = this;
674
+ return GroupApiFp(this.configuration).updateGroup(groupId, groupToCreate, options).then(function (request) { return request(_this.axios, _this.basePath); });
675
+ };
676
+ /**
677
+ *
678
+ * @summary Add/remove persons to group
679
+ * @param {number} groupId Group ID.
680
+ * @param {UpdateGroup} updateGroup Request body for person IDs to add or remove.
681
+ * @param {*} [options] Override http request option.
682
+ * @throws {RequiredError}
683
+ * @memberof GroupApi
684
+ */
685
+ GroupApi.prototype.updatePersonsInGroup = function (groupId, updateGroup, options) {
686
+ var _this = this;
687
+ return GroupApiFp(this.configuration).updatePersonsInGroup(groupId, updateGroup, options).then(function (request) { return request(_this.axios, _this.basePath); });
688
+ };
689
+ return GroupApi;
690
+ }(BaseAPI));
691
+ export { GroupApi };
692
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9ncm91cC1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQjs7Ozs7Ozs7OztHQVVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0gsT0FBTyxXQUFnRSxNQUFNLE9BQU8sQ0FBQztBQUVyRix5REFBeUQ7QUFDekQsYUFBYTtBQUNiLE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQW9GLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN04sYUFBYTtBQUNiLE9BQU8sRUFBRSxTQUFTLEVBQW1DLE9BQU8sRUFBaUIsTUFBTSxTQUFTLENBQUM7QUFhN0Y7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0seUJBQXlCLEdBQUcsVUFBVSxhQUE2QjtJQUF2QyxpQkF1UnhDO0lBdFJHLE9BQU87UUFDSDs7Ozs7O1dBTUc7UUFDSCxXQUFXLEVBQUUsVUFBTyxhQUE0QixFQUFFLE9BQWdDO1lBQWhDLHdCQUFBLEVBQUEsWUFBZ0M7Ozs7b0JBQzlFLHFFQUFxRTtvQkFDckUsaUJBQWlCLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQTtvQkFDMUQsWUFBWSxHQUFHLGFBQWEsQ0FBQztvQkFFN0IsY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQztvQkFFN0QsSUFBSSxhQUFhLEVBQUU7d0JBQ2YsV0FBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7cUJBQzNDO29CQUVLLHNCQUFzQix1QkFBSyxNQUFNLEVBQUUsTUFBTSxJQUFLLFdBQVcsR0FBSyxPQUFPLENBQUMsQ0FBQztvQkFDdkUsdUJBQXVCLEdBQUcsRUFB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