studiokit-scaffolding-js 7.0.12-next.2.6 → 7.0.12-next.2.8

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 (286) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +137 -137
  3. package/lib/components/ActionList.js +1 -1
  4. package/lib/components/AlertDialog.js +1 -1
  5. package/lib/components/AlertWithIcon.js +1 -1
  6. package/lib/components/ConnectedModal.js +3 -3
  7. package/lib/components/Dropdowns/GroupsDropdown.js +1 -1
  8. package/lib/components/Dropdowns/ManagedNavDropdown.js +4 -4
  9. package/lib/components/Dropdowns/UserDropdown.js +1 -1
  10. package/lib/components/Dropdowns/index.js +1 -1
  11. package/lib/components/EntityOwnerList.js +1 -1
  12. package/lib/components/Error.js +1 -1
  13. package/lib/components/ErrorBoundary.js +1 -1
  14. package/lib/components/ErrorMessage.js +1 -1
  15. package/lib/components/Forms/DateField.js +1 -1
  16. package/lib/components/Forms/TimeField.js +1 -1
  17. package/lib/components/Forms/index.js +1 -1
  18. package/lib/components/Groups/CreateEditCopySaveButtons.js +1 -1
  19. package/lib/components/Groups/ExternalGroups/Attach.js +1 -1
  20. package/lib/components/Groups/ExternalGroups/Table.js +1 -1
  21. package/lib/components/Groups/GroupCreateOrEditCommonProps.js +1 -1
  22. package/lib/components/Groups/RosterSyncInfo.js +1 -1
  23. package/lib/components/HOC/AccessibleAppComponent.js +6 -6
  24. package/lib/components/HOC/ActivityRequiredComponent.js +50 -50
  25. package/lib/components/HOC/AsyncComponent.js +1 -1
  26. package/lib/components/HOC/AuthenticatedComponent.js +1 -1
  27. package/lib/components/HOC/CollectionComponent.js +11 -11
  28. package/lib/components/HOC/CollectionFirstItemComponent.js +4 -4
  29. package/lib/components/HOC/CollectionItemComponent.js +11 -11
  30. package/lib/components/HOC/ConnectedModalComponent.js +15 -15
  31. package/lib/components/HOC/DataDependentComponent.js +1 -1
  32. package/lib/components/HOC/EntityComponent.js +12 -12
  33. package/lib/components/HOC/FullscreenModalComponent.js +24 -24
  34. package/lib/components/HOC/GroupActivityRequiredComponent.js +19 -19
  35. package/lib/components/HOC/GuidComponent.js +5 -5
  36. package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +7 -7
  37. package/lib/components/HOC/ModelErrorRedirectComponent.js +12 -12
  38. package/lib/components/HOC/SearchPersistorComponent.js +43 -43
  39. package/lib/components/HOC/UnauthenticatedComponent.js +1 -1
  40. package/lib/components/HOC/UserComponent.js +1 -1
  41. package/lib/components/Icons/IconAlphaList.js +1 -1
  42. package/lib/components/Icons/IconExternalUser.js +1 -1
  43. package/lib/components/Icons/IconImpersonation.js +1 -1
  44. package/lib/components/Icons/IconStopImpersonating.js +1 -1
  45. package/lib/components/Icons/IconTable.js +1 -1
  46. package/lib/components/Icons/IconTableDeleteCol.js +1 -1
  47. package/lib/components/Icons/IconTableDeleteRow.js +1 -1
  48. package/lib/components/Icons/IconTableInsertCol.js +1 -1
  49. package/lib/components/Icons/IconTableInsertRow.js +1 -1
  50. package/lib/components/Impersonation/Button.js +1 -1
  51. package/lib/components/Impersonation/Link.js +1 -1
  52. package/lib/components/Impersonation/UserDetail.css +22 -22
  53. package/lib/components/Impersonation/UserDetail.js +3 -3
  54. package/lib/components/Loading.js +1 -1
  55. package/lib/components/LockDownBrowser/Check.js +1 -1
  56. package/lib/components/LockDownBrowser/ExitButton.js +1 -1
  57. package/lib/components/LockDownBrowser/Launch.js +1 -1
  58. package/lib/components/Lti/Confirm.js +1 -1
  59. package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +1 -1
  60. package/lib/components/Lti/Launch.js +1 -1
  61. package/lib/components/Lti/LaunchGroup.js +1 -1
  62. package/lib/components/ManageTable.js +1 -1
  63. package/lib/components/ManageTableNoDataComponent.js +1 -1
  64. package/lib/components/NewVersionAlert.js +1 -1
  65. package/lib/components/NotFound.js +1 -1
  66. package/lib/components/Notifications.js +1 -1
  67. package/lib/components/PaginationNextButton.js +1 -1
  68. package/lib/components/PaginationPreviousButton.js +1 -1
  69. package/lib/components/Quill/CustomToolbar.js +1 -1
  70. package/lib/components/Quill/Formats/Image.js +5 -5
  71. package/lib/components/Quill/Formats/List.js +3 -3
  72. package/lib/components/Quill/Formats/Video.js +3 -3
  73. package/lib/components/Quill/ImageDropModule.js +17 -17
  74. package/lib/components/Quill/ImageWarning.js +1 -1
  75. package/lib/components/Quill/ImageWithAltTextModal.js +1 -1
  76. package/lib/components/Quill/Specs/CustomImageSpec.js +7 -7
  77. package/lib/components/Quill/Specs/CustomVideoSpec.js +9 -9
  78. package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +8 -8
  79. package/lib/components/Quill/TableModule/Blots/TableBlot.js +1 -1
  80. package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +1 -1
  81. package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +1 -1
  82. package/lib/components/Quill/TableModule/Blots/TableContainer.js +1 -1
  83. package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +1 -1
  84. package/lib/components/Quill/TableModule/constants.js +1 -1
  85. package/lib/components/Quill/TableModule/index.css +171 -171
  86. package/lib/components/Quill/TableModule/index.js +1 -1
  87. package/lib/components/Quill/TableModule/utils.js +1 -1
  88. package/lib/components/Quill/accessibilityFix.js +14 -14
  89. package/lib/components/Quill/index.js +1 -1
  90. package/lib/components/RefreshIndicator/Bordered.js +1 -1
  91. package/lib/components/RefreshIndicator/Inline.js +1 -1
  92. package/lib/components/RefreshIndicator/index.js +1 -1
  93. package/lib/components/SearchControls.js +1 -1
  94. package/lib/components/SentryRoute.js +1 -1
  95. package/lib/components/Tables/RoleFilter.js +1 -1
  96. package/lib/components/Tables/TextFilter.js +1 -1
  97. package/lib/components/UserRoles/Add.js +1 -1
  98. package/lib/components/UserRoles/Context.js +4 -4
  99. package/lib/components/UserRoles/RoleCell.js +1 -1
  100. package/lib/components/UserRoles/Select.js +1 -1
  101. package/lib/components/UserRoles/Table.js +1 -1
  102. package/lib/components/UserRoles/index.js +3 -3
  103. package/lib/config/eslint/index.js +1 -1
  104. package/lib/config/eslint/lib/order.js +1 -1
  105. package/lib/config/eslint/lib/prettier.js +1 -1
  106. package/lib/config/eslint/lib/typescript.js +1 -1
  107. package/lib/config/eslint/react.js +1 -1
  108. package/lib/constants/baseActivity.js +1 -1
  109. package/lib/constants/baseRole.js +1 -1
  110. package/lib/constants/configuration.js +1 -1
  111. package/lib/constants/externalProviderType.js +1 -1
  112. package/lib/constants/fetchErrorData.js +1 -1
  113. package/lib/constants/index.js +1 -1
  114. package/lib/constants/lockDownBrowser.js +1 -1
  115. package/lib/constants/mockData.js +3 -3
  116. package/lib/constants/modelStatus.js +1 -1
  117. package/lib/constants/notificationType.js +1 -1
  118. package/lib/constants/operatingSystem.js +1 -1
  119. package/lib/constants/shard.js +1 -1
  120. package/lib/constants/table.js +1 -1
  121. package/lib/constants/tier.js +1 -1
  122. package/lib/constants/userRole.js +1 -1
  123. package/lib/css/base/_base.css +98 -98
  124. package/lib/css/base/_typography.css +130 -130
  125. package/lib/css/components/_alert.css +86 -86
  126. package/lib/css/components/_bootstrap-grid.css +28 -28
  127. package/lib/css/components/_buttons.css +397 -397
  128. package/lib/css/components/_forms.css +101 -101
  129. package/lib/css/components/_menu.css +56 -56
  130. package/lib/css/components/_modals.css +46 -46
  131. package/lib/css/components/_quill.css +315 -315
  132. package/lib/css/components/_tables.css +497 -497
  133. package/lib/css/components/_tags.css +12 -12
  134. package/lib/css/index-with-variables.css +15 -15
  135. package/lib/css/index.css +14 -14
  136. package/lib/css/utils/_border.css +463 -463
  137. package/lib/css/utils/_color.css +317 -317
  138. package/lib/css/utils/_display.css +305 -305
  139. package/lib/css/utils/_general.css +48 -48
  140. package/lib/css/utils/_icon.css +16 -16
  141. package/lib/css/utils/_text.css +25 -25
  142. package/lib/css/utils/_width.css +60 -60
  143. package/lib/css/variables.css +84 -84
  144. package/lib/endpointMappings.js +1 -1
  145. package/lib/hooks/useCollection.js +1 -1
  146. package/lib/hooks/useCollectionConfiguration.js +86 -131
  147. package/lib/hooks/useCollectionItem.js +1 -1
  148. package/lib/hooks/useEventCalback.d.ts +14 -0
  149. package/lib/hooks/useEventCalback.js +51 -0
  150. package/lib/hooks/useGuid.js +3 -3
  151. package/lib/hooks/usePrevious.d.ts +15 -5
  152. package/lib/hooks/usePrevious.js +62 -19
  153. package/lib/index.js +1 -1
  154. package/lib/redux/actionCreator.js +1 -1
  155. package/lib/redux/actions/AuthAction.js +7 -7
  156. package/lib/redux/actions/ModalAction.js +1 -1
  157. package/lib/redux/actions/ModelAction.js +17 -17
  158. package/lib/redux/actions/NotificationAction.js +1 -1
  159. package/lib/redux/actions/SearchAction.js +1 -1
  160. package/lib/redux/actions/index.js +1 -1
  161. package/lib/redux/configureReducers.js +7 -7
  162. package/lib/redux/configureStore.js +1 -1
  163. package/lib/redux/helpers.js +1 -1
  164. package/lib/redux/reducers/authReducer.js +3 -3
  165. package/lib/redux/reducers/index.js +1 -1
  166. package/lib/redux/reducers/modalsReducer.js +1 -1
  167. package/lib/redux/reducers/modelsReducer.js +48 -48
  168. package/lib/redux/reducers/notificationsReducer.js +1 -1
  169. package/lib/redux/reducers/searchReducer.js +9 -9
  170. package/lib/redux/sagas/appInsightsSaga.js +1 -1
  171. package/lib/redux/sagas/authSaga.js +1 -1
  172. package/lib/redux/sagas/caliperSaga.js +16 -16
  173. package/lib/redux/sagas/clockOffsetSaga.js +9 -9
  174. package/lib/redux/sagas/configurationSaga.js +1 -1
  175. package/lib/redux/sagas/downtimeApiErrorSaga.js +1 -1
  176. package/lib/redux/sagas/errorSaga.js +1 -1
  177. package/lib/redux/sagas/googleAnalyticsSaga.js +1 -1
  178. package/lib/redux/sagas/identityProviderSaga.js +1 -1
  179. package/lib/redux/sagas/initialDataLoadSaga.js +1 -1
  180. package/lib/redux/sagas/lockDownBrowserErrorSaga.js +1 -1
  181. package/lib/redux/sagas/modelFetchSaga.js +49 -49
  182. package/lib/redux/sagas/noStoreSaga.js +1 -1
  183. package/lib/redux/sagas/postLoginDataSaga.js +6 -6
  184. package/lib/redux/sagas/postLoginRedirectSaga.js +4 -4
  185. package/lib/redux/sagas/rootSaga.js +1 -1
  186. package/lib/redux/sagas/sentrySaga.js +1 -1
  187. package/lib/redux/sagas/userIdSaga.js +1 -1
  188. package/lib/services/codeProviderService.js +1 -1
  189. package/lib/services/dateService.js +3 -3
  190. package/lib/services/documentService.js +4 -4
  191. package/lib/services/fetchService.js +25 -25
  192. package/lib/services/persistenceService.js +1 -1
  193. package/lib/services/ticketProviderService.js +1 -1
  194. package/lib/services/tokenPersistenceService.js +1 -1
  195. package/lib/services/windowService.js +1 -1
  196. package/lib/startup.js +18 -18
  197. package/lib/types/AppConfiguration.js +1 -1
  198. package/lib/types/Artifact.js +1 -1
  199. package/lib/types/BaseReduxState.js +1 -1
  200. package/lib/types/Client.js +1 -1
  201. package/lib/types/Collection.js +1 -1
  202. package/lib/types/Configuration.js +1 -1
  203. package/lib/types/DeepLinkingResponseRequest.js +1 -1
  204. package/lib/types/DeletableModel.js +1 -1
  205. package/lib/types/Event.js +1 -1
  206. package/lib/types/ExternalGroup.js +1 -1
  207. package/lib/types/ExternalProvider.js +1 -1
  208. package/lib/types/ExternalTerm.js +1 -1
  209. package/lib/types/Group.js +1 -1
  210. package/lib/types/IdentityProvider.js +1 -1
  211. package/lib/types/LtiLaunch.js +1 -1
  212. package/lib/types/NameOnlyEntity.js +1 -1
  213. package/lib/types/Notification.js +1 -1
  214. package/lib/types/OptionalRecord.js +1 -1
  215. package/lib/types/OwnerSchedule.js +1 -1
  216. package/lib/types/PropertyOfType.js +1 -1
  217. package/lib/types/Quill.js +1 -1
  218. package/lib/types/RoleDescription.js +1 -1
  219. package/lib/types/Search.js +1 -1
  220. package/lib/types/SimpleLocation.js +1 -1
  221. package/lib/types/UniTime.js +1 -1
  222. package/lib/types/User.js +1 -1
  223. package/lib/types/UserRole.js +1 -1
  224. package/lib/types/auth/AuthState.js +1 -1
  225. package/lib/types/auth/CasV1LoginRequestBody.js +1 -1
  226. package/lib/types/auth/ClientCredentials.js +1 -1
  227. package/lib/types/auth/CodeProviderService.js +1 -1
  228. package/lib/types/auth/LocalLoginRequestBody.js +1 -1
  229. package/lib/types/auth/TicketProviderService.js +1 -1
  230. package/lib/types/auth/TokenPersistenceService.js +1 -1
  231. package/lib/types/auth/index.js +1 -1
  232. package/lib/types/externals.d.js +1 -1
  233. package/lib/types/index.js +1 -1
  234. package/lib/types/net/EndpointConfig.js +1 -1
  235. package/lib/types/net/EndpointMapping.js +1 -1
  236. package/lib/types/net/EndpointMappings.js +1 -1
  237. package/lib/types/net/ErrorHandler.js +1 -1
  238. package/lib/types/net/FetchConfig.js +1 -1
  239. package/lib/types/net/FetchErrorData.js +1 -1
  240. package/lib/types/net/FetchResult.js +1 -1
  241. package/lib/types/net/HTTPMethod.js +1 -1
  242. package/lib/types/net/HTTPStatusCode.js +1 -1
  243. package/lib/types/net/Metadata.js +1 -1
  244. package/lib/types/net/Model.js +1 -1
  245. package/lib/types/net/ModelCollection.js +1 -1
  246. package/lib/types/net/ModelsState.js +1 -1
  247. package/lib/types/net/OAuthToken.js +1 -1
  248. package/lib/types/net/OAuthTokenOrNull.js +1 -1
  249. package/lib/types/net/TokenAccessFunction.js +1 -1
  250. package/lib/types/net/index.js +1 -1
  251. package/lib/utils/baseActivity.js +87 -87
  252. package/lib/utils/baseRole.js +1 -1
  253. package/lib/utils/collection.js +26 -23
  254. package/lib/utils/cookies.js +1 -1
  255. package/lib/utils/date.js +111 -111
  256. package/lib/utils/dom.js +42 -42
  257. package/lib/utils/domainIdentifier.js +1 -1
  258. package/lib/utils/entityUserRole.js +1 -1
  259. package/lib/utils/error.js +1 -1
  260. package/lib/utils/events.js +4 -4
  261. package/lib/utils/externalGroup.js +1 -1
  262. package/lib/utils/externalProviders.js +1 -1
  263. package/lib/utils/externalTerms.js +1 -1
  264. package/lib/utils/fetch.js +10 -10
  265. package/lib/utils/group.js +1 -1
  266. package/lib/utils/groupDates.js +1 -1
  267. package/lib/utils/groupRoles.js +1 -1
  268. package/lib/utils/lockDownBrowser.js +1 -1
  269. package/lib/utils/logger.js +1 -1
  270. package/lib/utils/lti.js +1 -1
  271. package/lib/utils/model.js +5 -5
  272. package/lib/utils/number.js +11 -11
  273. package/lib/utils/promise.js +1 -1
  274. package/lib/utils/quill.js +16 -16
  275. package/lib/utils/route.js +1 -1
  276. package/lib/utils/search.js +1 -1
  277. package/lib/utils/shard.js +1 -1
  278. package/lib/utils/sort.js +1 -1
  279. package/lib/utils/string.js +1 -1
  280. package/lib/utils/table.js +4 -4
  281. package/lib/utils/timezone.js +1 -1
  282. package/lib/utils/url.js +18 -18
  283. package/lib/utils/user.js +1 -1
  284. package/lib/utils/userAgent.js +1 -1
  285. package/lib/utils/userRole.js +16 -16
  286. package/package.json +225 -225
package/lib/utils/url.js CHANGED
@@ -80,10 +80,10 @@ let X_FRAME_OPTIONS = exports.X_FRAME_OPTIONS = /*#__PURE__*/function (X_FRAME_O
80
80
  X_FRAME_OPTIONS["ALLOW_FROM"] = "ALLOW-FROM";
81
81
  return X_FRAME_OPTIONS;
82
82
  }({});
83
- /**
84
- * Using the given headers, determine if a url is allowed to be displayed in an iFrame.
85
- * @param headers An array of request headers.
86
- * @returns The parsed result
83
+ /**
84
+ * Using the given headers, determine if a url is allowed to be displayed in an iFrame.
85
+ * @param headers An array of request headers.
86
+ * @returns The parsed result
87
87
  */
88
88
  const parseHeadersResponse = headers => {
89
89
  // default result
@@ -114,15 +114,15 @@ const parseHeadersResponse = headers => {
114
114
  acceptableSources.push(`${location.protocol}//${tempHost}`);
115
115
  }
116
116
  result.iFrameAllowed = !xContentSecurityPolicy.some(x => x.indexOf('frame-ancestors ') >= 0) || xContentSecurityPolicy.some(x => {
117
- /**
118
- * Matches
119
- * * the string `frame-ancestors `
120
- * * one or many of the following, followed by a space, semicolon, or end of string
121
- * * `http:`
122
- * * `https:`
123
- * * `'self'`
124
- * * `'none'`
125
- * * url with optional scheme and optional asterisk wildcards
117
+ /**
118
+ * Matches
119
+ * * the string `frame-ancestors `
120
+ * * one or many of the following, followed by a space, semicolon, or end of string
121
+ * * `http:`
122
+ * * `https:`
123
+ * * `'self'`
124
+ * * `'none'`
125
+ * * url with optional scheme and optional asterisk wildcards
126
126
  */
127
127
  const frameAncestorsRegex = /frame-ancestors ((?:(?:(?:http:)|(?:https:)|(?:'self')|(?:'none')|(?:(?:https?:\/\/)?[\w*.-]+(?:\.[\w*.-]+)+[\w-._~:/?#[\]@!$&'()*+,=]+))(?:[ ;]|$))+)/g;
128
128
  const results = frameAncestorsRegex.exec(x);
@@ -143,10 +143,10 @@ const parseHeadersResponse = headers => {
143
143
  return result;
144
144
  };
145
145
 
146
- /**
147
- * Parse a path string into a location with separate pathname, search, and hash components.
148
- * @param path A path string
149
- * @returns The parsed result
146
+ /**
147
+ * Parse a path string into a location with separate pathname, search, and hash components.
148
+ * @param path A path string
149
+ * @returns The parsed result
150
150
  */
151
151
  exports.parseHeadersResponse = parseHeadersResponse;
152
152
  const parseLocation = path => {
@@ -163,4 +163,4 @@ const parseLocation = path => {
163
163
  };
164
164
  };
165
165
  exports.parseLocation = parseLocation;
166
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9zaGFyZCIsIl90aWVyIiwiX3dpbmRvd1NlcnZpY2UiLCJfbG9nZ2VyIiwiX3NoYXJkMiIsImdldEFwaUJhc2VVcmwiLCJ0aWVyIiwiYXBpVXJsU3RyaW5nIiwiVElFUiIsIkxPQ0FMIiwiaW5jbHVkZXMiLCJzaGFyZEtleSIsImdldFNoYXJkS2V5IiwiU0hBUkQiLCJST09UIiwiUFVSRFVFIiwicHJvdG9jb2wiLCJzdWJzdHJpbmciLCJpbmRleE9mIiwiaG9zdCIsInRpZXJTdWJkb21haW5QYXJ0IiwiREVWIiwiUUEiLCJnZXRTdG9yYWdlVXJsIiwiY29uZmlnIiwidXJsIiwiU1RPUkFHRV9VUkwiLCJyZXBsYWNlIiwiaGFzSHR0cFByb3RvY29sIiwidGVzdCIsImlzVXJsVmFsaWQiLCJUUllfTElNSVQiLCJ3YWl0IiwidGltZSIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsImZldGNoVGV4dCIsIm9wdGlvbnMiLCJ0cnlDb3VudCIsInJlc3AiLCJmZXRjaCIsInRleHQiLCJlcnJvciIsImdldExvZ2dlciIsIkVycm9yIiwiWF9GUkFNRV9PUFRJT05TIiwiZXhwb3J0cyIsInBhcnNlSGVhZGVyc1Jlc3BvbnNlIiwiaGVhZGVycyIsInJlc3VsdCIsImlzVmFsaWQiLCJpRnJhbWVBbGxvd2VkIiwidW5kZWZpbmVkIiwibG9jYXRpb24iLCJ3aW5kb3dTZXJ2aWNlIiwiZ2V0TG9jYXRpb24iLCJ4Q29udGVudFNlY3VyaXR5UG9saWN5IiwiZmluZCIsInZhbHVlIiwia2V5IiwidG9Mb3dlckNhc2UiLCJpc0FycmF5IiwiYWNjZXB0YWJsZVNvdXJjZXMiLCJob3N0UGFydHMiLCJzcGxpdCIsImxlbmd0aCIsInNoaWZ0IiwidGVtcEhvc3QiLCJqb2luIiwicHVzaCIsInNvbWUiLCJ4IiwiZnJhbWVBbmNlc3RvcnNSZWdleCIsInJlc3VsdHMiLCJleGVjIiwic291cmNlcyIsInNvdXJjZSIsImFjY2VwdGFibGVTb3VyY2UiLCJ4RnJhbWVPcHRpb25zIiwiREVOWSIsIlNBTUVPUklHSU4iLCJBTExPV19GUk9NIiwicGFyc2VMb2NhdGlvbiIsInBhdGgiLCJzZWFyY2hTdGFydCIsImhhc2hTdGFydCIsInNlYXJjaEVuZCIsInBhdGhuYW1lIiwic2VhcmNoIiwiaGFzaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy91cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb25EZXNjcmlwdG9yIH0gZnJvbSAnaGlzdG9yeSdcbmltcG9ydCB7IERpY3Rpb25hcnksIGZpbmQsIGlzQXJyYXkgfSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBTSEFSRCB9IGZyb20gJy4uL2NvbnN0YW50cy9zaGFyZCdcbmltcG9ydCB7IFRJRVIgfSBmcm9tICcuLi9jb25zdGFudHMvdGllcidcbmltcG9ydCB7IHdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy93aW5kb3dTZXJ2aWNlJ1xuaW1wb3J0IHsgQXBwQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXInXG5pbXBvcnQgeyBnZXRTaGFyZEtleSB9IGZyb20gJy4vc2hhcmQnXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcGlCYXNlVXJsKHRpZXI6IFRJRVIsIGFwaVVybFN0cmluZzogc3RyaW5nKSB7XG5cdC8vIHNraXAgc2hhcmQgbG9naWMgb24gTE9DQUwgb3IgaWYgbm90IHVzaW5nIGEgY3VzdG9tIGRvbWFpbiAoZS5nLiBzdGFnaW5nKVxuXHRpZiAodGllciA9PT0gVElFUi5MT0NBTCB8fCBhcGlVcmxTdHJpbmcuaW5jbHVkZXMoJ2F6dXJld2Vic2l0ZXMubmV0JykpIHtcblx0XHRyZXR1cm4gYXBpVXJsU3RyaW5nXG5cdH1cblx0bGV0IHNoYXJkS2V5ID0gZ2V0U2hhcmRLZXkoKVxuXG5cdC8vIFRPRE86IGRlZmF1bHQgUk9PVCB0byBwb2ludCB0byBQdXJkdWUsIHVudGlsIHdlIGhhdmUgYSBsYW5kaW5nIG1hcmtldGluZyBwYWdlXG5cdGlmIChzaGFyZEtleSA9PT0gU0hBUkQuUk9PVCkge1xuXHRcdHNoYXJkS2V5ID0gU0hBUkQuUFVSRFVFXG5cdH1cblxuXHRjb25zdCBwcm90b2NvbCA9IGFwaVVybFN0cmluZy5zdWJzdHJpbmcoMCwgYXBpVXJsU3RyaW5nLmluZGV4T2YoJy8vJykpXG5cdGNvbnN0IGhvc3QgPSBhcGlVcmxTdHJpbmcuc3Vic3RyaW5nKGFwaVVybFN0cmluZy5pbmRleE9mKCc6Ly8nKSArIDMpXG5cdGxldCB0aWVyU3ViZG9tYWluUGFydCA9ICcnXG5cdHN3aXRjaCAodGllcikge1xuXHRcdGNhc2UgVElFUi5ERVY6XG5cdFx0XHR0aWVyU3ViZG9tYWluUGFydCA9ICcuZGV2J1xuXHRcdFx0YnJlYWtcblx0XHRjYXNlIFRJRVIuUUE6XG5cdFx0XHR0aWVyU3ViZG9tYWluUGFydCA9ICcucWEnXG5cdFx0XHRicmVha1xuXHR9XG5cdHJldHVybiBgJHtwcm90b2NvbH0vLyR7c2hhcmRLZXl9JHt0aWVyU3ViZG9tYWluUGFydH0uJHtob3N0fWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0b3JhZ2VVcmwoY29uZmlnOiBBcHBDb25maWd1cmF0aW9uLCB1cmw6IHN0cmluZykge1xuXHRyZXR1cm4gY29uZmlnLlRJRVIgPT09IFRJRVIuTE9DQUwgJiYgISFjb25maWcuU1RPUkFHRV9VUkxcblx0XHQ/IHVybC5yZXBsYWNlKCdodHRwOi8vMTI3LjAuMC4xOjEwMDAwJywgY29uZmlnLlNUT1JBR0VfVVJMKVxuXHRcdDogdXJsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNIdHRwUHJvdG9jb2wodXJsOiBzdHJpbmcpIHtcblx0cmV0dXJuIC9eKGh0dHB8aHR0cHMpOlxcL1xcLy8udGVzdCh1cmwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1VybFZhbGlkKHVybDogc3RyaW5nKSB7XG5cdHJldHVybiAvXig/Omh0dHAocyk/OlxcL1xcLyk/W1xcdy4tXSsoPzpcXC5bXFx3Li1dKykrW1xcd1xcLS5ffjovPyNbXFxdQCEkJicoKSorLDs9XSskLy50ZXN0KHVybClcbn1cblxuLyoqIFRoZSB0b3RhbCBudW1iZXIgb2YgdHJpZXMgZm9yIGBmZXRjaFRleHRgLCBpbmNsdWRpbmcgdGhlIGluaXRpYWwgcmVxdWVzdC4gKi9cbmNvbnN0IFRSWV9MSU1JVCA9IDVcblxuZnVuY3Rpb24gd2FpdCh0aW1lOiBudW1iZXIpIHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuXHRcdHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZSlcblx0fSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoVGV4dCh1cmw6IHN0cmluZywgb3B0aW9ucz86IFJlcXVlc3RJbml0KSB7XG5cdGxldCB0cnlDb3VudCA9IDBcblx0ZG8ge1xuXHRcdHRyeUNvdW50Kytcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgcmVzcCA9IGF3YWl0IGZldGNoKHVybCwgb3B0aW9ucylcblx0XHRcdGNvbnN0IHRleHQgPSBhd2FpdCByZXNwLnRleHQoKVxuXHRcdFx0cmV0dXJuIHRleHRcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0Z2V0TG9nZ2VyKCkuZXJyb3IoYEZhaWxlZCB0byBmZXRjaCAke3VybH0uIGF0dGVtcHQ6ICR7dHJ5Q291bnR9LCBlcnJvcjogJHtlcnJvcn1gKVxuXHRcdFx0aWYgKHRyeUNvdW50IDwgVFJZX0xJTUlUKSB7XG5cdFx0XHRcdGF3YWl0IHdhaXQoMiAqKiAodHJ5Q291bnQgLSAxKSAqIDEwMCkgLy8gMTAwLCAyMDAsIDQwMCwgODAwXG5cdFx0XHR9XG5cdFx0fVxuXHR9IHdoaWxlICh0cnlDb3VudCA8IFRSWV9MSU1JVClcblxuXHR0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCAke3VybH0gYWZ0ZXIgJHtUUllfTElNSVR9IGF0dGVtcHRzLmApXG59XG5cbmV4cG9ydCBlbnVtIFhfRlJBTUVfT1BUSU9OUyB7XG5cdERFTlkgPSAnREVOWScsXG5cdFNBTUVPUklHSU4gPSAnU0FNRU9SSUdJTicsXG5cdEFMTE9XX0ZST00gPSAnQUxMT1ctRlJPTSdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRIZWFkZXJzUmVzcG9uc2Uge1xuXHRpc1ZhbGlkOiBib29sZWFuXG5cdGlGcmFtZUFsbG93ZWQ/OiBib29sZWFuXG59XG5cbi8qKlxuICogVXNpbmcgdGhlIGdpdmVuIGhlYWRlcnMsIGRldGVybWluZSBpZiBhIHVybCBpcyBhbGxvd2VkIHRvIGJlIGRpc3BsYXllZCBpbiBhbiBpRnJhbWUuXG4gKiBAcGFyYW0gaGVhZGVycyBBbiBhcnJheSBvZiByZXF1ZXN0IGhlYWRlcnMuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIHJlc3VsdFxuICovXG5leHBvcnQgY29uc3QgcGFyc2VIZWFkZXJzUmVzcG9uc2UgPSAoaGVhZGVycz86IERpY3Rpb25hcnk8c3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+KSA9PiB7XG5cdC8vIGRlZmF1bHQgcmVzdWx0XG5cdGNvbnN0IHJlc3VsdDogUGFyc2VkSGVhZGVyc1Jlc3BvbnNlID0ge1xuXHRcdGlzVmFsaWQ6IGZhbHNlLFxuXHRcdGlGcmFtZUFsbG93ZWQ6IHVuZGVmaW5lZFxuXHR9XG5cblx0aWYgKCFoZWFkZXJzKSB7XG5cdFx0cmV0dXJuIHJlc3VsdFxuXHR9XG5cblx0cmVzdWx0LmlzVmFsaWQgPSB0cnVlXG5cdHJlc3VsdC5pRnJhbWVBbGxvd2VkID0gdHJ1ZVxuXG5cdGNvbnN0IGxvY2F0aW9uID0gd2luZG93U2VydmljZS5nZXRMb2NhdGlvbigpXG5cblx0Ly8gY29udGVudC1zZWN1cml0eS1wb2xpY3kgLyB4LWNvbnRlbnQtc2VjdXJpdHktcG9saWN5XG5cdC8vIGNhbiBjb250YWluICdmcmFtZS1hbmNlc3RvcnMgPHNvdXJjZT4gPHNvdXJjZT4nIHdpdGggb25lIG9yIG1hbnkgc291cmNlc1xuXHQvLyBpRnJhbWVBbGxvd2VkIGlmIGl0IGRvZXMgbm90IGNvbnRhaW4gJ2ZyYW1lLWFuY2VzdG9ycycgb3IgaWYgaXQgZG9lcyB3aXRoIGFuIGFjY2VwdGFibGUgc291cmNlXG5cdGNvbnN0IHhDb250ZW50U2VjdXJpdHlQb2xpY3kgPSBmaW5kKFxuXHRcdGhlYWRlcnMsXG5cdFx0KHZhbHVlLCBrZXkpID0+XG5cdFx0XHRrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2NvbnRlbnQtc2VjdXJpdHktcG9saWN5JyB8fCBrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3gtY29udGVudC1zZWN1cml0eS1wb2xpY3knXG5cdClcblx0aWYgKHhDb250ZW50U2VjdXJpdHlQb2xpY3kgJiYgaXNBcnJheSh4Q29udGVudFNlY3VyaXR5UG9saWN5KSkge1xuXHRcdC8vIGRlZmluZSBhbGwgYWNjZXB0YWJsZSBmcmFtZS1hbmNlc3RvcnMgc291cmNlc1xuXHRcdC8vIHByb3RvY29sLCBmdWxsIGxvY2F0aW9uIGhvc3QsIGhvc3QsIGFuZCBhbGwgd2lsZGNhcmQgcGVybXV0YXRpb25zXG5cdFx0Y29uc3QgYWNjZXB0YWJsZVNvdXJjZXMgPSBbbG9jYXRpb24ucHJvdG9jb2wsIGAke2xvY2F0aW9uLnByb3RvY29sfS8vJHtsb2NhdGlvbi5ob3N0fWAsIGxvY2F0aW9uLmhvc3RdXG5cdFx0Y29uc3QgaG9zdFBhcnRzID0gbG9jYXRpb24uaG9zdC5zcGxpdCgnLicpXG5cdFx0d2hpbGUgKGhvc3RQYXJ0cy5sZW5ndGggPiAyKSB7XG5cdFx0XHRob3N0UGFydHMuc2hpZnQoKVxuXHRcdFx0Y29uc3QgdGVtcEhvc3QgPSBgKi4ke2hvc3RQYXJ0cy5qb2luKCcuJyl9YFxuXHRcdFx0YWNjZXB0YWJsZVNvdXJjZXMucHVzaCh0ZW1wSG9zdClcblx0XHRcdGFjY2VwdGFibGVTb3VyY2VzLnB1c2goYCR7bG9jYXRpb24ucHJvdG9jb2x9Ly8ke3RlbXBIb3N0fWApXG5cdFx0fVxuXHRcdHJlc3VsdC5pRnJhbWVBbGxvd2VkID1cblx0XHRcdCF4Q29udGVudFNlY3VyaXR5UG9saWN5LnNvbWUoeCA9PiB4LmluZGV4T2YoJ2ZyYW1lLWFuY2VzdG9ycyAnKSA+PSAwKSB8fFxuXHRcdFx0eENvbnRlbnRTZWN1cml0eVBvbGljeS5zb21lKHggPT4ge1xuXHRcdFx0XHQvKipcblx0XHRcdFx0ICogTWF0Y2hlc1xuXHRcdFx0XHQgKiAqIHRoZSBzdHJpbmcgYGZyYW1lLWFuY2VzdG9ycyBgXG5cdFx0XHRcdCAqICogb25lIG9yIG1hbnkgb2YgdGhlIGZvbGxvd2luZywgZm9sbG93ZWQgYnkgYSBzcGFjZSwgc2VtaWNvbG9uLCBvciBlbmQgb2Ygc3RyaW5nXG5cdFx0XHRcdCAqICAgICAqIGBodHRwOmBcblx0XHRcdFx0ICogICAgICogYGh0dHBzOmBcblx0XHRcdFx0ICogICAgICogYCdzZWxmJ2Bcblx0XHRcdFx0ICogICAgICogYCdub25lJ2Bcblx0XHRcdFx0ICogICAgICogdXJsIHdpdGggb3B0aW9uYWwgc2NoZW1lIGFuZCBvcHRpb25hbCBhc3RlcmlzayB3aWxkY2FyZHNcblx0XHRcdFx0ICovXG5cdFx0XHRcdGNvbnN0IGZyYW1lQW5jZXN0b3JzUmVnZXggPVxuXHRcdFx0XHRcdC9mcmFtZS1hbmNlc3RvcnMgKCg/Oig/Oig/Omh0dHA6KXwoPzpodHRwczopfCg/OidzZWxmJyl8KD86J25vbmUnKXwoPzooPzpodHRwcz86XFwvXFwvKT9bXFx3Ki4tXSsoPzpcXC5bXFx3Ki4tXSspK1tcXHctLl9+Oi8/I1tcXF1AISQmJygpKissPV0rKSkoPzpbIDtdfCQpKSspL2dcblx0XHRcdFx0Y29uc3QgcmVzdWx0cyA9IGZyYW1lQW5jZXN0b3JzUmVnZXguZXhlYyh4KVxuXHRcdFx0XHRpZiAoIXJlc3VsdHMpIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2Vcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCBzb3VyY2VzID0gcmVzdWx0c1sxXS5zcGxpdCgnICcpXG5cdFx0XHRcdHJldHVybiBzb3VyY2VzLnNvbWUoc291cmNlID0+IGFjY2VwdGFibGVTb3VyY2VzLnNvbWUoYWNjZXB0YWJsZVNvdXJjZSA9PiBhY2NlcHRhYmxlU291cmNlID09PSBzb3VyY2UpKVxuXHRcdFx0fSlcblx0fVxuXG5cdC8vIHgtZnJhbWUtb3B0aW9ucyBjYW4gYmUgWydTQU1FT1JJR0lOJywgJ0RFTlknLCAnQUxMT1ctRlJPTS4uLiddXG5cdC8vIGlGcmFtZUFsbG93ZWQgaWYgdGhlIHRoZSB4LWZyYW1lLW9wdGlvbnMgaXMgJ0FMTE9XLUZST00ge2FwcCB3ZWIgdXJsfSdcblx0Y29uc3QgeEZyYW1lT3B0aW9ucyA9IGZpbmQoaGVhZGVycywgKHZhbHVlLCBrZXkpID0+IGtleS50b0xvd2VyQ2FzZSgpID09PSAneC1mcmFtZS1vcHRpb25zJylcblx0aWYgKHhGcmFtZU9wdGlvbnMgJiYgaXNBcnJheSh4RnJhbWVPcHRpb25zKSkge1xuXHRcdHJlc3VsdC5pRnJhbWVBbGxvd2VkID1cblx0XHRcdCF4RnJhbWVPcHRpb25zLnNvbWUoeCA9PiB4ID09PSBYX0ZSQU1FX09QVElPTlMuREVOWSB8fCB4ID09PSBYX0ZSQU1FX09QVElPTlMuU0FNRU9SSUdJTikgJiZcblx0XHRcdHhGcmFtZU9wdGlvbnMuc29tZSh4ID0+IHggPT09IGAke1hfRlJBTUVfT1BUSU9OUy5BTExPV19GUk9NfSAke2xvY2F0aW9uLnByb3RvY29sfS8vJHtsb2NhdGlvbi5ob3N0fWApXG5cdH1cblx0cmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIFBhcnNlIGEgcGF0aCBzdHJpbmcgaW50byBhIGxvY2F0aW9uIHdpdGggc2VwYXJhdGUgcGF0aG5hbWUsIHNlYXJjaCwgYW5kIGhhc2ggY29tcG9uZW50cy5cbiAqIEBwYXJhbSBwYXRoIEEgcGF0aCBzdHJpbmdcbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcmVzdWx0XG4gKi9cbmV4cG9ydCBjb25zdCBwYXJzZUxvY2F0aW9uID0gKHBhdGg6IHN0cmluZyk6IExvY2F0aW9uRGVzY3JpcHRvciA9PiB7XG5cdGNvbnN0IHNlYXJjaFN0YXJ0ID0gcGF0aC5pbmRleE9mKCc/Jylcblx0Y29uc3QgaGFzaFN0YXJ0ID0gcGF0aC5pbmRleE9mKCcjJylcblx0Y29uc3Qgc2VhcmNoRW5kID0gaGFzaFN0YXJ0ID4gLTEgPyBoYXNoU3RhcnQgOiB1bmRlZmluZWRcblx0Y29uc3QgcGF0aG5hbWUgPVxuXHRcdHNlYXJjaFN0YXJ0ID4gLTEgPyBwYXRoLnN1YnN0cmluZygwLCBzZWFyY2hTdGFydCkgOiBoYXNoU3RhcnQgPiAtMSA/IHBhdGguc3Vic3RyaW5nKDAsIGhhc2hTdGFydCkgOiBwYXRoXG5cdGNvbnN0IHNlYXJjaCA9IHNlYXJjaFN0YXJ0ID4gLTEgPyBwYXRoLnN1YnN0cmluZyhzZWFyY2hTdGFydCwgc2VhcmNoRW5kKSA6IHVuZGVmaW5lZFxuXHRjb25zdCBoYXNoID0gaGFzaFN0YXJ0ID4gLTEgPyBwYXRoLnN1YnN0cmluZyhoYXNoU3RhcnQpIDogdW5kZWZpbmVkXG5cdHJldHVybiB7XG5cdFx0cGF0aG5hbWU6IHBhdGhuYW1lIHx8ICcvJyxcblx0XHRzZWFyY2g6IHNlYXJjaCxcblx0XHRoYXNoOiBoYXNoXG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksT0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBRU8sU0FBU00sYUFBYUEsQ0FBQ0MsSUFBVSxFQUFFQyxZQUFvQixFQUFFO0VBQy9EO0VBQ0EsSUFBSUQsSUFBSSxLQUFLRSxVQUFJLENBQUNDLEtBQUssSUFBSUYsWUFBWSxDQUFDRyxRQUFRLENBQUMsbUJBQW1CLENBQUMsRUFBRTtJQUN0RSxPQUFPSCxZQUFZO0VBQ3BCO0VBQ0EsSUFBSUksUUFBUSxHQUFHLElBQUFDLG1CQUFXLEVBQUMsQ0FBQzs7RUFFNUI7RUFDQSxJQUFJRCxRQUFRLEtBQUtFLFlBQUssQ0FBQ0MsSUFBSSxFQUFFO0lBQzVCSCxRQUFRLEdBQUdFLFlBQUssQ0FB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
166
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9zaGFyZCIsIl90aWVyIiwiX3dpbmRvd1NlcnZpY2UiLCJfbG9nZ2VyIiwiX3NoYXJkMiIsImdldEFwaUJhc2VVcmwiLCJ0aWVyIiwiYXBpVXJsU3RyaW5nIiwiVElFUiIsIkxPQ0FMIiwiaW5jbHVkZXMiLCJzaGFyZEtleSIsImdldFNoYXJkS2V5IiwiU0hBUkQiLCJST09UIiwiUFVSRFVFIiwicHJvdG9jb2wiLCJzdWJzdHJpbmciLCJpbmRleE9mIiwiaG9zdCIsInRpZXJTdWJkb21haW5QYXJ0IiwiREVWIiwiUUEiLCJnZXRTdG9yYWdlVXJsIiwiY29uZmlnIiwidXJsIiwiU1RPUkFHRV9VUkwiLCJyZXBsYWNlIiwiaGFzSHR0cFByb3RvY29sIiwidGVzdCIsImlzVXJsVmFsaWQiLCJUUllfTElNSVQiLCJ3YWl0IiwidGltZSIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsImZldGNoVGV4dCIsIm9wdGlvbnMiLCJ0cnlDb3VudCIsInJlc3AiLCJmZXRjaCIsInRleHQiLCJlcnJvciIsImdldExvZ2dlciIsIkVycm9yIiwiWF9GUkFNRV9PUFRJT05TIiwiZXhwb3J0cyIsInBhcnNlSGVhZGVyc1Jlc3BvbnNlIiwiaGVhZGVycyIsInJlc3VsdCIsImlzVmFsaWQiLCJpRnJhbWVBbGxvd2VkIiwidW5kZWZpbmVkIiwibG9jYXRpb24iLCJ3aW5kb3dTZXJ2aWNlIiwiZ2V0TG9jYXRpb24iLCJ4Q29udGVudFNlY3VyaXR5UG9saWN5IiwiZmluZCIsInZhbHVlIiwia2V5IiwidG9Mb3dlckNhc2UiLCJpc0FycmF5IiwiYWNjZXB0YWJsZVNvdXJjZXMiLCJob3N0UGFydHMiLCJzcGxpdCIsImxlbmd0aCIsInNoaWZ0IiwidGVtcEhvc3QiLCJqb2luIiwicHVzaCIsInNvbWUiLCJ4IiwiZnJhbWVBbmNlc3RvcnNSZWdleCIsInJlc3VsdHMiLCJleGVjIiwic291cmNlcyIsInNvdXJjZSIsImFjY2VwdGFibGVTb3VyY2UiLCJ4RnJhbWVPcHRpb25zIiwiREVOWSIsIlNBTUVPUklHSU4iLCJBTExPV19GUk9NIiwicGFyc2VMb2NhdGlvbiIsInBhdGgiLCJzZWFyY2hTdGFydCIsImhhc2hTdGFydCIsInNlYXJjaEVuZCIsInBhdGhuYW1lIiwic2VhcmNoIiwiaGFzaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy91cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb25EZXNjcmlwdG9yIH0gZnJvbSAnaGlzdG9yeSdcclxuaW1wb3J0IHsgRGljdGlvbmFyeSwgZmluZCwgaXNBcnJheSB9IGZyb20gJ2xvZGFzaCdcclxuaW1wb3J0IHsgU0hBUkQgfSBmcm9tICcuLi9jb25zdGFudHMvc2hhcmQnXHJcbmltcG9ydCB7IFRJRVIgfSBmcm9tICcuLi9jb25zdGFudHMvdGllcidcclxuaW1wb3J0IHsgd2luZG93U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3dpbmRvd1NlcnZpY2UnXHJcbmltcG9ydCB7IEFwcENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi90eXBlcydcclxuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXInXHJcbmltcG9ydCB7IGdldFNoYXJkS2V5IH0gZnJvbSAnLi9zaGFyZCdcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRBcGlCYXNlVXJsKHRpZXI6IFRJRVIsIGFwaVVybFN0cmluZzogc3RyaW5nKSB7XHJcblx0Ly8gc2tpcCBzaGFyZCBsb2dpYyBvbiBMT0NBTCBvciBpZiBub3QgdXNpbmcgYSBjdXN0b20gZG9tYWluIChlLmcuIHN0YWdpbmcpXHJcblx0aWYgKHRpZXIgPT09IFRJRVIuTE9DQUwgfHwgYXBpVXJsU3RyaW5nLmluY2x1ZGVzKCdhenVyZXdlYnNpdGVzLm5ldCcpKSB7XHJcblx0XHRyZXR1cm4gYXBpVXJsU3RyaW5nXHJcblx0fVxyXG5cdGxldCBzaGFyZEtleSA9IGdldFNoYXJkS2V5KClcclxuXHJcblx0Ly8gVE9ETzogZGVmYXVsdCBST09UIHRvIHBvaW50IHRvIFB1cmR1ZSwgdW50aWwgd2UgaGF2ZSBhIGxhbmRpbmcgbWFya2V0aW5nIHBhZ2VcclxuXHRpZiAoc2hhcmRLZXkgPT09IFNIQVJELlJPT1QpIHtcclxuXHRcdHNoYXJkS2V5ID0gU0hBUkQuUFVSRFVFXHJcblx0fVxyXG5cclxuXHRjb25zdCBwcm90b2NvbCA9IGFwaVVybFN0cmluZy5zdWJzdHJpbmcoMCwgYXBpVXJsU3RyaW5nLmluZGV4T2YoJy8vJykpXHJcblx0Y29uc3QgaG9zdCA9IGFwaVVybFN0cmluZy5zdWJzdHJpbmcoYXBpVXJsU3RyaW5nLmluZGV4T2YoJzovLycpICsgMylcclxuXHRsZXQgdGllclN1YmRvbWFpblBhcnQgPSAnJ1xyXG5cdHN3aXRjaCAodGllcikge1xyXG5cdFx0Y2FzZSBUSUVSLkRFVjpcclxuXHRcdFx0dGllclN1YmRvbWFpblBhcnQgPSAnLmRldidcclxuXHRcdFx0YnJlYWtcclxuXHRcdGNhc2UgVElFUi5RQTpcclxuXHRcdFx0dGllclN1YmRvbWFpblBhcnQgPSAnLnFhJ1xyXG5cdFx0XHRicmVha1xyXG5cdH1cclxuXHRyZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke3NoYXJkS2V5fSR7dGllclN1YmRvbWFpblBhcnR9LiR7aG9zdH1gXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRTdG9yYWdlVXJsKGNvbmZpZzogQXBwQ29uZmlndXJhdGlvbiwgdXJsOiBzdHJpbmcpIHtcclxuXHRyZXR1cm4gY29uZmlnLlRJRVIgPT09IFRJRVIuTE9DQUwgJiYgISFjb25maWcuU1RPUkFHRV9VUkxcclxuXHRcdD8gdXJsLnJlcGxhY2UoJ2h0dHA6Ly8xMjcuMC4wLjE6MTAwMDAnLCBjb25maWcuU1RPUkFHRV9VUkwpXHJcblx0XHQ6IHVybFxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFzSHR0cFByb3RvY29sKHVybDogc3RyaW5nKSB7XHJcblx0cmV0dXJuIC9eKGh0dHB8aHR0cHMpOlxcL1xcLy8udGVzdCh1cmwpXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1VybFZhbGlkKHVybDogc3RyaW5nKSB7XHJcblx0cmV0dXJuIC9eKD86aHR0cChzKT86XFwvXFwvKT9bXFx3Li1dKyg/OlxcLltcXHcuLV0rKStbXFx3XFwtLl9+Oi8/I1tcXF1AISQmJygpKissOz1dKyQvLnRlc3QodXJsKVxyXG59XHJcblxyXG4vKiogVGhlIHRvdGFsIG51bWJlciBvZiB0cmllcyBmb3IgYGZldGNoVGV4dGAsIGluY2x1ZGluZyB0aGUgaW5pdGlhbCByZXF1ZXN0LiAqL1xyXG5jb25zdCBUUllfTElNSVQgPSA1XHJcblxyXG5mdW5jdGlvbiB3YWl0KHRpbWU6IG51bWJlcikge1xyXG5cdHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuXHRcdHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZSlcclxuXHR9KVxyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hUZXh0KHVybDogc3RyaW5nLCBvcHRpb25zPzogUmVxdWVzdEluaXQpIHtcclxuXHRsZXQgdHJ5Q291bnQgPSAwXHJcblx0ZG8ge1xyXG5cdFx0dHJ5Q291bnQrK1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgcmVzcCA9IGF3YWl0IGZldGNoKHVybCwgb3B0aW9ucylcclxuXHRcdFx0Y29uc3QgdGV4dCA9IGF3YWl0IHJlc3AudGV4dCgpXHJcblx0XHRcdHJldHVybiB0ZXh0XHJcblx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRnZXRMb2dnZXIoKS5lcnJvcihgRmFpbGVkIHRvIGZldGNoICR7dXJsfS4gYXR0ZW1wdDogJHt0cnlDb3VudH0sIGVycm9yOiAke2Vycm9yfWApXHJcblx0XHRcdGlmICh0cnlDb3VudCA8IFRSWV9MSU1JVCkge1xyXG5cdFx0XHRcdGF3YWl0IHdhaXQoMiAqKiAodHJ5Q291bnQgLSAxKSAqIDEwMCkgLy8gMTAwLCAyMDAsIDQwMCwgODAwXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9IHdoaWxlICh0cnlDb3VudCA8IFRSWV9MSU1JVClcclxuXHJcblx0dGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggJHt1cmx9IGFmdGVyICR7VFJZX0xJTUlUfSBhdHRlbXB0cy5gKVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBYX0ZSQU1FX09QVElPTlMge1xyXG5cdERFTlkgPSAnREVOWScsXHJcblx0U0FNRU9SSUdJTiA9ICdTQU1FT1JJR0lOJyxcclxuXHRBTExPV19GUk9NID0gJ0FMTE9XLUZST00nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkSGVhZGVyc1Jlc3BvbnNlIHtcclxuXHRpc1ZhbGlkOiBib29sZWFuXHJcblx0aUZyYW1lQWxsb3dlZD86IGJvb2xlYW5cclxufVxyXG5cclxuLyoqXHJcbiAqIFVzaW5nIHRoZSBnaXZlbiBoZWFkZXJzLCBkZXRlcm1pbmUgaWYgYSB1cmwgaXMgYWxsb3dlZCB0byBiZSBkaXNwbGF5ZWQgaW4gYW4gaUZyYW1lLlxyXG4gKiBAcGFyYW0gaGVhZGVycyBBbiBhcnJheSBvZiByZXF1ZXN0IGhlYWRlcnMuXHJcbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgcmVzdWx0XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgcGFyc2VIZWFkZXJzUmVzcG9uc2UgPSAoaGVhZGVycz86IERpY3Rpb25hcnk8c3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+KSA9PiB7XHJcblx0Ly8gZGVmYXVsdCByZXN1bHRcclxuXHRjb25zdCByZXN1bHQ6IFBhcnNlZEhlYWRlcnNSZXNwb25zZSA9IHtcclxuXHRcdGlzVmFsaWQ6IGZhbHNlLFxyXG5cdFx0aUZyYW1lQWxsb3dlZDogdW5kZWZpbmVkXHJcblx0fVxyXG5cclxuXHRpZiAoIWhlYWRlcnMpIHtcclxuXHRcdHJldHVybiByZXN1bHRcclxuXHR9XHJcblxyXG5cdHJlc3VsdC5pc1ZhbGlkID0gdHJ1ZVxyXG5cdHJlc3VsdC5pRnJhbWVBbGxvd2VkID0gdHJ1ZVxyXG5cclxuXHRjb25zdCBsb2NhdGlvbiA9IHdpbmRvd1NlcnZpY2UuZ2V0TG9jYXRpb24oKVxyXG5cclxuXHQvLyBjb250ZW50LXNlY3VyaXR5LXBvbGljeSAvIHgtY29udGVudC1zZWN1cml0eS1wb2xpY3lcclxuXHQvLyBjYW4gY29udGFpbiAnZnJhbWUtYW5jZXN0b3JzIDxzb3VyY2U+IDxzb3VyY2U+JyB3aXRoIG9uZSBvciBtYW55IHNvdXJjZXNcclxuXHQvLyBpRnJhbWVBbGxvd2VkIGlmIGl0IGRvZXMgbm90IGNvbnRhaW4gJ2ZyYW1lLWFuY2VzdG9ycycgb3IgaWYgaXQgZG9lcyB3aXRoIGFuIGFjY2VwdGFibGUgc291cmNlXHJcblx0Y29uc3QgeENvbnRlbnRTZWN1cml0eVBvbGljeSA9IGZpbmQoXHJcblx0XHRoZWFkZXJzLFxyXG5cdFx0KHZhbHVlLCBrZXkpID0+XHJcblx0XHRcdGtleS50b0xvd2VyQ2FzZSgpID09PSAnY29udGVudC1zZWN1cml0eS1wb2xpY3knIHx8IGtleS50b0xvd2VyQ2FzZSgpID09PSAneC1jb250ZW50LXNlY3VyaXR5LXBvbGljeSdcclxuXHQpXHJcblx0aWYgKHhDb250ZW50U2VjdXJpdHlQb2xpY3kgJiYgaXNBcnJheSh4Q29udGVudFNlY3VyaXR5UG9saWN5KSkge1xyXG5cdFx0Ly8gZGVmaW5lIGFsbCBhY2NlcHRhYmxlIGZyYW1lLWFuY2VzdG9ycyBzb3VyY2VzXHJcblx0XHQvLyBwcm90b2NvbCwgZnVsbCBsb2NhdGlvbiBob3N0LCBob3N0LCBhbmQgYWxsIHdpbGRjYXJkIHBlcm11dGF0aW9uc1xyXG5cdFx0Y29uc3QgYWNjZXB0YWJsZVNvdXJjZXMgPSBbbG9jYXRpb24ucHJvdG9jb2wsIGAke2xvY2F0aW9uLnByb3RvY29sfS8vJHtsb2NhdGlvbi5ob3N0fWAsIGxvY2F0aW9uLmhvc3RdXHJcblx0XHRjb25zdCBob3N0UGFydHMgPSBsb2NhdGlvbi5ob3N0LnNwbGl0KCcuJylcclxuXHRcdHdoaWxlIChob3N0UGFydHMubGVuZ3RoID4gMikge1xyXG5cdFx0XHRob3N0UGFydHMuc2hpZnQoKVxyXG5cdFx0XHRjb25zdCB0ZW1wSG9zdCA9IGAqLiR7aG9zdFBhcnRzLmpvaW4oJy4nKX1gXHJcblx0XHRcdGFjY2VwdGFibGVTb3VyY2VzLnB1c2godGVtcEhvc3QpXHJcblx0XHRcdGFjY2VwdGFibGVTb3VyY2VzLnB1c2goYCR7bG9jYXRpb24ucHJvdG9jb2x9Ly8ke3RlbXBIb3N0fWApXHJcblx0XHR9XHJcblx0XHRyZXN1bHQuaUZyYW1lQWxsb3dlZCA9XHJcblx0XHRcdCF4Q29udGVudFNlY3VyaXR5UG9saWN5LnNvbWUoeCA9PiB4LmluZGV4T2YoJ2ZyYW1lLWFuY2VzdG9ycyAnKSA+PSAwKSB8fFxyXG5cdFx0XHR4Q29udGVudFNlY3VyaXR5UG9saWN5LnNvbWUoeCA9PiB7XHJcblx0XHRcdFx0LyoqXHJcblx0XHRcdFx0ICogTWF0Y2hlc1xyXG5cdFx0XHRcdCAqICogdGhlIHN0cmluZyBgZnJhbWUtYW5jZXN0b3JzIGBcclxuXHRcdFx0XHQgKiAqIG9uZSBvciBtYW55IG9mIHRoZSBmb2xsb3dpbmcsIGZvbGxvd2VkIGJ5IGEgc3BhY2UsIHNlbWljb2xvbiwgb3IgZW5kIG9mIHN0cmluZ1xyXG5cdFx0XHRcdCAqICAgICAqIGBodHRwOmBcclxuXHRcdFx0XHQgKiAgICAgKiBgaHR0cHM6YFxyXG5cdFx0XHRcdCAqICAgICAqIGAnc2VsZidgXHJcblx0XHRcdFx0ICogICAgICogYCdub25lJ2BcclxuXHRcdFx0XHQgKiAgICAgKiB1cmwgd2l0aCBvcHRpb25hbCBzY2hlbWUgYW5kIG9wdGlvbmFsIGFzdGVyaXNrIHdpbGRjYXJkc1xyXG5cdFx0XHRcdCAqL1xyXG5cdFx0XHRcdGNvbnN0IGZyYW1lQW5jZXN0b3JzUmVnZXggPVxyXG5cdFx0XHRcdFx0L2ZyYW1lLWFuY2VzdG9ycyAoKD86KD86KD86aHR0cDopfCg/Omh0dHBzOil8KD86J3NlbGYnKXwoPzonbm9uZScpfCg/Oig/Omh0dHBzPzpcXC9cXC8pP1tcXHcqLi1dKyg/OlxcLltcXHcqLi1dKykrW1xcdy0uX346Lz8jW1xcXUAhJCYnKCkqKyw9XSspKSg/OlsgO118JCkpKykvZ1xyXG5cdFx0XHRcdGNvbnN0IHJlc3VsdHMgPSBmcmFtZUFuY2VzdG9yc1JlZ2V4LmV4ZWMoeClcclxuXHRcdFx0XHRpZiAoIXJlc3VsdHMpIHtcclxuXHRcdFx0XHRcdHJldHVybiBmYWxzZVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjb25zdCBzb3VyY2VzID0gcmVzdWx0c1sxXS5zcGxpdCgnICcpXHJcblx0XHRcdFx0cmV0dXJuIHNvdXJjZXMuc29tZShzb3VyY2UgPT4gYWNjZXB0YWJsZVNvdXJjZXMuc29tZShhY2NlcHRhYmxlU291cmNlID0+IGFjY2VwdGFibGVTb3VyY2UgPT09IHNvdXJjZSkpXHJcblx0XHRcdH0pXHJcblx0fVxyXG5cclxuXHQvLyB4LWZyYW1lLW9wdGlvbnMgY2FuIGJlIFsnU0FNRU9SSUdJTicsICdERU5ZJywgJ0FMTE9XLUZST00uLi4nXVxyXG5cdC8vIGlGcmFtZUFsbG93ZWQgaWYgdGhlIHRoZSB4LWZyYW1lLW9wdGlvbnMgaXMgJ0FMTE9XLUZST00ge2FwcCB3ZWIgdXJsfSdcclxuXHRjb25zdCB4RnJhbWVPcHRpb25zID0gZmluZChoZWFkZXJzLCAodmFsdWUsIGtleSkgPT4ga2V5LnRvTG93ZXJDYXNlKCkgPT09ICd4LWZyYW1lLW9wdGlvbnMnKVxyXG5cdGlmICh4RnJhbWVPcHRpb25zICYmIGlzQXJyYXkoeEZyYW1lT3B0aW9ucykpIHtcclxuXHRcdHJlc3VsdC5pRnJhbWVBbGxvd2VkID1cclxuXHRcdFx0IXhGcmFtZU9wdGlvbnMuc29tZSh4ID0+IHggPT09IFhfRlJBTUVfT1BUSU9OUy5ERU5ZIHx8IHggPT09IFhfRlJBTUVfT1BUSU9OUy5TQU1FT1JJR0lOKSAmJlxyXG5cdFx0XHR4RnJhbWVPcHRpb25zLnNvbWUoeCA9PiB4ID09PSBgJHtYX0ZSQU1FX09QVElPTlMuQUxMT1dfRlJPTX0gJHtsb2NhdGlvbi5wcm90b2NvbH0vLyR7bG9jYXRpb24uaG9zdH1gKVxyXG5cdH1cclxuXHRyZXR1cm4gcmVzdWx0XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQYXJzZSBhIHBhdGggc3RyaW5nIGludG8gYSBsb2NhdGlvbiB3aXRoIHNlcGFyYXRlIHBhdGhuYW1lLCBzZWFyY2gsIGFuZCBoYXNoIGNvbXBvbmVudHMuXHJcbiAqIEBwYXJhbSBwYXRoIEEgcGF0aCBzdHJpbmdcclxuICogQHJldHVybnMgVGhlIHBhcnNlZCByZXN1bHRcclxuICovXHJcbmV4cG9ydCBjb25zdCBwYXJzZUxvY2F0aW9uID0gKHBhdGg6IHN0cmluZyk6IExvY2F0aW9uRGVzY3JpcHRvciA9PiB7XHJcblx0Y29uc3Qgc2VhcmNoU3RhcnQgPSBwYXRoLmluZGV4T2YoJz8nKVxyXG5cdGNvbnN0IGhhc2hTdGFydCA9IHBhdGguaW5kZXhPZignIycpXHJcblx0Y29uc3Qgc2VhcmNoRW5kID0gaGFzaFN0YXJ0ID4gLTEgPyBoYXNoU3RhcnQgOiB1bmRlZmluZWRcclxuXHRjb25zdCBwYXRobmFtZSA9XHJcblx0XHRzZWFyY2hTdGFydCA+IC0xID8gcGF0aC5zdWJzdHJpbmcoMCwgc2VhcmNoU3RhcnQpIDogaGFzaFN0YXJ0ID4gLTEgPyBwYXRoLnN1YnN0cmluZygwLCBoYXNoU3RhcnQpIDogcGF0aFxyXG5cdGNvbnN0IHNlYXJjaCA9IHNlYXJjaFN0YXJ0ID4gLTEgPyBwYXRoLnN1YnN0cmluZyhzZWFyY2hTdGFydCwgc2VhcmNoRW5kKSA6IHVuZGVmaW5lZFxyXG5cdGNvbnN0IGhhc2ggPSBoYXNoU3RhcnQgPiAtMSA/IHBhdGguc3Vic3RyaW5nKGhhc2hTdGFydCkgOiB1bmRlZmluZWRcclxuXHRyZXR1cm4ge1xyXG5cdFx0cGF0aG5hbWU6IHBhdGhuYW1lIHx8ICcvJyxcclxuXHRcdHNlYXJjaDogc2VhcmNoLFxyXG5cdFx0aGFzaDogaGFzaFxyXG5cdH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FB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
package/lib/utils/user.js CHANGED
@@ -67,4 +67,4 @@ const stopImpersonation = guid => {
67
67
  });
68
68
  };
69
69
  exports.stopImpersonation = stopImpersonation;
70
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9hY3Rpb25DcmVhdG9yIiwiX25vU3RvcmVTYWdhIiwiX2ZldGNoIiwibWFrZVBvc3Nlc3NpdmUiLCJ3b3JkIiwiZW5kc1dpdGgiLCJkaXNwbGF5TmFtZSIsInUiLCJzaG91bGRSZXZlcnNlIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiZmlyc3ROYW1lIiwibGFzdE5hbWUiLCJlbWFpbCIsImV4cG9ydHMiLCJkaXNwbGF5TmFtZVBvc3Nlc3NpdmUiLCJkaXNwbGF5Rmlyc3ROYW1lIiwiZGlzcGxheUZpcnN0TmFtZVBvc3Nlc3NpdmUiLCJmaWx0ZXJVc2Vyc0J5Um9sZSIsInJvbGUiLCJ1c2VyUm9sZXMiLCJmaWx0ZXIiLCJ1c2VyUm9sZSIsInJvbGVzIiwic29tZSIsInIiLCJzdGFydEltcGVyc29uYXRpb24iLCJndWlkIiwidXNlcklkIiwicmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayIsImRhdGEiLCJ1bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2siLCJpc0ZldGNoRXJyb3JEYXRhIiwiYWRkTm90aWZpY2F0aW9uIiwidGV4dCIsImRldGFpbCIsInR5cGUiLCJOT1RJRklDQVRJT05fVFlQRSIsIkVSUk9SIiwicmVzcG9uc2UiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJlbmNvZGVVUklDb21wb25lbnQiLCJjb2RlIiwiZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCIsIm1vZGVsTmFtZSIsIm5vU3RvcmUiLCJxdWVyeVBhcmFtcyIsInN0b3BJbXBlcnNvbmF0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3VzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTk9USUZJQ0FUSU9OX1RZUEUgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyBhZGROb3RpZmljYXRpb24sIGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3QgfSBmcm9tICcuLi9yZWR1eC9hY3Rpb25DcmVhdG9yJ1xuaW1wb3J0IHsgcmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vaywgdW5yZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rIH0gZnJvbSAnLi4vcmVkdXgvc2FnYXMvbm9TdG9yZVNhZ2EnXG5pbXBvcnQgeyBGZXRjaEVycm9yRGF0YSwgVXNlciwgVXNlcldpdGhSb2xlcyB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgaXNGZXRjaEVycm9yRGF0YSB9IGZyb20gJy4vZmV0Y2gnXG5cbmNvbnN0IG1ha2VQb3NzZXNzaXZlID0gKHdvcmQ6IHN0cmluZykgPT4gKHdvcmQuZW5kc1dpdGgoJ3MnKSA/IGAke3dvcmR94oCZYCA6IGAke3dvcmR94oCZc2ApXG5cbmV4cG9ydCBjb25zdCBkaXNwbGF5TmFtZSA9ICh1OiBVc2VyLCBzaG91bGRSZXZlcnNlID0gZmFsc2UpID0+XG5cdCEhdS5maXJzdE5hbWUgJiYgISF1Lmxhc3ROYW1lXG5cdFx0PyBzaG91bGRSZXZlcnNlXG5cdFx0XHQ/IGAke3UubGFzdE5hbWV9LCAke3UuZmlyc3ROYW1lfWBcblx0XHRcdDogYCR7dS5maXJzdE5hbWV9ICR7dS5sYXN0TmFtZX1gXG5cdFx0OiB1LmVtYWlsXG5cbmV4cG9ydCBjb25zdCBkaXNwbGF5TmFtZVBvc3Nlc3NpdmUgPSAodTogVXNlcikgPT5cblx0ISF1LmZpcnN0TmFtZSAmJiAhIXUubGFzdE5hbWUgPyBgJHt1LmZpcnN0TmFtZX0gJHttYWtlUG9zc2Vzc2l2ZSh1Lmxhc3ROYW1lKX1gIDogYCR7dS5lbWFpbH3igJlzYFxuXG5leHBvcnQgY29uc3QgZGlzcGxheUZpcnN0TmFtZSA9ICh1OiBVc2VyKSA9PiAodS5maXJzdE5hbWUgPyB1LmZpcnN0TmFtZSA6IHUuZW1haWwpXG5cbmV4cG9ydCBjb25zdCBkaXNwbGF5Rmlyc3ROYW1lUG9zc2Vzc2l2ZSA9ICh1OiBVc2VyKSA9PiAodS5maXJzdE5hbWUgPyBtYWtlUG9zc2Vzc2l2ZSh1LmZpcnN0TmFtZSkgOiBgJHt1LmVtYWlsfeKAmXNgKVxuXG5leHBvcnQgY29uc3QgZmlsdGVyVXNlcnNCeVJvbGUgPSAocm9sZTogc3RyaW5nKSA9PiAodXNlclJvbGVzOiBVc2VyV2l0aFJvbGVzW10pID0+IHtcblx0cmV0dXJuIHVzZXJSb2xlcy5maWx0ZXIodXNlclJvbGUgPT4gdXNlclJvbGUucm9sZXMuc29tZShyID0+IHIucm9sZSA9PT0gcm9sZSkpXG59XG5cbmV4cG9ydCBjb25zdCBzdGFydEltcGVyc29uYXRpb24gPSAoZ3VpZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZykgPT4ge1xuXHRyZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rKGd1aWQsIChkYXRhOiB7IGNvZGU6IHN0cmluZyB9IHwgRmV0Y2hFcnJvckRhdGEgfCBudWxsKSA9PiB7XG5cdFx0dW5yZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rKGd1aWQpXG5cdFx0aWYgKCFkYXRhIHx8IGlzRmV0Y2hFcnJvckRhdGEoZGF0YSkpIHtcblx0XHRcdGFkZE5vdGlmaWNhdGlvbih7XG5cdFx0XHRcdHRleHQ6IGRhdGE/LmRldGFpbCB8fCAnQ291bGQgbm90IHN0YXJ0IGltcGVyc29uYXRpb24nLFxuXHRcdFx0XHR0eXBlOiBOT1RJRklDQVRJT05fVFlQRS5FUlJPUlxuXHRcdFx0fSlcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgcmVzcG9uc2UgPSBkYXRhIGFzIHsgY29kZTogc3RyaW5nIH1cblx0XHRcdHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYC8/Y29kZT0ke2VuY29kZVVSSUNvbXBvbmVudChyZXNwb25zZS5jb2RlKX1gXG5cdFx0fVxuXHR9KVxuXG5cdGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3Qoe1xuXHRcdG1vZGVsTmFtZTogJ3N0YXJ0SW1wZXJzb25hdGlvbicsXG5cdFx0bm9TdG9yZTogdHJ1ZSxcblx0XHRndWlkLFxuXHRcdHF1ZXJ5UGFyYW1zOiB7IHVzZXJJZCB9XG5cdH0pXG59XG5cbmV4cG9ydCBjb25zdCBzdG9wSW1wZXJzb25hdGlvbiA9IChndWlkOiBzdHJpbmcpID0+IHtcblx0cmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayhndWlkLCAoZGF0YTogeyBjb2RlOiBzdHJpbmcgfSB8IEZldGNoRXJyb3JEYXRhIHwgbnVsbCkgPT4ge1xuXHRcdHVucmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayhndWlkKVxuXHRcdGlmICghZGF0YSB8fCBpc0ZldGNoRXJyb3JEYXRhKGRhdGEpKSB7XG5cdFx0XHRhZGROb3RpZmljYXRpb24oe1xuXHRcdFx0XHR0ZXh0OiBkYXRhPy5kZXRhaWwgfHwgJ0NvdWxkIG5vdCBzdG9wIGltcGVyc29uYXRpb24nLFxuXHRcdFx0XHR0eXBlOiBOT1RJRklDQVRJT05fVFlQRS5FUlJPUlxuXHRcdFx0fSlcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgcmVzcG9uc2UgPSBkYXRhIGFzIHsgY29kZTogc3RyaW5nIH1cblx0XHRcdHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYC8/Y29kZT0ke2VuY29kZVVSSUNvbXBvbmVudChyZXNwb25zZS5jb2RlKX1gXG5cdFx0fVxuXHR9KVxuXG5cdGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3Qoe1xuXHRcdG1vZGVsTmFtZTogJ3N0b3BJbXBlcnNvbmF0aW9uJyxcblx0XHRub1N0b3JlOiB0cnVlLFxuXHRcdGd1aWRcblx0fSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsY0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBRUEsTUFBTUksY0FBYyxHQUFJQyxJQUFZLElBQU1BLElBQUksQ0FBQ0MsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUdELElBQUksR0FBRyxHQUFHLEdBQUdBLElBQUksSUFBSztBQUVqRixNQUFNRSxXQUFXLEdBQUcsU0FBQUEsQ0FBQ0MsQ0FBTztFQUFBLElBQUVDLGFBQWEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztFQUFBLE9BQ3pELENBQUMsQ0FBQ0YsQ0FBQyxDQUFDSyxTQUFTLElBQUksQ0FBQyxDQUFDTCxDQUFDLENBQUNNLFFBQVEsR0FDMUJMLGFBQWEsR0FDWixHQUFHRCxDQUFDLENBQUNNLFFBQVEsS0FBS04sQ0FBQyxDQUFDSyxTQUFTLEVBQUUsR0FDL0IsR0FBR0wsQ0FBQyxDQUFDSyxTQUFTLElBQUlMLENBQUMsQ0FBQ00sUUFBUSxFQUFFLEdBQy9CTixDQUFDLENBQUNPLEtBQUs7QUFBQTtBQUFBQyxPQUFBLENBQUFULFdBQUEsR0FBQUEsV0FBQTtBQUVKLE1BQU1VLHFCQUFxQixHQUFJVCxDQUFPLElBQzVDLENBQUMsQ0FBQ0EsQ0FBQyxDQUFDSyxTQUFTLElBQUksQ0FBQyxDQUFDTCxDQUFDLENBQUNNLFFBQVEsR0FBRyxHQUFHTixDQUFDLENBQUNLLFNBQVMsSUFBSVQsY0FBYyxDQUFDSSxDQUFDLENBQUNNLFFBQVEsQ0FBQyxFQUFFLEdBQUcsR0FBR04sQ0FBQyxDQUFDTyxLQUFLLElBQUk7QUFBQUMsT0FBQSxDQUFBQyxxQkFBQSxHQUFBQSxxQkFBQTtBQUV6RixNQUFNQyxnQkFBZ0IsR0FBSVYsQ0FBTyxJQUFNQSxDQUFDLENBQUNLLFNBQVMsR0FBR0wsQ0FBQyxDQUFDSyxTQUFTLEdBQUdMLENBQUMsQ0FBQ08sS0FBTTtBQUFBQyxPQUFBLENBQUFFLGdCQUFBLEdBQUFBLGdCQUFBO0FBRTNFLE1BQU1DLDBCQUEwQixHQUFJWCxDQUFPLElBQU1BLENBQUMsQ0FBQ0ssU0FBUyxHQUFHVCxjQUFjLENBQUNJLENBQUMsQ0FBQ0ssU0FBUyxDQUFDLEdBQUcsR0FBR0wsQ0FBQyxDQUFDTyxLQUFLLElBQUs7QUFBQUMsT0FBQSxDQUFBRywwQkFBQSxHQUFBQSwwQkFBQTtBQUU1RyxNQUFNQyxpQkFBaUIsR0FBSUMsSUFBWSxJQUFNQyxTQUEwQixJQUFLO0VBQ2xGLE9BQU9BLFNBQVMsQ0FBQ0MsTUFBTSxDQUFDQyxRQUFRLElBQUlBLFFBQVEsQ0FBQ0MsS0FBSyxDQUFDQyxJQUFJLENBQUNDLENBQUMsSUFBSUEsQ0FBQyxDQUFDTixJQUFJLEtBQUtBLElBQUksQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFBQUwsT0FBQSxDQUFBSSxpQkFBQSxHQUFBQSxpQkFBQTtBQUVNLE1BQU1RLGtCQUFrQixHQUFHQSxDQUFDQyxJQUFZLEVBQUVDLE1BQWMsS0FBSztFQUNuRSxJQUFBQyxzQ0FBeUIsRUFBQ0YsSUFBSSxFQUFHRyxJQUE4QyxJQUFLO0lBQ25GLElBQUFDLHdDQUEyQixFQUFDSixJQUFJLENBQUM7SUFDakMsSUFBSSxDQUFDRyxJQUFJLElBQUksSUFBQUUsdUJBQWdCLEVBQUNGLElBQUksQ0FBQyxFQUFFO01BQ3BDLElBQUFHLDhCQUFlLEVBQUM7UUFDZkMsSUFBSSxFQUFFSixJQUFJLEVBQUVLLE1BQU0sSUFBSSwrQkFBK0I7UUFDckRDLElBQUksRUFBRUMsNEJBQWlCLENBQUNDO01BQ3pCLENBQUMsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNOLE1BQU1DLFFBQVEsR0FBR1QsSUFBd0I7TUFDekNVLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLEdBQUcsVUFBVUMsa0JBQWtCLENBQUNKLFFBQVEsQ0FBQ0ssSUFBSSxDQUFDLEVBQUU7SUFDckU7RUFDRCxDQUFDLENBQUM7RUFFRixJQUFBQyx3Q0FBeUIsRUFBQztJQUN6QkMsU0FBUyxFQUFFLG9CQUFvQjtJQUMvQkMsT0FBTyxFQUFFLElBQUk7SUFDYnBCLElBQUk7SUFDSnFCLFdBQVcsRUFBRTtNQUFFcEI7SUFBTztFQUN2QixDQUFDLENBQUM7QUFDSCxDQUFDO0FBQUFkLE9BQUEsQ0FBQVksa0JBQUEsR0FBQUEsa0JBQUE7QUFFTSxNQUFNdUIsaUJBQWlCLEdBQUl0QixJQUFZLElBQUs7RUFDbEQsSUFBQUUsc0NBQXlCLEVBQUNGLElBQUksRUFBR0csSUFBOEMsSUFBSztJQUNuRixJQUFBQyx3Q0FBMkIsRUFBQ0osSUFBSSxDQUFDO0lBQ2pDLElBQUksQ0FBQ0csSUFBSSxJQUFJLElBQUFFLHVCQUFnQixFQUFDRixJQUFJLENBQUMsRUFBRTtNQUNwQyxJQUFBRyw4QkFBZSxFQUFDO1FBQ2ZDLElBQUksRUFBRUosSUFBSSxFQUFFSyxNQUFNLElBQUksOEJBQThCO1FBQ3BEQyxJQUFJLEVBQUVDLDRCQUFpQixDQUFDQztNQUN6QixDQUFDLENBQUM7SUFDSCxDQUFDLE1BQU07TUFDTixNQUFNQyxRQUFRLEdBQUdULElBQXdCO01BQ3pDVSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSSxHQUFHLFVBQVVDLGtCQUFrQixDQUFDSixRQUFRLENBQUNLLElBQUksQ0FBQyxFQUFFO0lBQ3JFO0VBQ0QsQ0FBQyxDQUFDO0VBRUYsSUFBQUMsd0NBQXlCLEVBQUM7SUFDekJDLFNBQVMsRUFBRSxtQkFBbUI7SUFDOUJDLE9BQU8sRUFBRSxJQUFJO0lBQ2JwQjtFQUNELENBQUMsQ0FBQztBQUNILENBQUM7QUFBQWIsT0FBQSxDQUFBbUMsaUJBQUEsR0FBQUEsaUJBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
70
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9hY3Rpb25DcmVhdG9yIiwiX25vU3RvcmVTYWdhIiwiX2ZldGNoIiwibWFrZVBvc3Nlc3NpdmUiLCJ3b3JkIiwiZW5kc1dpdGgiLCJkaXNwbGF5TmFtZSIsInUiLCJzaG91bGRSZXZlcnNlIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiZmlyc3ROYW1lIiwibGFzdE5hbWUiLCJlbWFpbCIsImV4cG9ydHMiLCJkaXNwbGF5TmFtZVBvc3Nlc3NpdmUiLCJkaXNwbGF5Rmlyc3ROYW1lIiwiZGlzcGxheUZpcnN0TmFtZVBvc3Nlc3NpdmUiLCJmaWx0ZXJVc2Vyc0J5Um9sZSIsInJvbGUiLCJ1c2VyUm9sZXMiLCJmaWx0ZXIiLCJ1c2VyUm9sZSIsInJvbGVzIiwic29tZSIsInIiLCJzdGFydEltcGVyc29uYXRpb24iLCJndWlkIiwidXNlcklkIiwicmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayIsImRhdGEiLCJ1bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2siLCJpc0ZldGNoRXJyb3JEYXRhIiwiYWRkTm90aWZpY2F0aW9uIiwidGV4dCIsImRldGFpbCIsInR5cGUiLCJOT1RJRklDQVRJT05fVFlQRSIsIkVSUk9SIiwicmVzcG9uc2UiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJlbmNvZGVVUklDb21wb25lbnQiLCJjb2RlIiwiZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCIsIm1vZGVsTmFtZSIsIm5vU3RvcmUiLCJxdWVyeVBhcmFtcyIsInN0b3BJbXBlcnNvbmF0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3VzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTk9USUZJQ0FUSU9OX1RZUEUgfSBmcm9tICcuLi9jb25zdGFudHMnXHJcbmltcG9ydCB7IGFkZE5vdGlmaWNhdGlvbiwgZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCB9IGZyb20gJy4uL3JlZHV4L2FjdGlvbkNyZWF0b3InXHJcbmltcG9ydCB7IHJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2ssIHVucmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayB9IGZyb20gJy4uL3JlZHV4L3NhZ2FzL25vU3RvcmVTYWdhJ1xyXG5pbXBvcnQgeyBGZXRjaEVycm9yRGF0YSwgVXNlciwgVXNlcldpdGhSb2xlcyB9IGZyb20gJy4uL3R5cGVzJ1xyXG5pbXBvcnQgeyBpc0ZldGNoRXJyb3JEYXRhIH0gZnJvbSAnLi9mZXRjaCdcclxuXHJcbmNvbnN0IG1ha2VQb3NzZXNzaXZlID0gKHdvcmQ6IHN0cmluZykgPT4gKHdvcmQuZW5kc1dpdGgoJ3MnKSA/IGAke3dvcmR94oCZYCA6IGAke3dvcmR94oCZc2ApXHJcblxyXG5leHBvcnQgY29uc3QgZGlzcGxheU5hbWUgPSAodTogVXNlciwgc2hvdWxkUmV2ZXJzZSA9IGZhbHNlKSA9PlxyXG5cdCEhdS5maXJzdE5hbWUgJiYgISF1Lmxhc3ROYW1lXHJcblx0XHQ/IHNob3VsZFJldmVyc2VcclxuXHRcdFx0PyBgJHt1Lmxhc3ROYW1lfSwgJHt1LmZpcnN0TmFtZX1gXHJcblx0XHRcdDogYCR7dS5maXJzdE5hbWV9ICR7dS5sYXN0TmFtZX1gXHJcblx0XHQ6IHUuZW1haWxcclxuXHJcbmV4cG9ydCBjb25zdCBkaXNwbGF5TmFtZVBvc3Nlc3NpdmUgPSAodTogVXNlcikgPT5cclxuXHQhIXUuZmlyc3ROYW1lICYmICEhdS5sYXN0TmFtZSA/IGAke3UuZmlyc3ROYW1lfSAke21ha2VQb3NzZXNzaXZlKHUubGFzdE5hbWUpfWAgOiBgJHt1LmVtYWlsfeKAmXNgXHJcblxyXG5leHBvcnQgY29uc3QgZGlzcGxheUZpcnN0TmFtZSA9ICh1OiBVc2VyKSA9PiAodS5maXJzdE5hbWUgPyB1LmZpcnN0TmFtZSA6IHUuZW1haWwpXHJcblxyXG5leHBvcnQgY29uc3QgZGlzcGxheUZpcnN0TmFtZVBvc3Nlc3NpdmUgPSAodTogVXNlcikgPT4gKHUuZmlyc3ROYW1lID8gbWFrZVBvc3Nlc3NpdmUodS5maXJzdE5hbWUpIDogYCR7dS5lbWFpbH3igJlzYClcclxuXHJcbmV4cG9ydCBjb25zdCBmaWx0ZXJVc2Vyc0J5Um9sZSA9IChyb2xlOiBzdHJpbmcpID0+ICh1c2VyUm9sZXM6IFVzZXJXaXRoUm9sZXNbXSkgPT4ge1xyXG5cdHJldHVybiB1c2VyUm9sZXMuZmlsdGVyKHVzZXJSb2xlID0+IHVzZXJSb2xlLnJvbGVzLnNvbWUociA9PiByLnJvbGUgPT09IHJvbGUpKVxyXG59XHJcblxyXG5leHBvcnQgY29uc3Qgc3RhcnRJbXBlcnNvbmF0aW9uID0gKGd1aWQ6IHN0cmluZywgdXNlcklkOiBzdHJpbmcpID0+IHtcclxuXHRyZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rKGd1aWQsIChkYXRhOiB7IGNvZGU6IHN0cmluZyB9IHwgRmV0Y2hFcnJvckRhdGEgfCBudWxsKSA9PiB7XHJcblx0XHR1bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2soZ3VpZClcclxuXHRcdGlmICghZGF0YSB8fCBpc0ZldGNoRXJyb3JEYXRhKGRhdGEpKSB7XHJcblx0XHRcdGFkZE5vdGlmaWNhdGlvbih7XHJcblx0XHRcdFx0dGV4dDogZGF0YT8uZGV0YWlsIHx8ICdDb3VsZCBub3Qgc3RhcnQgaW1wZXJzb25hdGlvbicsXHJcblx0XHRcdFx0dHlwZTogTk9USUZJQ0FUSU9OX1RZUEUuRVJST1JcclxuXHRcdFx0fSlcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IHJlc3BvbnNlID0gZGF0YSBhcyB7IGNvZGU6IHN0cmluZyB9XHJcblx0XHRcdHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYC8/Y29kZT0ke2VuY29kZVVSSUNvbXBvbmVudChyZXNwb25zZS5jb2RlKX1gXHJcblx0XHR9XHJcblx0fSlcclxuXHJcblx0ZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCh7XHJcblx0XHRtb2RlbE5hbWU6ICdzdGFydEltcGVyc29uYXRpb24nLFxyXG5cdFx0bm9TdG9yZTogdHJ1ZSxcclxuXHRcdGd1aWQsXHJcblx0XHRxdWVyeVBhcmFtczogeyB1c2VySWQgfVxyXG5cdH0pXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBzdG9wSW1wZXJzb25hdGlvbiA9IChndWlkOiBzdHJpbmcpID0+IHtcclxuXHRyZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rKGd1aWQsIChkYXRhOiB7IGNvZGU6IHN0cmluZyB9IHwgRmV0Y2hFcnJvckRhdGEgfCBudWxsKSA9PiB7XHJcblx0XHR1bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2soZ3VpZClcclxuXHRcdGlmICghZGF0YSB8fCBpc0ZldGNoRXJyb3JEYXRhKGRhdGEpKSB7XHJcblx0XHRcdGFkZE5vdGlmaWNhdGlvbih7XHJcblx0XHRcdFx0dGV4dDogZGF0YT8uZGV0YWlsIHx8ICdDb3VsZCBub3Qgc3RvcCBpbXBlcnNvbmF0aW9uJyxcclxuXHRcdFx0XHR0eXBlOiBOT1RJRklDQVRJT05fVFlQRS5FUlJPUlxyXG5cdFx0XHR9KVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29uc3QgcmVzcG9uc2UgPSBkYXRhIGFzIHsgY29kZTogc3RyaW5nIH1cclxuXHRcdFx0d2luZG93LmxvY2F0aW9uLmhyZWYgPSBgLz9jb2RlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHJlc3BvbnNlLmNvZGUpfWBcclxuXHRcdH1cclxuXHR9KVxyXG5cclxuXHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcclxuXHRcdG1vZGVsTmFtZTogJ3N0b3BJbXBlcnNvbmF0aW9uJyxcclxuXHRcdG5vU3RvcmU6IHRydWUsXHJcblx0XHRndWlkXHJcblx0fSlcclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUVBLE1BQU1JLGNBQWMsR0FBSUMsSUFBWSxJQUFNQSxJQUFJLENBQUNDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FB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
@@ -12,4 +12,4 @@ const getOperatingSystem = () => {
12
12
  return macOSPlatforms.test(userAgent) ? _operatingSystem.OPERATING_SYSTEM.MAC : windowsPlatforms.test(userAgent) ? _operatingSystem.OPERATING_SYSTEM.WINDOWS : _operatingSystem.OPERATING_SYSTEM.UNKNOWN;
13
13
  };
14
14
  exports.getOperatingSystem = getOperatingSystem;
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfb3BlcmF0aW5nU3lzdGVtIiwicmVxdWlyZSIsImdldE9wZXJhdGluZ1N5c3RlbSIsInVzZXJBZ2VudCIsIndpbmRvdyIsIm5hdmlnYXRvciIsInRvTG93ZXJDYXNlIiwibWFjT1NQbGF0Zm9ybXMiLCJ3aW5kb3dzUGxhdGZvcm1zIiwidGVzdCIsIk9QRVJBVElOR19TWVNURU0iLCJNQUMiLCJXSU5ET1dTIiwiVU5LTk9XTiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXNlckFnZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9QRVJBVElOR19TWVNURU0gfSBmcm9tICcuLi9jb25zdGFudHMvb3BlcmF0aW5nU3lzdGVtJ1xuXG5leHBvcnQgY29uc3QgZ2V0T3BlcmF0aW5nU3lzdGVtID0gKCkgPT4ge1xuXHRjb25zdCB1c2VyQWdlbnQgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpXG5cdGNvbnN0IG1hY09TUGxhdGZvcm1zID0gLyhtYWNpbnRvc2h8bWFjaW50ZWx8bWFjcHBjfG1hYzY4a3xtYWNvcykvaVxuXHRjb25zdCB3aW5kb3dzUGxhdGZvcm1zID0gLyh3aW4zMnx3aW42NHx3aW5kb3dzfHdpbmNlKS9pXG5cblx0cmV0dXJuIG1hY09TUGxhdGZvcm1zLnRlc3QodXNlckFnZW50KVxuXHRcdD8gT1BFUkFUSU5HX1NZU1RFTS5NQUNcblx0XHQ6IHdpbmRvd3NQbGF0Zm9ybXMudGVzdCh1c2VyQWdlbnQpXG5cdFx0XHQ/IE9QRVJBVElOR19TWVNURU0uV0lORE9XU1xuXHRcdFx0OiBPUEVSQVRJTkdfU1lTVEVNLlVOS05PV05cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQUVPLE1BQU1DLGtCQUFrQixHQUFHQSxDQUFBLEtBQU07RUFDdkMsTUFBTUMsU0FBUyxHQUFHQyxNQUFNLENBQUNDLFNBQVMsQ0FBQ0YsU0FBUyxDQUFDRyxXQUFXLENBQUMsQ0FBQztFQUMxRCxNQUFNQyxjQUFjLEdBQUcsMkNBQTJDO0VBQ2xFLE1BQU1DLGdCQUFnQixHQUFHLDhCQUE4QjtFQUV2RCxPQUFPRCxjQUFjLENBQUNFLElBQUksQ0FBQ04sU0FBUyxDQUFDLEdBQ2xDTyxpQ0FBZ0IsQ0FBQ0MsR0FBRyxHQUNwQkgsZ0JBQWdCLENBQUNDLElBQUksQ0FBQ04sU0FBUyxDQUFDLEdBQy9CTyxpQ0FBZ0IsQ0FBQ0UsT0FBTyxHQUN4QkYsaUNBQWdCLENBQUNHLE9BQU87QUFDN0IsQ0FBQztBQUFBQyxPQUFBLENBQUFaLGtCQUFBLEdBQUFBLGtCQUFBIiwiaWdub3JlTGlzdCI6W119
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfb3BlcmF0aW5nU3lzdGVtIiwicmVxdWlyZSIsImdldE9wZXJhdGluZ1N5c3RlbSIsInVzZXJBZ2VudCIsIndpbmRvdyIsIm5hdmlnYXRvciIsInRvTG93ZXJDYXNlIiwibWFjT1NQbGF0Zm9ybXMiLCJ3aW5kb3dzUGxhdGZvcm1zIiwidGVzdCIsIk9QRVJBVElOR19TWVNURU0iLCJNQUMiLCJXSU5ET1dTIiwiVU5LTk9XTiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXNlckFnZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9QRVJBVElOR19TWVNURU0gfSBmcm9tICcuLi9jb25zdGFudHMvb3BlcmF0aW5nU3lzdGVtJ1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldE9wZXJhdGluZ1N5c3RlbSA9ICgpID0+IHtcclxuXHRjb25zdCB1c2VyQWdlbnQgPSB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpXHJcblx0Y29uc3QgbWFjT1NQbGF0Zm9ybXMgPSAvKG1hY2ludG9zaHxtYWNpbnRlbHxtYWNwcGN8bWFjNjhrfG1hY29zKS9pXHJcblx0Y29uc3Qgd2luZG93c1BsYXRmb3JtcyA9IC8od2luMzJ8d2luNjR8d2luZG93c3x3aW5jZSkvaVxyXG5cclxuXHRyZXR1cm4gbWFjT1NQbGF0Zm9ybXMudGVzdCh1c2VyQWdlbnQpXHJcblx0XHQ/IE9QRVJBVElOR19TWVNURU0uTUFDXHJcblx0XHQ6IHdpbmRvd3NQbGF0Zm9ybXMudGVzdCh1c2VyQWdlbnQpXHJcblx0XHRcdD8gT1BFUkFUSU5HX1NZU1RFTS5XSU5ET1dTXHJcblx0XHRcdDogT1BFUkFUSU5HX1NZU1RFTS5VTktOT1dOXHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxnQkFBQSxHQUFBQyxPQUFBO0FBRU8sTUFBTUMsa0JBQWtCLEdBQUdBLENBQUEsS0FBTTtFQUN2QyxNQUFNQyxTQUFTLEdBQUdDLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDRixTQUFTLENBQUNHLFdBQVcsQ0FBQyxDQUFDO0VBQzFELE1BQU1DLGNBQWMsR0FBRywyQ0FBMkM7RUFDbEUsTUFBTUMsZ0JBQWdCLEdBQUcsOEJBQThCO0VBRXZELE9BQU9ELGNBQWMsQ0FBQ0UsSUFBSSxDQUFDTixTQUFTLENBQUMsR0FDbENPLGlDQUFnQixDQUFDQyxHQUFHLEdBQ3BCSCxnQkFBZ0IsQ0FBQ0MsSUFBSSxDQUFDTixTQUFTLENBQUMsR0FDL0JPLGlDQUFnQixDQUFDRSxPQUFPLEdBQ3hCRixpQ0FBZ0IsQ0FBQ0csT0FBTztBQUM3QixDQUFDO0FBQUFDLE9BQUEsQ0FBQVosa0JBQUEsR0FBQUEsa0JBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -5,29 +5,29 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.sortByRole = exports.sortByHighestAccessRole = exports.isExternal = exports.getUserId = exports.getRoleText = exports.convertToUserWithRoles = void 0;
7
7
  var _baseRole = require("./baseRole");
8
- /**
9
- * Get the user id for a `userRole`, either a `UserRole` or `EntityUserRole`.
10
- * @param userRole The user role
8
+ /**
9
+ * Get the user id for a `userRole`, either a `UserRole` or `EntityUserRole`.
10
+ * @param userRole The user role
11
11
  */
12
12
  const getUserId = userRole => Object.prototype.hasOwnProperty.call(userRole, 'userId') ? userRole.userId : userRole.id;
13
13
 
14
- /**
15
- * Get whether or not the `userRole` has a prop `isExternal` and it is `true`.
16
- * @param userRole The user role
14
+ /**
15
+ * Get whether or not the `userRole` has a prop `isExternal` and it is `true`.
16
+ * @param userRole The user role
17
17
  */
18
18
  exports.getUserId = getUserId;
19
19
  const isExternal = userRole => Object.prototype.hasOwnProperty.call(userRole, 'isExternal') && userRole.isExternal === true;
20
20
 
21
- /**
22
- * Get the text for the given `userRole.role`. Defaults to using `textForBaseRole`.
23
- * @param textForRole Override method for providing role text
21
+ /**
22
+ * Get the text for the given `userRole.role`. Defaults to using `textForBaseRole`.
23
+ * @param textForRole Override method for providing role text
24
24
  */
25
25
  exports.isExternal = isExternal;
26
26
  const getRoleText = textForRole => a => textForRole ? textForRole(a.role) : (0, _baseRole.textForBaseRole)(a.role);
27
27
 
28
- /**
29
- * Sort the userRoles by role, using the provided `roles` order
30
- * @param roles Roles ordered in descing access level
28
+ /**
29
+ * Sort the userRoles by role, using the provided `roles` order
30
+ * @param roles Roles ordered in descing access level
31
31
  */
32
32
  exports.getRoleText = getRoleText;
33
33
  const sortByRole = roles => (a, b) => {
@@ -39,9 +39,9 @@ const sortByRole = roles => (a, b) => {
39
39
  return 0;
40
40
  };
41
41
 
42
- /**
43
- * Sort the users by role, using the provided `roles` order
44
- * @param roles Roles ordered in descing access level
42
+ /**
43
+ * Sort the users by role, using the provided `roles` order
44
+ * @param roles Roles ordered in descing access level
45
45
  */
46
46
  exports.sortByRole = sortByRole;
47
47
  const sortByHighestAccessRole = roles => (a, b) => {
@@ -67,4 +67,4 @@ const convertToUserWithRoles = userRole => {
67
67
  };
68
68
  };
69
69
  exports.convertToUserWithRoles = convertToUserWithRoles;
70
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmFzZVJvbGUiLCJyZXF1aXJlIiwiZ2V0VXNlcklkIiwidXNlclJvbGUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJ1c2VySWQiLCJpZCIsImV4cG9ydHMiLCJpc0V4dGVybmFsIiwiZ2V0Um9sZVRleHQiLCJ0ZXh0Rm9yUm9sZSIsImEiLCJyb2xlIiwidGV4dEZvckJhc2VSb2xlIiwic29ydEJ5Um9sZSIsInJvbGVzIiwiYiIsImFJbmRleCIsImluZGV4T2YiLCJiSW5kZXgiLCJzb3J0QnlIaWdoZXN0QWNjZXNzUm9sZSIsImFSb2xlIiwic29ydCIsImJSb2xlIiwiY29udmVydFRvVXNlcldpdGhSb2xlcyIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiZW1haWwiLCJ1aWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXNlclJvbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlclJvbGUsIFVzZXJXaXRoUm9sZXMgfSBmcm9tICcuLi90eXBlcy9Vc2VyUm9sZSdcbmltcG9ydCB7IHRleHRGb3JCYXNlUm9sZSB9IGZyb20gJy4vYmFzZVJvbGUnXG5cbi8qKlxuICogR2V0IHRoZSB1c2VyIGlkIGZvciBhIGB1c2VyUm9sZWAsIGVpdGhlciBhIGBVc2VyUm9sZWAgb3IgYEVudGl0eVVzZXJSb2xlYC5cbiAqIEBwYXJhbSB1c2VyUm9sZSBUaGUgdXNlciByb2xlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRVc2VySWQgPSAodXNlclJvbGU6IFVzZXJSb2xlKTogc3RyaW5nID0+XG5cdE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh1c2VyUm9sZSwgJ3VzZXJJZCcpID8gKHVzZXJSb2xlIGFzIGFueSkudXNlcklkIDogdXNlclJvbGUuaWRcblxuLyoqXG4gKiBHZXQgd2hldGhlciBvciBub3QgdGhlIGB1c2VyUm9sZWAgaGFzIGEgcHJvcCBgaXNFeHRlcm5hbGAgYW5kIGl0IGlzIGB0cnVlYC5cbiAqIEBwYXJhbSB1c2VyUm9sZSBUaGUgdXNlciByb2xlXG4gKi9cbmV4cG9ydCBjb25zdCBpc0V4dGVybmFsID0gKHVzZXJSb2xlOiBVc2VyUm9sZSk6IGJvb2xlYW4gPT5cblx0T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHVzZXJSb2xlLCAnaXNFeHRlcm5hbCcpICYmICh1c2VyUm9sZSBhcyBhbnkpLmlzRXh0ZXJuYWwgPT09IHRydWVcblxuLyoqXG4gKiBHZXQgdGhlIHRleHQgZm9yIHRoZSBnaXZlbiBgdXNlclJvbGUucm9sZWAuIERlZmF1bHRzIHRvIHVzaW5nIGB0ZXh0Rm9yQmFzZVJvbGVgLlxuICogQHBhcmFtIHRleHRGb3JSb2xlIE92ZXJyaWRlIG1ldGhvZCBmb3IgcHJvdmlkaW5nIHJvbGUgdGV4dFxuICovXG5leHBvcnQgY29uc3QgZ2V0Um9sZVRleHQgPSAodGV4dEZvclJvbGU/OiAocm9sZTogc3RyaW5nKSA9PiBzdHJpbmcpID0+IChhOiBVc2VyUm9sZSkgPT5cblx0dGV4dEZvclJvbGUgPyB0ZXh0Rm9yUm9sZShhLnJvbGUpIDogdGV4dEZvckJhc2VSb2xlKGEucm9sZSlcblxuLyoqXG4gKiBTb3J0IHRoZSB1c2VyUm9sZXMgYnkgcm9sZSwgdXNpbmcgdGhlIHByb3ZpZGVkIGByb2xlc2Agb3JkZXJcbiAqIEBwYXJhbSByb2xlcyBSb2xlcyBvcmRlcmVkIGluIGRlc2NpbmcgYWNjZXNzIGxldmVsXG4gKi9cbmV4cG9ydCBjb25zdCBzb3J0QnlSb2xlID0gKHJvbGVzOiBzdHJpbmdbXSkgPT4gKGE6IFVzZXJSb2xlLCBiOiBVc2VyUm9sZSkgPT4ge1xuXHRjb25zdCBhSW5kZXggPSByb2xlcy5pbmRleE9mKGEucm9sZSlcblx0Y29uc3QgYkluZGV4ID0gcm9sZXMuaW5kZXhPZihiLnJvbGUpXG5cdGlmIChhSW5kZXggIT09IGJJbmRleCkge1xuXHRcdHJldHVybiBhSW5kZXggPiBiSW5kZXggPyAxIDogLTFcblx0fVxuXHRyZXR1cm4gMFxufVxuXG4vKipcbiAqIFNvcnQgdGhlIHVzZXJzIGJ5IHJvbGUsIHVzaW5nIHRoZSBwcm92aWRlZCBgcm9sZXNgIG9yZGVyXG4gKiBAcGFyYW0gcm9sZXMgUm9sZXMgb3JkZXJlZCBpbiBkZXNjaW5nIGFjY2VzcyBsZXZlbFxuICovXG5leHBvcnQgY29uc3Qgc29ydEJ5SGlnaGVzdEFjY2Vzc1JvbGUgPSAocm9sZXM6IHN0cmluZ1tdKSA9PiAoYTogVXNlcldpdGhSb2xlcywgYjogVXNlcldpdGhSb2xlcykgPT4ge1xuXHRjb25zdCBhUm9sZSA9IGEucm9sZXMuc29ydChzb3J0QnlSb2xlKHJvbGVzKSlbMF0ucm9sZVxuXHRjb25zdCBiUm9sZSA9IGIucm9sZXMuc29ydChzb3J0QnlSb2xlKHJvbGVzKSlbMF0ucm9sZVxuXHRjb25zdCBhSW5kZXggPSByb2xlcy5pbmRleE9mKGFSb2xlKVxuXHRjb25zdCBiSW5kZXggPSByb2xlcy5pbmRleE9mKGJSb2xlKVxuXHRpZiAoYUluZGV4ICE9PSBiSW5kZXgpIHtcblx0XHRyZXR1cm4gYUluZGV4ID4gYkluZGV4ID8gMSA6IC0xXG5cdH1cblx0cmV0dXJuIDBcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRUb1VzZXJXaXRoUm9sZXMgPSA8VFVzZXJSb2xlIGV4dGVuZHMgVXNlclJvbGUgPSBVc2VyUm9sZT4oXG5cdHVzZXJSb2xlOiBUVXNlclJvbGVcbik6IFVzZXJXaXRoUm9sZXM8VFVzZXJSb2xlPiA9PiB7XG5cdGNvbnN0IHVzZXJJZCA9IGdldFVzZXJJZCh1c2VyUm9sZSlcblx0cmV0dXJuIHtcblx0XHRpZDogdXNlcklkLFxuXHRcdGZpcnN0TmFtZTogdXNlclJvbGUuZmlyc3ROYW1lLFxuXHRcdGxhc3ROYW1lOiB1c2VyUm9sZS5sYXN0TmFtZSxcblx0XHRlbWFpbDogdXNlclJvbGUuZW1haWwsXG5cdFx0dWlkOiB1c2VyUm9sZS51aWQsXG5cdFx0cm9sZXM6IFt1c2VyUm9sZV1cblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFB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
70
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmFzZVJvbGUiLCJyZXF1aXJlIiwiZ2V0VXNlcklkIiwidXNlclJvbGUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJ1c2VySWQiLCJpZCIsImV4cG9ydHMiLCJpc0V4dGVybmFsIiwiZ2V0Um9sZVRleHQiLCJ0ZXh0Rm9yUm9sZSIsImEiLCJyb2xlIiwidGV4dEZvckJhc2VSb2xlIiwic29ydEJ5Um9sZSIsInJvbGVzIiwiYiIsImFJbmRleCIsImluZGV4T2YiLCJiSW5kZXgiLCJzb3J0QnlIaWdoZXN0QWNjZXNzUm9sZSIsImFSb2xlIiwic29ydCIsImJSb2xlIiwiY29udmVydFRvVXNlcldpdGhSb2xlcyIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiZW1haWwiLCJ1aWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXNlclJvbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlclJvbGUsIFVzZXJXaXRoUm9sZXMgfSBmcm9tICcuLi90eXBlcy9Vc2VyUm9sZSdcclxuaW1wb3J0IHsgdGV4dEZvckJhc2VSb2xlIH0gZnJvbSAnLi9iYXNlUm9sZSdcclxuXHJcbi8qKlxyXG4gKiBHZXQgdGhlIHVzZXIgaWQgZm9yIGEgYHVzZXJSb2xlYCwgZWl0aGVyIGEgYFVzZXJSb2xlYCBvciBgRW50aXR5VXNlclJvbGVgLlxyXG4gKiBAcGFyYW0gdXNlclJvbGUgVGhlIHVzZXIgcm9sZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldFVzZXJJZCA9ICh1c2VyUm9sZTogVXNlclJvbGUpOiBzdHJpbmcgPT5cclxuXHRPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodXNlclJvbGUsICd1c2VySWQnKSA/ICh1c2VyUm9sZSBhcyBhbnkpLnVzZXJJZCA6IHVzZXJSb2xlLmlkXHJcblxyXG4vKipcclxuICogR2V0IHdoZXRoZXIgb3Igbm90IHRoZSBgdXNlclJvbGVgIGhhcyBhIHByb3AgYGlzRXh0ZXJuYWxgIGFuZCBpdCBpcyBgdHJ1ZWAuXHJcbiAqIEBwYXJhbSB1c2VyUm9sZSBUaGUgdXNlciByb2xlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaXNFeHRlcm5hbCA9ICh1c2VyUm9sZTogVXNlclJvbGUpOiBib29sZWFuID0+XHJcblx0T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHVzZXJSb2xlLCAnaXNFeHRlcm5hbCcpICYmICh1c2VyUm9sZSBhcyBhbnkpLmlzRXh0ZXJuYWwgPT09IHRydWVcclxuXHJcbi8qKlxyXG4gKiBHZXQgdGhlIHRleHQgZm9yIHRoZSBnaXZlbiBgdXNlclJvbGUucm9sZWAuIERlZmF1bHRzIHRvIHVzaW5nIGB0ZXh0Rm9yQmFzZVJvbGVgLlxyXG4gKiBAcGFyYW0gdGV4dEZvclJvbGUgT3ZlcnJpZGUgbWV0aG9kIGZvciBwcm92aWRpbmcgcm9sZSB0ZXh0XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0Um9sZVRleHQgPSAodGV4dEZvclJvbGU/OiAocm9sZTogc3RyaW5nKSA9PiBzdHJpbmcpID0+IChhOiBVc2VyUm9sZSkgPT5cclxuXHR0ZXh0Rm9yUm9sZSA/IHRleHRGb3JSb2xlKGEucm9sZSkgOiB0ZXh0Rm9yQmFzZVJvbGUoYS5yb2xlKVxyXG5cclxuLyoqXHJcbiAqIFNvcnQgdGhlIHVzZXJSb2xlcyBieSByb2xlLCB1c2luZyB0aGUgcHJvdmlkZWQgYHJvbGVzYCBvcmRlclxyXG4gKiBAcGFyYW0gcm9sZXMgUm9sZXMgb3JkZXJlZCBpbiBkZXNjaW5nIGFjY2VzcyBsZXZlbFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHNvcnRCeVJvbGUgPSAocm9sZXM6IHN0cmluZ1tdKSA9PiAoYTogVXNlclJvbGUsIGI6IFVzZXJSb2xlKSA9PiB7XHJcblx0Y29uc3QgYUluZGV4ID0gcm9sZXMuaW5kZXhPZihhLnJvbGUpXHJcblx0Y29uc3QgYkluZGV4ID0gcm9sZXMuaW5kZXhPZihiLnJvbGUpXHJcblx0aWYgKGFJbmRleCAhPT0gYkluZGV4KSB7XHJcblx0XHRyZXR1cm4gYUluZGV4ID4gYkluZGV4ID8gMSA6IC0xXHJcblx0fVxyXG5cdHJldHVybiAwXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTb3J0IHRoZSB1c2VycyBieSByb2xlLCB1c2luZyB0aGUgcHJvdmlkZWQgYHJvbGVzYCBvcmRlclxyXG4gKiBAcGFyYW0gcm9sZXMgUm9sZXMgb3JkZXJlZCBpbiBkZXNjaW5nIGFjY2VzcyBsZXZlbFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHNvcnRCeUhpZ2hlc3RBY2Nlc3NSb2xlID0gKHJvbGVzOiBzdHJpbmdbXSkgPT4gKGE6IFVzZXJXaXRoUm9sZXMsIGI6IFVzZXJXaXRoUm9sZXMpID0+IHtcclxuXHRjb25zdCBhUm9sZSA9IGEucm9sZXMuc29ydChzb3J0QnlSb2xlKHJvbGVzKSlbMF0ucm9sZVxyXG5cdGNvbnN0IGJSb2xlID0gYi5yb2xlcy5zb3J0KHNvcnRCeVJvbGUocm9sZXMpKVswXS5yb2xlXHJcblx0Y29uc3QgYUluZGV4ID0gcm9sZXMuaW5kZXhPZihhUm9sZSlcclxuXHRjb25zdCBiSW5kZXggPSByb2xlcy5pbmRleE9mKGJSb2xlKVxyXG5cdGlmIChhSW5kZXggIT09IGJJbmRleCkge1xyXG5cdFx0cmV0dXJuIGFJbmRleCA+IGJJbmRleCA/IDEgOiAtMVxyXG5cdH1cclxuXHRyZXR1cm4gMFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydFRvVXNlcldpdGhSb2xlcyA9IDxUVXNlclJvbGUgZXh0ZW5kcyBVc2VyUm9sZSA9IFVzZXJSb2xlPihcclxuXHR1c2VyUm9sZTogVFVzZXJSb2xlXHJcbik6IFVzZXJXaXRoUm9sZXM8VFVzZXJSb2xlPiA9PiB7XHJcblx0Y29uc3QgdXNlcklkID0gZ2V0VXNlcklkKHVzZXJSb2xlKVxyXG5cdHJldHVybiB7XHJcblx0XHRpZDogdXNlcklkLFxyXG5cdFx0Zmlyc3ROYW1lOiB1c2VyUm9sZS5maXJzdE5hbWUsXHJcblx0XHRsYXN0TmFtZTogdXNlclJvbGUubGFzdE5hbWUsXHJcblx0XHRlbWFpbDogdXNlclJvbGUuZW1haWwsXHJcblx0XHR1aWQ6IHVzZXJSb2xlLnVpZCxcclxuXHRcdHJvbGVzOiBbdXNlclJvbGVdXHJcblx0fVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFNQyxTQUFTLEdBQUlDLFFBQWtCLElBQzNDQyxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBSUEsUUFBUSxDQUFTSyxNQUFNLEdBQUdMLFFBQVEsQ0FBQ00sRUFBRTs7QUFFbEc7QUFDQTtBQUNBO0FBQ0E7QUFIQUMsT0FBQSxDQUFBUixTQUFBLEdBQUFBLFNBQUE7QUFJTyxNQUFNUyxVQUFVLEdBQUlSLFFBQWtCLElBQzVDQyxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNKLFFBQVEsRUFBRSxZQUFZLENBQUMsSUFBS0EsUUFBUSxDQUFTUSxVQUFVLEtBQUssSUFBSTs7QUFFdEc7QUFDQTtBQUNBO0FBQ0E7QUFIQUQsT0FBQSxDQUFBQyxVQUFBLEdBQUFBLFVBQUE7QUFJTyxNQUFNQyxXQUFXLEdBQUlDLFdBQXNDLElBQU1DLENBQVcsSUFDbEZELFdBQVcsR0FBR0EsV0FBVyxDQUFDQyxDQUFDLENBQUNDLElBQUksQ0FBQyxHQUFHLElBQUFDLHlCQUFlLEVBQUNGLENBQUMsQ0FBQ0MsSUFBSSxDQUFDOztBQUU1RDtBQUNBO0FBQ0E7QUFDQTtBQUhBTCxPQUFBLENBQUFFLFdBQUEsR0FBQUEsV0FBQTtBQUlPLE1BQU1LLFVBQVUsR0FBSUMsS0FBZSxJQUFLLENBQUNKLENBQVcsRUFBRUssQ0FBVyxLQUFLO0VBQzVFLE1BQU1DLE1BQU0sR0FBR0YsS0FBSyxDQUFDRyxPQUFPLENBQUNQLENBQUMsQ0FBQ0MsSUFBSSxDQUFDO0VBQ3BDLE1BQU1PLE1BQU0sR0FBR0osS0FBSyxDQUFDRyxPQUFPLENBQUNGLENBQUMsQ0FBQ0osSUFBSSxDQUFDO0VBQ3BDLElBQUlLLE1BQU0sS0FBS0UsTUFBTSxFQUFFO0lBQ3RCLE9BQU9GLE1BQU0sR0FBR0UsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDaEM7RUFDQSxPQUFPLENBQUM7QUFDVCxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBSEFaLE9BQUEsQ0FBQU8sVUFBQSxHQUFBQSxVQUFBO0FBSU8sTUFBTU0sdUJBQXVCLEdBQUlMLEtBQWUsSUFBSyxDQUFDSixDQUFnQixFQUFFSyxDQUFnQixLQUFLO0VBQ25HLE1BQU1LLEtBQUssR0FBR1YsQ0FBQyxDQUFDSSxLQUFLLENBQUNPLElBQUksQ0FBQ1IsVUFBVSxDQUFDQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDSCxJQUFJO0VBQ3JELE1BQU1XLEtBQUssR0FBR1AsQ0FBQyxDQUFDRCxLQUFLLENBQUNPLElBQUksQ0FBQ1IsVUFBVSxDQUFDQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDSCxJQUFJO0VBQ3JELE1BQU1LLE1BQU0sR0FBR0YsS0FBSyxDQUFDRyxPQUFPLENBQUNHLEtBQUssQ0FBQztFQUNuQyxNQUFNRixNQUFNLEdBQUdKLEtBQUssQ0FBQ0csT0FBTyxDQUFDSyxLQUFLLENBQUM7RUFDbkMsSUFBSU4sTUFBTSxLQUFLRSxNQUFNLEVBQUU7SUFDdEIsT0FBT0YsTUFBTSxHQUFHRSxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNoQztFQUNBLE9BQU8sQ0FBQztBQUNULENBQUM7QUFBQVosT0FBQSxDQUFBYSx1QkFBQSxHQUFBQSx1QkFBQTtBQUVNLE1BQU1JLHNCQUFzQixHQUNsQ3hCLFFBQW1CLElBQ1c7RUFDOUIsTUFBTUssTUFBTSxHQUFHTixTQUFTLENBQUNDLFFBQVEsQ0FBQztFQUNsQyxPQUFPO0lBQ05NLEVBQUUsRUFBRUQsTUFBTTtJQUNWb0IsU0FBUyxFQUFFekIsUUFBUSxDQUFDeUIsU0FBUztJQUM3QkMsUUFBUSxFQUFFMUIsUUFBUSxDQUFDMEIsUUFBUTtJQUMzQkMsS0FBSyxFQUFFM0IsUUFBUSxDQUFDMkIsS0FBSztJQUNyQkMsR0FBRyxFQUFFNUIsUUFBUSxDQUFDNEIsR0FBRztJQUNqQmIsS0FBSyxFQUFFLENBQUNmLFFBQVE7RUFDakIsQ0FBQztBQUNGLENBQUM7QUFBQU8sT0FBQSxDQUFBaUIsc0JBQUEsR0FBQUEsc0JBQUEiLCJpZ25vcmVMaXN0IjpbXX0=