common-header-lib 0.0.1

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 (195) hide show
  1. package/README.md +24 -0
  2. package/assets/.gitkeep +0 -0
  3. package/assets/i18n/ar.json +83 -0
  4. package/assets/i18n/de.json +83 -0
  5. package/assets/i18n/en.json +83 -0
  6. package/assets/i18n/es.json +83 -0
  7. package/assets/i18n/fr.json +83 -0
  8. package/assets/i18n/hi.json +83 -0
  9. package/assets/i18n/ja.json +83 -0
  10. package/assets/i18n/ko.json +83 -0
  11. package/assets/images/APP019.svg +6 -0
  12. package/assets/images/APP020.svg +4 -0
  13. package/assets/images/APP021.svg +6 -0
  14. package/assets/images/APP022.svg +6 -0
  15. package/assets/images/APP023.svg +11 -0
  16. package/assets/images/APP024.svg +9 -0
  17. package/assets/images/APP025.svg +8 -0
  18. package/assets/images/APP026.svg +4 -0
  19. package/assets/images/APP027.svg +5 -0
  20. package/assets/images/APP028.svg +6 -0
  21. package/assets/images/APP029.svg +12 -0
  22. package/assets/images/APP030.svg +20 -0
  23. package/assets/images/APP031.svg +14 -0
  24. package/assets/images/APP032.svg +17 -0
  25. package/assets/images/Frame.svg +104 -0
  26. package/assets/images/apps-1.svg +22 -0
  27. package/assets/images/bell-icon.svg +3 -0
  28. package/assets/images/check_circle.svg +3 -0
  29. package/assets/images/close copy.svg +5 -0
  30. package/assets/images/close.svg +5 -0
  31. package/assets/images/copy-img.svg +3 -0
  32. package/assets/images/cross-search.svg +4 -0
  33. package/assets/images/domain_img.svg +3 -0
  34. package/assets/images/east.svg +3 -0
  35. package/assets/images/error.svg +3 -0
  36. package/assets/images/filepath.svg +8 -0
  37. package/assets/images/flag1.svg +3 -0
  38. package/assets/images/gc-mail.svg +3 -0
  39. package/assets/images/grey-arrow.svg +3 -0
  40. package/assets/images/info.svg +3 -0
  41. package/assets/images/local.svg +3 -0
  42. package/assets/images/lock-pass.svg +3 -0
  43. package/assets/images/lock1.svg +3 -0
  44. package/assets/images/login-bg/default_bg.svg +448 -0
  45. package/assets/images/login-bg/visibility.svg +3 -0
  46. package/assets/images/login-bg/visibility_off.svg +3 -0
  47. package/assets/images/logo.png +0 -0
  48. package/assets/images/logout.svg +3 -0
  49. package/assets/images/mail-icon.svg +3 -0
  50. package/assets/images/marker-pin.svg +4 -0
  51. package/assets/images/noti_ticket.svg +3 -0
  52. package/assets/images/pass-img.svg +3 -0
  53. package/assets/images/refresh-1.svg +3 -0
  54. package/assets/images/schedule.svg +1 -0
  55. package/assets/images/search-filter.svg +3 -0
  56. package/assets/images/search-icon.svg +3 -0
  57. package/assets/images/settings.svg +3 -0
  58. package/assets/images/successful.svg +10 -0
  59. package/assets/images/user-name.svg +3 -0
  60. package/assets/scss/_sidebar.scss +267 -0
  61. package/assets/scss/styles.scss +577 -0
  62. package/esm2020/common-header-lib.mjs +5 -0
  63. package/esm2020/lib/Validators/noSpaceAllowed.mjs +16 -0
  64. package/esm2020/lib/common-header-lib.component.mjs +612 -0
  65. package/esm2020/lib/common-header-lib.module.mjs +208 -0
  66. package/esm2020/lib/common-header-lib.service.mjs +200 -0
  67. package/esm2020/lib/components/confirm-dialog/confirm-dialog.component.mjs +49 -0
  68. package/esm2020/lib/components/general-configuration/general-configuration.component.mjs +402 -0
  69. package/esm2020/lib/components/general-configuration/landingpg-config/landingpg-config.component.mjs +124 -0
  70. package/esm2020/lib/components/general-configuration/timezone-configuration/timezone-configuration.component.mjs +138 -0
  71. package/esm2020/lib/components/grid-pagination/grid-pagination.component.mjs +39 -0
  72. package/esm2020/lib/components/ng-translation/ng-translation.component.mjs +65 -0
  73. package/esm2020/lib/components/no-service-my-access-pg/no-service-my-access-pg.component.mjs +19 -0
  74. package/esm2020/lib/components/notification-sidebar/notification-sidebar.component.mjs +40 -0
  75. package/esm2020/lib/components/side-popup/side-popup.component.mjs +34 -0
  76. package/esm2020/lib/components/user-mailbox/user-mailbox.component.mjs +173 -0
  77. package/esm2020/lib/components/user-sidebar/user-sidebar.component.mjs +279 -0
  78. package/esm2020/lib/components/viewpassword-popup/viewpassword-popup.component.mjs +196 -0
  79. package/esm2020/lib/model/data_model.mjs +217 -0
  80. package/esm2020/lib/pipes/custome-dateformat.pipe.mjs +27 -0
  81. package/esm2020/lib/pipes/date-diff.pipe.mjs +56 -0
  82. package/esm2020/lib/pipes/slice-to-two.pipe.mjs +34 -0
  83. package/esm2020/lib/services/EncrypDecryp_RSA.service.mjs +100 -0
  84. package/esm2020/lib/services/async-passwordcheck.service.mjs +72 -0
  85. package/esm2020/lib/services/cookie-storage-manager.service.mjs +78 -0
  86. package/esm2020/lib/services/encrpdata.service.mjs +55 -0
  87. package/esm2020/lib/services/encrydecrydata.service.mjs +207 -0
  88. package/esm2020/lib/services/event.service.mjs +133 -0
  89. package/esm2020/lib/services/http/http-common.service.mjs +216 -0
  90. package/esm2020/lib/services/http/http-general-config.service.mjs +84 -0
  91. package/esm2020/lib/services/rest-login-form.service.mjs +296 -0
  92. package/esm2020/lib/services/rest-signalr.service.mjs +100 -0
  93. package/esm2020/lib/services/storage.service.mjs +33 -0
  94. package/esm2020/lib/services/toast-msg.service.mjs +95 -0
  95. package/esm2020/lib/services/vapt-validation.service.mjs +31 -0
  96. package/esm2020/public-api.mjs +13 -0
  97. package/fesm2015/common-header-lib.mjs +4165 -0
  98. package/fesm2015/common-header-lib.mjs.map +1 -0
  99. package/fesm2020/common-header-lib.mjs +4146 -0
  100. package/fesm2020/common-header-lib.mjs.map +1 -0
  101. package/index.d.ts +5 -0
  102. package/lib/Validators/noSpaceAllowed.d.ts +2 -0
  103. package/lib/common-header-lib.component.d.ts +148 -0
  104. package/lib/common-header-lib.module.d.ts +43 -0
  105. package/lib/common-header-lib.service.d.ts +25 -0
  106. package/lib/components/confirm-dialog/confirm-dialog.component.d.ts +13 -0
  107. package/lib/components/general-configuration/general-configuration.component.d.ts +86 -0
  108. package/lib/components/general-configuration/landingpg-config/landingpg-config.component.d.ts +37 -0
  109. package/lib/components/general-configuration/timezone-configuration/timezone-configuration.component.d.ts +38 -0
  110. package/lib/components/grid-pagination/grid-pagination.component.d.ts +20 -0
  111. package/lib/components/ng-translation/ng-translation.component.d.ts +22 -0
  112. package/lib/components/no-service-my-access-pg/no-service-my-access-pg.component.d.ts +8 -0
  113. package/lib/components/notification-sidebar/notification-sidebar.component.d.ts +16 -0
  114. package/lib/components/side-popup/side-popup.component.d.ts +14 -0
  115. package/lib/components/user-mailbox/user-mailbox.component.d.ts +40 -0
  116. package/lib/components/user-sidebar/user-sidebar.component.d.ts +61 -0
  117. package/lib/components/viewpassword-popup/viewpassword-popup.component.d.ts +47 -0
  118. package/lib/model/data_model.d.ts +184 -0
  119. package/lib/pipes/custome-dateformat.pipe.d.ts +8 -0
  120. package/lib/pipes/date-diff.pipe.d.ts +9 -0
  121. package/lib/pipes/slice-to-two.pipe.d.ts +7 -0
  122. package/lib/services/EncrypDecryp_RSA.service.d.ts +15 -0
  123. package/lib/services/async-passwordcheck.service.d.ts +18 -0
  124. package/lib/services/cookie-storage-manager.service.d.ts +16 -0
  125. package/lib/services/encrpdata.service.d.ts +12 -0
  126. package/lib/services/encrydecrydata.service.d.ts +33 -0
  127. package/lib/services/event.service.d.ts +30 -0
  128. package/lib/services/http/http-common.service.d.ts +30 -0
  129. package/lib/services/http/http-general-config.service.d.ts +15 -0
  130. package/lib/services/rest-login-form.service.d.ts +39 -0
  131. package/lib/services/rest-signalr.service.d.ts +23 -0
  132. package/lib/services/storage.service.d.ts +11 -0
  133. package/lib/services/toast-msg.service.d.ts +21 -0
  134. package/lib/services/vapt-validation.service.d.ts +7 -0
  135. package/package.json +49 -0
  136. package/public-api.d.ts +8 -0
  137. package/src/assets/i18n/ar.json +83 -0
  138. package/src/assets/i18n/de.json +83 -0
  139. package/src/assets/i18n/en.json +83 -0
  140. package/src/assets/i18n/es.json +83 -0
  141. package/src/assets/i18n/fr.json +83 -0
  142. package/src/assets/i18n/hi.json +83 -0
  143. package/src/assets/i18n/ja.json +83 -0
  144. package/src/assets/i18n/ko.json +83 -0
  145. package/src/assets/images/APP019.svg +6 -0
  146. package/src/assets/images/APP020.svg +4 -0
  147. package/src/assets/images/APP021.svg +6 -0
  148. package/src/assets/images/APP022.svg +6 -0
  149. package/src/assets/images/APP023.svg +11 -0
  150. package/src/assets/images/APP024.svg +9 -0
  151. package/src/assets/images/APP025.svg +8 -0
  152. package/src/assets/images/APP026.svg +4 -0
  153. package/src/assets/images/APP027.svg +5 -0
  154. package/src/assets/images/APP028.svg +6 -0
  155. package/src/assets/images/APP029.svg +12 -0
  156. package/src/assets/images/APP030.svg +20 -0
  157. package/src/assets/images/APP031.svg +14 -0
  158. package/src/assets/images/APP032.svg +17 -0
  159. package/src/assets/images/Frame.svg +104 -0
  160. package/src/assets/images/apps-1.svg +22 -0
  161. package/src/assets/images/bell-icon.svg +3 -0
  162. package/src/assets/images/check_circle.svg +3 -0
  163. package/src/assets/images/close copy.svg +5 -0
  164. package/src/assets/images/close.svg +5 -0
  165. package/src/assets/images/copy-img.svg +3 -0
  166. package/src/assets/images/cross-search.svg +4 -0
  167. package/src/assets/images/domain_img.svg +3 -0
  168. package/src/assets/images/east.svg +3 -0
  169. package/src/assets/images/error.svg +3 -0
  170. package/src/assets/images/filepath.svg +8 -0
  171. package/src/assets/images/flag1.svg +3 -0
  172. package/src/assets/images/gc-mail.svg +3 -0
  173. package/src/assets/images/grey-arrow.svg +3 -0
  174. package/src/assets/images/info.svg +3 -0
  175. package/src/assets/images/local.svg +3 -0
  176. package/src/assets/images/lock-pass.svg +3 -0
  177. package/src/assets/images/lock1.svg +3 -0
  178. package/src/assets/images/login-bg/default_bg.svg +448 -0
  179. package/src/assets/images/login-bg/visibility.svg +3 -0
  180. package/src/assets/images/login-bg/visibility_off.svg +3 -0
  181. package/src/assets/images/logo.png +0 -0
  182. package/src/assets/images/logout.svg +3 -0
  183. package/src/assets/images/mail-icon.svg +3 -0
  184. package/src/assets/images/marker-pin.svg +4 -0
  185. package/src/assets/images/noti_ticket.svg +3 -0
  186. package/src/assets/images/pass-img.svg +3 -0
  187. package/src/assets/images/refresh-1.svg +3 -0
  188. package/src/assets/images/schedule.svg +1 -0
  189. package/src/assets/images/search-filter.svg +3 -0
  190. package/src/assets/images/search-icon.svg +3 -0
  191. package/src/assets/images/settings.svg +3 -0
  192. package/src/assets/images/successful.svg +10 -0
  193. package/src/assets/images/user-name.svg +3 -0
  194. package/src/assets/scss/_sidebar.scss +267 -0
  195. package/src/assets/scss/styles.scss +577 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-header-lib.mjs","sources":["../../../projects/common-header-lib/src/lib/model/data_model.ts","../../../projects/common-header-lib/src/lib/common-header-lib.service.ts","../../../projects/common-header-lib/src/lib/services/storage.service.ts","../../../projects/common-header-lib/src/lib/services/encrpdata.service.ts","../../../projects/common-header-lib/src/lib/services/rest-signalr.service.ts","../../../projects/common-header-lib/src/lib/services/event.service.ts","../../../projects/common-header-lib/src/lib/services/http/http-common.service.ts","../../../projects/common-header-lib/src/lib/services/toast-msg.service.ts","../../../projects/common-header-lib/src/lib/services/EncrypDecryp_RSA.service.ts","../../../projects/common-header-lib/src/lib/services/async-passwordcheck.service.ts","../../../projects/common-header-lib/src/lib/Validators/noSpaceAllowed.ts","../../../projects/common-header-lib/src/lib/services/cookie-storage-manager.service.ts","../../../projects/common-header-lib/src/lib/services/encrydecrydata.service.ts","../../../projects/common-header-lib/src/lib/services/rest-login-form.service.ts","../../../projects/common-header-lib/src/lib/services/vapt-validation.service.ts","../../../projects/common-header-lib/src/lib/services/http/http-general-config.service.ts","../../../projects/common-header-lib/src/lib/components/general-configuration/timezone-configuration/timezone-configuration.component.ts","../../../projects/common-header-lib/src/lib/components/general-configuration/timezone-configuration/timezone-configuration.component.html","../../../projects/common-header-lib/src/lib/components/general-configuration/landingpg-config/landingpg-config.component.ts","../../../projects/common-header-lib/src/lib/components/general-configuration/landingpg-config/landingpg-config.component.html","../../../projects/common-header-lib/src/lib/components/general-configuration/general-configuration.component.ts","../../../projects/common-header-lib/src/lib/components/general-configuration/general-configuration.component.html","../../../projects/common-header-lib/src/lib/components/ng-translation/ng-translation.component.ts","../../../projects/common-header-lib/src/lib/components/ng-translation/ng-translation.component.html","../../../projects/common-header-lib/src/lib/pipes/slice-to-two.pipe.ts","../../../projects/common-header-lib/src/lib/components/user-sidebar/user-sidebar.component.ts","../../../projects/common-header-lib/src/lib/components/user-sidebar/user-sidebar.component.html","../../../projects/common-header-lib/src/lib/components/side-popup/side-popup.component.ts","../../../projects/common-header-lib/src/lib/components/side-popup/side-popup.component.html","../../../projects/common-header-lib/src/lib/pipes/date-diff.pipe.ts","../../../projects/common-header-lib/src/lib/components/viewpassword-popup/viewpassword-popup.component.ts","../../../projects/common-header-lib/src/lib/components/viewpassword-popup/viewpassword-popup.component.html","../../../projects/common-header-lib/src/lib/components/no-service-my-access-pg/no-service-my-access-pg.component.ts","../../../projects/common-header-lib/src/lib/components/no-service-my-access-pg/no-service-my-access-pg.component.html","../../../projects/common-header-lib/src/lib/components/grid-pagination/grid-pagination.component.ts","../../../projects/common-header-lib/src/lib/components/grid-pagination/grid-pagination.component.html","../../../projects/common-header-lib/src/lib/pipes/custome-dateformat.pipe.ts","../../../projects/common-header-lib/src/lib/components/user-mailbox/user-mailbox.component.ts","../../../projects/common-header-lib/src/lib/components/user-mailbox/user-mailbox.component.html","../../../projects/common-header-lib/src/lib/components/confirm-dialog/confirm-dialog.component.ts","../../../projects/common-header-lib/src/lib/components/confirm-dialog/confirm-dialog.component.html","../../../projects/common-header-lib/src/lib/common-header-lib.component.ts","../../../projects/common-header-lib/src/lib/common-header-lib.component.html","../../../projects/common-header-lib/src/lib/components/notification-sidebar/notification-sidebar.component.ts","../../../projects/common-header-lib/src/lib/components/notification-sidebar/notification-sidebar.component.html","../../../projects/common-header-lib/src/lib/common-header-lib.module.ts","../../../projects/common-header-lib/src/public-api.ts","../../../projects/common-header-lib/src/common-header-lib.ts"],"sourcesContent":["export class GlobalConstants {\r\n public static readonly loggedInUserName: string;\r\n public static readonly COOKIEDELETEVENT: string = 'd';\r\n public static readonly ALLCOOKIEDELET: string = '-100';\r\n public static token: string;\r\n public static TimeForEncToken: number = 30;\r\n public static ErrorCode: string;\r\n public static AgGridPaginationSize: number = 50;\r\n public static Version: string;\r\n public static reconcileServiceLimit: number = 100;\r\n\r\n public static baseURL: string;\r\n public static ssoURL: string;\r\n public static workflowURL: string;\r\n public static signalRURL: string;\r\n public static accessToken: string;\r\n public static authToken: string;\r\n public static refreshToken: string;\r\n public static ERRCODE: string;\r\n public static loggedInUserId: number;\r\n public static applicationName: string = 'Converged IAM';\r\n public static publicKey: string = '';\r\n public static TokenURL: string;\r\n public static tokenExpired: number;\r\n public static validUntil: string;\r\n public static PAMPluginURL: string = 'http://localhost:55755/';\r\n public static APPName: string = 'workspace';\r\n public static MFAURL: string;\r\n public static MFA_ACCESSTOKEN: string;\r\n public static isPAMPluginInstalled: string;\r\n public static PlugInDownloadURL: string =\r\n 'https://hfarcon.arconnet.com/helppageui/';\r\n public static cipluginversion: string = '';\r\n public static localInstalledCIPluginVersion: string = ''; // to store installed CI plugin version\r\n public static isPAMPluginRequired: boolean;\r\n public static PCI_DSS_Standard: boolean = false;\r\n public static MFAEnable: boolean;\r\n public static setCookies: boolean;\r\n public static TOKENTIME: number = 30;\r\n public static LOGOUTIMER: number = 60;\r\n public static PAGEROW: number = 10;\r\n public static CONFIGCONNECTORS: boolean = false;\r\n public static USERLANGUAGES = [\r\n { langKey: 'en', langName: 'English' },\r\n { langKey: 'ar', langName: 'العربية' },\r\n { langKey: 'es', langName: 'Español' },\r\n { langKey: 'hi', langName: 'हिन्दी' },\r\n { langKey: 'ja', langName: '日本' },\r\n { langKey: 'fr', langName: 'Français' },\r\n { langKey: 'de', langName: 'Deutsch' },\r\n { langKey: 'ko', langName: '한국인' },\r\n ];\r\n public static DEFAULTLANG = { langKey: 'en', langName: 'English' };\r\n public static DEFAULTLANGKEY: string = 'en';\r\n public static DEFAULT_IMGPATH: string = 'assets/images/';\r\n public static DEFAULT_BGIMG: string = `${GlobalConstants.DEFAULT_IMGPATH}login-bg/default_bg.svg`;\r\n public static DEFAULT_LOGO: string = `${GlobalConstants.DEFAULT_IMGPATH}default_logo.svg`;\r\n public static IMG_CODE: string = 'data:image/png;base64,';\r\n public static DYNAMIC_LOGO: string = '';\r\n public static DYNAMIC_BGIMG: string = '';\r\n public static APP_VERSION: string = '';\r\n}\r\n\r\nexport class LoggedInUserInfo {\r\n public static userId: number;\r\n public static userName: string;\r\n public static userDisplayName: string;\r\n public static domainName: string | null = null;\r\n public static userSessionId: string;\r\n public static domainId: number = 0;\r\n public static MachineDetails: string;\r\n public static userPwd: string;\r\n public static privateKey: string;\r\n public static SessionToken: string;\r\n\r\n public static setPrivateKeyFromBigInts(arr: bigint[]) {\r\n this.privateKey = arr.map((b) => b.toString()).join(',');\r\n }\r\n // public static setPrivateKeyFromBigInts(arr: string[]) {\r\n // // array of string representations of bigints\r\n // this.privateKey = arr.join(',');\r\n // }\r\n}\r\n\r\nexport class RoutePaths {\r\n static LOGINPG_PATH = 'login';\r\n static WINDOW_AUTH = 'domainauth';\r\n static OTHER_METHODS_PATH = 'othermethods';\r\n static MY_ACCESS_PATH = 'my-access';\r\n static FORGOT_PASSWORD_PATH = 'forgotpassword';\r\n static AUTH_STATUS_PATH = 'auth-status';\r\n static LOGOUT_PATH = 'logout';\r\n static PAGE_NOT_FOUND_PATH = 'page-not-found';\r\n static INTERNAL_SERVER_ERROR_PATH = 'internal-server-error';\r\n static ERROR_PATH = 'error';\r\n static AUTH_LOADING = 'session-verify';\r\n}\r\n\r\nexport class errorMsg {\r\n public static NOASSET = `No assets have been assigned to the user in the selected LOB. Please select a different LOB.`;\r\n public static NORECENTASSET = `No recently accessed Asset found.`;\r\n public static NOSEARCHRESULT = `We couldn't find any service matching your search within the chosen LOB. Try refining your keywords or choosing a different LOB for better results'`;\r\n public static NOMAILFOUND = `We couldn't find any mails assigned to you`;\r\n public static SERVERDOWN = `Something Went Wrong, Please Try Again later`;\r\n public static NOCIPLUGIN = `Install the CI Plugin or Contact Administrator`;\r\n public static CIPLUGINVERSIONISSUE = `Kindly Install latest version of CI Plugin`;\r\n public static ADMINMSG = `Kindly Contact Administrator`;\r\n public static PLUGINMSG = `Kindly check below link for downloadables.`;\r\n public static PAMPLUGINBTN = `Install the CI Plugin or Contact Administrator`;\r\n public static USERNOTFOUND = `Invalid User Details`;\r\n public static TIMEZONESUCCESS = `Time Zone Updated SuccessFully`;\r\n public static TIMEZONERROR = `Time Zone Updated Couldn't Update`;\r\n public static LOGOUTERROR = 'Logout Attempt Failed';\r\n public static ASSETSTATUS = 'Asset Under Maintenance';\r\n public static REFERENCEPOPUPTITLE = 'Reference Case ID for Accessing Asset';\r\n public static DICREDENTIALINFO =\r\n 'Digital Identity Credentials Updated Successfully';\r\n public static DICREDENTIALERROR =\r\n \"Digital Identity Credentials Couldn't updated\";\r\n public static PATHSUCCESS = 'Preference Path Updated SuccessFully';\r\n public static PATHERROR = \"Preference Path Couldn't Update\";\r\n public static USERCREDENIALERROR = 'Configure Credentials';\r\n public static CREDENIALERROR = 'Kindly Configure Credentials';\r\n public static ADMINCREDENIALERROR =\r\n 'The credentials have yet to be configured by the Admin';\r\n public static COMMONError = 'Something Went Wrong !';\r\n public static NODIGITALIDENTITES =\r\n 'There are no digital identities assigned. Kindly contact administrator.';\r\n public static SEARCHTEXT = 'Search Results';\r\n public static MFACONFIGUREERROR =\r\n 'MFA is not configured for the user, Please contact the system administrator';\r\n public static SESSIONIDERROR = 'Session Service ID not found';\r\n public static CHROMEEXTENSIONERROR =\r\n 'Kindly Install the CI Extension or Contact Administrator';\r\n public static WINDOW_DOMAIN_LOGINERR =\r\n 'Please wait, Domain Authentication is in progress for your login';\r\n public static LANDINGPGSUCCESS = `Landing Page Configured SuccessFully`;\r\n public static LANDINGPGERROR = `Landing Page Configuration Couldn't Update`;\r\n public static SCRIPTERROR = `Unexpected Script Detected`;\r\n}\r\n\r\nexport class COOKIECONSTANT {\r\n public static LOBNAME: string = 'lobdata';\r\n public static DOMAINAME: string = 'domainname';\r\n public static DOMAINID: string = 'domainid';\r\n public static USERDETAILS: string = 'UserDetail';\r\n public static SESSIONID: string = 'userSessionId';\r\n public static USERNAME: string = 'username';\r\n public static USERID: string = 'userId';\r\n public static _AT: string = '_AT';\r\n public static _RT: string = '_RT';\r\n public static USERDISPLAYNAME: string = 'userDisplayName';\r\n public static ENCRYPTEDKEY: string = 'EncryptedKey';\r\n public static MFASTATUS: string = 'MFAStatus';\r\n public static EVENTNAME: string = 'Event';\r\n public static MACHINEDETAILS: string = 'machinedetails';\r\n public static COOKIEDELETEVENT: string = 'd';\r\n public static COOKIECREATEEVENT: string = 'c';\r\n public static COOKIEUPDATEEVENT: string = 'c';\r\n public static ALLCOOKIEDELET: string = '-100';\r\n public static NEWUSER: string = '003-NU-GEC';\r\n public static UNLOCKACC: string = 'Unlock';\r\n public static ERRORCODE: string = '001-SAC-GEC';\r\n public static PUBLICCODE: string = '001-PUB-GEC';\r\n public static USERLANG: string = 'lang';\r\n public static MFATIMEOUT: number = 180000; //3 mins\r\n public static MFASTATUSCHECK: string = '_ssmf';\r\n public static MFASTATUSCHECKFAIL: string = '_ssmff';\r\n public static MFACLI: string = '_SSIDMFACLI';\r\n public static WINDOWAUTH_HEADER: string = 'Authentication-Window';\r\n public static SIGNALR_INDEX: string = '002-SR-NO';\r\n public static ONETIME_TOKEN: string = 'state';\r\n public static THICKCLIENT_KEY: string = 'APP_VER';\r\n}\r\n\r\nexport const EXCLUDED_URLS: string[] = [\r\n 'http://localhost:55755/',\r\n 'workflow/api/Workflow/Workflow/GetWorkFlowTicketCount',\r\n 'workflow/api/Workflow/Workflow/GetWorkFlowTicketCountEventWise',\r\n 'xaccess/api/SecureAccess/GetBackgroundImage',\r\n 'xaccess/api/SecureAccess/UpdateLogoutTimer',\r\n];\r\n\r\nexport class MFAEvent {\r\n public static ForgotPwd: number = 1;\r\n public static unlockAcc: number = 2;\r\n public static Login: number = 3;\r\n}\r\n\r\nexport class BrowserName {\r\n public static Chrome = 'Chrome';\r\n public static Firefox = 'Firefox';\r\n public static Edge = 'Edge';\r\n public static Safari = 'Safari';\r\n public static Opera = 'Opera';\r\n public static InterNetExp = 'Internet Explorer';\r\n}\r\n\r\n// GetLocalIPAddress\r\n// GetLocalMACAddress\r\n// GetProcessorID\r\n// GetBIOSSerialID\r\n// GetDomainName\r\n// GetPAMPluginInstalledVersion\r\n//GetLocalHostName\r\n\r\nexport class PAMParameter {\r\n ipAddress: string = '';\r\n macAddress: string = '';\r\n processorID: string = '';\r\n bIOSSerialID: string = '';\r\n domainName: string = '';\r\n hostname: string = '';\r\n pAMPluginInstalledVersion: string = '';\r\n}\r\n\r\nexport interface connectorParams {\r\n exeParams1: string | null;\r\n exeParams2: string | null;\r\n exeParams3: string | null;\r\n exeParams4: string | null;\r\n exeVersion: string | null;\r\n agwUrl: string | null;\r\n electronparameter: string | null;\r\n referenceEnable: boolean;\r\n}\r\n\r\n// \"Status : for user status\r\n// Active = 0,\r\n// NewUserCreated = 1,\r\n// ResetbyAdmin = 2,\r\n// LockedOut = 5,\r\n// Dormant = 4,\r\n// Disabled = 3\r\n// Suspended = 6,\r\n// Sabbatical = 7 ,\r\n// ACMO CLI Priviledge not assigned=9\"\r\n\r\n// export const loginStatusMsg = {\r\n// 0: {\r\n// status: 'Active',\r\n// msg: 'Successfull login',\r\n// },\r\n// 1: {\r\n// status: 'NewUserCreated',\r\n// msg: 'New Created User',\r\n// },\r\n// 2: {\r\n// status: 'ResetbyAdmin',\r\n// msg: 'Password Is Reset By Admin',\r\n// },\r\n// 3: {\r\n// status: 'Disabled',\r\n// msg: 'User is Disabled',\r\n// },\r\n// 4: {\r\n// status: 'Dormant',\r\n// msg: 'User is Dormant',\r\n// },\r\n// 5: {\r\n// status: 'LockedOut',\r\n// msg: 'User is Locked Out',\r\n// },\r\n// 6: {\r\n// status: 'Suspended',\r\n// msg: 'User is Suspended',\r\n// },\r\n// 7: {\r\n// status: 'Sabbatical',\r\n// msg: 'User is Sabbatical',\r\n// },\r\n// 9: {\r\n// status: 'ACMO CLI Priviledge not assigned',\r\n// msg: '',\r\n// },\r\n// 11: {\r\n// status: 'Invalid User',\r\n// msg: 'Invalid User Name OR Password',\r\n// },\r\n// };\r\n","import { Injectable } from '@angular/core';\nimport { catchError, map } from 'rxjs/operators';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { throwError } from 'rxjs';\nimport { GlobalConstants } from './model/data_model';\n@Injectable({\n providedIn: 'root',\n})\nexport class CommonHeaderLibService {\n apiUrl: string = '';\n constructor(private readonly http: HttpClient) {}\n getGlobalTimeZone() {\n return this.http\n .get(\n GlobalConstants.baseURL + 'xaccess/api/SecureAccess/GetSystemTimeZones'\n )\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return [];\n }\n })\n );\n }\n getLoggedInUserDetails(url: string) {\n return this.http\n .post(url + 'xaccess/api/SecureAccess/GetUsersDetailsById', {})\n .pipe(\n map((response: any) => {\n // return response['result'];\n return response;\n })\n );\n }\n getLOBList(url: string) {\n return this.http.get(url + 'meta/api/metadata/Lobs').pipe(\n map((response: any) => {\n let result = [];\n if (response['statusCode'] === 200) {\n // let result = response['result'];\n let result = response;\n return result;\n }\n })\n );\n }\n getUserAssignedApps(url: string) {\n return this.http\n .post(url + 'xaccess/api/SecureAccess/GetUserPriviledgesList', {})\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'].filter(\n (x: any) => x.appCode != null\n // (x) => x.appCode !== 'APP026' && x.appCode != null\n );\n } else {\n return [];\n }\n })\n );\n }\n getUnreadUserEmailsCount(url: string) {\n return this.http.get(url + 'xservice/api/CIInfraAsset/MailBoxCount').pipe(\n map((response: any) => {\n if (response && response['success'] && response['result'] > 0) {\n return response['result'];\n } else {\n return 0;\n }\n })\n );\n }\n getUserAssignedMails(userDetails: any, url: string) {\n return this.http\n .post(url + 'xservice/api/CIInfraAsset/MailBox', userDetails)\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return [];\n }\n })\n );\n }\n getWorkFlowTicketEventwiseCount(userDetails: any, url: string) {\n return this.http\n .post(\n url + 'workflow/api/Workflow/Workflow/GetWorkFlowTicketCountEventWise',\n userDetails\n )\n .pipe(\n map((response: any) => {\n if (response && response[0]['Success']) {\n return response[0]['Data'];\n } else {\n return [];\n }\n }),\n catchError((e) => throwError(this.errorHandler(e)))\n );\n }\n errorHandler(e: any): any {\n throw new Error('Method not implemented.');\n }\n getUserPreferredAssetTypeDetails(url: string) {\n return this.http\n .get(url + 'xaccess/api/PagePreference/GetAssetTypeDetails')\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return [];\n }\n }),\n catchError((e) => throwError(this.errorHandler(e)))\n );\n }\n getUserPreferredAssetName(payload: any, url: string) {\n return this.http\n .post(url + 'xaccess/api/PagePreference/GetAssetName', payload)\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return [];\n }\n }),\n catchError((e) => throwError(this.errorHandler(e)))\n );\n }\n getServiceNameByAssetTypeEvent(payload: any, url: string) {\n return this.http\n .post(url + 'xaccess/api/PagePreference/GetServiceDetails', payload)\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return [];\n }\n }),\n catchError((e) => throwError(this.errorHandler(e)))\n );\n }\n getPreferencePathDetails(payload: any, url: string) {\n return this.http\n .post(\n url + 'xaccess/api/PagePreference/CurrentPreferencepathDetails',\n payload\n )\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return {};\n }\n }),\n catchError((e) => throwError(this.errorHandler(e)))\n );\n }\n updatePreferencePath(payload: any, url: string) {\n return this.http\n .post(url + 'xaccess/api/PagePreference/UpdatePreferencePath', payload)\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return true;\n } else {\n return false;\n }\n }),\n catchError((e) => throwError(this.errorHandler(e)))\n );\n }\n\n updateUserTimeZone(tz: string, url: string) {\n const params = new HttpParams().set('timezone', tz);\n return this.http\n .post(\n url + 'xaccess/api/SecureAccess/UpdateTimeZone',\n {},\n { params: params }\n )\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return '';\n }\n }),\n catchError((e) => throwError(this.errorHandler(e)))\n );\n }\n setLandingPgPreference(moduleId: string, url: string) {\n return this.http\n .post(url + 'xaccess/api/SecureAccess/SetLandingPage', {\n moduleId: moduleId,\n })\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return '';\n }\n }),\n catchError((e) => throwError(this.errorHandler(e)))\n );\n }\n getInitiateUserLogout() {\n return this.http.post(GlobalConstants.baseURL + 'xaccess/api/SecureAccess/logout', {}).pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return {};\n }\n }),\n catchError((e) => throwError(this.errorHandler(e)))\n );\n }\n}\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class StorageService {\r\n constructor() {}\r\n\r\n public saveData(key: string, value: string) {\r\n localStorage.setItem(key, value);\r\n }\r\n\r\n public getData(key: string) {\r\n return localStorage.getItem(key);\r\n }\r\n public removeData(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n public clearData() {\r\n localStorage.clear();\r\n }\r\n\r\n public checkData(key: string): boolean {\r\n const data = localStorage.getItem(key);\r\n if (data) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LoggedInUserInfo } from '../model/data_model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EncrpdataService {\r\n // private publicKey: string =\r\n // '10234186980819816859565723471972110581900468266056266385607156653250136308259057583501560583440295112186917105135474383769292631464432088817050933329522683,65537';\r\n private privateKey: string=\"\";\r\n constructor() {}\r\n\r\n getASCIIValue(text: string) {\r\n let charCodeArr = [];\r\n for (let i = 0; i < text.length; i++) {\r\n let code = text.charCodeAt(i);\r\n charCodeArr.push(BigInt(code));\r\n }\r\n return charCodeArr;\r\n }\r\n \r\n\r\n getModuleValue(arr: any, num1: bigint, num2: bigint) {\r\n let numArr = [];\r\n for (let i = 0; i < arr.length; i++) {\r\n let code = arr[i] ** num2 % num1;\r\n numArr.push(code);\r\n }\r\n return numArr;\r\n }\r\n\r\n getEncrpytedData(text: string) {\r\n this.privateKey = LoggedInUserInfo.privateKey;\r\n let key = this.privateKey.split(',');\r\n const num1: bigint = BigInt(key[0]);\r\n const num2: bigint = BigInt(key[1]);\r\n\r\n //1. Convert string to phiN \r\n let asciiValue = this.getASCIIValue(text);\r\n\r\n //2. Get Mod of All Value\r\n let ModValue = this.getModuleValue(asciiValue, num1, num2);\r\n\r\n //3. Convert Arr to String\r\n // let encodedText = ModValue.join('-');\r\n const encodedText = ModValue.map(b => b.toString()).join('-');\r\n return encodedText;\r\n }\r\n\r\n encodeToBase64(text: any) {\r\n return btoa(text);\r\n }\r\n\r\n decodeToBase64(text: any) {\r\n return atob(text);\r\n }\r\n}\r\n","import {\r\n COOKIECONSTANT,\r\n GlobalConstants,\r\n} from '../model/data_model';\r\nimport { Injectable } from '@angular/core';\r\nimport * as signalR from '@microsoft/signalr';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { StorageService } from './storage.service';\r\nimport { EncrpdataService } from './encrpdata.service';\r\n// import { CookieStorageManagerService } from '../cookie-storage-manager.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RestSignalRService {\r\n private hubConnection!: signalR.HubConnection;\r\n protected eventMsg = new BehaviorSubject<any>({});\r\n protected AuthToken: string = \"\";\r\n private hubURLS: string[] = [];\r\n\r\n constructor(\r\n private readonly _localStorage: StorageService, private readonly _encrpdataService: EncrpdataService\r\n ) { }\r\n\r\n //Method: Established the Connection With SignalR to get RealTime Data\r\n public establishedConnection = async () => {\r\n // console.log('Token SingalR: ', this.AuthToken);\r\n this.hubConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(`${GlobalConstants.signalRURL}/chatHub`, {\r\n skipNegotiation: true,\r\n transport: signalR.HttpTransportType.WebSockets,\r\n headers: { Authorization: `Bearer ${this.AuthToken}` },\r\n })\r\n .build();\r\n\r\n try {\r\n await this.hubConnection.start();\r\n console.log('SignalR connection established successfully');\r\n this.addMessageListener();\r\n }\r\n catch (error) {\r\n console.error('Error establishing SignalR connection:', error);\r\n throw error;\r\n }\r\n\r\n\r\n };\r\n\r\n public async initializeSignalRConnection(): Promise<void> {\r\n\r\n if (!GlobalConstants.signalRURL) {\r\n throw new Error('No hub URLs provided');\r\n }\r\n\r\n this.hubURLS = GlobalConstants.signalRURL ? GlobalConstants.signalRURL.split(',') : [];\r\n if (this.hubURLS.length === 1) {\r\n GlobalConstants.signalRURL = this.hubURLS[0];\r\n await this.establishedConnection();\r\n return;\r\n }\r\n\r\n let lastUsedIndex = this.getLastUsedIndex();\r\n\r\n for (let i = 0; i < this.hubURLS.length; i++) {\r\n const index = (lastUsedIndex + i) % this.hubURLS.length;\r\n GlobalConstants.signalRURL = this.hubURLS[index];\r\n try {\r\n await this.establishedConnection();\r\n this.setLastUsedIndex(index + 1); // Update for next round\r\n break; // Exit the loop if connection is successful\r\n } catch (error) {\r\n console.error(`Error connecting to hub ${this.hubURLS[index]}:`, error);\r\n }\r\n }\r\n\r\n if (!this.hubConnection) {\r\n throw new Error(\"All SignalR connections failed\");\r\n }\r\n }\r\n\r\n public addMessageListener() {\r\n this.hubConnection.on('ReceiveMessage', (user: any, data: any) => {\r\n console.log('Rx SignalR: ', user, 'Data: ', data);\r\n data = JSON.parse(data);\r\n this.emitEventMsg(data);\r\n });\r\n }\r\n\r\n emitEventMsg(data: any) {\r\n this.eventMsg.next(data);\r\n }\r\n\r\n listenerEventMsg() {\r\n return this.eventMsg.asObservable();\r\n }\r\n\r\n private getLastUsedIndexv1(): Number {\r\n const lastIndex = this._localStorage.getData(COOKIECONSTANT.SIGNALR_INDEX);\r\n return lastIndex ? Number(this._encrpdataService.decodeToBase64(lastIndex)) || 0 : 0;\r\n }\r\n private getLastUsedIndex(): number {\r\n const lastIndex = this._localStorage.getData(COOKIECONSTANT.SIGNALR_INDEX);\r\n return lastIndex ? Number(this._encrpdataService.decodeToBase64(lastIndex)) || 0 : 0;\r\n }\r\n\r\n private setLastUsedIndex(index: number): void {\r\n const lastIndex = this._encrpdataService.encodeToBase64(index.toString());\r\n this._localStorage.saveData(COOKIECONSTANT.SIGNALR_INDEX, lastIndex);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { COOKIECONSTANT } from '../model/data_model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EventService {\r\n private getUserLOB = new BehaviorSubject<any>({});\r\n private getAssetType = new BehaviorSubject<any>({});\r\n private refreshSidebar = new BehaviorSubject<any>({});\r\n private filterRecords = new Subject<any>();\r\n private AuthMethods = new BehaviorSubject<any>([]);\r\n private refreshEmails = new BehaviorSubject<any>({});\r\n private timeZone = new BehaviorSubject<any>({});\r\n\r\n constructor(private _cookie : CookieService) { }\r\n\r\n emitLOBEvent(data: any) {\r\n this.getUserLOB.next(data);\r\n }\r\n\r\n listenerLOBEvent() {\r\n return this.getUserLOB.asObservable();\r\n }\r\n\r\n emitAssetTypeEvent(data: any) {\r\n this.getAssetType.next(data);\r\n }\r\n\r\n listenerAssetTypeEvent() {\r\n return this.getAssetType.asObservable();\r\n }\r\n\r\n emitrefreshSidebar(data: any) {\r\n this.refreshSidebar.next(data);\r\n }\r\n\r\n listenerrefreshSidebar() {\r\n return this.refreshSidebar.asObservable();\r\n }\r\n\r\n emitFilterRecords(data: any) {\r\n this.filterRecords.next(data);\r\n }\r\n\r\n listenerFilterEvent() {\r\n return this.filterRecords.asObservable();\r\n }\r\n\r\n emitAuthMethod(data: any) {\r\n this.AuthMethods.next(data);\r\n }\r\n\r\n listenerAuthMethod() {\r\n return this.AuthMethods.asObservable();\r\n }\r\n\r\n emitUserEmail(data: any) {\r\n this.refreshEmails.next(data);\r\n }\r\n\r\n listenerUserEmail() {\r\n return this.refreshEmails.asObservable();\r\n }\r\n\r\n emitTimezone(data: any) {\r\n this.timeZone.next(data);\r\n }\r\n\r\n listenerTimezone() {\r\n return this.timeZone.asObservable();\r\n }\r\n\r\n // checkMFAv1(mfaUrl: string) {\r\n // return new Promise((resolve, reject) => {\r\n // const params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,\r\n // width=600,height=500,left=350,top=150`;\r\n // const mfaWindow = open(mfaUrl, 'CI Authentication', params);\r\n \r\n\r\n // //setInterval to check cookie every second\r\n // const interval = setInterval(() => {\r\n // if (this._cookie.get(COOKIECONSTANT.MFASTATUSCHECK)) {\r\n // clearInterval(interval);\r\n // // clearTimeout(timeout);\r\n // mfaWindow.close();\r\n // resolve(true);\r\n // }\r\n // else if (this._cookie.get(COOKIECONSTANT.MFASTATUSCHECKFAIL)) {\r\n // clearInterval(interval);\r\n // mfaWindow.close();\r\n // reject(false);\r\n // }\r\n // }, 1000);\r\n\r\n // //when use close window manually\r\n // let flag = false;\r\n // mfaWindow.onunload = () => {\r\n // if (flag) {\r\n // console.log(\"window closed manually\");\r\n // clearInterval(interval);\r\n // // clearTimeout(timeout);\r\n // reject(false);\r\n // }\r\n // flag = true;\r\n // }\r\n // })\r\n // }\r\n checkMFA(mfaUrl: string) {\r\n return new Promise<boolean>((resolve, reject) => {\r\n const params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,\r\n width=600,height=500,left=350,top=150`;\r\n\r\n const mfaWindow = window.open(mfaUrl, 'CI Authentication', params);\r\n\r\n if (!mfaWindow) {\r\n reject(new Error(\"Failed to open MFA window. Popup blocked?\"));\r\n return;\r\n }\r\n\r\n // Polling interval to check cookie every second\r\n const interval = setInterval(() => {\r\n if (this._cookie.get(COOKIECONSTANT.MFASTATUSCHECK)) {\r\n clearInterval(interval);\r\n mfaWindow.close();\r\n resolve(true);\r\n } else if (this._cookie.get(COOKIECONSTANT.MFASTATUSCHECKFAIL)) {\r\n clearInterval(interval);\r\n mfaWindow.close();\r\n reject(false);\r\n }\r\n }, 1000);\r\n\r\n // Detect manual close of popup window\r\n const checkPopupClosed = setInterval(() => {\r\n if (mfaWindow.closed) {\r\n clearInterval(interval);\r\n clearInterval(checkPopupClosed);\r\n reject(false);\r\n }\r\n }, 500);\r\n });\r\n}\r\n\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { catchError, map, throwError } from 'rxjs';\nimport { GlobalConstants } from '../../model/data_model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HttpCommonService {\n private xAccessAPIUrl: string = '/xaccess/api/SecureAccess/';\n private metaAPIUrl: string = '/meta/api/metadata/';\n private metaAPIUrl1: string = '/meta/api/Metadata/';\n private xServiceAPIUrl: string = '/xservice/api/CIInfraAsset/';\n private workflowAPIUrl: string = '/workflow/api/Workflow/Workflow/';\n\n constructor(private http: HttpClient) {}\n\n getLogo() {\n return this.http\n .get<any>(`${GlobalConstants.baseURL}${this.xAccessAPIUrl}BackgroundLogo`)\n .pipe(\n map((response) => {\n return response['result'];\n }),\n );\n }\n\n getGlobalTimeZone() {\n return this.http\n .get(`${GlobalConstants.baseURL}${this.xAccessAPIUrl}GetSystemTimeZones`)\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return [];\n }\n }),\n );\n }\n\n updateUserTimeZone(tz: string) {\n const params = new HttpParams().set('timezone', tz);\n return this.http\n .post(\n `${GlobalConstants.baseURL}${this.xAccessAPIUrl}UpdateTimeZone`,\n {},\n { params: params },\n )\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return '';\n }\n }),\n );\n }\n\n getLOBList() {\n return this.http\n .get(`${GlobalConstants.baseURL}${this.metaAPIUrl}Lobs`)\n .pipe(\n map((response: any) => {\n return response;\n }),\n );\n }\n\n getUnreadUserEmailsCount() {\n return this.http\n .get<any>(`${GlobalConstants.baseURL}${this.xServiceAPIUrl}MailBoxCount`)\n .pipe(\n map((response: any) => {\n if (response && response['success'] && response['result'] > 0) {\n return response['result'];\n } else {\n return 0;\n }\n }),\n );\n }\n\n getUserAssignedMails(userDetails: any) {\n return this.http\n .post(\n `${GlobalConstants.baseURL}${this.xServiceAPIUrl}MailBox`,\n userDetails,\n )\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return [];\n }\n }),\n );\n }\n\n /*Method : GET\n Action : Get Application Password */\n getAccessToViewServicePassword(mailDetails: any) {\n return this.http\n .post(\n `${GlobalConstants.baseURL}${this.xServiceAPIUrl}OpenServicePwd`,\n mailDetails,\n )\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n response['result'][1] = response['message'];\n return response['result'];\n } else {\n return [];\n }\n }),\n catchError((e) => throwError(this.errorHandler(e))),\n );\n }\n\n getUserAssignedApps() {\n return this.http\n .post(\n `${GlobalConstants.baseURL}${this.xAccessAPIUrl}GetUserPriviledgesList`,\n {},\n )\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'].filter(\n (x: any) => x.appCode != null,\n // (x) => x.appCode !== 'APP026' && x.appCode != null\n );\n } else {\n return [];\n }\n }),\n );\n }\n\n getLoggedInUserDetails() {\n return this.http\n .post(\n `${GlobalConstants.baseURL}${this.xAccessAPIUrl}GetUsersDetailsById`,\n {},\n )\n .pipe(\n map((response: any) => {\n return response;\n }),\n );\n }\n\n //Method: Used to Total Notification count of user\n //Action: It used get all notification count\n getWorkFlowTicketCount(userDetails: any) {\n return this.http\n .post(\n `${GlobalConstants.baseURL}${this.workflowAPIUrl}GetWorkFlowTicketCount`,\n userDetails,\n )\n .pipe(\n map((response: any) => {\n if (response && response[0]['Success']) {\n if (response[0]['Data'][0]) {\n return response[0]['Data'][0];\n } else {\n return {};\n }\n } else {\n return {};\n }\n }),\n catchError((e) => throwError(this.errorHandler(e))),\n );\n }\n\n getWorkFlowTicketEventwiseCount(userDetails: any) {\n return this.http\n .post(\n `${GlobalConstants.baseURL}${this.workflowAPIUrl}GetWorkFlowTicketCountEventWise`,\n userDetails,\n )\n .pipe(\n map((response: any) => {\n if (response && response[0]['Success']) {\n // return response[0]['Data'];\n return [];\n } else {\n return [];\n }\n }),\n );\n }\n\n setLandingPgPreference(moduleId: string) {\n return this.http\n .post(`${GlobalConstants.baseURL}${this.xAccessAPIUrl}SetLandingPage`, {\n moduleId: moduleId,\n })\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return '';\n }\n }),\n );\n }\n\n /*Method : POST\n Action :Will validate User entered PWD as\n per Password Policy Set\n */\n validatePassword(userDetails: any) {\n return this.http\n .post(\n `${GlobalConstants.baseURL}${this.xAccessAPIUrl}ValidatePassword`,\n userDetails,\n )\n .pipe(catchError((e) => throwError(this.errorHandler(e))));\n }\n\n /*Method : POST\n Action : RESET Password for First Time User\n */\n setNewpassword(loggedInUserDetails: any) {\n return this.http\n .post(\n `${GlobalConstants.baseURL}${this.xAccessAPIUrl}ChangeUserArcXwdManually`,\n loggedInUserDetails,\n )\n .pipe(catchError((e) => throwError(this.errorHandler(e))));\n }\n\n errorHandler(e: any): any {\n throw new Error('Method not implemented.');\n }\n\n /*Method : GET\n Action : Get hiding the password for a service. */\n getProtectedServiceCredentials(mailDetails: any) {\n return this.http\n .post(\n `${GlobalConstants.baseURL}${this.xServiceAPIUrl}GetServicePasswordClose`,\n mailDetails,\n )\n .pipe(\n map((response: any) => {\n if (response && response['success']) {\n return response['result'];\n } else {\n return false;\n }\n }),\n catchError((e) => throwError(this.errorHandler(e))),\n );\n }\n\n /*Method : POST\n Parameter : subID , id\n Action : Get configuration ID based on to show hide DOMAIN dropdown\n */\n\n getglobalConfigDetails(subid: string, id: number[]) {\n return this.http\n .post(\n `${GlobalConstants.baseURL}${this.metaAPIUrl1}GetArcosConfigsValues?subId=${subid}`,\n id,\n )\n .pipe(\n map((response: any) => {\n if (response['statusCode'] === 200) {\n let result = response['result'];\n return result;\n }\n }),\n catchError((e) => throwError(this.errorHandler(e))),\n );\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { ActiveToast, ToastPackage, ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ToastMsgService {\r\n private toastType_sucess: string = 'toast-success';\r\n private toastType_info: string = 'toast-info';\r\n private toastType_error: string = 'toast-error';\r\n private toastType_warning: string = 'toast-warn';\r\n\r\n constructor(private toastr: ToastrService) {}\r\n\r\n success(textMessage: string) {\r\n console.log(this.isToastMsgActive(), textMessage);\r\n\r\n if (this.isToastMsgActive()) {\r\n if (this.checkActiveToastMessagesByType(this.toastType_sucess)) {\r\n this.updateActiveToastMessage(textMessage, this.toastType_sucess);\r\n } else {\r\n this.toastr.success(textMessage);\r\n }\r\n } else {\r\n this.toastr.success(textMessage);\r\n }\r\n }\r\n\r\n error(textMessage: string) {\r\n if (this.isToastMsgActive()) {\r\n if (this.checkActiveToastMessagesByType(this.toastType_error)) {\r\n this.updateActiveToastMessage(textMessage, this.toastType_error);\r\n } else {\r\n this.toastr.error(textMessage);\r\n }\r\n } else {\r\n this.toastr.error(textMessage);\r\n }\r\n }\r\n\r\n info(textMessage: string) {\r\n if (this.isToastMsgActive()) {\r\n if (this.checkActiveToastMessagesByType(this.toastType_info)) {\r\n this.updateActiveToastMessage(textMessage, this.toastType_info);\r\n } else {\r\n this.toastr.info(textMessage);\r\n }\r\n } else {\r\n this.toastr.info(textMessage);\r\n }\r\n }\r\n\r\n warning(textMessage: string) {\r\n if (this.isToastMsgActive()) {\r\n if (this.checkActiveToastMessagesByType(this.toastType_warning)) {\r\n this.updateActiveToastMessage(textMessage, this.toastType_warning);\r\n } else {\r\n this.toastr.warning(textMessage);\r\n }\r\n } else {\r\n this.toastr.warning(textMessage);\r\n }\r\n }\r\n\r\n private updateActiveToastMessage(\r\n textMessage: string,\r\n ToastType: string\r\n ): void {\r\n const activeToasts = this.getActiveToastMessagesByType(ToastType);\r\n\r\n if (activeToasts.length > 0) {\r\n const toastObj = activeToasts[0];\r\n toastObj.toastRef.componentInstance.message = textMessage;\r\n // console.log('Updated Toast: ', toastObj.toastRef.componentInstance);\r\n }\r\n }\r\n\r\n private isToastMsgActive(): boolean {\r\n return this.toastr.currentlyActive ? true : false;\r\n }\r\n\r\n private getActiveToastMessagesByType(type: string): ActiveToast<any>[] {\r\n return this.toastr.toasts.filter((toastItem) =>\r\n toastItem.toastRef.componentInstance.toastPackage.toastType.includes(type)\r\n );\r\n }\r\n\r\n private checkActiveToastMessagesByType(type: string): boolean {\r\n return this.toastr.toasts.some(\r\n (toastItem) =>\r\n toastItem.toastRef.componentInstance.toastPackage.toastType == type\r\n );\r\n }\r\n\r\n public clear() {\r\n this.toastr.clear();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as CryptoJS from 'crypto-js';\r\nimport JSEncrypt from 'jsencrypt';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EncrydecryRSAdataService {\r\n public generateAESKey() {\r\n const publicKey = this.getPublicKey();\r\n const symmetricKey = this.generateKeyAndIV();\r\n const gkey = symmetricKey.key.toString();\r\n const giv = symmetricKey.iv.toString();\r\n const key = gkey + ',' + giv;\r\n\r\n const encryptedSymmetricKey = this.encryptSymmetricKey(gkey, publicKey);\r\n const encryptedSymmetriciv = this.encryptSymmetricKey(giv, publicKey);\r\n return String(encryptedSymmetricKey + ',' + encryptedSymmetriciv);\r\n }\r\n\r\n public encryptViaRSA(simpleText: any) {\r\n const { symmKey, symmIV } = this.getRSAsymmetricKeyIV();\r\n const encryptedText = this.encryptText(simpleText, symmKey, symmIV);\r\n return encryptedText;\r\n }\r\n\r\n public decryptViaRSA(encrpyText: string) {\r\n const { symmKey, symmIV } = this.getRSAsymmetricKeyIV();\r\n const decryptedText = this.decryptText(encrpyText, symmKey, symmIV);\r\n return decryptedText;\r\n }\r\n\r\n private generateKeyAndIV() {\r\n const key = CryptoJS.lib.WordArray.random(32); // 32 bytes for AES-256\r\n const iv = CryptoJS.lib.WordArray.random(16); // 16 bytes IV\r\n return { key, iv };\r\n }\r\n\r\n private encryptText(plaintext: any, hkey: string, hiv: string) {\r\n //* If the data is Object then converting the object into JSON.stringify()\r\n if (typeof plaintext === 'object' && plaintext !== null) {\r\n plaintext = JSON.stringify(plaintext);\r\n }\r\n\r\n const key = CryptoJS.enc.Hex.parse(hkey);\r\n const iv = CryptoJS.enc.Hex.parse(hiv);\r\n const encrypted = CryptoJS.AES.encrypt(plaintext, key, {\r\n iv: iv,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7,\r\n });\r\n return encrypted.toString();\r\n }\r\n\r\n private encryptSymmetricKey(key: string, publicKey: string) {\r\n try {\r\n const rsa = new JSEncrypt();\r\n rsa.setPublicKey(publicKey);\r\n const encryptedKey = rsa.encrypt(key);\r\n if (!encryptedKey)\r\n throw new Error(\r\n 'Encryption failed. The key might be improperly formatted.'\r\n );\r\n return encryptedKey;\r\n } catch (error) {\r\n console.error(`Encryption error: ${(error as Error).message}`);\r\n return '';\r\n }\r\n }\r\n\r\n private decryptText(encryptedBase64: string, hkey: string, hiv: string) {\r\n const key = CryptoJS.enc.Hex.parse(hkey);\r\n const iv = CryptoJS.enc.Hex.parse(hiv);\r\n const decrypted = CryptoJS.AES.decrypt(encryptedBase64, key, {\r\n iv: iv,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7,\r\n });\r\n return decrypted.toString(CryptoJS.enc.Utf8);\r\n }\r\n\r\n private getPublicKey() {\r\n const publicKey = this.base64ToPem(\r\n localStorage.getItem('001-SAC-GEC') || ''\r\n );\r\n return publicKey;\r\n }\r\n\r\n private getRSAsymmetricKeyIV() {\r\n let symmKey = '';\r\n let symmIV = '';\r\n const key = localStorage.getItem('001-SAC-GEC');\r\n if (key?.includes(',')) {\r\n const syymArr = key.split(',');\r\n symmKey = syymArr[0];\r\n symmIV = syymArr[1];\r\n }\r\n return { symmKey, symmIV };\r\n }\r\n\r\n base64ToPem(base64Key: string): string {\r\n const pemHeader = '-----BEGIN PUBLIC KEY-----';\r\n const pemFooter = '-----END PUBLIC KEY-----';\r\n const chunkSize = 64; // Standard line length for PEM files\r\n const formattedKey =\r\n base64Key.match(new RegExp(`.{1,${chunkSize}}`, 'g'))?.join('\\n') || '';\r\n return `${pemHeader}\\n${formattedKey}\\n${pemFooter}`;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AsyncValidatorFn, AbstractControl, FormGroup } from '@angular/forms';\r\nimport { catchError, debounceTime, switchMap, take, map } from 'rxjs/operators';\r\nimport { Observable, Subject, of } from 'rxjs';\r\nimport { EncrydecryRSAdataService } from './EncrypDecryp_RSA.service';\r\nimport { HttpCommonService } from './http/http-common.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ASYNCPasswordcheckService {\r\n pwdErrorMsg: string = '';\r\n private pwdValidation = new Subject<string>();\r\n\r\n constructor(\r\n private readonly httpCommonService: HttpCommonService,\r\n private readonly encryptService: EncrydecryRSAdataService\r\n ) {}\r\n\r\n createValidator(): AsyncValidatorFn {\r\n return (\r\n control: AbstractControl\r\n ): Observable<{ [key: string]: any } | null> => {\r\n //For AES Encrp/Dec\r\n const userPassword = this.encryptService.encryptViaRSA(control.value);\r\n\r\n let useDetails = {\r\n userARCXWD: userPassword,\r\n // userId: LoggedInUserInfo.userId,\r\n // userName: LoggedInUserInfo.userName,\r\n };\r\n return control.valueChanges.pipe(\r\n debounceTime(500),\r\n take(1),\r\n switchMap((_) =>\r\n this.httpCommonService.validatePassword(useDetails).pipe(\r\n map((data: any) => {\r\n if (data['success']) {\r\n this.pwdErrorMsg = data['message'];\r\n // console.log(this.pwdErrorMsg);\r\n this.emitValidationMsg(this.pwdErrorMsg);\r\n return null;\r\n } else {\r\n this.pwdErrorMsg = data['errorMessage'];\r\n this.emitValidationMsg(this.pwdErrorMsg);\r\n // console.log(this.pwdErrorMsg);\r\n return { pwdInvalid: true };\r\n }\r\n }),\r\n catchError(() => of({ pwdInvalid: true }))\r\n )\r\n )\r\n );\r\n };\r\n }\r\n\r\n emitValidationMsg(msg: string) {\r\n this.pwdValidation.next(msg);\r\n }\r\n\r\n listValidationMsg() {\r\n return this.pwdValidation.asObservable();\r\n }\r\n}\r\n\r\nexport function ConfirmedValidator(\r\n controlName: string,\r\n matchingControlName: string\r\n) {\r\n return (formGroup: FormGroup) => {\r\n const control = formGroup.controls[controlName];\r\n const matchingControl = formGroup.controls[matchingControlName];\r\n if (\r\n matchingControl.errors &&\r\n !matchingControl.errors['confirmedValidator']\r\n ) {\r\n return;\r\n }\r\n if (control.value !== matchingControl.value) {\r\n matchingControl.setErrors({ confirmedValidator: true });\r\n } else {\r\n matchingControl.setErrors(null);\r\n }\r\n };\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport function noSpaceAllowed(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value as string;\r\n if (!value) {\r\n return null; // No value is not an error here\r\n }\r\n\r\n // Check if the value starts with a space or contains any space\r\n const hasLeadingSpace = value.startsWith(' ');\r\n // const hasAnySpace = value.includes(' ');\r\n\r\n if (hasLeadingSpace) {\r\n return { noSpace: true };\r\n }\r\n\r\n return null;\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { GlobalConstants } from '../model/data_model';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CookieStorageManagerService {\r\n constructor(private cookie: CookieService, private _http: HttpClient) {}\r\n\r\n //Check if cookies is set or not\r\n checksetCookies(cookiesParam1: any) {\r\n let status = this.cookie.check(cookiesParam1);\r\n if (status) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n //get cookies value\r\n getCookieValue(cookiesParam: any) {\r\n let status = this.cookie.check(cookiesParam);\r\n if (status) {\r\n let cookieValue = this.cookie.get(cookiesParam);\r\n return cookieValue;\r\n }\r\n //What if cookies not found\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n //Set cookies value\r\n setCookiesValue(key: any, value: any) {\r\n this.cookie.set(key, value);\r\n }\r\n\r\n //Delete a specific cookie\r\n deleteCookie(cookieKey: string): void {\r\n this.cookie.delete(cookieKey);\r\n }\r\n\r\n //Delete All cookie\r\n clearAllCookies() {\r\n const cookies: {} = this.cookie.getAll();\r\n for (const cookieName in cookies) {\r\n if (cookies.hasOwnProperty(cookieName)) {\r\n this.cookie.delete(cookieName);\r\n }\r\n }\r\n }\r\n\r\n //Delete All cookie\r\n // clearCookiesByAPI(payload: any) {\r\n // const delCookieEndpoint = `${GlobalConstants.baseURL}/xaccess/api/SecureAccess/cookiesUpdation`;\r\n // return this._http.post(delCookieEndpoint, payload).pipe(map((response:any)=>{\r\n // if (response && response['success']) {\r\n // return response['result'];\r\n // } else {\r\n // return null;\r\n // }\r\n // }));\r\n // }\r\n\r\n //Set Long cookies\r\n setLongCookie(name: string, value: string, maxChunkSize: number) {\r\n for (let i = 0; i < Math.ceil(value.length / maxChunkSize); i++) {\r\n const chunk = value.substring(i * maxChunkSize, (i + 1) * maxChunkSize);\r\n this.setCookiesValue(`${name}_${i}`, chunk);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { StorageService } from './storage.service';\r\nimport { COOKIECONSTANT, LoggedInUserInfo } from '../model/data_model';\r\nimport * as bigintCryptoUtils from 'bigint-crypto-utils';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EncrydecrydataService {\r\n phiN = BigInt(\r\n '1439652808780798693078119762209596147168096953796219172262910821317967061987350219660913015278464376519592636923598633193936864497263640780784805168728449'\r\n );\r\n m = BigInt(\r\n '1439652808780798693078119762209596147168096953796219172262910821317967061987270868696269635759315523684521986922202953647194318017157636815317250179926320'\r\n );\r\n Genrator = 5;\r\n min = 10000000;\r\n max = 10000000 * 10000000;\r\n randomPrime: any;\r\n\r\n constructor(private _storageService: StorageService) {}\r\n\r\n public generate() {\r\n this.randomPrime = this.generateRandomPrime(this.min, this.max);\r\n let code = bigintCryptoUtils.modPow(\r\n this.Genrator,\r\n BigInt(this.randomPrime),\r\n this.phiN\r\n );\r\n return code;\r\n }\r\n\r\n public process(key: string) {\r\n let secretcode = bigintCryptoUtils.modPow(\r\n BigInt(key),\r\n BigInt(this.randomPrime),\r\n this.phiN\r\n );\r\n\r\n // console.log('Private Pro Key: ', secretcode);\r\n this._storageService.saveData(\r\n COOKIECONSTANT.ERRORCODE,\r\n secretcode.toString()\r\n );\r\n }\r\n\r\n public encryptViaCrypto(normalText: string) {\r\n const code = this.getSecretCode();\r\n const encryptedMessagedata = this.encryptMessage(normalText, code);\r\n return encryptedMessagedata;\r\n }\r\n\r\n public decryptViaCrypto(cipherText: string) {\r\n const decryptedData = this.base64ToUint8Array(cipherText);\r\n const code = this.getSecretCode();\r\n let decryptdata = this.decrypt(decryptedData, code);\r\n let decryptdatastr = this.bytesToString(decryptdata);\r\n return decryptdatastr;\r\n }\r\n\r\n public decryptResponseViaCrypto(cipherText: string) {\r\n const code: string = String(this.getPublicKey());\r\n const decryptdata = this.decrypt123(cipherText, code);\r\n return decryptdata;\r\n }\r\n\r\n //todo amit\r\n // private decrypt123(messageme: string, key: string): string {\r\n // let bigKey: bigint = BigInt(key);\r\n // let bytes: string = atob(messageme);\r\n // let decryptedBytes: number[] = [];\r\n // for (let i = 0; i < bytes.length; i++) {\r\n // let byteValue: bigint = BigInt(bytes.charCodeAt(i));\r\n // byteValue = (byteValue - bigKey) % 256n;\r\n // if (byteValue < 0n) {\r\n // byteValue = 256n + byteValue;\r\n // }\r\n // decryptedBytes.push(Number(byteValue));\r\n // }\r\n // let decryptedMessage: string = String.fromCharCode.apply(\r\n // null,\r\n // decryptedBytes\r\n // );\r\n // return decryptedMessage;\r\n // }\r\n\r\n //new amit\r\n private decrypt123(messageme: string, key: string): string {\r\n const bigKey = BigInt(key);\r\n const bytes = atob(messageme);\r\n const decryptedBytes: number[] = [];\r\n\r\n for (let i = 0; i < bytes.length; i++) {\r\n let byteValue = BigInt(bytes.charCodeAt(i));\r\n byteValue = (byteValue - bigKey) % BigInt(256);\r\n if (byteValue < BigInt(0)) {\r\n byteValue = BigInt(256) + byteValue;\r\n }\r\n decryptedBytes.push(Number(byteValue));\r\n }\r\n\r\n return String.fromCharCode(...decryptedBytes);\r\n }\r\n\r\n private encryptMessage(message: string, sharedSecret: bigint): string {\r\n const messageBytes = new TextEncoder().encode(message);\r\n\r\n const encryptedMessage = this.encrypt(messageBytes, sharedSecret);\r\n // console.log(encryptedMessage);\r\n return this.encryptMessageToBase64(encryptedMessage);\r\n //return encryptedMessage;\r\n }\r\n\r\n private base64ToUint8Array(base64String: string): Uint8Array {\r\n const decodedString = atob(base64String);\r\n\r\n const uint8Array = new Uint8Array(decodedString.length);\r\n for (let i = 0; i < decodedString.length; i++) {\r\n uint8Array[i] = decodedString.charCodeAt(i);\r\n }\r\n\r\n return uint8Array;\r\n }\r\n\r\n private bytesToString(bytes: Uint8Array): string {\r\n let str = '';\r\n for (let i = 0; i < bytes.length; i++) {\r\n str += String.fromCharCode(bytes[i]);\r\n }\r\n return str;\r\n }\r\n\r\n private encryptMessageToBase64(encryptedMessage: Uint8Array): string {\r\n const encryptedArray = Array.from(encryptedMessage);\r\n const messageString = String.fromCharCode.apply(null, encryptedArray);\r\n const base64String = btoa(messageString);\r\n return base64String;\r\n }\r\n\r\n private bigintToBytes(key: bigint): Uint8Array {\r\n const hexString = key.toString(16);\r\n const byteLength = Math.ceil(hexString.length / 2);\r\n const bytes = new Uint8Array(byteLength);\r\n let i = hexString.length;\r\n let j = 0;\r\n while (i > 0) {\r\n bytes[j++] = parseInt(hexString.substring(Math.max(i - 2, 0), i), 16);\r\n i -= 2;\r\n }\r\n return bytes;\r\n }\r\n\r\n private encrypt(data: Uint8Array, key: bigint): Uint8Array {\r\n const keyBytes = this.bigintToBytes(key);\r\n const encryptedData = new Uint8Array(data.length);\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n encryptedData[i] = data[i] ^ keyBytes[i % keyBytes.length];\r\n }\r\n\r\n return encryptedData;\r\n }\r\n\r\n private decrypt(data: Uint8Array, key: bigint): Uint8Array {\r\n return this.encrypt(data, key);\r\n }\r\n\r\n private generateRandomPrime(min: number, max: number): number {\r\n const isPrime = (num: number) => {\r\n if (num <= 1) return false;\r\n if (num <= 3) return true;\r\n if (num % 2 === 0 || num % 3 === 0) return false;\r\n let i = 5;\r\n while (i * i <= num) {\r\n if (num % i === 0 || num % (i + 2) === 0) return false;\r\n i += 6;\r\n }\r\n return true;\r\n };\r\n\r\n let prime;\r\n do {\r\n prime = Math.floor(Math.random() * (max - min + 1)) + min;\r\n } while (!isPrime(prime));\r\n return prime;\r\n }\r\n\r\n private getSecretCode(): bigint {\r\n //todo Amit -\r\n // const key = this._storageService.getData(COOKIECONSTANT.ERRORCODE);\r\n const key =\r\n this._storageService.getData(COOKIECONSTANT.ERRORCODE) ?? '0000';\r\n return this.convertToBigInt(key);\r\n }\r\n\r\n private convertToBigInt(value: string): bigint {\r\n try {\r\n return BigInt(value);\r\n } catch {\r\n return BigInt('0000');\r\n }\r\n }\r\n\r\n private getPublicKey() {\r\n const publicKey: string | undefined = LoggedInUserInfo.privateKey;\r\n\r\n // Check if publicKey is undefined, null, or empty\r\n if (!publicKey) {\r\n console.error('Public key is missing.');\r\n return this.convertToBigInt('0');\r\n }\r\n const KeyArr = publicKey.split(',');\r\n\r\n if (KeyArr.length === 0 || !KeyArr[0]) {\r\n return this.convertToBigInt('0');\r\n }\r\n\r\n const keySegment = KeyArr[0];\r\n // const keySegment = KeyArr[0].slice(0, 10);\r\n // const keySegment = this.getSlicePublicKey(KeyArr[0]);\r\n\r\n if (!keySegment) {\r\n return this.convertToBigInt('0');\r\n }\r\n\r\n try {\r\n return this.convertToBigInt(keySegment);\r\n } catch (error) {\r\n return this.convertToBigInt('0');\r\n }\r\n }\r\n\r\n private getSlicePublicKey(key: string): string {\r\n const subString = key.length >= 20 ? key.substring(0, 20) : key;\r\n const uniqueKey: string = this.getUniqueLetter(subString);\r\n return uniqueKey;\r\n }\r\n\r\n private getUniqueLetter(text: string) {\r\n const textSet = new Set(text);\r\n const uniqueString = [...textSet].join('');\r\n return uniqueString;\r\n }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { GlobalConstants } from '../model/data_model';\r\nimport { throwError } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { CookieStorageManagerService } from './cookie-storage-manager.service';\r\nimport { EncrydecrydataService } from './encrydecrydata.service';\r\nimport { decode } from '@msgpack/msgpack';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RESTLoginFormService {\r\n constructor(\r\n private readonly _http: HttpClient,\r\n private readonly cookieService: CookieStorageManagerService,\r\n private readonly _encryptDec: EncrydecrydataService\r\n ) {}\r\n\r\n /*Method : GET\r\n Action : Fetch Domain List */\r\n fetchDomainList() {\r\n return this._http\r\n .get(GlobalConstants.baseURL + 'meta/api/Metadata/Domains')\r\n .pipe(\r\n map((response: any) => {\r\n let result = [];\r\n if (response['statusCode'] === 200) {\r\n if (response['result'].length > 0) {\r\n let result = response['result'];\r\n return result;\r\n } else {\r\n return [];\r\n }\r\n }\r\n }),\r\n catchError((e) => throwError(this.errorHandler(e)))\r\n );\r\n }\r\n\r\n errorHandler(e: any): any {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /*Method : POST\r\n Parameter : subID , id\r\n Action : Get configuration ID based on to show hide DOMAIN dropdown\r\n */\r\n\r\n getglobalConfigDetails(subid: string, id: number[]) {\r\n return this._http\r\n .post(\r\n GlobalConstants.baseURL +\r\n 'meta/api/Metadata/GetArcosConfigsValues?subId=' +\r\n subid,\r\n id\r\n )\r\n .pipe(\r\n map((response: any) => {\r\n let result = [];\r\n if (response['statusCode'] === 200) {\r\n let result = response['result'];\r\n return result;\r\n }\r\n }),\r\n catchError((e) => throwError(this.errorHandler(e)))\r\n );\r\n }\r\n\r\n /*Method : POST\r\n Action : get login to user\r\n */\r\n // userAuthentication(userDetails: any) {\r\n // return this._http\r\n // .post(\r\n // GlobalConstants.baseURL + 'xaccess/api/SecureAccess/Authenticate',\r\n // userDetails\r\n // )\r\n // .pipe(\r\n // map((response: any) => {\r\n // if (response && response['data']) {\r\n\r\n // return this.getDecryptAPIResponse(response['data']);\r\n // }\r\n // }),\r\n // catchError((e) => throwError(this.errorHandler(e)))\r\n // );\r\n // }\r\n\r\n /*Method : POST\r\n Action : RESET Password for First Time User\r\n */\r\n setNewpassword(loggedInUserDetails: any) {\r\n return this._http\r\n .post(\r\n GlobalConstants.baseURL +\r\n 'xaccess/api/SecureAccess/ChangeUserArcXwdManually',\r\n loggedInUserDetails\r\n )\r\n .pipe(catchError((e) => throwError(this.errorHandler(e))));\r\n }\r\n\r\n /*Method : POST\r\n Action :Will validate User entered PWD as\r\n per Password Policy Set\r\n */\r\n validatePassword(userDetails: any) {\r\n return this._http\r\n .post(\r\n GlobalConstants.baseURL + 'xaccess/api/SecureAccess/ValidatePassword',\r\n userDetails\r\n )\r\n .pipe(catchError((e) => throwError(this.errorHandler(e))));\r\n }\r\n\r\n /*Method : POST\r\n Action : Get Public Key for encryption of Data */\r\n getPrivateKey(params: any) {\r\n return this._http\r\n .post(\r\n GlobalConstants.baseURL + 'xaccess/api/SecureAccess/XKEDSync',\r\n params\r\n )\r\n .pipe(catchError((e) => throwError(this.errorHandler(e))));\r\n }\r\n\r\n /* Method : POST\r\n Action : Send request for OTP of MFA Authenticator */\r\n sendMFAOTPRequest(mfaDetails: any) {\r\n return this._http\r\n .post(GlobalConstants.baseURL + 'xmfa/api/Mfa/mfa', mfaDetails)\r\n .pipe(\r\n map((response: any) => {\r\n let result = [];\r\n if (response['success']) {\r\n let result = response['result'];\r\n return result;\r\n }\r\n }),\r\n catchError((e) => throwError(this.errorHandler(e)))\r\n );\r\n }\r\n\r\n /* Method : POST\r\n Action : Submit User Enter OTP of MFA Authenticator */\r\n submitOtpForMfaVerification(mfaDetails: any) {\r\n return this._http\r\n .post(GlobalConstants.baseURL + 'xmfa/api/Mfa/mfavalidation', mfaDetails)\r\n .pipe(\r\n map((response: any) => {\r\n let result = [];\r\n if (response['success']) {\r\n let result = response['result'];\r\n return result;\r\n }\r\n }),\r\n catchError((e) => throwError(this.errorHandler(e)))\r\n );\r\n }\r\n\r\n /*Method : POST\r\n Action : It will provide Token which used for multiple Application access */\r\n getAuthToken(userDetails: {}) {\r\n return this._http\r\n .post(\r\n GlobalConstants.baseURL + 'xauth/api/Token/GenerateJwtTokenApplication',\r\n userDetails\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response) {\r\n return response;\r\n } else {\r\n return '';\r\n }\r\n }),\r\n catchError((e) => throwError(this.errorHandler(e)))\r\n );\r\n }\r\n\r\n /* Method : GET\r\n Action : It will provide Token which used to established MFA Method */\r\n // getMFAAccessTokenKey() {\r\n // return this._http\r\n // .get<any>(GlobalConstants.baseURL + 'xaccess/api/SecureAccess/GetMfaDetails')\r\n // .pipe(\r\n // map((response) => {\r\n // if (response && response['data']) {\r\n // return this.getDecryptAPIResponse(response['data']);\r\n // }\r\n // return {};\r\n // }),\r\n // catchError((e) => throwError(this.errorHandler(e)))\r\n // );\r\n // }\r\n\r\n /* Method : POST\r\n Action : It will check Valida User or not */\r\n // checkUserExists(userDetails: any) {\r\n // return this._http\r\n // .post(\r\n // GlobalConstants.baseURL + 'xaccess/api/SecureAccess/ValidateUser',\r\n // userDetails\r\n // )\r\n // .pipe(\r\n // map((response: any) => {\r\n // if (response && response['data']) {\r\n // return this.getDecryptAPIResponse(response['data']);\r\n // }\r\n // return {};\r\n // }),\r\n // catchError((e) => throwError(this.errorHandler(e)))\r\n // );\r\n // }\r\n\r\n /* Method : POST\r\n Action : Unlock User to enable login process */\r\n unlockUserAccount(userDetails: any) {\r\n return this._http\r\n .post(\r\n GlobalConstants.baseURL + 'xaccess/api/SecureAccess/ValidateUser',\r\n userDetails\r\n )\r\n .pipe(\r\n map((result) => {\r\n return result;\r\n }),\r\n catchError((e) => throwError(this.errorHandler(e)))\r\n );\r\n }\r\n\r\n /* Method : GET\r\n Action : It will provide Third Parth AUth Method etc. Google, Okta, Microsoft */\r\n // getThirdPartySignInMethods() {\r\n // return this._http\r\n // .get(\r\n // GlobalConstants.baseURL + 'xaccess/api/SecureAccess/GetThirdPartyDetail'\r\n // )\r\n // .pipe(\r\n // map((response: any) => {\r\n // let result: any = [];\r\n // if (response['success']) {\r\n // return response['result'];\r\n // }\r\n // return result;\r\n // }),\r\n // catchError((error: any) => throwError(this.errorHandler(error)))\r\n // );\r\n // }\r\n\r\n /* Method : POST\r\n Action : It will Verify plugin version is correct or not */\r\n // public verifyUserInstalledPluginVersion(pluginInfo: any) {\r\n // return this._http\r\n // .post(GlobalConstants.baseURL + 'xaccess/api/SecureAccess/CheckAutoUpdatePAMPlugin',\r\n // pluginInfo).pipe(\r\n // map((response: any) => {\r\n // return response['result'];\r\n // }),\r\n // catchError((error: any) => throwError(this.errorHandler(error)))\r\n // );\r\n // }\r\n\r\n /**\r\n * Verifies user authentication using Windows credentials.\r\n */\r\n // public checkAuthenticateWithWindowsCredentials(pluginInfo: any) {\r\n // return this._http\r\n // .post(GlobalConstants.baseURL + 'xdomainauth/api/DomainAuthentication/DomainAuth',\r\n // // .post(GlobalConstants.baseURL + 'xaccess/api/SecureAccess/DomainAuth',\r\n // pluginInfo).pipe(\r\n // map((response: any) => {\r\n // if (response && response['data']) {\r\n // return this.getDecryptAPIResponse(response['data']);\r\n // }\r\n // return {};\r\n // }),\r\n // catchError((error: any) => throwError(this.errorHandler(error)))\r\n // );\r\n // }\r\n\r\n /*Method : GET\r\n Action : Get User Background Image and Logo */\r\n public getUserBackgroundImageAndLogo() {\r\n return this._http\r\n .get(\r\n GlobalConstants.baseURL + 'xaccess/api/SecureAccess/GetBackgroundImage'\r\n )\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error: any) => throwError(this.errorHandler(error)))\r\n );\r\n }\r\n\r\n // public getVerifiedUserSessionDetails(authToken: string) {\r\n // return this._http.post(\r\n // GlobalConstants.baseURL + 'xaccess/api/SecureAccess/ValidateUserSessionDetail', { state: authToken }).pipe(\r\n // map((response: any) => {\r\n // if (response && response['data']) {\r\n // return this.getDecryptAPIResponse(response['data']);\r\n // }\r\n // return {};\r\n // }),\r\n // catchError((error: any) => throwError(this.errorHandler(error)))\r\n // );\r\n // }\r\n\r\n deleteCookieData(payload: any) {\r\n const url = this.cookieService.getCookieValue('baseurl');\r\n const delCookieEndpoint = `${url}xaccess/api/SecureAccess/cookiesUpdation`;\r\n return this._http.post(delCookieEndpoint, payload);\r\n }\r\n\r\n /**\r\n * Decrypts a base64-encoded, MessagePack-encoded ciphertext into its original tuple form.\r\n *\r\n * @param cipherText - The encrypted string received from the API.\r\n * @returns The decoded tuple [key, value] if decryption is successful; otherwise, an empty object.\r\n *\r\n * Steps:\r\n * 1. Decrypts the cipherText using custom crypto method.\r\n * 2. Decodes the base64 response into a binary Uint8Array.\r\n * 3. Deserializes the binary using MessagePack's decode to get the original data.\r\n */\r\n // private getDecryptAPIResponse_old(cipherText: string): any {\r\n // if (cipherText) {\r\n // const responseString =\r\n // this._encryptDec.decryptResponseViaCrypto(cipherText);\r\n // const binary = Uint8Array.from(atob(responseString), c => c.charCodeAt(0));\r\n // const decodedArray = decode(binary) as [string, string];\r\n // // console.log(decodedArray);\r\n // return decodedArray\r\n // }\r\n // return {};\r\n // }\r\n\r\n private async getDecryptAPIResponse(cipherText: string): Promise<any> {\r\n if (cipherText) {\r\n const responseString = await this._encryptDec.decryptResponseViaCrypto(\r\n cipherText\r\n ); // await here\r\n const binary = Uint8Array.from(atob(responseString), (c) =>\r\n c.charCodeAt(0)\r\n );\r\n const decodedArray = decode(binary) as [string, string];\r\n // console.log(decodedArray);\r\n return decodedArray;\r\n }\r\n return {};\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VaptValidationService {\r\n\r\n constructor() { }\r\n\r\n hasUnsafeInput(formData: any): boolean {\r\n const dangerousPattern = /<\\s*(script|iframe|object|embed|link|style)\\b[^>]*>(.*?)<\\s*\\/\\s*\\1\\s*>|<\\s*(script|iframe|object|embed|link|style)\\b[^>]*\\/?>|<[^>]+>/gi;\r\n\r\n function checkValue(value: any): boolean {\r\n if (typeof value === 'string') {\r\n return dangerousPattern.test(value);\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return value.some(checkValue);\r\n }\r\n\r\n if (typeof value === 'object' && value !== null) {\r\n return Object.values(value).some(checkValue);\r\n }\r\n\r\n // If it's a number, boolean, null, or undefined, ignore\r\n return false;\r\n }\r\n\r\n return checkValue(formData);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { catchError, map, throwError } from 'rxjs';\r\nimport { GlobalConstants } from '../../model/data_model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HttpGeneralConfigurationService {\r\n private xPageRefAPIUrl: string = '/xaccess/api/PagePreference/';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getUserPreferredAssetTypeDetails() {\r\n return this.http\r\n .get(\r\n `${GlobalConstants.baseURL}${this.xPageRefAPIUrl}GetAssetTypeDetails`\r\n )\r\n .pipe(\r\n map((response: any) => {\r\n if (response && response['success']) {\r\n return response['result'];\r\n } else {\r\n return [];\r\n }\r\n }),\r\n catchError((e) => throwError(this.errorHandler(e)))\r\n );\r\n }\r\n\r\n getUserPreferredAssetName(payload: any) {\r\n return this.http\r\n .post(\r\n `${GlobalConstants.baseURL}${this.xPageRefAPIUrl}GetAssetName`,\r\n payload\r\n )\r\n .pipe(\r\n map((response: any) => {\r\n if (response && response['success']) {\r\n return response['result'];\r\n } else {\r\n return [];\r\n }\r\n }),\r\n catchError((e) => throwError(this.errorHandler(e)))\r\n );\r\n }\r\n getServiceNameByAssetTypeEvent(payload: any) {\r\n return this.http\r\n .post(\r\n `${GlobalConstants.baseURL}${this.xPageRefAPIUrl}GetServiceDetails`,\r\n payload\r\n )\r\n .pipe(\r\n map((response: any) => {\r\n if (response && response['success']) {\r\n return response['result'];\r\n } else {\r\n return [];\r\n }\r\n }),\r\n catchError((e) => throwError(this.errorHandler(e)))\r\n );\r\n }\r\n getPreferencePathDetails(payload: any) {\r\n return this.http\r\n .post(\r\n `${GlobalConstants.baseURL}${this.xPageRefAPIUrl}CurrentPreferencepathDetails`,\r\n payload\r\n )\r\n .pipe(\r\n map((response: any) => {\r\n if (response && response['success']) {\r\n return response['result'];\r\n } else {\r\n return {};\r\n }\r\n }),\r\n catchError((e) => throwError(this.errorHandler(e)))\r\n );\r\n }\r\n updatePreferencePath(payload: any) {\r\n return this.http\r\n .post(\r\n `${GlobalConstants.baseURL}${this.xPageRefAPIUrl}UpdatePreferencePath`,\r\n payload\r\n )\r\n .pipe(\r\n map((response: any) => {\r\n if (response && response['success']) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }),\r\n catchError((e) => throwError(this.errorHandler(e)))\r\n );\r\n }\r\n\r\n errorHandler(e: any): any {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subject } from 'rxjs';\r\nimport { finalize, takeUntil } from 'rxjs/operators';\r\nimport { EventService } from '../../../services/event.service';\r\nimport { StorageService } from '../../../services/storage.service';\r\nimport { COOKIECONSTANT, errorMsg } from '../../../model/data_model';\r\nimport { HttpCommonService } from '../../../services/http/http-common.service';\r\nimport { ToastMsgService } from '../../../services/toast-msg.service';\r\n\r\n@Component({\r\n selector: 'app-timezone-configuration',\r\n templateUrl: './timezone-configuration.component.html',\r\n styleUrls: ['./timezone-configuration.component.scss'],\r\n})\r\nexport class TimezoneConfigurationComponent implements OnInit, AfterViewInit {\r\n public selectedTimeZone: any;\r\n public timeZoneForm: FormGroup = new FormGroup({}); //user Reset Password Form\r\n public ListOfTimeZones = [];\r\n public isTimezoneLoading: boolean = false;\r\n public isTimezoneupdate: boolean = false;\r\n private unsubscribeAPIEventListenerData: Subject<boolean> =\r\n new Subject<boolean>();\r\n public tzSuccessMsg: string = errorMsg.TIMEZONESUCCESS;\r\n public tzErrorMsg: string = errorMsg.TIMEZONERROR;\r\n apiUrl: string = '';\r\n @Output() public closepopup = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n private readonly fb: FormBuilder,\r\n private readonly msgService: ToastMsgService,\r\n private readonly _storageService: StorageService,\r\n private readonly _eventService: EventService,\r\n private readonly translateService: TranslateService,\r\n private httpCommonService: HttpCommonService\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.getTranslateContent();\r\n }\r\n\r\n ngOnInit(): void {\r\n //Get Initalize Form\r\n // this.fetchUserDetails();\r\n console.log('insisde timexzone cmp');\r\n this.getListofTimeZones();\r\n this.getInitalizeForm();\r\n }\r\n\r\n getInitalizeForm() {\r\n this.timeZoneForm = this.fb.group({\r\n timezone: [null, Validators.required], // Add Validators.required\r\n });\r\n }\r\n\r\n //Method: Convert text one Lang. to another\r\n private getTranslateContent() {\r\n this.translateService\r\n .get(['Generic_lib.TimeZoneSuccessMsg', 'Generic_lib.TimeZoneErrorMsg'])\r\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\r\n .subscribe((trans) => {\r\n this.tzSuccessMsg = trans['Generic_lib.TimeZoneSuccessMsg'];\r\n this.tzErrorMsg = trans['Generic_lib.TimeZoneErrorMsg'];\r\n });\r\n }\r\n\r\n /*Method : GET\r\n Action : Get List of Time Zone*/\r\n getListofTimeZones() {\r\n this.isTimezoneLoading = true;\r\n this.httpCommonService\r\n .getGlobalTimeZone()\r\n .pipe(\r\n takeUntil(this.unsubscribeAPIEventListenerData),\r\n finalize(() => {\r\n this.isTimezoneLoading = false;\r\n })\r\n )\r\n .subscribe((result) => {\r\n if (result && result['timelist']) {\r\n this.ListOfTimeZones = result['timelist'] as never;\r\n }\r\n if (result && result['userTimeZone']) {\r\n let userTz = result['userTimeZone'];\r\n const selectedTZ = this.ListOfTimeZones.find(\r\n (tz: any) => tz.id === userTz\r\n );\r\n this.setTimezoneOptionValue(selectedTZ);\r\n }\r\n });\r\n }\r\n\r\n /*Method : POST\r\n Action : Used to Update User Selected TimeZone*/\r\n setUserTimeZone() {\r\n const tz = this.timeZoneForm.get('timezone')?.value;\r\n let tzName = tz['id'];\r\n\r\n this.showBtnLoadder(true);\r\n this.httpCommonService\r\n .updateUserTimeZone(tzName)\r\n .pipe(\r\n takeUntil(this.unsubscribeAPIEventListenerData),\r\n finalize(() => {\r\n this.showBtnLoadder(false);\r\n })\r\n )\r\n .subscribe((result: string) => {\r\n if (result) {\r\n setTimeout(() => {\r\n this.setTimezoneOptionValue(tz);\r\n }, 10);\r\n this.msgService.success(this.tzSuccessMsg);\r\n this._storageService.removeData(COOKIECONSTANT.NEWUSER);\r\n this._eventService.emitTimezone({\r\n component: 'timezone',\r\n usertimezoneAbbreviations: result,\r\n userTimeZoneFullForm: '',\r\n });\r\n this.closepopup.emit(true);\r\n this.timeZoneForm.reset();\r\n } else {\r\n this.msgService.error(this.tzErrorMsg);\r\n }\r\n });\r\n }\r\n\r\n setTimezoneOptionValue(selectedTZ: any) {\r\n if (selectedTZ) {\r\n this.selectedTimeZone = selectedTZ;\r\n this.timeZoneForm.get('timezone')?.setValue(this.selectedTimeZone);\r\n }\r\n }\r\n\r\n showBtnLoadder(flag: boolean) {\r\n this.isTimezoneupdate = flag;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAPIEventListenerData.next(true);\r\n this.unsubscribeAPIEventListenerData.complete();\r\n }\r\n}\r\n","<div class=\"preference-container\">\r\n <form [formGroup]=\"timeZoneForm\">\r\n <div class=\"mt-2\">\r\n <div class=\"form-group\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">{{\"Generic_lib.PreferredTimezone\" | translate }}</div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div class=\" timezone-dropdown\">\r\n <p-dropdown [options]=\"ListOfTimeZones\" filterPlaceholder='{{ \"Generic_lib.Search\" | translate }}'\r\n placeholder='{{\"Generic_lib.TimeZonePlaceHolder\" | translate}}' formControlName=\"timezone\"\r\n [(ngModel)]=\"selectedTimeZone\" [filter]=\"!isTimezoneLoading ? true:false\" optionLabel=\"displayName\"\r\n filterBy=\"displayName\" [showClear]=\"false\" panelStyleClass=\"{'dropdown-loader': isTimezoneLoading}\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <div *ngIf=\"isTimezoneLoading\" class=\"dropdown-loader-container\">\r\n <i class=\"pi pi-spin pi-spinner\"></i>\r\n </div>\r\n </ng-template></p-dropdown>\r\n </div>\r\n <ng-container *ngIf=\"\r\n timeZoneForm.get('timezone')?.invalid &&\r\n timeZoneForm.get('timezone')?.touched\r\n \">\r\n <span class=\"error-msg mt-1\">{{'Generic_lib.TimeZoneFieldValidation' | translate}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"mt-2 update-btn\">\r\n <p-button class=\"submit-btn\" label=\"{{'Generic_lib.Update' | translate}}\" [disabled]=\"timeZoneForm.invalid\"\r\n iconPos=\"right\" [loading]=\"isTimezoneupdate\" (onClick)=\"setUserTimeZone()\"></p-button>\r\n </div>\r\n </form>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subject } from 'rxjs';\r\nimport { finalize, takeUntil } from 'rxjs/operators';\r\nimport { errorMsg } from '../../../model/data_model';\r\n// import { EncrydecryRSAdataService } from '../../../services/EncrypDecryp_RSA.service';\r\nimport { CommonHeaderLibService } from '../../../common-header-lib.service';\r\nimport { HttpCommonService } from '../../../services/http/http-common.service';\r\nimport { EncrydecryRSAdataService } from '../../../services/EncrypDecryp_RSA.service';\r\nimport { ToastMsgService } from '../../../services/toast-msg.service';\r\n\r\n@Component({\r\n selector: 'app-landingpg-config',\r\n templateUrl: './landingpg-config.component.html',\r\n styleUrls: ['./landingpg-config.component.scss'],\r\n})\r\nexport class LandingpgConfigComponent implements OnInit {\r\n public AppNameForm: FormGroup = new FormGroup({});\r\n public ListofApplicationNames = [];\r\n public isAppNameLoading: boolean = false;\r\n public isAppNameUpdate: boolean = false;\r\n public updateSuccess: string = errorMsg.LANDINGPGSUCCESS;\r\n public updateError: string = errorMsg.LANDINGPGERROR;\r\n public userConfiguredApp: any = {};\r\n private unsubscribeAPIEventListenerData: Subject<boolean> =\r\n new Subject<boolean>();\r\n apiUrl: string = '';\r\n constructor(\r\n private readonly libService: CommonHeaderLibService,\r\n private readonly fb: FormBuilder,\r\n private readonly msgService: ToastMsgService,\r\n private readonly translateService: TranslateService,\r\n private readonly _encryptRSAService: EncrydecryRSAdataService,\r\n private httpCommonService: HttpCommonService\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.getTranslateContent();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getListofApplications();\r\n this.getInitalizeForm();\r\n }\r\n\r\n getInitalizeForm() {\r\n this.AppNameForm = this.fb.group({\r\n userApp: [null, Validators.required],\r\n });\r\n }\r\n\r\n //Method: Convert text one Lang. to another\r\n private getTranslateContent() {\r\n this.translateService\r\n .get([\r\n 'Generic_lib.LandingPageSuccessMsg',\r\n 'Generic_lib.LandingPageErrorMsg',\r\n ])\r\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\r\n .subscribe((trans) => {\r\n this.updateSuccess = trans['Generic_lib.LandingPageSuccessMsg'];\r\n this.updateError = trans['Generic_lib.LandingPageErrorMsg'];\r\n });\r\n }\r\n\r\n /*Method : GET\r\n Action : Get List of User Assign Application*/\r\n getListofApplications() {\r\n this.isAppNameLoading = true;\r\n this.httpCommonService\r\n .getUserAssignedApps()\r\n .pipe(\r\n takeUntil(this.unsubscribeAPIEventListenerData),\r\n finalize(() => {\r\n this.isAppNameLoading = false;\r\n })\r\n )\r\n .subscribe((response: any) => {\r\n this.ListofApplicationNames = response;\r\n this.userConfiguredApp = this.ListofApplicationNames.find(\r\n (app: any) => app.isAssignedLanding\r\n );\r\n this.setPostLoginModuleOption(this.userConfiguredApp);\r\n });\r\n }\r\n\r\n /*Method : POST\r\n Action : Used to Update User Preferred Landing App Name*/\r\n protected getUpdateLandingPgPreference() {\r\n const userApp = this.AppNameForm.get('userApp')?.value;\r\n const moduleId: string = this._encryptRSAService.encryptViaRSA(\r\n userApp['appCode']\r\n );\r\n\r\n this.showBtnLoadder(true);\r\n this.httpCommonService\r\n .setLandingPgPreference(moduleId)\r\n .pipe(\r\n takeUntil(this.unsubscribeAPIEventListenerData),\r\n finalize(() => {\r\n this.showBtnLoadder(false);\r\n })\r\n )\r\n .subscribe((result) => {\r\n if (result) {\r\n setTimeout(() => {\r\n this.setPostLoginModuleOption(userApp);\r\n }, 10);\r\n this.msgService.success(this.updateSuccess);\r\n this.AppNameForm.reset();\r\n } else {\r\n this.msgService.error(this.updateError);\r\n }\r\n });\r\n }\r\n\r\n setPostLoginModuleOption(userConfiguredApp: any) {\r\n if (userConfiguredApp) {\r\n this.AppNameForm.get('userApp')?.setValue(userConfiguredApp);\r\n }\r\n }\r\n\r\n showBtnLoadder(flag: boolean) {\r\n this.isAppNameUpdate = flag;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAPIEventListenerData.next(true);\r\n this.unsubscribeAPIEventListenerData.complete();\r\n }\r\n}\r\n","<div class=\"preference-container\">\r\n <form [formGroup]=\"AppNameForm\">\r\n <div class=\"mt-2\">\r\n <div class=\"form-group\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">{{ \"Generic_lib.LandingPageConfig\" | translate }}</div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div class=\" timezone-dropdown\">\r\n <p-dropdown [options]=\"ListofApplicationNames\"\r\n placeholder='{{\"Generic_lib.LandingPagePlaceHolder\" | translate}}'\r\n filterPlaceholder='{{\"Generic_lib.Search\" | translate }}' formControlName=\"userApp\"\r\n [filter]=\"!isAppNameLoading ? true:false\" optionLabel=\"applicationName\" filterBy=\"applicationName\"\r\n [showClear]=\"false\" panelStyleClass=\"{'dropdown-loader': isAppNameLoading}\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <div *ngIf=\"isAppNameLoading\" class=\"dropdown-loader-container\">\r\n <i class=\"pi pi-spin pi-spinner\"></i>\r\n </div>\r\n </ng-template>\r\n </p-dropdown>\r\n </div>\r\n <ng-container *ngIf=\"AppNameForm.get('userApp')?.invalid && AppNameForm.get('userApp')?.touched\">\r\n <span class=\"error-msg mt-1\">{{'Generic_lib.LandingPageValidation' | translate}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"mt-2 update-btn\">\r\n <p-button class=\"submit-btn\" label=\"{{'Generic_lib.Update' | translate}}\" [disabled]=\"AppNameForm.invalid\"\r\n iconPos=\"right\" [loading]=\"isAppNameUpdate\" (onClick)=\"getUpdateLandingPgPreference()\"></p-button>\r\n </div>\r\n </form>\r\n</div>","import { EncrydecryRSAdataService } from './../../services/EncrypDecryp_RSA.service';\r\nimport { AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { Subject } from 'rxjs';\r\nimport { finalize, takeUntil } from 'rxjs/operators';\r\nimport { RESTLoginFormService } from '../../services/rest-login-form.service';\r\n// import { RESTMyaccessService } from 'src/app/shared/Services/REST-Services/rest-myaccess.service';\r\nimport {\r\n ASYNCPasswordcheckService,\r\n ConfirmedValidator,\r\n} from '../../services/async-passwordcheck.service';\r\nimport { EncrpdataService } from '../../services/encrpdata.service';\r\nimport { ToastMsgService } from '../../services/toast-msg.service';\r\nimport { VaptValidationService } from '../../services/vapt-validation.service';\r\nimport { noSpaceAllowed } from '../../Validators/noSpaceAllowed';\r\nimport { errorMsg, LoggedInUserInfo } from '../../model/data_model';\r\nimport { CommonHeaderLibService } from '../../common-header-lib.service';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { HttpCommonService } from '../../services/http/http-common.service';\r\nimport { HttpGeneralConfigurationService } from '../../services/http/http-general-config.service';\r\n@Component({\r\n selector: 'app-general-configuration',\r\n templateUrl: './general-configuration.component.html',\r\n styleUrls: ['./general-configuration.component.scss'],\r\n providers: [DialogService],\r\n})\r\nexport class GeneralConfigurationComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n // export class GeneralConfigurationComponent {\r\n public ShowPreferencePathScreen: boolean = true;\r\n public ShowUserProfileScreen: boolean = false;\r\n public ShowChangePasswordScreen: boolean = false;\r\n public ShowTimeZoneScreen: boolean = false;\r\n public ShowLandinPgScreen: boolean = false;\r\n public ShowTimeZoneBtn: boolean = false;\r\n public showStatus: boolean = false;\r\n public userAssetTypeList = [];\r\n public userAssetNameList = [];\r\n public userServiceList = [];\r\n public userSelectedTimezone: string = '';\r\n // private domainName: string = '';\r\n // private domainID: number;\r\n // private LoggedInUserID: number;\r\n // private username: string;\r\n public filePathName: string = '';\r\n public lastUpdatedFileStatus: string = '';\r\n private preferencePathID: any;\r\n public appSettingForm: FormGroup = new FormGroup({}); // Define form group\r\n public userResetPasswordForm: FormGroup = new FormGroup({}); //user Reset Password Form\r\n public timeZoneForm: FormGroup = new FormGroup({}); //user Reset Password Form\r\n private unsubscribeAPIEventListenerData: Subject<boolean> =\r\n new Subject<boolean>();\r\n public makeNewPwdVisible: boolean = true;\r\n public makeOldPwdVisible: boolean = true;\r\n public makeCnfrmPwdVisible: boolean = true;\r\n public isAssetTypeLoading: boolean = false;\r\n public isAssetNameLoading: boolean = false;\r\n public isConnectionMethodLoading: boolean = false;\r\n public isPathUpdated: boolean = false;\r\n public pwderrorMsg: string = '';\r\n protected AssetTypeEvent: string = 'AssetType';\r\n protected AssetNameEvent: string = 'AssetName';\r\n protected ConnectionMethodEvent: string = 'ConnectionMethod';\r\n public pathSuccessMsg: string = errorMsg.PATHSUCCESS;\r\n public pathErrorMsg: string = errorMsg.PATHERROR;\r\n apiURL: string = '';\r\n\r\n constructor(\r\n private libService: CommonHeaderLibService,\r\n private fb: FormBuilder,\r\n private msgService: ToastMsgService,\r\n private encryptService: EncrydecryRSAdataService,\r\n private loginService: RESTLoginFormService,\r\n private _validatePwdService: ASYNCPasswordcheckService,\r\n private translateService: TranslateService,\r\n private readonly _vaptService: VaptValidationService,\r\n public readonly config: DynamicDialogConfig,\r\n public readonly httpCommonService: HttpCommonService,\r\n public readonly httpGeneralConfigService: HttpGeneralConfigurationService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n //Get Initalize Form\r\n this.getInitalizeForm();\r\n this.OpenPreferencePathScreen();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.getTranslateContent();\r\n console.log('ViewInit');\r\n\r\n // Get PWD Validation MSg From Validation Service\r\n this._validatePwdService.listValidationMsg().subscribe((msg: any) => {\r\n console.log('Msg:', msg);\r\n this.pwderrorMsg = msg;\r\n });\r\n }\r\n\r\n getInitalizeForm() {\r\n this.appSettingForm = this.fb.group({\r\n AssetType: ['', Validators.required],\r\n AssetName: ['', Validators.required],\r\n ServiceName: ['', Validators.required],\r\n filePathName: ['', [Validators.required, noSpaceAllowed()]],\r\n });\r\n\r\n this.timeZoneForm = this.fb.group({\r\n timezone: ['', Validators.required],\r\n });\r\n\r\n // Password Reset Form\r\n this.userResetPasswordForm = this.fb.group(\r\n {\r\n oldUserARCXWD: ['', [Validators.required]],\r\n newUserARCXWD: [\r\n '',\r\n [Validators.required],\r\n [this._validatePwdService.createValidator()],\r\n ],\r\n crnmNewUserARCXWD: ['', [Validators.required]],\r\n },\r\n {\r\n validator: ConfirmedValidator('newUserARCXWD', 'crnmNewUserARCXWD'),\r\n },\r\n );\r\n }\r\n\r\n // //Method: Convert text one Lang. to another\r\n private getTranslateContent() {\r\n this.translateService\r\n .get([\r\n 'Generic_lib.PreferencePathSuccessMsg',\r\n 'Generic_lib.PreferencePathErrorMsg',\r\n ])\r\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\r\n .subscribe((trans: any) => {\r\n this.pathSuccessMsg = trans['Generic_lib.PreferencePathSuccessMsg'];\r\n this.pathErrorMsg = trans['Generic_lib.PreferencePathErrorMsg'];\r\n });\r\n }\r\n\r\n public OpenPreferencePathScreen() {\r\n this.closeAllScreen();\r\n setTimeout(() => {\r\n this.ShowPreferencePathScreen = true;\r\n this.appSettingForm.reset();\r\n this.userAssetTypeList = [];\r\n this.userAssetNameList = [];\r\n this.userServiceList = [];\r\n this.getServiceAssetDetails();\r\n }, 10);\r\n }\r\n\r\n public OpenUserProfileScreen() {\r\n this.closeAllScreen();\r\n this.ShowUserProfileScreen = true;\r\n }\r\n\r\n public OpenChangePasswordScreen() {\r\n this.closeAllScreen();\r\n this.ShowChangePasswordScreen = true;\r\n this.userResetPasswordForm.reset();\r\n // this.getEncryptKey();\r\n }\r\n\r\n public OpenTimezoneScreen() {\r\n this.closeAllScreen();\r\n this.ShowTimeZoneScreen = true;\r\n }\r\n\r\n public OpenLandingPgConfig() {\r\n this.closeAllScreen();\r\n this.ShowLandinPgScreen = true;\r\n }\r\n\r\n public closeAllScreen() {\r\n this.ShowPreferencePathScreen = false;\r\n this.ShowUserProfileScreen = false;\r\n this.ShowChangePasswordScreen = false;\r\n this.ShowTimeZoneScreen = false;\r\n this.ShowLandinPgScreen = false;\r\n }\r\n\r\n protected preferencePathValueChange(eventName: string) {\r\n if (eventName === this.AssetTypeEvent) {\r\n const assetType = this.appSettingForm.get('AssetType')?.value;\r\n this.showStatus = false;\r\n this.resetFormfields(['AssetName', 'ServiceName', 'filePathName']);\r\n this.userAssetNameList = [];\r\n this.userServiceList = [];\r\n this.getServiceAssetName(assetType['assetTypeID']);\r\n } else if (eventName === this.AssetNameEvent) {\r\n const assetName = this.appSettingForm.get('AssetName')?.value;\r\n this.showStatus = false;\r\n this.resetFormfields(['ServiceName', 'filePathName']);\r\n this.userServiceList = [];\r\n this.fetchServiceNameByAssetTypeEvent(assetName['assetName']);\r\n } else if (eventName === this.ConnectionMethodEvent) {\r\n const ServiceDetails = this.appSettingForm.get('ServiceName')?.value;\r\n this.showStatus = false;\r\n this.resetFormfields(['filePathName']);\r\n this.getFilePathDetails(ServiceDetails['serviceTypeId']);\r\n }\r\n }\r\n\r\n // /*Action : Used to Get Asset Type to update Prefrence Path of Connectors */\r\n getServiceAssetDetails() {\r\n this.isAssetTypeLoading = true;\r\n this.httpGeneralConfigService\r\n .getUserPreferredAssetTypeDetails()\r\n .pipe(\r\n takeUntil(this.unsubscribeAPIEventListenerData),\r\n finalize(() => {\r\n this.isAssetTypeLoading = false;\r\n }),\r\n )\r\n .subscribe((data: any) => {\r\n this.userAssetTypeList = data;\r\n });\r\n }\r\n\r\n // /*Action : Used to Get Asset Name to update Prefrence Path of that Asset's Connectors */\r\n private getServiceAssetName(assetTypeID: any) {\r\n this.isAssetNameLoading = true;\r\n let payload = {\r\n assetTypeId: assetTypeID,\r\n };\r\n this.httpGeneralConfigService\r\n .getUserPreferredAssetName(payload)\r\n .pipe(\r\n takeUntil(this.unsubscribeAPIEventListenerData),\r\n finalize(() => {\r\n this.isAssetNameLoading = false;\r\n }),\r\n )\r\n .subscribe((data: any) => {\r\n this.userAssetNameList = data;\r\n });\r\n }\r\n\r\n // /*Method : GET\r\n // Action : get User Assigned ServiceName By AssetTypeEvent */\r\n private fetchServiceNameByAssetTypeEvent(assetName: string) {\r\n this.isConnectionMethodLoading = true;\r\n let payload = {\r\n assetName: assetName,\r\n };\r\n this.httpGeneralConfigService\r\n .getServiceNameByAssetTypeEvent(payload)\r\n .pipe(\r\n takeUntil(this.unsubscribeAPIEventListenerData),\r\n finalize(() => {\r\n this.isConnectionMethodLoading = false;\r\n }),\r\n )\r\n .subscribe((data: any) => {\r\n this.userServiceList = data;\r\n });\r\n }\r\n\r\n // /*Method : GET\r\n // Action : Fetch User's File Path Details and Status already set or not */\r\n private getFilePathDetails(serviceID: string) {\r\n let payload = {\r\n // userId: this.LoggedInUserID,\r\n serviceTypeId: serviceID,\r\n };\r\n this.httpGeneralConfigService\r\n .getPreferencePathDetails(payload)\r\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\r\n .subscribe((res: any) => {\r\n this.preferencePathID = res['spmId'];\r\n if (res && res['currentSetting'] && res['lastUpdate']) {\r\n this.showStatus = true;\r\n this.filePathName = res['currentSetting'];\r\n this.lastUpdatedFileStatus = res['lastUpdate'];\r\n } else {\r\n this.filePathName = '';\r\n this.showStatus = false;\r\n this.lastUpdatedFileStatus = '';\r\n }\r\n });\r\n }\r\n\r\n // /*Action : It saves or updates a preference path of user */\r\n setUserPreferencePath(appSettingForm: any) {\r\n this.toggleBtnLoadder(true);\r\n const userpath: string = String(\r\n appSettingForm.value['filePathName'],\r\n ).trim();\r\n let payload = {\r\n // userId: this.LoggedInUserID,\r\n // userLogTime: this._cookieService.getCookieValue(COOKIECONSTANT.SESSIONID),\r\n serviceTypeId: appSettingForm.value['ServiceName']['serviceTypeId'],\r\n supDescription: userpath,\r\n spmId: this.preferencePathID,\r\n };\r\n\r\n this.httpGeneralConfigService\r\n .updatePreferencePath(payload)\r\n .pipe(\r\n takeUntil(this.unsubscribeAPIEventListenerData),\r\n finalize(() => {\r\n this.toggleBtnLoadder(false);\r\n }),\r\n )\r\n .subscribe((res: boolean) => {\r\n if (res) {\r\n this.resetForm();\r\n this.showStatus = false;\r\n this.msgService.success(this.pathSuccessMsg);\r\n } else {\r\n this.msgService.error(this.pathErrorMsg);\r\n }\r\n });\r\n }\r\n\r\n // //Method : Used to perform password reset of User\r\n resetLoggedInPwd() {\r\n if (this._vaptService.hasUnsafeInput(this.userResetPasswordForm.value)) {\r\n this.msgService.error(errorMsg.SCRIPTERROR);\r\n return;\r\n }\r\n this.userResetPasswordForm.markAllAsTouched();\r\n if (this.userResetPasswordForm.valid) {\r\n this.changeLoggedInPwd();\r\n }\r\n }\r\n\r\n // /*Method: will User New Password to API */\r\n changeLoggedInPwd() {\r\n //For Encrp/Dec\r\n let oldUserARCXWD = this.encryptService.encryptViaRSA(\r\n this.userResetPasswordForm.value['oldUserARCXWD'],\r\n );\r\n\r\n //For Encrp/Dec\r\n let newUserARCXWD = this.encryptService.encryptViaRSA(\r\n this.userResetPasswordForm.value['newUserARCXWD'],\r\n );\r\n\r\n let userPwdDetails = {\r\n ipAddress: '',\r\n oldUserARCXWD: oldUserARCXWD,\r\n newUserARCXWD: newUserARCXWD,\r\n authenticationType: 0,\r\n };\r\n console.log(userPwdDetails);\r\n\r\n this.toggleBtnLoadder(true);\r\n this.httpCommonService\r\n .setNewpassword(userPwdDetails)\r\n .pipe(\r\n takeUntil(this.unsubscribeAPIEventListenerData),\r\n finalize(() => {\r\n this.toggleBtnLoadder(false);\r\n }),\r\n )\r\n .subscribe((data: any) => {\r\n if (data['success']) {\r\n this.msgService.success(data['message']);\r\n this.userResetPasswordForm.reset();\r\n } else if (!data['success']) {\r\n this.msgService.error(data['errorMessage']);\r\n }\r\n });\r\n }\r\n\r\n // /*Method:\r\n // Action : Get Public Key for encryption of User Details */\r\n getEncryptKey() {\r\n let params = {\r\n type: 0,\r\n };\r\n this.loginService\r\n .getPrivateKey(params)\r\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\r\n .subscribe((data: any) => {\r\n if (data['success'] === true) {\r\n LoggedInUserInfo.privateKey = data['result'];\r\n } else if (data['success'] === false) {\r\n this.msgService.error('Session Token Error !');\r\n }\r\n });\r\n }\r\n\r\n // /*Method : POST\r\n // Action : Get configuration ID based on to show hide Time Zone*/\r\n getglobalConfigDetails() {\r\n this.loginService\r\n .getglobalConfigDetails('1', [336])\r\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\r\n .subscribe((data: any) => {\r\n if (data && data.length > 0) {\r\n data.forEach((element: any) => {\r\n if (element && element['id'] === 336 && element['value'] === '0') {\r\n this.ShowTimeZoneBtn = true;\r\n } else {\r\n this.ShowTimeZoneBtn = false;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n // // Show/Hide Password Fileds of Change Pwd form\r\n togglePasswordVisibility(flag: number) {\r\n if (flag === 1) {\r\n this.makeOldPwdVisible = !this.makeOldPwdVisible;\r\n } else if (flag === 2) {\r\n this.makeNewPwdVisible = !this.makeNewPwdVisible;\r\n } else if (flag === 3) {\r\n this.makeCnfrmPwdVisible = !this.makeCnfrmPwdVisible;\r\n }\r\n }\r\n\r\n resetForm() {\r\n this.appSettingForm.reset();\r\n }\r\n\r\n resetFormfields(fields: string[]) {\r\n fields.forEach((fieldsName) => {\r\n this.appSettingForm.get(fieldsName)?.reset();\r\n });\r\n }\r\n\r\n toggleBtnLoadder(flag: boolean) {\r\n this.isPathUpdated = flag;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAPIEventListenerData.next(true);\r\n this.unsubscribeAPIEventListenerData.complete();\r\n }\r\n}\r\n","<div class=\"row my-3\">\r\n <!-- Left_Card_Started -->\r\n <div class=\"col-lg-4 pl-0\">\r\n <div class=\"left-card\">\r\n <div class=\"p-3\">\r\n <div\r\n class=\"profile-card\"\r\n [ngClass]=\"{ active: ShowPreferencePathScreen }\"\r\n (click)=\"OpenPreferencePathScreen()\"\r\n >\r\n <div class=\"p-2\">\r\n <div class=\"profile-label\">\r\n {{ \"Generic_lib.PreferencePath\" | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"profile-card\"\r\n [ngClass]=\"{ active: ShowChangePasswordScreen }\"\r\n (click)=\"OpenChangePasswordScreen()\"\r\n >\r\n <div class=\"p-2\">\r\n <div class=\"profile-label\">\r\n {{ \"Generic_lib.ChangePassword\" | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"profile-card\"\r\n [ngClass]=\"{ active: ShowTimeZoneScreen }\"\r\n (click)=\"OpenTimezoneScreen()\"\r\n >\r\n <div class=\"p-2\">\r\n <div class=\"profile-label\">\r\n {{ \"Generic_lib.PreferredTimezone\" | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"profile-card\"\r\n [ngClass]=\"{ active: ShowLandinPgScreen }\"\r\n (click)=\"OpenLandingPgConfig()\"\r\n >\r\n <div class=\"p-2\">\r\n <div class=\"profile-label\">\r\n {{ \"Generic_lib.LandingPageConfig\" | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Left_Card_Ended -->\r\n\r\n <!--User Profile -->\r\n <ng-container *ngIf=\"ShowUserProfileScreen\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"initial-text\">\r\n {{ \"AK\" }}\r\n </div>\r\n <div class=\"preference-container\">\r\n <!--Card-->\r\n <div class=\"mt-3\">\r\n <div class=\"form-group\">\r\n <div class=\"label-name\">\r\n {{ \"Generic_lib.UserName\" | translate }}\r\n </div>\r\n <div class=\"input-dropdown d-flex align-items-center\">\r\n <input\r\n type=\"text\"\r\n pInputText\r\n formControlName=\"text\"\r\n placeholder=\"{{ 'Generic_lib.UserName' | translate }}\"\r\n autocomplete=\"off\"\r\n />\r\n <img\r\n src=\".../../../../../assets/common-header-lib/images/images/user-name.svg\"\r\n alt=\"Icon\"\r\n class=\"position-absolute px-2\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <div class=\"label-name\">{{ \"Generic_lib.Email\" | translate }}</div>\r\n <div class=\"input-dropdown d-flex align-items-center\">\r\n <input\r\n type=\"text\"\r\n pInputText\r\n formControlName=\"text\"\r\n placeholder=\"{{ 'Generic_lib.EmailAddress' | translate }}\"\r\n autocomplete=\"off\"\r\n />\r\n <img\r\n src=\".../../../../../assets/common-header-lib/images/gc-mail.svg\"\r\n alt=\"Icon\"\r\n class=\"position-absolute px-2\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"mt-4\">\r\n <p-button class=\"submit-btn\" label=\"Submit\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Preference PathScreen -->\r\n <ng-container>\r\n <!-- <ng-container *ngIf=\"ShowPreferencePathScreen\"> -->\r\n <div class=\"col-lg-6\" [hidden]=\"!ShowPreferencePathScreen\">\r\n <div class=\"preference-container\">\r\n <div class=\"mt-3\">\r\n <form [formGroup]=\"appSettingForm\">\r\n <div class=\"form-group\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">\r\n {{ \"Generic_lib.AssetType\" | translate }}\r\n </div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div class=\"assets-dropdown\">\r\n <p-dropdown\r\n [options]=\"userAssetTypeList\"\r\n formControlName=\"AssetType\"\r\n placeholder=\"{{\r\n 'Generic_lib.AssetTypePlaceholder' | translate\r\n }}\"\r\n filterPlaceholder=\"{{ 'Generic_lib.Search' | translate }}\"\r\n (onChange)=\"preferencePathValueChange(AssetTypeEvent)\"\r\n optionLabel=\"assetType\"\r\n [filter]=\"!isAssetTypeLoading ? true : false\"\r\n filterBy=\"assetType\"\r\n [showClear]=\"false\"\r\n [resetFilterOnHide]=\"true\"\r\n panelStyleClass=\"{'dropdown-loader': isAssetTypeLoading}\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <div\r\n *ngIf=\"isAssetTypeLoading\"\r\n class=\"dropdown-loader-container\"\r\n >\r\n <i class=\"pi pi-spin pi-spinner\"></i>\r\n </div>\r\n </ng-template>\r\n </p-dropdown>\r\n </div>\r\n <ng-container\r\n *ngIf=\"\r\n appSettingForm.get('AssetType')?.invalid &&\r\n appSettingForm.get('AssetType')?.touched\r\n \"\r\n >\r\n <span class=\"error-msg mt-2\">{{\r\n \"Generic_lib.AssetTypeFieldValidation\" | translate\r\n }}</span>\r\n </ng-container>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">\r\n {{ \"Generic_lib.AssetName\" | translate }}\r\n </div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div class=\"assets-dropdown\">\r\n <p-dropdown\r\n [options]=\"userAssetNameList\"\r\n formControlName=\"AssetName\"\r\n placeholder=\"{{\r\n 'Generic_lib.AssetNamePlaceholder' | translate\r\n }}\"\r\n filterPlaceholder=\"{{ 'Generic_lib.Search' | translate }}\"\r\n optionLabel=\"assetName\"\r\n [filter]=\"!isAssetNameLoading ? true : false\"\r\n filterBy=\"assetType\"\r\n (onChange)=\"preferencePathValueChange(AssetNameEvent)\"\r\n filterBy=\"assetName\"\r\n panelStyleClass=\"{'dropdown-loader': isAssetNameLoading}\"\r\n [showClear]=\"false\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <div\r\n *ngIf=\"isAssetNameLoading\"\r\n class=\"dropdown-loader-container\"\r\n >\r\n <i class=\"pi pi-spin pi-spinner\"></i>\r\n </div>\r\n </ng-template>\r\n </p-dropdown>\r\n </div>\r\n <ng-container\r\n *ngIf=\"\r\n appSettingForm.get('AssetName')?.invalid &&\r\n appSettingForm.get('AssetName')?.touched\r\n \"\r\n >\r\n <span class=\"error-msg mt-2\">{{\r\n \"Generic_lib.AssetNameFieldValidation\" | translate\r\n }}</span>\r\n </ng-container>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">\r\n {{ \"Generic_lib.ConnectionMethod\" | translate }}\r\n </div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div class=\"assets-dropdown\">\r\n <p-dropdown\r\n [options]=\"userServiceList\"\r\n formControlName=\"ServiceName\"\r\n filterPlaceholder=\"{{ 'Generic_lib.Search' | translate }}\"\r\n placeholder=\"{{\r\n 'Generic_lib.ConnectionMethodPlaceholder' | translate\r\n }}\"\r\n optionLabel=\"tbvDescrption\"\r\n [filter]=\"true\"\r\n filterBy=\"tbvDescrption\"\r\n (onChange)=\"preferencePathValueChange(ConnectionMethodEvent)\"\r\n [filter]=\"!isConnectionMethodLoading ? true : false\"\r\n [showClear]=\"false\"\r\n panelStyleClass=\"{'dropdown-loader': isConnectionMethodLoading}\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <div\r\n *ngIf=\"isConnectionMethodLoading\"\r\n class=\"dropdown-loader-container\"\r\n >\r\n <i class=\"pi pi-spin pi-spinner\"></i>\r\n </div> </ng-template\r\n ></p-dropdown>\r\n </div>\r\n <ng-container\r\n *ngIf=\"\r\n appSettingForm.get('ServiceName')?.invalid &&\r\n appSettingForm.get('ServiceName')?.touched\r\n \"\r\n >\r\n <span class=\"error-msg mt-2\">{{\r\n \"Generic_lib.ConnectionMethodFieldValidation\" | translate\r\n }}</span>\r\n </ng-container>\r\n </div>\r\n <div class=\"form-group position-relative\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">\r\n {{ \"Generic_lib.PreferencePath\" | translate }}\r\n </div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div class=\"input-dropdown d-flex align-items-center\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"{{ 'Generic_lib.PreferencePath' | translate }}\"\r\n pInputText\r\n formControlName=\"filePathName\"\r\n id=\"filepath\"\r\n name=\"filepath\"\r\n autocomplete=\"off\"\r\n />\r\n <img\r\n src=\".../../../../../assets/common-header-lib/images/filepath.svg\"\r\n alt=\"path Icon\"\r\n class=\"position-absolute mx-2 img-lock ext\"\r\n />\r\n </div>\r\n <ng-container\r\n *ngIf=\"\r\n appSettingForm.get('filePathName')?.invalid &&\r\n (appSettingForm.get('filePathName')?.touched ||\r\n appSettingForm.get('filePathName')?.dirty)\r\n \"\r\n >\r\n <ng-container\r\n *ngIf=\"\r\n appSettingForm.controls['filePathName'].errors?.['required']\r\n \"\r\n >\r\n <span class=\"error-msg mt-2\">{{\r\n \"Generic_lib.PreferencePathFieldValidation\" | translate\r\n }}</span>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"\r\n appSettingForm.controls['filePathName'].errors?.['noSpace']\r\n \"\r\n >\r\n <span class=\"error-msg mt-2\">{{\r\n \"Generic_lib.PreferencePathFieldSpaceValidation\" | translate\r\n }}</span>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"showStatus\">\r\n <div class=\"form-group d-flex align-items-center\">\r\n <div class=\"label-name\">\r\n {{ \"Generic_lib.CurrentSetting\" | translate }} :\r\n </div>\r\n <div class=\"cur-text mx-2\">{{ filePathName }}</div>\r\n </div>\r\n <div class=\"form-group d-flex align-items-center\">\r\n <div class=\"label-name\">\r\n {{ \"Generic_lib.LastUpdated\" | translate }}\r\n </div>\r\n <div class=\"cur-text mx-2\">{{ lastUpdatedFileStatus }}</div>\r\n </div>\r\n </ng-container>\r\n <div class=\"mt-4\">\r\n <p-button\r\n class=\"submit-btn\"\r\n label=\"{{ 'Generic_lib.Update' | translate }}\"\r\n [disabled]=\"appSettingForm.invalid\"\r\n (onClick)=\"setUserPreferencePath(appSettingForm)\"\r\n iconPos=\"right\"\r\n [loading]=\"isPathUpdated\"\r\n ></p-button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- TimeZone Screen -->\r\n <ng-container *ngIf=\"ShowTimeZoneScreen\">\r\n <div class=\"col-lg-6\">\r\n <app-timezone-configuration></app-timezone-configuration>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- LandingPg Config Screen -->\r\n <ng-container *ngIf=\"ShowLandinPgScreen\">\r\n <div class=\"col-lg-6\">\r\n <app-landingpg-config></app-landingpg-config>\r\n </div>\r\n </ng-container>\r\n\r\n <!--Change Password Screen -->\r\n <!-- <ng-container *ngIf=\"ShowChangePasswordScreen\"> -->\r\n <ng-container>\r\n <div class=\"col-lg-6\" [hidden]=\"!ShowChangePasswordScreen\">\r\n <div class=\"preference-container\">\r\n <div class=\"mt-3\">\r\n <form [formGroup]=\"userResetPasswordForm\">\r\n <div class=\"form-group\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">\r\n {{ \"Generic_lib.CurrentPassword\" | translate }}\r\n </div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div\r\n class=\"input-dropdown d-flex align-items-center position-relative\"\r\n >\r\n <div class=\"password-checkbox-right\">\r\n <div class=\"checkbox-visibility-icon\">\r\n <input\r\n type=\"checkbox\"\r\n (click)=\"togglePasswordVisibility(1)\"\r\n autocomplete=\"off\"\r\n />\r\n <span></span>\r\n </div>\r\n </div>\r\n <input\r\n type=\"{{ makeOldPwdVisible ? 'password' : 'text' }}\"\r\n placeholder=\"{{\r\n 'Generic_lib.PasswordPlaceholder' | translate\r\n }}\"\r\n pInputText\r\n formControlName=\"oldUserARCXWD\"\r\n autocomplete=\"off\"\r\n id=\"oldpwd\"\r\n name=\"oldpwd\"\r\n autocomplete=\"off\"\r\n />\r\n\r\n <img\r\n src=\".../../../../../assets/common-header-lib/images/lock-pass.svg\"\r\n alt=\"lock Icon\"\r\n class=\"position-absolute mx-2 img-lock\"\r\n />\r\n </div>\r\n <ng-container\r\n *ngIf=\"\r\n userResetPasswordForm.get('oldUserARCXWD')?.invalid &&\r\n userResetPasswordForm.get('oldUserARCXWD')?.touched\r\n \"\r\n >\r\n <span class=\"error-msg mt-2\">{{\r\n \"Generic_lib.PasswordFieldValidation\" | translate\r\n }}</span>\r\n </ng-container>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">\r\n {{ \"Generic_lib.NewPassword\" | translate }}\r\n </div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div\r\n class=\"input-dropdown d-flex align-items-center position-relative\"\r\n >\r\n <div class=\"password-checkbox-right\">\r\n <div class=\"checkbox-visibility-icon\">\r\n <input\r\n type=\"checkbox\"\r\n (click)=\"togglePasswordVisibility(2)\"\r\n autocomplete=\"off\"\r\n />\r\n <span></span>\r\n </div>\r\n </div>\r\n <input\r\n type=\"{{ makeNewPwdVisible ? 'password' : 'text' }}\"\r\n placeholder=\"{{\r\n 'Generic_lib.NewPasswordPlaceholder' | translate\r\n }}\"\r\n pInputText\r\n formControlName=\"newUserARCXWD\"\r\n id=\"newpwd\"\r\n autocomplete=\"off\"\r\n name=\"newpwd\"\r\n autocomplete=\"off\"\r\n />\r\n\r\n <img\r\n src=\".../../../../../assets/common-header-lib/images/lock-pass.svg\"\r\n alt=\"lock Icon\"\r\n class=\"position-absolute mx-2 img-lock\"\r\n />\r\n </div>\r\n <ng-container\r\n *ngIf=\"\r\n userResetPasswordForm\r\n .get('newUserARCXWD')\r\n ?.hasError('required') &&\r\n userResetPasswordForm.get('newUserARCXWD')?.touched\r\n \"\r\n >\r\n <span class=\"error-msg mt-2\">{{\r\n \"Generic_lib.NewPasswordFieldValidation\" | translate\r\n }}</span>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"\r\n userResetPasswordForm\r\n .get('newUserARCXWD')\r\n ?.hasError('pwdInvalid') &&\r\n userResetPasswordForm.get('newUserARCXWD')?.touched\r\n \"\r\n >\r\n <span class=\"error-msg mt-2\">{{ pwderrorMsg }}</span>\r\n </ng-container>\r\n </div>\r\n <div class=\"form-group\">\r\n <div class=\"d-flex\">\r\n <div class=\"label-name\">\r\n {{ \"Generic_lib.ConfirmPassword\" | translate }}\r\n </div>\r\n <span class=\"madontary-icon\">*</span>\r\n </div>\r\n <div\r\n class=\"input-dropdown d-flex align-items-center position-relative\"\r\n >\r\n <div class=\"password-checkbox-right\">\r\n <div class=\"checkbox-visibility-icon\">\r\n <input\r\n type=\"checkbox\"\r\n (click)=\"togglePasswordVisibility(3)\"\r\n autocomplete=\"off\"\r\n />\r\n <span></span>\r\n </div>\r\n </div>\r\n <input\r\n type=\"{{ makeCnfrmPwdVisible ? 'password' : 'text' }}\"\r\n placeholder=\"{{\r\n 'Generic_lib.ConfirmPasswordPlaceholder' | translate\r\n }}\"\r\n pInputText\r\n formControlName=\"crnmNewUserARCXWD\"\r\n autocomplete=\"off\"\r\n id=\"crnmnewpwd\"\r\n name=\"crnmnewpwd\"\r\n />\r\n\r\n <img\r\n src=\".../../../../../assets/common-header-lib/images/lock-pass.svg\"\r\n alt=\"eye Icon\"\r\n class=\"position-absolute mx-2 img-lock\"\r\n />\r\n </div>\r\n <ng-container\r\n *ngIf=\"\r\n userResetPasswordForm\r\n .get('crnmNewUserARCXWD')\r\n ?.hasError('required') &&\r\n userResetPasswordForm.get('crnmNewUserARCXWD')?.touched\r\n \"\r\n >\r\n <span class=\"error-msg mt-2\">{{\r\n \"Generic_lib.ConfirmPasswordFieldValidation\" | translate\r\n }}</span>\r\n </ng-container>\r\n <span\r\n class=\"error-msg mt-2\"\r\n *ngIf=\"\r\n userResetPasswordForm\r\n .get('crnmNewUserARCXWD')\r\n ?.hasError('confirmedValidator')\r\n \"\r\n >\r\n {{\r\n \"Generic_lib.ConfirmPasswordFieldNewValidation\" | translate\r\n }}\r\n </span>\r\n </div>\r\n\r\n <div class=\"mt-4\">\r\n <p-button\r\n class=\"submit-btn\"\r\n label=\"{{ 'Generic_lib.Update' | translate }}\"\r\n iconPos=\"right\"\r\n [loading]=\"isPathUpdated\"\r\n label=\"Update\"\r\n (onClick)=\"resetLoggedInPwd()\"\r\n ></p-button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { COOKIECONSTANT, GlobalConstants } from '../../model/data_model';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { StorageService } from '../../services/storage.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@Component({\r\n selector: 'ng-translation',\r\n templateUrl: './ng-translation.component.html',\r\n styleUrls: ['./ng-translation.component.scss'],\r\n})\r\nexport class NgTranslationComponent implements OnInit {\r\n // @Output('langChange') langChange = new EventEmitter<any>();\r\n\r\n public languages = GlobalConstants.USERLANGUAGES;\r\n public selectedLang: any = {};\r\n\r\n constructor(\r\n public _translate: TranslateService,\r\n private readonly _localstorage: StorageService,\r\n private readonly cookieService: CookieService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n console.log('Init ng translate');\r\n this.setDefaultLanguage();\r\n }\r\n\r\n setDefaultLanguage() {\r\n // 1. Check if user has selected a language before\r\n const saved = this._localstorage.getData(COOKIECONSTANT.USERLANG);\r\n\r\n if (saved) {\r\n try {\r\n this.selectedLang = JSON.parse(saved);\r\n } catch (e) {\r\n // If corrupted JSON, fallback to default\r\n this.selectedLang = GlobalConstants.DEFAULTLANG;\r\n this.saveUserLanguage(this.selectedLang);\r\n }\r\n } else {\r\n // 2. First time → set default\r\n this.selectedLang = GlobalConstants.DEFAULTLANG;\r\n this.saveUserLanguage(this.selectedLang);\r\n }\r\n\r\n // 3. Apply language\r\n this._translate.use(this.selectedLang.langKey);\r\n }\r\n\r\n //* On Language Changes\r\n selectLang(event: any) {\r\n console.log('LangList:', this.languages);\r\n\r\n this.selectedLang = event?.value;\r\n console.log('selectLang:', this.selectedLang);\r\n this._translate.use(this.selectedLang['langKey']);\r\n this.saveUserLanguage(this.selectedLang);\r\n // this.langChange.emit(this.selectedLang);\r\n }\r\n\r\n saveUserLanguage(lang: any) {\r\n this._localstorage.saveData(COOKIECONSTANT.USERLANG, JSON.stringify(lang));\r\n }\r\n}\r\n","<p-dropdown [options]=\"languages\" optionLabel=\"langName\" placeholder='{{ \"Generic_lib.SelectLanguage\" | translate }}'\r\n (onChange)=\"selectLang($event)\" [filter]=\"true\" filterBy=\"langName\"\r\n filterPlaceholder='{{ \"Generic_lib.Search\" | translate }}' [showClear]=\"false\"\r\n [(ngModel)]=\"selectedLang\"></p-dropdown>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'sliceToTwo',\r\n})\r\nexport class SliceToTwoPipe implements PipeTransform {\r\n transform(textName: string): any {\r\n if (textName === null || textName === '') {\r\n return 'NA';\r\n }\r\n textName = textName?.trim();\r\n let result: string = '';\r\n if (textName && textName.includes(' ')) {\r\n let splitStringArr = textName.split(' ');\r\n result =\r\n splitStringArr[0][0] + splitStringArr[splitStringArr.length - 1][0];\r\n } else if (textName && textName.includes('_')) {\r\n let splitStringArr = textName.split('_');\r\n result =\r\n splitStringArr[0][0] + splitStringArr[splitStringArr.length - 1][0];\r\n } else {\r\n result = textName[0] + textName[1];\r\n }\r\n return result.toLocaleUpperCase();\r\n }\r\n}\r\n","import { Router } from '@angular/router';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CookieStorageManagerService } from '../../services/cookie-storage-manager.service';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { ToastMsgService } from '../../services/toast-msg.service';\r\nimport { GlobalConstants, RoutePaths, errorMsg } from '../../model/data_model';\r\nimport { CommonHeaderLibService } from '../../common-header-lib.service';\r\nimport { GeneralConfigurationComponent } from '../general-configuration/general-configuration.component';\r\nimport { StorageService } from '../../services/storage.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HttpCommonService } from '../../services/http/http-common.service';\r\n\r\n@Component({\r\n selector: 'app-user-sidebar',\r\n templateUrl: './user-sidebar.component.html',\r\n styleUrls: ['./user-sidebar.component.scss'],\r\n providers: [DialogService],\r\n})\r\nexport class UserSidebarComponent implements OnInit, OnDestroy {\r\n // @Input() apiURL: string = '';\r\n // @Output('langChange') langChange = new EventEmitter<any>();\r\n\r\n public userDetails: any = {};\r\n public showProfile: boolean = false;\r\n public userdisplayName: string = '';\r\n public userFirstName: string = '';\r\n public userLastName: string = '';\r\n public userLastLoggedIn: string = '';\r\n // private LoggedInUserID: string = '';\r\n private unsubscribeAPIEventListenerData: Subject<Boolean> =\r\n new Subject<Boolean>();\r\n @Output() closeDialogBox = new EventEmitter<boolean>();\r\n private ref: DynamicDialogRef | undefined;\r\n // public userSessionID: string = '';\r\n public sec: number = 1;\r\n public min: number = 2;\r\n public Hr: number = 30;\r\n isOpenSidePopup: boolean = false;\r\n showUserDetails: boolean = false;\r\n constructor(\r\n private readonly dialogService: DialogService,\r\n private readonly _cookieService: CookieStorageManagerService,\r\n private readonly route: Router,\r\n private readonly msgService: ToastMsgService,\r\n private readonly _localStorage: StorageService,\r\n private readonly libService: CommonHeaderLibService,\r\n private translateService: TranslateService,\r\n private httpCommonService: HttpCommonService,\r\n ) {\r\n // private themeService: ThemeService,\r\n // private fontService: FontService,\r\n // private cookieService: CookieService,\r\n // this.fetchedSavedData();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getLoggedInuserDteils();\r\n }\r\n\r\n //Method: Open User Setting Panel\r\n openUserSettingPanel() {\r\n this.ref = this.dialogService.open(GeneralConfigurationComponent, {\r\n header: this.translateService.instant('Generic_lib.GeneralConfiguration'),\r\n styleClass: 'general-configuration',\r\n // data: {\r\n // apiURL: this.apiURL,\r\n // },\r\n });\r\n }\r\n\r\n getLoggedInuserDteils() {\r\n this.httpCommonService\r\n .getLoggedInUserDetails()\r\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\r\n .subscribe((result) => {\r\n if (result && result['success'] && result['result']) {\r\n console.log('UserDetails: ', this.userDetails);\r\n this.userDetails = result['result'];\r\n this.userdisplayName = this.userDetails['userDisplayName'];\r\n this.showProfile = true;\r\n this.getTotalSessionTime();\r\n this.setLoggedInUserName(this.userdisplayName);\r\n } else {\r\n this.showProfile = false;\r\n this.userDetails = {};\r\n }\r\n });\r\n }\r\n\r\n setLoggedInUserName(userdisplayName: string) {\r\n if (userdisplayName && userdisplayName.includes(' ')) {\r\n let splitStringArr = userdisplayName.split(' ');\r\n this.userFirstName = splitStringArr[0];\r\n this.userLastName = splitStringArr[1];\r\n } else {\r\n this.userdisplayName = userdisplayName;\r\n }\r\n }\r\n\r\n getcloseDialogBox() {\r\n this.closeDialogBox.emit(true);\r\n }\r\n\r\n getUserLoggedInTime() {\r\n let LastLoggedIn = this.convertUTCToLocal(this.userDetails['lastLogIn']);\r\n let LastLoggedInDate = new Date(LastLoggedIn);\r\n this.userLastLoggedIn = LastLoggedInDate.toLocaleString();\r\n }\r\n\r\n public logoutCurrentUser() {\r\n this.libService\r\n .getInitiateUserLogout()\r\n .pipe()\r\n .subscribe((res: any) => {\r\n if (res) {\r\n this._cookieService.clearAllCookies();\r\n this._localStorage.clearData();\r\n if (res && res['spLogoutUrls'] && res['spLogoutUrls'].length > 0) {\r\n this.destoryAllSessions(res['spLogoutUrls']);\r\n }\r\n\r\n if (res?.['identity']) {\r\n this.userWithWindowAuthentication();\r\n } else {\r\n const path = '/' + RoutePaths.LOGINPG_PATH;\r\n const urlnew = new URL(window.location.href).origin + '/#' + path;\r\n window.location.href = urlnew;\r\n }\r\n } else {\r\n this.msgService.error(errorMsg.LOGOUTERROR);\r\n // window.location.href = new URL(window.location.href).origin + '/#/login';\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * This function destroys all user sessions by opening multiple SAML logout URLs in new browser tabs.\r\n */\r\n private destoryAllSessions(samlUrls: string[]): void {\r\n samlUrls.forEach((url) => {\r\n // let enCodedURL = encodeURI(url);\r\n console.log('URL: ', url);\r\n window.open(url, '_blank');\r\n });\r\n }\r\n\r\n private userWithWindowAuthentication() {\r\n const path = '/' + RoutePaths.LOGOUT_PATH;\r\n this.route.navigateByUrl(path);\r\n }\r\n\r\n getTotalSessionTime() {\r\n // let LastLogin = this.userDetails['lastLogIn'];\r\n // LastLogin = LastLogin.toLocaleString();\r\n\r\n // let dateParts = this.userDetails['currentLogIn'].split(' ')[0].split('/');\r\n // let timeParts = this.userDetails['currentLogIn'].split(' ')[1].split(':');\r\n // let loginTime = new Date(\r\n // dateParts[2],\r\n // dateParts[1] - 1,\r\n // dateParts[0],\r\n // timeParts[0],\r\n // timeParts[1]\r\n // );\r\n // loginTime = new Date(loginTime).toLocaleString();\r\n // Convert local time to UTC\r\n // currentTime = new Date(\r\n // currentTime.getTime() + currentTime.getTimezoneOffset() * 60000\r\n // );\r\n\r\n let loginTime = this.convertUTCToLocal(this.userDetails['currentLogIn']);\r\n // console.log('loginTime: ', loginTime);\r\n\r\n let loginTimeDate = new Date(loginTime);\r\n\r\n let currentTime = new Date();\r\n // console.log('Login Time Date: ', loginTimeDate);\r\n // console.log('Current Time: ', currentTime);\r\n\r\n let milliseconds = currentTime.valueOf() - loginTimeDate.valueOf();\r\n let seconds = Math.floor(milliseconds / 1000);\r\n let minutes = Math.floor(seconds / 60);\r\n let hours = Math.floor(minutes / 60);\r\n\r\n seconds = seconds % 60;\r\n minutes = minutes % 60;\r\n this.Hr = hours;\r\n this.min = minutes;\r\n this.sec = seconds;\r\n // console.log('Session Total', this.Hr, this.min, this.sec);\r\n setInterval(() => {\r\n this.updateTimer();\r\n }, 1000);\r\n }\r\n\r\n updateTimer() {\r\n if (this.sec < 59) {\r\n this.sec += 1;\r\n } else {\r\n this.sec = 0;\r\n if (this.min < 59) {\r\n this.min += 1;\r\n } else {\r\n this.min = 0;\r\n this.Hr += 1;\r\n }\r\n }\r\n }\r\n\r\n convertUTCToLocal(newdate: string): string {\r\n let localDate: string = newdate + 'Z';\r\n localDate = localDate.toLocaleString();\r\n // console.log('LOcal: ', localDate);\r\n\r\n return localDate;\r\n }\r\n\r\n OpenArconLearningCenter() {\r\n const url: string = GlobalConstants.PlugInDownloadURL;\r\n console.log(url);\r\n window.open(url, '_blank');\r\n }\r\n\r\n //close Popup\r\n closeUserSettingPanel() {\r\n if (this.ref) {\r\n this.ref.close();\r\n }\r\n }\r\n\r\n // languageChange(event: any) {\r\n // if (!event) return;\r\n // // this.langChange.emit(event);\r\n // }\r\n\r\n //*Global Font and Theme\r\n getRedTheme() {\r\n // const active = this.themeService.getActiveTheme();\r\n // if (\r\n // active.name === \"blue\" ||\r\n // active.name === \"black\" ||\r\n // active.name === \"red\"\r\n // ) {\r\n // this.themeService.setTheme(\"red\");\r\n // this.cookieService.set(\"themeColor\", \"red\");\r\n // }\r\n }\r\n getBlackTheme() {\r\n // const active = this.themeService.getActiveTheme();\r\n // if (\r\n // active.name === \"blue\" ||\r\n // active.name === \"black\" ||\r\n // active.name === \"red\"\r\n // ) {\r\n // this.themeService.setTheme(\"blue\");\r\n // this.cookieService.set(\"themeColor\", \"blue\");\r\n // }\r\n }\r\n getBlueTheme() {\r\n // const active = this.themeService.getActiveTheme();\r\n // if (\r\n // active.name === \"blue\" ||\r\n // active.name === \"black\" ||\r\n // active.name === \"red\"\r\n // ) {\r\n // this.themeService.setTheme(\"black\");\r\n // this.cookieService.set(\"themeColor\", \"black\");\r\n // }\r\n }\r\n\r\n // Accessibility Fonts sizes\r\n getSmallFont() {\r\n // this.fontService.setFont(\"smFont\");\r\n }\r\n\r\n getMediumFont() {\r\n // this.fontService.setFont(\"mdFont\");\r\n }\r\n\r\n getLargeFont() {\r\n // this.fontService.setFont(\"lgFont\");\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.closeUserSettingPanel();\r\n this.unsubscribeAPIEventListenerData.next(true);\r\n this.unsubscribeAPIEventListenerData.complete();\r\n }\r\n}\r\n","<div class=\"white-bg\">\r\n <div class=\" sidebar-outer white-bg\">\r\n <div class=\"sidebar-header grey-background\">\r\n <div class=\"sh-top\">\r\n <div class=\"sh-top-left d-flex\">\r\n <img src=\"assets/common-header-lib/images/logout.svg\" class=\"imgs\" alt=\"user\">\r\n <div class=\"mx-2 log-text\" (click)=\"logoutCurrentUser()\">{{\"Generic_lib.Logout\" | translate}}</div>\r\n </div>\r\n <div class=\"sh-top-right\">\r\n <button type=\"button\" class=\"common-bn tertiary-btn\">\r\n <img src=\"assets/common-header-lib/images/close.svg\" class=\"imgs\" alt=\"close icon\" title=\"Close\"\r\n (click)=\"getcloseDialogBox()\">\r\n </button>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"showProfile; else LoadingAnimation\">\r\n <div class=\"sh-bottom d-flex pt-3\">\r\n <ng-container *ngIf=\"userdisplayName && userdisplayName.length > 0; else defaultName\">\r\n <div class=\"initial-text\">\r\n {{ userdisplayName | sliceToTwo }}\r\n </div>\r\n </ng-container>\r\n <ng-template #defaultName>\r\n <div class=\"initial-text\">\r\n {{ 'NA' }}\r\n </div>\r\n </ng-template>\r\n <div class=\"sh-bottom-content\">\r\n <h4 class=\"title\">{{ userDetails['userDisplayName']}}</h4>\r\n <p>{{ userDetails['emailID']}}</p>\r\n <div class=\"sh-bottom-content-ls\">\r\n <ng-container\r\n *ngIf=\"userDetails['lastLogIn'] && !userDetails['lastLogIn'].includes('NA'); else InvalidDate\">\r\n <p style=\"margin-right: 5px;\">{{\"Generic_lib.LastSession\" | translate}} : </p>\r\n <p>{{userDetails['lastLogIn']}}</p>\r\n </ng-container>\r\n <ng-template #InvalidDate>\r\n <p style=\"margin-right: 5px;\">{{\"Generic_lib.LastSession\" | translate}} : </p>\r\n <p>NA</p>\r\n </ng-template>\r\n </div>\r\n <div class=\"sh-bottom-content-ls session-content\">\r\n <p tyle=\"margin-right: 5px;\">{{\"Generic_lib.CurrentSession\" | translate}} : </p>\r\n <p>{{Hr}} {{\"Generic_lib.hrs\" | translate}} {{min}} {{\"Generic_lib.min\" | translate}} {{sec}}\r\n {{\"Generic_lib.secs\" | translate}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-template #LoadingAnimation>\r\n <div class=\"loading-skeleton d-flex p-3\">\r\n <p-skeleton shape=\"circle\" size=\"4rem\" styleClass=\"mr-2\"></p-skeleton>\r\n <div class=\"ms-1\">\r\n <p-skeleton width=\"10rem\" styleClass=\"mb-2\"></p-skeleton>\r\n <p-skeleton width=\"8rem\" height=\".7rem\" styleClass=\"mb-2\"></p-skeleton>\r\n <p-skeleton width=\"5rem\" styleClass=\"mb-2\"></p-skeleton>\r\n <p-skeleton height=\".5rem\"></p-skeleton>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"sidebar-body\">\r\n <div class=\"sb-list pb-20px\">\r\n <ul>\r\n <li class=\"grey-bg-hover\">\r\n <img src=\"assets/common-header-lib/images/domain_img.svg\" loading=\"lazy\">\r\n <div class=\"mx-2 lang-dropdown\">\r\n <ng-translation></ng-translation> <!-- (langChange)=\"languageChange($event)\" -->\r\n </div>\r\n </li>\r\n <li class=\"grey-bg-hover\" (click)=\"OpenArconLearningCenter()\">\r\n <img src=\"assets/common-header-lib/images/local.svg\" class=\"imgs\" alt=\"Arcon\">\r\n <p class=\"mx-2\">{{\"Generic_lib.ArconLearningCenter\" | translate}}</p>\r\n </li>\r\n\r\n <li class=\"grey-bg-hover\">\r\n <img src=\"assets/common-header-lib/images/settings.svg\" alt=\"settings\">\r\n <p class=\"mx-2\" (click)=\"openUserSettingPanel()\">{{\"Generic_lib.GeneralConfiguration\" | translate}}</p>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Global Font and Theme -->\r\n <!-- <div class=\"accessibility-container d-flex justify-content-between\">\r\n <div class=\"d-flex\">\r\n <button class=\"btn btn-light btn-small rounded-circle\" (click)=\"getSmallFont()\">\r\n <span>A-</span>\r\n </button>\r\n <button class=\"btn btn-light btn-small rounded-circle\" (click)=\"getMediumFont()\">\r\n <span>A</span>\r\n </button>\r\n <button class=\"btn btn-light btn-small rounded-circle\" (click)=\"getLargeFont()\">\r\n <span>A+</span>\r\n </button>\r\n </div>\r\n <div class=\"d-flex\">\r\n <button class=\"btn btn-light btn-small rounded-circle\" (click)=\"getRedTheme()\">\r\n <span class=\"theme theme-red\"></span>\r\n </button>\r\n <button class=\"btn btn-light btn-small rounded-circle\" (click)=\"getBlackTheme()\">\r\n <span class=\"theme theme-black\"></span>\r\n </button>\r\n <button class=\"btn btn-light btn-small rounded-circle\" (click)=\"getBlueTheme()\">\r\n <span class=\"theme theme-blue\"></span>\r\n </button>\r\n </div>\r\n </div> -->\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n// import { ModalService } from '../../Services/modal.service';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-side-popup',\r\n templateUrl: './side-popup.component.html',\r\n styleUrls: ['./side-popup.component.scss'],\r\n})\r\nexport class SidePopupComponent {\r\n data: any;\r\n @Output() closeDialogBox = new EventEmitter<boolean>();\r\n @Input() visible: boolean = false;\r\n @Input() position: string = 'right';\r\n @Input() header: string = 'Details';\r\n\r\n constructor() {}\r\n\r\n //Method: Close the Side Panel\r\n getcloseDialogBox() {\r\n this.visible = false;\r\n this.closeDialogBox.emit(true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.visible = false;\r\n }\r\n}\r\n","<p-dialog [header]=\"header\" (onHide)=\"getcloseDialogBox()\" [modal]=\"true\" [draggable]=\"false\" [(visible)]=\"visible\"\r\n [position]=\"position\" [style]=\"{\r\n width: '40vw',\r\n minHeight: '100vh',\r\n right: '-15px',\r\n position: 'absolute'\r\n }\">\r\n <!-- Dynamically Change the Content of Sidebar -->\r\n <ng-content></ng-content>\r\n</p-dialog>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dateDiff',\r\n})\r\nexport class DateDiffPipe implements PipeTransform {\r\n constructor() {} // Inject service\r\n\r\n transform(date: string): string {\r\n if (date != null) {\r\n const localDate = this.convertUTCToLocal(date);\r\n let date2 = new Date(localDate);\r\n let date1 = new Date();\r\n\r\n if (date2 > date1) {\r\n // Calculate the absolute difference in milliseconds between the two dates\r\n const diffTime = Math.abs(date2.getTime() - date1.getTime());\r\n // Calculate the number of days\r\n const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24));\r\n // Calculate the remaining time after removing the days\r\n const remainingTime = diffTime % (1000 * 60 * 60 * 24);\r\n // Calculate the number of hours\r\n const diffHours = Math.floor(remainingTime / (1000 * 60 * 60));\r\n // Calculate the remaining time after removing the hours\r\n const remainingMinutes = remainingTime % (1000 * 60 * 60);\r\n // Calculate the number of minutes\r\n const diffMinutes = Math.floor(remainingMinutes / (1000 * 60));\r\n\r\n let result = '';\r\n if (diffDays > 0) {\r\n result += `${diffDays} days `;\r\n }\r\n if (diffHours > 0) {\r\n result += `${diffHours} hours `;\r\n }\r\n if (diffMinutes > 0) {\r\n result += `${diffMinutes} minutes`;\r\n }\r\n return result.trim();\r\n } else {\r\n return '00:00:00';\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n private convertUTCToLocal(newdate: string): string {\r\n let localDate: string = newdate + 'Z';\r\n localDate = localDate.toLocaleString();\r\n // console.log('LOcal: ', localDate);\r\n return localDate;\r\n }\r\n}\r\n","import { HttpCommonService } from './../../services/http/http-common.service';\r\nimport { Component, OnInit, OnDestroy, AfterViewInit } from '@angular/core';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { finalize, Subject, takeUntil } from 'rxjs';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { EventService } from '../../services/event.service';\r\nimport { ToastMsgService } from '../../services/toast-msg.service';\r\n\r\n@Component({\r\n selector: 'app-viewpassword-popup',\r\n templateUrl: './viewpassword-popup.component.html',\r\n styleUrls: ['./viewpassword-popup.component.scss'],\r\n})\r\nexport class ViewpasswordPopupComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n public mailDetails: any;\r\n protected servicePassword: string = 'Password';\r\n public showVaultBtn: boolean = false;\r\n public isContentLoaded: boolean = false;\r\n public isValueUpdated: boolean = false;\r\n public OpenTillDate: string = '';\r\n private unsubscribeAPIEventListenerData: Subject<boolean> =\r\n new Subject<boolean>();\r\n private totalEmails: string = '';\r\n private SSHFileType: string = '';\r\n private SSHFileName: string = '';\r\n public isSSHKey: boolean = false;\r\n public isPasswordVisible = true;\r\n private PasswordViewSuccessMsg: string = '';\r\n private SSHPasswordViewSuccessMsg: string = '';\r\n private SSHPasswordViewErrorMsg: string = '';\r\n private sshKeyForDownload: string = '';\r\n constructor(\r\n public dialogService: DynamicDialogConfig,\r\n // private readonly _RESTService: RESTMyaccessService,\r\n private readonly msgService: ToastMsgService,\r\n private readonly _eventService: EventService,\r\n private readonly translateService: TranslateService,\r\n private httpCommonService: HttpCommonService,\r\n ) {\r\n this.getSelectedGridData(dialogService.data); //Getting Data from popup\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.getTranslateContent();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAccessServicePassword();\r\n // this.getCurrentEmailsCount()\r\n }\r\n\r\n private getSelectedGridData(gridData: any) {\r\n if (gridData && gridData['payload']) {\r\n this.mailDetails = gridData['payload'];\r\n this.SSHFileType = gridData['SSHfileType'];\r\n this.showVaultBtn = gridData['btnStatus'];\r\n this.OpenTillDate = this.mailDetails['spv_Opentildate'];\r\n this.isSSHKey = this.mailDetails['sshkey_isenabled'];\r\n }\r\n }\r\n\r\n //Method: Convert text one Lang. to another\r\n private getTranslateContent() {\r\n this.translateService\r\n .get([\r\n 'MyAccess.PasswordViewSuccessMsg',\r\n 'MyAccess.SSHPasswordViewSuccessMsg',\r\n 'MyAccess.SSHPasswordViewErrorMsg',\r\n ])\r\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\r\n .subscribe((trans) => {\r\n this.PasswordViewSuccessMsg = trans['MyAccess.PasswordViewSuccessMsg'];\r\n this.SSHPasswordViewSuccessMsg =\r\n trans['MyAccess.SSHPasswordViewSuccessMsg'];\r\n this.SSHPasswordViewErrorMsg =\r\n trans['MyAccess.SSHPasswordViewErrorMsg'];\r\n });\r\n }\r\n\r\n //Method: Grants access to the View password for a service\r\n getAccessServicePassword() {\r\n this.isContentLoaded = false;\r\n let mailDetails = {\r\n mailid: String(this.mailDetails['smi_SpvId']),\r\n // userid: this.userId,\r\n // userSessionID: this.userSessionId,\r\n };\r\n this.httpCommonService\r\n .getAccessToViewServicePassword(mailDetails)\r\n .pipe(\r\n takeUntil(this.unsubscribeAPIEventListenerData),\r\n finalize(() => {\r\n this.isContentLoaded = true;\r\n }),\r\n )\r\n .subscribe((result) => {\r\n this.servicePassword = result?.sshKeyPassPhrase;\r\n this.SSHFileName = result?.sshFileName;\r\n this.sshKeyForDownload = result?.sshKey;\r\n this.getCurrentEmailsCount();\r\n });\r\n }\r\n\r\n //Method: Hide password of a service\r\n getHideServicePassword() {\r\n this.isValueUpdated = true;\r\n let mailDetails = {\r\n spvId: String(this.mailDetails['smi_SpvId']),\r\n // userId: this.userId,\r\n };\r\n this.httpCommonService\r\n .getProtectedServiceCredentials(mailDetails)\r\n .pipe(\r\n takeUntil(this.unsubscribeAPIEventListenerData),\r\n finalize(() => {\r\n this.isValueUpdated = false;\r\n }),\r\n )\r\n .subscribe((result: boolean) => {\r\n if (result) {\r\n this._eventService.emitUserEmail({\r\n component: 'view-pwd',\r\n refreshGrid: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n /*Method : GET\r\n Action : Fetch User Mails Count */\r\n private getCurrentEmailsCount() {\r\n this.httpCommonService\r\n .getUnreadUserEmailsCount()\r\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\r\n .subscribe((count: number) => {\r\n if (count <= 0) {\r\n this.totalEmails = '';\r\n } else if (count > 99) {\r\n this.totalEmails = '99+';\r\n } else {\r\n this.totalEmails = String(count);\r\n }\r\n this.updateMailCount();\r\n });\r\n }\r\n\r\n public getGenerateFile() {\r\n this.generateSSHKeyFile();\r\n this.getHideServicePassword();\r\n }\r\n\r\n private generateSSHKeyFile(): void {\r\n try {\r\n const blob = new Blob([this.sshKeyForDownload], { type: '' });\r\n const url = window.URL.createObjectURL(blob);\r\n\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = `${this.SSHFileName}.${this.SSHFileType}`;\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n\r\n window.URL.revokeObjectURL(url);\r\n this.msgService.success(this.SSHPasswordViewSuccessMsg);\r\n } catch (error) {\r\n console.error('Error generating SSH key file:', error);\r\n this.msgService.error(this.SSHPasswordViewErrorMsg);\r\n }\r\n }\r\n\r\n private updateMailCount() {\r\n this._eventService.emitUserEmail({\r\n component: 'email-count',\r\n mailCount: this.totalEmails,\r\n });\r\n }\r\n\r\n copyToClipboard(text: string): void {\r\n navigator.clipboard\r\n .writeText(text)\r\n .then(() => {\r\n this.msgService.success(this.PasswordViewSuccessMsg);\r\n })\r\n .catch((error) => {\r\n console.error('Error copying text to clipboard: ', error);\r\n });\r\n }\r\n\r\n togglePasswordVisibility() {\r\n this.isPasswordVisible = !this.isPasswordVisible;\r\n }\r\n\r\n showPassword() {\r\n if (this.isSSHKey && !this.servicePassword) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // Unsubscribing All the Observer\r\n this.unsubscribeAPIEventListenerData.next(true);\r\n this.unsubscribeAPIEventListenerData.complete();\r\n }\r\n}\r\n","<div class=\"view-pass-detail\">\r\n <!-- <div class=\"title\">{{\"Generic.Password\" | translate}}</div> -->\r\n <div class=\"mt-4 position-relative px-4\">\r\n <ng-container *ngIf=\"isContentLoaded; else LoadingAnimation\">\r\n\r\n <ng-container *ngIf=\"isSSHKey\">\r\n <div class=\"title\">{{ mailDetails['smi_MailSubject']}}</div>\r\n <p class=\"note-text mt-2\">{{'Generic_lib.DownloadSSHNote' | translate}}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"showPassword()\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"password-checkbox-right\">\r\n <div class=\"checkbox-visibility-icon\">\r\n <input type=\"checkbox\" (click)=\"togglePasswordVisibility()\" />\r\n <span></span>\r\n </div>\r\n </div>\r\n <input class=\"form-control view-pass\" [ngClass]=\"isSSHKey === true ? 'ssh' : ''\" readonly\r\n type=\"{{ isPasswordVisible ? 'password' : 'text' }}\" [value]=\"servicePassword\" placeholder=\"\"\r\n autocomplete=\"off\" />\r\n <button (click)=\"copyToClipboard(servicePassword)\" type=\"button\"\r\n class=\"btn btn-primary d-flex align-items-center copy-btn\" title=\"Copy To Clipboard\">\r\n <img src=\"../assets/common-header-lib/images/copy-img.svg\" alt=\"copy Icon\" class=\"mx-2\">{{\"Generic_lib.Copy\"\r\n | translate}}</button>\r\n <img *ngIf=\"!isSSHKey\" src=\"../assets/common-header-lib/images/pass-img.svg\" alt=\"Icon\"\r\n class=\"position-absolute mx-2\">\r\n <p *ngIf=\"isSSHKey\" class=\"position-absolute mx-2\">{{'Generic_lib.KeyPassphrase' | translate}}: </p>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <!-- LODDER -->\r\n <ng-template #LoadingAnimation>\r\n <div class=\"row w-100\">\r\n <div class=\"col-12 \">\r\n <p-skeleton height=\"1.5rem\" styleClass=\"mb-2\"></p-skeleton>\r\n </div>\r\n <div class=\"col-12 \">\r\n <p-skeleton height=\"1.5rem\" styleClass=\"mb-2\"></p-skeleton>\r\n </div>\r\n <div class=\"col-12 \">\r\n <p-skeleton height=\"1.5rem\" width=\"30%\" styleClass=\"float-end mb-2\"></p-skeleton>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <!-- /LODDER -->\r\n\r\n <!-- MAIN-CONTENT -->\r\n <ng-container *ngIf=\"isContentLoaded\">\r\n <div class=\"d-flex mt-2 my-4 gap-1 px-4\">\r\n <div class=\"label-text\">{{\"Generic_lib.RemainingTime\" | translate}} : </div>\r\n <div class=\"time-text\">{{OpenTillDate | dateDiff}}</div>\r\n </div>\r\n\r\n <!-- <ng-container *ngIf=\"showVaultBtn\"> -->\r\n <!-- ! AMIT: Check showVaultBtn condition -->\r\n <ng-container *ngIf=\"true\">\r\n <div class=\"border-bottom\"></div>\r\n <div class=\"d-flex mt-4 justify-content-end gap-1 ms-auto px-4 mb-2\">\r\n <ng-container *ngIf=\"isSSHKey; else downloadbtn\">\r\n <p-button type=\"button\" label=\"{{'Generic_lib.DownloadKey' | translate}}\" [iconPos]=\"'right'\"\r\n [loading]=\"isValueUpdated\" class=\"submit-btn view-btn\" (click)=\"getGenerateFile()\"></p-button>\r\n </ng-container>\r\n <ng-template #downloadbtn>\r\n <p-button type=\"button\" label=\"{{'Generic_lib.VaultCredentials' | translate}}\" [iconPos]=\"'right'\"\r\n [loading]=\"isValueUpdated\" class=\"submit-btn view-btn\" (click)=\"getHideServicePassword()\"></p-button>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <!-- /MAIN-CONTENT -->\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-no-service-my-access-pg',\r\n templateUrl: './no-service-my-access-pg.component.html',\r\n styleUrls: ['./no-service-my-access-pg.component.scss'],\r\n})\r\nexport class NoServiceMyAccessPgComponent {\r\n @Input() heading: string =\r\n \"We couldn't find any service matching your search within the chosen LOB. Try refining your keywords or choosing a different LOB for better results\"; //'Generic_lib.NoSearchResult';\r\n @Input() subHeading: string = '';\r\n\r\n constructor() {}\r\n}\r\n","<div class=\"no-service-content mt-5\">\r\n <div class=\"text-center\">\r\n <img src=\"assets/common-header-lib/images/Frame.svg\" class=\"frame-img w-75\" alt=\"Icon\">\r\n </div>\r\n <div class=\"no-service-description\">\r\n <!-- <div class=\"no-data-text\">{{heading | translate}}</div> -->\r\n <div class=\"no-data-text\">{{heading }}</div>\r\n <p>{{subHeading}}</p>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { GlobalConstants } from '../../model/data_model';\r\ninterface PageEvent {\r\n first: number;\r\n rows: number;\r\n page: number;\r\n pageCount: number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-grid-pagination',\r\n templateUrl: './grid-pagination.component.html',\r\n styleUrls: ['./grid-pagination.component.scss'],\r\n})\r\nexport class GridPaginationComponent{\r\n first: number = 0;\r\n @Input() currentPgNo: number = 0;\r\n @Input() rows: number = GlobalConstants.PAGEROW;\r\n @Input() totalRecords: number=0;\r\n @Output() onPgChange = new EventEmitter<{}>();\r\n\r\n constructor() { }\r\n\r\n onPageChange(event: PageEvent) {\r\n console.log(\"pagechange event\", event)\r\n event['page'] = event['page'] + 1; // By default pg index 0 so add +1\r\n this.currentPgNo = event.page;\r\n this.rows = event.rows;\r\n //Emit Page No and PageRow Size\r\n this.onPgChange.emit({\r\n currentPgNo: this.currentPgNo,\r\n perPgRows: this.rows,\r\n });\r\n }\r\n}\r\n","<p-paginator (onPageChange)=\"onPageChange($event)\" [first]=\"first\" [rows]=\"rows\" [totalRecords]=\"totalRecords\"\r\n [showFirstLastIcon]=\"true\" [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{first} - {last} of {totalRecords}\" [rowsPerPageOptions]=\"[10, 50, 100]\"></p-paginator>\r\n","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'customDateFormat',\r\n})\r\nexport class customDateFormatPipe implements PipeTransform {\r\n private datePipe = new DatePipe('en-US');\r\n\r\n transform(value: any): string {\r\n if (!value) {\r\n return 'Not Applicable';\r\n }\r\n\r\n const parsedDate = new Date(value);\r\n\r\n if (isNaN(parsedDate.getTime())) {\r\n return 'Invalid Date';\r\n }\r\n\r\n return this.datePipe.transform(parsedDate, 'dd-MMM-yyyy HH:mm:ss')!;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { finalize, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n// import { RESTLoginFormService } from 'src/app/shared/Services/REST-Services/rest-login-form.service';\r\n// import { RESTMyaccessService } from 'src/app/shared/Services/REST-Services/rest-myaccess.service';\r\n// import { EventService } from 'src/app/shared/Services/event.service';\r\nimport { errorMsg } from '../../model/data_model';\r\nimport { CommonHeaderLibService } from '../../common-header-lib.service';\r\nimport { HttpCommonService } from '../../services/http/http-common.service';\r\nimport { ViewpasswordPopupComponent } from '../viewpassword-popup/viewpassword-popup.component';\r\nimport { EventService } from '../../services/event.service';\r\n\r\n@Component({\r\n selector: 'app-user-mailbox',\r\n templateUrl: './user-mailbox.component.html',\r\n styleUrls: ['./user-mailbox.component.scss'],\r\n providers: [DialogService],\r\n})\r\nexport class UserMailboxComponent implements OnInit {\r\n @Output() closeMailDialogBox: any = new EventEmitter<void>();\r\n public ListOfUserAssingedMails = [];\r\n // private userId: string;\r\n private unsubscribeAPIEventListenerData: Subject<boolean> =\r\n new Subject<boolean>();\r\n private ref: DynamicDialogRef | undefined;\r\n public showVaultBtn: boolean = false;\r\n public SSHFileName: 'ppk' | 'pem' = 'ppk';\r\n public hasUserAssignedMails: boolean = true;\r\n //Pagintion\r\n private currentPgNo: number = 1;\r\n private perPgRows: number = 10;\r\n public totalCount: number = 0;\r\n public NoServiceMsgText: string = '';\r\n public isContentLoaded: boolean = false;\r\n public repeatLoader = Array.from({ length: this.perPgRows }).map(\r\n (_, i) => `Item #${i}`,\r\n );\r\n @Input() apiURL: string = '';\r\n constructor(\r\n private readonly dialogService: DialogService,\r\n // private readonly _restMyaccessService: RESTMyaccessService,\r\n // private readonly loginService: RESTLoginFormService,\r\n private readonly _eventService: EventService,\r\n private readonly translate: TranslateService,\r\n private readonly libService: CommonHeaderLibService,\r\n private httpCommonService: HttpCommonService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.onLoadMethods();\r\n }\r\n\r\n /* Require Methods on PageLoad */\r\n onLoadMethods() {\r\n this.getUserEmails();\r\n this.getglobalConfigDetails();\r\n\r\n this._eventService.listenerUserEmail().subscribe((data) => {\r\n if (data && data['component'] === 'view-pwd') {\r\n if (data['refreshGrid']) {\r\n this.ref?.close();\r\n // this.getUserEmails();\r\n }\r\n }\r\n });\r\n }\r\n\r\n openViewPasswordPanel(mailDetails: any) {\r\n this.ref = this.dialogService.open(ViewpasswordPopupComponent, {\r\n header: mailDetails.sshkey_isenabled\r\n ? this.translate.instant('Generic_lib.SSHKey')\r\n : this.translate.instant('Generic_lib.Password'),\r\n styleClass: 'view-pass-details',\r\n data: {\r\n payload: mailDetails,\r\n btnStatus: this.showVaultBtn,\r\n SSHfileType: this.SSHFileName,\r\n },\r\n });\r\n // Handle the close event here\r\n this.ref.onClose.subscribe((result: any) => {\r\n this.getUserEmails();\r\n });\r\n }\r\n\r\n /*Action : Fetching user Emails from a API */\r\n private getUserEmails() {\r\n console.log('inside mailbox api ');\r\n this.isContentLoaded = false;\r\n let payload = {\r\n // smi_user_id: this.userId,\r\n pageSize: this.perPgRows,\r\n pageNumber: this.currentPgNo,\r\n };\r\n\r\n this.httpCommonService\r\n .getUserAssignedMails(payload)\r\n .pipe(\r\n takeUntil(this.unsubscribeAPIEventListenerData),\r\n finalize(() => {\r\n this.isContentLoaded = true;\r\n }),\r\n )\r\n .subscribe((response: any) => {\r\n this.ListOfUserAssingedMails = response;\r\n if (this.ListOfUserAssingedMails.length > 0) {\r\n this.hasUserAssignedMails = true;\r\n this.getTotalNoOfRecords();\r\n } else {\r\n this.hasUserAssignedMails = false;\r\n this.NoServiceMsgText = errorMsg.NOMAILFOUND;\r\n }\r\n });\r\n }\r\n\r\n //Note: Get Total No of Records for Pagination\r\n getTotalNoOfRecords() {\r\n if (\r\n this.ListOfUserAssingedMails.length > 0 &&\r\n this.ListOfUserAssingedMails[0]['totalRecords'] != null\r\n ) {\r\n this.totalCount = this.ListOfUserAssingedMails[0]['totalRecords'];\r\n }\r\n }\r\n\r\n /*Method : POST\r\n Action : Get configuration ID based on to show hide Vault Btn*/\r\n getglobalConfigDetails() {\r\n this.httpCommonService\r\n .getglobalConfigDetails('1', [247, 338])\r\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\r\n .subscribe((data: any) => {\r\n if (data && data.length > 0) {\r\n data.forEach((element: any) => {\r\n //For Vault Btn\r\n if (element && element['id'] === 247 && element['value'] === '0') {\r\n this.showVaultBtn = false;\r\n } else {\r\n this.showVaultBtn = true;\r\n }\r\n //For Vault Btn\r\n if (element && element['id'] === 338 && element['value'] === '1') {\r\n this.SSHFileName = 'pem';\r\n } else {\r\n this.SSHFileName = 'ppk';\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n //Method: Fetch User Assigned Email based on PageNo\r\n updateDataOnPageChange(pageDetails: any) {\r\n this.currentPgNo = pageDetails['currentPgNo'];\r\n this.perPgRows = pageDetails['perPgRows'];\r\n console.log('currentPgNo', this.currentPgNo);\r\n console.log('perPgRows', this.perPgRows);\r\n this.getUserEmails();\r\n }\r\n\r\n closeMailBox() {\r\n console.log('click');\r\n\r\n this.closeMailDialogBox.emit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAPIEventListenerData.next(true);\r\n this.unsubscribeAPIEventListenerData.complete();\r\n }\r\n}\r\n","<div class=\"mail-content\">\r\n <div\r\n class=\"box-title my-3 d-flex justify-content-between align-items-center w-100\"\r\n >\r\n <div>\r\n {{ \"Generic_lib.MailBox\" | translate }}\r\n </div>\r\n <button\r\n type=\"button\"\r\n class=\"common-bn tertiary-btn ms-auto\"\r\n (click)=\"closeMailBox()\"\r\n >\r\n <img\r\n src=\"assets/common-header-lib/images/close.svg\"\r\n class=\"imgs\"\r\n alt=\"close icon\"\r\n title=\"Close\"\r\n loading=\"lazy\"\r\n />\r\n </button>\r\n </div>\r\n\r\n <div class=\"mail-table\">\r\n <ng-container *ngIf=\"isContentLoaded && hasUserAssignedMails\">\r\n <p-table\r\n [value]=\"ListOfUserAssingedMails\"\r\n selectionMode=\"multiple\"\r\n dataKey=\"code\"\r\n [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th scope=\"col\">\r\n {{ \"Generic_lib.From\" | translate }}\r\n </th>\r\n\r\n <th scope=\"col\">\r\n {{ \"Generic_lib.Subject\" | translate }}\r\n </th>\r\n\r\n <th scope=\"col\">\r\n {{ \"Generic_lib.ViewFrom\" | translate }}\r\n </th>\r\n\r\n <th scope=\"col\"></th>\r\n\r\n <th scope=\"col\">\r\n {{ \"Generic_lib.Action\" | translate }}\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-userMail>\r\n <tr [ngClass]=\"{ markasRead: userMail.smi_sms_id != 1 }\">\r\n <td class=\"form-colm\">{{ userMail.smi_From_Details }}</td>\r\n <td>\r\n <div class=\"subject-colm\" title=\"{{ userMail.smi_MailSubject }}\">\r\n {{ userMail.smi_MailSubject }}\r\n </div>\r\n </td>\r\n <!-- <td class=\"view-colm\">{{userMail.smi_Received_On}}</td> -->\r\n <td class=\"view-colm\">\r\n {{ userMail.smi_Received_On | customDateFormat }}\r\n </td>\r\n <td>\r\n <div class=\"icon-colm\">\r\n <div>\r\n <img\r\n src=\"assets/common-header-lib/images/mail-icon.svg\"\r\n alt=\"Icon\"\r\n />\r\n </div>\r\n <div>\r\n <img\r\n src=\"assets/common-header-lib/images/flag1.svg\"\r\n alt=\"Icon\"\r\n />\r\n </div>\r\n <div>\r\n <img\r\n src=\"assets/common-header-lib/images/lock1.svg\"\r\n alt=\"Icon\"\r\n class=\"\"\r\n />\r\n </div>\r\n </div>\r\n </td>\r\n <td class=\"action-colm\">\r\n <button\r\n [disabled]=\"userMail.password_status === 'Close'\"\r\n (click)=\"openViewPasswordPanel(userMail)\"\r\n class=\"view-label\"\r\n >\r\n {{ \"Generic_lib.ViewPassword\" | translate }}\r\n </button>\r\n </td>\r\n </tr></ng-template\r\n >\r\n </p-table>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isContentLoaded\">\r\n <p-table\r\n [value]=\"repeatLoader\"\r\n [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n responsiveLayout=\"scroll\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th scope=\"col\">{{ \"Generic_lib.From\" | translate }}</th>\r\n <th scope=\"col\">{{ \"Generic_lib.Subject\" | translate }}</th>\r\n <th scope=\"col\">{{ \"Generic_lib.ViewFrom\" | translate }}</th>\r\n <th scope=\"col\"></th>\r\n <th scope=\"col\">{{ \"Generic_lib.Action\" | translate }}</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-data>\r\n <tr>\r\n <td><p-skeleton height=\"1rem\" width=\"100%\"></p-skeleton></td>\r\n <td><p-skeleton height=\"1rem\" width=\"100%\"></p-skeleton></td>\r\n <td><p-skeleton height=\"1rem\" width=\"100%\"></p-skeleton></td>\r\n <td><p-skeleton height=\"1rem\" width=\"100%\"></p-skeleton></td>\r\n <td><p-skeleton height=\"1rem\" width=\"100%\"></p-skeleton></td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-container>\r\n <!-- When There is No Data Present -->\r\n <ng-container *ngIf=\"!hasUserAssignedMails\">\r\n <app-no-service-my-access-pg\r\n [heading]=\"NoServiceMsgText\"\r\n ></app-no-service-my-access-pg>\r\n </ng-container>\r\n </div>\r\n <!-- ---Pagination -->\r\n <div class=\"mail-pagination\">\r\n <app-grid-pagination\r\n [totalRecords]=\"totalCount\"\r\n (onPgChange)=\"updateDataOnPageChange($event)\"\r\n ></app-grid-pagination>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ConfirmationService } from 'primeng/api';\n\n@Component({\n selector: 'confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss'],\n providers: [ConfirmationService],\n})\nexport class ConfirmDialogComponent {\n @Input('header') header: string = '';\n @Input('message') message: string = '';\n @Output('result') result = new EventEmitter<boolean>();\n\n constructor(private confirmationService: ConfirmationService) {}\n\n openConfirmModal(event: Event) {\n this.confirmationService.confirm({\n target: event.target as EventTarget,\n message: this.message,\n header: this.header,\n closeOnEscape: true,\n // icon: 'pi pi-exclamation-triangle',\n\n // ✔ PrimeNG 14 button config\n acceptLabel: 'Yes',\n rejectLabel: 'No',\n\n acceptButtonStyleClass: 'p-button-primary',\n rejectButtonStyleClass: 'p-button-secondary p-button-outlined',\n\n accept: () => {\n this.result.emit(true);\n },\n reject: () => {\n this.result.emit(false);\n },\n });\n }\n}\n","<div class=\"card flex justify-center gap-2 view-pass-details confirmtion-modal\">\n <p-confirmDialog icon=\"none\" acceptIcon=\"\" rejectIcon=\"\"></p-confirmDialog>\n</div>\n","import { ConfirmDialogComponent } from './components/confirm-dialog/confirm-dialog.component';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CommonHeaderLibService } from './common-header-lib.service';\nimport { catchError, finalize, map, takeUntil } from 'rxjs/operators';\nimport { OverlayPanel } from 'primeng/overlaypanel';\nimport { Subject, forkJoin, of } from 'rxjs';\nimport { GlobalConstants } from './model/data_model';\nimport { RestSignalRService } from './services/rest-signalr.service';\nimport { EventService } from './services/event.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { HttpCommonService } from './services/http/http-common.service';\nimport { ToastMsgService } from './services/toast-msg.service';\ndeclare var bootstrap: any; // Bootstrap JS is global (from bundle)\n\ninterface AppDetails {\n applicationName: string;\n applicationId: number;\n appCode: string;\n privileges: any; // or a more specific type if you know it\n applicationUrl: string;\n isAssignedLanding: boolean;\n}\n\ninterface AccessType {\n id: number;\n name: string;\n}\n\n@Component({\n selector: 'lib-common-header-lib',\n templateUrl: './common-header-lib.component.html',\n styleUrls: ['./common-header-lib.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CommonHeaderLibComponent implements OnInit, AfterViewInit {\n // @Input() apiURL: string = '';\n @Input() EnableLogo: boolean = true;\n @Input() moduleName: string = '';\n @Input() EnableTimeZone: boolean = true;\n @Input() EnableLOB: boolean = true;\n @Input() EnableMail: boolean = true;\n @Input() EnableNotifications: boolean = true;\n @Input() EnableMoreApps: boolean = true;\n @Input() EnableProfile: boolean = true;\n @Input() selectedLOBId: any;\n @Output() lobSelected = new EventEmitter<any>();\n @Output() langChange = new EventEmitter<any>();\n @Output() overlayStateChange = new EventEmitter<boolean>();\n @ViewChild('confirmDialog')\n confirmDialog!: ConfirmDialogComponent;\n\n headerLogo: any;\n userTimeZoneAbbreviations: string = '';\n public userTimeZoneFullForm: string = '';\n userLOBList: any = [];\n tempSelectedLOBId: any;\n showLobLoader: boolean = true;\n public totalEmails: string = '';\n public userNotificationCount: string = '';\n\n public userDetails: any;\n\n ListOfUserPrivillegedApp: AppDetails[] = [];\n userdisplayName: string = '';\n userDetailsInfo: any = [];\n public isOpenSidePopup: boolean = false;\n public showUserDetails: boolean = false;\n public userAppLoaderLoadder: boolean = true;\n public repeatLoader = new Array(12).fill(0);\n showMailboxScreenflag: boolean = false;\n public isErrorFound: boolean = false;\n public userNotificationCountObj: any = {};\n public eventwiseNotificationCount = [];\n public notificationLoadder: boolean = true;\n private unsubscribeAPIEventListenerData: Subject<boolean> =\n new Subject<boolean>();\n private unsubscribeSidebarListenerData: Subject<boolean> =\n new Subject<boolean>();\n public userId: string = '';\n public assetCategoryMenuList: any = [];\n public showbusinessFileds: boolean = false;\n public showInfraFileds: boolean = false;\n public showfiltersearch: boolean = true;\n public clickInside: boolean = false;\n public isLobContentLoaded: boolean = false;\n public isHeaderContentLoaded: boolean = false;\n public requestTypeId: number = 1;\n public accessTypes: Array<AccessType> = [\n { id: 1, name: 'Permanent' },\n { id: 2, name: 'OneTime' },\n { id: 3, name: 'TimeBased' },\n ];\n public selectedAssetName: any = {\n assetId: -100,\n assetName: 'All',\n };\n public assetName: string = '';\n public assetId: number = 0;\n public allCategory = {\n assetTypeId: -100,\n assetTypeValue: 'All Section',\n assetList: [\n {\n assetId: -100,\n assetName: 'All',\n },\n ],\n };\n\n private translateName = [\n 'Generic_lib.Permanent',\n 'Generic_lib.OneTime',\n 'Generic_lib.TimeBased',\n ];\n\n @ViewChild('App') appPanel: any = OverlayPanel;\n @ViewChild('notifyModal') notifyModalRef!: ElementRef;\n @ViewChild('notifyModal') notifyModal!: ElementRef;\n private bsModalInstance: any;\n public isErrorOccured: boolean = false;\n // @Output() public refreshNotification = new EventEmitter<boolean>();\n public repeatLoader1 = new Array(9).fill(0);\n\n constructor(\n private readonly libService: CommonHeaderLibService,\n private readonly cdRef: ChangeDetectorRef,\n private readonly _signalRService: RestSignalRService,\n private readonly _eventService: EventService,\n private translate: TranslateService,\n private modalService: NgbModal,\n private translateService: TranslateService,\n private httpCommonService: HttpCommonService,\n private readonly msgService: ToastMsgService,\n ) {}\n ngOnInit() {\n this.headerLogo = '';\n this.overlayStateChange.emit(false);\n this.setWebAPIURL();\n if (this.EnableLogo) this.loadHeaderLogo();\n if (this.EnableLOB) this.getListofLOB();\n this.onLoadMethod();\n }\n onLoadMethod() {\n this.onDemandActions();\n if (this.EnableNotifications) this.getEventwiseNotificationCount();\n this.getUserActivityDetails();\n }\n\n //* on click of Mail icon\n showMailBoxScreen() {\n this.showMailboxScreenflag = true;\n this.overlayStateChange.emit(true);\n }\n\n hideMailBoxScreen() {\n this.showMailboxScreenflag = false;\n this.overlayStateChange.emit(false);\n }\n\n //* Main language change emitter\n languageChange(event: any) {\n if (!event) return;\n this.langChange.emit(event);\n }\n\n showUserAppsPanel(event: Event) {\n this.appPanel.toggle(event);\n if (this.ListOfUserPrivillegedApp.length === 0) {\n this.getUserAssignedApp();\n }\n }\n showUserDetailsPanel() {\n this.openSidePopup();\n this.showUserDetails = true;\n }\n\n closeSidePopup() {\n this.showUserDetails = false;\n this.isOpenSidePopup = false;\n }\n openSidePopup() {\n this.isOpenSidePopup = true;\n }\n //Method: Take Connection of Application\n getConnectionofApplication(appCode: string) {\n console.log('appcode', appCode);\n\n const url =\n GlobalConstants.baseURL + '/xauth/api/Token/AppOAuth?appcode=' + appCode;\n window.open(url, '_blank');\n }\n\n private async getConnectToSingalRhub() {\n try {\n await this._signalRService.initializeSignalRConnection();\n } catch (error) {\n console.error('All SignalR hub connections failed.', error);\n }\n }\n\n ngAfterViewInit(): void {\n this.ListenToTranslateEvent();\n // Initialize modal instance when DOM is ready\n this.bsModalInstance = new bootstrap.Modal(this.notifyModal.nativeElement);\n }\n\n /*Method : Listen to the Other component event\n Action : It used to listen diff. component command on basis of perform some actions */\n onDemandActions() {\n //Listen the Event Emit by Sidebar\n this._eventService\n .listenerAssetTypeEvent()\n .pipe(takeUntil(this.unsubscribeSidebarListenerData))\n .subscribe((data) => {\n if (data && data['component'] === 'assetMenu') {\n this.assetCategoryMenuList = [];\n this.assetCategoryMenuList = data['aseetTypeList'];\n\n //Note: Add Filter Fileds of Business/Infra Asset and there RequestID\n //For Business Asset\n if (data?.['assetCategoryId'] == 1) {\n this.showbusinessFileds = true;\n this.showInfraFileds = false;\n this.requestTypeId = 1;\n this.selectedAssetName = this.assetCategoryMenuList[0]; //Set index 0 By Default\n this.assetName = this.selectedAssetName['assetTypeValue'];\n this.assetId = this.selectedAssetName['assetTypeId'];\n //For Infra Asset\n } else if (data?.['assetCategoryId'] == 2) {\n this.showInfraFileds = true;\n this.showbusinessFileds = false;\n this.requestTypeId = 2;\n this.selectedAssetName =\n this.assetCategoryMenuList[0]['assetList'][0]; //Set index 0 By Default\n this.assetName = this.selectedAssetName['assetName'];\n this.assetId = this.selectedAssetName['assetId'];\n }\n\n //Note: Added Extra Hard coded type in AssetCategory Menu for Infra Asset\n if (this.assetCategoryMenuList.length > 0) {\n if (this.showInfraFileds) {\n this.assetCategoryMenuList.unshift(this.allCategory);\n }\n this.assetCategoryMenuList = this.assetCategoryMenuList.filter(\n (element: any) => {\n if (\n !(\n element.assetTypeValue === 'Favorite' ||\n element.assetTypeValue === 'Bookmark'\n )\n ) {\n return element;\n }\n },\n );\n }\n }\n });\n\n //Listen the Event Emit by SignalR Hub\n this._signalRService\n .listenerEventMsg()\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\n .subscribe((data) => {\n if (data && data['application'] && data['events']) {\n this.isErrorFound = false;\n this.userNotificationCountObj = data['application'];\n //Note: If Notification count > 99\n if (\n this.userNotificationCountObj &&\n this.userNotificationCountObj['PendingCount']\n ) {\n if (Number(this.userNotificationCountObj['PendingCount']) > 99) {\n this.userNotificationCount = '99+';\n } else {\n this.userNotificationCount = String(\n this.userNotificationCountObj['PendingCount'],\n );\n }\n } else {\n this.userNotificationCount = '';\n }\n this.eventwiseNotificationCount = data['events'];\n }\n });\n\n this.listenToTimeZoneConfig();\n this.listenToEmailCountEvent();\n }\n\n //Listen to TimeZone Config\n listenToTimeZoneConfig() {\n this._eventService\n .listenerTimezone()\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\n .subscribe((response) => {\n if (response && response['component'] == 'timezone') {\n this.userTimeZoneAbbreviations =\n response['usertimezoneAbbreviations'];\n this.userTimeZoneFullForm = response['userTimeZoneFullForm'];\n }\n });\n }\n\n //Listen to Email Count when user Read\n listenToEmailCountEvent() {\n this._eventService\n .listenerUserEmail()\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\n .subscribe((data) => {\n if (data && data['component'] === 'email-count') {\n this.totalEmails = data['mailCount'];\n }\n });\n }\n\n //Method: Convert text one Lang. to another\n private ListenToTranslateEvent() {\n this.translate.onLangChange.subscribe((val: any) => {\n this.getTranslateContent();\n });\n }\n\n //Method: Convert text one Lang. to another Event Listener\n private getTranslateContent() {\n this.translate.get(this.translateName).subscribe((trans: any) => {\n this.accessTypes.forEach((item, index) => {\n const key = this.translateName[index];\n item['name'] = trans[key];\n });\n });\n }\n\n OpenNotificationModal() {\n // const modalRef = this.modalService.open(NotificationSidebarComponent);\n // modalRef.componentInstance.lesson = lesson;\n this.bsModalInstance?.show();\n }\n closeModal() {\n this.bsModalInstance?.hide();\n }\n\n //Method: Call APi to Fetch New Notification Count\n getEventwiseNotification() {\n // this.refreshNotification.emit(true);\n this.getEventwiseNotificationCount();\n }\n\n setWebAPIURL() {\n if (GlobalConstants.baseURL == undefined) {\n if (localStorage.getItem('_WAU')) {\n GlobalConstants.baseURL = localStorage.getItem('_WAU') || '';\n } else {\n let parsedURL = new URL(window.location.href);\n let WebApiUrl = parsedURL.origin;\n GlobalConstants.baseURL = WebApiUrl;\n localStorage.setItem('_WAU', GlobalConstants.baseURL);\n }\n }\n }\n\n private getUserActivityDetails(): void {\n // Reset error state before API calls\n this.isErrorFound = false;\n\n // Initialize response container for forkJoin\n const responseSet: any = {};\n\n // Build payload once for notification API\n const notificationPayload = {\n ApplicationName: GlobalConstants.applicationName,\n UserId: String(this.userId),\n };\n\n // Add notification API if enabled\n if (this.EnableNotifications) {\n responseSet.notifications = this.httpCommonService\n .getWorkFlowTicketCount(notificationPayload)\n .pipe(\n // Extract valid notification data\n map((response) => response),\n // Handle API error without breaking forkJoin\n catchError(() => {\n this.isErrorFound = true;\n return of(null);\n }),\n );\n }\n\n // Add user profile API if enabled\n if (this.EnableProfile) {\n responseSet.userinfo = this.httpCommonService.getLoggedInUserDetails();\n }\n\n // Add timezone API if enabled\n if (this.EnableTimeZone) {\n responseSet.timeZone = this.httpCommonService.getGlobalTimeZone();\n }\n\n // Add unread email count API if enabled\n if (this.EnableMail) {\n responseSet.emailCount =\n this.httpCommonService.getUnreadUserEmailsCount();\n }\n\n // Execute all enabled APIs together\n forkJoin(responseSet)\n .pipe(\n // Mark header loading as completed\n finalize(() => {\n this.isHeaderContentLoaded = true;\n }),\n )\n .subscribe((response: any) => {\n // Process notification data\n if (response.notifications) {\n this.getTotalNotificationCounts(response.notifications);\n }\n\n // Process user profile data\n if (response.userinfo) {\n this.getLoggedInUserDetails(response.userinfo);\n }\n\n // Process timezone list\n if (response.timeZone) {\n this.getListOfTimeZones(response.timeZone);\n }\n\n // Process unread email count\n if (response.emailCount) {\n this.getUserEmailCount(response.emailCount);\n }\n });\n }\n\n public getTotalNotificationCounts(data: any) {\n // this.isErrorFound = false;\n this.userNotificationCountObj = data || {};\n if (\n this.userNotificationCountObj &&\n this.userNotificationCountObj['PendingCount']\n ) {\n if (Number(this.userNotificationCountObj['PendingCount']) > 99) {\n this.userNotificationCount = '99+';\n } else {\n this.userNotificationCount = String(\n this.userNotificationCountObj['PendingCount'],\n );\n }\n } else {\n this.userNotificationCount = '';\n }\n }\n\n /*Method : Retrieves details of the currently logged-in user*/\n public getLoggedInUserDetails(response: any) {\n if (response && response['success'] && response['result']) {\n this.userDetails = response['result'];\n this.userdisplayName = this.userDetails['userDisplayName'];\n }\n }\n\n /*Method : GET\n Action : Get List of Time Zone*/\n public getListOfTimeZones(result: any) {\n if (result && result['abbreviations']) {\n this.userTimeZoneAbbreviations = result['abbreviations'];\n this.userTimeZoneFullForm = result['userTimeZone'];\n }\n }\n\n /*Method : GET\n Action : Transformation fo Count */\n private getUserEmailCount(count: number) {\n if (count <= 0) {\n this.totalEmails = '';\n } else if (count > 99) {\n this.totalEmails = '99+';\n } else {\n this.totalEmails = String(count);\n }\n }\n\n /** API to get the header LOGO */\n loadHeaderLogo() {\n this.httpCommonService.getLogo().subscribe((img) => {\n this.headerLogo = 'data:image/png;base64,' + img['logoImg'];\n });\n }\n\n /** API to get the timezone */\n // getUserPreferredTimezone() {\n // this.httpCommonService.getGlobalTimeZone().subscribe((res: any) => {\n // if (res?.abbreviations) {\n // this.userTimeZoneAbbreviations = res.abbreviations;\n // this.userTimeZoneFullForm = res?.userTimeZone;\n // }\n // });\n // }\n\n //* get Lob AI call and initial LOB emitter\n getListofLOB() {\n this.showLobLoader = true;\n this.httpCommonService.getLOBList().subscribe((res: any) => {\n this.showLobLoader = false;\n this.userLOBList = res.result;\n let initialLobSelected = this.getLobById(\n this.userLOBList,\n this.userLOBList[0]?.lobId,\n );\n const preSelectedLob = JSON.parse(localStorage.getItem('XOB') || 'null');\n let isPreSelectedLobExistsInList = this.userLOBList.some(\n (lob: any) => Number(lob.lobId) == Number(preSelectedLob?.LOBId),\n );\n if (\n preSelectedLob &&\n Number(preSelectedLob.LOBId) &&\n isPreSelectedLobExistsInList\n ) {\n //* Emitting 1st LOB for LOB List as LOb details available in localstorega\n this.selectedLOBId = preSelectedLob?.LOBId;\n this.tempSelectedLOBId = preSelectedLob?.LOBId;\n initialLobSelected = this.getLobById(\n this.userLOBList,\n this.selectedLOBId,\n );\n } else {\n //* Emitting 1st LOB for LOB List if localstorage have null LOB details\n this.selectedLOBId = this.userLOBList[0]?.lobId;\n this.tempSelectedLOBId = this.userLOBList[0]?.lobId;\n localStorage.setItem('XOB', JSON.stringify(initialLobSelected));\n }\n this.lobSelected.emit(initialLobSelected);\n this.cdRef.detectChanges();\n });\n }\n\n //* Selected LOB emitter\n onLobChangeEvent(event: any) {\n this.selectedLOBId = event.value;\n this.openConfirm(event);\n }\n\n openConfirm(event: Event) {\n this.confirmDialog.openConfirmModal(event);\n }\n\n lobChangeConfirmation(event: any) {\n if (event) {\n this.tempSelectedLOBId = this.selectedLOBId;\n let selectedLob = this.getLobById(\n this.userLOBList,\n this.tempSelectedLOBId,\n );\n localStorage.setItem('XOB', JSON.stringify(selectedLob));\n this.lobSelected.emit(selectedLob);\n } else {\n this.selectedLOBId = this.tempSelectedLOBId;\n }\n }\n\n setCustomLobId(lobId: any) {\n if (this.userLOBList) {\n let filteredLobs = this.getLobById(this.userLOBList, lobId);\n if (Object.keys(filteredLobs).length > 0) {\n this.selectedLOBId = lobId;\n //* If the LOB is forcefully set from the parent module, CustomLOBSetByParent is set to true; otherwise, it is set to false.\n filteredLobs['CustomLOBSetByParent'] = true;\n this.lobSelected.emit(filteredLobs);\n localStorage.setItem('XOB', JSON.stringify(filteredLobs));\n } else {\n this.msgService.error(\n 'The LOB you are trying to set is not available.',\n );\n }\n }\n }\n\n //* Helper function to get selected LOB Object by LobId\n getLobById(list: any, id: any) {\n const item = list.find((x: any) => x.lobId === id);\n if (!item) return {};\n return {\n LOBId: item.lobId,\n LOBName: item.lobName,\n CustomLOBSetByParent: false,\n };\n }\n\n //* get the Mail count\n // getMailCount() {\n // this.httpCommonService\n // .getUnreadUserEmailsCount()\n // .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\n // .subscribe((result) => {\n // this.totalEmails = result;\n // });\n // }\n\n //Action: Used to Get Total Eventwise User Notification Count */\n getEventwiseNotificationCount() {\n let payload = {\n ApplicationName: GlobalConstants.applicationName,\n UserId: String(this.userId),\n };\n this.notificationLoadder = true;\n\n this.httpCommonService\n .getWorkFlowTicketEventwiseCount(payload)\n .pipe(\n takeUntil(this.unsubscribeAPIEventListenerData),\n finalize(() => (this.notificationLoadder = false)),\n )\n .subscribe({\n next: (data) => {\n this.isErrorFound = data.length == 0;\n this.eventwiseNotificationCount = data;\n },\n error: () => {\n this.isErrorFound = true;\n },\n });\n }\n\n //* Get Module privilege list\n getUserAssignedApp() {\n this.ListOfUserPrivillegedApp = [];\n\n this.userAppLoaderLoadder = true;\n this.httpCommonService\n .getUserAssignedApps()\n .pipe(takeUntil(this.unsubscribeAPIEventListenerData))\n .subscribe((result) => {\n this.userAppLoaderLoadder = false;\n this.ListOfUserPrivillegedApp = result;\n });\n }\n\n //* Get User details\n getLoggedInuserDetails() {\n this.httpCommonService.getLoggedInUserDetails().subscribe((result) => {\n this.userDetailsInfo = result.result;\n this.userdisplayName = this.userDetailsInfo['userDisplayName'];\n });\n }\n\n ngOnDestroy(): void {\n this.unsubscribeAPIEventListenerData.next(true);\n this.unsubscribeAPIEventListenerData.complete();\n\n this.unsubscribeSidebarListenerData.next(true);\n this.unsubscribeSidebarListenerData.complete();\n }\n}\n","<header class=\"app-header ext\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"d-flex\">\r\n <div class=\"logo gap-4\">\r\n <img\r\n *ngIf=\"EnableLogo && headerLogo\"\r\n class=\"logo-size\"\r\n title=\"Logo\"\r\n alt=\"Logo\"\r\n [src]=\"headerLogo\"\r\n loading=\"lazy\"\r\n />\r\n <p-skeleton\r\n *ngIf=\"!headerLogo\"\r\n height=\"1.5rem\"\r\n width=\"5rem\"\r\n ></p-skeleton>\r\n </div>\r\n </div>\r\n <div class=\"projName\">\r\n <h1 class=\"modname\">{{ moduleName }}</h1>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-end align-items-center\">\r\n <!--timezone-->\r\n <ng-container *ngIf=\"EnableTimeZone && userTimeZoneAbbreviations\">\r\n <div class=\"timezone\">\r\n <img\r\n src=\"../assets/common-header-lib/images/schedule.svg\"\r\n class=\"mb-1\"\r\n alt=\"Icon\"\r\n />\r\n <span class=\"timezone-text\"\r\n >{{ \"Generic_lib.PreferredTimezone\" | translate }} :\r\n </span>\r\n <span\r\n *ngIf=\"userTimeZoneAbbreviations\"\r\n class=\"user-tz\"\r\n [title]=\"userTimeZoneFullForm\"\r\n >{{ userTimeZoneAbbreviations }}</span\r\n >\r\n </div>\r\n </ng-container>\r\n\r\n <!--lob-->\r\n <ng-container\r\n *ngIf=\"EnableLOB && !showLobLoader; else LobLodderAnimation\"\r\n >\r\n <div class=\"main-left d-flex\">\r\n <img\r\n src=\"../assets/common-header-lib/images/marker-pin.svg\"\r\n alt=\"pen Icon\"\r\n />\r\n <p-dropdown\r\n filterPlaceholder=\"{{ 'Generic_lib.Search' | translate }}\"\r\n [options]=\"userLOBList\"\r\n (onChange)=\"onLobChangeEvent($event)\"\r\n optionLabel=\"lobName\"\r\n optionValue=\"lobId\"\r\n [(ngModel)]=\"selectedLOBId\"\r\n [filter]=\"true\"\r\n filterBy=\"lobName\"\r\n [showClear]=\"false\"\r\n [style]=\"{ width: '150px', height: '30px' }\"\r\n [resetFilterOnHide]=\"true\"\r\n [virtualScroll]=\"true\"\r\n [lazy]=\"false\"\r\n name=\"lob\"\r\n [itemSize]=\"30\"\r\n class=\"loblist-drpdwn\"\r\n panelStyleClass=\"loblist-drpdwn-panel\"\r\n >\r\n <ng-template let-loblist pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <div title=\"{{ loblist.lobName }}\" class=\"header-drpdwn\">\r\n {{ loblist.lobName }}\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-dropdown>\r\n </div>\r\n </ng-container>\r\n <ng-template #LobLodderAnimation>\r\n <p-skeleton height=\"1.5rem\" width=\"10rem\"></p-skeleton>\r\n </ng-template>\r\n\r\n <!--mailbox-->\r\n <ng-container *ngIf=\"isHeaderContentLoaded; else HeaderLoading\">\r\n <div *ngIf=\"EnableMail\" class=\"header-left-icon\">\r\n <img\r\n src=\"../assets/common-header-lib/images/mail-icon.svg\"\r\n alt=\"mail Icon\"\r\n class=\"headeright-icon\"\r\n (click)=\"showMailBoxScreen()\"\r\n />\r\n </div>\r\n <ng-container *ngIf=\"EnableMail && totalEmails.length > 0\">\r\n <!-- <ng-container> -->\r\n <div class=\"badge-notify\">\r\n <div pBadge [value]=\"totalEmails\"></div>\r\n </div>\r\n </ng-container>\r\n\r\n <!--notification-->\r\n <div class=\"header-left-icon\" *ngIf=\"EnableNotifications\">\r\n <img\r\n src=\"../assets/common-header-lib/images/bell-icon.svg\"\r\n alt=\"mail Icon\"\r\n class=\"headeright-icon\"\r\n (click)=\"OpenNotificationModal()\"\r\n />\r\n </div>\r\n\r\n <ng-container\r\n *ngIf=\"EnableNotifications && userNotificationCount.length > 0\"\r\n >\r\n <div class=\"badge-notify\">\r\n <div pBadge [value]=\"userNotificationCount\"></div>\r\n </div>\r\n </ng-container>\r\n\r\n <!--9 Dots -->\r\n <div\r\n *ngIf=\"EnableMoreApps\"\r\n class=\"header-left-icon\"\r\n title=\"Control Center\"\r\n alt=\"bell Icon\"\r\n (click)=\"showUserAppsPanel($event)\"\r\n >\r\n <img\r\n src=\"../assets/common-header-lib/images/apps-1.svg\"\r\n class=\"apps-icon\"\r\n />\r\n </div>\r\n\r\n <!--user display name -->\r\n <div\r\n *ngIf=\"EnableProfile\"\r\n class=\"main-right\"\r\n (click)=\"showUserDetailsPanel()\"\r\n >\r\n <ng-container>\r\n <div class=\"initial-text mx-1\">\r\n {{ userdisplayName | sliceToTwo }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #HeaderLoading>\r\n <p-skeleton shape=\"circle\" size=\"1.3rem\" styleClass=\"mx-2\"></p-skeleton>\r\n <p-skeleton shape=\"circle\" size=\"1.3rem\" styleClass=\"mx-2\"></p-skeleton>\r\n <p-skeleton size=\"1.5rem\" styleClass=\"mx-2\"></p-skeleton>\r\n <p-skeleton shape=\"circle\" size=\"2rem\" styleClass=\"mx-2\"></p-skeleton>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</header>\r\n\r\n<!--List of Application : 9 dots -->\r\n<p-overlayPanel #App class=\"pt-0\" styleClass=\"app-panel\">\r\n <ng-container *ngIf=\"!userAppLoaderLoadder; else LoadingTemplate\">\r\n <div class=\"custom-popover-content\">\r\n <div class=\"waffle-align\">\r\n <div\r\n class=\"waffle-popup\"\r\n [title]=\"appDetails['applicationName']\"\r\n *ngFor=\"let appDetails of ListOfUserPrivillegedApp\"\r\n (click)=\"getConnectionofApplication(appDetails['appCode'])\"\r\n >\r\n <img\r\n *ngIf=\"appDetails?.appCode\"\r\n src=\"../assets/common-header-lib/images/{{\r\n appDetails.appCode\r\n }}.svg\"\r\n alt=\"App icon\"\r\n />\r\n\r\n <div class=\"waffle-text\">{{ appDetails[\"applicationName\"] }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-template #LoadingTemplate>\r\n <div class=\"custom-popover-content skeleton-popover\">\r\n <ng-container *ngFor=\"let item of repeatLoader\">\r\n <div\r\n class=\"d-flex flex-column align-items-center justify-content-center gap-2\"\r\n >\r\n <p-skeleton size=\"3rem\"></p-skeleton>\r\n <p-skeleton height=\".3rem\" width=\"35px\"></p-skeleton>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n</p-overlayPanel>\r\n\r\n<!--mailbox details-->\r\n<ng-container *ngIf=\"showMailboxScreenflag\">\r\n <div class=\"changingContent\">\r\n <app-user-mailbox\r\n (closeMailDialogBox)=\"hideMailBoxScreen()\"\r\n ></app-user-mailbox>\r\n </div>\r\n</ng-container>\r\n\r\n<!-- Userdetails profile pop up -->\r\n<div class=\"profile-sidebar\">\r\n <app-side-popup\r\n *ngIf=\"isOpenSidePopup\"\r\n [visible]=\"true\"\r\n [position]=\"'right'\"\r\n (closeDialogBox)=\"closeSidePopup()\"\r\n >\r\n <app-user-sidebar\r\n *ngIf=\"showUserDetails\"\r\n (closeDialogBox)=\"closeSidePopup()\"\r\n ></app-user-sidebar>\r\n </app-side-popup>\r\n</div>\r\n\r\n<!-- Notification side popup -->\r\n<div\r\n class=\"modal fade common-alert-modal\"\r\n #notifyModal\r\n id=\"Notify_SidebarModal\"\r\n tabindex=\"-1\"\r\n aria-hidden=\"true\"\r\n>\r\n <div class=\"modal-dialog sidebar-outer white-bg\">\r\n <div class=\"modal-content\">\r\n <div class=\"sidebar-container white-bg\">\r\n <!-- keep everything inside this content -->\r\n\r\n <!-- Sidebar Header -->\r\n <div class=\"sidebar-header grey-background\">\r\n <div class=\"sh-top\">\r\n <div class=\"sh-top-left d-flex align-items-center\">\r\n <div class=\"mx-2 log-text\">\r\n {{ \"Generic_lib.Notification\" | translate }}\r\n </div>\r\n </div>\r\n <div class=\"sh-top-right\">\r\n <button\r\n type=\"button\"\r\n class=\"common-bn tertiary-btn\"\r\n aria-label=\"Close\"\r\n (click)=\"closeModal()\"\r\n >\r\n <img\r\n src=\"assets/common-header-lib/images/close.svg\"\r\n alt=\"Close\"\r\n class=\"imgs mb-1\"\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Sidebar Body -->\r\n <div class=\"sidebar-body\">\r\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\r\n <div class=\"noti-text\">\r\n {{\r\n \"Generic_lib.YouHaveNNotifications\"\r\n | translate: { count: userNotificationCount }\r\n }}\r\n </div>\r\n <div\r\n class=\"d-flex align-items-center gap-1 refresh-icon\"\r\n (click)=\"getEventwiseNotification()\"\r\n >\r\n <img\r\n src=\"assets/common-header-lib/images/refresh-1.svg\"\r\n alt=\"Refresh\"\r\n />\r\n <div class=\"refresh-text\">\r\n {{ \"Generic_lib.Refresh\" | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <ng-container\r\n *ngIf=\"\r\n !isErrorFound && !notificationLoadder;\r\n else Noti_LoadingTemplate\r\n \"\r\n >\r\n <div\r\n class=\"notify-border\"\r\n *ngFor=\"let event of eventwiseNotificationCount\"\r\n >\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <div class=\"initial-text initial-text-1 mx-1\">\r\n <img\r\n src=\"assets/common-header-lib/images/noti_ticket.svg\"\r\n alt=\"Icon\"\r\n />\r\n </div>\r\n <div>\r\n <div>\r\n <span class=\"service-count\"\r\n >{{ event[\"PendingCount\"] }} New </span\r\n ><span class=\"service-request\"\r\n >{{ event[\"EventName\"] }} Event requests</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grey-borders mt-2\"></div>\r\n </div>\r\n </ng-container>\r\n <ng-template #Noti_LoadingTemplate>\r\n <ng-container *ngIf=\"notificationLoadder; else errorTemplate\">\r\n <ng-container *ngFor=\"let item of repeatLoader1\">\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <p-skeleton\r\n shape=\"circle\"\r\n size=\"60px\"\r\n styleClass=\"my-2\"\r\n ></p-skeleton>\r\n <div class=\"ms-1\">\r\n <p-skeleton width=\"200%\" styleClass=\"mb-2\"></p-skeleton>\r\n <p-skeleton width=\"150px\" height=\"1rem\"></p-skeleton>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #errorTemplate>\r\n <app-no-service-my-access-pg\r\n heading=\"{{ 'Generic_lib.CommonError' | translate }}\"\r\n ></app-no-service-my-access-pg>\r\n </ng-template>\r\n </div>\r\n <!-- Notification content & loaders remain here -->\r\n </div>\r\n </div>\r\n <!-- end of sidebar-container -->\r\n </div>\r\n <!-- end of modal-content -->\r\n </div>\r\n <!-- end of modal-dialog -->\r\n</div>\r\n\r\n<!-- Common Conirmation Modal -->\r\n<confirm-dialog\r\n class=\"rm-invalid-border\"\r\n #confirmDialog\r\n header=\"{{ 'Generic_lib.ChangeLOB' | translate }}\"\r\n message=\"{{ 'Generic_lib.DoYouWantToChangeTheCurrentLOB' | translate }}\"\r\n (result)=\"lobChangeConfirmation($event)\"\r\n></confirm-dialog>\r\n\r\n<!--* Need to use component based notification UI as below -->\r\n<!-- Notification-Sidebar Started -->\r\n<!-- <app-notification-sidebar [isErrorOccured]=\"isErrorFound\" [userNotificationCount]=\"userNotificationCount\"\r\n [userNotificationCountObj]=\"userNotificationCountObj\" [eventwiseNotificationCount]=\"eventwiseNotificationCount\"\r\n (refreshNotification)=\"getEventwiseNotificationCount()\"\r\n [notificationLoadder]=\"notificationLoadder\"></app-notification-sidebar> -->\r\n<!-- Notification-Sidebar Ended -->\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { errorMsg } from '../../model/data_model';\r\n\r\n@Component({\r\n selector: 'app-notification-sidebar',\r\n templateUrl: './notification-sidebar.component.html',\r\n styleUrls: ['./notification-sidebar.component.scss'],\r\n})\r\nexport class NotificationSidebarComponent {\r\n @Input() public userNotificationCount: string = '';\r\n @Input() public userNotificationCountObj = {};\r\n @Input() public eventwiseNotificationCount = [];\r\n @Output() public refreshNotification = new EventEmitter<boolean>();\r\n @Input() public isErrorOccured: boolean = false;\r\n @Input() public notificationLoadder: boolean = true;\r\n public NoServiceMsgText: string = 'Generic_lib.CommonError';\r\n public repeatLoader = Array(9).fill(0);\r\n\r\n constructor() {}\r\n\r\n //Method: Call APi to Fetch New Notification Count\r\n getEventwiseNotification() {\r\n this.refreshNotification.emit(true);\r\n }\r\n}\r\n","<div class=\"modal fade common-alert-modal\" id=\"Notify_SidebarModal\" tabindex=\"-1\" aria-hidden=\"true\">\r\n <div class=\"sidebar-container white-bg\">\r\n <div class=\"modal-dialog sidebar-outer white-bg\">\r\n <div class=\"sidebar-header grey-background\">\r\n <div class=\"sh-top\">\r\n <div class=\"sh-top-left d-flex align-items-center\">\r\n <div class=\"mx-2 log-text\">Notification</div>\r\n </div>\r\n <div class=\"sh-top-right\">\r\n <button type=\"button\" class=\"common-bn tertiary-btn\" data-bs-dismiss=\"modal\" aria-label=\"Close\">\r\n <img src=\"assets/common-header-lib/images/close.svg\" alt=\"Icon\" class=\"imgs mb-1\" title=\"Close\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-body\">\r\n <div class=\"d-flex justify-content-between align-items-center mb-2\">\r\n <div class=\"noti-text\">You Have {{userNotificationCount}} Notification</div>\r\n <div class=\"d-flex align-items-center gap-1 refresh-icon\" (click)=\"getEventwiseNotification()\">\r\n <img src=\"assets/common-header-lib/images/refresh-1.svg\" alt=\"Icon\">\r\n <div class=\"refresh-text\">Refresh</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\">\r\n <ng-container *ngIf=\"!isErrorOccured && !notificationLoadder; else LoadingTemplate\">\r\n <div class=\"notify-border\" *ngFor=\"let event of eventwiseNotificationCount\">\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <div class=\"initial-text mx-1\">\r\n <img src=\"assets/common-header-lib/images/noti_ticket.svg\" alt=\"Icon\">\r\n </div>\r\n <div>\r\n <div><span class=\"service-count\">{{event['PendingCount']}} New </span><span\r\n class=\"service-request\">{{event['EventName'] }} Event requests</span>\r\n </div>\r\n <!-- <div class=\"time-text\">{{'2h ago'}}</div> -->\r\n </div>\r\n </div>\r\n <div class=\"grey-borders mt-2\"></div>\r\n </div>\r\n </ng-container>\r\n <ng-template #LoadingTemplate>\r\n <ng-container *ngIf=\"notificationLoadder; else errorTemplate\">\r\n <ng-container *ngFor=\"let item of repeatLoader\">\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <p-skeleton shape=\"circle\" size=\"60px\" styleClass=\"my-2\"></p-skeleton>\r\n <div class=\"ms-1\">\r\n <p-skeleton width=\"200%\" styleClass=\"mb-2\"></p-skeleton>\r\n <p-skeleton width=\"150px\" height=\"1rem\"></p-skeleton>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #errorTemplate>\r\n <app-no-service-my-access-pg [heading]=\"NoServiceMsgText\"></app-no-service-my-access-pg>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\n\nimport {\n TranslateLoader,\n TranslateModule,\n TranslateService,\n} from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\n\n/* PrimeNG */\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { BadgeModule } from 'primeng/badge';\nimport { DialogModule } from 'primeng/dialog';\nimport { SkeletonModule } from 'primeng/skeleton';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { TableModule } from 'primeng/table';\nimport { ButtonModule } from 'primeng/button';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\n\n/* Bootstrap */\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n/* Components */\nimport { CommonHeaderLibComponent } from './common-header-lib.component';\nimport { SidePopupComponent } from './components/side-popup/side-popup.component';\nimport { UserSidebarComponent } from './components/user-sidebar/user-sidebar.component';\nimport { NgTranslationComponent } from './components/ng-translation/ng-translation.component';\nimport { UserMailboxComponent } from './components/user-mailbox/user-mailbox.component';\nimport { NotificationSidebarComponent } from './components/notification-sidebar/notification-sidebar.component';\nimport { GeneralConfigurationComponent } from './components/general-configuration/general-configuration.component';\nimport { LandingpgConfigComponent } from './components/general-configuration/landingpg-config/landingpg-config.component';\nimport { TimezoneConfigurationComponent } from './components/general-configuration/timezone-configuration/timezone-configuration.component';\nimport { NoServiceMyAccessPgComponent } from './components/no-service-my-access-pg/no-service-my-access-pg.component';\nimport { GridPaginationComponent } from './components/grid-pagination/grid-pagination.component';\nimport { ConfirmDialogComponent } from './components/confirm-dialog/confirm-dialog.component';\nimport { ViewpasswordPopupComponent } from './components/viewpassword-popup/viewpassword-popup.component';\n\n/* Pipes */\nimport { SliceToTwoPipe } from './pipes/slice-to-two.pipe';\nimport { customDateFormatPipe } from './pipes/custome-dateformat.pipe';\nimport { DateDiffPipe } from './pipes/date-diff.pipe';\nimport { COOKIECONSTANT, GlobalConstants } from './model/data_model';\nimport { StorageService } from './services/storage.service';\n\n@NgModule({\n declarations: [\n CommonHeaderLibComponent,\n SliceToTwoPipe,\n customDateFormatPipe,\n DateDiffPipe,\n UserSidebarComponent,\n SidePopupComponent,\n NgTranslationComponent,\n UserMailboxComponent,\n NotificationSidebarComponent,\n GeneralConfigurationComponent,\n TimezoneConfigurationComponent,\n LandingpgConfigComponent,\n NoServiceMyAccessPgComponent,\n GridPaginationComponent,\n ConfirmDialogComponent,\n ViewpasswordPopupComponent,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n ReactiveFormsModule,\n\n /* UI Modules */\n InputTextModule,\n DropdownModule,\n OverlayPanelModule,\n BadgeModule,\n DialogModule,\n SkeletonModule,\n PaginatorModule,\n TableModule,\n ButtonModule,\n ConfirmDialogModule,\n NgbModule,\n\n /* ngx-translate (isolated for library) */\n TranslateModule.forChild({\n loader: {\n provide: TranslateLoader,\n useFactory: createLibTranslateLoader,\n deps: [HttpClient],\n },\n isolate: true,\n }),\n ],\n exports: [\n CommonHeaderLibComponent,\n SliceToTwoPipe,\n DateDiffPipe,\n customDateFormatPipe,\n ConfirmDialogComponent,\n ViewpasswordPopupComponent,\n TranslateModule,\n ],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: initTranslateService,\n deps: [TranslateService, StorageService],\n multi: true,\n },\n ],\n})\nexport class CommonHeaderLibModule {}\n\nexport function initTranslateService(\n translate: TranslateService,\n localStorageService: StorageService,\n) {\n return () => {\n const supportedLangs = GlobalConstants.USERLANGUAGES;\n const defaultLang = GlobalConstants.DEFAULTLANG;\n\n let selectedLang = defaultLang;\n\n /* 1. Read from localStorage */\n const saved = localStorageService.getData(COOKIECONSTANT.USERLANG);\n\n if (saved) {\n try {\n const parsed = JSON.parse(saved);\n\n const isValid = supportedLangs.some(\n (lang) => lang.langKey === parsed?.langKey,\n );\n\n if (isValid) {\n selectedLang = parsed;\n }\n } catch {\n // corrupted JSON → fallback to default\n selectedLang = defaultLang;\n }\n }\n\n /* 2. Persist corrected value */\n localStorageService.saveData(\n COOKIECONSTANT.USERLANG,\n JSON.stringify(selectedLang),\n );\n /* 3. Apply language */\n translate.setDefaultLang(selectedLang.langKey);\n return translate.use(selectedLang.langKey).subscribe();\n };\n}\n\nexport function createLibTranslateLoader(http: HttpClient) {\n return new TranslateHttpLoader(\n http,\n 'assets/common-header-lib/i18n/',\n '.json',\n );\n}\n","/*\n * Public API Surface of common-header-lib\n */\nexport * from './lib/common-header-lib.service';\nexport * from './lib/common-header-lib.component';\nexport * from './lib/common-header-lib.module';\nexport * from './lib/pipes/slice-to-two.pipe';\nexport * from './lib/pipes/custome-dateformat.pipe';\nexport * from './lib/pipes/date-diff.pipe';\nexport * from './lib/components/confirm-dialog/confirm-dialog.component';\nexport * from './lib/components/viewpassword-popup/viewpassword-popup.component';\n// export * from './assets/js/bigint-decrypt.helper';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.StorageService","i2.EncrpdataService","i1","map","catchError","i1.HttpCommonService","i2.EncrydecryRSAdataService","i2","i2.CookieStorageManagerService","i3.EncrydecrydataService","i2.ToastMsgService","i3.StorageService","i4.EventService","i5","i6.HttpCommonService","i7","i1.CommonHeaderLibService","i3.ToastMsgService","i5.EncrydecryRSAdataService","i4.EncrydecryRSAdataService","i5.RESTLoginFormService","i6.ASYNCPasswordcheckService","i8.VaptValidationService","i9","i10.HttpCommonService","i11.HttpGeneralConfigurationService","i12","i14","i15","i16","i17.TimezoneConfigurationComponent","i18.LandingpgConfigComponent","i2.StorageService","i3","i4","takeUntil","i4.ToastMsgService","i5.StorageService","i6.CommonHeaderLibService","i8.HttpCommonService","i10","i11.NgTranslationComponent","i12.SliceToTwoPipe","finalize","i3.EventService","i5.HttpCommonService","i8","i9.DateDiffPipe","i2.EventService","i4.CommonHeaderLibService","i10.NoServiceMyAccessPgComponent","i11.GridPaginationComponent","i12.customDateFormatPipe","i2.RestSignalRService","i7.ToastMsgService","i11","i13","i15.UserSidebarComponent","i16.SidePopupComponent","i17.UserMailboxComponent","i18.NoServiceMyAccessPgComponent","i19.ConfirmDialogComponent","i20.SliceToTwoPipe","i3.NoServiceMyAccessPgComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAa,eAAe,CAAA;;AAEH,eAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,eAAc,CAAA,cAAA,GAAW,MAAM,CAAC;AAEzC,eAAe,CAAA,eAAA,GAAW,EAAE,CAAC;AAE7B,eAAoB,CAAA,oBAAA,GAAW,EAAE,CAAC;AAElC,eAAqB,CAAA,qBAAA,GAAW,GAAG,CAAC;AAWpC,eAAe,CAAA,eAAA,GAAW,eAAe,CAAC;AAC1C,eAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AAIvB,eAAY,CAAA,YAAA,GAAW,yBAAyB,CAAC;AACjD,eAAO,CAAA,OAAA,GAAW,WAAW,CAAC;AAI9B,eAAiB,CAAA,iBAAA,GAC7B,0CAA0C,CAAC;AAC/B,eAAe,CAAA,eAAA,GAAW,EAAE,CAAC;AAC7B,eAAA,CAAA,6BAA6B,GAAW,EAAE,CAAC;AAE3C,eAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AAGlC,eAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AACvB,eAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AACxB,eAAO,CAAA,OAAA,GAAW,EAAE,CAAC;AACrB,eAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AAClC,eAAA,CAAA,aAAa,GAAG;AAC5B,IAAA,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;AACtC,IAAA,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;AACtC,IAAA,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;AACtC,IAAA,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACrC,IAAA,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;AACjC,IAAA,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE;AACvC,IAAA,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;AACtC,IAAA,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;CACnC,CAAC;AACY,eAAW,CAAA,WAAA,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACrD,eAAc,CAAA,cAAA,GAAW,IAAI,CAAC;AAC9B,eAAe,CAAA,eAAA,GAAW,gBAAgB,CAAC;AAC3C,eAAA,CAAA,aAAa,GAAW,CAAA,EAAG,eAAe,CAAC,eAAe,yBAAyB,CAAC;AACpF,eAAA,CAAA,YAAY,GAAW,CAAA,EAAG,eAAe,CAAC,eAAe,kBAAkB,CAAC;AAC5E,eAAQ,CAAA,QAAA,GAAW,wBAAwB,CAAC;AAC5C,eAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,eAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAC3B,eAAW,CAAA,WAAA,GAAW,EAAE,CAAC;MAG5B,gBAAgB,CAAA;IAYpB,OAAO,wBAAwB,CAAC,GAAa,EAAA;QAClD,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1D;;AAVa,gBAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;AAEjC,gBAAQ,CAAA,QAAA,GAAW,CAAC,CAAC;MAexB,UAAU,CAAA;;AACd,UAAY,CAAA,YAAA,GAAG,OAAO,CAAC;AACvB,UAAW,CAAA,WAAA,GAAG,YAAY,CAAC;AAC3B,UAAkB,CAAA,kBAAA,GAAG,cAAc,CAAC;AACpC,UAAc,CAAA,cAAA,GAAG,WAAW,CAAC;AAC7B,UAAoB,CAAA,oBAAA,GAAG,gBAAgB,CAAC;AACxC,UAAgB,CAAA,gBAAA,GAAG,aAAa,CAAC;AACjC,UAAW,CAAA,WAAA,GAAG,QAAQ,CAAC;AACvB,UAAmB,CAAA,mBAAA,GAAG,gBAAgB,CAAC;AACvC,UAA0B,CAAA,0BAAA,GAAG,uBAAuB,CAAC;AACrD,UAAU,CAAA,UAAA,GAAG,OAAO,CAAC;AACrB,UAAY,CAAA,YAAA,GAAG,gBAAgB,CAAC;MAG5B,QAAQ,CAAA;;AACL,QAAO,CAAA,OAAA,GAAG,CAAA,4FAAA,CAA8F,CAAC;AACzG,QAAa,CAAA,aAAA,GAAG,CAAA,iCAAA,CAAmC,CAAC;AACpD,QAAc,CAAA,cAAA,GAAG,CAAA,mJAAA,CAAqJ,CAAC;AACvK,QAAW,CAAA,WAAA,GAAG,CAAA,0CAAA,CAA4C,CAAC;AAC3D,QAAU,CAAA,UAAA,GAAG,CAAA,4CAAA,CAA8C,CAAC;AAC5D,QAAU,CAAA,UAAA,GAAG,CAAA,8CAAA,CAAgD,CAAC;AAC9D,QAAoB,CAAA,oBAAA,GAAG,CAAA,0CAAA,CAA4C,CAAC;AACpE,QAAQ,CAAA,QAAA,GAAG,CAAA,4BAAA,CAA8B,CAAC;AAC1C,QAAS,CAAA,SAAA,GAAG,CAAA,0CAAA,CAA4C,CAAC;AACzD,QAAY,CAAA,YAAA,GAAG,CAAA,8CAAA,CAAgD,CAAC;AAChE,QAAY,CAAA,YAAA,GAAG,CAAA,oBAAA,CAAsB,CAAC;AACtC,QAAe,CAAA,eAAA,GAAG,CAAA,8BAAA,CAAgC,CAAC;AACnD,QAAY,CAAA,YAAA,GAAG,CAAA,iCAAA,CAAmC,CAAC;AACnD,QAAW,CAAA,WAAA,GAAG,uBAAuB,CAAC;AACtC,QAAW,CAAA,WAAA,GAAG,yBAAyB,CAAC;AACxC,QAAmB,CAAA,mBAAA,GAAG,uCAAuC,CAAC;AAC9D,QAAgB,CAAA,gBAAA,GAC5B,mDAAmD,CAAC;AACxC,QAAiB,CAAA,iBAAA,GAC7B,+CAA+C,CAAC;AACpC,QAAW,CAAA,WAAA,GAAG,sCAAsC,CAAC;AACrD,QAAS,CAAA,SAAA,GAAG,iCAAiC,CAAC;AAC9C,QAAkB,CAAA,kBAAA,GAAG,uBAAuB,CAAC;AAC7C,QAAc,CAAA,cAAA,GAAG,8BAA8B,CAAC;AAChD,QAAmB,CAAA,mBAAA,GAC/B,wDAAwD,CAAC;AAC7C,QAAW,CAAA,WAAA,GAAG,wBAAwB,CAAC;AACvC,QAAkB,CAAA,kBAAA,GAC9B,yEAAyE,CAAC;AAC9D,QAAU,CAAA,UAAA,GAAG,gBAAgB,CAAC;AAC9B,QAAiB,CAAA,iBAAA,GAC7B,6EAA6E,CAAC;AAClE,QAAc,CAAA,cAAA,GAAG,8BAA8B,CAAC;AAChD,QAAoB,CAAA,oBAAA,GAChC,0DAA0D,CAAC;AAC/C,QAAsB,CAAA,sBAAA,GAClC,kEAAkE,CAAC;AACvD,QAAgB,CAAA,gBAAA,GAAG,CAAA,oCAAA,CAAsC,CAAC;AAC1D,QAAc,CAAA,cAAA,GAAG,CAAA,0CAAA,CAA4C,CAAC;AAC9D,QAAW,CAAA,WAAA,GAAG,CAAA,0BAAA,CAA4B,CAAC;MAG9C,cAAc,CAAA;;AACX,cAAO,CAAA,OAAA,GAAW,SAAS,CAAC;AAC5B,cAAS,CAAA,SAAA,GAAW,YAAY,CAAC;AACjC,cAAQ,CAAA,QAAA,GAAW,UAAU,CAAC;AAC9B,cAAW,CAAA,WAAA,GAAW,YAAY,CAAC;AACnC,cAAS,CAAA,SAAA,GAAW,eAAe,CAAC;AACpC,cAAQ,CAAA,QAAA,GAAW,UAAU,CAAC;AAC9B,cAAM,CAAA,MAAA,GAAW,QAAQ,CAAC;AAC1B,cAAG,CAAA,GAAA,GAAW,KAAK,CAAC;AACpB,cAAG,CAAA,GAAA,GAAW,KAAK,CAAC;AACpB,cAAe,CAAA,eAAA,GAAW,iBAAiB,CAAC;AAC5C,cAAY,CAAA,YAAA,GAAW,cAAc,CAAC;AACtC,cAAS,CAAA,SAAA,GAAW,WAAW,CAAC;AAChC,cAAS,CAAA,SAAA,GAAW,OAAO,CAAC;AAC5B,cAAc,CAAA,cAAA,GAAW,gBAAgB,CAAC;AAC1C,cAAgB,CAAA,gBAAA,GAAW,GAAG,CAAC;AAC/B,cAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,cAAiB,CAAA,iBAAA,GAAW,GAAG,CAAC;AAChC,cAAc,CAAA,cAAA,GAAW,MAAM,CAAC;AAChC,cAAO,CAAA,OAAA,GAAW,YAAY,CAAC;AAC/B,cAAS,CAAA,SAAA,GAAW,QAAQ,CAAC;AAC7B,cAAS,CAAA,SAAA,GAAW,aAAa,CAAC;AAClC,cAAU,CAAA,UAAA,GAAW,aAAa,CAAC;AACnC,cAAQ,CAAA,QAAA,GAAW,MAAM,CAAC;AAC1B,cAAA,CAAA,UAAU,GAAW,MAAM,CAAC;AAC5B,cAAc,CAAA,cAAA,GAAW,OAAO,CAAC;AACjC,cAAkB,CAAA,kBAAA,GAAW,QAAQ,CAAC;AACtC,cAAM,CAAA,MAAA,GAAW,aAAa,CAAC;AAC/B,cAAiB,CAAA,iBAAA,GAAW,uBAAuB,CAAC;AACpD,cAAa,CAAA,aAAA,GAAW,WAAW,CAAC;AACpC,cAAa,CAAA,aAAA,GAAW,OAAO,CAAC;AAChC,cAAe,CAAA,eAAA,GAAW,SAAS,CAAC;AAG7C,MAAM,aAAa,GAAa;IACrC,yBAAyB;IACzB,uDAAuD;IACvD,gEAAgE;IAChE,6CAA6C;IAC7C,4CAA4C;CAC7C,CAAC;MAEW,QAAQ,CAAA;;AACL,QAAS,CAAA,SAAA,GAAW,CAAC,CAAC;AACtB,QAAS,CAAA,SAAA,GAAW,CAAC,CAAC;AACtB,QAAK,CAAA,KAAA,GAAW,CAAC,CAAC;MAGrB,WAAW,CAAA;;AACR,WAAM,CAAA,MAAA,GAAG,QAAQ,CAAC;AAClB,WAAO,CAAA,OAAA,GAAG,SAAS,CAAC;AACpB,WAAI,CAAA,IAAA,GAAG,MAAM,CAAC;AACd,WAAM,CAAA,MAAA,GAAG,QAAQ,CAAC;AAClB,WAAK,CAAA,KAAA,GAAG,OAAO,CAAC;AAChB,WAAW,CAAA,WAAA,GAAG,mBAAmB,CAAC;AAGlD;AACA;AACA;AACA;AACA;AACA;AACA;MAEa,YAAY,CAAA;AAAzB,IAAA,WAAA,GAAA;AACE,QAAA,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AACvB,QAAA,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AACxB,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACzB,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,QAAA,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AACxB,QAAA,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;AACtB,QAAA,IAAyB,CAAA,yBAAA,GAAW,EAAE,CAAC;KACxC;AAAA,CAAA;AAaD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;MC/Qa,sBAAsB,CAAA;AAEjC,IAAA,WAAA,CAA6B,IAAgB,EAAA;AAAhB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAD7C,QAAA,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;KAC6B;IACjD,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CACF,eAAe,CAAC,OAAO,GAAG,6CAA6C,CACxE;AACA,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,CACH,CAAC;KACL;AACD,IAAA,sBAAsB,CAAC,GAAW,EAAA;QAChC,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAC,GAAG,GAAG,8CAA8C,EAAE,EAAE,CAAC;AAC9D,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;;AAEpB,YAAA,OAAO,QAAQ,CAAC;SACjB,CAAC,CACH,CAAC;KACL;AACD,IAAA,UAAU,CAAC,GAAW,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,wBAAwB,CAAC,CAAC,IAAI,CACvD,GAAG,CAAC,CAAC,QAAa,KAAI;YACpB,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,YAAA,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE;;gBAElC,IAAI,MAAM,GAAG,QAAQ,CAAC;AACtB,gBAAA,OAAO,MAAM,CAAC;AACf,aAAA;SACF,CAAC,CACH,CAAC;KACH;AACD,IAAA,mBAAmB,CAAC,GAAW,EAAA;QAC7B,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAC,GAAG,GAAG,iDAAiD,EAAE,EAAE,CAAC;AACjE,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC9B,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,IAAI,IAAI;;iBAE9B,CAAC;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,CACH,CAAC;KACL;AACD,IAAA,wBAAwB,CAAC,GAAW,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,wCAAwC,CAAC,CAAC,IAAI,CACvE,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC7D,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;SACF,CAAC,CACH,CAAC;KACH;IACD,oBAAoB,CAAC,WAAgB,EAAE,GAAW,EAAA;QAChD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAC,GAAG,GAAG,mCAAmC,EAAE,WAAW,CAAC;AAC5D,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,CACH,CAAC;KACL;IACD,+BAA+B,CAAC,WAAgB,EAAE,GAAW,EAAA;QAC3D,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,GAAG,GAAG,gEAAgE,EACtE,WAAW,CACZ;AACA,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;YACpB,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;AACtC,gBAAA,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AACD,IAAA,YAAY,CAAC,CAAM,EAAA;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;AACD,IAAA,gCAAgC,CAAC,GAAW,EAAA;QAC1C,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CAAC,GAAG,GAAG,gDAAgD,CAAC;AAC3D,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;IACD,yBAAyB,CAAC,OAAY,EAAE,GAAW,EAAA;QACjD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAC,GAAG,GAAG,yCAAyC,EAAE,OAAO,CAAC;AAC9D,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;IACD,8BAA8B,CAAC,OAAY,EAAE,GAAW,EAAA;QACtD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAC,GAAG,GAAG,8CAA8C,EAAE,OAAO,CAAC;AACnE,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;IACD,wBAAwB,CAAC,OAAY,EAAE,GAAW,EAAA;QAChD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,GAAG,GAAG,yDAAyD,EAC/D,OAAO,CACR;AACA,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;IACD,oBAAoB,CAAC,OAAY,EAAE,GAAW,EAAA;QAC5C,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAC,GAAG,GAAG,iDAAiD,EAAE,OAAO,CAAC;AACtE,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;IAED,kBAAkB,CAAC,EAAU,EAAE,GAAW,EAAA;AACxC,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,GAAG,GAAG,yCAAyC,EAC/C,EAAE,EACF,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB;AACA,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;IACD,sBAAsB,CAAC,QAAgB,EAAE,GAAW,EAAA;QAClD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAC,GAAG,GAAG,yCAAyC,EAAE;AACrD,YAAA,QAAQ,EAAE,QAAQ;SACnB,CAAC;AACD,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;IACD,qBAAqB,GAAA;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,iCAAiC,EAAE,EAAE,CAAC,CAAC,IAAI,CACzF,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACH;;mHA5NU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;2FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCFY,cAAc,CAAA;AACzB,IAAA,WAAA,GAAA,GAAgB;IAET,QAAQ,CAAC,GAAW,EAAE,KAAa,EAAA;AACxC,QAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAClC;AAEM,IAAA,OAAO,CAAC,GAAW,EAAA;AACxB,QAAA,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAClC;AACM,IAAA,UAAU,CAAC,GAAW,EAAA;AAC3B,QAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC9B;IAEM,SAAS,GAAA;QACd,YAAY,CAAC,KAAK,EAAE,CAAC;KACtB;AAEM,IAAA,SAAS,CAAC,GAAW,EAAA;QAC1B,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACvC,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;;2GAxBU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCEY,gBAAgB,CAAA;AAI3B,IAAA,WAAA,GAAA;;;AADQ,QAAA,IAAU,CAAA,UAAA,GAAS,EAAE,CAAC;KACd;AAEhB,IAAA,aAAa,CAAC,IAAY,EAAA;QACxB,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;AAGD,IAAA,cAAc,CAAC,GAAQ,EAAE,IAAY,EAAE,IAAY,EAAA;QACjD,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,YAAA,IAAI,IAAI,GAAG,IAAA,CAAA,GAAA,CAAA,GAAG,CAAC,CAAC,CAAC,EAAI,IAAI,CAAA,GAAG,IAAI,CAAC;AACjC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,gBAAgB,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC;QAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAW,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,GAAW,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;QAGpC,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;;AAG1C,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;;;QAI1D,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/D,QAAA,OAAO,WAAW,CAAC;KACpB;AAED,IAAA,cAAc,CAAC,IAAS,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;KACnB;AAED,IAAA,cAAc,CAAC,IAAS,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;KACnB;;6GAjDU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACID;MAKa,kBAAkB,CAAA;IAM7B,WACmB,CAAA,aAA6B,EAAmB,iBAAmC,EAAA;AAAnF,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;AAAmB,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;QAL5F,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;AACxC,QAAA,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AACzB,QAAA,IAAO,CAAA,OAAA,GAAa,EAAE,CAAC;;AAOxB,QAAA,IAAqB,CAAA,qBAAA,GAAG,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;;AAExC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE;AACpD,iBAAA,OAAO,CAAC,CAAG,EAAA,eAAe,CAAC,UAAU,UAAU,EAAE;AAChD,gBAAA,eAAe,EAAE,IAAI;AACrB,gBAAA,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,UAAU;gBAC/C,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,CAAA,CAAE,EAAE;aACvD,CAAC;AACD,iBAAA,KAAK,EAAE,CAAC;YAEX,IAAI;AACF,gBAAA,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACjC,gBAAA,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;gBAC3D,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,aAAA;AACD,YAAA,OAAO,KAAK,EAAE;AACZ,gBAAA,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;AAC/D,gBAAA,MAAM,KAAK,CAAC;AACb,aAAA;AAGH,SAAC,CAAA,CAAC;KAxBG;IA0BQ,2BAA2B,GAAA;;AAEtC,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AAC/B,gBAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACzC,aAAA;YAED,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACvF,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7C,gBAAA,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACnC,OAAO;AACR,aAAA;AAED,YAAA,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAE5C,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,gBAAA,MAAM,KAAK,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxD,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjD,IAAI;AACF,oBAAA,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBACnC,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACjC,oBAAA,MAAM;AACP,iBAAA;AAAC,gBAAA,OAAO,KAAK,EAAE;AACd,oBAAA,OAAO,CAAC,KAAK,CAAC,CAAA,wBAAA,EAA2B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC,CAAC;AACzE,iBAAA;AACF,aAAA;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,gBAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACnD,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;IAEM,kBAAkB,GAAA;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAAS,EAAE,IAAS,KAAI;YAC/D,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAClD,YAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,YAAY,CAAC,IAAS,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;IAED,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;KACrC;IAEO,kBAAkB,GAAA;AACxB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC3E,OAAO,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACtF;IACO,gBAAgB,GAAA;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC3E,OAAO,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACtF;AAEO,IAAA,gBAAgB,CAAC,KAAa,EAAA;AACpC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;KACtE;;+GA9FU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCLY,YAAY,CAAA;AASvB,IAAA,WAAA,CAAoB,OAAuB,EAAA;AAAvB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QARnC,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;QAC1C,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;QAC5C,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAO,CAAC;QACnC,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;QAC3C,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;QAC7C,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC,CAAC;KAEA;AAEhD,IAAA,YAAY,CAAC,IAAS,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;IAED,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;KACvC;AAED,IAAA,kBAAkB,CAAC,IAAS,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,sBAAsB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KACzC;AAED,IAAA,kBAAkB,CAAC,IAAS,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;IAED,sBAAsB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KAC3C;AAED,IAAA,iBAAiB,CAAC,IAAS,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;IAED,mBAAmB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;KAC1C;AAED,IAAA,cAAc,CAAC,IAAS,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;IAED,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KACxC;AAED,IAAA,aAAa,CAAC,IAAS,EAAA;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;KAC1C;AAED,IAAA,YAAY,CAAC,IAAS,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;IAED,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;KACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCD,IAAA,QAAQ,CAAC,MAAc,EAAA;QACvB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,KAAI;AAC9C,YAAA,MAAM,MAAM,GAAG,CAAA;4CACyB,CAAC;AAEzC,YAAA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;YAEnE,IAAI,CAAC,SAAS,EAAE;AACd,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;gBAC/D,OAAO;AACR,aAAA;;AAGD,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;gBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE;oBACnD,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,SAAS,CAAC,KAAK,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,CAAC;AACf,iBAAA;qBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;oBAC9D,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,SAAS,CAAC,KAAK,EAAE,CAAC;oBAClB,MAAM,CAAC,KAAK,CAAC,CAAC;AACf,iBAAA;aACF,EAAE,IAAI,CAAC,CAAC;;AAGT,YAAA,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAK;gBACxC,IAAI,SAAS,CAAC,MAAM,EAAE;oBACpB,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,aAAa,CAAC,gBAAgB,CAAC,CAAC;oBAChC,MAAM,CAAC,KAAK,CAAC,CAAC;AACf,iBAAA;aACF,EAAE,GAAG,CAAC,CAAC;AACV,SAAC,CAAC,CAAC;KACJ;;yGAxIY,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCCY,iBAAiB,CAAA;AAO5B,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAAhB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAN5B,QAAA,IAAa,CAAA,aAAA,GAAW,4BAA4B,CAAC;AACrD,QAAA,IAAU,CAAA,UAAA,GAAW,qBAAqB,CAAC;AAC3C,QAAA,IAAW,CAAA,WAAA,GAAW,qBAAqB,CAAC;AAC5C,QAAA,IAAc,CAAA,cAAA,GAAW,6BAA6B,CAAC;AACvD,QAAA,IAAc,CAAA,cAAA,GAAW,kCAAkC,CAAC;KAE5B;IAExC,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAM,CAAG,EAAA,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAA,cAAA,CAAgB,CAAC;AACzE,aAAA,IAAI,CACHC,KAAG,CAAC,CAAC,QAAQ,KAAI;AACf,YAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC3B,CAAC,CACH,CAAC;KACL;IAED,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,CAAG,EAAA,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAA,kBAAA,CAAoB,CAAC;AACxE,aAAA,IAAI,CACHA,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,CACH,CAAC;KACL;AAED,IAAA,kBAAkB,CAAC,EAAU,EAAA;AAC3B,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAG,EAAA,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,aAAa,CAAgB,cAAA,CAAA,EAC/D,EAAE,EACF,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB;AACA,aAAA,IAAI,CACHA,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,CACH,CAAC;KACL;IAED,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,CAAG,EAAA,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAA,IAAA,CAAM,CAAC;AACvD,aAAA,IAAI,CACHA,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,OAAO,QAAQ,CAAC;SACjB,CAAC,CACH,CAAC;KACL;IAED,wBAAwB,GAAA;QACtB,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAM,CAAG,EAAA,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAA,YAAA,CAAc,CAAC;AACxE,aAAA,IAAI,CACHA,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC7D,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;SACF,CAAC,CACH,CAAC;KACL;AAED,IAAA,oBAAoB,CAAC,WAAgB,EAAA;QACnC,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,CAAA,OAAA,CAAS,EACzD,WAAW,CACZ;AACA,aAAA,IAAI,CACHA,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,CACH,CAAC;KACL;AAED;AACsC;AACtC,IAAA,8BAA8B,CAAC,WAAgB,EAAA;QAC7C,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,CAAA,cAAA,CAAgB,EAChE,WAAW,CACZ;AACA,aAAA,IAAI,CACHA,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;gBACnC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5C,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACFC,YAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;IAED,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,sBAAA,CAAwB,EACvE,EAAE,CACH;AACA,aAAA,IAAI,CACHD,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC9B,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,IAAI,IAAI,CAE9B,CAAC;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,CACH,CAAC;KACL;IAED,sBAAsB,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,mBAAA,CAAqB,EACpE,EAAE,CACH;AACA,aAAA,IAAI,CACHA,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,OAAO,QAAQ,CAAC;SACjB,CAAC,CACH,CAAC;KACL;;;AAID,IAAA,sBAAsB,CAAC,WAAgB,EAAA;QACrC,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,CAAA,sBAAA,CAAwB,EACxE,WAAW,CACZ;AACA,aAAA,IAAI,CACHA,KAAG,CAAC,CAAC,QAAa,KAAI;YACpB,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;gBACtC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC1B,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,EAAE,CAAC;AACX,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACFC,YAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AAED,IAAA,+BAA+B,CAAC,WAAgB,EAAA;QAC9C,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,CAAA,+BAAA,CAAiC,EACjF,WAAW,CACZ;AACA,aAAA,IAAI,CACHD,KAAG,CAAC,CAAC,QAAa,KAAI;YACpB,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;;AAEtC,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,CACH,CAAC;KACL;AAED,IAAA,sBAAsB,CAAC,QAAgB,EAAA;QACrC,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,CAAG,EAAA,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAA,cAAA,CAAgB,EAAE;AACrE,YAAA,QAAQ,EAAE,QAAQ;SACnB,CAAC;AACD,aAAA,IAAI,CACHA,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,CACH,CAAC;KACL;AAED;;;AAGK;AACL,IAAA,gBAAgB,CAAC,WAAgB,EAAA;QAC/B,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,gBAAA,CAAkB,EACjE,WAAW,CACZ;AACA,aAAA,IAAI,CAACC,YAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9D;AAED;;AAEK;AACL,IAAA,cAAc,CAAC,mBAAwB,EAAA;QACrC,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,aAAa,CAAA,wBAAA,CAA0B,EACzE,mBAAmB,CACpB;AACA,aAAA,IAAI,CAACA,YAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9D;AAED,IAAA,YAAY,CAAC,CAAM,EAAA;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;AAED;AACmD;AACnD,IAAA,8BAA8B,CAAC,WAAgB,EAAA;QAC7C,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,CAAA,uBAAA,CAAyB,EACzE,WAAW,CACZ;AACA,aAAA,IAAI,CACHD,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;SACF,CAAC,EACFC,YAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AAED;;;AAGK;IAEL,sBAAsB,CAAC,KAAa,EAAE,EAAY,EAAA;QAChD,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAG,EAAA,IAAI,CAAC,WAAW,CAA+B,4BAAA,EAAA,KAAK,CAAE,CAAA,EACnF,EAAE,CACH;AACA,aAAA,IAAI,CACHD,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE;AAClC,gBAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChC,gBAAA,OAAO,MAAM,CAAC;AACf,aAAA;SACF,CAAC,EACFC,YAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;;8GAlRU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;2FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCDY,eAAe,CAAA;AAM1B,IAAA,WAAA,CAAoB,MAAqB,EAAA;AAArB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;AALjC,QAAA,IAAgB,CAAA,gBAAA,GAAW,eAAe,CAAC;AAC3C,QAAA,IAAc,CAAA,cAAA,GAAW,YAAY,CAAC;AACtC,QAAA,IAAe,CAAA,eAAA,GAAW,aAAa,CAAC;AACxC,QAAA,IAAiB,CAAA,iBAAA,GAAW,YAAY,CAAC;KAEJ;AAE7C,IAAA,OAAO,CAAC,WAAmB,EAAA;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,WAAW,CAAC,CAAC;AAElD,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3B,IAAI,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;gBAC9D,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnE,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAClC,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAClC,SAAA;KACF;AAED,IAAA,KAAK,CAAC,WAAmB,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3B,IAAI,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;gBAC7D,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAClE,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAChC,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAChC,SAAA;KACF;AAED,IAAA,IAAI,CAAC,WAAmB,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3B,IAAI,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;gBAC5D,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACjE,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/B,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/B,SAAA;KACF;AAED,IAAA,OAAO,CAAC,WAAmB,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3B,IAAI,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;gBAC/D,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACpE,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAClC,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAClC,SAAA;KACF;IAEO,wBAAwB,CAC9B,WAAmB,EACnB,SAAiB,EAAA;QAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;AAElE,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,GAAG,WAAW,CAAC;;AAE3D,SAAA;KACF;IAEO,gBAAgB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,GAAG,KAAK,CAAC;KACnD;AAEO,IAAA,4BAA4B,CAAC,IAAY,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,KACzC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC3E,CAAC;KACH;AAEO,IAAA,8BAA8B,CAAC,IAAY,EAAA;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAC5B,CAAC,SAAS,KACR,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,SAAS,IAAI,IAAI,CACtE,CAAC;KACH;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;KACrB;;4GA1FU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCEY,wBAAwB,CAAA;IAC5B,cAAc,GAAA;AACnB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACtC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;AACvC,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;QAE7B,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACxE,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC,qBAAqB,GAAG,GAAG,GAAG,oBAAoB,CAAC,CAAC;KACnE;AAEM,IAAA,aAAa,CAAC,UAAe,EAAA;QAClC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACxD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACpE,QAAA,OAAO,aAAa,CAAC;KACtB;AAEM,IAAA,aAAa,CAAC,UAAkB,EAAA;QACrC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACxD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACpE,QAAA,OAAO,aAAa,CAAC;KACtB;IAEO,gBAAgB,GAAA;AACtB,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC9C,QAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7C,QAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;KACpB;AAEO,IAAA,WAAW,CAAC,SAAc,EAAE,IAAY,EAAE,GAAW,EAAA;;QAE3D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE;AACvD,YAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACvC,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACzC,QAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE;AACrD,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG;AACvB,YAAA,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK;AAC5B,SAAA,CAAC,CAAC;AACH,QAAA,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC7B;IAEO,mBAAmB,CAAC,GAAW,EAAE,SAAiB,EAAA;QACxD,IAAI;AACF,YAAA,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;AAC5B,YAAA,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC5B,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,YAAY;AACf,gBAAA,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;AACJ,YAAA,OAAO,YAAY,CAAC;AACrB,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,CAAA,kBAAA,EAAsB,KAAe,CAAC,OAAO,CAAE,CAAA,CAAC,CAAC;AAC/D,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;AAEO,IAAA,WAAW,CAAC,eAAuB,EAAE,IAAY,EAAE,GAAW,EAAA;AACpE,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACzC,QAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE;AAC3D,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG;AACvB,YAAA,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK;AAC5B,SAAA,CAAC,CAAC;QACH,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAC9C;IAEO,YAAY,GAAA;AAClB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAChC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAC1C,CAAC;AACF,QAAA,OAAO,SAAS,CAAC;KAClB;IAEO,oBAAoB,GAAA;QAC1B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtB,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/B,YAAA,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACrB,YAAA,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACrB,SAAA;AACD,QAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;KAC5B;AAED,IAAA,WAAW,CAAC,SAAiB,EAAA;;QAC3B,MAAM,SAAS,GAAG,4BAA4B,CAAC;QAC/C,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAC7C,QAAA,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,MAAM,YAAY,GAChB,CAAA,CAAA,EAAA,GAAA,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAA,IAAA,EAAO,SAAS,CAAG,CAAA,CAAA,EAAE,GAAG,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,IAAI,CAAC,KAAI,EAAE,CAAC;AAC1E,QAAA,OAAO,GAAG,SAAS,CAAA,EAAA,EAAK,YAAY,CAAK,EAAA,EAAA,SAAS,EAAE,CAAC;KACtD;;qHApGU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA;2FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCIY,yBAAyB,CAAA;IAIpC,WACmB,CAAA,iBAAoC,EACpC,cAAwC,EAAA;AADxC,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AACpC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAA0B;AAL3D,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACjB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAU,CAAC;KAK1C;IAEJ,eAAe,GAAA;QACb,OAAO,CACL,OAAwB,KACqB;;AAE7C,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEtE,YAAA,IAAI,UAAU,GAAG;AACf,gBAAA,UAAU,EAAE,YAAY;;;aAGzB,CAAC;AACF,YAAA,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAC9B,YAAY,CAAC,GAAG,CAAC,EACjB,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,CAAC,CAAC,KACV,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,IAAI,CACtD,GAAG,CAAC,CAAC,IAAS,KAAI;AAChB,gBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;AACnB,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;;AAEnC,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACzC,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;AACxC,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;AAEzC,oBAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC7B,iBAAA;AACH,aAAC,CAAC,EACF,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAC3C,CACF,CACF,CAAC;AACJ,SAAC,CAAC;KACH;AAED,IAAA,iBAAiB,CAAC,GAAW,EAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9B;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;KAC1C;;sHApDU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFxB,MAAM,EAAA,CAAA,CAAA;2FAEP,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;AAwDe,SAAA,kBAAkB,CAChC,WAAmB,EACnB,mBAA2B,EAAA;IAE3B,OAAO,CAAC,SAAoB,KAAI;QAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAChE,IACE,eAAe,CAAC,MAAM;AACtB,YAAA,CAAC,eAAe,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAC7C;YACA,OAAO;AACR,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,EAAE;YAC3C,eAAe,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,SAAA;AAAM,aAAA;AACL,YAAA,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACjC,SAAA;AACH,KAAC,CAAC;AACJ;;SClFgB,cAAc,GAAA;IAC5B,OAAO,CAAC,OAAwB,KAA6B;AAC3D,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAe,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAC;AACb,SAAA;;QAGD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;;AAG9C,QAAA,IAAI,eAAe,EAAE;AACnB,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1B,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;AACd,KAAC,CAAC;AACJ;;MCVa,2BAA2B,CAAA;IACtC,WAAoB,CAAA,MAAqB,EAAU,KAAiB,EAAA;AAAhD,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;AAAU,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;KAAI;;AAGxE,IAAA,eAAe,CAAC,aAAkB,EAAA;QAChC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC9C,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;KACF;;AAGD,IAAA,cAAc,CAAC,YAAiB,EAAA;QAC9B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC7C,QAAA,IAAI,MAAM,EAAE;YACV,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAChD,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;;AAEI,aAAA;AACH,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;;IAGD,eAAe,CAAC,GAAQ,EAAE,KAAU,EAAA;QAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAC7B;;AAGD,IAAA,YAAY,CAAC,SAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KAC/B;;IAGD,eAAe,GAAA;QACb,MAAM,OAAO,GAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACzC,QAAA,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE;AAChC,YAAA,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;AACtC,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAChC,aAAA;AACF,SAAA;KACF;;;;;;;;;;;;;AAeD,IAAA,aAAa,CAAC,IAAY,EAAE,KAAa,EAAE,YAAoB,EAAA;QAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/D,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,CAAC;YACxE,IAAI,CAAC,eAAe,CAAC,CAAG,EAAA,IAAI,CAAI,CAAA,EAAA,CAAC,CAAE,CAAA,EAAE,KAAK,CAAC,CAAC;AAC7C,SAAA;KACF;;wHAhEU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAF1B,MAAM,EAAA,CAAA,CAAA;2FAEP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCAY,qBAAqB,CAAA;AAYhC,IAAA,WAAA,CAAoB,eAA+B,EAAA;AAA/B,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAgB;AAXnD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CACX,4JAA4J,CAC7J,CAAC;AACF,QAAA,IAAA,CAAA,CAAC,GAAG,MAAM,CACR,4JAA4J,CAC7J,CAAC;AACF,QAAA,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;AACb,QAAA,IAAG,CAAA,GAAA,GAAG,QAAQ,CAAC;AACf,QAAA,IAAA,CAAA,GAAG,GAAG,QAAQ,GAAG,QAAQ,CAAC;KAG6B;IAEhD,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,IAAI,GAAG,iBAAiB,CAAC,MAAM,CACjC,IAAI,CAAC,QAAQ,EACb,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EACxB,IAAI,CAAC,IAAI,CACV,CAAC;AACF,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,OAAO,CAAC,GAAW,EAAA;QACxB,IAAI,UAAU,GAAG,iBAAiB,CAAC,MAAM,CACvC,MAAM,CAAC,GAAG,CAAC,EACX,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EACxB,IAAI,CAAC,IAAI,CACV,CAAC;;AAGF,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAC3B,cAAc,CAAC,SAAS,EACxB,UAAU,CAAC,QAAQ,EAAE,CACtB,CAAC;KACH;AAEM,IAAA,gBAAgB,CAAC,UAAkB,EAAA;AACxC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACnE,QAAA,OAAO,oBAAoB,CAAC;KAC7B;AAEM,IAAA,gBAAgB,CAAC,UAAkB,EAAA;QACxC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAC1D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AACrD,QAAA,OAAO,cAAc,CAAC;KACvB;AAEM,IAAA,wBAAwB,CAAC,UAAkB,EAAA;QAChD,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACtD,QAAA,OAAO,WAAW,CAAC;KACpB;;;;;;;;;;;;;;;;;;;;;IAuBO,UAAU,CAAC,SAAiB,EAAE,GAAW,EAAA;AAC/C,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,cAAc,GAAa,EAAE,CAAC;AAEpC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,SAAS,GAAG,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/C,YAAA,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;AACzB,gBAAA,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AACrC,aAAA;YACD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACxC,SAAA;AAED,QAAA,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,CAAC;KAC/C;IAEO,cAAc,CAAC,OAAe,EAAE,YAAoB,EAAA;QAC1D,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;;AAElE,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;;KAEtD;AAEO,IAAA,kBAAkB,CAAC,YAAoB,EAAA;AAC7C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACxD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,UAAU,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7C,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;AAEO,IAAA,aAAa,CAAC,KAAiB,EAAA;QACrC,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;AAEO,IAAA,sBAAsB,CAAC,gBAA4B,EAAA;QACzD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AACtE,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AACzC,QAAA,OAAO,YAAY,CAAC;KACrB;AAEO,IAAA,aAAa,CAAC,GAAW,EAAA;QAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACnD,QAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,EAAE;YACZ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtE,CAAC,IAAI,CAAC,CAAC;AACR,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAEO,OAAO,CAAC,IAAgB,EAAE,GAAW,EAAA;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAElD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5D,SAAA;AAED,QAAA,OAAO,aAAa,CAAC;KACtB;IAEO,OAAO,CAAC,IAAgB,EAAE,GAAW,EAAA;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAChC;IAEO,mBAAmB,CAAC,GAAW,EAAE,GAAW,EAAA;AAClD,QAAA,MAAM,OAAO,GAAG,CAAC,GAAW,KAAI;YAC9B,IAAI,GAAG,IAAI,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC;YAC3B,IAAI,GAAG,IAAI,CAAC;AAAE,gBAAA,OAAO,IAAI,CAAC;YAC1B,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,YAAA,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE;AACnB,gBAAA,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAAE,oBAAA,OAAO,KAAK,CAAC;gBACvD,CAAC,IAAI,CAAC,CAAC;AACR,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC;AAEF,QAAA,IAAI,KAAK,CAAC;QACV,GAAG;YACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3D,SAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC1B,QAAA,OAAO,KAAK,CAAC;KACd;IAEO,aAAa,GAAA;;;;AAGnB,QAAA,MAAM,GAAG,GACP,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,MAAM,CAAC;AACnE,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;KAClC;AAEO,IAAA,eAAe,CAAC,KAAa,EAAA;QACnC,IAAI;AACF,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,SAAA;QAAC,OAAM,EAAA,EAAA;AACN,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AACvB,SAAA;KACF;IAEO,YAAY,GAAA;AAClB,QAAA,MAAM,SAAS,GAAuB,gBAAgB,CAAC,UAAU,CAAC;;QAGlE,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACxC,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAClC,SAAA;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AACrC,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAClC,SAAA;AAED,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;;QAI7B,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAClC,SAAA;QAED,IAAI;AACF,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AACzC,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAClC,SAAA;KACF;AAEO,IAAA,iBAAiB,CAAC,GAAW,EAAA;QACnC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAChE,MAAM,SAAS,GAAW,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAC1D,QAAA,OAAO,SAAS,CAAC;KAClB;AAEO,IAAA,eAAe,CAAC,IAAY,EAAA;AAClC,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3C,QAAA,OAAO,YAAY,CAAC;KACrB;;kHA1OU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;2FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCKY,oBAAoB,CAAA;AAC/B,IAAA,WAAA,CACmB,KAAiB,EACjB,aAA0C,EAC1C,WAAkC,EAAA;AAFlC,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;AACjB,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAA6B;AAC1C,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAuB;KACjD;AAEJ;AAC+B;IAC/B,eAAe,GAAA;QACb,OAAO,IAAI,CAAC,KAAK;AACd,aAAA,GAAG,CAAC,eAAe,CAAC,OAAO,GAAG,2BAA2B,CAAC;AAC1D,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;YACpB,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,YAAA,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE;gBAClC,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,oBAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChC,oBAAA,OAAO,MAAM,CAAC;AACf,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,EAAE,CAAC;AACX,iBAAA;AACF,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AAED,IAAA,YAAY,CAAC,CAAM,EAAA;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;AAED;;;AAGK;IAEL,sBAAsB,CAAC,KAAa,EAAE,EAAY,EAAA;QAChD,OAAO,IAAI,CAAC,KAAK;aACd,IAAI,CACH,eAAe,CAAC,OAAO;YACrB,gDAAgD;YAChD,KAAK,EACP,EAAE,CACH;AACA,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;YACpB,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,YAAA,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE;AAClC,gBAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChC,gBAAA,OAAO,MAAM,CAAC;AACf,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AAED;;AAEK;;;;;;;;;;;;;;;;AAkBL;;AAEK;AACL,IAAA,cAAc,CAAC,mBAAwB,EAAA;QACrC,OAAO,IAAI,CAAC,KAAK;aACd,IAAI,CACH,eAAe,CAAC,OAAO;YACrB,mDAAmD,EACrD,mBAAmB,CACpB;AACA,aAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9D;AAED;;;AAGK;AACL,IAAA,gBAAgB,CAAC,WAAgB,EAAA;QAC/B,OAAO,IAAI,CAAC,KAAK;aACd,IAAI,CACH,eAAe,CAAC,OAAO,GAAG,2CAA2C,EACrE,WAAW,CACZ;AACA,aAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9D;AAED;AACoD;AACpD,IAAA,aAAa,CAAC,MAAW,EAAA;QACvB,OAAO,IAAI,CAAC,KAAK;aACd,IAAI,CACH,eAAe,CAAC,OAAO,GAAG,mCAAmC,EAC7D,MAAM,CACP;AACA,aAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9D;AAED;AACuD;AACvD,IAAA,iBAAiB,CAAC,UAAe,EAAA;QAC/B,OAAO,IAAI,CAAC,KAAK;aACd,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,kBAAkB,EAAE,UAAU,CAAC;AAC9D,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;YACpB,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,YAAA,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACvB,gBAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChC,gBAAA,OAAO,MAAM,CAAC;AACf,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AAED;AACwD;AACxD,IAAA,2BAA2B,CAAC,UAAe,EAAA;QACzC,OAAO,IAAI,CAAC,KAAK;aACd,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,4BAA4B,EAAE,UAAU,CAAC;AACxE,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;YACpB,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,YAAA,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACvB,gBAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChC,gBAAA,OAAO,MAAM,CAAC;AACf,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AAED;AAC6E;AAC7E,IAAA,YAAY,CAAC,WAAe,EAAA;QAC1B,OAAO,IAAI,CAAC,KAAK;aACd,IAAI,CACH,eAAe,CAAC,OAAO,GAAG,6CAA6C,EACvE,WAAW,CACZ;AACA,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAQ,KAAI;AACf,YAAA,IAAI,QAAQ,EAAE;AACZ,gBAAA,OAAO,QAAQ,CAAC;AACjB,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AAED;AACwE;;;;;;;;;;;;;;AAexE;AAC8C;;;;;;;;;;;;;;;;;AAkB9C;AACgD;AAChD,IAAA,iBAAiB,CAAC,WAAgB,EAAA;QAChC,OAAO,IAAI,CAAC,KAAK;aACd,IAAI,CACH,eAAe,CAAC,OAAO,GAAG,uCAAuC,EACjE,WAAW,CACZ;AACA,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,MAAM,KAAI;AACb,YAAA,OAAO,MAAM,CAAC;SACf,CAAC,EACF,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AAED;AACkF;;;;;;;;;;;;;;;;;AAkBlF;AAC4D;;;;;;;;;;;AAY5D;;AAEG;;;;;;;;;;;;;;;AAgBH;AACgD;IACzC,6BAA6B,GAAA;QAClC,OAAO,IAAI,CAAC,KAAK;AACd,aAAA,GAAG,CACF,eAAe,CAAC,OAAO,GAAG,6CAA6C,CACxE;AACA,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,OAAO,QAAQ,CAAC;SACjB,CAAC,EACF,UAAU,CAAC,CAAC,KAAU,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CACjE,CAAC;KACL;;;;;;;;;;;;;AAeD,IAAA,gBAAgB,CAAC,OAAY,EAAA;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AACzD,QAAA,MAAM,iBAAiB,GAAG,CAAG,EAAA,GAAG,0CAA0C,CAAC;QAC3E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;KACpD;AAED;;;;;;;;;;AAUG;;;;;;;;;;;;AAaW,IAAA,qBAAqB,CAAC,UAAkB,EAAA;;AACpD,YAAA,IAAI,UAAU,EAAE;AACd,gBAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,wBAAwB,CACpE,UAAU,CACX,CAAC;gBACF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,KACrD,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAChB,CAAC;AACF,gBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAqB,CAAC;;AAExD,gBAAA,OAAO,YAAY,CAAC;AACrB,aAAA;AACD,YAAA,OAAO,EAAE,CAAC;SACX,CAAA,CAAA;AAAA,KAAA;;iHAnVU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,2BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;2FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCNY,qBAAqB,CAAA;AAEhC,IAAA,WAAA,GAAA,GAAiB;AAEjB,IAAA,cAAc,CAAC,QAAa,EAAA;QAC1B,MAAM,gBAAgB,GAAG,0IAA0I,CAAC;QAEpK,SAAS,UAAU,CAAC,KAAU,EAAA;AAC5B,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrC,aAAA;AAED,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,gBAAA,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/B,aAAA;YAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;gBAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9C,aAAA;;AAGD,YAAA,OAAO,KAAK,CAAC;SACd;AAED,QAAA,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;KAC7B;;kHAzBU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;2FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCIY,+BAA+B,CAAA;AAG1C,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAAhB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAF5B,QAAA,IAAc,CAAA,cAAA,GAAW,8BAA8B,CAAC;KAExB;IAExC,gCAAgC,GAAA;QAC9B,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CACF,CAAG,EAAA,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAA,mBAAA,CAAqB,CACtE;AACA,aAAA,IAAI,CACHN,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACFC,YAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AAED,IAAA,yBAAyB,CAAC,OAAY,EAAA;QACpC,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,CAAA,YAAA,CAAc,EAC9D,OAAO,CACR;AACA,aAAA,IAAI,CACHD,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACFC,YAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AACD,IAAA,8BAA8B,CAAC,OAAY,EAAA;QACzC,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,CAAA,iBAAA,CAAmB,EACnE,OAAO,CACR;AACA,aAAA,IAAI,CACHD,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACFC,YAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AACD,IAAA,wBAAwB,CAAC,OAAY,EAAA;QACnC,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,CAAA,4BAAA,CAA8B,EAC9E,OAAO,CACR;AACA,aAAA,IAAI,CACHD,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,EAAE,CAAC;AACX,aAAA;SACF,CAAC,EACFC,YAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AACD,IAAA,oBAAoB,CAAC,OAAY,EAAA;QAC/B,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CACH,CAAA,EAAG,eAAe,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,cAAc,CAAA,oBAAA,CAAsB,EACtE,OAAO,CACR;AACA,aAAA,IAAI,CACHD,KAAG,CAAC,CAAC,QAAa,KAAI;AACpB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;SACF,CAAC,EACFC,YAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;KACL;AAED,IAAA,YAAY,CAAC,CAAM,EAAA;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;;4HA7FU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cAF9B,MAAM,EAAA,CAAA,CAAA;2FAEP,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCeY,8BAA8B,CAAA;IAazC,WACmB,CAAA,EAAe,EACf,UAA2B,EAC3B,eAA+B,EAC/B,aAA2B,EAC3B,gBAAkC,EAC3C,iBAAoC,EAAA;AAL3B,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;AACf,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;AAC3B,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAgB;AAC/B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAc;AAC3B,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAC3C,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAjBvC,IAAY,CAAA,YAAA,GAAc,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAC5C,QAAA,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;AACrB,QAAA,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;AACnC,QAAA,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAA,CAAA,+BAA+B,GACrC,IAAI,OAAO,EAAW,CAAC;AAClB,QAAA,IAAA,CAAA,YAAY,GAAW,QAAQ,CAAC,eAAe,CAAC;AAChD,QAAA,IAAA,CAAA,UAAU,GAAW,QAAQ,CAAC,YAAY,CAAC;AAClD,QAAA,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AACH,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAW,CAAC;KAStD;IAEJ,eAAe,GAAA;QACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,QAAQ,GAAA;;;AAGN,QAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;AACtC,SAAA,CAAC,CAAC;KACJ;;IAGO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,gBAAgB;AAClB,aAAA,GAAG,CAAC,CAAC,gCAAgC,EAAE,8BAA8B,CAAC,CAAC;AACvE,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,gCAAgC,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,8BAA8B,CAAC,CAAC;AAC1D,SAAC,CAAC,CAAC;KACN;AAED;AACiC;IACjC,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,iBAAiB;AACnB,aAAA,iBAAiB,EAAE;aACnB,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/C,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AACjC,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;AAChC,gBAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAU,CAAC;AACpD,aAAA;AACD,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE;AACpC,gBAAA,IAAI,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACpC,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAC1C,CAAC,EAAO,KAAK,EAAE,CAAC,EAAE,KAAK,MAAM,CAC9B,CAAC;AACF,gBAAA,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;AACzC,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAED;AACiD;IACjD,eAAe,GAAA;;AACb,QAAA,MAAM,EAAE,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AACpD,QAAA,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAEtB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB;aACnB,kBAAkB,CAAC,MAAM,CAAC;aAC1B,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/C,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC7B,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,MAAc,KAAI;AAC5B,YAAA,IAAI,MAAM,EAAE;gBACV,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;iBACjC,EAAE,EAAE,CAAC,CAAC;gBACP,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC3C,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACxD,gBAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;AAC9B,oBAAA,SAAS,EAAE,UAAU;AACrB,oBAAA,yBAAyB,EAAE,MAAM;AACjC,oBAAA,oBAAoB,EAAE,EAAE;AACzB,iBAAA,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;AAC3B,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACxC,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAED,IAAA,sBAAsB,CAAC,UAAe,EAAA;;AACpC,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;AACnC,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpE,SAAA;KACF;AAED,IAAA,cAAc,CAAC,IAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAC9B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,CAAC;KACjD;;2HA9HU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,yGCtB3C,+uDAiCM,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAW,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDXO,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,+uDAAA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA,CAAA;2OAerB,UAAU,EAAA,CAAA;sBAA1B,MAAM;;;MEhBI,wBAAwB,CAAA;IAWnC,WACmB,CAAA,UAAkC,EAClC,EAAe,EACf,UAA2B,EAC3B,gBAAkC,EAClC,kBAA4C,EACrD,iBAAoC,EAAA;AAL3B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAwB;AAClC,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;AACf,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;AAC3B,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAA0B;AACrD,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAhBvC,IAAA,CAAA,WAAW,GAAc,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAC3C,QAAA,IAAsB,CAAA,sBAAA,GAAG,EAAE,CAAC;AAC5B,QAAA,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AAClC,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAA,CAAA,aAAa,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AAClD,QAAA,IAAA,CAAA,WAAW,GAAW,QAAQ,CAAC,cAAc,CAAC;AAC9C,QAAA,IAAiB,CAAA,iBAAA,GAAQ,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,+BAA+B,GACrC,IAAI,OAAO,EAAW,CAAC;AACzB,QAAA,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;KAQhB;IAEJ,eAAe,GAAA;QACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AAC/B,YAAA,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;AACrC,SAAA,CAAC,CAAC;KACJ;;IAGO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,gBAAgB;AAClB,aAAA,GAAG,CAAC;YACH,mCAAmC;YACnC,iCAAiC;SAClC,CAAC;AACD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,mCAAmC,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,iCAAiC,CAAC,CAAC;AAC9D,SAAC,CAAC,CAAC;KACN;AAED;AAC+C;IAC/C,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB;AACnB,aAAA,mBAAmB,EAAE;aACrB,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/C,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAChC,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,QAAa,KAAI;AAC3B,YAAA,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC;AACvC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CACvD,CAAC,GAAQ,KAAK,GAAG,CAAC,iBAAiB,CACpC,CAAC;AACF,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACxD,SAAC,CAAC,CAAC;KACN;AAED;AAC0D;IAChD,4BAA4B,GAAA;;AACpC,QAAA,MAAM,OAAO,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AACvD,QAAA,MAAM,QAAQ,GAAW,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAC5D,OAAO,CAAC,SAAS,CAAC,CACnB,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB;aACnB,sBAAsB,CAAC,QAAQ,CAAC;aAChC,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/C,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC7B,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,YAAA,IAAI,MAAM,EAAE;gBACV,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;iBACxC,EAAE,EAAE,CAAC,CAAC;gBACP,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AAC1B,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACzC,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAED,IAAA,wBAAwB,CAAC,iBAAsB,EAAA;;AAC7C,QAAA,IAAI,iBAAiB,EAAE;AACrB,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAC9D,SAAA;KACF;AAED,IAAA,cAAc,CAAC,IAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC7B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,CAAC;KACjD;;qHAjHU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,4DCjBrC,0sDAgCM,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDfO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,0sDAAA,EAAA,MAAA,EAAA,CAAA,sTAAA,CAAA,EAAA,CAAA;;;MEerB,6BAA6B,CAAA;IA0CxC,WACU,CAAA,UAAkC,EAClC,EAAe,EACf,UAA2B,EAC3B,cAAwC,EACxC,YAAkC,EAClC,mBAA8C,EAC9C,gBAAkC,EACzB,YAAmC,EACpC,MAA2B,EAC3B,iBAAoC,EACpC,wBAAyD,EAAA;AAVjE,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAwB;AAClC,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;AACf,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;AAC3B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAA0B;AACxC,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAsB;AAClC,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAA2B;AAC9C,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AACzB,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAuB;AACpC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAqB;AAC3B,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AACpC,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAAiC;;AAjDpE,QAAA,IAAwB,CAAA,wBAAA,GAAY,IAAI,CAAC;AACzC,QAAA,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;AACvC,QAAA,IAAwB,CAAA,wBAAA,GAAY,KAAK,CAAC;AAC1C,QAAA,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;AACpC,QAAA,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;AACpC,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAC5B,QAAA,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;AACvB,QAAA,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;AACvB,QAAA,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;AACrB,QAAA,IAAoB,CAAA,oBAAA,GAAW,EAAE,CAAC;;;;;AAKlC,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,QAAA,IAAqB,CAAA,qBAAA,GAAW,EAAE,CAAC;QAEnC,IAAc,CAAA,cAAA,GAAc,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAqB,CAAA,qBAAA,GAAc,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QACrD,IAAY,CAAA,YAAA,GAAc,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAC3C,QAAA,IAAA,CAAA,+BAA+B,GACrC,IAAI,OAAO,EAAW,CAAC;AAClB,QAAA,IAAiB,CAAA,iBAAA,GAAY,IAAI,CAAC;AAClC,QAAA,IAAiB,CAAA,iBAAA,GAAY,IAAI,CAAC;AAClC,QAAA,IAAmB,CAAA,mBAAA,GAAY,IAAI,CAAC;AACpC,QAAA,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;AACpC,QAAA,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;AACpC,QAAA,IAAyB,CAAA,yBAAA,GAAY,KAAK,CAAC;AAC3C,QAAA,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;AAC/B,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACtB,QAAA,IAAc,CAAA,cAAA,GAAW,WAAW,CAAC;AACrC,QAAA,IAAc,CAAA,cAAA,GAAW,WAAW,CAAC;AACrC,QAAA,IAAqB,CAAA,qBAAA,GAAW,kBAAkB,CAAC;AACtD,QAAA,IAAA,CAAA,cAAc,GAAW,QAAQ,CAAC,WAAW,CAAC;AAC9C,QAAA,IAAA,CAAA,YAAY,GAAW,QAAQ,CAAC,SAAS,CAAC;AACjD,QAAA,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;KAchB;IAEJ,QAAQ,GAAA;;QAEN,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;IAED,eAAe,GAAA;QACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,QAAA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;;QAGxB,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;AAClE,YAAA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;AACzB,SAAC,CAAC,CAAC;KACJ;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AAClC,YAAA,SAAS,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACpC,YAAA,SAAS,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACpC,YAAA,WAAW,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACtC,YAAA,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;AAC5D,SAAA,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AAChC,YAAA,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACpC,SAAA,CAAC,CAAC;;QAGH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CACxC;YACE,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC1C,YAAA,aAAa,EAAE;gBACb,EAAE;gBACF,CAAC,UAAU,CAAC,QAAQ,CAAC;AACrB,gBAAA,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAC;AAC7C,aAAA;YACD,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC/C,EACD;AACE,YAAA,SAAS,EAAE,kBAAkB,CAAC,eAAe,EAAE,mBAAmB,CAAC;AACpE,SAAA,CACF,CAAC;KACH;;IAGO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,gBAAgB;AAClB,aAAA,GAAG,CAAC;YACH,sCAAsC;YACtC,oCAAoC;SACrC,CAAC;AACD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,KAAU,KAAI;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAClE,SAAC,CAAC,CAAC;KACN;IAEM,wBAAwB,GAAA;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;AACrC,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B,EAAE,EAAE,CAAC,CAAC;KACR;IAEM,qBAAqB,GAAA;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACnC;IAEM,wBAAwB,GAAA;QAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;AACrC,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;;KAEpC;IAEM,kBAAkB,GAAA;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAChC;IAEM,mBAAmB,GAAA;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAChC;IAEM,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;AACtC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;AACtC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;KACjC;AAES,IAAA,yBAAyB,CAAC,SAAiB,EAAA;;AACnD,QAAA,IAAI,SAAS,KAAK,IAAI,CAAC,cAAc,EAAE;AACrC,YAAA,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AAC9D,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;AACnE,YAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;AACpD,SAAA;AAAM,aAAA,IAAI,SAAS,KAAK,IAAI,CAAC,cAAc,EAAE;AAC5C,YAAA,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AAC9D,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;AACtD,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,gCAAgC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AAC/D,SAAA;AAAM,aAAA,IAAI,SAAS,KAAK,IAAI,CAAC,qBAAqB,EAAE;AACnD,YAAA,MAAM,cAAc,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC;AACrE,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1D,SAAA;KACF;;IAGD,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,wBAAwB;AAC1B,aAAA,gCAAgC,EAAE;aAClC,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/C,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAClC,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,IAAS,KAAI;AACvB,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAChC,SAAC,CAAC,CAAC;KACN;;AAGO,IAAA,mBAAmB,CAAC,WAAgB,EAAA;AAC1C,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,QAAA,IAAI,OAAO,GAAG;AACZ,YAAA,WAAW,EAAE,WAAW;SACzB,CAAC;AACF,QAAA,IAAI,CAAC,wBAAwB;aAC1B,yBAAyB,CAAC,OAAO,CAAC;aAClC,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/C,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAClC,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,IAAS,KAAI;AACvB,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAChC,SAAC,CAAC,CAAC;KACN;;;AAIO,IAAA,gCAAgC,CAAC,SAAiB,EAAA;AACxD,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACtC,QAAA,IAAI,OAAO,GAAG;AACZ,YAAA,SAAS,EAAE,SAAS;SACrB,CAAC;AACF,QAAA,IAAI,CAAC,wBAAwB;aAC1B,8BAA8B,CAAC,OAAO,CAAC;aACvC,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/C,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AACzC,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,IAAS,KAAI;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9B,SAAC,CAAC,CAAC;KACN;;;AAIO,IAAA,kBAAkB,CAAC,SAAiB,EAAA;AAC1C,QAAA,IAAI,OAAO,GAAG;;AAEZ,YAAA,aAAa,EAAE,SAAS;SACzB,CAAC;AACF,QAAA,IAAI,CAAC,wBAAwB;aAC1B,wBAAwB,CAAC,OAAO,CAAC;AACjC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC1C,gBAAA,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;AAChD,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,gBAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AACjC,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,qBAAqB,CAAC,cAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,MAAM,QAAQ,GAAW,MAAM,CAC7B,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CACrC,CAAC,IAAI,EAAE,CAAC;AACT,QAAA,IAAI,OAAO,GAAG;;;YAGZ,aAAa,EAAE,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC;AACnE,YAAA,cAAc,EAAE,QAAQ;YACxB,KAAK,EAAE,IAAI,CAAC,gBAAgB;SAC7B,CAAC;AAEF,QAAA,IAAI,CAAC,wBAAwB;aAC1B,oBAAoB,CAAC,OAAO,CAAC;aAC7B,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/C,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,GAAY,KAAI;AAC1B,YAAA,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC9C,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1C,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;IAGD,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE;YACtE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5C,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,CAAC;AAC9C,QAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;KACF;;IAGD,iBAAiB,GAAA;;AAEf,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CACnD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,eAAe,CAAC,CAClD,CAAC;;AAGF,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CACnD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,eAAe,CAAC,CAClD,CAAC;AAEF,QAAA,IAAI,cAAc,GAAG;AACnB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,aAAa,EAAE,aAAa;AAC5B,YAAA,aAAa,EAAE,aAAa;AAC5B,YAAA,kBAAkB,EAAE,CAAC;SACtB,CAAC;AACF,QAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAE5B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,iBAAiB;aACnB,cAAc,CAAC,cAAc,CAAC;aAC9B,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/C,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,IAAS,KAAI;AACvB,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACzC,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;AACpC,aAAA;AAAM,iBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7C,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;;IAID,aAAa,GAAA;AACX,QAAA,IAAI,MAAM,GAAG;AACX,YAAA,IAAI,EAAE,CAAC;SACR,CAAC;AACF,QAAA,IAAI,CAAC,YAAY;aACd,aAAa,CAAC,MAAM,CAAC;AACrB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,IAAS,KAAI;AACvB,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;AAC5B,gBAAA,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9C,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE;AACpC,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAChD,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;;IAID,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,YAAY;AACd,aAAA,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAClC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,IAAS,KAAI;AACvB,YAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,gBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;AAC5B,oBAAA,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;AAChE,wBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC7B,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC9B,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,wBAAwB,CAAC,IAAY,EAAA;QACnC,IAAI,IAAI,KAAK,CAAC,EAAE;AACd,YAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAClD,SAAA;aAAM,IAAI,IAAI,KAAK,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAClD,SAAA;aAAM,IAAI,IAAI,KAAK,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACtD,SAAA;KACF;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;KAC7B;AAED,IAAA,eAAe,CAAC,MAAgB,EAAA;AAC9B,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,KAAI;;YAC5B,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,EAAE,CAAC;AAC/C,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,gBAAgB,CAAC,IAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC3B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,CAAC;KACjD;;0HAxZU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAN,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,+BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAF7B,QAAA,EAAA,2BAAA,EAAA,SAAA,EAAA,CAAC,aAAa,CAAC,0BC1B5B,g8qBA2hBA,EAAA,MAAA,EAAA,CAAA,usEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAhB,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD/fa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;+BACE,2BAA2B,EAAA,SAAA,EAG1B,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,g8qBAAA,EAAA,MAAA,EAAA,CAAA,usEAAA,CAAA,EAAA,CAAA;;;MEff,sBAAsB,CAAA;AAMjC,IAAA,WAAA,CACS,UAA4B,EAClB,aAA6B,EAC7B,aAA4B,EAAA;AAFtC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAkB;AAClB,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;AAC7B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;;AANxC,QAAA,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;KAM1B;IAEJ,QAAQ,GAAA;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,kBAAkB,GAAA;;AAEhB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAElE,QAAA,IAAI,KAAK,EAAE;YACT,IAAI;gBACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvC,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;;AAEV,gBAAA,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC;AAChD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1C,aAAA;AACF,SAAA;AAAM,aAAA;;AAEL,YAAA,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC;AAChD,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1C,SAAA;;QAGD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;KAChD;;AAGD,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,CAAC,YAAY,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,KAAK,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;;KAE1C;AAED,IAAA,gBAAgB,CAAC,IAAS,EAAA;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;KAC5E;;mHApDU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAb,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA8B,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,sDCXnC,wVAIA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArB,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqB,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAhC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDOa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,wVAAA,EAAA,CAAA;;;MEFf,cAAc,CAAA;AACzB,IAAA,SAAS,CAAC,QAAgB,EAAA;AACxB,QAAA,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE;AACxC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QACD,QAAQ,GAAG,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE,CAAC;QAC5B,IAAI,MAAM,GAAW,EAAE,CAAC;QACxB,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtC,IAAI,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM;AACJ,gBAAA,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,SAAA;aAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC7C,IAAI,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM;AACJ,gBAAA,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,SAAA;AAAM,aAAA;YACL,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpC,SAAA;AACD,QAAA,OAAO,MAAM,CAAC,iBAAiB,EAAE,CAAC;KACnC;;2GAnBU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;yGAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;iBACnB,CAAA;;;MCsBY,oBAAoB,CAAA;AAqB/B,IAAA,WAAA,CACmB,aAA4B,EAC5B,cAA2C,EAC3C,KAAa,EACb,UAA2B,EAC3B,aAA6B,EAC7B,UAAkC,EAC3C,gBAAkC,EAClC,iBAAoC,EAAA;AAP3B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAC5B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAA6B;AAC3C,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AACb,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;AAC3B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;AAC7B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAwB;AAC3C,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;;;AAzBvC,QAAA,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;AACtB,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAC7B,QAAA,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;AAC7B,QAAA,IAAa,CAAA,aAAA,GAAW,EAAE,CAAC;AAC3B,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAC1B,QAAA,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;;AAE7B,QAAA,IAAA,CAAA,+BAA+B,GACrC,IAAI,OAAO,EAAW,CAAC;AACf,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAW,CAAC;;AAGhD,QAAA,IAAG,CAAA,GAAA,GAAW,CAAC,CAAC;AAChB,QAAA,IAAG,CAAA,GAAA,GAAW,CAAC,CAAC;AAChB,QAAA,IAAE,CAAA,EAAA,GAAW,EAAE,CAAC;AACvB,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;;;;;KAehC;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;;IAGD,oBAAoB,GAAA;QAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,6BAA6B,EAAE;YAChE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,kCAAkC,CAAC;AACzE,YAAA,UAAU,EAAE,uBAAuB;;;;AAIpC,SAAA,CAAC,CAAC;KACJ;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB;AACnB,aAAA,sBAAsB,EAAE;AACxB,aAAA,IAAI,CAACiC,WAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;YACpB,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;gBACnD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/C,gBAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAChD,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAED,IAAA,mBAAmB,CAAC,eAAuB,EAAA;QACzC,IAAI,eAAe,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACpD,IAAI,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AACxC,SAAA;KACF;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;AACzE,QAAA,IAAI,gBAAgB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,cAAc,EAAE,CAAC;KAC3D;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,UAAU;AACZ,aAAA,qBAAqB,EAAE;AACvB,aAAA,IAAI,EAAE;AACN,aAAA,SAAS,CAAC,CAAC,GAAQ,KAAI;AACtB,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;AACtC,gBAAA,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;AAC/B,gBAAA,IAAI,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAC9C,iBAAA;gBAED,IAAI,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAG,UAAU,CAAC,EAAE;oBACrB,IAAI,CAAC,4BAA4B,EAAE,CAAC;AACrC,iBAAA;AAAM,qBAAA;AACL,oBAAA,MAAM,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC;AAC3C,oBAAA,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAClE,oBAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC;AAC/B,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;;AAE7C,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAED;;AAEG;AACK,IAAA,kBAAkB,CAAC,QAAkB,EAAA;AAC3C,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;;AAEvB,YAAA,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC1B,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC7B,SAAC,CAAC,CAAC;KACJ;IAEO,4BAA4B,GAAA;AAClC,QAAA,MAAM,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC;AAC1C,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAChC;IAED,mBAAmB,GAAA;;;;;;;;;;;;;;;;;AAmBjB,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;;AAGzE,QAAA,IAAI,aAAa,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;AAExC,QAAA,IAAI,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;;;QAI7B,IAAI,YAAY,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;QACnE,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAC9C,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACvC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;AAErC,QAAA,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC;AACvB,QAAA,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC;AAChB,QAAA,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;AACnB,QAAA,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;;QAEnB,WAAW,CAAC,MAAK;YACf,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB,EAAE,IAAI,CAAC,CAAC;KACV;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE;AACjB,YAAA,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACf,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACb,YAAA,IAAI,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE;AACjB,gBAAA,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACf,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACb,gBAAA,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AACd,aAAA;AACF,SAAA;KACF;AAED,IAAA,iBAAiB,CAAC,OAAe,EAAA;AAC/B,QAAA,IAAI,SAAS,GAAW,OAAO,GAAG,GAAG,CAAC;AACtC,QAAA,SAAS,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;;AAGvC,QAAA,OAAO,SAAS,CAAC;KAClB;IAED,uBAAuB,GAAA;AACrB,QAAA,MAAM,GAAG,GAAW,eAAe,CAAC,iBAAiB,CAAC;AACtD,QAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;KAC5B;;IAGD,qBAAqB,GAAA;QACnB,IAAI,IAAI,CAAC,GAAG,EAAE;AACZ,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;AAClB,SAAA;KACF;;;;;;IAQD,WAAW,GAAA;;;;;;;;;;KAUV;IACD,aAAa,GAAA;;;;;;;;;;KAUZ;IACD,YAAY,GAAA;;;;;;;;;;KAUX;;IAGD,YAAY,GAAA;;KAEX;IAED,aAAa,GAAA;;KAEZ;IAED,YAAY,GAAA;;KAEX;IAED,WAAW,GAAA;QACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,CAAC;KACjD;;iHA7QU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjC,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,2BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA4B,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAvB,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAwB,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAFpB,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,aAAa,CAAC,0BCxB5B,8sKA6GA,EAAA,MAAA,EAAA,CAAA,0jGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,KAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA1B,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA2B,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDnFa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,kBAAkB,EAAA,SAAA,EAGjB,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,8sKAAA,EAAA,MAAA,EAAA,CAAA,0jGAAA,CAAA,EAAA,CAAA;qTAehB,cAAc,EAAA,CAAA;sBAAvB,MAAM;;;ME7BI,kBAAkB,CAAA;AAO7B,IAAA,WAAA,GAAA;AALU,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAW,CAAC;AAC9C,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;AACzB,QAAA,IAAQ,CAAA,QAAA,GAAW,OAAO,CAAC;AAC3B,QAAA,IAAM,CAAA,MAAA,GAAW,SAAS,CAAC;KAEpB;;IAGhB,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;;+GAjBU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,6KCV/B,kYAUA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAxC,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,cAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDAa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,kYAAA,EAAA,CAAA;0EAMhB,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACE,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEVK,YAAY,CAAA;IACvB,WAAe,GAAA,GAAC;AAEhB,IAAA,SAAS,CAAC,IAAY,EAAA;QACpB,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC/C,YAAA,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;AAChC,YAAA,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;YAEvB,IAAI,KAAK,GAAG,KAAK,EAAE;;AAEjB,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;;AAE7D,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;;AAE9D,gBAAA,MAAM,aAAa,GAAG,QAAQ,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;;AAEvD,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;;gBAE/D,MAAM,gBAAgB,GAAG,aAAa,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;;AAE1D,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;gBAE/D,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,QAAQ,GAAG,CAAC,EAAE;AAChB,oBAAA,MAAM,IAAI,CAAA,EAAG,QAAQ,CAAA,MAAA,CAAQ,CAAC;AAC/B,iBAAA;gBACD,IAAI,SAAS,GAAG,CAAC,EAAE;AACjB,oBAAA,MAAM,IAAI,CAAA,EAAG,SAAS,CAAA,OAAA,CAAS,CAAC;AACjC,iBAAA;gBACD,IAAI,WAAW,GAAG,CAAC,EAAE;AACnB,oBAAA,MAAM,IAAI,CAAA,EAAG,WAAW,CAAA,QAAA,CAAU,CAAC;AACpC,iBAAA;AACD,gBAAA,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACtB,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,UAAU,CAAC;AACnB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACX;AAEO,IAAA,iBAAiB,CAAC,OAAe,EAAA;AACvC,QAAA,IAAI,SAAS,GAAW,OAAO,GAAG,GAAG,CAAC;AACtC,QAAA,SAAS,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;;AAEvC,QAAA,OAAO,SAAS,CAAC;KAClB;;yGA9CU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uGAAZ,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;iBACjB,CAAA;;;MCSY,0BAA0B,CAAA;AAoBrC,IAAA,WAAA,CACS,aAAkC;;AAExB,IAAA,UAA2B,EAC3B,aAA2B,EAC3B,gBAAkC,EAC3C,iBAAoC,EAAA;AALrC,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAqB;AAExB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;AAC3B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAc;AAC3B,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAC3C,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AAtBpC,QAAA,IAAe,CAAA,eAAA,GAAW,UAAU,CAAC;AACxC,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAC9B,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAChC,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AACzB,QAAA,IAAA,CAAA,+BAA+B,GACrC,IAAI,OAAO,EAAW,CAAC;AACjB,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACzB,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACzB,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAC1B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAC1B,QAAA,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;AACxB,QAAA,IAAsB,CAAA,sBAAA,GAAW,EAAE,CAAC;AACpC,QAAA,IAAyB,CAAA,yBAAA,GAAW,EAAE,CAAC;AACvC,QAAA,IAAuB,CAAA,uBAAA,GAAW,EAAE,CAAC;AACrC,QAAA,IAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;QASrC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC9C;IAED,eAAe,GAAA;QACb,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,wBAAwB,EAAE,CAAC;;KAEjC;AAEO,IAAA,mBAAmB,CAAC,QAAa,EAAA;AACvC,QAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;YACxD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACtD,SAAA;KACF;;IAGO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,gBAAgB;AAClB,aAAA,GAAG,CAAC;YACH,iCAAiC;YACjC,oCAAoC;YACpC,kCAAkC;SACnC,CAAC;AACD,aAAA,IAAI,CAACiC,WAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,yBAAyB;gBAC5B,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,uBAAuB;gBAC1B,KAAK,CAAC,kCAAkC,CAAC,CAAC;AAC9C,SAAC,CAAC,CAAC;KACN;;IAGD,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,WAAW,GAAG;YAChB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;;;SAG9C,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB;aACnB,8BAA8B,CAAC,WAAW,CAAC;aAC3C,IAAI,CACHA,WAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/CQ,UAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9B,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;YACpB,IAAI,CAAC,eAAe,GAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,gBAAgB,CAAC;YAChD,IAAI,CAAC,WAAW,GAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,WAAW,CAAC;YACvC,IAAI,CAAC,iBAAiB,GAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,MAAM,CAAC;YACxC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC/B,SAAC,CAAC,CAAC;KACN;;IAGD,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,WAAW,GAAG;YAChB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;;SAE7C,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB;aACnB,8BAA8B,CAAC,WAAW,CAAC;aAC3C,IAAI,CACHR,WAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/CQ,UAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC9B,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,MAAe,KAAI;AAC7B,YAAA,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;AAC/B,oBAAA,SAAS,EAAE,UAAU;AACrB,oBAAA,WAAW,EAAE,IAAI;AAClB,iBAAA,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAED;AACmC;IAC3B,qBAAqB,GAAA;AAC3B,QAAA,IAAI,CAAC,iBAAiB;AACnB,aAAA,wBAAwB,EAAE;AAC1B,aAAA,IAAI,CAACR,WAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,KAAa,KAAI;YAC3B,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,aAAA;iBAAM,IAAI,KAAK,GAAG,EAAE,EAAE;AACrB,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,aAAA;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;AACzB,SAAC,CAAC,CAAC;KACN;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEO,kBAAkB,GAAA;QACxB,IAAI;AACF,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE7C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACtC,YAAA,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;AACb,YAAA,CAAC,CAAC,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,CAAA,CAAE,CAAC;AACvD,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,KAAK,EAAE,CAAC;AACV,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAE7B,YAAA,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACzD,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACrD,SAAA;KACF;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;AAC/B,YAAA,SAAS,EAAE,aAAa;YACxB,SAAS,EAAE,IAAI,CAAC,WAAW;AAC5B,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,eAAe,CAAC,IAAY,EAAA;AAC1B,QAAA,SAAS,CAAC,SAAS;aAChB,SAAS,CAAC,IAAI,CAAC;aACf,IAAI,CAAC,MAAK;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACvD,SAAC,CAAC;AACD,aAAA,KAAK,CAAC,CAAC,KAAK,KAAI;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;AAC5D,SAAC,CAAC,CAAC;KACN;IAED,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;KAClD;IAED,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AAC1C,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;IAED,WAAW,GAAA;;AAET,QAAA,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,CAAC;KACjD;;uHAjMU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjC,IAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAkC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,8DCbvC,glHA2EA,EAAA,MAAA,EAAA,CAAA,sxDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9B,KAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+B,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD9Da,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,glHAAA,EAAA,MAAA,EAAA,CAAA,sxDAAA,CAAA,EAAA,CAAA;;;MEFvB,4BAA4B,CAAA;AAKvC,IAAA,WAAA,GAAA;AAJS,QAAA,IAAA,CAAA,OAAO,GACd,oJAAoJ,CAAC;AAC9I,QAAA,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;KAEjB;;yHALL,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,6HCPzC,0ZASM,EAAA,MAAA,EAAA,CAAA,0TAAA,CAAA,EAAA,CAAA,CAAA;2FDFO,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,0ZAAA,EAAA,MAAA,EAAA,CAAA,0TAAA,CAAA,EAAA,CAAA;0EAK9B,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MEIK,uBAAuB,CAAA;AAOlC,IAAA,WAAA,GAAA;AANA,QAAA,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;AACT,QAAA,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,IAAI,GAAW,eAAe,CAAC,OAAO,CAAC;AACvC,QAAA,IAAY,CAAA,YAAA,GAAS,CAAC,CAAC;AACtB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAM,CAAC;KAE7B;AAEjB,IAAA,YAAY,CAAC,KAAgB,EAAA;AAC3B,QAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;AACtC,QAAA,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;;AAEvB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,IAAI;AACrB,SAAA,CAAC,CAAC;KACJ;;oHAnBU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,sLCdpC,2TAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7C,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDWa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,2TAAA,EAAA,CAAA;0EAMtB,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MEbI,oBAAoB,CAAA;AAHjC,IAAA,WAAA,GAAA;QAIU,IAAA,CAAA,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;KAe1C;AAbC,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,gBAAgB,CAAC;AACzB,SAAA;AAED,QAAA,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAEnC,QAAA,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE;AAC/B,YAAA,OAAO,cAAc,CAAC;AACvB,SAAA;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,sBAAsB,CAAE,CAAC;KACrE;;iHAfU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,kBAAkB;iBACzB,CAAA;;;MCeY,oBAAoB,CAAA;AAoB/B,IAAA,WAAA,CACmB,aAA4B;;;AAG5B,IAAA,aAA2B,EAC3B,SAA2B,EAC3B,UAAkC,EAC3C,iBAAoC,EAAA;AAN3B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAG5B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAc;AAC3B,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAC3B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAwB;AAC3C,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AA1BpC,QAAA,IAAA,CAAA,kBAAkB,GAAQ,IAAI,YAAY,EAAQ,CAAC;AACtD,QAAA,IAAuB,CAAA,uBAAA,GAAG,EAAE,CAAC;;AAE5B,QAAA,IAAA,CAAA,+BAA+B,GACrC,IAAI,OAAO,EAAW,CAAC;AAElB,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAC9B,QAAA,IAAW,CAAA,WAAA,GAAkB,KAAK,CAAC;AACnC,QAAA,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;;AAEpC,QAAA,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;AACxB,QAAA,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AACxB,QAAA,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;AACvB,QAAA,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;AAC9B,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAC9D,CAAC,CAAC,EAAE,CAAC,KAAK,CAAA,MAAA,EAAS,CAAC,CAAA,CAAE,CACvB,CAAC;AACO,QAAA,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;KASzB;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;;IAGD,aAAa,GAAA;QACX,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;;YACxD,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,UAAU,EAAE;AAC5C,gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE;AACvB,oBAAA,CAAA,EAAA,GAAA,IAAI,CAAC,GAAG,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;;AAEnB,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,qBAAqB,CAAC,WAAgB,EAAA;QACpC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,0BAA0B,EAAE;YAC7D,MAAM,EAAE,WAAW,CAAC,gBAAgB;kBAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC;kBAC5C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC;AAClD,YAAA,UAAU,EAAE,mBAAmB;AAC/B,YAAA,IAAI,EAAE;AACJ,gBAAA,OAAO,EAAE,WAAW;gBACpB,SAAS,EAAE,IAAI,CAAC,YAAY;gBAC5B,WAAW,EAAE,IAAI,CAAC,WAAW;AAC9B,aAAA;AACF,SAAA,CAAC,CAAC;;QAEH,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAW,KAAI;YACzC,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;;IAGO,aAAa,GAAA;AACnB,QAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,OAAO,GAAG;;YAEZ,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,UAAU,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC;AAEF,QAAA,IAAI,CAAC,iBAAiB;aACnB,oBAAoB,CAAC,OAAO,CAAC;aAC7B,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/C,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9B,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,QAAa,KAAI;AAC3B,YAAA,IAAI,CAAC,uBAAuB,GAAG,QAAQ,CAAC;AACxC,YAAA,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC5B,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAClC,gBAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,WAAW,CAAC;AAC9C,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;IAGD,mBAAmB,GAAA;AACjB,QAAA,IACE,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC;YACvC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,IAAI,EACvD;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AACnE,SAAA;KACF;AAED;AACgE;IAChE,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,iBAAiB;aACnB,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACvC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,IAAS,KAAI;AACvB,YAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,gBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,OAAY,KAAI;;AAE5B,oBAAA,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;AAChE,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,qBAAA;;AAED,oBAAA,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;AAChE,wBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,sBAAsB,CAAC,WAAgB,EAAA;AACrC,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,YAAY,GAAA;AACV,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAErB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAChC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,CAAC;KACjD;;iHAvJU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA8C,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAf,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAFpB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,aAAa,CAAC,0BClB5B,i+JA4IA,EAAA,MAAA,EAAA,CAAA,yrCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA9B,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+B,KAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvB,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2B,4BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAlB,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAmB,oBAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDxHa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,kBAAkB,EAAA,SAAA,EAGjB,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,i+JAAA,EAAA,MAAA,EAAA,CAAA,yrCAAA,CAAA,EAAA,CAAA;4NAGhB,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAkBE,MAAM,EAAA,CAAA;sBAAd,KAAK;;;ME9BK,sBAAsB,CAAA;AAKjC,IAAA,WAAA,CAAoB,mBAAwC,EAAA;AAAxC,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AAJ3C,QAAA,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AACnB,QAAA,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;AACrB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAW,CAAC;KAES;AAEhE,IAAA,gBAAgB,CAAC,KAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,KAAK,CAAC,MAAqB;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,aAAa,EAAE,IAAI;;;AAInB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,IAAI;AAEjB,YAAA,sBAAsB,EAAE,kBAAkB;AAC1C,YAAA,sBAAsB,EAAE,sCAAsC;YAE9D,MAAM,EAAE,MAAK;AACX,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxB;YACD,MAAM,EAAE,MAAK;AACX,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzB;AACF,SAAA,CAAC,CAAC;KACJ;;mHA7BU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAlD,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAFtB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,CAAC,mBAAmB,CAAC,0BCPlC,mLAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,KAAA,EAAA,UAAA,EAAA,UAAA,EAAA,KAAA,EAAA,YAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDMa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,gBAAgB,EAAA,SAAA,EAGf,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,mLAAA,EAAA,CAAA;0GAGf,MAAM,EAAA,CAAA;sBAAtB,KAAK;uBAAC,QAAQ,CAAA;gBACG,OAAO,EAAA,CAAA;sBAAxB,KAAK;uBAAC,SAAS,CAAA;gBACE,MAAM,EAAA,CAAA;sBAAvB,MAAM;uBAAC,QAAQ,CAAA;;;MEkCL,wBAAwB,CAAA;AAyFnC,IAAA,WAAA,CACmB,UAAkC,EAClC,KAAwB,EACxB,eAAmC,EACnC,aAA2B,EACpC,SAA2B,EAC3B,YAAsB,EACtB,gBAAkC,EAClC,iBAAoC,EAC3B,UAA2B,EAAA;AAR3B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAwB;AAClC,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;AACxB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAoB;AACnC,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAc;AACpC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAC3B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAU;AACtB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AAC3B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;;AAhGrC,QAAA,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;AAC3B,QAAA,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AACxB,QAAA,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;AAC/B,QAAA,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAC1B,QAAA,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;AAC3B,QAAA,IAAmB,CAAA,mBAAA,GAAY,IAAI,CAAC;AACpC,QAAA,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;AAC/B,QAAA,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;AAE7B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;AACtC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAO,CAAC;AACrC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAW,CAAC;AAK3D,QAAA,IAAyB,CAAA,yBAAA,GAAW,EAAE,CAAC;AAChC,QAAA,IAAoB,CAAA,oBAAA,GAAW,EAAE,CAAC;AACzC,QAAA,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;AAEtB,QAAA,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;AACvB,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACzB,QAAA,IAAqB,CAAA,qBAAA,GAAW,EAAE,CAAC;AAI1C,QAAA,IAAwB,CAAA,wBAAA,GAAiB,EAAE,CAAC;AAC5C,QAAA,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;AAC7B,QAAA,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;AACnB,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;AACrC,QAAA,IAAY,CAAA,YAAA,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5C,QAAA,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;AAChC,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAC9B,QAAA,IAAwB,CAAA,wBAAA,GAAQ,EAAE,CAAC;AACnC,QAAA,IAA0B,CAAA,0BAAA,GAAG,EAAE,CAAC;AAChC,QAAA,IAAmB,CAAA,mBAAA,GAAY,IAAI,CAAC;AACnC,QAAA,IAAA,CAAA,+BAA+B,GACrC,IAAI,OAAO,EAAW,CAAC;AACjB,QAAA,IAAA,CAAA,8BAA8B,GACpC,IAAI,OAAO,EAAW,CAAC;AAClB,QAAA,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AACpB,QAAA,IAAqB,CAAA,qBAAA,GAAQ,EAAE,CAAC;AAChC,QAAA,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;AACpC,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AACjC,QAAA,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;AACjC,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAC7B,QAAA,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;AACpC,QAAA,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;AACvC,QAAA,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAA,CAAA,WAAW,GAAsB;AACtC,YAAA,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;AAC5B,YAAA,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;AAC1B,YAAA,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;SAC7B,CAAC;QACK,IAAA,CAAA,iBAAiB,GAAQ;YAC9B,OAAO,EAAE,CAAC,GAAG;AACb,YAAA,SAAS,EAAE,KAAK;SACjB,CAAC;AACK,QAAA,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AACvB,QAAA,IAAO,CAAA,OAAA,GAAW,CAAC,CAAC;QACpB,IAAA,CAAA,WAAW,GAAG;YACnB,WAAW,EAAE,CAAC,GAAG;AACjB,YAAA,cAAc,EAAE,aAAa;AAC7B,YAAA,SAAS,EAAE;AACT,gBAAA;oBACE,OAAO,EAAE,CAAC,GAAG;AACb,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA;AACF,aAAA;SACF,CAAC;QAEM,IAAA,CAAA,aAAa,GAAG;YACtB,uBAAuB;YACvB,qBAAqB;YACrB,uBAAuB;SACxB,CAAC;AAEgB,QAAA,IAAQ,CAAA,QAAA,GAAQ,YAAY,CAAC;AAIxC,QAAA,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;;AAEhC,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAYxC;IACJ,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IACD,YAAY,GAAA;QACV,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,mBAAmB;YAAE,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACnE,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;;IAGD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpC;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;;AAGD,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED,IAAA,iBAAiB,CAAC,KAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAA,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9C,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,SAAA;KACF;IACD,oBAAoB,GAAA;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC7B;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAC9B;IACD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC7B;;AAED,IAAA,0BAA0B,CAAC,OAAe,EAAA;AACxC,QAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEhC,MAAM,GAAG,GACP,eAAe,CAAC,OAAO,GAAG,oCAAoC,GAAG,OAAO,CAAC;AAC3E,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;KAC5B;IAEa,sBAAsB,GAAA;;YAClC,IAAI;AACF,gBAAA,MAAM,IAAI,CAAC,eAAe,CAAC,2BAA2B,EAAE,CAAC;AAC1D,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;AAC7D,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;IAED,eAAe,GAAA;QACb,IAAI,CAAC,sBAAsB,EAAE,CAAC;;AAE9B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;KAC5E;AAED;AACuF;IACvF,eAAe,GAAA;;AAEb,QAAA,IAAI,CAAC,aAAa;AACf,aAAA,sBAAsB,EAAE;AACxB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;AACpD,aAAA,SAAS,CAAC,CAAC,IAAI,KAAI;YAClB,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE;AAC7C,gBAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AAChC,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;;;gBAInD,IAAI,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAG,iBAAiB,CAAC,KAAI,CAAC,EAAE;AAClC,oBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,oBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,oBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;oBACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;oBACvD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;oBAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;;AAEtD,iBAAA;qBAAM,IAAI,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAG,iBAAiB,CAAC,KAAI,CAAC,EAAE;AACzC,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,oBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,oBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACvB,oBAAA,IAAI,CAAC,iBAAiB;AACpB,wBAAA,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACrD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAClD,iBAAA;;AAGD,gBAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzC,IAAI,IAAI,CAAC,eAAe,EAAE;wBACxB,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACtD,qBAAA;AACD,oBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAC5D,CAAC,OAAY,KAAI;AACf,wBAAA,IACE,EACE,OAAO,CAAC,cAAc,KAAK,UAAU;AACrC,4BAAA,OAAO,CAAC,cAAc,KAAK,UAAU,CACtC,EACD;AACA,4BAAA,OAAO,OAAO,CAAC;AAChB,yBAAA;AACH,qBAAC,CACF,CAAC;AACH,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;;AAGL,QAAA,IAAI,CAAC,eAAe;AACjB,aAAA,gBAAgB,EAAE;AAClB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,IAAI,KAAI;YAClB,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;AACjD,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,gBAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;;gBAEpD,IACE,IAAI,CAAC,wBAAwB;AAC7B,oBAAA,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAC7C;oBACA,IAAI,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE;AAC9D,wBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACpC,qBAAA;AAAM,yBAAA;AACL,wBAAA,IAAI,CAAC,qBAAqB,GAAG,MAAM,CACjC,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAC9C,CAAC;AACH,qBAAA;AACF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AACjC,iBAAA;AACD,gBAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClD,aAAA;AACH,SAAC,CAAC,CAAC;QAEL,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;;IAGD,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,aAAa;AACf,aAAA,gBAAgB,EAAE;AAClB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,QAAQ,KAAI;YACtB,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,UAAU,EAAE;AACnD,gBAAA,IAAI,CAAC,yBAAyB;oBAC5B,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AACxC,gBAAA,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AAC9D,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;IAGD,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,aAAa;AACf,aAAA,iBAAiB,EAAE;AACnB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,IAAI,KAAI;YAClB,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,aAAa,EAAE;AAC/C,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AACtC,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;IAGO,sBAAsB,GAAA;QAC5B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;YACjD,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACJ;;IAGO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;YAC9D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;gBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5B,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IAED,qBAAqB,GAAA;;;;AAGnB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,EAAE,CAAC;KAC9B;IACD,UAAU,GAAA;;AACR,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,EAAE,CAAC;KAC9B;;IAGD,wBAAwB,GAAA;;QAEtB,IAAI,CAAC,6BAA6B,EAAE,CAAC;KACtC;IAED,YAAY,GAAA;AACV,QAAA,IAAI,eAAe,CAAC,OAAO,IAAI,SAAS,EAAE;AACxC,YAAA,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAChC,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC9D,aAAA;AAAM,iBAAA;gBACL,IAAI,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9C,gBAAA,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;AACjC,gBAAA,eAAe,CAAC,OAAO,GAAG,SAAS,CAAC;gBACpC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;AACvD,aAAA;AACF,SAAA;KACF;IAEO,sBAAsB,GAAA;;AAE5B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;;QAG1B,MAAM,WAAW,GAAQ,EAAE,CAAC;;AAG5B,QAAA,MAAM,mBAAmB,GAAG;YAC1B,eAAe,EAAE,eAAe,CAAC,eAAe;AAChD,YAAA,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B,CAAC;;QAGF,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;iBAC/C,sBAAsB,CAAC,mBAAmB,CAAC;iBAC3C,IAAI;;AAEH,YAAA,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;;YAE3B,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;aACjB,CAAC,CACH,CAAC;AACL,SAAA;;QAGD,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;AACxE,SAAA;;QAGD,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;AACnE,SAAA;;QAGD,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,WAAW,CAAC,UAAU;AACpB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,CAAC;AACrD,SAAA;;QAGD,QAAQ,CAAC,WAAW,CAAC;aAClB,IAAI;;QAEH,QAAQ,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACpC,SAAC,CAAC,CACH;AACA,aAAA,SAAS,CAAC,CAAC,QAAa,KAAI;;YAE3B,IAAI,QAAQ,CAAC,aAAa,EAAE;AAC1B,gBAAA,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACzD,aAAA;;YAGD,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACrB,gBAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChD,aAAA;;YAGD,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACrB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5C,aAAA;;YAGD,IAAI,QAAQ,CAAC,UAAU,EAAE;AACvB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC7C,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,0BAA0B,CAAC,IAAS,EAAA;;AAEzC,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,IAAI,EAAE,CAAC;QAC3C,IACE,IAAI,CAAC,wBAAwB;AAC7B,YAAA,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAC7C;YACA,IAAI,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE;AAC9D,gBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACpC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,qBAAqB,GAAG,MAAM,CACjC,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAC9C,CAAC;AACH,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AACjC,SAAA;KACF;;AAGM,IAAA,sBAAsB,CAAC,QAAa,EAAA;QACzC,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACzD,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAC5D,SAAA;KACF;AAED;AACkC;AAC3B,IAAA,kBAAkB,CAAC,MAAW,EAAA;AACnC,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,eAAe,CAAC,EAAE;AACrC,YAAA,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACpD,SAAA;KACF;AAED;AACsC;AAC9B,IAAA,iBAAiB,CAAC,KAAa,EAAA;QACrC,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,SAAA;aAAM,IAAI,KAAK,GAAG,EAAE,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,SAAA;KACF;;IAGD,cAAc,GAAA;QACZ,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;YACjD,IAAI,CAAC,UAAU,GAAG,wBAAwB,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9D,SAAC,CAAC,CAAC;KACJ;;;;;;;;;;;IAaD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;;AACzD,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;YAC9B,IAAI,kBAAkB,GAAG,IAAI,CAAC,UAAU,CACtC,IAAI,CAAC,WAAW,EAChB,MAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAC3B,CAAC;AACF,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC;AACzE,YAAA,IAAI,4BAA4B,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CACtD,CAAC,GAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,KAAA,IAAA,IAAd,cAAc,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAd,cAAc,CAAE,KAAK,CAAC,CACjE,CAAC;AACF,YAAA,IACE,cAAc;AACd,gBAAA,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;AAC5B,gBAAA,4BAA4B,EAC5B;;gBAEA,IAAI,CAAC,aAAa,GAAG,cAAc,KAAA,IAAA,IAAd,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAc,CAAE,KAAK,CAAC;gBAC3C,IAAI,CAAC,iBAAiB,GAAG,cAAc,KAAA,IAAA,IAAd,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAc,CAAE,KAAK,CAAC;AAC/C,gBAAA,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAClC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,aAAa,CACnB,CAAC;AACH,aAAA;AAAM,iBAAA;;AAEL,gBAAA,IAAI,CAAC,aAAa,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC;AAChD,gBAAA,IAAI,CAAC,iBAAiB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC;AACpD,gBAAA,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACjE,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACJ;;AAGD,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzB;AAED,IAAA,WAAW,CAAC,KAAY,EAAA;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAC5C;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC;AAC5C,YAAA,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,CAC/B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,iBAAiB,CACvB,CAAC;AACF,YAAA,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAC7C,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;QACvB,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACxC,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;;AAE3B,gBAAA,YAAY,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC;AAC5C,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpC,gBAAA,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3D,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CACnB,iDAAiD,CAClD,CAAC;AACH,aAAA;AACF,SAAA;KACF;;IAGD,UAAU,CAAC,IAAS,EAAE,EAAO,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,YAAA,oBAAoB,EAAE,KAAK;SAC5B,CAAC;KACH;;;;;;;;;;;IAaD,6BAA6B,GAAA;AAC3B,QAAA,IAAI,OAAO,GAAG;YACZ,eAAe,EAAE,eAAe,CAAC,eAAe;AAChD,YAAA,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B,CAAC;AACF,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAEhC,QAAA,IAAI,CAAC,iBAAiB;aACnB,+BAA+B,CAAC,OAAO,CAAC;aACxC,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAC/C,QAAQ,CAAC,OAAO,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,CAAC,CACnD;AACA,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,CAAC,IAAI,KAAI;gBACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;AACrC,gBAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;aACxC;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B;AACF,SAAA,CAAC,CAAC;KACN;;IAGD,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;AAEnC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,iBAAiB;AACnB,aAAA,mBAAmB,EAAE;AACrB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAClC,YAAA,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC;AACzC,SAAC,CAAC,CAAC;KACN;;IAGD,sBAAsB,GAAA;QACpB,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AACnE,YAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;AACjE,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,CAAC;AAEhD,QAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE,CAAC;KAChD;;qHA3mBU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAS,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAqC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA9B,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAwC,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,20BC9CrC,mkaA0WA,EAAA,MAAA,EAAA,CAAA,8vkBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvB,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,KAAA,CAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7B,KAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FD5Ta,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACE,uBAAuB,EAAA,aAAA,EAGlB,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,mkaAAA,EAAA,MAAA,EAAA,CAAA,8vkBAAA,CAAA,EAAA,CAAA;6UAI5B,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAEP,aAAa,EAAA,CAAA;sBADZ,SAAS;uBAAC,eAAe,CAAA;gBAmER,QAAQ,EAAA,CAAA;sBAAzB,SAAS;uBAAC,KAAK,CAAA;gBACU,cAAc,EAAA,CAAA;sBAAvC,SAAS;uBAAC,aAAa,CAAA;gBACE,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa,CAAA;;;MEzHb,4BAA4B,CAAA;AAUvC,IAAA,WAAA,GAAA;AATgB,QAAA,IAAqB,CAAA,qBAAA,GAAW,EAAE,CAAC;AACnC,QAAA,IAAwB,CAAA,wBAAA,GAAG,EAAE,CAAC;AAC9B,QAAA,IAA0B,CAAA,0BAAA,GAAG,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAW,CAAC;AACnD,QAAA,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAChC,QAAA,IAAmB,CAAA,mBAAA,GAAY,IAAI,CAAC;AAC7C,QAAA,IAAgB,CAAA,gBAAA,GAAW,yBAAyB,CAAC;AACrD,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAEvB;;IAGhB,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrC;;yHAfU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,mXCRzC,0qGA8DA,EAAA,MAAA,EAAA,CAAA,ymCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA5D,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,KAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAwD,4BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDtDa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,0qGAAA,EAAA,MAAA,EAAA,CAAA,ymCAAA,CAAA,EAAA,CAAA;0EAKpB,qBAAqB,EAAA,CAAA;sBAApC,KAAK;gBACU,wBAAwB,EAAA,CAAA;sBAAvC,KAAK;gBACU,0BAA0B,EAAA,CAAA;sBAAzC,KAAK;gBACW,mBAAmB,EAAA,CAAA;sBAAnC,MAAM;gBACS,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,mBAAmB,EAAA,CAAA;sBAAlC,KAAK;;;MEoGK,qBAAqB,CAAA;;kHAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,iBA/D9B,wBAAwB;QACxB,cAAc;QACd,oBAAoB;QACpB,YAAY;QACZ,oBAAoB;QACpB,kBAAkB;QAClB,sBAAsB;QACtB,oBAAoB;QACpB,4BAA4B;QAC5B,6BAA6B;QAC7B,8BAA8B;QAC9B,wBAAwB;QACxB,4BAA4B;QAC5B,uBAAuB;QACvB,sBAAsB;AACtB,QAAA,0BAA0B,aAG1B,YAAY;QACZ,gBAAgB;QAChB,mBAAmB;;QAGnB,eAAe;QACf,cAAc;QACd,kBAAkB;QAClB,WAAW;QACX,YAAY;QACZ,cAAc;QACd,eAAe;QACf,WAAW;QACX,YAAY;QACZ,mBAAmB;QACnB,SAAS,iCAaT,wBAAwB;QACxB,cAAc;QACd,YAAY;QACZ,oBAAoB;QACpB,sBAAsB;QACtB,0BAA0B;QAC1B,eAAe,CAAA,EAAA,CAAA,CAAA;AAWN,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EATrB,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,UAAU,EAAE,oBAAoB;AAChC,YAAA,IAAI,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC;AACxC,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;KACF,EAAA,OAAA,EAAA,CA3CC,YAAY;QACZ,gBAAgB;QAChB,mBAAmB;;QAGnB,eAAe;QACf,cAAc;QACd,kBAAkB;QAClB,WAAW;QACX,YAAY;QACZ,cAAc;QACd,eAAe;QACf,WAAW;QACX,YAAY;QACZ,mBAAmB;QACnB,SAAS;;QAGT,eAAe,CAAC,QAAQ,CAAC;AACvB,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,UAAU,EAAE,wBAAwB;gBACpC,IAAI,EAAE,CAAC,UAAU,CAAC;AACnB,aAAA;AACD,YAAA,OAAO,EAAE,IAAI;AACd,SAAA,CAAC,EASF,eAAe,CAAA,EAAA,CAAA,CAAA;2FAWN,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAjEjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,wBAAwB;wBACxB,cAAc;wBACd,oBAAoB;wBACpB,YAAY;wBACZ,oBAAoB;wBACpB,kBAAkB;wBAClB,sBAAsB;wBACtB,oBAAoB;wBACpB,4BAA4B;wBAC5B,6BAA6B;wBAC7B,8BAA8B;wBAC9B,wBAAwB;wBACxB,4BAA4B;wBAC5B,uBAAuB;wBACvB,sBAAsB;wBACtB,0BAA0B;AAC3B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,mBAAmB;;wBAGnB,eAAe;wBACf,cAAc;wBACd,kBAAkB;wBAClB,WAAW;wBACX,YAAY;wBACZ,cAAc;wBACd,eAAe;wBACf,WAAW;wBACX,YAAY;wBACZ,mBAAmB;wBACnB,SAAS;;wBAGT,eAAe,CAAC,QAAQ,CAAC;AACvB,4BAAA,MAAM,EAAE;AACN,gCAAA,OAAO,EAAE,eAAe;AACxB,gCAAA,UAAU,EAAE,wBAAwB;gCACpC,IAAI,EAAE,CAAC,UAAU,CAAC;AACnB,6BAAA;AACD,4BAAA,OAAO,EAAE,IAAI;yBACd,CAAC;AACH,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,wBAAwB;wBACxB,cAAc;wBACd,YAAY;wBACZ,oBAAoB;wBACpB,sBAAsB;wBACtB,0BAA0B;wBAC1B,eAAe;AAChB,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,UAAU,EAAE,oBAAoB;AAChC,4BAAA,IAAI,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC;AACxC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;iBACF,CAAA;;AAGe,SAAA,oBAAoB,CAClC,SAA2B,EAC3B,mBAAmC,EAAA;AAEnC,IAAA,OAAO,MAAK;AACV,QAAA,MAAM,cAAc,GAAG,eAAe,CAAC,aAAa,CAAC;AACrD,QAAA,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC;QAEhD,IAAI,YAAY,GAAG,WAAW,CAAC;;QAG/B,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAEnE,QAAA,IAAI,KAAK,EAAE;YACT,IAAI;gBACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAEjC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CACjC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,MAAK,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,OAAO,CAAA,CAC3C,CAAC;AAEF,gBAAA,IAAI,OAAO,EAAE;oBACX,YAAY,GAAG,MAAM,CAAC;AACvB,iBAAA;AACF,aAAA;YAAC,OAAM,EAAA,EAAA;;gBAEN,YAAY,GAAG,WAAW,CAAC;AAC5B,aAAA;AACF,SAAA;;AAGD,QAAA,mBAAmB,CAAC,QAAQ,CAC1B,cAAc,CAAC,QAAQ,EACvB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAC7B,CAAC;;AAEF,QAAA,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;AACzD,KAAC,CAAC;AACJ,CAAC;AAEK,SAAU,wBAAwB,CAAC,IAAgB,EAAA;IACvD,OAAO,IAAI,mBAAmB,CAC5B,IAAI,EACJ,gCAAgC,EAChC,OAAO,CACR,CAAC;AACJ;;ACnKA;;AAEG;AASH;;ACXA;;AAEG;;;;"}