@tricoteuses/assemblee
Version:
Retrieve, clean up & handle French Assemblée nationale's open data
899 lines (896 loc) • 100 kB
JavaScript
"use strict";
require("core-js/modules/es.symbol.js");
require("core-js/modules/es.symbol.description.js");
require("core-js/modules/es.symbol.iterator.js");
require("core-js/modules/es.array.iterator.js");
require("core-js/modules/es.object.define-property.js");
require("core-js/modules/es.string.iterator.js");
require("core-js/modules/web.dom-collections.iterator.js");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TypePosition = exports.TypeMimeType = exports.TypeAuteur = exports.SortAmendement = exports.Nom = exports.EtatAmendementLibelle = exports.EtatAmendementCode = exports.DivisionType = exports.Convert = exports.CodeEtat = exports.AvantAApres = exports.Action = exports.AccordGouvernementDepotHorsDelai = void 0;
require("core-js/modules/es.symbol.to-primitive.js");
require("core-js/modules/es.array.concat.js");
require("core-js/modules/es.array.for-each.js");
require("core-js/modules/es.array.index-of.js");
require("core-js/modules/es.array.is-array.js");
require("core-js/modules/es.array.map.js");
require("core-js/modules/es.date.to-json.js");
require("core-js/modules/es.date.to-primitive.js");
require("core-js/modules/es.date.to-string.js");
require("core-js/modules/es.number.constructor.js");
require("core-js/modules/es.object.get-own-property-names.js");
require("core-js/modules/es.object.keys.js");
require("core-js/modules/es.object.to-string.js");
require("core-js/modules/web.dom-collections.for-each.js");
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
// To parse this data:
//
// import { Convert, Amendement, Amendements } from "./file";
//
// const amendement = Convert.toAmendement(json);
// const amendements = Convert.toAmendements(json);
//
// These functions will throw an error if the JSON doesn't
// match the expected interface, even if the JSON is valid.
var AccordGouvernementDepotHorsDelai = exports.AccordGouvernementDepotHorsDelai = /*#__PURE__*/function (AccordGouvernementDepotHorsDelai) {
AccordGouvernementDepotHorsDelai["Accord"] = "Accord";
AccordGouvernementDepotHorsDelai["SansObjet"] = "Sans objet";
return AccordGouvernementDepotHorsDelai;
}({});
var Action = exports.Action = /*#__PURE__*/function (Action) {
Action["Cr\xE9ation"] = "cr\xE9ation";
Action["Modification"] = "modification";
Action["Suppression"] = "suppression";
return Action;
}({});
var EtatAmendementCode = exports.EtatAmendementCode = /*#__PURE__*/function (EtatAmendementCode) {
EtatAmendementCode["AC"] = "AC";
EtatAmendementCode["At"] = "AT";
EtatAmendementCode["Di"] = "DI";
EtatAmendementCode["Effac\xE9"] = "effac\xE9";
EtatAmendementCode["Er"] = "ER";
EtatAmendementCode["Et"] = "ET";
EtatAmendementCode["IR"] = "IR";
EtatAmendementCode["Irr127"] = "IRR127";
EtatAmendementCode["Irr20"] = "IRR20";
EtatAmendementCode["Irr37"] = "IRR37";
EtatAmendementCode["Irr38"] = "IRR38";
EtatAmendementCode["Irr41"] = "IRR41";
EtatAmendementCode["Irr42"] = "IRR42";
EtatAmendementCode["Irr45"] = "IRR45";
EtatAmendementCode["Irr48"] = "IRR48";
EtatAmendementCode["Irr53"] = "IRR53";
EtatAmendementCode["Irrai"] = "IRRAI";
EtatAmendementCode["Irraif"] = "IRRAIF";
EtatAmendementCode["Irrd"] = "IRRD";
EtatAmendementCode["Irrhc"] = "IRRHC";
// Irrecevable, hors champ
EtatAmendementCode["Irrhd"] = "IRRHD";
EtatAmendementCode["Irrsa"] = "IRRSA";
EtatAmendementCode["R"] = "R";
EtatAmendementCode["Rt"] = "RT";
EtatAmendementCode["T"] = "T";
return EtatAmendementCode;
}({});
var EtatAmendementLibelle = exports.EtatAmendementLibelle = /*#__PURE__*/function (EtatAmendementLibelle) {
EtatAmendementLibelle["ADiscuter"] = "A discuter";
EtatAmendementLibelle["AD\xE9poser"] = "A d\xE9poser";
EtatAmendementLibelle["Discut\xE9"] = "Discut\xE9";
EtatAmendementLibelle["Effac\xE9"] = "effac\xE9";
EtatAmendementLibelle["EnRecevabilit\xE9"] = "En recevabilit\xE9";
EtatAmendementLibelle["EnTraitement"] = "En traitement";
EtatAmendementLibelle["Irrecevable"] = "Irrecevable";
EtatAmendementLibelle["Irrecevable40"] = "Irrecevable 40";
EtatAmendementLibelle["Retir\xE9"] = "Retir\xE9";
return EtatAmendementLibelle;
}({});
var SortAmendement = exports.SortAmendement = /*#__PURE__*/function (SortAmendement) {
SortAmendement["Adopt\xE9"] = "Adopt\xE9";
SortAmendement["AutreIrrecevabilit\xE9"] = "Autre irrecevabilit\xE9";
SortAmendement["AutreIrrecevabilit\xE940"] = "Autre irrecevabilit\xE9 40";
SortAmendement["AutresIrrLOLF"] = "Autres irr LOLF";
SortAmendement["AutresIrrLOLFSS"] = "Autres irr LOLFSS";
SortAmendement["Cavalier45"] = "Cavalier (45)";
SortAmendement["CavalierBudg\xE9taire"] = "Cavalier budg\xE9taire";
SortAmendement["CavalierSocial"] = "Cavalier social";
SortAmendement["ChampDeLHabilitation38"] = "Champ de l'habilitation (38)";
SortAmendement["Charge"] = "Charge";
SortAmendement["Cmp45"] = "CMP (45)";
SortAmendement["Cr\xE9dits"] = "Cr\xE9dits";
SortAmendement["DispositionR\xE9glementaire37"] = "Disposition r\xE9glementaire (37)";
SortAmendement["DomaineDeLaLoi41"] = "Domaine de la loi (41)";
SortAmendement["DomaineLoiOrganique127"] = "Domaine loi organique (127)";
SortAmendement["Doublon"] = "Doublon";
SortAmendement["Entonnoir45"] = "Entonnoir (45)";
SortAmendement["Gage"] = "Gage";
SortAmendement["HorsChamp"] = "Hors champ";
SortAmendement["HorsD\xE9lais"] = "Hors-d\xE9lais";
SortAmendement["Injonction20"] = "Injonction (20)";
SortAmendement["IrrEnPremi\xE8rePartie"] = "Irr en premi\xE8re partie";
SortAmendement["IrrEnSecondePartie"] = "Irr en seconde partie";
SortAmendement["Lolf"] = "LOLF";
SortAmendement["Lolfss"] = "LOLFSS";
SortAmendement["NonSoutenu"] = "Non soutenu";
SortAmendement["OrdreDuJour48"] = "Ordre du jour (48)";
SortAmendement["R"] = "R";
SortAmendement["RatificationTrait\xE953"] = "Ratification trait\xE9 (53)";
SortAmendement["Rejet\xE9"] = "Rejet\xE9";
SortAmendement["Retir\xE9"] = "Retir\xE9";
SortAmendement["Retir\xE9Apr\xE8sPublication"] = "Retir\xE9 apr\xE8s publication";
SortAmendement["Retir\xE9AvantPublication"] = "Retir\xE9 avant publication";
SortAmendement["SatisfaitOuInop\xE9rant42"] = "Satisfait ou inop\xE9rant (42)";
SortAmendement["SousAmendement98"] = "Sous-amendement (98)";
SortAmendement["Tomb\xE9"] = "Tomb\xE9";
return SortAmendement;
}({});
var TypePosition = exports.TypePosition = /*#__PURE__*/function (TypePosition) {
TypePosition["Dernier"] = "Dernier";
TypePosition["Milieu"] = "Milieu";
TypePosition["Premier"] = "Premier";
return TypePosition;
}({});
var AvantAApres = exports.AvantAApres = /*#__PURE__*/function (AvantAApres) {
AvantAApres["A"] = "A";
AvantAApres["Apres"] = "Apres";
AvantAApres["Avant"] = "Avant";
return AvantAApres;
}({});
var DivisionType = exports.DivisionType = /*#__PURE__*/function (DivisionType) {
DivisionType["Annexe"] = "ANNEXE";
DivisionType["Article"] = "ARTICLE";
DivisionType["Chapitre"] = "CHAPITRE";
DivisionType["Titre"] = "TITRE";
return DivisionType;
}({});
var CodeEtat = exports.CodeEtat = /*#__PURE__*/function (CodeEtat) {
CodeEtat["B"] = "B";
CodeEtat["C"] = "C";
CodeEtat["D"] = "D";
return CodeEtat;
}({});
var Nom = exports.Nom = /*#__PURE__*/function (Nom) {
Nom["Pdf"] = "PDF";
return Nom;
}({});
var TypeMimeType = exports.TypeMimeType = /*#__PURE__*/function (TypeMimeType) {
TypeMimeType["Application"] = "application";
return TypeMimeType;
}({});
var TypeAuteur = exports.TypeAuteur = /*#__PURE__*/function (TypeAuteur) {
TypeAuteur["D\xE9put\xE9"] = "D\xE9put\xE9";
TypeAuteur["Gouvernement"] = "Gouvernement";
TypeAuteur["Rapporteur"] = "Rapporteur";
return TypeAuteur;
}({}); // Converts JSON strings to/from your types
// and asserts the results of JSON.parse at runtime
var Convert = exports.Convert = /*#__PURE__*/function () {
function Convert() {
_classCallCheck(this, Convert);
}
return _createClass(Convert, null, [{
key: "toAmendement",
value: function toAmendement(json) {
return cast(JSON.parse(json), r("Amendement"));
}
}, {
key: "amendementToJson",
value: function amendementToJson(value) {
return JSON.stringify(uncast(value, r("Amendement")), null, 2);
}
}, {
key: "toAmendements",
value: function toAmendements(json) {
return cast(JSON.parse(json), r("Amendements"));
}
}, {
key: "amendementsToJson",
value: function amendementsToJson(value) {
return JSON.stringify(uncast(value, r("Amendements")), null, 2);
}
}, {
key: "toTexteLegislatif",
value: function toTexteLegislatif(json) {
return cast(JSON.parse(json), r("TexteLegislatif"));
}
}, {
key: "texteLegislatifToJson",
value: function texteLegislatifToJson(value) {
return JSON.stringify(uncast(value, r("TexteLegislatif")), null, 2);
}
}]);
}();
function invalidValue(typ, val) {
var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
if (key) {
throw Error("Invalid value for key \"".concat(key, "\". Expected type ").concat(JSON.stringify(typ), " but got ").concat(JSON.stringify(val)));
}
throw Error("Invalid value ".concat(JSON.stringify(val), " for type ").concat(JSON.stringify(typ)));
}
function jsonToJSProps(typ) {
if (typ.jsonToJS === undefined) {
var map = {};
typ.props.forEach(function (p) {
return map[p.json] = {
key: p.js,
typ: p.typ
};
});
typ.jsonToJS = map;
}
return typ.jsonToJS;
}
function jsToJSONProps(typ) {
if (typ.jsToJSON === undefined) {
var map = {};
typ.props.forEach(function (p) {
return map[p.js] = {
key: p.json,
typ: p.typ
};
});
typ.jsToJSON = map;
}
return typ.jsToJSON;
}
function transform(val, typ, getProps) {
var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "";
function transformPrimitive(typ, val) {
if (_typeof(typ) === _typeof(val)) return val;
return invalidValue(typ, val, key);
}
function transformUnion(typs, val) {
// val must validate against one typ in typs
var l = typs.length;
for (var i = 0; i < l; i++) {
var _typ = typs[i];
try {
return transform(val, _typ, getProps);
} catch (_) {}
}
return invalidValue(typs, val);
}
function transformEnum(cases, val) {
if (cases.indexOf(val) !== -1) return val;
return invalidValue(cases, val);
}
function transformArray(typ, val) {
// val must be an array with no invalid elements
if (!Array.isArray(val)) return invalidValue("array", val);
return val.map(function (el) {
return transform(el, typ, getProps);
});
}
function transformDate(val) {
if (val === null) {
return null;
}
var d = new Date(val);
if (isNaN(d.valueOf())) {
return invalidValue("Date", val);
}
return d;
}
function transformObject(props, additional, val) {
if (val === null || _typeof(val) !== "object" || Array.isArray(val)) {
return invalidValue("object", val);
}
var result = {};
Object.getOwnPropertyNames(props).forEach(function (key) {
var prop = props[key];
var v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
result[prop.key] = transform(v, prop.typ, getProps, prop.key);
});
Object.getOwnPropertyNames(val).forEach(function (key) {
if (!Object.prototype.hasOwnProperty.call(props, key)) {
result[key] = transform(val[key], additional, getProps, key);
}
});
return result;
}
if (typ === "any") return val;
if (typ === null) {
if (val === null) return val;
return invalidValue(typ, val);
}
// if (typ === false) return invalidValue(typ, val)
while (_typeof(typ) === "object" && typ.ref !== undefined) {
typ = typeMap[typ.ref];
}
if (Array.isArray(typ)) return transformEnum(typ, val);
if (_typeof(typ) === "object") {
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);
}
// Numbers can be parsed by Date but shouldn't be.
if (typ === Date && typeof val !== "number") return transformDate(val);
return transformPrimitive(typ, val);
}
function cast(val, typ) {
return transform(val, typ, jsonToJSProps);
}
function uncast(val, typ) {
return transform(val, typ, jsToJSONProps);
}
function a(typ) {
return {
arrayItems: typ
};
}
function u() {
for (var _len = arguments.length, typs = new Array(_len), _key = 0; _key < _len; _key++) {
typs[_key] = arguments[_key];
}
return {
unionMembers: typs
};
}
function o(props, additional) {
return {
props: props,
additional: additional
};
}
// function m(additional: any) {
// return { props: [], additional }
// }
function r(name) {
return {
ref: name
};
}
var typeMap = {
Amendements: o([{
json: "textesLegislatifs",
js: "textesLegislatifs",
typ: a(r("TexteLegislatif"))
}], false),
TexteLegislatif: o([{
json: "refTexteLegislatif",
js: "refTexteLegislatif",
typ: ""
}, {
json: "amendements",
js: "amendements",
typ: r("AmendementsClass")
}], false),
AmendementsClass: o([{
json: "amendement",
js: "amendement",
typ: a(r("Amendement"))
}], false),
AmendementWrapper: o([{
json: "amendement",
js: "amendement",
typ: r("Amendement")
}], false),
Amendement: o([{
json: "uid",
js: "uid",
typ: ""
}, {
json: "chronotag",
js: "chronotag",
typ: ""
}, {
json: "legislature",
js: "legislature",
typ: ""
}, {
json: "identification",
js: "identification",
typ: r("Identification")
}, {
json: "examenRef",
js: "examenRef",
typ: ""
}, {
json: "texteLegislatifRef",
js: "texteLegislatifRef",
typ: ""
}, {
json: "triAmendement",
js: "triAmendement",
typ: u(undefined, "")
}, {
json: "cardinaliteAmdtMultiples",
js: "cardinaliteAmdtMultiples",
typ: u(undefined, "")
}, {
json: "amendementParentRef",
js: "amendementParentRef",
typ: u(undefined, "")
}, {
json: "signataires",
js: "signataires",
typ: r("Signataires")
}, {
json: "pointeurFragmentTexte",
js: "pointeurFragmentTexte",
typ: r("PointeurFragmentTexte")
}, {
json: "corps",
js: "corps",
typ: u(undefined, r("Corps"))
}, {
json: "cycleDeVie",
js: "cycleDeVie",
typ: r("CycleDeVie")
}, {
json: "representation",
js: "representation",
typ: u(undefined, r("Representation"))
}, {
json: "seanceDiscussionRef",
js: "seanceDiscussionRef",
typ: u(undefined, "")
}, {
json: "article99",
js: "article99",
typ: ""
}, {
json: "loiReference",
js: "loiReference",
typ: u(undefined, r("LoiReference"))
}, {
json: "discussionCommune",
js: "discussionCommune",
typ: u(undefined, r("Discussion"))
}, {
json: "discussionIdentique",
js: "discussionIdentique",
typ: u(undefined, r("Discussion"))
}, {
json: "accordGouvernementDepotHorsDelai",
js: "accordGouvernementDepotHorsDelai",
typ: r("AccordGouvernementDepotHorsDelai")
}], false),
Corps: o([{
json: "cartoucheInformatif",
js: "cartoucheInformatif",
typ: u(undefined, "")
}, {
json: "contenuAuteur",
js: "contenuAuteur",
typ: u(undefined, r("ContenuAuteur"))
}], false),
ContenuAuteur: o([{
json: "dispositif",
js: "dispositif",
typ: u(undefined, "")
}, {
json: "avantAppel",
js: "avantAppel",
typ: u(undefined, r("AvantAppel"))
}, {
json: "exposeSommaire",
js: "exposeSommaire",
typ: u(undefined, "")
}, {
json: "dispositifAmdtCreditPLF",
js: "dispositifAmdtCreditPLF",
typ: u(undefined, r("DispositifAmdtCreditPLF"))
}, {
json: "dispositifAmdtCreditPLFR",
js: "dispositifAmdtCreditPLFR",
typ: u(undefined, r("DispositifAmdtCreditPLFR"))
}], false),
AvantAppel: o([{
json: "dispositif",
js: "dispositif",
typ: u(undefined, "")
}, {
json: "dispositifAmdtCreditPLF",
js: "dispositifAmdtCreditPLF",
typ: u(undefined, r("DispositifAmdtCreditPLF"))
}, {
json: "dispositifAmdtCreditPLFR",
js: "dispositifAmdtCreditPLFR",
typ: u(undefined, r("DispositifAmdtCreditPLFR"))
}], false),
DispositifAmdtCreditPLF: o([{
json: "listeProgrammes",
js: "listeProgrammes",
typ: u(undefined, a(r("ProgrammePlf")))
}, {
json: "soldeAE",
js: "soldeAE",
typ: u(undefined, "")
}, {
json: "soldeCP",
js: "soldeCP",
typ: u(undefined, "")
}, {
json: "cpEgalAe",
js: "cpEgalAe",
typ: ""
}], false),
ProgrammePlf: o([{
json: "libelle",
js: "libelle",
typ: ""
}, {
json: "programmeRef",
js: "programmeRef",
typ: ""
}, {
json: "autorisationEngagement",
js: "autorisationEngagement",
typ: ""
}, {
json: "creditPaiement",
js: "creditPaiement",
typ: ""
}, {
json: "action",
js: "action",
typ: r("Action")
}, {
json: "lignesCredits",
js: "lignesCredits",
typ: u(undefined, a(r("LigneCreditPLF")))
}], false),
LigneCreditPLF: o([{
json: "id",
js: "id",
typ: ""
}, {
json: "libelle",
js: "libelle",
typ: ""
}, {
json: "autorisationEngagement",
js: "autorisationEngagement",
typ: ""
}, {
json: "creditPaiement",
js: "creditPaiement",
typ: ""
}, {
json: "action",
js: "action",
typ: r("Action")
}], false),
DispositifAmdtCreditPLFR: o([{
json: "listeProgrammes",
js: "listeProgrammes",
typ: u(undefined, a(r("LigneCreditPLFR")))
}, {
json: "totalAE",
js: "totalAE",
typ: u(undefined, r("Total"))
}, {
json: "totalCP",
js: "totalCP",
typ: u(undefined, r("Total"))
}, {
json: "cpEgalAe",
js: "cpEgalAe",
typ: ""
}], false),
LigneCreditPLFR: o([{
json: "libelle",
js: "libelle",
typ: ""
}, {
json: "programmeRef",
js: "programmeRef",
typ: u(undefined, "")
}, {
json: "autorisationEngagementSupplementaire",
js: "autorisationEngagementSupplementaire",
typ: ""
}, {
json: "creditPaiementSupplementaire",
js: "creditPaiementSupplementaire",
typ: ""
}, {
json: "autorisationEngagementAnnule",
js: "autorisationEngagementAnnule",
typ: ""
}, {
json: "creditPaiementAnnule",
js: "creditPaiementAnnule",
typ: ""
}, {
json: "action",
js: "action",
typ: r("Action")
}, {
json: "lignesCredits",
js: "lignesCredits",
typ: u(undefined, a(r("LigneCreditPLFR")))
}, {
json: "id",
js: "id",
typ: u(undefined, "")
}], false),
Total: o([{
json: "supplementaire",
js: "supplementaire",
typ: ""
}, {
json: "annule",
js: "annule",
typ: ""
}, {
json: "solde",
js: "solde",
typ: ""
}], false),
CycleDeVie: o([{
json: "dateDepot",
js: "dateDepot",
typ: u(undefined, Date)
}, {
json: "datePublication",
js: "datePublication",
typ: u(undefined, Date)
}, {
json: "soumisArticle40",
js: "soumisArticle40",
typ: ""
}, {
json: "etatDesTraitements",
js: "etatDesTraitements",
typ: r("EtatDesTraitements")
}, {
json: "dateSort",
js: "dateSort",
typ: u(undefined, Date)
}, {
json: "sort",
js: "sort",
typ: u(undefined, r("SortAmendement"))
}], false),
EtatDesTraitements: o([{
json: "etat",
js: "etat",
typ: r("EtatAmendement")
}, {
json: "sousEtat",
js: "sousEtat",
typ: u(undefined, r("SousEtatAmendement"))
}], false),
EtatAmendement: o([{
json: "code",
js: "code",
typ: r("EtatAmendementCode")
}, {
json: "libelle",
js: "libelle",
typ: r("EtatAmendementLibelle")
}], false),
SousEtatAmendement: o([{
json: "code",
js: "code",
typ: r("EtatAmendementCode")
}, {
json: "libelle",
js: "libelle",
typ: r("SortAmendement")
}], false),
Discussion: o([{
json: "idDiscussion",
js: "idDiscussion",
typ: u(undefined, "")
}, {
json: "typePosition",
js: "typePosition",
typ: u(undefined, r("TypePosition"))
}], false),
Identification: o([{
json: "numeroLong",
js: "numeroLong",
typ: ""
}, {
json: "numeroOrdreDepot",
js: "numeroOrdreDepot",
typ: ""
}, {
json: "prefixeOrganeExamen",
js: "prefixeOrganeExamen",
typ: ""
}, {
json: "numeroRect",
js: "numeroRect",
typ: ""
}], false),
LoiReference: o([{
json: "codeLoi",
js: "codeLoi",
typ: u(undefined, "")
}, {
json: "divisionCodeLoi",
js: "divisionCodeLoi",
typ: u(undefined, "")
}], false),
PointeurFragmentTexte: o([{
json: "division",
js: "division",
typ: u(undefined, r("Division"))
}, {
json: "alinea",
js: "alinea",
typ: u(undefined, r("Alinea"))
}, {
json: "missionVisee",
js: "missionVisee",
typ: u(undefined, r("MissionVisee"))
}], false),
Alinea: o([{
json: "avantAApres",
js: "avantAApres",
typ: u(undefined, r("AvantAApres"))
}, {
json: "numero",
js: "numero",
typ: u(undefined, "")
}, {
json: "alineaDesignation",
js: "alineaDesignation",
typ: u(undefined, "")
}], false),
Division: o([{
json: "titre",
js: "titre",
typ: u(undefined, "")
}, {
json: "articleDesignationCourte",
js: "articleDesignationCourte",
typ: u(undefined, "")
}, {
json: "articleDesignation",
js: "articleDesignation",
typ: u(undefined, "")
}, {
json: "type",
js: "type",
typ: r("DivisionType")
}, {
json: "avantAApres",
js: "avantAApres",
typ: r("AvantAApres")
}, {
json: "divisionRattachee",
js: "divisionRattachee",
typ: u(undefined, "")
}, {
json: "articleAdditionnel",
js: "articleAdditionnel",
typ: ""
}, {
json: "chapitreAdditionnel",
js: "chapitreAdditionnel",
typ: ""
}, {
json: "urlDivisionTexteVise",
js: "urlDivisionTexteVise",
typ: u(undefined, "")
}], false),
MissionVisee: o([{
json: "codeEtat",
js: "codeEtat",
typ: r("CodeEtat")
}, {
json: "codeMissionMinefi",
js: "codeMissionMinefi",
typ: ""
}, {
json: "libelleMission",
js: "libelleMission",
typ: ""
}, {
json: "missionRef",
js: "missionRef",
typ: ""
}], false),
Representation: o([{
json: "nom",
js: "nom",
typ: r("Nom")
}, {
json: "typeMime",
js: "typeMime",
typ: r("TypeMime")
}, {
json: "statutRepresentation",
js: "statutRepresentation",
typ: r("StatutRepresentation")
}, {
json: "contenu",
js: "contenu",
typ: r("Contenu")
}], false),
Contenu: o([{
json: "documentURI",
js: "documentURI",
typ: ""
}], false),
StatutRepresentation: o([{
json: "verbatim",
js: "verbatim",
typ: false
}, {
json: "canonique",
js: "canonique",
typ: false
}, {
json: "officielle",
js: "officielle",
typ: false
}, {
json: "transcription",
js: "transcription",
typ: false
}, {
json: "enregistrement",
js: "enregistrement",
typ: false
}], false),
TypeMime: o([{
json: "type",
js: "type",
typ: r("TypeMimeType")
}, {
json: "subType",
js: "subType",
typ: r("Nom")
}], false),
Signataires: o([{
json: "auteur",
js: "auteur",
typ: r("Auteur")
}, {
json: "cosignatairesRefs",
js: "cosignatairesRefs",
typ: u(undefined, a(""))
}, {
json: "suffixe",
js: "suffixe",
typ: u(undefined, "")
}, {
json: "libelle",
js: "libelle",
typ: u(undefined, "")
}], false),
Auteur: o([{
json: "typeAuteur",
js: "typeAuteur",
typ: r("TypeAuteur")
}, {
json: "gouvernementRef",
js: "gouvernementRef",
typ: u(undefined, "")
}, {
json: "acteurRef",
js: "acteurRef",
typ: u(undefined, "")
}, {
json: "groupePolitiqueRef",
js: "groupePolitiqueRef",
typ: u(undefined, "")
}, {
json: "auteurRapporteurOrganeRef",
js: "auteurRapporteurOrganeRef",
typ: u(undefined, "")
}], false),
AccordGouvernementDepotHorsDelai: ["Accord", "Sans objet"],
Action: ["création", "modification", "suppression"],
EtatAmendementCode: ["AC", "AT", "DI", "effacé", "ER", "ET", "IR", "IRR127", "IRR20", "IRR37", "IRR38", "IRR41", "IRR42", "IRR45", "IRR48", "IRR53", "IRRAI", "IRRAIF", "IRRD", "IRRHC", "IRRHD", "IRRSA", "R", "RT", "T"],
EtatAmendementLibelle: ["A discuter", "A déposer", "Discuté", "effacé", "En recevabilité", "En traitement", "Irrecevable", "Irrecevable 40", "Retiré"],
SortAmendement: ["Adopté", "Autre irrecevabilité", "Autre irrecevabilité 40", "Autres irr LOLF", "Autres irr LOLFSS", "Cavalier (45)", "Cavalier budgétaire", "Cavalier social", "Champ de l'habilitation (38)", "Charge", "CMP (45)", "Crédits", "Disposition réglementaire (37)", "Domaine de la loi (41)", "Domaine loi organique (127)", "Doublon", "Entonnoir (45)", "Gage", "Hors champ", "Hors-délais", "Injonction (20)", "Irr en première partie", "Irr en seconde partie", "LOLF", "LOLFSS", "Non soutenu", "Ordre du jour (48)", "R", "Ratification traité (53)", "Rejeté", "Retiré", "Retiré après publication", "Retiré avant publication", "Satisfait ou inopérant (42)", "Sous-amendement (98)", "Tombé"],
TypePosition: ["Dernier", "Milieu", "Premier"],
AvantAApres: ["A", "Apres", "Avant"],
DivisionType: ["ANNEXE", "ARTICLE", "CHAPITRE", "TITRE"],
CodeEtat: ["B", "C", "D"],
Nom: ["PDF"],
TypeMimeType: ["application"],
TypeAuteur: ["Député", "Gouvernement", "Rapporteur"]
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY2NvcmRHb3V2ZXJuZW1lbnREZXBvdEhvcnNEZWxhaSIsImV4cG9ydHMiLCJBY3Rpb24iLCJFdGF0QW1lbmRlbWVudENvZGUiLCJFdGF0QW1lbmRlbWVudExpYmVsbGUiLCJTb3J0QW1lbmRlbWVudCIsIlR5cGVQb3NpdGlvbiIsIkF2YW50QUFwcmVzIiwiRGl2aXNpb25UeXBlIiwiQ29kZUV0YXQiLCJOb20iLCJUeXBlTWltZVR5cGUiLCJUeXBlQXV0ZXVyIiwiQ29udmVydCIsIl9jbGFzc0NhbGxDaGVjayIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwidG9BbWVuZGVtZW50IiwianNvbiIsImNhc3QiLCJKU09OIiwicGFyc2UiLCJyIiwiYW1lbmRlbWVudFRvSnNvbiIsInN0cmluZ2lmeSIsInVuY2FzdCIsInRvQW1lbmRlbWVudHMiLCJhbWVuZGVtZW50c1RvSnNvbiIsInRvVGV4dGVMZWdpc2xhdGlmIiwidGV4dGVMZWdpc2xhdGlmVG9Kc29uIiwiaW52YWxpZFZhbHVlIiwidHlwIiwidmFsIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJjb25jYXQiLCJqc29uVG9KU1Byb3BzIiwianNvblRvSlMiLCJtYXAiLCJwcm9wcyIsImZvckVhY2giLCJwIiwianMiLCJqc1RvSlNPTlByb3BzIiwianNUb0pTT04iLCJ0cmFuc2Zvcm0iLCJnZXRQcm9wcyIsInRyYW5zZm9ybVByaW1pdGl2ZSIsIl90eXBlb2YiLCJ0cmFuc2Zvcm1VbmlvbiIsInR5cHMiLCJsIiwiaSIsIl8iLCJ0cmFuc2Zvcm1FbnVtIiwiY2FzZXMiLCJpbmRleE9mIiwidHJhbnNmb3JtQXJyYXkiLCJBcnJheSIsImlzQXJyYXkiLCJlbCIsInRyYW5zZm9ybURhdGUiLCJkIiwiRGF0ZSIsImlzTmFOIiwidmFsdWVPZiIsInRyYW5zZm9ybU9iamVjdCIsImFkZGl0aW9uYWwiLCJyZXN1bHQiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcCIsInYiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJyZWYiLCJ0eXBlTWFwIiwidW5pb25NZW1iZXJzIiwiYXJyYXlJdGVtcyIsImEiLCJ1IiwiX2xlbiIsIl9rZXkiLCJvIiwibmFtZSIsIkFtZW5kZW1lbnRzIiwiVGV4dGVMZWdpc2xhdGlmIiwiQW1lbmRlbWVudHNDbGFzcyIsIkFtZW5kZW1lbnRXcmFwcGVyIiwiQW1lbmRlbWVudCIsIkNvcnBzIiwiQ29udGVudUF1dGV1ciIsIkF2YW50QXBwZWwiLCJEaXNwb3NpdGlmQW1kdENyZWRpdFBMRiIsIlByb2dyYW1tZVBsZiIsIkxpZ25lQ3JlZGl0UExGIiwiRGlzcG9zaXRpZkFtZHRDcmVkaXRQTEZSIiwiTGlnbmVDcmVkaXRQTEZSIiwiVG90YWwiLCJDeWNsZURlVmllIiwiRXRhdERlc1RyYWl0ZW1lbnRzIiwiRXRhdEFtZW5kZW1lbnQiLCJTb3VzRXRhdEFtZW5kZW1lbnQiLCJEaXNjdXNzaW9uIiwiSWRlbnRpZmljYXRpb24iLCJMb2lSZWZlcmVuY2UiLCJQb2ludGV1ckZyYWdtZW50VGV4dGUiLCJBbGluZWEiLCJEaXZpc2lvbiIsIk1pc3Npb25WaXNlZSIsIlJlcHJlc2VudGF0aW9uIiwiQ29udGVudSIsIlN0YXR1dFJlcHJlc2VudGF0aW9uIiwiVHlwZU1pbWUiLCJTaWduYXRhaXJlcyIsIkF1dGV1ciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9hbWVuZGVtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUbyBwYXJzZSB0aGlzIGRhdGE6XG4vL1xuLy8gICBpbXBvcnQgeyBDb252ZXJ0LCBBbWVuZGVtZW50LCBBbWVuZGVtZW50cyB9IGZyb20gXCIuL2ZpbGVcIjtcbi8vXG4vLyAgIGNvbnN0IGFtZW5kZW1lbnQgPSBDb252ZXJ0LnRvQW1lbmRlbWVudChqc29uKTtcbi8vICAgY29uc3QgYW1lbmRlbWVudHMgPSBDb252ZXJ0LnRvQW1lbmRlbWVudHMoanNvbik7XG4vL1xuLy8gVGhlc2UgZnVuY3Rpb25zIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIEpTT04gZG9lc24ndFxuLy8gbWF0Y2ggdGhlIGV4cGVjdGVkIGludGVyZmFjZSwgZXZlbiBpZiB0aGUgSlNPTiBpcyB2YWxpZC5cblxuaW1wb3J0IHsgQWN0ZXVyLCBPcmdhbmUgfSBmcm9tIFwiLi9hY3RldXJzX2V0X29yZ2FuZXNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIEFtZW5kZW1lbnRzIHtcbiAgdGV4dGVzTGVnaXNsYXRpZnM6IFRleHRlTGVnaXNsYXRpZltdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dGVMZWdpc2xhdGlmIHtcbiAgcmVmVGV4dGVMZWdpc2xhdGlmOiBzdHJpbmdcbiAgYW1lbmRlbWVudHM6IEFtZW5kZW1lbnRbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFtZW5kZW1lbnQge1xuICBzY2hlbWFWZXJzaW9uPzogc3RyaW5nXG4gIHVpZDogc3RyaW5nXG4gIGNocm9ub3RhZzogc3RyaW5nXG4gIGxlZ2lzbGF0dXJlOiBzdHJpbmdcbiAgaWRlbnRpZmljYXRpb246IElkZW50aWZpY2F0aW9uXG4gIGV4YW1lblJlZjogc3RyaW5nXG4gIHRleHRlTGVnaXNsYXRpZlJlZjogc3RyaW5nXG4gIHRyaUFtZW5kZW1lbnQ/OiBzdHJpbmdcbiAgY2FyZGluYWxpdGVBbWR0TXVsdGlwbGVzPzogc3RyaW5nXG4gIGFtZW5kZW1lbnRQYXJlbnRSZWY/OiBzdHJpbmdcbiAgc2lnbmF0YWlyZXM6IFNpZ25hdGFpcmVzXG4gIHBvaW50ZXVyRnJhZ21lbnRUZXh0ZTogUG9pbnRldXJGcmFnbWVudFRleHRlXG4gIGNvcnBzPzogQ29ycHNcbiAgY3ljbGVEZVZpZTogQ3ljbGVEZVZpZVxuICByZXByZXNlbnRhdGlvbj86IFJlcHJlc2VudGF0aW9uXG4gIHNlYW5jZURpc2N1c3Npb25SZWY/OiBzdHJpbmdcbiAgYXJ0aWNsZTk5OiBzdHJpbmdcbiAgbG9pUmVmZXJlbmNlPzogTG9pUmVmZXJlbmNlXG4gIGRpc2N1c3Npb25Db21tdW5lPzogRGlzY3Vzc2lvblxuICBkaXNjdXNzaW9uSWRlbnRpcXVlPzogRGlzY3Vzc2lvblxuICBhY2NvcmRHb3V2ZXJuZW1lbnREZXBvdEhvcnNEZWxhaTogQWNjb3JkR291dmVybmVtZW50RGVwb3RIb3JzRGVsYWlcbn1cblxuZXhwb3J0IGVudW0gQWNjb3JkR291dmVybmVtZW50RGVwb3RIb3JzRGVsYWkge1xuICBBY2NvcmQgPSBcIkFjY29yZFwiLFxuICBTYW5zT2JqZXQgPSBcIlNhbnMgb2JqZXRcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb3JwcyB7XG4gIGNhcnRvdWNoZUluZm9ybWF0aWY/OiBzdHJpbmdcbiAgY29udGVudUF1dGV1cj86IENvbnRlbnVBdXRldXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZW51QXV0ZXVyIHtcbiAgZGlzcG9zaXRpZj86IHN0cmluZ1xuICBhdmFudEFwcGVsPzogQXZhbnRBcHBlbFxuICBleHBvc2VTb21tYWlyZT86IHN0cmluZ1xuICBkaXNwb3NpdGlmQW1kdENyZWRpdFBMRj86IERpc3Bvc2l0aWZBbWR0Q3JlZGl0UExGXG4gIGRpc3Bvc2l0aWZBbWR0Q3JlZGl0UExGUj86IERpc3Bvc2l0aWZBbWR0Q3JlZGl0UExGUlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF2YW50QXBwZWwge1xuICBkaXNwb3NpdGlmPzogc3RyaW5nXG4gIGRpc3Bvc2l0aWZBbWR0Q3JlZGl0UExGPzogRGlzcG9zaXRpZkFtZHRDcmVkaXRQTEZcbiAgZGlzcG9zaXRpZkFtZHRDcmVkaXRQTEZSPzogRGlzcG9zaXRpZkFtZHRDcmVkaXRQTEZSXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzcG9zaXRpZkFtZHRDcmVkaXRQTEYge1xuICBsaXN0ZVByb2dyYW1tZXM/OiBQcm9ncmFtbWVQbGZbXVxuICBzb2xkZUFFPzogc3RyaW5nXG4gIHNvbGRlQ1A/OiBzdHJpbmdcbiAgY3BFZ2FsQWU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyYW1tZVBsZiB7XG4gIGxpYmVsbGU6IHN0cmluZ1xuICBwcm9ncmFtbWVSZWY6IHN0cmluZ1xuICBhdXRvcmlzYXRpb25FbmdhZ2VtZW50OiBzdHJpbmdcbiAgY3JlZGl0UGFpZW1lbnQ6IHN0cmluZ1xuICBhY3Rpb246IEFjdGlvblxuICBsaWduZXNDcmVkaXRzPzogTGlnbmVDcmVkaXRQTEZbXVxufVxuXG5leHBvcnQgZW51bSBBY3Rpb24ge1xuICBDcsOpYXRpb24gPSBcImNyw6lhdGlvblwiLFxuICBNb2RpZmljYXRpb24gPSBcIm1vZGlmaWNhdGlvblwiLFxuICBTdXBwcmVzc2lvbiA9IFwic3VwcHJlc3Npb25cIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaWduZUNyZWRpdFBMRiB7XG4gIGlkOiBzdHJpbmdcbiAgbGliZWxsZTogc3RyaW5nXG4gIGF1dG9yaXNhdGlvbkVuZ2FnZW1lbnQ6IHN0cmluZ1xuICBjcmVkaXRQYWllbWVudDogc3RyaW5nXG4gIGFjdGlvbjogQWN0aW9uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzcG9zaXRpZkFtZHRDcmVkaXRQTEZSIHtcbiAgbGlzdGVQcm9ncmFtbWVzPzogTGlnbmVDcmVkaXRQTEZSW11cbiAgdG90YWxBRT86IFRvdGFsXG4gIHRvdGFsQ1A/OiBUb3RhbFxuICBjcEVnYWxBZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlnbmVDcmVkaXRQTEZSIHtcbiAgbGliZWxsZTogc3RyaW5nXG4gIHByb2dyYW1tZVJlZj86IHN0cmluZ1xuICBhdXRvcmlzYXRpb25FbmdhZ2VtZW50U3VwcGxlbWVudGFpcmU6IHN0cmluZ1xuICBjcmVkaXRQYWllbWVudFN1cHBsZW1lbnRhaXJlOiBzdHJpbmdcbiAgYXV0b3Jpc2F0aW9uRW5nYWdlbWVudEFubnVsZTogc3RyaW5nXG4gIGNyZWRpdFBhaWVtZW50QW5udWxlOiBzdHJpbmdcbiAgYWN0aW9uOiBBY3Rpb25cbiAgbGlnbmVzQ3JlZGl0cz86IExpZ25lQ3JlZGl0UExGUltdXG4gIGlkPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG90YWwge1xuICBzdXBwbGVtZW50YWlyZTogc3RyaW5nXG4gIGFubnVsZTogc3RyaW5nXG4gIHNvbGRlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDeWNsZURlVmllIHtcbiAgZGF0ZURlcG90PzogRGF0ZVxuICBkYXRlUHVibGljYXRpb24/OiBEYXRlXG4gIHNvdW1pc0FydGljbGU0MDogc3RyaW5nXG4gIGV0YXREZXNUcmFpdGVtZW50czogRXRhdERlc1RyYWl0ZW1lbnRzXG4gIGRhdGVTb3J0PzogRGF0ZVxuICBzb3J0PzogU29ydEFtZW5kZW1lbnRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdGF0RGVzVHJhaXRlbWVudHMge1xuICBldGF0OiBFdGF0QW1lbmRlbWVudFxuICBzb3VzRXRhdD86IFNvdXNFdGF0QW1lbmRlbWVudFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV0YXRBbWVuZGVtZW50IHtcbiAgY29kZTogRXRhdEFtZW5kZW1lbnRDb2RlXG4gIGxpYmVsbGU6IEV0YXRBbWVuZGVtZW50TGliZWxsZVxufVxuXG5leHBvcnQgZW51bSBFdGF0QW1lbmRlbWVudENvZGUge1xuICBBQyA9IFwiQUNcIixcbiAgQXQgPSBcIkFUXCIsXG4gIERpID0gXCJESVwiLFxuICBFZmZhY8OpID0gXCJlZmZhY8OpXCIsXG4gIEVyID0gXCJFUlwiLFxuICBFdCA9IFwiRVRcIixcbiAgSVIgPSBcIklSXCIsXG4gIElycjEyNyA9IFwiSVJSMTI3XCIsXG4gIElycjIwID0gXCJJUlIyMFwiLFxuICBJcnIzNyA9IFwiSVJSMzdcIixcbiAgSXJyMzggPSBcIklSUjM4XCIsXG4gIElycjQxID0gXCJJUlI0MVwiLFxuICBJcnI0MiA9IFwiSVJSNDJcIixcbiAgSXJyNDUgPSBcIklSUjQ1XCIsXG4gIElycjQ4ID0gXCJJUlI0OFwiLFxuICBJcnI1MyA9IFwiSVJSNTNcIixcbiAgSXJyYWkgPSBcIklSUkFJXCIsXG4gIElycmFpZiA9IFwiSVJSQUlGXCIsXG4gIElycmQgPSBcIklSUkRcIixcbiAgSXJyaGMgPSBcIklSUkhDXCIsIC8vIElycmVjZXZhYmxlLCBob3JzIGNoYW1wXG4gIElycmhkID0gXCJJUlJIRFwiLFxuICBJcnJzYSA9IFwiSVJSU0FcIixcbiAgUiA9IFwiUlwiLFxuICBSdCA9IFwiUlRcIixcbiAgVCA9IFwiVFwiLFxufVxuXG5leHBvcnQgZW51bSBFdGF0QW1lbmRlbWVudExpYmVsbGUge1xuICBBRGlzY3V0ZXIgPSBcIkEgZGlzY3V0ZXJcIixcbiAgQUTDqXBvc2VyID0gXCJBIGTDqXBvc2VyXCIsXG4gIERpc2N1dMOpID0gXCJEaXNjdXTDqVwiLFxuICBFZmZhY8OpID0gXCJlZmZhY8OpXCIsXG4gIEVuUmVjZXZhYmlsaXTDqSA9IFwiRW4gcmVjZXZhYmlsaXTDqVwiLFxuICBFblRyYWl0ZW1lbnQgPSBcIkVuIHRyYWl0ZW1lbnRcIixcbiAgSXJyZWNldmFibGUgPSBcIklycmVjZXZhYmxlXCIsXG4gIElycmVjZXZhYmxlNDAgPSBcIklycmVjZXZhYmxlIDQwXCIsXG4gIFJldGlyw6kgPSBcIlJldGlyw6lcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3VzRXRhdEFtZW5kZW1lbnQge1xuICBjb2RlOiBFdGF0QW1lbmRlbWVudENvZGVcbiAgbGliZWxsZTogU29ydEFtZW5kZW1lbnRcbn1cblxuZXhwb3J0IGVudW0gU29ydEFtZW5kZW1lbnQge1xuICBBZG9wdMOpID0gXCJBZG9wdMOpXCIsXG4gIEF1dHJlSXJyZWNldmFiaWxpdMOpID0gXCJBdXRyZSBpcnJlY2V2YWJpbGl0w6lcIixcbiAgQXV0cmVJcnJlY2V2YWJpbGl0w6k0MCA9IFwiQXV0cmUgaXJyZWNldmFiaWxpdMOpIDQwXCIsXG4gIEF1dHJlc0lyckxPTEYgPSBcIkF1dHJlcyBpcnIgTE9MRlwiLFxuICBBdXRyZXNJcnJMT0xGU1MgPSBcIkF1dHJlcyBpcnIgTE9MRlNTXCIsXG4gIENhdmFsaWVyNDUgPSBcIkNhdmFsaWVyICg0NSlcIixcbiAgQ2F2YWxpZXJCdWRnw6l0YWlyZSA9IFwiQ2F2YWxpZXIgYnVkZ8OpdGFpcmVcIixcbiAgQ2F2YWxpZXJTb2NpYWwgPSBcIkNhdmFsaWVyIHNvY2lhbFwiLFxuICBDaGFtcERlTEhhYmlsaXRhdGlvbjM4ID0gXCJDaGFtcCBkZSBsJ2hhYmlsaXRhdGlvbiAoMzgpXCIsXG4gIENoYXJnZSA9IFwiQ2hhcmdlXCIsXG4gIENtcDQ1ID0gXCJDTVAgKDQ1KVwiLFxuICBDcsOpZGl0cyA9IFwiQ3LDqWRpdHNcIixcbiAgRGlzcG9zaXRpb25Sw6lnbGVtZW50YWlyZTM3ID0gXCJEaXNwb3NpdGlvbiByw6lnbGVtZW50YWlyZSAoMzcpXCIsXG4gIERvbWFpbmVEZUxhTG9pNDEgPSBcIkRvbWFpbmUgZGUgbGEgbG9pICg0MSlcIixcbiAgRG9tYWluZUxvaU9yZ2FuaXF1ZTEyNyA9IFwiRG9tYWluZSBsb2kgb3JnYW5pcXVlICgxMjcpXCIsXG4gIERvdWJsb24gPSBcIkRvdWJsb25cIixcbiAgRW50b25ub2lyNDUgPSBcIkVudG9ubm9pciAoNDUpXCIsXG4gIEdhZ2UgPSBcIkdhZ2VcIixcbiAgSG9yc0NoYW1wID0gXCJIb3JzIGNoYW1wXCIsXG4gIEhvcnNEw6lsYWlzID0gXCJIb3JzLWTDqWxhaXNcIixcbiAgSW5qb25jdGlvbjIwID0gXCJJbmpvbmN0aW9uICgyMClcIixcbiAgSXJyRW5QcmVtacOocmVQYXJ0aWUgPSBcIklyciBlbiBwcmVtacOocmUgcGFydGllXCIsXG4gIElyckVuU2Vjb25kZVBhcnRpZSA9IFwiSXJyIGVuIHNlY29uZGUgcGFydGllXCIsXG4gIExvbGYgPSBcIkxPTEZcIixcbiAgTG9sZnNzID0gXCJMT0xGU1NcIixcbiAgTm9uU291dGVudSA9IFwiTm9uIHNvdXRlbnVcIixcbiAgT3JkcmVEdUpvdXI0OCA9IFwiT3JkcmUgZHUgam91ciAoNDgpXCIsXG4gIFIgPSBcIlJcIixcbiAgUmF0aWZpY2F0aW9uVHJhaXTDqTUzID0gXCJSYXRpZmljYXRpb24gdHJhaXTDqSAoNTMpXCIsXG4gIFJlamV0w6kgPSBcIlJlamV0w6lcIixcbiAgUmV0aXLDqSA9IFwiUmV0aXLDqVwiLFxuICBSZXRpcsOpQXByw6hzUHVibGljYXRpb24gPSBcIlJldGlyw6kgYXByw6hzIHB1YmxpY2F0aW9uXCIsXG4gIFJldGlyw6lBdmFudFB1YmxpY2F0aW9uID0gXCJSZXRpcsOpIGF2YW50IHB1YmxpY2F0aW9uXCIsXG4gIFNhdGlzZmFpdE91SW5vcMOpcmFudDQyID0gXCJTYXRpc2ZhaXQgb3UgaW5vcMOpcmFudCAoNDIpXCIsXG4gIFNvdXNBbWVuZGVtZW50OTggPSBcIlNvdXMtYW1lbmRlbWVudCAoOTgpXCIsXG4gIFRvbWLDqSA9IFwiVG9tYsOpXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzY3Vzc2lvbiB7XG4gIGlkRGlzY3Vzc2lvbj86IHN0cmluZ1xuICB0eXBlUG9zaXRpb24/OiBUeXBlUG9zaXRpb25cbn1cblxuZXhwb3J0IGVudW0gVHlwZVBvc2l0aW9uIHtcbiAgRGVybmllciA9IFwiRGVybmllclwiLFxuICBNaWxpZXUgPSBcIk1pbGlldVwiLFxuICBQcmVtaWVyID0gXCJQcmVtaWVyXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpZmljYXRpb24ge1xuICBudW1lcm9Mb25nOiBzdHJpbmdcbiAgbnVtZXJvT3JkcmVEZXBvdDogc3RyaW5nXG4gIHByZWZpeGVPcmdhbmVFeGFtZW46IHN0cmluZ1xuICBudW1lcm9SZWN0OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2lSZWZlcmVuY2Uge1xuICBjb2RlTG9pPzogc3RyaW5nXG4gIGRpdmlzaW9uQ29kZUxvaT86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50ZXVyRnJhZ21lbnRUZXh0ZSB7XG4gIGRpdmlzaW9uPzogRGl2aXNpb25cbiAgYWxpbmVhPzogQWxpbmVhXG4gIG1pc3Npb25WaXNlZT86IE1pc3Npb25WaXNlZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFsaW5lYSB7XG4gIGF2YW50QUFwcmVzPzogQXZhbnRBQXByZXNcbiAgbnVtZXJvPzogc3RyaW5nXG4gIGFsaW5lYURlc2lnbmF0aW9uPzogc3RyaW5nXG59XG5cbmV4cG9ydCBlbnVtIEF2YW50QUFwcmVzIHtcbiAgQSA9IFwiQVwiLFxuICBBcHJlcyA9IFwiQXByZXNcIixcbiAgQXZhbnQgPSBcIkF2YW50XCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGl2aXNpb24ge1xuICB0aXRyZT86IHN0cmluZ1xuICBhcnRpY2xlRGVzaWduYXRpb25Db3VydGU/OiBzdHJpbmdcbiAgYXJ0aWNsZURlc2lnbmF0aW9uPzogc3RyaW5nXG4gIHR5cGU6IERpdmlzaW9uVHlwZVxuICBhdmFudEFBcHJlczogQXZhbnRBQXByZXNcbiAgZGl2aXNpb25SYXR0YWNoZWU/OiBzdHJpbmdcbiAgYXJ0aWNsZUFkZGl0aW9ubmVsOiBzdHJpbmdcbiAgY2hhcGl0cmVBZGRpdGlvbm5lbDogc3RyaW5nXG4gIHVybERpdmlzaW9uVGV4dGVWaXNlPzogc3RyaW5nXG59XG5cbmV4cG9ydCBlbnVtIERpdmlzaW9uVHlwZSB7XG4gIEFubmV4ZSA9IFwiQU5ORVhFXCIsXG4gIEFydGljbGUgPSBcIkFSVElDTEVcIixcbiAgQ2hhcGl0cmUgPSBcIkNIQVBJVFJFXCIsXG4gIFRpdHJlID0gXCJUSVRSRVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pc3Npb25WaXNlZSB7XG4gIGNvZGVFdGF0OiBDb2RlRXRhdFxuICBjb2RlTWlzc2lvbk1pbmVmaTogc3RyaW5nXG4gIGxpYmVsbGVNaXNzaW9uOiBzdHJpbmdcbiAgbWlzc2lvblJlZjogc3RyaW5nXG59XG5cbmV4cG9ydCBlbnVtIENvZGVFdGF0IHtcbiAgQiA9IFwiQlwiLFxuICBDID0gXCJDXCIsXG4gIEQgPSBcIkRcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXByZXNlbnRhdGlvbiB7XG4gIG5vbTogTm9tXG4gIHR5cGVNaW1lOiBUeXBlTWltZVxuICBzdGF0dXRSZXByZXNlbnRhdGlvbjogU3RhdHV0UmVwcmVzZW50YXRpb25cbiAgY29udGVudTogQ29udGVudVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnUge1xuICBkb2N1bWVudFVSSTogc3RyaW5nXG59XG5cbmV4cG9ydCBlbnVtIE5vbSB7XG4gIFBkZiA9IFwiUERGXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdHV0UmVwcmVzZW50YXRpb24ge1xuICB2ZXJiYXRpbTogYm9vbGVhblxuICBjYW5vbmlxdWU6IGJvb2xlYW5cbiAgb2ZmaWNpZWxsZTogYm9vbGVhblxuICB0cmFuc2NyaXB0aW9uOiBib29sZWFuXG4gIGVucmVnaXN0cmVtZW50OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZU1pbWUge1xuICB0eXBlOiBUeXBlTWltZVR5cGVcbiAgc3ViVHlwZTogTm9tXG59XG5cbmV4cG9ydCBlbnVtIFR5cGVNaW1lVHlwZSB7XG4gIEFwcGxpY2F0aW9uID0gXCJhcHBsaWNhdGlvblwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdGFpcmVzIHtcbiAgYXV0ZXVyOiBBdXRldXJcbiAgY29zaWduYXRhaXJlc1JlZnM/OiBzdHJpbmdbXVxuICBjb3NpZ25hdGFpcmVzPzogQWN0ZXVyW10gLy8gQWRkZWQgYnkgVHJpY290ZXVzZXNcbiAgc3VmZml4ZT86IHN0cmluZ1xuICBsaWJlbGxlPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0ZXVyIHtcbiAgdHlwZUF1dGV1cjogVHlwZUF1dGV1clxuICBnb3V2ZXJuZW1lbnRSZWY/OiBzdHJpbmdcbiAgZ291dmVybmVtZW50PzogT3JnYW5lIC8vIEFkZGVkIGJ5IFRyaWNvdGV1c2VzXG4gIGFjdGV1clJlZj86IHN0cmluZ1xuICBhY3RldXI/OiBBY3RldXIgLy8gQWRkZWQgYnkgVHJpY290ZXVzZXNcbiAgZ3JvdXBlUG9saXRpcXVlUmVmPzogc3RyaW5nXG4gIGdyb3VwZVBvbGl0aXF1ZT86IE9yZ2FuZSAvLyBBZGRlZCBieSBUcmljb3RldXNlc1xuICBhdXRldXJSYXBwb3J0ZXVyT3JnYW5lUmVmPzogc3RyaW5nXG4gIGF1dGV1clJhcHBvcnRldXJPcmdhbmU/OiBPcmdhbmUgLy8gQWRkZWQgYnkgVHJpY290ZXVzZXNcbn1cblxuZXhwb3J0IGVudW0gVHlwZUF1dGV1ciB7XG4gIETDqXB1dMOpID0gXCJEw6lwdXTDqVwiLFxuICBHb3V2ZXJuZW1lbnQgPSBcIkdvdXZlcm5lbWVudFwiLFxuICBSYXBwb3J0ZXVyID0gXCJSYXBwb3J0ZXVyXCIsXG59XG5cbi8vIENvbnZlcnRzIEpTT04gc3RyaW5ncyB0by9mcm9tIHlvdXIgdHlwZXNcbi8vIGFuZCBhc3NlcnRzIHRoZSByZXN1bHRzIG9mIEpTT04ucGFyc2UgYXQgcnVudGltZVxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xuICBwdWJsaWMgc3RhdGljIHRvQW1lbmRlbWVudChqc29uOiBzdHJpbmcpOiBBbWVuZGVtZW50IHtcbiAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiQW1lbmRlbWVudFwiKSlcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYW1lbmRlbWVudFRvSnNvbih2YWx1ZTogQW1lbmRlbWVudCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHVuY2FzdCh2YWx1ZSwgcihcIkFtZW5kZW1lbnRcIikpLCBudWxsLCAyKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0b0FtZW5kZW1lbnRzKGpzb246IHN0cmluZyk6IEFtZW5kZW1lbnRzIHtcbiAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiQW1lbmRlbWVudHNcIikpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFtZW5kZW1lbnRzVG9Kc29uKHZhbHVlOiBBbWVuZGVtZW50cyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHVuY2FzdCh2YWx1ZSwgcihcIkFtZW5kZW1lbnRzXCIpKSwgbnVsbCwgMilcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdG9UZXh0ZUxlZ2lzbGF0aWYoanNvbjogc3RyaW5nKTogVGV4dGVMZWdpc2xhdGlmIHtcbiAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiVGV4dGVMZWdpc2xhdGlmXCIpKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0ZXh0ZUxlZ2lzbGF0aWZUb0pzb24odmFsdWU6IFRleHRlTGVnaXNsYXRpZik6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHVuY2FzdCh2YWx1ZSwgcihcIlRleHRlTGVnaXNsYXRpZlwiKSksIG51bGwsIDIpXG4gIH1cbn1cblxuZnVuY3Rpb24gaW52YWxpZFZhbHVlKHR5cDogYW55LCB2YWw6IGFueSwga2V5OiBhbnkgPSBcIlwiKTogbmV2ZXIge1xuICBpZiAoa2V5KSB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgSW52YWxpZCB2YWx1ZSBmb3Iga2V5IFwiJHtrZXl9XCIuIEV4cGVjdGVkIHR5cGUgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgdHlwLFxuICAgICAgKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbCl9YCxcbiAgICApXG4gIH1cbiAgdGhyb3cgRXJyb3IoXG4gICAgYEludmFsaWQgdmFsdWUgJHtKU09OLnN0cmluZ2lmeSh2YWwpfSBmb3IgdHlwZSAke0pTT04uc3RyaW5naWZ5KHR5cCl9YCxcbiAgKVxufVxuXG5mdW5jdGlvbiBqc29uVG9KU1Byb3BzKHR5cDogYW55KTogYW55IHtcbiAgaWYgKHR5cC5qc29uVG9KUyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWFwOiBhbnkgPSB7fVxuICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IChtYXBbcC5qc29uXSA9IHsga2V5OiBwLmpzLCB0eXA6IHAudHlwIH0pKVxuICAgIHR5cC5qc29uVG9KUyA9IG1hcFxuICB9XG4gIHJldHVybiB0eXAuanNvblRvSlNcbn1cblxuZnVuY3Rpb24ganNUb0pTT05Qcm9wcyh0eXA6IGFueSk6IGFueSB7XG4gIGlmICh0eXAuanNUb0pTT04gPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IG1hcDogYW55ID0ge31cbiAgICB0eXAucHJvcHMuZm9yRWFjaCgocDogYW55KSA9PiAobWFwW3AuanNdID0geyBrZXk6IHAuanNvbiwgdHlwOiBwLnR5cCB9KSlcbiAgICB0eXAuanNUb0pTT04gPSBtYXBcbiAgfVxuICByZXR1cm4gdHlwLmpzVG9KU09OXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybSh2YWw6IGFueSwgdHlwOiBhbnksIGdldFByb3BzOiBhbnksIGtleTogYW55ID0gXCJcIik6IGFueSB7XG4gIGZ1bmN0aW9uIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXA6IHN0cmluZywgdmFsOiBhbnkpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdHlwID09PSB0eXBlb2YgdmFsKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCwga2V5KVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtVW5pb24odHlwczogYW55W10sIHZhbDogYW55KTogYW55IHtcbiAgICAvLyB2YWwgbXVzdCB2YWxpZGF0ZSBhZ2FpbnN0IG9uZSB0eXAgaW4gdHlwc1xuICAgIGNvbnN0IGwgPSB0eXBzLmxlbmd0aFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB0eXAgPSB0eXBzW2ldXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBnZXRQcm9wcylcbiAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgfVxuICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwcywgdmFsKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRW51bShjYXNlczogc3RyaW5nW10sIHZhbDogYW55KTogYW55IHtcbiAgICBpZiAoY2FzZXMuaW5kZXhPZih2YWwpICE9PSAtMSkgcmV0dXJuIHZhbFxuICAgIHJldHVybiBpbnZhbGlkVmFsdWUoY2FzZXMsIHZhbClcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYW5zZm9ybUFycmF5KHR5cDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgLy8gdmFsIG11c3QgYmUgYW4gYXJyYXkgd2l0aCBubyBpbnZhbGlkIGVsZW1lbnRzXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBpbnZhbGlkVmFsdWUoXCJhcnJheVwiLCB2YWwpXG4gICAgcmV0dXJuIHZhbC5tYXAoKGVsKSA9PiB0cmFuc2Zvcm0oZWwsIHR5cCwgZ2V0UHJvcHMpKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRGF0ZSh2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbClcbiAgICBpZiAoaXNOYU4oZC52YWx1ZU9mKCkpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwiRGF0ZVwiLCB2YWwpXG4gICAgfVxuICAgIHJldHVybiBkXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1PYmplY3QoXG4gICAgcHJvcHM6IHsgW2s6IHN0cmluZ106IGFueSB9LFxuICAgIGFkZGl0aW9uYWw6IGFueSxcbiAgICB2YWw6IGFueSxcbiAgKTogYW55IHtcbiAgICBpZiAodmFsID09PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwib2JqZWN0XCIsIHZhbClcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fVxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3BzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHByb3AgPSBwcm9wc1trZXldXG4gICAgICBjb25zdCB2ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwga2V5KVxuICAgICAgICA/IHZhbFtrZXldXG4gICAgICAgIDogdW5kZWZpbmVkXG4gICAgICByZXN1bHRbcHJvcC5rZXldID0gdHJhbnNmb3JtKHYsIHByb3AudHlwLCBnZXRQcm9wcywgcHJvcC5rZXkpXG4gICAgfSlcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWwpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm0odmFsW2tleV0sIGFkZGl0aW9uYWwsIGdldFByb3BzLCBrZXkpXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBpZiAodHlwID09PSBcImFueVwiKSByZXR1cm4gdmFsXG4gIGlmICh0eXAgPT09IG51bGwpIHtcbiAgICBpZiAodmFsID09PSBudWxsKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgfVxuICAvLyBpZiAodHlwID09PSBmYWxzZSkgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgd2hpbGUgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLnJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdHlwID0gdHlwZU1hcFt0eXAucmVmXVxuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHR5cCkpIHJldHVybiB0cmFuc2Zvcm1FbnVtKHR5cCwgdmFsKVxuICBpZiAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiB0eXAuaGFzT3duUHJvcGVydHkoXCJ1bmlvbk1lbWJlcnNcIilcbiAgICAgID8gdHJhbnNmb3JtVW5pb24odHlwLnVuaW9uTWVtYmVycywgdmFsKVxuICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJhcnJheUl0ZW1zXCIpXG4gICAgICAgID8gdHJhbnNmb3JtQXJyYXkodHlwLmFycmF5SXRlbXMsIHZhbClcbiAgICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJwcm9wc1wiKVxuICAgICAgICAgID8gdHJhbnNmb3JtT2JqZWN0KGdldFByb3BzKHR5cCksIHR5cC5hZGRpdGlvbmFsLCB2YWwpXG4gICAgICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwpXG4gIH1cbiAgLy8gTnVtYmVycyBjYW4gYmUgcGFyc2VkIGJ5IERhdGUgYnV0IHNob3VsZG4ndCBiZS5cbiAgaWYgKHR5cCA9PT0gRGF0ZSAmJiB0eXBlb2YgdmFsICE9PSBcIm51bWJlclwiKSByZXR1cm4gdHJhbnNmb3JtRGF0ZSh2YWwpXG4gIHJldHVybiB0cmFuc2Zvcm1QcmltaXRpdmUodHlwLCB2YWwpXG59XG5cbmZ1bmN0aW9uIGNhc3Q8VD4odmFsOiBhbnksIHR5cDogYW55KTogVCB7XG4gIHJldHVybiB0cmFuc2Zvcm0odmFsLCB0eXAsIGpzb25Ub0pTUHJvcHMpXG59XG5cbmZ1bmN0aW9uIHVuY2FzdDxUPih2YWw6IFQsIHR5cDogYW55KTogYW55IHtcbiAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNUb0pTT05Qcm9wcylcbn1cblxuZnVuY3Rpb24gYSh0eXA6IGFueSkge1xuICByZXR1cm4geyBhcnJheUl0ZW1zOiB0eXAgfVxufVxuXG5mdW5jdGlvbiB1KC4uLnR5cHM6IGFueVtdKSB7XG4gIHJldHVybiB7IHVuaW9uTWVtYmVyczogdHlwcyB9XG59XG5cbmZ1bmN0aW9uIG8ocHJvcHM6IGFueVtdLCBhZGRpdGlvbmFsOiBhbnkpIHtcbiAgcmV0dXJuIHsgcHJvcHMsIGFkZGl0aW9uYWwgfVxufVxuXG4vLyBmdW5jdGlvbiBtKGFkZGl0aW9uYWw6IGFueSkge1xuLy8gICByZXR1cm4geyBwcm9wczogW10sIGFkZGl0aW9uYWwgfVxuLy8gfVxuXG5mdW5jdGlvbiByKG5hbWU6IHN0cmluZykge1xuICByZXR1cm4geyByZWY6IG5hbWUgfVxufVxuXG5jb25zdCB0eXBlTWFwOiBhbnkgPSB7XG4gIEFtZW5kZW1lbnRzOiBvKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJ0ZXh0ZXNMZWdpc2xhdGlmc1wiLFxuICAgICAgICBqczogXCJ0ZXh0ZXNMZWdpc2xhdGlmc1wiLFxuICAgICAgICB0eXA6IGEocihcIlRleHRlTGVnaXNsYXRpZlwiKSksXG4gICAgICB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFRleHRlTGVnaXNsYXRpZjogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwicmVmVGV4dGVMZWdpc2xhdGlmXCIsIGpzOiBcInJlZlRleHRlTGVnaXNsYXRpZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJhbWVuZGVtZW50c1wiLCBqczogXCJhbWVuZGVtZW50c1wiLCB0eXA6IHIoXCJBbWVuZGVtZW50c0NsYXNzXCIpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgQW1lbmRlbWVudHNDbGFzczogbyhcbiAgICBbeyBqc29uOiBcImFtZW5kZW1lbnRcIiwganM6IFwiYW1lbmRlbWVudFwiLCB0eXA6IGEocihcIkFtZW5kZW1lbnRcIikpIH1dLFxuICAgIGZhbHNlLFxuICApLFxuICBBbWVuZGVtZW50V3JhcHBlcjogbyhcbiAgICBbeyBqc29uOiBcImFtZW5kZW1lbnRcIiwganM6IFwiYW1lbmRlbWVudFwiLCB0eXA6IHIoXCJBbWVuZGVtZW50XCIpIH1dLFxuICAgIGZhbHNlLFxuICApLFxuICBBbWVuZGVtZW50OiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJ1aWRcIiwganM6IFwidWlkXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImNocm9ub3RhZ1wiLCBqczogXCJjaHJvbm90YWdcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibGVnaXNsYXR1cmVcIiwganM6IFwibGVnaXNsYXR1cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiaWRlbnRpZmljYXRpb25cIixcbiAgICAgICAganM6IFwiaWRlbnRpZmljYXRpb25cIixcbiAgICAgICAgdHlwOiByKFwiSWRlbnRpZmljYXRpb25cIiksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcImV4YW1lblJlZlwiLCBqczogXCJleGFtZW5SZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwidGV4dGVMZWdpc2xhdGlmUmVmXCIsIGpzOiBcInRleHRlTGVnaXNsYXRpZlJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJ0cmlBbWVuZGVtZW50XCIsIGpzOiBcInRyaUFtZW5kZW1lbnRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJjYXJkaW5hbGl0ZUFtZHRNdWx0aXBsZXNcIixcbiAgICAgICAganM6IFwiY2FyZGluYWxpdGVBbWR0TXVsdGlwbGVzXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJhbWVuZGVtZW50UGFyZW50UmVmXCIsXG4gICAgICAgIGpzOiBcImFtZW5kZW1lbnRQYXJlbnRSZWZcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIiksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcInNpZ25hdGFpcmVzXCIsIGpzOiBcInNpZ25hdGFpcmVzXCIsIHR5cDogcihcIlNpZ25hdGFpcmVzXCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwicG9pbnRldXJGcmFnbWVudFRleHRlXCIsXG4gICAgICAgIGpzOiBcInBvaW50ZXVyRnJhZ21lbnRUZXh0ZVwiLFxuICAgICAgICB0eXA6IHIoXCJQb2ludGV1ckZyYWdtZW50VGV4dGVcIiksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcImNvcnBzXCIsIGpzOiBcImNvcnBzXCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJDb3Jwc1wiKSkgfSxcbiAgICAgIHsganNvbjogXCJjeWNsZURlVmllXCIsIGpzOiBcImN5Y2xlRGVWaWVcIiwgdHlwOiByKFwiQ3ljbGVEZVZpZVwiKSB9LFxuICAgICAge1xu