@tricoteuses/assemblee 1.0.0-next.2 → 1.0.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/README.md +2 -0
- package/lib/api.js +23 -7
- package/lib/api.mjs +41 -0
- package/lib/bugs/acteur-00010/plugin.test.js +139 -33
- package/lib/bugs/acteur-00010/plugin.test.mjs +33 -0
- package/lib/bugs/acteur-00010.js +166 -24
- package/lib/bugs/acteur-00010.mjs +31 -0
- package/lib/bugs/agenda-00002/plugin.test.js +178 -52
- package/lib/bugs/agenda-00002/plugin.test.mjs +52 -0
- package/lib/bugs/agenda-00002.js +507 -143
- package/lib/bugs/agenda-00002.mjs +197 -0
- package/lib/bugs/agenda-00008/plugin.test.js +143 -31
- package/lib/bugs/agenda-00008/plugin.test.mjs +31 -0
- package/lib/bugs/agenda-00008.js +180 -25
- package/lib/bugs/agenda-00008.mjs +30 -0
- package/lib/bugs/agenda-00011/plugin.test.js +371 -156
- package/lib/bugs/agenda-00011/plugin.test.mjs +156 -0
- package/lib/bugs/agenda-00011.js +416 -117
- package/lib/bugs/agenda-00011.mjs +150 -0
- package/lib/bugs.js +591 -54
- package/lib/bugs.mjs +93 -0
- package/lib/cleaners/actes_legislatifs.js +149 -61
- package/lib/cleaners/actes_legislatifs.mjs +311 -0
- package/lib/cleaners/acteurs.js +255 -123
- package/lib/cleaners/acteurs.mjs +211 -0
- package/lib/cleaners/amendements.js +242 -117
- package/lib/cleaners/amendements.mjs +292 -0
- package/lib/cleaners/documents.js +147 -62
- package/lib/cleaners/documents.mjs +162 -0
- package/lib/cleaners/dossiers_legislatifs.js +132 -45
- package/lib/cleaners/dossiers_legislatifs.mjs +123 -0
- package/lib/cleaners/index.js +64 -8
- package/lib/cleaners/index.mjs +8 -0
- package/lib/cleaners/organes.js +54 -21
- package/lib/cleaners/organes.mjs +64 -0
- package/lib/cleaners/reunions.js +237 -127
- package/lib/cleaners/reunions.mjs +318 -0
- package/lib/cleaners/scrutins.js +261 -99
- package/lib/cleaners/scrutins.mjs +254 -0
- package/lib/cleaners/xml.js +81 -16
- package/lib/cleaners/xml.mjs +42 -0
- package/lib/datasets.js +284 -153
- package/lib/datasets.mjs +596 -0
- package/lib/dates.js +93 -34
- package/lib/dates.mjs +98 -0
- package/lib/dossiers_legislatifs.js +107 -33
- package/lib/dossiers_legislatifs.mjs +215 -0
- package/lib/file_systems.js +203 -35
- package/lib/file_systems.mjs +64 -0
- package/lib/git.js +139 -41
- package/lib/git.mjs +114 -0
- package/lib/index.js +310 -16
- package/lib/index.mjs +16 -0
- package/lib/inserters.js +355 -131
- package/lib/inserters.mjs +413 -0
- package/lib/loaders.js +900 -440
- package/lib/loaders.mjs +678 -0
- package/lib/organes.js +15 -5
- package/lib/organes.mjs +18 -0
- package/lib/parsers/documents.js +241 -89
- package/lib/parsers/documents.mjs +433 -0
- package/lib/parsers/index.js +36 -3
- package/lib/parsers/index.mjs +3 -0
- package/lib/parsers/recherche_amendements.js +616 -173
- package/lib/parsers/recherche_amendements.mjs +189 -0
- package/lib/raw_types/acteurs_et_organes.d.ts +36 -148
- package/lib/raw_types/acteurs_et_organes.js +228 -506
- package/lib/raw_types/acteurs_et_organes.mjs +1240 -0
- package/lib/raw_types/agendas.js +165 -75
- package/lib/raw_types/agendas.mjs +944 -0
- package/lib/raw_types/amendements.js +165 -77
- package/lib/raw_types/amendements.mjs +1040 -0
- package/lib/raw_types/dossiers_legislatifs.d.ts +1 -43
- package/lib/raw_types/dossiers_legislatifs.js +181 -143
- package/lib/raw_types/dossiers_legislatifs.mjs +1792 -0
- package/lib/raw_types/scrutins.js +144 -61
- package/lib/raw_types/scrutins.mjs +645 -0
- package/lib/scripts/bugs_helper.js +657 -155
- package/lib/scripts/bugs_helper.mjs +286 -0
- package/lib/scripts/clean_data.js +380 -145
- package/lib/scripts/clean_data.mjs +190 -0
- package/lib/scripts/clean_reorganized_data.js +627 -331
- package/lib/scripts/clean_reorganized_data.mjs +520 -0
- package/lib/scripts/diff_amendements.js +159 -73
- package/lib/scripts/diff_amendements.mjs +234 -0
- package/lib/scripts/document_dossiers_legislatifs.js +570 -288
- package/lib/scripts/document_dossiers_legislatifs.mjs +494 -0
- package/lib/scripts/get_today_reunions.js +37 -20
- package/lib/scripts/get_today_reunions.mjs +41 -0
- package/lib/scripts/merge_scrutins.js +121 -39
- package/lib/scripts/merge_scrutins.mjs +69 -0
- package/lib/scripts/parse_textes_lois.js +179 -125
- package/lib/scripts/parse_textes_lois.mjs +215 -0
- package/lib/scripts/raw_types_from_amendements.js +276 -77
- package/lib/scripts/raw_types_from_amendements.mjs +118 -0
- package/lib/scripts/reorganize_data.js +867 -446
- package/lib/scripts/reorganize_data.mjs +712 -0
- package/lib/scripts/retrieve_deputes_photos.js +378 -157
- package/lib/scripts/retrieve_deputes_photos.mjs +230 -0
- package/lib/scripts/retrieve_documents.js +648 -172
- package/lib/scripts/retrieve_documents.mjs +292 -0
- package/lib/scripts/retrieve_open_data.js +286 -85
- package/lib/scripts/retrieve_open_data.mjs +125 -0
- package/lib/scripts/retrieve_pending_amendments.js +302 -69
- package/lib/scripts/retrieve_pending_amendments.mjs +130 -0
- package/lib/scripts/retrieve_senateurs_photos.js +374 -198
- package/lib/scripts/retrieve_senateurs_photos.mjs +277 -0
- package/lib/scripts/retrieve_textes_lois.js +343 -89
- package/lib/scripts/retrieve_textes_lois.mjs +168 -0
- package/lib/scripts/test_load.js +30 -11
- package/lib/scripts/test_load.mjs +26 -0
- package/lib/scripts/test_load_big_files.js +30 -11
- package/lib/scripts/test_load_big_files.mjs +26 -0
- package/lib/scripts/validate_json.js +370 -120
- package/lib/scripts/validate_json.mjs +216 -0
- package/lib/shared_types/codes_actes.js +50 -15
- package/lib/shared_types/codes_actes.mjs +228 -0
- package/lib/strings.js +16 -3
- package/lib/strings.mjs +7 -0
- package/lib/types/acteurs_et_organes.js +156 -71
- package/lib/types/acteurs_et_organes.mjs +918 -0
- package/lib/types/agendas.js +154 -67
- package/lib/types/agendas.mjs +623 -0
- package/lib/types/amendements.js +166 -77
- package/lib/types/amendements.mjs +885 -0
- package/lib/types/dossiers_legislatifs.d.ts +1 -42
- package/lib/types/dossiers_legislatifs.js +182 -143
- package/lib/types/dossiers_legislatifs.mjs +1120 -0
- package/lib/types/legislatures.js +12 -3
- package/lib/types/legislatures.mjs +9 -0
- package/lib/types/scrutins.js +144 -61
- package/lib/types/scrutins.mjs +528 -0
- package/lib/urls.js +44 -25
- package/lib/urls.mjs +201 -0
- package/package.json +33 -12
|
@@ -0,0 +1,645 @@
|
|
|
1
|
+
// To parse this data:
|
|
2
|
+
//
|
|
3
|
+
// import { Convert, Scrutins, ScrutinWrapper } from "./file";
|
|
4
|
+
//
|
|
5
|
+
// const scrutins = Convert.toScrutins(json);
|
|
6
|
+
// const scrutinWrapper = Convert.toScrutinWrapper(json);
|
|
7
|
+
//
|
|
8
|
+
// These functions will throw an error if the JSON doesn't
|
|
9
|
+
// match the expected interface, even if the JSON is valid.
|
|
10
|
+
export let ModePublicationDesVotes;
|
|
11
|
+
|
|
12
|
+
(function (ModePublicationDesVotes) {
|
|
13
|
+
ModePublicationDesVotes["DecompteDissidentsPositionGroupe"] = "DecompteDissidentsPositionGroupe";
|
|
14
|
+
ModePublicationDesVotes["DecompteNominatif"] = "DecompteNominatif";
|
|
15
|
+
})(ModePublicationDesVotes || (ModePublicationDesVotes = {}));
|
|
16
|
+
|
|
17
|
+
export let Code;
|
|
18
|
+
|
|
19
|
+
(function (Code) {
|
|
20
|
+
Code["Adopt\xE9"] = "adopt\xE9";
|
|
21
|
+
Code["Rejet\xE9"] = "rejet\xE9";
|
|
22
|
+
})(Code || (Code = {}));
|
|
23
|
+
|
|
24
|
+
export let Libelle;
|
|
25
|
+
|
|
26
|
+
(function (Libelle) {
|
|
27
|
+
Libelle["LAssembl\xE9eNationaleAAdopt\xE9"] = "l'Assembl\xE9e nationale a adopt\xE9";
|
|
28
|
+
Libelle["LAssembl\xE9eNationaleNAPasAdopt\xE9"] = "L'Assembl\xE9e nationale n'a pas adopt\xE9";
|
|
29
|
+
})(Libelle || (Libelle = {}));
|
|
30
|
+
|
|
31
|
+
export let CodeTypeVote;
|
|
32
|
+
|
|
33
|
+
(function (CodeTypeVote) {
|
|
34
|
+
CodeTypeVote["Moc"] = "MOC";
|
|
35
|
+
CodeTypeVote["Sat"] = "SAT";
|
|
36
|
+
CodeTypeVote["Spo"] = "SPO";
|
|
37
|
+
CodeTypeVote["Sps"] = "SPS";
|
|
38
|
+
})(CodeTypeVote || (CodeTypeVote = {}));
|
|
39
|
+
|
|
40
|
+
export let LibelleTypeVote;
|
|
41
|
+
|
|
42
|
+
(function (LibelleTypeVote) {
|
|
43
|
+
LibelleTypeVote["MotionDeCensure"] = "motion de censure";
|
|
44
|
+
LibelleTypeVote["ScrutinPublicOrdinaire"] = "scrutin public ordinaire";
|
|
45
|
+
LibelleTypeVote["ScrutinPublicSolennel"] = "scrutin public solennel";
|
|
46
|
+
LibelleTypeVote["Scrutin\xC0LaTribune"] = "scrutin \xE0 la tribune";
|
|
47
|
+
})(LibelleTypeVote || (LibelleTypeVote = {}));
|
|
48
|
+
|
|
49
|
+
export let TypeMajorite;
|
|
50
|
+
|
|
51
|
+
(function (TypeMajorite) {
|
|
52
|
+
TypeMajorite["Majorit\xE9AbsolueDesSuffragesExprim\xE9s"] = "majorit\xE9 absolue des suffrages exprim\xE9s";
|
|
53
|
+
TypeMajorite["Majorit\xE9DesMembresComposantLAssembl\xE9eNationale"] = "majorit\xE9 des membres composant l'Assembl\xE9e nationale";
|
|
54
|
+
TypeMajorite["Majorit\xE9DesMembresComposantsComposantLAssembl\xE9e"] = "majorit\xE9 des membres composants composant l'Assembl\xE9e";
|
|
55
|
+
TypeMajorite["Majorit\xE9DesMembresComposantsComposantLAssembl\xE9eNationale"] = "majorit\xE9 des membres composants composant l'Assembl\xE9e nationale";
|
|
56
|
+
})(TypeMajorite || (TypeMajorite = {}));
|
|
57
|
+
|
|
58
|
+
export let CausePositionVote;
|
|
59
|
+
|
|
60
|
+
(function (CausePositionVote) {
|
|
61
|
+
CausePositionVote["Mg"] = "MG";
|
|
62
|
+
CausePositionVote["Pan"] = "PAN";
|
|
63
|
+
CausePositionVote["Pse"] = "PSE";
|
|
64
|
+
})(CausePositionVote || (CausePositionVote = {}));
|
|
65
|
+
|
|
66
|
+
export let PositionMajoritaire; // Converts JSON strings to/from your types
|
|
67
|
+
// and asserts the results of JSON.parse at runtime
|
|
68
|
+
|
|
69
|
+
(function (PositionMajoritaire) {
|
|
70
|
+
PositionMajoritaire["Abstention"] = "abstention";
|
|
71
|
+
PositionMajoritaire["Contre"] = "contre";
|
|
72
|
+
PositionMajoritaire["Pour"] = "pour";
|
|
73
|
+
})(PositionMajoritaire || (PositionMajoritaire = {}));
|
|
74
|
+
|
|
75
|
+
export class Convert {
|
|
76
|
+
static toScrutins(json) {
|
|
77
|
+
return cast(JSON.parse(json), r("Scrutins"));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static scrutinsToJson(value) {
|
|
81
|
+
return JSON.stringify(uncast(value, r("Scrutins")), null, 2);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
static toScrutinWrapper(json) {
|
|
85
|
+
return cast(JSON.parse(json), r("ScrutinWrapper"));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static scrutinWrapperToJson(value) {
|
|
89
|
+
return JSON.stringify(uncast(value, r("ScrutinWrapper")), null, 2);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function invalidValue(typ, val, key = '') {
|
|
95
|
+
if (key) {
|
|
96
|
+
throw Error(`Invalid value for key "${key}". Expected type ${JSON.stringify(typ)} but got ${JSON.stringify(val)}`);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
throw Error(`Invalid value ${JSON.stringify(val)} for type ${JSON.stringify(typ)}`);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function jsonToJSProps(typ) {
|
|
103
|
+
if (typ.jsonToJS === undefined) {
|
|
104
|
+
const map = {};
|
|
105
|
+
typ.props.forEach(p => map[p.json] = {
|
|
106
|
+
key: p.js,
|
|
107
|
+
typ: p.typ
|
|
108
|
+
});
|
|
109
|
+
typ.jsonToJS = map;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return typ.jsonToJS;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function jsToJSONProps(typ) {
|
|
116
|
+
if (typ.jsToJSON === undefined) {
|
|
117
|
+
const map = {};
|
|
118
|
+
typ.props.forEach(p => map[p.js] = {
|
|
119
|
+
key: p.json,
|
|
120
|
+
typ: p.typ
|
|
121
|
+
});
|
|
122
|
+
typ.jsToJSON = map;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return typ.jsToJSON;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function transform(val, typ, getProps, key = '') {
|
|
129
|
+
function transformPrimitive(typ, val) {
|
|
130
|
+
if (typeof typ === typeof val) return val;
|
|
131
|
+
return invalidValue(typ, val, key);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function transformUnion(typs, val) {
|
|
135
|
+
// val must validate against one typ in typs
|
|
136
|
+
const l = typs.length;
|
|
137
|
+
|
|
138
|
+
for (let i = 0; i < l; i++) {
|
|
139
|
+
const typ = typs[i];
|
|
140
|
+
|
|
141
|
+
try {
|
|
142
|
+
return transform(val, typ, getProps);
|
|
143
|
+
} catch (_) {}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return invalidValue(typs, val);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
function transformEnum(cases, val) {
|
|
150
|
+
if (cases.indexOf(val) !== -1) return val;
|
|
151
|
+
return invalidValue(cases, val);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function transformArray(typ, val) {
|
|
155
|
+
// val must be an array with no invalid elements
|
|
156
|
+
if (!Array.isArray(val)) return invalidValue("array", val);
|
|
157
|
+
return val.map(el => transform(el, typ, getProps));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function transformDate(val) {
|
|
161
|
+
if (val === null) {
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
const d = new Date(val);
|
|
166
|
+
|
|
167
|
+
if (isNaN(d.valueOf())) {
|
|
168
|
+
return invalidValue("Date", val);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
return d;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function transformObject(props, additional, val) {
|
|
175
|
+
if (val === null || typeof val !== "object" || Array.isArray(val)) {
|
|
176
|
+
return invalidValue("object", val);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
const result = {};
|
|
180
|
+
Object.getOwnPropertyNames(props).forEach(key => {
|
|
181
|
+
const prop = props[key];
|
|
182
|
+
const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
|
|
183
|
+
result[prop.key] = transform(v, prop.typ, getProps, prop.key);
|
|
184
|
+
});
|
|
185
|
+
Object.getOwnPropertyNames(val).forEach(key => {
|
|
186
|
+
if (!Object.prototype.hasOwnProperty.call(props, key)) {
|
|
187
|
+
result[key] = transform(val[key], additional, getProps, key);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
return result;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
if (typ === "any") return val;
|
|
194
|
+
|
|
195
|
+
if (typ === null) {
|
|
196
|
+
if (val === null) return val;
|
|
197
|
+
return invalidValue(typ, val);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (typ === false) return invalidValue(typ, val);
|
|
201
|
+
|
|
202
|
+
while (typeof typ === "object" && typ.ref !== undefined) {
|
|
203
|
+
typ = typeMap[typ.ref];
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
if (Array.isArray(typ)) return transformEnum(typ, val);
|
|
207
|
+
|
|
208
|
+
if (typeof typ === "object") {
|
|
209
|
+
return typ.hasOwnProperty("unionMembers") ? transformUnion(typ.unionMembers, val) : typ.hasOwnProperty("arrayItems") ? transformArray(typ.arrayItems, val) : typ.hasOwnProperty("props") ? transformObject(getProps(typ), typ.additional, val) : invalidValue(typ, val);
|
|
210
|
+
} // Numbers can be parsed by Date but shouldn't be.
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
if (typ === Date && typeof val !== "number") return transformDate(val);
|
|
214
|
+
return transformPrimitive(typ, val);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
function cast(val, typ) {
|
|
218
|
+
return transform(val, typ, jsonToJSProps);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
function uncast(val, typ) {
|
|
222
|
+
return transform(val, typ, jsToJSONProps);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
function a(typ) {
|
|
226
|
+
return {
|
|
227
|
+
arrayItems: typ
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function u(...typs) {
|
|
232
|
+
return {
|
|
233
|
+
unionMembers: typs
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
function o(props, additional) {
|
|
238
|
+
return {
|
|
239
|
+
props,
|
|
240
|
+
additional
|
|
241
|
+
};
|
|
242
|
+
} // function m(additional: any) {
|
|
243
|
+
// return { props: [], additional };
|
|
244
|
+
// }
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
function r(name) {
|
|
248
|
+
return {
|
|
249
|
+
ref: name
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
const typeMap = {
|
|
254
|
+
"Scrutins": o([{
|
|
255
|
+
json: "scrutins",
|
|
256
|
+
js: "scrutins",
|
|
257
|
+
typ: r("ScrutinsClass")
|
|
258
|
+
}], false),
|
|
259
|
+
"ScrutinsClass": o([{
|
|
260
|
+
json: "scrutin",
|
|
261
|
+
js: "scrutin",
|
|
262
|
+
typ: a(r("Scrutin"))
|
|
263
|
+
}], false),
|
|
264
|
+
"ScrutinWrapper": o([{
|
|
265
|
+
json: "scrutin",
|
|
266
|
+
js: "scrutin",
|
|
267
|
+
typ: r("Scrutin")
|
|
268
|
+
}], false),
|
|
269
|
+
"Scrutin": o([{
|
|
270
|
+
json: "@xmlns:xsi",
|
|
271
|
+
js: "@xmlns:xsi",
|
|
272
|
+
typ: ""
|
|
273
|
+
}, {
|
|
274
|
+
json: "uid",
|
|
275
|
+
js: "uid",
|
|
276
|
+
typ: ""
|
|
277
|
+
}, {
|
|
278
|
+
json: "numero",
|
|
279
|
+
js: "numero",
|
|
280
|
+
typ: ""
|
|
281
|
+
}, {
|
|
282
|
+
json: "organeRef",
|
|
283
|
+
js: "organeRef",
|
|
284
|
+
typ: ""
|
|
285
|
+
}, {
|
|
286
|
+
json: "legislature",
|
|
287
|
+
js: "legislature",
|
|
288
|
+
typ: ""
|
|
289
|
+
}, {
|
|
290
|
+
json: "sessionRef",
|
|
291
|
+
js: "sessionRef",
|
|
292
|
+
typ: ""
|
|
293
|
+
}, {
|
|
294
|
+
json: "seanceRef",
|
|
295
|
+
js: "seanceRef",
|
|
296
|
+
typ: ""
|
|
297
|
+
}, {
|
|
298
|
+
json: "dateScrutin",
|
|
299
|
+
js: "dateScrutin",
|
|
300
|
+
typ: Date
|
|
301
|
+
}, {
|
|
302
|
+
json: "quantiemeJourSeance",
|
|
303
|
+
js: "quantiemeJourSeance",
|
|
304
|
+
typ: ""
|
|
305
|
+
}, {
|
|
306
|
+
json: "typeVote",
|
|
307
|
+
js: "typeVote",
|
|
308
|
+
typ: r("TypeVote")
|
|
309
|
+
}, {
|
|
310
|
+
json: "sort",
|
|
311
|
+
js: "sort",
|
|
312
|
+
typ: r("Sort")
|
|
313
|
+
}, {
|
|
314
|
+
json: "titre",
|
|
315
|
+
js: "titre",
|
|
316
|
+
typ: ""
|
|
317
|
+
}, {
|
|
318
|
+
json: "demandeur",
|
|
319
|
+
js: "demandeur",
|
|
320
|
+
typ: r("Demandeur")
|
|
321
|
+
}, {
|
|
322
|
+
json: "objet",
|
|
323
|
+
js: "objet",
|
|
324
|
+
typ: r("Objet")
|
|
325
|
+
}, {
|
|
326
|
+
json: "modePublicationDesVotes",
|
|
327
|
+
js: "modePublicationDesVotes",
|
|
328
|
+
typ: r("ModePublicationDesVotes")
|
|
329
|
+
}, {
|
|
330
|
+
json: "syntheseVote",
|
|
331
|
+
js: "syntheseVote",
|
|
332
|
+
typ: r("SyntheseVote")
|
|
333
|
+
}, {
|
|
334
|
+
json: "ventilationVotes",
|
|
335
|
+
js: "ventilationVotes",
|
|
336
|
+
typ: r("VentilationVotes")
|
|
337
|
+
}, {
|
|
338
|
+
json: "miseAuPoint",
|
|
339
|
+
js: "miseAuPoint",
|
|
340
|
+
typ: u(r("MiseAuPoint"), null)
|
|
341
|
+
}, {
|
|
342
|
+
json: "@xmlns",
|
|
343
|
+
js: "@xmlns",
|
|
344
|
+
typ: u(undefined, "")
|
|
345
|
+
}], false),
|
|
346
|
+
"Demandeur": o([{
|
|
347
|
+
json: "texte",
|
|
348
|
+
js: "texte",
|
|
349
|
+
typ: u(null, "")
|
|
350
|
+
}, {
|
|
351
|
+
json: "referenceLegislative",
|
|
352
|
+
js: "referenceLegislative",
|
|
353
|
+
typ: null
|
|
354
|
+
}], false),
|
|
355
|
+
"MiseAuPoint": o([{
|
|
356
|
+
json: "nonVotants",
|
|
357
|
+
js: "nonVotants",
|
|
358
|
+
typ: u(a(u(r("ContreClass"), null)), null)
|
|
359
|
+
}, {
|
|
360
|
+
json: "pour",
|
|
361
|
+
js: "pour",
|
|
362
|
+
typ: u(undefined, u(r("ContreClass"), null))
|
|
363
|
+
}, {
|
|
364
|
+
json: "contre",
|
|
365
|
+
js: "contre",
|
|
366
|
+
typ: u(undefined, u(r("ContreClass"), null))
|
|
367
|
+
}, {
|
|
368
|
+
json: "abstentions",
|
|
369
|
+
js: "abstentions",
|
|
370
|
+
typ: u(a(u(r("ContreClass"), null)), r("ContreClass"), null)
|
|
371
|
+
}, {
|
|
372
|
+
json: "nonVotantsVolontaires",
|
|
373
|
+
js: "nonVotantsVolontaires",
|
|
374
|
+
typ: u(a(u(r("ContreClass"), null)), r("NonVotantsVolontairesClass"), null)
|
|
375
|
+
}, {
|
|
376
|
+
json: "pours",
|
|
377
|
+
js: "pours",
|
|
378
|
+
typ: u(undefined, u(r("ContreClass"), null))
|
|
379
|
+
}, {
|
|
380
|
+
json: "contres",
|
|
381
|
+
js: "contres",
|
|
382
|
+
typ: u(undefined, u(r("ContreClass"), null))
|
|
383
|
+
}, {
|
|
384
|
+
json: "dysfonctionnement",
|
|
385
|
+
js: "dysfonctionnement",
|
|
386
|
+
typ: u(undefined, r("Dysfonctionnement"))
|
|
387
|
+
}], false),
|
|
388
|
+
"ContreClass": o([{
|
|
389
|
+
json: "votant",
|
|
390
|
+
js: "votant",
|
|
391
|
+
typ: u(a(r("PourVotantClass")), r("PourVotantClass"))
|
|
392
|
+
}], false),
|
|
393
|
+
"PourVotantClass": o([{
|
|
394
|
+
json: "acteurRef",
|
|
395
|
+
js: "acteurRef",
|
|
396
|
+
typ: ""
|
|
397
|
+
}, {
|
|
398
|
+
json: "mandatRef",
|
|
399
|
+
js: "mandatRef",
|
|
400
|
+
typ: ""
|
|
401
|
+
}], false),
|
|
402
|
+
"Dysfonctionnement": o([{
|
|
403
|
+
json: "nonVotants",
|
|
404
|
+
js: "nonVotants",
|
|
405
|
+
typ: u(r("ContreClass"), null)
|
|
406
|
+
}, {
|
|
407
|
+
json: "pour",
|
|
408
|
+
js: "pour",
|
|
409
|
+
typ: u(r("ContreClass"), null)
|
|
410
|
+
}, {
|
|
411
|
+
json: "contre",
|
|
412
|
+
js: "contre",
|
|
413
|
+
typ: u(r("ContreClass"), null)
|
|
414
|
+
}, {
|
|
415
|
+
json: "abstentions",
|
|
416
|
+
js: "abstentions",
|
|
417
|
+
typ: u(r("ContreClass"), null)
|
|
418
|
+
}, {
|
|
419
|
+
json: "nonVotantsVolontaires",
|
|
420
|
+
js: "nonVotantsVolontaires",
|
|
421
|
+
typ: u(r("ContreClass"), null)
|
|
422
|
+
}], false),
|
|
423
|
+
"NonVotantsVolontairesClass": o([{
|
|
424
|
+
json: "votant",
|
|
425
|
+
js: "votant",
|
|
426
|
+
typ: a(r("PourVotantClass"))
|
|
427
|
+
}], false),
|
|
428
|
+
"Objet": o([{
|
|
429
|
+
json: "libelle",
|
|
430
|
+
js: "libelle",
|
|
431
|
+
typ: ""
|
|
432
|
+
}, {
|
|
433
|
+
json: "referenceLegislative",
|
|
434
|
+
js: "referenceLegislative",
|
|
435
|
+
typ: null
|
|
436
|
+
}], false),
|
|
437
|
+
"Sort": o([{
|
|
438
|
+
json: "code",
|
|
439
|
+
js: "code",
|
|
440
|
+
typ: r("Code")
|
|
441
|
+
}, {
|
|
442
|
+
json: "libelle",
|
|
443
|
+
js: "libelle",
|
|
444
|
+
typ: r("Libelle")
|
|
445
|
+
}], false),
|
|
446
|
+
"SyntheseVote": o([{
|
|
447
|
+
json: "nombreVotants",
|
|
448
|
+
js: "nombreVotants",
|
|
449
|
+
typ: ""
|
|
450
|
+
}, {
|
|
451
|
+
json: "suffragesExprimes",
|
|
452
|
+
js: "suffragesExprimes",
|
|
453
|
+
typ: ""
|
|
454
|
+
}, {
|
|
455
|
+
json: "nbrSuffragesRequis",
|
|
456
|
+
js: "nbrSuffragesRequis",
|
|
457
|
+
typ: ""
|
|
458
|
+
}, {
|
|
459
|
+
json: "annonce",
|
|
460
|
+
js: "annonce",
|
|
461
|
+
typ: r("Libelle")
|
|
462
|
+
}, {
|
|
463
|
+
json: "decompte",
|
|
464
|
+
js: "decompte",
|
|
465
|
+
typ: r("Decompte")
|
|
466
|
+
}], false),
|
|
467
|
+
"Decompte": o([{
|
|
468
|
+
json: "pour",
|
|
469
|
+
js: "pour",
|
|
470
|
+
typ: ""
|
|
471
|
+
}, {
|
|
472
|
+
json: "contre",
|
|
473
|
+
js: "contre",
|
|
474
|
+
typ: ""
|
|
475
|
+
}, {
|
|
476
|
+
json: "abstentions",
|
|
477
|
+
js: "abstentions",
|
|
478
|
+
typ: ""
|
|
479
|
+
}, {
|
|
480
|
+
json: "nonVotants",
|
|
481
|
+
js: "nonVotants",
|
|
482
|
+
typ: ""
|
|
483
|
+
}, {
|
|
484
|
+
json: "nonVotantsVolontaires",
|
|
485
|
+
js: "nonVotantsVolontaires",
|
|
486
|
+
typ: u(undefined, "")
|
|
487
|
+
}], false),
|
|
488
|
+
"TypeVote": o([{
|
|
489
|
+
json: "codeTypeVote",
|
|
490
|
+
js: "codeTypeVote",
|
|
491
|
+
typ: r("CodeTypeVote")
|
|
492
|
+
}, {
|
|
493
|
+
json: "libelleTypeVote",
|
|
494
|
+
js: "libelleTypeVote",
|
|
495
|
+
typ: r("LibelleTypeVote")
|
|
496
|
+
}, {
|
|
497
|
+
json: "typeMajorite",
|
|
498
|
+
js: "typeMajorite",
|
|
499
|
+
typ: r("TypeMajorite")
|
|
500
|
+
}], false),
|
|
501
|
+
"VentilationVotes": o([{
|
|
502
|
+
json: "organe",
|
|
503
|
+
js: "organe",
|
|
504
|
+
typ: r("Organe")
|
|
505
|
+
}], false),
|
|
506
|
+
"Organe": o([{
|
|
507
|
+
json: "organeRef",
|
|
508
|
+
js: "organeRef",
|
|
509
|
+
typ: ""
|
|
510
|
+
}, {
|
|
511
|
+
json: "groupes",
|
|
512
|
+
js: "groupes",
|
|
513
|
+
typ: r("Groupes")
|
|
514
|
+
}], false),
|
|
515
|
+
"Groupes": o([{
|
|
516
|
+
json: "groupe",
|
|
517
|
+
js: "groupe",
|
|
518
|
+
typ: a(r("Groupe"))
|
|
519
|
+
}], false),
|
|
520
|
+
"Groupe": o([{
|
|
521
|
+
json: "organeRef",
|
|
522
|
+
js: "organeRef",
|
|
523
|
+
typ: ""
|
|
524
|
+
}, {
|
|
525
|
+
json: "nombreMembresGroupe",
|
|
526
|
+
js: "nombreMembresGroupe",
|
|
527
|
+
typ: ""
|
|
528
|
+
}, {
|
|
529
|
+
json: "vote",
|
|
530
|
+
js: "vote",
|
|
531
|
+
typ: r("Vote")
|
|
532
|
+
}], false),
|
|
533
|
+
"Vote": o([{
|
|
534
|
+
json: "positionMajoritaire",
|
|
535
|
+
js: "positionMajoritaire",
|
|
536
|
+
typ: r("PositionMajoritaire")
|
|
537
|
+
}, {
|
|
538
|
+
json: "decompteVoix",
|
|
539
|
+
js: "decompteVoix",
|
|
540
|
+
typ: r("DecompteVoix")
|
|
541
|
+
}, {
|
|
542
|
+
json: "decompteNominatif",
|
|
543
|
+
js: "decompteNominatif",
|
|
544
|
+
typ: r("DecompteNominatif")
|
|
545
|
+
}], false),
|
|
546
|
+
"DecompteNominatif": o([{
|
|
547
|
+
json: "nonVotants",
|
|
548
|
+
js: "nonVotants",
|
|
549
|
+
typ: u(r("NonVotantsClass"), null, "")
|
|
550
|
+
}, {
|
|
551
|
+
json: "pour",
|
|
552
|
+
js: "pour",
|
|
553
|
+
typ: u(undefined, u(r("ContreClass"), null))
|
|
554
|
+
}, {
|
|
555
|
+
json: "contre",
|
|
556
|
+
js: "contre",
|
|
557
|
+
typ: u(undefined, u(r("ContreClass"), null))
|
|
558
|
+
}, {
|
|
559
|
+
json: "abstentions",
|
|
560
|
+
js: "abstentions",
|
|
561
|
+
typ: u(r("PurpleAbstentions"), null)
|
|
562
|
+
}, {
|
|
563
|
+
json: "pours",
|
|
564
|
+
js: "pours",
|
|
565
|
+
typ: u(undefined, u(r("PurpleAbstentions"), null))
|
|
566
|
+
}, {
|
|
567
|
+
json: "contres",
|
|
568
|
+
js: "contres",
|
|
569
|
+
typ: u(undefined, u(r("PurpleAbstentions"), null))
|
|
570
|
+
}], false),
|
|
571
|
+
"PurpleAbstentions": o([{
|
|
572
|
+
json: "votant",
|
|
573
|
+
js: "votant",
|
|
574
|
+
typ: u(a(r("PurpleVotant")), r("PurpleVotant"))
|
|
575
|
+
}], false),
|
|
576
|
+
"PurpleVotant": o([{
|
|
577
|
+
json: "acteurRef",
|
|
578
|
+
js: "acteurRef",
|
|
579
|
+
typ: ""
|
|
580
|
+
}, {
|
|
581
|
+
json: "mandatRef",
|
|
582
|
+
js: "mandatRef",
|
|
583
|
+
typ: ""
|
|
584
|
+
}, {
|
|
585
|
+
json: "parDelegation",
|
|
586
|
+
js: "parDelegation",
|
|
587
|
+
typ: u(undefined, "")
|
|
588
|
+
}], false),
|
|
589
|
+
"NonVotantsClass": o([{
|
|
590
|
+
json: "votant",
|
|
591
|
+
js: "votant",
|
|
592
|
+
typ: u(a(r("FluffyVotant")), r("FluffyVotant"))
|
|
593
|
+
}], false),
|
|
594
|
+
"FluffyVotant": o([{
|
|
595
|
+
json: "acteurRef",
|
|
596
|
+
js: "acteurRef",
|
|
597
|
+
typ: ""
|
|
598
|
+
}, {
|
|
599
|
+
json: "mandatRef",
|
|
600
|
+
js: "mandatRef",
|
|
601
|
+
typ: ""
|
|
602
|
+
}, {
|
|
603
|
+
json: "causePositionVote",
|
|
604
|
+
js: "causePositionVote",
|
|
605
|
+
typ: r("CausePositionVote")
|
|
606
|
+
}], false),
|
|
607
|
+
"DecompteVoix": o([{
|
|
608
|
+
json: "pour",
|
|
609
|
+
js: "pour",
|
|
610
|
+
typ: ""
|
|
611
|
+
}, {
|
|
612
|
+
json: "contre",
|
|
613
|
+
js: "contre",
|
|
614
|
+
typ: ""
|
|
615
|
+
}, {
|
|
616
|
+
json: "abstention",
|
|
617
|
+
js: "abstention",
|
|
618
|
+
typ: u(undefined, "")
|
|
619
|
+
}, {
|
|
620
|
+
json: "nonVotant",
|
|
621
|
+
js: "nonVotant",
|
|
622
|
+
typ: u(undefined, "")
|
|
623
|
+
}, {
|
|
624
|
+
json: "nonVotants",
|
|
625
|
+
js: "nonVotants",
|
|
626
|
+
typ: u(undefined, "")
|
|
627
|
+
}, {
|
|
628
|
+
json: "abstentions",
|
|
629
|
+
js: "abstentions",
|
|
630
|
+
typ: u(undefined, "")
|
|
631
|
+
}, {
|
|
632
|
+
json: "nonVotantsVolontaires",
|
|
633
|
+
js: "nonVotantsVolontaires",
|
|
634
|
+
typ: u(undefined, "")
|
|
635
|
+
}], false),
|
|
636
|
+
"ModePublicationDesVotes": ["DecompteDissidentsPositionGroupe", "DecompteNominatif"],
|
|
637
|
+
"Code": ["adopté", "rejeté"],
|
|
638
|
+
"Libelle": ["l'Assemblée nationale a adopté", "L'Assemblée nationale n'a pas adopté"],
|
|
639
|
+
"CodeTypeVote": ["MOC", "SAT", "SPO", "SPS"],
|
|
640
|
+
"LibelleTypeVote": ["motion de censure", "scrutin public ordinaire", "scrutin public solennel", "scrutin à la tribune"],
|
|
641
|
+
"TypeMajorite": ["majorité absolue des suffrages exprimés", "majorité des membres composant l'Assemblée nationale", "majorité des membres composants composant l'Assemblée", "majorité des membres composants composant l'Assemblée nationale"],
|
|
642
|
+
"CausePositionVote": ["MG", "PAN", "PSE"],
|
|
643
|
+
"PositionMajoritaire": ["abstention", "contre", "pour"]
|
|
644
|
+
};
|
|
645
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNb2RlUHVibGljYXRpb25EZXNWb3RlcyIsIkNvZGUiLCJMaWJlbGxlIiwiQ29kZVR5cGVWb3RlIiwiTGliZWxsZVR5cGVWb3RlIiwiVHlwZU1ham9yaXRlIiwiQ2F1c2VQb3NpdGlvblZvdGUiLCJQb3NpdGlvbk1ham9yaXRhaXJlIiwiQ29udmVydCIsInRvU2NydXRpbnMiLCJqc29uIiwiY2FzdCIsIkpTT04iLCJwYXJzZSIsInIiLCJzY3J1dGluc1RvSnNvbiIsInZhbHVlIiwic3RyaW5naWZ5IiwidW5jYXN0IiwidG9TY3J1dGluV3JhcHBlciIsInNjcnV0aW5XcmFwcGVyVG9Kc29uIiwiaW52YWxpZFZhbHVlIiwidHlwIiwidmFsIiwia2V5IiwiRXJyb3IiLCJqc29uVG9KU1Byb3BzIiwianNvblRvSlMiLCJ1bmRlZmluZWQiLCJtYXAiLCJwcm9wcyIsImZvckVhY2giLCJwIiwianMiLCJqc1RvSlNPTlByb3BzIiwianNUb0pTT04iLCJ0cmFuc2Zvcm0iLCJnZXRQcm9wcyIsInRyYW5zZm9ybVByaW1pdGl2ZSIsInRyYW5zZm9ybVVuaW9uIiwidHlwcyIsImwiLCJsZW5ndGgiLCJpIiwiXyIsInRyYW5zZm9ybUVudW0iLCJjYXNlcyIsImluZGV4T2YiLCJ0cmFuc2Zvcm1BcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImVsIiwidHJhbnNmb3JtRGF0ZSIsImQiLCJEYXRlIiwiaXNOYU4iLCJ2YWx1ZU9mIiwidHJhbnNmb3JtT2JqZWN0IiwiYWRkaXRpb25hbCIsInJlc3VsdCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJwcm9wIiwidiIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInJlZiIsInR5cGVNYXAiLCJ1bmlvbk1lbWJlcnMiLCJhcnJheUl0ZW1zIiwiYSIsInUiLCJvIiwibmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yYXdfdHlwZXMvc2NydXRpbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVG8gcGFyc2UgdGhpcyBkYXRhOlxuLy9cbi8vICAgaW1wb3J0IHsgQ29udmVydCwgU2NydXRpbnMsIFNjcnV0aW5XcmFwcGVyIH0gZnJvbSBcIi4vZmlsZVwiO1xuLy9cbi8vICAgY29uc3Qgc2NydXRpbnMgPSBDb252ZXJ0LnRvU2NydXRpbnMoanNvbik7XG4vLyAgIGNvbnN0IHNjcnV0aW5XcmFwcGVyID0gQ29udmVydC50b1NjcnV0aW5XcmFwcGVyKGpzb24pO1xuLy9cbi8vIFRoZXNlIGZ1bmN0aW9ucyB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBKU09OIGRvZXNuJ3Rcbi8vIG1hdGNoIHRoZSBleHBlY3RlZCBpbnRlcmZhY2UsIGV2ZW4gaWYgdGhlIEpTT04gaXMgdmFsaWQuXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NydXRpbnMge1xuICAgIHNjcnV0aW5zOiBTY3J1dGluc0NsYXNzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcnV0aW5zQ2xhc3Mge1xuICAgIHNjcnV0aW46IFNjcnV0aW5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY3J1dGluV3JhcHBlciB7XG4gIHNjcnV0aW46IFNjcnV0aW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY3J1dGluIHtcbiAgICBcIkB4bWxuczp4c2lcIjogICAgICAgICAgICBzdHJpbmc7XG4gICAgdWlkOiAgICAgICAgICAgICAgICAgICAgIHN0cmluZztcbiAgICBudW1lcm86ICAgICAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIG9yZ2FuZVJlZjogICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgbGVnaXNsYXR1cmU6ICAgICAgICAgICAgIHN0cmluZztcbiAgICBzZXNzaW9uUmVmOiAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIHNlYW5jZVJlZjogICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgZGF0ZVNjcnV0aW46ICAgICAgICAgICAgIERhdGU7XG4gICAgcXVhbnRpZW1lSm91clNlYW5jZTogICAgIHN0cmluZztcbiAgICB0eXBlVm90ZTogICAgICAgICAgICAgICAgVHlwZVZvdGU7XG4gICAgc29ydDogICAgICAgICAgICAgICAgICAgIFNvcnQ7XG4gICAgdGl0cmU6ICAgICAgICAgICAgICAgICAgIHN0cmluZztcbiAgICBkZW1hbmRldXI6ICAgICAgICAgICAgICAgRGVtYW5kZXVyO1xuICAgIG9iamV0OiAgICAgICAgICAgICAgICAgICBPYmpldDtcbiAgICBtb2RlUHVibGljYXRpb25EZXNWb3RlczogTW9kZVB1YmxpY2F0aW9uRGVzVm90ZXM7XG4gICAgc3ludGhlc2VWb3RlOiAgICAgICAgICAgIFN5bnRoZXNlVm90ZTtcbiAgICB2ZW50aWxhdGlvblZvdGVzOiAgICAgICAgVmVudGlsYXRpb25Wb3RlcztcbiAgICBtaXNlQXVQb2ludDogICAgICAgICAgICAgTWlzZUF1UG9pbnQgfCBudWxsO1xuICAgIFwiQHhtbG5zXCI/OiAgICAgICAgICAgICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZW1hbmRldXIge1xuICAgIHRleHRlOiAgICAgICAgICAgICAgICBudWxsIHwgc3RyaW5nO1xuICAgIHJlZmVyZW5jZUxlZ2lzbGF0aXZlOiBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pc2VBdVBvaW50IHtcbiAgICBub25Wb3RhbnRzOiAgICAgICAgICAgIEFycmF5PENvbnRyZUNsYXNzIHwgbnVsbD4gfCBudWxsO1xuICAgIHBvdXI/OiAgICAgICAgICAgICAgICAgQ29udHJlQ2xhc3MgfCBudWxsO1xuICAgIGNvbnRyZT86ICAgICAgICAgICAgICAgQ29udHJlQ2xhc3MgfCBudWxsO1xuICAgIGFic3RlbnRpb25zOiAgICAgICAgICAgQXJyYXk8Q29udHJlQ2xhc3MgfCBudWxsPiB8IENvbnRyZUNsYXNzIHwgbnVsbDtcbiAgICBub25Wb3RhbnRzVm9sb250YWlyZXM6IEFycmF5PENvbnRyZUNsYXNzIHwgbnVsbD4gfCBOb25Wb3RhbnRzVm9sb250YWlyZXNDbGFzcyB8IG51bGw7XG4gICAgcG91cnM/OiAgICAgICAgICAgICAgICBDb250cmVDbGFzcyB8IG51bGw7XG4gICAgY29udHJlcz86ICAgICAgICAgICAgICBDb250cmVDbGFzcyB8IG51bGw7XG4gICAgZHlzZm9uY3Rpb25uZW1lbnQ/OiAgICBEeXNmb25jdGlvbm5lbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250cmVDbGFzcyB7XG4gICAgdm90YW50OiBQb3VyVm90YW50Q2xhc3NbXSB8IFBvdXJWb3RhbnRDbGFzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3VyVm90YW50Q2xhc3Mge1xuICAgIGFjdGV1clJlZjogc3RyaW5nO1xuICAgIG1hbmRhdFJlZjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER5c2ZvbmN0aW9ubmVtZW50IHtcbiAgICBub25Wb3RhbnRzOiAgICAgICAgICAgIENvbnRyZUNsYXNzIHwgbnVsbDtcbiAgICBwb3VyOiAgICAgICAgICAgICAgICAgIENvbnRyZUNsYXNzIHwgbnVsbDtcbiAgICBjb250cmU6ICAgICAgICAgICAgICAgIENvbnRyZUNsYXNzIHwgbnVsbDtcbiAgICBhYnN0ZW50aW9uczogICAgICAgICAgIENvbnRyZUNsYXNzIHwgbnVsbDtcbiAgICBub25Wb3RhbnRzVm9sb250YWlyZXM6IENvbnRyZUNsYXNzIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb25Wb3RhbnRzVm9sb250YWlyZXNDbGFzcyB7XG4gICAgdm90YW50OiBQb3VyVm90YW50Q2xhc3NbXTtcbn1cblxuZXhwb3J0IGVudW0gTW9kZVB1YmxpY2F0aW9uRGVzVm90ZXMge1xuICAgIERlY29tcHRlRGlzc2lkZW50c1Bvc2l0aW9uR3JvdXBlID0gXCJEZWNvbXB0ZURpc3NpZGVudHNQb3NpdGlvbkdyb3VwZVwiLFxuICAgIERlY29tcHRlTm9taW5hdGlmID0gXCJEZWNvbXB0ZU5vbWluYXRpZlwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9iamV0IHtcbiAgICBsaWJlbGxlOiAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIHJlZmVyZW5jZUxlZ2lzbGF0aXZlOiBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnQge1xuICAgIGNvZGU6ICAgIENvZGU7XG4gICAgbGliZWxsZTogTGliZWxsZTtcbn1cblxuZXhwb3J0IGVudW0gQ29kZSB7XG4gICAgQWRvcHTDqSA9IFwiYWRvcHTDqVwiLFxuICAgIFJlamV0w6kgPSBcInJlamV0w6lcIixcbn1cblxuZXhwb3J0IGVudW0gTGliZWxsZSB7XG4gICAgTEFzc2VtYmzDqWVOYXRpb25hbGVBQWRvcHTDqSA9IFwibCdBc3NlbWJsw6llIG5hdGlvbmFsZSBhIGFkb3B0w6lcIixcbiAgICBMQXNzZW1ibMOpZU5hdGlvbmFsZU5BUGFzQWRvcHTDqSA9IFwiTCdBc3NlbWJsw6llIG5hdGlvbmFsZSBuJ2EgcGFzIGFkb3B0w6lcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTeW50aGVzZVZvdGUge1xuICAgIG5vbWJyZVZvdGFudHM6ICAgICAgc3RyaW5nO1xuICAgIHN1ZmZyYWdlc0V4cHJpbWVzOiAgc3RyaW5nO1xuICAgIG5iclN1ZmZyYWdlc1JlcXVpczogc3RyaW5nO1xuICAgIGFubm9uY2U6ICAgICAgICAgICAgTGliZWxsZTtcbiAgICBkZWNvbXB0ZTogICAgICAgICAgIERlY29tcHRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlY29tcHRlIHtcbiAgICBwb3VyOiAgICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgY29udHJlOiAgICAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIGFic3RlbnRpb25zOiAgICAgICAgICAgIHN0cmluZztcbiAgICBub25Wb3RhbnRzOiAgICAgICAgICAgICBzdHJpbmc7XG4gICAgbm9uVm90YW50c1ZvbG9udGFpcmVzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVWb3RlIHtcbiAgICBjb2RlVHlwZVZvdGU6ICAgIENvZGVUeXBlVm90ZTtcbiAgICBsaWJlbGxlVHlwZVZvdGU6IExpYmVsbGVUeXBlVm90ZTtcbiAgICB0eXBlTWFqb3JpdGU6ICAgIFR5cGVNYWpvcml0ZTtcbn1cblxuZXhwb3J0IGVudW0gQ29kZVR5cGVWb3RlIHtcbiAgICBNb2MgPSBcIk1PQ1wiLFxuICAgIFNhdCA9IFwiU0FUXCIsXG4gICAgU3BvID0gXCJTUE9cIixcbiAgICBTcHMgPSBcIlNQU1wiLFxufVxuXG5leHBvcnQgZW51bSBMaWJlbGxlVHlwZVZvdGUge1xuICAgIE1vdGlvbkRlQ2Vuc3VyZSA9IFwibW90aW9uIGRlIGNlbnN1cmVcIixcbiAgICBTY3J1dGluUHVibGljT3JkaW5haXJlID0gXCJzY3J1dGluIHB1YmxpYyBvcmRpbmFpcmVcIixcbiAgICBTY3J1dGluUHVibGljU29sZW5uZWwgPSBcInNjcnV0aW4gcHVibGljIHNvbGVubmVsXCIsXG4gICAgU2NydXRpbsOATGFUcmlidW5lID0gXCJzY3J1dGluIMOgIGxhIHRyaWJ1bmVcIixcbn1cblxuZXhwb3J0IGVudW0gVHlwZU1ham9yaXRlIHtcbiAgICBNYWpvcml0w6lBYnNvbHVlRGVzU3VmZnJhZ2VzRXhwcmltw6lzID0gXCJtYWpvcml0w6kgYWJzb2x1ZSBkZXMgc3VmZnJhZ2VzIGV4cHJpbcOpc1wiLFxuICAgIE1ham9yaXTDqURlc01lbWJyZXNDb21wb3NhbnRMQXNzZW1ibMOpZU5hdGlvbmFsZSA9IFwibWFqb3JpdMOpIGRlcyBtZW1icmVzIGNvbXBvc2FudCBsJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlXCIsXG4gICAgTWFqb3JpdMOpRGVzTWVtYnJlc0NvbXBvc2FudHNDb21wb3NhbnRMQXNzZW1ibMOpZSA9IFwibWFqb3JpdMOpIGRlcyBtZW1icmVzIGNvbXBvc2FudHMgY29tcG9zYW50IGwnQXNzZW1ibMOpZVwiLFxuICAgIE1ham9yaXTDqURlc01lbWJyZXNDb21wb3NhbnRzQ29tcG9zYW50TEFzc2VtYmzDqWVOYXRpb25hbGUgPSBcIm1ham9yaXTDqSBkZXMgbWVtYnJlcyBjb21wb3NhbnRzIGNvbXBvc2FudCBsJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVudGlsYXRpb25Wb3RlcyB7XG4gICAgb3JnYW5lOiBPcmdhbmU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnYW5lIHtcbiAgICBvcmdhbmVSZWY6IHN0cmluZztcbiAgICBncm91cGVzOiAgIEdyb3VwZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBlcyB7XG4gICAgZ3JvdXBlOiBHcm91cGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cGUge1xuICAgIG9yZ2FuZVJlZjogICAgICAgICAgIHN0cmluZztcbiAgICBub21icmVNZW1icmVzR3JvdXBlOiBzdHJpbmc7XG4gICAgdm90ZTogICAgICAgICAgICAgICAgVm90ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWb3RlIHtcbiAgICBwb3NpdGlvbk1ham9yaXRhaXJlOiBQb3NpdGlvbk1ham9yaXRhaXJlO1xuICAgIGRlY29tcHRlVm9peDogICAgICAgIERlY29tcHRlVm9peDtcbiAgICBkZWNvbXB0ZU5vbWluYXRpZjogICBEZWNvbXB0ZU5vbWluYXRpZjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWNvbXB0ZU5vbWluYXRpZiB7XG4gICAgbm9uVm90YW50czogIE5vblZvdGFudHNDbGFzcyB8IG51bGwgfCBzdHJpbmc7XG4gICAgcG91cj86ICAgICAgIENvbnRyZUNsYXNzIHwgbnVsbDtcbiAgICBjb250cmU/OiAgICAgQ29udHJlQ2xhc3MgfCBudWxsO1xuICAgIGFic3RlbnRpb25zOiBQdXJwbGVBYnN0ZW50aW9ucyB8IG51bGw7XG4gICAgcG91cnM/OiAgICAgIFB1cnBsZUFic3RlbnRpb25zIHwgbnVsbDtcbiAgICBjb250cmVzPzogICAgUHVycGxlQWJzdGVudGlvbnMgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cnBsZUFic3RlbnRpb25zIHtcbiAgICB2b3RhbnQ6IFB1cnBsZVZvdGFudFtdIHwgUHVycGxlVm90YW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cnBsZVZvdGFudCB7XG4gICAgYWN0ZXVyUmVmOiAgICAgIHN0cmluZztcbiAgICBtYW5kYXRSZWY6ICAgICAgc3RyaW5nO1xuICAgIHBhckRlbGVnYXRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9uVm90YW50c0NsYXNzIHtcbiAgICB2b3RhbnQ6IEZsdWZmeVZvdGFudFtdIHwgRmx1ZmZ5Vm90YW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsdWZmeVZvdGFudCB7XG4gICAgYWN0ZXVyUmVmOiAgICAgICAgIHN0cmluZztcbiAgICBtYW5kYXRSZWY6ICAgICAgICAgc3RyaW5nO1xuICAgIGNhdXNlUG9zaXRpb25Wb3RlOiBDYXVzZVBvc2l0aW9uVm90ZTtcbn1cblxuZXhwb3J0IGVudW0gQ2F1c2VQb3NpdGlvblZvdGUge1xuICAgIE1nID0gXCJNR1wiLFxuICAgIFBhbiA9IFwiUEFOXCIsXG4gICAgUHNlID0gXCJQU0VcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWNvbXB0ZVZvaXgge1xuICAgIHBvdXI6ICAgICAgICAgICAgICAgICAgIHN0cmluZztcbiAgICBjb250cmU6ICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgYWJzdGVudGlvbj86ICAgICAgICAgICAgc3RyaW5nO1xuICAgIG5vblZvdGFudD86ICAgICAgICAgICAgIHN0cmluZztcbiAgICBub25Wb3RhbnRzPzogICAgICAgICAgICBzdHJpbmc7XG4gICAgYWJzdGVudGlvbnM/OiAgICAgICAgICAgc3RyaW5nO1xuICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gUG9zaXRpb25NYWpvcml0YWlyZSB7XG4gICAgQWJzdGVudGlvbiA9IFwiYWJzdGVudGlvblwiLFxuICAgIENvbnRyZSA9IFwiY29udHJlXCIsXG4gICAgUG91ciA9IFwicG91clwiLFxufVxuXG4vLyBDb252ZXJ0cyBKU09OIHN0cmluZ3MgdG8vZnJvbSB5b3VyIHR5cGVzXG4vLyBhbmQgYXNzZXJ0cyB0aGUgcmVzdWx0cyBvZiBKU09OLnBhcnNlIGF0IHJ1bnRpbWVcbmV4cG9ydCBjbGFzcyBDb252ZXJ0IHtcbiAgICBwdWJsaWMgc3RhdGljIHRvU2NydXRpbnMoanNvbjogc3RyaW5nKTogU2NydXRpbnMge1xuICAgICAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiU2NydXRpbnNcIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgc2NydXRpbnNUb0pzb24odmFsdWU6IFNjcnV0aW5zKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHVuY2FzdCh2YWx1ZSwgcihcIlNjcnV0aW5zXCIpKSwgbnVsbCwgMik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB0b1NjcnV0aW5XcmFwcGVyKGpzb246IHN0cmluZyk6IFNjcnV0aW5XcmFwcGVyIHtcbiAgICAgICAgcmV0dXJuIGNhc3QoSlNPTi5wYXJzZShqc29uKSwgcihcIlNjcnV0aW5XcmFwcGVyXCIpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHNjcnV0aW5XcmFwcGVyVG9Kc29uKHZhbHVlOiBTY3J1dGluV3JhcHBlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh1bmNhc3QodmFsdWUsIHIoXCJTY3J1dGluV3JhcHBlclwiKSksIG51bGwsIDIpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaW52YWxpZFZhbHVlKHR5cDogYW55LCB2YWw6IGFueSwga2V5OiBhbnkgPSAnJyk6IG5ldmVyIHtcbiAgICBpZiAoa2V5KSB7XG4gICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIHZhbHVlIGZvciBrZXkgXCIke2tleX1cIi4gRXhwZWN0ZWQgdHlwZSAke0pTT04uc3RyaW5naWZ5KHR5cCl9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeSh2YWwpfWApO1xuICAgIH1cbiAgICB0aHJvdyBFcnJvcihgSW52YWxpZCB2YWx1ZSAke0pTT04uc3RyaW5naWZ5KHZhbCl9IGZvciB0eXBlICR7SlNPTi5zdHJpbmdpZnkodHlwKX1gLCApO1xufVxuXG5mdW5jdGlvbiBqc29uVG9KU1Byb3BzKHR5cDogYW55KTogYW55IHtcbiAgICBpZiAodHlwLmpzb25Ub0pTID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgbWFwOiBhbnkgPSB7fTtcbiAgICAgICAgdHlwLnByb3BzLmZvckVhY2goKHA6IGFueSkgPT4gbWFwW3AuanNvbl0gPSB7IGtleTogcC5qcywgdHlwOiBwLnR5cCB9KTtcbiAgICAgICAgdHlwLmpzb25Ub0pTID0gbWFwO1xuICAgIH1cbiAgICByZXR1cm4gdHlwLmpzb25Ub0pTO1xufVxuXG5mdW5jdGlvbiBqc1RvSlNPTlByb3BzKHR5cDogYW55KTogYW55IHtcbiAgICBpZiAodHlwLmpzVG9KU09OID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgbWFwOiBhbnkgPSB7fTtcbiAgICAgICAgdHlwLnByb3BzLmZvckVhY2goKHA6IGFueSkgPT4gbWFwW3AuanNdID0geyBrZXk6IHAuanNvbiwgdHlwOiBwLnR5cCB9KTtcbiAgICAgICAgdHlwLmpzVG9KU09OID0gbWFwO1xuICAgIH1cbiAgICByZXR1cm4gdHlwLmpzVG9KU09OO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm0odmFsOiBhbnksIHR5cDogYW55LCBnZXRQcm9wczogYW55LCBrZXk6IGFueSA9ICcnKTogYW55IHtcbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1QcmltaXRpdmUodHlwOiBzdHJpbmcsIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHR5cGVvZiB0eXAgPT09IHR5cGVvZiB2YWwpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtVW5pb24odHlwczogYW55W10sIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgLy8gdmFsIG11c3QgdmFsaWRhdGUgYWdhaW5zdCBvbmUgdHlwIGluIHR5cHNcbiAgICAgICAgY29uc3QgbCA9IHR5cHMubGVuZ3RoO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgdHlwID0gdHlwc1tpXTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwgZ2V0UHJvcHMpO1xuICAgICAgICAgICAgfSBjYXRjaCAoXykge31cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW52YWxpZFZhbHVlKHR5cHMsIHZhbCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtRW51bShjYXNlczogc3RyaW5nW10sIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKGNhc2VzLmluZGV4T2YodmFsKSAhPT0gLTEpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUoY2FzZXMsIHZhbCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtQXJyYXkodHlwOiBhbnksIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgLy8gdmFsIG11c3QgYmUgYW4gYXJyYXkgd2l0aCBubyBpbnZhbGlkIGVsZW1lbnRzXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gaW52YWxpZFZhbHVlKFwiYXJyYXlcIiwgdmFsKTtcbiAgICAgICAgcmV0dXJuIHZhbC5tYXAoZWwgPT4gdHJhbnNmb3JtKGVsLCB0eXAsIGdldFByb3BzKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtRGF0ZSh2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICh2YWwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh2YWwpO1xuICAgICAgICBpZiAoaXNOYU4oZC52YWx1ZU9mKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwiRGF0ZVwiLCB2YWwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybU9iamVjdChwcm9wczogeyBbazogc3RyaW5nXTogYW55IH0sIGFkZGl0aW9uYWw6IGFueSwgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodmFsID09PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwib2JqZWN0XCIsIHZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocHJvcHMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3AgPSBwcm9wc1trZXldO1xuICAgICAgICAgICAgY29uc3QgdiA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YWwsIGtleSkgPyB2YWxba2V5XSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJlc3VsdFtwcm9wLmtleV0gPSB0cmFuc2Zvcm0odiwgcHJvcC50eXAsIGdldFByb3BzLCBwcm9wLmtleSk7XG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWwpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm0odmFsW2tleV0sIGFkZGl0aW9uYWwsIGdldFByb3BzLCBrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAodHlwID09PSBcImFueVwiKSByZXR1cm4gdmFsO1xuICAgIGlmICh0eXAgPT09IG51bGwpIHtcbiAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCkgcmV0dXJuIHZhbDtcbiAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCk7XG4gICAgfVxuICAgIGlmICh0eXAgPT09IGZhbHNlKSByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsKTtcbiAgICB3aGlsZSAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIiAmJiB0eXAucmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdHlwID0gdHlwZU1hcFt0eXAucmVmXTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodHlwKSkgcmV0dXJuIHRyYW5zZm9ybUVudW0odHlwLCB2YWwpO1xuICAgIGlmICh0eXBlb2YgdHlwID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiB0eXAuaGFzT3duUHJvcGVydHkoXCJ1bmlvbk1lbWJlcnNcIikgPyB0cmFuc2Zvcm1Vbmlvbih0eXAudW5pb25NZW1iZXJzLCB2YWwpXG4gICAgICAgICAgICA6IHR5cC5oYXNPd25Qcm9wZXJ0eShcImFycmF5SXRlbXNcIikgICAgPyB0cmFuc2Zvcm1BcnJheSh0eXAuYXJyYXlJdGVtcywgdmFsKVxuICAgICAgICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJwcm9wc1wiKSAgICAgICAgID8gdHJhbnNmb3JtT2JqZWN0KGdldFByb3BzKHR5cCksIHR5cC5hZGRpdGlvbmFsLCB2YWwpXG4gICAgICAgICAgICA6IGludmFsaWRWYWx1ZSh0eXAsIHZhbCk7XG4gICAgfVxuICAgIC8vIE51bWJlcnMgY2FuIGJlIHBhcnNlZCBieSBEYXRlIGJ1dCBzaG91bGRuJ3QgYmUuXG4gICAgaWYgKHR5cCA9PT0gRGF0ZSAmJiB0eXBlb2YgdmFsICE9PSBcIm51bWJlclwiKSByZXR1cm4gdHJhbnNmb3JtRGF0ZSh2YWwpO1xuICAgIHJldHVybiB0cmFuc2Zvcm1QcmltaXRpdmUodHlwLCB2YWwpO1xufVxuXG5mdW5jdGlvbiBjYXN0PFQ+KHZhbDogYW55LCB0eXA6IGFueSk6IFQge1xuICAgIHJldHVybiB0cmFuc2Zvcm0odmFsLCB0eXAsIGpzb25Ub0pTUHJvcHMpO1xufVxuXG5mdW5jdGlvbiB1bmNhc3Q8VD4odmFsOiBULCB0eXA6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNUb0pTT05Qcm9wcyk7XG59XG5cbmZ1bmN0aW9uIGEodHlwOiBhbnkpIHtcbiAgICByZXR1cm4geyBhcnJheUl0ZW1zOiB0eXAgfTtcbn1cblxuZnVuY3Rpb24gdSguLi50eXBzOiBhbnlbXSkge1xuICAgIHJldHVybiB7IHVuaW9uTWVtYmVyczogdHlwcyB9O1xufVxuXG5mdW5jdGlvbiBvKHByb3BzOiBhbnlbXSwgYWRkaXRpb25hbDogYW55KSB7XG4gICAgcmV0dXJuIHsgcHJvcHMsIGFkZGl0aW9uYWwgfTtcbn1cblxuLy8gZnVuY3Rpb24gbShhZGRpdGlvbmFsOiBhbnkpIHtcbi8vICAgICByZXR1cm4geyBwcm9wczogW10sIGFkZGl0aW9uYWwgfTtcbi8vIH1cblxuZnVuY3Rpb24gcihuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4geyByZWY6IG5hbWUgfTtcbn1cblxuY29uc3QgdHlwZU1hcDogYW55ID0ge1xuICAgIFwiU2NydXRpbnNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJzY3J1dGluc1wiLCBqczogXCJzY3J1dGluc1wiLCB0eXA6IHIoXCJTY3J1dGluc0NsYXNzXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiU2NydXRpbnNDbGFzc1wiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInNjcnV0aW5cIiwganM6IFwic2NydXRpblwiLCB0eXA6IGEocihcIlNjcnV0aW5cIikpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiU2NydXRpbldyYXBwZXJcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJzY3J1dGluXCIsIGpzOiBcInNjcnV0aW5cIiwgdHlwOiByKFwiU2NydXRpblwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlNjcnV0aW5cIjogbyhbXG4gICAgICAgIHsganNvbjogXCJAeG1sbnM6eHNpXCIsIGpzOiBcIkB4bWxuczp4c2lcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJ1aWRcIiwganM6IFwidWlkXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibnVtZXJvXCIsIGpzOiBcIm51bWVyb1wiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm9yZ2FuZVJlZlwiLCBqczogXCJvcmdhbmVSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJsZWdpc2xhdHVyZVwiLCBqczogXCJsZWdpc2xhdHVyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInNlc3Npb25SZWZcIiwganM6IFwic2Vzc2lvblJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInNlYW5jZVJlZlwiLCBqczogXCJzZWFuY2VSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJkYXRlU2NydXRpblwiLCBqczogXCJkYXRlU2NydXRpblwiLCB0eXA6IERhdGUgfSxcbiAgICAgICAgeyBqc29uOiBcInF1YW50aWVtZUpvdXJTZWFuY2VcIiwganM6IFwicXVhbnRpZW1lSm91clNlYW5jZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInR5cGVWb3RlXCIsIGpzOiBcInR5cGVWb3RlXCIsIHR5cDogcihcIlR5cGVWb3RlXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJzb3J0XCIsIGpzOiBcInNvcnRcIiwgdHlwOiByKFwiU29ydFwiKSB9LFxuICAgICAgICB7IGpzb246IFwidGl0cmVcIiwganM6IFwidGl0cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJkZW1hbmRldXJcIiwganM6IFwiZGVtYW5kZXVyXCIsIHR5cDogcihcIkRlbWFuZGV1clwiKSB9LFxuICAgICAgICB7IGpzb246IFwib2JqZXRcIiwganM6IFwib2JqZXRcIiwgdHlwOiByKFwiT2JqZXRcIikgfSxcbiAgICAgICAgeyBqc29uOiBcIm1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzXCIsIGpzOiBcIm1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzXCIsIHR5cDogcihcIk1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJzeW50aGVzZVZvdGVcIiwganM6IFwic3ludGhlc2VWb3RlXCIsIHR5cDogcihcIlN5bnRoZXNlVm90ZVwiKSB9LFxuICAgICAgICB7IGpzb246IFwidmVudGlsYXRpb25Wb3Rlc1wiLCBqczogXCJ2ZW50aWxhdGlvblZvdGVzXCIsIHR5cDogcihcIlZlbnRpbGF0aW9uVm90ZXNcIikgfSxcbiAgICAgICAgeyBqc29uOiBcIm1pc2VBdVBvaW50XCIsIGpzOiBcIm1pc2VBdVBvaW50XCIsIHR5cDogdShyKFwiTWlzZUF1UG9pbnRcIiksIG51bGwpIH0sXG4gICAgICAgIHsganNvbjogXCJAeG1sbnNcIiwganM6IFwiQHhtbG5zXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiRGVtYW5kZXVyXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwidGV4dGVcIiwganM6IFwidGV4dGVcIiwgdHlwOiB1KG51bGwsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJyZWZlcmVuY2VMZWdpc2xhdGl2ZVwiLCBqczogXCJyZWZlcmVuY2VMZWdpc2xhdGl2ZVwiLCB0eXA6IG51bGwgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJNaXNlQXVQb2ludFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIm5vblZvdGFudHNcIiwganM6IFwibm9uVm90YW50c1wiLCB0eXA6IHUoYSh1KHIoXCJDb250cmVDbGFzc1wiKSwgbnVsbCkpLCBudWxsKSB9LFxuICAgICAgICB7IGpzb246IFwicG91clwiLCBqczogXCJwb3VyXCIsIHR5cDogdSh1bmRlZmluZWQsIHUocihcIkNvbnRyZUNsYXNzXCIpLCBudWxsKSkgfSxcbiAgICAgICAgeyBqc29uOiBcImNvbnRyZVwiLCBqczogXCJjb250cmVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShyKFwiQ29udHJlQ2xhc3NcIiksIG51bGwpKSB9LFxuICAgICAgICB7IGpzb246IFwiYWJzdGVudGlvbnNcIiwganM6IFwiYWJzdGVudGlvbnNcIiwgdHlwOiB1KGEodShyKFwiQ29udHJlQ2xhc3NcIiksIG51bGwpKSwgcihcIkNvbnRyZUNsYXNzXCIpLCBudWxsKSB9LFxuICAgICAgICB7IGpzb246IFwibm9uVm90YW50c1ZvbG9udGFpcmVzXCIsIGpzOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLCB0eXA6IHUoYSh1KHIoXCJDb250cmVDbGFzc1wiKSwgbnVsbCkpLCByKFwiTm9uVm90YW50c1ZvbG9udGFpcmVzQ2xhc3NcIiksIG51bGwpIH0sXG4gICAgICAgIHsganNvbjogXCJwb3Vyc1wiLCBqczogXCJwb3Vyc1wiLCB0eXA6IHUodW5kZWZpbmVkLCB1KHIoXCJDb250cmVDbGFzc1wiKSwgbnVsbCkpIH0sXG4gICAgICAgIHsganNvbjogXCJjb250cmVzXCIsIGpzOiBcImNvbnRyZXNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShyKFwiQ29udHJlQ2xhc3NcIiksIG51bGwpKSB9LFxuICAgICAgICB7IGpzb246IFwiZHlzZm9uY3Rpb25uZW1lbnRcIiwganM6IFwiZHlzZm9uY3Rpb25uZW1lbnRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgcihcIkR5c2ZvbmN0aW9ubmVtZW50XCIpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkNvbnRyZUNsYXNzXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwidm90YW50XCIsIGpzOiBcInZvdGFudFwiLCB0eXA6IHUoYShyKFwiUG91clZvdGFudENsYXNzXCIpKSwgcihcIlBvdXJWb3RhbnRDbGFzc1wiKSkgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJQb3VyVm90YW50Q2xhc3NcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJhY3RldXJSZWZcIiwganM6IFwiYWN0ZXVyUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibWFuZGF0UmVmXCIsIGpzOiBcIm1hbmRhdFJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJEeXNmb25jdGlvbm5lbWVudFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIm5vblZvdGFudHNcIiwganM6IFwibm9uVm90YW50c1wiLCB0eXA6IHUocihcIkNvbnRyZUNsYXNzXCIpLCBudWxsKSB9LFxuICAgICAgICB7IGpzb246IFwicG91clwiLCBqczogXCJwb3VyXCIsIHR5cDogdShyKFwiQ29udHJlQ2xhc3NcIiksIG51bGwpIH0sXG4gICAgICAgIHsganNvbjogXCJjb250cmVcIiwganM6IFwiY29udHJlXCIsIHR5cDogdShyKFwiQ29udHJlQ2xhc3NcIiksIG51bGwpIH0sXG4gICAgICAgIHsganNvbjogXCJhYnN0ZW50aW9uc1wiLCBqczogXCJhYnN0ZW50aW9uc1wiLCB0eXA6IHUocihcIkNvbnRyZUNsYXNzXCIpLCBudWxsKSB9LFxuICAgICAgICB7IGpzb246IFwibm9uVm90YW50c1ZvbG9udGFpcmVzXCIsIGpzOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLCB0eXA6IHUocihcIkNvbnRyZUNsYXNzXCIpLCBudWxsKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIk5vblZvdGFudHNWb2xvbnRhaXJlc0NsYXNzXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwidm90YW50XCIsIGpzOiBcInZvdGFudFwiLCB0eXA6IGEocihcIlBvdXJWb3RhbnRDbGFzc1wiKSkgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJPYmpldFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImxpYmVsbGVcIiwganM6IFwibGliZWxsZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInJlZmVyZW5jZUxlZ2lzbGF0aXZlXCIsIGpzOiBcInJlZmVyZW5jZUxlZ2lzbGF0aXZlXCIsIHR5cDogbnVsbCB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlNvcnRcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJjb2RlXCIsIGpzOiBcImNvZGVcIiwgdHlwOiByKFwiQ29kZVwiKSB9LFxuICAgICAgICB7IGpzb246IFwibGliZWxsZVwiLCBqczogXCJsaWJlbGxlXCIsIHR5cDogcihcIkxpYmVsbGVcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJTeW50aGVzZVZvdGVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJub21icmVWb3RhbnRzXCIsIGpzOiBcIm5vbWJyZVZvdGFudHNcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJzdWZmcmFnZXNFeHByaW1lc1wiLCBqczogXCJzdWZmcmFnZXNFeHByaW1lc1wiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm5iclN1ZmZyYWdlc1JlcXVpc1wiLCBqczogXCJuYnJTdWZmcmFnZXNSZXF1aXNcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJhbm5vbmNlXCIsIGpzOiBcImFubm9uY2VcIiwgdHlwOiByKFwiTGliZWxsZVwiKSB9LFxuICAgICAgICB7IGpzb246IFwiZGVjb21wdGVcIiwganM6IFwiZGVjb21wdGVcIiwgdHlwOiByKFwiRGVjb21wdGVcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJEZWNvbXB0ZVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInBvdXJcIiwganM6IFwicG91clwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImNvbnRyZVwiLCBqczogXCJjb250cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJhYnN0ZW50aW9uc1wiLCBqczogXCJhYnN0ZW50aW9uc1wiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm5vblZvdGFudHNcIiwganM6IFwibm9uVm90YW50c1wiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLCBqczogXCJub25Wb3RhbnRzVm9sb250YWlyZXNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJUeXBlVm90ZVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImNvZGVUeXBlVm90ZVwiLCBqczogXCJjb2RlVHlwZVZvdGVcIiwgdHlwOiByKFwiQ29kZVR5cGVWb3RlXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJsaWJlbGxlVHlwZVZvdGVcIiwganM6IFwibGliZWxsZVR5cGVWb3RlXCIsIHR5cDogcihcIkxpYmVsbGVUeXBlVm90ZVwiKSB9LFxuICAgICAgICB7IGpzb246IFwidHlwZU1ham9yaXRlXCIsIGpzOiBcInR5cGVNYWpvcml0ZVwiLCB0eXA6IHIoXCJUeXBlTWFqb3JpdGVcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJWZW50aWxhdGlvblZvdGVzXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwib3JnYW5lXCIsIGpzOiBcIm9yZ2FuZVwiLCB0eXA6IHIoXCJPcmdhbmVcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJPcmdhbmVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJvcmdhbmVSZWZcIiwganM6IFwib3JnYW5lUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiZ3JvdXBlc1wiLCBqczogXCJncm91cGVzXCIsIHR5cDogcihcIkdyb3VwZXNcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJHcm91cGVzXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwiZ3JvdXBlXCIsIGpzOiBcImdyb3VwZVwiLCB0eXA6IGEocihcIkdyb3VwZVwiKSkgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJHcm91cGVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJvcmdhbmVSZWZcIiwganM6IFwib3JnYW5lUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibm9tYnJlTWVtYnJlc0dyb3VwZVwiLCBqczogXCJub21icmVNZW1icmVzR3JvdXBlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwidm90ZVwiLCBqczogXCJ2b3RlXCIsIHR5cDogcihcIlZvdGVcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJWb3RlXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwicG9zaXRpb25NYWpvcml0YWlyZVwiLCBqczogXCJwb3NpdGlvbk1ham9yaXRhaXJlXCIsIHR5cDogcihcIlBvc2l0aW9uTWFqb3JpdGFpcmVcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImRlY29tcHRlVm9peFwiLCBqczogXCJkZWNvbXB0ZVZvaXhcIiwgdHlwOiByKFwiRGVjb21wdGVWb2l4XCIpIH0sXG4gICAgICAgIHsganNvbjogXCJkZWNvbXB0ZU5vbWluYXRpZlwiLCBqczogXCJkZWNvbXB0ZU5vbWluYXRpZlwiLCB0eXA6IHIoXCJEZWNvbXB0ZU5vbWluYXRpZlwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkRlY29tcHRlTm9taW5hdGlmXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwibm9uVm90YW50c1wiLCBqczogXCJub25Wb3RhbnRzXCIsIHR5cDogdShyKFwiTm9uVm90YW50c0NsYXNzXCIpLCBudWxsLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwicG91clwiLCBqczogXCJwb3VyXCIsIHR5cDogdSh1bmRlZmluZWQsIHUocihcIkNvbnRyZUNsYXNzXCIpLCBudWxsKSkgfSxcbiAgICAgICAgeyBqc29uOiBcImNvbnRyZVwiLCBqczogXCJjb250cmVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShyKFwiQ29udHJlQ2xhc3NcIiksIG51bGwpKSB9LFxuICAgICAgICB7IGpzb246IFwiYWJzdGVudGlvbnNcIiwganM6IFwiYWJzdGVudGlvbnNcIiwgdHlwOiB1KHIoXCJQdXJwbGVBYnN0ZW50aW9uc1wiKSwgbnVsbCkgfSxcbiAgICAgICAgeyBqc29uOiBcInBvdXJzXCIsIGpzOiBcInBvdXJzXCIsIHR5cDogdSh1bmRlZmluZWQsIHUocihcIlB1cnBsZUFic3RlbnRpb25zXCIpLCBudWxsKSkgfSxcbiAgICAgICAgeyBqc29uOiBcImNvbnRyZXNcIiwganM6IFwiY29udHJlc1wiLCB0eXA6IHUodW5kZWZpbmVkLCB1KHIoXCJQdXJwbGVBYnN0ZW50aW9uc1wiKSwgbnVsbCkpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiUHVycGxlQWJzdGVudGlvbnNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJ2b3RhbnRcIiwganM6IFwidm90YW50XCIsIHR5cDogdShhKHIoXCJQdXJwbGVWb3RhbnRcIikpLCByKFwiUHVycGxlVm90YW50XCIpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlB1cnBsZVZvdGFudFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImFjdGV1clJlZlwiLCBqczogXCJhY3RldXJSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJtYW5kYXRSZWZcIiwganM6IFwibWFuZGF0UmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwicGFyRGVsZWdhdGlvblwiLCBqczogXCJwYXJEZWxlZ2F0aW9uXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiTm9uVm90YW50c0NsYXNzXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwidm90YW50XCIsIGpzOiBcInZvdGFudFwiLCB0eXA6IHUoYShyKFwiRmx1ZmZ5Vm90YW50XCIpKSwgcihcIkZsdWZmeVZvdGFudFwiKSkgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJGbHVmZnlWb3RhbnRcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJhY3RldXJSZWZcIiwganM6IFwiYWN0ZXVyUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibWFuZGF0UmVmXCIsIGpzOiBcIm1hbmRhdFJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImNhdXNlUG9zaXRpb25Wb3RlXCIsIGpzOiBcImNhdXNlUG9zaXRpb25Wb3RlXCIsIHR5cDogcihcIkNhdXNlUG9zaXRpb25Wb3RlXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiRGVjb21wdGVWb2l4XCI6IG8oW1xuICAgICAgICB7IGpzb246IFwicG91clwiLCBqczogXCJwb3VyXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiY29udHJlXCIsIGpzOiBcImNvbnRyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImFic3RlbnRpb25cIiwganM6IFwiYWJzdGVudGlvblwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwibm9uVm90YW50XCIsIGpzOiBcIm5vblZvdGFudFwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwibm9uVm90YW50c1wiLCBqczogXCJub25Wb3RhbnRzXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJhYnN0ZW50aW9uc1wiLCBqczogXCJhYnN0ZW50aW9uc1wiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwibm9uVm90YW50c1ZvbG9udGFpcmVzXCIsIGpzOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIk1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzXCI6IFtcbiAgICAgICAgXCJEZWNvbXB0ZURpc3NpZGVudHNQb3NpdGlvbkdyb3VwZVwiLFxuICAgICAgICBcIkRlY29tcHRlTm9taW5hdGlmXCIsXG4gICAgXSxcbiAgICBcIkNvZGVcIjogW1xuICAgICAgICBcImFkb3B0w6lcIixcbiAgICAgICAgXCJyZWpldMOpXCIsXG4gICAgXSxcbiAgICBcIkxpYmVsbGVcIjogW1xuICAgICAgICBcImwnQXNzZW1ibMOpZSBuYXRpb25hbGUgYSBhZG9wdMOpXCIsXG4gICAgICAgIFwiTCdBc3NlbWJsw6llIG5hdGlvbmFsZSBuJ2EgcGFzIGFkb3B0w6lcIixcbiAgICBdLFxuICAgIFwiQ29kZVR5cGVWb3RlXCI6IFtcbiAgICAgICAgXCJNT0NcIixcbiAgICAgICAgXCJTQVRcIixcbiAgICAgICAgXCJTUE9cIixcbiAgICAgICAgXCJTUFNcIixcbiAgICBdLFxuICAgIFwiTGliZWxsZVR5cGVWb3RlXCI6IFtcbiAgICAgICAgXCJtb3Rpb24gZGUgY2Vuc3VyZVwiLFxuICAgICAgICBcInNjcnV0aW4gcHVibGljIG9yZGluYWlyZVwiLFxuICAgICAgICBcInNjcnV0aW4gcHVibGljIHNvbGVubmVsXCIsXG4gICAgICAgIFwic2NydXRpbiDDoCBsYSB0cmlidW5lXCIsXG4gICAgXSxcbiAgICBcIlR5cGVNYWpvcml0ZVwiOiBbXG4gICAgICAgIFwibWFqb3JpdMOpIGFic29sdWUgZGVzIHN1ZmZyYWdlcyBleHByaW3DqXNcIixcbiAgICAgICAgXCJtYWpvcml0w6kgZGVzIG1lbWJyZXMgY29tcG9zYW50IGwnQXNzZW1ibMOpZSBuYXRpb25hbGVcIixcbiAgICAgICAgXCJtYWpvcml0w6kgZGVzIG1lbWJyZXMgY29tcG9zYW50cyBjb21wb3NhbnQgbCdBc3NlbWJsw6llXCIsXG4gICAgICAgIFwibWFqb3JpdMOpIGRlcyBtZW1icmVzIGNvbXBvc2FudHMgY29tcG9zYW50IGwnQXNzZW1ibMOpZSBuYXRpb25hbGVcIixcbiAgICBdLFxuICAgIFwiQ2F1c2VQb3NpdGlvblZvdGVcIjogW1xuICAgICAgICBcIk1HXCIsXG4gICAgICAgIFwiUEFOXCIsXG4gICAgICAgIFwiUFNFXCIsXG4gICAgXSxcbiAgICBcIlBvc2l0aW9uTWFqb3JpdGFpcmVcIjogW1xuICAgICAgICBcImFic3RlbnRpb25cIixcbiAgICAgICAgXCJjb250cmVcIixcbiAgICAgICAgXCJwb3VyXCIsXG4gICAgXSxcbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXlFQSxXQUFZQSx1QkFBWjs7V0FBWUEsdUI7RUFBQUEsdUI7RUFBQUEsdUI7R0FBQUEsdUIsS0FBQUEsdUI7O0FBZVosV0FBWUMsSUFBWjs7V0FBWUEsSTtFQUFBQSxJO0VBQUFBLEk7R0FBQUEsSSxLQUFBQSxJOztBQUtaLFdBQVlDLE9BQVo7O1dBQVlBLE87RUFBQUEsTztFQUFBQSxPO0dBQUFBLE8sS0FBQUEsTzs7QUEyQlosV0FBWUMsWUFBWjs7V0FBWUEsWTtFQUFBQSxZO0VBQUFBLFk7RUFBQUEsWTtFQUFBQSxZO0dBQUFBLFksS0FBQUEsWTs7QUFPWixXQUFZQyxlQUFaOztXQUFZQSxlO0VBQUFBLGU7RUFBQUEsZTtFQUFBQSxlO0VBQUFBLGU7R0FBQUEsZSxLQUFBQSxlOztBQU9aLFdBQVlDLFlBQVo7O1dBQVlBLFk7RUFBQUEsWTtFQUFBQSxZO0VBQUFBLFk7RUFBQUEsWTtHQUFBQSxZLEtBQUFBLFk7O0FBNkRaLFdBQVlDLGlCQUFaOztXQUFZQSxpQjtFQUFBQSxpQjtFQUFBQSxpQjtFQUFBQSxpQjtHQUFBQSxpQixLQUFBQSxpQjs7QUFnQlosV0FBWUMsbUJBQVosQyxDQU1BO0FBQ0E7O1dBUFlBLG1CO0VBQUFBLG1CO0VBQUFBLG1CO0VBQUFBLG1CO0dBQUFBLG1CLEtBQUFBLG1COztBQVFaLE9BQU8sTUFBTUMsT0FBTixDQUFjO0VBQ08sT0FBVkMsVUFBVSxDQUFDQyxJQUFELEVBQXlCO0lBQzdDLE9BQU9DLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxLQUFMLENBQVdILElBQVgsQ0FBRCxFQUFtQkksQ0FBQyxDQUFDLFVBQUQsQ0FBcEIs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
|