@lifeready/core 0.6.0-beta.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 (225) hide show
  1. package/README.md +62 -0
  2. package/bundles/lifeready-core.umd.js +15939 -0
  3. package/bundles/lifeready-core.umd.js.map +1 -0
  4. package/bundles/lifeready-core.umd.min.js +2 -0
  5. package/bundles/lifeready-core.umd.min.js.map +1 -0
  6. package/esm2015/lib/_common/ast.js +40 -0
  7. package/esm2015/lib/_common/deferred-promise.js +24 -0
  8. package/esm2015/lib/_common/exceptions.js +157 -0
  9. package/esm2015/lib/_common/queries.gql.js +190 -0
  10. package/esm2015/lib/_common/run-outside-angular.js +79 -0
  11. package/esm2015/lib/_common/types.js +1 -0
  12. package/esm2015/lib/_common/utils.js +44 -0
  13. package/esm2015/lib/api/contact-card.gql.js +79 -0
  14. package/esm2015/lib/api/contact-card.service.js +154 -0
  15. package/esm2015/lib/api/contact-card2.gql.js +60 -0
  16. package/esm2015/lib/api/contact-card2.service.js +103 -0
  17. package/esm2015/lib/api/file.service.js +74 -0
  18. package/esm2015/lib/api/item2.gql.js +110 -0
  19. package/esm2015/lib/api/item2.service.js +311 -0
  20. package/esm2015/lib/api/key-exchange.gql.js +188 -0
  21. package/esm2015/lib/api/key-exchange.service.js +442 -0
  22. package/esm2015/lib/api/key-exchange.types.js +18 -0
  23. package/esm2015/lib/api/key-exchange2.gql.js +171 -0
  24. package/esm2015/lib/api/key-exchange2.service.js +479 -0
  25. package/esm2015/lib/api/lock.gql.js +40 -0
  26. package/esm2015/lib/api/lock.service.js +64 -0
  27. package/esm2015/lib/api/lr-apollo.service.js +46 -0
  28. package/esm2015/lib/api/lr-graphql/index.js +6 -0
  29. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -0
  30. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -0
  31. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -0
  32. package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -0
  33. package/esm2015/lib/api/lr-graphql/lr.service.js +18 -0
  34. package/esm2015/lib/api/message.service.js +138 -0
  35. package/esm2015/lib/api/persist.service.js +181 -0
  36. package/esm2015/lib/api/query-processor/common-processors.service.js +93 -0
  37. package/esm2015/lib/api/query-processor/index.js +3 -0
  38. package/esm2015/lib/api/query-processor/query-processor.service.js +192 -0
  39. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -0
  40. package/esm2015/lib/api/shared-contact-card.service.js +119 -0
  41. package/esm2015/lib/api/shared-contact-card2.gql.js +41 -0
  42. package/esm2015/lib/api/shared-contact-card2.service.js +117 -0
  43. package/esm2015/lib/api/time.service.js +146 -0
  44. package/esm2015/lib/api/types/graphql.types.js +7 -0
  45. package/esm2015/lib/api/types/index.js +3 -0
  46. package/esm2015/lib/api/types/lr-graphql.types.js +71 -0
  47. package/esm2015/lib/auth/auth.config.js +57 -0
  48. package/esm2015/lib/auth/auth.gql.js +48 -0
  49. package/esm2015/lib/auth/auth.types.js +27 -0
  50. package/esm2015/lib/auth/idle.service.js +168 -0
  51. package/esm2015/lib/auth/idle.types.js +7 -0
  52. package/esm2015/lib/auth/lbop.service.js +355 -0
  53. package/esm2015/lib/auth/life-ready-auth.service.js +333 -0
  54. package/esm2015/lib/auth/password.service.js +320 -0
  55. package/esm2015/lib/auth/register.service.js +172 -0
  56. package/esm2015/lib/auth/two-factor.service.js +74 -0
  57. package/esm2015/lib/category/category-meta.service.js +99 -0
  58. package/esm2015/lib/category/category.gql.js +406 -0
  59. package/esm2015/lib/category/category.service.js +390 -0
  60. package/esm2015/lib/category/category.types.js +29 -0
  61. package/esm2015/lib/cryptography/cryptography.types.js +11 -0
  62. package/esm2015/lib/cryptography/encryption.service.js +189 -0
  63. package/esm2015/lib/cryptography/key-factory.service.js +237 -0
  64. package/esm2015/lib/cryptography/key-graph.service.js +280 -0
  65. package/esm2015/lib/cryptography/key-meta.service.js +200 -0
  66. package/esm2015/lib/cryptography/key.service.js +124 -0
  67. package/esm2015/lib/cryptography/slip39.service.js +169 -0
  68. package/esm2015/lib/cryptography/web-crypto.service.js +29 -0
  69. package/esm2015/lib/life-ready.config.js +84 -0
  70. package/esm2015/lib/life-ready.module.js +74 -0
  71. package/esm2015/lib/plan/plan.gql.js +123 -0
  72. package/esm2015/lib/plan/plan.service.js +149 -0
  73. package/esm2015/lib/plan/plan.types.js +11 -0
  74. package/esm2015/lib/record/record-attachment.service.js +101 -0
  75. package/esm2015/lib/record/record.gql.js +179 -0
  76. package/esm2015/lib/record/record.service.js +206 -0
  77. package/esm2015/lib/record/record.types.js +15 -0
  78. package/esm2015/lib/record-type/record-type.service.js +75 -0
  79. package/esm2015/lib/record-type/record-type.types.js +28 -0
  80. package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +105 -0
  81. package/esm2015/lib/scenario/approvals/scenario-approval.types.js +1 -0
  82. package/esm2015/lib/scenario/approvals/scenario-approver.service.js +300 -0
  83. package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +52 -0
  84. package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +97 -0
  85. package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +1 -0
  86. package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +150 -0
  87. package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +229 -0
  88. package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +1 -0
  89. package/esm2015/lib/scenario/scenario-setup.service.js +269 -0
  90. package/esm2015/lib/scenario/scenario.gql.js +368 -0
  91. package/esm2015/lib/scenario/scenario.service.js +611 -0
  92. package/esm2015/lib/scenario/scenario.types.js +64 -0
  93. package/esm2015/lib/search/search.gql.js +62 -0
  94. package/esm2015/lib/search/search.service.js +156 -0
  95. package/esm2015/lib/search/search.types.js +6 -0
  96. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +112 -0
  97. package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +266 -0
  98. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -0
  99. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +300 -0
  100. package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -0
  101. package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -0
  102. package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -0
  103. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -0
  104. package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -0
  105. package/esm2015/lib/users/profile-details.service.js +214 -0
  106. package/esm2015/lib/users/profile.gql.js +97 -0
  107. package/esm2015/lib/users/profile.service.js +169 -0
  108. package/esm2015/lib/users/profile.types.js +34 -0
  109. package/esm2015/lib/users/user.gql.js +60 -0
  110. package/esm2015/lib/users/user.service.js +79 -0
  111. package/esm2015/lib/users/user.types.js +5 -0
  112. package/esm2015/lifeready-core.js +10 -0
  113. package/esm2015/public-api.js +81 -0
  114. package/fesm2015/lifeready-core.js +13290 -0
  115. package/fesm2015/lifeready-core.js.map +1 -0
  116. package/lib/_common/ast.d.ts +11 -0
  117. package/lib/_common/deferred-promise.d.ts +12 -0
  118. package/lib/_common/exceptions.d.ts +109 -0
  119. package/lib/_common/queries.gql.d.ts +10 -0
  120. package/lib/_common/run-outside-angular.d.ts +14 -0
  121. package/lib/_common/types.d.ts +10 -0
  122. package/lib/_common/utils.d.ts +3 -0
  123. package/lib/api/contact-card.gql.d.ts +7 -0
  124. package/lib/api/contact-card.service.d.ts +52 -0
  125. package/lib/api/contact-card2.gql.d.ts +34 -0
  126. package/lib/api/contact-card2.service.d.ts +49 -0
  127. package/lib/api/file.service.d.ts +18 -0
  128. package/lib/api/item2.gql.d.ts +96 -0
  129. package/lib/api/item2.service.d.ts +177 -0
  130. package/lib/api/key-exchange.gql.d.ts +9 -0
  131. package/lib/api/key-exchange.service.d.ts +39 -0
  132. package/lib/api/key-exchange.types.d.ts +196 -0
  133. package/lib/api/key-exchange2.gql.d.ts +125 -0
  134. package/lib/api/key-exchange2.service.d.ts +187 -0
  135. package/lib/api/lock.gql.d.ts +27 -0
  136. package/lib/api/lock.service.d.ts +25 -0
  137. package/lib/api/lr-apollo.service.d.ts +15 -0
  138. package/lib/api/lr-graphql/index.d.ts +5 -0
  139. package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -0
  140. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -0
  141. package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -0
  142. package/lib/api/lr-graphql/lr-mutation.d.ts +8 -0
  143. package/lib/api/lr-graphql/lr.service.d.ts +9 -0
  144. package/lib/api/message.service.d.ts +58 -0
  145. package/lib/api/persist.service.d.ts +31 -0
  146. package/lib/api/query-processor/common-processors.service.d.ts +36 -0
  147. package/lib/api/query-processor/index.d.ts +2 -0
  148. package/lib/api/query-processor/query-processor.service.d.ts +18 -0
  149. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -0
  150. package/lib/api/shared-contact-card.service.d.ts +33 -0
  151. package/lib/api/shared-contact-card2.gql.d.ts +36 -0
  152. package/lib/api/shared-contact-card2.service.d.ts +45 -0
  153. package/lib/api/time.service.d.ts +16 -0
  154. package/lib/api/types/graphql.types.d.ts +29 -0
  155. package/lib/api/types/index.d.ts +2 -0
  156. package/lib/api/types/lr-graphql.types.d.ts +385 -0
  157. package/lib/auth/auth.config.d.ts +5 -0
  158. package/lib/auth/auth.gql.d.ts +15 -0
  159. package/lib/auth/auth.types.d.ts +66 -0
  160. package/lib/auth/idle.service.d.ts +40 -0
  161. package/lib/auth/idle.types.d.ts +10 -0
  162. package/lib/auth/lbop.service.d.ts +91 -0
  163. package/lib/auth/life-ready-auth.service.d.ts +46 -0
  164. package/lib/auth/password.service.d.ts +78 -0
  165. package/lib/auth/register.service.d.ts +25 -0
  166. package/lib/auth/two-factor.service.d.ts +15 -0
  167. package/lib/category/category-meta.service.d.ts +23 -0
  168. package/lib/category/category.gql.d.ts +45 -0
  169. package/lib/category/category.service.d.ts +67 -0
  170. package/lib/category/category.types.d.ts +79 -0
  171. package/lib/cryptography/cryptography.types.d.ts +83 -0
  172. package/lib/cryptography/encryption.service.d.ts +41 -0
  173. package/lib/cryptography/key-factory.service.d.ts +38 -0
  174. package/lib/cryptography/key-graph.service.d.ts +33 -0
  175. package/lib/cryptography/key-meta.service.d.ts +44 -0
  176. package/lib/cryptography/key.service.d.ts +36 -0
  177. package/lib/cryptography/slip39.service.d.ts +43 -0
  178. package/lib/cryptography/web-crypto.service.d.ts +5 -0
  179. package/lib/life-ready.config.d.ts +14 -0
  180. package/lib/life-ready.module.d.ts +5 -0
  181. package/lib/plan/plan.gql.d.ts +11 -0
  182. package/lib/plan/plan.service.d.ts +33 -0
  183. package/lib/plan/plan.types.d.ts +31 -0
  184. package/lib/record/record-attachment.service.d.ts +16 -0
  185. package/lib/record/record.gql.d.ts +14 -0
  186. package/lib/record/record.service.d.ts +25 -0
  187. package/lib/record/record.types.d.ts +57 -0
  188. package/lib/record-type/record-type.service.d.ts +11 -0
  189. package/lib/record-type/record-type.types.d.ts +50 -0
  190. package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -0
  191. package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -0
  192. package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -0
  193. package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -0
  194. package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -0
  195. package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -0
  196. package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -0
  197. package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -0
  198. package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -0
  199. package/lib/scenario/scenario-setup.service.d.ts +22 -0
  200. package/lib/scenario/scenario.gql.d.ts +34 -0
  201. package/lib/scenario/scenario.service.d.ts +58 -0
  202. package/lib/scenario/scenario.types.d.ts +217 -0
  203. package/lib/search/search.gql.d.ts +1 -0
  204. package/lib/search/search.service.d.ts +25 -0
  205. package/lib/search/search.types.d.ts +20 -0
  206. package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -0
  207. package/lib/trusted-parties/tp-password-reset-user.service.d.ts +41 -0
  208. package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -0
  209. package/lib/trusted-parties/tp-password-reset.service.d.ts +131 -0
  210. package/lib/trusted-parties/trusted-party.gql.d.ts +9 -0
  211. package/lib/trusted-parties/trusted-party.service.d.ts +44 -0
  212. package/lib/trusted-parties/trusted-party.types.d.ts +102 -0
  213. package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -0
  214. package/lib/trusted-parties/trusted-party2.service.d.ts +114 -0
  215. package/lib/users/profile-details.service.d.ts +21 -0
  216. package/lib/users/profile.gql.d.ts +11 -0
  217. package/lib/users/profile.service.d.ts +35 -0
  218. package/lib/users/profile.types.d.ts +96 -0
  219. package/lib/users/user.gql.d.ts +9 -0
  220. package/lib/users/user.service.d.ts +12 -0
  221. package/lib/users/user.types.d.ts +23 -0
  222. package/lifeready-core.d.ts +9 -0
  223. package/lifeready-core.metadata.json +1 -0
  224. package/package.json +29 -0
  225. package/public-api.d.ts +77 -0
@@ -0,0 +1,188 @@
1
+ import gql from 'graphql-tag';
2
+ import { FetchKeyGraphField, KeyGraphFragment } from '../_common/queries.gql';
3
+ export const KeyExchangeFields = `
4
+ id
5
+ token
6
+ state
7
+ mode
8
+ isInitiator
9
+ initiator {
10
+ id
11
+ username
12
+ }
13
+ responder {
14
+ id
15
+ username
16
+ }
17
+ created
18
+ modified
19
+ tokenExpiryTime
20
+ isExpired
21
+ initiatorRootKeyCipher
22
+ initiatorActionRequired
23
+ responderActionRequired
24
+ responderEmailAddress
25
+ otk {
26
+ state
27
+ otKeyParams
28
+ otKeyCipher
29
+ sharedKey {
30
+ id
31
+ }
32
+ mkSharedKey {
33
+ id
34
+ }
35
+ initiatorSigPxk {
36
+ id
37
+ }
38
+ responderSigPxk {
39
+ id
40
+ }
41
+ initiatorOneTimePbkCipher
42
+ responderPbkCipher
43
+ }`;
44
+ export const UserSharedKeyFields = `
45
+ userSigPrk {
46
+ id
47
+ }
48
+ otherSigPbk {
49
+ id
50
+ }
51
+ sharedKey {
52
+ id
53
+ }
54
+ mkSharedKey {
55
+ id
56
+ }
57
+ mkPxk {
58
+ id
59
+ pbk
60
+ }
61
+ mkReshareRequestCipher
62
+ mkReshareResponseCipher
63
+ mkReshareRequestSent
64
+ mkReshareResponseSent
65
+ `;
66
+ export const CurrentUserSharedKeyQuery = gql `
67
+ query CurrentUserSharedKeyQuery(
68
+ $username: String
69
+ $userId: LrRelayIdInput
70
+ $cachedKeyIds: [LrRelayIdInput!]
71
+ ) {
72
+ currentUserSharedKey(
73
+ username: $username
74
+ userId: $userId
75
+ ) {
76
+ userSharedKey {
77
+ ${UserSharedKeyFields}
78
+ }
79
+ }
80
+ keyGraph(cachedKeyIds: $cachedKeyIds) {
81
+ ...KeyGraphFragment
82
+ }
83
+ }
84
+ ${KeyGraphFragment}`;
85
+ export const KeyExchangesQuery = gql `
86
+ query KeyExchangeQuery(
87
+ $orderBy: String
88
+ $isExpired: Boolean
89
+ $initiatorActionRequired: Boolean
90
+ $responderActionRequired: Boolean
91
+ $initiator: ID
92
+ $responder: ID
93
+ $state: String
94
+ ) {
95
+ keyExchanges(
96
+ orderBy: $orderBy
97
+ isExpired: $isExpired
98
+ initiatorActionRequired: $initiatorActionRequired
99
+ responderActionRequired: $responderActionRequired
100
+ initiator: $initiator
101
+ responder: $responder
102
+ state: $state
103
+ ) {
104
+ edges {
105
+ node {
106
+ ${KeyExchangeFields}
107
+ }
108
+ }
109
+ }
110
+ keyGraph {
111
+ ...KeyGraphFragment
112
+ }
113
+ }
114
+ ${KeyGraphFragment}
115
+ `;
116
+ export const KeyExchangeQuery = gql `
117
+ query KeyExchangeQuery(
118
+ $id: LrRelayIdInput!
119
+ ) {
120
+ keyExchange(
121
+ id: $id
122
+ ) {
123
+ ${KeyExchangeFields}
124
+ }
125
+ keyGraph {
126
+ ...KeyGraphFragment
127
+ }
128
+ }
129
+ ${KeyGraphFragment}
130
+ `;
131
+ // Key graph is only available for authenticated users. This query
132
+ // is for unauthenticated users.
133
+ export const KeyExchangeTokenQuery = gql `
134
+ query KeyExchangeQuery(
135
+ $id: LrRelayIdInput!
136
+ $token: String
137
+ ) {
138
+ keyExchange(
139
+ id: $id
140
+ token: $token
141
+ ) {
142
+ ${KeyExchangeFields}
143
+ }
144
+ }`;
145
+ export const InitiateOtkMutation = gql `
146
+ mutation InitiateKeyExchangeOtk(
147
+ $input: InitiateKeyExchangeOtkInput!
148
+ ) {
149
+ initiateKeyExchangeOtk(input: $input) {
150
+ keyExchange {
151
+ ${KeyExchangeFields}
152
+ }
153
+ }
154
+ ${FetchKeyGraphField}
155
+ }`;
156
+ export const RespondOtkMutation = gql `
157
+ mutation RespondKeyExchangeOtk(
158
+ $input: RespondKeyExchangeOtkInput!
159
+ ) {
160
+ respondKeyExchangeOtk(input: $input) {
161
+ keyExchange {
162
+ ${KeyExchangeFields}
163
+ }
164
+ userSharedKey {
165
+ ${UserSharedKeyFields}
166
+ }
167
+ tp {
168
+ id
169
+ }
170
+ }
171
+ }`;
172
+ export const CompleteOtkMutation = gql `
173
+ mutation CompleteKeyExchangeOtk(
174
+ $input: CompleteKeyExchangeOtkInput!
175
+ ) {
176
+ completeKeyExchangeOtk(input: $input) {
177
+ keyExchange {
178
+ ${KeyExchangeFields}
179
+ }
180
+ userSharedKey {
181
+ ${UserSharedKeyFields}
182
+ }
183
+ tp {
184
+ id
185
+ }
186
+ }
187
+ }`;
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWV4Y2hhbmdlLmdxbC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWN0cy90ZXN0L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2FwaS9rZXktZXhjaGFuZ2UuZ3FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQztBQUM5QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXdDL0IsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FxQmxDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7O1FBV3BDLG1CQUFtQjs7Ozs7OztFQU96QixnQkFBZ0IsRUFBRSxDQUFDO0FBRXJCLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBcUI1QixpQkFBaUI7Ozs7Ozs7O0VBUXZCLGdCQUFnQjtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O01BTzdCLGlCQUFpQjs7Ozs7O0VBTXJCLGdCQUFnQjtDQUNqQixDQUFDO0FBRUYsa0VBQWtFO0FBQ2xFLGdDQUFnQztBQUNoQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7OztNQVNsQyxpQkFBaUI7O0VBRXJCLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU1oQyxpQkFBaUI7OztFQUdyQixrQkFBa0I7RUFDbEIsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQTs7Ozs7O1FBTTdCLGlCQUFpQjs7O1FBR2pCLG1CQUFtQjs7Ozs7O0VBTXpCLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUE7Ozs7OztRQU05QixpQkFBaUI7OztRQUdqQixtQkFBbUI7Ozs7OztFQU16QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdxbCBmcm9tICdncmFwaHFsLXRhZyc7XHJcbmltcG9ydCB7IEZldGNoS2V5R3JhcGhGaWVsZCwgS2V5R3JhcGhGcmFnbWVudCB9IGZyb20gJy4uL19jb21tb24vcXVlcmllcy5ncWwnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEtleUV4Y2hhbmdlRmllbGRzID0gYFxyXG4gIGlkXHJcbiAgdG9rZW5cclxuICBzdGF0ZVxyXG4gIG1vZGVcclxuICBpc0luaXRpYXRvclxyXG4gIGluaXRpYXRvciB7XHJcbiAgICBpZFxyXG4gICAgdXNlcm5hbWVcclxuICB9XHJcbiAgcmVzcG9uZGVyIHtcclxuICAgIGlkXHJcbiAgICB1c2VybmFtZVxyXG4gIH1cclxuICBjcmVhdGVkXHJcbiAgbW9kaWZpZWRcclxuICB0b2tlbkV4cGlyeVRpbWVcclxuICBpc0V4cGlyZWRcclxuICBpbml0aWF0b3JSb290S2V5Q2lwaGVyXHJcbiAgaW5pdGlhdG9yQWN0aW9uUmVxdWlyZWRcclxuICByZXNwb25kZXJBY3Rpb25SZXF1aXJlZFxyXG4gIHJlc3BvbmRlckVtYWlsQWRkcmVzc1xyXG4gIG90ayB7XHJcbiAgICBzdGF0ZVxyXG4gICAgb3RLZXlQYXJhbXNcclxuICAgIG90S2V5Q2lwaGVyXHJcbiAgICBzaGFyZWRLZXkge1xyXG4gICAgICBpZFxyXG4gICAgfVxyXG4gICAgbWtTaGFyZWRLZXkge1xyXG4gICAgICBpZFxyXG4gICAgfVxyXG4gICAgaW5pdGlhdG9yU2lnUHhrIHtcclxuICAgICAgaWRcclxuICAgIH1cclxuICAgIHJlc3BvbmRlclNpZ1B4ayB7XHJcbiAgICAgIGlkXHJcbiAgICB9XHJcbiAgICBpbml0aWF0b3JPbmVUaW1lUGJrQ2lwaGVyXHJcbiAgICByZXNwb25kZXJQYmtDaXBoZXJcclxufWA7XHJcblxyXG5leHBvcnQgY29uc3QgVXNlclNoYXJlZEtleUZpZWxkcyA9IGBcclxuICB1c2VyU2lnUHJrIHtcclxuICAgIGlkXHJcbiAgfVxyXG4gIG90aGVyU2lnUGJrIHtcclxuICAgIGlkXHJcbiAgfVxyXG4gIHNoYXJlZEtleSB7XHJcbiAgICBpZFxyXG4gIH1cclxuICBta1NoYXJlZEtleSB7XHJcbiAgICBpZFxyXG4gIH1cclxuICBta1B4ayB7XHJcbiAgICBpZFxyXG4gICAgcGJrXHJcbiAgfVxyXG4gIG1rUmVzaGFyZVJlcXVlc3RDaXBoZXJcclxuICBta1Jlc2hhcmVSZXNwb25zZUNpcGhlclxyXG4gIG1rUmVzaGFyZVJlcXVlc3RTZW50XHJcbiAgbWtSZXNoYXJlUmVzcG9uc2VTZW50XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ3VycmVudFVzZXJTaGFyZWRLZXlRdWVyeSA9IGdxbGBcclxucXVlcnkgQ3VycmVudFVzZXJTaGFyZWRLZXlRdWVyeShcclxuICAkdXNlcm5hbWU6IFN0cmluZ1xyXG4gICR1c2VySWQ6IExyUmVsYXlJZElucHV0XHJcbiAgJGNhY2hlZEtleUlkczogW0xyUmVsYXlJZElucHV0IV1cclxuKSB7XHJcbiAgY3VycmVudFVzZXJTaGFyZWRLZXkoXHJcbiAgICB1c2VybmFtZTogJHVzZXJuYW1lXHJcbiAgICB1c2VySWQ6ICR1c2VySWRcclxuICApIHtcclxuICAgIHVzZXJTaGFyZWRLZXkge1xyXG4gICAgICAke1VzZXJTaGFyZWRLZXlGaWVsZHN9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGtleUdyYXBoKGNhY2hlZEtleUlkczogJGNhY2hlZEtleUlkcykge1xyXG4gICAgLi4uS2V5R3JhcGhGcmFnbWVudFxyXG4gIH1cclxufVxyXG4ke0tleUdyYXBoRnJhZ21lbnR9YDtcclxuXHJcbmV4cG9ydCBjb25zdCBLZXlFeGNoYW5nZXNRdWVyeSA9IGdxbGBcclxucXVlcnkgS2V5RXhjaGFuZ2VRdWVyeShcclxuJG9yZGVyQnk6IFN0cmluZ1xyXG4kaXNFeHBpcmVkOiBCb29sZWFuXHJcbiRpbml0aWF0b3JBY3Rpb25SZXF1aXJlZDogQm9vbGVhblxyXG4kcmVzcG9uZGVyQWN0aW9uUmVxdWlyZWQ6IEJvb2xlYW5cclxuJGluaXRpYXRvcjogSURcclxuJHJlc3BvbmRlcjogSURcclxuJHN0YXRlOiBTdHJpbmdcclxuKSB7XHJcbmtleUV4Y2hhbmdlcyhcclxuICBvcmRlckJ5OiAkb3JkZXJCeVxyXG4gIGlzRXhwaXJlZDogJGlzRXhwaXJlZFxyXG4gIGluaXRpYXRvckFjdGlvblJlcXVpcmVkOiAkaW5pdGlhdG9yQWN0aW9uUmVxdWlyZWRcclxuICByZXNwb25kZXJBY3Rpb25SZXF1aXJlZDogJHJlc3BvbmRlckFjdGlvblJlcXVpcmVkXHJcbiAgaW5pdGlhdG9yOiAkaW5pdGlhdG9yXHJcbiAgcmVzcG9uZGVyOiAkcmVzcG9uZGVyXHJcbiAgc3RhdGU6ICRzdGF0ZVxyXG4pIHtcclxuICBlZGdlcyB7XHJcbiAgICBub2RlIHtcclxuICAgICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cclxuICAgIH1cclxuICB9XHJcbn1cclxua2V5R3JhcGgge1xyXG4gIC4uLktleUdyYXBoRnJhZ21lbnRcclxufVxyXG59XHJcbiR7S2V5R3JhcGhGcmFnbWVudH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBLZXlFeGNoYW5nZVF1ZXJ5ID0gZ3FsYFxyXG5xdWVyeSBLZXlFeGNoYW5nZVF1ZXJ5KFxyXG4gICRpZDogTHJSZWxheUlkSW5wdXQhXHJcbikge1xyXG4gIGtleUV4Y2hhbmdlKFxyXG4gICAgaWQ6ICRpZFxyXG4gICkge1xyXG4gICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cclxuICB9XHJcbiAga2V5R3JhcGgge1xyXG4gICAgLi4uS2V5R3JhcGhGcmFnbWVudFxyXG4gIH1cclxufVxyXG4ke0tleUdyYXBoRnJhZ21lbnR9XHJcbmA7XHJcblxyXG4vLyBLZXkgZ3JhcGggaXMgb25seSBhdmFpbGFibGUgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcnMuIFRoaXMgcXVlcnlcclxuLy8gaXMgZm9yIHVuYXV0aGVudGljYXRlZCB1c2Vycy5cclxuZXhwb3J0IGNvbnN0IEtleUV4Y2hhbmdlVG9rZW5RdWVyeSA9IGdxbGBcclxucXVlcnkgS2V5RXhjaGFuZ2VRdWVyeShcclxuICAkaWQ6IExyUmVsYXlJZElucHV0IVxyXG4gICR0b2tlbjogU3RyaW5nXHJcbikge1xyXG4gIGtleUV4Y2hhbmdlKFxyXG4gICAgaWQ6ICRpZFxyXG4gICAgdG9rZW46ICR0b2tlblxyXG4gICkge1xyXG4gICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cclxuICB9XHJcbn1gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEluaXRpYXRlT3RrTXV0YXRpb24gPSBncWxgXHJcbm11dGF0aW9uIEluaXRpYXRlS2V5RXhjaGFuZ2VPdGsoXHJcbiRpbnB1dDogSW5pdGlhdGVLZXlFeGNoYW5nZU90a0lucHV0IVxyXG4pIHtcclxuaW5pdGlhdGVLZXlFeGNoYW5nZU90ayhpbnB1dDogJGlucHV0KSB7XHJcbiAga2V5RXhjaGFuZ2Uge1xyXG4gICAgJHtLZXlFeGNoYW5nZUZpZWxkc31cclxuICB9XHJcbn1cclxuJHtGZXRjaEtleUdyYXBoRmllbGR9XHJcbn1gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJlc3BvbmRPdGtNdXRhdGlvbiA9IGdxbGBcclxubXV0YXRpb24gUmVzcG9uZEtleUV4Y2hhbmdlT3RrKFxyXG4gICRpbnB1dDogUmVzcG9uZEtleUV4Y2hhbmdlT3RrSW5wdXQhXHJcbikge1xyXG4gIHJlc3BvbmRLZXlFeGNoYW5nZU90ayhpbnB1dDogJGlucHV0KSB7XHJcbiAgICBrZXlFeGNoYW5nZSB7XHJcbiAgICAgICR7S2V5RXhjaGFuZ2VGaWVsZHN9XHJcbiAgICB9XHJcbiAgICB1c2VyU2hhcmVkS2V5IHtcclxuICAgICAgJHtVc2VyU2hhcmVkS2V5RmllbGRzfVxyXG4gICAgfVxyXG4gICAgdHAge1xyXG4gICAgICBpZFxyXG4gICAgfVxyXG4gIH1cclxufWA7XHJcblxyXG5leHBvcnQgY29uc3QgQ29tcGxldGVPdGtNdXRhdGlvbiA9IGdxbGBcclxubXV0YXRpb24gQ29tcGxldGVLZXlFeGNoYW5nZU90ayhcclxuICAkaW5wdXQ6IENvbXBsZXRlS2V5RXhjaGFuZ2VPdGtJbnB1dCFcclxuKSB7XHJcbiAgY29tcGxldGVLZXlFeGNoYW5nZU90ayhpbnB1dDogJGlucHV0KSB7XHJcbiAgICBrZXlFeGNoYW5nZSB7XHJcbiAgICAgICR7S2V5RXhjaGFuZ2VGaWVsZHN9XHJcbiAgICB9XHJcbiAgICB1c2VyU2hhcmVkS2V5IHtcclxuICAgICAgJHtVc2VyU2hhcmVkS2V5RmllbGRzfVxyXG4gICAgfVxyXG4gICAgdHAge1xyXG4gICAgICBpZFxyXG4gICAgfVxyXG4gIH1cclxufWA7XHJcbiJdfQ==