@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.
- package/README.md +62 -0
- package/bundles/lifeready-core.umd.js +15939 -0
- package/bundles/lifeready-core.umd.js.map +1 -0
- package/bundles/lifeready-core.umd.min.js +2 -0
- package/bundles/lifeready-core.umd.min.js.map +1 -0
- package/esm2015/lib/_common/ast.js +40 -0
- package/esm2015/lib/_common/deferred-promise.js +24 -0
- package/esm2015/lib/_common/exceptions.js +157 -0
- package/esm2015/lib/_common/queries.gql.js +190 -0
- package/esm2015/lib/_common/run-outside-angular.js +79 -0
- package/esm2015/lib/_common/types.js +1 -0
- package/esm2015/lib/_common/utils.js +44 -0
- package/esm2015/lib/api/contact-card.gql.js +79 -0
- package/esm2015/lib/api/contact-card.service.js +154 -0
- package/esm2015/lib/api/contact-card2.gql.js +60 -0
- package/esm2015/lib/api/contact-card2.service.js +103 -0
- package/esm2015/lib/api/file.service.js +74 -0
- package/esm2015/lib/api/item2.gql.js +110 -0
- package/esm2015/lib/api/item2.service.js +311 -0
- package/esm2015/lib/api/key-exchange.gql.js +188 -0
- package/esm2015/lib/api/key-exchange.service.js +442 -0
- package/esm2015/lib/api/key-exchange.types.js +18 -0
- package/esm2015/lib/api/key-exchange2.gql.js +171 -0
- package/esm2015/lib/api/key-exchange2.service.js +479 -0
- package/esm2015/lib/api/lock.gql.js +40 -0
- package/esm2015/lib/api/lock.service.js +64 -0
- package/esm2015/lib/api/lr-apollo.service.js +46 -0
- package/esm2015/lib/api/lr-graphql/index.js +6 -0
- package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -0
- package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -0
- package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -0
- package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -0
- package/esm2015/lib/api/lr-graphql/lr.service.js +18 -0
- package/esm2015/lib/api/message.service.js +138 -0
- package/esm2015/lib/api/persist.service.js +181 -0
- package/esm2015/lib/api/query-processor/common-processors.service.js +93 -0
- package/esm2015/lib/api/query-processor/index.js +3 -0
- package/esm2015/lib/api/query-processor/query-processor.service.js +192 -0
- package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -0
- package/esm2015/lib/api/shared-contact-card.service.js +119 -0
- package/esm2015/lib/api/shared-contact-card2.gql.js +41 -0
- package/esm2015/lib/api/shared-contact-card2.service.js +117 -0
- package/esm2015/lib/api/time.service.js +146 -0
- package/esm2015/lib/api/types/graphql.types.js +7 -0
- package/esm2015/lib/api/types/index.js +3 -0
- package/esm2015/lib/api/types/lr-graphql.types.js +71 -0
- package/esm2015/lib/auth/auth.config.js +57 -0
- package/esm2015/lib/auth/auth.gql.js +48 -0
- package/esm2015/lib/auth/auth.types.js +27 -0
- package/esm2015/lib/auth/idle.service.js +168 -0
- package/esm2015/lib/auth/idle.types.js +7 -0
- package/esm2015/lib/auth/lbop.service.js +355 -0
- package/esm2015/lib/auth/life-ready-auth.service.js +333 -0
- package/esm2015/lib/auth/password.service.js +320 -0
- package/esm2015/lib/auth/register.service.js +172 -0
- package/esm2015/lib/auth/two-factor.service.js +74 -0
- package/esm2015/lib/category/category-meta.service.js +99 -0
- package/esm2015/lib/category/category.gql.js +406 -0
- package/esm2015/lib/category/category.service.js +390 -0
- package/esm2015/lib/category/category.types.js +29 -0
- package/esm2015/lib/cryptography/cryptography.types.js +11 -0
- package/esm2015/lib/cryptography/encryption.service.js +189 -0
- package/esm2015/lib/cryptography/key-factory.service.js +237 -0
- package/esm2015/lib/cryptography/key-graph.service.js +280 -0
- package/esm2015/lib/cryptography/key-meta.service.js +200 -0
- package/esm2015/lib/cryptography/key.service.js +124 -0
- package/esm2015/lib/cryptography/slip39.service.js +169 -0
- package/esm2015/lib/cryptography/web-crypto.service.js +29 -0
- package/esm2015/lib/life-ready.config.js +84 -0
- package/esm2015/lib/life-ready.module.js +74 -0
- package/esm2015/lib/plan/plan.gql.js +123 -0
- package/esm2015/lib/plan/plan.service.js +149 -0
- package/esm2015/lib/plan/plan.types.js +11 -0
- package/esm2015/lib/record/record-attachment.service.js +101 -0
- package/esm2015/lib/record/record.gql.js +179 -0
- package/esm2015/lib/record/record.service.js +206 -0
- package/esm2015/lib/record/record.types.js +15 -0
- package/esm2015/lib/record-type/record-type.service.js +75 -0
- package/esm2015/lib/record-type/record-type.types.js +28 -0
- package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +105 -0
- package/esm2015/lib/scenario/approvals/scenario-approval.types.js +1 -0
- package/esm2015/lib/scenario/approvals/scenario-approver.service.js +300 -0
- package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +52 -0
- package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +97 -0
- package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +1 -0
- package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +150 -0
- package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +229 -0
- package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +1 -0
- package/esm2015/lib/scenario/scenario-setup.service.js +269 -0
- package/esm2015/lib/scenario/scenario.gql.js +368 -0
- package/esm2015/lib/scenario/scenario.service.js +611 -0
- package/esm2015/lib/scenario/scenario.types.js +64 -0
- package/esm2015/lib/search/search.gql.js +62 -0
- package/esm2015/lib/search/search.service.js +156 -0
- package/esm2015/lib/search/search.types.js +6 -0
- package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +112 -0
- package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +266 -0
- package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -0
- package/esm2015/lib/trusted-parties/tp-password-reset.service.js +300 -0
- package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -0
- package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -0
- package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -0
- package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -0
- package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -0
- package/esm2015/lib/users/profile-details.service.js +214 -0
- package/esm2015/lib/users/profile.gql.js +97 -0
- package/esm2015/lib/users/profile.service.js +169 -0
- package/esm2015/lib/users/profile.types.js +34 -0
- package/esm2015/lib/users/user.gql.js +60 -0
- package/esm2015/lib/users/user.service.js +79 -0
- package/esm2015/lib/users/user.types.js +5 -0
- package/esm2015/lifeready-core.js +10 -0
- package/esm2015/public-api.js +81 -0
- package/fesm2015/lifeready-core.js +13290 -0
- package/fesm2015/lifeready-core.js.map +1 -0
- package/lib/_common/ast.d.ts +11 -0
- package/lib/_common/deferred-promise.d.ts +12 -0
- package/lib/_common/exceptions.d.ts +109 -0
- package/lib/_common/queries.gql.d.ts +10 -0
- package/lib/_common/run-outside-angular.d.ts +14 -0
- package/lib/_common/types.d.ts +10 -0
- package/lib/_common/utils.d.ts +3 -0
- package/lib/api/contact-card.gql.d.ts +7 -0
- package/lib/api/contact-card.service.d.ts +52 -0
- package/lib/api/contact-card2.gql.d.ts +34 -0
- package/lib/api/contact-card2.service.d.ts +49 -0
- package/lib/api/file.service.d.ts +18 -0
- package/lib/api/item2.gql.d.ts +96 -0
- package/lib/api/item2.service.d.ts +177 -0
- package/lib/api/key-exchange.gql.d.ts +9 -0
- package/lib/api/key-exchange.service.d.ts +39 -0
- package/lib/api/key-exchange.types.d.ts +196 -0
- package/lib/api/key-exchange2.gql.d.ts +125 -0
- package/lib/api/key-exchange2.service.d.ts +187 -0
- package/lib/api/lock.gql.d.ts +27 -0
- package/lib/api/lock.service.d.ts +25 -0
- package/lib/api/lr-apollo.service.d.ts +15 -0
- package/lib/api/lr-graphql/index.d.ts +5 -0
- package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -0
- package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -0
- package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -0
- package/lib/api/lr-graphql/lr-mutation.d.ts +8 -0
- package/lib/api/lr-graphql/lr.service.d.ts +9 -0
- package/lib/api/message.service.d.ts +58 -0
- package/lib/api/persist.service.d.ts +31 -0
- package/lib/api/query-processor/common-processors.service.d.ts +36 -0
- package/lib/api/query-processor/index.d.ts +2 -0
- package/lib/api/query-processor/query-processor.service.d.ts +18 -0
- package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -0
- package/lib/api/shared-contact-card.service.d.ts +33 -0
- package/lib/api/shared-contact-card2.gql.d.ts +36 -0
- package/lib/api/shared-contact-card2.service.d.ts +45 -0
- package/lib/api/time.service.d.ts +16 -0
- package/lib/api/types/graphql.types.d.ts +29 -0
- package/lib/api/types/index.d.ts +2 -0
- package/lib/api/types/lr-graphql.types.d.ts +385 -0
- package/lib/auth/auth.config.d.ts +5 -0
- package/lib/auth/auth.gql.d.ts +15 -0
- package/lib/auth/auth.types.d.ts +66 -0
- package/lib/auth/idle.service.d.ts +40 -0
- package/lib/auth/idle.types.d.ts +10 -0
- package/lib/auth/lbop.service.d.ts +91 -0
- package/lib/auth/life-ready-auth.service.d.ts +46 -0
- package/lib/auth/password.service.d.ts +78 -0
- package/lib/auth/register.service.d.ts +25 -0
- package/lib/auth/two-factor.service.d.ts +15 -0
- package/lib/category/category-meta.service.d.ts +23 -0
- package/lib/category/category.gql.d.ts +45 -0
- package/lib/category/category.service.d.ts +67 -0
- package/lib/category/category.types.d.ts +79 -0
- package/lib/cryptography/cryptography.types.d.ts +83 -0
- package/lib/cryptography/encryption.service.d.ts +41 -0
- package/lib/cryptography/key-factory.service.d.ts +38 -0
- package/lib/cryptography/key-graph.service.d.ts +33 -0
- package/lib/cryptography/key-meta.service.d.ts +44 -0
- package/lib/cryptography/key.service.d.ts +36 -0
- package/lib/cryptography/slip39.service.d.ts +43 -0
- package/lib/cryptography/web-crypto.service.d.ts +5 -0
- package/lib/life-ready.config.d.ts +14 -0
- package/lib/life-ready.module.d.ts +5 -0
- package/lib/plan/plan.gql.d.ts +11 -0
- package/lib/plan/plan.service.d.ts +33 -0
- package/lib/plan/plan.types.d.ts +31 -0
- package/lib/record/record-attachment.service.d.ts +16 -0
- package/lib/record/record.gql.d.ts +14 -0
- package/lib/record/record.service.d.ts +25 -0
- package/lib/record/record.types.d.ts +57 -0
- package/lib/record-type/record-type.service.d.ts +11 -0
- package/lib/record-type/record-type.types.d.ts +50 -0
- package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -0
- package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -0
- package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -0
- package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -0
- package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -0
- package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -0
- package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -0
- package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -0
- package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -0
- package/lib/scenario/scenario-setup.service.d.ts +22 -0
- package/lib/scenario/scenario.gql.d.ts +34 -0
- package/lib/scenario/scenario.service.d.ts +58 -0
- package/lib/scenario/scenario.types.d.ts +217 -0
- package/lib/search/search.gql.d.ts +1 -0
- package/lib/search/search.service.d.ts +25 -0
- package/lib/search/search.types.d.ts +20 -0
- package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -0
- package/lib/trusted-parties/tp-password-reset-user.service.d.ts +41 -0
- package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -0
- package/lib/trusted-parties/tp-password-reset.service.d.ts +131 -0
- package/lib/trusted-parties/trusted-party.gql.d.ts +9 -0
- package/lib/trusted-parties/trusted-party.service.d.ts +44 -0
- package/lib/trusted-parties/trusted-party.types.d.ts +102 -0
- package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -0
- package/lib/trusted-parties/trusted-party2.service.d.ts +114 -0
- package/lib/users/profile-details.service.d.ts +21 -0
- package/lib/users/profile.gql.d.ts +11 -0
- package/lib/users/profile.service.d.ts +35 -0
- package/lib/users/profile.types.d.ts +96 -0
- package/lib/users/user.gql.d.ts +9 -0
- package/lib/users/user.service.d.ts +12 -0
- package/lib/users/user.types.d.ts +23 -0
- package/lifeready-core.d.ts +9 -0
- package/lifeready-core.metadata.json +1 -0
- package/package.json +29 -0
- 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==
|