@webex/calling 3.11.0 → 3.12.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 (188) hide show
  1. package/dist/CallHistory/CallHistory.js +596 -0
  2. package/dist/CallHistory/CallHistory.js.map +1 -0
  3. package/dist/CallHistory/CallHistory.test.js +916 -0
  4. package/dist/CallHistory/CallHistory.test.js.map +1 -0
  5. package/dist/CallHistory/callHistoryFixtures.js +650 -0
  6. package/dist/CallHistory/callHistoryFixtures.js.map +1 -0
  7. package/dist/CallHistory/constants.js +38 -0
  8. package/dist/CallHistory/constants.js.map +1 -0
  9. package/dist/CallHistory/types.js +7 -0
  10. package/dist/CallHistory/types.js.map +1 -0
  11. package/dist/CallSettings/CallSettings.js +311 -0
  12. package/dist/CallSettings/CallSettings.js.map +1 -0
  13. package/dist/CallSettings/CallSettings.test.js +122 -0
  14. package/dist/CallSettings/CallSettings.test.js.map +1 -0
  15. package/dist/CallSettings/UcmBackendConnector.js +308 -0
  16. package/dist/CallSettings/UcmBackendConnector.js.map +1 -0
  17. package/dist/CallSettings/UcmBackendConnector.test.js +411 -0
  18. package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -0
  19. package/dist/CallSettings/WxCallBackendConnector.js +597 -0
  20. package/dist/CallSettings/WxCallBackendConnector.js.map +1 -0
  21. package/dist/CallSettings/WxCallBackendConnector.test.js +904 -0
  22. package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -0
  23. package/dist/CallSettings/constants.js +31 -0
  24. package/dist/CallSettings/constants.js.map +1 -0
  25. package/dist/CallSettings/testFixtures.js +68 -0
  26. package/dist/CallSettings/testFixtures.js.map +1 -0
  27. package/dist/CallSettings/types.js +7 -0
  28. package/dist/CallSettings/types.js.map +1 -0
  29. package/dist/CallingClient/CallingClient.js +1119 -0
  30. package/dist/CallingClient/CallingClient.js.map +1 -0
  31. package/dist/CallingClient/CallingClient.test.js +1266 -0
  32. package/dist/CallingClient/CallingClient.test.js.map +1 -0
  33. package/dist/CallingClient/callRecordFixtures.js +101 -0
  34. package/dist/CallingClient/callRecordFixtures.js.map +1 -0
  35. package/dist/CallingClient/calling/CallerId/index.js +275 -0
  36. package/dist/CallingClient/calling/CallerId/index.js.map +1 -0
  37. package/dist/CallingClient/calling/CallerId/index.test.js +275 -0
  38. package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -0
  39. package/dist/CallingClient/calling/CallerId/types.js +7 -0
  40. package/dist/CallingClient/calling/CallerId/types.js.map +1 -0
  41. package/dist/CallingClient/calling/call.js +3486 -0
  42. package/dist/CallingClient/calling/call.js.map +1 -0
  43. package/dist/CallingClient/calling/call.test.js +3612 -0
  44. package/dist/CallingClient/calling/call.test.js.map +1 -0
  45. package/dist/CallingClient/calling/callManager.js +460 -0
  46. package/dist/CallingClient/calling/callManager.js.map +1 -0
  47. package/dist/CallingClient/calling/callManager.test.js +741 -0
  48. package/dist/CallingClient/calling/callManager.test.js.map +1 -0
  49. package/dist/CallingClient/calling/index.js +30 -0
  50. package/dist/CallingClient/calling/index.js.map +1 -0
  51. package/dist/CallingClient/calling/types.js +74 -0
  52. package/dist/CallingClient/calling/types.js.map +1 -0
  53. package/dist/CallingClient/callingClientFixtures.js +143 -0
  54. package/dist/CallingClient/callingClientFixtures.js.map +1 -0
  55. package/dist/CallingClient/constants.js +243 -0
  56. package/dist/CallingClient/constants.js.map +1 -0
  57. package/dist/CallingClient/line/index.js +332 -0
  58. package/dist/CallingClient/line/index.js.map +1 -0
  59. package/dist/CallingClient/line/line.test.js +327 -0
  60. package/dist/CallingClient/line/line.test.js.map +1 -0
  61. package/dist/CallingClient/line/types.js +21 -0
  62. package/dist/CallingClient/line/types.js.map +1 -0
  63. package/dist/CallingClient/registration/index.js +19 -0
  64. package/dist/CallingClient/registration/index.js.map +1 -0
  65. package/dist/CallingClient/registration/register.js +1686 -0
  66. package/dist/CallingClient/registration/register.js.map +1 -0
  67. package/dist/CallingClient/registration/register.test.js +1885 -0
  68. package/dist/CallingClient/registration/register.test.js.map +1 -0
  69. package/dist/CallingClient/registration/registerFixtures.js +36 -0
  70. package/dist/CallingClient/registration/registerFixtures.js.map +1 -0
  71. package/dist/CallingClient/registration/types.js +7 -0
  72. package/dist/CallingClient/registration/types.js.map +1 -0
  73. package/dist/CallingClient/registration/webWorker.js +130 -0
  74. package/dist/CallingClient/registration/webWorker.js.map +1 -0
  75. package/dist/CallingClient/registration/webWorker.test.js +303 -0
  76. package/dist/CallingClient/registration/webWorker.test.js.map +1 -0
  77. package/dist/CallingClient/registration/webWorkerStr.js +15 -0
  78. package/dist/CallingClient/registration/webWorkerStr.js.map +1 -0
  79. package/dist/CallingClient/types.js +7 -0
  80. package/dist/CallingClient/types.js.map +1 -0
  81. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +142 -0
  82. package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -0
  83. package/dist/Contacts/ContactsClient.js +1206 -0
  84. package/dist/Contacts/ContactsClient.js.map +1 -0
  85. package/dist/Contacts/ContactsClient.test.js +1004 -0
  86. package/dist/Contacts/ContactsClient.test.js.map +1 -0
  87. package/dist/Contacts/constants.js +40 -0
  88. package/dist/Contacts/constants.js.map +1 -0
  89. package/dist/Contacts/contactFixtures.js +430 -0
  90. package/dist/Contacts/contactFixtures.js.map +1 -0
  91. package/dist/Contacts/types.js +43 -0
  92. package/dist/Contacts/types.js.map +1 -0
  93. package/dist/Errors/catalog/CallError.js +89 -0
  94. package/dist/Errors/catalog/CallError.js.map +1 -0
  95. package/dist/Errors/catalog/CallingDeviceError.js +83 -0
  96. package/dist/Errors/catalog/CallingDeviceError.js.map +1 -0
  97. package/dist/Errors/catalog/ExtendedError.js +42 -0
  98. package/dist/Errors/catalog/ExtendedError.js.map +1 -0
  99. package/dist/Errors/catalog/LineError.js +85 -0
  100. package/dist/Errors/catalog/LineError.js.map +1 -0
  101. package/dist/Errors/index.js +28 -0
  102. package/dist/Errors/index.js.map +1 -0
  103. package/dist/Errors/types.js +59 -0
  104. package/dist/Errors/types.js.map +1 -0
  105. package/dist/Events/impl/index.js +79 -0
  106. package/dist/Events/impl/index.js.map +1 -0
  107. package/dist/Events/types.js +107 -0
  108. package/dist/Events/types.js.map +1 -0
  109. package/dist/Logger/index.js +228 -0
  110. package/dist/Logger/index.js.map +1 -0
  111. package/dist/Logger/index.test.js +87 -0
  112. package/dist/Logger/index.test.js.map +1 -0
  113. package/dist/Logger/types.js +34 -0
  114. package/dist/Logger/types.js.map +1 -0
  115. package/dist/Metrics/index.js +534 -0
  116. package/dist/Metrics/index.js.map +1 -0
  117. package/dist/Metrics/index.test.js +463 -0
  118. package/dist/Metrics/index.test.js.map +1 -0
  119. package/dist/Metrics/types.js +64 -0
  120. package/dist/Metrics/types.js.map +1 -0
  121. package/dist/SDKConnector/index.js +102 -0
  122. package/dist/SDKConnector/index.js.map +1 -0
  123. package/dist/SDKConnector/index.test.js +9 -0
  124. package/dist/SDKConnector/index.test.js.map +1 -0
  125. package/dist/SDKConnector/types.js +7 -0
  126. package/dist/SDKConnector/types.js.map +1 -0
  127. package/dist/SDKConnector/utils.js +39 -0
  128. package/dist/SDKConnector/utils.js.map +1 -0
  129. package/dist/SDKConnector/utils.test.js +9 -0
  130. package/dist/SDKConnector/utils.test.js.map +1 -0
  131. package/dist/Voicemail/BroadworksBackendConnector.js +699 -0
  132. package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -0
  133. package/dist/Voicemail/BroadworksBackendConnector.test.js +820 -0
  134. package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -0
  135. package/dist/Voicemail/UcmBackendConnector.js +628 -0
  136. package/dist/Voicemail/UcmBackendConnector.js.map +1 -0
  137. package/dist/Voicemail/UcmBackendConnector.test.js +738 -0
  138. package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -0
  139. package/dist/Voicemail/Voicemail.js +472 -0
  140. package/dist/Voicemail/Voicemail.js.map +1 -0
  141. package/dist/Voicemail/Voicemail.test.js +391 -0
  142. package/dist/Voicemail/Voicemail.test.js.map +1 -0
  143. package/dist/Voicemail/WxCallBackendConnector.js +657 -0
  144. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -0
  145. package/dist/Voicemail/WxCallBackendConnector.test.js +1225 -0
  146. package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -0
  147. package/dist/Voicemail/constants.js +61 -0
  148. package/dist/Voicemail/constants.js.map +1 -0
  149. package/dist/Voicemail/types.js +7 -0
  150. package/dist/Voicemail/types.js.map +1 -0
  151. package/dist/Voicemail/voicemailFixture.js +524 -0
  152. package/dist/Voicemail/voicemailFixture.js.map +1 -0
  153. package/dist/api.js +157 -0
  154. package/dist/api.js.map +1 -0
  155. package/dist/common/Utils.js +1483 -0
  156. package/dist/common/Utils.js.map +1 -0
  157. package/dist/common/Utils.test.js +1989 -0
  158. package/dist/common/Utils.test.js.map +1 -0
  159. package/dist/common/constants.js +62 -0
  160. package/dist/common/constants.js.map +1 -0
  161. package/dist/common/index.js +19 -0
  162. package/dist/common/index.js.map +1 -0
  163. package/dist/common/testUtil.js +983 -0
  164. package/dist/common/testUtil.js.map +1 -0
  165. package/dist/common/types.js +75 -0
  166. package/dist/common/types.js.map +1 -0
  167. package/dist/index.js +321 -0
  168. package/dist/index.js.map +1 -0
  169. package/dist/module/CallHistory/CallHistory.js +28 -17
  170. package/dist/module/CallingClient/CallingClient.js +43 -1
  171. package/dist/module/CallingClient/calling/call.js +3 -2
  172. package/dist/module/CallingClient/constants.js +2 -0
  173. package/dist/module/CallingClient/registration/register.js +8 -0
  174. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  175. package/dist/types/CallingClient/CallingClient.d.ts +2 -1
  176. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  177. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  178. package/dist/types/CallingClient/constants.d.ts +2 -0
  179. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  180. package/dist/types/CallingClient/registration/register.d.ts +2 -1
  181. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  182. package/dist/types/CallingClient/registration/types.d.ts +2 -1
  183. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  184. package/dist/types/CallingClient/types.d.ts +2 -1
  185. package/dist/types/CallingClient/types.d.ts.map +1 -1
  186. package/dist/types/common/types.d.ts +4 -0
  187. package/dist/types/common/types.d.ts.map +1 -1
  188. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_types","require","_testUtil","_types2","_ContactsClient","_constants","_Logger","_interopRequireDefault","_constants2","utils","_interopRequireWildcard","_contactFixtures","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","describe","webex","getTestUtilsWebex","contactClient","contactServiceUrl","concat","internal","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","scimUrl","WEBEX_API_BTS","IDENTITY_ENDPOINT_RESOURCE","SCIM_ENDPOINT_RESOURCE","device","orgId","SCIM_USER_FILTER","contactServiceGroupUrl","GROUP_FILTER","serviceErrorCodeHandlerSpy","jest","spyOn","uploadLogsSpy","mockResolvedValue","failureResponsePayload","statusCode","body","mockGroupResponse","mockContactResponseBodyOne","groups","beforeEach","createContactsClient","level","LOGGER","INFO","expect","toBeTruthy","getSDKConnector","getWebex","log","afterEach","request","mockClear","clearAllMocks","errorCodes","name","payloadData","inputStatusCode","expectedData","contacts","mockContactListOne","mockContactGroupListOne","expectedMessage","SUCCESS_MESSAGE","expectedStatusCode","decryptTextList","mockCity","mockCountry","mockState","mockStreet","mockZipCode","mockAvatarURL","mockCompany","mockDisplayNameOne","mockEmail","mockFirstName","mockLastName","mockNumber1","mockNumber2","mockSipAddress","mockTitle","mockGroupName","cloudContactPresent","scimResponse","mockSCIMListResponse","mockContactResponseBodyTwo","mockContactListTwo","mockContactGroupListTwo","mockDisplayNameTwo","mockContactResponseBodyThird","undefined","error","FAILURE_MESSAGE","map","stat","_assign","toString","it","each","_ref","_asyncToGenerator2","_regenerator","mark","_callee","codeObj","respPayload","contactsResponse","wrap","_context","prev","next","mockResolvedValueOnce","text","encryption","decryptText","mockRejectedValueOnce","getContacts","sent","toBeCalledTimes","toHaveBeenNthCalledWith","uri","method","HTTP_METHODS","GET","headers","info","toHaveBeenCalledWith","METHOD_START_MESSAGE","file","CONTACTS_CLIENT","METHODS","GET_CONTACTS","toHaveBeenCalled","toBeCalledOnceWith","toEqual","data","any","message","not","toBeCalled","Error","stop","_x","_callee2","_contactsResponse$dat","successResponsePayload","_context2","kms","createUnboundKeys","mockKmsKey","createResource","encryptText","createContactGroup","group","groupId","toBe","count","keyUris","displayName","encryptionKeyUrl","groupType","schemas","CREATE_CONTACT_GROUP","CREATE_NEW_ENCRYPTION_KEY_URL","DEFAULT_GROUP_NAME","_callee3","_contactsResponse$dat2","infoSpy","_context3","toBeCalledWith","POST","CONTACTS_SCHEMA","_callee4","logSpy","_context4","_callee5","loggerContext","warnSpy","errorSpy","_context5","mockRejectedValue","_stringify","_callee6","_context6","deleteContactGroup","DELETE","_callee7","response","_context7","_callee8","_res$data$contact","_result$data$contact","mockContactResponse","contact","res","result","_context8","slice","createContact","contactId","contactType","CREATE_CONTACT","_callee9","_res$data$contact2","successContactGroupResponsePayload","successContactResponsePayload","_context9","FETCH_ENCRYPTION_KEY_URL","_callee0","_res$data$contact3","successResponsePayloadGroup","_context0","_callee1","_context1","_callee10","_context10","deleteContact","DELETE_CONTACT","_callee11","_context11","userId","mockContactMinimum","mockSCIMMinListResponse","avatarURL","avatarUrlDomain","department","emails","firstName","lastName","manager","ownerId","phoneNumbers","sipAddresses","resolved","mockContact","janeDoe","_callee12","mockData","_context12"],"sources":["ContactsClient.test.ts"],"sourcesContent":["import {HTTP_METHODS, SCIMListResponse, WebexRequestPayload} from '../common/types';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {LOGGER} from '../Logger/types';\nimport {Contact, ContactResponse, IContacts} from './types';\nimport {createContactsClient} from './ContactsClient';\nimport {\n FAILURE_MESSAGE,\n IDENTITY_ENDPOINT_RESOURCE,\n METHOD_START_MESSAGE,\n SCIM_ENDPOINT_RESOURCE,\n SCIM_USER_FILTER,\n SUCCESS_MESSAGE,\n WEBEX_API_BTS,\n} from '../common/constants';\nimport log from '../Logger';\nimport {\n CONTACTS_CLIENT,\n CONTACT_FILTER,\n ENCRYPT_FILTER,\n DEFAULT_GROUP_NAME,\n USERS,\n GROUP_FILTER,\n CONTACTS_SCHEMA,\n METHODS,\n} from './constants';\nimport * as utils from '../common/Utils';\nimport {\n mockCity,\n mockCompany,\n mockContactListTwo,\n mockContactResponseBodyTwo,\n mockContactListOne,\n mockContactResponseBodyOne,\n mockCountry,\n mockDisplayNameOne,\n mockEmail,\n mockFirstName,\n mockLastName,\n mockNumber1,\n mockNumber2,\n mockSCIMListResponse,\n mockSipAddress,\n mockState,\n mockStreet,\n mockTitle,\n mockZipCode,\n mockDisplayNameTwo,\n mockContactResponseBodyThird,\n mockKmsKey,\n mockGroupName,\n mockContactGroupListOne,\n mockContactGroupListTwo,\n mockAvatarURL,\n mockSCIMMinListResponse,\n mockContactMinimum,\n} from './contactFixtures';\n\ndescribe('ContactClient Tests', () => {\n const webex = getTestUtilsWebex();\n\n let contactClient: IContacts;\n\n // eslint-disable-next-line no-underscore-dangle\n const contactServiceUrl = `${webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`;\n const scimUrl = `${WEBEX_API_BTS}/${IDENTITY_ENDPOINT_RESOURCE}/${SCIM_ENDPOINT_RESOURCE}/${webex.internal.device.orgId}/${SCIM_USER_FILTER}id%20eq%20%22801bb994-343b-4f6b-97ae-d13c91d4b877%22`;\n // eslint-disable-next-line no-underscore-dangle\n const contactServiceGroupUrl = `${webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}`;\n const serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n const uploadLogsSpy = jest.spyOn(utils, 'uploadLogs').mockResolvedValue();\n const failureResponsePayload = <WebexRequestPayload>{\n statusCode: 503,\n body: {},\n };\n const mockGroupResponse = mockContactResponseBodyOne.groups[0];\n\n beforeEach(() => {\n contactClient = createContactsClient(webex, {level: LOGGER.INFO});\n\n expect(contactClient).toBeTruthy();\n expect(contactClient.getSDKConnector().getWebex()).toBeTruthy();\n\n // Set up log spies for each test\n jest.spyOn(log, 'info');\n jest.spyOn(log, 'log');\n jest.spyOn(log, 'warn');\n jest.spyOn(log, 'error');\n });\n\n afterEach(() => {\n webex.request.mockClear();\n jest.clearAllMocks();\n });\n\n /**\n * TestCase inputs\n * name: TestCase name\n * payloadData: Response body\n * inputStatusCode: Status code received in response\n * expectedData: Expected data field in ContactResponse after processing\n * expectedMessage: Expected message field in ContactResponse after processing\n * expectedStatusCode: Expected status code field in ContactResponse after processing\n * decryptTextList: Array of decrypted contact list.\n */\n const errorCodes: {\n name: string;\n payloadData: unknown;\n inputStatusCode: number;\n expectedData: unknown;\n expectedMessage: string;\n expectedStatusCode: number;\n decryptTextList: Array<string>;\n cloudContactPresent?: boolean;\n scimResponse?: SCIMListResponse;\n }[] = [\n {\n name: 'Success case 1: fetch contacts using get contacts api, custom and cloud contact present',\n payloadData: mockContactResponseBodyOne,\n inputStatusCode: 200,\n expectedData: {contacts: mockContactListOne, groups: mockContactGroupListOne},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [\n mockCity,\n mockCountry,\n mockState,\n mockStreet,\n mockZipCode,\n mockAvatarURL,\n mockCompany,\n mockDisplayNameOne,\n mockEmail,\n mockFirstName,\n mockLastName,\n mockNumber1,\n mockNumber2,\n mockSipAddress,\n mockTitle,\n mockNumber2,\n mockSipAddress,\n mockGroupName,\n ],\n cloudContactPresent: true,\n scimResponse: mockSCIMListResponse,\n },\n {\n name: 'Success case 2: fetch contacts using get contacts api, single custom contact with mandatory details present',\n payloadData: mockContactResponseBodyTwo,\n inputStatusCode: 200,\n expectedData: {contacts: mockContactListTwo, groups: mockContactGroupListTwo},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [mockDisplayNameTwo, mockGroupName],\n },\n {\n name: 'Success case 3: fetch contacts using get contacts api, no contacts returned',\n payloadData: mockContactResponseBodyThird,\n inputStatusCode: 200,\n expectedData: {contacts: [], groups: []},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [],\n },\n {\n name: 'Failed case: 200 OK with no response body',\n payloadData: undefined,\n inputStatusCode: 200,\n expectedData: {error: '422 Exception has occurred'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 422,\n decryptTextList: [],\n },\n {\n name: 'Failed case 403: fetch contacts using get contacts api',\n payloadData: {error: '403 Forbidden'},\n inputStatusCode: 403,\n expectedData: {error: 'User request is forbidden'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 403,\n decryptTextList: [],\n },\n {\n name: 'Failed case 408: fetch contacts using get contacts api',\n payloadData: {error: '408 Request Timeout'},\n inputStatusCode: 408,\n expectedData: {error: 'Request to the server timedout'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 408,\n decryptTextList: [],\n },\n {\n name: 'Failed case 500: fetch contacts using get contacts api',\n payloadData: {error: '500 Internal Server Error'},\n inputStatusCode: 500,\n expectedData: {error: 'Internal server error occurred'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 500,\n decryptTextList: [],\n },\n {\n name: 'Failed case 503: fetch contacts using get contacts api',\n payloadData: {error: '503 Service Unavailable'},\n inputStatusCode: 503,\n expectedData: {error: 'Unable to establish a connection with the server'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 503,\n decryptTextList: [],\n },\n ].map((stat) =>\n Object.assign(stat, {\n toString() {\n /* eslint-disable dot-notation */\n return this['name'];\n },\n })\n );\n\n it.each(errorCodes)('%s', async (codeObj) => {\n const respPayload = {\n statusCode: codeObj.inputStatusCode,\n };\n\n if (codeObj.inputStatusCode === 200) {\n respPayload['body'] = codeObj.payloadData;\n webex.request.mockResolvedValueOnce(respPayload);\n codeObj.decryptTextList.forEach((text) => {\n webex.internal.encryption.decryptText.mockResolvedValueOnce(text);\n });\n\n if (codeObj.scimResponse) {\n webex.request.mockResolvedValueOnce(mockSCIMListResponse);\n }\n } else {\n respPayload['message'] = FAILURE_MESSAGE;\n respPayload['data'] = codeObj.payloadData;\n webex.request.mockRejectedValueOnce(respPayload);\n }\n\n const contactsResponse = await contactClient.getContacts();\n\n if (codeObj.inputStatusCode === 200) {\n if (codeObj.cloudContactPresent) {\n expect(webex.request).toBeCalledTimes(2);\n } else {\n expect(webex.request).toBeCalledTimes(1);\n }\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n uri: contactServiceUrl,\n method: HTTP_METHODS.GET,\n });\n\n if (codeObj.cloudContactPresent) {\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n uri: scimUrl,\n method: HTTP_METHODS.GET,\n headers: {\n 'cisco-device-url':\n 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n 'spark-user-agent': 'webex-calling/beta',\n },\n });\n }\n\n expect(log.info).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: CONTACTS_CLIENT,\n method: METHODS.GET_CONTACTS,\n });\n\n if (codeObj.payloadData) {\n expect(log.log).toHaveBeenCalledWith('Successfully fetched contacts and groups', {\n file: CONTACTS_CLIENT,\n method: METHODS.GET_CONTACTS,\n });\n } else {\n expect(log.error).toHaveBeenCalled();\n }\n } else {\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceUrl,\n method: HTTP_METHODS.GET,\n });\n\n expect(log.info).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: CONTACTS_CLIENT,\n method: METHODS.GET_CONTACTS,\n });\n expect(log.error).toHaveBeenCalled();\n }\n\n expect(contactsResponse).toEqual({\n data: expect.any(Object),\n message: codeObj.expectedMessage,\n statusCode: codeObj.expectedStatusCode,\n });\n\n if (codeObj.expectedMessage === SUCCESS_MESSAGE) {\n expect(serviceErrorCodeHandlerSpy).not.toBeCalled();\n } else {\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n codeObj.payloadData ? respPayload : expect.any(Error),\n {\n file: CONTACTS_CLIENT,\n method: METHODS.GET_CONTACTS,\n }\n );\n }\n });\n\n it('create a contact group without encryptionKey', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n\n contactClient['groups'] = [];\n contactClient['encryptionKeyUrl'] = '';\n\n webex.request.mockResolvedValue(successResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText\n .mockResolvedValueOnce('Encrypted Other')\n .mockResolvedValueOnce('Encrypted Top');\n\n const contactsResponse = await contactClient.createContactGroup('Top Contacts');\n\n expect(contactsResponse.statusCode).toEqual(201);\n expect(contactsResponse.data.group?.groupId).toBe(mockGroupResponse.groupId);\n expect(webex.internal.encryption.kms.createUnboundKeys).toBeCalledOnceWith({count: 1});\n expect(webex.internal.encryption.kms.createResource).toBeCalledOnceWith({\n keyUris: [mockKmsKey.uri],\n });\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n uri: contactServiceGroupUrl,\n method: 'POST',\n body: {\n displayName: 'Encrypted Other',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n uri: contactServiceGroupUrl,\n method: 'POST',\n body: {\n displayName: 'Encrypted Top',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n expect(contactClient['groups'].length).toEqual(2);\n expect(contactClient['groups'][1].displayName).toEqual('Top Contacts');\n\n expect(log.info).toHaveBeenCalledWith(\n `${METHOD_START_MESSAGE} with displayName: Top Contacts`,\n {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT_GROUP,\n }\n );\n expect(log.info).toHaveBeenCalledWith(METHOD_START_MESSAGE, {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_NEW_ENCRYPTION_KEY_URL,\n });\n expect(log.info).toHaveBeenCalledWith('Requesting kms for a new KRO and key', {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_NEW_ENCRYPTION_KEY_URL,\n });\n expect(log.log).toHaveBeenCalledWith(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_CLIENT,\n method: 'fetchEncryptionKeyUrl',\n });\n expect(log.log).toHaveBeenCalledWith(`Contact group Top Contacts successfully created`, {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT_GROUP,\n });\n });\n\n it('create a contact group with existing key info', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockResolvedValue(successResponsePayload);\n\n webex.internal.encryption.encryptText.mockResolvedValue('Encrypted Top Contacts');\n const infoSpy = jest.spyOn(log, 'info');\n const contactsResponse = await contactClient.createContactGroup('Top Contacts');\n\n expect(contactsResponse.statusCode).toEqual(201);\n expect(contactsResponse.data.group?.groupId).toBe(mockGroupResponse.groupId);\n expect(infoSpy).toBeCalledWith(`${METHOD_START_MESSAGE} with displayName: Top Contacts`, {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT_GROUP,\n });\n expect(log.log).toBeCalledWith(`Contact group Top Contacts successfully created`, {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT_GROUP,\n });\n expect(infoSpy).not.toBeCalledWith(METHOD_START_MESSAGE, {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_NEW_ENCRYPTION_KEY_URL,\n });\n\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n body: {\n displayName: 'Encrypted Top Contacts',\n encryptionKeyUrl: mockContactGroupListOne[0].encryptionKeyUrl,\n groupType: 'NORMAL',\n schemas: CONTACTS_SCHEMA,\n },\n });\n\n expect(contactClient['groups'].length).toEqual(2);\n expect(contactClient['groups'][1].displayName).toEqual('Top Contacts');\n });\n\n it('create a contact group with same displayName', async () => {\n contactClient['groups'] = mockContactResponseBodyOne.groups;\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n const logSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.createContactGroup(mockGroupResponse.displayName);\n\n expect(webex.request).not.toBeCalled();\n expect(contactsResponse.statusCode).toBe(400);\n expect(logSpy).toBeCalledOnceWith(\n `Group name ${mockGroupResponse.displayName} already exists.`,\n {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT_GROUP,\n }\n );\n expect(log.info).toBeCalledWith(\n `${METHOD_START_MESSAGE} with displayName: ${mockGroupResponse.displayName}`,\n {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT_GROUP,\n }\n );\n expect(contactClient['groups']).toEqual(mockContactResponseBodyOne.groups);\n });\n\n it('create a contact group - service unavailable', async () => {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: 'createContactGroup',\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockRejectedValue(failureResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n const warnSpy = jest.spyOn(log, 'warn');\n const errorSpy = jest.spyOn(log, 'error');\n\n const contactsResponse = await contactClient.createContactGroup('New group');\n\n expect(contactsResponse.statusCode).toBe(503);\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n body: {\n displayName: 'Encrypted group name',\n encryptionKeyUrl: 'kms://cisco.com/keys/dcf18f9d-155e-44ff-ad61-c8a69b7103ab',\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n expect(log.info).toBeCalledWith(\n `${METHOD_START_MESSAGE} with displayName: New group`,\n loggerContext\n );\n expect(warnSpy).toBeCalledTimes(1);\n expect(warnSpy).toHaveBeenNthCalledWith(\n 1,\n '503 Unable to establish a connection with the server',\n loggerContext\n );\n expect(errorSpy).toBeCalledTimes(1);\n expect(errorSpy).toHaveBeenNthCalledWith(\n 1,\n `Unable to create contact group: ${JSON.stringify(failureResponsePayload)}`,\n loggerContext\n );\n\n expect(contactClient['groups']).toEqual(mockContactGroupListOne);\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, loggerContext);\n });\n\n it('delete a contact group - service unavailable', async () => {\n const loggerContext = {\n file: CONTACTS_CLIENT,\n method: 'deleteContactGroup',\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockRejectedValue(failureResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n const warnSpy = jest.spyOn(log, 'warn');\n const errorSpy = jest.spyOn(log, 'error');\n const contactsResponse = await contactClient.deleteContactGroup(mockGroupResponse.groupId);\n\n expect(contactsResponse.statusCode).toBe(503);\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.DELETE,\n uri: `${contactServiceGroupUrl}/${mockGroupResponse.groupId}`,\n });\n expect(log.info).toBeCalledWith(\n `${METHOD_START_MESSAGE} with groupId: ${mockGroupResponse.groupId}`,\n loggerContext\n );\n expect(log.info).toBeCalledWith(\n `Deleting contact group: ${mockGroupResponse.groupId}`,\n loggerContext\n );\n expect(warnSpy).toBeCalledTimes(1);\n expect(errorSpy).toBeCalledTimes(1);\n expect(uploadLogsSpy).toBeCalledTimes(1);\n expect(errorSpy).toHaveBeenNthCalledWith(\n 1,\n `Unable to delete contact group ${mockGroupResponse.groupId}: ${JSON.stringify(\n failureResponsePayload\n )}`,\n loggerContext\n );\n expect(warnSpy).toHaveBeenNthCalledWith(\n 1,\n '503 Unable to establish a connection with the server',\n loggerContext\n );\n\n expect(contactClient['groups']).toEqual(mockContactGroupListOne);\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, loggerContext);\n });\n\n it('successful deletion of contact group', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 204,\n };\n\n contactClient['groups'] = [mockContactGroupListOne[0]];\n webex.request.mockResolvedValue(successResponsePayload);\n const response = await contactClient.deleteContactGroup(mockContactGroupListOne[0].groupId);\n\n expect(response.statusCode).toEqual(204);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceGroupUrl}/${mockContactGroupListOne[0].groupId}`,\n method: HTTP_METHODS.DELETE,\n });\n expect(contactClient['groups']).toEqual([]);\n\n expect(log.info).toBeCalledWith(\n `Deleting contact group: ${mockContactGroupListOne[0].groupId}`,\n {\n file: CONTACTS_CLIENT,\n method: 'deleteContactGroup',\n }\n );\n expect(log.log).toBeCalledWith(\n `Contact group ${mockContactGroupListOne[0].groupId} successfully deleted`,\n {\n file: CONTACTS_CLIENT,\n method: 'deleteContactGroup',\n }\n );\n });\n\n it('create a contact with an existing group', async () => {\n const mockContactResponse = mockContactResponseBodyTwo.contacts[0];\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n\n webex.request.mockResolvedValue(successResponsePayload);\n webex.internal.encryption.encryptText.mockResolvedValue('Encrypted contact name');\n const infoSpy = jest.spyOn(log, 'info');\n const logSpy = jest.spyOn(log, 'log');\n\n contactClient['groups'] = mockContactGroupListOne;\n contactClient['encryptionKeyUrl'] = mockContactGroupListOne[0].encryptionKeyUrl;\n\n const contact = mockContactListTwo.slice()[0] as Contact;\n\n contact.groups = [];\n\n const res: ContactResponse = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(201);\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n expect(infoSpy).toBeCalledWith(\n `${METHOD_START_MESSAGE} with contactType: ${contact.contactType}`,\n {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT,\n }\n );\n expect(logSpy).toBeCalledWith(`Contact successfully created`, {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT,\n });\n expect(logSpy).not.toBeCalledWith('Created a KRO and encryptionKeyUrl', {\n file: CONTACTS_CLIENT,\n method: 'createNewEncryptionKeyUrl',\n });\n\n expect(logSpy).not.toBeCalledWith('Created a KRO and encryptionKeyUrl', {\n file: CONTACTS_CLIENT,\n method: 'createNewEncryptionKeyUrl',\n });\n expect(infoSpy).not.toBeCalledWith(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_CLIENT,\n method: 'fetchEncryptionKeyUrl',\n });\n\n expect(webex.internal.encryption.encryptText).toBeCalledOnceWith(\n mockContactGroupListOne[0].encryptionKeyUrl,\n contact.displayName\n );\n\n expect(webex.request).toBeCalledOnceWith({\n body: {\n ...contact,\n displayName: 'Encrypted contact name',\n groups: [mockContactGroupListOne[0].groupId],\n schemas: CONTACTS_SCHEMA,\n },\n uri: contactServiceUrl,\n method: HTTP_METHODS.POST,\n });\n\n logSpy.mockClear();\n\n /* for coverage */\n const result: ContactResponse = await contactClient.createContact(contact);\n\n expect(result.data.contact?.contactId).toBe(mockContactResponse.contactId);\n expect(logSpy).not.toBeCalledWith(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_CLIENT,\n method: 'fetchEncryptionKeyUrl',\n });\n });\n\n it('create a contact without a group and encryptionKey', async () => {\n const mockContactResponse = mockContactResponseBodyOne.contacts[1];\n\n contactClient['groups'] = [];\n contactClient['encryptionKey'] = '';\n contactClient['defaultGroupId'] = '';\n const successContactGroupResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n const successContactResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n\n webex.request\n .mockResolvedValueOnce(successContactGroupResponsePayload)\n .mockResolvedValueOnce(successContactResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n\n const contact = {\n contactType: 'CUSTOM',\n } as Contact;\n\n const res = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(201);\n\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n body: {\n displayName: 'Encrypted group name',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: CONTACTS_SCHEMA,\n },\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n });\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n body: {\n contactType: 'CUSTOM',\n encryptionKeyUrl: mockKmsKey.uri,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n schemas: CONTACTS_SCHEMA,\n },\n method: HTTP_METHODS.POST,\n uri: contactServiceUrl,\n });\n expect(webex.internal.encryption.kms.createUnboundKeys).toBeCalledOnceWith({count: 1});\n expect(webex.internal.encryption.kms.createResource).toBeCalledOnceWith({\n keyUris: [mockKmsKey.uri],\n });\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n\n expect(log.info).toBeCalledWith(`${METHOD_START_MESSAGE} with contactType: CUSTOM`, {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT,\n });\n expect(log.info).toBeCalledWith(METHOD_START_MESSAGE, {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_NEW_ENCRYPTION_KEY_URL,\n });\n expect(log.info).toBeCalledWith('Requesting kms for a new KRO and key', {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_NEW_ENCRYPTION_KEY_URL,\n });\n expect(log.log).toBeCalledWith(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_CLIENT,\n method: METHODS.FETCH_ENCRYPTION_KEY_URL,\n });\n expect(log.log).toBeCalledWith(`Contact successfully created`, {\n file: CONTACTS_CLIENT,\n method: 'createContact',\n });\n });\n\n it('create a cloud contact with no existing groups', async () => {\n const mockContactResponse = mockContactResponseBodyOne.contacts[0];\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n const successResponsePayloadGroup = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponseBodyOne.groups[0],\n };\n\n webex.request\n .mockResolvedValueOnce(successResponsePayloadGroup)\n .mockResolvedValueOnce(successResponsePayload)\n .mockResolvedValueOnce(mockSCIMListResponse);\n\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n\n contactClient['groups'] = [];\n contactClient['encryptionKeyUrl'] = mockContactResponseBodyOne.groups[0].encryptionKeyUrl;\n\n const contact = {\n contactType: 'CLOUD',\n } as Contact;\n\n contact.groups = [];\n\n let res: ContactResponse = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(400);\n expect(res.data.error).toEqual('contactId is required for contactType:CLOUD.');\n expect(log.info).toBeCalledWith(`${METHOD_START_MESSAGE} with contactType: CLOUD`, {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT,\n });\n\n contact.contactId = mockContactResponse.contactId;\n\n res = await contactClient.createContact(contact);\n expect(res.statusCode).toEqual(201);\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n\n expect(webex.request).toBeCalledTimes(3);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n method: HTTP_METHODS.POST,\n uri: contactServiceGroupUrl,\n body: {\n displayName: 'Encrypted group name',\n groupType: 'NORMAL',\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n schemas: CONTACTS_SCHEMA,\n },\n });\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n method: HTTP_METHODS.POST,\n uri: contactServiceUrl,\n body: {\n contactId: mockContactResponse.contactId,\n contactType: 'CLOUD',\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n schemas: CONTACTS_SCHEMA,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n },\n });\n expect(webex.request).toHaveBeenNthCalledWith(3, {\n uri: scimUrl,\n method: HTTP_METHODS.GET,\n headers: {\n 'cisco-device-url':\n 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n 'spark-user-agent': 'webex-calling/beta',\n },\n });\n\n expect(log.log).toBeCalledWith(`Contact successfully created`, {\n file: CONTACTS_CLIENT,\n method: 'createContact',\n });\n });\n\n it('create a contact - service unavailable', async () => {\n webex.request.mockRejectedValue(failureResponsePayload);\n\n contactClient['groups'] = mockContactGroupListOne.slice();\n contactClient['encryptionKeyUrl'] = mockContactResponseBodyOne.groups[0].encryptionKeyUrl;\n const contact = {\n contactType: 'CLOUD',\n contactId: '801bb994-343b-4f6b-97ae-d13c91d4b877',\n } as Contact;\n\n const res: ContactResponse = await contactClient.createContact(contact);\n\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceUrl,\n method: HTTP_METHODS.POST,\n body: {\n ...contact,\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n groups: [mockContactGroupListOne[0].groupId],\n schemas: CONTACTS_SCHEMA,\n },\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT,\n });\n expect(res.statusCode).toEqual(503);\n\n expect(log.info).toBeCalledWith(`${METHOD_START_MESSAGE} with contactType: CLOUD`, {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT,\n });\n expect(log.error).toBeCalledWith(\n `Failed to create contact: ${JSON.stringify(failureResponsePayload)}`,\n {\n file: CONTACTS_CLIENT,\n method: METHODS.CREATE_CONTACT,\n }\n );\n });\n\n it('successful deletion of contacts', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 204,\n };\n\n contactClient['contacts'] = [mockContactListOne[0]];\n webex.request.mockResolvedValue(successResponsePayload);\n const response = await contactClient.deleteContact(mockContactListOne[0].contactId);\n\n expect(response.statusCode).toEqual(204);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceUrl}/${mockContactListOne[0].contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n expect(contactClient['contacts']).toEqual([]);\n\n expect(log.info).toBeCalledWith(\n `${METHOD_START_MESSAGE} with contactId: ${mockContactListOne[0].contactId}`,\n {\n file: CONTACTS_CLIENT,\n method: METHODS.DELETE_CONTACT,\n }\n );\n expect(log.info).toBeCalledWith(`Deleting contact : ${mockContactListOne[0].contactId}`, {\n file: CONTACTS_CLIENT,\n method: METHODS.DELETE_CONTACT,\n });\n });\n\n it('delete a contact - service unavailable', async () => {\n contactClient['contacts'] = mockContactListOne;\n\n webex.request.mockRejectedValue(failureResponsePayload);\n const response = await contactClient.deleteContact(mockContactListOne[0].contactId);\n\n expect(response.statusCode).toEqual(503);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceUrl}/${mockContactListOne[0].contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, {\n file: CONTACTS_CLIENT,\n method: METHODS.DELETE_CONTACT,\n });\n\n expect(contactClient['contacts']).toEqual(mockContactListOne);\n\n expect(log.info).toBeCalledWith(\n `${METHOD_START_MESSAGE} with contactId: ${mockContactListOne[0].contactId}`,\n {\n file: CONTACTS_CLIENT,\n method: METHODS.DELETE_CONTACT,\n }\n );\n expect(log.info).toBeCalledWith(`Deleting contact : ${mockContactListOne[0].contactId}`, {\n file: CONTACTS_CLIENT,\n method: METHODS.DELETE_CONTACT,\n });\n });\n\n it('test resolveContacts function for a minimal contact with few details', () => {\n const contact = contactClient['resolveCloudContacts'](\n {userId: mockContactMinimum},\n mockSCIMMinListResponse.body\n );\n\n expect(contact).toEqual([\n {\n avatarURL: '',\n avatarUrlDomain: undefined,\n contactId: 'userId',\n contactType: 'CLOUD',\n department: undefined,\n displayName: undefined,\n emails: undefined,\n encryptionKeyUrl: 'kms://cisco.com/keys/dcf18f9d-155e-44ff-ad61-c8a69b7103ab',\n firstName: undefined,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n lastName: undefined,\n manager: undefined,\n ownerId: 'ownerId',\n phoneNumbers: undefined,\n sipAddresses: undefined,\n resolved: true,\n },\n ]);\n });\n\n it(\"test resolveContacts function when contactsDataMap list doesn't match resolved list\", () => {\n const mockContact = {\n firstName: 'Jane',\n lastName: 'Doe',\n contactId: 'janeDoe',\n };\n\n const contact = contactClient['resolveCloudContacts'](\n {userId: mockContactMinimum, janeDoe: mockContact},\n mockSCIMMinListResponse.body\n );\n\n expect(contact).toEqual([\n {\n firstName: 'Jane',\n lastName: 'Doe',\n contactId: 'janeDoe',\n resolved: false,\n },\n {\n avatarURL: '',\n avatarUrlDomain: undefined,\n contactId: 'userId',\n contactType: 'CLOUD',\n department: undefined,\n displayName: undefined,\n emails: undefined,\n encryptionKeyUrl: 'kms://cisco.com/keys/dcf18f9d-155e-44ff-ad61-c8a69b7103ab',\n firstName: undefined,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n lastName: undefined,\n manager: undefined,\n ownerId: 'ownerId',\n phoneNumbers: undefined,\n sipAddresses: undefined,\n resolved: true,\n },\n ]);\n });\n\n it('test resolveContacts function encountering an error', () => {\n const warnSpy = jest.spyOn(log, 'warn');\n\n const contact = contactClient['resolveCloudContacts'](\n {userId: mockContactMinimum},\n mockSCIMMinListResponse\n );\n\n expect(contact).toEqual(null);\n expect(warnSpy).toHaveBeenCalledWith('Error occurred while parsing resolved contacts', {\n file: CONTACTS_CLIENT,\n method: 'resolveCloudContacts',\n });\n });\n\n it('logs error for chunk when scimQuery API call fails in the loop for getContacts', async () => {\n const mockData = errorCodes[0];\n const respPayload = {\n statusCode: mockData.inputStatusCode,\n body: mockData.payloadData,\n };\n webex.request.mockResolvedValueOnce(respPayload).mockRejectedValueOnce({\n ...respPayload,\n statusCode: 503,\n message: FAILURE_MESSAGE,\n data: mockData.payloadData,\n });\n\n mockData.decryptTextList.forEach((text) => {\n webex.internal.encryption.decryptText.mockResolvedValueOnce(text);\n });\n\n const warnSpy = jest.spyOn(log, 'warn');\n const infoSpy = jest.spyOn(log, 'info');\n const logSpy = jest.spyOn(log, 'log');\n\n await contactClient.getContacts();\n\n expect(webex.request).toBeCalledTimes(2);\n expect(warnSpy).toBeCalledTimes(1);\n expect(warnSpy).toBeCalledWith('Error processing contact chunk 0-50', {\n file: CONTACTS_CLIENT,\n method: METHODS.GET_CONTACTS,\n });\n expect(infoSpy).toBeCalledWith(METHOD_START_MESSAGE, {\n file: CONTACTS_CLIENT,\n method: METHODS.GET_CONTACTS,\n });\n expect(logSpy).toBeCalledWith('Successfully fetched contacts and groups', {\n file: CONTACTS_CLIENT,\n method: METHODS.GET_CONTACTS,\n });\n });\n});\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AASA,IAAAK,OAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AAUA,IAAAQ,KAAA,GAAAC,uBAAA,CAAAT,OAAA;AACA,IAAAU,gBAAA,GAAAV,OAAA;AA6B2B,SAAAS,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,QAAA,MAAAC,CAAA,OAAAD,QAAA,IAAAE,CAAA,OAAAF,QAAA,YAAAJ,uBAAA,YAAAA,wBAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,gBAAAW,OAAA,CAAAX,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAM,GAAA,CAAAZ,CAAA,UAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,GAAAM,CAAA,CAAAQ,GAAA,CAAAd,CAAA,EAAAQ,CAAA,cAAAO,EAAA,IAAAf,CAAA,gBAAAe,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,EAAA,OAAAR,CAAA,IAAAD,CAAA,GAAAY,sBAAA,KAAAC,gCAAA,CAAAnB,CAAA,EAAAe,EAAA,OAAAR,CAAA,CAAAM,GAAA,IAAAN,CAAA,CAAAO,GAAA,IAAAR,CAAA,CAAAE,CAAA,EAAAO,EAAA,EAAAR,CAAA,IAAAC,CAAA,CAAAO,EAAA,IAAAf,CAAA,CAAAe,EAAA,WAAAP,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAmB,QAAApB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAoB,YAAA,CAAArB,CAAA,OAAAsB,6BAAA,QAAAhB,CAAA,GAAAgB,6BAAA,CAAAtB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAiB,MAAA,WAAApB,CAAA,WAAAgB,gCAAA,CAAAnB,CAAA,EAAAG,CAAA,EAAAqB,UAAA,OAAAvB,CAAA,CAAAwB,IAAA,CAAAC,KAAA,CAAAzB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAA0B,cAAA3B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAyB,SAAA,CAAAC,MAAA,EAAA1B,CAAA,UAAAF,CAAA,WAAA2B,SAAA,CAAAzB,CAAA,IAAAyB,SAAA,CAAAzB,CAAA,QAAAA,CAAA,OAAAiB,OAAA,CAAAU,MAAA,CAAA7B,CAAA,OAAA8B,OAAA,WAAA5B,CAAA,QAAA6B,gBAAA,CAAAtB,OAAA,EAAAV,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAA8B,iCAAA,GAAAC,wBAAA,CAAAlC,CAAA,EAAAiC,iCAAA,CAAAhC,CAAA,KAAAmB,OAAA,CAAAU,MAAA,CAAA7B,CAAA,GAAA8B,OAAA,WAAA5B,CAAA,IAAAe,sBAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAgB,gCAAA,CAAAlB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAE3BmC,QAAQ,CAAC,qBAAqB,EAAE,YAAM;EACpC,IAAMC,KAAK,GAAG,IAAAC,2BAAiB,EAAC,CAAC;EAEjC,IAAIC,aAAwB;;EAE5B;EACA,IAAMC,iBAAiB,MAAAC,MAAA,CAAMJ,KAAK,CAACK,QAAQ,CAACC,QAAQ,CAACC,YAAY,CAACC,eAAe,OAAAJ,MAAA,CAAIK,0BAAc,OAAAL,MAAA,CAAIM,iBAAK,OAAAN,MAAA,CAAIO,0BAAc,CAAE;EAChI,IAAMC,OAAO,MAAAR,MAAA,CAAMS,wBAAa,OAAAT,MAAA,CAAIU,qCAA0B,OAAAV,MAAA,CAAIW,iCAAsB,OAAAX,MAAA,CAAIJ,KAAK,CAACK,QAAQ,CAACW,MAAM,CAACC,KAAK,OAAAb,MAAA,CAAIc,2BAAgB,yDAAsD;EACjM;EACA,IAAMC,sBAAsB,MAAAf,MAAA,CAAMJ,KAAK,CAACK,QAAQ,CAACC,QAAQ,CAACC,YAAY,CAACC,eAAe,OAAAJ,MAAA,CAAIK,0BAAc,OAAAL,MAAA,CAAIM,iBAAK,OAAAN,MAAA,CAAIgB,wBAAY,CAAE;EACnI,IAAMC,0BAA0B,GAAGC,IAAI,CAACC,KAAK,CAAC9D,KAAK,EAAE,yBAAyB,CAAC;EAC/E,IAAM+D,aAAa,GAAGF,IAAI,CAACC,KAAK,CAAC9D,KAAK,EAAE,YAAY,CAAC,CAACgE,iBAAiB,CAAC,CAAC;EACzE,IAAMC,sBAAsB,GAAwB;IAClDC,UAAU,EAAE,GAAG;IACfC,IAAI,EAAE,CAAC;EACT,CAAC;EACD,IAAMC,iBAAiB,GAAGC,2CAA0B,CAACC,MAAM,CAAC,CAAC,CAAC;EAE9DC,UAAU,CAAC,YAAM;IACf9B,aAAa,GAAG,IAAA+B,oCAAoB,EAACjC,KAAK,EAAE;MAACkC,KAAK,EAAEC,cAAM,CAACC;IAAI,CAAC,CAAC;IAEjEC,MAAM,CAACnC,aAAa,CAAC,CAACoC,UAAU,CAAC,CAAC;IAClCD,MAAM,CAACnC,aAAa,CAACqC,eAAe,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAC,CAACF,UAAU,CAAC,CAAC;;IAE/D;IACAhB,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,MAAM,CAAC;IACvBnB,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,KAAK,CAAC;IACtBnB,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,MAAM,CAAC;IACvBnB,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,OAAO,CAAC;EAC1B,CAAC,CAAC;EAEFC,SAAS,CAAC,YAAM;IACd1C,KAAK,CAAC2C,OAAO,CAACC,SAAS,CAAC,CAAC;IACzBtB,IAAI,CAACuB,aAAa,CAAC,CAAC;EACtB,CAAC,CAAC;;EAEF;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAMC,UAUH,GAAG,CACJ;IACEC,IAAI,EAAE,yFAAyF;IAC/FC,WAAW,EAAElB,2CAA0B;IACvCmB,eAAe,EAAE,GAAG;IACpBC,YAAY,EAAE;MAACC,QAAQ,EAAEC,mCAAkB;MAAErB,MAAM,EAAEsB;IAAuB,CAAC;IAC7EC,eAAe,EAAEC,0BAAe;IAChCC,kBAAkB,EAAE,GAAG;IACvBC,eAAe,EAAE,CACfC,yBAAQ,EACRC,4BAAW,EACXC,0BAAS,EACTC,2BAAU,EACVC,4BAAW,EACXC,8BAAa,EACbC,4BAAW,EACXC,mCAAkB,EAClBC,0BAAS,EACTC,8BAAa,EACbC,6BAAY,EACZC,4BAAW,EACXC,4BAAW,EACXC,+BAAc,EACdC,0BAAS,EACTF,4BAAW,EACXC,+BAAc,EACdE,8BAAa,CACd;IACDC,mBAAmB,EAAE,IAAI;IACzBC,YAAY,EAAEC;EAChB,CAAC,EACD;IACE7B,IAAI,EAAE,6GAA6G;IACnHC,WAAW,EAAE6B,2CAA0B;IACvC5B,eAAe,EAAE,GAAG;IACpBC,YAAY,EAAE;MAACC,QAAQ,EAAE2B,mCAAkB;MAAE/C,MAAM,EAAEgD;IAAuB,CAAC;IAC7EzB,eAAe,EAAEC,0BAAe;IAChCC,kBAAkB,EAAE,GAAG;IACvBC,eAAe,EAAE,CAACuB,mCAAkB,EAAEP,8BAAa;EACrD,CAAC,EACD;IACE1B,IAAI,EAAE,6EAA6E;IACnFC,WAAW,EAAEiC,6CAA4B;IACzChC,eAAe,EAAE,GAAG;IACpBC,YAAY,EAAE;MAACC,QAAQ,EAAE,EAAE;MAAEpB,MAAM,EAAE;IAAE,CAAC;IACxCuB,eAAe,EAAEC,0BAAe;IAChCC,kBAAkB,EAAE,GAAG;IACvBC,eAAe,EAAE;EACnB,CAAC,EACD;IACEV,IAAI,EAAE,2CAA2C;IACjDC,WAAW,EAAEkC,SAAS;IACtBjC,eAAe,EAAE,GAAG;IACpBC,YAAY,EAAE;MAACiC,KAAK,EAAE;IAA4B,CAAC;IACnD7B,eAAe,EAAE8B,0BAAe;IAChC5B,kBAAkB,EAAE,GAAG;IACvBC,eAAe,EAAE;EACnB,CAAC,EACD;IACEV,IAAI,EAAE,wDAAwD;IAC9DC,WAAW,EAAE;MAACmC,KAAK,EAAE;IAAe,CAAC;IACrClC,eAAe,EAAE,GAAG;IACpBC,YAAY,EAAE;MAACiC,KAAK,EAAE;IAA2B,CAAC;IAClD7B,eAAe,EAAE8B,0BAAe;IAChC5B,kBAAkB,EAAE,GAAG;IACvBC,eAAe,EAAE;EACnB,CAAC,EACD;IACEV,IAAI,EAAE,wDAAwD;IAC9DC,WAAW,EAAE;MAACmC,KAAK,EAAE;IAAqB,CAAC;IAC3ClC,eAAe,EAAE,GAAG;IACpBC,YAAY,EAAE;MAACiC,KAAK,EAAE;IAAgC,CAAC;IACvD7B,eAAe,EAAE8B,0BAAe;IAChC5B,kBAAkB,EAAE,GAAG;IACvBC,eAAe,EAAE;EACnB,CAAC,EACD;IACEV,IAAI,EAAE,wDAAwD;IAC9DC,WAAW,EAAE;MAACmC,KAAK,EAAE;IAA2B,CAAC;IACjDlC,eAAe,EAAE,GAAG;IACpBC,YAAY,EAAE;MAACiC,KAAK,EAAE;IAAgC,CAAC;IACvD7B,eAAe,EAAE8B,0BAAe;IAChC5B,kBAAkB,EAAE,GAAG;IACvBC,eAAe,EAAE;EACnB,CAAC,EACD;IACEV,IAAI,EAAE,wDAAwD;IAC9DC,WAAW,EAAE;MAACmC,KAAK,EAAE;IAAyB,CAAC;IAC/ClC,eAAe,EAAE,GAAG;IACpBC,YAAY,EAAE;MAACiC,KAAK,EAAE;IAAkD,CAAC;IACzE7B,eAAe,EAAE8B,0BAAe;IAChC5B,kBAAkB,EAAE,GAAG;IACvBC,eAAe,EAAE;EACnB,CAAC,CACF,CAAC4B,GAAG,CAAC,UAACC,IAAI;IAAA,OACT,IAAAC,OAAA,CAAAjH,OAAA,EAAcgH,IAAI,EAAE;MAClBE,QAAQ,WAARA,QAAQA,CAAA,EAAG;QACT;QACA,OAAO,IAAI,CAAC,MAAM,CAAC;MACrB;IACF,CAAC,CAAC;EAAA,CACJ,CAAC;EAEDC,EAAE,CAACC,IAAI,CAAC5C,UAAU,CAAC,CAAC,IAAI;IAAA,IAAA6C,IAAA,OAAAC,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAAC,QAAOC,OAAO;MAAA,IAAAC,WAAA,EAAAC,gBAAA;MAAA,OAAAL,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAChCL,WAAW,GAAG;cAClBtE,UAAU,EAAEqE,OAAO,CAAC/C;YACtB,CAAC;YAED,IAAI+C,OAAO,CAAC/C,eAAe,KAAK,GAAG,EAAE;cACnCgD,WAAW,CAAC,MAAM,CAAC,GAAGD,OAAO,CAAChD,WAAW;cACzChD,KAAK,CAAC2C,OAAO,CAAC4D,qBAAqB,CAACN,WAAW,CAAC;cAChDD,OAAO,CAACvC,eAAe,CAAC9D,OAAO,CAAC,UAAC6G,IAAI,EAAK;gBACxCxG,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACC,WAAW,CAACH,qBAAqB,CAACC,IAAI,CAAC;cACnE,CAAC,CAAC;cAEF,IAAIR,OAAO,CAACrB,YAAY,EAAE;gBACxB3E,KAAK,CAAC2C,OAAO,CAAC4D,qBAAqB,CAAC3B,qCAAoB,CAAC;cAC3D;YACF,CAAC,MAAM;cACLqB,WAAW,CAAC,SAAS,CAAC,GAAGb,0BAAe;cACxCa,WAAW,CAAC,MAAM,CAAC,GAAGD,OAAO,CAAChD,WAAW;cACzChD,KAAK,CAAC2C,OAAO,CAACgE,qBAAqB,CAACV,WAAW,CAAC;YAClD;YAACG,QAAA,CAAAE,IAAA;YAAA,OAE8BpG,aAAa,CAAC0G,WAAW,CAAC,CAAC;UAAA;YAApDV,gBAAgB,GAAAE,QAAA,CAAAS,IAAA;YAEtB,IAAIb,OAAO,CAAC/C,eAAe,KAAK,GAAG,EAAE;cACnC,IAAI+C,OAAO,CAACtB,mBAAmB,EAAE;gBAC/BrC,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACmE,eAAe,CAAC,CAAC,CAAC;cAC1C,CAAC,MAAM;gBACLzE,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACmE,eAAe,CAAC,CAAC,CAAC;cAC1C;cACAzE,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACoE,uBAAuB,CAAC,CAAC,EAAE;gBAC/CC,GAAG,EAAE7G,iBAAiB;gBACtB8G,MAAM,EAAEC,mBAAY,CAACC;cACvB,CAAC,CAAC;cAEF,IAAInB,OAAO,CAACtB,mBAAmB,EAAE;gBAC/BrC,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACoE,uBAAuB,CAAC,CAAC,EAAE;kBAC/CC,GAAG,EAAEpG,OAAO;kBACZqG,MAAM,EAAEC,mBAAY,CAACC,GAAG;kBACxBC,OAAO,EAAE;oBACP,kBAAkB,EAChB,yFAAyF;oBAC3F,kBAAkB,EAAE;kBACtB;gBACF,CAAC,CAAC;cACJ;cAEA/E,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAACC,oBAAoB,CAACC,+BAAoB,EAAE;gBAC1DC,IAAI,EAAEC,2BAAe;gBACrBR,MAAM,EAAES,mBAAO,CAACC;cAClB,CAAC,CAAC;cAEF,IAAI3B,OAAO,CAAChD,WAAW,EAAE;gBACvBX,MAAM,CAACI,eAAG,CAACA,GAAG,CAAC,CAAC6E,oBAAoB,CAAC,0CAA0C,EAAE;kBAC/EE,IAAI,EAAEC,2BAAe;kBACrBR,MAAM,EAAES,mBAAO,CAACC;gBAClB,CAAC,CAAC;cACJ,CAAC,MAAM;gBACLtF,MAAM,CAACI,eAAG,CAAC0C,KAAK,CAAC,CAACyC,gBAAgB,CAAC,CAAC;cACtC;YACF,CAAC,MAAM;cACLvF,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACkF,kBAAkB,CAAC;gBACvCb,GAAG,EAAE7G,iBAAiB;gBACtB8G,MAAM,EAAEC,mBAAY,CAACC;cACvB,CAAC,CAAC;cAEF9E,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAACC,oBAAoB,CAACC,+BAAoB,EAAE;gBAC1DC,IAAI,EAAEC,2BAAe;gBACrBR,MAAM,EAAES,mBAAO,CAACC;cAClB,CAAC,CAAC;cACFtF,MAAM,CAACI,eAAG,CAAC0C,KAAK,CAAC,CAACyC,gBAAgB,CAAC,CAAC;YACtC;YAEAvF,MAAM,CAAC6D,gBAAgB,CAAC,CAAC4B,OAAO,CAAC;cAC/BC,IAAI,EAAE1F,MAAM,CAAC2F,GAAG,CAACtI,MAAM,CAAC;cACxBuI,OAAO,EAAEjC,OAAO,CAAC1C,eAAe;cAChC3B,UAAU,EAAEqE,OAAO,CAACxC;YACtB,CAAC,CAAC;YAEF,IAAIwC,OAAO,CAAC1C,eAAe,KAAKC,0BAAe,EAAE;cAC/ClB,MAAM,CAAChB,0BAA0B,CAAC,CAAC6G,GAAG,CAACC,UAAU,CAAC,CAAC;YACrD,CAAC,MAAM;cACL9F,MAAM,CAAChB,0BAA0B,CAAC,CAACwG,kBAAkB,CACnD7B,OAAO,CAAChD,WAAW,GAAGiD,WAAW,GAAG5D,MAAM,CAAC2F,GAAG,CAACI,KAAK,CAAC,EACrD;gBACEZ,IAAI,EAAEC,2BAAe;gBACrBR,MAAM,EAAES,mBAAO,CAACC;cAClB,CACF,CAAC;YACH;UAAC;UAAA;YAAA,OAAAvB,QAAA,CAAAiC,IAAA;QAAA;MAAA,GAAAtC,OAAA;IAAA,CACF;IAAA,iBAAAuC,EAAA;MAAA,OAAA3C,IAAA,CAAArG,KAAA,OAAAE,SAAA;IAAA;EAAA,IAAC;EAEFiG,EAAE,CAAC,8CAA8C,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAAyC,SAAA;IAAA,IAAAC,qBAAA;IAAA,IAAAC,sBAAA,EAAAvC,gBAAA;IAAA,OAAAL,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAAuC,SAAA;MAAA,kBAAAA,SAAA,CAAArC,IAAA,GAAAqC,SAAA,CAAApC,IAAA;QAAA;UAC3CmC,sBAAsB,GAAwB;YAClD9G,UAAU,EAAE,GAAG;YACfC,IAAI,EAAEC;UACR,CAAC;UAED3B,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE;UAC5BA,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE;UAEtCF,KAAK,CAAC2C,OAAO,CAAClB,iBAAiB,CAACgH,sBAAsB,CAAC;UACvDzI,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACC,iBAAiB,CAACnH,iBAAiB,CAAC,CAACoH,2BAAU,CAAC,CAAC;UAC/E7I,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACG,cAAc,CAACrH,iBAAiB,CAACoH,2BAAU,CAAC;UAC1E7I,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACsC,WAAW,CAClCxC,qBAAqB,CAAC,iBAAiB,CAAC,CACxCA,qBAAqB,CAAC,eAAe,CAAC;UAACmC,SAAA,CAAApC,IAAA;UAAA,OAEXpG,aAAa,CAAC8I,kBAAkB,CAAC,cAAc,CAAC;QAAA;UAAzE9C,gBAAgB,GAAAwC,SAAA,CAAA7B,IAAA;UAEtBxE,MAAM,CAAC6D,gBAAgB,CAACvE,UAAU,CAAC,CAACmG,OAAO,CAAC,GAAG,CAAC;UAChDzF,MAAM,EAAAmG,qBAAA,GAACtC,gBAAgB,CAAC6B,IAAI,CAACkB,KAAK,cAAAT,qBAAA,uBAA3BA,qBAAA,CAA6BU,OAAO,CAAC,CAACC,IAAI,CAACtH,iBAAiB,CAACqH,OAAO,CAAC;UAC5E7G,MAAM,CAACrC,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACC,iBAAiB,CAAC,CAACf,kBAAkB,CAAC;YAACuB,KAAK,EAAE;UAAC,CAAC,CAAC;UACtF/G,MAAM,CAACrC,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACG,cAAc,CAAC,CAACjB,kBAAkB,CAAC;YACtEwB,OAAO,EAAE,CAACR,2BAAU,CAAC7B,GAAG;UAC1B,CAAC,CAAC;UACF3E,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACmE,eAAe,CAAC,CAAC,CAAC;UACxCzE,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACoE,uBAAuB,CAAC,CAAC,EAAE;YAC/CC,GAAG,EAAE7F,sBAAsB;YAC3B8F,MAAM,EAAE,MAAM;YACdrF,IAAI,EAAE;cACJ0H,WAAW,EAAE,iBAAiB;cAC9BC,gBAAgB,EAAEV,2BAAU,CAAC7B,GAAG;cAChCwC,SAAS,EAAE,QAAQ;cACnBC,OAAO,EAAE;YACX;UACF,CAAC,CAAC;UAEFpH,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACoE,uBAAuB,CAAC,CAAC,EAAE;YAC/CC,GAAG,EAAE7F,sBAAsB;YAC3B8F,MAAM,EAAE,MAAM;YACdrF,IAAI,EAAE;cACJ0H,WAAW,EAAE,eAAe;cAC5BC,gBAAgB,EAAEV,2BAAU,CAAC7B,GAAG;cAChCwC,SAAS,EAAE,QAAQ;cACnBC,OAAO,EAAE;YACX;UACF,CAAC,CAAC;UACFpH,MAAM,CAACnC,aAAa,CAAC,QAAQ,CAAC,CAACT,MAAM,CAAC,CAACqI,OAAO,CAAC,CAAC,CAAC;UACjDzF,MAAM,CAACnC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAACoJ,WAAW,CAAC,CAACxB,OAAO,CAAC,cAAc,CAAC;UAEtEzF,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAACC,oBAAoB,IAAAlH,MAAA,CAChCmH,+BAAoB,sCACvB;YACEC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACgC;UAClB,CACF,CAAC;UACDrH,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAACC,oBAAoB,CAACC,+BAAoB,EAAE;YAC1DC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACiC;UAClB,CAAC,CAAC;UACFtH,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAACC,oBAAoB,CAAC,sCAAsC,EAAE;YAC5EE,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACiC;UAClB,CAAC,CAAC;UACFtH,MAAM,CAACI,eAAG,CAACA,GAAG,CAAC,CAAC6E,oBAAoB,8BAAAlH,MAAA,CAA8BwJ,8BAAkB,GAAI;YACtFpC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAE;UACV,CAAC,CAAC;UACF5E,MAAM,CAACI,eAAG,CAACA,GAAG,CAAC,CAAC6E,oBAAoB,oDAAoD;YACtFE,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACgC;UAClB,CAAC,CAAC;QAAC;QAAA;UAAA,OAAAhB,SAAA,CAAAL,IAAA;MAAA;IAAA,GAAAE,QAAA;EAAA,CACJ,GAAC;EAEF9C,EAAE,CAAC,+CAA+C,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAA+D,SAAA;IAAA,IAAAC,sBAAA;IAAA,IAAArB,sBAAA,EAAAsB,OAAA,EAAA7D,gBAAA;IAAA,OAAAL,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAA6D,SAAA;MAAA,kBAAAA,SAAA,CAAA3D,IAAA,GAAA2D,SAAA,CAAA1D,IAAA;QAAA;UAC5CmC,sBAAsB,GAAwB;YAClD9G,UAAU,EAAE,GAAG;YACfC,IAAI,EAAEC;UACR,CAAC;UAED3B,aAAa,CAAC,QAAQ,CAAC,GAAGmD,wCAAuB;UACjDrD,KAAK,CAAC2C,OAAO,CAAClB,iBAAiB,CAACgH,sBAAsB,CAAC;UAEvDzI,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACsC,WAAW,CAACtH,iBAAiB,CAAC,wBAAwB,CAAC;UAC3EsI,OAAO,GAAGzI,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,MAAM,CAAC;UAAAuH,SAAA,CAAA1D,IAAA;UAAA,OACRpG,aAAa,CAAC8I,kBAAkB,CAAC,cAAc,CAAC;QAAA;UAAzE9C,gBAAgB,GAAA8D,SAAA,CAAAnD,IAAA;UAEtBxE,MAAM,CAAC6D,gBAAgB,CAACvE,UAAU,CAAC,CAACmG,OAAO,CAAC,GAAG,CAAC;UAChDzF,MAAM,EAAAyH,sBAAA,GAAC5D,gBAAgB,CAAC6B,IAAI,CAACkB,KAAK,cAAAa,sBAAA,uBAA3BA,sBAAA,CAA6BZ,OAAO,CAAC,CAACC,IAAI,CAACtH,iBAAiB,CAACqH,OAAO,CAAC;UAC5E7G,MAAM,CAAC0H,OAAO,CAAC,CAACE,cAAc,IAAA7J,MAAA,CAAImH,+BAAoB,sCAAmC;YACvFC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACgC;UAClB,CAAC,CAAC;UACFrH,MAAM,CAACI,eAAG,CAACA,GAAG,CAAC,CAACwH,cAAc,oDAAoD;YAChFzC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACgC;UAClB,CAAC,CAAC;UACFrH,MAAM,CAAC0H,OAAO,CAAC,CAAC7B,GAAG,CAAC+B,cAAc,CAAC1C,+BAAoB,EAAE;YACvDC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACiC;UAClB,CAAC,CAAC;UAEFtH,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACkF,kBAAkB,CAAC;YACvCb,GAAG,EAAE7F,sBAAsB;YAC3B8F,MAAM,EAAEC,mBAAY,CAACgD,IAAI;YACzBtI,IAAI,EAAE;cACJ0H,WAAW,EAAE,wBAAwB;cACrCC,gBAAgB,EAAElG,wCAAuB,CAAC,CAAC,CAAC,CAACkG,gBAAgB;cAC7DC,SAAS,EAAE,QAAQ;cACnBC,OAAO,EAAEU;YACX;UACF,CAAC,CAAC;UAEF9H,MAAM,CAACnC,aAAa,CAAC,QAAQ,CAAC,CAACT,MAAM,CAAC,CAACqI,OAAO,CAAC,CAAC,CAAC;UACjDzF,MAAM,CAACnC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAACoJ,WAAW,CAAC,CAACxB,OAAO,CAAC,cAAc,CAAC;QAAC;QAAA;UAAA,OAAAkC,SAAA,CAAA3B,IAAA;MAAA;IAAA,GAAAwB,QAAA;EAAA,CACxE,GAAC;EAEFpE,EAAE,CAAC,8CAA8C,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAAsE,SAAA;IAAA,IAAAC,MAAA,EAAAnE,gBAAA;IAAA,OAAAL,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAAmE,SAAA;MAAA,kBAAAA,SAAA,CAAAjE,IAAA,GAAAiE,SAAA,CAAAhE,IAAA;QAAA;UACjDpG,aAAa,CAAC,QAAQ,CAAC,GAAG4B,2CAA0B,CAACC,MAAM;UAC3D/B,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACC,iBAAiB,CAACnH,iBAAiB,CAAC,CAACoH,2BAAU,CAAC,CAAC;UAC/E7I,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACG,cAAc,CAACrH,iBAAiB,CAACoH,2BAAU,CAAC;UACpEwB,MAAM,GAAG/I,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,MAAM,CAAC;UAAA6H,SAAA,CAAAhE,IAAA;UAAA,OACPpG,aAAa,CAAC8I,kBAAkB,CAACnH,iBAAiB,CAACyH,WAAW,CAAC;QAAA;UAAxFpD,gBAAgB,GAAAoE,SAAA,CAAAzD,IAAA;UAEtBxE,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACuF,GAAG,CAACC,UAAU,CAAC,CAAC;UACtC9F,MAAM,CAAC6D,gBAAgB,CAACvE,UAAU,CAAC,CAACwH,IAAI,CAAC,GAAG,CAAC;UAC7C9G,MAAM,CAACgI,MAAM,CAAC,CAACxC,kBAAkB,eAAAzH,MAAA,CACjByB,iBAAiB,CAACyH,WAAW,uBAC3C;YACE9B,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACgC;UAClB,CACF,CAAC;UACDrH,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,IAAA7J,MAAA,CAC1BmH,+BAAoB,yBAAAnH,MAAA,CAAsByB,iBAAiB,CAACyH,WAAW,GAC1E;YACE9B,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACgC;UAClB,CACF,CAAC;UACDrH,MAAM,CAACnC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC4H,OAAO,CAAChG,2CAA0B,CAACC,MAAM,CAAC;QAAC;QAAA;UAAA,OAAAuI,SAAA,CAAAjC,IAAA;MAAA;IAAA,GAAA+B,QAAA;EAAA,CAC5E,GAAC;EAEF3E,EAAE,CAAC,8CAA8C,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAAyE,SAAA;IAAA,IAAAC,aAAA,EAAAC,OAAA,EAAAC,QAAA,EAAAxE,gBAAA;IAAA,OAAAL,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAAwE,SAAA;MAAA,kBAAAA,SAAA,CAAAtE,IAAA,GAAAsE,SAAA,CAAArE,IAAA;QAAA;UAC3CkE,aAAa,GAAG;YACpBhD,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAE;UACV,CAAC;UAED/G,aAAa,CAAC,QAAQ,CAAC,GAAGmD,wCAAuB;UACjDrD,KAAK,CAAC2C,OAAO,CAACiI,iBAAiB,CAAClJ,sBAAsB,CAAC;UACvD1B,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACC,iBAAiB,CAACnH,iBAAiB,CAAC,CAACoH,2BAAU,CAAC,CAAC;UAC/E7I,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACG,cAAc,CAACrH,iBAAiB,CAACoH,2BAAU,CAAC;UAC1E7I,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACsC,WAAW,CAACxC,qBAAqB,CAAC,sBAAsB,CAAC;UAC7EkE,OAAO,GAAGnJ,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,MAAM,CAAC;UACjCiI,QAAQ,GAAGpJ,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,OAAO,CAAC;UAAAkI,SAAA,CAAArE,IAAA;UAAA,OAEVpG,aAAa,CAAC8I,kBAAkB,CAAC,WAAW,CAAC;QAAA;UAAtE9C,gBAAgB,GAAAyE,SAAA,CAAA9D,IAAA;UAEtBxE,MAAM,CAAC6D,gBAAgB,CAACvE,UAAU,CAAC,CAACwH,IAAI,CAAC,GAAG,CAAC;UAC7C9G,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACkF,kBAAkB,CAAC;YACvCb,GAAG,EAAE7F,sBAAsB;YAC3B8F,MAAM,EAAEC,mBAAY,CAACgD,IAAI;YACzBtI,IAAI,EAAE;cACJ0H,WAAW,EAAE,sBAAsB;cACnCC,gBAAgB,EAAE,2DAA2D;cAC7EC,SAAS,EAAE,QAAQ;cACnBC,OAAO,EAAE;YACX;UACF,CAAC,CAAC;UACFpH,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,IAAA7J,MAAA,CAC1BmH,+BAAoB,mCACvBiD,aACF,CAAC;UACDnI,MAAM,CAACoI,OAAO,CAAC,CAAC3D,eAAe,CAAC,CAAC,CAAC;UAClCzE,MAAM,CAACoI,OAAO,CAAC,CAAC1D,uBAAuB,CACrC,CAAC,EACD,sDAAsD,EACtDyD,aACF,CAAC;UACDnI,MAAM,CAACqI,QAAQ,CAAC,CAAC5D,eAAe,CAAC,CAAC,CAAC;UACnCzE,MAAM,CAACqI,QAAQ,CAAC,CAAC3D,uBAAuB,CACtC,CAAC,qCAAA3G,MAAA,CACkC,IAAAyK,UAAA,CAAAvM,OAAA,EAAeoD,sBAAsB,CAAC,GACzE8I,aACF,CAAC;UAEDnI,MAAM,CAACnC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC4H,OAAO,CAACzE,wCAAuB,CAAC;UAChEhB,MAAM,CAAChB,0BAA0B,CAAC,CAACwG,kBAAkB,CAACnG,sBAAsB,EAAE8I,aAAa,CAAC;QAAC;QAAA;UAAA,OAAAG,SAAA,CAAAtC,IAAA;MAAA;IAAA,GAAAkC,QAAA;EAAA,CAC9F,GAAC;EAEF9E,EAAE,CAAC,8CAA8C,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAAgF,SAAA;IAAA,IAAAN,aAAA,EAAAC,OAAA,EAAAC,QAAA,EAAAxE,gBAAA;IAAA,OAAAL,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAA4E,SAAA;MAAA,kBAAAA,SAAA,CAAA1E,IAAA,GAAA0E,SAAA,CAAAzE,IAAA;QAAA;UAC3CkE,aAAa,GAAG;YACpBhD,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAE;UACV,CAAC;UAED/G,aAAa,CAAC,QAAQ,CAAC,GAAGmD,wCAAuB;UACjDrD,KAAK,CAAC2C,OAAO,CAACiI,iBAAiB,CAAClJ,sBAAsB,CAAC;UACvD1B,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACC,iBAAiB,CAACnH,iBAAiB,CAAC,CAACoH,2BAAU,CAAC,CAAC;UAC/E7I,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACG,cAAc,CAACrH,iBAAiB,CAACoH,2BAAU,CAAC;UACpE4B,OAAO,GAAGnJ,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,MAAM,CAAC;UACjCiI,QAAQ,GAAGpJ,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,OAAO,CAAC;UAAAsI,SAAA,CAAAzE,IAAA;UAAA,OACVpG,aAAa,CAAC8K,kBAAkB,CAACnJ,iBAAiB,CAACqH,OAAO,CAAC;QAAA;UAApFhD,gBAAgB,GAAA6E,SAAA,CAAAlE,IAAA;UAEtBxE,MAAM,CAAC6D,gBAAgB,CAACvE,UAAU,CAAC,CAACwH,IAAI,CAAC,GAAG,CAAC;UAC7C9G,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACkF,kBAAkB,CAAC;YACvCZ,MAAM,EAAEC,mBAAY,CAAC+D,MAAM;YAC3BjE,GAAG,KAAA5G,MAAA,CAAKe,sBAAsB,OAAAf,MAAA,CAAIyB,iBAAiB,CAACqH,OAAO;UAC7D,CAAC,CAAC;UACF7G,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,IAAA7J,MAAA,CAC1BmH,+BAAoB,qBAAAnH,MAAA,CAAkByB,iBAAiB,CAACqH,OAAO,GAClEsB,aACF,CAAC;UACDnI,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,4BAAA7J,MAAA,CACFyB,iBAAiB,CAACqH,OAAO,GACpDsB,aACF,CAAC;UACDnI,MAAM,CAACoI,OAAO,CAAC,CAAC3D,eAAe,CAAC,CAAC,CAAC;UAClCzE,MAAM,CAACqI,QAAQ,CAAC,CAAC5D,eAAe,CAAC,CAAC,CAAC;UACnCzE,MAAM,CAACb,aAAa,CAAC,CAACsF,eAAe,CAAC,CAAC,CAAC;UACxCzE,MAAM,CAACqI,QAAQ,CAAC,CAAC3D,uBAAuB,CACtC,CAAC,oCAAA3G,MAAA,CACiCyB,iBAAiB,CAACqH,OAAO,QAAA9I,MAAA,CAAK,IAAAyK,UAAA,CAAAvM,OAAA,EAC9DoD,sBACF,CAAC,GACD8I,aACF,CAAC;UACDnI,MAAM,CAACoI,OAAO,CAAC,CAAC1D,uBAAuB,CACrC,CAAC,EACD,sDAAsD,EACtDyD,aACF,CAAC;UAEDnI,MAAM,CAACnC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC4H,OAAO,CAACzE,wCAAuB,CAAC;UAChEhB,MAAM,CAAChB,0BAA0B,CAAC,CAACwG,kBAAkB,CAACnG,sBAAsB,EAAE8I,aAAa,CAAC;QAAC;QAAA;UAAA,OAAAO,SAAA,CAAA1C,IAAA;MAAA;IAAA,GAAAyC,QAAA;EAAA,CAC9F,GAAC;EAEFrF,EAAE,CAAC,sCAAsC,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAAoF,SAAA;IAAA,IAAAzC,sBAAA,EAAA0C,QAAA;IAAA,OAAAtF,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAAiF,SAAA;MAAA,kBAAAA,SAAA,CAAA/E,IAAA,GAAA+E,SAAA,CAAA9E,IAAA;QAAA;UACnCmC,sBAAsB,GAAwB;YAClD9G,UAAU,EAAE;UACd,CAAC;UAEDzB,aAAa,CAAC,QAAQ,CAAC,GAAG,CAACmD,wCAAuB,CAAC,CAAC,CAAC,CAAC;UACtDrD,KAAK,CAAC2C,OAAO,CAAClB,iBAAiB,CAACgH,sBAAsB,CAAC;UAAC2C,SAAA,CAAA9E,IAAA;UAAA,OACjCpG,aAAa,CAAC8K,kBAAkB,CAAC3H,wCAAuB,CAAC,CAAC,CAAC,CAAC6F,OAAO,CAAC;QAAA;UAArFiC,QAAQ,GAAAC,SAAA,CAAAvE,IAAA;UAEdxE,MAAM,CAAC8I,QAAQ,CAACxJ,UAAU,CAAC,CAACmG,OAAO,CAAC,GAAG,CAAC;UACxCzF,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACkF,kBAAkB,CAAC;YACvCb,GAAG,KAAA5G,MAAA,CAAKe,sBAAsB,OAAAf,MAAA,CAAIiD,wCAAuB,CAAC,CAAC,CAAC,CAAC6F,OAAO,CAAE;YACtEjC,MAAM,EAAEC,mBAAY,CAAC+D;UACvB,CAAC,CAAC;UACF5I,MAAM,CAACnC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC4H,OAAO,CAAC,EAAE,CAAC;UAE3CzF,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,4BAAA7J,MAAA,CACFiD,wCAAuB,CAAC,CAAC,CAAC,CAAC6F,OAAO,GAC7D;YACE1B,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAE;UACV,CACF,CAAC;UACD5E,MAAM,CAACI,eAAG,CAACA,GAAG,CAAC,CAACwH,cAAc,kBAAA7J,MAAA,CACXiD,wCAAuB,CAAC,CAAC,CAAC,CAAC6F,OAAO,4BACnD;YACE1B,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAE;UACV,CACF,CAAC;QAAC;QAAA;UAAA,OAAAmE,SAAA,CAAA/C,IAAA;MAAA;IAAA,GAAA6C,QAAA;EAAA,CACH,GAAC;EAEFzF,EAAE,CAAC,yCAAyC,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAAuF,SAAA;IAAA,IAAAC,iBAAA,EAAAC,oBAAA;IAAA,IAAAC,mBAAA,EAAA/C,sBAAA,EAAAsB,OAAA,EAAAM,MAAA,EAAAoB,OAAA,EAAAC,GAAA,EAAAC,MAAA;IAAA,OAAA9F,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAAyF,SAAA;MAAA,kBAAAA,SAAA,CAAAvF,IAAA,GAAAuF,SAAA,CAAAtF,IAAA;QAAA;UACtCkF,mBAAmB,GAAG3G,2CAA0B,CAAC1B,QAAQ,CAAC,CAAC,CAAC;UAC5DsF,sBAAsB,GAAwB;YAClD9G,UAAU,EAAE,GAAG;YACfC,IAAI,EAAE4J;UACR,CAAC;UAEDxL,KAAK,CAAC2C,OAAO,CAAClB,iBAAiB,CAACgH,sBAAsB,CAAC;UACvDzI,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACsC,WAAW,CAACtH,iBAAiB,CAAC,wBAAwB,CAAC;UAC3EsI,OAAO,GAAGzI,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,MAAM,CAAC;UACjC4H,MAAM,GAAG/I,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,KAAK,CAAC;UAErCvC,aAAa,CAAC,QAAQ,CAAC,GAAGmD,wCAAuB;UACjDnD,aAAa,CAAC,kBAAkB,CAAC,GAAGmD,wCAAuB,CAAC,CAAC,CAAC,CAACkG,gBAAgB;UAEzEkC,OAAO,GAAG3G,mCAAkB,CAAC+G,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;UAE7CJ,OAAO,CAAC1J,MAAM,GAAG,EAAE;UAAC6J,SAAA,CAAAtF,IAAA;UAAA,OAEepG,aAAa,CAAC4L,aAAa,CAACL,OAAO,CAAC;QAAA;UAAjEC,GAAoB,GAAAE,SAAA,CAAA/E,IAAA;UAE1BxE,MAAM,CAACqJ,GAAG,CAAC/J,UAAU,CAAC,CAACmG,OAAO,CAAC,GAAG,CAAC;UACnCzF,MAAM,EAAAiJ,iBAAA,GAACI,GAAG,CAAC3D,IAAI,CAAC0D,OAAO,cAAAH,iBAAA,uBAAhBA,iBAAA,CAAkBS,SAAS,CAAC,CAAC5C,IAAI,CAACqC,mBAAmB,CAACO,SAAS,CAAC;UACvE1J,MAAM,CAAC0H,OAAO,CAAC,CAACE,cAAc,IAAA7J,MAAA,CACzBmH,+BAAoB,yBAAAnH,MAAA,CAAsBqL,OAAO,CAACO,WAAW,GAChE;YACExE,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACuE;UAClB,CACF,CAAC;UACD5J,MAAM,CAACgI,MAAM,CAAC,CAACJ,cAAc,iCAAiC;YAC5DzC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACuE;UAClB,CAAC,CAAC;UACF5J,MAAM,CAACgI,MAAM,CAAC,CAACnC,GAAG,CAAC+B,cAAc,CAAC,oCAAoC,EAAE;YACtEzC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAE;UACV,CAAC,CAAC;UAEF5E,MAAM,CAACgI,MAAM,CAAC,CAACnC,GAAG,CAAC+B,cAAc,CAAC,oCAAoC,EAAE;YACtEzC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAE;UACV,CAAC,CAAC;UACF5E,MAAM,CAAC0H,OAAO,CAAC,CAAC7B,GAAG,CAAC+B,cAAc,8BAAA7J,MAAA,CAA8BwJ,8BAAkB,GAAI;YACpFpC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAE;UACV,CAAC,CAAC;UAEF5E,MAAM,CAACrC,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACsC,WAAW,CAAC,CAAClB,kBAAkB,CAC9DxE,wCAAuB,CAAC,CAAC,CAAC,CAACkG,gBAAgB,EAC3CkC,OAAO,CAACnC,WACV,CAAC;UAEDjH,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACkF,kBAAkB,CAAC;YACvCjG,IAAI,EAAArC,aAAA,CAAAA,aAAA,KACCkM,OAAO;cACVnC,WAAW,EAAE,wBAAwB;cACrCvH,MAAM,EAAE,CAACsB,wCAAuB,CAAC,CAAC,CAAC,CAAC6F,OAAO,CAAC;cAC5CO,OAAO,EAAEU;YAAe,EACzB;YACDnD,GAAG,EAAE7G,iBAAiB;YACtB8G,MAAM,EAAEC,mBAAY,CAACgD;UACvB,CAAC,CAAC;UAEFG,MAAM,CAACzH,SAAS,CAAC,CAAC;;UAElB;UAAAgJ,SAAA,CAAAtF,IAAA;UAAA,OACsCpG,aAAa,CAAC4L,aAAa,CAACL,OAAO,CAAC;QAAA;UAApEE,MAAuB,GAAAC,SAAA,CAAA/E,IAAA;UAE7BxE,MAAM,EAAAkJ,oBAAA,GAACI,MAAM,CAAC5D,IAAI,CAAC0D,OAAO,cAAAF,oBAAA,uBAAnBA,oBAAA,CAAqBQ,SAAS,CAAC,CAAC5C,IAAI,CAACqC,mBAAmB,CAACO,SAAS,CAAC;UAC1E1J,MAAM,CAACgI,MAAM,CAAC,CAACnC,GAAG,CAAC+B,cAAc,8BAAA7J,MAAA,CAA8BwJ,8BAAkB,GAAI;YACnFpC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAE;UACV,CAAC,CAAC;QAAC;QAAA;UAAA,OAAA2E,SAAA,CAAAvD,IAAA;MAAA;IAAA,GAAAgD,QAAA;EAAA,CACJ,GAAC;EAEF5F,EAAE,CAAC,oDAAoD,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAAoG,SAAA;IAAA,IAAAC,kBAAA;IAAA,IAAAX,mBAAA,EAAAY,kCAAA,EAAAC,6BAAA,EAAAZ,OAAA,EAAAC,GAAA;IAAA,OAAA7F,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAAmG,SAAA;MAAA,kBAAAA,SAAA,CAAAjG,IAAA,GAAAiG,SAAA,CAAAhG,IAAA;QAAA;UACjDkF,mBAAmB,GAAG1J,2CAA0B,CAACqB,QAAQ,CAAC,CAAC,CAAC;UAElEjD,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE;UAC5BA,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE;UACnCA,aAAa,CAAC,gBAAgB,CAAC,GAAG,EAAE;UAC9BkM,kCAAkC,GAAwB;YAC9DzK,UAAU,EAAE,GAAG;YACfC,IAAI,EAAEC;UACR,CAAC;UACKwK,6BAA6B,GAAwB;YACzD1K,UAAU,EAAE,GAAG;YACfC,IAAI,EAAE4J;UACR,CAAC;UAEDxL,KAAK,CAAC2C,OAAO,CACV4D,qBAAqB,CAAC6F,kCAAkC,CAAC,CACzD7F,qBAAqB,CAAC8F,6BAA6B,CAAC;UACvDrM,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACC,iBAAiB,CAACnH,iBAAiB,CAAC,CAACoH,2BAAU,CAAC,CAAC;UAC/E7I,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACG,cAAc,CAACrH,iBAAiB,CAACoH,2BAAU,CAAC;UAC1E7I,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACsC,WAAW,CAACxC,qBAAqB,CAAC,sBAAsB,CAAC;UAE7EkF,OAAO,GAAG;YACdO,WAAW,EAAE;UACf,CAAC;UAAAM,SAAA,CAAAhG,IAAA;UAAA,OAEiBpG,aAAa,CAAC4L,aAAa,CAACL,OAAO,CAAC;QAAA;UAAhDC,GAAG,GAAAY,SAAA,CAAAzF,IAAA;UAETxE,MAAM,CAACqJ,GAAG,CAAC/J,UAAU,CAAC,CAACmG,OAAO,CAAC,GAAG,CAAC;UAEnCzF,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACmE,eAAe,CAAC,CAAC,CAAC;UACxCzE,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACoE,uBAAuB,CAAC,CAAC,EAAE;YAC/CnF,IAAI,EAAE;cACJ0H,WAAW,EAAE,sBAAsB;cACnCC,gBAAgB,EAAEV,2BAAU,CAAC7B,GAAG;cAChCwC,SAAS,EAAE,QAAQ;cACnBC,OAAO,EAAEU;YACX,CAAC;YACDnD,GAAG,EAAE7F,sBAAsB;YAC3B8F,MAAM,EAAEC,mBAAY,CAACgD;UACvB,CAAC,CAAC;UACF7H,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACoE,uBAAuB,CAAC,CAAC,EAAE;YAC/CnF,IAAI,EAAE;cACJoK,WAAW,EAAE,QAAQ;cACrBzC,gBAAgB,EAAEV,2BAAU,CAAC7B,GAAG;cAChCjF,MAAM,EAAE,CAAC,sCAAsC,CAAC;cAChD0H,OAAO,EAAEU;YACX,CAAC;YACDlD,MAAM,EAAEC,mBAAY,CAACgD,IAAI;YACzBlD,GAAG,EAAE7G;UACP,CAAC,CAAC;UACFkC,MAAM,CAACrC,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACC,iBAAiB,CAAC,CAACf,kBAAkB,CAAC;YAACuB,KAAK,EAAE;UAAC,CAAC,CAAC;UACtF/G,MAAM,CAACrC,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACkC,GAAG,CAACG,cAAc,CAAC,CAACjB,kBAAkB,CAAC;YACtEwB,OAAO,EAAE,CAACR,2BAAU,CAAC7B,GAAG;UAC1B,CAAC,CAAC;UACF3E,MAAM,EAAA8J,kBAAA,GAACT,GAAG,CAAC3D,IAAI,CAAC0D,OAAO,cAAAU,kBAAA,uBAAhBA,kBAAA,CAAkBJ,SAAS,CAAC,CAAC5C,IAAI,CAACqC,mBAAmB,CAACO,SAAS,CAAC;UAEvE1J,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,IAAA7J,MAAA,CAAImH,+BAAoB,gCAA6B;YAClFC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACuE;UAClB,CAAC,CAAC;UACF5J,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,CAAC1C,+BAAoB,EAAE;YACpDC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACiC;UAClB,CAAC,CAAC;UACFtH,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,CAAC,sCAAsC,EAAE;YACtEzC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACiC;UAClB,CAAC,CAAC;UACFtH,MAAM,CAACI,eAAG,CAACA,GAAG,CAAC,CAACwH,cAAc,8BAAA7J,MAAA,CAA8BwJ,8BAAkB,GAAI;YAChFpC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAAC6E;UAClB,CAAC,CAAC;UACFlK,MAAM,CAACI,eAAG,CAACA,GAAG,CAAC,CAACwH,cAAc,iCAAiC;YAC7DzC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAE;UACV,CAAC,CAAC;QAAC;QAAA;UAAA,OAAAqF,SAAA,CAAAjE,IAAA;MAAA;IAAA,GAAA6D,QAAA;EAAA,CACJ,GAAC;EAEFzG,EAAE,CAAC,gDAAgD,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAA0G,SAAA;IAAA,IAAAC,kBAAA;IAAA,IAAAjB,mBAAA,EAAA/C,sBAAA,EAAAiE,2BAAA,EAAAjB,OAAA,EAAAC,GAAA;IAAA,OAAA7F,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAAwG,SAAA;MAAA,kBAAAA,SAAA,CAAAtG,IAAA,GAAAsG,SAAA,CAAArG,IAAA;QAAA;UAC7CkF,mBAAmB,GAAG1J,2CAA0B,CAACqB,QAAQ,CAAC,CAAC,CAAC;UAC5DsF,sBAAsB,GAAwB;YAClD9G,UAAU,EAAE,GAAG;YACfC,IAAI,EAAE4J;UACR,CAAC;UACKkB,2BAA2B,GAAwB;YACvD/K,UAAU,EAAE,GAAG;YACfC,IAAI,EAAEE,2CAA0B,CAACC,MAAM,CAAC,CAAC;UAC3C,CAAC;UAED/B,KAAK,CAAC2C,OAAO,CACV4D,qBAAqB,CAACmG,2BAA2B,CAAC,CAClDnG,qBAAqB,CAACkC,sBAAsB,CAAC,CAC7ClC,qBAAqB,CAAC3B,qCAAoB,CAAC;UAE9C5E,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACsC,WAAW,CAACxC,qBAAqB,CAAC,sBAAsB,CAAC;UAEnFrG,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE;UAC5BA,aAAa,CAAC,kBAAkB,CAAC,GAAG4B,2CAA0B,CAACC,MAAM,CAAC,CAAC,CAAC,CAACwH,gBAAgB;UAEnFkC,OAAO,GAAG;YACdO,WAAW,EAAE;UACf,CAAC;UAEDP,OAAO,CAAC1J,MAAM,GAAG,EAAE;UAAC4K,SAAA,CAAArG,IAAA;UAAA,OAEapG,aAAa,CAAC4L,aAAa,CAACL,OAAO,CAAC;QAAA;UAAjEC,GAAoB,GAAAiB,SAAA,CAAA9F,IAAA;UAExBxE,MAAM,CAACqJ,GAAG,CAAC/J,UAAU,CAAC,CAACmG,OAAO,CAAC,GAAG,CAAC;UACnCzF,MAAM,CAACqJ,GAAG,CAAC3D,IAAI,CAAC5C,KAAK,CAAC,CAAC2C,OAAO,CAAC,8CAA8C,CAAC;UAC9EzF,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,IAAA7J,MAAA,CAAImH,+BAAoB,+BAA4B;YACjFC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACuE;UAClB,CAAC,CAAC;UAEFR,OAAO,CAACM,SAAS,GAAGP,mBAAmB,CAACO,SAAS;UAACY,SAAA,CAAArG,IAAA;UAAA,OAEtCpG,aAAa,CAAC4L,aAAa,CAACL,OAAO,CAAC;QAAA;UAAhDC,GAAG,GAAAiB,SAAA,CAAA9F,IAAA;UACHxE,MAAM,CAACqJ,GAAG,CAAC/J,UAAU,CAAC,CAACmG,OAAO,CAAC,GAAG,CAAC;UACnCzF,MAAM,EAAAoK,kBAAA,GAACf,GAAG,CAAC3D,IAAI,CAAC0D,OAAO,cAAAgB,kBAAA,uBAAhBA,kBAAA,CAAkBV,SAAS,CAAC,CAAC5C,IAAI,CAACqC,mBAAmB,CAACO,SAAS,CAAC;UAEvE1J,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACmE,eAAe,CAAC,CAAC,CAAC;UACxCzE,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACoE,uBAAuB,CAAC,CAAC,EAAE;YAC/CE,MAAM,EAAEC,mBAAY,CAACgD,IAAI;YACzBlD,GAAG,EAAE7F,sBAAsB;YAC3BS,IAAI,EAAE;cACJ0H,WAAW,EAAE,sBAAsB;cACnCE,SAAS,EAAE,QAAQ;cACnBD,gBAAgB,EAAEzH,2CAA0B,CAACC,MAAM,CAAC,CAAC,CAAC,CAACwH,gBAAgB;cACvEE,OAAO,EAAEU;YACX;UACF,CAAC,CAAC;UACF9H,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACoE,uBAAuB,CAAC,CAAC,EAAE;YAC/CE,MAAM,EAAEC,mBAAY,CAACgD,IAAI;YACzBlD,GAAG,EAAE7G,iBAAiB;YACtByB,IAAI,EAAE;cACJmK,SAAS,EAAEP,mBAAmB,CAACO,SAAS;cACxCC,WAAW,EAAE,OAAO;cACpBzC,gBAAgB,EAAEzH,2CAA0B,CAACC,MAAM,CAAC,CAAC,CAAC,CAACwH,gBAAgB;cACvEE,OAAO,EAAEU,2BAAe;cACxBpI,MAAM,EAAE,CAAC,sCAAsC;YACjD;UACF,CAAC,CAAC;UACFM,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACoE,uBAAuB,CAAC,CAAC,EAAE;YAC/CC,GAAG,EAAEpG,OAAO;YACZqG,MAAM,EAAEC,mBAAY,CAACC,GAAG;YACxBC,OAAO,EAAE;cACP,kBAAkB,EAChB,yFAAyF;cAC3F,kBAAkB,EAAE;YACtB;UACF,CAAC,CAAC;UAEF/E,MAAM,CAACI,eAAG,CAACA,GAAG,CAAC,CAACwH,cAAc,iCAAiC;YAC7DzC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAE;UACV,CAAC,CAAC;QAAC;QAAA;UAAA,OAAA0F,SAAA,CAAAtE,IAAA;MAAA;IAAA,GAAAmE,QAAA;EAAA,CACJ,GAAC;EAEF/G,EAAE,CAAC,wCAAwC,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAA8G,SAAA;IAAA,IAAAnB,OAAA,EAAAC,GAAA;IAAA,OAAA7F,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAA0G,SAAA;MAAA,kBAAAA,SAAA,CAAAxG,IAAA,GAAAwG,SAAA,CAAAvG,IAAA;QAAA;UAC3CtG,KAAK,CAAC2C,OAAO,CAACiI,iBAAiB,CAAClJ,sBAAsB,CAAC;UAEvDxB,aAAa,CAAC,QAAQ,CAAC,GAAGmD,wCAAuB,CAACwI,KAAK,CAAC,CAAC;UACzD3L,aAAa,CAAC,kBAAkB,CAAC,GAAG4B,2CAA0B,CAACC,MAAM,CAAC,CAAC,CAAC,CAACwH,gBAAgB;UACnFkC,OAAO,GAAG;YACdO,WAAW,EAAE,OAAO;YACpBD,SAAS,EAAE;UACb,CAAC;UAAAc,SAAA,CAAAvG,IAAA;UAAA,OAEkCpG,aAAa,CAAC4L,aAAa,CAACL,OAAO,CAAC;QAAA;UAAjEC,GAAoB,GAAAmB,SAAA,CAAAhG,IAAA;UAE1BxE,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACkF,kBAAkB,CAAC;YACvCb,GAAG,EAAE7G,iBAAiB;YACtB8G,MAAM,EAAEC,mBAAY,CAACgD,IAAI;YACzBtI,IAAI,EAAArC,aAAA,CAAAA,aAAA,KACCkM,OAAO;cACVlC,gBAAgB,EAAEzH,2CAA0B,CAACC,MAAM,CAAC,CAAC,CAAC,CAACwH,gBAAgB;cACvExH,MAAM,EAAE,CAACsB,wCAAuB,CAAC,CAAC,CAAC,CAAC6F,OAAO,CAAC;cAC5CO,OAAO,EAAEU;YAAe;UAE5B,CAAC,CAAC;UACF9H,MAAM,CAAChB,0BAA0B,CAAC,CAACwG,kBAAkB,CAACnG,sBAAsB,EAAE;YAC5E8F,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACuE;UAClB,CAAC,CAAC;UACF5J,MAAM,CAACqJ,GAAG,CAAC/J,UAAU,CAAC,CAACmG,OAAO,CAAC,GAAG,CAAC;UAEnCzF,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,IAAA7J,MAAA,CAAImH,+BAAoB,+BAA4B;YACjFC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACuE;UAClB,CAAC,CAAC;UACF5J,MAAM,CAACI,eAAG,CAAC0C,KAAK,CAAC,CAAC8E,cAAc,8BAAA7J,MAAA,CACD,IAAAyK,UAAA,CAAAvM,OAAA,EAAeoD,sBAAsB,CAAC,GACnE;YACE8F,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACuE;UAClB,CACF,CAAC;QAAC;QAAA;UAAA,OAAAY,SAAA,CAAAxE,IAAA;MAAA;IAAA,GAAAuE,QAAA;EAAA,CACH,GAAC;EAEFnH,EAAE,CAAC,iCAAiC,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAAgH,UAAA;IAAA,IAAArE,sBAAA,EAAA0C,QAAA;IAAA,OAAAtF,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAA4G,UAAA;MAAA,kBAAAA,UAAA,CAAA1G,IAAA,GAAA0G,UAAA,CAAAzG,IAAA;QAAA;UAC9BmC,sBAAsB,GAAwB;YAClD9G,UAAU,EAAE;UACd,CAAC;UAEDzB,aAAa,CAAC,UAAU,CAAC,GAAG,CAACkD,mCAAkB,CAAC,CAAC,CAAC,CAAC;UACnDpD,KAAK,CAAC2C,OAAO,CAAClB,iBAAiB,CAACgH,sBAAsB,CAAC;UAACsE,UAAA,CAAAzG,IAAA;UAAA,OACjCpG,aAAa,CAAC8M,aAAa,CAAC5J,mCAAkB,CAAC,CAAC,CAAC,CAAC2I,SAAS,CAAC;QAAA;UAA7EZ,QAAQ,GAAA4B,UAAA,CAAAlG,IAAA;UAEdxE,MAAM,CAAC8I,QAAQ,CAACxJ,UAAU,CAAC,CAACmG,OAAO,CAAC,GAAG,CAAC;UACxCzF,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACkF,kBAAkB,CAAC;YACvCb,GAAG,KAAA5G,MAAA,CAAKD,iBAAiB,OAAAC,MAAA,CAAIgD,mCAAkB,CAAC,CAAC,CAAC,CAAC2I,SAAS,CAAE;YAC9D9E,MAAM,EAAEC,mBAAY,CAAC+D;UACvB,CAAC,CAAC;UACF5I,MAAM,CAACnC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC4H,OAAO,CAAC,EAAE,CAAC;UAE7CzF,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,IAAA7J,MAAA,CAC1BmH,+BAAoB,uBAAAnH,MAAA,CAAoBgD,mCAAkB,CAAC,CAAC,CAAC,CAAC2I,SAAS,GAC1E;YACEvE,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACuF;UAClB,CACF,CAAC;UACD5K,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,uBAAA7J,MAAA,CAAuBgD,mCAAkB,CAAC,CAAC,CAAC,CAAC2I,SAAS,GAAI;YACvFvE,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACuF;UAClB,CAAC,CAAC;QAAC;QAAA;UAAA,OAAAF,UAAA,CAAA1E,IAAA;MAAA;IAAA,GAAAyE,SAAA;EAAA,CACJ,GAAC;EAEFrH,EAAE,CAAC,wCAAwC,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAAoH,UAAA;IAAA,IAAA/B,QAAA;IAAA,OAAAtF,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAAgH,UAAA;MAAA,kBAAAA,UAAA,CAAA9G,IAAA,GAAA8G,UAAA,CAAA7G,IAAA;QAAA;UAC3CpG,aAAa,CAAC,UAAU,CAAC,GAAGkD,mCAAkB;UAE9CpD,KAAK,CAAC2C,OAAO,CAACiI,iBAAiB,CAAClJ,sBAAsB,CAAC;UAACyL,UAAA,CAAA7G,IAAA;UAAA,OACjCpG,aAAa,CAAC8M,aAAa,CAAC5J,mCAAkB,CAAC,CAAC,CAAC,CAAC2I,SAAS,CAAC;QAAA;UAA7EZ,QAAQ,GAAAgC,UAAA,CAAAtG,IAAA;UAEdxE,MAAM,CAAC8I,QAAQ,CAACxJ,UAAU,CAAC,CAACmG,OAAO,CAAC,GAAG,CAAC;UACxCzF,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACkF,kBAAkB,CAAC;YACvCb,GAAG,KAAA5G,MAAA,CAAKD,iBAAiB,OAAAC,MAAA,CAAIgD,mCAAkB,CAAC,CAAC,CAAC,CAAC2I,SAAS,CAAE;YAC9D9E,MAAM,EAAEC,mBAAY,CAAC+D;UACvB,CAAC,CAAC;UAEF5I,MAAM,CAAChB,0BAA0B,CAAC,CAACwG,kBAAkB,CAACnG,sBAAsB,EAAE;YAC5E8F,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACuF;UAClB,CAAC,CAAC;UAEF5K,MAAM,CAACnC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC4H,OAAO,CAAC1E,mCAAkB,CAAC;UAE7Df,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,IAAA7J,MAAA,CAC1BmH,+BAAoB,uBAAAnH,MAAA,CAAoBgD,mCAAkB,CAAC,CAAC,CAAC,CAAC2I,SAAS,GAC1E;YACEvE,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACuF;UAClB,CACF,CAAC;UACD5K,MAAM,CAACI,eAAG,CAAC4E,IAAI,CAAC,CAAC4C,cAAc,uBAAA7J,MAAA,CAAuBgD,mCAAkB,CAAC,CAAC,CAAC,CAAC2I,SAAS,GAAI;YACvFvE,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACuF;UAClB,CAAC,CAAC;QAAC;QAAA;UAAA,OAAAE,UAAA,CAAA9E,IAAA;MAAA;IAAA,GAAA6E,SAAA;EAAA,CACJ,GAAC;EAEFzH,EAAE,CAAC,sEAAsE,EAAE,YAAM;IAC/E,IAAMgG,OAAO,GAAGvL,aAAa,CAAC,sBAAsB,CAAC,CACnD;MAACkN,MAAM,EAAEC;IAAkB,CAAC,EAC5BC,wCAAuB,CAAC1L,IAC1B,CAAC;IAEDS,MAAM,CAACoJ,OAAO,CAAC,CAAC3D,OAAO,CAAC,CACtB;MACEyF,SAAS,EAAE,EAAE;MACbC,eAAe,EAAEtI,SAAS;MAC1B6G,SAAS,EAAE,QAAQ;MACnBC,WAAW,EAAE,OAAO;MACpByB,UAAU,EAAEvI,SAAS;MACrBoE,WAAW,EAAEpE,SAAS;MACtBwI,MAAM,EAAExI,SAAS;MACjBqE,gBAAgB,EAAE,2DAA2D;MAC7EoE,SAAS,EAAEzI,SAAS;MACpBnD,MAAM,EAAE,CAAC,sCAAsC,CAAC;MAChD6L,QAAQ,EAAE1I,SAAS;MACnB2I,OAAO,EAAE3I,SAAS;MAClB4I,OAAO,EAAE,SAAS;MAClBC,YAAY,EAAE7I,SAAS;MACvB8I,YAAY,EAAE9I,SAAS;MACvB+I,QAAQ,EAAE;IACZ,CAAC,CACF,CAAC;EACJ,CAAC,CAAC;EAEFxI,EAAE,CAAC,qFAAqF,EAAE,YAAM;IAC9F,IAAMyI,WAAW,GAAG;MAClBP,SAAS,EAAE,MAAM;MACjBC,QAAQ,EAAE,KAAK;MACf7B,SAAS,EAAE;IACb,CAAC;IAED,IAAMN,OAAO,GAAGvL,aAAa,CAAC,sBAAsB,CAAC,CACnD;MAACkN,MAAM,EAAEC,mCAAkB;MAAEc,OAAO,EAAED;IAAW,CAAC,EAClDZ,wCAAuB,CAAC1L,IAC1B,CAAC;IAEDS,MAAM,CAACoJ,OAAO,CAAC,CAAC3D,OAAO,CAAC,CACtB;MACE6F,SAAS,EAAE,MAAM;MACjBC,QAAQ,EAAE,KAAK;MACf7B,SAAS,EAAE,SAAS;MACpBkC,QAAQ,EAAE;IACZ,CAAC,EACD;MACEV,SAAS,EAAE,EAAE;MACbC,eAAe,EAAEtI,SAAS;MAC1B6G,SAAS,EAAE,QAAQ;MACnBC,WAAW,EAAE,OAAO;MACpByB,UAAU,EAAEvI,SAAS;MACrBoE,WAAW,EAAEpE,SAAS;MACtBwI,MAAM,EAAExI,SAAS;MACjBqE,gBAAgB,EAAE,2DAA2D;MAC7EoE,SAAS,EAAEzI,SAAS;MACpBnD,MAAM,EAAE,CAAC,sCAAsC,CAAC;MAChD6L,QAAQ,EAAE1I,SAAS;MACnB2I,OAAO,EAAE3I,SAAS;MAClB4I,OAAO,EAAE,SAAS;MAClBC,YAAY,EAAE7I,SAAS;MACvB8I,YAAY,EAAE9I,SAAS;MACvB+I,QAAQ,EAAE;IACZ,CAAC,CACF,CAAC;EACJ,CAAC,CAAC;EAEFxI,EAAE,CAAC,qDAAqD,EAAE,YAAM;IAC9D,IAAMgF,OAAO,GAAGnJ,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,MAAM,CAAC;IAEvC,IAAMgJ,OAAO,GAAGvL,aAAa,CAAC,sBAAsB,CAAC,CACnD;MAACkN,MAAM,EAAEC;IAAkB,CAAC,EAC5BC,wCACF,CAAC;IAEDjL,MAAM,CAACoJ,OAAO,CAAC,CAAC3D,OAAO,CAAC,IAAI,CAAC;IAC7BzF,MAAM,CAACoI,OAAO,CAAC,CAACnD,oBAAoB,CAAC,gDAAgD,EAAE;MACrFE,IAAI,EAAEC,2BAAe;MACrBR,MAAM,EAAE;IACV,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFxB,EAAE,CAAC,gFAAgF,mBAAAG,kBAAA,CAAAtH,OAAA,eAAAuH,YAAA,CAAAvH,OAAA,CAAAwH,IAAA,CAAE,SAAAsI,UAAA;IAAA,IAAAC,QAAA,EAAApI,WAAA,EAAAwE,OAAA,EAAAV,OAAA,EAAAM,MAAA;IAAA,OAAAxE,YAAA,CAAAvH,OAAA,CAAA6H,IAAA,WAAAmI,UAAA;MAAA,kBAAAA,UAAA,CAAAjI,IAAA,GAAAiI,UAAA,CAAAhI,IAAA;QAAA;UAC7E+H,QAAQ,GAAGvL,UAAU,CAAC,CAAC,CAAC;UACxBmD,WAAW,GAAG;YAClBtE,UAAU,EAAE0M,QAAQ,CAACpL,eAAe;YACpCrB,IAAI,EAAEyM,QAAQ,CAACrL;UACjB,CAAC;UACDhD,KAAK,CAAC2C,OAAO,CAAC4D,qBAAqB,CAACN,WAAW,CAAC,CAACU,qBAAqB,CAAApH,aAAA,CAAAA,aAAA,KACjE0G,WAAW;YACdtE,UAAU,EAAE,GAAG;YACfsG,OAAO,EAAE7C,0BAAe;YACxB2C,IAAI,EAAEsG,QAAQ,CAACrL;UAAW,EAC3B,CAAC;UAEFqL,QAAQ,CAAC5K,eAAe,CAAC9D,OAAO,CAAC,UAAC6G,IAAI,EAAK;YACzCxG,KAAK,CAACK,QAAQ,CAACoG,UAAU,CAACC,WAAW,CAACH,qBAAqB,CAACC,IAAI,CAAC;UACnE,CAAC,CAAC;UAEIiE,OAAO,GAAGnJ,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,MAAM,CAAC;UACjCsH,OAAO,GAAGzI,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,MAAM,CAAC;UACjC4H,MAAM,GAAG/I,IAAI,CAACC,KAAK,CAACkB,eAAG,EAAE,KAAK,CAAC;UAAA6L,UAAA,CAAAhI,IAAA;UAAA,OAE/BpG,aAAa,CAAC0G,WAAW,CAAC,CAAC;QAAA;UAEjCvE,MAAM,CAACrC,KAAK,CAAC2C,OAAO,CAAC,CAACmE,eAAe,CAAC,CAAC,CAAC;UACxCzE,MAAM,CAACoI,OAAO,CAAC,CAAC3D,eAAe,CAAC,CAAC,CAAC;UAClCzE,MAAM,CAACoI,OAAO,CAAC,CAACR,cAAc,CAAC,qCAAqC,EAAE;YACpEzC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACC;UAClB,CAAC,CAAC;UACFtF,MAAM,CAAC0H,OAAO,CAAC,CAACE,cAAc,CAAC1C,+BAAoB,EAAE;YACnDC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACC;UAClB,CAAC,CAAC;UACFtF,MAAM,CAACgI,MAAM,CAAC,CAACJ,cAAc,CAAC,0CAA0C,EAAE;YACxEzC,IAAI,EAAEC,2BAAe;YACrBR,MAAM,EAAES,mBAAO,CAACC;UAClB,CAAC,CAAC;QAAC;QAAA;UAAA,OAAA2G,UAAA,CAAAjG,IAAA;MAAA;IAAA,GAAA+F,SAAA;EAAA,CACJ,GAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.encryptedFields = exports.USERS = exports.SCIM_ID_FILTER = exports.OR = exports.METHODS = exports.GROUP_FILTER = exports.ENCRYPT_FILTER = exports.DEFAULT_GROUP_NAME = exports.CONTACT_FILTER = exports.CONTACTS_SCHEMA = exports.CONTACTS_CLIENT = void 0;
8
+ var CONTACTS_CLIENT = exports.CONTACTS_CLIENT = 'ContactsClient';
9
+ var CONTACT_FILTER = exports.CONTACT_FILTER = 'contacts';
10
+ var GROUP_FILTER = exports.GROUP_FILTER = 'groups';
11
+ var ENCRYPT_FILTER = exports.ENCRYPT_FILTER = 'encrypt';
12
+ var USERS = exports.USERS = 'Users';
13
+ var DEFAULT_GROUP_NAME = exports.DEFAULT_GROUP_NAME = 'Other contacts';
14
+ var CONTACTS_SCHEMA = exports.CONTACTS_SCHEMA = 'urn:cisco:codev:identity:contact:core:1.0';
15
+ var SCIM_ID_FILTER = exports.SCIM_ID_FILTER = 'id eq';
16
+ var OR = exports.OR = ' or ';
17
+ var encryptedFields = exports.encryptedFields = /*#__PURE__*/function (encryptedFields) {
18
+ encryptedFields["ADDRESS_INFO"] = "addressInfo";
19
+ encryptedFields["AVATAR_URL"] = "avatarURL";
20
+ encryptedFields["COMPANY"] = "companyName";
21
+ encryptedFields["DISPLAY_NAME"] = "displayName";
22
+ encryptedFields["EMAILS"] = "emails";
23
+ encryptedFields["FIRST_NAME"] = "firstName";
24
+ encryptedFields["LAST_NAME"] = "lastName";
25
+ encryptedFields["PHONE_NUMBERS"] = "phoneNumbers";
26
+ encryptedFields["SIP_ADDRESSES"] = "sipAddresses";
27
+ encryptedFields["TITLE"] = "title";
28
+ return encryptedFields;
29
+ }({});
30
+ var METHODS = exports.METHODS = {
31
+ GET_CONTACTS: 'getContacts',
32
+ CREATE_NEW_ENCRYPTION_KEY_URL: 'createNewEncryptionKeyUrl',
33
+ FETCH_ENCRYPTION_KEY_URL: 'fetchEncryptionKeyUrl',
34
+ FETCH_DEFAULT_GROUP: 'fetchDefaultGroup',
35
+ CREATE_CONTACT_GROUP: 'createContactGroup',
36
+ DELETE_CONTACT_GROUP: 'deleteContactGroup',
37
+ CREATE_CONTACT: 'createContact',
38
+ DELETE_CONTACT: 'deleteContact'
39
+ };
40
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CONTACTS_CLIENT","exports","CONTACT_FILTER","GROUP_FILTER","ENCRYPT_FILTER","USERS","DEFAULT_GROUP_NAME","CONTACTS_SCHEMA","SCIM_ID_FILTER","OR","encryptedFields","METHODS","GET_CONTACTS","CREATE_NEW_ENCRYPTION_KEY_URL","FETCH_ENCRYPTION_KEY_URL","FETCH_DEFAULT_GROUP","CREATE_CONTACT_GROUP","DELETE_CONTACT_GROUP","CREATE_CONTACT","DELETE_CONTACT"],"sources":["constants.ts"],"sourcesContent":["export const CONTACTS_CLIENT = 'ContactsClient';\nexport const CONTACT_FILTER = 'contacts';\nexport const GROUP_FILTER = 'groups';\nexport const ENCRYPT_FILTER = 'encrypt';\nexport const USERS = 'Users';\nexport const DEFAULT_GROUP_NAME = 'Other contacts';\nexport const CONTACTS_SCHEMA = 'urn:cisco:codev:identity:contact:core:1.0';\nexport const SCIM_ID_FILTER = 'id eq';\nexport const OR = ' or ';\n\nexport enum encryptedFields {\n ADDRESS_INFO = 'addressInfo',\n AVATAR_URL = 'avatarURL',\n COMPANY = 'companyName',\n DISPLAY_NAME = 'displayName',\n EMAILS = 'emails',\n FIRST_NAME = 'firstName',\n LAST_NAME = 'lastName',\n PHONE_NUMBERS = 'phoneNumbers',\n SIP_ADDRESSES = 'sipAddresses',\n TITLE = 'title',\n}\n\nexport const METHODS = {\n GET_CONTACTS: 'getContacts',\n CREATE_NEW_ENCRYPTION_KEY_URL: 'createNewEncryptionKeyUrl',\n FETCH_ENCRYPTION_KEY_URL: 'fetchEncryptionKeyUrl',\n FETCH_DEFAULT_GROUP: 'fetchDefaultGroup',\n CREATE_CONTACT_GROUP: 'createContactGroup',\n DELETE_CONTACT_GROUP: 'deleteContactGroup',\n CREATE_CONTACT: 'createContact',\n DELETE_CONTACT: 'deleteContact',\n};\n"],"mappings":";;;;;;;AAAO,IAAMA,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,gBAAgB;AACxC,IAAME,cAAc,GAAAD,OAAA,CAAAC,cAAA,GAAG,UAAU;AACjC,IAAMC,YAAY,GAAAF,OAAA,CAAAE,YAAA,GAAG,QAAQ;AAC7B,IAAMC,cAAc,GAAAH,OAAA,CAAAG,cAAA,GAAG,SAAS;AAChC,IAAMC,KAAK,GAAAJ,OAAA,CAAAI,KAAA,GAAG,OAAO;AACrB,IAAMC,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAG,gBAAgB;AAC3C,IAAMC,eAAe,GAAAN,OAAA,CAAAM,eAAA,GAAG,2CAA2C;AACnE,IAAMC,cAAc,GAAAP,OAAA,CAAAO,cAAA,GAAG,OAAO;AAC9B,IAAMC,EAAE,GAAAR,OAAA,CAAAQ,EAAA,GAAG,MAAM;AAAC,IAEbC,eAAe,GAAAT,OAAA,CAAAS,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAapB,IAAMC,OAAO,GAAAV,OAAA,CAAAU,OAAA,GAAG;EACrBC,YAAY,EAAE,aAAa;EAC3BC,6BAA6B,EAAE,2BAA2B;EAC1DC,wBAAwB,EAAE,uBAAuB;EACjDC,mBAAmB,EAAE,mBAAmB;EACxCC,oBAAoB,EAAE,oBAAoB;EAC1CC,oBAAoB,EAAE,oBAAoB;EAC1CC,cAAc,EAAE,eAAe;EAC/BC,cAAc,EAAE;AAClB,CAAC","ignoreList":[]}