@protontech/drive-sdk 0.0.13 → 0.1.0

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 (234) hide show
  1. package/dist/cache/index.d.ts +1 -0
  2. package/dist/cache/index.js +3 -1
  3. package/dist/cache/index.js.map +1 -1
  4. package/dist/cache/memoryCache.d.ts +1 -1
  5. package/dist/cache/nullCache.d.ts +14 -0
  6. package/dist/cache/nullCache.js +37 -0
  7. package/dist/cache/nullCache.js.map +1 -0
  8. package/dist/config.d.ts +16 -1
  9. package/dist/config.js +1 -1
  10. package/dist/config.js.map +1 -1
  11. package/dist/crypto/openPGPCrypto.js +2 -0
  12. package/dist/crypto/openPGPCrypto.js.map +1 -1
  13. package/dist/diagnostic/eventsGenerator.d.ts +14 -0
  14. package/dist/diagnostic/eventsGenerator.js +49 -0
  15. package/dist/diagnostic/eventsGenerator.js.map +1 -0
  16. package/dist/diagnostic/httpClient.d.ts +16 -0
  17. package/dist/diagnostic/httpClient.js +81 -0
  18. package/dist/diagnostic/httpClient.js.map +1 -0
  19. package/dist/diagnostic/index.d.ts +10 -0
  20. package/dist/diagnostic/index.js +35 -0
  21. package/dist/diagnostic/index.js.map +1 -0
  22. package/dist/diagnostic/integrityVerificationStream.d.ts +21 -0
  23. package/dist/diagnostic/integrityVerificationStream.js +56 -0
  24. package/dist/diagnostic/integrityVerificationStream.js.map +1 -0
  25. package/dist/diagnostic/interface.d.ts +102 -0
  26. package/dist/diagnostic/interface.js +3 -0
  27. package/dist/diagnostic/interface.js.map +1 -0
  28. package/dist/diagnostic/sdkDiagnostic.d.ts +22 -0
  29. package/dist/diagnostic/sdkDiagnostic.js +216 -0
  30. package/dist/diagnostic/sdkDiagnostic.js.map +1 -0
  31. package/dist/diagnostic/sdkDiagnosticFull.d.ts +18 -0
  32. package/dist/diagnostic/sdkDiagnosticFull.js +35 -0
  33. package/dist/diagnostic/sdkDiagnosticFull.js.map +1 -0
  34. package/dist/diagnostic/telemetry.d.ts +25 -0
  35. package/dist/diagnostic/telemetry.js +70 -0
  36. package/dist/diagnostic/telemetry.js.map +1 -0
  37. package/dist/diagnostic/zipGenerators.d.ts +9 -0
  38. package/dist/diagnostic/zipGenerators.js +64 -0
  39. package/dist/diagnostic/zipGenerators.js.map +1 -0
  40. package/dist/diagnostic/zipGenerators.test.js +144 -0
  41. package/dist/diagnostic/zipGenerators.test.js.map +1 -0
  42. package/dist/errors.d.ts +2 -1
  43. package/dist/errors.js +3 -1
  44. package/dist/errors.js.map +1 -1
  45. package/dist/interface/config.d.ts +26 -0
  46. package/dist/interface/config.js +3 -0
  47. package/dist/interface/config.js.map +1 -0
  48. package/dist/interface/download.d.ts +2 -2
  49. package/dist/interface/events.d.ts +60 -20
  50. package/dist/interface/events.js +11 -1
  51. package/dist/interface/events.js.map +1 -1
  52. package/dist/interface/httpClient.d.ts +0 -14
  53. package/dist/interface/index.d.ts +8 -4
  54. package/dist/interface/index.js +2 -1
  55. package/dist/interface/index.js.map +1 -1
  56. package/dist/interface/nodes.d.ts +9 -0
  57. package/dist/interface/nodes.js.map +1 -1
  58. package/dist/interface/sharing.d.ts +1 -0
  59. package/dist/interface/upload.d.ts +6 -0
  60. package/dist/internal/download/apiService.js +32 -31
  61. package/dist/internal/download/apiService.js.map +1 -1
  62. package/dist/internal/download/fileDownloader.d.ts +2 -2
  63. package/dist/internal/download/fileDownloader.js.map +1 -1
  64. package/dist/internal/events/apiService.d.ts +4 -6
  65. package/dist/internal/events/apiService.js +15 -22
  66. package/dist/internal/events/apiService.js.map +1 -1
  67. package/dist/internal/events/coreEventManager.d.ts +7 -10
  68. package/dist/internal/events/coreEventManager.js +19 -36
  69. package/dist/internal/events/coreEventManager.js.map +1 -1
  70. package/dist/internal/events/coreEventManager.test.js +87 -0
  71. package/dist/internal/events/coreEventManager.test.js.map +1 -0
  72. package/dist/internal/events/eventManager.d.ts +11 -36
  73. package/dist/internal/events/eventManager.js +59 -105
  74. package/dist/internal/events/eventManager.js.map +1 -1
  75. package/dist/internal/events/eventManager.test.js +167 -82
  76. package/dist/internal/events/eventManager.test.js.map +1 -1
  77. package/dist/internal/events/index.d.ts +13 -33
  78. package/dist/internal/events/index.js +56 -72
  79. package/dist/internal/events/index.js.map +1 -1
  80. package/dist/internal/events/interface.d.ts +59 -14
  81. package/dist/internal/events/interface.js +13 -3
  82. package/dist/internal/events/interface.js.map +1 -1
  83. package/dist/internal/events/volumeEventManager.d.ts +7 -17
  84. package/dist/internal/events/volumeEventManager.js +58 -45
  85. package/dist/internal/events/volumeEventManager.js.map +1 -1
  86. package/dist/internal/events/volumeEventManager.test.d.ts +1 -0
  87. package/dist/internal/events/volumeEventManager.test.js +203 -0
  88. package/dist/internal/events/volumeEventManager.test.js.map +1 -0
  89. package/dist/internal/nodes/cache.d.ts +10 -1
  90. package/dist/internal/nodes/cache.js +17 -0
  91. package/dist/internal/nodes/cache.js.map +1 -1
  92. package/dist/internal/nodes/cryptoService.d.ts +1 -1
  93. package/dist/internal/nodes/cryptoService.js.map +1 -1
  94. package/dist/internal/nodes/events.d.ts +7 -83
  95. package/dist/internal/nodes/events.js +43 -217
  96. package/dist/internal/nodes/events.js.map +1 -1
  97. package/dist/internal/nodes/events.test.js +27 -277
  98. package/dist/internal/nodes/events.test.js.map +1 -1
  99. package/dist/internal/nodes/index.d.ts +3 -4
  100. package/dist/internal/nodes/index.js +5 -5
  101. package/dist/internal/nodes/index.js.map +1 -1
  102. package/dist/internal/nodes/nodesAccess.d.ts +15 -0
  103. package/dist/internal/nodes/nodesAccess.js +37 -0
  104. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  105. package/dist/internal/nodes/nodesAccess.test.js +131 -93
  106. package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
  107. package/dist/internal/nodes/nodesManagement.d.ts +1 -3
  108. package/dist/internal/nodes/nodesManagement.js +12 -26
  109. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  110. package/dist/internal/nodes/nodesManagement.test.js +35 -14
  111. package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
  112. package/dist/internal/shares/cache.d.ts +2 -0
  113. package/dist/internal/shares/cache.js +2 -0
  114. package/dist/internal/shares/cache.js.map +1 -1
  115. package/dist/internal/shares/manager.d.ts +1 -0
  116. package/dist/internal/shares/manager.js +3 -0
  117. package/dist/internal/shares/manager.js.map +1 -1
  118. package/dist/internal/sharing/apiService.js +1 -0
  119. package/dist/internal/sharing/apiService.js.map +1 -1
  120. package/dist/internal/sharing/cryptoService.js +1 -0
  121. package/dist/internal/sharing/cryptoService.js.map +1 -1
  122. package/dist/internal/sharing/events.d.ts +23 -55
  123. package/dist/internal/sharing/events.js +46 -138
  124. package/dist/internal/sharing/events.js.map +1 -1
  125. package/dist/internal/sharing/events.test.js +77 -180
  126. package/dist/internal/sharing/events.test.js.map +1 -1
  127. package/dist/internal/sharing/index.d.ts +4 -5
  128. package/dist/internal/sharing/index.js +5 -5
  129. package/dist/internal/sharing/index.js.map +1 -1
  130. package/dist/internal/sharing/interface.d.ts +3 -0
  131. package/dist/internal/sharing/sharingManagement.d.ts +2 -3
  132. package/dist/internal/sharing/sharingManagement.js +7 -9
  133. package/dist/internal/sharing/sharingManagement.js.map +1 -1
  134. package/dist/internal/sharing/sharingManagement.test.js +9 -39
  135. package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
  136. package/dist/internal/upload/apiService.d.ts +2 -3
  137. package/dist/internal/upload/apiService.js +7 -4
  138. package/dist/internal/upload/apiService.js.map +1 -1
  139. package/dist/internal/upload/index.d.ts +2 -2
  140. package/dist/internal/upload/index.js +3 -3
  141. package/dist/internal/upload/index.js.map +1 -1
  142. package/dist/internal/upload/interface.d.ts +2 -0
  143. package/dist/internal/upload/manager.d.ts +5 -5
  144. package/dist/internal/upload/manager.js +19 -50
  145. package/dist/internal/upload/manager.js.map +1 -1
  146. package/dist/internal/upload/manager.test.js +68 -44
  147. package/dist/internal/upload/manager.test.js.map +1 -1
  148. package/dist/internal/upload/streamUploader.js +1 -2
  149. package/dist/internal/upload/streamUploader.js.map +1 -1
  150. package/dist/internal/upload/streamUploader.test.js +1 -1
  151. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  152. package/dist/protonDriveClient.d.ts +19 -162
  153. package/dist/protonDriveClient.js +26 -190
  154. package/dist/protonDriveClient.js.map +1 -1
  155. package/dist/protonDrivePhotosClient.js +3 -2
  156. package/dist/protonDrivePhotosClient.js.map +1 -1
  157. package/package.json +3 -3
  158. package/src/cache/index.ts +1 -0
  159. package/src/cache/memoryCache.ts +1 -1
  160. package/src/cache/nullCache.ts +38 -0
  161. package/src/config.ts +17 -2
  162. package/src/crypto/openPGPCrypto.ts +2 -0
  163. package/src/diagnostic/eventsGenerator.ts +48 -0
  164. package/src/diagnostic/httpClient.ts +80 -0
  165. package/src/diagnostic/index.ts +38 -0
  166. package/src/diagnostic/integrityVerificationStream.ts +56 -0
  167. package/src/diagnostic/interface.ts +158 -0
  168. package/src/diagnostic/sdkDiagnostic.ts +238 -0
  169. package/src/diagnostic/sdkDiagnosticFull.ts +40 -0
  170. package/src/diagnostic/telemetry.ts +71 -0
  171. package/src/diagnostic/zipGenerators.test.ts +177 -0
  172. package/src/diagnostic/zipGenerators.ts +70 -0
  173. package/src/errors.ts +4 -1
  174. package/src/interface/config.ts +28 -0
  175. package/src/interface/download.ts +2 -2
  176. package/src/interface/events.ts +66 -21
  177. package/src/interface/httpClient.ts +0 -16
  178. package/src/interface/index.ts +8 -4
  179. package/src/interface/nodes.ts +21 -12
  180. package/src/interface/sharing.ts +1 -0
  181. package/src/interface/upload.ts +6 -0
  182. package/src/internal/download/apiService.ts +11 -8
  183. package/src/internal/download/fileDownloader.ts +2 -2
  184. package/src/internal/events/apiService.ts +25 -28
  185. package/src/internal/events/coreEventManager.test.ts +101 -0
  186. package/src/internal/events/coreEventManager.ts +20 -45
  187. package/src/internal/events/eventManager.test.ts +201 -88
  188. package/src/internal/events/eventManager.ts +69 -115
  189. package/src/internal/events/index.ts +54 -84
  190. package/src/internal/events/interface.ts +70 -15
  191. package/src/internal/events/volumeEventManager.test.ts +243 -0
  192. package/src/internal/events/volumeEventManager.ts +55 -53
  193. package/src/internal/nodes/cache.ts +20 -2
  194. package/src/internal/nodes/cryptoService.ts +1 -1
  195. package/src/internal/nodes/events.test.ts +29 -335
  196. package/src/internal/nodes/events.ts +45 -253
  197. package/src/internal/nodes/index.ts +6 -8
  198. package/src/internal/nodes/interface.ts +2 -2
  199. package/src/internal/nodes/nodesAccess.test.ts +132 -91
  200. package/src/internal/nodes/nodesAccess.ts +40 -1
  201. package/src/internal/nodes/nodesManagement.test.ts +39 -15
  202. package/src/internal/nodes/nodesManagement.ts +12 -30
  203. package/src/internal/shares/cache.ts +4 -2
  204. package/src/internal/shares/manager.ts +9 -5
  205. package/src/internal/sharing/apiService.ts +1 -0
  206. package/src/internal/sharing/cache.ts +1 -1
  207. package/src/internal/sharing/cryptoService.ts +1 -0
  208. package/src/internal/sharing/events.test.ts +89 -195
  209. package/src/internal/sharing/events.ts +42 -156
  210. package/src/internal/sharing/index.ts +6 -9
  211. package/src/internal/sharing/interface.ts +6 -2
  212. package/src/internal/sharing/sharingManagement.test.ts +10 -40
  213. package/src/internal/sharing/sharingManagement.ts +7 -11
  214. package/src/internal/upload/apiService.ts +5 -6
  215. package/src/internal/upload/index.ts +5 -5
  216. package/src/internal/upload/interface.ts +2 -0
  217. package/src/internal/upload/manager.test.ts +75 -45
  218. package/src/internal/upload/manager.ts +24 -54
  219. package/src/internal/upload/streamUploader.test.ts +0 -1
  220. package/src/internal/upload/streamUploader.ts +0 -2
  221. package/src/protonDriveClient.ts +75 -244
  222. package/src/protonDrivePhotosClient.ts +4 -3
  223. package/dist/internal/events/cache.d.ts +0 -28
  224. package/dist/internal/events/cache.js +0 -67
  225. package/dist/internal/events/cache.js.map +0 -1
  226. package/dist/internal/events/cache.test.js +0 -43
  227. package/dist/internal/events/cache.test.js.map +0 -1
  228. package/dist/internal/nodes/index.test.js +0 -114
  229. package/dist/internal/nodes/index.test.js.map +0 -1
  230. package/src/internal/events/cache.test.ts +0 -47
  231. package/src/internal/events/cache.ts +0 -80
  232. package/src/internal/nodes/index.test.ts +0 -137
  233. /package/dist/{internal/events/cache.test.d.ts → diagnostic/zipGenerators.test.d.ts} +0 -0
  234. /package/dist/internal/{nodes/index.test.d.ts → events/coreEventManager.test.d.ts} +0 -0
@@ -16,7 +16,7 @@ describe('nodesAccess', () => {
16
16
  apiService = {
17
17
  getNode: jest.fn(),
18
18
  iterateNodes: jest.fn().mockImplementation(async function* (uids) {
19
- yield* uids.map((uid => ({ uid, parentUid: 'parentUid' })));
19
+ yield* uids.map((uid => ({ uid, parentUid: 'volumeId~parentNodeId' })));
20
20
  }),
21
21
  iterateChildrenNodeUids: jest.fn(),
22
22
  };
@@ -47,71 +47,74 @@ describe('nodesAccess', () => {
47
47
  });
48
48
  describe('getNode', () => {
49
49
  it('should get node from cache', async () => {
50
- const node = { uid: 'nodeId', isStale: false };
50
+ const node = { uid: 'volumeId~nodeId', isStale: false };
51
51
  cache.getNode = jest.fn(() => Promise.resolve(node));
52
- const result = await access.getNode('nodeId');
52
+ const result = await access.getNode('volumeId~nodeId');
53
53
  expect(result).toBe(node);
54
54
  expect(apiService.getNode).not.toHaveBeenCalled();
55
55
  });
56
- it('should get node from API when cahce is stale', async () => {
57
- const encryptedNode = { uid: 'nodeId', parentUid: 'parentUid' };
58
- const decryptedUnparsedNode = { uid: 'nodeId', parentUid: 'parentUid', name: { ok: true, value: 'name' } };
56
+ it('should get node from API when cache is stale', async () => {
57
+ const encryptedNode = { uid: 'volumeId~nodeId', parentUid: 'volumeId~parentNodeid' };
58
+ const decryptedUnparsedNode = { uid: 'volumeId~nodeId', parentUid: 'volumeId~parentNodeid', name: { ok: true, value: 'name' } };
59
59
  const decryptedNode = {
60
60
  ...decryptedUnparsedNode,
61
61
  name: { ok: true, value: 'name' },
62
62
  isStale: false,
63
63
  activeRevision: undefined,
64
64
  folder: undefined,
65
+ treeEventScopeId: "volumeId",
65
66
  };
66
67
  const decryptedKeys = { key: 'key' };
67
- cache.getNode = jest.fn(() => Promise.resolve({ uid: 'nodeId', isStale: true }));
68
+ cache.getNode = jest.fn(() => Promise.resolve({ uid: 'volumeId~nodeId', isStale: true }));
68
69
  apiService.getNode = jest.fn(() => Promise.resolve(encryptedNode));
69
70
  cryptoCache.getNodeKeys = jest.fn(() => Promise.resolve({ key: 'parentKey' }));
70
71
  cryptoService.decryptNode = jest.fn(() => Promise.resolve({ node: decryptedUnparsedNode, keys: decryptedKeys }));
71
- const result = await access.getNode('nodeId');
72
+ const result = await access.getNode('volumeId~nodeId');
72
73
  expect(result).toEqual(decryptedNode);
73
- expect(apiService.getNode).toHaveBeenCalledWith('nodeId', 'volumeId');
74
- expect(cryptoCache.getNodeKeys).toHaveBeenCalledWith('parentUid');
74
+ expect(apiService.getNode).toHaveBeenCalledWith('volumeId~nodeId', 'volumeId');
75
+ expect(cryptoCache.getNodeKeys).toHaveBeenCalledWith('volumeId~parentNodeid');
75
76
  expect(cryptoService.decryptNode).toHaveBeenCalledWith(encryptedNode, 'parentKey');
76
77
  expect(cache.setNode).toHaveBeenCalledWith(decryptedNode);
77
- expect(cryptoCache.setNodeKeys).toHaveBeenCalledWith('nodeId', decryptedKeys);
78
+ expect(cryptoCache.setNodeKeys).toHaveBeenCalledWith('volumeId~nodeId', decryptedKeys);
78
79
  });
79
80
  it('should get node from API missing cache', async () => {
80
- const encryptedNode = { uid: 'nodeId', parentUid: 'parentUid' };
81
- const decryptedUnparsedNode = { uid: 'nodeId', parentUid: 'parentUid', name: { ok: true, value: 'name' } };
81
+ const encryptedNode = { uid: 'volumeId~nodeId', parentUid: 'volumeId~parentNodeid' };
82
+ const decryptedUnparsedNode = { uid: 'volumeId~nodeId', parentUid: 'volumeId~parentNodeid', name: { ok: true, value: 'name' } };
82
83
  const decryptedNode = {
83
84
  ...decryptedUnparsedNode,
84
85
  name: { ok: true, value: 'name' },
85
86
  isStale: false,
86
87
  activeRevision: undefined,
87
88
  folder: undefined,
89
+ treeEventScopeId: 'volumeId',
88
90
  };
89
91
  const decryptedKeys = { key: 'key' };
90
92
  cache.getNode = jest.fn(() => Promise.reject(new Error('Entity not found')));
91
93
  apiService.getNode = jest.fn(() => Promise.resolve(encryptedNode));
92
94
  cryptoCache.getNodeKeys = jest.fn(() => Promise.resolve({ key: 'parentKey' }));
93
95
  cryptoService.decryptNode = jest.fn(() => Promise.resolve({ node: decryptedUnparsedNode, keys: decryptedKeys }));
94
- const result = await access.getNode('nodeId');
96
+ const result = await access.getNode('volumeId~nodeId');
95
97
  expect(result).toEqual(decryptedNode);
96
- expect(apiService.getNode).toHaveBeenCalledWith('nodeId', 'volumeId');
97
- expect(cryptoCache.getNodeKeys).toHaveBeenCalledWith('parentUid');
98
+ expect(apiService.getNode).toHaveBeenCalledWith('volumeId~nodeId', 'volumeId');
99
+ expect(cryptoCache.getNodeKeys).toHaveBeenCalledWith('volumeId~parentNodeid');
98
100
  expect(cryptoService.decryptNode).toHaveBeenCalledWith(encryptedNode, 'parentKey');
99
101
  expect(cache.setNode).toHaveBeenCalledWith(decryptedNode);
100
- expect(cryptoCache.setNodeKeys).toHaveBeenCalledWith('nodeId', decryptedKeys);
102
+ expect(cryptoCache.setNodeKeys).toHaveBeenCalledWith('volumeId~nodeId', decryptedKeys);
101
103
  });
102
104
  it('should validate node name', async () => {
103
- const encryptedNode = { uid: 'nodeId', parentUid: 'parentUid' };
104
- const decryptedUnparsedNode = { uid: 'nodeId', parentUid: 'parentUid', name: { ok: true, value: 'foo/bar' } };
105
+ const encryptedNode = { uid: 'volumeId~nodeId', parentUid: 'volumeId~parentNodeid' };
106
+ const decryptedUnparsedNode = { uid: 'volumeId~nodeId', parentUid: 'volumeId~parentNodeid', name: { ok: true, value: 'foo/bar' } };
105
107
  const decryptedNode = {
106
108
  ...decryptedUnparsedNode,
107
109
  name: { ok: false, error: { name: 'foo/bar', error: "Name must not contain the character '/'" } },
110
+ treeEventScopeId: 'volumeId',
108
111
  };
109
112
  const decryptedKeys = { key: 'key' };
110
113
  cache.getNode = jest.fn(() => Promise.reject(new Error('Entity not found')));
111
114
  apiService.getNode = jest.fn(() => Promise.resolve(encryptedNode));
112
115
  cryptoCache.getNodeKeys = jest.fn(() => Promise.resolve({ key: 'parentKey' }));
113
116
  cryptoService.decryptNode = jest.fn(() => Promise.resolve({ node: decryptedUnparsedNode, keys: decryptedKeys }));
114
- const result = await access.getNode('nodeId');
117
+ const result = await access.getNode('volumeId~nodeId');
115
118
  expect(result).toMatchObject(decryptedNode);
116
119
  });
117
120
  });
@@ -124,11 +127,11 @@ describe('nodesAccess', () => {
124
127
  }));
125
128
  });
126
129
  describe('iterateChildren', () => {
127
- const parentNode = { uid: 'parentUid', isStale: false };
128
- const node1 = { uid: 'node1', isStale: false };
129
- const node2 = { uid: 'node2', isStale: false };
130
- const node3 = { uid: 'node3', isStale: false };
131
- const node4 = { uid: 'node4', isStale: false };
130
+ const parentNode = { uid: 'volumeId~parentNodeid', isStale: false };
131
+ const node1 = { uid: 'volumeId~node1', isStale: false };
132
+ const node2 = { uid: 'volumeId~node2', isStale: false };
133
+ const node3 = { uid: 'volumeId~node3', isStale: false };
134
+ const node4 = { uid: 'volumeId~node4', isStale: false };
132
135
  beforeEach(() => {
133
136
  cache.getNode = jest.fn().mockResolvedValue(parentNode);
134
137
  });
@@ -140,7 +143,7 @@ describe('nodesAccess', () => {
140
143
  yield { ok: true, node: node3 };
141
144
  yield { ok: true, node: node4 };
142
145
  });
143
- const result = await Array.fromAsync(access.iterateFolderChildren('parentUid'));
146
+ const result = await Array.fromAsync(access.iterateFolderChildren('volumeId~parentNodeid'));
144
147
  expect(result).toMatchObject([node1, node2, node3, node4]);
145
148
  expect(apiService.iterateChildrenNodeUids).not.toHaveBeenCalled();
146
149
  expect(apiService.iterateNodes).not.toHaveBeenCalled();
@@ -153,33 +156,33 @@ describe('nodesAccess', () => {
153
156
  yield { ok: true, uid: node3.uid, node: { ...node3, isStale: true } };
154
157
  yield { ok: true, uid: node4.uid, node: node4 };
155
158
  });
156
- const result = await Array.fromAsync(access.iterateFolderChildren('parentUid'));
159
+ const result = await Array.fromAsync(access.iterateFolderChildren('volumeId~parentNodeid'));
157
160
  expect(result).toMatchObject([node1, node4, node2, node3]);
158
- expect(apiService.iterateNodes).toHaveBeenCalledWith(['node2', 'node3'], 'volumeId', undefined);
161
+ expect(apiService.iterateNodes).toHaveBeenCalledWith([node2.uid, node3.uid], 'volumeId', undefined);
159
162
  expect(cryptoService.decryptNode).toHaveBeenCalledTimes(2);
160
163
  expect(cache.setNode).toHaveBeenCalledTimes(2);
161
164
  expect(cryptoCache.setNodeKeys).toHaveBeenCalledTimes(2);
162
165
  });
163
166
  it('should load children uids and serve nodes from cache', async () => {
164
167
  apiService.iterateChildrenNodeUids = jest.fn().mockImplementation(async function* () {
165
- yield 'node1';
166
- yield 'node2';
167
- yield 'node3';
168
- yield 'node4';
168
+ yield node1.uid;
169
+ yield node2.uid;
170
+ yield node3.uid;
171
+ yield node4.uid;
169
172
  });
170
173
  cache.getNode = jest.fn().mockImplementation((uid) => ({ uid, isStale: false }));
171
- const result = await Array.fromAsync(access.iterateFolderChildren('parentUid'));
174
+ const result = await Array.fromAsync(access.iterateFolderChildren('volumeId~parentNodeid'));
172
175
  expect(result).toMatchObject([node1, node2, node3, node4]);
173
- expect(apiService.iterateChildrenNodeUids).toHaveBeenCalledWith('parentUid', undefined);
176
+ expect(apiService.iterateChildrenNodeUids).toHaveBeenCalledWith('volumeId~parentNodeid', undefined);
174
177
  expect(apiService.iterateNodes).not.toHaveBeenCalled();
175
- expect(cache.setFolderChildrenLoaded).toHaveBeenCalledWith('parentUid');
178
+ expect(cache.setFolderChildrenLoaded).toHaveBeenCalledWith('volumeId~parentNodeid');
176
179
  });
177
180
  it('should load from API', async () => {
178
181
  apiService.iterateChildrenNodeUids = jest.fn().mockImplementation(async function* () {
179
- yield 'node1';
180
- yield 'node2';
181
- yield 'node3';
182
- yield 'node4';
182
+ yield node1.uid;
183
+ yield node2.uid;
184
+ yield node3.uid;
185
+ yield node4.uid;
183
186
  });
184
187
  cache.getNode = jest.fn().mockImplementation((uid) => {
185
188
  if (uid === parentNode.uid) {
@@ -187,20 +190,20 @@ describe('nodesAccess', () => {
187
190
  }
188
191
  throw new Error('Entity not found');
189
192
  });
190
- const result = await Array.fromAsync(access.iterateFolderChildren('parentUid'));
193
+ const result = await Array.fromAsync(access.iterateFolderChildren('volumeId~parentNodeid'));
191
194
  expect(result).toMatchObject([node1, node2, node3, node4]);
192
- expect(apiService.iterateChildrenNodeUids).toHaveBeenCalledWith('parentUid', undefined);
193
- expect(apiService.iterateNodes).toHaveBeenCalledWith(['node1', 'node2', 'node3', 'node4'], 'volumeId', undefined);
195
+ expect(apiService.iterateChildrenNodeUids).toHaveBeenCalledWith('volumeId~parentNodeid', undefined);
196
+ expect(apiService.iterateNodes).toHaveBeenCalledWith(['volumeId~node1', 'volumeId~node2', 'volumeId~node3', 'volumeId~node4'], 'volumeId', undefined);
194
197
  expect(cryptoService.decryptNode).toHaveBeenCalledTimes(4);
195
198
  expect(cache.setNode).toHaveBeenCalledTimes(4);
196
199
  expect(cryptoCache.setNodeKeys).toHaveBeenCalledTimes(4);
197
- expect(cache.setFolderChildrenLoaded).toHaveBeenCalledWith('parentUid');
200
+ expect(cache.setFolderChildrenLoaded).toHaveBeenCalledWith('volumeId~parentNodeid');
198
201
  });
199
202
  it('should remove from cache if missing on API', async () => {
200
203
  apiService.iterateChildrenNodeUids = jest.fn().mockImplementation(async function* () {
201
- yield 'node1';
202
- yield 'node2';
203
- yield 'node3';
204
+ yield node1.uid;
205
+ yield node2.uid;
206
+ yield node3.uid;
204
207
  });
205
208
  cache.getNode = jest.fn().mockImplementation((uid) => {
206
209
  if (uid === parentNode.uid) {
@@ -212,15 +215,15 @@ describe('nodesAccess', () => {
212
215
  // Skip first node - make it missing.
213
216
  yield* uids.slice(1).map((uid) => ({ uid, parentUid: parentNode.uid }));
214
217
  });
215
- const result = await Array.fromAsync(access.iterateFolderChildren('parentUid'));
218
+ const result = await Array.fromAsync(access.iterateFolderChildren('volumeId~parentNodeid'));
216
219
  expect(result).toMatchObject([node2, node3]);
217
- expect(cache.removeNodes).toHaveBeenCalledWith(['node1']);
220
+ expect(cache.removeNodes).toHaveBeenCalledWith([node1.uid]);
218
221
  });
219
222
  it('should yield all decryptable children before throwing error', async () => {
220
223
  apiService.iterateChildrenNodeUids = jest.fn().mockImplementation(async function* () {
221
- yield 'node1';
222
- yield 'node2';
223
- yield 'node3';
224
+ yield 'volumeId~node1';
225
+ yield 'volumeId~node2';
226
+ yield 'volumeId~node3';
224
227
  });
225
228
  cache.getNode = jest.fn().mockImplementation((uid) => {
226
229
  if (uid === parentNode.uid) {
@@ -229,7 +232,7 @@ describe('nodesAccess', () => {
229
232
  throw new Error('Entity not found');
230
233
  });
231
234
  cryptoService.decryptNode = jest.fn().mockImplementation((encryptedNode) => {
232
- if (encryptedNode.uid === 'node2') {
235
+ if (encryptedNode.uid === 'volumeId~node2') {
233
236
  throw new errors_1.DecryptionError('Decryption failed');
234
237
  }
235
238
  return Promise.resolve({
@@ -237,11 +240,11 @@ describe('nodesAccess', () => {
237
240
  keys: { key: 'key' },
238
241
  });
239
242
  });
240
- const generator = access.iterateFolderChildren('parentUid');
243
+ const generator = access.iterateFolderChildren('volumeId~parentNodeid');
241
244
  const node1 = await generator.next();
242
- expect(node1.value).toMatchObject({ uid: 'node1' });
245
+ expect(node1.value).toMatchObject({ uid: 'volumeId~node1' });
243
246
  const node2 = await generator.next();
244
- expect(node2.value).toMatchObject({ uid: 'node3' });
247
+ expect(node2.value).toMatchObject({ uid: 'volumeId~node3' });
245
248
  const node3 = generator.next();
246
249
  await expect(node3).rejects.toThrow('Failed to decrypt some nodes');
247
250
  try {
@@ -256,10 +259,10 @@ describe('nodesAccess', () => {
256
259
  });
257
260
  describe('iterateTrashedNodes', () => {
258
261
  const volumeId = 'volumeId';
259
- const node1 = { uid: 'node1', isStale: false };
260
- const node2 = { uid: 'node2', isStale: false };
261
- const node3 = { uid: 'node3', isStale: false };
262
- const node4 = { uid: 'node4', isStale: false };
262
+ const node1 = { uid: 'volumeId~node1', isStale: false };
263
+ const node2 = { uid: 'volumeId~node2', isStale: false };
264
+ const node3 = { uid: 'volumeId~node3', isStale: false };
265
+ const node4 = { uid: 'volumeId~node4', isStale: false };
263
266
  beforeEach(() => {
264
267
  shareService.getMyFilesIDs = jest.fn().mockResolvedValue({ volumeId });
265
268
  apiService.iterateTrashedNodeUids = jest.fn().mockImplementation(async function* () {
@@ -283,7 +286,7 @@ describe('nodesAccess', () => {
283
286
  const result = await Array.fromAsync(access.iterateTrashedNodes());
284
287
  expect(result).toMatchObject([node1, node2, node3, node4]);
285
288
  expect(apiService.iterateTrashedNodeUids).toHaveBeenCalledWith(volumeId, undefined);
286
- expect(apiService.iterateNodes).toHaveBeenCalledWith(['node1', 'node2', 'node3', 'node4'], volumeId, undefined);
289
+ expect(apiService.iterateNodes).toHaveBeenCalledWith(['volumeId~node1', 'volumeId~node2', 'volumeId~node3', 'volumeId~node4'], volumeId, undefined);
287
290
  expect(cryptoService.decryptNode).toHaveBeenCalledTimes(4);
288
291
  expect(cache.setNode).toHaveBeenCalledTimes(4);
289
292
  expect(cryptoCache.setNodeKeys).toHaveBeenCalledTimes(4);
@@ -294,18 +297,18 @@ describe('nodesAccess', () => {
294
297
  });
295
298
  apiService.iterateNodes = jest.fn().mockImplementation(async function* (uids) {
296
299
  // Skip first node - make it missing.
297
- yield* uids.slice(1).map((uid) => ({ uid, parentUid: 'parentUid' }));
300
+ yield* uids.slice(1).map((uid) => ({ uid, parentUid: 'volumeId~parentNodeid' }));
298
301
  });
299
302
  const result = await Array.fromAsync(access.iterateTrashedNodes());
300
303
  expect(result).toMatchObject([node2, node3, node4]);
301
- expect(cache.removeNodes).toHaveBeenCalledWith(['node1']);
304
+ expect(cache.removeNodes).toHaveBeenCalledWith(['volumeId~node1']);
302
305
  });
303
306
  });
304
307
  describe('iterateNodes', () => {
305
- const node1 = { uid: 'node1', isStale: false };
306
- const node2 = { uid: 'node2', isStale: false };
307
- const node3 = { uid: 'node3', isStale: false };
308
- const node4 = { uid: 'node4', isStale: false };
308
+ const node1 = { uid: 'volumeId~node1', isStale: false, treeEventScopeId: 'volumeId' };
309
+ const node2 = { uid: 'volumeId~node2', isStale: false, treeEventScopeId: 'volumeId' };
310
+ const node3 = { uid: 'volumeId~node3', isStale: false, treeEventScopeId: 'volumeId' };
311
+ const node4 = { uid: 'volume~node4', isStale: false, treeEventScopeId: 'volumeId' };
309
312
  it('should serve fully from cache', async () => {
310
313
  cache.iterateNodes = jest.fn().mockImplementation(async function* () {
311
314
  yield { ok: true, node: node1 };
@@ -313,67 +316,70 @@ describe('nodesAccess', () => {
313
316
  yield { ok: true, node: node3 };
314
317
  yield { ok: true, node: node4 };
315
318
  });
316
- const result = await Array.fromAsync(access.iterateNodes(['node1', 'node2', 'node3', 'node4']));
319
+ const result = await Array.fromAsync(access.iterateNodes(['volumeId~node1', 'volumeId~node2', 'volumeId~node3', 'volumeId~node4']));
317
320
  expect(result).toMatchObject([node1, node2, node3, node4]);
318
321
  expect(apiService.iterateNodes).not.toHaveBeenCalled();
319
322
  });
320
323
  it('should load from API', async () => {
321
324
  cache.iterateNodes = jest.fn().mockImplementation(async function* () {
322
325
  yield { ok: true, node: node1 };
323
- yield { ok: false, uid: 'node2' };
324
- yield { ok: false, uid: 'node3' };
326
+ yield { ok: false, uid: 'volumeId~node2' };
327
+ yield { ok: false, uid: 'volumeId~node3' };
325
328
  yield { ok: true, node: node4 };
326
329
  });
327
- const result = await Array.fromAsync(access.iterateNodes(['node1', 'node2', 'node3', 'node4']));
330
+ const result = await Array.fromAsync(access.iterateNodes(['volumeId~node1', 'volumeId~node2', 'volumeId~node3', 'volumeId~node4']));
328
331
  expect(result).toMatchObject([node1, node4, node2, node3]);
329
- expect(apiService.iterateNodes).toHaveBeenCalledWith(['node2', 'node3'], 'volumeId', undefined);
332
+ expect(apiService.iterateNodes).toHaveBeenCalledWith(['volumeId~node2', 'volumeId~node3'], 'volumeId', undefined);
330
333
  });
331
334
  it('should remove from cache if missing on API and return back to caller', async () => {
332
335
  cache.iterateNodes = jest.fn().mockImplementation(async function* () {
333
- yield { ok: false, uid: 'node1' };
334
- yield { ok: false, uid: 'node2' };
335
- yield { ok: false, uid: 'node3' };
336
+ yield { ok: false, uid: 'volumeId~node1' };
337
+ yield { ok: false, uid: 'volumeId~node2' };
338
+ yield { ok: false, uid: 'volumeId~node3' };
336
339
  });
337
340
  apiService.iterateNodes = jest.fn().mockImplementation(async function* (uids) {
338
341
  // Skip first node - make it missing.
339
- yield* uids.slice(1).map((uid) => ({ uid, parentUid: 'parentUid' }));
342
+ yield* uids.slice(1).map((uid) => ({ uid, parentUid: 'volumeId~parentNodeid' }));
340
343
  });
341
- const result = await Array.fromAsync(access.iterateNodes(['node1', 'node2', 'node3']));
342
- expect(result).toMatchObject([node2, node3, { missingUid: 'node1' }]);
343
- expect(cache.removeNodes).toHaveBeenCalledWith(['node1']);
344
+ const result = await Array.fromAsync(access.iterateNodes(['volumeId~node1', 'volumeId~node2', 'volumeId~node3']));
345
+ expect(result).toMatchObject([node2, node3, { missingUid: 'volumeId~node1' }]);
346
+ expect(cache.removeNodes).toHaveBeenCalledWith(['volumeId~node1']);
344
347
  });
345
348
  it('should return degraded node if parent cannot be decrypted', async () => {
346
349
  cache.iterateNodes = jest.fn().mockImplementation(async function* () {
347
- yield { ok: false, uid: 'node1' };
348
- yield { ok: false, uid: 'node2' };
349
- yield { ok: false, uid: 'node3' };
350
+ yield { ok: false, uid: 'volumeId~node1' };
351
+ yield { ok: false, uid: 'volumeId~node2' };
352
+ yield { ok: false, uid: 'volumeId~node3' };
350
353
  });
351
354
  const encryptedCrypto = {
352
355
  signatureEmail: 'signatureEmail',
353
356
  nameSignatureEmail: 'nameSignatureEmail',
354
357
  };
355
358
  apiService.iterateNodes = jest.fn().mockImplementation(async function* (uids) {
356
- yield* uids.map((uid) => ({
357
- uid,
358
- parentUid: `parentUidFor:${uid}`,
359
- encryptedCrypto,
360
- }));
359
+ yield* uids.map((uid) => {
360
+ const parentUid = uid.replace('node', 'parentOfNode');
361
+ return {
362
+ uid,
363
+ parentUid,
364
+ encryptedCrypto,
365
+ };
366
+ });
361
367
  });
362
368
  const decryptionError = new errors_1.DecryptionError('Parent cannot be decrypted');
363
369
  jest.spyOn(access, 'getParentKeys').mockImplementation(async ({ parentUid }) => {
364
- if (parentUid === 'parentUidFor:node1') {
370
+ if (parentUid === 'volumeId~parentOfNode1') {
365
371
  throw decryptionError;
366
372
  }
367
373
  return {
368
374
  key: { _idx: 32132 },
369
375
  };
370
376
  });
371
- const result = await Array.fromAsync(access.iterateNodes(['node1', 'node2', 'node3']));
377
+ const result = await Array.fromAsync(access.iterateNodes(['volumeId~node1', 'volumeId~node2', 'volumeId~node3']));
372
378
  expect(result).toEqual([
373
379
  {
374
380
  ...node1,
375
381
  encryptedCrypto,
376
- parentUid: 'parentUidFor:node1',
382
+ parentUid: 'volumeId~parentOfNode1',
377
383
  name: { ok: false, error: decryptionError },
378
384
  keyAuthor: { ok: false, error: { claimedAuthor: 'signatureEmail', error: decryptionError.message } },
379
385
  nameAuthor: { ok: false, error: { claimedAuthor: 'nameSignatureEmail', error: decryptionError.message } },
@@ -404,13 +410,13 @@ describe('nodesAccess', () => {
404
410
  });
405
411
  it('should get node parent keys', async () => {
406
412
  cryptoCache.getNodeKeys = jest.fn(() => Promise.resolve({ key: 'parentKey' }));
407
- const result = await access.getParentKeys({ shareId: undefined, parentUid: 'parentUid' });
413
+ const result = await access.getParentKeys({ shareId: undefined, parentUid: 'volumeId~parentNodeid' });
408
414
  expect(result).toEqual({ key: 'parentKey' });
409
415
  expect(shareService.getSharePrivateKey).not.toHaveBeenCalled();
410
416
  });
411
417
  it('should get node parent keys even if share is set', async () => {
412
418
  cryptoCache.getNodeKeys = jest.fn(() => Promise.resolve({ key: 'parentKey' }));
413
- const result = await access.getParentKeys({ shareId: 'shareId', parentUid: 'parentUid' });
419
+ const result = await access.getParentKeys({ shareId: 'shareId', parentUid: 'volume1~parentNodeid' });
414
420
  expect(result).toEqual({ key: 'parentKey' });
415
421
  expect(shareService.getSharePrivateKey).not.toHaveBeenCalled();
416
422
  });
@@ -420,7 +426,7 @@ describe('nodesAccess', () => {
420
426
  cryptoCache.getNodeKeys = jest.fn(() => Promise.reject(new Error('Entity not found')));
421
427
  apiService.getNode = jest.fn(() => Promise.reject(new Error('API called')));
422
428
  try {
423
- await access.getNodeKeys('nodeId');
429
+ await access.getNodeKeys('volumeId~nodeId');
424
430
  throw new Error('Expected error');
425
431
  }
426
432
  catch (error) {
@@ -433,7 +439,7 @@ describe('nodesAccess', () => {
433
439
  const nodeUid = 'nodeUid';
434
440
  const node = {
435
441
  uid: nodeUid,
436
- parentUid: 'parentUid',
442
+ parentUid: 'volume1~parentNodeid',
437
443
  encryptedName: 'encryptedName',
438
444
  };
439
445
  jest.spyOn(access, 'getNode').mockResolvedValue(node);
@@ -484,5 +490,37 @@ describe('nodesAccess', () => {
484
490
  expect(result).toBe('https://drive.proton.me/shareId/folder/nodeId');
485
491
  });
486
492
  });
493
+ describe('notifyNodeChanged', () => {
494
+ it('should mark node as stale', async () => {
495
+ const node = { uid: 'volumeId~nodeId', isStale: false };
496
+ cache.getNode = jest.fn(() => Promise.resolve(node));
497
+ cache.setNode = jest.fn();
498
+ await access.notifyNodeChanged(node.uid);
499
+ expect(cache.getNode).toHaveBeenCalledWith(node.uid);
500
+ expect(cache.setNode).toHaveBeenCalledWith({ ...node, isStale: true });
501
+ });
502
+ it('should update parent if needed', async () => {
503
+ const node = { uid: 'volumeId~nodeId', parentUid: 'v1~pn1', isStale: false };
504
+ cache.getNode = jest.fn(() => Promise.resolve(node));
505
+ cache.setNode = jest.fn();
506
+ await access.notifyNodeChanged(node.uid, 'v1~pn2');
507
+ expect(cache.getNode).toHaveBeenCalledWith(node.uid);
508
+ expect(cache.setNode).toHaveBeenCalledWith({ ...node, parentUid: 'v1~pn2', isStale: true });
509
+ });
510
+ });
511
+ describe('notifyChildCreated', () => {
512
+ it('should reset parent listing', async () => {
513
+ const nodeUid = 'VolumeId1~NodeId1';
514
+ cache.resetFolderChildrenLoaded = jest.fn();
515
+ await access.notifyChildCreated(nodeUid);
516
+ expect(cache.resetFolderChildrenLoaded).toHaveBeenCalledWith(nodeUid);
517
+ });
518
+ });
519
+ describe('notifyNodeDeleted', () => {
520
+ it('should reset parent listing', async () => {
521
+ await access.notifyNodeDeleted('v1~n1');
522
+ expect(cache.removeNodes).toHaveBeenCalledWith(['v1~n1']);
523
+ });
524
+ });
487
525
  });
488
526
  //# sourceMappingURL=nodesAccess.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodesAccess.test.js","sourceRoot":"","sources":["../../../src/internal/nodes/nodesAccess.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodesAccess.test.js","sourceRoot":"","sources":["../../../src/internal/nodes/nodesAccess.test.ts"],"names":[],"mappings":";;AAAA,+CAAmD;AAEnD,yCAA+C;AAK/C,+CAA4C;AAE5C,+CAA2C;AAE3C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,IAAI,UAA0B,CAAC;IAC/B,IAAI,KAAiB,CAAC;IACtB,IAAI,WAA6B,CAAC;IAClC,IAAI,aAAiC,CAAC;IACtC,IAAI,YAA2B,CAAC;IAChC,IAAI,MAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACZ,gEAAgE;QAChE,UAAU,GAAG;YACT,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YAClB,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC,EAAE,IAAc;gBACtE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,uBAAuB,EAAoB,CAAA,CAAC,CAAC,CAAC;YAC7F,CAAC,CAAC;YACF,uBAAuB,EAAE,IAAI,CAAC,EAAE,EAAE;SACrC,CAAA;QACD,gEAAgE;QAChE,KAAK,GAAG;YACJ,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YAClB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YAClB,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC,MAAK,CAAC,CAAC;YACpE,sBAAsB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAC1D,uBAAuB,EAAE,IAAI,CAAC,EAAE,EAAE;YAClC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE;SACzB,CAAA;QACD,gEAAgE;QAChE,WAAW,GAAG;YACV,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE;YACtB,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE;SACzB,CAAA;QACD,gEAAgE;QAChE,aAAa,GAAG;YACZ,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE;SACzB,CAAA;QACD,gEAAgE;QAChE,YAAY,GAAG;YACX,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;YACpE,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;SAChC,CAAC;QAEF,MAAM,GAAG,IAAI,yBAAW,CAAC,IAAA,sBAAa,GAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAmB,CAAC;YACzE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAErD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,uBAAuB,EAAmB,CAAC;YACtG,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAA2B,CAAC;YACzJ,MAAM,aAAa,GAAG;gBAClB,GAAG,qBAAqB;gBACxB,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;gBACjC,OAAO,EAAE,KAAK;gBACd,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,SAAS;gBACjB,gBAAgB,EAAE,UAAU;aACd,CAAC;YACnB,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,KAAK,EAA8B,CAAC;YAEjE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAmB,CAAC,CAAC,CAAC;YAC3G,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YACnE,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,EAA8B,CAAC,CAAC,CAAC;YAC3G,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;YAEjH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACtC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;YAC9E,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;YAC1D,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,uBAAuB,EAAmB,CAAC;YACtG,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAA2B,CAAC;YACzJ,MAAM,aAAa,GAAG;gBAClB,GAAG,qBAAqB;gBACxB,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;gBACjC,OAAO,EAAE,KAAK;gBACd,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,SAAS;gBACjB,gBAAgB,EAAE,UAAU;aACd,CAAC;YACnB,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,KAAK,EAA8B,CAAC;YAEjE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAC7E,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YACnE,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,EAA8B,CAAC,CAAC,CAAC;YAC3G,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;YAEjH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACtC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;YAC9E,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;YAC1D,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACvC,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,uBAAuB,EAAmB,CAAC;YACtG,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAA2B,CAAC;YAC5J,MAAM,aAAa,GAAG;gBAClB,GAAG,qBAAqB;gBACxB,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,yCAAyC,EAAE,EAAE;gBACjG,gBAAgB,EAAE,UAAU;aACd,CAAC;YACnB,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,KAAK,EAA8B,CAAC;YAEjE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAC7E,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YACnE,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,EAA8B,CAAC,CAAC,CAAC;YAC3G,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;YAEjH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC7B,UAAU,CAAC,GAAG,EAAE;YACZ,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAA8B,CAAC,CAAC,CAAC;YACrI,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,aAA4B,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;gBACvG,IAAI,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAmB;gBACpG,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAA8B;aACnD,CAAC,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC7B,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,uBAAuB,EAAE,OAAO,EAAE,KAAK,EAAmB,CAAC;YACrF,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAmB,CAAC;YACzE,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAmB,CAAC;YACzE,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAmB,CAAC;YACzE,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAmB,CAAC;YAEzE,UAAU,CAAC,GAAG,EAAE;gBACZ,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;gBAC3C,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACjE,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC;oBAChE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBAChC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBAChC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBAChC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACpC,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAC5F,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBAClE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;gBACxE,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACjE,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC;oBAChE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBAChD,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;oBACtE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;oBACtE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACpD,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAC5F,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;gBACpG,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;gBAClE,UAAU,CAAC,uBAAuB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC;oBAC7E,MAAM,KAAK,CAAC,GAAG,CAAC;oBAChB,MAAM,KAAK,CAAC,GAAG,CAAC;oBAChB,MAAM,KAAK,CAAC,GAAG,CAAC;oBAChB,MAAM,KAAK,CAAC,GAAG,CAAC;gBACpB,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAEzF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAC5F,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;gBACpG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACvD,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;gBAClC,UAAU,CAAC,uBAAuB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC;oBAC7E,MAAM,KAAK,CAAC,GAAG,CAAC;oBAChB,MAAM,KAAK,CAAC,GAAG,CAAC;oBAChB,MAAM,KAAK,CAAC,GAAG,CAAC;oBAChB,MAAM,KAAK,CAAC,GAAG,CAAC;gBACpB,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE;oBACzD,IAAI,GAAG,KAAK,UAAU,CAAC,GAAG,EAAE,CAAC;wBACzB,OAAO,UAAU,CAAC;oBACtB,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAC5F,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;gBACpG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;gBACtJ,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBACxD,UAAU,CAAC,uBAAuB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC;oBAC7E,MAAM,KAAK,CAAC,GAAG,CAAC;oBAChB,MAAM,KAAK,CAAC,GAAG,CAAC;oBAChB,MAAM,KAAK,CAAC,GAAG,CAAC;gBACpB,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE;oBACzD,IAAI,GAAG,KAAK,UAAU,CAAC,GAAG,EAAE,CAAC;wBACzB,OAAO,UAAU,CAAC;oBACtB,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBACH,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC,EAAE,IAAc;oBAClF,qCAAqC;oBACrC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,GAAG,EAAoB,CAAA,CAAC,CAAC;gBAC7F,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAC5F,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC7C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;gBACzE,UAAU,CAAC,uBAAuB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC;oBAC7E,MAAM,gBAAgB,CAAC;oBACvB,MAAM,gBAAgB,CAAC;oBACvB,MAAM,gBAAgB,CAAC;gBAC3B,CAAC,CAAC,CAAC;gBACH,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE;oBACzD,IAAI,GAAG,KAAK,UAAU,CAAC,GAAG,EAAE,CAAC;wBACzB,OAAO,UAAU,CAAC;oBACtB,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBACH,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,aAA4B,EAAE,EAAE;oBACtF,IAAI,aAAa,CAAC,GAAG,KAAK,gBAAgB,EAAE,CAAC;wBACzC,MAAM,IAAI,wBAAe,CAAC,mBAAmB,CAAC,CAAC;oBACnD,CAAC;oBACD,OAAO,OAAO,CAAC,OAAO,CAAC;wBACnB,IAAI,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAmB;wBACpG,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAA8B;qBACnD,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;gBACxE,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;gBACrC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;gBACrC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC/B,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;gBACpE,IAAI,CAAC;oBACD,MAAM,KAAK,CAAC;gBAChB,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBAClB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;wBACxB,IAAI,wBAAe,CAAC,mBAAmB,CAAC;qBAC3C,CAAC,CAAC;gBACP,CAAC;YACL,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACjC,MAAM,QAAQ,GAAG,UAAU,CAAC;YAC5B,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAmB,CAAC;YACzE,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAmB,CAAC;YACzE,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAmB,CAAC;YACzE,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAmB,CAAC;YAEzE,UAAU,CAAC,GAAG,EAAE;gBACZ,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACvE,UAAU,CAAC,sBAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC;oBAC5E,MAAM,KAAK,CAAC,GAAG,CAAC;oBAChB,MAAM,KAAK,CAAC,GAAG,CAAC;oBAChB,MAAM,KAAK,CAAC,GAAG,CAAC;oBAChB,MAAM,KAAK,CAAC,GAAG,CAAC;gBACpB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;gBAClE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAEzF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACnE,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACpF,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;gBAClC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE;oBACzD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACnE,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACpF,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACpJ,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBACxD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE;oBACzD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACxC,CAAC,CAAC,CAAC;gBACH,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC,EAAE,IAAc;oBAClF,qCAAqC;oBACrC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,uBAAuB,EAAoB,CAAA,CAAC,CAAC;gBACtG,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACnE,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC1B,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAmB,CAAC;YACvG,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAmB,CAAC;YACvG,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAmB,CAAC;YACvG,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAmB,CAAC;YAErG,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;gBAC3C,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC;oBAC7D,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBAChC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBAChC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBAChC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACpC,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACpI,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;gBAClC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC;oBAC7D,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oBAChC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC;oBAC3C,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC;oBAC3C,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBACpC,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACpI,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3D,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YACtH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;gBAClF,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC;oBAC7D,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC;oBAC3C,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC;oBAC3C,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC;gBAC/C,CAAC,CAAC,CAAC;gBACH,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC,EAAE,IAAc;oBAClF,qCAAqC;oBACrC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,uBAAuB,EAAoB,CAAA,CAAC,CAAC;gBACtG,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAClH,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAC,UAAU,EAAE,gBAAgB,EAAC,CAAC,CAAC,CAAC;gBAC7E,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;gBACvE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC;oBAC7D,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC;oBAC3C,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC;oBAC3C,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC;gBAC/C,CAAC,CAAC,CAAC;gBACH,MAAM,eAAe,GAAG;oBACpB,cAAc,EAAE,gBAAgB;oBAChC,kBAAkB,EAAE,oBAAoB;iBAC3C,CAAC;gBACF,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC,EAAE,IAAc;oBAClF,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wBACpB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;wBACtD,OAAO;4BACP,GAAG;4BACH,SAAS;4BACT,eAAe;yBACG,CAAA;oBACtB,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH,MAAM,eAAe,GAAG,IAAI,wBAAe,CAAC,4BAA4B,CAAC,CAAC;gBAC1E,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;oBAC3E,IAAI,SAAS,KAAK,wBAAwB,EAAE,CAAC;wBACzC,MAAM,eAAe,CAAC;oBAC1B,CAAC;oBACD,OAAO;wBACH,GAAG,EAAE,EAAC,IAAI,EAAE,KAAK,EAAC;qBACd,CAAC;gBACb,CAAC,CAAE,CAAC;gBAEJ,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAClH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBACnB;wBACI,GAAG,KAAK;wBACR,eAAe;wBACf,SAAS,EAAE,wBAAwB;wBACnC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE;wBAC3C,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,EAAE;wBACpG,UAAU,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,CAAC,OAAO,EAAE,EAAE;wBACzG,MAAM,EAAE,CAAC,eAAe,CAAC;qBAC5B;oBACD;wBACI,GAAG,KAAK;wBACR,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;wBACjC,MAAM,EAAE,SAAS;wBACjB,cAAc,EAAE,SAAS;qBAC5B;oBACD;wBACI,GAAG,KAAK;wBACR,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;wBACjC,MAAM,EAAE,SAAS;wBACjB,cAAc,EAAE,SAAS;qBAC5B;iBACJ,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC1C,YAAY,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAA+B,CAAC,CAAC,CAAC;YAElG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YACxF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YACzC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,EAA8B,CAAC,CAAC,CAAC;YAE3G,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC,CAAC;YACtG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAC9D,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,EAA8B,CAAC,CAAC,CAAC;YAE3G,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACrG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACnE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC5C,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACvF,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAE5E,IAAI,CAAC;gBACD,MAAM,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjD,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,OAAO,GAAG,SAAS,CAAC;YAC1B,MAAM,IAAI,GAAG;gBACT,GAAG,EAAE,OAAO;gBACZ,SAAS,EAAE,sBAAsB;gBACjC,aAAa,EAAE,eAAe;aAChB,CAAC;YAEnB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,WAAW,EAAS,CAAC,CAAC;YACnF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,iBAAiB,CAAC;gBAChD,GAAG,EAAE,SAAS;gBACd,UAAU,EAAE,gBAAgB;gBAC5B,oBAAoB,EAAE,0BAA0B;gBAChD,0BAA0B,EAAE,gCAAgC;aACxD,CAAC,CAAC;YACV,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAEhF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;YAElE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACnB,GAAG,EAAE,SAAS;gBACd,UAAU,EAAE,gBAAgB;gBAC5B,oBAAoB,EAAE,0BAA0B;gBAChD,0BAA0B,EAAE,gCAAgC;gBAC5D,cAAc,EAAE,gBAAgB;aACnC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACzD,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QACxB,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAElC,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAChD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,4BAA4B,EAA0B,CAAC,CAAC,CAAC;YAEpI,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,8BAA8B,EAA0B,CAAC,CAAC,CAAC;YAEtI,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAC3G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,oBAAQ,CAAC,IAAI,EAA0B,CAAC,CAAC,CAAC;YAChH,IAAI,CAAC,KAAK,CAAC,MAAa,EAAE,aAAa,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAQ,CAAC,MAAM,EAA0B,CAAC,CAAC,CAAC;YAEjJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,oBAAQ,CAAC,MAAM,EAA0B,CAAC,CAAC,CAAC;YAClH,IAAI,CAAC,KAAK,CAAC,MAAa,EAAE,aAAa,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAQ,CAAC,MAAM,EAA0B,CAAC,CAAC,CAAC;YAEjJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACvC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAmB,CAAC;YACzE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACrD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAC1B,MAAM,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,EAAC,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAmB,CAAC;YAC9F,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACrD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAC1B,MAAM,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,EAAC,GAAG,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,OAAO,GAAG,mBAAmB,CAAC;YACpC,KAAK,CAAC,yBAAyB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -2,7 +2,6 @@ import { NodeResult } from "../../interface";
2
2
  import { NodeAPIService } from "./apiService";
3
3
  import { NodesCryptoCache } from "./cryptoCache";
4
4
  import { NodesCryptoService } from "./cryptoService";
5
- import { NodesEvents } from './events';
6
5
  import { DecryptedNode } from "./interface";
7
6
  import { NodesAccess } from "./nodesAccess";
8
7
  /**
@@ -19,8 +18,7 @@ export declare class NodesManagement {
19
18
  private cryptoCache;
20
19
  private cryptoService;
21
20
  private nodesAccess;
22
- private nodesEvents;
23
- constructor(apiService: NodeAPIService, cryptoCache: NodesCryptoCache, cryptoService: NodesCryptoService, nodesAccess: NodesAccess, nodesEvents: NodesEvents);
21
+ constructor(apiService: NodeAPIService, cryptoCache: NodesCryptoCache, cryptoService: NodesCryptoService, nodesAccess: NodesAccess);
24
22
  renameNode(nodeUid: string, newName: string, options?: {
25
23
  allowRenameRootNode: boolean;
26
24
  }): Promise<DecryptedNode>;