1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const node_storage_common_1 = require("@neo-one/node-storage-common");
|
4 | const utils_1 = require("@neo-one/utils");
|
5 | const convertAddChange = (changeIn) => {
|
6 | const change = changeIn;
|
7 | switch (change.type) {
|
8 | case 'account':
|
9 | return [
|
10 | {
|
11 | type: 'add',
|
12 | model: 'account',
|
13 | key: node_storage_common_1.keys.typeKeyToSerializeKey.account(change.value),
|
14 | value: change.value,
|
15 | },
|
16 | ];
|
17 | case 'accountUnclaimed':
|
18 | return [
|
19 | {
|
20 | type: 'add',
|
21 | model: 'accountUnclaimed',
|
22 | key: node_storage_common_1.keys.typeKeyToSerializeKey.accountUnclaimed({
|
23 | hash: change.value.hash,
|
24 | input: change.value.input,
|
25 | }),
|
26 | value: change.value,
|
27 | },
|
28 | ];
|
29 | case 'accountUnspent':
|
30 | return [
|
31 | {
|
32 | type: 'add',
|
33 | model: 'accountUnspent',
|
34 | key: node_storage_common_1.keys.typeKeyToSerializeKey.accountUnspent({
|
35 | hash: change.value.hash,
|
36 | input: change.value.input,
|
37 | }),
|
38 | value: change.value,
|
39 | },
|
40 | ];
|
41 | case 'action':
|
42 | return [
|
43 | {
|
44 | type: 'add',
|
45 | model: 'action',
|
46 | key: node_storage_common_1.keys.typeKeyToSerializeKey.action({
|
47 | index: change.value.index,
|
48 | }),
|
49 | value: change.value,
|
50 | },
|
51 | ];
|
52 | case 'asset':
|
53 | return [
|
54 | {
|
55 | type: 'add',
|
56 | model: 'asset',
|
57 | key: node_storage_common_1.keys.typeKeyToSerializeKey.asset(change.value),
|
58 | value: change.value,
|
59 | },
|
60 | ];
|
61 | case 'block':
|
62 | return [
|
63 | {
|
64 | type: 'add',
|
65 | model: 'block',
|
66 | key: node_storage_common_1.keys.typeKeyToSerializeKey.block(change.value),
|
67 | value: change.value,
|
68 | },
|
69 | {
|
70 | type: 'add',
|
71 | model: 'block',
|
72 | key: `${change.value.index}`,
|
73 | value: change.value,
|
74 | },
|
75 | ];
|
76 | case 'blockData':
|
77 | return [
|
78 | {
|
79 | type: 'add',
|
80 | model: 'blockData',
|
81 | key: node_storage_common_1.keys.typeKeyToSerializeKey.blockData(change.value),
|
82 | value: change.value,
|
83 | },
|
84 | ];
|
85 | case 'header':
|
86 | return [
|
87 | {
|
88 | type: 'add',
|
89 | model: 'header',
|
90 | key: node_storage_common_1.keys.typeKeyToSerializeKey.header(change.value),
|
91 | value: change.value,
|
92 | },
|
93 | {
|
94 | type: 'add',
|
95 | model: 'header',
|
96 | key: `${change.value.index}`,
|
97 | value: change.value,
|
98 | },
|
99 | ];
|
100 | case 'transaction':
|
101 | return [
|
102 | {
|
103 | type: 'add',
|
104 | model: 'transaction',
|
105 | key: node_storage_common_1.keys.typeKeyToSerializeKey.transaction(change.value),
|
106 | value: change.value,
|
107 | },
|
108 | ];
|
109 | case 'output':
|
110 | return [
|
111 | {
|
112 | type: 'add',
|
113 | model: 'output',
|
114 | key: node_storage_common_1.keys.typeKeyToSerializeKey.output({
|
115 | hash: change.value.hash,
|
116 | index: change.value.index,
|
117 | }),
|
118 | value: change.value.output,
|
119 | },
|
120 | ];
|
121 | case 'transactionData':
|
122 | return [
|
123 | {
|
124 | type: 'add',
|
125 | model: 'transactionData',
|
126 | key: node_storage_common_1.keys.typeKeyToSerializeKey.transactionData(change.value),
|
127 | value: change.value,
|
128 | },
|
129 | ];
|
130 | case 'contract':
|
131 | return [
|
132 | {
|
133 | type: 'add',
|
134 | model: 'contract',
|
135 | key: node_storage_common_1.keys.typeKeyToSerializeKey.contract(change.value),
|
136 | value: change.value,
|
137 | },
|
138 | ];
|
139 | case 'storageItem':
|
140 | return [
|
141 | {
|
142 | type: 'add',
|
143 | model: 'storageItem',
|
144 | key: node_storage_common_1.keys.typeKeyToSerializeKey.storageItem({
|
145 | hash: change.value.hash,
|
146 | key: change.value.key,
|
147 | }),
|
148 | value: change.value,
|
149 | },
|
150 | ];
|
151 | case 'validator':
|
152 | return [
|
153 | {
|
154 | type: 'add',
|
155 | model: 'validator',
|
156 | key: node_storage_common_1.keys.typeKeyToSerializeKey.validator({
|
157 | publicKey: change.value.publicKey,
|
158 | }),
|
159 | value: change.value,
|
160 | },
|
161 | ];
|
162 | case 'invocationData':
|
163 | return [
|
164 | {
|
165 | type: 'add',
|
166 | model: 'invocationData',
|
167 | key: node_storage_common_1.keys.typeKeyToSerializeKey.invocationData(change.value),
|
168 | value: change.value,
|
169 | },
|
170 | ];
|
171 | case 'validatorsCount':
|
172 | return [
|
173 | {
|
174 | type: 'add',
|
175 | model: 'validatorsCount',
|
176 | key: node_storage_common_1.keys.validatorsCountKey.toString(),
|
177 | value: change.value,
|
178 | },
|
179 | ];
|
180 | default:
|
181 | utils_1.utils.assertNever(change);
|
182 | throw new Error('For TS');
|
183 | }
|
184 | };
|
185 | const convertDeleteChange = (change) => {
|
186 | switch (change.type) {
|
187 | case 'account':
|
188 | return {
|
189 | type: 'delete',
|
190 | model: 'account',
|
191 | key: node_storage_common_1.keys.typeKeyToSerializeKey.account(change.key),
|
192 | };
|
193 | case 'accountUnclaimed':
|
194 | return {
|
195 | type: 'delete',
|
196 | model: 'accountUnclaimed',
|
197 | key: node_storage_common_1.keys.typeKeyToSerializeKey.accountUnclaimed(change.key),
|
198 | };
|
199 | case 'accountUnspent':
|
200 | return {
|
201 | type: 'delete',
|
202 | model: 'accountUnspent',
|
203 | key: node_storage_common_1.keys.typeKeyToSerializeKey.accountUnclaimed(change.key),
|
204 | };
|
205 | case 'contract':
|
206 | return {
|
207 | type: 'delete',
|
208 | model: 'contract',
|
209 | key: node_storage_common_1.keys.typeKeyToSerializeKey.contract(change.key),
|
210 | };
|
211 | case 'storageItem':
|
212 | return {
|
213 | type: 'delete',
|
214 | model: 'storageItem',
|
215 | key: node_storage_common_1.keys.typeKeyToSerializeKey.storageItem(change.key),
|
216 | };
|
217 | case 'validator':
|
218 | return {
|
219 | type: 'delete',
|
220 | model: 'validator',
|
221 | key: node_storage_common_1.keys.typeKeyToSerializeKey.validator(change.key),
|
222 | };
|
223 | default:
|
224 | utils_1.utils.assertNever(change);
|
225 | throw new Error('For TS');
|
226 | }
|
227 | };
|
228 | exports.convertChange = (change) => {
|
229 | if (change.type === 'add') {
|
230 | return convertAddChange(change.change);
|
231 | }
|
232 | if (change.type === 'delete') {
|
233 | return [convertDeleteChange(change.change)];
|
234 | }
|
235 | utils_1.utils.assertNever(change);
|
236 | throw new Error('For TS');
|
237 | };
|
238 |
|
239 | //# sourceMappingURL=data:application/json;charset=utf8;base64,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O0lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFDIiwiZmlsZSI6Im5lby1vbmUtbm9kZS1zdG9yYWdlLWNhY2hlL3NyYy9jb252ZXJ0Q2hhbmdlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRkQ2hhbmdlLCBDaGFuZ2UsIERlbGV0ZUNoYW5nZSB9IGZyb20gJ0BuZW8tb25lL25vZGUtY29yZSc7XG5pbXBvcnQgeyBrZXlzIH0gZnJvbSAnQG5lby1vbmUvbm9kZS1zdG9yYWdlLWNvbW1vbic7XG5pbXBvcnQgeyB1dGlscyB9IGZyb20gJ0BuZW8tb25lL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgQ2FjaGVDaGFuZ2UgPVxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tYW55XG4gIHwgeyByZWFkb25seSB0eXBlOiAnYWRkJzsgcmVhZG9ubHkgbW9kZWw6IHN0cmluZzsgcmVhZG9ubHkga2V5OiBzdHJpbmc7IHJlYWRvbmx5IHZhbHVlOiBhbnkgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ2RlbGV0ZSc7IHJlYWRvbmx5IG1vZGVsOiBzdHJpbmc7IHJlYWRvbmx5IGtleTogc3RyaW5nIH07XG5cbmNvbnN0IGNvbnZlcnRBZGRDaGFuZ2UgPSAoY2hhbmdlSW46IEFkZENoYW5nZSk6IHJlYWRvbmx5IENhY2hlQ2hhbmdlW10gPT4ge1xuICBjb25zdCBjaGFuZ2UgPSBjaGFuZ2VJbjtcbiAgc3dpdGNoIChjaGFuZ2UudHlwZSkge1xuICAgIGNhc2UgJ2FjY291bnQnOlxuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhZGQnLFxuICAgICAgICAgIG1vZGVsOiAnYWNjb3VudCcsXG4gICAgICAgICAga2V5OiBrZXlzLnR5cGVLZXlUb1NlcmlhbGl6ZUtleS5hY2NvdW50KGNoYW5nZS52YWx1ZSksXG4gICAgICAgICAgdmFsdWU6IGNoYW5nZS52YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICBjYXNlICdhY2NvdW50VW5jbGFpbWVkJzpcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYWRkJyxcbiAgICAgICAgICBtb2RlbDogJ2FjY291bnRVbmNsYWltZWQnLFxuICAgICAgICAgIGtleToga2V5cy50eXBlS2V5VG9TZXJpYWxpemVLZXkuYWNjb3VudFVuY2xhaW1lZCh7XG4gICAgICAgICAgICBoYXNoOiBjaGFuZ2UudmFsdWUuaGFzaCxcbiAgICAgICAgICAgIGlucHV0OiBjaGFuZ2UudmFsdWUuaW5wdXQsXG4gICAgICAgICAgfSksXG5cbiAgICAgICAgICB2YWx1ZTogY2hhbmdlLnZhbHVlLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgIGNhc2UgJ2FjY291bnRVbnNwZW50JzpcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYWRkJyxcbiAgICAgICAgICBtb2RlbDogJ2FjY291bnRVbnNwZW50JyxcbiAgICAgICAgICBrZXk6IGtleXMudHlwZUtleVRvU2VyaWFsaXplS2V5LmFjY291bnRVbnNwZW50KHtcbiAgICAgICAgICAgIGhhc2g6IGNoYW5nZS52YWx1ZS5oYXNoLFxuICAgICAgICAgICAgaW5wdXQ6IGNoYW5nZS52YWx1ZS5pbnB1dCxcbiAgICAgICAgICB9KSxcblxuICAgICAgICAgIHZhbHVlOiBjaGFuZ2UudmFsdWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgY2FzZSAnYWN0aW9uJzpcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYWRkJyxcbiAgICAgICAgICBtb2RlbDogJ2FjdGlvbicsXG4gICAgICAgICAga2V5OiBrZXlzLnR5cGVLZXlUb1NlcmlhbGl6ZUtleS5hY3Rpb24oe1xuICAgICAgICAgICAgaW5kZXg6IGNoYW5nZS52YWx1ZS5pbmRleCxcbiAgICAgICAgICB9KSxcblxuICAgICAgICAgIHZhbHVlOiBjaGFuZ2UudmFsdWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgY2FzZSAnYXNzZXQnOlxuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhZGQnLFxuICAgICAgICAgIG1vZGVsOiAnYXNzZXQnLFxuICAgICAgICAgIGtleToga2V5cy50eXBlS2V5VG9TZXJpYWxpemVLZXkuYXNzZXQoY2hhbmdlLnZhbHVlKSxcbiAgICAgICAgICB2YWx1ZTogY2hhbmdlLnZhbHVlLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgIGNhc2UgJ2Jsb2NrJzpcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYWRkJyxcbiAgICAgICAgICBtb2RlbDogJ2Jsb2NrJyxcbiAgICAgICAgICBrZXk6IGtleXMudHlwZUtleVRvU2VyaWFsaXplS2V5LmJsb2NrKGNoYW5nZS52YWx1ZSksXG4gICAgICAgICAgdmFsdWU6IGNoYW5nZS52YWx1ZSxcbiAgICAgICAgfSxcblxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FkZCcsXG4gICAgICAgICAgbW9kZWw6ICdibG9jaycsXG4gICAgICAgICAga2V5OiBgJHtjaGFuZ2UudmFsdWUuaW5kZXh9YCxcbiAgICAgICAgICB2YWx1ZTogY2hhbmdlLnZhbHVlLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgIGNhc2UgJ2Jsb2NrRGF0YSc6XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FkZCcsXG4gICAgICAgICAgbW9kZWw6ICdibG9ja0RhdGEnLFxuICAgICAgICAgIGtleToga2V5cy50eXBlS2V5VG9TZXJpYWxpemVLZXkuYmxvY2tEYXRhKGNoYW5nZS52YWx1ZSksXG4gICAgICAgICAgdmFsdWU6IGNoYW5nZS52YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICBjYXNlICdoZWFkZXInOlxuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhZGQnLFxuICAgICAgICAgIG1vZGVsOiAnaGVhZGVyJyxcbiAgICAgICAgICBrZXk6IGtleXMudHlwZUtleVRvU2VyaWFsaXplS2V5LmhlYWRlcihjaGFuZ2UudmFsdWUpLFxuICAgICAgICAgIHZhbHVlOiBjaGFuZ2UudmFsdWUsXG4gICAgICAgIH0sXG5cbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhZGQnLFxuICAgICAgICAgIG1vZGVsOiAnaGVhZGVyJyxcbiAgICAgICAgICBrZXk6IGAke2NoYW5nZS52YWx1ZS5pbmRleH1gLFxuICAgICAgICAgIHZhbHVlOiBjaGFuZ2UudmFsdWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgY2FzZSAndHJhbnNhY3Rpb24nOlxuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhZGQnLFxuICAgICAgICAgIG1vZGVsOiAndHJhbnNhY3Rpb24nLFxuICAgICAgICAgIGtleToga2V5cy50eXBlS2V5VG9TZXJpYWxpemVLZXkudHJhbnNhY3Rpb24oY2hhbmdlLnZhbHVlKSxcbiAgICAgICAgICB2YWx1ZTogY2hhbmdlLnZhbHVlLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgIGNhc2UgJ291dHB1dCc6XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FkZCcsXG4gICAgICAgICAgbW9kZWw6ICdvdXRwdXQnLFxuICAgICAgICAgIGtleToga2V5cy50eXBlS2V5VG9TZXJpYWxpemVLZXkub3V0cHV0KHtcbiAgICAgICAgICAgIGhhc2g6IGNoYW5nZS52YWx1ZS5oYXNoLFxuICAgICAgICAgICAgaW5kZXg6IGNoYW5nZS52YWx1ZS5pbmRleCxcbiAgICAgICAgICB9KSxcblxuICAgICAgICAgIHZhbHVlOiBjaGFuZ2UudmFsdWUub3V0cHV0LFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgIGNhc2UgJ3RyYW5zYWN0aW9uRGF0YSc6XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FkZCcsXG4gICAgICAgICAgbW9kZWw6ICd0cmFuc2FjdGlvbkRhdGEnLFxuICAgICAgICAgIGtleToga2V5cy50eXBlS2V5VG9TZXJpYWxpemVLZXkudHJhbnNhY3Rpb25EYXRhKGNoYW5nZS52YWx1ZSksXG4gICAgICAgICAgdmFsdWU6IGNoYW5nZS52YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICBjYXNlICdjb250cmFjdCc6XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FkZCcsXG4gICAgICAgICAgbW9kZWw6ICdjb250cmFjdCcsXG4gICAgICAgICAga2V5OiBrZXlzLnR5cGVLZXlUb1NlcmlhbGl6ZUtleS5jb250cmFjdChjaGFuZ2UudmFsdWUpLFxuICAgICAgICAgIHZhbHVlOiBjaGFuZ2UudmFsdWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgY2FzZSAnc3RvcmFnZUl0ZW0nOlxuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhZGQnLFxuICAgICAgICAgIG1vZGVsOiAnc3RvcmFnZUl0ZW0nLFxuICAgICAgICAgIGtleToga2V5cy50eXBlS2V5VG9TZXJpYWxpemVLZXkuc3RvcmFnZUl0ZW0oe1xuICAgICAgICAgICAgaGFzaDogY2hhbmdlLnZhbHVlLmhhc2gsXG4gICAgICAgICAgICBrZXk6IGNoYW5nZS52YWx1ZS5rZXksXG4gICAgICAgICAgfSksXG5cbiAgICAgICAgICB2YWx1ZTogY2hhbmdlLnZhbHVlLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgIGNhc2UgJ3ZhbGlkYXRvcic6XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FkZCcsXG4gICAgICAgICAgbW9kZWw6ICd2YWxpZGF0b3InLFxuICAgICAgICAgIGtleToga2V5cy50eXBlS2V5VG9TZXJpYWxpemVLZXkudmFsaWRhdG9yKHtcbiAgICAgICAgICAgIHB1YmxpY0tleTogY2hhbmdlLnZhbHVlLnB1YmxpY0tleSxcbiAgICAgICAgICB9KSxcblxuICAgICAgICAgIHZhbHVlOiBjaGFuZ2UudmFsdWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgY2FzZSAnaW52b2NhdGlvbkRhdGEnOlxuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhZGQnLFxuICAgICAgICAgIG1vZGVsOiAnaW52b2NhdGlvbkRhdGEnLFxuICAgICAgICAgIGtleToga2V5cy50eXBlS2V5VG9TZXJpYWxpemVLZXkuaW52b2NhdGlvbkRhdGEoY2hhbmdlLnZhbHVlKSxcbiAgICAgICAgICB2YWx1ZTogY2hhbmdlLnZhbHVlLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgIGNhc2UgJ3ZhbGlkYXRvcnNDb3VudCc6XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FkZCcsXG4gICAgICAgICAgbW9kZWw6ICd2YWxpZGF0b3JzQ291bnQnLFxuICAgICAgICAgIGtleToga2V5cy52YWxpZGF0b3JzQ291bnRLZXkudG9TdHJpbmcoKSxcbiAgICAgICAgICB2YWx1ZTogY2hhbmdlLnZhbHVlLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB1dGlscy5hc3NlcnROZXZlcihjaGFuZ2UpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGb3IgVFMnKTtcbiAgfVxufTtcblxuY29uc3QgY29udmVydERlbGV0ZUNoYW5nZSA9IChjaGFuZ2U6IERlbGV0ZUNoYW5nZSk6IENhY2hlQ2hhbmdlID0+IHtcbiAgc3dpdGNoIChjaGFuZ2UudHlwZSkge1xuICAgIGNhc2UgJ2FjY291bnQnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2RlbGV0ZScsXG4gICAgICAgIG1vZGVsOiAnYWNjb3VudCcsXG4gICAgICAgIGtleToga2V5cy50eXBlS2V5VG9TZXJpYWxpemVLZXkuYWNjb3VudChjaGFuZ2Uua2V5KSxcbiAgICAgIH07XG5cbiAgICBjYXNlICdhY2NvdW50VW5jbGFpbWVkJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdkZWxldGUnLFxuICAgICAgICBtb2RlbDogJ2FjY291bnRVbmNsYWltZWQnLFxuICAgICAgICBrZXk6IGtleXMudHlwZUtleVRvU2VyaWFsaXplS2V5LmFjY291bnRVbmNsYWltZWQoY2hhbmdlLmtleSksXG4gICAgICB9O1xuXG4gICAgY2FzZSAnYWNjb3VudFVuc3BlbnQnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2RlbGV0ZScsXG4gICAgICAgIG1vZGVsOiAnYWNjb3VudFVuc3BlbnQnLFxuICAgICAgICBrZXk6IGtleXMudHlwZUtleVRvU2VyaWFsaXplS2V5LmFjY291bnRVbmNsYWltZWQoY2hhbmdlLmtleSksXG4gICAgICB9O1xuXG4gICAgY2FzZSAnY29udHJhY3QnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2RlbGV0ZScsXG4gICAgICAgIG1vZGVsOiAnY29udHJhY3QnLFxuICAgICAgICBrZXk6IGtleXMudHlwZUtleVRvU2VyaWFsaXplS2V5LmNvbnRyYWN0KGNoYW5nZS5rZXkpLFxuICAgICAgfTtcblxuICAgIGNhc2UgJ3N0b3JhZ2VJdGVtJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdkZWxldGUnLFxuICAgICAgICBtb2RlbDogJ3N0b3JhZ2VJdGVtJyxcbiAgICAgICAga2V5OiBrZXlzLnR5cGVLZXlUb1NlcmlhbGl6ZUtleS5zdG9yYWdlSXRlbShjaGFuZ2Uua2V5KSxcbiAgICAgIH07XG5cbiAgICBjYXNlICd2YWxpZGF0b3InOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2RlbGV0ZScsXG4gICAgICAgIG1vZGVsOiAndmFsaWRhdG9yJyxcbiAgICAgICAga2V5OiBrZXlzLnR5cGVLZXlUb1NlcmlhbGl6ZUtleS52YWxpZGF0b3IoY2hhbmdlLmtleSksXG4gICAgICB9O1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHV0aWxzLmFzc2VydE5ldmVyKGNoYW5nZSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvciBUUycpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydENoYW5nZSA9IChjaGFuZ2U6IENoYW5nZSkgPT4ge1xuICBpZiAoY2hhbmdlLnR5cGUgPT09ICdhZGQnKSB7XG4gICAgcmV0dXJuIGNvbnZlcnRBZGRDaGFuZ2UoY2hhbmdlLmNoYW5nZSk7XG4gIH1cblxuICBpZiAoY2hhbmdlLnR5cGUgPT09ICdkZWxldGUnKSB7XG4gICAgcmV0dXJuIFtjb252ZXJ0RGVsZXRlQ2hhbmdlKGNoYW5nZS5jaGFuZ2UpXTtcbiAgfVxuXG4gIHV0aWxzLmFzc2VydE5ldmVyKGNoYW5nZSk7XG4gIHRocm93IG5ldyBFcnJvcignRm9yIFRTJyk7XG59O1xuIl19
|