@tricoteuses/senat 0.3.1 → 0.3.2

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/lib/index.js CHANGED
@@ -1,270 +1,272 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.object.define-property.js");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- Object.defineProperty(exports, "insertAudReferences", {
8
+ Object.defineProperty(exports, "Ass", {
7
9
  enumerable: true,
8
10
  get: function get() {
9
- return _inserters.insertAudReferences;
11
+ return _dosleg.Ass;
10
12
  }
11
13
  });
12
- Object.defineProperty(exports, "insertDateSeanceReferences", {
14
+ Object.defineProperty(exports, "Aud", {
13
15
  enumerable: true,
14
16
  get: function get() {
15
- return _inserters.insertDateSeanceReferences;
17
+ return _dosleg.Aud;
16
18
  }
17
19
  });
18
- Object.defineProperty(exports, "insertAuteurReferences", {
20
+ Object.defineProperty(exports, "Auteur", {
19
21
  enumerable: true,
20
22
  get: function get() {
21
- return _inserters.insertAuteurReferences;
23
+ return _dosleg.Auteur;
22
24
  }
23
25
  });
24
- Object.defineProperty(exports, "insertDocAttReferences", {
26
+ Object.defineProperty(exports, "DateSeance", {
25
27
  enumerable: true,
26
28
  get: function get() {
27
- return _inserters.insertDocAttReferences;
29
+ return _dosleg.DateSeance;
28
30
  }
29
31
  });
30
- Object.defineProperty(exports, "insertEcrReferences", {
32
+ Object.defineProperty(exports, "Debat", {
31
33
  enumerable: true,
32
34
  get: function get() {
33
- return _inserters.insertEcrReferences;
35
+ return _debats.Debat;
34
36
  }
35
37
  });
36
- Object.defineProperty(exports, "insertLecassReferences", {
38
+ Object.defineProperty(exports, "DecCoc", {
37
39
  enumerable: true,
38
40
  get: function get() {
39
- return _inserters.insertLecassReferences;
41
+ return _dosleg.DecCoc;
40
42
  }
41
43
  });
42
- Object.defineProperty(exports, "insertLecassrapReferences", {
44
+ Object.defineProperty(exports, "DenRap", {
43
45
  enumerable: true,
44
46
  get: function get() {
45
- return _inserters.insertLecassrapReferences;
47
+ return _dosleg.DenRap;
46
48
  }
47
49
  });
48
- Object.defineProperty(exports, "insertLectureReferences", {
50
+ Object.defineProperty(exports, "DocAtt", {
49
51
  enumerable: true,
50
52
  get: function get() {
51
- return _inserters.insertLectureReferences;
53
+ return _dosleg.DocAtt;
52
54
  }
53
55
  });
54
- Object.defineProperty(exports, "insertLoiReferences", {
56
+ Object.defineProperty(exports, "Ecr", {
55
57
  enumerable: true,
56
58
  get: function get() {
57
- return _inserters.insertLoiReferences;
59
+ return _dosleg.Ecr;
58
60
  }
59
61
  });
60
- Object.defineProperty(exports, "insertRapReferences", {
62
+ Object.defineProperty(exports, "EtaLoi", {
61
63
  enumerable: true,
62
64
  get: function get() {
63
- return _inserters.insertRapReferences;
65
+ return _dosleg.EtaLoi;
64
66
  }
65
67
  });
66
- Object.defineProperty(exports, "insertTexteReferences", {
68
+ Object.defineProperty(exports, "LecAss", {
67
69
  enumerable: true,
68
70
  get: function get() {
69
- return _inserters.insertTexteReferences;
71
+ return _dosleg.LecAss;
70
72
  }
71
73
  });
72
- Object.defineProperty(exports, "OutputData", {
74
+ Object.defineProperty(exports, "LecAssDeb", {
73
75
  enumerable: true,
74
76
  get: function get() {
75
- return _inserters.OutputData;
77
+ return _debats.LecAssDeb;
76
78
  }
77
79
  });
78
- Object.defineProperty(exports, "Ses", {
80
+ Object.defineProperty(exports, "LecAssRap", {
79
81
  enumerable: true,
80
82
  get: function get() {
81
- return _ameli.Ses;
83
+ return _dosleg.LecAssRap;
82
84
  }
83
85
  });
84
- Object.defineProperty(exports, "Sub", {
86
+ Object.defineProperty(exports, "Lecture", {
85
87
  enumerable: true,
86
88
  get: function get() {
87
- return _ameli.Sub;
89
+ return _dosleg.Lecture;
88
90
  }
89
91
  });
90
- Object.defineProperty(exports, "TxtAmeli", {
92
+ Object.defineProperty(exports, "Loi", {
91
93
  enumerable: true,
92
94
  get: function get() {
93
- return _ameli.TxtAmeli;
95
+ return _dosleg.Loi;
94
96
  }
95
97
  });
96
- Object.defineProperty(exports, "Debat", {
98
+ Object.defineProperty(exports, "Org", {
97
99
  enumerable: true,
98
100
  get: function get() {
99
- return _debats.Debat;
101
+ return _dosleg.Org;
100
102
  }
101
103
  });
102
- Object.defineProperty(exports, "LecAssDeb", {
104
+ Object.defineProperty(exports, "OriTxt", {
103
105
  enumerable: true,
104
106
  get: function get() {
105
- return _debats.LecAssDeb;
107
+ return _dosleg.OriTxt;
106
108
  }
107
109
  });
108
- Object.defineProperty(exports, "Ass", {
110
+ Object.defineProperty(exports, "OutputData", {
109
111
  enumerable: true,
110
112
  get: function get() {
111
- return _dosleg.Ass;
113
+ return _inserters.OutputData;
112
114
  }
113
115
  });
114
- Object.defineProperty(exports, "Aud", {
116
+ Object.defineProperty(exports, "Photo", {
115
117
  enumerable: true,
116
118
  get: function get() {
117
- return _dosleg.Aud;
119
+ return _sens.Photo;
118
120
  }
119
121
  });
120
- Object.defineProperty(exports, "Auteur", {
122
+ Object.defineProperty(exports, "Qua", {
121
123
  enumerable: true,
122
124
  get: function get() {
123
- return _dosleg.Auteur;
125
+ return _dosleg.Qua;
124
126
  }
125
127
  });
126
- Object.defineProperty(exports, "DateSeance", {
128
+ Object.defineProperty(exports, "Rap", {
127
129
  enumerable: true,
128
130
  get: function get() {
129
- return _dosleg.DateSeance;
131
+ return _dosleg.Rap;
130
132
  }
131
133
  });
132
- Object.defineProperty(exports, "DecCoc", {
134
+ Object.defineProperty(exports, "RapOrg", {
133
135
  enumerable: true,
134
136
  get: function get() {
135
- return _dosleg.DecCoc;
137
+ return _dosleg.RapOrg;
136
138
  }
137
139
  });
138
- Object.defineProperty(exports, "DenRap", {
140
+ Object.defineProperty(exports, "Scr", {
139
141
  enumerable: true,
140
142
  get: function get() {
141
- return _dosleg.DenRap;
143
+ return _dosleg.Scr;
142
144
  }
143
145
  });
144
- Object.defineProperty(exports, "DocAtt", {
146
+ Object.defineProperty(exports, "Sen", {
145
147
  enumerable: true,
146
148
  get: function get() {
147
- return _dosleg.DocAtt;
149
+ return _sens.Sen;
148
150
  }
149
151
  });
150
- Object.defineProperty(exports, "Ecr", {
152
+ Object.defineProperty(exports, "Ses", {
151
153
  enumerable: true,
152
154
  get: function get() {
153
- return _dosleg.Ecr;
155
+ return _ameli.Ses;
154
156
  }
155
157
  });
156
- Object.defineProperty(exports, "EtaLoi", {
158
+ Object.defineProperty(exports, "Sub", {
157
159
  enumerable: true,
158
160
  get: function get() {
159
- return _dosleg.EtaLoi;
161
+ return _ameli.Sub;
160
162
  }
161
163
  });
162
- Object.defineProperty(exports, "LecAss", {
164
+ Object.defineProperty(exports, "Texte", {
163
165
  enumerable: true,
164
166
  get: function get() {
165
- return _dosleg.LecAss;
167
+ return _dosleg.Texte;
166
168
  }
167
169
  });
168
- Object.defineProperty(exports, "LecAssRap", {
170
+ Object.defineProperty(exports, "TxtAmeli", {
169
171
  enumerable: true,
170
172
  get: function get() {
171
- return _dosleg.LecAssRap;
173
+ return _ameli.TxtAmeli;
172
174
  }
173
175
  });
174
- Object.defineProperty(exports, "Lecture", {
176
+ Object.defineProperty(exports, "TypAtt", {
175
177
  enumerable: true,
176
178
  get: function get() {
177
- return _dosleg.Lecture;
179
+ return _dosleg.TypAtt;
178
180
  }
179
181
  });
180
- Object.defineProperty(exports, "Loi", {
182
+ Object.defineProperty(exports, "TypLec", {
181
183
  enumerable: true,
182
184
  get: function get() {
183
- return _dosleg.Loi;
185
+ return _dosleg.TypLec;
184
186
  }
185
187
  });
186
- Object.defineProperty(exports, "Org", {
188
+ Object.defineProperty(exports, "TypLoi", {
187
189
  enumerable: true,
188
190
  get: function get() {
189
- return _dosleg.Org;
191
+ return _dosleg.TypLoi;
190
192
  }
191
193
  });
192
- Object.defineProperty(exports, "OriTxt", {
194
+ Object.defineProperty(exports, "TypTxt", {
193
195
  enumerable: true,
194
196
  get: function get() {
195
- return _dosleg.OriTxt;
197
+ return _dosleg.TypTxt;
196
198
  }
197
199
  });
198
- Object.defineProperty(exports, "Qua", {
200
+ Object.defineProperty(exports, "TypUrl", {
199
201
  enumerable: true,
200
202
  get: function get() {
201
- return _dosleg.Qua;
203
+ return _dosleg.TypUrl;
202
204
  }
203
205
  });
204
- Object.defineProperty(exports, "Rap", {
206
+ Object.defineProperty(exports, "insertAudReferences", {
205
207
  enumerable: true,
206
208
  get: function get() {
207
- return _dosleg.Rap;
209
+ return _inserters.insertAudReferences;
208
210
  }
209
211
  });
210
- Object.defineProperty(exports, "RapOrg", {
212
+ Object.defineProperty(exports, "insertAuteurReferences", {
211
213
  enumerable: true,
212
214
  get: function get() {
213
- return _dosleg.RapOrg;
215
+ return _inserters.insertAuteurReferences;
214
216
  }
215
217
  });
216
- Object.defineProperty(exports, "Scr", {
218
+ Object.defineProperty(exports, "insertDateSeanceReferences", {
217
219
  enumerable: true,
218
220
  get: function get() {
219
- return _dosleg.Scr;
221
+ return _inserters.insertDateSeanceReferences;
220
222
  }
221
223
  });
222
- Object.defineProperty(exports, "Texte", {
224
+ Object.defineProperty(exports, "insertDocAttReferences", {
223
225
  enumerable: true,
224
226
  get: function get() {
225
- return _dosleg.Texte;
227
+ return _inserters.insertDocAttReferences;
226
228
  }
227
229
  });
228
- Object.defineProperty(exports, "TypAtt", {
230
+ Object.defineProperty(exports, "insertEcrReferences", {
229
231
  enumerable: true,
230
232
  get: function get() {
231
- return _dosleg.TypAtt;
233
+ return _inserters.insertEcrReferences;
232
234
  }
233
235
  });
234
- Object.defineProperty(exports, "TypLec", {
236
+ Object.defineProperty(exports, "insertLecassReferences", {
235
237
  enumerable: true,
236
238
  get: function get() {
237
- return _dosleg.TypLec;
239
+ return _inserters.insertLecassReferences;
238
240
  }
239
241
  });
240
- Object.defineProperty(exports, "TypLoi", {
242
+ Object.defineProperty(exports, "insertLecassrapReferences", {
241
243
  enumerable: true,
242
244
  get: function get() {
243
- return _dosleg.TypLoi;
245
+ return _inserters.insertLecassrapReferences;
244
246
  }
245
247
  });
246
- Object.defineProperty(exports, "TypTxt", {
248
+ Object.defineProperty(exports, "insertLectureReferences", {
247
249
  enumerable: true,
248
250
  get: function get() {
249
- return _dosleg.TypTxt;
251
+ return _inserters.insertLectureReferences;
250
252
  }
251
253
  });
252
- Object.defineProperty(exports, "TypUrl", {
254
+ Object.defineProperty(exports, "insertLoiReferences", {
253
255
  enumerable: true,
254
256
  get: function get() {
255
- return _dosleg.TypUrl;
257
+ return _inserters.insertLoiReferences;
256
258
  }
257
259
  });
258
- Object.defineProperty(exports, "Photo", {
260
+ Object.defineProperty(exports, "insertRapReferences", {
259
261
  enumerable: true,
260
262
  get: function get() {
261
- return _sens.Photo;
263
+ return _inserters.insertRapReferences;
262
264
  }
263
265
  });
264
- Object.defineProperty(exports, "Sen", {
266
+ Object.defineProperty(exports, "insertTexteReferences", {
265
267
  enumerable: true,
266
268
  get: function get() {
267
- return _sens.Sen;
269
+ return _inserters.insertTexteReferences;
268
270
  }
269
271
  });
270
272
 
@@ -277,4 +279,4 @@ var _debats = require("./types/debats");
277
279
  var _dosleg = require("./types/dosleg");
278
280
 
279
281
  var _sens = require("./types/sens");
280
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFjQTs7QUFDQTs7QUFDQTs7QUEyQkEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBpbnNlcnRBdWRSZWZlcmVuY2VzLFxuICBpbnNlcnREYXRlU2VhbmNlUmVmZXJlbmNlcyxcbiAgaW5zZXJ0QXV0ZXVyUmVmZXJlbmNlcyxcbiAgaW5zZXJ0RG9jQXR0UmVmZXJlbmNlcyxcbiAgaW5zZXJ0RWNyUmVmZXJlbmNlcyxcbiAgaW5zZXJ0TGVjYXNzUmVmZXJlbmNlcyxcbiAgaW5zZXJ0TGVjYXNzcmFwUmVmZXJlbmNlcyxcbiAgaW5zZXJ0TGVjdHVyZVJlZmVyZW5jZXMsXG4gIGluc2VydExvaVJlZmVyZW5jZXMsXG4gIGluc2VydFJhcFJlZmVyZW5jZXMsXG4gIGluc2VydFRleHRlUmVmZXJlbmNlcyxcbiAgT3V0cHV0RGF0YSxcbn0gZnJvbSBcIi4vaW5zZXJ0ZXJzXCJcbmV4cG9ydCB7IFNlcywgU3ViLCBUeHRBbWVsaSB9IGZyb20gXCIuL3R5cGVzL2FtZWxpXCJcbmV4cG9ydCB7IERlYmF0LCBMZWNBc3NEZWIgfSBmcm9tIFwiLi90eXBlcy9kZWJhdHNcIlxuZXhwb3J0IHtcbiAgQXNzLFxuICBBdWQsXG4gIEF1dGV1cixcbiAgRGF0ZVNlYW5jZSxcbiAgRGVjQ29jLFxuICBEZW5SYXAsXG4gIERvY0F0dCxcbiAgRWNyLFxuICBFdGFMb2ksXG4gIExlY0FzcyxcbiAgTGVjQXNzUmFwLFxuICBMZWN0dXJlLFxuICBMb2ksXG4gIE9yZyxcbiAgT3JpVHh0LFxuICBRdWEsXG4gIFJhcCxcbiAgUmFwT3JnLFxuICBTY3IsXG4gIFRleHRlLFxuICBUeXBBdHQsXG4gIFR5cExlYyxcbiAgVHlwTG9pLFxuICBUeXBUeHQsXG4gIFR5cFVybCxcbn0gZnJvbSBcIi4vdHlwZXMvZG9zbGVnXCJcbmV4cG9ydCB7IFBob3RvLCBTZW4gfSBmcm9tIFwiLi90eXBlcy9zZW5zXCJcbiJdfQ==
282
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGluc2VydEF1ZFJlZmVyZW5jZXMsXG4gIGluc2VydERhdGVTZWFuY2VSZWZlcmVuY2VzLFxuICBpbnNlcnRBdXRldXJSZWZlcmVuY2VzLFxuICBpbnNlcnREb2NBdHRSZWZlcmVuY2VzLFxuICBpbnNlcnRFY3JSZWZlcmVuY2VzLFxuICBpbnNlcnRMZWNhc3NSZWZlcmVuY2VzLFxuICBpbnNlcnRMZWNhc3NyYXBSZWZlcmVuY2VzLFxuICBpbnNlcnRMZWN0dXJlUmVmZXJlbmNlcyxcbiAgaW5zZXJ0TG9pUmVmZXJlbmNlcyxcbiAgaW5zZXJ0UmFwUmVmZXJlbmNlcyxcbiAgaW5zZXJ0VGV4dGVSZWZlcmVuY2VzLFxuICBPdXRwdXREYXRhLFxufSBmcm9tIFwiLi9pbnNlcnRlcnNcIlxuZXhwb3J0IHsgU2VzLCBTdWIsIFR4dEFtZWxpIH0gZnJvbSBcIi4vdHlwZXMvYW1lbGlcIlxuZXhwb3J0IHsgRGViYXQsIExlY0Fzc0RlYiB9IGZyb20gXCIuL3R5cGVzL2RlYmF0c1wiXG5leHBvcnQge1xuICBBc3MsXG4gIEF1ZCxcbiAgQXV0ZXVyLFxuICBEYXRlU2VhbmNlLFxuICBEZWNDb2MsXG4gIERlblJhcCxcbiAgRG9jQXR0LFxuICBFY3IsXG4gIEV0YUxvaSxcbiAgTGVjQXNzLFxuICBMZWNBc3NSYXAsXG4gIExlY3R1cmUsXG4gIExvaSxcbiAgT3JnLFxuICBPcmlUeHQsXG4gIFF1YSxcbiAgUmFwLFxuICBSYXBPcmcsXG4gIFNjcixcbiAgVGV4dGUsXG4gIFR5cEF0dCxcbiAgVHlwTGVjLFxuICBUeXBMb2ksXG4gIFR5cFR4dCxcbiAgVHlwVXJsLFxufSBmcm9tIFwiLi90eXBlcy9kb3NsZWdcIlxuZXhwb3J0IHsgUGhvdG8sIFNlbiB9IGZyb20gXCIuL3R5cGVzL3NlbnNcIlxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQWNBOztBQUNBOztBQUNBOztBQTJCQSJ9
package/lib/inserters.js CHANGED
@@ -1,20 +1,22 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/es.array.concat.js");
3
+ require("core-js/modules/es.array.slice.js");
4
4
 
5
- require("core-js/modules/es.array.iterator.js");
5
+ require("core-js/modules/es.function.name.js");
6
6
 
7
- require("core-js/modules/es.date.to-iso-string.js");
7
+ require("core-js/modules/es.array.from.js");
8
8
 
9
- require("core-js/modules/es.date.to-string.js");
9
+ require("core-js/modules/es.regexp.exec.js");
10
10
 
11
- require("core-js/modules/es.object.to-string.js");
11
+ require("core-js/modules/es.symbol.js");
12
12
 
13
- require("core-js/modules/es.set.js");
13
+ require("core-js/modules/es.symbol.description.js");
14
14
 
15
- require("core-js/modules/es.string.iterator.js");
15
+ require("core-js/modules/es.symbol.iterator.js");
16
16
 
17
- require("core-js/modules/web.dom-collections.iterator.js");
17
+ require("core-js/modules/es.array.is-array.js");
18
+
19
+ require("core-js/modules/es.object.define-property.js");
18
20
 
19
21
  Object.defineProperty(exports, "__esModule", {
20
22
  value: true
@@ -24,14 +26,30 @@ exports.insertAuteurReferences = insertAuteurReferences;
24
26
  exports.insertDateSeanceReferences = insertDateSeanceReferences;
25
27
  exports.insertDocAttReferences = insertDocAttReferences;
26
28
  exports.insertEcrReferences = insertEcrReferences;
27
- exports.insertLecassrapReferences = insertLecassrapReferences;
28
29
  exports.insertLecassReferences = insertLecassReferences;
30
+ exports.insertLecassrapReferences = insertLecassrapReferences;
29
31
  exports.insertLectureReferences = insertLectureReferences;
30
32
  exports.insertLoiReferences = insertLoiReferences;
31
33
  exports.insertRapReferences = insertRapReferences;
32
34
  exports.insertTexteReferences = insertTexteReferences;
33
35
 
34
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
36
+ require("core-js/modules/es.array.iterator.js");
37
+
38
+ require("core-js/modules/es.object.to-string.js");
39
+
40
+ require("core-js/modules/es.set.js");
41
+
42
+ require("core-js/modules/es.string.iterator.js");
43
+
44
+ require("core-js/modules/web.dom-collections.iterator.js");
45
+
46
+ require("core-js/modules/es.date.to-string.js");
47
+
48
+ require("core-js/modules/es.date.to-iso-string.js");
49
+
50
+ require("core-js/modules/es.array.concat.js");
51
+
52
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
35
53
 
36
54
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
37
55
 
@@ -602,4 +620,4 @@ function insertTexteReferences(texte, data, visitedIdsByTableName) {
602
620
 
603
621
  return texte;
604
622
  }
605
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnNlcnRlcnMudHMiXSwibmFtZXMiOlsiaW5zZXJ0QXVkUmVmZXJlbmNlcyIsImF1ZCIsImRhdGEiLCJ2aXNpdGVkSWRzQnlUYWJsZU5hbWUiLCJ2aXNpdGVkSWRzIiwidW5kZWZpbmVkIiwiU2V0IiwiaGFzIiwiYXVkY2xlIiwiYWRkIiwib3JnY29kIiwib3JnIiwiaW5zZXJ0QXV0ZXVyUmVmZXJlbmNlcyIsImF1dGV1ciIsImF1dGNvZCIsInF1YSIsInF1YWNvZCIsImluc2VydERhdGVTZWFuY2VSZWZlcmVuY2VzIiwiZGF0ZVNlYW5jZSIsImRhdGVfc2VhbmNlIiwiY29kZSIsImRhdGVfcyIsImRlYmF0cyIsImRhdGVTdHJpbmciLCJEYXRlIiwidG9JU09TdHJpbmciLCJkZWJhdCIsInNjcnMiLCJzY3JpZHMiLCJzY3IiLCJzY3JpZCIsInB1c2giLCJpbnNlcnREb2NBdHRSZWZlcmVuY2VzIiwiZG9jYXR0IiwiZG9jYXR0Y2xlIiwicmFwY29kIiwicmFwIiwiaW5zZXJ0UmFwUmVmZXJlbmNlcyIsInR5cGF0dGNvZCIsInR5cGF0dCIsImluc2VydEVjclJlZmVyZW5jZXMiLCJlY3IiLCJlY3JudW0iLCJhdXQiLCJpbnNlcnRMZWNhc3NyYXBSZWZlcmVuY2VzIiwibGVjYXNzcmFwIiwibGVjYXNyYXBpZCIsImxlY2Fzc2lkdCIsImluc2VydExlY2Fzc1JlZmVyZW5jZXMiLCJsZWNhc3MiLCJjb2Rhc3MiLCJhc3MiLCJhdWRzIiwiYXVkY2xlcyIsImRhdGVzU2VhbmNlcyIsImRhdGVzU2VhbmNlc0NvZGVzIiwiZGF0ZVNlYW5jZUNvZGUiLCJsZWNhc3NyYXBzIiwibGVjYXNzcmFwaWRzIiwibGVjYXNzcmFwaWQiLCJ0ZXh0ZXMiLCJ0ZXhjb2RzIiwidGV4dGUiLCJ0ZXhjb2QiLCJpbnNlcnRUZXh0ZVJlZmVyZW5jZXMiLCJpbnNlcnRMZWN0dXJlUmVmZXJlbmNlcyIsImxlY3R1cmUiLCJsZWNpZHQiLCJ0eXBsZWNjb2QiLCJ0eXBsZWMiLCJsZWNhc3NzIiwibGVjYXNzaWR0cyIsImluc2VydExvaVJlZmVyZW5jZXMiLCJsb2kiLCJsb2ljb2QiLCJ0eXBsb2ljb2QiLCJ0eXBsb2kiLCJldGFsb2ljb2QiLCJldGFsb2kiLCJkZWNjb2Njb2QiLCJkZWNjb2MiLCJsZWN0dXJlcyIsImxlY2lkdHMiLCJjb2RkZW5yYXAiLCJkZW5yYXAiLCJkb2NhdHRzIiwiZG9jYXR0Y2xlcyIsImVjcnMiLCJlY3JudW1zIiwib3JncyIsIm9yZ2NvZHMiLCJvcml0eHRjb2QiLCJvcml0eHQiLCJ0eHRBbWVsaUlkIiwidHh0X2FtZWxpIiwidHh0QW1lbGkiLCJ0eXB0eHRjb2QiLCJ0eXB0eHQiLCJ0eXB1cmwiLCJsaWJ0eXB1cmwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTRETyxTQUFTQSxtQkFBVCxDQUNMQyxHQURLLEVBRUxDLElBRkssRUFHTEMscUJBSEssRUFJTDtBQUNBLE1BQUlDLFVBQVUsR0FBR0QscUJBQXFCLENBQUNGLEdBQXZDOztBQUNBLE1BQUlHLFVBQVUsS0FBS0MsU0FBbkIsRUFBOEI7QUFDNUJELElBQUFBLFVBQVUsR0FBR0QscUJBQXFCLENBQUNGLEdBQXRCLEdBQTRCLElBQUlLLEdBQUosRUFBekM7QUFDRDs7QUFDRCxNQUFJLENBQUNGLFVBQVUsQ0FBQ0csR0FBWCxDQUFlTixHQUFHLENBQUNPLE1BQW5CLENBQUwsRUFBaUM7QUFDL0JKLElBQUFBLFVBQVUsQ0FBQ0ssR0FBWCxDQUFlUixHQUFHLENBQUNPLE1BQW5COztBQUVBLFFBQUlQLEdBQUcsQ0FBQ1MsTUFBSixLQUFlLElBQWYsSUFBdUJSLElBQUksQ0FBQ1MsR0FBTCxLQUFhTixTQUF4QyxFQUFtRDtBQUNqRCxVQUFNTSxHQUFHLEdBQUdULElBQUksQ0FBQ1MsR0FBTCxDQUFTVixHQUFHLENBQUNTLE1BQWIsQ0FBWjs7QUFDQSxVQUFJQyxHQUFHLEtBQUtOLFNBQVosRUFBdUI7QUFDckJKLFFBQUFBLEdBQUcsQ0FBQ1UsR0FB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LEtBQXFCeEYsU0FBckIsSUFBa0NILElBQUksQ0FBQzRGLFNBQUwsS0FBbUJ6RixTQUF6RCxFQUFvRTtBQUNsRSxVQUFNMEYsUUFBUSxHQUFHN0YsSUFBSSxDQUFDNEYsU0FBTCxDQUFlaEMsS0FBSyxDQUFDK0IsVUFBckIsQ0FBakI7O0FBQ0EsVUFBSUUsUUFBUSxLQUFLMUYsU0FBakIsRUFBNEI7QUFDMUJ5RCxRQUFBQSxLQUFLLENBQUNpQyxRQUFOLEdBQWlCQSxRQUFqQjtBQUNEO0FBQ0Y7O0FBRUQsUUFBSWpDLEtBQUssQ0FBQ2tDLFNBQU4sS0FBb0IsSUFBcEIsSUFBNEI5RixJQUFJLENBQUMrRixNQUFMLEtBQWdCNUYsU0FBaEQsRUFBMkQ7QUFDekQsVUFBTTRGLE1BQU0sR0FBRy9GLElBQUksQ0FBQytGLE1BQUwsQ0FBWW5DLEtBQUssQ0FBQ2tDLFNBQWxCLENBQWY7O0FBQ0EsVUFBSUMsTUFBTSxLQUFLNUYsU0FBZixFQUEwQjtBQUN4QnlELFFBQUFBLEtBQUssQ0FBQ21DLE1BQU4sR0FBZUEsTUFBZixDQUR3QixDQUV4QjtBQUNEO0FBQ0Y7O0FBRUQsUUFBSW5DLEtBQUssQ0FBQ29DLE1BQU4sS0FBaUIsSUFBakIsSUFBeUJoRyxJQUFJLENBQUNnRyxNQUFMLEtBQWdCN0YsU0FBN0MsRUFBd0Q7QUFDdEQsVUFBTTZGLE1BQU0sR0FBR2hHLElBQUksQ0FBQ2dHLE1BQUwsQ0FBWXBDLEtBQUssQ0FBQ29DLE1BQWxCLENBQWY7O0FBQ0EsVUFBSUEsTUFBTSxLQUFLN0YsU0FBZixFQUEwQjtBQUN4QnlELFFBQUFBLEtBQUssQ0FBQ3FDLFNBQU4sR0FBa0JELE1BQU0sQ0FBQ0MsU0FBekIsQ0FEd0IsQ0FFeEI7QUFDRDtBQUNGLEtBbkRnQyxDQXFEakM7O0FBQ0Q7O0FBRUQsU0FBT3JDLEtBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR4dEFtZWxpIH0gZnJvbSBcIi4vdHlwZXMvYW1lbGlcIlxuaW1wb3J0IHsgRGViYXQgfSBmcm9tIFwiLi90eXBlcy9kZWJhdHNcIlxuaW1wb3J0IHtcbiAgQXNzLFxuICBBdWQsXG4gIEF1dGV1cixcbiAgRGF0ZVNlYW5jZSxcbiAgRGVjQ29jLFxuICBEZW5SYXAsXG4gIERvY0F0dCxcbiAgRWNyLFxuICBFdGFMb2ksXG4gIExlY0FzcyxcbiAgTGVjQXNzUmFwLFxuICBMZWN0dXJlLFxuICBMb2ksXG4gIE9yZyxcbiAgT3JpVHh0LFxuICBRdWEsXG4gIFJhcCxcbiAgU2NyLFxuICBUZXh0ZSxcbiAgVHlwQXR0LFxuICBUeXBMZWMsXG4gIFR5cExvaSxcbiAgVHlwVHh0LFxuICBUeXBVcmwsXG59IGZyb20gXCIuL3R5cGVzL2Rvc2xlZ1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0RGF0YSB7XG4gIHJlYWRvbmx5IGFzcz86IHsgW2lkOiBzdHJpbmddOiBBc3MgfVxuICByZWFkb25seSBhdWQ/OiB7IFtpZDogc3RyaW5nXTogQXVkIH1cbiAgcmVhZG9ubHkgYXV0ZXVyPzogeyBbaWQ6IHN0cmluZ106IEF1dGV1ciB9XG4gIHJlYWRvbmx5IGRhdGVfc2VhbmNlPzogeyBbaWQ6IHN0cmluZ106IERhdGVTZWFuY2UgfVxuICByZWFkb25seSBkZWJhdHM/OiB7IFtpZDogc3RyaW5nXTogRGViYXQgfVxuICByZWFkb25seSBkZWNjb2M/OiB7IFtpZDogc3RyaW5nXTogRGVjQ29jIH1cbiAgcmVhZG9ubHkgZGVucmFwPzogeyBbaWQ6IHN0cmluZ106IERlblJhcCB9XG4gIHJlYWRvbmx5IGRvY2F0dD86IHsgW2lkOiBzdHJpbmddOiBEb2NBdHQgfVxuICByZWFkb25seSBlY3I/OiB7IFtpZDogc3RyaW5nXTogRWNyIH1cbiAgcmVhZG9ubHkgZXRhbG9pPzogeyBbaWQ6IHN0cmluZ106IEV0YUxvaSB9XG4gIHJlYWRvbmx5IGxlY2Fzcz86IHsgW2lkOiBzdHJpbmddOiBMZWNBc3MgfVxuICByZWFkb25seSBsZWNhc3NyYXA/OiB7IFtpZDogc3RyaW5nXTogTGVjQXNzUmFwIH1cbiAgcmVhZG9ubHkgbGVjdHVyZT86IHsgW2lkOiBzdHJpbmddOiBMZWN0dXJlIH1cbiAgcmVhZG9ubHkgbG9pPzogeyBbaWQ6IHN0cmluZ106IExvaSB9XG4gIHJlYWRvbmx5IG9yZz86IHsgW2lkOiBzdHJpbmddOiBPcmcgfVxuICByZWFkb25seSBvcml0eHQ/OiB7IFtpZDogc3RyaW5nXTogT3JpVHh0IH1cbiAgcmVhZG9ubHkgcXVhPzogeyBbaWQ6IHN0cmluZ106IFF1YSB9XG4gIHJlYWRvbmx5IHJhcD86IHsgW2lkOiBzdHJpbmddOiBSYXAgfVxuICByZWFkb25seSBzY3I/OiB7IFtpZDogc3RyaW5nXTogU2NyIH1cbiAgcmVhZG9ubHkgdGV4dGU/OiB7IFtpZDogc3RyaW5nXTogVGV4dGUgfVxuICByZWFkb25seSB0eXBhdHQ/OiB7IFtpZDogc3RyaW5nXTogVHlwQXR0IH1cbiAgcmVhZG9ubHkgdHlwbGVjPzogeyBbaWQ6IHN0cmluZ106IFR5cExlYyB9XG4gIHJlYWRvbmx5IHR5cGxvaT86IHsgW2lkOiBzdHJpbmddOiBUeXBMb2kgfVxuICByZWFkb25seSB0eXB0eHQ/OiB7IFtpZDogc3RyaW5nXTogVHlwVHh0IH1cbiAgcmVhZG9ubHkgdHlwdXJsPzogeyBbaWQ6IHN0cmluZ106IFR5cFVybCB9XG4gIHJlYWRvbmx5IHR4dF9hbWVsaT86IHsgW2lkOiBzdHJpbmddOiBUeHRBbWVsaSB9XG59XG5cbnR5cGUgVmlzaXRlZElkc0J5VGFibGVOYW1lID0geyBbdGFibGVOYW1lOiBzdHJpbmddOiBTZXQ8bnVtYmVyIHwgc3RyaW5nPiB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRBdWRSZWZlcmVuY2VzKFxuICBhdWQ6IEF1ZCxcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZElkc0J5VGFibGVOYW1lOiBWaXNpdGVkSWRzQnlUYWJsZU5hbWUsXG4pIHtcbiAgbGV0IHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUuYXVkXG4gIGlmICh2aXNpdGVkSWRzID09PSB1bmRlZmluZWQpIHtcbiAgICB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLmF1ZCA9IG5ldyBTZXQoKVxuICB9XG4gIGlmICghdmlzaXRlZElkcy5oYXMoYXVkLmF1ZGNsZSkpIHtcbiAgICB2aXNpdGVkSWRzLmFkZChhdWQuYXVkY2xlKVxuXG4gICAgaWYgKGF1ZC5vcmdjb2QgIT09IG51bGwgJiYgZGF0YS5vcmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qgb3JnID0gZGF0YS5vcmdbYXVkLm9yZ2NvZF1cbiAgICAgIGlmIChvcmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhdWQub3JnID0gb3JnXG4gICAgICAgIC8vIGluc2VydE9yZ1JlZmVyZW5jZXMob3JnLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ET1xuICB9XG5cbiAgcmV0dXJuIGF1ZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0QXV0ZXVyUmVmZXJlbmNlcyhcbiAgYXV0ZXVyOiBBdXRldXIsXG4gIGRhdGE6IE91dHB1dERhdGEsXG4gIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZTogVmlzaXRlZElkc0J5VGFibGVOYW1lLFxuKSB7XG4gIGxldCB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLmF1dGV1clxuICBpZiAodmlzaXRlZElkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdmlzaXRlZElkcyA9IHZpc2l0ZWRJZHNCeVRhYmxlTmFtZS5hdXRldXIgPSBuZXcgU2V0KClcbiAgfVxuICBpZiAoIXZpc2l0ZWRJZHMuaGFzKGF1dGV1ci5hdXRjb2QpKSB7XG4gICAgdmlzaXRlZElkcy5hZGQoYXV0ZXVyLmF1dGNvZClcblxuICAgIGlmIChkYXRhLnF1YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBxdWEgPSBkYXRhLnF1YVthdXRldXIucXVhY29kXVxuICAgICAgaWYgKHF1YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGF1dGV1ci5xdWEgPSBxdWFcbiAgICAgICAgLy8gaW5zZXJ0UXVhUmVmZXJlbmNlcyhxdWEsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPXG4gIH1cblxuICByZXR1cm4gYXV0ZXVyXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnREYXRlU2VhbmNlUmVmZXJlbmNlcyhcbiAgZGF0ZVNlYW5jZTogRGF0ZVNlYW5jZSxcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZElkc0J5VGFibGVOYW1lOiBWaXNpdGVkSWRzQnlUYWJsZU5hbWUsXG4pIHtcbiAgbGV0IHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUuZGF0ZV9zZWFuY2VcbiAgaWYgKHZpc2l0ZWRJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUuZGF0ZV9zZWFuY2UgPSBuZXcgU2V0KClcbiAgfVxuICBpZiAoIXZpc2l0ZWRJZHMuaGFzKGRhdGVTZWFuY2UuY29kZSkpIHtcbiAgICB2aXNpdGVkSWRzLmFkZChkYXRlU2VhbmNlLmNvZGUpXG5cbiAgICBpZiAoZGF0ZVNlYW5jZS5kYXRlX3MgIT09IG51bGwgJiYgZGF0YS5kZWJhdHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZGF0ZVN0cmluZyA9XG4gICAgICAgIGRhdGVTZWFuY2UuZGF0ZV9zIGluc3RhbmNlb2YgRGF0ZVxuICAgICAgICAgID8gZGF0ZVNlYW5jZS5kYXRlX3MudG9JU09TdHJpbmcoKVxuICAgICAgICAgIDogZGF0ZVNlYW5jZS5kYXRlX3NcbiAgICAgIGNvbnN0IGRlYmF0ID0gZGF0YS5kZWJhdHNbZGF0ZVN0cmluZ11cbiAgICAgIGlmIChkZWJhdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRhdGVTZWFuY2UuZGViYXQgPSBkZWJhdFxuICAgICAgICAvLyBpbnNlcnREZWJhdFJlZmVyZW5jZXMoZGViYXQsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkYXRlU2VhbmNlLnNjcnMgPSBbXVxuICAgIGlmIChkYXRlU2VhbmNlLnNjcmlkcyAhPT0gdW5kZWZpbmVkICYmIGRhdGEuc2NyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3Qgc2NyaWQgb2YgZGF0ZVNlYW5jZS5zY3JpZHMpIHtcbiAgICAgICAgY29uc3Qgc2NyID0gZGF0YS5zY3Jbc2NyaWRdXG4gICAgICAgIGlmIChzY3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGRhdGVTZWFuY2Uuc2Nycy5wdXNoKHNjcilcbiAgICAgICAgICAvLyBpbnNlcnRTY3JSZWZlcmVuY2VzKHNjciwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGVTZWFuY2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydERvY0F0dFJlZmVyZW5jZXMoXG4gIGRvY2F0dDogRG9jQXR0LFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkSWRzQnlUYWJsZU5hbWU6IFZpc2l0ZWRJZHNCeVRhYmxlTmFtZSxcbikge1xuICBsZXQgdmlzaXRlZElkcyA9IHZpc2l0ZWRJZHNCeVRhYmxlTmFtZS5kb2NhdHRcbiAgaWYgKHZpc2l0ZWRJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUuZG9jYXR0ID0gbmV3IFNldCgpXG4gIH1cbiAgaWYgKCF2aXNpdGVkSWRzLmhhcyhkb2NhdHQuZG9jYXR0Y2xlKSkge1xuICAgIHZpc2l0ZWRJZHMuYWRkKGRvY2F0dC5kb2NhdHRjbGUpXG5cbiAgICBpZiAoZG9jYXR0LnJhcGNvZCAhPT0gbnVsbCAmJiBkYXRhLnJhcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCByYXAgPSBkYXRhLnJhcFtkb2NhdHQucmFwY29kXVxuICAgICAgaWYgKHJhcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRvY2F0dC5yYXAgPSByYXBcbiAgICAgICAgaW5zZXJ0UmFwUmVmZXJlbmNlcyhyYXAsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZG9jYXR0LnR5cGF0dGNvZCAhPT0gbnVsbCAmJiBkYXRhLnR5cGF0dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB0eXBhdHQgPSBkYXRhLnR5cGF0dFtkb2NhdHQudHlwYXR0Y29kXVxuICAgICAgaWYgKHR5cGF0dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRvY2F0dC50eXBhdHQgPSB0eXBhdHRcbiAgICAgICAgLy8gaW5zZXJ0VHlwQXR0UmVmZXJlbmNlcyh0eXBhdHQsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZG9jYXR0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRFY3JSZWZlcmVuY2VzKFxuICBlY3I6IEVjcixcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZElkc0J5VGFibGVOYW1lOiBWaXNpdGVkSWRzQnlUYWJsZU5hbWUsXG4pIHtcbiAgbGV0IHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUuZWNyXG4gIGlmICh2aXNpdGVkSWRzID09PSB1bmRlZmluZWQpIHtcbiAgICB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLmVjciA9IG5ldyBTZXQoKVxuICB9XG4gIGlmICghdmlzaXRlZElkcy5oYXMoZWNyLmVjcm51bSkpIHtcbiAgICB2aXNpdGVkSWRzLmFkZChlY3IuZWNybnVtKVxuXG4gICAgaWYgKGVjci5hdXRjb2QgIT09IG51bGwgJiYgZGF0YS5hdXRldXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgYXV0ID0gZGF0YS5hdXRldXJbZWNyLmF1dGNvZF1cbiAgICAgIGlmIChhdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlY3IuYXV0ID0gYXV0XG4gICAgICAgIGluc2VydEF1dGV1clJlZmVyZW5jZXMoYXV0LCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ET1xuICB9XG5cbiAgcmV0dXJuIGVjclxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0TGVjYXNzcmFwUmVmZXJlbmNlcyhcbiAgbGVjYXNzcmFwOiBMZWNBc3NSYXAsXG4gIGRhdGE6IE91dHB1dERhdGEsXG4gIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZTogVmlzaXRlZElkc0J5VGFibGVOYW1lLFxuKSB7XG4gIGxldCB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLmxlY2Fzc3JhcFxuICBpZiAodmlzaXRlZElkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdmlzaXRlZElkcyA9IHZpc2l0ZWRJZHNCeVRhYmxlTmFtZS5sZWNhc3NyYXAgPSBuZXcgU2V0KClcbiAgfVxuICBjb25zdCBsZWNhc3JhcGlkID0gYCR7bGVjYXNzcmFwLmxlY2Fzc2lkdH0gJHtsZWNhc3NyYXAucmFwY29kfWBcbiAgaWYgKCF2aXNpdGVkSWRzLmhhcyhsZWNhc3JhcGlkKSkge1xuICAgIHZpc2l0ZWRJZHMuYWRkKGxlY2FzcmFwaWQpXG5cbiAgICBpZiAobGVjYXNzcmFwLnJhcGNvZCAhPT0gbnVsbCAmJiBkYXRhLnJhcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCByYXAgPSBkYXRhLnJhcFtsZWNhc3NyYXAucmFwY29kXVxuICAgICAgaWYgKHJhcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGxlY2Fzc3JhcC5yYXAgPSByYXBcbiAgICAgICAgaW5zZXJ0UmFwUmVmZXJlbmNlcyhyYXAsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbGVjYXNzcmFwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRMZWNhc3NSZWZlcmVuY2VzKFxuICBsZWNhc3M6IExlY0FzcyxcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZElkc0J5VGFibGVOYW1lOiBWaXNpdGVkSWRzQnlUYWJsZU5hbWUsXG4pIHtcbiAgbGV0IHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUubGVjYXNzXG4gIGlmICh2aXNpdGVkSWRzID09PSB1bmRlZmluZWQpIHtcbiAgICB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLmxlY2FzcyA9IG5ldyBTZXQoKVxuICB9XG4gIGlmICghdmlzaXRlZElkcy5oYXMobGVjYXNzLmxlY2Fzc2lkdCkpIHtcbiAgICB2aXNpdGVkSWRzLmFkZChsZWNhc3MubGVjYXNzaWR0KVxuXG4gICAgaWYgKGxlY2Fzcy5jb2Rhc3MgIT09IG51bGwgJiYgZGF0YS5hc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgYXNzID0gZGF0YS5hc3NbbGVjYXNzLmNvZGFzc11cbiAgICAgIGlmIChhc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsZWNhc3MuYXNzID0gYXNzXG4gICAgICAgIC8vIGluc2VydEFzc1JlZmVyZW5jZXMoYXNzLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGxlY2Fzcy5vcmdjb2QgIT09IG51bGwgJiYgZGF0YS5vcmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qgb3JnID0gZGF0YS5vcmdbbGVjYXNzLm9yZ2NvZF1cbiAgICAgIGlmIChvcmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsZWNhc3Mub3JnID0gb3JnXG4gICAgICAgIC8vIGluc2VydE9yZ1JlZmVyZW5jZXMob3JnLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgbGVjYXNzLmF1ZHMgPSBbXVxuICAgIGlmIChsZWNhc3MuYXVkY2xlcyAhPT0gdW5kZWZpbmVkICYmIGRhdGEuYXVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgYXVkY2xlIG9mIGxlY2Fzcy5hdWRjbGVzKSB7XG4gICAgICAgIGNvbnN0IGF1ZCA9IGRhdGEuYXVkW2F1ZGNsZV1cbiAgICAgICAgaWYgKGF1ZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbGVjYXNzLmF1ZHMucHVzaChhdWQpXG4gICAgICAgICAgaW5zZXJ0QXVkUmVmZXJlbmNlcyhhdWQsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxlY2Fzcy5kYXRlc1NlYW5jZXMgPSBbXVxuICAgIGlmIChsZWNhc3MuZGF0ZXNTZWFuY2VzQ29kZXMgIT09IHVuZGVmaW5lZCAmJiBkYXRhLmRhdGVfc2VhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgZGF0ZVNlYW5jZUNvZGUgb2YgbGVjYXNzLmRhdGVzU2VhbmNlc0NvZGVzKSB7XG4gICAgICAgIGNvbnN0IGRhdGVTZWFuY2UgPSBkYXRhLmRhdGVfc2VhbmNlW2RhdGVTZWFuY2VDb2RlXVxuICAgICAgICBpZiAoZGF0ZVNlYW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbGVjYXNzLmRhdGVzU2VhbmNlcy5wdXNoKGRhdGVTZWFuY2UpXG4gICAgICAgICAgaW5zZXJ0RGF0ZVNlYW5jZVJlZmVyZW5jZXMoZGF0ZVNlYW5jZSwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGVjYXNzLmxlY2Fzc3JhcHMgPSBbXVxuICAgIGlmIChsZWNhc3MubGVjYXNzcmFwaWRzICE9PSB1bmRlZmluZWQgJiYgZGF0YS5sZWNhc3NyYXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBsZWNhc3NyYXBpZCBvZiBsZWNhc3MubGVjYXNzcmFwaWRzKSB7XG4gICAgICAgIGNvbnN0IGxlY2Fzc3JhcCA9IGRhdGEubGVjYXNzcmFwW2xlY2Fzc3JhcGlkXVxuICAgICAgICBpZiAobGVjYXNzcmFwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBsZWNhc3MubGVjYXNzcmFwcy5wdXNoKGxlY2Fzc3JhcClcbiAgICAgICAgICBpbnNlcnRMZWNhc3NyYXBSZWZlcmVuY2VzKGxlY2Fzc3JhcCwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGVjYXNzLnRleHRlcyA9IFtdXG4gICAgaWYgKGxlY2Fzcy50ZXhjb2RzICE9PSB1bmRlZmluZWQgJiYgZGF0YS50ZXh0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBmb3IgKGNvbnN0IHRleGNvZCBvZiBsZWNhc3MudGV4Y29kcykge1xuICAgICAgICBjb25zdCB0ZXh0ZSA9IGRhdGEudGV4dGVbdGV4Y29kXVxuICAgICAgICBpZiAodGV4dGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGxlY2Fzcy50ZXh0ZXMucHVzaCh0ZXh0ZSlcbiAgICAgICAgICBpbnNlcnRUZXh0ZVJlZmVyZW5jZXModGV4dGUsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsZWNhc3Ncbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExlY3R1cmVSZWZlcmVuY2VzKFxuICBsZWN0dXJlOiBMZWN0dXJlLFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkSWRzQnlUYWJsZU5hbWU6IFZpc2l0ZWRJZHNCeVRhYmxlTmFtZSxcbikge1xuICBsZXQgdmlzaXRlZElkcyA9IHZpc2l0ZWRJZHNCeVRhYmxlTmFtZS5sZWN0dXJlXG4gIGlmICh2aXNpdGVkSWRzID09PSB1bmRlZmluZWQpIHtcbiAgICB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLmxlY3R1cmUgPSBuZXcgU2V0KClcbiAgfVxuICBpZiAoIXZpc2l0ZWRJZHMuaGFzKGxlY3R1cmUubGVjaWR0KSkge1xuICAgIHZpc2l0ZWRJZHMuYWRkKGxlY3R1cmUubGVjaWR0KVxuXG4gICAgaWYgKGxlY3R1cmUudHlwbGVjY29kICE9PSBudWxsICYmIGRhdGEudHlwbGVjICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHR5cGxlYyA9IGRhdGEudHlwbGVjW2xlY3R1cmUudHlwbGVjY29kXVxuICAgICAgaWYgKHR5cGxlYyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGxlY3R1cmUudHlwbGVjID0gdHlwbGVjXG4gICAgICAgIC8vIGluc2VydFR5cGxlY1JlZmVyZW5jZXModHlwbGVjLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgbGVjdHVyZS5sZWNhc3NzID0gW11cbiAgICBpZiAobGVjdHVyZS5sZWNhc3NpZHRzICE9PSB1bmRlZmluZWQgJiYgZGF0YS5sZWNhc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBsZWNhc3NpZHQgb2YgbGVjdHVyZS5sZWNhc3NpZHRzKSB7XG4gICAgICAgIGNvbnN0IGxlY2FzcyA9IGRhdGEubGVjYXNzW2xlY2Fzc2lkdF1cbiAgICAgICAgaWYgKGxlY2FzcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbGVjdHVyZS5sZWNhc3NzLnB1c2gobGVjYXNzKVxuICAgICAgICAgIGluc2VydExlY2Fzc1JlZmVyZW5jZXMobGVjYXNzLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbGVjdHVyZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0TG9pUmVmZXJlbmNlcyhcbiAgbG9pOiBMb2ksXG4gIGRhdGE6IE91dHB1dERhdGEsXG4gIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZTogVmlzaXRlZElkc0J5VGFibGVOYW1lLFxuKSB7XG4gIGxldCB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLmxvaVxuICBpZiAodmlzaXRlZElkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdmlzaXRlZElkcyA9IHZpc2l0ZWRJZHNCeVRhYmxlTmFtZS5sb2kgPSBuZXcgU2V0KClcbiAgfVxuICBpZiAoIXZpc2l0ZWRJZHMuaGFzKGxvaS5sb2ljb2QpKSB7XG4gICAgdmlzaXRlZElkcy5hZGQobG9pLmxvaWNvZClcblxuICAgIGlmIChsb2kudHlwbG9pY29kICE9PSBudWxsICYmIGRhdGEudHlwbG9pICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHR5cGxvaSA9IGRhdGEudHlwbG9pW2xvaS50eXBsb2ljb2RdXG4gICAgICBpZiAodHlwbG9pICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbG9pLnR5cGxvaSA9IHR5cGxvaVxuICAgICAgICAvLyBpbnNlcnRUeXBsb2lSZWZlcmVuY2VzKHR5cGxvaSwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChsb2kuZXRhbG9pY29kICE9PSBudWxsICYmIGRhdGEuZXRhbG9pICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGV0YWxvaSA9IGRhdGEuZXRhbG9pW2xvaS5ldGFsb2ljb2RdXG4gICAgICBpZiAoZXRhbG9pICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbG9pLmV0YWxvaSA9IGV0YWxvaVxuICAgICAgICAvLyBpbnNlcnRFdGFsb2lSZWZlcmVuY2VzKGV0YWxvaSwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChsb2kuZGVjY29jY29kICE9PSBudWxsICYmIGRhdGEuZGVjY29jICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGRlY2NvYyA9IGRhdGEuZGVjY29jW2xvaS5kZWNjb2Njb2RdXG4gICAgICBpZiAoZGVjY29jICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbG9pLmRlY2NvYyA9IGRlY2NvY1xuICAgICAgICAvLyBpbnNlcnREZWNjb2NSZWZlcmVuY2VzKGRlY2NvYywgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgfVxuICAgIH1cblxuICAgIGxvaS5sZWN0dXJlcyA9IFtdXG4gICAgaWYgKGxvaS5sZWNpZHRzICE9PSB1bmRlZmluZWQgJiYgZGF0YS5sZWN0dXJlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgbGVjaWR0IG9mIGxvaS5sZWNpZHRzKSB7XG4gICAgICAgIGNvbnN0IGxlY3R1cmUgPSBkYXRhLmxlY3R1cmVbbGVjaWR0XVxuICAgICAgICBpZiAobGVjdHVyZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbG9pLmxlY3R1cmVzLnB1c2gobGVjdHVyZSlcbiAgICAgICAgICBpbnNlcnRMZWN0dXJlUmVmZXJlbmNlcyhsZWN0dXJlLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRSYXBSZWZlcmVuY2VzKFxuICByYXA6IFJhcCxcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZElkc0J5VGFibGVOYW1lOiBWaXNpdGVkSWRzQnlUYWJsZU5hbWUsXG4pIHtcbiAgbGV0IHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUucmFwXG4gIGlmICh2aXNpdGVkSWRzID09PSB1bmRlZmluZWQpIHtcbiAgICB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLnJhcCA9IG5ldyBTZXQoKVxuICB9XG4gIGlmICghdmlzaXRlZElkcy5oYXMocmFwLnJhcGNvZCkpIHtcbiAgICB2aXNpdGVkSWRzLmFkZChyYXAucmFwY29kKVxuXG4gICAgaWYgKHJhcC5jb2RkZW5yYXAgIT09IG51bGwgJiYgZGF0YS5kZW5yYXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZGVucmFwID0gZGF0YS5kZW5yYXBbcmFwLmNvZGRlbnJhcF1cbiAgICAgIGlmIChkZW5yYXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByYXAuZGVucmFwID0gZGVucmFwXG4gICAgICAgIC8vIGluc2VydERlbnJhcFJlZmVyZW5jZXMoZGVucmFwLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmFwLmRvY2F0dHMgPSBbXVxuICAgIGlmIChyYXAuZG9jYXR0Y2xlcyAhPT0gdW5kZWZpbmVkICYmIGRhdGEuZG9jYXR0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgZG9jYXR0Y2xlIG9mIHJhcC5kb2NhdHRjbGVzKSB7XG4gICAgICAgIGNvbnN0IGRvY2F0dCA9IGRhdGEuZG9jYXR0W2RvY2F0dGNsZV1cbiAgICAgICAgaWYgKGRvY2F0dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmFwLmRvY2F0dHMucHVzaChkb2NhdHQpXG4gICAgICAgICAgaW5zZXJ0RG9jQXR0UmVmZXJlbmNlcyhkb2NhdHQsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJhcC5lY3JzID0gW11cbiAgICBpZiAocmFwLmVjcm51bXMgIT09IHVuZGVmaW5lZCAmJiBkYXRhLmVjciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBmb3IgKGNvbnN0IGVjcm51bSBvZiByYXAuZWNybnVtcykge1xuICAgICAgICBjb25zdCBlY3IgPSBkYXRhLmVjcltlY3JudW1dXG4gICAgICAgIGlmIChlY3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJhcC5lY3JzLnB1c2goZWNyKVxuICAgICAgICAgIGluc2VydEVjclJlZmVyZW5jZXMoZWNyLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByYXAub3JncyA9IFtdXG4gICAgaWYgKHJhcC5vcmdjb2RzICE9PSB1bmRlZmluZWQgJiYgZGF0YS5vcmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBvcmdjb2Qgb2YgcmFwLm9yZ2NvZHMpIHtcbiAgICAgICAgY29uc3Qgb3JnID0gZGF0YS5vcmdbb3JnY29kXVxuICAgICAgICBpZiAob3JnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByYXAub3Jncy5wdXNoKG9yZylcbiAgICAgICAgICAvLyBpbnNlcnRPcmdSZWZlcmVuY2VzKG9yZywgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJhcFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0VGV4dGVSZWZlcmVuY2VzKFxuICB0ZXh0ZTogVGV4dGUsXG4gIGRhdGE6IE91dHB1dERhdGEsXG4gIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZTogVmlzaXRlZElkc0J5VGFibGVOYW1lLFxuKSB7XG4gIGxldCB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLnRleHRlXG4gIGlmICh2aXNpdGVkSWRzID09PSB1bmRlZmluZWQpIHtcbiAgICB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLnRleHRlID0gbmV3IFNldCgpXG4gIH1cbiAgaWYgKCF2aXNpdGVkSWRzLmhhcyh0ZXh0ZS50ZXhjb2QpKSB7XG4gICAgdmlzaXRlZElkcy5hZGQodGV4dGUudGV4Y29kKVxuXG4gICAgdGV4dGUuZWNycyA9IFtdXG4gICAgaWYgKHRleHRlLmVjcm51bXMgIT09IHVuZGVmaW5lZCAmJiBkYXRhLmVjciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBmb3IgKGNvbnN0IGVjcm51bSBvZiB0ZXh0ZS5lY3JudW1zKSB7XG4gICAgICAgIGNvbnN0IGVjciA9IGRhdGEuZWNyW2Vjcm51bV1cbiAgICAgICAgaWYgKGVjciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGV4dGUuZWNycy5wdXNoKGVjcilcbiAgICAgICAgICBpbnNlcnRFY3JSZWZlcmVuY2VzKGVjciwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRleHRlLm9yZ2NvZCAhPT0gbnVsbCAmJiBkYXRhLm9yZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBvcmcgPSBkYXRhLm9yZ1t0ZXh0ZS5vcmdjb2RdXG4gICAgICBpZiAob3JnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGV4dGUub3JnID0gb3JnXG4gICAgICAgIC8vIGluc2VydE9yZ1JlZmVyZW5jZXMob3JnLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRleHRlLm9yaXR4dGNvZCAhPT0gbnVsbCAmJiBkYXRhLm9yaXR4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBvcml0eHQgPSBkYXRhLm9yaXR4dFt0ZXh0ZS5vcml0eHRjb2RdXG4gICAgICBpZiAob3JpdHh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGV4dGUub3JpdHh0ID0gb3JpdHh0XG4gICAgICAgIC8vIGluc2VydE9yaXR4dFJlZmVyZW5jZXMob3JpdHh0LCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRleHRlLnR4dEFtZWxpSWQgIT09IHVuZGVmaW5lZCAmJiBkYXRhLnR4dF9hbWVsaSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB0eHRBbWVsaSA9IGRhdGEudHh0X2FtZWxpW3RleHRlLnR4dEFtZWxpSWRdXG4gICAgICBpZiAodHh0QW1lbGkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0ZXh0ZS50eHRBbWVsaSA9IHR4dEFtZWxpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRleHRlLnR5cHR4dGNvZCAhPT0gbnVsbCAmJiBkYXRhLnR5cHR4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB0eXB0eHQgPSBkYXRhLnR5cHR4dFt0ZXh0ZS50eXB0eHRjb2RdXG4gICAgICBpZiAodHlwdHh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGV4dGUudHlwdHh0ID0gdHlwdHh0XG4gICAgICAgIC8vIGluc2VydFR5cHR4dFJlZmVyZW5jZXModHlwdHh0LCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRleHRlLnR5cHVybCAhPT0gbnVsbCAmJiBkYXRhLnR5cHVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB0eXB1cmwgPSBkYXRhLnR5cHVybFt0ZXh0ZS50eXB1cmxdXG4gICAgICBpZiAodHlwdXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGV4dGUubGlidHlwdXJsID0gdHlwdXJsLmxpYnR5cHVybFxuICAgICAgICAvLyBpbnNlcnRUeXB1cmxSZWZlcmVuY2VzKHR5cHVybCwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE9cbiAgfVxuXG4gIHJldHVybiB0ZXh0ZVxufVxuIl19
623
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbnNlcnRBdWRSZWZlcmVuY2VzIiwiYXVkIiwiZGF0YSIsInZpc2l0ZWRJZHNCeVRhYmxlTmFtZSIsInZpc2l0ZWRJZHMiLCJ1bmRlZmluZWQiLCJTZXQiLCJoYXMiLCJhdWRjbGUiLCJhZGQiLCJvcmdjb2QiLCJvcmciLCJpbnNlcnRBdXRldXJSZWZlcmVuY2VzIiwiYXV0ZXVyIiwiYXV0Y29kIiwicXVhIiwicXVhY29kIiwiaW5zZXJ0RGF0ZVNlYW5jZVJlZmVyZW5jZXMiLCJkYXRlU2VhbmNlIiwiZGF0ZV9zZWFuY2UiLCJjb2RlIiwiZGF0ZV9zIiwiZGViYXRzIiwiZGF0ZVN0cmluZyIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsImRlYmF0Iiwic2NycyIsInNjcmlkcyIsInNjciIsInNjcmlkIiwicHVzaCIsImluc2VydERvY0F0dFJlZmVyZW5jZXMiLCJkb2NhdHQiLCJkb2NhdHRjbGUiLCJyYXBjb2QiLCJyYXAiLCJpbnNlcnRSYXBSZWZlcmVuY2VzIiwidHlwYXR0Y29kIiwidHlwYXR0IiwiaW5zZXJ0RWNyUmVmZXJlbmNlcyIsImVjciIsImVjcm51bSIsImF1dCIsImluc2VydExlY2Fzc3JhcFJlZmVyZW5jZXMiLCJsZWNhc3NyYXAiLCJsZWNhc3JhcGlkIiwibGVjYXNzaWR0IiwiaW5zZXJ0TGVjYXNzUmVmZXJlbmNlcyIsImxlY2FzcyIsImNvZGFzcyIsImFzcyIsImF1ZHMiLCJhdWRjbGVzIiwiZGF0ZXNTZWFuY2VzIiwiZGF0ZXNTZWFuY2VzQ29kZXMiLCJkYXRlU2VhbmNlQ29kZSIsImxlY2Fzc3JhcHMiLCJsZWNhc3NyYXBpZHMiLCJsZWNhc3NyYXBpZCIsInRleHRlcyIsInRleGNvZHMiLCJ0ZXh0ZSIsInRleGNvZCIsImluc2VydFRleHRlUmVmZXJlbmNlcyIsImluc2VydExlY3R1cmVSZWZlcmVuY2VzIiwibGVjdHVyZSIsImxlY2lkdCIsInR5cGxlY2NvZCIsInR5cGxlYyIsImxlY2Fzc3MiLCJsZWNhc3NpZHRzIiwiaW5zZXJ0TG9pUmVmZXJlbmNlcyIsImxvaSIsImxvaWNvZCIsInR5cGxvaWNvZCIsInR5cGxvaSIsImV0YWxvaWNvZCIsImV0YWxvaSIsImRlY2NvY2NvZCIsImRlY2NvYyIsImxlY3R1cmVzIiwibGVjaWR0cyIsImNvZGRlbnJhcCIsImRlbnJhcCIsImRvY2F0dHMiLCJkb2NhdHRjbGVzIiwiZWNycyIsImVjcm51bXMiLCJvcmdzIiwib3JnY29kcyIsIm9yaXR4dGNvZCIsIm9yaXR4dCIsInR4dEFtZWxpSWQiLCJ0eHRfYW1lbGkiLCJ0eHRBbWVsaSIsInR5cHR4dGNvZCIsInR5cHR4dCIsInR5cHVybCIsImxpYnR5cHVybCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnNlcnRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHh0QW1lbGkgfSBmcm9tIFwiLi90eXBlcy9hbWVsaVwiXG5pbXBvcnQgeyBEZWJhdCB9IGZyb20gXCIuL3R5cGVzL2RlYmF0c1wiXG5pbXBvcnQge1xuICBBc3MsXG4gIEF1ZCxcbiAgQXV0ZXVyLFxuICBEYXRlU2VhbmNlLFxuICBEZWNDb2MsXG4gIERlblJhcCxcbiAgRG9jQXR0LFxuICBFY3IsXG4gIEV0YUxvaSxcbiAgTGVjQXNzLFxuICBMZWNBc3NSYXAsXG4gIExlY3R1cmUsXG4gIExvaSxcbiAgT3JnLFxuICBPcmlUeHQsXG4gIFF1YSxcbiAgUmFwLFxuICBTY3IsXG4gIFRleHRlLFxuICBUeXBBdHQsXG4gIFR5cExlYyxcbiAgVHlwTG9pLFxuICBUeXBUeHQsXG4gIFR5cFVybCxcbn0gZnJvbSBcIi4vdHlwZXMvZG9zbGVnXCJcblxuZXhwb3J0IGludGVyZmFjZSBPdXRwdXREYXRhIHtcbiAgcmVhZG9ubHkgYXNzPzogeyBbaWQ6IHN0cmluZ106IEFzcyB9XG4gIHJlYWRvbmx5IGF1ZD86IHsgW2lkOiBzdHJpbmddOiBBdWQgfVxuICByZWFkb25seSBhdXRldXI/OiB7IFtpZDogc3RyaW5nXTogQXV0ZXVyIH1cbiAgcmVhZG9ubHkgZGF0ZV9zZWFuY2U/OiB7IFtpZDogc3RyaW5nXTogRGF0ZVNlYW5jZSB9XG4gIHJlYWRvbmx5IGRlYmF0cz86IHsgW2lkOiBzdHJpbmddOiBEZWJhdCB9XG4gIHJlYWRvbmx5IGRlY2NvYz86IHsgW2lkOiBzdHJpbmddOiBEZWNDb2MgfVxuICByZWFkb25seSBkZW5yYXA/OiB7IFtpZDogc3RyaW5nXTogRGVuUmFwIH1cbiAgcmVhZG9ubHkgZG9jYXR0PzogeyBbaWQ6IHN0cmluZ106IERvY0F0dCB9XG4gIHJlYWRvbmx5IGVjcj86IHsgW2lkOiBzdHJpbmddOiBFY3IgfVxuICByZWFkb25seSBldGFsb2k/OiB7IFtpZDogc3RyaW5nXTogRXRhTG9pIH1cbiAgcmVhZG9ubHkgbGVjYXNzPzogeyBbaWQ6IHN0cmluZ106IExlY0FzcyB9XG4gIHJlYWRvbmx5IGxlY2Fzc3JhcD86IHsgW2lkOiBzdHJpbmddOiBMZWNBc3NSYXAgfVxuICByZWFkb25seSBsZWN0dXJlPzogeyBbaWQ6IHN0cmluZ106IExlY3R1cmUgfVxuICByZWFkb25seSBsb2k/OiB7IFtpZDogc3RyaW5nXTogTG9pIH1cbiAgcmVhZG9ubHkgb3JnPzogeyBbaWQ6IHN0cmluZ106IE9yZyB9XG4gIHJlYWRvbmx5IG9yaXR4dD86IHsgW2lkOiBzdHJpbmddOiBPcmlUeHQgfVxuICByZWFkb25seSBxdWE/OiB7IFtpZDogc3RyaW5nXTogUXVhIH1cbiAgcmVhZG9ubHkgcmFwPzogeyBbaWQ6IHN0cmluZ106IFJhcCB9XG4gIHJlYWRvbmx5IHNjcj86IHsgW2lkOiBzdHJpbmddOiBTY3IgfVxuICByZWFkb25seSB0ZXh0ZT86IHsgW2lkOiBzdHJpbmddOiBUZXh0ZSB9XG4gIHJlYWRvbmx5IHR5cGF0dD86IHsgW2lkOiBzdHJpbmddOiBUeXBBdHQgfVxuICByZWFkb25seSB0eXBsZWM/OiB7IFtpZDogc3RyaW5nXTogVHlwTGVjIH1cbiAgcmVhZG9ubHkgdHlwbG9pPzogeyBbaWQ6IHN0cmluZ106IFR5cExvaSB9XG4gIHJlYWRvbmx5IHR5cHR4dD86IHsgW2lkOiBzdHJpbmddOiBUeXBUeHQgfVxuICByZWFkb25seSB0eXB1cmw/OiB7IFtpZDogc3RyaW5nXTogVHlwVXJsIH1cbiAgcmVhZG9ubHkgdHh0X2FtZWxpPzogeyBbaWQ6IHN0cmluZ106IFR4dEFtZWxpIH1cbn1cblxudHlwZSBWaXNpdGVkSWRzQnlUYWJsZU5hbWUgPSB7IFt0YWJsZU5hbWU6IHN0cmluZ106IFNldDxudW1iZXIgfCBzdHJpbmc+IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydEF1ZFJlZmVyZW5jZXMoXG4gIGF1ZDogQXVkLFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkSWRzQnlUYWJsZU5hbWU6IFZpc2l0ZWRJZHNCeVRhYmxlTmFtZSxcbikge1xuICBsZXQgdmlzaXRlZElkcyA9IHZpc2l0ZWRJZHNCeVRhYmxlTmFtZS5hdWRcbiAgaWYgKHZpc2l0ZWRJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUuYXVkID0gbmV3IFNldCgpXG4gIH1cbiAgaWYgKCF2aXNpdGVkSWRzLmhhcyhhdWQuYXVkY2xlKSkge1xuICAgIHZpc2l0ZWRJZHMuYWRkKGF1ZC5hdWRjbGUpXG5cbiAgICBpZiAoYXVkLm9yZ2NvZCAhPT0gbnVsbCAmJiBkYXRhLm9yZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBvcmcgPSBkYXRhLm9yZ1thdWQub3JnY29kXVxuICAgICAgaWYgKG9yZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGF1ZC5vcmcgPSBvcmdcbiAgICAgICAgLy8gaW5zZXJ0T3JnUmVmZXJlbmNlcyhvcmcsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPXG4gIH1cblxuICByZXR1cm4gYXVkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRBdXRldXJSZWZlcmVuY2VzKFxuICBhdXRldXI6IEF1dGV1cixcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZElkc0J5VGFibGVOYW1lOiBWaXNpdGVkSWRzQnlUYWJsZU5hbWUsXG4pIHtcbiAgbGV0IHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUuYXV0ZXVyXG4gIGlmICh2aXNpdGVkSWRzID09PSB1bmRlZmluZWQpIHtcbiAgICB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLmF1dGV1ciA9IG5ldyBTZXQoKVxuICB9XG4gIGlmICghdmlzaXRlZElkcy5oYXMoYXV0ZXVyLmF1dGNvZCkpIHtcbiAgICB2aXNpdGVkSWRzLmFkZChhdXRldXIuYXV0Y29kKVxuXG4gICAgaWYgKGRhdGEucXVhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHF1YSA9IGRhdGEucXVhW2F1dGV1ci5xdWFjb2RdXG4gICAgICBpZiAocXVhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYXV0ZXVyLnF1YSA9IHF1YVxuICAgICAgICAvLyBpbnNlcnRRdWFSZWZlcmVuY2VzKHF1YSwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE9cbiAgfVxuXG4gIHJldHVybiBhdXRldXJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydERhdGVTZWFuY2VSZWZlcmVuY2VzKFxuICBkYXRlU2VhbmNlOiBEYXRlU2VhbmNlLFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkSWRzQnlUYWJsZU5hbWU6IFZpc2l0ZWRJZHNCeVRhYmxlTmFtZSxcbikge1xuICBsZXQgdmlzaXRlZElkcyA9IHZpc2l0ZWRJZHNCeVRhYmxlTmFtZS5kYXRlX3NlYW5jZVxuICBpZiAodmlzaXRlZElkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdmlzaXRlZElkcyA9IHZpc2l0ZWRJZHNCeVRhYmxlTmFtZS5kYXRlX3NlYW5jZSA9IG5ldyBTZXQoKVxuICB9XG4gIGlmICghdmlzaXRlZElkcy5oYXMoZGF0ZVNlYW5jZS5jb2RlKSkge1xuICAgIHZpc2l0ZWRJZHMuYWRkKGRhdGVTZWFuY2UuY29kZSlcblxuICAgIGlmIChkYXRlU2VhbmNlLmRhdGVfcyAhPT0gbnVsbCAmJiBkYXRhLmRlYmF0cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBkYXRlU3RyaW5nID1cbiAgICAgICAgZGF0ZVNlYW5jZS5kYXRlX3MgaW5zdGFuY2VvZiBEYXRlXG4gICAgICAgICAgPyBkYXRlU2VhbmNlLmRhdGVfcy50b0lTT1N0cmluZygpXG4gICAgICAgICAgOiBkYXRlU2VhbmNlLmRhdGVfc1xuICAgICAgY29uc3QgZGViYXQgPSBkYXRhLmRlYmF0c1tkYXRlU3RyaW5nXVxuICAgICAgaWYgKGRlYmF0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGF0ZVNlYW5jZS5kZWJhdCA9IGRlYmF0XG4gICAgICAgIC8vIGluc2VydERlYmF0UmVmZXJlbmNlcyhkZWJhdCwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgfVxuICAgIH1cblxuICAgIGRhdGVTZWFuY2Uuc2NycyA9IFtdXG4gICAgaWYgKGRhdGVTZWFuY2Uuc2NyaWRzICE9PSB1bmRlZmluZWQgJiYgZGF0YS5zY3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBzY3JpZCBvZiBkYXRlU2VhbmNlLnNjcmlkcykge1xuICAgICAgICBjb25zdCBzY3IgPSBkYXRhLnNjcltzY3JpZF1cbiAgICAgICAgaWYgKHNjciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZGF0ZVNlYW5jZS5zY3JzLnB1c2goc2NyKVxuICAgICAgICAgIC8vIGluc2VydFNjclJlZmVyZW5jZXMoc2NyLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGF0ZVNlYW5jZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0RG9jQXR0UmVmZXJlbmNlcyhcbiAgZG9jYXR0OiBEb2NBdHQsXG4gIGRhdGE6IE91dHB1dERhdGEsXG4gIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZTogVmlzaXRlZElkc0J5VGFibGVOYW1lLFxuKSB7XG4gIGxldCB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLmRvY2F0dFxuICBpZiAodmlzaXRlZElkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdmlzaXRlZElkcyA9IHZpc2l0ZWRJZHNCeVRhYmxlTmFtZS5kb2NhdHQgPSBuZXcgU2V0KClcbiAgfVxuICBpZiAoIXZpc2l0ZWRJZHMuaGFzKGRvY2F0dC5kb2NhdHRjbGUpKSB7XG4gICAgdmlzaXRlZElkcy5hZGQoZG9jYXR0LmRvY2F0dGNsZSlcblxuICAgIGlmIChkb2NhdHQucmFwY29kICE9PSBudWxsICYmIGRhdGEucmFwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHJhcCA9IGRhdGEucmFwW2RvY2F0dC5yYXBjb2RdXG4gICAgICBpZiAocmFwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZG9jYXR0LnJhcCA9IHJhcFxuICAgICAgICBpbnNlcnRSYXBSZWZlcmVuY2VzKHJhcCwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkb2NhdHQudHlwYXR0Y29kICE9PSBudWxsICYmIGRhdGEudHlwYXR0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHR5cGF0dCA9IGRhdGEudHlwYXR0W2RvY2F0dC50eXBhdHRjb2RdXG4gICAgICBpZiAodHlwYXR0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZG9jYXR0LnR5cGF0dCA9IHR5cGF0dFxuICAgICAgICAvLyBpbnNlcnRUeXBBdHRSZWZlcmVuY2VzKHR5cGF0dCwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkb2NhdHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydEVjclJlZmVyZW5jZXMoXG4gIGVjcjogRWNyLFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkSWRzQnlUYWJsZU5hbWU6IFZpc2l0ZWRJZHNCeVRhYmxlTmFtZSxcbikge1xuICBsZXQgdmlzaXRlZElkcyA9IHZpc2l0ZWRJZHNCeVRhYmxlTmFtZS5lY3JcbiAgaWYgKHZpc2l0ZWRJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUuZWNyID0gbmV3IFNldCgpXG4gIH1cbiAgaWYgKCF2aXNpdGVkSWRzLmhhcyhlY3IuZWNybnVtKSkge1xuICAgIHZpc2l0ZWRJZHMuYWRkKGVjci5lY3JudW0pXG5cbiAgICBpZiAoZWNyLmF1dGNvZCAhPT0gbnVsbCAmJiBkYXRhLmF1dGV1ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBhdXQgPSBkYXRhLmF1dGV1cltlY3IuYXV0Y29kXVxuICAgICAgaWYgKGF1dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGVjci5hdXQgPSBhdXRcbiAgICAgICAgaW5zZXJ0QXV0ZXVyUmVmZXJlbmNlcyhhdXQsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPXG4gIH1cblxuICByZXR1cm4gZWNyXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRMZWNhc3NyYXBSZWZlcmVuY2VzKFxuICBsZWNhc3NyYXA6IExlY0Fzc1JhcCxcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZElkc0J5VGFibGVOYW1lOiBWaXNpdGVkSWRzQnlUYWJsZU5hbWUsXG4pIHtcbiAgbGV0IHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUubGVjYXNzcmFwXG4gIGlmICh2aXNpdGVkSWRzID09PSB1bmRlZmluZWQpIHtcbiAgICB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLmxlY2Fzc3JhcCA9IG5ldyBTZXQoKVxuICB9XG4gIGNvbnN0IGxlY2FzcmFwaWQgPSBgJHtsZWNhc3NyYXAubGVjYXNzaWR0fSAke2xlY2Fzc3JhcC5yYXBjb2R9YFxuICBpZiAoIXZpc2l0ZWRJZHMuaGFzKGxlY2FzcmFwaWQpKSB7XG4gICAgdmlzaXRlZElkcy5hZGQobGVjYXNyYXBpZClcblxuICAgIGlmIChsZWNhc3NyYXAucmFwY29kICE9PSBudWxsICYmIGRhdGEucmFwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHJhcCA9IGRhdGEucmFwW2xlY2Fzc3JhcC5yYXBjb2RdXG4gICAgICBpZiAocmFwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGVjYXNzcmFwLnJhcCA9IHJhcFxuICAgICAgICBpbnNlcnRSYXBSZWZlcmVuY2VzKHJhcCwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsZWNhc3NyYXBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExlY2Fzc1JlZmVyZW5jZXMoXG4gIGxlY2FzczogTGVjQXNzLFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkSWRzQnlUYWJsZU5hbWU6IFZpc2l0ZWRJZHNCeVRhYmxlTmFtZSxcbikge1xuICBsZXQgdmlzaXRlZElkcyA9IHZpc2l0ZWRJZHNCeVRhYmxlTmFtZS5sZWNhc3NcbiAgaWYgKHZpc2l0ZWRJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUubGVjYXNzID0gbmV3IFNldCgpXG4gIH1cbiAgaWYgKCF2aXNpdGVkSWRzLmhhcyhsZWNhc3MubGVjYXNzaWR0KSkge1xuICAgIHZpc2l0ZWRJZHMuYWRkKGxlY2Fzcy5sZWNhc3NpZHQpXG5cbiAgICBpZiAobGVjYXNzLmNvZGFzcyAhPT0gbnVsbCAmJiBkYXRhLmFzcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBhc3MgPSBkYXRhLmFzc1tsZWNhc3MuY29kYXNzXVxuICAgICAgaWYgKGFzcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGxlY2Fzcy5hc3MgPSBhc3NcbiAgICAgICAgLy8gaW5zZXJ0QXNzUmVmZXJlbmNlcyhhc3MsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobGVjYXNzLm9yZ2NvZCAhPT0gbnVsbCAmJiBkYXRhLm9yZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBvcmcgPSBkYXRhLm9yZ1tsZWNhc3Mub3JnY29kXVxuICAgICAgaWYgKG9yZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGxlY2Fzcy5vcmcgPSBvcmdcbiAgICAgICAgLy8gaW5zZXJ0T3JnUmVmZXJlbmNlcyhvcmcsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZWNhc3MuYXVkcyA9IFtdXG4gICAgaWYgKGxlY2Fzcy5hdWRjbGVzICE9PSB1bmRlZmluZWQgJiYgZGF0YS5hdWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBhdWRjbGUgb2YgbGVjYXNzLmF1ZGNsZXMpIHtcbiAgICAgICAgY29uc3QgYXVkID0gZGF0YS5hdWRbYXVkY2xlXVxuICAgICAgICBpZiAoYXVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBsZWNhc3MuYXVkcy5wdXNoKGF1ZClcbiAgICAgICAgICBpbnNlcnRBdWRSZWZlcmVuY2VzKGF1ZCwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGVjYXNzLmRhdGVzU2VhbmNlcyA9IFtdXG4gICAgaWYgKGxlY2Fzcy5kYXRlc1NlYW5jZXNDb2RlcyAhPT0gdW5kZWZpbmVkICYmIGRhdGEuZGF0ZV9zZWFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBkYXRlU2VhbmNlQ29kZSBvZiBsZWNhc3MuZGF0ZXNTZWFuY2VzQ29kZXMpIHtcbiAgICAgICAgY29uc3QgZGF0ZVNlYW5jZSA9IGRhdGEuZGF0ZV9zZWFuY2VbZGF0ZVNlYW5jZUNvZGVdXG4gICAgICAgIGlmIChkYXRlU2VhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBsZWNhc3MuZGF0ZXNTZWFuY2VzLnB1c2goZGF0ZVNlYW5jZSlcbiAgICAgICAgICBpbnNlcnREYXRlU2VhbmNlUmVmZXJlbmNlcyhkYXRlU2VhbmNlLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZWNhc3MubGVjYXNzcmFwcyA9IFtdXG4gICAgaWYgKGxlY2Fzcy5sZWNhc3NyYXBpZHMgIT09IHVuZGVmaW5lZCAmJiBkYXRhLmxlY2Fzc3JhcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBmb3IgKGNvbnN0IGxlY2Fzc3JhcGlkIG9mIGxlY2Fzcy5sZWNhc3NyYXBpZHMpIHtcbiAgICAgICAgY29uc3QgbGVjYXNzcmFwID0gZGF0YS5sZWNhc3NyYXBbbGVjYXNzcmFwaWRdXG4gICAgICAgIGlmIChsZWNhc3NyYXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGxlY2Fzcy5sZWNhc3NyYXBzLnB1c2gobGVjYXNzcmFwKVxuICAgICAgICAgIGluc2VydExlY2Fzc3JhcFJlZmVyZW5jZXMobGVjYXNzcmFwLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZWNhc3MudGV4dGVzID0gW11cbiAgICBpZiAobGVjYXNzLnRleGNvZHMgIT09IHVuZGVmaW5lZCAmJiBkYXRhLnRleHRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgdGV4Y29kIG9mIGxlY2Fzcy50ZXhjb2RzKSB7XG4gICAgICAgIGNvbnN0IHRleHRlID0gZGF0YS50ZXh0ZVt0ZXhjb2RdXG4gICAgICAgIGlmICh0ZXh0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbGVjYXNzLnRleHRlcy5wdXNoKHRleHRlKVxuICAgICAgICAgIGluc2VydFRleHRlUmVmZXJlbmNlcyh0ZXh0ZSwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxlY2Fzc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0TGVjdHVyZVJlZmVyZW5jZXMoXG4gIGxlY3R1cmU6IExlY3R1cmUsXG4gIGRhdGE6IE91dHB1dERhdGEsXG4gIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZTogVmlzaXRlZElkc0J5VGFibGVOYW1lLFxuKSB7XG4gIGxldCB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLmxlY3R1cmVcbiAgaWYgKHZpc2l0ZWRJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUubGVjdHVyZSA9IG5ldyBTZXQoKVxuICB9XG4gIGlmICghdmlzaXRlZElkcy5oYXMobGVjdHVyZS5sZWNpZHQpKSB7XG4gICAgdmlzaXRlZElkcy5hZGQobGVjdHVyZS5sZWNpZHQpXG5cbiAgICBpZiAobGVjdHVyZS50eXBsZWNjb2QgIT09IG51bGwgJiYgZGF0YS50eXBsZWMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgdHlwbGVjID0gZGF0YS50eXBsZWNbbGVjdHVyZS50eXBsZWNjb2RdXG4gICAgICBpZiAodHlwbGVjICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGVjdHVyZS50eXBsZWMgPSB0eXBsZWNcbiAgICAgICAgLy8gaW5zZXJ0VHlwbGVjUmVmZXJlbmNlcyh0eXBsZWMsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZWN0dXJlLmxlY2Fzc3MgPSBbXVxuICAgIGlmIChsZWN0dXJlLmxlY2Fzc2lkdHMgIT09IHVuZGVmaW5lZCAmJiBkYXRhLmxlY2FzcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBmb3IgKGNvbnN0IGxlY2Fzc2lkdCBvZiBsZWN0dXJlLmxlY2Fzc2lkdHMpIHtcbiAgICAgICAgY29uc3QgbGVjYXNzID0gZGF0YS5sZWNhc3NbbGVjYXNzaWR0XVxuICAgICAgICBpZiAobGVjYXNzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBsZWN0dXJlLmxlY2Fzc3MucHVzaChsZWNhc3MpXG4gICAgICAgICAgaW5zZXJ0TGVjYXNzUmVmZXJlbmNlcyhsZWNhc3MsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsZWN0dXJlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRMb2lSZWZlcmVuY2VzKFxuICBsb2k6IExvaSxcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZElkc0J5VGFibGVOYW1lOiBWaXNpdGVkSWRzQnlUYWJsZU5hbWUsXG4pIHtcbiAgbGV0IHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUubG9pXG4gIGlmICh2aXNpdGVkSWRzID09PSB1bmRlZmluZWQpIHtcbiAgICB2aXNpdGVkSWRzID0gdmlzaXRlZElkc0J5VGFibGVOYW1lLmxvaSA9IG5ldyBTZXQoKVxuICB9XG4gIGlmICghdmlzaXRlZElkcy5oYXMobG9pLmxvaWNvZCkpIHtcbiAgICB2aXNpdGVkSWRzLmFkZChsb2kubG9pY29kKVxuXG4gICAgaWYgKGxvaS50eXBsb2ljb2QgIT09IG51bGwgJiYgZGF0YS50eXBsb2kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgdHlwbG9pID0gZGF0YS50eXBsb2lbbG9pLnR5cGxvaWNvZF1cbiAgICAgIGlmICh0eXBsb2kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsb2kudHlwbG9pID0gdHlwbG9pXG4gICAgICAgIC8vIGluc2VydFR5cGxvaVJlZmVyZW5jZXModHlwbG9pLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGxvaS5ldGFsb2ljb2QgIT09IG51bGwgJiYgZGF0YS5ldGFsb2kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZXRhbG9pID0gZGF0YS5ldGFsb2lbbG9pLmV0YWxvaWNvZF1cbiAgICAgIGlmIChldGFsb2kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsb2kuZXRhbG9pID0gZXRhbG9pXG4gICAgICAgIC8vIGluc2VydEV0YWxvaVJlZmVyZW5jZXMoZXRhbG9pLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGxvaS5kZWNjb2Njb2QgIT09IG51bGwgJiYgZGF0YS5kZWNjb2MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZGVjY29jID0gZGF0YS5kZWNjb2NbbG9pLmRlY2NvY2NvZF1cbiAgICAgIGlmIChkZWNjb2MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsb2kuZGVjY29jID0gZGVjY29jXG4gICAgICAgIC8vIGluc2VydERlY2NvY1JlZmVyZW5jZXMoZGVjY29jLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgbG9pLmxlY3R1cmVzID0gW11cbiAgICBpZiAobG9pLmxlY2lkdHMgIT09IHVuZGVmaW5lZCAmJiBkYXRhLmxlY3R1cmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBsZWNpZHQgb2YgbG9pLmxlY2lkdHMpIHtcbiAgICAgICAgY29uc3QgbGVjdHVyZSA9IGRhdGEubGVjdHVyZVtsZWNpZHRdXG4gICAgICAgIGlmIChsZWN0dXJlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBsb2kubGVjdHVyZXMucHVzaChsZWN0dXJlKVxuICAgICAgICAgIGluc2VydExlY3R1cmVSZWZlcmVuY2VzKGxlY3R1cmUsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsb2lcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydFJhcFJlZmVyZW5jZXMoXG4gIHJhcDogUmFwLFxuICBkYXRhOiBPdXRwdXREYXRhLFxuICB2aXNpdGVkSWRzQnlUYWJsZU5hbWU6IFZpc2l0ZWRJZHNCeVRhYmxlTmFtZSxcbikge1xuICBsZXQgdmlzaXRlZElkcyA9IHZpc2l0ZWRJZHNCeVRhYmxlTmFtZS5yYXBcbiAgaWYgKHZpc2l0ZWRJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUucmFwID0gbmV3IFNldCgpXG4gIH1cbiAgaWYgKCF2aXNpdGVkSWRzLmhhcyhyYXAucmFwY29kKSkge1xuICAgIHZpc2l0ZWRJZHMuYWRkKHJhcC5yYXBjb2QpXG5cbiAgICBpZiAocmFwLmNvZGRlbnJhcCAhPT0gbnVsbCAmJiBkYXRhLmRlbnJhcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBkZW5yYXAgPSBkYXRhLmRlbnJhcFtyYXAuY29kZGVucmFwXVxuICAgICAgaWYgKGRlbnJhcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJhcC5kZW5yYXAgPSBkZW5yYXBcbiAgICAgICAgLy8gaW5zZXJ0RGVucmFwUmVmZXJlbmNlcyhkZW5yYXAsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByYXAuZG9jYXR0cyA9IFtdXG4gICAgaWYgKHJhcC5kb2NhdHRjbGVzICE9PSB1bmRlZmluZWQgJiYgZGF0YS5kb2NhdHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZm9yIChjb25zdCBkb2NhdHRjbGUgb2YgcmFwLmRvY2F0dGNsZXMpIHtcbiAgICAgICAgY29uc3QgZG9jYXR0ID0gZGF0YS5kb2NhdHRbZG9jYXR0Y2xlXVxuICAgICAgICBpZiAoZG9jYXR0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByYXAuZG9jYXR0cy5wdXNoKGRvY2F0dClcbiAgICAgICAgICBpbnNlcnREb2NBdHRSZWZlcmVuY2VzKGRvY2F0dCwgZGF0YSwgdmlzaXRlZElkc0J5VGFibGVOYW1lKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmFwLmVjcnMgPSBbXVxuICAgIGlmIChyYXAuZWNybnVtcyAhPT0gdW5kZWZpbmVkICYmIGRhdGEuZWNyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgZWNybnVtIG9mIHJhcC5lY3JudW1zKSB7XG4gICAgICAgIGNvbnN0IGVjciA9IGRhdGEuZWNyW2Vjcm51bV1cbiAgICAgICAgaWYgKGVjciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmFwLmVjcnMucHVzaChlY3IpXG4gICAgICAgICAgaW5zZXJ0RWNyUmVmZXJlbmNlcyhlY3IsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJhcC5vcmdzID0gW11cbiAgICBpZiAocmFwLm9yZ2NvZHMgIT09IHVuZGVmaW5lZCAmJiBkYXRhLm9yZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBmb3IgKGNvbnN0IG9yZ2NvZCBvZiByYXAub3JnY29kcykge1xuICAgICAgICBjb25zdCBvcmcgPSBkYXRhLm9yZ1tvcmdjb2RdXG4gICAgICAgIGlmIChvcmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJhcC5vcmdzLnB1c2gob3JnKVxuICAgICAgICAgIC8vIGluc2VydE9yZ1JlZmVyZW5jZXMob3JnLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmFwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRUZXh0ZVJlZmVyZW5jZXMoXG4gIHRleHRlOiBUZXh0ZSxcbiAgZGF0YTogT3V0cHV0RGF0YSxcbiAgdmlzaXRlZElkc0J5VGFibGVOYW1lOiBWaXNpdGVkSWRzQnlUYWJsZU5hbWUsXG4pIHtcbiAgbGV0IHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUudGV4dGVcbiAgaWYgKHZpc2l0ZWRJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHZpc2l0ZWRJZHMgPSB2aXNpdGVkSWRzQnlUYWJsZU5hbWUudGV4dGUgPSBuZXcgU2V0KClcbiAgfVxuICBpZiAoIXZpc2l0ZWRJZHMuaGFzKHRleHRlLnRleGNvZCkpIHtcbiAgICB2aXNpdGVkSWRzLmFkZCh0ZXh0ZS50ZXhjb2QpXG5cbiAgICB0ZXh0ZS5lY3JzID0gW11cbiAgICBpZiAodGV4dGUuZWNybnVtcyAhPT0gdW5kZWZpbmVkICYmIGRhdGEuZWNyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvciAoY29uc3QgZWNybnVtIG9mIHRleHRlLmVjcm51bXMpIHtcbiAgICAgICAgY29uc3QgZWNyID0gZGF0YS5lY3JbZWNybnVtXVxuICAgICAgICBpZiAoZWNyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0ZXh0ZS5lY3JzLnB1c2goZWNyKVxuICAgICAgICAgIGluc2VydEVjclJlZmVyZW5jZXMoZWNyLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGV4dGUub3JnY29kICE9PSBudWxsICYmIGRhdGEub3JnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG9yZyA9IGRhdGEub3JnW3RleHRlLm9yZ2NvZF1cbiAgICAgIGlmIChvcmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0ZXh0ZS5vcmcgPSBvcmdcbiAgICAgICAgLy8gaW5zZXJ0T3JnUmVmZXJlbmNlcyhvcmcsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGV4dGUub3JpdHh0Y29kICE9PSBudWxsICYmIGRhdGEub3JpdHh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG9yaXR4dCA9IGRhdGEub3JpdHh0W3RleHRlLm9yaXR4dGNvZF1cbiAgICAgIGlmIChvcml0eHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0ZXh0ZS5vcml0eHQgPSBvcml0eHRcbiAgICAgICAgLy8gaW5zZXJ0T3JpdHh0UmVmZXJlbmNlcyhvcml0eHQsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGV4dGUudHh0QW1lbGlJZCAhPT0gdW5kZWZpbmVkICYmIGRhdGEudHh0X2FtZWxpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHR4dEFtZWxpID0gZGF0YS50eHRfYW1lbGlbdGV4dGUudHh0QW1lbGlJZF1cbiAgICAgIGlmICh0eHRBbWVsaSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRleHRlLnR4dEFtZWxpID0gdHh0QW1lbGlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGV4dGUudHlwdHh0Y29kICE9PSBudWxsICYmIGRhdGEudHlwdHh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHR5cHR4dCA9IGRhdGEudHlwdHh0W3RleHRlLnR5cHR4dGNvZF1cbiAgICAgIGlmICh0eXB0eHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0ZXh0ZS50eXB0eHQgPSB0eXB0eHRcbiAgICAgICAgLy8gaW5zZXJ0VHlwdHh0UmVmZXJlbmNlcyh0eXB0eHQsIGRhdGEsIHZpc2l0ZWRJZHNCeVRhYmxlTmFtZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGV4dGUudHlwdXJsICE9PSBudWxsICYmIGRhdGEudHlwdXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHR5cHVybCA9IGRhdGEudHlwdXJsW3RleHRlLnR5cHVybF1cbiAgICAgIGlmICh0eXB1cmwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0ZXh0ZS5saWJ0eXB1cmwgPSB0eXB1cmwubGlidHlwdXJsXG4gICAgICAgIC8vIGluc2VydFR5cHVybFJlZmVyZW5jZXModHlwdXJsLCBkYXRhLCB2aXNpdGVkSWRzQnlUYWJsZU5hbWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ET1xuICB9XG5cbiAgcmV0dXJu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